TW563063B - Loop handling for single instruction multiple datapath processor architectures - Google Patents
Loop handling for single instruction multiple datapath processor architectures Download PDFInfo
- Publication number
- TW563063B TW563063B TW090127898A TW90127898A TW563063B TW 563063 B TW563063 B TW 563063B TW 090127898 A TW090127898 A TW 090127898A TW 90127898 A TW90127898 A TW 90127898A TW 563063 B TW563063 B TW 563063B
- Authority
- TW
- Taiwan
- Prior art keywords
- item
- data
- total number
- loop
- passes
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/34—Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
- G06F9/345—Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes of multiple operands or results
- G06F9/3455—Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes of multiple operands or results using stride
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/80—Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
- G06F15/8007—Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors single instruction multiple data [SIMD] multiprocessors
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/32—Address formation of the next instruction, e.g. by incrementing the instruction counter
- G06F9/322—Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address
- G06F9/325—Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address for loops, e.g. loop detection or loop counter
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/34—Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
- G06F9/345—Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes of multiple operands or results
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3885—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- Advance Control (AREA)
- Multi Processors (AREA)
- Devices For Executing Special Programs (AREA)
Description
563063 五、發明說明(1) 本發明是有關於多資 items)在單指令多資路=陣列(array of data 平行處理是處理多器架構的迴圈處理運算。 資料路徑處理器為平行處二車=的有效方法。單指令多 制多重資料路徑。每_資^列、,、。構’其中由單指令來控 項。舉-簡單的例子,單時間内只能處理一資料 料路徑,而每-資料路料路徑處理器有四個資 -具有八個資料項的陣列之迴圈運作來處理 配置是可變的,其中一枓員。貝料路徑和資料項的 第一資料路徑處^陣列的一通過(first Pass) ’ 陣列的第二資料項,第姓資,項’第二資料路徑處理 項,第四資料路徑處理 ::㈣的第二貝枓 -資料路徑處理陣列的第五資資:項。第二通過’第 列的第六資料項,第三 j,,第二資料路徑處理陣 第四資枓路徑處理陣列的第八資料項。 貞针貝 當陣列的資料項數目不是資踗 有錯誤產生。修改上述簡單數的整數倍時就會 徑,具有七筆資有四個資料路 路徑沒有陣列的第八資料項元素可處;通;; 二次通過時去能(disable)第、,。果除非在第 料路栌可炉供钽认番命乐四#科路役’不然第四資 =::覆寫記憶體其他的資料結構。 避免這種錯誤地覆寫的一種方法 換句話說’資料項陣列的數目為資料路徑小, 種方法是假設程式設計師事先控制好資料項在陣列的口配故 第5頁 1057-4466-PF;Brad.ptd 五、發明說明(2) 置,可是一般並 傳統上,單 )位元連結到每 能。資料路徑可 能。 本發明的目 徑處理器運算陣 其中一個,包括 和上述陣列來決 所對應的資料路 在較佳實施 料路徑執行處理 小,資料路徑的 多少資料路徑) 剩餘平行迴圈通 資料項在記 (unity-stride 沒有。 指令多 一資料 能會超 處理器的處理器致能(PE :二控制資料路徑何時致能或去 ° 列時,這可以使資料路徑去 列的資 依據單 定是否 徑之處 例中, 運算的 數目( 。處理 過的數 憶體的 ),連 揭露一種方 料元素時, 指令多資料 致此上述資 理狀態。 資訊包括資 平行迴圈通 例如,單指 狀態是迴圈 目° 配置可能是 續或條狀間 法’當單指令多資料路 是否致能複數資料路徑 路徑處理器的參數資訊 料路徑和陣列的資料項 料項在記憶體配置,資 過之總數,陣列的大 令多資料路徑處理器有 處理運算時資料路徑的 單一間隔 隔(str i ped-str i de 本發明的另一個目 令當處理資料項陣列時 徑其中一個。 較佳實施例中,指 平行迴圈通過次數之平 序列迴圈通過次數之序 的在於包括迴圈控制指令的電腦指 能明確指定致能複數處理器資料路 令包括處理陣列時能明確指定剩餘 行計數攔位和處理陣列時明確指定 列計數攔位。
563063 五 發明說明(3) 本發明的另’一個目的在於處理器包括 存樓的算椒碟給抑_ / 暫存標和輕合暫 ▲以异術邏輯早兀(arithmetic logic 1JnW、 专 式控制儲存卩办冲七 uni〇 ,和程 W减仔&來儲存當處理陣列的資料 狂 生致能多|咨社7々斤4丄 1于储存令處理器產 夕数貝枓路徑其中一個的迴圈控制指令。 度 本發明實施例的其餘目的為具有下 點。 I 1 N 個以上的優 Π!ίΙ解資料項陣列的數目而去能資料路徑。 本方法可適用變動的記憶體配置方法。 迴圈控制指令免除程式設計師 的為料數目為資料路徑數目的整數 本發明的其餘優點由下列詳細 利範圍中表示。 迴圈控制指令節省指令的記憶體,因 :大的單指令來明確指定決定是否致能和去力能 須的許多運作,如此也可節省暫存空間。去枓路僅所 必須強制使資料項陣列 倍。 的4¾述和圖例和申請專 圖式簡單說明: 圖:單指令多資料路徑處理器的方塊流程圖; 第2圖:具有4個資料路徑的單指令多資 以單-間隔的配置記憶體如何控制具有3〇資料項心: 迴圈處理的資料表; 早歹i之 第3圖:迴圈控制指令的語法; 第4圖··具有4個資料路徑的單指 以連續配置記憶體如何控制具有3 〇資 令多資料路徑處理器 料項的陣列之迴圈處
1057-4466-PF;Brad.ptd 第7頁 563063 五、發明說明(4) 理的資料表; 第5圖:結合迴圈分歧(branch )的迴圈控制指令的 語法(syntax );以及 第6圖:在迴圈處理時控制單指令多資料路徑處理器 的資料路徑致能的處理流程圖。 符號說明: 1 2〜指令快取; 14〜控制邏輯; 16〜序列資料路徑; 20〜記憶體; 1 0〜單指令多資料路徑處理器; 22a.22b.22c.22d.22n 〜處理器致能; 18a· 18b· 18c· 18d· 18η〜平行資料路徑。 實施例之說明·· 參考第1圖,單指令多資料路徑處理器1 〇包括指令快 取1 2,控制邏輯1 4,序列資料路徑丨6和複數平行資料路徑 標,為18a,18b,18c,18,···,18n。平行資料路徑“寫 ^記憶體20。每一資料路徑18皆連結到處理器致能(pE)位 元22。具體地說,平行資料路徑18a連結到處理器致能 (PE)位元22a,平行資料路徑18b連結到處理器致能(pE)位 元22b,以下類推。當PE致能時,所連結的平行資料路徑 致能且平行資料路徑寫入資料項。舉例而言,pE 22&致能 時,平行資料路徑18a寫入資料項;PE 22b致能時, 資料路徑18b寫入資料項。如果pE 22n致能時,平行資料
1057-4466-PF;Brad.ptd 第8頁 563063 五、發明說明(5) 路徑18η窝X咨^ = 徑去能且平行資钭路。去能時,所連結的平行資料路 :订貝料路彼無法寫入資料項。 時’控制邏輯1 4從指今供取1 2喊而人 往序列資料路秤16决:二“决取12嗔取指♦。指令送 別處理器的致*;位令給平?資料路徑18。除非個 時讀取和同時寫入/ I旎’否則母-平行資料路徑18同 錯誤^=免未使用到的資料路徑超越資料項陣列末端且 理運算時一個以卜二 、枓、、、口構,在貝料項陣列迴圈處 » 二Γ指令多資料路徑處理器和陣列的 車列相關的資料路徑處理狀態之資訊來飛速地決定 貢料路徑的致銥盥土 Ah ^ 0 义心〜/六疋 括:(1)迴圈户i運不疋由人工來決定。此資訊包 巧資料路徑所執行迴圈通過的數目(這指的是陣列的十大 '、_ ’(3)在迴圈處理運算時剩餘平行通過的數目,(八 配資料項陣列的資料路徑在記憶體的配置,(5)平行資 f的數目m據迴圈處理運算所提供的資訊來致 =資料路徑的處理器致能位元(因而致能或去能資料路 4工)。 有許多種記憶體配置方法來處理單指令多資料路徑 理器的資料項陣列。最簡單的記憶體配置是複數資料路徑 (NDP)的每一個取迴圈的第重覆項。這種記憶體配置稱 單一間隔(unity stride)。 以第2圖為例,資料表圖解表示,以單一間隔記憶體 563063 五、發明說明(6) 分配置的迴圈處理,從〇到29共三 料路徑,標示為資料路徑〇(Dp〇), n f項陣列由具有4資 路徑2(DP2),資料路徑3(Dp3)的 二,徑〗(奸〗),資科 來個別處理。為了處理此陣列,資料路徑處理器 第一次平行迴圈通過,由資料路秒〇久平行迴圈通過。 2和3來處理資料項4,5,6和7。最後一 Ϊ、 4徑〇,1, 也就是第八次平行迴圈通過,由 =平行迴路通過, 項28和29,而資料路徑2和3必須去能以=和1來處理資料 儲存在記憶體的其他資料。、 越陣列而覆寫 =2圖的資料表說明為何記憶 时 隔。在任一資料迴圈通過的每一平 置稱為早一間 的”間隔”為一。這是說在一、㈤科路徑處理資料項 徑處理的兩兩資料項差異為]由平行資料路
的^ 7隔配置中,標示(emerge)出處理的資%I 迴圈通過中僅有二資料 圖解表^己戒在最後並列 :月的:號是普通的;t資料路徑的陣:地’第2圖 雜但仍可從時間上視別^二二 i餘通過總數(這指陣“nr, 參考第3: 過時何時將個別資料路裎去-: 處理操作時剩餘平沿圈、處理器致能指令30包括表示在迴此圈 千订迴圈通過的數目之搁位c,4= 1057-4466-PF;Brad.ptd 第10頁 563063 五、發明說明(7) 二處理資料項陣列所需的通過總數目之攔位L。 ^I圮憶體配置指定X。參考第£圖來舉例,記憶體 gp丘對應到單一間隔記憶體配置,換句話說,L = 30 PI? Π · Ί 料項而要求序列引擎結構以3 0迴圈通過。 元的形!熊。不貝料路徑1在平行迴圈通過J·的處理器致能位 除以ί:所舉例的單一間隔,序列迴圈通過的總數 數辦加到下 '的總數來決定平行迴圈通㊣的總冑。並把總 ^30/4 ° 5 疋M/4二則增加到下一個整數值8。 元連牡:表間::2號和c和[的值中得知,處理器致能位 到表不資料路徑的資料路徑索引i和資料項丨,如杲 行迴圈通過的剩餘數 過總數還少時,致能PE[i,,T。路瓜的索引,比序列迴圈通 此外,單指令多資料路徑處 以第4圖為例,具有4資料路 令夕資料路徑處理器以連續問 的早指 理30資料項(0-29)。為了處理此ϋ ^置來實現如何處 次平行通過。第一次平行迴圈通=列:3=項,⑽ 和3來個別處理資料項〇,8,16和2貝二'路徑〇,1,2 過,由資料路徑0,丨,2和3來處理資料項^久平行迴圈通 :此步驟下去即產生記號。在此明確的例子9 ’1;和25。 過7和8中,去能資料路徑3以免覆寫在此3〇’資在料並行迴 第11頁 l〇57.4466.PF;Brad.ptd 563063
而其他資料路徑在每次 迴圈通過時都致 列後的記憶體 能0 田個別的μ #項卫作在鄰近t料 配置顯得很有肖。舉例,資料路栌 逆噴間^己憶體 古次鈔适Q τ . 貝料路佐0在平行迴圈通過4時已 有貝枓項3,平行迴圈通過5時處理資料項4 ^手一 迴圈通過時使用資料項5。這種 個平打 七陰础& 纪種5己憶體配置稱作連續間隔 ’目為每一資料路徑動作在陣列的連續區間。 例體配置中’以最後二平行迴圈通過為
::固上不/早一資料路徑在執行時須要去能。對應到 ΓΛ/ 置減x = GGNT表示㈣間隔記憶體配 置的方式。對應第4圖的描述來舉例,序列迴圈通過的總 數除以資料路徑的總數來決定處理f # p車列項&平行迴圈 通過的總數,並把總數增加到下一個整數值。舉例而古, 平行迴圈通過的總數是30/4,則增加到8。 從連續間隔記憶體配置記號和c值和L值,處理器致能 位元連結到資料路徑索引i和資料項〗,這表示,如果平行 迴圈通過的總數乘以資料路徑索引加上平行迴圈通過的總 數減去剩餘平行迴圈通過的數目比序列迴圈通過的總數少 則致能PE[i,j]。
交錯式記憶體允許一次執行許多動作。交錯式記憶體 的記憶體排組(bank)的數目M_般而言為二的次方,因為 這^許使用最少位址位元來完成記憶排組的選取。如果讀 寫和·?的間隔也是二的次方,交錯式記憶體就沒有任何幫 助,因為所有的位址都嘗式要對相同的記憶體排組動作。
1057-4466-PF;Brad.ptd $ 12頁 563063 五、發明說明(9) 以Μ = 4為例,而間隔也為4,而讀、 4,8,等等,而全部由記憶排組〇來控制的位址將是0, 2、3將為怠狀(idle)。 卫’而記憶排組1、 為了避免所有的資料項由相同的記 值可以選成奇數。如果Μ是二的次方/則思排處理,間隔的 均等地擴大記憶排Μ的位址。因為任何奇=隔選為奇數可 此皆為質數(prime)。以30項的陣列為例,與,的次方彼 隔選9而非8。資料路徑0對應到陣列的〇 1連績配置時間 對應到陣列的9到17項,資料路徑2 |項,資料路徑1 項,資料路徑3對應到陣列的26到29對項應=/_8到26 6項也就是陣列的30到35項時關閉。這$二路徑3在最後 間隔記憶體配置相對。 己隐體配置與條狀 數产:=隔記憶體配置結構中,由序列迴圈通過的總 決疋:理陣列的資料項所需的平行迴圈通過總數,數值 I*配窨Τ Ϊ3圖》之隐體-配置指定x = S表示條狀間隔記憶 .,、古志。,S器致能位元連結到資料路徑*引i *資料項 W >不’、如果平行迴圈通過的總數乘以資料路徑索引 & $丨、、。行^圈通過的總數減去剩餘平行迴圈通過的數目比 序列迴圈通過的總數少則致能p E [ i j ]。 社2考第5圖所不’迴圈處理器致能指令結合迴圈分歧 =V^anch instructi〇n)70。結合指令7〇依據記憶體配 、’·口 平行迴圈通過的總數和剩餘平行迴圈通過的數 目,和檢測平行迴圈通過的剩餘數目是否為零來設定先前
563063 五、發明說明(10) 所述的處理器致能位元。如果平行迴圈通過的剩餘數目比 零大,執行分歧(例如,goto PC + disPiacement),來 行下個迴圈運算通過。否則,離開迴圈並繼續處理。另一 例子,減少剩餘平行迴圈通過的數目且繼續迴 算。 參考第6圖,在迴圈處理流程100 ,控制單指令多資料 路徑處理器資料路徑的致能來決定處理陣列的所有資料項 之序列迴圈通過的數目流程102決定處理陣列的剩餘平行、 迴圈通過之數目。流程104測試記憶體配置結構是否為單 一間隔配置。如果記憶體配置結構是單一間隔配置/且流 程108如果平行迴圈通過的總數減去剩餘平行迴圈通過的^ 數目、,全乘以資料路徑的數目加上資料路徑索引比序 圈通過的總數少時,則致能杳斜故 處理資料項。 枓路徑的處理器致能位元來 如果記憶體配置結構不是輩一簡 試記憶體配置結構是否為隔β ;配f ’流程10。測 結構為連續間隔配置配要置:如果記憶體配置 數乘以資料路徑索引加果二行迴圈通過的總 行迴圈通過的數目比序列迴二、總數減去剩餘平 π 奴圈通過的總數少時,則较妒咨 料路徑的處理器致能位元來處理資料項。 貝1致靶貝 最後,如果記憶體配置处 0 時,流程m測試記憶體配置:構接不,早一或連續間隔配置 如果記憶㈣置結構為連續間。構疋否為條狀間隔配置。 行迴圈通過的總數乘以資铒^ σ名,且流程11 6如果平 貝枓路徑索引加上平行迴圈通過的 563063 五、發明說明(11) 總t減去剩餘平行迴圈通過的 少時,則致能資料路目比序列迴圈通過的總數 本發明的私社给工、处里态致能位元來處理資料項。 ^ )父實施例描述如上,然而,在不脫離本發 产夕月ί和範圍内,當可做些許的更動與潤飾,例如處理 較多數的資料項,依據記憶體配置的方法,將實用的查詢 表的同一時間上的標記展開。標記展開後,以上述的方法 來決定致能的路徭。此外,其餘實施例皆在下列申請專利 範圍内。
1057-4466-PF;Brad.ptd 第15頁
Claims (1)
- 5 ^063— ^^-β23:ι 90127898 六、申諸虞_ 修正 •一種有 「吹..: 數資料 法,包 依 資料路 致能資 2. 包括上 3. 包括上 4· 豳货舌上 總數。 5. 指上述 6 · 狀態為 7. 包括上8. 包括上 處理運 資料路 目,或 路徑處 括: 據單指 徑相關 料路徑 如申請 述資料 如申請 述配置 如申請 述資料 如申請 陣列的 如申請 在上述 如申請 述處理 如申請 述資料 算的平 徑執行 上述處 關於是 理器其 令多資 的陣列 〇 專利範 項在記 專利範 是否為 專利範 路徑執 專利範 大小〇 專利範 迴圈處 專利範 器資料 專利範 項在記 行迴圈 上述迴 理器資 否致能單指令多資料路徑處理器的複 中一個來運算資料項陣列的控制方 料路徑處理為和上述陣列的參數,和 資料項之處理狀態的資訊來決定是否 圍第1項所述之方法,其中上述資訊 憶體的配置。 ' 圍第2項所述之方法,其中上述資訊 單一、連續、條狀間隔。 、 圍第1項所述之方法,其中上述資訊 行迴圈處理運算時的平行迴圈通過的 圍第1項所述之方法’其中上述資訊 圍第1項所述之方法’其中上述處理 理運算時剩餘平行迴圈通過的數目。 圍第1項所述之方法’其中上述資訊 路徑的數目。 項所述之方法’其中上述資訊 憶體的配置’上述資料路徑執行迴圈 Ϊ過的總數’上述陣列的大小,上述 圈處理運算的剩餘承4 一、 餘十仃迴圈通過的數 料路徑的數目。1057-4466-PFl.ptc 第16頁 563063 年案號 90127898 六、申請專利範圍 9.如申請專利範固第8項所述之方法,其中 項在上述記憶體的配置為單一間隔。 、科 I 〇·如申請專利範圍第9項所述之方法,其 圈通過的總數除以上述資料路徑執行的總數,辦 Κ 一個整數值來決定上述平行迴圈通過的總數。θ 下 _i ]:讀 孑‘員 Λ ; > II ·如申請專利範圍第丨〇項所述之方法, 雩括: 丹甲致能包 由是否上述平行迴圈通過的總數減去剩 ,圈通過的數S乘以上述資料路徑執行的總數加上#=== 的數目小於上述序列迴圈通過的總數來決定。、 仏 1 12·如申請專利範圍第8項所述之方法,其中上 項在上述§己憶體的配置為連續間隔。 7料 1 3·如申請專利範圍第1 2項所述之方法,复中由 ||序列迴圈通過的總數除以資料路徑的數目並增加到下Μ 之整數值來決定上述平行迴圈通過的總數。 個 1 4·如申請專利範圍第丨3項所述之方法,复 括: t蚁旎包 由是否上述平行迴圈通過的總數乘以上述資料路句、 數目加上上述平行迴圈通過的總數減去上述剩餘平行=的 通過的數目小於上述序列迴圈通過的總數來決定。丁 κ圈 1 5 ·如申請專利範圍第8項所述之方法,复 為條狀間隔。 /、中上述配置 1 6 ·如申請專利範圍第丨5項所述之方法, 括·· ,、干致能包1057.4466.PFl.plc 第17頁 563063 A_η銮號 90127898 六、申請專利範圍 由是否上述平行迴圈通過的總數乘以資料路徑的數目 加上上述平行迴圈通過的總數減去上述剩餘平行迴、、 的數目小於上述序列迴圈通過的總數來決定。35圈通過 1 7· —種電腦可讀取之儲存媒體,其係用以儲 腦可執行之指令,上述電腦可執行之指令包括:予 " 好 迴圈控制指令在處理資料項陣列時能具體指 處理器資料路徑其中一個。 疋致此稷 ^ 18·如申請專利範圍第17項所述之電腦可讀 媒體,其中上述電腦可執行之指令指令更包括取之儲存 目的時具體指定上述剩餘平行迴圈通過的數 i. Yy9./1巾請專利範圍第17項所述之電腦可讀取之儲存 媒體’其中上述電腦可執行之指令更包括: ::丨 處理上述陣列時具體指定上述序列迴圃捅把 ::序列計數攔位。 a码圈通過的數目的 20. 一種處理器,包括: 一暫存檔; 來儲:Πΐϊϊΐ ’搞合上述暫存槽和程式控制儲存區 理器資;^ΓΓ列時’令上述處理器產生致能多數處 寸塔從其中一個的迴圈控制指令。
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US09/711,556 US6732253B1 (en) | 2000-11-13 | 2000-11-13 | Loop handling for single instruction multiple datapath processor architectures |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| TW563063B true TW563063B (en) | 2003-11-21 |
Family
ID=24858560
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| TW090127898A TW563063B (en) | 2000-11-13 | 2001-11-09 | Loop handling for single instruction multiple datapath processor architectures |
Country Status (8)
| Country | Link |
|---|---|
| US (2) | US6732253B1 (zh) |
| JP (1) | JP2004513455A (zh) |
| KR (1) | KR20030072354A (zh) |
| CN (1) | CN1484786A (zh) |
| AU (1) | AU2002234101A1 (zh) |
| DE (1) | DE10196879T5 (zh) |
| TW (1) | TW563063B (zh) |
| WO (1) | WO2002039271A1 (zh) |
Families Citing this family (30)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US7337437B2 (en) * | 1999-12-01 | 2008-02-26 | International Business Machines Corporation | Compiler optimisation of source code by determination and utilization of the equivalence of algebraic expressions in the source code |
| US8176108B2 (en) * | 2000-06-20 | 2012-05-08 | International Business Machines Corporation | Method, apparatus and computer program product for network design and analysis |
| EP1346279A1 (en) * | 2000-12-07 | 2003-09-24 | Koninklijke Philips Electronics N.V. | Digital signal processing apparatus |
| GB2382672B (en) * | 2001-10-31 | 2005-10-05 | Alphamosaic Ltd | Repeated instruction execution |
| DE10206830B4 (de) * | 2002-02-18 | 2004-10-14 | Systemonic Ag | Verfahren und Anordnung zur Zusammenführung von Daten aus parallelen Datenpfaden |
| US7493607B2 (en) | 2002-07-09 | 2009-02-17 | Bluerisc Inc. | Statically speculative compilation and execution |
| US20050114850A1 (en) | 2003-10-29 | 2005-05-26 | Saurabh Chheda | Energy-focused re-compilation of executables and hardware mechanisms based on compiler-architecture interaction and compiler-inserted control |
| US7996671B2 (en) * | 2003-11-17 | 2011-08-09 | Bluerisc Inc. | Security of program executables and microprocessors based on compiler-architecture interaction |
| US7171544B2 (en) * | 2003-12-15 | 2007-01-30 | International Business Machines Corporation | Run-time parallelization of loops in computer programs by access patterns |
| US7903555B2 (en) * | 2003-12-17 | 2011-03-08 | Intel Corporation | Packet tracing |
| US8607209B2 (en) | 2004-02-04 | 2013-12-10 | Bluerisc Inc. | Energy-focused compiler-assisted branch prediction |
| US7937557B2 (en) | 2004-03-16 | 2011-05-03 | Vns Portfolio Llc | System and method for intercommunication between computers in an array |
| US20060101256A1 (en) * | 2004-10-20 | 2006-05-11 | Dwyer Michael K | Looping instructions for a single instruction, multiple data execution engine |
| WO2006057949A2 (en) * | 2004-11-23 | 2006-06-01 | Efficient Memory Technology | Method and apparatus of multiple abbreviations of interleaved addressing of paged memories and intelligent memory banks therefor |
| US8190809B2 (en) * | 2004-11-23 | 2012-05-29 | Efficient Memory Technology | Shunted interleave for accessing plural memory banks, particularly those having partially accessed cells containing data for cache lines |
| US7904695B2 (en) * | 2006-02-16 | 2011-03-08 | Vns Portfolio Llc | Asynchronous power saving computer |
| US7966481B2 (en) | 2006-02-16 | 2011-06-21 | Vns Portfolio Llc | Computer system and method for executing port communications without interrupting the receiving computer |
| US7904615B2 (en) | 2006-02-16 | 2011-03-08 | Vns Portfolio Llc | Asynchronous computer communication |
| US7913069B2 (en) * | 2006-02-16 | 2011-03-22 | Vns Portfolio Llc | Processor and method for executing a program loop within an instruction word |
| US20070294181A1 (en) * | 2006-05-22 | 2007-12-20 | Saurabh Chheda | Flexible digital rights management with secure snippets |
| US20080126766A1 (en) | 2006-11-03 | 2008-05-29 | Saurabh Chheda | Securing microprocessors against information leakage and physical tampering |
| US7493475B2 (en) * | 2006-11-15 | 2009-02-17 | Stmicroelectronics, Inc. | Instruction vector-mode processing in multi-lane processor by multiplex switch replicating instruction in one lane to select others along with updated operand address |
| US20080154379A1 (en) * | 2006-12-22 | 2008-06-26 | Musculoskeletal Transplant Foundation | Interbody fusion hybrid graft |
| US9164770B2 (en) | 2009-10-23 | 2015-10-20 | Mindspeed Technologies, Inc. | Automatic control of multiple arithmetic/logic SIMD units |
| GB2486485B (en) | 2010-12-16 | 2012-12-19 | Imagination Tech Ltd | Method and apparatus for scheduling the issue of instructions in a microprocessor using multiple phases of execution |
| KR20120074762A (ko) * | 2010-12-28 | 2012-07-06 | 삼성전자주식회사 | 재구성 가능한 심드 아키텍처 기반의 컴퓨팅 장치 및 방법 |
| CN103491315A (zh) * | 2013-08-09 | 2014-01-01 | 北京中传视讯科技有限公司 | 视频数据处理方法、装置以及包括该装置的电子设备 |
| US20150100758A1 (en) * | 2013-10-03 | 2015-04-09 | Advanced Micro Devices, Inc. | Data processor and method of lane realignment |
| KR102202575B1 (ko) * | 2013-12-31 | 2021-01-13 | 삼성전자주식회사 | 메모리 관리 방법 및 장치 |
| KR102332523B1 (ko) | 2014-12-24 | 2021-11-29 | 삼성전자주식회사 | 연산 처리 장치 및 방법 |
Family Cites Families (81)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US4101960A (en) | 1977-03-29 | 1978-07-18 | Burroughs Corporation | Scientific processor |
| US4138720A (en) | 1977-04-04 | 1979-02-06 | Burroughs Corporation | Time-shared, multi-phase memory accessing system |
| US4181942A (en) | 1978-03-31 | 1980-01-01 | International Business Machines Corporation | Program branching method and apparatus |
| JPS5616248A (en) | 1979-07-17 | 1981-02-17 | Matsushita Electric Ind Co Ltd | Processing system for interruption |
| US4435758A (en) | 1980-03-10 | 1984-03-06 | International Business Machines Corporation | Method for conditional branch execution in SIMD vector processors |
| US4434461A (en) | 1980-09-15 | 1984-02-28 | Motorola, Inc. | Microprocessor with duplicate registers for processing interrupts |
| SE424581B (sv) | 1981-08-21 | 1982-07-26 | Ibm Svenska Ab | Metod och anordning for adressering av ett minne |
| US4604695A (en) | 1983-09-30 | 1986-08-05 | Honeywell Information Systems Inc. | Nibble and word addressable memory arrangement |
| DE3479356D1 (en) | 1983-12-23 | 1989-09-14 | Hitachi Ltd | A data processor with control of the significant bit lenghts of general purpose registers |
| US5045995A (en) * | 1985-06-24 | 1991-09-03 | Vicom Systems, Inc. | Selective operation of processing elements in a single instruction multiple data stream (SIMD) computer system |
| GB2177526B (en) | 1985-06-24 | 1990-02-14 | Pixar | Selective operation of processing elements in a single instruction, multiple data stream (simd)computer system |
| US4896258A (en) | 1985-07-04 | 1990-01-23 | Hitachi, Ltd. | Data processor provided with instructions which refer to both tagged and tagless data |
| US4773038A (en) | 1986-02-24 | 1988-09-20 | Thinking Machines Corporation | Method of simulating additional processors in a SIMD parallel processor array |
| US5230079A (en) | 1986-09-18 | 1993-07-20 | Digital Equipment Corporation | Massively parallel array processing system with processors selectively accessing memory module locations using address in microword or in address register |
| US4985832A (en) | 1986-09-18 | 1991-01-15 | Digital Equipment Corporation | SIMD array processing system with routing networks having plurality of switching stages to transfer messages among processors |
| GB2211638A (en) | 1987-10-27 | 1989-07-05 | Ibm | Simd array processor |
| GB2201015B (en) | 1987-02-10 | 1990-10-10 | Univ Southampton | Parallel processor array and array element |
| JPS63245529A (ja) | 1987-03-31 | 1988-10-12 | Toshiba Corp | レジスタ退避復元装置 |
| US5111389A (en) | 1987-10-29 | 1992-05-05 | International Business Machines Corporation | Aperiodic mapping system using power-of-two stride access to interleaved devices |
| US5121498A (en) | 1988-05-11 | 1992-06-09 | Massachusetts Institute Of Technology | Translator for translating source code for selective unrolling of loops in the source code |
| US5038282A (en) | 1988-05-11 | 1991-08-06 | Massachusetts Institute Of Technology | Synchronous processor with simultaneous instruction processing and data transfer |
| US5136697A (en) | 1989-06-06 | 1992-08-04 | Advanced Micro Devices, Inc. | System for reducing delay for execution subsequent to correctly predicted branch instruction using fetch information stored with each block of instructions in cache |
| US5224214A (en) | 1990-04-12 | 1993-06-29 | Digital Equipment Corp. | BuIffet for gathering write requests and resolving read conflicts by matching read and write requests |
| US5157785A (en) | 1990-05-29 | 1992-10-20 | Wavetracer, Inc. | Process cell for an n-dimensional processor array having a single input element with 2n data inputs, memory, and full function arithmetic logic unit |
| US5193202A (en) * | 1990-05-29 | 1993-03-09 | Wavetracer, Inc. | Processor array with relocated operand physical address generator capable of data transfer to distant physical processor for each virtual processor while simulating dimensionally larger array processor |
| CA2045790A1 (en) | 1990-06-29 | 1991-12-30 | Richard Lee Sites | Branch prediction in high-performance processor |
| US5361363A (en) | 1990-10-03 | 1994-11-01 | Thinking Machines Corporation | Input/output system for parallel computer for performing parallel file transfers between selected number of input/output devices and another selected number of processing nodes |
| AU665521B2 (en) | 1990-10-03 | 1996-01-11 | Thinking Machines Corporation | Parallel computer system |
| JPH04293135A (ja) | 1991-03-20 | 1992-10-16 | Yokogawa Hewlett Packard Ltd | メモリアクセス方式 |
| US5361367A (en) | 1991-06-10 | 1994-11-01 | The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration | Highly parallel reconfigurable computer architecture for robotic computation having plural processor cells each having right and left ensembles of plural processors |
| EP0609372A1 (en) * | 1991-10-24 | 1994-08-10 | Intel Corporation | Data processing system |
| US5551039A (en) * | 1992-02-03 | 1996-08-27 | Thinking Machines Corporation | Compiling a source code vector instruction by generating a subgrid loop for iteratively processing array elements by plural processing elements |
| US5659778A (en) * | 1992-02-03 | 1997-08-19 | Tm Patents, L.P. | System and method of mapping an array to processing elements |
| JP2642039B2 (ja) | 1992-05-22 | 1997-08-20 | インターナショナル・ビジネス・マシーンズ・コーポレイション | アレイ・プロセッサ |
| WO1994003860A1 (en) | 1992-08-07 | 1994-02-17 | Thinking Machines Corporation | Massively parallel computer including auxiliary vector processor |
| US5479624A (en) | 1992-10-14 | 1995-12-26 | Lee Research, Inc. | High-performance interleaved memory system comprising a prime number of memory modules |
| US5542074A (en) | 1992-10-22 | 1996-07-30 | Maspar Computer Corporation | Parallel processor system with highly flexible local control capability, including selective inversion of instruction signal and control of bit shift amount |
| JPH06162228A (ja) | 1992-11-26 | 1994-06-10 | Sharp Corp | データフロープロセッサ装置 |
| GB2273377A (en) * | 1992-12-11 | 1994-06-15 | Hughes Aircraft Co | Multiple masks for array processors |
| US5696958A (en) | 1993-01-11 | 1997-12-09 | Silicon Graphics, Inc. | Method and apparatus for reducing delays following the execution of a branch instruction in an instruction pipeline |
| EP0615190A1 (en) | 1993-03-11 | 1994-09-14 | Data General Corporation | Expandable memory for a digital computer |
| JPH0756892A (ja) | 1993-08-10 | 1995-03-03 | Fujitsu Ltd | マスク付きベクトル演算器を持つ計算機 |
| US5479324A (en) * | 1993-12-17 | 1995-12-26 | Barry; James E. | Illuminated gas tank or shell |
| JP3415693B2 (ja) | 1993-12-23 | 2003-06-09 | ノキア モービル フォーンズ リミテッド | インターリーブプロセス |
| US5524223A (en) | 1994-01-31 | 1996-06-04 | Motorola, Inc. | Instruction accelerator for processing loop instructions with address generator using multiple stored increment values |
| DE69505717T2 (de) | 1994-03-08 | 1999-06-24 | Digital Equipment Corp., Maynard, Mass. | Verfahren und Vorrichtung zur Feststellung und Durchführung von kreuzweisen Unterprogrammanrufen |
| US5590352A (en) | 1994-04-26 | 1996-12-31 | Advanced Micro Devices, Inc. | Dependency checking and forwarding of variable width operands |
| US5659722A (en) | 1994-04-28 | 1997-08-19 | International Business Machines Corporation | Multiple condition code branching system in a multi-processor environment |
| DE69519449T2 (de) | 1994-05-05 | 2001-06-21 | Conexant Systems, Inc. | Raumzeigersdatenpfad |
| US5590356A (en) | 1994-08-23 | 1996-12-31 | Massachusetts Institute Of Technology | Mesh parallel computer architecture apparatus and associated methods |
| US5608886A (en) | 1994-08-31 | 1997-03-04 | Exponential Technology, Inc. | Block-based branch prediction using a target finder array storing target sub-addresses |
| US5758176A (en) | 1994-09-28 | 1998-05-26 | International Business Machines Corporation | Method and system for providing a single-instruction, multiple-data execution unit for performing single-instruction, multiple-data operations within a superscalar data processing system |
| WO1996012228A1 (en) | 1994-10-14 | 1996-04-25 | Silicon Graphics, Inc. | Redundant mapping tables |
| JPH08249306A (ja) | 1995-03-09 | 1996-09-27 | Sharp Corp | データ駆動型情報処理装置 |
| US5737572A (en) | 1995-06-06 | 1998-04-07 | Apple Computer, Inc. | Bank selection logic for memory controllers |
| US5638533A (en) | 1995-10-12 | 1997-06-10 | Lsi Logic Corporation | Method and apparatus for providing data to a parallel processing array |
| US6292879B1 (en) | 1995-10-25 | 2001-09-18 | Anthony S. Fong | Method and apparatus to specify access control list and cache enabling and cache coherency requirement enabling on individual operands of an instruction of a computer |
| US5822606A (en) | 1996-01-11 | 1998-10-13 | Morton; Steven G. | DSP having a plurality of like processors controlled in parallel by an instruction word, and a control processor also controlled by the instruction word |
| US5727229A (en) * | 1996-02-05 | 1998-03-10 | Motorola, Inc. | Method and apparatus for moving data in a parallel processor |
| US5924117A (en) | 1996-12-16 | 1999-07-13 | International Business Machines Corporation | Multi-ported and interleaved cache memory supporting multiple simultaneous accesses thereto |
| US5870581A (en) | 1996-12-20 | 1999-02-09 | Oak Technology, Inc. | Method and apparatus for performing concurrent write operations to a single-write-input register file and an accumulator register |
| US5946222A (en) | 1996-12-20 | 1999-08-31 | Oak Technology, Inc. | Method and apparatus for performing a masked byte addition operation |
| JPH10254839A (ja) | 1997-03-11 | 1998-09-25 | Sony Corp | Simd制御並列プロセッサおよび演算方法 |
| EP0931290A1 (en) | 1997-03-21 | 1999-07-28 | International Business Machines Corporation | Address mapping for system memory |
| JPH10289305A (ja) | 1997-04-11 | 1998-10-27 | Mitsubishi Electric Corp | 画像処理装置および画像処理方法 |
| US6049330A (en) | 1997-08-28 | 2000-04-11 | Oak Technology, Inc. | Method and apparatus for optimizing storage of compressed images in memory |
| WO1999014685A1 (fr) | 1997-09-16 | 1999-03-25 | Hitachi, Ltd. | Machine de traitement des donnees et systeme de traitement des donnees |
| US5933650A (en) | 1997-10-09 | 1999-08-03 | Mips Technologies, Inc. | Alignment and ordering of vector elements for single instruction multiple data processing |
| US6216223B1 (en) | 1998-01-12 | 2001-04-10 | Billions Of Operations Per Second, Inc. | Methods and apparatus to dynamically reconfigure the instruction pipeline of an indirect very long instruction word scalable processor |
| JPH11272546A (ja) | 1998-03-23 | 1999-10-08 | Nec Corp | 可変長レジスタ装置 |
| US6067609A (en) | 1998-04-09 | 2000-05-23 | Teranex, Inc. | Pattern generation and shift plane operations for a mesh connected computer |
| US6121905A (en) | 1998-05-11 | 2000-09-19 | Oak Technology, Inc. | Method and apparatus for decoding JPEG symbols |
| US6130631A (en) | 1998-05-11 | 2000-10-10 | Oak Technology, Inc. | Method and apparatus utilizing a simplified content-addressable memory for JPEG decoding |
| US6052703A (en) | 1998-05-12 | 2000-04-18 | Oak Technology, Inc. | Method and apparatus for determining discrete cosine transforms using matrix multiplication and modified booth encoding |
| US6175892B1 (en) | 1998-06-19 | 2001-01-16 | Hitachi America. Ltd. | Registers and methods for accessing registers for use in a single instruction multiple data system |
| US6282628B1 (en) | 1999-02-24 | 2001-08-28 | International Business Machines Corporation | Method and system for a result code for a single-instruction multiple-data predicate compare operation |
| WO2001035224A1 (en) | 1999-10-26 | 2001-05-17 | Arthur D. Little, Inc. | Bit-serial memory access with wide processing elements for simd arrays |
| US6452864B1 (en) | 2000-01-31 | 2002-09-17 | Stmicroelectonics S.R.L. | Interleaved memory device for sequential access synchronous reading with simplified address counters |
| US6282623B1 (en) | 2000-02-04 | 2001-08-28 | Motorola Inc. | Method for digital signal processing, DSP, mobile communication and audi o-device |
| EP1130517B1 (en) | 2000-03-02 | 2004-05-26 | STMicroelectronics S.r.l. | Redundancy architecture for an interleaved memory |
| JP2002007359A (ja) | 2000-06-21 | 2002-01-11 | Sony Corp | Simd制御並列処理方法および装置 |
-
2000
- 2000-11-13 US US09/711,556 patent/US6732253B1/en not_active Expired - Fee Related
-
2001
- 2001-11-09 CN CNA018216390A patent/CN1484786A/zh active Pending
- 2001-11-09 AU AU2002234101A patent/AU2002234101A1/en not_active Abandoned
- 2001-11-09 JP JP2002541527A patent/JP2004513455A/ja active Pending
- 2001-11-09 KR KR10-2003-7006484A patent/KR20030072354A/ko not_active Withdrawn
- 2001-11-09 DE DE10196879T patent/DE10196879T5/de not_active Withdrawn
- 2001-11-09 TW TW090127898A patent/TW563063B/zh not_active IP Right Cessation
- 2001-11-09 WO PCT/US2001/050029 patent/WO2002039271A1/en not_active Ceased
-
2004
- 2004-02-03 US US10/770,787 patent/US20040158691A1/en not_active Abandoned
Also Published As
| Publication number | Publication date |
|---|---|
| AU2002234101A1 (en) | 2002-05-21 |
| CN1484786A (zh) | 2004-03-24 |
| KR20030072354A (ko) | 2003-09-13 |
| US6732253B1 (en) | 2004-05-04 |
| DE10196879T5 (de) | 2004-04-15 |
| WO2002039271A1 (en) | 2002-05-16 |
| JP2004513455A (ja) | 2004-04-30 |
| US20040158691A1 (en) | 2004-08-12 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| TW563063B (en) | Loop handling for single instruction multiple datapath processor architectures | |
| US12045614B2 (en) | Streaming engine with cache-like stream data storage and lifetime tracking | |
| KR102201935B1 (ko) | 로드-저장 명령 | |
| CN103543984B (zh) | 用于特殊相关应用的修改型平衡吞吐量数据路径架构 | |
| JP3639323B2 (ja) | メモリ分散型並列計算機による連立1次方程式計算処理方法および計算機 | |
| JP6895484B2 (ja) | マルチスレッドプロセッサのレジスタファイル | |
| CN102053817B (zh) | 用于执行乘法累加运算的设备和方法 | |
| EP1550089B1 (en) | Method and apparatus for token triggered multithreading | |
| CN109213723A (zh) | 用于具有安全、功率降低和性能特征的可配置空间加速器的处理器、方法和系统 | |
| Azizimazreah et al. | Shortcut mining: Exploiting cross-layer shortcut reuse in DCNN accelerators | |
| CN101290613B (zh) | Fft处理器的数据存储系统和方法 | |
| US20120216011A1 (en) | Apparatus and method of single-instruction, multiple-data vector operation masking | |
| ES2758623T3 (es) | Método y aparato para un acceso a memoria basado en hilos en un procesador multihilo | |
| US9767071B2 (en) | Execution engine for executing single assignment programs with affine dependencies | |
| EP3893123A1 (en) | Hardware accelerated machine learning | |
| US8688956B2 (en) | Execution engine for executing single assignment programs with affine dependencies | |
| CN106970896A (zh) | 面向向量处理器的二维矩阵卷积的向量化实现方法 | |
| TW201229898A (en) | Mechanism for conflict detection using SIMD | |
| WO2016003820A9 (en) | System and methods for expandably wide operand instructions | |
| CN104699465B (zh) | 向量处理器中支持simt的向量访存装置和控制方法 | |
| TW200413947A (en) | Efficient multiplication of small matrices using SIMD registers | |
| CN111580865A (zh) | 一种向量运算装置及运算方法 | |
| CN111159094A (zh) | 一种基于risc-v的近数据流式计算加速阵列 | |
| US11705207B2 (en) | Processor in non-volatile storage memory | |
| CN111158757B (zh) | 并行存取装置和方法以及芯片 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| GD4A | Issue of patent certificate for granted invention patent | ||
| MM4A | Annulment or lapse of patent due to non-payment of fees |