存儲器存取的動態(tài)優(yōu)先級管理的制作方法
【專利說明】
【背景技術】
[0001]一些復雜電子系統(tǒng)(舉例來說,例如手機及平板的多媒體設備或各種多處理器系統(tǒng))可具有共享單個大存儲器的多個主控裝置(主控器)。主控器為能夠啟動對共享存儲器的存儲器存取請求的任何電路。舉例來說,主控器可為處理器(舉例來說,通用微處理器、圖形處理器、微控制器等)或者在接收數(shù)據(jù)之后需要寫入到存儲器的子系統(tǒng)或邏輯塊(舉例來說,相機傳感器)或需要從存儲器讀取的子系統(tǒng)或邏輯塊(舉例來說,顯示控制器)。
[0002]影響性能的兩個重要存儲器存取度量為延時及帶寬??傮w延時為從主控器請求存儲器存取的時間直到所述主控器接收到所請求的數(shù)據(jù)的第一部分的時間為止的時間。此文檔主要集中于從主控器請求存儲器存取的時間直到共享存儲器接收到請求的時間為止的時間。帶寬指代每時間單位通過一個點的數(shù)據(jù)量。此文檔集中于將大量數(shù)據(jù)塊傳送到存儲器及從存儲器傳送大量數(shù)據(jù)塊所需要的帶寬。
[0003]各種類型的主控器具有不同延時及帶寬要求。高性能處理器需要最低可能延時來提供最大性能。高速緩存存儲器用于減少外部存儲器存取的數(shù)目,此減少帶寬要求且減少平均延時。然而,在高速緩存缺失的情形中(具有一些例外,例如預取線或投機地讀取線),處理器可停止運轉,且在停止運轉的情形中,必須以最低可能延時服務于對外部存儲器的存取以確保最大性能。一些其它主控器需要具有對平均通量的保證及因此有保證的平均延時的高帶寬。舉例來說,圖形處理器必須讀取或寫入大量不間斷數(shù)據(jù)突發(fā),但其具有存儲提前預取的數(shù)據(jù)的大量局部存儲器緩沖器,因此其延時要求是相當松懈的。也就是說,平均通量是重要的,但單個要求的延時可是極高的。其它主控器(舉例來說,串流傳輸來自相機傳感器的數(shù)據(jù)的實時控制器)需要某一有保證的最大延時。通常,其具有已知、定期及可預測帶寬要求且其使用經(jīng)最佳化以減少總體系統(tǒng)成本的局部緩沖器。然而,針對成本經(jīng)最佳化的緩沖器無法保證延時。如果那些緩沖器可過溢或下溢,那么系統(tǒng)可能無法執(zhí)行所請求的操作且暫時性能降級不可被接受。因此,需要可保證某一最大延時的單獨硬件機構。最后,針對一些主控器,不需要適時執(zhí)行及低延時。舉例來說,到大容量存儲裝置的數(shù)據(jù)傳送或跨越串行鏈路接口的數(shù)據(jù)傳送通常并非時間關鍵的。
[0004]當前,最常用的大型共享存儲器為動態(tài)存儲器。動態(tài)存儲器通常將信息存儲為電容器中的電荷或電荷缺乏。然而,帶電電容器逐漸泄漏電荷。因此,必須周期性地刷新動態(tài)存儲器(讀取且重新寫入以保證數(shù)據(jù)不丟失)。動態(tài)隨機存取存儲器(DRAM)通常組織成庫,且?guī)旖M織成行,且通常對整個行執(zhí)行刷新。常見工業(yè)標準規(guī)定:必須每64毫秒或小于64毫秒刷新每一行。可存在數(shù)千行??稍?4毫秒間隔期間以均勻隔開的時間間隔一次一行地執(zhí)行刷新。或者,可在活動突發(fā)中刷新多個行(或甚至所有行)。
[0005]針對動態(tài)存儲器,存儲器控制器中的刷新調度器必須周期性地發(fā)布存儲器刷新命令,此對于需要存取存儲器的主控器可為具破壞性的。動態(tài)存儲器允許存儲器刷新命令的一些延遲,所述存儲器刷新命令接著可以突發(fā)形式發(fā)布,但存在對可積累多少延遲的規(guī)定限制,且在某一時刻需要恢復以在給定周期內執(zhí)行所有所需刷新命令。
[0006]包含刷新調度器的每一主控器發(fā)布對存儲器存取的請求,且必須優(yōu)先化那些請求。另外,所述請求的相對優(yōu)先級可需要動態(tài)地改變。舉例來說,如果正使用視頻處理器,那么視頻在等待更多視頻數(shù)據(jù)時不應暫停。因此,如果用于視頻處理器的數(shù)據(jù)緩沖器幾乎變空,那么需要增加來自所述視頻處理器的未決存儲器存取請求的優(yōu)先級以防止緩沖器下溢。同樣地,如果存儲器刷新命令已延遲長時間,那么需要增加存儲器刷新的優(yōu)先級。持續(xù)需要改進存儲器存取的優(yōu)先級管理。
【附圖說明】
[0007]圖1是電子系統(tǒng)的實例性實施例的簡化框圖。
[0008]圖2是在圖1的電子系統(tǒng)內的優(yōu)先級處置器的實例性實施例的簡化框圖。
[0009]圖3是圖解說明對存儲器刷新命令進行調度的過程的實例性實施例的流程圖。
[0010]圖4是圖解說明與圖2的流程圖定時一致的刷新命令的實例性實施例的時序圖。
[0011]圖5是圖解說明控制對存儲器存取的請求的優(yōu)先級的方法的實例性實施例的流程圖。
【具體實施方式】
[0012]在發(fā)布刷新命令之前服務于來自主控器的未決存取請求及在不存在其它未決存儲器存取請求時嘗試服務于刷新命令中存在性能益處。一般來說,存在與存儲器存取相關聯(lián)的大量開銷時鐘循環(huán),期間存儲器庫是忙碌的但實際上并未讀取或寫入數(shù)據(jù)。一般來說,可通過使用其中需要僅單個地址連同突發(fā)大小的突發(fā)操作來減少開銷懲罰,此后可在不具有針對每一數(shù)據(jù)單元所需要的附加開銷循環(huán)的情況下讀取連續(xù)數(shù)據(jù)單元(舉例來說,字或線)。同樣地,針對刷新,就開銷來說,刷新命令突發(fā)比單一刷新命令高效。另外,以突發(fā)形式發(fā)布刷新命令會減少存儲器預充電的發(fā)生,存儲器預充電針對來自主控器的緊跟著的存取請求可能形成附加開銷。然而,長活動突發(fā)(無論來自主控器還是刷新)意味其中延遲對存取的其它請求的長時間周期。針對一些存儲器存取請求,存在對可在不實質上降低性能的情況下發(fā)生多少延遲的限制。另外,準許存儲器存取命令突發(fā)具有對所有緩沖器的所需要大小的負面影響及對各種主控器的最大延時的負面影響。
[0013]對存儲器存取的每一請求可具有相關聯(lián)優(yōu)先級,且當針對關鍵讀取/寫入請求發(fā)生存取請求延遲時,接著可動態(tài)地增加相關聯(lián)存取優(yōu)先級以幫助維持總體系統(tǒng)性能。類似地,可需要不時地降低優(yōu)先級。通常,動態(tài)優(yōu)先級僅影響存儲器控制器內的存取優(yōu)先級。在下文所描述的實例中,動態(tài)地改變優(yōu)先級可以啟動器與最終共享存儲器之間的所有仲裁水平影響優(yōu)先級處置器,使得賦予一些請求通往存儲器控制器的優(yōu)先級。另外,在下文所描述的實例中,動態(tài)地改變優(yōu)先級還可改變由存儲器刷新調度器執(zhí)行的刷新策略。
[0014]圖1圖解說明電子系統(tǒng)的部分100的實例性實施例。所圖解說明的部分100具有共享公用存儲器130的多個主控器(102到112)。在完整系統(tǒng)中,可存在許多其它結構,包含由主控器控制的子系統(tǒng)(舉例來說,顯示器、調制解調器及攝像機)、共享存儲器及高速緩存存儲器,以及用于主控器之間的數(shù)據(jù)傳送的各種總線及管線。然而,圖1僅圖解說明涉及對存儲器存取的請求的系統(tǒng)的部分,且甚至那些部分經(jīng)簡化以促進圖解說明且集中討論。
[0015]在圖1的實例中,存在雙向數(shù)據(jù)及地址互連總線(116、120)的兩個層。主控器106到112通過第一互連總線116發(fā)送存儲器存取請求。互連總線116包含優(yōu)先級處置器118 (結合圖2更詳細地討論)。在圖1的實例中,如果存在來自主控器106、110、108及112的多個同時存儲器存取請求,那么優(yōu)先級處置器118選擇在來自那四個主控器的請求當中具有最高優(yōu)先級的存儲器存取請求。主控器102及104(及優(yōu)先級處置器118)通過第二互連總線120發(fā)送存儲器存取請求。互連總線120包含優(yōu)先級處置器122。優(yōu)先級處置器122從主控器102及104以及優(yōu)先級處置器118的輸出選擇具有最高優(yōu)先級的存儲器存取請求。在圖1的實例中,存儲器控制器124包含刷新調度器126及優(yōu)先級處置器128。存儲器控制器124基于來自刷新調度器126的請求及來自優(yōu)先級處置器122的未決請求而發(fā)布一或多個刷新命令或者讀取或寫入命令。存儲器控制器124通過優(yōu)先級處置器128選擇在來自優(yōu)先級處置器122及刷新調度器126的請求當中的最高優(yōu)先級請求。
[0016]在圖1的實例中,來自一些主控器的存儲器請求具有不被改變的優(yōu)先級。來自一些其它主控器的存儲器請求具有可由動態(tài)優(yōu)先級(DP)信號改變的正常優(yōu)先級。主控器102及106被描繪為具有不被改變的初始優(yōu)先級。針對主控器104、108、110及112,DP信號可用于在優(yōu)先級處置器(118、122、128)中的每一者處改變優(yōu)先級。另外,DP信號還可修改由刷新調度器126