一 、章節(jié)導(dǎo)學(xué)
1. 馮諾依曼機(jī)
- 輸入設(shè)備
- 輸出設(shè)備
- 存儲器
- 運算器
- 控制器
2. 計算機(jī)硬件
- CPU:存儲器,運算器,控制器
- 內(nèi)存:存儲器
- 硬盤:存儲器
- 鼠標(biāo):輸入設(shè)備
- 鍵盤:輸入設(shè)備
- 顯示器:輸出設(shè)備
- 電源
- 主板
- 顯卡、聲卡
- 網(wǎng)卡
3. 主要內(nèi)容
- 計算機(jī)總線與IO設(shè)備:計算機(jī)的總線,計算機(jī)的輸入、設(shè)備
- 計算機(jī)的存儲器:計算機(jī)的存儲概覽,計算機(jī)的主存儲器與輔助存儲器,計算機(jī)的高速存儲器
- 計算機(jī)的CPU:計算機(jī)的指令系統(tǒng),計算機(jī)的運算器,計算機(jī)的控制器,指令執(zhí)行過程
二、 計算機(jī)的總線
1. 總線的概述
1.1 總線的概述(是什么、什么用)
- 提供了對外連接的接口
- 不同設(shè)備可以通過USB接口進(jìn)行連接
- 連接的標(biāo)準(zhǔn),促使外圍設(shè)備接口的統(tǒng)一

- USB
- PCI總線
- ISA總線
- Thunderbolt總線

解決不同設(shè)備之間的通信問題

1.2 總線的分類
片內(nèi)總線:高集成度芯片內(nèi)部的信息傳輸線
- 芯片內(nèi)部的總線
- 寄存器與寄存器之間
- 寄存器與控制器、運算器之間

系統(tǒng)總線
-
數(shù)據(jù)總線:一般與CPU位數(shù)相同(32位、64位)
- 雙向傳輸各個部件的數(shù)據(jù)信息
- 數(shù)據(jù)總線的位數(shù)(總線寬度)是數(shù)據(jù)總線的重要參數(shù)
-
地址總線:地址總線位數(shù)=n,尋址范圍:0~2^n
- 指定源數(shù)據(jù)或目的數(shù)據(jù)在內(nèi)存中的地址
- 地址總線的位數(shù)與存儲單元有關(guān)
-
控制總線
- 控制總線是用來發(fā)出各種控制信號的傳輸線
- 控制信號經(jīng)由控制總線從一個組件發(fā)給另外一個組件
- 控制總線可以監(jiān)視不同組件之間的狀態(tài)(就緒/未就緒)

2. 總線的仲裁
2.1 為什么需要總線的仲裁
解決不同設(shè)備使用總線優(yōu)先順序的一個設(shè)備

