TWI221579B - Renaming device and processor - Google Patents

Renaming device and processor Download PDF

Info

Publication number
TWI221579B
TWI221579B TW090121830A TW90121830A TWI221579B TW I221579 B TWI221579 B TW I221579B TW 090121830 A TW090121830 A TW 090121830A TW 90121830 A TW90121830 A TW 90121830A TW I221579 B TWI221579 B TW I221579B
Authority
TW
Taiwan
Prior art keywords
register
temporary
group
instruction
physical
Prior art date
Application number
TW090121830A
Other languages
English (en)
Inventor
Atsushi Kunimatsu
Yukio Watanabe
Original Assignee
Toshiba Corp
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 Toshiba Corp filed Critical Toshiba Corp
Application granted granted Critical
Publication of TWI221579B publication Critical patent/TWI221579B/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/30098Register arrangements
    • G06F9/3012Organisation of register space, e.g. banked or distributed register file
    • 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/30076Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3838Dependency mechanisms, e.g. register scoreboarding
    • G06F9/384Register renaming

Landscapes

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

Description

8158pif2.doc 玖、發明說明: 發明所屬領域 本發明是有關於處理器,具有高頻率需求之微處理器 與數位處理器(DSP: Digital Signal Processor),及執行暫存器 更名之裝置。且特別是有關於一種使用執行軟體管道操作 (Software Pipelining)技術之裝置。 習知技術 爲追求高效能需求的處理器,如提高頻率卻會使管道 階段(Pipeline Stage)數增加,管線泡(Pipeline Bubble)((管線 拖延)(Pipeline Stall))也增多。所以坎入泡(Bubble)的手段, 一般採用軟體管線操作(Software-Pipelining)技術。 第18圖是繪示一處理器之管線階段圖,第19圖是繪 示第18圖一處理器之執行程式的實例。 第18圖的處理器,用於執行第19圖執行程式實例’ 使資料爲不分流(bypass)方式,僅於W階段寫入暫存器之 後,才可由D階段讀取資料。 一種處理器,可執行具1個發行事件(1 issue)之聯鎖 功能的管線,它是把如第19圖繪示之程式,以第20圖之 程序來實行。其中指令1之Wa(第5循環),用於將資料寫 入暫存器rl。指令2之Wb(第6循環),用於將資料寫入暫 存器r2。指令3之Dc,爲將資料寫入暫存器Η及暫存器 r2,而將3循環聯鎖。正因爲資料互相關連所以導致如第 2〇圖[*]所示之管線泡發生。如第20圖之實例,表示有6 個管線泡。 8158pif2.doc 同理,可藉由指令4之De去讀取指令3之Wd寫入暫 存器r3的內容。指令5係分支指令,與資料無互相關連’ 所以直接執行下一循環。 而且,第20圖中因簡化之故,分支指令無損耗(無分 支指令延遲時段),所以能在1循環內處理載入儲存指令位 址增量。 如第20圖係係執行各迴路重疊,以解決管線泡的方 法。於第21的例子中,3迴路中僅發生一個管線泡。於第 20圖的例子中,1迴路發生6個管線泡,所以可使泡數減 低爲1/18。 欲解決之問題點 爲提昇指令通過量的性能,最基本手段係程式設計師 設計軟體管線操作技術去實現。此程式爲第22圖表。 如第22圖例,其中的迴路1,使用暫存器rl、r2、r7、 al、a2、a7 ;其中的迴路2,使用暫存器r3、r4、r8、a3、 a4、a8。其中迴路3使用暫存器r5、r6、r9、a5、a6、a9。 如第22圖之情況,各迴路使用不同暫存器,所以程式 指令數變成3倍,並且程式設計師必須在重疊的各迴路中 以避免暫存器互相衝突的方式指定暫存器。 爲解決此煩瑣的習知技術,有以下二方案。其一,係 處理器具有out-of-〇rder發行功能及自動暫存器更名功 能。此形態之處理器執行如第19圖繪示之程式,可如第21 圖執行理想動作。但是爲實施〇ut-0f-〇rder發行功能,導致 使硬體增大的問題。 8158pif2.doc 其一方案係’裝設於Intel公司之Itanium及Cydrome - 二款電腦內部,有暫存器旋轉功能。如第22圖實例中,執 行暫存器•旋轉,其結果如第23圖例。 branch_regrot指令,係用於執行迴路的跳越指令時, 同時也執行暫存器旋轉。旋轉的意義,係將3個暫存器分 別替換的情況。此情況下之程式如第24圖,並且管線動作 如第25圖所示。 第1迴路完成時的暫存器對應關係圖,如第26圖所 示。第2迴路完成時的對應關係圖,如第27圖暫存器所示。 習知之自動更名功能,有硬體複雜之問題。而且習知 之暫存器旋轉功能缺乏彈性,並不適用於單純旋轉以外 者,此爲其缺點。 所以本發明鑑於該處,提供一種處理器,其硬體不複雜 性’且可實現富彈性之暫存器旋轉功能。 而且,本發明之另一目的係提供一種更名裝置,由簡易 回路所組成,且可實現暫存器更名功能。 問穎點之丰段 爲解決此上述之問題,本發明提供一種處理器,具有暫 存器更名功能及執行軟體管線操作技術。處理器,包括·· 控制暫存器、控制暫存器設定裝置。控制暫存器係,顯示物 理暫存器號碼與邏輯暫存器號碼之對應關係。當於所發行 指令組中,包含有對前述控制暫存器的値進行設定的指令 時,控制暫存器設定裝置是依照該指令的內容執行對該控 制暫存器之設定。 1221579 8158pif2.doc 本發明係,提供一種根據控制暫存器內所設定的値’可 任意變更該物理暫存器號碼與邏輯暫存器號碼之對應關 係。所以,可實施不致使硬體複雜化且具弾性之暫存器旋 轉功能。 而且,由複數個理暫存器爲單位’儲存物理暫存器暫存 器號碼之對應關係。所以可執行簡易且迅速之暫存器更名 處理。 而且,控制暫存器內設置有第1〜第3暫存器部,由各 暫存器部執行暫存器更名處理,可提供更高速的暫存器更 名處理。 而且,本發明包括:控制暫存器、重新設定裝置、控制 暫存器設定裝置。其中,控制暫存器係,於由複數個物理 暫存器號碼或邏輯暫存器爲單位之各暫存器內,儲存物理 暫存器號碼與邏輯暫存器號碼之對應關係。重新設定裝置 係,當所發行指令中,含有變更以該暫存組爲單位的物理 暫存器號碼及邏輯暫存器號碼的對應之變更指令時,對應 該指令所指示的暫存組之該控制暫存器的內容重新設定。 控制暫存器設定裝置係,根據該對應之變更指令的指示中 之執行對應變更量之暫存組的種類及對應標記的變更量相 關資料爲基礎,將已重新設定之該控制暫存器設定成新値。 爲讓本發明之上述和其他目的、特徵、和優點能更明顯 易懂,下文特舉一較佳實施例,並配合所附圖式,作詳細 說明如下: 圖式之簡單說明 8 8 15 8pi f2 . doc 第1圖繪示本發明之處理器之槪念架構方塊圖; 第2圖繪示分5階段執行管線處理之一例; 第3A〜3D圖繪示指令組之一例; 第4圖繪示執行RENAME指令時更名控制單元4處理 動作之流程圖; 第5圖繪示說明RENAME指令動作順序圖; 第6圖繪示ROTATE指令之動作實例圖; 第7A、7B圖繪示ROTATE指令之動作實例圖; 第8A、8B圖繪示ROTATE指令之動作實例圖; 第9A、9B圖繪示ROTATE指令之動作實例圖; 第10A、10B圖繪示ROTATE指令之動作實例圖; 第11A、11B圖繪示ROTATE指令之動作實例圖; 第12A〜12C圖繪示依據暫存器•更名指令,用於指定 From=2、To =a、Shift=3時之旋轉動作圖, 第13圖繪示被存取之物理位址圖; 第14圖繪示暫存束(bundle)數爲[8]時’資料通過之一 例; 第15圖繪示本發明相關更名裝置之實施例的方塊圖; 第16A〜16D圖繪示控制暫存器數値圖; 第17圖繪示用於驅使處理器執丫了管線動作時,更名裝 置的動作狀態方塊圖; 第18圖繪示一處理器之管線階段圖; 第19圖繪示第18圖之一處理器之執行程式之一例; 第20圖繪示第19圖的管線動作圖; 1221579 8158pif2.doc 第21圖繪示執行重疊之一例; 第22圖繪示執行軟體管線操作技術的程式之一例; 第23圖繪示暫存器旋轉之一例; 第24圖繪示第23圖對應之程式; 第25圖繪示第24圖管線動作; 第26圖繪示第1迴路完成時之暫存器對應關係圖; 第27圖繪示是第2迴路完成時之暫存器對應關係圖。 圖式標號之簡單說明 I :指令記憶體 2:截取單元 3:解碼單元 4:更名控制單元 5:更名控制暫存器 6:暫存器檔案 7:演算處理單元 II :第1判定部 12 :第1選擇部 13 :第1暫存束號碼演算部 14 :第2判定部 15 :第2選擇部 16 : AND回路 Π :第2暫存束號碼演算部 18 :控制暫存器 19 :第3選擇部 8158pif2.doc 20 :第4選擇部 21 :暫存器檔案 _佳實施例 以下,將本發明之處理器,參照圖示,作一具體說明。 镇1實施例 第1圖繪示,係本發明相關處理器之一實施例的槪念 構成方塊圖。圖1之處理器,係包括:指令記憶體1、截取 單元2、解碼單元3、更名控制單元(RCU)4、更名控制暫存 器(RCR)5、暫存器檔案6、演算處理單元(ALUs)7。其中, 指令記憶體1,用於記憶指令組。截取單元2,用於由記憶 指令組1截取指令。解碼單元3,用於將截取記憶指令解 碼。更名控制單元(RCU : Rename Control Unit)4,用於執 行下述更名指令。更名控制暫存器(RCR)5。暫存器檔案6, 用於記憶該物理暫存器號碼與邏輯暫存器號碼之對應關 係。以及演算處理單元(ALUs)7,用於執行已解碼的指令。 本實施例,係將256個暫存器,可區分爲複數個暫存束 (bundle)(暫存組,bank),每一組包含16個暫存器;其特徵 係藉由暫存束爲單位,記憶物理暫存器號碼與邏輯暫存器 號碼的對應關係。 爲了執行對應關係所以採取更名控制暫存器5,。更名 控制暫存器係由來源暫存器(來源RCR,第1暫存器部)、 目的地暫存器(目的地RCR,第2暫存器部)、效應暫存器(效 應RCR,第3暫存器部)等三種所組成。 本實施例的處理器,係如圖2所示,分爲5階段處理 8158pif2.doc 管線操作。 暫存器•更名指令,係設定更名控制暫存器(RCR)5的 專屬指令,由(1)〜(4)之4個指令所組成。(l)STORE-REN ’ 係用於設定泛用暫存器srcl的內容至目的地RCR之指令。 (2)L0AD_REN,係用於設定目的地RCR至泛用暫存器six 1 內容之指令。(3)R〇TATE,如下所述,係將來源RCR之從 第from位元至第to位元,只有部份位元數目向左旋轉。 (4)RENAME,係用於拷貝目的地RCR與來源RCR之內容 至效應RCR之指令。 圖1之更名控制單元4,係如圖3D所示暫存器更名指 令發行時,便進行更名控制暫存器5之設定。第4圖係, 執行RENAME指令時,更名控制單元4處理動作之流程 圖。首先,(如步驟1)更名控制單元4係,將來源RCR內 容寫入目的地RCR。 其次,(如步驟2)依據ROTATE指令,執行更新來源 RCR。其次,(如步驟3)將執行更新結果寫入目的地RCR。 其次,(如步驟4),將目的地RCR的內容,寫入來源 RCR及效應RCR。其次,(如步驟5)依據效應RCR的內容, 將物理暫存器號碼與邏輯暫存器號碼的對應關係,寫入暫 存器檔案6之中。 以此方式,依步驟5,參照效應RCR的方式,測出物 理暫存器號碼與邏輯暫存器號碼對應關係。所以在參照效 應RCR之期間,來源RCR及目的地RCR,可應用其他的 作業,例如下述執行更名處理的作業。 、 8158pif2.doc 第5圖是繪示說明RENAME指令動作之執行順序。更 名控制暫存器5所具有之16個暫存束中之每個暫存束係, 將邏輯暫存器號碼領域(管理領域)與物理暫存器號碼相對 應。具體而言,將暫存束〇所屬之16個邏輯暫存器號碼 E0〜EF與物理暫存器號碼00〜OF的相對應,將暫存束1所 屬之16個邏輯暫存器號碼F0〜FF與物理暫存器號碼10〜1F 的相對應。重覆以下的順序進行對應,將暫存束f所屬之 16個邏輯暫存器號碼爲D0〜DF與物理暫存器號碼爲F0〜FF 相對應。 暫存器檔案6,擁有16X16=256位元容量。更名控制 暫存器5的16個暫存束係,個別記憶邏輯暫存器號碼與邏 輯暫存器號碼的對應關係。 第6圖係繪示ROTATE指令動作之一例,從第4暫存 束至第c暫存束,以每2個暫存束爲單位向左旋轉。 第7A圖繪示將全部暫存束以每1個暫存束爲單位向左 旋轉。第7B圖是繪示將全部暫存束以每2個暫存束爲單位 向左旋轉。 第8A圖是繪示將全部暫存束以每4個暫存束爲單位向 左旋轉。第8B圖是繪示將全部暫存束以每8個暫存爲單位 束向左旋轉。 第9A圖是繪示上位側8暫存束,以1個暫存束爲單 位向左旋轉。 第9B圖是繪示上位側8暫存束以每2個暫存束爲單 位向左旋轉。 8158pif2.doc 第10A圖是繪示上位側8暫存束以每4個暫存束爲單 位,向右旋轉。第10B圖是繪示從第8暫存束至第b暫存 束以每1個暫存束爲單位向右旋轉。 第11A圖是繪示從第8暫存束至第b暫存束以每1個 暫存束爲單位,向左旋轉。第11B圖是繪示從第a暫存束 至第b暫存束以每1個暫存束爲單位,向左旋轉。 所以本實施例,因使用指定物理暫存器號碼與邏輯暫 存器號碼對應關係的專屬指令,故藉由暫存器•更名指令, 針對控制暫存器內的任意暫存束,在每個暫存束中可指定 邏輯暫存器號碼與物理暫存器號碼的對應關係之故,不致 增加指令數且可抑制管線泡的發生。 而且暫存器·更名指令的具體內容,係由程式設計師任 意指定,可因應需求執行更名處理,提供具彈性之更名處 理。 並且,本實施例中之控制暫存器係包括:來源暫存器、 目的地暫存器、效應暫存器。將旋轉的結果寫入來源暫存 器及效應暫存器兩方,於參照效應RCR時,進行物理暫存 器號碼與邏輯暫存器號碼的對應時,在此期間’來源RCR 與目的地RCR,可應用於其他作業,所以可提高處理效率。 上述實施例,係舉例說明更名控制暫存器5內’具有 各邏輯暫存束之對應領域的狀況。反之’於更名控制暫存 器5內,具有對應於物理暫存器的各暫存束之對應領域, 由更名控制單元4去設定邏輯暫存束號碼亦可° 第2實施例 8158pif2.doc 第12A〜12C圖,係上述依據暫存器•更名指令,於指 定 From=2、To = a、Shift=3時之旋轉動作圖。第12A圖 係暫存束之起始値。如第12A圖執行旋轉暫存束時,從暫 存束號碼[2]至[a]的暫存束內容以每3個暫存束爲單位向左 移動,移動時的超越部份,塡入旋轉暫存束的右側。其結 果如第12B圖所示。將此形態執行同樣旋轉時,其結果如 第12C圖所示。將此形態執行同樣旋轉時,其結果將回到 如第12A圖所示。 例如程式於存取邏輯號碼3c (3爲暫存束號碼、c爲暫 存器號碼)的暫存器時,當實際存取物理位址的情況下,如 圖13所示之變化,即使程式指定存取同一邏輯位址,在實 施執行軟體管線操作時,卻使用不同的物理位址。 上述暫存器•更名指令,可任意指定旋轉的種類與範 圍。所以由更名處理形成硬體架構時,其中必須將旋轉之 移動前,針對所有可能之暫存束,設置接收資料之通道。 如第14圖暫存束數爲[8]時,資料通過的例子。在此資 料通道,係爲跨越暫存束間之配線,此配線連接到多工器, 最後依多工器之需要的暫存束的資料,將選定之暫存束更 增設如第14圖暫存束跨越暫存束間之配線時,隨配線 面積增大、配線長度增加時,可能導致降低速度的現象。 且特別是增加暫存束數的情況,因配線面積會以暫存數之2 次方比例成長,形成更嚴重問題。 以下,係說明第2實施例之特徵,係藉由上述暫存器· 8158pif2.doc 更名指令,於執行之暫存器號碼旋轉時,所形成的簡易硬 體架構。 第15圖係本發明相關更名裝置的實施例之方塊圖。第 15圖之更名裝置,係設置於各個暫存束中,例如存在有16 個暫存束時,第15圖中,也設置16個更名裝置。此更名 裝置例如內建於處理器。 第15圖更名裝置,具其特徵在於包括有:第1判定部(第 1判定裝置)11,用於判定預先指定之原有暫存束號碼,其 是否爲介於暫存器•更名指令中指示的上下限暫存束號碼 之間。第1選擇部(第1選擇裝置)12,用於依第1判定部 11之判定結果,而設定暫存束的旋轉量。第1暫存束號碼 演算部(第1暫存束號碼演算裝置)13,用於對應原有暫存束 號碼之演算出新暫存束號碼。第2判定部(第2判定裝 置)14,用於演算出的新暫存束號碼,並更新暫存器•更名 指令之指示的下限暫存束號碼。第2選擇部(第2選擇裝 置)15,用於依第2判定部14所判定之結果,而選擇暫存 束號碼的補正値。AND回路16,用於執行第2選擇部15 的選擇控制。第2暫存束號碼演算部(第2暫存束號碼演算 裝置)17,用於將暫存束號碼演算部的演算結果,與第2選 擇部15所選擇的暫存束號碼補正値之相加,並將結果加以 演算。第3選擇部(第3選擇裝置)19,用於選擇是否取用第 1暫存束號碼演算部13締的演算結果,或儲存於控制暫存 器18的暫存束號碼。第4選擇部(重新設定裝置)20,用於 選擇儲存於控制暫存器18之暫存束號碼的最終之暫疗束號 8158pif2.doc 碼。 當第1選擇部12指定的暫存束號碼,其介於依暫存器· 更名指令指示的上下限暫存束號碼之間時,並選擇暫存器· 更名指令的旋轉量作爲輸出。若輸入的暫存束號碼,非介 於依暫存器·更名指令指示的上下限暫存束號碼之間時,則 將〇作爲輸出。 第1暫存束號碼演算部13,由控制暫存器18所儲存的 暫存束號碼,減去與第1選擇部(第1選擇裝置)12的選擇 結果,並將其執行演算。 AND回路16,用於輸入的暫存束號碼,係介於所指示 之上下限暫存束號碼之間,且,其經由第1暫存束號碼演 算部擇部13演算結果的暫存束號碼,比暫存器•更名指令 指示的下限暫存束號碼更小時,則其輸出爲Π],除此之外 其輸出爲[〇]。 第2選擇部15,於AND回路16輸出爲[0]時,則以[0] 作爲輸出。若AND回路16輸出爲[1]時,將暫存器·更名指 令的上限暫存束號碼,減去下限暫存束號碼後,再加 [l](To-Fn>m+l)之値作爲輸出。 第3選擇部19,用於執行暫存器•更名指令時,選擇由 第2暫存束號碼演算部的演算結果之暫存束號碼,而執行 此外的指令時,則選擇由控制暫存器18儲存的暫存束號碼。 第4選擇部20,用於發行暫存器•更名指令時,暫時將 控制暫存器18起始化,除此之外的情況時,選擇第3選擇 部19所選擇的暫存束號碼。起始化之際,將輸入的暫存束 8158pif2.doc 號碼,儲存於控制暫存器18。 在此’與控制暫存器18之重新設定裝置相對應,而第 2暫存束號碼演算部17與第3選擇部19亦有對應的控制 暫存器設定裝置。 以下,暫存器·更名指令的例子如第16A〜16D圖所示, 此下限暫存束號碼From爲3、上限暫存束號碼To爲b、旋 轉量Shift爲3的例子之情況係,如第15圖更名裝置之處 理動作說明。第16A〜16D圖繪示控制暫存器中儲存物理位 址的暫存束號碼。 如第15圖更名裝置之處理動作有4種:(1)旋轉資料重 新設定時。(2)不執行旋轉指令時。(3)執行旋轉指令時,其 指定暫存束號碼介於上下限暫存束號碼之間。(4)執行旋轉 指令時,其指定暫存束號碼不介於上下限暫存束號碼之間。 首先,以旋轉資料設定時之處理動作說明。用於發行旋 轉指令時及執行旋轉動作之前,第4選擇部20將控制暫 存器18的內容起始化。具體而言,執行旋轉範圍內的暫存 束,係與物理暫存器號碼與邏輯暫存器號碼一致,屬於此 外之範圍暫存束之情況下,不可變更控制暫存器18之値。 此結果如第16B圖繪示,其中的物理位址暫存束號碼與邏 輯位址暫存器號碼一致。 其次,說明不執行旋轉指令時之處理動作。在此情況 下,第3選擇部19係選擇於控制暫存器18中所儲存之暫 存束號碼,所以控制暫存器18之資料不變更。 其次,說明執行旋轉指令時,其中原有暫存束號碼, 8158pif2.doc 不介於上下限暫存束號碼之間時(圖16A〜16D暫存束號碼 0〜2及c〜f)之處理動作。在此情況下,第1選擇部12輸 出爲[〇],而第1暫存束號碼演算部13,則將控制暫存器 18所儲存之暫存束號碼作輸出。而,第1判定部11輸出爲 [〇],所以AND回路16輸出爲0,第4選擇部20輸出爲[0]。 其次,執行旋轉指令時,其中原有暫存束號碼,係介 於上下限暫存束號碼之間之處理動作說明。此情況下,第i 判定部11之輸出爲[1],第1選擇部12之輸出爲[3],第1 暫存束號碼演算部13,則將控制暫存器18所儲存之暫存束 號碼減[3]作爲輸出。所以,第1暫存束號碼演算部13之輸 出係如圖16C繪示。 第2判定部14,經由第1暫存束號碼演算部13所演算 出的暫存束號碼,若爲[0]、[1]、[2]時,則輸出爲[〇·],除 此之外以輸出爲[1]。 第2判定部14,若輸出爲[0]時,第2選擇部15從上限 暫存束號碼[b]減去下限暫存束號碼[3]之後,再加 Π](11-3 + 1=9)之値作爲輸出。第2判定部14,若輸出爲[1] 時,則第2選擇部15輸出[0]。 第2暫存束號碼演算部17,當於第1暫存束號碼所演 算部13演算的暫存束號碼爲[〇]、[1]、[2]時,以此値加上 [9],分別以[9]、[a]、[b]作爲輸出。若第1暫存束號碼演 算部13演算的暫存束號碼爲[3]〜[8]時,則依此値直接作爲 輸出。所以,控制暫存器18之內容如圖16D所示。 因此,於本實施例執行暫存器•更名指令時,在旋轉範 1221579 8l58pif2.doc 圍內之暫存束起始化後,根據暫存器•更名指令的旋轉量、 及下限暫存束號碼與上限暫存束號碼,並利用硬體執行暫 存束之旋轉,故即使不執行暫存束間的資料送收等,也可 以設定新的暫存束號碼。所以,不需跨越暫存束的配線, 配線量少則可提高處理速度。 將第圖15的更名裝置,裝設到處理器內部之情況時’ 希望更名裝置與管線動作配合。第17圖是用於驅使處理器 執行管線動作時之更名裝置動作方塊圖。此例子係以4個 循環,將暫存束的內容旋轉。 第Π圖之更名裝置,如果,移除其中於管線各階段同 步之暫存器檔案21,正如圖所示,可形成與圖同樣之簡化 回路構成,且可提供高速動作。 如果,如第17圖更名裝置,其中,藉由裝設於裝置內 部的暫存器檔案21使系統時脈同步,故即使階段數多, 但仍可保障時序、動作穩定,亦可輕易應付高速時脈。 發明效果 如以上本發明詳細說明之描述,本發明,係設置一種 控制暫存器,用於表示記憶該物理暫存器號碼與邏輯暫存 器號碼之對應關係,所以硬體複雜性少且可抑制管線泡發 生。特別是習知的具out-of-order發行功能之大規模處理器 等,可大幅度簡化硬體的構成。 而且,因讓程式設計師可任意設定變更物理暫存器號碼 與邏輯暫存器號碼之對應關係,比習知具暫存器旋轉功能 之處理器,更具彈性的暫存器旋轉。 20 1221579 8158pif2.doc 依據本發明,在發行對應變更指令時,暫時將控制暫存 器內容重新設定之後,依對應變更指令指示之內容,在控 制暫存器上設定新値,所以各連接之間,即使不做資料送 收,也可執行對應之變更,故能大幅度簡化硬體之構成。 故可使配線量少並減短配線量,可配合與處理器的管線處 理且更容易對付高速時脈之裝置。

