欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

總線編/解碼方法和總線編/解碼器的制作方法

文檔序號:6457595閱讀:384來源:國知局
專利名稱:總線編/解碼方法和總線編/解碼器的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及一種總線編/解碼方法及對應(yīng)的總線編/解碼器。更具體地,本 發(fā)明涉及一種能夠減小輸入/輸出(I/0)電路功耗的總線編/解碼方法及對應(yīng)的 總線編/解碼器。
背景技術(shù)
目前,能源和環(huán)境問題是全世界關(guān)心的問題。對于計算系統(tǒng),從芯片的 層面上到系統(tǒng)的層面上追求低功率是個熱門話題。當計算系統(tǒng)的功率增大時, 用于給該系統(tǒng)供電的開銷以及系統(tǒng)散熱開銷以更高的速率增大。因此,諸如
IBM、 Intel、 AMD、 Sun等的芯片制造商都在努力降低它們的芯片和系統(tǒng)所 消耗的功率。
計算系統(tǒng)通常由處理器和外圍的輸入/輸出(I/0)電路紐成。相應(yīng)地,計算 系統(tǒng)的功率由處理器的功率和I/O電路的功率(在下文中,稱為I/O功率)組成。 目前,作為降低計算系統(tǒng)功率的一種途徑,已經(jīng)提出了很多降低處理器功率 的方法。例如,Intel提出了一種電源管理方法,其在中央處理單元(CPU)的負 荷較低時降低CPU的工作電壓和頻率,從而降低CPU的功率。然而,該方 法沒有涉及降低I/O功率。當不使用該方法時,I/O功率占計算系統(tǒng)功率的50% 左右,而當使用該方法時,由于處理器功率降低到其原來值的大約10%而1/0 功率相對地保持不變,因此I/O功率的比率升高到70%或更高,從而導(dǎo)致不 平衡的處理器功率和I/0功率。而且,已經(jīng)發(fā)現(xiàn)對于移動設(shè)備,1/0功率的比 率可高達80%。因此,作為降低計算系統(tǒng)功率的另一途徑,降低I/0功率越 來越重要。
I/O功率由動態(tài)I/O功率和靜態(tài)I/O功率組成。已經(jīng)證實動態(tài)I/O功率可 由以下公式表示
尸C.AA《./ (1) 其中,P為動態(tài)I/0功率,C為I/O電路的等效電容,VoD為工作電壓,f為 工作頻率,N為總線切換數(shù)目。所述總線切換數(shù)目是指總線在發(fā)送不同邏輯值的數(shù)據(jù)時進行的電平切換(或反轉(zhuǎn))的次數(shù);具體地說,例如,在總線發(fā)送具 有第一邏輯值(0或l)的第一比特之后,如果接下來要發(fā)送的第二比特具有不 同于第一邏輯值的邏輯值(l或0),則需要將總線上的電平從第一邏輯值切換 (或反轉(zhuǎn))為第二邏輯值以發(fā)送該第二比特,這對應(yīng)于一次總線切換;當總線發(fā) 送一個字時,總線切換數(shù)目即為發(fā)送該字時的電平切換的總數(shù)目。由上述公 式(1)可知,當其它條件不變時I/O功率正比于總線切換數(shù)目N。因此,除了 降低工作電壓和頻率以外,還可以通過減小N來減小1/0功率。
已經(jīng)提出了很多方法來減小總線切換數(shù)目。例如,在M. R. Stan等人的 "Bus-Invert Coding for Low-Power I/O" (IEEE Transactions on VLSI, pp.49-58, Mar. 1995)中提出了一種方法。在該方法中,在發(fā)送了字D0(64比特)之后, 檢查發(fā)送下一個字Dl(64比特)是否需要切換字DO的超過一半的比特,即, 檢查字D0與字D1之間的不同比特的數(shù)目是否超過一半(32個),如果是,則 切換(即,反轉(zhuǎn))字D1的全部比特,使得最多需要32次總線切換;同時,產(chǎn) 生變換信息以指示所發(fā)送的字是否被反轉(zhuǎn)并且使用額外的信號線來發(fā)送該變 換信息。這種方法能夠減小總線切換數(shù)目,然而,由于所發(fā)送的數(shù)據(jù)的模式 難以預(yù)測,因此使用一種變換模式(即,反轉(zhuǎn))來處理所有數(shù)據(jù)不一定能得到最 優(yōu)的結(jié)果;而且,這種方法需要增加額外的信號線,這將導(dǎo)致電路設(shè)計的不 兼容。至于所提出的其它用于減小總線切換數(shù)目的方法,它們要么需要額外 的信號線,要么需要復(fù)雜的算法來推導(dǎo)總線編碼方案,要么只適用于地址總 線,并且這些方法都沒有從時間和空間的角度綜合考慮數(shù)據(jù)的編碼和發(fā)送。
因此,需要一種通過減小總線切換數(shù)目來降低I/O功率的總線編/解碼器 和總線編/解碼方法,其不僅適用于地址總線還適用于數(shù)據(jù)總線,并且與現(xiàn)有 系統(tǒng)具有良好的兼容性。

