
緩存大小對(duì)CPU效率的影響很小,與此相反,EHCI 將數(shù)據(jù)移入、移出內(nèi)存的方式之間則有很大不同。拷貝語(yǔ)義學(xué)(copy-semantics)方法將數(shù)據(jù)從緩存區(qū)移到一個(gè)EHCI可訪(fǎng)問(wèn)的非緩存區(qū)。非拷貝語(yǔ)義學(xué)(Noncopy semantics)則假設(shè)EHCI可以訪(fǎng)問(wèn)包含所需數(shù)據(jù)的內(nèi)存區(qū)。在這種方法中,內(nèi)存區(qū)是未經(jīng)緩存的,傳給EHCI 的是一個(gè)指向內(nèi)存位置的直接指針。
這兩種機(jī)制的性能數(shù)字有著很大的差異,因?yàn)樵诜强截愓Z(yǔ)義學(xué)情況下,不用將數(shù)據(jù)從一個(gè)內(nèi)存區(qū)拷貝到另一個(gè)內(nèi)存區(qū),這就省去了所有的移動(dòng)指令,當(dāng)移動(dòng)大量數(shù)據(jù)時(shí)極大地減輕了工作量。例如,當(dāng)重復(fù)64次以 256kB傳送32MB數(shù)據(jù)時(shí),虛擬平臺(tái)顯示的數(shù)據(jù)速率和CPU占用率,拷貝語(yǔ)義學(xué)方式分別為5051 kB/s和6%,而非拷貝語(yǔ)義學(xué)方式分別為7700kB/s和40%。
在評(píng)估棧大小的效果時(shí),一般預(yù)測(cè)認(rèn)為較小的棧會(huì)減少CPU占用,而虛擬平臺(tái)得到與直覺(jué)相反的結(jié)果(表5)。除CPU占用以外,表中顯示較大的棧還會(huì)增加一個(gè)應(yīng)用程序執(zhí)行的指令數(shù)。

但是,修改堆的大小時(shí)結(jié)果保持不變。(堆是一個(gè)內(nèi)存區(qū),應(yīng)用軟件可以作直接分配和解除分配。與之相比,棧的管理是通過(guò)編譯器,而不是應(yīng)用程序。)這些結(jié)果令人驚訝,因?yàn)闂J鞘艿骄幾g器控制,它的大小應(yīng)該沒(méi)有關(guān)系,而在其他情況下,表現(xiàn)為216MHz處理器時(shí)鐘速率和10MB/s數(shù)據(jù)速率。
雖然虛擬平臺(tái)得到了有希望的結(jié)果,但它仍與硬件的工作有不一致的地方。例如,ST20 處理器流量發(fā)生器的模型過(guò)于簡(jiǎn)單。它假定每條指令的執(zhí)行階段都是一個(gè)恒定的平均時(shí)間,但事實(shí)并不總是這樣。此外,流量發(fā)生器建模時(shí)既無(wú)處理器流水線(xiàn)停頓也無(wú)任何流水線(xiàn)停頓的情況。不過(guò),這些因素之間有些相互抵消,得到的結(jié)果還算準(zhǔn)確。
現(xiàn)在的工作重點(diǎn)集中在建立更復(fù)雜平臺(tái)和開(kāi)發(fā)無(wú)縫的方法上,用于評(píng)估任何軟件棧的性能。例如,正在進(jìn)行的是虛擬平臺(tái)與Flexperf這種剖析工具相結(jié)合,使軟件編程人員和系統(tǒng)架構(gòu)師有一個(gè)統(tǒng)一的方法,能夠評(píng)估并增強(qiáng)嵌入式代碼的性能。





