專利名稱:用于混合dma隊(duì)列dma表的方法和裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及用于在多處理系統(tǒng)內(nèi)傳送數(shù)據(jù)的方法和裝置。
背景技術(shù):
近年來(lái),由于刀片(cutting-edge)計(jì)算機(jī)應(yīng)用涉及實(shí)時(shí)、多媒體 功能,因此,對(duì)更快速計(jì)算機(jī)處理數(shù)據(jù)吞吐量的需求越來(lái)越高。在這 些應(yīng)用中,圖形應(yīng)用對(duì)處理系統(tǒng)要求最高,這是由于它們需要在相當(dāng) 短的時(shí)期內(nèi)完成如此大量的數(shù)據(jù)訪問(wèn)、數(shù)據(jù)計(jì)算和數(shù)據(jù)操作,以實(shí)現(xiàn) 預(yù)期視覺(jué)效果。這些應(yīng)用需要極其快速的處理速度,例如,每秒數(shù)千 兆位的數(shù)據(jù)。盡管某些處理系統(tǒng)采用單個(gè)處理器實(shí)現(xiàn)快速處理速度, 其他則使用多處理器體系結(jié)構(gòu)實(shí)現(xiàn)。在多處理器系統(tǒng)中,多個(gè)子處理 器可并行(或至少同時(shí))操作,以實(shí)現(xiàn)所需處理效果。
傳統(tǒng)處理系統(tǒng)可采用直接存儲(chǔ)器訪問(wèn)(DMA)技術(shù)將數(shù)據(jù)從一個(gè) 存儲(chǔ)器傳送到另一設(shè)備,該設(shè)備可為另一存儲(chǔ)器??墒褂肈MA命令 隊(duì)列存儲(chǔ)未決DMA命令,這是由于要完成DMA傳送可能要花費(fèi)很 長(zhǎng)的時(shí)間。遺憾的是,發(fā)送DMA命令以了解DMA傳送狀態(tài)的應(yīng)用 程序如果性能不佳,則導(dǎo)致效率較低的處理吞吐。
發(fā)明內(nèi)容
本發(fā)明的一個(gè)或多個(gè)方面可使應(yīng)用程序注意到具體DMA命令的 狀態(tài)。例如,該應(yīng)用程序在等待完成DMA傳送期間可執(zhí)行其他任 務(wù)。本發(fā)明提供了使應(yīng)用程序獲得關(guān)于任何具體DMA命令的狀態(tài)信 息的機(jī)制。
本發(fā)明的一個(gè)或多個(gè)實(shí)施例可包括硬件DMA命令隊(duì)列、軟件 DMA狀態(tài)表和軟件窺探控制器。硬件DMA命令隊(duì)列包含DMA命
令和針對(duì)每個(gè)命令的標(biāo)記標(biāo)識(shí)符。軟件DMA狀態(tài)表優(yōu)選地處在處理 系統(tǒng)的局部存儲(chǔ)器中,并在DMA隊(duì)列中對(duì)于每個(gè)DMA命令包含 相應(yīng)標(biāo)簽、起始地址、結(jié)束地址、入站/出站表示、和狀態(tài)。
當(dāng)處理器調(diào)用DMA命令時(shí),軟件窺探控制器通過(guò)分配標(biāo)簽并在 軟件DMA狀態(tài)表中添加條目來(lái)注冊(cè)命令。當(dāng)調(diào)用DMA處理程序 (DMA handler)時(shí),軟件窺探控制器對(duì)軟件DMA狀態(tài)表中條目的 狀態(tài)進(jìn)行更新(同步)。運(yùn)行在處理器上的應(yīng)用程序可通過(guò)向軟件蔬 探控制器發(fā)出請(qǐng)求來(lái)"窺視(peek),,局部存儲(chǔ)器中的地址。軟件窺探 控制器通過(guò)將該地址與DMA狀態(tài)表中的起始/結(jié)束地址進(jìn)行較, 確定哪個(gè)DMA命令與該地址相關(guān)聯(lián)。然后,DMA狀態(tài)表將狀態(tài) (忙/完成)返回到應(yīng)用程序。這為應(yīng)用程序提供了關(guān)于它是否可使 用該地址處的數(shù)據(jù),它是否應(yīng)等待,或者它是否應(yīng)執(zhí)行其他任務(wù)的信 息。使DMA傳送的固有延遲有益地得到隱藏。
根據(jù)本發(fā)明的一個(gè)或多個(gè)其他實(shí)施例,方法和裝置可用于從處 理系統(tǒng)的處理器接收針對(duì)存儲(chǔ)在處理系統(tǒng)的存儲(chǔ)器內(nèi)的數(shù)據(jù)的第一 DMA命令,對(duì)第一 DMA命令分配標(biāo)識(shí)符,該標(biāo)識(shí)符用于與包含有 關(guān)第一DMA命令的狀態(tài)信息的DMA表的條目的關(guān)聯(lián)。
DMA表可包括以下至少之一標(biāo)識(shí)符;存儲(chǔ)器的存儲(chǔ)數(shù)據(jù)的起 始地址;存儲(chǔ)器的存儲(chǔ)數(shù)據(jù)的結(jié)束地址;進(jìn)、出存儲(chǔ)器的數(shù)據(jù)傳送方 向;以及狀態(tài)信息。
根據(jù)本發(fā)明的一個(gè)或多個(gè)其他實(shí)施例,方法和裝置可用于在處 理系統(tǒng)的處理器中執(zhí)行包括多個(gè)程序任務(wù)的軟件程序;發(fā)出用于實(shí)現(xiàn) 從處理系統(tǒng)的第一存儲(chǔ)器向第二存儲(chǔ)器的數(shù)據(jù)傳送的第一 DMA命 令;向處理系統(tǒng)的窺探控制器發(fā)出關(guān)于第一 DMA命令的一個(gè)或多個(gè) 狀態(tài)請(qǐng)求;以及將一個(gè)或多個(gè)處理任務(wù)延遲,直至對(duì)至少一個(gè)所述狀 態(tài)請(qǐng)求的響應(yīng)表明已完成從第一存儲(chǔ)器到第二存儲(chǔ)器的數(shù)據(jù)傳送。
根據(jù)本發(fā)明的一個(gè)或多個(gè)其他實(shí)施例,方法和裝置可用于接收 關(guān)于完成從處理器的第一存儲(chǔ)器到第二存儲(chǔ)器的DMA數(shù)據(jù)傳送的指 示;以及將與DMA數(shù)據(jù)傳送相關(guān)的DMA表的條目的狀態(tài)信息更新成表示已完成DMA數(shù)據(jù)傳送。
根據(jù)本發(fā)明的一個(gè)或多個(gè)其他實(shí)施例,裝置可包括能夠與主存 儲(chǔ)器進(jìn)行通信的至少一個(gè)處理器;與至少一個(gè)處理器相連的局部存儲(chǔ) 器;用于存儲(chǔ)由至少一個(gè)處理器發(fā)出的一個(gè)或多個(gè)DMA命令的 DMA命令隊(duì)列;以及包含與DMA命令隊(duì)列中存儲(chǔ)的每個(gè)DMA命 令相關(guān)聯(lián)的至少一個(gè)條目的DMA表, 一個(gè)或多個(gè)所述條目包含有關(guān) 于是否已完成相關(guān)DMA命令的DMA數(shù)據(jù)傳送的狀態(tài)信息。
裝置還可包括窺探控制器,用于接收關(guān)于是否已完成DMA命令 的DMA數(shù)據(jù)傳送的指示。窺探控制器還可用于根據(jù)是否完成相關(guān) DMA數(shù)據(jù)傳送來(lái)更新DMA表的條目的狀態(tài)信息。窺探控制器還可 用于對(duì)DMA命令分配標(biāo)識(shí)符,標(biāo)識(shí)符將DMA命令與DMA表的各 個(gè)條目相關(guān)聯(lián)。窺探控制器還可用于監(jiān)視DMA命令隊(duì)列,以確定是 否完成DMA數(shù)據(jù)傳送。窺探控制器還可用于將DMA命令隊(duì)列與 DMA表同步,以更新其條目的狀態(tài)信息。
優(yōu)選的是,實(shí)現(xiàn)以下至少之一DMA命令隊(duì)列為硬件實(shí)現(xiàn)的隊(duì) 列;以及DMA表為軟件實(shí)現(xiàn)的表。
窺探控制器還優(yōu)選地用于實(shí)現(xiàn)以下至少之一從處理器接收關(guān)于 DMA命令的一個(gè)或多個(gè)狀態(tài)請(qǐng)求;檢查與DMA命令相關(guān)聯(lián)的DMA 表的條目,以獲得其狀態(tài)信息;以及基于狀態(tài)信息將關(guān)于是否已完成 DMA命令的數(shù)據(jù)傳送的指示返回到處理器。
下面,結(jié)合附圖,通過(guò)此處關(guān)于本發(fā)明的描述,本領(lǐng)域技術(shù)人員 將易于理解其他方面、特征、優(yōu)點(diǎn)等。
出于描述本發(fā)明的各個(gè)方面的目的,以附圖形式顯示出優(yōu)選實(shí)施 方式,然而,應(yīng)該理解,本發(fā)明并不限于所示出的具體設(shè)置和方式。 圖1表示根據(jù)本發(fā)明的一個(gè)或多個(gè)方面可采用的處理系統(tǒng)結(jié)構(gòu)的
框圖2表示圖l所示處理系統(tǒng)和/或此處的其他實(shí)施例可采用的
DMA窺探控制器、DMA命令隊(duì)列,和DMA狀態(tài)表的框圖3表示,根據(jù)本發(fā)明的一個(gè)或多個(gè)方面,圖1所示處理系統(tǒng)和/ 或此處的其他實(shí)施例可實(shí)現(xiàn)的處理步驟的流程圖4表示如何采用DMA窺探控制器、DMA命令隊(duì)列和DMA狀 態(tài)表來(lái)隱藏采用雙緩沖器將兩個(gè)數(shù)據(jù)流合并成一個(gè)數(shù)據(jù)流的處理的時(shí) 延的示例性框圖5表示如何釆用DMA窺探控制器、DMA命令隊(duì)列和DMA狀 態(tài)表來(lái)隱藏釆用雙緩沖器將一個(gè)數(shù)據(jù)流解交織成兩個(gè)數(shù)據(jù)流的處理的 時(shí)延的示例性框圖6表示根據(jù)本發(fā)明的一個(gè)或多個(gè)方面可采用的、具有兩個(gè)或多 個(gè)子處理器的多處理系統(tǒng)的結(jié)構(gòu)視圖7表示可用于實(shí)現(xiàn)本發(fā)明的一個(gè)或多個(gè)其他方面的優(yōu)選處理器 元件(PE)的視圖8表示根據(jù)本發(fā)明的一個(gè)或多個(gè)其他方面可采用的、圖7所示 系統(tǒng)的示例性子處理單元(SPU)的結(jié)構(gòu)視圖;以及
圖9表示根據(jù)本發(fā)明的一個(gè)或多個(gè)其他方面可采用的、圖7所示 系統(tǒng)的示例性處理單元(PU)的結(jié)構(gòu)視圖。
具體實(shí)施例方式
參照附圖,其中,相同的附圖標(biāo)記表示同樣的元件,在圖1中示 出可適于實(shí)現(xiàn)本發(fā)明的一個(gè)或多個(gè)特征的處理系統(tǒng)100。出于說(shuō)明簡(jiǎn) 潔和清楚的目的,此處將圖1所示框圖表述和描述為表示裝置100, 然而,應(yīng)該理解,該描述可易于應(yīng)用到等效方法的各個(gè)方面。
裝置100優(yōu)選地包括處理器102、局部存儲(chǔ)器104、主存儲(chǔ)器106
(例如,DRAM)和總線108??墒褂媚軌驈南到y(tǒng)存儲(chǔ)器106請(qǐng)求數(shù) 據(jù)以及對(duì)數(shù)據(jù)進(jìn)行操作以實(shí)現(xiàn)預(yù)期效果的任何已知技術(shù),來(lái)實(shí)現(xiàn)處理 器102。例如,可使用能夠執(zhí)行軟件和/或固件的任何已知微處理器
(包括標(biāo)準(zhǔn)微處理器、分布式微處理器等)實(shí)現(xiàn)處理器102。例如, 處理器102可為能夠請(qǐng)求和操作數(shù)據(jù)的圖形處理器,所述數(shù)據(jù)例如為
像素?cái)?shù)據(jù),包括灰度級(jí)信息、彩色信息、紋理數(shù)據(jù)、多邊形信息、視 頻幀信息等。
局部存儲(chǔ)器104的位置接近處理器102,使得處理器可執(zhí)行程序 代碼,或者操作與系統(tǒng)存儲(chǔ)器106相對(duì)的局部存儲(chǔ)器104內(nèi)的數(shù)據(jù)。 局部存儲(chǔ)器104優(yōu)選地不是傳統(tǒng)硬件高速緩存,即優(yōu)選地不具有片上 或片外硬件高速緩存電路、高速緩存寄存器、高速緩存控制器等來(lái)實(shí) 現(xiàn)硬件高速緩存功能。由于片上空間可能受到限制,局部存儲(chǔ)器104 的尺寸可能要比系統(tǒng)存儲(chǔ)器106要小得多。處理器102優(yōu)選地提供用 于通過(guò)總線108從系統(tǒng)存儲(chǔ)器106向局部存儲(chǔ)器104中拷貝數(shù)據(jù)的數(shù) 據(jù)訪問(wèn)請(qǐng)求,以便于程序執(zhí)行和數(shù)據(jù)操作。用于實(shí)現(xiàn)數(shù)據(jù)訪問(wèn)的機(jī)制 優(yōu)選地通過(guò)使用在存儲(chǔ)器接口 110內(nèi)的直接存儲(chǔ)器訪問(wèn)控制器 DM AC實(shí)現(xiàn)。
另外,參照?qǐng)D2,系統(tǒng)100可包括DMA窺探控制器200、 DMA 命令隊(duì)列202和DMA表204。 DMA命令隊(duì)列202實(shí)際與DMA窺探 控制器200例如通過(guò)路徑206相連,而DMA表204實(shí)際通過(guò)路徑 208與DMA窺探控制器200相連。
DMA命令隊(duì)列202優(yōu)選地用于存儲(chǔ)由處理器102發(fā)出的一個(gè)或 多個(gè)DMA命令212。 DMA命令212可包括要傳送的數(shù)據(jù)的起始地 址,要傳送的數(shù)據(jù)的結(jié)束地址和指示傳送應(yīng)在何處進(jìn)行的方向表示 (源到目的地)中的一個(gè)或多個(gè)。DMA命令隊(duì)列202優(yōu)選地也包括 與每個(gè)DMA命令212相關(guān)的標(biāo)簽210 (或標(biāo)識(shí)符)。標(biāo)簽210優(yōu)選 地將各個(gè)DMA命令212與DMA表204的一個(gè)或多個(gè)條目相關(guān)聯(lián)。
DMA表204優(yōu)選地包括多個(gè)條目,每個(gè)條目包括標(biāo)簽214、要傳 送的數(shù)據(jù)的起始地址216、要傳送的數(shù)據(jù)的結(jié)束地址218、方向220 (要傳送數(shù)據(jù)的源和目的地的其他標(biāo)記)和狀態(tài)信息222中的一個(gè)或 多個(gè)。每個(gè)條目的標(biāo)簽214優(yōu)選地與DMA命令隊(duì)列202內(nèi)的相應(yīng)標(biāo) 簽210相關(guān)聯(lián)。從而,可將一個(gè)或多個(gè)DMA命令212與DMA表 204的一個(gè)或多個(gè)相應(yīng)條目相關(guān)聯(lián)。狀態(tài)信息222優(yōu)選地表示是否已 完成相應(yīng)DMA命令212的數(shù)據(jù)傳送。
優(yōu)選地是,以硬件形式實(shí)現(xiàn)DMA命令隊(duì)列,例如,通過(guò)一個(gè)或 多個(gè)硬件寄存器以及相關(guān)邏輯電路。DMA表204優(yōu)選地通過(guò)軟件實(shí) 現(xiàn),例如,可存儲(chǔ)在系統(tǒng)100的局部存儲(chǔ)器104內(nèi)。
結(jié)合圖3所示流程圖,可更好地理解系統(tǒng)100的上述特征,圖3 示出本發(fā)明的一個(gè)或多個(gè)實(shí)施例可實(shí)現(xiàn)的一個(gè)或多個(gè)處理步驟。在步 驟300,例如,可通過(guò)處理器102調(diào)用DMA命令212。 MIF 110的 DMAC處理程序優(yōu)選地通過(guò)釆用眾所周知的直接存儲(chǔ)器訪問(wèn)技術(shù)為 DMA命令212提供服務(wù)。此外,DMA命令212優(yōu)選地由DMA窺探 控制器200接收,使得可對(duì)它們進(jìn)行注冊(cè)(步驟302)。注冊(cè)可包括 對(duì)DMA命令212分配標(biāo)簽210,使得可將標(biāo)簽210與DMA命令隊(duì) 列202內(nèi)的DMA命令212相關(guān)聯(lián)。注冊(cè)還可需要對(duì)DMA狀態(tài)表 204添加條目,其中,條目包括相應(yīng)標(biāo)簽214和至少狀態(tài)信息222。 最初,狀態(tài)信息222將表示未完成與DMA命令212相關(guān)的數(shù)據(jù)傳 送。在步驟304, DMAC可將DMA命令212和標(biāo)簽210添加到 DMA命令隊(duì)列202。此時(shí),可就狀態(tài)信息222將DMA命令212與 DMA表204的相關(guān)條目(或多個(gè)條目)相同步(步驟306)。
然后,處理流程可進(jìn)行到節(jié)點(diǎn)A,從該節(jié)點(diǎn)可采取至少三條路 徑。在步驟308,可進(jìn)行關(guān)于是否調(diào)用另一 DMA命令212的確定。 如果確定結(jié)果是肯定的,則處理流程優(yōu)選地返回到步驟300,并再次 執(zhí)行步驟300-306。如果在步驟308處的確定結(jié)果為否,則處理流程 優(yōu)選地循環(huán)回節(jié)點(diǎn)A。
在步驟310,優(yōu)選地進(jìn)行關(guān)于是否已發(fā)生對(duì)DMA處理程序的調(diào) 用的確定。這可為DMAC完成與具體DMA命令212相關(guān)聯(lián)的數(shù)據(jù) 傳送的情形。如果在步驟310的確定結(jié)果是肯定的,則處理流程優(yōu)選 地返回到步驟306。在步驟306, DMA窺探控制器200優(yōu)選地促使實(shí) 現(xiàn)DMA命令隊(duì)列202和與該命令212相關(guān)聯(lián)的DMA表204的一個(gè) 或多個(gè)條目之間的同步。同步優(yōu)選地將給定條目的狀態(tài)信息222改變 成表示已完成與DMA命令212相關(guān)的數(shù)據(jù)傳送。同步的具體細(xì)節(jié)還 可包括找出DMA表204的一個(gè)或多個(gè)合適條目。這可通過(guò)識(shí)別出與
DMA命令隊(duì)列202內(nèi)DMA命令212相關(guān)聯(lián)的標(biāo)簽210,并確定 DMA表204的相應(yīng)標(biāo)簽(或多個(gè)標(biāo)簽)214來(lái)實(shí)現(xiàn)。另一方面,如 果在步驟310的確定結(jié)果為否,則處理流程優(yōu)選地流回到節(jié)點(diǎn)A。
在步驟312,優(yōu)選地進(jìn)行關(guān)于DMA窺探請(qǐng)求是否已由DMA窺 探控制器200接收的確定。例如,處理器102可向DMA窺探控制器 200發(fā)出窺探請(qǐng)求,以發(fā)現(xiàn)是否已經(jīng)通過(guò)例如完成相關(guān)聯(lián)的數(shù)據(jù)傳送 為一個(gè)或多個(gè)DMA命令212提供了服務(wù)。窺探請(qǐng)求可指定數(shù)據(jù)被傳 送自或傳送到的地址。如果在步驟312處的確定結(jié)果為否,則處理流 程優(yōu)選地流回到節(jié)點(diǎn)A。如果在步驟312處的確定結(jié)果為是,則 DMA窺探控制器200優(yōu)選地從DMA表204獲得狀態(tài)信息222,以 確定是否完成與給定DMA命令212相關(guān)聯(lián)的數(shù)據(jù)傳送。這可需要通 過(guò)檢查DMA命令隊(duì)列202來(lái)確定與給定DMA命令212相關(guān)聯(lián)的標(biāo) 簽210。例如,窺探請(qǐng)求可包括要傳送的數(shù)據(jù)的起始地址和結(jié)束地址 中的至少之一。DMA窺探控制器200可利用一個(gè)或多個(gè)這樣的地址 發(fā)現(xiàn)在DMA命令隊(duì)列202內(nèi)的相應(yīng)DMA命令212,從而獲得相關(guān) 聯(lián)的標(biāo)簽210。 一旦DMA窺探控制器200具有標(biāo)簽210,它可使用 這樣的標(biāo)簽找出在DMA表204內(nèi)的相關(guān)標(biāo)簽214。在步驟316, DMA窺探控制器200優(yōu)選地從與標(biāo)簽214相關(guān)聯(lián)的條目檢索狀態(tài)信 息222,并將關(guān)于是否完成數(shù)據(jù)傳送的指示返回到處理器102。
有益的是,處理器102可執(zhí)行包括若干程序任務(wù)的一個(gè)或多個(gè)軟 件程序。作為執(zhí)行該軟件程序的結(jié)果,處理器102可發(fā)出一個(gè)或多個(gè) DMA命令212,使得可將數(shù)據(jù)從主存儲(chǔ)器106傳送到局部存儲(chǔ)器 104,或反之亦然。處理器102通過(guò)向DMA窺探控制器200發(fā)送窺 探請(qǐng)求并從其接收狀態(tài)更新,可獲得關(guān)于一個(gè)或多個(gè)DMA命令的狀 態(tài)指示。處理器102可利用該信息在執(zhí)行軟件程序期間采取合適步 驟,以提高處理效率,例如隱藏與傳送的DMA數(shù)據(jù)有關(guān)的時(shí)延。例 如,處理器102可將一個(gè)或多個(gè)處理任務(wù)延遲,直至對(duì)一個(gè)或多個(gè)狀 態(tài)請(qǐng)求的響應(yīng)表示已完成與特定DMA命令相關(guān)聯(lián)的數(shù)據(jù)傳送。在該 延遲期間,處理器102可執(zhí)行其他處理任務(wù)和/或可進(jìn)入休眠模式以
便降低功率消耗。
參照?qǐng)D4,示出了如何能夠使用DMA窺探控制器200、 DMA命 令隊(duì)列202和DMA狀態(tài)表204來(lái)隱藏DMA數(shù)據(jù)傳送時(shí)延的另一示 例。具體而言,圖4表示可采用圖1所示處理系統(tǒng)100實(shí)現(xiàn)的數(shù)據(jù)流 合并處理的框圖。具體而言,可使用處理器102和局部存儲(chǔ)器104實(shí) 現(xiàn)多個(gè)雙緩沖器400, 402和404以及合并處理406。(在可選實(shí)施 例中,可使用多于一個(gè)的處理器,正如后面將要討論的)。應(yīng)該理 解,如圖4所示元件使用硬件/軟件組合實(shí)現(xiàn)。每個(gè)雙緩沖器,例如 雙緩沖器400,包括第一緩沖器A (開(kāi)始于地址400A)和第二緩沖 器B (開(kāi)始于地址400B)。
第一雙緩沖器400接收第一數(shù)據(jù)流,第二雙緩沖器402接收第二 數(shù)據(jù)流。通過(guò)合并處理406將數(shù)據(jù)流合并,并傳遞到第三雙緩沖器 404,由此生成輸出數(shù)據(jù)流。這樣的合并處理可用于在圖形處理中將 圖像數(shù)據(jù)的各個(gè)幀組合。出于描述的目的,假設(shè)通過(guò)DMA數(shù)據(jù)傳送 從主存儲(chǔ)器106或從某些外部源(未示出)接收第一數(shù)據(jù)流和第二數(shù) 據(jù)流。此外,假設(shè)通過(guò)DMA傳送將輸出數(shù)據(jù)流存儲(chǔ)在主存儲(chǔ)器106 或存儲(chǔ)器空間的某些其他部分中。
最初,第一和第二雙緩沖器400, 402均尋求通過(guò)由處理器102 向DMAC發(fā)出的各自DMA命令212從第一和第二數(shù)據(jù)流接收各自 的數(shù)據(jù)塊。出于說(shuō)明的目的,假設(shè)DMA傳送的各個(gè)目的地是第一雙 緩沖器400的緩沖器A的起始地址400A和第二雙緩沖器402的緩沖 器A的起始地址402A。然后,處理器102可時(shí)常在檢查DMA傳送 的狀態(tài)的同時(shí)執(zhí)行其他任務(wù),如以上所述。
當(dāng)關(guān)于DMA傳送之一,例如到第一雙緩沖器400的緩沖器A的 起始地址400A的數(shù)據(jù)傳送的狀態(tài)信息222表示完成數(shù)據(jù)傳送時(shí),處 理器102可對(duì)狀態(tài)信息222作出反應(yīng)。例如,處理器102可交換緩沖 器A, B的角色,發(fā)出用于請(qǐng)求將另一數(shù)據(jù)塊傳送到緩沖器B的起始 地址400B的另一 DMA命令,并開(kāi)始處理存儲(chǔ)在緩沖器A中的數(shù)據(jù) (例如,執(zhí)行解壓縮處理)。在等待將DMA數(shù)據(jù)傳送到緩沖器B的
同時(shí),處理器102可向DMA窺探控制器200發(fā)出一個(gè)或多個(gè)窺探請(qǐng) 求,以獲得其狀態(tài)。
與此同時(shí),處理器102可能正在執(zhí)行類似的窺探請(qǐng)求、緩沖器交 換、其他DMA傳送請(qǐng)求和關(guān)于由第二雙緩沖器402接收的第二數(shù)據(jù) 流的數(shù)據(jù)的數(shù)據(jù)處理。由于各個(gè)數(shù)據(jù)流的內(nèi)容是不同的,DMA傳送 時(shí)延并不固定,在雙緩沖器400和402內(nèi)緩沖器交換頻率可發(fā)生變 化。然而,值得注意的是,DMA窺探控制器200、 DMA命令隊(duì)列 202和DMA表204的使用允許處理器102執(zhí)行多個(gè)任務(wù),以l更隱藏 與傳送各個(gè)第一和第二數(shù)據(jù)流的塊相關(guān)的DMA傳送時(shí)延。
當(dāng)對(duì)第一雙緩沖器400的緩沖器A中的數(shù)據(jù)進(jìn)行了處理,且對(duì)第 二雙緩沖器402的緩沖器A內(nèi)的數(shù)據(jù)進(jìn)行了處理時(shí),合并處理406 將這樣的數(shù)據(jù)合并,并在第三雙緩沖器404的緩沖器A的起始地址 404A處開(kāi)始對(duì)所述數(shù)據(jù)進(jìn)行存儲(chǔ)。當(dāng)這樣的合并數(shù)據(jù)在緩沖器A中 穩(wěn)定時(shí),處理器102可例如向主存儲(chǔ)器106發(fā)出這樣數(shù)據(jù)的DMA數(shù) 據(jù)傳送。處理器102時(shí)??上駾MA窺探控制器200發(fā)送一個(gè)或多個(gè) 窺探請(qǐng)求,以確定這樣的DMA命令的狀態(tài)。當(dāng)狀態(tài)信息222表明已 完成DMA數(shù)據(jù)傳送時(shí),處理器102可實(shí)現(xiàn)第三雙緩沖器404的緩沖 器A和緩沖器B的交換,使得可并行實(shí)現(xiàn)其他數(shù)據(jù)處理(例如,數(shù) 據(jù)壓縮)和DMA數(shù)據(jù)傳送。該處理優(yōu)選地進(jìn)行重復(fù),直到合并和存 儲(chǔ)了所有數(shù)據(jù)。
參照?qǐng)D5,示出可如何使用DMA窺探控制器200、 DMA命令隊(duì) 列202和DMA狀態(tài)表204來(lái)隱藏DMA數(shù)據(jù)傳送處延的另一示例。 圖5表示可利用如圖1所示處理系統(tǒng)100實(shí)現(xiàn)的數(shù)據(jù)流解交織處理的 框圖。具體而言,可利用處理器102和局部存儲(chǔ)器104實(shí)現(xiàn)多個(gè)雙緩 沖器408, 410和412,以及解交織處理414。(在可選實(shí)施例中,可 采用多于一個(gè)的處理器,正如以下將要描述的。)
第一雙緩沖器408接收輸入數(shù)據(jù)流,并將其中的數(shù)據(jù)傳遞到解交 織處理414。解交織處理可將以前合并或交織的數(shù)據(jù)塊(例如,圖像 數(shù)據(jù)的幀)分離,以便生成第一和第二輸出數(shù)據(jù)流。出于描述的目
的,假設(shè)通過(guò)DMA數(shù)據(jù)傳送從主存儲(chǔ)器106或從某些外部源(未示 出)接收輸入數(shù)據(jù)流。此外,假設(shè)通過(guò)DMA數(shù)據(jù)傳送將第一和第二 輸出數(shù)據(jù)流傳送到主存儲(chǔ)器106或某些外部源(未示出)。
出于說(shuō)明的目的,假"i殳表示輸入數(shù)據(jù)流的DMA傳送的目的地可 選地為第一雙緩沖器408的緩沖器A的起始地址408A以及緩沖器B 的地址408B。當(dāng)關(guān)于其中一個(gè)DMA傳送,例如,去往第一雙緩沖 器408的緩沖器A的起始地址408A的數(shù)據(jù)傳送的狀態(tài)信息表明完成 數(shù)據(jù)傳送時(shí),處理器102可對(duì)狀態(tài)信息222作出反應(yīng)。例如,處理器 102可交換緩沖器A, B的角色,發(fā)出請(qǐng)求將另一數(shù)據(jù)塊傳送到緩沖 器B的起始地址408B的另一 DMA命令,并開(kāi)始對(duì)存儲(chǔ)在緩沖器A 中的數(shù)據(jù)進(jìn)行處理(例如,執(zhí)行解壓縮處理)。當(dāng)?shù)却骄彌_器B 的DMA數(shù)據(jù)傳送時(shí),處理器102可向DMA窺探控制器200發(fā)送一 個(gè)或多個(gè)窺探請(qǐng)求,以獲得其狀態(tài)。
將解交織處理414產(chǎn)生的解交織數(shù)據(jù)流輸入到第二和第三雙緩沖 器410, 412中。假設(shè)解交織處理生成圖像數(shù)據(jù)的各個(gè)幀,可將這樣 的幀寫入到第二和第三雙緩沖器410, 412的緩沖器A和緩沖器B 中。當(dāng)數(shù)據(jù)出現(xiàn)在例如第二雙緩沖器410的緩沖器A中時(shí),處理器 102可執(zhí)行壓縮或某些其他數(shù)據(jù)操作。在此期間,通過(guò)處理器102發(fā) 出的DMA命令212,可將緩沖器B中的數(shù)據(jù)(假設(shè)已將其壓縮等) 傳送到主存儲(chǔ)器106。當(dāng)關(guān)于自緩沖器B的DMA傳送的狀態(tài)信息 222表明完成了數(shù)據(jù)傳送時(shí),處理器102可將緩沖器A, B的角色交 換,發(fā)出用于請(qǐng)求從緩沖器A向主存儲(chǔ)器106進(jìn)行數(shù)據(jù)傳送的另一 DMA命令。同樣,當(dāng)?shù)却跃彌_器A的DMA數(shù)據(jù)傳送時(shí),處理器 102可向DMA窺探控制器200發(fā)送一個(gè)或多個(gè)窺探請(qǐng)求,以獲得其 狀態(tài)信息。
與此同時(shí),處理器可能正在執(zhí)行類似的窺探請(qǐng)求、緩沖器交換、 其他DMA傳送請(qǐng)求和關(guān)于由第三雙緩沖器412接收的第二數(shù)據(jù)流的 數(shù)據(jù)的數(shù)據(jù)處理。由于各個(gè)數(shù)據(jù)流的內(nèi)容不同,DMA傳送時(shí)遲不固 定,在雙緩沖器408, 410和412內(nèi)緩沖器交換的頻率可發(fā)生變化。
然而,應(yīng)注意的是,DMA窺探控制器200、 DMA命令隊(duì)列202和 DMA表204的使用允許處理器102執(zhí)行多個(gè)任務(wù),以便隱藏與傳送 數(shù)據(jù)流數(shù)據(jù)相關(guān)的DMA傳送時(shí)延。該處理優(yōu)選地進(jìn)行重復(fù),直到合 并和存儲(chǔ)了所有數(shù)據(jù)。
圖6表示可適用于實(shí)現(xiàn)上述一個(gè)或多個(gè)特征以及本發(fā)明的一個(gè)或 多個(gè)其他實(shí)施例的多處理系統(tǒng)100A。系統(tǒng)100A包括通過(guò)總線108 互連的多個(gè)處理器102A-D、相關(guān)局部存儲(chǔ)器104A-D、和共享存儲(chǔ)器 106。此處,還可將共享存儲(chǔ)器106稱為主存儲(chǔ)器或系統(tǒng)存儲(chǔ)器。盡 管示例性示出有四個(gè)處理器102,然而在不偏離本發(fā)明精神和范圍的 條件下可使用任意數(shù)量的處理器。每個(gè)處理器102可具有相似的結(jié)構(gòu) 或不同的結(jié)構(gòu)。
局部存儲(chǔ)器104優(yōu)選地同它們各自的處理器102處在同一芯片 (公共半導(dǎo)體襯底)上;不過(guò),局部存儲(chǔ)器104優(yōu)選地不是傳統(tǒng)硬件 高速緩存,即不具有片上或片外硬件高速緩存電路、高速緩存寄存 器、高速緩存控制器等來(lái)實(shí)現(xiàn)硬件高速緩存功能。
處理器102優(yōu)選地提供數(shù)據(jù)訪問(wèn)請(qǐng)求,以便通過(guò)總線108將數(shù)據(jù) (其可包括程序數(shù)據(jù))從系統(tǒng)存儲(chǔ)器106拷貝到其各自局部存儲(chǔ)器 中,以進(jìn)行程序執(zhí)行和數(shù)據(jù)操作。優(yōu)選地是利用直接存儲(chǔ)器訪問(wèn)控制 器(DMAC)(未示出)來(lái)利于數(shù)據(jù)訪問(wèn)的機(jī)制。每個(gè)處理器的 DMAC優(yōu)選地與以上參照本發(fā)明其他特征所描述的DMAC具有基本 相同的功能。
系統(tǒng)存儲(chǔ)器106優(yōu)選地是通過(guò)高帶寬存儲(chǔ)器連接(未示出)與處 理器102相連的動(dòng)態(tài)隨機(jī)訪問(wèn)存儲(chǔ)器(DRAM)。盡管系統(tǒng)存儲(chǔ)器 106優(yōu)選地是DRAM,但存儲(chǔ)器106也可使用其他裝置實(shí)現(xiàn),例如, 使用靜態(tài)隨機(jī)訪問(wèn)存儲(chǔ)器(SRAM )、磁隨機(jī)訪問(wèn)存儲(chǔ)器 (MRAM)、光存儲(chǔ)器、全息存儲(chǔ)器等。
每個(gè)處理器102優(yōu)選地使用處理流水線實(shí)現(xiàn),其中,以流水線方 式對(duì)邏輯指令進(jìn)行處理。盡管可將流水線劃分成對(duì)指令進(jìn)行處理的任 意數(shù)量的級(jí),但流水線通常包括獲取一個(gè)或多個(gè)指令,將指令解碼,
檢查指令之間的依賴性,發(fā)出指令,和執(zhí)行指令。就此而言,處理器
102可包括指令緩沖器、指令解碼電路、依賴性檢查電路、指令發(fā)出 電路和執(zhí)行級(jí)。
在一個(gè)或多個(gè)實(shí)施例中,處理器102和局部存儲(chǔ)器104可設(shè)置在 公共半導(dǎo)體襯底上。在一個(gè)或多個(gè)其他實(shí)施例中,還可將共享存儲(chǔ)器 設(shè)置在公共半導(dǎo)體襯底上,或可將其獨(dú)立設(shè)置。
在一個(gè)或多個(gè)可選實(shí)施例中, 一個(gè)或多個(gè)處理器102可作為與其 他處理器102實(shí)際相連并能夠通過(guò)總線108與共享存儲(chǔ)器106相連的 主處理器。主存儲(chǔ)器可對(duì)其他處理器102的數(shù)據(jù)處理進(jìn)行調(diào)度和協(xié) 調(diào)。然而,主存儲(chǔ)器與其他處理器102不同,它可與硬件高速緩存相 連,高速緩存可用于對(duì)從共享存儲(chǔ)器106和處理器102的一個(gè)或多個(gè) 局部存儲(chǔ)器104中的至少一個(gè)獲得的數(shù)據(jù)進(jìn)行高速緩存。主存儲(chǔ)器可 提供數(shù)據(jù)訪問(wèn)請(qǐng)求,用于將數(shù)據(jù)(其可包括程序數(shù)據(jù))從系統(tǒng)存儲(chǔ)器 106通過(guò)總線108拷貝到高速緩存中,以便通過(guò)利用任何已知技術(shù) (例如,DMA技術(shù))實(shí)現(xiàn)程序執(zhí)行和數(shù)據(jù)操作。
下面,將描述適于實(shí)現(xiàn)此處所述一個(gè)或多個(gè)特征的多處理器系統(tǒng) 的優(yōu)選計(jì)算機(jī)體系結(jié)構(gòu)。根據(jù)一個(gè)或多個(gè)實(shí)施例,可將多處理器系統(tǒng) 實(shí)現(xiàn)為用于富媒體應(yīng)用(例如,游戲系統(tǒng)、家用終端、PC系統(tǒng)、服 務(wù)器系統(tǒng)和工作站)的獨(dú)立式和/或分布式處理的單片解決方案。在 某些應(yīng)用,例如游戲系統(tǒng)和家用終端中,可能需要進(jìn)行實(shí)時(shí)計(jì)算。例 如,在實(shí)時(shí)、分布式游戲應(yīng)用中,聯(lián)網(wǎng)圖像壓縮、3D計(jì)算機(jī)圖像、 音頻生成、網(wǎng)絡(luò)通信、物理模擬和人工智能處理的其中一個(gè)或多個(gè)需 要執(zhí)行得足夠快,以便為用戶提供實(shí)時(shí)視覺(jué)體驗(yàn)。從而,在多處理器 系統(tǒng)中的每個(gè)處理器必須在很短且預(yù)定的時(shí)間內(nèi)完成任務(wù)。
為此,根據(jù)該計(jì)算機(jī)體系結(jié)構(gòu),多處理計(jì)算機(jī)系統(tǒng)的所有處理器 都由公共計(jì)算模塊(或單元)構(gòu)造而成。該公共計(jì)算模塊具有一致的 結(jié)構(gòu),優(yōu)選地是采用同一指令集體系結(jié)構(gòu)。多處理計(jì)算機(jī)系統(tǒng)可由一 個(gè)或多個(gè)客戶機(jī)、服務(wù)器、PC、便攜式計(jì)算機(jī)、游戲機(jī)、PDA、機(jī) 頂盒、電器、數(shù)字電視和使用計(jì)算機(jī)處理器的其他設(shè)備組成。 若需要的話,多個(gè)計(jì)算機(jī)系統(tǒng)還可以是網(wǎng)絡(luò)的成員。 一致性模塊 化結(jié)構(gòu)使得多處理計(jì)算機(jī)系統(tǒng)能夠?qū)?yīng)用和數(shù)據(jù)進(jìn)行有效、高速的處 理,而且如果采用網(wǎng)絡(luò),能夠在網(wǎng)絡(luò)上實(shí)現(xiàn)應(yīng)用程序和數(shù)據(jù)的快速傳 送。該結(jié)構(gòu)還簡(jiǎn)化了各種規(guī)模的網(wǎng)絡(luò)的成員的構(gòu)建,優(yōu)選地提高這些 成員的處理能力,優(yōu)選地利于為這些成員的處理準(zhǔn)備應(yīng)用程序。
參照?qǐng)D7,基本處理模塊是處理器元件(PE) 500。 PE 500包括 I/O接口 502、處理單元(PU) 504和多個(gè)子處理單元508,即,子 處理單元508A,子處理單元508B,子處理單元508C和子處理單元 508D。局部(或內(nèi)部)PE總線512在PU 504、子處理單元508和存 儲(chǔ)器接口 511之間傳送數(shù)據(jù)和應(yīng)用程序。局部PE總線512可具有例 如傳統(tǒng)體系結(jié)構(gòu),或者可實(shí)現(xiàn)為包交換網(wǎng)絡(luò)。如果實(shí)現(xiàn)為包交換網(wǎng)絡(luò) 的話,盡管需要更多硬件,但增大了有效帶寬。
PE 500可使用用于實(shí)現(xiàn)數(shù)字邏輯的各種方法構(gòu)建。然而,優(yōu)選地 是將PE 500構(gòu)建為采用硅襯底上互補(bǔ)金屬氧化物半導(dǎo)體(CMOS) 的單個(gè)集成電路。用于襯底的可選材料包括砷化鎵、砷化鎵鋁以及采 用多種摻雜的其他所謂的HI-B化合物。PE 500還可使用超導(dǎo)材料 (例如,快單磁量子(RSFQ)邏輯)實(shí)現(xiàn)。
PE 500與共享(主)存儲(chǔ)器514通過(guò)高帶寬存儲(chǔ)器連接516密切 相關(guān)。盡管存儲(chǔ)器514優(yōu)選地是動(dòng)態(tài)隨機(jī)訪問(wèn)存儲(chǔ)器(DRAM),但 存儲(chǔ)器514也可使用其他裝置實(shí)現(xiàn),例如,利用靜態(tài)隨機(jī)訪問(wèn)存儲(chǔ)器 (SRAM)、磁隨機(jī)訪問(wèn)存儲(chǔ)器(MRAM)、光存儲(chǔ)器、全息存儲(chǔ) 器等。
PU 504和子處理單元508優(yōu)選地均與包括直接存儲(chǔ)器訪問(wèn)DMA 功能的存儲(chǔ)器流控制器(MFC)相連,該功能與存儲(chǔ)器接口 511結(jié) 合使用,便于實(shí)現(xiàn)DRAM 514與PE 500的子處理單元508和PU 504之間的數(shù)據(jù)傳送。應(yīng)該注意,可將DMAC和/或存儲(chǔ)器接口 511 相對(duì)于子處理單元508和PU 504集成或獨(dú)立設(shè)置。的確,可將 DMAC功能和/或存儲(chǔ)器接口 511功能與一個(gè)或多個(gè)(優(yōu)選地是多 個(gè))子處理單元508和PU 504集成在一起。還應(yīng)注意,可將DRAM
514相對(duì)于PE 500集成或獨(dú)立設(shè)置。例如,可將DRAM 514 i殳置在 片外,如視圖所示,或者,可將DRAM 514以集成方式設(shè)置在片 上。
PU 504可以是,例如,能夠?qū)?shù)據(jù)和應(yīng)用程序進(jìn)行獨(dú)立處理的標(biāo) 準(zhǔn)處理器。在操作上,PU 504優(yōu)選地對(duì)子處理單元對(duì)數(shù)據(jù)和應(yīng)用程 序的處理進(jìn)行調(diào)度和協(xié)調(diào)。子處理單元優(yōu)選地為單指令、多數(shù)據(jù) (SIMD)處理器。在PU 504的控制下,子處理單元以并行和獨(dú)立 方式對(duì)這些數(shù)據(jù)和應(yīng)用程序執(zhí)行處理。PU 504優(yōu)選地4吏用PowerPC 核心實(shí)現(xiàn),PowerPC核心是采用精簡(jiǎn)指令集計(jì)算(RISC)技術(shù)的微 處理器體系結(jié)構(gòu)。RISC使用簡(jiǎn)單指令的組合執(zhí)行更復(fù)雜的指令。從 而,處理器的定時(shí)可基于更簡(jiǎn)單和更快速的操作,使得微處理器對(duì)于 給定時(shí)鐘速度執(zhí)行更多指令。
應(yīng)該注意,由其中一個(gè)子處理單元508擔(dān)當(dāng)起調(diào)度和協(xié)調(diào)由子處 理單元508對(duì)數(shù)據(jù)和應(yīng)用程序進(jìn)行處理的主處理單元的角色。此外, 在處理器元件500內(nèi)可實(shí)現(xiàn)多于一個(gè)PU。
根據(jù)該模塊化結(jié)構(gòu),具體計(jì)算機(jī)系統(tǒng)所采用的PE 500的數(shù)量是 基于該系統(tǒng)所需的處理能力。例如,服務(wù)器可采用四個(gè)PE 500,工 作站可采用兩個(gè)PE 500, PDA可釆用一個(gè)PE 500。分配用于處理具 體軟件單元的PE 500子處理單元的數(shù)量是基于單元內(nèi)程序和數(shù)據(jù)的 復(fù)雜性和數(shù)量。
圖8表示子處理單元(SPU) 508的優(yōu)選結(jié)構(gòu)和功能。SPU 508 體系結(jié)構(gòu)優(yōu)選地填補(bǔ)了通用處理器(其設(shè)計(jì)用于在眾多應(yīng)用程序上實(shí) 現(xiàn)較高平均性能)與專用處理器(其設(shè)計(jì)用于在單個(gè)應(yīng)用上實(shí)現(xiàn)較高 性能)之間的空缺。SPU 508被設(shè)計(jì)成用于在游戲應(yīng)用、媒體應(yīng)用、 寬帶系統(tǒng)等上實(shí)現(xiàn)高性能,以及向?qū)崟r(shí)應(yīng)用的編程人員提供高度控 制。SPU 508的某些功能包括圖形幾何流水線、表面細(xì)分、快速傅里 葉變換、圖像處理關(guān)鍵字、流處理、MPEG編碼/解碼、加密、解 密、設(shè)備驅(qū)動(dòng)器擴(kuò)展、建模、游戲物理學(xué)、內(nèi)容創(chuàng)建和音頻合成與處 理。子處理單元508包括兩個(gè)基本功能單元,即,SPU核心510A和 存儲(chǔ)器流控制器(MFC) 510B。 SPU核心510A實(shí)現(xiàn)程序執(zhí)行、數(shù) 據(jù)操作等,而MFC 510B實(shí)現(xiàn)與系統(tǒng)的SPU核心510A與DRAM 514之間的數(shù)據(jù)傳送有關(guān)功能。
SPU核心510A包括局部存儲(chǔ)器550、指令單元(IU) 552、寄存 器554、 一個(gè)或多個(gè)浮點(diǎn)執(zhí)行級(jí)556,以及一個(gè)或多個(gè)定點(diǎn)執(zhí)行級(jí) 558。局部存儲(chǔ)器550優(yōu)選地使用單端口隨機(jī)訪問(wèn)存儲(chǔ)器(例如, SRAM)實(shí)現(xiàn)。大多數(shù)處理器通過(guò)釆用高速緩存縮減了到存儲(chǔ)器的時(shí) 延,而SPU核心510A實(shí)現(xiàn)了相對(duì)較小的局部存儲(chǔ)器550而不是高速 緩存。的確,為了為實(shí)時(shí)應(yīng)用(以及此處所述的其他應(yīng)用)的編程人 員提供一致且可預(yù)知的存儲(chǔ)器訪問(wèn)時(shí)延,在SPU 508A內(nèi)的高速緩存 體系結(jié)構(gòu)并不是優(yōu)選的。高速緩存的高速緩存命中/命中失誤特性導(dǎo) 致出現(xiàn)易失性存儲(chǔ)器訪問(wèn)時(shí)間從數(shù)周期到數(shù)百周期變化。這樣的易失 性削弱了例如在實(shí)時(shí)應(yīng)用編程中想要的訪問(wèn)定時(shí)可預(yù)測(cè)性。在局部存 儲(chǔ)器SRAM 550中,通過(guò)將DMA傳送與數(shù)據(jù)計(jì)算重疊,可實(shí)現(xiàn)時(shí)延 隱藏。這為實(shí)時(shí)應(yīng)用編程提供了高度控制。由于與DMA傳送相關(guān)的 時(shí)延和指令開(kāi)銷超過(guò)了為緩存命失誤提供服務(wù)的時(shí)延開(kāi)銷,SRAM 局部存儲(chǔ)器方法在DMA傳送尺寸充分大且足以預(yù)測(cè)時(shí)表現(xiàn)出優(yōu)點(diǎn) (例如,在需要數(shù)據(jù)之前可發(fā)出DMA命令)。
運(yùn)行在子處理單元508中的指定子處理單元上的程序使用局部地 址訪問(wèn)有關(guān)局部存儲(chǔ)器550,然而,在整個(gè)系統(tǒng)存儲(chǔ)器映射內(nèi),還對(duì) 局部存儲(chǔ)器550的每個(gè)位置分配實(shí)地址(RA)。這允許特權(quán)軟件將 局部存儲(chǔ)器550映射到進(jìn)程的有效地址(EA),以便實(shí)現(xiàn)一個(gè)局部 存儲(chǔ)器550與另一局部存儲(chǔ)器550之間的DMA傳送。PU 504還可 使用有效地址直接訪問(wèn)局部存儲(chǔ)器550。在優(yōu)選實(shí)施例中,局部存儲(chǔ) 器550包括556千字節(jié)的存儲(chǔ)容量,寄存器552的容量為128x128 位。
SPU核心504A優(yōu)選地^f吏用處理流水線實(shí)現(xiàn),其中,以流水線方 式處理邏輯指令。盡管可將流水線分成對(duì)指令進(jìn)行處理的任意數(shù)量的
級(jí),但流水線通常包括獲取一個(gè)或多個(gè)指令,將指令解碼,檢查指令
之間的依賴性,發(fā)出指令,和執(zhí)行指令。就此而言,IU 552包括指令 緩沖器、指令解碼電路、依賴性檢查電路和指令發(fā)出電路。
指令緩沖器優(yōu)選地包括與局部存儲(chǔ)器550相連的多個(gè)寄存器,并 用于臨時(shí)存儲(chǔ)它們獲取的指令。指令緩沖器優(yōu)選地以這樣方式操作 所有指令成組,即基本同時(shí)地離開(kāi)寄存器。盡管指令緩沖器可以為任 意尺寸,但優(yōu)選地還是不大于約2或3個(gè)寄存器的尺寸。
一般而言,解碼電路將指令分解,并生成執(zhí)行相應(yīng)指令的功能的 邏輯微操作。例如,邏輯微操作可指定運(yùn)算和邏輯操作、對(duì)局部存儲(chǔ) 器550的加栽和存儲(chǔ)操作、寄存器源操作數(shù)和/或直接數(shù)據(jù)操作數(shù)。 解碼電路也可指示出指令使用哪些資源,例如目標(biāo)寄存器地址、結(jié)構(gòu) 資源、功能單元和/或總線。解碼電路還可提供指示需要資源的指令 流水線級(jí)的信息。指令解碼電路優(yōu)選地能夠基本同時(shí)將數(shù)量等于指令 緩沖器的寄存器數(shù)量的指令解碼。
依賴性檢查電路包括執(zhí)行測(cè)試以確定給定指令的操作數(shù)是否取決 于流水線中其他指令的操作數(shù)的數(shù)字邏輯。若如此,則應(yīng)直到將這樣 的其他操作數(shù)進(jìn)行更新(例如,通過(guò)允許其他指令完成執(zhí)行)才執(zhí)行 給定指令。優(yōu)選地是,依賴性檢查電路確定從解碼器電路112同時(shí)分 配的多個(gè)指令的依賴性。
指令發(fā)出電路可向浮點(diǎn)執(zhí)行級(jí)556和/或定點(diǎn)執(zhí)行級(jí)558發(fā)出指令。
優(yōu)選地將寄存器554實(shí)現(xiàn)為相對(duì)較大的統(tǒng)一寄存器堆,例如, 128條目寄存器堆。這允許在無(wú)需寄存器重命名以避免寄存器俄死 (starvation)的情況下實(shí)現(xiàn)深流水線化高頻實(shí)現(xiàn)。硬件重命名通常 消耗處理系統(tǒng)中較大部分的區(qū)域和功率。從而,當(dāng)通過(guò)軟件循環(huán)展開(kāi) (unrolling)或其他交織技術(shù)覆蓋時(shí)延時(shí),可實(shí)現(xiàn)有益的操作。
優(yōu)選地是,SPU核心510A屬于超標(biāo)量體系結(jié)構(gòu),以便每個(gè)時(shí)鐘 周期可發(fā)送多于一個(gè)的指令。SPU核心510A優(yōu)選地以對(duì)應(yīng)于自指令 緩沖器的同時(shí)指令分配的數(shù)量,例如在2和3之間(表示每個(gè)時(shí)鐘周
期發(fā)出2或3個(gè)指令)的程度的超標(biāo)量進(jìn)行操作。根據(jù)所需處理能 力,可采用更多或更少的浮點(diǎn)執(zhí)行級(jí)556和定點(diǎn)執(zhí)行級(jí)558。在優(yōu)選 實(shí)施例中,浮點(diǎn)執(zhí)行級(jí)556以每秒320億浮點(diǎn)操作的速度(32 GFLOPS )運(yùn)作,定點(diǎn)執(zhí)行級(jí)558以每秒320億浮點(diǎn)操作的速度(32 GOPS)運(yùn)作。
MFC 510B優(yōu)選地包括總線接口單元(BIU) 564、存儲(chǔ)器管理單 元(MMU ) 562和直接存儲(chǔ)器訪問(wèn)控制器(DMAC ) 560。除 DMAC 560外,MFC 510B優(yōu)選地與SPU核心510A和總線512相比 以一半頻率(半速)運(yùn)行,以符合低功耗設(shè)計(jì)目標(biāo)。MFC 510B可用 于對(duì)從總線512進(jìn)入SPU 508的數(shù)據(jù)和指令進(jìn)行處理,為DMAC提 供地址轉(zhuǎn)換,和數(shù)據(jù)一致性的窺探操作。BIU 564提供總線512與 MMU 562和DMAC 560之間的接口。從而,SPU 508 (包括SPU核 心510A和MFC 510B)和DMAC 560在物理上和/或邏輯上與總線 512連接。
MMU 562優(yōu)選地可用于將有效地址(從DMA命令獲得)轉(zhuǎn)換 成用于存儲(chǔ)器訪問(wèn)的實(shí)地址。例如,MMU 562可將有效地址的高位 轉(zhuǎn)換成實(shí)地址位。不過(guò),低地址優(yōu)選地是不可轉(zhuǎn)換的,并在邏輯和物 理上視為用于形成實(shí)地址以及用于請(qǐng)求對(duì)存儲(chǔ)器進(jìn)行訪問(wèn)。在一個(gè)或 多個(gè)實(shí)施例中,MMU 562可基于64位存儲(chǔ)器管理模型實(shí)現(xiàn),并可提 供具有4K-, 64K-, lM-和16M-字節(jié)頁(yè)尺寸和256MB段尺寸的264 字節(jié)有效地址空間。優(yōu)選地是,MMU 562可用于支持多達(dá)265字節(jié) 虛擬存儲(chǔ)器,和用于DMA命令的242字節(jié)(4千吉字節(jié))物理存儲(chǔ) 器。MMU 562的硬件可包括8條目全關(guān)聯(lián)SLB、 256條目4路組關(guān) 聯(lián)TLB和用于TLB的4x4替換管理表(RMT )—用于硬件TLB命 中失誤處理。
DMAC 560優(yōu)選地可用于對(duì)來(lái)自SPU核心510A以及諸如PU 504和/或其他SPU之類的一個(gè)或多個(gè)其他設(shè)備的DMA命令進(jìn)行管 理。可存在三種類型的DMA命令Put命令,用于將數(shù)據(jù)從局部存 儲(chǔ)器550移到共享存儲(chǔ)器514; Get命令,用于將數(shù)據(jù)從共享存儲(chǔ)器
514移動(dòng)到局部存儲(chǔ)器550;以及存儲(chǔ)控制命令,包括SLI命令和同 步命令。同步命令可包括原子命令、發(fā)送信號(hào)命令和專用阻擋命令。 根據(jù)DMA命令,MMU 562將有效地址轉(zhuǎn)換成實(shí)地址,并將實(shí)地址 轉(zhuǎn)發(fā)到BIU 564。
SPU核心510A優(yōu)選地使用通道接口和數(shù)據(jù)接口與DMAC 560內(nèi) 的接口通信(發(fā)送DMA命令、狀態(tài)等)。SPU核心510通過(guò)通道接 口將DMA命令分配到DMAC 560中的DMA隊(duì)列。 一旦DMA命令 處在DMA隊(duì)列中,它就通過(guò)DMAC 560內(nèi)的發(fā)出和完成邏輯進(jìn)行 處理。當(dāng)完成對(duì)于DMA命令的所有總線事務(wù)時(shí),通過(guò)通道接口將完 成信號(hào)發(fā)送回SPU核心510A。
圖9表示PU 504的優(yōu)選結(jié)構(gòu)和功能。PU 504包括兩個(gè)基本功能 單元,PU核心504A和存儲(chǔ)器流控制器(MFC) 504B。 PU核心 504A實(shí)現(xiàn)程序執(zhí)行、數(shù)據(jù)操作、多處理器管理功能等,而MFC 504B執(zhí)行關(guān)于系統(tǒng)100的PU核心504A與存儲(chǔ)器空間之間數(shù)據(jù)傳送 的功能。
PU核心504A可包括一級(jí)高速緩存570、指令單元572、寄存器 574、 一個(gè)或多個(gè)浮點(diǎn)執(zhí)行級(jí)576和一個(gè)或多個(gè)定點(diǎn)執(zhí)行級(jí)578。 一 級(jí)高速緩存為從共享存儲(chǔ)器106、處理器102或存儲(chǔ)器空間的其他部 分通過(guò)MFC 504B接收的數(shù)據(jù)提供數(shù)據(jù)緩存功能。由于優(yōu)選地將PU 核心504A實(shí)現(xiàn)為超級(jí)流水線,優(yōu)選地將指令單元572實(shí)現(xiàn)為具有多 個(gè)級(jí)(包括獲取、解碼、依賴性檢查、發(fā)出等)的指令流水線。PU 核心504A優(yōu)選地也屬于超標(biāo)量配置,從而,每個(gè)時(shí)鐘周期從指令單 元572發(fā)出多于一個(gè)的指令。為實(shí)現(xiàn)高處理能力,浮點(diǎn)執(zhí)行級(jí)576和 定點(diǎn)執(zhí)行級(jí)578在流水線配置中包括多個(gè)級(jí)。才艮據(jù)所需處理能力,可 采用數(shù)量更多或更少的浮點(diǎn)執(zhí)行級(jí)576和定點(diǎn)執(zhí)行級(jí)578。
MFC 504B包括總線接口 (BIU) 580、 二級(jí)高速緩存、非高速緩 存單元(NCU) 584、核心接口單元(CIU) 586和存儲(chǔ)器管理單元 (MMU ) 588。多數(shù)MFC 504B與PU核心504A和總線108相比以 半頻(半速)運(yùn)行,以符合低功耗設(shè)計(jì)目標(biāo)。BIU 580設(shè)置有在總線108與二級(jí)高速緩存582和NCU 584邏輯 塊之間的接口。為此,BIU 580可起到在總線上的主和從設(shè)備的作 用,以實(shí)現(xiàn)完全一致的存儲(chǔ)器操作。作為主設(shè)備,它可將載入/存儲(chǔ) 請(qǐng)求發(fā)送到總線108,以便為二級(jí)高速緩存582和NCU 584提供服 務(wù)。BIU 580還可實(shí)現(xiàn)對(duì)于命令的流控機(jī)制,以限制可向總線108發(fā) 送的命令總數(shù)??蓪⒖偩€108上的數(shù)據(jù)操作設(shè)計(jì)成采用八拍 (beat),因此,優(yōu)選地將BIU 580設(shè)計(jì)成約128字節(jié)高速緩存線, 一致性和同步粒度為128KB。
優(yōu)選地將二級(jí)高速緩存582 (支持硬件邏輯)設(shè)計(jì)成用于緩存 512KB數(shù)據(jù)。例如,二級(jí)高速緩存582可處理高速緩存載入/存儲(chǔ)、 數(shù)據(jù)預(yù)取、指令獲取、指令預(yù)取、高速緩存操作和阻擋操作。二級(jí)高 速緩存582優(yōu)選地是8路組關(guān)聯(lián)系統(tǒng)。二級(jí)高速緩存582可包括與六 個(gè)(6)逐出隊(duì)列(castout queue)(例如,六個(gè)RC機(jī))相匹配的 六個(gè)重載入隊(duì)列,和八個(gè)(64字節(jié)寬)存儲(chǔ)隊(duì)列。二級(jí)高速緩存582 可用于提供在一級(jí)高速緩存570中某些或所有數(shù)據(jù)的備份拷貝。有益 的是,當(dāng)將處理節(jié)點(diǎn)進(jìn)行熱交換時(shí),這在恢復(fù)狀態(tài)中是有用的。該配 置還允許一級(jí)高速緩存570以更少的端口更快速地進(jìn)行操作,并允許 更快速的高速緩存到高速緩存?zhèn)魉?由于請(qǐng)求可在二級(jí)高速緩存582 處停止)。該配置還提供了用于將高速緩存一致性管理傳遞到二級(jí)高 速緩存582的機(jī)制。
NCU 584與CIU 586、 二級(jí)高速緩存582和BIU 580相接口 ,且 通常充當(dāng)用于PU核心504A與存儲(chǔ)器系統(tǒng)之間非高速緩存操作的排 隊(duì)/緩沖電路。NCU 584優(yōu)選地處理二級(jí)高速緩存582未進(jìn)行處理的 與PU核心504A的所有通信,例如,高速緩存固有的栽入/存儲(chǔ)、阻 擋操作、和高速緩存一致性操作。NCU 584優(yōu)選地以半速運(yùn)行,以 符合上述功耗目標(biāo)。
將CIU 586設(shè)置在MFC 504B和PU核心504A的邊界上,為來(lái) 自執(zhí)行級(jí)576, 578、指令單元572和MMU單元588以及去往二級(jí) 高速緩存582和NCU 584的請(qǐng)求起到路由、仲裁和流控點(diǎn)的作用。
PU核心504A和MMU 588優(yōu)選地以全速運(yùn)行,而二級(jí)高速緩存582 和NCU 584以2:1速度比運(yùn)行。從而,在CIU 586中出現(xiàn)頻率邊 界,且其中 一項(xiàng)功能是當(dāng)它轉(zhuǎn)發(fā)請(qǐng)求和在兩個(gè)頻域之間重載入數(shù)據(jù)時(shí) 正確地對(duì)頻率交叉進(jìn)行處理。
CIU 586包括三個(gè)功能塊栽入單元、存儲(chǔ)單元和重載入單元。 此外,數(shù)據(jù)預(yù)取功能通過(guò)CIU 586執(zhí)行,且優(yōu)選地作為栽入單元的功 能部分。CIU 586優(yōu)選地用于(i)從PU核心504A和MMU 588 接收栽入和存儲(chǔ)請(qǐng)求;(ii)將請(qǐng)求從全速時(shí)鐘頻率轉(zhuǎn)換成半速(2:1 時(shí)鐘頻率轉(zhuǎn)換);(m)將高速緩存請(qǐng)求路由到二級(jí)高速緩存582, 并將非高速緩存請(qǐng)求路由到NCU 584; (iv )在到二級(jí)高速緩存582 和NCU 584的請(qǐng)求之間進(jìn)行合理仲裁;(v )對(duì)二級(jí)高速緩存582和 NCU 584的調(diào)度提供流量控制,以便在目標(biāo)窗口中接收請(qǐng)求,并避 免溢出;(vi)接收載入返回?cái)?shù)據(jù),并將其路由到執(zhí)行級(jí)576, 578、 指令單元572,或MMU 588; ( vii )將窺探請(qǐng)求傳遞到執(zhí)行級(jí) 576, 578、指令單元572,或MMU 588;以及(viii)將載入返回?cái)?shù) 據(jù)和窺探流量從半速轉(zhuǎn)換到全速。
MMU 588優(yōu)選地為PU核心540A提供地址轉(zhuǎn)換,例如,通過(guò)二 級(jí)地址轉(zhuǎn)換設(shè)備實(shí)現(xiàn)。優(yōu)選地在PU核心504A中通過(guò)獨(dú)立的指令和 數(shù)據(jù)ERAT (有效到實(shí)地址轉(zhuǎn)換)陣列提供一級(jí)轉(zhuǎn)換,所述陣列可比 MMU 588小很多且更快。
在優(yōu)選實(shí)施例中,PU 504運(yùn)作在4-6GHz, 10F04,且具有64位 實(shí)現(xiàn)方式。寄存器優(yōu)選地為64位長(zhǎng)(但一個(gè)或多個(gè)專用寄存器也可 更小),有效地址為64位長(zhǎng)。指令單元570、寄存器572以及執(zhí)行 級(jí)574和576優(yōu)選地使用PowerPC技術(shù)實(shí)現(xiàn),以實(shí)現(xiàn)(RISC )計(jì)算 技術(shù)。
有關(guān)該計(jì)算機(jī)系統(tǒng)模塊化結(jié)構(gòu)的其他細(xì)節(jié)可參看美國(guó)專利No. 6,526,491,從而,該文獻(xiàn)全部披露內(nèi)容在此引作參考。
根據(jù)本發(fā)明的至少一個(gè)進(jìn)一步的方面,上述方法和裝置可使用合 適的硬件(如參照附圖所示)實(shí)現(xiàn)。這樣的硬件可使用任何已知的技
術(shù)實(shí)現(xiàn),例如,標(biāo)準(zhǔn)數(shù)字電路,可用于執(zhí)行軟件和/或固件程序的任 何已知處理器, 一個(gè)或多個(gè)可編程數(shù)字設(shè)備或系統(tǒng),例如,可編程只
讀存儲(chǔ)器(PROM)、可編程陣列邏輯設(shè)備(PAL)等。此外,盡管 將附圖中所示裝置示為劃分成某些功能塊,然而這樣的塊可通過(guò)獨(dú)立 電路實(shí)現(xiàn),和/或?qū)⑵浣M合到一個(gè)或多個(gè)功能單元實(shí)現(xiàn)。此外,通過(guò) 可存儲(chǔ)在合適存儲(chǔ)介質(zhì)或媒體(如,軟磁盤、存儲(chǔ)器芯片等)上以便 進(jìn)行傳送和/或發(fā)布的軟件和/或固件程序,可實(shí)現(xiàn)本發(fā)明的各個(gè)方 面。
盡管參照具體實(shí)施例描述了此處的本發(fā)明,然而應(yīng)該理解,這些 實(shí)施例僅僅是出于說(shuō)明本發(fā)明原理和應(yīng)用的目的。因此,應(yīng)該理解, 在不偏離由所附權(quán)利要求所定義的本發(fā)明精神和范圍的條件下,可對(duì) 所示實(shí)施例進(jìn)行多種修改,并可設(shè)計(jì)出其他方案。
權(quán)利要求
1.一種方法,包括從處理系統(tǒng)的處理器接收針對(duì)存儲(chǔ)在處理系統(tǒng)的存儲(chǔ)器內(nèi)的數(shù)據(jù)的第一DMA命令;以及對(duì)第一DMA命令分配標(biāo)識(shí)符,該標(biāo)識(shí)符用于與包含有關(guān)第一DMA命令的狀態(tài)信息的DMA表的條目的關(guān)聯(lián)。
2. 根據(jù)權(quán)利要求1的方法,還包括,把與第一 DMA命令相關(guān)的 DMA表的條目的狀態(tài)信息初始化為表示尚未完成與第一 DMA命令 相關(guān)的數(shù)據(jù)傳送。
3. 根據(jù)權(quán)利要求1的方法,還包括,當(dāng)已完成與第一 DMA命令 相關(guān)的數(shù)據(jù)傳送時(shí),對(duì)與第一 DMA命令相關(guān)的DMA表的條目的狀 態(tài)信息進(jìn)行更新。
4. 根據(jù)權(quán)利要求1的方法,還包括,從處理器接收與第一 DMA 命令有關(guān)的狀態(tài)請(qǐng)求。
5. 根據(jù)權(quán)利要求4的方法,還包括,對(duì)與第一DMA命令相關(guān)的 DMA表的條目進(jìn)行檢查,以獲得狀態(tài)信息。
6. 根據(jù)權(quán)利要求5的方法,其中基于狀態(tài)信息將關(guān)于是否已完成 第一 DMA命令的數(shù)據(jù)傳送的指示返回到處理器。
7. 根據(jù)權(quán)利要求1-6的任何一個(gè)的方法,其中,DMA表包括以 下至少之一標(biāo)識(shí)符;存儲(chǔ)器的存儲(chǔ)數(shù)據(jù)的起始地址;存儲(chǔ)器的存儲(chǔ) 數(shù)據(jù)的結(jié)束地址;進(jìn)、出存儲(chǔ)器的數(shù)據(jù)傳送方向;以及狀態(tài)信息。
8. 根據(jù)權(quán)利要求1-7的任何一個(gè)的方法,其中,DMA表是軟件 實(shí)現(xiàn)的表。
9. 一種方法,包括在處理系統(tǒng)的處理器中執(zhí)行包括若干程序任務(wù)的軟件程序; 發(fā)出用于從處理系統(tǒng)的第一存儲(chǔ)器向第二存儲(chǔ)器的數(shù)據(jù)傳送的第 一 DMA命令;向處理系統(tǒng)的窺探控制器發(fā)出關(guān)于第一 DMA命令的一個(gè)或多個(gè) 狀態(tài)請(qǐng)求;以及將一個(gè)或多個(gè)處理任務(wù)延遲,直至對(duì)至少一個(gè)所述狀態(tài)請(qǐng)求的響 應(yīng)表明已完成從第一存儲(chǔ)器到第二存儲(chǔ)器的數(shù)據(jù)傳送。
10. 根據(jù)權(quán)利要求9的方法,還包括 從處理器接收第一DMA命令;以及對(duì)第一 DMA命令分配標(biāo)識(shí)符,所述標(biāo)識(shí)符用于與包含有關(guān)第一 DMA命令的狀態(tài)信息的DMA表的條目的關(guān)聯(lián)。
11. 根據(jù)權(quán)利要求10的方法,還包括,把與第一DMA命令相關(guān) 的DMA表的條目的狀態(tài)信息初始化為表示尚未完成與第一 DMA命 令相關(guān)的數(shù)據(jù)傳送。
12. 根據(jù)權(quán)利要求11的方法,還包括,當(dāng)完成與第一 DMA命令 相關(guān)的數(shù)據(jù)傳送時(shí),對(duì)與第一 DMA命令相關(guān)的DMA表的條目的狀 態(tài)信息進(jìn)行更新。
13. 根據(jù)權(quán)利要求ll的方法,還包括 從處理器接收與第一DMA命令有關(guān)的狀態(tài)請(qǐng)求;對(duì)與第一 DMA命令相關(guān)的DMA表的條目進(jìn)行檢查,以獲得狀 態(tài)信息;以及基于狀態(tài)信息將關(guān)于是否已完成第一 DMA命令的數(shù)據(jù)傳送的指 示返回到處理器。
14. 一種方法,包括接收關(guān)于已經(jīng)完成從處理器的第一存儲(chǔ)器到第二存儲(chǔ)器的DMA 數(shù)據(jù)傳送的指示;以及將與DMA數(shù)據(jù)傳送相關(guān)的DMA表的條目的狀態(tài)信息更新成表 示已完成DMA數(shù)據(jù)傳送。
15. 根據(jù)權(quán)利要求14的方法,其中,DMA表是軟件實(shí)現(xiàn)的表。
16. 根據(jù)權(quán)利要求14的方法,還包括,監(jiān)視硬件實(shí)現(xiàn)的DMA命 令隊(duì)列,以確定是否已完成從第一存儲(chǔ)器到第二存儲(chǔ)器的DMA數(shù)據(jù) 傳送。
17. 根據(jù)權(quán)利要求16的方法,還包括,將硬件實(shí)現(xiàn)的DMA命令 隊(duì)列與DMA表同步,以更新其條目的狀態(tài)信息。
18. 根據(jù)權(quán)利要求17的方法,其中,DMA表是軟件實(shí)現(xiàn)的表。
19. 根據(jù)權(quán)利要求14的方法,還包括以下至少之一 從處理器接收與DMA命令有關(guān)的狀態(tài)請(qǐng)求;對(duì)與DMA命令相關(guān)的DMA表的條目進(jìn)行檢查,以獲得狀態(tài)信 息;以及基于狀態(tài)信息將關(guān)于是否已完成DMA命令的數(shù)據(jù)傳送的指示返 回到處理器。
20. —種包含有軟件程序的存儲(chǔ)介質(zhì),所述軟件程序用于^f吏處理 系統(tǒng)的處理器執(zhí)行包括以下的操作對(duì)DMA命令分配標(biāo)識(shí)符,所述標(biāo)識(shí)符用于與包含有關(guān)DMA命 令的狀態(tài)信息的DMA表的條目的關(guān)聯(lián);接收關(guān)于已完成由DMA命令定義的DMA數(shù)據(jù)傳送的指示;以及將與DMA數(shù)據(jù)傳送相關(guān)的DMA表的條目的狀態(tài)信息更新成表 示已完成DMA數(shù)據(jù)傳送。
21. 根據(jù)權(quán)利要求20的存儲(chǔ)介質(zhì),還包括,監(jiān)視硬件實(shí)現(xiàn)的 DMA命令隊(duì)列,以確定是否已完成DMA數(shù)據(jù)傳送。
22. 根據(jù)權(quán)利要求21的存儲(chǔ)介質(zhì),還包括,將硬件實(shí)現(xiàn)的DMA 命令隊(duì)列與DMA表同步,以更新其條目的狀態(tài)信息。
23. 根據(jù)權(quán)利要求20-22的任何一個(gè)的存儲(chǔ)介質(zhì),其中,DMA表 是軟件實(shí)現(xiàn)的表。
24. 根據(jù)權(quán)利要求20的存儲(chǔ)介質(zhì),還包括以下至少之一 從處理器接收與DMA命令有關(guān)的狀態(tài)請(qǐng)求;對(duì)與DMA命令相關(guān)的DMA表的條目進(jìn)行檢查,以獲得狀態(tài)信 息;以及基于狀態(tài)信息將關(guān)于是否已完成DMA命令的數(shù)據(jù)傳送的指示返 回到處理器。
25. 根據(jù)權(quán)利要求20的存儲(chǔ)介質(zhì),其中,DMA表包括以下至少之一標(biāo)識(shí)符;存儲(chǔ)器的存儲(chǔ)數(shù)據(jù)的起始地址;存儲(chǔ)器的存儲(chǔ)數(shù)據(jù)的 結(jié)束地址;進(jìn)、出存儲(chǔ)器的數(shù)據(jù)傳送方向;以及狀態(tài)信息。
26. 根據(jù)權(quán)利要求24或25的任何一個(gè)的存儲(chǔ)介質(zhì),其中,DMA 表是軟件實(shí)現(xiàn)的表。
27. —種包含有軟件程序的存儲(chǔ)介質(zhì),所述軟件程序用于^^處理 系統(tǒng)的處理器執(zhí)行包括以下的操作在處理系統(tǒng)的處理器中執(zhí)行包括若干程序任務(wù)的軟件程序; 發(fā)出用于從處理系統(tǒng)的第一存儲(chǔ)器向第二存儲(chǔ)器的數(shù)據(jù)傳送的第 一 DMA命令;向處理系統(tǒng)的窺探控制器發(fā)出關(guān)于第一 DMA命令的一個(gè)或多個(gè)狀態(tài)請(qǐng)求;以及將一個(gè)或多個(gè)處理任務(wù)延遲,直至對(duì)至少一個(gè)狀態(tài)請(qǐng)求的響應(yīng)表 明已完成從第一存儲(chǔ)器到第二存儲(chǔ)器的數(shù)據(jù)傳送。
28. —種裝置,包括能夠與主存儲(chǔ)器進(jìn)行通信的至少一個(gè)處理器; 與至少一個(gè)處理器相連的局部存儲(chǔ)器;用于存儲(chǔ)由至少一個(gè)處理器發(fā)出的一個(gè)或多個(gè)DMA命令的 DMA命令隊(duì)列;以及包含與DMA命令隊(duì)列中存儲(chǔ)的每個(gè)DMA命令相關(guān)聯(lián)的至少一 個(gè)條目的DMA表, 一個(gè)或多個(gè)所述條目包含有關(guān)于是否已完成相關(guān) DMA命令的DMA數(shù)據(jù)傳送的狀態(tài)信息。
29. 根據(jù)權(quán)利要求28的裝置,還包括窺探控制器,用于接收關(guān)于 是否已完成DMA命令的DMA數(shù)據(jù)傳送的指示。
30. 根據(jù)權(quán)利要求29的裝置,其中,窺探控制器還用于根據(jù)是否 已完成相關(guān)DMA數(shù)據(jù)傳送來(lái)更新DMA表的條目的狀態(tài)信息。
31. 根據(jù)權(quán)利要求29的裝置,其中,窺探控制器還用于對(duì)DMA 命令分配標(biāo)識(shí)符,所述標(biāo)識(shí)符將DMA命令與DMA表的相應(yīng)條目相 關(guān)聯(lián)。
32. 根據(jù)權(quán)利要求30或31的任何一個(gè)的裝置,其中,窺探控制 器還用于監(jiān)視DMA命令隊(duì)列,以確定是否已完成DMA數(shù)據(jù)傳送。
33. 根據(jù)權(quán)利要求32的裝置,其中,窺探控制器還用于將DMA 命令隊(duì)列與DMA表同步,以更新其條目的狀態(tài)信息。
34. 根據(jù)權(quán)利要求33的裝置,其中,以下至少之一 DMA命令隊(duì)列為硬件實(shí)現(xiàn)的隊(duì)列;以及DMA表為軟件實(shí)現(xiàn)的表。
35. 根據(jù)權(quán)利要求29的裝置,其中,窺探控制器還用于實(shí)現(xiàn)以下 至少之一從處理器接收關(guān)于DMA命令的一個(gè)或多個(gè)狀態(tài)請(qǐng)求; 檢查與DMA命令相關(guān)聯(lián)的DMA表的條目,以獲得其狀態(tài)信 息;以及基于狀態(tài)信息將關(guān)于是否已完成DMA命令的數(shù)據(jù)傳送的指示返 回到處理器。
36. 根據(jù)權(quán)利要求28-35的任何一個(gè)的裝置,還包括, 能夠與主存儲(chǔ)器進(jìn)行通信的多個(gè)并行處理器,每個(gè)處理器包括不是硬件高速緩存的局部存儲(chǔ)器,和指令執(zhí)行流水線。
37. 根據(jù)權(quán)利要求36的裝置,其中,每個(gè)處理器能夠執(zhí)行在其局 部存儲(chǔ)器內(nèi)的一個(gè)或多個(gè)程序,但每個(gè)處理器不能夠執(zhí)行在主存儲(chǔ)器 內(nèi)的一個(gè)或多個(gè)程序。
38. 根據(jù)權(quán)利要求36-37的任何一個(gè)的裝置,其中,將處理器和 相關(guān)聯(lián)的局部存儲(chǔ)器設(shè)置在公共半導(dǎo)體襯底上。
39. 根據(jù)權(quán)利要求36-38的任何一個(gè)的裝置,其中,將處理器、 相關(guān)聯(lián)的局部存儲(chǔ)器和主存儲(chǔ)器設(shè)置在公共半導(dǎo)體襯底上。
40. —種系統(tǒng),包括能夠與主存儲(chǔ)器進(jìn)行通信的至少一個(gè)處理器; 與至少一個(gè)處理器相連的局部存儲(chǔ)器;用于存儲(chǔ)由至少一個(gè)處理器發(fā)出的一個(gè)或多個(gè)DMA命令的 DMA命令隊(duì)列;以及包含與DMA命令隊(duì)列中存儲(chǔ)的每個(gè)DMA命令相關(guān)聯(lián)的至少一 個(gè)條目的DMA表, 一個(gè)或多個(gè)所述條目包含有關(guān)于是否已完成相關(guān) DMA命令的DMA數(shù)據(jù)傳送的狀態(tài)信息。
全文摘要
本發(fā)明所披露的方法和裝置,用于對(duì)DMA命令分配標(biāo)識(shí)符,該標(biāo)識(shí)符用于與有關(guān)包含DMA命令的狀態(tài)信息的DMA表的條目的關(guān)聯(lián);接收關(guān)于完成由DMA命令定義的DMA數(shù)據(jù)傳送的表示;以及將與DMA數(shù)據(jù)傳送相關(guān)的DMA表?xiàng)l目的狀態(tài)信息更新成表示已完成DMA數(shù)據(jù)傳送。
文檔編號(hào)G06F13/28GK101099140SQ200680001740
公開(kāi)日2008年1月2日 申請(qǐng)日期2006年2月7日 優(yōu)先權(quán)日2005年2月8日
發(fā)明者鈴置雅一 申請(qǐng)人:索尼計(jì)算機(jī)娛樂(lè)公司