cache是高速緩衝儲存器,如果將cache想象成一棟樓房,那麼每個儲存塊就相當於乙個房間,而位址就是每個房間的門牌號,可以通過位址對對應的儲存塊進行讀寫操作。
axi是一種介面協議,規定位址是位元組對齊的。位元組對齊的意思是:每個位址代表的儲存塊位寬為1個位元組(byte),這裡設1byte=8bit。
假設頂層設計的位址是位元組對齊的,且位址位寬為32bit,那麼cache的容量為8bit*2^32,如果底層設計的cache位址是128bit對齊的,即底層設計的每個位址代表的儲存塊位寬為128bit,那麼底層的位址位寬應該為
cache的位址對映圖如圖1所示。
burst操作是指只需給出乙個位址(addr0)及操作長度(length),在進行讀寫時以後的位址會在addr0的基礎上依次加1個length單位。
例如:對上述頂層cache(位址是位元組對齊的)進行burst操作,位址addr0=0x0000,length=16,設length以位元組為單位,那麼本次burst操作訪問了位址addr0~addr15=0x000f,而對於底層cache(位址是128bit對齊的)而言,只需一次操作即可訪問16個位元組。
如果addr1=0x0001(即進行的burst操作是非對齊的),length=16,那麼本次burst操作訪問了位址addr1~addr16=0x0010,儘管仍然是訪問128bit,但由於底層cache的位址是128bit對齊的,因此第一次訪問最多訪問到addr15,而本次burst要求訪問addr16,因此共需兩次操作。
cache位址對映
所謂對映就是將主存內容對應到cache中。cache引入就是緩解cpu和主存執行速度差距的。cpu要執行的內容如果在cache中存在,則直接送給cpu,如果不在,則去主存中尋找,主存直接傳給cpu,再根據區域性性原理,將主存中該區域內的內容存到cache中去,而將主存中一部分內容存到cache中,就...
Cache位址對映 2
理解cache位址對映之前補充一些基礎知識,cache的位址對映和mmu 記憶體管理單元 和tlb cache 譯查詢快取 中的對映是有區別的。cache tlb cache mmu在cpu中結構如圖1所示,圖1展現的是cortex a9 processor內部結構,採用的指令和資料匯流排分開的哈佛...
c 位址對齊
在一些計算機上,由於效能方面的原因,2個位元組的變數,必須放在2的倍數的位址中,4個位元組的,就必須放在4的倍數中的位址中,以此類推。也就是說,如果有3個占用兩個位元組的變數,分別為 a,b,c,如下圖 0 1 2 3 4 5 6 7 8 9 10 11 12 a a b b c c 這時,0 5的...