两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

用于并行集成電路結(jié)構(gòu)的消息排隊(duì)系統(tǒng)和相關(guān)操作方法

文檔序號(hào):6462925閱讀:203來源:國知局
專利名稱:用于并行集成電路結(jié)構(gòu)的消息排隊(duì)系統(tǒng)和相關(guān)操作方法
技術(shù)領(lǐng)域
本發(fā)明的實(shí)施例大體上涉及用于執(zhí)行島度并行計(jì)算的電路和方法。更明確地說,本 發(fā)明的實(shí)施例涉及適于產(chǎn)生實(shí)時(shí)物理仿真的集成電路結(jié)構(gòu)和相關(guān)方法。
背景技術(shù)
計(jì)算機(jī)游戲的近期發(fā)展己越來越需要非常復(fù)雜的實(shí)時(shí)物理仿真。相對(duì)簡單的基于物 理的仿真己經(jīng)在若干常規(guī)環(huán)境中存在許多年了。然而,前沿計(jì)算機(jī)游戲目前是發(fā)展復(fù)雜、 實(shí)時(shí)、基于物理的仿真的主要商業(yè)推動(dòng)者。
根據(jù)一組規(guī)定的物理限制(不管此類限制是實(shí)際的還是想象的)進(jìn)行交互的對(duì)象和 /或環(huán)境的任何視覺顯示通??梢暈?基于物理的"仿真。動(dòng)畫環(huán)境和對(duì)象通常指配有物 理特征(例如,質(zhì)量、尺寸、位置、摩擦力、移動(dòng)屬性等),且此后允許根據(jù)所述組規(guī) 定的物理限制在視覺上進(jìn)行交互。通過主機(jī)系統(tǒng)使用從所指配的物理特征和所述組規(guī)定 的物理限制導(dǎo)出的被周期性更新的數(shù)據(jù)主體來在視覺上顯示所有動(dòng)畫對(duì)象。下文將此數(shù) 據(jù)主體總稱為"物理數(shù)據(jù)"。
歷史上,計(jì)算機(jī)游戲已經(jīng)在游戲應(yīng)用程序內(nèi)并入了一些有限的基于物理的仿真能 力。此類仿真是基于軟件的,且使用在主機(jī)系統(tǒng)的中央處理單元(CPU)(例如奔騰⑧ (Pentium ))上運(yùn)行的專用物理中間件來實(shí)施。"主機(jī)系統(tǒng)"包含(例如)個(gè)人計(jì)算機(jī) (PC)和控制臺(tái)游戲系統(tǒng)。
遺憾的是,常規(guī)CPU的通用設(shè)計(jì)顯著限制了常規(guī)物理仿真的規(guī)模和性能。倘若存 在各種各樣的其它處理要求,那么常規(guī)CPU缺乏執(zhí)行解決作為物理仿真基礎(chǔ)的數(shù)學(xué)和 邏輯運(yùn)算所需的復(fù)雜算法所需要的處理時(shí)間。也就是說,通過解決由物理數(shù)據(jù)引起的-一 組復(fù)雜的數(shù)學(xué)和邏輯問題來產(chǎn)生基于物理的仿真。倘若存在典型數(shù)量的物理數(shù)據(jù)和"物 理問題"中所涉及的數(shù)學(xué)和邏輯運(yùn)算的復(fù)雜性和數(shù)H,那么有效的解決方案并不是一個(gè) 普通的問題。
形成常規(guī)CPU的通用電路中所固有的硬件限制加劇了可用CPU處理時(shí)間的普遍缺 乏。此類硬件限制包含數(shù)學(xué)/邏輯執(zhí)行單元和數(shù)據(jù)寄存器的數(shù)目不足、缺乏用于數(shù)據(jù)/邏 輯運(yùn)算的并行執(zhí)行能力以及對(duì)外部存儲(chǔ)器的帶寬相對(duì)受限。簡單地說,常規(guī)CPU的結(jié)構(gòu)和運(yùn)算能力不能很好地與復(fù)雜的基于物理的仿真的計(jì)算和數(shù)據(jù)傳送要求相關(guān)。不管許 多常規(guī)CPU的速度和超標(biāo)量性質(zhì)如何,情況都是如此。常規(guī)CPU的多個(gè)邏輯電路和先 行能力不能克服由執(zhí)行單元和數(shù)據(jù)寄存器的相對(duì)有限數(shù)口、并行性缺乏和存儲(chǔ)器帶寬不 足表征的結(jié)構(gòu)的缺點(diǎn)。
與常規(guī)CPU形成對(duì)比,所謂的超級(jí)計(jì)算機(jī)(如由克雷@ (Cray )制造的那些超級(jí) 計(jì)算機(jī))由高度并行性表征。另外,盡管程序通常使用單指令單數(shù)據(jù)(SISD)運(yùn)算在常 規(guī)CPU上執(zhí)行,但超級(jí)計(jì)算機(jī)通常包含許多執(zhí)行單指令多數(shù)據(jù)(SIMD)運(yùn)算的向量處 理器。然而,高度并行執(zhí)行能力的優(yōu)勢(shì)是以超級(jí)計(jì)算情況內(nèi)的巨大尺寸和成本為代價(jià)的。 實(shí)用商業(yè)考慮因素很大程度上排除了用于常規(guī)超級(jí)計(jì)算機(jī)的物現(xiàn)實(shí)施方案的途徑。
因此,在"消費(fèi)者可用的"主機(jī)系統(tǒng)上所運(yùn)行的應(yīng)用程序內(nèi)并入非常復(fù)雜、實(shí)時(shí)且 基于物理的仿真的問題仍未得到解決?;谲浖膶?duì)解決除了最簡單物理問題之外的所 有物理問題的解決方案已經(jīng)被證明是不夠的。因此,對(duì)產(chǎn)生和并入實(shí)時(shí)且基于物理的仿 真的基于硬件的解決方案已經(jīng)在若干相關(guān)和共同轉(zhuǎn)讓的第10/715,459號(hào)、第10/715,370 號(hào)和第10/715,440號(hào)美國專利申請(qǐng)案中提出,所有所述申請(qǐng)案均在2003年11月19日 申請(qǐng)。這些申請(qǐng)案的標(biāo)的物以引用的方式并入本文中。
如.卜.文引用的中請(qǐng)案中描述,主機(jī)系統(tǒng)顯示器的幀速率必定相對(duì)于可解決下伏于基 于物理的仿真下的物理問題的速度限制所述物理問題的大小和復(fù)雜性。因此,倘若幀速 率足以在視覺上實(shí)時(shí)描繪仿真,那么設(shè)計(jì)重點(diǎn)變成增加數(shù)據(jù)處理速度。數(shù)據(jù)處理速度由 數(shù)據(jù)傳送能力和執(zhí)行數(shù)學(xué)/邏輯運(yùn)算的速度的組合來確定。可通過以較快速率循序執(zhí)行所 述運(yùn)算和/或通過將所述運(yùn)算分成多個(gè)子集且此后并行執(zhí)行選定子集來增加執(zhí)行數(shù)學(xué)/邏 輯運(yùn)算的速度。因此,數(shù)據(jù)帶寬考慮因素和執(zhí)行速度要求很大程度上界定了適于實(shí)時(shí)產(chǎn) 生基于物理的仿真的系統(tǒng)的結(jié)構(gòu)。正被處理的物理數(shù)據(jù)的性質(zhì)還有助于界定高效的系統(tǒng) 結(jié)構(gòu)。
在2004年5月6日申請(qǐng)的相關(guān)且共同轉(zhuǎn)讓的第10/839,155號(hào)美國專利申請(qǐng)案中揭 示用以提供非常復(fù)雜的實(shí)時(shí)物理仿真所需的高數(shù)據(jù)帶寬和高執(zhí)行速度的若干示范性結(jié) 構(gòu)途徑,所述申請(qǐng)案的標(biāo)的物以引用的方式并入本文中。這些途徑中的一者在附圖的圖 1中以實(shí)例方式說明。明確地說,圖1展示適于執(zhí)行用于基于物理的仿真的大量并行計(jì) 算的物理處理單元(PPU) 100。
PPU IOO通常將棊于物理的計(jì)算作為耦合到在主機(jī)系統(tǒng)上并行運(yùn)行的主應(yīng)用程序的 次應(yīng)用程序的一部分來執(zhí)行。舉例來說,主應(yīng)用程序可包括定義視覺對(duì)象集合的"世界 狀態(tài)"(例如,位置、限制等)的交互游戲程序。主應(yīng)用程序協(xié)調(diào)游戲程序的用戶輸入/輸出(1/0),并執(zhí)行世界狀態(tài)的不斷更新。主應(yīng)用程序還基于用戶輸入向次應(yīng)用程序發(fā) 送數(shù)據(jù),且次應(yīng)用程序執(zhí)行基于物理的計(jì)算以修改世界狀態(tài)。當(dāng)次應(yīng)用程序修改世界狀 態(tài)時(shí),其周期性地且異步地向主應(yīng)用程序發(fā)送經(jīng)修改的世界狀態(tài)。
通常通過從位于主機(jī)系統(tǒng)中或附近的.牛:存儲(chǔ)器以及PPU結(jié)構(gòu)中的各種存儲(chǔ)器讀取 數(shù)據(jù)和向其寫入數(shù)據(jù)來實(shí)施次應(yīng)用程序與主應(yīng)用程序之間的各種交互。因此,恰當(dāng)?shù)拇?儲(chǔ)器管理是此用以產(chǎn)生基于物理的仿真的途徑的重要方面。
通過在主應(yīng)用程序與次應(yīng)用程序之間劃分工作負(fù)荷以使得次應(yīng)用程序與主應(yīng)用程 序并行且異步地運(yùn)行,PPU以及所述兩個(gè)應(yīng)用程序的實(shí)施和編程得以顯著簡化。舉例來 說,所述劃分允許主應(yīng)用程序在方便時(shí)核査對(duì)世界狀態(tài)的更新,而不是強(qiáng)迫其與次應(yīng)用 程序的時(shí)序一致。
從系統(tǒng)級(jí)觀點(diǎn)來看,可以多種不同方式來實(shí)施PPU 100。舉例來說,PPU IOO可實(shí) 施為連接到主機(jī)系統(tǒng)(例如常規(guī)CPU)的協(xié)處理器芯片。類似地,PPU100可實(shí)施為雙
核處理器中的一個(gè)處理器核心的'部分。實(shí)際上,所屬領(lǐng)域的技術(shù)人員將了解用以在硬
件中實(shí)施PPU 100的功能性的多種方式。此外,所屬領(lǐng)域的技術(shù)人員還將了解硬件/軟件
區(qū)別可相對(duì)任意,因?yàn)橛布芰νǔ?稍谲浖袑?shí)施,且反之亦然。
圖1中所說明的PPU包括高帶寬外部存儲(chǔ)器102、數(shù)據(jù)移動(dòng)引擎(DME) 101、 PPU 控制引擎(PCE) 103和多個(gè)向量處理引擎(VPE) 105。 VPE 105中的每一者包括多 個(gè)向量處理單元(VPU)107,其每'者具有初級(jí)(L1)存儲(chǔ)器;以及VPU控制宇.元(VCU) 106,其具有次級(jí)(L2)存儲(chǔ)器。DME IOI提供外部存儲(chǔ)器102 (和/或主機(jī)系統(tǒng)108) 與VPE 105之間的數(shù)據(jù)傳送路徑。PCE 103適于集中PPU的總體控制和/或PPU 100與 主機(jī)系統(tǒng)108之間的數(shù)據(jù)通信過程。PCE 103通常包括用于存儲(chǔ)和執(zhí)行PCE控制和通信 編程的可編程PPU控制單元(PCU) 104。舉例來說,PCU 104可包括來自MIPS科技 公司(MIPS Technologies, Inc.)的MIPS64 5Kf處理器核心。
VPU 107中的每一者可總體視為"數(shù)據(jù)處理單元",其是數(shù)學(xué)/邏輯執(zhí)行單元(例如 浮點(diǎn)處理器和/或標(biāo)量處理器)的較低等級(jí)分組。每個(gè)VPU107的初級(jí)存儲(chǔ)器LI通常用 來存儲(chǔ)用于執(zhí)行各種數(shù)學(xué)/邏輯運(yùn)算的指令和數(shù)據(jù)。所述指令和數(shù)據(jù)通常在VCU 106中 的相應(yīng)一者的控制下傳送到每個(gè)VPU 107。每個(gè)VCU 106實(shí)施PPU的總體存儲(chǔ)器控制 功能的-…個(gè)或一個(gè)以上功能方面。舉例來說,每個(gè)VCU 106可向DME 101發(fā)布命令, 以針對(duì)各個(gè)VPU 107從PPU存儲(chǔ)器102取出數(shù)據(jù)。
如第10/839,155號(hào)專利申請(qǐng)案中描述,圖1中所說明的PPU可包含任何數(shù)目的VPE 105,且每個(gè)VPE 105可包含任何數(shù)目的VPU 107。然而,PPU 100的總體計(jì)算能力并非僅受VPE和VPU的數(shù)目限制。舉例來說,不管VPE和VPU的數(shù)目如何,存儲(chǔ)器總 線帶寬和數(shù)據(jù)相依性仍可能限制每個(gè)VPE可進(jìn)行的工作量。另外,隨著每個(gè)VPE的VPU 數(shù)口增加,每個(gè)VPE內(nèi)的VCU可能由于在VPU與外部存儲(chǔ)器102禾卩/或PCU 104之間 其必須執(zhí)行的大量存儲(chǔ)器存取命令而變得負(fù)擔(dān)過重。因此,VPU106可能停止,閑置地 等待來自其相應(yīng)VCU的響應(yīng),因此浪費(fèi)寶貴的計(jì)算資源。
總之,盡管增加PPU結(jié)構(gòu)的復(fù)雜性可潛在地增加PPU的性能,但例如資源分配和 時(shí)序問題等其它因素可能同樣損害較復(fù)雜結(jié)構(gòu)中的性能。

