專利名稱:用于高速應(yīng)用的8b/10b編碼和解碼的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及傳輸編碼,更具體的,涉及用于高速應(yīng)用的8B/10B編碼和解碼。
背景技術(shù):
串行化、自定時(shí)芯片輸入-輸出(I/O)的發(fā)展勢頭越來越大。希望用單獨(dú)的高速、串行通信通道代替許多寬的雙向和共享的總線。在由Franaszek和Widmer申請(qǐng)的標(biāo)題為“Byte Oriented DC Balanced(0,4)8B/10B Partition Block Transmission Code”的美國專利No.4,486,739中介紹了8B/10B傳輸編碼,其公開在這里作為參考引入,由于其易于實(shí)施和傳輸?shù)奶匦?,所以在工業(yè)中已經(jīng)確立這種應(yīng)用。
對(duì)于8B/10B傳輸編碼的詳細(xì)討論參看美國專利No.4,486,739。通常,在8B/10B傳輸編碼中,由六位編碼矢量和四位編碼矢量產(chǎn)生十位矢量。六位編碼矢量由五位源矢量產(chǎn)生。同樣,四位編碼矢量由三位源矢量產(chǎn)生。以減少或消除在編碼矢量流中的任何直流(DC)分量的方式產(chǎn)生和組合編碼矢量。編碼(和源)矢量具有不同等性(disparity)。數(shù)據(jù)塊的不同等性是塊中零和一的數(shù)量之間的差。正和負(fù)不同等性數(shù)量分別是指過多的一或零。不同等性用于確定傳輸什么編碼矢量。例如,不平衡編碼矢量具有首要的和替代的編碼矢量,由不同等性確定是選擇首要編碼矢量還是替代編碼矢量進(jìn)行傳輸。不平衡編碼矢量具有不為零的不同等性。例如,三位源矢量為000。對(duì)應(yīng)于該源矢量的3B/4B傳輸編碼的首要編碼矢量為0100。對(duì)應(yīng)于該源矢量的替代編碼矢量為1011(即,0100的反碼)。如果在編碼矢量之前的不同等性為正,則選擇首要矢量,如果在編碼矢量之前的不同等性為負(fù),則選擇替代矢量。在美國專利No.5,245,339中可以找到關(guān)于不同等性細(xì)節(jié)和關(guān)于不同等性的規(guī)則。
一個(gè)明顯的趨勢是提高傳輸速度,而過去往往通過成倍增加并行的編碼-解碼(CoDec)電路來解決。例如,由Cideciyan申請(qǐng)的標(biāo)題為“FlexibleEncoding Method and Architecture for High Speed Data Transmission andStorage”的美國專利No.5,245,339中公開了并行操作多個(gè)編碼器的改進(jìn)的方法,在這里作為參考引入。
但是,在使用8B/10B傳輸編碼時(shí)仍然存在進(jìn)一步增加編碼和解碼的速度的需求。
發(fā)明內(nèi)容
本發(fā)明提供當(dāng)分別采用8B/10B傳輸編碼進(jìn)行編碼和解碼時(shí)增加編碼和解碼速度的技術(shù)。在本發(fā)明的一個(gè)方面中,在8B/10B傳輸編碼的編碼期間,通過使用某些過去的參考點(diǎn)的不同等性以及從參考點(diǎn)到當(dāng)前塊邊界的字節(jié)的不同等性特性計(jì)算當(dāng)前塊的開始不同等性。在8B/10B傳輸編碼中的塊通常為字節(jié),因此,所用的塊邊界通常為字節(jié)邊界。但是,可以用多字節(jié)產(chǎn)生塊。在一個(gè)實(shí)施例中,字節(jié)的特征為字節(jié)是否是不平衡的編碼矢量以及不平衡矢量的數(shù)量是奇數(shù)還是偶數(shù)。在另一個(gè)實(shí)施例中,字節(jié)的特征為字節(jié)是否是平衡的以及存在多少平衡的編碼矢量。與常規(guī)設(shè)計(jì)相比,就用單個(gè)8B/10B編碼器編碼,以及用多個(gè)并行工作的8B/10B編碼器編碼來說,這一方面至少具有延遲更短的優(yōu)點(diǎn)。
在本發(fā)明的第二和第三方面,為3B/4B和5B/6B傳輸編碼的編碼和解碼,產(chǎn)生比常規(guī)分類延遲更短的新的分類。此外,產(chǎn)生單獨(dú)的函數(shù)來具體滿足傳輸編碼的不同等性方面。
在本發(fā)明的第四方面,在解碼期間,根據(jù)存儲(chǔ)的之前的塊的不同等性特征確定在塊的開始處的當(dāng)前參考不同等性。在一個(gè)實(shí)施例中,存儲(chǔ)的之前的塊的不同等性特征是之前的塊的出口不同等性和之前的塊的參考極性。在另一個(gè)實(shí)施例中,如果滿足下面兩個(gè)條件至少其中之一,則在塊的開始處的當(dāng)前參考不同等性為正(1)之前的塊的出口不同等性為正;以及(2)在之前塊的開始處的參考不同等性為正并且之前的塊的出口極性為非負(fù)。在另一個(gè)實(shí)施例中,通過假設(shè)實(shí)際運(yùn)行的不同等性等于下一個(gè)不同等性相關(guān)的之前的字節(jié)的出口不同等性,在通過將必須的字節(jié)的前端不同等性與實(shí)際運(yùn)行的不同等性相比較期間在字節(jié)的前端檢測出不同等性違背。
通過參考隨后的詳細(xì)介紹和附圖,將獲得對(duì)本發(fā)明更充分的理解以及本發(fā)明的其它特征和優(yōu)點(diǎn)。
圖1示出了根據(jù)本發(fā)明的一個(gè)實(shí)施例的采用8B/10B傳輸編碼將五位源矢量編碼為六位編碼矢量的表;圖2示出了根據(jù)本發(fā)明的一個(gè)實(shí)施例的采用8B/10B傳輸編碼將三位源矢量編碼為四位編碼矢量的表;圖3A示出了根據(jù)本發(fā)明的一個(gè)實(shí)施例,采用8B/10B傳輸編碼進(jìn)行編碼的示范電路;圖3B示出了根據(jù)本發(fā)明的一個(gè)實(shí)施例,當(dāng)采用8B/10B傳輸編碼進(jìn)行編碼時(shí)用于不同等性控制的示范電路;圖4示出了根據(jù)本發(fā)明的一個(gè)實(shí)施例,用在圖3的編碼電路中的AND-OR-INVERT(與或非)邏輯符號(hào);圖5示出了根據(jù)本發(fā)明的一個(gè)實(shí)施例,用于一個(gè)字節(jié)編碼器的不同等性確定的較快速方案的示范電路;圖6示出了根據(jù)本發(fā)明的一個(gè)實(shí)施例,用于一個(gè)字節(jié)編碼器的不同等性確定的較慢速方案的示范電路;
圖7示出了根據(jù)本發(fā)明的一個(gè)實(shí)施例,當(dāng)編碼8B/10B傳輸編碼時(shí)進(jìn)行四個(gè)并行編碼操作的較快速方案的示范電路;圖8示出了根據(jù)本發(fā)明的一個(gè)實(shí)施例,當(dāng)編碼8B/10B傳輸編碼時(shí)進(jìn)行四個(gè)并行編碼操作的較慢速方案的示范電路;圖9示出了根據(jù)本發(fā)明的一個(gè)實(shí)施例,用于解碼10B/8B傳輸編碼的6B/5B部分的表;圖10A示出了根據(jù)本發(fā)明的一個(gè)實(shí)施例,當(dāng)解碼10B/8B傳輸編碼的6B/5B部分時(shí)進(jìn)行6B/5B解碼和有效性檢查的示范電路;圖10B示出了根據(jù)本發(fā)明的一個(gè)實(shí)施例,當(dāng)解碼10B/8B傳輸編碼的6B/5B部分時(shí)進(jìn)行不同等性檢查的示范電路;圖11示出了根據(jù)本發(fā)明的一個(gè)實(shí)施例,用于解碼10B/8B傳輸編碼的4B/3B部分的表;圖12示出了根據(jù)本發(fā)明的一個(gè)實(shí)施例,用于確定在10B/8B傳輸編碼的特定位中的哪些類需要反相的表;圖13示出了根據(jù)本發(fā)明的一個(gè)實(shí)施例,當(dāng)解碼10B/8B傳輸編碼的4B/3B部分時(shí)進(jìn)行4B/3B解碼和相關(guān)錯(cuò)誤檢查的示范電路;圖14示出了根據(jù)本發(fā)明的一個(gè)實(shí)施例,當(dāng)解碼10B/8B傳輸編碼的4B/3B部分和6B/5B部分時(shí)進(jìn)行錯(cuò)誤檢查的示范電路;圖15示出了根據(jù)本發(fā)明的一個(gè)實(shí)施例,用于一個(gè)字節(jié)解碼器的不同等性確定的較快速方案的示范電路;圖16示出了根據(jù)本發(fā)明的一個(gè)實(shí)施例,用于一個(gè)字節(jié)解碼器的不同等性確定的較慢速方案的示范電路;以及圖17示出了根據(jù)本發(fā)明的一個(gè)實(shí)施例,當(dāng)解碼8B/10B傳輸編碼時(shí)進(jìn)行四個(gè)并行解碼操作的示范電路。
具體實(shí)施例方式
本發(fā)明通過以下改進(jìn)超越了美國專利No.5,245,339和美國專利No.4,486,739中公開的內(nèi)容。為從編碼域和到編碼域的映射開發(fā)出新的矢量分類,這將使編碼和解碼方程具有通常更短的延遲。8B/10B編碼本身未變。編碼和解碼過程的不同等性由分開的而不是共享的分類來處理,并且只需要少量的額外電路。在美國專利No.4,486,739中,采用共享的分類。雖然傳統(tǒng)的電路中在字節(jié)或字節(jié)塊的端部與編碼或解碼的數(shù)據(jù)一起提供運(yùn)行不同等性,但是本發(fā)明在這方面具有不需要在編碼或解碼以及錯(cuò)誤檢查過程的開始立即知道運(yùn)行不同等性的極性的優(yōu)點(diǎn)。因此,不是在結(jié)束的不同等性,而是在與當(dāng)前字節(jié)的某種特性一起的當(dāng)前字節(jié)的開始的不同等性通過鎖存器或延遲元件傳送到下一個(gè)字節(jié)間隔。在下一個(gè)周期的初期部分期間計(jì)算下一個(gè)字節(jié)的開始不同等性,同時(shí)進(jìn)行一下字節(jié)的位映射、錯(cuò)誤檢查和不同等性分類。這兩個(gè)創(chuàng)新將允許許多應(yīng)用用單個(gè)編解碼電路而不是兩個(gè)或四個(gè),或者用兩個(gè)而不是四個(gè)。對(duì)于非常短距離的應(yīng)用,減少單個(gè)編解碼器的等待時(shí)間比電路的節(jié)省更重要。多個(gè)編解碼器電路增加的等待時(shí)間與單字節(jié)通道有關(guān),因?yàn)槿绻麤]有其它原因的需要的話,要花費(fèi)額外的時(shí)間并行地裝配和分解幾個(gè)字節(jié)。
對(duì)于用多個(gè)并行工作的編解碼電路的實(shí)現(xiàn),當(dāng)使用本發(fā)明時(shí),也不需要得到多個(gè)字節(jié)塊各自的結(jié)束不同等性。相反,當(dāng)前塊的開始不同等性可以來自某些之前的參考點(diǎn)的不同等性的值和直到新的參考點(diǎn)的字節(jié)的某些特性。
對(duì)于編碼過程,當(dāng)?shù)叫碌膮⒖键c(diǎn)的不平衡編碼矢量的數(shù)量是奇數(shù)時(shí),則改變來自之前的參考點(diǎn)的運(yùn)行不同等性,否則,保持不變。如果回到參考的矢量的總數(shù)為偶數(shù),則對(duì)于平衡矢量的數(shù)量也是同樣的。
美國專利No.5,245,339沒有出現(xiàn)要明確指出的解碼過程。在用于解碼的位映射中不同等性不起作用,但是檢查與不同等性規(guī)則的一致性用于錯(cuò)誤檢測的目的,并且該邏輯途徑可能是某些常規(guī)設(shè)計(jì)中的瓶頸之一。本發(fā)明的不同等性檢查電路將編碼字節(jié)分類為不同等性相關(guān)的或無關(guān)的,與平衡的或不平衡的分類不同。忽略不同等性無關(guān)字節(jié)。不同等性相關(guān)字節(jié)只根據(jù)字節(jié)中的位模式假設(shè)一個(gè)正或負(fù)出口不同等性,而不管在字節(jié)的開始處的運(yùn)行不同等性。為了錯(cuò)誤檢查的目的,在任何點(diǎn)的運(yùn)行不同等性等于最近不同等性相關(guān)字節(jié)的出口不同等性。對(duì)于四個(gè)并行字節(jié)的例子,可以由四個(gè)組合邏輯的獨(dú)立的組同時(shí)確定,即,不用知道在前面的字節(jié)的不同等性就可以得到在字節(jié)數(shù)三前面的不同等性,如在某些更長延遲的設(shè)計(jì)中所需要的。在四字節(jié)塊前面的不同等性來自之前的塊的最后一個(gè)字節(jié)(電路1713)前面的不同等性值和該字節(jié)的不同等性特性。通過延遲對(duì)下一個(gè)塊周期的評(píng)估可以得到延遲容限的改進(jìn)。
在這里出現(xiàn)的8B/10B編解碼電路設(shè)計(jì)試圖提供最佳的可能速度并發(fā)掘出用于IBM CMOS-7S或類似技術(shù)的標(biāo)準(zhǔn)單元庫的全部特性。在IBMMicroelectronics ASIC SA-27 Databook,SA14-2214-01(1998)中介紹了CMOS-7S,在這里作為參考引入。在這里示出了單個(gè)編解碼電路和并聯(lián)電路的實(shí)施。
通過以下步驟完成了對(duì)于常規(guī)技術(shù)上在速度方面的改進(jìn)1.用新的分類產(chǎn)生新的編碼和解碼表。雖然在舊的分類(例如,在美國專利No.4,486,739中所使用的)中主要依賴于4變量函數(shù),但是新的分類更依賴于3變量函數(shù),可以用更少的延遲實(shí)現(xiàn)。
2.定義了專門針對(duì)不同等性方面的單獨(dú)的函數(shù)。這增加了速度,因?yàn)榭梢孕薷尼槍?duì)不同等性方面的函數(shù)以提供速度,而不是將這些函數(shù)與編碼部分混在一起。編碼字節(jié)的平衡直接由輸入位而不是由缺少正或負(fù)6B或4B矢量間接地確定的。換句話說,以前通過假設(shè)字節(jié)是平衡的來確定平衡,除非有正或負(fù)編碼矢量。不同等性的控制和求補(bǔ)運(yùn)算的最初的常規(guī)設(shè)計(jì)依賴于相同的用于支持位編碼和解碼以節(jié)省電路的簡單分類。本發(fā)明的各方面提高了速度,有時(shí)以電路面積為代價(jià)。
3.對(duì)于編碼,在任何矢量前的不同等性由起始參考和在當(dāng)前位置與參考之間的不平衡矢量的奇偶數(shù)或者平衡矢量的奇偶數(shù)確定。一個(gè)替代方法依賴于從矢量到矢量和從字節(jié)到字節(jié)的不同等性的傳播,需要更多的時(shí)間。
4.對(duì)于解碼,假設(shè)當(dāng)前不同等性等于下一個(gè)之前的不同等性相關(guān)字節(jié)的出口不同等性。換句話說,在字節(jié)首尾的當(dāng)前不同等性定義為之前的不同等性相關(guān)字節(jié)的出口不同等性。
5.還是對(duì)于編碼和解碼,除了計(jì)算字節(jié)或塊的結(jié)尾的不同等性,然后將其傳給下一個(gè)塊作為初始不同等性以外,可以根據(jù)在之前的塊的參考點(diǎn)的不同等性和之間的字節(jié)的不同等性特性計(jì)算當(dāng)前字節(jié)或塊的初始不同等性。
6.對(duì)于在下面更詳細(xì)定義的重要路徑的S函數(shù)和求補(bǔ)函數(shù)給與特別的注意。廣義上講,S函數(shù)用于避免假的停頓。通過在多個(gè)非重要路徑中選通上行數(shù)據(jù)流避免了在重要路徑中的一些連續(xù)的選通和大的扇入。
7.第一邏輯實(shí)現(xiàn)選擇為NAND門,因?yàn)樗鼈兙哂械偷难舆t,第二選擇是NOR門。由于相同的原因,首選XNOR門而不是XOR門。產(chǎn)生或修改邏輯極性以便最佳利用電路。
8.更重要的信號(hào)布線到為符號(hào)的頂部輸入的A輸入,除了某些底部輸入具有更小的延遲的XOR和XNOR門以外。
9.本發(fā)明的設(shè)計(jì)更少共享基本邏輯元件和中間函數(shù),如果需要連續(xù)步驟的話。例如,在輸入端,A≠B函數(shù)直接由A和B輸入產(chǎn)生,而不是由多次使用的中間邏輯表達(dá)式產(chǎn)生。
在進(jìn)行本發(fā)明的詳細(xì)介紹之前討論符號(hào)是有益的。在本文中的等式中所用的信號(hào)名不反映任何邏輯電平。因此,它們將被解釋為抽象邏輯語句。但是,在電路圖中,信號(hào)名可能具有字母前綴P和N,用來分別表示函數(shù)在高還是低電平為真。對(duì)于以P和N開始的網(wǎng)絡(luò)名,通常不使用P和N前綴,除非可能導(dǎo)致混亂和曲解(例如,NNDFS6=PPDFS6不能簡化以避免出現(xiàn)矛盾,例如NDFS6=PDFS6)。以n或m開始的的網(wǎng)絡(luò)名在低電平時(shí)為真,P打頭的在高電平時(shí)為真。
為了便于參考,詳細(xì)介紹分為兩個(gè)部分,(I)8B/10B編碼器和(II)10B/8B解碼器,每個(gè)部分又有多個(gè)子部分。
I.8B/10B編碼器已經(jīng)開發(fā)出編碼分類以加速5B/6B和3B/4B傳輸碼的編碼。雖然在舊的分類(例如,在美國專利No.4,486,739中所使用的)中主要依賴于4變量函數(shù),但是新的分類更依賴于3變量函數(shù),可以用更少的延遲實(shí)現(xiàn),并且定義了專門針對(duì)3B/4B和5B/6B編碼的不同等性方面的單獨(dú)的函數(shù)。
圖1示出了用于編碼5B/6B源矢量的表。如圖1所示,增加了“編碼分類”列,以便更有效的將源矢量分類。這些分類加速編碼,并介紹如下。在進(jìn)一步分析圖1之前先介紹符號(hào)。5B/6B矢量集L03和L30包括所有分別在位A、B和C具有三個(gè)邏輯零或一的五位源矢量(S5)。換句話說,符號(hào)“L03”表示在前三位A、B和C中沒有一而是三個(gè)零。注意,數(shù)據(jù)值與正常書寫的方向相反“一”為10000而不是00001。但是,這只是一種方便,也可以采用其它表示方法。符號(hào)L12和L21分別表示在相同的位中有一個(gè)邏輯一和兩個(gè)邏輯零或相反。新的符號(hào)正式定義如下。在隨后的邏輯方程式中,符號(hào)(·)和(+)分別表示布爾AND和OR函數(shù)。撇號(hào)(’)表示非。
矢量集L03和L30包含在位ABC分別為三個(gè)零或三個(gè)一的所有S5矢量L03=A’·B’·C’L30=A·B·C矢量集L12和L21包含在位ABC分別為一個(gè)一和兩個(gè)零或者兩個(gè)一一個(gè)零的所有S5矢量L12=A·B’·C’+A’·B·C’+A’·B’·CL21=A’·B·C+A·B’·C+A·B·C’A.編碼器方程和表從概念上講,編碼通過兩個(gè)步驟來完成。首先,翻譯為首要矢量。第二步對(duì)不同等性相關(guān)編碼矢量的子集確定是否必須使用替代的互補(bǔ)的矢量以滿足不同等性規(guī)則。在表中的DR列中的不同等性相關(guān)矢量具有加號(hào)或減號(hào)。DR是必須的入口不同等性。對(duì)于不同等性相關(guān)矢量,必須的入口不同等性表示是否使用首要的或替代的編碼矢量。例如,如果必須的入口不同等性,DR,為“+”,則如果入口不同等性為正使用首要編碼矢量,如果入口不同等性為負(fù)使用替代編碼矢量。注意,在矢量邊界處這些編碼具有加或減一的運(yùn)行不同等性,因此,在矢量的邊界處運(yùn)行不同等性應(yīng)當(dāng)為零。入口不同等性是在要編碼的當(dāng)前源矢量之前的運(yùn)行不同等性。運(yùn)行不同等性是在一系列編碼矢量中的位值的累加和。
首要矢量的產(chǎn)生。可以分別從圖1的列‘編碼分類’和‘首要abcdei’或圖2的‘首要fghj’直接讀出需要翻譯為首要矢量的邏輯方程。圖2示出了當(dāng)將三位源矢量編碼為四位編碼矢量用于3B/4B傳輸編碼時(shí)所用的表。在圖1中,字母‘ABCDE’表示源矢量,字母‘a(chǎn)bcdei’表示編碼矢量?!甂’用于表示控制特性。在圖2中,字母‘FGH’表示源矢量,字母‘fghj’表示編碼矢量。此外,‘K’表示控制特性。參考圖1和2進(jìn)行隨后的介紹。在‘首要’列中,所有無格式的位與相應(yīng)的輸入位值A(chǔ)BCDE或FGH相同。粗體位表示強(qiáng)制求補(bǔ)的位。假設(shè)i和j位通常為零。如果在單行中存在由逗號(hào)分開的兩個(gè)分類入口,則第二個(gè)表達(dá)式適用于在首要列中的最后一個(gè)粗體零或一。
在圖1中,應(yīng)當(dāng)注意,對(duì)于L21·PDFS6·D·E’,D11、D13和D14具有S1=1,對(duì)于L12·NDFS6·D’·E,D17、D18和D20具有S2=1。如果S1或S2有效,并且位F、G、H都是一,則它們將編碼為0111或1000,如圖2的表中的Dx.A7行所示。這防止了未對(duì)準(zhǔn)的逗號(hào)序列。
在下面列出了從圖1和2提取的邏輯方程式,并由圖3A的電路執(zhí)行,介紹如下。
a=Ab=B·(L30·D)’+L03·D’c=C+L03·D’+L03·D·E=C+L03·(D’+D·E)=C+L03·(D’+E)d=D·(L30·D)’e=E·(L03·D)’+L12·D’·E’+L03·D·E’i=L21·D’·E’+L12·[(D≠E)+K]+L03·D’·E+L30·D·Bf=F·[F·G·H·(S+K)]’g=G+F’·G’·H’=G+F’·H’
h=Hj=(F≠G)·H’+F·G·H·(S+K)B.8B/10B位編碼的實(shí)現(xiàn)在圖3A中示出了根據(jù)上述表格、方程式和設(shè)計(jì)原理實(shí)現(xiàn)的8B/10B位編碼電路圖。在編碼電路圖中的網(wǎng)絡(luò)名符號(hào)如下。在網(wǎng)絡(luò)名中的字母‘a(chǎn)’和‘o’分別表示布爾AND和OR功能。在網(wǎng)絡(luò)名中的字母‘n’表示對(duì)之前的參數(shù)取反。字母‘e’和‘ue’分別表示符號(hào)‘=’和‘≠’。大寫字母ABCDEFGHK表示未編碼的輸入位,小寫字母abcdeifghj表示編碼的格式。
圖3A和3B表示一個(gè)電路,并且僅僅是為了方便分為兩個(gè)圖。整個(gè)電路的輸入和輸出帶有端口標(biāo)記,如在圖3A的左上部所示的PA和右上部的PCa。如果沒有標(biāo)記,如在圖3A的右上部的信號(hào)NCMPLS6的情況,信號(hào)是線路的名字,其起源為在兩個(gè)圖中的名字完全相同的線路。例如,NCMPLS6是在圖3B的右上部的門輸出,并在圖3A的右上部使用。注意,圖3B中沒有輸入端口標(biāo)記,所有的信號(hào)都直接來自圖3A。
圖3A示出了用于為5B/6B和3B/4B傳輸編碼進(jìn)行編碼的編碼電路300A。編碼電路300A包括反相器301A到311A、NAND門315A到339A、NOR門345A到354A、ANDN1(具有一個(gè)反相輸入端的AND門)375A、XNOR門355A到359A、XOR門365A到370A、AND-OR(AO)塊385A和AND-OR-INVERT(AOI)塊380A和381A。下面參考圖4討論AOI塊380A。應(yīng)當(dāng)注意,圖3A和隨后的圖對(duì)于同一個(gè)器件使用了多個(gè)符號(hào)。例如,元件323A為NAND門,顯示為具有反相的輸入和輸出的OR門。這兩個(gè)門在功能上是等效的。同樣,元件351A功能上等效為NOR門,并且圖17的元件1740功能上等效為OAI塊。
由于空間的限制,在圖3A中使用了如下縮寫n0=NABnCn;n1=NAnBCn;n2=NAnBnC;n3=NABCn;n4=NABnC;n5=NAnBC;n6=NELO3noDn;n8=NL12NDFS6DnEFGH;n9=NL21PDFS6DEnFGH以及n10=PHnFueG。
信號(hào)NCMPLS6來自圖3B下部所示的不同等性控制電路。該信號(hào)用于反相首要編碼矢量abcdei以產(chǎn)生替代編碼矢量(abcdei)’。根據(jù)不同等性規(guī)則進(jìn)行取反。同樣,信號(hào)NCMPLS4來自圖3B下部所示的不同等性控制電路,并且該信號(hào)用于根據(jù)不同等性規(guī)則反相首要編碼矢量fghj以產(chǎn)生替代編碼矢量(fghj)’。
信號(hào)PNDFS6是在不同等性確定期間使用的信號(hào),并且參考圖5到8進(jìn)行更詳細(xì)的介紹。該信號(hào)也是S函數(shù)的組成部分。
現(xiàn)在參考圖4,顯示出AOI塊380A。AOI塊380A包括兩個(gè)AND門410和420、OR門430以及反相器440。在該實(shí)例中,當(dāng)NL30D和PB為高電平時(shí)或者當(dāng)PL03和ND為高電平時(shí),Nbb將為低電平。在該AOI塊的例子中有四個(gè)輸入。下面討論在圖中使用的其它AOI塊。如果有額外的輸入,通常每組輸入會(huì)有一個(gè)AND門。但是,某些AOI塊具有不是組的組成部分的單個(gè)輸入。對(duì)于這些塊,單個(gè)輸入通常直接連接到OR門,例如OR門430,而不通過AND門。AO塊,例如圖3A的AO塊385A,沒有反相器440。在下圖中所用的OA塊中,有一個(gè)AND和多個(gè)OR,OR連接到輸入端,AND連接到輸出端。例如,四輸入OA塊具有代替AND410、420的OR,代替OR430的AND,并且沒有反相器440。
C.8B/10B不同等性控制在圖1和2中的表中的列‘DR分類’根據(jù)在DR列中的表示在首要編碼矢量前面的必須的不同等性的加號(hào)和減號(hào)入口對(duì)矢量進(jìn)行分類。表達(dá)式PDRS6、PDRS4和NDRS6、NDRS4分別表示在6B或4B矢量的開始的正或負(fù)必須的不同等性,并且在下面將更詳細(xì)的介紹這些表達(dá)式。
PDRS6.在DR列中具有加號(hào)的6B矢量集被稱作PDRS6。
PDRS6=L03·(D+E’)+L30·D·E’+L12·D’·E’NDRS6.在DR列中具有減號(hào)的6B矢量集被稱作NDRS6。
NDRS6=L30·(D’+E)+L03·D’·E+L21·D·E+K
PDRS4.
PDRS4=F’·G’+(F≠G)·KNDRS4NDRS4=F·G在電路圖中,信號(hào)名PDFS6、PDFS4和NDFS6、NDFS4分別表示在6B或4B矢量前面的實(shí)際運(yùn)行不同等性。
如果DF和DR的極性不匹配,則產(chǎn)生選擇替代矢量的補(bǔ)償信號(hào)。作為一個(gè)例子,如果PDFS6和NDRS6都是真,則進(jìn)行求補(bǔ)。
CMPLS6=NDFS6·PDRS6+PDFS6·NDRS6CMPLS4=NDFS4·PDRS4+PDFS4·NDRS4列‘DB分類’(塊不同等性)識(shí)別所有的編碼矢量,在DB列中的平衡的編碼矢量用零標(biāo)記。
BALS6.在DB列中的為零的6B矢量集稱作BALS6。
BALS6=L21·(D’+E’)+L12·K’·(D+E)+L30·D’·E’BALS4.在DB列中的為零的4B矢量集稱作BALS4。
BALS4=(F≠G)+F·G·H’通過假設(shè)高電平用于平衡字節(jié)的信號(hào)PBALBY,由信號(hào)BALS6和BALS4控制的附加電路表示字節(jié)平衡。
上述表達(dá)式由圖3B的不同等性控制電路300B實(shí)現(xiàn)。不同等性控制電路300B包括反相器301B和302B、NAND門310B、NOR門320B到331B、XOR門340B、AO塊350B到353B、AOI塊360B和361B以及OA塊370B。
在5B/6B和3B/4B編碼器或幾個(gè)并行工作的8B/10B編碼器的組合延遲的減少由用于確定在任何矢量邊界的不同等性的方法學(xué)產(chǎn)生。顯示在圖3B的電路圖的底部和圖5(在下面進(jìn)一步詳細(xì)討論)的圖中。給定起始不同等性,例如NDFBY(在字節(jié)前的負(fù)不同等性),如果在兩點(diǎn)之間的平衡的S6和S4矢量的組合數(shù)為偶數(shù),則在任何隨后的矢量的邊界處的運(yùn)行不同等性保持不變,否則假設(shè)互補(bǔ)極性。這與更常規(guī)的遵守不同等性從一個(gè)矢量到另一個(gè)矢量傳播的技術(shù)形成對(duì)比。表達(dá)式NDFS4表示在4B矢量前的負(fù)運(yùn)行不同等性。
包括圖3A的電路300A和圖3B的電路300B的8B/10B編碼器具有表示編碼的10位字節(jié)是否平衡的輸出(即,PBALBY),但沒有表示最后不同等性的輸出。通常,矢量的起始不同等性由之前的參考點(diǎn)的不同等性和之間的平衡矢量的奇偶數(shù)確定。
D.1字節(jié)編碼器的不同等性電路,快速版本該電路利用了編碼過程不需要馬上知道起始不同等性的事實(shí)。由于在字節(jié)末端的運(yùn)行不同等性的評(píng)定可能在重要延遲路徑中,當(dāng)進(jìn)行獨(dú)立于運(yùn)行不同等性的初始位編碼時(shí),確定下一個(gè)字節(jié)的起始不同等性,PNDFS6,的最終操作被延遲到要執(zhí)行的下一個(gè)字節(jié)間隔。這樣做的成本是向下一個(gè)字節(jié)間隔傳送兩個(gè)參數(shù)而不是只有一個(gè),用來將定時(shí)容限增加等于XNOR2的延遲的數(shù)量,這里“2”表示2輸入門。
圖5示出了不同等性電路500,根據(jù)由之前的字節(jié)延續(xù)下來的同樣的兩個(gè)參數(shù)提供當(dāng)前字節(jié)的起始不同等性PNDFBY和編碼字節(jié)不同等性‘PBALBY’。電路500包括8B/10B編碼器510和XNOR門512。8B/10B編碼器510包括電路300A和300B。在每個(gè)字節(jié)周期結(jié)束,信號(hào)PNDFBY和PBALBY存儲(chǔ)在分別具有輸出PNDFBY_LAST和PBALBY_LAST的兩個(gè)鎖存器中(未示出)。沒有顯示出鎖存器是因?yàn)樗鼈兊亩〞r(shí)與數(shù)據(jù)輸出鎖存器(也沒有示出)的定時(shí)相同或相似。這些參數(shù)用于下一個(gè)字節(jié)的起始不同等性的計(jì)算。信號(hào)PNDFBY對(duì)于在新的字節(jié)前的一個(gè)負(fù)的運(yùn)行不同等性為高電平。
源數(shù)據(jù)的每個(gè)字節(jié)具有兩個(gè)編碼的矢量(6B,4B)。因此,如果在當(dāng)前字節(jié)的開始和前一個(gè)字節(jié)的邊界之間的平衡或不平衡矢量為奇數(shù),則當(dāng)前字節(jié)的起始不同等性為在參考點(diǎn)的不同等性的補(bǔ)碼;否則,相同。
不同等性電路500速度快的一個(gè)原因如下。因?yàn)橹暗钠鹗疾煌刃訮NDFBY_LAST和之前的編碼字節(jié)不同等性PBALBY_LAST已知,則在短延遲,一個(gè)XNOR門512的延遲,之后可以確定PNDFS6。如在圖3B中所看到的,PNDFS6是不同等性控制電路300B的輸入。僅在很短的延遲之后不同等性控制電路300B可以使用PNDFS6信號(hào),并且隨后不同等性控制電路300B產(chǎn)生信號(hào)NCMPLS6和NCMPLS4,由圖3A中的編碼電路300A分別用來反相(如果需要)六位和四位編碼矢量。在六位編碼矢量Pca、PCb、PDc、PCd、PCe和PCi編碼后,信號(hào)NCMPLS6應(yīng)當(dāng)是可用的,這意味著8B/10B傳輸編碼的一個(gè)字節(jié)的編碼可以在一個(gè)周期中進(jìn)行。
E.1字節(jié)編碼器的不同等性電路,慢速版本為了更好的說明不同等性操作的快速方法,在圖6中還示出了更傳統(tǒng)的方式,并且可以用在不需要圖5的更高性能的電路500的地方。圖6示出了不同等性電路600,包括8B/10B編碼器610和XNOR門612。雖然編碼器610的時(shí)序與編碼器510的時(shí)序不相同,但是編碼器610基本上與編碼器510相同。在傳統(tǒng)的電路中,最后的不同等性PNDEBY來自在一個(gè)并且同一個(gè)編碼周期中。然后,只有一個(gè)參數(shù)用一個(gè)鎖存器傳到下一個(gè)周期。該鎖存器的數(shù)據(jù)輸入為PNDEBY,輸出為PNDFBY,是下一個(gè)字節(jié)前端的不同等性。
下面介紹不同等性電路600比不同等性電路500慢的原因。對(duì)于確定當(dāng)前字節(jié)的在最后不同等性的不同等性電路600,當(dāng)前字節(jié)的編碼字節(jié)的不同等性PBALBY必須已知,這意味著編碼器610的周期必須完成。然后,由XNOR 612在同一個(gè)周期中計(jì)算當(dāng)前字節(jié)的最后不同等性PNDEBY。
雖然在單字節(jié)應(yīng)用中與不同等性電路600相比不同等性電路500的速度有了改善,但是當(dāng)不同等性電路500用在多字節(jié)并行編碼的多字節(jié)應(yīng)用中時(shí),可以實(shí)現(xiàn)更大的速度改善。
F.用于四字節(jié)編碼器的不同等性電路,更快的版本現(xiàn)在參考圖7,示出了用于四字節(jié)編碼器的不同等性電路700。該不同等性電路700顯示出在四字節(jié)字(也稱作“塊”)PD0、PD1、PD2和PD3上并行操作的四個(gè)8B/10B編碼器711、712、713和714。此外,作為不同等性電路700的一部分,還有三個(gè)XNOR門721、722和723以及兩個(gè)XOR門731和732。
此外,該電路利用了編碼過程不需要馬上知道起始不同等性的事實(shí)。對(duì)于該應(yīng)用,圖3B的電路可以修改如下由信號(hào)PNDFS6和PDFS6選通的可以在邏輯鏈中向前移動(dòng)。例如,根據(jù)門和互連的延遲特性,將各選通移到AO塊350B和351B或者甚至是要改為AOI門的門330B是有利的。確定下一個(gè)四字節(jié)塊的起始不同等性PNDFW的最終操作可以推遲到下一個(gè)字節(jié)間隔。在圖7的右上部分的兩個(gè)參數(shù)PBALBY3_LAST和PNDF3_LAST從在圖7的底部的之前的塊間隔延續(xù)下來。當(dāng)前塊的起始不同等性(或者前一個(gè)塊的最后不同等性)由輸入PNDFW(字前端的負(fù)不同等性)給出。剩下的三個(gè)字節(jié)(即,PD1、PD2和PD3)的每一個(gè)的起始不同等性由來自該參考點(diǎn)的并行工作的電路和之間的平衡字節(jié)的數(shù)量使用XOR組和XNOR門720到724得到。
如果包括前三字節(jié)的塊(即PD0、PD1和PD2)是平衡的,則信號(hào)PBAL012是高電平。該字的最后不同等性PNDEW通過鎖存器(未示出)傳送到下一個(gè)字周期,其輸出為下一個(gè)周期的起始不同等性PNDFW。此外,如果PNDEW信號(hào)的產(chǎn)生推遲到用于一個(gè)字節(jié)的情況的圖5所示的下一個(gè)字周期編碼延遲可以減小一個(gè)XNOR門的延遲。
某些設(shè)計(jì)人員實(shí)現(xiàn)了用于不同等性從一個(gè)字節(jié)到另一個(gè)字節(jié)傳播的伴有嚴(yán)重延遲的菊鏈。例如,如果圖6的使用當(dāng)前字節(jié)的最后不同等性的不同等性電路600用在不同等性電路700中,則第二編碼器712必須等待,直到確定來自第一編碼器711的PBALBY0。同樣,編碼器713必須等待,直到確定來自第一編碼器711的PBALBY0和來自第二編碼器712的PBALBY1。這意味著在編碼器能夠完成其編碼周期之前,每個(gè)編碼器必須等待,直到之前的編碼器完成其周期。圖7的電路以更加并行的方式工作,并且將比常規(guī)設(shè)計(jì)的運(yùn)行速度更快。
廣義上講,圖7所示的是具有幾個(gè)并行8B/10編碼器的塊編碼器,并且根據(jù)在塊和任何其它參考點(diǎn)前端的運(yùn)行不同等性、在參考點(diǎn)和要考慮的字節(jié)之間的編碼字節(jié)的數(shù)量以及在同樣的間隔中的平衡字節(jié)的奇偶數(shù),在多個(gè)編碼的10位字節(jié)的每一個(gè)前端確定起始不同等性。如果在間隔中的字節(jié)的數(shù)量為奇數(shù)并且平衡矢量的數(shù)量也是奇數(shù),則運(yùn)行不同等性與在參考點(diǎn)的不同等性相同,否則互補(bǔ)。
G.用于四字節(jié)編碼器的不同等性電路,較慢的版本現(xiàn)在參考圖8,示出了用于四字節(jié)編碼器的不同等性電路800。該不同等性電路800顯示出在四字節(jié)字(也稱作“塊”)PD0、PD1、PD2和PD3上并行操作的四個(gè)8B/10B編碼器811、812、813和814。此外,作為不同等性電路800的一部分,還有三個(gè)XNOR門821、822和823以及兩個(gè)XOR門831和832。
如上所述,在傳統(tǒng)的電路中,最后不同等性PNDEW來自一個(gè)并且相同的編碼周期中。然后,只有一個(gè)參數(shù)用一個(gè)鎖存器傳到下一個(gè)周期。該鎖存器的數(shù)據(jù)輸入為PNDEW,輸出為PNDFW,是下一個(gè)字前端的不同等性。下面介紹不同等性電路800比不同等性電路700慢的原因。對(duì)于確定當(dāng)前四字節(jié)塊的最后不同等性的不同等性電路800,當(dāng)前塊的編碼字節(jié)的不同等性PBALBY(0、1、2、3)必須已知,這意味著編碼器811到814的周期必須完成。然后,由XNOR 823計(jì)算當(dāng)前塊的最后不同等性PNDEW。
已經(jīng)介紹了示例性的8B/10B編碼器,下面將介紹相應(yīng)的解碼器。
II.10B/8B解碼器解碼器包括恢復(fù)原始字節(jié)ABCDEFGHK的電路,以及指示在它們通過傳輸編碼可以檢測的所有傳輸錯(cuò)誤的電路。在圖9中所示的表中列出了用于6B/5B解碼的規(guī)則,在圖11中所示的表中列出了用于4B/3B解碼的規(guī)則,將在下面介紹。對(duì)分類進(jìn)行了某些改變,以少量額外電路為代價(jià)能夠更快地操作。
在圖12所示的表中以簡捷的形式列出了從圖9和11所示的表中提取出來的用于字節(jié)解碼的必須的位轉(zhuǎn)化。編碼位‘ABCDE FGH’的值分別等于編碼位‘a(chǎn)bcde fgh’,除了當(dāng)編碼位屬于圖12所示的表中列出的分類之一并且對(duì)于該分類的各個(gè)位列為假‘F’。
在美國專利No.4,486,739(上面作為參考引入)中介紹的解碼器的邏輯實(shí)現(xiàn)和由Widmer發(fā)表的標(biāo)題為“The ANSI Fibre Channel TransmissionCode”的IBM研究報(bào)告18855(1993),在這里將其公開作為參考引入,中試圖使所需的電路面積最小化。在這些參考中通過重新使用例如解碼和錯(cuò)誤檢查等用于各種目的的基本邏輯定義來完成。該方法增加了電路延遲,并且對(duì)于非常高速的應(yīng)用不是最佳的。在這里介紹的高速實(shí)現(xiàn)對(duì)于位解碼、不同等性分類DR和DU使用單獨(dú)的分類,并且這些集合中的每一個(gè)采用最小延遲的IBM CMOS-7S或其它合適的技術(shù)來實(shí)現(xiàn)。
在當(dāng)前的設(shè)計(jì)中,某些6B矢量集定義得更廣泛,以允許在集合中的能夠以更短延遲來簡化邏輯項(xiàng)的無效矢量。能夠產(chǎn)生無效矢量是因?yàn)榇嬖?8個(gè)6B/5B編碼矢量,但六位可以有最大64個(gè)不同的矢量。例如,在傳輸期間出現(xiàn)的錯(cuò)誤可以導(dǎo)致無效的編碼矢量。新的定義對(duì)于有效輸入的操作是相同的,但是對(duì)于無效輸入,可能有不同的結(jié)束,需要考慮邏輯模型和驗(yàn)證。這些范圍更廣的分類還減少了在不同等性規(guī)則檢查的主要通路中的延遲,因?yàn)椴挥妹鞔_地增加無效的編碼矢量。使用更廣泛的分類有兩個(gè)好處更簡單的實(shí)現(xiàn)和更少的邏輯項(xiàng)結(jié)果。注意,即使無效字節(jié)被解碼為有效字節(jié),它們也可以被用來確定無效字節(jié)的特殊信號(hào)線(即,PINVBY)標(biāo)記。
矢量集P3x和Px3包括所有分別具有三或四個(gè)一和三或四個(gè)零的四位矢量‘a(chǎn)bcd’,并代替老的P13、P31集合。集合P22、P04和P40只用在錯(cuò)誤檢查電路中,P22來自Px3和P3x。通過參考圖9和11確定下面的方程式,并通過圖10A和圖10B中介紹的解碼電路來實(shí)現(xiàn)。
P40=a·b·c·dP04=a’·b’·c’·d’
P3x=P31+P40=a·b·c+a·b·d+a·c·d+b·c·dPx3=P13+P04=a’·b’·c’+a’·b’·d’+a’·c’·d’+b’·c·d’P22=P3x’·Px3’矢量集P2x和Px2用來定義不同等性分類,包括所有分別有兩個(gè)或三個(gè)一和兩個(gè)或三個(gè)零的3位矢量。
P2x=P21+P30=a·b+a·c+b·cPx2=P12+P03=a’·b’+a’·c’+b’·c’在圖9中所示的6B/5B解碼表和在圖11中所示的4B/3B解碼表已經(jīng)進(jìn)行了反映這些改變的修改。注意,在圖9和11中,K=(K28+Kx.7)=(c=d=e=i)+(e≠r)·(i=g=h=j(luò))。
A.6B/5B解碼器,有效性檢查如下確定產(chǎn)生解碼位A、B、C、D、E的邏輯方程式。通常,A=a,B=b,C=c,D=d,E=e,除了在圖12的表中所列的條件(由“F”表示),產(chǎn)生各編碼位的補(bǔ)碼,例如,A=a’。
圖10A和10B示出了單個(gè)電路和關(guān)于輸入和輸出的說明,并且也采用圖3A和3B采用的共享的線路名。
參考圖10A,顯示出解碼和有效性檢查電路1000A。解碼和有效性檢查電路1000A包括反相器1001A到1006A,NAND門1010A到1026A,NOR門1030A到1032A,AND門1050A到1052A,XNOR門1035A到1040A,XOR門1045A到1046A,AO塊1065A,AOI塊1060A到1062A以及AOI塊1070A。
隨后的解碼方程式是從圖12中所示的表中提取的,由圖10A中所示的電路實(shí)現(xiàn)。
1.A=a’iff(如果并且僅僅如果)a·b’·c’·d·(e=i)+P3x·i+a’·b·c’·d·(e=i)+a·b·e·i+Px3·(d·i+e’)+c’·d’·e’·i’使用布爾操作,該邏輯表達(dá)式可以重新構(gòu)成如下
(a≠b)·c’·d·(e=i)+P3x·i+Px3·(d·i+e’)+a·b·e·i+c’·d’·e’·i’圖9中所示的表的測試顯示,在上面方程式的第一項(xiàng)[(a≠b)·c’·d·(e=i)]可以改為(a’+b’)·c’·d·(e=i)。該修改的表達(dá)式與也要求位‘a(chǎn)’的補(bǔ)碼的D7(‘1000111’=Px3·d·i)重疊。由此,能夠消除為位‘a(chǎn)=0’到‘A=1’解碼的項(xiàng)Px3·d·i,由此減少在非主要路徑中的延遲,但是這里的例子包括它,因?yàn)檫@樣能夠節(jié)省門。在圖10A的電路圖中實(shí)現(xiàn)的方程式為(a’+b’)·c’·d·(e=i)+P3x·i+Px3·(d·i+e’)+a·b·e·i+c’·d’·e’·i’在所述圖10A的邏輯圖中,使用下面的縮寫n0=(a’+b’)·c’·d·(e=i)=c’·d·(e=i)·n8n1=Px3·(d·i+e’)n2=a·b·e·i+c’·d’·e’·i’n8=(a’+b’)CPLa=n0+n1+P3x·i+n2,這里CPL建議求補(bǔ)。
2.B=b’iffa’·b·c·d’·(e=i)+P3x·i+a·b’·c·d’·(e=i)+a·b·e·i+Px3·(d·i+e’)+c’·d’·e’·i’布爾約簡給出(a≠b)·c·d’·(e=i)+P3x·i+Px3·(d·i+e’)+a·b·e·i+c’·d’·e’·i’通過檢查圖9中所示的表,可以驗(yàn)證第一項(xiàng)(a≠b)·c·d’·(e=i)可以重新簡化為(a+b)·c·d’·(e=i)。但是,證明產(chǎn)生(a≠b)比(a+b)的延遲更少,因此,采用前一個(gè)表達(dá)式。
在邏輯圖中,使用下面的縮寫n3=c·d’·(e=i)·(a≠b)CPLb=n3+n1+P3x·i+n23.C=c’iffa’·b·c·d’·(e=i)+P3x·i+a’·b·c’·d·(e=i)+a’·b’·e’·i’+Px3·(d·i+e’)+c’·d’·e’·i’該邏輯表達(dá)式可以重新構(gòu)成如下
a’·b·(c≠d)·(e=i)+P3x·i+Px3·(d·i+e’)+e’·i’·(a’·b’+c’·d’)在邏輯圖中,使用如下縮寫n4=a’·b·(c≠d)·(e=i)n5=e’·i’·(a’·b’+c’·d’)CPLc=n4+n1+P3x·i+n54.D=d’iffa·b’·c’·d·(e=i)+P3x·i+a·b’·c·d’·(e=i)+a·b·e·i+Px3·(d·i+e’)+c’·d’·e’·i’該邏輯表達(dá)式可以重新構(gòu)成如下a·b’·(c≠d)·(e=i)+P3x·i+a·b·e·i+Px3·(d·i+e’)+c’·d’·e’·i’在邏輯圖中,使用如下縮寫n6=a·b’·(c≠d)·(e=i)CPLd=n6+n1+P3x·i+n25.E=e’iffa·b’·c’·d·(e=i)+Px3·i’+a’·b·c’·d·(e=i)+a’·b’·e’·i’+Px3·(d·i+e’)+c’·d’·e’·i’布爾約簡簡化如下(a≠b)·c’·d·(e=i)+Px3·(d·i+e’+i’)+e’·i’·(a’·b’+c’·d’)檢查圖9的表顯示對(duì)于位‘a(chǎn)’到‘A’的解碼有如上所述的重疊。在這種情況下,利用重疊可以節(jié)省門,并刪除項(xiàng)Px3·d·i。由此方程式簡化為(a’+b’)·c’·d·(e=i)+Px3·(e’+i’)+e’·i’·(a’·b’+c’·d’)在邏輯圖中,使用如下縮寫n7=Px3·(e’+i’)CPLe=n0+n7+n5無效矢量R6的邏輯方程式,INVR6??偣灿?6個(gè)無效的R6矢量INVR6=P40+P04+P3x·e·i+Px3·e’·i’關(guān)于在解碼電路圖中網(wǎng)絡(luò)名的符號(hào)的說明對(duì)于布爾運(yùn)算符,采用與編碼圖中相同的字母,但它們是大寫的(A、O、N、E、UE),以避免與表示編碼位的小寫字母abcdeifghj混淆。
B.6B/5B不同等性檢查在圖10B中示出了進(jìn)行6B/5B不同等性檢查的電路1000B。不同等性檢查電路1000B包括NAND門1001B到1027B,NOR門1030B和AOI塊1040B到1044B。
圖9的表的列‘DR’列出了在各個(gè)6B矢量的起始處所要求的不同等性,列‘DR分類’標(biāo)示各輸入位模式。在上面作為參考引入的“The ANSIFibre Channel Transmission Code”的常規(guī)列‘DB’變?yōu)镈U,目前只列出了不同等性相關(guān)矢量的正或負(fù)出口不同等性。不同等性無關(guān)矢量在DU列中沒有入口。在“The ANSI Fibre Channel Transmission Code”的常規(guī)設(shè)計(jì)中,不同等性無關(guān)矢量將輸入的不同等性傳遞到輸出。換句話說,如果當(dāng)前矢量為不同等性無關(guān)矢量,則當(dāng)前矢量的輸出不同等性設(shè)為輸入不同等性。在這里公開的新的設(shè)計(jì)中,忽略不同等性無關(guān)矢量,并且為了得到更短的延遲旁路不同等性無關(guān)矢量。短延遲對(duì)于在圖10B中顯示出的DU輸出PDUR6和NDUR6(NDUR6是PDUR6的反碼)特別重要,因?yàn)樗鼈冊(cè)谥饕窂街?。為了?shí)現(xiàn)該目標(biāo),增加了專用列‘DU分類’,以更有效的方式將收到的矢量進(jìn)行DU分類,從而對(duì)于不同等性無關(guān)矢量不進(jìn)行不同等性傳遞或確定。
必須的輸入不同等性DRR6的邏輯方程式。項(xiàng)PDRR6和NDRR6表示R6矢量(即,具有六位的接收矢量),在矢量的起始分別需要正或負(fù)的運(yùn)行不同等性。與常規(guī)實(shí)現(xiàn)相反,已經(jīng)從方程式中忽略了以P40或P04起始的所有無效矢量,由于它們?cè)谡麄€(gè)錯(cuò)誤檢查方案中的冗余。換句話說,以P40或P04起始的矢量是無效的,因此在不同等性確定中沒有理由是用它們。
PDRR6=Px3·(e’+i’)+a’·b’·c’+(a·b·c)’·d’·e’·i’+Px2·e’·i’NDRR6=P3x·(e+i)+a·b·c+(a’·b’·c’)’·d·e·i+P2x·e·i布爾操作化簡為
PDRR6=Px3·(e’+i’)+a’·b’·c’+e’·i’·[Px2+d’·(a·b·c)’]NDRR6=P3x·(e+i)+a·b·c+e·i·[P2x+d·(a’·b’·c’)’]在圖10B中,網(wǎng)絡(luò)名采用如下簡化n20=(a·b·c)’·d’n21=(a’·b’·c’)’·dn22=PDRR4·NDRR6’n23=NDRR4·PDRR6’監(jiān)視字節(jié)不同等性違背的邏輯方程式。為了不同等性檢查的目的忽略只有不同等性無關(guān)矢量R6和R4的字節(jié)。在如下條件下在特定字節(jié)存在不同等性違背1.R6矢量的必需的入口不同等性與在前面字節(jié)的運(yùn)行不同等性不匹配。
2.R6矢量為不同等性無關(guān)的,并且R4矢量的必需的入口不同等性與在字節(jié)前端的運(yùn)行不同等性不匹配。
對(duì)于在主要路徑中減小延遲的實(shí)現(xiàn),不確定矢量R6的不同等性無關(guān)。相反,矢量R4的入口不同等性與在字節(jié)前端的不同等性相比較,并且根據(jù)不匹配標(biāo)記錯(cuò)誤,除了當(dāng)矢量R6具有與運(yùn)行不同等性相匹配的必需的入口不同等性時(shí)。
字節(jié)內(nèi)部的來自不同等性相關(guān)R4矢量與不同等性相關(guān)R6矢量不匹配的不同等性違背包括在無效字節(jié)集合中,而不在DVBY中。因此,字節(jié)的不同等性違背DVBY由方程式給出DVBY=NDFBY·(PDRR6+PDRR4·NDRR6’)+PDFBY·(NDRR6+NDRR4·PDRR6’)項(xiàng)PDFBY和NDFBY分別表示在字節(jié)前端的正和負(fù)運(yùn)行不同等性。
如果需要,通過將AND門1025B和1024B與NDRR6和PDRR6函數(shù)合并可以除去在以上方程式中的一級(jí)選通(圖10B中的NAND門1027B和1026B)。首先復(fù)制兩個(gè)AOI 222門1043B和1044B,變?yōu)榉欠聪嘈问降模U(kuò)展到AO 2222(即,四個(gè)二輸入AND門,隨后是四輸入OR門)以直接產(chǎn)生PNDR和PDR。
對(duì)于假定的最后不同等性PDUR6和NDUR6的方程式。在上面引入作為參考的“The ANSI Fibre Channel Transmission Code”的19頁上列出并說明了產(chǎn)生出口不同等性PDUR6和NDUR6、無效矢量PINVR6和不同等性違背的邏輯方程式。這里進(jìn)行了一些簡化。對(duì)于表達(dá)式PDBR6和NDBR6,項(xiàng)P40和P04分別由P40·(e+i)和P04·(e’+i’)代替。在編碼域中的項(xiàng)P40和P04可以僅由至少一個(gè)錯(cuò)誤產(chǎn)生。對(duì)于一個(gè)錯(cuò)誤并且e=i的情況,除了在實(shí)際錯(cuò)誤位置的無效矢量之外,R6矢量顯然初始是平衡的,所以不需要產(chǎn)生在下一個(gè)不同等性相關(guān)矢量處產(chǎn)生多余編碼違背的PDUR6或NDUR6。因此PDUR6=P3x·(e+i)+d·e·i+P2x·e·i=P3x·(e+i)+e·i·(d+P2x)NDUR6=Px3·(e’+i’)+d’·e’·i’+Px2·e’·i’=Px3·(e’+i’)+e’·i’·(d’+Px2)C.4B/3B解碼器,錯(cuò)誤檢查圖13示出了用于4B/3B傳輸編碼的解碼和錯(cuò)誤檢查的解碼和錯(cuò)誤檢查電路1300。解碼和錯(cuò)誤檢查電路1300包括反向器1301到1308、NAND門1310到1327、NANDN1門1355到1357、XNOR 1340到1346、XOR門1350、AO塊1360、AOI塊1365以及OAI塊1370和1371。
產(chǎn)生解碼位F、G、H、K的邏輯方程式。通常,F(xiàn)=f、G=g、H=h,除了在圖12的表中所列的具有F(假)入口的條件產(chǎn)生各編碼位的補(bǔ)碼,例如,H=h’。
在圖11所示的表中,行D/Kx.3(0011)、D/Kx.4(1101)以及Dx.7(0001)的解碼分類都變?yōu)?f=g)·j,并且同樣的改變也在其它矢量分類中進(jìn)行。這樣簡化了在圖12所示的表中的分類列的最后五行的方程式。根據(jù)該改變,從圖12中所示的表中提取出下面的解碼方程式,并由圖13的解碼和錯(cuò)誤檢查電路1300實(shí)現(xiàn)。
1.F=f’iff(如果并且僅僅如果)
(f≠g)·h·j+(f=g)·j+c’·d’·e’·i’·(h≠j)在邏輯圖中,使用如下縮寫m0=(f≠g)·h·jm7=c’·d’·e’·i’·(h≠j)CPLf=m0+(f=g)·j+m72.G=g’iff(f≠g)·h’·j’+(f=g)·j+c’·d’·e’·i’·(h≠j)CPLg=(f≠g)·h’·j’+(f=g)·j+m73.H=h’ifff·g’·(h=j(luò))+(f=g)·j+c’·d’·e’·i’·(h≠j)定義m2=f·g’·(h=j(luò))CPLh=m2+(f=g)·j+m7控制位K的邏輯方程式。
K=(K28+Kx.7)=(c=d=e=i)+(e≠i)·(i=g=h=j(luò))為了減小延遲,上述方程式實(shí)現(xiàn)如下K=c·d·e·i+c’·d’·e’·i’+(e≠i)·(i·g·h·j+i’·g’·h’·j’)在邏輯圖中,使用如下縮寫m10=i·g·h·j+i’·g’·h’·j’Kx7=m10·(e≠i)用于在R4矢量前端的必需的不同等性的邏輯方程式。項(xiàng)PDRR4和NDRR4分別表示在R4矢量前端的必需的正或負(fù)不同等性。
PDRR4=f’·g’+(f≠g)·h’·j’NDRR4=f·g+(f≠g)·h·j=f·g+m0用于假設(shè)的最后不同等性PDUR4 and NDUR4的邏輯方程式。
PDUR4=h·j+f·g·(h≠j)NDUR4=h’·j’+f’·g’·(h≠j)用于無效矢量R4、INVR4的邏輯方程式。總共有兩個(gè)固有的無效R4矢量全一或全零(f=g=h=j(luò))。一些R6和R4矢量的無效組合也在該電路組合體中檢測,并且集中在信號(hào)INVR4,例如,S函數(shù)規(guī)則(e=i=f=g=h)和具有P22分類的R6矢量的Kx.7控制字符的違背。在常規(guī)設(shè)計(jì)中,這些不合適的R6矢量分類為平衡矢量,這導(dǎo)致更復(fù)雜的電路。K28·(f=g=h)字符在編碼約束方面是有效控制字符,但不包括在8B/10B字母表中,因?yàn)樗枰厥獾木幋a電路。它包括在無效字符組中。
如果滿足以下條件,則接收到了無效的Kx.7控制字符VKx7=(i·g·h·j+i’·g’·h’·j’)·(e≠i)·P22=m10·(e≠i)·P22其它無效R4矢量集中到信號(hào)INVR4INVR4=(f=g=h=j(luò))+(e=i=f=g=h)+K28·(f=g=h)+K28’·(i≠g=h=j(luò))定義m5=K28·(f=g=h)m6=K28’·(i≠g=h=j(luò))INVR4=(f=g=h=j(luò))+(e=i=f=g=h)+m5+m6D.10B/8B解碼器,錯(cuò)誤檢查在圖14中示出了用于10B/8B傳輸編碼的解碼和進(jìn)行錯(cuò)誤檢查的電路1400。電路1400包括6B/5B解碼塊1410、4B/3B解碼塊1420、反相器1430和1431、NAND門1440和1441、NOR門1450以及OAI塊1460和1461。6B/5B解碼塊1410分別是圖10A和10B中所示的電路1000A和1000B。4B/3B解碼塊1420是圖13中所示的電路。
錯(cuò)誤報(bào)告。
電路1400將6B/5B解碼器1410和4B/3B解碼器1420合并為字節(jié)解碼器,并產(chǎn)生表示固有無效字節(jié)的信號(hào)PINVBY。這包括根據(jù)當(dāng)前字節(jié)的僅僅10個(gè)編碼位的檢查而顯然的不同等性違背NDV64。信號(hào)PVIOL指示在該位置或之前的字節(jié)中的錯(cuò)誤引起的檢測到的無效字節(jié)或不同等性違背NDVBY。
不同等性監(jiān)視。
如果兩個(gè)中的一個(gè)或者兩個(gè)矢量是不同等性相關(guān)的,則PDUBY或PNDUBY有效,在字節(jié)的最后分別建立起正或負(fù)運(yùn)行不同等性PDUBY=PDUR4+PDUR6·NDUR4’NDUBY=NDUR4+NDUR6·PDUR4’E.字節(jié)不同等性,快速版本符號(hào)信號(hào)名PDFBY和NDFBY分別是指在字節(jié)前端的正和負(fù)運(yùn)行不同等性。信號(hào)名PDUBY和NDUBY分別是指字節(jié)的假設(shè)的正或負(fù)出口不同等性,而不管在前端的起始不同等性。如果字節(jié)的6B矢量和4B矢量都不是不同等性相關(guān)的,則兩個(gè)輸出都無效。
圖15示出了字節(jié)不同等性電路1500,包括10B/8B解碼塊1510、反相器1520和1521以及OAI塊1530。10B/8B解碼塊1510是圖14中所示的電路1400。
輸出NDFBY、PDUBY和PNDUBY的值存儲(chǔ)在三個(gè)鎖存器(未在圖中示出)中與解碼數(shù)據(jù)輸出同時(shí)用時(shí)鐘驅(qū)動(dòng)。鎖存器的輸出分別記作NDFBY_LAST、PDUBY_LAST和PNDUBY_LAST,用于計(jì)算下一個(gè)字節(jié)的起始不同等性NDFBY。
確定在字節(jié)的起始處的不同等性的邏輯方程式。
PDFBY=PDUBY_LAST+PDFBY_LAST·NDUBY_LAST’注意,NDFBY和PDFBY是互補(bǔ)的NDFBY=PDFBY’。
PDUBY和NDUBY的值是互斥的,沒有或只有一個(gè)可以為真。
圖15的電路類似于圖5的電路,其中在當(dāng)前周期計(jì)算期間使用在上一個(gè)字節(jié)開始處的運(yùn)行不同等性和上一個(gè)字節(jié)的出口同等性加速處理。
F.字節(jié)不同等性,慢速版本圖16示出了在字節(jié)的最后產(chǎn)生運(yùn)行不同等性的慢速版本的電路1600。電路1600包括10B/8B解碼器1610(基本上與解碼器1510相同)、反相器1620和1621以及OAI塊1630。
使用慢速版本的原因是為了節(jié)省兩個(gè)鎖存器。如果定時(shí)不是很嚴(yán)格,最后不同等性PDEBY與解碼和錯(cuò)誤檢查在同一個(gè)周期中產(chǎn)生。因此,只有這一個(gè)參數(shù)必須以傳統(tǒng)的方式傳送到下一個(gè)周期。該鎖存器(未示出)的輸出是信號(hào)PDFBY,在新的字節(jié)前端的不同等性。如果最長的延遲路徑是到PDEBY的輸出,則把與一個(gè)反相器加一個(gè)OAI 21門相關(guān)的延遲加到主要路徑中。
減慢的原因是電路1600使用前一個(gè)字節(jié)的最后的運(yùn)行不同等性以及當(dāng)前字節(jié)的最后的不同等性。
G.四字節(jié)字解碼器在圖17中示出了四字節(jié)字解碼器。四字節(jié)字解碼器1700包括10B/8B解碼塊1710、1711、1712和1713,反相器1720到1727,NOR門1730到1734,OAI塊1740到1742以及AO塊1750到1752。
符號(hào)信號(hào)名PDFBY0和NDFBY0分別是指字節(jié)#0前端的正和負(fù)不同等性。
信號(hào)名PDUBY0和NDUBY0分別是指字節(jié)#0假設(shè)的正和負(fù)出口不同等性。如果字節(jié)的6B矢量和4B矢量都不是不同等性相關(guān)的,則兩個(gè)輸出都無效。
輸出PDFBY3、PNDFBY3、PDUBY3和PNDUBY3的值分別存儲(chǔ)在提供PDFBY3_LAST、PNDFBY3_LAST、PDUBY3_LAST和PNDUBY3的鎖存器(未示出)中,用于計(jì)算在圖的頂部的下一個(gè)字周期的起始不同等性PDFBY0和PNDFBY0。
用于在字節(jié)的起始處確定不同等性的邏輯方程式。
PDFBY0=PDUBY3_LAST+PDFBY3_LAST·NDUBY3_LAST’NDFBY0=NDUBY3_LAST+NDFBY3_LAST·PDUBY3_LAST’PDFBY0和NDFBY0的值是互補(bǔ)的,但PDUBY3和NDUBY3的值是互斥的,沒有或只有一個(gè)可以為真。
為了最小化電路延遲,字節(jié)#1、#2和#3前端的不同等性的值不是依次一個(gè)字節(jié)一個(gè)字節(jié)確定的,而是根據(jù)字節(jié)#0前端的不同等性以及在之間由字節(jié)引起的不同等性的變化確定的。
PDFBY1=PDUBY0+PDFBY0·NDUBY0’NDFBY1=NDUBY0+NDFBY0·PDUBY0’PDFBY2=PDUBY1+PDUBY0·NDUBY1’+PDFBY0·NDUBY0’·NDUBY1’n0=NDUBY0+NDUBY1PDFBY2=PDUBY1+PDUBY0·NDUBY1’+PDFBY0·n0’NDFBY2=NDUBY1+NDUBY0·PDUBY1’+NDFBY0·PDUBY0’·PDUBY1’n1=PDUBY0+PDUBY1NDFBY2=NDUBY1+NDUBY0·PDUBY1’+NDFBY0·n1’PDFBY3=PDUBY2+PDUBY1·NDUBY2’+PDUBY0·NDUBY1’·NDUBY2’·PDFBY0·NDUBY0’·NDUBY1’·NDUBY2’n2=NDUBY0+NDUBY1+NDUBY2n3=NDUBY1+NDUBY2PDFBY3=PDUBY2+PDUBY1·NDUBY2’+PDUBY0·n3’·PDFBY0·n2’NDFBY3=NDUBY2+NDUBY1·PDUBY2’+NDUBY0·PDUBY1’·PDUBY2’·NDFBY0·PDUBY0’·PDUBY1’·PDUBY2’n4=PDUBY0+PDUBY1+PDUBY2n5=PDUBY1+PDUBY2NDFBY3=NDUBY2+NDUBY1兩倍厚度PDUBY2’+NDUBY0·n5’·NDFBY0·n4’在實(shí)現(xiàn)圖17的電路1700中,利用了以下關(guān)系PNDFBY1=PDFBY1’PNDFBY2=PDFBY2’這些信號(hào)不在主要路徑中,并且增加的取反不會(huì)降低最大速度。對(duì)于具有足夠時(shí)間容限的應(yīng)用,對(duì)于信號(hào)PNDFBY3也可以采用同樣的簡化,并且或許PNDFBY3是以這兩個(gè)信號(hào)的每一個(gè)的反相為代價(jià)。
應(yīng)當(dāng)理解,這里所顯示和介紹的實(shí)施例和變型只是為了說明本發(fā)明的原理,并且本領(lǐng)域的技術(shù)人員可以實(shí)現(xiàn)各種修改而不脫離本發(fā)明的范圍和精神。
權(quán)利要求
1.一種為在任何矢量邊界具有加或減一運(yùn)行不同等性的平衡的二進(jìn)制編碼確定當(dāng)前矢量邊界處的運(yùn)行不同等性的方法,包括當(dāng)在之前的參考點(diǎn)和當(dāng)前矢量邊界之間有奇數(shù)個(gè)不平衡矢量時(shí),將運(yùn)行不同等性設(shè)置為在之前的參考點(diǎn)的不同等性的取補(bǔ)不同等性;以及當(dāng)在之前的參考點(diǎn)和當(dāng)前矢量邊界之間有偶數(shù)個(gè)不平衡矢量時(shí),將運(yùn)行不同等性設(shè)置為在之前的參考點(diǎn)的不同等性。
2.根據(jù)權(quán)利要求1的方法,還包括確定在之前的參考點(diǎn)和當(dāng)前矢量邊界之間有奇數(shù)個(gè)還是偶數(shù)個(gè)矢量的步驟。
3.根據(jù)權(quán)利要求2的方法,其中方法的每個(gè)步驟包括許多子步驟,并且在下一個(gè)編碼周期中至少執(zhí)行方法步驟的一個(gè)或多個(gè)的子步驟中的一個(gè),并基于來自當(dāng)前編碼周期的在參考點(diǎn)的不同等性的存儲(chǔ)值和在參考點(diǎn)與當(dāng)前矢量邊界之間出現(xiàn)的矢量的不同等性特征。
4.根據(jù)權(quán)利要求2的方法,還包括,當(dāng)在之前的參考點(diǎn)和當(dāng)前矢量邊界之間有偶數(shù)個(gè)矢量時(shí),步驟為確定在之前的參考點(diǎn)和當(dāng)前矢量邊界之間有偶數(shù)個(gè)還是奇數(shù)個(gè)平衡矢量;當(dāng)有偶數(shù)個(gè)平衡矢量時(shí),設(shè)置運(yùn)行不同等性匹配參考點(diǎn)處的不同等性;以及當(dāng)有奇數(shù)個(gè)平衡矢量時(shí),設(shè)置運(yùn)行不同等性為參考點(diǎn)處的不同等性的補(bǔ)碼。
5.根據(jù)權(quán)利要求4的方法,其中在下一個(gè)編碼周期中至少執(zhí)行方法的步驟中的一個(gè),并基于來自當(dāng)前編碼周期的在參考點(diǎn)的不同等性的存儲(chǔ)值和在參考點(diǎn)與當(dāng)前矢量邊界之間出現(xiàn)的矢量的不同等性特征。
6.根據(jù)權(quán)利要求5的方法,其中在下一個(gè)編碼周期中執(zhí)行方法的所有步驟。
7.根據(jù)權(quán)利要求2的方法,還包括,當(dāng)在之前的參考點(diǎn)和當(dāng)前矢量邊界之間有奇數(shù)個(gè)矢量時(shí),步驟為確定在之前的參考點(diǎn)和當(dāng)前矢量邊界之間是有奇數(shù)個(gè)還是偶數(shù)個(gè)平衡矢量;當(dāng)有奇數(shù)個(gè)平衡矢量時(shí),設(shè)置運(yùn)行不同等性匹配參考點(diǎn)處的不同等性;以及當(dāng)有偶數(shù)個(gè)平衡矢量時(shí),設(shè)置運(yùn)行不同等性為參考點(diǎn)處的不同等性的補(bǔ)碼。
8.根據(jù)權(quán)利要求7的方法,其中在下一個(gè)編碼周期中至少執(zhí)行方法的步驟中的一個(gè),并基于來自當(dāng)前編碼周期的在參考點(diǎn)的不同等性的存儲(chǔ)值和在參考點(diǎn)與當(dāng)前矢量邊界之間出現(xiàn)的矢量的不同等性特征。
9.根據(jù)權(quán)利要求8的方法,其中在下一個(gè)編碼周期中執(zhí)行方法的所有步驟。
10.一種用于編碼的電路,包括適于將五位源矢量編碼為六位編碼矢量和將三位源矢量編碼為四位編碼矢量的8B/10B編碼器,從而由八個(gè)輸入位產(chǎn)生10位編碼字節(jié);以及適于根據(jù)在之前的編碼字節(jié)前端的運(yùn)行不同等性和指示之前的編輯字節(jié)是否平衡的單比特參數(shù)的值確定在編碼字節(jié)前端的起始不同等性的不同等性電路。
11.根據(jù)權(quán)利要求10的電路,其中8B/10B編碼器還包括一個(gè)5B/6B編碼電路,適于當(dāng)5B/6B編碼電路檢測到在五位源矢量中第三位為一或者前四位的值為零或者前三位的值為零并且后面的位為一時(shí)將六位編碼矢量的第三編碼位設(shè)置為一。
12.根據(jù)權(quán)利要求11的電路,其中的5B/6B編碼電路還適于當(dāng)5B/6B編碼電路檢測到在五位源矢量中,后面的位為一而前四位不是三個(gè)零后面跟一個(gè)一,或者最后兩位的值為零以及前三位中的一位的值為一,或者前三位的值為零隨后的第四位的值為一并且后面的位的值為零時(shí),將六位編碼矢量的第五編碼位設(shè)置為一。
13.根據(jù)權(quán)利要求12的電路,其中的5B/6B編碼電路還適于當(dāng)5B/6B編碼電路檢測到在五位源矢量中,后面的兩位的值為零并且前三位中一位的值為零,或者一個(gè)控制輸入的值為一或最末兩位的值不相等并且前三位中一位的值為一,或者前四位的值為零并且最末位的值為一,或者五位全為一時(shí),將六位編碼矢量的最末一個(gè)編碼位設(shè)置為一。
14.根據(jù)權(quán)利要求13的電路,其中的5B/6B編碼電路還適于當(dāng)5B/6B編碼電路檢測到在五位源矢量中,前三位的值為零并且最后一位的值為零,或者前三位的值為零而隨后的第四位的值為一,或者前四位的值為一并且最后一位的值為零,或者最后兩位的值為零并且前三位中的一位的值為一時(shí),確定在六位編碼矢量的前端需要一個(gè)正的運(yùn)行不同等性。
15.根據(jù)權(quán)利要求14的電路,其中的5B/6B編碼電路還適于當(dāng)5B/6B編碼電路檢測到在五位源矢量中,前三位和最后一位的值為一,或者前三位的值為一而隨后的第四位的值為零,或者前四位的值為零并且最后一位的值為一,或者最后兩位的值為一并且前三位中的一位的值為零,或者控制線的值為一時(shí),確定在六位編碼矢量的前端需要一個(gè)負(fù)的運(yùn)行不同等性。
16.根據(jù)權(quán)利要求15的電路,其中的5B/6B編碼電路還適于當(dāng)5B/6B編碼電路檢測到在五位源矢量中,前三位中的一位的值為零并且最后兩位中的至少一位的值為零,或者前三位中的一位的值為一并且最后兩位中的至少一位的值為一并且控制輸入的值為零,或者前三位的值為一并且最后兩位的值為零時(shí),確定在六位編碼矢量是平衡的。
17.根據(jù)權(quán)利要求10的電路,其中8B/10B編碼器還包括一個(gè)3B/4B編碼電路,適于如果3B/4B編碼電路檢測到在三位源矢量中,前兩位具有不相等的值,或者前兩位都是一而隨后的最后一位的值為零時(shí),確定四位編碼矢量是平衡的。
18.一種塊編碼器,包括多個(gè)并行操作的8B/10B編碼器,每個(gè)8B/10B編碼器將五位源矢量編碼為六位編碼矢量并將三位源矢量編碼為四位編碼矢量,從而由八個(gè)輸入位產(chǎn)生10位編碼字節(jié);以及適于根據(jù)在參考點(diǎn)的運(yùn)行不同等性、在參考點(diǎn)和一個(gè)10位編碼字節(jié)之間的編碼字節(jié)的奇偶數(shù)以及在參考點(diǎn)和一個(gè)10位編碼字節(jié)之間的平衡字節(jié)的奇偶數(shù)確定在一個(gè)10位編碼字節(jié)前端的起始不同等性的不同等性電路。
19.根據(jù)權(quán)利要求18的塊編碼器,其中當(dāng)在參考點(diǎn)和一個(gè)10位編碼字節(jié)之間的字節(jié)數(shù)為奇數(shù)并且在參考點(diǎn)和一個(gè)10位編碼字節(jié)之間的平衡矢量的數(shù)量也是奇數(shù)時(shí),不同等性電路適于將不同等性設(shè)置成與參考點(diǎn)的不同等性相同,并且當(dāng)平衡矢量的數(shù)量是偶數(shù)時(shí),不同等性電路適于將不同等性設(shè)置成與參考點(diǎn)的不同等性互補(bǔ)。
20.根據(jù)權(quán)利要求18的塊編碼器,其中當(dāng)在參考點(diǎn)和一個(gè)10位編碼字節(jié)之間的字節(jié)數(shù)為偶數(shù)并且在參考點(diǎn)和一個(gè)10位編碼字節(jié)之間的平衡矢量的數(shù)量也是偶數(shù)時(shí),不同等性電路適于將不同等性設(shè)置與與參考點(diǎn)的不同等性相同,并且當(dāng)平衡矢量的數(shù)量是奇數(shù)時(shí),不同等性電路適于將運(yùn)行不同等性設(shè)置成與參考點(diǎn)的不同等性互補(bǔ)。
21.一種為在任何字節(jié)邊界具有加或減一的運(yùn)行不同等性的平衡二進(jìn)制編碼在字節(jié)前端檢測不同等性違背的方法,該方法包括確定字節(jié)的必需的前端不同等性;以及通過將實(shí)際運(yùn)行不同等性設(shè)置成等于不同等性相關(guān)的下一個(gè)之前的字節(jié)的出口不同等性將字節(jié)的必需的前端不同等性與實(shí)際運(yùn)行不同等性相比較。
22.一種用于解碼10B/8B編碼字節(jié)的電路,該電路包括適于將六位編碼矢量解碼為五位源矢量和將四位編碼矢量解碼為三位源矢量的10B/8B解碼器,從而由10位編碼字節(jié)產(chǎn)生八位解碼字節(jié);以及通過將實(shí)際運(yùn)行不同等性設(shè)置成等于不同等性相關(guān)的下一個(gè)之前的10位編碼字節(jié)的出口不同等性將10位編碼字節(jié)的必需的前端不同等性與實(shí)際運(yùn)行不同等性相比較。
23.根據(jù)權(quán)利要求22的電路,其中10B/8B解碼器還包括一個(gè)6B/5B解碼電路,適于當(dāng)6B/5B解碼電路在六位編碼矢量中檢測到下面五種位結(jié)構(gòu)的一種時(shí)(1)最后兩位的值相等,第四位的值為一,第三位的值為零,并且最前兩位中至少一位的值為零;(2)在前四位中,有三位或四位的值為一并且最后一位的值為一;(3)在前四位中,有三位或四位的值為零并且第五位的值為零或者在第四和最后一位的值為一;(4)前兩位和最后兩位的值都為一;以及(5)最后四位的值為零,對(duì)六位編碼矢量的第一編碼位求補(bǔ)。
24.根據(jù)權(quán)利要求23的電路,其中的6B/5B解碼電路還適于當(dāng)6B/5B解碼電路在六位編碼矢量中檢測到下面五種位結(jié)構(gòu)的一種時(shí)(1)最后兩位的值相等,前兩位的值不相等,第三位的值為一,第四位的值為零;(2)在前四位中,有三位或四位的值為一并且最后一位的值為一;(3)在前四位中,有三位或四位的值為零并且第五位的值為零或者在第四和最后一位的值為一;(4)前兩位和最后兩位的值都為一;以及(5)后四位的值為零,對(duì)六位編碼矢量的第二編碼位求補(bǔ)。
25.根據(jù)權(quán)利要求24的電路,其中的6B/5B解碼電路還適于當(dāng)6B/5B解碼電路在六位編碼矢量中檢測到下面五種位結(jié)構(gòu)的一種時(shí)(1)最后兩位的值相等,第三和第四位的值不相等,第一位的值為零,第二位的值為一;(2)在前四位中,有三位或四位的值為一并且最后一位的值為一;(3)在前四位中,有三位或四位的值為零并且第五位的值為零或者在第四和最后一位的值為一;(4)前兩位和最后兩位的值都為零;以及(5)后四位的值為零,對(duì)六位編碼矢量的第三編碼位求補(bǔ)。
26.根據(jù)權(quán)利要求25的電路,其中的6B/5B解碼電路還適于當(dāng)6B/5B解碼電路在六位編碼矢量中檢測到下面五種位結(jié)構(gòu)的一種時(shí)(1)最后兩位的值相等,第三和第四位的值不相等,第一位的值為一,第二位的值為零;(2)在前四位中,有三位或四位的值為一并且最后一位的值為一;(3)在前四位中,有三位或四位的值為零并且第五位的值為零或者在第四和最后一位的值為一;(4)前兩位和最后兩位的值都為一;以及(5)后四位的值為零,對(duì)六位編碼矢量的第四編碼位求補(bǔ)。
27.根據(jù)權(quán)利要求26的電路,其中的6B/5B解碼電路還適于當(dāng)6B/5B解碼器在六位編碼矢量中檢測到下面四種位結(jié)構(gòu)的一種時(shí)(1)最后兩位的值相等,第四位的值為一,第三的值為零,并且在最前兩位中至少有一個(gè)為零;(2)在前四位中,有三位或四位的值為零并且最后兩位中至少有一個(gè)為零;(3)前兩位和最后兩位的值都為零;以及(4)后四位的值為零,對(duì)六位編碼矢量的第五編碼位求補(bǔ)。
28.根據(jù)權(quán)利要求22的電路,其中10B/8B解碼器還包括一個(gè)4B/3B解碼器,適于當(dāng)4B/3B解碼電路在四位編碼矢量中檢測到下面三種位結(jié)構(gòu)的一種時(shí)(1)前兩位的值不相等并且最后兩位的值為一;(2)前兩位的值相等并且最后一位的值為一;以及(3)最后兩位的值不相等并且之前的六位矢量的后四位的值都為零,對(duì)四位編碼矢量的第一編碼位求補(bǔ)。
29.根據(jù)權(quán)利要求28的電路,其中的4B/3B解碼電路還適于當(dāng)4B/3B解碼電路在四位編碼矢量中檢測到下面三種位結(jié)構(gòu)的一種時(shí)(1)前兩位的值不相等并且最后兩位的值為零;(2)前兩位的值相等并且最后一位的值為一;以及(3)最后兩位的值不相等并且之前的六位矢量的后四位的值都為零,對(duì)四位編碼矢量的第二編碼位求補(bǔ)。
30.根據(jù)權(quán)利要求29的電路,其中的4B/3B解碼電路還適于當(dāng)4B/3B解碼器在四位編碼矢量中檢測到下面三種位結(jié)構(gòu)的一種時(shí)(1)后兩位的值相等,第一位的值為一,并且第二位的值為零;(2)前兩位的值相等并且最后一位的值為一;以及(3)最后兩位的值不相等并且之前的六位矢量的后四位的值都為零,對(duì)四位編碼矢量的第三編碼位求補(bǔ)。
31.根據(jù)權(quán)利要求22的電路,其中10B/8B解碼電路還包括一個(gè)6B不同等性錯(cuò)誤檢查電路,適于當(dāng)6B不同等性錯(cuò)誤檢查電路在六位編碼矢量中檢測到下面四種位結(jié)構(gòu)的一種時(shí)(1)在前四位中,三或四位的值為零,并且在最后兩位中至少一位的值為零;(2)前三位的值都是零;(3)在前三位中有兩位或三位的值為零,并且最后兩位的值為零;以及(4)最后三位的值都是零,并且前三位的值不是全一,將一個(gè)正的必須的前端不同等性分配給任何六位編碼矢量。
32.根據(jù)權(quán)利要求31的電路,其中的6B不同等性錯(cuò)誤檢查電路還適于當(dāng)6B不同等性錯(cuò)誤檢查電路在六位編碼矢量中檢測到下面四種位結(jié)構(gòu)的一種時(shí)(1)在前四位中,三或四位的值為一,并且在最后兩位中至少一位的值為一;(2)前三位的值都是一;(3)在前三位中有兩位或三位的值為一,并且最后兩位的值為一;以及(4)最后三位的值都是一,并且前三位的值不是全零,將一個(gè)負(fù)的必須的前端不同等性分配給任何六位編碼矢量。
33.根據(jù)權(quán)利要求32的電路,其中的6B不同等性錯(cuò)誤檢查電路還適于當(dāng)6B不同等性錯(cuò)誤檢查電路在六位編碼矢量中檢測到下面三種位結(jié)構(gòu)的一種時(shí)(1)在前四位中,三或四位的值為一,并且在后兩位中至少一位的值為一;(2)后三位的值都是一;以及(3)在前三位中有兩位或三位的值為一,并且最后兩位的值為一,將一個(gè)正的出口不同等性分配給任何六位編碼矢量。
34.根據(jù)權(quán)利要求33的電路,其中的6B不同等性錯(cuò)誤檢查電路還適于當(dāng)6B不同等性錯(cuò)誤檢查電路在六位編碼矢量中檢測到下面三種位結(jié)構(gòu)的一種時(shí)(1)在前四位中,三或四位的值為零,并且在最后兩位中至少一位的值為零;(2)后三位的值都是零;以及(3)在前三位中有兩位或三位的值為零,并且最后兩位的值為零,將一個(gè)負(fù)的出口不同等性分配給任何六位編碼矢量。
35.根據(jù)權(quán)利要求22的電路,其中10B/8B解碼電路還包括一個(gè)4B不同等性錯(cuò)誤檢查電路,該4B不同等性錯(cuò)誤檢查電路適于在四位編碼矢量中檢測到下面兩種位結(jié)構(gòu)的一種時(shí)(1)前兩位的值都是零;以及(2)最后兩位的值都是零,并且前兩位的值不相等,將一個(gè)正的必須的前端不同等性分配給任何四位編碼矢量。
36.根據(jù)權(quán)利要求35的電路,其中的4B不同等性錯(cuò)誤檢查電路還適于當(dāng)4B不同等性錯(cuò)誤檢查電路在四位編碼矢量中檢測到下面兩種位結(jié)構(gòu)的一種時(shí)(1)前兩位的值都是一;以及(2)最后兩位的值都是一,并且前兩位的值不相等,將一個(gè)負(fù)的必須的前端不同等性分配給任何四位編碼矢量。
37.根據(jù)權(quán)利要求36的電路,其中的4B不同等性錯(cuò)誤檢查電路還適于當(dāng)4B不同等性錯(cuò)誤檢查電路在四位編碼矢量中檢測到下面兩種位結(jié)構(gòu)的一種時(shí)(1)后兩位的值都是一;以及(2)在前兩位的值為一,并且最后兩位的值不相等,將一個(gè)正的出口不同等性分配給任何四位編碼矢量。
38.根據(jù)權(quán)利要求37的電路,其中的4B不同等性錯(cuò)誤檢查電路還適于當(dāng)4B不同等性錯(cuò)誤檢查電路在四位編碼矢量中檢測到下面兩種位結(jié)構(gòu)的一種時(shí)(1)后兩位的值都是零;以及(2)在前兩位的值為零,并且最后兩位的值不相等,將一個(gè)負(fù)的出口不同等性分配給任何四位編碼矢量。
全文摘要
在解碼和編碼期間,通過使用某些之前參考點(diǎn)的不同等性以及從參考點(diǎn)到當(dāng)前塊邊界的字節(jié)的不同等性特性計(jì)算當(dāng)前塊的起始不同等性。字節(jié)的特征為字節(jié)是否是不平衡的編碼矢量以及不平衡矢量的數(shù)量是奇數(shù)還是偶數(shù)。此外,字節(jié)的特征為字節(jié)是否是平衡的以及存在多少平衡的編碼矢量。為編碼和解碼3B/4B和5B/6B傳輸編碼產(chǎn)生新的分類。產(chǎn)生針對(duì)特殊不同等性方面的單獨(dú)的函數(shù)。在解碼期間通過假設(shè)實(shí)際運(yùn)行不同等性等于不同等性相關(guān)的下一個(gè)之前的字節(jié)的出口不同等性將必須的字節(jié)的前端不同等性與實(shí)際運(yùn)行的不同等性相比較,檢測字節(jié)前端的不同等性違背。
文檔編號(hào)H03M7/20GK1529941SQ02809444
公開日2004年9月15日 申請(qǐng)日期2002年4月30日 優(yōu)先權(quán)日2001年5月8日
發(fā)明者A·X·威德默, A X 威德默 申請(qǐng)人:國際商業(yè)機(jī)器公司