摘要:通信工程師交換技術(shù)MDQF-MMA算法:定義7.3滿足條件的隊(duì)列是指該隊(duì)列的DRAM部分或SRAM虐部中至少存有b字節(jié)的數(shù)據(jù),同時(shí)在SRAM頭部至少有6字節(jié)的空閑存儲(chǔ)空間。
1.MDQF-MMA算法
定義7.1容量計(jì)數(shù)值i,t)表示時(shí)刻t在隊(duì)列i的SRAM頭部中存放的字節(jié)數(shù)。
定義7.2虧空值D(i,t)表示調(diào)度器向隊(duì)列發(fā)出請(qǐng)求后,在時(shí)刻t尚未被讀到隊(duì)列的SRAM頭部中去的字節(jié)數(shù)。如果隊(duì)列的SRAM頭部中存有數(shù)據(jù),則=w-X(i,t),否則=w。
定義7.3滿足條件的隊(duì)列是指該隊(duì)列的DRAM部分或SRAM虐部中至少存有b字節(jié)的數(shù)據(jù),同時(shí)在SRAM頭部至少有6字節(jié)的空閑存儲(chǔ)空間。
MDQF-MMA算法規(guī)定:每隔6個(gè)時(shí)隙(一個(gè)時(shí)隙是指線卡輸出一個(gè)字節(jié)數(shù)據(jù)所需的時(shí)間),從所有滿足條件的隊(duì)列中選擇具有最大虧空值的隊(duì)列進(jìn)行刷新。
對(duì)于MDQF-MMA算法而言,最重要的是確定SRAM的大小。每當(dāng)一個(gè)隊(duì)列的SRAM頭部輸出數(shù)據(jù)后,就得在一定時(shí)間內(nèi)得到刷新,確保下次調(diào)度器請(qǐng)求輸出數(shù)據(jù)時(shí)已經(jīng)有字節(jié)存在SRAM隊(duì)列的頭部中。由于SRAM與DRAM之間的數(shù)據(jù)交互是以b個(gè)字節(jié)為單位進(jìn)行的,而SRAM接收調(diào)度器的請(qǐng)求,向線卡輸出數(shù)據(jù)是以1個(gè)字節(jié)為單位的,因此刷新不一定在SRAM中的數(shù)據(jù)輸出后就立即進(jìn)行。而且由于可能有多個(gè)隊(duì)列同時(shí)要求刷新,而刷新的間隔為6個(gè)時(shí)隙,因此SRAM中的每一個(gè)隊(duì)列頭部都要有一定的深度,以防SRAM中隊(duì)列頭部沒(méi)有得到及時(shí)刷新,在需要往線卡輸出數(shù)據(jù)時(shí)SRAM中沒(méi)有存儲(chǔ)相應(yīng)的數(shù)據(jù)。研究結(jié)果表明,在MDQF-MMA算法決定的刷新策略下,用于所有隊(duì)列頭部的SRAM緩存容童之和不小于(xfcx(3+ln)時(shí)就可以確保每次線卡要輸出的數(shù)據(jù)都已經(jīng)在SRAM中。
在MDQF-MMA算法中,由于SRAM預(yù)先不知道調(diào)度器會(huì)請(qǐng)求哪些隊(duì)列的數(shù)據(jù)輸出,因此一旦任何一個(gè)SRAM隊(duì)列頭部輸出了數(shù)據(jù)后,就需要安排為該隊(duì)列刷新,以儲(chǔ)備數(shù)據(jù)等待將來(lái)的輸出。如果能夠預(yù)先知道調(diào)度器將請(qǐng)求哪些隊(duì)列的數(shù)據(jù),就可以只儲(chǔ)備這些隊(duì)列的數(shù)據(jù)。顯然,如果能夠預(yù)知調(diào)度請(qǐng)求,就可以減小SRAM的緩存容童。而且能夠預(yù)知的調(diào)度請(qǐng)求越多,越有利于減小SRAM的容童。
如何預(yù)知或提前知道調(diào)度請(qǐng)求呢?最簡(jiǎn)單的做法是一開(kāi)始有調(diào)度請(qǐng)求時(shí)先不從SRAM中輸出數(shù)據(jù),在積累一定數(shù)量的請(qǐng)求后再依次按照請(qǐng)求從SRAM中輸出數(shù)據(jù)。很顯然,這樣做以后每個(gè)數(shù)據(jù)的實(shí)際輸出時(shí)刻就與請(qǐng)求的到達(dá)時(shí)刻有一個(gè)固有的時(shí)延,這個(gè)時(shí)延取決于積累的請(qǐng)求數(shù)量。在提前知道調(diào)度請(qǐng)求的條件下,有兩類(lèi)MMA算法,分別為MDQFP-MMA算法和ECQF-MMA算法。
2.MDQFP-MMA算法
定義7.4預(yù)知隊(duì)列(lookahead)調(diào)度器向隊(duì)列發(fā)出請(qǐng)求,但與這些請(qǐng)求對(duì)應(yīng)的數(shù)據(jù)在SRAM中可能未被輸出。這些沒(méi)有得到響應(yīng)的請(qǐng)求組成的隊(duì)列稱(chēng)為預(yù)知隊(duì)列。圖7-40所示為預(yù)知隊(duì)列的例子。
由于有了預(yù)知隊(duì)列,可以知道W些隊(duì)列最需要刷新,因此,在緩存管理上,可以采用共享緩存管理辦法。所以圖7-41所示的SRAM由各個(gè)隊(duì)列所共享的,預(yù)知隊(duì)列中嘿個(gè)隊(duì)列的請(qǐng)求多,在SRAM中存儲(chǔ)的該隊(duì)列的數(shù)據(jù)也就多。這就比靜態(tài)緩存管理,即每個(gè)隊(duì)列在SRAM中隊(duì)列長(zhǎng)度是固定的更靈活,更能有效地利用緩存。需要說(shuō)明的是,前面兩種算法要計(jì)算每個(gè)隊(duì)列的虧空值,因此需要依靠靜態(tài)緩存管理。ECQF-MMA算法不需要計(jì)算虧空值,可以采用共享緩存管理。此時(shí)ECQF-MMA需要的所有隊(duì)列頭部的緩存容量之和為0x(6-1)。表7-7對(duì)三種緩存管理算法的特性進(jìn)行了總結(jié)。
可以看出,MDQF算法需要的緩存容量最大,但是數(shù)據(jù)輸出與輸出請(qǐng)求之間沒(méi)有時(shí)延,而ECQF算法通過(guò)時(shí)延換取了較低的緩存容童。另外,各種算法的緩存容量都與隊(duì)列數(shù)成正比。
返回目錄:
編輯推薦
通信專(zhuān)業(yè)實(shí)務(wù)考試終端與業(yè)務(wù)教程匯總
通信工程師備考資料免費(fèi)領(lǐng)取
去領(lǐng)取
共收錄117.93萬(wàn)道題
已有25.02萬(wàn)小伙伴參與做題