TW523711B - Processor architecture and operation for exploiting improved branch control instruction - Google Patents

Processor architecture and operation for exploiting improved branch control instruction Download PDF

Info

Publication number
TW523711B
TW523711B TW089120503A TW89120503A TW523711B TW 523711 B TW523711 B TW 523711B TW 089120503 A TW089120503 A TW 089120503A TW 89120503 A TW89120503 A TW 89120503A TW 523711 B TW523711 B TW 523711B
Authority
TW
Taiwan
Prior art keywords
instruction
branch
target
address
patent application
Prior art date
Application number
TW089120503A
Other languages
English (en)
Inventor
Naohiko Irie
Tony Lee Werner
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Application granted granted Critical
Publication of TW523711B publication Critical patent/TW523711B/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3005Arrangements for executing specific machine instructions to perform operations for flow control
    • G06F9/30058Conditional branch instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/32Address formation of the next instruction, e.g. by incrementing the instruction counter
    • G06F9/322Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address
    • 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/3802Instruction prefetching
    • G06F9/3804Instruction prefetching for branches, e.g. hedging, branch folding
    • G06F9/3806Instruction prefetching for branches, e.g. hedging, branch folding using address prediction, e.g. return stack, branch history buffer
    • 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/3842Speculative 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/3842Speculative instruction execution
    • G06F9/3846Speculative instruction execution using static prediction, e.g. branch taken strategy

Landscapes

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

Description