2.2 總線仲裁的方法(為了解決總線使用權(quán)的沖突問題)
鏈?zhǔn)讲樵?/h6>
- 好處:電路復(fù)雜度低,仲裁方式簡單
- 壞處:優(yōu)先級低的設(shè)備難以獲得總線使用權(quán)
- 壞處:對電路故障敏感
鏈?zhǔn)讲樵?/div>
計時器定時查詢
- 仲裁控制器對設(shè)備編號并使用計數(shù)器累計計數(shù)
- 接收到仲裁信號后,往所有設(shè)備發(fā)出計數(shù)值
- 計數(shù)值與設(shè)備編號一致則獲得總線使用權(quán)
image.png
獨立請求
- 每個設(shè)備均有總線獨立連接仲裁器
- 設(shè)備可單獨向仲裁器發(fā)送請求和接收請求
- 當(dāng)同時收到多個請求信號,仲裁器有權(quán)按優(yōu)先級分配使用權(quán)
image.png
- 好處:響應(yīng)速度快,優(yōu)先順序可動態(tài)改變
- 設(shè)備連線多,總線控制復(fù)雜
三、計算機(jī)的輸入輸出設(shè)備
1. 常見的輸入輸出設(shè)備
1.1 字符輸入設(shè)備
鍵盤:薄膜鍵盤,機(jī)械鍵盤,電容鍵盤
1.2 圖像輸入設(shè)備
鼠標(biāo)
數(shù)位板
掃描儀
1.3 圖像輸出設(shè)備
顯示器
打印機(jī)
投影儀
2. 輸入輸出接口的通用設(shè)計
2.1 要考慮的內(nèi)容
- 讀取數(shù)據(jù)
- 向設(shè)備發(fā)送數(shù)據(jù)
- 設(shè)備是否已經(jīng)連接
- 設(shè)備有沒有被占用
- 設(shè)備是否已經(jīng)啟動
2.2 設(shè)計
數(shù)據(jù)線
- 是I/O設(shè)備與主機(jī)之間進(jìn)行數(shù)據(jù)交換的傳送線
- 單向傳輸數(shù)據(jù)線
- 雙向傳輸數(shù)據(jù)線
狀態(tài)線
- IO設(shè)備狀態(tài)向主機(jī)報告的信號線
- 查詢設(shè)備是否已經(jīng)正常連接并就緒
- 查詢設(shè)備是否已經(jīng)被占用
命令線
- CPU向設(shè)備發(fā)送命令的信號線
- 發(fā)送讀寫信號
- 發(fā)送啟動停止信號
設(shè)備選擇線
- 主機(jī)選擇I/O設(shè)備進(jìn)行操作的信號線
- 對連在總線上的設(shè)備進(jìn)行選擇
3. CPU與IO設(shè)備的通信(CPU速度與IO設(shè)備速度不一致)
3.1 程序中斷
- 當(dāng)外圍IO設(shè)備就緒時,向CPU發(fā)出中斷信號
- CPU有專門的電路響應(yīng)中斷信號
程序中斷
- 提供低速設(shè)備通知CPU的一種異步的方式
- CPU可以高速運轉(zhuǎn)同時兼顧低速設(shè)備的響應(yīng)
3.2 DMA(直接存儲器訪問)
- DMA直接連接主存與IO設(shè)備
- DMA工作時不需要CPU的參與
DMA
- 當(dāng)主存與IO設(shè)備交換信息時,不需要中斷CPU
- 可以提高CPU的效率
應(yīng)用
- 硬盤
- 外置顯卡
四、計算機(jī)存儲器的概覽
1. 存儲器的分類
1.1 按存儲介質(zhì)分類
半導(dǎo)體存儲器
- 內(nèi)存
- U盤
- 固態(tài)硬盤
磁存儲器
- 磁帶
- 磁盤
1.2 按存取方式分類
隨機(jī)存儲器(RAM)
- 隨機(jī)讀取
- 與位置無關(guān)
串行存儲器
- 與位置有關(guān)
- 按按照順序查找
只讀存儲器(ROM)
- 只讀不寫
2. 存取器器的層次結(jié)構(gòu)
2.1 需要考慮的因素
- 讀寫速度
- 存儲容量
- 價格
2.2 希望的結(jié)果
- 讀寫速度(高)
- 存儲容量(大)
- 價格(低)
容量+價格 => 位價:每比特價格
2.3 層次結(jié)構(gòu)
- 緩存:速度快,價格高
- 主存:速度適中,價格適中
- 輔存:速度慢,價格低
存儲器的層次結(jié)構(gòu)
存儲器的層次結(jié)構(gòu)
原理:局部性原理
局部性原理是指CPU訪問存儲器時,無論是存取指令還是存取數(shù)據(jù),所訪問的存儲單元都趨于聚集在一個較小的連續(xù)區(qū)域中。
局部性原理
- 實現(xiàn):在CPU與主存之間增加一層速度快(容量?。┑腃ache
- 目的:解決主存速度不足的問題
五、計算機(jī)的主存儲器與輔助存儲器
1. 主存儲器——內(nèi)存
- RAM(隨機(jī)存取存儲器:Random Access Memory)
- RAM通過電容存儲數(shù)據(jù),必須隔一段時間刷新一次
- 如果掉電,那么一段時間后將丟失所有數(shù)據(jù)
image.png
image.png
image.png
2. 輔助存儲器——磁盤
2.1 磁盤
- 表面是可磁化的硬磁特性材料
- 移動磁頭徑向運動讀取磁道信息
image.png
image.png
2.2 磁盤調(diào)度算法
- 先來先服務(wù)算法
- 最短尋道時間優(yōu)先
- 掃描算法(電梯算法)
- 循環(huán)掃描算法
image.png
先來先服務(wù)算法
1=>4=>2=>3=>1=>5
最短尋道時間優(yōu)先
- 與磁頭當(dāng)前位置有關(guān)
- 優(yōu)先訪問離磁頭最近的磁道
4=>5=>3=>2=>1=>1
掃描算法(電梯算法)
- 每次只往一個方向移動
- 到達(dá)一個方向需要服務(wù)的盡頭再反方向移動
4=>3=>2=>1>1=>5
循環(huán)掃描算法
- 只能往一個方向讀取
4=>5=>1=>1=>2=>3
六、計算機(jī)的高速緩存
CPU與主存的速度不匹配
緩存-主存層次
1. 高速緩存的工作原理
1.1 字與字塊
字: 是指存放在一個存儲單元中的二進(jìn)制代碼組合
字塊:存儲在連續(xù)的存儲單元中而被看作是一個單元的一組字
image.png
image.png
image.png
例子:假設(shè)主存用戶空間容量為4G,字塊大小為4M,字長為32位,則對于字地址中的塊地址m和塊內(nèi)地址b的位數(shù),至少應(yīng)該是多少?

字塊數(shù):
字塊地址m:
塊內(nèi)字?jǐn)?shù): 
塊內(nèi)地址b: 

1.2 緩存
- 存儲的邏輯結(jié)構(gòu)類似
- 緩存的容量較小
- 緩存的速度更快
高速緩存
高速緩存
1.3 緩存的使用
- CPU需要的數(shù)據(jù)在緩存里
- CPU需要的數(shù)據(jù)不在緩存里
- 不在緩存的數(shù)據(jù)需要去主存拿
1.4 命中率
- 命中率是衡量緩存的重要性能指標(biāo)
- 理論上CPU每次都能從高速緩存取數(shù)據(jù)的時候,命中率為1
訪問主存次數(shù):
訪問Cache次數(shù):

