1. 程式人生 > >計算機組成原理 計算機系統概論

計算機組成原理 計算機系統概論

文章目錄

0 英文縮寫

0.1 MIPS:每秒執行的百萬條指令數

0.2 CPI:每執行一條指令所需的時鐘週期數

0.3 FLOPS:每秒浮點運算次數

0.4 CPU:中央處理器

0.5 PC:程式計數器

0.6 IR:指令暫存器

0.7 CU:控制單元

0.8 ALU:算術邏輯單元

0.9 ACC:累加器

0.10 MQ:乘商暫存器

0.11 X:運算元暫存器

0.12 MAR:儲存器地址暫存器

0.13 MDR:儲存器資料暫存器

0.14 MM:主儲存器

0.15 I/O:輸入輸出裝置

1 計算機系統簡介

1.1 計算機的軟硬體概念

電子數字計算機簡稱為電腦、計算機。

狹義的定義為:

使用電子數位電路技術實現的算術邏輯運算的機器。

現在:計算機是計算機系統的簡稱。

計算機系統由“硬體”和“軟體”兩大部分組成。

計算機效能的好壞取決於軟硬體功能的綜合。

計算機系統

1.1.1 硬體

硬體指計算機的實體部分。

1.1.2 軟體

軟體由人們事先編制的具有各種特殊功能的程式組成。

它們通常存放在計算機的主存或輔存內。

軟體

計算機的軟體通常又可以分為兩大類:

1.1.2.1 系統軟體(系統程式)

主要用來管理整個計算機系統,監視服務,使系統資源得到合理排程,高效執行。

它包括:標準程式庫、語言處理程式、作業系統、服務程式、資料庫管理系統、網路軟體等

1.1.2.2 應用軟體(應用程式)

它是使用者根據任務的需要所編制的各種程式。

如:科學計算程式、資料處理程式、過程控制程式、事物管理程式等。

1.1.3 韌體

具有某種軟體功能的硬體,一般用ROM實現

有些計算機將一部分軟體永恆地存於只讀儲存器中,稱為韌體

1.1.4 軟體和硬體的邏輯等價性

因為任何操作可以有軟體來實現,也可以由硬體來實現;

任何指令的執行可以由硬體完成,也可以由軟體來完成。

對於某一機器功能採用硬體方案還是軟體方案,取決於器件價格,速度,可靠性,儲存容量等因素。

因此,軟體和硬體之間具有邏輯等價性。

1.1.5 硬體與軟體的關係

硬體與軟體是不可分割的統一體,前者是後者的物質基礎,後者是前者的靈魂,它們相輔相成,互相促進

1.2 計算機系統的層次結構

1.2.1 現代計算機的解題過程

  1. 通常由使用者用高階語言編寫程式(稱為源程式)

  2. 然後將它和資料一起送入計算機內

  3. 再由計算機(編譯程式或者解釋程式)將其翻譯成機器能識別的機器語言程式(稱為目標程式)

  4. 機器自動執行該機器語言程式,並將計算結果輸出

計算機的解題過程
源程式轉化為目標程式的方法

1.2.2 多級層次結構的計算機系統

層次1

層次2

1.3 計算機組成和計算機體系結構

1.3.1 計算機組成原理(Computer Organization)

依據計算機體系結構,在確定且分配了硬體子系統的概念結構和功能特性的基礎上,設計計算機各部件的具體組成,以及它們之間的連線關係,實現機器指令級的各種功能和特性,這點上說計算機組成原理是計算機體系結構的邏輯實現。

如何實現計算機體系結構所體現的屬性

指令的實現,即如何取指令、分析指令、取運算元、運算、送結果等,這些都屬於計算機組成問題

1.3.2 計算機體系結構(Computer Architecture)

主要研究硬體和軟體功能的劃分,確定硬體和軟體的介面,哪部分功能由硬體系統來完成,哪部分功能由軟體系統來完成

能夠被程式設計師所見到的計算機系統的屬性,即概念性的結構與功能特性

指令系統體現了機器的屬性,這是屬於計算機結構的問題

