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