TW571206B - Automated processor generation system for designing a configurable processor and method for the same - Google Patents

Automated processor generation system for designing a configurable processor and method for the same Download PDF

Info

Publication number
TW571206B
TW571206B TW090103671A TW90103671A TW571206B TW 571206 B TW571206 B TW 571206B TW 090103671 A TW090103671 A TW 090103671A TW 90103671 A TW90103671 A TW 90103671A TW 571206 B TW571206 B TW 571206B
Authority
TW
Taiwan
Prior art keywords
processor
instruction
register
instructions
tie
Prior art date
Application number
TW090103671A
Other languages
English (en)
Inventor
Albert R Wang
Richard Ruddell
David W Goodwin
Earl A Killian
Rangarajan Srinivasan
Original Assignee
Tensilica 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 Tensilica Inc filed Critical Tensilica Inc
Application granted granted Critical
Publication of TW571206B publication Critical patent/TW571206B/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/30145Instruction analysis, e.g. decoding, instruction word fields
    • G06F9/3016Decoding the operand specifier, e.g. specifier format
    • G06F9/30167Decoding the operand specifier, e.g. specifier format of immediate specifier, e.g. constants
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • 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

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)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • Advance Control (AREA)
  • Executing Machine-Instructions (AREA)
  • Stored Programmes (AREA)
  • Devices For Executing Special Programs (AREA)

Description

