1. 硬件的发展
2. 硬件的基本组成
2.1 冯诺依曼结构
逻辑结构:
特点:
- 指令和数据以同等地位存储在存储器中,可以按照地址寻访。
- 指令由
操作码
和地址码
组成。 - 以运算器为中心。这会带来一个问题:运算器本身是用来计算的工具,但如数据和代码的输入和输出都必须经过它,这显然会让效率降低,现代计算机结构对这一点进行了改进。
2.2 现代计算机结构
逻辑结构:
特点:
- 以存储器为中心。避免了数据和指令的输入输出都要经过运算器的造成的损耗。
逻辑部件的现实实现:
其中:
- CPU=运算器+控制器
- 主存储器=内存
- IO设备:包括输入和输出。此外:
辅存(如硬盘)虽然是存储器的一种,但属于IO设备
。
3. 硬件的工作原理
3.1 主存储器
整体构成:存储体结构:
解析:
存储体
:数据存放处- 数据在存储体中是
按照地址
存储的。 - 一些关键概念:
存储单元
:用于存储二进制数据的单位容器。存放位数取决于CPU的机器实现,但一般是8的倍数。(因为1Btye=8bits)存储字
(word):存储在存储单元中的二进制数据。存储字长
:存储单元可以存放二进制数据的位数。- 存储元:就是存储体的基本单位,每个存储元可以存储1bit的数据,通过电容实现。
- 数据在存储体中是
MAR
(memory address register 存储地址寄存器):记录地址,其位数与存储体的存储单元个数相对应
。(如4位,说明存储体中有\(2^4=16\)个存储单元)MDR
(memory data register 存储数据寄存器):是存储和读取数据的媒介。具体逻辑如下:- 存储数据时:IO设备在MAR中存放数据在存储体中的地址,在MDR中存放要存放数据,随后数据被从MDR同步到指定地址的存储单元中。
- 取出数据时:IO设备在MAR中存放要取出的数据的地址,随后数据将会从存储体指定位置的存储单元中取出,并存放在MDR中,IO设备将会从MDR中读取数据。
- 因此,
MDR位数=存储单元位数
,因为它每次接收或发送一个存储单元的数据。
3.2 运算器的基本组成
构成图:
解析:
- ACC(Accumulator 累加寄存器):用于
存放
操作数,或操作结果。 - MQ(Multiple-Quotient Register 乘商寄存器):在乘除运算时,用于
存放
操作数或操作结果。 - X(通用操作数寄存器):用于
存放
操作数。 - ALU(Arithmetic and Logic Unit 算数逻辑单元):通过内部复杂的电路实现算数运算、逻辑运算。
3.3 控制器的基本组成
组成图:
解析:
- CU(Control Unit 控制单元):分析指令(也就是当前指令的
操作码
),从而给出控制信号(例如指出要进行加法操作)。 - IR(Instruction Register 指令寄存器):存放当前执行的指令(指令由
操作码
和地址码
组成)。 - PC(Program Counter 程序计数器):存放下一条指令的地址,有自动+1的功能。默认为0。
3.4 实例
接下来将通过一个简单的c语言程序来分析这些硬件的工作流程。
题目:
现有程序如下:
int a=2,b=3,c=1,y=0;
void main(){
y = a*b+c;
}
将其编译后装入主存储器的存储体,结构如下:
计算机结构如下:
现在计算机执行该程序,请分析其执行流程。
解答如下:
-
第一条指令:起初(PC)=0,指向第一条指令的存储地址
-
(PC)->MAR,导致(MAR)=0
-
M(MAR)->MDR(依照MAR中的地址,在存储体中取出数据,存到MDR中),导致(MDR)=00001 0000000101
(注意:这里之所以直接从1跳到了3,是因为这一句实际上是两步操作合并了。后面的一些跳行也是因为这个原因:
- 存储体从MAR中取地址。
- 存储体依照取出的地址从自身取值,然后赋给MDR。)
-
(MDR)->IR(将MDR中的值赋给IR),导致IR=00001 0000000101
-
OP(IR)->CU(从IR中截取
操作码
,交给CU),指令中的操作码送到CU,CU分析后得知,这时取数
的指令 -
Ad(IR)->MAR(从IR中截取
地址码
,交给MAR),指令的地址码交给MAR,导致(MAR)=5 -
M(MAR)->MDR(依照MAR中的地址,在存储体中取出数据,存到MDR中),导致(MDR)=0000000000000010
-
(MDR)->ACC(将MDR中的数据交给ACC),导致(ACC)=0000000000000010
-
-
第二条指令:上一条指令取值后PC会自动+1,所以现在(PC)=1;且上一步执行后,(ACC)=2
-
(PC)->MAR,导致(MAR)=1
-
M(MAR)->MDR,导致(MDR)=000100 0000000110
-
(MDR)->IR,导致(IR)=000100 0000000110
-
OP(IR)->CU,指令的
操作码
送到CU,CU分析得知,这是一条乘法
指令。 -
Ad(IR)->MAR,指令的
地址码
送到MAR,导致(MAR)=6 -
M(MAR)->MDR,导致(MDR)=0000000000000011=3
-
(MDR)->MQ,导致(MQ)=0000000000000011=3
-
(ACC)->X,导致(X)=2
-
(MQ)*(X)->ACC,根据ALU实现乘法运算,导致(ACC)=6。如果成绩太大,就需要MQ辅助存储。
-
-
第三条指令:上一条指令取指后,(PC)=2,执行后,(ACC)=6
-
(PC)->MAR,导致(MAR)=2
-
M(MAR)->MDR,导致(MDR)=000011 0000000111
-
(MDR)->IR,导致(IR)=000011 0000000111
-
OP(IR),指令的
操作码
送到CU,CU分析得知,这是一条加法
指令。 -
Ad(IR)->MAR,指令的
地址码
送到MAR,导致(MAR)=0000000000000111=7 -
M(MAR)->MDR,导致(MDR)=0000000000000001=1
-
(MDR)->X,导致(X)=1
-
(ACC)+(X)->ACC,根据ALU实现加法运算。
-
-
第四条指令:上一条指令取值后,(PC)=3,执行后,(ACC)=7
-
(PC)->MAR,导致(MAR)=3
-
M(MAR)->MDR,导致(MDR)=000010 0000001000
-
(MDR)->IR,导致(IR)=000010 0000001000
-
OP(IR),指令的
操作码
送到CU,CU分析得知,这是一条存数
指令。 -
Ad(IR)->MAR,指令的
地址码
送到MAR,导致(MAR)=0000000000001000=8 -
(ACC)->MDR,导致(MDR)=7
-
(MDR)->地址为8的存储单元,导致y=7
-
-
第五条指令:上一条指令取值后,(PC)=4
-
(PC)->MAR,导致(MAR)=3
-
M(MAR)->MDR,导致(MDR)=000110 0000000000
-
(MDR)->IR,导致(IR)=000110 0000000000
-
OP(IR),指令的
操作码
送到CU,CU分析得知,这是一条停机
指令。(随后将会利用中断机制通知操作系统终止该进程,那又是另一段程序了)
-
4. 计算机系统的层次结构
4.1 计算机五层结构
4.2 三种级别的语言
- 高级语言:c/c++、java
- 汇编语言
- 机器语言
编译程序与解释程序的区别:
- 编译程序:一次编译所有代码,以后只需要运行编译出来的文件。
- 解释程序:编译一句,运行一句。每次重新运行都要再次一句一句的编译。shell、python、JavaScript就是采用的这种方式。
5. 计算机性能指标
5.1 存储器的性能指标
- MAR:显示存储单元位数的多少。
- MDR:显示存储单元的大小。
EG:MAR为32位,MDR为8位,那么可以存储的位数为:
\[2^32 * 8 = 32Gb = 4GB \]5.2 CPU的性能指标
相关概念:
- CPU时钟周期(单位:微秒/纳秒):表示CPU一个振荡周期耗时时间
- CPU主频(单位:HZ):CPU内数字脉冲信号震荡的频率。表示在一秒内经过了多少CPU时钟周期。与时钟周期成反比。
- CPI(Clock cycle Per Instruction):执行一条指令所需的时钟周期数。(一般都是看平均的)
由上述二者可以推出:
\[执行一条指令的耗时=CPI*时钟周期 \]EG:某CPU主频为1000HZ,某程序包含100条指令,平均来看指令CPI=3,求该程序在CPU上执行所耗时间:
\[100*3/1000=0.3s \]- IPS(Instructions Per Second):每秒执行多少条指令。
- FLOPS(Floating-point Operations Per Second):每秒执行多少次浮点运算。
5.3 系统总体性能指标
数据通路带宽:数据总线一次所能并行传递数据的位数。(各个硬件之间通过数据总线来传递数据)
吞吐量:指系统在单位时间内可以处理的请求量。(这是一个抽象的指标,因为请求的单位大小并不确定)。
响应时间:指用户向计算机发送一个请求,到系统对该请求做出响应并获得它所需要的结果的等待时间。
基准程序:就是跑分软件,里面包含了多种计算机指令。
标签:计算机系统,MAR,计算机,IR,存储体,指令,概述,MDR,CU From: https://www.cnblogs.com/beasts777/p/17837267.html