計算機系統概述
計算機發展歷程
從數據表示:
計算機可以分為數字計算機與模擬計算機
1946 第一臺電子數字計算機 ENIAC 在賓夕法尼亞大學誕生,標志進入電子計算機時代
時間 | 計算機發展階段 |
---|---|
1946-1958 | 電子管計算機時代 |
1958-1964 | 晶體管計算機時代 |
1964-1971 | 集成電路計算機時代 |
1971-至今 | 超大規模集成電路計算機時代 |
摩爾定律
當價格不變,集成電路上可以容納的晶體管數量大約18-24個月翻一番,性能提升一杯
計算機系統的組成
計算機 = 軟件+硬件
固件: 固化的軟件,兼備軟件與硬件的特性
計算機硬件系統: 構成計算機系統的電子線路與電子元件等物理設備總稱
硬件是構成計算機的物質基礎,是計算機系統的核心
馮諾依曼體系結構
二進制作為數字計算機數制基礎的理論
主要思想: 存儲程序,程序控制
計算機硬件 = 運算器 + 控制器 + 存儲器+ 輸入設備 + 輸出設備
計算機軟件 = 應用軟件+系統軟件
cpu = 運算器+控制器
計算機系統的層次結構
軟件
高級語言:高級語言
匯編語言 :匯編語言
操作系統:匯編語言
硬件
指令集架構層:通過解釋到微代碼層,機器語言
微代碼層:微程序
邏輯門層:硬件工程師看到的
在抽象的較高層,使用問題環境的語言,以概述的方式解決問題,在抽象的較低層,采用過程化的方式
計算機的層次結構是1960 之后引入計算機領域的概念,是計算機中使用抽象方法的具體實例
計算機性能指標與評價
基本性能指標
- 字長: cpu一次處理的數據位數,用二進制的位數表示
- 主存容量;主存能存儲的最大信息量,一般用M*N,M代表存儲單元數,N表示每個存儲單元的存儲的二進制位數
時間性能指標
- 時間周期:計算機中最基本,最小的時間單位,一個時間周期,cpu只能完成一個動作
- CPI:執行每條指令所需要的平均時間周期數量
- IPC:cpi的倒數,每個時間周期cpu執行的指令數量
- MIPS:每秒百萬條指令,更大的單位GIPS
- MFLOPS:計算機每秒執行的浮點運算的位數
數據的機器級表示與運算
數據表示的作用
數據表示的作用給是將數據按照某種方式組織起來,以便計算機硬件能直接識別與使用
在設計與選擇計算機數據表示方式的時候需要考慮的因素
- 數據類型
- 表示范圍與精度
- 存儲與處理的代價
- 軟件的可移植性
二進制由于編碼最少,容易與簡單的物理狀態對應,算術邏輯運算電路更容易實現等優勢成為現代計算機中數據表示的必然選擇,采用二進制可以表示任何的數據信息
數值數據的表示
機器數/機器碼: 符號+數值一起編碼表示的二進制數
定點數的機器碼: 原碼,反碼,補碼,移碼
- 原碼
最高位:符號位,0正,1負數
數值:絕對值
與真值最接近的一種表示方法 - 反碼
符號位同原碼
真值為負數的時候: 數值位取反 - 補碼
真值為負數的時候: 數值位取反+1 - 移碼
只表示定點整數,常用于表示浮點數的階碼
正數:原碼反碼補碼同
0:
定點數表示
- 無符號數的表示
指的是正整數的表示,表示的是數的絕對值
機器字長的全部位數來表示數值的大小,
若字長n+1位,則無符號數的表示范圍:0~2(n+1) -1
- 帶符號數的表示
最高位符號位,0正1負
浮點數表示
浮點數: 小數點可以移動的數據
符號位+階碼+尾數
階碼部分用移碼表示
定點數運算
- 移位運算:
算術移位:帶符號數移位
邏輯移位:無符號數移位 - 原碼定點數的加/減運算
- 補碼定點數的加/減運算
- 定點數的乘/除運算
浮點數加/減運算
對階
尾數加減
規格化
舍入
檢查溢出
進位計數制及其相互轉換
信息 | 計算機數據表示 |
---|---|
整數 | 定點數 |
實數 | 浮點數 |
布爾數 | 邏輯數 |
字符 | |
字符串 | |
無符號數在計算機中的表示 |
- 位數不等的二進制碼
- BCD碼,分為壓縮BCD 和 非壓縮BCD
- ASCLL碼 ,包含128個編碼
52個大小寫字母
10個十進制數字字符
32個標點符號,運算符號,特殊號
34個不可以顯示打印的控制字符編碼
數據校驗
數據校驗碼
加進一些冗余碼,使得合法編碼出現某些錯誤的時候,就成為錯誤編碼
碼距
根據任意兩個合法碼之間至少有幾個二進制位不相同確定,僅有1位不同稱之為碼距為1
奇偶校驗碼
原理:
使碼距由1增加到2
如果編碼中由1位二進制數出錯了,這樣的出錯的編碼就成為非法編碼,就可以知道出現了錯誤
在原有的編碼上再增加1位校驗位,原編碼n位,形成新的編碼n+1位,增加的方式有兩種
- 奇校驗
增加的0/1使得整個編碼中1的個數為奇數個 - 偶校驗
增加的0/1使得整個編碼中1的個數為偶數個
海明校驗碼
原理:
在數據中加入幾個校驗位,并把數據中的每一個二進制位分配到幾個奇偶校驗組中,當某一位出錯引起相關的校驗組發生錯誤
這樣可以定位發生錯誤的是哪一位,還給自動糾錯提供保障
只有k=2?-1-r能用于糾正被傳送數據的位數
CRC校驗碼
原理:
在k位信息后拼接r位校驗碼
如何從k位信息得到r位校驗碼?
指令系統
指令系統
指令系統
計算機的工作是反復執行指令
指令是用戶使用計算機與計算機運行的基本單位
高級語言指令與匯編語言指令屬于軟件層次
機器語言指令與微指令則屬于硬件層次
軟件層次的指令 翻譯
層機器語言指令 才能被計算機硬件識別并執行
機器指令是計算機硬件與軟件的界面,是用戶操作與使用計算機硬件的接口
指令系統是計算機系統性能的集中體現,是計算機軟,硬件系統的設計基礎
指令格式
操作碼+地址碼
- 操作碼:
- 操作數的地址
- 操作結果的存儲地址
- 下一條指令的地址
指令尋址方式
根據存儲程序的概念,計算機在運行之前必須把指令與數據存放在主存的相應地質單元
運行程序的時候,不斷從主存取指令與數據
主存是基于地址訪問的,只有獲取指令與數據在主存中的地址(有效地址EA),CPU才能訪問指令與數據
尋址方式就是尋找指令或操作數有效地址的方式
尋址方式 | 分類 |
---|---|
數據尋址 | 立即/直接/間接/寄存器/寄存器間接/相對/變址/基址/堆棧 尋址 |
指令尋址 | 順序/跳躍 尋址 |
CISC 與 RISC
名字 | 內容 |
---|---|
CICS復雜指令集計算機 | 隨著VLSI技術發展,指令系統復雜龐大, 大多數采用微程序控制器 縮短高級語言與指令系統的差別 源代碼長度短 |
RISC簡單指令集計算機 | IBM公司的John提出,指令簡單長度固定 硬布線控制邏輯為主,一般用高級語言編程 優化編譯,源代碼長度長 |
中央處理器
CPU 功能和組成
cpu 功能
- 程序控制
程序中指令執行順序控制 - 操作控制
機器指令翻譯成執行部件所需要的操作控制信號 - 時序控制
控制操作信號的產生,持續時間 - 數據加工
對數據進行算術,邏輯運算,或將數據在相關部件之間傳送 - 中斷處理
cpu及時響應內部異常與外部中斷請求
cpu組成
運算器+控制器
控制器功能
取指令,分析指令,執行指令
控制器組成
- 程序計數器 PC
- 指令寄存器 IR
- 存儲器地址寄存器AR 存儲器數據寄存器 DR
- 指令譯碼器或操作碼譯碼器
- 脈沖源及啟停線路
- 時序控制信號形成部件
指令執行過程
???
數據通路的功能與基本結構
cpu 的數據通路是連接cpu內部各個部件與cpu外部的各個部件之間的數據與控制信號的連接關系圖
控制器的功能與工作原理
硬布線控制器
1.時序與節拍
每一步由一個機器周期來完成,假設采取4個機器周期,需要4個不同的信號輸出來表示
2.操作碼譯碼器
指令的操作碼部分指出本指令將執行什么指令,對于不同的指令采用不同的代碼表示
3.操作控制信號的產生
微程序控制器
計算機中一條指令的功能是通過按照一定的次序執行一系列基本的操作完成的
這些基本操作稱為微操作
實現微操作的控制命令就是微命令
1.微程序,微指令,微命令
- 微指令:一組微操作就是微指令,一條指令可以被分為若干條微指令
- 微程序:計算機每條指令都是由微指令序列解釋完成,這些序列的集合叫做微程序
2.微指令的編碼方式
- 直接控制法
- 字段直接編譯法
- 字段間接編譯法
存儲器分層體系結構
存儲器體系結構
隨機訪問存儲器
隨機存儲器可以按照地址隨機讀寫數據存儲單元,且存儲訪問時間與存儲單元的位置無關
半導體存儲器 分為 隨機存儲器與只讀存儲器
存儲器 | 特點 |
---|---|
SRAM | 隨機訪問存儲器,易失性存儲器,可以作為高速緩存存儲器,也可以用在CPU上面 |
DRAM | 隨機訪問存儲器,易失性存儲器,常用于主存 |
PROM | 只能被編程一次 |
EPROM | 可以編程多次 |
閃存 | 非易失性存儲器,基于EEPROM |
訪問主存
數據通過總線在處理器與DRAM之間來來回回
每次cpu與主存之間的數據傳送都是通過一系列步驟完成的,這些步驟稱為總線事務
讀事務:主存傳送數據到CPU
寫事務:CPU傳送數據到主存
IO橋: 將系統總線的電子信號翻譯成為存儲器總線的電子信號
磁盤存儲
磁盤由多個疊放在一起的盤片組成,整體稱為磁盤驅動器,簡稱磁盤
SSD 沒有移動的部分
高速緩存
互連與輸入輸出系統
I/O系統概念
I/O系統主要用于實現CPU與外部設備,外部設備與主存之間的信息交換
包括 I/O設備.I/O接口,總線,I/O管理部件等硬件設備
驅動程序,軟件訪問接口,用戶程序等軟件設備
輸入輸出設備的發展
- 早期:分散連接,CPU 與I/O設備串行工作,程序查詢方式
- 接口模塊和DMA階段:總線連接,CPU與I/O設備并行工作,中斷方式和DMA方式
- 具有通道機構的階段
- 具有I/O處理機的階段
I/O接口的功能
接口
- 總線接口:標準的
- 內部接口:因設備而異,非標準的
功能
- 設備尋址:接收來自總線的地址信息,經過譯碼電路,選擇對應外部設備的寄存器與存儲器
- 數據交互:實現外部設備,主存,cpu之間的數據交換
- 設備控制:傳送cpu命令
- 狀態檢測:反應外部設備的工作狀態
- 數據緩沖:匹配cpu與外部設備的速度差距
- 格式轉換:實現數據格式轉化或邏輯電平信號轉換
還應該有中斷,時序控制,數據檢錯,糾錯的功能
外部設備
輸入設備
- 鍵盤
常見的ASCLL字符
功能鍵盤
光標控制鍵
編輯鍵 - 鼠標
機械式:金屬球電位器
光電式:光電轉換器
輸出設備
- 顯示器
按器件分類:CRT顯示器,LED顯示器,等離子體顯示器
按顯示內容分類:字符發生器(CRT),圖形顯示器(主觀圖像),圖像顯示器(客觀圖像) - 打印機
按印字原理分類:- 打擊式:點陣式打印機
- 非打擊式:激光,靜電,噴墨等
按照工作方式分類: - 串行打印機,逐字打印
- 行式打印機,逐行打印
外存儲器
- 硬盤存儲器
- 磁盤陣列
RAID 采用低成本的小溫盤,使得多臺磁盤構成同步化的磁盤陣列
分類:RAID0~RAID6
RAID6能支持兩塊磁盤同時出錯 - 光盤存儲器
只讀光盤
寫一次/多次讀光盤
可重寫光盤
I/O接口(IO控制器)
基本功能
- 實現設備的選擇
- 實現數據緩沖達到速度匹配
- 實現數據串并格式轉換
- 實現電平轉換
- 傳送控制命令
- 反映設備的狀態
基本組成
功能 | 組成 |
---|---|
選址 | 設備選擇電路 |
傳送命令 | 命令寄存器,命令譯碼器 |
傳送數據 | 數據緩沖寄存器 |
反映設備狀態 | 設備狀態標記 |
I/O端口及其編址
cpu采用兩種方式訪問I/O設備,也稱I/O端口編址方式
- 專門的io指令
由相應的控制信號來區分CPU執行的什么指令 - 利用訪問存儲器命令完成io功能
從主存地址空間分一部分作為io的設備代碼
沒有控制信號區分存儲器還是端口
I/O方式
cpu與外部設備進行信息交換,根據外部設備不同采取不同的控制方式
- 程序查詢方式
cpu不斷的詢問外部設備是否準備好 - 程序中斷方式
進程進入等待隊列,當外設準備好后向cpu發送中斷請求,cpu響應中斷請求,展廳當前執行的程序,調用中斷服務程序,由中斷服務程序喚醒正在等待的進程
CPU與外設可以并行工作 - DMA方式
IO設備與主存之間由硬件組成的數據通路 - 通道方式
總線
分類
方式 | 分類 |
---|---|
傳送信息的方式 | 串行/并行/復合傳送(先傳地址,再傳送數據) |
傳送信息的類型 | 數據總線DB/地址總線AB/控制總線CB/復合總線AD |
按照連接的距離與對象分類 | 片內總線/系統總線/外總線 |
總線協議
總線傳輸的周期
- 總線請求
- 總線仲裁
- 尋址階段
- 傳輸階段
- 結束階段
四種方式:
- 同步通信
- 異步通信
- 半同步通信
- 分離式通信
并行處理系統
多核處理器
是在超線程,多處理器,超標量的基礎上發展的
GPU
GPU是適合做大量重復運算的處理器
集群
由完整的計算機和獨立的可以擴展的網絡構建的