還有比如資料型別、定址技術、I/O機理等均屬於計算機體系結構的問題

1.3.3 計算機實現(Computer Implementation)

計算機組成的物理實現,包括中央處理器、主儲存器、輸入輸出介面和裝置的物理結構,所選用的半導體器件的整合度和速度,器件、模組、外掛、底板的劃分,電源、冷卻、裝配等技術,生產工藝和系統除錯等各種問題

總之,就是將完成邏輯設計的計算機組成方案轉換成真實的計算機,也就是將滿足設計、執行、價格等各項要求的計算機系統真正地製作並調試出來

2 計算機的基本組成

2.1 馮·諾依曼計算機的特點

  • 計算機由五大部件組成(運算器、儲存其、控制器、輸入裝置和輸出裝置)

  • 指令和資料以同等地位存於儲存器內,並可按地址尋訪

  • 指令和資料用二進位制數表示

  • 指令由操作碼和地址碼組成,操作碼用來表示操作的性質,地址碼用來表示運算元在儲存器中的位置

  • 指令在儲存器內按順序存放(儲存程式)

  • 機器以運算器為中心,輸入輸出裝置與儲存期間的資料傳送通過運算器完成

2.2 計算機的硬體框圖

典型的馮·諾依曼計算機(以運算器為中心)

馮諾依曼計算機的硬體框圖

現代計算機(以儲存器為中心)

現代計算機的硬體框圖

2.2.1 各部件的功能

  • 運算器用來完成算術運算和邏輯運算,並將運算的中間結果暫存在運算器內

  • 儲存器用來存放資料和程式

  • 控制器用來控制、指揮程式和資料的輸入、運算以及處理運算結果

  • 輸入裝置用來將人們熟悉的資訊形式轉換為機器能識別的資訊形式

  • 輸出裝置可將及其運算結果轉換為人們熟悉的資訊形式

計算機的五大部件(又稱五大子系統)在控制器的統一指揮下,有條不紊地自動工作。

2.2.2 現代計算機的硬體框圖

現代計算機的硬體框圖

由於運算器和控制器在邏輯關係和電路結構上聯絡十分緊密,通常將它們合起來統稱為中央處理器(Central Processing Unit, CPU)

並把輸入和輸出裝置簡稱為I/O裝置(Input/Output Equipment)

現代計算機可認為由三大部分組成:CPU、I/O裝置及主儲存器(Main Memory, MM)

CPU與主儲存器合起來又可稱為主機

I/O裝置又可稱為外部裝置

主儲存器是儲存器子系統中的一類,用來存放程式和資料,可直接與CPU交換資訊

另一類稱為輔助儲存器,簡稱輔存,又稱外存

算術邏輯單元(Arithmetic Logic Unit, ALU)簡稱算邏部件,用來完成算數邏輯運算

控制單元(Control Unit, CU)用來解釋儲存器中的指令,併發出各種操作命令來執行指令

ALU和CU是CPU的核心部件

2.3 計算機的工作步驟

2.3.1 上機前的準備

2.3.1.1 建立數學模型

2.3.1.2 確定計算方法

2.3.1.3 編制解題程式

2.3.1.3.1 指令

指令是機器完成某種操作的命令,典型的指令通常包括操作碼和地址碼兩部分。

操作碼用來指出執行什麼操作,地址碼用來指出運算元在什麼位置。

2.3.1.3.2 程式

程式是有序指令的集合,用來解決某一特定問題

2.3.2 計算機的工作過程

2.3.2.1 主儲存器(主存、記憶體)

主儲存器
主存的工作方式就是按儲存單元的地址號來實現對儲存字的個位的存(寫入)、取(讀出)。

這種存取方式稱為按地址存取方式,即按地址訪問儲存器(簡稱訪存)。

2.3.2.1.1 儲存體

儲存體

儲存單元:存放一串二進位制程式碼,每個儲存單元賦予一個地址號

儲存字:儲存單元中二進位制程式碼的組合(邏輯單位)

儲存字長:儲存單元中二進位制程式碼的位數

