專利名稱:彈性緩沖裝置及補償時鐘差異的方法
技術領域:
本發明涉及位于高速外設部件互連(PCI Express, Peripheral Component Interconnect)物理接口的彈性緩沖裝置及應用該彈性緩沖裝置補償時鐘差異 的方法。
背景技術:
高速夕卜設部件互連(PCI Express, Peripheral Component Interconnect)是一 種芯片之間的互連技術以及一種板卡擴展的接口技術,與傳統PCI以及更早期 的計算機總線的共享并行架構相比,PCI Express采用設備間的點對點串行連 接(serial interface)。如此一來即允許每個設備都有自己的專用連接,是獨占的, 并不需要向整個總線請求帶寬,同時利用串行的連接特點將能輕松將數據傳 輸速度提到一個很高的頻率,達到遠超出PCI總線的傳輸速率。單個基本的PCI Express連接是一種單雙單工連接, 一個單獨的基本的PCI Express串行連接就 是兩個獨立的通過不同的低電壓對驅動信號實現的連接, 一個接收對和一個 發送對(共四組線路)。不會和諸如USB 2.0、 InfmiBand、 Ethernet以及正EE 1394/1394b造成沖突。因此PCI Express界面傳輸速度比傳統的PCI界面更快, 具有設備之間的高速串行點對點傳輸和靈活可調的總線寬度等等優點。
PCIExpress采用了類似于網絡體系結構中OSI七層參考模型的分層體系結 構設計方案,從下到上分別為物理層(Physical Layer)、數據鏈路層(Data Link Layer)、事務處理層(Transaction Layer)和軟件層(Software layer)。而物理層還 可以細分為媒體訪問層(Media Access Layer)、物理編碼子層(Physical Coding Sublayer)詳口4勿J里+某體it問層(Physical Media Attachment Layer)。例》口PCI Express Base Specification Revision l.Oa中介紹了 一種在物理編碼子層和媒 體訪問層間進行數據傳輸的物理接口 ( PIPE, PHY Interface for PCI Express ),如圖1所示,該物理接口包括一個彈性緩沖裝置(Elastic Buffer)。由于一般來 說,在高速數據傳輸中,數據每到一層都會先被寫入彈性緩沖裝置,然后再 從彈性緩沖裝置中被讀出。寫入數據的寫指針是受恢復時鐘控制的,而讀出 數據的讀指針是受本地時鐘控制的。恢復時鐘(Recovered clock)是PIPE從接 收數據中恢復出來的發送方時鐘,發送方時鐘與接受方時鐘是相同頻率的, 但經過了數據傳播和恢復過程,可能造成從接收數據中恢復出來的發送方時 鐘與本地時鐘存在差異。因此寫指針的速度和讀指針的速度就會存在差異, 而這樣就可能導致數據傳輸產生錯誤。彈性緩沖裝置的作用就是通過控制讀 指針對于所述的時鐘差異進行補償。另外,如圖5A、圖5B所示,對于多通道 的數據傳輸來說,各通道的數據都是同時發送,但由于每個通道的傳輸速度 會有所不同,所以各通道數據到達接收端的時間就會有所不同,這種情況被 稱為各數據通道間的偏斜。因此在PCI Express Base Specification Revision l.Oa中還介紹了 一種位于媒體訪問層中用來消除指針偏斜的偏斜消除緩沖裝 置,如圖1所示。該偏斜消除緩沖裝置接收如圖6A所示的存在偏斜的各數據通 道數據,通過控制各數據通道的數據讀指針來使得各數據通道數據恢復到如 圖6B所示的各數據通道無偏斜狀態。根據對于彈性緩沖裝置和偏移消除緩沖 裝置的功能研究可以發現兩者的功能相近似,并且它們之間的位置也較接近, 而現有技術中分別設計這兩種緩沖裝置會使得PCI Express設計面積較大。發明內容本發明要解決的問題是現有技術中PCI Express設計面積較大的問題。 為解決上述問題,本發明提供一種彈性緩沖裝置,所述彈性緩沖裝置包括,若干個先入先出單元,用于對應數據通道的數據包數據的寫入和讀取; 若干個先入先出單元控制器,用于控制寫指針在恢復時鐘下向對應數據 通道的先入先出單元寫入數據,控制讀指針在本地時鐘下從對應數據通道的先入先出單元讀出數據;以及根據探測到的對應數據通道的先入先出單元的 讀寫指針的位置計算讀寫指針的距離,并根據設定的讀寫指針的距離范圍來
調整讀指針的位置來補償時鐘差異;以及對于對應數據通道接收的數據包的
數據頭標識進行計數,將計數結果通知多通道偏斜控制器,纟艮據多通道偏斜 控制器的反饋調整對應數據通道的先入先出單元的讀指針的位置來消除偏
斜;
多通道偏斜控制器,用于從各個先入先出單元控制器發送的數據頭標識 計數結果中選取中間值,并結合中間值和各個先入先出單元控制器發送的數 據頭標識結果向各個先入先出單元控制器發送讀指針繼續運行或維持不動的 反饋信號。
所述先入先出單元控制器還包括,
寫指針控制器,用于在恢復時鐘下控制寫指針將數據包中數據寫入先入 先出單元;
讀指針控制器,用于在接收到讀指針使能控制器傳遞的本地時鐘時,控 制讀指針從先入先出單元中讀出數據;在未接收到讀指針使能控制器傳遞的 本地時鐘時,維持讀指針不動;在接收到讀寫指針距離計算器發送的移除偏 移指令時,控制讀指針跳一格;在接收到數據頭標識計數器傳輸的反饋信號 時,控制讀指針從先入先出單元中讀出數據或維持讀指針不動;
同步標識探測器,用于探測彈性緩沖裝置接收的數據包中的同步標識, 并在探測到同步標識后將數據包發送給數據頭標識計數器;
數據頭標識計數器,用于在同步標識探測器探測到同步標識后,對于彈 性緩沖裝置接收的數據包中的數據頭標識進行計數,將數據頭標識計數結果 通知多通道偏斜控制器,并接收多通道偏斜控制器的反饋信號傳輸給讀指針 控制器和讀指針使能控制器;
讀指針使能控制器,用于在接收到讀寫指針距離計算器提供的使能信號時,向讀指針控制器傳遞本地時鐘;在未接收到讀寫指針距離計算器提供的 使能信號時,停止向讀指針控制器傳遞本地時鐘;在接收到數據頭標識計數
器傳輸的反饋信號時,向讀指針控制器傳遞本地時鐘或停止向讀指針控制器
傳遞本地時4中;
讀寫指針距離計算器,用于通過探測讀寫指針的位置計算讀寫指針的距 離,并根據計算結果結合設定的讀寫指針的距離范圍相應發送移除偏移指令、 發送使能信號和停止發送使能信號。
相應地,本發明還提供了一種補償時鐘差異的方法,包括,
探測讀寫指針的位置;
才艮據讀寫指針的位置計算讀寫指針的距離;
如果讀寫指針的距離大于設定的距離范圍,則通過移除偏移指令使得讀
指針沿前進方向跳一格;
如果讀寫指針的距離小于設定的距離范圍,則維持讀指針不動。
與現有技術相比,本發明彈性緩沖裝置根據探測到的讀寫指針位置來調 整讀寫指針距離進行時鐘差異的補償,減小了所需緩沖單元的面積。并且本
發明彈性緩沖裝置通過調整讀指針位置來消除偏斜,因而無需再在^(某體訪問 層中加入偏斜消除緩沖裝置,從而節省了 PCI Express的設計面積。
圖1是現有技術的PCI Express的物理接口示意圖2是本發明PCI Express的物理接口示意圖3是本發明彈性緩沖裝置結構示意圖4是本發明實施例彈性緩沖裝置的結構示意圖5A至圖5B是現有技術各數據通道間偏斜產生示意圖;圖6A至圖6B是現有技術各數據通道偏斜消除示意圖;圖7是本發明實施例彈性緩沖裝置的讀寫指針運行示意圖;圖8A至圖8B是本發明實施例彈性緩沖裝置對于接收時鐘過快進行時鐘 補償的操作示意圖;圖9A至圖9B是本發明實施例彈性緩沖裝置對于發送時鐘過快進行時鐘 補償的操作示意圖;圖10A是本發明實施例各數據通道消除偏斜前狀況示意圖;圖10B是本發明實施例各數據通道消除偏斜后狀況示意圖。
具體實施方式
本發明彈性緩沖裝置根據探測到的讀寫指針位置來調整讀寫指針距離進 行時鐘差異的補償,減小了所需緩沖單元的面積。并且本發明彈性緩沖裝置 通過調整讀指針位置來消除偏斜。本發明彈性緩沖裝置如圖3所示,包括,先入先出單元1、先入先出單元111至先入先出單元1111,用于對應數據 通道的數據包數據的寫入和讀取;先入先出單元控制器2、先入先出單元控制器222至先入先出單元控制器 2222,用于控制寫指針在恢復時鐘下向對應數據通道的先入先出單元寫入數 據,控制讀指針在本地時鐘下從對應數據通道的先入先出單元讀出數據;以 及根據探測到的對應數據通道的先入先出單元的讀寫指針的位置計算讀寫指 針的距離,并根據設定的讀寫指針的距離范圍來調整讀指針的位置來補償時 鐘差異;以及對于對應數據通道接收的數據包的數據頭標識進行計數,將計 數結果通知多通道偏斜控制器3,根據多通道偏斜控制器3的反饋調整對應數 據通道的先入先出單元的讀指針的位置來消除偏斜;多通道偏斜控制器3 ,用于從各個先入先出單元控制器發送的數據頭標識 計數結果中選取中間值,并結合中間值和各個先入先出單元控制器發送的數 據頭標識結果向各個先入先出單元控制器發送讀指針繼續運行或維持不動的 反饋信號。本發明彈性緩沖裝置的先入先出單元可以與數據通道一一對應,例如第 一數據通道的先入先出單元與第 一數據通道對應,第二^t據通道的先入先出 單元與第二數據通道對應。當然,本發明彈性緩沖裝置的先入先出單元也可以根據PCI Express機制的調配與其他數據通道對應,例如第一數據通道的先 入先出單元與第二數據通道對應,第二數據通道的先入先出單元與第三數據 通道對應。下面以四通道的彈性緩沖裝置為例進行詳細說明,如圖4所示,因為各 數據通道的先入先出單元和先入先出單元控制器的結構均完全相同,圖4中 僅以第一數據通道的先入先出單元1和先入先出單元控制器2為例。如圖4 所示,本發明實施例的彈性緩沖裝置的第一數據通道的先入先出單元控制器2 進一步包括,寫指針控制器26,用于在恢復時鐘下控制寫指針將數據包中數據寫入先 入先出單元;讀指針控制器25,用于在接收到讀指針使能控制器23傳遞的本地時鐘時, 控制讀指針從先入先出單元1中讀出數據;在未接收到讀指針使能控制器23 傳遞的本地時鐘時,維持讀指針不動;在接收到讀寫指針距離計算器24發送 的移除偏移指令時,控制讀指針跳一格;在接收到數據頭標識計數器22傳輸 的反饋信號時,控制讀指針從先入先出單元1中讀出數據或維持讀指針不動;同步標識探測器21,用于探測彈性緩沖裝置接收的數據包中的同步標識, 并在探測到同步標識后將數據包發送給數據頭標識計數器22;數據頭標識計數器22,用于在同步標識探測器21探測到同步標識后,對于彈性緩沖裝置接收的數據包中的數據頭標識進行計數,將數據頭標識計數
結果通知多通道偏斜控制器3,并接收多通道偏斜控制器3的反饋信號傳輸給 讀指針控制器25和讀指針使能控制器23;
讀指針使能控制器23,用于在接收到讀寫指針距離計算器24提供的使能 信號時,向讀指針控制器25傳遞本地時鐘;在未"^妄收到讀寫指針距離計算器 24提供的使能信號時,停止向讀指針控制器25傳遞本地時鐘;在接收到數據 頭標識計數器22傳輸的反饋信號時,向讀指針控制器25傳遞本地時鐘或停 止向讀指針控制器25傳遞本地時鐘;
讀寫指針距離計算器24,用于通過探測讀寫指針的位置計算讀寫指針的 距離,并根據計算結果結合設定的讀寫指針的距離范圍相應發送移除偏移指 令、發送使能信號和停止發送使能信號。
由于之前所述的,本發明彈性緩沖裝置是分別通過調整讀指針位置和調 整讀寫指針距離實現了消除偏斜和補償時鐘差異的功能的,下面首先介紹一
下本發明實施例的讀寫指針運行情況。結合圖4和圖7所示,讀寫指針的運 行方向為自下到上,并且讀寫指針的初始位置都在自下往上的第一格,定義 當先入先出單元的容量為五格時,讀寫指針之間的有效距離為一格,這里所 說的格是指一個標準大小的存儲空間,具有設定的字節大小。由于彈性緩沖 裝置是在PIPE中的,而PIPE中的輸入數據是經過物理編碼子層8b/10b編碼 的數據流,所以彈性緩沖裝置中格的大小是10bit。設置讀寫指針之間的有效 距離是為了防止讀指針和寫指針位于同一格位置造成數據混亂。當數據到達 彈性緩沖裝置的數據通道時,以第一數據通道為例,寫指針控制器26在恢復 時鐘的控制下給寫指針賦值,控制寫指針從下往上一格一格地將數據寫入先 入先出單元l。而與此同時,讀寫指針距離計算器24開始計算讀寫指針之間 的距離。根據上述介紹,初始時讀寫指針位于同一個位置,讀寫指針距離計 算器24不向讀指針使能控制器23發送使能信號,讀指針使能控制器23沒有得到使能信號也不會向讀指針控制器25傳遞本地時鐘,從而讀指針控制器25也不會給讀指針賦值來控制讀指針從先入先出單元1中讀出數據。當讀寫指針距離計算器24計算到讀寫指針之間的距離為一格時,會向讀指針使能控制 器23發送使能信號,讀指針使能控制器23在接收到使能信號之后,會將本 地時鐘傳遞給讀指針控制器25,讀指針控制器25就會在本地時鐘的控制下給 讀指針賦值,控制讀指針開始從下往上一格一格地將數據從先入先出單元1 中讀出。結合圖4和圖7可以看到,此時,寫指針控制器26已經控制寫指針 開始進行第六次數據寫入,所以寫指針在寫完了先入先出單元1的五格之后 又回到了先入先出單元1的第一格繼續進行數據寫入。而此時讀指針控制器 25控制讀指針讀到了第四格位置,因此,寫指針和讀指針所指向的位置之間 還有先入先出單元的第五格位置,所以寫指針和讀指針之間的距離為 一格, 這種讀寫指針的位置情況就是上述定義的讀寫指針的有效距離(Valid )。本發明實施例的四通道彈性緩沖裝置在數據到達it據通道時,會先進行各個數據通道的時鐘差異的補償,然后才會對于各個數據通道的存在的偏斜 進行消除,當然對于時鐘差異的補償和消除偏斜的操作也可以同時進行。下面首先詳細說明對于各數據通道的時鐘差異的補償,本發明彈性緩沖 裝置采用了一種補償時鐘差異的方法,通過讀寫指針距離計算器24對于讀寫 指針的位置進行探測,計算讀寫指針的距離,當發現讀寫指針的距離由于時 鐘差異而小于或大于設定的距離范圍時,就通過相應的操作使讀寫指針距離 恢復到設定范圍內來補償時鐘差異。所述的設定范圍是基于先入先出單元的 容量的,如前所述的,當先入先出單元的容量為5格時,讀寫指針的有效距 離為1,而先入先出單元的容量增大時,讀寫指針的有效距離也隨之增大,例 如先入先出單元的容量為9格時,讀寫指針的有效距離就為l格至5格。補償時鐘差異的詳細步驟如下,仍假設先入先出單元的容量為五格單元, 以第一數據通道為例,當數據包到達第 一數據通道時,寫指針控制器26如之前介紹的,在發送時鐘的控制下,控制寫指針將數據包中的數據寫入先入先 出單元1中的第一格位置。而在數據被寫入先入先出單元1后,讀指針控制 器25也會在之前所述的寫指針和讀指針之間距離為 一格的有效距離的時候開 始控制讀指針從先入先出單元1的第一格位置處將數據讀出。如之前所述的 有效狀態為寫指針和讀指針之間的距離為 一格的情況,例如寫指針寫到第三 格位置,而讀指針讀到第一格位置,則寫指針和讀指針之間的距離為一格, 此時為有效距離。而當寫指針和讀指針之間的距離小于一格時,為無效狀態
(Invalid),例如,寫指針寫到了第三格位置,而讀指針也讀到了第二格位置, 在下一時刻,讀指針很可能與寫指針處于同一格位置,這樣就會造成數據混 亂,此時為無效狀態。
當讀寫指針在各自的控制器的控制下開始進行讀寫操作的時候,讀寫指
針距離計算器24也會繼續探測寫指針和讀指針的位置,并計算寫指針和讀指 針之間的距離。例如之前所述的,寫指針寫到了第三格位置,而讀指針讀到 了第一格位置,讀寫指針距離計算器24在探測到讀寫指針的位置后,就會計 算得到寫指針和讀指針之間的距離為一格,并將使能信號發送給讀指針使能 控制器23,而讀指針使能控制器23在接收到使能信號之后就會依舊向讀指針 控制器25傳遞本地時鐘,使得讀指針能夠在讀指針控制器25的控制下從先 入先出單元1中讀取數據。
而如果如圖8A所示,讀寫指針距離計算器24探測到寫指針寫到了第六 格位置,讀指針也讀到了第五格位置,在下一時刻,讀指針很可能與寫指針 處于同一格位置。出現這種情況說明讀指針控制器25控制讀指針從先入先出 單元1中讀取數據的頻率過快,而造成這種情況的原因就是之前所說,由于 寫指針和讀指針是分別由恢復時鐘和本地時鐘控制的,當本地時鐘頻率快于
恢復時鐘頻率時,讀指針控制器25控制讀指針讀取數據的頻率就會快于寫指 針控制器26控制寫指針寫入數據的頻率。此時,如果讀指針沒有讀取到同步標識,那么讀寫指針距離計算器24不會對讀指針控制器25進行操作。如果 讀指針已經讀取到了同步標識,如圖8A所示,讀寫指針距離計算器24就會 因為寫指針和讀指針之間的距離小于一格而停止向讀指針使能控制器23發送 使能信號,停止的時間一般維持一個本地時鐘的周期。讀指針使能控制器23 沒有接收到使能信號,就會停止向讀指針控制器25傳遞本地時鐘。而讀指針 控制器25因為沒有本地時鐘提供就會停止向讀指針賦值來控制讀指針的運 行。如圖8B所示,讀指針就會在原來的位置保持不動,持續時間是一個周期。 而在這一個周期內,寫指針因為受恢復時鐘控制還是如常運行的,這樣的話, 在一個周期之后,寫指針和讀指針之間的距離又恢復到了一格。從而,通過 上述的操作將讀指針保持不動一個周期,就能夠補償由于本地時鐘快于發送 方時鐘而可能造成的數據傳輸問題。
而如果如圖9A所示,讀寫指針距離計算器24探測到寫指針寫到了第六 格位置,而讀指針才讀到了第三格位置。這種情況下,雖然寫指針和讀指針 之間的距離大于一格,但由于先入先出單元1是有容量限制的,如圖9A所示 的先入先出單元容量為八格,讀寫指針的運行方向為從右往左,可以預計到 當寫指針在將數據寫滿緩沖單元的八格之后,會重新追上讀指針,同樣可能 造成讀寫指針位于同一格位置的狀況,這種狀況同樣是需要避免的。造成這 種狀況的原因是由于寫指針和讀指針是分別由恢復時鐘和本地時鐘控制的, 當恢復時鐘頻率快于本地時鐘頻率時,寫指針控制器26控制寫指針寫入數據 的頻率就會快于讀指針控制器25控制讀指針讀取數據的頻率。為了縮小寫指 針和讀指針之間的距離, 一個有效的方法就是使讀指針往左跳一格。由于發
送到彈性緩沖裝置的數據包通常由數據頭標識(COM) +偏移指令(SKP) +數據組成,因此,讀寫指針距離計算器24會向讀指針控制器25發送從數 據包中去除一個偏移指令的信號。如圖9B所示,而讀指針控制器25在讀取 到了同步標識之后,就會控制讀指針跳過接下來的一個偏移指令信號所處的位置,而改為讀取該偏移指令之后的位置上的數據,實現了往左跳一格的功 能,從而寫指針和讀指針之間的距離又恢復到了一。因此,通過去除偏移指 令使得讀指針往前跳一格,從而補償了由于發送方時鐘快于本地時鐘而可能 造成的數據傳輸問題。以上的說明具體講述了對于第 一數據通道,彈性緩沖裝置的先入先出單元控制器2補償恢復時鐘和本地時鐘頻率不一致而可能造成的數據傳輸問題 的操作。對于多數據通道的彈性緩沖裝置來說,由于每個數據通道的先入先 出單元1和先入先出單元控制器2的結構完全相同,所以對于其他數據通道 的補償操作與第一數據通道也完全相同,這里就不再重復說明了 。下面對于本發明實施例彈性緩沖裝置消除各數據通道的偏斜的功能運作 情況作詳細說明。當數據包到達本發明實施例的四通道彈性緩沖裝置前,已被分成了四組 對應于各個數據通道的數據包,并且對應于每一個數據通道的每一組數據包 都應當包含同步標識。例如,當第一個數據包中的第一組數據包到達第一數 據通道時,同步標識探測器21會先探測所接收的數據中有沒有同步標識 (SYNC)。如果沒有同步標識,則同步標識探測器21會使先入先出單元控制器 2處于等待狀態直到同步標識探測器21探測到數據包中的同步標識為止;如 果同步標識探測器21探測到數據包中的同步標識時,會將數據包發送給數據 頭標識計數器22。而數據頭標識計數器22會先探測數據包中的數據頭標識 (COM)。當數據頭標識計數器22探測到數據包中的數據頭標識時,就知道 該數據包中的數據即將來到。因此,在稍后來到的第一個本地時鐘上跳沿之 后,數據頭標識計數器22就會記一,代表第一數據通道已經接收到了數據包 中的數據。依次類推,當第二個本地時鐘上跳沿之后,第一數據通道的數據頭標識 計數器就會記二。這樣直到該數據通道上的讀指針再次讀到同步標識,數據頭標識計數器22將保持其計數值,當所有數據通道的讀指針都讀到同步標識 后,各個數據通道的計數值將清零,當下一個數據包的數據頭標識來的時候, 再重復所述的計數過程。同樣地,其他三個數據通道的凄t據頭標識計數器也 會根據來到各自數據通道的數據包中的數據頭標識進行計數。
而多通道偏斜控制器3則會調取各個數據通道的數據頭標識計數器的計
數結果,并從中選全一個中間值作為參考值,根據參考值向各個數據通道反 饋該數據通道是否應該維持讀指針不動的反饋結果。各數據通道的數據頭標 識計數器在接收到反饋結果,會將反饋結果分別傳遞給讀指針控制器和讀指 針使能信號控制器,使得讀指針控制器和讀指針使能信號控制器能夠根據反 饋結果對讀指針作出調整。
下面就以 一個具體的例子來詳細講述消除數據通道偏斜的梯:作。如圖10A 所示為某一時刻各數據通道的讀寫情況圖,讀寫指針的方向為從右往左。因 為如前所述的,數據頭標識計數器只有在同步標識探測器探測到同步標識的 情況下才開始根據數據頭標識計數,并且當讀指針讀到同步標識時,數據頭 標識計數器將保持其計數值。
對于第一數據通道來說,該數據通道的數據頭標識計數結果為三,寫指 針寫到了第七格位置,而讀指針正巧也讀到了第五格位置處的同步標識,此
時數據頭標識計數器22的計數值就保持為三。對于第二數據通道來說,該數 據通道的數據頭標識計數結果為二,寫指針寫到了第七格位置,而讀指針讀 到了第五格位置,但還未讀到第六格位置處的同步標識。對于第三數據通道 來說,該數據通道的數據頭標識計數結果為一,寫指針寫到了第七格位置處 的同步標識,而讀指針讀到了第五格位置,但還未讀到第七格位置處的同步 標識。對于第四數據通道來說,該數據通道的數據頭標識計數結果為三,寫 指針寫到了第八格位置,而讀指針讀到了第六格位置處的同步標識,因此與 第一數據通道相同,此時該數據通道的數據頭標識的計^t結果也保持為三。根據上述的數據頭標識的計數結果,多通道偏斜控制器3就將第一數據 通道和第四數據通道作為參考數據通道,則發送給第 一數據通道和第四數據 通道的反饋結果為維持讀指針不動,而發送給第二數據通道和第三數據通道 的反饋結果為讀指針繼續前進,并且各數據通道的寫指針因為受恢復時鐘控 制而不受影響,繼續前進。第一數據通道和第四數據通道的讀指針使能控制 器在接收到反饋結果后,就會停止向讀指針控制器傳遞本地時鐘,從而讀指 針控制器使讀指針停止不動。在下一個時鐘周期的上跳沿之后,第二數據通道的數據頭標識計數結果 為三,并且第二數據通道的讀指針也讀到了同步標識,此時該數據通道的數 據頭標識的計數結果也保持為三。而第三數據通道的數據頭標識計數結果為 二,該數據通道的讀指針還差一格才能讀到同步標識。多通道偏斜控制器3 就會將第一數據通道、第二數據通道和第四數據通道作為參考數據通道,則 發送給第 一數據通道、第二數據通道和第四數據通道的反饋結果為維持讀指 針不動,而發送給第三數據通道的反饋結果為讀指針繼續前進,并且各數據 通道的寫指針因為受恢復時鐘控制而不受影響,繼續前進。第一數據通道、第二數據通道和第四數據通道的讀指針使能控制器在接收到反饋結果后,就 會停止向讀指針控制器傳遞本地時鐘,從而讀指針控制器使讀指針停止不動。在接下來的一個時鐘周期的上跳沿之后,如圖10B所示,第三數據通道 的數據頭標識計數結果為三時,該數據通道的讀指針也讀到了同步標識,第 三數據通道的數據頭標識計數結果保持為三。如之前所述,當所有數據通道 的讀指針都讀到同步標識后,各個數據通道的計數值將清零。在接下來的一 個時鐘周期的上跳沿之后,各個數據通道的讀指針將同時工作,從而保證了 數據的同步,消除了各個數據通道間的偏斜。在原先的設計中,對于恢復時鐘和本地時鐘差異的補償是通過一個類似 于讀寫指針距離計算器的部件對于讀寫指針距離進行計算,并通過偏移指令第調整設置(SKP ordered-set)來控制讀指針的跳轉來達到補償時鐘差異的目的, 因此位于高速外設部件互連物理接口的彈性緩沖裝置至少需要8格。而位于 媒體訪問層的偏斜消除緩沖單元也至少需要5格,因此總共的設計需要13格。 對于而本發明高速外設部件互連物理接口的彈性緩沖裝置在對于補償本地時 鐘頻率比發送方時鐘頻率快的情況時,采用了關閉讀指針控制器的本地時鐘 維持讀指針不動來調整讀寫指針的距離來實現補償時鐘差異的目的。并且, 本發明彈性緩沖裝置綜合了時鐘補償和消除各數據通道偏斜這兩個功能,只 使用一個先入先出單元來進行數據存儲,因此先入先出單元的面積減小到了 9 格,而先入先出單元的面積減小了,存儲數據的時間自然也減小了。如圖2 所示,由于本發明彈性緩沖裝置綜合了時鐘補償和消除各數據通道偏斜的功 能,因而無需再在媒體訪問層中加入偏斜消除緩沖單元,從而節省了 PCI Express的i殳計面禾只。
權利要求
1.一種彈性緩沖裝置,其特征在于,包括,若干個先入先出單元,用于對應數據通道的數據包數據的寫入和讀取;若干個先入先出單元控制器,用于控制寫指針在恢復時鐘下向對應數據通道的先入先出單元寫入數據,控制讀指針在本地時鐘下從對應數據通道的先入先出單元讀出數據;以及根據探測到的對應數據通道的先入先出單元的讀寫指針的位置計算讀寫指針的距離,并根據設定的讀寫指針的距離范圍來調整讀指針的位置來補償時鐘差異;以及對于對應數據通道接收的數據包的數據頭標識進行計數,將計數結果通知多通道偏斜控制器,根據多通道偏斜控制器的反饋調整對應數據通道的先入先出單元的讀指針的位置來消除偏斜;多通道偏斜控制器,用于從各個先入先出單元控制器發送的數據頭標識計數結果中選取中間值,并結合中間值和各個先入先出單元控制器發送的數據頭標識結果向各個先入先出單元控制器發送讀指針繼續運行或維持不動的反饋信號。
2. 如權利要求1所述的彈性緩沖裝置,其特征在于,所述先入先出單元控制 器進一步包括,寫指針控制器,用于在恢復時鐘下控制寫指針將數據包中數據寫入先入 先出單元;讀指針控制器,用于在接收到讀指針使能控制器傳遞的本地時鐘時,控 制讀指針從先入先出單元中讀出數據;在未接收到讀指針使能控制器傳遞的 本地時鐘時,維持讀指針不動;在接收到讀寫指針距離計算器發送的移除偏 移指令時,控制讀指針跳一格;在接收到數據頭標識計數器傳輸的反饋信號 時,控制讀指針從先入先出單元中讀出數據或維持讀指針不動;同步標識探測器,用于探測彈性緩沖裝置接收的數據包中的同步標識, 并在探測到同步標識后將數據包發送給數據頭標識計數器;數據頭標識計數器,用于在同步標識探測器探測到同步標識后,對于彈 性緩沖裝置接收的數據包中的數據頭標識進行計數,將數據頭標識計數結果 通知多通道偏斜控制器,并接收多通道偏斜控制器的反饋信號傳輸給讀指針控制器和讀指針使能控制器;讀指針使能控制器,用于在接收到讀寫指針距離計算器提供的使能信號 時,向讀指針控制器傳遞本地時鐘;在未接收到讀寫指針距離計算器提供的 使能信號時,停止向讀指針控制器傳遞本地時鐘;在接收到數據頭標識計數 器傳輸的反饋信號時,向讀指針控制器傳遞本地時鐘或停止向讀指針控制器 傳遞本地時鐘;讀寫指針距離計算器,用于通過探測讀寫指針的位置計算讀寫指針的距 離,并根據計算結果結合設定的讀寫指針的距離范圍相應發送移除偏移指令、 發送使能信號和停止發送使能信號。
3. 如權利要求2所述的彈性緩沖裝置,其特征在于,所述格為一個具有設定 字節大小的存儲空間。
4. 如權利要求2或3所述的彈性緩沖裝置,其特征在于,所述設定的距離范 圍為1至5格。
5. 如權利要求4所述的彈性緩沖裝置,其特征在于,所述設定字節的大小為 10bit。
6. —種補償時鐘差異的方法,其特征在于,包括,探測讀寫指針的位置;根據讀寫指針的位置計算讀寫指針的距離;如果讀寫指針的距離大于設定的距離范圍,則通過移除偏移指令使得讀 指針沿前進方向跳一格;如果讀寫指針的距離小于設定的距離范圍,則維持讀指針不動。
7. 如權利要求6所述的補償時鐘差異的方法,其特征在于,所述格為一個具 有設定字節大小的存儲空間。
8. 如權利要求6或7所述的補償時鐘差異的方法,其特征在于,所述設定的 距離范圍為1至5格。
9. 如權利要求8所述的補償時鐘差異的方法,其特征在于,所述設定字節的 大小為10bit。
10. 如權利要求6所述的補償時鐘差異的方法,其特征在于,通過關閉讀指針 控制器的時鐘來維持讀指針不動。
全文摘要
本發明彈性緩沖裝置包括,若干個先入先出單元,用于對應數據通道的數據包數據的寫入和讀取;若干個先入先出單元控制器,用于控制讀指針或寫指針從對應先入先出單元寫入和讀取數據,根據探測到的對應數據通道的讀寫指針的位置計算讀寫指針的距離,并根據設定的讀寫指針的距離范圍來調整讀指針的位置;以及對于對應數據通道接收的數據包的數據頭標識進行計數,將計數結果通知多通道偏斜控制器,根據多通道偏斜控制器的反饋調整該數據通道先入先出單元的讀指針的位置;多通道偏斜控制器,用于根據各個先入先出單元控制器發送的數據頭標識計數結果進行綜合分析,并向各個先入先出單元控制器發送反饋信號,從而使得PCI Express的面積較小。
文檔編號H04L12/56GK101296217SQ20071004024
公開日2008年10月29日 申請日期2007年4月24日 優先權日2007年4月24日
發明者唐世慶, 昊 張, 蕭健群 申請人:中芯國際集成電路制造(上海)有限公司