计算机硬件系统-CPU中的寄存器

本节主要介绍计算机硬件系统中CPU的常用寄存器,包括通用寄存器和专用寄存器的介绍。

CPU的常用寄存器分为通用寄存器和专用寄存器。

  • 通用寄存器:用来存放原始数据和运算结果,一般可以由CPU直接访问。

有趣的问题:为什么要设计通用寄存器呢?

这里来给大家讲讲,因为我们处理数据时肯定会有一些中间的结果,比如“2+5-3”,那么结果是什么呢?你会发现这个时候我们需要做一些运算,那“2+5”计算后肯定不会是一个最终的结果,如果你把结果“7”写入内存,由于CPU和内存之间是有速度差的,若CPU先把中间结果“7”写入内存,再把“7”从内存读回CPU再进行处理,这样的话CPU的运行速度会非常慢,所以中间的一些结果,包括原始的一些数据,我们会先把它们放到CPU的内部通用寄存器,这个寄存器也是具备一定的存储功能的,只不过它的速度非常快。正因为这样,通用寄存器的成本会比较高,所以设计的时候不会让它容量太大。

  • 专用寄存器:专门用来完成某一种特殊功能的寄存器。CPU至少要有5个专用的寄存器。

CPU专用寄存器

  • 程序计数器(PC):用来存放接着要执行的下条指令地址。

指令的基本格式:
计算机硬件系统-CPU中的寄存器_第1张图片
由图可见:程序计数器PC存放是绿色的下条指令的地址。

  • 指令寄存器(IR):用来存放从存储器中取出的指令。

由图可见:指令寄存器存放的是指令本身,包含了操作码字段和地址码。

  • 存储器地址寄存器(MAR):用来保存当前CPU所访问的主存单元的地址。可简称“AR”。

CPU的程序寄存器PC当中存入下条要执行的指令地址,然后按照这个地址要去内存当中去找这块存储单元,但是PC里面的值不直接送入相应的线路,而是要经过MAR才能送入相应的线路。

  • 存储器数据寄存器(MDR):用来暂时存放由主存储器读出的一条指令或一个数据字;同理,当向主存存入一条指令或一个数据字时,也要暂存。可简称“DR”。

如果读出或存入的是一条指令,那么接下来这条指令就会被送到指令寄存器IR里面。

如果读出或存入的是一个数据字,那么接下来这个数据字就要通过MDR送到相应的寄存器去处理。

  • 状态标志寄存器(PSWR):用来存放程序状态字。程序状态字的各位表征程序和机器运行的状态,是参与控制程序执行的重要依据之一。比如现在CPU有没有发生溢出,当前CPU是否允许中断,相应的这些状态标记我们要做特定的设置。

你可能感兴趣的:(从零开始学习计算机网络,运维,硬件架构,电脑,信息与通信,windows)