高性能32位內(nèi)核與基于微控制器存儲(chǔ)架構(gòu)的集成
在這種情況下,預(yù)取/閃存數(shù)據(jù)通道將是:
(120/20)X32位=192位寬
預(yù)取緩沖器控制邏輯不斷對(duì)存取緩沖器的讀取數(shù)進(jìn)行標(biāo)記。最后一次存取后,它將使下一個(gè)周期從閃存重新加載整個(gè)緩沖器。
預(yù)取緩沖器控制邏輯還可識(shí)別緩沖器每次進(jìn)入的有效地址。它還將提供適當(dāng)?shù)慕獯a,根據(jù)正確的順序指令顯示處理器數(shù)據(jù)總線(xiàn),當(dāng)一個(gè)執(zhí)行分支需要完整的新的順序指令時(shí),將重新加載緩沖器。
當(dāng)然,在提取新的指令時(shí),分支將造成一些額外的延遲。但是由于相比處理器內(nèi)核,預(yù)取緩沖器實(shí)現(xiàn)六合一方法在數(shù)據(jù)通道寬度方面具有絕對(duì)的優(yōu)勢(shì),為該分支問(wèn)題的最終平衡的結(jié)果付出的代價(jià)是值得的。
更多經(jīng)驗(yàn)法則分析都顯示,一個(gè)典型的嵌入式應(yīng)用有20%發(fā)生分支的機(jī)會(huì),每五個(gè)周期相當(dāng)于一個(gè)分支。采用之前的方法,CPI值現(xiàn)在為:
周期+1指令*6周期)/5指令
CPI = 2.0
我們已經(jīng)看到利用基本實(shí)現(xiàn)方法,整個(gè)系統(tǒng)周期效率有了大幅提高。
圖2.1還顯示了一個(gè)更為現(xiàn)實(shí)解決方案方法,即將六個(gè)獨(dú)立的閃存系統(tǒng)的32位總線(xiàn)加在一起,而不是重新設(shè)計(jì)一個(gè)新的、極寬的數(shù)據(jù)總線(xiàn)閃存系統(tǒng)。預(yù)取緩沖器控制邏輯將自動(dòng)創(chuàng)建六個(gè)連續(xù)的程序地址,然后允許一個(gè)正常的讀取周期同時(shí)訪(fǎng)問(wèn)所有六個(gè)組。在讀取周期的末尾,預(yù)取緩沖器現(xiàn)在可保持六個(gè)新的指令,而非一個(gè),模擬的零等待狀態(tài)系統(tǒng)。
指令高速緩存
形式指令高速緩存賦予預(yù)取緩沖器更高水平的復(fù)雜性,因?yàn)楦咚倬彺娌恍枰麄€(gè)高速緩存陣列的特定線(xiàn)性地址。形式高速緩存的尺寸也比簡(jiǎn)單預(yù)取緩沖器大,它可能在高速緩存內(nèi)存儲(chǔ)整個(gè)循環(huán)序列。
圖 2.2 顯示了一個(gè)簡(jiǎn)單的有 8 塊、單路的高速緩存設(shè)計(jì),1 塊有 16 個(gè)字節(jié)。雖然這么小的高速緩存很難實(shí)現(xiàn),但它對(duì)指令執(zhí)行很有用。在這種情況下,地址標(biāo)記將是整個(gè)地址的高 12 位,而索引將是尋址高速緩存塊內(nèi)的特定條目的余下的兩位。
圖2.2 指令側(cè)高速緩存
與指令預(yù)取緩沖器相比,指令高速緩存系統(tǒng)具有更復(fù)雜的地址比較系統(tǒng),因?yàn)樵摳咚倬彺骊嚵胁粌H包括每個(gè)高速緩存塊的連續(xù)尋址指令,而且可以將指令地址空間的任何區(qū)域包含在高速緩存塊內(nèi)。
為了讓高速緩存更有效地工作,在閃存器件和指令高速緩存之間應(yīng)當(dāng)實(shí)現(xiàn)盡量寬的數(shù)據(jù)通道,保證內(nèi)核能夠以最快的速度執(zhí)行程序指令。指令高速緩存在與閃存器件的接口上實(shí)現(xiàn)了一個(gè)指令預(yù)取機(jī)制來(lái)解決這個(gè)問(wèn)題。否則,閃存存取時(shí)間的問(wèn)題就會(huì)影響內(nèi)核執(zhí)行速度。
在正常執(zhí)行過(guò)程中,所需的指令地址高位和高速緩存陣列的指令標(biāo)記間開(kāi)始一連串的比較。如果找到匹配的地址,高速緩存命中即被寄存,指令地址的低位將被用于高速緩存塊內(nèi)的索引,以找回所需的指令。如果沒(méi)有發(fā)現(xiàn)匹配的地址,就是我們所說(shuō)的高速緩存不命中。高速緩存不命中將導(dǎo)致高速緩存控制器從存儲(chǔ)區(qū)的特定區(qū)域讀入包含所需指令的緩存塊。被替代的高速緩存塊通常是陣列中最舊的高速緩存塊。
當(dāng)使用高速緩存時(shí),基本性能分析變得更加復(fù)雜,因?yàn)檫@時(shí)高速緩存不命中數(shù)在方程里引入了一個(gè)新的變量。分析典型應(yīng)用代碼可幫助芯片設(shè)計(jì)人員確定高速緩存大小和實(shí)際性能增益的最佳平衡。
對(duì)于我們的設(shè)計(jì),假定 CPI 將在以下范圍內(nèi)是比較合理的:
= CPI (cache) = 2.0
在高速緩存大得足夠存儲(chǔ)大多數(shù)應(yīng)用主程序的情況下,性能增益可能非常顯著,因?yàn)橄到y(tǒng)正在接近 0 等待狀態(tài)執(zhí)行環(huán)境。
采用改良的哈佛架構(gòu)(Modified Harvard Architecture)設(shè)計(jì)的指令高速緩存的一個(gè)重要優(yōu)勢(shì)是高速緩存無(wú)需執(zhí)行回寫(xiě)操作。與數(shù)據(jù)高速緩存相比,這種實(shí)現(xiàn)要簡(jiǎn)單的多,數(shù)據(jù)緩存還要保證改動(dòng)過(guò)的高速緩存數(shù)據(jù)正確地存儲(chǔ)進(jìn)主數(shù)據(jù)存儲(chǔ)器。
評(píng)論