8.1-CPU结构(学习笔记)

Posted PacosonSWJTU

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了8.1-CPU结构(学习笔记)相关的知识,希望对你有一定的参考价值。

【README】

本文总结自bilibili《计算机组成原理(哈工大刘宏伟)》的视频讲解,非常棒,墙裂推荐;


【1】CPU结构

Cpu的首要功能就是解释指令;功能列表如下:

  • 1)    取指令:从内存中读取指令;
  • 2)    分析指令:对指令的操作码部分进行解码;分析这条指令要完成什么功能,是指令集中的哪一条指令;
  • 3)    执行指令: cpu控制器发出各种操作命令,由这些操作命令去控制相关部件去完成指令要求的操作;(这些操作命令有一定的先后顺序);
  • 4)    控制器控制参数输入及结果输出;
  • 5)    总线管理: 对总线的控制权,使用权进行管理;
  • 6)    处理异常情况和特殊请求: 在程序执行过程中,控制器能够对异常情况,或特殊请求进行及时处理;

【2】cpu结构框图

【2.1】总线功能列表

1)    控制总线:双向,由cpu向各个部件发出的控制命令,或外部设备向cpu提出的请求以及外部设备的状态,可以通过控制总线来传输;
2)    数据总线:双向,由cpu向存储器或外设写出或读入数据;
3)    地址总线:单向, 由cpu发出,送给内存或外设接口;

【2.2】cpu内部结构

【2.2.1】寄存器

PC,程序计数器寄存器,存储要取出的指令的地址;
IR,指令寄存器,从内存中取出指令,被放入到IR寄存器中;

。。。其他寄存器;

【2.2.2】控制单元CU

操作控制和实际控制:这两部分需要控制单元CU,由控制单元对指令进行译码,译码之后,在给定时刻给出给定的操作命令;

【2.2.3】ALU(算术逻辑运算单元):

算术运算,逻辑运算都是在ALU中进行计算中;
另外在运算过程中,还需要寄存器,如2个操作数可能都保存在寄存器中,或运算结果也需要输出到寄存器中;

【2.2.4】中断系统

还需要中断处理,所以需要中断系统;

refer2 计算机中断系统小结(cpu响应中断)_PacosonSWJTU的博客-CSDN博客_各中断源如何向cpu提出中断请求


 【3】cpu的寄存器

 【3.1】用户可见寄存器

1)    通用寄存器:用于存放操作数,如8086cpu的AX,BX等;
2)    数据寄存器:存放操作数,如有保存整数的寄存器,也有保存浮点数的寄存器;如把ACC寄存器和MQ寄存器拼接在一起用于保存两个数相乘的积;
3)    地址寄存器:保存地址,如8086cpu中的段寄存器,如段基址,堆栈指针寄存器SP;
4)    条件码寄存器:存放条件码,根据条件码来判断是否要跳转执行指令;

补充:用户可见的寄存器指的是 用户在编写程序的过程中,可以使用这些寄存器的值;

【3.2】控制和状态寄存器

PC -> MAR -> M -> MDR ->IR  讲的是取指令的过程,其中

  1. PC-程序计数器寄存器:保存了将要执行的下一条指令的地址;
  2. MAR-主存(内存)地址寄存器:保存了访问内存(访存)的地址,从内存读出或写入内存某地址;
  3. M:主存(内存);
  4. MDR-主存(内存)数据寄存器:保存了访问内存(访存)的数据,从内存的MAR指定的地址单元读取的数据,或写入到MAR指定的地址单元的数据;
  5. IR:指令寄存器:存储要执行的指令;(而PC存储的下一条执行的地址)

步骤如下:

  1. PC -> MAR :PC(程序计数器寄存器)保存了下一条执行指令的地址,把下一条指令地址送入到MAR;
  2. MAR -> M :MAR中的指令地址送入到地址总线,地址总线再送入到主存;
  3. M -> MDR:从主存的MAR指定的内存单元读取数据(指令)到MDR
  4. MDR ->IR  :把读取的数据(指令)从MDR 送入 IR;

写到这里,本文扩展性的给出取指令的步骤(干货):

步骤

描述

1

PC把下一条指令的内存地址送入MAR;

2

MAR把地址送到地址总线,再由地址总线送到存储器;

3

CU把读控制信号送到控制总线上;再由控制总线送到存储器;

4

存储器执行读操作,把相应的数据送到数据总线;通过数据总线送到MDR;

(这个时候,指令已经被取出到cpu了,并保持到MDR寄存器中)

5

MDR把指令送到IR中;

6

CU把PC加1(得到下一条指令的地址);为下一条指令的取指操作做准备;

【补充】

状态寄存器 :反映了指令执行结果的情况或计算机的软硬件状态;
PSW: 程序状态字寄存器(procedure state word);

程序状态字是什么?
在中断或者是子程序调用过程中,为了能够让程序能够正确返回断点,返回断点后,还能够接着执行给定程序;在中断前或转子程序前,就需要保存程序的运行现场和断点,包括了程序运行的软硬件信息;这些软硬件信息就可以保存在程序状态字寄存器(它是一个大的寄存器);


【4】控制单元CU和中断系统  

【4.1】控制单元CU

1)控制单元作用:产生全部指令在执行时所需要的微操作命令序列;

任何一条指令的执行,它会在cpu中译码;
根据它是一条什么样的指令,或完成什么功能;要产生完成这些功能所需的微操作命令及序列(保证微操作命令的顺序);

2)控制器的设计方式

  • 组合逻辑设计: 通过硬连线逻辑,如精简指令集计算机 CISC;
  • 微程序设计:存储逻辑;适用于复杂指令的设计;

以上是关于8.1-CPU结构(学习笔记)的主要内容,如果未能解决你的问题,请参考以下文章

计算机的存储器

计算机的存储器

计算机的存储器

计算机组成原理第4章 存储器

Verilog学习笔记简单功能实现...............译码器和编码器

存储系统