XXX Chip的DRAM分成cacheable和non-cacheable兩個region.每個chip selection都會佔據兩個region : cacheable, non-cacheable.白話一點說,就是有兩個memory address region都會對應到同一塊memory,但是一個memory region是透過cache,一個不是。
他是利用Address 28來區分二者(偉大,可以cache整個區域?)。
實際上內部只有16K的cache
使用cacheable區域的好處:
- non-cacheable的access一定要以int為單位(32 bit)。這在read來OK,但是在write時就比較麻煩,所以作byte-wirite時,可以寫入cacheable regsion.
- 如果資料已經在cache裡,read cacheable region會比none-cacheable region快(但是若是不在cache裡,要invalidate cache再update cache就慢了)。
使用None-cacheable區域的好處:
- DMA動作沒有和cache同步(也就是說不會觸發invalidate cache)。
- 太多寫入cache的動作會導致cache不斷要update,反而慢,所以不重要的就對None-cacheable操作。
補充:
Cache 內部會區分成很多小區域,有一個lookup table,表示每個”小區域”對應到真正memory的位址。當cache內容和memory內容不一致,而有人要作read時,就會引發 invalidate cache,cache作update動作,將cache和memory內容同步。
沒有留言:
張貼留言