计算机系统基础知识_CPU篇

时间:2024-04-09 20:08:21

概述

计算机系统由 硬件软件 组成,这篇文章主要简单介绍计算机的硬件系统。硬件系统由5大基础设备组成:运算器、控制器、存储器、输入设备、输出设备

计算机系统基础知识_CPU篇
运算器和控制器被集成在一起统称为 *处理单元(CPU, Central Processing Unit),CPU是硬件系统的核心部件;存储器一般分为 内部存储器、外部存储器 两种,前者速度高容量小,后者反之;输入和输出设备统称为 外部设备,前者用于输入数据和命令,后者则用于输出结果。

本篇主要介绍CPU的基础组成。


*处理单元(CPU)

前面提到CPU由运算器和控制器集成,而实际上CPU的组成更为复杂,除了前两者外还有 寄存器组内部总线 组成。下面对它们的前三者一一介绍,并在最后用Intel 8086的结构来做一个简单的印证:

运算器

它由 算术逻辑单元(ALU)、累加寄存器(AC)、数据缓冲寄存器(DR)、状态条件寄存器(PSW) 等组成,它主要负责完成计算机的 算术运算逻辑运算。它由控制器指挥工作,所以它属于 执行部件。运算器每次运算二进制数的位数被称为 字长,通常有8、16、32、64位,寄存器、累加寄存器的长度一般会与算数逻辑单元相同。下面逐个介绍其组成部件:

  1. 算数逻辑单元(ALU, Arithmetic and Logic Unit)

    该部件是运算器的核心,实际负责计算和逻辑的执行者。

  2. 累加寄存器(AC, Accumulator)

    累加寄存器又被称作 累加器,它是一个通用的寄存器,为ALU提供工作区,给运算的中间结果和最后结果提供存放的空间。因为这个原因,运算器中至少会有一个累加器

    如做一次减法运算会从内存取出被减数放于AC中,随后再从内存储器中取出减数与AC相减,结果仍然放回AC中。

  3. 数据缓冲寄存器(DR, Data Register)

    对内存储器读写时,会使用DR暂时存放一条指令或数据,将不同时间段读写的数据隔离。DR的主要作用就是作为CPU和内存、外部设备之间的中转站。在单AC结构的运算器里,DR还可以作为操作数寄存器。

  4. 状态条件寄存器(PSW, Program Status Word)

    用于保存算术指令和逻辑指令或测试的结果建立的条件码,主要分为 状态标志和控制标志。这些标志通常分别由1位触发寄存器保存。

    如运算结果进位标志、运算溢出标志、运算结果为0标志、运算结果为负标志、中断标志、方向标志、单步标志等等。

控制器

它通过产生不同的信号控制整个CPU的工作,决定了计算机的运行过程,不仅保证程序正确执行,还要处理异常事件。

控制器一般包括 指令控制逻辑、时序控制逻辑、总线控制逻辑、中断控制逻辑 等部分:

指令控制逻辑

负责对指令的读取、分析、执行,其过程分为 取指令、译码、操作、计算下个指令地址 等步骤,其中一般有如下部件:

  1. 指令寄存器(IR, Instruction Register)

    CPU执行指令时会先从内存取到缓冲寄存器中,随后再放入IR中,译码器会根据IR的内容产生各种微指令控制其他部件完成工作。

  2. 程序计数器(PC, Program Counter)

    它既负责寄存信息也负责计数,又被称为指令计数器。程序执行时可能是顺序的,也可能是跳跃的。在程序开始执行前,会将程序的起始地址放入PC。执行指令时CPU会自动的修改PC的内容,使其总是存放下一条待执行指令的地址。

  3. 地址寄存器(AR, Address Register)

    保存当前CPU访问的内存单元地址。这主要由于CPU和内存存在速度上的差异,所以需要AR负责暂时记录地址信息,直至内存的I/O操作完成。

  4. 指令译码器(ID, Instruction Decoder)

    指令分为操作码和地址码两部分,ID主要就是负责对操作码部分进行解释,发出具体的控制信号,以完成指令所需功能。

时序控制逻辑

负责为每条指令按时间顺序提供控制信号。

总线控制逻辑

负责多个部件之间提供信息通路的电路控制。

中断控制逻辑

负责根据中断请求的优先级对中断请求按顺序的交给CPU处理。

寄存器组

它保存从存储单元中读取的指令和数据,也保存状态信息,在CPU中又有 通用寄存器专用寄存器 两类。

运算器和控制器中的寄存器就是专用寄存器,而通用寄存器的用途广泛,可以由程序员来使用,其数目因处理器的不同而不同。


Intel 8086 内部结构

计算机系统基础知识_CPU篇

图 Intel 8086 CPU简单内部结构

可以看到,CPU中存在刚才提到的各种结构。

从其ALU数据总线中可以看出这是一个16位的CPU。其中通用寄存器有AX、BX、CX、DX,它们都可以作为一个16位或两个独立的8位寄存器使用,于是乎每个里面又分为了高位(H)和低位(L),而SP、BP、DI、SI是地址指针寄存器。

另外各种专用寄存器则分布在ALU、PC周围,前文提到的各种专用寄存器均有一定程度的体现,而代码段寄存器(CS)、数据段寄存器(DS)、堆栈段寄存器(SS)、附加段寄存器(ES)、指令指针寄存器(IP)这些是对程序员可见的。另外上文中提到的那些专用寄存器则对程序不可见。

控制器就是图中的EU控制系统,可以看到在8086中它和ALU等部件高度紧密,根据指令队列控制ALU等部件的运行。