TW469407B - VLIW processor processes commands of different widths - Google Patents

VLIW processor processes commands of different widths Download PDF

Info

Publication number
TW469407B
TW469407B TW088105947A TW88105947A TW469407B TW 469407 B TW469407 B TW 469407B TW 088105947 A TW088105947 A TW 088105947A TW 88105947 A TW88105947 A TW 88105947A TW 469407 B TW469407 B TW 469407B
Authority
TW
Taiwan
Prior art keywords
command
functional unit
processor
word
commands
Prior art date
Application number
TW088105947A
Other languages
English (en)
Inventor
Gerrit A Slavenburg
Eijndhoven Jos T Van
Selliah Rathnam
Original Assignee
Koninkl Philips Electronics Nv
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 Koninkl Philips Electronics Nv filed Critical Koninkl Philips Electronics Nv
Application granted granted Critical
Publication of TW469407B publication Critical patent/TW469407B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/3818Decoding for concurrent execution
    • G06F9/3822Parallel decoding, e.g. parallel decode units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/30145Instruction analysis, e.g. decoding, instruction word fields
    • G06F9/30149Instruction analysis, e.g. decoding, instruction word fields of variable length instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3853Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution of compound instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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
    • G06F9/3889Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled by multiple instructions, e.g. MIMD, decoupled access or execute

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Executing Machine-Instructions (AREA)
  • Devices For Executing Special Programs (AREA)
  • Advance Control (AREA)

Description

