1.cache是一種高速緩衝儲存器,是為了解決cpu和主存之間速度不匹配而採用的一項重要技術。其原理基於程式執行中具有空間區域性性和時間區域性性特徵。cache是介於cpu和主存之間的小容量儲存器,由高速的sram組成。
2.個人感覺需要在這裡提一下的知識。
(1)儲存單元的編址方式:①字編址方式 ②位元組編址方式
儲存位元組:乙個儲存位元組只有8位。當按位元組編址方式時,乙個儲存單元就是乙個位元組(8位)。
儲存字:乙個儲存子不知道有多少位,必須被題目告知。當按字編址方式時,乙個儲存單元就是乙個字(n位)。
(2)儲存容量 = 儲存單元個數 * 儲存字長
(3)主存和快取的編址。
(4)cache的基本結構,其實這條是作為擴充套件的,不需要太了解。
3.好了,下面正式進入主題。
①主存中的任意一塊都可以對映到快取的任意一塊。假如拿乙個主存的位址給你,那麼(1)拿主存位址的字塊標記部分與cache所有行的標記同時放到比較器中進行比較;假如命中,那麼到該行取資料,(2)否則就老老實實拿著剛才給你的主存位址到主存中去尋找內容。(ps:①因為cache的命中率很高,且cache速度相對主存來說極快,所以上面這樣策略可以極大提高效率;②根據書上的求命中率的公式,感覺該段話中(1)(2)是同時進行的,哈哈,如果不鑽的話,按照我上面說的去理解就行了)
主存容量 = 主存儲存單元個數 * 儲存字長 = 2^m * 2^b *儲存字長
①假如給你乙個主存位址,首先用c位表示的主存字塊行號找到對應的cache行號,(因為每個主存塊j只能和乙個快取塊相對應,對應的cache行號 i = j mod (2^c) ),然後用位址中主存字塊標記部分與cache 對應行的標記進行比較。假如命中,那麼到該行取資料,否則就老老實實拿著剛才給你的主存位址到主存中去尋找內容。
②快取容量 = 快取儲存單元個數 * 儲存字長 = 2^c * 2^b * 儲存字長
主存容量 = 主存儲存單元個數 * 儲存字長 = 2^m *2^b *儲存字長 = 2^t *2^c *2^b *儲存字長
①假如給你乙個主存位址,首先用主存位址中的主存字塊標記找到與之對應的cache組,然後用該主存字塊標記與對應cache組中所有的字塊的標記進行比較;假如命中,那麼到該組的命中行取資料,否則就老老實實拿著剛才給你的主存位址到主存中去尋找內容。
②快取容量 = 快取儲存單元個數 * 儲存字長 = 2^q * 每組字塊數 * 2^b * 儲存字長
主存容量 = 主存儲存單元個數 * 儲存字長 = 2^m * 2^b *儲存字長 = 2^s * 2^q * 2^b *儲存字長
主存cache的位址對映
cpu對儲存器的訪問,通常是一次讀寫乙個字單元。當 cpu訪 cache 不命中時,需將儲存在主存中的字單元連同其後若干個字一同調入 cache 中,之所以這樣做,是為了使其後的訪存能在 cache 中命中。因此,主存和 cache 之間一次交換的資料單位應該是乙個資料塊。資料塊的大小是固定的,由若...
主存與cache的位址對映 習題
有乙個處理器,主存容量1mb,字長1b,cache容量16kb,塊大小32b。1.採用全相連對映方式,寫出記憶體的位址格式。2.採用直接對映方式,請寫出記憶體的位址格式 3.採用組相連對映方式 每組有4行 請寫出記憶體的位址格式 4.設cache初態為空,cpu依次從記憶體第1000,1001,10...
主存和cache的位址對映
cache是一種高速緩衝暫存器,是為解決cpu和主存之間速度不匹配而採用的一項重要技術。主存與cache的位址對映方式有全相聯方式 直接方式和組相聯方式三種。多對一的對映關係,但乙個主存塊只能拷貝到cache的乙個特定行位置上去。cache的行號i和主存的塊號j有如下函式關係 i j mod m m...