1. 計算機系統概述
文章目錄
- 1. 計算機系統概述
- 1.1 計算機的發展
- 硬件的發展
- 軟件的發展
- 1.2.1 計算機硬件的基本組成
- 早期馮諾依曼的結構
- 現代計算機的結構
- 1.2.2 各個硬件的工作原理
- 主存儲器
- 運算器
- 控制器
- 計算機工作過程
- 1.2.3 計算機系統的多級層次結構
- 1.3 計算機的性能指標
- 存儲器的性能指標
- 總容量
- CPU的性能指標
- CPU主頻
- 平均CPI
- IPS
- 系統整體的性能指標
- 數據通路帶寬
- 吞吐量
- 響應時間
- 系統整體的性能指標(動態測試)
- 常用數量單位
計算機組成(硬件)-> 操作系統 -> 數據結構(軟件)<—計算機網絡—> 其他計算機
例子:買電腦的時候會關注CPU型號(圖像處理速度)、運行內存(同時開多個應用程序)、機身存儲(外存)(可以存的容量大小)、顯卡(顯卡是由GPU、顯存等組成的)
計算機硬件唯一能識別的數據:二進制0/1,用低/高電平分別表示0/1
硬件上的金屬針腳是用來接受高/低電平的電信號的,主板上的印刷電路是導電用的
待解決問題:數字、文字、圖像如何用二進制表示?CPU如何對二進制數進行加減乘除?二進制數如何存儲?如何從內存中取出想要的數據?CPU如何識別和執行我們寫的程序?
軟件:系統軟件(用來管理整個計算機系統,例如操作系統、數據庫管理系統DBMS、標準程序庫、網絡軟件、語言處理程序、服務程序) + 應用軟件
1.1 計算機的發展
硬件的發展
計算機邏輯元件的發展:電子管(機器語言,紙袋機,馮諾依曼),晶體管(面向過程設計語言,操作系統雛形,貝爾實驗室),中小規模集成電路(高級語言,分時操作系統),大規模、超大規模集成電路(微處理器CPU,微型計算機,個人計算機,操作系統)
微處理器發展:機器字長增加?
機器字長:計算機(CPU)一次整數運算所能處理的二進制位數
摩爾定律:在集成電路上,可以容納的晶體管數目每隔18個月會增加一倍,(CPU)整體性能也將提升一倍。主存(內存)的發展也符合摩爾定律。
軟件的發展
軟件的發展就是編程語言的發展:機器語言,匯編語言,高級編程語言
操作系統的發展:DOS命令行,圖形化界面
目前的兩極分化:微型計算機向更微型化、網絡化、高性能、多用途方向發展;巨型機向更巨型化、超高速、并行處理、智能化方向發展
1.2.1 計算機硬件的基本組成
早期馮諾依曼的結構
存儲程序的概念:將指令以二進制代碼的形式事先輸入計算機的主存儲器(內存),計算機按順序執行指令,直到程序結束
硬件結構:

運算器:進行算術運算、邏輯運算
控制器:指揮程序運行
馮諾依曼計算機的特點:計算機由五大部件組成;指令和數據以同等地位存于存儲器,可按地址尋訪;指令和數據用二進制表示;指令由操作碼和地址碼組成;存儲程序;以運算器為中心
現代計算機的結構
是馮諾依曼結構的優化,以存儲器為中心

CPU = 運算器 + 控制器

現代計算機結構:主機(CPU(運算器+控制器)+存儲器)+IO設備(輸入設備+輸出設備)
存儲器:存放數據和程序
運算器:算術運算、邏輯運算
控制器:指揮各部件,使程序運行
1.2.2 各個硬件的工作原理
主存儲器
主存儲器 = 存儲體 + MAR + MDR, 數據在存儲體內按地址存儲
主存儲器的工作流程:CPU->MAR 存儲地址寄存器->存儲體->MDR 存儲數據寄存器->CPU
CPU可以往主存儲器讀寫數據,流程是一樣的

存儲單元:每個存儲單元存放一串二進制代碼
存儲字(word):存儲單元中二進制代碼的組合
存儲字長:存儲單元中二進制代碼的位數,通常為8 bit 的整數倍

MAR位數反應存儲單元的個數,MDR位數=存儲字長
例子:MAR = 4位 ->總共有24個存儲單元
? MDR = 16位 ->每個存儲單元可存放16bit, 1個字(word) = 16bit
易混淆:1個字節(Byte) 1B = 8bit ; 1b = 1bit
? 和字不一樣,字的大小看計算機硬件怎么設計的
運算器
運算器用于實現算術運算(如:加減乘除)、邏輯運算(如:與或非)
運算器 = ACC +MQ+X+ALU
ACC:累加器,用于存放操作數或運算結果
MQ:乘商寄存器,在乘除運算時,用于存放操作數或運算結果
X:通用的操作數寄存器,用于存放操作數
ALU:算術邏輯單元,通過內部復雜的電路實現算術運算、邏輯運算
控制器
控制器 = CU+IR+PC
CU:(最核心)控制單元,分析指令,給出控制信號
IR:指令寄存器,存放當前執行的指令
PC:程序計數器,存放下一條指令地址,有自動加一功能
完成指令:取指令(PC),分析指令(IR),執行指令(CU)
計算機工作過程
控制器PC?主存儲器MAR?主存儲體?MDR?控制器IR //取指令
?CU //分析指令
?主存儲器 //執行取或存數指令
(?運算器)
?控制器PC自動加一
(執行停機指令)
1.2.3 計算機系統的多級層次結構
高級語言(C++為例)->(編譯器:編譯程序)-> 匯編語言:助記符 -> (匯編器:匯編程序)-> 機器語言:二進制代碼
編譯程序:將高級語言編寫的源程序全部語句一次全部翻譯成機器語言程序
解釋程序:將源程序一條語句翻譯成對應于機器語言的語句,并立刻執行
1.3 計算機的性能指標
存儲器的性能指標
總容量
總容量= 存儲單元個數 * 存儲字長 bit = 存儲單元個數 * 存儲字長/8 Byte
例:MAR為32位(存儲單元個數為232),MDR為8位(存儲字長位8),則總容量為232 * 8 = 4GB
MAR位數反應存儲單元的個數(最多支持多少個)
CPU的性能指標
CPU主頻
**CPU主頻:**CPU內數組脈沖信號振蕩的頻率。
每個脈沖信號的時間 -> CPU時鐘周期
CPU主頻(時間頻率) = 1 / CPU時鐘周期 Hz
平均CPI
CPI: 執行一條指令所需要的時鐘周期數
CPU執行一條指令的耗時 = CPI * CPU時鐘周期
CPU執行時間 = 指令條數 * 平均CPI * CPU時鐘周期
IPS
IPS: 每秒執行多少條指令 = 主頻/平均CPI
系統整體的性能指標
數據通路帶寬
數據總線一次所能并行傳送信息的位數
吞吐量
系統在單位時間內處理請求(一條指令、一個完整的程序運行)的數量
響應時間
從用戶向計算機發送一個請求,到系統對該請求做出相應并得到他所需要的結果的等待時間
系統整體的性能指標(動態測試)
基準程序:用來測量計算機處理速度的一種實用程序,以便于被測量的計算機性能可以與運行相同程序的其他計算機性能進行比較
基準程序中的語句存在頻度差異,運行結果不能完全說明問題
常用數量單位
描述存儲容量、文件大小時:
K = 2^10,
M = 2^20,
G = 2^30,
T = 2^40
描述頻率、速度時:
K = 10^3,
M = 10^6,
G = 10^9,
T = 10^12