计算机底层逻辑学习笔记11-CPU的组成

111 阅读6分钟

CPU通常由以下几部分构成:

①控制器:产生一系列控制信号,以控制计算机中各部件完成取指令、分析指令、执行指令的操作。

②算术逻辑部件ALU:实现指令所指定的各种算术和逻辑运算。

③各种寄存器:存放指令、指令地址、操作数及运算结果。

④CPU内部总线:连接CPU内部各部件,为信息传送提供通路。

一、ALU部件与寄存器

1. ALU部件

ALU的功能是实现数据的算术与逻辑运算,ALU的输入有两个端口,分别接收参与运算的两个操作数,通常它们来自CPU的通用寄存器或ALU总线。ALU的输出取决于对其功能的控制,当控制功能选择加、减、与、或等运算功能之一时,其输出结果将为对应的和、差、与值、或值等。

一般简单运算可以一步完成,而乘除等相对运复杂的运算则需要若干步才能完成。在低挡机器中通常只设一共ALU,速度较快的机器可设多个运算部件。

2. 寄存器

CPU中的寄存器包括存放控制信息的寄存器,如指令寄存器、程序计数器和状态字寄存器;以及存放处理数据的寄存器,如通用寄存器和暂存器。

①通用寄存器

通常CPU内部设置有一组寄存器,每个寄存器都可以提供多种用途,因此习惯上称为通用寄存器。

通用寄存器本身在逻辑上只具有接收信息、存储信息和发送信息的功能。但通过编程以及与ALU的配合可以实现多种功能,如它们可为ALU提供操作数并存放运算结果,也可用作变址寄存器、地址指针和计数器等。

每个通用寄存器都有唯一的编号,称为寄存器地址。

②暂存器

在CPU中一般要设置暂存器,主要是为了暂存从主存储器读出的数据,这些数据不能存放在通用寄存器中,否则会破坏其原有内容。此外,暂存器还可用于暂存来自通用寄存器组的数据。

暂存器没有寄存器号,因此不能直接编程访问它们。有关暂存器的操作过程,对用户来说是看不见的,也称为是“透明的”。

③指令寄存器(IR)

用来存放当前正在执行的一条指令。当执行一条指令时,通常是先将其从主存储器读出到主存数据寄存器中,然后再送往指令寄存器中。

指令可划分为操作码和地址码字段,执行指令时必须对操作码进行译码,以识别出所要求的操作,这个功能由“指令译码器”完成。

为了提高指令的执行速度,很多计算机将指令寄存器扩充为指令队列,因而可以预取多条指令,使指令的读取与执行有一定的重叠。

④程序计数器(PC)

为了保证程序能够连续执行,在CPU中必须设置程序计数器,用以存放当前或下一条指令在主存中的地址,因此又称为指令计数器或指令指针IP。

在开始执行程序前,须将程序的起始地址,即程序的第一条指令所在主存单元地址送入PC,以便从程序的第一条指令开始执行。当现行指令执行完毕,通常由程序计数器提供后继指令地址,并送入主存的地址寄存器。

当遇到转移指令时,需改变程序的执行顺序,则由转移指令形成转移地址送往PC作为后继地址。PC计数功能可由ALU配合实现,此时PC为单一纯寄存器;也可让PC本身具有计数逻辑。

⑤状态寄存器

CPU内部设置的状态寄存器,用来存放当前程序的运行状态和工作方式,其内容称为程序状态字PSW,PSW是参与控制程序执行的重要依据。

二、总线

总线是一组能为多个部件分时共享的公共信息传送线路,它分时接收各种部件送来的消息,并发送信息到有关部件。采用总线传送信息方式,可有效减少传送线数量,使数据通路结构简化,便于控制。但由于多个部件连接在一组公共总线上,可能会出现多个部件争用总线,因此需设置总线控制逻辑以解决总线控制权的有关问题。

CPU内部总线用来连接CPU内的各寄存器与ALU,主要用于传送数据信息。

系统总线用来连接CPU、主存储器与I/O接口,它通常包括三组:数据总线、地址总线和控制总线。数据总线主要传送各大部件间的数据信息,如指令代码、操作数、命令字或状态字等。地址总线用于传送主存单元地址码或I/O端口地址。控制总线用于传送控制、状态信息,其中有CPU发出的控制信号,也有送入CPU的状态信号。如CPU输出的对主存的读/写控制信号、外设输入到CPU的中断请求信号。

将数据总线能一次并行传送的数据位数称为数据通路宽度。按总线传送的方向可将总线分为单向总线和双向总线。

三、CPU内部数据通路

1. 单总线数据通路结构

CPU数据通路结构只采用一组内总线,它是双向总线。通用寄存器组、其他寄存器和ALU均连在这组内总线上。

单总线结构连线较少,控制简单。但由于某一时刻只允许一个部件在总线是发送消息,因此其他需总线传送的部件只能等待总线空闲,这使CPU的整体工作速度降低。

2. 多组内总线结构

为了提高CPU的工作速度,一种方法是在CPU内部设置多组内总线,使几个数据传送操作能够同时进行,即实现部分并行操作。部分并行操作的实现有利于提高CPU的执行效率,其代价是增加硬件线路。