计算机硬件的基本组成
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:算数逻辑单元通过内部复杂的电路实现算数运算和逻辑运算
控制器的基本组成
:控制单元,分析指令,给出控制信号
:指令寄存器存储当前执行的指令
:存储下一个指令地址的程序计数器具有自动加1功能
代码操作流程
计算机系统层次结构
微程序机器M0
传统机器M1(机器语言机器)
虚拟机器M2(汇编语言机器):汇编语言需要翻译成机器语言才能执行
虚拟机器M3(高级语言机器):需要翻译成汇编语言,然后汇编语言翻译成机器语言
三种语言关系
例如,脚本语言js,py,shell解释器需要翻译成机器语言。解释器每次执行一个指令,编译器一次编译程序。
计算机性能指标
- 内存容量
主存储器的总容量 = 存储单元数量 x 存储字长
MAR有N位,存储单元的数量是2^N个
存储字长是MDR的位数
- CPU主频
主频越高,控制器,存储器,运算器之间交流的动作越快,电脑运行起来就越快。
- CPI:执行一套指令所需的时钟周期,一个指令将分为多个步骤,CPI完成所有这些步骤的时间
- IPS:每秒执行多少个指令?
- FLOPS:每秒执行多少浮点运算?
1)]
主频越高,控制器、存储器、计算器之间的交流越快,计算机运行越快。
- CPI:执行一套指令所需的时钟周期,一个指令将分为多个步骤,CPI完成所有这些步骤的时间
- IPS:每秒执行多少个指令?
- FLOPS:每秒执行多少浮点运算?