计组—5.1CPU的功能和基本结构
知识点
-
CPU的功能
指令控制
操作控制
时间控制
数据加工
中断处理
-
运算器和控制器的功能
1.运算器:数据加工
2.控制器:取指令分析指令执行指令中断处理
-
(更详细的)运算器的基本结构
1.ALU算术逻辑单元
2.通用寄存器组(AXBXCX,SP等),可以作为ALU的输入
问题1:通用寄存器和ALU之间的连线方式是专用数据通路方式。这种方式基本不存在数据冲突现象,但是如果部件变多,线会很多,越来越复杂
🧐如何解决?引入CPU内部单总线方式,将所有寄存器的输入输出端都连接到一条公共的通路上。
这么做结构简单容易实现,但是数据传输存在较多冲突,性能较低。
🧐什么时候会冲突?两个寄存器不能同时输入,否则数据就会冲突,(因为ALU是没有内部存储功能的组合电路)解决的办法是在ALU的其中一端加上一个暂存寄存器。
ALU的输出端也需要一个暂存寄存器来连接。可以引入存储器章节中对寄存器的比喻:数据相当于水,寄存器相当于蓄水池,ALU与数据线都是水渠,只不过ALU是个可以改变水流的复杂水渠。当你打开R1与暂存寄存器的“闸门”,让水经过ALU计算后,水会流出ALU的另一端。而ALU的输出如果直接流向总线,就会污染总线上的水,进而污染R1的输出干扰到计算,所以需要另一个蓄水池拦住还未处理完成的水。
因此ALU上边经常看到一个Z
为什么上边的暂存寄存器有个三态门?下边的不需要?
问题2:导线直接连接相当于多个寄存器同时并一直向ALU传输数据,但实际上我们只需要R0去左边、R1去右边这样
🧐如何解决?多路选择器MUX,利用控制信号选择一路输出。或者利用三态门,控制每一路是否输出
3.暂存寄存器
4.累加寄存器(ACC)
5.程序状态字寄存器PSW :用于保留由算数运算指令或测试指令 建立的 状态信息。例如OF溢出标志(overflow) 、SF符号标志,ZF零标志,CF进位标志
6.移位器
7.计数器(计算乘法时候进行了几次加法)
关于标志信息ZF、OF、SF、CF的理解_带标志加法器-CSDN博客
-
控制器的基本结构
1.PC 程序计数器
2.IR 指令寄存器
3.ID 指令译码器
4.微操作信号发生器
5.时序系统
6.存储器地址寄存器(就是MAR啊!!)
7.存储器数据寄存器
-
CPU的基本结构
-
用户可见(就是可编程,可人为改变)-橙色
用户不可见(透明的)-灰色
PC:用户可以用条件转移指令改变PC的值
PSW:某一些条件转移指令本身就要使用PSW的值;另外一些比大小也会改变PSW的值
ACC:加法什么的会改变ACC的值
通用寄存器也是,程序员可以直接读和写
错题:
-
什么多种功能?
-
-
“总是”
-
机器字长?
-
存储器地址寄存器是MAR,地址译码器是主存的,作用是根据输入的地址码唯一选定一个存储单元。它不是CPU的租场部分
-
21:间址周期的目的:取出操作数的有效地址。是有效地址而不是操作数
22:可见的是能手动改的,PC可以在条件转移的时候改
23:PC的位数:总共4GB要存放N个32位(bit)的指令,所以一共可以存放4GB/32个指令。注意B要变成8b