^712〇6
五、發明說明(/ ) ·. 經濟部智慧財產局員工消費合作社印製 發明背景 1 .¾:發明之頜城 本發明是針對電腦處理器〃以及用以發展電腦處理器之 系統及技術,並且尤其是針對具有供使用者選擇之可組配 持點之處理器以及相關的發展系統及技術。 2 .相關技衞夕背景 先前技術處理器一般已有相當固定之目的,其不易修 改或擴展。對於處理器之有限度展延性及他們的支援軟體 工具,包含增加暫存器至暫存器計算指令和簡單狀態(但不 是暫存器檔案)之能力,已經被提供在某些先前技術系統 中。這有限度展延性在目前技術中是一種主要的發展;許 $使吊這些改進之應吊得到其四倍或更好之加速或效率改 進: 但是,這些先前技術系統之有限度展延性表示其他的 應用不可能適當地被顧及。尤其是,需要使用具有固定的 3 2-位元寬度暫存器之現存的核心暫存器檔案時,一般而 Μ,其阻礙在需要額外精確性或複製功能單元之應用中使 Π]這些改進,其中資料運算元組合寬度是超過32位元。 另外,核心暫存器檔案時常缺少執行某種指令之足夠的讀 取埠或寫入埠。因爲這些理由,故在技術上需要支援新的 η存器檔案之添加,該新的暫存器檔案在讀取埠和寫入埠 之寬度及數目上是可組配的。 暫存器檔案之添加使得需要在這些檔案和記憶體之間 傳送資料。核心指令集已包含核心暫存器檔案之載入指令 4 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公釐) (請先閱讀背面之;i意事項再填寫本頁)
裝--------訂---------線II _ 經濟部智慧財產局員工湞費合作社印製 5712〇6 〜^__B7 五、發明說明(Z), 以及儲存指令,但是另外的暫存器檔案需要另外的載入和 儲存指令。這是因爲可展延的暫存器檔案之一基本理由是 允許它們按大小而安排所需要的資料形態和頻寬=尤其 是,暫存器檔案資料寬度可以較寬於被其餘指令集所支授 之寬度=因此,不適合於利用傳送資料至被核心所提供之 暫存器而載入和儲存資料;應該是可能從新的暫存器檔案 直接地載入和儲存資料數値。 進一步地,雖然先前技術系統支援處理器狀態之添 加,該狀態之數量一般是小的。結果,在技術上需要容易 地將較大的狀態位元數目添加至處理器結構。這狀態時常 需要被操作系統所切換。當狀態數量增加時,將需要使切 換時間最小化之新的方法。這樣的方法在先前技術處理器 中已經被製作(例如,MIPS R2000輔助處理器引動位元)、' 但是,在技術上仍然需要利闬從輸入規格自動地產生指令 亨列及邏輯而進一步地延伸這狀態,以支援即時操作系統 (RTOS)及需要去了解新狀態並且以一種適宜的方式去使用 它之其他的軟體。 進一步地,先前技術處理器不允許核心處理器製作和 延仲問之邏扪的片同使m 在肢人和儲存指令延仲 中,在核心和延伸之間共同使用資料快取是重要的。這使 得以新組態指令方式的儲存可被核心之載入所得知,並且 反之亦然,以確保快取的一致性--分離快取將需要特殊機 構以保持它們前後的一致性,這是可能但不適當的解決辦 法同時,資料快取是核心處理器中之一組較大的電路, 5 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公釐) Μ-------1 ---------^ (請先閱讀背面之注意事項再填寫本頁) 571206 經濟部智結財產局員工消費合作社印制农 A7 B7 五、發明說明(3 ) ^ 其促進核心處理器尺寸的縮減: 暫存器檔案之添加同時使得需要支援放置至這些暫存 ^之1位準語言變數的安置:先前技術_理器使E先萨技 _ 旧& ·二;]、i£义援使tjj者契數安置之核七、暫存器窗条四 β:,對於被使Ώ者定義之暫存器檔案,編輯器之安置被期 待並且應該被支援。爲了將變數安置至暫存器,支援使用 者定義之暫存器檔案之一組編輯器需要知道怎樣溢放、復 ®、以及移動這樣的暫存器以便執行習見的編輯器功能。 與先前技術處理器系統相關但更普遍的一種限制是其 • U 3 5授化準:指t時常衿添加至一組處理器以支抟適 ΓΓ於嚿弔之新的資料形態(例如,許多D S P應用需要處理 =執行飽和算術以取代通常地被處理器所支援之習見的補 數算術 >。先前技術系統允許支援新資料形態的指令被添 W ’但是當使吊這延伸寫出高位準語言指令時,其必須映 Μ U A新的指令成爲現存的語言資料形態。在〜些情況中 -^ J GΠ ?,丨 T 態可能 T: L:汴 例如,考慮飽和算術範例。如上面所提到的,許多Dsp 演Π ::去則採用算術之優點,該算術優點在使用之位元數目 缺位之β小數値或溢位之最大數値時飽和,以取代傳統二 的補數系統中的包紮方式。但是,C資料形態不具有這些 # β --C語言需要 i n t a ; i n t b ; i n t c = a - b : 6 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公釐) (請先閲讀背面之注意事項再填寫本頁) 裝 571206 A7 B7 玉、發明說明(4 ) 具有包紮語義=其可使用具有新的內在功能之內建幵: 態而衿寫成: int a ; int b ; »nt c = SATADD(a. b) » 但這是一種不合適的而且難解的演算法則(寫人者簡單 地認)¾ S ATADD功能如十)。 另一方面,添加新的資料形態允許+運算子以那些幵 態不同地作用一C已經將它應用至整數加法和浮點加法操 作之不同的操作上,故延伸是自然的。因此’使弔新資料 二U丨υ π K編碼卬: d s ρ 1 6 a ; d s p 1 6 b : dspl6c=a- b: it-中dsp 1 6定義一組飽和資料形態。因此,最後一行 指示-組飽和加法,因爲其兩組運算元是飽和資料形態。 $敗的Ω輯器安排指令以使笸線輸送之延遝砹小化· iu Μ,先前技術系統不能使吊指令規格以延伸編輯器的資 η結_友排 例如,·λ指令以兩個週期之潛伏期而被管 ^ i — — — — — — ^--I--— II <請先閱讀背面之注意事項再填寫本頁)
L0-- 經濟部智慧財產局員工消費合作社印^J 的因 考。 參遲 所延 令的 指期 的週 著 I 接有 之具 後而 入束 載結 在未 考人 參載 果爲 如因Γ1 d , 將 d a 此它 丨 因,列Γ1 。果Lfad 送結此10 輸Λ. 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公爱) ^1206
、發明說明(F) load r 2 . a d d r 3 store r2. addr4 將具有雨組延遲週期。如果編輯器重新排列這字列成 骂: load r 1 . addr1 load r2. addr3 store r 1 . addr2 store r2 · addr4 則該序列沒有受到週期延遲地執行。這是被稱爲指令 安排之一種普遍的最佳化技術。先前技術的指令安排需要 將它們的輸入及輸出提供給指令使用之管線輸送步驟之 ^ ’ id迠卻不使用這些資訊於最新被添加之指令。 先前技術之另一限制是,被添加指令之計算部份必須 在管線輸送單一週期中被製作。一些計算,例如大運ΙΪ元 之乘;去運算,具有較長於一般R1 SC管線輸送步驟之一組 邏©延遲。使用先前技術而包括這樣的操作,將需要處理 器時脈速率被減低以提供更多的時間而完成該計13。因 …· i招朽延ί中許$ π線輸送$驟之α指i了 除了允許在多重週期上之計算被達成之外,允許運算元在 不同的管線輸送步驟中被消耗並且被產生可能是有益的。 例如,一組相乘/累積操作一般需要兩個週期。在第一 週期中,乘法器以進位儲存形式而產生乘積;在第二週期 中進位儲存乘積以及累積器使用單一位準的進位·儲存·相 ,肟從=m 8纟値被減低至兩組數値,並π.抟茗在一組進位- 8 本纸張尺度適用中國國家標準(CNS)A4規格(210 X 297公釐) (請先閱ff背面之注意事項再填寫本頁) 經濟部智慧財產局員工消費合作社印^^ · I I 1« ϋ I I ϋ · .1 I I I n ϋ ϋ I I n n ^ n ϋ n ϋ n ϋ ·1 n ϋ ϋ I n ϋ n ϋ ϋ ϋ n ϋ · 571206 經濟部智慧財產局員工消費合作社印制衣 A7 B7 五、發明說明(G ^ 傳輸-加法器中被相加:因此,最簡單的表示,将是從任€ 原始運算元至目的地的相乘/累積指令使弔兩個週期;但 是,不可能在相同累積器暫存器中進行緊接的相乘,累積, 因爲兩週期的潛伏期將導致一週期的延遲。但是,實際上♦ 從累積器進至累積器出之邏輯僅需要一個週期,因此一種 ι:ί好的方法是提供一種更強有力的說明·例如:
D —ΑτΒ * C 其說明在步驟丨中採用Β和C,在步驟2中採弔A, 、’if:且在步驟3中產生D。因此,從B或C至D之潛伏期是 3-1=2,並且從A至D之潛伏期是3-2=1。 由於多週期指令之添加,同時必須產生適合於被添加 指令之目標管線輸送的互連邏輯。這是因爲由於每一週期 一組指令下,無潛伏期之一組指令可產生在接著週期上導 致一組連結之結果’因爲該接著指令總是被延遲一組迥 期一般而言,如果只可在每一 K週期上僅發出指令,則 那些指令的潛伏期是L週期並且L > K,接著那些指令無法 在他們的目的運算元上導致連結(指令仍然可在他們的原始 連算元上互連,如果他們的原始運算元被一組兩週期之指 ϋ ·例如一組拙人)如采可能Α付個迎期之新紺 態指令,則需要有在新組態指令結果上互連之指令。 對於不同的處理器結構而言,多數的指令集結構具打 冬fi製作。先前技術系統組合指令語義規格以及指令製作 邏輯並且不分離這些,其可能允許一組參考語義被使用於 多重製作上=參考語義是指令集文件之一組構件。其傳統 9 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公釐) I I I I I I ·1111111 ^ . I------- (請先閱讀背面之注意事項再填寫本頁) 7 5 06 2 五 經濟部智慧財產局員工消費合作社印製 A7 __ B7 ---——- -、發明說明(7 ) ·· ::以英文字及更多準確的標誌而說明指令語義·英文宇時 常是含糊不淸的或易於錯誤的,但是較容易閱讀。因此, 其提供指令之序言、目的、以及不拘謹的定義。更多正式 的定義是有助於能精確地了解指令之含意。參考語義之一 種目的是作爲這精確的定義。其他的構件包含指令字詞、 組合語句、以及文字說明。先前技術系統在延伸語言中具 冇足夠的資訊以產生指令字詞和組合語句。由於參考語義 之添加,僅有文字說明被遺漏,並且需要包含指令說明規 格,其可被轉換成爲格式化的文件以產生一種習見的1SA 說明書: 由於它們增加的彈性和能力,包含上面特點之處理器 發展技術將使先前技術的設計確認方法不再有效。配合上 面特點,因此,需要證實被產生的處理器許多方面之正確 性,其包含: --輸入參考指令語義之正確性: …輸入製作指令語義之正確性; 一利用指令語義編輯器轉譯至應用程式語言; --利用指令語義編輯器轉譯至硬體說明語言(HDL); --利用指令語義編輯器轉譯至指令集模擬器程式語 I I 1 …利用指令語義編輯器產生使用於暫存器檔案、連 結、旁通、核心界面、以及例外的硬體說明語言(HDL); …在處理程序時任何被產生的系統功能摘要槪念 層,例如利用指令語義編輯器產生的硬體摘要槪念層(HAL) 10 本紙張尺度適用中國國家標準(CNS)A4規格(210 χ 297公釐) •裝--------訂---------線丨 (請先閱讀背面之沒意事項再填寫本頁) _ ^1 ^1 I I ϋ ϋ ϋ ϋ ϋ ϋ ·1 I- ϋ ϋ H - 571206 A7 B7 五、 ► 發明說明(艺 指令(有關HAL之進一步地詳細說明,參看上述s〇nger等 ,.二Θ利申請);以及 ••在程式語言編輯器中本質性與資料形態支援s 該參考語義同時被使用在上面之一些例子中。 最後,所有新的硬體功能必須被指令集所支援。 本發明之槪要 觀看上面先前技術之問題’本發明之一目的是,提供 一組處理器發展系統,其允許多種的處理器特點予以擴 展,包含新暫存器檔案之添加’該新暫存器檜案在讀取埠 和寫入埠之寬度和數目是可組配的。 本發明進一步地之目的是’提供一組處理器發展系 統,其支援在此種新暫存器檔案和記憶體間傳送資料之指 令添加’ t苎明之另一 R的是,提供一組€押.器發展系統,11 支援在核心處理器製作和指令延伸之間的邏輯共享,尤其 是在核心和延伸指令間的資料快取之共享。 本發明另外之目的是’提供一組處理器發展系統’其 i;授將安置至被擴展之暫存器檔案的高位準語言變數之編 輕器安置,該支援包含溢放、復原以及移動此類暫存器之 I-------I ^---------線 (請先閱t#背面之注意事項再填寫本頁) 經濟部智慧財產局員工消費合作社印製 ’ 其。 統 ’生 系 統產 展。系被 發令展且 器指發並 理i器耗 處算理消 組計處被 I 而組中 供驟一驟 提步供步11 ’送提送 是輸,輸 的線是線 目 管的管 之組目的 步數一同 1 在另不 進佈之在 明分明元 發被發算 。 本援本運 力 支 許 能 其 允 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公釐) 571206 Α7 Β7 五、發明說明(?) · 本發明進一步之目的是,提供一組處理器發展系茳, 其支援適合於被添加多週期指令之目標管線輸送的互連邏 輯之產生。 本發明進一步之目的是,提供一組處理器發展系統, 其使用指令規格而延伸編輯器之資料結構安排以使管線輸 送之延遲最小化。 本發明進一步之目的是,用以支援指令語義和製作邏 輯之規格以允許一組參考語義被使用於多重指令製作上。 乍α明進一步之目的是,提供一組處理器發展系統, 其可使用指令說明規格於被格式化文件的轉換上。 本發明進一步之目的是,提供一組處理器發展系統, 其能夠核對廣泛範圍的處理器設計之可展延特點。 本發明進一步之目的是,提供一組處理器發展系統, 其可從輸入規格自動地產生針對最少的時間文脈切換之指 令序列和邏輯= 本發明進一步之目的是,提供包含一組指令集模擬器 之處理器發展系統,該模擬器可支援如上所述之廣泛多樣 性的可展延功能。 圖形之說明 本發明這些以及其他的目的、特點、和優點,利用讀 丨「ΜΓ而較佳哲施例之詳細說明,以及參考相關附岡,而更 容兒了解,其中: 第1和2圖是依據本發明較佳實施例,展示與可展延 的暫存器之四組步驟管線輸送相關的控制邏輯; 12 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公爱) (請先閱讀背面之注意事項再填寫本頁)
裝-----I--訂---------線J 經濟部智慧財產局員工消費合作社印製 經濟部智慧財產局員工消費合作社印制衣 571206 A7 ____ B7 五、發明說明(β )、 第3圖展示第1和2圖之暫存器的兩步驟管線輸送形 式; 第4圖是展示依據第一實施例,至核心加法器之界面 id Μ » 第5圖展示一組先前的載入校準器: 第6圖是展示依據較佳實施例之一組載入校準器; 第7圖是展示依據較佳實施例之一組語義區塊輸出界 面信號; 第8(a)-8(c)圖是展示依據較佳實施例之最佳化之管線 輸送暫存器: 第9圖展示較佳實施例中之例外處理程序: 第10圖展示較佳實施例中進一步之例外處理程序: 第1 1圖展示較佳實施例中參考語義資訊之處理程序: 第1 2圖是展示依據較佳實施例,自動地被產生之指 令文件; 第丨3岡是展示依據較佳贲施例,一組TIE確認處理 i 程序;以及 第1 4圖展示較佳實施例中一組相互模擬處理程序。 本發明目前較佳實施例之詳細說明 本發明部份依據說明於Killian等與Wilson等申請之 技術而發展,其中說明Tensilica指令集延伸(TIE)之語言 及其編輯器和其他的工具。本發明之一較佳實施例以新結 構以及新增的軟體工具,例如編輯器及支援這些新結構的 類似者而擴展TIE語言。 13 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公爱) II--— II · I I I--I I ^ ·1111111· (請先閱讀背面之注意事項再填寫本頁) 571206 經濟部智慧財產局員工消費合作社印製 A7 __B7五、發明説明(")·· 擴展之暫存器檔案 較佳實施例所提供的一種新功能是暫存器檔案的支 援。在現存的處理器技術中,一暫存器檔案是各爲B位元 之N組儲存位置集合。一組指令中的領域選擇這集合之成 員以作爲指令結果之原始運算元數値或目的地運算元數 値。一組暫存器檔案一般被設計以支援平行地讀取N組成 員之R組,並且平行地讀取N組成員之W組,以至於指 令可具有一組或更多的原始運算元以及一組或更多的目的 地運算元並且仍然僅需一週期供暫存器檔案存取。 弔以表示一組新的暫存器檔案之TIE語言結構是: regfile <rfname> <eltwidth> <entries> <shortname> 其中<rfname>是一組標示,其被使用以指示接著TIE 結構中之暫存器檔案; 一組暫存器檔案元件(”暫存器”)之位元 寬度; <entrieS>是暫存器檔案中之元件數目:以及 <4〇^311^>是一組短的稱謂(時常是一組單一文字), 其通常被用以產生組合語言暫存器名稱。暫存器名稱是 <shortname^^i加上暫存器數目。 該regfile結構不宣告讀取或寫入埠之數目;此類苡際 製作細節將被TIE編輯器所處理,如將被詳細地說明於下, 因而儘可能地將TIE保持與製作無關並且將TIE保持爲一 H w 说叨 由於regfile之宣告,被產生之處理器將包含程式設計 14 本紙張尺度適用中國國家標準(CNS ) A4規格(210X297公釐) 571206 A7 _B7_ 五、發明説明()- 者可見狀態之額外的<eltwidth>*<entrieS>位元,以及讀 取和寫入這狀態之多重 <eltwidth>數値的邏輯。邏輯產 生演算法則將在其他相關的TIE語言結構說明之後詳細地 被說明。 TIE結構
Operand <oname> <fieldname> {<rfname> [<fieldname>] } 將<oname> 宣告爲用以將被指令字詞領域 〈fieldname〉所指定的暫存器檔案 <rfname>元件讀取或 寫入之一組標示。這結構是相同於Killian等申請之說明, 但是除了核心暫存器檔案(被稱爲"AR")之外,<rfname> "I以指定以regfile宣告之暫存器檔案。如Killian等應用 中之說明,該 <〇name>標示接著可被使用在 iclass宣 告中以說明指令中之暫存器檔案之進、出、以及進出運算 元。 TIE規格之範例:
opcode GFADD8 op2 = 4'b0000 CUSTO
opcode GFMULX8 ορ2 = 4^000 1 CUSTO
opcode GFRWMOD8 op2 = 4,b0010 CUSTO state gfmod 8 user_register 0 { gfmod } regfile gf 8 16 g operand gr r { gf[r] } operand gs s { gf[ s] } operand gt t ( gf[t] } 15 本紙張尺度適用中國國家標準(CNS ) A4規格(210X297公釐) (請乇閱讀背面之洼意事項再填巧本頁) •裝 線 經濟部智慧財產局員工消費合作社印製 571206 A7 ___B7_ 五、發明説明(θ ) ·· iclass gfrrr { GFADD8 } {out gr. in gs, in gt} {} {} iclass gfrr { GFMULX8 } {out gr, in gs} {in gfmod} {} iclass gfr { GFRWMOD8 } {inout gt} {inout gfmod) {} semantic gfl { GFADD8 } { assign gr = gs Λ gt;} semantic gf2 ( GFMULX8 } { assign gr = gs[7] ? ({gs[6:0], 1'bO} Λ gfmod) {gs[6:0] ,rbO}; } semantic gf3 { GFRWMOD8 } wire [7:0] ti = gt; wire [7:0] t2 = gfmod; assign gfmod = 11 ; assign gt = t2; } 在一組8-位元資料數値上製作一組簡化的Gai〇is-fieid 經濟部智慧財/i局員工消費合作社印製 U術單元(用以製作這範例之整體的T1E檔案可被發現於 附錄之A部份)。一組16-項目、8·位元暫存器檔案被產生 (各暫存器具有GF(2)按模被儲存在gfmod中的多項式之上 的一組多項式)’並且在這些暫存器上操作的兩組指令被定 義。GFADD8將被指令字詞s領域所指定之暫存器(”gs暫 存器π)中的多項式與被指令字詞t領域所指定之暫存器(,,gt 暫存器")中的多項式相加,並且將結果寫入至被指令字詞 16 本紙張尺度適用中國國家標準(CNS ) A4規格(210X297公楚) A7
571206 五、發明説明(/4 ) ·. r領域所指定的暫存器(,,gr暫存器")中。gfmULX8將在gs 暫存器中的多項式與χ按模gfm〇d相乘,並且將結果寫入 至gr暫存器。GFRWMOD8是用以讀取以及寫入gfm〇d多 項式暫存器。 從這簡單TIE指令被產生的邏輯是更複雜的,因爲其 需要控制邏輯處理指派給不同管線輸送步驟之各種操作。 TIE是一組高位準規格,其以指令集之使用者熟悉的位準 說明指令集,並且不像被指令集製作者(亦即,處理器設計 者)所寫入之低位準。 被TIE指令所產生的一組暫存器管線輸送控制邏輯範 例被展示於第1圖中。這展示四步驟管線輸送暫存器,其 包含圖形左側之以四組管線輸送暫存器及他們對應的輸入 多工器所形成的讀取資料路線。從頂端開始,在讀取埠中 之各組對管線輸送暫存器描述 C0(R)、C1(E)、C2(M)、C3(W) 以及 C4管線輸送步驟之界線。各管線輸送暫存器, rdO_dataCl-rdO_dataC4之輸出,被提供至暫存器之介於讀 取和寫入埠之間的資料通道(爲簡化之故,未展示出)。這 些輸出,以及所有在讀取埠中之稍後管線輸送暫存器的輸 出,被提供而作爲輸入至接著之步驟的多工器。讀取埠多 工器之控制信號產生將在下面詳細地被說明。 圖形同時也展示在圖形右方之一組寫入埠,它是由四 組管線輸送暫存器以及其中三組最新的管線輸送步驟所對 應的輸入多工器所形成的。來自暫存器資料通道的四組信 號 W0_dataC 1-wO_dataC4,被直接地或者經由與先前寫入 17 本紙張尺度適用中國國家標準(CNS ) A4規格(210X297公釐) 裝 訂 線 (請先閱#'1srvg之注意事項再填巧本頁) 經濟部智慧財產局員工消費合作社印製 571206 A7 __ Β7 五、發明説明(if ) · 、:Γ 3 _ 送暫存器之一組輸氐 wrO-resuliC:-wrO_resultC4 的多工傳輸,而被提供至寫入埠暫存器輸入之對應的一組 輸入。這些輸出信號與暫存器檔案xregfile RF之輸出一 起被多工傳輸並且被饋送至讀取埠管線輸送之CO步驟多 工器上。 讀取和寫入埠中之多工器控制信號與使用於xregfile RF之一組寫入引動以及一組延遲信號(stall_R)使用第2 圖電路而被一起產生,對於那些熟習本技術者而言,當配 合下面暫存器檔案之編輯器產生相關的討論閱讀時,這將 是容易明白的。 爲了容易了解,一組兩個步驟之暫存器檔案結合第1 和2圖電路版本之兩個步驟被展示於第3圖中。 產生暫存器檔案 利用一組regfile說明而宣告之各暫存器檔案,其編 輯器必須產生: 一暫存器檔案儲存胞; …讀取埠; —寫入璋; --原始運算元互連邏輯: 經濟部智慧財產局員工消費合作社印製 …原始運算元旁通邏輯;以及 -·目的地運算元寫入邏輯。 讀取埠及寫入埠 產生一組暫存器檔案的第一步驟是決定讀取和寫入焊 之數目、指定管線輸送步驟至該埠、以及指定連算元至該 18 本紙張尺度適用中國國家標準(CNS ) A4規格(210X297公釐) 571206 經濟部智慧財產局員工消費合作社印製 A7 ___________B7 五、發明説明(/έ> )… 埠。許多演算法則可能被使用以完成這些操作,其各導致 不同的速率和區域折衷。下面的演算法則在較佳實施例中 被使用。 對於被使用以從暫存器檔案選擇一組原始運算元之各 領域’一組讀取埠被產生。在一些情況中,這將產生比所 需要更多的讀取埠,但是其一般產生更快的暫存器讀取, 因爲其允許暫存器讀取與指令解碼平行地開始。考慮先前 白勺 Galois-field 算術範例,其中: iclass gfr { GFRWM0D8 } {inout gt} {inout gfmod } {} 被改變至: iclass gfr {GFRWM0D8 } {inout gr} {inout gfmod} {} 即使在相同時間,沒有指令使用多於兩組GF暫存器 檔案讀取,上面之演算法則將產生三組暫存器讀取埠(指令 字詞之 r ' s、以及t領域各一組)。但是,如果僅有兩組 讀取埠被產生,則其在一組讀取埠之前必須具有一組2 : 1 之多工傳輸,以便在r及s領域之間或在|*及t領域之間 作選擇。這多工傳輸必須被解碼邏輯所控制,該解碼邏輯 區別GFRWM0D和GFADD指令。在一複雜的範例中,邏 輯可能是主要的,使得暫存器檔案讀取時間更長些。較佳 實施例中,所使用之演算法則所需要的另外區域可被避 免,其一般可利用指令集設計者配置指令暫存器檔案存取 領域,以至於被使用以讀取各暫存器檔案之不同領域的數 目,等於被任何指令使用以讀取之最大數目。這是在上面 範例中運算元 gt被使用以取代iclass gfr中之gr的理 (請无闓请背而之注*事項再填巧本頁) -裝 訂 線 19 本紙張尺度適用中國國家標準(CNS ) A4規格(210X297公I ) 571206 A7 B7__ 五、發明説明(/7 ) ·· 由。 上面演算法則可利用追蹤在各領域中順序說明所指定 的最小步驟數目(下面” TIE之多週期指令"部份中有較詳 細的說明)而被改善。如果最小步驟數目大於完成指令解碼 之步驟數目,則各領域之多工傳輸可接著被使用以減低讀 取埠之數目。對於最小步驟數目在指令解碼步驟中之所有 領域,被使用以讀取暫存器檔案之各領域使用一組分離的 璋。 考慮下面的範例: regfi le SR 32 4 r operand sx x { SR [x] } operand sy y { SR [y] } operand sz z { SR [z] } operand su u { SR [u] } operand sv v { SR [v] } iclass stu {instl } {out sz, in sx, in sy, in su} iclass stv {inst2} {out sz, in sx, in sy, in sv} 經濟部智慧財產局員工消費合作社印製 schedule stu {instl } { in sx 1 ;
In sy 1 ; in sv 2 ; out sz 2; 20 本紙張尺度適用中國國家標準(CNS ) A4規格(210X297公釐) 571206 A7 五、發明説明(θ) · 經濟部智慧財產局員工消費合作社印製 schedule stv {inst2} { in sx 1; In sy 1; in sv 2; out sz 2; } 其中暫存器檔案SR有四組輸入運算元:sx、sy、su、 以及sv。依據順序安排資訊,su和sv皆被使用於第二管 線輸送步驟中並且因此可被映射至一組單一讀取埠而不用 影響週期時間。結果,不需要產生SR暫存器檔案之四組 讀取埠。在這情況中,三組讀取埠之位址信號可以是: read —addr_0、read_addr—1、及 read_addr—2,三組位址之 邏輯將是: read_addr_0 二 x ; read_addr_1 = y ; read_addr_2 = instl ? u : v ; 寫入埠比較不具有時間關鍵性。即使是一組非常短的 管線輸送亦將在週期0中讀取暫存器檔案,在週期1中進 行一組計算,並且在週期2中寫入暫存器檔案。因此,有 足夠的時間達成解碼以及在被使用以寫入暫存器檔案的所 21 ---------^-- (請先閱讀rr面之注意事項再填β本頁) 線 本紙張尺度適用中國國家標準(CNS ) Α4規格(210X297公釐) 571206 經濟部智慧財產局員工消費合作社印製 A7 ______B7_五、發明説明(/?).. 有領域之間的多工傳輸。具有較關鍵性的時序通道是互 連,· €週期〇中讀取暫存器檔案之後,必須確認暫存器檔 案是在週期1開始時被寫入的,以至於下一組讀取暫存器 檔案的指令可在必須時被延遲。但是,一組週期一般足以 將目的暫存器領域解碼且多工化,並且因此這演算法則節 省區域而不影響速度。 至處理器管線輸送之暫存器檔案讀取和寫入埠的界 面’將依據核心處理器之管線輸送結構而變化。較佳實施 例中’核心處理器之管線輸送總是使用一組固定管線輸送 步驟中之讀取和寫入埠,如被展示於Dixit等之美國專利 申請編號09/1 92,395以及Killian等之編號09/322,73 5之 中,其被列爲此處之參考,其中在一組被管線輸送之暫存 器檔案的四組步驟中,讀取埠總是在第一步驟之前被使 用,並且寫入埠總是在最後(第四)步驟之後被使用。 各讀取埠將在使用它爲一組原始運算元之任何指令的 最早步驟中被讀取:在稍後步驟中使用這樣運算元的指令 在早期讀取暫存器檔案,並且將該資料階段性處理至被指 定步驟。這階段性處理同時也包含旁通多工傳輸,以至於 在暫存器檔案被讀取之後產生所需要的元件之指令仍然是 可供使用的。對於寫入埠,寫入在使用它作爲指令指定步 驟中之一組目的地運算元的任何指令之最後步驟中發生’ 例如,W步驟,如果那步驟稍後才出現的話。第1圖展示 較佳實施例中暫存器檔案讀取和寫入埠之邏輯槪要。 旁涌邏輯 22 本纸張尺度適用中國國家標準(CNS ) A4規格(210X297公釐) )71206 五、 發明説明(y 經濟部智慧財產局g(工消費合作社印製
旁通邏輯被展示於第1圖中並且是利用讀取埠邏輯上 之多工傳輸而被達成。例如,如果一組指令在步驟3中產 生一組結果(wrO_data_C3)並且一組依序的指令需要在步驟 1中使用其資料,則在讀取埠邏輯上至第一多工傳輸之控 制信號將被設定以至於來自左方之第四組輸入將被選擇。 結果’在接著的時脈週期中,資料(rdOcdata_Cl)是可供指 令所使用。 互連玀縉 互連邏輯被展示於第2圖中。依據順序安排資訊,指 令解碼邏輯針對被發出之各指令讀取埠而產生一組defN, 並且針對將被發出之各指令寫入埠而產生一組useN信號。 useN指示在步驟N中指令將需要其輸人暫存器運算元。 defN指示指令將在步驟N中產生結果。更進一步地,一 組指令之 defN信號與在管線輸送上之指令一起被管線輸 送。延遲信號利用檢查所有 defN的信號以及useN的 信號之組合而被產生。下面的範例展示具有兩組讀取埠(rd0 及rdl)以及一組寫入埠(wdO)之4步驟管線輸送暫存器檔案 的延遲邏輯。信號名稱(_Cn)中之下標指示信號存在管線輸 送步驟 η中。 因此: assign Stall_R = ((wrO—addr—Cl = = rdO—addr一CO) & ( (rd0_useLC0&(wr0^deD_Cl I wrO,ns^deD_C 1 I wrO_ns_def4^C 1)) (rd0_use2_C0 & (wrO_def3_Cl I wrO一ns_def4一C1)) I 23 本紙張尺度適用中國國家標率(CNS ) A4規格(210X 297公釐) ^π------,^ (許兵)閱讀背16之注念事項再填巧本頁) 571206 A7 B7 經濟部智慧財產局員工消費合作社印製 五、發明説明(d ) ·· (rdO_use3_CO & (wrO_def4_Cl)))) I ((wrO_addr_C2 = = rdO_addr一CO) & ( (rdO_usel_CO & (wrO_defi_C2 I wrO_ns一def4一C2)) I (rdO一use2一CO & (wr0_def4一C2)))) I ((wrO_addr_C3 = = rdO_addr_CO) & ( (rdO_usel一CO & (wrO一def4_C3)))) I ((wrO一addr一C1 = = rdl-addr一CO) & ( (rdl一usel一CO & (wrO一def2一Cl I wrO一ns—deG一C1 I wrO一ns_det4_C 1)) (rd 1 一use2一CO & (wrO一deG一C1 I wrO一ns一def4一C1)) I (rdl一use3_CO & (wrO—def4J:l)))) I ((wrO addr C2 = = rdl_addr_CO) & ( (rdl_usel一CO & (wrO一deG-C2 I wrO—ns一def4一C2)) I (rdl一use2一CO & (wr0_def4一C2)))) I ((wrO一addr一C3 = = rdl_addr一CO) & ( (rdl_usel一CO & (wrO一def4一C3)))); 下面的perl指令在較佳實施例中被使用以發展延遲指 令。wfield()和rfield()是用以從一組簡單信號名稱、一組 埠名稱、以及一組步驟數目構成一組信號名稱的功能。其 被以一組有效的分解形式所宣告。 printn assign Stall_R =\η"; foreach $write_port (@{$rf->{WRJTE_PORT}}) { foreach $read__port (@{Srf->{READ_PORT} }) { for($s = 1; $s <= SwritejD〇rt->{MAX_DEF}-l; $s++) { my(Swaddr) = wfield("addr", Swrite j)〇rt, $s); my($ raddr) = rfield(’’addr”,Sread_port, 0); print ” ((Swaddr = = Sraddr) & (\n"; for($i = 1; $i <= $writej3〇rt->{MAX_DEF} - $s; $i++) { 24 本紙張尺度適用中國國家標準(CNS ) A4規格(210X29*7公釐) 571206 A7 B7五、發明説明(β ) ·· my(Suse) = rfield("use$i", $read_port. 0); print ” (Suse & (’’ ; for($j = $i+$s; $j <= $write_port->{MAX一DEF}; $j十十) my($ns_def) = wfield(,,ns_def$j,', Swrite_pon, $s); print "$ns一def’; if ($j != $write__port->{MAX_DEF }) print ” 丨”;}} print if ($1 = $write_port->{MAX_DEF} - $s) { print")) l\n"; } else { print ”l\n ”; 經於部智慧財產局員工消費合作社印製 print ” 1 !b0; \n"; print ” \n,,; 寫入邏輯 因爲在較佳實施例中,寫入埠位址被多工傳輸以減低 與各寫入埠相關的硬體成本,其必須具有一組演算法則以 便決定那組運算元使用那組埠。對於這多工傳輸的一種準 則,是將所需要的邏輯最小化。在目標管線輸送中,主要 的邏輯成本是階段性地處理資料至寫入埠步驟。如果所有 的寫入發生在相同管線輸送步驟中,則在邏輯成本上是沒 ¾------、玎------0 (請先閱讀背而之注念事項再填巧木頁) 25 本紙張尺度適用中國國家標準(CNS ) A4規格(210X297公釐) 571206 A7 —___Β7 五、發明説明(θ) .· 有差異的,但是如果寫入發生在多重步驟中,邏輯可利弔 群集相似寫入步驟之目的地運算元而被節省。 考慮下面的範例: regfile SR 32 8 S operand sx x { SR[x] } operand sy y { SR[y] operand sz z { SR[z] } operand s u u { SR[u] } operand sv v { SR [v] } iclass ii {inst 1 } {out sx, out sy, in su, in sv} iclass i2 {inst2} {out sz, in su, in s v} schedule .si {inst1} { out sx 8; out sy 3; } schedule s2 {inst2 } { out sz 9; } 經濟部智慧財產局員工涓費合作社印製 注意,inst 1產生SR之兩組結果,一組使用3個週期 並且另一組8個週期。inst2在9個週期產生SR的結果。 因爲instl需要兩組寫入埠並且inst2需要一組寫入埠,暫 存器檔案SR僅需要兩組寫入埠。進入埠是wrO和wrl。 26 本紙張尺度適用中國國家標準(CNS ) A4規格(210X297公釐) 571206 經濟部智慧財產局員工消費合作社印製 A7 B7 五、發明説明(私). 對於instl,運算元至寫入埠之映射是簡單地: sx -> wrO sy -> wrl 這意味著wrO需要具有8個步驟並且wrl需要具有3 個步驟。對於inst2,其可選擇下面任何一個: sz->wrO 或者 sz-> wr 1 但是,兩組選擇具有不同的邏輯成本。將SZ映射至wrO 意味著添加一組步驟至wrO(從8增加至9),而映射至wrl 意味著添加6個步驟至wrl (從3增加至9)。 較佳實施例使用下面的演算法則。對於各指令,將運 算元依據步驟數目以下降順序區分並且將它們依序地指定 至寫入埠〇至寫入埠η·1。因此寫入埠〇將具有最長的資 料鏈並且寫入埠η-1將具有最短的資料鏈。對於具有m運 算元之指令,其中m小於η,運算元將依據步驟數目以相 似的下降順序而被映射至第一 m寫入埠。下面的範例被使 用以展示寫入埠分配之處理程序: regfile SR 32 8 s operand sx x { SR[x] } operand sy y { SR[y] } operand sz z { SR[z] } 27 本紙張尺度適用中國國家標準(CNS ) A4規格(21 OX 297公f " ---------¾------1T------0 (請先閱讀背而之注念事項再填巧本頁) 571206 經濟部智慧財產^7員工消f合作社印製 A7 B7五、發明説明(25 ) ·· operand su u { SR[u] } operand sv v { SR[v] } operand sw w { SR[w] } iclass i 1 {inst 1 } {out sx,out sy,in su, in sv} iclass i2 {inst2} {out sz, in su, in sv} iclass i3 {inst3} {out sw, in su, in sv} schedule .si {inst1} { out sx 8; out sy 3;} schedule s2 {inst2} { out sz 9;} schedule s3 {inst3} { out s w 2 ;} 這處理程序將產生下面的分配: 對於instl s X - > w r 0 s y - > w r 1 對於inst2, s z - > vv r 0 對於 inst3, 28 本紙張尺度適用中國國家標準(CNS ) A4規格(210X297公釐) 571206 經濟部智慧財產局8工消費合作社印製 A7 B7 五、發明説明、
sw -> wrO 即使上面之寫入埠指定步驟將資料階段成本最小化, 但其可進一步地被精鍊以更有效地進行其他的成本準則, 例如電力消耗。在上面範例中,inst3之SW可被映射至wr 1 而不用增加絲毫的階段性處理成本。但是,以此方法,在 步驟2結束時資料被寫入暫存器SR中之後提供關閉管線 輸送的機會。 將sw指定至wrO需要管線輸送作用9個週期。對於 另外的成本考慮,例如電力消耗,下面的步驟可被使用爲 第二次操作以進一步地改進寫入埠指定。 對於具有m運算元之各指令,其中m<n,並且對於在 反向順序中之各運算元,移動運算元之指定至一組新的寫 入埠i而不用增加階段成本,其中i是儘可能地大。使用 先前的範例以展示這步驟,instl沒有運算元可被移動,因 爲其已經使用所有的寫入埠。對於inst2,sz不能被重新 指定至wrl而不增加階段性處理成本。對於inst3,sw可 從wrO被重新指定至wrl而不用增加階段性處理成本。 在暫存器檔案讀取和寫入埠之指定演算法則上,可有 許多的變化.。例如,在一些情況中,其可能適合於提供比 需要之更多的埠以將資料階段性處理最小化以消耗較少的 電力。同時其也可能利用提供比一些指令所需要之較少的 埠以進一步地減低與讀取和寫入埠相關的硬體成本:對於 沿1U埠而言,Μ將表示採用多重週期以讀取暫存器運© 29 本紙張尺度適用中國國家標準(CNS ) A4規格(21ϋΧ:297公釐) ^------1T------0 (請先閱讀背面之注意事項再填巧本頁) 571206 經濟部智慧財產局員工消費合作社印製 ΑΊ ______Β7五、發明説明( 元’並且對於寫入埠而言,這表示將緩衝一些暫存器寫入 以等待其中一組寫入埠未被使用的週期。另一可能性是, 允許TIE指令指定暫存器檔案之讀取和寫入埠的指定,以 處理在自動演算法則產生非所需要的結果之情況。 上面被擴展之暫存器製作觀念被使用於附錄B之指令 中,它是產生一組N-讀取、M-寫入位元S-項目之暫存 器檔案的一組perl程式。 載入/儲存指令 如相關的技術背景中之說明,TIE載入和儲存指令必 需提供一組裝置用以傳送資料至記憶體,並且從TIE暫存 器檔案直接地至記憶體。因此它們必須利用這要求,共同 使用核心管線輸送之記憶體(M)步驟的局部記億體,亦即, 資料快取、‘資料RAM、資料ROM、等等。除了共同使用 局部的記憶體之外,其亦需要就其可能地,共同使用在核 心載入/儲存中被使用的其他硬體資源。就區域和時序方面 而言,資源之共同使用產生一種最佳的結果。如同下面將 被說明,位址計算邏輯和資料校準器邏輯是兩種在核心和 TIE載入/儲存之間共同被使用的資源》 較佳實施例中,下面的界面信號是執行TIE載入/儲存 所需要的。 interface VaddrOffset 32 core out interface VaddrBase 32 core out interface Vaddrlndex 32 core out interface LSIndexed 1 core out 30 本紙張尺度適用中國國家標準(CNS ) A4規格(210X29*7公釐) 571206 A7 ___B7五、發明説明(况)· interface LSSize 5 core out interface MemDataOut<n><n> core out interface Vaddrln 32 core in interface MemDataIn<n> <n> core in 多數的這些信號被 展示於第4 圖中; 第 6圖展 LSSize927,MemDataOut<n>90 1 以及 MemDataIn<n>93 8 LSSize以位元組(較佳實 施例中之1 、2、4 、8、 或者1 / 經濟部智慧財1局員工消費合作社印製 方式而給予參考資料之大小。MemDataOut<n>提供從TIE 語義至核心的儲存資料,並且MemDataIii<n>提供從核心 至TIE語義的載入資料。較佳實施例中<n>可以是8、16、 32、64、或 128。 在TIE載入/儲存之記憶體位址計算中,當TIE載入 和儲存指令匹配於核心指令之格式情況中時,其可共同使 用位址加法器。複製位址加法器是浪費的並且在位址計算 通道中引人另外的延遲。界面信號代表至核心位址加法器 之輸入,如被展示之第4圖。這位址邏輯被用以支援位址 模式: I AR[s] + immediate X AR[s] + AR[t] 在兩組模式之間的選擇利用 LSlndexed界面信號而 被達成。被 I-形式所使用的 immediate 被提供在 VAddrOffset輸入,並且被X -形式使用的A R [ t ]數値被提 供在 VAddrlndex之輸入上。VAddrBase被使用以提供 AR[s]。AR[s]和AR[t]之外的數値,也可能利用TIE語義 ^------、玎------0 (請先閱讀背面之注悉事項再填寫本頁} 31 本紙張尺度適用中國國家標準(CNS ) A4規格(210X297公釐) 571206 A7 B7 五、發明説明(θ ) 區塊而在 VAddrBase以及 VAddrlndex上被提供,提供 這些數値允許邏輯最佳化以顯著地簡化產生的邏輯,並且 因此避免位址在關鍵性時序產生。這是因爲邏輯最佳化可 辨識來自TIE邏輯的VAddrBase(AR[s])是相同於核心之基 本位址並且將其簡化爲相同信號。 在修改核心中之載入和儲存校準器邏輯之後,TIE可 得益於此邏輯。因爲校準在製作上需要大量的邏輯,避免 TIE之複製可提供顯著的區域節省。進一步地’複製可能 引出時序危急通道,由於其強迫局部的記憶體輸出以及校 準和資料選擇控制信號驅動大量的負載。然而’爲了製作 共同擁有之校準資源,修改第5和6圖中之示例是需要的。 這些修改首先涉及TIE載入/儲存,需要/提供多重載 入/儲存寬度,相對於核心載入/儲存之32位元。這表示在 忮準邏輯之內的所有資料通道必須增加苋度以匹配最大之 TIE或核心資料寬度。其次,TIE載入可能需要相對於被 核心所需要的簡單糾正移位之一組更普遍的校準功能。這 表示校準邏輯必須進行TIE校準功能以及核心糾正移位的 一組超集。 經濟部智慧財產局員工消費合作社印製 第5圖展示,針對128 _位元存取寬度的一種三路組合 資料快取80 3-805,以及一組平行的資料RAM 8 06之先前 技術的核心載入校準邏輯。在這範例中,非快取的資料輸 入80 8也被選擇適合於快取再裝塡之128位元寬度,並且 資料RAM存取是32位元寬度,因爲其僅經由最大寬度是 32位元的核心載入/儲存而被存取。當被儲存的資料必須 32 本紙張尺度適用中國國家標準(CNS ) A4規格(210X297公釐) 571206 A7 B7 五、發明説明(3。). ^-- (讀先閱讀背面之注意事項再填寫本頁) 被旁通至一組依序的載入時,同時也有一組32位元寬度 的儲存資料輸入807被使用。 被使用之主要的校準機構是後面接著也作標記延伸的 位元組位準右移位器814-819之4: 1多工器809-812。移 位數量是由載入位址813、82 1以及單脈衝被解碼的 coreSize信號820所給予的。儲存和資料RAM資料不需 要4: 1多工器,因爲它們已具有32位元寬度。被校準的 32位元寬度資料接著被一連串之依序多工器822-833所選 擇以產生最後核心載入資料834。 線 經濟部智慧財產局員工消費合作社印製 第6圖展示這實施例中之載入校準製作的範例。主要 的差異是,所有的載入資料來源906·911此刻都是128位 元寬度以便支援128位元寬度之TIE載入指令,並且載入 校準結果同時也是128位元寬度。在這範例中,校準本身 是使用一組位元組-位準轉動器914-918及之後的標誌擴展 器92 1 -92 5而被完成。一組位元組-位準轉動器是需要的, 因爲在這範例中TIE語義碰巧要求資料轉動(再次地’除 了核心載入校準所需要的簡單右移位之外)。移位或轉動之 數量是由載入位址919以及單脈衝被解碼 LSSize927或 coreSize926信號所給予的。載入校準之最後輸出可能被 TIE輔助處理器所使用-所有128位元寬度之93 8以提供如 被 LSSize所指定之所有多重載入寬度:或者,核心所使 用·僅有最小主要32-位元部份939以提供如被 coreSize 所指定之三組核心載入32/16/8位元寬度。 除了記憶體資料之外,核心亦提供返回語義區塊之虛 33 本紙張尺度適用中國國家標準(CNS ) A4規格(210X297公釐) 571206 A7 B7 五、發明説明(3丨).· 擬位址。虛擬位址有時被需要於載入資料上的額外處理程 序中。此外,這允許修改被使用之暫存器以形成虛擬位址 之載入和儲存指令被定義。例如,核心ISA之”更動"模式 進行: IU vAddr <- AR[s] + offset AR[s] <- vAddr XU vAddr <- AR[s] + AR[t] AR[s] <- vAddr 整體寫入至基本位址暫存器AR[s]避免許多內部迴路 之一分別的增量指令。在TIE中,這可簡單地經由改變” 進入(in)"至"進出(inout)"以及添加一組指定而被達成。 爲了解整體寫入至基本位址暫存器之利益,首先考慮、 不使用這特點的一組軟體迴路: for(i = 0;i<n; i + + ) x = tie_loadi (px, 0); y = tie_loadi (py, 0); 經濟部智慧財產局員工消費合作社印製 + + + 34 本紙張尺度適用中國國家標準(CNS ) A4規格(210X297公釐) 571206 A7 _B7五、發明説明(β厂 經泠部智慧財產局員工消費合作社印製 這個範例迴路經過輸入陣列元件是8位元組寬度的兩 組輸入陣列(Ρχ和py) ’進行—組計算(instl) ’並且將結果 儲存至另一陣列(Pz)°這迴路中七組指令之內的三組被使 用以推進載入和儲存指令之基本指標器°使用整體寫入的 載入和儲存指令’該範例將更有效率地被達成’如下面展 不之指令: p X = p X - 8; py = py - 8; p z = p z - 8; for (i = 0; i < n; i++) { x = tie一loadiu(px,8); y = tie一loadiu(py,8); z = instl (x, y) tie_storeiu(z, pz, 8); } 在此,tie_loadiu(tie_storeiu)將計算虛擬位址爲p + 8, 載入(儲存)記憶體資料,並且在一組指令中將P改變至 P + 8。需要啓始減法以便更正px、py、以及pz,因爲,第 一次載入開始於px + 8,py + 8並且第一次儲存於px + 8。 核心信號之步驟數目,例如被說明於此之載入/儲存界 面,是被核心管線輸送所固定,並且在schedule宣告中不 被指定。但在上述管線輸送輸入演算法則中,適合之數値 ^II------0 (詩先閱讀背面之注意事項再填巧本頁} 35 本紙張尺度適用中國國家標準(CNS ) A4規格(210X297公楚) 571206 A7 B7 五、發明説明(衫)·· 被使用。例如,添加載入和儲存指令至上面範例之Galois· 領域算術GF單元,如下所示:
opcode LGF8.I opcode SGF8.I opcode LGF8.IU opcode SGF8.IU
r=4'b0001 LSCI r=4,b0001 LSCI r=4'b0010 LSCI γ=4Ί)0011 LSCI opcode LGF8.X ορ2=4^0000 LSCX opcode SGF8.X op2=4,b0001 LSCX opcode LGF8.XU op2=4'b0010 LSCX opcode SGF8.XU op2=4,b0011 LSCX interface VaddrOffset 32 core out interface VaddrBase 32 core interface Vaddrlndex 32 core out interface LSIndexed 1 core interf ace LSSize 5 core out interface MemDataIn8 8 core in interface Vaddrln 32 core in interface MemDataOut8 8 core out iclass gfloadi { LGF8.I } { out gt, in ars, in imm8} {)\ 經濟部智慧財產局員工消費合作社印製 out LSSize, out LSIndexed, out VAddrOffset, out VAddrBase, in MemDataln8 } iclass gfstorei { SGF8.I } { in gt, in ars, in imm8} {} out LSSize, out LSIndexed, out VAddrOffset, out VAddrBase, out MemDataOut8 } iclass gfloadiu { LGF8.IU } { out gt, inout ars. in imm8} {} out LSSize, out LSIndexed, out VAddrOffset, out VAddrBase, in MemDataln8, in VAddrln } iclass gfstoreiu { SGF8.IU } { in gt, inout ars, in imm8} {} out LSSize, out LSIndexed, out VAddroffset, out VAddrBase, out MomDalaoutS. in VAddrln | iclass gfloadx { LGF8.X } { out gr, in ars, in art} {} 36 本紙張尺度適用中國國家標準(CNS ) A4規格(210X297公釐) 571206
經濟部智慧財產局S(工消費合作社印M A7 __B7_五、發明説明(:M〇、 out LSSize, out LSIndexed, out VAddrlndex, out VAddrBase, in McmDataIn8 } iclass gfstorex { SGF8.X } (in gr, in ars, in art} {} out LSSize, out LSIndexed, out VAddrlndex, out VAddrBase, out McmDataOut8 } iclass gfloadxu { LGF8.XU } { out gr. inout ars, in art} {} { out LSSize, out LSIndexed, out VAddrlndex, out VAddrBase, in MemDataln8, in VAddrIn } iclass gfstorexu ( SGF8.XU } {in gr, inout ars. in art} {} out LSSize. out LSIndexed. out VAddrlndex. out VAddrBase. out MemDataOut8, in VAddrIn } semantic lgf { LGF8.I, LGF8.IU, LGF8.X, LGF8.XU } {} assign LSIndexed = LGF8 X | LGF8 .XU; assign LSSize = 1, assign VAddrBase = ars; assign VAddrlndex = an; assign VAddrOffset = imm8; assign gt = MemDataIn8; assign gr = MemDataIn8; assign ars = VAddrIn; semantic sgf { SGF8.I. SGF8.IU. SGF8.X, SGF8.XU } assign LSIndexed = SGF8 .X | SGF8 .Xu; assign LSSize = 1; assign VAddrBase = ars; assign VAddrlndex = art; assign VAddrOffset = imm8; assign MemDataOut8 = SGF8.XISGFB.XU ? gr : gt; assign ars = VAddrIn;} schedule gfload { LGF8.I }{ use imm8 0; use ars 1; def gt 2; (許乇閱讀背面之注念事項再填$束頁) 37 本紙張尺度適用中國國家標準(CNS ) A4規格(210X297公釐) 571206 A7 B7五、發明説明(35) · 經濟部智慧財產局員工消費合作社印製 schedule gfloadu { LGF8.IU } ( ( use imm8 0; use ars 1; def ars 1; def gt 2;} schedule gfloadx { LGF8.X }{ use ars 1; use art 1; def gr 2;} schedule gfloadxu { LGF8.XU }{ use ars 1; use art 1; def art 1; def gr 2;}下面是用以產生本發明之一組載入校準器之一組tpp輸入: module loadalign (out, in, Va, vamask, TIEload, L16SI, L16UI, L8UI); ;use Utilities; ;my Sbits = $pr->dcache->accessBits; ;my Sbytes = Sbits » 3; ;my $mux = log2($bytes); 38 本紙張尺度適用中國國家標準(CNS ) A4規格(21 OX 297公釐) 經搿部智慧財產局員工消費合作社印製 571206 A7 B7 五、發明説明(w) output out['$bits-r:0]; input in['Sbits-l':0]; input Va['$mux-r:0]; input Vamask['$mux-r:0]; input TIEload; input L16SI; input L16UI; input L8UI; wire L8orl6 = L8UI | L16UI | L16SI; wire Vam['$mux-r :0] = TIEload ? va & vamask :{va['$mux-l':2], va[l] & L8orl6, va[0] &L8UI}; ;sub rot { ;my (Sbits, $n, Sstep, Sin, Sout, $sel) =@_; ;my @muxin = map($_ = = 0 ; ?Sin ; :T .Sin. f[\ ($_*$step-l); : 0]; .Sin. T,($bits-l)/:($_*$step).1 ] }*, ; 〇..($n-l)); xtmux'Sn'e #'$bits' ('$out', ' join(M,\n\t\tH, @muxin) 、$sel'); ;} ;my Sin = 'input'; ;if (Smux & 1) { ; # rotate is done with 4:1 muxes and one 2:1 mux ; # Combine the last 2:1 mux with the sign extend ; for (my Si = Smux - 2; $i >= 1 ;$i - = 2) { ;my Sout = Ύ .($temp++); wire ['$bits-l ':0] '$out' ; ; rot($bits, 4, 8 * (1 « $i), Sin, Sout, 'vam['.($i+l).. $1.1 ]'); ; Sin = Sout; 本紙張尺度適用中國國家標準(CNS ) A4規格(210X297公釐) ^------1T------0 (請先閱讀背面之注意事項再填寫本頁) 571206 A7 B7五、發明説明G7厂 經濟部智慧財產局員工消費合作社印製 ; if (Sbits > 32) xtmux2e #'Sbits - 32 ' (output [' $bits-r:32], '$in [' Sbits-Γ :32], {· Sin1 [7:0] ; Sin' ['Sbits-Γ :40] }, vam[0]); ; } xtmux4e #16( output [31:16], 'Sin' [31:16] ; if (Sbits > 32) { W [39:24] }, ; } else { {' Sin' [7:0],' Sin'[31:24] }, ; } {16{' Sin'[15]&L16SI}}, 16,b0, // should never happen because vam[0] // is forced 0 if L8or 16 is set {L8orl6, vam [0] }); xtmux4e #8 ( output [15:8], ' Sin ' [15:8] ' Sin' [23:16], 8,b0, 8’bO, {L8UI,vam[0] }); xtmux2e #8 ( output [7:0], ' Sin ' [7:0] 'Sin' [15:8], vam[0]), ; } else { ; # rotate is all done in 4:1 muxes, ; # so sign extend must be done in separate 2:1 ; for (my Si = $mux - 2; Si >= 0; $i -= 2) { ; my $out = ’t’($temp++); 40 本紙張尺度適用中國國家標準(CNS ) A4規格(210X297公釐) 經.贫部智慧財產局員工消費合作社印製 571206 A7 B7 五、發明説明(对)·. wire [' Sbits-Γ :0] '$out' ; ;rot(Sbits,4, 8 * (1 « $i),$in,$out,'vam[,.($i + 1)··,:,.$i·’]’); ; Sin. Sout. ; } assign out = { ; if ($bits>32) { 'Sin' [' $bits-l ' :32], ; } L8orl6 ? {16{f Sin f [15] & L16SI}} : 'Sin' [16:32], W [15:8]&〜{8{L8UI}}, 'Sin' [7:0] }; ; } endmodule loadalign 下面是寬度128之輸出: module loadalign (out, in, Va, vamask, TIEload, L16S1, L 1 6UI, L8U1); output out [127:0]; input in[127:0]; input va[3 :0]; input vamask[3:0]; input TIE load; input L16 S 1 ; input L16UI; input L 8 U I;
wire L8orl6 = L8UI | L16UI | L16SI 41 本纸張尺度適用中國國家標準(CNS ) A4規格(2丨OX 29*7公釐) ---------I------IT------0 (#先閱讀背面之注意事項再填巧本頁) 571206 A7 B7 經濟部智慧財產局員工消費合作社印製 五、發明説明(3?) _ wire Vam[3:0] = TIEload ? Va & vamask {va[3:2],va[l] L8orl6,va[0] &L8UI}; wire [127:0] tO; xtmux4e #128 (tO, input, {input [31:0] ,input [ 1 27:32], {input [63:0] ,input [ 127:64], {input [95:0] ,input [ 1 27:96], vam[3 :2]); wire [127:0] ti; xtmux4e #128 (ti, t〇, {t0[7:0] , tO [127:8] }, {t0[15:0] , tO [127:16]} {t0[23:0] , tO [127:24] }, v a m [ 1 : 0 ]; assign out = tl[127:32] L8orl6 ? {16{tl[15] & L16SI}} : tl[16:32], tl[15:8] &〜{8{L8UI}}, tl[7:0] ;} endmodule loadalign 本紙張尺度適用中國國家標準(CNS ) A4規格(210X297公釐) 571206 A7 B7五、發明説明(杉3 ). 經濟部智慧財產局員工消費合作社印製 下面是寬度64之輸出: module loadalign (out, in, Va, Vamask, TIEload, L16SI, L16UI, L8UI); output out [63:0]; input in[63:0]; input va[2:0]; input vamask[2:0]; input TIEload; input L16S1; input L16UI; input L8UI; wire L8orl6 = L8UII L16UII L16SI wire Vam[2:0] = TIEload ? Va & vamask {va[2:2],va[l] & L8orl6,va[0] &L8UI}; wire [63:0] tO; xtmux4e #64 (tO, input, {input [15:0],input [63:16], {input [31:0],input [63:32], {input [47:0],input [63:48], vamP:l]); xtmux2e #32 ( output [63:32], tO [63:32] {t0 L7:0],t0 [63:40] }, vam[0]); xtmux4e #16( output[31:16], tO [31:16], tO [39:24]}, {16{tO[15]&L16SI}}, 16'bO, // should never happen because vam[0] IIT------0 (請^閱讀背面之注念事項再填寫本頁) 43 本紙張尺度適用中國國家標準(CNS ) A4規格(210X 297公釐) 571206 A7 B7五、發明説明丨)- 經濟部智慧財產局員工消費合作社印製 // is forced 0 if L8orl6 is set {L8orl6, vam[0] }); xtmux4e #8 ( output[15:8], tO [15:8] tO [23:16], 8'b0.8*b0, {L8UI,Vam[0] }); xtmux2e #8( output[7:0], tO [7:0] tO [15:8] vam[0]; endmodule loadalign 下面是寬度32之輸出: module loadalign (out, in, Va, vamask. TIEload, L16S1, L16U1, L8UI); output out[31:0]; input in[31:0] input Va[ 1:0]; input vamask[ 1:0]; input TIEload; input L16SI; input L16UI; input L8UI; wire L8orl6 == L8UII L16UII L16SI ; wire vam[l:0] = TIEload ? va & vamask {Va[l:2] ,Va[l]&L8orl6,Va[0]&L8UI}; wire [31:0] tO; xtmux4e #32 (tO, 44 本紙張尺度適用中國國家標準(CNS ) A4規格(210X 297公釐) 經漆部智慧財產局員工消費合作社印製 571206 A7 __B7 五、發明説明), input, {input(7:〇],input[31:8] }, {input[15:0], inputL31:16)}, {input[23:0],input[31:24] }, vam[l:0]); assign out = { L8orl6 ? {16{t0 [15] & L16SI}} : tO [16:32], tO[15:8]&〜{8{L8UI}}, t0[7:0] }; endmodule loadalign 界面至核心 載入及儲存一般使用資料快取或小的資料RAM在處 理器管線輸送之內被處理。爲了成本以及正確性,新的載 入及儲存指令必須也使用這資料快取/RAM以保持快取 /RAM資料之整體性,快取/RAM資料被TIE和核心指令所 處理。先前技術系統中,添加至核心的指令不與核心共同 使用邏輯。較佳實施例提供這樣的共同使用之機構。 TIE結構 interface < s n a m e >〈width〉< m n a m e > [ i η | o u t ] 宣告信,其界面至TIE模組<1111131116>。這 信號是<Nvidth>位元寬度’並且依據最後參數而爲TIE指 令的輸入或輸出。對於介面至核心’ <mname>是核心0 TIE ic lass結構被擴展至指令使用之列表界面信號。 其之語法排列是: 45 本紙張尺度適用中國國家標準(CNS ) A4規格(210X297公釐) ^1T------0 (旖乇閱讀背而之注念事項再填巧本頁) 571206 A7 ____B7 五、發明説明).. iclass <classname> { <iname>,.·· } { <operandspec>,…} { <statespec>,…} { <interfacespec>,…} 其中 <interfacespec>:S in<sname> out<sname> 中之 任何一個,其中<sname>是界面信號名稱或例外說明中被 宣告之例外信號名稱。例外的信號名稱僅可以作爲輸出而 被使用,不可作爲輸入被使用。同樣地,schedule結構被 擴展以允許使用”in”(作爲輸入)或"out"(作爲輸出)而給予 界面信號名稱管線輸送步驟之數目。 經濟部智慧財產局員工消費合作社印製 來自語義區塊之各輸出界面信號,被與指令之單脈衝 指令解碼信號和他們的iclass界面部份中之被編列的輸出 之OR運算結果再進行AND運算。來自所有的語義區塊之 被AND運算界面信號,接著被OR運算一起形成至核心的 輸出信號。第7圖展示利用TIE編輯器所製作之輸出界面 信號sname。sname_seml代表被第i組語義區塊產生之 sname數値。iNl和iN2是一位元指令解碼信號,並且 sname_SemI_Sel是代表第i組語義產生sname之狀況的信 號。各輸入界面信號直接地被饋送至使用該信號之模組。 TIE中之編輯器/OS支援 就TIE結構而言,其允許狀態和指令被定義,但卻不 提供這些指令應該如何被軟體自動地使用之任何線索。在 先前的系統中,所有指令的使用皆經由被寫入應用程式中 46 本紙張尺度適用中國國家標準(CNS ) A4規格(210X297公釐) 571206 A7 B7 經濟部智慧財產局員工消費合作社印製 五、發明説明Μ#) 1 的內在指令而被參考;因此,編輯器僅需要將內在指令映 射至指令而不需要了解如何使用指令本身。由於使用者可 定義暫存器檔案之添加,編輯器可安置程式變數至暫存器 檔案元件。在暫存器安置期間,編輯器試圚指定程式數値 至被包含在暫存器檔案中之暫存器。在程式中某種位置, 或許不可能將所有數値指定至暫存器。在這些位置上,一 組或者更多的數値必須被移動至記憶體。將一組數値從暫 存器移動至記憶體需要一組儲存,而將一組數値從記憶體 移動至暫存器需要一組載入。因此,最起碼,編輯器必須 了解如何從記憶體將一組數値載入暫存器,並且如何從暫 存器將一組數値儲存入記億體。 在暫存器安置期間,編輯器同時也可能必須從一組暫 存器將一組數値移動至另一組暫存器。例如,利用一種功 能所產生的數値可能被送回至暫存器A,並且接著指令可 能需要使用來自暫存器B之數値。利用首先將暫存器A儲 存至暫時記憶體的位置,並且接著從記憶體位置載入暫存 器B,編輯器可從暫存器A將該數値移動至暫存器B。但 是,直接地從暫存器A將數値移動至暫存器B,很可能是 更有效益的。因此,其需要的是,但不是必要的,編輯器 可了解如何從一組暫存器將一組數値移動至另一暫存器。 儲存以及復原序列可能是比個別的暫存器之一種簡單 的儲存和復原序列之連接更複雜。在執行整個暫存器檔案 中,可能有性能及/或空間節省相對與明顯的溢放指令之連 接的機會。這可能也包含不在暫存器檔案中之輔助處理器 47 本紙張尺度適用中國國家標準(CNS ) A4規格(210X297公釐) ---------^-- (許元閱讀背面之注意事項再填寫本頁) 線 571206 A7 __B7_ 五、發明説明UT) ·· 狀態。 各輔助處理器被由多種不同以及可能相互依賴的構件 所構成。被使用以儲存並且復原這些構件的指令序列可能 依賴這些互相依賴性。 這附屬資訊可以一種圖形表示。如果該圓形是環式 的,則其狀態不可能順利地在任意的時序點上被儲存。但 是如果該附屬圖形是非環式的(一組DAG),則有一種方式 可安排構件之儲存以及復原,以至於所有的輔助處理器之 狀態可在任意的時序點上被儲存及復原。 TIE編輯器使用標準圇形結構和分析演算法則以產生 及分析這附屬資訊,並且在產生所給予的輔助處理器之儲 存和復原序列時採用這資訊。 例如,考慮一組輔助處理器,其具有兩組暫存器檔案, r e g f i 丨 e _ a 和 r e g f i 丨 e _ b - r e g f i 1 e _ a,具有四組 3 2 位元:ΐϊ 存 器,並且regfile_b具有十六個128位元數値。另外狀態是 被接觸過之暫存器的一位元領域,其被稱爲reg^touched, 以及推進暫存器至regfilej之背部暫存器0之狀態,其被 稱爲reg_baCk。輔助處理器提供下面的載入和儲存指令以 儲存並復原輔助處理器狀態: 經濟部智慧財產局員工消費合作社印製 rur/wur 存取 reg_touched 和 reg__back) push —a --將 regfile — a register 0 複製進入 reg —back) pop —a-·從 reg_back 複製 regfi le_aregister 0 ) sl28b reg_a_register,reg_b_register ·-將暫存器檔案 regfiU_b存入被regfile_a2暫存器所指定的位址 48 本紙張尺度適用中國國家標準(CNS ) A4規格(210X297公釐) 571206 A7 B7 經濟部智慧財產局員工消費合作社印製 五、發明説明(4) · 1128b reg一a一register,reg一b一register -·從被 regfile一a 之暫存器所指定的位址戴入暫存器檔案regfile_b s32a reg_a_register,reg_a_register --將暫存器檔案 regfile_a存入regfilej之暫存器所指定的位址 132a reg_a_register,reg^ajegister ··將暫存器檔案 regfile_a戴入regfile_a2暫存器所指定的位址 在這情況中,儲存·狀態附臑性之DAG看起來像是: reg — touched <·- regfile_a,regfile一b,reg一back 因爲這輔助處理器的TIE使得reg_touched可在 regfile_a,regfile_b或reg__back被觸碰任何時候改變。 regfile_a<----reg_back 因爲regfile_a中暫存器之儲存需要regfile_a中之一 組空置的暫存器。爲了在regfile_a中獲得一組空置的暫 存器,需要暫存器之數値經由reg_back而被移動。這破壞 reg_back之目前數値。 regfi 1 e_a <----regfi 1 e_b 因爲regfile_b之儲存指令使用regfile_a中之一組暫 存器作爲其儲存位址。這宣告regfiU_b僅可在i*egfiU_a 已經被儲存之後被儲存一實際上僅有一組暫存器在 regfi 1 e_a中。爲了舉例方便起見這被簡略。 因此儲存序列確認狀態以一種合適之順序被儲存。在 這情況中,其順序是 reg_touched,reg —back, regfile_a,regfile_b 另外,因爲較佳實施例允許暫存器檔案之定義’該暫 49 本紙張尺度適用中國國家標準(CNS ) A4規格(210X297公釐) ---------^-- 請·^閱讀背面之注意事項再填巧木頁} 、-° 線 571206 經濟部智慈財產局員工消費合作社印製 A7 _______B7_五、發明説明) .· 存器檔案之元件無法以標準程式語言(例如,(:中之64-位 元或如上述之飽和算術)內建形態表示,故其必須具有用以 添SD新的形態以匹配被定義的硬體之機構。程式語言形態 同時可被使用以決定一組變數可能被安置至那一暫存器檔 案。 例如,在許多-ISA中可普遍見到,映射整體數値至一 組暫存器檔案以及浮點數値至另一暫存器檔案,因爲整體 計算指令僅在整體暫存器檔案中採用他們的運算元,並且 浮點指令僅在浮點暫存器檔案中採用他們的運算元。給予 產生新資料形態的能力,其需要具有一組機構以詳細指明 在內建形態和新的形態之間,以及在不同新形態之間被允 許的轉換。例如,在C程式語言中,char形態變數和 short 形態變數之間(利用符號或零延伸char形態)的轉換被允 許。 下面的TIE結構 ctype <tname> <size> <alignment> <rfname> 產生一組程式語言形態<tname>並且將其宣告爲<size> 位元,被對齊於在記億體中之<&丨丨81111^111>位元界限,並且 被安置至<rfname> ^ 例如,繼續Galois-field算術GF單元,該敘述 ctype gf8 8 8 gf 宣告一組新的形態(較佳實施例中之C程式語言)’其 被稱爲”gf8",其具有對齊於8位元記憶體界限之8位元數 値,並且如需要的話’這些數値被暫存器安匱在"gf"暫存 50 $紙張尺度適用中國國家標準(CNS ) A4規格(210X297公釐) 571206 A7 B7 五、發明説明(β ). 器檔案中。 下面的TIE結構 proto <pname> (<ospec>, ···} {<tspec>, ·.·} {<inst>,…} 被使用以指定指令序列,該序列進行編輯器所必須了 解之相關的各種功能或給予關於內在指令運算元之形態資 訊。<ospec>是運算元形態規格,<tspec>是指令序列需 要之暫時的暫存器規格,並且<inst>是序列指令。 <ospec>2語法是: [in |out| inout] <typename> [*] <oname> 其中<oname>是運算元名稱,其可取代序列指令 (<inst>)。<typename>是運算元之形態名稱(如果給予該 選擇的星號*時,則指標指向那形態)。 暫時的暫存器規格<tspec>2語法是: <rfname> <oname> 其中 <〇name>是可取代序列指令 (<inst>)之運算 元名稱。<typename>是形態名稱,其辨識在這序列中 <〇name>該暫時地被安置之暫存器檔案。 序列<inSt>中之指令的語法是: <iname> [<oname> | <1 iteral〉],…; 其中<iname>是指令名稱,<〇1131116>是在任一 <〇sPec> 或 <tspec>中被宣告的運算元名稱,並且<literal>晏一組 常數或串列,當產生proto所指定之指令序列時’ ^ <literal>不改變地被編輯器所使用。 51 本紙張尺度適用中國國家標準(CNS ) A4規格(210X297公釐) (請乇閱讀背面之注意事項再填巧本頁) -裝· 、-口 經濟部智慧財產局B工消費合作社印製 571206 A7 ______B7_ 五、發明説明(# ) ·. proto之一種使用是簡單地結合具有指令運算元之形 態以達成定義內在指令之目的。在這情況中,<]311311^>是 內在指令之名稱;<ospec>匹配iclass運算元規格(除了被 添加的形態名稱);<tspec>列表應該是空白的;並且<inst> 序列應該包含一組單一指令。一組範例可能是: proto GFADD8 {out gf8 r, in gf8 s, in gf8 t } { } { GFADD8 r, s, t; } proto之另一種使用是定義多指令內在指令。此處 <15口6(:>可以是非空白的。範例: proto GFADDXSQ8 {out gf8 r, in gf8 s } { gf8 tmp } { GFMULX8 tmp , s ; GFMULX8 r, tmp; } 經濟部智慧財產局員工消費合作社印製 proto之另外的使用是,指示編輯器如何載入並且儲 存使用Ctype TIE結構被宣告之程式語言形態數値。如先 前的討論,對於編輯器而言,能夠從記憶體載入並且將數 値儲存至記憶體是必須的,這使得編輯器可進行暫存器之 安置,並且允許一組暫存器檔案之內容在任務交換時被儲 存並且復原。 對於各ctype<tname>之宣告,必須具有下列形式的 52 本紙張尺度適用中國國家標準(CNS ) A4規格(210X297公釐) 經部智慧財產局員工消費合作社印製 571206 A7 B7 五、發明説明(* pr〇tO 曰 r~^ 1 proto <tname> 一 loadi { out <tname> <x>, in <tname>* <y>, in immediate <z> } { <tspec>,... } { <inst>... // sequence of instructions that loads ?? // register <x> from the address <y> + <z> } proto <tname>_storei {in <tname> <x>, in <tname>* <y>, in immediate <z> } { <tspec>,... } { <Inst>... // sequence of instructions that stores // register <x> from the address <y>+<z> } qname〉_loadi proto告訴編輯器有關應該被使用以從 記憶體將一組形態<^311^>數値載入暫存器的指令序列。 <tname>_storei proto告訴編輯器有關應該被使用以從暫存 器將一組形態<tname>數値儲存入記憶體的指令序列。 如早先的說明,編輯器最好能了解如何從一組暫存器 將一組數値移動至另一組暫存器。如同載入和儲存’ Proto 被使用以指示編輯器如何在暫存器之間移動數値。對於各 53 本紙張尺度適用中國國家標準(CNS ) A4規格(210X297公釐) ^------1T------0 (請^閱讀背*之注*事項再填寫本頁) 571206 經濟部智慧財產局員工消費合作社印製 A7 B7五、發明説明(5l ).. ctype<tiiame>之宣告,其可能具有下列形式之一組proto 宣告: proto <tname>一move { out <tname> <x>, In <tname> <y> } { <tspec>,... }{ <lnst>... // sequence of instructions that moves // register <y> to register <x>} 例如,繼續Galois·field算術GF單元,proto宣告: proto gfB一loadi {out gfB t, in gf8* s, in immediate 0} {} { LGF8.I t,s,o;} proto gf8_storei (in gf8 t,in gfB* s,in immediate 〇}{} { SGF8.I t,s,o;} proto gffi move (out gf8 r, in gfB s} {} GFADD8I r,s, o;} 將是較佳實施例之所需要輸入以使得編輯器執行gf8 變數之暫存器安置;它們同時也將會是產生gf暫存器檔案 之工作狀態交換序列之所需要輸入。 proto最後一種使用是,定義在內建以及新形態之間 54 本紙張尺度適用中國國家標準(CNS ) A4規格(210X297公釐) 經漪部智慧財產局員工消費合作社印製 571206 kl B7 五、發明説明(5之)· 被允許的轉換,以及定義在不同的新形態之間的轉換。轉 換原始形態是不需要的;如果,例如,在新形態A以及新 形態B之間的一組轉換不被指定,則編輯器不允許形態A 之變數被轉換至形態B之變數。對於各對新的或者內建形 態<^111311^>和<^21^1116>(其中最多一組可以爲內建形態; 這機構不允許在兩組內建形態之間的轉換規格’因爲該轉 換已經被程式語言所定義)最多可有三組proto宣告形式: proto <tlname>一rtor一<t2name〉 { out <t2name> <x>, in <tiname> <y> } { <tspec>,... } { <Inst>...// sequence of instructions that converts // type <tiname> in register <y> to type // <t2name> in register <x> } proto <tl name〉jrtom_<t2name> { in <tlname> <x>, { in <t2name>* <y> { in immediate <z> } { <tspec>,... } { <inst>... // sequence of instructions that stores // type <tl name〉In register <x> as // type <t2name> at the address <y>+<z> proto <tiname>_mtor_<t2name> out <t2name> <x>, } in <tlname>* <y>, 55 本紙張尺度適用中國國家標準(CNS ) A4規格(210X297公釐) ^------IT------0 (讀先閱讀背面之注意事項再填寫本頁) 571206 A7 B7 五、發明説明) .· in immediate <z> } { <tspec>, ... } { <Inst>... // sequence of instructions that loads // type <tl name〉from the address <y>+<z> // as type <t2name> Into register <x> 例如,繼續利用Galois-field算術GF單元’ proto宣 告 : proto gf8_rtom_char {in gf8 t, in char* s, in immediate 〇} {} SGF8.I t,s,o; } proto char_mtor_gf8 {out gfB t, in char* s, in immediate 〇} {} LGF8.I t, s, o; } 將允許在記憶體中之形態char變數以及暫存器中之形 態gf8變數之間的轉換。利用這些proto,下面的範例展示 兩組char向量如何使用GFADD內在指令而被添加: 經濟部智慧財產^78工消費合作社印製
Void gfadd_vector (char * char vectorO, char ·char一vector 1, int size) { for (int i = 0; i < size; i + + ) 56 本紙張尺度適用中國國家標準(CNS ) A4規格(210X 297公釐) 571206 A7 B7五、發明説明(54) ·. gf8 p0 = char_vectorO [i]; gf8 pi = char_vectorl [ i]; gf8 res = GFADD(pO, pi); char_vectorO [i] = res; 經躋部智慈財產局員工消費合作社印製 在先前技術系統中(例如,GNU C編輯器),編輯器保 持各程式變數以及被編輯器產生之暫時變數之形態資訊。 這些內建變數形態對應至高位準語言形態(例如,在C語 言中、char、short、int、float、double、等等)。對於各內 建形態,編輯器必須了解形態名稱、形態大小、及形態之 對準需要,以及形態數値必須被安置之暫存器檔案。對於 新的形態,這資訊被ctype語言結構所提供。使用ctype 資訊,編輯器產生代表該形態之一組內部形態結構,並且 以一種相同於內建形態所達成的方式而使用該形態於程式 變數以及被編輯器產生之暫時變數。 先前技術 GNUC 編輯器使用被計算之形態 machine_m〇de內部地代表形態。相關的形態被以類別聚集 在一起,利用被計算形態m〇de_C lass而被說明。爲支援新 的形態,熟習此技術者可增加一個計算器至mode_ClaSS以 代表一種形態類別,該形態類別代表被使用者定義之形 態,並且可增加一組計算器至各新的形態上之 machine_mode,各新的形態被使用ctype TIE語言結構而 57 本紙張尺度適用中國國家標準(CNS ) A4規格(210X297公釐) t------、玎------0 (請先閱讀背而之注意事項再填艿本頁) 571206 A7 B7 五、發明説明(55).. 宣告。例如,假定代表新的形態之類別被稱爲 MODE.USER,貝[J 在檔案 machmode.h 中之 mode — class 的 疋義成爲· enum mode_class { MODE:一RANDOM,MODEJNT,MODE:一FLOAT, MODE—PARTIALJNT, MODE-CC, MODE一COMPLEX INT, MODE—COMPLEX—FLOAT, MODEJJSER^ MAX一MODE_CLASS}; 利用將指令行加入檔案mach_mode.def中,計算器被 添加至machine_mode上。各指令行定義一組新的形態, 其名稱、其類別、以及其大小(以8位元爲單位)。用於被 使用者定義之形態之計算器被稱爲U<n>mode,其中0<n> 是在零以及被使用者定義之形態總數目之間的一組數目^ 例如,增加一組內部形態以代表先前範例中之被定義的使 用者形態gf8,則下面的指令行被添加: DEF_MACHMODE (UOmode,,.U0,,,MODE_USER,1,1, VOIDmode) 熟習此技術者接著修改被gnu c編輯器使用之分析 以及最佳化以在MODE_USER類別形態上正確地執行。 經濟部智慧財產局肖工消費合作社印製 在先前技術編輯器中,指令選擇器(或指令產生器)負 責將各內部表示指令以低位準指令序列(大約對應至組合語 言指令)取代。指令選擇器利用檢視內部指令所達成的操 作,以及指令運算元形態以決定替代指令序列。例如,代 表一組相加之內部指令,其可能具有形態int之兩組輸入 58 本紙張尺度適用中國國家標準(CNS ) A4規格(210X297公釐) 經濟部智慈財產局員工消費合作社印製 571206 A7 _____B7_ 五、發明説明(兑), 數値以及形態int之一組輸出數値;或可能具有浮動形態 之兩組輸入數値以及浮動形態之一組輸出數値。依據輸入 和輸出數値形態,指令選擇器選擇進行一組整數相加之指 令序列或進行一組浮點相加之指令序列•對於被使用者定 義之形態,載入、儲存、移動、以及轉換proto定義說明 替代內部指令之指令序列,該內部指令具有一組或更多組 被使用者定義之形態的運算元。繼續Galois-field算術GF 單元之範例,如果內部指令代表gf8數値之載入,則指令 選擇器參考gf8-loadi proto以決定應該取代指令的指令序 列。 在先前技術GNU C編輯器中,目標處理器中可用的 指令使用指令樣型而被說明;參看,例如,Stallman所著" 使用和掌控GNU CC"( 1 995),以得到更多的資訊。這些指 令樣型說明指令,包含運算元之數目和形態。爲支援編輯 器中之被使用者定義形態,載入、儲存、移動、以及轉換 proto被轉換至編輯器所預期的指令樣型。例如,gf8-load proto利用下面的樣型被宣告(假定gf8 ctype已被映射至 machine_mode 計算器 Uomode): (define一insn ·’" [(set (match — operand:U0 0 "register — operand" "v") (match_operand:UO 1 "memory operand" M U "))] tt it MLGF8.I \ t%0, %1") 59 本紙張尺度適用中國國家標準(CNS )A4規格(210X297公楚^ l------π------0 (請先閱讀背面之注&事項再填寫木頁) 571206 A7 ______B7 五、發明説明(5了).. 指定一組暫時暫存器之pr〇t〇被轉換至一組指令樣 型,該指令樣型重寫或"修補(clobber)"適合形態之運算元。 編輯器將確保被修補運算元在指令位置上未被使用,以至 於指令可暫時的使用它。例如,下面被使用者定義之形態 tt的載入proto產生包含一組修補器之指令樣型: proto tt_loadi { out tt x, in tt* y, in immediate z } { char t} { L8UIt, y, z; MVTTx, t; } (define一insn"" [(parallel [(set (match一operand:U0 0 "register一operand" "v") (match一operand:U0 1 "memory一operand" "U”)) (clobber (match_operand:UO 2 "register_operandM Ma"))])] till HL8UI \ t%2, %l\nMVTT\ t% 0, %2M) 內在功能表示 經濟部智慧財產局g(工消費合作社印製 在Killian等之申請中,一組內在功能宣告檔案被產 生,其包含所有TIE指令之定義爲使用GNU asm說明之 功能。尤其是,各指令功能具備有C volatile性質而抑制 可能發生之最佳化。這方法雖然安全,但阻止TIE指令可 安全地被重新安排時之編輯器最佳化。本發明以兩種方式 改進先前之技術系統。首先,僅載入和儲存指令被宣告爲 ___ 60 本纸張尺度適用中國國家標準(CNS ) A4規格(210X 297公釐) 571206 A7 B7 五、發明説明(兄). volatile,因此,在指令最佳化時,給與編輯器最大自田以 便重新安排指令。在第二種改進中,使用特殊以及使用者 宣告狀態之指令以一種明確的狀態參數被宣告’因此給予 編輯器關於指令副作用之更精確的資訊。下面的檔頭檔案=T I E編輯器被產生以將G F範例中所有指令宣告爲内在 函數: /* Do not modify. This is automatically generated.*/ typedef int gf8 —attribute— ((user(ngf8n))); #define GFADD8_ASM(gr, gs, gt) {\ _asm_ (”gfadd8 %0,。/。1, %2" :,,=v”(gr): ”v”(gs),V,(gt)); 經漆部智慧財產局資工消費合作社印製 #define GFADD8_ASM(gr, gs, imm4) {\ _asm_ (,,gfadd8i %0· 〇/〇l, %2” : ”=v’’(gr) :"v’’(gs), ”i"(imm4)) :\ J #define GFMULX8_ASM(gr, gs){ \ register int _xt_state asm ("state"); \ asm_ (ngfmulx8 %1,〇/〇2 (_xt_state),,,=v,,(gr) :,V,(gs),\ \ #define GFRWMOD8一ASM (gt) { \ register int _xt_state asm (,,state,f); \ _asm_ (Mgfrwmod8 %1 (_xt_state), n=vM(gt) , \ ---------装------1T------0 (請先閱讀背面之注*事項再填巧本頁) 本紙張尺度適用中國國家標準(CNS ) A4規格(210X 297公釐) 571206 A7 B7 經濟部智慧財產局員工消費合作社印製 五、發明説明(5,)’ #defme LGF8—I一ASM (gt,ars,imm8) {\ _asm__ \ volatile(,,lgf8一i %0, %1,%2 ":n=v"(gt) :"a"(ars),\ #defme SGF8一I一ASM (gt,ars,imm8) {\ _asm_ \ volatile ("sgf8」。/。0, %1,%2 ”:n=vn(gt) :’’a"(ars),\ #defme LGF8一IU—ASM (gt,ars,imm8) {\ _asm_ volatile(f,lgf8Ju %0, %1, %3 M : \ "=v”(gt),"=a" (ars): "Γ (ars),"i"(imm8)); \ #define SGF8_IU_ASM (gt, ars, imm8) {\; _asm_ volatile(Hlgf8Ju %1, %0, %3 M: \ M=a" (ars): V,(gt),"0,,(ars),”i"(imm8)); } #define LGF8_X_ASM(gr, ars, art) {\ asm— volatile("lgf8_x %0, %1, %2M : \ ”=v’’(gr) : ’’a”(ars),"a” (art)); \ #define SGF8__X^ASM(gr, ars, art) {\ _asm一 volatile("sgf8一x %0, %1, %2M : \ "=v" (gr), "a" (ars),”a" (art)); \ #defme LGF8—XU_ASM(gr,ars,art) {\ 本紙張尺度適用中國國家標準(CNS ) A4規格(210X 297公釐) (請乇閱讀背面之注*寧項再填巧木頁) -裝· 線 571206 A7 B7 經¾部智慧財產局員工消費合作社印製 五、發明説明(β )、 一asm_ volatile(”lgS—Xu %0, %1, %3H : \ n =V" (gr),,,=an (ars ) : ΠΓ (ars ),,,a,,(art)); \ \ #define SGF8一XU—ASM(gr,ars, art) {\ asm— volatile(’’sgf8-XU %1, %0, %3" : \ n=a" (ars) : "v·· (gr),,O" (ars),na”(art)); \ 在上面樣本輸出中,例如GFADD8I之算術指令不被 宣告爲volatile。例如LGF8_I之載入和儲存指令被宣告爲 vo丨atile =讀取或寫入處理器狀態的指令,例如GFRWMOD8 具有多出一組之argument_xt_state,以告知編輯器這些指 令具有副作用。 暫存器安置 先前技術系統(例如,GNU C編輯器)包含爲輕便性而 設計的暫存器安置演算法則。輕便性需要編輯器支援多種 的ISA。即使這些IS A它們本身不是可組配的或可展延的, 針對它們之任何一組編輯器資對於暫存器之安置必須採用 一種一般的方法。因此,先前技術系統可以允許多重暫存 &之安置,並且有一些可能限制程式語Μ形態爲某種暫存 器檔案。 先前技術GNU C編輯器利用修改目標機器說明而允 許任何數量之暫存器檔案被指定。熟習此技術者可利用修 改目標機器說明而增加支援一組或更多新的暫存器檔案至 GCC,如”使用以及掌控GNU CC”一書中之說明。 63 本紙張尺度適用中國國家標準(CNS ) A4規格(210X297公釐) ---------¾-- (請先閱讀背而之注意事項再填巧本頁) 訂 線 571206 經濟部智慧財產局員工消費合作社印紫 A7 _____B7__五、發明説明(6 / ). 對於各TIE regfile結構,編輯器自動地被組態以指定 數値至暫存器檔案中之暫存器。regfile結構指示在暫存器 檔案中之暫存器數目。如上所述,該TIE ctype結構指定 具有該形態之數値應該被指定的暫存器檔案。當試圖指定 具有被使用者定義之形態的各程式數値時,則編輯器使用 這資訊,以及暫存器檔案中之暫存器數目。繼續Galois-field 算術GF單元之範例,gf暫存器之regfile結構是: regfile gf 8 16 g 這指示有16組gf暫存器,各具有8位元大小。gf8 形態之ctype結構是: ct \ pe gf8 8 8 gf, 其指示形態gf8之數値必須被指定至gf暫存器檔案。 因此,編輯器將安置所有形態gf8的數値至gf暫存器檔案, 其具有1 6組暫存器。 指令安排 先前技術系統(例如,GNU C編輯器)包含指令安排演 S法則,其利用減低管線輸送之延遲而重新安排指令以增 加性能。這些演算法則利用模擬目標處理器之管線輸送操 作以決定產生最少延遲週期的指令安排順序,並同時滿足 其他的管線輸送限制,例如主張的寬度以及功能單元有效 64 本纸張尺度適用中國國家標準(CNS ) A4規格(210X297公釐) 經濟部智慧財產局員工消費合作社印製 571206 A7 ___ —_B7_ 五、發明説明(6足). 性. 先前技術GNU C編輯器,對於任何指令組對而言, ίϋ ® $定如果一組指令在另一組之後即時地被安排所產生 Λ之延S週期數,而模擬處理器之管線輸送。依據各指令組 對之延遲資訊,編輯器試圖發現使總計延遲週期最小化的 一種指令安排。對於新的TIE指令,編輯器使用被TIE語 言安排結構提供之資訊而決定延遲週期。爲了決定如果指 令B在指令A之後即時地被安排所產生之延遲數目’編輯 器比較在A中之各輸出運算元的寫入管線輸送步驟與在B 中之各對應的輸入運算元之讀取管線輸送步驟。對於各運 算元,這些數値中之差量,加上1(因爲針對被定義之運算 元管線輸送步驟數値之安排結構語義)’指示必須分離A 與B以避免受到延遲的最小週期數目。1之數値指示B可 A之後即時地被安排而不用受到延遲’ 2之數値指示在 A之後即時地安排B將產生一組延遲週期’等等。在被A 寫入的所有運算元之最大延遲數値是如果8在A之後即時 地被安排所產生的延遲週期數目。 考慮下面的範例安排結構: schedule aload { A L D } { use imm8 0; use ars 1 ; def xc 2; 65 本紙張尺度適财酬家鮮(CNS ) A4規格(21GX 297公楚丁 ^------、玎------0 (诗先閱請背而之注意事項再填寫本頁) 571206 A 7 B7 五、發明説明) 經濟部智慧財產局員工消費合作社印製 schedule aadd { AADD }{ use xa 1 ; use xb 2; def xc 2 ;} 在下面的指令序列中’在ALD指令中之xt運算元’ x3 ’ 是相同於AADD指令中之xa運算元。因此,AADD指令 必須被安排在 ALD 之後(def xt)-(use xa)+l=2-l + l=2 週 期以避免受到延遲。如果AADD在ALD之後即時地被安 排,則有一週期的延遲。 ALD x3, a0, 〇 AADD x0, x3, xl 在下面的指令序列中,ALD指令中之xt運算元,x3, 是相同於AADD指令中之xb運算元。因此’ AADD指令 ,!:、須被安排在 ALD 之後(def xt)-(use xb)+l=2-2+丨週 期以避免受到延遲。在這情況中’如果AADD在ALD之 後即時地被安排’則沒有延遲。 「先閱讀背IfJMV注念事項本頁) •裝
、1T 線 本紙張尺度適用中國國家標準^⑽以私見格“川心…公爱) 經濟部智慧財產局員工消費合作社印製 571206 A7 _____B7_ 五、發明説明(64 ) ·. ALD x3, a〇, 0 AADD χΟ, χΐ, χ3
Lazv狀態切梅 添加暫存器檔案至處理器顯著地增加必須被儲存以及 復原之狀態數量,如被大多數即時操作系統所製作之多工 環境中工作切換之一部份。因爲另外的狀態通常特定於某 種計算,該計算在工作子集合中被達成,其不需要對每一 工作交換儲存和復原這另外狀態而不必要地增加工作交換 週期計數。這同時也可能是在不可展延的處理器中的一個 問題,其中先前技術提供一種解決方法。例如,MIPS 2000 CPENABLE位元允許輔助處理器暫存器從一組工作"1 azy " 切換至另一工作。較佳實施例允許lazy切換被應用至經由 處理器延伸(TIE狀態以及regfile宣告)產生的狀態。 這是一種最複雜的儲存和復原操作。其複雜的理由有 許多:其是發生在從本文切換被延遲的時間:執行時間必 須處理各輔助處理器檔案之有效性;並且核心本身在例外 發生時改變輔助處理器之有效性。 爲展示這可能如何被處置,假設有一種系統,其具有 兩組工作,A和B。同時也有兩組輔助處理器暫存器,cp_0 和cp_l。系統狀態包含被核心所維持之有效位元以及被執 ίΐ時間所維持之暫存器檔案擁有者記錄。接著,考慮被展 示於下面表1中之事件序列。在這範例中,輔助處理器狀 態假設被儲存於各工作堆疊基底中。 67 本纸張尺度適用中國國家標準(CNS ) Α4規格(210X297公釐) ---------1------π------0 (許乇閱#'背而之注*事項再填巧本頁) 571206
A B 經濟部智慧財產局員工消費合作社印製 0 有效的 1 有效的 0 擁有者 1 擁有者 事件 註釋 X X X X 啓始狀態 核心開始於一種禾知 狀態。 1 1 無 無 系統首先將所有暫存 器檔案設定爲有效。 接著呼叫mit常式以 設定各檔案狀態。 0 0 無 無 在啓始狀態終止時, 系統宣告所有暫存器 檔案使用上無效並且 暫存器檔案無所有 者。 0 0 無 無 工作A被 產生 在工作Α產生期間, OS確認使用init_mem 呼叫以啓始工作A之 堆疊基底至啓始復原 之”安全”數値。 工作A之堆疊指標被 設定以在這儲存區域 之後開始。 輔助處理器之狀態不 受到影響。 0 0 無 無 工作B被 產生 工作B之產生正如工 作A之產生。 1 0 A 無 工作A使 用 cp一0 暫存器檔案之使用導 致一種例外。該例外 設定有效位元。因爲 cp_0先前沒有擁有 者,故沒有進行資料 儲存。由於工作A存 取輔助處理器,工作 A使用於這輔助處理 器之資料被載入cp_0 中。cp_0之所有權被 指定至A。 0 0 A 無 工作B交 換 在交換之後,執行時 間將A之狀態保留於 cp_0暫存器檔案中。 暫存器檔案被標明爲 無效,但是A保留爲 所有者。 68 本紙張尺度適用中國國家標準(CNS ) A4規格(210X297公釐) 571206 A7 B7 五、發明説明(66), 經滹部智慧財產局員工消費合作社印製 0 1 A B 工作B使 用 cp一 1 如前,當A首先使弔 cp_0時,該例外設定 有效位元。執行時間 察覺cP 1先前不技使 用並且i此不執行復 原。執行時間將B之 狀態載入cpj並且設 定B爲cP_l所有者。 1 0 A B 工作A交 換 在這交換上有更多的 工作要做。執行時間 淸除cp_l之有效位 元,因爲B被交換出 去並且是cp_l之擁有 者。由於A被交換進 入,其設定cp_0之有 效位元。工作A可使 用cp_0而不引起一組 例外。 注意到,這只是這程 序的一種實施。所有 的有效位元可能被關 閉並且如果A接觸輔 助處理器,則執行時 間可能,在例外中, 辨識A之狀態已經被 載入至cp 0並且避免 在那點上的復原。該 例外將設定有效位 元。 1 0 A B 工作A使 用 cp一0 因爲A之狀態已經是 在cp_0之中,執行時 間在文脈交換上已設 定有效位元。由於有 效位元被設定,沒有 例外發生而且執行時 間不必採取任何動 作。 ---------装------、玎------0 (請先閱讀背面之注意事項再填寫本頁) 69 本紙張尺度適用中國國家標準(CNS ) A4規格(210X 297公釐) 571206 A7 B7
1 1 A A 工作A使 用 cp一 1 工作A之cp_l使吊丨 導致一組例外。這例 外設定cp_l之有效位 元。執行時間,由於 工作B擁有cp_l,將 cp_l之內容儲存至工 作B之堆叠上。其接 著將工作A之狀態復 原至cp j。 0 1 A A 工作B交 換 工作A的所有有效位 元被關閉。工作B沒 有擁有輔助處理器並 且因此沒有有效位元 被開啓。 0 1 A B 工作B使 用 cp_l 工作B之cp_l使用導 致一組例外。這例外 開啓cpj之有效位 元。執行時間,得知 工作A目前擁有cp_l 並且儲存目前狀態至 工作A之儲存區域。 執行時間接著將工作 B之狀態復原至 cp一 1。 處理程序彳 繼續… 表I (旖先閡讀背而之注念事項本頁) •裝
、1T 經濟部智慧財產局員工消費合作社印¾ lazy切換機構需要狀態被聚集成爲集合,其之存取可 打引動或不被引動·不引動狀態之存取導致一組例外,該 例外的操作器可決定那種狀態必須被切換,並且例外操作 器可儲存至記憶體並從記憶體復原狀態和重新引動存取。 較佳實施例中,下面的TIE結構 coprocessor <came>〈cumber〉{ <sname> ,...} 線 本纸張尺度適用中國國家標準(CNS ) Α4規格(210X297公釐) 571206 A7 B7 經濟部智慧財產局員工消費合作社印製 五、發明説明(么艺)- 宣告<Sname>,···指定的狀態,是lazy切換目的之一種 聚集。這聚集的名稱是<came>,並且一組數目<^111111^1>>在 0至7之範圍中。如果任何<sname>,···在多於—組輔助處 理器陳述中被命名的話’其將是一種錯誤。 由上面所給予的結構’一組指令列表被產生’其具有 在iclass進入/出/進出列表中之<sname>。一組信號接著被 產生,其是這些指令之指令單脈衝解碼之〇R運算結果。 這信號被與CPENABLE位元之補數AND進行運算結果。 爲各處理器所產生之這些信號’接著被與TIE原始指令碼 產生的例外組合,其在下面之例外部份中詳細地被說明。 所有輔助處理器不引動的例外’具有比來自TIE原始指令 碼之任何例外較高的優先順序。在輔助處理器不引動的例 4 Z問,最低數目之例外具有優先順序。 在較佳實施例之核心處理器中,不同的例外皆使用相 同向量並且利用例外載入至EXCCAUSE暫存器的指令而 被辨識。核心處理器儲備這些例外的八組動機指令(從32 至39)。反應於輔助處理器之敘述,TIE編輯器添加位元 <(:1111^$1*>至 CPENABLE 暫存器,如果 <^1111^61*>被淸除並 且任何指令存取csname?,...被執行的話,則添加邏輯至 處理器以產生一組例外,並且當例外被核心辨識時,添加 邏輯至處理器以將32 + <anumber>載入EXCCAUSE暫存器 中 。 TIE中之多週期指令 先前的處理器技術中,需要多重計算週期之指令需要 71 本紙張尺度適用中國國家標準(CNS ) Α4規格(210X297公釐) ---------^-- (請先閱讀背面之注^事項再填β本頁) 、11 線 571206 A7 __B7__ 五、發明説明(的), 外的邏輯,以便將計算的組合邏輯管線輸送並且防亡依 據尙未計算結果之指令被發出。另外,這類處理器之編緝 器應該包含演算法則以重新安排指令使管線輸送之延遲最 小化。 第一項目一般利用寫入邏輯而被處理器設計者所製 作,該邏輯具有放置在被仔細地選擇之位置上的管線輸送 暫存器。第二項目一般利用比較一組指令之原始運算元而 被製作,該指令將被發出至管線輸送中所有尙未被計算之 目的地運算元,並且如果有一組匹配者的話,則保持該指 令c 這三組項目必須被協調。如果計算邏輯之管線輸送不 匹配於發出邏輯之改變,則處理器可能產生不正確的結 果。如果使管線輸送之延遲最小化之重新安排與組合邏輯 之管線輸送不一致,則次佳的性能將產生(例如,使用尙未 產生之結果將導致管線輸送延遲)。 採用下面的範例: MUL a3, a4, a5 /* a3 = a4 * a5, 2 週期指令·/ ADD a6,a3, a7 /· a6 = a3 + a7,單週期指令 */ SUB a2, a0, al /* a2 = aO - al,單週期指令•丨 經濟部智慧財產局員工消費合作社印製 如果MUL邏輯持續兩組週期,但是控制邏輯每一週 期發出一組指令,a6將具有不正確的結果,因爲在ADD 指令需要它時a3不具有正確數値。爲得到正確數値,發 出邏輯必須了解MUL管線輸送持續兩組步驟並且在發出 72 本紙張尺度適用中國國家標準(CNS ) A4規格(210X297公釐) 經¾•部智慧財產局員工消費合作社印製 571206 A7 ____B7__ 五、發明説明) · ADD指令之前延遲一組週期。即使將ADD指令延遲一組 週期產生正確邏輯,其不提供最佳性能。利用切換ADD 和SUB指令順序,在這範例中將不再需要延遲任何指令, 並且因此產生最佳性能。這僅可利用MUL邏輯製作、指 令發出邏輯製作、以及指令重新安排之間的適當協調而被 達成。 在先前技術系統中,這三組項目(管線輸送邏輯、受延 遲管線輸送以及指令重新安排)時常分別地被製作,使得協 調更不易並且增加設計確認之需要。本發明較佳實施例提 供一次指定這些特點所需要的資訊,並從那規格製作處理 器產生器中之三組項目的方法。 另外,較佳實施例之指令集模擬器在時序模式中使用 相同規格之安排資訊。這允許使用較佳實施例所有特點之 應用發展者在硬體被建構之前得到良好的性能預報,而不 用在一組遲緩的HDL模擬器上執行他們的應用。
Killian 和 Warthman 之 XtensaTM 指令集結構(ISA)參考 手冊第1 〇章,在此處倂入參考以詳細說明用以敘述管線 輸送硬體之一種方法,該管線輸送硬體被使用以模擬處理 器管線輸送性能並且其在先前技術中被使用以使管線輸送 之延遲最小化。但是,較佳實施例中,這說明另外地被使 用於上述之最初兩組項目。 尤其是,TIE語言接著包含下面之宣告: schedule <schedulename> { <iname>,…} 73 本紙張尺度適用中國國家標準(CNS ) A4規格(210X297公釐) ---------#------1T------0 (請乇閱讀背面之注*事項再填寫本頁} 571206 A7 B7 五、發明説明(Γ/). in <oname> <stage>; out <oname> <stage>; 經濟部智慧財產局K工消費合作社印製 其中<iname>是指令名稱; <〇narne>是一種運算元或狀態名稱,以及 < stage >是一種代表管線輸送步驟之序數。 被TIE使用之def步驟數目是Killian和Warthman之 XteiiSaTM指令集結構(ISA)參考手冊第10章所被說明的數 値減一並且因此在指令之間的分離是max(SA-SB + 1,0), 而不是 max(SA-SB,0)。 依據這規格,在Killian等和Wilson等申請被說明之 TIE編輯器被擴展以將管線輸送暫存器加入語義邏輯規 格,如下所示。一組步驟數目被指定至每一語義區塊之輸 入。指令解碼信號以及立即運算元被指定製作特定的數字 (在較佳實施例中的〇)。暫存器原始運算元、狀態暫存器、 以及界面信號(被說明如下)從TIE順序安排宣告被指定步 驟數目(在較佳實施例中的製作特定之原定値1 )。接著, 語義區塊之各節點以向後順序被探視(亦即,在其之前的節 點已經被探視之後)。節點NS之步驟數目是其任何輸入之 最大步驟數目。對於具有步驟數目IS<NS之各輸入,編輯 74 本纸張尺度適用中國國家標準(CNS ) A4規格(210X297公釐) (請先閱讀背面之注意事項再填寫本頁) •裝·
571206 A7 B7 五、發明説明(π ). 器在輸入和節點之間加入NS-IS管線輸送暫存器。最後, 輸出暫存器運算元、狀態暫存器以及界面信號被探視。如 果從語義區塊IS之步驟數目大於目錄說明中所表示之步 驟數目OS,則輸入TIE規格則是錯誤的。否則如果OS>IS, 則在輸出之前加入OS-IS管線輸送暫存器。 這處理程序展示於下面範例中: state s1 1 state s2 32 state s3 32 iclass complex {example} {out arr, in ars, in art} {in si, in s2,in s3} semantic complex {example} { wire [31:0] tempi = si ? ars : art; wire [31:0] temp2 = s2 · tempi; assign arr = s3 + temp2; } schedule Complex {example} { in ars 1; / * using operand ars in stage 1 * / in art 1; / * using operand art in stage 1 * / in si 2; /* using state SI in stage 2 */ 75 本紙張尺度適用中國國家標準(CNS ) A4規格(210X297公釐) ---------參-- (請先閱讀背面之注意事項再填寫本頁)
、1T 線 經海部智慧財產局工消費合作社印製 571206 A7 B7 五、發明説明(Γ3 ). in s2 2; /* using state s2 in stage 2 */ in s3 1; /* using state s3 in stage 1 */ out arr 3 ; /* def ining operand arr in stage 3 */ } 這範例說明指令"範例"使用運算元ars、art並在步驟 1使用狀態S3以及步驟2中使用狀態si和s2。其在步驟 3中產生結果運算元arr。對於這說明,上面暫存器輸入步 驟將產生第8(a)圖中之電路。節點"?"之NS是2因爲最大 輸入步驟是2。因爲ars和art之IS是1,故一組暫存器被 加入節點”?”之相對輸入。相似地,在節點" + ”,S3之輸入 被延遲一步驟以匹配其他的輸入。最後,節點” + "之輸出 在被指定至arr之前被延遲一步驟。如果上面範例的安排 說明中,arr被表示爲"out arr 1”,管線輸送加入步驟將產 生第8(b)圖中之電路。因爲節點” + "之NS是2並且arr之 OS是1,步驟將發出一個錯誤訊息,因爲輸入安排的需要 不被滿足。 上面演算法則正確地加入必須的管線輸送暫存器,但 是這些暫存器之安置並非最佳。其必須在啓始插入之後使 用一組管線輸送暫存器最佳化演算法則,例如Synopsys之 設計編輯器,以產生合成可接受之邏輯。一般這是利用將 暫存器移過組合邏輯以平衡暫存器兩側之邏輯延遲而被完 成 < 使用上面範例,暫存器最佳化將產生如第8(c)圖中之 一組電路,其中在節點"輸出之暫存器被移動至輸入以 76 本紙張尺度適用中國國家標準(CNS ) A4規格(210X297公釐) (請先閱讀背面之注意事項再填寫本頁) -裝-
、1T 經濟部智慧財產局員工消費合作社印製 經濟部智慧財產局員工消費合作社印製 571206 A7 B7 五、發明説明(「斗). 便平衡延遲並且減低週期時間。 在一些情況中,因爲兩組指令可以共用一些共同邏 輯,故可讓一組語義區塊在一組管線輸送步驟中對於一組 指令使用或定義暫存器運算元,並且在另一步驟中對於一 組不同的指令使用或定義暫存器運算元。在兩組分離語義 區塊指定指令將需要不必要的邏輯複製。 這是在較佳實施例之變化中一種可能的延伸。這能力 將利用在語義區塊中使用分別信號名稱給予兩組運算元, 例如,<(^6^11(1>@<513§6>取代僅有<operand>而被支援。 一旦這修改被達成,即使在多系統環境中,上面之演算法 則亦正確地操作。 例如,如果想要擁有下面的兩組指令: instl: arr = ars + art i n s 12 : arr = ars + art + si 並且由於一些理由,s 1必須是步驟1輸入,則該週期 ❺冏耑求使得僅能在一週期時間中進行一組加法。使用上 述之延伸,語義說明看起來將像是: semantic two {inst 1, inst2 } { wire [3 1:0] temp = ars + (inst 1 ? art : si); assign arr = temp; assign arr@2 = temp + art@2; 77 本紙張尺度適用中國國家標準(CNS ) A4規格(210X297公釐) ---------批衣------II------^ (請先閱讀背面之注意事項再填寫本頁) 571206 A7 B7 五、發明説明(π) 利用在單一語義區塊中以被擴展之信號名稱ars@2及 art@2敘述兩組指令,該兩組指令可利用僅兩組加法器而 被製作’而非倘若兩組指令被說明於兩組分離語義區塊中 則需要三組加法器。 例外 大多數處理器具有一些機構,以便指令有條件地導致 一組例外以取代完成。例如,當分母是零時,一除法指令 可導致一組例外。本發明較佳實施例利用首先表示新的例 外而支援TIE的能力: exception <ename> <exceptioncode> { <exc 1 >,... } <string> 其中<eiiame>是被使用在語義區塊中提出它的指令名 稱以及信號;<eXCepti〇iic〇de>是傳送至軟體例外操作器以 區別這例外之數値;<excl>,等等,是較低優先考慮的例 外;以及<string>是被使用於文件中之一組描述性的串列。 經濟部智慧財產局員工消費合作社印製 一旦被宣告,例外信號可被列表在i c 1 a s s宣告中,如 上所述。由於這宣告,一組具有例外名稱的單一位元信號 在包含被定義指令的語義TIE區塊之內被產生,並且這信 號必須被指定。第9圖展示TIE編輯器產生一組邏輯以組 合來自多重TIE區塊的例外信號並且在多於一組例外被單 78 本紙張尺度適用中國國家標準(CNS ) A4規格(210X 297公釐) 經济部智慧財產局員工消費合作社印製 571206 A7 B7 五、發明説明(Γ6 ). 一指令提出時在例外之間按優先順序處理。 例外信號同時也可在順序安排表示中被給予一組步驟 數目。但是,較佳實施例中,核心處理器處理所有在其Μ 管線輸送步驟中的例外。對於這製作,利用順序安排表示 所指定的步驟數目被檢查以確保其是少於或等於Μ-步驟 之步驟數目,若不是的話,在編譯時間將發出一組錯誤信 號。如果指定步驟數目少於或等於Μ-步驟之步驟數目’ 則Μ-步驟之步驟數目將被使用。因此,第9圖之邏輯在 Μ-步驟中被評估。 如第9圖中之展示,利用各語義區塊被產生的例外信 號被與單脈衝指令解碼信號之〇R運算結果信號進行AND 運算,單脈衝指令解碼信號在他們的界面部份中宣告例外 信號(當提出例外之指令被執行時,這允許TIE指令僅產 生一組有效例外信號)。接著,所有例外信號被〇R運算以 產生指示發生一些例外之一組單一信號。這信號如先前技 術般被核心所處理。 最後,一組優先順序編碼器被使用以決定將被寫入核 心處理器之EXCCAUSE暫存器中的其例外指令。較低優 先順序例外之列表被使用以形成一組方向性圖形(如果一組 週期被檢測,其被認爲是編譯時的錯誤)。這圖形的一組拓 樸排序被產生(例如,如Unix tsort程式),並且所產生之 順序被使用以完成各種例外信號的優先順序編譯。優先編 譯之結果接著被使用以選擇在mux中對應的例外指令。這 信號接著如先前技術般被核心所處理。 79 本紙張尺度適用中國國家標準(CNS ) A4規格(210X297公釐) ---------1衣------1T------0 (請先閱讀背面之注意事項再填寫本頁) 571206 A7 B7 五、發明説明(77) 作爲一組範例,第9圖展示下面全部發生在週期N中 之三組優先例外信號之TIE說明的邏輯: iclass il {instl} {..} {outexcl} iclass i2 {inst2} {..} {out exc2} iclass i3 {inst3} {..} {out exc3} iclass i4 {inst4} {..·}{···} {out excl} exception <excl> <exccodel> {} "Low level exception condition" exception <exc2> <exccode2> {excl} "Medium level exception condition” exception <exc3> <exccode3> {exc2} "High level exception condition” schedule si {instl} { def excl 1; } schedule s2 {inst2} { def exc2 3;} schedule s3 {inst3} { def exc3 2; } schedule s4 {inst4} { def exc4 3;} 經濟部智慧財產局Μ工消費合作社印製 在這情況中,例外excl可利用在Cl中之instl以及 在C3中之inst4而被提出,exc2則利用C3中之inst2,並 且exc3利用C2中之inst3而被提出。在這實施例中,所 有的例外信號在他們被宣告的步驟中被產生並且被管線輸 送往前至指定步驟,在指定步驟上,例外產生數値如上TIE 說明中所指定,利用例外信號之優先順序選擇例外指令而 被計算。例外信號Exception以及產生信號ExcCause被饋 送至核心。一旦一組例外被處理,核心將發出一組信號返 回至T I E邏輯以終止在管線輸送中的所有指令並且有效地 本紙張尺度適用中國國家標準(CNS ) Α4規格(210X 297公釐) 經濟部智慧財產局員工消費合作社印製 571206 A7 B7 五、發明説明(π) · 淸除其餘未被處理的例外。 作爲另一範例,第1 〇圖展示利用下面指令而被說明 的一組電路,其具有兩組例外,以及一些產生一組例外和 產生兩者的指令。在這範例中,溢位之優先順序低於除以 零之優先順序(實際上兩者無法同時在一除法中發生’因此 相對優先順序是無關的)。 應該注意到,圖形中,被描述的各語義區塊產生TIE 例外的總集合之一些子集合;因此,精確的接線是輸入附 屬性的。進一步地,在語義區塊中,例外輸出利用TIE順 序安排機構被管線輸送至解析步驟。 exception Overflow 40 {} "Integer Overflow" exception DivZero 41 { Overflow } "Integer Divide by Zero" iclass ov { ADDO, SUBO, MULO, DIVO } { out arr, ars,art} { out overflow } reference ADDO { wire [32:0] t = ars[31] ,ars} + {art[31] ,art}; assign overflow = t[32] != t[31]; assign arr = t[31:0]; }
reference SUBO wire [32:0] t = {ars[31],ars} - {art[31] ,art}; assign overflow = t[32] !=t[31]; assign arr = t[31:0] } reference MULO { wire [63:0]t= {{32{ars[31]},ars} * {{32{art[31]},art}; 本紙張尺度適用中國國家標準(CNS ) A4規格(210X297公釐) ---------¾------1T------0 (讀先閱讀背面之注意事項再填寫本頁) 571206 A7 B7 五、發明説明(?7)· assign Overflow = t[63:32] != {32{t[31]}}; assign arr = t[31:0]; } semantic { ADDO, SUBO } { wire [32:0] t = {ars[31], ars} + ({ars[31], art} Λ {{33}SUBO}) + SUBO; assign Overflow = t[32] != t[31]; assign arr = t[31:0]; } semantic { DIVO } { assign DivZero = art = = 32'bO; assign overflow = (ars = = 32Έ80000000) & (art= = 32'hffiffffi); assign arr = ···; } 第10圖展示一種配置,其中所有的TIE例外具有相 對於所有核心例外的單一固定優先順序。一種直接延伸將 允許TIE例外說明明確地參考各種核心例外。TIE編輯器 接著將能夠組合TIE和核心例外以產生一組優先順序編碼 器。 參考語義 例如在Killian等以及Wilson等申請中被說明的系統 中之各指令皆具有一組單一語義定義。這語義定義被使用 以產生代表指令之硬體和軟體。這樣的系統被允許多重指 令一起被定義,其被單脈衝指令解碼輸入信號所區別(例 如,因此A d d和S u b t r a c t指令可共同使用一組加法器)。 這特點之使用是產生高效率的硬體所必須的。由於在較佳 82 本紙張尺度適用中國國家標準(CNS ) A4規格(210X 297公釐) (請先閲讀背面之注意事項再填寫本頁) •裝. 訂 經濟部智慧財產局員工消費合作社印製 571206 A7 B7 五、發明説明(於^). 實施例中可被定義之指令複雜性的增加,一組高效率製作 語義集成爲更不易讀取、寫入、證實以及理解。它們同時 也成爲更適合管線輸送並且較實際。這是因爲說明必須考 慮管線輸送效應並且在管線輸送暫存器可被移動時產生信 號。 例如,給予在TIE中的一組浮動點製作,可能寫入針 對一組2週期浮動點加法操作的不同指令,而不是一組3 或4週期浮動點增加操作。這是較實際的,因爲程式設計 師時常爲了更淸楚的表示而將指令最佳化以產生更少的閘 電路。例如,可能在參考語義中(非常淸楚地)寫入: assign x = y * 3; 但是在製作語義中寫入: as sign X = y + {y [30:0],1'bO} 种衣-- (請先閱讀背面之注意事項再填寫本頁)
、1T 線 經漆部智慧財產局員工消費合作社印製 因爲軟體發展工具對於常數乘法之處理不如手動般 地,或類似者被完成。 另一範例,爲說明在參考中之一組乘法累積指令’其 簡單如下: acc=a*b+acc; 83 本紙張尺度適用中國國家標準(CNS ) Α4規格(210X 297公釐) 571206 A7 B7 五、發明説明(没/) · 但是在語義說明中,必須考慮這指令之製作必須兩個 管線輸送步驟。熟習硬體設計者將了解,a*b的部份結果 需要在第一步驟中使用一組進位-儲存·加法器樹而被計 算’並且在第二步驟中計算兩組部份結果與acc相加之最 後結果。 最後’因爲對應至原有機器指令被遺失,製作語義在 被轉譯至模擬軟體時變慢。使用先前指令,參考說明可使 用兩組指令而被模擬。在這情況中模擬語義說明將採用數 百組指令。 因爲上面之理由,較佳實施例允許兩組語義規格。其 中一組被稱爲參考語義。每一指令有一組參考語義,並且 在指令之間不共用語義。這語義定義一般被淸楚地寫入以 便定義指令的預期操作。第二組語義,製作語義,是針對 硬體製作。這些語義保留先前技術系統的特點以允許多重 指令共用硬體,並且一般考慮閘電路位準合成而被以較低 階寫入。
這可利用定義兩組指令ADD及SUB之一組簡單TIE 範例而被說明,如下面所展示: iclass rrr {ADD, SUB) (out arr, in ars, in art) iclass r r (NEG ) {out arr, in ars) reference ADD { assign arr = ars + art; 本紙張尺度適用中國國家標準(CNS ) A4規格(210X297公釐) (請先閲讀背面之注意事項再填寫本頁) 裝· 訂 經濟部智慧財產局員工消費合作社印製 571206 A 7 B7 五、發明説明(及z) reference SUB { assign arr = ars - ars; } reference NEG { assign arr = -ars; } semantic alu {ADD, SUB, NEG} { wire [3 1:0] 1, r; assign 1 = SUB ?〜art : NEG ?〜ars : art; assign c = (SUB | NEG) ? 1 : 0; assign r = NEG ? 0 : ars; assign arr = 1 + r + c; } 該等參考說明是簡單並且直接的。但是,語義說明, 必須考慮製作效率,特別在這情況中,三組指令需要共用 加法器。因此,其依賴減去一個數目相當於加上該數的位 元方式補數並加1之數學特性以達到目的。 參考語義同時也允許一組指令集合經由參考語義而被 定義一次,並且接著利用不同製作語義集而被製作多次。 具有多重製作之一組單一 ISA定義在工業中被普遍地實 施,雖然通常地,參考語義僅在ISA文件被非正式地定義。 較佳實施例顛倒這特有的步驟並且正式地定義參考語義並 從TIE規格導出文件,但並非反之亦然。 85 本紙張尺度適用中國國家標準(CNS ) Α4規格(210Χ 297公釐) ---------批衣II (請先閱讀背面之注意事項再填寫本頁)
、1T 線 經濟部智慧財產局員工消費合作社印製 571206 A7 B7 五 、發明説明(私) 經濟部智慧財產局員工消費合作社印製
分離的參考和製作語義產生證實他們等效的需求。在 先前技術系統中,文件中之參考語義,其利用人工讀取文 件並寫測試而被檢查以證實等效。這步驟消耗時間,並且 由於參考語義被以精確語言指定,其可能使用邏輯等效工 具以比較參考語義與製作語義《較佳實施例將這處理程序 自動化,其利用以兩種不同方法產生必須的輸入至等效檢 查工具,其中一組用以檢査一組特定指令的參考以及製作 語義之等效,並且一組用以檢査使用參考語義被製作的整 個電路等效於使用製作語義而被製作的電路。第一方法幫 助移除製作語義說明之錯誤。第二方法核對全體設計,其 不僅包含被語義所指定的邏輯同時也包含用以結合所有語 義的膠合邏輯。 從參考和製作語義被產生的電路一般是不等效的。對 於一組所給予的指令,僅有輸出信號之一組子集合將被設 定。對於其餘的輸出信號,參考和製作語義可以選擇依據 成本準則或簡化說明而指定不同的數値,因爲它們是邏輯 上地"不在乎",亦即,它們是未被使用的。較佳實施例解 決這問題,其利用產生另外的邏輯使得被一組特定指令所 產生的輸出信號不被改變,並且其餘的輸出信號被迫爲一 組特定的邏輯數値,例如〇,如第11圖中所展示。這圖形 展示被參考說明(X_ref)以及被語義說明(x_imp 1)所產生的 各輸出信號X被與另一信號ign〇re_x —起被AND運算, 這使得當X不是指令輸出之一部份時’其被迫爲〇’因此 避免來自等效檢査工具之不正確的負面結果。從IC LASS 請 先 閱 讀 背 意 事 項· 再_ 填· ί裝 頁 訂 86 本紙張尺度適用中國國家標準(CNS ) Α4規格(210Χ297公釐) 571206
A B 經濟部智慧財產局g(工消費合作社印製 五、發明説明(私). 之說明’我們可得知設定x之指令集;因此,ignore_x是 簡單地爲不設定X之指令的邏輯OR運算。 內建樽細 -些普遍地被使用之計算沒有語言定義的運算器。但 是’使用其他的語言結構,其敘述非常冗長乏味並且不易 被有效地製作。Tie提供一些計算的內建運算器,其被展 示於下表11中。 格式 說明 結果定義 TIEmul(a,b,sign) 標記及無標記之乘法 {{m{a[n-l]&s}} * {{n{a[m-l]&s}},b},其中η是a之大 小並且m是b之大小 TIEmac(a,b,c,sign,ne gate) 乘法累積 n?c-a*b : c+a*b TIEadd(a,b,cin) 具有進位之加法 a+b+cin TIEcsa(a,b,c) 進位·儲存加法器 {a&b1a&c b&c , aAbAc}
表II 作爲一組範例,下面說明共同使用在ADD和SUB指 令間之一組加法器: assign arr = TIEadd(ars, SUB ? 〜art : art,SUB); 下面的語義說明,使用進位-儲存加法器(CS A)陣列以 及一組完整加法器而將四組數目相加: wire [31:0] SI, cl, s2, c2; 87 本紙張尺度適用中國國家標準(CNS ) A4規格(210X 297公釐) ^------1T------0 (請先閱讀背面之注意事項再填寫本頁) 571206 A7 ______B7_ 五、發明説明(25 ). assign{sl, cl} = TIEcsa(dl, d2, d3); assign{s2, c2} = TIEcsa(cl << 1,sl,d4); assign sum = (c2 << 1) + s2; 使用這類內建模組的優點是,TIE編輯器可辨識內建 模組並且使用一組模組產生器爲它們取得更有效的製作。 文件 參考語義同時也是指令集文件的一組重要元件。一般 的指令集參考手冊,其一種範例記載展示於第12圖中, 其可包含各指令之機器指令格式;其封裝;其組合語句; 一組槪要(指令的一行文字說明);指令的一組完整文字說 明:以及指令之更精確的一組操作定義,和另外的資訊, 例如組合程式記錄以及與指令相關的例外。產生機器指令 格式之所有必須的資訊已存在TIE規格中,因爲其包含操 作碼位元以及運算元領域。相似地,組合語句從記憶碼和 運算元名稱被導出。TIE參考語義成爲精確的定義。僅缺 乏槪要及文字說明。較佳實施例因此添加結構至TIE以允 許指令集設計者指定槪要和文字說明。 經濟部智慧財產局g(工消費合作社印製 該TIE封裝規格具有下列格式: package <pname> <string> endpackage <pname> 88 本紙張尺度適用中國國家標準(CNS ) A4規格(21 OX297公釐) 571206 經濟部智慧財產局員工消費合作社印製 A7 B7 五、發明説明(2匕) 封裝名與在package和endpackage之間被 定義的所有指令相關。除了使用於用途說明之外,封裝具 有其他的使用,如下面之說明。對於用途說明目的,<string> 參數給予封裝名稱(其可能具有空白)。 TIE槪要規格具有下列格式: synopsis <iname> <string> 其中< string >是一組短的(大約半行)指令說明。在文 字中不需要格式控制。這文字一般被使用於書籍標題上以 及指令列表中的另外資料上。 TIE說明規格具有下列格式: description <iname> <string> 其中<string>是一組長的(通常是許多段落)字串,其包 含以英文或另一種自然語言敘述指令操作之文字。在這文 字中需要文字格式命令。較佳實施例實施一組HTML_類似 語言(HTML 之說明可以發現於,例如 , http://www.w3.org/TR/REC-html40)。另外,兩組選擇性文 件字串被支援: assembly_note <iname><string> implementation note <iname><string> 89 本紙張尺度適用中國國家標準(CNS ) A4規格(210X297公釐) 扣衣------1T------0 (請先閱讀背面之注意事項再填寫本頁) 571206 A7 _____B7 五、發明説明UT). 這些選擇規格提供另外的各指令之文字。 如同HTML,兩組格式控制型式被支援:元件和文字 項目。此目的在於指定資料屬性而不是其正確外表。資料 將依據其屬性而被適當地移譯給予輸出媒體。文字項目 &<name>;指定不存在ASCII中或應該使用特殊的譯文的 文字。元件(element)代表被定義的HTML項目,例如段落、 列表、指令範例、等等。引用HTML4.0之說明,”各元件 形態表示說明三部份:開始標籤、內容、以及結束標籤。 元件之名稱出現在開始標籤(以<ELEMENT-NAME>寫出)以 及結束標籤(以</ELEMENT-NAME>寫出);注意在結束標 籤之元件名稱之前的斜線(/)’’。 換言之,<ELEMENT-N AME>DOCUMENTATION< /ELEMENT-NAME〉指定一組被應用至 DOCUMENTATION 的格式。不同於HTML,結束標籤(</ELEMENT-NAME>) 不是選擇性的。有兩種標籤:區塊和列間。區塊標籤指定 如段落形式的結構並且列間標籤被使用以指定在那些段落 之內的文字格式。列間標籤可能是巢狀。除了 LI在UL之 外,區塊標籤不可是巢狀。 經濟部智慧財產局員工消費合作社印製 這些結構可容易地被轉移至HTML以產生HTML文件 說明而作爲程式之部份,例如附錄C中爲各指令組合一組 HTML記錄,以及一組指令索引的程式。這樣的HTML文 件可被使用以建立處理器使用者之一組線上參考手冊。較 佳實施例中,一組此類的程式被以Perl程式語言製作,並 90 本紙張尺度適用中國國家標準(CNS ) A4規格(210X 297公釐) 經漆部智慧財產局員工消費合作社印製 571206 A7 __B7_ 五、發明説明(狀). 且其利用產生具有兩行之HTML表的一組index.html檔案 而達成目的,該兩行之HTML表其中之一行是使用於記憶 碼而另一行是使用於槪要文字串列。該表中之行列利用依 序處理指令而被充塡。指令記憶碼被以HTML連接至爲各 指令產生的一組記錄。 各指令記錄以給予記憶碼和槪要的一組HTML第一位 準標題("H1”)開始。接著,各部份利用HTML第二位準標 題ΓΗ2”)之固定名稱而被引介。第一部份,標明爲"指令字 詞(Instruction Word)”,給予機器指令格式,該機器指令 格式利用具有每位元一行之HTML表而被表示。操作碼位 元(’〇’或’1’)被塡入對應的儲存格中。運算元領域被塡入領 域名稱。延伸到多重相鄰位元之運算元領域使用HTML表 之C0LSPAN特點以避免重覆。機器指令碼匣之位元使用 上面之一組表列而被編號,並且領域寬度在下面之列中被 給予。 第二部份,標明爲’’封裝(package)”,給予定義指令之 TIE封裝名稱。一組簡單的雜湊搜尋法被使用以將封裝名 稱從一組識別符號轉譯至文件串列。封裝名稱本身是一組 HTML段落區塊元件("P”)之內部輸出。 第三部份,標明爲"組合語句(Assemble Syntax)",給 予被使用以編譯指令之組合語言格式。這包含指令記憶 碼、一組空白、以及利用逗號分開的運算元名稱。暫存器 沒U元名稱利用將暫存器檔案的短名稱與領域名稱連接而 被形成。立即運算元名稱是來自TIE之立即名稱。組合語 91 本紙張尺度適用中國國家標準(CNS ) A4規格(210X297^釐) 批衣------1T------0 (請先閱讀背面之注意事項再填寫本頁) 571206 A7 B7 五、發明説明αγ). 句使用HTML列間元件("CODE”)被輸出至之HTML段落區 塊位準元件("P”)中。該指令列間元件產生固定寬度字形文 字,該固定寬度字形與程式語言指令通常被產生的方式類 似。 第四部份,被標明爲”說明(Description)”,包含文字 說明,從TIE被轉譯至HTML。因爲TIE之格式指令是相 似於HTML之格式指令,這轉譯頗爲簡單。這主要需要將 INSTREF元件轉譯爲連結至指定指令的一組HTML鏈路。 一組選擇性的第五部份,標明爲"組譯程式註釋 (Assembler Note)”,包含從TIE被轉譯至HTML的文字。 第六部份,被標明爲π例外(Exceptions)”,包含指令可 提出的例外列表。載入(Load)和儲存(Store)指令自動地具 有被TIE編輯器添加至列表的LoadStoreError例外。如果 對應的例外信號在指令之iclass信號列表部份中被列表, 其他的例外將被列表。例外以優先順序被列表(上述之拓樸 排序結果)。 一組選擇性的第七部份,被標明爲"製作註釋 (Implementation Notes)",包含從 TIE 被轉譯至 HTM 的文 字。 因爲這有時是有益於讀者的,故其可能從TIE規格將 測試情況列表複製至文件說明中,如下所示。 下面是使用於一組處理器指令之文件範例。 <html> 92 本紙張尺度適用中國國家標準(CNS ) Α4規格(210Χ297公釐) (請先閱讀背面之注意事項再填寫本頁}
、1T 經濟部智慧財產局員工消費合作社印製 571206 A7 B7 五、發明説明) · 經濟部智慧財產局員工消費合作社印製 <head> <title> GFADD8 - Galois Field 8-bit Add 〈/title〉 </head> <body> <hl> GFADD8 — Galois Field 8-bit Add </hl> <h2> Instruction Word </h2> 〈table frame—’’Void,,rules=,,groups” cellspacing=0 cellpadding=0> <colgroup colspan=8><col width=28><col width=28><col width=28><col width=28><col width=28><col width=28><col width=28><col width=28><colgroup colspan=4><col width=28><col width=28><col width=28><col width=28><col group colspan=4><col width=28><col width=28><col width=28><col width=28><colgroup colspan=4><col width=28><col width=28><col width=28><col width=28><col group colspan=4><col width=28><col width=28><col width=28><col width=28> <thead> <tr> <td width=28 align=’’center”> <small>23〈/small〉 </td> <td width=28 align="center’’> </td> <td width=28 align=McenterM> </td> <td width=28 align=’’center’’> </td> <td width=28 align=ncenter”> </td> <td width=28 align=Mcenter"> </td> 93 本紙張尺度適用中國國家標準(CNS ) Α4規格(210Χ 297公釐) 批衣-- (請先閱讀背面之注意事項再填寫本頁)
、1T 線 571206 A7 B7 五、發明説明(?/) <td width=28 align=Mcenter,,> </td> <td width=28 align==,,center,,> 〈small〉16</small> </td> <td width=28 align="center"> <small>15</small> </td> <td width=28 align=’,center’’> </td> <td width=28 align="centern> </td> <td width=28 align="center"> <small> 12</small> </td> <td width=28 align="centerM> 〈small〉ll</small> </td> <td width=28 align=McenterM> </td> <td width=28 align="center"> </td> <td width=28 align=’’center”> <small>8</small> </td> <td width=28 align=”center’’> <small>7</small> </td> 經濟部智慧財產局員工消費合作社印製 <td width=28 align="center,,> </td> <td width=28 align="center"> </td> <td width=28 align=Mcenter"> <small>4</small> 本紙張尺度適用中國國家標準(CNS ) A4規格(210X 297公釐) 經消部智慧財產局員工消費合作社印製 571206 A7 B7 五、發明説明(夂) </td> <td width=2 8 align=n center”〉 <small>3〈/small〉 </td> <td width=28 align="center”> </td> <td width=28 align="center"> </td> <td width=28 align="center"> <small>0</small> </td> </tr> </thead> <tbody> <tr> <td width=28 align "center" bgcolor= M#FFF0F5M> 0 </td> <td width=28 align "center1' bgcolor= "#FFF0F5n> 0 </td> <td width=28 align "centerM bgcolor=" #FFF0F5M> 0 </td> <td width=28 align="centerM bgcolor=M#FFF0F5"> 0 </td> <td width=28 align=’’center” bgcolor= ”#FFF0F5’’> 0 </td> <td width=28 align="center" bgcolor="#FFF0F5M> 1 本紙張尺度適用中國國家標準(CNS ) A4規格(21〇X;297公釐) ^------1T------0 (請先閱讀背面之注意事項再填寫本頁) 571206 A7 B7五、發明説明(矜)· 經濟部智慧財產局員工消費合作社印製 </td> <td width=28 align="center" bgcolor="#FFF0F5M> 1 </td> <td width=28 align=’’center” bgcolor="#FFF0F5"> 0 </td> <td colspan=4 width=112 align=’’center” bgcolor="#FFE4El"> r </td> <td colspan=4 width=112 align=’’center" bgcolor=’’#FFE4El’’〉 s </td> <td colspan=4 width=112 align=’’center” bgcolor="#FFE4El’’> t </td> <td width=28 align="center,' bgcolor="#FFF0F5M> 0 </td> <td width=28 align=’’center” bgcolor="#FFF0F5”> 0 </td> <td width=28 align=’’center" bgcolor=’’#FFF0F5”> 0 </td> <td width=28 align="aenteru bgcolor=u#FFF0F5H> 0 </td> </tr> </tbody> <tfoot> <tr> (請先閱讀背面之注意事項再填寫本頁) .裝· 、-口 96 本紙張尺度適用中國國家標準(CNS ) A4規格(210X297公釐) 經濟部智慧財產局M工消費合作社印製 571206 A7 B7 五、發明説明(%) <td colspan=8 width=224 align=ncenterM> <small>8</smail> </td> <td colspan=4 width=112 align=,'centerM> <small>4</small> </td> <td colspan=4 width=112 align="aenter"> <small>4</small> </td> <td aolspan=4 width=112 align="center,'> <small>4</small> </td> <td colspan=4 width=112 align="center,1> <small>4</small> </td> </tr> </tfoot> </table> <h2>
Package <h2> <p> </p> <h2>
Assembler Syntax <h2> <p> <code>GFADD8 gr, gs, gt</code> </p> <h2>
Description </h2> 本紙張尺度適用中國國家標準(CNS ) A4規格(210X 297公釐) ---------批衣------II------0 (請先閱讀背面之注意事項再填寫本頁) 571206 A7 B7 五、發明説明(f5*) <P><CODE>GFADD8</CODE> performs a 8-bit Galois Field addition of the contents of GF registers <CODE>gs</CODE> and <CODE>gt</CODE> and writes the result to GF register <CODE>gr</CODE>.</P> <h2>
Operation </h2> <pre> gr = gs Λ gt; </pre> <h2>
Exceptions <P>
None </p> </body> </html> 雖然在較佳實施例中HTML被使用作爲文件格式語 言,熟習本技術者將可知其他等效規格語言’例如Adobe Frame Maker MIF格式,也可被使用。 次領域 經濟部智慧財產局員工消費合作社印製 使得本發明實施例較不受改變程式執行特性之處理器 組態選擇的影響之一種發展’是可將一組領域定義爲另一 領域之次領域的能力。這相對於先前的可組配之處理器系 統,其將領域定義限制至指令字詞之指定部份’並且不允 許它們被定義爲其他領域的部份。將領域定義爲其他領域 之部份的能力允許軟體部份地無關於被組態處理器之位元 本紙張尺度適用中國國家標準(CNS ) A4規格(210X297公釐) 571206 A7 B7 五、發明説明(%). 排列順序。 例如’在先前的系統中,對應至t領域之第一兩組位 兀的一組新領域tio僅可利用下面任一的TIE說明而被定 義: field 110 inst[5:4] /* for field memory order *1 或者 field tlO inst[15;14] /* for big endian memory order */ 在這配置之下,tlO不可能與記憶體順序無關地定義。 利用允許次領域之使用,本發明允許11 0被定義如下: field tlO t[l :0] 因爲t被處理器核心在小的位元順序中定義爲inst[7 : 4],在大的位元順序中定義爲inst[17 : 14],因此tlO與記 憶體順序無關。 測試情況 使用者指定TIE之確認有兩組論點。第一是確保在核 心和TIE區塊及被使用者定義之狀態與暫存器檔案之間界 面的正確性。第二是證實使用者語義轉譯爲硬體之正確 性,換言之,TIE編輯器。第一論點並不依據TIE指令語 莪,並且其可從ΤΊΕ規格性質中被導出。 對於使用者指定之TIE而言,不可能寫任何預定測試 99 本紙張尺度適用中國國家標準(CNS ) A4規格(210X 297公釐) ---------批衣-- (請先閱讀背面之注意事項再填寫本頁) "口 線 經漓部智慧財產局員工消費合作社印製 571206 A7 B7 五、發明説明(fT). 經濟部智慧財產局員工消費合作社印製 或診斷。這問題利用在TIE之硬體和軟體被產生的同時, 從使用者TIE規格取得測試而被著手處理。TIE編輯器產 生使用者指令之ISA說明。TIE之診斷產生器讀取TIE指 令之ISA說明。這同時也包含關於使用者指定狀態以及暫 存器檔案之知識。產生器使用這資訊以產生對於使用者TIE 有意義的一些診斷集。 參考語義提供一種製作語義之確認方法。參考語義被 使用於目標應用中而被加以核對。如Killian等和Wilson 等申請中之說明,設計者修改應用以便經由內在指令而使 用新的指令。修改應用和指令定義在模擬器中或原狀地一 起被測試。原狀執行是利用TIE編輯器的能力而達成(如 先前技術),以產生作爲函數之內在指令的習見程式語言(例 如,C)定義。目標應用中之使用通常是指令定義的最佳測 試。 產生C指令之TIE編輯器的正確性被這程序所檢査, 但除非應用同時也在H DL模擬器中進行,否則TIE指令 至H DL的轉譯不被檢査。但是,HDL模擬器一般太慢以 致不能執行許多應用。因此,其需要有一些其他的方法以 測試TIE編輯器之輸入語義至HDL的轉譯是否正確。 同時,設計者或許不確定應用是否涵蓋所有必須使用 指令處理的情況。這是重要的,如果應用可能在處理器被 產生之後改變,或新的應用將使用這處理器。在這情況中, 需要有其他的方法以測試指令。先前技術系統中,一組處 理器之指令通常利用手寫診斷之執行而被測試,該手寫診 100 本紙張尺度適用中國國家標準(CNS ) A4規格(210X 297公釐) 請 先 閱 ii 背 面 之- 意 事 項一 再_ 填雩装裝 頁 訂 5712〇6 五、 發明説明(资).
_以一組被挑選的原始運算元數値執行指令並且檢査結果 蓮算元之預期數値。較佳實施例利用在TIE規格中可用的 另外資訊而使這程序自動化。 TIE iclass規格列出各指令之所有的輸入及輸出,無 論是暫存器檔案運算元,即時,或處理器狀態暫存器。TIE
經濟部智慧財產局員工消費合作社印製 test <iname> { in ( <oname> => <value>, ... out { <oname> => <value>,…} in { <oname> => <value>,…} out { <oname> => <value>,... } 提供指令<iname>之原始運算元數値之列表以及預期 的結果。此處<〇1131116>是運算元或狀態暫存器之名稱,並 且<\^11^>是對應的輸入數値(針對測試in列表中之in或 inout運算元或者暫存器)或預期的數値(針對測試out表中 之〇 u t或i η 〇 u t運算元、暫存器、或者例外信號)。 TIE編輯器以習見的程式語言(例如,C)產生一組測試 程式,其中in和inout處理器暫存器與測試in列表比較, 其使用WUR內在指令以及被說明於Wilson等申請中的TIE 使用者_暫存器(user_register)結構所宣告的數目以達到這 101 本紙張尺度適用中國國家標準(CNS ) A4規格(210X297公釐) 汾衣------訂 (請先閱讀背面之注意事項再填寫本頁) 線
0的°接著,其使用被載入暫存器之proto宣告所指定的 內在指令而建立in和inout暫存器檔案運算元。核心暫存 器檔案中之運算元(例如,較佳實施例中之AR)使用內建語 言形態。接著,TIE編輯器以iclass指定順序被列出運算 元呼叫內在指令。接著,在測試輸出列表中被指定的out 和iiiout運算元被讀取並且被比較至所給予的預期數値。 最後,在測試out列表中之處理器暫存器使用RUR內在指 令以及使用者_暫存器(uSer_register)結構之暫存器數目而 被讀取,並且這些數値被與所給予的數値比較。 自動地被產生之程式語言診斷可在指令集模擬器中被 執行,或在硬體RTL模式上或原狀地使用內在-模擬功能 被執行,該內在-模擬功能是利用轉譯至目標程式語言而被 TIE編輯器所產生。 作爲一組範例,下列規格: test GFADD8 { in { gs => 8'xFF, gt => 8'xA5 } out { gr => 8’x5A } 經濟部智慧財產局員工消費合作社印製 } test GFMULX8 { in { gs => 8*xFF, gfmod -> 8*xA5 } out { gr => 8’x5B } } 產生C診斷 102 本纸張尺度適用中國國家標準(CNS ) A4規格(210X 297公釐) 經滴部智慧財產局員工消費合作社印製 571206 A7 B7 五、發明説明(ί如) unsigned char GFADD8_0[1] = { 25 5 }; unsigned char GFADD8_1[1] = { 165 }; unsigned char GFADD8_2[1] = { 90 }; unsigned char GFMULX8_0[1] = { 255 }; unsigned char GFMULX8_1[1] = { 91 }; unsigned char GFMULX8_2[1] = { 165 }; int main (int argc, char *argv[]) { for (i = 0; i < 1 ; i += 1) { gf gr; gf gs; gf gt; unsigned char tO; LGF8_I (gs, &GFADD8_0[i], 0); LGF8_I (gt, &GFADD8_1 [i], 0); GFADD8 (gr, gs, gt); SGF8_I (gr, &t0, 0); if (tO != GFADD8 —2[i]) fail(); } for (i = 0; i < 1; i += 1) gf gr; 103 本紙張尺度適用中國國家標準(CNS ) A4規格(210X 297公釐) ---------1衣------1T------0 (請先閱讀背面之注意事項再填寫本頁) 571206 A7
五、發明説明(M/ ) f gs; unsigned char tO; LGF8_I (gs, &GFMULX8_0[i], 0); WUR (GFMULX8 一 l[i],〇); GFMULX8 (gr, gs); SGF8_I (gr, &t0, 0); if (t0 != GFMULX8一2[i]) fail () } return 0; (請先閱請背面之注意事項再填寫本頁) 裝· 訂 產生測試情況之測試向量自動取樣 在執行應用足以測試輸入指令語義正確性之情況中, 其仍然需要在HDL模擬器中執行的測試情況以測試輸入語 義之TIE轉譯。在許多情況中,HDL模擬器因爲太緩慢而 無法執行應用。因此,需要有一種方法以便從原狀執行應 用中或指令集模擬器中得到測試。 因此,TIE編輯器應該具有加強其輸入語義至應用程 式語言之轉譯的一種選擇,其可使用將指令運算元的輸入 和輸出寫至一組檔案之指令。這檔案可接著利用排除複 製,並且接著使用統計取樣以抽取在HDL模擬器中合理模 擬之一些測試情況而被後處理。接著,這些記錄可被轉換 104 本紙張尺度適用中國國家標準(CNS ) A4規格(210 X 297公釐) Μ 經濟部智慧財產局員工消費合作社印製 571206 A7 B7 五、發明説明(i〇f). 至上述之TIE測試結構,以至於其製作對其餘的處理程序 是可具有影響力的。 使用這種方法以產生建構和微建構測試的動機,在於 提供一組使用者TIE製作之確認處理程序系統。這是非常 重要的,因爲使用者之應用可能不足以測試TIE製作微結 構。爲了從TIE說明中產生這樣的診斷,吾人採用從TIE 編輯器所產生的ISA說明以及管線輸送資訊取得必須的資 訊之方法。這機構被說明如下。 TIE指令之ISA說明 爲了能夠依據使用者之需要而組態處理器核心,一組 組態被使用。一組組態實質上是處理器核心之部份以及特 性之列表,其可經由運用網路的界面被使用者自訂。這些 處理器特性被稱爲組態參數。組態參數之完整列表與他們 的原定數値和可能的數値範圍定義處理器核心之組態空 間。處理器核心具體的說明,亦即,在所有組態參數已經 被指定具體的數値之核心情況中,其是一組核心組態。 目前,組態空間和具體核心組態兩者被以列出組態參 數和他們的數値之文字檔案表示。即使所有組態參數和他 們數値被編號在文字檔案中的一律列表具有可讓人容易地 讀取之優點,但其使組態硬體和軟體分別的部分之處理程 序複雜化。因此,一種工具被發展,其讀取組態資訊並且 產生處理器各部份和組態參數數値之一種物件導向表示。 組態之工具和表示被共同習知爲組態環境或組態資料庫。 在軟體和硬體組態時,tpp提供一組標示至組態環境 105 本紙張尺度適用中國國家標準(CNS ) Α4規格(210Χ;297公釐) ---------^ II (請先閱讀背面之注意事項再填寫本頁)
、1T 線 經濟部智慧財產局員工消費合作社印製 571206 A7 B7 五、發明説明(ί〇3). 以允許發展者有計劃性地存取組態資訊,並容易地計算部 份原始指令。另外,因爲計算在組態環境中被達成,並且, 因此’其跨越所有被組態的源頭而被共同使用,故可組配 的原始指令碼之發展被簡化。 一組敘述ISA之PERL程式庫已經被發展出。對於 TIE’ TIE編輯器被執行以產生被使用者定義指令的PERL 物件’並且這被添加至核心ISA。此後,所有的確認工具 詢問這些PERL物件以獲得ISA以及被使用者定義之TIE 的管線輸送資訊。 下面的範例展示這如何被完成。由一組簡單TIE說明 開始:
opcode acc op2=0 CUSTO state accum 3 2 user register 100 accum iclass acc {acc} {in ars, in art} {inout accum} reference acc { assign accum = accum + ars + art; 經濟部智慧財產局員工消費合作社印製 } TIE編輯器產生下列關於使用它的指令之TIE使用者 狀態以及語義: 106 本紙張尺度適用中國國家標準(CNS ) A4規格(210X297公釐) ”1206
經濟部智慧財產局員工消費合作社印製 五、發明説明(t。斗)
State accum mapped to user register: 100,bits 3 1:0 opcode : acc, package : UserDefined,size : 20, Register Operands:
Name : as: input, regfile : AR, shortname:a, size:32 bits, entries:64 Name : at: input, regfile : AR, shortnamera, size:32 bits, entries:64 從上面之資訊,其可能產生TIE指令acc之組合指令。 指令具有兩組暫存器運算元,兩者皆爲形態AR,因爲輸 出和輸入領域被得知,因此,其可完成一些隨機暫存器安 置,或甚至更好,一些智慧型暫存器安置。因此’其可能 [3動地產生這指令的組合指令,例如 acc $a7,$a 1 3 其中a7與al 3是由暫存器安置演算法則所產生的指 令acc之s及t領域,其査看regfile定義以找出AR。下 面是TIE指令之ISA說明的更多範例: opcode : i 1281,package : UserDefined,size : 24, load Register Operands:
Name : il28t:output, regfile:il28, shortname:il28, size: 128 bits, entries: 16 Name : as: input, regfile.AR, shortname:a, size:32 bits, entries:64 107 本纸張尺度適用中國國家標準(CNS ) A4規格(210 X 297公釐) ---------装------1T------0 (請先閱讀背面之注意事項再填寫本頁) 571206 經濟部智慧財產局員工消費合作社印製 A7 B7五、發明説明(l〇5). Immediate Operands: Name:offsetl28: bits 8, Table : [0 16 32 48 ....] opcode : wurO, package : UserDefined, size : 24, Register Operands: Name : at: input, regfile : AR, shortnameia, size:32 bits, entries:64 opcode : il28s, package : UserDefined, size : 24, store Register Operands: Name: il28t: input regfile:il28, shortname:il28, size:128 bits, entries:16 Name : as: input regfile : AR, shortname:a, size:32 bits, entries:64 Immediate Operands: Name:offsetl28:bits 8, shift 0, Table : [0 16 32 …·] 因爲不可能取得關於指令預期結果的足夠資訊’故不 可能檢査TIE語義是否正確。例如,不可能檢査在測試中 之acc指令結果是否正確。但是,如果硬體在狀態累積器 中產生錯誤的結果,這將利用相互模擬機構而被檢測’該 相互模擬機構在所有的指令範圍比較RTL和ISS之間的所 有使用者狀態以及暫存器檔案,這將在另一部份中被詳細 地說明。下面部份使用一些類似PERL虛擬碼以表示演算 108 本紙張尺度適用中國國家標準(CNS ) A4規格(210X297公釐)~ (請先閱讀背面之注意事項再填寫本頁) 裝· '口 線 571206 A7 B7 經濟部智慧財產局員工消費合作社印製 法則。診斷產生器通常是以PERL爲主的程式。 診斷產生器用以產生一組正確TIE指令之演算法則如 下: subroutine gen_tie_instr (tie opcode, address^reg, index reg){ // address reg is a core register // containing a valid address in case // the TIE instruction does a load/store, // same for the index register, if the // load/store is a indexed load foreach operand (tie_inst->regoperands()) fid = operand->field(); reg = &register_allocate(tie_inst, operand); if ((isLoad(tie一inst) || isStore (tie inst)) && operand->name() eg ’as·) override with valid address reg = addressreg;} if ((isLoad(tie inst) || isStore (tie inst) && operand- >name () eg 'at') reg = index_reg;} push( operand list, reg); } foreach operand (tie_inst->immoperands()) { // specification of immediate operand // as a table of values or a range 109 本紙張尺度適用中國國家標準(CNS ) A4規格(210X29?公釐) ---------批衣-- (請先閱讀背面之注意事項再填寫本頁) 、11 線 571206 A7 B7五、發明説明(^T). range = operand->range(); table = operand->table(); legal = tie inst->legals (operand->field() ->name); if (legal) { imm = legal [ random index ]; } elsif (range ) { imm = random value between range, lo and range, hi; } elsif (table) { imm = table[ random index ];} push( operand list, imm); 經濟部智慧財產局員工消費合作社印製 subroutine register allocate (tie_inst, register〜operand) ame = register_operand->shortname(); numentries = register_operand->entries(); legalrange = tie_inst->legals(register_operand->field() ->name()); if (legalrange ) { register num = legalrange [ random index ]; } else { register num = random(0, numentries-1 );} return concatenate^ name, register num );} 同時,在可能開始執行TIE指令之前,必須起動TIE 狀態以及暫存器檔案。這以下面的方式被完成: subroutine initTieState ( address reg, data reg ) { 110 本紙張尺度適用中國國家標準(CNS ) A4規格(210X297公釐) 經演部智慧財產局員工消費合作社印製 571206 A7 B7 五、發明説明(1。?). // Iterate over all state and get the vaue // for each user register that // the states are mapped to states = (tie->states(), map($_->states(), tie->coprocessors())); foreach state ( states ) {
UserRegMask{state->userReg} = getMask; } foreach ureg( keys of the hashtable UserRegMask ) mask the data register with the mask value do a WUR to the ureg ) // Initialize register files by loading from a // valid memory location regfiles = (tie->regfiles(), map($_->regfiles (), tie->coprocessors()) > foreach regf ( regfiles ) { for( i=0; i< regf->entries(); i++ ) generate the load instruction or instruction sequence using the addr reg that has the valid address to load index i of register file regf. TIE之管線輸送資訊 爲產生測試TIE中之旁通以及互連邏輯微架構之診 斷,TIE指令之管線輸送資訊被需要。這提供步驟之知識, 在該步驟,例如暫存器和狀態之資源被一組TIE指令讀取 並且寫入。TIE編輯器再次提供這資訊,它被以PERL物 件所被表示且被確認工具所使用。採用下面的範例,其具 111 本紙張尺度適用中國國家標準(CNS ) A4規格(210X 297公釐) ---------批衣------1T------0 (請先閱讀背面之注意事項再填寫本頁) 571206 A7 B7 五、發明説明(丨1). 有一組被使用者定義之暫存器檔案以及簡單地在管線輸送 的不同步驟移動資料之一組指令,注意規則1 : E步驟,2 : Μ步驟,3 : W步驟: regfile Π28 128 1 6 Π28 operand i 1 2 8 s s {Π28 [s] } operand il28t t {Π28 [t] } operand il28r r {Π28 [r] } opcode I128L r = 0 LSCI opcode I128S r = l LSCI opcode I128AND op2 = 0 CUSTO schedule load {I128L} def il28t 2; 這轉譯至下面的PERL資料庫中: 經濟部智慧財產局員工消費合作社印製
Regfile i 12 8 width 128 entries 16 instructions : Writes: stage 2 : Inst i12 8 and: Field r stage 3 : Inst il281: Field t 112 本紙張尺度適用中國國家標準(CNS ) A4規格(210X297公釐) 經濟部智慧財產局員工消費合作社印製 571206 A7 B7_ 五、發明説明(I /σ).
Reads: sta§e 1 : Inst il28s: Field t
Inst il28and: Field s Inst il28and: Field t 可看出這資訊如何被使用以在下一部份產生診斷。 IIP之微架構測試 這部份之目的,是依據在TIE和核心之間、以及在TIE 狀態和暫存器檔案之間(如果有的話)的界面製作知識而產 生TIE邏輯之微架構診斷。ISA以及TIE本身的管線輸送 說明被使用;但是,如先前所述,TIE指令製作之"正確性 ”在測試中不被直接地證實。 一組MVP診斷被產生以測試下面製作的論點: —在核心/聯繫界面中之控制邏輯:以及 …使用者狀態和暫存器檔案之製作,包含載入/儲存以 及旁通和互連邏輯。 在核心和TIE之間的控制信號 例外、中斷和重新進行信號利用產生測試而被測試, 其中在核心(例如,一組支流)、例外和重新進行信號中之 控制流程改變終止所有使用者指令。指令在其所有的執行 步驟中應該被終止,直到完成步驟。 產生這些測試的演算法則簡單地重複TIE編輯器產生 的ISA說明中所有的TIE操作碼並且建立下列各組情況: 113 本紙張尺度適用中國國家標準(CNS ) Α4規格(210Χ 297公釐) ---------Μ衣------1Τ------0 (請先閱讀背面之注意事項再填寫本頁) 571206 A7 B7五、發明説明("V) · 經濟部智慧財產局員工消費合作社印製 情況a) TIE指令被一種流程改變終止: foreach tie opcode (tie_opcode_list) branch instr ( branch teiken) he—opcode end // foreach 情況b) TIE指令被一組例外終止: foreach tie一opcode (tie一opcode_list) for (stage=0; stage < completion stage of tie_opcode; stage++ ) syscall or break instr (that generates an exception) <stage> number of nops tie_opcode end // for end // foreach 如所見,在產生例外之指令以及TIE指令之間的nops 數目,控制被終止的TIE指令執行步驟。 情況c) TIE指令在管線輸送中被重新進行: foreach tie— opcode (tie_ opcode— list) isync instr 114 本紙張尺度適用中國國家標準(CNS ) A4規格(210X 297公釐) (請先閱讀背面之注意事項再填寫本頁) -裝
、1T 線 571206 經濟部智慧財產局員工消費合作社印製 A7 B7 五、發明説明(/π). tie_ opcode end 使用者狀態與暫存器檔案之旁通邏輯: 這些測試將利用將寫入/讀取TIE狀態和暫存器檔案之 指令”配檔”而運用它們的旁通邏輯。測試將確保沒有因爲 指令和資料擷取的延遲並且接著(如果組態允許的話)在指 令序列之前和之後檢査週期計算暫存器以找出任何非必須 的延遲以及將其標示爲一組錯誤。演算法則如下所示: 產生所有讀取/寫入步驟的一組[instr,field]列表至一 組特定的暫存器檔案或狀態。檢査這狀態/regfile之最大 完成步驟。接著配對寫入和讀取指令,變化其間的無操作 數目至最大完成步驟之間。 foreach regf (tie->regfiles()) { // list of the stages at which regf is read // possibly (1,2) readstages = getReadStages ( regf) // list of stages at which regf is written // possibly (2, 3) writestages = getDefStages ( regf); foreach wstage ( writestages ) { writelist = Generate list of [instr, field] pairs that write regf in stage wstage maxnops = maximum completion stage for regf - wstage; foreach rstage ( readstages ) readlist = Generate list of [instr, field] 115 本紙張尺度適用中國國家標準(CNS ) A4規格(210 X 297公釐) ---------装-----—1T------0 (請先閱讀背面之注意事項再填寫本頁) 571206 A7 B7 五、發明説明(//3) pairs that read regf in stage rstage } foreach write instr ( writelist) foreach read_instr ( readlist) { for( i=0; i< max_flops; i++ ) stalls = (wstage-rstage-1) if ( wstage > rstage ) else 0; ccount_before = read cycle count writejinstr I - nops read ins tr ccount after = read cycle count if (( ccount after - ccount_before) != ( stalls + flops + 3 )) ERROR !! (請先閱讀背面之注意事項再填寫本頁) :裝·
、1T 經濟部智慧財產局員工消費合作社印製 必須利用執行指令序列兩次而確保沒有1$和D$失誤。 在第二次疊代中,一組週期計算檢査被完成。預期的週期 數目取決於讀取/寫入步驟和無操作數目。上面範例之一些 範例情況是z #(il281 field t stage 3) -> (il28and Field s Stage 1), #nops=0, stall 1 cycles Test_ll: rsr $a3, 234 <-- read cycle count before il281 $il280,$aW,0 l-> 116 本紙張尺度適用中國國家標準(CNS ) Α4規格(210X297公釐) 571206 A7 B7 經濟部智慧財產局員工消費合作社印製 五、發明説明("4) il28and$il285, $U280, SU2811 rsr $a4, 234 <— cycle count after addi Sa3, $a3, 4 beq 24, a3, pass」l j FAIL PASS_11: #(il28and field r stage 2) -> (il28and Field s Stage 1), #nops=0, stall 0 cycles,
Test_ 12: rsr $a3, 234 il28and $U280, $il288, $il284 l->
I il28and$il286,$il280,$il285 rsr $a4, 234 addi 3 beq a4, a3, PASS 12 j FAIL PASS_12: #(il28and field r stage 2) -> (il28and Field s Stage 1), # nops=l, stall 0 cycles,
Test_13: rsr Sa3, 234 il28and$il280j$H288f $il284 nop.n H28and SH286, $H280, SH285 rsr $a4f 234 addi $a3, Sa3, 4 beq a4, a3, PASS13 jFAIL 一 PASS 13: 連結與危險事件 這測試在寫入後讀取、在寫入後寫入、及(可能)在讀 取後寫入的危險情況中之正確延遲。 117 本紙張尺度適用中國國家標準(CNS ) A4規格(210 X 297公釐) 裝 訂 線 (請先閲讀背面之注意事項再填寫本頁) 571206 A7 B7 五、發明説明(〃I). 用於危險情況之演算法則以相似於上述旁通事例的方 式被導出。有兩組指令在步驟2和3寫入相同的暫存器檔 案中,接著在步驟1中的一組指令讀取暫存器檔案。第三 指令爲第—*寫入結果延遲。 #(Inst il28andr2)-> #(Inst il28113)-> #(Inst il28and s 1)
Testl: rsr $a3, 234 U28and$il280f $H289t $H281 H281 $il280t $α5}0 il28and$il2815t $H280f SH2813 rsr Sa4, 234 addi $a3, Sa3, 5 beq a4, aS, PASS 1 j FAIL PASS_1: 載入/儲存 所有被校準的以及不當被校準的位址之所有暫存器檔 案的載入和儲存使用下面的演算法則廣泛地被測試: foreach regf (tie->regfiles()) PIFbytes = PIFWidth »3; // bytes PIFwords = PIFbytes » 2; // words ( eg 4 for 128 bit) regfw = regf->size()» 5; for ( k=0; k< PIFbytes; k++ ) { load address = PIFWidth-aligned address + k; store address = PIFWidth-aligned address + k; * initialize memory 118 本紙張尺度適用中國國家標準(CNS ) Α4規格(210Χ297公釐) (請先閱讀背面之注意事項再填寫本頁) -裝·
、1T 經濟部智慧財產局員工消費合作社印製 571206 A7 B7 經濟部智慧財產局員工消費合作社印製 五、發明説明("6) · * store known data into load address * store a default value to the store address for ( i=0; i<PIFwords; i++ { * store data_word to load—address + i * store default_wordto storejaddress + i } * do the load from load address * do the store to store address expected一 result = expected_tie_load_result( load_address, data); for (i=0; i_PIFw; i++{ result = load a word from store_address + / if (i <regfw ) check result == expected_result } else { check result default一word 載入的預期結果取決於載入語義,並且雖然在多數中 情況其可被決定,但或許不能對於所有可能的語義而被決 定,在其情況中必須將檢査留給狀態和記憶體比較。 對於在組態支援資料中止點之情況中的TIE載入/儲存 指令,其中TIE載入/儲存指令之資料中止點同時被測試。 TIE指令之資料中止點如何進行之細節可被發現於載入/儲 存結構部份中。被產生之診斷測試所有載入/儲存之資料中 止位址暫存器、控制遮罩暫存器以及虛擬位址可能的組合 119 本紙張尺度適用中國國家標準(CNS ) Α4規格(210Χ 297公釐) ---------ΐ衣------1Τ------# (請先閱讀背面之注意事項再填寫本頁) 571206 A7 B7五、發明説明(〃7) · 經濟部智慧財產局員工消費合作社印製 之資料中止點。 foreach regf (tie->regfiles()) { regfw = regf - >size( )» 5; write dbreak register with an address aligned to regfw foreach mask ( set of masks for regfw) { * write dbreak control mask * set address register based on mask and dbreak address * do a load/store to regf that takes a data breakpoint exception * check if exception was taken end end 匹配的資料中止點將導致一種除錯例外。使用於上面 測試之除錯例外操作器將更新一組計數器,該計數器將被 檢查以確保例外確實被採用。此外,更複雜情況同時也被 構成,其中具有資料中止點的載入/儲存與溢位/向下溢位 之例外(針對暫存器視窗)同時發生以確保此類例外之正確 的優先順序。 TIE指令之隨機診斷產生器 隨機診斷在核心ISA確認以及製作微架構中扮演一種 主要的任務。指令之隨機序列很可能達到邊界情況以及其 他不太可能被一組直接的測試所涵蓋的情節。它們同時添 加至涵蓋範圍量度以便設計確認。利用添加一些特點而使 額外智慧被添加至這些隨機產生器。例如,指令序列模板 可被產生以針對特定之令人關注的情況。此類的一組範例 120 本紙張尺度適用中國國家標準(CNS ) A4規格(210X297公釐) 經濟部智慧財產局員工消費合作社印製 571206 A7 B7 五、發明説明("y) 塡滿寫入·緩衝器之緊接儲存,或是具有單一指令之一組零 開支迴路。被附帶至各指令形態或指令序列之相對機率可 決定產生一種特定指令的頻繁性;例如,如果一組分支指 令具有高的相對機率(或加權),則被產生之測試將具有更 多的分支。被使用者控制之參數可調整被產生的測試性 質。例如,命令線參數可控制某種指令之相對加權、測試 長度、巢狀功能呼叫數目、等等。同樣地,隨機診斷產生 器可產生被使用者定義之TIE指令。 基本的結構相似於微架構測試。隨機產生器讀取包含 TIE指令以及核心ISA之ISA說明。有效之TIE指令利用 察看特定的TIE指令之ISA說明,並且採用一些暫存器安 置機構而被構成: foreach operand (tie_instr->operands()) { if ( operand is TIE register file ) { do a random register allocation random (0, Gentries in register file) } elsif ( operand is a core register file ) { if (this is a load/store instr) { this is the address register for the load/store operation.
Find a core register that can be written, and write a valid address } else { random core register } } elsif immediate field { generate a random immediate value based on the instruction's immediate table or range 121 本紙張尺度適用中國國家標準(CNS ) Α4規格(210X297公釐) ---------ΐ衣------1Τ------^ (請先閱讀背面之注意事項再填寫本頁) 571206 A7 B7 五、發明説明(^) · 隨機產生器最好是不可被組態系統終端使用者所存 取,但是,可被採用於內部確認以及TIE說明之全部範圍’ 例如上面敘述的及進一步地包含變化寬度(例如8、1 6、32、 64、128位元)以及狀態之TIE暫存器檔案的詳盡情況。另 外,終端使用者可被給予隨機產生器之存取以便進一步確 認之使用。 TTE確認之涵蓋範圍量測 如上面之所述,確認成果之目標是確保核心和TIE界 面之正確性,被使用者定義之狀態和暫存器檔案與相關的 邏輯之正確性,以及轉譯TIE指令成爲硬體製作之正確性。 這些區域之一些涵蓋範圍量度是必須的。 經濟部智慧財產局S工消費合作社印製 這並不指被TIE編輯器產生的RTL之基本設計涵蓋範 圍,而是上述區域中之功能涵蓋範圍。雖然爲TIE評估這 樣的涵蓋範圍是極端地困難,但已有方法被發展出以產生 一些功能涵蓋範圍模組,其執行RTL並且報告一些涵蓋範 圍測量。例如,一重要區域,是在TIE暫存器檔案和狀態 之間的所有旁通通道。被產生以測試旁通的診斷應該覆蓋 所有可能的旁通通道,但是目標是具有一組在RTL中之無 關的確認。爲完成這目的,一些Veri log/VERA模組從TIE 說明以及管線輸送資訊被自動地產生。這些模組在RTL模 擬時間之期間執行以報告被涵蓋的旁通通道。 採用出現於先前部份中之128位元暫存器檔案Π28爲 122 本紙張尺度適用中國國家標準(CNS ) A4規格(210X297公釐) 571206 A 7 B7 五、發明説明(WD). 範例,第13圖展示這樣的一組一般目的暫存器檔案,以 及在硬體中之製作。該圖形展示一組讀取埠RdO和一組寫 入埠Wd。一般,暫存器檔案有兩組讀取埠以及一組寫入 埠。信號之命名協定是: <port_name>_< signal_name>_<stage_name> 其中 port_name :暫存器檔案埠(RdO,Rd 1,Wd)之名稱 signal_nanie ·信' 藏名稱是_ 讀取埠:mux: mux之輸出, data:正反器之輸出,其通至TIE之資料通道單元 寫入埠:mux:—組mux之輸出, data:資料通道單元之輸出 result: —組正反器之輸出 stage_name:這指示管線輸送步驟。 如在先前部份之敘述,此處協定是: C0:R步驟,C1:E步驟,C2:M步驟,C3:W步驟 爲了簡化,下面的討論限定所有TIE指令在M-步驟 之前寫入暫存器檔案。 方塊圖展示這些步驟之不同的旁通通道。對於讀取埠 RdO,其在步驟1和2中被資料通道讀取(在先前部份中這 被以暫存器檔案的使用表示),下面描述或說明該方塊圖: 步驟C0: 123 本紙張尺度適用中國國家標準(CNS ) A4規格(210X297公釐) 裝-- (請先閲讀背面之注意事項再填寫本頁) 訂 經濟部智慧財產局員工消費合作社印製 571206 A7 B7 五、發明説明(β/).
RdOmuxjCO = select from ( Wd_data_C2 the result produced by the instr last in the pipeline Wd一 data一Cl the result produced by the instr before last in the pipeline RdO data CO: The current data in the register file) 步驟Cl : RdO_data_Cl <= RdOjnuxJOO where <= implies after a clock cycle RdOmuxCl = select from Wd_data_C2 the result produced by the instr last in the pipeline Rd0_data一Cl: the result of the previous stage 請 先 閱 讀 背 之ϊ 意 項/ 再J 寫 本 頁 裝 訂 線 經濟部智慧財產局員工消費合作社印製 步驟C2. RdO_data_C2 <= RdO mux Cl 在步驟2和3中被寫入之寫入埠Wd,其具有一組相 似之旁通通道: 步驟C2. 124 本紙張尺度適用中國國家標準(CNS ) A4規格(210 X 297公釐) 經濟部智慧財產局員工消費合作社印製 571206 A7 B7 五、發明説明(/K).
Wd_result_C2 <= Wd_mux_C\ - Wd_data_C\ (the only source for the write port in stage Cl is the output of the instruction in E stage)
Wd一mux—C2 = select from (
Wd_result_C2
Wd_data_C2 : result of the current instr in M stage ) 步驟C 3 :
Wd_result C3 <= Wd_mux_C2
Wd_resul t C3被寫入至暫存器檔案。 旁涌涌道之涵蓋範圍 較佳實施例之一目的是產生一組監視器,其檢査在上 面方塊圖中之所有旁通通道是否已經被運用。一組範例旁 通通道在第13圖虛線通道被追蹤。監視器實質地經由通 道而追蹤資料,並且因此必須做出一種非常重要的假設, 即是資料在TIE資料通道單元中維持不改變。這表示下面 的檢查可被進行:
Wddat a_C 1 == RdOdataCl 並假設在E步驟(Cl)中讀取資料並且在步驟中產生 輸出資料的一組TIE指令不改變資料。當然,對於任何真 正的TIE指令,這是不正確的。但是,爲了測試目的,在 125 本紙張尺度適用中國國家標準(CNS ) A4規格(210X 297公釐) 私衣 訂 線 (請先閱讀背面之注意事項再填寫本頁) 571206 A7 B7 五、發明説明(/d). 使用者TIE中一些”身份證明"指令(爲產生實際的硬體而將 被消除)被引介。這些指令,僅僅使用於測試,主要複製資 料。在這範例中,兩組身份證明指令被得到:
Identity 1: use Cl,def C1 :其在E步驟中讀取暫存 器檔案,並且在E步驟中產生相同之資料;以及
Identity 2: use Cl, def C2 :其在一組週期延遲之後 產生資料。 監視器產生之事項被說明之後,用以產生測試所有旁 通通道是否被運用之一組Vera模組的演算法則將接著被說 明。再次,利用TIE編輯器產生之資訊被使用並且上述之 信號命名協定被採用。 foreach regf (list of register files ) { foreach writeport ( writeports of regf) { foreach writestage ( list of stages writeport is written ) foreach readport (readports of regf) { foreach readstage ( list of stages readport is read) { skip if writestage < readstage generatethe—signal_list( regf->name, 經濟部智慧財產局員工消費合作社印製 writeport - >name, writestage, readport - >name, reads tage, list of write_stages_for_writeport ) } // readstage } //readport }// writestage 126 本紙張尺度適用中國國家標準(CNS ) A4規格(210X 297公釐) 571206 A7 B7 4 經濟部智慧財產局員工消費合作社印製 五、發明説明(乂句. } //writeport } // regf 爲簡化之故’產生信號列表之副常式運作被省略,但 是對於那些熟習本技術者而言,其將是明顯的。一個重要 的註釋是,資料通道如何在信號列表中被表示。如果資料 通道具有一組寫入步驟>讀取步驟(例如,上面之Identity 2 指令),花費在資料通道單元中之週期數目(依據這說明之 兩組週期TIE指令限定,其最高是一)簡單地被添加。 展示於第13圖之虛線通道被產生爲一組信號列表或 來自上面之演算法則之追蹤: i 1 2 8 _w d _d at a _C 2 - > i 1 2 8 rdO _mux _C 0-> i 12 8_rdO_data_C 1 - > waitcyclesl~> i 1 2 8 _w d _d a t a _C 2 - > i 1 2 8 d _mux _C 2 -> i 1 2 8 _w d _r e s u 11 _C 3 其中Π28是暫存器檔案名稱。自Xtensa之頂部位準 至TIE暫存器檔案Π128的通道被加到暫存器檔案名稱之 前。注意,來自第13圖資料通道中 RdO_data_Cl-〉Wd_data_C2之虛線已經被表示爲信號追蹤中之等待週期 127 本紙張尺度適用中國國家標準(CNS ) Α4規格(210X297公釐) 辦衣-- (請先閱讀背面之注意事項再填寫本頁)
、1T 線 571206 A7 B7 五、發明説明(/二Γ). 針對所有旁通通道,此類信號追蹤列表被產生。依據 該信號追蹤,一組小的監視器模組在Verilog/Vera中被產 生以檢査這通道是否已被追蹤。如果是,則在通道模擬結 束之後報告一組1。各監視器實質上是由演算法則所產生 的一組小的狀態機器: a) 決定在狀態機器中之狀態數目 狀態數目=信號追蹤中之步驟數目(來自E)+資料 通道之狀態m/c中的週期數目 b) 依據狀態而群集信號 c) 產生指令: state = 0; foreach state ( states in FSM ) if (last state in list) { * reset state * set flag to 1 for covered } else { if ( signals in this state ) { generate if expression to advance to next state } else { 經濟部智慧財產局員工消費合作社印製 advance to next state 範例旁通通道所產生之狀態機器是= 128 本紙張尺度適用中國國家標準(CNS ) A4規格(210X297公釐) 571206 A7 B7 五、發明説明(7厶). case (state) 0: if (<hierarchy>.il28rd0-inux一 CO = <hierarchy>.il28_wd_data_C2) { state = 1; (請先閱讀背面之注意事項再填寫本頁) 經濟部智慧財產局員工消費合作社印製 if (<hierarchy>.i 128rd0一mux—CO = 〈hierarchy〉· i 12 8_rdO_mux_CO) { state = 2; } 2 : intstate = 3; // waitcycles 1 } 3 : if (<hierarchy>.il28_wd_result C3 == <hierarchy>.il28_wd_mux_C2) { state = 0 resultflag = 1’bl; } 129 本紙張尺度適用中國國家標準(CNS ) A4規格(210X 297公釐) 571206 A7 B7 經濟部智慧財產局員工消費合作社印製 五、發明説明(/e7). 確認槪要 爲測試輸入參考指令語義之正確性,TIE編譯器修改 應用以便使用利用內在性之新的指令,並且接著(1)編譯這 指令至機器指令且以指令集模擬器執行應用,或者(2)編譯 這指令至原狀指令並且使用TIE編輯器輸出的巨集及功能 以提供內在的兼容性。應用之正確性以兩組選擇之任何一 組核對指令參考語義之正確性。參考語義的轉譯被選擇2 所證實,並且被擴展之編輯器以及模擬器的正確性利用選 擇1而被證實。超越出該應用所提供之另外的範圍利用測 試情況TIE結構以產生特定情況之測試(例如,不平常的 或"偏僻"情況)而被涵蓋。 製作語義可利用如上面之相同方法使用一組TIE編輯 器選擇,轉譯這些而非參考語義而被證實。製作語義以及 他們的HDL轉譯同時也可利用商業性的等效檢査工具在各 H DL的轉譯上操作而正式地被證實相似於參考語義。製作 語義以及他們的轉譯同時也利用在HDL模擬器中執行ΤΙΕ-指定測試情況之使用而被檢査。 TIE編輯器爲暫存器檔案、連結、旁通、核心界面、 以及例外所產生的HDL,利用執行依據TIE輸入自動地被 產生之測試並且使用相互模擬以證實結果而被證實。這些 測試使用管線輸送規格以徹底地測試連結、旁通、以及例 外的所有組合。 利用TIE編輯器所產生的HAL指令,利用在指令集 模擬器中執行而被證實。新指令之組合程式和編輯器支 130 本紙張尺度適用中國國家標準(CNS ) A4規格(210X 297公釐) (請先閱讀背面之注意事項再填艿本頁) -裝· 訂 線· 經¾部智慧財產局員工消費合作社印製 571206 A7 B7 五、發明説明(e<?). 援,利用多數上面之敘述而被證實》 處理器之相互模擬 相互模擬是平行地執行RTL以及參考模式,並且在指 定界線比較ISA中被定義之架構可見狀態之處理程序。 相互模擬器(在此處之後稱爲"cosim”)作用如同在RTL 模擬器、ISS、以及被平行執行之多重其他監視器/檢査器 工作之間的同步器和通道。在RTL和ISS之間錯誤結合發 生時或當一確定檢査器以通知一激變事件時,一組診斷即 刻地失效。 使用相互模擬有許多的優點。首先,其提供較容易的 失效診斷之除錯。其導致模擬在(或接近)問題出現的週期 時停止,其顯著地減低除錯時間以及影響。 其次,其提供更多的狀態檢査。其允許在程式執行中 處理器狀態的觀察,因而標示產生錯誤的中間結果之情況 並產生一組正確的最後結果。 最後,相互模擬不需要自身檢査。隨機診斷可被執行 並且被檢査。 較佳實施例中,ISS是參考模式並且範圍被定義在指 令撤除時以及外部事件發生時。將被比較的架構上可見狀 態之集合是可組配的。使用具有可組配處理器的相互模擬 器之一種挑戰,是缺乏關於比較RTL和IS S之處理程序的 完全了解。關於比較RTL和ISS所習知的是,比較需要發 生在指令撤除範圍以及在外部事件發生時。但是,在RTL 和ISS之間被比較的處理器狀態取決於使用者選擇包含在 131 本紙張尺度適用中國國家標準(CNS ) A4規格(210X297公釐) ---------批衣------、玎------0 (請先閱讀背面之注意事項再填寫本頁) 571206 A7 B7 五、發明説明(/"). 其之組態中的處理器選擇。當一組處理器選擇不被包含在 處理器核心之特定組態中時,則相互模擬器環境不該試圖 去比較選擇所引介的狀態,因爲該狀態不被呈現在RTL或 ISS之中。因此,較佳實施例使用一組可組配的相互模擬 器環境並且其在處理器組態時與軟體和硬體一起被定做。 相互模擬器如何與TIE運作 使用者使用TIE以延伸處理器狀態和指令集之功能, 使得相互模擬器處理程序複雜化,因爲相互模擬器環境需 要在完全沒有處理器狀態和指令集之先前的知識之下被產 生。當TIE存在時,相互模擬器環境需要能夠決定應該被 比較/被確認的新處理器狀態,並決定在RTL和ISS之間 新狀態將被比較時的範圍。爲了使相互模擬器能夠達成這 兩種需要/目的,其需要關於在TIE中被定義的新處理器狀 態資訊。相互模擬器所需要的資訊包含新的狀態名稱、狀 態元件寬度、定義狀態的完整RTL階系(通道)、狀態是否 在重置時被定義、其是否爲一組分別的狀態或是爲一組暫 存器檔案、以及當狀態是一種暫存器檔案時之項目數目。 相互模擬器所需要的資訊以三個步驟從使用者的TIE 說明中被產生。首先,如第14圖之展示,TIE編輯器剖析 TIE說明並且產生在輸入檔案中被定義的狀態之一組中間 表示。這中間表示接著被相互模擬器預處理器所使用以產 生新的TIE狀態確認所需要的相互模擬器原始指令碼。最 後,被產生的相互模擬器指令被整合至其餘的相互模擬器 構造以產生所給予組態之特定的相互模擬器環境。這最好 132 本紙張尺度適用中國國家標準(CNS ) Α4規格(210X297公釐) (請先閱讀背面之注意事項再填寫本頁) -裝·
、1T 經濟部智慧財產局員工消費合作社印製 571206 A7 B7 ‘· 經濟部智慧財產局員工消費合作社印製 五、發明説明(/94 . 是使用tpp而被完成以便以VeraTM相互模擬語言產生指 令,例如被美國 Synopsys,Inc. of Mountain View, CA 所 製作之 VeraTM System Verifier 所製作。 下面部份包含相互模擬器預處理器之範例,以及從先 前被呈現之Galois領域TIE範例所得到的相互模擬器原始 指令碼。
Cosimlnfo.pm # Cosimlnfo.pm creates arrays which contains state and # # register files information for TIE and the core. # # -----------------------------------------------------------------------------------# @Cosimlnfo::EXPORT = qw( @RegisterFiles @SpecialRegister @IntrType @TieState @TieRegister @AllRegFiles @AllSpecialRegs); #----------------------------------------------------------------------------# # For a given configuration: # # SpecialRegister contains all the core # # special registers' names # # RegisterFiles contains all the core # # register files names # # ----------------------------------------------------------------------------# @SpecialRegister = map (CoreState($_, 1), 133 本紙張尺度適用中國國家標準(CNS ) A4規格(210X297公釐) 批衣 訂 線 (請先閲讀背面之注意事項再填寫本頁) 571206 A7 B7 五、發明説明(〇/) grep($_->name ne 'MEM1, $isa->state)); @RegisterFiles = map (CoreState($_, 0), grep($_->name ne *ΜΕΜ', $isa~>state)); # # For a given tie description: # TieState contains all the TIE states names # TieRegister contains all the TIE register files names # # # #. @TieState = map (TieState($一,1) $pr->tie () ->allStates ()); @TieRegister = map (TieState($_, 0), $pr->tie() ->allStates ()); 請 先 閱 讀 背 ιέ i 事 項v 再滅 寫 本 頁 裝 經濟部智慧財產局員工消費合作社印製 @AllRegFiles = (@RegisterFiles, @TieRegister); @AllSpecialRegs = (@SpecialRegister, @TieState); #-----------------------------------------------------------------------------# # TieState subroutine reads the TIE state and register # # information from the configuration data base. # sub TieState { my (Sstate, Stiestate) = my Sname = $state->name(); my Sentries = $state->entries(); my Swidth = $state->width(); my Sundefonreset = ! ($state->initialized()); my Sregfile = $state->isRegFile(); if (StieState) { return if (Sregfile); [Sname, Swidth = = 1 ? 1 : Swidth, Sundefonreset]; 134 本紙張尺度適用中國國家標準(CNS ) A4規格(210X297公釐) 訂 t 經濟部智慧財產局員工消費合作社印製 571206 A7 B7 五、發明説明(/&) } else ( return if (!$regfile); [Sname, Swidth = 1 ? 1 : Swidth, Sentries] 相互模擬器原始指令碼(Tie暫存器檔案比較): ;foreach(@TieRegister) { ;my (SregName, Sregwidth, SregEntries) = ;for($i = 0; $i < SregEntries; $i++) { $tn = SregName . $i; iss_ '$tn' = $iss_read_register_bitvec('$F + 'SregName' _start); if(rtl_'$tn' [index] != iss 一 ' $tn') { printf(MCosim @ cycle %Od PC %h:\n\tRTL != ISS TIE Reg File ’$tn、 %h %h\n\nM, current cycle, rtl_spreg_pc[index], rtl ' $tn' [index] , iss_ '$tn'); } ;} ;} 相互模擬器輸出程式(Tie暫存器檔案比較): issgfD = siss_read_register_bitvec(0+gf_start) if(rtl_gfO[index] ! = iss_gf0) { printf(MCosim @ cycle %0d PC %h:\n\tRTL != ISS TIE Reg File gf 0 %h %h\n\nM, current_cycle, rtl_spreg_pc[index], rtl_gfO [index), iss_gf0) 135 本紙張尺度適用中國國家標準(CNS ) A4規格(210 X 297公釐) ---------#------1T------0 (請先閱讀背面之注意事項再填寫本頁) 571206 A7 --- -B7 五、發明説明(/33) iss—gfl5 = $iss一read—register一bitvec(0+gf—start); if(rtl_gfl5[index] != iss_gfl5) { printf(HCosim @ cycle %Od PC %h:\n\tRTL != ISS TIE Reg File gf 15 %h %h\n\n,,5 current_cycle, rtl_spreg_pc[index], rtl gfO [index], iss_gfls) 相互模擬器原始指令碼(Tie狀態比較): ;foreach (@TieState) ;(Ssreg) = @$ // Checking Special Register' Ssreg ' iss ' Ssreg' = $iss一read一register一bitvec(' Ssreg、一map); if(rtl_spreg_'Ssreg'[index] != iss_ 'Ssreg') { iss— 'Ssreg' = $iss_readregister_bitvec( 'Ssreg' _map); printf("Cosim @ cycle %Od PC %h:\n\tRTL != ISS at TIE State 'Ssreg' %Oh %Oh\n\nM, current cycle, rtl_spreg_Pc[index], rtl_spreg_ 'Ssreg' [index], iss_ 'Ssreg' ); 相互模擬器輸出程式(Tie狀態比較): 經濟部智慧財產局員工消費合作社印製 // Checking Special Register gfmod issgfinod = $iss一readregister一bitvec(gfinod—map); if (rtl—spreg_gfinod[index] != iss gfinod) { iss gftnod = Siss read register bitvec (gftnod map); printf("Cosim @ cycle %0d PC %h:\n\tRTL 1= ISS at TIE State gfmod %0h %0h\n\n", current_cycle, rtl_spreg_c[index], 136 本紙張尺度適用中國國家標準(CNS ) A4規格(210X297公釐) 571206 A 7 B7 五、發明説明㈦4). rtl_spreg_gfmod[index], iss_gfinod); } ---------批衣-- (請先閱讀背面之注意事項再填寫本頁) 因此,槪要言之,爲調適在Killian等申請中被說明 的模擬器,以便在較佳實施例中進行,必須完成主要關於 普遍化狀態的一些改變。因爲TIE狀態可以是任意地寬, 故需要一組界面以登錄任意大小之數値,但爲了性能上之 理由,該界面最好不在所有時間都被使用。因此,暫存器 被劃分爲不同類別,並且gdb和相互模擬器界面被修改以 至於它們可從一組單一整數指令找到一組類別以及類別內 之索引。插槽界面被改變以至於任意寬度的數値可被傳輸 並且被接收。新的記憶體界面被添加以支援寬的載入和儲 存。TIE之啓始狀態被普遍化以支援暫存器檔案以及暫存 器至輔助處理器之指定。與TIE狀態存取相關的模擬管線 輸送延遲之支援同時也被添加。TIE狀態之界面被修改以 模擬CPENABLE之例外° 線 槪要
槪要言之,接著,主要之新的TIE結構在上面已討論 過,它們所影響之產生檔案以及它們的一般目的如下表III 經¾部智慧財產局員工消費合作社印製 所示。 序列 被產生之檔案 目的/任務 •其他領域之次領域 •Libisa-<tie>.a •Libiss-<tie>.a •<tie>.v •customer.isa •支援記憶體順序無關領域定義 137 本紙張尺度適用中國國家標準(CNS ) A4規格(210X297公釐) 571206 A7 B7 五、發明説明(ί:^) 經濟部智慧財產局員工消費合作社印製 •TIE模組 •Libisa-<tie>.a •Cstub-<tie>.c •<tie>.v •Verification files •支援有效的指令硬體製作而不用 寫入複雜語義說明 •暫存器運算元 •Libisa-<tie>.a •Libcc-<tie〉.a •Libiss-<tie>.a •Cstub-<tie>.c •Xtensa-<tie>.h •<tie>.v •customer.isa •針對被使用者定義之暫存器檔案 定義具有暫存器運算元之指令 •基本被使用於暫存器檔案讀取/ 寫入埠中之安置的項目 •Iclass界面子句 •Xtensa-<tie>.h •Libiss-<tie>.a •<tie>.v •cstub-<tie>.c •Verification files •在TIE指令和Xtensa指令之間 取得互動 •界面 •Libcc-<tie>.a •Libiss-<tie>.a •Cstub-<tie>.c •Xtensa-<tie>.h •<tie>.v •允許TIE指令存取某些Xtensa 核心功能 •順序安排 •Libcc-<tie>.a •Libiss-<tie>.a •<tie>.v •customer.isa •產生指令之多週期製作 •安排最高效率的指令 •模擬具有精確時脈週期計算的指 令 •Regfile •Libisa-<tie>.a •Libcc-<tie>.a •Libiss-<tie>.a •Cstub-<tie>.c •Xtensa-<tie>.h •<tie>.v •customer.isa •使用輔助處理器暫存器檔案於更 高效率的計算上 •Synopsis •Description(說明 •Imp 1 note •Assm 一 note •Customer.isa •產生TIE指令文件 •Ctype •Libcc-<fle>.a •支援C之新的資料形態以便容易 編製程序以及自動暫存器安置 •Proto •Libcc-<tie>.a •Xtensa-<tie>.h •針對自動暫存器安置提供另外的 資訊 •支援CTYPE之自動轉換 •支援指令慣用語 一 •Reference(參考) •Libisa-<tie>.a •Libcc-<tie>.a •提供ΉΕ指令參考定義 •檢査TIE指令語義說明之正確性_ 138 本紙張尺度適用中國國家標準(CNS ) A4規格(21〇X 297公釐) (請先閱讀背面之注意事項再填寫本頁) :裝· 訂 571206 A7 B7 五、發明説明㈦4) •Libiss-<tie>.a •Cstub-<tie>.c •Xtensa-<tie>.h •<tie>.v •Customer.isa •Coprocessor(輔助 處理器) •Customer.isa •Libiss-<tie>.a •聚集暫存器檔案及狀態進入輔助 處理器以支援緩慢的文脈切換
表III 本發明已於上面敘述相關的較佳實施例;但是,這僅 是爲展示之目的,本發明並不因此受到限制。更確切地, 對於那些熟習本技術者而言,明顯可知本發明有許多的變 化而不脫離本發明之範疇。 ---------^------1T------0 (請先閱讀背面之注意事項再填寫本頁) T 經濟部智慧財產局員工消費合作社印製 139 本紙張尺度適用中國國家標準(CNS ) A4規格(210Χ 297公釐) 571206 A7 B7 五、發明説明Pf) · 七件慄號對照表 801-802……儲存資料輸入 803 -805……資料快取 806……Ϊ?料 RAM M)7……料輸入 S08……非快取資料輸入 809- 8 1 2……多工器 S 1 3 ' 8 2 1……載入位址 經濟部智慧財產局8工消費合作社印製 3
S14 -8 1 9 ……右移位器 (、2 (卜 8 2 1 ……信號 822-833 ……依序多工器 8 34…… 核心載入資料 906-911 …二載入資料來源 914-918 ……位元組-位準轉動器 2 1 - 9 2 5 ……標誌擴展器 9 19…… 載入位址 l)27 …. ••LSSize 信號 ' 2(.... 93 S…… 所有128位元寬度 9 3 9......ii i小主要3 2 -位元部份 本紙張尺度適用中國國家標準(CNS ) A4規格(210X297公釐)

Claims (1)

  1. 571206 A8 BS CS D8 夂、申請專利範圍· 1. 一種用以設計可組配處理器之系統,其中該系統 包含: 硬體產生裝置,其依據包含一預定部份及一使用者定 義部份之組態規格,而用以產生該處理器硬體製作之說 明;以及 軟體產生裝置,其依據該組態規格,而用以產生特定 於該硬體製作之軟體發展工具; 其中該硬體產生裝置是,依據該組態規格之使用者定 義部份,而包含在該處理器硬體製作說明中之一組使用者 定義暫存器檔案;以及 該軟體產生裝置是,依據該使用者定義部份,而包含 在該軟體發展工具中關於該使用者定義處理器暫存器檔案 之軟體。 2· 如申請專利範圍第1項之系統,其中關於該使用 者定義處理器暫存器檔案之軟體包含一組指令,其依據該 指令之一欄而存取在該暫存器檔案中之元件。 3· 如申請專利範圍第2項之系統,其中該硬體產生 裝置是用於以暫存器傳送位準硬體說明語言產生至少部份 之該硬體製作說明。 4·如申請專利範圍第1項之系統,其中該組態規格 使用詳細指明在暫存器檔案中之元件寬度的一種敘述而定 義該暫存器檔案。 5 ·如申請專利範圍第1項之系統,其中該組態規格 使用詳細指明在暫存器檔案中之元件數目的一種敘述而定 140 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公釐) (請先間讀背面之注急事項再填寫本頁) 經濟部智慧財產局員工消費合作社印製 --------^---------^ I -->---ξ-----.------- 571206 Λ8 B8 CS DS 經濟部智慧財產局員工消費合作社印製 六、申請專利範圍. 義該暫存器檔案。 6.如申請專利範圍第1項之系統,其中該硬體產生 裝置是用以決定與組態規格無關的暫存器檔案之至少一組 讀取埠和寫入場。 1 · 如申請專利範圍第6項之系統,其中該硬體產生 裝置是依據在該組態規格中所列表的資訊而用以決定一些 讀取埠。 8· 如申請專利範圍第1項之系統,其中該硬體產生 裝置是用以產生,作爲該處理器硬體製作說明之部份,指 定該使用者定義之暫存器檔案的寫入埠至指令運算元而使 .資料傳輸成本縮到最小之一組邏輯說明。 9. 如申請專利範圍第1項之系統,其中該硬體產生 裝置是用以產生存取該暫存器檔案之管線輸送邏輯。 10. 如申請專利範圍第9項之系統,其中該使用者定 義暫存器檔案之讀取埠在使用它們作爲一組原始運算元之 任何指令的最早步驟中被讀取。 11. 如申請專利範圍第9項之系統,其中該使用者定 義暫存器檔案之寫入埠在使用它作爲一組目的運算元的最 晚步驟中或者稍後的一組指令提交步驟中被讀取。 12·如申請專利範圍第1項之系統,其中該硬體產生 裝置是用以產生,作爲該處理器硬體製作之部份,在存取 該暫存器檔案之一組指令內,被使用以從該暫存器檔案選 擇一組原始運算元,而提供各欄暫存器檔案之讀取埠的邏 輯。 141 本紙張尺度適用中國國家標準(CNS)A4規格(210x 297公釐) -------------裝--------訂---------線 (請先閱讀背面之注意事項再填寫本頁) 571206 AS B8 CS D8 經濟部智慧財產局員工消費合作社印製 六、申請專利範圍 13.如申請專利範圍第1項之系統,其中該硬體產生 裝置是用以產生,作爲該處理器硬體製作之部份,用以存 取該暫存器檔案之旁通邏輯。 14·如申請專利範圍第13項之系統,其中該硬體產生 裝置是依據該指令運算元以及在該組態規格中之狀態使用 說明’而用以產生利用該組態規格被說明之處理器管線輸 送的互連邏輯。 15. 如申請專利範圍第1項之系統,其中該硬體產生 裝置是用以產生,作爲該處理器硬體製作之部份,用以存 取該暫存器檔案的互連邏輯。 16. 如申請專利範圍第15項之系統,其中該硬體產生 裝置是依據在組態規格中的列表資訊而用以產生該互連邏 輯。 17·如申請專利範圍第15項之系統,其中該硬體產生 裝置是依據指令運算元以及在組態規格中之狀態使用說 明’而用以產生利用該組態規格被說明之處理器管線輸送 之互連邏輯。 18. 如申請專利範圍第1項之系統,其中該硬體產生 裝置是用以產生該處理器硬體製作說明,而使用被組態規 格之預定部份說明之至少一部份處理器邏輯,以支援使用 者定義暫存器檔案之存取。 19. 如申請專利範圍第18項之系統,其中該至少一部 份之處理器邏輯包含位址計算邏輯。 20. 如申請專利範圍第丨9項之系統,其中該位址計算 142 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公釐) -----------^---Ηφ裝---- (請先閱讀背面之注意事項再填寫本頁) 訂----------線— 571206 經濟部智慧財產局員工消費合作社印製 A8 B8 C8 D8 六、申請專利範圍· 邏輯包含位址加法器邏輯。 21.如申請專利範圍第19項之系統,其中該至少一部 份之處理器邏輯包含在預定部份以及使用者定義部份之間 共同使用的資料校準邏輯。 22·如申請專利範圍第19項之系統,其中該至少一部 份之處理器邏輯是一組資料記憶體。 23 ·如申請專利範圍第1項之系統,其中該組態規格 之使用者定義部份包含有條件地寫入使用者定義暫存器檔 案之一組指令說明。 24·如申請專利範圍第1項之系統,其中該軟體產生 •裝置是用以產生,作爲關於使用者定義暫存器檔案之部份 軟體,依據該組態規格而供設計確認及處理器製造之診斷 測試。 25.如申請專利範圍第1項之系統,其中: 該組態規格包含處理器指令之參考及製作語義;並且 該參考語義可被使用以證實該製作語義之設計正確 性。 26·如申請專利範圍第1項之系統,其中: 該處理器指令集說明語言包含指令測試情況;並且 該軟體產生裝置是用以產生測試情況之診斷。 27·如申請專利範圍第1項之系統,其中該軟體產生 裝置是利用當執行一組應用時,將運算元取樣至處理器指 令集說明語言中之指令而用以自動地產生測試向量。 28.如申請專利範圍第1項之系統,其中該軟體產生 143 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公釐) 裝--------訂·-------線 (請先閱讀背面之注意事項再填寫本頁) 571206 AS B8 CS DS 六、申請專利範圍 (請先間讀背面之注意事項再填寫本頁) 裝置是用以產生一組操作系統之至少一部份,作爲關於使 用者定義狀態和暫存器檔案之部份軟體。 29.如申請專利範圍第28項之系統,其中被產生的操 作系統部份包含處理器狀態之儲存以及重新儲存序列。 30·如申請專利範圍第29項之系統,其中該儲存和重 新儲存序列是相對於組件狀態之相互依賴性而產生並且對 於那些相互依賴性是有效的。 31.如申請專利範圍第28項之系統,其中該操作系統 在工作切換時是能夠儲存較少於整體處理器狀態。 3 2.如申請專利範圍第28項之系統,其中: 該組態規格之使用者定義部份定義不在組態規格預定 部份發現的一組軟體資料型式;並且 該編輯器支援軟體資料型式。 33. 如申請專利範圍第1項之系統,其中該軟體產生 裝置是用以產生一組編譯器、一組鏈路器、一組模擬訓練 裝置、以及一組錯誤移除器之至少一組,作爲關於使用者 定義暫存器檔案之部份軟體。 34. 如申請專利範圍第1項之系統,其中: 經濟部智慧財產局員工消費合作社印製 該軟體產生裝置是用以產生一組編輯器,作爲關於使 用者定義暫存器檔案之部份軟體;並且 該編譯器能夠安置程式變數至使用者指定暫存器檔案 中之暫存器。 35. 如申請專利範圍第34項之系統,其中該編輯器進 一步地能夠從記憶體將一組數値載入該使用者定義暫存器 144 本紙張尺度適用中國國家標準(CNS)A4規格(210 x 297公釐) 571206 經濟部智慧財產局員工消費合作社印製 J— Λ8 B8 C8 D8 六、申請專利範圍 檔案中之暫存器,並且將在使用者定義暫存器檔案暫存器 中之一組數値儲存進入記憶體。 36. 如申請專利範圍第34項之系統,其中該編輯器進 一步地能夠從使用者定義暫存器檔案之暫存器中移動一組 數値至使用者定義暫存器檔案之另一暫存器中。 37. 如申請專利範圍第34項之系統,其中該編輯器是 供使用組態規格中的列表資訊以決定由存取使用者定義暫 存器檔案之軟體產生裝置所產生的軟體中之指令局限週 期。 38. 如申請專利範圍第1項之系統,其中該軟體產生 .裝置是用以自動地產生一組監視器以便檢査旁通通道之覆 蓋。 39. —種用以設計可組配處理器之系統,該系統包含: 硬體產生裝置,其依據包含預定部份及使用者定義部 份之一種組態規格,而產生一組處理器硬體製作之說明; 以及 軟體產生裝置,依據該組態規格,而用以產生特定於 該硬體製作之軟體發展工具; 其中該組態規格包含一組敘述,該敘述指明在軟體發 展工具中被使用之指令的列表資訊; 硬體產生裝置,依據該組態規格,而用以產生管線輸 送邏輯、管線輸送局限邏輯以及指令重新安排邏輯的至少 一組說明。 40·如申請專利範圍第39項之系統,其中該列表資訊 145 本紙張尺度適用中國國家標準(CNS)A4規格(2】〇χ 297公釐) -------------裝--------訂---------線 (請先閱讀背面之注意事項再填寫本頁) 571206 A8 B8 C8 D8 六、申請專利範圍. 包含在所給予的步驟中一組指令運算元進入處理器管線輸 送的一組敘述。 41·如申請專利範圍第39項之系統,其中該列表資訊 包含在所給予的步驟中一組指令操作退出處理器管線輸送 的一組敘述。 42.如申請專利範圍第39項之系統,其中: 利用軟體產生裝置所產生的軟體包含一組編輯器,其 使用在組態規格之使用者定義部份中被說明的指令;並且 該編輯器在指令列表時使用該列表資訊以安排在該組 態規格之使用者定義部份中被說明的指令。 43·如申請專利範圍第39項之系統,其中該組態規格 包含需要多數個處理器週期被處理的一組指令說明。 44. 如申請專利範圍第43項之系統,其中: 該組態規格包含一組與處理器目標管線無關的指令語 義說明;並且 該硬體產生裝置是依據從指令語義分離之一組管線說 明而用以產生作爲處理器硬體製作之部份的一組管線。 45. —種用以設計可組配處理器之系統,該系統包含: 硬體產生裝置,其依據包含預定部份及使用者定義部 份之一種組態規格,而產生一組處理器硬體製作之說明: 軟體產生裝置,其依據該組態規格,而用以產生特定 於該硬體製作之軟體發展工具;以及 文件產生裝置,其依據該組態規格而產生該組態規格 所說明之處理器指令集文件。 146 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297 ^F) (請先閱讀背面之注意事項再填寫本頁) 經濟部智慧財產局員工消費合作社印製 Μ-------- ---------Μ — — ^-----:------------ 571206 經濟部智慧財產局員工消費合作社印製 Λ8 B8 C8 __ D8 六、申請專利範圍. 46.如申請專利範圍第45項之系統,其中該文件產生 裝置是使用在組態規格中被定義的指令參考語義以產生處 理器指令集文件。 47·如申請專利範圍第45項之系統,其中: 該組態規格之使用者定義部份包含一組其中被定義的 指令參考語義,及使用者定義指令之一組對照表和一組文 字說明之至少一組的使用者定義規格;以及 該文件產生裝置是供使用該至少一組對照表以及文字 說明以產生該處理器指令集文件。 48. —種用以設計可組配處理器之系統,該系統包含: 硬體產生裝置,其依據包含預定部份及使用者定義部 份之一種組態規格,產生一組處理器硬體製作之說明;以 及 軟體產生裝置,其依據該組態規格,而用以產生特定 於該硬體製作之軟體發展工具; 其中該組態規格包含一處理器例外及一組處理器指令 > 提出該例外時之規格;以及 該硬體產生裝置是用以產生支援該例外而作爲該處理 器硬體製作之部份的硬體。 49. 一種處理器模擬系統,其包含: 硬體模擬裝置,其執行一組可展延處理器之硬體說 明; 軟體模擬裝置,其執行一組可展延處理器之軟體參考 模式:以及 147 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公釐) ------------—裝--------訂---------線 (請先閱讀背面之注意事項再填寫本頁) 571206 AS B8 C8 DSt、申請專利範圍. 相互模擬裝置,其操作該硬體模擬裝置以及該軟體模 擬裝置並且比較其模擬結果以便在該可展延處理器之硬體 說明及該可展延處理器之軟體參考模式之間建立對應性。 (請先間讀背面之;i意事項再填寫本頁) ▼裝---- 訂.·--------線丨| 經濟部智慧財產局員工消費合作社印製 148 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公釐)
TW090103671A 2000-02-17 2001-05-11 Automated processor generation system for designing a configurable processor and method for the same TW571206B (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US09/506,502 US7036106B1 (en) 2000-02-17 2000-02-17 Automated processor generation system for designing a configurable processor and method for the same

Publications (1)

Publication Number Publication Date
TW571206B true TW571206B (en) 2004-01-11

Family

ID=24014856

Family Applications (1)

Application Number Title Priority Date Filing Date
TW090103671A TW571206B (en) 2000-02-17 2001-05-11 Automated processor generation system for designing a configurable processor and method for the same

Country Status (8)

Country Link
US (4) US7036106B1 (zh)
JP (1) JP4619606B2 (zh)
KR (1) KR100589744B1 (zh)
CN (1) CN1288585C (zh)
AU (1) AU2001238403A1 (zh)
GB (1) GB2376546B (zh)
TW (1) TW571206B (zh)
WO (1) WO2001061576A2 (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI381309B (en) * 2006-11-21 2013-01-01 Nec Corp Instruction operation code generation system
TWI406148B (zh) * 2008-11-14 2013-08-21 Synopsys Inc 提供在多取樣率系統摺疊中的展開演算法之方法、非暫時之機器可讀媒體及資料處理系統
TWI481992B (zh) * 2011-03-25 2015-04-21 Intel Corp 位準移位資料信號的方法與使用該方法的積體電路及系統
TWI505636B (zh) * 2012-04-10 2015-10-21 Univ Lunghwa Sci & Technology 具有最佳多重取樣率之有限脈衝濾波器及其製造方法
TWI507990B (zh) * 2011-01-24 2015-11-11 Nat Univ Tsing Hua 多核心指令集模擬之高平行化同步方法

Families Citing this family (109)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1378665A (zh) 1999-06-10 2002-11-06 Pact信息技术有限公司 编程概念
WO2001069411A2 (en) * 2000-03-10 2001-09-20 Arc International Plc Memory interface and method of interfacing between functional entities
FR2811093A1 (fr) * 2000-06-30 2002-01-04 St Microelectronics Sa Dispositif et procede d'evaluation d'algorithmes
DE10034869A1 (de) * 2000-07-18 2002-02-07 Siemens Ag Verfahren zum automatischen Gewinnen einer funktionsfähigen Reihenfolge von Prozessen und Werkzeug hierzu
US8058899B2 (en) 2000-10-06 2011-11-15 Martin Vorbach Logic cell array and bus system
GB0028079D0 (en) * 2000-11-17 2001-01-03 Imperial College System and method
US9552047B2 (en) 2001-03-05 2017-01-24 Pact Xpp Technologies Ag Multiprocessor having runtime adjustable clock and clock dependent power supply
US9436631B2 (en) 2001-03-05 2016-09-06 Pact Xpp Technologies Ag Chip including memory element storing higher level memory data on a page by page basis
US9250908B2 (en) 2001-03-05 2016-02-02 Pact Xpp Technologies Ag Multi-processor bus and cache interconnection system
US9411532B2 (en) 2001-09-07 2016-08-09 Pact Xpp Technologies Ag Methods and systems for transferring data between a processing device and external devices
US10031733B2 (en) 2001-06-20 2018-07-24 Scientia Sol Mentis Ag Method for processing data
US6941548B2 (en) 2001-10-16 2005-09-06 Tensilica, Inc. Automatic instruction set architecture generation
DE10305584A1 (de) * 2002-02-04 2003-08-07 Arthrex Inc Knotenschieber und Fadengreifer
DE10205523A1 (de) * 2002-02-08 2003-08-28 Systemonic Ag Verfahren zum Bereitstellen einer Entwurfs-, Test- und Entwicklungsumgebung sowie ein System zur Ausführung des Verfahrens
US9170812B2 (en) 2002-03-21 2015-10-27 Pact Xpp Technologies Ag Data processing system having integrated pipelined array data processor
JP2003316838A (ja) * 2002-04-19 2003-11-07 Nec Electronics Corp システムlsiの設計方法及びこれを記憶した記録媒体
JP4202673B2 (ja) * 2002-04-26 2008-12-24 株式会社東芝 システムlsi開発環境生成方法及びそのプログラム
US7376812B1 (en) 2002-05-13 2008-05-20 Tensilica, Inc. Vector co-processor for configurable and extensible processor architecture
US7346881B2 (en) 2002-05-13 2008-03-18 Tensilica, Inc. Method and apparatus for adding advanced instructions in an extensible processor architecture
US7937559B1 (en) 2002-05-13 2011-05-03 Tensilica, Inc. System and method for generating a configurable processor supporting a user-defined plurality of instruction sizes
GB0215033D0 (en) * 2002-06-28 2002-08-07 Critical Blue Ltd Instruction set translation method
GB0215034D0 (en) * 2002-06-28 2002-08-07 Critical Blue Ltd Architecture generation method
FR2843214B1 (fr) * 2002-07-30 2008-07-04 Bull Sa Procede de verification fonctionnelle d'un modele de circuit integre pour constituer une plate-forme de verification, equipement emulateur et plate-forme de verification.
EP1537486A1 (de) 2002-09-06 2005-06-08 PACT XPP Technologies AG Rekonfigurierbare sequenzerstruktur
US7228531B1 (en) * 2003-02-03 2007-06-05 Altera Corporation Methods and apparatus for optimizing a processor core on a programmable chip
US7305391B2 (en) * 2003-02-07 2007-12-04 Safenet, Inc. System and method for determining the start of a match of a regular expression
US7194705B1 (en) * 2003-03-14 2007-03-20 Xilinx, Inc. Simulation of integrated circuitry within a high-level modeling system using hardware description language circuit descriptions
ATE409904T1 (de) * 2003-04-09 2008-10-15 Jaluna Sa Betriebssysteme
US8612992B2 (en) * 2003-04-09 2013-12-17 Jaluna Sa Operating systems
EP1503286B1 (en) * 2003-07-30 2014-09-03 Jaluna SA Multiple operating system networking
KR20070005917A (ko) * 2003-09-30 2007-01-10 쟈루나 에스에이 운영체제
US7290174B1 (en) * 2003-12-03 2007-10-30 Altera Corporation Methods and apparatus for generating test instruction sequences
US7770147B1 (en) * 2004-03-08 2010-08-03 Adaptec, Inc. Automatic generators for verilog programming
US20050216900A1 (en) * 2004-03-29 2005-09-29 Xiaohua Shi Instruction scheduling
US7398492B2 (en) 2004-06-03 2008-07-08 Lsi Corporation Rules and directives for validating correct data used in the design of semiconductor products
US7404156B2 (en) * 2004-06-03 2008-07-22 Lsi Corporation Language and templates for use in the design of semiconductor products
US7334201B1 (en) * 2004-07-02 2008-02-19 Tensilica, Inc. Method and apparatus to measure hardware cost of adding complex instruction extensions to a processor
US7324106B1 (en) * 2004-07-27 2008-01-29 Nvidia Corporation Translation of register-combiner state into shader microcode
US7389490B2 (en) * 2004-07-29 2008-06-17 International Business Machines Corporation Method, system and program product for providing a configuration specification language supporting selective presentation of configuration entities
US7386825B2 (en) 2004-07-29 2008-06-10 International Business Machines Corporation Method, system and program product supporting presentation of a simulated or hardware system including configuration entities
EP1806847B1 (en) * 2004-10-28 2010-02-17 IP Flex Inc. Data processing device having reconfigurable logic circuit
CN100389419C (zh) * 2004-12-11 2008-05-21 鸿富锦精密工业(深圳)有限公司 系统设定档案储存系统及方法
US7664928B1 (en) * 2005-01-19 2010-02-16 Tensilica, Inc. Method and apparatus for providing user-defined interfaces for a configurable processor
US7712081B2 (en) * 2005-01-19 2010-05-04 International Business Machines Corporation Using code motion and write and read delays to increase the probability of bug detection in concurrent systems
US7386814B1 (en) * 2005-02-10 2008-06-10 Xilinx, Inc. Translation of high-level circuit design blocks into hardware description language
JP4342464B2 (ja) * 2005-03-29 2009-10-14 富士通マイクロエレクトロニクス株式会社 マイクロコントローラ
JP2009505171A (ja) * 2005-06-27 2009-02-05 イコア コーポレイション ステートフルなトランザクション指向のシステムを指定する方法、及び半導体デバイスの構造的に構成可能なイン・メモリ処理へ柔軟にマッピングする装置
DE102005041312A1 (de) * 2005-08-31 2007-03-15 Advanced Micro Devices, Inc., Sunnyvale Speicherzugriff auf virtuelles Targetgerät
US7523434B1 (en) * 2005-09-23 2009-04-21 Xilinx, Inc. Interfacing with a dynamically configurable arithmetic unit
US20070074078A1 (en) * 2005-09-23 2007-03-29 Potts Matthew P Test replication through revision control linking
US7478356B1 (en) * 2005-09-30 2009-01-13 Xilinx, Inc. Timing driven logic block configuration
US7366998B1 (en) * 2005-11-08 2008-04-29 Xilinx, Inc. Efficient communication of data between blocks in a high level modeling system
JP2009524134A (ja) * 2006-01-18 2009-06-25 ペーアーツェーテー イクスペーペー テクノロジーズ アクチエンゲゼルシャフト ハードウェア定義方法
US7757224B2 (en) 2006-02-02 2010-07-13 Microsoft Corporation Software support for dynamically extensible processors
JP2007272797A (ja) * 2006-03-31 2007-10-18 Toshiba Corp パイプライン高位合成システム及び方法
US7827517B1 (en) * 2006-05-19 2010-11-02 Altera Corporation Automated register definition, builder and integration framework
JP4707191B2 (ja) * 2006-09-26 2011-06-22 富士通株式会社 検証支援プログラム、該プログラムを記録した記録媒体、検証支援装置、および検証支援方法
US7529909B2 (en) * 2006-12-28 2009-05-05 Microsoft Corporation Security verified reconfiguration of execution datapath in extensible microcomputer
US7971132B2 (en) * 2007-01-05 2011-06-28 Dialogic Corporation Universal multimedia engine and method for producing the same
JP2008176453A (ja) * 2007-01-17 2008-07-31 Nec Electronics Corp シミュレーション装置
US8726241B1 (en) * 2007-06-06 2014-05-13 Rockwell Collins, Inc. Method and system for the development of high-assurance computing elements
US7873934B1 (en) 2007-11-23 2011-01-18 Altera Corporation Method and apparatus for implementing carry chains on field programmable gate array devices
US7913203B1 (en) 2007-11-23 2011-03-22 Altera Corporation Method and apparatus for designing a system on multiple field programmable gate array device types
US8176406B2 (en) * 2008-03-19 2012-05-08 International Business Machines Corporation Hard error detection
US7974967B2 (en) * 2008-04-15 2011-07-05 Sap Ag Hybrid database system using runtime reconfigurable hardware
US8429472B2 (en) * 2008-08-20 2013-04-23 National University Corporation Kyushu University Institute of Technology Generating device, generating method, and program
US8843862B2 (en) * 2008-12-16 2014-09-23 Synopsys, Inc. Method and apparatus for creating and changing logic representations in a logic design using arithmetic flexibility of numeric formats for data
US8127262B1 (en) * 2008-12-18 2012-02-28 Xilinx, Inc. Communicating state data between stages of pipelined packet processor
KR101553652B1 (ko) * 2009-02-18 2015-09-16 삼성전자 주식회사 이종 프로세서에 대한 명령어 컴파일링 장치 및 방법
EP2473918B1 (en) * 2009-09-04 2019-05-08 Intel Corporation Method for generating a set of instruction compaction schemes, method for compacting a program according to the generated set, and programmable processor capable of executing a program thus compacted
US8156459B1 (en) * 2009-11-10 2012-04-10 Xilinx, Inc. Detecting differences between high level block diagram models
US8548798B2 (en) * 2010-02-26 2013-10-01 International Business Machines Corporation Representations for graphical user interfaces of operators, data types, and data values in a plurality of natural languages
US8972953B2 (en) * 2010-04-16 2015-03-03 Salesforce.Com, Inc. Methods and systems for internally debugging code in an on-demand service environment
US8839214B2 (en) * 2010-06-30 2014-09-16 Microsoft Corporation Indexable type transformations
US8358653B1 (en) * 2010-08-17 2013-01-22 Xilinx, Inc. Generating a pipeline of a packet processor from a parsing tree
US8385340B1 (en) * 2010-08-17 2013-02-26 Xilinx, Inc. Pipeline of a packet processor programmed to concurrently perform operations
JP2012099035A (ja) * 2010-11-05 2012-05-24 Fujitsu Ltd プロセッサの動作検証方法、プロセッサの動作検証装置、及びプロセッサの動作検証プログラム
CN102567149B (zh) * 2010-12-09 2016-03-23 上海华虹集成电路有限责任公司 Soc系统验证方法
US8392866B2 (en) * 2010-12-20 2013-03-05 International Business Machines Corporation Task-based multi-process design synthesis with notification of transform signatures
US8341565B2 (en) 2010-12-20 2012-12-25 International Business Machines Corporation Task-based multi-process design synthesis with reproducible transforms
US8407652B2 (en) 2010-12-20 2013-03-26 International Business Machines Corporation Task-based multi-process design synthesis
US8707266B2 (en) * 2011-03-21 2014-04-22 Cisco Technology, Inc. Command line interface robustness testing
CN102521011B (zh) * 2011-11-18 2014-08-06 华为技术有限公司 一种模拟器的生成方法及装置
CN103543983B (zh) * 2012-07-11 2016-08-24 世意法(北京)半导体研发有限责任公司 用于提高平衡吞吐量数据路径架构上的fir操作性能的新颖数据访问方法
GB2508233A (en) 2012-11-27 2014-05-28 Ibm Verifying logic design of a processor with an instruction pipeline by comparing the output from first and second instances of the design
US9696998B2 (en) * 2013-08-29 2017-07-04 Advanced Micro Devices, Inc. Programmable substitutions for microcode
US9811335B1 (en) 2013-10-14 2017-11-07 Quicklogic Corporation Assigning operational codes to lists of values of control signals selected from a processor design based on end-user software
US9336072B2 (en) * 2014-02-07 2016-05-10 Ralph Moore Event group extensions, systems, and methods
US9660650B1 (en) * 2014-03-13 2017-05-23 Altera Corporation Integrated circuits with improved register circuitry
US9268597B2 (en) * 2014-04-01 2016-02-23 Google Inc. Incremental parallel processing of data
JP2017525272A (ja) * 2014-07-07 2017-08-31 トムソン ライセンシングThomson Licensing メタデータに従ったビデオコンテンツの拡張
CN105279062A (zh) * 2014-07-24 2016-01-27 上海华虹集成电路有限责任公司 调整随机权重的方法
US9250900B1 (en) 2014-10-01 2016-02-02 Cadence Design Systems, Inc. Method, system, and computer program product for implementing a microprocessor with a customizable register file bypass network
US10528443B2 (en) * 2015-01-30 2020-01-07 Samsung Electronics Co., Ltd. Validation of multiprocessor hardware component
US9507891B1 (en) 2015-05-29 2016-11-29 International Business Machines Corporation Automating a microarchitecture design exploration environment
US10642617B2 (en) * 2015-12-08 2020-05-05 Via Alliance Semiconductor Co., Ltd. Processor with an expandable instruction set architecture for dynamically configuring execution resources
US9542290B1 (en) 2016-01-29 2017-01-10 International Business Machines Corporation Replicating test case data into a cache with non-naturally aligned data boundaries
CN105912264A (zh) * 2016-04-01 2016-08-31 浪潮电子信息产业股份有限公司 一种升级硬盘扩展器的方法及系统、一种硬盘扩展器
US10169180B2 (en) 2016-05-11 2019-01-01 International Business Machines Corporation Replicating test code and test data into a cache with non-naturally aligned data boundaries
US10055320B2 (en) 2016-07-12 2018-08-21 International Business Machines Corporation Replicating test case data into a cache and cache inhibited memory
US10223225B2 (en) 2016-11-07 2019-03-05 International Business Machines Corporation Testing speculative instruction execution with test cases placed in memory segments with non-naturally aligned data boundaries
US10261878B2 (en) 2017-03-14 2019-04-16 International Business Machines Corporation Stress testing a processor memory with a link stack
CN108920232B (zh) * 2018-06-20 2021-06-22 维沃移动通信有限公司 一种目标对象的处理方法及终端设备
CN109101239B (zh) * 2018-08-30 2021-09-14 杭州电子科技大学 一种在线Verilog代码自动判决系统的标准答案生成方法
CN111814093A (zh) * 2019-04-12 2020-10-23 杭州中天微系统有限公司 一种乘累加指令的处理方法和处理装置
CN111523283B (zh) * 2020-04-16 2023-05-26 北京百度网讯科技有限公司 一种验证处理器的方法、装置、电子设备及存储介质
US11662988B2 (en) * 2020-09-29 2023-05-30 Shenzhen GOODIX Technology Co., Ltd. Compiler for RISC processor having specialized registers
TWI783310B (zh) * 2020-11-26 2022-11-11 華邦電子股份有限公司 計數方法以及計數裝置
CN113392603B (zh) * 2021-08-16 2022-02-18 北京芯愿景软件技术股份有限公司 门级电路的rtl代码生成方法、装置和电子设备

Family Cites Families (45)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5287511A (en) * 1988-07-11 1994-02-15 Star Semiconductor Corporation Architectures and methods for dividing processing tasks into tasks for a programmable real time signal processor and tasks for a decision making microprocessor interfacing therewith
US5867399A (en) 1990-04-06 1999-02-02 Lsi Logic Corporation System and method for creating and validating structural description of electronic system from higher-level and behavior-oriented description
US5623418A (en) 1990-04-06 1997-04-22 Lsi Logic Corporation System and method for creating and validating structural description of electronic system
US5555201A (en) 1990-04-06 1996-09-10 Lsi Logic Corporation Method and system for creating and validating low level description of electronic design from higher level, behavior-oriented description, including interactive system for hierarchical display of control and dataflow information
US5572437A (en) 1990-04-06 1996-11-05 Lsi Logic Corporation Method and system for creating and verifying structural logic model of electronic design from behavioral description, including generation of logic and timing models
US5544067A (en) 1990-04-06 1996-08-06 Lsi Logic Corporation Method and system for creating, deriving and validating structural description of electronic system from higher level, behavior-oriented description, including interactive schematic design and simulation
US5613098A (en) 1991-03-07 1997-03-18 Digital Equipment Corporation Testing and debugging new Y architecture code on existing X architecture system by using an environment manager to switch between direct X code execution and simulated Y code execution
US5361373A (en) 1992-12-11 1994-11-01 Gilson Kent L Integrated circuit computing device comprising a dynamically configurable gate array having a microprocessor and reconfigurable instruction execution means and method therefor
US5748979A (en) 1995-04-05 1998-05-05 Xilinx Inc Reprogrammable instruction set accelerator using a plurality of programmable execution units and an instruction page table
US5918035A (en) 1995-05-15 1999-06-29 Imec Vzw Method for processor modeling in code generation and instruction set simulation
EP0772140B1 (en) 1995-10-23 2004-01-07 Interuniversitair Micro-Elektronica Centrum Vzw A design environment and a design method for hardware/software co-design
US5696956A (en) 1995-11-08 1997-12-09 Digital Equipment Corporation Dynamically programmable reduced instruction set computer with programmable processor loading on program number field and program number register contents
US6035123A (en) 1995-11-08 2000-03-07 Digital Equipment Corporation Determining hardware complexity of software operations
US5819064A (en) 1995-11-08 1998-10-06 President And Fellows Of Harvard College Hardware extraction technique for programmable reduced instruction set computers
US5887169A (en) 1996-03-15 1999-03-23 Compaq Computer Corporation Method and apparatus for providing dynamic entry points into a software layer
JP2869379B2 (ja) * 1996-03-15 1999-03-10 三菱電機株式会社 プロセッサ合成システム及びプロセッサ合成方法
US5857106A (en) 1996-05-31 1999-01-05 Hewlett-Packard Company Runtime processor detection and installation of highly tuned processor specific routines
US5748875A (en) 1996-06-12 1998-05-05 Simpod, Inc. Digital logic simulation/emulation system
US6031992A (en) 1996-07-05 2000-02-29 Transmeta Corporation Combining hardware and software to provide an improved microprocessor
US5693956A (en) * 1996-07-29 1997-12-02 Motorola Inverted oleds on hard plastic substrate
US5832205A (en) 1996-08-20 1998-11-03 Transmeta Corporation Memory controller for a microprocessor for detecting a failure of speculation on the physical nature of a component being addressed
US5889990A (en) 1996-11-05 1999-03-30 Sun Microsystems, Inc. Information appliance software architecture with replaceable service module providing abstraction function between system library and platform specific OS
US6006022A (en) 1996-11-15 1999-12-21 Microsystem Synthesis, Inc. Cross-linked development and deployment apparatus and method
US6028996A (en) 1997-03-18 2000-02-22 Ati Technologies, Inc. Method and apparatus for virtualizing system operation
US6075938A (en) 1997-06-10 2000-06-13 The Board Of Trustees Of The Leland Stanford Junior University Virtual machine monitors for scalable multiprocessors
US6058466A (en) * 1997-06-24 2000-05-02 Sun Microsystems, Inc. System for allocation of execution resources amongst multiple executing processes
US6321323B1 (en) 1997-06-27 2001-11-20 Sun Microsystems, Inc. System and method for executing platform-independent code on a co-processor
US5995736A (en) 1997-07-24 1999-11-30 Ati Technologies, Inc. Method and system for automatically modelling registers for integrated circuit design
US6078736A (en) 1997-08-28 2000-06-20 Xilinx, Inc. Method of designing FPGAs for dynamically reconfigurable computing
US6269409B1 (en) 1997-09-02 2001-07-31 Lsi Logic Corporation Method and apparatus for concurrent execution of operating systems
US5999730A (en) 1997-10-27 1999-12-07 Phoenix Technologies Limited Generation of firmware code using a graphic representation
US6230307B1 (en) 1998-01-26 2001-05-08 Xilinx, Inc. System and method for programming the hardware of field programmable gate arrays (FPGAs) and related reconfiguration resources as if they were software by creating hardware objects
US6052524A (en) 1998-05-14 2000-04-18 Software Development Systems, Inc. System and method for simulation of integrated hardware and software components
US6496847B1 (en) 1998-05-15 2002-12-17 Vmware, Inc. System and method for virtualizing computer systems
US6275893B1 (en) 1998-09-14 2001-08-14 Compaq Computer Corporation Method and apparatus for providing seamless hooking and intercepting of selected kernel and HAL exported entry points in an operating system
EP0992916A1 (en) * 1998-10-06 2000-04-12 Texas Instruments Inc. Digital signal processor
US6216216B1 (en) 1998-10-07 2001-04-10 Compaq Computer Corporation Method and apparatus for providing processor partitioning on a multiprocessor machine
US6282633B1 (en) 1998-11-13 2001-08-28 Tensilica, Inc. High data density RISC processor
US6477683B1 (en) 1999-02-05 2002-11-05 Tensilica, Inc. Automated processor generation system for designing a configurable processor and method for the same
US6477697B1 (en) * 1999-02-05 2002-11-05 Tensilica, Inc. Adding complex instruction extensions defined in a standardized language to a microprocessor design to produce a configurable definition of a target instruction set, and hdl description of circuitry necessary to implement the instruction set, and development and verification tools for the instruction set
US6295571B1 (en) 1999-03-19 2001-09-25 Times N Systems, Inc. Shared memory apparatus and method for multiprocessor systems
US6385757B1 (en) * 1999-08-20 2002-05-07 Hewlett-Packard Company Auto design of VLIW processors
US6640238B1 (en) * 1999-08-31 2003-10-28 Accenture Llp Activity component in a presentation services patterns environment
US6415379B1 (en) 1999-10-13 2002-07-02 Transmeta Corporation Method and apparatus for maintaining context while executing translated instructions
US6615167B1 (en) 2000-01-31 2003-09-02 International Business Machines Corporation Processor-independent system-on-chip verification for embedded processor systems

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI381309B (en) * 2006-11-21 2013-01-01 Nec Corp Instruction operation code generation system
US8935512B2 (en) 2006-11-21 2015-01-13 Nec Corporation Instruction operation code generation system
TWI406148B (zh) * 2008-11-14 2013-08-21 Synopsys Inc 提供在多取樣率系統摺疊中的展開演算法之方法、非暫時之機器可讀媒體及資料處理系統
TWI507990B (zh) * 2011-01-24 2015-11-11 Nat Univ Tsing Hua 多核心指令集模擬之高平行化同步方法
TWI481992B (zh) * 2011-03-25 2015-04-21 Intel Corp 位準移位資料信號的方法與使用該方法的積體電路及系統
TWI505636B (zh) * 2012-04-10 2015-10-21 Univ Lunghwa Sci & Technology 具有最佳多重取樣率之有限脈衝濾波器及其製造方法

Also Published As

Publication number Publication date
KR20030016226A (ko) 2003-02-26
JP2004502990A (ja) 2004-01-29
CN1288585C (zh) 2006-12-06
WO2001061576A2 (en) 2001-08-23
US7036106B1 (en) 2006-04-25
US20090172630A1 (en) 2009-07-02
US20060101369A1 (en) 2006-05-11
AU2001238403A1 (en) 2001-08-27
US20090177876A1 (en) 2009-07-09
GB2376546A (en) 2002-12-18
WO2001061576A3 (en) 2003-03-27
KR100589744B1 (ko) 2006-06-15
US8161432B2 (en) 2012-04-17
GB0217221D0 (en) 2002-09-04
CN1436335A (zh) 2003-08-13
JP4619606B2 (ja) 2011-01-26
GB2376546B (en) 2004-08-04
US9582278B2 (en) 2017-02-28
US7437700B2 (en) 2008-10-14

Similar Documents

Publication Publication Date Title
TW571206B (en) Automated processor generation system for designing a configurable processor and method for the same
US6477697B1 (en) Adding complex instruction extensions defined in a standardized language to a microprocessor design to produce a configurable definition of a target instruction set, and hdl description of circuitry necessary to implement the instruction set, and development and verification tools for the instruction set
US7168060B2 (en) Method of generating development environment for developing system LSI and medium which stores program therefor using VLIW designating description
US8601413B2 (en) High-level synthesis device, high-level synthesis method, high-level synthesis program, and integrated circuit design method
Qin et al. Architecture Description Languages for Retargetable Compilation.
Gyllenhaal A machine description language for compilation
Leupers et al. Instruction set extraction from programmable structures
Moreno et al. Simulation/evaluation environment for a VLIW processor architecture
Karuri et al. Design and implementation of a modular and portable IEEE 754 compliant floating-point unit
Dalinger Formal verification of a processor with memory management units
Borriello et al. Special or general-purpose hardware for Prolog: a comparison
Friedman A characterization of Prolog execution
Sutarwala et al. Flexible modeling environment for embedded systems design
Goossens A Multicore RISC-V Processor with Multihart Cores
Himmelbauer et al. The Vienna Architecture Description Language
Yanagisawa et al. ISA based system design language in HW/SW co-design environment
Boyce Topological reorganization as an aid to program simplification
Zhang et al. Trilobite: A Natural Modeling Framework for Processor Design Automation System
Mountjoy et al. Modular operational semantic specification of transport triggered architectures
Manickavasagam " a+ b" arithmetic-Theory and implementation
Järvelä Vector operation support for transport triggered architectures
Dahra Disassembly and Parsing Support for Retargetable Tools Using Sim-nML
US8495539B1 (en) Scheduling processes in simulation of a circuit design
Moreno et al. ForestaPC (Scalable-VLIW) User Instruction Set Architecture
Milner Pipeline descriptions for retargetable compilers

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