Claims (1)

1221579 8158pif2.doc 拾、申請專利範圍: 1. 一種更名裝置,應用於設定記憶物理暫存器號碼與邏 輯暫存器號碼之對應關係,該更名裝置包括: 一控制暫存器,記憶物理暫存器號碼與邏輯暫存器號碼 之對應關係;以及 一控制暫存器設定裝置,當於所發行指令組中,包含設 定有記億物理暫存器號碼與邏輯暫存器號碼之對應關係的 設定指令時’依照該指令的內容執行該控制暫存器之設定。 2. 如申請專利範圍第1項所述之更名裝置,其中, 該控制暫存器係,區分爲複數個暫存組,各暫存組包含 有複數個物理暫存器或複數個邏輯暫存器;以及 該控制暫存器設定裝置係,以該暫存組作爲單位,將物 理暫存器號碼及邏輯暫存器號碼相對應。 3. 如申請專利範圍第2項所述之更名裝置,其中, 該控制暫存器設定裝置係,根據設定該些對應關係之指 令,設定該些暫存組之至少一部份之記憶物理暫存器號碼 與邏輯暫存器號碼之對應關係。 4. 如申請專利範圍第2項所述之更名裝置,其中,該控 制暫存器設定裝置係,根據設定該些對應關係之指令,將 該些暫存組分成2個以上之組別,且於各之組別內分別設 定物理暫存器號碼與邏輯暫存器號碼之對應關係。 5. 如申請專利範圍第2項所述之更名裝置,其中,設定 該些對應關係之指令係,於該控制暫存器中之任意暫存組 內,可各別指定物理暫存器號碼與邏輯暫存器號碼之對應 22 1221579 8158pif2.doc 關係。 6. 如申請專利範圍第1項所述之更名裝置,其中, 該控制暫存器’具有第1暫存器部、第2暫存器部、以 及第3暫存器部;以及 該控制暫存器設定裝置係,依據該第1暫存器部的內 容,執行物理暫存器號碼與邏輯暫存器號碼的對應,並將 此結果寫入該第2暫存器部,之後再將該第2暫存器部的 內容,寫入該第1暫存器部及該第3暫存器部。 7. 如申請專利範圍第6項所述之更名裝置,其中,設定 該對應關係之指令包括: 根據該第1暫存器部的內容,執行物理暫存器號碼及 邏輯暫存器號碼的對應,並將此結果寫入該述第2暫存器 部之指令;以及 將該第2暫存器部的內容寫入該第1暫存器部及該第3 暫存器部之指令。 8. 如申請專利範圍第7項所述之更名裝置,包括: 一記億裝置,根據該第3暫存器部的內容,記憶物理暫 存器號碼與邏輯暫存器號碼的對應關係。 9. 如申請專利範圍第8項所述之更名裝置,其中,該控 制暫存器設定裝置係,於以複數個邏輯暫存器爲單位之各 暫存組內物理暫存器號碼與邏輯暫存器號碼的對應關係’ 記憶到該記憶裝置。 10. 如申請專利範圍第8項所述之更名裝置,該控制暫 存器設定裝置,將由複數個邏輯暫存器爲單位之暫存組所 23 1221579 8158pif2.doc 組成之各暫存組之該物理暫存器號碼與邏輯暫存器號碼的 對應關係,記憶到該記憶裝置。 11. 一種處理器,具有暫存器更名功能及可執行軟體管 線操作,其中,該處理器係,包括: 一控制暫存器,記憶物理暫存器號碼與邏輯暫存器號碼 之對應關係;以及 一控制暫存器設定裝置,當於所發行指令組中,包含設 定有記憶物理暫存器號碼與邏輯暫存器號碼之對應關係的 設定指令時,依照該指令的內容執行該控制暫存器之設定, 且根據前述設定的物理暫存器號碼去執行存取記憶體。 12. —種更名裝置,應用於設定物理暫存器號碼與邏輯 暫存器號碼之對應關係,包括: 一控制暫存器,於由複數個物理暫存器號碼或邏輯暫存 器爲單位之各暫存組內,儲存物理暫存器號碼與邏輯暫存 器號碼之對應關係; 一重新設定裝置,當所發行指令中,含有變更以該暫存 組爲單位的物理暫存器號碼及邏輯暫存器號碼的對應之變 更指令時’對應該指令所指示的暫存組之該控制暫存器的 內容重新設定;以及 一控制暫存器設定裝置,根據該對應之變更指令所指示 的執行對應變更的暫存組種類及對應變更量的相關資料, 將已重新設定之該控制暫存器設定成新値。 13. 如申請專利範圍第12項所述之更名裝置,其中, 該對應之變更指令係,用於指示:顯示對應變更量的該 24 1221579 8158pif2.doc 暫存組之旋轉量,及執行旋轉之下限暫存組與上限的暫存 組。 14.如申請專利範圍第13項所述之更名裝置,包括: 一第1判定裝置,用於判定預先指定之原有暫存組號 碼’是否介於該對應變更指令指示之上下限暫存組號碼之 · 間; . 一弟1選擇裝置’根據該第1判定裝置之判定結果, 設定暫存組之旋轉量; 一第1暫存組號碼演算裝置,演算出對應該原有暫存 * 組號碼的之新暫存組號碼; 一第2判定裝置,用於判別演算出之該新暫存組號碼, 是否比該對應變更指令所指示的下限暫存組號碼更新; 一第2選擇裝置,根據該第2判定部所判定之結果,選 擇暫存組號碼補正値; 一第2暫存組號碼演算裝置,將該第1暫存組號碼演 算裝置所演算的暫存組號碼,與該第2選擇裝置所選擇的 _ 補正値相加,以演算最終的暫存組號碼;以及 鲁 一第3選擇裝置,由該第1暫存組號碼演算裝置所演 算之暫存組號碼,及儲存於該控制暫存器之暫存組號碼二 者擇一, 其中該重新設定裝置係,根據該對應之變更指令的指 示’於執行暫存組號碼旋轉之前,按照原有暫存組號碼, 將該控制暫存器的內容起始化,除此以外的情況,將該第3 選擇裝置所選擇的暫存組號碼儲存到該控制暫存器內。 25 ^21579 8l5Qpif2 . doc 15.如申請專利範圍第14項所述之更名裝置,其中’ 該第1選擇裝置,當判定該原有暫存組號碼是否介於該 對應變更指令所指示之上下限暫存組號碼之間時,將該對 應、變更指令所指示之旋轉量輸出,除此之外輸出爲〇 ; 該第2選擇裝置,當由該第1判定裝置判別是否介於上 T限暫存組之間,且由該第2判定裝置判定是否比下限暫 #組號碼更新時,依據對應變更指令所指示之上下限暫存 組號碼選擇補正値; 該第3選擇裝置,於發行該對應變更指令之後,一直到 胃斩暫存組號碼儲存到該控制暫存器,選擇由該第2暫存 組號碼演算裝置所演算的暫存組號碼,除此之外,選擇儲 存於該控制暫存器之暫存組號碼。 16·—種處理器,具有暫存器更名處理功能且可執行軟 體管線操作,該處理器係包括: 一控制暫存器,於由複數個物理暫存器號碼或邏輯暫存 器爲單位之各暫存組內,儲存物理暫存器號碼與邏輯暫存 器號碼之對應關係; 一重新設定裝置,當所發行指令中,含有變更以該暫存 組爲單位的物理暫存器號碼及邏輯暫存器號碼的對應之變 更指令時’對應該指令所指示的暫存組之該控制暫存器的 內容重新設定;以及 控制暫存益設疋裝置’根據該對應之變更指令所指示 的執行對應變更的暫存組種類及對應變更量的相關資料, 將已重新設定之該控制暫存器設定成新値,且 26 1221579 8158pif2.doc 根據前述所設定的物理暫存器號碼去執行存取記憶體。 17.—種處理器,具有暫存器更名處理功能且可執行軟 體管線操作,該處理器係包括: 一控制暫存器,於由複數個物理暫存器號碼或邏輯暫存 器爲單位之各暫存組內,儲存物理暫存器號碼與邏輯暫存 器號碼之對應關係; 一重新設定裝置,當所發行指令中,含有變更以該暫存 組爲單位的物理暫存器號碼及邏輯暫存器號碼的對應之變 更指令時,對應該指令所指示的暫存組之該控制暫存器的 內容重新設定; 一控制暫存器設定裝置,根據該對應之變更指令所指示 的執行對應變更的暫存組種類及對應變更量的相關資料, 將已重新設定之該控制暫存器設定成新値; 一第1判定裝置,用於判定預先指定之原有暫存組號 碼,是否介於該對應變更指令指示之上下限暫存組號碼之 間; 一第1選擇裝置,根據該第1判定裝置之判定結果, 設定暫存組之旋轉量; 一第1暫存組號碼演算裝置,演算出對應該原有暫存 組號碼的之新暫存組號碼; 一第2判定裝置,用於判別演算出之該新暫存組號碼, 是否比該對應變更指令所指示的下限暫存組號碼更新; 一第2選擇裝置,根據該第2判定部所判定之結果,選 擇暫存組號碼補正値; 一第2暫存組號碼演算裝置,將該第1暫存組號碼演 27 1221579 8158pif2.doc 算裝置所演算的暫存組號碼,與該第2選擇裝置所選擇的 補正値相加,以演算最終的暫存組號碼;以及 一第3選擇裝置,由該第1暫存組號碼演算裝置所演 算之暫存組號碼,及儲存於該控制暫存器之暫存組號碼二 者擇一, 其中,該對應之變更指令係,用於指示:顯示對應變更量 的該暫存組之旋轉量,及執行旋轉之下限暫存組與上限的暫 存組,且 其中該重新設定裝置係,根據該對應之變更指令的指 示’於執行暫存組號碼旋轉之前,按照原有暫存組號碼, 將該控制暫存器的內容起始化,除此以外的情況,將該第3 選擇裝置所選擇的暫存組號碼儲存到該控制暫存器內, 且根據上述所設定的物理暫存器號碼去執行存取記憶 體;且 該重新設定裝置、該控制暫存器設定裝置、該第1判定 裝置、該第1選擇裝置、該第1暫存組號碼演算裝置、該 第2判定裝置、該第2選擇裝置、該第2暫存組號碼演算 裝置、以及該第3選擇裝置係,配合處理器的軟體管線操 作以進行各處理。 18.如申請專利範圍第17項所述之處理器,包括一暫存 器檔案’使該更名裝置與處理器之管線操作的動作同步。 28
TW090121830A 2000-09-28 2001-09-04 Renaming device and processor TWI221579B (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2000297242 2000-09-28
JP2001101216A JP3817436B2 (ja) 2000-09-28 2001-03-30 プロセッサおよびリネーミング装置

Publications (1)

Publication Number Publication Date
TWI221579B true TWI221579B (en) 2004-10-01

Family

ID=26601013

Family Applications (1)

Application Number Title Priority Date Filing Date
TW090121830A TWI221579B (en) 2000-09-28 2001-09-04 Renaming device and processor

Country Status (7)

Country Link
US (1) US6938149B2 (zh)
EP (1) EP1193594B1 (zh)
JP (1) JP3817436B2 (zh)
KR (1) KR20020025703A (zh)
CN (1) CN1149472C (zh)
DE (1) DE60138445D1 (zh)
TW (1) TWI221579B (zh)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3576148B2 (ja) * 2002-04-19 2004-10-13 株式会社半導体理工学研究センター 並列プロセッサ
US7206923B2 (en) * 2003-12-12 2007-04-17 International Business Machines Corporation Method and apparatus for eliminating the need for register assignment, allocation, spilling and re-filling
US20080077778A1 (en) * 2006-09-25 2008-03-27 Davis Gordon T Method and Apparatus for Register Renaming in a Microprocessor
US20080215804A1 (en) * 2006-09-25 2008-09-04 Davis Gordon T Structure for register renaming in a microprocessor
US8386712B2 (en) * 2006-10-04 2013-02-26 International Business Machines Corporation Structure for supporting simultaneous storage of trace and standard cache lines
CN100524208C (zh) * 2006-10-26 2009-08-05 中国科学院计算技术研究所 对状态寄存器进行重命名的方法和使用该方法的处理器
JP4830164B2 (ja) * 2009-07-07 2011-12-07 エヌイーシーコンピュータテクノ株式会社 情報処理装置及びベクトル型情報処理装置
US8725989B2 (en) * 2010-12-09 2014-05-13 Intel Corporation Performing function calls using single instruction multiple data (SIMD) registers
US9841974B2 (en) * 2014-04-25 2017-12-12 Avago Technologies General Ip (Singapore) Pte. Ltd. Renaming with generation numbers
US10430197B2 (en) 2017-05-12 2019-10-01 Samsung Electronics Co., Ltd. Banking register renaming to reduce power
JP7043985B2 (ja) 2018-06-13 2022-03-30 富士通株式会社 演算処理装置および演算処理装置の制御方法

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5781753A (en) * 1989-02-24 1998-07-14 Advanced Micro Devices, Inc. Semi-autonomous RISC pipelines for overlapped execution of RISC-like instructions within the multiple superscalar execution units of a processor having distributed pipeline control for speculative and out-of-order execution of complex instructions
US5481683A (en) 1992-10-30 1996-01-02 International Business Machines Corporation Super scalar computer architecture using remand and recycled general purpose register to manage out-of-order execution of instructions
JP3220881B2 (ja) * 1992-12-29 2001-10-22 株式会社日立製作所 情報処理装置
GB2286265B (en) 1994-01-26 1998-02-18 Advanced Risc Mach Ltd selectable processing registers
JPH1011352A (ja) * 1996-06-19 1998-01-16 Hitachi Ltd データ処理装置およびそのレジスタアドレス変換方法
JPH1097423A (ja) 1996-09-20 1998-04-14 Hitachi Ltd ループ処理の並列実行制御に適したレジスタ構成を有するプロセッサ
US6003126A (en) * 1997-07-01 1999-12-14 International Business Machines Special instruction register including allocation field utilized for temporary designation of physical registers as general registers
US6009509A (en) * 1997-10-08 1999-12-28 International Business Machines Corporation Method and system for the temporary designation and utilization of a plurality of physical registers as a stack
US5974525A (en) * 1997-12-05 1999-10-26 Intel Corporation System for allowing multiple instructions to use the same logical registers by remapping them to separate physical segment registers when the first is being utilized
JP3209205B2 (ja) * 1998-04-28 2001-09-17 日本電気株式会社 プロセッサにおけるレジスタ内容の継承装置
US6094716A (en) 1998-07-14 2000-07-25 Advanced Micro Devices, Inc. Register renaming in which moves are accomplished by swapping rename tags
US6230262B1 (en) 1998-07-31 2001-05-08 Advanced Micro Devices, Inc. Processor configured to selectively free physical registers upon retirement of instructions

Also Published As

Publication number Publication date
CN1149472C (zh) 2004-05-12
US20020042872A1 (en) 2002-04-11
US6938149B2 (en) 2005-08-30
CN1348132A (zh) 2002-05-08
JP3817436B2 (ja) 2006-09-06
KR20020025703A (ko) 2002-04-04
DE60138445D1 (de) 2009-06-04
EP1193594A2 (en) 2002-04-03
JP2002175181A (ja) 2002-06-21
EP1193594A3 (en) 2005-10-19
EP1193594B1 (en) 2009-04-22

Similar Documents

Publication Publication Date Title
US4589067A (en) Full floating point vector processor with dynamically configurable multifunction pipelined ALU
US8615646B2 (en) Unanimous branch instructions in a parallel thread processor
TWI221579B (en) Renaming device and processor
EP2650778A1 (en) Method and apparatus for token triggered multithreading
JP2009230757A (ja) 共有メモリに対するアトミックな更新を可能にするロックメカニズム
KR880001170B1 (ko) 마이크로 프로세서
US20160224386A1 (en) Approach for a configurable phase-based priority scheduler
US20110078418A1 (en) Support for Non-Local Returns in Parallel Thread SIMD Engine
TW201830234A (zh) 用於控制矢量記憶體存取之資料處理裝置及方法
EP0377976A2 (en) Microcode control apparatus utilizing programmable logic array circuits
US7360028B1 (en) Explicit store-to-instruction-space instruction for self-modifying code and ensuring memory coherence between instruction cache and shared memory using a no-snoop protocol
KR970016872A (ko) 프로그래머블 컨트롤러
JP2020502669A (ja) ベクトル生成命令
US7350037B2 (en) Digital signal processor and digital signal processing method enabling concurrent program download and execution
US6732251B2 (en) Register file circuitry
KR100322150B1 (ko) 부동 소수점 상태 및 제어 레지스터 인스트럭션을 단일 사이클
JP3531311B2 (ja) 命令読み出し装置
US11550584B1 (en) Implementing specialized instructions for accelerating Smith-Waterman sequence alignments
US11822541B2 (en) Techniques for storing sub-alignment data when accelerating Smith-Waterman sequence alignments
US9542192B1 (en) Tokenized streams for concurrent execution between asymmetric multiprocessors
EP0107447A2 (en) Computer data distributor
JP3211234B2 (ja) 情報処理装置
RU1817099C (ru) Устройство обработки информации с переменной длиной команд
US9665920B1 (en) Simultaneous execution of compute and graphics applications
JP2000357124A (ja) デジタル信号処理装置及びこれを有する通信システム