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