03认识各个硬件部件[大章]
主机内部是如何协调工作的?
主存储
存储体:可以寄存0和1
MAR:存储地址寄存器[1]
MDR:存储数据寄存器[2]
MAR与MDR是如何工作的?
类比菜鸟驿站
我告诉店员取件号,然后店员就回去货架拿数据,然后把数据给柜台,然后给我
类比,我们是告诉MAR地址,然后内存交给MDR,最后我们从MDR拿走数据
存储体是怎么工作的?
数据按照地址存放在存储体中
一般存储字长的数量是8的整数倍(8bit,16bit,32bit,64bit)
其中
MAR位数反应了存储单元的个数
MDR的位数=存储字长
!!! note 注意,一个字节和一个字是不一样的
一个字节固定8bit,但是一个字不一定是16bit,需要看计算器MDR的位数
!!! note 关于B和b
1B表示1个字节\1b=1个bit,所以1B=8b
思考:运营商的100Mbps实际上只有10M+,为什么呢?
因为运营商这里用的是小b,所以我们下载的时候最大真实速度需要除以8
100Mbps实际上只有12.5MBps
运算器的基本组成
运算器:用于实现算术运算(如加减乘除),逻辑运算(如:与或非)
ACC:累加器,用于存放操作数,或运算结果。
MQ:乘商寄存器,在乘、除运算时,用于存放操作数或运算结果。
通用的操作数寄存器,用于存放操作数
X:实际中可能有多个,通用的操作数寄存器,用于存放操作数
ACC,MQ,X统统属于寄存器(不可或缺)
ALU(制造成本最高,最复杂的原件):算术逻辑单元,通过内部复杂的电路实现算术运算和逻辑运算
控制器的基本组成
CU(核心空间):控制单元,分析指令,给出控制信号
IR:指令寄存器,存放当前执行的指令
PC:程序计数器,存放下一条指令地址,
有自动加1功能
完成一条指令(从上往下执行)
其中PC和IR称为取指阶段,CU为执行阶段
最后的统合图
计算机的工作过程
前面0-4是机器指令
分析具体的案例
- 右边所有的机器码全部都存储在存储体中
- 控制器中的PC初始化为0,并且指向第一条指令的存储地址
- PC取出的内容,通过地址总线传递到主存储器的MAR中,令MAR=0
- MAR去存储体中读取地址,并且放数据到MDR,令MDR=000001 000000101
- MDR通过数据总线传递数据到控制器的IR中,并且赋值给IR
- 其中传递到IR的操作码会被传递给CU,CU分析后得知,这是"取数字"指令
- 于是控制器的IR传递地址码到MAR,令MAR=5,此时5号地址对应的是令a=2
- 于是存储体给数据给MDR,MDR被赋值为2
- MDR在控制单元的指挥下,MDR的数据会被传送到ACC中,ACC被赋值为2
老师的简化版
上一条指令取指之后PC自动+1,(PC)=1,执行后,(ACC)=2
第二条指令
重复之前的步骤
- 当我们的第二个数字到了ACC,我们的ACC就会先把前一个数字传送到(x)通用寄存器里
- 然后把被乘数存入(MQ),最后通过CU控制单元,我们的ALU开始工作,
- 计算2X3得出结果6返回给(ACC)当存储数字过大[3]
执行结束的图
第三条指令
第四条指令
第五条指令
总结
注意:现代计算机通常把MAR与MDR也集成在CPU中
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!