1.5 訪問效率
訪問效率: 
訪問主存時間:
訪問緩存時間:
訪問Cache-主存系統(tǒng)平均時間:t_m)
t_m%7D)
例子:假設(shè)CPU在執(zhí)行某段程序時,共訪問了Cache命中2000次,訪問主存50次,已知Cache的存取時間為50ns,主存的存取時間為200ns,求Cache-主存系統(tǒng)的命中率、訪問效率和平均訪問時間。
命中率:
訪問效率:h_m%7D%3D%5Cfrac%7B50%7D%7B0.97*50%2B(1-0.97)*200%7D%3D0.917%3D91.7%5C%25)
平均訪問時間:*200%3D54.5ns)
2. 高速緩存的替換策略
2.1 高速緩存替換的時機(jī)
image.png
2.2 隨機(jī)算法
2.3 先進(jìn)先出算法(FIFO)
- 把高速緩存看做是一個先進(jìn)先出的隊列
- 優(yōu)先替換最先進(jìn)入隊列的字塊
FIFO
2.4 最不經(jīng)常使用算法(LFU)
- 優(yōu)先淘汰最不經(jīng)常使用的字塊
- 需要額外的空間記錄字塊的使用頻率
image.png
image.png
2.5 最近最少使用算法(LRU)
- 優(yōu)先淘汰一段時間內(nèi)沒有使用的字塊
- 有多種實現(xiàn)方法,一般使用雙向鏈表
- 把當(dāng)前訪問節(jié)點置于鏈表前面(保證鏈表頭部節(jié)點是最近使用的)
LRU
七、計算機(jī)的指令系統(tǒng)
1. 機(jī)器指令的形式
1.1 機(jī)器指令
- 機(jī)器指令主要由兩部分組成:操作碼、地址碼
機(jī)器指令
- 操作碼指明指令所要完成的操作
- 操作碼的位數(shù)反映了機(jī)器的操作種類
- 地址碼直接給出操作數(shù)或者操作數(shù)的地址
- 分三地址指令、二地址指令和一地址指令
三地址指令
二地址指令
一地址指令
1.2 零地址指令
- 在機(jī)器指令中無地址碼
- 空操作、停機(jī)操作、中斷返回操作等
2. 機(jī)器指令的操作類型
2.1 數(shù)據(jù)傳輸
- 寄存器之間、寄存器與存儲單元、存儲單元之間傳送
- 數(shù)據(jù)讀寫、交換地址數(shù)據(jù)、清零置一等操作
2.2 算術(shù)邏輯操作
- 操作數(shù)之間的加減乘除運算
- 操作數(shù)的與或非等邏輯位運算
2.3 機(jī)器指令的操作類型
- 數(shù)據(jù)左移(乘2)、數(shù)據(jù)右移(除2)
- 完成數(shù)據(jù)在算術(shù)邏輯單元的必要操作
2.4 控制指令
- 等待指令、停機(jī)指令、空操作指令、中斷指令等
3. 機(jī)器指令的尋址方式
3.1 指令尋址
- 順序?qū)ぶ?/li>
- 跳躍尋址
跳躍尋址
3.2 數(shù)據(jù)尋址
立即尋址
- 指令直接獲得操作數(shù)
- 無需訪問存儲器
立即尋址
直接尋址
- 直接給出操作數(shù)在主存的地址
- 尋找操作數(shù)簡單,無需計算數(shù)據(jù)地址
直接尋址
間接尋址
- 指令地址碼給出的是操作數(shù)地址的地址
- 需要訪問一次或多次主存來獲取操作數(shù)
間接尋址
尋址方式
優(yōu)點
缺點
立即尋址
速度快
地址碼位數(shù)限制操作數(shù)尋址范圍
直接尋址
尋找操作數(shù)簡單
地址碼位數(shù)限制操作數(shù)尋址范圍
間接尋址
操作數(shù)尋址范圍大
速度較慢
八、計算機(jī)的控制器
控制器是協(xié)調(diào)和控制計算機(jī)運行的
控制器
1. 程序計數(shù)器
- 程序計數(shù)器用來存儲下一條指令的地址
- 循環(huán)從程序計數(shù)器中拿出指令
- 當(dāng)指令被拿出時,指向下一條指令
2. 時序發(fā)生器
- 電氣工程領(lǐng)域,用于發(fā)送時序脈沖
- CPU依據(jù)不同的時序脈沖有節(jié)奏的進(jìn)行工作
3. 指令譯碼器
- 指令譯碼器是控制器的主要部件之一
- 計算機(jī)指令由操作碼和地址碼組成
- 翻譯操作碼對應(yīng)的操作以及控制傳輸?shù)刂反a對應(yīng)的數(shù)據(jù)
4. 指令寄存器
- 指令寄存器也是控制器的主要部件之一
- 從主存或高速緩存取計算機(jī)指令
5. 主存地址寄存器
- 保存當(dāng)前CPU正要訪問的內(nèi)存單元的地址
6. 主存數(shù)據(jù)寄存器
- 保存當(dāng)前CPU正要讀或?qū)懙闹鞔鏀?shù)據(jù)
7. 通用寄存器
- 用于暫時存放或傳送數(shù)據(jù)或指令
- 可保存ALU的運算中間結(jié)果
- 容量比一般專用寄存器要大
八、計算機(jī)的運算器
運算器是用來進(jìn)行數(shù)據(jù)運算加工的
運算器
1. 數(shù)據(jù)緩沖器
- 分為輸入緩沖和輸出緩沖
- 輸入緩沖暫時存放外設(shè)送過來的數(shù)據(jù)
- 輸出緩沖暫時存放送往外設(shè)的數(shù)據(jù)
2. ALU
- ALU:算術(shù)邏輯單元,是運算器的主要組成
- 常見的位運算(左右移、與或非等)
- 算術(shù)運算(加減乘除等)
ALU
3. 狀態(tài)字寄存器
- 存放運算狀態(tài)(條件碼、進(jìn)位、溢出、結(jié)果正負(fù)等)
- 存放運算控制信息(調(diào)試跟蹤標(biāo)記位、允許中斷位等)
4. 通用寄存器
- 用于暫時存放或傳送數(shù)據(jù)或指令
- 可保存ALU的運算中間結(jié)果
- 容量比一般專用寄存器要大
十、計算機(jī)指令執(zhí)行的過程
1. 指令執(zhí)行過程
指令執(zhí)行過程
指令執(zhí)行過程
指令執(zhí)行過程
2. CPU的流水線設(shè)計
2.1 指令執(zhí)行過程的問題
image.png
2.2 CPU的流水線設(shè)計
- 類似工廠的裝配線
- 工廠的裝配線使得多個產(chǎn)品可以同時被加工
- 在同一個時刻,不同產(chǎn)品均位于不同的加工階段
流水線設(shè)計
流水線設(shè)計
串行執(zhí)行m條指令: 
流水線執(zhí)行m條指令: )
%7D%7B3t%20%5Ctimes%20m%7D%20%3D%20%5Cfrac%7B1%7D%7B3%7D%20%2B%20%5Cfrac%7B1%7D%7B3m%7D)
十一、習(xí)題
1.計算機(jī)的總線就像是計算機(jī)的“高速公路”,你是否可以說出總線主要的功能和分類?
總線可以分為:片內(nèi)總線、系統(tǒng)總線,其中系統(tǒng)總線可以分為數(shù)據(jù)總線、地址總線、控制總線。
2.什么是總線標(biāo)準(zhǔn),為什么需要總線標(biāo)準(zhǔn),現(xiàn)在有哪些常見的總線標(biāo)準(zhǔn)?
總線標(biāo)準(zhǔn)是系統(tǒng)與各模塊、模塊與模塊之間的一個互連的標(biāo)準(zhǔn)界面??偩€標(biāo)準(zhǔn)有利于各模塊高效使用總線。USB、PCIe等。
3.常說的“IO設(shè)備”,“I”、“O”分別是什么的縮寫?
Input、Output,輸入設(shè)備、輸出設(shè)備。
4.常見的輸入設(shè)備可以分為什么種類?
字符輸入設(shè)備(鍵盤等)、圖像輸入設(shè)備(鼠標(biāo)、數(shù)位板、掃描儀)。
5.常見的輸出設(shè)備可以分為什么種類?
主要是圖像輸出設(shè)備(顯示器),但在計算機(jī)遠(yuǎn)未普及的時候,顯示器屬于字符輸出設(shè)備。
6.日常常見的計算機(jī)外設(shè)(顯示器、鍵盤、鼠標(biāo)、打印機(jī)),分別屬于什么設(shè)備?
顯示器、打印機(jī)屬于輸出設(shè)備,鍵盤、鼠標(biāo)屬于輸入設(shè)備。
7.輸入輸出接口一般需要完成什么工作,可以把接口的線路分為什么線路?
數(shù)據(jù)線、狀態(tài)線、命令線、地址線。
8.DMA的全稱是什么?
DMA:Direct Memory Access,直接內(nèi)存存取。
9.程序中斷和DMA相比,有什么優(yōu)劣?
程序中斷和DMA都是計算機(jī)IO和低速設(shè)備的交互方式,程序中斷方式實現(xiàn)簡單,DMA方式效率更高。
10.你是否可以清晰的表述計算機(jī)存儲器的層次結(jié)構(gòu)?存儲器的層次結(jié)構(gòu)是為了解決什么問題的?
存儲器的層次結(jié)構(gòu)可以簡單劃分為:緩存-主存-輔存三個層次,緩存-主存主要是為了解決主存速度不夠的問題;主存-輔存主要是為了解決主存容量不足的問題。
11.么是局部性原理,局部性原理對計算機(jī)存儲系統(tǒng)的設(shè)計產(chǎn)生了什么影響?
局部性原理是指CPU訪問存儲器時,無論是存取指令還是存取數(shù)據(jù),所訪問的存儲單元都趨于聚集在一個較小的連續(xù)區(qū)域中。
12.計算機(jī)存儲系統(tǒng)的每一個層次分別有什么特點?
緩存:速度快、位價高;主存:速度適中、位價適中;輔存:速度慢、位價低。
13.計算機(jī)的輔助存儲器一般是指計算機(jī)硬盤,你了解計算機(jī)磁盤的物理結(jié)構(gòu)嗎?
14.磁盤的調(diào)度算法有哪些?分別有什么特點?
先來先服務(wù)算法、最短尋道時間優(yōu)先算法、掃描算法、循環(huán)掃描算法。
15.計算機(jī)的主存一般是指計算機(jī)內(nèi)存,內(nèi)存有什么特點?
主存容量比緩存大、比輔存小,訪問速度比緩存慢,比輔存快,主存需要持續(xù)通電使用,停電時主存數(shù)據(jù)將會丟失。
16.請解釋概念:主存、輔存、Cache、RAM、ROM?
主存:主存儲器,即常說的計算機(jī)內(nèi)存條,輔存:輔助存儲器,即常說的磁盤、U盤、光盤、磁帶等,Cache:高速緩存,即常說的L1、L2、L3緩存,CPU寄存器等,RAM:隨機(jī)存取存儲器(英語:Random Access Memory,縮寫:RAM),ROM:只讀存儲器(Read Only Memory,縮寫:ROM)。
17.什么是字?什么是字塊?
字是指存放在一個存儲單元中的二進(jìn)制代碼組合;字塊是指存儲在連續(xù)的存儲單元中而被看作是一個單元的一組字。
18.計算機(jī)的高速緩存一般是指Cache,Cache一般位于計算機(jī)的什么硬件設(shè)備上?
在CPU上。
19.一般使用什么指標(biāo)去評估主存-高速緩存的性能?
命中率。
20.命中率是怎么定義的?
訪問主存次數(shù):
訪問Cache次數(shù):

