计算机——> 数值计算——> 处理电信号——> 基本单元(逻辑元件)
电子管——> 晶体管——>中小规模集成电路 ——>大规模,超大规模集成电路
机器字长:计算机一次整数运算所能处理的二进制位数
解析存储器中的程序指令,读取+/-…,交给控制器,结合电信号协调其他部件,配合工作,例如指挥运算器执行
软件上多次加法运算在逻辑上等价于一次硬件上的乘法
指令 = 操作码(+/-…) + 地址码 (地址码用于对特定内存单元访存)
CPU(运算器+控制器)<——> 主存 <——> I/O
控制器可以控制运算器,主存,I/O
主存储器:MAR,MDR,但这两个寄存器通常集成在CPU上
MAR:CPU想要操作(控制总线决定)的数据存放的位置,MAR的位数表示存储单元的个数
MDR:从具体的存储单元中取得的数据放在MDR,MDR位数表示存储字长
MAR反映了CPU想从哪里读往哪里写,根据地址码访存,找到二进制数据,放在MDR,MDR中的数据放在IR中分析,CU根据具体指令决定MDR中的数据放进哪个寄存器
存储单元:每个存储单元存放一串二进制代码
存储字:存储单元中二进制代码的组合
存储字长:存储单元中二进制代码的位数
机器字长&&存储字长
机器字长是和数学运算紧密相关的,属于相对独立的部分,但是,也会影响到存储字长的长度(eg:如果存储字长太短,那么就需要多次存取才能够存取一个字,影响系统的整体效率。机器字长是32位,存储字长可以是32位或者16位,即机器字长可以和存储字长不同)。
eg:存储容量 = 存储单元个数(MAR) * 存储字长(MDR)
取指令:PC
分析指令:IR
执行指令:CU
计算机的工作过程
PC,下一条指令的地址,告诉MAR,MAR中的地址取到对应内存单元的数据放入MDR,MDR是一条指令,由IR分析,将操作码送到CU控制单元,CU知道这是要取数,取得就是此时IR内部的地址码对应内存单元中的数据,取数据,包括写入等操作都是要通过MAR,找MAR对应内存中的数据,放入MDR,因为这些都是CU控制的结果,CU想把数据放入ACC
…
计算机的性能指标:
1.CPU时钟周期(微秒,纳秒,时间单位)
2.CPU主频:CPU内数字脉冲信号振荡的频率,一秒内产生时钟周期数
3.CPI 执行一条指令需要的时钟周期数
4.IPS:每一秒执行多少指令
5.FLOPS:每秒的浮点数运算
主频高的CPU不一定比低的快
主频高并且两个CPI相同的CPU,主频高也不一定快,这和指令系统也有关