新四季網

用提示緩衝器隱藏存儲器訪問等待時間的製作方法

2023-05-14 19:32:51

專利名稱:用提示緩衝器隱藏存儲器訪問等待時間的製作方法
技術領域:
本發明一般地涉及計算機系統領域。更具體地說,本發明涉及計算機系統的存儲器訪問領域。
背景技術:
處理器一般以相對於外部存儲器更快的時鐘速度來執行指令,該外部存儲器例如動態隨機訪問存儲器(DRAM)。因此,由於處理器以相對較慢的時鐘速度,從存儲器中提取將被執行的指令以及在執行指令中將被處理的數據,所以在處理器執行指令時訪問外部存儲器會引入延遲。
一般的處理器可以通過以流水線方式處理指令,來幫助最小化這種存儲器訪問等待時間所引起的延遲,所述流水線從存儲器提取指令、解碼每一個指令、執行指令並且結束指令。流水線的每一個階段的操作一般在時間上會與其他階段的操作重疊,以幫助隱藏在提取指令和用於指令執行的數據中的存儲器訪問等待時間。
通過確定這樣的指令,其不考慮先前提取的一個或多個指令是否被執行就可被執行,一般的處理器還可以通過並行執行指令,即使兩個或更多指令的執行在時間上覆蓋,和/或通過亂序地執行指令,來幫助最小化由存儲器訪問等待時間引起的延遲。這樣,處理器通過在等待例如提取用於其他指令的數據的同時繼續執行指令,來幫助隱藏存儲器訪問等待時間。不管指令執行的順序如何,處理器都順序地結束每一條指令。
處理器還可以通過這樣來幫助最小化存儲器等待時間延遲,即一次管理相對更多指令的亂序執行,以幫助擴大從存儲器提取指令和/或數據的窗口,而不引入很長的延遲。例如,處理器可以使用更大的指令重排序緩衝器,以一次管理相對更多指令來用於亂序執行;更大的存儲器順序緩衝器,以一次管理來自存儲器的相對更多的數據請求,來用於亂序數據提取;和/或更大的存儲器請求隊列,以允許一次發出相對更多的存儲器請求。
一般的處理器還可以通過使用一個或多個相對更大的內部高速緩衝存儲器,來存儲被頻繁訪問的指令和數據,以幫助最小化存儲器訪問等待時間延遲。因為這時處理器可以在內部訪問這些指令和數據,所以處理器就幫助減少了對外部存儲器的訪問。
但是,使用更大的緩衝器、隊列和/或高速緩衝存儲器,會增加處理器的成本和尺寸。