21.訪問效率是怎么定義的?
訪問效率: 
訪問主存時間:
訪問緩存時間:
訪問Cache-主存系統(tǒng)平均時間:t_m)
t_m%7D)
22.假設(shè)CPU執(zhí)行某段程序共計訪問Cache命中4800次,訪問主存200次,已知Cache的存取周期是30ns,主存的存取周期是150ns,求Cache-主存系統(tǒng)的平均訪問時間和效率,試問該系統(tǒng)的性能提高了多少?
平均訪問時間:(480030+150200)/5000=34.8ns,命中率:4800/5000100%=96%,訪問效率e:30/34.8100%=86.2%,性能提升:(150-34.8)/150*100%=76.8%。
23.請描述LFU、LRU、FIFO緩存置換算法的過程。
24.計算機(jī)的指令一般由操作碼和地址碼組成,那么計算機(jī)指令可以分類為幾種類型?
移位操作指令、數(shù)據(jù)傳輸指令、控制指令、算術(shù)邏輯操作指令。
25.對計算機(jī)指令數(shù)據(jù)的尋址有哪幾種方式?
立即尋址、直接尋址、間接尋址。
26.計算機(jī)的運算器主要由什么組成?控制器呢?
控制器主要由:程序計數(shù)器、時序發(fā)生器、指令譯碼器、寄存器、總線組成。運算器主要由:數(shù)據(jù)緩沖器、ALU、寄存器、狀態(tài)字寄存器、總線組成。
27.請簡述計算機(jī)指令的執(zhí)行過程。
最后編輯于 :?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

