计算机组成原理(哈工大刘宏伟)135讲(一)
第一章 計算機系統概論
1.1 計算機系統簡介
計算機的軟硬件概念
1.2 計算機的基本組成
馮諾伊曼計算機的特點
1.計算機由五大部件組成
2.指令和數據以同等地位存于存儲器,可按地址尋訪
3.指令和數據用二進制表示
4.指令由操作碼和地址碼組成
5.存儲程序(核心特征),程序存儲在存儲器中
6.以運算器為中心
現代計算機硬件框圖
- 硬件 = 主機 + I / O設備
- 主機 = CPU + 主存
CPU = ALU(運算器) + CU(控制器) - I / O設備 = 輔存 + 輸入設備 + 輸出設備
- ps : 存儲器 = 主存 + 輔存
系統復雜性管理的方法-2(3’Y)
- 層次化:多個模塊
- 模塊化:功能和接口
- 規則性:模塊重用
計算機的解題過程
存儲器的基本組成:(主存儲器?)
- 存儲體 -> 存儲單元 -> 存儲元件(0/1)
- 存儲體中 :
存儲單元 : 存放一串二進制代碼
存儲字 : 存儲單元中二進制代碼的組合
存儲字長 : 存儲單元中二進制代碼的位數
按地址尋訪 :每個存儲單元賦予一個地址 - MAR (存儲器地址寄存器):反映存儲單元的個數
- MDR (存儲器數據寄存器):反映存儲字長
運算器的基本組成及操作過程:
- 乘法 : 加法 + 移位;除法 : 減法 + 移位
- 加法操作過程 :
指令 = “加” + M
初態 ACC 被加數
[M] -> X
[ACC] + [X] -> [ACC] - 減法操作過程 :
指令 = “減” + M
初態 ACC 被減數
[M] -> X
[ACC] - [X] -> [ACC] - 乘法操作過程 :
指令 = “乘” + M
初態 ACC 被乘數
[M] -> MQ
[ACC] -> X
0 -> ACC(移位)
[X] * [MQ] -> [ACC] // [MQ] - 除法操作過程 :
指令 = “除” + M
初態 ACC 被除數
[M] -> X
[ACC] / [X] -> [MQ]商 [ACC]余數
控制器的基本組成:
- 控制器的功能 ?1.解釋指令;2.保證指令的按順序執行
- 完成一條指令 需要三步 :
取指令 PC
分析指令 IR
執行指令 CU - PC 存放當前欲執行指令的地址,具有 計數功能 (PC) + 1 -> PC
- IR 存放當前欲執行的指令
主機完成一道指令的過程
-
取數 : 將存儲體中的放入ACC
-
存儲 : 將ACC中的放入存儲體
1.3 計算機硬件的主要技術指標
機器字長
- CPU 一次 能處理的數據的 位數
- 與 CPU中的 寄存器的位數 有關
運算速度
存儲容量
第3章 系統總線
3.1 總線的基本概念
什么是總線 :
總線 是 連接各個部件的信息傳輸線,是 各個部件共享的傳輸介質
總線上信息的傳送 :
分為 串行 和 并行
總線結構的計算機舉例 :
1.單總線(系統總線)結構框圖
2.面向CPU(I/O總線 M總線)的雙總線結構框圖
3.以存儲器為中心的雙總線(存儲總線 系統總線)結構框圖
3.2 總線的分類
- 1.片內總線 :芯片內部 的總線
- 2.系統總線 :計算機各部件之間 的信息傳輸線 ;分為三種總線 :
數據總線 :雙向 與機器字長、存儲字長有關(一般小于等于機器字長)
地址總線 :單向 與存儲地址、I/O地址有關
控制總線 :有出 有入 - 3.通信總線 :用于計算機系統之間 或 計算機系統與其他系統(如控制儀表、移動通信)之間的通信
傳輸方式 :串行通信總線;并行通信總線
3.3 總線性能及性能指標
總線特性
總線的性能指標
3.4 總線結構
單總線結構
多總線結構
1.雙總線結構
2.三總線結構
3.三總線結構的又一形式
4.四總線結構
總線結構舉例
3.5 總線控制
總線判優控制
1.基本概念
- 主設備 對總線有 控制權
- 從設備 響應 從主設備發來的總線命令
- 總線判優控制方法分為 集中式 和 分布式
- 其中,集中式 分為 鏈式查詢、計數器定時查詢、獨立請求方式
2.鏈式查詢方式
地址線
數據線
BS-總線忙
BR-總線請求
BG-總線同意
3.計數器定時查詢方式
地址線
數據線
設備地址
BS-總線忙
BR-總線請求
計數器
4.獨立請求方式
地址線
數據線
BG-總線同意
BR-總線請求
排隊器
總線通信控制
3.總線通信的四種方式
- 同步通信 :由 統一時標 控制數據傳送
- 異步通信 :采用 應答方式 ,沒有公共時鐘標準
- 半同步通信 :同步、異步結合
- 分離式通信 :充分 挖掘 系統 總線每個瞬間 的潛力
1)同步式數據輸入
2)同步式數據輸出
3)異步通信
4)半同步通信(異步、同步結合)
- 上述三種通信的共同點
一個總線傳輸周期(以輸入數據為例)
1)主模塊發地址、命令 (占用總線)
2)從模塊準備數據 (不占用總線,總線空閑)
3)從模塊向主模塊發數據 (占用總線)
5)分離式通信
- 充分挖掘系統總線每個瞬間的潛力
- 一個總線傳輸周期 :
子周期1 :主模塊 申請 占用總線,使用完后 即 放棄總線的使用權
子周期2 :從模塊 申請 占用總線,將各種信息送至總線上 - 分離式通信的特點 :
1.各模塊有權申請占用總線(都可以從 從模塊 變成 主模塊)
2.采用同步方式通信,不等對方回答
3.各模塊準備數據時,不占用總線
4.總線被占用時,無空閑
第4章 存儲器
4.1 概述
存儲器分類
1.按存儲介質分類
1)半導體存儲器 TTL、MOS (易失)
2)磁表面存儲器 磁頭、磁載體 (非易失)
3)磁芯存儲器 硬磁材料、環狀元件 (非易失)
4)光盤存儲器 激光、磁光材料 (非易失)
2.按存取方式分類
1)存取時間與物理地址無關(隨機訪問)
- 隨機存儲器 在程序的執行過程中 可 讀 可 寫
- 只讀存儲器 在程序的執行過程中 只 讀
2)存取時間與物理地址有關(串行訪問)
- 順序存取存儲器 磁帶
- 直接存取存儲器 磁盤
3.按在計算機中的作用分類
存儲器的層次結構
1.存儲器三個主要特性的關系
2.緩存-主存層次 和 主存-輔存層次
4.2 主存儲器(上)
概述
1.主存的基本組成
2.主存和CPU的聯系
3.主存中存儲單元地址的分配
- 地址線一次確定一個存儲單元,地址線上值可能取的所有組合確定了存儲單元的個數,所以,存儲單元的個數=2^地址線的條數
- 在未給出存儲字長的計算機中每次存儲單元為8位(MW中W是word的意思)
4.主存的技術指標
1)存儲容量 (主存 存放二進制代碼的總位數
2)存儲速度 :
- 存取時間 (存儲器的訪問時間)(讀出時間 寫入時間)
- 存取周期 (連續兩次獨立的存儲器操作(讀或寫)所需的 最小間隔時間(不是 總時間))
把存取周期 分成 讀周期 和 寫周期
3)存儲器的帶寬 :位/秒
半導體存儲芯片簡介
1.半導體存儲芯片的基本結構
存儲芯片片選線的作用
2.半導體存儲芯片的譯碼驅動方式
1)線選法
- 每一個地址對應了一條線,因此,對于容量很大的芯片是不合適的
2)重合法
- 比如20條線,在 線選法 中 需要的線是2202^{20}220;而在 重合法 中需要的線是210+2102^{10}+2^{10}210+210
隨機存取存儲器(RAM)
1.靜態RAM(SRAM)
1)靜態RAM基本電路
- 核心 是 利用觸發器(雙穩態觸發器)
2)靜態RAM芯片舉例
2.動態RAM(DRAM)
- 相比于SRAM,DRAM利用的是 電容
1)動態RAM基本單元電路
3)動態RAM舉例
4)動態RAM刷新
3.動態RAM和靜態RAM的比較
4.2 主存儲器(中)
只讀存儲器(ROM)
- 早期的只讀存儲器-在廠家就寫好了內容
- 改進1-用戶可以自己寫-一次性
- 改進2-可以多次寫-要能對信息進行擦除
- 改進3-電可擦寫-特定設備
- 改進4-電可擦寫-直接連接到計算機
1.掩模ROM(MROM)
是第一種,“在廠家就寫好了內容”
行列選擇線交叉處有MOS管為“1”
行列選擇線交叉處無MOS管為“0”
2.PROM(一次性編程)
行線與列線之間有 熔絲
熔絲斷 “0”
熔絲未斷 “1”
3.EPROM(多次性編程)
N型溝道浮動柵MOS電路
D端加正電壓 形成浮動柵 S與D不導通為“0”
D端不加正電壓 不形成浮動柵 S與D導通為“1”
紫外線全部擦洗(浮動柵的驅散)
4.EEPRROM(多次性編程)
電可擦寫
局部擦寫
全部擦寫
5.Flash Memory(閃速型存儲器)
EPROM 價格便宜 集成度高
EEPROM 電可擦洗重寫
Flash Memory 比EEPROM快 且具備RAM功能
存儲器與CPU連接
1.存儲器容量的擴展
1)位擴展(增加存儲字長)
- CS片選線,WE讀寫
- 位擴展 的關鍵 就是 把兩個芯片當成一個芯片,讓這兩個芯片同時進行操作
2)字擴展(增加存儲字的數量)
-
這兩個芯片不能同時進行工作,為此,A10A_{10}A10?就是這兩個芯片的片選信號,如果A10A_{10}A10?為1,就選擇第二個芯片,否則,選第一個芯片
3)字、位拓展
-
12根地址線中 10根用來原先地址線,剩余兩根當作片選線(00選第一組芯片,01選第二組芯片…),正好四個狀態
2.存儲器與CPU的連接
1)地址線的連接
2)數據線的連接
3)讀/寫命令線的連接
4)片選線的連接
5)合理選擇存儲芯片
6)其他 時序、負載
存儲器的校驗
合法代碼集合
1.編碼的最小距離
任意兩組合法代碼之間 二進制位數 的 最少差異
編碼的檢錯、糾錯能力 與 編碼的最小距離 有關
令L為編碼的最小距離,D為檢測錯誤的位數,C為糾正錯誤的位數,有
L?1=D+C(D≥C)L-1=D+C(D\geq C)L?1=D+C(D≥C)
漢明碼 是具有 一位糾錯能力 的編碼
2.漢明碼的組成
- 每一組都采用偶校驗的方式
- 偶校驗 采用 異或門 的方式來驗證
- 在通過這三組結果來判定 具體是哪一個出現的錯誤 時,我們假定 只有一位出現了錯誤
-
在判斷需要添加多少位校驗位時,2k2^k2k代表k個校驗位的情況,n+k+1n+k+1n+k+1代表n+k種哪一位出錯再加上“沒有出錯”這一情況
-
默認為 偶校驗
- 異或和 為1 說明 “1”的個數為奇數個,而在偶校驗中,由于校驗位的設立,保證了每組中“1”的個數為偶數個,因此,可以說明該組出錯
提高訪存速度的措施
- CPU的快速發展 與 主存的慢速發展 之間的差異
- 其中,措施有 :采用高速器件;采用層次結構 Cache-主存;調整主存結構
- 這節中主要使用 調整主存結構
1.單體多字系統
- 比如 CPU字長為16位,存儲器存儲字長設為64位,CPU每次訪問存儲器都可以訪問出 四個機器字 ,這四個機器字 每一個 都可以是一條機器指令,或者是長度為16的數據,CPU一次把這四個值從內存中取出,放到 數據寄存器中,下一次再用的時候就直接可以從數據寄存器中把需要的數據或者指令取走;因此,這種方法可以 增加存儲器的帶寬
- 問題 :1.可能錯誤修改,如果想要單字長的寫入,還需要額外的硬件;2.如果要取的數據或者指令不是連續的存放在相鄰的地址中,
- 雖然每一個存儲單元包括了四個機器字,但是這四個機器字 存取的時候 以整體的方式進行存取
2.多體并行系統
-
每一個存儲體 都有自己的控制電路(MAR、MDR、地址譯碼器)
-
CPU給出的地址中,地址的前兩位作為 體號,作為存儲體的體號
-
問題 :按 程序、數據存取的特征來說(程序和指令是順序存儲的,因此讀取程序或者指令時可能要訪問的是在同一個存儲體中),即使是并行,會造成某一個存儲器非常繁忙,其余存儲體非常閑
-
這種形式很像前面講過的 存儲器容量的擴展;因此,這種方式適合存儲器容量擴展,但不適合 提高存儲器的帶寬(提高存儲器的訪存速度)
-
分離式通訊
-
第一個字需要TTT,之后,每經過一個 總線傳輸周期 就會有一次訪問操作(在這里是讀取操作)完成
-
相對于 高位交叉,低位交叉 適用于 存儲器帶寬和訪問速度的提高
3.高性能存儲芯片
4.3 高速緩沖存儲器
概述
1.問題的提出
- 要想充分發揮Cache的能力,使機器的速度切實的得到提高,必須要保障 cpu訪問的數據或指令 大多數情況下 都能在cache中取得,為此,要依靠 程序訪問的局部性原理
- 程序訪問的局部性原理 分為兩塊,1.時間的局部性 :當前正在訪問的指令或數據,在不久的將來還會被訪問到,因此,當前正在訪問的這些,我們應該把它放到cache中,將來就可以直接從cache中取出;2.空間的局部性 :當前正在訪問的指令或數據,在不久的將來 相鄰的指令或數據 會被訪問到
- cache和主存之間數據交換的單位是 一塊,這個塊中 即包括了 正在使用的指令或數據,也包括了 相鄰的指令或數據
2.Cache的工作原理
-
Cache容量遠遠小于主存的容量,因此,M>>CM >> CM>>C
-
主存 和 Cache的 塊內地址 是相同的
-
Cache上的 標記 ,實際上標記了主存塊和Cache塊之間的對應關系
-
訪問效率在[tctm,1][\frac{t_c}{t_m},1][tm?tc??,1]之間
3.Cache的基本結構
- 主存Cache地址映射變換機構 :
地址映射 就是 map,它實際上給出的是一個規則,主存中的一個塊如果要放到Cache中,它可以被放到Cache的那一個塊,或者哪些塊當中,這就是映射規則
變換,就是把 主存的塊號 轉換成 相應的Cache的塊號,或者把 主存的地址 轉換成Cache的地址,在Cache中找到相應的地址塊進行訪問。也就是說 查找 操作
4.Cache的讀/寫操作
- Cache是內存中某些塊的緩存,Cache中有的信息在內存中也有,讀操作不對Cache塊中任何信息進行修改,那么 主存和Cache的信息就是一致的;而 寫操作 不同,會造成Cache和主存的不一致,比如 只對Cache寫,沒有對主存寫,所以寫操作中一定要解決Cache和主存的一致性問題
5.Cache的改進
Cache-主存的地址映射
- 速度快
- 缺點 :Cache的利用率低,重復率高
- 成本高,速度慢,Cache利用率高
- 主存中的塊可以被放入Cache中任何一個塊中。因此,Cache的利用率高了
- 缺點 :查找時 主存字塊標記 要和 Cache中的所有標記 進行比較;參加比較的位數也比較長
- 前兩者的折中
- Cache被分成了多少組,那么主存儲器中每個區就包含了多少塊;映像時,每個區的第0塊可以放到Cache中第0組的任何一個位置,也就是說 主存中每個塊在區里的編號就直接決定了可以放在Cache中的哪個組
- 和直接相聯相比,每個塊可以有多個位置來放,即使其中一個位置被占用了,另外一個位置如果是空的,內存塊就可以掉入到這個空的位置;和全相聯相比,如果我們要找一個內存塊是不是被掉入到了Cache中,我們只需要確定它在某個區的標號是多少,就可以找到給定的組,比較的數量小的多
替換算法
- 前面介紹了一個內存塊可以放在Cache的什么位置;如果我們發現Cache已經滿了,沒有位置可以放,那么必須有一個Cache中的塊被替換出來
4.4 輔助存儲器
概述
- 磁盤每個磁道都是同心圓,越往外,位密度就越低
- 存儲容量 = 盤面數量 * 磁道 / 面 * 多少位二進制信息 / 磁道
- 數據傳輸率 與 位密度 有關,數據傳輸率 = 位密度 * 旋轉的速度
磁記錄原理和記錄方式
硬磁盤存儲器
- 類型區分方法1 :
固定磁頭 : 磁頭不動,盤片旋轉,盤片不會平移,因此,每一個磁道都需要一個磁頭,數量很龐大,但是速度會比較快
移動磁頭 :每一個盤面上有一個磁頭,這個磁頭可以沿著盤面移動 - 類型區分方法2 :
常用的是固定盤,不能隨意取出盤片
軟磁盤存儲器
光盤存儲器
總結
以上是生活随笔為你收集整理的计算机组成原理(哈工大刘宏伟)135讲(一)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 尚硅谷最新版JavaWeb全套教程,ja
- 下一篇: 蓝桥杯C++ AB组辅导课 第六讲 双指