2.3.2.1.2 儲存器地址暫存器(MAR)

MAR(Memory Address Register)是儲存器地址暫存器,用來存放欲訪問的儲存單元的地址

其位數對應儲存單元的個數(如MAR為10位,則有 2 10 = 1024 2^{10} = 1024 個儲存單元,記為1K)

2.3.2.1.3 儲存器資料暫存器(MDR)

MDR(Memory Data Register)用來存放從儲存體某單元取出的程式碼或者準備往某儲存單元存入的程式碼

其位數與儲存字長相等

主儲存器

2.3.2.2 運算器

運算器

運算器最少包括3個暫存器(現代計算機內部往往設有通用暫存器組)和一個算術邏輯單元(ALU)

其中ACC(Accumulator)為累加器,MQ(Multiplier-Quotient Register)為乘商暫存器,X為運算元暫存器

各暫存器所存放的各類運算元

各暫存器所存放的各類運算元

2.3.2.3 控制器

控制器是計算機的神經中樞,由它只會各部件自動、協調地工作

控制器

2.3.2.3.1 完成指令的3個階段

完成一條指令需要下述過程(取指、分析和執行3個階段)

  • 取值過程(取值階段):首先要命令儲存器讀出一條指令

P C M A R M M D R I R , ( P C ) + 1 P C PC \to MAR \to M \to MDR \to IR, (PC) + 1 \to PC

  • 分析過程(分析階段):對這條指令進行分析,指出該指令要完成什麼樣的操作,並按定址特徵指明運算元的地址

O P ( I R ) C U OP(IR) \to CU

  • 執行過程(執行階段):根據運算元所在的地址以及指令的操作碼完成某種操作

A d ( I R ) M A R M M D R A C C Ad(IR) \to MAR \to M \to MDR \to ACC

完成指令

2.3.2.3.2 控制器的組成

控制器由程式計數器(Program Counter, PC)、指令暫存器(Instruction Register, IR)以及控制單元(CU)組成

PC用來存放當前欲執行指令的地址,它與主存的MAR之間有一條直接通路,且具有自動加1的功能,即可自動形成下一條指令的地址

IR用來存放當前的指令,IR的內容來自主存的MDR

CU用來分析當前指令所需完成的操作,併發出各種微操作命令序列,用以控制所有被控物件

2.3.2.3.3 CPU如何區分指令和資料

CPU根據取指階段和執行階段的訪存性質不同來區分二者

在取指階段訪存取出的01程式碼是指令

在執行階段訪存取出的01程式碼是資料

2.3.2.4 I/O

I/O子系統包括各種I/O裝置及其相應的介面

主機完成一條指令的過程

3 計算機硬體的主要技術指標

3.1 機器字長

CPU 一次能處理資料的位數,通常與CPU中的暫存器位數有關。

字長越長,數的表示範圍越大,精度也越高。

機器的字長也會影響機器的運算速度。

3.2 儲存容量

儲存器的容量應該包括主存容量和輔存容量

主存容量是指主存中存放二進位制程式碼的總位數。即

= × 儲存容量 = 儲存單元個數 \times 儲存字長

現代計算機中常以位元組數來描述容量的大小

儲存容量

3.3 運算速度

計算機的運算速度與許多因素有關,如機器的主頻,執行什麼樣的操作、主存本身的速度等都有關

3.3.1 Gibson法

綜合考慮每條指令的執行時間以及他們在全部操作中所佔的百分比,即

T M = Σ i = 1 n f i t i T_M = \Sigma_{i = 1}^nf_i t_i

其中, T M T_M 為機器執行速度; f i f_i 為第i種指令佔全部操作的百分比數; t i t_i 為第i種指令的執行時間

3.3.2 百萬條指令每秒(MIPS)

現在機器的運算速度普遍採用單位時間內執行指令的平均條數來衡量,並用MIPS(Million Instruction Per Second)作為計量單位

3.3.3 執行一條指令所需的時鐘週期(CPI Cycle Per Instruction)

3.3.4 浮點運算次數每秒(FLOPS Floating Point Operation Per Second)