計時器定時查詢
- 仲裁控制器對設(shè)備編號并使用計數(shù)器累計計數(shù)
- 接收到仲裁信號后,往所有設(shè)備發(fā)出計數(shù)值
- 計數(shù)值與設(shè)備編號一致則獲得總線使用權(quán)

獨立請求
- 每個設(shè)備均有總線獨立連接仲裁器
- 設(shè)備可單獨向仲裁器發(fā)送請求和接收請求
- 當(dāng)同時收到多個請求信號,仲裁器有權(quán)按優(yōu)先級分配使用權(quán)

- 好處:響應(yīng)速度快,優(yōu)先順序可動態(tài)改變
- 設(shè)備連線多,總線控制復(fù)雜
三、計算機(jī)的輸入輸出設(shè)備
1. 常見的輸入輸出設(shè)備
1.1 字符輸入設(shè)備
鍵盤:薄膜鍵盤,機(jī)械鍵盤,電容鍵盤
1.2 圖像輸入設(shè)備
鼠標(biāo)
數(shù)位板
掃描儀
1.3 圖像輸出設(shè)備
顯示器
打印機(jī)
投影儀
2. 輸入輸出接口的通用設(shè)計
2.1 要考慮的內(nèi)容
- 讀取數(shù)據(jù)
- 向設(shè)備發(fā)送數(shù)據(jù)
- 設(shè)備是否已經(jīng)連接
- 設(shè)備有沒有被占用
- 設(shè)備是否已經(jīng)啟動
2.2 設(shè)計
數(shù)據(jù)線
- 是I/O設(shè)備與主機(jī)之間進(jìn)行數(shù)據(jù)交換的傳送線
- 單向傳輸數(shù)據(jù)線
- 雙向傳輸數(shù)據(jù)線
狀態(tài)線
- IO設(shè)備狀態(tài)向主機(jī)報告的信號線
- 查詢設(shè)備是否已經(jīng)正常連接并就緒
- 查詢設(shè)備是否已經(jīng)被占用
命令線
- CPU向設(shè)備發(fā)送命令的信號線
- 發(fā)送讀寫信號
- 發(fā)送啟動停止信號
設(shè)備選擇線
- 主機(jī)選擇I/O設(shè)備進(jìn)行操作的信號線
- 對連在總線上的設(shè)備進(jìn)行選擇
3. CPU與IO設(shè)備的通信(CPU速度與IO設(shè)備速度不一致)
3.1 程序中斷
- 當(dāng)外圍IO設(shè)備就緒時,向CPU發(fā)出中斷信號
- CPU有專門的電路響應(yīng)中斷信號

- 提供低速設(shè)備通知CPU的一種異步的方式
- CPU可以高速運轉(zhuǎn)同時兼顧低速設(shè)備的響應(yīng)
3.2 DMA(直接存儲器訪問)
- DMA直接連接主存與IO設(shè)備
- DMA工作時不需要CPU的參與