發(fā)明內(nèi)容
根據(jù)本發(fā)明的一個(gè)實(shí)施例,種集成電路包括外部存儲(chǔ)器、控制處理器和多個(gè)并聯(lián) VPE。所述VPE中的每一者優(yōu)選包括多個(gè)VPU、多個(gè)VCU、 DMA控制器和VPE消總 傳遞單元(VMU),所述VMU在多個(gè)VPU、多個(gè)VCU、 DMA控制器和控制處理器之 間提供數(shù)據(jù)傳送路徑。所述集成電路進(jìn)一步包括外部存儲(chǔ)器單元(EMU),其在外部存 儲(chǔ)器、控制處理器和多個(gè)VPE之間提供數(shù)據(jù)傳送路徑。
根據(jù)本發(fā)明的另'實(shí)施例,'種PPU包括至少存儲(chǔ)物理數(shù)據(jù)的外部存儲(chǔ)器、包括可 編程PCU的PCE以及多個(gè)并聯(lián)VPE。所述VPE中的每一者包括多個(gè)VPU,其每一 者包括適于對(duì)用于物理仿真的物理數(shù)據(jù)執(zhí)行計(jì)算的數(shù)學(xué)/邏輯單元分組;多個(gè)VCU; DM A 了-系統(tǒng),其包括DMA控制器;以及VMU,其適于在多個(gè)VPU、多個(gè)VCU、 DMA 了 系統(tǒng)和PCE之間傳送消息。所述PPU進(jìn)一步包括EMU,其在外部存儲(chǔ)器、PCE和多個(gè) VPE之間提供數(shù)據(jù)傳送路徑。
根據(jù)本發(fā)明的又一實(shí)施例,提供一種操作集成電路的方法。所述集成電路包括外 部存儲(chǔ)器;多個(gè)并聯(lián)VPE,其每一者包括多個(gè)VPU、多個(gè)VCU禾UVMU;以及EMU, 其在外部存儲(chǔ)器與多個(gè)V P E之間提供數(shù)據(jù)傳送路徑。所述方法包括將通信消息從所述多 個(gè)VPE中的第一 VPE中的VPU傳送到所述第一 VPE的VMU中的通信消息虛擬隊(duì)列, 以及將所述通信消息從所述通信消息虛擬隊(duì)列傳送到位于第 VPE的VPU或VCU '卜 的目的地通信消息接收先進(jìn)先出隊(duì)列(FIFO)。