523711 A7 B7 五、發明說明(1 ) 發明領域 本發明係相關於高效能計算系統之領域,以及改進指 令執行之方法。本發明特別係使用作爲減少高速管線式處 理器之分支指令延遲。 :. t 發明背景 許多_現代之計算系統,係使用具有管線式架構之處理 器,以增加指令之流通量(throughput )。理論上,管線式 處理器在當正執行有序、序列指令流時,在每個機器指令 時可執行單一指令。此甚至當指令本身會關聯或需要數個 分離微指令以作用之狀況下而完成。管線式處理器係藉由 將指之執行分爲每個級(stage )需要數個機器指令來完成 之數個級而操作。一般,在習知的系統中,指令可能需要 數個機器週期來完成(取碼(fetch )、解碼、A V L運算 等)。進出時間(latency ),係藉由完成第一指令之實際 執行之前,而藉由初始第二指令之處理,以在管線式處理 器中將該進出時間予以減少。在上述例子中,實際上’可 在任何給定之時間,而在各種處理級中而有多個指令。因 此,系統之整體指令進出時間(其,一般而言,可想成係 介於起始一序列(sequence )指令之時間以及該時間完成 執行之時間之間的延遲),可以被顯著的減少。 上述建構,可在當程式執行係以順序流動路徑時,而 運作良好。換句話說,此模式係建立在程式執行之順序模 式,其在程式之每個指令係爲在記憶體中緊接著剛剛被執 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公釐) _ 4 - | 請 · 先 閱-、 % \ 卜! 經濟部智慧財產局員工消費合作社印製 注 意 事
523711 A7 B7 五、發明說明(2 ) (請先閱讀背面之注意事項再填寫本頁) 行之下一個。然而程式之重要需求以及特徵,係在於可A 分支(branch )"或重指引(re-direct )程式執行流至另 一組指令;使用分支指令條件式傳送之控制,可以不同於 現在之路徑而對於正在執行之程式變成另一路徑。然而, %路徑可能是或可能不是與接著剛剛被執行之指令之立即 下一組指令並存。 一般'而言,習知之處理器,係具有即將被執行之指令 之單一位址暫存器,其包括一分支目標位址。該分支目標 位址,係爲表示分支指令之目標位址之位址。該分支指令 係在當分支指令之正確目標位址係已經儲存在位址暫存器 時,而由處理器快速的執行。然而,分支指令可能在任何 特殊程式之中而任意發生,而不可能事先確定的預測程式 流是否將被重指引。習知已知各種猜測分支指令之結果的 技術,使得假如程式流將被指引至另一組指令集時,該正 確目標位址可被先行計算,而對應組指令可被預先取碼, 而事先自記憶體載入以減少記憶體存取進出時間。一般而 言,因爲記憶體存取之有效性係遠慢於管線式運算,因此 執行可因爲存取下一指令而延遲。 經濟部智慧財產局員工消費合作社印製 有時,雖然,關於分支猜測係不正確的,而此可能造 成一〜氣泡(bubble )"或管線停止。因此一般而言,當 管線包括不表示想要的程式流,將產生氣泡或停止(即’ 像是由於不正確的指引分支輸出之發生)。由於取消( squash )錯誤指令、將管線空白以及重新載入正確指令順 序而發生顯著的時間延遲(penalty )。根據管線之大小’ 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公釐) ^ 5 ^ 523711 A7 B7 五、發明說明(3 ) (請先閱讀背面之注意事項再填寫本頁) 此延遲可以係相當大的;而對於顯著的程度,因此,對於 長管線設計之需求(爲了增加有效指令之流通量),而被 當必須對此管線淸爲空白並重新載入所發生之時間延遲所 抵銷。因此,有許多之努力在硏究、設計以及實施智慧機 ί:構以減少分支指令之進出時間。. 爲了分析分支指令進出時間,可將分支指令想爲包含 以下步驟^ (1 )決定分支結果 (2 )計算分支目標位址(即,需要載入之指令之位置) (3 )轉移控制,使得將於下一個執行正確指令 經濟部智慧財產局員工消費合作社印製 在多數系統中,步驟(1 )與(2 )必須藉由分支指 令而依序解出。分支指令亦一般分爲兩個種類:條件式以 及非條件式。當永遠將跳躍之分支,係稱爲非條件式分支 ,而不需要上述三個運算步驟。條件式分支係根據上述步 驟(1 )之結果。假如該分支不跳躍,將對於依序的下一 指令取碼並執行。假如該分支跳躍,該分支目標位址係在 步驟(2 )中計算,而之後將控制轉移至如步驟(3 )所 示之路徑。關於習知分支預測狀態之好的描述,可見於> 電腦架構:計量方法(approach )"之參考書,二版,作 者 Patterson 與 Hennessy,第 4 · 3 節,第 262 至 278 頁,而在附錄中作爲參考。 一般而言,相關於分支指令之數個延遲機器週期,可 分解成以下數類:(1)分支解碼之目標指令之取碼進出 時間;此一般稱爲在確認分支目標指令後,將該指令取碼 -6 - 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公釐) 523711 A7 ____ B7 五、發明說明(4 ) 以及配置於管線所需要之時間;(2 )分支條件產生之進 出時間;此一般稱爲決定係實際跳躍或不跳躍之程序。在 特殊之系統中,一般對於減少分類(1 )係重要的,因爲 該等對於條件式以及非條件式分支係將產生影響,而分類 2 )延遲,係僅關聯於條件式分支。且,分類(2 )延 遲,可能由包括分支預測之習知技術而在某些程度上有害 。例如/在美國專利號第5,7 4 2,8 0 4 (頒發給Yeh 等人),亦在此處作爲參考,其係在實際分支指令之前以 編譯器插入一 > 分支預測指令〃。此預測指令意指定分支 之目標位址,而進出時間節省執行時間。指令等係根據預 測指令所提供之暗示而預先取碼,使得該碼可在當控制轉 移時而備妥以執行。在分支結果之預測本身,係根據執行 時間編譯器所需要之資訊而製作。在該Yeh之前案中不無 失誤預測之最佳處理,而此”失誤〃以分支延遲之觀點而 言,係將有所延誤(costly )。於是,此處所示之方法亦 具有嚴重之限制。 更特定於特殊管線式計算系統中之分類(1 )之時間 延遲之缺點(breakdown ),可看出包含以下:讀取分支運 算元(0至1機器週期):計算分支目標位址(1至2機 器週期):以及存取指令快取記憶體並將該目標指令置於 管線之解碼級(1至2機器週期)。因此,在最壞之情形 下,可能有5個機器週期之分支指令延遲。在具有某種規 則性(即,2 0 %之時間中)而執行分支指令之程式類型 中,顯然的該平均指令延遲係相當高(每一指令平均1個 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公釐) 請 先 閱 讀 背 面 之 注 意 事 項 再 填
經濟部智慧財產局員工消費合作社印製 523711 A7 B7 五、發明說明(5 ) 機器週期)。 減少分支指令之實際執行時間進出時間之各種機制已 經被提出。例如,使用在習知方法之一種方式’係在當分 支指令被解碼時,而計算該分支指令。此可減少平均分支 /指令機器週期,但是卻增加額外位置加法器之負擔;此消 耗最好係使用爲其他功能之區域以及功率。 在暂知方法之另一方式,係包含一目標指令歷史( history )緩衝器。該例子係如美國專利號第 4,725,947、4,763,245 與 5,794,027等,而在此處作爲參考。 經濟部智慧財產局員工消費合作社印製 在此類型之系統中,在歷史緩衝器中之每個目標指令 入口( entry )係相關聯過去所執行之分支指令之程式計數 器。當執行分支指令之後,而以適當之目標指令而塡入一 入口。當分支係在解碼級(stage )中之下一時間時,該分 支目標指令可藉由將程式計數器與歷史緩衝器之此入口相 比對而製作。爲了增加此方式之有效命中率,必須保持大 量之入口,且係保持很長的一段時間。而,因此,需要相 當大量之矽面積以及功率。且,比對機構本身,可能係爲 延遲之主要來源,假如係具有大量之入口以比較時。 然而以下係討論以下之方式:(1)標題爲$
P I PE處理器之製作〃由Rarrens與Pleszkun所提出,在 電腦期刊1 9 9 1年一月版之第6 5至7 0頁;以及(2 )標題爲〜架構資料佇串與製作-TO-分支指令之模擬 硏究",由Young與Goodman於1984年十月IEEE 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公釐) _ g - 523711 A7 _______ B7 五、發明說明(6 ) 電腦設計國際硏討會之第5 4 4至5 4 9頁中,兩者係皆 在此處作爲參考。 請 先 閱 讀 背 £ 之 注 意 事 項 再 填 在上述參考中之架構中,經延遲分支之形式,係使用 製作一至—分支(prepare-to-branch ) ( P T B )指令而提 經濟部智慧財產局員工消費合作社印製 /出。該P T B指令,係在分支指令決定該分支結果之前而 插入’並之後在控制轉移之前而指定一延遲。藉由確認該 延遲係夠大以保證當指令完成時該分支條件將已經被估算 出’該管線係保持飽滿。此方式卻有以下問題:由於目標 位址計算(步驟2 )所造成之進出時間不能整個容納,因 爲其可能相當的大。美國專利5,615,386 (頒發 給Amerson等人)(亦在此處作爲參考),一紙定PTB 指令之使用。該參考亦指出分支指令可藉由將目標位址計 算(步驟(2))自比較運算(步驟(1))中分離。藉 由計算不按順序之分支位址,相關於分支之進出時間可被 進出時間的減少。此參考係討論數個一般的方式,但是係 受限於以下情形:(1 )其不使用折疊式(folded )比較 方式;因此需要分離之比較與分支指令,而此增加碼之大 小,動態執行時間等;(2 )該比較結果必須藉由內部旗 標而非暫存器而辨識,而此減少彈性;(3 )不需要使用 暫存器,像是鍵結暫存器,功能子函式之執行將更具挑戰 性,因爲其將更難儲存以及切換本文(context );( 4 ) 上述揭示亦係相關於複雜記名程序,藉此回路之執行將影 響接續相關回路之預測加權。 在該技藝之相關問題,係在於通常包括數個分支在程 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公釐) -9 - 523711 A7 B7 五、發明說明(7 ) 式流中。此時,必須對每個分支指令更新在位址暫存器之 目標位址。此更新需要額外之時間並因此將減慢程式之執 行。 ''發明之簡要敘述 本發明之一般目的,在克服上述關聯於此領域之習知 技術之缺點。 本發明之另一目的在提供一種改進之分支運算指令格 式,其係以管線式處理器而強力與彈性的建構,使得程式 設計者具有許多實施工具以製作軟體程式。 本發明之相關目的,在提供一種由分離控制與分支指 令所構成之改進之分支運算,使得在多數情形中在管線式 處理器中之存取進出時間可減少且/或刪除。 另一相關之目的在提供一種結合多重指令之新式分支 指令(像是比較與分支運算),使得減少碼大小,並增加 執行速度。 經濟部智慧財產局員工消費合作社印製 另一目的在提供一種新式的分支指令,其支援先進之 比較邏輯運算,包括暫存器至暫存器比較,以增加程式化 彈性。 進出時間之相關目的,在實施具有不同運算且/或目 的載入參數之分離的控制與分支指令,以改進分支目的指 令之整體命中率。 本發明之另一目的在提供一種改進的比較系統’以執 行上述管線式處理器之分支控制/分支指令’使得整體程 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公釐) -1〇 - 523711 A7 B7 五、發明說明(8 ) 式分支運算可以較少之進出時間而處理的較快。 (請先閱讀背面之注意事項再填寫本頁) 另一目的在提供一種管線式架構之處理器,其包括數 個可載入與架構可視分支目的位址暫存器,使得多重程式 分支之指令,可被簡易而快速的載入,並備妥以執行。 ' 類似的目的在提供一種具有管線式架構之處理器,其 包括數個可載入分支目標指令暫存器,以儲存對應於分支 目標位址之目標指令,使得多重程式分支之指令可藉由管 線而快速存取。 本發明之另一目的,在提供一種處理器,其可由兩不 同指令集而有效執行分支指令,以同步支援傳統使用基本 分支指令格式之軟體,以及使用上述改進式分支指令之先 進軟體。 進一步的目的,在提供於計算系統中之智慧型預載入 電路,以確保在需要時將有效指令載入至管線中。 相關之目的,在於,此預載入電路可使用優先化機制 以決定何指令係最需要較其他而得到。 經濟部智慧財產局員工消費合作社印製 本發明之另一些目的,在提供一例外處理機制,其係 適合於經改進之處理器以及上述之指令架構,而減少系統 之複雜性。 本發明之一觀點,因此係關於一種經改進之機器可執 行分支控制指令,以在計算機中得到程式分支指令之運算 。此控制指令一般係包括第一部份(R位元)以確認該程 式分支是否包括第一類型分支指令(像是P c爲基礎之分 支)或第二類型分支指令(像是暫存器爲基礎之分支)。 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公釐) ^ j j _ 523711 A7 B7 經濟部智慧財產局員工消費合作社印製 五、發明說明(9 ) 控制指令之第二部份(disp + edisp ),係關聯於程式分支指 令之目標位址。第三部份(I ARn )係作爲指定儲存目 標位址之目標位址暫存器。當執行時,控制指令造成計算 機在甚製成是分支指令已經執行之前,而使計算機計算目 標位址。該分支控制指令係經組構,使得第二部份之有效 量(不管是edisp或disp + edisp )係由計算機使用以計算目 標位址/因爲P C爲基礎之位址計算之直接類型,將佔用 (最多至1 9位元)之較位址爲基礎之位址計算(6位元 )。該位址之類型,係藉由在控制指令之第一部份中設定 ,而在分支控制指令中指定。 本發明之另一特徵,在於包括控制指令之第四部份( L位元)係爲一預測値,以指定被使用作爲至少一分支運 算之程式部份之分支目標指令之類似者。此特殊之預測, 係在不同於習知之〜暗示〃位元中而得,因爲其檢查數個 相關程式分支之巨集表現,而不僅係孤立的一個。此產生 較佳之指令載入,因爲可考慮程式之累增效能。 一般而言,分支控制指令係相關聯於兩個或多個分離 程式分支指令,因此減少碼大小,改進目標指令載入等。 經由分支分析,可在儘管該計算機已經執行任何實際程式 分支指令之前,藉由此分支控制指令,而使數個目標位址 可被計算,而成爲有效。本發明之另一目的’在包含一種 經改進之分支指令,其係相關於以及接著在程式指令流中 之上述分支控制指令之後,使得對於後者之必須參數’事 先在計算機管線中而由後者而設定。該分支指令係折疊式 (請先閱讀背面之注意事項再填寫本頁) 罈 訂·- --線· 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公釐) .- 523711 A7 ___ B7 五、發明說明(1〇 ) 請 先 閱 讀 背 面 之 注 意 事 項 再 填 或結合格式,而結合比較與分支運算至一個中以較快執行 ’較簡單製作等。分支之第一部份,包含分支參數,以作 爲執行分支決定(像是暫存器辨識器Rm,R n且/或運 算擴展- Β Ν Ε等)以決定該程式分支是否應由計算系統 ’而跳躍或不跳躍。第二部份(I A R η )包括藉由計算機 所使用之分支目標位址資訊,以執行重導引指令執行流至 分支目標位址,當程式分支係跳躍時。藉由此格式,相關 聯於指令執行流之分支指令之分支決定以及重導引可在計 算機中之相同時間內而被解出。再次,分支指令係相連於 上述分支控制指令,使得分支目標位址在指令執行流之分 支決定以及重導引之前而事先被計算。 經濟部智慧財產局員工消費合作社印製 最好是,使用一個或多個分支目標位址,而該分支指 令可指向其中之一個以決定分支目標位址。在一實施例中 ,第一部份係以兩個暫存器指定器欄位(Rm,Rn )而 得,使得相關於此暫存器之數學/邏輯運算可被估算爲比 較處理之部分。此外,使用預測運算元之邏輯運算亦可指 定作爲比較運算之部分,使得,例如,假如在第一部份被 識別之變數A或變數B係邏輯爲真時,或是假如兩者皆爲 真時,而跳躍該分支。 本發明之另一觀點,在關於一種電腦程式,其具有上 述分支控制與分支指令。此程式可經執行,以最佳化經由 設定之處理器管線架構之速度以及進出時間,以得到此種 指令等之欄位格式之優點。特別是,程式分支目標可組構 成成爲在1至η之優先序値範圍,其中n>2,使得目標 -13- 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公釐) 經濟部智慧財產局員工消費合作社印製 523711 A7 _______________ B7 五、發明說明(11 ) 指令之相對取碼優先序可建構在處理器管線中。該優先序 値可藉由選擇何分支目標位址暫存器(即,自0至7 )係 使用作爲儲存分支目標位址而得。 執行上述分支控制與分支指令之處理器,係爲本發明 之另一特徵。此處理器一般包括多數個目標位址暫存器、 指令解碼器作爲將所送入之指令予以解碼,並根據此解碼 結果而控:制信號,以及對應於控制信號並執行該指令之一 執行單元。如前所述,該分支控制指令作微處理器之旗標 或標示器,而使分支指令之後在該指令流中遵守。因此, 分支控制指令,具有其本身之運算碼欄位,其界定分支控 制運算,以及使用作爲計算分支位址之位址欄位,以及第 一暫存器選擇以指定多數個目的位址暫存器中之一個,以 在其計算之後而儲存在分支位址。之後所接分支指令,係 包括一運算碼欄位,以定義分支運算(以及最好是比較運 算),以及第二暫存器選擇欄位,作爲指定多數個位址暫 存器中之一個,該暫存器係儲存分支運算所使用之位址。 因此,當執行分支指令時,該分支控制指令將已經使分支 目標位址被計算,使得其視需要而使其對於指令重導引之 分支指令係爲有效。 該分支位址係以許多不同之方式而計算。例如,相對 於程式計數器(PC)之位移。此時,該分支控制指令進 出時間包括立即資料欄位,使得分支位址藉由將立即資料 加入至該程式計數器之內容。在另一變異中,包含在多數 個一般目的暫存器中之任何一個,可被識別爲分支位址資 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公釐) • 14 - rtt先閱讀背面之iit事項再填寫本頁) I- 523711 A7 __-_ B7 五、發明說明(12 ) 訊之來源,而之後被儲存於分支目標位址暫存器中之一個 。此二變異視需要亦可結合。 (請先閱讀背面之注意事項再填寫本頁) 在較佳實施例中,分支控制與分支指令,包括位元欄 位,而爲在分離位元欄位之預測/推論之分離形式。其係 使用作爲互補目的,並幫助改進指令預載入效能。藉由估 算此二不同種類之預測參數,推論預載入,預取碼等可對 於特定架:構而修改。 在另一變異中,處理器可執行具有不同長度(像是 1 6位元以及3 2位元)之分支指令,使得運算之兩不同 模式可視需要而被傳送。 該處理器之較佳實施例,係包括例外處理電路,其係 關聯於分支控制指令而運算,使得對於經計算之分支目標 位址之例外檢查,在儲存該分支目標位址至多數個分支目 標位址暫存器中之一個之前發生。此時,可早於指令流之 前而抓出軟體錯誤,以簡化除錯。此外,邏輯閘之節省, 藉由不需要檢查潛在錯誤位址資料而與分支位址緩衝器而 實現。 經濟部智慧財產局員工消費合作社印製 運算管線處理器之較佳方法,係包括分支處理、目標 指令載入以及目標指令之預載入(如上述),以改進進出 時間處理,使得快取記憶體存取可最終以進出時間之觀點 而隱藏。 隨機存取多重入口位址緩衝器、以及相關隨機存取多 重入口目標指令緩衝器,形成本發明之另一有用之特徵。 每個位址入口係儲存根據包含在一個或多個經解碼分支控 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公釐) _ 1 % 523711 Α7 __ Β7 五、發明說明(13 ) 制指令之位址欄位而計算之位址。該目標指令緩衝器係根 據此目標位址而載入(或預載入),使得當執行時間中, 多數個分支目標指令在當對應之分支運算需要該位址時, 而已經爲有效。在一實施例中,數個位址暫存器之數目係 ί:大於指令暫存器之數目。對於較佳實施例,在指令緩「中 之每個暫存器,包含兩個指令,以最佳化自關連式快取記 憶體所載入。在另一變異中,該目標指令暫存器係在執行 任何指令之前而載入,假如組態指令可決定此指令以及載 入在暫存器。 上述分支目標指令以及在上述方式之分支目標指令緩 衝器之運算方法,構成本發明之另一特徵。 該分支目標指令緩衝器最好係在預取碼控制器之控制 下而載入,其表示本發明之另一顯著特徵。一般而言,該 請 先 閱 讀 背 面 之 項 再 填 經濟部智慧財產局員工消費合作社印製 預取碼控制 入口之估算 ,當任何特 慮作爲預載 慮較低優先 一監視機構 令是否係爲 。一選擇機 於分支位址 取代的分支 憶體複寫該 器,根據在 之優先序, 殊週期時, 入;此意指 序目標位址 ,以決定已 無效。而有 構,在當無 暫存器組中 目標位址。 取代分支目 分支目標位 而載入該分 最高優先序 可能在當無 入口。該預 經位在指令 最有用的而 效分支目標 之數個潛在 載入機構之 標指令於分 址緩衝 支目標 之目標 機器週 取碼控 緩衝器 以更新 指令找 分支目 後藉由 支目標 器中之 指令緩 位址入 期時間 制器最 中之分 的目標 到時, 標位址 造成指 指令緩 目標位址 衝器。即 口,係考 下而不考 好係包括 支目標指 指令取代 藉由將位 ,而選擇 令快取記 衝器而取 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公釐) -16- 523711 A7 B7 五、發明說明(14 ) 代無效分支目標指令。 在較佳實施例中,該監視機構包括一 N位元暫存器作 爲有效載入遮造’而其係根據儲存在N入口分支目標指令 緩衝器中之N分離分支目標指令之有效狀態,而載入,使 /得每個N位元暫存器之每個位元,辨識在分支目標指令緩 衝器中之對應入口是否爲有效或無效。進出時間較佳方式 中,該選_擇機構包括一預載入暫存器遮罩’該暫存器包括 一位元作爲辨識持有該潛在分支目標位址之任何儲存位置 是否可使用作爲載入一取代分支目標指令。此外’亦查詢 分支指令暗示暫存器遮罩’因爲其包括對於位在分支目標 位址緩衝器中之每個入口之位元,係作爲辨識是否需要一 分支目標指令。 本發明之預取碼控制緩衝器,包括上述有效性,選擇 並暗示遮罩以使預取碼控制器最佳化載入於管線式處理器 中之指令。 經濟部智慧財產局員工消費合作社印製 (請先閱讀背面之注意事項再填寫本頁) --線- 該入口分即,係由檢查每個潛在分支目標位址之儲存 位址識別而執行,使得分支目標位址可根據其係相關聯之 儲存位置而予以優先序化。例如’在分支目標位址緩衝器 之較高編號中之分支目標位址,係在較低編號暫存器之前 而考慮(或相反的,根據所採用之邏輯)。該預載入運算 ,然而,係經邏輯組構,使得其係與使用作爲保持以指令 流之順序指令所傳送之指令緩衝器中之一般快取記憶體存 取相干擾。 此外,爲了確保在目標指令預載入至目標指令緩衝器 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公釐) · · 523711 A7 B7 五、發明說明(15 ) (請先閱讀背面之注意事項再填寫本頁) 之後之指令流的穩定,額外之經增加的目標位址緩衝器, 係藉由取碼控制器而使用。在此緩衝器,而儲存接著取代 目標指令之後的指令位址’使得該經增加之目標位址可在 假如取代目標指令係實際由管線於之後執行時,而使用作 ^爲快取記憶體存取。 本發明之計算系統中之將指令送至管線之維持方法, 係包括以' 下步驟:監視作爲執行而在管線中係爲有效之任 何分支目標指令之狀態狀況;根據狀態狀況以及該分級而 選擇新的分支目標指令;並之後根據該潛在分支目標位址 之該分級而載入一最高經分級的新分支目標指令,使得該 最高經分級之新的分支指令,在需要載入至管線之時,而 爲有效。 圖形之簡要敘述 圖1係本發明之計算系統之較佳實施例之方塊圖; 圖1 A係展示由本發明之計算系統使用作爲處理分支 運算之一般目的之流程圖; 經濟部智慧財產局員工消費合作社印製 圖2係展示使用在本發明之計算系統之管線中之各種 運算級; 圖2 A係提供本發明之分支控制與解碼器電路之間相 互連接之重要信號之更詳細分解; 圖2 B係類似的提供介於本發明分支控制、取碼控制 與快取記憶體控制器電路之間相互連接之重要信號之更詳 細分解; -18- 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公釐) 523711 A7 __________ B7 五、發明說明(16 ) 圖2 C係摘要本發明計算系統之分支運算處理效能之 表格; 圖2 D至2 L係提供當各種分支運算時,管線運算之 詳細目視以及暫時圖式; :: 圖3 A至3 Η係展示當執行分支處理運算時,藉由電 腦系統所得之控制信號之間的時序關係; 圖4 = Α係展示本發明之分支控制指令之較佳實施例; 圖4 B係展示本發明之分支控制指令之較佳實施例; 圖4 C係展示可由本計算系統所執行之一般程式中之 上述分支控制與分支指令之一般使用例; 圖4 D係展示本發明之非條件式分支指令之較佳實施 例。 (請先閱讀背面之注意事項再填寫本頁> 經濟部智慧財產局員工消費合作社印製 主要元件對照表 10 0 經改進之計算機 10 1 取碼控制器 10 2 取碼多工器 10 3 取碼指令位址閂鎖 10 4 暗示位元緩衝器 10 5 積體電路 10 6 控制線 10 8 指令匯流排 11 0 指令緩衝器 11 5 指令位址暫存器目標緩衝器 -19- 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公釐) 523711 經濟部智慧財產局員工消費合作社印製 五、發明說明(17 1 8 2 0 2 8b 2 8 2 8a 12 A7 B7 多工器/選擇器電路 解碼指令緩衝器 程式計數器暫存器 增加器 M U X _ P C 解碼單元 控制信號匯流排 發明之詳細敘述 圖1係展示本發明之各種特徵之方塊圖,包括經改進 2計算機1 0 0,該1 〇 〇包括具有以下功能電路之管線 式處理器。 首先,取碼控制器(FECTL) 101經運算而以 上述之方式控制快取多工器/選擇器1 〇 2以及板上之快 取記憶體,而詳述於後。此電路係關聯於處理器管線之第 一極,其係一般負責取碼(以及預取碼)指令,已經由該 管線而確保適當之指令流。如圖1所示,經取碼之指令位 址被儲存在取碼指令位址(FAL) 103 ;其係根據後 述之取碼多工器1 0 2之輸出而載入。 對於取碼/預取碼之運算,係爲暗示位元緩衝器( ΗΒ) 1 04 ·在較佳實施例中,ΗΒ包括三個不同的控 制暫存器:(1 )指令有效暫存器,經組構使得每個位元 標示在目標指令暫存器組(後述)中之對應入口之有效性 ;(2 )預載入”遮罩”暫存器,其中每個位元係辨識對應於 - — — — ,^— — — —^ — — — — 1 — ·1111111 a — — — — — — — — I <請先閱讀背面之注意事項再填寫本頁) 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公釐) -2〇 _ 523711 A7 ___ B7 五、發明說明(18 ) (請先閱讀背面之注意事項再填寫本頁) 指令位址暫存器之暗示/預測位元之狀態;以及(3 )選 擇”遮罩”暫存器,其標示何者之目標指令暫存器係對於預載 入有效。指令暗示位元係指,在以電腦(或執行時間之軟 體程式)所事先產生,而預測關於特殊指令在當分支指令 之實際目標被執行時,而一特殊指令係爲該分支指令之實 際目標。當然,可有其他變異,而對於本發明之某些應用 係更佳的_。 由取碼指令位址閂鎖(F A L ) 1 〇 3所指到之指令 ,係使用控制線1 0 6,而在管線之第一級之第一階段( phase )( F 1 )時,而自指令快取記憶體(I C )以及快 取記憶體控制器(一般稱爲I C 1 〇 5 )所取得。 經濟部智慧財產局員工消費合作社印製 I C 1 〇 5可儲存多數個3 2位元寬之程式指令,其可由 處理器100而執行。在較佳實施例中,IC105之容 量係爲3 2 K B,而快取記憶體線大小係爲3 2 B。此快 取記憶體可架構爲例如係四向組(4 way set )關連式快取 記憶體,而使用習知之該些結構、方法以及技術。另一方 式,係根據處理器1 0 0之想要之效能以及硬體特徵而實 施。當然,當快取記憶體失誤時,使用匯流排(未顯示) 之習知記憶體存取,必須經執行以取得所需要之指令。 I C 1 0 5之後將以習知之方式而更新。 藉由6 4位元指令匯流排1 〇 8至I C 1 〇 5係以指 令緩衝器(IB) 110而連接,其儲存多數個接續程式 指令。在較佳實施例中,I B 1 1 〇係自I C 1 0 5而在 每個週期而載入兩個指令’而包括四個分離入口之容量( -21 - 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公釐) 523711 Α7 Β7 五、發明說明(19 ) (請先閱讀背面之注意事項再填寫本頁) 通常每個以ib〇,ibl ,ib2,ib3 (未顯示) 所識別之3 2位元的四個指令)。此結構,係當處理器 1 0 0之管線之第一節之第二階段(F 2 )時,而載入。 因此,在此時,相關聯於此及之最大進出時間(假設此級 /係爲空的,而必須塡入新的一組指令),係爲2週期。再 次,IB110之此方式,係爲極端深以及極端淺之緩衝 器之間的折衷案,而本發明之優點在於可在甚至當特定實 施係根據各個不同環境而稍微變化時,仍可實施。 亦連接至匯流排1 0 8者爲指令位址暫存器目標( IART)緩衝器115。相反於IB110, I A R T 1 1 5係儲存已經被欲載入之目標指令,使得其 已經備妥以作爲分支指令之目的地,如以下之進一步描述 。在較佳實施例中,I ART具有8個入口,而每個入口 係儲存2個指令。再次的,可使用另一特定實施例,而本 發明並不限制於此些特定架構。 經濟部智慧財產局員工消費合作社印製 多工器/選擇器電路(MUX_D) 1 1 8,係爲一 選擇器,其根據上述之各種參數(包括分支指令是否已經 被事先解碼),而自IB110(輸入A)或 IART115 (輸入B)兩者之一而連接一指令輸出, 並將之接通路徑至編碼指令緩衝器(D) 1 2 0 ·此緩衝 器亦於管線之第一級之第二階段(F 2 )時而載入。在此 閂鎖中儲存之指令,係對應於係爲微處理器管線之接續”解 碼級,,之程式指令。M U X 一 D 1 1 8之運算邏輯係如下: 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公釐) .22- 523711 A7 B7_ 五、發明說明(2〇 )
If (branch instruction)
Select input A (請先閱讀背面之注意事項再填寫本頁)
Else
Select input B / 程式計數器暫存器(P G - D )包含對應於儲存在解 碼指令緩衝器(D ) 1 2 0中之指令之程式計數器(P C )之入口。當正常序列指令執行時,PC — D1 28b係 當有效指令路徑流經該館現實,而在增加器1 2 8以4之 量而增加(因爲每個指令係爲4位元組寬)。同樣的,當 在指令路徑中之分支指令被執行時,對於每個分支指令之 正確目標位址亦經由輸入A而在P C — D 1 2 8 b中設定 而至MUX_PC128a,使得正確目標指令亦載入於 解碼指令緩衝器1 2 0中。 --線- 經濟部智慧財產局員工消費合作社印製 管線之級,之後,使用一解碼單元(DEC) 125 ,以在第二管線級時,而執行預解碼以及解碼運算兩者。 D E C 1 2 5根據預解碼/解碼之指令類型而產生數個控 制信號,而此些信號(將於後述)將藉由控制信號匯流排 1 2 9而傳送。在該較佳實施例中,預解碼運算係當指令 載入時而快速執行,以決定其是否爲分支指令。依此,分 支控制處理可非常快的接續執行。此預解碼運算可以任何 各種習知採用之快速辨識特定指令類型之標準技術而實施 。如圖2所是,事實上,預解碼運算(P )係在當(重疊 )管線運算之第一級(當F級之第二階段F 2時)以及在 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公釐) -23- 523711 經濟部智慧財產局員工消費合作社印製 A7 -------B7五、發明說明(21 ) 第二解碼級(D)之前,而發生,以確保分支控制電路之 剩下者之正常時序。 再次參考圖1,來自於DEC 12 5之經解碼指令輸 出’係個別傳送至兩個(2) E1運算元緩衝器(E1) Ί 2 7 a以及1 2 7 b,以儲存正在執行級中處理之程式 指令之運算元(圖2之E 1級)。該E 1係由算術邏輯單 元(AI;U) 130所執行而作爲第三管線級之部分。如 圖2所示,其實際具有三個執行級El,E2,E3 ;而 在當此些極時所發生之運算,係包括以下: E 1 : ALU1 30執行大部份之計算(ADD, SUB等),其包括根據在分支控制(PT)指令中之資 訊而計算目標位址,以及解出所有條件式分支。在一般之 實施中,相關聯於分支之比較運算之結果,係於E 1級時 ,將1位元結果(分支錯誤信號)往前送至 FECTL101,(圖 2),以更新 HB104·之後 ,作用預載入(將於後述)可爲要求。此相同結果亦被送 至BRCTL150以及DEC125·假如分支係如上 述而被預測,無任何改變至分支執行、目標位址、目標指 令或其載入。否則,然而,當下一級(E2)中將有錯誤 預測修復處理(後述)。 E 2 :此週期係使用作爲經由載入/儲存閂鎖1 3 6 而存取資料閂鎖1 4 5,而作爲連續執行其他之多週期指 令(像是M U L )。此外,假如於此週期而發生錯誤預測 時,B R C T L 1 5 0重指引程式流至正確流(於此級中 (請先閱讀背面之注意事項再填寫本頁) 罈 訂·- 線- 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公釐) 經濟部智慧財產局員工消費合作社印製 523711 A7 _ B7 五、發明說明(22 ) )。根據實際分支指令,以及正確之下一指令是否已經被 取碼,而在管線中加入某些空泡(bubble )。此外,對於 分支控制(PT)指令,對於目標位址暫存器之新的內容 (其係在E1中計算),而在此週期中被送至 "B RCTL150 ·在之後的級(W)中,而被實際的寫 入至目標位址暫存器(後述)。此相同之資料,然而,以 於E 2級:中而被送至F ECTL 1 0 1中,使得目標指令 可在製作實際分支指令時而被預載入。 E3 :此週期時,DC145回送載入/儲存運算所 需要之任何資料,而多週期指令被連續執行。於此週期中 ,I C 1 0 5可被存取以開始預載入由分支控制(PT) 指令所標示之目標指令。在較佳實施例中,來自於 I C 1 〇 5中之較高優先序取碼運算可在目標預載入之前 而被解出。 連接至ALU 1 3 0之輸出係爲一組一般目的暫存器 (GPR) 135,以及一載入/儲存位址暫存器138 ,以儲存使用作爲之後管線級之部分之資料快取記億體 1 4 0之載入/儲存運算之位址。此些電路係在圖2之W 級中而更新。在較佳實施例中,資料快取記憶體包括4向 ,3 2位元組線關連式快取記憶體,使得整個容量係爲 3 2 K B。 分支目標(IAR,A) 140之位址的一指令位址 暫存器組,係在W級中儲存由ALU 1 3 0所計算之分支 指令之目標位址,並載入之。每個在I AR · A 1 4 0中 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公釐) 「25- ----1--J- I I I I I I — — — — — — — ^« — — — — — 1 — I (請先閱讀背面之注意事項再填寫本頁) 523711 A7 _ B7 五、發明說明(23 ) 之入口,具有在上述I ART 1 1 0之相關對應入口。如 上述,藉由使用分支控制(P T)指令,該目標位址可事 先製備,而在八個(8 )入口中之一個而儲存作爲一 3 2 位元之入口。 IAR.A140與ALU130之輸出兩 /者被送至分支選擇器/多工器1 4 6,其根據分支控制電 路1 5 0所提供之控制信號而選擇在分支控制線1 5 1中 之一此輸入。 BRCTL 1 5 0 —般係負責執行任何分支指令,如 上述。此電路接收經解碼之分支並分支控制指令,而決定 分支條件以及目的位址是否已知,而解出/預測分支結果 。假如分支條件未知,B R C T L 1 5 0將根據在分支指 令中之分支暗示位元(Β Η B )(後述)而預測分支條件 。此時,目標位址因爲該分支控制(ΡΤ)指令而應被知 道(如後述)。在許多情形中,分支進出時間在預測正確 實可被有效刪除。此係因爲當分支執行時,一般係當(1 )目標指令已經被載入至I ART 1 1 5,而在分支指令 被正確預測時已經爲有效;或者是(2 )目標指令並未載 入至IART1 15,但是可在分支條件被解出之前而將 該指令取碼以及解碼。另一方面,假如因爲某些原因而當 分支指令解碼而不知道目標位址時,因爲分支指令係保持 在解碼直到目標位址已經備妥,而會有一些進出時間。 於是,在計算系統1 0 0中,以下一般程序係在當分 支運算時而使用: (1)當解碼級D中,將分支目標位址、IAR數目 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公釐) (請先閱讀背面之注意事項再填寫本頁) m --線· 經濟部智慧財產局員工消費合作社印製 •26- 523711 A7 B7 五、發明說明(24 ) (請先閱讀背面之注意事項再填寫本頁) 、以及分支預測資訊分送至F E C T L 1 〇 1 ·假如預測 出該分支將跳躍,而目標指令已經被預先載入至 IART115,則將自緩衝器中讀取,而載入至 D1 20,使得其備妥於在下一機器週期中解碼。 / (2)仍然在解碼級D中,假如IART1 15並未 被欲載入,FECTL101使用由BRCTL150所 提供之分支目標位址而發送一取碼要求至I C 1 〇5。而 造成當預測係證明爲正確實,而及時將指令自快取記憶體 105至IB11〇載入以與解碼。假如IART115 已經被預載入,FECTL101使用位在IAR· IA 之經增加之目標位址而非由BRCTL 1 5 0所提供之目 標位址,而發送一取碼請求至I C 1 0 5,以將作爲 I ART 1 1 5所需要作爲目標指令之下一指令予以取碼 〇 (3 )假如預測係不在解碼級中 > 跳躍",且下一( fall-through )指令(係在分支之下一指令,而非不跳躍之 分支之目標位址),係在I B 1 1 0,則其經移位而備妥 以在下一機器週期中而解碼。FECTL101 ,發送經 經濟部智慧財產局員工消費合作社印製 預測不跳躍指令之欲載入請求,假如其尙未備妥以載入至 I ART 1 1 5 ·因爲目標指令在之後變爲需要而爲仍爲 備妥,該分支將爲失誤預測。 (4)在E 1級中,BRCTL 1 50接收分支條件 之實際解出,而在此機器週期之尾端而識別該預測。 BRCTL之後提供I AR數目至FECTL已備妥E 2 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公釐) -27 - 523711 A7 B7 五、發明說明(25 ) 級之實際分支。 (5 )當E 2級中,假如預測係正確的,而每件事係 正常進行。否則,BRCTL發送一淸除(squash )信號 以自需要淸除之一些級中淸除指令。假如當分支預測爲不 跳躍,但是實際上係要跳躍,則B R C T L發送一正確目 標位址至F E CTL 1 0 1,以及告知該分支將實際跳躍 之資訊CAKTN指令)。FECTL 1 〇 1之後將改變 指令流至正確目標指令,而額外之指令係視需要而自 I C 1 〇 5所要求。 (6 )假如當E 2級時,該失誤預測係爲其他種類, 即,預測跳躍,而實際不跳躍,則B R C T L發送僅接著 分支指令之指令P C至F E C T L,以及指示預測、跳躍 "之失敗之資訊(C〇NT指令)。FECTL 1 〇1之 後改變執行方向而回至接續指令,而得到已經備妥以在下 一機器週期中解碼之下一指令。 (7 )當一非條件式分支係在D級中, BRCTL 1 5 0發送分支目標位址以及目標暫存器數目 至FECTL101。假如IART115係已經預載入 ,該目標指令經讀取而移動至D1 20,而在下一機器週 期中解碼。假如I ART 1 1 5並未被預載入,貝U FECTL101發出一取碼指令至IC105 ,而得到 必須之目標指令。 上述係以暫態之觀點而詳述計算系統1 0 0之運算( 即,在不同時間觀察特殊管線級之狀態)。而以指令之觀 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公釐) -_ (請先閱讀背面之注意事項再填寫本頁) 經濟部智慧財產局員工消費合作社印製 一-0、I n I I ϋ _ϋ 1 ϋ I I ϋ I ϋ ϋ IW ϋ ϋ ϋ -1 I ϋ 1 ϋ ϋ a— I ϋ 1 ϋ 1 ί ϋ ι 523711 A7 __ B7 五、發明說明(26 ) (請先閱讀背面之注意事項再填寫本頁) 點來看(即,觀察計算系統1 〇 〇之表現,以及特別是 8尺(:丁1^15 0回應於分支指令之特定類型),一額外 之互補情況係描述於後。 而由BRCTL 1 5 0所產生之分支控制指令,亦詳 ^述於後,而在附圖中,其包括其時序圖。可由本圖式而淸 楚的看出此電路之架構之時序需求,而此可藉由習知之各 種適當組構以及連接硬體邏輯、記憶體以及時脈電路而完 成,而不在此贅述。 目標指令位址暫存器之經增加位址換句話說( I A R · I A ) 1 5 5,係儲存包含經增加目標位址之入 口 ’假如對應於儲存在I ART 1 1 5之指令係表示分支 之有效目標指令。在此實施例中,8個分離入口係提供被 I AR · I A1 5 5。此電路係藉由讀取以及增加自取碼 指令閂鎖1 0 3所輸出之取碼位址(藉由加四或加八), 當此對應於分支指令之目標指令位址。 經濟部智慧財產局員工消費合作社印製 進出時間,雖未顯示,對於熟知此技藝者,一般相關 聯於處理器1 〇 〇之其他支援電路(包括作爲更新 I C 1 〇 5與DC 1 45之匯流排介面單元、浮點單元、 多媒體單元等),係不在此處顯示,而其只係爲了輔助說 明。其僅爲例子,對於熟知此技藝者,可以各種電路而運 算’而該後者可以各種本發明所謂出示之材料而實施。此 外’雖然只有單一管線展示,本發明並不限制於此實施例 ’而該優點可延伸至多管線之環境中。 如前述,以下控制信號(如圖2 A所示),係藉由在 -29- 本紙張尺度適用中國國家標準(CNS)A4規格(21〇 X 297公釐) 523711 A7 _ B7 五、發明說明(27 ) 預解碼級時,而在解碼控制線1 2 9中產生D EC 1 2 5 而作爲使用在BRCTL 1 5 0之輸入: (請先閱讀背面之注意事項再填寫本頁) (1 ) dec_branch_pd :此信號表示分支指令係在預解 碼級(DEC125) ί: ( 2 ) dec_unconditional :此信號表示其係爲在解碼級 1 2 5中之非條件分支 (3*) dec Jink :非條件分支/鏈結係在解碼級之信 號 (4 ) dec jolded :表示條件式分支(折疊)係在解碼 級中 (5 ) dec_pt :此信號表示分支控制指令(P T )係 在解碼級1 2 5中 (6 ) dec_iar_pd[2:0]:此信號(三位元寬),係表示 何者指令位址暫存器係由P T且/或分支指令所指定(或 指到)而包括該目標位址 (7 ) dec_hint :此信號係暗示位元而連接至P T以 及條件式分支指令中; 經濟部智慧財產局員工消費合作社印製 如上述進出時間中,以下之控制信號(如圖2 B所示 ),係藉由在分支控制線152中BRCTL150所產 生,而作爲使用在FECTL 1 〇 1之輸入: (1 ) bi*_fe_pt_vld_el :此表示在E 1中之分支控制 (P T )指令係正被執行 (2 ) br_f〇)r_addi:[31:0]:此提供分支目標位址 (3 ) br_fe_pt_iar[2:0]:此表示在 E 1 級中由 PT 指 -30- 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公釐) 523711 A7 B7 五、發明說明(28 ) 令所指出之IAR數目 請 先 閱 讀 背 £ 之 注 意 事 項 再 填 (4 ) br_fe_pt_hint ·表不 P T 指令之 Β Η B 之値 (5 ) brje_sQuash :此使用在失誤預測時,將目標取 碼予以淸除 ' (6 ) br_fe —br_iarnum[2:0]:表示連接至 br_fe_br_command 之 I A R 數目 (7 ) br je—br—command :表示分支指令。此指令係 經建構而包括以下資訊: 〔i〕 P T K N :預測跳躍 〔ii〕ATKN:實際跳躍 〔i i i〕C N T :連續=預測跳躍錯誤 〔iv〕PRLD:預載入 〔v〕I D L E :閒置 經濟部智慧財產局員工消費合作社印製 BRCTL150亦產生一 > 淸除〃 一 br_ppc__squash_dec 以及 br_ppc_squash„„El,其係由管線控制 單元(未顯示)所使用,以當其不再有效時,而自 DEC 1 2 5以及ALU 1 3 0中移除指令。此類型之指 令淸除運算在此技術領域中係屬習知,而因此可使用任何 相容於本發明之習知實施方式。BRCTL 1 5 0亦接收 上述所稱之分支失誤信號,其在此圖中係更特定的稱爲 imu_fcmp_pred_exl· 相同的,以下控制信號,如圖2 B所示,係由 FECTL101產生在分支控制線而作爲在 BRCTL150中使用之輸入: -31 - 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公釐) 523711 A7 -- B7 五、發明說明(29 ) (1 ) fejr_iaLreq :標示預載入請求 (請先閱讀背面之注意事項再填寫本頁) (2 ) fe_br_reqjar[2:0]:表示連接至 fe_br —iar_req 之 i A R數目 (3 ) fe_br_pred_ignore :將預測跳躍目標取碼忽略 〃之信號 其進一步接收來自來自於1C 1 0 5之控制部份的回 饋信號ic je_data,其使用作爲確認該兩指令實際係自快取 記憶體所讀出而回應於預載入請求。 之前,MUX_BR 1 4 6係爲目標位址之選擇器。 1^11又_81114 6係由以611(:丁1^15 0在分支位址 控制線1 5 1中之所輸出之選擇器信號所控制,其標示是 否具有特殊之P T指令。此選擇器之該控制邏輯係如下:
If (outstanding PT instruction)
Select Input A Else
Select Input B 經濟部智慧財產局員工消費合作社印製 假如分支係失誤預測,則輸出C之後經閘控,而回存 一般接續指令流(P C + 4 )。 同樣的,MUX_FE 1 0 2係取碼位址之選擇器。 MUX_F E 1 0 2係由來自於在控制線1 0 6上之 F E CTL 1 0 1之選擇器信號所控制(表示是否分支指 令,以及是否IAR· I A入口爲有效)所控制。此選擇 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公i ) 732 - 經濟部智慧財產局員工消費合作社印製 523711 A7 B7 五、發明說明(3〇 ) 器之該控制邏輯係如下:
If (branch instruction)
If(branch instruction)
·. Select Input A
Else
Select Input A
Else
Select Input C 取碼位址係如上述而儲存在指令取碼位址閂鎖( IFAL) 103·當此位址被送至IC105時,在圖 2 B係一般表視爲icc_fe^command之另一組取碼指令信號 ,由FE CTL 1 0 1而產生而在線1 〇 6上發送而控制 快取記憶體存取。此包括以下控制資訊: (1 ) cache_fill :以當快取記憶體失誤且而快取記憶 體塡滿時,存取主要記憶體。 (2 ) cache_no_fill :當快取記憶體失誤且快取記憶 體塡滿時,不存取主要記憶體。 (3 )閒置:不存取至快取記憶體。 處理器1 0 0之運算(包括本發明之其他種之具發明 性之觀點),可由圖1A所示之參考而看出。 如圖1 A所示,在本發明之採用之整體程序,係包括 以下步驟:在步驟1 8 0之分支運算;此時,分支控制( 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公釐) .33 - I i ·ϋ ϋ n ⧧ l_w n ϋ —mm I «ϋ ϋ ϋ ϋ ϋ «ϋ n ^ ^ _ 1_1 ϋ mKMm mmmmm ϋ ί tmf I 線丨_ (請先閱讀背面之注意事項再填寫本頁} 523711 A7 B7 五、發明說明(31 ) (請先閱讀背面之注意事項再填寫本頁) 經濟部智慧財產局員工消費合作社印製 P T )指令,實際上係發出此之後之運算至計算系統 100·之後,根據編譯器/軟體分析,係在步驟182 中執行關於分支指令係將跳躍或不跳躍之預測(藉由設定 前述暗示位元)。接著,分支目標位址資訊在步驟184 /中,根據P T指令所提供之資訊而製作。如上述,此資訊 係在偵測分支之前由於預載入運算而已經備妥。藉由此資 料,計算系統1 0 0之後設定管線以預載入適當之目標位 址暫存器以及目標指令暫存器於步驟1 8 6中。該分支條 件之後在步驟1 8 8中解出,以決定分支是否實際跳躍或 不跳躍。根據此決定,在步驟1 9 0中,計算系統之後決 定是否有任何因爲失誤預測之必須對於管線之調整。最後 ,在步驟1 9 2中,指令流係根據對於正確預測分支之任 何目標指令現在可用於執行,而適當的被導入至正確指令 順序。上述步驟雖然係以特定順序而展示,並不需要是其 不需以此方式執行,本發明並不限制於任何特定步驟時序 。例如,分支偵測運算(在步驟1 8 0中)係在解碼單元 DE C 1 2 5中執行,但是一般係當每個分支運算係在該 時間已經被偵測(步驟1 8 2 )。進一步,此處可淸楚知 道,許多的此些步驟係在相同時間而執行,或以暫態之觀 點來看係顯著的重疊。因此,對於熟知此技藝者應知,上 述係簡化以利描述,而非限制於本發明所採用之各種程序 之間之固定關係。 以下更詳細描述由上述分支處理電路以及於分支運算 之交互動作之特殊功能。 -34- 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公釐) 523711 A7 _ B7 五、發明說明(32 ) 支指令(像是額外指令之一般指_令)_ 在習知不關於分支指令中,取碼位址係在 FAL 1 〇 3中設定。於管線運算之F 1與F 2級時(2 /個機器週期),I C 1 〇 5係根據取碼位址而存取’而該 所讀出之資料被送至IB110·兩個序列指令可被一次 發送,因爲指令匯流排1 0 7係爲6 4位元寬。 IB11〇係被讀出(自上端),而一指令之後被儲存在 解碼緩衝器120 (同樣在級F2中)。此時, I B 1 1 〇以及D 1 20係經由MUX_D1 1 8而連接 ,因爲之前指令係非分支指令。此時,在D中之額外指令 係在解碼(D )級中而由D E C 1 2 5所解譯。任何必須 資料項目,亦在D級中而自GPR 1 3 0所讀出,而在 E 1閂鎖1 2 7 a與1 2 7 b所設定,而作爲額外指令之 運算元。該在E1中之運算元127a以及127b,之 後在E 1級中,而由A L U 1 3 0而作動,以有效一額外 運算。此計算結果之後於寫入級中而儲存在G P R 1 3 5 •雖然未顯示在圖1中,可知具有額外管線級(即,E 2 與E 3 )在電路1 3 0中,而其在以下視需要而參考以解 釋本發明之揭示。此處將相同構件刪去,因爲其對於本發 明之認識並不重要。 分支控制(P T )指令 上述相同之運算係會發生,除了當分支控制(PT) (請先閱讀背面之注意事項再填寫本頁) - I------訂·!丨!! ·線 經濟部智慧財產局員工消費合作社印製 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公釐) -35- 523711 A7 B7 五、發明說明(33 ) (請先閱讀背面之注意事項再填寫本頁) 經濟部智慧財產局員工消費合作社印製 指令係由D E C 1 2 5所解碼時’任何必要之資料必須自 GPR1 3 5或PC — D1 28b所讀出(因爲PT指令 之彈性特性,即,於P C或暫存器之位移可使用在計算目 標位址中),而在E1閂鎖127b中設定而作爲運算元 ^。當相同之D級時,D E C 1 2 5產生一系列控制信號於 線129中而至BRCTL150’包括dec一pt ( 包括Ρΐ指令之解碼),以及作爲相關聯於ΡΤ指令之額 外參數之資訊,包括dec_iar_pd與dec_hint °接著’於Ε 1 級中,儲存在E 1閂鎖1 2 7 b中之運算元係由 ALU130而運算。此時’ BRCTL150發出數個 控制信號於線152而至FECTL101 ’包括 br_fe_Pt_el (表示分支控制指令之執行)’以及 br 一 fe_pt_iar與br_fe_pt__hint(如上述)。再次,在該較佳實施 例中,br_fe_pt —iar 與 br — fe — pt —hint 可藉由 DEC125 而在解碼 級D中得到。在相同之E 1級中’ B R c T L 1 5 0表不 在I ART 1 1 5中之任何指令入口 ’其存在具有一目標 位址儲存在IAR.A140而由hr —fe —pt —iar所指到。此 係藉由對於在HB 1 Ο 4中此目標指令而設定第一(有效 )位元在指令有效暫存器於零。此外,br—fe — pt—hint資訊 係使用作爲對於目標指令而在HB 1 〇 4中之第一(暗示 )位元而設定。在E 2級中,新的目標丨乂址係可使用作爲 預載入,如後述。於w級中’ ALU 1 3 〇之結果(包括 新目標位址之計算)’係以br-fe_pt_iar之指定而儲存在 IAR.A140之入口。 36 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公釐) 523711 A7 B7 五、發明說明(34 ) 主動預載入 (請先閲讀背面之注意事項再填寫本頁) FECTL1〇1在本發明中係執行數個重要的功能 ,包括預載入分支目標指令以及對於經預測分支目標指令 予以取碼。之後的功能係與條件式分支而關聯而將於後詳 述,但是一般稱爲來自於指令快取記憶體之預載入指令之 處理,以=爲會一般程式流程,或是來自於序列指令(取碼 指令而載入至I Β 1 1 〇 )或分支指令(尋找 I A R Τ 1 1 5,而假如沒有找到目標指令時,而載入取 碼指令)。 經濟部智慧財產局員工消費合作社印製 預載入係指藉由F E C T L 1 〇 1而在閒置快取記憶 體週期,而由該指令事先(即,在需要之前)辨識、取得 以及放入至管線中,以確保連續、不中斷之指令流。在較 佳實施例中,主動與被動預載入處理兩者,係被使用。在 本揭示之內容中,”主動”預載入,係指根據經預測之分支條 件(及跳躍或不跳躍)而自I C 1 〇 5請求指令。換句話 說,主動預載入係在分支指令發生之前,而試圖自 I ART 1 1 5中載出指令。本發明之該主動預載入係通 常相當複雜,而將於後詳述。 相反的, >被動〃預載入,係相當簡單,而可解釋如 後。基本上,此程序係關聯於一般程式流時而在目標指令 中載出I A R Τ 1 1 5 ·並非一直可以以必須之目標指令 而預載出IART115(造成2個機器週期延遲)。此 時,當目標指令係在正常程式流而自I C 1 0 5中得到時 -37- 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公釐) 523711 A7 B7 五、發明說明(35 ) 而令 後指 之標 碼目 解確 而正 5 , 2 時 1 支 C 分 E 有 D 次 由再 由如 其假 在保 係確 5 此 1 因 IX , T 令 R 指 A 此 I 入 ’ 載 (請先閱讀背面之注意事項再填寫本頁) 將爲有效。因此,此類型之預載入,可在分支目標被解碼 之後而發生,但是確保相關之分支目標指令在大多數時間 時係爲無效。 在本發明中,主動預載入係非與本較佳實施例之指令 執行同步',但是明顯的其係以本發明之其他方式而實施。 現在回到更詳細的主動預載入之解釋, FE CTL 1 0 1最好係產生一預載入請求至I C 1 0 5 (假如其可作此)(即,BRCTL不需要某些其他運算 ,像是分支之指令取碼),而當其具有足夠多之指令於 I B 1 1 〇以保持管線充滿。在一較佳實施例中,預載入 係不執行,除非具有至少兩個已經有效之指令於 I B 1 1 〇中以便解碼;此係爲了確保管線免於與一般指 令取碼相衝突之過多於預載入請求之延遲之折衷。 經濟部智慧財產局員工消費合作社印製 爲了決定何者指令係預載入,而何者I ART入口係 無效的,FECTL101監視儲存在HB104之目標 指令入口之指令。特別是,當任何時脈週期時,其選擇指 令有效暫存器具有表示在I ART 1 1 5中之對應入口係 爲無效(即,有效位元爲0),以及在IAR入口之預載 入遮罩暫存器之相關聯暗示位元係標示分支至目標指令之 高可能性等(即,暗示位元爲1 )之位元値。此時,本發 明將預載入處理建立在預測機制’該機制注意似乎將跳躍 之分支,但是其係非將被執行之有效指令。 -38- 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公釐) 523711 A7 ____ B7 五、發明說明(36 ) 假如超過一個此入口係被偵測時,單一入口係最好被 根據在HB 1 〇 4中之載入優先序而選擇;例如,簡單之 方式係以最小索引數目而使用該入口。因此,徵詢選擇遮 罩暫存器,而有效之最低階級I AR被選擇。在此I AR ^入口被選擇作爲預載入之後,在選擇遮罩暫存器中之對應 位元被淸除,以確保無接續者試圖預載入此入口。因爲.在 預取碼蓮算時有線之閒置時間之限制,可看出,在某些環 境下,較低等級IAR(像是IAR6或IAR7)無法 達成主動預載入請求。因爲I AR入口現在可在指令位準 中指定(而爲分支控制(P T )指令之部分),電腦系統 1 0 0之微型架構之主動載入表現,可在碼部份而加以控 制。換句話說,該編譯器可主動分級而藉由指定此些指令 之不同等級之I AR等而優先的預載入。例如,對於類似 之分支之分支控制(P T )指令,可指定低等級(rank ) 之I AR,而非分支指令將具有較高等級之I AR。此優 先序方式,相對於其他架構係具有許多之優點,像是 F I F0以及L I F0。在之前的情形中,無優先序之可 能,而所有I A R係給定相等之機會,所以無法影響或控 制預載入表現。後者之情形係可使用作爲對於最近期所見 到之分支控制(P T )指令之命中率,但是有時更複雜以 實施。對於某些原因,在該較佳實施例中,由最低至最高 等級之方式,係使用使用標示在任何時間中之何者I A R 係仍爲有效之預載入。 本方式進出時間具有BRCTL 1 5 0在預載入請求 (請先閱讀背面之注意事項再填寫本頁) · an i n I _1 I -ϋ 一-or n n I ϋ ϋ n mmte I n 經濟部智慧財產局員工消費合作社印製 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公釐) · 39 - 523711 A7 B7 五、發明說明(37 之做決定程序中,因爲本發明人發現此造成更佳的將指令 饋送至處理器1 0 0之管線級中。因此,當 F E C TL 1 0 1偵測到此預載入之有效入口時,其發出 fe_br_preload_req於線1 5 2,以初始預載入請求,且以在 fe_br_prel〇acLiar中所指定之預載入控制資料而通知輸入數 目之 BRCTL150 ·當 BRCTL150 接收 fe_br_preload_iar之後,其根據此信號而自I AR · A之指 定入口而讀出目的位址。 此時,假如每有分支指令需要在相同機器週期中執行 時,預載入指令(PRLD)係藉由br-fe_br_command ( 之前所述)而由BRCTL 1 5 0所產生,而在線1 5 2 中而發送至FECTL101 ·在相同之時間中,讀出目 的位址係在MUX_BR 1 4 6之輸入中而表示。且,由 feJipreloadjar所指定之暫存器數目係經由信號 iarnum[2:0]而自 BRCTL 而對於 IAR· IA155 之儲 存/入口控制而發送。 假如具有任何之分支指令需要在相同機器週期中執行 時,在來自於 FECTL 1 〇 1 之信號 fe_bi:_preload_reci 之 預載入請求,係被BRCTL 1 5 0所忽略。當 FECTL 1 0 1 接收置於 br_fe_br_command 中之 PRLD指令時而不需要以更多之指令塡入於I B 1 1 0 (即,當超過兩個指令係儲存在IB110中), FECTL 1 0 1之後開始執行預載入。即, FECTL 1 0 1控制MUX_BR1 46以選擇來自於 請 先 閱 讀 背 面 之 注 意 事 項 再 填 I, 經濟部智慧財產局員工消費合作社印製 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公釐) -40- 523711 A7 _ B7 五、發明說明(38 ) 線B之I AR · A1 40之目標位址,而之後藉由控制 MUX— FE 1 0 2而設定在FAL 1 0 3之位址,以選 擇其所表現之輸入B 。當預載入運算發生時,信號 cache — nojill 亦藉由 FECTL101 而在 iccje —command /中發送至I C 1 0 5,以禁止不必要之對於處理器所使用 之主記憶體系統(未顯示)之存取。 假如對應於目標位址之有效指令係位於I C 1 0 5中 ,可藉由指令線1 0 7而發送以儲存至I ART 1 1 5 · 此時,FAL之內容係藉由加四或加八(根據由 I C 1 〇 5所取碼之指令數目)而增加,而入口之後係儲 存在IAR· IA155·後者步驟之目的係在於額外之 目標指令可在當之後執行使用在I ART 1 1 5中指令之 任何分支指令時,而快速的預載入。 上述預載入運算係在對應於分支控制(P T )指令之 E 2級中之後,而在任何時間中執行。假如P T指令之執 行係不完全完成,且目標位址並未儲存在 IAR· A140 中,BRCTL150 偵測具有 PT 指 令正在執行,而於是控制MUX_BR 1 4 6發送 ALU 1 3 0 (輸入A)之計算結果而直接作爲目標位址 。對於熟知此技藝者應知,在由FECTL 1 0 1決定何 時去預載入指令之決定’可使用爲預取碼目標指令(即’ 假如在指令快取記憶體中係爲無效時,其必須自主記憶體 而取碼)(假如需要的話)。 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公釐) -41 - (請先閱讀背面之注意事項再填寫本頁) taj· --線- 經濟部智慧財產局員工消費合作社印製 523711 A7 _ B7 五、發明說明(39 ) 分支指令 在本發明之較佳實施例中,可處理三種分支指令。此 些包括·· 〔 1〕非條件式分支指令;〔2〕具有分支暗示 位元(Β Η B )等於1之條件式分支指令;以及〔3〕 f Β Η Β爲〇之條件式分支指令。 圖2 C之表格係本發明三種分支指令之分支處理效會έ 之總覽。'此標頭包括:分支類型(非條件式或條件式); 預測(即,是否預期其將跳躍或不跳躍);實際分支方向 (即,是否其實際要跳躍或不跳躍);以及各種可能之目 標指令暫存器條件(即,具有1指令與0指令兩個指令之 1八11丁,且1六11.六未備妥)。對於每個潛在的狀況 ,而識別延遲機器週期之相關聯數目。此具有三種分支延 遲機器週期之來源,其可簡述如下: (1 )等待目標位址被計算:因爲本發明無法將該分 支指令快速的預解碼,因此必須不需在目標位址被完全解 碼之前而在此時將目標位址備妥。因爲分支控制(Ρ Τ ) 指令直到Ε 2級時才前送該目標指令,因此至少有一”氣 泡〃(單一級間隔於管線中,該間隔係不執行指令)在當 分支控制(Ρ Τ )指令與分支指令分別出現時,而產生。 多數情形中,相當有效率之編譯器可確保在兩個該兩種指 令之間有夠多之指令,以避免此問題。 (2 )等待目標指令被取碼:此延遲係IC105之 進出時間機器週期以及I ART 1 1 5是否在一些指令中 已經備妥之功能。在此處所述之較佳實施例中’ 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公釐) _ 42 - (請先閱讀背面之注意事項再填寫本頁) 經濟部智慧財產局員工消費合作社印製
I ϋ ·1 ί ϋ ϋ- ϋ 一I ! MM MM MB Μ» ΜΗ 値 -I I ·1 ϋ 1 IJ ϋ ϋ -«1 ϋ -ϋ n ϋ I ^1 ·ϋ ϋ Βϋ ϋ n n ϋ I 523711 A7 _____________ B7 五、發明說明(40 ) (請先閱讀背面之注意事項再填寫本頁) I C 1 〇 5具有2個機器週期進出時間,而I ART可保 持2個指令。此意指最差的情況需要2個機器週期,而最 好之情況不需要機器週期。 (3 )更正管_線載入失誤預測。失誤預測指令必須被 「a淸除〃(自管線中淸除);因爲更正可在E 2級中而決 定,而至少2個指令需要被移除。 由該表格可看出,假如預載入成功(2個指令備妥在 所示第四行之I ART 11 5中),則本發明可極有效的 在計算系統1 〇 〇中減少/刪去進出時間。 現在提供在特殊預測情形(預測跳躍或不跳躍)以及 運算環境(即,IART備妥或未備妥)之下,之特殊類 型之分支指令(即,條件式或非條件式)之程式流的詳細 解釋。 雖然並未非常詳細的描述該情形,本發明之基本要義 ,藉由此些例子以及附圖而完全而正確的展示,使得可適 當的教導熟知此技藝者如何最佳的實施以及使用本發明。 經濟部智慧財產局員工消費合作社印製 非條件式分支指令 如前述,在正常運算時,取碼位址係已經設定在 FAL103中,IC105之後在F1與F2級中,而 根據此位址而存取,而該些指令被送至IB110·如前 述,IB110之內容被讀出(自緩衝器之最上端)而儲 存在閂鎖D 1 2 0 ·而在D級中(實際上係在預解碼級P 中),此指令被D E C 1 2 5所解碼,而當其係爲非條件 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公釐) -43 - 523711 經濟部智慧財產局員工消費合作社印製 A7 B7 五、發明說明(41 ) 式分支指令時,以下信號 dec —branch_pd , dec_conditional( = 0),dec_hint,與 dec_iar_pd 由 DEC 1 2 5所產生,而送至線1 29中而輸入至 BRCTL150。BRCTL150 之後檢查 decjar_pd /所指定之Η B 1 0 4之對應入口之有效欄位(第一位元) ,以決定I A R Τ 1 1 5是否係對於此特定非條件式分支 指令係爲/有效之目標指令。當有效位元爲1 ’表示 I A R Τ 1 1 5中係有效指令,則B R C T L 1 5 0自適 當之IART115入口而閘取(gate)(讀取)此 目標指令,並經由MUX_D 1 1 8而發送該指令至閂鎖 D 1 2 0 ·此架構使其可將目標指令放置於D級中,而不 需要有任何延遲機器週期。換句話說,甚至當將被執行之 下一指令不會立即接著在程式序列中之該非條件式分支指 令之後,其可藉由其已經根據上述之分支控制(PT)指 令之解碼/執行而預載入,而設定適當之目標位址、目標 指令等,使其當分支指令在管線中解碼時而已經立即備妥 〇 且,在分支指令之解碼級中,信號ATKN (分支實 際跳躍)係使用 br_fe_br_command 而由 BRCTL 1 50 而送至FECTL10 1 。此外,目標位址係自由 dec_iar_pd所指定之I AR · A之入口而讀出,而作爲至 MUX — BR140之輸入B。該持有目標位址之IAR 數目,亦藉由br_„fe_br_Jarnum而自BRCTL 1 5 0而發 送至 FECTL101。當 FECTL101 接收 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公釐) III l*i — — — — — — # n 1 n ft— n I n 1 n ϋ ϋ l I I (請先閱讀背面之注意事項再填寫本頁) •44- 523711 經濟部智慧財產局員工消費合作社印製 A7 B7 五、發明說明(42 ) A TKN信號時,其之後藉由再次檢查對應於此I ART 入口之HB 1 〇 4之第一(有效)位元,而檢查由 br__fe_br_iarnum所指到之I A R T入口之有效性。 此時,假如I ART1 1 5具有兩(2)個有效指令 ,時,此意味該分支將執行而沒有進出時間延遲,因爲目標 指令已經被預載入而可有效執行。於是,預取碼運算,可 在在已經·儲存在I ART1 1 5中之指令之後而自 I C 1 0 5中得到。此指令之位址已經被計算而以上述之 方式而儲存在IAR· IA。因此’下一目標位址可自 IARIA155 (而不是 IAR-A140)中讀出, 而作爲MUX_FE 1 02之輸入A,而之後由 FECTL101選擇,使得其發送至FAL103,而 作爲IC105之取碼位址。因此,FECTL101根 據之前計算(增加)之目標位址而存取I C 1 0 5。 I B 1 1 0之後載入由此目標位址所指到在I C 1 〇 5中 之指令。此時,適當之目標位址可連續的以正確序列而提 供,而避免習知當執行分支指令所產生之習知延遲機器週 期,像是自管線淸除、重存取該指令快取記憶體以載入新 指令、重載入此指令於指令緩衝器等。對於較佳實施例, 該目標指令以及下一指令,係自I ART 1 1 5中載入, 而之後的一些指令係之後自I C 1 〇 5而載入至 I B 1 1 〇 ·最好是,在某些環境中,可根據有效佈線空 間、電力需求等而改變IART1 1 5之大小。一般而言 ,爲了達成良好之效能’此緩衝器需要夠深(deep )(在 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公釐) 1· n n I ϋ n I I I n I #------ 訂---------線—Awi (請先閱讀背面之注意事項再填寫本頁) -45- 經濟部智慧財產局員工消費合作社印製 523711 A7 B7 五、發明說明(43 ) 此實施例中,兩個入口係足夠),以取得任何指令快取記 億體進出時間之間隙。 展示介於上述情形之信號等之間的時序關係之時序圖 係展示在圖3A中。 ·: 假如I A R T入口經發現係爲無線, MUX_D1118可經控制而選擇IB11〇於輸入B 中。FECTL101 控制MUX_FE102 ,以選擇 來自於I AR · A 1 4 0之輸入B上之目標位址。此發送 自I AR · A之目標位址之後載入至FAL 1 0 3,以及 ,如上述,對於I C 1 0 5之存取而配置適當的目標指令 。此來自於I C 1 〇 5之有效指令,之後被發送並儲存至 IB110與IART115中。根據此架構,甚至當分 支指令第一次未備妥,至少當相同之非條件分支指令再次 執行時,I ART應該可儲存正確之目標指令。因此,當 此指令再次遇到,之前所述之程序將被執行,而潛在之數 個延遲機器週期將因爲適當之目標指令已經預載入而再次 省下來。 圖2 D至2 F係提供對於非條件式分支指令執行之三 種可能情況之在計算系統1 0 0之管線狀態之可視瞬間圖 。此些包括:(1 )非條件式分支,其中該目標指令係在 115中有效;(2)非條件分支,其中目標指令係不再 IART115中;(3)非條件式分支,其中甚至目標 位址未備妥(此時,例如,當在介於P T指令與相關聯分 支指令之間之時間中係非適當分開)。對於每一情況’有 本紙張尺度適用中國國家標準(CNS)A4規格mo X 297公釐) - 一--------I---^-----------AW1 (請先閱讀背面之注意事項再填寫本頁) -46- 經濟部智慧財產局員工消費合作社印製 523711 Α7 Β7 五、發明說明(44 ) 一指示以指定管線載入以及相關聯於此分支執行之最大進 出時間延遲。 包括Β Η B = 1之條件式分支指令 夂 基本上,具有ΒΗΒ=1之條件式分支指令之運算/ 表現,係與上述之非條件式分支指令者相同。該主要不同 如下:當‘具有Β Η Β = 1之條件式分支指令,在D級時解 碼,BRCTL 1 50產生病發送信號ΡΤΚΝ (預測跳 躍一而非上述之ΑΤΚΝ實際跳躍)至FECTL 1 〇 1 。在當條件式分支條件係如預測而實際跳躍,該系統將表 現的與上述非條件式指令運算一樣。圖3 Β係展示此情形 下之控制信號之間之關係的時序圖。該管線載入,在正確 預測之情形,係實質與圖2 D至2 F者相同,而不再此重 當失誤預測發生(即,條件式分支不實際跳躍),則 以下程序流將發生:在條件式分支之Ε 2級中, A L U 1 3 0決定分支條件係爲假,而經由信號 imu jemp_pred_Exl 而通知 B R C T L 1 5 0 此一情形。 BRCTL 1 5 0之後藉由b r_f e_b r指令而產生 並發送信號C N T (連續失誤預測跳躍)至具有新目標位 址之FECTL101。此時,假如分支不跳躍時,下一 個將被執行指令,將係接著程式流接續之分支指令之 I Β 1 1 〇中之一個。於是,新的目標位址,係爲將分支 指令之程式計數器(P C )加四,而經由 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公釐) I----------------— — — — — — ^ « — — — — — — I— I IAWI (請先閱讀背面之注意事項再填寫本頁) -47- 523711 經濟部智慧財產局員工消費合作社印製 A7 B7 五、發明說明(45 ) MUX — BR 1 4 6而載入。在管線中之該些級中之資訊 ,包括閂鎖D 1 2 0與Ε 1閂鎖1 2 7 a係藉由 BRCTL 1 5 0而無效化,因爲其包含現在並不正確的 來自於I ART1 1 5所載入之指令。此將因爲即使分支 指令不實際跳躍時之一小的進出時間延遲,該管線仍具有 可作爲處理之適當指令。所必須作的是,錯誤載入指令必 須被淸除(移除),而該管線必須載入以正確之指令流。 但是,由於失誤預測分支之數目係預測爲小的,此進出時 間延遲係可藉由此處所述之整體分支處理架構所表現之效 能優點,而使之變得更佳。
當FECTL 1 〇 1接收CNT信號時,其將經由其 使用 MUX_D102 而發送 PC + 4 至 FAL103, 如前述,以取得適當之目標指令,使得管線可重載入。展 示此情形之相關控制信號之間關係的時序圖,係於圖3 G n|ii 〇 圖2 G至2 I ,係提供條件式分支指令係失誤預測爲 跳躍而實際上係不跳躍之三種可能情形而在計算系統 1 0 0中之管線狀態之瞬間圖。此包括(1 )預測跳躍而 實際不跳躍之條件式分支,其中目標指令係在 I A R T 1 1 5中有效;(2 )預測跳躍而實際不跳躍之 條件分支,而其目標指令係不再IART115中;(3 )預測跳躍而實際不跳躍之條件式分支,其中該目標位址 尙未備妥。對於此些情形,有一指示,以表示管線載入、 以及關聯於此分支執行之最大進出時間延遲。 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公釐) ϋ H I ϋ H ϋ (V ϋ H ϋ ϋ I #—— 丨訂---------線—Awi (請先閱讀背面之注意事項再填寫本頁) -48- 523711 A7 B7 經濟部智慧財產局員工消費合作社印製 五、發明說明(46 ) 县有Β Η B = 0之條件式分支指令_ 在此時,當分支指令之D級中,請求分支指令預載入 (PRLD)係由BRCTL150而發出。g卩,當 B R C T L 1 5 0自線1 2 9而自D E C 1 2 5而接收 dec —branch_pd=l,dec_conditional = l,以及 dec —hint = 0 時,. BRCTL藉由檢示在HB 1 Ο 4之對應暫存器入口中之 第一位元(有效位元),而檢查由dec jar_pd所指定之在 IART1 1 5中之入口之有效性。假如IART入口係 爲有效,BRCTL將不作任何進一步之事。此因爲,以 效能之觀點來看,甚至當分支預測爲不跳躍者,係之後證 明爲錯誤,其將每有進出時間延遲,因爲分支之正確目標 位址係已經被載入至I A R T 1 1 5。此情形之信號時序 關係係在圖3 D中。 另一方面,假如在I ART 1 1 5中之對應入口係爲 無效的,BRCTL1 50讀取在IAR · A1 40所指 出之目標位址,而以在bLfe_„br_command中之控制信號 PRLD(預載入)而發送相同於線B上之 FECTL101中。其亦使用br —fe_brjarnum信號,而 發送由分支指令所指定之I AR · A 1 4 0輸入號碼。假 如沒有於I B 1 1 〇所塡入之指令取碼相衝突,預載入請 求係發送至I C 1 0 5,而運算之後以上述相同之方式而 進行主動預載入程序。 以運算之觀點來看,可看出當NGN表示該分支將不 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公釐) ----.—-------------^---------^—AWI (請先閱讀背面之注意事項再填寫本頁) -49· 經濟部智慧財產局員工消費合作社印製 523711 A7 B7 五、發明說明(47 ) 跳躍,且分支實際上不跳躍,則程式執行流將與一般指令 一樣,而無進出時間。當BHB表示分支將不跳躍,而實 際上係跳躍,在E 2級中執行流將於非條件式分支狀況中 之D級中相同。此時,D閂鎖1 2 0與E 1閂鎖1 2 7 a 1 2 7 b必須爲無效。 對於上述正確之預測/實際跳躍情形,預測不跳躍而 實際不跳'躍,將具有實質上與非條件式情形之圖2 D所示 情形相同。 對於不正確的預測不跳躍而實際跳躍的情形,圖2 J 至2 I將提供三種非條件式分支指令係失誤預測而實際不 跳躍之情形之計算系統中管線狀態之可視瞬間圖。其包括 :(1 )預測不跳躍而實際跳躍之條件式分支,而其中目 標指令係在I A R T 1 1 5中爲有效;(2 )預測不跳躍 而實際跳躍之條件式分支,其中目標指令係在係不在 I A R T 1 1 5中;(3 )預測不跳躍而實際跳躍之條件 式分支,其中目標位址係不備妥。對於此些情形中,有一 指示,以表示管線載入、以及關聯於此分支執行之最大進 出時間延遲。 由此圖中可知,本發明係使用額外試圖,以更正此類 型之失誤預測。此因爲,如圖2 1所示,IART1 15 將仍具有備妥以執行之分支指令,儘管分支係爲失誤預測 。進一步,甚至當I ART 1 1 5不具有此些指令時, BRCTL 1 5 0將仍試圖以FE CTL之協助而載入他 們(以分支之預測不跳躍狀態),除非其具有較高優先序 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公釐) . -----ΑΨ------ 訂---------線— (請先閱讀背面之注意事項再填寫本頁) -50- 經濟部智慧財產局員工消費合作社印製 523711 ___B7___ 五、發明說明(48 ) 取碼懸置。因此,可避免顯著的潛在進出時間機器週期。 信號時序考量 圖3 A至3 G係展示於此處所述之實施例運算所使用 /之各種信號(以及其間關係)之時序圖,包括當分支指令 處理程序。此圖特別描述:(1 )管線級之狀態;(2 ). 指令流之進行:(3 )識別物件(identity )以及上述有 DEC125、BRCTL150,FECTLl〇l 以 及其他控制邏輯所產生之控制信號之相對時序關係,以對 於可在計算系統1 0 0中引起之數個特殊運算狀態。個別 是,該潛在狀態係包括:(1 )圖3 A —當 I ART 1 1 5係對於目標指令備妥時,而正在處理之非 條件式分支指令;(2)圖3 B —具有表示分支將跳躍, 而I ART 1 1 5在當此分支實際跳躍時已經備妥目標指 令之預測(暗示位元)之條件式分支;(3 )圖3 C,像 是圖3B,除了 IART115尙未備妥;(4)圖3D -具有表示分支將不跳躍,而此分支實際跳躍,但是I A R T 1 1 5並未備妥目標指令之預測(暗示位元)之條件 式分支;(5)圖3E—具有標示分支將不跳躍,而 I ART 1 1 5已經備妥目標指令,但是此分支實際跳躍 之預測(暗示位元)之條件式分支;(6 )圖3 F —與 3E相同,除了 IART115係未備妥;(7)圖3G 一與圖3D相同,除了 I ART 1 1 5係對於目標指令備 妥。由此些圖中可知,TO至T7,係指上述IAR等, 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公釐) --------------1 ^_wl — — — — — — ^------111 I —^wi (請先閱讀背面之注意事項再填寫本頁) -51 - 523711 經濟部智慧財產局員工消費合作社印制衣 A7 __B7 ___ 五、發明說明(49 ) 而i b 〇係指I B 1 1 〇 ·此係作爲潛在指令狀態之表現 例,當然,處理計算系統1 0 0之其他運算狀態所需要之 控制信號之其他結合,對於熟知此技藝者將係顯然的。 此外,圖3 Η展示經改進之分支控制(P 丁)指令如 /何由計算系統1 0 0而處理。當非條件式分支指令(圖中 以虛線表示),係接著管線中之此指令時,其必須之目標 位址係Ξ經完成計算(在Ρ Τ指令之Ε 1級中)而係不可 在分支指令之執行級中(Ε 1 )而用來載入目標位址。 由此可知,對於熟知此技藝者,上述發明之優點包括 (1 )甚至當分支僅執行一次,可有一次命中至位在 IART115中之目標指令。 (2) IART115並不非常大,因爲編譯器可分 析整個程式,而之後最佳化在此緩衝器中之有效入口之使 用;此節省採用此結構之處理器1 0 0之空間以及能量消 耗。 (3) 在IART115中之目標指令入口,係藉由 分支控制指令所直接傳送之指令位址暫存器(I A R )號 碼而存取,所以延遲將被最小化/避免。 (4) 根據解碼分支指令(一般爲兩個機器週期)而 接收快取記憶體入口( 2個指令)之取碼進出時間,係實 質藉由該具發明性之預載入程序而移除,因爲每個預載入 入口可提供兩個指令(此節省兩個機器週期)。 (5 )大多數,只有三個指令需要被置於分支控制( 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公釐) -----—--------------------^ —Aw. (請先閱讀背面之注意事項再填寫本頁) -52- 523711 經濟部智慧財產局員工消費合作社印制农 A7 B7 五、發明說明(50 ) p T )指令以及分支指令之間’以使上述處理極爲有效。 此由於,在P 丁指令被解碼之後,目標位址在P 丁指令執 行之E 2級時而爲有效,而使需要此目標之分支指令最好 係不在該D級中(即,超過2個級/指令於其後)。此圖 〃中,當然,將根據特殊相同架構而對於每種管線而有所變 異。 (61係使用兩種預載入(主動式以及被動式)。此 方式可改進適當目標指令將及時被載入以執行的機會。 經改進的分支控制/分支指令 上述之微型架構,係特別設計爲協調使用分離格式之 分支處理,藉此,一分支控制指令事先設定一管線,使得 後者之分支控制可快速而有效的執行。所揭示部份之以下 部份,係更直接關於分支控制指令以及相關聯分支指令之 結構之較佳實施例。此實施例係分別在圖4A與4 B中表 示。 關於起始澄淸(clarification )點,分支控制(P T ) 指令,係在此處敘述,以作爲來自於實際分支指令之整體 分離指令。而此指令係作爲數個目的,一個係爲主要之功 能,係以簡化之觀點,在於啓動(alert )電腦系統,其應 該在指令流中很快的”準備分支〃。因此,當其執行不共 通於習知分支指令之某些功能,其可以運算/功能之觀點 ,而考慮作實際分支指令之邏輯構件,因爲該兩個係始終 爲邏輯以及運算鏈結。且,當本發明所揭示者,係討論二 $纸張尺度適用中國國家標準(CNS)A4規格(210 X 297公釐) I I I ----- ---- I I I I I I I ^ ·11111111 -- <請先閱讀背面之注意事項再填寫本頁) 經濟部智慧財產局員工消費合作社印製 523711 A7 一 B7 五、發明說明(51 ) 指令,以更佳描述本發明,應瞭解,該二個將整體形式而 實施,而對於程式設計師係透通的(trandparent )。例如 ,當使用本發明而設計計算系統之程式時,可能只有整體 分支指令對於軟體程式開發者/寫程式者,而爲可視。此 ^開發者可能或不可能展示或提供外顯工具,以藉由其本身 而以高階格式而實施該分支控制指令。或者,在寫入整體 程式碼室高階語言指令集,包括條件式回路部份,之後, 編譯器將轉譯此協高階語言指令成爲最適合以及最佳以在 特定計算系統1 〇 〇中執行之格式的適當分支控制/分支 對。該編譯器亦得到必須之目標指令位址計算以及目標指 令,使得I AR T 1 1 5可有效的預載入,以處理在特定 程式碼中之分支運算。 參考圖4A中,檢查特定格式之分支控制(PT)指 令410,因此,可看出包括以下欄位: (1 )運算碼(6位元):此欄位係作爲當預載入處 理時,作爲識別對於計算系統1 0 0爲獨一無二之指令。 (2 ) RM/edi sp (6位元):該欄位係作爲 指定在GPR1 3 5中之一個暫存器或是使用後述之PC 相對分支之延伸欄位,而可考慮作爲暗示係爲間距(offset )之相對基底(base )或絕對基底之目標位址基底參數; (3 ) D i s id ( ΐ 3位元):表示P C相對分支之 PC間距,而可與edi sp (6位元)結合而產生19 位元之位移 (4 ) L ( 1位元):P T指令之近似位元(預測位 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公釐) — — — — ί II ·!11111 — — — — — — t — — — — — — — — 11 (請先閱讀背面之注意事項再填寫本頁) • 54 經濟部智慧財產局員工消費合作社印製 523711 A7 B7 五、發明說明(52 ) 元),表示目標指令對於至少一分支係需要之可能性;注 意,此參數係與習知預測位元有一點不同而更佳複雜估算 ,而詳述於後,因爲其考慮數個分支運算之累積預測 (5 ) R ( ΐ位元):標示目標計算是否暗示P C或 /暫存器 (6 ) I A R ( 3位元):指定八個(8 ) I A R ·_ A之何者係在其計算之後,將以目標位址而載入 (7 ) R e s ( 2位元):係保留作爲未來之功能 雖然本實施例係特別適合於使用在上述之計算系統 1 0 0中,淸楚的,許多其他之變異,可根據特殊設計選 擇、系統架構等而成爲可能,且該變異係在本發明之範圍 內。分支指令(PT)之其他額外特性,係進出時間改進 使用在計算系統1 0 0中之分支控制邏輯之彈性以及效率 。因爲目標位址係事先計算,除了可在其實際儲存在 IAR · A140中之一個IAR之前而檢查。該目標位 址可經檢查,而確保其係在位址空間之部分中實施,否則 將有例外發生。該目標位址可經檢查而確保其係與目標指 令相連接,否則將有例外發生。其他之應用可能需要檢查 額外類型之例外。 此些例外允許軟體錯誤在指令流中事先被捉出,而可 簡化除錯。此外,事先之例外偵測可確保只有有效指令位 址係置於I AR中。此可減少在I AR中儲存量,因爲, 例如,其不需要儲存對應於未實施位址空間之位址位元’ 以及不需要標示在I AR中所保有之値係爲無效的。此外 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公釐) — — — — Γ — — — — — — — — — — — — ·11111111 I I (請先閱讀背面之注意事項再填寫本頁) -55- 523711 A7 B7 五、發明說明(53 ) (請先閱讀背面之注意事項再填寫本頁) ,此建構簡化其實施,因爲其不需要序列取碼或分支機m[J ,而實施考慮I AR値爲無效時之邏輯。且’因爲上述之 目標位址基底參數以及位移欄未知大小、在分支指令中之 有效控制欄位,可被更良好之應用(因爲位址計算係不需 /要)。在本實施例中,最少可支援四種P T指令類型·· P T A間距,目標 藉由根據相對於P C之位移 量而加入# 一常數,而製備相對於P C之目標位址 PTB間距,目標 與上相同,除了不同之常數 係使用,使得此指令可使用分支至模式B目標指令 PTABS位址,暫存器 藉由儲存在特定 IAR之値而製備目標位址 PRTREL間距,目標 藉由將儲存在特定 I AR之一中之値與P C相加而製備出目標位址 經濟部智慧財產局員工消費合作社印制衣 對於熟知此技藝者可有其他類型,且可根據P T指令 410所使用之寫碼欄之種類以及有效性而簡易的實施。 此外,如上述,該分支控制(PT)亦可包括其本身之分 離預測位元;此參數實際考慮於之後所述本發明之分支指 令者相當之不同。此暗示係相當顯著,在其加入一在習知 技術係爲不近似之預測分離階層。此係因爲(如上所見) ,該P T暗示位元一般係使用作爲在計算系統1 〇 〇中推 論預測/執行預取碼之運算,而考慮需要特定分支目標位 址之潛在分支運算之數目的累積機率,而後者係僅使用作 爲之後之辨識指令流之流動(跳躍或不跳躍)。在決定該 P T暗示位元中,競爭考慮之數目需要考慮。例如,如前 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公釐) -56- 經濟部智慧財產局員工消費合作社印製 523711 A7 B7 五、發明說明(54 ) 述,可能有數個分支指令係關聯於單一 P T指令。因此, P 丁暗示位元必須分解(factor )任何此些潛在分支之一可 能暗示或需要目標指令之可能性。以高階的觀點來看’因 此,P T暗示一般係預測特殊目標指令,似乎對於 ··' I ART 1 15係需要的。在申請人之經驗中,此分支可 能性的累增考慮,係提供更正確之目標指令預測程序,而 確保更適'當指令事先載入,而在需要執行時係備妥的。例 如,假如其藉由編譯器分析而決定有三個分離分支係使用 相同之目標位址,而其每個具有約4 0%之機率(5個中 有3個)會跳躍,則可能使該分支暗示位元將不對於任何 分支而設定爲跳躍。然而,在累增之後,其可看出該些中 之一個有使用目標位址之9 8/1 2 5之機率’或幾乎爲 8 0% ·於是,在效能之觀點,其對於以目標指令而預載 入I ART 1 1 5有較高之優點,因爲其似乎將在程式執 行時而在某些時候使用,而可藉由如此而避免許多之延遲 機器週期。 圖4 B所示,係習知程式中之使用P T指令之例子, 其中兩個P T指令係設置於兩不同回路(BEGIN__L〇〇P與 I N C )之前。如上述之理由,此些指令係在相對分支指 令之前而被設置(如圖4 B所示)。最好是,此些分支控 制指令係經建構,使得具有與讀取目標位址暫存器之分支 指令最大分離之動態指令流。再次,此使得分支機構具有 最大之時間量,以建構將被改變或維持而需要延遲之指令 流之最大時間量。此指令之設置’可使用像是回路/區塊 本紙張尺度適用中國國家標準(CNS)A4規格(210x297公釐) iil·——Φ—— —訂--------- 線丨# (請先閱讀背面之注意事項再填寫本頁) -57- 經濟部智慧財產局員工消費合作社印製 523711 A7 B7 五、發明說明(55 ) -不變異碼動作、共同子表示刪除、暫存器配置與指令安 排之標準編譯器技術而大大的最佳化。其中更多於一個分 支之PT指令,係稱爲相同目標指令時,該PT指令可被 合倂;而,如前述,該PT暗示位元可根據對於多重分支 夂之預測情況之估算而調整,以更好的反應預期指令流條件 。以實際之觀點,在最佳化之唯一限制係根據特定環境限 制,像桌功能呼叫之大小,所使用位址暫存器之數目,以 及在程式中任何資料/控制之相關性。 現在檢示在圖4 B中之經改進分支指令4 2 0之特定 格式,而可看出包括以下欄位: (1 )運算碼(6位元):此欄位係使用在預解碼處 理時,辨識在計算系統1 0 0中獨一無二之指令 (2 ) Rm/Pm ( 6位元):此欄位係使用作爲辨 識在GPR 1 3 5中之一個暫存器,或是一暫存器預測( 即,像是真/假之邏輯條件); (3 ) Rn/PN (6位元):此欄位係使用作爲識 別在GPR 1 3 5中之另一個暫存器(或第二暫存器預測 ); (4 ) Re s/imm (5位元):此係保留 (5 ) L ( 1位元)••對於P 丁指令之預測位元 (6 ) I A R ( 3位元):指定何者之IAR.A暫 存器將在其計算之後而載入目標位址 (7 )延伸(3位元)••指定調控分支運算或分支邏 輯類型之邏輯運算,即,BEQ,BGE,JMP, 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公釐) •I ft— I ϋ ϋ n mrf Λ— ϋ n —i I a— n n n ϋ I · ϋ ft— ·>1 ϋ ϋ n n I ϋ 1 (請先閱讀背面之注意事項再填寫本頁) -58- 經濟部智慧財產局員工消費合作社印製 523711 Α7 ___ B? 五、發明說明(56 ) 'B SR等;注意,該此些運算係根據雨個分離暫存器之預 測條件或算術而得(如上述) (8 ) E e s ( 2位元):其係留作未來使用 關於P T指令4 1 0,雖然此實施例係特別適合於在 ’上述計算系統1 〇 〇使用,淸楚的,許多變異係可根據特 殊設計選擇、系統架構等而實施,而此變異係在本發明之 範圍內/ 某些額外之分支指令4 2 0之特性,係進一步對於使 用在計算系統1 0 0中之分支控制邏輯之彈性以及有效使 用之改進。首先,因爲目標位址係事先計算,該現在有效 之參數欄位,可使用以作動係一般描述爲〜比較折疊〃之 運算。藉此,其係指使用在程式中比較指令現在可折疊( 合倂)至分支指令本身。當然,此將藉由刪除整個指令而 顯著節省時間,並相當的減少整體之碼大小。該R m與 R η欄位係藉由在分支延伸欄位中指定之分支類型而使用 作爲運算元(來源1、來源2 ),以實施許多種不同類型 之分支指令中之一種,包括: B E Q來源1,來源2,目標 如果相等則跳躍(比 較6 4位元) Β Ν Ε來源1,來源2,目標 如果不相等則跳躍( 比較6 4位元) B G Τ來源1,來源2,目標 如果大於則跳躍(比 較6 4位元) B G Ε來源1,來源2,目標 如果大於或等於則跳 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公釐) II——#—— 丨訂---------線—Awi (請先閱讀背面之注意事項再填寫本頁) -59- 經濟部智慧財產局員工消費合作社印制衣 523711 A7 B7 五、發明說明(57 ) 躍(比較6 4位元) B G 丁 U來源1,來源2,目標 如果大於則跳躍(比 較6 4位元) G B E U來源1,來源2,目標 如果大於或等於則跳躍 (比較Θ 4位元) 如所見,在分支指令4 2 0有效之額外空間,係爲有 利之使用_,包括碼暫存器,於分支估算時,使用一般目的 暫存器比較運算。此一般係在習知技藝中係不可能的,因 爲暫存器規格需要至少5位元(對於每個Rm,Rn), 以使程式有用,而對於習知分支指令係無效的。進一步, 因爲額外運算碼空間係有效的,條件式分支可被寫碼而根 據運算元(或暫存器)預測估算而在某些應用中執行。換 句話說,分支可只在兩個預測(Pm,Pn)(其可爲暫 存器値)係估算爲邏輯真(或假)或假如另一個係爲真的 條件等而跳躍。建構額外類型估算多個預測運算元作爲比 較運算之部分的分支指令的額外方法,有以下揭示對於熟 知此技藝者將爲明顯。 許多分支運算係需要將分支參數與零比較。假如暫存 器6 3係爲永久指定爲0的値,此運算可以R 6 3値而取 代單一分支指令,而作爲一個運算元。此顯著簡化指令格 式,而改進執行速度。分支指令之另一類型,對於熟知此 技藝者係爲顯著,而可根據P T指令4 1 0使用之寫碼欄 未知有效性以及種類而簡易的實施。例如,可在本發明所 實施之額外條件式分支指令,包括將暫存器値與不在暫存 本纸張尺度適用中國國家標準(CNS)A4規格(210 X 297公釐) . , -------訂---------線--AWI (請先閱讀背面之注意事項再填寫本頁) •60- 523711 經濟部智慧財產局員工消費合作社印製 A7 B7 五、發明說明(58 ) 器中指定之常數相比較。 假如該分支條件根據採用暫存器運算元之邏輯運算而 相符合時,該分支目標係使用I AR所指定之常數而取碼 。爲了進一步減少微型架構之潛在分支延遲,本發明之條 /件式分支指令係經由該碼而順序建構,使得其直接避免分 支延遲(即,指令流之非重導引)。 如Μ所述,條件式分支指令4 2 0,包括一預測位元 (L)。此位元協助計算系統100決定其是否開始執行 欲側路鏡,甚至在解出分支條件之前。各種已知之技術可 使用作爲根據分析標準編譯器或分支側描(profile )資訊 而設定此位元。 進一步,如前述,一個或多個之目標指令可在執行該 程式之前而預載入至I ART 1 1 5,以增進分支速度, 並改進整體程式效能。此可藉由各種技術而實施’包括在 執行該像是回路之程式之前,而藉由碼掃瞄(以識別分支 指令)或藉由經由可識別並儲存分支目標位址、目標指令 等直接至IAR · ΤΙ 1 5且/或IAR · A1 40之外 顯暫存器而載入。換句話說,在P T指令發生之前’一組 態指令可設定計算機1 0 〇 (包括預料得到之分支目標位 址)之架構而執行,以執行一個或多個碼部份。決定載入 何者之分支位址/指令,係根據熟知此技藝者之各種情況 考慮而實施,且因爲各種系統特徵’其係預期該些方法係 對於每個應用而不同。 非條件式分支指令4 3 0,具有不同之格式’如圖 • I ϋ n n 1· n* I— n ϋ n I ϋ n ·1 ϋ I ϋ I 一5, · n 1 ·1 ϋ I l I I I . (請先閱讀背面之注意事項再填寫本頁) -«ϋ ϋ ί ϋ I ϋ ϋ 1« ϋ , 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公釐) -61 - 523711 經濟部智慧財產局員工消費合作社印製 Α7 Β7 五、發明說明(59 ) 4D所示’而可考慮作爲具有blINK目標、鏈結之分 支與鏈結(BL I NK)指令。在此指令中,該欄位係界 定如下: (1 } I篡_ 立元):此欄位係作爲當預載入處 ’理時,辨識在計算系統1 〇 〇中獨一無二之指令 (2 )丄一丄4 it元),7位元與4位元:此些欄位保 留 ’ (3 ) b ( 3 Hit ):此欄位係指定目標位址( I AR)中之一個而作爲目標位址之來源 (4 ) d — ( 6位元):此欄位係使用作爲指定在 GPR 1 3 5中之一個暫存器,而作爲使用爲分支之後之 指令之位址。 上述格式較佳於習知條件式分支永遠爲真之情形,因 爲可更快速的解碼。B L I NK寫入接續指令之目標位址 至GPR 1 3 5中之目標暫存器Rd。因爲其允許目標指 令序列被回送至請求該指令序列之指令序列中,而其可考 慮一鏈結機構。因此,可使用而實施標準呼叫以及回復機 制。 爲了完成一條件式分支指令4 3 0而不需要鏈結’可 指定一特殊暫存器於GPR 1 3 5,使得分支指令格式如 下:BL I NK目標,R6 3將傳送控制目標而不寫入至 目的暫存器。 再次,應瞭解,本發明可有分支控制/分支指令之結 合與變異之不同類型。當然’在使用不同管線組態之不同 ^紙張尺度綱巾關家群(CNS)A4規格(21G X 297公^ " ----- --------------1---------^—Aw. (請先閱讀背面之注意事項再填寫本頁) 經濟部智慧財產局員工消費合作社印製 523711 A7 B7 五、發明說明(60 ) 處理器中,該此指令之結構/格式將需要稍微調整以最適 用於所採用之特殊微型架構。然而,假如此應用使用上述 所揭示之原則與特徵,則其可知其以分支運算效能之觀點 來看將由顯著的優點。 :. 1 對於不同指令組之額外運算模式 本褰明之另外特徵係關於計算系統1 0 0在某些情形 下,將使用作爲支援兩種分離指令組,而爲了簡化表示, 可想成是組A與組B。此時,處理器執行運算之兩分離模 式(即,模式A與模式B )。超過一個指令組之使用對於 應用於支援程式化最佳化係有幫助的(即,像是當其決定 該程式效能係實質在一個模式或另一模式下而較佳或當其 要支援習用之軟體(即,只包含古老指令之程式)。 在本較佳實施例中,計算系統1 0 0係經最佳化,而 執行模式A指令,其如上述係爲3 2位元指令,但是因爲 某些原因,其亦可支援指令組B,其包含1 6位元指令。 模式A運算係以整體架構、時序、匯流排協定、資料路徑 、特定電路實施建構在指令A之支援指令中之觀點而最佳 化。爲了執行組B指令,其最好係使用其他組A指令而模 擬,使得可減少硬體與程式化之複雜度。 當指令進入管線中,而儲存在I B 1 1 0中時,例如 ,本計算系統1 0 0,並不做官於指令組A或組B之狀態 之間之辨別。該差異係藉由於解碼或預解碼運算時,而由 解碼器1 2 5而執行。當考慮指令組B時,其係導引至分 本紙張尺度適用中國國家標準(CNS)A4規格mo X 297公釐) ----<—------— I—訂---------線—Aw (請先閱讀背面之注意事項再填寫本頁) -63 - 經濟部智慧財產局員工消費合作社印製 523711 A7 B7 五、發明說明(61 ) 離管線級(未顯示)並轉換(使用任何數目之習知技術) 而至一個或更多之組A指令中。此些組A取代指令,係之 後被插入至管線中之適當級中,以如任何其他組A指令一 樣而正常執行。 可考慮該兩指令組將不會具有相同分支指令格式’或 分支控制處理。此時,最好係計算系統1 0 0之至少模式 A運算使 1用上述分離分支程序,即,與在使用爲事先計算 目標位址之程式流中所先表示之分支控制指令相連接之分 支指令,而亦包括一折疊分支條件/分支條件本身之方向 格式(如圖3 B所示)。 經比較,指令組B將不使用分離分支控制指令以計算 該目標位址,而使用分離比較指令以解出分支條件。進一 步,使用在模式B運算中之分支程序,加入造成接著分支 非條件式之後之指令執行之經延遲分支指令。 於上述之模擬一致的,本發明藉由接在模式A分支指 令之分支控制(P T )指令而模擬模式B分支指令。此時 ,因爲一個接一個之P T以及分支指令將造成管線之氣泡 ,而不可避免的對於模式B分支有一個機器週期延遲。因 爲支援模式B運算,係預期在多數應用中係很多的,實際 上係非常可接受的。因爲需要額外管線級以將模式B指令 解碼,其可能係由額外之氣泡產生。爲了簡化模式B之處 理,最好沒有分支預測執行。換句話說,所有條件式分支 係預測不跳躍。此係在分支控制指令係由D E C 1 2 5所 產生之接續事件(而不由編譯器/軟體決定),因此,關 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公釐) ----’---k----I I — — — — — — ^ ·11111111 ^ I —^w. (請先閱讀背面之注咅?事項再填寫本頁) -64- 523711 A7 B7 五、發明說明(62 ) 聯暗示位元不能可靠的產生。然而,該暗示位元可藉由在 某些環境下而額外監視邏輯(未顯示)(根據分支指令之 跳躍路徑),而同樣的模仿由模式A指令爲基礎之程式所 作之編譯器決定之表現。 r 爲了支援模式B延遲分支指令,在模式A之下一個指 令係非條件式的執行。對於實際跳躍之分支, BRCTL 1 5 0保持該分支目標位址,直到 F E C TL 1 〇 1接收該位址以起始一新的指令取碼。此 因爲模式B延遲槽指令可能在I C 1 〇 5之不同快取記憶 體線,而不需在正確時間中載入入I B 1 1 0之位置。一 般而言,BRCTL 1 5 0係決定分支方向,而之後重導 引該取碼路徑而不用等待。在經延遲之分支中,假如延遲 槽指令係對於快取記憶體存取失誤,程式流之方向將不改 變,直到其取到碼。 雖然本發明係以實施例以而說明,對於熟知此技藝者 可在不離開本發明之基本觀念以及範圍下而有許多之修改 (請先閱讀背面之注意事項再填寫本頁) 經濟部智慧財產局員工消費合作社印製 本纸張尺度適用中國國家標準(CNS)A4規格(210 X 297公釐) -65-

Claims (1)

  1. 523711 經濟部智慧財產局員工消費合作社印製 A8 B8 C8 _ D8 六、申請專利範圍 1·一種微處理器,包含: 一指令解碼器解碼一指令;及 多數位址暫存器,每一位址暫存器儲存根據包含於一 或多個該經解碼指令中之位址欄所計算出的一位址;及 ^ 多數個指令暫存器,每一指令暫存器儲存相關於一對 應保持於該多數位址暫存器之一中的位址的一目標指令。 2…如申請專利範圍第1項的微處理器,其中該指令 使該微處理器計算一分支作業的位址。 3·如申請專利範圍第1項的微處理器,其中該多數 位址暫存器的數目較該多數指令暫存器的數目爲大。 4 ·如申請專利範圍第1項的微處理器,進一步包 含:多數第二位址暫存器,每一暫存器可儲存一位址,該 位址代表保持該多數位址暫存器之一中的一位址的累加版 本。 5 ·如申請專利範圍第1項的微處理器,其中一有效 性欄被用以指示保持在該指令暫存器中.的一目標指令爲有 效或無效。 6·如申請專利範圍第1項的微處理器,其中該有效 欄爲儲存在一提示緩衝器中的輸入的一第一欄,該提示緩 衝器與該多數指令暫存器分離,且該提示緩衝器輸入亦被 依照在該指令暫存器中的指令輸入所編索引,使該目標指 令的該有效性可由檢視該提示緩衝器而被決定。 7 ·如申請專利範圍第6項的微處理器,該提示緩衝 器進一步包含:一提示欄用以指明有關該目標指令是否可 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公釐) I ϋ I n n*—— n n n n I n n n n n n n I n 1 ϋ n n ϋ ϋ I I n n t ϋ -ϋ ϋ ϋ —Γ n H ϋ ϋ ϋ ϋ n ϋ I I H I ϋ I (請先閱讀背面之注意事項再填寫本頁) 523711 A8 B8 C8 D8 六、申請專利範圍 能被執行的一預測,且該多數指令暫存器根據該有效性及 提示欄而被控制。 8 · —種用於一電腦系統中的分支目標指令記憶體, 包含·‘ ^ 多數目標指令暫存器,每一暫存器被構建以儲存一分 支目標指令,該分支目標指令,該分支目標指令構成在一. 程式中的一分支指令的一目標指令,該程式可被該電腦系 統所執行;以及 該多數目標指令暫存器被隨機地存取,使該分支目標 指令中之任一者可依照與該分支目標指令相關的一目標指 令位址被載入至電腦系統中的一解碼器電路;及 該記憶體進一步被構建以使該目標指令暫存器的一個 或多個可在該程式的對應分支部份被執行之前被載以分支 目標指令。 9 ·如申請專利範圍第8項的分支目標指令記憶體, 其中該記憶體亦可依照該解碼電路的一結果被載以分支目 標指令指示一分支指令跟在該程式的一指令流後面。 1 0 ·如申請專利範圍第8項的分支目標指令記憶 體,其中當該程式的一指令流被執行時該記憶體亦可被觀 測性地載以分支目標指令。 1 1 ·如申請專利範圍第8項的分支目標指令記憶 體,其中該目標指令暫存器的該一個或多個根據在該程式 中被執行的該分支指令的每一可能性的一分析預先被載 入0 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公爱) (請先閱讀背面之注意事項再填寫本頁)
    •線- 經濟部智慧財產局員工消費合作社印製 523711 A8 B8 C8 D8 六、申請專利範圍 1 2 ·如申請專利範圍第8項的分支目標指令記憶 體,其中該目標指令暫存器儲存兩個序列指令作爲一分支 指令的一目標指令。 1 3 · —種用於一電腦系統中的分支目標指令記憶 ,體,包含: 多數目標指令暫存器,每一暫存器被構建以儲存一分 支目標指令,該分支目標指令,該分支目標指令構成在一 程式中的一分支指令的一目標指令,該程式可被該電腦系 統所執行;以及 該多數目標指令暫存器被隨機地存取,使該分支目標 指令中之任一者可依照與該分支目標指令相關的一目標指 令位址被載入至電腦系統中的一解碼器電路;及 該記億體被進一步構建以使該目標指令暫存器的一個 或多個可在該程式的一對應分支被電腦系統執行之前觀測 性地被載以分支目標指令。 1 4 ·如申請專利範圍第1 3項的分支目標指令記憶 體,其中該記憶體亦可依照該解碼電路的一結果被載以分 支目標指令指示一分支指令跟在該程式的一指令流後面。 1 5 ·如申請專利範圍第1 3項的分支目標指令記憶 體,其中該觀測性載入係根據評估在一分離分支目標位址 記憶體中的目標位址輸入以決定代表分支目標指令的該目 標位址輸入是否可能爲電腦系統執行所需要。 1 6 ·如申請專利範圍第1 5項的分支目標指令記憶 體,其中該觀測性載入進一步根據評估在該分離分支目標 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公釐) 請 先 閱 讀 背 δ 意 事 項 再 填 經濟部智慧財產局員工消費合作社印制取 523711 _§___ 六、申請專利範圍 (請先閱讀背面之注意事項再填寫本頁) 位址記憶體中的該目標位址輸入的優先性,使較高優先性 目標位址輸入在較低優先性目標位址輸入之前被使用於觀 測性載入。 1 7 ·如申請專利範圍第1 3項的分支目標指令記憶 ,•體,其中處理器於分支指令不被執行的時間當中實施預 載,使此分支指令的目標指令可在此分支指令被載入前被 預載。、· 1 8 · —種用以控制在一電腦系統中自一指令快取器 至一管線的指令載入的電路,該電路包含: 監視裝置用以決定在管線中載入可用的分支目標指令 是否有效; 選擇裝置用以當一無效分支目標指令被發現時選擇一 替代分支目標指令,該替代分支指令藉由對數個潛在分支 目標位址作排名而被選擇; 載入裝置用以藉由使該指令快取器載入該替代分支目 標指令以供在管線中之執行而以該替代分支目標指令替代 該無效分支目標指令。 經濟部智慧財產局員工消費合作社印製 1 9 ·如申請專利範圍第1 8項的電路,其中該監視 裝置包含一 N位元暫存器,其依照儲存在N輸入分支目標 指令緩衝器中的N個分離分支目標指令的有效狀態被載 入,以使N位元暫存器辨視在分支目標指令緩衝器中的對 應輸入爲有效或無效。 2 〇 .如申請專利範圍第1 8項的電路,其中_載入 裝置將該替代分支目標指令載入至N輸入分支目標指令緩 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公釐) 523711 g|_ 六、申請專利範圍 、衝器,N > 8。 2 1 .如申請專利範圍第1 8項的電路,其中該選擇 裝置包含一預載暫存器,且該預載暫存器包括一位元,指 明是否有任何保有該潛在分支目標位址的儲存位置可被用 .:以載入一替代分支目標指令。 2 2 ·如申請專利範圔第2 1項的電路,其中該選擇 裝置包含一分支指令提示暫存器,該提示暫存器包括一位 元指明一分支目標指令是否可能被需要。 2 3 ·如申請專利範圍第1 8項的電路,其中該排名 係藉由檢查每一潛在分支目標位址的儲存位置而被實施, 使分支目標位址可依照那一儲存位置與其相關而被排定優 先性。 2 4 ·如申請專利範圍第1 8項的電路,其中若一快 取存取要求未決時載入裝置停止該替代分支目標指令的載 入。 2 5 ·如申請專利範圍第1 8項的電路,其中若在管 線中的一指令緩衝器在一預定指令位準臨界値以下時載入 裝置停止替代分支目標指令的載入。 2 6 ·如申請專利範圍第1 8項的電路,其中該替代 分支目標指令在要求該分支目標指令的一分支指令的一第 一執行之前被觀測性地載入。 2 7 ·如申請專利範圍第1 8項的電路,其中當一分 支指令被實際解碼於管線中時該載入裝置產生一載入一分 支目標指令的快取存取請求。 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公釐) * H ϋ n i· n n n il ϋ n n I I (請先閱讀背面之注意事項再填寫本頁) 訂---------線! 經濟部智慧財產局員工消費合作社印製 -7ΪΓ- 523711 A8 B8 C8 D8 六、申請專利範圍 (請先閱讀背面之注意事項再填寫本頁} 2 8 ·如申請專利範圍第1 8項的電路,進一步包括 一目標位址緩衝器與該載入裝置耦接,該目標位址緩衝器 被載以對應跟在該替代目標指令之後的指令的位址的累加 目標位址,使若該替代目標指令稍後實際地被管線所執行 時該累加目標位址可被用於快取存取。 2 9 · —種在一電腦系統中維護對管線的指令供給的 方法,該··方法包括以下步驟: (a )監視任何在管線中已可供執行的分支目標指令 的狀態條件;及 (b )對數個潛在分支目標位址作排名;及 (c )根據該狀態條件及該排名選擇一新分支目標指 令;及 (d )根據該潛在分支目標位址的該排名載入一最高 排名的新分支目標指令,使該最高排名的新分支指令可於 需要下供管線中之載入。 經濟部智慧財產局員工消費合作社印5衣 3 0 ·如申請專利範圍第2 9項的方法,其中該新分 支目標指令藉由使一指令快取器載入在管線中執行用的該 最高排名新分支目標指令,因而取代一具有一無效狀態的 一分支目標指令,而被載入。 3 1 ·如申請專利範圍第2 9項的_,其中該選擇 步驟指明任何保有該潛在分支目標位址存位置是否適 合用以載入一新分支目標指令。 rf'lj 3 2 ·如申請專利範圍第3 1項的,其中該選擇 步驟亦檢查有關該分支目標指令是否可能被需要的一分支 -Π - 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公釐) 523711 8888 ABCD 六、申請專利範圍 預測提示。 3 3 ·如申請專利範圍第2 9項的,其中該排名 係藉由檢查每一潛在分支目標位址的一 位置識別元而 被實施,使分支目標位址可由其所相關的儲存位置而被排 定優先性。 ~ 3 4 ·如申請專利範圍 管線中之·一可用指令供給在 載入步驟不被實施。 3 5 ·如申請專利範圍第2 9項的,其中該新分 支目標指令在需要該新分支目標指令的一分支指令的第一 執行之前被觀測性地載入 3 6 .如申請專利範圍
    皆. 第2 9項,其中若在一 預定指令位丨界値以下時該 1| 饑 (請先閱讀背面之注意事項再填寫本頁) 步驟 第2 9項的1¾,進一步包含 :累加及儲存該新分支目令的一分支目
    標位址,使該累加目標分支 如果該新目標指令稍後實際 3 7 · —種分支控制記 一指令快取器,一分支目標 緩衝器之間的預抓取作業, 目標位址可被用於快取存取, 地1 I線執行。 於幫助在一處理器中之 指令器及一分支目標位址 分支控制記憶體包含 經濟部智慧財產局員工消費合作社印製 一第一緩衝器具有一第一欄用以指明在分支目標指令 緩衝器中的一目標指令是否爲有效; 一第二緩衝器具有一第二欄用以指明在分支目標位址 緩衝器中的一分支目標位址可被用於預載一分支目標指 令; 一第三緩衝器具有一第三欄用以指明在該分支目標位 -72- 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公釐) 523711 A8 B8 C8 D8 六、申請專利範圍 〜址緩衝器中的該分支目標位址是否可能被由該處理器所執 行的一分支指令所用; (請先閱讀背面之注意事項再填寫本頁) 其中相應於一由該處理器所作的有關在該分支目標指 令緩衝器中的一分支目標指令是否爲有效,該分支目標位 址是否可能被用,該分支目標位址是否可被用於預載,該 處理器自指令快取器預載一或多個指令至分支目標指令緩 衝器,該一或多個指令具有與該分支目標位址相關的位 址。 3 8 ·如申請專利範圍第3 7項的分支控制記憶體, 其中處理器被構建以週期性地監視該第一緩衝器以抓出在 該目標指令記憶體中的無效指令,且如果沒有較高優先性 存取存在,處理器被用以自指令快取器抓取指令並將之載 入至該分支目標指令緩衝器。 3 9 ·如申請專利範圍第3 7項的分支控制記億體, 其中該第二緩衝器包含數個暫存器用以儲存不同分支目標 位址,每一該暫存器由一暫存器數所辨別,且進一步地其 中該處理器藉由暫存器而對該暫存器如何被用於預載指令 而排出優先性。 經濟部智慧財產局員工消費合作社印製 4 〇 ·如申請專利範圍第3 7項的分支控制記憶體, 其中若一分支目標位址被用於將一或多個指令預載至該分 支目標指令緩衝器,該第二欄被改變以指示該分支目標位 址不可用於預載。 4 1 ·如申請專利範圍第3 7項的分支控制記憶體, 其中若該第三欄指出分支目標位址不可能被使用則該處理 -73^ 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公釐) 523711 ) 一指令緩衝
    置,且該程 令是否可能 A8 B8 C8 D8 六、申請專利範圍 器不預載一分支位址之指令。 4 2 ·如申請專利範圍第3 7項的分支控制記憶體, 其中當分支指令不被執行的時段中該處理器亦施行預載, 使此分支指令的目標指令可在此分支指令被載入之前被載 ,Λ 以儲存與一由該處理器所執行 的程式相關的指令,該指令包括: 〔i〕一程式分支控制指令,其包括一欄用於計算一 分支指令的一目標位址所用的位址資訊,且進一步包括一 欄指明一儲存該目標位址的一目標位址儲存位 式分支指令進一步包括一攔用以指明該目標指 被執行;及 (請先閱讀背面之注意事項再填寫本頁) 經 濟 部 智 慧 財 產 局 員 工 消 費 合 作 社 印 製 〔i i〕一第一型程式分支指令,該第一型程式分支 指令包括一欄指明該目標位址儲存位置 式分支無條件執行的一目標指令的一目 〔i i i〕一第二型程式分支指令 支指令指明該目標位址儲存位置爲包含一當一由該第二型 程式分支被滿足時所指明的條件時將被執行的一目標指令 爲包含 標位址 將被一程 該第二型程式分 --線- 的一目標位址;及 (b ) —目標指令記憶體,該目標 機地存取且可包含多數個目標指令’其 指令記憶體可被隨 中該目標指令構成 一對應程式分支的一目標指令,且各具有一儲存在一目標 位址儲存位置的目標位址;及 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公爱) ABCD 523711 六、申請專利範圍 (C ) 一指令解碼器其被構建如下: 〔i〕用以解碼該指令及傳送該指令至處理器中之一 執行單元,使: 1 )當該程式分支控制指令被解碼時,該目標位址被 由該執行單元·所計算並儲存在該目標位址儲存位置; 2 )當該第一型程式分支指令被解碼時,該目標位址 儲存位置被用以指明一指令,且若該目標指令在該目標指 令記億體中時,該目標指令被備妥以載入該指令解碼器; 3 )當該第二型程式分支指令被解碼時,該目標位址 儲存位置被用以指明一目標指令,且若該目標指令在該目 標指令記憶體中,且該程式分支被預測將被採取,該目標 指令被備妥以載入該指令解碼器;及 進一步地其中當該目標指令不在該目標指令記憶體中 時,該目標指令被抓取以載入該目標指令記億體及該指令 解碼器。 (請先閱讀背面之注意事項再填寫本頁) 經濟部智慧財產局員工消費合作社印制衣 -ft)- 本紙張尺度適用中國國家標準(CNS)A4規格(210 x 297公釐)