- 當(dāng)主存與IO設(shè)備交換信息時,不需要中斷CPU
- 可以提高CPU的效率
應(yīng)用
- 硬盤
- 外置顯卡
四、計算機(jī)存儲器的概覽
1. 存儲器的分類
1.1 按存儲介質(zhì)分類
半導(dǎo)體存儲器
- 內(nèi)存
- U盤
- 固態(tài)硬盤
磁存儲器
- 磁帶
- 磁盤
1.2 按存取方式分類
隨機(jī)存儲器(RAM)
- 隨機(jī)讀取
- 與位置無關(guān)
串行存儲器
- 與位置有關(guān)
- 按按照順序查找
只讀存儲器(ROM)
- 只讀不寫
2. 存取器器的層次結(jié)構(gòu)
2.1 需要考慮的因素
- 讀寫速度
- 存儲容量
- 價格
2.2 希望的結(jié)果
- 讀寫速度(高)
- 存儲容量(大)
- 價格(低)
容量+價格 => 位價:每比特價格
2.3 層次結(jié)構(gòu)
- 緩存:速度快,價格高
- 主存:速度適中,價格適中
- 輔存:速度慢,價格低


原理:局部性原理
局部性原理是指CPU訪問存儲器時,無論是存取指令還是存取數(shù)據(jù),所訪問的存儲單元都趨于聚集在一個較小的連續(xù)區(qū)域中。

- 實現(xiàn):在CPU與主存之間增加一層速度快(容量?。┑腃ache
- 目的:解決主存速度不足的問題
五、計算機(jī)的主存儲器與輔助存儲器
1. 主存儲器——內(nèi)存
- RAM(隨機(jī)存取存儲器:Random Access Memory)
- RAM通過電容存儲數(shù)據(jù),必須隔一段時間刷新一次
- 如果掉電,那么一段時間后將丟失所有數(shù)據(jù)



2. 輔助存儲器——磁盤
2.1 磁盤
- 表面是可磁化的硬磁特性材料
- 移動磁頭徑向運動讀取磁道信息


2.2 磁盤調(diào)度算法
- 先來先服務(wù)算法
- 最短尋道時間優(yōu)先
- 掃描算法(電梯算法)
- 循環(huán)掃描算法

先來先服務(wù)算法
1=>4=>2=>3=>1=>5
最短尋道時間優(yōu)先
- 與磁頭當(dāng)前位置有關(guān)
- 優(yōu)先訪問離磁頭最近的磁道
4=>5=>3=>2=>1=>1
掃描算法(電梯算法)
- 每次只往一個方向移動
- 到達(dá)一個方向需要服務(wù)的盡頭再反方向移動
4=>3=>2=>1>1=>5
循環(huán)掃描算法
- 只能往一個方向讀取
4=>5=>1=>1=>2=>3
六、計算機(jī)的高速緩存
CPU與主存的速度不匹配

1. 高速緩存的工作原理
1.1 字與字塊
字: 是指存放在一個存儲單元中的二進(jìn)制代碼組合
字塊:存儲在連續(xù)的存儲單元中而被看作是一個單元的一組字



例子:假設(shè)主存用戶空間容量為4G,字塊大小為4M,字長為32位,則對于字地址中的塊地址m和塊內(nèi)地址b的位數(shù),至少應(yīng)該是多少?
字塊數(shù):
字塊地址m:
塊內(nèi)字?jǐn)?shù):
塊內(nèi)地址b:
1.2 緩存
- 存儲的邏輯結(jié)構(gòu)類似
- 緩存的容量較小
- 緩存的速度更快


1.3 緩存的使用
- CPU需要的數(shù)據(jù)在緩存里
- CPU需要的數(shù)據(jù)不在緩存里
- 不在緩存的數(shù)據(jù)需要去主存拿
1.4 命中率
- 命中率是衡量緩存的重要性能指標(biāo)
- 理論上CPU每次都能從高速緩存取數(shù)據(jù)的時候,命中率為1
訪問主存次數(shù):
訪問Cache次數(shù):
1.5 訪問效率
訪問效率:
訪問主存時間:訪問緩存時間:
訪問Cache-主存系統(tǒng)平均時間:
例子:假設(shè)CPU在執(zhí)行某段程序時,共訪問了Cache命中2000次,訪問主存50次,已知Cache的存取時間為50ns,主存的存取時間為200ns,求Cache-主存系統(tǒng)的命中率、訪問效率和平均訪問時間。
命中率:
訪問效率:
平均訪問時間:
2. 高速緩存的替換策略
2.1 高速緩存替換的時機(jī)

2.2 隨機(jī)算法
2.3 先進(jìn)先出算法(FIFO)
- 把高速緩存看做是一個先進(jìn)先出的隊列
- 優(yōu)先替換最先進(jìn)入隊列的字塊

2.4 最不經(jīng)常使用算法(LFU)
- 優(yōu)先淘汰最不經(jīng)常使用的字塊
- 需要額外的空間記錄字塊的使用頻率


2.5 最近最少使用算法(LRU)
- 優(yōu)先淘汰一段時間內(nèi)沒有使用的字塊
- 有多種實現(xiàn)方法,一般使用雙向鏈表
- 把當(dāng)前訪問節(jié)點置于鏈表前面(保證鏈表頭部節(jié)點是最近使用的)

七、計算機(jī)的指令系統(tǒng)
1. 機(jī)器指令的形式
1.1 機(jī)器指令
- 機(jī)器指令主要由兩部分組成:操作碼、地址碼

- 操作碼指明指令所要完成的操作
- 操作碼的位數(shù)反映了機(jī)器的操作種類
- 地址碼直接給出操作數(shù)或者操作數(shù)的地址
- 分三地址指令、二地址指令和一地址指令



