TW563063B - Loop handling for single instruction multiple datapath processor architectures - Google Patents

Loop handling for single instruction multiple datapath processor architectures Download PDF

Info

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
Application number
TW090127898A
Other languages
English (en)
Inventor
John L Redford
Original Assignee
Chipwrights Design Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Chipwrights Design Inc filed Critical Chipwrights Design Inc
Application granted granted Critical
Publication of TW563063B publication Critical patent/TW563063B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/34Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
    • G06F9/345Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes of multiple operands or results
    • G06F9/3455Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes of multiple operands or results using stride
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
    • G06F15/8007Architectures 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
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/32Address formation of the next instruction, e.g. by incrementing the instruction counter
    • G06F9/322Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address
    • G06F9/325Address 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
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/34Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
    • G06F9/345Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes of multiple operands or results
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3885Concurrent 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)

  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. 一種處理器,包括: 一暫存檔; 來儲:Πΐϊϊΐ ’搞合上述暫存槽和程式控制儲存區 理器資;^ΓΓ列時’令上述處理器產生致能多數處 寸塔從其中一個的迴圈控制指令。
TW090127898A 2000-11-13 2001-11-09 Loop handling for single instruction multiple datapath processor architectures TW563063B (en)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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制御並列処理方法および装置

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