TWI236623B - Hardware loops - Google Patents

Hardware loops Download PDF

Info

Publication number
TWI236623B
TWI236623B TW090127150A TW90127150A TWI236623B TW I236623 B TWI236623 B TW I236623B TW 090127150 A TW090127150 A TW 090127150A TW 90127150 A TW90127150 A TW 90127150A TW I236623 B TWI236623 B TW I236623B
Authority
TW
Taiwan
Prior art keywords
loop
instruction
instructions
subset
buffers
Prior art date
Application number
TW090127150A
Other languages
English (en)
Inventor
Charles P Roth
Ravi P Singh
Gregory A Overkamp
Original Assignee
Intel Corp
Analog Devices Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp, Analog Devices Inc filed Critical Intel Corp
Application granted granted Critical
Publication of TWI236623B publication Critical patent/TWI236623B/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/3802Instruction prefetching
    • G06F9/3808Instruction prefetching for instruction reuse, e.g. trace cache, branch target cache
    • G06F9/381Loop buffering
    • 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
    • G06F9/325Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address for loops, e.g. loop detection or loop counter

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)
  • Power Sources (AREA)

Description

1236623 A7 B7 五、發明説明(1 ) 本發明係關於一可程式處理器中實行的硬體迴圈。 於設計像是一數位信號處理(Dsp)系統的一可程式處理器 時’處理速度和電力耗用為兩對立的設計目標。傳統處理 器包括設計用來增加軟體指令執行速度的各種硬體。然 而,通常額外的硬體將增加處理器的電力耗用。 一種用以增加可程式處理器速度的技術為"硬體迴圈", 其係設計用來加速一迴圈構造内之軟體指令執行的專屬硬 禮。硬體迴圈可藉由將在區域暫存器中高速存取指令,以 減少多次從一記憶體裝置或指令快取記憶體提取相同指令 的需要,而減少執行一軟體迴圈的時腺週期數。 硬體迴圈引進一些挑戰。此等挑戰包括避免像是設定懲 罰或分支懲罰之類的懲罰。設定懲罰係與設定一硬體迴_ 相關的效说抽失(通常為處理時間的增量)^同樣地,分支 懲罰係與一分支相關的效能損失(通常同樣為處理時間的增 量)。 圖式說明 圖1係一方塊圖,其中舉例說明根據本發明一具體實施例 的一管線式可程式處理器的一例子; 圖2係一方塊圖,其中舉例說明根據本發明一具體實施例 之可程式處理器其執行管線的一例子; 圖3係一流程圖,其中舉例說明根據本發明一具體實施例 可載入早期暫存器的示範時序; 圖4係一流程圖,其中舉例說明根據本發明一具體實施例 -4 - 本紙張尺度適用中國國家標準(CNS) A4規格(210X297公釐) 裝 訂 線 ^236623 五、 發明説明(2 如何使用-迴圈設定指令決定早期暫存器之值 圖5係一電路方塊圖,其中舉例說明 具體實施例; 圖6係一流程圖,其中舉例說明根 器調整的一作業模式; 贫月包含早期暫存 圖7係一流程圖,其中舉例說明根 更新架構暫存器之值的一方式; +贫月—具體實施例 圖8係-流程圖’其中舉例說明根據本發明… 更新架構計數暫存器之值的一替代方式. 八也實把例 :一:程圖,其中舉例說明根據本 例,藉由使用早期暫存器而實現的時序優勢? 一實施 圖1〇係-流程圖’其中舉例說明根據本發 例調整一早期計數值的一有效率方式; 八體實 圖U: -方塊圖,其中舉例說0;根據本發明_ 圖12係一流程圖’其中舉例說明根據本發明一且 例的一併合之作業模式; >、β豆實 圖13係-方塊圖,其中舉例說明根據本發—且 施例,僅於前!^執行級中具有計數器的 a 一實 圖14係一方塊圖,其中舉例說明根據本發Γ二 例的一硬體迴圈單元; 月一具把實 ,圖15係舉例說明根據本發明一具體實抱例的一情節 形, 圖16係一流程圖’其中舉例說明根據本發明—具體實施 的一 施 施 訂 施 施 之圖 -5 - ΐ紙張尺1適财國國家標準(CNS) χ 297公复「 五、發明説明(3 ) 例的一情節; ’其中舉例說明根據本發明一 具體實 例的另一情節之 圖1 7係另一流程圖 施例的一情節; 圖1 8係舉例說明根據本發明一具體實施 一圖形; 足 把 圖1 9係一流程圖,其中舉例說明其他情節. 具體實施 圖20係一流程圖,其中舉例說明根據:即發 例的兩種情節; 圖2i係-流程圖’其中根據本發明一 零偏移迴圈的一作業模式; 圖22係—流程圖,其巾舉例說明根據本發明一具體實施 例偾測及處理一單一指令零偏移迴圈的_作業模式; 圖23A — 23C係方塊圖,其中舉例說明根據本發明一具 體實施例相互連接的一些硬體迴圈; 圖24係一方塊圖,其中顯示根據本發明一具體實施例的 電力節省電路。 說明 圖1係一方塊圖,其中舉例說明安排用來支援有效率的硬 體迴圈而且沒有大幅增加電力耗用的一可程式處理器2。 為了支援硬體迴圈,一處理器2將支援一迴圈設定指令, 以便藉由設定迴圈的進入和跳出條件而初始化硬體。進入 和跳出條件可藉由頂端,底端和計數等迴圈條件加以定 義。頂端條件定義一迴圈的第一指令(或頂端)。底端條件 定義一迴圈的最後指令(或底端)。而計數條件定義迴圈的 -6 - 本紙張尺度適用中國國家標準(CNS) A4規格(210X 297公釐) 1236623 A7 ------------- B7 五、發明説明(4 ) 疊代數目。 進入一硬體迴圈發生於第一次的”頂端匹配”。頂端匹配 發生於程式計數器(P c )指向一迴圈的頂端指令時。跳出一 硬體迴圈發生於最後一次的”底端匹配”。一底端匹配發生 於P C指向一迴圈的底端指令時。 藉由在第一次頂端匹配時初始化計數,以及在每一次底 端匹配時將計數減量,當遇到最後一次底端匹配時,可與 硬體保持接觸。以此方式,頂端,底端和計數等迴圈條件 可定義一硬體迴圈的進入和跳出條件。 處理器2包括一執行管線4和一控制單元6。控制單元6可 控制一時脈週期期間通過管線4的指令以及/或者資料流。 例如’於一指令處理期間,控制單元6可指導管線的各種組 件將指令解碼,以及正確執行包括將結果寫回記憶體的對 應作業。 指令將載入管線4的第一級,而且透過後續的級加以處 理。一.個級可與其他級同時處理。於系統的一週期期間, k料將通過管線4的級之間。一指令的結果將連續快速於管 線4的末端出現。 控制單元6包括硬體迴圈單元8,如以下所述,其可促進 快速的硬體迴圈而且沒有大幅增加處理器2的電力耗用。 圖2係一方塊圖’其中舉例說明一管線例子。一管線丄〇具 有多重級,可於一單一時脈週期期間促進多重指令的執 行。於管線10中,一指令可於一第一時脈週期期間進入指 令提取(IF )級1 2。然後該指令可於後續的時脈週期期間繼 5 五、發明説明(
續沿著管線下行。另一指令可能於前一指令跳出後進入IF 級1 2。因此,另一指令通常於一後續的時脈週期期間進入 IF級1 2 ’然後於後續的時脈週期期間繼續沿著管線下行。 同樣地,額外的指令分別於後續的時脈週期期間進入級 12。管線中的級數可用以定義該管線能夠同時間服務的指 令數。 不同的管線級將作業如下。於117級丨2期間由一提取單元 13提取指令,而且於〇£(::級14期間從指令暫存器15加以解 碼。SAC級18期間,資料位址產生器19計算用以執行作業 的任何記憶體位址。 於執行級(ΕΧ1-ΕΧη)22和28期間,執行單元23和29執行 例如像是將兩數字相加或者相乘的特定作業。執行單元勺 含特定硬體,用以執行例如包括一或更多算術邏輯 (ALU),浮點單元(FPU)和桶移位器的作業,然而本發明的 範圍不限於此。可能有各種資料應用於執行單元,像是由 資料位址產生器產生的位址,從記憶體擷取的資料,$者 從資料暫存器擷取的資料。於寫回級(WB)3〇期間,將結果 寫回管線外部的一記憶體位置或資料暫存器,或者寫= 是架構暫存器32之管線中的資料暫存器。管線1〇包括—戈 更多供儲存資料用的儲存電路,像是正反器。 ^ 如以上所述,處理器2支援一迴圈設定指令。該迴圈設定 指令藉由將硬體迴圈的邊界(例如頂端和底端)寫入管 的架構暫存器32而初始化該硬體迴圈。迴圈設定产人-初始化架構暫存器32中的一計數,其係用以表示‘; 1236623 A7 B7 五、發明説明(6 ) 迴圈次數。此外,迴圈設定指令可定義一偏移,用以表示 於到達迴圈頂端前,該迴圈設定指令後的指令數。於硬體 迴圈初始化後,硬體迴圈於管線1 0中作業直到滿足迴圈的 跳出條件(例如計數等於零的底端匹配)為止。 通常於一指令承諾時,例如於W B級3 0的結論時,將載 入架構暫存器32。因此,架構暫存器32中儲存的進入和跳 出條件將直到從迴圈設定指令進入管線1 0起經過數個時脈 週期後才更新。因為進入和跳出條件於經過數個時脈週期 後才更新,所以硬體迴圈的設定將受到限制。例如,如果 迴圈中的第一指令於迴圈設定指令承諾前進入管線1 0,則 架構暫存器將無法設定用來識別指令是否為一迴圈的一部 分。再者,當管線的深度增加時,此問題更加嚴重。 於一具體實施例中,處理器2藉由維護管線中的一組早期 暫存器34,35和36而克服此等限制。如圖2所示,早期暫存 器ETop 34和EBot 35常駐於解碼級,而ECnt 36常駐於AC 級。 實行一組早期暫存器34,35和36可藉由減少或者避免迴 圈設定懲罰而增加處理器2的處理速度。如以上所述,一迴 圈設定指令進入管線的時間與寫入架構暫存器的時間之間 可能經過數個時脈週期。然而,可能早在迴圈設定指令寫 入架構暫存器之前已經載入早期暫存器。因此,實行早期 暫存器可減少設定硬體迴圈的時間。 早期暫存器可為用以預測或者推測架構暫存器之值的推 測暫存器。不同於架構暫存器,系統的指令集不支援推測 -9 - 本紙張尺度適用中國國家標準(CNS) A4規格(210 X 297公釐) 1236623 五、發明説明(7 暫存器。因此,無法使用程★ … 考式碼存取推測暫存器。因此, 程式設計師無法以其處堙架哭 因此 入或移出推測暫存器。 永乃八抒貝杆移 可以數種不同方式載入早期暫 h j f存益。例如,可能簡辈私 執行從正規指令暫存器移至架 早於 存器》換士之,手…… 的取後載入早期暫 :,:系統可指導架構暫存器載入某個其他暫存 ㈣内谷,取後更新早期暫存器。尚有另—種載人暫存器 的方式為:從記憶體,,爆出"。換+ ° ^ ^ LI 換β之,系統可從記憶體提 取 > 料,將該資料載入架構暫在 器。 臀存詻,進而更新早期暫存 ^而’從正規暫存器移動或者爆出的問題為:可能引進 迴圈設定懲罰。之所以發生此等懲㈣因m可能停止 管線,直到"移動,,或"爆出"的資料可供窝入為止。為了避 免此等懲罰,可於寫入架構暫存器之前,.使用一迴圈設定 指令載入早期暫存器。 以下例子中舉例說明用以引動一示範之迴圈設定機器指 令的語法: LSETUP(PC相對頂端,Pc相對底端)計數器=χ PC相對頂端指定從目前指令至迴圈開始的距離(即開始偏 移)^ P C相對底端指定從目前指令至迴圈結束的距離(結束 偏離)。此外,計數器變數可指定一計數器暫存器以及用以 表示迴圈疊代數的一迴圈計數。 圖3係一流程圖,其中舉例說明根據本發明一具體實施例 載入早期暫存器的時序。如所說明,迴圈設定指令包含一 1236623 A7 B7 五、發明説明(8 ) 計數值,一頂端值,和一底端值形式的迴圈條件。此三值 整體用來定義一硬體迴圈的進入和跳出條件。 計數值表示迴圈進行的疊代數。一旦迴圈設定指令進入 AC(38)後,計數值將寫入ECnt暫存器(39)。初始時,可藉 由從不同管線中包含的資料暫存器進行暫存器移動而寫入 ECnt暫存器。於一作業模式中,將以DAG管線中的P REG 暫存器(見圖6)所包含的資料寫入ECnt暫存器。 頂端和底端值表示何指令為迴圈的頂端,以及何指令為 迴圈的底端。然而,迴圈設定指令中的頂端和底端值係相 對於程式計數器(PC)。因此,AC級中的計算(40)可用以獲 得分別寫入ETop 34和EBot 35暫存器的頂端和底端值。於 迴圈設定指令進入EX1(41)後,頂端和底端值將寫入ETop 34 和 EBot 35 暫存器(42)。 載入ETop暫存器34後,將指向迴圈的第一指令(或迴圈的 頂端)。載入EBot暫存器35後,將指向迴圈的最後指令(或 迴圈的底端)。於載入ECnt暫存器36後,將指定電路經歷迴 圈的次數。於一具體實施例中,ECnt 36向下計數,於電路 經歷迴圈時減量。 圖4係一流程圖,其中舉例說明當管線10接收及處理一迴 圈設定指令時硬體迴圈單元8的一作業模式。根據一格式, 迴圈設定指令可指定包含一開始偏移(S-Offset)和一結束偏 移(E-Offset)的數個設定變數。S-Offset指定指令流中從迴 圈設定指令至迴圈之第一指令的距離。同樣地,E- Offset 指定指令流中從迴圈設定指令至迴圈之最後指令的距離。 -11 - 本紙張尺度適用中國國家標準(CNS) A4規格(210X297公釐) 1236623 A7 B7 五、發明説明(9 ) 例如,如果迴圈中的第一指令為緊隨於迴圈設定指令後 的指令,則S- Offset為迴圈設定指令的寬度。如果指令流 中,於迴圈設定指令與迴圈的第一指令間存在一指令,則 S-Offset將為迴圈設定指令和該指令的寬度。同樣地,如果 於迴圈設定與第一指令間存在兩個指令,則S-Offset將為迴 圈設定指令和該二指令的寬度 如圖4所示,S- Offset和E- Offset通常由一迴圈設定指令 指定(44)。然而,迴圈設定指令亦指定相對於程式計數器 (PC)的偏移。因此,必須同時決定PC值(45)。然後,使用 PC值和S-Offset計算ETop暫存器資料(46)。再者,使用PC 值和E-Offset計算EBot暫存器資料(47)。一旦計算後,可 將早期暫存器資料寫入早期暫存器(48)。 比較圖4和圖2,舉例說明寫入ETop和EBot暫存器的示範 時序。步驟(44)和(45)於DEC級14發生。計算步驟(46)和 (47)於AC級18發生。因此,寫入步驟(48)於EX1級22發 生,但本發明的範圍不限於此。 一旦載入後,則可使用早期暫存器設定硬體迴圈。圖5係 一方塊圖,其中舉例說明連接至管線10其一指令提取(IF) 單元50和一解碼器單元52的一硬體迴圈單元8之具體實施 例。於一具體實施例中,早期暫存器可用以偵測指令流57 中的一迴圈。然後,迴圈硬體54將載入一或更多迴圈指 令。一旦載入後,迴圈指令將從迴圈硬體一再發出。因 此,如果偵測得來自早期暫存器的一指令迴圈,則IF單元 50僅提取一或更多迴圈指令一次,然後,從硬體迴圈單元8 -12 - 本紙張尺度適用中國國家標準(CNS) A4規格(210 X 297公釐) 1236623 五、發明説明(1〇 ) 重覆發出。 實行早期暫存器將引進數項挑 器所引進的一挑戰其發生原 使用早期暫存 以調整,如果管線必須服務4件早期暫存器資料必需加 前作業。如果於窝入一早:J:,則必需終止管線的目 _ . _ ^ ^ 千、月^存器後但於寫入其各別契椹 暫存器如發生終止,則必^ 4 而碉整早期暫存器資料。上 之,早期暫存器係於早期穹 換e 線終止將要求調整早期暫存寫器入資;;斤。以於迴圈承諾前發生管 圖6二一流程圖,其中舉例說明包含早期暫存器調整的— =板式4其,圖6舉例說明調整Ετ〇ρ,驗,Ecnt暫 存器時包含的時序。 如圖6所示,早期暫存器將予以寫入(%)。於圖6的一且 體實施例中,早期暫存器特別指(如圖2所示的)ETop, 獅,和ECnt暫存器。如果於寫人架構暫存器(82)前發生 g線終止(8G) ’則未異常中止的指令將從管線中戍流 (83),而且可藉由窝入各別的架構相對方中包含的資料而 調整早期暫存器(84)。 圖6中舉例說明的作業模式於處理背對背的硬體迴圈時尤 其有用。例如,如果一第二迴圈於承諾前終止,則第一迴 圈仍需執行官線中其餘的指令。圖6中的調整技術提供一種 藉由調整早期暫存器之值進而處理這類轉移的方式。 圖7舉例說明一種以早期計數(ECnt)資料更新架構暫存器 之值的方式。資料可以上述任何方式寫入一 Ecnt暫存器 (90)。然後,將ECnt暫存器資料沿著管線向下傳送(92), -13 本纸張尺度適用中國國家標準(CNS) A4規格(210X297公釐) 1236623
使其在WB級期間寫入架構計數暫存器(93)。然後於迴圈 的每一後續之疊代中(94),ECnt暫存器資料將減量(96), 而且沿著管線向下重新傳送(92)。此項處理將繼續到迴圈 完成其最後疊代(98)為止。 圖8舉例說明一種更新架構計數暫存器的替代方式❶取代 於迴圈的每一疊代後沿著管線將ECnt資料向下傳送,圖8中 舉例說明的作業模式僅傳送一次ECnt資料。然後,於迴圈 的後續疊代中,僅傳送一單一有效減量位元,供調整架構 計數暫存器用。 於圖8中,資料可以上述任何方式寫入—E(:nt暫存器 (90)。然後,將ECnt暫存||資料沿著管線向下傳送幻, 使其在WB級期間寫入架構計數暫存器(93)。於迴圈的後續 疊代中(94),將傳送-單—有效減量位元⑽),用以將架 構計數暫存器減量(104)。此項處理可繼續到迴圈完成其最 後疊代(98)為止。 & ' 圖9係一流程圖,其中舉例說明藉由使用早期暫存器所實 現的時序優點。如圖9所示,迴圈的進入/跳出條件將載入 -組^期暫存器中(12G)。然後,於_迴圈設定指令承諾 (124)前’及早偵測進入/跳出條件(122)。 調整ECnt暫存器將出現額外挑戰。ECn^存器的調整可 於一迴圈完成前存在管線終止的任何時間進行。其係因為 有效指令可能仍在管線中,而且一旦承諾時,此等有效指 令有可能調整架構計數暫存器之值。 > ㈢ 一種於終止後更正ECnt暫存器資料的方式為:允許終止 -14 -
1236623
妁的扣令承諾,然後以其架構相對方寫入ECnt暫存器。然 而,如果分支懲罰小於管線洩流花費的時間,則將加上額 外的懲罰。 圖10舉例說明一種調整一早期計數值的有效方式。如所 π,於一迴圈設定指令進入八^級(180)後,將窝入早期計 數暫存器(182)。此時,ECnt資料將沿著管線向下傳送 (184)。如果發生終止(185),則使未異常中上的指令洩流 (186) ,而且以其架構相對方中的資料寫入ECnt暫存器 (187) 。 於每次底端匹配(190)時,將沿著管線向下傳送一有效減 量位元(192)。當引發傳送一有效位元的一指令跳出每一管 線級(194)時,將從所跳出之管線級的計數器移除一有效減 量位元(196)。換言之,當傳送一有效位元時(例如於 192) ’計數器將增量,然後當引發傳送有效減量位元的指 令跳出管線級時將減量(例如於196)。 如果管線中發生終止(198),則以終止級之計數器中的有 效減量位元數目調整早期計數暫存器(188)。此調整值亦可 於駐留在管線中較發生終止的級更後面的每一管線級之各 別計數器中表達。圖10中的步驟將自行重覆,直到所有迴 圈指令均跳出管線為止(200)。 ECnt暫存器於每一次底端匹配時(例如每次通過迴圈時) 減量。然而,取代於每次底端匹配後沿著管線向下傳播整 個ECnt值,僅沿著管線向下傳送一單一有效減量位元。以 此方式,可於DSP系統中實現硬體簡化。該組計數器可監 -15 - 本紙張尺度適用中國國家標準(CNS) A4規格(210X 297公釐)
裝 訂
1236623 A7 B7 五、發明説明(13 ) 視有效減量位元和引發傳送該等位元的相關指令。如此, 該組計數器可監視一早期計數暫存器與其架構相對方間的 差異。 圖11係一方塊圖,其中舉例說明一電路中的計數器。如 所示,將維護DEC後的每一管線中之計數器(210,211, 212和213)。因此,將沿著管線向下傳播一單一有效減量位 元,用以計數早期計數暫存器與其架構相對方間的差異。 該計數器將連接至一多工器220的輸入。如有必要,多工器 220將決定使用何計數器調整早期計數暫存器36。 於其他具體實施例中,當某一指令常駐於某一級時,某 些級將不發生終止,或者將限制終止。這類具體實施例 中,電路硬體可藉由不在限制終止的級中實行計數器而予 以簡化。 必要時,可改變計數器210,211,212和213的寬度。例 如,計數器210可為一壹位元計數器,而211可為一兩位元 計數器。計數器212和213的最小深度取決於管線中的執行 級數目η。計數器210可為一壹位元計數器,因為其值永遠 為1或零。例如,如果一底端匹配指令目前於AC中,則其 值為壹。當該指令離開AC時,計數器轉為零。 計數器211和下一(例如ΕΧ2級的)計數器可為兩位元計數 器,然而本發明之範圍不限於此。其係因為計數器211(例 如ΕΧ1計數器)可能具有最大值2,ΕΧ2計數器可能具有最大 值3。ΕΧ3計數具有最大值4,因而需要三位元。同樣地, 其後三個計數器(例如ΕΧ4至ΕΧ6)可能為能夠分別表達五至 -16 - 本紙張尺度適用中國國家標準(CNS) Α4規格(210 X 297公釐) 1236623 A7 ____ B7 五、發明説明(14 ) 七之值的三位元計數器。 每一級的計數器寬度可藉由考慮該計數器必需保留的最 大值加以決定。此可對應於迴圈為一單一指令迴圈的情 況。因此,計數器的深度可簡單地對應於計數器與Ac間的 級數目。然而,其大小再次同樣取決於某一特定級中是$ 發生終止,而使某些級不需要計數器。 另一作業模式為一種調整早期計數暫存器的一併合方 式。如果使管線洩流的相關懲罰大於分支懲罰,則將使用 選足之管線級中常駐的計數器調整早期計數暫存器。然 而’如果洩流懲罰小於或等於分支懲罰,則允許管線中的 指令承諾,而且以其架構相對方調整早期計數暫存器。系 統作業的選擇可取決於管線的何處發生終止。於一情況 中,如果於EX3級或WB級發生終止,則將使具有3個執行 級的一管線洩流,但是如果於ΕΧ3級前發生終止,則將使 該管線洩流,而且將調整早期計數器。 圖12係一流程圖,其中舉例說明一種併合的作業模式。 如所示,如果於第η級前發生終止(23〇),則一計數器將調 整一早期計數值(228)。然而,如果於第η級後發生終止 (230),則允許管線中的指令流過管線而且承諾(232)。然 後,以其架構相對方中的資料更新早期暫存器(223)。變數 η定義允許指令流過管線所花費的時間量小於或等於分支懲 罰的點(234)。 圖13舉例說明於前η」執行級中具有計數器的一併合電 路。如果一指令已經進入第n執行級,則該電路允許管線執 1236623 A7 B7 五、發明説明(15 ) 行終止以後的指令。然而,如果一指令尚未進入第η執行 級,則該電路將調整終止以後的一早期計數暫存器。變數η 再次定義允許指令流過管線所花費的時間量小於或等於分 支懲罰的點。於其他情況中,變數η可常駐於管線中更早之 處(例如分支懲罰較大之處)。 像是迴圈暫存器和迴圈緩衝器的額外迴圈硬體可促進快 速的硬體迴圈。如此處所述的迴圈硬體可提供數項優點。 於某些實行中,迴圈硬體可隱藏分支懲罰。此外,迴圈硬 體可藉由排除於迴圈的每一疊代中存取像是快取記憶體或 SRAM之記憶體裝置的需要而節省電力。再者,以下所述的 迴圈硬體其程式規劃的限制極少。再者,迴圈硬體排除對 齊限制,否則其將存在於程式記憶體中。 再次參照圖1,其中舉例說明具有一執行管線4和一控制 單元6的一可程式處理器2。控制單元6包括硬體迴圈單元 8 0 硬體迴圈單元8可包括串列連接的一或更多組迴圈緩衝 器。此外,硬體迴圈單元包括一或更多單一指令迴圈暫存 器。迴圈緩衝器以及/或者迴圈暫存器的集合整體為迴圈硬 體。此集合可促進快速的硬體迴圈。 再次參照圖5,其中舉例說明一方塊圖,顯示連接至管線 1〇其一指令提取單元50和一解碼器單元52的一硬體迴圈單 元8之具體實施例。指令提取單元50將一些輸入之一提供予 硬體迴圈單元8。硬體迴圈單元8包含連接至迴圈硬體54的 一多工器56。迴圈硬體54包含一或更多組迴圈緩衝器以及/ -18 - 本紙張尺度適用中國國家標準(CNS) A4規格(210 X 297公釐) 1236623 A7 B7 五、發明説明(16 ) 或者一或更多迴圈暫存器。再者,該組迴圈緩衝器包括串 列連接而且已經定義數目的緩衝器。每一組迴圈緩衝器具 有一相關的迴圈暫存器。 圖14係另一方塊圖,其中舉例說明一硬體迴圈單元8的一 具體實施例。硬體迴圈單元8再次連接至一指令提取單元50 和一解碼器(未顯示)。 硬體迴圈單元8包括連接至迴圈硬體的一多工器260。迴 圈硬體包括串列連接的一組迴圈緩衝器271,272,273和 274。此等緩衝器將提供另一多工器280的輸入。接著,多 工器260和280提供多工器290的輸入。多工器290的輸出連 接至一迴圈暫存器296,其將連接回多工器260的輸入。硬 體迴圈單元8的輸出提供一解碼器的輸入。 多工器260具有複數個輸入。包括來自一暫存器(例如一 仿真器指令暫存器)的一輸入,和來自提取單元50的一輸 入。此外,多工器260具有來自迴圈指令暫存器的一輸入, 和來自一或更多其他硬體迴圈單元的一輸入。 示範之圖14舉例說明包含一組深度為4的迴圈緩衝器和一 單一指令暫存器的迴圈硬體。然而,其他具體實施例中可 使用任意數目的緩衝器以及/或者指令暫存器。 於示範之作業模式中,迴圈緩衝器於兩種不同的情節中 實行。於一情節中,可將迴圈中的每一指令安排於迴圈緩 衝器。於另一情節中,無法將迴圈中的每一指令安排於迴 圈緩衝器。接著討論各情節。 圖15係舉例說明一情節的圖形。如所示,以一三個指令 -19 - 本紙張尺度適用中國國家標準(CNS) A4規格(210 X 297公釐) 1236623 A7 B7 五、發明説明(17 ) 的迴圈(12-14)載入一組深度為4的迴圈緩衝器。如此,迴圈 緩衝器之一和VTop暫存器將不載入任何資料。指令12-14可 一再執行,直到符合迴圈的跳出條件為止。如所示,每次 從迴圈緩衝器發出14指令時將檢查跳出條件。 圖16係一流程圖,其中舉例說明一情節。如所示,將發 出指令(300),指令將載入一組迴圈緩衝器(302),而且記 憶體裝置將停止(304) ^停止記憶體可使DSP系統節省電 力。將指令載入該組緩衝器(302)後,接著將從該組緩衝器 發出指令(306)。指令可一再發出,直到符合迴圈的跳出條 件(308)為止。 圖17係另一流程圖,其中.舉例說明一情節。如所示,將 發出指令(310),指令將載入一組迴圈緩衝器(314),一記 憶體裝置將停止(316),而且將初始化一迴圈計數(312)。 只要不符合迴圈的跳出條件(318),迴圈計數將減量 (320),而且將從一組迴圈緩衝器發出指令(322)。記憶體 裝置將停止,直到迴圈計數到達一定義的數目X為止 (316)。再者,X將予以定義,使得當迴圈完成時,迴圈之 後的下一指令可於提取單元中立即備妥。以此方式,可避 免一迴圈跳出懲罰。 於其他具體實施例中,一迴圈計數將初始化為零(312)。 然後調整將使迴圈計數增量(320),而非如圖17所示的減 量。尚有其他具體實施例於考慮圖15—17後將可明白。 圖18係舉例說明另一情節的圖形。如所示,以一迴圈的 四個指令(12-15)載入一組深度為4的迴圈緩衝器。此外,一 • 20 - 本紙張尺度適用中國國家標準(CNS) A4規格(210 X 297公釐) 裝 訂
線 1236623 A7 B7 五、發明説明(18 VTop暫存器可與迴圈中下一指令的位址一同載入。vT〇p 可為常駐於管線中的一位址暫存器(見圖2 , 37) ^於迴圈的 後績疊代期間,將執行指令12_ 15,同時提取16。然後,於 15執行後’ 16將立即備妥以便執行。於迴圈的疊代期間, 將檢查跳出條件。 圖19係一流程圖,其中舉例說明圖18的情節。如所示, 當發出指令的第一子集時(332),該指令的第一子集將載入 一組緩衝器(330)❹其次,將指令的第二子集其開始位址載 入一暫存器(334),而且發出該第二子集(336)。於迴圈的 後續疊代期間(疊代的數目係由跳出條件所定義(338)),從 該組緩衝器發出指令的第一子集(34〇),同時提取一第二子 集(342)。然後,發出該第二子集(344)。 根據圖19的一作業模式可實現數項優點。例如,每次從 一組緩衝器發出第一子集時,如果不將記憶體裝置點火, 則可節省電力。此外,於發出第一子集時提取第二子集可 最J化圈心罰。於_具體實施例中,迴圈緩衝器的深度 對應於最少的分支懲罰。因,匕,提取第二子集的相關懲罰 將隱藏於發出指令的第一子集背後。如此將增加Dsp的速 度。然而,於其他具體實施例中,當節省電力為一更重要 的汉计特性時(例如像是於電池供電的裝置上實行的電 路),較深的緩衝器將較為有用。 指令=第一子集為可安排於該組迴圈緩衝器的指令數❹ 指令的第二子集為迴圈中已經載入緩衝器後的下一指令。 替代上,第二子集可為載入緩衝器之指令後的複數個指 • 21 - 本紙張尺度適用中國國家標準(CNS) A4g^7^297公爱) 裝 訂
1236623 A7 B7 五、發明説明(19 ) 令。 圖20係一更廣義的流程圖,其中舉例說明上述情節。如 所示,可將指令的第一子集載入一組緩衝器(350)並且加以 發出(352)。如果可將迴圈的所有指令安排於迴圈緩衝器 (354),則一記憶體裝置將停止(355),而且從該組緩衝器 連續發出指令(356),直到符合跳出條件為止(358)。 如果無法將迴圈的所有指令安排於迴圈緩衝器(354),則 發出指令的第二子集(360),而且將該等指令的開始位址載 入一暫存器(362)。於迴圈的後續疊代中(如跳出定義所定 義(364)),從該組緩衝器發出指令的第一子集(366),而且 從記憶體提取一第二子集(368)。然後發出該第二子集 (370)。 於圖18的情節中,每次發生底端匹配時,將對VTop指向 的位址提出要求。以此方式,於提取指令的第二子集時, 可調度指令的第一子集。 於調度迴圈中的第一子集指令前,已存取快取記憶體/記 憶體,而且一對齊緩衝器中餵滿第二子集的指令。對齊緩 衝器可保留多重指令(取決於各指令的寬度)。如果第二子 集包括複數個指令,則於對齊緩衝器中,該複數個指令將 與第二子集的第一指令對齊,其中該指令與一 VTop暫存器 相關。 作業進一步包括··於調度與VTop相關的指令時,要求與 VTop相關之指令後的下一指令。例如,於一作業模式中, 與VTop相關的指令係一 64位元指令。當調度該64位元指令 -22 - 本紙張尺度適用中國國家標準(CNS) A4規格(210X297公釐) 五、發明説明(2〇 ) 時,將提取(記憶體中之對齊所定義的)下一 64位元指令。 藉由一再重覆,一 DSP系統可以一快速而且有效率的方式 調度指令。 實行硬體迴圈的先前技藝之可程式處理器系統的運算碼 必需有許多限制。然而,高度期盼提供具有極少程式規劃 限制的硬體迴圈。於一具體實施例中,根據本發明的一系 統僅具有一程式規劃限制。單一限制為:該系統於一迴圈 底端不可具有一分支。 快速的硬體迴圈可能有迴圈緩衝器請求無效的情形。此 等情形包括一迴圈緩衝器已經殖入一條件分支的無效。因 此,於一作業模式中,如果一迴圈中的前令係一條件分 支,則一組迴圈緩衝器將為無效。變數n定義該組迴圈緩衝 器的深度。 一迴圈緩衝器將要求無效的另一情形為:當接收一事件 時正載入一迴圈緩衝器。此外,一迴圈緩衝器可能於一自 我修正碼C一SYNC後要求無效。因此,當此二情形之任一 情形發生時’其他作業模式中將包含使一迴圈緩衝器無 效。 零偏移迴圈將引進額外挑戰。偏移指迴圈設定指令與迴 圈中的第一或最後指令間的距離。於先前技藝之系統中, 偏移為促進硬體迴圈設定或者計數系統中的程式規劃例外 所需。然而,促進零偏移迴圈係高度優勢,因為可以減少 處理時間。 即使於實行早期暫存器和迴圈緩衝器的一系統中,零偏 -23 - 本紙張尺度適用 Α4Λ(21〇Χ297^) 1236623 A7 -- —— __51 五、發明説明(21 ) 移迴圈仍將發生挑戰。例如上述系統中,於寫入早期暫存 器(例如EX1)的時間之前,一零偏移迴圈的第一指令可能已 經於^^^中。因此,由於迴圈的開始早在寫入ETop和EBot <前’跳出DEC,所以該電路可有效率地"遺漏"一頂端匹
g己C 已、經有特殊的作業模式和電路安排設計用來偵測及處理 零偏移迴圈。於一作業模式中,將一迴圈設定指令的開始 偏移(S -偏移)與一已知值相比較,以便偵測零偏移。以此 方式’可促進及早偵測一零偏移迴圈。於一特殊之具體實 施例中’ s-偏移與4相比較,其中4表示一 32位元指令的四 個位το組。一旦偵測後,將早在寫入早期暫存器之前設定 一零偏移迴圈。 圖2 1係一流程圖,其中舉例說明用以偵測零偏移迴圈的 一作業模式。如所示,將一迴圈設定指令予以解碼(38〇)。 然後’將s-偏移與已定義數字相比較(382)(該已定義數字 對應於迴圈設定指令的寬度)。以此方式,將早在窝入早期 暫存器之前偵測一零偏移迴圈。如以上所述,如果偵測得 圈(384),則發出迴圈中的下n指令,而且將其載 入一迴圈緩衝器(386)。 圖22係一流程圖,其中舉例說明偵測及處理一單一指令零偏移迴 圈之特殊情况的一作業模式。如所示,將一迴圈設定指令予以解碼 (388)如果偵測得零偏移(WO),而且開始偏移等於結束偏移⑽), 則二即執行-單一指令迴圈(394)。當卜偏移等於迴圈設定指令時, 可偵測零偏移。當s-偏移和e_偏移相同時,將偵測得一單一指令迴 _____ - 24 - 本紙張尺度適用中s @家石((:_ A4規格(21GX297公爱) ---- 1236623 A7 B7 ___ 五、發明説明(22 ) 圈。 特殊硬體可用以促進盡可能快速設定及執行一單一指令 迴圈。再次參照圖14,迴圈暫存器296可用於此種特殊情 況。因此,步驟(394)可藉由將單一指令載入迴圈硬體(像 是迴圈暫存器296)而執行,而且從硬體迴圈單元8重覆發出 該指令,直到符合單一指令迴圈的跳出條件為止。 有可能於偵測得一單一指令迴圈後,藉由將該指令解碼 後保留於一特定迴圈指令暫存器296而執行(見圖14)。此 外,將不存取記憶體裝置,而且向上流的一切均停止,以 便節省電力。再者,由於將從迴圈指令暫存器296發出單一 指令迴圈,所以指令提取單元50可能可用,而能夠(例如從 一快取記憶體)提取下一指令。因此,當單一指令完成執行 時,下一指令可能已經在指令提取單元50中,導致零懲罰 的迴圈跳出。 總之,零偏移硬體迴圈可分解成三個情況。於第一情況 中,一零偏移單一指令迴圈將於解碼後,經由一迴圈指令 暫存器立即發出。於第二情況中,立即偵測得一零偏移的n 個指令迴圈,並且完整載入一組深度為η的迴圈緩衝器。而 第三情況中,立即偵測得一零偏移迴圈,而且將該迴圈的 前η指令載入一組深度為η的迴圈緩衝器。然後,下一指令 將與一 VTop暫存器相關。 於一具體實施例中,如此處所述的迴圈硬體可於一管線 中實行。此將優於實行一快取記憶體中的緩衝器。 於一作業模式中,迴圈指令將儲存於迴圈硬體中,使指 -25 - 本紙張尺度適用中國國家標準(CNS) A4規格(210 X 297公釐) 1236623 A7 B7 五、發明説明(23 ) 令與一指令邊界對齊。此將優於將指令與一位址邊界對 齊。一旦對齊迴圈硬體中的一指令邊界,則當後續從迴圈 硬體發出時,將不需對齊指令。 為了將指令與一指令邊界對齊,一組指令將以執行次序 載入迴圈硬體,而且將下一指令的位址儲存於一位址暫存 器中。此外,第二組指令將以執行次序載入一記憶體裝 置。以執行次序將指令載入迴圈硬體可包含將η個順序指令 載入η個緩衝器,其中η為一正整數。再者,該η個順序可 為包括一迴圈其前η指令或者一迴圈的最後η指令的任何順 序指令。 於其他具體實施例中(如.圖23Α—23C所示),其中將實行 一些硬體迴圈單元。可能有任意數目之硬體迴圈單元的輸 出連接至一或更多其他硬體迴圈單元的各別輸入。以此方 式,第二硬體迴圈單元將經由第一硬體迴圈單元的輸出載 入。只要不將一記憶體裝置點火並且載入第二硬體迴圈單 元,將再次能夠節省電力。 於某些情況下,將使用複數個迴圈單元作為巢套迴圈(或 者重合迴圈)。一裡面的硬體迴圈單元可保留與一外面的硬 體迴圈單元對齊的一或更多指令。再者,該裡面的硬體迴 圈單元藉由將對齊的指令從外面的硬體迴圈傳送至裡面的 硬體迴圈單元之輸入而予以載入。 於更多其他具體實施例中,將實行複數個獨立的硬體迴 圈單元。然而,如果相同的DSP系統中使用二或更多獨立 的硬體迴圈單元,則將使用一限制。例如,當兩迴圈具有 -26 - 本紙張尺度適用中國國家標準(CNS) Α4規格(210 X 297公釐) 裝 訂
線 1236623 A7 B7 五、發明説明(24 ) 相同的底端指令時,其中一迴圈將定義成外面的迴圈。如 果沒有此項限制,該電路將遭遇兩個底端匹配,而不知何 者須減量。 尚有另一作業模式包含硬體迴圈的電力管理。當硬體迴 圈致能時,將ETop暫存器與P C相比較,以便考慮每一次頂 端匹配。同樣地,將一 EBot暫存器與P C相比較,以便考慮 每一次底端匹配。然而,當硬體迴圈去能時,比較器電路 中的任何交換只會浪費電力。因此,當硬體迴圈去能時, 將底端匹配和頂端匹配比較器電路去能較為有利。藉由在 硬體迴圈去能時選擇將比較器去能的比較器輸入,可以保 存電力。 圖24係一示範之具體實施例,其中顯示電力節省電路。 ETop暫存器400和EBot暫存器402分別將一些輸入之一提供 予多工器404和406。多工器404和406的輸出將輸入比較器 408和410。比較器408和410的其他輸入來自多工器412的輸 出。多工器412的輸入係來自程式計數器414,另有來自一 組控制單元的一迴圈去能信號416。多工器404,406和412 將予以安排,使得當硬體迴圈去能時,多工器412的輸出與 多工器404和406的輸出不同。如此可以確保:當硬體迴圈 去能時,比較器408或410不發生交換。 於一具體實施例中,相同的迴圈去能信號416將傳送至多 工器404,406和412。然而,於多工器412接收該信號前, 一反相器(未顯示)將一位元反轉。以此方式,當一迴圈去 能信號傳送至該輸出時,多工器412的輸出將與多工器404 -27 - 本紙張尺度適用中國國家標準(CNS) A4規格(210 X 297公釐)
線 1236623 A7 _B7___ 五、發明説明(25 ) 和406的輸出不同。 圖24同時舉例說明使一 ECnt暫存器418增量的一示範電 路。每一次迴圈通過時,多工器420將使ECnt暫存器減量。 然而,如果必需調整,接著調整信號(例如設備計數422)將 調整ECnt。一旦迴圈完成其最後疊代後,比較器424將傳送 一信號425加以指示。 圖24同時舉例說明如何偵測底端匹配和頂端匹配。當比 較器410偵測得程式計數器412與ETop暫存器具有相同值 時,將傳送一頂端匹配信號428。當比較器408偵測得程式 計數器與EBot暫存器具有相同值時,將傳送一底端匹配信 號 430。 最後,圖24同時舉例說明一管線中實行的一 VTop暫存器 432。如此處所說明,VTop可為用以保留已載入迴圈硬體 (未顯示)之複數個指令後下一指令位址的一位址暫存器。 已經說明本發明的各種具體實施例。例如,已經說明一 處理器内所實行的各芦硬體迴圈技術。該處理器可於包括 多用途計算系統,數位處理系統,膝上型電腦,個人數位 助理(P DA),和細胞式電話等多種系統中實行。於本文 中,以上討論的硬體迴圈可迅速增加處理速度而且沒有大 幅增加電力耗用。於此一系統中,處理器將耦合至一記憶 體裝置,其像是用以儲存一作業系統和其他軟體應用的一 快閃記憶體裝置或者一靜態隨機存取記憶體(SRAM)。此等 及其他具體實施例均於以下申請專利範圍的範圍内。 -28 - 本紙張尺度適用中國國家標準(CNS) A4規格(210X 297公釐)

Claims (1)

1236會為丨27;^號專利申請案 中文申請專利範圍替換本(92年12月)丨 申請專利範圍 1. 一種增加一處理器之處理速度之方法,包含·· 於第一次通過一迴圈期間,將一連串指令的一第一子 集載入該迴圈硬體; 於後續通過該迴圈期間,從該迴圈硬體發出一第一子 集;以及 於後續通過該迴圈期間,基本上在發出第一子集的同 時,從一記憶體裝置擷取該一連串指令的一第二子集。 2 _如申清專利範圍第1項之方法,該方法進一步包含:於發 出第一子集後發出第二子集。 3 ·如申請專利範圍第1項之方法,該方法進一步包含:於後 續每次通過該迴圈期間,從迴圈硬體發出第一子集;以 及 於後續每次通過該迴圈期間,基本上在發出第一子集 的同時,從記憶體裝置擷取該一連幸指令的第二子集。 4.如申請專利範圍第1項之方法,其中從一記憶體裝置擷取 一連串指令的第二子集包含:從一快取記憶體擷取該一 連串指令的第二子集。 5 .如申請專利範圍第1項之方法,其中從一記憶體裝置擷取 一連串指令的一第二子集包含:從SRAM擷取該一連串 指令的一第二子集。 6 ·如申請專利範圍第1項之方法,其中於第一次通過一迴圈 期間,將一連攀指令的一第一子集載入迴圈硬體;以及 於後續通過該迴圈期間,從迴圈硬體發出第一子集包 含·· 本紙張尺度適用中國國家標準(CNS) A4規格(21〇X 297公羡) A8 B8 C8
1236623 於第-次通過一迴圈期間,將一連串指令的一第一子 集載入一組迴圈緩衝器;以及 糸後續通過该迴圈期間,從該組迴圈緩衝器發出第一 子集。 7.如申請專利範圍第!項之方法,其中㈣續通過該迴圈期 間,基本上在發出第—子集的同時,從記憶體裝置擷取 該一連串指令的第二子集包含: 於後續通過該迴圈期間,基本上在發出第一子集的同 時,從i己憶體裝置擷取該一連申指令中緊隨於第一子集 後的下一指令。 8 ·如申請專利範圍第丨項之方法,其中該方法包含··於發出 第一子集的指令前完成第二子集的擷取。 9 ·如申請專利範圍第丨項之方法,其中擷取一第二子集包 含:擷取一些指令,編號第一的指令係該一連串指令中 緊隨於第一子集後的下一指令。 10. —種增加處理速度之裝置,包含: 一控制單元,其包含: 一指令提取單元;以及 迴圈硬體,其耦合至該指令提取單元;以及 一解碼器’其摘合至該指令提取單元和該迴圈硬體; 其中該控制單元改編成: 於第一次通過一迴圈期間,將指令的一第一子集載入 該迴圈硬體; 於後纟買通過該迴圈期間,從迴圈硬體發出第一子集; -2 - 本紙張尺度適用中國國家標準(CNS) A4規格(210 X 297公釐) A8 B8 C8 D8 控;%校23 六、申請專利範圍 以及 於後續通過該迴圈期間,基本上在發出第一子集的同 時,從記憶體裝置擷取該一連_指令的一第二子集。 11·如申請專利範圍第1 0項之裝置,其中該迴圈硬體包含平 行耦合的至少一組緩衝器。 12·如申請專利範圍第1 1項之裝置,其中該組缓衝器係迴圈
裝 缓衝器。 13·如申請專利範圍第1 2項之裝置,該裝置進一步包含一記 憶體裝置,其中該指令提取單元耦合至該記憶體裝置。 14. 如申請專利範圍第1 3項之裝置,其中該記憶體裝置係一 快取記憶體。 15. 如申請專利範圍第1 0項之裝置,其中該控制單元進一步 改編成於發出第一子集後發出第二子集。 16. 如申請專利範圍第1 0項之裝置,其中該控制單元進一步 改編成: 於後績每次通過該迴圈期間,從迴圈硬體發出第一子 集;以及 於後續每次通過該迴圈期間,基本上在發出第一子集 的同時,從記憶體裝置擷取該一連串指令的第二子集。 17. —種增加一處理器之處理速度之系統,包含·· 一 SRAM記憶體裝置; 迴圈硬體;以及 一處理器,其耦合至該記憶體裝置,其中該處理器包 括一控制單元,該控制單元改編成: -3 - 本紙張尺度適用中國國家標準(CNS) A4規格(210 X 297公釐) 1236623 A8 B8 C8 D8 六、申請專利範圍 於第一次通過一迴圈期間,將一連串指令的第一子集 載入該迴圈硬體, 於後續通過該迴圈期間,從迴圈硬體發出第一子集; 以及 於後續通過該迴圈期間,基本上在發出第一子集的同 時,從一記憶體裝置擷取該一連串指令的一第二子集。 18·如申請專利範圍第1 7項之系統,其中該控制單元進一步 改編成於發出第一子集後發出第二子集。 19.如申請專利範圍第1 7項之系統,其中該控制單元進一步 改編成· 於後續每次通過該迴圈期間,從迴圈硬體發出第一子 集;以及 於後續每次通過該迴圈期間,基本上在發出第一子集 的同時,從1己憶體裝置掏取該一連串指令的第二子集。 20·如申凊專利範圍第1 7項之系統,其中該迴圈硬體包括至 少一組緩衝器。 21. 如申请專利範圍第2 0項之系統,其中該組緩衝器係迴圈 緩衝器。 22. —種增加一處理器之處理速度之方法,包含: 於第一次通過一迴圈期間,將一連串指令的第一子集 載入一組緩衝器; 於後續通過該迴圈期間,從該組緩衝器發出第一子 集; 於後績通過該迴圈期間,基本上在發出第一子集的同 -4 -
1236623 A8 B8 C8 D8 六、申請專利範圍 時’從一記憶體裝置擷取該一連串指令的一第二子集; 以及 於後續通過該迴圈期間,在發出第一子集後發出第二 子集。 23. 如申請專利範圍第2 2項之方法,其中從一記憶體裝置擷 取該一連申指令的第二子集包含··從一快取記憶體擷取 該一連串指令的一第二子集。 24. 如申請專利範圍第2 2項之方法,其中於後續通過該迴圈 期間’基本上在發出第一子集的同時,從記憶體裝置擷 取该一連_指令的第二子集包含: 於後續通過該迴圈期間,基本上在發出第一子集的同 時,從記憶體裝置擷取該一連串指令中緊隨於第一子集 後的下一指令。 25·如申請專利範圍第2 2項之方法,其中該方法包含:於發 出第一子集的指令前完成第二子集的擷取。 26·如申請專利範圍第2 2項之方法,其中擷取一第二子集包 含:擷取一些指令,編號第一的指令係該一連串指令中 緊隨於第一子集後的下一指令。 27. —種增加一處理器之處理速度之方法,包含: 於第一次通過一迴圈期間,將一連串指令的前η指令載 入迴圈硬體,其中η為一正整數;以及 從該迴圈硬體發出該前η指令中的至少一指令。 28. 如申請專利範圍第2 7項之方法,該方法進一步包含:於 第一次通過該迴圈期間,將第(η+ ;[)指令的位址載入一 -5 - 本紙張尺度適用中國國家標準(CNS) Α4規格(210 X 297公釐) 123^62$ A8 B8 C8 D8 申請專利範圍 指令位址暫存器。 29. 如申請專利範圍第2 8項之方法,該方法進一步包含:於 後續通過該迴圈期間,從該迴圈硬體發出前^指令。 30. 如申請專利範圍第2 9項之方法,該方法進一步包含於後 績母次通過該迴圈期間,從迴圈硬體發出指令。 31·如申凊專利範圍第2 9項之方法,該方法進一步包含:於 後續通過該迴圈期間,基本上在發出前n指令的同時,擷 取弟(n+Ι)指令。 32.如申請專利範圍第2 8項之方法,該方法進一步包含對齊 一記憶體裝置中的下一(m)指令,其中m為一正整數。 μ 33·如申請專利範圍第3 2項之方法,該方法進一步包含: 基本上於發出前n指令的同時,擷取第(n+1)指令; 發出第(n+Ι)指令;以及 基本上於發出第(n + 1)指令的同時,擷取第(n + 2 )指 令。 34.如申請專利範圍第3 3項之方法,該方法進一步包含: 發出第(η + 2)指令;以及 基本上於發出第(η + 2 )指令的同時,擷取第(η + 3 )指 令。 35. 如申請專利範圍第2 7項之方法,該方法進一步包含:當 從迴圈硬體發出至少一指令時,不存取一記憶體裝置。 36. —種增加處理速度之裝置,包含: 一控制單元,其改編成:於第一次通過一迴圈期間, 將一連串指令的前η指令載入迴圈硬體,其中η為一正整 本紙張尺度適用中國國家標準(CNS) Α4規格(210 X 297公釐) Ϊ2366235
、申請專利範圍 數,該控制單元包含: 一指令提取單元;以及 迴圈硬體,其連接至該提取單元;以及 一解碼器,其連接至該控制單元。 37·如申請專利範圍第3 6項之裝置,該裝置進一步包含一記 憶體裝置,其連接至該指令提取單元。 38·如申請專利範圍第3 7項之裝置,其中該記憶體裝置係一 快取記憶體。 39. 如申請專利範圍第3 6項之裝置,該裝置進一步包含一指 令位址暫存器,其中該控制單元改編成:於第一次通過 該迴圈期間,將第(n + 1)指令的一位址載入該指令位址 暫存器。 40. 如申請專利範圍第3 9項之裝置,其中該控制單元改編 成:於後續通過該迴圈期間,從該迴圈硬體發出前η指 令。 41·如申請專利範圍第4〇項之裝置,其中該控制單元改編 成:於後續每次通過該迴圈期間,從該迴圈硬體發出指 令。 42.如申請專利範圍第4 〇項之裝置,其中該控制單元改編 成:於後續通過該迴圈期間,基本上在發出前η指令的同 時,擷取第(η + 1)指令。 43·如申請專利範圍第3 7項之裝置,進一步包含一指令位址 暫存器,其中該控制單元改編成:於第一次通過該迴圈 期間’將弟(η + 1)指令的一位址載入該指令位址暫存 本紙張尺度適用中國國家標準(CNS) Α4規格(210X297公爱) A8 B8 C8 D8 I2S6623 六、申請專利範圍 器,而且對齊記憶體裝置中的下一(m)指令,其中m為— 正整數。 44·如申請專利範圍第4 3項之裝置,其中該控制單元改編 成·· 修煩 手.請 三 >、··.二 :-:']' ;.1 i Λ: (r 基本上於發出前η指令的同時,擷取第(n+1)指令; 發出第(n+1)指令;以及 基本上於發出第(n+1)指令的同時,擷取第(n + 2)指 令。 45.如申請專利範圍第44項之裝置,其中該控制單元改編 成: 發出第(n + 2)指令;以及 基本上於發出第(n + 2 )指令的同時,擷取第(η + 3 )指 令〇 46·如申請專利範圍第3 7項之裝置,該裝置改編成:當從迴 圈硬體發出指令時,不存取記憶體裝置。 47·如申請專利範圍第3 6項之裝置,其中該迴圈硬體包括平 行耦合的至少一組緩衝器。 48. 如申請專利範圍第4 7項之裝置,其中該組缓衝器係迴圈 緩衝器。 49, 一種增加一處理器之處理速度之系統,包含: 一 SRAM記憶體裝置; 迴圈硬體;以及 一處理器,其耦合至該記憶體裝置,其中該處理器包 括一控制單元,該控制單元改編成: -8 - 本紙張尺度適用中國國家標準(CNS) A4規格(210 X 297公釐) A8 B8 C8
1236623 於第-次it過—迴圈期間,將—連串指令的前n指令載 入迴圈硬體,其中η為一正整數。 50.如申請專利範圍第4 9項夕玄△、 #丄、,㈤ 固弟4 y貝 < 系統,其中該迴圈硬體包括平 行耦合的至少一組緩衝器。 5L如申請專利範圍第49項之系統,該系統進一步包含一指 々位址來存态,其中戎控制單元改編成··於第一次通過 3 圈,、月間’將第(n + i )指令的一位址載入該指令位址 暫存器。 (Jr 52·如申請專利範圍第5丨項之系統,其中該控制單元改編 成:於後續通過該迴圈期間,從迴圈硬體發出前n指令。 53·如申請專利範圍第52項之系統,其中該控制單元改編 成·於後績每次通過該迴圈期間,從迴圈硬體發出前n指 〇 54.如申請專利範圍第52項之系統,其中該控制單元改編 成·於後續通過該迴圈期間,基本上在發出第η指令的同 時’擴取第(η + 1)指令。 55·如申請專利範圍第5 1項之系統,其中該控制單元改編 成·對齊記憶體裝置中的下一(m)指令,其中m為一正整 數。 56.如申請專利範圍第5 5項之系統,其中該控制單元改編 成: 基本上於發出前η指令的同時,掏取第(n +丨)指令; 發出第(n+1)指令;以及 基本上於發出第(n+1)指令的同時,擷取第(n + 2)指 -9 - 本紙張尺度適用中國國家標準(CNS) A4規格(210 X 297公釐) A8 B8 C8 D8 1236623 - ; .-·* - 六、申請專利範圍 〇 57.如申凊專利範圍第5 6項之系統,其中該控制單元改編 成: 發出第(n + 2)指令;以及 基本上於發出第(n + 2)指令的同時,擷取第(n + 3)指 令0 58·如申請專利範圍第5 1項之系統,其中該系統改編成··當 從迴圈硬體發出指令時,存取記憶體裝置。 59· —種增加一處理器之處理速度之方法,包含: 於第一次通過一迴圈期間,將一連串指令的前η指令載 入迴圈硬體,其中η為一正整數; 於第一次通過該迴圈期間,將第(η+1)指令的一位址載 入一指令位址暫存器; 對齊一 *己憶體裝置中的下一(m)指令,其中m為一正整 數; 於後續通過該迴圈期間,從迴圈硬體發出前η指令; 於後續通過該迴圈期間,基本上在發出前η指令的同 時’使用已載入該指令位址暫存器的位址擷取第i) 指令; 發出第(n+1)指令;以及 基本上於發出第(n + 1)指令的同時,擷取第(n + 2 )指 〇 60·如申請專利範圍第5 9項之方法,該方法進一步包含: 發出第(n + 2)指令;以及 -10 - 本紙張尺度適财®目家標準(CNS) A4規格(210X297公嫠了 基本上於發出第(n + 2)指令的同時,擷取第(n+3)指 〇 61· —種增加一處理器之處理速度之方法,包含: 將一組指令載入一第一組迴圈緩衝器;以及 將該組指令的至少某些指令從第一組迴圈緩衝器載入 一第二組迴圈緩衝器。 62. =申請專利範圍第61項之方法,其中將一組指令載入一 第一组迴圈緩衝器包含:將一組指令從一記憶體裝置載 入一第一組迴圈緩衝器。 63. 如申明專利範圍第6 1項之方法,其中載入第一組迴圈緩 衝器的指令係-第一迴圈的一部分,而且載入第二組迴 圈緩衝器的指令係一第二迴圈的一部分。 64·如申#專利範圍第6 3項之方法,其中將第二迴圈的一第 一指令載入第一組迴圈緩衝器。 65·如申請專利範圍第63項之方法,其中將第一迴圈的一第 一指令載入第二組迴圈緩衝器。 66. —種增加處理速度之裝置,包含: 一控制單元,其包含: 一指令提取單元; 一第一組緩衝器,其平行耦合而且連接至該提取單 元,以及 第一組緩衝斋,其平行耦合而且連接至該提取單元 和第一組緩衝器;以及 一解碼器,其連接至該指令提取單元和第一與第二組 -11- 1236623
缓衝器。 67.:中請專利範園第66项之裝置,其中該控制單元改編 成· 將一組指令載入第— ^ 漱1弟組緩衝器;以及 將该組指令的至少基 某-扣令從弟一組緩衝器載入第二 組緩衝器。 68_如申請專利範圍第μ Α ^ ^ ^ /、又裝置,進一步包含連接至該指 令才疋取單元的一免恃. 口己L to裝置,其中該控制單元改編成: 將孩組指令從記憶體載入第一組緩衝器。 69·如申請專利範圍第6 8項之举、、 _ $ 裝置,其中孩記憶體裝置係一 快取記憶體。 70.如申請專利範圍第66項之裝置,進一步包含一第三組緩 ,其平行輕合而且連接至該提取單元,第—組緩衝 器,和第二組緩衝器。 几如申請專利範圍第70項之裝置,進一步包含一第四組缓 =器二其平行耦合而且連接至該提取單元,第一組缓衝 器’第二組緩衝器,和第三組緩衝器。 72. —種增加一處理器之處理速度之系統,包含: 一 SRAM記憶體裝置; 一第一組迴圈緩衝器; 一第二組迴圈緩衝器;以及 一處理器’其耦合至該記憶體裝置。 73. 如申請專利範圍第72項之系統,其中該處理器包括一控 制單元’其改編成: -12 - 本紙張尺度適用中國國家標準(CNS) A4規格(21〇x 297公釐) 申清專利範圍 知、、組指令載入第-組緩衝器;以及 將該組指令的至,丨、甘 々々一 衣二‘令從第一組迴圈緩衝器載入 罘一組迴圈緩衝器。 74.如申請專利範圍第項 ^ 衝器。 系、、死,進一步包含一第三組緩 75·::請專利範圍第μ之系統,進-步包含-第四組緩 76· 一種增力卜處理器之處理速度之方法,包含: 以一執仃次序,將—組指令載入迴圈硬體;以及 將下扣令的位址儲存於一位址暫存器中。 77.如申請專利範圍第㈣之方法,其中該組指令係一第一 組指令,該方法進一步包含: 、執行/人序將-第二組指令載人—記憶體裝置。 第 78·如申^專利範圍第%嚷之方法,其中以執行次序將-, 人^ 7載人-§己憶體裝置包含以執行次將—第二組指 々載入一快取記憶體。 Μ申請專利範圍第76项之方法,其中以一執行次序將一 、.且指令載入迴圈硬體包含以執行次序將一組指令載入一 組緩衝器。 80.如中=專利範圍第79項之方法,其中該組緩衝器包本平 仃耦a的η個緩衝器,η為一正整數;以及 口 順載!行,序將一組指令載入迴圈硬體包含將“固 順斤彳日令載入孩η個緩衝器。 81•如申請專利範圍第76項之方法,其中將讀順序指令載 _ - 13 - 尽紙依尺度適财8國家鮮⑽1) Α4規格(咖χ挪公爱·Γ 1236623 A8 B8 C8
:Γ缓衝器包含:將一迴圈的前n個指令載入該, 82.如申請專利範圍第81項之方法,其中將“固順序 個緩衝器包含將一迴圈的最後„個指令載入11個= 器0
83.如申請專利範圍第76項之方法,進—步包含從迴圈 發出該組指令。 & 84· —種增加處理速度之裝置,包含: 一控制單元,其改編成:以執行次序將一組指令載入 迴圈硬體,並且將下一指令的一位址儲存於一位址暫存 器,該控制單元包含: 一指令提取單元; 位址暫存為’其連接至該提取單元;以及 迴圈硬體,其連接至該提取單元;以及 一 ~碼器’其連接至指令提取單元和迴圈硬體。 85.如申請專利範圍第84項之裝置,進一步包含連接至該控 制單元的一記憶體裝置; 其中該組指令係一第一組指令,而且該控制單元改編 成:以執行次序將一第二組指令載入該記憶體裝置。 86·如申請專利範圍第85項之裝置,其中該迴圈硬體包括一 組緩衝器。 87·如申請專利範圍第86項之裝置,其中該組緩衝器包含平 行耦合的η個緩衝器,η為一正整數;以及 其中以一執行次序將一組指令载入迴圈硬體包含將η個 -14 - 本紙張尺度適用中國國家標準(CNS) Α4規格(210 X 297公釐) 1236423
順序指令載入n個緩衝器。 88·種增加一處理器之處理速度之系統,包含: 一 SRAM記憶體裝置; 迴圈硬體; 一位址暫存器;以及 一處理器,其_合至該記憶體裝置,其中該處理器包 括一控制單元,該控制單元改編成: 、執行/人序將一組指令載入迴圈硬體;以及 私下一指令的位址儲存於位址暫存器中。 I1 ir 89.如申請專利範圍第88項之系統,其中D該迴圈硬體包括至 少一組迴圈緩衝器。 9〇·如申請專利範圍第⑺項之系統,其中該組緩衝器包含平 行李馬合的η個緩衝器,^為一正整數;以及 其中戎控制單元改編成:將η個順序指令載入η個緩衝 器。 91· 一種增加處理速度之裝置,包含: 一控制單元,其包含: 一迴圈硬體,包括至少一組緩衝器和至少一單一指令 暫存器;以及 一解碼器,其耦合至該迴圈硬體。 92·如申請專利範圍第9 1項之裝置,其中該控制單元改編成 將該組緩衝器中的至少一緩衝器之内容載入單一指令暫 存器。 93.如申請專利範圍第9 1項之裝置,進一步包含連接至迴圈 15 本紙張尺度適用中國國家標準(CNS) Α4規格(210 X 297公董) kp 3 2 Λ-r· 8 8 8 8 A B c D 申請專利範圍 硬體的一第一多工器,其中該控制單元改編成:經由第 一多工器的輸出,載入單一指令迴圈暫存器。 94. 如申請專利範圍第9 1項之裝置,進一步包含連接至迴圈 硬體的一第一多工器和迴圈硬體内所包含的一第二多工 器,其中第二多工器的輸入來自該組緩衝器。 95. 如申請專利範圍第9 4項之裝置,進一步包含迴圈硬體内 的一第三多工器,其中第三多工器的輸入來自第一與第 二多工器的輸出,而且第三多工器的輸出連接至單一指 令暫存器。 (μ μ (r -16 本紙張尺度適用中國國家標準(CNS) A4規格(210X 297公釐)
TW090127150A 2000-11-02 2001-11-01 Hardware loops TWI236623B (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US09/705,088 US6898693B1 (en) 2000-11-02 2000-11-02 Hardware loops

Publications (1)

Publication Number Publication Date
TWI236623B true TWI236623B (en) 2005-07-21

Family

ID=24831986

Family Applications (1)

Application Number Title Priority Date Filing Date
TW090127150A TWI236623B (en) 2000-11-02 2001-11-01 Hardware loops

Country Status (6)

Country Link
US (1) US6898693B1 (zh)
JP (1) JP3787329B2 (zh)
KR (1) KR100580851B1 (zh)
CN (1) CN1275142C (zh)
TW (1) TWI236623B (zh)
WO (1) WO2002037271A2 (zh)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2002046917A1 (en) * 2000-12-07 2002-06-13 Koninklijke Philips Electronics N.V. Digital signal processing apparatus
US20050102659A1 (en) * 2003-11-06 2005-05-12 Singh Ravi P. Methods and apparatus for setting up hardware loops in a deeply pipelined processor
EP1826667A4 (en) * 2004-11-25 2008-07-23 Matsushita Electric Ind Co Ltd INSTRUCTION PROVIDING DEVICE
US7669042B2 (en) * 2005-02-17 2010-02-23 Samsung Electronics Co., Ltd. Pipeline controller for context-based operation reconfigurable instruction set processor
US7832257B2 (en) * 2007-10-05 2010-11-16 Halliburton Energy Services Inc. Determining fluid rheological properties
US8266414B2 (en) * 2008-08-19 2012-09-11 Freescale Semiconductor, Inc. Method for executing an instruction loop and a device having instruction loop execution capabilities
KR101538425B1 (ko) * 2011-09-23 2015-07-22 한국전자통신연구원 프로세서 및 프로세서에서의 명령 처리방법
US9274794B2 (en) 2011-09-23 2016-03-01 Electronics And Telecommunications Research Institute Processor and instruction processing method in processor
US9557999B2 (en) 2012-06-15 2017-01-31 Apple Inc. Loop buffer learning
US9753733B2 (en) 2012-06-15 2017-09-05 Apple Inc. Methods, apparatus, and processors for packing multiple iterations of loop in a loop buffer
US9063974B2 (en) * 2012-10-02 2015-06-23 Oracle International Corporation Hardware for table scan acceleration
US9471322B2 (en) 2014-02-12 2016-10-18 Apple Inc. Early loop buffer mode entry upon number of mispredictions of exit condition exceeding threshold

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3466613A (en) 1967-01-13 1969-09-09 Ibm Instruction buffering system
US3593306A (en) 1969-07-25 1971-07-13 Bell Telephone Labor Inc Apparatus for reducing memory fetches in program loops
JP2690921B2 (ja) 1987-12-25 1997-12-17 株式会社日立製作所 情報処理装置
JPH07160585A (ja) 1993-12-13 1995-06-23 Hitachi Ltd 低電力データ処理装置
US5524223A (en) 1994-01-31 1996-06-04 Motorola, Inc. Instruction accelerator for processing loop instructions with address generator using multiple stored increment values
JPH0991136A (ja) 1995-09-25 1997-04-04 Toshiba Corp 信号処理装置

Also Published As

Publication number Publication date
JP3787329B2 (ja) 2006-06-21
KR20030048094A (ko) 2003-06-18
CN1503941A (zh) 2004-06-09
CN1275142C (zh) 2006-09-13
US6898693B1 (en) 2005-05-24
KR100580851B1 (ko) 2006-05-17
JP2004513427A (ja) 2004-04-30
WO2002037271A2 (en) 2002-05-10
WO2002037271A3 (en) 2003-05-22

Similar Documents

Publication Publication Date Title
US8572359B2 (en) Runtime extraction of data parallelism
US9696995B2 (en) Parallel execution unit that extracts data parallelism at runtime
US5404473A (en) Apparatus and method for handling string operations in a pipelined processor
US7594102B2 (en) Method and apparatus for vector execution on a scalar machine
TWI236623B (en) Hardware loops
US6691220B1 (en) Multiprocessor speculation mechanism via a barrier speculation flag
TW201042540A (en) Microprocessor and instruction processing method
CN108112269A (zh) 多重无效
US7634639B2 (en) Avoiding live-lock in a processor that supports speculative execution
US6728873B1 (en) System and method for providing multiprocessor speculation within a speculative branch path
TW586071B (en) Method, apparatus, and system for implementing hardware loops
Naithani et al. Vector runahead
JPH04153734A (ja) 並列処理装置
TWI227854B (en) Method for operating a loop, data processing apparatus and system
US9632791B2 (en) Cache for patterns of instructions with multiple forward control transfers
Thielmann et al. Precore-A token-based speculation architecture for high-level language to hardware compilation
TWI238352B (en) Register move operations
Sartori et al. Go functional model for a RISC-V asynchronous organisation—ARV
Parthasarathy Performance measures of superscalar processor
WO2011080054A1 (en) Extraction of data parallelism
Weems et al. Real-time computing: implications for general microprocessors

Legal Events

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