1.2 零地址指令
- 在機(jī)器指令中無地址碼
- 空操作、停機(jī)操作、中斷返回操作等
2. 機(jī)器指令的操作類型
2.1 數(shù)據(jù)傳輸
- 寄存器之間、寄存器與存儲單元、存儲單元之間傳送
- 數(shù)據(jù)讀寫、交換地址數(shù)據(jù)、清零置一等操作
2.2 算術(shù)邏輯操作
- 操作數(shù)之間的加減乘除運算
- 操作數(shù)的與或非等邏輯位運算
2.3 機(jī)器指令的操作類型
- 數(shù)據(jù)左移(乘2)、數(shù)據(jù)右移(除2)
- 完成數(shù)據(jù)在算術(shù)邏輯單元的必要操作
2.4 控制指令
- 等待指令、停機(jī)指令、空操作指令、中斷指令等
3. 機(jī)器指令的尋址方式
3.1 指令尋址
- 順序?qū)ぶ?/li>
- 跳躍尋址

3.2 數(shù)據(jù)尋址
立即尋址
- 指令直接獲得操作數(shù)
- 無需訪問存儲器

直接尋址
- 直接給出操作數(shù)在主存的地址
- 尋找操作數(shù)簡單,無需計算數(shù)據(jù)地址

間接尋址
- 指令地址碼給出的是操作數(shù)地址的地址
- 需要訪問一次或多次主存來獲取操作數(shù)

| 尋址方式 | 優(yōu)點 | 缺點 |
|---|---|---|
| 立即尋址 | 速度快 | 地址碼位數(shù)限制操作數(shù)尋址范圍 |
| 直接尋址 | 尋找操作數(shù)簡單 | 地址碼位數(shù)限制操作數(shù)尋址范圍 |
| 間接尋址 | 操作數(shù)尋址范圍大 | 速度較慢 |
八、計算機(jī)的控制器
控制器是協(xié)調(diào)和控制計算機(jī)運行的

1. 程序計數(shù)器
- 程序計數(shù)器用來存儲下一條指令的地址
- 循環(huán)從程序計數(shù)器中拿出指令
- 當(dāng)指令被拿出時,指向下一條指令
2. 時序發(fā)生器
- 電氣工程領(lǐng)域,用于發(fā)送時序脈沖
- CPU依據(jù)不同的時序脈沖有節(jié)奏的進(jìn)行工作
3. 指令譯碼器
- 指令譯碼器是控制器的主要部件之一
- 計算機(jī)指令由操作碼和地址碼組成
- 翻譯操作碼對應(yīng)的操作以及控制傳輸?shù)刂反a對應(yīng)的數(shù)據(jù)
4. 指令寄存器
- 指令寄存器也是控制器的主要部件之一
- 從主存或高速緩存取計算機(jī)指令
5. 主存地址寄存器
- 保存當(dāng)前CPU正要訪問的內(nèi)存單元的地址
6. 主存數(shù)據(jù)寄存器
- 保存當(dāng)前CPU正要讀或?qū)懙闹鞔鏀?shù)據(jù)
7. 通用寄存器
- 用于暫時存放或傳送數(shù)據(jù)或指令
- 可保存ALU的運算中間結(jié)果
- 容量比一般專用寄存器要大
八、計算機(jī)的運算器
運算器是用來進(jìn)行數(shù)據(jù)運算加工的

1. 數(shù)據(jù)緩沖器
- 分為輸入緩沖和輸出緩沖
- 輸入緩沖暫時存放外設(shè)送過來的數(shù)據(jù)
- 輸出緩沖暫時存放送往外設(shè)的數(shù)據(jù)
2. ALU
- ALU:算術(shù)邏輯單元,是運算器的主要組成
- 常見的位運算(左右移、與或非等)
- 算術(shù)運算(加減乘除等)

3. 狀態(tài)字寄存器
- 存放運算狀態(tài)(條件碼、進(jìn)位、溢出、結(jié)果正負(fù)等)
- 存放運算控制信息(調(diào)試跟蹤標(biāo)記位、允許中斷位等)
4. 通用寄存器
- 用于暫時存放或傳送數(shù)據(jù)或指令
- 可保存ALU的運算中間結(jié)果
- 容量比一般專用寄存器要大
十、計算機(jī)指令執(zhí)行的過程
1. 指令執(zhí)行過程



2. CPU的流水線設(shè)計
2.1 指令執(zhí)行過程的問題

2.2 CPU的流水線設(shè)計
- 類似工廠的裝配線
- 工廠的裝配線使得多個產(chǎn)品可以同時被加工
- 在同一個時刻,不同產(chǎn)品均位于不同的加工階段


