專利名稱:在多處理器系統(tǒng)中無效數據轉換緩沖區(qū)條目的機制的制作方法
技術領域:
本發(fā)明涉及計算機系統(tǒng),尤其涉及具有多個處理器的計算機系統(tǒng)。
背景計算機系統(tǒng)長期使用虛擬存儲器以允許多個進程共用單個處理器。操作系統(tǒng)(OS)通常將一地址空間與每一進程相連。每一地址空間被劃分成一個或多個固定長度的虛擬頁。OS將這些虛擬頁映射至物理頁并在被稱為頁表的軟件結構內保持這些相應的轉換。因為頁表會變得相當大,所以處理器通常在被稱為轉換緩沖區(qū)(TB)的硬件結構中高速緩存這些轉換。
更具體地,高速緩存針對一進程的數據段的轉換的TB被稱為數據轉換緩沖區(qū)(DTB)。用戶級裝載和存儲對該DTB進行訪問以在訪問存儲器之前獲取相應的物理地址。裝載或存儲在訪問一DTB時遭遇DTB未命中,而無法找出相應的轉換。在此情況下,軟件或硬件的頁表走查器(walker)就把相應的轉換帶入DTB。在此進程中,還把現(xiàn)有條目從該DTB中逐出。流水線被重啟,并且通常一旦轉換被帶入DTB,就重試裝載或存儲。
只要OS改變頁表條目,它也無效DTB內的對應條目。OS在它改變從虛擬到物理的映射(可能由頁交換至磁盤引起)或在它改變頁保護級時改變頁表條目。對于單處理器系統(tǒng)來說,這些操作相當簡單,并且不會占用太多處理器帶寬。
然而,在共享存儲器的多處理器系統(tǒng)中,DTB的無效操作會占用上萬個周期。這是因為只要處理器改變與共享虛擬頁相對應的頁表條目,其他所有處理器內的所有DTB中的對應條目就都必須被無效。
附圖簡述從以下給出的詳細描述以及本發(fā)明各實施例的附圖中能夠更完整地理解本發(fā)明。然而這些附圖并非將本發(fā)明限制于具體實施例,而僅用于解釋和理解。
圖1示出了計算機系統(tǒng)的一個實施例;圖2示出了CPU的一個實施例;以及圖3示出了無效數據轉換緩沖區(qū)的機制的一個實施例的流程圖。
詳細描述描述了一種無效機制。在說明書中對“一個實施例”或“一實施例”的引用指的是結合該實施例所描述的具體特征、結構或特性被包括在本發(fā)明的至少一個實施例中。在本說明書各處出現(xiàn)的短語“在一個實施例中”無需都指代同一實施例。
在隨后的描述中,將闡明多個細節(jié)。然而,本領域普通技術人員顯而易見的是無需這些具體細節(jié)也能實現(xiàn)本發(fā)明。在其他實例中,公知的結構和設備以框圖而非細節(jié)的形式示出,以免淡化本發(fā)明的主旨。
圖1是計算機系統(tǒng)100的一個實施例的框圖。計算機系統(tǒng)100包括耦合至總線105的中央處理單元(CPU)102。在一個實施例中,CPU 102是可以從加利福尼亞州圣克拉拉市的Intel公司購買的Pentium處理器系列的處理器,包括PentiumII處理器系列、PentiumIII處理器和PentiumIV處理器?;蛘?,也可使用其它CPU。
根據一個實施例,總線105包括高帶寬存儲器總線組件和中斷控制器通信組件(ICC)。共享存儲器115被耦合至總線105。
存儲器115存儲由數據信號表示并可由多個CPU 102或包括在系統(tǒng)100內的任何其他設備執(zhí)行的數據、指令序列和代碼。在一個實施例中,共享存儲器115包括動態(tài)隨機存取存儲器(DRAM);然而,共享存儲器115也可使用其他類型的存儲器來實現(xiàn)。
在另一個實施例中,一個或多個輸入/輸出(I/O)接口119被耦合至總線105。接口119提供了到計算機系統(tǒng)100內的設備的接口。例如,I/O接口119可被耦合至外圍部件互連總線,該總線符合由位于俄勒岡州波特蘭市的PCI Special InterestGroup所研發(fā)的規(guī)范的修訂版2.1總線。
如上所述,對于在共享存儲器的多處理器系統(tǒng)中無效DTB存在問題(例如,無效會占用幾萬個周期,因為只要一個處理器改變了與一共用虛擬頁相對應的頁表條目,那么其他處理器就都必須無效DTB中的對應條目)。在現(xiàn)有的處理器中,與處理器高速緩存中的高速緩存塊被無效的方式不同,通常沒有從處理器外部無效DTB條目的硬件機制。因此,處理器在具有待無效的DTB條目的遠程處理器上調用重量級處理器間中斷。相應的中斷處理程序執(zhí)行該無效。
這一無效DTB條目的處理器間中斷需要在共享存儲器的多處理器系統(tǒng)中的每一個處理器內調用,因為處理器無從知曉哪些處理器已在它們各自的DTB中高速緩存了頁表條目的副本。在某些實例中,可以通過在頁表內保持共享者數的標識來優(yōu)化中斷數。然而,處理器至少必須無效高速緩存了待無效DTB條目的副本的所有處理器。
過去的測量已測得這些DTB無效(更通常地稱為DTB擊落(shootdown))的性能。例如,針對16處理器Encore Multimax,已測得1.6毫秒的DTB擊落時間,即在單個處理器上可執(zhí)行千萬條指令的時間量。
于是,DTB擊落在當前的多處理器系統(tǒng)中是一項相當昂貴的操作。隨著共享存儲器的多處理器的日益普遍深入,集成電路多處理器的日益普及以及集成在單個系統(tǒng)內的處理器數量的日益增多,DTB擊落操作會變成對某些大型應用軟件和操作系統(tǒng)的性能限制。
一種降低DTB擊落成本的方式是硬件方案的實現(xiàn)。例如,當一處理器需要無效其他處理器上的DTB條目時,該處理器向其他處理器發(fā)出DTB無效請求(非常類似于高速緩存塊無效請求)。但該機制尚不足以解決上述問題。
首先,通常使用虛擬地址搜索(或CAM)DTB。與DTB無效請求一起提供的物理地址并不是標準DTB能進行CAM的地址。可以為物理地址而對DTB添加第二CAM操作。但這會增加常規(guī)DTB訪問的等待時間,且因此流水線會拉長一個或多個周期?;蛘?,可以無效整個DTB,但因為這樣會不必要地無效掉有效DTB,所以也不是一種吸引人的解決方案。
其次,為了允許外部無效監(jiān)聽DTB,需要第二端口或者在DTB讀和無效請求之間的單個讀端口的多路復用。然而,這兩種方法都不理想。添加第二端口會增加DTB的大小,從而迫使更長的訪問時間(針對CAM)。多路復用選項會減慢來自處理器的DTB訪問。
根據一個實施例,一硬件結構被耦合至計算機系統(tǒng)100內的每個CPU 102。圖2示出了包括DTB 210的CPU 102的一個實施例。DTB 210是高速緩存從虛擬到物理頁轉換的硬件結構。另外,高速緩存220被耦合至CPU 102。此外,DTB監(jiān)聽過濾器230耦合到CPU 102。
在一個實施例中,DTB監(jiān)聽過濾器230是對DTB 210制作鏡像的硬件結構。因此,DTB監(jiān)聽過濾器230在每次發(fā)生未命中而加載DTB 210時裝載一條目。在另一個實施例中,DTB監(jiān)聽過濾器230確認DTB無效請求,使得啟動CPU能取得進展。
然而,在一個實施例中,DTB監(jiān)聽過濾器230僅包括物理地址。這樣,與DTB210不同,DTB監(jiān)聽過濾器230不包括任何其他有效載荷。此外,可以針對待無效的物理地址搜索DTB監(jiān)聽過濾器230。
根據一個實施例,如果DTB 210和DTB監(jiān)聽過濾器230都具有FIFO替換策略,則將從這兩個結構中正確地逐出條目。然而,如果DTB 210和DTB監(jiān)聽過濾器230具有隨機替換策略,則不能直接保證替換正確的條目來確保DTB 210和DTB監(jiān)聽過濾器230具有完全相同的項目。于是,在這一實施例中,一種解決方案是替換DTB監(jiān)聽過濾器230中與DTB 210中的條目完全相同的條目。
根據一個實施例,將在DTB監(jiān)聽過濾器230處搜索每個外部DTB無效操作。匹配將指示DTB 210具有必須被無效的對應條目。隨后,CPU 102將轉儲清除所有未提交的指令,從DTB 210和DTB監(jiān)聽過濾器230中找出并無效對應的條目,并且隨后重啟。
圖3是示出在收到無效操作時在CPU 102和相應的DTB監(jiān)聽過濾器230處的操作的一個實施例的流程圖。在處理框310處,(例如,CPU 102(1))接收來自另一個CPU(例如,CPU 102(2))的無效操作。如上所述,無效操作可以是CPU 102(1)處相應頁表條目被改變的結果。
在處理框320處,針對待無效的條目搜索DTB監(jiān)聽過濾器230。在一個實施例中,經由CAM操作搜索DTB監(jiān)聽過濾器230。在處理框330處,確定DTB監(jiān)聽過濾器230內是否存儲該條目。如果未在DTB監(jiān)聽過濾器230內定位到該條目,則不采取行動并且控制返回至可以接收另一操作的處理框310。
然而,若在DTB監(jiān)聽過濾器230內找到表條目,則在處理框340處,從CPU102中轉儲清除所有未提交的指令。根據一個實施例,DTB監(jiān)聽過濾器230具有進入DTB 210的索引。于是,若在DTB監(jiān)聽過濾器230中找出表條目,則無需搜索DTB 210。相反,DTB監(jiān)聽過濾器只需拾取該項目。
在進程框350處,在DTB 210和DTB監(jiān)聽過濾器230處,相應的表條目被無效。根據一個實施例,DTB監(jiān)聽過濾器230將一中斷發(fā)送給CPU 102。作為響應,CPU 102在從DTB 210中移除條目的同時暫停操作。在另一個實施例中,DTB監(jiān)聽過濾器230直接無效DTB 210。在這一實施例中,DTB監(jiān)聽過濾器230使用標準的寫端口直接訪問DTB 210。這樣,無需停止CPU 102。
上述機制以傳入DTB無效請求監(jiān)聽的硬件CAM結構為特征。由此,濾除了不必要的擊落,且僅對將無效處理器內的真正DTB條目的擊落進行調度。
雖然本發(fā)明的變化和修改在本領域普通技術人員閱讀了前述說明之后無疑將變得顯而易見,但應該理解,作為說明而示出并描述的任何具體實施例并不意欲限制本發(fā)明。因此,對各實施例的細節(jié)的參考并不限制權利要求書的范圍,權利要求書自身僅敘述了作為本發(fā)明的特征。
權利要求
1.一種計算機系統(tǒng),包括具有存儲從虛擬到物理地址的轉換的轉換緩沖區(qū)(TB)的第一中央處理單元(CPU);以及耦合至所述第一CPU以對所述第一TB的操作制作鏡像,并被實現(xiàn)為在收到來自第二CPU的無效請求時搜索條目的監(jiān)聽過濾器。
2.如權利要求1所述的計算機系統(tǒng),其特征在于,在搜索條目期間在所述監(jiān)聽過濾器處找出的匹配指示一條目將在所述監(jiān)聽過濾器和所述TB處被無效。
3.如權利要求2所述的計算機系統(tǒng),其特征在于,所述第一CPU處的未提交指令在所述條目在所述監(jiān)聽過濾器和所述TB處被無效之前被轉儲清除。
4.如權利要求1所述的計算機系統(tǒng),其特征在于,所述監(jiān)聽過濾器確認從所述第二CPU處接收的無效請求。
5.如權利要求1所述的計算機系統(tǒng),其特征在于,所述監(jiān)聽過濾器在每次在未命中而加載所述TB時載入一條目。
6.如權利要求5所述的計算機系統(tǒng),其特征在于,所述監(jiān)聽過濾器和所述TB實現(xiàn)先進先出(FIFO)替換策略以逐出條目。
7.如權利要求5所述的計算機系統(tǒng),其特征在于,所述監(jiān)聽過濾器和所述TB實現(xiàn)隨機替換策略以逐出條目。
8.如權利要求7所述的計算機系統(tǒng),其特征在于,所述監(jiān)聽過濾器和所述TB內相同的條目被替換。
9.如權利要求1所述的計算機系統(tǒng),其特征在于,所述監(jiān)聽過濾器僅包括物理地址。
10.一種方法,包括在第一中央處理單元(CPU)處接收來自第二CPU的無效請求以在所述第一CPU處無效轉換緩沖區(qū)(TB)內的條目;搜索與所述第一CPU相耦合的監(jiān)聽過濾器以找出所述條目;以及如果在所述監(jiān)聽過濾器中找到所述條目,則無效所述TB和所述監(jiān)聽過濾器處的所述條目。
11.如權利要求10所述的方法,其特征在于,還包括在所述條目在所述監(jiān)聽過濾器和所述TB處被無效之前轉儲清除所述第一CPU處的未提交指令。
12.如權利要求10所述的方法,其特征在于,無效所述TB處的條目包括將一中斷從所述監(jiān)聽過濾器發(fā)送至所述第一CPU;以及暫停所述第一CPU的操作;以及從所述TB中移除所述條目。
13.如權利要求10所述的方法,其特征在于,無效所述TB處的條目包括所述監(jiān)聽過濾器直接訪問所述TB以無效所述條目。
14.如權利要求13所述的方法,其特征在于,所述監(jiān)聽過濾器使用標準寫端口來訪問所述TB。
15.一種包括表的監(jiān)聽過濾器,所述表包括與存儲在被實現(xiàn)為存儲從虛擬到物理地址的轉換的轉換緩沖區(qū)(TB)內的條目相對應的物理地址條目,所述表對所述第一TB的操作制作鏡像,并且被實現(xiàn)為在接收來自第二CPU的無效請求時搜索條目。
16.如權利要求15所述的監(jiān)聽過濾器,其特征在于,在搜索條目期間在所述監(jiān)聽過濾器處找出的匹配指示一條目將在所述監(jiān)聽過濾器和所述TB處被無效。
17.如權利要求15所述的監(jiān)聽過濾器,其特征在于,所述監(jiān)聽過濾器每次在未命中而加載所述TB時載入一條目。
18.如權利要求17所述的監(jiān)聽過濾器,其特征在于,所述監(jiān)聽過濾器和所述TB實現(xiàn)先進先出(FIFO)替換策略以逐出條目。
19.如權利要求17所述的監(jiān)聽過濾器,其特征在于,所述監(jiān)聽過濾器和所述TB實現(xiàn)隨機替換策略以逐出條目。
20.如權利要求19所述的監(jiān)聽過濾器,其特征在于,所述監(jiān)聽過濾器和所述TB內相同的條目被替換。
21.一種計算機系統(tǒng),包括第一中央處理單元(CPU);具有存儲從虛擬到物理地址的轉換的轉換緩沖區(qū)(TB)的第二中央處理單元(CPU);耦合至所述第一CPU和所述第二CPU的主存儲器設備;以及耦合至第二CPU以對所述第一TB的操作制作鏡像,并被實現(xiàn)為在收到來自所述第一CPU的無效請求時搜索條目的監(jiān)聽過濾器。
22.如權利要求21所述的計算機系統(tǒng),其特征在于,在搜索條目期間在所述監(jiān)聽過濾器處找出的匹配指示一條目將在所述監(jiān)聽過濾器和所述TB處被無效。
23.如權利要求22所述的計算機系統(tǒng),其特征在于,所述第一CPU處的未提交指令在所述條目在所述監(jiān)聽過濾器和所述TB處被無效之前被轉儲清除。
24.如權利要求21所述的計算機系統(tǒng),其特征在于,所述監(jiān)聽過濾器確認從所述第一CPU處接收的無效請求。
25.如權利要求21所述的計算機系統(tǒng),其特征在于,所述監(jiān)聽過濾器僅包括物理地址。
全文摘要
根據一個實施例公開了一種計算機系統(tǒng)。該計算機系統(tǒng)包括具有存儲從虛擬到物理地址的轉換的轉換緩沖區(qū)(TB)的第一中央處理單元(CPU),以及耦合至第一CPU以對第一TB的操作制作鏡像并被實現(xiàn)為在接收到來自第CPU的無效請求時搜索條目的監(jiān)聽過濾器。
文檔編號G06F12/10GK1961297SQ200580017702
公開日2007年5月9日 申請日期2005年5月13日 優(yōu)先權日2004年6月2日
發(fā)明者S·慕克吉 申請人:英特爾公司