進(jìn)行的存儲(chǔ)器刷新調(diào)度(結(jié)合圖3更詳細(xì)地討論)。另外,DP信號(hào)還可改變先前發(fā)布但未執(zhí)行的存儲(chǔ)器請(qǐng)求的次序(下文更詳細(xì)地討論)。
[0017]在圖1的實(shí)例中,主控器104被描繪為具有定時(shí)器132。盡管在主控器104內(nèi)圖解說明通過軟件實(shí)現(xiàn)快速設(shè)置的定時(shí)器132,但定時(shí)器可位于系統(tǒng)中的任何地方。在定時(shí)器期滿時(shí)產(chǎn)生的信號(hào)DPl僅需要與特定主控器的地址總線成對(duì)??稍谛枰诮o定時(shí)間內(nèi)完成的軟件任務(wù)的開始時(shí)啟用定時(shí)器132。所述任務(wù)可需要許多存儲(chǔ)器存取。定時(shí)器可設(shè)置為完成軟件任務(wù)所需要的經(jīng)估計(jì)時(shí)間以及在所分配的時(shí)間期滿之前未完成請(qǐng)求的情況下進(jìn)行恢復(fù)所需要的必要余量。如果定時(shí)器在完成軟件任務(wù)之前期滿,那么在完成任務(wù)以前斷言信號(hào)DPI。當(dāng)斷言信號(hào)DPI時(shí),在斷言信號(hào)DPI之前但仍未被服務(wù)的存儲(chǔ)器存取請(qǐng)求將使其優(yōu)先級(jí)增加,且在斷言信號(hào)DPl時(shí)發(fā)布的所有存儲(chǔ)器存取請(qǐng)求將使其優(yōu)先級(jí)增加。在完成軟件任務(wù)時(shí),可通過軟件將定時(shí)器重設(shè),從而清除信號(hào)DPl。
[0018]在圖1的實(shí)例中,主控器108、110及112被描繪為具有緩沖器(134、136、138)。如果(舉例來說)主控器108正從存儲(chǔ)器讀取數(shù)據(jù),且緩沖器134達(dá)到經(jīng)編程空虛水平,那么可斷言信號(hào)DP2以增加來自主控器108的存儲(chǔ)器存取請(qǐng)求的優(yōu)先級(jí)。然后當(dāng)緩沖器134達(dá)到經(jīng)編程充滿水平時(shí)可清除信號(hào)DP2?;蛘撸绻?舉例來說)主控器110正將數(shù)據(jù)寫入到存儲(chǔ)器(舉例來說,從相機(jī)傳感器),那么可在緩沖器136達(dá)到經(jīng)編程充滿水平時(shí)斷言信號(hào)DP3,且可在緩沖器136達(dá)到經(jīng)編程空虛水平時(shí)清除信號(hào)DP3。
[0019]注意,定時(shí)器及緩沖器致使DP信號(hào)與主控器對(duì)存儲(chǔ)器存取的請(qǐng)求異步地經(jīng)斷言。特定來說,定時(shí)器或緩沖器可致使DP信號(hào)經(jīng)斷言,其接著影響來自對(duì)應(yīng)主控器的多個(gè)未決及隨后存儲(chǔ)器存取請(qǐng)求的優(yōu)先級(jí)。在一些情形中,DP信號(hào)可保持?jǐn)嘌宰銐蜷L(zhǎng)時(shí)間以刷新在已斷言DP信號(hào)時(shí)未決的所有存儲(chǔ)器存取請(qǐng)求。結(jié)果,除刷新命令以外,主控器還可獲得對(duì)存儲(chǔ)器的獨(dú)有存取。
[0020]主控器可具有初始優(yōu)先級(jí)且所述優(yōu)先級(jí)可通過斷言DP信號(hào)而增加固定量?;蛘撸珼P信號(hào)可為變量。舉例來說,緩沖器134可具有多個(gè)空虛水平,且信號(hào)DP2可在緩沖器134達(dá)到第一空虛水平時(shí)設(shè)置為第一增加的優(yōu)先級(jí),且信號(hào)DP2可在緩沖器134達(dá)到第二空虛水平時(shí)設(shè)置為甚至更高優(yōu)先級(jí)。
[0021]任選地,在圖1的實(shí)例中,可將來自優(yōu)先級(jí)處置器128的選定地址連同地址的相關(guān)聯(lián)優(yōu)先級(jí)推送到先進(jìn)先出(FIFO)隊(duì)列(或緩沖器或堆疊)140上。任選地,重新排序邏輯142可基于經(jīng)修改優(yōu)先級(jí)信號(hào)及其它存儲(chǔ)器效率準(zhǔn)則(活動(dòng)行、讀取對(duì)寫入、與刷新沖突等)而將FIFO 140的內(nèi)容重新排序?yàn)樽钸m當(dāng)次序。舉例來說,假定信號(hào)DP3由主控器108斷言。只要斷言信號(hào)DP3,來自主控器108的隨后存儲(chǔ)器存取請(qǐng)求便將在優(yōu)先級(jí)處置器118、122及128處具有較高優(yōu)先級(jí),且任選地可在FIFO 140內(nèi)將來自主控器108的先前存儲(chǔ)器存取請(qǐng)求重新排序。任選地,還可存在與優(yōu)先級(jí)處置器118及122相關(guān)聯(lián)的FIFO及重新排序。然而,注意,例如處于最終仲裁水平的邏輯142的重新排序邏輯可看見處于所述水平的所有未決存儲(chǔ)器存取請(qǐng)求。相比之下,對(duì)于更高水平的優(yōu)先級(jí)處置器(例如優(yōu)先級(jí)處置器118及122),較不能看見處于同一水平的其它未決存儲(chǔ)器存取請(qǐng)求,因此重新排序可是更復(fù)雜的,且可存在可能的相干性問題。因此,優(yōu)選地,可針對(duì)僅與優(yōu)先級(jí)處置器128相關(guān)聯(lián)的FIFO完成重新排序。另外,優(yōu)先級(jí)處置器的請(qǐng)求側(cè)上可存在FIFO。圖1僅展示許多替代配置的一個(gè)實(shí)例。
[0022]圖2圖解說明優(yōu)先級(jí)處置器(118、122、128)的實(shí)例性實(shí)施例200。優(yōu)先級(jí)處置器200包含接收“N”個(gè)存儲(chǔ)器請(qǐng)求地址(Reg1、Req2、ReqN)的多路復(fù)用器202。優(yōu)先級(jí)邏輯204接收如由請(qǐng)求主控器的優(yōu)先級(jí)確定的存儲(chǔ)器請(qǐng)求的優(yōu)先級(jí)(Pp P2、PN),且接收DP信號(hào)(DP1、DP2、DP3、DP4)。DP信號(hào)在被斷言的情況下修改優(yōu)先級(jí)(P$jPN)中的一或多者。優(yōu)先級(jí)(Pjl」PN)可為存取請(qǐng)求的部分,或其可從與每一存儲(chǔ)器存取請(qǐng)求成對(duì)的局部寄存器被發(fā)布。優(yōu)先級(jí)信號(hào)源自何處或者在什么地方或以何種方式修改優(yōu)先級(jí)信號(hào)并不重要。僅DP信號(hào)修改優(yōu)先級(jí)信號(hào)的優(yōu)先級(jí)是重要的。多路復(fù)用器202接著選擇具有最高經(jīng)修改優(yōu)先級(jí)的存儲(chǔ)器請(qǐng)求地址。
[0023]存在可需要延遲刷新命令的多個(gè)原因。舉例來說,隨機(jī)存取存儲(chǔ)器中存在與切換邏輯頁相關(guān)聯(lián)的大量開銷時(shí)鐘循環(huán)。如果未決存儲(chǔ)器存取是針對(duì)與緊接的先前存取相同的存儲(chǔ)器頁,那么賦予未決存取高于存儲(chǔ)器刷新命令的優(yōu)先級(jí)對(duì)于性能是更加高效的。相比之下,如果未決存儲(chǔ)器存取是針對(duì)不同于緊接的先前存取的頁,那么在未決存儲(chǔ)器存取由存儲(chǔ)器刷新命令延遲的情況下存在較輕的性能懲罰,但如果可延遲刷新,那么賦予主控器優(yōu)先級(jí)對(duì)于性能仍是有益的。然而,存在對(duì)存儲(chǔ)器刷新命令可延遲多長(zhǎng)時(shí)間的限制。如果經(jīng)延遲刷新命令的數(shù)目達(dá)到預(yù)定數(shù)目,那么可需要賦予刷新更高優(yōu)先級(jí)。接著可以短突發(fā)形式發(fā)布刷新命令以減少經(jīng)延遲刷新命令的數(shù)目。然而,即使經(jīng)延遲刷新命令的數(shù)目處于高數(shù)目,系統(tǒng)也可具有對(duì)存儲(chǔ)器存取的許多未決高優(yōu)先級(jí)請(qǐng)求,使得發(fā)布存儲(chǔ)器刷新命令的突發(fā)并不實(shí)際。特定來說,在以下實(shí)例中,如果存在主控器對(duì)存儲(chǔ)器存取的未決請(qǐng)求,且如果經(jīng)延遲刷新命令的數(shù)目達(dá)到預(yù)定數(shù)目,且如果斷言DP信號(hào),那么替代突發(fā)而發(fā)布單個(gè)刷新命令,且經(jīng)延遲刷新命令的數(shù)目保持在高數(shù)目。
[0024]圖3是圖解說明可由圖1中的刷新調(diào)度器126執(zhí)行的過程300的實(shí)例性實(shí)施例的流程圖。刷新調(diào)度器可延遲刷新命令,且可由計(jì)數(shù)器追蹤經(jīng)延遲命令的數(shù)目(延遲計(jì)數(shù))。在開始圖3中的流程圖時(shí),在步驟302處,是刷新調(diào)度器發(fā)布刷新命令的時(shí)間,且流程圖中所圖解說明的過程確定是延遲刷新命令還是發(fā)布一個(gè)刷新命令還是發(fā)布刷新命令的突發(fā)。在以下討論中,系統(tǒng)“應(yīng)力”指代需要將主控器重點(diǎn)放在刷新上。如果系統(tǒng)應(yīng)力為低,那么將以正常調(diào)度時(shí)間發(fā)布刷新命令。如果存在低到中等系統(tǒng)應(yīng)力,那么刷新策略為使刷新命令延遲高達(dá)4的計(jì)數(shù)。如果存在中等到高系統(tǒng)應(yīng)力,那么刷新策略為使刷新命令延遲高達(dá)7的計(jì)數(shù),且當(dāng)刷新變得必要時(shí),將發(fā)布五個(gè)刷新命令的突發(fā)。在最高系統(tǒng)應(yīng)力下(也就是說,存在來自主控器的未決存儲(chǔ)器存取請(qǐng)求,存在經(jīng)斷言的DP信號(hào),且延遲計(jì)數(shù)是7),刷新命令的突發(fā)接著將損害性能,因此刷新策略為發(fā)布單個(gè)刷新命令且經(jīng)延遲刷新命令的數(shù)目保持在7。
[0025]下文是對(duì)圖3的詳細(xì)討論。如果不存在來自主控器的未決存儲(chǔ)器存取請(qǐng)求(決策304及306兩者均為“否”),那么在步驟308處發(fā)布一個(gè)刷新命令。如果延遲計(jì)數(shù)大于零,那么發(fā)布額外刷新命令且使延遲計(jì)數(shù)遞減直到延遲計(jì)數(shù)為零。如果以下組合中的任一者為真,那么發(fā)布來自主控器的未決存儲(chǔ)器存取請(qǐng)求,且延遲刷新,且使延遲計(jì)數(shù)遞增(步驟326):
[0026]1.針對(duì)當(dāng)前活動(dòng)頁存在來自主控器的未決存儲(chǔ)器存取請(qǐng)求(決策304),且延遲計(jì)數(shù)小于7 (決策318)。
[0027]2.針對(duì)不活動(dòng)頁存在來自主控器的未決存儲(chǔ)器存取請(qǐng)求(決策306),且延遲計(jì)數(shù)小于4 (決策310)。
[0028]3.針對(duì)不活動(dòng)頁存在來自主控器的未決存儲(chǔ)器存取請(qǐng)求(決策306),斷言DP信號(hào)(決策312),且延遲計(jì)數(shù)小于7 (決策316)。
[0029]如果存在來自主控器但并不到活動(dòng)頁的未決存儲(chǔ)器存取請(qǐng)求(決策304為“否”且決策306為“是”),且如果延遲計(jì)數(shù)至少為4 (決策310為“否”),且如果不斷言DP信號(hào)(決策312為“否”),那么發(fā)布定期調(diào)度的刷新命令,后續(xù)接著發(fā)布額外刷新命令而且使延遲計(jì)數(shù)遞減直到延遲計(jì)數(shù)小于4 (步驟314)。如果針對(duì)當(dāng)前活動(dòng)頁存在來自主控器的未決存儲(chǔ)器存取請(qǐng)求(決策304為“是”),且延遲計(jì)數(shù)處于7 (決策318為“否”),且不斷言DP信號(hào)(決策320為“否”),那么發(fā)布五個(gè)刷新命令的突發(fā)且使延遲計(jì)數(shù)遞減4(步驟322