專(zhuān)利名稱(chēng):運(yùn)算處理裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及具有寄存器窗口方式的寄存器文件的運(yùn)算處理裝置。本發(fā)明包含不使 用用于從寄存器文件高速讀取的臨時(shí)存儲(chǔ)元件而實(shí)現(xiàn)從寄存器進(jìn)行高速讀取的運(yùn)算處理 裝置及其方法。
背景技術(shù):
RISC (Reduced Instruction Set Computer)架構(gòu)的處理器(以下,稱(chēng)為 RISC 處理 器),以寄存器-寄存器運(yùn)算為中心,通過(guò)減少存儲(chǔ)器訪(fǎng)問(wèn)來(lái)實(shí)現(xiàn)處理的高速化。其被稱(chēng)為 加載存儲(chǔ)架構(gòu)。RISC處理器為了有效地進(jìn)行上述寄存器-寄存器運(yùn)算而具有大容量的寄存 器文件。作為該寄存器文件,已知有以減少子程序調(diào)用時(shí)的變量的傳遞(變量的保存/復(fù) 原)的溢出的方式構(gòu)成的寄存器窗口方式的寄存器文件。圖1是表示寄存器窗口方式的寄存器文件的構(gòu)成的圖。圖1所示的寄存器文件1000具有一個(gè)寄存器窗口 W global和8個(gè)寄存器窗口 WO W7,在這些窗口中,寄存器窗口 WO W7在邏輯上呈環(huán)狀連結(jié)。各寄存器窗口 Wk (k = 0 7)分別具有Wk out, Wk in,以及Wk local這三種段。這三種段都由8個(gè)寄存器構(gòu)成。 Wk local具有各寄存器窗口固有的8個(gè)本地寄存器。Λ in具有8個(gè)in寄存器(輸入寄 存器), out具有8個(gè)out寄存器(輸出寄存器)。此外,W global具有在全部子程序中 共享的8個(gè)全局寄存器。Wk out用于向本程序調(diào)用的子程序傳遞變量,Wk in用于從調(diào)用了本程序的母程 序取得變量。在寄存器文件1000中,Wk in和Wk+1 out、以及Wk out和Wk-I in重疊構(gòu)成, 因此在調(diào)用子程序時(shí),能夠確保變量的傳遞和為此使用的寄存器的高速化。Wk local作為 各子程序、即被母程序調(diào)用的子程序進(jìn)行操作用的寄存器組使用。各子程序在執(zhí)行時(shí)使用8個(gè)寄存器窗口 WO W7中的任意一個(gè)。在此,執(zhí)行中 的子程序使用的寄存器窗口 Λ(被稱(chēng)為當(dāng)前窗口),在每次發(fā)生子程序調(diào)用時(shí)向右(用 “SAVE(保存),,表示的虛線(xiàn)的箭頭方向)旋轉(zhuǎn)兩個(gè)上述段,在子程序復(fù)原時(shí)向左(用 “RESTORE(復(fù)原)”表示的虛線(xiàn)的箭頭方向)旋轉(zhuǎn)兩個(gè)上述段。在寄存器文件1000中,各寄存器窗口 Λ通過(guò)分配給各自的寄存器窗口編號(hào)(以 下,稱(chēng)為窗口編號(hào))進(jìn)行管理。給寄存器窗口狐分配窗口編號(hào)k。執(zhí)行中的子程序所使用 的寄存器窗口 的窗口編號(hào)k被CWP (Current Window Pointer 當(dāng)前窗口指針)保持。 CffP的值通過(guò)SAVE (保存)命令的執(zhí)行或陷井(trap)發(fā)生而加1,通過(guò)RESTORE (復(fù)原)命 令的執(zhí)行或利用RETT命令從陷井返回而減1。在圖1中CWP的值是“0”,CffP指定寄存器 窗口 W0。這樣,在本說(shuō)明書(shū)中,將使CWP的值增減來(lái)切換當(dāng)前窗口的命令稱(chēng)為“窗口切換命 令”。圖1所示的寄存器文件1000具有1個(gè)窗口 W global。W global是儲(chǔ)存在全部程 序中共享的數(shù)據(jù)的寄存器組。各寄存器窗口 Λ具有對(duì)個(gè)(=8X3)寄存器,寄存器窗口 W global具有8個(gè)寄存器。在這些寄存器中,Wk in和Λ out寄存器重疊64個(gè)(=8X8),因此寄存器文件 1000具有的寄存器的總數(shù)為136個(gè)(=24X8+8-64)。為了使處理器的運(yùn)算器執(zhí)行子程序, 必須使寄存器文件1000的全部寄存器能夠讀寫(xiě)數(shù)據(jù)。在這種情況下,從這樣大的寄存器文件1000讀取數(shù)據(jù)的電路的規(guī)模和速度都成 為問(wèn)題。為了解決該問(wèn)題,提案了如圖2所示那樣構(gòu)成的運(yùn)算處理裝置。圖2所示的運(yùn)算處理裝置2000具有主寄存器文件2001 (以下記載為MRF)工作寄 存器文件2002(以下記載為WRF)以及運(yùn)算部2003,控制部2004。一般來(lái)說(shuō),對(duì)于寄存器窗口方式的寄存器文件,若寄存器窗口數(shù)增加,則具備的寄 存器的數(shù)量也變多,從而很難向運(yùn)算器高速地提供操作數(shù)。因此,除了保持全部窗口的寄存 器文件即MRF2001以外,將WRF2002保持為用于保持由指針CWP表示的MRF2001中的一個(gè) 窗口的拷貝的MRF2001的子組,并利用該WRF2002來(lái)進(jìn)行數(shù)據(jù)的讀取。WRF2002僅保持由指 針表示的窗口的拷貝。由于WRF2002與MRF2001相比較小,因此在從控制部2004供給讀取 的地址即READ ADDRESS來(lái)進(jìn)行讀取的情況下,能夠使數(shù)據(jù)讀取高速化。運(yùn)算部2003具備針對(duì)MRF2001的重命名寄存器R0B2005,進(jìn)行運(yùn)算結(jié)果的重命名。 并且,在提交時(shí)從R0B2005向MRF2001、WRF2002寫(xiě)回運(yùn)算結(jié)果。如以上所述,提案了如圖2所示那樣構(gòu)成的運(yùn)算處理裝置,但是這樣構(gòu)成時(shí),設(shè)置 保持MRF中的一個(gè)窗口的復(fù)制的MRF的子組這一點(diǎn)需要耗費(fèi)硬件成本。并且,在MRF和WRF 之間進(jìn)行轉(zhuǎn)送需要消耗功率。此外,在具備有亂序(out-of-order)執(zhí)行功能的處理器的情況下,命令的執(zhí)行順 序不限于程序的順序,可以從能夠處理的命令開(kāi)始執(zhí)行。因此,還要求越過(guò)寄存器窗口切換 命令來(lái)實(shí)現(xiàn)命令的執(zhí)行順序更換。專(zhuān)利文獻(xiàn)1 日本特開(kāi)平5482147號(hào)公報(bào)“寄存器文件”
發(fā)明內(nèi)容
因此,本發(fā)明的課題在于,在采用寄存器窗口方式的運(yùn)算處理裝置中降低與寄存 器讀取相關(guān)的硬件成本,以及消除工作緩存與緩存之間的轉(zhuǎn)送所消耗的功率。此外,在具有 亂序執(zhí)行功能的運(yùn)算處理裝置的情況下,需要越過(guò)寄存器窗口切換命令來(lái)實(shí)現(xiàn)命令的執(zhí)行 順序更換。在本發(fā)明中,構(gòu)成為通過(guò)當(dāng)前窗口選擇和寄存器選擇兩個(gè)階段來(lái)控制MRF的讀取 部分。并且構(gòu)成為,將在寄存器的讀取端口所選擇的寄存器針對(duì)各端口預(yù)先設(shè)定為能夠進(jìn) 行亂序執(zhí)行。由此,不用具有臨時(shí)存儲(chǔ)器、即WRF也能夠高速地向運(yùn)算部進(jìn)行數(shù)據(jù)讀取,并 且也能夠進(jìn)行窗口切換命令的后續(xù)命令的亂序執(zhí)行。根據(jù)本發(fā)明,能夠在基本保持以往的性能的同時(shí)降低WRF的硬件部分的成本。并 且,能夠?qū)崿F(xiàn)通過(guò)不使用WRF導(dǎo)致的消耗功率的減少、以及通過(guò)消除MRF-WRF間的數(shù)據(jù)轉(zhuǎn)送 導(dǎo)致的消耗功率的減少。
圖1是表示寄存器窗口方式的寄存器文件的構(gòu)成例的圖。圖2是表示采用寄存器窗口方式的運(yùn)算處理裝置的以往的構(gòu)成例的圖。
圖3是表示本實(shí)施方式中的采用寄存器窗口方式的運(yùn)算處理裝置的構(gòu)成的圖。圖4是說(shuō)明寄存器窗口系統(tǒng)的一般構(gòu)成的圖。圖5是表示寄存器窗口系統(tǒng)的改進(jìn)構(gòu)成例的圖。圖6是說(shuō)明在流水線(xiàn)中進(jìn)行亂序處理的位置的圖。圖7是表示SAVE(保存)命令前后的命令執(zhí)行流水線(xiàn)的一個(gè)例子的圖。圖8是表示讀取時(shí)各端口的分配的圖。圖9是表示以往的寄存器窗口系統(tǒng)的具體構(gòu)成例的圖。圖10是表示本實(shí)施方式的寄存器窗口系統(tǒng)的具體構(gòu)成例的圖。圖11是表示本實(shí)施方式的信息處理裝置的構(gòu)成的圖。
具體實(shí)施例方式下面參照
在具有寄存器窗口方式的寄存器文件的運(yùn)算處理裝置中,實(shí)現(xiàn) 從寄存器進(jìn)行高速讀取的實(shí)施方式的一個(gè)例子。圖3表示采用寄存器窗口方式的本實(shí)施方式的運(yùn)算處理裝置的構(gòu)成。運(yùn)算處理裝置0具有主寄存器文件(MRF) 1、運(yùn)算部3和控制部4。與圖2的運(yùn)算處 理裝置2000相比,圖3所示的運(yùn)算處理裝置0被構(gòu)成為不具備作為臨時(shí)存儲(chǔ)器的WRF2002。 此外,運(yùn)算部3具有的ROB (重命名寄存器)5在進(jìn)行運(yùn)算結(jié)果的重命名的部分中,在提交時(shí) 向MRFl寫(xiě)回運(yùn)算結(jié)果(write)。在圖3中,將MRFl的讀取部分分為當(dāng)前窗口選擇和寄存器選擇兩個(gè)階段進(jìn)行控 制。當(dāng)前窗口選擇通過(guò)從控制部4輸出的WINDOW_ADDRESS(窗口地址)信號(hào)進(jìn)行控制。 WINDOW_ADDRESS信號(hào)是基于CWP(Current Window Pointer)的值的信號(hào)。此外,寄存器選 擇通過(guò)從控制部4輸出的READ_ADDRESS(讀取地址)信號(hào)進(jìn)行控制。并且,如后述那樣,將寄存器讀取端口選擇的寄存器預(yù)先設(shè)定為能夠進(jìn)行亂序執(zhí) 行。由此,在本實(shí)施方式中不設(shè)置臨時(shí)存儲(chǔ)器也能夠向運(yùn)算部3進(jìn)行高速的數(shù)據(jù)讀取,并 且,能夠進(jìn)行SAVE命令,RESTORE命令的后續(xù)命令的亂序執(zhí)行。這樣在本實(shí)施方式中,由于不需要WRF,因此能夠減少其相應(yīng)的硬件成本。此外,能 夠?qū)崿F(xiàn)基于WRF的消耗功率的減少,以及因在MRF-WRF間不需要進(jìn)行轉(zhuǎn)送而導(dǎo)致的消耗功 率的減少。下面更詳細(xì)地說(shuō)明運(yùn)算處理裝置0的構(gòu)成。如圖1所示那樣,MRFl的寄存器具有8個(gè)窗口,該8個(gè)窗口分別具有各具備8個(gè) 寄存器的Wk IocaUffk in、Wk out (k = 0 7),此外MRFl的寄存器還具有與它們不同的、 具有8個(gè)寄存器的W global. W global寄存器在全部的窗口是共用的,對(duì)窗口切換沒(méi)有影 響,故在以下的說(shuō)明中省略。圖4表示寄存器窗口的構(gòu)成。作為寄存器窗口的特征,例如k= 1的Wl in是與 k = 0的WO out相同的。因此,在本實(shí)施方式中,如圖5所示那樣不安裝Λ in寄存器,而 是安裝Wk local寄存器和Wk out寄存器。圖6表示在對(duì)命令進(jìn)行流水線(xiàn)處理時(shí)進(jìn)行亂序處理的位置。如圖6所示那樣,在執(zhí) 行命令時(shí)執(zhí)行 Fetch (F)(取得),Decode (D)(解碼),Dispatch (P)(分派),Buffer read (B) (緩存讀取),Execute (χ)(執(zhí)行),Update buffer (U)(更新緩存),Commit (W)(提交)的各處理。如圖 6 所示那樣,在 Dispatch(P) ,Buffer Read(B),Execute (X),Update Buffer (U) 處進(jìn)行亂序處理(000)。 圖7表示在CWP = 1的命令,SAVE命令,以及CWP = 1的命令后續(xù)的CWP = 2的命 令被亂序執(zhí)行時(shí)各命令的關(guān)系。如圖7所示那樣,為了進(jìn)行亂序執(zhí)行,在SAVE命令實(shí)際執(zhí) 行中的期間,即,在SAVE命令的執(zhí)行處理中從Dispatch(圖示“P”)到Update buffer (圖 示“U”)的處理正在被執(zhí)行的期間,必須讀取與當(dāng)前的CWP對(duì)應(yīng)的寄存器群(圖7中CWP = 1)以及與當(dāng)前的CWP的下一個(gè)CWP對(duì)應(yīng)的寄存器群(圖7中CWP = 2)的數(shù)據(jù)。更具體地說(shuō),在CWP = 1的命令中讀取的寄存器群是W global、Wl IocaUffl out、 Wl in (WO out),在 CWP = 2 的命令中讀取的寄存器群是 W global、W2 local、W2 out、W2 in(ffl out),因此為了進(jìn)行SAVE命令的后續(xù)命令的亂序執(zhí)行,需要寄存器群W global, W2 local, W2 out、Wl local、Wl out、WO out 是能夠讀取的。此外,在將SAVE命令變成RESTORE命令來(lái)執(zhí)行時(shí),與圖7同樣,CWP = 1的命令和 RESTORE命令、后續(xù)的CWP = 0的命令為了進(jìn)行亂序執(zhí)行,必須能夠讀取在CWP = 1時(shí)讀取 的寄存器群即W global,Wl IocaUffl out,Wl in (WO out)和、在CWP = O時(shí)讀取的寄存器 群即 W global,WO local、W0 out,WO in(W7 out)。也就是說(shuō),在該狀況下,需要 W global, Wl local.ffl out, WO local, WO out、W7 out 是能夠讀取的。根據(jù)以上的說(shuō)明可知,為了能夠進(jìn)行亂序執(zhí)行,作為從MRFl讀取寄存器的第1階 段的端口必須是6個(gè)端口。下面,將這些端口設(shè)為G_P0RT (global)、L_P0RT0、L_P0RT1、0UT_ PORTO、0UT_P0RT1、0UT_P0RT2。分別向G_P0RT分配全局寄存器群,向L_P0RT分配本地寄存 器群,向0UT_P0RT分配輸出寄存器群。并且,例如在執(zhí)行CWP = 1的命令的后續(xù)的SAVE命令時(shí),向G_P0RT分配W global 寄存器群,向L_P0RT0分配W2 local寄存器群,向L_P0RT1分配Wl local寄存器群,向0UT_ P0RT0分配WO out寄存器群,向0UT_P0RT1分配Wl out寄存器群,向0UT_P0RT2分配W2 out寄存器群。歸納可知,根據(jù)CWP的值將向各端口的讀取寄存器群如圖8所示那樣地對(duì)應(yīng)即可。在圖8中,例如“W7/W1”那樣的用斜線(xiàn)隔開(kāi)的表述表示,在執(zhí)行RESTORE命令時(shí)的 亂序執(zhí)行中分配“W7”寄存器群,在執(zhí)行SAVE命令時(shí)的亂序執(zhí)行中分配“W1”寄存器群。在圖8中舉例說(shuō)明了當(dāng)前的CWP是CWP = 0且接著執(zhí)行RESTORE命令時(shí)的亂序執(zhí) 行,由于向L_P0RT0以及L_P0RT1分配本地寄存器群,因此WO local以及W7 local的各 本地寄存器群被分別分配,由于向0UT_P0RT0、0UT_P0RT1、以及0UT_P0RT2分配輸出寄存器 群,因此WO out、W7 out、W6 out的各輸出寄存器群被分別分配。另一方面,舉例說(shuō)明了當(dāng)前的CWP是CWP = 0且接著執(zhí)行SAVE命令時(shí)的亂序執(zhí) 行,向L_P0RT0以及L_P0RT1分別分配WO local以及Wl local的各本地寄存器群,向0UT_ P0RT0、0UT_P0RT1、以及 0UT_P0RT2 分別分配 WO out、W7 out、Wl out 的各輸出寄存器群。 根據(jù)以上的說(shuō)明,在作為從MRFl讀取寄存器的第1階段的當(dāng)前窗口選擇中,能夠根據(jù)被表 示為下面的規(guī)則1 規(guī)則6的動(dòng)作算法來(lái)分配根據(jù)WIND0W_ADDRESS信號(hào)由各寄存器的讀 取端口選擇的寄存器。另外,設(shè)定窗口具有0、1、2、…、2n、2n+l個(gè)寄存器窗口(“η”是任 意的自然數(shù))。此外,CffP = 2η+1的下一個(gè)(CWP = 2η+2)回歸CWP = 0。規(guī)則1 CffP = 2η時(shí)(SAVE · RESTORE命令執(zhí)行中以外)
L_P0RT0 = W2n localL_P0RT1 = * (沒(méi)有關(guān)系的意思)0UT_P0RT0 = W2n out_0UT_P0RT1 = ff(2n-l)out0UT_P0RT2 = * (沒(méi)有關(guān)系的意思)規(guī)則2CffP =加+1時(shí)(SAVE · RESTORE命令執(zhí)行中以夕卜)L_P0RT0 = * (沒(méi)有關(guān)系的意思)L_P0RT1 = ff(2n+l) local0UT_P0RT0 = W2n out0UT_P0RT1 = WP(2n+l)out0UT_P0RT2 = * (沒(méi)有關(guān)系的意思)規(guī)則3CffP = 2n時(shí)(SAVE命令執(zhí)行中)L_P0RT0 = W2n localL_P0RT1 = W(2n+1) local0UT_P0RT0 = W2n out0UT_P0RT1 = ff(2n-l)out0UT_P0RT2 = W (2n+l) out規(guī)則4CWP = 2n+l時(shí)(SAVE命令執(zhí)行中):L_P0RT0 = ff(2n+2) localL_P0RT1 = ff(2n+l) local0UT_P0RT0 = W2n out0UT_P0RT1 = ff(2n+l)out0UT_P0RT2 = W(2n+2)out規(guī)則5CWP = 2n時(shí)(RESTORE命令執(zhí)行中):L_P0RT0 = W2n localL_P0RT1 = ff(2n-l) local0UT_P0RT0 = W2n out0UT_P0RT1 = ff(2n-l)out0UT_P0RT2 = W(2n_2)out規(guī)則6CWP = 2n+l 時(shí)(RESTORE 命令執(zhí)行中):L_P0RT0 = W2n localL_P0RT1 = ff(2n+l) local0UT_P0RT0 = W2n out0UT_P0RT1 = ff(2n+l)out0UT_P0RT2 = W(2n_2)out根據(jù)以上規(guī)則1 6可知,在各端口的讀取處理中,從W(2n) local的寄存器群中 任選一個(gè)分配給1^_ ( ,從W(2n+l)l0Cal的寄存器群中任選一個(gè)分配給1^ 0肌1。此外, 從W (2n) out的寄存器群中任選一個(gè)分配給0—P0RT0,從W (2n+l) out的寄存器群中任選一個(gè) 分配給0_P0RT1,從W(2n)out或者W(2n+l)out的寄存器群中任選一個(gè)分配給0_P0RT2即可。并且,在各寄存器讀取端口,根據(jù)基于CWP的值的WINDOW_ADDRESS信號(hào),以及SAVE命 令、RESTORE命令分別是否在執(zhí)行中來(lái)選擇讀取的寄存器即可。下面對(duì)比基于上述的寄存器分配的原理的本實(shí)施方式的具體構(gòu)成與以往構(gòu)成來(lái) 進(jìn)行說(shuō)明。圖9表示圖3所示的本實(shí)施方式的運(yùn)算處理裝置0中的寄存器窗口系統(tǒng)的構(gòu)成 例,圖10表示以往的寄存器窗口系統(tǒng)的構(gòu)成例。在圖9所示的本實(shí)施方式的寄存器窗口系統(tǒng)的構(gòu)成例中,在從由WO local, W2 local、W4 local、W6 local表示的四個(gè)本地寄存器群輸出的8個(gè)寄存器值構(gòu)成的各組中, 通過(guò)選擇器904選擇其中一組,并輸出給L_P0RT0端口。在從由Wl local、W3 local、W5 local、W7 local表示的四個(gè)本地寄存器群輸出 的8個(gè)寄存器值構(gòu)成的各組中,通過(guò)選擇器905選擇其中一組,并輸出給L_P0RT1端口。在從由WO out、W2 out、W4 out、W6 out表示的四個(gè)本地寄存器群輸出的8個(gè)寄 存器值構(gòu)成的各組中,通過(guò)選擇器905選擇其中一組,并輸出給0UT_P0RT0端口,此外,通過(guò) 選擇器905以及907選擇其中一組,并輸出給0UT_P0RT2端口。在從由Wl out、W3 out、W5 out、W7 out表示的四個(gè)本地寄存器群輸出的8個(gè)寄 存器值構(gòu)成的各組中,通過(guò)選擇器906選擇其中一組,并輸出給0UT_P0RT1端口。此外,通 過(guò)選擇器906以及907選擇其中一組,并輸出給0UT_P0RT2端口。從由GL表示的全局寄存器群輸出的8個(gè)寄存器值構(gòu)成的組被輸出給G_P0RT端□。在輸出給L_P0RT0、L_P0RT1、0UT_P0RT0、0UT_P0RT 1、0UT_P0RT2、以及 G_P0RT 這 6 個(gè)端口的、分別由8個(gè)寄存器值構(gòu)成的合計(jì)8 X 6 = 48個(gè)寄存器值中,通過(guò)選擇器908選擇 一個(gè)寄存器值,作為READ_DATA(讀取數(shù)據(jù))輸出。此外,選擇器908中的“48 :1”的意思是 從48個(gè)寄存器值中選擇輸出1個(gè)寄存器值。在圖9所示的本實(shí)施方式的寄存器窗口系統(tǒng)的構(gòu)成中,根據(jù)基于CWP的值的 WIND0ff_ADDRESS信號(hào)、以及SAVE命令或者RESTORE命令的執(zhí)行狀態(tài),按照上述的規(guī)則1 6的動(dòng)作算法,選擇器903 907以選擇各寄存器群輸出的方式進(jìn)行動(dòng)作。該動(dòng)作算法能夠 通過(guò)簡(jiǎn)單的邏輯電路構(gòu)成。并且,提供給選擇器908的READ_ADDRESS信號(hào)可以是使從48 個(gè)寄存器值中選擇1個(gè)寄存器值的信號(hào)。此外,WRITE_ADDRESS (寫(xiě)入地址)信號(hào)控制選擇 器902來(lái)將WRITE_DATA(寫(xiě)入數(shù)據(jù))寫(xiě)入各寄存器群。這樣,在本實(shí)施方式中,在WIND0W_ADDRESS信號(hào)或被MRF901保持的數(shù)據(jù)不變的情 況下,通過(guò)基于WIND0W_ADDRESS信號(hào)和READ_ADDRESS信號(hào)的簡(jiǎn)單的地址指定,能夠進(jìn)行高 速的數(shù)據(jù)讀取。與下面說(shuō)明的圖10的以往構(gòu)成比較,能夠減少與不需要的工作寄存器文件 (WRF)相應(yīng)的硬件量。但是,在WIND0W_ADDRESS信號(hào)或MRF901所保持的數(shù)據(jù)變化了的情況 下,可以構(gòu)成為,通過(guò)從圖3所示的R0B5進(jìn)行讀取來(lái)對(duì)應(yīng)。接著,在圖10所示的以往的寄存器窗口系統(tǒng)的構(gòu)成例中,主寄存器文件 (MRF) 1001具有由WO local W7 local表示的8個(gè)本地寄存器群、由WO out W7 out表 示的8個(gè)輸出寄存器群、和由GL表示的全局寄存器群。此外,8個(gè)輸入寄存器群WO in W7 in被分別與8個(gè)輸出寄存器群W7 out、WO out W6 out共享。另一方面,工作寄存器文件(WRF) 1002具有在MRF1001中的某個(gè)CWP值上分別保 持從MRF1001輸出的所選擇的1組全局寄存器群的8個(gè)寄存器值、所選擇的1組本地寄存器群的8個(gè)寄存器值、所選擇的1組輸入寄存器群(=輸出寄存器群)的8個(gè)寄存器值、以 及所選擇的1組輸出寄存器群的8個(gè)寄存器值的G寄存器群1005、L寄存器群1006、IN寄 存器群1007、以及OUT寄存器群1008 ;臨時(shí)保持來(lái)自MRF1001的本地寄存器群WO local W7 local或者全局寄存器群GL的其中一個(gè)的當(dāng)前的8個(gè)寄存器輸出值的G/L寄存器群 1003 ;同樣地臨時(shí)保持來(lái)自MRF1001的輸出寄存器群WO out W7 out的其中一個(gè)的當(dāng)前 的8個(gè)寄存器輸出值的10寄存器群1004 ;選擇G/L寄存器群1003、10寄存器群1004、或 者WRITE_DATA (寫(xiě)入數(shù)據(jù))并將其保持在1005 1008的寄存器群中的選擇器1009 ;選擇 寄存器群1003 1008的6個(gè)寄存器群,即,6X8 = 48個(gè)寄存器群中的1個(gè)寄存器值作為 READ_DATA(讀取數(shù)據(jù))輸出的選擇器1010。此外,選擇器1010中的“48 1 ”的意思是從48 個(gè)寄存器群中選擇1個(gè)寄存器。在具有上述構(gòu)成的圖10的以往的寄存器窗口系統(tǒng)中,在進(jìn)行讀取動(dòng)作時(shí),與 MRF1001中的當(dāng)前的CWP值對(duì)應(yīng)的讀取數(shù)據(jù),在從MRF1001中的各寄存器群輸出后,經(jīng)由G/ L寄存器群1003、10寄存器群1004以及選擇器1009 —直保持在WRF1002內(nèi)的寄存器群 1005 1008中。此外,在進(jìn)行寫(xiě)入動(dòng)作時(shí),MRF1001中的當(dāng)前的寫(xiě)入數(shù)據(jù),經(jīng)由MRF1001中 的選擇器1009被保持在WRF1002內(nèi)的寄存器群1005 1008中。因此,作為READ_ADDRESS, 僅將選擇上述寄存器群1005 1008、或1003、1004的其中一個(gè)的地址信號(hào)提供給選擇器 1010,就能夠?qū)?dāng)前的CWP指示的數(shù)據(jù)作為READ_DATA高速地讀取。此夕卜,考慮亂序執(zhí)行等, 將選擇器1010構(gòu)成為,也能夠選擇當(dāng)前的MRF1001的輸出、即寄存器群1003以及1004的 輸出。在圖10所示的以往的寄存器窗口系統(tǒng)的構(gòu)成例中,除了 MRF1001之外還具備 WRF1002,由此實(shí)現(xiàn)了高速的數(shù)據(jù)讀取,但是如上述那樣存在增加了用于WRF1002的硬件構(gòu) 成的問(wèn)題點(diǎn)。以上,如果比較圖9所示的本實(shí)施方式的構(gòu)成和圖10所示的以往例的構(gòu)成,則本 實(shí)施方式的優(yōu)越性很明顯。到此,詳細(xì)地說(shuō)明了本實(shí)施方式的運(yùn)算處理裝置0的構(gòu)成。如上述那樣,在本實(shí)施 方式的運(yùn)算處理裝置O中,用兩個(gè)階段控制圖3的MRFl的讀取部分。該兩個(gè)階段包括根 據(jù)CWP的值、即當(dāng)前窗口的編號(hào)進(jìn)行選擇的當(dāng)前窗口選擇(WIND0W_ADDRESS)的階段、和通 過(guò)相當(dāng)于讀取地址的READ_ADDRESS來(lái)選擇讀取寄存器的階段。在當(dāng)前窗口選擇中,利用 以下端口進(jìn)行寄存器的選擇根據(jù)當(dāng)前窗口編號(hào)從窗口編號(hào)是偶數(shù)的本地寄存器群選擇寄 存器的第一本地寄存器讀取端口(L_P0RT0)、根據(jù)當(dāng)前窗口編號(hào)從窗口編號(hào)是奇數(shù)的本地 寄存器群選擇寄存器的第二本地寄存器讀取端口(L_P0RT1)、根據(jù)當(dāng)前窗口編號(hào)從窗口編 號(hào)是偶數(shù)的輸出寄存器群選擇寄存器的第一輸出寄存器讀取端口(0UT_P0RT0)、根據(jù)當(dāng)前 窗口編號(hào)從窗口編號(hào)是奇數(shù)的輸出寄存器群選擇寄存器的第二輸出寄存器讀取端口(0UT_ P0RT1)、根據(jù)當(dāng)前窗口編號(hào)從輸出寄存器群選擇寄存器的第三輸出寄存器讀取端口(0UT_ P0RT2)。根據(jù)這樣的構(gòu)成,本實(shí)施方式的運(yùn)算處理裝置不使用作為臨時(shí)存儲(chǔ)器的WRF也能 夠?qū)崿F(xiàn)從寄存器的高速讀取,并且能夠進(jìn)行窗口切換命令的后續(xù)命令的亂序執(zhí)行。由此,能夠減少WRF的硬件部分的成本。此外,能夠通過(guò)不使用WRF來(lái)減少消耗功 率,以及,能夠通過(guò)消除MRF-WRF間的數(shù)據(jù)轉(zhuǎn)送來(lái)減少消耗功率。
以上參照
了本實(shí)施方式的一個(gè)例子,但是本發(fā)明也可以構(gòu)成為包含上述 的運(yùn)算處理裝置的信息處理裝置。圖11表示信息處理裝置的構(gòu)成的一個(gè)例子。信息處理裝置110具有包含運(yùn)算單 元112,存儲(chǔ)器111,命令控制單元113,高速緩存115的高速緩存控制單元114。上述的運(yùn) 算處理裝置0與運(yùn)算單元112對(duì)應(yīng)。圖3所示的控制部4與運(yùn)算控制部116對(duì)應(yīng),運(yùn)算部 3與運(yùn)算部118對(duì)應(yīng),MRFl與寄存器部117對(duì)應(yīng)。信息處理裝置110通過(guò)采用上述的運(yùn)算處理裝置0來(lái)構(gòu)成,從而能夠降低硬件成 本,并且能夠減少消耗功率。如以上所述,針對(duì)本發(fā)明的實(shí)施方式的一個(gè)例子進(jìn)行了詳細(xì)說(shuō)明,但是本發(fā)明不 限定于此,在不脫離本實(shí)施方式的要旨的范圍內(nèi)可以進(jìn)行各種變形。
權(quán)利要求
1.一種運(yùn)算處理裝置,其特征在于,具備 運(yùn)算部,其進(jìn)行運(yùn)算處理;寄存器文件,其具備寄存器窗口,其具有分別具備N(xiāo)個(gè)寄存器的K個(gè)窗口,并與構(gòu)成兩 相鄰的窗口的寄存器共享構(gòu)成各窗口的一部分寄存器,并且將該共享部分用于子程序調(diào)用 時(shí)的變量的傳遞;當(dāng)前窗口選擇單元,其選擇所述K個(gè)窗口中的一個(gè);和寄存器選擇單元, 其根據(jù)讀取地址選擇讀取寄存器;控制部,其輸出用于在所述寄存器文件中的當(dāng)前窗口選擇單元中選擇窗口的窗口地址 信號(hào)。
2.根據(jù)權(quán)利要求1所述的運(yùn)算處理裝置,其特征在于, 所述當(dāng)前窗口選擇單元具備第一本地寄存器讀取端口,其根據(jù)所述窗口地址信號(hào),從作為所述子程序的操作用寄 存器的本地寄存器中的窗口編號(hào)是偶數(shù)的本地寄存器群中選擇寄存器;第二本地寄存器讀取端口,其根據(jù)所述窗口地址信號(hào),從作為所述子程序的操作用寄 存器的本地寄存器中的窗口編號(hào)是奇數(shù)的本地寄存器群中選擇寄存器;第一輸出寄存器讀取端口,其根據(jù)所述窗口地址信號(hào),從調(diào)用所述子程序時(shí)用于傳遞 變量的輸出寄存器中的窗口編號(hào)是偶數(shù)的輸出寄存器群中選擇寄存器;第二輸出寄存器讀取端口,其根據(jù)所述窗口地址信號(hào),從調(diào)用所述子程序時(shí)用于傳遞 變量的輸出寄存器中的窗口編號(hào)是奇數(shù)的輸出寄存器群中選擇寄存器;第三輸出寄存器讀取端口,其根據(jù)所述窗口地址信號(hào),從調(diào)用所述子程序時(shí)用于傳遞 變量的輸出寄存器群中選擇寄存器。
3.一種信息處理裝置,其特征在于,具有運(yùn)算處理裝置,該運(yùn)算處理裝置具有 運(yùn)算部,其進(jìn)行運(yùn)算處理;寄存器文件,其具備寄存器窗口,其在由多個(gè)寄存器構(gòu)成的寄存器文件中將該寄存器 文件分割成分別具有N個(gè)寄存器的K個(gè)窗口,各窗口分別和兩相鄰的窗口共享一部分寄存 器,并且將該共享部分用于子程序調(diào)用時(shí)的變量的傳遞;當(dāng)前窗口選擇單元,其選擇所述K 個(gè)窗口中的一個(gè);寄存器選擇單元,其根據(jù)讀取地址選擇讀取寄存器;控制部,其輸出用于在所述寄存器文件中的當(dāng)前窗口選擇單元中選擇窗口的窗口地址 信號(hào)。
4.根據(jù)權(quán)利要求3所述的信息處理裝置,其特征在于,所述當(dāng)前窗口選擇單元具備 第一本地寄存器讀取端口,其根據(jù)所述窗口地址信號(hào),從作為所述子程序的操作用寄存器的本地寄存器中的窗口編號(hào)是偶數(shù)的本地寄存器群中選擇寄存器;第二本地寄存器讀取端口,其根據(jù)所述窗口地址信號(hào),從作為所述子程序的操作用寄 存器的本地寄存器中的窗口編號(hào)是奇數(shù)的本地寄存器群中選擇寄存器;第一輸出寄存器讀取端口,其根據(jù)所述窗口地址信號(hào),從調(diào)用所述子程序時(shí)用于傳遞 變量的輸出寄存器中的窗口編號(hào)是偶數(shù)的輸出寄存器群中選擇寄存器;第二輸出寄存器讀取端口,其根據(jù)所述窗口地址信號(hào),從調(diào)用所述子程序時(shí)用于傳遞 變量的輸出寄存器中的窗口編號(hào)是奇數(shù)的輸出寄存器群中選擇寄存器;第三輸出寄存器讀取端口,其根據(jù)所述窗口地址信號(hào),從調(diào)用所述子程序時(shí)用于傳遞 變量的輸出寄存器群中選擇寄存器。
5.一種寄存器文件的讀取方法,其特征在于,該寄存器文件具備寄存器窗口,其在由多 個(gè)寄存器構(gòu)成的寄存器文件中將該寄存器文件分割成分別具有N個(gè)寄存器的K個(gè)窗口,各 窗口分別和兩相鄰的窗口共享一部分寄存器,并且將該共享部分用于子程序調(diào)用時(shí)的變量 的傳遞,該讀取方法通過(guò)以下步驟讀取寄存器 第一步驟,選擇所述K個(gè)窗口中的一個(gè);第二步驟,從所述被選擇的窗口寄存器中,根據(jù)讀取地址選擇讀取寄存器。
6.根據(jù)權(quán)利要求5所述的寄存器文件的讀取方法,其特征在于,在所述第一步驟中,將用于分別識(shí)別所述K個(gè)窗口的窗口編號(hào)中的一個(gè)選擇為當(dāng)前窗 口編號(hào);根據(jù)所述當(dāng)前窗口編號(hào),在第一本地寄存器讀取端口,從作為所述子程序的操作用寄 存器的本地寄存器中的窗口編號(hào)是偶數(shù)的本地寄存器群中選擇寄存器;根據(jù)所述當(dāng)前窗口編號(hào),在第二本地寄存器讀取端口,從作為所述子程序的操作用寄 存器的本地寄存器中的窗口編號(hào)是奇數(shù)的本地寄存器群中選擇寄存器;根據(jù)所述當(dāng)前窗口編號(hào),在第一輸出寄存器讀取端口,從調(diào)用所述子程序時(shí)用于傳遞 變量的輸出寄存器中的窗口編號(hào)是偶數(shù)的輸出寄存器群中選擇寄存器;根據(jù)所述當(dāng)前窗口編號(hào),在第二輸出寄存器讀取端口,從調(diào)用所述子程序時(shí)用于傳遞 變量的輸出寄存器中的窗口編號(hào)是奇數(shù)的輸出寄存器群中選擇寄存器;根據(jù)所述當(dāng)前窗口編號(hào),從調(diào)用所述子程序時(shí)用于傳遞變量的輸出寄存器群中選擇寄 存器。
全文摘要
在采用寄存器窗口方式的運(yùn)算處理裝置中,構(gòu)成為通過(guò)當(dāng)前窗口選擇和寄存器選擇兩個(gè)階段來(lái)控制寄存器文件的讀取部分,且將在多個(gè)讀取端口選擇的寄存器針對(duì)各端口預(yù)先設(shè)定為能夠進(jìn)行亂序執(zhí)行。由此,不必設(shè)置臨時(shí)存儲(chǔ)器就能夠向運(yùn)算部進(jìn)行數(shù)據(jù)讀取,且能夠進(jìn)行窗口切換命令的后續(xù)命令的亂序執(zhí)行。
文檔編號(hào)G06F9/34GK102112965SQ20088013063
公開(kāi)日2011年6月29日 申請(qǐng)日期2008年8月8日 優(yōu)先權(quán)日2008年8月8日
發(fā)明者大貫祥照 申請(qǐng)人:富士通株式會(huì)社