注意:
本文更偏向於考試複習,如果初學,建議配合教材,謝謝!
概述
計算機系統層次結構
- 計算機系統的基本組成
- 計算機硬體的基本組成
- 計算機軟體和硬體的關係
- 計算機系統的工作原理
計算機效能指標
吞吐量;響應時間;CPU時鐘週期;主頻;CPI;CPU執行時間;MIPS;MFLOPS
計算機系統層次結構
計算機系統的組成
- 硬體系統和軟體系統共同構成了一個完整的計算機系統。硬體是指有形的物理裝置,是計算機系統中實際物理裝置的總稱。軟體是指在硬體上執行的程式和相關的資料及文件。
- 對某一功能來說,若既可以用軟體實現,又可以用硬體實現,則稱為軟/硬體在邏輯功能上是等價的。
- 一個功能若使用較為頻繁且用硬體實現的成本較為理想,則使用硬體解決可以提高效率。
馮·諾伊曼機
“儲存程式”的思想奠定了現代計算機的基本結構,以此概念為基礎的各類計算機統稱馮·諾伊曼機,其特點如下:
- 採用“儲存程式”的工作方式。
- 計算機硬體系統由運算器、儲存器、控制器、輸入裝置和輸出裝置5大部件組成。
- 指令和資料以同等地位儲存在儲存器中,形式上沒有區別,但計算機應能區分它們。
- 指令和資料均用二進位制程式碼表示。
- 指令由操作碼和地址碼組成,操作碼指出操作的型別,地址碼指出運算元的地址。
計算機的功能部件
輸入裝置/輸出裝置:略
儲存器
- 儲存器分為主儲存器(也稱主存)和輔助儲存器(也稱外存)。
- CPU能夠直接訪問的儲存器是主儲存器。
- 輔助儲存器用於幫助主儲存器儲存更多的資訊。
- 儲存器的工作方式是按儲存單元的地址進行存取,這種存取方式稱為按地址存取方式。
儲存器組成
- 儲存體:存放二進位制資訊
- 儲存器地址暫存器(MAR):存放訪存地址。
- 儲存器資料暫存器(MDR):用於暫存要從儲存器中讀或寫的資訊。
- 時序控制邏輯:產生儲存器操作所需的時序訊號。
MAR & MDR
- MAR用於定址,其位數反映最多可定址的儲存單元個數。MAR長度與PC長度相等。
- MDR的位數通常等於儲存字長。
- 現代計算機中,MAR、MDR和Cache(快取記憶體)均存在於CPU中,而非儲存器。
運算器
- 運算器是計算機的執行部件,用於進行算術運算和邏輯運算。
- 算術運算:加、減、乘、除等。
- 邏輯運算:與、或、非、異或、比較、移位等。
- 核心:算術邏輯單元(ALU)
- 運算器包含若干通用暫存器,用於暫存運算元和中間結果,如:累加器(ACC)、乘商暫存器(MQ)、運算元暫存器(X)、變址暫存器(IX)、基址暫存器(BR)等,其中前三個暫存器是必須具備的。
- 程式狀態暫存器(PSW),也稱標誌暫存器,用於存放ALU運算得到的一些標誌資訊或處理機的狀態資訊。
控制器
- 控制器由程式計數器(PC)、指令暫存器(IR)和控制單元(CU)組成。
- 程式計數器(PC):存放當前欲執行的指令的地址,可自動形成下一條指令的地址,它與貯存期的MAR之間有一條直接通路。
- 指令暫存器(IR):存放當前的指令,其內容來源於主儲存器的MDR。指令中的操作碼OP(IR)送至CU,用以分析指令併發出各種微操作命令序列;地址碼Ad(IR)送至MAR,用以取運算元。
- 一般將運算器和控制器整合到一個晶片上,稱為中央處理器(CPU)。CPU和主儲存器共同構成主機,除主機之外的其它硬體裝置統稱外部裝置,簡稱外設。
計算機軟體
系統軟體和應用軟體
1.軟體根據功能分類,可分為系統軟體和應用軟體。
2. 系統軟體:保證計算機系統高效、正確執行的基礎軟體。主要有:作業系統(OS)、資料庫管理系統(DBMS)等。
3. 應用軟體:為解決某個應用領域中的各類問題而編制的程式。
語言
- 機器語言:也稱二級制程式碼語言。是計算機唯一可以識別和執行的語言。
- 組合語言:用英文單詞或其縮寫代替二進位制的指令的指令程式碼。
- 高階語言:方便程式設計人員寫出解決問題的處理方案和解題過程的程式。
翻譯程式
- 彙編程式(彙編器):將彙編程式翻譯為機器語言程式。
- 解釋程式(直譯器):將源程式中的語句按執行順序逐條翻譯成機器指令並立即執行。
- 編譯程式(編譯器):將高階語言程式翻譯成組合語言或機器語言程式。
速度上:編譯>解釋。Python採用解釋,而C++採用編譯。
計算機的層次結構
- ⑤高階語言層->④組合語言層->③作業系統層->②傳統機器語言層->①微程式機器層。
- 沒有配備軟體的純硬體系統稱為裸機;3~5層稱為虛擬機器。
- 軟體和硬體之間的介面是指令集體系結構(ISA),其定義了一臺計算機可以執行的所有指令。ISA是軟體能感知到的部分,也稱軟體可見部分。
計算機系統的工作原理
“儲存程式”工作方式
“儲存程式”工作方式規定:程式執行前,需要將程式所含的指令和資料送入主儲存器,一旦程式被啟動執行,就無須操作人員的干預,自動逐條完成指令的取出和執行任務。
從源程式到可執行程式
- 預處理階段:前處理器(cpp)對源程式中以字元#開頭的命令進行處理。hello.c -> hello.i
- 編譯階段:編譯器(ccl)對預處理後的源程式進行編譯,生成組合語言源程式hello.s
- 彙編階段:彙編器(as)將其翻譯成機器語言指令,並打包成可重定位目標檔案hello.o
- 連結階段:連結器(ld)將多個可重定位目標檔案和標準庫函式合併為一個可執行目標檔案,簡稱可執行檔案。
hello.c 源程式 -> hello.i 預處理後的源程式 -> hello.s 彙編程式 -> hello.o 可重定位目標程式 -> hello 可執行目標程式
指令執行過程
-
取指令:PC->MAR->M->MDR->IR
根據PC取指令到IR。將PC的內容送至MAR,MAR中的內容送至地址線,同時控制器將訊號送至I/O訊號線,主儲存器根據地址線上的地址讀訊號,從指定儲存單元讀出指令,送至資料線上,MDR從資料線接受指令資訊,送至IR。 -
分析指令:OP(IR)->CU
指令譯碼並送出控制訊號。控制器根據IR中指令的操作碼,生成相應的控制訊號,送到不同的執行部件。OP(IR)為取數指令,此時控制訊號送至匯流排的控制線上。 -
執行指令:Ad(IR)->MAR->M->MDR->ACC
取數操作:將IR中的指令的地址碼送至MAR,MAR中的內容送至地址線,同時控制器將讀訊號送至I/O訊號線,從主儲存器中讀出運算元,並透過資料線送至MDR,再送到ACC中。 -
每取完一條指令,計算下條指令位置,即:(PC)+1->PC
計算機的主要效能指標
機器字長
機器字長,簡稱字長,指計算機進行一次整數運算(即定點整數運算)所能處理的二級制資料的位數,通常與CPU的暫存器位數、ALU有關。字長一般等於通用暫存器的位數或ALU的寬度,字長越長,數的表示範圍越大,計算精度越高。
資料通路頻寬
指資料匯流排一次所能並行傳送資訊的位數。指代外部資料匯流排的寬度,與CPU內部資料匯流排寬度(內部暫存器大小)可能不同。
主存容量
主儲存器所能儲存資訊的最大容量,通常以位元組來衡量。也可用字數×字長(512K×16位)來表示儲存容量。MAR的位數反映了儲存單元的個數,MDR的位數反映了儲存單元的字長。
運算速度
- 吞吐量:指系統在單位時間內處理請求的數量。
- 響應時間:從使用者向計算機傳送一個請求,到系統對該請求做出響應並獲得所需結果的等待時間。
- CPU時鐘週期:機器內部主時鐘脈衝訊號的寬度,是CPU工作的最小時間單位。
- 主頻(CPU時脈頻率):機器內部主時鐘的頻率,即時鐘週期的倒數。
- CPI:執行一條指令所需的時鐘週期數。注意CPI是一個平均數。
- IPS:每秒執行多少條指令,IPS=主頻/CPI。
- CPU執行時間:執行一個程式所花費的時間。
- MIPS:每秒執行多少百萬條指令。
- FLOPS:每秒執行多少次浮點運算。
其它術語
- 基準程式:專門用來進行效能評價的一組程式,能夠很好地反應機器在執行實際負載時的效能。
- 系列機:具有相同的體系結構,使用相同基本指令系統的多個不同型號的計算機。
- 相容:指軟體和硬體的通用性。
- 韌體:將程式固化在ROM中組成的部件稱為韌體。