專利名稱:線程優(yōu)化的多處理器架構(gòu)的制作方法
線程優(yōu)化的多處理器架構(gòu)
相關(guān)申請的交叉引用
本申請要求于2006年2月3號提交的第60/764,955號美國臨時專 利申請的優(yōu)先4又。該臨時申請的全部內(nèi)容通過引用并入本文。
背景技術(shù):
和
發(fā)明內(nèi)容
可使用兩種一般的方法來加快計算機速度加快指令執(zhí)行速度或 以并行的方式執(zhí)行更多的指令。由于指令執(zhí)行速度已接近硅電子遷移 率的極限,因而并行操作成為加快計算機速度的最佳可選方式。
并行操作的早期嘗試包括
1 .將取下一條指令與執(zhí)行當(dāng)前指令進行重疊。
2. 指令流水線操作。指令流水線將每一條指令拆分為盡可能多的 片段,然后嘗試將連續(xù)的指令映射到并行的執(zhí)行單元內(nèi)。由于多步指 令的無效性,很多軟件程序不能提供足夠的連續(xù)指令以使并行執(zhí)行單 元保持填滿,并且在遇到分支結(jié)構(gòu)、循環(huán)結(jié)構(gòu)或判斷結(jié)構(gòu)時,要花費 大量時間來重新填充指令單元,因而很難獲得理論上的最高限度的改 進。
3. 單指令多數(shù)據(jù)或SIMD。該類技術(shù)是在因特爾SSE指令集中發(fā) 現(xiàn)的,如在因特爾奔騰3或其它處理器中實現(xiàn)。在該技術(shù)中,在多個 數(shù)據(jù)集上執(zhí)行單一 的指令。該技術(shù)只對例如視頻圖像繪制的特殊應(yīng)用 有幫助。
4. 超立方體結(jié)構(gòu)。該技術(shù)使用處理器的大的二維陣列(有時使用 三維陣列)和本地存儲器。支持處理器陣列所需的通信和互連固有地 將它們限制在特殊應(yīng)用中。
流水線是由連續(xù)地完成指令片段的執(zhí)行的多個連續(xù)的階段組成的 指令執(zhí)行單元,所述執(zhí)行例如取指令、譯碼、執(zhí)行、存儲等。多個流 水線可并行地放置,以將程序指令連續(xù)地供給每條流水線,直到所有
的流水線都在執(zhí)行指令。然后從最初的流水線開始重復(fù)進行指令填充。
當(dāng)N條流水線都填充了指令并且都在執(zhí)行時,其性能效果在理論上是 單執(zhí)行單元的執(zhí)行速度的N倍。 成功的流水線:f又決于如下方面
1. 指令的執(zhí)行必須能夠定義為幾個連續(xù)的狀態(tài)。
2. 每條指令必須具有相同數(shù)目的狀態(tài)。
3. 每條指令的狀態(tài)數(shù)目確定并行執(zhí)行單元的最大數(shù)目。由于基于 并行流水線的數(shù)目,流水線操作能夠獲得性能提高,且由于并行流水 線的數(shù)目由每條指令的狀態(tài)數(shù)目所確定,因此流水線鼓勵復(fù)雜的多狀 態(tài)指令。
過度流水線化的計算機很難獲得接近并行執(zhí)行單元期望的理論性 能改進。該流水線損失的一些原因包括
1 .軟件程序并不只由連續(xù)的指令構(gòu)成。各種研究表明每8-10條指 令就會發(fā)生執(zhí)行流的變化。改變程序流的任何分支都將會擾亂流水線。 將流水線的擾亂降低到最小的嘗試是很復(fù)雜的且是不完全的。
2. 強迫所有的指令包含相同數(shù)目的狀態(tài)常常導(dǎo)致執(zhí)行滿足最小公 分母(即,最慢和最復(fù)雜)指令的需求的流水線。由于該流水線的原 因,使得不管是否需要,所有的指令都被迫具有相同數(shù)目的狀態(tài)。例 如,邏輯操作(例如為AND (與)或OR (或))的執(zhí)行比ADD (加) 的執(zhí)行要快一個數(shù)量級,但是常常為兩者分配了相同數(shù)量的執(zhí)行時間。
3. 流水線鼓勵多狀態(tài)復(fù)雜指令??赡苄枰獌蓚€狀態(tài)的指令通常被 延長以填充20個狀態(tài),就因為該流水線的深度是20。(因特爾奔騰4 使用20個狀態(tài)的流水線。)
4. 除了特殊狀態(tài)的設(shè)計余量或冗余以外,每個流水線狀態(tài)所需的 時間還必須考慮到通過邏輯電路和相關(guān)晶體管的傳播延遲。
5. 由于仲裁邏輯內(nèi)的晶體管的傳播延遲,常常會降低流水線寄存 器和其它資源存取的仲裁性能。
6. 在附加的狀態(tài)實際上會減慢執(zhí)行速度而不是加快速度之前,指 令可被拆分為的狀態(tài)的數(shù)目具有上限。 一些研究表明,Digital Equipment Corporation (數(shù)字裝備公司)的a處理器的最后一代的流水
線架構(gòu)超出了該上限,而實際上比先前的較短流水線的處理器版本執(zhí) 行得更慢。
拆分流水線
重新分解CPU設(shè)計的觀點之一是考慮將流水線執(zhí)行單元拆分為 多個(N個)簡化的處理器。(在這樣的設(shè)計中,寄存器和一些其它邏 輯可需要復(fù)制。)相對于上述流水線架構(gòu),N個簡化的處理器中的每個 處理器都將具有如下的優(yōu)點
1. 無會發(fā)生流水線停止。無分支預(yù)測的必要性。
2. 指令能按所需時間執(zhí)行,而不是全部都被分配給與最慢指令相 同的4丸行時間。
3. 可通過減少必要的執(zhí)行狀態(tài)來簡化指令,從而減少流水線損失。
4. 從流水線中去除的每個狀態(tài)都能消除傳播延遲,并能去除該狀 態(tài)所需的設(shè)計余量。
5. 能消除寄存器仲裁。
而且,相對于流水線化的CPU,具有N個簡化處理器的系統(tǒng)還具 有ip下優(yōu)點
1. 消除最大流水線并行操作的限制。
2. 不同于流水線化的處理器,可選擇性地關(guān)閉多個單獨處理器的 電源,以在不使用這些處理器時降低功耗。
當(dāng)前并行操作方法的其它問題
并行操作的很多實現(xiàn)屈服于阿姆達(dá)爾定律(Amdahl's Law)的限 制。由于該問題的不可串行化部分,并行操作的加速會受到系統(tǒng)開銷 的限制?;旧?,當(dāng)并行操作的數(shù)量增加時,支持這種數(shù)量增加所需 的通信會超過并行操作帶來的益處。
紅線上的1亭止信號(Stoplight Sitting at Redline ) 當(dāng)前處理器的另一低效率是不能將計算功率調(diào)整到滿足即時計算 的需求。大多數(shù)計算機將其大部分時間花費在等待某些事發(fā)生。其等 待1/0、等待下一條指令、等待存儲器存取、或有時等待人機接口。這 種等待是計算功率的低效浪費。而且,花費在等待上的計算機時間常 常導(dǎo)致功耗的增加和熱量的產(chǎn)生。
等待規(guī)則的例外是諸如引擎控制器、信號處理器和防火墻路由器 等應(yīng)用軟件。由于問題集和解決方法集的預(yù)定性質(zhì),因此這些應(yīng)用軟
件是用于并行操作加速的卓越候選者。使用N個乘法器可更快地解決 需要N次獨立乘法的乘積的問題。
通用計算機的感知性能實際上已達(dá)到其峰點。通用計算機變得越 來越忙,這是由于運行快速屏幕刷新的視頻游戲、編譯大的源文件或 搜索數(shù)據(jù)庫。在理想世界中,視頻繪制將被分解為特殊用途、陰影、 變換、繪制硬件。將程序分解為特殊用途硬件的一種方法是使用"線 程"。
線程是自含式的、很少與其它線程進行數(shù)據(jù)通信的獨立程序。線 程通常用于從低速實時活動收集數(shù)據(jù),并提供收集結(jié)果。線程也可用 于在顯示器上繪制變化。線程在需要進一步與另一線程交互之前,可 變換數(shù)千或數(shù)百萬個狀態(tài)。獨立線程通過并行操作為提高性能提供了 機會。
許多軟件編譯器都支持線程的產(chǎn)生和管理,用于對軟件設(shè)計過程 進行分解。通過優(yōu)選實施方式中的線程優(yōu)化微處理器(TOMI)中實現(xiàn) 的線程級并行操作技術(shù),相同的分解將支持多CPU并行處理。
線程級并行操作
線程是用于在單CPU上分解軟件程序的非常容易理解的技術(shù)。通 過使用TOMI處理器,線程級并行操作能獲得程序加速。
與其它并行方法相比,TOMI處理器的一個重要優(yōu)點是,TOMI 處理器只需對當(dāng)前軟件編程技術(shù)做最小的改變,而不需要開發(fā)新算法。 許多現(xiàn)存的程序需要重新編譯,但是基本上不用重寫。
有效的TOMI計算機架構(gòu)應(yīng)該構(gòu)建在大量簡化處理器的周圍。不 同的架構(gòu)可用于不同類型的計算問題。
基本計算機操作
對于通用計算機,最通用的操作按照頻率減小的順序排列是加 載和存儲;排序;以及數(shù)學(xué)和邏輯。 加載和存儲
加載(LOAD)和存儲(STORE)的參數(shù)是源和目的地。加載和
存儲的能力是源和目的地的范圍(例如,4G字節(jié)比256字節(jié)具有更有 力的范圍)。相對于當(dāng)前源和目的地的位置對許多數(shù)據(jù)集來說是很重要 的。力。1、減1是最有用的。增加從當(dāng)前源和目的地的偏移量越來越 不重要了。
加載和存儲也可受存儲器分級體系所影響。從存儲器加載可能是 CPU可執(zhí)行的最慢操作。 顯
分支和循環(huán)是基本的排序指令。根據(jù)測試改變指令順序是計算機 做出判定的方法。
數(shù)學(xué)和邏輯
數(shù)學(xué)和邏輯操作是三種操作中最少使用的。邏輯操作是CPU可執(zhí) 行的最快操作,并可僅僅需要單邏輯門延遲。由于高比特位依賴于低 比特位操作的結(jié)果,因而數(shù)學(xué)操作更復(fù)雜。即使提前進位,32位相加 (ADD)也可需要至少32個門延遲。使用移位相加技術(shù)的相乘 (MULTIPLY)可等^介于需要32個相加。 指令大小的折衷
完美指令集可由大到足以選擇無限可能的源、目的地、操作和下 一條指令的操作碼組成。不幸地,該完美指令集的操作碼將會無限寬, 因而指令帶寬將會是零。
高指令帶寬的計算機設(shè)計包括創(chuàng)建這樣的具有操作碼的指令集, 其能夠利用最少的操作碼位有效地定義最通用的源、目的地、操作和 下一條指令。
寬的操作碼導(dǎo)致高的指令總線帶寬需求,且該得到的架構(gòu)將會很 快受限于馮'諾伊曼瓶頸,其中,計算機性能受到從存儲器取指令的 速度的限制。
如果存儲器總線是64位寬,就能在每個存儲器周期取單條64位 指令、兩條32位指令、四條16位指令或八條8位指令。32位指令的 有用性最好為16位指令的兩倍,這是因為32位指令將指令帶寬減少 為一半。
指令集設(shè)計的主要目標(biāo)是減少指令冗余。 一般地,優(yōu)化的高效指
令集利用指令和數(shù)據(jù)的位置。最簡單的指令優(yōu)化實現(xiàn)已很久了。對于 大多數(shù)計算機程序,最可能的下 一條指令為存儲器中按順序的下 一條
指令。因此不用在每條指令中包含下一條指令的字段,而是大多數(shù)指 令都假設(shè)下一條指令是當(dāng)前指令+ 1。創(chuàng)建零比特源和零比特目的地的 架構(gòu)是可能的。 堆棧架構(gòu)
堆棧架構(gòu)計算機也稱為零操作數(shù)架構(gòu)。堆棧架構(gòu)根據(jù)后進先出堆 棧的內(nèi)容執(zhí)行所有的操作。雙操作數(shù)操作需要兩個操作數(shù)都出現(xiàn)在堆 棧上。當(dāng)操作執(zhí)行時,兩個操作數(shù)都將從堆棧彈出(POP),執(zhí)行該操
作,然后將結(jié)果壓入(PUSH)到堆棧中。由于源和目的地已隱含地位
于堆棧中,因而堆棧架構(gòu)計算機可具有非常短的操作碼。
大多數(shù)程序需要全局寄存器的內(nèi)容,在需要該寄存器時,其在堆 棧上可能并不總是可用的。將該事件的發(fā)生概率最小化的嘗試包括為 堆棧編索引,從而允許對不位于堆棧頂部的操作數(shù)進行存取。為堆棧 編索引要么需要額外的操作碼位從而導(dǎo)致更大的指令,要么需要額外 的操作以將堆棧索引值放置在堆棧本身。某些時候,定義了一個或多 個額外的堆棧。更好的但非最優(yōu)化的解決方法是堆棧/寄存器架構(gòu)的結(jié) 合。
堆棧架構(gòu)操作也常常明顯不符合最優(yōu)化地造成冗余。例如,當(dāng)堆 棧在存儲器內(nèi)操作時,每次彈出和壓入操作都可能造成浪費時間的存 儲器操作。而且,堆棧操作可消耗下一個操作中立即需要的操作數(shù), 從而需要進行操作數(shù)復(fù)制,并可能需要另一個存儲器操作。以將一維
凄史組中的所有元素乘以15的才喿作為例進行i兌明。 在堆棧架構(gòu)上,通過如下操作實現(xiàn)
1. 壓入數(shù)組的起始地址
2. 復(fù)制(DUPLICATE)地址(因此得到數(shù)組中將用于存儲結(jié) 果的地址。)
3. 復(fù)制地址(因此得到數(shù)組中將用于進行讀取的地址。)
4. 間接壓入(PUSH INDIRECTLY )(將堆棧頂端所指的數(shù)組 位置的內(nèi)容壓入)
5. 壓入15
6. 乘法(MULTIPLY)(將第3步所讀的數(shù)組內(nèi)容進行15次 乘法。)
7. 交換(SWAP)(從堆棧的頂部得到數(shù)組地址,以用于下一 條指令。)
8. 間接彈出(POP INDIRECTLY)(彈出乘法結(jié)果并將其存儲 回數(shù)組)
9. 遞增(INCREMENT)(指向下一個H組元素。)
10. 轉(zhuǎn)到步驟2直到數(shù)組完成。
第9步的循環(huán)計數(shù)需要額外的參數(shù),在某些架構(gòu)中,該參數(shù) 存儲在另一堆棧中。
在假定的寄存器/累加器架構(gòu)中,該實施例實現(xiàn)如下
1. 存儲指向數(shù)組的起始位置的指針
2. 讀取指針(將該指針指向的地址的內(nèi)容讀取到累加器中)
3. 乘以15
4. 存儲指針(將結(jié)果存儲到該指針指向的地址)
5. 遞增指針
6. 轉(zhuǎn)到第2步直到數(shù)組完成。
五個步驟。而且,堆棧操作包括至少3次用于額外存儲器存取的可能 機會。假定的寄存器/累加器架構(gòu)的循環(huán)控制能夠簡單地在寄存器中被 處理。
堆棧對于對表達(dá)式求值是很有用的,且因而用于大多數(shù)編譯器中。 堆棧對于嵌套操作(例如為函數(shù)調(diào)用)也是很有用的。大多數(shù)C編譯 器都用堆棧實現(xiàn)函數(shù)調(diào)用。然而,如果沒有通用存儲的補充,堆棧架 構(gòu)則需要大量的額外數(shù)據(jù)轉(zhuǎn)移和處理。為了優(yōu)化的目的,堆棧的壓入 和彈出操作還應(yīng)該與數(shù)學(xué)和邏輯操作相分離。但是從上面的實施例可 見,當(dāng)重復(fù)加載和存儲數(shù)據(jù)時,由于數(shù)組地址由間接壓入和間接彈出 而消耗,因此堆棧尤其效率低。
一方面,本發(fā)明包括一種系統(tǒng),其包括位于單片芯片上的多個
并行處理器;以及計算機存儲器,其位于芯片上并能夠被每個處理器 訪問;其中,每個處理器都能夠操作以處理最小(&mz'm'm&)指令集, 并且,每個處理器都包括本地高速緩沖存儲器,本地高速緩沖存儲器 用于處理器內(nèi)的至少三個專用寄存器中的每個。
在不同是實施方式中(1)每個本地緩沖存儲器的大小等于芯片 上的隨機存取存儲器的一行;(2)具有相關(guān)高速緩沖存儲器的至少三 個專用寄存器包括指令寄存器、源寄存器和目的寄存器;(3)最小指 令集由七條指令組成;(4)每個處理器都能夠操作以處理單線程;(5) 累加器是用于除了遞增指令外的每個指令的操作數(shù);(6)每條指令的 目的地總是操作數(shù)寄存器;(7)三個寄存器自動遞增且三個寄存器自 動遞減;(8)完成每條指令均只需要一個時鐘周期;(9)指令集不包 括分支指令和跳轉(zhuǎn)指令;(10)每條指令的長度最多為8比特;(11) 單一的主處理器負(fù)責(zé)管理每個并行處理器。
另一方面,本發(fā)明還包括一種系統(tǒng),其包括(a)位于單片芯片 上的多個并行處理器;以及(b)計算機存儲器,其位于芯片上,并能 夠被每個處理器訪問;其中,每個處理器都能夠操作以對指令集進行 處理,指令集被優(yōu)化用于線程級并行處理。
在不同是實施方式中(1)每個處理器都能夠操作以處理最小指 令集;(2)每個處理器都包括本地高速緩沖存儲器,高速緩沖存儲器 用于處理器中至少三個專用寄存器中的每個;(3)每個本地高速緩沖 存儲器的大小等于芯片上的隨機存取存儲器的一行;(4)至少三個專 用寄存器包括指令寄存器、源寄存器和目的寄存器;(5)最小指令集 由七條指令組成;(6)每個處理器都能夠操作以處理單線程;(7)單 一的主處理器負(fù)責(zé)管理每個并行處理器。
另一方面,本發(fā)明還包括一種線程級并行處理方法,其中,方法 利用單一芯片上的主處理器、多個并行處理器以及計算機存儲器實現(xiàn), 其中多個處理器中的每個都能夠操作以處理最小指令集以及處理單線 程,方法包括(a)為多個處理器的每個處理器中的三個專用寄存器 中的每個寄存器分配本地高速緩沖存儲器;(b)將多個處理器中一個 分配以處理單線程;(c)由處理器處理每個分配的線程;(d)由處理
器處理來自每個線程的結(jié)果;以及(e)在線程處理完成之后,對多個 處理器的中的一個進行解分配。
在不同是實施方式中(1)最小指令集由七條指令組成;(2)最 小指令集中每條指令的長度最大為8比特;(3)最小指令集中的每條 指令均在一個時鐘周期內(nèi)處理。
圖l描述了一個實施方式的示例性TOMI架構(gòu);
圖2是示例性的指令集;
圖2A示出了操作中的向前分支;
圖3圖解說明了不同尋址方式中的有效地址;
圖4圖解說明了從4-32比特的數(shù)據(jù)路徑是如何簡單地被創(chuàng)建的;
圖5描述了示例性本地高速緩沖存儲器;
圖6描述了示例性高速緩沖存儲器的管理狀態(tài);
圖7示出了利用寬系統(tǒng)RAM總線的額外處理功能的一個實施方
式;
圖8描述了示例性的存儲器映射;
圖9描述了示例性的處理可用性表;
圖10圖解說明了處理器分配的三個組件;
圖11描述了示例性的分解;
圖12描述了示例性的系統(tǒng)RAM;
圖13描述了 64個處理器的單塊陣列的示例性平面布置圖。
具體實施例方式
本發(fā)明至少一個實施方式的TOMI架構(gòu)優(yōu)選地使用可^象通用計算 機一樣操作的最小邏輯。最常用的操作是優(yōu)先的。大多數(shù)操作是可見 的、常規(guī)的,并可用于編譯器優(yōu)化。
在一個實施方式中,如圖1所示,TOMI架構(gòu)是對累加器架構(gòu)、 寄存器架構(gòu)和堆棧架構(gòu)的變體。在該實施方式中
l.類似于累加器架構(gòu),除了遞增指令之外,累加器總是操作數(shù)之2. 類似于寄存器架構(gòu),目的地總是操作數(shù)寄存器之一。
3. 累加器和程序計數(shù)器也是寄存器空間,從而可在其上操作。
4. 三個專用寄存器自動遞增和自動遞減,并對于創(chuàng)建堆棧和輸入
輸出流也是有用的。
5. 全部操作都需要單個時鐘周期(和兩個狀態(tài)時鐘高、時鐘低)。
6. 所有的指令都是8比特長,簡化并加快了解碼。
7. 無分支(BRANCH)和跳轉(zhuǎn)(JUMP)指令。
8. 如圖2所示,只有七條指令允許操作員從8比特指令中選擇3 比特。
優(yōu)選實施方式的一些好處包括
1 .所有的操作都以邏輯允許的最大速度運行,而不是由流水線所 需的平均性而壓縮。邏輯操作是最快的。數(shù)學(xué)操作是次快的。需要存 儲器存取的操作是最慢的。
2. 該架構(gòu)按任何數(shù)據(jù)寬度而調(diào)整,僅受組件管腳數(shù)、加法器進位 次數(shù)以及有效性所限制。
3. 該架構(gòu)接近執(zhí)行通用計算機的所有操作所需的最小可能功能性。
4. 該架構(gòu)是非常透明的、有規(guī)則的,且大多數(shù)操作都可用于優(yōu)化 編譯器。
該架構(gòu)設(shè)計得足夠簡單,從而可以在單一的單塊芯片上被復(fù)制許 多次。一個實施方式將CPU的多份拷貝和存儲器 一起嵌入在單塊芯片 上。32位CPU可用少于1,500個門實現(xiàn),其中大多數(shù)門都用于定義寄 存器。通過利用與單一的因特爾奔騰4中使用的相同數(shù)目的晶體管, 可實現(xiàn)優(yōu)選實施方式中的將近1,000個TOMI CPU。
指令集
指令集中的七條指令以及其位映射如圖2所示。每條指令優(yōu)選地 由單一的8比特字組成。 尋址方式
圖3圖解說明了不同尋址方式的有效地址。
尋址方式是
直接尋址(Immediate) 寄存器尋址(Register) 寄存器間接尋址(Register Indirect)
寄存器間4矣自動遞增尋址(Register Indirect Auto-increment) 寄存器間接自動遞減尋址(Register Indirect Auto-decrement) 特殊情況
寄存器0和寄存器1都是程序計數(shù)器(PC )。用寄存器0 ( PC ) 作為操作數(shù)的所有操作都是有條件的,即累加器進位位(C)等于1。
如果C=l,則將PC的舊值交換到累加器(ACC)中。而將寄存器1 (PC)作為操作數(shù)的所有操作都是無條件的。 無分支
分支和跳轉(zhuǎn)操作通常是CPU設(shè)計者的難題,因為它們需要寶貴的 操作碼空間中的很多位。分支功能可如下創(chuàng)建通過利用LOADACC, xx將期望的分支地址加載到ACC內(nèi),然后使用STOREACC, PC指令 來實現(xiàn)分支。通過存儲到寄存器0,分支可以C的狀態(tài)為條件。
跳轉(zhuǎn)
跳轉(zhuǎn)通過執(zhí)行INC, PC而創(chuàng)建。執(zhí)行將會需要兩個周期, 一個用 于完成當(dāng)前PC遞增周期, 一個用于完成INC。通過將寄存器O遞增, 跳轉(zhuǎn)可以C的狀態(tài)為條件。
相對分支
相對分支(relative branch)的創(chuàng)建是通過將期望的偏移量加載到 ACC中,然后執(zhí)行ADD, PC指令而實現(xiàn)的。通過與寄存器O相加, 相對分支可以C的狀態(tài)為條件。
向前分支
由于循環(huán)所需的向后分支(rearward branch )的位置能夠通過按照 首先經(jīng)過循環(huán)頂部的程序步驟保存PC而簡單地獲得,因而向前分支 (forward branch )比向后分支更有用。
比相對分支更有效的向前分支的創(chuàng)建通過將分支端點的最低有效 位加載到ACC中,然后存儲到PC中而實現(xiàn)。由于可根據(jù)使用寄存器
0或寄存器1,而有條件或無條件地存取PC,因而向前分支也可通過
將PC寄存器(寄存器0或寄存器1 )作為目的地操作數(shù)的選擇而為有 條件或無條件的。 例如
LOADI, #1C STOREACC, PC
如果ACC的最高有效位都為零,則僅將6個最低有效位傳送到 PC寄存器。如果當(dāng)前PC寄存器的6個最低有效位小于將要加載的 ACC值,則將寄存器中的最高有效位保持不變。如果當(dāng)前PC寄存器 中的6個最低有效位大于將要加載的ACC值,則將當(dāng)前PC寄存器從 第7位開始遞增。
這樣有效地允許高達(dá)31條指令的向前分支。向前分支的方法應(yīng)該 在一切可能的情況下使用,這不僅因為相對于相對分支的3條指令來 說,其只需要2條指令,而且因為其不需要經(jīng)過加法器,而經(jīng)過加法 器是最慢的操作。圖2顯示了操作中的向前分支。
循環(huán)
循環(huán)的頂部可使用LOADACC, PC來保存。得到的指向循環(huán)結(jié)構(gòu) 頂部的指針則可存儲在寄存器中,或壓入到一個自動索引的寄存器中。 在循環(huán)的底部,可用LOADACC, EA獲得指針,并使用STOREACC, PC將該指針重新存儲到PC中,從而產(chǎn)生向后循環(huán)。通過存儲到寄存 器0,循環(huán)可以C的狀態(tài)為條件,從而造成有條件的向后循環(huán)。
自修改代碼
可利用STOREACC, PC寫自修改代碼。指令可被創(chuàng)建或取至 ACC,然后被存儲到PC中作為下一條指令來執(zhí)行。該技術(shù)可用于創(chuàng) 建情況(CASE)結(jié)構(gòu)。
假設(shè)存儲器中的跳轉(zhuǎn)表數(shù)組由N個地址和跳轉(zhuǎn)表(JUMPTABLE ) 的基地址組成。為了方便起見,跳轉(zhuǎn)表可位于低位存儲器內(nèi),因此其 地址可用LOADI或在LOADI之后跟隨一個或多個右移位、ADD 、 ACC 來創(chuàng)建。
假設(shè)進入跳轉(zhuǎn)表的索引位于ACC內(nèi),且跳轉(zhuǎn)表的基地址位于命名
為JUMPTABLE的通用寄存器中
ADD, JUMPTABLE 將索引加入跳轉(zhuǎn)表的基地址中
LOADACC, (JUMPTABLE) 加載具有索引的地址 STOREACC, PC ' 4丸行跳轉(zhuǎn)
如果將從0000開始的低位存儲器分配給系統(tǒng)調(diào)用,那么,每個系
統(tǒng)調(diào)用可執(zhí)行如下,其中,SPECIAL—FUNCTION是直接操作數(shù)0-63
的名字
LOADI, SPECIAL—FUNCTION 加載系統(tǒng)調(diào)用的編號
LOADACC, (ACC) 加載系統(tǒng)調(diào)用的地址
STOREACC, PC 跳轉(zhuǎn)到函數(shù)
右移位
基本的架構(gòu)不會預(yù)想右移位操作。當(dāng)需要該操作時,優(yōu)選實施方 式的解決方法是,將通用寄存器之一指定作為"右移位寄存器"。 STOREACC, R1GHTSHIFT將ACC右移位后的單一位置存儲到"右移 位寄存器"中,其中,可用LOADACC, RIGHTSHIFT讀取該值。
架構(gòu)的可縮放性
TOMI架構(gòu)優(yōu)選地以8位指令為特征,但是數(shù)據(jù)寬度無需受到限 制。圖4圖解說明了從4到32位的任何寬度的數(shù)據(jù)分支是如何創(chuàng)建的。 創(chuàng)建更寬數(shù)據(jù)處理只需要將寄存器組、內(nèi)部數(shù)據(jù)路徑和ALU的寬度增 加到期望的寬度。數(shù)據(jù)路徑的上限只由加法器進位傳播延遲和晶體管 預(yù)算所限制。
為了簡便起見,優(yōu)選的TOMI架構(gòu)實現(xiàn)為馮.諾伊曼存儲器配置, 但是哈佛架構(gòu)實現(xiàn)(具有獨立的數(shù)據(jù)總線和指令總線)也是可能的 通用數(shù)學(xué)操作
2的補碼運算能以幾種方法實現(xiàn)??蓪⑼ㄓ眉拇嫫黝A(yù)配置為全"r,
并命名為ALLONES。假定操作數(shù)位于命名為OPERAND的寄存器中 LOADACC, ALLONES XOR, OPERAND
INC, OPERAND "2"的補碼虧皮留在OPERAND中
通用編譯器結(jié)構(gòu)
大多計算機程序都是由編譯器生成的。因此,有用的計算機架構(gòu) 應(yīng)該擅長于通用編譯器結(jié)構(gòu)。
C編譯器通常使堆棧維持將參數(shù)傳遞給函數(shù)調(diào)用。S、 X或Y寄 存器可用作堆棧指針。函數(shù)調(diào)用使用例如STOREACC, (X)+,將參數(shù) 壓入到擔(dān)當(dāng)堆棧的一個自動索引寄存器上。在進入函數(shù)之后,將參數(shù) 彈出到通用寄存器中,以備使用。
堆棧相對尋址
有時,傳遞到函數(shù)調(diào)用的元素會多于適合于通用寄存器的元素。 對于下面的實施例,假定堆棧壓入操作使堆棧遞減。如果將S用作堆 棧寄存器,讀取相對于堆棧頂部的第N項
LOADI, N
STOREACC, X
LOADACC, S
ADD, X
LOADACC, PO 在數(shù)組中編索引
進入數(shù)組函數(shù)之后,數(shù)組基地址則位于命名為ARRAY的通用寄 存器中。讀取數(shù)組中的第N個元素 LOADI, N STOREACC, X LOADACC5 ARRAY ADD, X LOADACC, (X) 在N字元素數(shù)組中編索引
有時,數(shù)組將為元素分配N個字的寬度。數(shù)組的基地址位于命名 為ARRAY的通用寄存器中。在5字寬的數(shù)組中訪問第N個元素的第
一個字:
LOADI, N STOREACC, X ADD, ACC
存儲到臨時寄存器中 乘以2
ADD, ACC ADD, X
LOAD ACC, ARRAY ADD,X
再次乘以2,等于4 加1,等于5
加上數(shù)組的基地址
LOADACC, 本地TOMI高速緩存
高速緩沖存儲器是在尺寸上小于主存儲器、但比主存儲器具有更 快的存取速度的存儲器。對于許多操作而言,減少的存取時間以及程 序和數(shù)據(jù)存取的本地化使得高速緩存操作能夠提高優(yōu)選TOMI處理器 的性能。從另一個方面看,通過增加TOMI處理器相對于主存儲器的 獨立性,高速緩沖存儲器提高了并行處理性能。高速緩存相對于主存 儲器的性能以及在需要將另一個主存儲器從高速緩沖存儲器加載或存 儲到高速緩沖存儲器之前TOMI處理器能夠執(zhí)行的周期數(shù)目將確定由 于TOMI處理器的并行性而產(chǎn)生的性能的增加量。
由于TOMI處理器的并行性,TOMI本地高速緩沖存儲器提高了 性能的增加。如圖5所示,每個TOMI處理器優(yōu)選地具有三個相關(guān)的 本地高速緩沖存儲器
Instruction (指令)-與PC相關(guān)
Source (源)-與X寄存器相關(guān)
Destination (目的地)-與Y寄存器相關(guān)
這些高速緩沖存儲器的最佳尺寸是由應(yīng)用程序決定的。通常的實 施方式中,每個高速緩沖存儲器需要1024字節(jié)。換句話說,1024條 指令,以及256個32比特字的源和目的地。至少兩個因素確定高速緩 沖存儲器的最佳尺寸。第一是在需要另一個高速緩沖存儲器加載或存 儲操作之前,TOMI處理器能夠循環(huán)的狀態(tài)數(shù)目。第二是高速緩沖存 儲器從主存儲器加載或存儲操作的成本,其中該成本相對于在主存儲 器操作過程中TOMI處理器執(zhí)行周期的數(shù)目。
在RAM中嵌入TOMI處理器
在一個實施方式中,寬的總線將大的嵌入式存儲器連接到高速緩 沖存儲器,因此到高速緩沖存儲器的加載或存儲操作能快速地發(fā)生。
通過嵌入到RAM的TOMI處理器,整個高速緩沖存儲器的加載或存
儲將由對RAM列的單存儲器周期組成。在一個實施方式中,嵌入式
存儲器將響應(yīng)63個TOMI處理器的請求,因此當(dāng)另一個TOMI處理器
高速緩沖存儲器完成時,高速緩沖存儲器對一個TOMI處理器加載或
存4諸的響應(yīng)時間可延長。
如圖6所示,在高速緩沖存儲器可根據(jù)相關(guān)存儲器尋址寄存器X,
Y, PC的改變進行存儲和加載。例如,PC寄存器的總寬可以是24位。
如果PC高速緩沖存儲器是1024字節(jié),PC的低10位將定義PC高速
緩沖存儲器中的存取。當(dāng)對PC寫入以使其高14位有變化時,則將需
要高速緩沖加載周期。與PC高速緩沖存儲器相關(guān)的TOMI CPU將停
止執(zhí)行,直到高速緩沖加載周期結(jié)束,且可從PC高速緩沖存儲器讀 取指示指令。
高速緩沖存儲器雙緩沖
在預(yù)期到高速緩沖存儲器的加載需求時,可加載次級高速緩沖存 儲器。兩個高速緩沖存儲器將為相同的,并根據(jù)PC高14位的內(nèi)容可 交替地選擇和取消選擇。在上述的實施例中,當(dāng)PC的高14位變?yōu)榕c 預(yù)緩存在次級高速緩沖存儲器中的數(shù)據(jù)的高14位相匹配時,則可將次 級高速緩沖存儲器選為主高速緩沖存儲器。之前的主高速緩沖存儲器 則將變成次級高速緩沖存儲器。由于大多數(shù)計算機程序的存儲器呈線 性遞增,本發(fā)明的一個實施方式的次級高速緩沖存儲器將總是用來讀 取當(dāng)前PC的高14位加1的、主存儲器的高速緩沖的存儲器內(nèi)容中的 內(nèi)容。
當(dāng)將存儲器數(shù)據(jù)轉(zhuǎn)移到當(dāng)前存儲器外部時,增加次級高速緩沖存 儲器將會減少TOMI處理器等待從主存儲器讀取存儲器數(shù)據(jù)的時間。 次級高速緩沖存儲器的增加幾乎將TOMI處理的復(fù)雜性提高為兩倍。 對于最佳化系統(tǒng),該雙倍復(fù)雜性應(yīng)該由相應(yīng)地將TOMI處理器性能提 高為兩倍來抵消。否則,能用相同數(shù)目的晶體管實現(xiàn)沒有次級高速緩 沖存儲器的兩個簡易的TOMI處理器。
高速乘法、浮點操作、額外的功能性
整數(shù)乘法和所有浮點操作需要許多執(zhí)行周期,即使是專用硬件也
是一樣的。因此,應(yīng)該將其包含在其它處理器內(nèi),而不是包含在基本
TOMI處理內(nèi)。數(shù)字信號處理(DSP )操作常常使用深度流水線化的乘 法器,這些乘法器在每個周期產(chǎn)生一個結(jié)果,即使總的乘法需要許多 周期。對于重復(fù)相同算法的單處理應(yīng)用,這樣的乘法器架構(gòu)是最優(yōu)化 的,且可并合并為TOMI處理器的外圍處理器,但是如果將其直接合 并到TOMI處理的話,則可能會增加復(fù)雜性并降低總體性能。圖7顯 示了利用寬的系統(tǒng)RAM總線組織的額外處理功能的 一 個實施例。 TOMI中斷策略
中斷是處理器正常順序操作之外的且造成處理器立即改變其操作 順序的事件。
中斷的實施例可能是外部裝置操作的完成或某些硬件的錯誤條 件。傳統(tǒng)的處理器竭盡全力地快速停止正常順序的操作,保存當(dāng)前操 作的狀態(tài),開始執(zhí)行一些特殊的操作來處理由任何事件造成的中斷, 且當(dāng)特殊操作完成時恢復(fù)先前的狀態(tài)并繼續(xù)順序操作。中斷處理質(zhì)量 的基本標(biāo)準(zhǔn)是響應(yīng)時間。
中斷對傳統(tǒng)處理器造成一些問題。其使執(zhí)行時間不確定,浪費處 理器周期存儲和恢復(fù)狀態(tài),使處理器設(shè)計變得復(fù)雜,并可引入減慢每 個處理器4喿作的延時。
立即中斷響應(yīng)對大多數(shù)處理器來說是沒必要的,除了正在進行錯 誤處理以及處理器直接與真實世界的活動進行交互。
在多處理器TOMI系統(tǒng)的一個實施方式中,只有一個處理器處理 基本的中斷權(quán)能。所有其它處理器都非中斷地運行,直到它們完成某 些指定的工作并停止,或直到它們被協(xié)調(diào)處理器所停止。
輸入/輸出(I/O)
在TOMI處理器環(huán)境的一個實施方式中,單一的處理器負(fù)責(zé)與外 部世界的所有接口。
直接存儲器存取(DMA)控制
在一個實施方式中,在TOMI處理器系統(tǒng)中通過DMA控制器立 即響應(yīng)外部世界。當(dāng)被外部裝置請求時,DMA控制器將數(shù)據(jù)從外部裝 置傳送到內(nèi)部數(shù)據(jù)總線,用于寫入系統(tǒng)RAM。當(dāng)被請求時,相同的控
制器還將數(shù)據(jù)從系統(tǒng)RAM傳送到外部裝置。DMA請求將具有內(nèi)部總 線存取的最高優(yōu)先權(quán)。
組織TOMI處理器陣列
本發(fā)明優(yōu)選實施方式的TOMI處理器設(shè)計為可被大量復(fù)制,且在 單片芯片上與附加的處理功能性、非常寬的內(nèi)部總線以及系統(tǒng)存儲器 像組合。該系統(tǒng)的示例性的存儲器映射如圖8所示。
每個處理器的存儲器映射的前32個位置(十六進制的1F)用于 該處理器的本地寄存器(見圖3)。存儲器映射的剩余位置可由所有處 理器通過它們的高速緩沖存儲器的寄存器進行尋址(見圖6)。系統(tǒng) RAM的尋址范圍只由與本地高速緩沖存儲器相關(guān)的三個寄存器PC, X, Y的寬度限制。如果寄存器是24位寬,總的尋址范圍將會是4M 字節(jié),但是無上限。
在一個實施方式中,64個TOMI處理器與存儲器一起單片地實現(xiàn)。 單一的主處理器負(fù)責(zé)管理其它63個處理器。當(dāng)一個從屬處理器空閑 時,其就不計時,因此其消耗很少的功率或不消耗功率,并產(chǎn)生少量 的熱量或不產(chǎn)生熱量。在初始化時,只有主處理器是操作的。主處理 器開始取指令并執(zhí)行指令,直到線程應(yīng)該啟動時。每個線程都已被預(yù) 編譯且加載到存儲器中。為了啟動線程,主處理器將線程分配到其中 一個TOMI CPU中。
處理器可用性
TOMI處理器的工作可用性的協(xié)調(diào)優(yōu)選地由圖9示出的處理器可 用性表來進行處理。協(xié)調(diào)(主)處理器優(yōu)選地執(zhí)行如下功能
1. 將從屬處理器的調(diào)用參數(shù)壓入其堆棧中,所述參數(shù)包括但不限 于線程的執(zhí)行地址、源存儲器和目的存儲器。
2. 啟動從屬處理器。
3. 通過輪詢或通過響應(yīng)中斷,來響應(yīng)從屬處理器線程完成事件 請求一個處理器
協(xié)調(diào)處理器可從可用性表中請求處理器。返回可用標(biāo)志 (available—flag)設(shè)為"0"的最低處理器。然后協(xié)調(diào)處理器可將與可 用處理器相關(guān)的可用標(biāo)志設(shè)為'T,,從而啟動從屬處理器。如果無處
理器可用,請求將會返回錯誤??蛇x地,可由協(xié)調(diào)處理器根據(jù)與請求 的將要執(zhí)行的工作相關(guān)聯(lián)的優(yōu)先級分配處理器。根據(jù)優(yōu)先權(quán)方案進行 資源分配的技術(shù)是本領(lǐng)域公知的。圖10圖解說明了處理器分配的三個
優(yōu)選部分協(xié)調(diào)處理器啟動操作、從屬處理器操作以及通過中斷響應(yīng) 進行協(xié)調(diào)處理器結(jié)果處理。 逐步啟動從屬處理器
1. 協(xié)調(diào)處理器將用于線程運行的參數(shù)壓入其自身的堆棧中。這些 參數(shù)可包括線程的起始地址,線程的源存儲器、線程的目的存儲器 以及最后的參數(shù)計數(shù)(parameter—count )。
2. 協(xié)調(diào)處理器請求可用的處理器。
3. 處理器分配邏輯返回設(shè)置了相關(guān)的可用標(biāo)志并清除了相關(guān)的已 完成標(biāo)志(done—flag)的最低編號的從屬處理器的號碼,或者返回錯 誤。
4. 如果返回錯誤,協(xié)調(diào)處理器則重試請求直到從屬處理器變得可 用,或者執(zhí)行某些特殊的操作來處理錯誤。
5. 如果返回可用的處理器號碼,協(xié)調(diào)處理器則清除指示的處理器 的可用標(biāo)志。該操作將堆棧參數(shù)的參數(shù)計數(shù)號壓入所選處理器的堆棧 中。將已完成標(biāo)志清零。
6. 從屬處理器獲取棧頂元素,并將其傳送給從屬處理器的程序計 數(shù)器。
7. 然后從屬處理器將程序計數(shù)器指示的存儲器列讀取到指令高速 緩沖存儲器中。
8. 從屬處理器開始從指令高速緩沖存儲器的起始處開始執(zhí)行指 令。第一條指令將可能從堆棧獲取調(diào)用參數(shù)。
9. 從屬處理器執(zhí)行指令高速緩沖存儲器中的線程。當(dāng)線程完成時, 檢查其相關(guān)的已完成標(biāo)志的狀態(tài)。如果設(shè)置了已完成標(biāo)志,則等待直 到已完成標(biāo)志被清除,從而指示協(xié)調(diào)處理器已處理了任何先前結(jié)果。
10. 如果與從屬處理器相關(guān)的中斷向量設(shè)置為-I,則不通過設(shè)置已 完成標(biāo)志而創(chuàng)建中斷。因此協(xié)調(diào)處理器可輪詢已完成標(biāo)志是否設(shè)置。
當(dāng)協(xié)調(diào)處理器檢測到已設(shè)置了已完成標(biāo)志時,其則可處理從屬處 理器的結(jié)果,并可重新指定從屬處理器進行新的工作。當(dāng)從屬處理器 的結(jié)果已經(jīng)被處理時,相關(guān)的從屬處理器則將清除相關(guān)的已完成標(biāo)志。
如果與從屬處理器相關(guān)的中斷向量不等于-1,那么,設(shè)置相關(guān)的 已完成標(biāo)志將會造成協(xié)調(diào)處理器被中斷,并且在中斷向量地址開始執(zhí) 行中斷處理程序。
如果相關(guān)的可用標(biāo)志也已設(shè)置,協(xié)調(diào)處理器則也可讀取被壓入到 從屬堆棧的返回參數(shù)。
中斷處理程序?qū)⑻幚韽膶偬幚砥鞯慕Y(jié)果,并且可能為重新指定從 屬處理器進行新的工作。當(dāng)從屬處理器的結(jié)果已被處理時,運行在協(xié)
ll.如果已完成標(biāo)志被清除,從屬處理器則設(shè)置其相關(guān)的已完成標(biāo) 志,并保存新的起始時間。從屬處理器可繼續(xù)工作或可返回可用狀態(tài)。 為了返回可用狀態(tài),從屬處理器可將返回參數(shù)壓入其堆棧中,然后進 行堆棧計數(shù)并設(shè)置其可用標(biāo)志。
存儲器鎖定
TOMI處理器通過其高速緩沖存儲器對系統(tǒng)存儲器進行讀和寫。 一次對一個完全高速緩沖存儲的列進行讀或?qū)?。任何存儲器可讀取系 統(tǒng)存儲器的任何部分。單獨的處理器可將存儲器的列鎖定為專用于排 它地進行寫操作。該鎖定機制避免了處理器之間的存儲器寫沖突。
建議的應(yīng)用程序
并行操作有效地加速了可分為獨立的工作片段用于各處理器的應(yīng) 用程序。 一個容易分解的應(yīng)用程序是機器人視覺的圖像處理。圖像處 理算法包括相關(guān)性、均衡、邊緣識別以及其它操作。許多操作都是由 矩陣處理執(zhí)行。如圖ll所示,該算法常常很好地分解。
在圖11中,示例性的圖像映射顯示了 24個處理器,其中每個處 理器被分配以處理全部圖像映射的 一個矩形子集中的圖像數(shù)據(jù)。
圖12示出了在一個實施方式中如何分配TOMI系統(tǒng)RAM。 一塊 系統(tǒng)RAM保存圖像捕捉像素,且另 一個塊保存處理的結(jié)果。
在操作中,協(xié)調(diào)處理器分配了 DMA信道,以每隔一段固定的時 間就將圖像像素從外部源傳送到內(nèi)部系統(tǒng)RAM。圖像捕捉的速度通常 是60個圖像/秒。
然后,協(xié)調(diào)處理器通過將待由X寄存器使用的圖像映射的地址、 待由Y寄存器使用的已處理圖像的地址、2的參數(shù)計數(shù)、以及圖像處 理算法的地址壓入堆棧,而使從屬處理器l可用。協(xié)調(diào)處理器隨后類 似地通過25使處理器2可用。處理器繼續(xù)以并行的方式獨立執(zhí)行,直 到圖像處理算法完成。
當(dāng)算法完成時,每個處理器在處理器可用性表中設(shè)置其相關(guān)的已 完成標(biāo)志。該結(jié)果由協(xié)調(diào)處理器處理,該協(xié)調(diào)處理器對完成進行輪詢 或?qū)?完成"事件上的中斷做出響應(yīng)。
圖13示出了 64個處理器的單片陣列的示例性平面布置圖。
可理解的是,本發(fā)明僅通過實施例參考附圖進行了描述,可對本 發(fā)明進行改進和修改,而不偏離本發(fā)明的范圍或精神。
權(quán)利要求
1. 一種系統(tǒng),包括位于單片芯片上的多個并行處理器;以及計算機存儲器,其位于所述芯片上并能夠被每個所述處理器訪問;其中,每個所述處理器都能夠操作以處理最小(deminimis)指令集,并且,每個所述處理器都包括本地高速緩沖存儲器,所述本地高速緩沖存儲器用于所述處理器內(nèi)的至少三個專用寄存器中的每個。
2. 如權(quán)利要求1所述的系統(tǒng),其中每個所述本地緩沖存儲器的大 小等于所述芯片上的隨機存取存儲器的 一行。
3. 如權(quán)利要求l所述的系統(tǒng),其中具有相關(guān)高速緩沖存儲器的所 述至少三個專用寄存器包括指令寄存器、源寄存器和目的寄存器。
4. 如權(quán)利要求1所述的系統(tǒng), 組成。
5. 如權(quán)利要求1所述的系統(tǒng), 以處理單線程。
6. 如權(quán)利要求1所述的系統(tǒng), 外的每個指令的搡作數(shù)。
7. 如權(quán)利要求1所述的系統(tǒng), 數(shù)寄存器。
8. 如權(quán)利要求1所述的系統(tǒng), 寄存器自動遞減。其中,所述最小指令集由七條指令其中,每個所述處理器都能夠操作其中,累加器是用于除了遞增指令其中,每條指令的目的地總是操作其中,三個寄存器自動遞增且三個
9. 如權(quán)利要求l所述的系統(tǒng),其中,完成每條指令均只需要一個 時鐘周期。
10. 如權(quán)利要求1所述的系統(tǒng),其中,所述指令集不包括分支指 令和跳轉(zhuǎn)指令。
11. 如權(quán)利要求1所述的系統(tǒng),其中,每條指令的長度最多為8 比特。
12. 如^l利要求1所述的系統(tǒng),其中,單一的主處理器負(fù)責(zé)管理 每個所述并行處理器。
13. —種系統(tǒng),包括位于單片芯片上的多個并行處理器;以及計算機存儲器,其位于所述芯片上,并能夠被每個所述處理器訪問;其中,每個所述處理器都能夠操作以對指令集進行處理,所述指 令集被優(yōu)化用于線程級并行處理。
14.如權(quán)利要求13所述的系統(tǒng),其中,每個所述處理器都能夠操 作以處理最小指令集。
15. 如權(quán)利要求13所述的系統(tǒng),其中,每個所述處理器都包括本 地高速緩沖存儲器,所述高速緩沖存儲器用于所述處理器中至少三個 專用寄存器中的每個。
16. 如權(quán)利要求15所述的系統(tǒng),其中,每個所述本地高速緩沖存 儲器的大小等于所述芯片上的隨機存取存儲器的 一行。
17. 如權(quán)利要求15所述的系統(tǒng),其中,所述至少三個專用寄存器包括指令寄存器、源寄存器和目的寄存器。
18. 如權(quán)利要求14所述的系統(tǒng),其中,所述最小指令集由七條指令組成。
19. 如權(quán)利要求13所述的系統(tǒng),其中,每個所述處理器都能夠操 作以處理單線程。
20. 如權(quán)利要求13所述的系統(tǒng),其中,單一的主處理器負(fù)責(zé)管理 每個所述并行處理器。
21. —種線程級并行處理方法,其中,所述方法利用單一芯片上 的主處理器、多個并行處理器以及計算機存儲器實現(xiàn),其中所述多個 處理器中的每個都能夠操作以處理最小指令集以及處理單線程,所述 方法包括(a) 為所述多個處理器的每個處理器中的三個專用寄存器中的每 個寄存器分配本地高速緩沖存儲器;(b) 將所述多個處理器中一個分配以處理單線程;(c) 由所述處理器處理每個分配的線程;(d) 由所述處理器處理來自每個線程的結(jié)果;以及(e) 在線程處理完成之后,對所述多個處理器的中的一個進行解分配。
22. 如權(quán)利要求21所述的方法, 令組成。
23. 如權(quán)利要求21所述的方法, 令的長度最大為8比特。
24. 如權(quán)利要求21所述的方法, 指令均在一個時鐘周期內(nèi)處理。其中,所述最小指令集由七條指 其中,所述最小指令集中每條指 其中,所述最小指令集中的每條
全文摘要
一方面,本發(fā)明包括一種系統(tǒng),該系統(tǒng)包括(a)位于單片芯片上的多個并行處理器;以及(b)芯片上并能夠被每個處理器訪問的計算機存儲器。其中,每個處理器都可操作以處理最小指令集,并且每個處理器都包括本地高速緩沖存儲器。本地高速緩沖存儲器分別用于處理器內(nèi)的至少三個專用寄存器。另一方面,本發(fā)明還包括這樣一種系統(tǒng),該系統(tǒng)包括(a)位于單片芯片上的多個并行處理器;以及(b)位于芯片上并能夠被每個處理器訪問的計算機存儲器。其中,每個處理器都可操作以處理被優(yōu)化用于線程級并行處理的指令集。
文檔編號G06F9/44GK101395578SQ200780008047
公開日2009年3月25日 申請日期2007年2月5日 優(yōu)先權(quán)日2006年2月3日
發(fā)明者拉塞爾·H·菲什三世 申請人:拉塞爾·H·菲什三世