鬼佬大哥大
  • / 11
  • 下載費用:30 金幣  

合并存儲器訪問請求.pdf

摘要
申請專利號:

CN201380076138.3

申請日:

2013.04.30

公開號:

CN105190577A

公開日:

2015.12.23

當前法律狀態:

撤回

有效性:

無權

法律詳情: 發明專利申請公布后的視為撤回IPC(主分類):G06F 13/14申請公布日:20151223|||專利申請權的轉移IPC(主分類):G06F 13/14登記生效日:20170123變更事項:申請人變更前權利人:惠普發展公司,有限責任合伙企業變更后權利人:慧與發展有限責任合伙企業變更事項:地址變更前權利人:美國德克薩斯州變更后權利人:美國德克薩斯州|||實質審查的生效IPC(主分類):G06F 13/14申請日:20130430|||公開
IPC分類號: G06F13/14; G11C7/10; G11C11/4063 主分類號: G06F13/14
申請人: 惠普發展公司,有限責任合伙企業
發明人: M.K.貝內迪特
地址: 美國德克薩斯州
優先權:
專利代理機構: 中國專利代理(香港)有限公司 72001 代理人: 張凌苗;陳嵐
PDF完整版下載: PDF下載
法律狀態
申請(專利)號:

CN201380076138.3

授權公告號:

|||||||||

法律狀態公告日:

2018.03.13|||2017.02.15|||2016.01.20|||2015.12.23

法律狀態類型:

發明專利申請公布后的視為撤回|||專利申請權、專利權的轉移|||實質審查的生效|||公開

摘要

一種計算系統可以包括處理器和存儲器。計算系統還可以包括在處理器與存儲器之間對接的存儲器控制器。存儲器控制器合并訪問存儲器行的請求以形成訪問所述存儲器行的單個請求。

權利要求書

權利要求書
1.  一種計算系統,包括:
處理器;
存儲器;以及
在處理器與存儲器之間對接的存儲器控制器,所述存儲器控制器合并訪問存儲器行的請求以形成訪問所述存儲器行的單個請求。

2.  權利要求1的計算系統,其中所述存儲器包括包含多個存儲器模塊的動態隨機存取存儲器(DRAM)。

3.  權利要求1的計算系統,其中對請求進行重排序以合并所述請求。

4.  權利要求3的計算系統,其中對處理訪問所述存儲器行的單個請求期間所取回的數據進行重排序以滿足系統排序規則。

5.  一種方法,包括:
在存儲器控制器中接收訪問存儲器行的請求;
確定訪問所述存儲器行的請求是否存在于存儲器控制器工作流中;以及
將所接收的請求與存儲器控制器工作流中的請求合并以形成訪問所述存儲器行的單個請求。

6.  權利要求5的方法,還包括對訪問所述存儲器行的請求進行重排序以便合并請求。

7.  權利要求5的方法,還包括對來自處理訪問所述存儲器行的單個請求的數據進行重排序以遵照系統排序規則。

8.  權利要求5的方法,其中所述工作流包括流水線化的存儲器訪問請求。

9.  權利要求5的方法,其中所述存儲器包括包含多個存儲器模塊的動態隨機存取存儲器(DRAM)。

10.  一種存儲器系統,包括:
存儲器;以及
訪問存儲器的存儲器控制器,其包括:
  工作流;以及
  工作流管理器,其確定存儲器訪問請求所引用的存儲器行并且將請求與引用所述存儲器行的工作流中的存儲器訪問請求合并以形成訪問所述存儲器行的單個請求。

11.  權利要求10的存儲器系統,其中所述工作流包括流水線化的存儲器訪問請求。

12.  權利要求10的存儲器系統,其中所述存儲器控制器對來自所述存儲器行的數據進行重排序以遵照系統排序規則。

13.  權利要求10的存儲器系統,其中所述工作流管理器合并存儲器訪問請求以減少存儲器激活。

14.  權利要求10的存儲器系統,其中存儲器訪問請求被重排序以合并請求。

