計算機組成原理—硬體結構
二、存盤器
1.概述
存盤器是計算機系統中的記憶設備,用來存放程式和資料
1.1存盤器的層次結構
快取-主存層次主要解決CPU和主存速度不匹配的問題,速度接近快取
主存-輔存層次主要解決存盤系統的容量問題,容量接近與價位接近于主存
2.主存盤器
2.1概述
主存與CPU的聯系
- 主存中存盤單元地址的分配
主存各存盤單元的空間是由單元地址號來表示,
字地址使用該地址高位位元組的地址來表示,其字地址是4的整數倍,正好用地址碼的末兩位來區別
高地址存高位資料
低地址存低位資料
設地址線24位
若字長8位,按位元組尋址的范圍是16M(2的24次方)
若字長16位,按位元組尋址的范圍是8M
若字32位,按位元組尋址的范圍是4M
- 主存的計數指標
主要指標是存盤容量和存盤速度
存盤容量:存盤單元個數*存盤字長(注意單位,是否除以8)
存盤速度,分為存取時間和存取周期
存盤器帶寬:頻率*位數(1ns = 1MHz)
3.半導體存盤芯片
3.1基本結構
3.2譯碼驅動方式
- 線選法:在矩陣中每次選一行
- 重合法:在矩陣中利用X/Y地址譯碼器找到1位
4.隨機存取器
4.1靜態RAM(SRAM)
靜態RAM是用觸發器作業原理存盤資訊的,存盤資訊會保持原狀態,不需要再生
4.1.1SRAM單元電路
4.SRAM的舉例
以Intel 2144為例,1k*4(10根地址線,4根資料線)
其內部存盤矩陣如下圖所示
此結構將列分為4個組,每組16列,存取時,正好在每組拿一列,4位輸出/輸入
4.2動態RAM(DRAM)
常見的動態RAM的基本單元電路有三管式和但管式兩種,都是靠電容存盤電荷原理來寄存資訊,需要重繪,一般間隔2ms(一次存取)
4.2.1三管式
單元電路
其中的存盤的0/1與原存資訊是相反的
1k*1結構示意圖
4.2.2單管式
單元電路
16k*1結構示意圖
注:此時用了地址線的復用,先行地址,在列地址
4.3重繪
重繪是一行一行的重繪
4.3.1集中重繪
在2ms內選一個時間段進行重繪,會存在"死區"(不能進行任何操作)
4.3.2分散重繪
每行都進行一次集中重繪,無"死區",但會使存取周期變長
4.3.3異步重繪
將上述兩種方法結合,在2ms內尋找完成每一行重繪需要的時間間隔,在這個間隔內做一次集中重繪
4.3.4指令譯碼階段重繪
不會出現"死區"
4.4靜態和動態的比較
動態RAM | 靜態RAM | |
---|---|---|
集成度 | 高 | 低 |
封裝性 | 低 | 高 |
功耗 | 低 | 高 |
價格 | 低 | 高 |
速度 | 低 | 高 |
重繪 | 需要 | 不需要 |
5.存盤器與CPU的連接
5.1存盤容量的擴展
- 位擴展
位擴展是指增加字長,eg:1k * 4的芯片可以變成1k * 8的
- 字擴展
字擴展是指增加存盤器字的數量,eg:1k * 8的芯片可以變成2k * 8的
- 字,位擴展
將上面兩種擴展結合
5.2存盤器和CPU的連接
- 選擇合適的芯片(種類,個數)
- 資料線
- 地址線
- 控制線
- 片選信號:位擴展:串聯(一起選用);字擴展:互斥(只用一個)
5.2.1資料線(2個為例)
- 位擴展:一個芯片連高位,一個芯片連接低位
- 字擴展:對應相連即可
5.2.2地址線
- 位擴展:對應相連即可
- 字擴展:先連低位,如有剩余,則連片選等
5.2.3控制
- 若只有一個讀寫,則連接MAR
5.2.4片選信號
基本思想:位擴展:串聯(一起選用);字擴展:互斥(只用一個)
6.存盤器地校驗
6.1漢明碼地組成
漢明碼具有一位糾錯能力,默認偶檢驗(可以改為奇檢驗)
漢明碼 = 資訊碼 + 校驗碼
設資訊碼個數為n,校驗碼地個數為k,則要滿足n + k <= 2^k - 1
- 校驗碼的存放位置
從低到高位依次為,2^k(k從零開始...)
- 校驗碼0/1的選擇
若是偶檢驗,使該位與其校驗位的1的個數為偶數;奇檢驗反之
- 判斷與之對應的校驗位
將所有位數的二進制寫出,位數由校驗碼的個數而定,將1作為對應的標準
eg:4位資訊碼,3位校驗碼
C是校驗碼,b是資訊碼
C1的校驗位:3、5、7、(9)
C2的校驗位:3、6、7、(10)
C3的校驗位:5、6、7
(C4的校驗位:9、10)
6.2糾錯程序
由上述的規則來判斷是哪一位的0/1出錯
注:有的位置被多個校驗碼校驗,注意檢查
7.提高訪存速度的措施
7.1單體多字系統
如下圖,可以使主存寬帶提高4倍,提高了單體存盤器的作業速度
7.2多體并行系統
- 高位交叉編址的多體存盤器
- 低位交叉編址的多體存盤器
若存期周期位T,總線傳輸速率為r
低位:t = T + (n-1) * r
高位:t = n * T
8.高速快取存盤器
8.1概述
Cache-主存存盤空間的基本結構
CPU讀取主存某字時,有命中和不命中兩種
- 命中:主存塊已調入快取塊
- 不命中:欲訪問的主存塊沒有調入快取塊
有關命中率的計算
命中率 = 命中次數/總訪問次數
平均訪問時間 = 命中率 * 訪問Cache的時間 + 未命中率 * 訪問主存的時間
訪問效率 = 訪問Cache的時間 / 平均訪問時間 * 100%
8.2Cache-主存地址映射
計算主存地址時,從右往左算(2的多少次方)
- 直接映射
每個主存塊只與一個快取塊對應
字塊內地址:判斷字字塊的存錯單元的個數
Cache字塊地址:判斷Cache的塊數
主存塊標記:判斷主存的塊數,并減去上述兩個位數的和
- 全相聯映射
每個主存塊與任意快取塊對應
字塊內地址:判斷字字塊的存錯單元的個數
主存塊標記:判斷主存的塊數,并減去上述位數
- 組相聯映射
主存塊只與一個快取組對應,每個主存塊與對應快取組的任意快取塊對應
字塊內地址:判斷字字塊的存錯單元的個數
組地址:判斷Cache的組數
主存塊標記:判斷主存的塊數,并減去上述兩個位數的和
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/550274.html
標籤:其他
上一篇:談一談我對協同開發的一些認識