TWI816814B - 在以向量處理器為基礎之裝置中提供處理元件之可重組態融合的裝置、方法以及非暫時性電腦可讀媒體 - Google Patents
在以向量處理器為基礎之裝置中提供處理元件之可重組態融合的裝置、方法以及非暫時性電腦可讀媒體 Download PDFInfo
- Publication number
- TWI816814B TWI816814B TW108122175A TW108122175A TWI816814B TW I816814 B TWI816814 B TW I816814B TW 108122175 A TW108122175 A TW 108122175A TW 108122175 A TW108122175 A TW 108122175A TW I816814 B TWI816814 B TW I816814B
- Authority
- TW
- Taiwan
- Prior art keywords
- pes
- loop
- fused
- loop body
- vector processor
- Prior art date
Links
- 238000012545 processing Methods 0.000 title claims abstract description 34
- 230000004927 fusion Effects 0.000 title claims abstract description 29
- 238000000034 method Methods 0.000 title claims description 20
- 239000013598 vector Substances 0.000 claims abstract description 107
- 238000004891 communication Methods 0.000 claims abstract description 35
- 230000001413 cellular effect Effects 0.000 claims description 2
- 230000000977 initiatory effect Effects 0.000 claims description 2
- 238000005192 partition Methods 0.000 description 12
- 238000010586 diagram Methods 0.000 description 6
- 238000013507 mapping Methods 0.000 description 6
- 230000008569 process Effects 0.000 description 4
- 238000013461 design Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000002411 adverse Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000036541 health Effects 0.000 description 1
- 230000001939 inductive effect Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 239000006249 magnetic particle Substances 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 239000002245 particle Substances 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/8053—Vector processors
- G06F15/8092—Array of vector units
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/3802—Instruction prefetching
- G06F9/3808—Instruction prefetching for instruction reuse, e.g. trace cache, branch target cache
- G06F9/381—Loop buffering
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7867—Architectures of general purpose stored program computers comprising a single central processing unit with reconfigurable architecture
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/8053—Vector processors
- G06F15/8076—Details on data register access
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30036—Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/30003—Arrangements for executing specific machine instructions
- G06F9/3005—Arrangements for executing specific machine instructions to perform operations for flow control
- G06F9/30065—Loop control instructions; iterative instructions, e.g. LOOP, REPEAT
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Advance Control (AREA)
- Executing Machine-Instructions (AREA)
- Image Processing (AREA)
- Multi Processors (AREA)
Abstract
本發明揭示在以向量處理器為基礎之裝置中提供處理元件(PE)之可重組態融合。就此而言,一以向量處理器為基礎之裝置提供包括複數個PE及一解碼/控制電路之一向量處理器。該解碼/控制電路接收含有包含一環路主體之一可向量化環路之一指令區塊。該解碼/控制電路判定需要該複數個PE中的多少PE來執行該環路主體,且將該複數個PE重組態為一或多個融合PE,該一或多個融合PE各自包括執行該環路主體所需要之該所判定數目的PE。經重組態為一或多個融合PE之該複數個PE隨後執行該環路主體之一或多個環路反覆。一些態樣進一步包括一PE通信鏈路,該PE通信鏈路將該複數個PE互連以在無需向量暫存器檔案存取操作之情況下實現一融合PE之PE之間的通信及PE之間的反覆間資料依賴項之通信。
Description
本發明之技術大體上係關於以向量處理器為基礎之裝置,且特定而言,係關於使用以向量處理器為基礎之裝置之處理元件(PE)對可向量化環路之並行處理。
以向量處理器為基礎之裝置為採用向量處理器之計算裝置,該向量處理器能夠使用單個程式指令來操作資料(「向量」)之一維矩陣。習知向量處理器包括多個處理元件(PE),該等元件經組織為可彼此並行執行計算之向量通道。作為非限制性實例,由習知向量處理器提供之PE中每一者可為依序處理單元,或可為可重組態結構,諸如包含以可程式化方式互連之功能單元組的粗糙-成粒可重組態陣列(CGRA)。以向量處理器為基礎之裝置特別適用於處理涉及高程度之資料級並行(DLP)的可向量化環路。
當處理可向量化環路時,向量處理器之各PE可並行執行相
同任務(例如,使用可向量化環路之感應變數的不同值來執行可向量化環路之相同環路主體)。當使用具有可重組態PE之習知向量處理器(例如各PE為CGRA之向量處理器)處理可向量化環路時,該向量處理器之效能很大程度上視可向量化環路之環路主體映射至PE的程度而定。在理想情形下,向量處理器之PE經單次組態,且各PE隨後並行處理可向量化環路之一個環路反覆直至所有環路反覆已執行。然而,在實務中,可向量化環路之環路主體至向量處理器之PE的映射可在一些情形下產生次最佳效能。舉例而言,若該環路主體過大以致單個PE無法處理(例如,因為環路主體相較於由PE提供之數目個功能單元來執行需要更多操作),則該環路主體之各環路反覆必須經拆分為多個環路分區,且該等PE必須在各環路分區執行之後進行動態重組態。以此方式拆分各環路反覆導致向量處理器由於PE之重組態而招致效能損失,以及需要經由向量暫存器檔案來傳送各環路分區執行之結果。此外,若環路反覆之數目小於PE之數目,則大量其他可用PE將變為無用的。最終,就可向量化環路(其中資料依賴項存在於環路反覆之間)而言,該資料依賴項必須經由該向量暫存器檔案自一個環路反覆傳送至另一環路反覆,其可能計算成本高昂。
經揭示於實施方式中之態樣包括在以向量為基礎之裝置中提供處理元件(PE)之可重組態融合。就此而言,一以向量為基礎之裝置提供一向量處理器,該向量處理器包括複數個PE及一解碼/控制電路,該解碼/控制電路經組態以按需要將多個PE分組為較大「融合」PE。一些態樣進一步包括一PE通信鏈路,其將複數個PE互連以實現在融合PE之間及在包含融合PE之PE之間的通信,而不需要向量暫存器檔案存取操作。在例
示性操作中,該解碼/控制電路接收含有包含一環路主體之一可向量化環路之一指令區塊。該解碼/控制電路判定需要該複數個PE中之多少PE來執行該環路主體(例如,基於在該環路主體內將各PE提供之功能單元的數目與指令之數目進行比較)。該解碼/控制電路隨後將該複數個PE重組態為一或多個融合PE,該一或多個融合PE各自包括需執行該環路主體之經判定數目之PE。該複數個PE(因此重組態為一或多個融合PE)隨後執行該環路主體中一或多者環路反覆。
在另一態樣中,提供一種以向量處理器為基礎之裝置,該裝置提供PE之可重組態融合。該以向量處理器為基礎之裝置包含包括複數個PE之一向量處理器,其中該複數個PE之每一PE包含複數個異質功能單元。該以向量處理器為基礎之裝置進一步包含一解碼/控制電路。該解碼/控制電路經組態以接收含有包含一環路主體之一可向量化環路之一指令區塊。該解碼/控制電路進一步經組態以判定指示執行該環路主體所需之該複數個PE之PE的數目之所需PE數目。該解碼/控制電路亦經組態以將該複數個PE重組態為一或多個融合PE,其中該一或多個融合PE中之每一融合PE包含該複數個PE之該所需PE數目的PE。該複數個PE經組態以作為該一或多個融合PE執行該環路主體之一或多個環路反覆。
在另一態樣中,提供一種以向量處理器為基礎之裝置,該裝置提供PE之可重組態融合。該以向量處理器為基礎之裝置包含一構件,該構件用於接收含有包含一環路主體之一可向量化環路之一指令區塊。該以向量處理器為基礎之裝置進一步包含一構件,該構件用於判定指示執行該環路主體所需之一向量處理器之複數個PE的PE之數目的所需PE數目。該以向量處理器為基礎之裝置亦包含一種用於將該複數個PE重組
態為一或多個融合PE之構件,其中該一或多個融合PE中之每一融合PE包含該複數個PE之該所需PE數目之PE。該以向量處理器為基礎之裝置亦包含一種用於使用該一或多個融合PE執行該環路主體之一或多者環路反覆的構件。
在另一態樣中,提供一種用於提供向量處理器之PE之可重組態融合的方法。該方法包含由該向量處理器之一解碼/控制電路接收含有包含一環路主體之一可向量化環路之一指令區塊。該方法進一步包含判定指示執行該環路主體所需之該向量處理器之複數個PE的PE之數目的所需PE數目,其中該複數個PE中之每一PE包含複數個異質功能單元。該方法亦包含將該複數個PE重組態為一或多個融合PE,其中該一或多個融合PE中之每一融合PE包含該複數個PE之該所需PE數目之PE。該方法額外包含作為該一或多個融合PE執行該環路主體之一或多個環路反覆。
在另一態樣中,提供一種其上儲存有電腦可執行指令之非暫時性電腦可讀媒體,該電腦可執行指令用於促使一以向量處理器為基礎之裝置之一向量處理器接收含有包含一環路主體之一可向量化環路之一指令區塊。該電腦可執行指令進一步促使該向量處理器判定指示執行該環路主體所需之該向量處理器之複數個PE的PE之數目的所需PE數目,其中該複數個PE中之每一PE包含複數個異質功能單元。該電腦可執行指令亦促使該向量處理器將複數個PE重組態為一或多個融合PE,其中該一或多個融合PE中之每一融合PE包含該複數個PE之該所需PE數目之PE。該電腦可執行指令額外促使該向量處理器作為該一或多個融合PE執行該環路主體之一或多個環路反覆。
100:以向量處理器為基礎之裝置
102:向量處理器
104:解碼/控制電路
106(0)-106(P):PE
108(0)-108(F):功能單元
108'(0)-108'(F):功能單元
110:功能單元通信鏈路
110':功能單元通信鏈路
112:橫桿交換器
114(0)-114(P):通道
116:向量暫存器檔案
118:直接記憶體存取控制器
120:系統記憶體
122:指令區塊
124:指令區塊快取記憶體
126:調度程序電路
130:可向量化環路
132:環路主體
134:編譯器產生之元資料
136:PE通信鏈路
200:映射實例
202:環路主體
204:可向量化環路
206(0)-206(P):處理元件PE
208(0)-208(N):環路反覆
300:映射實例
302:環路主體
304:可向量化環路
306(0)-306(P):PE
308(0)-308(N):環路反覆
310(0):第一環路分區
310(1):第二環路分區
312、314:箭頭
400(0)-400(F):PE
500:區塊
502:區塊
504:區塊
506:區塊
508:區塊
510:區塊
512:區塊
514:區塊
516:區塊
600:基於處理器之系統
602:中央處理單元
604:處理器
606:快取記憶體
608:系統匯流排
610:記憶體控制器
612:記憶體系統
614:輸入裝置
616:輸出裝置
618:網路介面裝置
620:顯示控制器
622:網路
624(0)-624(N):記憶體單元
626:顯示器
628:視訊處理器
圖1為說明經組態以提供處理元件(PE)之可重組態融合的以向量處理器為基礎之裝置的區塊圖;圖2為說明環路主體至複數個習知PE之例示性映射之區塊圖,其中該環路主體適配至單個PE中;圖3為說明環路主體至複數個習知PE之例示性映射之區塊圖,其中該環路主體不適配至單個PE中;圖4為說明由圖1之以向量處理器為基礎之裝置提供的PE如何經重組態為融合PE之區塊圖;圖5A及圖5B為說明由圖1之以向量處理器為基礎之裝置執行的用於提供PE之重組態融合之例示性操作的流程圖;及圖6為可包括圖1之以向量處理器為基礎之裝置的例示性以處理器為基礎之系統的區塊圖。
優先權主張
本專利申請案主張2018年7月5日申請之題為「PROVIDING RECONFIGURABLE FUSION OF PROCESSING ELEMENTS(PEs)IN VECTOR-PROCESSOR-BASED DEVICES」的美國非臨時專利申請案第16/028,072號之優先權,該非臨時專利申請案已轉讓給其受讓人,且在此以引用之方式明確地併入本文中。
現參考圖式,描述本發明之若干例示性態樣。字組「例示性」在本文中用於意謂「充當實例、例子或說明」。在本文中經描述為「例示性」之任何態樣未必被認作較其他態樣更佳或更有利。
經揭示於實施方式中之態樣包括在以向量為基礎之裝置中
提供處理元件(PE)之可重組態融合。就此而言,圖1說明以向量處理器為基礎之裝置100,該裝置實施以區塊為基礎之資料流指令集架構(ISA),並提供包含解碼/控制電路104之向量處理器102。作為非限制性實例,該向量處理器102包括各自可包含粗糙-成粒可重組態陣列(CGRA)、依序處理單元、或超純量處理器之複數個PE 106(0)至106(P)。PE 106(0)至106(P)中之每一者包含由功能單元通信鏈路110、功能單元通信鏈路110'以可程式化方式互連之複數個異質功能單元108(0)至108(F)、異質功能單元108'(0)至異質功能單元108'(F)。功能單元通信鏈路110、功能單元通信鏈路110'充當複數個PE 106(0)至106(P)之各對應PE內之專用通信路徑,且經組態以在指令執行期間在包含複數個PE 106(0)至106(P)中之每一的PE異質功能單元108(0)至108(F)、異質功能單元108'(0)至108'(F)中交換資料。該解碼/控制電路104可對由功能單元通信鏈路110、功能單元通信鏈路110'視待由對應PE 106(0)至106(P)中之一者執行處理要求而定所提供之指令以可程式化方式進行重組態。應理解,以向量處理器為基礎之裝置100可包括較圖1中所說明之向量處理器102更多或更少之向量處理器,且/或可提供較圖1中所說明之PE 106(0)至106(P)更多或更少之PE(各自具有更多或更少之異質功能單元108(0)至108(F)、異質功能單元108'(0)至108'(F))。
在圖1之實例中,PE 106(0)至106(P)經由通道114(0)至通道114(P)雙向通信耦合至橫桿交換器112,可經由該等通道將資料(例如執行可向量化環路之環路反覆之結果)自向量暫存器檔案116讀取及寫入至該向量暫存器檔案。圖1之實例中之該橫桿交換器112通信藕接至直接記憶體存取(DMA)控制器118,該控制器經組態以執行記憶體存取操作以自系統
記憶體120讀取資料及將資料寫入至該系統記憶體。圖1之DMA控制器118亦經組態以控制該橫桿交換器112在向量暫存器檔案116、該系統記憶體120及PE 106(0)至106(P)之間交換資料,並在向量暫存器檔案116中儲存及擷取向量及向量元素。作為非限制性實例,根據一些態樣之系統記憶體120可包含雙倍資料速率(DDR)記憶體。
在例示性操作中,將資料流指令區塊(諸如指令區塊122)自系統記憶體120中提取,並可在指令區塊快取記憶體124中進行快取,以減少與提取經頻繁存取之指令區塊相關聯的記憶體存取延遲。指令區塊122藉由解碼/控制電路104解碼,且藉由用於執行之調度電路126將經解碼指令分配至複數個PE 106(0)至106(P)之PE。為便於執行,PE 106(0)至106(P)可接收來自向量暫存器檔案116之實時輸入資料值作為輸入,並在指令執行之後,可將實時輸出資料值作為輸出寫入至向量暫存器檔案116。
應理解,圖1之以向量處理器為基礎之裝置100較圖1中所說明之裝置可包括更多或更少元件。以向量處理器為基礎之裝置100可涵蓋已知數位邏輯元件、半導體電路、處理核心及/或記憶體結構以及其他元件或其組合中之任一者。本文中所描述之態樣並不限於元件之任何特定配置,且所揭示之技術可易於延伸至半導體晶粒或封裝上之各種結構及佈局。
以向量處理器為基礎之裝置100可良好適用之一種應用為處理可向量化環路。舉例而言,在圖1中,指令區塊122含有包含環路主體132之可向量化環路130。為處理環路主體132,解碼/控制電路104將環路主體132之各環路反覆映射至複數個PE 106(0)至106(P)之不同PE,該複
數個PE隨後並行執行環路反覆。然而,如上文所指出,在處理環路主體132時,向量處理器102之所得效能可在很大程度上視環路主體132之環路反覆映射至PE 106(0)至106(P)之程度而定。舉例而言,若環路主體132過大而無法由複數個PE 106(0)至106(P)之單個PE處理,則環路主體132之各環路反覆必須拆分為多個環路分區,且在執行各環路分區之後,該等PE 106(0)至106(P)必須經動態重組態。此可能由於PE 106(0)至106(P)之重組態以及需要經由向量暫存器檔案116傳送各環路分區執行及/或環路反覆之間的資料依賴項之結果而產生效能損失。
因此,就此而言,圖1之解碼/控制電路104經組態以將PE 106(0)至106(P)中之多者聚集為較大「融合」PE。在接收指令區塊122時,解碼/控制電路104判定需要複數個PE 106(0)至106(P)之多少PE來執行可向量化環路130之環路主體132。此數目在本文中稱作「所需PE數目」,且可基於例如對環路主體132內之指令的數目與由PE 106(0)至106(P)中之每一者所提供之異質功能單元108(0)至108(F)、異質功能單元108'(0)至108'(F)的數目之比較來進行判定。在一些態樣中,關於環路主體132內之指令之資訊可由解碼/控制電路104自編譯器產生之元資料134得到,該元資料作為指令區塊122(例如作為指令區塊標頭之部分,作為非限制性實例)之部分提供。解碼/控制電路104將複數個PE 106(0)至106(P)重組態為一或多個融合PE(未展示),該一或多個融合PE各自包括執行環路主體132之PE 106(0)至106(P)的所需PE數目。經重組態為一或多個融合PE之複數個PE 106(0)至106(P)隨後執行環路主體132之一或多個環路反覆。在複數個PE 106(0)至106(P)經重組態為複數個融合PE之用例中,融合PE中之每一者可將環路主體132之一個環路反覆與複數個融合PE之其他
融合PE並行執行。若存在較融合PE更多之環路反覆,則解碼/控制電路104可執行環路展開,以使得各融合PE執行環路主體132之複數個環路反覆。
當PE 106(0)至106(P)作為融合PE操作以及當PE 106(0至106(P)以非融合模式操作時,向量處理器102之一些態樣進一步在PE 106(0)至106(P)之間提供額外鏈接以改善系統效能。特定而言,圖1之實例中之向量處理器102可包括將PE 106(0)至106(P)互連之PE通信鏈路136。當PE 106(0)至106(P)以習知非融合模式操作時,PE通信鏈路136使得環路反覆(例如,作為非限制性實例,當處理具有還原操作之可向量化環路及/或具有所攜載依賴項之可向量化環路時)之間的資料依賴項能夠在PE 106(0)至106(P)之間傳送,而無需對向量暫存器檔案116進行存取。當PE 106(0)至106(P)作為融合PE操作時,PE通信鏈路136在融合PE中傳送反覆間資料依賴項,且亦促進在補償各融合PE之不同PE 106(0)至106(P)內之異質功能單元108(0)至108(F)、異質功能單元108'(0)至108'(F)中的通信。因為功能單元通信鏈路110、功能單元通信鏈路110'專用於給定PE 106(0)至106(P),所以PE通信鏈路136可在經合併以補償各融合PE之異質功能單元108(0)至108(F)、異質功能單元108'(0)至108'(F)中有效地充當資料路徑。
為更詳細地說明環路主體(諸如環路主體132)至206(0)至206(P)之映射的程度可能不利地影響習知以向量處理器為基礎之裝置的效能,提供圖2及圖3。圖2說明一實例200,其中可向量化環路204之環路主體202適配於複數個習知PE 206(0)至206(P)中之每一PE內。如圖2中所見,可向量化環路204「for」環路,其中感應變數i以初始值零(0)開始,
且隨後隨各環路反覆遞增直至其達至由數字N指定的值為止。對於可向量化環路204之各環路反覆,使用環路反覆之感應變數i之當前值來執行環路主體202內所含有的指令(亦即加法指令、移位指令及減法指令)。因此,為執行可向量化環路204,環路主體202之環路反覆208(0至環路反覆208(N)分配至對應PE 206(0)至206(P),其中環路反覆208(0)至環路反覆208(N)使用不同感應變數值i。注意,假設在圖2之實例中,數目N小於或等於PE 206(0至206(P)之數目P,且進一步而言複數個PE 206(0)至206(P)中之每一PE包括充足數目個異質功能單元以在環路主體202內執行該等指令。以此方式,PE 206(0)至206(P)能夠針對環路主體202之感應變數i之所有值並行執行環路反覆208(0)至208(N)中的全部,從而產生最佳性能。
相比之下,圖3說明一實例300,其中可向量化環路304之環路主體302並不適配至複數個習知PE 306(0)至306(P)中之每一PE中。如圖3中所見,除環路主體302包括額外乘法指令之外,環路主體302類似於圖2之環路主體202。因此,相較於可藉由複數個PE 306(0)PE 306(P)之每一PE來執行,環路主體302需要更多操作。因此,為執行環路反覆308(0)至環路反覆308(N),將環路反覆308(0)至環路反覆308(N)拆分為兩(2)個環路分區310(0)、環路分區310(1)以供處理。
在執行期間,如由箭頭312所指示,PE 306(0)至306(P)首先經組態以執行第一環路分區310(0)。如由箭頭314指示,該等PE 306(0)至306(P)隨後經重組態以執行第二環路分區310(1)。若環路反覆308(0至環路反覆308(N)之數目N大於PE 306(0)至306(P)之數目P,則PE 306(0)至306(P)在執行期間必須經反覆重組態,其可能招致大量效能損失。此外,在環路分區310(0)、環路分區310(1)執行期間產生之任何資料依賴項
及/或中間結果均必須由PE 306(0)至306(P)使用向量暫存器檔案(諸如圖1之該向量暫存器檔案116)來進行儲存及擷取,其招致額外效能損失。
圖4為說明藉由圖1之以向量處理器為基礎之裝置100提供之PE 106(0)至106(P)可如何藉由圖1之解碼/控制電路104重組態為一或多個融合PE來解決圖3中說明之情形的區塊圖。在圖4之實例中,PE 106(0)至106(P)已經組織為複數個融合PE 400(0)至400(F),其中複數個融合PE 400(0)至融合PE 400(F)中之每一融合PE包含PE 106(0)至106(P)中之兩(2)者。因此,融合PE 400(0)包括PE 106(0)、PE 106(1),而融合PE 400(1)包括PE 106(2)、PE 106(3),以此類推,其中PE 106(0)至106(P)中之各對經組態以作為單個融合PE來交互及操作。如圖4中所示,構成融合PE 400(0)至400(F)之PE 106(0)至106(P)中之通信可在一些態樣中進一步藉由PE通信鏈路136來促進。
應理解,解碼/控制電路104可將PE 106(0)至106(P)重組態為融合PE 400(0)至400(F)之配置而非圖4中所說明之配置。舉例而言,解碼/控制電路104可按需要將更多PE 106(0)至106(P)重組態為融合PE 400(0)至融合PE 400(F)之每個融合PE,以便為具體應用將指令-位準並行度(ILP)與資料-位準並行度(DLP)較佳平衡。在需要最大ILP之極端情況下,解碼/控制電路104可甚至將PE 106(0)至106(P)中之所有重組態為單個融合PE 400。
為說明用於在圖1之以向量處理器為基礎之裝置100中對PE 106(0)至106(P)進行可重組態融合之例示性操作,提供圖5。為清晰起見,在描述圖5時參考圖1及圖4之元件。圖5中之操作以向量處理器102之解碼/控制電路104接收指令區塊122開始,該指令區塊含有包含環路主體
132(區塊500)之可向量化環路130。就此而言,解碼/控制電路104在本文中可稱作「用於接收含有包含環路主體之可向量化環路之指令區塊之構件」。解碼/控制電路104判定指示執行環路主體132所需之向量處理器102之複數個PE 106(0)至106(P)之PE之數目的所需PE數目,其中複數個PE 106(0)至106(P)中之每一PE包含複數個異質功能單元108(0)至108(F)、異質功能單元108'(0)至108'(F)(區塊502)。因此,解碼/控制電路104在本文中可稱作「用於判定指示執行環路主體所需之向量處理器之複數個PE中的PE之數目的PE數目之構件」。在一些態樣中,用於判定所需PE數目之區塊502的操作可包含基於指令區塊122(區塊504)之編譯器產生之元資料134來判定所需PE數目。
解碼/控制電路104隨後將複數個PE 106(0)至106(P)重組態為一或多個融合PE 400(0)至400(F),其中一或多個融合PE 400(0)至400(F)中之每一融合PE包含複數個PE 106(0)至106(P)(區塊506)之所需PE數目的PE。解碼/控制電路104因此在本文中可稱作「用於將複數個PE重組態為一或多個融合PE之構件,其中一或多個融合PE中之每一融合PE包含複數個PE之所需PE數目之PE。」隨後在圖5B之區塊508處繼續處理。
現參考圖5B,在一些態樣中,解碼/控制電路104可判定待執行之一或多個環路反覆之計數是否超過一或多個融合PE 400(0)至400(F)(區塊508)之計數。若未超過,則在區塊510處繼續處理。然而,若在判定區塊508處判定待執行之一或多個環路反覆之計數確實超過一或多個融合PE 400(0)至400(F)之計數,則解碼/控制電路104可執行環路展開以使得一或多個融合PE 400(0)至400(F)中之每一融合PE執行一或多個環
路反覆之複數個環路反覆(區塊512)。隨後在區塊510處繼續處理。
PE 106(0)至106(P)隨後作為一或多個融合PE 400(0)至融合PE 400(F)執行環路主體132之一或多個環路反覆(區塊510)。就此而言,複數個PE 106(0)至106(P)在本文中可稱作「用於使用一或多個融合PE來執行環路主體之一或多個環路反覆之構件」。在一些態樣中,用於作為一或多個融合PE 400(0)至融合PE 400(F)執行環路主體132之一或多個環路反覆之區塊510的操作可包含經由PE通信鏈路136(區塊514)通信之一或多個融合PE 400(0)至400(F)中之每一者的PE 106(0)至106(P)。一或多個融合PE 400(0)至400(F)包含複數個融合PE 400(0)至400(F)之一些態樣可提供用於作為一或多個融合PE 400(0)至融合PE 400(F)執行環路主體132之一或多個環路反覆之區塊510的操作包含由複數個融合PE 400(0)至400(F)之每一融合PE與複數個融合PE 400(0)至400(F)之其他融合PE並行執行環路主體132之一個環路反覆(區塊516)。
可將在根據本文中所揭示之態樣的以向量處理器為基礎之裝置中提供PE之可重組態融合提供於或整合至任何以處理器為基礎之裝置中。實例非限制性地包括機上盒、娛樂單元、導航裝置、通信裝置、固定位置資料單元、行動位置資料單元、全球定位系統(GPS)裝置、行動電話、蜂巢式電話、智慧型電話、工作階段起始協定(SIP)電話、平板電腦、平板電話、伺服器、電腦、攜帶型電腦、行動計算裝置、可穿戴式計算裝置(例如智慧型手錶、健康或健身追蹤器、護目鏡等)、桌上型電腦、個人數位助理(PDA)、監視器、電腦監視器、電視、調諧器、收音機、衛星收音機、音樂播放器、數位音樂播放器、攜帶型音樂播放器、數位視訊播放器、視訊播放器、數位視訊光碟(DVD)播放器、攜帶型數位視訊播放
器、汽車、車輛組件、航空電子系統、無人飛機及多旋翼飛行器。
就此而言,圖6說明可對應於圖1之以向量處理器為基礎之裝置100的基於處理器之系統600的實例。基於處理器之系統600包括一或多個中央處理單元(CPU)602,該一或多個中央處理單元各自包括包含圖1之解碼/控制電路104的一或多個處理器604(其在一些態樣中可對應於圖1之PE 106(0)至106(P))。CPU 602可具有耦接至處理器604以對經暫時儲存之資料進行快速存取之快取記憶體606。CPU 602耦接至系統匯流排608,且可將系統600中所包括之以處理器為基礎之主控裝置與從屬裝置互耦。眾所周知,CPU 602經由系統匯流排608藉由交換位址、控制及資料資訊與此等其他裝置通信。舉例而言,CPU 602可將匯流排交易請求傳送至作為從屬裝置之實例的記憶體控制器610。
其他主控裝置及從屬裝置可連接至系統匯流排608。如圖6中所說明,作為實例,此等裝置可包括記憶體系統612、一或多個輸入裝置614、一或多個輸出裝置616、一或多個網路介面裝置618及一或多個顯示控制器620。輸入裝置614可包括任何類型之輸入裝置,包括但不限於輸入按鍵、開關、語音處理器等。輸出裝置616可包括任何類型之輸出裝置,包括但不限於音訊、視訊、其他視覺指示器等。網路介面裝置618可為經組態以實現至網路622及自網路622之資料交換的任何裝置。網路622可為任何類型之網路,包括但不限於有線或無線網路、私用或公用網路、區域網路(LAN)、無線區域網路(WLAN)、廣域網路(WAN)、BLUETOOTHTM網路及網際網路。網路介面裝置618可經組態以支援所要任何類型之通信協定。記憶體系統612可包括一或多個記憶體單元624(0)至記憶體單元624(N)。
CPU 602亦可經組態以經由系統匯流排608存取顯示器控制器620來控制發送至一或多個顯示器626之資訊。顯示器控制器620經由一或多個視訊處理器628向顯示器626發送待顯示之資訊,該一或多個視訊處理器將待顯示之資訊處理為適用於顯示器626之格式。顯示器626可包括任何類型之顯示器,包括但不限於陰極射線管(CRT)、液晶顯示器(LCD),電漿顯示器等。
熟習此項技術者將進一步瞭解,結合本文中所揭示之態樣所描述的各種說明性邏輯區塊、模組、電路及演算法可經實施為電子硬體、儲存於記憶體中或另一電腦可讀媒體中且由處理器或其他處理裝置執行之指令或兩者之組合。作為實例,本文中所描述之主控裝置及從屬裝置可用於任何電路、硬體組件、積體電路(IC)或IC晶片中。本文中所揭示之記憶體可為任何類型及大小之記憶體,且可經組態以儲存所要任何類型之資訊。為清楚地說明此互換性,上文已大體上就其功能性而言描述了各種說明性組件、區塊、模組、電路及步驟。如何實施此功能性視特定應用、設計選項及/或強加於整個系統之設計約束而定。熟習此項技術者可針對各特定應用而以變化方式實施所描述之功能性,但不應將此類實施方案決策解譯為導致脫離本發明之範疇。
可藉由處理器、數位信號處理器(DSP)、特殊應用積體電路(ASIC)、場可程式化閘陣列(FPGA)或其他可程式化邏輯裝置、離散閘或電晶體邏輯、離散硬體組件或其經設計以執行本文中所描述功能之任何組合來實施或執行結合本文中所揭示之態樣描述的各種說明性邏輯區塊、模組及電路。處理器可為微處理器,但在替代方案中,處理器可為任何習知處理器、控制器、微控制器或狀態機。處理器亦可經實施為計算裝置之
組合(例如DSP與微處理器之組合、複數個微處理器、結合DSP核心之一或多個微處理器或任何其他此組態)。
本文中揭示之態樣可實施於硬體及儲存於硬體中之指令中,且可駐留於例如隨機存取記憶體(RAM)、快閃記憶體、唯讀記憶體(ROM)、電可程式化ROM(EPROM)、電可抹除可程式化ROM(EEPROM)、暫存器、硬碟、可移式磁碟、CD-ROM或此項技術中已知的任何其他形式之電腦可讀媒體中。將一例示性儲存媒體耦接至處理器以使得處理器可自儲存媒體讀取資訊及將資訊寫入至儲存媒體。在替代方案中,儲存媒體可整合至處理器。處理器及儲存媒體可駐留於ASIC中。ASIC可駐留於遠端台中。在可替代方案中,處理器及儲存媒體可作為離散組件而駐留於遠端台、基地台或伺服器中。
亦應注意,描述在本文中之例示性態樣中之任一者中所描述之操作步驟以提供實例及論述。可以除所說明之次序外之眾多不同次序執行所描述之操作。此外,實際上可以大量不同步驟來執行單一操作步驟中描述之操作。另外,可對例示性態樣中論述之一或多個操作步驟進行組合。應理解,對於熟習此項技術者而言將顯而易見,流程圖中所說明之操作步驟可經歷大量不同修改。熟習此項技術者亦應理解,可使用多種不同技藝及技術中之任一者來表示資訊及訊號。舉例而言,可由電壓、電流、電磁波、磁場或磁粒子、光場或光粒子或其任何組合表示可貫穿以上描述所參考之資料、指令、命令、資訊、訊號、位元、符號及晶片。
提供本發明之先前描述以使任何熟習此項技術者能夠製作或使用本發明。本發明之各種修改將對熟習此項技術者顯而易見,且本文中所定義之一般原理可在不背離本發明之精神或範疇的情況下應用於其他
變體。因此,本發明並不意欲限於本文中所描述之實例及設計,而應符合與本文中所揭示之原理及新穎特徵相一致的最廣泛範疇。
100:以向量處理器為基礎之裝置
102:向量處理器
104:解碼/控制電路
106(0)-106(P):處理元件PE
108(0)-108(F):功能單元
108'(0)-108'(F):功能單元
110:功能單元通信鏈路
110':功能單元通信鏈路
112:橫桿交換器
114(0)-114(P):通道
116:向量暫存器文件
118:直接記憶體存取控制器
120:系統記憶體
122:指令區塊
124:指令區塊快取記憶體
126:調度程序電路
130:可向量化環路
132:環路主體
134:編譯器產生之元資料
136:PE通信鏈路
Claims (14)
- 一種提供處理元件(PE)之可重組態融合的以向量處理器為基礎之裝置,該裝置包含一向量處理器,該向量處理器包含:複數個PE,其中該複數個PE中之每一PE包含複數個異質功能單元;及一解碼/控制電路,其經組態以:接收一指令區塊,該指令區塊含有包含一環路主體之一可向量化環路;基於對該環路主體內之指令的一數目與由該複數個PE中之每一PE所提供之該複數個異質功能單元的一數目之一比較而判定一所需PE數目,該數目指示執行該環路主體所需之該複數個PE之PE的一數目;將該複數個PE重組態為複數個融合PE,其中該複數個融合PE中之每一融合PE包含該複數個PE之該所需PE數目的PE;判定該環路主體包含較該複數個融合PE中融合PE的一數目更多之環路反覆;以及回應於判定該環路主體包含較該複數個融合PE中融合PE的一數目更多之環路反覆,而執行環路展開以使得該複數個融合PE中一融合PE執行該環路主體之複數個環路反覆,其中該複數個融合PE中每一融合PE經組態以與該複數個融合PE之執行該環路主體之一環路反覆的其他融合PE並行地執行該環路主體之一環路反覆。
- 如請求項1之以向量處理器為基礎之裝置,其中:該複數個融合PE之每一融合PE經由一PE通信鏈路互連;且該複數個融合PE之每一融合PE藉由經進一步組態以經由該PE通信鏈路通信而經組態以執行該環路主體之該環路反覆。
- 如請求項1之以向量處理器為基礎之裝置,其中該複數個PE中之每一PE包含一粗糙-成粒可重組態陣列(CGRA)、一依序處理單元及一超純量處理器中之一者。
- 如請求項1之以向量處理器為基礎之裝置,其中該解碼/控制電路經組態以基於該指令區塊之編譯器產生之元資料來判定該所需PE數目。
- 如請求項1之以向量處理器為基礎之裝置,其經整合至一積體電路(IC)中。
- 如請求項1之以向量處理器為基礎之裝置,其經整合至選自由以下各者組成之群的一裝置中:一機上盒;一娛樂單元;一導航裝置;一通信裝置;一固定位置資料單元;一行動位置資料單元;一全球定位系統(GPS)裝置;一行動電話;一蜂巢式電話;一智慧型手機;一工作階段起始協定(SIP)電話;一平板電腦;一平板手機;一伺服器;一電腦;一攜帶型電腦;一行動計算裝置;一可穿戴式計算裝置;一桌上型電腦;一個人數位助理(PDA);一監視器;一電腦監視器;一電視;一調諧器;一收音機; 一衛星收音機;一音樂播放器;一數位音樂播放器;一攜帶型音樂播放器;一數位視訊播放器;一視訊播放器;一數位視訊光碟(DVD)播放器;一攜帶型數位視訊播放器;一汽車;一車輛組件;航空電子系統;一無人機及一多旋翼飛行器。
- 一種提供處理元件(PE)之可重組態融合的以向量處理器為基礎之裝置,該裝置包含:一構件,其用於接收含有包含一環路主體之一可向量化環路之一指令區塊;一構件,其用於基於對該環路主體內之指令的一數目與由該複數個PE中之每一PE所提供之該複數個異質功能單元的一數目之一比較而判定指示執行該環路主體所需之複數個PE之PE之一數目的一所需PE數目;一構件,其用於將該複數個PE重組態為複數個融合PE,其中該複數個融合PE中之每一融合PE包含該複數個PE之該所需PE數目之PE且經組態以與該複數個融合PE之執行該環路主體之一環路反覆的其他融合PE並行地執行該環路主體之一環路反覆;一構件,其用於判定該環路主體包含較該複數個融合PE中融合PE的一數目更多之環路反覆;以及一構件,其用於回應於判定該環路主體包含較該複數個融合PE中融合PE的一數目更多之環路反覆,而執行環路展開以使得該複數個融合PE中一融合PE執行該環路主體之複數個環路反覆。
- 一種用於提供一向量處理器之處理元件(PE)之可重組態融合之方 法,該方法包含:由該向量處理器之一解碼/控制電路接收含有包含一環路主體之一可向量化環路之一指令區塊;判定指示執行該環路主體所需之該向量處理器之複數個PE的PE之數目的所需PE數目,其中:該複數個PE中之每一PE包含複數個異質功能單元;且判定該所需PE數目係基於對該環路主體內之指令的一數目與由該複數個PE中之每一PE所提供之該複數個異質功能單元的一數目之一比較;將該複數個PE重組態為複數個融合PE,其中該複數個融合PE中之每一融合PE包含該複數個PE之該所需PE數目之PE;由該複數個融合PE中每一融合PE與該複數個融合PE之執行該環路主體之一環路反覆的其他融合PE並行地執行該環路主體之一環路反覆;判定該環路主體包含較該複數個融合PE中融合PE的一數目更多之環路反覆;以及回應於判定該環路主體包含較該複數個融合PE中融合PE的一數目更多之環路反覆,而執行環路展開以使得該複數個融合PE中一融合PE執行該環路主體之複數個環路反覆。
- 如請求項8之方法,其中:該複數個融合PE之每一融合PE經由一PE通信鏈路互連;且執行該環路主體之該環路反覆包含經由該PE通信鏈路通信。
- 如請求項8之方法,其中該複數個PE中之每一PE包含一粗糙-成粒可重組態陣列(CGRA)、一依序處理單元及一超純量處理器中之一者。
- 如請求項8之方法,其中判定該所需PE數目係基於該指令區塊之編譯器產生之元資料來進行。
- 一種非暫時性電腦可讀媒體,其上儲存有用於促使一以向量處理器為基礎之裝置的一向量處理器進行以下操作之電腦可執行指令:接收一指令區塊,該指令區塊含有包含一環路主體之一可向量化環路;判定一所需處理元件(PE)數目,該數目指示執行該環路主體所需之該向量處理器之複數個PE的PE之數目,其中:該複數個PE中之每一PE包含複數個異質功能單元;且判定該所需PE數目係基於對該環路主體內之指令的一數目與由該複數個PE中之每一PE所提供之該複數個異質功能單元的一數目之一比較;將該複數個PE重組態為複數個融合PE,其中該複數個融合PE中之每一融合PE包含該複數個PE之該所需PE數目的PE;由該複數個融合PE中每一融合PE與該複數個融合PE之執行該環路主體之一環路反覆的其他融合PE並行地執行該環路主體之一環路反覆;判定該環路主體包含較該複數個融合PE中融合PE的一數目更多之環路反覆;以及回應於判定該環路主體包含較該複數個融合PE中融合PE的一數目更 多之環路反覆,而執行環路展開以使得該複數個融合PE中一融合PE執行該環路主體之複數個環路反覆。
- 如請求項12之非暫時性電腦可讀媒體,其中用於促使該以向量處理器為基礎之裝置的該向量處理器執行該環路主體之該環路反覆的該電腦可執行指令包含用於促使該向量處理器經由PE通信鏈路進行通信之電腦可執行指令。
- 如請求項12之非暫時性電腦可讀媒體,其中用於促使該以向量處理器為基礎之裝置之該向量處理器判定該所需PE數目的電腦可執行指令包含用於促使該向量處理器基於該指令區塊之編譯器產生之元資料來判定該所需PE數目的電腦可執行指令。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/028,072 | 2018-07-05 | ||
US16/028,072 US10846260B2 (en) | 2018-07-05 | 2018-07-05 | Providing reconfigurable fusion of processing elements (PEs) in vector-processor-based devices |
Publications (2)
Publication Number | Publication Date |
---|---|
TW202018498A TW202018498A (zh) | 2020-05-16 |
TWI816814B true TWI816814B (zh) | 2023-10-01 |
Family
ID=67220885
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW108122175A TWI816814B (zh) | 2018-07-05 | 2019-06-25 | 在以向量處理器為基礎之裝置中提供處理元件之可重組態融合的裝置、方法以及非暫時性電腦可讀媒體 |
Country Status (5)
Country | Link |
---|---|
US (1) | US10846260B2 (zh) |
EP (1) | EP3818438A1 (zh) |
CN (1) | CN112470120A (zh) |
TW (1) | TWI816814B (zh) |
WO (1) | WO2020009840A1 (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2594498B (en) * | 2020-04-30 | 2022-06-01 | Advanced Risc Mach Ltd | Instruction scheduling |
CN114595813B (zh) * | 2022-02-14 | 2024-09-06 | 清华大学 | 异构加速处理器及数据计算方法 |
CN115391274A (zh) * | 2022-08-18 | 2022-11-25 | 北京冠邦开源智能系统工程技术有限公司 | 一种面向通用计算的矢量处理器及数据处理方法 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050071835A1 (en) * | 2003-08-29 | 2005-03-31 | Essick Raymond Brooke | Method and apparatus for parallel computations with incomplete input operands |
US20100115233A1 (en) * | 2008-10-31 | 2010-05-06 | Convey Computer | Dynamically-selectable vector register partitioning |
US20100199069A1 (en) * | 2009-02-03 | 2010-08-05 | Won-Sub Kim | Scheduler of reconfigurable array, method of scheduling commands, and computing apparatus |
US20100211760A1 (en) * | 2009-02-18 | 2010-08-19 | Egger Bernhard | Apparatus and method for providing instruction for heterogeneous processor |
US8001266B1 (en) * | 2003-03-31 | 2011-08-16 | Stretch, Inc. | Configuring a multi-processor system |
TWI514273B (zh) * | 2011-04-01 | 2015-12-21 | Intel Corp | 於電腦處理器中執行聚集跨步指令及分散跨步指令之方法及設備 |
CN105278920A (zh) * | 2014-07-09 | 2016-01-27 | 英特尔公司 | 用于实现具有迭代依赖条件的迭代的向量环路的指令 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5274818A (en) | 1992-02-03 | 1993-12-28 | Thinking Machines Corporation | System and method for compiling a fine-grained array based source program onto a course-grained hardware |
US6023742A (en) | 1996-07-18 | 2000-02-08 | University Of Washington | Reconfigurable computing architecture for providing pipelined data paths |
US7140019B2 (en) | 2002-06-28 | 2006-11-21 | Motorola, Inc. | Scheduler of program instructions for streaming vector processor having interconnected functional units |
US7395419B1 (en) * | 2004-04-23 | 2008-07-01 | Apple Inc. | Macroscalar processor architecture |
US7945811B2 (en) * | 2008-05-12 | 2011-05-17 | Arm Limited | Low power, high reliability specific compound functional units |
JP2014016894A (ja) | 2012-07-10 | 2014-01-30 | Renesas Electronics Corp | 並列演算装置、並列演算装置を備えたデータ処理システム、及び、データ処理プログラム |
WO2015050594A2 (en) | 2013-06-16 | 2015-04-09 | President And Fellows Of Harvard College | Methods and apparatus for parallel processing |
US9727460B2 (en) | 2013-11-01 | 2017-08-08 | Samsung Electronics Co., Ltd. | Selecting a memory mapping scheme by determining a number of functional units activated in each cycle of a loop based on analyzing parallelism of a loop |
KR102204282B1 (ko) | 2013-11-25 | 2021-01-18 | 삼성전자주식회사 | 다수의 기능 유닛을 가지는 프로세서를 위한 루프 스케쥴링 방법 |
-
2018
- 2018-07-05 US US16/028,072 patent/US10846260B2/en active Active
-
2019
- 2019-06-25 WO PCT/US2019/039021 patent/WO2020009840A1/en active Application Filing
- 2019-06-25 TW TW108122175A patent/TWI816814B/zh active
- 2019-06-25 CN CN201980045093.0A patent/CN112470120A/zh active Pending
- 2019-06-25 EP EP19737645.2A patent/EP3818438A1/en active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8001266B1 (en) * | 2003-03-31 | 2011-08-16 | Stretch, Inc. | Configuring a multi-processor system |
US20050071835A1 (en) * | 2003-08-29 | 2005-03-31 | Essick Raymond Brooke | Method and apparatus for parallel computations with incomplete input operands |
US20100115233A1 (en) * | 2008-10-31 | 2010-05-06 | Convey Computer | Dynamically-selectable vector register partitioning |
US20100199069A1 (en) * | 2009-02-03 | 2010-08-05 | Won-Sub Kim | Scheduler of reconfigurable array, method of scheduling commands, and computing apparatus |
US20100211760A1 (en) * | 2009-02-18 | 2010-08-19 | Egger Bernhard | Apparatus and method for providing instruction for heterogeneous processor |
TWI514273B (zh) * | 2011-04-01 | 2015-12-21 | Intel Corp | 於電腦處理器中執行聚集跨步指令及分散跨步指令之方法及設備 |
CN105278920A (zh) * | 2014-07-09 | 2016-01-27 | 英特尔公司 | 用于实现具有迭代依赖条件的迭代的向量环路的指令 |
Also Published As
Publication number | Publication date |
---|---|
WO2020009840A1 (en) | 2020-01-09 |
TW202018498A (zh) | 2020-05-16 |
US10846260B2 (en) | 2020-11-24 |
US20200012618A1 (en) | 2020-01-09 |
CN112470120A (zh) | 2021-03-09 |
EP3818438A1 (en) | 2021-05-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI796490B (zh) | 在向量處理器為基礎裝置中提供多重元件多重向量(memv)暫存器檔案存取 | |
CN109388595B (zh) | 高带宽存储器系统以及逻辑管芯 | |
TWI816814B (zh) | 在以向量處理器為基礎之裝置中提供處理元件之可重組態融合的裝置、方法以及非暫時性電腦可讀媒體 | |
JP6571752B2 (ja) | ベクトルレジスタファイルにおいてデータインデックス方式アキュムレータを使用するベクトルプロセッサによるスカラ演算の並列化、関連する回路、方法およびコンピュータ可読媒体 | |
US20170083313A1 (en) | CONFIGURING COARSE-GRAINED RECONFIGURABLE ARRAYS (CGRAs) FOR DATAFLOW INSTRUCTION BLOCK EXECUTION IN BLOCK-BASED DATAFLOW INSTRUCTION SET ARCHITECTURES (ISAs) | |
CN111651383B (zh) | 用于具有数据流管理器的处理器中的数据流的方法和装置 | |
US9632953B2 (en) | Providing input/output virtualization (IOV) by mapping transfer requests to shared transfer requests lists by IOV host controllers | |
US10628162B2 (en) | Enabling parallel memory accesses by providing explicit affine instructions in vector-processor-based devices | |
US20150347017A1 (en) | Command trapping in an input/output virtualization (iov) host controller (hc) (iov-hc) of a flash-memory-based storage device | |
CN117795496A (zh) | 可重新配置计算组构中的并行矩阵运算 | |
TWI784845B (zh) | 對可重配置處理器之資料流功能卸載 | |
US20200065098A1 (en) | Providing efficient handling of branch divergence in vectorizable loops by vector-processor-based devices | |
CN106062814B (zh) | 由图形处理器改进的成组存储器存取效率 | |
US20160019060A1 (en) | ENFORCING LOOP-CARRIED DEPENDENCY (LCD) DURING DATAFLOW EXECUTION OF LOOP INSTRUCTIONS BY OUT-OF-ORDER PROCESSORS (OOPs), AND RELATED CIRCUITS, METHODS, AND COMPUTER-READABLE MEDIA | |
US11144368B2 (en) | Providing self-resetting multi-producer multi-consumer semaphores in distributed processor-based systems | |
TW201913364A (zh) | 在以區塊架構處理器為基礎系統中快取指令區塊標頭資料 | |
US20130326197A1 (en) | Issuing instructions to execution pipelines based on register-associated preferences, and related instruction processing circuits, processor systems, methods, and computer-readable media | |
US20210191721A1 (en) | Hardware micro-fused memory operations | |
Chiu et al. | Design and Implementation of the Link-List DMA Controller for High Bandwidth Data Streaming | |
US20240134650A1 (en) | Devices transferring cache lines, including metadata on external links | |
US20190258486A1 (en) | Event-based branching for serial protocol processor-based devices |