1 计算机组成原理第一章 计算机系统概述 计算机发展历程、层次结构、性能指标
文章目錄
- 1 計算機發展歷程
- 1.1 軟硬件發展
- 1.2 分類以及發展方向
- 2 計算機系統層次結構
- 2.1 計算機系統組成
- 2.1.1 硬件的基本組成
- 2.1.2 軟件系統
- 2. 2 CPU及其工作過程
- 2.2.1 運算器
- 2.2.2 控制器
- 2.2.3 計算機的工作過程
- 2.2.4 計算機系統層次結構
- 2.2.5 存儲器
- 3 計算機性能指標
- 3.1 容量
- 3.2 速度
- 3.2.1 指令的執行
- 3.2.2 速度衡量單位
1 計算機發展歷程
1.1 軟硬件發展
- 使用機器語言:計算機能夠直接理解的0101電信號(偏向于機器如何運行)
匯編語言
- 特點:占地大,耗電量超大,基本元件包含大量真空管,容易壞
- 出現了面向過程的語言FORTRAN(偏向于解決問題針對科學計算)
- 特點:基本元件規模變小,耗電量小,并且出現了操作系統的雛形
- 內存使用材料的變化:磁芯存儲器->半導體存儲器
- 計算機語言高速發展(模塊化的語言Pascal)
- 出現了分時操作系統
- 微型計算機的發展是以微處理器技術為標志
- 微處理器處理的機器字長就是計算機一次整數運算所能處理的二進制位數(如果機器字長是8bit,要處理16bit數的加法,那么就要分成兩部分進行加法)。
- 出現了新概念:并行、流水線、高速緩存、虛擬存儲
- 出現了面向對象的語言c、c++、java
機器字長VS操作系統位數:
機器字長:計算機一次整數運算所能處理的二進制位數
操作系統位數:其所依賴的指令集的位數
摩爾定律:
集成電路上所能容納的晶體管的數目每隔18個月就會翻一倍,計算機的性能也會翻一倍
1.2 分類以及發展方向
指令和數據流:
單指令流單數據流:馮諾依是體系結構
單指令流多數據流:陣列、向量處理機
多指令流單數據流:不存在
多指令流多數據流:多核處理機
2 計算機系統層次結構
2.1 計算機系統組成
- 軟件和硬件在邏輯上是等效的
(處理多位數據可以通過購買多位的處理器或者設計處理步驟) - 實際上不是等價的
比如處理多位的數據,物理上是一個數據流動的時間;軟件上是將其切分成兩端分別進行計算,因此是2個數據流動的時間
2.1.1 硬件的基本組成
存儲器:批量存儲要處理的數據、中間結果
存儲數據按照什么方式進行處理 – 提供給控制器的指令
2.1.2 軟件系統
系統軟件:管理整個計算機系統的軟硬件資源進行合理的分配
操作系統、DBMS、語言處理程序
應用軟件:完成用戶的特定功能
使用系統軟件提供的資源接口
機器語言:二進制代碼(需要手動查表)
匯編語言:助記符——-采用匯編程序進行查表
高級語言:C、C++
編譯程序(編譯器):將高級語言翻譯成匯編語言接著翻譯成機器語言,可以記錄重復代碼
解釋程序:每次都直接把高級語言翻譯成機器語言
2. 2 CPU及其工作過程
2.2.1 運算器
運算器各部件:
MQ:重裝寄存器
ACC:累加器
ALU:算術邏輯單元 采用組合邏輯的設計方式(規則不變)
X:通用寄存器
PSW:程序狀態字(存放運算的溢出、進位)
2.2.2 控制器
控制器基本部件:
CU:控制單元(分析指令,給出控制信號)采用時序邏輯設計方式(管理操作步驟的安排)
IR:指令寄存器,存放當前要執行的指令輸入到控制單元中
PC:存放指令的地址,具有自動加1的功能
2.2.3 計算機的工作過程
取數指令為例:
M:主存中某存儲單元
ACC、MQ、X、MAR、MDR..:相應寄存器
M(MAR):取存儲單元中的數據
(ACC)..:取相應寄存器中的數據
OP(IR):取操作碼
Ad(IR):取地址碼
指令=操作碼+地址碼
操作碼:指令要操作的序列,送到控制器CU控制單元
地址碼:指令要操作的數據存放位置,PC中永遠存放下一條指令地址,控制器去PC中找要執行的指令
取數操作過程說明:
step1: (PC)->MAR
第一步取PC所指的指令,去主存中取,PC寄存器存儲的下一條指令的地址存儲到主存的地址寄存器MAR中
step2. 3:M(MAR)->MDR
主存根據這個地址到存儲體中找到這個數據并寫到數據寄存器MDR中
step 4:(MDR)一>IR
將MDR里數據放到指令寄存器IR中
取指令結束step 5:OP(IR)->CU
指令的操作碼部分放到控制器的控制單元,自動完成分析指令是什么類型
分析指令結束step 6: Ad(IR)->MAR
指令的地址碼部分放到主存的地址寄存器
step 7.8: M(MAR)->MDR
主存從這個地址取出數據放到數據寄存器
step 9: (MDR)一>ACC
數據放到累加寄存器當中
指令執行結束
CPU區分指令和數據的依據:指令周期的不同階段
2.2.4 計算機系統層次結構
馮諾依曼計算機:
思想:“存儲程序”:將指令以代碼的形式事先輸入到計算機主存儲器中,然后按其在存儲器中的首地執行程序的第一條指令,以后就按照該程序的規定順序執行其他指令,直至程序執行結束。
馮諾依曼計算機特點:
2.2.5 存儲器
主機中的主存(內存)
N位地址→2N個存儲單元
可以存儲的二進制位:
總容量= 存儲單元的個數* 存儲字長 bit
= 存儲單元的個數* 存儲字長/8 byte
1byte=8bit
系統最大容量=2NX存儲字長
MAR與存儲體之間還會有 譯碼器和 驅動器(增強供電能力)
3. 數據寄存器MDR
取出一個存儲單元之后直接送到MDR
存儲單元的位數決定了MDR的位數
MDR、MAR邏輯上是屬于主存的,但是物理實現上可能一般放到CPU里面
3 計算機性能指標
3.1 容量
見上述
3.2 速度
3.2.1 指令的執行
機器字長:計算機進行一次整數運算所能處理的二進制數據的位數(比如 現在計算的處理機是多少位的)
指令并不是一口氣執行完畢,而是分成多個小步驟,CPU提供CLK這個時鐘信號,協商指令的執行
CPI(Clock cycle Per Instruction):執行一條指令所需的時鐘周期數
該指令耗時=CPI×CPU時鐘周期
3.2.2 速度衡量單位
MIPS(Million Instructions Per Second):每秒執行多少百萬條指令。
MIPS=指令條數/(執行時間×106)=主頻/CPI
如果主頻的單位是MHz 那么就不用除以106
MFLOPS(Mega Floating-point Operations Per Second):每秒執行多少百萬次浮點運算。
MFLOPS=浮點操作次數/(執行時間×106)。
GFLOPS(Giga Floating-point Operations Per Second):即每秒執行多少十億次浮點運算。
MFLOPS=浮點操作次數/(執行時間×109)。
TFLOPS(Tera Floating-point Operations Per Second):每秒執行多少萬億次浮點運算。
MFLOPS=浮點操作次數/(執行時間×1012)。
因此,不是指令數越少,CPU耗時越少,跟CPI 和CPU時鐘周期都有關系
數據通路帶寬:數據總線一次能并行傳送數據的位數
- 吞吐量:指系統在單位時間內處理請求的數量。
它取決于信息能多快地輸入內存,CPU能多快地取指令,數據能多快地從內存取出或存入,以及所得結果能多快地從內存送給一臺外部設備。這些步驟中的每一步都關系到主存,因此,系統吞吐量主要取決于主存的存取周期。 - 吞吐量衡量系統批量處理能力
- 響應時間:指從用戶向計算機發送一個請求,到系統對該請求做出響應并獲得它所需要的結果的等待時間。
通常包括CPU時間(運行一個程序所花費的時間)與等待時間(用于磁盤訪問、存儲器訪問、I/O操作、操作系統開銷等時間)。 - 響應時間衡量系統交互性能
總結
以上是生活随笔為你收集整理的1 计算机组成原理第一章 计算机系统概述 计算机发展历程、层次结构、性能指标的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Windows下如何搭建Gradle环境
- 下一篇: “知识图谱+”系列:知识图谱+图神经网络