專利名稱:在多處理器系統(tǒng)中使用直接存儲器存取傳輸來進(jìn)行列表傳輸?shù)姆椒把b置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及在多處理系統(tǒng)中傳輸數(shù)據(jù)的方法及裝置。
背景技術(shù):
實時多媒體應(yīng)用變得越來越重要。這些應(yīng)用要求非??斓奶幚硭俣龋T
如每秒數(shù)千兆比特的凝:據(jù)。 一些處理系統(tǒng)采用單處理器來實現(xiàn)快處理速度, 而另一些則利用多處理器結(jié)構(gòu)來實現(xiàn)。在多處理器系統(tǒng)中,多個子處理器可 以并行(或者至少協(xié)調(diào)地)操作以獲得期望的處理結(jié)果。
近年來,由于前沿計算機(jī)應(yīng)用變得越來越復(fù)雜,并且對處理系統(tǒng)提出了 不斷增長的需求,所以已經(jīng)存在無法滿足的、對較快計算機(jī)處理數(shù)據(jù)吞吐量 的需要。圖形應(yīng)用屬于對處理系統(tǒng)提出最高需求的那些應(yīng)用,這是由于它們 在相當(dāng)短的時段內(nèi)要求大量的數(shù)據(jù)存取、數(shù)據(jù)計算、和數(shù)據(jù)處理,以獲得期 望的視覺效果。
在一些處理系統(tǒng)中,在計算機(jī)結(jié)構(gòu)允許在設(shè)備和存儲器之間直接發(fā)送數(shù) 據(jù)而無需使任何(多個)微處理器巻入數(shù)據(jù)傳輸中的情況下,采用了直接存 儲器存取(DMA)技術(shù)。該結(jié)構(gòu)通常包括存儲器控制器,該存儲器控制器從 系統(tǒng)的(多個)設(shè)備接收數(shù)據(jù)傳輸命令以產(chǎn)生數(shù)據(jù)傳輸。傳統(tǒng)的DMA命令 可以指定數(shù)據(jù)塊大小、從其中要傳輸數(shù)據(jù)/要將數(shù)據(jù)傳輸?shù)狡渲械南到y(tǒng)存儲器 內(nèi)的開始虛擬地址、以及從其中要傳輸數(shù)據(jù)/要將數(shù)據(jù)傳輸?shù)狡渲械脑O(shè)備的開 始地址。盡管傳統(tǒng)的DMA技術(shù)與非直接存儲器存取技術(shù)相比能夠提高處理 速度,但是它仍然具有局限性。例如,在一些計算應(yīng)用中,諸如使用多處理 系統(tǒng)的圖形處理中,為了獲得期望效果,可能需要來自一個或多個子處理器 的許多DMA傳輸。傳統(tǒng)的途徑將需要一給定的子處理器來發(fā)出許多DMA命 令以實現(xiàn)所有的DMA數(shù)據(jù)傳輸,其對處理器造成負(fù)擔(dān)并且降低處理能力。
發(fā)明內(nèi)容
本發(fā)明的一個或多個實施例可以提供一種改進(jìn)的DMA技術(shù),該DMA技術(shù)將由于發(fā)出許多DMA命令而產(chǎn)生的、處理系統(tǒng)中處理能力的不利損失最 小化。
根據(jù)一個或多個實施例,裝置包括處理器,能夠與共享存儲器有效地 通信并包括本地存儲器,該本地存儲器被適配為執(zhí)行其中的指令;以及直接 存儲器存取控制器(DMAC),耦接到處理器的本地存儲器,并可操作用來響 應(yīng)于處理器發(fā)出的單個DMA命令而使得共享存儲器和本地存儲器之間的多 個數(shù)據(jù)塊的傳輸便利。
優(yōu)選地,該處理器可操作用來在本地存儲器中建立一列表,其包括多個 項目,每個項目至少具有要傳輸?shù)臄?shù)據(jù)塊的開始地址和要傳輸?shù)臄?shù)據(jù)塊的大 小。優(yōu)選地,DMA命令指定該列表中的至少一個項目。DMAC可操作用來 使用在列表的至少一個項目中指定的開始地址和大小,以識別要傳輸?shù)膶?yīng) 數(shù)據(jù)塊并在共享存儲器和本地存儲器之間傳輸這樣的數(shù)據(jù)塊。
優(yōu)選地,列表的項目是鏈接的,使得DMAC可操作用來使用列表中的一 個項目來定位列表中的另一項目。列表的項目包括前向指針和后向指針中的 至少一個以在項目之間建立鏈接。
DMA命令可以被適配為指定要將多個數(shù)據(jù)塊從共享存儲器拷貝到處理 器的本地存儲器。DMA命令還可以被適配為指定要將多個數(shù)據(jù)塊從共享存儲 器的不連續(xù)區(qū)域拷貝到處理器的本地存儲器的連續(xù)區(qū)域。可選擇地或附加地, DMAC可以被適配為通過將多個數(shù)據(jù)塊從共享存儲器的不連續(xù)區(qū)域拷貝到處 理器的本地存儲器的連續(xù)區(qū)域而響應(yīng)DMA命令。
DMA命令可以被適配為指定要將多個數(shù)據(jù)塊從處理器的本地存儲器拷 貝到共享存儲器。DMA命令可以被適配為指定要將多個數(shù)據(jù)塊從處理器的本 地存儲器的連續(xù)區(qū)域拷貝到共享存儲器的不連續(xù)區(qū)域。可選擇地或附加地, DMAC可以被適配為通過將多個數(shù)據(jù)塊從處理器的本地存儲器的連續(xù)區(qū)域拷 貝到共享存儲器的不連續(xù)區(qū)域而響應(yīng)DMA命令。
依據(jù)一個或多個進(jìn)一步實施例, 一種裝置包括多個并行處理器,能夠 與共享存儲器有效地通信,每個處理器包括被適配為執(zhí)行其中的指令的本 地存儲器、和耦接到處理器的本地存儲器的直接存儲器存取控制器(DMAC ); 以及主處理器,可操作耦接到所述多個處理器、能夠耦接到共享存儲器、且 可操作用來管理所述多個處理器。每個處理器的DMAC可搡作用來響應(yīng)于處 理器發(fā)出的單個DMA命令而使得共享存儲器和本地存儲器之間的多個數(shù)據(jù)
塊的傳輸便利。
依據(jù)一個或多個進(jìn)一步實施例, 一種方法包括響應(yīng)于處理器向直接存 儲器存取控制器(DMAC)發(fā)出的單個DMA命令而在共享存儲器和處理器 的本地存儲器之間傳輸多個數(shù)據(jù)塊,其中,處理器能夠與共享存儲器有效地 通信,并且DMAC可操作耦接到本地存儲器。
優(yōu)選地,該方法還包括在本地存儲器內(nèi)建立一列表,其包括多個項目, 每個項目至少具有要傳輸?shù)臄?shù)據(jù)塊的開始地址和要傳輸?shù)臄?shù)據(jù)塊的大小。該 方法還包括使用在列表中的、由DMA命令指定的至少一個項目中指定的 開始地址和大小,以識別要傳輸?shù)膶?yīng)數(shù)據(jù)塊;并且在共享存儲器和本地存 儲器之間傳輸這樣的數(shù)據(jù)塊。
優(yōu)選地,該方法還包括鏈接列表中的項目,使得可以使用列表中的一 個項目來定位列表中的另一項目。列表的項目可以包括前向指針和后向指針 中的至少一個,以在項目之間建立鏈接。
依據(jù)一個或多個進(jìn)一步實施例, 一種存儲介質(zhì)包括軟件程序,該軟件程 序可操作用來使得處理器執(zhí)行包括如下的行為響應(yīng)于由處理器向直接存儲 器存取控制器(DMAC)發(fā)出的單個DMA命令而在共享存儲器和處理器的 本地存儲器之間傳輸多個數(shù)據(jù)塊,其中,處理器能夠與共享存儲器有效地通 信,并且DMAC可操作耦接到本地存儲器。
當(dāng)結(jié)合附圖對本發(fā)明進(jìn)行描述時,對于本領(lǐng)域技術(shù)人員而言,其他方面、 特性、優(yōu)點(diǎn)等將變得明顯。
為了說明本發(fā)明的各方面,用繪圖形式示出了當(dāng)前優(yōu)選的,然而,應(yīng)該 懂得本發(fā)明不僅限于示出的精確布置和手段。
圖1是圖示可以依據(jù)本發(fā)明的一個或多個方面適配的處理系統(tǒng)的結(jié)構(gòu)的
圖2是圖示直接存儲器存取數(shù)據(jù)塊傳輸列表的圖3是圖示依據(jù)本發(fā)明的一個或多個方面的、可以由圖1的處理系統(tǒng)才丸 行的處理步驟的流程圖4是圖示可以依據(jù)本發(fā)明的一個或多個方面適配的具有兩個或多個子 處理器的多處理系統(tǒng)的結(jié)構(gòu)的圖5是圖示可以被用來實現(xiàn)本發(fā)明的一個或多個進(jìn)一步方面的優(yōu)選處理 器元件(PE)的圖6是圖示可以依據(jù)本發(fā)明的一個或多個進(jìn)一步方面適配的圖5的系統(tǒng) 的示例性子處理單元(SPU)的結(jié)構(gòu)的圖;以及
圖7是圖示可以依據(jù)本發(fā)明的一個或多個進(jìn)一步方面適配的圖5的系統(tǒng) 的示例性處理單元(PU)的結(jié)構(gòu)的圖。
具體實施例方式
參考附圖,其中,相似標(biāo)號表示相似元件,在圖1中示出的處理系統(tǒng)100, 其可以被適配為實施本發(fā)明的一個或多個特性。為了簡明和清楚的目的,這 里將參考圖1的方框圖并將其描述為說明裝置100,然而,應(yīng)該懂得可以容 易地將描述應(yīng)用于具有相同效力的方法的各方面。
裝置100優(yōu)選地包括處理器102、本地存儲器104、共享(系統(tǒng)或主)存 儲器106(例如,DRAM)、以及總線108。系統(tǒng)100還可以包括其他設(shè)備, 諸如設(shè)備1、設(shè)備2等,它們可以通過總線108使用共享存儲器106。
可以利用任何能夠從系統(tǒng)存儲器106請求數(shù)據(jù)并處理數(shù)據(jù)以獲得期望結(jié) 果的已知技術(shù)來實現(xiàn)處理器102。例如,可以使用任何能夠執(zhí)行軟件和/或固 件的已知微處理器,包括標(biāo)準(zhǔn)微處理器、分布式微處理器等來實現(xiàn)處理器102。 作為示例,處理器102可以是能夠請求并處理數(shù)據(jù)的圖形處理器,所述數(shù)據(jù) 是諸如包括灰度信息、色彩信息、紋理數(shù)據(jù)、多邊形信息、;枧頻幀信息等的 像素數(shù)據(jù)。
可注意到,本地存儲器104與處理器102位于同一芯片中;然而,本地 存儲器104優(yōu)選地不是傳統(tǒng)的硬件高速緩存,這是由于沒有片上或片外硬件 高速緩存電路、高速緩存寄存器、高速緩存控制器等以實現(xiàn)硬件高速緩存功 能。由于片上空間可能有限,所以本地存儲器104的大小可能比系統(tǒng)存儲器 106小的多。處理器102優(yōu)選地提供數(shù)據(jù)存取請求,以通過總線108將數(shù)據(jù) (其可以包括程序數(shù)據(jù))從系統(tǒng)存儲器106拷貝到本地存儲器104以便進(jìn)行 程序執(zhí)行和數(shù)據(jù)處理。優(yōu)選地,利用直接存儲器存取控制器DMAC 160來實 現(xiàn)使數(shù)據(jù)存取便利的機(jī)制。相對于處理器102和/或本地存儲器104, DMAC 160可以集成或分離布置。
參考圖1-3, DMAC 160優(yōu)選地可搡作用來響應(yīng)于處理器102發(fā)出的單
個DMA命令而使共享存儲器106和本地存儲器104之間的多個數(shù)據(jù)塊的傳 輸便利。為此,處理器102優(yōu)選地可操作用來在本地存儲器104內(nèi)建立至少 一個列表120 (并且有可能多個列表120A、 120B、 120C等),每個列表包括 多個項目122A-N。每個項目122優(yōu)選地至少包括要傳輸?shù)臄?shù)據(jù)塊的開始地址 和要傳輸?shù)臄?shù)據(jù)塊的大小。列表中的每個開始地址和大小項目對應(yīng)于或者限 定本地存儲器104或共享存儲器106內(nèi)的一數(shù)據(jù)塊。該地址可以是虛擬地址, 其需要轉(zhuǎn)換到共享存儲器!06的物理地址。
DMA命令可以指定至少一個項目,諸如列表120A中的項目122A,使 得DMA命令的發(fā)出(動作304 )允許DMAC 160訪問這個項目122A并開始 數(shù)據(jù)塊傳輸。作為響應(yīng),DMAC 160優(yōu)選地可操作用來使用在項目122A中 指定的開始地址和大小來識別要傳輸?shù)膶?yīng)數(shù)據(jù)塊并在共享存儲器106和本 地存儲器104之間傳輸這一數(shù)據(jù)塊(動作306 )。
列表的項目122優(yōu)選地是鏈接的,使得DMAC 160可操作用來使用列表 中的一個項目來定位列表中的另一項目,從而完成列表120中定義的所有塊 的傳輸。例如,在傳輸了與列表120A的項目122A相關(guān)聯(lián)的數(shù)據(jù)塊之后, DMAC 160可以訪問項目122A中的進(jìn)一步信息以找到列表120A中的下一項 目122B。作為示例,列表120的每一項目122可以包括前向指針以與列表120 中的另一項目122建立鏈接。因此,為了討論的目的,列表120A中的第一 項目122A可以包括指向列表120A中的第二項目122B在本地存儲器104中 所處的位置的指針。類似地,列表120A中的第二項目122B可以包括指向列 表120A中的第三項目122C的前向指針??梢灾貜?fù)該過程使得列表120中的 每一項目122都以允許DMAC 160訪問列表120中的每一項目122的方式鏈 接。在可選擇的實施例中,每一項目可以包括后向指針和/或前向指針和后向 指針兩者,以在項目122之間建立期望的鏈接。
在一個或多個實施例中,DMA命令可以被適配為指定要將多個數(shù)據(jù)塊從 共享存儲器106拷貝到處理器102的本地存儲器104。在優(yōu)選實施例中,DMA 命令被適配為指定要將多個數(shù)據(jù)塊從共享存儲器160的不連續(xù)區(qū)域拷貝到處 理器102的本地存儲器104的連續(xù)區(qū)域。在一個或多個進(jìn)一步實施例中, DMAC 160可以不要求依賴于DMA命令本身而通過從共享存取器106的不 連續(xù)區(qū)域向本地存儲器104的連續(xù)區(qū)域拷貝來作出響應(yīng)。
優(yōu)選地,DMA命令被適配為指定要將多個數(shù)據(jù)塊從處理器102的本地存
儲器104拷貝到共享存儲器106。 DMA命令可以被適配為指定從本地存儲器 104的連續(xù)區(qū)域到共享區(qū)域106的不連續(xù)區(qū)域地實施這種傳輸。在一個或多 個進(jìn)一步實施例中,DMAC 160可以不要求依賴于DMA命令來實施從本地 存儲器104的連續(xù)區(qū)域到共享區(qū)域106的不連續(xù)區(qū)域的傳輸。
圖4圖示被適配為實現(xiàn)本發(fā)明的一個或多個進(jìn)一步實施例的多處理系統(tǒng) IOOA。系統(tǒng)100A包括通過總線108相互連接的多個處理器102A-D、相關(guān)聯(lián) 的本地存儲器104A-D、以及共享存儲器106。共享存儲器106在這里也可以 被稱為主存儲器或系統(tǒng)存儲器。盡管作為示例圖示了四個處理器102,但是 在不偏離本發(fā)明范圍的精神和前提下可以利用任何數(shù)目。每個處理器102可
以具有相似結(jié)構(gòu)或具有不同結(jié)構(gòu)。
本地存儲器104優(yōu)選地與它們各自的處理器102位于同一芯片上;然而, 本地存儲器104優(yōu)選地不是傳統(tǒng)的硬件高速緩存,這是由于沒有片上或片外 硬件高速緩存電路、高速緩存寄存器、高速緩存控制器等來實現(xiàn)硬件高速緩 存功能。
處理器102優(yōu)選地提供數(shù)據(jù)存取請求,以通過總線108將數(shù)據(jù)(其可以 包括程序數(shù)據(jù))從系統(tǒng)存儲器106拷貝到它們各自的本地存儲器104中以便 進(jìn)行程序執(zhí)行和數(shù)據(jù)處理。優(yōu)選地,利用直接存儲器存取控制器(DMAC) (未示出)來實現(xiàn)使數(shù)據(jù)存取便利的機(jī)制。關(guān)于本發(fā)明的其他特性,每一處 理器的DMAC優(yōu)選地具有與上面描述實質(zhì)相同的能力。
系統(tǒng)存儲器106優(yōu)選地是通過高寬帶存儲器連接(未示出)來耦接到處 理器102的動態(tài)隨機(jī)存取存儲器(DRAM)。盡管,系統(tǒng)存儲器106優(yōu)選地是 DRAM,但是也可以使用其他部件,例如靜態(tài)隨機(jī)存取存儲器(SRAM)、磁 隨機(jī)存取存儲器(MRAM)、光存儲器、全息存儲器等來實現(xiàn)存儲器106。
優(yōu)選地,使用處理流水線(pipeline)來實現(xiàn)每個存儲器102 ,其中以流 水線形式處理邏輯指令。盡管可以將流水線分為任何數(shù)目的、處理指令的級, 但是流水線通常包括獲取一個或多個指令,對指令進(jìn)行解碼,檢查指令之 間的依賴性,發(fā)出指令,以及執(zhí)行指令。在這點(diǎn)上,處理器102可以包括指 令緩沖器級、指令解碼電路級、依賴性檢測電路級、指令發(fā)出電路級、以及 執(zhí)行級。
處理器102的DMAC優(yōu)選地可操作用來響應(yīng)處理器102中的一個發(fā)出的 單個DMA命令而使共享存儲器106和本地存儲器104中的一個或多個之間
的多個數(shù)據(jù)塊的傳輸便利。為此,處理器102、本地存儲器104、 DMAC等 優(yōu)選地包括與上面關(guān)于圖1-3所述的實質(zhì)上相同的功能。例如,每個處理器 可操作用來在其本地存儲器104內(nèi)建立一個或多個列表120, DMA命令可以 指定至少一個項目,諸如列表120A中的項目122A,并且DMAC可以訪問這 一項目122A,并且通過使用在項目122A中指定的開始地址和大小來識別要 傳輸?shù)膶?yīng)數(shù)據(jù)塊從而開始數(shù)據(jù)塊傳輸。
再次地,可以將多個數(shù)據(jù)塊從共享存儲器106拷貝到處理器102的一個 或多個本地存儲器104,或者可以將多個數(shù)據(jù)塊從處理器102的一個或多個 本地存儲器104拷貝到共享存儲器106。可以將這樣的塊傳輸從共享存儲器 106的不連續(xù)區(qū)域拷貝到處理器102的本地存儲器104的連續(xù)區(qū)域??商鎿Q 地,可以將這樣的傳輸從本地存儲器104的連續(xù)區(qū)域拷貝到共享存儲器106 的不連續(xù)區(qū)域。
在一個或多個實施例中,處理器102、本地存儲器104、和DMAC 160 可以布置在一個共同的半導(dǎo)體基板上。在一個或多個進(jìn)一步實施例中,也可 以將共享存儲器106布置在該共同的半導(dǎo)體基板上或者可以將其分離布置。
在一個或多個可替代實施例中,處理器102中的一個或多個可以操作為 可操作耦接到其他處理器102并且能夠通過總線108耦接到共享存儲器106 的主處理器。該主處理器可以調(diào)度并指揮其他處理器102進(jìn)行的數(shù)據(jù)處理。 然而,與其他處理器102不同,該主處理器可以耦接到硬件高速緩存,該硬 件高速緩存可操作用來高速緩存從共享存儲器106和處理器102的本地存儲 器104的一個或多個中的至少一個中獲得的數(shù)據(jù)。主處理器可以利用諸如 DMA技術(shù)的任何已知技術(shù)來提供數(shù)據(jù)存取請求,以通過總線108將數(shù)據(jù)(其 可以包括程序數(shù)據(jù))從系統(tǒng)存儲器106拷貝到高速緩存中,以進(jìn)行程序執(zhí)行 和數(shù)據(jù)處理。
現(xiàn)在將提供適于實施這里討論的一個或多個特性的、多處理器系統(tǒng)的優(yōu) 選計算機(jī)結(jié)構(gòu)的描述。依據(jù)一個或多個實施例,多處理器系統(tǒng)可以被實現(xiàn)為 可操作為々某體密集型應(yīng)用(諸如,游戲系統(tǒng)、家庭終端、PC系統(tǒng)、服務(wù)器系 統(tǒng)以及工作站)的單機(jī)和/或分布式處理的單片解決方案。在一些應(yīng)用中,諸 如游戲系統(tǒng)和家庭終端,可能必須實時計算。例如,在實時、分布式游戲應(yīng) 用中,必須足夠快地執(zhí)行網(wǎng)絡(luò)圖像解壓、3D計算機(jī)圖形、音頻產(chǎn)生、網(wǎng)絡(luò)通 信、物理模擬、以及人工智能處理中的一個或多個,以給用戶提供實時體驗 的幻覺。因此,多處理器系統(tǒng)中的每個處理器必須在短的且可預(yù)測的時間內(nèi) 完成任務(wù)。
為此,依據(jù)該計算機(jī)結(jié)構(gòu),利用通用的計算模塊(或單元)來構(gòu)造多處 理計算系統(tǒng)的所有處理器。該通用的計算模塊具有一致的結(jié)構(gòu)并且優(yōu)選地采 用相同指令集結(jié)構(gòu)??梢岳靡粋€或多個客戶端、服務(wù)器、PC、移動計算機(jī)、
游戲機(jī)、PDA、機(jī)頂盒、家用電器(appliance),數(shù)字電視機(jī)以及其他使用計 算機(jī)處理器的設(shè)備來構(gòu)成多處理計算機(jī)系統(tǒng)。
如果需要的話,多個計算機(jī)系統(tǒng)也可以是網(wǎng)絡(luò)成員。 一致的模塊化結(jié)構(gòu) 使得多處理計算機(jī)系統(tǒng)能夠進(jìn)行應(yīng)用和數(shù)據(jù)的有效的高速處理,并且如果利 用了網(wǎng)絡(luò),則使得能夠通過網(wǎng)絡(luò)進(jìn)行應(yīng)用和數(shù)據(jù)的快速傳輸。該結(jié)構(gòu)還簡化 了各種大小和處理能力的網(wǎng)絡(luò)成員的構(gòu)造以及由這些成員進(jìn)行處理的應(yīng)用準(zhǔn) 備。
參考圖5,基本處理模塊是處理器元件(PE) 500。 PE 500包括I/0接口 502、處理單元(PU) 504、和多個子處理單元508 (即,子處理單元508A、 子處理單元508B、子處理單元508C、和子處理單元508D)。本地(或內(nèi)部 的)PE總線512在PU 504、子處理單元508和存儲器接口 511之間傳輸數(shù)據(jù) 和應(yīng)用。本地PE總線512可以具有例如傳統(tǒng)結(jié)構(gòu)或者可以;陂實施為分組交換 網(wǎng)絡(luò)。如果被實現(xiàn)為分組交換網(wǎng)絡(luò),盡管需要更多硬件,但是增加了可用帶 寬。
可以使用用于實現(xiàn)數(shù)字邏輯的各種方法來構(gòu)造PE500。然而,PE500優(yōu) 選地被構(gòu)造為在硅基板上采用互補(bǔ)金屬氧化物半導(dǎo)體的單個集成電路。基板 的代替材料包括砷化鎵、砷鋁化鎵以及其他所謂的利用許多種摻雜劑的III-B 化合物。也可以使用超導(dǎo)材料,例如,快速單磁通量子(RSFQ)邏輯電路來 實現(xiàn)PE 500。
PE 500通過高帶寬存儲器連接516與共享(主)存儲器514密切關(guān)聯(lián)。 盡管存儲器514優(yōu)選地為動態(tài)隨機(jī)存取存儲器(DRAM),但是也可以使用其 他部件,例如靜態(tài)隨機(jī)存取存儲器(SRAM)、磁隨機(jī)存取存儲器(MRAM)、 光存儲器、全息存儲器等來實現(xiàn)存儲器514。
PU 504和子處理單元508優(yōu)選地每個耦接到存儲器流程控制器(MFC ), 該存儲器流程控制器包括直接存儲器存取DMA功能,其與存儲器接口 511 組合、使DRAM 514和PE 500的子處理單元508和PU 504之間的數(shù)據(jù)交換
便利。應(yīng)該注意,DMAC和/或存儲器接口 511可以相對于子處理單元508和 PU 504集成或分離布置。實際上,DMAC功能和/或存卞者器接口 511功能可 以與一個或多個(優(yōu)選地,所有)子處理單元508和PU504—起集成。還應(yīng) 該注意,DRAM 514可以相對于PE 5 00集成或分離布置。例如,可以將DRAM 514布置在片外,如由所示出的圖解所指示的,或者可以以集成的形式將 DRAM 514布置在片上。
PU504可以是,例如能夠獨(dú)立處理數(shù)據(jù)和應(yīng)用的標(biāo)準(zhǔn)處理器。在#:作中, PU 504優(yōu)選地調(diào)度并指揮子處理單元處理數(shù)據(jù)和應(yīng)用。子處理單元優(yōu)選地是 單指令多數(shù)據(jù)(SIMD)處理器。在PU 504的控制下,子處理器單元以并行 且獨(dú)立的方式執(zhí)行這些數(shù)據(jù)和應(yīng)用的處理。優(yōu)選地,利用PowerPC核來實現(xiàn) PU504, PowerPC核是利用精簡指令集計算(RISC)技術(shù)的微處理器結(jié)構(gòu)。 RISC使用簡單指令的組合來執(zhí)行更為復(fù)雜的指令。因此,處理器的定時可以 基于較簡單和較快速的操作,使得微處理器能夠在給定的時鐘速度下執(zhí)行更 多的指令。
應(yīng)該注意,可以利用子處理單元508中的起主處理單元作用的一個來實 現(xiàn)PU 504,該起主處理單元作用的一個子處理單元調(diào)度并指揮子處理單元 508進(jìn)行數(shù)據(jù)和應(yīng)用的處理。進(jìn)一步,可以在處理器元件500內(nèi)實現(xiàn)多于一 個的PU。
依據(jù)該模塊化結(jié)構(gòu),特定計算機(jī)系統(tǒng)采用的PE 500的數(shù)目是基于那個系 統(tǒng)所需要的處理能力的。例如,服務(wù)器可以采用四個PE 500,工作站可以利 用兩個PE 500, PDA可以采用一個PE 500。被分配用來處理特定軟件單位 (cell)的PE 500的子處理單元的數(shù)目取決于該單位之內(nèi)的程序和數(shù)據(jù)的復(fù) 雜度和數(shù)量。
圖6圖示了子處理單元(SPU) 508的優(yōu)選結(jié)構(gòu)和功能。SPU 508結(jié)構(gòu)優(yōu) 選地填補(bǔ)通用處理器(被設(shè)計用來在一組范圍較廣的應(yīng)用上獲得高的平均性 能)和專用處理器(被設(shè)計用來在單個應(yīng)用上獲得高性能)之間的空白。SPU 508被設(shè)計用來在游戲應(yīng)用、媒體應(yīng)用、寬帶系統(tǒng)等上獲得高性能,用來對 實時應(yīng)用的程序員提供高度控制。SPU 508的一些能力包括圖形幾何學(xué)流 K線(graphics geometry pipeline) /表面剖分(surface subdivision )、快速j專立 葉變換、圖像處理關(guān)鍵字、流處理、MPEG編碼/解碼、加密、解密、設(shè)備驅(qū) 動器擴(kuò)展、建模、游戲物理學(xué)(game physics )、內(nèi)容創(chuàng)建、以及音頻合成與 處理。
子處理單元508包括兩個基本功能單元,即SPU核510A和存儲器流程 控制器(MFC)510B。 SPU核510A執(zhí)行程序執(zhí)行、數(shù)據(jù)處理等,而MFC510B 執(zhí)行涉及SPU核510A和系統(tǒng)的DRAM 514之間的數(shù)據(jù)傳輸?shù)墓δ堋?br>
SPU核510A包括本地存儲器550、指令單元(IU) 552、寄存器554、 一個或多個浮點(diǎn)執(zhí)行級556以及一個或多個定點(diǎn)執(zhí)行級558。優(yōu)選地,使用 單端口隨機(jī)存取存儲器,諸如SRAM來實現(xiàn)本地存儲器550。雖然大多數(shù)處 理器通過采用高速緩存來降低到存儲器的等待時間,但是SPU核510A實現(xiàn) 相對小的本地存儲器550而不是高速緩存。實際上,為了給實時應(yīng)用(以及 這里提及的其他應(yīng)用)的程序員提供一致的且可預(yù)測的存儲器訪問等待時間, 在SPU 508A內(nèi)不優(yōu)選高速緩存結(jié)構(gòu)。高速緩存的高速緩存命中/未命中特性 產(chǎn)生在幾個周期到幾百個周期內(nèi)變化的易變性存儲器存取時間。這種易變性 消弱了在例如實時應(yīng)用編程中期望的存取計時的可預(yù)測性。通過將DMA傳 輸與數(shù)據(jù)計算相重疊,可以在本地存儲器SRAM 550中實現(xiàn)等待時間隱藏。 這為實時應(yīng)用編程提供了高度控制。由于與DMA傳輸相關(guān)聯(lián)的等待時間和 指令開支超出維護(hù)高速緩存未命中的等待時間的開支,所以當(dāng)DMA傳輸大 小足夠大且足夠可預(yù)測(例如,可以在需要數(shù)據(jù)之前發(fā)出DMA命令)時, SRAM本地存儲器方式有利。
在子處理單元508的給定一個上運(yùn)行的程序使用本地地址來查閱相關(guān)聯(lián) 的本地存儲器550,然而,本地存儲器550的每個位置也被分配有整個系統(tǒng) 的存儲器映射內(nèi)的實際地址(RA)。這允許特權(quán)軟件(privilege software) 將本地存儲器550映射到處理的有效地址(EA ),以使一個本地存儲器550和 另一本地存儲器500之間的DMA傳輸便利。PU 504也可以直接使用有效地址 訪問本地存儲器500。在優(yōu)選實施例中,本地存儲器55Q包括556k字節(jié)的存 儲量,以及寄存器552的容量為128 x 128比特。
優(yōu)選地,使用處理流水線來實現(xiàn)SPU核504A,在處理流水線中,以流水 線形式處理邏輯指令。盡管可以將流水線劃分成任何數(shù)目的處理指令的級, 但是,流水線通常包括獲取一個或多個指令,解碼指令,檢查指令間的依 賴性,發(fā)出指令,以及執(zhí)行指令。鑒于這點(diǎn),IU 552包括指令緩沖器、指令 解碼電路、依賴性檢查電路、以及指令發(fā)出電路。
指令緩沖器優(yōu)選地包括多個寄存器,該多個寄存器耦接到本地存儲器
550并且可操作用來在獲取指令時臨時存儲它們。優(yōu)選地,指令緩沖器操作 使得所有指令作為一組離開寄存器,即基本上同時地。盡管指令緩沖器可以 是任何大小,但是優(yōu)選的是其具有不大于大約兩個或三個寄存器的大小。 一般,解碼電路分解指令并產(chǎn)生執(zhí)行對應(yīng)指令功能的邏輯微操作
(micro-operation )。例如,邏輯微操作可以指定算法和邏輯運(yùn)算、到本地 存儲器550的加載和存儲操作、寄存器源操作數(shù)和/或立即數(shù)操作數(shù)。解碼電 路還可以指示指令使用哪些資源,諸如目標(biāo)寄存器地址、結(jié)構(gòu)資源、功能單 元和/或總線。解碼電路還可以供應(yīng)指示其中需要資源的指令流水線級的信 息。優(yōu)選地,指令解碼電路可操作用來基本上同時地解碼數(shù)目等于指令緩沖 器的寄存器數(shù)目的指令。
依賴性檢查電路包括數(shù)字邏輯電路,其執(zhí)行測試以確定給定指令的操作 數(shù)是否依賴于流水線中的其他指令的操作數(shù)。如果依賴,則在更新這些其他 操作數(shù)(例如,通過許可其他指令完成執(zhí)行)之前,不能執(zhí)行給定指令。優(yōu) 選地,依賴性檢查電路確定同時從解碼器電路發(fā)出的多個指令的依賴性。
指令發(fā)出電路可操作用來向浮點(diǎn)執(zhí)行級556和/或定點(diǎn)執(zhí)行級558發(fā)出指令。
優(yōu)選地,將寄存器554實現(xiàn)為相對大的統(tǒng)一標(biāo)準(zhǔn)的寄存器文件,諸如128 項目的寄存器文件。這允許在沒有要求寄存器重命名以避免寄存器不足的情 況下的深度流水線的(deeply pipelined)高頻實現(xiàn)。重命名硬件通常消耗 處理系統(tǒng)的相當(dāng)部分的面積和能力。因此,當(dāng)軟件循環(huán)展開或其他交織技術(shù) 覆蓋了等待時間時,則可以實現(xiàn)有利的操作。
優(yōu)選地,SPU核510A具有超標(biāo)量結(jié)構(gòu),使得每個時鐘周期發(fā)出多于一個 指令。優(yōu)選地,SPU核510A操作為達(dá)到對應(yīng)于從指令緩沖器同時發(fā)出的指 令的數(shù)目、諸如2和3 (意味著每個時鐘周期發(fā)出兩個或三個指令)的等級 的超標(biāo)量結(jié)構(gòu)。取決于所需要的處理能力,可以采用或大或小數(shù)目的浮點(diǎn)執(zhí) 行級556和定點(diǎn)執(zhí)行級558。在優(yōu)選實施例中,浮點(diǎn)執(zhí)行級556以每秒320 億次浮點(diǎn)運(yùn)算(32 GFL0PS )的速度操作,以及定點(diǎn)執(zhí)行級558以每秒320億 次運(yùn)算(32 G0PS)的速度操作。
優(yōu)選地,MFC510B包括總線接口單元(BIU) 564、存儲器管理單元(醒U) 562、以及直接存儲器存取控制器(DMAC) 560。除DMAC 560以外,MFC 510B 優(yōu)選地以與SPU核510A和總線512相比的一半頻率(一半速度)運(yùn)行,以滿 足低能耗設(shè)計目標(biāo)。MFC 510B可操作用來處理從總線512進(jìn)入到SPU 508的 數(shù)據(jù)和指令,為適AC提供地址轉(zhuǎn)換和為數(shù)據(jù)一致性提供監(jiān)聽操作 (snoop-operation )。 BIU 564提供在總線512和畫U 562和DMAC 560之間 的接口。因此,SPU 508 (包括SPU核510A和MFC 510B)和DMAC 560物理 和/或邏輯連接到總線512。
優(yōu)選地,顧U 562可操作用來將有效地址(從DMA命令取得)轉(zhuǎn)換成用 于存儲器存取的實際地址。例如,,U 562可以將有效地址的高階比特轉(zhuǎn)換 成實際地址比特。然而,優(yōu)選地低階地址比特為不轉(zhuǎn)換的,并且考慮低階地 址比特為邏輯的和物理的兩者,以用于形成實際地址和請求到存儲器的存取。 在一個或多個實施例中,可以基于64比特存儲器管理模型來實現(xiàn)麗U 562, 并且麗U 562可以提供264字節(jié)的有效地址空間,具有4K-、 64K-、 1M-和16M-字節(jié)頁大小和256MB段大小。優(yōu)選地,羅U 562可操作用來為DMA命令支持 高達(dá)265字節(jié)的虛擬存儲器、和242字節(jié)(4兆兆字節(jié)TeraByte )的物理存 儲器。畫U 562的硬件可以包括8-項目、完全相聯(lián)的SLB、 256-項目、4路組 相聯(lián)TLB、以及用于硬件TLB未命中處理的TLB的4 x 4替換管理表(RMT )。
優(yōu)選地,DMAC 560可操作用來管理來自SPU核510A以及諸如PU 504和 /或其他SPU的一個或多個其他設(shè)備的DMA命令。存在三類DMA命令Put(放) 命令,操作將數(shù)據(jù)從本地存儲器550移動到共享存儲器514; Get(取)命令, 操作將數(shù)據(jù)從共享存儲器514移動到本地存儲器550;存儲控制命令,其包 括SLI命令和同步命令。同步命令可以包括原子(atomic)命令、發(fā)送信號 命令、以及專用阻隔(barrier)命令。響應(yīng)于DMA命令,MMU 562將有效地 址轉(zhuǎn)換成實際地址并將實際地址轉(zhuǎn)到BIU 564。
優(yōu)選地,SPU核510A使用通道接口和數(shù)據(jù)接口,以與DMAC 560內(nèi)的接 口進(jìn)行通信(發(fā)送DMA命令、狀態(tài)等)。SPU核510A通過通道接口向DMAC "0 中的DMA隊列發(fā)出DMA命令。 一旦DMA在DMA隊列中,就通過DMAC 560內(nèi)的 發(fā)出和完成邏輯電路處理它。當(dāng)結(jié)束DMA命令的所有總線事務(wù)時,通過通道 接口將完成信號發(fā)送回SPU核510A。
圖7圖示PU 504的優(yōu)選結(jié)構(gòu)和功能。PU 504包括兩個基本功能單元, PU核504A和存儲器流程控制器(MFC) 504B。 PU核504A執(zhí)行程序執(zhí)行、數(shù) 據(jù)處理、多處理器管理功能等,而MFC 504B執(zhí)行涉及PU核5(MA和系統(tǒng)100 的存儲器空間之間的數(shù)據(jù)傳輸?shù)墓δ堋?br>
PU核504A可以包括L1高速緩存570、指令單元572、寄存器574、 一個 或多個浮點(diǎn)執(zhí)行級576以及一個或多個定點(diǎn)執(zhí)行級578。 Ll高速緩存為通過 MFC 504B從共享存儲器106、處理器102、或存儲器空間的其他部分接收到 的數(shù)據(jù)提供數(shù)據(jù)高速緩存功能。由于優(yōu)選地將PU核504A實現(xiàn)為超流水線, 所以優(yōu)選地將指令單元572實現(xiàn)為具有許多級(包括獲取、解碼、依賴性檢 查、發(fā)出等)的指令流水線。優(yōu)選地,PU核504A也具有超標(biāo)量配置,由此 每時鐘周期從指令單元572發(fā)出多于一個指令。為了實現(xiàn)高處理能力,浮點(diǎn) 執(zhí)行級576和定點(diǎn)執(zhí)行級578按流水線配置包括多個級。取決于所需的處理 能力,可以采用或多或少數(shù)目的浮點(diǎn)執(zhí)行級576和定點(diǎn)執(zhí)行級578。
MFC 504B包括總線接口單元(BIU) 580、 L2高速緩存、不可高速緩存單 元(NCU) 584、核接口單元(CIU) 586、以及存儲器管理單元(畫U) 588。 大多數(shù)MFC 504B以與PU核504A和總線108相比的一半頻率( 一半速度)運(yùn) 行,以滿足低能耗設(shè)計目標(biāo)。
BIU 580提供總線108和L2高速緩存582和NCU 584邏輯塊之間的接口 。 為此,BIU 580可以充當(dāng)為總線108上的主設(shè)備以及從設(shè)備,從而執(zhí)行完全 一致的存儲器操作。作為主設(shè)備,其可以代表L2高速緩存582和NCU 584向 總線108發(fā)出加載/存儲請求,以尋求服務(wù)。BIU 580還可以實現(xiàn)命令的流程 控制機(jī)制,其限制可以發(fā)送到總線108的命令的總數(shù)目??偩€108上的數(shù)據(jù) 處理可以被設(shè)計為采取八節(jié)拍(beat),因此,優(yōu)選地圍繞128字節(jié)高速緩存 行設(shè)計BIU 580,并且一致性和同步粒度為128KB。
優(yōu)選地,L2高速緩存582 (及支持的硬件邏輯電路)被設(shè)計用來高速緩 存512KB數(shù)據(jù)。例如,L2高速緩存582可以處理可高速緩存的加載/存儲、 數(shù)據(jù)預(yù)獲取、指令獲取、指令預(yù)獲取、高速緩存操作、以及阻隔操作。優(yōu)選 地,L2高速緩存582為8路組相聯(lián)系統(tǒng)。L2高速緩存582可以包括匹配六(6 ) 個擲出(cast out)隊列(例如6個RC機(jī)器)的六個重新加載隊列、以及八 個(64-字節(jié)寬)存儲隊列。L2高速緩存582可以操作以提供L1高速緩存 570中的一些或所有數(shù)據(jù)的備份拷貝。有利地,在處理節(jié)點(diǎn)被熱交換時,這 在恢復(fù)存儲(多個)狀態(tài)時是有用的。該配置還允許L1高速緩存570用較少 端口更快地操作,并允許較快的高速緩存-到-高速緩存?zhèn)鬏?由于請求可 能止于L2高速緩存582 )。該配置還提供用于將高速緩存一致性管理傳到L2 高速緩存582的機(jī)制。
NCU 584與CIU 586 、 L2高速緩存582、以及BIU 580接口,并且通常 在PU核504A和存儲器系統(tǒng)之間作為用于不可高速緩存的操作的排隊/緩沖電 路起作用。NCU 584優(yōu)選地處理不由L2高速緩存582處理的、與PU核504A 的所有通信,諸如禁止高速緩存的加載/存儲、阻隔梯:作、以及高速緩存一致 性操作。NCU 584優(yōu)選地以一半速度運(yùn)行,以滿足前述的能耗目標(biāo)。
CIU 586布置在MFC 504B和PU核504A的邊界上,并且充當(dāng)為來自執(zhí)行 級576、 578、指令單元572、以及醒U單元588且去向L 2高速緩存582和 NCU 584的請求的路由、仲裁、以及流程控制點(diǎn)。PU核504A和固U 588優(yōu)選 地以全速運(yùn)行,而L2高速緩存582和NCU 584可操作用于2: 1速度比。因此, 在CIU 586中存在頻率邊界,并且其功能之一是當(dāng)其在兩個頻率域之間傳遞 請求和重新加載數(shù)據(jù)時適當(dāng)?shù)靥幚眍l率交叉。
CIU 586包括三個功能塊加載單元、存儲單元以及重新加載單元。另 外,CIU 586執(zhí)行數(shù)據(jù)預(yù)獲取功能,優(yōu)選地該數(shù)據(jù)預(yù)獲取功能是加載單元的 功能部分。CIU 586優(yōu)選地可纟喿作用來(i)從PU核504A和MMU 588接收 加載和存儲請求;UU將請求從全速時鐘頻率轉(zhuǎn)換成半速(2: 1時鐘頻率轉(zhuǎn) 換);(Hi)將可高速緩存的請求路由到L2高速緩存582,將不可高速緩存 的請求路由到NCU 584; ( iv )公平地仲裁到L2高速緩存582和NCU 584的 請求;(v)在到L2高速緩存582和NCU 584的分發(fā)(dispatch)上提供流程 控制,使得在目標(biāo)窗口內(nèi)接收請求且避免上溢;(vi)接收加載返回數(shù)據(jù)并將 其路由到執(zhí)行級576、 578、指令單元572或畫U 588; ( vi i )將監(jiān)聽(snoop ) 請求傳遞到執(zhí)行級576、 578、指令單元572或畫U 588;以及(viii)將加 載返回數(shù)據(jù)和監(jiān)聽流量從半速轉(zhuǎn)換為全速。
優(yōu)選地,醒U 588為PU核540A提供地址轉(zhuǎn)換,諸如利用第二級地址轉(zhuǎn) 換工具。優(yōu)選地,通過可以比畫U 588小得多且快得多的分離的指令和數(shù)據(jù) ERAT (有效到實際地址轉(zhuǎn)換)陣列,在PU核504A內(nèi)提供第一級轉(zhuǎn)換。
在優(yōu)選實施例中,在64比特實現(xiàn)的情況下,PU 504以46 GHz、 10F04 操作。優(yōu)選地,寄存器為64比特長(但是一個或多個專用寄存器可能較小一 些),并且有效地址為64比特長。優(yōu)選地,利用PowerPC技術(shù)來實現(xiàn)指令單 元570、寄存器572以及執(zhí)行級574和576,以實現(xiàn)(RISC )計算技術(shù)。
可以在美國專利第6,526,491號中發(fā)現(xiàn)關(guān)于該計算機(jī)系統(tǒng)的模塊化結(jié)構(gòu) 的額外細(xì)節(jié),通過引用將其全部內(nèi)容融入這里。
依據(jù)本發(fā)明的至少一個進(jìn)一步的方面,可以利用適合的硬件,諸如在圖 中圖示的硬件,來實現(xiàn)上述方法和裝置。可以利用任何已知技術(shù),諸如標(biāo)準(zhǔn) 數(shù)字電路、可操作用來執(zhí)行軟件和/或固件程序的任何已知處理器、 一個或多
個可編程數(shù)字器件或系統(tǒng)(諸如可編程只讀存儲器(PR0M)、可編程邏輯陣列 器件(PAL))等來實現(xiàn)這種硬件。此外,盡管圖中圖示的裝置被示出為被劃 分到某個功能塊中,這種塊可以利用分離電路來實現(xiàn)和/或組合成一個或多個 功能單元。此外,本發(fā)明的各個方面可以利用存儲在適合于運(yùn)輸和/或分布的 存儲介質(zhì)或媒介(諸如軟盤、存儲器芯片等)的軟件和/或固件程序來實現(xiàn)。 盡管在這里已經(jīng)參考具體實施例描述了本發(fā)明,但是應(yīng)該懂得這些實 施例僅僅是本發(fā)明的原理和應(yīng)用的示意。因此,應(yīng)該懂得在不偏離如由所 附權(quán)利要求書限定的本發(fā)明的精神和范圍的前提下,可以對示意性實施例作 出各種修改并且可以開發(fā)出其他的布置。
工業(yè)實用性
本發(fā)明可應(yīng)用于在多處理系統(tǒng)之內(nèi)傳輸數(shù)據(jù)的技術(shù)。
權(quán)利要求
1.一種裝置,包括處理器,能夠與共享存儲器有效地通信并包括本地存儲器,該本地存儲器被適配為執(zhí)行其中的指令;以及直接存儲器存取控制器(DMAC),耦接到處理器的本地存儲器,并可操作用來響應(yīng)于處理器發(fā)出的單個DMA命令使得共享存儲器和本地存儲器之間的多個數(shù)據(jù)塊的傳輸便利。
2. 如權(quán)利要求l所述的裝置,其中,該處理器可操作用來在本地存儲器 中建立一列表,該列表包括多個項目,每個項目至少具有要傳輸?shù)臄?shù)據(jù)塊的 開始地址和要傳輸?shù)臄?shù)據(jù)塊的大小。
3. 如權(quán)利要求2所述的裝置,其中,DMA命令指定所述列表中的至少 一個項目。
4. 如權(quán)利要求3所述的裝置,其中,DMAC可操作用來使用在所述列 表的至少一個項目中指定的開始地址和大小,以識別要傳輸?shù)膶?yīng)數(shù)據(jù)塊并 在共享存儲器和本地存儲器之間傳輸這樣的數(shù)據(jù)塊。
5. 如權(quán)利要求2至4中任一項所述的裝置,其中,所述列表的項目是鏈 接的,使得DMAC可操作用來使用該列表中的一個項目來定位該列表中的另 一項目。
6. 如權(quán)利要求5所述的裝置,其中,所述列表的項目包括前向指針和后 向指針中的至少一個以在項目之間建立鏈接。
7. 如權(quán)利要求1至6中任一項所述的裝置,其中,DMA命令被適配為 指定要將多個數(shù)據(jù)塊從共享存儲器拷貝到處理器的本地存儲器。
8. 如權(quán)利要求7所述的裝置,其中,DMA命令被適配為指定要將多個 數(shù)據(jù)塊從共享存儲器的不連續(xù)區(qū)域拷貝到處理器的本地存儲器的連續(xù)區(qū)域。
9. 如權(quán)利要求1至6中任一項所述的裝置,其中,DMA命令被適配為 指定要將多個凝:據(jù)塊從處理器的本地存儲器拷貝到共享存儲器。
10. 如權(quán)利要求9所述的裝置,其中,DMA命令被適配為指定要將多個 數(shù)據(jù)塊從處理器的本地存儲器的連續(xù)區(qū)域拷貝到共享存儲器的不連續(xù)區(qū)域。
11. 如權(quán)利要求1至10中任一項所述的裝置,其中,本地存儲器不是硬 件高速緩存。
12. 如權(quán)利要求1所述的裝置,進(jìn)一步包括主處理器,該主處理器操作 地耦接到所述多個處理器、能夠耦接到共享存儲器、并且可#:作用來管理所 述多個處理器。
13. —種裝置,包括多個并行處理器,能夠與共享存儲器有效地通信,每個處理器包括 被適配為執(zhí)行其中的指令的本地存儲器、和耦接到處理器的本地存儲器的直接存儲器存取控制器(DMAC),其中,每個處理器的DMAC可操作用來響應(yīng)于處理器發(fā)出的單個DMA命令使得共享存儲器和本地存儲器之間的多個數(shù)據(jù)塊的傳輸便利。
14. 如權(quán)利要求13所述的裝置,其中,所述多個處理器、本地存儲器、 DMAC布置在共同的半導(dǎo)體基板上。
15. 如權(quán)利要求13所述的裝置,進(jìn)一步包括通過總線耦接到所述多個處 理器的共享存儲器。
16. 如權(quán)利要求15所述的裝置,其中,所述多個處理器、相關(guān)聯(lián)的本地 存儲器、DMAC以及共享存儲器布置在共同的半導(dǎo)體基板上。
17. 如權(quán)利要求13至16中任一項所述的裝置,進(jìn)一步包括可操作耦接 到所述多個處理器、能夠耦接到共享存儲器、并且可操作用來管理所述多個 處理器的主處理器。
18. —種裝置多個并行處理器,能夠與共享存儲器有效地通信,每個處理器包括不是硬件高速緩存的且被適配為執(zhí)行其中的指令的本地存儲器、和耦接 到處理器的本地存儲器的直接存儲器存取控制器(DMAC);以及主處理器,可操作耦接到所述多個處理器、能夠耦接到共享存儲器、并 且可操作用來管理所述多個處理器,其中,每個處理器的DMAC可操作用來響應(yīng)于處理器發(fā)出的單個DMA 命令使得共享存儲器和本地存儲器之間的多個數(shù)據(jù)塊的傳輸便利。
19. 如權(quán)利要求18所述的裝置,還包括與主處理器相關(guān)聯(lián)的且可操作用 來高速緩存從共享存儲器和一個或多個處理器的本地存儲器中的至少一個獲 得的數(shù)據(jù)的硬件高速緩存。
20. —種方法,包括響應(yīng)于處理器向直接存儲器存取控制器(DMAC) 發(fā)出的單個DMA命令而在共享存儲器和處理器的本地存儲器之間傳輸多個 數(shù)據(jù)塊,其中,處理器能夠與共享存儲器有效地通信,并且DMAC可操作耦接到本地存儲器。
21. 如權(quán)利要求20所述的方法,進(jìn)一步包括在本地存儲器內(nèi)建立一列 表,其包括多個項目,每個項目至少具有要傳輸?shù)臄?shù)據(jù)塊的開始地址和要傳 輸?shù)臄?shù)據(jù)塊的大小。
22. 如權(quán)利要求21所述的方法,其中,DMA命令指定所述列表中的至 少一個項目。
23. 如權(quán)利要求22所述的方法,進(jìn)一步包括使用在所述列表的至少一個項目中指定的開始地址和大小,以識別要傳 輸?shù)膶?yīng)數(shù)據(jù)塊;以及在共享存儲器和本地存儲器之間傳輸這樣的數(shù)據(jù)塊。
24. 如權(quán)利要求21至23中任一項所述的方法,進(jìn)一步包括 鏈接所述列表的項目,使得可以使用列表中的一個項目來定位列表中的另 一項目。
25. —種包括軟件程序的存儲介質(zhì),該軟件程序可操作用來使得處理器 執(zhí)行包括如下的行為響應(yīng)于由處理器向直接存儲器存取控制器(DMAC) 發(fā)出的單個DMA命令而在共享存儲器和處理器的本地存儲器之間傳輸多個 數(shù)據(jù)塊,其中,處理器能夠與共享存儲器有效地通信,并且DMAC可^:作耦 接到本地存儲器。
全文摘要
提供用于響應(yīng)于由處理器向直接存儲器存取控制器(DMAC)發(fā)出的單個DMA命令而在共享存儲器和處理器的本地存儲器之間傳輸多個數(shù)據(jù)塊的方法和裝置,其中處理器能夠與共享存儲器有效地通信,并且DMAC可操作耦接到本地存儲器。
文檔編號G06F15/16GK101099141SQ20068000185
公開日2008年1月2日 申請日期2006年1月5日 優(yōu)先權(quán)日2005年1月5日
發(fā)明者堀川勉, 山崎剛, 查爾斯·雷約翰斯, 派丘恩·彼得劉, 詹姆斯·阿倫卡爾, 邁克爾·諾曼戴 申請人:索尼計算機(jī)娛樂公司;國際商業(yè)機(jī)器公司