發(fā)明內(nèi)容
考慮到以上問題而提出了本發(fā)明。本發(fā)明的目的是提供一種基于矩陣變 換的總線編碼器和總線編碼方法以及相應(yīng)的總線解碼器和總線解碼方法,所 述總線編碼器和總線編碼方法能夠在向I/O電路發(fā)送數(shù)據(jù)之前通過選擇性地 對該數(shù)據(jù)進行變換來減小實際發(fā)送給該I/O電路的數(shù)據(jù)的總線切換數(shù)目,從 而降低I/0功率和計算系統(tǒng)的功率,并且,其與現(xiàn)有系統(tǒng)具有良好的兼容性。
根據(jù)本發(fā)明的一個方面,提供了 一種對經(jīng)由并行總線以突發(fā)串方式發(fā)送的數(shù)據(jù)進行編碼的方法,其中并行總線寬度為n位,每個突發(fā)串包括m個數(shù) 據(jù)字,m和n為自然數(shù),該方法包括組織步驟,將k個所述突發(fā)串的數(shù)據(jù) 組織為(pxq)個LiXCj矩陣,其中k、 p、 q、 i、 j、 L;、 Cj為自然數(shù),i=l,…, p, j-l,…,q,并且力丄,=",tc;=A:xw;確定步驟,對于每個所述Lj xCj矩陣,確定是否^^能夠減f該矩陣的總線切換數(shù)目的變換模式,并且 當存在能夠減少該矩陣的總線切換數(shù)目的變換模式時確定該矩陣需要進行變 換并且確定用于變換該矩陣的對應(yīng)變換模式;變換步驟,對于確定需要進行 變換的矩陣,利用所確定的用于變換該矩陣的對應(yīng)變換模式對其進行變換, 并且用變換后的矩陣替換所述確定需要進行變換的矩陣;形成步驟,將確定 不需要進行變換的矩陣和經(jīng)過替換的矩陣形成一個待發(fā)送的n x (k x m)矩陣; 產(chǎn)生步驟,產(chǎn)生指示所述(pxq)個L;xCj矩陣的變換狀態(tài)的長度為n位的變 換信息字;以及附加步驟,將所述變換信息字附加到所述待發(fā)送的nx(kx m)矩陣以形成實際需要發(fā)送的編碼矩陣。
根據(jù)本發(fā)明的另 一方面,提供了 一種對經(jīng)由并行總線以突發(fā)串方式發(fā)送 的數(shù)據(jù)進行編碼的編碼器,其中并行總線寬度為n位,每個突發(fā)串包括m個 數(shù)據(jù)字,m和n為自然數(shù),該編碼器包括組織單元,將k個所述突發(fā)串的 數(shù)據(jù)組織為(pxq)個LiXCj矩陣,其中k、 p、 q、 i、 j、 Lj、 Cj為自然數(shù),i-l,..., p, j-l,…,q,并且f丄,;",tc;=A:xm;確定單元,對于每個所述Lj xCj矩陣,確定是否^^^能夠減夕'該矩陣的總線切換數(shù)目的變換模式,并且 當存在能夠減少該矩陣的總線切換數(shù)目的變換模式時確定該矩陣需要進行變 換并且確定用于變換該矩陣的對應(yīng)變換模式;變換單元,對于確定需要進行 變換的矩陣,利用所確定的用于變換該矩陣的對應(yīng)變換模式對其進行變換, 并且用變換后的矩陣替換所述確定需要進行變換的矩陣;形成單元,將確定 不需要進行變換的矩陣和經(jīng)過替換的矩陣形成一個待發(fā)送的n x (k x m)矩陣; 產(chǎn)生單元,產(chǎn)生指示所述(pxq)個LjXCj矩陣的變換狀態(tài)的長度為n位的變 換信息字,和附加單元,將所述變換信息字附加到所述待發(fā)送的nx(kxm) 矩陣以形成實際需要發(fā)送的編碼矩陣。
根據(jù)本發(fā)明的另 一方面,提供了 一種用于將經(jīng)由并行總線發(fā)送的編碼數(shù) 據(jù)解碼的方法,其中并行總線寬度為n位,所述編碼數(shù)據(jù)包含長度為n位的 變換信息字和k個突發(fā)串的數(shù)據(jù),每個突發(fā)串包含m個數(shù)據(jù)字,k、 m和n 為自然數(shù),該方法包括以下步驟提取步驟,根據(jù)預(yù)定義的變換信息字位置信息而從編碼數(shù)據(jù)中提取所述變換信息字;組織步驟,根據(jù)預(yù)定義的矩陣數(shù) 目和各個矩陣的大小而將編碼數(shù)據(jù)中的剩余數(shù)據(jù)組織為(p x q)個Li x Cj矩陣, 其中p、 q、 i、 j、 Lj、 Cj為自然數(shù),i-l,…,p, …,q,并且^>,=",
^q-A:xw;確定步驟,根據(jù)所述變換信息字確定每個所述L; x q&陣的變 凝狀態(tài);逆變換步驟,根據(jù)所確定的每個所述LiXCj矩陣的變換狀態(tài),對所 述(p x q)個Li x Cj矩陣中被變換的矩陣進行相應(yīng)的逆變換并用逆變換后的矩 替換所述被變換的矩陣,并且將被確定為未被變換的矩陣保持不變;以及形 成步驟,將被確定為未被變換的矩陣和經(jīng)過替換的矩陣形成一個nx(kxm) 矩陣作為原始數(shù)據(jù)矩陣。
根據(jù)本發(fā)明的另 一方面,提供了 一種用于將經(jīng)由并行總線發(fā)送的編碼數(shù) 據(jù)解碼的解碼器,其中并行總線寬度為n位,所述編碼數(shù)據(jù)包含長度為n位 的變換信息字和k個突發(fā)串的數(shù)據(jù),每個突發(fā)串包含m個數(shù)據(jù)字,k、 m和n 為自然數(shù),該解碼器包括提取單元,根據(jù)預(yù)定義的變換信息字位置信息而 從編碼數(shù)據(jù)中提取所述變換信息字;組織單元,根據(jù)預(yù)定義的矩陣數(shù)目和各 個矩陣的大小而將編碼數(shù)據(jù)中的剩余數(shù)據(jù)組織為(p x q)個Lj x Cj矩陣,其中p、 q、 i、 j、 Lj、 Cj為自然數(shù),i=l,…,p, j=l,…,q,并且尤丄,力(^ =Axm; 確定單元,根據(jù)所述變換信息字確定每個所述LiXCjl巨陣的變茲狀態(tài);逆變 換單元,根據(jù)所確定的每個所述LiXCj矩陣的變換狀態(tài),對所述(pxq)個Li x Cj矩陣中被變換的矩陣進行相應(yīng)的逆變換并用逆變換后的矩陣替換所述被 變換的矩陣,并且將被確定為未被變換的矩陣保持不變;以及形成單元,將 被確定為未被變換的矩陣和經(jīng)過替換的矩陣形成一個nx (kxm)矩陣作為原 始數(shù)據(jù)矩陣。
當需要向I/O電路發(fā)送數(shù)據(jù)以將該凄t據(jù)發(fā)送到外部時,4艮據(jù)本發(fā)明的編 碼方法/編碼器從空間和時間的角度將要發(fā)送的數(shù)據(jù)組織為一個或多個矩陣, 然后選擇性地對所述一個或多個矩陣進行矩陣變換,以減小實際發(fā)送給I/O 電路的數(shù)據(jù)的總線切換數(shù)目,從而減小I/O功率和整個計算系統(tǒng)的功率。由 于根據(jù)本發(fā)明的編碼方法/編碼器不需要額外的信號線,因此其與現(xiàn)有系統(tǒng)具 有良好的兼容性。


通過結(jié)合附圖對本發(fā)明的實施例進行詳細描述,本發(fā)明的上述和其它目的、特征、優(yōu)點將會變得更加清楚,其中
圖l是示出根據(jù)本發(fā)明的、將通過并行總線發(fā)送的一個突發(fā)串的數(shù)據(jù)組
織為 一個矩陣的示例的圖。
圖2是圖示根據(jù)本發(fā)明實施例的總線編碼器和總線解碼器的框圖。
圖3(a)、圖3(b)和圖3(c)示出了根據(jù)本發(fā)明的變換表的示例。
圖4示出了圖2所示的編碼部件和解碼部件的變型。
圖5是示出根據(jù)本發(fā)明實施例的總線編碼方法的流程圖。
圖6是示出圖5所示的步驟S504、S505和S506中的詳細操作的流程圖。
圖7是示出根據(jù)本發(fā)明實施例的總線解碼方法的流程圖。
圖8示出了用于例示根據(jù)本發(fā)明實施例的總線編碼方法和總線解碼方法
的第一示例。
圖9示出了用于例示根據(jù)本發(fā)明實施例的總線編碼方法和總線解碼方法 的第二示例。
圖10示出了用于例示根據(jù)本發(fā)明實施例的總線編碼方法和總線解碼方 法的第三示例。
圖11示出了用于例示根據(jù)本發(fā)明實施例的總線編碼方法和總線解碼方 法的第四示例。
具體實施例方式
下面將參照附圖來詳細描述本發(fā)明的優(yōu)選實施例,在附圖中,相同的參 考標號自始至終表示相同的元件。應(yīng)當理解這里描述的實施例僅僅是說明 性的,而不應(yīng)被解釋為限制本發(fā)明的范圍。本領(lǐng)域技術(shù)人員將認識到在不 背離本發(fā)明的精神和范圍的情況下,可以對這些實施例做出各種修改和組合。
本發(fā)明基于以下發(fā)現(xiàn)
(l)如上述公式(l)所示,當其它條件不變時,I/O功率與發(fā)送數(shù)據(jù)時的總 線切換數(shù)目成正比,因此,可以通過減小所發(fā)送的數(shù)據(jù)的總線切換數(shù)目來減 小1/0功率;
特切換(即,反轉(zhuǎn))所消耗的功率遠低于不經(jīng)任何處理而直接經(jīng)由I/O電路發(fā)送 所述數(shù)據(jù)所消耗的功率,因此,可以通過預(yù)先處理要發(fā)送的數(shù)據(jù)以減少經(jīng)由 I/O電路發(fā)送所述數(shù)據(jù)時的比特切換次數(shù)來大幅降低I/O功率;以及
ii(3)目前,大多數(shù)I/0電路和存儲系統(tǒng)以突發(fā)串(burst)的方式發(fā)送或接收 數(shù)據(jù),即,在一個突發(fā)串中一次連續(xù)發(fā)送或接收多個數(shù)據(jù)字,而不是僅發(fā)送 或接收一個數(shù)據(jù)字(在下文中,將突發(fā)串中的數(shù)據(jù)字的數(shù)目定義為突發(fā)串長 度)。例如,大多數(shù)存儲系統(tǒng)在一個突發(fā)串中連續(xù)發(fā)送8個數(shù)據(jù)字,即突發(fā)串 長度為8。此外, 一些存儲系統(tǒng)在一個突發(fā)串中連續(xù)發(fā)送一條高速緩沖存儲 器線(cache line)的數(shù)據(jù),此時突發(fā)串長度更長(注意對于一個給定的系統(tǒng)來 說,突發(fā)串長度是固定的)。此外,這里所述的術(shù)語"字"可以根據(jù)需要和實 際使用的系統(tǒng)而靈活地定義,例如,可以將一個字定義為具有一個或多個字 節(jié)。當通過在計算系統(tǒng)中通常使用的并行總線來發(fā)送數(shù)據(jù)時,可以從時間和 空間的角度將一個或多個突發(fā)串的數(shù)據(jù)組織為 一個或多個矩陣,其中 一個維 度為空間維度,即并行總線并行發(fā)送的數(shù)據(jù)比特,另一維度為時間維度,其 對應(yīng)于在所述一個或多個突發(fā)串中連續(xù)發(fā)送的多個字。圖l是示出根據(jù)本發(fā) 明的、將通過并行總線發(fā)送的一個突發(fā)串的數(shù)據(jù)組織為一個矩陣的示例的圖。
如圖l所示,并行總線的寬度為n位,即,該并行總線具有n條傳輸線,
并且可并行發(fā)送n位數(shù)據(jù)bO、 bl.....bn-l。 I/O電路在一個突發(fā)串中一次連
續(xù)發(fā)送m個字D0、 Dl.....Dm-l,即突發(fā)串長度為m,并且這m個字具有
在時間上連續(xù)的關(guān)系。在本說明書中,為簡單起見,將字定義為具有與并行 總線的寬度相同數(shù)目的位,即n位。此時,如果從空間和時間的角度來考慮 所發(fā)送的數(shù)據(jù),則可以通過以并行總線并行發(fā)送的一個字的n位數(shù)據(jù)(對應(yīng)于 n條傳輸線)為矩陣的n行(空間維度),并且以在時間上連續(xù)發(fā)送的m個字為 矩陣的m歹'j(時間維度),將I/O電路在一個突發(fā)串中連續(xù)發(fā)送的m個字組織 為一個nxm矩陣。換言之,該矩陣的一行的元素為這m個字中通過并行總 線中的對應(yīng)的一條傳輸線依序發(fā)送的比特,該矩陣的一列的元素為通過該并 行總線發(fā)送的對應(yīng)的一個字的全部比特。除了將一個突發(fā)串的數(shù)據(jù)組織為一 個n x m矩陣之外,還可以將一個突發(fā)串的數(shù)據(jù)組織為組成該n x m矩陣的多 個其它大小的矩陣,例如,在上述示例中可以將所述數(shù)據(jù)組織為組成該nxm 矩陣的2個n/2xm矩陣、4個n/2 x m/2矩陣或多個其它大小的矩陣。除了圖 1所示的示例以外,還可以將多個突發(fā)串的數(shù)據(jù)組織成一個或多個矩陣。換 言之,可以將k(fel)個突發(fā)串的數(shù)據(jù)組織為(pxq)個LjXCj矩陣,其中k、 p、 q、 i、 j、 Lj、 Cj為自然數(shù),i=l,…,p, j=l,…,q,并且力丄,=",力C乂 =Axm。這里,n和(kxm)可以相等(這對應(yīng)于方陣)或者可以不相等(這對應(yīng)于長方矩 陣)。
基于以上發(fā)現(xiàn),設(shè)計了根據(jù)本發(fā)明的總線編碼器和總線編碼方法。
下面,將參照圖2來描述根據(jù)本發(fā)明的總線編碼器和總線解碼器。圖2 是圖示^f艮據(jù)本發(fā)明實施例的總線編碼器和總線解碼器的框圖。
如圖2所示,發(fā)送器100與接收器200通過并行總線50互相連接,并且 發(fā)送器100經(jīng)由并行總線50而將數(shù)據(jù)發(fā)送到接收器200。
發(fā)送器100包括總線編碼器101和連接到該總線編碼器101的I/O電路 102??偩€編碼器101用于在發(fā)送器100將數(shù)據(jù)發(fā)送給接收器200之前,對要 發(fā)送的數(shù)據(jù)進行編碼以便減少發(fā)送編碼數(shù)據(jù)時的總線切換數(shù)目,并且將編碼 數(shù)據(jù)提供給I/O電路102。 I/O電路102通過并行總線50與接收器200中的 I/O電路相連接,并且用于將從總線編碼器101接收的編碼數(shù)據(jù)經(jīng)由并行總線 50發(fā)送給接收器200中的I/O電路??偩€編碼器101可以由執(zhí)行下面所述的 功能的硬件的組合實現(xiàn),也可以由包含數(shù)據(jù)緩沖器的公知處理器(例如,CPU) 或控制器結(jié)合用于執(zhí)行本發(fā)明所述的功能的計算機軟件來實現(xiàn)。
總線編碼器101包括原始數(shù)據(jù)緩沖器1012、連接到原始數(shù)據(jù)緩沖器1012 的編碼部件1014、以及連接到編碼部件1014和I/O電路102的編碼數(shù)據(jù)緩沖 器1016。
原始數(shù)據(jù)緩沖器1012用于存儲要從發(fā)送器IOO發(fā)送給接收器200的原始 數(shù)據(jù),該原始數(shù)據(jù)可以是屬于一個或多個突發(fā)串的多個連續(xù)的數(shù)據(jù)字。
原始數(shù)據(jù)緩沖器1012還用于存儲矩陣組織信息和變換信息字位置信息, 所述矩陣組織信息指示將被組織為矩陣的突發(fā)串的數(shù)目(即,k)以及將所述數(shù) 目的突發(fā)串中的數(shù)據(jù)組織成的矩陣的數(shù)目(即,p x q)和各個矩陣的大小(即, LiXCj, i=l, p, j=l, ..., q),所述變換信息字位置信息指示變換信息字 在所發(fā)送的編碼數(shù)據(jù)中的位置。所述矩陣組織信息和變換信息字位置信息是 由用戶預(yù)定義的。應(yīng)當注意盡管變換信息字在所發(fā)送的編碼數(shù)據(jù)中的位置 是可變的,但是對于由發(fā)送器和接收器組成的一個給定的系統(tǒng),該位置是固 定的并且對于發(fā)送器和接收器來說是已知的。所述變換信息字用來指示所組 織的各個矩陣的變換狀態(tài)。應(yīng)當認識到可以根據(jù)不同的情況而給予變換信 息字不同的定義。
此外,原始數(shù)據(jù)緩沖器1012還用于存儲由用戶預(yù)定義的變換表。在該變換表中預(yù)定義可用于變換所述矩陣的一種或多種矩陣變換模式以及將在變換 信息字中使用的、用于指示矩陣的變換狀態(tài)的一個或多個比特的特定組合。 具體地,當將某種矩陣變換模式應(yīng)用于一矩陣時,將變換信息字中的與該矩 陣對應(yīng)的位設(shè)置為在變換表中預(yù)定義的、指示與該矩陣變換模式對應(yīng)的變換 狀態(tài)的特定比特組合,以便向接收器表明對該矩陣應(yīng)用了所述矩陣變換模式, 換句話說,以便向接收器表明所接收的對應(yīng)矩陣是對其原始矩陣應(yīng)用了所述
矩陣變換模式的結(jié)果;反之,當變換信息字中與某一矩陣相對應(yīng)的一位或多 位與在變換表中預(yù)定義的比特組合相同時,這意味著該矩陣處于該比特組合 所指示的變換狀態(tài),此時只需對該矩陣進行相應(yīng)的逆變換即可獲得原始矩陣。
圖3(a)、圖3(b)和圖3(c)示出了根據(jù)本發(fā)明的變換表的示例。如圖3(a) 所示,在變換表302中預(yù)定義了一種可用的矩陣變換模式(即"轉(zhuǎn)置")以及兩 種比特組合。在本示例中,僅使用一個比特來指示變換狀態(tài),其中,比特"0" 表示相應(yīng)的矩陣處于被轉(zhuǎn)置的狀態(tài),即,該矩陣是對另一矩陣進行轉(zhuǎn)置變換 的結(jié)果;比特"1"表示沒有對相應(yīng)的矩陣進行變換,即,相應(yīng)的矩陣與原始 矩陣相同。如圖3(b)所示,在變換表304中預(yù)定義了一種可用的矩陣變換模 式(即"偶數(shù)列反轉(zhuǎn)")以及兩種比特組合。在本示例中,也使用一個比特來指 示變換狀態(tài),其中,比特"0"表示相應(yīng)的矩陣處于其偶數(shù)列被反轉(zhuǎn)的狀態(tài), 即,該矩陣是將另一矩陣的偶數(shù)列反轉(zhuǎn)的結(jié)果;比特'T,表示沒有對相應(yīng)的 矩陣進行變換,即,相應(yīng)的矩陣與原始矩陣相同。如圖3(c)所示,在變換表 306中預(yù)定義了 2種可用的矩陣變換模式(即"轉(zhuǎn)置"和"偶數(shù)列反轉(zhuǎn),,)以及 3種比特組合,其中,比特組合"00"表示沒有對相應(yīng)的數(shù)據(jù)矩陣進行變換, 比特組合"01"表示相應(yīng)的數(shù)據(jù)矩陣處于被轉(zhuǎn)置的狀態(tài),比特組合"10"表 示相應(yīng)的數(shù)據(jù)矩陣處于其偶數(shù)列被反轉(zhuǎn)的狀態(tài)。應(yīng)當認識到,上述變換表僅 僅是示例性的,而不是限制性的。實際上,除了轉(zhuǎn)置變換和偶數(shù)列反轉(zhuǎn)變換 以外,還可以根據(jù)實際情況(例如,發(fā)送器通常發(fā)送的數(shù)據(jù)中的"1"和"0" 的分布情況)和實際需要而在變換表中預(yù)定義或添加一種或多種其它可用變 換模式。此外,用于指示變換狀態(tài)的比特組合中的比特的數(shù)目可以為其它數(shù) 值。并且,變換表的形式不限于圖3(a)、 3(b)和3(c)中圖示的形式,而是可以 采用其它形式,只要這些形式可以清楚地反映上述信息即可。
應(yīng)當認識到盡管在這里使用原始數(shù)據(jù)緩沖器1012來存儲矩陣組織信 息、變換信息字位置信息和變換表,但這不是限制性的,而是也可以將它們共同或分別存儲在稍后描述的編碼lt據(jù)緩沖器1016或者編碼部件1014能夠 訪問的其它存儲器(未示出)中。
回到圖2,編碼部件1014從原始數(shù)據(jù)緩沖器1012讀取矩陣組織信息, 并且根據(jù)在所述矩陣組織信息中預(yù)定義的突發(fā)串的數(shù)目k而從原始數(shù)據(jù)緩沖 器1012依序讀取k個突發(fā)串。然后,編碼部件1014根據(jù)該矩陣組織信息而 以上文所述的組織方式將所述突發(fā)串中的數(shù)據(jù)字組織為一個或多個矩陣。
具體地,如上所述,假設(shè)并行總線50的寬度為n位,突發(fā)串長度為m。 編碼部件1014從原始數(shù)據(jù)緩沖器1012中讀取k個突發(fā)串的數(shù)據(jù)字,并且根 據(jù)在矩陣組織信息中預(yù)定義的矩陣數(shù)目(p x q)和每個矩陣的大小(Lj x Cj, i=l,…,p, j=l, ..., q)而以上述組織方式將這kxm個數(shù)據(jù)字組織為(pxq)
個LiXCj矩陣,其中t丄,",力C,A:xm。
'=1 產(chǎn)
然后,編碼部件1014從原始數(shù)據(jù)緩沖器1012讀取預(yù)定義的變換表,并 且確定可用變換模式。然后,它對于每個所述LjXCj矩陣,檢查在所述可用 變換模式中是否存在能夠減小該矩陣中的總線切換數(shù)目(即,發(fā)送該矩陣中的 數(shù)據(jù)時的總線切換數(shù)目的總和)的變換模式以便確定該矩陣是否需要進行變 換,并且當存在這樣的變換模式時,確定該矩陣需要進行變換并且確定用于 變換該矩陣的對應(yīng)變換模式。
具體地,對于每個所述LjXCj矩陣,編碼部件1014依序選擇所述可用變 換模式中的每一種,并且檢查所選擇的變換模式是否能夠減小該矩陣的總線 切換數(shù)目。例如,編碼部件1014可以利用所選擇的變換^^莫式變換該矩陣以獲 得變換矩陣,計算該變換矩陣中的各行的總線切換數(shù)目的總和以獲得該變換 矩陣的總線切換數(shù)目,然后將該總線切換數(shù)目與原始矩陣的總線切換數(shù)目進 行比較。如果變換矩陣的總線切換數(shù)目大于或等于原始矩陣的總線切換數(shù)目, 則所選擇的變換模式不能減小所述總線切換數(shù)目,反之,如果變換矩陣的總 線切換數(shù)目小于原始矩陣的總線切換數(shù)目,則所選擇的變換模式能夠減小所 述總線切換數(shù)目。當確定所選擇的變換模式能夠減小所述總線切換數(shù)目時, 編碼部件1014確定該矩陣需要進行變換,并且將所選擇的變換模式確定為用 于變換該矩陣的對應(yīng)變換模式,而不再繼續(xù)檢查其它變換模式;另一方面, 當編碼部件1014確定所選擇的變換模式不能減小所述總線切換數(shù)目時,編碼 部件1014從所述可用變換模式中選擇另一可用變換模式,并且重復(fù)上述檢查步驟。以這一方式,編碼部件1014依序檢查所有可用變換模式,并且當找到 能夠減小該矩陣的總線切換數(shù)目的變換模式時停止該檢查。然而,如果編碼 部件1014檢查了所有可用變換模式但是沒有發(fā)現(xiàn)能夠減小該矩陣的總線切 換數(shù)目的變換模式,則編碼部件1014確定該矩陣不需要進行變換??商鎿Q地, 當編碼部件1014找到能夠減小該矩陣的總線切換數(shù)目的變換模式時,其記錄 該變換模式將所述總線切換數(shù)目減少的量,并且繼續(xù)尋找在所述可用變換模 式中是否存在其它能夠減小該矩陣的總線切換數(shù)目的其它變換模式,而不是 如上所述停止檢查其它可用變換模式,以便找出能夠減小該矩陣的總線切換 ^t目的所有變換模式并且確定相應(yīng)的減少量;然后,編碼部件1014通過例如 比較而選擇使得該矩陣的總線切換數(shù)目減小得最多的變換模式作為用于變換 該矩陣的對應(yīng)變換模式。
例如,在采用圖3(a)所示的變換表和將數(shù)據(jù)組織為一個nxm矩陣的情 況下,編碼部件1014讀取變換表302,確定可用變換模式為轉(zhuǎn)置變換,然后 檢查轉(zhuǎn)置變換能否減小該nxm矩陣的總線切換數(shù)目。如果能,則確定該矩
陣需要進行變換,并且將轉(zhuǎn)置變換確定為用于變換該矩陣的對應(yīng)變換模式; 如果不能,則確定該矩陣不需要進行變換。例如,在采用圖3(c)所示的變換 表和將數(shù)據(jù)組織為一個nxm矩陣的情況下,編碼部件1014讀取變換表306, 并且確定可用變換模式為轉(zhuǎn)置變換和偶數(shù)列反轉(zhuǎn)變換。然后,編碼部件1014 首先選擇轉(zhuǎn)置變換,檢查轉(zhuǎn)置變換能否減小該nxm矩陣的總線切換數(shù)目。 如果能,則確定該矩陣需要進行變換,并且使用轉(zhuǎn)置變換來變換該矩陣;如 果不能,則編碼部件1014檢查偶數(shù)列反轉(zhuǎn)變換是否能減小所述總線切換數(shù) 目。如果能,則確定該矩陣需要進行變換,并且將偶數(shù)列反轉(zhuǎn)變換確定為用 于變換該矩陣的對應(yīng)變換模式;如果不能,則由于僅有兩種可用變換而確定 該矩陣不需要進行變換。可替換地,當編碼部件1014確定轉(zhuǎn)置變換能夠減小 該矩陣的總線切換數(shù)目時,其繼續(xù)檢查偶數(shù)列反轉(zhuǎn)變換是否能夠減小所述總 線切換數(shù)目,并且如果確定偶數(shù)列反轉(zhuǎn)變換也能減小所述總線切換數(shù)目,則 在這兩種變換模式中選擇使所述總線切換數(shù)目減少得最多的變換模式作為實 際用于變換該矩陣的對應(yīng)變換模式,否則將轉(zhuǎn)置變換確定為用于變換該矩陣 的變換模式。
接下來,當確定所述(pxq)個LiXCj矩陣均不需要變換時,編碼部件1014 保持所述(pxq)個LjXCj矩陣不變,而不對其進行任何處理。另一方面,當確定在所述(p x q)個Li x Cj矩陣中存在需要進行變換的矩陣并且確定了用于
變換該矩陣的對應(yīng)變換模式時,編碼部件1014利用所確定的對應(yīng)變換模式來
分別變換所述需要進行變換的矩陣,并且將這些矩陣(即,原始矩陣)替換為相
應(yīng)的變換后的矩陣(不需要進行變換的矩陣保持不變)。然后,編碼部件1014
將確定不需要進行變換的矩陣(如果有的話)和所述經(jīng)過替換的矩陣形成一個 待發(fā)送的nx(kxm)矩陣。
然后,編碼部件1014根據(jù)變換表產(chǎn)生用于指示每個所述Li x Cj矩陣是否 進行了變換以及當進行了變換時使用的變換模式的變換信息字,并且根據(jù)預(yù) 定義的附加信息字位置信息將該變換信息字作為額外的字附加到所述待發(fā)送 的nx(kxm)矩陣上(例如,之前或之后),從而形成實際要經(jīng)由I/O電路102 發(fā)送給接收器200的編碼矩陣。
具體地,編碼部件1014首先產(chǎn)生一個變換信息字,然后根據(jù)變換表將該 變換信息字中的、用于指示每個所述LiXCj矩陣的變換狀態(tài)的位分別設(shè)置為 與該矩陣的變換狀態(tài)相對應(yīng)的比特組合。例如,在采用圖3(a)所示的變換表 302的情況下,在變換信息字中,用于指示未經(jīng)變換的矩陣(即,不需要進行 變換的矩陣)的變換狀態(tài)的位被設(shè)置為1,而用于指示被轉(zhuǎn)置的矩陣的變換狀 態(tài)的位被設(shè)置為0;在采用圖3(c)所示的變換表306的情況下,在變換信息字 中,用于指示未經(jīng)變換的矩陣的變換狀態(tài)的位被設(shè)置為"00",用于指示被轉(zhuǎn) 置的矩陣的變換狀態(tài)的位被設(shè)置為"01",而用于指示偶數(shù)列被反轉(zhuǎn)的矩陣的 變換狀態(tài)的位被設(shè)置為"10"。然后,編碼部件1014從原始數(shù)據(jù)緩沖器1012 中讀取變換信息字位置信息,并且根據(jù)在該位置信息中預(yù)定義的附加信息字 的位置而將該變換信息字作為額外的字附加到所述待發(fā)送的n x (k x m)矩陣 之前或之后,以形成實際要發(fā)送給接收器200的編碼矩陣。
應(yīng)當注意在變換信息字中分別用于指示各個矩陣的變換狀態(tài)的位可基 于可用變換模式的數(shù)目和所組織的矩陣的數(shù)目等因素而由用戶在發(fā)送器(或 編碼部件)和接收器(或解碼部件)中預(yù)定義,或者可以由編碼部件和解碼部件
基于相同的分配規(guī)則而自動分配。例如,可以在編碼部件和解碼部件中將變 換信息字的一個或多個預(yù)定位預(yù)定義為指示矩陣的變換狀態(tài)的位,或者可以 由編碼部件和解碼部件共同地將變換信息字的一個或多個位自動分配給某個 矩陣以指示該矩陣的變換狀態(tài)。此外,在預(yù)定義了用于指示矩陣變換狀態(tài)的 位之后,可以任意地設(shè)置該變換信息字中的剩余位(如果有的話),因為所述剩余位不具有特定的含義。然而,優(yōu)選地,將所述剩余位設(shè)置為和在所述待發(fā)
送的nx(kxm)矩陣中與該變換信息字相鄰的數(shù)據(jù)矩陣的字的對應(yīng)位(即,在 并行總線的同一傳輸線上發(fā)送的相鄰位)相同,以盡可能地減小由于附加該變 換信息字而增加的總線切換數(shù)目。
此外,在上文中,對于將原始數(shù)據(jù)組織為多個矩陣的情況,編碼部件1014 僅產(chǎn)生一個公共的變換信息字。然而,本發(fā)明不限于此,而是也可以為所述 多個矩陣的每一個分別產(chǎn)生一個附加信息字,然后將所產(chǎn)生的附加信息字附 加在所述待發(fā)送的nx(kxm)矩陣之前或之后、或者在對應(yīng)的矩陣之前或之 后。這可以由用戶在編碼部件和解碼部件中相應(yīng)地預(yù)定義。
然后,編碼部件1014將所形成的編碼矩陣中的編碼數(shù)據(jù)(即,該編碼矩 陣的元素)按照發(fā)送順序存儲到編碼數(shù)據(jù)緩沖器1016中。
編碼數(shù)據(jù)緩沖器1016用于依序存儲從編碼部件1014接收的編碼數(shù)據(jù)。
發(fā)送器IOO以公知的方式將存儲在編碼數(shù)據(jù)緩沖器1016中的編碼數(shù)據(jù)經(jīng) 由I/O電路102和并行總線50發(fā)送到接收器200。應(yīng)當注意由于I/O電路 以突發(fā)串為單位來發(fā)送數(shù)據(jù),因此當將變換信息字附加在一個或多個突發(fā)串 的數(shù)據(jù)上時,可以使該I/O電路額外地發(fā)送一個字(當產(chǎn)生一個變換信息字時) 或多個字(當產(chǎn)生相同數(shù)目的多個變換信息字時),以便將所述編碼凝:據(jù)完整地 發(fā)送給接收器200。
在上文中,在完成k個突發(fā)串的全部數(shù)據(jù)的編碼之后,編碼部件1014 將所獲得的編碼數(shù)據(jù)存儲在編碼數(shù)據(jù)緩沖器1016中,然后,經(jīng)由I/O電路依 序發(fā)送這些編碼數(shù)據(jù)。然而,本發(fā)明不限于此。在一些情況下,對于所述k 個突發(fā)串,也可以在對當前數(shù)據(jù)進行編碼的同時發(fā)送先前編碼的編碼數(shù)據(jù), 以減小由于對所述突發(fā)串的數(shù)據(jù)進行編碼而導(dǎo)致的延遲時間。例如,在將k
個突發(fā)串的數(shù)據(jù)組織為一個矩陣時,當需要對該矩陣進行變換時,可以在對 當前列的數(shù)據(jù)進行變換的同時,將先前處理的列的數(shù)據(jù)依序發(fā)送給接收器, 而不是完成對該矩陣的所有數(shù)據(jù)的處理之后再發(fā)送所述數(shù)據(jù)。這種變型可以 被適當?shù)財U展到其它組織矩陣的情況,并且也被包含在本發(fā)明的范圍內(nèi)。 下面,將參照圖2來描述根據(jù)本發(fā)明實施例的總線解碼器。 如圖2所示,接收器200包括I/O電路201和連接到I/O電路201的總 線解碼器202。
I/O電路201用于接收從發(fā)送器100經(jīng)由I/O電路102和并行總線50發(fā)送給接收器200的k個突發(fā)串的編碼數(shù)據(jù),并且將所述編碼數(shù)據(jù)連續(xù)地存儲 在被包含在總線解碼器202內(nèi)的編碼數(shù)據(jù)緩沖器2022中。
總線解碼器202包括連接到I/O電路201的編碼數(shù)據(jù)緩沖器2022、連接 到編碼數(shù)據(jù)緩沖器2022的解碼部件2024、和連接到解碼部件2024的原始數(shù) 據(jù)緩沖器2026。該總線解碼器可以由執(zhí)行下面所述的功能的硬件的組合實現(xiàn), 也可以由包含數(shù)據(jù)緩沖器的公知處理器(例如,CPU)或控制器結(jié)合用于執(zhí)行本 發(fā)明所述的功能的計算機軟件來實現(xiàn)。
編碼數(shù)據(jù)緩沖器2022用于依序存儲從I/O電路201接收的編碼數(shù)據(jù)。 原始數(shù)據(jù)緩沖器2026用于存儲從解碼部件2024接收的解碼數(shù)據(jù)。原始 數(shù)據(jù)緩沖器2026還用于存儲矩陣組織信息、變換信息字位置信息和變換表, 所述信息和變換表與存儲在原始數(shù)據(jù)緩沖器1012中的信息和變換表相同,因 此,為簡單起見,在這里省略對它們的詳細描述。同樣,應(yīng)當認識到,盡管 在這里使用原始數(shù)據(jù)緩沖器2026來存儲矩陣組織信息、變換信息字位置信息 和變換表,但這不是限制性的,而是也可以將它們共同或分別存儲在編碼數(shù) 據(jù)緩沖器2022或者解碼部件2024能夠訪問的其它存儲器(未示出)中。 解碼部件2024用于將所述編碼數(shù)據(jù)解碼以獲得原始數(shù)據(jù)。 具體地,解碼部件2024從編碼數(shù)據(jù)緩沖器2022讀取所接收的編碼數(shù)據(jù), 從原始數(shù)據(jù)緩沖器2026中讀取變換信息字位置信息,然后根據(jù)在該位置信息 中預(yù)定義的變換信息字的位置而從所讀取的編碼數(shù)據(jù)中提取變換信息字。例 如,當在所述位置信息中預(yù)定義的變換信息字的位置為在編碼數(shù)據(jù)的末尾時, 解碼部件2024從所讀取的編碼數(shù)據(jù)中提取最后一個字作為變換信息字;當在 所述位置信息中預(yù)定義的變換信息字的位置為在編碼數(shù)據(jù)的開頭時,解碼部 件2024從所讀取的編碼數(shù)據(jù)中提取第一個字作為變換信息字。
接下來,解碼部件2024從原始數(shù)據(jù)緩沖器2026中讀取矩陣組織信息, 并且基于該矩陣組織信息中預(yù)定義的矩陣數(shù)目(即,p x q)和各矩陣的大小而以 上文所述的矩陣組織方式將剩余的編碼數(shù)據(jù)組織為(p x q)個Li x Cj矩陣,其 中i=l,…,p, j=l,…,q,并且尤丄,=w, tq=A:xw。由于存儲在原始
數(shù)據(jù)緩沖器2026中的矩陣組織信息與存儲在原始數(shù)據(jù)緩沖器1012中的矩陣 組織信息相同,并且編碼部件1014和解碼部件2024采用相同的矩陣組織方 式,因此,解碼部件2024組織的(pxq)個LjXCj矩陣與上文所述的形成待發(fā)送的n x (k x m)矩陣的(p x q)個l; x C」矩陣相同。
然后,解碼部件2024從原始數(shù)據(jù)緩沖器2026中讀取變換表,并且將變 換信息字中指示各個矩陣的變換狀態(tài)的一個或多個位與在變換表中預(yù)定義的 比特組合進行比較,以確定各個矩陣的變換狀態(tài)。如上所述,解碼部件2024
示各個矩陣的變換狀態(tài)的 一個或多個位。
接下來,如果所述(pxq)個LjXCj矩陣均沒有被變換,則解碼部件2024 不對其進行任何處理。另一方面,如果在所述(pxq)個LjXCj矩陣中存在進 行過變換的矩陣,則解碼部件2024對進行過變換的矩陣分別進行相應(yīng)的逆變 換,以獲得其原始矩陣,并且將所述矩陣替換為其原始矩陣(沒有進行過變換 的矩陣保持不變)。
最后,解碼部件2024將被確定為沒有被變換的矩陣(如果有的話)和經(jīng)過 上述替換的矩陣形成為一個nx(kxm)矩陣(即,原始lt據(jù)矩陣),并且將該n x (k x m)矩陣的數(shù)據(jù)作為原始數(shù)據(jù)依序存儲在原始數(shù)據(jù)緩沖器2026中以供其 它部件4吏用。
應(yīng)當認識到盡管在上文中使用單個部件(即編碼部件)來將要發(fā)送的數(shù) 據(jù)編碼,但這僅僅是出于說明的目的,而不是限制性的。實際上,除了使用 單獨的編碼部件以外,也可以使用包括多個單元的編碼部件來實現(xiàn)上述功能。 例如,如圖4所示,可以使用包括組織單元4011、確定單元4012、變換單元 4013、形成單元4014、產(chǎn)生單元4015和附加單元4016的編碼部件401按照 與上面相似的方式來將要發(fā)送的數(shù)據(jù)編碼,其中,組織單元4011按照上面所 述的方式將k個突發(fā)串的數(shù)據(jù)組織為(p x q)個L, Cj矩陣;確定單元4012, 對于每個所述L,Cj矩陣,確定是否存在能夠減少該矩陣的總線切換數(shù)目的 變換模式,并且當存在能夠減少該矩陣的總線切換數(shù)目的變換模式時確定該 矩陣需要進行變換并且確定用于變換該矩陣的對應(yīng)變換模式;變換單元4013 對于確定需要進行變換的矩陣,利用所確定的用于變換該矩陣的對應(yīng)變換模 式對其進行變換,并且用變換后的矩陣替換所述需要進行變換的矩陣;形成 單元4014將確定不需要進行變換的矩陣和經(jīng)過所述替換的矩陣形成一個待 發(fā)送的n x (k x m)矩陣;產(chǎn)生單元4015產(chǎn)生指示所述(p x q)個L; x Cj矩陣的 變換狀態(tài)的長度為n位的變換信息字,并且附加單元4016將所述變換信息字 附加到所述待發(fā)送的nx(kxm)矩陣上以形成實際需要發(fā)送的編碼矩陣。同樣,也可以將上文所述的單個解碼部件2024替換為由提取單元4021、組織 單元4022、確定單元4023、逆變換單元4024和形成單元4025組成的解碼部 件402,其中,提取單元4021根據(jù)預(yù)定義的變換信息字位置信息而從編碼數(shù) 據(jù)中提取所述變換信息字;組織單元4022按照上述方式將編碼數(shù)據(jù)中的剩余 數(shù)據(jù)組織為(p x q)個Li x Cj矩陣;確定單元4023根據(jù)所述變換信息字確定每 個所述Lj x Cj矩陣的變換狀態(tài);逆變換單元4024根據(jù)所確定的每個所述L; xCj矩陣的變換狀態(tài),對所述(pxq)個LiXCj矩陣中被確定為變換的矩陣進 行相應(yīng)的逆變換并用逆變換后的矩陣替換所述被變換的矩陣,并且將被確定 為未被變換的矩陣保持不變;形成單元4025將被確定為未被變換的矩陣和經(jīng) 過上述替換的矩陣形成一個nx(kxm)矩陣作為原始數(shù)據(jù)矩陣。當然,本領(lǐng)域
技術(shù)人員也可以根據(jù)實際需要設(shè)計分別具有上述功能中的 一種或多種的其它 部件和/或這些部件的組合,只要這些部件能夠共同實現(xiàn)上述數(shù)據(jù)編碼和解碼 即可。此外,在上文中,在編碼器和解碼器中分別使用了兩個單獨的緩沖器, 即原始數(shù)據(jù)緩沖器和編碼數(shù)據(jù)緩沖器,然而,這不是限制性的,也可以將它 們組合為一個緩沖器,或者分割為更多的緩沖器。
由于在將數(shù)據(jù)發(fā)送到I/O電路和總線之前,根據(jù)本發(fā)明的總線編碼器選 擇性地對所述數(shù)據(jù)進行變換以減小其總線切換數(shù)目,因此I/O電路不需要進 行過多的總線切換,從而降低了I/0功率。
下面,將結(jié)合圖2和圖5來描述根據(jù)本發(fā)明實施例的總線編碼方法。圖 5是示出根據(jù)本發(fā)明實施例的總線編碼方法的流程圖。
如上所述,在發(fā)送和接收數(shù)據(jù)之前,已經(jīng)分別在發(fā)送器100和接收器200 中預(yù)先定義了相同的矩陣組織信息、變換信息字位置信息和變換表,并且它 們分別被存儲在原始數(shù)據(jù)緩沖器1012和2026中。為簡單起見,在這里省略 對上述信息和變換表的詳細描述。
當存在要經(jīng)由I/O電路102和并行總線50發(fā)送給接收器200的數(shù)據(jù)時, 發(fā)送器IOO將該數(shù)據(jù)依序存儲在原始數(shù)據(jù)緩沖器1012中。假設(shè)并行總線的寬 度為n,突發(fā)串長度為m,其中n和m為自然數(shù)。
參照圖5,在步驟S501中,編碼部件1014從原始數(shù)據(jù)緩沖器1012讀取 矩陣組織信息,并且根據(jù)在所述矩陣組織信息中預(yù)定義的突發(fā)串的數(shù)目k(k 為大于或等于1的自然數(shù))而從原始數(shù)據(jù)緩沖器1012依序讀取k個突發(fā)串, 總共n x (k x m)個數(shù)據(jù)比特。在步驟S502中,編碼部件1014根據(jù)該矩陣組織信息中預(yù)定義的矩陣數(shù) 目pxq (p和q為自然數(shù))而以上文所述的矩陣組織方式將k個突發(fā)串中的數(shù) 據(jù)字組織為(pxq)個LjXCj矩陣,其中i、 j、 Li、 Cj為自然數(shù),i=l,…,p, j=l,…,q,升且^^=", ZC,Axm。
在步驟S503中,編碼部件1014從原始數(shù)據(jù)緩沖器1012讀取預(yù)定義的變 換表,并且確定在該變換表中預(yù)定義的、可以用來對所述(pxq)個LjXCj矩 陣進行矩陣變換的可用矩陣變換模式。
然后,在步驟S504中,編碼部件1014選擇所述(p x q)個L; x Cj矩陣中 的一個矩陣,檢查在所確定的可用變換模式中是否存在能夠減小該矩陣的總 線切換數(shù)目(即,發(fā)送該矩陣中的數(shù)據(jù)時的總線切換數(shù)目的總和)的變換模式, 以便確定該矩陣是否需要進行變換。
當在步驟S504中確定不存在這樣的變換時,編碼部件1014進行到步驟 S505,在該步驟中,其確定該矩陣不需要進行變換。反之,當在步驟S504 中確定存在這樣的變換時,編碼部件1014進行到步驟S506,在該步驟中, 其確定該矩陣需要進行變換,并且確定用于變換該矩陣的對應(yīng)變換;漢式。稍 后將詳細描述步驟S504、 S505和S506中的詳細操作。
接下來,在步驟S507中,編碼部件1014確定是否檢查了所述(pxq)個 L;x Cj矩陣中的全部矩陣。如果不是,則編碼部件1014返回步驟S504,選擇 尚未被檢查的另一矩陣,并且重復(fù)步驟S504-S506。另一方面,如果在步驟 S507中確定>^查了全部矩陣,則編碼部件1014進行到步驟S508,在該步驟 中,編碼部件1014判斷是否所述全部矩陣均不需要進行變換。
如果在步驟S508中確定全部矩陣均不需要進行變換,則在步驟S509中, 編碼部件1014保持所述(p x q)個Li x Cj矩陣不變,而不對其進行任何處理。 反之,當在步驟S508中確定存在需要變換的矩陣,則在步驟S510中,編碼 部件1014利用所確定的對應(yīng)變換模式來分別變換各個需要變換的矩陣,然后 將所述各個需要變換的矩陣(即,各個原始矩陣)分別替換為相應(yīng)的變換后的矩 陣,并且將所述(p x q)個Lj x Cj矩陣中不需要變換的矩陣(如果有的話)保持不 變。然后,在步驟S511中,編碼部件1014將由確定不需要進行變換的矩陣(注 意當確定所有矩陣都需要進行變換時,其數(shù)目為O)和經(jīng)過變換的矩陣(注意 當確定所有矩陣均不需要進行變換時,其數(shù)目為O)組成的(pxq)個L;xCj矩陣形成一個待發(fā)送的n x (k x m)矩陣。
接下來,在步驟S512中,編碼部件1014根據(jù)所述變換表,產(chǎn)生用于指 示每個所述Li x Cj矩陣是否進行了變換以及當進行了變換時使用的變換模式 的變換信息字。具體地,編碼部件1014首先產(chǎn)生一個變換信息字,然后根據(jù) 變換表,將該變換信息字中用于指示每個所述LiXCj矩陣的變換狀態(tài)的位分 別設(shè)置為與該矩陣的變換狀態(tài)相對應(yīng)的比特組合。如上所述,在變換信息字 中分別用于指示各個矩陣的變換狀態(tài)的位可基于可用變換模式的數(shù)目和所組 織的矩陣的數(shù)目等因素而由用戶在發(fā)送器(或編碼部件)和接收器(或解碼部件)
并且,在預(yù)定義了用于指示矩陣變換狀態(tài)的位之后,可以任意地設(shè)置該變換 信息字中的剩余位,因為所述剩余位不具有特定的含義;然而,優(yōu)選地,將 所述剩余位^沒置為和待發(fā)送的n x (k x m)矩陣中與該變換信息字相鄰的字的 對應(yīng)位(即,在并行總線的同一傳輸線上發(fā)送的相鄰位)相同,以盡可能地減小 由于附加該變換信息字而增加的總線切換數(shù)目。
然后,在步驟S513中,編碼部件1014從原始數(shù)據(jù)緩沖器1012中讀取變 換信息字位置信息,并且根據(jù)在該位置信息中預(yù)定義的附加信息字的位置而 將該變換信息字作為額外的字附加到待發(fā)送的nx (kx m)矩陣上,以形成實際
要經(jīng)由I/O電路102和總線50發(fā)送給接收器200的編碼矩陣。可以理解,由 于附加了一個變換信息字,因此該編碼數(shù)據(jù)矩陣具有kx(m+l)列。此外,如 上所述,對于將原始數(shù)據(jù)組織為多個矩陣的情況,編碼部件1014也可以為每 個矩陣產(chǎn)生一個附加信息字,然后將所產(chǎn)生的附加信息字附加在所述待發(fā)送 的n x (k x m)矩陣之前或之后、或者附加在組成所述待發(fā)送的n x (k x m)矩陣 的每個矩陣之前或之后。這可以由用戶在編碼部件和解碼部件中相應(yīng)地預(yù)定 義。
接下來,在步驟S514中,編碼部件1014將所形成的編碼矩陣中的編碼 數(shù)據(jù)(即,該矩陣的元素)按照發(fā)送順序存儲到編碼數(shù)據(jù)緩沖器1016中。
下面,將參照圖6來詳細描述步驟S504、 S505和S506中的詳細操作。 參照圖6,在步驟S5041中,編碼部件1014從所述(pxq)個LiXCj矩陣 中選擇一個矩陣。然后,在步驟S5042中,編碼部件1014從所確定的可用矩 陣變換模式中選擇一種矩陣變換模式,并且在步驟S5043中確定該變換模式 是否能夠減小該矩陣的總線切換數(shù)目。例如,編碼部件1014可以利用所選擇的變換模式變換該矩陣以獲得變換矩陣,計算該變換矩陣中的各行的總線切 換數(shù)目的總和以獲得該變換矩陣的總線切換數(shù)目,然后將該變換矩陣的總線 切換數(shù)目與原始矩陣的總線切換數(shù)目進行比較。如果變換矩陣的總線切換數(shù) 目大于或等于原始矩陣的總線切換數(shù)目,則所選擇的變換模式不能減小所述 總線切換數(shù)目,反之,如果變換矩陣的總線切換數(shù)目小于原始矩陣的總線切 換數(shù)目,則所選擇的變換模式能夠減小所述總線切換數(shù)目。此外,編碼部件
1014也可以采用其它本領(lǐng)域公知的方式來進行上述確定。
如果在步驟S5043中確定所選擇的變換模式能夠減小所述總線切換數(shù) 目,則在步驟S506中,編碼部件1014確定所述矩陣需要進行變換,并且將 當前選擇的變換模式確定為用于變換該矩陣的對應(yīng)變換模式。另一方面,當 在步驟S5043中確定所選擇的變換模式不能減小所述總線切換數(shù)目時,則編 碼部件1014進行到步驟S5044,在該步驟中,編碼部件1014確定是否檢查 了所有可用變換模式。如果在步驟S5044中確定已經(jīng)檢查了所有變換模式, 則在步驟S505中,編碼部件1014確定該矩陣不需要進行變換。反之,如果 尚未檢查所有變換模式,則編碼部件1014返回步驟S5042,選擇尚未被檢查 的另一變換模式,并且重復(fù)步驟S5042和S5043。
如上所述,當在步驟S5043中確定所選擇的變換模式能夠減小所述總線 切換數(shù)目時,編碼部件1014將該變換模式確定為用于變換該矩陣的對應(yīng)變換 模式,而不再繼續(xù)檢查其余可用變換模式。然而,可替換地,當在步驟S5043 中確定所選擇的變換模式能夠減小所述總線切換數(shù)目時,編碼部件1014記錄 該變換模式將所述總線切換數(shù)目減少的量,并且繼續(xù)^r查其它可用變換模式 能否減小該矩陣的總線切換數(shù)目,而不是如上所述停止檢查其它可用變換模 式,以便找出能夠減小總線切換數(shù)目的所有變換模式并且確定相應(yīng)的減少量; 然后,編碼部件1014通過例如比較來選擇使得所述總線切換數(shù)目減少得最多 的變換模式作為用于變換該矩陣的對應(yīng)變換模式。
應(yīng)當認識到盡管在上面給出了一種執(zhí)行才艮據(jù)本發(fā)明實施例的總線編碼 方法的各個步驟的順序,但是也可以在不背離本發(fā)明的精神和范圍的情況下 適當?shù)馗淖儓?zhí)行這些步驟的順序。例如,可以先讀取變換表以獲取可用的變 換模式,然后再讀取要發(fā)送的數(shù)據(jù)并將其組織為(pxq)個LjXCj矩陣。此外, 在上文中,對于所述(p x q)個Li x Cj矩陣中的全部矩陣確定是否存在能夠減 小其總線切換數(shù)目的變換模式,然后利用所確定的對應(yīng)變換模式分別對需要
24變換的矩陣進行變換;然而,也可以在對于每個LiXCj矩陣確定存在能夠減 小其總線切換數(shù)目的變換模式時立即利用該變換模式來變換所述矩陣。
在完成上述總線編碼之后,發(fā)送器100將存儲在編碼數(shù)據(jù)緩沖器1016 中的編碼數(shù)據(jù)經(jīng)由I/O電路102和總線50以突發(fā)串的形式發(fā)送到接收器200。 如上所述,在附加了變換信息字之后,可以使該1/0電路額外地發(fā)送一個字(當 產(chǎn)生一個變換信息字時)或多個字(當產(chǎn)生相同數(shù)目的多個變換信息字時),以 便將所述編碼數(shù)據(jù)完整地發(fā)送給接收器200。同樣,如上所述,在根據(jù)本發(fā) 明實施例的總線編碼方法中,不僅可以在完成所述k個突發(fā)串的全部數(shù)據(jù)的 編碼之后發(fā)送所獲得的編碼數(shù)據(jù),還可以在對當前數(shù)據(jù)進行編碼的同時發(fā)送 先前編碼的數(shù)據(jù),以減小由于對突發(fā)串的數(shù)據(jù)進行編碼而導(dǎo)致的延遲時間。
下面,將參照圖7來描述根據(jù)本發(fā)明實施例的總線解碼方法。圖7是示 出根據(jù)本發(fā)明實施例的總線解碼方法的流程圖。
如上所述,在接收數(shù)據(jù)之前,已經(jīng)在接收器200中預(yù)先定義了與發(fā)送器 100相同的矩陣組織信息、變換信息字位置信息和變換表,并且將它們存儲 在原始數(shù)據(jù)緩沖器2026中。為簡單起見,在這里省略對它們的詳細描述。
接收器200接收從發(fā)送器100發(fā)送的編碼數(shù)據(jù),并且將所接收的編碼數(shù) 據(jù)依序存儲在編碼數(shù)據(jù)緩沖器2022中。
參照圖7,在步驟S701中,解碼部件2024從編碼數(shù)據(jù)緩沖器2022中讀 取所接收的編碼數(shù)據(jù)。在步驟S702中,解碼部件2024從原始數(shù)據(jù)緩沖器2026 中讀取變換信息字位置信息,然后根據(jù)在該位置信息中預(yù)定義的變換信息字 的位置而從所讀取的編碼數(shù)據(jù)的所述位置處提取變換信息字。
接下來,在步驟S703中,解碼部件2024從原始數(shù)據(jù)緩沖器2026中讀取 矩陣組織信息,并且基于該矩陣組織信息中預(yù)定義的矩陣數(shù)目(p x q)和各矩陣 的大小而以上文所述的矩陣組織方式將提取變換信息字之后剩余的編碼數(shù)據(jù) 組織為(pxq)個LiXCj矩陣,其中i-l,…,p, j=l, ..., q,并且tz,;",
tq =Axw。由于存儲在原始數(shù)據(jù)緩沖器2026中的矩陣組織信息與存儲在
乂=1
原始數(shù)據(jù)緩沖器1012中的矩陣組織信息相同,并且編碼部件1014和解碼部 件2024采用相同的矩陣組織方式,因此,解碼部件2024組織的(p x q)個Li x Cj矩陣與編碼部件1014獲得的形成所述待發(fā)送的n x (k x m)矩陣的(p x q) 個L;xCj矩陣相同。然后,在步驟S704中,解碼部件2024從原始數(shù)據(jù)緩沖器2026中讀取變 換表,并且將所提取的變換信息字中指示所述(pxq)個LjXCj矩陣中的每個 矩陣的變換狀態(tài)的一個或多個位與在變換表中預(yù)定義的比特組合進行比較, 以確定各個矩陣的變換狀態(tài)。如上所述,解碼部件2024可以通過用戶的預(yù)定 義或基于分配規(guī)則的自動分配而獲知在變換信息字中指示各個矩陣的變換狀 態(tài)的一個或多個位。
接下來,在步驟S705中,解碼部件2024確定是否所述(p x q)個Li x q矩 陣均沒有被變換。如果在步驟S705中確定所述(p x q)個Li x Cj矩陣均未被變 換,則在步驟S706中,解碼部件2024保持所述(p x q)個x Cj矩陣不變而 不對其進行任何處理。另一方面,如果在步驟S705中確定在所述(pxq)個Li xCj矩陣中存在進行過變換的矩陣,則在步驟S707中,解碼部件2024根據(jù) 變換信息字中的比特組合的指示而對進行過變換的矩陣分別進行相應(yīng)的逆變 換以獲得其原始矩陣,并且將所述進行過變換的矩陣替換為逆變換后的矩陣 (即其原始矩陣),同時,解碼部件2024將所述(pxq)個LiXCj矩陣中被確定 為沒有進行過變換的矩陣(如果有的話)保持不變。
然后,在步驟S708中,解碼部件2024將被確定為沒有進行過變換的矩 陣(如果有的話)和經(jīng)過上述替換的矩陣形成為一個n x (k x m)矩陣(即,原始數(shù) 據(jù)矩陣)。最后,在步驟S709中,解碼部件2024將該n x (k x m)矩陣的數(shù)據(jù) 作為原始數(shù)據(jù)依序存儲在原始數(shù)據(jù)緩沖器2026中以供其它部件使用。
在上面描述了根據(jù)本發(fā)明實施例的總線編碼方法和總線解碼方法的各個 步驟,然而,應(yīng)當認識到這些步驟并不是強制性的,而是可以對于不同的 系統(tǒng)(發(fā)送器和接收器)選擇性地省略其中一些步驟。例如,當將要發(fā)送的數(shù)據(jù) 組織為l個矩陣時,可以省略圖5所示的編碼方法中的步驟S507和S508以 及圖7所示的解碼方法中的步驟S705并適應(yīng)性地調(diào)整其余步驟;當所確定的 可用變換模式只有1種時,可以省略圖6所示的步驟S5044并適應(yīng)性地調(diào)整 其余步驟。本領(lǐng)域技術(shù)人員能夠理解這些變化均被包含在本發(fā)明的范圍內(nèi)。
下面,將結(jié)合若干示例來示例性地說明根據(jù)本發(fā)明實施例的總線編碼方 法和總線解碼方法。
圖8示出了用于例示根據(jù)本發(fā)明實施例的總線編碼方法和總線解碼方法 的第一示例。在圖8中,向下的箭頭表示編碼過程,向上的箭頭表示解碼過 程。在圖8所示的示例中,并行總線寬度n為8,突發(fā)串長度m為8。如上 所述,在這里將字的長度定義為等于并行總線的寬度。在矩陣組織信息中預(yù) 定義的突發(fā)串數(shù)目k和矩陣數(shù)目(pxq)均為1,預(yù)定義的變換表為變換表800, 在變換信息字位置信息中預(yù)定義的變換信息字的位置為編碼數(shù)據(jù)的末尾,并 且將變換信息字的最低位用于指示矩陣的變換狀態(tài)。上述信息均被預(yù)定義在 編碼部件1014和解碼部件2024中。
首先,編碼部件1014從原始數(shù)據(jù)緩沖器1012讀取矩陣組織信息,確定 預(yù)定義的突發(fā)串數(shù)目k為1,并且從原始數(shù)據(jù)緩沖器1012讀取1個突發(fā)串, 總共64個比特。然后,編碼部件1014根據(jù)矩陣組織信息預(yù)定義的矩陣數(shù)目 1而以上文所述的矩陣組織方式將所述一個突發(fā)串中的數(shù)據(jù)字組織為一個8 x8矩陣801,此時,Lz8, d = 8。
接下來,編碼部件1014從原始數(shù)據(jù)緩沖器1012讀取預(yù)定義的變換表 800,并且確定在其中預(yù)定義的可用變換模式為轉(zhuǎn)置變換。然后,編碼部件 1014檢查轉(zhuǎn)置變換是否能夠減小該8 x 8矩陣801的總線切換數(shù)目。由于轉(zhuǎn) 置變換能夠減小圖7所示的矩陣801的總線切換數(shù)目,因此,編碼部件1014 確定該矩陣需要進行變換,將轉(zhuǎn)置變換確定為用于變換該矩陣的對應(yīng)矩陣, 并且使用轉(zhuǎn)置變換來變換該矩陣,從而獲得變換矩陣802。
然后,編碼部件1014根據(jù)變換表800產(chǎn)生用于指示該矩陣是否進行了變 換以及當進行變換時使用的矩陣變換模式的變換信息字803。具體地,編碼 部件1014首先產(chǎn)生一個變換信息字。由于矩陣801被轉(zhuǎn)置,因此編碼部件 1014根據(jù)變換表中指示轉(zhuǎn)置變換的比特組合"0"而將變換信息字的最低位 設(shè)置為0,以表明該矩陣被轉(zhuǎn)置或者接收器接收到的對應(yīng)矩陣是對其原始矩 陣進行轉(zhuǎn)置的結(jié)果,然后將變換信息字的其余位設(shè)置為與該變換信息字相鄰 的字(D7)中的對應(yīng)位(在同一傳輸線上依序發(fā)送的位)相同,從而得到變換信息 字803 "01010100"。如上所述,如此設(shè)置所述其余位〗吏得能夠盡可能地減少 減小了由于附加該變換信息字而增加的總線切換數(shù)目。接下來,編碼部件1014 根據(jù)變換信息字位置信息而將變換信息字作為額外的列附加到矩陣802之 后,從而形成8x9編碼數(shù)據(jù)矩陣804。最后,編碼部件1014將編碼數(shù)據(jù)矩 陣804中的編碼數(shù)據(jù)按照先前讀取它們的順序依序存儲在編碼數(shù)據(jù)緩沖器 1016中。
當接收到發(fā)送器IOO發(fā)送的上述編碼數(shù)據(jù)時,接收器200將該編碼數(shù)據(jù)存儲在編碼數(shù)據(jù)緩沖器2022中。 下面描述該示例的解碼過程。
解碼部件2024從編碼數(shù)據(jù)緩沖器2022中讀取所接收的72(=8 x 9)個編碼 數(shù)據(jù)。然后,解碼部件2024從原始數(shù)據(jù)緩沖器2026中讀取變換信息字位置 信息,確定變換信息字被附加在該編碼數(shù)據(jù)末尾,從而提取最后8位數(shù)據(jù)作 為變換信息字803,即"01010100"。接下來,解碼部件2024從原始數(shù)據(jù)緩 沖器2026中讀取矩陣組織信息,并且基于該矩陣組織信息中預(yù)定義的矩陣數(shù) 目'T,而以上文所述的矩陣組織方式將剩余的64個數(shù)據(jù)比特組織為一個8 x8矩陣,即矩陣802。
然后,解碼部件2024讀取變換表800,將變換信息字的最低位的"0" 與變換表的比特組合進行比較,以確定該矩陣的變換狀態(tài)。由于在變換表中 將"0"預(yù)定義為表示轉(zhuǎn)置變換,因此,解碼部件2024確定該矩陣是對其原 始矩陣進行了轉(zhuǎn)置變換的結(jié)果,從而再次對其進行轉(zhuǎn)置并且獲得其原始矩陣 801。最后,解碼部件2024將原始矩陣801中的數(shù)據(jù)依序存儲在原始數(shù)據(jù)緩 沖器2026中以供其它部件使用。注意,在本示例中,由于只有一個矩陣,因 此可以在編碼和解碼過程中省略所述替換和形成搡作。
在本示例中,原始數(shù)據(jù)(即數(shù)據(jù)矩陣801)的總線切換數(shù)目為7 x 8=56次, 而編碼數(shù)據(jù)(即數(shù)據(jù)矩陣804)的總線切換數(shù)目為1次,因此,顯著減小了 I/O 電路中的總線切換數(shù)目,從而顯著減小了 1/0功率。
在本示例中僅使用轉(zhuǎn)置變換來對由原始數(shù)據(jù)組成的矩陣進行變換。當編
碼器將要發(fā)送的數(shù)據(jù)被組織為方陣時,可以使用這種變換模式。據(jù)統(tǒng)計,當 僅使用轉(zhuǎn)置變換作為變換表中的可用變換模式時,對于隨機產(chǎn)生的各種樣式 的數(shù)據(jù),平均能夠?qū)⒖偩€切換數(shù)目減少19%。因而,對于將數(shù)據(jù)組織為方陣 的情況,轉(zhuǎn)置變換具有良好的效果。
圖9示出了用于例示根據(jù)本發(fā)明實施例的總線編碼方法和總線解碼方法 的第二示例。在圖9中,向下的箭頭表示編碼過程,向上的箭頭表示解碼過 程。在該示例中,并行總線寬度n為8,突發(fā)串長度m為6,預(yù)定義的突發(fā) 串數(shù)目k和矩陣數(shù)目pxq均為i,預(yù)定義的變換信息字的位置為編碼數(shù)據(jù)的 末尾,并且將變換信息字的最低位用于指示矩陣的變換狀態(tài)。此外,預(yù)定義 的變換表為變換表900,并且可用變換模式為偶數(shù)列反轉(zhuǎn)變換。圖9所示的 示例的編碼過程和解碼過程與圖8所示的示例相似,因此在這里省略對它們的詳細描述,而僅僅在圖9中示出各個階段的結(jié)果。通過比較原始矩陣901 和編碼數(shù)據(jù)矩陣904可知,根據(jù)本發(fā)明實施例的總線編碼方法將該數(shù)據(jù)的總 線切換數(shù)目從40減少為1。在本示例中使用的偶數(shù)列反轉(zhuǎn)變換適用于任何大 小的矩陣。此外,在本示例中,除了在處理了矩陣901的全部數(shù)據(jù)之后再發(fā) 送編碼數(shù)據(jù)之外,還可以在處理一列數(shù)據(jù)的同時發(fā)送先前處理的列的數(shù)據(jù)。 例如,可以在對第二列數(shù)據(jù)進行偶數(shù)列反轉(zhuǎn)的同時將第一列數(shù)據(jù)發(fā)送給接收 器,而不是在處理了全部6列數(shù)據(jù)并且附加了變換信息字之后再依序發(fā)送這 7列的數(shù)據(jù),由此,能夠減小由于對所述數(shù)據(jù)進行處理而導(dǎo)致的延遲時間。
在第一和第二示例中,將原始數(shù)據(jù)組織為一個矩陣。下面給出將原始數(shù) 據(jù)組織為多個矩陣的示例。
法的第三示例。在圖10中,向下的箭頭表示編碼過程,向上的箭頭表示解碼 過程。
在圖IO的示例中,并行,fe線寬度n為8,突發(fā)串長度m為8。在矩陣組 織信息中預(yù)定義的突發(fā)串數(shù)目k為1、所組織的矩陣的數(shù)目pxq為2x2 = 4 且每個矩陣的大小為4x4,預(yù)定義的變換表為變換表1000,在變換信息字位 置信息中預(yù)定義的變換信息字的位置為編碼數(shù)據(jù)的末尾,并且將變換信息字 的8位預(yù)定義為按照從低位到高位的順序而兩兩地用于所組織的4個矩陣。
下面描述該示例的編碼過程。
首先,編碼部件1014從原始數(shù)據(jù)緩沖器1012讀取矩陣組織信息,并且 根據(jù)其中預(yù)定義的突發(fā)串數(shù)目k-1而讀取1個突發(fā)串,總共64個比特。然 后,編碼部件1014根據(jù)該矩陣組織信息中預(yù)定義的矩陣數(shù)目4和各矩陣的大 小而以上述矩陣組織方式將該突發(fā)串的數(shù)據(jù)組織為4個4x4矩陣10011、 10012、 10013和10014,如圖IO上部所示。此時,Li和Cj(i-l, 2; j = l, 2)均為4。
然后,編碼部件1014從原始數(shù)據(jù)緩沖器1012讀取預(yù)定義的變換表,并 且確定可用變換模式為轉(zhuǎn)置變換和偶數(shù)列反轉(zhuǎn)變換。接下來,編碼部件1014 依序選擇這4個矩陣中的每一個,并且檢查在所述可用變換模式中是否存在 能夠減小該矩陣的總線切換數(shù)目的變換模式。具體地,編碼部件1014選擇矩 陣10011,確定轉(zhuǎn)置變換是否能夠減小該矩陣的總線切換數(shù)目。由于轉(zhuǎn)置變 換能夠減小矩陣10011的總線切換數(shù)目,因此總線部件1014確定矩陣10011需要進行變換,并且將轉(zhuǎn)置變換確定為用于變換該矩陣的對應(yīng)變換模式。然
后,編碼部件1014選擇矩陣10012,并且通過上述檢查確定需要對其進行偶 數(shù)列反轉(zhuǎn)變換。接下來,編碼部件1014選擇矩陣10013,并且確定轉(zhuǎn)置變換 能否減小其總線切換數(shù)目。在得到否定答案之后,編碼部件1014確定偶數(shù)列 反轉(zhuǎn)能否減小其總線切換數(shù)目,并且仍然得到否定答案。由于變換表僅預(yù)定 義了兩種可用變換,因此編碼部件1014確定矩陣10013不需要進行變換。然 后,類似地,編碼部件1014確定需要對矩陣10014進行轉(zhuǎn)置變換。
接下來,編碼部件1014對矩陣10011和10014進行轉(zhuǎn)置變換以分別獲得 變換矩陣10021和10024,對矩陣10012進行偶數(shù)列反轉(zhuǎn)變換以獲得變換矩 陣10022,并且保持矩陣10013不變而將直接作為矩陣10023,由此,原始矩 陣10011、 10012和10014被替換為變換矩陣10021、 10022和10024。然后, 編碼部件1014將變換矩陣10021、 10022、 10023和10024形成為待發(fā)送的8 x8矩陣,如圖10中部所示。
然后,編碼部件1014根據(jù)變換表1000產(chǎn)生用于指示這4個矩陣的變換 狀態(tài)的變換信息字1001。具體地,編碼部件1014首先產(chǎn)生一個變換信息字。 然后,編碼部件1014根據(jù)各個矩陣的變換狀態(tài)和變換表來設(shè)置該變換信息字 的相應(yīng)位。由于在變換表1000中,"00"表明矩陣未被改變,"01"表示矩陣 被轉(zhuǎn)置,"10"表示矩陣的偶數(shù)列被反轉(zhuǎn),因此變換信息字1001從高位到低 位被設(shè)置為"10000110"。
接下來,編碼部件1014讀取變換信息字位置信息,并根據(jù)該信息而將變 換信息字1001作為額外的列附加到所述待發(fā)送的8x8矩陣之后,從而形成 實際需要發(fā)送的8x9編碼數(shù)據(jù)矩陣,如圖10下部所示。
最后,編碼部件1014將該編碼數(shù)據(jù)矩陣中的編碼數(shù)據(jù)依序存儲到編碼數(shù) 據(jù)緩沖器1016中。
發(fā)送器100將所述編碼數(shù)據(jù)經(jīng)由I/O電路102和總線50發(fā)送給接收器 200。接收器200經(jīng)由I/O電路201接收該編碼數(shù)據(jù),并且將其依序存儲在編 碼數(shù)據(jù)緩沖器2022中。
下面描述該示例的解碼過程。
首先,解碼部件2024讀取所述編碼數(shù)據(jù)(共72比特)。然后,解碼部件 2024從原始數(shù)據(jù)緩沖器2026中讀取變換信息字位置信息,確定變換信息字 被附加在該編碼數(shù)據(jù)末尾,從而提取最后8位數(shù)據(jù)(即"10000110")作為變換信息字1001。
接下來,解碼部件2024從原始數(shù)據(jù)緩沖器2026中讀取矩陣組織信息, 并且基于在其中預(yù)定義的矩陣數(shù)目"4"和每個矩陣的大小而以與編碼部件 1014相同的矩陣組織方式將剩余的64比特組織為4個4 x 4矩陣。顯然,所 組織的這4個矩陣即為矩陣10021-10024。
然后,解碼部件2024從原始數(shù)據(jù)緩沖器2026中讀取變換表1000,并且 分別將變換信息字中指示這4個矩陣的變換狀態(tài)的位依序與在變換表1000中 的比特組合進行比較,以確定各個矩陣的變換狀態(tài)。在本示例中,解碼部件 2024確定對矩陣10021和10024進行了轉(zhuǎn)置變換,對矩陣10022進行了偶數(shù) 列反轉(zhuǎn)變換,而沒有對矩陣10023進行變換。
接下來,解碼部件2024對矩陣10021和10024進行轉(zhuǎn)置變換,對矩陣 10022進行偶數(shù)列反轉(zhuǎn)變換,由此將矩陣10021、 10022和10024分別替換為 其原始矩陣10011、 10012和10014,并且保持矩陣10023不變而直接將其作 為矩陣10013。然后,解碼部件2024將原始矩陣10011-10014形成為一個8 x 8原始矩陣,并且將該原始矩陣的數(shù)據(jù)依序存儲在原始數(shù)據(jù)緩沖器2026中 以供其它部件使用。
在本示例中,原始數(shù)據(jù)的總線切換數(shù)目為51,實際發(fā)送的數(shù)據(jù)的總線切 換數(shù)目為5,因此總線切換數(shù)目被顯著減小。這種方法可被應(yīng)用于任何總線 寬度為n、突發(fā)串長度為m、并且n為m的倍數(shù)的系統(tǒng)。
在上面的示例中,將1個突發(fā)串的數(shù)據(jù)組織為一個或多個矩陣,并且將 變換信息字定義為指示各個矩陣的變換狀態(tài)。然而,也可以將多個突發(fā)串的 數(shù)據(jù)組織為 一個或多個矩陣,并且/或者給予變換信息字不同的定義。
圖11示出了用于例示根據(jù)本發(fā)明實施例的總線編碼方法和總線解碼方 法的第四示例。在該示例中,將4個突發(fā)串的數(shù)據(jù)組織為1個矩陣。
在該示例中,并行總線寬度n為32,突發(fā)串長度m為8。在矩陣組織信 息中預(yù)定義的突發(fā)串數(shù)目k為4、所組織的矩陣的數(shù)目pxq為1,并且將變 換信息字預(yù)定義為指示所組織的矩陣中的每一列的變換狀態(tài),而不是如先前 所述的所組織的矩陣的變換狀態(tài)。此外,預(yù)定義的變換表為變換表1100,在 其中預(yù)定義的變換模式為如果當前列(當前要發(fā)送的字)與前一列(先前發(fā)送 的字)的漢明(hamming)距離大于總線寬度的一半(16-32/2),則反轉(zhuǎn)當前列。
編碼部件1014從原始數(shù)據(jù)緩沖器1012讀取矩陣組織信息,確定其中預(yù)
31定義的突發(fā)串數(shù)目k為4,并且從原始數(shù)據(jù)緩沖器1012讀取4個突發(fā)串。然 后,編碼部件1014根據(jù)預(yù)定義的矩陣數(shù)目1而以上文所述的矩陣組織方式將 這4個突發(fā)串組織為一個32 x32矩陣1101。接下來,編碼部件1014對矩陣 1101進行變換以產(chǎn)生變換矩陣1102,產(chǎn)生變換信息字1103,其每一位分別表 示對應(yīng)的矩陣1102的一列的變換狀態(tài),并且將該變換信息字1103附加在變 換矩陣1102之前以產(chǎn)生編碼數(shù)據(jù)矩陣1104。由于上述編碼過程以及隨后的解 碼過程與前述示例相似,因此為簡單起見而省略其詳細描述。
在本示例中,原始數(shù)據(jù)的總線切換數(shù)目為992,實際發(fā)送的數(shù)據(jù)的總線 切換數(shù)目為16,因此總線切換數(shù)目被顯著減小。這種方法可被應(yīng)用于任何總 線寬度為n、突發(fā)串長度為m、并且n為m的倍數(shù)的系統(tǒng)。
如上所述,根據(jù)本發(fā)明實施例的總線編碼器和總線編碼方法不僅適用于 數(shù)據(jù)總線,還適用于地址總線。其通過在將數(shù)據(jù)發(fā)送給I/O電路和總線之前 選擇性地對所述數(shù)據(jù)進行變換,使得實際發(fā)送的數(shù)據(jù)的總線切換數(shù)目顯著減 小,從而減小1/0功率以及整個計算系統(tǒng)的功率,并且使處理器功率和I/O功 率更加平tf。
此外,通過在變換表中定義多種可用變換模式,與僅定義一種可用變換 模式的情況相比,可以提供更多的選擇來變換所述數(shù)據(jù),從而取得更好的效 果。而且,在這一情況下,通過將數(shù)據(jù)組織為多個矩陣,可以對每個矩陣應(yīng) 用不同的變換,并且所應(yīng)用的變換可以是使該矩陣的總線切換數(shù)目減小得最 多的變換,從而取得比將所述數(shù)據(jù)僅組織為一個矩陣的情況更好的效果。
在上文中,在發(fā)送器和接收器中預(yù)定義變換表、矩陣組織信息、變換信 息字位置信息以及其它信息,這可以通過在發(fā)送器和接收器之間制定共同的 協(xié)議并且在該協(xié)議中預(yù)定義所述信息來實現(xiàn)。
此外,在本發(fā)明中,通過將變換信息字附加在要發(fā)送的數(shù)據(jù)上而消除了 對于額外的信號線的需要。然而,這不是限制性的,而某些情況下,例如在 不需要考慮兼容性的情況下,也可以使用額外的信號線來單獨地發(fā)送變換信 息字,而不將其附加在要發(fā)送的數(shù)據(jù)上。
盡管已經(jīng)在上面示出和描述了本發(fā)明的實施例,本領(lǐng)域技術(shù)人員應(yīng)當理 解,在不背離權(quán)利要求及其等價物中限定的本發(fā)明的范圍和精神的情況下, 可以對所述實施例做出各種形式和細節(jié)上的變化。
權(quán)利要求
1. 一種對經(jīng)由并行總線以突發(fā)串方式發(fā)送的數(shù)據(jù)進行編碼的方法,其中并行總線寬度為n位,每個突發(fā)串包括m個數(shù)據(jù)字,m和n為自然數(shù),該方法包括組織步驟,將k個所述突發(fā)串的數(shù)據(jù)組織為(p×q)個Li×Cj矩陣,其中k、p、q、i、j、Li、Cj為自然數(shù),i=1,...,p,j=1,...,q,并且確定步驟,對于每個所述Li×Cj矩陣,確定是否存在能夠減少該矩陣的總線切換數(shù)目的變換模式,并且當存在能夠減少該矩陣的總線切換數(shù)目的變換模式時確定該矩陣需要進行變換并且確定用于變換該矩陣的對應(yīng)變換模式;變換步驟,對于確定需要進行變換的矩陣,利用所確定的用于變換該矩陣的對應(yīng)變換模式對其進行變換,并且用變換后的矩陣替換所述確定需要進行變換的矩陣;形成步驟,將確定不需要進行變換的矩陣和經(jīng)過替換的矩陣形成一個待發(fā)送的n×(k×m)矩陣;產(chǎn)生步驟,產(chǎn)生指示所述(p×q)個Li×Cj矩陣的變換狀態(tài)的長度為n位的變換信息字;以及附加步驟,將所述變換信息字附加到所述待發(fā)送的n×(k×m)矩陣以形成實際需要發(fā)送的編碼矩陣。
2. 如權(quán)利要求l所述的方法,其中,由所述(pxq)個LiXCj矩陣形成的n x (k x m)矩陣的列是所述k個突發(fā)串中的(k x m)個數(shù)據(jù)字之一,該n x (k xm)矩陣的行是所述(kxm)個數(shù)據(jù)字中經(jīng)由并行總線的同一傳輸線依序發(fā)送的位。
3. 如權(quán)利要求l所述的方法,其中,對于每個所述LiXCj矩陣,所述確定步驟包括以下步驟從一種或多種預(yù)定變換模式中選擇一種變換模式,并且檢查該變換模式是否能夠減少所述矩陣的總線切換數(shù)目;當該變換模式能夠減少所述矩陣的總線切換數(shù)目時,確定該矩陣需要進行變換,并且將該變換模式確定為用于變換該矩陣的對應(yīng)變換模式;以及2當該變換模式不能減少所述矩陣的總線切換數(shù)目時,從所述一種或多種預(yù)定變換模式中選擇另一變換模式,并且對該另一變換模式重復(fù)上述檢查步驟,直到找到能夠減少所述矩陣的總線切換數(shù)目的變換模式、或者確定所有變換模式均不能減少所述矩陣的總線切換數(shù)目從而確定所述矩陣不需要進行變換為止。
4. 如權(quán)利要求l所述的方法,其中,對于每個所述LiXCj矩陣,所述確定步驟包括以下步驟依序檢查一種或多種預(yù)定變換^:莫式中的每一種是否能夠減少所述矩陣的總線切換數(shù)目,并且當其能夠減少所述總線切換數(shù)目時,記錄該變換模式產(chǎn)生的所述矩陣的總線切換數(shù)目的減少量;以及在檢查了所有變換模式之后,如果存在能夠減少所述矩陣的總線切換數(shù)目的變換模式,則在這些變換模式中選擇所產(chǎn)生的減少量最大的變換模式作為用于變換所述矩陣的對應(yīng)變換模式,否則確定所述矩陣不需要進行變換。
5. 如權(quán)利要求3-4之一所述的方法,其中,所述一種或多種預(yù)定變換模式至少包括轉(zhuǎn)置變換或偶數(shù)列反轉(zhuǎn)變換。
6. 如權(quán)利要求3-4之一所述的方法,其中,所述一種或多種預(yù)定變換模式是在變換表中預(yù)定義的,并且在該變換表中還預(yù)定義了指示矩陣的變換狀態(tài)的比特組合,并且其中,在產(chǎn)生步驟中,根據(jù)每個所述LiXCj矩陣的變換狀態(tài)而將變換信息字中與該矩陣對應(yīng)的位設(shè)置為在變換表中預(yù)定義的與該變換狀態(tài)相對應(yīng)的比特組合。
7. 如權(quán)利要求6所述的方法,其中,所述產(chǎn)生步驟還包括將變換信息字中未被用于指示變換狀態(tài)的位設(shè)置為和在所述待發(fā)送的nx (k x m)矩陣中與該變換信息字相鄰的列中的對應(yīng)位相同。
8. 如權(quán)利要求l-4之一所述的方法,其中,根據(jù)預(yù)定義的變換信息字位置信息而將所述變換信息字附加在所述待發(fā)送的n x (k x m)矩陣之前或之后。中并行總線寬度為n位,每個突發(fā)串包括m個數(shù)據(jù)字,m和n為自然數(shù),該編碼器包括組織單元,將k個所述突發(fā)串的數(shù)據(jù)組織為(p x q)個Li x Cj矩陣,其中k、p、 q、 i、 j、 Li、 Cj為自然數(shù),i=l,…,p, j=l,…,q,并且力丄,=",4x附;確定單元,對于每個所述LiXCj矩陣,確定是否'泰在能夠i!少該矩陣的總線切換數(shù)目的變換模式,并且當存在能夠減少該矩陣的總線切換數(shù)目的變式;,、 、…'、 '、 、…,、
9.變換單元,對于確定需要進行變換的矩陣,利用所確定的用于變換該矩陣的對應(yīng)變換模式對其進行變換,并且用變換后的矩陣替換所述確定需要進行變換的矩陣;形成單元,將確定不需要進行變換的矩陣和經(jīng)過替換的矩陣形成一個待發(fā)送的n x (k x m)矩陣;產(chǎn)生單元,產(chǎn)生指示所述(pxq)個LiXCj矩陣的變換狀態(tài)的長度為n位的變換信息字,和附加單元,將所述變換信息字附加到所述待發(fā)送的n x (k x m)矩陣以形成實際需要發(fā)送的編碼矩陣。
10. 如權(quán)利要求9所述的編碼器,其中,由所述(pxq)個L;xCj矩陣形成的n x (k x m)矩陣的列是所述k個突發(fā)串中的(k x m)個數(shù)據(jù)字之一,該n x(k x m)矩陣的行是所述(k x m)個數(shù)據(jù)字中經(jīng)由并行總線的同 一傳輸線依序發(fā)送的位。
11. 如權(quán)利要求9所述的編碼器,其中,當對于每個所述LiXCj矩陣確定是否存在能夠減少該矩陣的總線切換數(shù)目的變換模式時,所述確定單元從一種或多種預(yù)定變換模式中選擇一種變換模式,并且檢查該變換模式是否能夠減少所述矩陣的總線切換數(shù)目;當該變換模式能夠減少所述矩陣的總線切換數(shù)目時,確定該矩陣需要進行變換,并且將該變換模式確定為用于變換該矩陣的對應(yīng)變換模式;以及當該變換模式不能減少所述矩陣的總線切換數(shù)目時,從所述一種或多種預(yù)定變換模式中選擇另一變換模式,并且對該變換模式重復(fù)上述檢查步驟,直到找到能夠減少所述矩陣的總線切換數(shù)目的變換模式、或者確定所有變換-溪式均不能減少所述矩陣的總線切換數(shù)目從而確定所述矩陣不需要進行變換為止。
12. 如權(quán)利要求9所述的編碼器,其中,當對于每個所述LiXCj矩陣確定是否存在能夠減少該矩陣的總線切換數(shù)目的變換模式時,所述確定單元依序檢查一種或多種預(yù)定變換模式中的每一種是否能夠減少所述矩陣的總線切換數(shù)目,并且當其能夠減少所述矩陣的總線切換數(shù)目時,記錄該變換模式產(chǎn)生的所述矩陣的總線切換數(shù)目的減少量;以及當檢查了所有變換模式之后,如果存在能夠減少所述矩陣的總線切換數(shù)目的變換模式,則在這些變換模式中選擇所產(chǎn)生的減少量最大的變換模式作為用于變換所述矩陣的對應(yīng)變換模式,否則確定所述矩陣不需要進行變換。
13. 如權(quán)利要求11-12之一所述的編碼器,其中,所述一種或多種預(yù)定變換模式至少包含轉(zhuǎn)置變換或偶數(shù)列反轉(zhuǎn)變換。
14. 如權(quán)利要求11-12之一所述的編碼器,還包括存儲單元,用于存儲變換表,其中,在該變換表中預(yù)定義所述一種或多種可用變換模式、以及指示矩陣的變換狀態(tài)的比特組合,并且其中,所述產(chǎn)生單元才艮據(jù)每個所述Li x Cj矩陣的變換狀態(tài)而將變換信息字中與該矩陣對應(yīng)的位設(shè)置為在變換表中預(yù)定義的與該變換狀態(tài)相對應(yīng)的比特組合。
15. 如權(quán)利要求14所述的編碼器,其中,所述產(chǎn)生單元還將變換信息字中未被用于指示變換狀態(tài)的位設(shè)置為和在待發(fā)送的n x (k x m)矩陣中與該變換信息字相鄰的列中的對應(yīng)位相同。
16. 如權(quán)利要求9-12之一所述的編碼器,其中,所述附加單元根據(jù)預(yù)定義的變換信息字位置信息而將所述變換信息字附加在所述待發(fā)送的nx (kxm)矩陣之前或之后。
17. —種用于將經(jīng)由并行總線發(fā)送的編碼數(shù)據(jù)解碼的方法,其中并行總線寬度為n位,所述編碼數(shù)據(jù)包含長度為n位的變換信息字和k個突發(fā)串的數(shù)據(jù),每個突發(fā)串包含m個數(shù)據(jù)字,k、 m和n為自然數(shù),該方法包括以下步驟提取步驟,根據(jù)預(yù)定義的變換信息字位置信息而從編碼數(shù)據(jù)中提取所述變換信息字;組織步驟,根據(jù)預(yù)定義的矩陣數(shù)目和各個矩陣的大小而將編碼數(shù)據(jù)中的剩余數(shù)據(jù)組織為(p x q)個Lj x Cj矩陣,其中p、 q、 i、 j、 Li、 Cj為自然數(shù),i=l,...,p, …,q, 并且Z丄,-", ZC,A:xm;確定步驟,根據(jù)所述變換信息字確定每個所述Li x Cj矩陣的變換狀態(tài);逆變換步驟,根據(jù)所確定的每個所述LiXCj矩陣的變換狀態(tài),對所述(px q)個LjX Cj矩陣中被變換的矩陣進行相應(yīng)的逆變換并用逆變換后的矩陣替換所述被變換的矩陣,并且將被確定為未被變換的矩陣保持不變;以及形成步驟,將被確定為未被變換的矩陣和經(jīng)過替換的矩陣形成一個nx(k x m)矩陣作為原始數(shù)據(jù)矩陣。
18. —種用于將經(jīng)由并行總線發(fā)送的編碼數(shù)據(jù)解碼的解碼器,其中并行總線寬度為n位,所述編碼數(shù)據(jù)包含長度為n位的變換信息字和k個突發(fā)串的數(shù)據(jù),每個突發(fā)串包含m個數(shù)據(jù)字,k、 m和n為自然數(shù),該解碼器包括提取單元,根據(jù)預(yù)定義的變換信息字位置信息而從編碼數(shù)據(jù)中提取所述變換信息字;組織單元,根據(jù)預(yù)定義的矩陣數(shù)目和各個矩陣的大小而將編碼數(shù)據(jù)中的剩余數(shù)據(jù)組織為(p x q)個Li x Cj矩陣,其中p、 q、 i、 j、 Lj、 Cj為自然數(shù),i=l ,...,p, j=l, …,q, 并且Z丄,二w, ZC乂"xm;/=i 產(chǎn)i確定單元,根據(jù)所述變換信息字確定每個所述Li x Cj矩陣的變換狀態(tài);逆變換單元,根據(jù)所確定的每個所述LiXCj矩陣的變換狀態(tài),對所述(px q)個Lj x Cj矩陣中被變換的矩陣進行相應(yīng)的逆變換并用逆變換后的矩陣替換所述被變換的矩陣,并且將被確定為未被變換的矩陣保持不變;以及形成單元,將被確定為未被變換的矩陣和經(jīng)過替換的矩陣形成一個nx(k x m)矩陣作為原始數(shù)據(jù)矩陣。
全文摘要
提供了將經(jīng)由并行總線以突發(fā)串方式發(fā)送的數(shù)據(jù)編碼的編碼方法/編碼器和對應(yīng)解碼方法/解碼器,并行總線寬度為n位,每個突發(fā)串包括m個數(shù)據(jù)字,該編碼方法包括將k個突發(fā)串的數(shù)據(jù)組織為(p×q)個L<sub>i</sub>×C<sub>j</sub>矩陣,i=1,…,p,j=1,…,q,且∑L<sub>i</sub>=n,∑C<sub>j</sub>=k×m;對每個矩陣確定是否存在能減少其總線切換數(shù)目的變換模式,當存在這種變換模式時確定該矩陣需要變換并確定用于變換該矩陣的對應(yīng)變換模式;對確定需要變換的矩陣利用對應(yīng)變換模式對其進行變換,用變換后的矩陣替換該矩陣;將確定不需要變換的矩陣和經(jīng)替換的矩陣形成一個待發(fā)送的n×(k×m)矩陣;產(chǎn)生指示各矩陣變換狀態(tài)的n位的變換信息字;將變換信息字附加到所述待發(fā)送的矩陣以形成實際需要發(fā)送的矩陣。
文檔編號G06F1/32GK101499048SQ200810001500
公開日2009年8月5日 申請日期2008年1月29日 優(yōu)先權(quán)日2008年1月29日
發(fā)明者彧 李, 林海波, 沈文博, 凱 鄭 申請人:國際商業(yè)機器公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
香格里拉县| 安化县| 西畴县| 桃源县| 尚义县| 黄陵县| 旬邑县| 崇左市| 扬州市| 信宜市| 丹阳市| 辉县市| 新龙县| 河西区| 甘德县| 静乐县| 嘉善县| 辽阳市| 喀喇沁旗| 靖安县| 天门市| 浮梁县| 呼玛县| 邮箱| 庆安县| 昌邑市| 东宁县| 大新县| 临湘市| 同仁县| 轮台县| 商都县| 武乡县| 贡嘎县| 荣昌县| 香港| 秀山| 金华市| 定边县| 库车县| 永昌县|