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