计算机硬件基本组成
ENIAC手动接线控制计算,手动接线过程非常耗时,冯诺依曼改良它,提出了存储程序的概念,即“将指令以二进制代码的形式实现输入到计算机的主存储器中,然后按顺序执行”
第一台采取了冯诺依曼结构的计算机叫EDVAC
冯诺依曼机结构
大框里的是硬件设备,数据程序是软件设备
在计算机系统中,软件和硬件逻辑上是等效的
例如乘法运算可以设计一个专门的硬件电路实现,也可以用多次加法运算模拟乘法实现,模拟需要用软件(比如软件里写个for循环)
冯诺依曼机特点
-
计算机由五大部件组成
-
指令和数据以同等地位存储于存储器,可按地址寻访
-
指令和数据用二进制表示
-
指令由操作码和地址码组成
操作码:加减(没有乘除,计算机硬件中没有设计乘除的操作)
地址码:被运算的数据存在哪里
-
存储程序(提前存储指令,不向ENIAC,每一步都得自己手动接线)
-
以运算器为中心
现代计算机结构
运算器和控制器都很重要,所以现代一般把他们继承在一起,也就是CPU
平时手机中的APP如QQ就是存放在辅存储器中,只有当我打开这个软件的时候,软件相关的程序被读进主存储器中,
各硬件工作原理
主存储器基本组成
存储体:由存储元件构成,能够存放各种二进制
MAR叫地址寄存器,程序向MAR索要数据,MAR根据数据的地址去存储体中寻找,找到之后返回给MDR,MDR再返回给程序(地址可以认为为KEY,数据认为为VALUE)
上述是读操作,写操作的原理类似,CPU将希望写入的数据发给MDR,希望写入到存储体的哪里告诉MAR,然后存储体收下数据。
存储体
存储体的空间被划分为很多的存储单元,每个存储单元对应一个地址。存储单元中存放一串二进制代码(也就是存储字(word)),存储字中二进制代码的长度叫存储字长,一般为16,32,64位。
存储元:存储二进制的电子元件(电容),每个存储元可存1bit。
刚才说到了从MAR中拿地址,找到对应的数据存到MDR中,所以MAR如果有N位,就总共有2的N次方个地址,MDR中的数据是从存储体中拿到的,所以MDR的位数应该和存储字长一样长。
运算器基本组成
ACC:累加器,用于存放操作数,或运算结果
MQ:在乘除运算时,用于存放操作数或运算结果
X:通用的操作数寄存器,用于存放操作数
ALU:算数逻辑单元,通过内部复杂的电路实现算数运算、逻辑运算
控制器的基本组成
CU(Control Unit):控制单元、分析指令,给出控制信号
IR(Instruction Register):指令寄存器,存放当前执行的指令
PC(Program Counter):程序计数器,存放下一条指令地址,有自动加1功能
代码运行流程
计算机系统层次结构
微程序机器M0
传统机器M1(机器语言机器)
虚拟机器M2(汇编语言机器):需要将汇编语言翻译成机器语言,才能被执行
虚拟机器M3(高级语言机器):需要被翻译成汇编语言,然后汇编语言翻译成机器语言
三种类型语言关系
脚本语言例如js,py,shell都需要解释器翻译成机器语言,解释器是每解释一条指令执行一次,编译器是一次性把程序编译完。
计算机性能指标
- 内存容量
主存储器的总容量 = 存储单元个数 x 存储字长
MAR中有N位,存储单元个数就是2^N个
存储字长就是MDR的位数
- CPU主频
主频越高,控制器,存储器,运算器之间交流的动作越快,电脑运行起来就越快。
- CPI:执行一套指令所需的时钟周期,一条指令会被拆分为很多步执行,CPI就是执行完所有这些步骤的时间
- IPS:每秒执行多少条指令
- FLOPS:每秒执行多少次浮点运算
1)]
主频越高,控制器,存储器,运算器之间交流的动作越快,电脑运行起来就越快。
- CPI:执行一套指令所需的时钟周期,一条指令会被拆分为很多步执行,CPI就是执行完所有这些步骤的时间
- IPS:每秒执行多少条指令
- FLOPS:每秒执行多少次浮点运算