新四季網

偏移在先的高等待時間操作的存儲器重排序隊列的製作方法

2023-05-26 04:49:16

偏移在先的高等待時間操作的存儲器重排序隊列的製作方法
【專利摘要】用於控制在動態隨機存取存儲器中的存儲器刷新操作的方法、存儲器系統和數據處理系統。該方法包括確定對於第一存儲器列的推遲的存儲器刷新操作的計數,並且響應於該計數接近高優先級閾值,發出對於該第一存儲器列的早期高優先級刷新通知。該高優先級閾值指示用於在該第一存儲器列處進行高優先級存儲器刷新操作的預定時間。響應於該早期高優先級刷新通知,動態地修改讀取重排序隊列行為以向以該第一存儲器列為目標的至少一個讀取命令給予優先調度,並且根據該優先調度,對該第一存儲器列執行所述至少一個讀取命令中的一個或多個。優先調度在刷新操作在該第一存儲器列處開始之前從該重排序隊列中移除了這些命令。
【專利說明】偏移在先的高等待時間操作的存儲器重排序隊列

【技術領域】
[0001]本公開大體涉及存儲器系統並且尤其涉及存儲器系統中操作的調度。更具體地,本公開涉及控制存儲器系統中存儲器訪問操作以及高等待時間(latency)存儲器操作的調度。

【背景技術】
[0002]存儲器中進行的最高等待時間操作之一是刷新操作。刷新操作在動態隨機存取存儲器(DRAM)中周期性地進行,這要求周期的刷新操作以便保持一個或多個存儲器區(bank)的內容。沒有持續的刷新,隨著存儲器單元電容器洩露它們的電荷,DRAM將丟失寫入到DRAM的數據。DRAM製造商和標準委員會已經定義了刷新操作之間的最大間隔或時間段(tREFI)。響應於存儲器控制器周期性發出的刷新命令而刷新DRAM。刷新操作花費稱為刷新周期時間(tRFC)的時間段來完成。在被刷新的存儲器區可以由所調度的讀取操作訪問之前完成刷新周期。
[0003]技術進步已經引起了 DRAM晶片容量(或密度)的增加。隨著DRAM容量增加,單元包含DRAM的每個列(rank)的刷新周期時間也增加。對於低密度DRAM晶片,刷新周期時間具有對讀取性能的可忽略的影響。然而,對於高密度DRAM晶片,可能要求存儲器讀取在完成所要求的刷新操作之前等待。該長等待時間可能導致對於高密度DRAM晶片的劣化的性能。例如,I千兆字節DRAM可以具有110納秒的刷新周期時間,而8千兆字節DRAM可以具有350納秒的刷新周期時間。相反,對存儲器位置的讀取操作通常可以在25納秒內完成。隨著未來的DRAM晶片以更高密度和增加的容量構建,預見刷新周期時間進一步增加。


【發明內容】

[0004]一般地公開了用於控制在存儲器系統中的高優先級、高等待時間操作的方法、存儲器系統和數據處理系統。一個具體實施例提供了用於控制在動態隨機存取存儲器中的存儲器刷新操作的方法和存儲器系統。根據該具體實施例,該方法包括對於第一存儲器列確定推遲的存儲器刷新操作的計數,並且響應於該計數接近高優先級閾值,發出對於第一存儲器列的早期高優先級刷新通知。該高優先級閾值指示用於在第一存儲器列處作為高優先級存儲器刷新操作來進行存儲器刷新操作的預定調度時間。響應於早期高優先級刷新通知,動態地修改讀取重排序(reorder)隊列行為動態地修改以對目標是第一存儲器列的至少一個讀取命令給出優先級調度,並且根據優先級調度對該第一存儲器列執行該至少一個讀取命令的一個或多個。在刷新操作在第一存儲器列上開始之前,目標是第一存儲器列的讀取命令的優先級調度從重排序隊列中移除了這些具體命令。
[0005]以上
【發明內容】
包含了細節的簡化、概括和省略,並且不意圖作為對所要求的主題的綜合性描述,而是意圖提供與之關聯的一些功能的簡要概述。所要求主題的其他系統、方法、功能、特徵和優勢在以下附圖和詳細書寫的描述之上對於本領域技術人員將是或將變得顯而易見。
[0006]附圖標記
[0007]示例性實施例的描述將結合附圖來閱讀,附圖中:
[0008]圖1A-1C提供了其中實踐所述實施例中的一個或多個的三個示例數據處理系統的框圖表示;
[0009]圖2圖示了根據一個或多個實施例的示例存儲器系統的框圖表示;
[0010]圖3A圖示了根據一個實施例的在重排序操作之前和之後的示例讀取重排序隊列的內容;
[0011]圖3B圖示了根據一個實施例的在響應於早期高優先級刷新通知的重排序操作之前和之後的示例讀取重排序隊列的內容;
[0012]圖3C圖示了根據一個實施例的在響應於早期高優先級刷新通知的重排序操作之前和之後的示例讀取重排序隊列的內容;
[0013]圖4圖示了根據一個實施例的在響應於早期完成通知的重排序操作之前和之後的示例讀取重排序隊列的內容;
[0014]圖5A提供了圖示根據一個實施例的用於控制存儲器刷新操作的方法處理的流程圖;
[0015]圖5B提供了圖示根據一個實施例的用於控制包括高優先級高等待時間存儲器操作的存儲器訪問操作的調度的方法處理的流程圖;並且
[0016]圖6是圖示了根據一個實施例的存儲器刷新周期的時序圖。

