用于在芯片上系統(tǒng)中傳送數(shù)據(jù)的方法和電路結(jié)構(gòu)的制作方法
【專利摘要】本發(fā)明涉及電路結(jié)構(gòu)、方法和程序產(chǎn)品通過(guò)至少部分地基于以下選擇性地編碼排隊(duì)用于經(jīng)過(guò)通信總線傳送的數(shù)據(jù)值而通過(guò)數(shù)據(jù)總線傳輸數(shù)據(jù)以減少對(duì)于編碼數(shù)據(jù)值的傳送的位轉(zhuǎn)變:被排隊(duì)以在該數(shù)據(jù)值之后傳送的至少一個(gè)數(shù)據(jù)值以及至少一個(gè)先前傳送的編碼數(shù)據(jù)值。通過(guò)減少在經(jīng)過(guò)數(shù)據(jù)總線傳送的數(shù)據(jù)中的位轉(zhuǎn)變,同樣減少了通信總線的功耗。
【專利說(shuō)明】用于在芯片上系統(tǒng)中傳送數(shù)據(jù)的方法和電路結(jié)構(gòu)
【技術(shù)領(lǐng)域】
[0001]本發(fā)明一般涉及在包括多個(gè)互聯(lián)的處理塊(即節(jié)點(diǎn))的計(jì)算系統(tǒng)中的數(shù)據(jù)處理,更具體地涉及并入其中的處理器架構(gòu)和通信架構(gòu)。
【背景技術(shù)】
[0002]芯片上網(wǎng)絡(luò)(NOC)是將基于網(wǎng)絡(luò)的架構(gòu)應(yīng)用于單個(gè)芯片以創(chuàng)建獨(dú)特的處理單元的新穎的集成電路架構(gòu)。通常的NOC包括經(jīng)由網(wǎng)絡(luò)彼此耦接的多個(gè)集成的處理器(IP)塊。NOC處理單元通常將一個(gè)工作的各個(gè)部分分發(fā)(即分配)到一個(gè)或多個(gè)IP塊的不同硬件線程以在NOC處理單元中由該一個(gè)或多個(gè)IP塊執(zhí)行,其中分發(fā)通常包括在NOC的一個(gè)或多個(gè)硬件線程之間傳輸包括一個(gè)或多個(gè)數(shù)據(jù)字的數(shù)據(jù)分組。隨著預(yù)期標(biāo)準(zhǔn)計(jì)算機(jī)系統(tǒng)中的IP塊的數(shù)量增加,變得日益需要有效地處理工作量分發(fā)。
[0003]在許多傳統(tǒng)的NOC架構(gòu)系統(tǒng)中,數(shù)據(jù)分組通常經(jīng)過(guò)NOC的IP塊之間的通信總線/互連而傳輸。隨著其中配置的IP塊和硬件線程的數(shù)量持續(xù)增加,經(jīng)過(guò)NOC的通信總線傳送的數(shù)據(jù)量同樣持續(xù)增加。IP塊的邏輯中的改進(jìn)已經(jīng)帶來(lái)功率有效處理。但是,移動(dòng)數(shù)據(jù)、即傳送數(shù)據(jù)分組還沒(méi)有與傳統(tǒng)系統(tǒng)中的功率降低改進(jìn)保持同步。事實(shí)上,在許多傳統(tǒng)的處理器中,現(xiàn)在移動(dòng)數(shù)據(jù)比對(duì)數(shù)據(jù)進(jìn)行處理消耗更多功率。
[0004]與數(shù)據(jù)通信相關(guān)聯(lián)的功耗的主要源來(lái)自于數(shù)據(jù)信號(hào)在邏輯“ I ”和邏輯“O”值之間轉(zhuǎn)變,因?yàn)橥ǔT诖蠖鄶?shù)NOC架構(gòu)系統(tǒng)中使用的CMOS邏輯門在邏輯狀態(tài)之間切換時(shí)消耗了大多數(shù)功率。因此,隨著通信總線的速度增加以及傳送的數(shù)據(jù)量增加,NOC的整體功耗因此增加。
[0005]因此,在本領(lǐng)域中存在對(duì)于增加芯片上通信的效率的方式的持續(xù)需要。
【發(fā)明內(nèi)容】
[0006]本發(fā)明通過(guò)對(duì)要經(jīng)過(guò)通信總線傳送(communicate)的數(shù)據(jù)編碼以減少用于傳送的位轉(zhuǎn)變并由此減少通信總線中的邏輯門的切換量以及來(lái)自這樣的切換的相關(guān)聯(lián)的功耗而克服與現(xiàn)有技術(shù)相關(guān)聯(lián)的這些以及其他問(wèn)題。編碼是基于歷史的和將來(lái)的數(shù)據(jù)傳送,使得為特定數(shù)據(jù)值選擇的編碼是基于在該數(shù)據(jù)值之前以及之后傳輸?shù)臄?shù)據(jù)。
[0007]具體地,本發(fā)明的實(shí)施例至少部分地基于以下選擇性地編碼數(shù)據(jù)值:被排隊(duì)以在該數(shù)據(jù)值之后傳送的至少一個(gè)數(shù)據(jù)值以及先前傳送的編碼數(shù)據(jù)值。每個(gè)數(shù)據(jù)值被編碼為與該數(shù)據(jù)值對(duì)應(yīng)的一組可能對(duì)編碼數(shù)據(jù)值中的具體編碼數(shù)據(jù)值。通過(guò)在傳送之前編碼數(shù)據(jù)值以減少傳送的數(shù)據(jù)中的位轉(zhuǎn)變,本發(fā)明的實(shí)施例減少了通信總線中的邏輯門的切換,其中減少切換又減少了處理器中的功耗。
[0008]特征化本發(fā)明的這些以及其他優(yōu)點(diǎn)和特征在附于此并且形成本發(fā)明的另一部分的權(quán)利要求書中闡述。但是為了更好地理解本發(fā)明以及通過(guò)對(duì)其使用而獲得的優(yōu)點(diǎn)和目標(biāo),應(yīng)該參考附圖以及伴隨的描述性內(nèi)容,其中描述了本發(fā)明的示例實(shí)施例。【專利附圖】
【附圖說(shuō)明】
[0009]圖1是在符合本發(fā)明的實(shí)施例的數(shù)據(jù)處理中有用的包括示例的計(jì)算機(jī)的示例的自動(dòng)計(jì)算機(jī)器的框圖。
[0010]圖2是在圖1的計(jì)算機(jī)中實(shí)現(xiàn)的示例NOC的框圖。
[0011]圖3是更詳細(xì)地例示來(lái)自圖2的NOC的節(jié)點(diǎn)的示例實(shí)現(xiàn)方式的框圖。
[0012]圖4是例示來(lái)自圖2的NOC的IP塊的示例實(shí)現(xiàn)方式的框圖。
[0013]圖5是可以連接到圖2的NOC的通信總線或互連以在NOC中的傳送之前編碼數(shù)據(jù)值的傳送隊(duì)列和編碼邏輯的框圖。
[0014]圖6A-C是包括可以使用圖5的編碼邏輯編碼和傳送的示例的數(shù)據(jù)值的框圖。
[0015]圖7提供例示了可以由圖5的編碼邏輯進(jìn)行的操作序列的流程圖。
[0016]應(yīng)該理解,附圖不一定是按比例的,給出了例示本發(fā)明的實(shí)施例的基本原理的各種優(yōu)選特征的稍微簡(jiǎn)化的表示。包括例如各種例示的組件的具體尺寸、取向、位置、操作序列和或形狀的符合在此公開(kāi)的本發(fā)明的實(shí)施例的具體特征將部分地通過(guò)特定意圖的應(yīng)用、使用和/或環(huán)境而確定。所例示的實(shí)施例的某些特征相對(duì)于其他特征已經(jīng)被放大或變形以促進(jìn)可視化和清晰的理解。
【具體實(shí)施方式】
[0017]本發(fā)明的實(shí)施例提供了用于通過(guò)通信總線/互連傳送數(shù)據(jù)的電路結(jié)構(gòu)和方法。被排隊(duì)以傳送的數(shù)據(jù)值可以至少部分地基于被排隊(duì)以在其后傳送的數(shù)據(jù)值和先前傳送的編碼數(shù)據(jù)值而被選擇性地編碼為特定被編碼數(shù)據(jù)值。每個(gè)數(shù)據(jù)值被編碼為一組可能的被編碼值中的特定被編碼數(shù)據(jù)值,其中該特定被編碼值減少了用于傳送該被編碼數(shù)據(jù)值的位轉(zhuǎn)變的數(shù)量。通過(guò)選擇性地將每個(gè)數(shù)據(jù)值編碼到減少位轉(zhuǎn)變的特定被編碼值,本發(fā)明的實(shí)施例由此減少了在傳送期間的切換,而這與傳送未編碼數(shù)據(jù)值相比可以減少功耗。
[0018]硬件和軟件環(huán)塏
[0019]現(xiàn)在轉(zhuǎn)向附圖,其中在幾個(gè)視圖通篇類似的數(shù)字表示類似的部分,圖1例示在符合本發(fā)明的實(shí)施例的數(shù)據(jù)處理中有用的包括示例的計(jì)算機(jī)10的示例的自動(dòng)計(jì)算機(jī)器。圖1的計(jì)算機(jī)10包括至少一個(gè)計(jì)算機(jī)處理器12或“CPU”以及隨機(jī)存取存儲(chǔ)器14 (“RAM”),該隨機(jī)存取存儲(chǔ)器14通過(guò)高速存儲(chǔ)器總線16和總線適配器18連接到處理器12和計(jì)算機(jī)10的其他組件。
[0020]在RAM14中存儲(chǔ)了應(yīng)用程序20,其是用于實(shí)行諸如例如字處理、電子制表、數(shù)據(jù)庫(kù)操作、視頻游戲、股票市場(chǎng)模擬、原子量子處理模擬或其他用戶級(jí)應(yīng)用的特定數(shù)據(jù)處理任務(wù)的用戶級(jí)計(jì)算機(jī)程序指令的模塊。在RAM14中還存儲(chǔ)了操作系統(tǒng)22。結(jié)合本發(fā)明的實(shí)施例可用的操作系統(tǒng)包括 UNIXTM、Linux?、Microsoft WindowsXPTM、AIX?、IBM 的 i5/0S?、以及本領(lǐng)域技術(shù)人員將想到的其他的。圖1的例子中的操作系統(tǒng)22和應(yīng)用20被示出在RAM14中,但是這樣的軟件的許多組件通常也存儲(chǔ)在非易失性存儲(chǔ)器中,例如存儲(chǔ)在盤驅(qū)動(dòng)器24上。
[0021]如以下將變得更顯然的,符合本發(fā)明的實(shí)施例可以實(shí)現(xiàn)在芯片上網(wǎng)絡(luò)(NOC)集成電路設(shè)備內(nèi)或者實(shí)現(xiàn)在芯片內(nèi),這樣,計(jì)算機(jī)10被例示為包括兩個(gè)示例的NOC:視頻適配器26和協(xié)處理器28?;蛘呖梢员环Q為圖形適配器的NOC視頻適配器26是為了到諸如顯示屏幕或計(jì)算機(jī)監(jiān)視器的顯示設(shè)備30的圖形輸出特別設(shè)計(jì)的I/O適配器的例子。NOC視頻適配器26通過(guò)高速視頻總線32、總線適配器18和前側(cè)總線34連接到處理器12,該前側(cè)總線34也是高速總線。NOC協(xié)處理器28通過(guò)總線適配器18和前側(cè)總線34和36連接到處理器12,該前側(cè)總線34和36也是高速總線。圖1的NOX協(xié)處理器可以被優(yōu)化為例如在主處理器12的命令(behest)時(shí)加速特定數(shù)據(jù)處理任務(wù)。
[0022]圖1的示例的NOC視頻適配器26和NOC協(xié)處理器28每個(gè)包括N0C,該NOC包括集成的處理器(“IP”)塊、路由器、存儲(chǔ)器通信控制器和網(wǎng)絡(luò)接口控制器,以下將結(jié)合圖2-3更詳細(xì)地討論它們的細(xì)節(jié)。NOC視頻適配器和NOC協(xié)處理器每個(gè)被優(yōu)化用于使用并行處理并且還需要對(duì)共享存儲(chǔ)器的快速隨機(jī)存取的程序。但是,受益于即刻的公開(kāi)的本領(lǐng)域技術(shù)人員將認(rèn)識(shí)到,本發(fā)明可以實(shí)現(xiàn)在除了 NOC設(shè)備和設(shè)備架構(gòu)之外的設(shè)備和設(shè)備架構(gòu)中。因此本發(fā)明不限于在NOC設(shè)備內(nèi)的實(shí)現(xiàn)方式。
[0023]圖1的計(jì)算機(jī)10包括通過(guò)擴(kuò)展總線40和總線適配器18耦接到處理器12和計(jì)算機(jī)10的其他組件的盤驅(qū)動(dòng)器適配器38。盤驅(qū)動(dòng)器適配器38以盤驅(qū)動(dòng)器24的形式將非易失性數(shù)據(jù)存儲(chǔ)器連接到計(jì)算機(jī)10,并且例如可以使用集成驅(qū)動(dòng)電子設(shè)備(“IDE”)適配器、小型計(jì)算機(jī)系統(tǒng)接口(“SCSI”)適配器和本領(lǐng)域技術(shù)人員將想到的其他的來(lái)實(shí)現(xiàn)。非易失性計(jì)算機(jī)存儲(chǔ)器還可以實(shí)現(xiàn)為如本領(lǐng)域技術(shù)人員將想到的光盤驅(qū)動(dòng)器、電可擦除可編程只讀存儲(chǔ)器(所謂的“EEPR0M”或“快閃”存儲(chǔ)器)、RAM驅(qū)動(dòng)器等等。
[0024]計(jì)算機(jī)10還包括一個(gè)或多個(gè)輸入/輸出(“I/O”)適配器42,其通過(guò)例如用于控制到諸如計(jì)算機(jī)顯示器屏幕的輸出以及來(lái)自諸如鍵盤和鼠標(biāo)的用戶輸入設(shè)備44的用戶輸入的軟件驅(qū)動(dòng)器和計(jì)算機(jī)硬件實(shí)現(xiàn)面向用戶的輸入/輸出。另外,計(jì)算機(jī)10包括用于與其他計(jì)算機(jī)48的數(shù)據(jù)通信和用于與數(shù)據(jù)通信網(wǎng)絡(luò)50的數(shù)據(jù)通信的通信適配器46。這樣的數(shù)據(jù)通信可以通過(guò)RS-232連接、通過(guò)諸如通用串行總線(“USB”)的外部總線、通過(guò)諸如IP數(shù)據(jù)通信網(wǎng)絡(luò)的數(shù)據(jù)通信數(shù)據(jù)通信網(wǎng)絡(luò)以及按本領(lǐng)域技術(shù)人員將想到的其他方式串行地實(shí)行。通信適配器實(shí)現(xiàn)硬件級(jí)的數(shù)據(jù)通信,通過(guò)該硬件級(jí)的數(shù)據(jù)通信,一個(gè)計(jì)算機(jī)直接地或者通過(guò)數(shù)據(jù)通信網(wǎng)絡(luò)向另一計(jì)算機(jī)發(fā)送數(shù)據(jù)通信。適合于用在計(jì)算機(jī)10中的通信適配器的例子包括用于有線撥號(hào)通信的調(diào)制解調(diào)器、用于有線數(shù)據(jù)通信網(wǎng)絡(luò)通信的以太網(wǎng)(IEEE802.3)適配器以及用于無(wú)線數(shù)據(jù)通信網(wǎng)絡(luò)通信的802.11適配器。
[0025]為了進(jìn)一步說(shuō)明,圖2闡釋了根據(jù)本發(fā)明的實(shí)施例呃示例N0C102的功能框圖。圖2中的NOC實(shí)現(xiàn)在“芯片” 100上,即實(shí)現(xiàn)在集成電路上。N0C102包括被分組為互連結(jié)點(diǎn)的集成處理器(“IP”)塊104、路由器110、存儲(chǔ)器通信控制器106和網(wǎng)絡(luò)接口控制器108。每個(gè)IP塊104通過(guò)存儲(chǔ)器通信控制器106和網(wǎng)絡(luò)接口控制器108適配到路由器110。每個(gè)存儲(chǔ)器通信控制器控制IP塊和存儲(chǔ)器之間的通信,并且每個(gè)網(wǎng)絡(luò)接口控制器108控制通過(guò)路由器110的IP塊間通信。
[0026]在N0C102中,每個(gè)IP塊表示被用作NOC內(nèi)的數(shù)據(jù)處理的構(gòu)建塊的同步或異步邏輯設(shè)計(jì)的可再使用的單位。術(shù)語(yǔ)“IP塊”有時(shí)被展開(kāi)為“知識(shí)產(chǎn)權(quán)塊”,有效地指定IP塊作為由一方擁有的、作為一方的知識(shí)產(chǎn)權(quán)的、將被許可給其他用戶或半導(dǎo)體電路的設(shè)計(jì)者的設(shè)計(jì)。但是,在本發(fā)明的范圍內(nèi),不要求IP塊承受任何特定的擁有關(guān)系,因此該術(shù)語(yǔ)在此說(shuō)明書中總是被展開(kāi)為“集成處理器塊”。如在此指定的,IP塊是可能是或者可能不是知識(shí)產(chǎn)權(quán)的對(duì)象的邏輯、單元或芯片布局設(shè)計(jì)的可再使用的單位。IP塊是可以形成為ASIC芯片設(shè)計(jì)或者FPGA邏輯設(shè)計(jì)的邏輯核心。
[0027]照此類推描述IP塊的一種方式是:IP塊是用于NOC設(shè)計(jì),庫(kù)是用于計(jì)算機(jī)編程的NOC設(shè)計(jì),或者離散的集成電路組件是用于印刷電路板設(shè)計(jì)的NOC設(shè)計(jì)。在符合本發(fā)明的實(shí)施例的NOC中,IP塊可以實(shí)現(xiàn)為一般門網(wǎng)表(netlist)、實(shí)現(xiàn)為完整的專用或通用微處理器、或者以本領(lǐng)域技術(shù)人員可以想到的其他方式實(shí)現(xiàn)。網(wǎng)表是IP塊的邏輯-功能的布爾代數(shù)表示(門,標(biāo)準(zhǔn)單元),類似于高級(jí)編程應(yīng)用的匯編碼列表。NOC還可以以例如在諸如Verilog或VHDL的硬件描述語(yǔ)言中描述的可綜合形式實(shí)現(xiàn)。除了網(wǎng)表和可綜合實(shí)現(xiàn)方式之外,還可以以較低級(jí)物理描述來(lái)陳述(deliver) NOC0諸如SERDES、PLL、DAC、ADC等等的模擬IP塊元件可以以諸如GDSII的晶體管布局格式而分布。有時(shí)也以布局格式提供IP塊的數(shù)字元件。還將認(rèn)識(shí)到,IP塊以及按照本發(fā)明實(shí)現(xiàn)的其他邏輯電路可以以計(jì)算機(jī)數(shù)據(jù)文件、例如邏輯定義編程碼的形式分布,該計(jì)算機(jī)數(shù)據(jù)文件以各種細(xì)節(jié)級(jí)別定義實(shí)現(xiàn)這樣的邏輯的電路結(jié)構(gòu)的功能性和/或布局。因此,盡管已經(jīng)并且下文中將在實(shí)現(xiàn)在全功能的集成電路設(shè)備、利用這樣的設(shè)備的數(shù)據(jù)處理系統(tǒng)以及其他切實(shí)的物理硬件電路中的電路結(jié)構(gòu)的上下文中描述本發(fā)明,但是受益于即刻的公開(kāi)本領(lǐng)域技術(shù)普通人員將認(rèn)識(shí)到,本發(fā)明也可以實(shí)現(xiàn)在程序產(chǎn)品中,并且無(wú)論用于分發(fā)程序產(chǎn)品的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)的具體類型如何,本發(fā)明同樣適用。計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)的例子包括但不限于諸如易失性和非易失性存儲(chǔ)器器件、軟盤、硬盤驅(qū)動(dòng)器、⑶-ROM和DVD (舉例而言)的物理的可記錄類型的媒體。
[0028]圖2的例子中的每個(gè)IP塊104提供存儲(chǔ)器通信控制器106適配到路由器110。每個(gè)存儲(chǔ)器通信控制器是適配為提供在IP塊和存儲(chǔ)器之間的數(shù)據(jù)通信的同步和異步邏輯電路的縮寫。在IP塊和存儲(chǔ)器之間的這種通信的例子包括存儲(chǔ)器加載指令和存儲(chǔ)器存儲(chǔ)指令。以下參考圖3更詳細(xì)地描述存儲(chǔ)器通信控制器106。每個(gè)IP塊104還通過(guò)網(wǎng)絡(luò)接口控制器108適配到路由器110,該網(wǎng)絡(luò)接口控制器108控制在IP塊104之間的通過(guò)路由器110的通信。IP塊之間的通信的例子包括攜帶數(shù)據(jù)和用于在并行應(yīng)用和流水線應(yīng)用中在IP塊之中處理該數(shù)據(jù)的指令的消息。以下也參考圖3更詳細(xì)描述網(wǎng)絡(luò)接口控制器108。
[0029]路由器110以及在其之間的相應(yīng)的鏈路118實(shí)現(xiàn)NOC的網(wǎng)絡(luò)操作。鏈路119可以是在連接所有路由器的物理的并行電線(wire)總線上實(shí)現(xiàn)的分組結(jié)構(gòu)。S卩,每個(gè)鏈路可以實(shí)現(xiàn)在足夠?qū)挼酵瑫r(shí)容納包括所有的頭部信息和有效負(fù)荷數(shù)據(jù)的全部的數(shù)據(jù)切換分組的電線總線上。如果分組結(jié)構(gòu)包括64字節(jié),例如這包括八字節(jié)頭部和56字節(jié)的有效負(fù)荷數(shù)據(jù),則對(duì)向(subtend)每個(gè)鏈路的電線總線是64字節(jié)寬的512條電線。另外,每個(gè)鏈路可以是雙向的,以便如果鏈路分組結(jié)構(gòu)包括64字節(jié),則電線總線實(shí)際上包含在每個(gè)路由器和網(wǎng)絡(luò)中的其每個(gè)相鄰者之間的1024條電線。在這樣的實(shí)現(xiàn)方式中,消息可以包括多于一個(gè)分組,但是每個(gè)分組將精確地符合電線總線的寬度?;蛘撸溌房梢詫?shí)現(xiàn)在僅足夠?qū)挼饺菁{一個(gè)分組的一部分的電線總線上,使得分組將被拆散為多節(jié)(beat),例如以便如果鏈路被實(shí)現(xiàn)為16字節(jié)的寬度或者128條電線,則64字節(jié)的分組可以被拆分為四節(jié)。將認(rèn)識(shí)到,不同的實(shí)現(xiàn)方式可以基于實(shí)際的物理限制以及期望的性能特性而使用不同的總線寬度。如果路由器和電線總線的每部分之間的連接被稱為端口,則每個(gè)路由器將包括五個(gè)端口,對(duì)于網(wǎng)絡(luò)上的四個(gè)方向的數(shù)據(jù)傳輸?shù)拿總€(gè)方向一個(gè)端口,第五個(gè)端口用于通過(guò)存儲(chǔ)器通信控制器和網(wǎng)絡(luò)接口控制器將該路由器適配到特定IP塊。
[0030]每個(gè)存儲(chǔ)器通信控制器106控制IP塊和存儲(chǔ)器之間的通信。存儲(chǔ)器可由包括芯片外主RAMl 12、通過(guò)存儲(chǔ)器通信控制器106直接連接到IP塊存儲(chǔ)器114、被使能為IP塊的芯片上存儲(chǔ)器116以及芯片上緩存器。在N0C102中,芯片上存儲(chǔ)器114或116例如可以實(shí)現(xiàn)為芯片上緩存存儲(chǔ)器。所有這些形式的存儲(chǔ)器可以布置在相同的地址空間中,無(wú)論是網(wǎng)絡(luò)地址還是虛擬地址,甚至對(duì)于直接附連到IP塊的存儲(chǔ)器也成立。存儲(chǔ)器被尋址消息因此相對(duì)于IP塊可以完全是雙向的,因?yàn)檫@樣的存儲(chǔ)器可以從網(wǎng)絡(luò)上任意位置處的IP塊直接尋址。IP塊上的存儲(chǔ)器116可以從該IP或者從NOC中的任何其他IP塊被尋址。直接附連到存儲(chǔ)器通信控制器的存儲(chǔ)器114可以由通過(guò)該存儲(chǔ)器通信控制器適配到網(wǎng)絡(luò)的IP塊來(lái)尋址一并且也可以從NOC中的任意位置處的任何其他IP塊尋址。
[0031]N0C102包括兩個(gè)存儲(chǔ)器管理單元(“MMU”)120、122,例示了對(duì)于符合本發(fā)明的實(shí)施例的NOC的兩個(gè)交替的存儲(chǔ)器架構(gòu)。MMU120實(shí)現(xiàn)在IP塊內(nèi),允許該IP塊內(nèi)的處理器在虛擬存儲(chǔ)器中操作,同時(shí)允許該NOC的全部其余架構(gòu)在物理存儲(chǔ)器地址空間中操作。MMU122實(shí)現(xiàn)在芯片外,通過(guò)數(shù)據(jù)通信端口 124連接到N0C。端口 124包括在NOC和MMU之間傳導(dǎo)信號(hào)所需的管腳和其他互連以及將消息分組從NOC分組格式轉(zhuǎn)換為外部MMU122要求的總線格式的足夠的智能。MMU的外部位置意味著NOC的所有IP塊中的所有處理器可以操作在性能存儲(chǔ)器地址空間中,到芯片外存儲(chǔ)器的物理地址的所有轉(zhuǎn)換由芯片外MMU122處理。
[0032]除了通過(guò)使用MMU120U22例示的兩個(gè)存儲(chǔ)器架構(gòu)之外,數(shù)據(jù)通信端口 126例示了在能夠在本發(fā)明的實(shí)施例中利用的NOC中有用的第三存儲(chǔ)器架構(gòu)。端口 126提供了在N0C102的IP塊104和芯片外存儲(chǔ)器112之間的直接連接。在處理路徑中沒(méi)有MMU,此架構(gòu)提供了 NOC的所有IP塊對(duì)物理地址空間的利用。在雙向共享地址空間時(shí),NOC的所有IP塊可以直接通過(guò)直接連接到端口 126的IP塊通過(guò)包括加載和存儲(chǔ)的存儲(chǔ)器被尋址消息來(lái)存取地址空間中的存儲(chǔ)器。端口 126包括在NOC和芯片外存儲(chǔ)器1212之間傳導(dǎo)信號(hào)所需的管腳和互連以及將消息分組從NOC分組格式轉(zhuǎn)換為芯片外存儲(chǔ)器112要求的總線格式的足夠的智能。
[0033]在圖2的例子中,IP塊之一被指定為主機(jī)接口處理器128.主機(jī)接口處理器128提供在NOC和該NOC可以安裝在其中的主機(jī)計(jì)算機(jī)10之間的接口,并且還向該NOC上的其他IP塊提供數(shù)據(jù)處理服務(wù),包括例如在NOC的IP塊滯洪接收和分派來(lái)自主機(jī)計(jì)算機(jī)的數(shù)據(jù)處理請(qǐng)求。例如,NOC可以在如以上參考圖1所述的更大的計(jì)算機(jī)10上實(shí)現(xiàn)視頻圖形適配器26或者協(xié)處理器28。在圖2的例子中,主機(jī)接口處理器128通過(guò)數(shù)據(jù)通信端口 130連接到該更大的主機(jī)計(jì)算機(jī)。端口 130包括在NOC和主機(jī)計(jì)算機(jī)之間傳導(dǎo)信號(hào)所需的管腳和其他互連以及將消息分組從NOC轉(zhuǎn)換為主機(jī)計(jì)算機(jī)10要求的總線格式的足夠的智能。在圖1的計(jì)算機(jī)中的NOC協(xié)處理器的例子中,這樣的端口將提供在NOC協(xié)處理器28的鏈路結(jié)構(gòu)和NOC協(xié)處理器28與總線適配器18之間的前側(cè)總線36所需的協(xié)議之間的數(shù)據(jù)通信格式翻譯。
[0034]圖3接下來(lái)例示更詳細(xì)地例示了在N0C102中的IP塊104、存儲(chǔ)器通信控制器106、網(wǎng)絡(luò)接口控制器108和路由器110內(nèi)實(shí)現(xiàn)的組件的功能框圖,它們一起被例示在132,132可以被稱為節(jié)點(diǎn)或硬件線程。IP塊104包括計(jì)算機(jī)處理器134和I/O功能性136。在此例子中,計(jì)算機(jī)存儲(chǔ)器由IP塊104中的隨機(jī)存取存儲(chǔ)器(“RAM”)138的一段表示。如以上參考圖2所述的,存儲(chǔ)器可以占據(jù)物理地址空間的段,在每個(gè)IP塊上的這些段的內(nèi)容可從NOC中的任意IP塊尋址和存取。每個(gè)IP塊中的處理器134、I/O能力136以及存儲(chǔ)器138將IP塊有效地實(shí)現(xiàn)為通??删幊痰奈⒂?jì)算機(jī)。但是,如上所述,在本發(fā)明的范圍內(nèi),IP塊通常表示被用作用于NOC內(nèi)的數(shù)據(jù)處理的構(gòu)建塊的同步或異步邏輯的可再使用的單位。因此將IP塊實(shí)現(xiàn)為通??删幊痰奈⒂?jì)算機(jī)盡管是為了說(shuō)明的目的而有用的普通實(shí)施例,但是不是對(duì)本發(fā)明的限制。
[0035]在圖3的N0C102中,每個(gè)存儲(chǔ)器通信控制器106包括多個(gè)儲(chǔ)存器通信執(zhí)行引擎140。每個(gè)存儲(chǔ)器通信執(zhí)行引擎140被使能以執(zhí)行來(lái)自IP塊140的存儲(chǔ)器條新指令,包括在網(wǎng)絡(luò)和IP塊104之間的雙向存儲(chǔ)器通信指令流141、142、144。存儲(chǔ)器通信控制器執(zhí)行的存儲(chǔ)器通信指令不僅可以源自經(jīng)過(guò)特定存儲(chǔ)器通信控制器適配到路由器的IP塊,而且可以源自N0C102中的任意位置處的任意IP塊104。S卩,NOC中的任意IP塊可以產(chǎn)生存儲(chǔ)器通信指令并將該存儲(chǔ)器通信指令經(jīng)過(guò)NOC的路由器傳輸?shù)脚c另一 IP塊相關(guān)聯(lián)的另一存儲(chǔ)器通信控制器,用于執(zhí)行該存儲(chǔ)器通信指令。這樣的存儲(chǔ)器通信指令可以包括例如翻譯后I(10kaside)緩沖器控制指令、緩存控制指令、屏障指令和存儲(chǔ)器加載和存儲(chǔ)指令。
[0036]每個(gè)存儲(chǔ)器通信執(zhí)行引擎140被使能以與其他存儲(chǔ)器通信執(zhí)行引擎分離地并且并行地執(zhí)行完整的存儲(chǔ)器通信指令。存儲(chǔ)器通信執(zhí)行引擎實(shí)現(xiàn)對(duì)存儲(chǔ)器通信指令的并發(fā)的吞吐量?jī)?yōu)化的可升級(jí)的(scalable)存儲(chǔ)器業(yè)務(wù)處理器。存儲(chǔ)器通信控制器106支持其所有同時(shí)運(yùn)行的多個(gè)儲(chǔ)存器通信執(zhí)行引擎140,用于多個(gè)存儲(chǔ)器通信指令的同時(shí)執(zhí)行。新的存儲(chǔ)器通信指令由存儲(chǔ)器通信控制器106分配給存儲(chǔ)器通信引擎140,并且存儲(chǔ)器通信執(zhí)行引擎140可以同時(shí)接受多個(gè)響應(yīng)事件。在此例子中,所有的存儲(chǔ)器通信執(zhí)行引擎140是相同的。因此通過(guò)增減(scale)存儲(chǔ)器通信執(zhí)行引擎140的數(shù)量來(lái)實(shí)現(xiàn)增減存儲(chǔ)器通信控制器106可以同時(shí)處理的存儲(chǔ)器通信指令的數(shù)量。
[0037]在圖3的N0C102中,每個(gè)網(wǎng)絡(luò)接口控制器108被使能以將通信指令從命令格式轉(zhuǎn)換為網(wǎng)絡(luò)分組格式,用于通過(guò)路由器Iio在IP塊104之間傳輸。通信指令可以由IP塊104或者由存儲(chǔ)器通信控制器106以命令格式公式化,并且以命令格式提供給網(wǎng)絡(luò)接口控制器108。命令格式可以是符合IP塊和存儲(chǔ)器通信控制器106的架構(gòu)寄存器文件的原始格式。網(wǎng)絡(luò)分組格式通常是用于通過(guò)網(wǎng)絡(luò)的路由器110傳輸所要求的格式。每個(gè)這樣的消息由一個(gè)或多個(gè)網(wǎng)絡(luò)分組組成。在網(wǎng)絡(luò)接口控制器中從命令格式轉(zhuǎn)換為分組格式的這樣的通信指令的例子包括在IP塊和存儲(chǔ)器之間的存儲(chǔ)器加載指令和存儲(chǔ)器存儲(chǔ)指令。這樣的通信指令還可以包括在IP塊之間發(fā)送消息的通信指令,該通信指令攜帶數(shù)據(jù)和用于在并行應(yīng)用中和在流水線應(yīng)用中在IP塊之中處理該數(shù)據(jù)的指令。
[0038]在圖3的N0C102中,每個(gè)IP塊被使能以通過(guò)IP塊的存儲(chǔ)器通信控制器向和從存儲(chǔ)器以及然后還通過(guò)其網(wǎng)絡(luò)接口控制器向網(wǎng)絡(luò)發(fā)送基于存儲(chǔ)器地址的通信?;诖鎯?chǔ)器地址的通信是由IP塊的存儲(chǔ)器通信控制器的存儲(chǔ)器通信執(zhí)行引擎執(zhí)行的存儲(chǔ)器存取指令,比如加載指令或存儲(chǔ)指令。這樣的基于存儲(chǔ)器地址的通信通常源自IP塊中,以命令格式公式化,并且被移交(handoff)到存儲(chǔ)器通信控制器用于執(zhí)行。
[0039]許多基于存儲(chǔ)器地址的通信伴有消息流量地被執(zhí)行,因?yàn)橐鎯?chǔ)的任意存儲(chǔ)器可能位于物理存儲(chǔ)器地址空間中的任意位置處,芯片上或者芯片外、直接附連到NOC中的任意存儲(chǔ)器通信控制器或者最終通過(guò)NOC的任意IP塊而訪問(wèn)——無(wú)論任意特定的基于存儲(chǔ)器地址的通信源自哪個(gè)IP塊。因此,在N0C102中,伴有消息流量而執(zhí)行的所有基于存儲(chǔ)器地址的通信從存儲(chǔ)器通信控制器傳遞到相關(guān)聯(lián)的網(wǎng)絡(luò)接口控制器用于從命令格式轉(zhuǎn)換為分組格式并且在消息中通過(guò)網(wǎng)絡(luò)傳輸。在轉(zhuǎn)換為分組格式時(shí),網(wǎng)絡(luò)接口控制器還標(biāo)識(shí)依賴于要由基于存儲(chǔ)器地址的通信存取的一個(gè)或多個(gè)存儲(chǔ)器地址的分組的物理地址。利用存儲(chǔ)器地址尋址基于存儲(chǔ)器地址的消息。每個(gè)存儲(chǔ)器地址由存儲(chǔ)器通信控制器映射到物理地址,通常是負(fù)責(zé)某個(gè)范圍的物理存儲(chǔ)器地址的存儲(chǔ)器通信控制器的網(wǎng)絡(luò)位置。存儲(chǔ)器通信控制器106的網(wǎng)絡(luò)位置自然也是該存儲(chǔ)器通信控制器的相關(guān)聯(lián)的路由器110、網(wǎng)絡(luò)接口控制器108和IP塊104的網(wǎng)絡(luò)位置。為了通過(guò)NOC的路由器傳輸基于存儲(chǔ)器地址的通信的目的,每個(gè)網(wǎng)絡(luò)接口控制器內(nèi)的指令轉(zhuǎn)換邏輯150能夠?qū)⒋鎯?chǔ)器地址轉(zhuǎn)換為物理地址。
[0040]在接收到來(lái)自網(wǎng)絡(luò)的路由器110的消息流量時(shí),每個(gè)網(wǎng)絡(luò)接口控制器108為了存儲(chǔ)器指令而檢查每個(gè)分組。包含存儲(chǔ)器指令的每個(gè)分組被移交到與接收的網(wǎng)絡(luò)接口控制器相關(guān)聯(lián)的存儲(chǔ)器通信控制器106,該存儲(chǔ)器通信控制器106在將該分組的其余有效負(fù)荷發(fā)送到IP塊用于進(jìn)一步處理之前執(zhí)行該存儲(chǔ)器指令。以此方式,在IP塊開(kāi)始執(zhí)行來(lái)自消息的依賴于特定存儲(chǔ)器內(nèi)容的指令之前,總是準(zhǔn)備好存儲(chǔ)器內(nèi)容以支持該IP塊的數(shù)據(jù)處理。
[0041]在圖3的N0C102中,每個(gè)IP塊104被使能以繞過(guò)(bypass)其存儲(chǔ)器通信控制器106并將IP塊之間的網(wǎng)絡(luò)尋址的通信146通過(guò)IP塊的網(wǎng)絡(luò)接口控制器108直接發(fā)送到網(wǎng)絡(luò)。網(wǎng)絡(luò)尋址的通信是通過(guò)物理地址導(dǎo)向另一 IP塊的消息。這樣的消息傳輸如本領(lǐng)域技術(shù)人員將想到的流水線應(yīng)用中的工作數(shù)據(jù)、用于SMD應(yīng)用中的IP塊之中的單個(gè)程序處理的多個(gè)數(shù)據(jù)等等。這樣的消息不同于基于存儲(chǔ)器地址的通信在于它們從開(kāi)始就是由知道該消息要通過(guò)NOC的路由器導(dǎo)向的網(wǎng)絡(luò)地址的發(fā)起IP塊來(lái)網(wǎng)絡(luò)尋址的。這樣的網(wǎng)絡(luò)尋址的通信以命令格式由IP塊通過(guò)I/O功能136直接傳遞到IP塊的網(wǎng)絡(luò)接口控制器,然后由網(wǎng)絡(luò)接口控制器轉(zhuǎn)換為分組格式并通過(guò)NOC的路由器傳輸?shù)搅硪?IP塊。這樣的網(wǎng)絡(luò)尋址的通信146是雙向的,依賴于其在任何特定應(yīng)用中的使用,有可能向和從NOC的每個(gè)IP塊繼續(xù)。但是,每個(gè)網(wǎng)絡(luò)接口控制器被使能以向相關(guān)的路由器發(fā)送和從該相關(guān)聯(lián)的路由器接收這樣的通信,并且每個(gè)網(wǎng)絡(luò)接口控制器被使能以直接向相關(guān)聯(lián)的IP塊發(fā)送以及從該相關(guān)聯(lián)的IP塊接收這樣的通信,繞過(guò)相關(guān)聯(lián)的存儲(chǔ)器通信控制器106。
[0042]圖3的例子中的每個(gè)網(wǎng)絡(luò)接口控制器108還被使能以實(shí)現(xiàn)網(wǎng)絡(luò)上的虛擬信道,通過(guò)類型來(lái)特征化網(wǎng)絡(luò)分組。每個(gè)網(wǎng)絡(luò)接口控制器108包括虛擬信道實(shí)現(xiàn)邏輯148,其通過(guò)類型對(duì)每個(gè)通信指令分類并在將指令以分組形式移交給路由器110用于在NOC上傳輸之前將指令的類型記錄在網(wǎng)絡(luò)分組格式的字段中。通信指令類型的例子包括IP塊間基于網(wǎng)絡(luò)地址的消息、請(qǐng)求消息、對(duì)請(qǐng)求消息的響應(yīng)、導(dǎo)向緩存的無(wú)效消息、存儲(chǔ)器加載和存儲(chǔ)消息、以及對(duì)存儲(chǔ)器加載消息的響應(yīng)等等。
[0043]圖3的例子中的每個(gè)路由器110包括路由邏輯152、虛擬信道控制邏輯154和虛擬信道緩沖器156。路由邏輯通常實(shí)現(xiàn)為同步和異步邏輯的網(wǎng)絡(luò),該同步和異步邏輯的網(wǎng)絡(luò)實(shí)現(xiàn)用于在由路由器110、鏈路118和路由器之間的總線電線形成的網(wǎng)絡(luò)中的數(shù)據(jù)通信的數(shù)據(jù)通信協(xié)議堆棧(stack)。路由邏輯152包括本領(lǐng)域技術(shù)人員的讀者可以將芯片外網(wǎng)絡(luò)與路由表相關(guān)聯(lián)的功能性,在至少一些實(shí)施例中該路由表被認(rèn)為對(duì)于用在NOC中來(lái)說(shuō)太慢并且太麻煩。實(shí)現(xiàn)為同步和異步邏輯的網(wǎng)絡(luò)的路由邏輯可以配置為像單個(gè)時(shí)鐘周期那樣快地做出路由決定。此例子中的路由邏輯通過(guò)選擇用于轉(zhuǎn)發(fā)在路由器中接收的每個(gè)分組的端口來(lái)路由分組。每個(gè)分組包含該分組將被路由到的網(wǎng)絡(luò)地址。
[0044]在以上描述基于存儲(chǔ)器地址的通信時(shí),每個(gè)存儲(chǔ)器地址被描述為由網(wǎng)絡(luò)接口控制器映射到網(wǎng)絡(luò)地址,即存儲(chǔ)器通信控制器的網(wǎng)絡(luò)位置。存儲(chǔ)器通信控制器106的網(wǎng)絡(luò)位置自然也是該存儲(chǔ)器通信控制器的相關(guān)聯(lián)的路由器110、網(wǎng)絡(luò)接口控制器108和IP塊104的網(wǎng)絡(luò)位置。因此,在IP塊間的或者經(jīng)由網(wǎng)絡(luò)地址的通信中,應(yīng)用級(jí)數(shù)據(jù)處理還通常將網(wǎng)絡(luò)地址看作是IP塊在由NOC的路由器、鏈路和總線電線形成的網(wǎng)絡(luò)內(nèi)的位置。圖2例示了這樣的網(wǎng)絡(luò)的一個(gè)組織是行和列的網(wǎng)(mesh),其中每個(gè)網(wǎng)絡(luò)地址可以被實(shí)現(xiàn)為例如對(duì)于該網(wǎng)的每組相關(guān)聯(lián)的路由器、IP塊、存儲(chǔ)器通信控制器和網(wǎng)絡(luò)接口控制器的唯一標(biāo)識(shí)符或者該網(wǎng)中的每個(gè)這樣的組的X、y坐標(biāo)。
[0045]在圖3的N0C102中,每個(gè)路由器110實(shí)現(xiàn)兩個(gè)或多個(gè)虛擬性通信信道,其中每個(gè)虛擬通信信道由通信類型來(lái)特征化。通信指令類型以及因此的虛擬信道類型包括以上提至Ij的那些:IP塊間基于網(wǎng)絡(luò)地址的消息、請(qǐng)求消息、對(duì)請(qǐng)求消息的響應(yīng)、導(dǎo)向緩存的無(wú)效消息、存儲(chǔ)器加載和存儲(chǔ)消息、以及對(duì)存儲(chǔ)器加載消息的響應(yīng)等等。支持虛擬信道,圖3的例子中的每個(gè)路由器110還包括虛擬信道控制邏輯154和虛擬信道緩沖器156。虛擬信道控制邏輯154為了美國(guó)接受的分組的被分配的通信類型而檢查每個(gè)接收的分組并將每個(gè)分組放置在對(duì)于該通信類型的外發(fā)的(outgoing)虛擬信道緩沖器中用于經(jīng)過(guò)端口傳輸?shù)絅OC上的相鄰路由器。
[0046]每個(gè)虛擬信道緩沖器156具有有限的存儲(chǔ)空間。當(dāng)在短時(shí)間內(nèi)接收到許多分組時(shí),虛擬信道緩沖器可能填滿一使得不再有分組能放在該緩沖器中。在其他協(xié)議中,到達(dá)其緩沖器已滿的虛擬信道的分組將被丟棄。但是,在此例子中的每個(gè)虛擬信道緩沖器156通過(guò)總線電線的控制信號(hào)被使能以通過(guò)虛擬信道控制邏輯建議周圍的路由器暫停在虛擬信道中的傳輸,即暫停特定通信類型的分組的傳輸。當(dāng)一個(gè)虛擬信道這樣暫停時(shí),所有其他虛擬信道不受影響——并且可以繼續(xù)以全部容量操作??刂菩盘?hào)被電線傳導(dǎo)經(jīng)過(guò)每個(gè)路由器一直回到每個(gè)路由器的相關(guān)聯(lián)的網(wǎng)絡(luò)接口控制器108。每個(gè)網(wǎng)絡(luò)接口控制器配置為在接收到這樣的信號(hào)時(shí)拒絕從其相關(guān)聯(lián)的存儲(chǔ)器通信控制器106或從其相關(guān)聯(lián)的IP塊104接受對(duì)于暫停的虛擬信道的通信指令。以此方式,虛擬信道的暫停影響實(shí)現(xiàn)該虛擬信道的所有硬件,一直回到發(fā)起的IP塊。
[0047]暫停虛擬信道中的分組傳輸?shù)囊粋€(gè)影響是從不丟棄分組。當(dāng)路由器遇到其中在諸如例如因特網(wǎng)協(xié)議的某些不可靠的協(xié)議中分組可能被丟棄的情況時(shí),圖3的例子中的路由器可以通過(guò)其虛擬信道緩沖器156及其虛擬信道控制邏輯154暫停虛擬信道中的所有分組的傳輸直到緩沖器空間再次可用,消除了丟棄分組的任何需要。圖3的NOC因此可以用極薄的硬件層實(shí)現(xiàn)高度可靠的網(wǎng)絡(luò)通信協(xié)議。
[0048]圖3的示例NOC還可以配置為維持芯片上和芯片外存儲(chǔ)器緩存之間的緩存一致性。每個(gè)NOC可以支持多個(gè)緩存,每個(gè)緩存針對(duì)相同的下層存儲(chǔ)器地址空間而操作。例如,緩存可以由IP塊、存儲(chǔ)器通信控制器或者NOC外部的緩存控制器來(lái)控制。在圖2的例子中的芯片上存儲(chǔ)器114、116的任意一個(gè)還可以實(shí)現(xiàn)為芯片上緩存,并且在本發(fā)明的范圍內(nèi),緩沖存儲(chǔ)器也可以實(shí)現(xiàn)在芯片外。
[0049]圖3所示的每個(gè)路由器110包括五個(gè)端口,四個(gè)端口 158A-D通過(guò)總線電線118連接到其他路由器,并且第五端口 160通過(guò)網(wǎng)絡(luò)接口控制器108和存儲(chǔ)器通信控制器106將每個(gè)路由器連接到其相關(guān)聯(lián)的IP塊104。如從圖2和圖3中的例示可以看出的,N0C102的路由器110和鏈路118形成具有連接每個(gè)路由器中的垂直和水平端口的垂直和水平鏈路的網(wǎng)狀網(wǎng)絡(luò)。在圖3的例示中,例如,端口 158A、158C和160被稱為垂直端口,端口 158B和158D被稱為水平端口。
[0050]接下來(lái)圖4以另一方式例示符合本發(fā)明的IP塊104的一個(gè)示例實(shí)現(xiàn)方式,該IP塊104被實(shí)現(xiàn)為劃分成指令單元(IU) 162、執(zhí)行單元(XU) 164和輔助執(zhí)行單元(AXU) 166的處理元件。在所示的實(shí)現(xiàn)方式中,IU162包括接收來(lái)自LI指令緩存(iCACHE) 170的指令的多個(gè)指令緩沖器168。每個(gè)指令緩沖器168專用于多個(gè)、例如四個(gè)對(duì)稱的多線程(SMT)硬件線程之一。有效到真實(shí)翻譯單元(iERAT) 172耦接到iCACHE170,并且用于將來(lái)自多個(gè)線程取得排序器174的指令取得請(qǐng)求翻譯為用于從較低階存儲(chǔ)器取回指令的真實(shí)地址。每個(gè)線程取得排序器174專用于特定硬件線程,并且用于確保取得要由相關(guān)聯(lián)的線程執(zhí)行的指令到iCACHE中用于分派到適當(dāng)?shù)膱?zhí)行單元。還如圖4所示,取到指令緩沖器168中的指令還可以由分支預(yù)測(cè)邏輯176監(jiān)視,該分支預(yù)測(cè)邏輯176提供到每個(gè)線程取得排序器174的提示以最小化在執(zhí)行線程時(shí)由分支導(dǎo)致的指令緩存丟失。
[0051 ] IU162還包括專用于每個(gè)硬件線程并且配置為解決依賴性以及擴(kuò)展從指令緩沖器168向XU164發(fā)出指令的依賴性/發(fā)出邏輯塊178。另外,在所示的實(shí)施例中,分開(kāi)的依賴性/發(fā)出邏輯180被提供在AXU166中,因此使得分開(kāi)的指令能夠由不同的線程發(fā)出到XU164和AXU166。在一個(gè)替換實(shí)施例中,邏輯180可以布置在IU162中或者可以完全省略,使得邏輯178向AXU166發(fā)出指令。
[0052]XU164被實(shí)現(xiàn)為固定點(diǎn)執(zhí)行單元,包括耦接到固定點(diǎn)邏輯184的一組通用寄存器(GRP) 182、分值邏輯186和加載/存儲(chǔ)邏輯188。加載/存儲(chǔ)邏輯188耦接到LI數(shù)據(jù)緩存(dCACHE) 190,有效到真實(shí)翻譯由dERAT192提供。XU164可以配置為實(shí)際上實(shí)現(xiàn)任何指令集,例如32b或64b PowerPC指令集的所有或一部分。
[0053]AXU166操作為包括專用的依賴性/發(fā)出邏輯180與一個(gè)或多個(gè)執(zhí)行塊194的輔助執(zhí)行單元。AXU166可以包括任意數(shù)量的執(zhí)行塊,并且可以實(shí)際實(shí)現(xiàn)任意類型的執(zhí)行單元,例如浮置點(diǎn)單元或者諸如加密/解密單元、協(xié)處理器、向量處理單元、圖形處理單元、XML處理單元等等的一個(gè)或多個(gè)專用執(zhí)行單元。在所示的實(shí)施例中,AXU166包括到XU164的高速輔助接口,例如以支持在AXU體系狀態(tài)和XU體系狀態(tài)之間的直接移動(dòng)。
[0054]可以經(jīng)由耦接到N0C102的網(wǎng)絡(luò)接口控制器108按以上結(jié)合圖2所述的方式來(lái)管理與IP塊104的通信??梢耘c基于消息的通信一起提供例如用于存取L2緩存存儲(chǔ)器的基于地址的通信。例如,每個(gè)IP塊104可以包括專用的收信箱(in box)和/或發(fā)信箱(outbox)以便處理在IP塊之間的節(jié)點(diǎn)間通信。
[0055]本發(fā)明的實(shí)施例可以實(shí)現(xiàn)在以上結(jié)合圖1-4所述的硬件和軟件環(huán)境內(nèi)。但是,受益于即刻的公開(kāi)的本領(lǐng)域技術(shù)人員將認(rèn)識(shí)到,本發(fā)明可以實(shí)現(xiàn)在許多不同的環(huán)境中,并且不脫離本發(fā)明的精神和范圍可以對(duì)上述的硬件和軟件實(shí)施例做出其他修改。這樣,本發(fā)明不限于在此公開(kāi)的特定硬件和軟件環(huán)境。
[0056]芯片級(jí)編碼的數(shù)據(jù)通信
[0057]現(xiàn)在轉(zhuǎn)向圖5,此圖提供了例示可以配置在圖2的N0C102、IP塊104和/或路由器Iio中的組件的框圖。如所示,傳送隊(duì)列202可以存儲(chǔ)被排隊(duì)用于經(jīng)過(guò)連接的通信總線206傳送的數(shù)據(jù)值204a-c (也標(biāo)記為“數(shù)據(jù)值X”到“數(shù)據(jù)值X+N”)。通常,“數(shù)據(jù)值X” 204a對(duì)應(yīng)于要經(jīng)過(guò)通信總線206傳送的第一數(shù)據(jù)值,“數(shù)據(jù)值X+l”204b到“數(shù)據(jù)值X+N”204c對(duì)應(yīng)于被排隊(duì)以在第一數(shù)據(jù)值104a之后傳送的數(shù)據(jù)值。傳送隊(duì)列202連接到編碼邏輯208,其中該編碼邏輯可以與存儲(chǔ)先前經(jīng)過(guò)通信總線206傳送的被編碼值210a、b (也標(biāo)記為“編碼值X-1”到“編碼值X-N”)的存儲(chǔ)器相關(guān)聯(lián)。符合本發(fā)明的實(shí)施例,編碼邏輯208可以連接到傳送隊(duì)列202和/或通信總線206,并且編碼邏輯208可以配置為至少部分地基于一個(gè)或多個(gè)先前傳送的編碼值210a、b以及被排隊(duì)以其后傳送的一個(gè)或多個(gè)數(shù)據(jù)值204b、c在傳送之前編碼數(shù)據(jù)值(例如數(shù)據(jù)值X206a)。
[0058]符合本發(fā)明的實(shí)施例,編碼邏輯208可以分析一個(gè)或多個(gè)先前傳送的編碼值210a、b以及被排隊(duì)以在第一數(shù)據(jù)值206a之后傳送的一個(gè)或多個(gè)數(shù)據(jù)值204b、c,并且確定對(duì)于第一數(shù)據(jù)值204a的編碼值,并且在一些實(shí)施例中,還確定對(duì)于隨后的數(shù)據(jù)值204b的編碼值以便在傳送第一數(shù)據(jù)值204a和被排隊(duì)以在其后傳送的至少一個(gè)其他數(shù)據(jù)值204b時(shí)減少位轉(zhuǎn)變。通常,在通信總線206上傳送之前,數(shù)據(jù)值可以被編碼邏輯208編碼為來(lái)自一組可能的編碼值的具體編碼值。這樣,在本發(fā)明的實(shí)施例中,編碼邏輯分析第一數(shù)據(jù)值204a、一個(gè)或多個(gè)先前傳送的編碼值210a、b以及被排隊(duì)以在其后傳送的一個(gè)或多個(gè)數(shù)據(jù)值210a、b,以確定對(duì)于第一數(shù)據(jù)值204a的來(lái)自該組可能的編碼值的具體編碼值。編碼邏輯208編碼第一數(shù)據(jù)值206a以產(chǎn)生該具體編碼值,并且該具體編碼值可以經(jīng)過(guò)通信總線206傳送。
[0059]編碼邏輯208可以包括轉(zhuǎn)變計(jì)數(shù)邏輯212,該轉(zhuǎn)變計(jì)數(shù)邏輯212配置為確定在至少一個(gè)先前傳送的編碼值210a、對(duì)于第一值204a的每個(gè)可能的編碼值和/或?qū)τ诒慌抨?duì)以在第一數(shù)據(jù)值204a之后傳送的至少一個(gè)數(shù)據(jù)值204v的每個(gè)可能的編碼值之間的位轉(zhuǎn)變的數(shù)量。例如,轉(zhuǎn)變計(jì)數(shù)邏輯212可以包括“異或”(XOR)邏輯,該異或邏輯將對(duì)于第一數(shù)據(jù)值204a的每個(gè)可能的編碼值的每位與先前傳送的編碼值210a中的相應(yīng)位和對(duì)于隨后排隊(duì)的數(shù)據(jù)值204b的每個(gè)可能的編碼值中的相應(yīng)位相比較以確定對(duì)于每個(gè)比較的位轉(zhuǎn)變的數(shù)量。至少部分地基于對(duì)于第一數(shù)據(jù)值204a的每個(gè)可能的編碼值、先前傳送的編碼值210a以及隨后排隊(duì)的數(shù)據(jù)值204b的每個(gè)可能的編碼值確定的位轉(zhuǎn)變的數(shù)量,編碼邏輯208將第一數(shù)據(jù)值204a編碼為來(lái)自該組可能的編碼值的具體編碼值。
[0060]圖6A-C提供傳送隊(duì)列202以及包括對(duì)于第一數(shù)據(jù)值204a “00000000”、隨后排隊(duì)的數(shù)據(jù)值(即第二數(shù)據(jù)值)204b “10100101”以及先前傳送的編碼值210a “0000000000”的
示例值的編碼邏輯208的框圖。轉(zhuǎn)向圖6A,在此例子中,編碼邏輯208配置為對(duì)第一數(shù)據(jù)值204a和第二數(shù)據(jù)值204進(jìn)行8/10編碼,其中8/10編碼可以將每個(gè)8位數(shù)據(jù)值204a、b編碼為10位的四個(gè)可能的編碼值中的任意一個(gè)。在此例子中,可以使用8/10編碼來(lái)編碼第一數(shù)據(jù)值204a以產(chǎn)生四個(gè)10位可能的編碼值220a-d,并且可以使用8/10編碼來(lái)編碼第二數(shù)據(jù)值104b以產(chǎn)生四個(gè)10位可能的編碼值222a-d。
[0061]如所述,在本發(fā)明的一些實(shí)施例中,轉(zhuǎn)變計(jì)數(shù)邏輯212可以分析第一數(shù)據(jù)值204a和先前傳送的編碼值210a的每個(gè)可能的編碼值以確定對(duì)于每個(gè)可能的編碼值和先前傳送的編碼值210a的位轉(zhuǎn)變的數(shù)量。如圖6B所示,轉(zhuǎn)變計(jì)數(shù)邏輯212可以將先前傳送的編碼值210a的每位與第一數(shù)據(jù)值204a的每個(gè)可能的編碼值220a_d相比較以確定在先前傳送的編碼值210a和對(duì)于第一數(shù)據(jù)值204a的每個(gè)可能的編碼值220a_d之間的位轉(zhuǎn)變240a_d的數(shù)量。因此,如圖6B所示,對(duì)于第一數(shù)據(jù)值的“0000000000”的編碼值220a,從先前傳送的值“0000000000”的轉(zhuǎn)變的數(shù)量是零,因?yàn)閿?shù)字是一致的。但是,對(duì)于“1111100000”和“0000011111”的編碼值220b、200c,轉(zhuǎn)變的數(shù)量是五,因?yàn)槲鍌€(gè)位從“O”切換到“I”。同樣,對(duì)于“1111111111”的編碼值220d,轉(zhuǎn)變的數(shù)量是十,因?yàn)樗惺畟€(gè)位從“O”切換到“ I ”。
[0062]此外,轉(zhuǎn)變計(jì)數(shù)邏輯212可以配置為確定在對(duì)于第一數(shù)據(jù)值204a的每個(gè)可能的編碼值和對(duì)于第二數(shù)據(jù)值204b的每個(gè)可能的編碼值之間的位轉(zhuǎn)變的數(shù)量(因?yàn)樵谶@點(diǎn)上,對(duì)于第二數(shù)據(jù)值的編碼值還沒(méi)有確定)。在圖6C中,轉(zhuǎn)變計(jì)數(shù)邏輯212可以將對(duì)于第一數(shù)據(jù)值204a的第一可能的編碼值220a的每位與第二數(shù)據(jù)值204b的每個(gè)可能的編碼值的相應(yīng)位相比較以確定在其之間的位轉(zhuǎn)變242a-d的數(shù)量。轉(zhuǎn)變計(jì)數(shù)邏輯212進(jìn)行類似的分析以確定:在第一數(shù)據(jù)值204a的第二可能的編碼值220b和第二數(shù)據(jù)值204b的每個(gè)可能的編碼值222a-d之間的位轉(zhuǎn)變244a-d的數(shù)量、在第一數(shù)據(jù)值204a的第三可能的編碼值220c和第二數(shù)據(jù)值204b的每個(gè)可能的編碼值222a-d之間的位轉(zhuǎn)變246a_d的數(shù)量、以及在第一數(shù)據(jù)值204a的第四可能的編碼值220d和第二數(shù)據(jù)值204b的每個(gè)可能的編碼值222a_d之間的位轉(zhuǎn)變248a-d的數(shù)量。
[0063]基于所確定的在先前傳送的編碼值210a和對(duì)于第一數(shù)據(jù)值204a的可能的編碼值220a-d之間的位轉(zhuǎn)變240a-d的數(shù)量以及所確定的在第一數(shù)據(jù)值204a的每個(gè)可能的編碼值220a-d和第二數(shù)據(jù)值204b的每個(gè)可能的編碼值222a_d之間的位轉(zhuǎn)變242a-d、244a_d、246a-d以及248a-d的數(shù)量,編碼邏輯28可以將第一數(shù)據(jù)值204a編碼為可能的編碼值220a-d中的具體編碼值,使得當(dāng)通過(guò)通信總線206傳送第一數(shù)據(jù)值204a的具體編碼值以及隨后的數(shù)據(jù)值時(shí)可以進(jìn)行預(yù)測(cè)的最小數(shù)量的位轉(zhuǎn)變。此外,在編碼了第一數(shù)據(jù)值204a之后,編碼邏輯208可以將第二數(shù)據(jù)值204b編碼為可能的編碼值222a-d中的具體編碼值,使得當(dāng)通過(guò)通信總線206傳送第二數(shù)據(jù)值204b的具體編碼值時(shí)可以進(jìn)行最小數(shù)量的位轉(zhuǎn)變。在此例子中,編碼邏輯可以將第一數(shù)據(jù)值204a編碼為第一可能的編碼值220a,因?yàn)樵谙惹皞魉偷木幋a值210a之間的預(yù)測(cè)的位轉(zhuǎn)變240a將是0,并且在第一可能的編碼值220a和對(duì)于第二值的可能的編碼值222a-d之間的預(yù)測(cè)的位轉(zhuǎn)變包括最少數(shù)量的位轉(zhuǎn)變242a (即4)的可能性。
[0064]通常,本發(fā)明的實(shí)施例基于預(yù)測(cè)的位轉(zhuǎn)變的數(shù)量選擇性地編碼第一數(shù)據(jù)值和隨后的數(shù)據(jù)值。但是,傳送隊(duì)列202持續(xù)地加載新的數(shù)據(jù)值,使得編碼邏輯208持續(xù)地分析和確定對(duì)于排隊(duì)的數(shù)據(jù)值的可能的編碼值的位轉(zhuǎn)變的數(shù)量。這樣,編碼邏輯通常基于對(duì)于加載的數(shù)據(jù)值的預(yù)測(cè)的位轉(zhuǎn)變的數(shù)量將數(shù)據(jù)值編碼為具體編碼值。例如,盡管對(duì)于第二數(shù)據(jù)值204b的可能的編碼值222a對(duì)應(yīng)于最少數(shù)量的位轉(zhuǎn)變242a,但是如果使用不同的可能的編碼值222b-d對(duì)于在第二數(shù)據(jù)值之后排隊(duì)的數(shù)據(jù)值的可能的編碼值的位轉(zhuǎn)變的數(shù)量將進(jìn)行更少的位轉(zhuǎn)變,則編碼邏輯可以不一定要將第二數(shù)據(jù)值204b編碼為與最少數(shù)量的位轉(zhuǎn)變對(duì)應(yīng)的可能的編碼值222a。因此,在傳送隊(duì)列202加載用于傳送的新的數(shù)據(jù)值時(shí),編碼邏輯208持續(xù)地分析和確定對(duì)于可能的編碼值的位轉(zhuǎn)變的數(shù)量,并且編碼邏輯208基于傳送隊(duì)列202的當(dāng)前狀態(tài)以及先前傳送的編碼值210a在傳送之前選擇性地編碼數(shù)據(jù)值。
[0065]圖7提供流程圖300,該流程圖300提供當(dāng)通過(guò)通信總線和/或互連傳送數(shù)據(jù)值時(shí)可以由本發(fā)明的實(shí)施例進(jìn)行的操作的序列。編碼邏輯可以連接到傳送隊(duì)列,該傳送隊(duì)列連接到通信總線/互連,并且編碼邏輯可以分析存儲(chǔ)在傳送隊(duì)列中的數(shù)據(jù)值以及先前傳送的編碼值以在通過(guò)通信總線傳送數(shù)據(jù)值之前編碼數(shù)據(jù)值,以減少在傳送中的位轉(zhuǎn)變的數(shù)量。
[0066]具體地,該編碼邏輯可以分析被排隊(duì)要傳送的數(shù)據(jù)值(即“數(shù)據(jù)值X”,第一數(shù)據(jù)值)、被排隊(duì)以在第一數(shù)據(jù)值之后傳送的數(shù)據(jù)值(即,“數(shù)據(jù)值X+1 ”,第二數(shù)據(jù)值)以及在第一數(shù)據(jù)值之前傳送了的編碼值(即傳送的編碼值)(塊302)以確定第一和第二數(shù)據(jù)值的可能的編碼值(塊304)。此外,該編碼邏輯可以確定在先前傳送的編碼值和第一數(shù)據(jù)值的每個(gè)可能的編碼值之間的以及還有在第一數(shù)據(jù)值的每個(gè)可能的編碼值和第二數(shù)據(jù)值的每個(gè)可能的編碼值之間的位轉(zhuǎn)變的數(shù)量(塊306)。
[0067]至少部分地基于確定的位轉(zhuǎn)變,編碼邏輯可以將第一數(shù)據(jù)值編碼為對(duì)于第一數(shù)據(jù)值的可能的編碼值中的特定的編碼值(塊308)。通常,該編碼邏輯將第一數(shù)據(jù)值編碼為具體編碼值使得數(shù)據(jù)可以用最少數(shù)量的位轉(zhuǎn)變通過(guò)通信總線傳送。因此,編碼邏輯確定先前傳送的編碼值和第一數(shù)據(jù)值的可能的編碼值之間的位轉(zhuǎn)變以及在第一數(shù)據(jù)值多可能的編碼值和第二數(shù)據(jù)值的可能的編碼值之間的位轉(zhuǎn)變的數(shù)量,并且至少部分地基于確定的位轉(zhuǎn)變的數(shù)量,第一數(shù)據(jù)值被編碼為具體編碼值??梢詡魉偷谝粩?shù)據(jù)值的編碼值(塊310),并且可以對(duì)于傳送隊(duì)列中的下一數(shù)據(jù)值重復(fù)該處理(塊312)。
[0068]這樣,本發(fā)明的實(shí)施例通過(guò)通信總線或互連傳送數(shù)據(jù)值之前編碼該數(shù)據(jù)值。例如,本發(fā)明的實(shí)施例可以進(jìn)行8/10編碼以由此將8位的數(shù)據(jù)值編碼為10位編碼值并且通過(guò)通信總線和/或互連傳送編碼值。通常,每個(gè)數(shù)據(jù)值與多個(gè)可能的編碼值相關(guān)聯(lián),并且至少部分地基于在該數(shù)據(jù)之前傳送的編碼值以及排隊(duì)以在其之后傳送的數(shù)據(jù)值將該數(shù)據(jù)值編碼為具體編碼值。本發(fā)明的實(shí)施例至少部分地基于傳送每個(gè)可能的編碼值以及可能的隨后的編碼值將進(jìn)行的位轉(zhuǎn)變的數(shù)量將每個(gè)數(shù)據(jù)值編碼為多個(gè)可能的編碼值中的具體編碼值。通過(guò)基于至少一個(gè)隨后排隊(duì)的數(shù)據(jù)值和先前傳送的數(shù)據(jù)值在傳送之前選擇性地編碼數(shù)據(jù)值,本發(fā)明的實(shí)施例由此可以減少在配置在諸如并入了 NOC架構(gòu)的芯片處理單元上的系統(tǒng)的處理系統(tǒng)中的通信邏輯中的晶體管切換。而與不編碼而傳送數(shù)據(jù)值相比,減少晶體管切換可以減少在處理系統(tǒng)中傳送數(shù)據(jù)值時(shí)的功耗。
[0069]因此,本發(fā)明的實(shí)施例選擇性地將數(shù)據(jù)值編碼為與相對(duì)其他可能的編碼值的低數(shù)量的位轉(zhuǎn)變和/或最小數(shù)量的位轉(zhuǎn)變對(duì)應(yīng)的具體編碼值。但是,因?yàn)楸景l(fā)明的實(shí)施例預(yù)先準(zhǔn)備(look ahead)隨后排隊(duì)的數(shù)據(jù)值,當(dāng)分析隨后的排隊(duì)的數(shù)據(jù)值的可能的編碼值時(shí),排隊(duì)的數(shù)據(jù)值可能被編碼為不與相對(duì)于其他可能的編碼值的最小數(shù)量的位轉(zhuǎn)變對(duì)應(yīng)、而是與較低數(shù)量的位轉(zhuǎn)變對(duì)應(yīng)的具體編碼值。在傳送編碼數(shù)據(jù)值時(shí),通過(guò)將在傳送之前的數(shù)據(jù)值選擇性地編碼為來(lái)自一組可能的編碼值中的與最低數(shù)量的位轉(zhuǎn)變對(duì)應(yīng)的具體編碼值。因?yàn)榭梢詮膫魉完?duì)列持續(xù)地傳送數(shù)據(jù)值,本發(fā)明的實(shí)施例分析第一數(shù)據(jù)值以及一個(gè)或多個(gè)隨后排隊(duì)的數(shù)據(jù)值以及先前傳送的編碼值(即傳送的上一個(gè)編碼值)以確定數(shù)據(jù)值應(yīng)該被編碼為的、使得位轉(zhuǎn)變最小化的具體編碼值。但是,因?yàn)樵趥魉蛿?shù)據(jù)值時(shí)傳送隊(duì)列通常在加載新的數(shù)據(jù)值,所以可能不能達(dá)到最小數(shù)量的位轉(zhuǎn)變,而是當(dāng)傳送數(shù)據(jù)值時(shí),本發(fā)明的實(shí)施例將數(shù)據(jù)值編碼為較低數(shù)量的位轉(zhuǎn)變。
[0070]將認(rèn)識(shí)到,在例示的實(shí)施例中使用了 8/10編碼,但是本發(fā)明可以結(jié)合其他寬度的解碼和/或編碼值而使用,其中解碼的值可以由多于一個(gè)編碼值表示。因此,本發(fā)明不限于在此討論得特定編碼算法。
[0071]另外的優(yōu)點(diǎn)和修改對(duì)于本領(lǐng)域技術(shù)人員將是非常顯然的。因此,以其較寬方面的本發(fā)明因此不限于示出和描述的具體細(xì)節(jié)、表示的裝置和方法以及例示的例子。特別是,根據(jù)本發(fā)明的原理,以上流程圖的任意的塊可以刪除、增加、使得與另一塊同時(shí)、組合或者另外更改。因而,可以脫離這些細(xì)節(jié)而不脫離 申請(qǐng)人:的一般發(fā)明改變的精神或范圍。
【權(quán)利要求】
1.一種用于在芯片上系統(tǒng)中傳送數(shù)據(jù)的方法,該系統(tǒng)包括通過(guò)總線通信的多個(gè)IP塊,該方法包括: 對(duì)于被排隊(duì)以通過(guò)總線傳送的第一數(shù)據(jù)值確定四個(gè)可能的編碼值以及對(duì)于被排隊(duì)以在該第一數(shù)據(jù)值之后傳送的第二數(shù)據(jù)值確定四個(gè)可能的編碼的數(shù)據(jù),其中第一數(shù)據(jù)值和第二數(shù)據(jù)值是8位的,而編碼值是10位的; 確定在用于第一數(shù)據(jù)值的四個(gè)可能的編碼值的每個(gè)和先前通過(guò)總線傳送的編碼值之間的位轉(zhuǎn)變的數(shù)量; 確定在用于第一數(shù)據(jù)值的四個(gè)可能的編碼值的每個(gè)和用于第二數(shù)據(jù)值的四個(gè)可能的編碼值之間的位轉(zhuǎn)變的數(shù)量; 使用8/10編碼將第一數(shù)據(jù)值編碼為用于第一數(shù)據(jù)值的四個(gè)可能的編碼值中的具體編碼值,其中該具體編碼值對(duì)應(yīng)于在先前傳送的編碼值和用于第二數(shù)據(jù)值的四個(gè)可能的編碼值之間的最少數(shù)量的位轉(zhuǎn)變;以及通過(guò)總線傳送該具體編碼值。
2.一種用于傳送數(shù)據(jù)的方法,該方法包括: 至少部分地基于被排隊(duì)以在該數(shù)據(jù)值之后傳送的至少一個(gè)數(shù)據(jù)值以及至少一個(gè)先前傳送的編碼數(shù)據(jù)值,選擇性地編碼用于傳送的數(shù)據(jù)值,以減少用于編碼數(shù)據(jù)值的傳送的位轉(zhuǎn)變;以及 傳送選擇性地編碼數(shù)據(jù)值。
3.如權(quán)利要求2的方法,其中選擇性地編碼用于傳送的數(shù)據(jù)值包括: 將每個(gè)數(shù)據(jù)值編碼為用于 該數(shù)據(jù)值的一組可能的編碼值中的具體編碼數(shù)據(jù)值,其中該具體編碼數(shù)據(jù)值對(duì)應(yīng)于在該具體編碼數(shù)據(jù)值、先前傳送的編碼數(shù)據(jù)值和被排隊(duì)以在該數(shù)據(jù)值之后傳送的數(shù)據(jù)值的可能的編碼數(shù)據(jù)值之間的最低數(shù)量的位轉(zhuǎn)變。
4.如權(quán)利要求3的方法,其中選擇性地編碼數(shù)據(jù)值包括: 確定在該數(shù)據(jù)值的每個(gè)可能的編碼值和被排隊(duì)以在該數(shù)據(jù)值之后傳送的至少一個(gè)數(shù)據(jù)值的每個(gè)可能的編碼值之間的位轉(zhuǎn)變的數(shù)量。
5.如權(quán)利要求4的方法,其中選擇性地編碼數(shù)據(jù)值包括: 確定在該數(shù)據(jù)值的每個(gè)可能的編碼數(shù)據(jù)值和先前傳送的編碼數(shù)據(jù)值之間的位轉(zhuǎn)變的數(shù)量。
6.如權(quán)利要求5的方法,其中選擇性地編碼數(shù)據(jù)值包括: 至少部分地基于在該具體編碼數(shù)據(jù)值和被排隊(duì)以在該數(shù)據(jù)值之后傳送的至少一個(gè)數(shù)據(jù)值的可能的編碼值之間的位轉(zhuǎn)變的數(shù)量以及在該具體編碼數(shù)據(jù)值和先前傳送的編碼數(shù)據(jù)值之間的位轉(zhuǎn)變的數(shù)量,將每個(gè)數(shù)據(jù)值編碼為與該數(shù)據(jù)值相關(guān)聯(lián)的一組可能的編碼數(shù)據(jù)值中的具體編碼數(shù)據(jù)值。
7.如權(quán)利要求2的方法,其中數(shù)據(jù)值包括8位,并且選擇性地編碼數(shù)據(jù)值包括: 將每個(gè)8位數(shù)據(jù)值編碼為10位編碼數(shù)據(jù)值,其中每個(gè)8位數(shù)據(jù)值對(duì)應(yīng)于四個(gè)可能的10位編碼數(shù)據(jù)值。
8.如權(quán)利要求2的方法,還包括: 響應(yīng)于傳送編碼數(shù)據(jù)值,將每個(gè)編碼數(shù)據(jù)值存儲(chǔ)在與先前傳送的編碼數(shù)據(jù)值對(duì)應(yīng)的存儲(chǔ)器中。
9.如權(quán)利要求2的方法,其中在芯片上系統(tǒng)的互聯(lián)的IP塊之間傳送數(shù)據(jù)值。
10.一種電路結(jié)構(gòu),包括: 傳送隊(duì)列,配置為存儲(chǔ)用于傳送的數(shù)據(jù)值; 通信總線;以及 編碼邏輯,連接到所述傳送隊(duì)列和所述通信總線,并且配置為至少部分地基于被排隊(duì)以在該數(shù)據(jù)值之后傳送的至少一個(gè)數(shù)據(jù)值以及至少一個(gè)先前傳送的編碼數(shù)據(jù)值,選擇性地編碼用于經(jīng)過(guò)通信總線傳送的數(shù)據(jù)值以減少對(duì)于編碼數(shù)據(jù)值的傳送的位轉(zhuǎn)變。
11.如權(quán)利要求10的電路結(jié)構(gòu),其中所述編碼邏輯配置為通過(guò)以下選擇性地編碼數(shù)據(jù)值: 將每個(gè)數(shù)據(jù)值編碼為對(duì)于該數(shù)據(jù)值的一組可能的編碼值中的具體編碼數(shù)據(jù)值,其中該具體編碼數(shù)據(jù)值對(duì)應(yīng)于在該具體編碼數(shù)據(jù)值、先前傳送的編碼數(shù)據(jù)值和被排隊(duì)以在該數(shù)據(jù)值之后傳送的數(shù)據(jù)值的可能的編碼值之間的最低數(shù)量的位轉(zhuǎn)變。
12.如權(quán)利要求11的電路結(jié)構(gòu),其中所述編碼邏輯包括轉(zhuǎn)變計(jì)數(shù)邏輯,該轉(zhuǎn)變計(jì)數(shù)邏輯配置為確定在該數(shù)據(jù)值的每個(gè)可能的編碼值和被排隊(duì)以在該數(shù)據(jù)值之后傳送的至少一個(gè)數(shù)據(jù)值的每個(gè)可能的編碼值之間的位轉(zhuǎn)變的數(shù)量。
13.如權(quán)利要求12的電路結(jié)構(gòu),其中所述編碼邏輯還配置為確定在該數(shù)據(jù)值的每個(gè)可能的編碼數(shù)據(jù)值和先前傳送的編碼數(shù)據(jù)值之間的位轉(zhuǎn)變的數(shù)量。
14.如權(quán)利要求13的電路結(jié)構(gòu),其中所述編碼邏輯配置為通過(guò)以下方式選擇性地編碼數(shù)據(jù)值:` 至少部分地基于在該具體編碼數(shù)據(jù)值和被排隊(duì)以在該數(shù)據(jù)值之后傳送的至少一個(gè)數(shù)據(jù)值的可能的編碼值之間的位轉(zhuǎn)變的數(shù)量以及在該具體編碼數(shù)據(jù)值和先前傳送的編碼數(shù)據(jù)值之間的位轉(zhuǎn)變的數(shù)量,將每個(gè)數(shù)據(jù)值編碼為與該數(shù)據(jù)值相關(guān)聯(lián)的一組可能的編碼數(shù)據(jù)值中的具體編碼數(shù)據(jù)值。
15.如權(quán)利要求10的電路結(jié)構(gòu),其中數(shù)據(jù)值包括8位,并且所述編碼邏輯配置為通過(guò)以下方式選擇性地編碼數(shù)據(jù)值: 將每個(gè)8位數(shù)據(jù)值編碼為10位編碼數(shù)據(jù)值,其中每個(gè)8位數(shù)據(jù)值對(duì)應(yīng)于四個(gè)可能的10位編碼數(shù)據(jù)值。
16.如權(quán)利要求10的電路結(jié)構(gòu),其中所述編碼邏輯包括用于存儲(chǔ)先前傳送的編碼數(shù)據(jù)值的存儲(chǔ)器,以及其中所述編碼邏輯還配置為響應(yīng)于傳送編碼數(shù)據(jù)值,將每個(gè)編碼數(shù)據(jù)值存儲(chǔ)在該存儲(chǔ)器中。
17.如權(quán)利要求10的電路結(jié)構(gòu),還包括: 連接到通信總線的多個(gè)IP塊,其中所述編碼邏輯耦接到所所多個(gè)IP塊中的第一 IP塊,并且編碼數(shù)據(jù)值經(jīng)過(guò)通信總線傳送到第二 IP塊。
18.一種集成電路設(shè)備,包括權(quán)利要求10的電路結(jié)構(gòu)。
【文檔編號(hào)】H04L12/40GK103873331SQ201310612910
【公開(kāi)日】2014年6月18日 申請(qǐng)日期:2013年11月27日 優(yōu)先權(quán)日:2012年12月14日
【發(fā)明者】A.J.穆夫, P.E.沙特, R.A.希勒, M.R.塔布斯 申請(qǐng)人:國(guó)際商業(yè)機(jī)器公司