下文相對(duì)于附圖中所說明的若干實(shí)施例來描述本發(fā)明。在圖式中,相同參考數(shù)字始 終指示相同示范性元件、組件或步驟。
在圖式中圖1是說明常規(guī)物理處理單元(PPU)的方框圖 圖2是說明根據(jù)本發(fā)明一個(gè)實(shí)施例的PPU的方框圖; 圖3是根據(jù)本發(fā)明實(shí)施例的VPE的方框圖; 圖4是對(duì)圖3所示的VPE中的消息的說明
圖5是用于圖3所示的VPE中的消息排隊(duì)系統(tǒng)的調(diào)度器的方框圖; 圖6是說明圖3所示的VPE 205在對(duì)通過外部存儲(chǔ)器單元接收到的數(shù)據(jù)執(zhí)行計(jì)算時(shí) 所執(zhí)行的典型操作序列的流程圖7A展示圖3所示的VPE屮可使用的各種替代調(diào)度器和隊(duì)列配置; 圖7B展示圖3所示的VPE中可使用的各種替代調(diào)度器和隊(duì)列配置; 圖8是根據(jù)本發(fā)明又一實(shí)施例的VPE的方框圖9是說明根據(jù)本發(fā)明實(shí)施例的在圖8所示的VPE中的VPU或VCU之間傳送通 信消息的方法的流程圖;以及
圖10是說明根據(jù)本發(fā)明實(shí)施例的基于DMA請(qǐng)求消息而在VPE 'l'執(zhí)行DMA操作 的方法的流程圖。
具體實(shí)施例方式
下文參看相應(yīng)圖式來描述本發(fā)明的示范性實(shí)施例。呈現(xiàn)這些實(shí)施例是為了教示實(shí) 例。本發(fā)明的實(shí)際范圍由所附權(quán)利要求書界定。
一般來說,本發(fā)明的實(shí)施例經(jīng)設(shè)計(jì)以解決在并行計(jì)算情況中出現(xiàn)的問題。舉例來說, 本發(fā)明的若干實(shí)施例提供用于管理并行操作的數(shù)據(jù)處理單元集合與外部存儲(chǔ)器之間的 大量并發(fā)存儲(chǔ)器交易的機(jī)制。本發(fā)明的其它實(shí)施例提供在數(shù)據(jù)處理單元之間進(jìn)行通信的 有效方式。
本發(fā)明的實(shí)施例認(rèn)識(shí)到需要平衡高度專業(yè)化硬件平臺(tái)中的各種設(shè)計(jì)、實(shí)施方案、性 能和編程折衷。舉例來說,隨著所述平臺(tái)中的并聯(lián)組件(例如,向量處理單元)的數(shù)目 增加,協(xié)調(diào)所述組件的操作和所述組件之間的數(shù)據(jù)傳送所需的聯(lián)網(wǎng)程度也增加。此聯(lián)網(wǎng) 要求增加了編程復(fù)雜性。另外,超長指令字(VLIW)、多線程數(shù)據(jù)傳送和多線程執(zhí)行的 使用也可能增加編程復(fù)雜性。此外,隨著組件數(shù)目增加,所添加的組件可能造成資源(例 如,總線)爭用。即使額外組件增加了硬件平臺(tái)的總處理量,它們也可能減小各個(gè)組件 的響應(yīng)時(shí)間(例如,存儲(chǔ)器等待時(shí)間)。因此,本發(fā)明的實(shí)施例適于在這些各種折衷之 間找到平衡。
下文在適于執(zhí)行用于實(shí)時(shí)物理仿真的數(shù)學(xué)/邏輯運(yùn)算的專業(yè)化硬件平臺(tái)的情況下描述本發(fā)明。然而,所描述的發(fā)明性概念適用于多種其它情況。舉例來說,所描述的各種 數(shù)據(jù)傳送、調(diào)度和通信機(jī)制適用于其它并行計(jì)算情況,例如圖形處理和圖像處理(僅舉 幾例)。
圖2是根據(jù)本發(fā)明一個(gè)示范性實(shí)施例的適于運(yùn)行S于物現(xiàn)的仿真的PPU 200的方框 級(jí)圖。PPU 200包括外部存儲(chǔ)器單元(EMU) 201、 PCE 203和多個(gè)VPE 205。 VPE 205 中的每一者包括多個(gè)VCU 206、多個(gè)VPU 207和VPE消息傳遞單元(VMU) 209。 PCE 203包括PCU204。出于說明目的,PPU 200包含八(8)個(gè)VPE 205,其每一者含有兩 (2)個(gè)VCU 206和八(8)個(gè)VPU 207。
EMU 201連接在PCE 203、 VPE 205、主機(jī)系統(tǒng)208和外部存儲(chǔ)器202之間。EMU 201 通常包括適于促進(jìn)其所連接的各個(gè)組件之間的數(shù)據(jù)傳送的切換器。舉例來說,EMU 201 允許將數(shù)據(jù)從一個(gè)VPE傳送到另一個(gè)VPE、在PCE 203與VPE 205之間傳送和在外部 存儲(chǔ)器202與VPE 205之間傳送。
可用多種方式來實(shí)施EMU 201。舉例來說,在'些實(shí)施例屮,EMU 201包括縱橫 切換器。在其它實(shí)施例中,EMU 201包括多路復(fù)用器。在另外實(shí)施例中,EMU 201包 括由多個(gè)多路復(fù)用器實(shí)施的縱橫切換器。在此書面描述中,通過EMU傳送到VPE的任 何數(shù)據(jù)均稱為EMU數(shù)據(jù)。另外,在此書面描述中,通過EMU連接到PPU的任何外部 存儲(chǔ)器均稱為EMU存儲(chǔ)器。
術(shù)語"直接存儲(chǔ)器存取(DMA)操作"或"DMA交易"表示涉及VPE而不是PCE 203或主機(jī)系統(tǒng)208中的處理器的任何數(shù)據(jù)存取操作。舉例來說,外部存儲(chǔ)器202與VPE 之間或兩個(gè)VPE之間的讀取或?qū)懭氩僮鞣Q為DMA操作。DMA操作通常由VCU 206、 VPU 207或主機(jī)系統(tǒng)208起始。為了起始DMA操作,起始器(例如,VCU或VPU)通 常經(jīng)由隊(duì)列序列向DMA控制器(未圖示)發(fā)送DMA命令。DMA控制器接著基于所述 DMA命令而與VPE 205屮的各個(gè)存儲(chǔ)器和外部存儲(chǔ)器202或主機(jī)系統(tǒng)208通信,以控 制各個(gè)存儲(chǔ)器之間的數(shù)據(jù)傳送。VPE 205中的每一者通常包含其自身的DMA控制器, 且存儲(chǔ)器傳送通常發(fā)生在VPE內(nèi)或通過EMU 201發(fā)生。
VPE 205中的每一者包含適于促進(jìn)去往和來t) VCU 206和VPU 207的DMA傳送的 VPE消息單元(VMU)。每個(gè)VMU通常包括多個(gè)DMA請(qǐng)求隊(duì)列,其用于存儲(chǔ)DMA 命令;以及調(diào)度器,其適于從DMA請(qǐng)求隊(duì)列接收DMA命令,并將所述DMA命令發(fā)送 到VPE 205中的各個(gè)存儲(chǔ)器和/或外部存儲(chǔ)器202。每個(gè)VMU通常進(jìn)一步包括多個(gè)通信 消息隊(duì)列,其用于在VCU 206與VPU 207之間發(fā)送通信消息。
VPE 205中的每一者均在PPU 200中建立獨(dú)立的"計(jì)算路線"。換句話說,可經(jīng)由VPE 205中的每一者來進(jìn)行獨(dú)立的并行計(jì)算和數(shù)據(jù)傳送。PPU 200具有總共八(8)個(gè)計(jì)
算路線。
通常通過與每個(gè)VPE相關(guān)聯(lián)的-系列隊(duì)列和其它硬件來管理經(jīng)過VPE 205的存儲(chǔ) 器請(qǐng)求和其它數(shù)據(jù)傳送。舉例來說,圖3是展示包含用于管現(xiàn)存儲(chǔ)器請(qǐng)求和其它數(shù)據(jù)傳 送的多個(gè)隊(duì)列和相關(guān)聯(lián)硬件的不范性VPE 205的方框圖??偲饋碚f,可將所述隊(duì)列和相 關(guān)聯(lián)硬件視為VMU (例如圖2中所示的那些VMU)的一個(gè)實(shí)施例。
在圖3所示的實(shí)施例中,VPE 205包括VPU 207和VCU 206。每個(gè)VPU 207包括 指令存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器,共同表示為本機(jī)存儲(chǔ)器501。優(yōu)選地,將VPU 207組織成對(duì) 以共享同一指令存儲(chǔ)器。VCU 207中的每一者也包括數(shù)據(jù)存儲(chǔ)器和指令存儲(chǔ)器,共同表 示為本機(jī)存儲(chǔ)器502。
VPE 205進(jìn)一步包括適于促進(jìn)VPE 205中的存儲(chǔ)器的任一者與外部存儲(chǔ)器(例如外 部存儲(chǔ)器202)之間的數(shù)據(jù)傳送的DMA控制器503。 VPE 205進(jìn)一步包括中間存儲(chǔ)存儲(chǔ) 器(ISM) 505,其適于與本機(jī)存儲(chǔ)器501和502相比存儲(chǔ)相對(duì)較大量的數(shù)據(jù)。在傳統(tǒng)存 儲(chǔ)器分級(jí)結(jié)構(gòu)中,按照結(jié)構(gòu)和功能,ISM 505可被視為"等級(jí)2"存儲(chǔ)器,且本機(jī)存儲(chǔ) 器501和502可被視為"等級(jí)1"存儲(chǔ)器。DMA控制器201通常通過EMU 201取出人 量EMU數(shù)據(jù),且將所述EMU數(shù)據(jù)存儲(chǔ)在ISM 505中。接著將ISM 505中的EMU數(shù)據(jù) 傳送到VPU 207禾B/或VCU 206以執(zhí)行各種計(jì)算,且在將由VPU 207或VCU 206修改 的任何EMU數(shù)據(jù)通過EMU 201傳送回到存儲(chǔ)器(例如外部存儲(chǔ)器202)之前,通常將 所述EMU數(shù)據(jù)復(fù)制回到ISM 505。
VPE 205還進(jìn)一步包括VPU消息隊(duì)列508、 VPU調(diào)度器509、 VCU消息隊(duì)列507 和VCU調(diào)度器506。 VPU消息隊(duì)列508通過調(diào)度器509將消息從VPU 207傳送到VCU 206。類似地,VCU消息隊(duì)列507經(jīng)由調(diào)度器506將消息從VCU 206傳送到VPU 207。 術(shù)語"消息"此處僅指代數(shù)據(jù)單元,優(yōu)選具有128個(gè)字節(jié)。消息可包括(例如)指令、 指針、地址或某一計(jì)算的運(yùn)算數(shù)或結(jié)果。
圖4展示可從VCU發(fā)送到VPU的消息的簡單實(shí)例。參看圖4,圖3的VCU消息 隊(duì)列507中的消息包含數(shù)據(jù)類型、指向本機(jī)存儲(chǔ)器501中的輸出地址的指針、第一和第 二輸入數(shù)據(jù)的各自大小以及指向ISM 505中的第一和第二輸入數(shù)據(jù)的指針。當(dāng)VPU接 收到消息時(shí),VPU可使用消息數(shù)據(jù)來創(chuàng)建DMA命令以用于將第-和第二輸入數(shù)據(jù)從 ISM 505傳送到本機(jī)存儲(chǔ)器501中的輸出地址。
雖然圖3所示的VPE 205包含用于VPU 207的一個(gè)隊(duì)列和調(diào)度器以及用于VCU 206 的一個(gè)隊(duì)列和調(diào)度器,但所述隊(duì)列和調(diào)度器的數(shù)目和排列可有所改變。舉例來說,每個(gè)VPU 207或VCU 206可具有其S身的隊(duì)列和調(diào)度器,或甚至許多隊(duì)列和調(diào)度器。此外, 可將來自一個(gè)以上隊(duì)列的消息輸入到每個(gè)調(diào)度器。
圖5展示圖3所示的調(diào)度器506的示范性實(shí)施例。圖5所示的實(shí)施例優(yōu)選在硬件屮 實(shí)施,以加速將消息從VCU轉(zhuǎn)發(fā)到VPU。然而,其還可在軟件中實(shí)施。
參看圖5,調(diào)度器506包括邏輯電路702和對(duì)應(yīng)于VPU 207的多個(gè)隊(duì)列703。調(diào)度 器506接收來Q VCU消息隊(duì)列507的消息,并基于邏輯電路702中所實(shí)施的邏輯將所 述消息插入隊(duì)列703中。接著將隊(duì)列703中的消息發(fā)送到VPU 207。
圖6是說明圖3所示的VPE 205在對(duì)通過EMU 201接收到的EMU數(shù)據(jù)執(zhí)行計(jì)算吋 所執(zhí)行的典型操作序列的流程圖。圖6所示的示范性方法步驟在下文中由圓括號(hào)(XXX) 表示,以將它們與示范性系統(tǒng)元件(例如圖1到圖5所示的那些元件)區(qū)分開。
參看圖6, VCU 206中的-一者向DMA控制器503發(fā)送EMU數(shù)據(jù)請(qǐng)求命令,使得 DMA控制器503將把EMU數(shù)據(jù)復(fù)制到ISM 505 (801 )。 VCU 206接著將工作消息插入 其消息隊(duì)列507屮。所述消息由調(diào)度器傳遞到VPU 507的入站隊(duì)列。在接收到所述消息 后,指令VPU向DMA控制器503發(fā)送命令,以將來自ISM 505的EMU數(shù)據(jù)加載到本 機(jī)存儲(chǔ)器501中(802)。接下來,VPU 207使用從ISM 205加載的數(shù)據(jù)來執(zhí)行計(jì)算(803 )。 接著,VCU 206向DMA 503發(fā)送命令,以將所述計(jì)算的結(jié)果從木機(jī)存儲(chǔ)器501移動(dòng)回 到ISM 505 (804)。當(dāng)所有工作消息均已經(jīng)被處理時(shí),VCU 206向DMA控制器503發(fā) 送命令,以將所述計(jì)算的結(jié)果從ISM 205移動(dòng)到EMU 201 (805)。
圖7展示可在圖3所示的VPE 205中使用的替代調(diào)度器和隊(duì)列配置。具體地說,圖 7A展示VCU 901與隊(duì)列902和調(diào)度器903之間存在一對(duì)一對(duì)應(yīng)關(guān)系的配置。調(diào)度器903 將來G隊(duì)列902的消息發(fā)送到兩個(gè)VPU 904,且VPU 904又通過隊(duì)列905和調(diào)度器906 將消息發(fā)送到其它VPU和VCU。圖7B展示VCU 911與多個(gè)隊(duì)列912和調(diào)度器913之 間存在對(duì)多對(duì)應(yīng)關(guān)系的配置。在圖7B屮,每個(gè)調(diào)度器913向多個(gè)VPU914'l'的.'者 發(fā)送消息,且VPU914中的每一者通過各自隊(duì)列915和調(diào)度器916將消息發(fā)送回到VCU 911。
圖7所示的隊(duì)列和調(diào)度器通常用于通信和數(shù)據(jù)傳送目的。然而,這些和其它隊(duì)列和 調(diào)度器可用于其它目的,例如存儲(chǔ)和檢索調(diào)試消息。
圖8展示根據(jù)本發(fā)明又一實(shí)施例的VPE。圖8所示的VPU意在說明在VPE屮實(shí)施 消息隊(duì)列系統(tǒng)的方式,且因此為了說明的簡單性,省略了各種處理元件,例如用于執(zhí)行 VPU中的計(jì)算的那些處理元件。
圖8的VPE適于在其各個(gè)組件之間傳遞兩種類型的消息。這兩種類型的消息被稱為"通信消息"和"DMA請(qǐng)求消息"。通信消息包括在所述VPE中在兩個(gè)VPU之間或VPU 與VCU之間傳遞的用戶定義數(shù)據(jù)單元。通信消息可包含(例如)指令、數(shù)據(jù)請(qǐng)求、指 針或任何類型的數(shù)據(jù)。另'方面,DMA請(qǐng)求消息包括由VPU或VCU用來請(qǐng)求由VPE 中的DMA控制器執(zhí)行DMA交易的數(shù)據(jù)單元。出于說明目的,將假定相對(duì)于圖8描述 的每個(gè)通信和DMA請(qǐng)求消息均包括128位數(shù)據(jù)。
圖8的VPE包括多個(gè)VPU 207、多個(gè)VCU 206、 VMU 209禾卩DMA子系統(tǒng)1010。 消息通過VMU 209在VCU 206、 VPU 207和DMA子系統(tǒng)1010之間傳遞。
VMU 209包括ffl于將通信消息排隊(duì)的第--存儲(chǔ)器1001和用于將DMA請(qǐng)求消息排 隊(duì)的第二存儲(chǔ)器1002。第一和第二存儲(chǔ)器都是256X128位存儲(chǔ)器,其每 一者具有一個(gè) 讀取端口和一個(gè)寫入端口。第一和第二存儲(chǔ)器中的毎一者被細(xì)分成16個(gè)虛擬隊(duì)列。第 一存儲(chǔ)器1001中的虛擬隊(duì)列稱為通信消息虛擬隊(duì)列,且第二存儲(chǔ)器1002中的虛擬隊(duì)列 稱為DMA請(qǐng)求虛擬隊(duì)列。
虛擬隊(duì)列的配置和使用是用戶定義的。然而,VMU 209優(yōu)選保證每個(gè)虛擬隊(duì)列均獨(dú) 立于每一其它虛擬隊(duì)列而起作用。如果任一虛擬隊(duì)列的使用或內(nèi)容從不導(dǎo)致另一虛擬隊(duì) 列停止向前進(jìn)程,那么兩個(gè)虛擬隊(duì)列獨(dú)立于彼此而起作用。
第一和第二存儲(chǔ)器1001和1002中的每個(gè)虛擬隊(duì)列均配置有容量和開始地址。所述 容量和開始地址通常以128位(即, 一個(gè)消息的大小)為單位來指定。舉例來說,容量 為二 (2)的虛擬隊(duì)列可存儲(chǔ)兩個(gè)消息或256個(gè)位。在將虛擬隊(duì)列的容量設(shè)置為零的情 況下,那么所述隊(duì)列被視為無效。然而,所有有效隊(duì)列通常都具有在2勺256之間的容
每個(gè)虛擬隊(duì)列還配置有"高水位"占用率閾值,其可在一 (1)與所述虛擬隊(duì)列的 容量減去一之間的范圍內(nèi)。在虛擬隊(duì)列中所存儲(chǔ)的數(shù)據(jù)量超過所述高水位占用率閾值的 情況下,虛擬隊(duì)列可產(chǎn)生信號(hào)以指示虛擬隊(duì)列的行為變化。舉例來說,虛擬隊(duì)列可向PCE 203發(fā)送中斷信號(hào),以指示其將不再接受數(shù)據(jù),直到其占用率降到高水位占用率閾值以 下為止。
每個(gè)虛擬隊(duì)列還可經(jīng)配置以在"正常模式"或"環(huán)形緩沖模式"下操作。在環(huán)形緩 沖模式下,忽略高水位占用率閾值,且新數(shù)據(jù)總是可入隊(duì)到虛擬隊(duì)列中,即使新數(shù)據(jù)覆 寫在存儲(chǔ)于虛擬隊(duì)列中的舊數(shù)據(jù)上方。在虛擬隊(duì)列中的舊數(shù)據(jù)被新數(shù)據(jù)覆寫的情況下, 虛擬隊(duì)列中的讀取指針和寫入指針通常發(fā)牛移動(dòng),使得讀取指針指向虛擬隊(duì)列中的最舊 數(shù)據(jù),且寫入指針指向?qū)懭霐?shù)據(jù)的下一個(gè)地址。
每個(gè)通信消息虛擬隊(duì)列均配置有一組目的地。舉例來說,在圖8所示的VPE中,對(duì)于總共H^— (11)個(gè)目的地,可能的目的地包含八(8)個(gè)VPU 207、兩(2)個(gè)VCU205 和PCE 203。所述十一個(gè)目的地通常被編碼為十一 (11)位位串,使得每個(gè)虛擬隊(duì)列可 經(jīng)配置以向所述十個(gè)目的地的任 一子集發(fā)送消息。
一種用以配置虛擬隊(duì)列的各種特性的方式是通過將所述虛擬隊(duì)列的每一者的配置 信息存儲(chǔ)在存儲(chǔ)器映射的配置寄存器中。所述存儲(chǔ)器映射的配置寄存器通常被映射到 PCE 203的存儲(chǔ)器地址空間和VCU 206的存儲(chǔ)器地址空間卜.。VCU 206可存取存儲(chǔ)在其 中的配置信息,但虛擬隊(duì)列優(yōu)選僅由PCE 203配置。
VPU 207和VCU 206每-…者包括用于接收來自VMU 209的消息的兩(2)個(gè)先進(jìn)先 出隊(duì)列(F1F0)。所述兩個(gè)FIFO被共問稱為"接收FIFO",且它們包含通信消息接收 FIFO和DMA完成通知接收FIFO。毎個(gè)通信消息接收FIFO優(yōu)選包括8條M乘以128 位隊(duì)列,且每個(gè)DMA完成通知接收FIFO優(yōu)選包括32條目乘以32位隊(duì)列。
VPE 207和VCU 206兩者都使用存儲(chǔ)指令STQ來向VMU 209發(fā)送消息,且使用加 載指令LDQ來從其各自接收FIFO讀取消息。
如先前參考圖3解釋,VPU 207對(duì)可共享單個(gè)物理存儲(chǔ)器。因此,用于每對(duì)VPU 207 的接收FIFO可在同一物理存儲(chǔ)器中實(shí)施。在用于一對(duì)VPU 207的接收FIFO在同一物 理存儲(chǔ)器中實(shí)施的情況下,在兩者都試圖向存儲(chǔ)器發(fā)送加載和存儲(chǔ)指令的VPU 207之間 可能存在存儲(chǔ)器爭用。用以解決這種類型的存儲(chǔ)器爭用的簡單方式是給予所述對(duì)VPU 中的--個(gè)VPU相對(duì)于所述對(duì)屮的另 VPU的嚴(yán)格優(yōu)先權(quán)。
類似于VMU 209中的虛擬隊(duì)列,每個(gè)VPU中的接收FIFO獨(dú)立于彼此而起作ffl。 換句話說, 一個(gè)接收FIFO的使用或內(nèi)容將不會(huì)停止另一接收FIFO的向前進(jìn)程。
同樣類似于VMU 209中的虛擬隊(duì)列,通信消息接收FIFO具有可配置的高水位占用 率閾值。當(dāng)通信消息接收FIFO的占用率達(dá)到高水位占用率閾值時(shí),通信消息接收FIFO 產(chǎn)生反壓力指示,以防止更多消息被發(fā)送到所述FIFO。通信消息接收FIFO的高水位占 用率閾值通常在1與5之間,其中默認(rèn)值為5。
在被配置為特定通信消息虛擬隊(duì)列的目的地的所有通信消息接收FIFO都達(dá)到其各 自高水位占用率閾值的情況下,通信消息虛擬隊(duì)列被阻止向那些目的地發(fā)送任何通信消 息。因此,通信消息虛擬隊(duì)列可能填滿,從而導(dǎo)致隨后將數(shù)據(jù)入隊(duì)到所述虛擬隊(duì)列的試 圖失敗。
通信消息虛擬隊(duì)列內(nèi)的所有通信消息都適合以FIFO次序傳送到相應(yīng)的通信消息接 收FIFO。然而,VMU 209每時(shí)鐘周期只能將一個(gè)通信消息傳送到接收FIFO。因此,VMU 209中包含調(diào)度器1003,以提供通信消息虛擬隊(duì)列之間的公平性。調(diào)度器1003通常使用循環(huán)調(diào)度技術(shù)來調(diào)度通信消息虛擬隊(duì)列與通信消息接收FIFO 之間的數(shù)據(jù)傳送。根據(jù)此技術(shù),調(diào)度器以循環(huán)次序檢查每個(gè)通信消息虛擬隊(duì)列。在所檢 査的虛擬隊(duì)列不為空,且所述虛擬隊(duì)列屮的下 一個(gè)通信消息具有不高于其高水位占用率 閾值的冃的地通信消息接收FIFO的情況下,調(diào)度器向目的地通信消息接收FIFO發(fā)送通 信消息。為了促進(jìn)通信消息虛擬隊(duì)列的有效檢査,調(diào)度器1003針對(duì)毎個(gè)通信消息虛擬 隊(duì)列中的下一個(gè)消息維持目的地通信消息接收FIFO的指示。這允許調(diào)度器1003有效地 核查目的地通信消息接收FIF O是否高于其各自高水位占用率閾值。
在所有通信消息虛擬隊(duì)列都為空或所有其相應(yīng)口的地通信消息接收FIFO都高于其 各自高水位占用率閼值的情況下,通信消息虛擬隊(duì)列與通信消息接收FIFO之間不傳送 數(shù)據(jù)。否則,調(diào)度器1003所選擇的通信消息從通信消息虛擬隊(duì)列中的一者的頭部移動(dòng) 到通信消息接收FIFO中的一者的尾部。
第二存儲(chǔ)器1002中的DMA請(qǐng)求消息虛擬隊(duì)列接收來自VPU 207和VCU 206的 DMA請(qǐng)求消息。每個(gè)DMA請(qǐng)求消息通常包括128位的信息,以及可選的32位DMA 完成通知。DMA請(qǐng)求消息通過DMA請(qǐng)求消息虛擬隊(duì)列傳送到一組DMA請(qǐng)求FIFO
1007。 從DMA請(qǐng)求消息虛擬隊(duì)列傳送消息的次序由調(diào)度器1004確定。
DMA請(qǐng)求FIFO 1007中的DMA請(qǐng)求消息被傳送到DMA控制器1008,所述DMA 控制器1008基于所述DMA請(qǐng)求消息而執(zhí)行DMA交易。典型的DMA交易包括(例如) 將數(shù)據(jù)移動(dòng)到和/或移動(dòng)出與VPU 207禾Q/或VCU 206相關(guān)聯(lián)的各個(gè)存儲(chǔ)器。在完成DMA 交易后,便將與已起始DM A交易的DM A請(qǐng)求消息相關(guān)聯(lián)的任何DM A完成通知從DM A 控制器1008傳送到DMA完成通知FIFO 1009。接著,將DMA完成通知傳送到VPU 107 或VCU 206的一者中的DMA完成通知接收FIFO。
除了DMA請(qǐng)求消息之外,DMA請(qǐng)求消息虛擬隊(duì)列還可包含擴(kuò)展完成通知(ECN) 消息。ECN消息是DMA請(qǐng)求消息虛擬隊(duì)列中插入在緊接DMA請(qǐng)求消息之后的128位 消息。通常使用ECN消息來代替32位完成通知。將ECN消息通過通信消息虛擬隊(duì)列 中的一者發(fā)送到通信消息接收FIFO,以指示DMA請(qǐng)求消息己經(jīng)被發(fā)送到DMA控制器
1008。 圖8中用虛線箭頭來展示示范性ECN消息。
依據(jù)DMA請(qǐng)求消息中的"柵欄"指示的值而定,可在將DMA請(qǐng)求消息發(fā)送到DMA 控制器1008后或在完成由DMA請(qǐng)求消息起始的DMA交易后向通信消息虛擬隊(duì)列發(fā)送 ECN消息。如果柵欄指示被設(shè)置為第一值,那么在將DMA請(qǐng)求消息發(fā)送到DMA控制 器1008后向通信消息虛.擬隊(duì)列發(fā)送ECN消息。否則,在完成DMA交易后向通信消息 虛擬隊(duì)列發(fā)送ECN消息。調(diào)度器1004優(yōu)選使用循環(huán)調(diào)度算法來確定將DMA請(qǐng)求消息從DMA請(qǐng)求消息虛擬 隊(duì)列傳送到DMA請(qǐng)求FIFO 1007的次序。在循環(huán)調(diào)度算法下,調(diào)度器1004在當(dāng)前時(shí)鐘 周期期間從非空DMA請(qǐng)求消息虛擬隊(duì)列處讀取下一個(gè)DMA請(qǐng)求消息。通過以循環(huán)次 序在連續(xù)時(shí)鐘周期中循環(huán)經(jīng)過非空DMA請(qǐng)求消息虛擬隊(duì)列來選擇下一個(gè)DMA請(qǐng)求消
息o
除非滿足以下條件中的一者或一者以上,否則就在當(dāng)前時(shí)鐘周期期間將下一個(gè) DMA請(qǐng)求消息傳送到DMA請(qǐng)求FIFO: DMA請(qǐng)求FIFO 1007全部已滿;下一個(gè)DMA 請(qǐng)求消息具有以已滿或高于其高水位占用率閾值的DMA完成通知接收FIFO為口的地 的DMA完成通知;或者,DMA請(qǐng)求消息具有相關(guān)聯(lián)的ECN消息,且所述ECN消息的 目的地通信消息FIFO已滿。
為了提供虛擬隊(duì)列之間的真實(shí)獨(dú)立性,V MU 209必須防止DM A完成通知FIFO 1009 阻—l卜DMA控制器1008的進(jìn)程。舉例來說,如果VCU 206或VPU 207排空其各自DMA 完成通知接收FIFO的速度較慢,從而導(dǎo)致DMA完成通知填滿,那么DMA完成通知 FIFO 1009可阻止DMA控制器1008。 VMU 209可用以防止DMA完成通知FIFO 1009 阻止DMA控制器1009的進(jìn)程的一種方式是通過防止任何含有32位DMA完成通知的 DMA請(qǐng)求消息從其DMA請(qǐng)求虛擬隊(duì)列中出隊(duì),除非作為DMA完成通知的目的地的 DMA完成通知接收FIFO低于其高水位占用率閾值。
DMA控制器1008可響應(yīng)于不同DMA請(qǐng)求消息而執(zhí)行各種不同類型的DMA交易。 舉例來說, 一些DMA交易將數(shù)據(jù)從一個(gè)VPU的指令存儲(chǔ)器移動(dòng)到另一 VPU的指令存 儲(chǔ)器。其它交易將數(shù)據(jù)從ISM 1011廣播到若干或所有VPU 207 (例如,在圖2和圖8 中用后綴"A"標(biāo)記的VPU)的數(shù)據(jù)存儲(chǔ)器中的指定地址。另外DMA交易將數(shù)據(jù)從ISM 1011廣播到若干或所有VPU 207的指令存儲(chǔ)器。
可由DMA請(qǐng)求消息起始的另一類型的DMA交易是原子EMU DMA交易。在原子 EMU DMA交易中,DMA控制器1008使用"加載鎖定"和"條件存儲(chǔ)"語義學(xué)來在ISM 1011與EMU存儲(chǔ)器1012之間移動(dòng)數(shù)據(jù)。更具體地說,當(dāng)將數(shù)據(jù)從EMU存儲(chǔ)器1012 傳送到ISM 1011時(shí)可使用加載鎖定語義學(xué),且當(dāng)將數(shù)據(jù)從ISM 1011傳送到EMU存儲(chǔ) 器1012時(shí)使用條件存儲(chǔ)語義學(xué)。
加載鎖定語義學(xué)和條件存儲(chǔ)語義學(xué)兩者均依賴于借以通過使EMU存儲(chǔ)器1012中的 地址與VPE 205的一者內(nèi)的特定虛擬隊(duì)列的識(shí)別符相關(guān)聯(lián)來"鎖定"所述地址的機(jī)制。 識(shí)別符與所述地址相關(guān)聯(lián)的虛擬隊(duì)列被說成對(duì)所述地址具有"鎖定"。而且,當(dāng)虛擬隊(duì) 列對(duì)地址具有鎖定時(shí),所述地址被說成"被鎖定"。如果另一識(shí)別符變成與所述地址相關(guān)聯(lián),那么所述虛擬隊(duì)列被說成"喪失"或"釋放"鎖定。
當(dāng)來自虛擬隊(duì)列的DMA請(qǐng)求消息指令DMA控制器1008執(zhí)行從EMU存儲(chǔ)器1012 到ISM 1011的讀取操作吋,虛擬隊(duì)列通常獲得對(duì)EMU存儲(chǔ)器1012'l'的地址的鎖定。 涉及獲得對(duì)地址的鎖定的讀取操作被稱為"加載鎖定"操作。一H虛擬隊(duì)列具有鎖定, EMU存儲(chǔ)器1012中的EMU控制器(未圖不)便可啟動(dòng)計(jì)時(shí)器。所述計(jì)時(shí)器通常經(jīng)配 置以具有有限的持續(xù)時(shí)間。如果將所述持續(xù)時(shí)間設(shè)置為零,那么將不使用所述計(jì)時(shí)器。 當(dāng)計(jì)時(shí)器正在運(yùn)行時(shí),任何隨后的對(duì)EMU存儲(chǔ)器1012中的地址的讀取操作都不會(huì)解鎖 或鎖定任何地址。使用計(jì)時(shí)器減小了由來自一個(gè)VPE的DMA交易鎖定的地址將被來自 另一 VPE的DMA交易存取的可能性。
當(dāng)計(jì)時(shí)器不在運(yùn)行時(shí),隨后的對(duì)所述地址的讀取操作將釋放舊的鎖定,并創(chuàng)建新的 鎖定。換句話說,另一虛擬隊(duì)列識(shí)別符將變得與所述地址相關(guān)聯(lián)。
"條件存儲(chǔ)"操作是從EMU存儲(chǔ)器1012到ISM 1011的寫入操作,其只有在源自對(duì) 寫入操作的H的地地址具有鎖定的虛擬隊(duì)列吋才成功。
如同其它DMA交易一樣,原子EMU DMA交易可由具有32位DMA完成通知的 DMA請(qǐng)求消息起始。然而,如果條件存儲(chǔ)操作不成功,那么將相應(yīng)DMA完成通知中的 位設(shè)置為向VPU 207或VCU 206的一者指示所述失敗的預(yù)定值。
圖9和圖10是說明在電路(例如圖8所示的VPE)中發(fā)送消息的方法的流程圖。 明確地說,圖9說明根據(jù)本發(fā)明 -個(gè)實(shí)施例的在VPE屮將通信消息從--個(gè)VPU或VCU 傳送到另一 VPU或VCU的方法,且圖10說明根據(jù)本發(fā)明實(shí)施例的基于DMA請(qǐng)求消息 在VPE中執(zhí)行DMA操作的方法。
參看圖9,所述在VPE中將通信消息從一個(gè)VPU或VCU傳送到另一 VPU或VCU 的方法包括以下步驟。首先,在步驟1101中,VPU或VCU將通信消息寫入到多個(gè)通信 消息隊(duì)列中的一者。接下來,在步驟1102中,調(diào)度器核查所述通信消息的Q的地接收 FIFO的占用率。最后,在步驟1103中,如果所述目的地接收FIFO的占用率低于預(yù)定 高水位占用率閾值,那么將所述通信消息傳送到所述目的地接收FIFO。
參看圖10,所述在VPE中執(zhí)行DMA操作的方法包括以下步驟。首先,在步驟1201 中,VPU或VCU將DMA請(qǐng)求消息寫入到多個(gè)DMA請(qǐng)求消息隊(duì)列中的一者。接下來, 在步驟1202中,將所述DM A請(qǐng)求消息從DMA請(qǐng)求消息隊(duì)列傳送到DM A請(qǐng)求FIFO 。 接著,在步驟203中,將所述DMA請(qǐng)求消息傳送到DMA控制器,且DMA控制器基 于所述DMA請(qǐng)求消息而執(zhí)行DMA操作。最后,在步驟1204中,將與所述DMA請(qǐng)求 消息相關(guān)聯(lián)的DMA完成通知發(fā)送到所述VPE內(nèi)的一個(gè)或一個(gè)以上VPU禾P/或VCU中的DMA完成通知接收FIFO。
前述優(yōu)選實(shí)施例是教示實(shí)例。所屬領(lǐng)域的技術(shù)人員將了解,可在不脫離如由所附權(quán) 利要求書界定的本發(fā)明范圍的情況下對(duì)示范性實(shí)施例作出形式和細(xì)節(jié)上的各種改變。
權(quán)利要求
1.一種集成電路,其包括外部存儲(chǔ)器;控制處理器;多個(gè)并聯(lián)向量處理引擎(VPE),其中所述VPE中的每一者包括多個(gè)向量處理單元(VPU)、多個(gè)VPU控制單元(VCU)、直接存儲(chǔ)器存取(DMA)控制器和VPE消息傳遞單元(VMU),所述VMU在所述多個(gè)VPU、所述多個(gè)VCU、所述DMA控制器和所述控制處理器之間提供數(shù)據(jù)傳送路徑;以及外部存儲(chǔ)器單元(EMU),其在所述外部存儲(chǔ)器、所述控制處理器和所述多個(gè)VPE之間提供數(shù)據(jù)傳送路徑。
2. 根據(jù)權(quán)利要求1所述的集成電路,其中每個(gè)VPE內(nèi)的所述VMU包括第-一存儲(chǔ)器,其適于存儲(chǔ)來自多個(gè)消息發(fā)送器的消息;第--調(diào)度器,其適于使消息從所述第一存儲(chǔ)器出隊(duì),并確定用于將所述出隊(duì)的消 息發(fā)送到多個(gè)接收器的次序第二存儲(chǔ)器,其與存儲(chǔ)傳入消息的每個(gè)接收器相關(guān)聯(lián)。
3. 根據(jù)權(quán)利要求2所述的集成電路,其中所述第一存儲(chǔ)器被分成適于從相應(yīng)VPU接 收消息的第一多個(gè)虛擬隊(duì)列;其中所述第一調(diào)度器適于確定用于使消息從所述第一多個(gè)虛擬隊(duì)列出隊(duì)的次序; 其中所述第二存儲(chǔ)器被分成適于從相應(yīng)VPU接收消息的第二多個(gè)虛擬隊(duì)列;且 其中所述集成電路進(jìn)一步包括第二調(diào)度器,其適于確定用于使消息從所述第二多 個(gè)虛擬隊(duì)列出隊(duì)的次序。
4. 根據(jù)權(quán)利要求3所述的集成電路,其中每個(gè)VPE內(nèi)的所述VPU和VCU中的每一 者包括第一接收隊(duì)列,其適于接收從所述第一多個(gè)虛擬隊(duì)列出隊(duì)的消息;以及 第二接收隊(duì)列,其適于接收從所述第二多個(gè)虛擬隊(duì)列出隊(duì)的消息。
5. —種物理處理單元(PPU),其包括外部存儲(chǔ)器,其至少存儲(chǔ)物理數(shù)據(jù);PPU控制引擎(PCE),其包括可編程的PPU控制單元(PCU); 多個(gè)并聯(lián)向量處理引擎(VPE),其中所述VPE中的每一者包括 多個(gè)向量處理單元(VPU),其每一者包括適于對(duì)用于物理仿真的物理數(shù)據(jù)執(zhí)行 計(jì)算的數(shù)學(xué)/邏輯單元分組; 多個(gè)VPU控制單元(VCU);直接存儲(chǔ)器存取(DMA)子系統(tǒng),其包括DMA控制器;以及VPE消息傳遞單兀(VMU),其適于在所述多個(gè)VPU、所述多個(gè)VCU、所述DMA子系統(tǒng)和所述PCE之問傳送消息;以及外部存儲(chǔ)器單元(EMU),其在所述外部存儲(chǔ)器、所述PCE和所述多個(gè)VPE之間提供數(shù)據(jù)傳送路徑。
6. 根據(jù)權(quán)利要求5所述的PPU,其中每個(gè)VPE內(nèi)的所述VMU包括第 一 存儲(chǔ)器,其具有讀取端口和寫入端口且被分成多個(gè)通信消息虛擬隊(duì)列 , 第一調(diào)度器,其適于確定用于使消息從所述多個(gè)通信消息虛擬隊(duì)列中出隊(duì)的次 序;第二存儲(chǔ)器,其具有讀取端Ul和寫入端U且被分成多個(gè)D M A請(qǐng)求消息虛擬隊(duì)列; 以及第二調(diào)度器,其適于確定lti于使消息從所述多個(gè)DMA請(qǐng)求消息虛擬隊(duì)列出隊(duì)的 次序。
7. 根據(jù)權(quán)利要求6所述的PPU,其中每個(gè)消息包括表示一個(gè)或一個(gè)以上指令、指針、 地址或計(jì)算的運(yùn)算數(shù)或結(jié)果的數(shù)據(jù)單元。
8. 根據(jù)權(quán)利要求7所述的PPU,其中所述DMA子系統(tǒng)進(jìn)一步包括多個(gè)DMA請(qǐng)求隊(duì)列,其適于接收來自所述DMA請(qǐng)求消息虛擬隊(duì)列的DMA請(qǐng) 求消息,并將所述DM A請(qǐng)求消息傳送到所述DMA控制器以及DMA完成通知隊(duì)列,其適于接收來自所述DMA控制器的DMA完成通知,并 將所述DMA完成通知傳送到所述VCU和VPU。
9. 一種操作集成電路的方法,所述集成電路包括外部存儲(chǔ)器、多個(gè)并聯(lián)向量處現(xiàn)引擎(VPE)和一外部存儲(chǔ)器單元(EMU),所述多個(gè)VPE的每一者包括多個(gè)向量處理 單元(VPU)、多個(gè)VPU控制單元(VCU)和一 VPE消息單元(VMU),且所述 EMU在所述外部存儲(chǔ)器與所述多個(gè)VPE之間提供數(shù)據(jù)傳送路徑,所述方法包括將來自所述多個(gè)VPE的第一 VPE中的VPU的通信消息傳送到所述第一 VPE的 VMU中的通信消息虛擬隊(duì)列;以及將所述通信消息從所述通信消息虛擬隊(duì)列傳送到位于所述第一 VPE的VPU或 VCU中的目的地通信消息接收隊(duì)列。
10. 根據(jù)權(quán)利要求9所述的方法,其進(jìn)一步包括將直接存儲(chǔ)器存取(DMA)請(qǐng)求消息從所述第一 VPE中的VPU傳送到所述第 一 VPE的所述VMU中的DMA請(qǐng)求消息虛擬隊(duì)列;將所述DMA請(qǐng)求消息從所述DMA請(qǐng)求消息虛擬隊(duì)列傳送到DMA請(qǐng)求隊(duì)列; 將所述DMA請(qǐng)求消息從所述DMA請(qǐng)求隊(duì)列傳送到DMA控制器;以及 基于所述DMA請(qǐng)求消息而在所述DMA控制器的控制下執(zhí)行DMA交易。
11. 根據(jù)權(quán)利要求IO所述的方法,其進(jìn)一步包括將與所述DMA請(qǐng)求消息相關(guān)聯(lián)的DMA完成通知傳送到DMA完成通知隊(duì)列; 以及將所述DMA完成通知從所述DMA完成通知隊(duì)列傳送到位于所述第 VPE 'I'的VPU或vcu。
12. 根據(jù)權(quán)利要求9所述的方法,其進(jìn)一步包括-在將所述通信消息從所述通信消息虛擬隊(duì)列傳送到所述目的地通信消息接收隊(duì) 列之前,核查所述通信消息接收隊(duì)列的占用率等級(jí)。
全文摘要
本發(fā)明提供一種集成電路,其包括外部存儲(chǔ)器、多個(gè)并聯(lián)向量處理引擎(VPE)和外部存儲(chǔ)器單元(EMU),所述EMU在所述VPE與所述外部存儲(chǔ)器之間提供數(shù)據(jù)傳送路徑。每個(gè)VPE含有多個(gè)數(shù)據(jù)處理單元和一消息排隊(duì)系統(tǒng),所述消息排隊(duì)系統(tǒng)適于在所述數(shù)據(jù)處理單元與所述集成電路的其它組件之間傳送消息。
文檔編號(hào)G06F15/163GK101320360SQ20081009930
公開日2008年12月10日 申請(qǐng)日期2008年5月9日 優(yōu)先權(quán)日2007年5月10日
發(fā)明者克里斯托弗·蘭姆, 桑賈伊·J·帕特爾, 莫尼爾·馬厄, 讓·皮埃爾·博爾德 申請(qǐng)人:輝達(dá)公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
临高县| 始兴县| 麟游县| 林口县| 葵青区| 金阳县| 咸阳市| 庆元县| 涟水县| 黑水县| 高邮市| 甘孜| 桐庐县| 翼城县| 涪陵区| 阜康市| 海淀区| 贺兰县| 陈巴尔虎旗| 大厂| 镇远县| 江陵县| 和龙市| 太谷县| 淳安县| 和龙市| 斗六市| 金川县| 土默特右旗| 周口市| 苏尼特左旗| 黄石市| 双柏县| 理塘县| 韶山市| 繁峙县| 江孜县| 太湖县| 平阴县| 沅陵县| 阿图什市|