15.  權利要求10的存儲器系統,其中所述存儲器包括包含多個存儲器模塊的動態隨機存取存儲器(DRAM)。

說明書

說明書合并存儲器訪問請求
背景技術
計算系統典型地包括存儲器以存儲由處理器執行的指令和用于數據的臨時存儲。存儲器可以是動態隨機存取存儲器(DRAM)。DRAM包括DRAM電路的模塊或組(bank)。存儲器控制器典型地在處理器與存儲器之間對接。
附圖說明
在以下詳細描述中并且參照附圖來描述某些示例,其中:
圖1是計算系統的示例的框圖;
圖2是存儲器系統的示例的框圖;
圖3是對存儲器訪問請求進行重排序(reorder)的方法的示例的過程流程圖;以及
圖4是對存儲器訪問請求進行重排序的方法的示例的過程流程圖。
具體實施方式
存儲器可能遭受由故障機制導致的失效。失效可以由各種故障機制導致,包括但不限于在特定字線處讀取或寫入數據的重復訪問。在特定字線處讀取或寫入數據的重復訪問可以影響與在物理上鄰近于被重復訪問或激活的字線的其它字線相關聯的存儲元件(即物理存儲器存儲組件)的內容。對字線重復訪問可以導致鄰近字線的放電。
為了緩解重復訪問(即“錘打(hammer)”或“傳輸門(passgate)”故障機制)的影響,存儲器控制器可以追蹤行地址活動以執行行訪問策略。然而,追蹤行地址活動可以向存儲器控制器添加復雜度。
頁面開放策略可以降低對DRAM的激活速率。頁面開放策略是其中頁面作為陣列存儲在緩沖器中的頁面(存儲器地址塊)管理策略。頁面被包含在緩沖器中直到請求對不同頁面的訪問為止。然而,頁面開放策略可能增加行沖突的發生。行沖突是其中請求對除存儲在緩沖器中的頁面之外的頁面的訪問的沖突。作為行沖突的結果,發生延遲,在其期間將頁面從緩沖器清除并且將所請求的頁面作為陣列存儲在緩沖器中。作為行沖突所導致的等待時間的結果,DRAM存儲器的效率降低。
在檢測到行沖突時可以通過對存儲器控制器工作流中的請求進行重排序來解決行沖突。為了對請求進行重排序,追蹤工作在存儲器控制器內的所有行地址并且將所接收的請求與工作流中的所有請求相比較。該方法可能是復雜的。此外,對讀取進行重排序可能增加等待時間并且從經重排序的寫入操作返回的數據可以在返回到處理器之前被重排序。
通過比較訪問地址空間的存儲器行中的地址的傳入請求,可以合并(coalesce)訪問存儲器行的請求以形成訪問存儲器行的單個請求。作為結果,可以減少對存儲器行的激活。由于存儲器行的激活被減少,涉及重復激活的失效也被減少。
圖1是計算系統的示例的框圖。除其它外,計算系統100可以尤其例如是臺式計算機、服務器、膝上型計算機、平板計算機、個人數字助理(PDA)或諸如智能電話之類的蜂窩電話。計算系統100可以包括用于執行所存儲的指令的中央處理單元(CPU)102,以及存儲由CPU102可執行的指令的存儲器設備104。此外,CPU102可以是單核處理器、多核處理器或任何數目的其它配置。另外,計算系統100可以包括多于一個CPU102。例如,計算系統100可以包括多個計算節點,每一個計算節點包括單個或多個處理器。
CPU102可以通過總線106耦合到存儲器設備104。在示例中,存儲器設備104可以包括動態隨機存取存儲器(DRAM),諸如包括多個模塊或組(BANK)的DRAM。計算系統100還可以包括多個存儲器104。例如,存儲器104可以耦合到每一個CPU102。在示例中,計算系統100可以包括多個存儲器104,每一個存儲器耦合到計算節點,或者每一個存儲器104可由包括在計算系統100中的所有計算節點訪問。
CPU102可以通過總線106鏈接到顯示接口108以將計算系統100連接到顯示設備110。顯示設備110可以包括作為計算系統100的內置組件的顯示屏。除其它外,顯示設備110還可以尤其包括計算機監視器、電視或投影儀,其在外部連接到計算系統100。
CPU102還可以通過總線106連接到輸入/輸出(I/O)設備接口112以將計算系統100連接到一個或多個I/O設備114。I/O設備114可以包括例如鍵盤和指示設備,其中除其它外指示設備尤其可以包括觸摸板或觸摸屏。I/O設備114可以是計算系統100的內置組件,或者可以是在外部連接到計算系統100的設備。
網絡接口卡(NIC)116可以通過系統總線106將計算系統100連接到網絡(未描繪)。除其它外,網絡(未描繪)尤其可以是廣域網(WAN)、局域網(LAN)或因特網。在示例中,計算系統100可以經由有線連接或無線連接連接到網絡。
計算系統100還包括存儲設備118。存儲設備118是物理存儲器,除其它外,尤其諸如硬驅動器、光學驅動器、指驅動器、安全數字(SD)卡、microSD卡、驅動器的陣列或其任何組合。存儲設備118還可以包括遠程存儲驅動器。存儲設備118包括在計算系統100上運行的任何數目的應用120。
計算系統還包括用于訪問存儲器104的存儲器控制器122。在示例中,計算系統可以包括多個存儲器控制器122,每一個存儲器控制器122與存儲器104相關聯。存儲器控制器122包括工作流管理器124。在存儲器控制器122中接收訪問存儲器104的請求。請求所請求訪問的存儲器行由存儲器控制器確定。工作流管理器124確定訪問存儲器行的請求是否存在于存儲器控制器122的工作流中。如果訪問存儲器行的請求存在于工作流中,工作流管理器124將所接收的請求與工作流中的請求合并(即組合)以形成訪問存儲器行的單個請求。
例如,對于讀取操作,存儲器控制器可以通過重布置請求的次序或者如果請求訪問與之前的請求相同的高速緩存則消除該請求來合并對存儲器的請求。存儲器可以以讀取請求的接收次序而對請求者進行響應。對于寫入請求,對給定存儲器位置的多個寫入可以被組合,如果它們是不同的“臟(dirty)”字節(對其的數據寫入被中斷的存儲器位置)的話,或者可以被合并成單個寫入,其中寫入的組合副本為發送到存儲器的副本。
要理解到的是,圖1的框圖不意圖指示計算系統100在每一種情況中都包括圖1中所示的所有組件。另外,取決于具體實現方式的細節,任何數目的附加組件可以被包括在計算系統100內。
圖2是存儲器系統200的示例的框圖。存儲器系統200包括存儲器控制器202。存儲器控制器202與存儲器204交互并且控制對存儲器204的訪問。例如,存儲器控制器可以在諸如CPU102之類的處理器與存儲器204之間對接。在示例中,存儲器204可以是動態隨機存取存儲器(DRAM)。例如,存儲器204可以包括多個模塊或組。每一個模塊包括多個存儲器地址。存儲器地址由其在存儲器模塊中的位置定義,包括地址位于其中的行、列、頁面等。
在存儲器控制器202中接收訪問存儲器204的請求。所述請求可以是讀取請求(即讀取存儲在存儲器204中的數據的請求)或寫入請求(即將數據寫入到存儲器204的請求)。所述請求可以包括定義在存儲器204中要被訪問的位置的信息。例如,除其它外,所述請求尤其可以包括行、列和頁面信息。當在存儲器控制器202中接收到請求時,提取位置信息。
存儲器控制器包括工作流206。工作流204是要被處理的存儲器請求的一個或多個隊列。例如,工作流206可以包括包含被調度以被處理的請求的執行隊列。工作流206還可以包括等待在執行隊列中被調度的請求的隊列。可以以任何合適的方式確定工作流206的隊列中的每一個請求的位置。例如,可以基于之前調度的請求的位置來分配每一個請求的位置。
存儲器控制器202還包括工作流管理器208。工作流管理器208分析所提取的位置信息以確定所接收的請求所引用的存儲器204的行。工作流管理器208還確定訪問所接收的請求所引用的行的請求是否存在于工作流206中。如果訪問相同行的請求存在于工作流206中,工作流管理器208將所接收的請求與工作流206中的請求合并以形成訪問所述行的單個請求。
當已經處理了經合并的請求時,數據可以被返回到處理器。存儲器控制器202可以在將數據返回到處理器之前對數據進行重排序。例如,存儲器控制器202可以對數據進行重排序以便遵照計算系統的排序規則。排序規則是寫入在計算系統中以其發生的程序化(programmatic)次序。如果不存在介入的讀取請求,對共同位置的多次寫入可以合并。如果不存在介入的寫入請求,讀取請求可以合并。控制器可以追蹤正被處理的讀取和寫入請求并且以程序化次序返回適當的數據。所述數據可以是任何類型的數據,諸如存儲在存儲器204中的所請求的日期。例如,所述數據可以是完成將數據寫入到存儲器204的完成通知或失敗通知。
如果訪問相同行的請求不存在于工作流206中,工作流管理器208可以將所接收的請求放置在工作流206中。所接收的請求在工作流206中的放置可以以任何合適的方式確定。例如,在包括被并行處理的多個請求的計算系統中,所接收的請求可以被放置在工作流206中以使得不產生組沖突。組沖突是當并行處理存儲器訪問請求的系統中的處理器試圖訪問已經作為存儲器訪問對象的存儲器組時所導致的沖突。
圖3是對存儲器訪問請求進行重排序的方法300的示例的過程流程圖。在塊302處,可以在存儲器控制器中接收訪問存儲器地址的請求。所述請求可以是讀取存儲在存儲器地址中的數據的請求或者將數據寫入到存儲器地址的請求。在示例中,存儲器地址可以是動態隨機存取存儲器(DRAM)中的存儲器地址。所述請求可以包括描述存儲器地址的位置的信息,除其它外尤其諸如行、列和頁面信息。
在塊304處,存儲器控制器可以確定訪問存儲器行的請求是否存在于存儲器控制器工作流中。可以使用分析存儲器控制器工作流中的請求的任何合適的方法。
在塊308處,可以將所接收的請求與存儲器控制器工作流中的請求合并以形成訪問存儲器行的單個請求。存儲器控制器工作流中的請求可以被重排序以合并所述請求。例如,可以將所接收的請求放置在具有已經在工作流中的請求的工作流中以促進合并請求。在示例中,存儲器控制器工作流中的請求可以包括多個經合并的請求。可以將所接收的請求與之前合并的請求合并以形成新的經合并的請求。
在處理經合并的請求之后可以將數據返回到處理器。所述數據可以是從存儲器請求的數據,或者所述數據可以是將數據寫入到存儲器的請求的完成或失敗的通知。存儲器控制器可以在將數據返回到處理器之前對數據進行重排序。例如,存儲器控制器可以對數據進行重排序以遵照采用方法300的計算系統的排序規則。在示例中,方法的塊可以被流水線化。
要理解的是,圖3的過程流程圖不意圖指示方法300的塊要以任何特定次序執行,或者要在每一種情況中包括方法300的所有塊。另外,取決于具體實現方式的細節,未在圖3中示出的任何數目的附加塊可以被包括在方法300內。
圖4是對存儲器訪問請求進行重排序的方法400的示例的過程流程圖。在塊402處,可以在存儲器控制器中接收訪問存儲器地址的請求。所述請求可以是讀取存儲在存儲器地址中的數據的請求或者將數據寫入到存儲器地址的請求。諸如CPU102之類的處理器可以發起請求。在示例中,存儲器地址可以是動態隨機存取存儲器(DRAM)中的存儲器地址。
在塊404處,存儲器控制器可以確定訪問存儲器中的行的請求是否存在于存儲器控制器工作流中。如果訪問行的請求不存在,在塊406處存儲器控制器可以將所接收的請求放置在工作流中。所接收的請求可以以任何合適的方式被放置在工作流中,諸如基于之前在工作流中調度的請求。例如,所接收的請求可以被放置在工作流中在工作流中以使得避免組沖突。
如果訪問行的請求存在于存儲器控制器工作流中,在塊408處可以將所接收的請求放置在具有存在于工作流中的請求的工作流中。在塊410處,所接收的請求可以與存在于工作流中的請求合并以形成訪問存儲器行的單個請求。存在于工作流中的請求可以被重排序以便合并所接收的請求和存在于工作流中的訪問存儲器行的請求。
可以在處理經合并的請求之后將數據返回到處理器。所述數據可以是從存儲器請求的數據,或者所述數據可以是將數據寫入到存儲器的請求的完成或失敗的通知。存儲器控制器可以在將數據返回到處理器之前對數據進行重排序。例如,存儲器控制器可以對數據進行重排序以遵照采用方法300的計算系統的排序規則。在示例中,方法的塊可以被流水線化。
要理解的是,圖4的過程流程圖不意圖指示方法400的塊要以任何特定次序執行,或者要在每一種情況中包括方法400的所有塊。另外,取決于具體實現方式的細節,未在圖4中示出的任何數目的附加塊可以被包括在方法400內。
示例1
本文描述了一種計算系統。所述計算系統可以包括處理器和存儲器。所述計算系統還可以包括在處理器與存儲器之間對接的存儲器控制器。存儲器控制器合并訪問存儲器行的請求以形成訪問所述存儲器行的單個請求。
存儲器可以包括包含多個存儲器模塊的動態隨機存取存儲器(DRAM)。可以對請求進行重排序以合并所述請求。對在訪問所述存儲器行的單個請求的處理期間所取回的數據進行重排序以滿足系統排序規則。
示例2
本文描述了一種方法。所述方法包括在存儲器控制器中接收訪問存儲器行的請求。所述方法還包括確定訪問所述存儲器行的請求是否存在于存儲器控制器工作流中。所述方法還包括將所接收的請求與存儲器控制器工作流中的請求合并以形成訪問所述存儲器行的單個請求。
所述方法還可以包括對訪問存儲器行的請求進行重排序以便合并請求。所述方法還可以包括對來自處理訪問所述存儲器行的單個請求的數據進行重排序以遵照系統排序規則。所述工作流可以包括流水線化的存儲器訪問請求。存儲器可以包括包含多個存儲器模塊的動態隨機存取存儲器(DRAM)。
示例3
本文描述了一種存儲器系統。所述存儲器系統可以包括存儲器和訪問存儲器的存儲器控制器。所述存儲器控制器可以包括工作流和確定存儲器訪問請求所引用的存儲器行的工作流管理器。所述工作流管理器還可以將請求與引用所述存儲器行的工作流中的存儲器訪問請求合并以形成訪問所述存儲器行的單個請求。
所述工作流可以包括流水線化的存儲器訪問請求。所述存儲器控制器可以對來自所述存儲器行的數據進行重排序以遵照系統排序規則。所述工作流管理器可以合并存儲器訪問請求以減少存儲器激活。所述存儲器訪問請求可以被重排序以合并請求。所述存儲器可以包括包含多個存儲器模塊的動態隨機存取存儲器(DRAM)。

關 鍵 詞:
合并 存儲器 訪問 請求
  專利查詢網所有資源均是用戶自行上傳分享,僅供網友學習交流,未經上傳用戶書面授權,請勿作他用。
關于本文
本文標題:合并存儲器訪問請求.pdf
鏈接地址:http://www.wwszu.club/p-6405420.html
關于我們 - 網站聲明 - 網站地圖 - 資源地圖 - 友情鏈接 - 網站客服客服 - 聯系我們

[email protected] 2017-2018 zhuanlichaxun.net網站版權所有
經營許可證編號:粵ICP備17046363號-1 
 


收起
展開
鬼佬大哥大