天天看點

【計算機組成原理】第4章 存儲器

1️⃣ 緩存——主存層次主要解決CPU和主存速度不比對的問題

2️⃣ 主存——輔存主要解決存儲系統的容量問題

3️⃣ 主存——輔存層次發展形成虛拟存儲系統。

4️⃣ 需要注意的是,主存和 Cache 之間的資料調動是由硬體自動完成的,對所有程式員均是透明的;而主存和輔存之間的資料調動則是由硬體和作業系統共同完成的,對應用程式員是透明的。

1️⃣ 驅動器、譯碼器和讀寫電路在存儲晶片中

2️⃣ MAR和MDR在CPU晶片中

3️⃣ 存儲晶片和CPU晶片可通過總線連接配接

1️⃣ 存儲容量:主存存放二進制代碼的總位數,存儲容量(位)=存儲單元個數*存儲字長,存儲容量(位元組)=存儲單元個數*存儲字長 / 8

2️⃣ 存儲速度

存取時間:存儲器的通路時間=讀出時間+寫入時間

存取周期:連續兩次獨立的存儲器操作(讀或寫)所需的 最小間隔時間

3️⃣ 存儲器的帶寬:機關時間記憶體儲器存取的資訊量,每個存儲周期可以通路的位(位元組)數 / 存儲周期

提高存儲器帶寬的措施

縮短存儲周期

增加存儲字長

增加存儲體

【計算機組成原理】第4章 存儲器
【計算機組成原理】第4章 存儲器

1️⃣ 位址線:單向輸入,位數與存儲字的個數有關

2️⃣ 資料線:雙向的,位數與讀/寫的資料位數有關

3️⃣ 控制線

讀/寫控制線:決定晶片進行讀/寫操作

片選線:選擇存儲晶片

🌈 線選法

【計算機組成原理】第4章 存儲器

1️⃣ 特點:一根字選擇線(字線),直接選中一個存儲單元的各位

2️⃣ 結構簡單,隻适于容量不大的存儲晶片

🌈 重合法

【計算機組成原理】第4章 存儲器

1️⃣ 特點:被選單元是由X、Y兩個方向的位址決定的

2️⃣ 适合容量較大的存儲晶片

【計算機組成原理】第4章 存儲器
【計算機組成原理】第4章 存儲器
【計算機組成原理】第4章 存儲器
【計算機組成原理】第4章 存儲器

1️⃣ 多久需要重新整理一次:重新整理周期一般為 2 ms

2️⃣ 每次重新整理多少存儲單元:以行為機關,每次重新整理一行存儲單元

————為什麼要使用行列位址:減少選通線的數量

【計算機組成原理】第4章 存儲器

3️⃣ 如何重新整理:有硬體支援,讀出一行的資訊後重新寫入,占用1個讀/寫周期

4️⃣ 在什麼時候重新整理:

【計算機組成原理】第4章 存儲器
【計算機組成原理】第4章 存儲器
【計算機組成原理】第4章 存儲器
【計算機組成原理】第4章 存儲器
【計算機組成原理】第4章 存儲器
【計算機組成原理】第4章 存儲器
【計算機組成原理】第4章 存儲器
【計算機組成原理】第4章 存儲器

片選線相同,配置設定資料線

【計算機組成原理】第4章 存儲器

資料線相同,設定片選線

【計算機組成原理】第4章 存儲器

資料線和片選線都要重新考慮

【計算機組成原理】第4章 存儲器
【計算機組成原理】第4章 存儲器

🔔 系統程式區用ROM,使用者程式區用RAM

1️⃣ 寫出對應的二進制位址碼

【計算機組成原理】第4章 存儲器

2️⃣ 确定晶片的數量及類型

由題目知 CPU 資料線8根,則存儲器位數應擴充為8位。再根據題目所給的存儲晶片

系統程式區選擇一片 2 K * 8 位的存儲晶片

使用者程式區選擇兩片 1 K * 4 位的存儲晶片

3️⃣ 配置設定位址線

【計算機組成原理】第4章 存儲器

4️⃣ 确定片選信号

RAM 是位拓展,共享片選線,配置設定資料線

而 ROM 和 RAM 需要考慮片選線的設定

譯碼器的 Y4 端可以作為 ROM 的片選線端口

譯碼器的 Y5 端和 RAM 的 A10 位址線可以聯合作為 RAM 的片選控制

🔔 有一個預設的原則:不要有任何位址線空着不用!!!

5️⃣ 連接配接圖

【計算機組成原理】第4章 存儲器

6️⃣ 注意的細節

ROM 要接地

【計算機組成原理】第4章 存儲器

與門都取了非,也就是說輸入的資料都為 0 時,輸出為 1

【計算機組成原理】第4章 存儲器

RAM 的位址線配置設定,RAM 要連接配接讀寫控制線 WR

【計算機組成原理】第4章 存儲器

使能端隻有輸入信号為 G1 G2A G2B: 1 0 0 時才工作

【計算機組成原理】第4章 存儲器
【計算機組成原理】第4章 存儲器
【計算機組成原理】第4章 存儲器
【計算機組成原理】第4章 存儲器