46 94 07 A7 經濟部智慧財產局員工消費合作社印裂 B7 五、發明說明(1 ) 發明範疇 本發明係關於超大指令字(VLIW)處理器。本發明亦關於 用於此一處理器之程式以及關於此一程式之編譯。 背景技藝 VL1W處理器之一例子爲飛利浦電子公司之了m_i〇〇〇處理 器(TriMedia) 此處理器例如在歐洲專利申請案案號爲£p 6〇5 927號(寺於美國專利申請案序號爲第號現在 委付爲PH A 21777)中説明》在一 VLIW處理器中,指令之平 行執行藉由组合單一長指令字内多重基本機器命令而獲得 。通常,各此種基本命令代表一 RISC運作。每時鐘週期, 一長指令字供應至以鎖定步驟運作之平行配置的功能單元 。其中相關之一命令供應至相關之一單元。通常,一單元 執行管線執行。 TM-刪處理器平行發出命令,各命令在超長指令字發出 暫存器之相關發出槽内。各發出槽與功能單元相關群組結 合且與二讀取谭以及—寫入蜂結合爲暫存器權一特別命 令指引至與特別發出槽相結合之功能單元群組間之一功能 早几。命令通常包括—作業碼、二原始運算元定義以及― =果運算元定義。原始運算元定義以及結果運算元定義參 考至暫存器檔内之暫存器。在命令執行期間内,好運算 -藉由供應提取信號至與發出槽結合之讀取璋以提:運算 疋而由特別發出槽讀取出。通常, , 力叱早兀由這些讀取埠 =收運依據作業碼執行命令且經由與發出槽巧之 寫入埠將結果寫回至暫存器檔内。 ^ 力 万面,命令可以利 -!|裝------訂---------線 {請先閱讀背面之注意事項再填寫本頁) -4- 4 6 94 0 7 經濟部智慧財產局員工消費合作社印製
A7 _____________B7 五、發明說明(2 ) V於運异元之運算元及/或不產生結果於暫存器檔a VLIW處理态之典型程式被翻譯爲功能單元之—组命冷 編澤時間排&器分配這些命令至長指令字。排程器餘 ,藉由將平行性最佳化而將執行程式之時間最小化。排程 器在命令指定至可以平行執行之相同指令之限制以及資料 相關性之限制下组合命令至指令字内。 發明總結 本發明之-目的爲提供一 VLIW處理器,其架構能夠使與 傳統VLIW處理器相關程式執行所需之指令字數目減低。 爲達成此目的,本發明之VL1W處理器包括用於依順序供 ,第-與第:超長指令字之指令發㈣。各㈣之一指令 罕包括在相關序連連接命令之間分配之㈣順序序連連接 攔位。第_指令字包括具有第-攔位之第-命令,以及具 '第二欄位之第二命令。第二指令字包括具有第—櫚位以 及第二欄位之第三命令。該處理器具有耦合至發出埠用於 處理第-命令之第-功能單元以及镇合至發出埠用於 足步驟與第-功能單元處理第二命令之第二功能單元。處 =❹具有轉合至發出埠用於處理第三命令之第三功能單 ^本發明爲基於指令發料至發出槽之彈性劃》。此 爲例如可能利料算元位數目之不、同命令。亦:, 不同命令可以具有不同大小之作 …(作業碼。與處理命令電路紝 。之特殊化資源的欄位,此處爲功能單^以與不: 〈功能單元组合使用,而與不时Mtm情形允許 -5- 本紙張尺度家鮮(CNS)A4雜⑵^ χ 297公楚y --------------裝 {請先閲讀背面之;i意事項再填寫本頁) 訂· --線 4 6 94 0 經濟部智慧財產局員工消費合作社印製 A7 B7 五、發明說明(3 ) 較指令發出槽劃分至固定發出槽之更複雜命令之利用。不 需要在發出槽内保留更多空間用於處理最複雜命令。在一 傳統VUW處理器内,此複雜命令必須利用—些在順序多重 指令字内較不複雜命令製作1此,本發明能夠使程式之 執行較可能以傳統VLIW處理器之程式執行爲快,因爲程式 之芜成需要較少之指令字。 例如,在如1_之機器内,由三運算元計算結果之運 算(例如’平均之運算)將Μ至少二逐次㈣行命令,所以 需要至少二指令。藉由提供少於至少二運算元欄位之命令 ,該運算可以利用一命令而執行。此外,因爲襴位被彈性 地指足至命令,所以此情形可以不用保留至少二爛位給所 有命令之運算元而實現。 在本發明之-具體實施例中,第三命令包含所有用於執 行第-以及第二命令之攔位。所以,例如傲使第_以及第 二固定大小發出槽爲利用於分別發出第1及第二命令時 ’第三命令可以使用發出第一以及第二發出槽之组合。此 情形簡化了排程。 各命令之不同攔位,亦即在各發出槽,可以各自具有一 固疋功能如代表一運算元暫存器之讀取位址或是代表一鲈 果暫存器之窝入位址或是一作業碼。這些不同搁位將與指 令處理電路之固定部分結合,如讀取痒或是作業碼解碼器 s在此案例中,第三指令可以利用兩倍數目之運算元及/或 產生兩倍數目之結果及/或利用兩倍大小之作業碼。當其中 之一相關發出槽與相關群組之功能單元結合時,執行第一 本紙張尺度適用t關家標準(c卿規格⑵Q x 297公爱) - - --------I I --- (諳先閱讀背面之注意事項再填寫本頁) 訂.. --線- 0 A7 B7 經濟部智慧財產局員工消費合作社印製 五、發明說明(4 )
命令之功能單元在同時間屬於二群纽D 此由VLIW處理器之一命令所使用之欄位组合相當於一發 出槽。通常,正常發出槽之大小與第一以及第二命令以及 正常命令ί使用包含—作業碼糊位、二輸入暫存器選擇爛位 以及一結果暫存器選擇欄位之發出槽)相同。在此案例中, 用於此具體實施例之第三命令之攔位涵蓋一整數數目之正 常發出槽。MUW處理器中,命令所使用的發出槽爲一稀 少資源:程式命令所使用的發出槽越大(相關指令所使用相 關數目之發出槽數目之總和),程式越慢。所以,較佳地是 用於第三命令之正常發出槽數目小於以任何组合之正常命 令實現與第三命令相同功能所需要之正常發出槽數目^第 三命令只有在此情況下節省發出槽,其爲一稀少資源。 甚至,使用正常命令之第三命令製作亦將意義爲這些正 常命令之中間結果必須以相當於正常暫存器大小之精確度( 例如64位元或是8個8位元元素之向量)代表。使用第三命令 將组合一些正常命令、中間結果之效應,假使需要時可以 較高精確度代表,如許多信號處理應用(如影像或是音訊信 號)中之案例。 較佳地是,各指令由固定數目之發出槽组成,其中各發 出槽與至少一能夠處理命令之功能單元結合a不同之功能 單元k供給不同群组之命令3功能單元與發出槽結合。當 一指令發出時’命令由發出槽供應至與發出槽結合之功能 單元=—分別與第—以及第二命令結合之第一以及一第二 功能單元被提供,且與第一以及第二發出槽結合之第三命 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公釐) _ 裝--------訂---------線 <請先閱讀背面之注再填寫本頁) 4 6 94 0 A7 B7 經濟部智慧財產局員工消費合作社印製 五、發明說明(5 7被提供j所以第—以及第二命令被發出至不同功能單元 第一冲令之案例中’第三功能單元認知到必須使用第 处以及第—發出槽,且第—以及第二功能單元就認知到不 把使用第一以及第二發出槽。第三功能單元之啓動爲由第 以及第—發出槽其令之一之作業碼觸發。較佳地是,此 作業碼欄位控制第三功能單元以參考至第一以及第二發出 槽之運算元的作用。並不是第一以及第二發出槽其中之一 y、可以包含在其本身執行之命令而不使用其他發出槽;且 其他發出槽發出正常命令如運算元事後處理或是事前處理 、條件執行等之修改信號。此情形將限制第三功能單元命 令之可能功能爲那些可能使用爲可以使用—發出槽執行之 正常命令之命令,以及那些命令之修改。此限制將排除在 多媒體信號處理應用中的許多可利用命令。 本發明亦有關於以彈性指定欄位至指令而用於编譯¥1^评 處理器程式之編譯器以及有關於具有此種彈性指定櫚位之 程式。 圖式之簡單説明 本發明這些以及其他特性將以附圖中的例子方式解釋, 其中 圖1爲如本發明VLIW處理器之方塊圖; 圖2A-C爲指令字格式的圖; 圖3爲用於發出槽之解碼電路之方塊圖; 圖4爲編譯程式之流程圖; 圖5命令至指令槽之指定3 -8- 本紙張尺度適用中國國家標準(CNS)A4規格<210 X 297公釐)一 '---- -------------裝--------訂---------線 (請先閱讀背面之注意事項再填寫本頁) 46 94 0 7 第88105947號專利申請案 中文說明書修正頁(90年7月) 五、發明説明( A7 B7 5a 經濟部中央樣準局員工消費合作社印製 元件符號說明 10 指令字記憶體系統 11 程式計數器 12 解碼及發射電路 14a-k 功能單元 20a-e 槽 22a-e 作業碼 24a-e 運算元 26a-e 運异兀 28a-e 結果 29a-b 超級槽 30 部分解碼及發射電路 32a-c 功能單元 34 暫存器檔 50a-d 第一節點 52a-e 第二節點 300 指令解碼器 302a-b 讀取埠 304 結果寫入單元 342 寫入埠 -8a - (請先閲讀背面之注意事項再填寫本頁) 本紙張尺度適用中國國家揉準(CNS) A4規格(210X297公釐) 46 94 07
五、發明說明(6 ) 經濟部智慧財產局員Η消費合作社印製 具體資施例之'詳鈿説:明 圖1爲VLIW處理器之圖,vuw處理器包括一指令字記憶 體系統1 °—程式計數器11、—解碼以及發射電路f 2、功 能單元14a-k以及一多埠暫存器檔16。計數器u耦合至記憶 體系㈣之位址輸入。記憶體系統1〇具有一分割爲發出槽 (亦稱爲指令匯流排)之指令發出埠(沒有顯示)。_發出槽具 有—些功能平行路徑用於路由現行緩衝於發出暫存器内的 指令字單獨位元。發出暫存器之一輸出耦合至解碼以及發 射電路丨2 =電路丨2之輸出耦合至功能單元丨4a_k以及耦合至 夕埠暫存器檔16。暫存器檔16之讀取埠以及寫入埠耦合至 功能單元14a-k。記憶體系統丨〇在程式計數器u控制下連續 供應指令至解碼以及發射電路丨2。較佳地是,系統1〇利用 指令快取及/或預先提取,但此不是本發明之本質。系統1〇 亦可以在輸出指令之前執行以壓縮格式儲存之指令字的解 壓縮運作。解碼以及發射電路12接收指令字。電路12將由 記憶體系統10產生之功能平行路徑視爲欄位之收集,各欄 位與至少一路徑結合。一集合之欄位組成一命令β 一集合 之搁位形成單一指令字3 圖2 Α以第一格式顯示一指令字,其中該指令字被劃分爲 —些槽20a-e。各相關之一槽20a_e分別對應於一相關命令。 各槽具有一作業碼22a'e欄位、運算元24a與26a-e之二攔位 (表示爲至暫存器檔I6内相關暫存器之參考)以及—結果28a_e 之目標欄位(表示爲至暫存器檔16内相關暫存器之參考)6 圖2B ’ C以第二格式顯示一指令字,其中多重槽已經被组 本紙張尺度適用中國國家標準(CNS)A4规格(210 X 297公釐) *!!丨丨丨丨丨丨丨!裝i —丨丨丨丨丨訂I丨丨丨*線 f讀先聞讀背面之注意事項再填寫本頁) 4 6 94 0 A7 B7 五、發明說明(7 ) 合爲超級槽” a例如,超級槽29a組合傳統槽2〇a以及2〇b 欄位,且超級槽29b组合槽20c-e攔位。超級槽格式能夠使製 作命令使用較以單一傳統槽製作命令爲多的運算元。一般 而 T,各獨立槽 22a-e、24a-e、26a-e、28a-e在超級槽 29a 與29b中各具有與傳統槽2〇a_e相同的功能或是沒有任何功 能》例如,攔位24a-e以及26a-e中任一特定欄位以第一格式 以及第二格式定義一運算元,或是沒有利用任何格式。攔 位22a-e*任一特定欄位使用於以第一格式以及第二格式表 π的作業碼,或是沒有利用任何格式。欄位28a_e中任一特 定欄位用於以第一格式以及第二格式表示的目標,或是沒 有利用任何袼式3另一方面,以第二格式表示的攔位22a_e ' 24a-e、26a-e以及28a-e具有與以第—格式表示的不同目 的。 圖3爲VLIW處理器之圖,具有部分解碼以及發射電路3〇 、功能單元32a-c以及部分多埠暫存器檔34 ^部分解碼以及 發射電路30包括一指令解碼器3〇〇耦合至功能單元32a_c^單 元32a-c耦合至暫存器檔34之讀取埠302a,3〇2b。結果寫入 卓元j〇4輕a至暫存器檔34之窝入;t阜342 3讀取淳302a,b輸 出耦合至功能單元32a-c輸入。功能單元32a_c耦合至窝入埠 342。解碼以及發射電路丨2包含類似圖3各發出槽之電路。 解碼以及發射電路12依據各攔位功能處理欄位22a_e、24a_e 、26a-e以及28a_e產生之資訊。各運算元欄位24a_e ' 26a_e 與暫存器檔16之相關讀取埠結合。解碼以及發射電路12利 用欄位24a-e ' 26a-e内容以定位址於相關讀取埠。類似地是 本紙張尺度適巾國國家標率(CNS)A4現格(21G X 297公楚.) _!! — !!·裝 i I f請先閲讀背面之注意事項再填寫本頁) 訂· --線· 經濟部智慧財產局員工消費合作社印製 經濟部智慧財產局員工消費合作社印製 4 6 9 4 0 / A7 ____B7____ 五、發明說明(8 ) ,目標欄位28a-e相當於暫存器檔16之窝入埠。解碼以及發 射電路12利用攔位28a-e内容以定位址於相關寫入埠。各作 業碼攔位22a-e供應至解碼以及發射電路12内之相關指令解 碼器3 00,而解碼後的作業碼供應至所選擇的其中之一功能 單元14a-k °通常’解碼以及發射電路12利用管線運作,例 如藉由在指令字解碼期間内啓始運算元提取。由指令字產 生之命令私碼以及提取仍然在執行而前·—指令字之命令仍 然正在執行,且甚至更早指令字命令產生之結果被寫入至 其目標位置°因爲欄位22a-e ' 24a-e、26a-e以及28a-e之功 匕爲預先定義且與格式無關,運算元提取可以在指令解碼 已經完成之前開始。 多功能單元14a-k被组織爲一群組,如圖3所示之群組。各 群組與第一格式之一指令字内的發出槽結合a當解碼以及 發射電路12檢測到第一格式之指令字時,電路丨2決定假使 有各槽與單元群組與結合時,必須在該槽執行命令。因此 ,解碼以及發射電路丨2將使群組中的單元同時執行。該功 能單元依序接收控制信號以執行命令3通常,同類型之功 能單元存在於不同群組。例如,各群組包含—算術邏輯單 元(ALU)。此情形防止由同時使用各群組至少一功能單元所 造成的瓶頸。 一些功能單兀I4a_c不止屬於一群组。這些單元在下文視 爲超級單元。各超級單元丨43^與至少二特定群组結合。此 意義爲各超級單元Ma_c可以由讀取埠利用運算元至與這些 特定群,组結合之暫存器標16。亦且,超級單元Μ^以^ '11 - 本紙張尺度適用令國國家標準(cps)A4規格⑵G x 297公楚> ΙΓ ---ί II I I I--裝——訂 ----------線 (請先閱讀背面之注意事項再填寫本頁) A7 B7 經濟部智慧財產局員工消費合作社印製 五、發明說明(9 ) 用寫入埠至與這些特定群組結合之暫存器檔16。超級單元 14a-c命令來自以第二格式表示的指令字。此命令位於超級 槽29a以及29b =在超級槽的運算元欄位24&,b以及26a,b 伺服由超級單元l4a-c之暫存器樓16提取運算元。各欄位24a ,b以及26a,b與所有指令字之相同讀取埠結合,無論指令 字格式=結果,提取可以在格式決定之前開始。類似地是 ,目標欄位28a,b伺服爲控制寫入埠至暫存器檔16。各這 些欄位與所有指令字的相同寫入埠結合,與格式無關。當 解碼以及發射電路12使一特別超級單元開始執行—命令時 ,電路12將防止任何功能單元丨4 d _ k開始執行與該超級單元 結合之群組内的命令。在超級單元29a,b内的解碼後的作 業碼襴位22a,b相當於與那些群组結合之傳統槽2〇a,6之 作業碼22a’ b,且將用以只控制相關超級單元141〇。例如 ,可以只利用這些槽其中之一的作業碼控制超級單元,但 疋亦可以使用一組合電路以组合至少二那些槽之作業碼。 因此,較大數目之不同運作可以定義於超級單元Ma_c。超 級單元14a-c執行需要至少二運算元及/或產生至少二結果之 運作的命令製作《此運作的例子爲: AV(R1,R2,R3.·)產生至少三運算元ri,r2,R3..之平均; ME(R1’R2,R3‘.)產生至少三或五運算元111112,|13之中 間數; ,’· S0(R1,R2) 搜尋一運算元R1,R2,較大運算元放置 在結果暫存器中而較小運算元放置在另一結果暫存器中; TP(R1,R2,R3,R4.·)以列以,汉2,尺3,反4轉置矩陣; -12, 本紙張尺度適用t國國家標準㈣似4 χ纟·97公爱5 I 1---------I J I - -------^- — — — — — 1 — (請先閱讀背面之注意事項再填寫本頁) 4 6 94 ϋ A7 B7 RT(R1,R2,R3) 上 五、發明說明() "*件Rl,R_2,R3轉動向量於特定角度 在一傳統VL1W處理器中, 上述運作需要一些依序執行之 命令。在多埠暫存器檔中的 ^暂存器在一些案例中使用以代 表一組較小數目之組合6伽 J如’假使暫存器爲64-位元寬時 ’每暫存器可以用4個!6•位 凡數目表示D在此案例中,各 這些數目可以分別運作。例 列如,馬回應一 add命令,一功 能單元可以由二暫存器增加4對數目。 方式亦可以用於超級單元 ,±丄 _ 凡例如,4個暫存器可以代表I6- 位元的一4x4矩陣。各塹左。。 贫俘β包含一相關四元素:
Rl=(all,al2,al3,al4) , po ,,, R2=(a21,a223a23,a24) , ^(a3U32,a33,a34),R4=(a4l我⑷,叫,代表矩陣之 相關-列。儲存在不同暫存器但是在相對應四元素相同位 置的-组s件代表矩陣之H轉置運作中,不同列作 是在相同位置之元件被一起放置暫存器RESULT卜 (al 1^12,&13^14),^ΚΕ5υίΤ2=(3ΐ2,&22,α32,α42) 置矩陣之超級單元可以利用二發出槽並產生—竹4矩陣之二 列=藉由提供二命令用於此功能單元,其中之一命令用於 產生轉置矩陣之上邵二列而另一命令用於產生底部二列, 轉置非常快速獲得。 一類似運作爲一混洗運作: SH R1,R2,R3->R4(,R5) 此運作依據定義在暫存器R3之置換而置換及/或選擇儲存 在暫存器R1以及R2之數目並使得數目以置換後的順序儲存 13- 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公釐〉 I I--— linn--裝 ------—訂 ------ !線 (請先閱讀背面之注意事項再塽茸本頁> 經濟部智慧財產局員工消費合作社印製 469407 A7 B7 經濟部智慧財產局員工消費合作社印制衣 五、發明說明(11 在暫存器R4且可以選擇儲存在冑存器R5。 在些案例中,至少—運算元具有一標準値。在這些案 例中’疋義頦外(命令是有利的’其適合於單一發出槽。 在這額外命令中,作業碼定義特別的運作以及至少-運算 元標準ίϋ準値可以隱含地定義。額外命令包含只來考 至其餘運算元料算元。此命令可^在具有第-或是第 二格式之指令字的單—發㈣°當解碼以及發射電路12碰 到此指令時’供應標準引數至超級單元本身。因此,超級 單以以利用-發出槽以及至少二發出槽接收命令。在先 前案例中,標準値被使用且較大數目之命令可以包含在指 令字内a 在圖^之具體實施例中,各超級單元利用與整數數 之功能單元結合之發出槽的所有攔位超級單元可以 利用-些但不是所有發出槽的所有欄位。例如,此 級單元可以處理3運算元,且中— , Λ Υ 一連其兀由—特別發出槽的 襴位產生出來而第三運算元來自另— _ .,. 發出槽。當此另一單 兀被使料,相關發出槽的其他欄 ^ ^ „ ^以被製局可使用於 其他早以與另-超級單元平彳頂始執行。例如,這 他功能单元可以只具有一運算元 —、 开1疋不具運算元戎是 生結果=這些其他單元將只利用另— 一 .. 上, 早疋不使用的一些欄 位=不且,這些其他功能單元 — «Ο -— j^JL 〇ΰ — i_ a 使用除了 .另-發出槽欄位的發出槽_ 把早凡 , 功能單元強制複雜限制在可以由單_ .上然而,另一 ^ A ^ &令字接收命今的簞 疋組&上。藉由使用發出槽的所有 是至少藉由不使 ----------------裝----I — 訂-------I (請先閲讀背面之注意事項再堉寫本頁) 14 1 本紙張ki® ^ +関練準(CNS)A4祕(21G X 297公^ 469407 A7 B7 五、發明說明(12 ) 用部分指定槽的其餘攔位’而避免此限制。此情形使能夠 利用較高程度之平行性並使指令字的編譯更容易。 (請先閱讀背面之注意事項再壙寫本頁) 一編譯器產生VUW處理器的指令字3编譯器以命令數目 以及命令間之資料相關性說明程式。編譯器搜尋—種放置 命令至一组指令字的方式。編譯器執行在程式執行期間内 需要順序執行之指令數目之最小化。圖4爲一種編譯程式方 法的流程圖。在第一步驟40中,一組運作與運作之間的資 料相關性之規範一起接收。依序,編譯器開始搜尋—種發 出運作命令至一组指令字的方式。第二歩驟U測試命令是 否已經被發出於接收的所有運作。假使是時,編譯程序就 完成。假使不是時,第三步驟44選擇—運作用於尚未發出 的命令以及用於先前產生其運算元之.,原始運作”,已經 被發出。甚至,在原始運作之命令已經被發出之指令字之 後,最早指令字由指令字組選擇出。第四步驟46測試是否 "Tilb建立包含於已經包含在最早指令字内的命令,加上用 於所選擇運作的命令。步驟46考慮命令之特性以及功能單 元之群組。測試是否可能: -發出命令至不同群處中;以及 經 濟 部 智 慧 財 產 局 員 工 消 費 合 作 社 印 製 _發出超級功能單元之命令,以致於沒有其他命令使用與 那些超級功能單元結合之群組的發出槽。 假使此情形爲可能時,所選擇指令字被更新且該方法回 轉至第二步驟42。侃使此情形爲不可能時,第五步騍48被 執行,其中所選擇指令字的依序指令字被選擇且第四步驟 46被重複執行。 -15- 4 6 9407 A7 五、發明說明(13 圖5爲更進一步解釋第四步驟46的圖。在左邊,一些運作 顯tf爲第一節點5〇a-d。在右邊,—些發出槽顯示爲第二節 點52a-e。第四步驟之工作爲測試是否有第一節點5〇a_d映射 至第二節點52a-e。在此映射中,—超級功能單元5〇d之運作 映射至至少二發出槽52d,e。其他第—節點50a_d相當於傳統 運作且各節點映射至單一相關之第二節點52a_e。各節點 52a-e相當於與包含—能夠執行相關運作之功能單元之群組 結合之發出槽。當然,圖4之流程圖只是一簡化的例子。— 般而言’最小化在命令之間的資料相關性之下執行(亦即, 假使一第一命令使用爲由第二命令輸入一結果時,這些命 令必須放置在不同指令字内,包含第—命令的指令字緊接 著包含第二命令的指令字)。此外,最小化在功能單元能夠 開始平行執行指令字的所有命令之限制下執行。 111 I 1 I I I I I--- - I I (請先閱讀背面之注意事項再填寫本頁} -¾11, -線. 經濟部智慧財產局員工消費合作社印製 -16 - 私紙張尺度適財國i^^CNS)A4規格⑽x视

Claims (1)

  1. 經濟部中央標隼局we;工消費合作社印裝 46 94 07 第88105947號專利申請案 部 中文申請專利範圍修正本(90年7月) 〇8 六、申請專利範圍 ^ I ^ "* 丨一 Cfv^- 1. 一種超大指令字CVLIMO處理器,包括: 補充 一才曰令發出卑,用於供應超長指令字,每個個別指令 字包括多個命令以及在命令(20a_2〇e)之間分配之欄位 (22a-28a ; 22b-28b ; 22e-28e) ’ 其中.: 在超長指令字之間的第一字(圖2a),包括涵蓋第 一爛位 (28a)的命令(20a)的第一個命令,以及涵蓋第二欄位(28b) 的命令(2〇b)的第二個,以及 在超長指令字足間的第二字(圖21)),包括涵蓋第一欄位 以及第二欄位的命令(29〇的第三個命令; 一第一功能單元(14d),耦合至該發出埠’用於處理第 一命令; 一第二功能單元(14g) ’耦合至該發出埠,用於與第— 單元同時處理第二命令;以及 一第二功能單元(14a),耦合至發出埠用於第三命令。 2. 如申請專利範圍第1項之處理器,其中該第三命令涵蓋第 一命令之所有欄位。 3 ·如申讀專利範圍第1項之處理器,其中: 該處理器具有一多埠暫存器擋(〗6); 该指令發出埠供應第一攔位至暫存器檔’以提取一在 第一功能單元所執行之第一命令中使用的第—運算元: π該指令發出埠供應第二櫊位至暫存器檔’以提取—在 第二功能單元所執行之第二命令中使用的第二運算元. 以及 , 該指令發出埠供應第一攔位以及第二櫊位至暫存器檔 本紙狀a 逋用中國 (2Iflx29741^ ---------擊 訂 ! 線· (請先閱讀背面之注意事項再填寫本頁) 申請專利範圍 4. 經濟部中央榇隼局貝工消費合作社印製 469407 L年7月/句^正 以提取在第三功能單元所鈾仏 ' 神一 [______ 補充 斤執行 < 弟三命令中使用的多 里運算兀。 如申請專利範圍第3項之處理器,其中. 該第-功能單元將執行第一命令之第一結果寫入在第 —命令之第-相關齡中指示的暫存器檔之第一位址; 一該第二功能單元將執行第二命令之第二結果寫入在第 -命令(第二相關攔位中指示的暫存諸之第二位址; 以及 該第三功能單元分別將執行第三命令之第三和第四結 果寫入在第三命令之第_和第二相關欄位中指示的暫存 器樓之第三和第四位址。 如申請專利範圍第1項之處理器,配置用以在第三命令之 另一執行階段同時,執行第一及/或第二命令其中之—的 執行階段。 如申請專利範園第5項之處理器’包括第四功能單元,能 夠執行該第一和第三命令,當第一命令執行時第四單元 運作於供應一標準内容,取代由第二欄位内容演譯出的 資訊至功能單元。 一種編譯超大指令字(VLIW)處理器(圖”指令之方法,諸 處理器包含功能單元群组(14a-14k),各指令字分別被允 許為最多包含各功能單元群組之一相關命令,該處理器 亦包括至少一與至少二群組相關之其他功能單元(14a_ 14c)’包含其他功能單元命令之各指令字不被允許為包 含在該至少二群組中之任一功能單元之命令,該方法包 -2- 本紙狀A適用tHil家棣率(CNS ) A4胁(210X297公釐) ------ΪΓ------年 (請先閲讀背面之注$項再填寫本頁) 1 6 94 A8 B8 C8 D8 六、申請專利範圍 括 修正.補充 ί 8. 9. 經濟部中央標準局員工消费合作社印装 接收必須由功能單元執行之—組命令; 搜尋對指令字所下之命令的一貫指定,該項搜尋包括 從包含功能單元之一命令以及該至少二群組之任一功能 單元之至少一命令之搜尋指令字的刪除。 一種機器可讀取媒體,包括用於執行編譯用於超太指令 字(VLIW)處理器指令之方法的程式,該處理器包括功能 單元(14a-14k)群組,各指令字將分別被允許為最多包含 各功能單兀群組之一相關命令,該處理器亦包括與至少 二群組相關之至少一其他功能單元(14a l4c),包含該其 他功能單兀之命令的每個指令字不被允許包含在該至少 二群組中之任一功能單元之命令,該方法包括: 接收必須由功能單元執行之一组命令; 搜尋對指令字所下之命令的一貫指定,該搜尋包括由 包含功能單元之一命令以及該至少二群組之任一功能單 元之至少一命令之搜尋指令字刪除。 一種在具有用於以指令發出埠之欄位(22a_28a ; ,.22e_ 28e)發出逐次指令字之指令發出埠的超大指令字 處理器上執行電腦程式之方法,該方法包括下列步驟: 執行指令字(圖2a)的第一個該等指令字包括包含分別由 指令發出埠發出之第一和第二欄位(28a,28b)之第—和第 二命令(20a,20b);以及 執行指令字(圖2b)的第二個該等指令字包括包含第—和 第二欄位之第三命令(29a)。 -3- 本紙張尺度適用中國®家揉準(CNS ) A4说格(2丨0〆297公| ) ---------#------訂------線. (請先閲讀背面之注項再填寫本頁) 46 94 07 B8 C8 D8 六、申請專利範圍 10. 如申請專利範圍第9項之方法,其中一 用的所有欄位所組成的欄位(22a_28a ; 22b_28b)包含於該 第二命令中’咸方法包括利用該組櫚位之所有欄位執行 第三命令。 11. 一種包括超大指令字(vuw)處理器程式之機器可讀取媒 體,該程式包含第一指令字(圖2a),該第一指令字包括分 別包含第一以及第二攔位(28a, 28b)之第一和第二命令 (2〇a , 20b);以及第二指令字(圖2b),該第二指令字包括 包含第一和第二欄位之第三命令(29a) 〇 12. 如申請專利範圍第11項之機器可讀取媒體,其中一組由 該第一命令中使用的所有欄位所組成的欄位(22a_28a; 22b-28b)包含於該第三命令中。 13. 如申請專利範圍第11項之機器可讀取媒體,其中一組由 該第二命令中使用的所有欄位所组成的欄位(22a ; 22b_28b)包含於該第三命令中。 ---------蟹-------ΐτ------&· <請先閏讀背面之注意事項再填寫本頁) 經濟部中央梂準局員工消費合作社印製 -4- ΜΛ張尺度適用中困國家梯準(CNS ) Α43^格(2IOX25»7公釐)
TW088105947A 1998-01-16 1999-04-14 VLIW processor processes commands of different widths TW469407B (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US09/008,339 US6076154A (en) 1998-01-16 1998-01-16 VLIW processor has different functional units operating on commands of different widths

Publications (1)

Publication Number Publication Date
TW469407B true TW469407B (en) 2001-12-21

Family

ID=21731066

Family Applications (1)

Application Number Title Priority Date Filing Date
TW088105947A TW469407B (en) 1998-01-16 1999-04-14 VLIW processor processes commands of different widths

Country Status (8)

Country Link
US (1) US6076154A (zh)
EP (1) EP0968463B1 (zh)
JP (1) JP3976082B2 (zh)
KR (1) KR100715055B1 (zh)
CN (2) CN1126027C (zh)
DE (1) DE69933088T2 (zh)
TW (1) TW469407B (zh)
WO (1) WO1999036845A2 (zh)

Families Citing this family (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3790607B2 (ja) 1997-06-16 2006-06-28 松下電器産業株式会社 Vliwプロセッサ
US6151668A (en) * 1997-11-07 2000-11-21 Billions Of Operations Per Second, Inc. Methods and apparatus for efficient synchronous MIMD operations with iVLIW PE-to-PE communication
JP3541669B2 (ja) * 1998-03-30 2004-07-14 松下電器産業株式会社 演算処理装置
WO2000079395A1 (en) * 1999-06-21 2000-12-28 Bops Incorporated Methods and apparatus for establishing port priority functions in a vliw processor
GB2352066B (en) * 1999-07-14 2003-11-05 Element 14 Ltd An instruction set for a computer
TW525091B (en) * 2000-10-05 2003-03-21 Koninkl Philips Electronics Nv Retargetable compiling system and method
EP1340142A2 (en) * 2000-11-27 2003-09-03 Koninklijke Philips Electronics N.V. Data processing apparatus with many-operand instruction
US7003543B2 (en) * 2001-06-01 2006-02-21 Microchip Technology Incorporated Sticky z bit
US6552625B2 (en) 2001-06-01 2003-04-22 Microchip Technology Inc. Processor with pulse width modulation generator with fault input prioritization
US6728856B2 (en) 2001-06-01 2004-04-27 Microchip Technology Incorporated Modified Harvard architecture processor having program memory space mapped to data memory space
US20020184566A1 (en) * 2001-06-01 2002-12-05 Michael Catherwood Register pointer trap
US6604169B2 (en) 2001-06-01 2003-08-05 Microchip Technology Incorporated Modulo addressing based on absolute offset
US20030023836A1 (en) * 2001-06-01 2003-01-30 Michael Catherwood Shadow register array control instructions
US6976158B2 (en) * 2001-06-01 2005-12-13 Microchip Technology Incorporated Repeat instruction with interrupt
US6952711B2 (en) * 2001-06-01 2005-10-04 Microchip Technology Incorporated Maximally negative signed fractional number multiplication
US6601160B2 (en) 2001-06-01 2003-07-29 Microchip Technology Incorporated Dynamically reconfigurable data space
US20030005268A1 (en) * 2001-06-01 2003-01-02 Catherwood Michael I. Find first bit value instruction
US6985986B2 (en) * 2001-06-01 2006-01-10 Microchip Technology Incorporated Variable cycle interrupt disabling
US6886091B1 (en) 2001-06-29 2005-04-26 Koninklijke Philips Electronics N.V. Replacing VLIW operation with equivalent operation requiring fewer issue slots
US6851010B1 (en) 2001-06-29 2005-02-01 Koninklijke Philips Electronics N.V. Cache management instructions
US6889242B1 (en) 2001-06-29 2005-05-03 Koninklijke Philips Electronics N.V. Rounding operations in computer processor
US6552567B1 (en) 2001-09-28 2003-04-22 Microchip Technology Incorporated Functional pathway configuration at a system/IC interface
US20040021483A1 (en) * 2001-09-28 2004-02-05 Brian Boles Functional pathway configuration at a system/IC interface
KR100464406B1 (ko) * 2002-02-08 2005-01-03 삼성전자주식회사 가변길이 vliw 명령어를 위한 디스패치 장치 및 방법
WO2004015561A1 (en) * 2002-08-05 2004-02-19 Koninklijke Philips Electronics N.V. Processor and method for processing vliw instructions
US7574583B2 (en) * 2002-09-24 2009-08-11 Silicon Hive B.V. Processing apparatus including dedicated issue slot for loading immediate value, and processing method therefor
US7315935B1 (en) * 2003-10-06 2008-01-01 Advanced Micro Devices, Inc. Apparatus and method for port arbitration in a register file on the basis of functional unit issue slots
JP4283131B2 (ja) * 2004-02-12 2009-06-24 パナソニック株式会社 プロセッサ及びコンパイル方法
DE602005019180D1 (de) * 2004-09-22 2010-03-18 Koninkl Philips Electronics Nv Datenverarbeitungsschaltung mit funktionseinheiten mit gemeinsamen leseports
CN100461716C (zh) * 2005-01-28 2009-02-11 华为技术有限公司 基于模拟端口的通信方法
US8713286B2 (en) * 2005-04-26 2014-04-29 Qualcomm Incorporated Register files for a digital signal processor operating in an interleaved multi-threaded environment
US8321490B2 (en) 2005-07-28 2012-11-27 Analog Devices, Inc. Instruction-based parallel median filtering
US20070027944A1 (en) * 2005-07-28 2007-02-01 James Wilson Instruction based parallel median filtering processor and method
US8819099B2 (en) * 2006-09-26 2014-08-26 Qualcomm Incorporated Software implementation of matrix inversion in a wireless communication system
US8495604B2 (en) * 2009-12-30 2013-07-23 International Business Machines Corporation Dynamically distribute a multi-dimensional work set across a multi-core system
US9250916B2 (en) * 2013-03-12 2016-02-02 International Business Machines Corporation Chaining between exposed vector pipelines
KR102593320B1 (ko) * 2016-09-26 2023-10-25 삼성전자주식회사 전자 장치, 프로세서 및 그 제어 방법

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5179680A (en) * 1987-04-20 1993-01-12 Digital Equipment Corporation Instruction storage and cache miss recovery in a high speed multiprocessing parallel processing apparatus
JP2835103B2 (ja) * 1989-11-01 1998-12-14 富士通株式会社 命令指定方法及び命令実行方式
EP0474297B1 (en) * 1990-09-05 1998-06-10 Koninklijke Philips Electronics N.V. Very long instruction word machine for efficient execution of programs with conditional branches
US5692169A (en) * 1990-12-14 1997-11-25 Hewlett Packard Company Method and system for deferring exceptions generated during speculative execution
EP0551090B1 (en) * 1992-01-06 1999-08-04 Hitachi, Ltd. Computer having a parallel operating capability
GB2263565B (en) * 1992-01-23 1995-08-30 Intel Corp Microprocessor with apparatus for parallel execution of instructions
JPH05233281A (ja) * 1992-02-21 1993-09-10 Toshiba Corp 電子計算機
DE69325785T2 (de) * 1992-12-29 2000-02-17 Koninkl Philips Electronics Nv Verbesserte Architektur für Prozessor mit sehr langem Befehlswort
JPH07104996A (ja) * 1993-10-05 1995-04-21 Kofu Nippon Denki Kk マイクロプログラム制御装置
EP0729616B1 (en) * 1994-09-15 2002-08-28 Koninklijke Philips Electronics N.V. A data processing system comprising data processing units and an expander
US5600810A (en) * 1994-12-09 1997-02-04 Mitsubishi Electric Information Technology Center America, Inc. Scaleable very long instruction word processor with parallelism matching
JP2931890B2 (ja) * 1995-07-12 1999-08-09 三菱電機株式会社 データ処理装置
US5787302A (en) * 1996-05-15 1998-07-28 Philips Electronic North America Corporation Software for producing instructions in a compressed format for a VLIW processor
DE69728495T2 (de) * 1996-05-15 2005-02-24 Koninklijke Philips Electronics N.V. Vliw-prozessor zur verarbeitung eines komprimierten instruktionsformats

Also Published As

Publication number Publication date
EP0968463A2 (en) 2000-01-05
DE69933088T2 (de) 2007-04-05
CN1258361A (zh) 2000-06-28
DE69933088D1 (de) 2006-10-19
JP3976082B2 (ja) 2007-09-12
WO1999036845A3 (en) 1999-10-07
US6076154A (en) 2000-06-13
CN1516003A (zh) 2004-07-28
EP0968463B1 (en) 2006-09-06
WO1999036845A2 (en) 1999-07-22
KR100715055B1 (ko) 2007-05-07
CN1126027C (zh) 2003-10-29
KR20000076285A (ko) 2000-12-26
JP2001515635A (ja) 2001-09-18

Similar Documents

Publication Publication Date Title
TW469407B (en) VLIW processor processes commands of different widths
US6356994B1 (en) Methods and apparatus for instruction addressing in indirect VLIW processors
US5918035A (en) Method for processor modeling in code generation and instruction set simulation
US7506137B2 (en) Methods and apparatus for initiating and resynchronizing multi-cycle SIMD instructions
TWI363294B (en) Virtual architecture and instruction set for parallel thread computing
TW518511B (en) Method of executing an interpreter program
US7574583B2 (en) Processing apparatus including dedicated issue slot for loading immediate value, and processing method therefor
KR19980703033A (ko) 프로세서
JP2003140920A (ja) デバッグ支援装置、コンパイラ装置、デバッグ支援プログラム、コンパイラプログラム、及びコンピュータ読取可能な記録媒体。
US5119324A (en) Apparatus and method for performing arithmetic functions in a computer system
JPH04336378A (ja) 情報処理装置
US6542989B2 (en) Single instruction having op code and stack control field
TW504644B (en) Parallel data processing
TW476887B (en) Data processor comprising an arithmetic logic unit
US20060095743A1 (en) Vliw processor with copy register file
US5812845A (en) Method for generating an object code for a pipeline computer process to reduce swapping instruction set
TWI773783B (zh) 用於基於暫存器的複數處理的設備、方法、積體電路、電腦程式及電腦可讀取儲存媒體
Huang et al. ASIA: Automatic synthesis of instruction-set architectures
JP2007334819A (ja) ベクトルリネーミング方式およびベクトル型計算機
US7197653B2 (en) Microcontroller for fetching and decoding a frequency control signal together with an operation code
JP2553728B2 (ja) 演算装置
JP2812501B2 (ja) パイプライン制御方式
David Uppaal DBM library programmer’s reference
JPH11282693A (ja) Mcuシミュレーション装置、そのシミュレーション方法及びそのシミュレーションプログラムを記録したコンピュータ読み取り可能な記録媒体
JPH11119997A (ja) Liw命令実行方法、スカラプロセッサ及びliwプロセッサ

Legal Events

Date Code Title Description
GD4A Issue of patent certificate for granted invention patent
MK4A Expiration of patent term of an invention patent