帶有基于內(nèi)部表決的內(nèi)置自測(cè)(bist)的多核心處理器的制造方法
【專利摘要】一種方法和電路安排,利用布置在多核心處理器集成電路器件或芯片上的掃描邏輯進(jìn)行芯片的基于內(nèi)部表決的內(nèi)置自測(cè)(BIST)。在芯片內(nèi)部生成測(cè)試模式,并將其傳送給芯片上的多個(gè)處理核心內(nèi)的掃描鏈。在芯片上相互比較掃描鏈輸出的測(cè)試結(jié)果,將多數(shù)表決用于識(shí)別指示故障處理核心的異常測(cè)試結(jié)果??梢詫⒐收蠝y(cè)試結(jié)果中的位位置用于識(shí)別掃描鏈中的故障鎖存器和/或故障處理核心中的故障功能單元,以及可以響應(yīng)該測(cè)試自動(dòng)禁用故障處理核心和/或故障功能單元。
【專利說(shuō)明】帶有基于內(nèi)部表決的內(nèi)置自測(cè)(BIST)的多核心處理器
【技術(shù)領(lǐng)域】
[0001]本發(fā)明一般涉及數(shù)據(jù)處理,尤其涉及處理器架構(gòu)和制造的處理器芯片的內(nèi)置自測(cè)(BIST)。
【背景技術(shù)】
[0002]隨著半導(dǎo)體技術(shù)在時(shí)鐘速度的增加方面繼續(xù)緩慢地越來(lái)越接近實(shí)際極限,架構(gòu)師們?cè)絹?lái)越多地把注意力放在處理器架構(gòu)的并行技術(shù)上來(lái)實(shí)現(xiàn)性能提高。在集成電路器件,或芯片級(jí)上,往往將多個(gè)處理器核心布置在同一芯片上,以與獨(dú)立處理器芯片,或在某種程度上,與完全獨(dú)立計(jì)算機(jī)幾乎相同的方式起作用。另外,甚至在核心內(nèi),通過(guò)使用專門管理某些類型的操作的多個(gè)執(zhí)行單元來(lái)采用并行技術(shù)。在許多情況下也采用流水線技術(shù),以便將可能花費(fèi)多個(gè)時(shí)鐘周期來(lái)執(zhí)行的某些操作分解成幾個(gè)階段,使其它操作能夠在較早的操作完成之前開(kāi)始。還采用多線程技術(shù)使多個(gè)指令流能夠并行地得到處理,使得在任何給定時(shí)鐘周期中能夠執(zhí)行更綜合工作。
[0003]但是,處理器芯片的復(fù)雜性增加的一個(gè)后果是所制造芯片的測(cè)試明顯變得更復(fù)雜和耗時(shí)。早期集成電路器件往往具有足夠的輸入/輸出引腳使器件的所有相關(guān)內(nèi)部操作都可以得到監(jiān)視,以保證該器件以其預(yù)定方式運(yùn)行。但是,隨著當(dāng)前設(shè)計(jì)加入數(shù)百萬(wàn)甚至數(shù)十億個(gè)晶體管和許多附加高級(jí)功能,提供足夠的輸入/輸出連接以實(shí)現(xiàn)器件運(yùn)行的直接監(jiān)視是不切實(shí)際的。
[0004]為了解決這些局限性,許多集成電路器件現(xiàn)在將邊界掃描架構(gòu)加入器件的邏輯電路中,以提供對(duì)器件的許多內(nèi)部電路的訪問(wèn)。借助于邊界掃描架構(gòu),將鎖存器的一條或多條串行掃描鏈或掃描路徑與器件的外部端口耦合,以及在設(shè)計(jì)的關(guān)鍵點(diǎn)上將各個(gè)鎖存器嵌入器件的邏輯電路中。鎖存器當(dāng)未具體配置成起掃描鏈的作用時(shí),不會(huì)另外變更器件的功能。但是,當(dāng)以特定模式配置鎖存器時(shí),鎖存器一起起移位寄存器的作用,使得可以將數(shù)據(jù)從單個(gè)源移動(dòng)到鎖存器的鏈中來(lái)模擬不同條件,以及使得可以通過(guò)單次輸出移出在器件內(nèi)生成的數(shù)據(jù)。因此,借助于邊界掃描架構(gòu),可以經(jīng)由外部裝備記錄以及以后訪問(wèn)器件中的各種電路在任何給定時(shí)間的當(dāng)前狀態(tài),以核實(shí)所制造器件的運(yùn)行。
[0005]但是,需要利用外部裝備進(jìn)行集成電路器件的測(cè)試可能成為沉重負(fù)擔(dān),尤其對(duì)于大容量零件。由于外部測(cè)試接口的相對(duì)較低速度,往往必須在進(jìn)行可能花費(fèi)幾分鐘進(jìn)行的全面測(cè)試與以較少時(shí)間進(jìn)行更表面測(cè)試和存在將故障零件誤識(shí)別成好零件的風(fēng)險(xiǎn)之間作出權(quán)衡。而且,需要利用外部裝備往往妨礙在現(xiàn)場(chǎng)重新測(cè)試芯片來(lái)確定是否出現(xiàn)了新故障。
[0006]因此,在本領(lǐng)域中一直相當(dāng)需要有效地和成本劃算地測(cè)試像處理器芯片等那樣的集成電路器件的方式。
【發(fā)明內(nèi)容】
[0007]本發(fā)明通過(guò)提供利用布置在多核心處理器集成電路器件或芯片上的掃描邏輯進(jìn)行芯片的基于內(nèi)部表決內(nèi)置自測(cè)(BIST)的方法和電路安排來(lái)解決與現(xiàn)有技術(shù)相關(guān)的這些和其它問(wèn)題。在芯片內(nèi)部生成測(cè)試模式并將其傳送給芯片上的多個(gè)處理核心內(nèi)的掃描鏈。在芯片上相互比較掃描鏈輸出的測(cè)試結(jié)果,將多數(shù)表決用于識(shí)別指示故障處理核心的異常測(cè)試結(jié)果。在一些實(shí)施例中,將故障測(cè)試結(jié)果中的位位置用于識(shí)別掃描鏈中的故障鎖存器和/或故障處理核心中的故障功能單元,以及在一些實(shí)施例中,可以響應(yīng)該測(cè)試自動(dòng)禁用故障處理核心和/或故障功能單元。
[0008]依照本發(fā)明的一個(gè)方面,對(duì)包括多個(gè)處理核心那種類型的多核心集成電路器件進(jìn)行內(nèi)置自測(cè)(BIST),其中每個(gè)處理核心包括一條掃描鏈。布置在多核心處理器集成電路器件上的掃描邏輯將測(cè)試模式傳送給多個(gè)處理核心內(nèi)的掃描鏈,并使用該掃描邏輯響應(yīng)該測(cè)試模式比較多個(gè)處理核心的掃描鏈輸出的測(cè)試結(jié)果。然后根據(jù)與多個(gè)處理核心輸出的多數(shù)測(cè)試結(jié)果不同的故障處理核心的掃描鏈輸出的測(cè)試結(jié)果識(shí)別多個(gè)處理核心當(dāng)中的故障處理核心。
[0009]表征本發(fā)明的這些和其它優(yōu)點(diǎn)和特征展示在所附的和形成其進(jìn)一步部分的權(quán)利要求書中。但是,為了更好地理解本發(fā)明,以及通過(guò)其使用達(dá)到的優(yōu)點(diǎn)和目的,應(yīng)該參考附圖以及描述本發(fā)明的示范性實(shí)施例的伴隨描述性內(nèi)容。
【專利附圖】
【附圖說(shuō)明】
[0010]圖1是包括可用在依照本發(fā)明的實(shí)施例的數(shù)據(jù)處理中的示范性計(jì)算機(jī)的示范性自動(dòng)化計(jì)算總機(jī)的框圖;
[0011]圖2是在圖1的計(jì)算機(jī)中實(shí)現(xiàn)的示范性NOC的框圖;
[0012]圖3是更詳細(xì)地圖示來(lái)自圖2的NOC的節(jié)點(diǎn)的示范性實(shí)現(xiàn)的框圖;
[0013]圖4是圖示來(lái)自圖2的NOC的IP塊的示范性實(shí)現(xiàn)的框圖;
[0014]圖5是并入依照本發(fā)明的基于內(nèi)部表決的BIST示范性多核心處理器芯片的框圖;
[0015]圖6是在圖5中引用的掃描引擎的示范性實(shí)現(xiàn)的框圖;
[0016]圖7是在圖5中引用的處理核心的示范性實(shí)現(xiàn)的框圖;以及
[0017]圖8是當(dāng)進(jìn)行依照本發(fā)明的基于內(nèi)部表決的BIST時(shí)圖5的多核心處理器芯片進(jìn)行的操作的示范性序列的流程圖。
【具體實(shí)施方式】
[0018]依照本發(fā)明的實(shí)施例利用布置在多核心處理器集成電路器件或芯片上的掃描邏輯進(jìn)行芯片的基于內(nèi)部表決內(nèi)置自測(cè)(BIST)。在芯片上內(nèi)部生成測(cè)試模式并將傳送給芯片上的多個(gè)處理核心內(nèi)的掃描鏈。在芯片上相互比較掃描鏈輸出的測(cè)試結(jié)果,將多數(shù)表決用于識(shí)別指示故障處理核心的異常測(cè)試結(jié)果。
[0019]依照本發(fā)明的多核心處理器集成電路器件或芯片包括作為相互的功能復(fù)制品的多個(gè)處理核心,以便響應(yīng)將相同輸入輸入處理核心的掃描鏈中,以及對(duì)處理核心計(jì)時(shí)相同數(shù)量的時(shí)鐘周期,使處理核心的掃描鏈輸出的測(cè)試結(jié)果在任何處理核心中在沒(méi)有故障的情況下都相同。處理核心通常包括多個(gè)功能單元,包括例如發(fā)出單元、定點(diǎn)執(zhí)行單元、浮點(diǎn)執(zhí)行單元或其它輔助執(zhí)行單元或加速器、像LI和/L2高速緩存那樣一個(gè)或多個(gè)級(jí)別的板上高速緩存等,但要懂得的是,布置在處理核心內(nèi)和能夠經(jīng)由BIST測(cè)試的幾乎任何電路邏輯都可以被認(rèn)為是用于本發(fā)明目的的功能單元。
[0020]處理核心還包括一條或多條掃描鏈,其通常但未必被實(shí)現(xiàn)成串聯(lián)的多個(gè)鎖存器,以便可以每個(gè)時(shí)鐘周期一位地逐位將數(shù)據(jù)掃入掃描鏈中和從掃描鏈中掃出數(shù)據(jù)。就本發(fā)明而言,掃描鏈可以包括任何數(shù)量的鎖存器,其被分組成任何數(shù)量的子集或群體,分布在任何數(shù)量的功能單元上,以及包括接收測(cè)試模式的輸入端和輸出從這樣的測(cè)試模式中生成的測(cè)試結(jié)果的輸出端。測(cè)試結(jié)果通常代表將測(cè)試模式掃描到掃描鏈中之后,在對(duì)處理核心或其至少一部分計(jì)時(shí)了一個(gè)或多個(gè)周期之后存儲(chǔ)在掃描鏈中的數(shù)據(jù)。
[0021]布置在多核心處理器芯片內(nèi)部的掃描邏輯被配置成生成測(cè)試模式,例如,如通過(guò)線性反饋移位寄存器(LFSR)或其它偽隨機(jī)邏輯生成的偽隨機(jī)測(cè)試模式??商娲兀瑨呙柽壿嬁梢?,例如,按預(yù)定順序生成預(yù)定測(cè)試模式。預(yù)定測(cè)試模式可以通過(guò)專用邏輯生成,存儲(chǔ)在易失性或非易失性存儲(chǔ)器陣列中,或在測(cè)試之前裝載到處理核心中。可能希望,例如,在設(shè)計(jì)過(guò)程中確定適當(dāng)全面地和有效地測(cè)試特定處理核心設(shè)計(jì)的測(cè)試模式的序列,然后將那些測(cè)試模式并入掃描邏輯的設(shè)計(jì)中。
[0022]該掃描邏輯最好還包括比較邏輯,其被配置成實(shí)現(xiàn)根據(jù)與正在測(cè)試的處理核心輸出的多數(shù)測(cè)試結(jié)果不同的那個(gè)處理核心的掃描鏈輸出的測(cè)試結(jié)果識(shí)別故障處理核心的表決算法。換句話說(shuō),將“正確”測(cè)試結(jié)果確定為多數(shù)處理核心返回的測(cè)試結(jié)果,因此可以將返回與多數(shù)一致意見(jiàn)不同的測(cè)試結(jié)果的任何處理核心識(shí)別為有故障的。
[0023]此外,該比較邏輯通常隨著處理核心的掃描鏈輸出測(cè)試結(jié)果數(shù)據(jù)動(dòng)態(tài)地工作,以便在實(shí)現(xiàn)串行掃描鏈的情況下,可以逐位比較掃描鏈的輸出。這樣,可以將輸出與多數(shù)處理核心的一致意見(jiàn)不同的位的任何處理核心識(shí)別為有故障的。而且,通過(guò)監(jiān)視測(cè)試結(jié)果中每個(gè)位的位置,可以識(shí)別從中獲得故障位的鎖存器,在處理核心中的鎖存器的地點(diǎn)已知,例如,經(jīng)由駐留在芯片上的映射表知道的實(shí)施例中,還可以識(shí)別布置了鎖存器的功能單元。
[0024]在本發(fā)明的一些實(shí)施例中故障或出錯(cuò)功能單元的識(shí)別還可以用于自動(dòng)配置多核心處理器芯片。例如,在將電子熔絲用于有選擇地啟用或禁用處理核心或甚至處理核心中的各個(gè)功能單元的情況下,故障功能單元的識(shí)別可以被掃描邏輯用于,例如,通過(guò)燒斷電子熔絲自動(dòng)禁用功能單元或處理核心。
[0025]依照本發(fā)明的掃描邏輯可以進(jìn)行芯片上的所有處理核心輸出的測(cè)試結(jié)果的比較,或在替代例中,可以包括配置成并行地測(cè)試處理核心的子集或群體的多個(gè)實(shí)例。例如,可以將處理核心分組成少至三個(gè)處理核心的群體,以便將返回與該群體中的其它兩個(gè)處理核心不同的測(cè)試結(jié)果的處理核心識(shí)別為有故障的,提供掃描邏輯的足夠多實(shí)例以便充分測(cè)試芯片上的所有處理核心。還要懂得的是,可以將公用測(cè)試模式生成邏輯用于即使將掃描邏輯的不同實(shí)例用于比較處理核心的群體,也可以向所有處理核心輸出測(cè)試模式。而且,要懂得的是,在將多種類型的冗余群體的處理核心布置在相同芯片上的情況下,可以將不同測(cè)試模式用于測(cè)試不同群體的處理核心。
[0026]其它變種和修改例對(duì)于本領(lǐng)域的普通技術(shù)人員來(lái)說(shuō)是顯而易見(jiàn)的,因此,本發(fā)明不局限于本文討論的特定實(shí)現(xiàn)。
[0027]硬件和軟件環(huán)塏
[0028]現(xiàn)在轉(zhuǎn)到附圖,其中相同標(biāo)號(hào)在幾個(gè)視圖中自始至終表示相同零件,圖1圖示了包括可用在依照本發(fā)明的實(shí)施例的數(shù)據(jù)處理中的示范性計(jì)算機(jī)10的示范性自動(dòng)化計(jì)算總機(jī)。圖1的計(jì)算機(jī)10包括至少一個(gè)計(jì)算機(jī)處理器12或“CPU”,以及隨機(jī)訪問(wèn)存儲(chǔ)器14(“RAM”),該RAM14通過(guò)高速存儲(chǔ)器總線16和總線適配器18與處理器12連接以及與計(jì)算機(jī)10的其它組件連接。
[0029]存儲(chǔ)在RAM14中的是應(yīng)用程序20,即,執(zhí)行像,例如,文字處理、電子表格、數(shù)據(jù)庫(kù)操作、視頻游戲、股市模擬、原子量子過(guò)程模擬、或其它用戶級(jí)應(yīng)用那樣的特定數(shù)據(jù)處理任務(wù)的用戶級(jí)計(jì)算機(jī)程序指令的模塊。存儲(chǔ)在RAM14中的還有操作系統(tǒng)22??山Y(jié)合本發(fā)明的實(shí)施例使用的操作系統(tǒng)包括UNIX?、Linux?、微軟Windows XP?、AIX?、IBM i5/0S?、和本領(lǐng)域的普通技術(shù)人員可想到的其它操作系統(tǒng)。圖1的例子中的操作系統(tǒng)22和應(yīng)用程序20被顯示在RAM14中,但這樣軟件的許多組件通常也存儲(chǔ)在非易失性存儲(chǔ)器中,例如,在盤驅(qū)動(dòng)器24上。
[0030]如下面更明顯看到的那樣,依照本發(fā)明的實(shí)施例可以在片上網(wǎng)絡(luò)(NOC)集成電路器件或芯片內(nèi)實(shí)現(xiàn),這樣,計(jì)算機(jī)10被圖示成包括兩個(gè)示范性NOC:視頻適配器26和協(xié)處理器28。NOC視頻適配器26可替代地可以稱為圖形適配器,是專門為圖形輸出到像顯示屏或計(jì)算機(jī)監(jiān)視器那樣的顯示設(shè)備30而計(jì)算的I/O適配器的例子。NOC視頻適配器26通過(guò)高速視頻總線32、總線適配器18、和也是高速總線的前端總線34與處理器12連接。NOC協(xié)處理器28通過(guò)總線適配器18、和也是高速總線的前端總線34和36與處理器12連接。圖1的NOC協(xié)處理器可以優(yōu)化成,例如,在主處理器12的命令下加速特定數(shù)據(jù)處理任務(wù)。
[0031 ] 圖1的示范性NOC視頻適配器26和NOC協(xié)處理器28每一個(gè)都包括N0C,該NOC包括集成處理器(“IP”)塊、路由器、存儲(chǔ)器通信控制器、和網(wǎng)絡(luò)接口控制器,它們的細(xì)節(jié)將在下面結(jié)合圖2-3作更詳細(xì)討論。NOC視頻適配器和NOC協(xié)處理器每一個(gè)都最適用于使用并行處理以及需要快速隨機(jī)訪問(wèn)共享存儲(chǔ)器的程序。但是,從本公開(kāi)中受益的本領(lǐng)域的普通技術(shù)人員應(yīng)該懂得,本發(fā)明可以在除了 NOC設(shè)備和設(shè)備架構(gòu)之外的其它設(shè)備和設(shè)備架構(gòu)中實(shí)現(xiàn)。因此本發(fā)明不局限于在NOC設(shè)備內(nèi)的實(shí)現(xiàn)。
[0032]圖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ǔ)設(shè)備與計(jì)算機(jī)10連接,可以使用,例如,集成驅(qū)動(dòng)電子設(shè)備(“IDE”)適配器、小型計(jì)算機(jī)系統(tǒng)接口( “SCSI”)適配器、和本領(lǐng)域的普通技術(shù)人員可想到的其它適配器來(lái)實(shí)現(xiàn)。如本領(lǐng)域的普通技術(shù)人員所想到,非易失性計(jì)算機(jī)存儲(chǔ)器也可以實(shí)現(xiàn)成光盤驅(qū)動(dòng)器、電可擦除可編程只讀存儲(chǔ)器(所謂的“EEPR0M”或“閃速”存儲(chǔ)器)、RAM驅(qū)動(dòng)器等。
[0033]計(jì)算機(jī)10還包括一個(gè)或多個(gè)輸入/輸出(“I/O”)適配器42,它通過(guò),例如,軟件驅(qū)動(dòng)器和計(jì)算機(jī)硬件實(shí)現(xiàn)面向用戶的輸入/輸出,以便控制到像計(jì)算機(jī)顯示屏那樣的顯示設(shè)備的輸出,以及從像鍵盤和鼠標(biāo)那樣的用戶輸入設(shè)備44的用戶輸入。另外,計(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ù)通信網(wǎng)絡(luò),和以本領(lǐng)域的普通技術(shù)人員可想到的其它方式串行地進(jìn)行。通信適配器實(shí)現(xiàn)一臺(tái)計(jì)算機(jī)直接或通過(guò)數(shù)據(jù)通信網(wǎng)絡(luò)將通信數(shù)據(jù)發(fā)送給另一臺(tái)計(jì)算機(jī)的硬件級(jí)數(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。[0034]為了進(jìn)一步說(shuō)明起見(jiàn),圖2展示了按照本發(fā)明實(shí)施例的示范性N0C102的功能框圖。圖2中的NOC是在“芯片”100上,S卩,在集成電路上實(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ǔ)器通信控制器106控制IP塊與存儲(chǔ)器之間的通信,以及每個(gè)網(wǎng)絡(luò)接口控制器108通過(guò)路由器110控制IP塊間通信。
[0035]在N0C102中,每個(gè)IP塊代表作為積木用于NOC內(nèi)的數(shù)據(jù)處理的同步或異步邏輯設(shè)計(jì)的可重用單元。術(shù)語(yǔ)“IP塊”有時(shí)被全寫成“知識(shí)產(chǎn)權(quán)塊”,其有效地將IP塊指定為一方所有的設(shè)計(jì),即,一方授權(quán)給半導(dǎo)體電路的其他用戶或設(shè)計(jì)者的知識(shí)產(chǎn)權(quán)。但是,在本發(fā)明的范圍內(nèi),未要求IP塊受任何特定所有權(quán)支配,因此在本說(shuō)明書中該術(shù)語(yǔ)總是被全寫成“集成處理器塊”。如這里所規(guī)定,IP塊是可能是或可能不是知識(shí)產(chǎn)權(quán)的主體的邏輯、單元、或芯片布局設(shè)計(jì)的可重用單元。IP塊是可以形成ASIC芯片設(shè)計(jì)或FPGA邏輯設(shè)計(jì)的邏輯核心。
[0036]通過(guò)類比描述IP塊的一種方式是IP塊對(duì)于NOC設(shè)計(jì)如同庫(kù)對(duì)于計(jì)算機(jī)編程或分立集成電路組件對(duì)于印刷電路板設(shè)計(jì)。在依照本發(fā)明實(shí)施例的NOC中,IP塊可以實(shí)現(xiàn)成通用門級(jí)網(wǎng)表,實(shí)現(xiàn)成完全專用或通用微處理器,或以本領(lǐng)域的普通技術(shù)人員可想到的其它方式實(shí)現(xiàn)。網(wǎng)表類似于高級(jí)程序應(yīng)用的匯編-代碼列表,是IP塊邏輯功能的布爾代數(shù)表示(門、標(biāo)準(zhǔn)單元)。NOC也可以,例如,以用像Verilog或VHDL那樣的硬件描述語(yǔ)言描述的可合成形式實(shí)現(xiàn)。除了網(wǎng)表和可合成實(shí)現(xiàn)之外,NOC也可以用較低級(jí)物理描述實(shí)現(xiàn)。諸如SERDES、PLL、DAC、ADC等的類似IP塊元件可以以像⑶SII那樣的晶體管布局格式分布。IP塊的數(shù)字元件有時(shí)也以布局格式提供。還要懂得,IP塊以及依照本發(fā)明實(shí)現(xiàn)的其它邏輯電路可以以在各種細(xì)節(jié)水平上定義實(shí)現(xiàn)這樣邏輯的電路安排的功能和/或布局的計(jì)算機(jī)數(shù)據(jù)文件,例如,邏輯定義程序代碼的形式分發(fā),因此,雖然已經(jīng)和在下文中將在在全功能集成電路設(shè)備、利用這樣設(shè)備的數(shù)據(jù)處理系統(tǒng)、和其它有形、物理硬件電路中實(shí)現(xiàn)的電路安排的背景下對(duì)本發(fā)明加以描述,但從本公開(kāi)中受益的本領(lǐng)域的普通技術(shù)人員應(yīng)該懂得,本發(fā)明也可以在程序產(chǎn)品內(nèi)實(shí)現(xiàn),以及與用于分發(fā)程序產(chǎn)品的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)的特定類型無(wú)關(guān)地同等應(yīng)用本發(fā)明。計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)的例子包括,但不限于,諸如易失性和非易失性存儲(chǔ)器件、軟盤、硬盤驅(qū)動(dòng)器、CD-ROM、和DVD (等等)的可記錄型介質(zhì)。
[0037]圖2的例子中的每個(gè)IP塊104通過(guò)存儲(chǔ)器通信控制器106適用于路由器110。每個(gè)存儲(chǔ)器通信控制器是適合于在IP塊與存儲(chǔ)器之間提供數(shù)據(jù)通信的同步和異步邏輯電路的總成。IP塊與存儲(chǔ)器之間的這樣通信的例子包括存儲(chǔ)器裝載指令和存儲(chǔ)器存儲(chǔ)指令。存儲(chǔ)器通信控制器106將在下面參考圖3作更詳細(xì)描述。每個(gè)IP塊104也通過(guò)網(wǎng)絡(luò)接口控制器108適用于路由器110,網(wǎng)絡(luò)接口控制器108控制IP塊104之間通過(guò)路由器110的通信。IP塊104之間的通信的例子包括并行應(yīng)用中和流水線應(yīng)用中在IP塊之間傳送數(shù)據(jù)的消息和處理數(shù)據(jù)的指令。網(wǎng)絡(luò)接口控制器108也將在下面參考圖3作更詳細(xì)描述。
[0038]路由器110以及其間的相應(yīng)鏈路118實(shí)現(xiàn)NOC的網(wǎng)絡(luò)操作。鏈路118可以是在連接所有路由器的物理、并行導(dǎo)線總線上實(shí)現(xiàn)的分組結(jié)構(gòu)。也就是說(shuō),每條鏈路可以在寬到足以同時(shí)容納包括所有首標(biāo)信息和有效負(fù)載數(shù)據(jù)的整個(gè)數(shù)據(jù)交換分組的導(dǎo)線總線上實(shí)現(xiàn)。如果分組結(jié)構(gòu)包括,例如,64個(gè)字節(jié),其中包括8個(gè)字節(jié)首標(biāo)和56個(gè)字節(jié)的有效負(fù)載數(shù)據(jù),則對(duì)應(yīng)每條鏈路的導(dǎo)線總線是64個(gè)字節(jié)寬的512條導(dǎo)線。另外,每條鏈路可以是雙向的,使得如果鏈路分組結(jié)構(gòu)包括64個(gè)字節(jié),則導(dǎo)線總線實(shí)際上包含每個(gè)路由器與網(wǎng)絡(luò)中其每個(gè)鄰居之間的1024條導(dǎo)線。在這樣的實(shí)現(xiàn)中,消息可以包括不止一個(gè)分組,但每個(gè)分組精確地與導(dǎo)線總線的寬度一致。在替代例中,可以在只寬到足以容納分組的一部分的導(dǎo)線總線上實(shí)現(xiàn)鏈路,以便可以將分組分解成多個(gè)節(jié)拍,例如,以便如果一條鏈路被實(shí)現(xiàn)成16個(gè)字節(jié)寬,或128條導(dǎo)線,則可以將64個(gè)字節(jié)分解成四個(gè)節(jié)拍。要懂得的是,不同實(shí)現(xiàn)可以根據(jù)實(shí)際物理限制以及所希望運(yùn)行特性使用不同總線寬度。如果路由器與導(dǎo)線總線的每個(gè)部分之間的連接被稱為端口,則每個(gè)路由器包括五個(gè)端口,網(wǎng)絡(luò)上數(shù)據(jù)傳輸?shù)乃膫€(gè)方向的每一個(gè)各一個(gè),第五個(gè)端口使路由器通過(guò)存儲(chǔ)器通信控制器和網(wǎng)絡(luò)接口控制器適用于IP塊。
[0039]每個(gè)存儲(chǔ)器通信控制器106控制IP塊與存儲(chǔ)器之間的通信。存儲(chǔ)器可以包括片外主RAMl 12、通過(guò)存儲(chǔ)器通信控制器106直接與IP塊連接的存儲(chǔ)器114、實(shí)現(xiàn)成IP塊116的片上存儲(chǔ)器、和片上高速緩存。在N0C102中,例如,片上存儲(chǔ)器114,116的任一個(gè)都可以實(shí)現(xiàn)成片上高速緩沖存儲(chǔ)器。所有這些形式的存儲(chǔ)器都可以布置在相同地址空間、物理地址或虛擬地址中,甚至對(duì)于直接附在IP塊上的存儲(chǔ)器也是如此。因此存儲(chǔ)器尋址消息相對(duì)于IP塊可以是完全雙向的,因?yàn)檫@樣的存儲(chǔ)器可以從網(wǎng)絡(luò)上的任何地方的任何IP塊直接尋址。IP塊上的存儲(chǔ)器116可以從那個(gè)IP塊或從NOC中的任何其它IP塊尋址。直接附在存儲(chǔ)器通信控制器上的存儲(chǔ)器114可以由通過(guò)那個(gè)存儲(chǔ)器通信控制器適用于網(wǎng)絡(luò)的IP塊尋址一也可以從NOC中的任何地方的任何其它IP塊尋址。
[0040]N0C102包括兩個(gè)存儲(chǔ)器管理單元(“MMU”) 120,122,其為依照本發(fā)明實(shí)施例的NOC圖示了兩種可替代存儲(chǔ)器架構(gòu)。MMU120在IP塊內(nèi)實(shí)現(xiàn),使IP塊內(nèi)的處理器可以在虛擬存儲(chǔ)器中操作,同時(shí)使NOC的整個(gè)其余架構(gòu)可以在物理存儲(chǔ)器地址空間中操作。MMU122是片外實(shí)現(xiàn)的,通過(guò)數(shù)據(jù)通信端口 124與NOC連接。端口 124包括引腳和在NOC與MMU之間傳導(dǎo)信號(hào)所需的其它互連線,以及將消息分組從NOC分組格式轉(zhuǎn)換成外部MMU122所需的總線格式的足夠智慧。MMU的外部地點(diǎn)意味著NOC的所有IP塊中的所有處理器可以在虛擬存儲(chǔ)器地址空間中操作,到片外存儲(chǔ)器的物理地址的所有轉(zhuǎn)換由片外MMU122管理。
[0041]除了使用MMU120,122圖示的兩種存儲(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塊利用物理地址空間。在雙向共享地址空間時(shí),NOC的所有IP塊可以通過(guò)由直接與端口 126連接的IP塊引導(dǎo)、包括裝載和存儲(chǔ)的存儲(chǔ)器尋址消息在地址空間中訪問(wèn)存儲(chǔ)器。端口 126包括引腳和在NOC與片外存儲(chǔ)器112之間傳導(dǎo)信號(hào)所需的其它互連線,以及將消息分組從NOC分組格式轉(zhuǎn)換成外部片外存儲(chǔ)器112所需的總線格式的足夠智慧。
[0042]在圖2的例子中,將IP塊之一指定成主接口處理器128。主接口處理器128提供NOC與可以安裝NOC的主計(jì)算機(jī)10之間的接口,并且還對(duì)NOC上的其它IP塊提供數(shù)據(jù)處理服務(wù),包括,例如,從主計(jì)算機(jī)接收和在IP塊之間分派NOC數(shù)據(jù)處理請(qǐng)求。NOC可以,例如,如上面參考圖1所述將視頻圖形適配器26或協(xié)處理器28實(shí)現(xiàn)在較大型計(jì)算機(jī)10上。在圖2的例子中,主接口處理器128通過(guò)數(shù)據(jù)通信端口 130與較大型主計(jì)算機(jī)連接。端口 130包括引腳和在NOC與主計(jì)算機(jī)10之間傳導(dǎo)信號(hào)所需的其它互連線,以及將消息分組從NOC分組格式轉(zhuǎn)換成主計(jì)算機(jī)10所需的總線格式的足夠智慧。在圖1中的計(jì)算機(jī)中的NOC協(xié)處理器的例子中,這樣的端口將提供NOC協(xié)處理器28的鏈路結(jié)構(gòu)與NOC協(xié)處理器28與總線適配器18之間的前端總線36所需的協(xié)議之間的數(shù)據(jù)通信格式轉(zhuǎn)換。
[0043]圖3接著圖示了更詳細(xì)地圖示在用132籠統(tǒng)圖示的N0C102中的IP塊104、存儲(chǔ)器通信控制器106、網(wǎng)絡(luò)接口控制器108和路由器110內(nèi)實(shí)現(xiàn)的組件的的功能框圖。IP塊104包括計(jì)算機(jī)處理器134和I/O功能136。在這個(gè)例子中,計(jì)算機(jī)存儲(chǔ)器用IP塊104中的一片隨機(jī)訪問(wèn)存儲(chǔ)器(“RAM”)138表示。存儲(chǔ)器如上面參考圖2所述,可以占據(jù)每個(gè)IP塊上的內(nèi)容可從NOC中的任何IP塊訪問(wèn)的幾段物理地址空間。每個(gè)IP塊中的處理器134、I/O能力136、和存儲(chǔ)器138有效地將IP塊實(shí)現(xiàn)成一般可編程微型計(jì)算機(jī)。但是,如上所述,在本發(fā)明的范圍內(nèi),IP塊一般代表作為積木用于NOC內(nèi)的數(shù)據(jù)處理的同步或異步邏輯的可重用單元。因此,將IP塊實(shí)現(xiàn)成一般可編程微型計(jì)算機(jī)盡管是可用于說(shuō)明目的的普通實(shí)施例,但不限制本發(fā)明。
[0044]在圖3的N0C102中,每個(gè)存儲(chǔ)器通信控制器106包括多個(gè)存儲(chǔ)器通信執(zhí)行引擎140。使每個(gè)存儲(chǔ)器通信執(zhí)行引擎140都能夠執(zhí)行來(lái)自IP塊104的存儲(chǔ)通信指令,包括網(wǎng)絡(luò)與IP塊104之間的雙向存儲(chǔ)器通信指令流141,142,144。存儲(chǔ)器通信控制器106執(zhí)行的存儲(chǔ)器通信指令不僅可以源自通過(guò)特定存儲(chǔ)器通信控制器適合于路由器的IP塊,而且可以源自N0C102中的任何地方的任何IP塊104。也就是說(shuō),NOC中的任何IP塊都可以生成存儲(chǔ)器通信指令,并通過(guò)NOC的路由器將那種存儲(chǔ)器通信指令發(fā)送給與另一個(gè)IP塊相關(guān)聯(lián)的另一個(gè)存儲(chǔ)器通信控制器以便執(zhí)行那種存儲(chǔ)器通信指令。這樣的存儲(chǔ)器通信指令可以包括,例如,轉(zhuǎn)換后備緩沖器控制指令、高速緩存控制指令、屏障指令、和存儲(chǔ)器裝載和存儲(chǔ)指令。
[0045]使每個(gè)存儲(chǔ)器通信執(zhí)行引擎140能夠分開(kāi)地和與其它存儲(chǔ)器通信執(zhí)行引擎并行地執(zhí)行完整存儲(chǔ)器通信指令。存儲(chǔ)器通信執(zhí)行引擎實(shí)現(xiàn)為存儲(chǔ)器通信指令的并發(fā)吞吐量?jī)?yōu)化的可增減存儲(chǔ)器事務(wù)處理器。存儲(chǔ)器通信控制器106支持所有都同時(shí)運(yùn)行的多個(gè)存儲(chǔ)器通信執(zhí)行引擎140以便同時(shí)執(zhí)行多條存儲(chǔ)器通信指令。新存儲(chǔ)器通信指令由存儲(chǔ)器通信控制器106分配給存儲(chǔ)器通信執(zhí)行引擎140,存儲(chǔ)器通信執(zhí)行引擎140可以同時(shí)接受多個(gè)響應(yīng)事件。在這個(gè)例子中,所有存儲(chǔ)器通信執(zhí)行引擎140都是相同的。因此,增減存儲(chǔ)器通信控制器106可以同時(shí)管理的存儲(chǔ)器通信指令的數(shù)量通過(guò)增減存儲(chǔ)器通信執(zhí)行引擎140的數(shù)量來(lái)實(shí)現(xiàn)。
[0046]在圖3的N0C102中,使每個(gè)網(wǎng)絡(luò)接口控制器108能夠?qū)⑼ㄐ胖噶顝拿罡袷睫D(zhuǎn)換成通過(guò)路由器110在IP塊104之間傳輸?shù)木W(wǎng)絡(luò)分組格式。通信指令可以由IP塊104或由存儲(chǔ)器通信控制器106以命令格式明確表達(dá),并以命令格式提供給網(wǎng)絡(luò)接口控制器108。該命令格式可以是與IP塊104和存儲(chǔ)器通信控制器106的架構(gòu)寄存器堆相容的本機(jī)格式。網(wǎng)絡(luò)分組格式通常是通過(guò)網(wǎng)絡(luò)的路由110傳輸所需的格式。每個(gè)這樣的消息由一個(gè)或多個(gè)網(wǎng)絡(luò)分組組成。在網(wǎng)絡(luò)接口控制器中從命令格式轉(zhuǎn)換成分組格式的這樣通信指令的例子包括IP塊與存儲(chǔ)器之間的存儲(chǔ)器裝載指令和存儲(chǔ)器存儲(chǔ)指令。這樣的通信指令還可以包括在并行應(yīng)用中和在流水線應(yīng)用中在傳送數(shù)據(jù)的IP塊之間發(fā)送消息的通信指令和在IP塊之間處理數(shù)據(jù)的指令。
[0047]在圖3的N0C102中,使每個(gè)IP塊都能夠通過(guò)IP塊的存儲(chǔ)器通信控制器向和從存儲(chǔ)器發(fā)送基于存儲(chǔ)器地址的通信物,然后通過(guò)它的網(wǎng)絡(luò)接口控制器也發(fā)送給網(wǎng)絡(luò)。基于存儲(chǔ)器地址的通信物是由IP塊的存儲(chǔ)器通信控制器的存儲(chǔ)器通信執(zhí)行引擎執(zhí)行、像裝載指令或存儲(chǔ)指令那樣的存儲(chǔ)器訪問(wèn)指令。這樣基于存儲(chǔ)器地址的通信物通常源自IP塊,以命令格式明確表達(dá),并轉(zhuǎn)交給存儲(chǔ)器通信控制器加以執(zhí)行。
[0048]許多基于存儲(chǔ)器地址的通信物利用消息業(yè)務(wù)來(lái)進(jìn)行,因?yàn)橐L問(wèn)的某個(gè)存儲(chǔ)器可能處在物理存儲(chǔ)器地址空間中的某個(gè)地方,片上或片外,直接附在NOC中的某個(gè)存儲(chǔ)器通信控制器上,或最終通過(guò)NOC的某個(gè)IP塊訪問(wèn)一IP塊與該NOC無(wú)關(guān)地始發(fā)某個(gè)特定基于存儲(chǔ)器地址的通信物。因此,在N0C102中,將利用消息業(yè)務(wù)進(jìn)行的所有基于存儲(chǔ)器地址通信物從存儲(chǔ)器通信控制器傳遞到相關(guān)網(wǎng)絡(luò)接口控制器,以便從命令格式轉(zhuǎn)換成分組格式和在消息中通過(guò)網(wǎng)絡(luò)發(fā)送。在轉(zhuǎn)換成分組格式時(shí),網(wǎng)絡(luò)接口控制器還依賴于基于存儲(chǔ)器地址的通信物要訪問(wèn)的一個(gè)或幾個(gè)存儲(chǔ)器地址地識(shí)別分組的網(wǎng)絡(luò)地址。利用存儲(chǔ)器地址尋址基于存儲(chǔ)器地址的消息。每個(gè)存儲(chǔ)器地址由網(wǎng)絡(luò)接口控制器映射成網(wǎng)絡(luò)地址,通常,負(fù)責(zé)某個(gè)范圍物理存儲(chǔ)器地址的存儲(chǔ)器通信控制器的網(wǎng)絡(luò)地點(diǎn)。存儲(chǔ)器通信控制器106的網(wǎng)絡(luò)地點(diǎn)自然也是存儲(chǔ)器通信控制器的相關(guān)路由器110、網(wǎng)絡(luò)接口控制器108、IP塊104的網(wǎng)絡(luò)地點(diǎn)。每個(gè)網(wǎng)絡(luò)接口控制器內(nèi)的指令轉(zhuǎn)換邏輯150能夠?yàn)榱送ㄟ^(guò)NOC發(fā)送基于存儲(chǔ)器地址通信物的目的將存儲(chǔ)器地址轉(zhuǎn)換成網(wǎng)絡(luò)地址。
[0049]一旦從網(wǎng)絡(luò)的路由器110接收到消息業(yè)務(wù),每個(gè)網(wǎng)絡(luò)接口控制器108就檢查每個(gè)分組是否有存儲(chǔ)器指令。將包含存儲(chǔ)器指令的每個(gè)分組交給與正在接收網(wǎng)絡(luò)接口控制器相關(guān)聯(lián)的存儲(chǔ)器通信控制器106,存儲(chǔ)器通信控制器106在將分組的其余有效負(fù)載發(fā)送給IP塊作進(jìn)一步處理之前執(zhí)行存儲(chǔ)器指令。這樣,在IP塊開(kāi)始執(zhí)行依賴于特定存儲(chǔ)器內(nèi)容的來(lái)自消息的指令之前,總是準(zhǔn)備好存儲(chǔ)器內(nèi)容來(lái)支持IP塊的數(shù)據(jù)處理。
[0050]在圖3的N0C102中,使每個(gè)IP塊104能夠繞過(guò)它的存儲(chǔ)器通信控制器106,通過(guò)IP塊的網(wǎng)絡(luò)接口控制器直接將IP塊間的網(wǎng)絡(luò)尋址通信物146發(fā)送給網(wǎng)絡(luò)。網(wǎng)絡(luò)尋址通信物是通過(guò)網(wǎng)絡(luò)地址指向另一個(gè)IF塊的消息。如本領(lǐng)域的普通技術(shù)人員所想到,這樣的消息在流水線應(yīng)用中發(fā)送工作數(shù)據(jù),在SMD應(yīng)用中在IP塊之間發(fā)送用于單程序處理的多個(gè)數(shù)據(jù)等等。這樣的消息與基于存儲(chǔ)器地址通信物的不同之處在于它們一開(kāi)始就被始發(fā)IP塊網(wǎng)絡(luò)尋址的,該始發(fā)IP塊知道通過(guò)NOC的路由器將消息引向的網(wǎng)絡(luò)地址。這樣的網(wǎng)絡(luò)尋址通信物由IP塊通過(guò)I/O功能136以命令格式直接傳遞給IP塊的網(wǎng)絡(luò)接口控制器,然后由網(wǎng)絡(luò)接口控制器轉(zhuǎn)換成分組格式,并通過(guò)NOC的路由器發(fā)送給另一個(gè)IP塊。這樣的網(wǎng)絡(luò)尋址通信物146是雙向的,依賴于它們?cè)谀硞€(gè)特定應(yīng)用中的使用,潛在地轉(zhuǎn)給NOC的每個(gè)IP塊和從NOC的每個(gè)IP塊轉(zhuǎn)出。但是,使每個(gè)網(wǎng)絡(luò)接口控制器都能夠向和從相關(guān)路由器發(fā)送和接收這樣的通信物,以及使每個(gè)網(wǎng)絡(luò)接口控制器都能夠繞過(guò)相關(guān)存儲(chǔ)器通信控制器106地直接向和從相關(guān)IP塊發(fā)送和接收這樣的通信物。
[0051]還使圖3的例子中的每個(gè)網(wǎng)絡(luò)接口控制器108都能夠在網(wǎng)絡(luò)上實(shí)現(xiàn)通過(guò)類型表征網(wǎng)絡(luò)分組的虛擬通道。每個(gè)網(wǎng)絡(luò)接口控制器108包括按類型分類每條通信指令,以及在以分組形式將指令轉(zhuǎn)交給路由器110以便在NOC上發(fā)送之前將指令的類型記錄在網(wǎng)絡(luò)分組格式的字段中的虛擬通道實(shí)現(xiàn)邏輯148。通信指令類型的例子包括引向高速緩存的IP塊間基于網(wǎng)絡(luò)地址消息、請(qǐng)求消息、對(duì)請(qǐng)求消息的響應(yīng)、失效消息;存儲(chǔ)器裝載和存儲(chǔ)消息;以及對(duì)存儲(chǔ)器裝載消息的響應(yīng)等。
[0052]圖3的例子中的每個(gè)路由器110包括路由邏輯152、虛擬通道控制邏輯154、和虛擬通道緩沖器156。路由邏輯152通常被實(shí)現(xiàn)成為由路由器110、鏈路118、和路由器之間的總線導(dǎo)線形成的網(wǎng)絡(luò)中的數(shù)據(jù)通信實(shí)現(xiàn)數(shù)據(jù)通信協(xié)議棧的同步和異步邏輯的網(wǎng)絡(luò)。路由邏輯152包括本領(lǐng)域的普通技術(shù)人員可以將片外網(wǎng)絡(luò)與路由表相關(guān)聯(lián)的功能、在至少一些實(shí)施例中路由表被認(rèn)為太慢了,不方便用在NOC中。實(shí)現(xiàn)成同步和異步邏輯的網(wǎng)絡(luò)的路由邏輯可以配置成與單個(gè)時(shí)鐘周期一樣快地作出路由決定。本例中的路由邏輯通過(guò)為轉(zhuǎn)發(fā)在路由器中接收的每個(gè)分組選擇一個(gè)端口來(lái)傳送分組。每個(gè)分組包含分組要去往的網(wǎng)絡(luò)地址。
[0053]在上面描述基于存儲(chǔ)器地址通信物中,每個(gè)存儲(chǔ)器地址被描述成由網(wǎng)絡(luò)接口控制器映射到網(wǎng)絡(luò)地址,即,存儲(chǔ)器通信控制器的網(wǎng)絡(luò)地點(diǎn)。存儲(chǔ)器通信控制器106的網(wǎng)絡(luò)地點(diǎn)自然也是那個(gè)存儲(chǔ)器通信控制器的相關(guān)路由器110、網(wǎng)絡(luò)接口控制器108、和IP塊104的網(wǎng)絡(luò)地點(diǎn)。因此,在IP塊間,或基于網(wǎng)絡(luò)地址的通信物中,應(yīng)用級(jí)數(shù)據(jù)處理通常也將網(wǎng)絡(luò)地址視作由NOC的路由器、鏈路、和總線導(dǎo)線形成的網(wǎng)絡(luò)內(nèi)IP塊的地點(diǎn)。圖2圖示了這樣網(wǎng)絡(luò)的一種組織是行和列的網(wǎng)格,其中每個(gè)網(wǎng)絡(luò)地點(diǎn)可以實(shí)現(xiàn)成,例如,網(wǎng)格的每組相關(guān)路由器、IP塊、存儲(chǔ)器通信控制器、和網(wǎng)絡(luò)接口控制器的唯一標(biāo)識(shí)符或網(wǎng)格中每個(gè)這樣組的X,y坐標(biāo)。0000
[0054]在圖3的N0C102中,每個(gè)路由器110實(shí)現(xiàn)兩個(gè)或更多個(gè)虛擬通信通道,其中每個(gè)虛擬通信通道通過(guò)通信類型來(lái)表征。通信指令類型,因此虛擬通道類型包括上述的那些消息:引向高速緩存的IP塊間基于網(wǎng)絡(luò)地址消息、請(qǐng)求消息、對(duì)請(qǐng)求消息的響應(yīng)、失效消息;存儲(chǔ)器裝載和存儲(chǔ)消息;以及對(duì)存儲(chǔ)器裝載消息的響應(yīng)等。為了支持虛擬通道,圖3的例子中的每個(gè)路由器110還包括虛擬通道控制邏輯154和虛擬通道緩沖器156。虛擬通道控制邏輯154檢查每個(gè)接收的分組是否具有其指定的通信類型,并將每個(gè)分組放入那種通信類型的輸出虛擬通道緩沖器中,以便通過(guò)端口發(fā)送給NOC上的相鄰路由器。
[0055]每個(gè)虛擬通道緩沖器156具有有限存儲(chǔ)空間。當(dāng)在較短時(shí)段內(nèi)接收到許多分組時(shí),可以填滿虛擬通道緩沖器一使得再也不能將分組放入緩沖器中。在其它協(xié)議下,到達(dá)緩沖器充滿的虛擬通道的分組將被丟棄。但是,利用總線導(dǎo)線的控制信號(hào)使本例中的每個(gè)虛擬通道緩沖器156能夠通過(guò)虛擬通道控制邏輯勸告周圍路由器暫停在虛擬通道中的發(fā)送,即,暫停特定通信類型的分組的發(fā)送。當(dāng)如此暫停一個(gè)虛擬通道時(shí),所有其它虛擬通道不受影響一可以繼續(xù)滿負(fù)荷運(yùn)行??刂菩盘?hào)一直通過(guò)每個(gè)路由器有線傳回到每個(gè)路由器的相關(guān)網(wǎng)絡(luò)接口控制器108。每個(gè)網(wǎng)絡(luò)接口控制器被配置成一旦接收到這樣的信號(hào),就拒絕從它的相關(guān)存儲(chǔ)器通信控制器106或從它的相關(guān)IP塊104接收暫停虛擬通道的通信指令。這樣,虛擬通道的暫停影響一直回溯到始發(fā)IP塊、實(shí)現(xiàn)該虛擬通道的所有硬件。
[0056]暫停虛擬通道中的分組發(fā)送的一種效果是再也不會(huì)丟棄分組。當(dāng)路由器遇到在像,例如,互聯(lián)網(wǎng)協(xié)議那樣的一些不可靠協(xié)議中可能丟棄分組的狀況時(shí),圖3的例子中的路由器可以通過(guò)它們的虛擬通道緩沖器156和它們的虛擬通道控制邏輯154暫停虛擬通道中的所有分組發(fā)送,直到緩沖空間再次可用,從而沒(méi)有任何必要丟棄分組。因此,圖3的NOC可以利用極薄一層硬件來(lái)實(shí)現(xiàn)高度可靠的網(wǎng)絡(luò)通信協(xié)議。
[0057]圖3的示范性NOC還可以配置成保持片上和片外存儲(chǔ)器高速緩存兩者之間的高速緩存一致性。每個(gè)NOC可以支持每一個(gè)可以針對(duì)相同底層存儲(chǔ)器地址空間操作的多個(gè)高速緩存。例如,高速緩存可以由IP塊,由存儲(chǔ)器通信控制器,或由NOC外部的高速緩存控制器來(lái)控制。圖2的例子中的片上存儲(chǔ)器通信控制器114,116的任一個(gè)也可以實(shí)現(xiàn)成片上高速緩存,以及在本發(fā)明的范圍內(nèi),高速緩沖存儲(chǔ)器也可以片外實(shí)現(xiàn)。
[0058]圖示在圖3中的每個(gè)路由器110包括五個(gè)端口,即,通過(guò)總線導(dǎo)線118與其它路由器連接的四個(gè)端口 158A-D、和通過(guò)網(wǎng)絡(luò)接口控制器108和存儲(chǔ)器通信控制器106將每個(gè)路由器與它的相關(guān)IP塊104連接的第五端口 160??梢詮膱D2和3中的圖示中看出,N0C102的路由器110和鏈路118形成垂直和水平鏈路連接每個(gè)路由器中的垂直和水平端口的網(wǎng)狀網(wǎng)絡(luò)。在圖3的圖示中,例如,端口 158A,158B,和160被稱為垂直端口,端口 158B和158D被稱為水平端口。
[0059]圖4接著以另一種方式圖示了實(shí)現(xiàn)成劃分成發(fā)出或指令單元(IU) 162、執(zhí)行單元(XU) 164和輔助執(zhí)行單元(AXU) 166的處理單元、依照本發(fā)明的IP塊104的一種示范性實(shí)現(xiàn)。在圖示的實(shí)現(xiàn)中,IU162包括從LI指令高速緩存(iCHCHE) 170接收指令的多個(gè)指令緩沖器168。每個(gè)指令緩沖器168專用于多個(gè),例如,四個(gè)對(duì)稱多線程(SMT)硬件線程之一。有效到真實(shí)地址轉(zhuǎn)換單元(iERAT)172與iCHCHE170耦合,用于將來(lái)自多個(gè)線程取出定序器174的指令取出請(qǐng)求轉(zhuǎn)換成從較低級(jí)存儲(chǔ)器中檢索指令的真實(shí)地址。每個(gè)線程取出定序器174專用于特定硬件線程,用于保證相關(guān)線程要執(zhí)行的指令被取到iCHCHE中以便分派給合適執(zhí)行單元。也如圖4所示,取到指令緩沖器168中的指令也可以通過(guò)分支預(yù)測(cè)邏輯176監(jiān)視,分支預(yù)測(cè)邏輯176向每個(gè)線程取出定序器174提供提示,以便使執(zhí)行線程時(shí)分支引起的指令高速緩存丟失最少。
[0060]IU162還包括專用于每個(gè)硬件線程、和配置成解決依賴性問(wèn)題和控制指令從指令緩沖器168到XU164的發(fā)出的依賴性/發(fā)出邏輯塊178。另外,在圖示的實(shí)施例中,在AXU166中配備了單獨(dú)依賴性/發(fā)出邏輯180,因此能夠分開(kāi)不同線程同時(shí)發(fā)給XU164和AXU166的指令。在一個(gè)可替代實(shí)施例中,可以將邏輯180布置在IU162中,或可以完全省略邏輯180,以便使邏輯178將指令發(fā)給AXU166。
[0061]XU164被實(shí)現(xiàn)成定點(diǎn)執(zhí)行單元,包括與定點(diǎn)邏輯184、分支邏輯186和/裝載/存儲(chǔ)邏輯188耦合的一組通用寄存器(GPR) 182。裝載/存儲(chǔ)邏輯188與LI數(shù)據(jù)高速緩存(dCACHE) 190耦合,由dERAT邏輯192提供有效到真實(shí)地址轉(zhuǎn)換。XU164可以配置成實(shí)現(xiàn)幾乎任何指令集,例如,32b或64b PowerPC指令集的全部或一部分。
[0062]AXU166起包括專用依賴性/發(fā)出邏輯180以及一個(gè)或多個(gè)執(zhí)行塊192的輔助執(zhí)行單元的作用。AXU166可以包括任何數(shù)量的執(zhí)行塊,以及可以實(shí)現(xiàn)幾乎任何類型的執(zhí)行單元,例如,浮點(diǎn)單元、或像加密/解密單元、協(xié)處理器、矢量處理單元、圖形處理單元、XML處理單元等那樣的一個(gè)或多個(gè)專門執(zhí)行單元。在圖示的實(shí)施例中,AXU166包括與XU164的高速輔助接口,例如,以便支持AXU架構(gòu)狀態(tài)與XU架構(gòu)狀態(tài)之間的直接移動(dòng)。
[0063]與IP塊104的通信可以經(jīng)由與N0C102耦合的網(wǎng)絡(luò)接口控制器108,以上面結(jié)合圖2所討論的方式管理。例如,訪問(wèn)L2高速緩沖存儲(chǔ)器的基于地址通信可以與基于消息通信一起提供。例如,每個(gè)IP塊104可以包括專用輸入盒和/或輸出盒,以便管理IP塊之間的節(jié)點(diǎn)間通信。
[0064]本發(fā)明的實(shí)施例可以在上面結(jié)合圖1-4所述的硬件和軟件環(huán)境內(nèi)實(shí)現(xiàn)。但是,從本公開(kāi)中受益的本領(lǐng)域的普通技術(shù)人員應(yīng)該懂得,本發(fā)明可以在眾多不同環(huán)境中實(shí)現(xiàn),以及可以不偏離本發(fā)明的精神和范圍地對(duì)上述的硬件和軟件實(shí)施例作出其它修改。這樣,本發(fā)明不局限于本文公開(kāi)的特定硬件和軟件環(huán)境。[0065]基于內(nèi)部表決的BIST
[0066]在現(xiàn)代多核心處理器芯片和其它片上系統(tǒng)(SOC)上,通常存在相同處理核心的許多重復(fù)副本,預(yù)計(jì)重復(fù)副本的數(shù)量從數(shù)十個(gè)核心增加到數(shù)百個(gè)核心或更多。已經(jīng)發(fā)現(xiàn),可以平衡這種重復(fù)硬件以實(shí)現(xiàn)更快、更精確的硬件BIST。尤其,通過(guò)將相同初始值掃入多個(gè)核心中,計(jì)時(shí)核心,然后掃出數(shù)據(jù)并比較結(jié)果,可以將表決方案用于確定硬件是否壞了。只要至少使用三個(gè)核心,就可以識(shí)別具有出錯(cuò)特征的故障核心。而且,通過(guò)比較那些出錯(cuò)特征,可以確切地識(shí)別哪個(gè)鎖存器出錯(cuò)了,以及如果出錯(cuò)鎖存器被識(shí)別出帶有特定功能單元,則也可以識(shí)別那個(gè)出錯(cuò)功能單元,以及如果需要的話,可以自動(dòng)禁用該出錯(cuò)功能單元。
[0067]在依照本發(fā)明的實(shí)施例中,初始掃入核心中可以通過(guò)JTAG端口和使用板上自動(dòng)測(cè)試模式生成(ATPG)邏輯生成預(yù)定序列的測(cè)試模式來(lái)啟動(dòng)。可替代地,可以,例如,使用板上硬件線性反饋移位寄存器(LFSR)生成偽隨機(jī)測(cè)試模式。這樣的話,將測(cè)試與任何外部測(cè)試儀裝備分開(kāi),并且使測(cè)試能夠往往以比需要在測(cè)試儀與芯片之間傳送測(cè)試模式和/或測(cè)試結(jié)果所完成的測(cè)試快得多的速率,脫離昂貴測(cè)試儀地進(jìn)行。在一些實(shí)施例中,也可以在現(xiàn)場(chǎng),以及在芯片被制造和包裝之后進(jìn)行測(cè)試。
[0068]通過(guò)進(jìn)行這種水平的測(cè)試以及自動(dòng)確定出錯(cuò)鎖存器,往往可以識(shí)別核心出錯(cuò)的特定區(qū)域。而且,取決于出錯(cuò)地點(diǎn),通過(guò)避開(kāi)指令,禁用功能單元或功能單元的某些區(qū)域(例如,對(duì)于像板上高速緩存那樣的存儲(chǔ)器陣列),或使內(nèi)部鎖存器處理器可以圍繞出錯(cuò)邏輯組件工作,可以將出錯(cuò)核心配置成避開(kāi)那個(gè)邏輯。
[0069]此外,在一些實(shí)施例中,本文所述的BIST進(jìn)程可以并行地跨過(guò)設(shè)計(jì)中的核心的多個(gè)群體運(yùn)行。通過(guò)讓硬件輸出表決和比較,可以降低對(duì)預(yù)先硅測(cè)試模式生成和測(cè)試的依賴性,因?yàn)橥灰髶碛蓄A(yù)先計(jì)算的輸出測(cè)試模式。這也可能使更多的測(cè)試模式得以生成,或使測(cè)試模式可以動(dòng)態(tài)地改變,以改善對(duì)設(shè)計(jì)的特定部分的測(cè)試。
[0070]現(xiàn)在轉(zhuǎn)到圖5,數(shù)據(jù)處理系統(tǒng)被圖示成加入了包括多個(gè)處理核心202的多核心處理器芯片200。如本圖所圖示,一些處理核心可能被指定成用于特殊目的,例如,服務(wù)處理器204,而一些處理核心可以與冗余核心206 —樣未被使用或者是備用的。在本發(fā)明的一個(gè)實(shí)施例中,例如,可能希望在芯片200上制造18個(gè)處理核心,意圖是含有有效使用的16個(gè)功能核心和一個(gè)服務(wù)處理器,以及一個(gè)無(wú)效的備用核心。然后,在BIST期間,如果確定某個(gè)處理核心有故障,則可以使那個(gè)核心失效,激活該備用核心以便用作功能核心。此外,在確定某個(gè)處理核心局部故障的情況下,例如,確定浮點(diǎn)或其它輔助功能單元有故障,但該核心另外適合用作服務(wù)處理器的情況下,如果有必要,可以將那個(gè)局部故障核心用作服務(wù)處理器。要懂得的是,可以不偏離本發(fā)明的精神和范圍地實(shí)現(xiàn)不同數(shù)量的功能核心、備用核心、服務(wù)處理器等。
[0071]為了實(shí)現(xiàn)依照本發(fā)明的基于內(nèi)部表決的BIST,處理器芯片200包括掃描邏輯,其包括,例如,掃描引擎208、故障表202和一根或多根電子熔絲212。另外,可以使用,例如,使用聯(lián)合測(cè)試自動(dòng)化組(JTAG)標(biāo)準(zhǔn)實(shí)現(xiàn)的傳統(tǒng)測(cè)試端口 213向,例如,外部測(cè)試裝備提供對(duì)掃描邏輯的外部訪問(wèn)。
[0072]圖6圖示了掃描引擎208的一部分的一種示范性實(shí)現(xiàn)。在這種實(shí)現(xiàn)中,掃描引擎208被配置成以三個(gè)為一群測(cè)試處理核心202,這樣,在該圖中圖示了與三個(gè)處理核心202A,202B和202C的每一個(gè)中的掃描鏈214的輸入端和輸出端的連接。每條掃描鏈214通常包括可以分組在一起和另外可以分散在每個(gè)處理核心中的多個(gè)功能單元上的多個(gè)鎖存器。要懂得的是,對(duì)于包括三個(gè)處理核心的處理器芯片,圖6實(shí)現(xiàn)了對(duì)那個(gè)芯片進(jìn)行基于內(nèi)部表決BIST所需的所有比較邏輯。對(duì)于包括不止三個(gè)處理核心的處理器芯片,可以復(fù)制圖示在圖6中的掃描引擎208的至少一部分以管理三個(gè)處理核心的其它群體。在替代例中,可以比較不止三個(gè)處理核心的測(cè)試結(jié)果,以識(shí)別故障處理核心和其中的鎖存器。
[0073]此外,在這種實(shí)現(xiàn)中,掃描鏈?zhǔn)蔷哂性试S以每個(gè)時(shí)鐘周期一位的速率將數(shù)據(jù)掃入掃描鏈中和從掃描鏈中掃出數(shù)據(jù)的單位輸入端和單位輸出端的串行掃描鏈。但是,要懂得的是,本發(fā)明不局限于本文公開(kāi)的特定掃描鏈實(shí)現(xiàn)。
[0074]掃描引擎208可以包括耦合成將相同測(cè)試模式輸出到每個(gè)處理核心202A-C的掃描鏈214的輸入端的LFSR216和確定性測(cè)試模式發(fā)生器218之一或兩者。前者可以用于生成偽隨機(jī)測(cè)試模式,而后者可以用于生成測(cè)試模式的確定性序列。在一些實(shí)施例中,只利用LFSR216和發(fā)生器218之一。測(cè)試模式的確定性序列可用于,例如,應(yīng)用為特定處理器架構(gòu)具體設(shè)計(jì)的測(cè)試模式來(lái)保證設(shè)計(jì)的有效和全面測(cè)試。另一方面,偽隨機(jī)測(cè)試在性質(zhì)上可能更強(qiáng)有力,但要懂得的是,由于測(cè)試發(fā)生在處理器芯片的內(nèi)部,以及不依靠任何外部測(cè)試裝備,所以可以進(jìn)行測(cè)試的速度要快得多,因此可以在與另外可以經(jīng)由外部測(cè)試裝備所應(yīng)用相同的時(shí)間幀中應(yīng)用數(shù)量大得多的測(cè)試模式,因此在許多情況下使用偽隨機(jī)測(cè)試模式仍然可以達(dá)到足夠的測(cè)試覆蓋面。還要懂得的是,可以將單個(gè)測(cè)試模式發(fā)生器應(yīng)用于處理器芯片中的所有處理核心,或可以將不同測(cè)試模式發(fā)生器用于處理核心的不同群體。
[0075]在這種實(shí)現(xiàn)中,故障表210被實(shí)現(xiàn)成為每個(gè)處理核心存儲(chǔ)那個(gè)核心的掃描鏈中的第一故障鎖存器的地點(diǎn)的數(shù)據(jù)結(jié)構(gòu)。這樣,故障表210包括在圖6中分別表示成PCA,PCB和PCC、分別與處理核心202A-C相關(guān)聯(lián)的至少一個(gè)存儲(chǔ)元件。要懂得的是,可以為另外處理核心提供另外存儲(chǔ)元件,以及在一些實(shí)施例中,可以為并行測(cè)試的處理核心的其它群體復(fù)制故障表210,或可以將單個(gè)數(shù)據(jù)結(jié)構(gòu)用于為處理核心的多個(gè)群體存儲(chǔ)測(cè)試結(jié)果。
[0076]掃描引擎208還包括比較邏輯,其包括,例如,響應(yīng)處理核心202A-C中的掃描鏈的單位輸出之間的任何失配,維持失配信號(hào)224的一對(duì)XNOR門220,221和NAND門222。XNOR門220對(duì)處理核心202A和202B的掃描鏈輸出進(jìn)行異或運(yùn)算,而XNOR門221對(duì)處理核心202B和202C的掃描鏈輸出進(jìn)行異或運(yùn)算。然后使XNOR門220,221的輸出饋入NAND門222中,以便每當(dāng)處理核心202A-C輸出的所有位不匹配時(shí),維持到故障表210的失配信號(hào)224。
[0077]比較邏輯還包括核心ID邏輯226,它也接收處理核心202A-C的輸出,并確定處理核心當(dāng)中哪一個(gè)正在輸出與多數(shù)處理核心(這里,兩個(gè))輸出的“一致”正確位不同的位。邏輯226將三個(gè)選擇信號(hào)輸出到故障表210,每個(gè)處理核心202A-C各一個(gè),每當(dāng)相關(guān)處理核心是異常者,即,那個(gè)位的故障處理核心時(shí)就維持選擇信號(hào)。另外,計(jì)數(shù)器228用于生成與每條掃描鏈214中的位位置相對(duì)應(yīng)或要不然相關(guān)聯(lián)的數(shù)值,以便允許將失配位的地點(diǎn)與故障處理核心的掃描鏈中的鎖存器相關(guān)聯(lián)。還將計(jì)數(shù)器228的數(shù)值輸出到故障表210。
[0078]將比較邏輯配置成實(shí)現(xiàn)任何數(shù)量N的處理核心當(dāng)中的多數(shù)表決,確定異常處理核心,確定N個(gè)處理核心當(dāng)中的一致正確結(jié)果,和管理計(jì)數(shù)器值或其它鎖存器/位位置標(biāo)識(shí)符,跨過(guò)多個(gè)群體的處理核心地復(fù)制這樣的邏輯都在從本公開(kāi)中受益的本領(lǐng)域的普通技術(shù)人員的能力之內(nèi)。這樣,本發(fā)明不局限于本文公開(kāi)的特定配置。
[0079]故障表210被配置成響應(yīng)失配信號(hào)224的維持,將計(jì)數(shù)器228的當(dāng)前值存儲(chǔ)在與如通過(guò)由核心ID邏輯226維持的相關(guān)啟用信號(hào)選擇的異常處理核心202A-C相對(duì)應(yīng)的存儲(chǔ)元件中。在這種實(shí)現(xiàn)中,故障表210存儲(chǔ)與為每個(gè)處理核心202A-C檢測(cè)的第一故障鎖存器相對(duì)應(yīng)的計(jì)數(shù)器值,以及如圖6所示,處理核心202A和202C被識(shí)別成有故障的,而處理核心202B沒(méi)有。
[0080]將計(jì)數(shù)器228與掃描鏈中的鎖存器相關(guān)聯(lián)的方式在不同實(shí)施例中可能不同。例如,圖7圖示了包括指令或發(fā)出單元(IU) 230、LI高速緩存232、定點(diǎn)執(zhí)行單元(XU) 234和浮點(diǎn)執(zhí)行單元(FPU) 236的示范性處理核心202。在這種實(shí)現(xiàn)中,將掃描鏈214劃分成分別布置在IU230、LI高速緩存232、XU234和FPU236中的四個(gè)鎖存器群238,240,242和244??梢詫⒂成鋽?shù)據(jù)結(jié)構(gòu),例如,映射表246加入掃描引擎中,以便使掃描引擎能夠確定掃描鏈214中的特定鎖存器或位位置布置在哪個(gè)功能單元內(nèi)。因此,如圖7所示,鎖存器/位位置1-2000可以對(duì)應(yīng)于IU230,鎖存器/位位置2001-3000可以對(duì)應(yīng)于LI高速緩存232,鎖存器/位位置3001-6000可以對(duì)應(yīng)于XU234,以及鎖存器/位位置6001-10000可以對(duì)應(yīng)于FPU236。
[0081]通過(guò)將計(jì)數(shù)器228 (圖6)與掃描鏈214中的鎖存器/位位置相關(guān)聯(lián),掃描引擎可以根據(jù)處理核心中的故障鎖存器的檢測(cè),將那個(gè)鎖存器/位位置映射到處理核心202中的功能單元,從而識(shí)別處理核心中的故障功能單元(例如,短暫地返回到圖6,處理核心202A的IU和處理核心202C的LI高速緩存)。此外,在一些實(shí)施例中,得知故障功能單元可以使掃描引擎可以自動(dòng)禁用那個(gè)功能單元或處理核心,或要不然嘗試自動(dòng)重新配置處理器芯片以便圍繞故障功能單元工作。但是,在其它實(shí)施例中,將鎖存器/位位置映射到功能單元可能在外部測(cè)試裝備中實(shí)現(xiàn),從而只將鎖存器/位位置存儲(chǔ)在處理器芯片的板上,以及片外地進(jìn)行故障功能單元的確定。
[0082]圖8圖示了為了進(jìn)行依照本發(fā)明的基于內(nèi)部表決的BIST,由處理器芯片200(圖5)的掃描引擎208進(jìn)行的操作250的示范性序列。在這種實(shí)現(xiàn)中,假設(shè)所有處理核心接收相同測(cè)試模式。這樣,在方框252中,將無(wú)論是偽隨機(jī)測(cè)試模式還是預(yù)定測(cè)試模式的測(cè)試模式掃描或計(jì)時(shí)到所有處理核心的掃描鏈中。接著,對(duì)處理核心計(jì)時(shí)N(—個(gè)或更多個(gè))周期(方框254),以便測(cè)試處理核心對(duì)輸入測(cè)試模式的響應(yīng),在N個(gè)時(shí)鐘周期之后,在方框256中停止計(jì)時(shí)。
[0083]接著,在方框258中,將計(jì)數(shù)器位位置復(fù)位成與從掃描鏈輸出的第一鎖存器或位位置相對(duì)應(yīng)的數(shù)值。然后,在方框260中,從每個(gè)處理核心中的掃描鏈中逐位地計(jì)時(shí)或掃出測(cè)試結(jié)果,以便對(duì)其進(jìn)行逐位比較。只要從掃描鏈輸出的所有位都相互匹配,則方框262就將控制傳遞給方框264,將計(jì)數(shù)器遞增(或如果合適的話,遞減)到與掃描鏈中的下一個(gè)鎖存器/位位置相對(duì)應(yīng)的數(shù)值。方框266然后將控制返還給方框260,以便繼續(xù)掃出結(jié)果。但是,響應(yīng)掃描引擎中的比較邏輯得出的測(cè)試結(jié)果位之間的任何失配,方框262將控制傳遞給方框268,以便將故障存儲(chǔ)在故障表中,例如,通過(guò)將當(dāng)前計(jì)數(shù)器值存儲(chǔ)在與異常處理核心相對(duì)應(yīng)的存儲(chǔ)元件中。然后將控制傳遞給方框264,以便更新計(jì)數(shù)器和繼續(xù)掃出測(cè)試結(jié)果O
[0084]一旦掃出測(cè)試結(jié)果的所有位,方框266就將控制傳遞給方框270,以確定是否仍然應(yīng)用另外的測(cè)試模式。對(duì)于偽隨機(jī)測(cè)試模式,方框270可以在預(yù)定種測(cè)試模式之后暫停測(cè)試。對(duì)于預(yù)定序列的測(cè)試模式,一旦應(yīng)用了所希望序列中的所有測(cè)試模式,方框270就可以暫停測(cè)試。因此,如果需要應(yīng)用另外測(cè)試模式,則方框270將控制返還給方框252以便在新測(cè)試模式下掃描。
[0085]但是,一旦應(yīng)用了所有測(cè)試模式,就結(jié)束測(cè)試,方框270可選地將控制傳遞給方框272以便編程芯片。編程芯片通常包括自動(dòng)禁用芯片的一些部分,或存儲(chǔ)外部測(cè)試裝備可以檢索和用于以后禁用芯片的一些部件,或完全廢棄芯片的數(shù)據(jù)。
[0086]編程芯片可以包括,例如,訪問(wèn)映射表和自動(dòng)禁用識(shí)別為有故障的處理核心中的任何故障功能單元。該編程還可以包括完全禁用處理核心和/重新映射另一個(gè)處理核心(例如,備用或冗余核心)來(lái)管理原來(lái)指定給故障處理核心的功能。該編程還可以包括選擇故障處理核心來(lái)管理專門任務(wù),例如,起服務(wù)處理器的作用。要懂得的是,可以響應(yīng)在處理核心中的不同功能單元中檢測(cè)的故障采取不同行動(dòng),例如,處理核心在沒(méi)有浮點(diǎn)功能單元的情況下可能仍然能夠以降低的能力起作用。而在沒(méi)有發(fā)出單元的情況下可能完全無(wú)用。
[0087]還要懂得的是,可以在不同粒度水平上定義功能單元。例如,可以將高速緩存或其它板上存儲(chǔ)器劃分成多個(gè)功能單元,例如,如果發(fā)現(xiàn)高速緩存的特定部分有故障,則該高速緩存可能仍然有效,但由于高速緩存的一部分被識(shí)別為有故障,所以尺寸縮小了。作為另一個(gè)例子,執(zhí)行單元的不同部分可以管理不同類型的指令,執(zhí)行單元的一部分中的故障可能導(dǎo)致只有那個(gè)部分被禁用,處理核心限制涉及執(zhí)行單元的那個(gè)部分管理的任何指令的軟件,但仍然被允許管理其它類型的指令。此外,可以分層定義功能單元,某些功能單元可以包含在其它功能單元中。因此,例如,發(fā)出單元中的分支預(yù)測(cè)單元可能被識(shí)別成有故障,但仍然允許發(fā)出單元禁用分支預(yù)測(cè)單元地操作。
[0088]編程芯片還可以包括將測(cè)試結(jié)果存儲(chǔ)在非易失性存儲(chǔ)器中,例如,通過(guò)存儲(chǔ)故障鎖存器、功能單元和/或處理核心的故障代碼或標(biāo)識(shí)。該非易失性存儲(chǔ)器可以實(shí)現(xiàn)成,例如,電子熔絲,或以在本領(lǐng)域中已知的其它方式實(shí)現(xiàn)。
[0089]還要懂得的是,可以將其它數(shù)據(jù)結(jié)構(gòu)用于存儲(chǔ)依照本發(fā)明的故障數(shù)據(jù)。例如,可以利用電子熔絲來(lái)實(shí)現(xiàn)故障表,以便只識(shí)別每個(gè)處理核心中的第一故障鎖存器。在替代例中,故障表或其它數(shù)據(jù)結(jié)構(gòu)可以存儲(chǔ)將每個(gè)檢測(cè)故障(包括在給定處理核心中檢測(cè)的多個(gè)故障)映射到特定處理核心和/或功能單元的多個(gè)項(xiàng)目。數(shù)據(jù)結(jié)構(gòu)還可以存儲(chǔ)功能單元標(biāo)識(shí)符而不是計(jì)數(shù)器值,或如果有的話,可以簡(jiǎn)單地標(biāo)識(shí)哪個(gè)處理核心有故障。故障數(shù)據(jù)結(jié)構(gòu)還可以兼作啟用電路,以便將故障登記在功能單元和/或處理核心中可以導(dǎo)致為那個(gè)功能單元和/或處理核心設(shè)置指示啟用還是禁用那個(gè)特定單元/核心的標(biāo)志。
[0090]依照本發(fā)明的實(shí)施例因此提供了超過(guò)傳統(tǒng)測(cè)試方法的許多優(yōu)點(diǎn)。通過(guò)在處理器芯片中內(nèi)部實(shí)現(xiàn)BIST,可以比必須在芯片與外部測(cè)試裝備之間傳送測(cè)試模式和/或測(cè)試結(jié)果時(shí)可能有的速度快得多地進(jìn)行測(cè)試。在許多制造環(huán)境中,各個(gè)處理器芯片停留在外部測(cè)試裝備上的時(shí)間越長(zhǎng),吞吐量就越小,制造成本就越高,縮小這個(gè)時(shí)間可以提高吞吐量和降低單位成本。通過(guò)實(shí)現(xiàn)表決或比較邏輯,無(wú)需模擬或要不然事先確定給定測(cè)試模式的“正確”結(jié)果,因?yàn)檎_性僅僅基于多數(shù)處理核心作為它們各自的結(jié)果輸出的東西。而且,通過(guò)識(shí)別故障處理核心和/或故障功能單元,包含故障處理核心和/或故障功能單元的許多芯片仍然可能被重新配置成以降低的能力操作,而不是被完全廢棄。
[0091]可以不偏離本發(fā)明的精神和范圍地對(duì)公開(kāi)的實(shí)施例作出各種修改。因此,本發(fā)明取決于本文所附的權(quán)利要求書。
【權(quán)利要求】
1.一種電路安排,包含: 布置在多核心集成電路器件上的多個(gè)處理核心,每個(gè)處理核心包括一條掃描鏈;以及 布置在所述多核心集成電路器件上的掃描邏輯,其被配置成將測(cè)試模式傳送給所述多個(gè)處理核心的掃描鏈,并響應(yīng)該測(cè)試模式比較所述多個(gè)處理核心的掃描鏈輸出的測(cè)試結(jié)果,其中所述掃描邏輯被進(jìn)一步配置成根據(jù)與所述多個(gè)處理核心輸出的多數(shù)測(cè)試結(jié)果不同的故障處理核心的掃描鏈輸出的測(cè)試結(jié)果,識(shí)別所述多個(gè)處理核心當(dāng)中的故障處理核心。
2.如權(quán)利要求1所述的電路安排,其中所述掃描鏈?zhǔn)谴袙呙桄?,以及其中所述掃描邏輯被配置成進(jìn)行所述多個(gè)處理核心的掃描鏈輸出的測(cè)試結(jié)果的逐位比較。
3.如權(quán)利要求2所述的電路安排,其中所述掃描鏈的每一條包括串行地相互耦合地多個(gè)鎖存器,以及其中所述掃描邏輯被進(jìn)一步配置成根據(jù)與所述多個(gè)處理核心輸出的多數(shù)測(cè)試結(jié)果不同的測(cè)試結(jié)果中的位的位置,識(shí)別故障處理核心中的故障鎖存器。
4.如權(quán)利要求3所述的電路安排,其中所述掃描鏈的每一條被配置成每次一個(gè)位地輸出測(cè)試結(jié)果,以及其中所述掃描邏輯被配置成與接收測(cè)試結(jié)果的每個(gè)位相關(guān)聯(lián)地遞增計(jì)數(shù)器,以便使用所述計(jì)數(shù)器來(lái)識(shí) 別故障鎖存器。
5.如權(quán)利要求4所述的電路安排,進(jìn)一步包含故障數(shù)據(jù)結(jié)構(gòu),其中所述掃描邏輯被配置成與識(shí)別與所述多個(gè)處理核心輸出的多數(shù)測(cè)試結(jié)果不同的故障處理核心的測(cè)試結(jié)果中的位相關(guān)聯(lián)地,將所述計(jì)數(shù)器的值存儲(chǔ)在所述故障數(shù)據(jù)結(jié)構(gòu)中。
6.如權(quán)利要求5所述的電路安排,其中所述故障數(shù)據(jù)結(jié)構(gòu)包括多個(gè)存儲(chǔ)元件,每個(gè)存儲(chǔ)元件與所述多個(gè)處理核心當(dāng)中的一個(gè)處理核心相關(guān)聯(lián),以及其中該掃描邏輯被配置成將計(jì)數(shù)器的數(shù)值存儲(chǔ)在與故障處理核心相關(guān)聯(lián)的存儲(chǔ)元件中。
7.如權(quán)利要求6所述的電路安排,其中所述故障數(shù)據(jù)結(jié)構(gòu)包括多個(gè)項(xiàng)目,其中所述掃描邏輯被配置成響應(yīng)多個(gè)處理核心的任何一個(gè)檢測(cè)的每個(gè)故障,將與所述故障相關(guān)聯(lián)的計(jì)數(shù)器值存儲(chǔ)在所述故障數(shù)據(jù)結(jié)構(gòu)中的一個(gè)項(xiàng)目中。
8.如權(quán)利要求5所述的電路安排,其中所述故障數(shù)據(jù)結(jié)構(gòu)包含多條電子熔絲。
9.如權(quán)利要求3所述的電路安排,其中每個(gè)處理核心的掃描鏈中的多個(gè)鎖存器被布置在所述處理核心的多個(gè)功能單元中,以及其中所述掃描邏輯被配置成響應(yīng)識(shí)別出故障鎖存器來(lái)識(shí)別故障功能單元。
10.如權(quán)利要求9所述的電路安排,其中所述掃描邏輯被配置響應(yīng)識(shí)別出故障功能單元來(lái)自動(dòng)禁用所述故障功能單元。
11.如權(quán)利要求10所述的電路安排,其中所述掃描邏輯被配置通過(guò)燒斷與所述故障功能單元相關(guān)聯(lián)的電子熔絲來(lái)自動(dòng)禁用所述故障功能單元。
12.如權(quán)利要求3所述的電路安排,其中所述掃描邏輯被配置將多種測(cè)試模式傳送給所述多個(gè)處理核心,以及其中所述掃描邏輯被配置成對(duì)于每種測(cè)試模式: 計(jì)時(shí)進(jìn)入所述多個(gè)處理核心的掃描鏈中的測(cè)試模式; 對(duì)多個(gè)處理核心計(jì)時(shí)所述多個(gè)處理核心;以及 計(jì)時(shí)出自所述多個(gè)處理核心的掃描鏈的測(cè)試結(jié)果。
13.如權(quán)利要求12所述的電路安排,其中所述掃描邏輯包括配置成生成多種偽隨機(jī)測(cè)試模式的偽隨機(jī)邏輯。
14.如權(quán)利要求12所述的電路安排,其中所述掃描邏輯被配置成將預(yù)定序列的測(cè)試模式傳送給所述多個(gè)處理核心。
15.如權(quán)利要求1所述的電路安排,其中所述掃描邏輯被配置成比較布置在所述多核心集成電路器件上的所有處理核心的掃描鏈輸出的測(cè)試結(jié)果。
16.如權(quán)利要求1所述的電路安排,其中所述掃描邏輯被配置成相互并行地進(jìn)行多次比較,其中每次比較比較布置在所述多核心集成電路器件上的處理核心的子集的掃描鏈輸出的測(cè)試結(jié)果。
17.一種集成電路器件,其包括如權(quán)利要求1所述的電路安排。
18.—種程序產(chǎn)品,其包含計(jì)算機(jī)可讀介質(zhì)和存儲(chǔ)在該計(jì)算機(jī)可讀介質(zhì)上和定義如權(quán)利要求I所述的電路安排的邏輯定義程序代碼。
19.一種進(jìn)行包括多個(gè)處理核心的多核心集成電路器件的內(nèi)置自測(cè)(BIST)的方法,其中每個(gè)處理核心包括一條掃描鏈,所述方法包含: 使用布置在所述多核心集成電路器件上的掃描邏輯,將測(cè)試模式傳送給所述多個(gè)處理核心的掃描鏈; 使用所述掃描邏輯,響應(yīng)所述測(cè)試模式比較所述多個(gè)處理核心的掃描鏈輸出的測(cè)試結(jié)果;以及 根據(jù)與所述多個(gè)處理核心輸出的多數(shù)測(cè)試結(jié)果不同的故障處理核心的掃描鏈輸出的測(cè)試結(jié)果,識(shí)別所述多個(gè)處理核心當(dāng)中的故障處理核心。
20.如權(quán)利要求19所述的方法,其中所述掃描鏈?zhǔn)谴袙呙桄湥渲斜容^測(cè)試結(jié)果包括進(jìn)行所述多個(gè)處理核心的掃描鏈輸出的測(cè)試結(jié)果的逐位比較,其中所述掃描鏈的每一條包括串行地相互耦合地多個(gè)鎖存器,以及其中所述方法進(jìn)一步包含根據(jù)與所述多個(gè)處理核心輸出的多數(shù)測(cè)試結(jié)果不同的測(cè)試結(jié)果中的位的位置,識(shí)別所述故障處理核心中的故障鎖存器。
21.如權(quán)利要求20所述的方法,進(jìn)一步包含將與位位置相關(guān)聯(lián)的值存儲(chǔ)在故障數(shù)據(jù)結(jié)構(gòu)中。
22.如權(quán)利要求21所述的方法,其中每個(gè)處理核心的掃描鏈中的所述多個(gè)鎖存器被布置在所述處理核心的多個(gè)功能單元中,所述方法進(jìn)一步包含響應(yīng)識(shí)別出所述故障鎖存器來(lái)識(shí)別故障功能單元。
23.如權(quán)利要求22所述的方法,進(jìn)一步包含響應(yīng)識(shí)別出所述故障功能單元來(lái)自動(dòng)禁用故障所述功能單元。
24.如權(quán)利要求19所述的方法,進(jìn)一步包含利用所述掃描邏輯生成多種偽隨機(jī)測(cè)試模式,以及將所述多種偽隨機(jī)測(cè)試模式傳送給所述多個(gè)處理核心。
25.如權(quán)利要求19所述的方法,進(jìn)一步包含利用所述掃描邏輯生成多種預(yù)定序列的測(cè)試模式,以及將所述預(yù)定序列的測(cè)試模式傳送給所述多個(gè)處理核心。
【文檔編號(hào)】G01R31/3187GK104040499SQ201280063683
【公開(kāi)日】2014年9月10日 申請(qǐng)日期:2012年11月7日 優(yōu)先權(quán)日:2011年12月20日
【發(fā)明者】J.D.布朗, M.康帕蘭, R.A.希勒, A.T.沃特森三世 申請(qǐng)人:國(guó)際商業(yè)機(jī)器公司