該題與上一個題的差別就是 RAM 是字拓展而不是位拓展,是以資料線相同,片選線要配置,用 A12 作為劃分

【計算機組成原理】第4章 存儲器
【計算機組成原理】第4章 存儲器
【計算機組成原理】第4章 存儲器

🔔 預設是偶校驗,如果題目要求是奇校驗,那不論是求海明碼還是糾錯,每個運算最後都要多異或一個 1 。

采用高速器件

采用層次結構 Cache - 主存

調整主存結構

普通存儲器:每行為一個存儲單元

🌈 單體多字存儲器

【計算機組成原理】第4章 存儲器

每個存儲單元存儲 m 個字,每個字 w 位,總線寬度為 m 個字。一個存取周期内可以讀出 m 個字,也就是 m * w 位的指令或資料,使主存帶寬提高到 m 倍

🔔 缺點:指令和資料在主存内必須是連續存放的,一旦遇到轉移指令,或者操作數不能連續存放,這種方法的效果就不明顯

【計算機組成原理】第4章 存儲器

高位交叉(順序存儲)

存儲體的存儲單元通過位址的高位進行分組,高位位址相同的存儲單元屬于同一個存儲體

CPU 有較大機率需要連續通路同一個存儲體,效率較低

低位交叉(交叉存儲)

存儲體的存儲單元通過位址的低位進行分組,低位位址相同的存儲單元屬于同一個存儲體

CPU 可以較大機率同時通路多個存儲體,效率高,屬于流水線方式

可以在不改變每個子產品存取周期的前提下,提高存儲器的帶寬

可以并行工作,如總線寬度為 mw 時,可以同時取出長度為 mw 的資料。等同于高位交叉存儲方式的 m 個存儲體并行工作

【計算機組成原理】第4章 存儲器

設有 4 個子產品組成的四體存儲器結構,每個體的存儲字長為 32 位,存儲周期為 200 ns。假設資料總線寬度為 32 位,總線傳輸周期為 50 ns,試求順序存儲和交叉存儲的存儲器帶寬。

解:順序存儲和交叉存儲連續讀出 4 個字的資訊量是 32 * 4 = 128 位。

順序存儲器連續讀出 4 個字的時間是 200 ns * 4 = 800 ns

交叉存儲其連續讀出 4 個字的時間是 200 ns + 50 ns * (4 - 1) = 350 ns

順序存儲器的帶寬是 128 b / 800 ns = 16 * 10 ^ 7 bps

交叉存儲器的帶寬是 128 b / 350 ns = 37 * 10 ^ 7 bps

【計算機組成原理】第4章 存儲器

CPU 和主存(DRAM)的速度存在差異,為了避免 CPU 可能存在的“空等”現象

1️⃣ 命中:

1.主存塊調入緩存

2.主存塊與緩存塊建立了對應關系

3.用标記記錄與某緩存塊建立了對應關系的主存塊号

2️⃣ 未命中:

1.主存塊未調入緩存

2.主存塊與緩存塊未建立對應關系

3️⃣ Cache 的命中率:

1.CPU 欲通路的資訊在 Cache 中的 比率

2.命中率 與 Cache 的 容量 與 塊長 有關

4️⃣ 主存系統的效率

1.效率 e 與 命中率 有關

【計算機組成原理】第4章 存儲器
【計算機組成原理】第4章 存儲器

🌈 例題

【計算機組成原理】第4章 存儲器
【計算機組成原理】第4章 存儲器

🌈 讀

【計算機組成原理】第4章 存儲器

🌈 寫

【計算機組成原理】第4章 存儲器

1️⃣ 單一緩存和二級緩存

2️⃣ 統一緩存和分立緩存

【計算機組成原理】第4章 存儲器

1️⃣ 每個緩存塊 i 可以和若幹個主存塊對應

2️⃣ 每個主存塊 j 隻能和一個緩存塊對應

3️⃣ i = j mod C (C 是 Cache 塊總數)

主存中的任一塊可以映射到緩存中的任一塊

【計算機組成原理】第4章 存儲器
【計算機組成原理】第4章 存儲器

某一主存塊 j 按模 Q 映射到 緩存 的第 i 組中的任一塊

🔔 n 路組相聯:Cache n 個塊為一組,即 Q = n

1️⃣ 當 n = 1 時,Cache 分成 1 組,相當于全相聯映射

2️⃣ 當 n = Cache 塊行數時,Cache 的每個塊都是一組。相當于直接映射

【計算機組成原理】第4章 存儲器
【計算機組成原理】第4章 存儲器
【計算機組成原理】第4章 存儲器
【計算機組成原理】第4章 存儲器

🌈 FIFO:每個組内,就是一個小的隊列,組内整體向上移動一個機關,新元素放下面,彈出最上面的元素

【計算機組成原理】第4章 存儲器

🌈 LRU:每個組中,最不常用的放最上,剛剛用到的(命中)的放最下;遇到新的元素且組滿,則組内整體向上移動一個機關,新元素放最下,彈出最上面的元素

【計算機組成原理】第4章 存儲器
【計算機組成原理】第4章 存儲器
【計算機組成原理】第4章 存儲器
【計算機組成原理】第4章 存儲器
【計算機組成原理】第4章 存儲器