【具體實施方式】
[0017]說明性實施例一般地公開了用於控制存儲器系統中的高優先級、高等待時間操作的方法、存儲器系統和數據處理系統。存儲器系統包括存儲器控制器,該存儲器控制器具有跟蹤在用於在存儲器系統的第一存儲器列中進行高優先級、高等待時間操作的所調度時間之前剩餘的時間的邏輯。該存儲器系統配置有由從存儲器控制器的命令重排序隊列調度的不同存儲器訪問操作單獨可訪問的多個列。響應於在用於進行高優先級、高等待時間操作的調度時間之前剩餘時間達到預建立的早期通知時間,存儲器控制器邏輯偏移(bias)包含目標是多個列的存儲器訪問操作的重排序隊列,以使目標是第一存儲器列的任何第一存儲器訪問操作的調度優先。相對於目標是其他存儲器列的重排序隊列中的其他存儲器訪問操作,該邏輯還調度對第一存儲器列的第一存儲器訪問操作用於早期完成。然後該邏輯在調度的時間在第一存儲器列處進行高優先級、高等待時間操作。重排序隊列的偏移和第一存儲器訪問操作的調度觸發了在第一存儲器列處進行高優先級、高等待時間操作之前在重排序隊列內剩餘的第一存儲器訪問命令的更快消耗。
[0018]一個具體實施例提供了用於控制動態隨機存取存儲器中的存儲器刷新操作的方法和存儲器系統。對於第一存儲器列確定推遲的存儲器刷新操作的計數。響應於該計數接近高優先級閾值,對第一存儲器列發出早期高優先級刷新通知。響應於該早期高優先級刷新通知,修改讀取重排序隊列行為以向目標是第一存儲器列的至少一個命令給予優先級。在第一存儲器列上執行該命令。通過預先通知在存儲器控制器內的邏輯何時需要存儲器刷新,存儲器控制器邏輯可以修改讀取重排序隊列中的讀取命令的執行順序並且在該操作開始之前發出目標是與該存儲器刷新相同的存儲器列的讀取命令。在對於正被刷新的存儲器列的高等待時間存儲器刷新操作正在處理並且等待完成的同時,可以發出對其他存儲器列的讀取命令。命令的該早期處理改進了讀取重排序隊列、存儲器總線和動態隨機存取存儲器的整體性能和利用。
[0019]在對本公開的示例性實施例的以下詳細描述中,足夠詳細地描述了其中可以實踐本公開的具體示例性實施例,以使得本領域技術人員能夠實踐本公開,並且將理解,可以利用其他實施例,並且不背離本公開的精神或範圍可以做出邏輯的、架構的、程序的、機械的、電的以及其他的改變。以下詳細描述因而不認為是限制性的,並且本公開的範圍由所附權利要求及其等同物定義。
[0020]要理解具體組件、裝置和/或參數名稱(比如在此描述的執行實體/邏輯的那些)的使用僅作為示例並且不意味著暗示對本公開的任何限制。本公開可以因此可以沒有限制地用被利用來描述在此的組件/裝置/參數的不同命名法/術語來實現。給出利用術語的上下文中,這裡使用的每一個術語被給予其最廣的含義。
[0021]現在參考附圖,並以圖1A、1B和IC開始,描繪了可以在其中有利地實現實施例的示例數據處理系統(DPS) 100的框圖表示。如這裡所用,術語「數據處理系統」意圖包括包含了可以處理具有不同等待時間的存儲器訪問操作的存儲器子系統的任意類型的計算裝置或機器。在實施例的更具體的應用中,DPS指代具有動態隨機存取存儲器(DRAM)的存儲器子系統的裝置,該DRAM具有單獨可訪問的子部分,這裡通常稱為列,並且對其的訪問由存儲器控制器內的邏輯控制。
[0022]圖1A、1B和IC圖示了分別標記為DPS100A、100B和100C的示例DPS的三個不同配置。因為這三個DPS具有類似組件,所以用單個描述來描述這三個配置。為了簡化,對於DPS的引用通常應當指示為DPS100,而對DPS的三個配置之一的具體引用將由對附圖標記的A、B或C擴展來指示。每一個DPS100A、100B、100C分別包括一個或多個處理器模塊或處理器晶片102A、102B、102C。每一個處理器晶片102A、102B、102C包括一個或多個中央處理器(CPU),圖示了其中的CPU104。在這裡的描述通篇,可以可互換地利用術語CPU和處理器作為指代同一組件。每一個處理器晶片102A、102B、102C進一步包括翻譯後備緩衝器(TLB) 106和高速緩存子系統108。高速緩存子系統108可以包括一個或多個級的高速緩存,比如LI高速緩存和L2高速緩存,並且較低級高速緩存中的一個或多個可以是共享高速緩存。
[0023]在DPS100A的配置中(圖1A),處理器晶片102A進一步包括片上存儲器控制器110,並且圖示了單個系統存儲器112的一個或多個系統存儲器組件。系統存儲器112 (或簡單地說,存儲器112)經由系統互連組織(稱為系統總線114)物理地耦接到處理器晶片102。如由DPS100B和100C的配置所示,DPS100內的存儲器控制器110的位置以及存儲器控制器110的數量可以基於DPS100的設計而變化。因此,在圖1B,存儲器控制器110從處理器晶片102B分離或是在處理器晶片102B的片外,並且經由系統總線114耦接到系統存儲器112。同樣,在圖1C中,對於每一個系統存儲器112A和112B提供單獨的存儲器控制器110A、110B,並且每一個存儲器控制器110A、I1B直接連接到相應的存儲器112A、112B並且通過系統總線114可通信地耦接到處理器晶片102C。
[0024]DPS100C的實施例提供了分布式系統存儲器配置,通過該配置,兩個分離的系統存儲器(存儲器112AU12B)在DPS100內連接,作為分布式存儲器的代表性集合。分離的存儲器控制器110A、I1B然後可以連接到三個不同配置之一中的存儲器112A、112B和或處理器晶片。無論存儲器控制器110相對於處理器晶片和或存儲器112的位置以及不同存儲器的數量如何,對系統存儲器112的訪問由存儲器控制器110控制。
[0025]如圖1進一步示出的,DPS100A可以包括其他組件中的物理計算機可讀存儲介質120 (或儲存器(storage))、輸入/輸出裝置和對應的控制器(通常表示為1/0122)和網絡接口卡(NIC) 125。NIC125使得DPS100A能夠連接到其他遠程裝置和網絡並與其他遠程裝置和網絡通信。
[0026]本領域普通技術人員將理解,圖1A、1B和IC中描繪的硬體組件和基本配置可以改變。DPS100內的說明性組件不意圖為窮盡的,而是代表性的以突出被用來實現本公開的主要組件。例如,除了或取代所描繪的硬體,可以使用其他裝置/組件。所描繪的示例不意圖暗示對目前描述的實施例和/或大體公開的架構的或其他的限制。圖1A、1B和IC中描繪的示例數據處理系統可以例如是IBM eServer pSeries系統(紐約阿芒克州的國際商用機器公司的產品,其運行高級交互執行(AIX)作業系統(IBM公司的商標))或LINUX作業系統(Linus Torvalds 的商標)。
[0027]圖2圖示了可以在DPS100內利用的存儲器訪問子系統200的框圖。存儲器訪問子系統200通常包括存儲器112和控制並管理到存儲器112以及來自存儲器112的命令和數據的流的存儲器控制器110。存儲器訪問子系統200還包括通用讀取隊列(GPRQ) 205和命令分派邏輯207。GPRQ205包含用於保持從DPS100 (圖1A、1B、1C)的CPU104發出的要在存儲器112上執行的讀取命令。通用讀取隊列205可以是先入先出隊列。GPRQ205通信地連接到命令分派207,該命令分派207通信地連接到存儲器控制器110的讀取重排序隊列(RRQ) 210。當RRQ210具有用於接收用於調度到存儲器112的新命令的開放條目時,命令分派207轉發來自GPRQ205的讀取命令或指令到讀取重排序隊列210。
[0028]系統存儲器112包括多個存儲器列,每列由至少一個可以由存儲器控制器100經由存儲器訪問地址和數據總線218而訪問的動態隨機存取存儲器(DRAM)構成。在說明性實施例中,存儲器112被圖示為具有4個列,列O 225、列I 226、列2 227以及列3 228,每一列具有在其中可以存儲數據250-253的DRAM220-223。當指代具有連接到相同地址和數據總線(通常由從存儲器訪問總線218延伸的箭頭示出)的DRAM集合的系統存儲器112的子集時,使用術語「存儲器列」。儘管對於多個列的訪問可能重疊,但是因為全部存儲器列共享相同的存儲器訪問總線218,所以在任意給定時間僅一個列可以利用存儲器訪問總線218。數據250-253可以通過讀和寫命令的操作而存儲在列225-228內的DRAM220-223內以及從列225-228內的DRAM220-223取回。
[0029]存儲器控制器110包含對DRAM220-223讀和寫並通過周期性地發送電流脈衝經過每一個存儲器列225-228來刷新DRAM220-223的各個列所需的邏輯。存儲器控制器110包括讀取重排序隊列(RRQ) 210、讀取重排序隊列邏輯(RRQ邏輯)212、命令調度器(或最終仲裁器)215、其他控制邏輯240A-240N以及刷新控制器230。其他控制邏輯240A-240N管理存儲器控制器110的整體操作,刷新控制器230管理存儲器列225-228的周期性刷新。每一個存儲器控制器組件可以經由通信組織彼此通信,該通信組織包括經過具體信號線而傳送的具體發消息信號,圖示了其中一些。
[0030]本公開的功能、方法和處理可以作為存儲器控制器110內的固件代碼和/或邏輯而提供。固件代碼和邏輯可以包括讀取重排序隊列(RRQ)邏輯212、也可以稱為最終仲裁器215的命令調度器215、其他控制邏輯240A-240N、刷新控制器230、以及用於控制相應列225-228內的DRAM的220-223的存儲器刷新操作的可編程方法的實現。
[0031]讀取重排序隊列210包含用於保持要在存儲器列225-228上執行的重排序的讀取命令的多個寄存器條目。說明性實施例提供了 8個寄存器條目RRQ(O)-RRQ(7),使得八個不同讀取命令相對於彼此被重排序和/或調度。儘管示出了八個槽(slot)或條目RRQ (O)-RRQ (7),但是在不同的實施例中可以使用更多或更少的條目。讀取重排序隊列210的操作的某些方面可以由讀取重排序隊列邏輯212控制,該讀取重排序隊列邏輯212被示出為讀取重排序隊列210的組件和/或與讀取重排序隊列210關聯的組件。在一個替代配置中,RRQ邏輯212可以是命令調度器215內的功能邏輯,並且終止於或者起源於RRQ邏輯212的信號線在必要時將被到命令調度器215和來自命令調度器215的恰當信號線而替代。讀取重排序隊列邏輯212至少部分確定在讀取重排序隊列210中存儲的讀取命令的次序。在一個實施例中,讀取重排序隊列210允許將對於不同的存儲器列225-228的待決(pending)讀取命令的次序改變或重新布置為不同的次序,使得較高優先級的讀取命令首先被發送到對應的存儲器列225-228。讀取重排序隊列210從命令分派207接收讀取命令並且發出所選擇的讀取命令到命令調度器215。
[0032]命令調度器(或最終仲裁器)215選擇要在存儲器列225-228上進行的操作的次序和定時。命令調度器215接收所選擇的來自讀取重排序隊列210、寫入重排序隊列(未示出)、刷新控制器230和其他混雜資源的讀取命令或指令,並且命令調度器215基於給定優先級對這些命令或指令排序。命令調度器215可以響應於來自刷新控制器230的高優先級刷新命令233或低優先級刷新命令234的輸入而調度對存儲器列225-228的存儲器刷新操作。
[0033]刷新控制器230包括刷新控制器邏輯232和多個計數器,包括計數器0235、計數器I 236、計數器2 237和計數器3 238。刷新控制器邏輯232確定何時要在存儲器列225-228的具體一個上執行刷新操作。刷新控制器邏輯232管理諸如存儲器刷新操作之類的高等待時間存儲器操作。刷新控制器邏輯232確定何時需要進行存儲器刷新操作或其他高優先級和/或高等待時間操作,並且調度該存儲器刷新操作或其他高等待時間操作以最大化對於諸如讀取命令之類的正常等待時間操作的向DRAM220和從DRAM220的數據傳輸的速率。要理解儘管刷新控制器230在這裡被圖示並描述為控制並管理在DRAM220上的存儲器刷新操作的執行,但是刷新控制器230可以是用來控制和/或管理可以在DRAM220-223上進行並且已知其執行的調度時間的預先知識的任意高等待時間存儲器操作的通用管理器。
[0034]根據一個實施例,刷新控制器230管理或控制諸如存儲器刷新操作之類的高等待時間存儲器操作。刷新控制器230確定何時需要在存儲器列225-228上執行存儲器刷新操作或其他高等待時間操作,並且觸發命令調度器215和/或RRQ邏輯212以使得目標是與該存儲器刷新操作或其他高等待時間操作相同的列的所有其他讀取命令的調度優先,以便在對該特定列進行刷新操作之前最大化向DRAM220-223和從DRAM220-223的數據傳輸的速率。存儲器刷新操作之間的最大間隔或時間段被定義為tREFI。在一個實施例中,存儲器刷新操作需要在tREFI間隔內進行以避免存儲器列225-228中數據的丟失。刷新控制器邏輯232可以保持跟蹤(ke印track of)自從對給定存儲器列的先前存儲器刷新操作已經發生起的經過時間和/或在將開始下一存儲器刷新操作之前的時間。對每一個列225-228經由分配給該特定列的對應計數器235-238跟蹤該信息。該計數可以向上計數到用於進行高等待時間操作的調度的時間或向下計數到計時器的到期,此時進行高等待時間操作。
[0035]在一個實施例中,計數器235-238保持跟蹤或計數對每一個相應的存儲器列225-228已經被推遲到將來時間段的存儲器刷新操作的數量。因此,計數器O 235計數對於存儲器列O 225的被推遲的存儲器刷新操作的數量,計數器I 236計數對於存儲器列I 226的被推遲的存儲器刷新操作的數量,計數器2 237計數對於存儲器列2 227的被推遲的存儲器刷新操作的數量,以及計數器3 238計數對於存儲器列3 228的被推遲的存儲器刷新操作的數量。被推遲的存儲器刷新操作稱為存儲器刷新積壓(backlog)計數。聯合電子設備工程委員會(JEDEC)標準DRAM規範允許存儲器刷新操作的推遲高達8個推遲的最大限制。可以在高存儲器總線利用的時段期間建立存儲器刷新積壓,因為存儲器刷新操作通常被分配了比性能關鍵的讀取命令更低的優先級。要理解儘管所述實施例引入了具體的最大限制,但是該限制是基於存儲器訪問子系統200的設計和/或在存儲器訪問子系統200的設計期間或基於存儲器訪問子系統200的操作條件而可編程的和/或可上下調節的。
[0036]刷新控制邏輯232可以監視由計數器235-238跟蹤的被推遲的存儲器刷新操作的計數,並且通過對N個存儲器列之一發出低優先級刷新(N)命令234到命令調度器215來周期性地調度存儲器刷新操作。響應於接收到該低優先級刷新(N)命令234,例如當在目標是該存儲器列的讀取重排序隊列內存在大量的正常讀取操作時,命令調度器215可以推遲低優先級刷新命令的調度。
[0037]刷新控制邏輯232可以檢測計數器235-238的任意一個何時達到被推遲的存儲器刷新操作的高優先級閾值水平或數量。例如,當被推遲的存儲器刷新操作的最大計數是8時,高優先級閾值數量可以是6的計數。高優先級閾值可以是預定的並且是可編程或可改變的。當計數器235-238的任意一個達到高優先級閾值時,刷新控制邏輯232向命令調度器215發出對於N個存儲器列中的對應一個的高優先級刷新(N)命令233。響應於接收到該高優先級刷新(N)命令233,命令調度器215將對於給定存儲器列的待決存儲器刷新的優先級動態地提升為在任意讀取或寫入命令的優先級之上。命令調度器215調度以進行對於該存儲器列的存儲器刷新操作。
[0038]當發出諸如存儲器刷新操作之類的高等待時間操作時,不能發出目標是相同的存儲器列的讀取重排序隊列210中的命令,直到對該存儲器列的存儲器刷新操作完成。在存儲器刷新操作在處理中的同時,目標是正被刷新的相同列的待決讀取命令佔據讀取重排序隊列中的空間,並且有效地降低了讀取重排序隊列210的尺寸。
[0039]在一個實施例中,刷新控制邏輯232可以檢測計數器235-238的任意一個何時已經超出了預定早期閾值計數,並且刷新控制邏輯232從刷新控制器230向讀取重排序隊列邏輯212發出對給定存儲器列N的早期高優先級刷新(N)通知244。早期高優先級刷新(N)通知244用信號通知讀取重排序隊列邏輯212對給定存儲器列的高優先級存儲器刷新命令或請求不久將接近。響應於接收到早期高優先級刷新(N)通知244,讀取重排序隊列邏輯212改變或偏移其調度算法以向讀取重排序隊列210中的、目標是與迫近的(impending)存儲器刷新操作相同的存儲器列N的那些命令給予優先級。早期高優先級刷新(N)通知244和由高優先級(N)命令233觸發的實際高優先級刷新操作之間的時間延遲在刷新控制邏輯232內可編程。
[0040]本公開的方面基於如下理解:期望在存儲器刷新操作發生之前耗盡(drain of)讀取重排序隊列210的儘可能多的讀取命令。具體地,一個或多個實施例指向減少目標是將要被刷新的具體存儲器列的RRQ內的存儲器訪問命令的數量。通常,所述的早期通知功能觸發在重排序隊列內的目標是相同的第一存儲器列的剩餘命令在高優先級、高等待時間操作在該第一存儲器列處進行之前更快消耗。在高等待時間存儲器刷新操作在第一存儲器列上在處理中並且等待完成時,可以發出對其他存儲器列的讀取命令。因此,來自讀取重排序隊列210的這些具體讀取命令的早期移除允許當諸如存儲器刷新操作之類的高等待時間操作正在存儲器列225-228之一上執行時讀取重排序隊列210可用於保持目標是其他存儲器列的讀取命令。這改進了讀取重排序隊列210、存儲器訪問總線218和DRAM220-223的整體性能和利用。
[0041]當分配給特定存儲器列的計數器235-238中包含的計數/值小於高優先級閾值計數時,命令調度器215和讀取重排序隊列邏輯212可以使得對該存儲器列的命令優先於低(或正常)優先級存儲器刷新請求。只要在讀取重排序隊列210中存在指向相同存儲器列的讀取命令,存儲器刷新就被推遲。在一個或多個實施例中,每次推遲刷新時,計數的值遞增I (或對於下降計數器是遞減)。當在對於特定存儲器列的計數器235-238中包含的計數增加到等於高優先級閾值水平時,存儲器刷新操作被認為是高優先級存儲器刷新操作並且不可以再被推遲。刷新控制器230的刷新控制邏輯232通知命令調度器215執行高優先級存儲器刷新操作。在一個實施例中,刷新控制邏輯232賦予(assert)高優先級(N)刷新命令233到命令調度器215,這使得命令調度器215停止(withhold)調度讀取重排序隊列210中的目標是與該高優先級刷新命令相同的存儲器列的任何讀取命令,並且命令調度器215還觸發和/或開始刷新在該特定存儲器列上的進行。
[0042]在一個實施例中,早期高優先級刷新(N)通知244可以由讀取重排序隊列邏輯212使用以防止或阻擋對於作為存儲器刷新的目標的相同存儲器列的任何新讀取命令從命令分派207進入讀取重排序隊列210。由此防止讀取重排序隊列210在命令調度器215正在耗盡讀取重排序隊列210的對相同存儲器列的命令以為該列處的存儲器刷新操作做準備的同時被用對該相同存儲器列的讀取命令重新填充。
[0043]在一個實施例中,RRQ邏輯212監視讀取重排序隊列210中的目標是與待決的高優先級存儲器刷新操作相同的存儲器列的所有讀取命令的完成。如果在讀取重排序隊列210中沒有剩下要發出到將被刷新的相同存儲器列的命令,則讀取重排序隊列邏輯212可以發送早期完成通知246到刷新控制器230,該通知指示在該隊列中不存在剩餘的對該目標列的命令。響應於接收到該早期完成通知246,刷新控制器邏輯232可以指令命令調度器215開始在作為目標的存儲器列處的存儲器刷新操作,作為在來自讀取重排序隊列210的命令之前的下一命令。觸發了待決高優先級存儲器刷新操作的早期處理的該條件可以稱為早期完成條件。
[0044]繼續參考圖2,圖3A圖示了初始的讀取重排序隊列210和重排序的讀取重排序隊列310A的示例。初始的讀取重排序隊列210包含8個條目(寄存器)RRQ0-RRQ7 (從右到左),其包含目標是4個可能的存儲器列的不同存儲器列225-228的命令。作為讀取重排序隊列的條目的目標的具體列由放置在各個條目內的整數0-3指示。例如,假定寄存器從右到左順序地是寄存器O (RegO)到寄存器7 (Reg7)),則RegO包含目標是存儲器列(I)的命令,並且Reg7包含目標是存儲器列(O)的命令。在本實施例中,讀取重排序隊列210是先入先出隊列(FIFO)。讀取重排序隊列210中的命令的序列的目標是以(10312100)的次序序列的存儲器列。從讀取重排序隊列210發出的下一讀取命令或指令是來自RegO並且目標是存儲器列(I)。讀取重排序隊列邏輯212可以改變或重排序目標是這些存儲器列的命令的序列以允許對數據總線218的更有效利用,如重排序的讀取重排序隊列310A中所示。重排序的讀取重排序隊列310A中的命令的序列以(10312010)的新次序序列的存儲器列為目標。
[0045]圖3B圖示了初始的讀取重排序隊列210和重排序的讀取重排序隊列310B,該重排序的讀取重排序隊列310B是基於早期高優先級刷新(O)通知244A的接收而重排序的。早期高優先級刷新(O)通知244A指示目標是第一存儲器列或列(O) 225的待決高優先級刷新操作。如圖3A那樣,寄存器-1包含目標是第一存儲器列(列O)的讀取命令,寄存器6和7兩者包含目標是第一存儲器列或列(O)的命令。其他列是剩餘的寄存器中的讀取命令的目標。讀取重排序隊列210中的命令的初始序列的目標是以(10312100)的次序序列的存儲器列。從讀取重排序隊列210發出的下一讀取命令或指令是來自寄存器O並且目標是存儲器列(I)。響應於接收到來自刷新控制器230的對於存儲器列(O)的早期高優先級刷新(O)通知244A,讀取重排序隊列邏輯212可以改變或重排序目標是這些存儲器列的命令的序列,如重排序的讀取重排序隊列310B中所示。
[0046]相對於在命令調度器215處對讀取命令的調度,高優先級刷新(O)命令233A然後將在命令分派次序315內示出的位置處而開始。如所示,高優先級刷新(O)操作233將由命令調度器215(圖2)進行,遵循對目標是第一存儲器列(RO)的所有讀取命令的調度,以使得到高優先級刷新(O)命令233A發出時,讀取重排序隊列的這些讀取命令被耗盡。在重排序的讀取重排序隊列310B中的命令的序列的目標是以(01030121)的新次序序列的存儲器列。如命令分派次序315所示,在重排序的讀取重排序隊列310B中的對存儲器列(O)的所有讀取命令現在被調度或排序為在對存儲器列(O)的存儲器刷新操作233開始之前完成。換言之,相對於目標是其他存儲器列的其他命令,朝向隊列的前方推動對存儲器列(O)的讀取命令用於優先調度。根據本實施例,儘管對目標是第一列的第一命令給予了高優先級,但是對其他列的命令的分派仍然散布在對這些第一命令的優先級調度之間,以說明如下事實:在先前調度的第一命令正在第一列上完成的同時,可以(基於其初始排序)調度目標是其他列的命令。
[0047]圖3C圖示了相對於基於早期高優先級刷新(O)通知244B的的接收而調度重排序的讀取重排序隊列310B中命令的、對重排序的讀取重排序隊列310C內的命令的不同調度。讀取重排序隊列210的初始寄存器值與圖3B中的那些相同。因此,讀取重排序隊列210中的命令序列的目標是以(10312100)的次序序列的存儲器列。響應於從刷新控制器230接收到對於存儲器列(O)的早期高優先級刷新(O)通知244B,讀取重排序隊列邏輯212可以改變或重排序以該存儲器列為目標的命令序列,如重排序的讀取重排序隊列310C中所示。
[0048]在重排序的讀取重排序隊列310C中的命令序列的目標是以(00013121)的新次序序列的存儲器列。注意到,在重排序的讀取重排序隊列310C中的對存儲器列(O)的所有讀取命令被給予了相對於所有其他讀取命令的第一優先級,並且還被調度或重排序為在對存儲器列(O)的高優先級存儲器刷新操作發生之前完成。換言之,對存儲器列(O)的讀取命令被推向隊列的前方。按照來自命令調度器215的分派次序(315),由高優先級刷新(O)命令233B觸發的高優先級刷新(O)操作233被指示為在先前位於隊列寄存器RRQ0-RRQ3中的讀取命令之後順序地調度,使得在目標是第一列(O)的所有讀取命令的分派和完成之後以及在下一讀取命令的分派之後的時間時調度高優先級刷新(O)操作233。
[0049]儘管在以上實施例中示出第一命令的分派在高優先級刷新(O)操作的開始時間之前完成,但是本公開的功能方面還可應用於其中調度的讀取命令中的僅一些可以在高優先級刷新(O)操作之前發出的實施例。實施例的總體效果是偏移讀取重排序隊列以提前調度否則在正在特定列上進行刷新操作的同時將保留在讀取重排序隊列中並且佔據有價值的隊列空間的任意第一命令。另外,根據一個實施例並且如重排序的讀取重排序隊列310 (t2)所示,其中t2表示在第一讀取命令的優先執行之後且恰在高優先級刷新(O)操作由命令調度器215執行之前的稍後時間,重排序的讀取重排序隊列310 (t2)已經從命令分派207接收了若干新命令的輸入;然而,沒有新的讀取命令以即將被刷新的DRAM220的第一列(O)為目標。
[0050]圖4圖示了初始讀取重排序隊列210和重排序的讀取重排序隊列410,示出了在讀取重排序隊列210處接收早期高優先級刷新(I)通知244B之後的早期完成條件的。寄存器3包含目標是存儲器列(I)的命令,並且所有其他寄存器包含目標是不同存儲器列的命令。在刷新(I)通知244B的接收時在讀取重排序隊列210中的命令的初始序列的目標是以(20312300)的次序序列的存儲器列。要從讀取重排序隊列210發出的調度的下一讀取命令或指令是來自寄存器O並目標是存儲器列(2)。響應於從刷新控制器230接收到對於存儲器列(I)的早期高優先級刷新(I)通知244B,讀取重排序隊列邏輯212偏移該隊列以向目標是列(I)的讀取命令給予優先級,並且在讀取重排序隊列210中的其他讀取命令之前發出該讀取命令。因為這是以列(I)為目標的唯一命令,所以在早期通知時段到期之前耗盡了讀取重排序隊列的所有相關命令。在該情形下,並且根據一個或多個實施例,RRQ邏輯212向刷新控制器230發出早期完成信號246。該早期完成信號246指示不存對目標列通知246的剩餘命令。響應於接收到早期完成信號246,刷新控制器230向命令調度器215發出高優先級刷新(I)命令233B,這使得命令調度器215開始存儲器112中的列1226的刷新。高優先級刷新(I)操作233被示出為在命令分派次序415內在對列I的讀取命令的完成之後立即被分派。高優先級刷新(I)命令233B因此在其他讀取命令之前被選擇,包括在當前在寄存器RRQO中的讀取命令之前。因為在重排序的讀取重排序隊列410中不存在目標是存儲器列(I)的剩餘讀取命令,所以存儲器刷新操作233可以相對於刷新命令本該被調度開始的正常時間更早地開始。
[0051]圖5A圖示根據說明性實施例的用於控制存儲器刷新操作的示例性處理的流程圖。在圖5的討論中,也參考圖2中描述的要素。方法500可以實現在存儲器控制器110中。在一個實施例中,方法500可以通過識別出對存儲器列的諸如刷新操作的高等待時間操作在不久的將來將要發生、並且修改讀取重排序隊列210中的讀取命令的次序以耗盡讀取重排序隊列的目標是相同存儲器列的任意命令而增加存儲器系統的性能。該方法的各個方面可以由存儲器控制器110內的不同邏輯組件完成。然而,為了簡化,方法500被描述為大體由存儲器控制器邏輯或更具體地由刷新控制器邏輯完成。
[0052]圖5A的方法在塊502處開始。刷新控制器邏輯232對每一個存儲器列設置高優先級閾值或最大計數值以及對應的早期高優先級刷新通知時間值(塊504)。在一個實施例中,高優先級閾值是可編程的並且可以設置在JEDEC標準DRAM存儲器刷新推遲的最大數量,對於給定的存儲器列這是8個推遲。在一個實施例中,為了避免每個列同時被刷新,可以錯開對於列的tREFI定時器。在一個實施例中,早期高優先級刷新通知時間可以是預定的,並且可以定義為小於一個tREFI間隔的任意時間延遲,高優先級閾值是8個刷新推遲。在一個實施例中,較大或較小的時間延遲時段可以用來確定早期高優先級刷新通知時間和/或較大或較小的積壓計數值可以用於高優先級閾值。
[0053]刷新控制器邏輯232檢查積壓計數是否等於高優先級閾值-1 (塊506)。如果積壓計數不等於高優先級閾值-1,則重置早期高優先級通知(塊508),然後返回到決定塊506。如果積壓計數等於高優先級閾值-1,則方法500前進到塊510。
[0054]刷新控制器邏輯232檢查以查看時間是否等於對該列的預建立的早期高優先級刷新通知值(N)(塊510)。如果時間不等於對該存儲器列的早期刷新通知(N)值,則方法500的處理返回到塊506,在那裡刷新控制器邏輯232繼續跟蹤積壓計數,如果時間等於對存儲器列的早期高優先級刷新通知(N)值,則刷新控制器230的刷新控制器邏輯232發出早期高優先級刷新(N)通知244到讀取重排序隊列邏輯212 (塊512)。早期高優先級刷新通知提供了對於存儲器列(N)的高優先級存儲器刷新操作將發生在不久的將來的早期通知和/或警告。
[0055]響應於早期高優先級刷新(N)通知244,讀取重排序隊列邏輯212可以防止到對作為目標的存儲器列的讀取命令進入讀取重排序隊列210 (塊514)。因此,在一個實施例中,早期高優先級刷新(N)通知的接收可以用來防止或阻擋對相同存儲器列的任何新讀的取命令從任何上遊隊列進入讀取重排序隊列210。由此防止讀取重排序隊列210在命令調度器215正試圖在存儲器刷新操作之前耗盡讀取重排序隊列210的對作為目標的存儲器列的命令的同時被用對相同存儲器列的讀取命令重新填充。在某些實施例中,在塊514處進行的處理可以從方法500省略。
[0056]同樣,響應於早期高優先級刷新(N)通知244,讀取重排序隊列邏輯212偏移其重排序以分配較高優先級給對由待決存儲器刷新操作作為目標的存儲器列的待決讀取命令的調度順序(塊516)。命令調度器215在該存儲器列的積壓計數達到高優先級閾值之前處理重排序的序列中的下一高優先級讀取命令(塊518)。特定讀取命令的該優先化和早期調度允許讀取重排序隊列210可用於在存儲器刷新操作正在作為目標的存儲器列上執行時保持對除了作為目標的存儲器列之外的其他存儲器列的讀取命令。在高等待時間存儲器刷新操作在處理中並且等待完成的同時,可以發出對其他存儲器列的讀取命令。最終,以上處理改進了存儲器112內的讀取重排序隊列210、存儲器總線和DRAM220的整體性能和利用。
[0057]在決定塊520,讀取重排序隊列邏輯212確定在讀取重排序隊列210中是否存在目標是由待決高優先級存儲器刷新操作作為目標的相同存儲器列的任何剩餘命令(塊520)。如果在讀取重排序隊列210中不存在目標是由該存儲器刷新操作作為目標的相同存儲器列的命令,讀取重排序隊列邏輯212發送早期完成通知246到刷新控制器230,指示不存在對該目標列的剩餘命令(塊522)。刷新控制器邏輯232通知命令調度器215在比高優先級刷新本該將被調度更早的時間時進行或執行對於作為目標的存儲器列的存儲器刷新操作。
[0058]如果在讀取重排序隊列210中存在剩餘的目標是與待決高優先級存儲器刷新操作相同的存儲器列的命令(塊520),則刷新控制器邏輯232確定推遲的刷新操作的計數是否等於高優先級閾值(塊524)。如果推遲的刷新操作的計數等於高優先級閾值,則刷新控制器邏輯232觸發命令調度器215以發出刷新命令到具有高優先級刷新操作的列(N)(塊526)。執行存儲器刷新操作以開始該特定列的刷新。如果推遲的刷新操作的計數不等於高優先級閾值,則方法500返回到步驟518,在那裡命令調度器215繼續處理重排序的序列中的下一讀取命令。在存儲器刷新操作(塊526)已經完成之後,方法500返回到步驟508,在那裡刷新控制器邏輯232重置早期高優先級閾值。
[0059]圖5B是圖示可以與圖5A中所示的方法500並行操作的方法550的具體實現的流程圖。參考該圖,方法550在塊552處開始,並且前進到塊554,在那裡刷新控制器邏輯232通過將計數器235-238設置為諸如O的初始值並且開始tREFI計時器來初始化計數器235-238。刷新控制器邏輯232確定tREFI計時器是否已經到期或者是否已經發出存儲器刷新操作命令(塊556)。響應於tREFI計時器到期,積壓計數由刷新控制器邏輯232遞增(塊558)。響應於存儲器刷新命令被發出,積壓計數被刷新控制器邏輯232遞減(塊560)。響應於tREFI計時器沒有到期存儲器刷新命令也沒有被發出,方法550返回到塊556並且重複直到這兩個條件之一出現。
[0060]在一個實施例中,該方法包括存儲器控制器通過以下跟蹤在調度的時間之前剩餘的時間:設置計數器以跟蹤進行先前的高優先級、高等待時間操作和高優先級、高等待時間操作之間的時段;當計數器到期時進行高優先級、高等待時間操作;並且重置計數器以跟蹤下一高優先級、高等待時間操作。取決於具體實現,用於進行下一高優先級、高等待時間操作的調度的時間可以基於(a)用於進行高優先級、高等待時間操作的預建立的周期性和(b)對下一高優先級、高等待時間操作的調度的時間的預先通知而為存儲器控制器邏輯所知曉。該預先通知可以源自於所連接的處理器或進行高等待時間存儲器訪問的其他組件。
[0061]現在參考圖6,其圖示了具有早期完成條件的基於定時的計數器(圖5)的存儲器刷新周期的時間段Ttl-T3的時間線或時序圖。另外參考圖2,示出了在包括對存儲器的給定列(N)的待決高優先級刷新命令的存儲器刷新周期期間刷新控制器230、刷新控制器邏輯232和命令調度器215發出若干命令、以及對存儲器的給定列(N)的高優先級刷新命令的執行。
[0062]在時間Ttl,刷新積壓計數已經遞增到等於HP刷新閾值-1的值。在時間T1,由於被調度在時間T2開始的待決高優先級刷新命令,從刷新控制器230發出對於存儲器的列(N)的早期高優先級刷新(N)通知233。如果RRQ210的狀態允許由於在RRQ210中沒有帶來目標是相同列(N)的命令而在Tl之前發出刷新,則因為積壓計數由於所發出的刷新而遞減,不發出早期通知。在時間Tl之後,命令調度器215處理來自讀取重排序隊列210的目標是與該待決高優先級刷新命令相同的列(N)的三個讀取命令。當讀取重排序隊列210不再包含目標是該存儲器列(N)的讀取命令時,讀取重排序隊列發送早期完成信號或通知246到刷新控制器230的刷新控制器邏輯232。這發生在比T2更早的時間,表示為時間T2_N,其中N是在T2之前的時間的實際值。命令調度器215在T2_N發出對DRAM器件220的存儲器列(N)的刷新命令,並且刷新操作在時間段T2_N和T3_N之間執行。存儲器刷新周期在時間T3_N而非時間T3結束。因此,由讀取重排序隊列邏輯232發出早期完成信號或通知246允許存儲器刷新操作比以否則將發生的時間更早地完成。這允許目標是相同存儲器列的新讀取命令比如果新讀取命令必須等待直到時間T3到期更早地被調度。
[0063]所描述的實施例中的一個或多個提供了用於控制存儲器刷新操作的方法、存儲器系統和數據處理系統。所述實施例通過允許存儲器讀取操作發生在諸如存儲器刷新之類的高等待時間操作的發生之前而改進了存儲器系統的性能。通過在需要存儲器刷新之前通知命令調度器,命令調度器可以修改讀取重排序隊列中的讀取命令的執行順序並且在存儲器刷新操作開始之前發出目標是與該操作相同的存儲器列的讀取命令。在高等待時間存儲器刷新操作處於處理中的同時,可以發出對其他存儲器列的讀取命令。這改進了讀取重排序隊列、存儲器總線和動態隨機存取存儲器的整體性能和利用。
[0064]在以上流程圖的每一個中,一個或多個方法可以具體實現在包含計算機可讀代碼的計算機可讀介質中,使得當在計算裝置上執行該計算機可讀代碼時進行一系列步驟。在一些實現中,不脫離本公開的精神和範圍,方法的某些步驟被組合、同時進行或以不同順序進行或可能被省略。因此,儘管以特定序列描述和圖示了方法步驟,但是步驟的具體序列的使用不意圖暗示對本公開的任何限制。不脫離本公開的精神和範圍,可以關於步驟的序列做出改變。特定序列的使用因而不被理解為限制的意思,並且本公開的範圍僅由所附權利要求定義。
[0065]所屬【技術領域】的技術人員將理解的,本公開的方面可以體現為系統、方法或電腦程式產品。因此,本公開的方面可以採取完全的硬體實施例或組合了軟體和硬體方面的在此可以統稱為「電路」、「模塊」或「系統」的實施實施例的形式。此外,本公開的方面可以採取在一個或多個具有計算機可讀程序代碼的計算機可讀介質中體現的電腦程式產品的形式。
[0066]可以採用一個或多個計算機可讀介質的任意組合。計算機可讀介質可以是計算機可讀信號介質或者計算機可讀存儲介質。計算機可讀存儲介質例如可以是一但不限於——電、磁、光、電磁、紅外線、或半導體的系統、裝置或器件,或者任意以上的組合。計算機可讀存儲介質的更具體的例子(非窮舉的列表)包括:具有一個或多個導線的電連接、可攜式計算機盤、硬碟、隨機存取存儲器(RAM)、只讀存儲器(ROM)、可擦式可編程只讀存儲器(EPR0M或快閃記憶體)、可攜式緊湊盤只讀存儲器(CD-ROM)、光存儲器件、磁存儲器件、或者上述的任意合適的組合。在本文件中,計算機可讀存儲介質可以是任何包含或存儲程序的有形介質,該程序可以被指令執行系統、裝置或者器件使用或者與其結合使用。
[0067]計算機可讀的信號介質可以包括在基帶中或者作為載波一部分傳播的數據信號,其中承載了計算機可讀的程序代碼。這種傳播的數據信號可以採用多種形式,包括——但不限於——電磁信號、光信號或上述的任意合適的組合。計算機可讀的信號介質還可以是計算機可讀存儲介質以外的任何計算機可讀介質,該計算機可讀介質可以發送、傳播或者傳輸用於由指令執行系統、裝置或者器件使用或者與其結合使用的程序。
[0068]計算機可讀介質上包含的程序代碼可以用任何適當的介質傳輸,包括一但不限於——無線、有線、光纜、RF等等,或者上述的任意合適的組合。可以以一種或多種程序設計語言的任意組合來編寫用於執行本發明操作的電腦程式代碼,所述程序設計語言包括面向對象的程序設計語目一諸如Java、Smalltalk、C++等,還包括常規的過程式程序設計語言一諸如「C」語言或類似的程序設計語言。程序代碼可以完全地在用戶計算機上執行、部分地在用戶計算機上執行、作為一個獨立的軟體包執行、部分在用戶計算機上部分在遠程計算機上執行、或者完全在遠程計算機或伺服器上執行。在涉及遠程計算機的情形中,遠程計算機可以通過任意種類的網絡一包括區域網(LAN)或廣域網(WAN) —連接到用戶計算機,或者,可以連接到外部計算機(例如利用網際網路服務提供商來通過網際網路連接)。
[0069]參照根據本發明實施例的方法、裝置(系統)和電腦程式產品的流程圖和/或框圖描述了本公開的方面。應當理解,流程圖和/或框圖的每個方框以及流程圖和/或框圖中各方框的組合,都可以由電腦程式指令實現。這些電腦程式指令可以提供給通用計算機、專用計算機或其它可編程數據處理裝置的處理器,從而生產出一種機器,使得這些電腦程式指令在通過計算機或其它可編程數據處理裝置的處理器執行時,產生了實現流程圖和/或框圖中的一個或多個方框中規定的功能/動作的裝置。
[0070]也可以把這些電腦程式指令存儲在計算機可讀介質中,這些指令使得計算機、其它可編程數據處理裝置、或其他設備以特定方式工作,從而,存儲在計算機可讀介質中的指令就產生出包括實現流程圖和/或框圖中的一個或多個方框中規定的功能/動作的指令的製造品(article of manufacture)。電腦程式指令還可以載入到計算機、其他可編程數據處理設備或其他裝置上,以使得在計算機、其他可編程設備或其他裝置上進行一系列操作步驟,以產生計算機實現的處理,使得在計算機或其他可編程設備上執行的指令提供用於實現在流程圖和/或框圖的一個或多個塊中指定的功能/動作的處理。
[0071]因此,重要的是,儘管在具有安裝的(或執行的)軟體的全功能的計算機(伺服器)的背景下描述本公開的說明性實施例,但是本領域技術人員將理解,本公開的說明性實施例的軟體方面能夠以各種形式作為程序產品而分發,並且無論用來實際實現分發的介質的特定類型如何,本公開的說明性實施例都同樣適用。
[0072]儘管已經參考示例性實施例描述了本公開,但是本領域技術人員將明白,可以不脫離本公開的範圍而做出各種改變並且對於其要素可以替換其等效物。此外,可以做出很多修改以使特定系統、裝置或其組件適應本公開的教導而不脫離其實質範圍。因而,意圖本公開不限於用於實現本公開而公開的特定實施例,而是本公開將包括落入所附權利要求的範圍內的所有實施例。此外,第一、第二等術語的使用不表示任何順序或重要性,而是使用術語第一、第二等來彼此區分要素。
[0073]這裡使用的術語僅是為了描述特定實施例的目的而不意圖限制本發明。如這裡使用的,單數形式「一」、「一個」和「該」也意圖包括複數形式,除非上下文以其他方式明確指示。將進一步理解,術語「包括」和/或「包含」在本說明書中使用時,指定了所述的特徵、整體、步驟、操作、要素和/或組件的存在,但是不排除一個或多個其他特徵、整體、步驟、操作、要素組件和/或它們的組的存在或添加。
[0074]以下權利要求中的所有部件或步驟加上功能要素的相應結構、材料、動作和等同物意圖包括用於結合如具體聲明的其他要求保護的要素來進行功能的任何結構、材料或動作。已經出於說明和描述的目的而呈現本發明的描述,但是不意圖為窮盡或限制於所公開的形式的發明。不背離本發明的範圍和精神,許多修改和變型將對於本領域普通技術人員是顯然的。選擇並描述實施例以便於最佳地說明本公開的原理和實際應用,並且使得本領域普通技術人員能夠對於具有適合於所預期的具體用途的各種修改的各種實施例理解本公開。
【權利要求】
1.一種操作存儲器系統的方法,包括: 存儲器控制器跟蹤在用於進行對存儲器系統的第一存儲器列的高優先級、高等待時間操作的所調度時間之前剩餘的時間,其中所述存儲器系統包括多個列,所述多個列能夠由從該存儲器控制器的命令重排序隊列調度的不同存儲器訪問操作單獨地訪問; 響應於在用於進行該高優先級、高等待時間操作的所調度時間之前剩餘的時間達到預建立的早期通知時間,偏移包含以所述多個列為目標的存儲器訪問操作的重排序隊列,以使以該第一存儲器列為目標的任何第一存儲器訪問操作的調度優先; 調度對該第一存儲器列的第一存儲器訪問操作以相對於該重排序隊列中的以其他存儲器列為目標的其他存儲器訪問操作而早完成;以及 在所調度時間在該第一存儲器列處進行所述高優先級、高等待時間操作; 其中,對所述重排序隊列的偏移以及對所述第一存儲器訪問操作的調度觸發在所述重排序隊列內剩餘的第一存儲器訪問命令在所述高優先級、高等待時間操作在所述第一存儲器列處進行之前的更快消耗。
2.如權利要求1所述的方法,其中存儲器控制器跟蹤在所調度時間之前剩餘的時間包括: 設置計數器以跟蹤在進行先前的高優先級、高等待時間操作和所述高優先級、高等待時間操作之間的時段; 當該計數器到期時,進行所述高優先級、高等待時間操作;以及重置該計數器以跟蹤下一高優先級、高等待時間操作,其中,用於進行下一高優先級、高等待時間操作的所調度時間基於以下之一而已知:(a)用於進行高優先級、高等待時間操作的預建立的周期性和(b)對下一高優先級、高等待時間操作的所調度時間的預先通知。
3.如權利要求1所述的方法,其中,所述高優先級、高等待時間操作是高優先級存儲器刷新操作,並且所述存儲器訪問操作是讀取命令,並且該方法包括: 確定對於該第一存儲器列的推遲的存儲器刷新操作的計數; 響應於該計數接近高優先級閾值,發出對於該第一存儲器列的早期高優先級刷新通知,其中所述高優先級閾值指示用於在該第一存儲器列處作為高優先級存儲器刷新操作而進行存儲器刷新操作的所調度時間; 響應於該早期高優先級刷新通知,修改讀取重排序隊列以向以該第一存儲器列為目標的至少一個讀取命令給予優先調度;以及 根據該優先調度,對該第一存儲器列執行所述至少一個讀取命令中的一個或多個。
4.如權利要求3所述的方法,進一步包括響應於該計數等於該高優先級閾值,指示該所調度時間,刷新該第一存儲器列。
5.如權利要求4所述的方法,進一步包括在接收到該早期高優先級刷新通知之後並且直到該高優先級刷新操作的進行達到預定的完成點之前,阻止以該第一存儲器列為目標的至少一個新的讀取命令進入該讀取重排序隊列。
6.如權利要求3所述的方法,進一步包括響應於該計數不等於該高優先級閾值,推遲對該第一存儲器列的存儲器刷新操作。
7.如權利要求3所述的方法,進一步包括: 響應於在該計數等於該高優先級閾值之前該讀取重排序隊列不具有以該第一存儲器列為目標的剩餘的讀取命令,刷新該第一存儲器列,其中該第一存儲器列在所調度時間之前被刷新;以及 將該計數重置到初始狀態並且開始跟蹤對於下一高優先級存儲器刷新操作的計數。
8.—種存儲器系統,包括: 至少一個存儲器器件,具有多個單獨能夠訪問的列; 存儲器控制器,耦接到該至少一個存儲器器件並且控制存儲器訪問操作的調度,其中所述存儲器控制器包括進行以下的邏輯: 跟蹤在用於進行對該存儲器系統的第一存儲器列的高優先級、高等待時間操作的所調度時間之前剩餘的時間,其中所述存儲器系統包括多個列,所述多個列能夠由從該存儲器控制器的命令重排序隊列調度的不同存儲器訪問操作單獨地訪問; 響應於在用於進行該高優先級、高等待時間操作的所調度時間之前剩餘的時間達到預建立的早期通知時間,偏移包含以所述多個列為目標的存儲器訪問操作的重排序隊列,以使以該第一存儲器列為目標的任何第一存儲器訪問操作的調度優先; 調度對該第一存儲器列的第一存儲器訪問操作以相對於該重排序隊列中的以其他存儲器列為目標的其他存儲器訪問操作而早完成;以及 在所調度時間在該第一存儲器列處進行所述高優先級、高等待時間操作; 其中,對所述重排序隊列的偏移以及對所述第一存儲器訪問操作的調度觸發在所述重排序隊列內剩餘的第一存儲器訪問命令在所述高優先級、高等待時間操作在所述第一存儲器列處進行之前的更快消耗。
9.如權利要求8所述的存儲器系統,其中所述高優先級、高等待時間操作是高優先級存儲器刷新操作,並且所述存儲器訪問操作是讀取命令,以及其中該存儲器控制器包括進行以下的邏輯: 確定對於該第一存儲器列的推遲的存儲器刷新操作的計數; 響應於該計數接近高優先級閾值,發出對於該第一存儲器列的早期高優先級刷新通知,其中所述高優先級閾值指示用於在該第一存儲器列處作為高優先級存儲器刷新操作而進行存儲器刷新操作的所調度時間; 響應於該早期高優先級刷新通知,修改讀取重排序隊列以向以該第一存儲器列為目標的至少一個讀取命令給予優先調度;以及 根據該優先調度,對該第一存儲器列執行所述至少一個讀取命令中的一個或多個。
10.如權利要求8所述的存儲器系統,其中所述存儲器控制器進一步包括進行以下的邏輯:響應於該計數等於該高優先級閾值,指示該所調度時間,刷新該第一存儲器列。
11.如權利要求10所述的存儲器系統,其中所述存儲器控制器進一步包括進行以下的邏輯:在接收到該早期高優先級刷新通知之後並且直到該高優先級刷新操作的進行達到預定的完成點之前,阻止以該第一存儲器列為目標的至少一個新的讀取命令進入該讀取重排序隊列。
12.如權利要求8所述的存儲器系統,其中所述存儲器控制器進一步包括進行以下的邏輯:響應於該計數不等於該高優先級閾值,推遲對該第一存儲器列的存儲器刷新操作。
13.如權利要求8所述的存儲器系統,其中所述存儲器控制器進一步包括進行以下的邏輯: 響應於在該計數等於該高優先級閾值之前該讀取重排序隊列不具有以該第一存儲器列為目標的剩餘的讀取命令,刷新該第一存儲器列,其中該第一存儲器列在所調度時間之前被刷新;以及 將該計數重置到初始狀態並且開始跟蹤對於下一高優先級存儲器刷新操作的計數。
14.一種數據處理系統,包括: 一個或多個處理器; 與所述處理器通信的存儲器系統,所述存儲器系統包括:至少一個存儲器器件,具有多個單獨能夠訪問的列;以及存儲器控制器,耦接到該至少一個存儲器器件並且控制存儲器訪問操作的調度,其中所述存儲器控制器包括進行以下的邏輯: 跟蹤在用於進行對該存儲器系統的第一存儲器列的高優先級、高等待時間操作的所調度時間之前剩餘的時間,其中所述存儲器系統包括多個列,所述多個列能夠由從該存儲器控制器的命令重排序隊列調度的不同存儲器訪問操作單獨地訪問; 響應於在用於進行該高優先級、高等待時間操作的所調度時間之前剩餘的時間達到預建立的早期通知時間,偏移包含以所述多個列為目標的存儲器訪問操作的重排序隊列,以使以該第一存儲器列為目標的任何第一存儲器訪問操作的調度優先; 調度對該第一存儲器列的第一存儲器訪問操作以相對於該重排序隊列中的以其他存儲器列為目標的其他存儲器訪問操作而早完成;以及 在所調度時間在該第一存儲器列處進行所述高優先級、高等待時間操作; 其中,對所述重排序隊列的偏移以及對所述第一存儲器訪問操作的調度觸發在所述重排序隊列內剩餘的第一存儲器訪問命令在所述高優先級、高等待時間操作在所述第一存儲器列處進行之前的更快消耗。
15.如權利要求14所述的數據處理系統,其中跟蹤在所調度時間之前剩餘的時間的邏輯包括: 至少一個計數器;以及 設置該至少一個計數器中的一個以跟蹤在該第一存儲器列處進行先前的高優先級、高等待時間操作和所述高優先級、高等待時間操作之間的時段的邏輯; 當該計數器到期時進行所述高優先級、高等待時間操作的邏輯;以及重置該計數器以跟蹤下一高優先級、高等待時間操作的邏輯,其中,用於進行下一高優先級、高等待時間操作的所調度時間基於以下之一而已知:(a)用於進行高優先級、高等待時間操作的預建立的周期性和(b)對下一高優先級、高等待時間操作的所調度時間的預先通知。
16.如權利要求14所述的數據處理系統,其中所述高優先級、高等待時間操作是高優先級存儲器刷新操作,並且所述存儲器訪問操作是讀取命令,以及其中該存儲器控制器包括進行以下的邏輯: 確定對於該第一存儲器列的推遲的存儲器刷新操作的計數; 響應於該計數接近高優先級閾值,發出對於該第一存儲器列的早期高優先級刷新通知,其中所述高優先級閾值指示用於在該第一存儲器列處作為高優先級存儲器刷新操作而進行存儲器刷新操作的所調度時間; 響應於該早期高優先級刷新通知,修改讀取重排序隊列以向以該第一存儲器列為目標的至少一個讀取命令給予優先調度;以及 根據該優先調度,對該第一存儲器列執行所述至少一個讀取命令中的一個或多個。
17.如權利要求16所述的數據處理系統,其中所述存儲器控制器進一步包括進行以下的邏輯:響應於該計數等於該高優先級閾值,指示該所調度時間,刷新該第一存儲器列。
18.如權利要求17所述的存儲器系統,其中所述存儲器控制器進一步包括進行以下的邏輯:在接收到該早期高優先級刷新通知之後並且直到該高優先級刷新操作的進行達到預定的完成點之前,阻止以該第一存儲器列為目標的至少一個新的讀取命令進入該讀取重排序隊列。
19.如權利要求16所述的數據處理系統,其中所述存儲器控制器進一步包括進行以下的邏輯:響應於該計數不等於該高優先級閾值,推遲對該第一存儲器列的存儲器刷新操作。
20.如權利要求16所述的存儲器系統,其中所述存儲器控制器進一步包括進行以下的邏輯: 響應於在該計數等於該高優先級閾值之前該讀取重排序隊列不具有以該第一存儲器列為目標的剩餘的讀取命令,刷新該第一存儲器列,其中該第一存儲器列在所調度時間之前被刷新;以及 將該計數重置到初始狀態並且開始跟蹤對於下一高優先級存儲器刷新操作的計數。
【文檔編號】G06F12/00GK104137081SQ201380009178
【公開日】2014年11月5日 申請日期:2013年1月8日 優先權日:2012年2月13日
【發明者】J.S.多德森, J.斯圖徹裡, M.A.布裡頓, S.鮑威爾, E.E.雷特 申請人:國際商業機器公司

同类文章

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

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有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-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