串行執(zhí)行m條指令:
流水線執(zhí)行m條指令:
十一、習(xí)題
1.計算機(jī)的總線就像是計算機(jī)的“高速公路”,你是否可以說出總線主要的功能和分類?
總線可以分為:片內(nèi)總線、系統(tǒng)總線,其中系統(tǒng)總線可以分為數(shù)據(jù)總線、地址總線、控制總線。
2.什么是總線標(biāo)準(zhǔn),為什么需要總線標(biāo)準(zhǔn),現(xiàn)在有哪些常見的總線標(biāo)準(zhǔn)?
總線標(biāo)準(zhǔn)是系統(tǒng)與各模塊、模塊與模塊之間的一個互連的標(biāo)準(zhǔn)界面??偩€標(biāo)準(zhǔn)有利于各模塊高效使用總線。USB、PCIe等。
3.常說的“IO設(shè)備”,“I”、“O”分別是什么的縮寫?
Input、Output,輸入設(shè)備、輸出設(shè)備。
4.常見的輸入設(shè)備可以分為什么種類?
字符輸入設(shè)備(鍵盤等)、圖像輸入設(shè)備(鼠標(biāo)、數(shù)位板、掃描儀)。
5.常見的輸出設(shè)備可以分為什么種類?
主要是圖像輸出設(shè)備(顯示器),但在計算機(jī)遠(yuǎn)未普及的時候,顯示器屬于字符輸出設(shè)備。
6.日常常見的計算機(jī)外設(shè)(顯示器、鍵盤、鼠標(biāo)、打印機(jī)),分別屬于什么設(shè)備?
顯示器、打印機(jī)屬于輸出設(shè)備,鍵盤、鼠標(biāo)屬于輸入設(shè)備。
7.輸入輸出接口一般需要完成什么工作,可以把接口的線路分為什么線路?
數(shù)據(jù)線、狀態(tài)線、命令線、地址線。
8.DMA的全稱是什么?
DMA:Direct Memory Access,直接內(nèi)存存取。
9.程序中斷和DMA相比,有什么優(yōu)劣?
程序中斷和DMA都是計算機(jī)IO和低速設(shè)備的交互方式,程序中斷方式實現(xiàn)簡單,DMA方式效率更高。
10.你是否可以清晰的表述計算機(jī)存儲器的層次結(jié)構(gòu)?存儲器的層次結(jié)構(gòu)是為了解決什么問題的?
存儲器的層次結(jié)構(gòu)可以簡單劃分為:緩存-主存-輔存三個層次,緩存-主存主要是為了解決主存速度不夠的問題;主存-輔存主要是為了解決主存容量不足的問題。
11.么是局部性原理,局部性原理對計算機(jī)存儲系統(tǒng)的設(shè)計產(chǎn)生了什么影響?
局部性原理是指CPU訪問存儲器時,無論是存取指令還是存取數(shù)據(jù),所訪問的存儲單元都趨于聚集在一個較小的連續(xù)區(qū)域中。
12.計算機(jī)存儲系統(tǒng)的每一個層次分別有什么特點?
緩存:速度快、位價高;主存:速度適中、位價適中;輔存:速度慢、位價低。
13.計算機(jī)的輔助存儲器一般是指計算機(jī)硬盤,你了解計算機(jī)磁盤的物理結(jié)構(gòu)嗎?
14.磁盤的調(diào)度算法有哪些?分別有什么特點?
先來先服務(wù)算法、最短尋道時間優(yōu)先算法、掃描算法、循環(huán)掃描算法。
15.計算機(jī)的主存一般是指計算機(jī)內(nèi)存,內(nèi)存有什么特點?
主存容量比緩存大、比輔存小,訪問速度比緩存慢,比輔存快,主存需要持續(xù)通電使用,停電時主存數(shù)據(jù)將會丟失。
16.請解釋概念:主存、輔存、Cache、RAM、ROM?
主存:主存儲器,即常說的計算機(jī)內(nèi)存條,輔存:輔助存儲器,即常說的磁盤、U盤、光盤、磁帶等,Cache:高速緩存,即常說的L1、L2、L3緩存,CPU寄存器等,RAM:隨機(jī)存取存儲器(英語:Random Access Memory,縮寫:RAM),ROM:只讀存儲器(Read Only Memory,縮寫:ROM)。
17.什么是字?什么是字塊?
字是指存放在一個存儲單元中的二進(jìn)制代碼組合;字塊是指存儲在連續(xù)的存儲單元中而被看作是一個單元的一組字。
18.計算機(jī)的高速緩存一般是指Cache,Cache一般位于計算機(jī)的什么硬件設(shè)備上?
在CPU上。
19.一般使用什么指標(biāo)去評估主存-高速緩存的性能?
命中率。
20.命中率是怎么定義的?
訪問主存次數(shù):
訪問Cache次數(shù):
21.訪問效率是怎么定義的?
訪問效率:
訪問主存時間:訪問緩存時間:
訪問Cache-主存系統(tǒng)平均時間:
22.假設(shè)CPU執(zhí)行某段程序共計訪問Cache命中4800次,訪問主存200次,已知Cache的存取周期是30ns,主存的存取周期是150ns,求Cache-主存系統(tǒng)的平均訪問時間和效率,試問該系統(tǒng)的性能提高了多少?
平均訪問時間:(480030+150200)/5000=34.8ns,命中率:4800/5000100%=96%,訪問效率e:30/34.8100%=86.2%,性能提升:(150-34.8)/150*100%=76.8%。
23.請描述LFU、LRU、FIFO緩存置換算法的過程。
24.計算機(jī)的指令一般由操作碼和地址碼組成,那么計算機(jī)指令可以分類為幾種類型?
移位操作指令、數(shù)據(jù)傳輸指令、控制指令、算術(shù)邏輯操作指令。
25.對計算機(jī)指令數(shù)據(jù)的尋址有哪幾種方式?
立即尋址、直接尋址、間接尋址。
26.計算機(jī)的運算器主要由什么組成?控制器呢?
控制器主要由:程序計數(shù)器、時序發(fā)生器、指令譯碼器、寄存器、總線組成。運算器主要由:數(shù)據(jù)緩沖器、ALU、寄存器、狀態(tài)字寄存器、總線組成。
27.請簡述計算機(jī)指令的執(zhí)行過程。
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。