專利名稱:寬帶網(wǎng)絡(luò)計(jì)算機(jī)體系結(jié)構(gòu)的處理模塊的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計(jì)算機(jī)處理器和計(jì)算機(jī)網(wǎng)絡(luò)的體系結(jié)構(gòu),特別涉及寬帶環(huán)境中計(jì)算機(jī)處理器和計(jì)算機(jī)網(wǎng)絡(luò)的體系結(jié)構(gòu)。本發(fā)明還涉及這種體系結(jié)構(gòu)的編程模型。
背景技術(shù):
對(duì)于當(dāng)前計(jì)算機(jī)網(wǎng)絡(luò),例如辦公室網(wǎng)絡(luò)中使用的局域網(wǎng)(LAN),以及象Internet等這樣的全球網(wǎng)絡(luò),其計(jì)算機(jī)和計(jì)算設(shè)備主要是為單機(jī)計(jì)算設(shè)計(jì)的。通過計(jì)算機(jī)網(wǎng)絡(luò)共享數(shù)據(jù)和應(yīng)用程序不是這些計(jì)算機(jī)和計(jì)算設(shè)備的主要設(shè)計(jì)目的。通常還使用各種類型的、由不同生產(chǎn)商生產(chǎn)的處理器來設(shè)計(jì)這些計(jì)算機(jī)和計(jì)算設(shè)備,這些生產(chǎn)商例如是摩托羅拉、英特爾、德州儀器,索尼以及其它一些公司。這些處理器中的每一個(gè)都具有其獨(dú)特的指令集和指令集體系結(jié)構(gòu)(ISA),即,具有其獨(dú)特的匯編語言指令集,和用于執(zhí)行這些指令的基本計(jì)算單元和存儲(chǔ)單元的結(jié)構(gòu)。因此,程序員需要理解每個(gè)處理器的指令集和ISA,以便寫出針對(duì)這些處理器的應(yīng)用程序。當(dāng)前計(jì)算機(jī)網(wǎng)絡(luò)上計(jì)算機(jī)和計(jì)算設(shè)備的這種異構(gòu)組合使得數(shù)據(jù)及應(yīng)用程序的處理和共享復(fù)雜化。而且,經(jīng)常需要同一應(yīng)用程序的多個(gè)版本,以適應(yīng)這種異構(gòu)環(huán)境。
連接到全球網(wǎng)絡(luò),尤其是連接到Internet的計(jì)算機(jī)和計(jì)算設(shè)備的種類是非常廣泛的。除個(gè)人計(jì)算機(jī)(PC)和服務(wù)器外,這些計(jì)算設(shè)備還包括蜂窩電話、移動(dòng)計(jì)算機(jī)、個(gè)人數(shù)字助理(PDA)、機(jī)頂盒、數(shù)字電視以及許多其它設(shè)備。在如此多樣的計(jì)算機(jī)和計(jì)算設(shè)備之間共享數(shù)據(jù)和應(yīng)用程序帶來了相當(dāng)大的問題。
為克服這些問題,已使用了很多技術(shù)。尤其是,這些技術(shù)包括高級(jí)的接口和復(fù)雜的編程技術(shù)。這些解決方案的實(shí)現(xiàn)通常需要處理能力有相當(dāng)大的增加。它們還經(jīng)常大大增加在網(wǎng)絡(luò)上處理應(yīng)用程序和傳輸數(shù)據(jù)所需的時(shí)間。
通常,通過Internet從相應(yīng)應(yīng)用程序分別發(fā)送數(shù)據(jù)。這個(gè)解決方案不必發(fā)送應(yīng)用程序和與該應(yīng)用程序?qū)?yīng)的每組發(fā)送數(shù)據(jù)。雖然該方案使得帶寬需求達(dá)到最小,但它還是經(jīng)常引起用戶間的干擾(frustration)??赡茉诳蛻舳擞?jì)算機(jī)上得不到用于所發(fā)送數(shù)據(jù)的正確應(yīng)用程序或者最新應(yīng)用程序。該方案還需要針對(duì)網(wǎng)絡(luò)上處理器的不同ISA和指令集的多樣性編寫每個(gè)應(yīng)用程序的多個(gè)版本。
Java模型試圖解決這個(gè)問題。該模型使用服從嚴(yán)格安全協(xié)議的小應(yīng)用程序(“applet”)。applet由服務(wù)器通過網(wǎng)絡(luò)發(fā)送,以便在客戶端計(jì)算機(jī)(“client”)上運(yùn)行。為避免必須向使用不同ISA的客戶端發(fā)送相同applet的不同版本,所有applet均在客戶端的Java虛擬機(jī)上運(yùn)行。Java虛擬機(jī)是模擬具有Java ISA和Java指令集的計(jì)算機(jī)的軟件。然而,該軟件運(yùn)行在客戶端的ISA和客戶端的指令集上。為客戶端的每個(gè)不同ISA和指令集提供一個(gè)版本的Java虛擬機(jī)。這樣,就不需要每個(gè)applet的不同版本的多樣性。每個(gè)客戶端僅下載針對(duì)其特定ISA和指令集的正確Java虛擬機(jī),以運(yùn)行所有Java applet。
雖然對(duì)必須為每個(gè)不同ISA和指令集編寫應(yīng)用程序的不同版本的問題提供了解決方案,然而Java處理模型在客戶端計(jì)算機(jī)上仍需要一個(gè)附加軟件層。這個(gè)附加軟件層極大地降低了處理器的處理速度。這種速度降低對(duì)于實(shí)時(shí)、多媒體應(yīng)用尤其明顯。下載的Javaapplet還可能含有病毒、處理故障等。這些病毒和故障會(huì)破壞客戶端的數(shù)據(jù)庫,并造成其它損壞。雖然Java模型中使用的安全協(xié)議試圖通過實(shí)現(xiàn)軟件“沙箱(sandbox)”來解決這個(gè)問題(“沙箱”是客戶端存儲(chǔ)器中的一個(gè)空間,如果超出此空間,則Java applet不能寫數(shù)據(jù)),但是這個(gè)軟件驅(qū)動(dòng)的安全模型在其執(zhí)行過程中經(jīng)常是不安全的,并且需要更多的處理。
實(shí)時(shí)、多媒體、網(wǎng)絡(luò)應(yīng)用變得越來越重要。這些網(wǎng)絡(luò)應(yīng)用需要極快的處理速度。將來,這類應(yīng)用每秒鐘可能需要若干千兆位的數(shù)據(jù)。目前的網(wǎng)絡(luò)體系結(jié)構(gòu),特別是Internet的體系結(jié)構(gòu),以及當(dāng)前在例如Java模型中實(shí)現(xiàn)的編程模型要達(dá)到這樣的處理速度是極其困難的。
因此,需要一種新的計(jì)算機(jī)體系結(jié)構(gòu)、一種新的計(jì)算機(jī)網(wǎng)絡(luò)體系結(jié)構(gòu)和一種新的編程模型。這種新的體系結(jié)構(gòu)和編程模型應(yīng)當(dāng)解決在各種網(wǎng)絡(luò)成員中間共享數(shù)據(jù)和應(yīng)用程序的問題,而無須增加額外的計(jì)算負(fù)擔(dān)。這種新的計(jì)算機(jī)體系結(jié)構(gòu)和編程模型還應(yīng)當(dāng)解決在網(wǎng)絡(luò)成員中間共享應(yīng)用程序和數(shù)據(jù)所固有的安全問題。
發(fā)明內(nèi)容
一方面,本發(fā)明提供一種用于計(jì)算機(jī)、計(jì)算設(shè)備和計(jì)算機(jī)網(wǎng)絡(luò)的新型體系結(jié)構(gòu)。另一方面,本發(fā)明提供一種用于這些計(jì)算機(jī)、計(jì)算設(shè)備和計(jì)算機(jī)網(wǎng)絡(luò)的新型編程模型。
根據(jù)本發(fā)明,計(jì)算機(jī)網(wǎng)絡(luò)的所有成員,即網(wǎng)絡(luò)中所有計(jì)算機(jī)和計(jì)算設(shè)備,都用公用計(jì)算模塊構(gòu)建。這種公用計(jì)算模塊具有一致的結(jié)構(gòu),并且最好使用相同的ISA。網(wǎng)絡(luò)的成員可以是例如客戶機(jī)、服務(wù)器、PC、移動(dòng)計(jì)算機(jī)、游戲機(jī)、PDA、機(jī)頂盒、電器、數(shù)字電視、以及其它使用計(jì)算機(jī)處理器的設(shè)備。一致的模塊化結(jié)構(gòu)允許網(wǎng)絡(luò)成員有效、高速地處理應(yīng)用程序和數(shù)據(jù),并允許在網(wǎng)絡(luò)上快速傳輸應(yīng)用程序和數(shù)據(jù)。這種結(jié)構(gòu)還簡(jiǎn)化了具有各種規(guī)模和處理能力的網(wǎng)絡(luò)成員的構(gòu)建,以及這些成員處理的應(yīng)用程序的準(zhǔn)備。另外,根據(jù)本發(fā)明的一個(gè)實(shí)施例,提供了一個(gè)計(jì)算機(jī)網(wǎng)絡(luò),該計(jì)算機(jī)網(wǎng)絡(luò)包含連接到所述網(wǎng)絡(luò)的多個(gè)處理器,每個(gè)所述處理器包含具有相同指令集體系結(jié)構(gòu)的多個(gè)第一處理單元,以及用于控制所述第一處理單元的第二處理單元,所述第一處理單元可處理通過所述網(wǎng)絡(luò)傳輸?shù)能浖卧?,每個(gè)所述軟件單元包含與所述指令集體系結(jié)構(gòu)兼容的程序,與所述程序相關(guān)的數(shù)據(jù),以及在通過所述網(wǎng)絡(luò)傳輸?shù)娜克鲕浖卧形ㄒ粯?biāo)識(shí)所述軟件單元的標(biāo)識(shí)符。標(biāo)識(shí)符最好是在通過所述網(wǎng)絡(luò)傳輸?shù)娜克鲕浖卧形ㄒ粯?biāo)識(shí)所述軟件單元的標(biāo)識(shí)號(hào)。
另一方面,本發(fā)明提供了一種用于通過網(wǎng)絡(luò)傳輸數(shù)據(jù)和應(yīng)用程序,以及用于在網(wǎng)絡(luò)成員中間處理數(shù)據(jù)和應(yīng)用程序的新型編程模型。該編程模型使用通過網(wǎng)絡(luò)傳輸?shù)?、可由任何網(wǎng)絡(luò)成員處理的軟件單元。每個(gè)軟件單元均具有相同的結(jié)構(gòu),并可包含應(yīng)用程序和數(shù)據(jù)。由于模塊化計(jì)算機(jī)體系結(jié)構(gòu)提供的高速處理和傳輸速度,這些單元可以被快速處理。應(yīng)用程序代碼最好基于相同的公用指令集和ISA。每個(gè)軟件單元最好包含全局標(biāo)識(shí)(global ID),和說明該單元的處理所需計(jì)算資源數(shù)量的信息。由于所有計(jì)算資源具有相同的基本結(jié)構(gòu),并使用相同的ISA,所以執(zhí)行這個(gè)處理的特定資源可以位于網(wǎng)絡(luò)上的任何地方,并且可以動(dòng)態(tài)分配。
基本的處理模塊是處理器元件(PE)。PE最好包括處理單元(PU),直接存儲(chǔ)器存取控制器(DMAC),以及多個(gè)附連處理單元(APU)。在優(yōu)選實(shí)施例中,PE包含八個(gè)APU。PU和APU與最好具有交叉(cross-bar)體系結(jié)構(gòu)的動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(DRAM)交互。PU計(jì)劃和編排APU對(duì)數(shù)據(jù)和應(yīng)用程序的處理。APU以并行和獨(dú)立的方式執(zhí)行這種處理。DMAC控制PU和APU對(duì)共享DRAM中存儲(chǔ)的數(shù)據(jù)和應(yīng)用程序的存取。
根據(jù)這種模塊化的結(jié)構(gòu),網(wǎng)絡(luò)成員使用的PE的數(shù)目取決于該成員所需要的處理能力。例如,服務(wù)器可能使用四個(gè)PE,工作站可能使用兩個(gè)PE,PDA可能使用一個(gè)PE。PE中被分配用來處理特定軟件單元的APU的數(shù)目取決于單元中的程序和數(shù)據(jù)的復(fù)雜度和量級(jí)。
在優(yōu)選實(shí)施例中,多個(gè)PE與共享DRAM相關(guān)。最好將DRAM分隔成多個(gè)區(qū)(section),并將這些區(qū)中的每一個(gè)分隔成多個(gè)存儲(chǔ)體(memory bank)。在一個(gè)特別的優(yōu)選實(shí)施例中,DRAM包含64個(gè)存儲(chǔ)體,并且每個(gè)存儲(chǔ)體具有一兆字節(jié)的存儲(chǔ)容量。DRAM的每個(gè)區(qū)最好由存儲(chǔ)體控制器控制,并且PE的每個(gè)DMAC最好訪問每個(gè)存儲(chǔ)體控制器。因此,該實(shí)施例中每個(gè)PE的DMAC可訪問共享DRAM的任何部分。
另一方面,本發(fā)明提供使APU從共享DRAM讀取數(shù)據(jù),以及向其寫入數(shù)據(jù)的同步系統(tǒng)和方法。該系統(tǒng)避免了共享DRAM的多個(gè)APU和多個(gè)PE中間的沖突。根據(jù)該系統(tǒng)和方法,將DRAM的一個(gè)區(qū)域指定為用于存儲(chǔ)多個(gè)全空位。這些全空位中的每一個(gè)對(duì)應(yīng)于DRAM的一個(gè)指定區(qū)域。將同步系統(tǒng)集成到DRAM的硬件中,因此避免了用軟件實(shí)現(xiàn)的數(shù)據(jù)同步模式的計(jì)算開銷。
本發(fā)明還在DRAM中實(shí)現(xiàn)沙箱以提供安全性,從而防止一個(gè)APU處理的程序的數(shù)據(jù)被另一個(gè)APU處理的程序的數(shù)據(jù)破壞。每個(gè)沙箱定義了共享DRAM中的一個(gè)區(qū)域,如果超出此區(qū)域,特定APU或APU組不能讀數(shù)據(jù)或?qū)憯?shù)據(jù)。
另一方面,本發(fā)明提供用于PU向APU發(fā)出命令以啟動(dòng)APU對(duì)應(yīng)用程序和數(shù)據(jù)的處理的系統(tǒng)和方法。這些命令被稱為APU遠(yuǎn)程過程調(diào)用(ARPC),使PU能夠編排和協(xié)調(diào)APU對(duì)應(yīng)用程序和數(shù)據(jù)的并行處理,而無須APU充當(dāng)協(xié)處理器的角色。
在另一方面,本發(fā)明提供用于建立專用流水線結(jié)構(gòu)以處理流數(shù)據(jù)的系統(tǒng)和方法。根據(jù)該系統(tǒng)和方法,PU建立協(xié)同的APU組,以及與這些APU相關(guān)的協(xié)同存儲(chǔ)器沙箱組,以用于這些數(shù)據(jù)的處理。在不處理數(shù)據(jù)的時(shí)候,流水線的專用APU和存儲(chǔ)器沙箱仍保留為流水線專用。換句話說,在這些期間中,將專用APU及其相關(guān)沙箱置于保留狀態(tài)。
在另一方面,本發(fā)明提供用于處理任務(wù)的絕對(duì)定時(shí)器。該絕對(duì)定時(shí)器獨(dú)立于處理應(yīng)用程序和數(shù)據(jù)的APU所使用的時(shí)鐘頻率。根據(jù)絕對(duì)定時(shí)器定義的任務(wù)時(shí)間周期來寫應(yīng)用程序。如果因APU的增強(qiáng)(例如)而使APU使用的時(shí)鐘頻率提高,由絕對(duì)定時(shí)器定義的給定任務(wù)的時(shí)間周期保持不變。該方案允許以更新版本的APU實(shí)現(xiàn)增強(qiáng)的處理時(shí)間,而無須禁止這些新APU處理針對(duì)較早APU的較慢處理時(shí)間而編寫的較早應(yīng)用程序。
本發(fā)明還提供使具有更快處理速度的更新APU能夠處理針對(duì)較早APU的較慢處理速度而編寫的較早應(yīng)用程序的一種可選方案。在這個(gè)可選方案中,針對(duì)因速度增強(qiáng)而在協(xié)調(diào)APU的并行處理方面所產(chǎn)生的問題,在處理期間對(duì)APU在處理這些較早應(yīng)用程序時(shí)所使用的特定指令或微代碼進(jìn)行分析。在由這些APU中的某一些執(zhí)行的指令中插入“無操作”(“NOOP”)指令,以使APU的處理按程序預(yù)期的順序完成。通過在這些指令中插入這些NOOP,保持了APU執(zhí)行所有指令的正確定時(shí)。
在另一方面,本發(fā)明提供包含集成了光波導(dǎo)的集成電路的芯片封裝(chip package)。
圖1說明了本發(fā)明的計(jì)算機(jī)網(wǎng)絡(luò)的整體體系結(jié)構(gòu)。
圖2說明了本發(fā)明的處理器元件(PE)的結(jié)構(gòu)。
圖3說明了本發(fā)明的寬帶引擎(BE)的結(jié)構(gòu)。
圖4說明了本發(fā)明的附連處理單元(APU)的結(jié)構(gòu)。
圖5說明了本發(fā)明的處理器元件,觀察器(VS,visualizer)和光接口的結(jié)構(gòu)。
圖6說明了本發(fā)明的處理器元件的一種組合。
圖7說明了本發(fā)明的處理器元件的另外一種組合。
圖8說明了本發(fā)明的處理器元件的另外一種組合。
圖9說明了本發(fā)明的處理器元件的另外一種組合。
圖10說明了本發(fā)明的處理器元件的另外一種組合。
圖11A說明了本發(fā)明的芯片封裝中光接口的集成。
圖11B是使用圖11A的光接口的處理器的一種結(jié)構(gòu)的圖。
圖11C是使用圖11A的光接口的處理器的另外一種結(jié)構(gòu)的圖。
圖12A說明了本發(fā)明的存儲(chǔ)器系統(tǒng)的結(jié)構(gòu)。
圖12B根據(jù)本發(fā)明說明了從第一寬帶引擎向第二寬帶引擎的數(shù)據(jù)寫入。
圖13是本發(fā)明的處理器元件的共享存儲(chǔ)器的結(jié)構(gòu)圖。
圖14A說明了圖13中的存儲(chǔ)器的存儲(chǔ)體的一種結(jié)構(gòu)。
圖14B說明了圖13中的存儲(chǔ)器的存儲(chǔ)體的另一種結(jié)構(gòu)。
圖15說明了本發(fā)明的直接存儲(chǔ)器存取控制器的結(jié)構(gòu)。
圖16說明了本發(fā)明的直接存儲(chǔ)器存取控制器的另一種結(jié)構(gòu)。
圖17A-17O說明了本發(fā)明的數(shù)據(jù)同步操作。
圖18是根據(jù)本發(fā)明的數(shù)據(jù)同步模式說明存儲(chǔ)器位置的不同狀態(tài)的三狀態(tài)存儲(chǔ)器圖。
圖19說明了本發(fā)明的硬件沙箱的關(guān)鍵字控制表的結(jié)構(gòu)。
圖20說明了用于存儲(chǔ)本發(fā)明的硬件沙箱的存儲(chǔ)器存取關(guān)鍵字的方案。
圖21說明了本發(fā)明的硬件沙箱的存儲(chǔ)器存取控制表的結(jié)構(gòu)。
圖22是使用圖19的關(guān)鍵字控制表和圖21的存儲(chǔ)器存取控制表訪問存儲(chǔ)器沙箱的步驟的流程圖。
圖23說明了本發(fā)明的軟件單元的結(jié)構(gòu)。
圖24是根據(jù)本發(fā)明向APU發(fā)出遠(yuǎn)程過程調(diào)用的步驟的流程圖。
圖25說明了本發(fā)明用于處理流數(shù)據(jù)的專用流水線的結(jié)構(gòu)。
圖26A-26B是本發(fā)明如圖25所示的專用流水線在處理流數(shù)據(jù)時(shí)執(zhí)行的步驟的流程圖。
圖27說明了本發(fā)明用于處理流數(shù)據(jù)的專用流水線的可選結(jié)構(gòu)。
圖28說明了本發(fā)明用于協(xié)調(diào)APU對(duì)應(yīng)用程序和數(shù)據(jù)的并行處理的絕對(duì)定時(shí)器的方案。
具體實(shí)施例方式
圖1示出了本發(fā)明的計(jì)算系統(tǒng)101的整體體系結(jié)構(gòu)。
如圖中所示,系統(tǒng)101包括網(wǎng)絡(luò)104,其上連接了多個(gè)計(jì)算機(jī)和計(jì)算設(shè)備。網(wǎng)絡(luò)104可以是LAN、像Internet這樣的全球網(wǎng)、或者任何其它的計(jì)算機(jī)網(wǎng)絡(luò)。
連接到網(wǎng)絡(luò)104的計(jì)算機(jī)和計(jì)算設(shè)備(網(wǎng)絡(luò)“成員”)包括例如客戶端計(jì)算機(jī)106、服務(wù)器計(jì)算機(jī)108、個(gè)人數(shù)字助理(PDA)110、數(shù)字電視(DTV)112、以及其它有線或無線計(jì)算機(jī)和計(jì)算設(shè)備。網(wǎng)絡(luò)104的成員使用的處理器由相同的公用計(jì)算模塊構(gòu)建。這些處理器最好還都具有相同的ISA,并按照相同的指令集執(zhí)行處理。任何一個(gè)特定的處理器中包含的模塊的數(shù)目取決于該處理器所需的處理能力。
例如,由于系統(tǒng)101中的服務(wù)器108比客戶端106執(zhí)行更多的數(shù)據(jù)和應(yīng)用程序處理,所以服務(wù)器108比客戶端106包含更多的計(jì)算模塊。另一方面,PDA 110執(zhí)行的處理量最少,因此PDA 110包含的計(jì)算模塊最少。DTV 112執(zhí)行的處理量介于客戶端106的和服務(wù)器108之間,因此,它包含的計(jì)算模塊的數(shù)目介于客戶端106和服務(wù)器108之間。如下面討論的,每個(gè)計(jì)算模塊包含一個(gè)處理控制器,和多個(gè)同樣的處理單元,用于對(duì)網(wǎng)絡(luò)104上傳輸?shù)臄?shù)據(jù)和應(yīng)用程序執(zhí)行并行處理。
系統(tǒng)101的這種同構(gòu)結(jié)構(gòu)利于提高適應(yīng)性、處理速度和處理效率。因?yàn)橄到y(tǒng)101的每個(gè)成員使用一或多個(gè)(或某些部分的)相同計(jì)算模塊來執(zhí)行處理,所以執(zhí)行數(shù)據(jù)和應(yīng)用程序的實(shí)際處理的特定計(jì)算機(jī)或計(jì)算設(shè)備是不重要的。而且,特定應(yīng)用程序和數(shù)據(jù)的處理可以在網(wǎng)絡(luò)成員間分享。通過在整個(gè)系統(tǒng)中唯一標(biāo)識(shí)包含由系統(tǒng)101處理的數(shù)據(jù)和應(yīng)用程序的單元,則無論處理在哪里進(jìn)行,都可以將該處理結(jié)果傳輸?shù)秸?qǐng)求處理的計(jì)算機(jī)或計(jì)算設(shè)備。因?yàn)閳?zhí)行該處理的模塊具有公用結(jié)構(gòu)并使用公用ISA,所以避免了為實(shí)現(xiàn)處理器之間的兼容性而附加的軟件層的計(jì)算負(fù)擔(dān)。該體系結(jié)構(gòu)和編程模型利于得到執(zhí)行例如實(shí)時(shí)、多媒體應(yīng)用程序所必需的處理速度。
為了進(jìn)一步利用系統(tǒng)101帶來的處理速度和效率,將該系統(tǒng)處理的數(shù)據(jù)和應(yīng)用程序封裝到具有唯一標(biāo)識(shí)和統(tǒng)一格式的軟件單元102中。每個(gè)軟件單元102包含或可以包含應(yīng)用程序和數(shù)據(jù)。每個(gè)軟件單元還包含在整個(gè)網(wǎng)絡(luò)104和系統(tǒng)101中全局性地標(biāo)識(shí)該單元的ID。軟件單元結(jié)構(gòu)的這種一致性以及軟件單元在整個(gè)網(wǎng)絡(luò)中的唯一標(biāo)識(shí),有利于在網(wǎng)絡(luò)中的任何一個(gè)計(jì)算機(jī)或計(jì)算設(shè)備上處理應(yīng)用程序和數(shù)據(jù)。例如,客戶端106可以形成軟件單元102,但是因?yàn)榭蛻舳?06的處理能力有限,可以將該軟件單元發(fā)送到服務(wù)器108來進(jìn)行處理。因此,軟件單元可在整個(gè)網(wǎng)絡(luò)104中遷移,以便根據(jù)網(wǎng)絡(luò)上處理資源的可用性進(jìn)行處理。
系統(tǒng)101的處理器和軟件單元的同構(gòu)結(jié)構(gòu)還避免了現(xiàn)今的異構(gòu)網(wǎng)絡(luò)的許多問題。例如,設(shè)法允許在使用任何指令集的任何ISA,例如Java虛擬機(jī)這樣的虛擬機(jī)上進(jìn)行應(yīng)用程序處理的低效編程模型得以避免。因此,系統(tǒng)101可實(shí)現(xiàn)遠(yuǎn)比現(xiàn)今網(wǎng)絡(luò)能有效和高效的寬帶處理。
用于網(wǎng)絡(luò)104的所有成員的基本處理模塊是處理器元件(PE)。圖2說明了PE的結(jié)構(gòu)。如圖所示,PE 201包含處理單元(PU)203、直接存儲(chǔ)器存取控制器(DMAC)205和多個(gè)附連處理單元(APU),即APU 207、APU 209、APU 211、APU 213、APU 215、APU 217、APU 219和APU 221。局部PE總線223在APU、DMAC 205和PU203間傳輸數(shù)據(jù)和應(yīng)用程序。局部PE總線223可具有例如傳統(tǒng)體系結(jié)構(gòu),或者可以被實(shí)現(xiàn)成分組交換網(wǎng)絡(luò)。雖然需要更多的硬件,然而實(shí)現(xiàn)成分組交換網(wǎng)絡(luò)可增加可用帶寬。
可使用用于實(shí)現(xiàn)數(shù)字邏輯的各種方法來構(gòu)建PE 201。然而,PE201最好被構(gòu)造成使用硅襯底上的互補(bǔ)金屬氧化物半導(dǎo)體(CMOS)的單個(gè)集成電路??蛇x的襯底材料包括砷化鎵,鎵鋁砷化物,以及其它使用各種攙雜物的所謂III-B化合物。還可使用超導(dǎo)材料,例如快速單磁通量子(RSFQ)邏輯來實(shí)現(xiàn)PE 201。
PE 201通過高帶寬存儲(chǔ)器連接227與動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(DRAM)225緊密相關(guān)。DRAM 225用作PE 201的主存儲(chǔ)器。雖然DRAM 225最好是動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器,但也可使用其它裝置將DRAM 225實(shí)現(xiàn)成例如靜態(tài)隨機(jī)存取存儲(chǔ)器(SRAM)、磁性隨機(jī)存取存儲(chǔ)器(MRAM)、光存儲(chǔ)器或全息存儲(chǔ)器。DMAC 205利于在DRAM 225與PE 201的APU和PU之間傳輸數(shù)據(jù)。如下面進(jìn)一步討論的,DMAC 205在DRAM 225中為每個(gè)APU指定一個(gè)獨(dú)占區(qū)域,只有該APU可以往里寫數(shù)據(jù)或從中讀數(shù)據(jù)。這個(gè)獨(dú)占區(qū)域被稱為“沙箱”。
PE 203可以是例如能夠獨(dú)立處理數(shù)據(jù)和應(yīng)用程序的標(biāo)準(zhǔn)處理器。在操作中,PU 203調(diào)度并編排APU對(duì)數(shù)據(jù)和應(yīng)用程序的處理。APU最好是單指令多數(shù)據(jù)(SIMD)處理器。在PU 203的控制下,APU以并行和獨(dú)立的方式執(zhí)行這些數(shù)據(jù)和應(yīng)用程序的處理。DMAC 205控制PU 203和APU對(duì)存儲(chǔ)在共享DRAM 225中的數(shù)據(jù)和應(yīng)用程序的存取。雖然PE 201最好包括八個(gè)APU,但也可根據(jù)所需的處理能力在PE中使用更多或更少數(shù)目的APU。并且,可將許多的像PE 201這樣的PE連接或封裝在一起以提供增強(qiáng)的處理能力。
例如,如圖3所示,可將四個(gè)PE一起封裝或連接在例如一個(gè)或多個(gè)芯片封裝內(nèi),以形成用于網(wǎng)絡(luò)104的成員的單個(gè)處理器。這種結(jié)構(gòu)被稱為寬帶引擎(BE)。如圖3所示,BE 301包含四個(gè)PE,即PE303、PE 305、PE 307和PE 309。通過BE總線311進(jìn)行這些PE之間的通信。寬帶寬存儲(chǔ)器連接313提供共享DRAM 315與這些PE之間的通信。作為BE總線311的替代,可通過DRAM 315和這個(gè)存儲(chǔ)器連接進(jìn)行BE 301的PE之間的通信。
輸入/輸出(I/O)接口317和外部總線319提供寬帶引擎301和網(wǎng)絡(luò)104的其它成員之間的通信。與PE的APU執(zhí)行的并行與獨(dú)立的應(yīng)用程序和數(shù)據(jù)處理相類似,BE 301的每個(gè)PE以并行和獨(dú)立的方式執(zhí)行數(shù)據(jù)和應(yīng)用程序的處理。
圖4說明了APU的結(jié)構(gòu)。APU 402包括局部存儲(chǔ)器406,寄存器410,四個(gè)浮點(diǎn)單元412和四個(gè)整數(shù)單元414。然而,根據(jù)所需要的處理能力,可以使用更多或更少數(shù)目的浮點(diǎn)單元412和整數(shù)單元414。在優(yōu)選實(shí)施例中,局部存儲(chǔ)器406包含128千字節(jié)的存儲(chǔ)量,并且寄存器410的容量是128×128位。浮點(diǎn)單元412最好以320億(32 billion)次浮點(diǎn)運(yùn)算每秒(32 GFLOPS)的速度工作,整數(shù)單元414最好以320億次運(yùn)算每秒(32 GOPS)的速度工作。
局部存儲(chǔ)器402不是高速緩沖存儲(chǔ)器。局部存儲(chǔ)器402最好被構(gòu)造成SRAM。對(duì)APU的高速緩存一致性支持是沒有必要的。對(duì)于由PU啟動(dòng)的直接存儲(chǔ)器存取,PU會(huì)需要高速緩存一致性支持。然而,對(duì)于由APU啟動(dòng)的直接存儲(chǔ)器存取或針對(duì)外部設(shè)備的存取,則不需要高速緩存一致性支持。
APU 402還包含總線404,用于針對(duì)APU傳送應(yīng)用程序和數(shù)據(jù)。在優(yōu)選實(shí)施例中,該總線的寬度是1024位。APU 402還包括內(nèi)部總線408、420和418。在優(yōu)選實(shí)施例中,總線408的寬度是256位,提供局部存儲(chǔ)器406與寄存器410之間的通信。總線420和418分別提供寄存器410和浮點(diǎn)單元412之間,寄存器410和整數(shù)單元414之間的通信。在優(yōu)選實(shí)施例中,從寄存器410到浮點(diǎn)單元或整數(shù)單元的總線418和420的寬度是384位,從浮點(diǎn)或整數(shù)單元到寄存器410的總線418和420的寬度是128位。這些總線中,從寄存器410到浮點(diǎn)或整數(shù)單元的寬度比從這些單元到寄存器410的寬度大,這樣可適應(yīng)處理期間來自寄存器410的較大數(shù)據(jù)流。每次計(jì)算最多需要三個(gè)字。然而,每次計(jì)算的結(jié)果通常只是一個(gè)字。
圖5-10進(jìn)一步說明了網(wǎng)絡(luò)104的成員的處理器的模塊化結(jié)構(gòu)。例如,如圖5所示,處理器可以包含單個(gè)PE 502。如上所述,該P(yáng)E通常包含一個(gè)PU、一個(gè)DMAC和八個(gè)APU。每個(gè)APU包括局部存儲(chǔ)器(LS)。另一方面,處理器可包含觀察器(VS,visualizer)505的結(jié)構(gòu)。如圖5所示,VS 505包含PU 512、DMAC 514和四個(gè)APU,即APU 516、APU 518、APU 520和APU 522。在這種情況下,通常由PE的其它四個(gè)APU占有的芯片封裝內(nèi)空間則由像素引擎508,圖象高速緩存510,以及陰極射線管控制器(CRTC)504占用。根據(jù)PE502或VS 505所需要的通信速度,光接口506也可被包括在芯片封裝內(nèi)。
使用這種標(biāo)準(zhǔn)模塊化的結(jié)構(gòu),可以很容易和有效地構(gòu)建處理器的許多其他變種。例如,圖6所示的處理器包含兩個(gè)芯片封裝,即包含一個(gè)BE的芯片封裝602和包含四個(gè)VS的芯片封裝604。輸入/輸出(I/O)606提供芯片封裝602的BE與網(wǎng)絡(luò)104之間的接口??偩€608提供芯片封裝602與芯片封裝604之間的通信。輸入輸出處理器(IOP)610控制數(shù)據(jù)流入和流出I/O 606。I/O 606可以制造成專用集成電路(ASIC)。從VS輸出的是視頻信號(hào)612。
圖7說明了帶有兩個(gè)光接口704和706的BE 702的芯片封裝,所述光接口用于提供與網(wǎng)絡(luò)104的其它成員(或本地連接的其它芯片封裝)的甚高速通信。BE 702可用作例如網(wǎng)絡(luò)104上的服務(wù)器。
圖8的芯片封裝包含兩個(gè)PE 802和804,以及兩個(gè)VS 806和808。I/O 810提供芯片封裝與網(wǎng)絡(luò)104間的接口。從芯片封裝輸出的是視頻信號(hào)。這種結(jié)構(gòu)可用作例如圖形工作站。
圖9說明了另外一種結(jié)構(gòu)。該結(jié)構(gòu)包含圖8中說明的結(jié)構(gòu)的處理能力的一半。提供一個(gè)PE 902,而不是兩個(gè)PE,并且提供一個(gè)VS 904,而不是兩個(gè)VS。I/O 906的帶寬是圖8中說明的I/O帶寬的一半。然而,這樣的處理器也可用作圖形工作站。
最后一種結(jié)構(gòu)如圖10所示。該處理器僅由一個(gè)單一的VS 1002和I/O 1004組成。這種結(jié)構(gòu)可用作例如PDA。
圖11A說明了光接口在網(wǎng)絡(luò)104的處理器的芯片封裝中的集成。這些光接口將光信號(hào)轉(zhuǎn)換成電信號(hào),并將電信號(hào)轉(zhuǎn)換成光信號(hào),它們可以用各種材料制成,包括例如砷化鎵、鎵鋁砷化物、鍺以及其它元素和化合物。如圖中所示,光接口1104和1106被做在BE 1102的芯片封裝上。BE總線1108提供BE 1102的多個(gè)PE,即PE1110、PE 1112、PE 1114、PE 1116與這些光接口之間的通信。光接口1104包括兩個(gè)端口,即端口1118和端口1120,并且光接口1106也包括兩個(gè)端口,即端口1122和端口1124。端口1118、1120、1122和1124分別連接到光波導(dǎo)1126、1128、1130和1132。通過光接口1104和1106的端口,經(jīng)由這些光波導(dǎo)針對(duì)BE 1102傳送光信號(hào)。
使用這種光波導(dǎo)和每個(gè)BE的四個(gè)光端口可將多個(gè)BE按各種結(jié)構(gòu)連接在一起。例如,如圖11B所示,通過這種光端口可將兩個(gè)或多個(gè)BE,例如BE 1152、BE 1154和BE 1156串行連接在一起。在該例中,BE 1152的光接口1166通過其光端口連接到BE 1154的光接口1160的光端口。以類似的方式,BE 1154上光接口1162的光端口連接到BE 1156上光接口的光端口。
圖11C說明了一種矩陣結(jié)構(gòu)。在該結(jié)構(gòu)中,每個(gè)BE的光接口連接到兩個(gè)其它的BE上。如圖中所示,BE 1172的光接口1188的一個(gè)光端口連接到BE 1176的光接口1182的光端口。光接口1188的另一個(gè)光端口連接到BE 1178的光接口1184的光端口。以類似的方式,BE 1174的光接口1190的一個(gè)光端口連接到BE 1178的光接口1184的另一個(gè)光端口。光接口1190的另一個(gè)光端口連接到BE 1180的光接口1186的光端口。這種矩陣結(jié)構(gòu)可按類似的方式延及其它BE。
通過使用串聯(lián)結(jié)構(gòu)或矩陣結(jié)構(gòu),可構(gòu)建網(wǎng)絡(luò)104的具有任何期望大小和能力的處理器。當(dāng)然,可以向BE的光接口,或其PE數(shù)目多于或少于BE的PE數(shù)目的處理器增加附加端口,以形成其它的結(jié)構(gòu)。
圖12A說明了用于BE的DRAM的控制系統(tǒng)和結(jié)構(gòu)。類似的控制系統(tǒng)和結(jié)構(gòu)被用于具有其它大小和包含或多或少的PE的處理器中。如圖中所示,交叉開關(guān)將構(gòu)成BE 1201的四個(gè)PE的各個(gè)DMAC1210連接到八個(gè)存儲(chǔ)體控制器1206。每個(gè)存儲(chǔ)體控制器1206控制DRAM 1204的八個(gè)存儲(chǔ)體1208(圖中只畫出了四個(gè))。因此,DRAM1204總共包含64個(gè)存儲(chǔ)體。在優(yōu)選實(shí)施例中,DRAM 1204具有64兆字節(jié)的容量,并且每個(gè)存儲(chǔ)體具有1兆字節(jié)的容量。在該優(yōu)選實(shí)施例中,每個(gè)存儲(chǔ)體中的最小可尋址單位是1024位塊。
BE 1201還包括開關(guān)單元1212。開關(guān)單元1212能夠使BE上的其它APU緊密耦合到BE 1201,以便訪問DRAM 1204。因此,第二BE可以緊密耦合到第一BE,并且每個(gè)BE的每個(gè)APU可以尋址的存儲(chǔ)器位置的數(shù)量是通??捎葾PU訪問的存儲(chǔ)器位置的數(shù)量的兩倍。通過例如開關(guān)單元1212的開關(guān)單元,可以直接從第一BE的DRAM到第二BE的DRAM,或從第二BE的DRAM到第一BE的DRAM的讀取或?qū)懭霐?shù)據(jù)。
例如,如圖12B所示,為完成這種寫操作,第一BE的APU,例如,BE 1222的APU 1220向第二BE的DRAM,例如BE 1226的DRAM 1228(而不是象通常的情況那樣向BE 1222的DRAM 1224)的存儲(chǔ)器位置發(fā)出寫命令。BE 1222的DMAC 1230通過交叉開關(guān)1221向存儲(chǔ)體控制器1234發(fā)送寫命令,并且存儲(chǔ)體控制器1234向連接到存儲(chǔ)體控制器1234的外部端口1232發(fā)送該命令。BE 1226的DMAC1238接收該寫命令,并將該命令傳送到BE 1226的開關(guān)單元1240。開關(guān)單元1240識(shí)別包含在寫命令中的DRAM地址,并通過BE 1226的存儲(chǔ)體控制器1242向DRAM 1228的存儲(chǔ)體1244發(fā)送存儲(chǔ)在該地址中的數(shù)據(jù)。因此,開關(guān)單元1240使DRAM 1224和DRAM 1228能夠充當(dāng)BE 1222的APU的單獨(dú)存儲(chǔ)空間。
圖13說明了DRAM的64存儲(chǔ)體的結(jié)構(gòu)。這些存儲(chǔ)體排列成八行,即行1302、1304、1306、1308、1310、1312、1314和1316,和八列,即列1320、1322、1324、1326、1328、1330、1332和1334。每行由一個(gè)存儲(chǔ)體控制器控制。因此,每個(gè)存儲(chǔ)體控制器控制八兆字節(jié)的存儲(chǔ)器。
圖14A和14B說明了用于存儲(chǔ)和訪問DRAM的最小可尋址存儲(chǔ)單位,例如1024位塊的不同結(jié)構(gòu)。在圖14A中,DMAC 1402在單個(gè)存儲(chǔ)體1404中存儲(chǔ)八個(gè)1024位塊1406。另一方面,在圖14B中,當(dāng)DMAC 1412讀和寫包含1024位的數(shù)據(jù)塊時(shí),這些塊在兩個(gè)存儲(chǔ)體,即存儲(chǔ)體1414和存儲(chǔ)體1416之間交錯(cuò)。因此,這些存儲(chǔ)體中的每一個(gè)包含16個(gè)數(shù)據(jù)塊,并且每個(gè)數(shù)據(jù)塊包含512位。這種交錯(cuò)可有利于更快速地訪問DRAM,并且在某些應(yīng)用程序的處理中是非常有用的。
圖15說明了PE中的DMAC 1504的體系結(jié)構(gòu)。如圖中所示,構(gòu)成DMAC 1506的結(jié)構(gòu)硬件在整個(gè)PE中分布,使得每個(gè)APU 1502直接訪問DMAC 1506的結(jié)構(gòu)節(jié)點(diǎn)1504。每個(gè)節(jié)點(diǎn)執(zhí)行適合于由該節(jié)點(diǎn)直接訪問的APU進(jìn)行存儲(chǔ)器訪問的邏輯。
圖16示出了DMAC的一個(gè)可選實(shí)施例,即非分布式體系結(jié)構(gòu)。在這種情況下,DMAC 1606的結(jié)構(gòu)硬件是集中式的。APU 1602和PU 1604通過局部PE總線1607與DMAC 1606通信。DMAC1606通過交叉開關(guān)連接到總線1608??偩€1608連接到DRAM1610。
如上所述,PE的所有多個(gè)APU可獨(dú)立訪問共享DRAM中的數(shù)據(jù)。結(jié)果,在第二APU請(qǐng)求第一APU的局部存儲(chǔ)器中的特定數(shù)據(jù)時(shí),第一APU可能正對(duì)該數(shù)據(jù)進(jìn)行操作。如果此時(shí)將數(shù)據(jù)從共享DRAM提供到第二APU,則數(shù)據(jù)可能是無效的,因?yàn)榈谝籄PU正在進(jìn)行的處理可能改變數(shù)據(jù)的值。因此,如果此時(shí)第二處理器接收到了來自共享DRAM的數(shù)據(jù),則第二處理器可能會(huì)產(chǎn)生錯(cuò)誤的結(jié)果。例如,數(shù)據(jù)可能是全局變量的特定值。如果第一處理器在其處理過程中改變了該值,則第二處理器會(huì)接收到一個(gè)過期值。因此,必須有一種方案來同步APU對(duì)共享DRAM中的存儲(chǔ)器位置進(jìn)行的數(shù)據(jù)讀出和寫入。該方案必須防止從這樣的存儲(chǔ)器位置讀取數(shù)據(jù),其中另一APU當(dāng)前正在其局部存儲(chǔ)器中對(duì)該存儲(chǔ)器位置進(jìn)行操作,因此此時(shí)讀取的數(shù)據(jù)不是最新的,并且防止向存儲(chǔ)當(dāng)前數(shù)據(jù)的存儲(chǔ)器位置寫數(shù)據(jù)。
為了解決這些問題,對(duì)于DRAM的每個(gè)可尋址存儲(chǔ)器位置,在DRAM中分配一個(gè)附加存儲(chǔ)段以存儲(chǔ)有關(guān)該存儲(chǔ)器位置中存儲(chǔ)的數(shù)據(jù)的狀態(tài)信息。這種狀態(tài)信息包括滿/空(F/E)位,向存儲(chǔ)器位置請(qǐng)求數(shù)據(jù)的APU的標(biāo)識(shí)(APU ID),以及從其讀取所請(qǐng)求數(shù)據(jù)的APU局部存儲(chǔ)器的地址(LS地址)。DRAM的可尋址存儲(chǔ)器位置可以具有任意大小。在優(yōu)選實(shí)施例中,該大小是1024位。
將F/E位設(shè)成1表示存儲(chǔ)在相關(guān)存儲(chǔ)器位置中的數(shù)據(jù)是最新的。相反,將F/E位設(shè)成0表示存儲(chǔ)在相關(guān)存儲(chǔ)器位置中的數(shù)據(jù)不是最新的。如果APU在該位被設(shè)成0時(shí)請(qǐng)求數(shù)據(jù),則禁止APU立即讀取數(shù)據(jù)。在這種情況下,標(biāo)識(shí)請(qǐng)求數(shù)據(jù)的APU的APU ID,和LS地址被記入到附加存儲(chǔ)段中,其中LS地址標(biāo)識(shí)在數(shù)據(jù)變?yōu)樽钚聰?shù)據(jù)時(shí),向讀入數(shù)據(jù)的APU的局部存儲(chǔ)器中的存儲(chǔ)器位置。
對(duì)于APU的局部存儲(chǔ)器中的每個(gè)存儲(chǔ)器位置,也分配附加存儲(chǔ)段。該附加存儲(chǔ)段存儲(chǔ)一個(gè)位,稱為“忙位(busy bit)”。該忙位用于保留相關(guān)的LS存儲(chǔ)器位置,用于存儲(chǔ)從DRAM取回的特定數(shù)據(jù)。如果針對(duì)局部存儲(chǔ)器中特定存儲(chǔ)器位置的忙位被設(shè)成1,則APU只能將該存儲(chǔ)器位置用于寫入這些特定數(shù)據(jù)。反之,如果針對(duì)局部存儲(chǔ)器中特定存儲(chǔ)器位置的忙位被設(shè)成0,則APU可將該存儲(chǔ)器位置用于寫入任何數(shù)據(jù)。
圖17A-17O說明了使用F/E位,APU ID,LS地址以及忙位來同步針對(duì)PE的共享DRAM的數(shù)據(jù)讀寫的方式的幾個(gè)例子。
如圖17A所示,一或多個(gè)例如PE 1720的PE與DRAM 1702交互。PE 1720包括APU 1722和APU 1740。APU 1722包括控制邏輯1724,而APU 1740包括控制邏輯1742。APU 1722還包括局部存儲(chǔ)器1726。該局部存儲(chǔ)器包括多個(gè)可尋址存儲(chǔ)器位置1728。APU 1740包括局部存儲(chǔ)器1744,該局部存儲(chǔ)器還包括多個(gè)可尋址存儲(chǔ)器位置1746。所有這些可尋址存儲(chǔ)器位置的大小最好是1024位。
附加存儲(chǔ)段與每個(gè)LS可尋址存儲(chǔ)器位置相關(guān)。例如,存儲(chǔ)段1729和1734分別與局部存儲(chǔ)器位置1731和1732相關(guān),并且,存儲(chǔ)段1752與局部存儲(chǔ)器位置1750相關(guān)。如上所述,“忙位”存儲(chǔ)在這些附加存儲(chǔ)段的每一個(gè)中。局部存儲(chǔ)器位置1732如圖所示具有幾個(gè)X,表示該存儲(chǔ)器位置包含數(shù)據(jù)。
DRAM 1702包含多個(gè)可尋址存儲(chǔ)器位置1704,包括存儲(chǔ)器位置1706和1708。這些存儲(chǔ)器位置的大小最好也是1024位。附加存儲(chǔ)段也與這些存儲(chǔ)器位置中的每一個(gè)相關(guān)。例如,附加存儲(chǔ)段1760與存儲(chǔ)器位置1706相關(guān),并且附加存儲(chǔ)段1762與存儲(chǔ)器位置1708相關(guān)。與存儲(chǔ)在每個(gè)存儲(chǔ)器位置的數(shù)據(jù)相關(guān)的狀態(tài)信息被存儲(chǔ)在與該存儲(chǔ)器位置相關(guān)的存儲(chǔ)段中。如上所述,該狀態(tài)信息包括F/E位,APUID和LS地址。例如,對(duì)于存儲(chǔ)器位置1708,該狀態(tài)信息包括F/E位1712,APU ID 1714和LS地址1716。
通過使用狀態(tài)信息和忙位,能夠?qū)崿F(xiàn)在PE或一組PE的APU中間對(duì)共享DRAM的數(shù)據(jù)讀寫同步。
圖17B說明了從APU 1722的LS存儲(chǔ)器位置1732向DRAM1702的存儲(chǔ)器位置1708的數(shù)據(jù)同步寫入的啟動(dòng)。APU 1722的控制器1724啟動(dòng)這些數(shù)據(jù)的同步寫入。因?yàn)榇鎯?chǔ)器位置1708是空的,所以F/E位1712設(shè)為0。結(jié)果,可以將LS存儲(chǔ)器位置1732中的數(shù)據(jù)寫入存儲(chǔ)器位置1708中。另一方面,如果該位設(shè)為1以指示存儲(chǔ)器位置1708是滿的,并且包含的數(shù)據(jù)是最新和有效的,則控制器1722將收到錯(cuò)誤消息,并且被禁止向該存儲(chǔ)器位置寫入數(shù)據(jù)。
圖17C示出了成功地向存儲(chǔ)器位置1708同步寫入數(shù)據(jù)的結(jié)果。寫入的數(shù)據(jù)被存儲(chǔ)在存儲(chǔ)器位置1708中,并將F/E位1712設(shè)成1。該設(shè)定指示存儲(chǔ)器位置1708是滿的,并且該存儲(chǔ)器位置中的數(shù)據(jù)是最新和有效的。
圖17D說明了從DRAM 1702的存儲(chǔ)器位置1708同步讀取數(shù)據(jù)到局部存儲(chǔ)器1744的LS存儲(chǔ)器位置1750的啟動(dòng)。為啟動(dòng)該讀取操作,將LS存儲(chǔ)器位置1750的存儲(chǔ)段1752中的忙位設(shè)成1,以為這些數(shù)據(jù)保留該存儲(chǔ)器位置。將該忙位設(shè)成1可禁止APU 1740在該存儲(chǔ)器位置存儲(chǔ)其它數(shù)據(jù)。
接著如圖17E所示,控制邏輯1742針對(duì)DRAM 1702的存儲(chǔ)器位置1708發(fā)出同步讀命令。因?yàn)榕c該存儲(chǔ)器位置相關(guān)的F/E位1712被設(shè)成1,所以存儲(chǔ)在存儲(chǔ)器位置1708中的數(shù)據(jù)被認(rèn)為是最新和有效的。因此,將F/E位1712設(shè)成0,以準(zhǔn)備將數(shù)據(jù)從存儲(chǔ)器位置1708傳送到LS存儲(chǔ)器位置1750。該設(shè)定如圖17F所示。將該位設(shè)成0表示在讀取這些數(shù)據(jù)之后,存儲(chǔ)器位置1708中的數(shù)據(jù)無效。
接下來,如圖17G所示,將存儲(chǔ)器位置1708中的數(shù)據(jù)從存儲(chǔ)器位置1708讀到LS存儲(chǔ)器位置1750中。圖17H示出了最終的狀態(tài)。將存儲(chǔ)器位置1708中的數(shù)據(jù)的副本存儲(chǔ)到LS存儲(chǔ)器位置1750中。F/E位被設(shè)成0以指示存儲(chǔ)器位置1708中的數(shù)據(jù)無效。這種無效是APU 1740對(duì)這些數(shù)據(jù)進(jìn)行的修改的結(jié)果。存儲(chǔ)段1752中的忙位也被設(shè)成0。該設(shè)定指示LS存儲(chǔ)器位置1750現(xiàn)在可被APU 1740用于任何目的,即該LS存儲(chǔ)器位置不再處于等待接收特定數(shù)據(jù)的保留狀態(tài)。因此,APU 1740可對(duì)LS存儲(chǔ)器位置1750進(jìn)行任何目的的訪問。
圖17I-17O說明了當(dāng)針對(duì)DRAM 1702的存儲(chǔ)器位置的F/E位設(shè)成0以指示該存儲(chǔ)器位置中的數(shù)據(jù)不是最新或有效時(shí),從DRAM1702的存儲(chǔ)器位置(例如存儲(chǔ)器位置1708)同步讀數(shù)據(jù)到APU的局部存儲(chǔ)器的LS存儲(chǔ)器位置(例如局部存儲(chǔ)器1744的LS存儲(chǔ)器位置1752)的操作。如圖17I所示,為啟動(dòng)這種傳送,將LS存儲(chǔ)器位置1750的存儲(chǔ)段1752中的忙位設(shè)成1,以保留該LS存儲(chǔ)器位置用于該數(shù)據(jù)傳輸。接下來,如圖17J所示,控制邏輯1742針對(duì)DRAM1702的存儲(chǔ)器位置1708發(fā)出同步讀命令。由于與該存儲(chǔ)器位置相關(guān)的F/E位,即F/E位1712被設(shè)成0,所以存儲(chǔ)器位置1708中存儲(chǔ)的數(shù)據(jù)是無效的。結(jié)果,向控制邏輯1742發(fā)送信號(hào),以阻止從該存儲(chǔ)器位置立即讀取數(shù)據(jù)。
接著,如圖17K所示,將用于該讀命令的APU ID 1714和LS地址1716寫入到存儲(chǔ)段1762中。在這種情況下,將針對(duì)APU 1740的APU ID和針對(duì)LS存儲(chǔ)器位置1750的LS存儲(chǔ)器位置寫入到存儲(chǔ)段1762中。因此,當(dāng)存儲(chǔ)器位置1708中的數(shù)據(jù)變成最新時(shí),使用該APU ID和LS存儲(chǔ)器位置來確定當(dāng)前數(shù)據(jù)要發(fā)送到的位置。
當(dāng)APU將數(shù)據(jù)寫入該存儲(chǔ)器位置時(shí),存儲(chǔ)器位置1708中的數(shù)據(jù)變?yōu)橛行Ш妥钚碌?。圖17L說明了從例如APU 1722的存儲(chǔ)器位置1732到存儲(chǔ)器位置1708的數(shù)據(jù)同步寫操作。因?yàn)獒槍?duì)該存儲(chǔ)器位置的F/E位被設(shè)為0,所以這些數(shù)據(jù)的這種同步寫是許可的。
如圖17M所示,在寫操作之后,存儲(chǔ)器位置1708中的數(shù)據(jù)變成最新和有效的。因此,立即從存儲(chǔ)段1762讀取來自存儲(chǔ)段1762的APU ID 1714和LS地址,然后將該信息從該存儲(chǔ)段中刪除。還將F/E位1712設(shè)成0,以期立即讀取存儲(chǔ)器位置1708中的數(shù)據(jù)。如圖17N所示,當(dāng)讀取APU ID 1714和LS地址1716后,立即將該信息用于將存儲(chǔ)器位置1708中的有效數(shù)據(jù)讀到APU 1740的LS存儲(chǔ)器位置1750中。最終狀態(tài)示于圖17O。該圖示出從存儲(chǔ)器位置1708復(fù)制到存儲(chǔ)器位置1750的有效數(shù)據(jù),存儲(chǔ)段1752中的忙位設(shè)為0,并且存儲(chǔ)段1762中的F/E位1712設(shè)為0。將此忙位設(shè)成0允許LS存儲(chǔ)器位置1750現(xiàn)在可被APU 1740進(jìn)行任何目的的訪問。將F/E位設(shè)成0指示存儲(chǔ)器位置1708中的數(shù)據(jù)不再是最新和有效的。
圖18根據(jù)對(duì)應(yīng)于存儲(chǔ)器位置的存儲(chǔ)段中存儲(chǔ)的F/E位的狀態(tài),APU ID和LS地址,概括了上述操作和DRAM的存儲(chǔ)器位置的各種狀態(tài)。存儲(chǔ)器位置可有三種狀態(tài)。這三種狀態(tài)是空狀態(tài)1880,其中F/E位設(shè)成0,并且不針對(duì)APU ID或LS地址提供信息;滿狀態(tài)1882,其中F/E位設(shè)成1,并且不針對(duì)APU ID或LS地址提供信息;阻塞狀態(tài)1884,其中F/E位設(shè)成0,并且針對(duì)APU ID和LS地址提供信息。
如該圖所示,在空狀態(tài)1880中,允許同步寫操作,并且導(dǎo)致切換到滿狀態(tài)1882。而同步讀操作導(dǎo)致切換到阻塞狀態(tài)1884,因?yàn)楫?dāng)存儲(chǔ)器位置處于空狀態(tài)時(shí),存儲(chǔ)器位置中的數(shù)據(jù)不是最新的。
在滿狀態(tài)1882中,允許同步讀操作,并導(dǎo)致切換到空狀態(tài)1880。另一方面,滿狀態(tài)1882下的同步寫操作被禁止,以防止覆蓋有效數(shù)據(jù)。如果在這種狀態(tài)中試圖進(jìn)行這種寫操作,則不發(fā)生狀態(tài)改變,并且向APU的相應(yīng)控制邏輯發(fā)送錯(cuò)誤消息。
在阻塞狀態(tài)1884中,允許對(duì)存儲(chǔ)器位置進(jìn)行同步數(shù)據(jù)寫操作,并導(dǎo)致切換到空狀態(tài)1880。另一方面,阻塞狀態(tài)1884下的同步讀操作被禁止,以防止與較早的、導(dǎo)致這種狀態(tài)的同步讀操作發(fā)生沖突。如果在阻塞狀態(tài)1884下試圖進(jìn)行同步讀操作,則不發(fā)生狀態(tài)改變,并且向APU的對(duì)應(yīng)控制邏輯發(fā)送錯(cuò)誤消息。
上述用于針對(duì)共享DRAM的同步讀和寫數(shù)據(jù)操作的方案還可用于節(jié)省通常被處理器專用于針對(duì)外部設(shè)備讀寫數(shù)據(jù)的計(jì)算資源。該輸入/輸出(I/O)功能可由PU執(zhí)行。然而,通過使用該同步方案的修改方案,運(yùn)行適當(dāng)程序的APU可執(zhí)行該功能。例如,通過使用該方案,接收由外部設(shè)備發(fā)出的、用于從I/O接口傳輸數(shù)據(jù)的中斷請(qǐng)求的PU可以委托該APU來處理這個(gè)請(qǐng)求。然后,APU向I/O接口發(fā)出同步寫命令。該接口則通知外部設(shè)備現(xiàn)在可以向DRAM寫入數(shù)據(jù)。接下來,APU向DRAM發(fā)出同步讀命令,以將DRAM的有關(guān)存儲(chǔ)空間設(shè)成阻塞狀態(tài)。APU還將APU局部存儲(chǔ)器中接收數(shù)據(jù)所需的存儲(chǔ)器位置的忙位設(shè)成1。在阻塞狀態(tài)中,與DRAM的有關(guān)存儲(chǔ)空間相關(guān)的附加存儲(chǔ)段包含APU的ID和APU局部存儲(chǔ)器的有關(guān)存儲(chǔ)器位置的地址。接著,外部設(shè)備發(fā)出同步寫命令,以直接向DRAM的有關(guān)存儲(chǔ)空間寫入數(shù)據(jù)。由于該存儲(chǔ)空間處于阻塞狀態(tài),所以立即將數(shù)據(jù)從該空間讀到附加存儲(chǔ)段中所標(biāo)識(shí)的APU局部存儲(chǔ)器的存儲(chǔ)器位置上。然后將針對(duì)這些存儲(chǔ)器位置的忙位設(shè)成0。當(dāng)外部設(shè)備完成數(shù)據(jù)的寫操作時(shí),APU向PU發(fā)出表明傳輸完成的信號(hào)。
因此,通過使用這個(gè)方案,可處理來自外部設(shè)備的數(shù)據(jù)傳輸,并使PU的計(jì)算負(fù)荷最小。然而,被委派此功能的APU應(yīng)當(dāng)能夠向PU發(fā)出中斷請(qǐng)求,并且外部設(shè)備應(yīng)當(dāng)直接訪問DRAM。
每個(gè)PE的DRAM包括多個(gè)“沙箱”。沙箱定義了共享DRAM的一個(gè)區(qū)域,如果超出此區(qū)域,特定APU或特定一組APU不能讀或?qū)憯?shù)據(jù)。這些沙箱提供了防止正被一個(gè)APU處理的數(shù)據(jù)遭到正被另一個(gè)APU處理的數(shù)據(jù)破壞的安全性。這些沙箱還允許從網(wǎng)絡(luò)104向特定沙箱下載軟件單元,而不存在軟件單元破壞整個(gè)DRAM中的任何數(shù)據(jù)的可能性。在本發(fā)明中,用DRAM和DMAC的硬件來實(shí)現(xiàn)沙箱。通過用硬件而不是軟件來實(shí)現(xiàn)沙箱,可獲得速度和安全性方面的優(yōu)勢(shì)。
PE的PU控制分配給APU的沙箱。由于PU通常只操作受信的程序,例如操作系統(tǒng),該方案不會(huì)危及安全性。根據(jù)該方案,PU建立并維護(hù)關(guān)鍵字控制表。圖19示出了該關(guān)鍵字控制表。如該圖所示,關(guān)鍵字控制表1902的每個(gè)條目包含針對(duì)APU的標(biāo)識(shí)(ID)1904,針對(duì)該APU的APU關(guān)鍵字1906,和關(guān)鍵字掩碼1908。該關(guān)鍵字掩碼的使用將在后面進(jìn)行說明。關(guān)鍵字控制表1902最好存儲(chǔ)在相對(duì)較快的存儲(chǔ)器中,例如靜態(tài)隨機(jī)存取存儲(chǔ)器(SRAM),并且與DMAC相關(guān)。關(guān)鍵字控制表1902中的條目由PU控制。當(dāng)APU請(qǐng)求針對(duì)DRAM的特定存儲(chǔ)器位置讀寫數(shù)據(jù)時(shí),DMAC對(duì)照與該存儲(chǔ)器位置相關(guān)的存儲(chǔ)器存取關(guān)鍵字,來評(píng)估關(guān)鍵字控制表1902中分配給該APU的APU關(guān)鍵字1906。
如圖20所示,給DRAM 2002的每個(gè)可尋址存儲(chǔ)器位置2006分配一個(gè)專用存儲(chǔ)段2010。在該專用存儲(chǔ)段中存儲(chǔ)針對(duì)存儲(chǔ)器位置的存儲(chǔ)器存取關(guān)鍵字2012。如上所述,另一個(gè)附加專用存儲(chǔ)段2008也與每個(gè)可尋址存儲(chǔ)器位置2006相關(guān),并且存儲(chǔ)用于針對(duì)存儲(chǔ)器位置讀寫數(shù)據(jù)的同步信息。
在操作中,APU向DMAC發(fā)出DMA命令。該命令包括DRAM 2002的存儲(chǔ)器位置2006的地址。在執(zhí)行該命令之前,DMAC使用APU的ID 1904在關(guān)鍵字控制表1902中查找發(fā)出請(qǐng)求的APU的關(guān)鍵字1906。然后,DMAC將發(fā)出請(qǐng)求的APU的APU關(guān)鍵字1906與專用存儲(chǔ)段2010中存儲(chǔ)的、和APU試圖訪問的DRAM存儲(chǔ)器位置相關(guān)的存儲(chǔ)器存取關(guān)鍵字2012進(jìn)行比較。如果這兩個(gè)關(guān)鍵字不匹配,則不執(zhí)行DMA命令。另一方面,如果這兩關(guān)鍵字匹配,則DMA命令繼續(xù)進(jìn)行,并且執(zhí)行所請(qǐng)求的存儲(chǔ)器訪問。
圖21說明了另一可選實(shí)施例。在該實(shí)施例中,PU同樣也維護(hù)存儲(chǔ)器存取控制表2102。存儲(chǔ)器存取控制表2102包含針對(duì)DRAM中每個(gè)沙箱的條目。在圖21的特定例子中,DRAM包含64個(gè)沙箱。存儲(chǔ)器存取控制表2102中的每個(gè)條目包含沙箱的標(biāo)識(shí)(ID)2104,存儲(chǔ)器基地址2106,沙箱大小2108,存儲(chǔ)器存取關(guān)鍵字2110和存取關(guān)鍵字掩碼2110。存儲(chǔ)器基地址2106提供DRAM中的、開始特定存儲(chǔ)器沙箱的地址。沙箱大小2108提供沙箱的大小,并且因此提供特定沙箱的終點(diǎn)。
圖22是使用關(guān)鍵字控制表1902和存儲(chǔ)器存取控制表2102執(zhí)行DMA命令的步驟的流程圖。在步驟2202中,APU向DMAC發(fā)出用于訪問沙箱中的一個(gè)特定存儲(chǔ)器位置或多個(gè)位置的DMA命令。該命令包括沙箱ID 2104,用于標(biāo)識(shí)被請(qǐng)求訪問的特定沙箱。在步驟2204中,DMAC使用APU的ID 1904在關(guān)鍵字控制表1902中查找發(fā)出請(qǐng)求的APU的關(guān)鍵字1906。在步驟2206中,DMAC使用命令中的沙箱ID 2104在存儲(chǔ)器存取控制表2102中查找與該沙箱相關(guān)的存儲(chǔ)器存取關(guān)鍵字2110。在步驟2208中,DMAC將分配給發(fā)出請(qǐng)求的APU的APU關(guān)鍵字1906與和沙箱相關(guān)的存取關(guān)鍵字2110進(jìn)行比較。在步驟2210中,確定這兩個(gè)關(guān)鍵字是否匹配。如果這兩個(gè)關(guān)鍵字不匹配,則處理轉(zhuǎn)到步驟2212,其中DMA命令不繼續(xù)執(zhí)行,并向發(fā)出請(qǐng)求的APU,PU或二者發(fā)送錯(cuò)誤消息。另一方面,如果在步驟2210中發(fā)現(xiàn)兩個(gè)關(guān)鍵字匹配,則處理進(jìn)行到步驟2214,其中DMAC執(zhí)行DMA命令。
針對(duì)APU關(guān)鍵字和存儲(chǔ)器存取關(guān)鍵字的關(guān)鍵字掩碼為該系統(tǒng)提供了更大的靈活性。針對(duì)關(guān)鍵字的關(guān)鍵字掩碼將被屏蔽位轉(zhuǎn)換成通配符。例如,如果與APU關(guān)鍵字1906相關(guān)的關(guān)鍵字掩碼1908的最后兩位被設(shè)成掩碼”(例如通過將關(guān)鍵字掩碼1908中的這些位設(shè)為1來指定),那么APU關(guān)鍵字可以是1或0,并且仍然與存儲(chǔ)器存取關(guān)鍵字匹配。例如,APU關(guān)鍵字可以是1010。該APU關(guān)鍵字通常只允許訪問具有存取關(guān)鍵字1010的沙箱。然而,如果將用于該APU關(guān)鍵字的APU關(guān)鍵字掩碼設(shè)成0001,則可使用該APU關(guān)鍵字來實(shí)現(xiàn)對(duì)存取關(guān)鍵字為1010或1011的沙箱的訪問。類似地,掩碼設(shè)為0001的存取關(guān)鍵字1010可被APU關(guān)鍵字為1010或1011的APU訪問。因?yàn)榭赏瑫r(shí)使用APU關(guān)鍵字掩碼和存儲(chǔ)器關(guān)鍵字掩碼,所以可確定APU對(duì)沙箱的各種可訪問性。
本發(fā)明還為系統(tǒng)101的處理器提供了新的編程模型。該編程模型使用軟件單元102??梢詫⑦@些單元發(fā)送到網(wǎng)絡(luò)104上的任何處理器來進(jìn)行處理。這種新的編程模型還利用系統(tǒng)101的獨(dú)特模塊化體系結(jié)構(gòu)和系統(tǒng)101的處理器。
APU直接從APU局部存儲(chǔ)器處理軟件單元。APU不直接對(duì)DRAM中的任何數(shù)據(jù)或程序進(jìn)行操作。在APU處理這些數(shù)據(jù)和程序之前,將DRAM中的數(shù)據(jù)和程序讀取到APU的局部存儲(chǔ)器中。因此,APU的局部存儲(chǔ)器包括程序計(jì)數(shù)器,堆棧,和用于執(zhí)行這些程序的其它軟件組件。PU通過向DMAC發(fā)出直接存儲(chǔ)器存取(DMA)命令來控制APU。
圖23示出了軟件單元102的結(jié)構(gòu)。如該圖所示,軟件單元(例如軟件單元2302)包含路由信息部份2304和主體2306。路由信息部份2304中包含的信息取決于網(wǎng)絡(luò)104的協(xié)議。路由信息部份2304包含標(biāo)頭(header)2308,目的ID 2310,源ID 2312和回復(fù)ID 2314。目的ID包括網(wǎng)絡(luò)地址。例如,在TCP/IP協(xié)議下,網(wǎng)絡(luò)地址是網(wǎng)際協(xié)議(IP)地址。目的ID 2310還包括PE和APU的身份信息,其中應(yīng)當(dāng)向該P(yáng)E和APU發(fā)送單元以進(jìn)行處理。源ID 2314包含網(wǎng)絡(luò)地址,并標(biāo)識(shí)發(fā)出單元的PE和APU,以便在必要時(shí)允許目的PE和APU得到關(guān)于單元的附加信息。回復(fù)ID 2314包含網(wǎng)絡(luò)地址,并標(biāo)識(shí)關(guān)于單元的查詢,和單元處理的結(jié)果應(yīng)當(dāng)被送往的PE和APU。
單元主體2306包含與網(wǎng)絡(luò)協(xié)議無關(guān)的信息。圖23的分解部分示出了單元主體2306的詳細(xì)情況。單元主體2306的標(biāo)頭2320標(biāo)識(shí)單元主體的開始。單元接口2322包含使用單元所必需的信息。該信息包括全局唯一ID 2324,所需的APU 2326,沙箱大小2328,以及前一個(gè)單元ID 2330。
全局唯一ID 2324在整個(gè)網(wǎng)絡(luò)104中唯一標(biāo)識(shí)軟件單元2302。根據(jù)源ID 2312,例如源ID 2312中的PE或APU的唯一標(biāo)識(shí),以及軟件單元2302的產(chǎn)生或發(fā)送時(shí)間和日期產(chǎn)生全局唯一ID 2324。所需的APU 2326提供執(zhí)行該單元所需的最小數(shù)量的APU。沙箱大小2328提供所需APU中為執(zhí)行單元而需要的相關(guān)DRAM中的受保護(hù)存儲(chǔ)器的數(shù)量。前一個(gè)單元ID 2330提供需要順序執(zhí)行(例如流數(shù)據(jù))的一組單元中的前一個(gè)單元的身份信息。
實(shí)現(xiàn)部份2332包含單元的核心信息。該信息包括DMA命令表2334,程序2336,以及數(shù)據(jù)2338。程序2336包含要由APU運(yùn)行的程序(稱為“apulets”),例如APU程序2360和2362,而數(shù)據(jù)2338包含要通過這些程序處理的數(shù)據(jù)。DMA命令表2334包含開始程序所需要的一系列DMA命令。這些DMA命令包括DMA命令2340、2350、2355和2358。PU向DMAC發(fā)出這些DMA命令。
DMA命令2340包括VID 2342。VID 2342是APU的虛擬ID,它在DMA命令發(fā)出時(shí)被映射到物理ID。DMA命令2340還包括裝入命令2344和地址2346。裝入命令2344指示APU將特定信息從DRAM讀取到局部存儲(chǔ)器中。地址2346提供DRAM中包含該信息的虛擬地址。該信息可以是例如來自程序部份2336的程序,來自數(shù)據(jù)部份2338的數(shù)據(jù),或者其它數(shù)據(jù)。最后,DMA命令2340包括局部存儲(chǔ)器地址2348。該地址標(biāo)識(shí)局部存儲(chǔ)器中應(yīng)當(dāng)裝入信息的地址。DMA命令2350包含類似的信息。也可能有其它的DMA命令。
DMA命令表2334還包括一系列的啟動(dòng)(kick)命令,例如啟動(dòng)命令2355和2358。啟動(dòng)命令是由PU向APU發(fā)出的、用來啟動(dòng)單元的處理的命令。DMA啟動(dòng)命令2355包括虛擬APU ID 2352,啟動(dòng)命令2354,以及程序計(jì)數(shù)器2356。虛擬APU ID 2352標(biāo)識(shí)要被啟動(dòng)的APU,啟動(dòng)命令2354提供有關(guān)的啟動(dòng)命令,程序計(jì)數(shù)器2356提供針對(duì)用于執(zhí)行程序的程序計(jì)數(shù)器的地址。DMA啟動(dòng)命令2358提供針對(duì)同一APU或另一APU的類似信息。
如前面提到的,PU把APU看作獨(dú)立的處理器,而不是協(xié)處理器。因此,為了控制APU執(zhí)行的處理,PU使用類似于遠(yuǎn)程過程調(diào)用的命令。這些命令被叫做“APU遠(yuǎn)程過程調(diào)用”(ARPC)。PU通過向DMAC發(fā)出一系列DMA命令來執(zhí)行ARPC。DMAC將APU程序及其相關(guān)的棧幀裝入到APU的局部存儲(chǔ)器中。然后,PU向APU發(fā)出初始啟動(dòng)來執(zhí)行APU程序。
圖24說明了用于執(zhí)行apulet的ARPC的步驟。圖24的第一部分2402說明了在啟動(dòng)指定APU對(duì)apulet的處理時(shí)PU執(zhí)行的步驟,并且圖24的第二部分2404說明了指定APU在處理apulet時(shí)執(zhí)行的步驟。
在步驟2410中,PU對(duì)apulet進(jìn)行評(píng)估,并且然后指定用于處理apulet的APU。在步驟2412中,PU通過向DMAC發(fā)出設(shè)定用于所需的一或多個(gè)沙箱的存儲(chǔ)器存取關(guān)鍵字的命令,在DRAM中分配用于執(zhí)行apulet的空間。在步驟2414中,PU使能針對(duì)指定APU的中斷請(qǐng)求,以通知apulet的完成。在步驟2418中,PU向DMAC發(fā)出將apulet從DRAM裝入到APU的局部存儲(chǔ)器中的DMA命令。在步驟2420中,執(zhí)行該DMA命令,并且將apulet從DRAM讀取到APU的局部存儲(chǔ)器中。在步驟2422中,PU向DMAC發(fā)出將與apulet相關(guān)的棧幀從DRAM裝入到APU的局部存儲(chǔ)器中的DMA命令。在步驟2423中,執(zhí)行該DMA命令,并且將棧幀從DRAM讀取到APU的局部存儲(chǔ)器中。在步驟2424中,PU發(fā)出使DMAC向APU分配關(guān)鍵字的DMA命令,以允許APU針對(duì)在步驟2412中指定的一或多個(gè)硬件沙箱讀/寫數(shù)據(jù)。在步驟2426中,DMAC用分配給APU的關(guān)鍵字更新關(guān)鍵字控制表(KTAB)。在步驟2428中,PU向APU發(fā)出啟動(dòng)程序處理的DMA命令“啟動(dòng)”。依據(jù)特定的apulet,PU在執(zhí)行特定ARPC時(shí)可以發(fā)出其它DMA命令。
如上面所指出的,圖24中的第二部分2404說明了APU在執(zhí)行apulet時(shí)所執(zhí)行的步驟。在步驟2430中,APU響應(yīng)在步驟2428發(fā)出的啟動(dòng)命令而開始執(zhí)行apulet。在步驟2432中,在apulet的指示下,APU評(píng)估apulet的相關(guān)棧幀。在步驟2434中,APU向DMAC發(fā)出多個(gè)DMA命令,以便將根據(jù)棧幀的需要而指定的數(shù)據(jù)從DRAM裝入到APU的局部存儲(chǔ)器中。在步驟2436中,執(zhí)行這些DMA命令,并且將數(shù)據(jù)從DRAM讀取到APU的局部存儲(chǔ)器中。在步驟2438中,APU執(zhí)行apulet并產(chǎn)生結(jié)果。在步驟2440中,APU向DMAC發(fā)出把結(jié)果存儲(chǔ)在DRAM中的DMA命令。在步驟2442中,執(zhí)行該DMA命令,并將apulet的結(jié)果從APU的局部存儲(chǔ)器寫到DRAM中。在步驟2444中,APU向PU發(fā)出中斷請(qǐng)求,以通知ARPC已經(jīng)完成。
APU在PU的指示下獨(dú)立執(zhí)行任務(wù)的能力允許PU將一組APU,以及與一組APU相關(guān)的存儲(chǔ)器資源專用于執(zhí)行長時(shí)間(extended)任務(wù)。例如,PU可以將一或多個(gè)APU,以及與這一或多個(gè)APU相關(guān)的一組存儲(chǔ)器沙箱專用于接收在長時(shí)間段內(nèi)通過網(wǎng)絡(luò)104發(fā)送的數(shù)據(jù),并且將該期間內(nèi)接收到的數(shù)據(jù)指引到一或多個(gè)APU及其相關(guān)的存儲(chǔ)器沙箱,以便進(jìn)行進(jìn)一步的處理。該能力尤其利于處理通過網(wǎng)絡(luò)104傳輸?shù)牧鲾?shù)據(jù),例如MPEG流或流式ATRAC音頻或視頻數(shù)據(jù)。PU可將一或多個(gè)APU及其相關(guān)的存儲(chǔ)器沙箱專用于接收這些數(shù)據(jù),并將一或多個(gè)其它APU及其相關(guān)的存儲(chǔ)器沙箱專用于解壓縮和進(jìn)一步處理這些數(shù)據(jù)。換句話說,PU可在一組APU及其相關(guān)的存儲(chǔ)器沙箱中間建立用于處理這些數(shù)據(jù)的專用流水線關(guān)系。
然而,為了有效地執(zhí)行這種處理,在沒有發(fā)生包含數(shù)據(jù)流的apulet處理時(shí),流水線的專用APU和存儲(chǔ)器沙箱應(yīng)當(dāng)保持為該流水線專用。換句話說,在此期間專用APU及其相關(guān)的沙箱應(yīng)處于保留狀態(tài)。在完成apulet處理時(shí)進(jìn)行的APU及其相關(guān)一或多個(gè)存儲(chǔ)器沙箱的保留被稱為“常駐終止(resident termination)”。響應(yīng)來自PU的指令發(fā)生常駐終止。
圖25、圖26A和圖26B說明了包含用于處理流數(shù)據(jù)(例如MPEG流數(shù)據(jù))的一組APU及其相關(guān)沙箱的專用流水線結(jié)構(gòu)的建立。如圖25所示,流水線結(jié)構(gòu)的部件包括PE 2502和DRAM 2518。PE2502包括PU 2504、DMAC 2506和多個(gè)APU,包括APU 2508、APU 2510和APU 2512。PU 2504、DMAC 2506和這些APU中間的通信通過PE總線2514進(jìn)行。寬帶總線2516將DMAC 2506連接到DRAM 2518。DRAM 2518包括多個(gè)沙箱,例如沙箱2520、沙箱2522、沙箱2524和沙箱2526。
圖26A說明了建立專用流水線的步驟。在步驟2610中,PU2504分配APU 2508以處理網(wǎng)絡(luò)apulet。網(wǎng)絡(luò)apulet包含用于處理網(wǎng)絡(luò)104的網(wǎng)絡(luò)協(xié)議的程序。在這種情況下,該協(xié)議是傳輸控制協(xié)議/網(wǎng)際協(xié)議(TCP/IP)。符合該協(xié)議的TCP/IP數(shù)據(jù)包通過網(wǎng)絡(luò)104進(jìn)行傳輸。一旦接收到數(shù)據(jù)包,APU 2508處理這些數(shù)據(jù)包,并將包中的數(shù)據(jù)裝配到軟件單元102中。在步驟2612中,在網(wǎng)絡(luò)apulet的處理完成時(shí),PU 2504便命令A(yù)PU 2508執(zhí)行常駐終止。在步驟2614中,PU 2504指定PU 2510和2512來處理MPEG apulet。在步驟2615中,當(dāng)MEPG apulet處理完成時(shí),PU 2504也命令A(yù)PU 2510和2512執(zhí)行常駐終止。在步驟2616中,PU 2504指定沙箱2520作為由APU 2508和APU 2510訪問的源沙箱。在步驟2618中,PU 2504指定沙箱2522作為由APU 2510訪問的目的沙箱。在步驟2620中,PU2504指定沙箱2524作為由APU 2508和APU 2512訪問的源沙箱。在步驟2622中,PU 2504指定沙箱2526作為由APU 2512訪問的目的沙箱。在步驟2624中,APU 2510和APU 2512分別向源沙箱2520和源沙箱2524中的存儲(chǔ)器塊發(fā)送同步讀命令,以便將這些存儲(chǔ)器塊設(shè)成阻塞狀態(tài)。最后,處理轉(zhuǎn)到步驟2628,其中完成專用流水線的建立,并且保留專用于該流水線的資源。因此,APU 2508、2510、2512及其相關(guān)沙箱2520、2522和2524進(jìn)入保留狀態(tài)。
圖26B說明了通過這個(gè)專用流水線處理MPEG流數(shù)據(jù)的步驟。在步驟2630中,處理網(wǎng)絡(luò)apulet的APU 2508在其局部存儲(chǔ)器中接收來自網(wǎng)絡(luò)104的TCP/IP數(shù)據(jù)包。在步驟2632中,APU 2508處理這些TCP/IP數(shù)據(jù)包,并將這些包中的數(shù)據(jù)裝配到軟件單元102中。在步驟2634中,APU 2508檢查軟件單元的標(biāo)頭2320(圖23),以確定單元中是否包含MEPG數(shù)據(jù)。如果單元中不包含MPEG數(shù)據(jù),則在步驟2636中,APU 2508將單元發(fā)送到DRAM 2518中指定的通用沙箱,以便由專用流水線中未包含的其它APU處理其它數(shù)據(jù)。APU2508還將此次發(fā)送通知給PU 2504。
另一方面,如果軟件單元包含MPEG數(shù)據(jù),則在步驟2638中,APU 2508檢查單元的前一個(gè)單元ID 2330(圖23),以識(shí)別單元所屬的MPEG數(shù)據(jù)流。在步驟2640中,APU 2508選擇專用流水線中用于處理該單元的APU。在這種情況下,APU 2508選擇APU 2510來處理這些數(shù)據(jù)。該選擇是根據(jù)前一個(gè)單元ID 2330和負(fù)荷平衡因素來進(jìn)行的。例如,如果前一個(gè)單元ID 2330表明該軟件單元所屬的MPEG數(shù)據(jù)流的前一個(gè)軟件單元被發(fā)送到APU 2510進(jìn)行處理,則通常也會(huì)將當(dāng)前軟件單元發(fā)送到APU 2510進(jìn)行處理。在步驟2642中,APU 2508發(fā)出將MPEG數(shù)據(jù)寫到沙箱2520的同步寫命令。由于該沙箱在之前被設(shè)成阻塞狀態(tài),所以在步驟2644中,自動(dòng)將MPEG數(shù)據(jù)從沙箱2520讀到APU 2510的局部存儲(chǔ)器中。在步驟2646中,APU 2510在其局部存儲(chǔ)器中處理MPEG數(shù)據(jù)以產(chǎn)生視頻數(shù)據(jù)。在步驟2648中,APU 2510將視頻數(shù)據(jù)寫到沙箱2522中。在步驟2650中,APU 2510向沙箱2520發(fā)出同步讀取命令,以使該沙箱準(zhǔn)備接收另外的MPEG數(shù)據(jù)。在步驟2652中,APU 2510處理常駐終止。這種處理使這個(gè)APU進(jìn)入保留狀態(tài),在保留狀態(tài)期間,該APU等待處理MPEG數(shù)據(jù)流中另外的MPEG數(shù)據(jù)。
在一組APU及其相關(guān)沙箱中間可建立用于處理其它類型據(jù)的其它專用結(jié)構(gòu)。例如,如圖27所示,可以建立專用APU組,例如APU 2702、2708和2714,用于對(duì)三維物體執(zhí)行幾何變換以產(chǎn)生二維顯示表。其它APU可進(jìn)一步處理(呈現(xiàn))這些二維顯示表以產(chǎn)生像素?cái)?shù)據(jù)。為執(zhí)行這種處理,將沙箱專用于APU 2702、2708和2414,以存儲(chǔ)三維物體,以及對(duì)這些物體進(jìn)行處理而產(chǎn)生的顯示表。例如,源沙箱2704、2710和2716專用于存儲(chǔ)分別由APU 2702、APU 2708和APU 2714處理的三維物體。以類似的方式,目的沙箱2706、2712和2718專用于存儲(chǔ)分別由APU 2702、APU 2708和APU 2714對(duì)這些三維物體進(jìn)行處理而得到的顯示表。
協(xié)調(diào)APU 2720專用于在其局部存儲(chǔ)器中接收來自目的沙箱2706、2712和2718的顯示表。APU 2720在這些顯示表中進(jìn)行仲裁,并把它們發(fā)送到用于呈現(xiàn)像素?cái)?shù)據(jù)的其他APU。
系統(tǒng)101的處理器還使用絕對(duì)定時(shí)器。絕對(duì)定時(shí)器向APU及PE的其它單元提供時(shí)鐘信號(hào),該時(shí)鐘信號(hào)獨(dú)立于驅(qū)動(dòng)這些單元的時(shí)鐘信號(hào),并比其更快。絕對(duì)定時(shí)器的使用示于圖28。
如圖所示,絕對(duì)定時(shí)器為APU執(zhí)行任務(wù)確定時(shí)間預(yù)算。該時(shí)間預(yù)算提供完成這些任務(wù)的時(shí)間,該時(shí)間要比APU處理這些任務(wù)所需的時(shí)間要長。結(jié)果,對(duì)于每項(xiàng)任務(wù),在時(shí)間預(yù)算內(nèi)存在忙時(shí)間段和等待時(shí)間段。根據(jù)這個(gè)時(shí)間預(yù)算編寫所有apulet以用于處理,而不管APU的實(shí)際處理時(shí)間和速度如何。
例如,對(duì)于PE的特定APU,特定任務(wù)可在時(shí)間預(yù)算2804的忙時(shí)間段2802中被執(zhí)行。由于忙時(shí)間段2802比時(shí)間預(yù)算2804短,所以在時(shí)間預(yù)算中出現(xiàn)等待時(shí)間段2806。在該等待時(shí)間段中,APU進(jìn)入休眠模式,期間APU消耗的功率較小。
在時(shí)間預(yù)算2804期滿之前,其它APU或PE的其它單元不期望得到任務(wù)處理的結(jié)果。因此,通過使用由絕對(duì)定時(shí)器確定的時(shí)間預(yù)算,不管APU的實(shí)際處理速度如何,APU的處理結(jié)果總是協(xié)調(diào)的。
將來,APU的處理速度會(huì)變得更快。然而,由絕對(duì)定時(shí)器確定的時(shí)間預(yù)算將保持相同。例如,如圖28所示,將來的APU將在更短的時(shí)間內(nèi)執(zhí)行任務(wù),因而將有更長的等待時(shí)間段。因此,忙時(shí)間段2808比忙時(shí)間段2802短,而等待時(shí)間段2810比等待時(shí)間段2806長。然而,由于根據(jù)由絕對(duì)定時(shí)器確定的相同時(shí)間預(yù)算編寫程序以進(jìn)行處理,因此,仍然保持APU間處理結(jié)果的協(xié)調(diào)。結(jié)果,較快的APU可以處理為較慢APU編寫的處理程序,而不會(huì)在期待該處理結(jié)果時(shí)引起沖突。
作為對(duì)用于建立APU之間的協(xié)調(diào)的絕對(duì)定時(shí)器的代替,對(duì)于因增強(qiáng)的或不同的運(yùn)算速度而產(chǎn)生的APU并行處理的協(xié)調(diào)問題,PU或一或多個(gè)指定APU可分析APU在處理apulet時(shí)執(zhí)行的特定指令或微代碼??梢栽谥噶钪胁迦搿盁o操作”(“NOOP”)指令,并由某些APU來執(zhí)行,以便保持APU的處理按apulet預(yù)期的正確順序完成。通過在指令中插入這些NOOP,可以保持APU執(zhí)行所有指令的正確定時(shí)。
雖然這里參照特定實(shí)施例對(duì)本發(fā)明進(jìn)行了說明,但是我們應(yīng)該理解,這些實(shí)施例只是為了示例性地說明本發(fā)明的原理和應(yīng)用。因此,我們應(yīng)該理解,在不脫離由所附權(quán)利要求限定的本發(fā)明的精神和范圍的條件下,可以對(duì)示例性的實(shí)施例進(jìn)行許多種修改,并且可以設(shè)計(jì)出其它的方案。
權(quán)利要求
1.一種計(jì)算機(jī)處理器,包括主存儲(chǔ)器,用于存儲(chǔ)程序和與所述程序相關(guān)的數(shù)據(jù);多個(gè)第一處理單元,用于處理所述程序和所述相關(guān)數(shù)據(jù),每個(gè)所述第一處理單元包含與所述第一處理單元排它性相關(guān)的局部存儲(chǔ)器;第二處理單元,用于控制所述第一處理單元對(duì)所述程序和所述相關(guān)數(shù)據(jù)的所述處理,通過指示從所述主存儲(chǔ)器向與所述第一處理單元中的任何一個(gè)排它性相關(guān)的局部存儲(chǔ)器傳送所述程序中的一個(gè)和與所述一個(gè)程序相關(guān)的數(shù)據(jù),并且命令所述一個(gè)第一處理單元啟動(dòng)所述一個(gè)程序的處理,所述第二處理單元可以指示所述一個(gè)第一處理單元處理所述一個(gè)程序,所述一個(gè)第一處理單元此后處理來自與所述一個(gè)第一處理單元排它性相關(guān)的所述局部存儲(chǔ)器的所述一個(gè)程序,和與所述一個(gè)程序相關(guān)的所述數(shù)據(jù)。
2.如權(quán)利要求1所述的處理器,其中所述所述主存儲(chǔ)器是動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器。
3.如權(quán)利要求1所述的處理器,其中所述主存儲(chǔ)器包含多個(gè)存儲(chǔ)器位置,每個(gè)所述存儲(chǔ)器位置包含與所述存儲(chǔ)器位置排它性相關(guān)的存儲(chǔ)段。
4.如權(quán)利要求3所述的處理器,其中每個(gè)所述存儲(chǔ)段存儲(chǔ)狀態(tài)信息,所述狀態(tài)信息指示所述存儲(chǔ)段的相關(guān)存儲(chǔ)器位置中存儲(chǔ)的數(shù)據(jù)的狀態(tài),第一處理單元的身份和存儲(chǔ)器地址。
5.如權(quán)利要求4所述的處理器,其中所述狀態(tài)信息指示所述存儲(chǔ)段的相關(guān)存儲(chǔ)器位置中存儲(chǔ)的所述數(shù)據(jù)的有效性,所述身份指示所述第一處理單元中的特定一個(gè)的身份,而所述存儲(chǔ)器地址指示與所述特定一個(gè)第一處理單元排它性相關(guān)的局部存儲(chǔ)器內(nèi)的存儲(chǔ)位置。
6.如權(quán)利要求1所述的處理器,其中每個(gè)所述第一處理單元是單指令多數(shù)據(jù)處理器。
7.如權(quán)利要求1所述的處理器,其中每個(gè)所述第一處理單元包含一組寄存器,多個(gè)浮點(diǎn)單元和一或多個(gè)總線,所述總線將所述寄存器組連接到所述多個(gè)浮點(diǎn)單元。
8.如權(quán)利要求7所述的處理器,其中每個(gè)所述第一處理單元還包含多個(gè)整數(shù)單元和一或多個(gè)總線,所述總線將所述多個(gè)整數(shù)單元連接到所述寄存器組。
9.如權(quán)利要求1所述的處理器,還包括光接口和光波導(dǎo),所述光接口可以將所述處理器產(chǎn)生的電信號(hào)轉(zhuǎn)換成光學(xué)信號(hào)以便從所述處理器發(fā)送,并且可以將發(fā)送到所述處理器的光學(xué)信號(hào)轉(zhuǎn)換成電信號(hào),所述光波導(dǎo)被連接到所述光接口以便發(fā)送所述光學(xué)信號(hào)。
10.如權(quán)利要求1所述的處理器,其中所述局部存儲(chǔ)器是靜態(tài)隨機(jī)存取存儲(chǔ)器。
11.如權(quán)利要求1所述的處理器,還包括用于產(chǎn)生像素?cái)?shù)據(jù)的呈現(xiàn)引擎,用于臨時(shí)存儲(chǔ)所述像素?cái)?shù)據(jù)的幀緩沖區(qū),和用于將所述像素?cái)?shù)據(jù)轉(zhuǎn)換成視頻信號(hào)的顯示控制器。
12.如權(quán)利要求1所述的處理器,其中與所述一個(gè)程序相關(guān)的數(shù)據(jù)包含棧幀。
13.如權(quán)利要求1所述的處理器,其中每個(gè)所述第一處理單元包括控制器,用于在所述程序和所述相關(guān)數(shù)據(jù)的所述處理期間指示從所述主存儲(chǔ)器向與所述第一處理單元排它性相關(guān)的局部存儲(chǔ)器傳送其它數(shù)據(jù)。
14.如權(quán)利要求1所述的處理器,其中所述主存儲(chǔ)器包括多個(gè)存儲(chǔ)體控制器和交叉開關(guān),所述交叉開關(guān)用于在每個(gè)所述第一處理單元和所述主存儲(chǔ)器之間提供連接。
15.如權(quán)利要求1所述的處理器,還包括用于禁止每個(gè)所述第一處理單元針對(duì)所述局部存儲(chǔ)器中的、所述第一處理單元不與之排它性相關(guān)的任何局部存儲(chǔ)器讀或?qū)憯?shù)據(jù)。
16.如權(quán)利要求1所述的處理器,還包括直接存儲(chǔ)器存取控制器。
17.如權(quán)利要求16所述的處理器,其中通過向所述直接存儲(chǔ)器存取控制器發(fā)出命令,所述第二處理單元指示向與所述一個(gè)第一處理單元排它性相關(guān)的局部存儲(chǔ)器傳送所述一個(gè)程序和與所述一個(gè)程序相關(guān)的所述數(shù)據(jù),并且響應(yīng)所述命令,所述直接存儲(chǔ)器存取控制器向與所述一個(gè)第一處理單元排它性相關(guān)的局部存儲(chǔ)器傳送所述一個(gè)程序。
18.如權(quán)利要求17所述的處理器,其中通過向所述直接存儲(chǔ)器存取控制器發(fā)出命令,所述一個(gè)第一處理單元指示從所述主存儲(chǔ)器向與所述一個(gè)第一處理單元排它性相關(guān)的局部存儲(chǔ)器傳送用于處理所述一個(gè)程序的其它數(shù)據(jù),并且響應(yīng)所述命令,所述直接存儲(chǔ)器存取控制器向與所述一個(gè)第一處理單元排它性相關(guān)的局部存儲(chǔ)器傳送所述其它數(shù)據(jù)。
19.如權(quán)利要求18所述的處理器,其中通過向所述直接存儲(chǔ)器存取控制器發(fā)出命令,所述一個(gè)第一處理單元指示從與所述一個(gè)第一處理單元排它性相關(guān)的局部存儲(chǔ)器向所述主存儲(chǔ)器傳送所述一個(gè)程序的所述處理所產(chǎn)生的數(shù)據(jù),并且響應(yīng)所述命令,所述直接存儲(chǔ)器存取控制器從與所述一個(gè)處理單元排它性相關(guān)的局部存儲(chǔ)器向所述主存儲(chǔ)器傳送所述產(chǎn)生的數(shù)據(jù)。
20.一種處理設(shè)備,包括主存儲(chǔ)器,用于存儲(chǔ)程序和與所述程序相關(guān)的數(shù)據(jù);一或多個(gè)處理器模塊,每個(gè)所述處理器模塊包括多個(gè)第一處理單元,用于處理所述程序和所述相關(guān)數(shù)據(jù);多個(gè)局部存儲(chǔ)器,每個(gè)所述局部存儲(chǔ)器與所述第一處理單元中的不同一個(gè)排它性相關(guān);第二處理單元,用于控制所述第一處理單元對(duì)所述程序和所述相關(guān)數(shù)據(jù)的所述處理,其中通過指示從所述主存儲(chǔ)器向與所述第一處理單元中的任何一個(gè)排它性相關(guān)的局部存儲(chǔ)器傳送所述程序中的一個(gè)和與所述一個(gè)程序相關(guān)的數(shù)據(jù),并且命令所述一個(gè)第一處理單元啟動(dòng)所述一個(gè)程序的處理,所述第二處理單元可以指示所述一個(gè)第一處理單元處理所述一個(gè)程序,所述一個(gè)第一處理單元此后處理來自所述局部存儲(chǔ)器的所述一個(gè)程序和與所述一個(gè)程序相關(guān)的所述數(shù)據(jù)。
21.如權(quán)利要求20所述的處理設(shè)備,其中至少一個(gè)所述處理器模塊的所述多個(gè)第一處理單元的數(shù)量為8個(gè)。
22.如權(quán)利要求20所述的處理設(shè)備,其中至少一個(gè)所述處理器模塊的所述第一處理單元的數(shù)量為4個(gè)。
23.如權(quán)利要求20所述的處理設(shè)備,其中每個(gè)所述處理器模塊只包括一個(gè)所述第二處理單元。
24.如權(quán)利要求20所述的處理設(shè)備,其中每個(gè)所述處理器模塊還包括直接存儲(chǔ)器存取控制器,所述直接存儲(chǔ)器存取控制器響應(yīng)來自所述第一處理單元和所述第二處理單元的命令以完成所述主存儲(chǔ)器和所述局部存儲(chǔ)器之間的所述程序和所述相關(guān)數(shù)據(jù)的傳送。
25.如權(quán)利要求20所述的處理設(shè)備,其中每個(gè)所述處理器模塊還包括局部總線,用于提供所述第一處理單元和所述第二處理單元間的通信。
26.如權(quán)利要求20所述的處理設(shè)備,還包括模塊總線,用于提供所述處理器模塊間的通信。
27.如權(quán)利要求20所述的處理設(shè)備,還包括存儲(chǔ)器總線,用于提供每個(gè)所述處理器模塊和所述主存儲(chǔ)器之間的通信。
28.如權(quán)利要求20所述的處理設(shè)備,其中每個(gè)所述第一處理單元包括多個(gè)浮點(diǎn)單元和多個(gè)整數(shù)單元。
29.如權(quán)利要求20所述的處理設(shè)備,還包括一或多個(gè)光接口,每個(gè)所述光接口可以將來自所述處理器模塊的電信號(hào)轉(zhuǎn)換成光學(xué)信號(hào)以便從所述處理設(shè)備發(fā)送,并且將發(fā)送到所述處理設(shè)備的光學(xué)信號(hào)轉(zhuǎn)換成電信號(hào)。
30.如權(quán)利要求20所述的處理設(shè)備,其中至少一個(gè)所述處理器模塊還包括用于產(chǎn)生像素?cái)?shù)據(jù)的呈現(xiàn)引擎,用于臨時(shí)存儲(chǔ)所述像素?cái)?shù)據(jù)的幀緩沖區(qū),和用于將所述像素?cái)?shù)據(jù)轉(zhuǎn)換成視頻信號(hào)的顯示控制器。
31.如權(quán)利要求27所述的處理設(shè)備,其中所述存儲(chǔ)器總線包括多個(gè)存儲(chǔ)體控制器和交叉開關(guān),所述交叉開關(guān)用于在每個(gè)所述處理器模塊和所述主存儲(chǔ)器之間提供連接。
32.如權(quán)利要求31所述的處理設(shè)備,還包括第二交叉開關(guān),用于在所述主存儲(chǔ)器和所述處理設(shè)備外部的設(shè)備之間提供連接。
33.如權(quán)利要求31所述的處理設(shè)備,其中所述主存儲(chǔ)器包括多個(gè)存儲(chǔ)體,并且每個(gè)所述存儲(chǔ)體控制器控制對(duì)所述存儲(chǔ)體的不同組的訪問。
34.如權(quán)利要求33所述的處理設(shè)備,其中所述存儲(chǔ)體的數(shù)量為64個(gè)。
35.如權(quán)利要求20所述的處理設(shè)備,其中所述處理器模塊的數(shù)量為1個(gè)。
36.如權(quán)利要求20所述的處理設(shè)備,其中所述處理器模塊的數(shù)量為2個(gè)。
37.如權(quán)利要求20所述的處理設(shè)備,其中所述處理器模塊的數(shù)量為4個(gè)。
38.如權(quán)利要求20所述的處理設(shè)備,其中所述處理器模塊的數(shù)量為8個(gè)。
全文摘要
提供一種用于寬帶網(wǎng)絡(luò)上的高速處理的計(jì)算機(jī)體系結(jié)構(gòu)和編程模型。該體系結(jié)構(gòu)使用一致的模塊化結(jié)構(gòu),公用計(jì)算模塊和統(tǒng)一的軟件單元。公用計(jì)算模塊包括控制處理器,多個(gè)處理單元,由處理單元處理其程序的多個(gè)局部存儲(chǔ)器,直接存儲(chǔ)器存取控制器和共享主存儲(chǔ)器。還提供了一種用于協(xié)調(diào)處理單元從共享主存儲(chǔ)器讀數(shù)據(jù)和向其寫數(shù)據(jù)的同步系統(tǒng)和方法。提供了硬件沙箱結(jié)構(gòu),用于確保處理單元正在處理的程序中間的數(shù)據(jù)不會(huì)被破壞。
文檔編號(hào)G06F15/16GK1496518SQ0280634
公開日2004年5月12日 申請(qǐng)日期2002年3月19日 優(yōu)先權(quán)日2001年3月22日
發(fā)明者鈴置雅一, 山崎剛 申請(qǐng)人:索尼計(jì)算機(jī)娛樂公司