15.2 片上存儲(chǔ)器
如果微處理器要達(dá)到最佳性能,那么采用片上存儲(chǔ)器是必需的。通常ARM處理器的主頻為幾十MHz到200MHz。而一般的主存儲(chǔ)器采用動(dòng)態(tài)存儲(chǔ)器(ROM),其存儲(chǔ)周期僅為100ns~200ns。這樣指令和數(shù)據(jù)都存放在主存儲(chǔ)器中,主存儲(chǔ)器的速度將會(huì)嚴(yán)重制約整個(gè)系統(tǒng)的性能。在當(dāng)前的時(shí)鐘速度下,只有片上存儲(chǔ)器能支持零等待狀態(tài)訪問(wèn)速度。同時(shí),與片外存儲(chǔ)器相比,片上存儲(chǔ)器有較好的功耗效率,并減少了電磁干擾。
在許多嵌入式系統(tǒng)中采用簡(jiǎn)單的片上RAM而不是Cache,因?yàn)镃ache有以下特點(diǎn):
· 結(jié)構(gòu)簡(jiǎn)單、價(jià)格便宜且功耗低;
· Cache有更不確定的行為。
在設(shè)計(jì)中,為了使Cache有效的工作需要巨大的邏輯開(kāi)銷。同時(shí),如果沒(méi)有合適、現(xiàn)成的Cache,則設(shè)計(jì)費(fèi)用是驚人的。而且,Cache存儲(chǔ)器的操作很復(fù)雜,這使得在大多數(shù)情況下很難預(yù)測(cè)它將如何工作,在某種程度上導(dǎo)致了系統(tǒng)的不可預(yù)知性。特別是在有中斷的情況下,很難保證中斷響應(yīng)時(shí)間。
與Cache相比,片上RAM的缺點(diǎn)是需要程序員直接管理。而Cache對(duì)于程序員來(lái)說(shuō)是透明的。如果程序的混合(program mix)、定義好并且不需要程序員對(duì)其進(jìn)行控制,那么片上RAM就能有效的作為軟件控制的Cache來(lái)使用。如果應(yīng)用程序的混合不能預(yù)知,那么控制任務(wù)就變得非常困難。因此,應(yīng)用程序的混合不可預(yù)知的通用系統(tǒng)中,通常采用Cache。
片上RAM的一個(gè)重要特點(diǎn)是,它使程序員能夠根據(jù)對(duì)將來(lái)處理工作量的了解劃分RAM空間。而Cache只能記錄運(yùn)行過(guò)的程序狀態(tài),無(wú)法預(yù)測(cè)以后要運(yùn)行的程序,因此,無(wú)法實(shí)現(xiàn)對(duì)將來(lái)的關(guān)鍵任務(wù)預(yù)先作準(zhǔn)備。在一些嵌入式系統(tǒng)中,關(guān)鍵任務(wù)必須滿足嚴(yán)格的實(shí)時(shí)約束,這個(gè)差別就顯得特別重要。