TW089120503A 1999-10-01 2000-09-30 Processor architecture and operation for exploiting improved branch control instruction TW523711B (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US09/410,682 US6772325B1 (en) 1999-10-01 1999-10-01 Processor architecture and operation for exploiting improved branch control instruction

Publications (1)

Publication Number Publication Date
TW523711B true TW523711B (en) 2003-03-11

Family

ID=23625778

Family Applications (1)

Application Number Title Priority Date Filing Date
TW089120503A TW523711B (en) 1999-10-01 2000-09-30 Processor architecture and operation for exploiting improved branch control instruction

Country Status (5)

Country Link
US (2) US6772325B1 (zh)
EP (1) EP1089170A3 (zh)
JP (1) JP2001147807A (zh)
KR (1) KR20010050794A (zh)
TW (1) TW523711B (zh)

Families Citing this family (76)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7171547B1 (en) * 1999-12-28 2007-01-30 Intel Corporation Method and apparatus to save processor architectural state for later process resumption
US6904057B2 (en) * 2001-05-04 2005-06-07 Slt Logic Llc Method and apparatus for providing multi-protocol, multi-stage, real-time frame classification
US6944168B2 (en) * 2001-05-04 2005-09-13 Slt Logic Llc System and method for providing transformation of multi-protocol packets in a data stream
US6901052B2 (en) * 2001-05-04 2005-05-31 Slt Logic Llc System and method for policing multiple data flows and multi-protocol data flows
US7127593B2 (en) * 2001-06-11 2006-10-24 Broadcom Corporation Conditional execution with multiple destination stores
US7861071B2 (en) * 2001-06-11 2010-12-28 Broadcom Corporation Conditional branch instruction capable of testing a plurality of indicators in a predicate register
US6986025B2 (en) * 2001-06-11 2006-01-10 Broadcom Corporation Conditional execution per lane
US20030204705A1 (en) * 2002-04-30 2003-10-30 Oldfield William H. Prediction of branch instructions in a data processing apparatus
TW200602974A (en) 2004-05-19 2006-01-16 Arc Internat Uk Ltd Microprocessor architecture
US7861063B1 (en) * 2004-06-30 2010-12-28 Oracle America, Inc. Delay slot handling in a processor
US7774558B2 (en) 2005-08-29 2010-08-10 The Invention Science Fund I, Inc Multiprocessor resource optimization
US7739524B2 (en) * 2005-08-29 2010-06-15 The Invention Science Fund I, Inc Power consumption management
US8516300B2 (en) 2005-08-29 2013-08-20 The Invention Science Fund I, Llc Multi-votage synchronous systems
US7647487B2 (en) * 2005-08-29 2010-01-12 Searete, Llc Instruction-associated processor resource optimization
US7779213B2 (en) 2005-08-29 2010-08-17 The Invention Science Fund I, Inc Optimization of instruction group execution through hardware resource management policies
US7627739B2 (en) * 2005-08-29 2009-12-01 Searete, Llc Optimization of a hardware resource shared by a multiprocessor
US8402257B2 (en) * 2005-08-29 2013-03-19 The Invention Science Fund I, PLLC Alteration of execution of a program in response to an execution-optimization information
US8209524B2 (en) * 2005-08-29 2012-06-26 The Invention Science Fund I, Llc Cross-architecture optimization
US8255745B2 (en) 2005-08-29 2012-08-28 The Invention Science Fund I, Llc Hardware-error tolerant computing
US8214191B2 (en) * 2005-08-29 2012-07-03 The Invention Science Fund I, Llc Cross-architecture execution optimization
US7877584B2 (en) * 2005-08-29 2011-01-25 The Invention Science Fund I, Llc Predictive processor resource management
US7493516B2 (en) * 2005-08-29 2009-02-17 Searete Llc Hardware-error tolerant computing
US8181004B2 (en) 2005-08-29 2012-05-15 The Invention Science Fund I, Llc Selecting a resource management policy for a resource available to a processor
US8423824B2 (en) 2005-08-29 2013-04-16 The Invention Science Fund I, Llc Power sparing synchronous apparatus
US7653834B2 (en) * 2005-08-29 2010-01-26 Searete, Llc Power sparing synchronous apparatus
US7725693B2 (en) * 2005-08-29 2010-05-25 Searete, Llc Execution optimization using a processor resource management policy saved in an association with an instruction group
WO2007049150A2 (en) 2005-09-28 2007-05-03 Arc International (Uk) Limited Architecture for microprocessor-based systems including simd processing unit and associated systems and methods
CN103646009B (zh) 2006-04-12 2016-08-17 索夫特机械公司 对载明并行和依赖运算的指令矩阵进行处理的装置和方法
US7958181B2 (en) * 2006-09-21 2011-06-07 Intel Corporation Method and apparatus for performing logical compare operations
CN101627365B (zh) 2006-11-14 2017-03-29 索夫特机械公司 多线程架构
US8959500B2 (en) * 2006-12-11 2015-02-17 Nytell Software LLC Pipelined processor and compiler/scheduler for variable number branch delay slots
EP1953959A1 (en) * 2007-02-01 2008-08-06 British Telecommunications Public Limited Company Data communication
US8218003B2 (en) * 2007-10-05 2012-07-10 Seiko Epson Corporation Optimization strategies for GPU view projection matrix implementation
US20100057427A1 (en) * 2008-09-04 2010-03-04 Anthony Dean Walker Simulated processor execution using branch override
KR101579589B1 (ko) * 2009-02-12 2015-12-22 삼성전자 주식회사 파이프라인 프로세서를 위한 정적 분기 예측 방법과 이를 위한 컴파일 방법
US9104399B2 (en) * 2009-12-23 2015-08-11 International Business Machines Corporation Dual issuing of complex instruction set instructions
US8082467B2 (en) * 2009-12-23 2011-12-20 International Business Machines Corporation Triggering workaround capabilities based on events active in a processor pipeline
US9135005B2 (en) * 2010-01-28 2015-09-15 International Business Machines Corporation History and alignment based cracking for store multiple instructions for optimizing operand store compare penalties
US8495341B2 (en) * 2010-02-17 2013-07-23 International Business Machines Corporation Instruction length based cracking for instruction of variable length storage operands
US8938605B2 (en) * 2010-03-05 2015-01-20 International Business Machines Corporation Instruction cracking based on machine state
US8464030B2 (en) 2010-04-09 2013-06-11 International Business Machines Corporation Instruction cracking and issue shortening based on instruction base fields, index fields, operand fields, and various other instruction text bits
US8645669B2 (en) 2010-05-05 2014-02-04 International Business Machines Corporation Cracking destructively overlapping operands in variable length instructions
CN103250131B (zh) 2010-09-17 2015-12-16 索夫特机械公司 包括用于早期远分支预测的影子缓存的单周期多分支预测
TWI518504B (zh) 2011-03-25 2016-01-21 軟體機器公司 使用可分割引擎實體化的虛擬核心以支援程式碼區塊執行的暫存器檔案節段
CN103547993B (zh) 2011-03-25 2018-06-26 英特尔公司 通过使用由可分割引擎实例化的虚拟核来执行指令序列代码块
WO2012135050A2 (en) 2011-03-25 2012-10-04 Soft Machines, Inc. Memory fragments for supporting code block execution by using virtual cores instantiated by partitionable engines
CN103649931B (zh) 2011-05-20 2016-10-12 索夫特机械公司 用于支持由多个引擎执行指令序列的互连结构
TWI603198B (zh) 2011-05-20 2017-10-21 英特爾股份有限公司 以複數個引擎作資源與互連結構的分散式分配以支援指令序列的執行
WO2013077875A1 (en) * 2011-11-22 2013-05-30 Soft Machines, Inc. An accelerated code optimizer for a multiengine microprocessor
EP2783281B1 (en) * 2011-11-22 2020-05-13 Intel Corporation A microprocessor accelerated code optimizer
US20130159679A1 (en) * 2011-12-20 2013-06-20 James E. McCormick, Jr. Providing Hint Register Storage For A Processor
US8806456B2 (en) * 2012-05-31 2014-08-12 New York University Configuration-preserving preprocessor and configuration-preserving parser
US9135012B2 (en) * 2012-06-14 2015-09-15 International Business Machines Corporation Instruction filtering
US9104532B2 (en) * 2012-12-14 2015-08-11 International Business Machines Corporation Sequential location accesses in an active memory device
US10275255B2 (en) 2013-03-15 2019-04-30 Intel Corporation Method for dependency broadcasting through a source organized source view data structure
US9886279B2 (en) 2013-03-15 2018-02-06 Intel Corporation Method for populating and instruction view data structure by using register template snapshots
US9811342B2 (en) 2013-03-15 2017-11-07 Intel Corporation Method for performing dual dispatch of blocks and half blocks
US10140138B2 (en) 2013-03-15 2018-11-27 Intel Corporation Methods, systems and apparatus for supporting wide and efficient front-end operation with guest-architecture emulation
EP2972836B1 (en) 2013-03-15 2022-11-09 Intel Corporation A method for emulating a guest centralized flag architecture by using a native distributed flag architecture
US9891924B2 (en) 2013-03-15 2018-02-13 Intel Corporation Method for implementing a reduced size register view data structure in a microprocessor
US9904625B2 (en) 2013-03-15 2018-02-27 Intel Corporation Methods, systems and apparatus for predicting the way of a set associative cache
WO2014150971A1 (en) 2013-03-15 2014-09-25 Soft Machines, Inc. A method for dependency broadcasting through a block organized source view data structure
US9569216B2 (en) 2013-03-15 2017-02-14 Soft Machines, Inc. Method for populating a source view data structure by using register template snapshots
KR101708591B1 (ko) 2013-03-15 2017-02-20 소프트 머신즈, 인크. 블록들로 그룹화된 멀티스레드 명령어들을 실행하기 위한 방법
WO2014150991A1 (en) 2013-03-15 2014-09-25 Soft Machines, Inc. A method for implementing a reduced size register view data structure in a microprocessor
WO2014150806A1 (en) 2013-03-15 2014-09-25 Soft Machines, Inc. A method for populating register view data structure by using register template snapshots
JP5863855B2 (ja) * 2014-02-26 2016-02-17 ファナック株式会社 分岐命令を高速に処理するためのインストラクションキャッシュを有するプログラマブルコントローラ
US9588774B2 (en) 2014-03-18 2017-03-07 International Business Machines Corporation Common boot sequence for control utility able to be initialized in multiple architectures
US9916185B2 (en) 2014-03-18 2018-03-13 International Business Machines Corporation Managing processing associated with selected architectural facilities
US9582295B2 (en) 2014-03-18 2017-02-28 International Business Machines Corporation Architectural mode configuration
KR20160070965A (ko) 2014-12-11 2016-06-21 삼성전자주식회사 컴파일러
US9507598B1 (en) 2015-12-15 2016-11-29 International Business Machines Corporation Auxiliary branch prediction with usefulness tracking
US10866805B2 (en) * 2018-01-03 2020-12-15 Arm Limited Speculation barrier instruction
US11003454B2 (en) * 2019-07-17 2021-05-11 Arm Limited Apparatus and method for speculative execution of instructions
KR102268112B1 (ko) * 2019-12-24 2021-06-22 한국항공우주연구원 위성 커맨드 저장 처리 방법 및 위성 커맨드 저장 처리 시스템
US20220197657A1 (en) * 2020-12-22 2022-06-23 Intel Corporation Segmented branch target buffer based on branch instruction type

Family Cites Families (94)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3573854A (en) * 1968-12-04 1971-04-06 Texas Instruments Inc Look-ahead control for operation of program loops
JPS549456B2 (zh) * 1972-07-05 1979-04-24
JPS5927935B2 (ja) * 1980-02-29 1984-07-09 株式会社日立製作所 情報処理装置
US4332010A (en) * 1980-03-17 1982-05-25 International Business Machines Corporation Cache synonym detection and handling mechanism
US4400770A (en) * 1980-11-10 1983-08-23 International Business Machines Corporation Cache synonym detection and handling means
US4680698A (en) * 1982-11-26 1987-07-14 Inmos Limited High density ROM in separate isolation well on single with chip
JPS6051948A (ja) * 1983-08-31 1985-03-23 Hitachi Ltd 情報処理装置
US4868742A (en) * 1984-06-20 1989-09-19 Convex Computer Corporation Input/output bus for system which generates a new header parcel when an interrupted data block transfer between a computer and peripherals is resumed
US4873629A (en) * 1984-06-20 1989-10-10 Convex Computer Corporation Instruction processing unit for computer
US4763245A (en) * 1985-10-30 1988-08-09 International Business Machines Corporation Branch prediction mechanism in which a branch history table is updated using an operand sensitive branch table
US4935867A (en) * 1986-03-04 1990-06-19 Advanced Micro Devices, Inc. Signal processor memory management unit with indirect addressing using selectable offsets and modulo values for indexed address calculations
US4797814A (en) * 1986-05-01 1989-01-10 International Business Machines Corporation Variable address mode cache
US4814981A (en) * 1986-09-18 1989-03-21 Digital Equipment Corporation Cache invalidate protocol for digital data processing system
JPH0221342A (ja) * 1987-02-27 1990-01-24 Hitachi Ltd マルチプロセッサシステム及びマルチプロセッサシステムにおける論理キャッシュメモリのアクセス方法
US4926317A (en) * 1987-07-24 1990-05-15 Convex Computer Corporation Hierarchical memory system with logical cache, physical cache, and address translation unit for generating a sequence of physical addresses
US5193205A (en) * 1988-03-01 1993-03-09 Mitsubishi Denki Kabushiki Kaisha Pipeline processor, with return address stack storing only pre-return processed address for judging validity and correction of unprocessed address
US5483518A (en) * 1992-06-17 1996-01-09 Texas Instruments Incorporated Addressable shadow port and protocol for serial bus networks
JPH0666056B2 (ja) * 1989-10-12 1994-08-24 甲府日本電気株式会社 情報処理システム
US5148538A (en) * 1989-10-20 1992-09-15 International Business Machines Corporation Translation look ahead based cache access
JPH03217949A (ja) * 1990-01-23 1991-09-25 Hitachi Ltd 計算機システム
US5163140A (en) * 1990-02-26 1992-11-10 Nexgen Microsystems Two-level branch prediction cache
US5452432A (en) * 1990-08-14 1995-09-19 Chips And Technologies, Inc. Partially resettable, segmented DMA counter
JP2984463B2 (ja) * 1991-06-24 1999-11-29 株式会社日立製作所 マイクロコンピュータ
US5423050A (en) * 1991-11-27 1995-06-06 Ncr Corporation Intermodule test across system bus utilizing serial test bus
US5724549A (en) * 1992-04-06 1998-03-03 Cyrix Corporation Cache coherency without bus master arbitration signals
GB2266606B (en) * 1992-04-27 1996-02-14 Intel Corp A microprocessor with an external command mode
US5448576A (en) * 1992-10-29 1995-09-05 Bull Hn Information Systems Inc. Boundary scan architecture extension
JP3524110B2 (ja) * 1992-11-06 2004-05-10 株式会社ルネサステクノロジ マイクロコンピュータシステム
JP3231429B2 (ja) * 1992-11-06 2001-11-19 株式会社日立製作所 中央処理装置と乗算器とを有する半導体集積回路装置
JPH06150023A (ja) * 1992-11-06 1994-05-31 Hitachi Ltd マイクロコンピュータ及びマイクロコンピュータシステム
US5627842A (en) * 1993-01-21 1997-05-06 Digital Equipment Corporation Architecture for system-wide standardized intra-module and inter-module fault testing
JP2731692B2 (ja) * 1993-04-28 1998-03-25 日本電気アイシーマイコンシステム株式会社 デバッグ装置
DE4345028A1 (de) * 1993-05-06 1994-11-10 Hewlett Packard Co Vorrichtung zur Reduzierung von Verzögerungen aufgrund von Verzweigungen
JP2596712B2 (ja) * 1993-07-01 1997-04-02 インターナショナル・ビジネス・マシーンズ・コーポレイション 近接した分岐命令を含む命令の実行を管理するシステム及び方法
US5598551A (en) * 1993-07-16 1997-01-28 Unisys Corporation Cache invalidation sequence system utilizing odd and even invalidation queues with shorter invalidation cycles
DE69415600T2 (de) * 1993-07-28 1999-07-15 Koninkl Philips Electronics Nv Mikrokontroller mit hardwaremässiger Fehlerbeseitigungsunterstützung nach dem Boundary-Scanverfahren
US5454117A (en) * 1993-08-25 1995-09-26 Nexgen, Inc. Configurable branch prediction for a processor performing speculative execution
JP3904244B2 (ja) * 1993-09-17 2007-04-11 株式会社ルネサステクノロジ シングル・チップ・データ処理装置
EP0652516A1 (en) 1993-11-03 1995-05-10 Advanced Micro Devices, Inc. Integrated microprocessor
US5596734A (en) * 1993-12-17 1997-01-21 Intel Corporation Method and apparatus for programming embedded memories of a variety of integrated circuits using the IEEE test access port
US5828825A (en) * 1993-12-22 1998-10-27 Intel Corporation Method and apparatus for pseudo-direct access to embedded memories of a micro-controller integrated circuit via the IEEE test access port
US5434804A (en) * 1993-12-29 1995-07-18 Intel Corporation Method and apparatus for synchronizing a JTAG test control signal to an on-chip clock signal
US5488688A (en) * 1994-03-30 1996-01-30 Motorola, Inc. Data processor with real-time diagnostic capability
JPH07287668A (ja) * 1994-04-19 1995-10-31 Hitachi Ltd データ処理装置
JPH082819A (ja) 1994-06-13 1996-01-09 Murata Mach Ltd 風綿回収装置のダストコレクター
GB9412487D0 (en) * 1994-06-22 1994-08-10 Inmos Ltd A computer system for executing branch instructions
GB9417602D0 (en) * 1994-09-01 1994-10-19 Inmos Ltd A controller for implementing scan testing
US5907867A (en) * 1994-09-09 1999-05-25 Hitachi, Ltd. Translation lookaside buffer supporting multiple page sizes
JP3713312B2 (ja) * 1994-09-09 2005-11-09 株式会社ルネサステクノロジ データ処理装置
JP3672634B2 (ja) * 1994-09-09 2005-07-20 株式会社ルネサステクノロジ データ処理装置
JP3740195B2 (ja) * 1994-09-09 2006-02-01 株式会社ルネサステクノロジ データ処理装置
US5848247A (en) * 1994-09-13 1998-12-08 Hitachi, Ltd. Microprocessor having PC card interface
US5613153A (en) * 1994-10-03 1997-03-18 International Business Machines Corporation Coherency and synchronization mechanisms for I/O channel controllers in a data processing system
US5751621A (en) * 1994-11-17 1998-05-12 Hitachi, Ltd. Multiply-add unit and data processing apparatus using it
TW330265B (en) * 1994-11-22 1998-04-21 Hitachi Ltd Semiconductor apparatus
JP2752592B2 (ja) * 1994-12-28 1998-05-18 日本ヒューレット・パッカード株式会社 マイクロプロセッサ、マイクロプロセッサ−デバッグツール間信号伝送方法及びトレース方法
US5778237A (en) * 1995-01-10 1998-07-07 Hitachi, Ltd. Data processor and single-chip microcomputer with changing clock frequency and operating voltage
US5664197A (en) * 1995-04-21 1997-09-02 Intel Corporation Method and apparatus for handling bus master channel and direct memory access (DMA) channel access requests at an I/O controller
US5867726A (en) * 1995-05-02 1999-02-02 Hitachi, Ltd. Microcomputer
US5570375A (en) * 1995-05-10 1996-10-29 National Science Council Of R.O.C. IEEE Std. 1149.1 boundary scan circuit capable of built-in self-testing
GB9509989D0 (en) * 1995-05-17 1995-07-12 Sgs Thomson Microelectronics Manipulation of data
GB9509988D0 (en) * 1995-05-17 1995-07-12 Sgs Thomson Microelectronics Matrix transposition
US5860127A (en) * 1995-06-01 1999-01-12 Hitachi, Ltd. Cache memory employing dynamically controlled data array start timing and a microcomputer using the same
US5774701A (en) * 1995-07-10 1998-06-30 Hitachi, Ltd. Microprocessor operating at high and low clok frequencies
GB9514684D0 (en) * 1995-07-18 1995-09-13 Sgs Thomson Microelectronics An arithmetic unit
US5708773A (en) * 1995-07-20 1998-01-13 Unisys Corporation JTAG interface system for communicating with compliant and non-compliant JTAG devices
US5737516A (en) * 1995-08-30 1998-04-07 Motorola, Inc. Data processing system for performing a debug function and method therefor
US5704034A (en) * 1995-08-30 1997-12-30 Motorola, Inc. Method and circuit for initializing a data processing system
JP3655403B2 (ja) * 1995-10-09 2005-06-02 株式会社ルネサステクノロジ データ処理装置
JP3623840B2 (ja) * 1996-01-31 2005-02-23 株式会社ルネサステクノロジ データ処理装置及びマイクロプロセッサ
US5950012A (en) * 1996-03-08 1999-09-07 Texas Instruments Incorporated Single chip microprocessor circuits, systems, and methods for self-loading patch micro-operation codes and patch microinstruction codes
US5978874A (en) * 1996-07-01 1999-11-02 Sun Microsystems, Inc. Implementing snooping on a split-transaction computer system bus
TW334546B (en) * 1996-03-18 1998-06-21 Hitachi Ltd Data processor
US5742804A (en) * 1996-07-24 1998-04-21 Institute For The Development Of Emerging Architectures, L.L.C. Instruction prefetch mechanism utilizing a branch predict instruction
JP3579205B2 (ja) * 1996-08-06 2004-10-20 株式会社ルネサステクノロジ 半導体記憶装置、半導体装置、データ処理装置及びコンピュータシステム
GB9617033D0 (en) * 1996-08-14 1996-09-25 Int Computers Ltd Diagnostic memory access
US5768152A (en) * 1996-08-28 1998-06-16 International Business Machines Corp. Performance monitoring through JTAG 1149.1 interface
JP3790307B2 (ja) * 1996-10-16 2006-06-28 株式会社ルネサステクノロジ データプロセッサ及びデータ処理システム
KR19980032776A (ko) * 1996-10-16 1998-07-25 가나이 츠토무 데이타 프로세서 및 데이타 처리시스템
JP3641327B2 (ja) * 1996-10-18 2005-04-20 株式会社ルネサステクノロジ データプロセッサ及びデータ処理システム
GB9622686D0 (en) * 1996-10-31 1997-01-08 Sgs Thomson Microelectronics A test port controller and a method of effecting communication using the same
US5953538A (en) * 1996-11-12 1999-09-14 Digital Equipment Corporation Method and apparatus providing DMA transfers between devices coupled to different host bus bridges
US5983017A (en) * 1996-11-12 1999-11-09 Lsi Logic Corporation Virtual monitor debugging method and apparatus
US5771240A (en) * 1996-11-14 1998-06-23 Hewlett-Packard Company Test systems for obtaining a sample-on-the-fly event trace for an integrated circuit with an integrated debug trigger apparatus and an external pulse pin
US5956477A (en) * 1996-11-25 1999-09-21 Hewlett-Packard Company Method for processing information in a microprocessor to facilitate debug and performance monitoring
US5857104A (en) 1996-11-26 1999-01-05 Hewlett-Packard Company Synthetic dynamic branch prediction
US6119222A (en) * 1996-12-23 2000-09-12 Texas Instruments Incorporated Combined branch prediction and cache prefetch in a microprocessor
US5896550A (en) * 1997-04-03 1999-04-20 Vlsi Technology, Inc. Direct memory access controller with full read/write capability
US5978902A (en) * 1997-04-08 1999-11-02 Advanced Micro Devices, Inc. Debug interface including operating system access of a serial/parallel debug port
US5944841A (en) * 1997-04-15 1999-08-31 Advanced Micro Devices, Inc. Microprocessor with built-in instruction tracing capability
GB9802097D0 (en) 1998-01-30 1998-03-25 Sgs Thomson Microelectronics DMA controller
GB9806184D0 (en) * 1998-03-23 1998-05-20 Sgs Thomson Microelectronics A cache coherency mechanism
GB9809203D0 (en) * 1998-04-29 1998-07-01 Sgs Thomson Microelectronics Packet distribution in a microcomputer
US6446197B1 (en) * 1999-10-01 2002-09-03 Hitachi, Ltd. Two modes for executing branch instructions of different lengths and use of branch control instruction and register set loaded with target instructions

Also Published As

Publication number Publication date
US20040225871A1 (en) 2004-11-11
EP1089170A3 (en) 2004-02-04
US7159102B2 (en) 2007-01-02
EP1089170A2 (en) 2001-04-04
US6772325B1 (en) 2004-08-03
KR20010050794A (ko) 2001-06-25
JP2001147807A (ja) 2001-05-29

Similar Documents

Publication Publication Date Title
TW523711B (en) Processor architecture and operation for exploiting improved branch control instruction
US6477639B1 (en) Branch instruction mechanism for processor
US6324643B1 (en) Branch prediction and target instruction control for processor
US6880073B2 (en) Speculative execution of instructions and processes before completion of preceding barrier operations
US6157988A (en) Method and apparatus for high performance branching in pipelined microsystems
KR101192814B1 (ko) 로드가 선행하는 스토어에 의존적인지를 예측하는 의존성 매커니즘을 구비한 프로세서
KR101459536B1 (ko) 사전 통지 기법들을 사용하여 프로그램의 순차적 흐름을 변경하기 위한 방법들 및 장치
EP2204741A1 (en) Processor and method for using an instruction hint to prevent hardware prefetch from using certain memory accesses in prefetch calculations
KR101093784B1 (ko) 리플레이 메커니즘을 구비한 로드 저장 유닛
US7366885B1 (en) Method for optimizing loop control of microcoded instructions
US8943301B2 (en) Storing branch information in an address table of a processor
KR101056820B1 (ko) 연산들의 인-플라이트 인스턴스들이 데이터-추론마이크로프로세서 내에서 연산 재실행을 중단하는 것을방지하기 위한 시스템 및 방법
JP3977931B2 (ja) データプロセッサにおける条件分岐実行を制御するための方法および装置
KR101057163B1 (ko) 마이크로프로세서에서 데이터-추론 연산들을 식별하는 추론포인터들
US7472264B2 (en) Predicting a jump target based on a program counter and state information for a process
US6738897B1 (en) Incorporating local branch history when predicting multiple conditional branch outcomes
JP2001142707A (ja) プロセッサおよびそれを用いて実行されるプログラム分岐に対する例外チェックの実行方法

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