计算机原理介绍:微处理器与总线部分

阅读数:1191 2019 年 9 月 16 日 08:36

计算机原理介绍:微处理器与总线部分

微处理器(CPU)是计算机系统的核心部件,控制和协调着整个计算机系统的工作。

计算机原理介绍:微处理器与总线部分

微处理器主要具有以下功能:能够进行运算,主要是算术运算和逻辑运算;能对指令进行译码,寄存并执行指令所规定的操作;具有与寄存器和 I/O 接口进行数据通信能力;少量数据的暂时储存;能都提供这个系统的所需要的控制信号以及定时;能够响应输入或者输出设备发出的中断请求。

这些对 CPU 进行了大致概括,我们会在接下来的几章中,着重对 CPU 的一些功能进行详细介绍。本文首先说下字长,字长是 CPU 在同一时间内能够一次处理的二进制位数,通常是指 CPU 内部寄存器的位数以及数据总线的位数,比如开发人员经常听到的 32 位、64 位就是指字长。

CPU 主要是由运算器和控制器两大部分组成,上一篇文章详细分析了逻辑电路的构成,今天分析一下他们的作用。

运算器是由算数逻辑单元(ALU),通用寄存器和专用寄存器以及内部总线构成,其主要功能是实现算数运算以及逻辑运算。控制器的作用是控制程序执行,是整个系统的的指挥中心,具备如下基本功能:

指令控制

计算机的工作过程就是连续执行指令的过程,指令在存储器中是连续存放的。普通情况下,指令是按照顺序一条一条的的取出并执行,只有在特殊情况下,碰到转移类指令才会打断或者改变顺序。控制器要根据指令所在的地址按顺序取出指令并分析,传送必要的条件,并在结束指令后存放运算结果。总之,要保证计算机指令的顺利执行。

时序控制

指令是在时钟信号的严格控制下运行的,一条指令的执行时间称为指令周期,不同指令的指令周期中所包含的机器周期数也是不一样的,一个机器周期中包含多少时钟周期也不相同,这些周期信号用于计算机平常的工作,在控制器的控制下,按一定的关系进行工作。

操作控制

操作控制是根据指定流程,确定在指令周期的各个节拍中要产生的微操作控制信号,以有效完成各条指令的操作,除此之外还对异常情况进行处理。

控制器主要由如下几方面构成:

  • 程序计数器(PC),主要用来存放下一条要执行的指令在存储器中的地址。
  • 指令寄存器(IR),指令寄存器用于存放从存储器中取出的待执行指令。
  • 指令译码器(ID), 主要是指令译码。
  • 时序控制部件,产生计算机运行时所需的时序信号。
  • 微操作控制部件,这部分是控制器的主体。

CPU 想要对数据进行读写,必须和外部器件(严格来说应该是芯片)进行三类信息交互,分别储存单元的地址(地址信息),器件选择,读写命令(控制信息),读或写的数据 (数据信息),那么 CPU 是通过什么将地址,控制信息和数据传输进芯片的呢?

计算机传输处理的信息都是电信号,电信号要用导线传送,当然计算机不叫导线,叫总线,物理上的解释为一根根导线的集合。逻辑上划分为地址总线,数据总线和控制总线。数据总线的宽度决定了 CPU 与外界的数据传送速度,这些信息全部从内存中读取。

地址总线

CPU 通过地址总线指定存贮单元,地址总线上能传多少个信息,CPU 就能对多少个存储单元寻址。一个 CPU 有 N 根地址总线 ,则可以说这个 CPU 的地址总线宽度为 N,这样的 CPU 最多可以寻找到 2 的 N 次方个内存单元。

数据总线

CPU 内存或者其他器件之间的数据传送是通过数据总线来进行的,上面也提到了数据总线越大,传播速度越快。

控制总线

CPU 对外部器件的控制是通过控制总线来进行的,有多少控制总线,就意味着 CPU 对外部器件有多少种控制。所以,控制总线的宽度决定了 CPU 对外部器件上的控制能力。

本文主要涉及 8086/8088 CPU 的主要功能,8086/8088 CPU 有一个很大的改进,就是采用全新的结构完成上述几个内容,并将它分配给两个部件:执行单元(EU)和总线接口单元(BIU),EU 负责分析指令和执行指令,BIU 负责取指令,取操作数和写结果,这两个单元都能独立完成相应的工作。

行执行单元 EU 的主要功能是执行指令,分析指令,暂存中间运算结果,并且保留运算特征,由算数逻辑单元(运算器)ALU,通用寄存器,标志寄存器和 EU 控制电路组成。

EU 工作时不断从指令队列中取出指令代码,对其译码后产生完成指令所需要的控制信息。数据在 ALU 中进行运算,运算结果的特征保留在标志寄存器 FLAGS 中。

8086CPU 有 14 个寄存器,分别为 AX、BX、CX、DX、SI、DI、SP、BP、IP、CS、SS、DS、ES、PSW,每个寄存器的低 16 位可以单独使用。同时,AX、BX、CX、DX 寄存器的高八位和低八位也可分别当作八位寄存器使用。

8086 CPU 所有寄存器都是 16 位,可以存放两个字节,AX、BX、CX、DX 通常用来存放一般性数据,被称为通用寄存器。

接下来看几条简单的汇编指令

  • Mov ax,18 将 18 送入 AX
  • Mov ah,78 将 78 送入 AH
  • Add ax,8 将寄存器 AX 的数值加上 8
  • Mov ax,bx 将寄存器 BX 的数据送入寄存器 AX 里面
  • Add ax,bx 将寄存器 BX 中的数值和寄存器 AX 中的数值相加,结果存进寄存器 AX 中。

内存分段管理技术

8088/8086 CPU 的内部结构都是 16 位,即内部寄存器只能存放 16 位二进制码,内部总线最多也只能传送 16 位二进制码,16 位二进制码最多只具有 2^16=64K 种组合,如果用二进制码表示地址,则 8086/8088 CPU 只能产生 64K 个地址,也就是最多能够管理 64 个内存单元。

由于内存容量的大小对计算机的性能有着密切影响,为了提高计算机系统的执行速度,极大提高寻址能力,为此采用了分段管理的方法,将内存空间分为多个逻辑段,每个逻辑段最大为 64K 个单元,段内每个单元的地址长度为 16 位,满足其 16 位内部结构的要求,这些将在后续章节中介绍。

相关文章:

《逻辑运算系列(一):入门篇》
《逻辑运算系列(二): 组合逻辑电路》

收藏

评论

微博

用户头像
发表评论

注册/登录 InfoQ 发表评论