在附圖的圖中以示例而非限制的方式來說明本發明,附圖中類似的標記指示相似的元件,其中圖1圖示了示例性計算機系統,該系統包括具有集成存儲器控制器的處理器,集成存儲器控制器包括提示緩衝器,用於幫助隱藏存儲器訪問等待時間;圖2圖示了一個實施例中具有集成存儲器控制器的處理器,集成存儲器控制器包括提示緩衝器,用於幫助隱藏存儲器訪問等待時間;圖3由圖3A和圖3B組成,圖示了一個實施例中使用包括提示緩衝器的存儲器控制器,來執行存儲器提取請求的流程圖;圖4圖示了一個實施例中將一個或多個寫緩衝器條目刷新到主存儲器的流程圖;圖5圖示了一個實施例中提示緩衝器的條目;以及圖6由圖6A和圖6B組成,圖示了另一個實施例中使用包括提示緩衝器的存儲器控制器,來執行存儲器提取請求的流程圖。
具體實施例方式
下面的詳細描述給出了根據本發明的的一個實施例或多個實施例,其用提示緩衝器來隱藏存儲器訪問等待時間。為了提供對本發明的充分理解,在下面的描述中給出了很多細節,例如具體的處理器體系結構、存儲器類型等。但是,很清楚本發明可以不用這些細節而實施。在其他情況下,為了不混淆本發明,沒有詳細地描述公知的功能塊、接口等。
示例性計算機系統圖1圖示了示例性計算機系統100,其包括具有存儲器控制器112的處理器110,存儲器控制器112包括用於幫助隱藏存儲器訪問等待時間的提示緩衝器114。雖然是在計算機系統100的上下文中描述本發明的,但是本發明可以在包括任何合適的一個或多個集成電路的任何合適的計算機系統中實現。
如圖1所圖示的,一個實施例的存儲器控制器112與處理器110集成在同一個晶片上。與處理器110集成的存儲器控制器112,幫助減少與存儲器控制器112通信中的延遲。另一個實施例的存儲器控制器112可以形成為一個單獨的集成電路晶片,該晶片或者與處理器110共用同一個封裝,或者與處理器110分別封裝。處理器110可以包括任何合適的處理器體系結構,在一個實施例中其包括由加州Santa Clara的Intel公司定義的Intel32位體系結構。
存儲器控制器112控制處理器110對主存儲器120的訪問。主存儲器120被耦合到存儲器控制器112,用於為例如計算機系統100(包括為處理器110)加載和存儲數據和/或指令。主存儲器120可以包括任何合適的存儲器,例如動態隨機訪問存儲器(DRAM)。主存儲器120可以包括例如同步DRAM(SDRAM)、雙倍數據速率SDRAM(DDR SDRAM)或者RambusDRAM(RDRAM)。一個實施例的處理器110以相對於存儲器控制器112和主存儲器120更快的時鐘速度操作。
當處理器110從主存儲器120提取將被執行的指令和/或在執行指令中被處理的數據時,一個實施例的存儲器控制器112使用提示緩衝器114來幫助隱藏處理器110的存儲器訪問等待時間。一個實施例的存儲器控制器112接收對被處理器110請求的數據和/或一個或多個指令的請求提示,即使處理器110可能以後才使用或根本不使用所請求的數據和/或(一個或多個)指令,並且/或者即使處理器110可能需要或不需要所請求的來自主存儲器120的數據和/或(一個或多個)指令。然後,存儲器控制器112可以響應於所接收的請求提示,在接收對數據和/或(一個或多個)指令的存儲器提取請求之前,啟動對主存儲器120的訪問,並將被請求的數據和/或(一個或多個)指令存儲在提示緩衝器114中。例如當被請求的數據和/或(一個或多個)指令可能會被處理器110使用,並需要從主存儲器120取來時,就可向存儲器控制器112發出存儲器提取請求。
在存儲器控制器112接收到存儲器提取請求時,存儲器控制器112可能已經訪問主存儲器120來提取了被請求的數據和/或(一個或多個)指令。那麼存儲器控制器112就可以將來自提示緩衝器114的被請求的數據和/或(一個或多個)指令,返回給處理器110使用。
由於與當存儲器控制器112接收到存儲器提取請求時訪問主存儲器120相比,從提示緩衝器114返回被請求的數據和/或(一個或多個)指令更快,所以通過在接收到對數據和/或(一個或多個)指令的存儲器提取請求之前,投機性地訪問主存儲器120的數據和/或(一個或多個)指令,處理器110可以有效地隱藏與訪問主存儲器120相關聯的等待時間。而且,通過在主存儲器120空閒時,根據請求提示來訪問主存儲器120,處理器110可以幫助減少平均存儲器訪問等待時間。這樣,處理器110就可以更加充分地使用訪問主存儲器120的帶寬。
例如,一個實施例的存儲器控制器112還控制對主存儲器120的訪問,該訪問為圖形控制器130和/或輸入/輸出(I/O)控制器140來存儲和提取數據和/或(一個或多個)指令。
圖形控制器130被耦合到處理器110,用於控制耦合到圖形控制器130的合適的顯示器132上的信息顯示,顯示器132例如為陰極射線管(CRT)或液晶顯示器(LCD)。一個實施例的存儲器控制器112通過加速圖形埠(AGP)與圖形控制器130接口。
I/O控制器140被耦合到處理器110,用於提供與耦合到I/O控制器140的一個或多個I/O設備的接口。一個實施例的I/O控制器140通過中心接口而與存儲器控制器112接口。
一個實施例中,I/O控制器140提供到一個或多個合適的集成驅動電子(IDE)驅動器142的接口、通過一個或多個通用串行總線(USB)埠144到一個或多個合適的USB設備的接口、以及到音頻編碼器/解碼器146和數據機148的接口,其中,存儲數據和/或指令的集成驅動電子(IDE)驅動器142,例如是硬碟驅動器(HDD)或只讀光碟(CDROM)驅動器。一個實施例的I/O控制器140通過高級I/O控制器150還提供到以下設備的接口鍵盤151、滑鼠152、通過一個或多個並行埠153的例如印表機的一個或多個合適的設備、通過一個或多個串行埠154的一個或多個合適的設備、以及軟盤驅動器155。一個實施例的I/O控制器140還提供到以下設備的接口通過外圍組件互連(PCI)總線上的一個或多個PCI插槽162而耦合到I/O控制器140的一個或多個合適的PCI設備、通過工業標準體系結構(ISA)橋接卡164而由PCI總線耦合到I/O控制器140的一個或多個合適的ISA設備。ISA橋接卡164通過ISA總線上的一個或多個ISA插槽166而與一個或多個ISA設備接口。
I/O控制器140還被耦合到固件控制器170,來提供到固件控制器170的接口。一個實施例的固件控制器170通過中心接口與I/O控制器140接口。一個實施例的固件控制器170可以共享I/O控制器140與高級I/O控制器150之間的至少一部分接口。固件控制器170包括基本輸入/輸出系統(BIOS)存儲器172,用於存儲合適的系統和/或視頻BIOS軟體。BIOS存儲器172可以包括任何合適的非易失性存儲器,例如快閃記憶體。
儘管圖示為僅有一個處理器110,但是另一個實施例的計算機系統100可以包括多個處理器,例如兩個、三個或更多。處理器110可以被耦合到公共總線上的一個或多個其他的處理器。這時,每一個處理器可以共享存儲器控制器112,以訪問例如主存儲器120、圖形控制器130和/或I/O控制器140。
具有包含提示緩衝器的存儲器控制器的處理器如圖2中所圖示的,一個實施例的處理器110包括存儲器控制器112、耦合到存儲器控制器112的總線接口邏輯210、耦合到總線接口邏輯210的輔助高速緩衝存儲器212、耦合到總線接口邏輯210的主高速緩存控制邏輯220、耦合到主高速緩存控制邏輯220的主高速緩衝存儲器222、耦合到主高速緩存控制邏輯220的指令處理邏輯230、以及耦合到指令處理邏輯230的體系結構寄存器240。
總線接口邏輯210、輔助高速緩衝存儲器212、主高速緩存控制邏輯220和主高速緩衝存儲器222,形成二級高速緩衝存儲器子系統,用於向指令處理邏輯230提供指令和/或數據。
總線接口邏輯210控制輔助高速緩衝存儲器212,來存儲和提取用於指令處理邏輯230的指令和/或數據。一個實施例的總線接口邏輯210,將通過存儲器控制器112而從主存儲器120取得的指令和/或數據,存儲在輔助高速緩衝存儲器212中,以由指令處理邏輯230來處理。一個實施例的總線接口邏輯210,還將最近和/或頻繁使用的指令和/或數據,存儲在輔助高速緩衝存儲器212中,用於幫助使對主存儲器120的訪問最少。總線接口邏輯210可以包括任何合適的電路系統,而輔助高速緩衝存儲器212可包括任何合適大小的任何合適的存儲器。
主高速緩存控制邏輯220控制主高速緩衝存儲器222,以存儲和提取用於指令處理邏輯230的指令和/或數據。一個實施例中,主高速緩衝存儲器222可以包括專用的指令高速緩衝存儲器部分和單獨的專用數據高速緩衝存儲器部分。一個實施例的主高速緩存控制邏輯220,將通過總線接口邏輯210從輔助高速緩衝存儲器212取得的指令和/或數據,或者通過總線接口邏輯210和存儲器控制器112從主存儲器120取得的指令和/或數據,存儲在主高速緩衝存儲器222中,用於由指令處理邏輯230處理。一個實施例的主高速緩存控制邏輯220,還將最近和/或頻繁使用的指令和/或數據存儲在主高速緩衝存儲器222中,用於幫助使對主存儲器120的訪問最少。主高速緩存控制邏輯220可以包括任何合適的電路,而主高速緩衝存儲器222可包括任何合適大小的任何合適的存儲器。
一個實施例的主高速緩衝存儲器222大小相對較小,並且通過主高速緩存控制邏輯220而緊密地耦合到指令處理邏輯230,以允許指令處理邏輯230相對更快地訪問存儲在主高速緩衝存儲器222中的指令和/或數據。一個實施例的輔助高速緩衝存儲器212,在大小上比主高速緩衝存儲器222大,以相對於主高速緩衝存儲器222存儲更多的指令和/或數據。一個實施例中,指令處理邏輯230從輔助高速緩衝存儲器212訪問指令和/或數據所需的時間,比訪問主高速緩衝存儲器222的時間更長。總線接口邏輯210、輔助高速緩衝存儲器212、主高速緩存控制邏輯220和主高速緩衝存儲器222,可以根據任何合適的高速緩存方案來存儲用於指令處理邏輯230的指令和/或數據。
雖然處理器110已經被描述為包括總線接口邏輯210、輔助高速緩衝存儲器212、主高速緩存控制邏輯220和主高速緩衝存儲器222,但是處理器110可以包括任何其他合適的存儲器子系統,以加載和存儲用於指令處理邏輯230的指令和數據。
指令處理邏輯230可以包括用於提取和處理指令和/或數據的任何合適的電路系統。如圖2中所示,一個實施例的指令處理邏輯230包括指令流水線,該指令流水線包括提取/解碼單元232、重排序緩衝器234、分派/執行單元236和結束單元238。提取/解碼單元232被耦合到主高速緩存控制邏輯220。重排序緩衝器234被耦合到提取/解碼單元232、分派/執行單元236和結束單元238。分派/執行單元236被耦合到提取/解碼單元232和主高速緩存控制邏輯220。結束單元238被耦合到體系結構寄存器240和主高速緩存控制邏輯220。
提取/解碼單元232從主高速緩衝存儲器222、輔助高速緩衝存儲器212和/或主存儲器120提取指令。提取/解碼單元232可以包括以任何合適的方式提取指令的任何合適的電路系統。一個實施例的提取/解碼單元232,根據由提取/解碼單元232維護的指令指針來確定下一個將被指令處理邏輯230提取的指令,並通過主高速緩存控制邏輯220、總線接口邏輯210和/或存儲器控制器112,從主高速緩衝存儲器222、輔助高速緩衝存儲器212或主存儲器120請求指令。例如,提取/解碼單元232可以將下一個指令,確定為程序中的下一個順序的指令、分支指令的預測或實際目的地、或者諸如異常處理例行程序的新例行程序的開始。
一個實施例的提取/解碼單元232,將每個指令解碼為一個或多個微操作。一個實施例的提取/解碼單元232,將每個指令解碼為一個或多個三元組微操作(triadic micro-operation)。三元組微操作包括操作碼,並且可以包括多達兩個邏輯源操作數和一個邏輯目的地操作數。
一個實施例的提取/解碼單元232,對所提取指令的每一個微操作映射所有源並重命名所有目的地。一個實施例的提取/解碼單元232將邏輯寄存器引用轉變為物理寄存器引用,並在這樣做時使用重命名映射來形成物理目的地和源之間的依賴鏈路(dependency link)。
提取/解碼單元232在重排序緩衝器234中分配所提取指令的每一個微操作。當進入重排序緩衝器234中的微操作時,一個實施例的提取/解碼單元232為微操作添加狀態信息,以準備用於亂序執行。
重排序緩衝器234接收並存儲來自提取/解碼單元232的每一個微操作。重排序緩衝器234還存儲已經由分派/執行單元236執行但還未被結束的微操作。重排序緩衝器234可以包括任何合適的電路系統,在一個實施例中,其包括內容可尋址存儲器(CAM)陣列。
分派/執行單元236分派存儲在重排序緩衝器234中的微操作以用於執行,並執行被分派的微操作。分派/執行單元236根據這些微操作之間的數據依賴性以及執行資源的可用性,來調度並執行存儲在重排序緩衝器234中的微操作,從而支持微操作的亂序執行。分派/執行單元236將執行微操作的任何結果與該微操作一起存儲在重排序緩衝器234中。
分派/執行單元236可以包括任何合適的電路系統。一個實施例中,分派/執行單元236包括預留站(reservation station)和多個執行單元,多個執行單元例如一個或多個整數執行單元、一個或多個浮點執行單元以及存儲器接口執行單元。預留站掃描重排序緩衝器234中微操作的狀態,以確定已準備就緒可被執行的微操作,例如具有可用源操作數的微操作。預留站將每一個準備就緒的微操作分派到合適的可用執行單元,來執行該微操作。每一個執行單元或者直接地或者通過預留站,將執行微操作的任何結果返回給重排序緩衝器234,以將結果和相應的微操作存儲在重排序緩衝器234中。
一個實施例的分派/執行單元236,通過使預留站將存儲器加載微操作分派到耦合到主高速緩存控制邏輯220的存儲器接口執行單元,來執行一個或多個存儲器加載微操作,以通過主高速緩存控制邏輯220、總線接口邏輯210和/或存儲器控制器112,從主高速緩衝存儲器222、輔助高速緩衝存儲器212或主存儲器120請求數據。
結束單元238結束已執行的微操作。一個實施例的結束單元238,掃描重排序緩衝器234中微操作的狀態,從重排序緩衝器234中去除已執行的微操作,並將已執行微操作的結果提交給機器狀態,即通過主高速緩存控制邏輯220、總線接口邏輯210和存儲器控制器112提交給體系結構寄存器240和主存儲器120。一個實施例的結束單元238,根據其各個指令被提取/解碼單元232提取和解碼的順序,來結束已執行的微操作。結束單元238可以包括以任何合適的方式來結束已執行的微操作的任何合適的電路系統。
雖然如圖2中所示地,在指令處理邏輯230的上下文中描述了本發明,但是本發明可以使用任何其他合適的處理指令的處理器體系結構來實現。
例如,在另一個實施例中,提取/解碼單元232可以將微操作分配到例如分派/執行單元236的預留站中,而不分配到重排序緩衝器234中。一旦分派並執行已分配的微操作之後,分派/執行單元236這時就可以立刻將所有結果存儲在重排序緩衝器234中,以由結束單元238來結束。
另一個實施例的提取/解碼單元232可以不將一個或多個被提取的指令解碼為微操作,而是直接處理每一個指令來執行。
隱藏存儲器訪問等待時間一個實施例的處理器110根據圖3的流程圖300,使用存儲器控制器112來幫助隱藏訪問主存儲器120中的等待時間。
存儲器控制器112可以包括幫助處理器110隱藏存儲器訪問等待時間的任何合適的電路系統。如圖2所示,一個實施例的存儲器控制器112包括耦合到總線接口邏輯210、圖形控制器130和I/O控制器140的存儲器控制器接口邏輯202;耦合到存儲器控制器接口邏輯202和主存儲器120的存儲器接口邏輯204;耦合到存儲器控制器接口邏輯202的提示緩衝器114;以及耦合到存儲器控制器接口邏輯202的寫緩衝器206。
存儲器控制器接口邏輯202和存儲器接口邏輯204每個都可以包括任何合適的電路系統。因為存儲器接口邏輯204將要訪問主存儲器120,所以存儲器接口邏輯204的電路可能取決於例如由主存儲器120使用的存儲器類型。提示緩衝器114和寫緩衝器206每個都可以包括任何合適的電路系統,在一個實施例中,每個都包括任何合適大小的內容可尋址存儲器(CAM)陣列。
在圖3的框302中,指令處理邏輯230請求數據和/或(一個或多個)指令。作為一個例子,提取/解碼單元232可以請求指令。作為另一個例子,分派/執行單元236可以請求數據。一個實施例的指令處理邏輯230,通過向主高速緩存控制邏輯220發出合適的存儲器提取請求,來從主高速緩衝存儲器222請求數據和/或(一個或多個)指令。例如,合適的存儲器提取請求包括但不限於可高速緩衝的存儲器讀請求、可高速緩衝的鎖定事務(lock transaction)和不可高速緩衝的存儲器讀請求。
在框304中,主高速緩存控制邏輯220確定被請求的數據和/或(一個或多個)指令是否存儲在主高速緩衝存儲器222中。如果是這樣,即如果主高速緩衝存儲器222發信號通知高速緩存命中(cache hit),則在框306中主高速緩存控制邏輯220將被請求的數據和/或(一個或多個)指令,從主高速緩衝存儲器222返回到指令處理邏輯230。如果不是這樣,即如果主高速緩衝存儲器222發信號通知高速緩存失敗(cache miss),則主高速緩存控制邏輯220向總線接口邏輯210發出存儲器提取請求。
在框308中,向存儲器控制器112發出請求提示。在一個實施例中,主高速緩存控制邏輯220經過耦合到主高速緩存控制邏輯220和存儲器控制器112的總線224,向存儲器控制器112發出請求提示。一個實施例的總線224,基本上專用於傳輸請求提示,以幫助加快到存儲器控制器112的請求傳輸。在另一個實施例中,總線接口邏輯210響應於從主高速緩存控制邏輯220接收到存儲器提取請求,經過耦合到總線接口邏輯210和存儲器控制器112的總線214,向存儲器控制器112發出請求提示。一個實施例的總線接口邏輯210,根據預定的優先級方案經過總線214,和其他存儲器請求和/或請求提示一起發出該請求提示。另一個實施例的總線接口邏輯210,經過基本上專用於傳輸請求提示的總線214的一部分,來發出請求提示。
請求提示確定對存儲器控制器112所請求的數據和/或(一個或多個)指令。一個實施例的請求提示,包括將該請求確定為請求提示的請求類型,以及被請求的數據和/或(一個或多個)指令所在的地址。一個實施例的請求提示,還可以包括步進(stride)。一個實施例的存儲器控制器接口邏輯202接收請求提示,並將投機性優先級賦給該請求提示。
在框310中,總線接口邏輯210確定被請求的數據和/或(一個或多個)指令是否存儲在輔助高速緩衝存儲器212中。如果是這樣,即如果輔助高速緩衝存儲器212發信號通知高速緩存命中,則在框312中總線接口邏輯210將被請求的數據和/或(一個或多個)指令通過主高速緩存控制邏輯220,從輔助高速緩衝存儲器212返回給指令處理邏輯230。一個實施例的主高速緩存控制邏輯220,也可以可選擇地將被請求的數據和/或(一個或多個)指令存儲在主高速緩衝存儲器222中。一個實施例的總線接口邏輯210,可以可選擇地在框312中通知存儲器控制器112取消先前向存儲器控制器112發出的請求提示,以避免不必要地訪問主存儲器120。如果被請求的數據和/或(一個或多個)指令沒有存儲在輔助高速緩衝存儲器212中,即如果輔助高速緩衝存儲器212發信號通知高速緩存失敗,則在框314中,一個實施例的總線接口邏輯210經過總線214,通知存儲器控制器112提高請求提示的優先級。另一個實施例中,總線接口邏輯210可以被耦合到總線224,以經過總線224通知存儲器控制器112取消請求提示或提高請求提示的優先級。
總線接口邏輯210通知存儲器控制器112提高請求提示的優先級,以幫助加快存儲器控制器112對請求提示的執行,因為存儲器控制器112將要執行存儲器提取請求。通知存儲器控制器112提高請求提示的優先級是可選擇的。一個實施例的存儲器控制器接口邏輯202,在框314中將請求提示的優先級從投機級提高到需要級。
在框316中,總線接口邏輯210經過總線214向存儲器控制器112發出存儲器提取請求。一個實施例的總線接口邏輯210,根據預定的優先級方案經過總線214,和其他存儲器請求和/或請求提示一起發出該請求提示。
在框308中,在總線接口邏輯210確定被請求的數據和/或(一個或多個)指令是否存儲在輔助高速緩衝存儲器212中之前或者同時,主高速緩存控制邏輯220或總線接口邏輯210發出請求提示。這樣,存儲器控制器112有機會在接收框316的存儲器提取請求之前,啟動對主存儲器120的訪問,以提取被請求的數據和/或(一個或多個)指令,從而通過重疊以下兩種等待時間來幫助隱藏存儲器訪問等待時間,即訪問主存儲器120時引起的等待時間,與例如在檢查輔助高速緩衝存儲器212以及向存儲器控制器112發出存儲器提取請求時引起的等待時間。
在框318中,響應於接收請求提示,存儲器控制器接口邏輯202確定被請求的數據和/或(一個或多個)指令是否存儲在提示緩衝器114中。如果是這樣,即如果提示緩衝器114發信號通知命中,則在框320中存儲器控制器112完成對請求提示的處理。一個實施例的存儲器控制器接口邏輯202,還沒有將被請求的數據和/或(一個或多個)指令返回給請求提示的請求者。一個實施例的提示緩衝器114,可能已經由於以前的請求提示而存儲了被請求的數據和/或(一個或多個)指令。如果被請求的數據和/或(一個或多個)指令還沒有存儲在提示緩衝器114中,即如果提示緩衝器114發出信號通知失敗,則存儲器控制器接口邏輯202此時可以可選擇地在提示緩衝器114中,為被請求的數據和/或(一個或多個)指令創建條目,並在框322中確定被請求的數據和/或(一個或多個)指令是否存儲在寫緩衝器206中。
寫緩衝器206存儲將被寫入主存儲器120的數據和/或(一個或多個)指令。例如,響應於從指令處理邏輯230接收存儲器寫請求,存儲器控制器接口邏輯202將存儲器寫請求的數據和/或(一個或多個)指令寫入寫緩衝器206。這樣,存儲器寫請求被認為是由指令處理邏輯230完成的,而存儲器控制器接口邏輯202可以繼續為其他存儲器請求來訪問主存儲器120。然後,例如當訪問主存儲器120的請求已經變慢,或者當寫緩衝器206將被刷新時,存儲器控制器接口邏輯202可在以後訪問主存儲器120來執行存儲器寫請求。
在框322中,存儲器控制器接口邏輯202確定被請求的數據和/或(一個或多個)指令是否存儲在寫緩衝器206中,因為寫緩衝器206可能正存儲著沒有被存儲到主存儲器120中的更新的數據和/或(一個或多個)指令。如果被請求的數據和/或(一個或多個)指令已經存儲在寫緩衝器206中,即如果寫緩衝器206發信號通知命中,則在框324中存儲器控制器接口邏輯202在提示緩衝器114中創建或更新用於被請求的數據和/或(一個或多個)指令的條目。提示緩衝器114中的條目可以被創建或更新,以用於存儲在寫緩衝器206中存儲的被更新的數據和/或(一個或多個)指令的拷貝,或者用於存儲被請求的數據和/或(一個或多個)指令存儲在寫緩衝器206中的指示。一個實施例的存儲器控制器接口邏輯202,還沒有將被請求的數據和/或(一個或多個)指令返回給請求提示的請求者。
如果被請求的數據和/或(一個或多個)指令沒有存儲在寫緩衝器206中,即如果寫緩衝器206發信號通知失敗,則這時存儲器控制器接口邏輯202可以可選擇地在提示緩衝器114中,為被請求的數據和/或(一個或多個)指令創建條目。
另一個實施例的存儲器控制器接口邏輯202,在例如存儲器控制器接口邏輯202使提示緩衝器114中、用於先前的請求提示的、響應於存儲器提取請求而曾經被返回的被請求的數據和/或(一個或多個)指令無效時,可以在框318中可選擇地跳過對提示緩衝器114的檢查。另一個實施例的存儲器控制器接口邏輯202,在例如存儲器控制器112不包含寫緩衝器206的情況下,可以在框322中可選擇地跳過對寫緩衝器206的檢查。
如果被請求的數據和/或(一個或多個)指令沒有存儲在提示緩衝器114(如果被檢查的話)或寫緩衝器206(如果被檢查的話)中,則在框326中,存儲器控制器接口邏輯202根據預定的優先級方案訪問主存儲器120,以提取被請求的數據和/或(一個或多個)指令。
因為存儲器控制器接口邏輯202可以從例如指令處理邏輯230、圖形控制器130和/或I/O控制器140接收多個存儲器請求和請求提示,所以一個實施例的存儲器控制器接口邏輯202根據預定的優先級方案,在待解決的存儲器請求和請求提示之間或之中仲裁,以訪問主存儲器120。作為一個例子,存儲器控制器接口邏輯202可以將來源於圖形控制器130的存儲器提取請求,排序為優先於例如來源於指令處理邏輯230的請求提示和存儲器提取請求。作為另一個例子,存儲器控制器接口邏輯202可以將來源於指令處理邏輯230的存儲器提取請求,排序為優先於來源於指令處理邏輯230的需要請求提示,並且可以將來源於指令處理邏輯230的需要請求提示,排序為優先於來源於指令處理邏輯230的投機性請求提示。通過將存儲器提取請求排序為優先於請求提示,存儲器控制器接口邏輯202通過在如果不這樣主存儲器120就將空閒時,才為請求提示訪問主存儲器120,來幫助減少平均存儲器訪問等待時間。因此,存儲器控制器接口邏輯202幫助分散對主存儲器120的訪問,並因此而更加充分地使用訪問主存儲器120的帶寬。分散對主存儲器120的訪問還可以幫助最小化與共享主存儲器120的任何其他設備之間的總線衝突。
當存儲器控制器接口邏輯202確定,可以為請求提示來訪問主存儲器120以提取被請求的數據和/或(一個或多個)指令時,存儲器控制器接口邏輯202向存儲器接口邏輯204發出請求提示。存儲器接口邏輯204根據請求提示訪問主存儲器120,以提取被請求的數據和/或(一個或多個)指令。存儲器接口邏輯204將所提取的數據和/或(一個或多個)指令返回給存儲器控制器接口邏輯202,並且存儲器控制器接口邏輯202在框328中,在提示緩衝器114中創建或更新被請求的數據和/或(一個或多個)指令的條目,以存儲從主存儲器120取得的被請求的數據和/或(一個或多個)指令的拷貝。一個實施例的存儲器控制器接口邏輯202,還沒有將被請求的數據和/或(一個或多個)指令返回給請求提示的請求者。
響應於接收在框316中發出的存儲器提取請求,存儲器控制器接口邏輯202在框330中確定被請求的數據和/或(一個或多個)指令是否存儲在寫緩衝器206中。一個實施例的存儲器控制器接口邏輯202,可以直接在框330中檢查寫緩衝器206。一個實施例的存儲器控制器接口邏輯202,在框330中還可以檢查提示緩衝器114,其可指示被請求的數據和/或(一個或多個)指令是否存儲在寫緩衝器206中。如果被請求的數據和/或(一個或多個)指令存儲在寫緩衝器206中,則存儲器控制器接口邏輯202在框332中通過總線接口邏輯210和主高速緩存控制邏輯220,將被請求的數據和/或(一個或多個)指令從寫緩衝器206返回到指令處理邏輯230。一個實施例的總線接口邏輯210,還可以可選擇地將被請求的數據和/或(一個或多個)指令存儲在輔助高速緩衝存儲器212中。一個實施例的主高速緩存控制邏輯220,也可以可選擇地將被請求的數據和/或(一個或多個)指令存儲在主高速緩衝存儲器222中。一個實施例的存儲器控制器接口邏輯202在框332中,還可以可選擇地取消請求提示和/或使提示緩衝器114的任何相應條目無效。
如果被請求的數據和/或(一個或多個)指令沒有存儲在寫緩衝器206中,即如果寫緩衝器206發信號通知失敗,則存儲器控制器接口邏輯202在框334中確定被請求的數據和/或(一個或多個)指令是否存儲在提示緩衝器114中。如果是這樣,即如果提示緩衝器114發信號通知命中,則存儲器控制器接口邏輯202在框336中通過總線接口邏輯210和主高速緩存控制邏輯220,將被請求的數據和/或(一個或多個)指令從提示緩衝器114返回到指令處理邏輯230。一個實施例的總線接口邏輯210,還可以可選擇地將被請求的數據和/或(一個或多個)指令存儲在輔助高速緩衝存儲器212中。一個實施例的主高速緩存控制邏輯220,也可以可選擇地將被請求的數據和/或(一個或多個)指令存儲在主高速緩衝存儲器222中。一個實施例的存儲器控制器接口邏輯202在框336中,還可以可選擇地使提示緩衝器114的任何相應條目無效。
如果被請求的數據和/或(一個或多個)指令沒有存儲在提示緩衝器114中,即如果提示緩衝器114發出信號通知失敗,存儲器控制器接口邏輯202在框338中根據預定的優先級方案訪問主存儲器120,以提取被請求的數據和/或(一個或多個)指令。一個實施例的存儲器控制器接口邏輯202在框338中,還可以可選擇地取消相應的請求提示和/或使提示緩衝器114中的任何相應條目無效。
當存儲器控制器接口邏輯202確定可以根據存儲器提取請求來訪問主存儲器120,以提取被請求的數據和/或(一個或多個)指令時,存儲器控制器接口邏輯202向存儲器接口邏輯204發出存儲器提取請求。存儲器接口邏輯204根據存儲器提取請求訪問主存儲器120,以提取被請求的數據和/或(一個或多個)指令。存儲器接口邏輯204將被提取的數據和/或(一個或多個)指令返回給存儲器控制器接口邏輯202,並且存儲器控制器接口邏輯202在框340中通過總線接口邏輯210和主高速緩存控制邏輯220,將被請求的數據和/或(一個或多個)指令從主存儲器120返回到指令處理邏輯230。一個實施例的存儲器控制器接口邏輯202,可以可選擇地將被請求的數據和/或(一個或多個)指令存儲在提示緩衝器114中。一個實施例的總線接口邏輯210,還可以可選擇地將被請求的數據和/或(一個或多個)指令存儲在輔助高速緩衝存儲器212中。一個實施例的主高速緩存控制邏輯220,還可以可選擇地將被請求的數據和/或(一個或多個)指令存儲在主高速緩衝存儲器222中。
在另一個實施例中,其中提示緩衝器114可以存儲被請求的數據和/或(一個或多個)指令存儲在寫緩衝器206中的指示,該實施例中的存儲器控制器接口邏輯202可以可選擇地先檢查提示緩衝器114,然後,只有在提示緩衝器114中的相應條目指示被請求的數據和/或(一個或多個)指令存儲在寫緩衝器206中時,才檢查寫緩衝器206。另一個實施例中,在例如存儲器控制器112不包含寫緩衝器206的情況下,或者在存儲器控制器接口邏輯202每次在寫緩衝器206中更新或存儲相應的數據和/或(一個或多個)指令時,存儲器控制器接口邏輯202都更新提示緩衝器114的情況下,存儲器控制器接口邏輯202可以可選擇地跳過對寫緩衝器206的檢查。
在一個實施例中,其中提示緩衝器114可以存儲被請求的數據和/或(一個或多個)指令存儲在寫緩衝器206中的指示,該實施例的存儲器控制器接口邏輯202根據圖4中圖示的流程圖400,來解決對寫緩衝器206中的一個或多個條目的刷新。
在圖4的框402中,存儲器控制器接口邏輯202確定寫緩衝器206中的一個或多個條目是否將被刷新到主存儲器120中。存儲器控制器接口邏輯202可以由於以下原因而確定寫緩衝器206中的一個或多個條目將被刷新例如因為寫緩衝器206存儲了至少預定數量的條目,因為對主存儲器120的訪問已經變慢,和/或因為在寫緩衝器206中的數據和/或(一個或多個)指令已經被更新,而對所述數據和/或(一個或多個)指令的存儲器提取請求正在等待解決。一個實施例中,如果存儲器控制器接口邏輯202確定寫緩衝器206中的任何條目將被刷新,則該實施例中的存儲器控制器接口邏輯202就確定寫緩衝器206中的所有條目都將被刷新。
如果寫緩衝器206中的一個或多個條目將被刷新,則存儲器控制器接口邏輯202在框404中確定,提示緩衝器114是否具有與寫緩衝器206中將被刷新的條目相對應的任何條目。如果是這樣,則存儲器控制器接口邏輯202用來自寫緩衝器206的相應的被更新的數據和/或(一個或多個)指令,來更新提示緩衝器114中的每一個相應的條目。
無論提示緩衝器114是否具有與寫緩衝器206中將被刷新的條目相對應的任何條目,存儲器控制器接口邏輯202都用來自寫緩衝器206中每一個將被刷新的條目的被更新的數據和/或(一個或多個)指令,來更新主存儲器120。
另一個實施例中,其中提示緩衝器114可以存儲被請求的數據和/或(一個或多個)指令存儲在寫緩衝器206中的指示,存儲器控制器接口邏輯202通過以下來解決對寫緩衝器206中一個或多個條目的刷新將寫緩衝器206中將被刷新的一個或多個條目寫入主存儲器120,然後為提示緩衝器114中的相應條目發出請求提示,以訪問主存儲器120來提取被請求的數據和/或(一個或多個)指令。
圖5圖示了一個實施例的提示緩衝器114的條目500。提示緩衝器114可以存儲任何合適數量的條目。
條目500包括地址欄位502和數據欄位504。條目500還包括多種控制欄位,例如寫緩衝器狀態標記欄位506、請求提示狀態標記欄位508、完成標記欄位510和有效標記欄位512。
地址欄位502用於存儲被請求的數據和/或(一個或多個)指令所在的地址。數據欄位504用於將以前從寫緩衝器206或主存儲器120提取的數據和/或(一個或多個)指令存儲到地址欄位502的地址。地址欄位502和數據欄位504每一個都可以具有任何合適的大小。
寫緩衝器狀態標記欄位506指示,由對應於條目500的請求提示所請求的數據和/或(一個或多個)指令是否存儲在寫緩衝器206中。一個實施例的存儲器控制器接口邏輯202設置寫緩衝器狀態標記欄位506,以在存儲器控制器接口邏輯202確定寫緩衝器206中的被請求的數據和/或(一個或多個)指令時,指示寫緩衝器命中。在例如存儲器控制器112不包含寫緩衝器206的情況下,或者在存儲器控制器接口邏輯202每一次更新寫緩衝器206之後都更新提示緩衝器114中相應的數據和/或(一個或多個)指令的情況下,可以不使用寫緩衝器狀態標記欄位506。一個實施例的寫緩衝器狀態標記欄位506存儲一位。
一個實施例的存儲器控制器接口邏輯202檢查寫緩衝器狀態標記欄位506,以在存儲器提取請求得出條目命中時,確定條目500的被請求的數據和/或(一個或多個)指令是存儲在數據欄位504中還是存儲在寫緩衝器206中。
請求提示狀態標記欄位508指示對應於條目500的請求提示是否已經被存儲器控制器接口邏輯202執行。一個實施例的存儲器控制器接口邏輯202設置請求提示狀態標記欄位508,以在提示緩衝器114中創建條目500時指示待解決。一個實施例的存儲器控制器接口邏輯202設置請求提示狀態標記欄位508,以在存儲器控制器接口邏輯202將用於相應請求提示的被請求的數據和/或(一個或多個)指令存儲在數據欄位504中時,或者在其確定寫緩衝器206中的被請求的數據和/或(一個或多個)指令時,來指示已完成。在例如存儲器控制器接口邏輯202隻在寫緩衝器206中提取被請求的數據和/或(一個或多個)指令,或者確定被請求的數據和/或(一個或多個)指令之後,才在提示緩衝器114中創建條目的情況下,可以不使用請求提示狀態標記欄位508。一個實施例的請求提示狀態標記欄位508存儲一位。
一個實施例的存儲器控制器接口邏輯202檢查請求提示狀態標記欄位508,以在存儲器提取請求產生條目500命中的結果時,確定相應請求提示的被請求的數據和/或(一個或多個)指令已經存儲在數據欄位504中或者在寫緩衝器206中被確定時。
完成標記欄位510指示條目500的被請求的數據和/或(一個或多個)指令是否響應於存儲器提取請求而已經被返回。一個實施例的存儲器控制器接口邏輯202設置完成標記欄位510,以在存儲器控制器接口邏輯202返回存儲器提取請求的被請求的數據和/或(一個或多個)指令(這會產生對條目500的命中結果)時,指示已完成。一個實施例的完成標記欄位510存儲一位。
一個實施例的存儲器控制器接口邏輯202檢查完成標記欄位510,例如用來無效條目500。
有效標記欄位512指示提示緩衝器114中的條目500是有效條目還是無效條目。一個實施例的存儲器控制器接口邏輯202設置有效標記欄位512,以當在提示緩衝器114中創建條目500時指示有效,而無論對應於請求提示的被請求的數據和/或(一個或多個)指令是否已經被提取或者在寫緩衝器206中被確定。一個實施例的存儲器控制器接口邏輯202設置有效標記欄位512,以在例如相應的請求提示還沒有提取被請求的數據和/或(一個或多個)指令並且已經被取消時,和/或在被請求的數據和/或(一個或多個)指令已經因為存儲器提取請求而被返回(這會產生對條目500的命中結果)時,指示無效。一個實施例的存儲器控制器接口邏輯202可以通過周期性地檢查完成標記欄位510,和/或在將在提示緩衝器114中創建新條目時,嘗試無效條目500。
一個實施例的存儲器控制器接口邏輯202檢查有效標記欄位512,以保證在存儲器提取請求導致對條目500的命中結果時條目500是有效的。
因為存儲器控制器接口邏輯202可以對於以下情況而在提示緩衝器114中存儲一個或多個條目,即存儲器控制器112已經有一段預定的時間沒有接收到所述條目的相應的存儲器提取請求,或者根本就不能接收所述條目的相應的存儲器提取請求,所以一個實施例的存儲器控制器接口邏輯202可以將這種條目的被請求的數據和/或(一個或多個)指令返回到總線接口邏輯210,以將被請求的數據和/或(一個或多個)指令存儲在輔助高速緩衝存儲器212和/或主高速緩衝存儲器222中。這樣,存儲器控制器接口邏輯202可以在提示緩衝器114中繼續創建新條目,並且還可以根據提示緩衝器114中任何已經被排除的條目來請求被請求的數據和/或(一個或多個)指令。
在另一個實施例中,圖1和圖2中的處理器100根據圖6的流程圖600,使用存儲器控制器112來幫助隱藏在訪問主存儲器120中的等待時間。流程圖600中的框602、604、606、608、610、612、614、616、618、620、622、624、626、628、630、632、634、636、638和640,分別對應於圖3的流程圖300中的框302、308、304、306、310、312、314、316、318、320、322、324、326、328、330、332、334、336、338和340。
在主高速緩衝存儲器222失敗之後,在圖3的框308中發出請求提示,而流程圖600中則不同,在主高速緩存控制邏輯220於框606中確定被請求的數據和/或(一個或多個)指令是否存儲在主高速緩衝存儲器222中之前或者同時,主高速緩存控制邏輯220就在框604中向存儲器控制器112發出請求提示。這樣,存儲器控制器112具有更長的窗口機會來啟動對主存儲器120的訪問,以在接收存儲器提取請求之前提取被請求的數據和/或(一個或多個)指令。如果主高速緩衝存儲器222發信號通知高速緩存命中,則在框608中主高速緩存控制邏輯220將被請求的數據和/或(一個或多個)指令從主高速緩衝存儲器222返回給指令處理邏輯230。一個實施例的主高速緩存控制邏輯220,在框608中可以可選擇地通知存儲器控制器112,來取消以前發給存儲器控制器112的請求提示,從而避免不必要地訪問主存儲器120。
一個實施例的指令處理邏輯230,在框604中可以向存儲器控制器112發出請求提示。一個實施例的處理器110可以包括在指令處理邏輯230和存儲器控制器112之間耦合的總線,該總線基本上專用於傳輸請求提示,以幫助加速到存儲器控制器112的請求傳輸。另一個實施例中,指令處理邏輯230可以通過主高速緩存控制邏輯220和總線接口邏輯210發出請求提示。
一個實施例的處理器110可以通過向存儲器控制器112發出預提取請求提示而實現預提取功能,以幫助隱藏存儲器訪問等待時間。一個實施例的處理器110,可以發出合適的請求提示,以在例如指令預提取、高速緩存線分訪問(cache line split access)以及具有統一步進的緊湊循環(例如陣列初始化和存儲器拷貝)的情況下,實現下一個高速緩存線預提取。一個實施例的處理器110還可以從例如微碼或硬體步進分析器發出預提取請求提示。
因為處理器110通過使訪問主存儲器120中引起的等待時間與內部引起的其他等待時間重疊,來幫助隱藏存儲器訪問等待時間,並且可以通過分散對主存儲器120的訪問來幫助減少平均存儲器訪問等待時間,所以處理器110可以用相對增大的吞吐量來處理指令,而不必使用更大的緩衝器、隊列和/或高速緩衝存儲器。
雖然是在處理器110的上下文中描述的,但是一個實施例的圖1和圖2的圖形控制器130和/或I/O控制器140,可以與處理器110類似地來使用存儲器控制器112,以幫助隱藏訪問主存儲器120中的等待時間。
在上面的描述中,已經參照其具體示例實施例描述了本發明。但是很清楚,可以在不脫離由所附權利要求限定的更寬的精神和訪問的情況下,對本發明做出多種改進和改變。因此,說明書和附圖應該被看作是說明性的而不是限制性的。
權利要求
1.一種方法,包括在確定被請求的數據和/或一個或多個指令是否存儲在第一存儲器中之前或者同時,發出請求提示;響應於所述請求提示,來訪問第二存儲器,以提取數據和/或一個或多個指令;將從所述第二存儲器取得的數據和/或一個或多個指令存儲在緩衝器中;以及如果所述被請求的數據和/或一個或多個指令不在所述第一存儲器中,則從所述緩衝器返回所述數據和/或(一個或多個)指令。
2.如權利要求1所述的方法,包括響應於所述請求提示,而確定所述被請求的數據和/或一個或多個指令是否存儲在寫緩衝器中。
3.如權利要求1所述的方法,包括在發出所述請求提示之前,確定所述被請求的數據和/或一個或多個指令是否存儲在第三存儲器中,其中所述發出包括,在所述被請求的數據和/或一個或多個指令不在所述第三存儲器中時發出所述請求提示。
4.如權利要求1所述的方法,其中,所述返回包括發出對所述被請求的數據和/或一個或多個指令的存儲器提取請求。
5.如權利要求4所述的方法,其中,所述返回包括響應於所述存儲器提取請求,而確定所述被請求的數據和/或一個或多個指令是否在寫緩衝器中。
6.一種裝置,包括第一存儲器;耦合到所述第一存儲器的邏輯,用於在確定被請求的數據和/或一個或多個指令是否在所述第一存儲器中之前或者同時發出請求提示,如果所述被請求的數據和/或一個或多個指令不在所述第一存儲器中時,所述邏輯發出存儲器提取請求;以及耦合到所述邏輯並包括緩衝器的存儲器控制器,所述存儲器控制器接收所述請求提示,並響應於所述請求提示而訪問第二存儲器來提取數據和/或一個或多個指令,並將所取得的數據和/或一個或多個指令存儲在所述緩衝器中,所述存儲器控制器響應於所述存儲器提取請求,而將所述所取得的數據和/或一個或多個指令從所述緩衝器返回到所述邏輯。
7.如權利要求6所述的裝置,其中,所述第一存儲器包括主高速緩衝存儲器。
8.如權利要求6所述的裝置,其中,所述第一存儲器包括輔助高速緩衝存儲器。
9.如權利要求6所述的裝置,包括耦合到所述邏輯的第三存儲器,所述邏輯用於確定所述被請求的數據和/或一個或多個指令是否在所述第三存儲器中,並用於在所述被請求的數據和/或一個或多個指令不在所述第三存儲器中時發出所述請求提示。
10.如權利要求6所述的裝置,其中,所述存儲器控制器包括寫緩衝器,用於存儲將被寫入所述第二存儲器的數據和/或一個或多個指令,所述存儲器控制器用於響應於所述請求提示,而確定所述被請求的數據和/或一個或多個指令是否存儲在所述寫緩衝器中。
11.如權利要求6所述的裝置,其中,所述存儲器控制器包括寫緩衝器,用於存儲將被寫入所述第二存儲器的數據和/或一個或多個指令,所述存儲器控制器用於響應於所述存儲器提取請求,而確定所述被請求的數據和/或一個或多個指令是否存儲在所述寫緩衝器中。
12.如權利要求6所述的裝置,其中,所述邏輯包括用於發出所述請求提示的指令處理邏輯。
13.如權利要求6所述的裝置,其中,所述邏輯包括用於發出所述請求提示的主高速緩存控制邏輯。
14.一種系統,包括主存儲器;高速緩衝存儲器;耦合到所述高速緩衝存儲器的邏輯,用於請求數據和/或一個或多個指令,以及用於在確定所述被請求的數據和/或一個或多個指令是否在高速緩衝存儲器中之前或者同時發出請求提示,如果所述被請求的數據和/或一個或多個指令不在所述高速緩衝存儲器中,則所述邏輯發出存儲器提取請求;以及存儲器控制器,耦合到所述邏輯和所述主存儲器並且包括緩衝器,所述存儲器控制器接收所述請求提示,並響應於所述請求提示而訪問所述主存儲器來提取數據和/或一個或多個指令,並將所取得的數據和/或一個或多個指令存儲在所述緩衝器中,所述存儲器控制器響應於所述存儲器提取請求,而將所述所取得的數據和/或一個或多個指令從所述緩衝器返回到所述邏輯。
15.如權利要求14所述的系統,其中,所述高速緩衝存儲器包括主高速緩衝存儲器。
16.如權利要求14所述的系統,其中,所述高速緩衝存儲器包括輔助高速緩衝存儲器。
17.如權利要求14所述的系統,其中,所述高速緩衝存儲器包括主高速緩衝存儲器和輔助高速緩衝存儲器,所述邏輯確定所述被請求的數據和/或一個或多個指令是否在所述主高速緩衝存儲器中,並且如果所述被請求的數據和/或一個或多個指令不在所述主高速緩衝存儲器中,則發出所述請求提示。
18.如權利要求14所述的系統,其中,所述存儲器控制器包括寫緩衝器,用於存儲將被寫入所述主存儲器的數據和/或一個或多個指令,所述存儲器控制器響應於所述請求提示,而確定所述被請求的數據和/或一個或多個指令是否存儲在所述寫緩衝器中。
19.如權利要求14所述的系統,其中,所述存儲器控制器包括寫緩衝器,用於存儲將被寫入所述主存儲器的數據和/或一個或多個指令,所述存儲器控制器響應於所述存儲器提取請求,而確定所述被請求的數據和/或一個或多個指令是否存儲在所述寫緩衝器中。
20.如權利要求14所述的系統,其中,所述邏輯包括用於發出所述請求提示的指令處理邏輯。
21.如權利要求14所述的系統,其中,所述邏輯包括用於發出所述請求提示的主高速緩存控制邏輯。
22.如權利要求14所述的系統,其中,所述高速緩衝存儲器、所述邏輯以及所述存儲器控制器被集成到一起。
全文摘要
在確定被請求的數據和/或(一個或多個)指令是否存儲在第一存儲器中之前或者同時,發出請求提示。響應於該請求提示,而訪問第二存儲器以提取數據和/或(一個或多個)指令。從第二存儲器取得的數據和/或(一個或多個)指令被存儲在緩衝器中。如果被請求的數據和/或(一個或多個)指令不在第一存儲器中,則從緩衝器返回數據和/或(一個或多個)指令。
文檔編號G06F9/38GK1561480SQ02819069
公開日2005年1月5日 申請日期2002年9月26日 優先權日2001年9月28日
發明者蘇布拉馬尼亞姆·梅尤拉恩, 維韋克·加爾格, 穆罕默德·A·阿卜杜勒蘭, 賈甘納特·凱沙夫 申請人:英特爾公司

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