TW589544B - Method and apparatus for processor pipeline segmentation and re-assembly - Google Patents

Method and apparatus for processor pipeline segmentation and re-assembly Download PDF

Info

Publication number
TW589544B
TW589544B TW089109198A TW89109198A TW589544B TW 589544 B TW589544 B TW 589544B TW 089109198 A TW089109198 A TW 089109198A TW 89109198 A TW89109198 A TW 89109198A TW 589544 B TW589544 B TW 589544B
Authority
TW
Taiwan
Prior art keywords
pipeline
stage
instruction
phase
processor
Prior art date
Application number
TW089109198A
Other languages
English (en)
Inventor
James Robert Howard Hakewill
John Sanders
Original Assignee
Arc Internat U S Holdings 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
Priority claimed from US09/418,663 external-priority patent/US6862563B1/en
Application filed by Arc Internat U S Holdings Inc filed Critical Arc Internat U S Holdings Inc
Application granted granted Critical
Publication of TW589544B publication Critical patent/TW589544B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3867Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
    • 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/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3838Dependency mechanisms, e.g. register scoreboarding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3854Instruction completion, e.g. retiring, committing or graduating
    • G06F9/3858Result writeback, i.e. updating the architectural state or memory

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)

Description

玖、發嫌說明: 【發'明所屬之技術領域】 本發明係有關於積體電路設計領域,特別是關於使用 「硬體描述語言(HDL)」而於管線式中央處理單元(CPU) 或是使用者可自訂之微處理器内實作出諸項指令。 【先前技術】 RISC(或稱精簡指令集電腦)處理器於電腦業界係屬眾 知。RISC處理器一般具有比較起非Rise( —般稱為CISC) 處理器來說,採用係屬既經大幅地減少之指令集的基本特 性。通常’ RISC處理器機器指令並非所有均經微型編碼, 而是相反地無須另加解碼而立即執行,因而就以處理速度 來說,可提供顯著得經濟效益。該「流線型」指令處理功 能更可進一步提供處理器設計上的簡易性(單就比敎於非 RI s c裝置而言),因此僅需較少矽材質而降低製作成本。
Rise處理器一般也具有下列特徵⑴載入/儲存記憶體 架構(即僅有load與store指令可接取到記憶體,其餘的指 令需透過處理器的内部暫存器方可運算);(ii)處理器與二 譯器的一體性;以及(i i i)管線處理形式。 管線處理形式係屬一種藉由將處理器 、 1布連异序列分 除成各個區段,當情況允許時以平行方式 工’攻地執行之, 因而得以增加處理器效能的技術。在旅型 π ^ , n ^ … J s線式處理器 裡’/、相關於處理器各種算術運算 、列如 ADD 、 MULTIPLY、DIVIDE等等)的算術單元, 〜节會被加以「區 589544
段」,以便該運算之某特定部分可在任何的時鐘週期裡,執 行於'該單元裡一給定之區段内。第1圖中說明一典型並具 有該種分段式算術單元的處理器架構。因此,這些單元可 在任何給定的時鐘週期裡,對不同的計算結果加以運算。 例如,在第一時鐘週期裡,兩個數A與B被置入該乘法單 元1 0,並經該單元之第一區段12所部分處理。而在第二 時鐘週期裡,當第一區段1 2接收另外兩個新的數值時(如 C和D)而加以處理時,即會將A與B相乘後的部分結果傳 入第二區段1 4。該淨結果為在經初始啟動時段之後,該算 術單元1 0可於每一個時鐘週期裡執行一項乘法運算。 該管線形式之深度可按照結構不同而另加變化。在本 文中,該名詞「深度」係指出現於管線裡離散階段的數目。 一般來說,具有多階段的管線其程式執行可為較快,但是 如果設計人員可明視該等管線效應,則其程式設計或將變 得較為困難。多數的管線式處理器不是具有三個階段(指令 擷取、解碼與執行),就是四個階段(如指令擷取、解碼、 運算元擷取與執行,或是另為指令擷取、解碼/運算元擷 取、執行與寫回),然亦可採行略多或略少的階段形式。 雖然是前述之處理器内運算「區段」化,不過先前技 藝處理器的管線中該等指令一般卻仍極為相近。特別是, 某一階段内的指令通常會立即緊隨於稍候階段裡的指令之 後,其間間隔僅有例如NOP程式碼等等的某一最小空白時 段。此外,當位於稍候階段内的指令經暫止時(如當某一屬 於執行階段的指令正在等待由擷取指令而取得之資訊 4 589544
時),則管線裡稍早與稍後階段亦受暫止。如此,該等 即大部分係以「鎖定步進」方式運作。 在發展管線式處理器的指令集時,必須要考慮許 同的「危險」。例如,所謂的「結構性」或是「資源5 危險會因覆蓋諸項互為搶奪相同資源(如匯流排、暫存 是其他功能單元)的指令而升高,一般的解決方式是利 個或多個管線予以暫止。所謂「資料」管線危險會出 當讀/寫相衝突而或將改變記憶體或是暫存器存取 時。另外「控制」危險一般則是因程式流程分支或類 化而產生。 同時,管線式架構一般會需要内鎖處理以作為對 等危險進行定址之用。例如,考慮到當於前一個管線 之後續一個(η + 1)指令需要用到稍後階段之η指令的 時。對於該項問題的簡易解法是在指令解碼的階段内 運算元計算作業予以延遲一個或是更多的時鐘週期。 該延遲的結杲是,處理器尚給定的指令之執行時間不 決定於管線中環繞在其周圍的各項指令。如此會讓處 式碼的最佳化過程變得複雜,因為通常程式設計者是 於程式碼裡指出發生内鎖的位置。 另可採用「計分板」的方式來再處理器内實作出 功能;按此,某一位元係附接至各個處理器暫存器上 作為暫存器内容的指示器,特別是說明是否(i)該暫存 容業已更新並待命使用,或是(ii)其内容正例如被另一 進行修改中。該計分板亦適用於某些架構上,產生内 管線 多不 自足」 器或 用一 現在 順序 似變 於該 階段 結果 將該 然而 部分 理程 無法 内鎖 ,以 器内 程序 鎖來 5 589544
防止執行該些與該計分板所標明暫存器之内容相關的指 令,'一直到該計分板顯示該暫存器確係正常待命為止。這 項方式亦稱為「硬體式」内鎖處理,因為該内鎖完全是經 由處理器内的硬體而進行計分板檢核來進行。這種内鎖產 生「暫止」’可不讓資料相關之指令執行(因而停住該管 線),一直到暫存器為正常待命為止。 此外,亦可將NOPs(無運算之運算碼)插入至數碼中, 以便如有需要時可延遲適當之管線階段。後項方式亦稱為 「軟體式内鎖處理」,但同時也增加了數碼大小,以及採用 需要内鎖功能指令之程式的複雜性等等缺點。大量使用軟 體式内鎖的設計就其程式碼結構而言也不適於最佳化。 另外一項關於處理器設計上的重要考量為程式分支或 是「跳躍」。所有的處理器均支援某些形式的分支指令。簡 言之,分支是指程式流程遭遇中斷或是替換的情況。其他 例如項式迴圈設定與副程式呼叫指令等等的運算,也是會 以類似的方式將程式流程予以中斷或是代換掉。該名詞「跳 躍延遲時段」經常是用以稱呼後續於某既經解碼之分支或 是跳躍指令管線内之某一個時段。該分支可為具條件方式 (如根據某一或多個參數值為真或偽而定),或是非條件 式。彼亦可具絕對性(如根據某一絕對記憶體位址)或是相 對性(按照一相對位址並且與任何一個特定的記憶體位址 無關)。 分支方式對於管線式系統具有極為深遠的影響。當插 入某一分支之指令並且在處理器指令解碼階段進行解碼 6 589544
時(表示該處理器必須於某一不同位址開始執行作業), 即開 '始擷取指令序列裡的下一個指令字元並且將其插入 管線之内。對該問題的一種解決方法是排除該既經擷取 指令字元,然後暫止或握住進一步的擷取動作,一直到 分支指令確已執行完畢為止,如第2圖所繪示。然而, 種的方法卻會因需求而導致該分支指令必須執行於多個 令週期,其數目通常等於處理器設計上所使用之管線的 度。這個結果會劣化處理器速度以及其效率,因為在該 程裡該處理器是無法執行其他運算的。 此外,也可採行一種既經延遲之分支方式。在該法中 當某一分支指令進入到該解碼階段時,並不需要排除掉 管線,相反地而是對於後續會出現在管線内較早階段的 項指令,一般會是在執行該分支之前先予執行。如此, 該分支指令既經解碼後,該分支即可明顯地受以需要執 所有管線内後續指令之某一數量的指令週期的延遲結果 這種方法比較起如上所述之多重週期分支處理來說,確 可提昇管線的效率,然同時卻也增加了其中各種程式碼 複雜度(以及影響程式設計人員了解該程式之簡易性)。 根據於此,處理器設計人員與程式設計者從而即必 仔細衡量關於相對於非内鎖式結構,使用硬體或是軟體 鎖功能的輕重與取捨。此外,亦需考慮指令集中的分支 令(包含既延或多重週期分支)與該既選内鎖法則之互動 則 該 之 該 這 指 深 過 該 各 當 行 〇 實 的 須 内 指 關 589544
在此所需者,乃為一種經改良之管線内鎖方法,足可 最佳化處理器管線效能,並提供硬體與軟體内鎖功能的之 優點,而同時仍可提供程式設計者額外的編碼彈性。更進 一步,當將更多的管線階段(以及甚至許多個多重階段管線) 加入處理器設計内時,處理器内的經改良之内鎖效能與程 式碼最佳化等優點仍可多面性地予以提高。此外,隨時可 將該等經改良之管線處理器設計藉特定應用方式與可用之 合成工具來予以合成的能力,對於設計人員與程式設計者 都是具有極大的助益。 【發明内容】 本發明可藉提供一種經改良用以執行數位處理器架構 下的諸指令之方法與裝置來滿足前述需求。
本發明的第一個特點,係揭示一款控制處理器中一個 或是多個管線之運算的改良方法。在第一具體實施例裡, 揭示一種管線區段化(π切割π)方法,其中(i)在早先於某既 經暫止階段的其他各階段内的諸指令會予以暫止,以及(ii) 在後續於該經暫止指令的階段内之諸指令亦可允許繼續執 行完畢。如此,即可產生管線内的不連續性或是「切割」。 可將空白時段(或是NOP)插入該管線内後續階段,藉以排 除既經執行之指令出現在經切割階段内而被多次執行之問 題。同樣地,在此也揭示一種方法,可讓於管線内先前階 段中被另外予以暫止之指令,得於稍後經暫止之階段而以 重組(或稱「重組」),因而有效地修補任何切割或是既存 8 589544
之管線不連續性。 本發明的第二項特點,係為揭示一款合成該併同 述跳躍延遲時段方法之積體電路設計的改良方法。在 體實施例中,該方法包含取得關於設計之組態值的使 輸入;根據使用者輸入與既有之函式館來產生自訂式 功能區塊;根據使用者輸入與函式館來決定該設計階 構,並且產生一階層檔案、新的程式館檔案以及製作 (makeHle);執行該製作槽案以產生結構性 HDL與 檔;執行所產生之文稿檔以產生一模擬器製作檔以及 文稿檔;然後根據所產生之設計與合成文稿檔來合成 設計。 本發明的第三項特點,係為揭示一款適用於合成 理器設計並且可實作出前述方法之改良電腦程式。在 範性之具體實施例裡,該電腦程式包含一存放於微電 性儲存裝置内並且經調適作為執行於其中央處理單元 件程式碼表示。該電腦程式更包含一互動式、選單操 圖形使用者介面(GUI),藉此便於使用者加以運用。 本發明的第四項特點,係為揭示一款經改良並用 行前述作為合成有關於該等管線式處理器的邏輯之用 腦程式裝置。在一示範性之具體實施例裡,該系統包 一獨立性微電腦系統,其中具備顯示器、中央處理單 資料儲存裝置以及輸入裝置等。 本發明的第五項特點,係為揭示一款經改良並且 到前述管線切割與重組法則的方法。在一示範性之具 有前 一具 用者 HDL 層架 檔案 文稿 合成 該項 該處 一示 腦磁 的物 作式 以執 的電 含有 元、 利用 體實 589544
施例裡,該處理器包括一具備指令擷取、解碼與執行等階 段之'三階段式管線的精簡指令集(RISC)電腦,該管線係局 部由前述之管線切割/重組模式所控制。文中亦揭示一受限 以及未受限之合成連接閘邏輯項目。 【實施方式】 現參考隨附諸圖,其中各項近似圖號係指整體裡相類 似之部分。 本文中的「處理器」乙詞是指任何積體電路或是其他 足可對至少一個指令字元來執行運算的電子裝置,其中包 括但不受限定,例如像是由本文受指定人所製造之ARC使 用者自訂組態核心的精簡指令集核心(RISC)處理器、中央 處理單元(CPU)以及數位訊號處理器(DSP)。 另外,熟捻本項眾知技藝之'人士應可認知到該「階段」 乙詞在此意指管線式處理器内的各種連續性階段,換言之 階段1係指第一個管線階段,而階段2乃為第二個管線階 段,依此類推。後文中雖以三階段管線而論(如指令擷取、 解碼和執行階段),然應可明瞭本揭之法則與裝置確可廣加 應用於具一種或是多種擁有多於或少於三階段的管線之處 理器架構上。 亦應了解後文中雖以「VHSIC硬體描述語言(VHDL)」 來加以說明,然其他種類的硬體描述語言,例如Verilog®, 也可於此同樣可行地描述本發明之各式具體實施例。此 外,文中雖採用一示範性的Synopsys®合成引擎,如Design 10 589544
Compiler 1 999.05 (DC99),以合成本文内各 例,然其他特別像是由Cadence Design System 之 Buildgates®的合成引擎亦可加以採用( 1076.3-1997,IEEE標準VHDL合成套裝規格 了業界所接受用以標示基於「硬體定義語言」 捻本項眾知技藝之人士預期可實用的合成功能 最後,應知悉後文雖係利用前述合成引擎j 體描述語言,來說明經由其受指定人所合成之 定具體實施例,且該等特定具體實施例係以諸 施加限定,然該等具體實施例仍僅係示範性以 之設計程序。 管線區段作業(「切割」) 本發明架構包括某一般性自由流通管線。 中某階段係屬暫止,則先前階段亦同時會被暫 等包含相同指令的話。然即便是暫止該等先前 另行施加内鎖等機制,讓管線内其後之(即「· 仍可繼續運作確有其優點。這些優點特別是 「暫止」整條管線而言,管線内諸指令可繼續 提供較佳之處理器效能;(Π)可繼續處理位於管 段的旗標設定指令,藉以確保彼等對於可能會 態所影響的跳躍或分支指令,在執行之前該些 設定完畢;並且(iii)可於管線中稍後階段執行 入指令來對記憶體發出請求,不過另一相關於 式具體實施 公司所提供 IEEE std. ,其中詳述 之設計與熟 語言内容。 餐VHSIC硬 邏輯的某特 多不同方式 說明本發明 如果該管線 止,倘若彼 階段,倘未 F行」)階段 包括(i)比起 運作,確可 線内稍後階 受到旗標狀 旗標值即已 一計分板載 該載入指令 11 589544
cv f uO, 4, 結果的指令卻已發生於管線中的先前階段。故必須得以發 出該截入訊號,否則即出現鎖死狀況。 應注意到有關於繼續處理之旗標設定指令,本案申請 人所 共審且標題為「Method and Apparatus for Jump
Delay Slot Control in a Pipelined Processor」之美國專利 申請案内’兹與本案共同申請,其中揭示一種利用或將受 到該等旗標設定指令所影響之後續跳躍/分支指令,來對旗 標設定指令進行内鎖之方法與裝置。 刖述方法之範例,可考慮一個具有三階段管線(擷取、 解碼與執打)之處理器,其中某指令係暫止於階段2,然仍 允許階段3處的指令自該先前階段「切割」而出,並且繼 續其肌行經官線内剩餘的階段。第3圖即以圖繪方式說 明該項原理(假設未施加内鎖)。 現參考第4圖,此為利用本發明管線切割概念來控制 夕重1¾ ί又管線之方法。本方法4〇〇的第一步驟4〇2處,包 括產生含有多個欲執行於該處理器上之指令字元的指令 集。該指令集一般式存放在業界所眾知之例如像是同晶片 (On Chip)私式儲存裝置内(如ram或是記憶體),不 過其他型態的努番 ,^ a u ^ 裝置,如他晶片(〇ff_Chip)記憶體,亦可適 用之。然而,私7 L 1 W , '于、了如下文砰述之修改作業的以便將管線切 割功能納入其益_ 乾圍之内以外,該項產生指令集之作業本身 實係該業界所熟知。 才妾卞, ^驟404處,即依照特別是該程式計數器(pc) 所指定之順序的& t i | ]循序方式,由儲存裝置裡擷取出該指令集 12 589544
(程式)並由該處理器加以執行,而該等經擷取之指令會依 序地'在管線内部同階段上加以處理。應注意到 RISC處理 器之文句結構,僅有載入/儲存指令可接取到程式記憶體空 間,故該處理器中使用了多個暫存器以便實體性地接收與 握持由程式記憶體所擷取得的指令資訊。這種載入/儲存架 構與採用處理器内的暫存器結構於該業界係屬眾知,故於 此不另贅述。
在步驟4 0 6處,諸邏輯區塊偵測到管線内某階段的暫 止狀態,該些區塊併合多項訊號以決定是否出現競爭,通 常是當接取資料值或是其他資源時容易出現。偵得該種狀 況之一例為當由某指令暫存器所讀取之暫存器係經標示為 「計分板」,意思是該處理器必須等待,一直到該暫存器確 係已由新的數值而加以更新為止。另一範例為當暫止週期 由狀態機器所產生,而多重週期運算(如移位與加乘運算) 既經執行時。
在步驟408處,確認管線的N+1階段(其中N =步驟406 處經引致之暫止所位於的階段數)確已存在有效指令。在本 文句結構中,「有效指令」為未因多項理由而經標示成「無 效」之指令(步驟4 1 0),並且確已於先前(第N個)階段内成 功地完成處理(步驟4 1 2)。例如,在關於本案申請人之A R C 核心的具體實施例中,即利用該「p3 iv」訊號(如「階段3 指令有效」)以指明該管線内階段3包含了一項有效指令。 階段3内的指令或因多項原因而不為有效,包括: 1. 當該指令移入階段2(如P2iv = ’0’)則係標示為無 13 效’且當移入階段3時因而繼續為無效;或是 2 · 階段3内的指令已經先前週期之管線切割邏輯標 示為無效,但是並未後續地由某項自階段2移入 階段3的指令加以替換。 應注意到該因步驟410而產生的「STOP」狀況來自於 invalid (無效)=yes的條件,因為切割作業只有當同時於 階段2與階段3内存在有效指令時才會進行。 注意在該例中,指令出現於階段2係於步驟4 1 2處決 定不需即以處理完畢(如上之第2項),而階段3之指令足 可處理完畢’故需要讓階段3的指令得已自管線内離開(或 是移至下一階段),而將階段3標示為無效以便如步驟4 1 4 來填滿該間隔。另外一種方法是將一 NOP或是其他空白指 令插入階段3處,並將階段3標示為有效。如果並未插入 該空白或是該階段係經標示為無效,則先前執行於階段3 的指令,當階段2内的指令無法處理完畢時,就會出現在 下一指令週期又重複執行的現象,而此為吾等不願樂見 者。 另一點值得注意的是,對於相關於「v6」本案申請人 ARC核心之具體實施例的内鎖,該項係詳述於該申請人提 交共審之美國專利申請案,標題為「Method and Apparatus for Jump Control in a Pipeline Processor」(底下並列為參 考),如果出現跳躍指令並且階段3含有一旗標設定指令, 則管線階段2可為暫止。故對於v 6跳躍内鎖來說即需要本 發明之管線切割功能。 14 589544
最後,在步驟41 8處,出現在階段3内(以及具有四個 或是 '更多階段的管線裡後續階段)的有效指令會再下一個 時鐘週期予以執行,而同時將階段2的指令於該階段内仍 維持為暫止。注意在後續的時鐘週期裡,依照引發該項暫 止之暫止/内鎖訊號狀態而定,仍或有可能處理該階段2内 既經暫止之指令。一旦該暫止/内鎖訊號係經關閉,則該階 段内即可於下一個指令週期的前端處,繼續處理該等原經 暫止之指令。 下列自附錄 A取出的示範性程式碼,可與申請人的 ARC核心(衍生自三階段管線型式)配合使用,以實作出前 揭之「切割」功能:
njp3iv <= ip3iv WHEN ien3 = ‘0’ ELSE ‘0, WHEN ien2 = ‘0, AND ien3 = ‘ 1 ’ ELSE ip2iv; p3ivreg; PROCESS(ck, clr)
BEGIN IF clr=4rTHEN ip3iv <=‘0,; ELSIF (ck ‘EVENT AND ck = Ί,)THEN ip3iv <= n_j)3iv; END IF; END PROCESS; 然應知悉除了上述程式碼法則之外,無論用於相同或他種 處理器上,均可作為提供本發明該項管線切割功能之用。 15 589544
a 既經'暫止之管線重組(「重組」) 除了如前文所述管線切割概念之外,本發明亦針 向狀況採行某些機制;當各階段間出現空白時段或 檔,或是該等管線係另加分割之時,即可讓管線中的 階段得以繼續處理或是「重組」於後續階段。該項功 稱為「管線轉移致能」。 關於該概念之乙例,考慮前述三階段管線之實例 中指令係暫止於階段3處,而階段2為空白或是包含 除指令/長型立即字元(茲稱之為未用時段)。利用本發 「重組」功能,可允許階段1藉由讓階段1指令繼續 一直到完畢,而於時鐘邊緣處趕上階段2,此時彼即 到階段2處,並且將新的指令前傳到階段1内。按此 何位於經暫止之階段3與之階段1間的空白時段或是 倶已移除。第5圖即為該項概念圖繪。 現參考第6圖,此為揭示一款利用本發明「重組 術來控制多重階段處理器管線之方法。該方法600的 602處,即決定第一階段(如所示範例之階段2)之指令 性。在管線重組之文句結構中,有效指令僅係定義成 當移入其目前階段内時(本例中為階段2)並未標示為 的指令。如果該指令並非如步驟602所述為有效,則 線轉移致能訊號即按步驟6 1 0而被設定為「真」,下文 此詳加說明。該管線轉移致能訊號會述明自階段1到 2的指令字元移轉控制内容。如果階段3内的指令無 對反 是空 先前 能亦 ,其 一殺 明之 處理 趕上 ,任 間隔 」技 步驟 有效 某項 無效 該管 將對 階段 法處 16 589544 理完畢,則此時會出現管線「重組」作業。階段2的 時段'會被由階段1前進而來的指令所替代,但是階段 的指令仍維持於階段3處。 如果如步驟602處該階段2内的指令為有效,則 驟6 0 4處會決定該有效指令是否可以繼績完成在階段 的作業。如果該有效指令不能處理完畢,並且需於下 期内移出階段2,則該轉移致能訊號即如步驟6 0 6處 定成「偽」,藉此關閉該管線轉移功能。如此可讓有效 決之指令不會被前一階段(階段 1)前傳而來的指令 代。如果該階段2内的有效指令係屬足可處理完畢者 接下來會於步驟608處決定是否有中斷虛擬指令正在 某一未決之指令擷取以結束其處理程序。如是,則該 致能訊號即被設定成「偽」,同樣地藉此避免該階段2 有效指令被取代,因為該有效(但未完畢)指令並不會 一週期内前進到階段3。如果該階段2内的有效指令 於下一週期内處理完畢,並且沒有等待任何未決擷 作,則該轉移致能訊號即會於步驟6 1 0處被設定成「j 而讓階段1的指令前進到階段2,同時階段2的指令 到階段3。 如此,根據前述之邏輯,當該處理器正屬執行中 該管線轉移致能訊號會一直被設定為「真」,除了下情 外:(i)某階段2内的有效指令因某些原因而無法完 理;或是(ii)如果階段2内的某中斷係正等待一未決之 擷取以完成程序。應注意到如果階段2内某一無效指 無效 3内 於步 2内 一週 被設 而未 所取 ,則 等待 轉移 内的 於下 是可 取動 t」, 前進 時, 形以 成處 指令 令係 17 589544
屬握持φ,4士 付γ (特別是因為階段3處的暫止作業),則該轉移致 & Λ號會被設定成「真」,並且允讓階段1内的指令移到階
'^史 2 ° lL $此’階段2内的無效指令即可階段1的有效指令 由所取代。 本發明之「重組」或是管線轉移致能訊號(enl),在一 I體實施例中可藉如下之範例性程式碼所產生(擷取自附 錄 II): ienl <= 6〇, WHEN en =‘0,
OR (p2int = Ί ’ AND ien2 = ‘0,)
OR (ip2iv = T AND ien2 = ‘0,) ELSE T;
亦應注意到本發明之管線切割與重組方法,可併同與其他 管線控制與内鎖方法配用之,特別像是揭示於本案申請人 所提共審且標題為「Method and Apparatus for Jump Control in a Pipelined Processor」之美國專利申請案内, 以及揭示於本案申請人所提共審且標題為「Method and Apparatus for Jump Delay Slot Control in a Pipelined Processor」之内的兩者美國專利申請案,茲與本案共同申 請,且依其整體性併同為本參考文獻。此外,各式的暫存 器編碼法則,如「軟式」暫存器編碼,則是描述於本申請 人所提共審且標題為「Method and Apparatus f〇r Loose R e g i s t e r E n - c o d i n g w i t h i n a P i p e 1 i n e d P r o c e s s o r」之美國 專利申請案,亦與本案共同申請,且依其整體性併同為本 參考文獻,而該等法則可與之管線切割與/或重組本發明方 法併同應用。 18 589544
合成方法 現參考第7圖,此為揭示一合成併同有如前述跳躍管 線内鎖功能的邏輯之方法7 0 0。該項可合成具有使用者自 訂式(即「軟式」)指令集的積體電路邏輯之通用法則,係 敘述於本案申請人所提共審編號為 09/418,663,標題為 「Method and Apparatus for Managing the Configuration and Functionality of a Semiconductor Design」並中請於 1 9 99年10月14曰之美國專利申請案内,茲按其整體併同 為參考文獻。 下列敘述雖係以演算法或是執行於微電腦或其他類似 處理裝置之電腦程式而加以說明,然應知悉亦可採行其他 硬體環境(包括迷你級電腦、工作站、網路電腦、「超級電 腦」與大型主機)以實作該項方法。此外,如有必要,該電 腦程式之一部或多部亦可為嵌入於硬體或是相對於軟體的 韌體之内,而該等替代性具體實施例於電腦業界係屬廣為 眾知。 起先,在步驟702處獲取到使用者有關於其設計組態 的輸入。特別是,使用者選定所欲設計之模組或功能,以 及,如有需要,增加、刪除或產生關於該設計之諸項指令。 例如,在訊號處理應用上,CPU中包含有單一之「乘法且 累加(MAC)」指令一般會是較為有利。在本發明裡,該合 成設計之指令集會被加以修飾,以便於其中併入前述之各 項跳躍管線内鎖(或另外一個可比較性内鎖/控制架構)。對 19 於各項VHDL檔案的技術館所在位置亦係由使用者於步驟 7〇2處所定義。本發明裡其技術館檔案内存放著所有關於 合成程序裡所需要之細胞的資訊,包括像是如邏輯函式、 輪入/輪出計時,以及任何的相關條件。在本發明裡,各個 使用者可;t義出其自有之館名與位置以擴增其彈性。 接著,在步驟703處可根據使用者輸入與在步驟7〇2 處所標定之既存函式館,來產生自訂之肌功能區塊。 而在步驟704處’可根據使用者輸人與前述之函式館 檔案來決定設計階[階層檔案、新的函式館樓案與製作 檔案均根據該設計階層而依序產生。在此所使狀名詞「製 作檔案」’係按照UNIX内所慣用的製作檔案(makeme)或 是如電腦程式設計業界所熟檢眾知電腦系統裡之類似功 此。該製作檀案功能可讓其他長駐於電腦系統内的程式或 演算法依照特定順序予以執行…卜,彼更可標示資料擋 案或是其他為讓某特定程式正常地進行運算而所必要資訊 的名稱或位置。然巾,應注意到在此揭示之本發明可利用 其他非屬「製作檔案」型態的樓宰力 子田茶木構來產生所欲之功能。 、在亡t明t T製作檔案產生程序的具體實施例裡,透 過顯示器&示字元而以互動方式 ,^ 動方式5旬問使用者輸入關於所欲 之設計的資訊’例如像是「建構 」的型態(如整體裝置或系 統㈣)、…憶體系統資料匯流排的寬度、不同的延伸 型式'快取型式/大小等等。然而 而與本發明相符的組態或是輸入資使用許多其他種類 貝吼來源。 在步驟706處,執行由該步 郑7〇4所產生出來的製作 20 檔案,以產生一結構性HDL。該結構性HDL將各個離散 的功'能區塊密合於本設計之内,以便製作完整的設計。 接著,在步驟7 0 8處,執行由該步驟7 0 6所產生出來 的文稿檔案,以產生模擬器所用之製作檔案。同樣在步驟 708處也會執行用以產生合成文稿檔案的文稿檔。 此時在程式中,即決定是否需合成或模擬該項設計(步 驟7 1 0)。如果選擇模擬,則使用者可在步驟7 1 2處利用所 產生的設計與模擬製作檔案(以及使用者程式),來執行該 模擬功能。另一方面,如果選擇合成,則使用者可在步驟 7 1 4處利用所產生的合成文稿檔與所產生的設計來執行該 合成功能。當該合成/模擬文稿檔執行完畢之後,可於步驟 7 1 6處評估該項設計之可行性。例如,合成引擎可產生某 設計之特定實體配置圖而雖可符合整體設計程序之效能標 準,但是卻無法配合單一矽晶片(die)的大小要求。此時, 設計者需修改控制檔案、函式館或其他足可影響該die大 小的各項元素。然後再利用該最終的設計資訊集合以重新 執行該合成文稿檔。 如果所產生出來的設計係屬可接受,則即完成該設計 程序。但如果該項設計係屬不可接受,則重新執行由步驟 7 02開始的程序步驟,直到該項設計屬可接受為止。按此, 該方法700為具重複性。 現參考第8a-8b圖,其中說明一利用如第7圖之前述 Synopsys Design Compiler及其法則所合成之示範性連接 閘邏輯(包括如附錄I的VHDL内所參考到的「p3iv」訊號) 21 具體實施例。注意在用以產生如第8 a圖之邏輯的合成程序 過程'中係標定以LSI 10k 1 .Oum製程,並且不對該項設計 施加任何限制。對於如第8 b圖的邏輯而言,亦係採行相同 的程序;惟該項設計係限制於由1 en3到時鐘的路徑。附錄 111内包括有用以產生如第8 a- 8 b圖的示範性邏輯之編碼方 式。 現參考第8c-8d圖,其中說明一利用如第7圖之法則 所合成之示範性連接閘邏輯(包括如附錄II的VHD L内所 參考到的「ienl」訊號)具體實施例。注意在用以產生如第 8c圖之邏輯的合成程序過程中,係標定以LSI 10k 1 .Oum 製程,並且不對該項設計施加任何限制。對於如第8 d圖的 邏輯而言,亦係採行相同的程序;惟該項設計係限制於排 除使用 AND-OR連接閘。附錄IV内包括有用以產生如第 8 c - 8 d圖的示範性邏輯之編碼方式。 第9圖中說明一按照1 · 0 um製程且併合有前接管線切 割與重組模式之示範性管線式處理器。如第9圖所示,該 處理器900為似ARC微處理器CPU裝置,特別是具有其 中具有一處理器核心902、共同晶片式(on-chip)記憶體904 以及外部介面 9 0 6。該裝置係按照如藉由本發明方法 900 所獲之自訂式VHDL設計而製作,且將於後續合成為一邏 輯層級表現方式,並且再利用編譯、配置與製程等等半導 體產業界所眾知之技術而降為實體裝置。 對於熟捻本項技藝之人士,實應知悉如第9圖所示之 處理器可含有任何通常可用之周邊,例如像是序列式通訊 22 589544 褒置、平行阜、計時器、計數器、高電流… 位(入⑼轉換器、數位類比(D/A)轉換器、t斷處理器數 驅動程式、記憶體與其他類似裝置。料,該處理η 包括自訂或應用特定迴路。本發明並不對於周邊與其他: 可藉由本方法與裝置而合併之迴路的所有型態、數量: 複雜度作出任何限制。相對地,任何限制均係來自於二 精良之半導體程序的實體容量所致。@此可預期 : 用本發明之整合作業複雜性與程度勢將因半導體製程改^ 而逐漸提高。 & 亦應注意許多1C今呻曰乂 k y ^ ^叹。十目則仍採用微處理器核心 DSP核心。然而對…核心,僅需要其極為有限的Dsp 功能’或是要求1C的高速DMA架構。本揭之發明 多項DSP指令功能,並且可利用其高速區域RAM : 立即接取到資料。藉由本揭方法足可對於ic .的咖與、’ 功能兩者節省可觀之成本。 另外,亦應明瞭太# #、+, 緊本文刖述之法則(及其相關電腦程
可以相對來說較為簡易的重新合成方式,…例如像V 0 · 1 8或0 · 1微米等輕新从制 疋 寻奴新的製程技術進行調適,而無須 如先前技藝般㈣「硬式」巨集來為調整該等技術而進:必 要的冗長與昂貴程序。 現參考第1 0圖,此為說明一足可合成該關於切割/重 組訊號邏輯的計算敦置之具體實施例。該計算裝置1000 包含具有中央處理單元(CPU) 1 002、p遠機存取記憶體 (RAM)1004 W及記憶體控制ϋ _白勺主機板_。在此 23 589544
亦提供有為支援主機與周邊元件作業所必要之儲存裝置 1 00 6(例如像是硬碟機或是CD-ROM)、輸入裝置1〇〇7(如鍵 盤或是滑鼠)以及顯示裝置1 008(例如CRT、電漿或是丁FT 顯示器)’和匯流排等裝置。前述之VHDL描述與合成引擎 係藉電腦程式之物件程式碼表現的形式而存放於RAM 1004即/或儲存裝置1 006處,以便於設計合成過程中供 CPU 1 0 02所應用,該後者係屬計算業界所眾知。使用者(未 於本圖示出)於系統運算過程中,藉由將設計組態規格透過 程式顯示幕以及輸入裝置1〇〇7而輸入該合成程式内以合 成該邏輯設計。由該程式所產生之既經合成之設計會被存 放於該儲存裝置1 〇〇6以便後續擷取、顯示於圖形顯示裝置 1 〇 〇 8或是按照需要而經由序列或平行阜1 〇丨2輸出到例如 印表機、資料儲存單元或其他週邊元件等外部裝置雖藉 由前述細部說明來顯示、描述與指明本發明應用於各式具 體實施例時之諸項新式功能,然應知悉仍可由熟捻本項技 藝之人士進行各種形式、裝置細節或所述程序上的省略、 替代與變化而仍不會悖離本發明。前述說明係以現今所暸 解之敢佳模式以實作本發明。該等說明並不具有限制性, 而僅係作為本發明原理之範例。本發明範圍應以後附申請 專利範圍定之。 24 589544 inininminou std一ulogic; std一ulogic; std一ulogic; std一ulogic; std一ulogic; std—ulogic);
附錄I -用於產生管線切割之合成邏輯VH D L library ieee; use ieee.std一logic一 1164.all; entity v007a is port( ck clr ien2 ien3 ip2iv p3iv end v007a; architecture synthesis of v007a is signal n_p3iv : std—ulogic; signal ip3iv : std—ulogic; begin
n_p3iv <= ip3iv WHEN ien3 = O' ELSE
O' WHEN ien2 = O’ AND ien3 =,Γ ELSE ip2iv; pSivreg : PROCESS(ck,clr)
BEGIN IF clr = T THEN ip3iv <= Ό1; ELSIF (ck rEVENT AND ck = lV) THEN ip3iv <= njp3iv; END IF; END PROCESS; p3iv <= ip3iv; end synthesis;
25 589544 ininininou ntl2ivl n2ii2l
附錄II -用於產生管線重組之合成邏輯VHDL library ieee; use ieee.std一logic—1164.all; entity v007b is std一ulogic; std一ulogic; std—ulogic; std—ulogic; std一ulogic); end v007b; architecture synthesis of v007b is begin ienl <= O'WHEN en = Of OR (p2int = T AND ien2 = O’)
OR (ip2iv = T AND ien2 = ’0·) ELSE ,1,; end synthesis;
26 589544
附錄in - 用於產生切割邏輯之示範性法則的合成文稿 /* Analyze YHDL */ analyze -library user -format vhdl vhdl/v007a.vhdl /* Unconstrained logic */ elaborate -library user v007a compile
write -format db -hierarchy -output db/v007a_uc.db create一schematic -schematic一view plot -output v007a_uc.ps remove—design -all /* Constrained logic */ elaborate -library user v007a create一dock -name *'ck·’ -period 10 -waveform {0 5} ck set一input一delay -clock ck 8 ien3 compile write -format db -hierarchy -output db/v007a_c.db create一schematic -schematic一view plot -output \O07a__c.ps
27 589544 附錄IV - 用於產生重組邏輯之示範性法則的合成文稿 /* Analyze VHDL */ analyze -library user -format vhdl vhdl/v007b.vhdl /* Unconstrained logic */ elaborate -library user v007b compile
write -format db -hierarchy -output db/v007b_uc.db create—schematic -schematic_view plot -output v007b_uc.ps remove一design -all /* Constrained logic */ elaborate -library user v007b set一 max—area 0 set一dont一use find(cell,lsi一 1 Ok/AO*) compile -map一effort high write -format db -hierarchy -output db/v007b_c.db create一schematic -schematic一view plot -output v007b_c.ps
28 589544
【圖式簡單說明】 第r圖為典型採用「區段式」算術單元的先前技藝處理器 架構之區塊圖。 第2圖以繪示說明四階段式管線處理器進行多重週期分支 運算的運算過程。 第3圖為說明一符合本發明之多重階段管線内「切割」概 念的管線流程圖。
第4圖為說明一利用符合本發明「切割」方式,來控制管 線之通用法則的邏輯流程圖。 第5圖為說明一符合本發明之多重階段管線内「重組」觀 念的管線流程圖。 第6圖為說明一利用符合本發明「重組」方式,來控制管 線之通用法則的邏輯流程圖。 第7圖為說明一符合本發明,併合有管線切割/重組模式之 處理器邏輯合成通用法則的邏輯流程圖。
第8 a-8b圖為說明一利用如第7圖之方法予以合成,可實 作本發明(分別為未受限與受限)之管線「切割」功 能的連接閘邏輯示範性具體實施例略圖。 第8c-8d圖為說明一利用如第7圖之方法予以合成,可實 作本發明(分別為未受限與受限)之管線「重組」功 能的連接閘邏輯示範性具體實施例略圖。 第9圖為一符合本發明,而併合有管線切割/重組模式的處 理器設計區塊圖。 第1 0圖為一使用電腦程式,併合有第7圖法則以合成該管 29 589544
線式處理器設計之計算裝置的功能性區塊圖。 【元件代表符號簡單說明】 10 乘 法 單 元 900 處 理 器 902 處 理 器 核 心 904 共 同 晶 片 式 (on-chip)記憶體 906 外 部 介 面 1000 計 算 裝 置 1001 主 機 板 1002 中 央 處 理 單 元 1005 記 憶 體 控 制 器 1006 儲 存 裝 置 1007 m 入 裝 置 1008 顯 示 裝 置 1012 平 行 阜 30

Claims (1)

  1. 589544
    拾、申請專利範圍: 1 · 一種用以操作具有管線之處理器的方法,其至少包含下 列步驟: 提供一足以處理某第一指令的第一管線階段; 提供一第二管線階段,而該第二管線階段係該第一管 線階段的下行鏈路,並且彼尚進一步調適為處理某項第 二指令;
    在第一管線階段内暫止該第一指令;以及 當該第一管線階段係已暫止時,處理該第二管線階段 内的第二指令。 2.如申請專利範圍第1項所述之方法,其中上述之管線包 括一個三階段管線,而且提供該第一與第二管線階段亦 分別包括提供一指令解碼階段與一指令執行階段。
    3 .如申請專利範圍第1項所述之方法,其中上述之暫止作 業包括: 偵測該内鎖狀況;以及 產生一内鎖訊號,而該訊號係調適為暫止該第一管線 階段。 4.如申請專利範圍第3項所述之方法,其中更包含於處理 該第二指令之前,先決定該第二管線階段内指令之有效 性0 31 589544
    5 . —'種用以操作具有管線之處理器的方法,其中該管線包 含有至少一第一階段、第二階段與第三階段,該方法包 含下列步驟: 在該管線各個階段中提供指令; 於第一階段裡暫止某一指令; 當該第一管線階段係已暫止時,處理該第二階段内的 指令; 將該第二階段内的既經處理之指令移入該第三階段; 以及 將空白時段插入該管線内第二階段,以避免出現於第 二階段的既經處理指令被多次重複執行。 6 ·如申請專利範圍第5項所述之方法,其中上述之第一階 段内包含有擷取階段,該第二階段包含有指令解碼階 段,而第三階段則包含有指令執行階段。 7. 如申請專利範圍第6項所述之方法,其中暫止該第一階 段作業包含: 偵測於該第一階段與該管線内至少一項其他階段之間 的内鎖狀況;以及 回應於該内鎖狀況而暫止該第一階段。 8. 如申請專利範圍第5項所述之方法,其中上述之管線内 32 589544
    fiHI 於第三階段後更包含一第四階段。 9.如申請專利範圍第8項所述之方法,其中更包含: 在該第一階段係已暫止後,處理該第三階段内 令;以及 當該第二階段内既經處理確已移入該第三階段時 該第三階段内既經處理的指令移至該第四階段。 1 0.如申請專利範圍第7項所述之方法,其中更包括: 在該第二階段内提供一旗標設定指令,以及在第 段内提供一跳躍指令; 當一個或是多個由至少一項旗標設定指令所設定 標可能會影響到該等至少一個跳躍指令後續執行時 偵測至少一個實例;以及 暫止執行該管線内該第一階段裡的至少一項跳 令,至少一直到所有將由該等至少一項旗標設定指 加設定的旗標均以處理完畢。 11. 一種處理器設計合成之方法,其至少包括下列步廢 產生一特定於該設計之第一檔案,以納入多項指 元; 輸入資訊至該第一檔案以納入某一指令集,於此 處理器内的第一階段裡至少一個指令字元執行作業 另外一個該等多個指令字元其中之一於先前管線階 的指 ,將
    一階 之旗,即 躍指 令所 令字 ,該 ,當 段裡
    33 589544 既經暫止之後,仍屬可繼續進行; '定義至少一個函式館檔案的位置; 利用該第一檔案、該函式館檔案與使用者輸入資訊來 產生一文稿稽; 執行該文稿檔以產生依自訂式描述語言模型;以及 根據該描述語言模型來合成該項設計。 1 2.如申請專利範圍第1 1項所述之方法,其中上述之合成 作業包括根據該描述語言模型來執行合成文稿檔。 1 3 .如申請專利範圍第1 2項所述之方法,其中更包括產生 某個作為模擬所用之第二檔案,並且利用該第二檔案來 模擬該項設計的作業。 1 4.如申請專利範圍第1 3項所述之方法,其中更包括根據 該模擬結果來評估該項設計之可接受度。 1 5 .如申請專利範圍第1 4項所述之方法,其中更包括複檢 該項設計以製作一經複檢之設計,並且對該經複檢之設 計重新合成。 1 6.如申請專利範圍第1 1項所述之方法,其中上述之輸入 作業包括選取多個相關於該項設計的輸入參數,而該等 參數包含有: 34 589544
    (i) 一快取組態;以及 (ii) 一記憶體介面組態。 1 7. —種機器可讀取式資料儲存裝置,其至少包括:
    一經調適以存放多個資料位元的資料儲存媒體;以及 一提供多個資料位元並存放於該資料儲存媒體内的電 腦程式,其中該程式係調適作為執行於該電腦系統處理 器上,並且可合成適用於該處理器的積體電路邏輯,而 該處理器具有一管線,且該處理器邏輯更調適為: 偵測該管線裡第一階段内經暫止指令; 偵測該管線裡第二階段内有效指令;以及 當該第一階段仍屬暫止時,繼續執行該第二階段内 的有效指令。 1 8. —種處理器,其至少包括: 至少一個具有至少一第一與第二階段的管線;
    用以偵測該第一階段内經暫止指令之裝置; 用以偵測該第二階段内有效指令之裝置;以及 用以當該第一階段仍屬暫止時,執行該第二階段内的 有效指令之裝置。 1 9. 一種數位處理器,其至少包括: 一具有多重階段指令管線的處理器核心,該核心係條 適為可解碼與執行某一包含有多個指令字元的指令集; 35 589544 一該處理器核心與資訊儲存裝置間的資料介面; '一包含有多個指令字元的指令集,而該處理器與 令集更被調適為: (i) 偵測暫止於該管線裡第二階段内的第一指- (ii) 偵測何時一有效指令會出現於該管線裡第 段内;以及 (iii) 當該第二階段確已暫止時,在第三階段内 該有效指令。 2 0 ·如申請專利範圍第1 9項所述之處理器,其中上述 理器與指令集,更係調適為: (i) 偵測出現於該管線裡第三階段内的暫止指令; (ii) 偵測該第三階段與出現於該管線裡第一階段 指令之間未用時段;以及 (iii) 處理出現於該管線裡第一階段内的指令,並 該指令前送至第二階段,藉以消除該未用時段。 2 1. —種數位處理器,其至少包括·· 一具有多重階段指令管線的處理器核心,該核心 適為可解碼與執行某一包含有多個指令字元的指令 一該處理器核心與資訊儲存裝置間的資料介面; 一包含有多個指令字元的指令集,而該處理器與 令集更被調適為: (i)偵測出現於該管線裡第二階段内的暫止指- 以及 該指 卜; 三階 執行
    之處 内的 且將 係條 集; 以及 該指
    36 589544
    (ii) 偵測該第三階段與出現於該管線裡第一階段内 的指令之間未用時段;以及 (iii) 當該第三階段仍為暫止時,處理出現於該第一 階段内的指令,藉以消除該未用時段。 22.如申請專利範圍第2 1項所述之處理器,其中上述之未 用時段包括由含有下列項目之群組中所選出的時段: (i) 一空白時段;
    (ii) 一包含有殺除指令之時段;以及 (iii) 一包含有長型立即字元之時段。 2 3 . —種數位處理器,其具有一相關之資料儲存裝置,以及 至少一個包含有至少第一、第二與第三階段之管線,其 中在該等至少一個管線内的指令執行係由下列方法所控 制: 提供一包含有多個指令字元的指令集,
    存放至少一部份的該指令集於該儲存裝置裡; 在該處理器上執行執行至少一部份的指令集; 偵測暫止於該管線的第二階段裡之第一指令; 偵測某有效指令何時會出現在該管線之第三階段内; 以及 執行該第三階段内的有效指令,而同時仍維持該第二 階段内之第一指令的暫止狀態。 37 589544
    24 · —種用以操作具有管線之處理器的方法,其中該管線包 含有至少一第一階段、第二階段與第三階段,該方法至 少包括下列步驟: 在該管線各個階段中提供指令; 於第二階段裡暫止某一指令; 當該第二管線階段係已暫止時,處理該第三階段内的 指令,
    將該既經處理之指令移出該第三階段;以及 將空白時段插入該管線内第三階段,以避免出現第三 階段的既經處理指令被多次重複執行。
    38
TW089109198A 1999-05-13 2000-07-05 Method and apparatus for processor pipeline segmentation and re-assembly TW589544B (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13425399P 1999-05-13 1999-05-13
US09/418,663 US6862563B1 (en) 1998-10-14 1999-10-14 Method and apparatus for managing the configuration and functionality of a semiconductor design
US52417900A 2000-03-13 2000-03-13

Publications (1)

Publication Number Publication Date
TW589544B true TW589544B (en) 2004-06-01

Family

ID=27384547

Family Applications (1)

Application Number Title Priority Date Filing Date
TW089109198A TW589544B (en) 1999-05-13 2000-07-05 Method and apparatus for processor pipeline segmentation and re-assembly

Country Status (5)

Country Link
EP (1) EP1190337A2 (zh)
CN (1) CN1217261C (zh)
AU (1) AU4848700A (zh)
TW (1) TW589544B (zh)
WO (1) WO2000070483A2 (zh)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6862563B1 (en) 1998-10-14 2005-03-01 Arc International Method and apparatus for managing the configuration and functionality of a semiconductor design
AU2001243463A1 (en) 2000-03-10 2001-09-24 Arc International Plc Memory interface and method of interfacing between functional entities
US7000095B2 (en) * 2002-09-06 2006-02-14 Mips Technologies, Inc. Method and apparatus for clearing hazards using jump instructions
CN100451951C (zh) * 2006-01-26 2009-01-14 深圳艾科创新微电子有限公司 Risc cpu中的5+3级流水线设计方法
US8127113B1 (en) 2006-12-01 2012-02-28 Synopsys, Inc. Generating hardware accelerators and processor offloads
JP5395383B2 (ja) * 2008-08-21 2014-01-22 株式会社東芝 パイプライン演算プロセッサを備える制御システム
CN102194350B (zh) * 2011-03-24 2013-01-30 大连理工大学 一种基于vhdl的cpu
CN102830953B (zh) * 2012-08-02 2017-08-25 中兴通讯股份有限公司 指令处理方法及网络处理器指令处理装置
CN104793987B (zh) * 2014-01-17 2018-08-03 中国移动通信集团公司 一种数据处理方法及装置
US9971516B2 (en) 2016-10-17 2018-05-15 International Business Machines Corporation Load stall interrupt
CN111399912B (zh) * 2020-03-26 2022-11-22 超睿科技(长沙)有限公司 一种面向多周期指令的指令调度方法、系统及介质
CN113961247B (zh) * 2021-09-24 2022-10-11 北京睿芯众核科技有限公司 一种基于risc-v处理器的向量存/取指令执行方法、系统及装置

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5019967A (en) * 1988-07-20 1991-05-28 Digital Equipment Corporation Pipeline bubble compression in a computer system
EP0463966B1 (en) * 1990-06-29 1998-11-25 Digital Equipment Corporation High-performance multi-processor having floating point unit and operation method
DE69408769T2 (de) * 1993-10-18 1998-07-09 Cyrix Corp Fliessbandsteuerung und Registerübersetzung in Mikroprozessor

Also Published As

Publication number Publication date
CN1355900A (zh) 2002-06-26
CN1217261C (zh) 2005-08-31
WO2000070483A3 (en) 2001-08-09
WO2000070483A2 (en) 2000-11-23
AU4848700A (en) 2000-12-05
EP1190337A2 (en) 2002-03-27

Similar Documents

Publication Publication Date Title
Chow The Mips-X RISC Microprocessor
US7010558B2 (en) Data processor with enhanced instruction execution and method
US9329866B2 (en) Methods and apparatus for adapting pipeline stage latency based on instruction type
US8539399B1 (en) Method and apparatus for providing user-defined interfaces for a configurable processor
US6560754B1 (en) Method and apparatus for jump control in a pipelined processor
TW589544B (en) Method and apparatus for processor pipeline segmentation and re-assembly
Chattopadhyay Embedded System Design
Mantovani et al. HL5: a 32-bit RISC-V processor designed with high-level synthesis
US7373638B1 (en) Automatic generation of structure and control path using hardware description language
US20020032558A1 (en) Method and apparatus for enhancing the performance of a pipelined data processor
Saghir et al. Datapath and ISA customization for soft VLIW processors
TW513665B (en) Method and apparatus for jump delay slot control in a pipelined processor
Reese et al. A coarse-grain phased logic CPU
WO2000070446A2 (en) Method and apparatus for loose register encoding within a pipelined processor
US20060168431A1 (en) Method and apparatus for jump delay slot control in a pipelined processor
TW527563B (en) Method and apparatus for jump control in a pipelined processor
JP4152659B2 (ja) データ処理システムおよび設計システム
Namjoo et al. Implementing sparc: A high-performance 32-bit risc microprocessor
LaForest Second-generation stack computer architecture
Chalk et al. Computer organisation and architecture: an introduction
Carmona et al. Implementation of a fully pipelined ARM compatible microprocessor core
JP2785820B2 (ja) 並列処理装置
Yang et al. Embedded processor validation environment using a cycle-accurate retargetable instruction-set simulator
Alcantara et al. Designing the dispatch stage of a superscalar microprocessor
JP2001216154A (ja) むき出しのパイプラインを具備するコードのサイズを、nop演算を命令オペランドとしてコード化することで削減するための方法並びに装置

Legal Events

Date Code Title Description
MM4A Annulment or lapse of patent due to non-payment of fees