專利名稱:高速緩存控制裝置以及控制方法
技術領域:
本發明涉及在SMT(Simultaneous Multi Thread:同步多線程)方式 的處理器上所用的高速緩存控制裝置以及控制方法,特別是涉及在SMT 方式的處理器中,不使高速緩存訪問處理所需要的資源單純地按線程數 量增加而能夠有效地利用該資源來執行高速緩存訪問處理的高速緩存
控制裝置以及控制方法。
背景技術:
SMT方式的處理器是同時執行多個線程的處理器。在此SMT方式 的處理器中,由于多個線程共享高速緩存,所以就需要構筑其構成不同 于在單線程方式的處理器中所用的高速緩存控制的構成的高速緩存控 制。
圖12中圖示在單線程方式的處理器中所用的高速緩存控制之構成。
在這里,圖中所示的100是命令控制部,200是高速緩存控制部, 201是高速緩存RAM, 202是取指端口 (Fetch Port), 203是 TOQ(Top-Of-Queue:隊列頂端)控制電路,204是優先順序控制電路。
如圖12所示那樣,來自命令控制部100的高速緩存訪問的請求暫 且被高速緩存控制部200中的具有多個入口 (entry)的取指端口 202 所保持。
各個訪問請求按著程序上的順序被依次分配給取指端口 202,取指 端口 202的各入口被循環使用。例如,在取指端口 202具有16個入口 (FP洲 FP弁15)的情況下,從FP洲起被依次分配各訪問請求,在FP弁15 之后分配給FP#0。
取指端口 202的各入口保持訪問請求直到所請求的高速緩存訪問處 理完成為止,并在所請求的高速緩存訪問處理已完成的時刻開放訪問請 求。由TOQ控制電路203輸出的FP-TOQ(Fetch-Port誦Top-Of-Queue)指示處理尚未完成的最舊的取指端口 202的入口編號。
為了高速緩存訪問處理而讀出的取指端口 202的入口選擇,在不按 順序處理高速緩存訪問的情況下,雖然沒有必要一定依賴于取指端口 202的分配順序,基本上選擇任意入口的訪問請求來進行處理也無妨, 但實際上是通過優先順序控制電路204設置優先順序來進行選擇。
圖13中表示由優先順序控制電路204執行的優先順序控制處理。
亦即、優先順序控制電路204,第一,在尚未進行過一次高速緩存 訪問的入口 、或者因高速緩存未命中及數據的順序性保證等而指示了針 對在取指端口 202使其待機的訪問請求的再處理的入口存在一個以上的 情況下,在這些入口之中優先選擇最靠近FP-TOQ的入口。
然后,第二,在雖然不適用第一優先順序的條件但被分配了訪問請 求的情況,也就是說有效的入口存在一個以上的情況下,優先選擇在這 些入口之中最靠近FP-TOQ的入口。
以往的SMT方式的處理器中使用的高速緩存控制,以原封不動地 利用這樣構成的單線程方式的處理器中使用的高速緩存控制的方式來 實現。
亦即,在以往的SMT方式的處理器中使用的高速緩存控制,對每 個線程設置具有規定的入口數的取指端口,通過如圖13所示那樣的優 先順序控制對每個線程選擇優先順序最高的訪問請求,并通過進行線程 間的優先順序控制從其中選擇最終的訪問請求。
在這里,作為與本發明相關聯的技術,在下記專利文獻l中記載有 如下發明,即在SMT方式的處理器中,實現保證線程間的共享數據的 讀出以及寫入的執行順序的 一致性。
專利文獻1: WO2004/068361號公報
如上述那樣,以往的SMT方式的處理器中使用的高速緩存控制, 以原封不動地利用在單線程方式的處理器中使用的高速緩存控制的方 式來實現,對每個線程設置具有規定的入口數的取指端口,通過圖13 所示那樣的優先順序控制對每個線程選擇優先順序最高的訪問請求,通 5過進行線程間的優先順序控制來從其中選擇最終的訪問請求。
但是,若根據這樣的現有技術,就有不可避免地增加高速緩存訪問 處理所需要的資源這種問題。
亦即、在以往的SMT方式的處理器中使用的高速緩存控制,當在 單線程方式的處理器中使用的高速緩存控制中使用例如16個入口的取 指端口,且線程為n個的情況下,就要準備n個該具有16個入口的取 指端口,由此不可避免地增加資源。
進而,在現有技術中,還有未有效率地利用高速緩存訪問處理所需 要的資源這種問題。
亦即、如果用線程為2的情況來進行說明,則會發生一方的線程發 出的訪問請求的頻率大于另一方的線程發出的訪問請求的頻率的情況。
即便在從最初就得知這種情況將會發生的情況下,在現有技術中也 是為一方的線程例如準備具有16個入口的取指端口,并為另一方的線 程準備具有與其相同的16個入口的取指端口。
這樣,為發出較少的訪問請求的線程而準備的取指端口就具有超過 需要的較多的入口,因此,未有效地利用取指端口。
而且,線程發出的訪問請求的頻率會伴隨于數據處理的推進而變化。
即便在這種情況將會發生的情況下,在現有技術中也是對2個線程 準備例如具有16個入口的取指端口那樣準備具有被固定的入口數的取 指端口。
這樣,即便在一方的線程發出的訪問請求的頻率大于另一方的線程 發出的訪問請求的頻率的情況下,也與其沒有關系地使用相同入口數的 取指端口,因此,未有效地利用取指端口。
發明內容
本發明就是鑒于這種情況而完成的,其目的是提供一種能夠在SMT 方式的處理器中,不使高速緩存訪問處理所需要的資源增加而能夠有效地利用該資源來執行高速緩存訪問處理的新的高速緩存控制技術。
為了實現此目的,本發明的高速緩存控制裝置,為了控制針對同時
執行的多個線程所共享的高速緩存的訪問請求,而構成為具備(1)端口單元,以被線程共享的方式而設置,且具有多個入口并在這些入口保持訪問請求;(2)控制單元,以如下方式進行控制,即通過將各線程發出的訪問請求登記在分配給該線程的端口單元的端口部分,來結合線程構成分割使用端口單元;(3)第1選擇單元,與各線程對應而被設置,并將端口單元保持的該線程已發出的訪問請求作為輸入,根據規定的優
先控制來選擇訪問請求;(4)第2選擇單元,將第l選擇單元已選擇的訪問請求作為輸入,并按照線程選擇信號來選擇最終的訪問請求;(5)切換單元,在線程的處理結束時,將線程選擇信號所指的線程從該處理已結束的線程切換到另外的線程;(6)測量單元,測量各線程發出的訪問請求的頻率;(7)第1決定單元,基于測量單元的測量結果來決定分配給各線程的端口部分;(8)檢測單元,檢測是否處于僅一個線程動作的動作模式;(9)第2決定單元,在檢測單元檢測出處于僅一個線程動作的動作模式的情況下決定對該線程分配端口單元具有的全部的端口部分。
這樣構成的本發明的高速緩存控制裝置,以如下方式進行控制,即,在將訪問請求登記在端口單元的情況下,將各線程發出的訪問請求登記在分配給該線程的端口單元的端口部分,據此來結合線程構成分割使用端口單元。
而且,在選擇端口單元上所登記的訪問請求的情況下,對每個線程從端口單元保持的該線程已發出的訪問請求之中根據規定的優先控制
來選擇訪問請求,并從該已選擇的訪問請求之中按照線程選擇信號來選擇最終的訪問請求。
這樣,本發明的高速緩存控制裝置,在被用于SMT方式的處理器時以如下方式進行控制,即,若不是對每個線程準備端口單元,例如是以準備一個具有16個入口的端口單元,線程為兩個的情況進行說明,則,例如根據兩個線程的訪問請求的頻率之比例,對兩個線程分別分配8個入口,或者對一方的線程分配10個入口 ,同時對另一方的線程分配6個入口,如此來結合線程構成分割使用端口單元。按照這一構成,根據本發明就能夠以較少的資源執行SMT方式的處理器中的高速緩存訪問處理。
在采取此構成時,本發明的高速緩存控制裝置,在線程的處理結束時,將線程選擇信號所指的線程從該處理已結束的線程切換到另外的線程。
據此,就能夠防止僅特定的線程所發出的訪問請求被持續選擇這種不理想情況的發生。
而且,在采取此構成時,本發明的高速緩存控制裝置,測量各線程發出的訪問請求的頻率,并基于該測量結果來決定分配給各線程的端口部分。
據此,就能夠對訪問請求的頻率較大的線程較多地分配入口數,由此就能夠有效地使用端口單元。
而且,在釆取此構成時,本發明的高速緩存控制裝置,檢測是否處于僅一個線程動作的動作模式,在檢測出處于僅一個線程動作的動作模式的情況下,決定對該線程分配端口單元所具有的全部的端口部分。
據此,就能夠在處于僅一個線程動作的動作模式的情況下對該線程分配全部入口,由此就能夠有效地使用端口單元。
如以上所說明的那樣,根據本發明,就能夠在SMT方式的處理器中不使高速緩存訪問處理所需要的資源增加而能夠有效地利用該資源來執行高速緩存訪問處理。
而且,根據本發明,由于能夠有效地利用資源來執行高速緩存訪問處理,所以就能夠提高線程的數據處理效率。
圖l是應用本實施例的CPU的構成圖。
圖2是具備本實施例的一級高速緩存控制部的一實施例。
圖3是線程選擇信號控制電路的構成圖。
8圖4是輸入到線程選擇信號控制電路的線程處理完成報告的說明圖。
圖5是線程內優先順序控制電路執行的流程圖。 圖6是線程內優先順序控制電路執行的流程圖。 圖7是線程間優先順序控制電路執行的流程圖。 圖8是負荷監視電路的說明圖。
圖9是具備負荷監視電路時的取指端口的使用狀態的說明圖。 圖10是線程模式檢測電路的說明圖。
圖11是具備線程模式檢測電路時的取指端口的使用狀態的說明圖。
圖12是單線程方式的處理器中使用的高速緩存控制的構成圖。
圖13是單線程方式的處理器中使用的取指端口的入口選擇的優先 順序控制的流程圖。
附圖標記說明
1 CPU
2系統控制總線 10命令/運算控制部 20 —級高速緩存控制部 21高速緩存RAM 22取指端口
23 TOQ控制電路
24 FP分割方式i史定電路
25線程內優先順序控制電路26線程選擇信號控制電路
27線程間優先順序控制電路
28負荷監視電路
29線程模式檢測電路
30 二級高速緩存控制部
31高速緩存RAM
具體實施例方式
下面利用實施方式詳細地i兌明本實施例。 在圖1中圖示應用本實施例的CPU1的構成。
應用本實施例的CPU1具備命令/運算控制部10,發出命令的取 出請求及運算數據的反映請求; 一級高速緩存控制部20,具有高速/小 容量的高速緩存RAM21,并執行如下處理,即,接受命令/運算控制部 IO發出的訪問請求,在該訪問請求的數據已保存在高速緩存RAM21中 的情況下,將該數據返回到命令/運算控制部10; 二級高速緩存控制部 30,具有低速/大容量的高速緩存RAM31,并執行如下處理,即,在命 令/運算控制部10發出的訪問請求的數據已保存在高速緩存RAM31中 的情況下,將該數據返回到命令/運算控制部10并且登記在高速緩存 RAM21中,而在未保存在高速緩存RAM31中的情況下,經由系統控 制總線2請求未圖示的存儲器轉送數據。
在圖2中圖示具備本實施例的一級高速緩存控制部20的一實施例。
在這里,假設本實施例的一級高速緩存控制部20,被安裝在線程O 和線程1這2個線程進行動作的SMT方式的處理器中,并且假設使用 具有16個入口的取指端口。
本實施例的一級高速緩存控制部20如圖2所示那樣具備高速緩 存RAM21、取指端口 22、 TOQ控制電路23、 FP分割方式i殳定電路24、 線程內優先順序控制電路25-0、線程內優先順序控制電路25-l、線程選
10擇信號控制電路26和線程間優先順序控制電路27。
取指端口 22具有多個入口 ,按照FP分割方式設定電路24設定的 分割方式,通過TOQ控制電路23將這些入口分割成2方而^f吏用,在其 一方的入口部分保持線程O發出的訪問請求,并且在另一方的入口部分 保持線程1發出的訪問請求。
例如,在取指端口 22具有16個入口(FP洲 FP弁15),并且FP分割 方式設定電路24將16個入口分割成FP#0~FP#7和FP#8~FP#15這兩 方的情況下,線程0發出的訪問請求沿著程序的順序被依次分配給 FP#0~FP#7,該8個入口被循環使用,而且,線程l發出的訪問請求沿 著程序的順序被依次分配給FP#8~FP#15,該8個入口被循環使用。
在這里,取指端口 22的各入口保持訪問請求直到所請求的高速緩 存訪問處理完成為止,并在所請求的高速緩存訪問處理已完成的時刻開 放訪問請求。
TOQ控制電路23以線程0和線程1共用的方式而設置,并對如下 處理進行控制按照FP分割方式設定電路24設定的分割方式將取指端 口 22的入口分割成兩方而使用,TOQ控制電路23利用FP-TOQ-TH0 指示保持線程O發出的訪問請求之中的處理尚未完成的最舊的訪問請求 的取指端口 22的入口編號,并且利用FP-TOQ-TH1指示保持線程1發 出的訪問請求之中的處理尚未完成的最舊的訪問請求的取指端口 22的 入口編號。
FP分割方式設定電路24,例如在動作開始以前,依照線程0、 l發 出的訪問請求的負荷的比例(訪問請求的頻率的比例)來決定取指端口 22的分割方式,并通知給TOQ控制電路23。例如,決定將取指端口 22的入口分割成FP#0~FP#7和FP#8~FP#15這兩方,并通知給TOQ控 制電路23。
線程內優先順序控制電路25-0,與線程O對應而設置,并為線程0 請求的高速緩存訪問處理選擇取指端口 22的入口,并從該入口取出訪 問請求。
線程內優先順序控制電路25-l,與線程l對應而設置,并為線程l請求的高速緩存訪問處理選擇取指端口 22的入口,并從該入口取出訪 問請求。
線程選擇信號控制電路26生成在使線程0優先時顯示"0",在使 線程l優先時顯示'T,的線程選擇信號(thread-select)。
線程間優先順序控制電路27,當必須在線程間決定優先順序時,按 照線程選擇信號控制電路26生成的線程選擇信號,選擇線程內優先順 序控制電路25-0輸出的訪問請求,或者選擇線程內優先順序控制電路 25-1輸出的訪問請求,并按照該選擇的訪問請求對高速緩存RAM21進 行索引。
在圖3中圖示線程選擇信號控制電路26之構成例。
線程選擇信號控制電路26如圖3所示那樣具備保持并輸出線程 選捧信號的閂鎖電路260;第1邏輯電路261,由兩個與(AND)門和 一個或(OR)門構成,并且在閂鎖電路260輸出"0"時并且通知了線 程0的處理完成報告(具有'T,的值)時輸出"1",而在閂鎖電路260 輸出"1"時并且通知了線程1的處理完成^l告(具有"1"的值)時輸出 "0"; 第2邏輯電路262,由異或(EOR)門構成,并且計算閂鎖電 路260的輸出信號與第l邏輯電路261的輸出信號的"異或"值并提供 給閂鎖電路260。
按照這一構成,線程選擇信號控制電路26以如下方式進行控制 在線程0的處理結束時,將線程選擇信號所指的線程從線程0切換到線 程l,在線程l的處理結束時,將線程選擇信號所指的線程從線程l切 換到線程O,據此,在基于線程間竟爭決定優先順序時,能夠以防止任 意一個線程的高速緩存訪問處理持續輸掉的情況的方式進行控制。
在這里,如圖4所示那樣,向線程選擇信號控制電路26,輸入從取 指端口 22通知給命令/運算控制部10的線程0的處理完成報告,并且 輸入從取指端口 22通知給命令/運算控制部10的線程1的處理完成凈艮 告。
線程選擇信號控制電路26生成的線程選擇信號是用于在線程間發 生了同時進行訪問請求處理及資源獲得這種竟爭時,決定處理對象的線程的信號。在此例子中,使用分配給取指端口 22的存儲器訪問處理的 完成信號、也就是取指端口 22的入口的開放信號來進行控制。例如若 是下載命令則以向命令/運算控制部10傳送對象數據為前提完成處理, 若是存儲命令則以保證順序控制為前提完成處理。
在圖5中以流程圖的形式來圖示線程內優先順序控制電路25-0執行 的處理,在圖6中以流程圖的形式來圖示線程內優先順序控制電路25-l 執行的處理,在圖7中以流程圖的形式來圖示線程間優先順序控制電路 27執行的處理。
接著,按照這些流程圖,就如圖2那樣所構成的一級高速緩存控制 部20執行的處理詳細地進行說明。
若開始了取指端口 22所保持的線程0發出的訪問請求的優先控制 處理,線程內優先順序控制電路25-0,則如圖5的流程圖所示那樣,首 先最初在步驟S100確認與線程0相關的取指端口 22的端口部分的全部 的入口狀態。
接下來,在步驟S101中根據這一確認處理,判斷尚未進行過一次 高速緩存訪問的入口 、或者因高速緩存未命中及數據的順序性保證等而 指示了針對在取指端口 22使其待機的訪問請求的再處理的入口是否存 在一個以上。
在通過此步驟S101的判斷處理,判斷為符合要求的入口存在一個 以上時,進入步驟S102,在這些入口之中,選擇與TOQ控制電路23 輸出的FP-TOQ-TH0所指的入口最靠近的入口,并在后續的步驟S103 中,對有關線程0的條件1這個變量設定"1",并結束優先控制處理。
另一方面,在通過步驟S101的判斷處理,判斷為符合要求的入口 不存在一個以上時,進入步驟S104,判斷有效的入口(被分配有訪問請 求的入口)是否存在一個以上。
在通過此步驟S104的判斷處理,判斷為符合要求的入口存在一個 以上時,進入步驟S105,在這些入口之中選擇與TOQ控制電路23輸 出的FP-TOQ-TH0所指的入口最靠近的入口 ,并在后續的步驟S106中, 對有關線程0的條件2這個變量設定"1",并結束優先控制處理。另一方面,在通過步驟S104的判斷處理,判斷為有效的入口不存 在一個以上時,進入步驟S107,什么都不選擇,在后續的步驟S108中, 對有關線程0的條件1這個變量設定"0",同時對有關線程0的條件2 這個變量設定"0",并結束優先控制處理。
這樣,線程內優先順序控制電路25-0,將取指端口 22所保持的線 程0發出的訪問請求作為處理對象,在尚未進行過一次高速緩存訪問的 入口 、或者因高速緩存未命中及數據的順序性保證等而指示了針對在取 指端口 22使其待機的訪問請求的再處理的入口存在一個以上的情況下, 在其中優先選擇與FP-TOQ-TH0所指的入口最近的入口,而且,在雖 然不適用此優先順序的條件但被分配了訪問請求的情況,也就是說有效 的入口存在一個以上的情況下,在其中優先選擇與FP-TOQ-TH0所指 的入口最近的入口 。
另一方面,若開始了取指端口 22所保持的線程1發出的訪問請求 的優先控制處理,線程內優先順序控制電路25-1則如圖6的流程圖所 示那樣,首先最初在步驟S200中確認與線程l相關的取指端口 22的端 口部分的全部的入口狀態。
接下來,在步驟S201中根據這一確認處理,判斷尚未進行過一次 高速緩存訪問的入口 、或者因高速緩存未命中及數據的順序性保證等而 指示了針對在取指端口 22使其待機的訪問請求的再處理的入口是否存 在一個以上。
在通過此步驟S201的判斷處理,判斷為符合要求的入口存在一個 以上存在時,進入步驟S202,在這些入口之中,選擇與TOQ控制電路 23輸出的FP-TOQ-TH1所指的入口最靠近的入口,并在后續的步驟 S203中,對有關線程1的條件1這個變量設定"1",并結束優先控制 處理。
另一方面,在通過步驟S201的判斷處理,判斷為符合要求的入口 不存在一個以上時,進入步驟S204,判斷有效的入口(被分配了訪問請 求的入口)是否存在一個以上。
在通過此步驟S204的判斷處理,判斷為符合要求的入口存在一個
14以上時,進入步驟S205,在這些入口之中選擇與TOQ控制電路23輸 出的FP-TOQ-TH1所指的入口最靠近的入口 ,并在后續的步驟S206中, 對有關線程l的條件2這個變量設定"1",并結束優先控制處理。
另一方面,在通過步驟S204的判斷處理,判斷為有效的入口不存 在一個以上時,進入步驟S207,什么都不選擇,在后續的步驟S208中, 對有關線程l的條件l這個變量設定"0",同時對有關線程1的條件2 這個變量設定"0",并結束優先控制處理。
這樣,線程內優先順序控制電路25-1,將取指端口 22所保持的線 程1發出的訪問請求作為處理對象,在尚未進行過一次高速緩存訪問的 入口 、或者因高速緩存未命中及數據的順序性保證等而指示了針對在取 指端口 22使其待機的訪問請求的再處理的入口存在一個以上的情況下, 在其中優先選擇與FP-TOQ-TH1所指的入口最近的入口,而且,在雖 然不適用此優先順序的條件但被分配了訪問請求的情況,也就是說有效 的入口存在一個以上的情況下,在其中優先選擇與FP-TOQ-TH1所指 的入口最近的入口 。
接著,對線程間優先順序控制電路27執行的處理進行說明。
若通過線程內優先順序控制電路25-0、 1結束了優先控制處理而開 始了線程間的優先控制處理,線程間優先順序控制電路27則如圖7的 流程圖所示那樣,首先最初在步驟S300中判斷是否對有關線程0的條 件1這個變量設定了 "1"、且對有關線程1的條件1這個變量設定了 "1"。
在通過此步驟S300的判斷處理,判斷為對有關線程0的條件1這 個變量設定了 "1"、且對有關線程l的條件l這個變量設定了 "1"時, 進入步驟S301,判斷線程選擇信號控制電路26生成的線程選擇信號是 否已顯示"0",并在判斷為線程選擇信號已顯示"0"時,進入步驟S302, 通過選擇線程內優先順序控制電路25-0輸出的入口 ,來選擇線程0的 入口,并結束線程間的優先控制處理。
另一方面,在通過步驟S301的判斷處理,判斷為線程選擇信號顯 示了 'T,而不是"0"時,進入步驟S303,通過選擇線程內優先順序 控制電路25-l輸出的入口,來選擇線程1的入口,并結束線程間的優先控制處理。
另一方面,在通過步驟S300的判斷處理,判斷為對有關線程0的 條件l這個變量設定了 "1"的條件、和對有關線程1的條件1這個變 量設定了 'T,的條件兩個不同時成立時,進入步驟S304判斷該兩個條 件的任意一方是否成立。
在通過此步驟S304的判斷處理,判斷為對有關線程0的條件1這 個變量設定了 "1"的條件、和對有關線程1的條件1這個變量設定了 'T,的條件之中的任意一方成立時,進入步驟S305,通過選擇對該條 件1這個變量設定了 "1"的一方的線程內優先順序控制電路25-0、 1 輸出的入口,來選擇線程0或者線程1的入口,并結束線程間的優先控 制處理。
另一方面,在通過步驟S304的判斷處理,判斷為對有關線程0的 條件1這個變量設定了 "1"的條件、和對有關線程1的條件1這個變 量設定了 "1"的條件均不成立時,進入步驟S306,判斷是否對有關線 程0的條件2這個變量設定了 "1"、且對有關線程l的條件2這個變量 設定了 "1"。
在通過此步驟S306的判斷處理,判斷為對有關線程0的條件2這 個變量設定了 'T,、且對有關線程l的條件2這個變量設定了 'T,時, 進入步驟S307,判斷線程選擇信號控制電路26生成的線程選擇信號是 否已顯示"0",并在判斷為線程選擇信號已顯示"0"時,進入步驟S308, 通過選擇線程內優先順序控制電路25-0輸出的入口 ,來選擇線程0的 入口,并結束線程間的優先控制處理。
另一方面,在通過步驟S307的判斷處理,判斷為線程選擇信號顯 示了 "1"而不是"0"時,進入步驟S309,通過選擇線程內優先順序 控制電路25-1輸出的入口,來選擇線程l的入口,并結束線程間的優 先控制處理。
另一方面,在通過步驟S306的判斷處理,判斷為對有關線程O的 條件2這個變量設定了 "1"的條件、和對有關線程l的條件2這個變 量設定了 'T,的條件兩個不同時成立時,進入步驟S310,判斷該兩個條件的任意一方是否成立。
在通過此步驟S310的判斷處理,判斷為對有關線程0的條件2這 個變量設定了 'T,的條件、和對有關線程1的條件2這個變量設定了 "1"的條件之中的任意一方成立時,進入步驟S311,通過選擇對該條 件2這個變量設定了 "1"的一方的線程內優先順序控制電路25-0、 1 輸出的入口,來選擇線程0或者線程1的入口,并結束線程間的優先控 制處理。
另一方面,在通過步驟S310的判斷處理,判斷為對有關線程0的 條件2這個變量設定了 "1"的條件、和對有關線程l的條件2這個變 量設定了 "1"的條件均不成立時,進入步驟S312,什么都不選擇,結 束線程間的優先控制處理。
這樣,如圖2那樣構成的本實施例的一級高速緩存控制部20,在被 用于SMT方式的處理器時以如下方式進行控制,即,不是對每個線程 0、1準備取指端口 22,而是例如準備一個具有16個入口的取指端口 22, 并對兩個線程分別分配8個入口 ,或者對一方的線程分配10個入口同 時對另一方的線程分配6個入口 ,如此來結合線程構成分割使用取指端 口 22。
按照這一構成,根據本實施例,能夠以較少的資源執行SMT方式 的處理器中的高速緩存訪問處理。
在如圖2那樣構成的一級高速緩存控制部20中,FP分割方式設定 電路24例如在動作開始以前,根據線程O、 l發出的訪問請求的負荷的 比例(訪問請求的頻率的比例)來決定取指端口 22的分割方式,并通知給 TOQ控制電路23。
在采取這一構成的情況下,取指端口 22的分割方式一旦被決定, 在其后就不會變更。
但是,在線程0、 1所發出的訪問請求的負荷的比例伴隨數據處理 的進展而與時間的經過一起發生變化的情況下,優選,使取指端口 22 的分割方式與此結合動態地進行變更,以使各線程能夠使用的最大入口 數可變。為了將其實現,如圖8所示那樣,具備對線程O發出的訪問請求的 負荷和線程1發出的訪問請求的負荷進行監視的負荷監視電路28,使用 此負荷監視電路28,例如以規定的時間T為單位連續地測量兩個線程0、 1的訪問請求的負荷,基于其來決定下一時間T的取指端口 22的分割 方式,并通知給TOQ控制電路23。
若采取這一構成,則如圖9所示那樣,對訪問請求的負荷較大的一 方的線程(在此圖的例子中為線程0),分配更多的入口,因此,能夠有 效地使用取指端口 22。
例如,在線程0和線程1中訪問請求的負荷的比例為3:1的情況下, 將線程0的訪問請求分配給FP#0 FP#11合計12個入口 ,將線程1的 訪問請求分配給FP#12~FP#15合計4個入口 ,據此,就能夠在負荷較 重的線程中使用在負荷較輕的線程中使用不完的入口,因此,能夠提高 取指端口 22的入口的使用效率。
另外,雖然在圖2沒有進行說明,但是,在SMT方式的處理器中, 有時候僅單一線程進行動作。在這種情況下,命令/運算控制部10發送 出單一線程模式信號(single thread mode信號)。
由此,如圖10所示那樣,具備用于檢測單一線程模式信號的發送 的線程模式檢測電路29,在使用此線程模式檢測電路29檢測出從命令/ 運算控制部10發送出單一線程模式信號的情況下,決定不分割取指端 口 22,并通知給TOQ控制電路23。
若采取這一構成,如圖11所示那樣,在僅單一線程進行動作的情況 下,由于一個線程能夠使用取指端口 22的全部入口,所以就能夠提高 取指端口 22的入口的使用效率。
雖然按照圖示實施例對本高速緩存控制裝置以及控制方法進行了 說明,但是本高速緩存控制裝置以及控制方法并不限定于此。例如,雖 然在實施例中假設了被安裝在兩個線程動作的SMT方式的處理器中這 一情況,但是否在3個以上的線程動作的情況下也能夠原封不動地應用。
工業上的可利用性本發明能夠應用于SMT方式的處理器中的高速緩存控制,通過 應用本發明就能夠在SMT方式的處理器中,不使高速緩存訪問處理所 需要的資源增加而能夠有效地利用該資源來執行高速緩存訪問處理。
權利要求
1.一種高速緩存控制裝置,控制針對同時執行的多個線程所共享的高速緩存的訪問請求,其特征在于,具備端口單元,以被線程共享的方式而設置,且具有多個入口并在這些入口保持訪問請求;控制單元,以如下方式進行控制,即通過將各線程發出的訪問請求登記在分配給該線程的所述端口單元的端口部分,來結合線程構成分割使用所述端口單元;第1選擇單元,與各線程對應而被設置,并將所述端口單元保持的該線程已發出的訪問請求作為輸入,按照規定的優先控制來選擇訪問請求;第2選擇單元,將第1選擇單元已選擇的訪問請求作為輸入,并按照線程選擇信號來選擇最終的訪問請求。
2. 按照權利要求l所記載的高速緩存控制裝置,其特征在于,還 具備切換單元,在線程的處理結束時,將所述線程選擇信號所指的線程 從該處理已結束的線程切換到另外的線程。
3. 按照權利要求1或2所記載的高速緩存控制裝置,其特征在于, 還具備測量單元,測量各線程發出的訪問請求的頻率;決定單元,基于所述測量單元的測量結果,來決定分配給各線程的 所述端口部分。
4. 按照權利要求1至3中任意一項所記載的高速緩存控制裝置, 其特征在于,還具備檢測單元,檢測是否處于僅一個線程動作的動作模式;第2決定單元,在所述檢測單元檢測到處于僅一個線程動作的動作 模式的情況下,決定對該線程分配所述端口單元具有的全部的端口部 分。
5. —種高速緩存控制方法,由高速緩存控制裝置執行,該高速緩 存控制裝置具備以被線程共享的方式而設置,且具有多個入口并在這些入口保持訪問請求的端口單元,并使用該端口單元來控制針對同時執行 的多個線程所共享的高速緩存的訪問請求,該高速緩存控制方法的特征在于所述高速緩存控制裝置,以如下方式進行控制,即,通過將各線程 發出的訪問請求登記在分配給該線程的所述端口單元的端口部分,來結 合線程構成分割使用所述端口單元;對每個線程從所述端口單元保持的該線程已發出的訪問請求之中, 按照規定的優先控制來選擇訪問請求;從所述已選擇的訪問請求之中,按照線程選擇信號來選擇最終的訪 問請求。
6. 按照權利要求5所記載的高速緩存控制方法,其特征在于所述高速緩存控制裝置,在線程的處理結束時,將所述線程選擇信 號所指的線程從該處理已結束的線程切換到另外的線程。
7. 按照權利要求5或6所記載的高速緩存控制方法,其特征在于所述高速緩存控制裝置,測量各線程發出的訪問請求的頻率,并基 于該測量結果來決定分配給各線程的所述端口部分。
8. 按照權利要求5至7中任意一項所記載的高速緩存控制方法, 其特征在于所述高速緩存控制裝置,檢測是否處于僅一個線程動作的動作模 式,并在檢測到處于僅一個線程動作的動作模式的情況下,決定對該線 程分配所述端口單元具有的全部的端口部分。
全文摘要
在采取如下構成,即具備以線程共享的方式而設置且具有多個入口并在這些入口保持訪問請求的端口單元,并使用該端口單元來控制針對同時執行的多個線程所共享的高速緩存的訪問請求時,進行如下的控制將各線程發出的訪問請求登記在分配給該線程的端口單元的端口部分,據此來結合線程構成分割使用端口單元。而且,在選擇訪問請求的情況下,對每個線程從端口單元保持的該線程已發出的訪問請求之中,通過規定的優先控制來選擇訪問請求,并從該已選擇的訪問請求之中按照線程選擇信號來選擇最終的訪問請求。根據這一構成就能夠在抑制端口單元的資源量的同時有效地使用端口單元的資源,來執行高速緩存訪問處理。
文檔編號G06F12/08GK101681303SQ20078005320
公開日2010年3月24日 申請日期2007年6月19日 優先權日2007年6月19日
發明者清田直宏 申請人:富士通株式會社