專利名稱:指令執(zhí)行控制裝置以及指令執(zhí)行控制方法
技術(shù)領(lǐng)域:
本發(fā)明涉及多個(gè)線程以同步多線程方式動(dòng)作在無(wú)序(Out-Of-Order) 處理中進(jìn)行指令控制的指令執(zhí)行控制裝置以及指令執(zhí)行控制方法,特別是 涉及一種防止以同步多線程方式動(dòng)作時(shí)發(fā)生掛起狀態(tài)的指令執(zhí)行控制裝 置以及指令執(zhí)行控制方法。
背景技術(shù):
一般:要求CPU (Central Processor Unit)的處理高速化。因此,目前 為止4吏用了各種4^樣的技術(shù)來(lái)提高CPU的處理。作為其方法之一,存在 流水線處理、進(jìn)行并行處理的超標(biāo)量(Superscalar)方式、以及根據(jù)輸入 數(shù)據(jù)已完成的指令執(zhí)行而不按照程序指令的順序執(zhí)行的無(wú)序執(zhí)行方式。
無(wú)序執(zhí)行方式是在即使前面的指令處理所需要的數(shù)據(jù)未準(zhǔn)備好而后面 的指令處理所需要的數(shù)據(jù)已準(zhǔn)備好的情況下,基于后面的指令優(yōu)先執(zhí)行的 用于提高CPU的性能的技術(shù)(例如,參照專利文獻(xiàn)1 )。
例如,在按照程序記述的順序處理指令的情況下,假定前一指令處理 1是涉及存儲(chǔ)器訪問(wèn)的指令,而后一指令處理2是不涉及存儲(chǔ)器訪問(wèn)的指 令,則與指令處理l的存儲(chǔ)器訪問(wèn)并行執(zhí)行指令處理2,在執(zhí)行指令處理2 后,執(zhí)行存儲(chǔ)器訪問(wèn)結(jié)束的指令處理l。
并且,人們還提出了 一種不是運(yùn)行單一程序而是運(yùn)行多個(gè)程序來(lái)提高 CPU的處理的多線程方式(例如,參照專利文獻(xiàn)2)。
運(yùn)行多個(gè)程序的多線程方式需要準(zhǔn)備多組CPU的可編程資源,從軟件 角度來(lái)看,表面上好像可以看到多個(gè)CPU,因此是能夠執(zhí)行多個(gè)程序的構(gòu) 造。
作為該多線程的方式之一存在VMT(Vertical Multi Threading)方式。 該方式同時(shí)只能運(yùn)行一個(gè)程序,發(fā)生長(zhǎng)時(shí)間的數(shù)據(jù)等待時(shí)或者以一定的時(shí)
5間間隔等切換程序運(yùn)行。VMT方式的電路量必須根據(jù)程序的數(shù)量準(zhǔn)備可 編程資源,因?yàn)橥瑫r(shí)運(yùn)行一個(gè)程序,所以追加的電路量也少,實(shí)現(xiàn)起來(lái)容易。
另一方面,作為其他的多線程方式存在多個(gè)程序同時(shí)運(yùn)行的同步多線 程方式(SMT方式)。該方式因?yàn)槎鄠€(gè)程序同時(shí)運(yùn)行,因此與單一程序運(yùn) 行時(shí)相比可預(yù)料電路的控制變得復(fù)雜、以及資源會(huì)增加,但是因?yàn)槭嵌鄠€(gè) 程序同步g行,所以能夠高效地使用電路。
用于處理無(wú)序執(zhí)行的保留站(reservation station)的控制,能夠從功 能的執(zhí)行的準(zhǔn)備完成的入口 (entry)進(jìn)行功能的執(zhí)行。
以流水線處理進(jìn)行功能的執(zhí)行,在執(zhí)行功能的執(zhí)行所需要的時(shí)間不同 的種類的指令的情況下,保留站控制入口的執(zhí)行,以便使輸出功能的執(zhí)行 的結(jié)果的定時(shí)(timing)不相同。
圖15是浮點(diǎn)用保留站的入口執(zhí)行控制的時(shí)序圖。在浮點(diǎn)運(yùn)算中,流水 線處理所執(zhí)行的結(jié)果被存儲(chǔ)于結(jié)果寄存器,但是保留站以存儲(chǔ)于結(jié)果寄存 器的定時(shí)不重疊的方式選"^執(zhí);f亍的入口 。
圖15中表示從保留站執(zhí)行的入口是執(zhí)行需要4循環(huán)的入口 (在先指 令),而后續(xù)的指令是執(zhí)行需要2循環(huán)的入口的情況下的后續(xù)指令的控制 例。
圖15中,T1 T7表示循環(huán),P表示從保留站選擇執(zhí)行入口的處理,B 表示功能的執(zhí)行所需要的操作數(shù)數(shù)據(jù)的讀出處理,X表示功能執(zhí)行以及在 最后的循環(huán)中將執(zhí)行結(jié)果存儲(chǔ)于結(jié)果寄存器的處理,U表示將功能的執(zhí)行 的結(jié)果存儲(chǔ)于寄存器更新緩沖器的處理。
對(duì)于先指令而言,功能執(zhí)行需要X1、 X2、 X3、 X4的4循環(huán),對(duì)于后 續(xù)指令而言,功能執(zhí)行需要X1、 X2的2循環(huán)。在循環(huán)T1中,當(dāng)保留站 選擇了在先指令的情況下,因?yàn)閁未重疊,因此T2的定時(shí)下能夠執(zhí)行2 循環(huán)的后續(xù)指令。在T3的定時(shí)下,當(dāng)執(zhí)行了 2循環(huán)的后續(xù)指令的情況下, 4循環(huán)的在先指令和存儲(chǔ)于結(jié)果寄存器的定時(shí)U (T7)相同,因此不能執(zhí) 行。然后,在T4的定時(shí)下能夠執(zhí)行2循環(huán)的后續(xù)指令。
圖16表示通過(guò)這樣的流水線控制的保留站的選擇動(dòng)作,以單線程動(dòng)作的情況下的入口執(zhí)行例,圖中,P、 B、 X、 U表示的與圖15中所示的相同。
圖16是執(zhí)行需要4循環(huán)的入口連續(xù)并被保留站選擇時(shí),執(zhí)行需要2循環(huán)的入口被指令解碼器解碼之后,執(zhí)行需要4循環(huán)的入口被指令解碼器連續(xù)解碼的狀況的時(shí)序圖。
保留站從能夠執(zhí)行的入口發(fā)行(執(zhí)行)入口。另外,關(guān)于存在能夠同步執(zhí)行幾個(gè)的入口的情況,按照被解碼的順序選擇入口而執(zhí)行。
因此,即使是在功能的執(zhí)行的準(zhǔn)備完成的入口下,有時(shí)候也發(fā)生因輸出先執(zhí)行入口的結(jié)果的定時(shí)而不能成為能夠執(zhí)行的入口 。
若這樣的狀況連續(xù)且長(zhǎng)時(shí)間持續(xù)的情況下,則無(wú)法從保留站執(zhí)行。圖16中,執(zhí)行需要2循環(huán)的入口處于能夠執(zhí)行,即使想要從保留站執(zhí)行,因?yàn)?循環(huán)的在先指令和存儲(chǔ)于結(jié)果寄存器的定時(shí)相同,因此處于不能執(zhí)行的狀態(tài)。
在單線程的情況下,在形成>^保留站無(wú)法發(fā)行(issue)的狀態(tài)后,如果存在某個(gè)一定數(shù)量的指令被指令解碼器解碼,則指令完成控制功能的入口成為FULL狀態(tài)。
即,因?yàn)闊o(wú)法從保留站發(fā)行而使指令無(wú)法完成。因此,后續(xù)的指令雖能夠從保留站執(zhí)行,但是處于指令無(wú)法完成的狀態(tài)。
因此,控制指令的完成的功能的入口成為FULL狀態(tài),處于沒有被指令解碼器解碼指令的狀態(tài)(指令解碼器停止的狀態(tài))。指令沒有被解碼而在保留站沒有生成新的入口 ,因此無(wú)法執(zhí)行的入口 (圖1 6的2循環(huán)的入口 )例如循環(huán)T5能夠執(zhí)行,變得能夠完成指令。
專利文獻(xiàn)l:日本特開2007-87108號(hào) >凈艮
專利文獻(xiàn)2:日本特表2006-502504號(hào)乂>才艮(WO2004/034209號(hào))
另一方面,在同步多線程方式中,以線程間共有保留站的入口而構(gòu)成的情況下,與保留站的入口的線程沒有關(guān)系,將在功能的執(zhí)行的準(zhǔn)備完成的入口中、輸出先執(zhí)行入口的結(jié)果的定時(shí)不相同那樣的入口,作為能夠執(zhí)行的入口被保留站選擇并執(zhí)行。在該同步多線程方式中,與單線程方式同樣,即使是在功能的執(zhí)行的準(zhǔn)備完成的入口的情況下,有時(shí)候發(fā)生因輸出先執(zhí)行入口的結(jié)果的定時(shí)而不能成為能夠執(zhí)行的入口。這樣的狀況連續(xù)且長(zhǎng)時(shí)間持續(xù)的情況下,無(wú)法從保留站執(zhí)行。
圖17表示同步多線程中兩個(gè)線程0、 l動(dòng)作時(shí),線程0中執(zhí)行需要4循環(huán)的入口連續(xù)從保留站執(zhí)行,通過(guò)指令解碼器將執(zhí)行需要4循環(huán)的指令解碼的狀況的例子。
這樣的狀況中,若線程1中,執(zhí)行需要2循環(huán)的入口被指令解碼器解碼之后,線程O中執(zhí)行需要4循環(huán)的入口連接地被解碼,則執(zhí)行需要2循環(huán)的線程1的入口即使想要從保留站執(zhí)行,因?yàn)樵谙戎噶詈痛鎯?chǔ)于結(jié)果寄存器的定時(shí)相同,因此處于不能執(zhí)行的狀態(tài)。
在同步多線程的情況下,與單線程方式不同,即佳是在發(fā)生了無(wú)法從保留站執(zhí)行的入口的情況下,其他的線程能夠動(dòng)作而資源不會(huì)形成FULL的狀態(tài),因此不會(huì)如單線程那樣指令解碼器停止。
即,在同步多線程方式中,線程0的指令即使在執(zhí)行指令后也能夠完成,因此指令解碼器能夠?qū)⒕€程O的指令解碼。因此,線程O能夠繼續(xù)動(dòng)作而不會(huì)淨(jìng)止。
但是,線程l的入口處于無(wú)法從保留站執(zhí)行的狀態(tài),因此,無(wú)法完成指令而陷于桂起狀態(tài)。
即,在無(wú)法從保留站執(zhí)^f亍的狀態(tài)的情況下,將在一定期間無(wú)法完成指令的狀態(tài)(掛起狀態(tài))檢測(cè)為異常狀態(tài),CPU停止。
發(fā)明內(nèi)容
因此,本發(fā)明的目的在于,提供一種用于在同步多線程方式的處理中,在成為掛起狀態(tài)之前,使保留站的入口成為能夠執(zhí)行的狀態(tài)的指令執(zhí)行控制裝置以及指令執(zhí)行控制方法。
另外,本發(fā)明的其他的目的在于,提供一種用于在同步多線程方式的處理中,使保留站的入口成為能夠執(zhí)行的狀態(tài),并且防止性能大幅地降低的指令M控制裝置以及指令執(zhí)行控制方法。
8另外,本發(fā)明的其他的目的還在于,提供一種用于在同步多線程方式
的處理中,使保留站的入口成為能夠執(zhí)行的狀態(tài),并且防止CPU的停止
的指令執(zhí)行控制裝置以及指令執(zhí)行控制方法。
為了實(shí)現(xiàn)其目的,本發(fā)明的指令執(zhí)行控制裝置是多個(gè)線程以同步多線
程方式動(dòng)作而無(wú)序處理中進(jìn)行指令控制的指令執(zhí)行控制裝置,其具有解
碼指令的指令解碼器;運(yùn)算處理保留站,其接受來(lái)自指令解碼器的解碼結(jié)
果、控制運(yùn)算處理;主存儲(chǔ)器操作數(shù)生成用保留站,其控制存儲(chǔ)于主存儲(chǔ)器的操作數(shù)的地址的生成;指令控制機(jī)構(gòu),其按照程序的順序控制所執(zhí)行的指令以便完成指令;掛起防止電路,其在上述指令控制^I檢測(cè)到一個(gè)線程的指令在一定期間無(wú)法完成的情況下,進(jìn)行控制,以便將能夠從上述全部的保留站執(zhí)行的入口的線程選擇為與上述被檢測(cè)到在 一 定期間無(wú)法完成的線程相同的線程。
另外,本發(fā)明的指令執(zhí)行控制方法是多個(gè)線程以同步多線程方式動(dòng)作而無(wú)序處理中進(jìn)行指令控制的指令執(zhí)行控制方法,其具有通iti^算處理保留站,根據(jù)來(lái)自指令解碼器的解碼結(jié)果來(lái)生成入口,并將執(zhí)行準(zhǔn)備完的入口向運(yùn)算處理^J發(fā)行的步驟;由控制存儲(chǔ)于主存儲(chǔ)器的操作數(shù)的地址的生成的主存儲(chǔ)器操保留站,從上述指令生成入口,并將執(zhí)行準(zhǔn)備完成的入口向主存儲(chǔ)器操作數(shù)地址生成器發(fā)行的步驟;按照程序的順序控制所執(zhí)行的指令以便完成指令的步驟;在檢測(cè)到一個(gè)線程的指令在一定期間無(wú)法完成的情況下,將能夠從上述全部的保留站執(zhí)行的入口的線程選捧為與上述檢測(cè)到在一定期間無(wú)法完成的線程相同的線程的步驟。
另外,本發(fā)明優(yōu)選地,上述桂起防止電路具有線程選擇電路,其用于在檢測(cè)到在上述一定期間無(wú)法完成的情況下,將從上述保留站執(zhí)行的入口的線程選擇為與上述被檢測(cè)到在一定期間無(wú)法完成的線程相同的線程。
另外,本發(fā)明優(yōu)選地,上述掛起防止電路還具有可執(zhí)行選擇電路,其用于在上述線程選擇電路所選擇的線程和上述保留站的入口的線程一致時(shí),能夠?qū)⑸鲜鋈肟趶纳鲜霰A粽緢?zhí)行上述入口。
另外,本發(fā)明優(yōu)選地,上述線程選擇電路由隨著時(shí)間的經(jīng)過(guò)而變更選擇的線程的線程選擇電路構(gòu)成。另外,本發(fā)明優(yōu)選地,上述線程選擇電路根據(jù)表示動(dòng)作中線程的信號(hào)來(lái)禁止選擇不動(dòng)作的線程。
另外,本發(fā)明優(yōu)選地,上述掛起防止電路在上述未完成的指令完成時(shí)停止上述保留站的控制。
另外,本發(fā)明優(yōu)選地,上述保留站具有使來(lái)自上述指令解碼器的指令進(jìn)入到上述保留站的入口的入口生成電路;選擇能夠從上述保留站執(zhí)行的入口的選擇執(zhí)行入口選擇電路。
另外,本發(fā)明優(yōu)選地,上述運(yùn)算處理保留站在上述執(zhí)行的準(zhǔn)備完成的入口的定時(shí)和上述在先入口的執(zhí)行或者執(zhí)行結(jié)果的存儲(chǔ)定時(shí)不重疊的定時(shí),執(zhí)行上述執(zhí)行的準(zhǔn)備完成的入口。
在以同步多線程動(dòng)作時(shí),指令檢測(cè)到一定期間沒有完成的狀態(tài),4^P的保留站控制為僅僅能夠執(zhí)行所決定的線程,因此在無(wú)法從保留站執(zhí)行的入口存在的狀態(tài)下,通過(guò)停止持續(xù)執(zhí)行的線程的執(zhí)行,從而能夠4吏無(wú)法執(zhí)行的線程的入口成為能夠執(zhí)行的狀態(tài)。
圖l是本發(fā)明的信息處理裝置的一實(shí)施方式的框圖。
圖2是本發(fā)明的一實(shí)施方式的指令執(zhí)行控制裝置的構(gòu)成圖。
圖3是圖2的指令執(zhí)行控制裝置的動(dòng)作流程圖。
圖4是圖2的指令執(zhí)行控制裝置的動(dòng)作說(shuō)明圖。
圖5是通過(guò)圖2的指令執(zhí)行控制裝置進(jìn)行線程選擇動(dòng)作的說(shuō)明圖。
圖6是圖2的線程選擇電路的框圖。
圖7是圖6的可執(zhí)行選擇電路的執(zhí)行選擇處理流程圖。
圖8是圖6的線程選擇電路的線程選擇動(dòng)作的說(shuō)明圖。
圖9是圖2的浮點(diǎn)保留站的動(dòng)作說(shuō)明圖。
圖10是圖2的定點(diǎn)保留站的動(dòng)作說(shuō)明圖。
圖11是圖6的線程選擇電路的線程時(shí)間變更動(dòng)作的說(shuō)明圖。圖12是圖6的線程決定電路的電路圖。圖13是圖6的線程ID生成電路的電路圖。圖14是圖6的線程切換時(shí)間選擇電路的電路圖。圖15是以往的保留站的入口執(zhí)行動(dòng)作的說(shuō)明圖。圖16是以往的單線程方式的入口執(zhí)行動(dòng)作的說(shuō)明圖。圖17是以往的多線程方式的入口執(zhí)行動(dòng)作的說(shuō)明圖。附圖標(biāo)記說(shuō)明
1取指令地址生成器
2初級(jí)指令高速緩沖存儲(chǔ)器
3指令緩沖器
4指令解碼器
5、 6、 7保留站
10操作數(shù)地址生成器
12、 15運(yùn)算器
13、 16更新緩沖器
14、 17寄存器30線程選擇電路
50、 60、 70 入口生成電路
52、 62、 72可執(zhí)行選擇電路
56、 66、 76執(zhí)行入口選擇電路54主存儲(chǔ)器保留站
64、 74運(yùn)算處理保留站
具體實(shí)施例方式
以下,基于附圖按照信息處理裝置、指令執(zhí)行控制裝置、掛起防止機(jī)構(gòu)、線程選擇電路、其他實(shí)施方式的順序說(shuō)明本發(fā)明實(shí)施方式。但是,本發(fā)明不限于下述實(shí)施方式,能夠進(jìn)行各種變形。(信息處理裝置)
圖l是本發(fā)明的信息處理裝置的一實(shí)施方式的整體圖。如圖l所示初
級(jí)指令高速緩沖存儲(chǔ)器2和初級(jí)數(shù)據(jù)高速緩沖存儲(chǔ)器11,與連接于未圖示 的主存儲(chǔ)器的二級(jí)高速緩沖存儲(chǔ)器相連接。
為了取指令,取指令地址生成器1選擇指令地址,針對(duì)所選擇的指令 地址將取指令要求給與初級(jí)指令高速緩沖存儲(chǔ)器2。從初級(jí)指令高速緩沖 存儲(chǔ)器2取出的指令被存儲(chǔ)于指令緩沖器3。從指令緩沖器3按照程序的 順序?qū)χ噶罱獯a器4供應(yīng)指令。
指令解碼器4按照程序的順序進(jìn)行指令的解碼。指令解碼器4基于解 碼的指令種類來(lái)生成控制指令執(zhí)行的主存儲(chǔ)器操作數(shù)地址生成用保留站 單元(RSA: Reservation Station for Address generate) 5、定點(diǎn)運(yùn)算用保 留站單元(RSE: Reservation Station for Execute) 6、浮點(diǎn)運(yùn)算用保留站 單元(RSF: Reservation Station for Floating) 7、分支指令用保留站單元 (RSBR: Reservation Station for BRanch ) 8需要的入口 。
即,指令解碼器4將取出的指令按照順序解碼,將解碼的指令按照指 令的種類分別存儲(chǔ)于控制功能的執(zhí)行的保留站單元5、 6、 7、 8、 9。另夕卜, 保留站單元具備運(yùn)算用的保留站單元6、7和主存儲(chǔ)器操作數(shù)地址生成用的 保留站單元5。
另外,針對(duì)全部4皮解碼的指令在控制指令的完成的堆棧入口 (CSE: Commit Stack Entry) 9生成入口 。
,皮解碼的指令在RSA5生成入口時(shí),即使是在加栽指令的情況下, RSA5也指示^Mt數(shù)地址生成器10生成操作數(shù)地址,從初級(jí)數(shù)據(jù)高速緩沖 存儲(chǔ)器11讀出對(duì)應(yīng)的數(shù)據(jù)到定點(diǎn)更新緩沖器(GUB: General Update Buffer) 13和浮點(diǎn)更新緩沖器(FUB: Floating Update Buffer) 16。
另外,被解碼的指令在RSE6、 RSF7生成了入口的情況下,對(duì)各個(gè)運(yùn) 算器12 、 15進(jìn)行動(dòng)作,進(jìn)行對(duì)應(yīng)的運(yùn)算處理。被解碼的指令在RSA5 、 RSE6 、 RSF7生成入口的情況下,進(jìn)行與GUB13和FUB16對(duì)應(yīng)的寄存器重命名, 從而能夠進(jìn)行無(wú)序執(zhí)行,執(zhí)行結(jié)果存儲(chǔ)于GUB13、 FUB16。
通過(guò)保留站5、 6、 7,無(wú)序執(zhí)行的指令通過(guò)CSE9的控制,按照程序
12的順序進(jìn)行指令的完成。然后,僅僅對(duì)已完成的指令進(jìn)行定點(diǎn)寄存器14 或者浮點(diǎn)寄存器17或者程序計(jì)數(shù)器(PC, NEXT—PC ) 18、 19等的可編 程資源的更新。
分支預(yù)測(cè)機(jī)構(gòu)21通過(guò)來(lái)自分支指令用保留站8的指令進(jìn)行分支預(yù)測(cè), 控制取指令地址生成器l。
因此,如下所述通過(guò)保留站單元5、 6、 7、 8, M個(gè)運(yùn)算循環(huán)選擇線 程,并JLxt操作數(shù)地址生成器10、運(yùn)算器12、 15指示選擇的線程的入口 的執(zhí)行,并且進(jìn)行從寄存器14、 17選擇的線程的操作數(shù)數(shù)據(jù)的讀出、寫入, 執(zhí)行同步多線程處理。
(指令執(zhí)行控制裝置)
圖2是本發(fā)明的指令執(zhí)行控制裝置的一實(shí)施方式的框圖,圖3是圖2 的構(gòu)成的動(dòng)作流程圖,圖4是圖3的動(dòng)作的說(shuō)明圖,圖5是圖2至圖4的 動(dòng)作的執(zhí)行線程的說(shuō)明圖。圖2表示圖1的RSE5、 RSE6、 RSF7的詳細(xì) 圖。另外,在該實(shí)施方式中,針對(duì)兩個(gè)的線程(線程0和1)同步動(dòng)作的 情況進(jìn)行了說(shuō)明,但是即使線程數(shù)三個(gè)以上也能夠?qū)崿F(xiàn)。
圖2中,與圖1中所示的相同的部分利用相同符號(hào)表示,保留站單元 5、 6、 7分別由入口生成電路50、 60、 70、可執(zhí)行選擇電路52、 62、 72、 保留站54、 64、 74、執(zhí)行入口選擇電路56、 66、 76構(gòu)成。線程選擇電路 30連接于上述各可執(zhí)行選擇電路52、 62、 72。
該保留站單元5、 6、 7的入口與線程0和1共享使用。即,入口存儲(chǔ) 有表示作為入口有效的VALID信號(hào)、表示入口的線程的線程ID、表示 從架構(gòu)(architecture)寄存器讀出操作數(shù)數(shù)據(jù)的信號(hào)和讀出地址、表示從 寄存器更新緩沖器讀出的信號(hào)和讀出地址、指令解碼時(shí)表示按照每個(gè)指令 分配的指令的編號(hào)的指令標(biāo)識(shí)符等。
如圖6詳細(xì)說(shuō)明那樣,線程選擇電路30將一定時(shí)間沒有完成的指令根 據(jù)圖1的CSE9檢測(cè)從掛起防止模式切換為運(yùn)行模式,選擇掛起防止線程 ID。
可執(zhí)行選擇電路52、 62、 72,在掛起防止模式中比^V口生成電路50、 60、 70、保留站54、 64、 74的入口和線程選擇電路30的線程ID,選擇存執(zhí)行入口選擇電路56、 66、 76從保留站54、 64、 74的入口選擇存在 執(zhí)行可能性的入口,向功能執(zhí)行部IO、 12、 15發(fā)行。
說(shuō)明該動(dòng)作。多個(gè)線程在以同步多線程方式動(dòng)作的情況下,保留站54、 64、 74的執(zhí)行能夠以無(wú)序執(zhí)行。即,保留站54、 64、 74的入口,能夠從 用于執(zhí)行的需要的操作數(shù)數(shù)據(jù)的準(zhǔn)備完成的入口進(jìn)行執(zhí)行。
由選擇執(zhí)行的入口的執(zhí)行入口選擇電路46、 56、 66選擇的入口,從保 留站54、 64、 74執(zhí)行。執(zhí)行準(zhǔn)備完成的入口,同時(shí)存在幾個(gè)的情況下,執(zhí) 行入口選擇電路46、 56、 66按照被解碼的順序選擇入口而執(zhí)行。
另夕卜,從浮點(diǎn)用的保留站74執(zhí)行的入口,功能的執(zhí)行利用流水線處理 來(lái)執(zhí)行。如果功能的執(zhí)行完成,將功能的執(zhí)行結(jié)果存儲(chǔ)于結(jié)果寄存器。另 外,報(bào)告功能的執(zhí)行完成,向進(jìn)行指令的完成控制的功能CSE9報(bào)告執(zhí)行 的完成。
指令完成控制功能CSE9,按照程序的順序進(jìn)行完成的控制。如果功 能的執(zhí)行完成,能夠進(jìn)行指令的完成,但是由于按照程序的順序完成,因 此如果最早的指令沒有完成,則即使后續(xù)的指令的執(zhí)行完成,也無(wú)法進(jìn)行 指令的完成。指令的完成按照線程而完成,因此通過(guò)其他的線程,不會(huì)阻 礙指令的完成的控制,能夠進(jìn)行指令的完成。
另夕卜,如圖15說(shuō)明那樣,功能的執(zhí)行在流水線處理中執(zhí)行的結(jié)果存儲(chǔ) 于結(jié)果寄存器,保留站74選擇執(zhí)行的入口,以便存儲(chǔ)于結(jié)果寄存器的定時(shí) 不重疊。
參照?qǐng)D3至圖5說(shuō)明圖2的構(gòu)成的動(dòng)作。線程選擇電路30在通常運(yùn)行 狀態(tài)中,CSE9判斷是否發(fā)出檢測(cè)到一定時(shí)間沒有完成的指令的信號(hào) (S10 )。線程選擇電路30從CSE9接受了檢測(cè)到一定時(shí)間沒有完成的指令 的信號(hào),則將運(yùn)行模式變更為掛起防止模式(S12)。
在圖4表示的通常運(yùn)行時(shí),不關(guān)聯(lián)到線程選擇電路30,因此如圖5那 樣,從保留站5、 6、 7執(zhí)行的指令的線程,被各保留站5、 6、 7的各個(gè)選 擇的入口成為執(zhí)行的線程編號(hào)。即,如圖5所示,對(duì)保留站的入口選擇沒 有線程的制限,執(zhí)行的線程編號(hào)按照每個(gè)保留站5、 6、 7而不同。但是,
14各保留站5、 6、 7分別選擇,因此有時(shí)執(zhí)行線程編號(hào)偶然相同。
另一方面,在掛起防止模式時(shí),通過(guò)掛起防止模式中動(dòng)作的線程選擇 電路30,形成僅僅選擇的線程編號(hào)能夠執(zhí)行的線程編號(hào)。即,圖5那樣, 控制成從保留站5、 6、 7執(zhí)行的線程編號(hào)成為相同。
另夕卜,線程選擇電路30如果從CSE9得到一定時(shí)間未完成的指令完成 的通知,則如圖4那樣,返回通常運(yùn)行模式,停止線程選擇動(dòng)作(S 1 4 )。
這樣,通常運(yùn)行時(shí),保留站與線程無(wú)關(guān)地執(zhí)行能夠執(zhí)行的入口, ^ 掛起防止模式下,控制成只能執(zhí)行從各保留站決定的線程。
因此,與無(wú)法執(zhí)行的一個(gè)線程的入口相比,后續(xù)其他的線程的入口是 分別執(zhí)行的狀況,因此通過(guò)停止繼續(xù)執(zhí)行的其他的線程的執(zhí)行,能夠使無(wú) 法執(zhí)行的一個(gè)線程的入口成為能夠執(zhí)行的狀態(tài)。另夕卜,保留站不是原因時(shí), 即使在桂起狀態(tài)的情況下,保留站也被控制成僅僅能夠執(zhí)行決定的線程。
但是,如果進(jìn)行這樣的控制,則不是桂起狀態(tài)的線程的入口處于停止 執(zhí)行,因此,即使在掛起狀態(tài)的情況下,也能夠進(jìn)行不要大幅降低性能那 樣的控制,執(zhí)行處于桂起狀態(tài)的線程。
(桂起防止^ )
更詳細(xì)說(shuō)明圖2的指令執(zhí)行控制裝置。圖6是圖2的線程選擇電路30 的框圖,圖7是圖2、圖6的可執(zhí)行選擇電路的處理流程圖,圖8是圖6 的構(gòu)成的線程選擇方法的說(shuō)明圖,圖9是圖6的保留站的入口的執(zhí)行選擇 動(dòng)作的說(shuō)明圖,圖IO是圖6的定點(diǎn)保留站的入口的執(zhí)行選擇動(dòng)作的說(shuō)明圖。
圖6至圖9以圖2的浮點(diǎn)用保留站單元7的例子進(jìn)行說(shuō)明。另外,圖 2的定點(diǎn)用保留站單元6、 ^Mt數(shù)生成保留單元5也是同樣的構(gòu)成
通過(guò)圖6說(shuō)明線程選擇電路30的構(gòu)成。線程選擇電路30基本上沿著 時(shí)間軸交替變更線程編號(hào)而輸出。如圖6所示,線程選擇電路30具有定 時(shí)計(jì)數(shù)器32、線程切換時(shí)間選擇電路34、線程ID生成電路36、線程決定 電路38、掛起防止線程ID寄存器40、掛起防止模式起動(dòng)電路42。
掛起防止模式起動(dòng)電路42根據(jù)檢測(cè)到圖1的CSE9的一定時(shí)間沒有完 成的指令的檢測(cè)信號(hào),起動(dòng)線程切換時(shí)間選擇電路34、線程決定電路38、可執(zhí)行選擇電路52、 62、 72。
線程切換時(shí)間選擇電路34具備表示連續(xù)選擇相同線程的時(shí)間的線程 切換時(shí)間,如果是線程切換時(shí)間,則向線程決定電路38指示線程切換。線 程切換時(shí)間通過(guò)1循環(huán)加1的定時(shí)計(jì)數(shù)器32,若計(jì)數(shù)器的值成為某個(gè)值, 則能夠變更線程切換時(shí)間。
通過(guò)線程切換時(shí)間和定時(shí)計(jì)數(shù)器的計(jì)數(shù)器的值,線程決定電路38選擇 線程ID生成電路36的線程ID。線程ID生成電路36將與掛起防止線程 ID寄存器40的線程ID不同的線程ID向線程決定電路38輸出。該線程 決定電路38所選擇的線程為掛起防止線程ID,發(fā)送至可執(zhí)行選擇電路52、 62、 72,選擇能夠從保留站54、 64、 74執(zhí)行的入口。
因此,線程切換時(shí)間選擇電路34中通過(guò)選擇線程切換時(shí)間,能夠變更 隨著時(shí)間的經(jīng)過(guò)而選擇相同線程的時(shí)間。
接著,通過(guò)圖7說(shuō)明可執(zhí)行選擇電路52、 62、 72。在掛起防止模式中, 執(zhí)行入口選擇電路56、 66、 76的1循環(huán)前的循環(huán)中,判定保留站54、 64、 74的入口的線程與線考呈選擇電路30所選擇的線考呈是否一致(S22 )。如果 不一致,則ii^步驟S26。
另一方面,對(duì)于線程一致的入口,判定執(zhí)行準(zhǔn)備是否完成,如果執(zhí)行 準(zhǔn)備完成,則該入口決定為下一循環(huán)中的執(zhí)行入口選擇電路56、 66、 76 所選擇的可能性存在的入口 (S24)。例如,付與入口標(biāo)記(flag)。
相反,與選擇的線程不一致的入口,決定為下一循環(huán)的執(zhí)行入口選擇 電路所選擇的可能性沒有(S26)。
另外,在指令被解碼并且在保留站且新登錄到入口的循環(huán)中,判定從 入口生成電路50、 60、 70登錄的入口的線程與線程選擇電路30所選擇的 線程是否一致(S20)。如果不一致,則i^步驟S26。
另一方面,對(duì)于線程一致的入口,判定執(zhí)行準(zhǔn)備是否完成,如果執(zhí)行 準(zhǔn)備完成,該入口決定為下一循環(huán)中的執(zhí)行入口選擇電路56、 66、 76所選 擇的可能性存在的入口 (S24)。例如,付與入口標(biāo)記。
相反,與選擇的線程不一致的入口,決定為沒有下一循環(huán)的執(zhí)行入口
16選擇電路所選擇的可能性(S26)。
圖8中說(shuō)明線程選擇電路30的線程選擇例。從檢測(cè)到某個(gè)線程的指令 一定期間沒有完成時(shí),成為掛起防止模式,線程選擇電路30動(dòng)作。
如果移行到掛起防止模式,則最初是線程切換時(shí)間為l循環(huán)的模式, 線程選擇電路30中^ 1個(gè)循環(huán)選擇不同線程。
在定時(shí)計(jì)數(shù)器中,已計(jì)數(shù)100循環(huán)時(shí),桂起防止模式持續(xù)的情況下, 線程切換時(shí)間成為2個(gè)循環(huán)模式,線程選擇電路30按每2個(gè)循環(huán)選擇不同 線程。
在定時(shí)計(jì)數(shù)器已計(jì)數(shù)300循環(huán)時(shí),掛起防止模式持續(xù)的情況下,線程 切換時(shí)間成為4個(gè)循環(huán)模式,線程選擇電路30按每4個(gè)循環(huán)選擇不同線程。
在定時(shí)計(jì)數(shù)器已計(jì)數(shù)600循環(huán)時(shí),桂起防止模式持續(xù)的情況下,線程 切換時(shí)間成為16個(gè)循環(huán)模式,線程選擇電5^每16循環(huán)選擇不同線程。
這樣,線程選擇電路30所選擇線程隨著時(shí)間的經(jīng)過(guò),能夠以幾種類型 對(duì)在某一定期間連續(xù)選擇相同線程動(dòng)作的方式進(jìn)行變更。
另外,如果指令未完成的指令完成,則從掛起防止模式返回通常運(yùn)行 狀態(tài),那么線程選擇電路30也復(fù)位,再次處于掛起防止模式的情況下,從 最初的狀態(tài)(圖8的情況下,是按每1個(gè)循環(huán)選擇不同線程)選擇。
該掛起防止模式進(jìn)行動(dòng)作是,以同步多線程進(jìn)行動(dòng)作的線程在兩個(gè)以 上之時(shí),在單一線程動(dòng)作的情況下,因?yàn)闆]有選擇線程的必要,因此不會(huì) 形成桂起防止模式。另外,在形成掛起防止模式時(shí),存在沒有動(dòng)作的線程 的情況下,沒有動(dòng)作的線程能夠按照不會(huì)被線程選擇電路選擇的方式動(dòng) 作。
圖9是通過(guò)該線程選擇從圖17的狀態(tài),掛起防止模式起動(dòng)時(shí)的保留站 的控制狀態(tài)的圖。
在時(shí)刻Tl下掛起防止模式起動(dòng)。在時(shí)刻T2下,因?yàn)樵跁r(shí)刻T1下通 過(guò)線程選擇電路30選擇線程0,所以執(zhí)行線程O的入口。在時(shí)刻T3下, 在時(shí)刻T2下通過(guò)線程選擇電路30選擇線程1,但是在先指令和存儲(chǔ)于結(jié)果寄存器的定時(shí)相同,因此不能夠執(zhí)行。
在時(shí)刻T4下,時(shí)刻T3下通過(guò)線程選擇電路30選擇線程0,因此執(zhí)行 線程0的入口 。在時(shí)刻T5下,時(shí)刻T4下通過(guò)線程選擇電路30選擇線程 1,因此能夠執(zhí)行直到目前為止無(wú)法執(zhí)行的線程l的入口。在時(shí)刻T6下, 時(shí)刻T5下通過(guò)線程選擇電路30選擇線程0 ,因此執(zhí)行線程0的入口 。
之后,如果線程l的入口的指令完成,則保留站的控制從桂起防止模 式返回通常運(yùn)^f于狀態(tài)。
上述的說(shuō)明中是以浮點(diǎn)保留站為例子進(jìn)行了說(shuō)明。在定點(diǎn)保留站中, 存在如圖IO所示那樣的執(zhí)行入口的制約。即,對(duì)定點(diǎn)用的保留站而言,被 執(zhí)行的入口控制成直到功能的執(zhí)行完成為止不對(duì)后續(xù)的入口進(jìn)行功能的 執(zhí)行。
從保留站執(zhí)行的入口,是執(zhí)行需要2循環(huán)的入口 (在先指令),后續(xù) 的指令也執(zhí)行需要2循環(huán)的入口的情況下,圖10所示,在T1下從保留站 執(zhí)行在先指令。在T2的定時(shí)下,執(zhí)行后續(xù)指令的情況下,在先指令和執(zhí) 行(X)重疊,因此不能執(zhí)行,在T3的定時(shí)下能夠執(zhí)行。
因此,如果置換為浮點(diǎn)的入口執(zhí)行控制,則能夠進(jìn)行與圖9同樣的 線程的入口的執(zhí)行。
這樣,在多個(gè)線程以同步多線程進(jìn)行動(dòng)作時(shí),通過(guò)存儲(chǔ)于功能的執(zhí) 行的結(jié)果寄存器的定時(shí)或功能的執(zhí)行的定時(shí),無(wú)法從保留站執(zhí)行的入口在 掛起防止模式中通過(guò)選擇從保留站執(zhí)行的入口的線程,能夠執(zhí)行,能夠防 止掛起狀態(tài)。
接著,對(duì)這樣變更切換循環(huán)的優(yōu)點(diǎn)進(jìn)行說(shuō)明。圖ll表示以同步多線 程進(jìn)行動(dòng)作時(shí),得到取指令數(shù)據(jù)的時(shí)間需要長(zhǎng)時(shí)間,因此保留站的線程1 的入口 ,因存在未被指令解碼器解碼指令的原因而形成桂起防止模式的情 況的例子。該例子是下述的狀況,即線程O中執(zhí)行需要2循環(huán)的入口連續(xù), 在定點(diǎn)用的保留站上,在從指令解碼器解碼而執(zhí)行時(shí),生成線程l中執(zhí)行 所需要2循環(huán)的入口時(shí)的狀況。
如圖ll所示,在時(shí)刻T1下,線程選擇電路30在1循環(huán)模式中選擇 線程0。在時(shí)刻T2下通過(guò)線程選擇電路30能夠執(zhí)frML選擇的線程0的入口。這時(shí),線程選擇電路30為了 l循環(huán)模式而選擇線程l。
在時(shí)刻T3下,即使因?yàn)閳?zhí)行所需的操作數(shù)數(shù)據(jù)已準(zhǔn)備好而想^L行 處于執(zhí)行可能的入口,也因與在先指令的執(zhí)行重疊而無(wú)法執(zhí)行。這時(shí),線 程選擇電路因?yàn)槭?循環(huán)模式而選擇線程0。在時(shí)刻T4下,執(zhí)行線程O, 線程選擇電路30選擇線程1,在時(shí)刻T5下,無(wú)法執(zhí)行線程l。
這時(shí),通過(guò)線程切換時(shí)間從l循環(huán)模式變更為2循環(huán)模式。然后, 在時(shí)刻T7下,通過(guò)線程選擇電路30選擇線程1,在時(shí)刻T8下,能夠執(zhí) 行線程l
圖11中,不是掛起狀態(tài)的線程O的指令的執(zhí)行需要的時(shí)間是2循環(huán), 因此線程1的入口在成為2循環(huán)模式時(shí)能夠執(zhí)行。但是,線程0的指令在 執(zhí)行需要的時(shí)間是4循環(huán)的情況下,如果不成為4循環(huán)模式,則不能夠執(zhí) 行線程l的入口。
這樣,在成為桂起防止模式而不是因?yàn)楸A粽镜闹苯拥脑虻那闆r 下,對(duì)于功能的執(zhí)行對(duì)后續(xù)指令進(jìn)行阻止(block)處理的執(zhí)行控制,優(yōu)選 能將作為掛起防止模式的線程選擇方法的連續(xù)選擇同一線程的時(shí)間設(shè)定 為、比功能的執(zhí)行需要的最長(zhǎng)時(shí)間還長(zhǎng)的時(shí)間。
因此,線程選擇電路能夠隨著時(shí)間的經(jīng)過(guò)變更選擇的線程,通過(guò)連 續(xù)選擇相同的線程的時(shí)間,進(jìn)行線程切換的控制。
另外,通過(guò)時(shí)間,也能夠變更連續(xù)選#^目同的線程的時(shí)間。
能夠僅僅執(zhí)行線程選擇電路所選擇線程的入口 ,因此可以預(yù)想比通 常運(yùn)行時(shí)性能更低,在線程選擇電路中,連續(xù)選擇相同的線程的時(shí)間越長(zhǎng), 則性能越低,因此,通it^長(zhǎng)階段性選擇相同線程的時(shí)間,能夠延遲大幅 降低性能的發(fā)生。
(線程選擇電路)
接著,針對(duì)選擇上述線程的線程選擇電路30進(jìn)行說(shuō)明。上述線程選擇 電路30由邏輯電路構(gòu)成。圖12是圖6的線程決定電路38的電路圖,圖 13是線程ID生成電路36的電路圖,圖14是線程切換時(shí)間選擇電路34的 電路圖。在圖12中,線程決定電路38由與門380、或門382、 4個(gè)與門 384-1~384-4構(gòu)成。在該圖11中,+warning—to _hung_mode_valid
信號(hào)是表示將桂起防止模式的信號(hào)^存一次的^號(hào)。 +multi—thread一mode信號(hào)是表示以多線程狀態(tài)運(yùn)行的信號(hào)。與門 380是掛^防止模(,并且在多線程狀態(tài)時(shí)打開。即,不是掛起防止模式 或者不是多線程狀態(tài)(單線程狀態(tài))的情況下不動(dòng)作。
另夕卜,+HUNG—THREADID—lT_MODE信號(hào)是表示按照每1個(gè)循 環(huán)變更選擇的線禾呈的信號(hào),+next_1t—mode_thread—id信號(hào)表示選 擇的線程。表示該選擇線程的信號(hào)叾圖12得到。
其組合具備l循環(huán)、2循環(huán)、4循環(huán)、16循環(huán)的4個(gè)組合,從4個(gè) 與門384-1-384-4中選擇的一個(gè)線程,通過(guò)或門382而輸入與門380,形成 下一循環(huán)的掛起防止線程id。
接著,圖13的線程id生成電路是決定1循環(huán)、2循環(huán)、4循環(huán)、16 循環(huán)的線程的電路。在l循環(huán)模式時(shí),每個(gè)循環(huán)線程變更,因此通過(guò)反轉(zhuǎn) 電路360將表示掛起防止線程i d的+hung—modejthreadjd的極 性反轉(zhuǎn)。
如果表示從線程變更后經(jīng)過(guò)了 2 循環(huán)的 +2t_mode_thread—id—change接通,貝'j 2循環(huán)模式的電路362、 364 、 366通過(guò)與門 366將表示桂起防止線禾呈i d 的 +hung_mode_thread_id 的極性反轉(zhuǎn)。另夕卜,若 +2t—mode_thread—id—change關(guān)閉,則從與門364輸出表示掛起 防止線程id的+hung—mode—thread_id。
或門362的輸出,如果+2tjmode一threa—idj:hange接通,
則變更線程,如果關(guān)閉,則輸出^一變更線i的信號(hào)。
如;^示經(jīng)過(guò)了 4循環(huán)的+4t—MODE—THREAD—IDj:HANGE和 表示經(jīng)過(guò)了 16循環(huán)的+16tmodethreadid—change接通,貝'j 4 循環(huán)和16循環(huán)也通過(guò)同樣的兩個(gè)與門370、 372和376和378和與門368、 374的組合電路變更線程。
另外,圖14是線程切換時(shí)間的變更電路。表示輸出到與門342的掛
20起防止模式的+SET—WARNING—TOJHUNG—MODE接通,表示將該信號(hào) 鎖存一次、+WARNING—TO_HUNG_MODE_VALID關(guān)閉時(shí),從與門342、 或門340起動(dòng)l循環(huán)模k。
成為桂^防止^式的開始。)
如果1循環(huán)模式開始,則表示切換為2循環(huán)模式的時(shí)間的、+1T_ MODE_TIMER_CHANG信號(hào)關(guān)閉,表示1循環(huán)模式的、+HUNG _THREAD_ID_lT_MODE接通時(shí),從與門352通過(guò)與門344繼續(xù)1循環(huán) &。
——
1循環(huán)模式中,如果到了切換時(shí)間,+1T—MODE—TIMER _CHANGE 信號(hào)接通,通過(guò)與門356、或門354、與門346變更j 2循環(huán);^式。
同樣,就從2循環(huán)到4循環(huán),從4循環(huán)到16循環(huán)的模式變更而言也 是同樣的電路。即,是與門353、 355和或門351、與門348、與門359、 349和或門357、與門350的構(gòu)成。
這樣,線程切換時(shí)間有效時(shí),僅僅采用桂起防止中,將表示掛起防
止模式和表示鎖存一次的信號(hào)取與。該信號(hào)成為線程切換信號(hào),鎖存一次 信號(hào)如圖12所示能夠選擇線程。
(其他的實(shí)施方式)
在上述的實(shí)施方式中以兩個(gè)線程(線程0和1)同時(shí)動(dòng)作的同步多線 程方式進(jìn)行了說(shuō)明,也適用于三個(gè)以上的線程同時(shí)動(dòng)作。
以上,通過(guò)本發(fā)明的實(shí)施方式進(jìn)行了說(shuō)明,但是在本發(fā)明的要旨的 范圍內(nèi)本發(fā)明能夠進(jìn)行各種變形,不能將其從本發(fā)明的范圍中排出。
產(chǎn)業(yè)上的可利用性
在以同步多線程動(dòng)作之時(shí),檢測(cè)到指令一定期間沒有完成的狀態(tài),全 部的保留站控制為僅僅能夠執(zhí)行所決定的線程,因此在從保留站無(wú)法執(zhí)行 的入口存在的狀態(tài)下,通過(guò)停止持續(xù)執(zhí)行的線程,能夠使無(wú)法執(zhí)行的線程 的入口成為能夠執(zhí)行的狀態(tài)。
權(quán)利要求
1.一種指令執(zhí)行控制裝置,其是執(zhí)行包括多個(gè)指令的多個(gè)線程的指令執(zhí)行控制裝置,其特征在于,具有指令解碼器,用于解碼指令;運(yùn)算處理保留站,其接受來(lái)自指令解碼器的解碼結(jié)果、控制運(yùn)算處理;主存儲(chǔ)器保留站,其控制存儲(chǔ)于主存儲(chǔ)器的操作數(shù)的地址的生成;指令控制機(jī)構(gòu),其按照程序的順序控制所執(zhí)行的指令以便完成指令;掛起防止電路,其在所述指令控制機(jī)構(gòu)檢測(cè)到一個(gè)線程的指令在一定期間無(wú)法完成的情況下,進(jìn)行控制,以便將能夠從所述全部的保留站執(zhí)行的入口的線程選擇為與所述被檢測(cè)到在一定期間無(wú)法完成的線程相同的線程。
2. 根據(jù)權(quán)利要求l所述的指令執(zhí)行控制裝置,其特征在于,所述掛起防止電路具有線程選擇電路,其用于在檢測(cè)到在所述一定 期間無(wú)法完成的情況下,將從所述保留站執(zhí)行的入口的線程選擇為與所 述被檢測(cè)到在一 定期間無(wú)法完成的線程相同的線程。
3. 根據(jù)權(quán)利要求2所述的指令執(zhí)行控制裝置,其特征在于,所述掛起防止電路還具有可執(zhí)行選擇電路,其用于在所述線程選擇 電路所選擇的線程和所述保留站的入口的線程一致時(shí),能夠從所述保留 站執(zhí)行所述入口。
4. 根據(jù)權(quán)利要求2所述的指令執(zhí)行控制裝置,其特征在于,所述線程選擇電路由隨著時(shí)間的經(jīng)過(guò)而變更選擇的線程的線程選 擇電路構(gòu)成。
5. 根據(jù)權(quán)利要求2所述的指令執(zhí)行控制裝置,其特征在于,所述線程選擇電路根據(jù)表示動(dòng)作中線程的信號(hào)來(lái)禁止選擇不動(dòng)作 的線程。
6. 根據(jù)權(quán)利要求l所述的指令執(zhí)行控制裝置,其特征在于, 所述掛起防止電路在所述未完成的指令完成時(shí)停止所述保留站的控制。
7. 根據(jù)權(quán)利要求l所述的指令執(zhí)行控制裝置,其特征在于, 所述保留站具有入口生成電路,其使來(lái)自所述指令解碼器的指令進(jìn)入到所述保留站;執(zhí)行入口選擇電路,其選擇能夠從所述保留站執(zhí)行的入口。
8. 根據(jù)權(quán)利要求l所述的指令執(zhí)行控制裝置,其特征在于,所述運(yùn)算處理保留站在所述執(zhí)行的準(zhǔn)備完成的入口的定時(shí)和所述 在先入口的執(zhí)行定時(shí)或者執(zhí)行結(jié)果的存儲(chǔ)定時(shí)不重疊的定時(shí),執(zhí)行所述 執(zhí)行的準(zhǔn)備完成的入口。
9. 一種指令執(zhí)行控制方法,其是執(zhí)行包括多個(gè)指令的多個(gè)線程的 指令執(zhí)行控制方法,具有以下步驟由運(yùn)算處理保留站,根據(jù)來(lái)自指令解碼器的解碼結(jié)果來(lái)生成入口, 并將執(zhí)行準(zhǔn)備完成的入口向運(yùn)算處理機(jī)構(gòu)發(fā)行的步驟;由控制存儲(chǔ)于主存儲(chǔ)器的操作數(shù)的地址的生成的主存儲(chǔ)器操保留 站,從所述指令生成入口,并將執(zhí)行準(zhǔn)備完成的入口向主存儲(chǔ)器操作數(shù) 地址生成器發(fā)行的步驟;按照程序的順序控制所執(zhí)行的指令以便完成指令的步驟;在檢測(cè)到一個(gè)線程的指令在一定期間無(wú)法完成的情況下,將能夠從 所述全部的保留站執(zhí)行的入口的線程選擇為與所述檢測(cè)到在一定期間 無(wú)法完成的線程相同的線程的步驟。
10. 根據(jù)權(quán)利要求9所述的指令執(zhí)行控制方法,其特征在于,所述選擇步驟具有下述步驟,即其在檢測(cè)到在所述一定期間無(wú)法 完成的情況下,起動(dòng)線程選擇電路,將從所述保留站執(zhí)行的入口的線程 選擇為與被檢測(cè)到所述在 一 定期間無(wú)法完成的線程相同的線程的步驟。
11. 根據(jù)權(quán)利要求10所述的指令執(zhí)行控制方法,其特征在于, 所述選擇步驟還具有判斷所述線程選擇電路所選擇的線程和所述保留站的入口的線程 是否一致的步驟;在所述判定為一致時(shí),能夠從所述保留站執(zhí)行所述入口的步驟。
12. 根據(jù)權(quán)利要求10所述的指令執(zhí)行控制方法,其特征在于, 所述選擇步驟具有隨著時(shí)間的經(jīng)過(guò)而變更選擇的線程的步驟。
13. 根據(jù)權(quán)利要求10所述的指令執(zhí)行控制方法,其特征在于,所述線程選擇步驟具有根據(jù)表示動(dòng)作中線程的信號(hào)來(lái)禁止選擇不 動(dòng)作的線程的步驟。
14. 根據(jù)權(quán)利要求9所述的指令執(zhí)行控制方法,其特征在于, 具有在所述未完成的指令完成時(shí)結(jié)束所述選擇步驟的步驟。
15. 根據(jù)權(quán)利要求9所述的指令執(zhí)行控制方法,其特征在于,具有所述運(yùn)算處理保留站在所述執(zhí)行的準(zhǔn)備完成的入口的定時(shí)和 所述在先入口的執(zhí)行定時(shí)或者執(zhí)行結(jié)果的存儲(chǔ)定時(shí)不重疊的定時(shí),執(zhí)行 所述執(zhí)行的準(zhǔn)備完成的入口的步驟。
全文摘要
在用于將多個(gè)線程以同步多線程方式動(dòng)作的指令執(zhí)行控制裝置中設(shè)置了線程選擇電路(30),其在以同步多線程動(dòng)作之時(shí),檢測(cè)到指令在一定期間無(wú)法完成的狀態(tài),則控制全部的保留站(5、6、7)僅能夠以決定的線程執(zhí)行。在無(wú)法從保留站(5、6、7)執(zhí)行的入口存在的狀態(tài)時(shí),通過(guò)停止連續(xù)執(zhí)行的線程的執(zhí)行,能夠?qū)o(wú)法執(zhí)行的線程的入口形成為能夠執(zhí)行的狀態(tài)。
文檔編號(hào)G06F9/38GK101681261SQ20078005342
公開日2010年3月24日 申請(qǐng)日期2007年6月20日 優(yōu)先權(quán)日2007年6月20日
發(fā)明者吉田利雄, 秋月康伸 申請(qǐng)人:富士通株式會(huì)社