專利名稱:Fifo模塊以及具有fifo模塊的延遲均衡電路和速率匹配電路的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及FIFO模塊,以及具有所述FIFO模塊的延遲均衡(deskew)電路和速率匹配電路。
背景技術(shù):
對(duì)更高速網(wǎng)絡(luò)連接的持續(xù)需求促成了10千兆位光纖信道(10GFC)和10千兆位以太網(wǎng)(10GbE)網(wǎng)絡(luò)的開(kāi)發(fā)。在10GbE網(wǎng)絡(luò)中,在介質(zhì)訪問(wèn)控制(MAC)層和物理(PHY)層之間,存在10千兆位介質(zhì)獨(dú)立接口(XGMII)。XGMII在MAC層和PHY層之間以10Gb/s的速率提供了全雙工操作。操作的每個(gè)方向獨(dú)立于另一方向,并且包括32位的數(shù)據(jù),以及時(shí)鐘和控制信號(hào),以定義MAC層和PHY層之間的74位接口。
為了解決與以下情況相關(guān)的問(wèn)題,即在超過(guò)7cm的距離上為74位接口的如此大量的信號(hào)指定路由,開(kāi)發(fā)了10千兆位附加單元接口(XAUI)。XAUI是全雙工接口,其在操作的每個(gè)方向上使用四條自時(shí)鐘的(self-clocked)串行差分鏈路,以獲得10Gb/s的數(shù)據(jù)速率。每條串行鏈路以3.125Gb/s進(jìn)行操作,以適應(yīng)與8B/10B編碼相關(guān)聯(lián)的數(shù)據(jù)和開(kāi)銷。編碼的自時(shí)鐘本質(zhì)消除了時(shí)鐘和數(shù)據(jù)之間的時(shí)偏(skew)影響,并且將XGMII的作用范圍擴(kuò)展到大約50cm。XGMII和XAUI接口間的轉(zhuǎn)換發(fā)生在XGMII擴(kuò)展子層(XGXS)上。
將XGMII接口的發(fā)送和接收路徑各自組織成四條通路(lane)。每條通路使用8位數(shù)據(jù)信號(hào)和1位控制信號(hào)。在XAUI接口的源方,將用于在給定通路上傳輸?shù)臄?shù)據(jù)和定時(shí)時(shí)鐘轉(zhuǎn)換成自時(shí)鐘的、串行的、經(jīng)8B/10B編碼的數(shù)據(jù)流。將每個(gè)經(jīng)編碼的數(shù)據(jù)流以幀或分組的形式,通過(guò)單條差分鏈路發(fā)送到目的方。在目的方,從流入的數(shù)據(jù)流中恢復(fù)時(shí)鐘。對(duì)流入的數(shù)據(jù)進(jìn)行解碼,然后映射回32位的XGMII格式。這樣,將74針寬的XGMII接口縮減為XAUI接口,所述XAUI接口使用8個(gè)差分對(duì)來(lái)支持8條串行差分鏈路,因而總共只需要16針。
利用幀間或分組間時(shí)段來(lái)分隔每條通路中的幀,所述幀間或分組間時(shí)段是無(wú)數(shù)據(jù)傳輸?shù)臅r(shí)間間隔。XGMII在這些時(shí)段期間改為發(fā)送空閑控制字符。在10GbE的術(shù)語(yǔ)中,這些時(shí)段被稱為分組間間隙(IPG)。在IPG期間,XGXS將XGMII空閑控制字符轉(zhuǎn)換到控制代碼組(code-group)的隨機(jī)化序列,并且從控制代碼組的隨機(jī)序列轉(zhuǎn)換到XGMII空閑控制字符,從而實(shí)現(xiàn)串行通路同步、時(shí)鐘速率補(bǔ)償(也稱為速率匹配)以及通路到通路對(duì)齊(alignment)(也稱為延遲均衡)。這種隨機(jī)化序列包括一般被稱為“A”、“K”和“R”代碼組的控制代碼組。
數(shù)據(jù)流中的“K”或同步代碼組使在接收方的XAUI接收機(jī)能夠?qū)崿F(xiàn)流入位流的代碼組同步。每當(dāng)“K”代碼組出現(xiàn)時(shí),每條通路進(jìn)行調(diào)整,以適當(dāng)?shù)貙?duì)齊到“K”代碼組。當(dāng)每條通路接收到四個(gè)連續(xù)的無(wú)錯(cuò)誤且有效的“K”代碼組時(shí),則認(rèn)為在各自的通路上實(shí)現(xiàn)了代碼組同步。
但是,每條串行傳輸通路都獨(dú)立于其他通路進(jìn)行操作。由于通路之間的路徑延時(shí)和等待時(shí)間有所不同,因此在一條通路上所發(fā)送的數(shù)據(jù)流通常無(wú)法與在另一條通路上所發(fā)送的數(shù)據(jù)流對(duì)齊。這種未對(duì)齊被稱為通路到通路的時(shí)偏。通過(guò)使用“A”或?qū)R代碼組來(lái)實(shí)現(xiàn)通路對(duì)齊或延遲均衡。XGXS定義了在IPG期間,應(yīng)該同時(shí)在四條通路中的每條上出現(xiàn)“A”代碼組的特定時(shí)間。接收機(jī)使用這些“A”代碼組來(lái)糾正通路到通路的時(shí)偏。對(duì)通路到通路的時(shí)偏的糾正被稱為延遲均衡。
此外,XGXS補(bǔ)償在時(shí)鐘域中的時(shí)鐘速率差異,所述時(shí)鐘速率差異通常存在于鏈路的發(fā)送方和接收方之間。通過(guò)監(jiān)控流入和流出數(shù)據(jù)速率之間的差異,接收機(jī)可以在IPG中添加或刪除“R”或跳過(guò)(skip)代碼組,以對(duì)每條通路中的流入和流出數(shù)據(jù)速率進(jìn)行平衡或速率匹配。
通常,作為專用集成電路(ASIC)來(lái)實(shí)現(xiàn)的接收機(jī)包括連接到各個(gè)解串器(deserializer)的現(xiàn)有技術(shù)的FIFO模塊。這些現(xiàn)有技術(shù)的FIFO模塊用于對(duì)各個(gè)通路上所接收到的數(shù)據(jù)流進(jìn)行緩沖。FIFO模塊中的每個(gè)都具有兩個(gè)指針——寫入指針和讀取指針。寫入指針指向或?qū)ぶ返紽IFO模塊中的存儲(chǔ)器位置,用于向其中寫入數(shù)據(jù)流中的代碼組。讀取指針在操作期間跟隨寫入指針,所述讀取指針指向或?qū)ぶ返街氨粚懭氲拇鎯?chǔ)器位置,以允許為進(jìn)一步的處理而讀取存儲(chǔ)在其中的代碼組。
為了執(zhí)行延遲均衡和速率匹配,在接收機(jī)中,還需要FIFO模塊外部的附加電路。這些附加電路包括用于進(jìn)一步緩存所讀取的代碼組的寄存器體(register bank),以及用于將所讀取的代碼組與預(yù)定代碼組進(jìn)行比較的比較器,等等。這樣的設(shè)計(jì)存在多種缺點(diǎn)。首先,由于需要附加電路,因此無(wú)法有效地利用ASIC的芯片面積。效率的低下程度依賴于將所讀取的代碼組與預(yù)定代碼組進(jìn)行比較要花費(fèi)多長(zhǎng)時(shí)間,并且在芯片上所需的寄存器體的數(shù)量直接與比較的持續(xù)時(shí)間成比例。因此,比較的持續(xù)時(shí)間越長(zhǎng),芯片面積的效率低下程度則越高。因此,由于ASIC的硬件結(jié)構(gòu)將需要根據(jù)比較的持續(xù)時(shí)間而改變,因此所述硬件結(jié)構(gòu)是不確定的。
其次,對(duì)于附加電路中的任何改變,都不得不在系統(tǒng)級(jí)上對(duì)ASIC進(jìn)行驗(yàn)證。這種驗(yàn)證執(zhí)行起來(lái)很復(fù)雜,并且耗時(shí)。再次,只有在讀取了FIFO模塊中所存儲(chǔ)的控制代碼組,并且使所述控制代碼組能夠從FIFO模塊的外部獲得之后,才能執(zhí)行延遲均衡。當(dāng)一個(gè)存儲(chǔ)器位置被寫入時(shí),只有當(dāng)讀取指針推進(jìn)到該特定的存儲(chǔ)器位置時(shí),才能讀取該存儲(chǔ)器位置。因此,在特定存儲(chǔ)器地址的寫入和讀取之間存在滯后(lag),并且只有在從該存儲(chǔ)器位置讀取控制代碼組之后,才能進(jìn)行延遲均衡。因此,延遲均衡被延遲,并且在延遲均衡之后執(zhí)行的速率匹配也同樣被延遲。
發(fā)明內(nèi)容
根據(jù)本發(fā)明的一個(gè)方面,提供了一種具有存儲(chǔ)體(memory bank)的先進(jìn)先出(FIFO)模塊。所述存儲(chǔ)體包括多個(gè)可獨(dú)立尋址的存儲(chǔ)器位置。所述FIFO模塊包括連接到存儲(chǔ)體的寫入指針,所述寫入指針用于尋址第一存儲(chǔ)器位置,以將輸入數(shù)據(jù)總線上的數(shù)據(jù)寫入到第一存儲(chǔ)器位置中。所述FIFO模塊還包括連接到存儲(chǔ)體的讀取指針,所述讀取指針用于尋址第二存儲(chǔ)器位置,以將存儲(chǔ)在其中的數(shù)據(jù)讀取到輸出數(shù)據(jù)總線上。所述FIFO模塊還包括連接到存儲(chǔ)體的至少一個(gè)附加指針,所述附加指針用于尋址第三存儲(chǔ)器位置,以讀取存儲(chǔ)在其中的數(shù)據(jù)。
根據(jù)本發(fā)明的另一方面,提供了一種具有至少兩個(gè)上述FIFO模塊的延遲均衡電路。所述至少一個(gè)附加指針包括耦合到所述寫入指針的向后看指針,所述向后看指針用于對(duì)跟蹤第一存儲(chǔ)器位置的第三存儲(chǔ)器位置進(jìn)行尋址,所述第一存儲(chǔ)器位置可由寫入指針?biāo)鶎ぶ?。所述延遲均衡電路還包括連接到存儲(chǔ)體的檢測(cè)器,所述檢測(cè)器用于將所述第三存儲(chǔ)器位置中的數(shù)據(jù)與對(duì)齊數(shù)據(jù)進(jìn)行比較。當(dāng)所述第三存儲(chǔ)器位置中的數(shù)據(jù)與所述對(duì)齊數(shù)據(jù)相匹配時(shí),所述檢測(cè)器則斷言(assert)找到數(shù)據(jù)(datum-found)信號(hào)。所述延遲均衡電路還包括連接到所述至少兩個(gè)FIFO模塊的時(shí)偏補(bǔ)償單元。所述時(shí)偏補(bǔ)償單元當(dāng)所述至少兩個(gè)FIFO模塊各自的找到數(shù)據(jù)信號(hào)被斷言時(shí),接收所述至少兩個(gè)FIFO模塊各自的第三存儲(chǔ)器位置的地址。然后所述時(shí)偏補(bǔ)償單元使用所述地址來(lái)確定時(shí)偏量,并且產(chǎn)生控制信號(hào),該控制信號(hào)用于控制所述至少兩個(gè)FIFO模塊中之一的寫入指針,以補(bǔ)償所述時(shí)偏。
根據(jù)本發(fā)明的另一方面,提供了一種包括至少一個(gè)上述FIFO模塊的速率匹配電路。所述至少一個(gè)附加指針包括耦合到所述讀取指針的向前看指針,所述向前看指針用于對(duì)引導(dǎo)第二存儲(chǔ)器位置的第三存儲(chǔ)器位置進(jìn)行尋址,所述第二存儲(chǔ)器位置可由所述讀取指針?biāo)鶎ぶ?。所述速率匹配電路包括?biāo)志電路,當(dāng)在寫入指針和讀取指針中的地址之差超過(guò)預(yù)定門限值時(shí),所述標(biāo)志電路產(chǎn)生觸發(fā)信號(hào)。所述速率匹配電路還包括連接到存儲(chǔ)體的檢測(cè)器,所述檢測(cè)器用于將所述第三存儲(chǔ)器位置中的數(shù)據(jù)與跳過(guò)數(shù)據(jù)進(jìn)行比較,當(dāng)所述第三存儲(chǔ)器位置中的數(shù)據(jù)與跳過(guò)數(shù)據(jù)相匹配時(shí),所述檢測(cè)器則斷言找到數(shù)據(jù)信號(hào)。所述速率匹配電路包括連接到所述至少一個(gè)FIFO模塊的速率匹配器。所述速率匹配器接收所述觸發(fā)信號(hào)和找到數(shù)據(jù)信號(hào),并且當(dāng)確定斷言了觸發(fā)信號(hào)和找到數(shù)據(jù)信號(hào)時(shí),所述速率匹配器產(chǎn)生用于推進(jìn)所述讀取指針,以便跳過(guò)第三存儲(chǔ)器位置的控制信號(hào)。
參考附圖,將更好地理解本發(fā)明,在附圖中
圖1是根據(jù)本發(fā)明一個(gè)實(shí)施例的FIFO模塊的示意圖;圖2是包括了四個(gè)圖1中的FIFO模塊單元的延遲均衡電路的示意圖;圖3是包括了四個(gè)圖1中的FIFO模塊單元的速率匹配電路的示意圖;圖4是詳述圖2中的延遲均衡電路的操作的流程圖;圖5A示出了在四條單獨(dú)的通路上所接收到的具有時(shí)偏的數(shù)據(jù)流;圖5B示出了經(jīng)過(guò)延遲均衡的圖5A中的具有時(shí)偏的數(shù)據(jù)流的圖,所述延遲均衡是使用圖2中的延遲均衡電路,在各自的存儲(chǔ)體中進(jìn)行的;以及圖6是詳述圖3中的速率匹配電路的操作的流程圖。
具體實(shí)施例方式
在下文中,將以接收機(jī)為背景,來(lái)描述本發(fā)明的優(yōu)選實(shí)施例,所述接收機(jī)用于接收在10千兆位以太網(wǎng)中的XAUI接口的四條單獨(dú)的通路上所發(fā)送的四條數(shù)據(jù)流。但是,將會(huì)了解,本發(fā)明可應(yīng)用于諸如10千兆位光纖信道中的接口一類的其他接口。還將了解,本發(fā)明可以應(yīng)用于如下的接收機(jī),所述接收機(jī)用于接收在多個(gè)通信信道上分別發(fā)送的兩條或更多條數(shù)據(jù)流。
根據(jù)本發(fā)明的一個(gè)實(shí)施例,接收機(jī)包括分別如圖2和圖3所示的延遲均衡電路2和速率匹配電路4。接收機(jī)包括四個(gè)先進(jìn)先出(FIFO)模塊6,圖1中詳細(xì)示出了所述FIFO模塊中的一個(gè)。
參考圖1,根據(jù)本發(fā)明的一個(gè)實(shí)施例的FIFO模塊6包括存儲(chǔ)器陣列或存儲(chǔ)體8、用于訪問(wèn)存儲(chǔ)體8的寫入電路10和讀取電路12;標(biāo)志電路14、第一數(shù)據(jù)檢測(cè)器16和第二數(shù)據(jù)檢測(cè)器18。FIFO模塊6可以作為專用集成電路(ASIC)的一部分來(lái)實(shí)現(xiàn),并且在需要多個(gè)FIFO模塊6的情況下,可以在單個(gè)集成電路上實(shí)現(xiàn)若干FIFO模塊。
存儲(chǔ)體8包括32個(gè)可獨(dú)立尋址的存儲(chǔ)器位置20。但是,存儲(chǔ)體8可以包括多于或少于32個(gè)存儲(chǔ)器位置20。每個(gè)存儲(chǔ)器位置20可以存儲(chǔ)任意大小的數(shù)據(jù),例如在10GbE中所使用的9位或10位代碼組。圖1中所示的存儲(chǔ)器位置20是按照對(duì)存儲(chǔ)器位置20進(jìn)行尋址所需地址的升序進(jìn)行排列的,即在存儲(chǔ)體8中較低(鄰近讀取電路12)的存儲(chǔ)器位置20需要較小的地址,而在存儲(chǔ)體8中較高(鄰近寫入電路10)的存儲(chǔ)器位置20需要較大的地址。
寫入電路10包括連接到存儲(chǔ)體8的寫入指針22和向后看(look-back)指針24。寫入指針22所存儲(chǔ)的值作為寫入地址總線26上的地址而被輸出,所述地址用于指向或?qū)ぶ反鎯?chǔ)體8的存儲(chǔ)器位置20。所示出的寫入指針22指向存儲(chǔ)器位置W。同樣地,向后看指針24所存儲(chǔ)的值作為向后看地址總線28上的地址而被輸出,所述地址用于指向或?qū)ぶ反鎯?chǔ)器位置20。所示出的向后看指針24指向存儲(chǔ)器位置X,所述存儲(chǔ)器位置X比存儲(chǔ)器位置W落后一個(gè)存儲(chǔ)器位置。換句話說(shuō),向后看指針24的值比寫入指針22的值少1。應(yīng)該注意,向后看指針24的值可以比寫入指針22的值少2或更多,以對(duì)這樣一個(gè)存儲(chǔ)器位置X進(jìn)行尋址,該存儲(chǔ)器位置X跟蹤存儲(chǔ)器位置W,或者距存儲(chǔ)器位置W相應(yīng)數(shù)目個(gè)存儲(chǔ)器位置20。按這種方式,向后看指針24與寫入指針22相耦合。由寫入時(shí)鐘信號(hào)30對(duì)寫入電路10進(jìn)行定時(shí)和提供時(shí)鐘。寫入電路10還接收包括寫入暫停信號(hào)32、寫入使能信號(hào)34和復(fù)位信號(hào)35在內(nèi)的其他輸入。
在寫入電路10的操作期間,寫入時(shí)鐘信號(hào)30提供用于將數(shù)據(jù)寫入由寫入指針22所指向或?qū)ぶ返拇鎯?chǔ)器位置20中的定時(shí)時(shí)鐘,所述數(shù)據(jù)例如是經(jīng)由輸入數(shù)據(jù)總線36而接收到的10GbE中的代碼組。換句話說(shuō),寫入時(shí)鐘信號(hào)30驅(qū)動(dòng)寫入電路10。當(dāng)斷言復(fù)位信號(hào)35時(shí),對(duì)寫入指針22和向后看指針24進(jìn)行初始化。當(dāng)斷言寫入使能信號(hào)34時(shí),在寫入時(shí)鐘的每個(gè)上升沿,將輸入數(shù)據(jù)總線36上的數(shù)據(jù)寫入由寫入指針22所指向的存儲(chǔ)器位置20中。寫入數(shù)據(jù)之后,在下一個(gè)寫入時(shí)鐘沿,將向后看指針24中所存儲(chǔ)的值設(shè)置為寫入指針22所存儲(chǔ)的值,并且將寫入指針22加1,以指向序列中的下一個(gè)存儲(chǔ)器位置20,以用于寫入。換句話說(shuō),在寫入存儲(chǔ)器位置20一個(gè)寫入時(shí)鐘周期之后,向后看指針24指向該存儲(chǔ)器位置20,并且在向后看數(shù)據(jù)總線38上可獲得存儲(chǔ)在該存儲(chǔ)器位置20中的數(shù)據(jù)?;趯懭霑r(shí)鐘信號(hào)30,來(lái)對(duì)向后看數(shù)據(jù)總線38上的數(shù)據(jù)定時(shí)。該特征允許在寫入數(shù)據(jù)一個(gè)寫入時(shí)鐘周期之后,讀取、檢查或驗(yàn)證所寫入的數(shù)據(jù)。當(dāng)斷言寫入暫停信號(hào)32時(shí),禁止將寫入指針22的值增加到序列中的下一個(gè)存儲(chǔ)器位置的地址。該動(dòng)作導(dǎo)致寫入指針22所指向的存儲(chǔ)器位置20在保持?jǐn)嘌詫懭霑和P盘?hào)32期間被覆寫。FIFO模塊6的該特征的使用可用于對(duì)XAUI接口的數(shù)據(jù)流進(jìn)行延遲均衡,隨后將對(duì)此進(jìn)行描述。
讀取電路12包括讀取指針40和向前看(look-ahead)指針42。讀取指針40所存儲(chǔ)的值作為讀取地址總線44上的地址而被輸出,所述地址用于指向或?qū)ぶ反鎯?chǔ)器位置20。圖1中所示出的讀取指針40指向存儲(chǔ)器位置Y。同樣地,向前看指針42所存儲(chǔ)的值作為向前看地址總線46上的地址而被輸出,所述地址用于指向或?qū)ぶ反鎯?chǔ)器位置20。圖1中所示出的向前看指針42指向存儲(chǔ)器位置Z,所述存儲(chǔ)器位置Z比存儲(chǔ)器位置Y領(lǐng)先一個(gè)存儲(chǔ)器位置。應(yīng)該注意,存儲(chǔ)器位置Z可以比存儲(chǔ)器位置Y領(lǐng)先多于一個(gè)存儲(chǔ)器位置20,以增強(qiáng)數(shù)據(jù)的向前看能力。該特征使FIFO無(wú)需附加的外部寄存器體,就能夠迎合更長(zhǎng)代碼組比較持續(xù)時(shí)間的需要。按這種方式,向前看指針42與讀取指針40相耦合。由讀取時(shí)鐘信號(hào)48對(duì)讀取電路12進(jìn)行定時(shí)和提供時(shí)鐘。讀取電路12接收包括讀取使能信號(hào)50、讀取暫停信號(hào)52和讀取雙倍增加(read-double-inc)信號(hào)54在內(nèi)的多種輸入。讀取電路12也使用復(fù)位信號(hào)35進(jìn)行復(fù)位。
在讀取電路12的操作期間,斷言讀取使能信號(hào)50,以允許在每個(gè)讀取時(shí)鐘的上升沿,分別讀取在由讀取指針40和向前看指針42所尋址的兩個(gè)存儲(chǔ)器位置中所存儲(chǔ)的數(shù)據(jù)。分別可以在輸出數(shù)據(jù)總線56和向前看數(shù)據(jù)總線58上獲得從諸如存儲(chǔ)器位置Y和Z的兩個(gè)存儲(chǔ)器位置上所讀取的數(shù)據(jù)。在從存儲(chǔ)器位置20讀取數(shù)據(jù)之后,將讀取指針中所存儲(chǔ)的值加1,使得讀取指針40指向?qū)⒈蛔x取的下一個(gè)存儲(chǔ)器位置?;诒患?的讀取指針的新值來(lái)計(jì)算向前看指針42中所存儲(chǔ)的新值。然后將向前看指針42的新值存儲(chǔ)在向前看指針42中。
當(dāng)斷言讀取暫停信號(hào)52時(shí),則禁止推進(jìn)讀取指針40,就是說(shuō),禁止增加讀取指針40的值。當(dāng)斷言讀取雙倍增加信號(hào)54時(shí),在讀取操作之后,將讀取指針40中所存儲(chǔ)的值加2,而不是如前所述地加1。換句話說(shuō),當(dāng)斷言讀取雙倍增加信號(hào)54時(shí),將讀取指針40推進(jìn)兩個(gè)存儲(chǔ)器位置,這具有跳過(guò)一個(gè)存儲(chǔ)器位置的效果。向前看指針42允許預(yù)先讀取存儲(chǔ)器位置Z中的數(shù)據(jù),從而可以在讀取存儲(chǔ)器位置Y時(shí),對(duì)是否可以跳過(guò)存儲(chǔ)器位置Z做出判斷。如果數(shù)據(jù)可以被跳過(guò),則推進(jìn)讀取指針40,以繞過(guò)存儲(chǔ)器位置Z。FIFO模塊6的該特征可用于XAUI接口中的速率匹配,隨后將對(duì)此進(jìn)行描述。
第一數(shù)據(jù)檢測(cè)器16通過(guò)向后看數(shù)據(jù)總線38,接收來(lái)自由向后看指針24所指向的存儲(chǔ)器位置20的數(shù)據(jù)。該第一數(shù)據(jù)檢測(cè)器16將所述數(shù)據(jù)與第一預(yù)定數(shù)據(jù)相比較,并且當(dāng)存在匹配時(shí),產(chǎn)生找到第一數(shù)據(jù)信號(hào)60。所述第一預(yù)定數(shù)據(jù)可以是硬連線的或者可編程的。
同樣地,第二數(shù)據(jù)檢測(cè)器18通過(guò)向前看數(shù)據(jù)總線58,接收來(lái)自由向前看地址總線46所指向的存儲(chǔ)器位置20的數(shù)據(jù)。該第二數(shù)據(jù)檢測(cè)器18將所述數(shù)據(jù)與第二預(yù)定數(shù)據(jù)相比較,并且當(dāng)存在匹配時(shí),產(chǎn)生找到第二數(shù)據(jù)信號(hào)62。所述第二預(yù)定數(shù)據(jù)也可以是硬連線的或者可編程的。
標(biāo)志電路14接收寫入指針22和讀取指針40中所存儲(chǔ)的值,以作為輸入。標(biāo)志電路14由讀取時(shí)鐘信號(hào)48進(jìn)行定時(shí)和提供時(shí)鐘。標(biāo)志電路14也可以由寫入時(shí)鐘信號(hào)30進(jìn)行定時(shí)和提供時(shí)鐘。標(biāo)志電路14在標(biāo)志總線64上產(chǎn)生諸如空標(biāo)志、滿標(biāo)志、下溢標(biāo)志和上溢標(biāo)志一類的標(biāo)志。這些標(biāo)志對(duì)本領(lǐng)域技術(shù)人員是公知的。標(biāo)志電路14還產(chǎn)生過(guò)于靠近(too-close)觸發(fā)信號(hào)66和過(guò)于遠(yuǎn)離(too-far-apart)觸發(fā)信號(hào)68。當(dāng)標(biāo)志電路14確定寫入指針22和讀取指針40中所存儲(chǔ)的值之間的差小于預(yù)定的最小距離時(shí),標(biāo)志電路14則設(shè)置或斷言過(guò)于靠近信號(hào)66。換句話說(shuō),當(dāng)讀取指針40逼近寫入指針22,并且兩個(gè)指針22、40之間的距離小于預(yù)定的最小距離時(shí),則設(shè)置過(guò)于靠近信號(hào)66。當(dāng)標(biāo)志電路14確定寫入指針22和讀取指針40中所存儲(chǔ)的值之間的差大于預(yù)定的最大距離時(shí),標(biāo)志電路14則設(shè)置或斷言過(guò)于遠(yuǎn)離信號(hào)68。換句話說(shuō),當(dāng)兩指針越來(lái)越遠(yuǎn),直到兩個(gè)指針22、40之間的距離大于預(yù)定的最大距離時(shí),則設(shè)置過(guò)于遠(yuǎn)離信號(hào)68。預(yù)定的最小和最大距離也可以是硬連線的或者可編程的。
有利的是,根據(jù)本發(fā)明的FIFO模塊是簡(jiǎn)單的、模塊化的、面積有效的,其具有確定的系統(tǒng)硬件結(jié)構(gòu),并且允許系統(tǒng)的設(shè)計(jì)和驗(yàn)證。用于分別與向后看數(shù)據(jù)總線38和向前看數(shù)據(jù)總線58中的數(shù)據(jù)相比較的第一和第二數(shù)據(jù)被嵌入到FIFO模塊中;在FIFO模塊之外不需要附加電路。對(duì)第一和第二數(shù)據(jù)的任何改變都被限制在FIFO模塊內(nèi)部。這樣的FIFO模塊可以被獨(dú)立驗(yàn)證。在現(xiàn)有技術(shù)中,在搜索數(shù)據(jù)中的任何改變都需要改變FIFO模塊外部的電路。這樣就不得不在系統(tǒng)級(jí)上執(zhí)行系統(tǒng)驗(yàn)證的仿真。和現(xiàn)在可以在FIFO模塊級(jí)上所方便地執(zhí)行的仿真相比,這種仿真執(zhí)行起來(lái)更加困難,并且耗時(shí)。
此外,為了迎合代碼組比較持續(xù)時(shí)間增加的需要,只需要相應(yīng)地增大向前看指針42和讀取指針40之間的距離。不需要如現(xiàn)有技術(shù)中那樣,由于代碼組比較持續(xù)時(shí)間的增加,而改變系統(tǒng)級(jí)設(shè)計(jì)以增加寄存器體。但是,向前看指針42的這種調(diào)整將導(dǎo)致寫入指針22和向前看指針42之間的間隙或距離減小,這降低了FIFO緩沖數(shù)據(jù)的能力。這樣一來(lái),F(xiàn)IFO能夠處理的讀取和寫入數(shù)據(jù)的速率之差相應(yīng)地減小。因?yàn)閷⒉坏貌桓l繁地執(zhí)行速率匹配,以補(bǔ)償數(shù)據(jù)速率之差,所以速率匹配性能降低。如果降低的系統(tǒng)性能是可以忍受的,那么和現(xiàn)有技術(shù)相比在面積方面的節(jié)省是最大的。如果降低的系統(tǒng)性能是不可忍受的,那么可以增大FIFO模塊中存儲(chǔ)體的尺寸,以便維持寫入指針和向前看指針之間的最優(yōu)間隙。由于在芯片的基板面(real estate)方面,存儲(chǔ)單元的尺寸要小于寄存器的尺寸,因此存儲(chǔ)體尺寸的增加不會(huì)如FIFO模塊外部的寄存器體那樣明顯地導(dǎo)致ASIC面積的增大。此外,存儲(chǔ)單元是有組織的晶體管布局結(jié)構(gòu),它相對(duì)于存儲(chǔ)器布局結(jié)構(gòu),可以提供對(duì)路由資源的更好利用。
現(xiàn)在參考圖1和圖2,下面將描述延遲均衡電路2,所述延遲均衡電路2包括四個(gè)FIFO模塊6,用于對(duì)在XAUI接口中的四條單獨(dú)的通路上所接收到的四條數(shù)據(jù)流進(jìn)行延遲均衡。延遲均衡電路2包括連接到時(shí)偏補(bǔ)償單元72的四個(gè)通路電路70。每個(gè)通路電路70都包括用于對(duì)解串?dāng)?shù)據(jù)流74(圖3)的數(shù)據(jù)進(jìn)行緩沖的FIFO模塊6。從流入數(shù)據(jù)流74中所恢復(fù)出的時(shí)鐘信號(hào)用作驅(qū)動(dòng)FIFO模塊6的寫入電路10的寫入時(shí)鐘信號(hào)30。該被恢復(fù)的時(shí)鐘信號(hào)一般被稱為寫入域時(shí)鐘。對(duì)FIFO模塊6的第一數(shù)據(jù)檢測(cè)器16進(jìn)行硬連線或者編程,以對(duì)FIFO模塊6中所接收到的解串?dāng)?shù)據(jù)流36中是否出現(xiàn)“A”代碼組進(jìn)行監(jiān)控。如前所述,當(dāng)在解串?dāng)?shù)據(jù)流36中檢測(cè)到“A”代碼組時(shí),F(xiàn)IFO模塊6斷言找到第一數(shù)據(jù)信號(hào)60。
每個(gè)FIFO模塊6都連接到一組粘性寄存器(sticky register)76(本領(lǐng)域技術(shù)人員也稱其為粘性寄存器文件)。粘性寄存器76接收找到第一數(shù)據(jù)信號(hào)60,并且經(jīng)由向后看地址總線28接收在FIFO模塊6的向后看指針24中所存儲(chǔ)的值。粘性寄存器76也由寫入時(shí)鐘信號(hào)30提供時(shí)鐘。粘性寄存器76具有兩個(gè)輸出,即對(duì)齊字符檢測(cè)(align-char-detect)信號(hào)78和對(duì)齊字符位置(align-char-pos)總線80,它們分別是找到第一數(shù)據(jù)信號(hào)60和向后看地址總線28上的信號(hào)的相應(yīng)的被鎖存信號(hào)。當(dāng)FIFO模塊6斷言找到第一數(shù)據(jù)信號(hào)60時(shí),粘性寄存器76將在向后看地址總線28上出現(xiàn)的地址鎖存或鎖定到粘性寄存器76中。該地址是FIFO模塊6中如前所述的在其中存儲(chǔ)有“A”代碼組的存儲(chǔ)器位置的絕對(duì)地址。
同步器82連接到粘性寄存器76,以接收來(lái)自粘性寄存器76的對(duì)齊字符檢測(cè)信號(hào)78和對(duì)齊字符位置總線80上的信號(hào)。同步器82由接收方的系統(tǒng)時(shí)鐘信號(hào)提供時(shí)鐘,并且所述系統(tǒng)時(shí)鐘信號(hào)用作FIFO模塊6的讀取時(shí)鐘信號(hào)48。接收方的系統(tǒng)時(shí)鐘信號(hào)一般可被稱為讀取域時(shí)鐘。接收方的系統(tǒng)時(shí)鐘信號(hào)與被恢復(fù)的發(fā)送方的時(shí)鐘信號(hào)之間不存在任何相位關(guān)系。但是,在XAUI標(biāo)準(zhǔn)中指定,被恢復(fù)的發(fā)送方時(shí)鐘和接收方的系統(tǒng)時(shí)鐘間的頻率差應(yīng)該小于百萬(wàn)分之200(200ppm)。同步器82將基于寫入時(shí)鐘30的對(duì)齊字符檢測(cè)信號(hào)78和對(duì)齊字符位置總線80上的信號(hào)分別同步或重定時(shí)到系統(tǒng)時(shí)鐘信號(hào)48,以產(chǎn)生兩個(gè)輸出,即檢測(cè)同步(adec-syn)信號(hào)84和位置同步(apos-syn)總線86上的信號(hào)。
時(shí)偏補(bǔ)償單元72接收通路電路70中每個(gè)通路電路的同步器82的兩個(gè)輸出。就是說(shuō),時(shí)偏補(bǔ)償單元72接收全部的四個(gè)檢測(cè)同步信號(hào)84和四條位置同步總線86上的信號(hào)。時(shí)偏補(bǔ)償單元72也由系統(tǒng)時(shí)鐘信號(hào)提供時(shí)鐘。當(dāng)時(shí)偏補(bǔ)償單元72確定斷言了所有的四個(gè)檢測(cè)同步信號(hào)時(shí),其從位置同步總線86上讀取四個(gè)FIFO模塊6中包含“A”代碼組的各個(gè)存儲(chǔ)器位置的地址。從這些地址中,時(shí)偏補(bǔ)償單元72確定通路到通路或通路間的時(shí)偏。最后,時(shí)偏補(bǔ)償單元72產(chǎn)生用于各個(gè)FIFO模塊6的寫入暫停信號(hào)32A、32B、32C、32D。每個(gè)寫入暫停信號(hào)都用來(lái)控制各個(gè)FIFO模塊6的寫入指針22,以將其推進(jìn)暫停或禁止一段時(shí)間,該段時(shí)間相應(yīng)于FIFO模塊6中所接收到的流入數(shù)據(jù)流74的時(shí)偏。這種動(dòng)作補(bǔ)償了FIFO模塊6所接收到的數(shù)據(jù)流之間的時(shí)偏,并且能夠?qū)α魅霐?shù)據(jù)流74的下游數(shù)據(jù)進(jìn)行對(duì)齊或延遲均衡。
時(shí)偏補(bǔ)償單元72還產(chǎn)生公共的寫入使能信號(hào)34,所述寫入使能信號(hào)34用于控制,或者更具體地說(shuō),用于使流入數(shù)據(jù)流74中的數(shù)據(jù)能夠?qū)懭隖IFO模塊6的存儲(chǔ)體8中。時(shí)偏補(bǔ)償單元72還產(chǎn)生用于復(fù)位FIFO模塊6的復(fù)位信號(hào)35,但是這里沒(méi)有示出復(fù)位信號(hào)35的耦合,并且這種耦合對(duì)本領(lǐng)域技術(shù)人員來(lái)說(shuō)將是公知的。
對(duì)齊監(jiān)控單元88連接到FIFO模塊6的輸出數(shù)據(jù)總線56,以接收從FIFO模塊6中所讀取的數(shù)據(jù)。當(dāng)對(duì)齊監(jiān)控單元88檢測(cè)到四個(gè)連續(xù)的無(wú)錯(cuò)誤“A”的有序集合時(shí),其斷言延遲均衡完成(deskew-done)信號(hào)92,以指示已經(jīng)完成了通路對(duì)齊或延遲均衡。在10GbE的術(shù)語(yǔ)中,“A”的有序集合是在單個(gè)讀取操作或周期中,從各個(gè)FIFO模塊6中的每個(gè)所接收到的“A”代碼組。在接收到少于四個(gè)連續(xù)的無(wú)錯(cuò)誤且被對(duì)齊的“A”的有序集合的情況下,對(duì)齊監(jiān)控單元88斷言對(duì)齊丟失(loss-of-alignment)信號(hào)90,將所述對(duì)齊丟失信號(hào)90提供給時(shí)偏補(bǔ)償單元72,然后時(shí)偏補(bǔ)償單元72重新啟動(dòng)延遲均衡過(guò)程。當(dāng)延遲均衡過(guò)程完成時(shí),對(duì)齊監(jiān)控單元88(1)檢查四個(gè)FIFO模塊6的輸出數(shù)據(jù)總線56上的數(shù)據(jù)是否持續(xù)對(duì)齊;(2)容忍由于預(yù)定的相當(dāng)?shù)偷恼`碼率而引起的對(duì)齊不一致性,并且(3)如果沒(méi)有如標(biāo)準(zhǔn)中所指定的那樣可靠地維持對(duì)齊,則斷言對(duì)齊丟失信號(hào)90。
下面,將另外參考圖4中所示出的流程圖來(lái)描述延遲均衡電路2的操作。當(dāng)對(duì)接收機(jī)加電時(shí),在“開(kāi)始”步驟102中啟動(dòng)延遲均衡電路2的延遲均衡過(guò)程或序列100。接下來(lái),延遲均衡序列100前進(jìn)至“復(fù)位FIFO”步驟104,在該步驟中,時(shí)偏補(bǔ)償單元72斷言復(fù)位信號(hào)35,以復(fù)位四個(gè)FIFO模塊6。復(fù)位四個(gè)FIFO模塊的步驟初始化寫入指針22、向后看指針24、讀取指針40和向前看指針42。在本實(shí)施例中,將寫入指針22和讀取指針40之間的間隙或距離選擇為十個(gè)存儲(chǔ)器位置。寫入指針22和讀取指針40之間的其他間隙或距離也是可能的。接下來(lái),延遲均衡序列100前進(jìn)至“使能對(duì)FIFO的寫入”步驟106,在該步驟中,時(shí)偏補(bǔ)償單元72斷言寫入使能信號(hào)34,以允許將流入數(shù)據(jù)流74中的代碼組寫入FIFO模塊6的存儲(chǔ)體8中。如前所述,在寫入時(shí)鐘信號(hào)30的每個(gè)寫入時(shí)鐘周期上,將代碼組寫入存儲(chǔ)器位置20,并且將向后看指針24的值設(shè)置為指向在寫入時(shí)鐘信號(hào)30之前的時(shí)鐘周期中所寫入的存儲(chǔ)器位置20。利用該向后看指針24,在寫入特定的代碼組之后,幾乎立即就可獲得該特定代碼組。
接下來(lái),延遲均衡序列100前進(jìn)至“找到對(duì)齊代碼組?”的判斷步驟108。延遲均衡序列100圍繞該判斷步驟108循環(huán),直到確定檢測(cè)到“A”代碼組已經(jīng)被寫入每個(gè)FIFO模塊6的存儲(chǔ)體8中。具體地說(shuō),在該判斷步驟108中,延遲均衡序列100圍繞判斷步驟108循環(huán),以等待FIFO模塊6的第一數(shù)據(jù)檢測(cè)器16斷言其各自的找到第一數(shù)據(jù)信號(hào)60。在該具體的實(shí)施例中,找到第一數(shù)據(jù)信號(hào)60被鎖存并同步到系統(tǒng)時(shí)鐘信號(hào)48。當(dāng)時(shí)偏補(bǔ)償單元72確定斷言了所有檢測(cè)同步信號(hào)84時(shí),延遲均衡序列100退出“找到對(duì)齊代碼組?”的判斷步驟108,并且前進(jìn)至“計(jì)算時(shí)偏”步驟110,所述檢測(cè)同步信號(hào)84是找到第一數(shù)據(jù)信號(hào)60的經(jīng)鎖存和同步的版本,在步驟110中,時(shí)偏補(bǔ)償單元72計(jì)算通路到通路或通路間的時(shí)偏。稍后將以示例的方式詳細(xì)描述通路間時(shí)偏的計(jì)算。
在計(jì)算出通路間時(shí)偏之后,延遲均衡序列100前進(jìn)至“時(shí)偏在規(guī)范之內(nèi)?”的判斷步驟112。在該判斷步驟112中,時(shí)偏補(bǔ)償單元72判斷通路間時(shí)偏是否在預(yù)定的規(guī)范之內(nèi),例如確定通路間時(shí)偏是否在根據(jù)XAUI建議的四個(gè)存儲(chǔ)器位置之內(nèi)。如果在該判斷步驟112中確定通路間時(shí)偏中的一個(gè)或多個(gè)不在規(guī)定之內(nèi),延遲均衡序列100則返回到“復(fù)位FIFO”步驟104。但是,如果在判斷步驟112中確定所有的通路間時(shí)偏都在規(guī)定之內(nèi),延遲均衡序列100則前進(jìn)至“執(zhí)行代碼跳過(guò)”步驟114。在該步驟114中,時(shí)偏補(bǔ)償單元72斷言如前所述的適當(dāng)?shù)膶懭霑和P盘?hào)32A-32D,以使所選擇的數(shù)據(jù)流中的下游代碼組被跳過(guò)。
現(xiàn)在將借助圖5A和5B,更詳細(xì)地描述“計(jì)算時(shí)偏”步驟110和“執(zhí)行代碼跳過(guò)”步驟114。圖5A示出了四條具有時(shí)偏的數(shù)據(jù)流。在寫入指針P左邊的數(shù)據(jù)流部分是FIFO模塊6中已經(jīng)接收到的,而在寫入指針P右邊的數(shù)據(jù)流部分是FIFO模塊中將要接收到的。如果隨后不執(zhí)行延遲均衡,那么在FIFO模塊中將接收到如圖所示的寫入指針右邊的數(shù)據(jù)流的那些部分,即其中的“A”代碼組沒(méi)有對(duì)齊。圖5B示出了在其各自的FIFO模塊6中,從特定的存儲(chǔ)器位置起進(jìn)行延遲均衡的相同的四條數(shù)據(jù)流。當(dāng)在通路0中寫入“A”代碼組之后不久的一個(gè)時(shí)刻,將在“找到對(duì)齊代碼組?”的判斷步驟108中確定出在每個(gè)FIFO模塊6中找到一個(gè)“A”代碼組。
在“計(jì)算時(shí)偏”步驟110中,時(shí)偏補(bǔ)償單元72使用FIFO模塊6中檢測(cè)到存儲(chǔ)了“A”代碼組的地址來(lái)獲得通路到通路的時(shí)偏。在這種情況下,如圖5A所示,通路0與通路1、通路2以及通路3之間的時(shí)偏分別被確定為三個(gè)、一個(gè)和兩個(gè)代碼組。隨后,例如在通路1的寫入指針P如圖5B中所示的時(shí)刻,在“執(zhí)行代碼跳過(guò)”步驟114中,時(shí)偏補(bǔ)償單元72斷言用于通路1、2和3的寫入暫停信號(hào)。用于通路1、2和3的寫入暫停信號(hào)的長(zhǎng)度分別是寫入三個(gè)、一個(gè)和兩個(gè)代碼組所需要的時(shí)段。換句話說(shuō),利用寫入暫停信號(hào)32B對(duì)用于通路1的寫入指針22進(jìn)行限制,從而使其在寫入接下來(lái)的三個(gè)代碼組時(shí),指向相同的存儲(chǔ)器位置20。就是說(shuō),在相同的存儲(chǔ)器位置20中覆寫如圖5A中所圈出的通路1中的三個(gè)代碼組“KKR”,從而有效地跳過(guò)這三個(gè)代碼組。同樣地,用于通路2和通路3的寫入暫停信號(hào)32C、32D使得在各自的通路中跳過(guò)了如圖5A中所圈出的代碼組“R”和“KR”。如圖5B所示,在與FIFO模塊6中最長(zhǎng)的寫入暫停信號(hào)32相對(duì)應(yīng)的時(shí)段之后,F(xiàn)IFO模塊6中所存儲(chǔ)的數(shù)據(jù)流被對(duì)齊。對(duì)于該具體的情況,在該時(shí)刻,用于通路0、通路2和通路3的寫入指針22相對(duì)于用于通路1的寫入指針已經(jīng)分別推進(jìn)了三個(gè)、兩個(gè)和一個(gè)存儲(chǔ)器位置,所述用于通路1的寫入指針保持固定或不變。
在“執(zhí)行代碼跳過(guò)”步驟114之后,延遲均衡序列100接下來(lái)前進(jìn)至“存在任何對(duì)齊丟失?”判斷步驟116,在該判斷步驟116中,對(duì)齊監(jiān)控單元88對(duì)四個(gè)FIFO模塊6的輸出數(shù)據(jù)總線56進(jìn)行監(jiān)控,以確定來(lái)自所有四個(gè)FIFO模塊的數(shù)據(jù)流是否都被對(duì)齊。當(dāng)對(duì)齊監(jiān)控單元88在相同的讀取操作中,從所有四個(gè)FIFO模塊6中接收到四個(gè)連續(xù)的無(wú)錯(cuò)誤的對(duì)齊列或?qū)R有序集合,即“A”代碼組時(shí),對(duì)齊監(jiān)控單元88則確定所有四個(gè)FIFO模塊6中的數(shù)據(jù)流被對(duì)齊。如果確定四個(gè)通路中的數(shù)據(jù)全都被對(duì)齊,延遲均衡序列100則簡(jiǎn)單地圍繞“存在任何對(duì)齊丟失?”判斷步驟116循環(huán),直到對(duì)齊監(jiān)控單元88檢測(cè)到流入的數(shù)據(jù)流74未對(duì)齊,在這種情況下,延遲均衡序列返回到“復(fù)位FIFO”步驟104,從而再一次執(zhí)行流入數(shù)據(jù)流74的延遲均衡。
有利的是,與使用現(xiàn)有技術(shù)的FIFO模塊的實(shí)現(xiàn)方法相比,利用FIFO模塊中的向后看指針,可以更早地執(zhí)行延遲均衡。
因此,延遲均衡電路2能夠執(zhí)行用于對(duì)兩個(gè)數(shù)據(jù)流進(jìn)行延遲均衡的方法。所述延遲均衡方法包括將兩個(gè)數(shù)據(jù)流的數(shù)據(jù)寫入各自的存儲(chǔ)體8的存儲(chǔ)器位置20中,所述各自的存儲(chǔ)體8可由各自的寫入指針22所尋址。所述延遲均衡方法還包括記下在各自存儲(chǔ)體中的兩個(gè)地址,其中被寫入的數(shù)據(jù)與對(duì)齊數(shù)據(jù)相匹配。使用這兩個(gè)地址來(lái)確定兩數(shù)據(jù)流之間的時(shí)偏。將其中一個(gè)寫入指針的推進(jìn)的過(guò)程暫停相應(yīng)于所述時(shí)偏的一段時(shí)間,以便在將兩個(gè)數(shù)據(jù)流的下游數(shù)據(jù)寫入各自的存儲(chǔ)體時(shí),在存儲(chǔ)體中對(duì)齊所述兩個(gè)數(shù)據(jù)流的下游數(shù)據(jù)。使用現(xiàn)有技術(shù)的FIFO模塊可以實(shí)現(xiàn)所述延遲均衡方法,其中通過(guò)解除寫入使能信號(hào)的斷言,可以暫停寫入指針的推進(jìn)。
接下來(lái)參考圖3,將描述速率匹配電路4,所述速率匹配電路4包括四個(gè)FIFO模塊6,用于對(duì)發(fā)送方的寫入域時(shí)鐘和接收方的讀取域時(shí)鐘進(jìn)行速率匹配。但是,應(yīng)該注意,具有多于或少于四個(gè)FIFO模塊6的速率匹配電路也可以工作。
圖2中的通路電路70中的每個(gè)FIFO模塊6除了連接到各自的粘性寄存器76之外,還連接到速率匹配器120。速率匹配器120控制和協(xié)調(diào)速率匹配操作。當(dāng)連接到FIFO模塊6時(shí),速率匹配器120從四個(gè)FIFO模塊6中的每一個(gè)接收過(guò)于靠近信號(hào)66和過(guò)于遠(yuǎn)離信號(hào)68。速率匹配器120還從四個(gè)FIFO模塊6中的每一個(gè)接收找到第二數(shù)據(jù)信號(hào)62。FIFO模塊6接收來(lái)自速率匹配器120的公共的讀取使能信號(hào)50、公共的讀取暫停信號(hào)52和公共的讀取雙倍增加信號(hào)54。速率匹配器120由系統(tǒng)時(shí)鐘48提供時(shí)鐘。
除了相互連接之外,F(xiàn)IFO模塊6和速率匹配器120還連接到輸出寄存器122。具體地說(shuō),每個(gè)FIFO模塊6經(jīng)由其各自的輸出數(shù)據(jù)總線56而連接到輸出寄存器122。經(jīng)由到FIFO模塊6的公共的讀取使能信號(hào)50,輸出寄存器122能夠同步地接收從FIFO模塊6中的每一個(gè)所讀取的代碼組。輸出寄存器122接收來(lái)自速率匹配器120的跳過(guò)插入(skip-insert)信號(hào)124。速率匹配器120還接收來(lái)自輸出寄存器122的IPG檢測(cè)(ipg-detect)信號(hào)126。輸出寄存器122還在各條經(jīng)速率匹配的輸出數(shù)據(jù)總線128上輸出經(jīng)速率匹配的代碼組。經(jīng)速率匹配的輸出總線128上的數(shù)據(jù)可以被讀取,并且被呈遞給XGXS層中的控制代碼組處理器。
輸出寄存器122同速率匹配器120一樣,也是由系統(tǒng)時(shí)鐘48提供時(shí)鐘。從下面參考圖6中所示流程圖的速率匹配電路4的操作的描述中,各種信號(hào)的功能將變得清楚。
速率匹配序列或過(guò)程130從“開(kāi)始”步驟132啟動(dòng),其中將解串?dāng)?shù)據(jù)流36的代碼組寫入各自FIFO模塊6的各自存儲(chǔ)體8中,并且將利用延遲均衡電路2對(duì)所述代碼組進(jìn)行延遲均衡。每個(gè)解串?dāng)?shù)據(jù)流36的代碼組都是頻率鎖定的,但是它異步于其他解串?dāng)?shù)據(jù)流36的代碼組。
接下來(lái),速率匹配序列130前進(jìn)至“系統(tǒng)延遲均衡完成?”判斷步驟134,在該步驟中,速率匹配器120等待延遲均衡電路2,或者更具體地說(shuō),等待延遲均衡電路2中的對(duì)齊監(jiān)控單元88斷言延遲均衡完成信號(hào)92。當(dāng)在該步驟中確定斷言了延遲均衡完成信號(hào)92時(shí),速率匹配序列130則退出“系統(tǒng)延遲均衡完成?”判斷步驟134,并且前進(jìn)至“使能對(duì)FIFO的讀取”步驟136。在該步驟136中,速率匹配器120斷言讀取使能信號(hào)50,并且解除讀取暫停信號(hào)52和讀取雙倍增加信號(hào)54的斷言。當(dāng)斷言了讀取使能信號(hào)50時(shí),基于系統(tǒng)時(shí)鐘48,在輸出數(shù)據(jù)總線56上輸出由各自的讀取指針40所尋址的存儲(chǔ)體8中的每一個(gè)中的代碼組。這時(shí),在不同數(shù)據(jù)流中的代碼組被對(duì)齊或同步。但是,在寫入時(shí)鐘30和系統(tǒng)時(shí)鐘48之間可能存在頻率差。任何頻率差都需要被補(bǔ)償,以確保接收機(jī)的正確操作。
接下來(lái),速率匹配序列130前進(jìn)至“斷言了過(guò)于遠(yuǎn)離信號(hào)?”的判斷步驟138,在該判斷步驟138中,速率匹配器120確定各個(gè)FIFO模塊6是否斷言了過(guò)于遠(yuǎn)離信號(hào)68。如前所述,當(dāng)每個(gè)FIFO模塊6中的標(biāo)志電路14確定寫入時(shí)鐘30比系統(tǒng)時(shí)鐘48運(yùn)轉(zhuǎn)得更快時(shí),每個(gè)FIFO模塊6則斷言過(guò)于遠(yuǎn)離信號(hào)68。在這種情況下,寫入指針22和讀取指針40越來(lái)越遠(yuǎn)。當(dāng)標(biāo)志電路14確定指針值之差超過(guò)預(yù)定的最大距離時(shí),標(biāo)志電路14則斷言過(guò)于遠(yuǎn)離信號(hào)68。具有32個(gè)存儲(chǔ)器位置20的存儲(chǔ)體8的預(yù)定最大距離例如可以是15個(gè)位置的距離。
如果在“斷言了過(guò)于遠(yuǎn)離信號(hào)?”的判斷步驟138中確定斷言了過(guò)于遠(yuǎn)離信號(hào)68,速率匹配序列130則前進(jìn)至“檢測(cè)到‘R’代碼組?”的判斷步驟140,在該判斷步驟140中,速率匹配器120確定是否所有的FIFO模塊6,或者更具體地說(shuō),是否所有FIFO模塊6中的第二數(shù)據(jù)檢測(cè)器18都已經(jīng)在各自的存儲(chǔ)體8中檢測(cè)到“R”代碼組。當(dāng)檢測(cè)到“R”代碼組時(shí),第二數(shù)據(jù)檢測(cè)器10中的每一個(gè)分別斷言各自的找到第二數(shù)據(jù)信號(hào)62。如果在“檢測(cè)到‘R’代碼組?”的判斷步驟140中確定沒(méi)有斷言全部的找到第二數(shù)據(jù)信號(hào)62,速率匹配序列130則圍繞“檢測(cè)到‘R’代碼組?”的判斷步驟140循環(huán)。當(dāng)斷言了所有找到第二數(shù)據(jù)信號(hào)62時(shí),速率匹配序列130則退出“檢測(cè)到‘R’代碼組?”的判斷步驟140,并且前進(jìn)至“推進(jìn)讀取指針”步驟142。在“推進(jìn)讀取指針”步驟142中,速率匹配器120斷言讀取雙倍增加信號(hào)54,以指導(dǎo)FIFO模塊6中的讀取電路12,在讀取操作之后將其各自的讀取指針40加2,而不是加1。這樣的讀取指針40的推進(jìn)導(dǎo)致跳過(guò)了數(shù)據(jù)流中被檢測(cè)到的“R”代碼組的列,并且縮短了讀取指針40和其各自的寫入指針22之間的距離。接下來(lái),速率匹配序列130返回到“斷言了過(guò)于遠(yuǎn)離信號(hào)?”的判斷步驟138。
有利的是,利用FIFO模塊中的向前看指針,可以在讀取存儲(chǔ)器位置時(shí)快速地執(zhí)行讀取指針的推進(jìn)。與現(xiàn)有技術(shù)不同,本發(fā)明不需要附加的外部電路系統(tǒng)來(lái)分別緩沖所讀取的數(shù)據(jù)。
如果在“斷言了過(guò)于遠(yuǎn)離信號(hào)?”的判斷步驟138中確定沒(méi)有斷言過(guò)于遠(yuǎn)離信號(hào)68,速率匹配序列130則前進(jìn)至“斷言了過(guò)于靠近信號(hào)?”的判斷步驟144。在該步驟中,速率匹配器120判斷是否所有的FIFO模塊6都已經(jīng)斷言了其各自的過(guò)于靠近信號(hào)66,以指出寫入指針22和各自的讀取指針42之間的距離小于預(yù)定的最小距離。對(duì)于具有32個(gè)存儲(chǔ)器位置20的存儲(chǔ)體,所述預(yù)定的最小距離可以是5個(gè)存儲(chǔ)器位置20。如前所述,當(dāng)系統(tǒng)時(shí)鐘比寫入時(shí)鐘快,并且導(dǎo)致讀取指針40逼近寫入指針22時(shí),則斷言過(guò)于靠近信號(hào)66。如果在“斷言了過(guò)于靠近信號(hào)?”的判斷步驟144中確定已經(jīng)斷言了所有的過(guò)于靠近信號(hào)66時(shí),速率匹配序列130則前進(jìn)至“檢測(cè)到分組間間隙?”的判斷步驟146。
在“檢測(cè)到分組間間隙?”的判斷步驟146中,速率匹配器120等待輸出寄存器122斷言IPG檢測(cè)信號(hào)126。當(dāng)輸出寄存器122檢測(cè)到輸出數(shù)據(jù)總線56中的代碼組屬于分組間間隙(IPG)時(shí),輸出寄存器122則斷言IPG檢測(cè)信號(hào)126。然后,速率匹配序列130退出“檢測(cè)到IPG?”的判斷步驟146,并且前進(jìn)至“暫停讀取指針”步驟148,在該步驟148中,速率匹配器120通過(guò)斷言讀取暫停信號(hào)52來(lái)響應(yīng)于IPG檢測(cè)信號(hào)126的斷言。讀取暫停信號(hào)52的斷言致使所有的FIFO模塊6暫時(shí)地停止其讀取指針40的增加,以便加寬讀取指針40和其各自的寫入指針22之間的距離。同時(shí),速率匹配器120斷言跳過(guò)插入信號(hào)124,以致使輸出寄存器122在經(jīng)過(guò)速率匹配的輸出數(shù)據(jù)總線128上強(qiáng)行插入一列“R”代碼組。因此,一列四個(gè)“R”字符被插入到輸出數(shù)據(jù)流中。最后,速率匹配序列返回到“斷言了過(guò)于遠(yuǎn)離信號(hào)?”的判斷步驟138。
雖然以上述實(shí)施例中的實(shí)現(xiàn)方式描述了本發(fā)明,但是不應(yīng)該將其解釋為局限于此。例如,延遲均衡電路和速率匹配電路可以不共享公共的FIFO模塊。作為另一個(gè)示例,如果延遲均衡電路具有公共的讀取和寫入域時(shí)鐘,則可以除去延遲均衡電路中的每個(gè)通路電路中的同步器。
權(quán)利要求
1.一種先進(jìn)先出模塊,包括具有多個(gè)可單獨(dú)尋址的存儲(chǔ)器位置的存儲(chǔ)體;連接到所述存儲(chǔ)體的寫入指針,所述寫入指針用于對(duì)所述多個(gè)存儲(chǔ)器位置中的第一存儲(chǔ)器位置進(jìn)行尋址,以將輸入數(shù)據(jù)總線上的數(shù)據(jù)寫入所述第一存儲(chǔ)器位置;連接到所述存儲(chǔ)體的讀取指針,所述讀取指針用于對(duì)所述多個(gè)存儲(chǔ)器位置中的第二存儲(chǔ)器位置進(jìn)行尋址,以將所述第二存儲(chǔ)器位置中的數(shù)據(jù)讀取到輸出數(shù)據(jù)總線上;以及連接到所述存儲(chǔ)體的至少一個(gè)附加指針,所述附加指針用于對(duì)所述多個(gè)存儲(chǔ)器位置中的第三存儲(chǔ)器位置進(jìn)行尋址,以讀取所述第三存儲(chǔ)器位置中所存儲(chǔ)的數(shù)據(jù)。
2.如權(quán)利要求1所述的先進(jìn)先出模塊,還包括連接到所述存儲(chǔ)體的檢測(cè)器,所述檢測(cè)器用于接收從所述第三存儲(chǔ)器位置所讀取的數(shù)據(jù),并且將所述所讀取的數(shù)據(jù)與預(yù)定數(shù)據(jù)進(jìn)行比較,以確定是否匹配。
3.如權(quán)利要求1所述的先進(jìn)先出模塊,其中所述至少一個(gè)附加指針包括耦合到所述寫入指針的向后看指針,所述向后看指針用于對(duì)跟蹤所述第一存儲(chǔ)器位置的第三存儲(chǔ)器位置進(jìn)行尋址。
4.如權(quán)利要求3所述的先進(jìn)先出模塊,其中所述第三存儲(chǔ)器位置比所述第一存儲(chǔ)器位置落后至少一個(gè)存儲(chǔ)器位置。
5.如權(quán)利要求3所述的先進(jìn)先出模塊,其中所述寫入指針和所述向后看指針由公共的時(shí)鐘信號(hào)所驅(qū)動(dòng),并且其中在所述第一存儲(chǔ)器位置被寫入至少一個(gè)時(shí)鐘周期之后,所述第三存儲(chǔ)器位置就是所述第一存儲(chǔ)器位置。
6.如權(quán)利要求5所述的先進(jìn)先出模塊,其中所述第三存儲(chǔ)器位置的地址是從所述先進(jìn)先出模塊中可讀取的。
7.如權(quán)利要求1所述的先進(jìn)先出模塊,其中所述至少一個(gè)附加指針包括耦合到所述讀取指針的向前看指針,所述向前看指針用于對(duì)引導(dǎo)所述第二存儲(chǔ)器位置的第三存儲(chǔ)器位置進(jìn)行尋址。
8.如權(quán)利要求7所述的先進(jìn)先出模塊,其中所述第三存儲(chǔ)器位置比所述第二存儲(chǔ)器位置領(lǐng)先至少一個(gè)存儲(chǔ)器位置。
9.一種延遲均衡電路,包括至少兩個(gè)先進(jìn)先出模塊,所述至少兩個(gè)先進(jìn)先出模塊中的每一個(gè)都包括具有多個(gè)可單獨(dú)尋址的存儲(chǔ)器位置的存儲(chǔ)體;連接到所述存儲(chǔ)體的寫入指針,所述寫入指針存儲(chǔ)了可增加的寫入地址,所述寫入指針用于對(duì)所述存儲(chǔ)器位置進(jìn)行尋址,以在其中寫入數(shù)據(jù);耦合到所述寫入指針的向后看指針,所述向后看指針用于對(duì)第二存儲(chǔ)器位置進(jìn)行尋址,所述第二存儲(chǔ)器位置跟蹤第一存儲(chǔ)器位置,所述第一存儲(chǔ)器位置是所述寫入指針可尋址的;和連接到所述存儲(chǔ)體的檢測(cè)器,所述檢測(cè)器用于將第二存儲(chǔ)器位置中的數(shù)據(jù)與對(duì)齊數(shù)據(jù)進(jìn)行比較,當(dāng)所述第二存儲(chǔ)器位置中的數(shù)據(jù)與所述對(duì)齊數(shù)據(jù)相匹配時(shí),所述檢測(cè)器則斷言找到數(shù)據(jù)信號(hào);以及連接到所述至少兩個(gè)先進(jìn)先出模塊的時(shí)偏補(bǔ)償單元,所述時(shí)偏補(bǔ)償單元用于當(dāng)所述至少兩個(gè)先進(jìn)先出模塊各自的找到數(shù)據(jù)信號(hào)被斷言時(shí),接收所述至少兩個(gè)先進(jìn)先出模塊各自的第二存儲(chǔ)器位置的地址,從而使用所述地址來(lái)確定時(shí)偏,并且產(chǎn)生控制信號(hào),該控制信號(hào)用于控制所述至少兩個(gè)先進(jìn)先出模塊中之一的寫入指針以補(bǔ)償所述時(shí)偏。
10.如權(quán)利要求9所述的延遲均衡電路,其中所述時(shí)偏補(bǔ)償單元包括用于接收各自的第三存儲(chǔ)器位置的地址的時(shí)偏補(bǔ)償單元,所述各自的第三存儲(chǔ)器位置的地址由所述各自的找到數(shù)據(jù)信號(hào)來(lái)鎖存。
11.如權(quán)利要求10所述的延遲均衡電路,其中所述時(shí)偏補(bǔ)償單元包括用于接收各自的第三存儲(chǔ)器位置的被鎖存地址的時(shí)偏補(bǔ)償單元,所述被鎖存地址被同步到驅(qū)動(dòng)所述時(shí)偏補(bǔ)償單元的時(shí)鐘。
12.如權(quán)利要求9所述的延遲均衡電路,其中所述用于控制至少兩個(gè)先進(jìn)先出模塊中之一的寫入指針的控制信號(hào)包括將所述寫入指針中的寫入地址的增加禁止一段時(shí)間的控制信號(hào),所述的一段時(shí)間對(duì)應(yīng)于所述時(shí)偏。
13.一種速率匹配電路,包括至少一個(gè)先進(jìn)先出模塊,所述先進(jìn)先出模塊包括具有多個(gè)可單獨(dú)尋址的存儲(chǔ)器位置的存儲(chǔ)體;連接到所述存儲(chǔ)體的寫入指針,所述寫入指針用于對(duì)所述存儲(chǔ)器位置進(jìn)行尋址,以在其中寫入數(shù)據(jù);連接到所述存儲(chǔ)體的讀取指針,所述讀取指針用于對(duì)所述存儲(chǔ)器位置進(jìn)行尋址,以從其中讀取數(shù)據(jù);其中所述寫入指針和所述讀取指針由不同的時(shí)鐘信號(hào)所驅(qū)動(dòng);耦合到所述讀取指針的向前看指針,所述向前看指針用于對(duì)第一存儲(chǔ)器位置進(jìn)行尋址,所述第一存儲(chǔ)器位置引導(dǎo)第二存儲(chǔ)器位置,所述第二存儲(chǔ)器位置是所述讀取指針可尋址的;標(biāo)志電路,當(dāng)在所述寫入指針和所述讀取指針中的地址之差超過(guò)預(yù)定門限值時(shí),所述標(biāo)志電路產(chǎn)生觸發(fā)信號(hào);和連接到所述存儲(chǔ)體的檢測(cè)器,所述檢測(cè)器用于將所述第一存儲(chǔ)器位置中的數(shù)據(jù)與跳過(guò)數(shù)據(jù)進(jìn)行比較,當(dāng)所述第一存儲(chǔ)器位置中的數(shù)據(jù)與所述跳過(guò)數(shù)據(jù)相匹配時(shí),所述檢測(cè)器則斷言找到數(shù)據(jù)信號(hào);以及連接到所述至少一個(gè)先進(jìn)先出模塊的速率匹配器,所述速率匹配器用于接收所述觸發(fā)信號(hào)和所述找到數(shù)據(jù)信號(hào),從而產(chǎn)生控制信號(hào),該控制信號(hào)用于推進(jìn)所述讀取指針以跳過(guò)所述第一存儲(chǔ)器位置。
全文摘要
本發(fā)明公開(kāi)了一種先進(jìn)先出(FIFO)模塊。所述FIFO模塊包括多個(gè)可獨(dú)立尋址的存儲(chǔ)器位置、寫入指針、讀取指針和至少一個(gè)附加指針。所述寫入指針連接到存儲(chǔ)體,用于尋址第一存儲(chǔ)器位置,以將輸入數(shù)據(jù)總線上的數(shù)據(jù)寫入到第一存儲(chǔ)器位置中。所述讀取指針連接到存儲(chǔ)體,用于尋址第二存儲(chǔ)器位置,以將存儲(chǔ)在其中的數(shù)據(jù)讀取到輸出數(shù)據(jù)總線上。所述至少一個(gè)附加指針連接到存儲(chǔ)體,用于尋址第三存儲(chǔ)器位置,以讀取存儲(chǔ)在其中的數(shù)據(jù)。本發(fā)明還公開(kāi)了利用所述FIFO模塊的延遲均衡電路和速率匹配電路,以及延遲均衡方法。
文檔編號(hào)G06F12/00GK1658596SQ20051000735
公開(kāi)日2005年8月24日 申請(qǐng)日期2005年2月4日 優(yōu)先權(quán)日2004年2月19日
發(fā)明者張文杰 申請(qǐng)人:安捷倫科技有限公司