1.1.3 CPU的组成
计算机系统包括硬件系统和软件系统,硬件是计算机系统的物质基础,软件是计算机系统的灵魂,如图1-6所示。硬件和软件是相辅相成的,不可分割。
图1-6 计算机系统
(1)输入设备
输入设备的任务是把人编写的程序和原始数据送到计算机中,并且将它们转换为计算机内部所能识别和接收的信息方式。例如,鼠标、键盘、显示器,以及我们用的智能手机触摸屏既是输入设备又是输出设备;而在各种云上的服务器,则是通过网络来进行输入和输出的。
(2)输出设备
输出设备的任务是将计算机的处理结果以人或其他设备所能接受的形式送出计算机。常用的输出设备有显示器、打印机、绘图仪等。
(3)计算机的总线结构
将计算机的各大基本部件按某种方式连接起来就构成了计算机的硬件系统。系统总线包含3种不同功能的总线,即数据总线(DB)、地址总线(AB)和控制总线(CB),计算机总线结构如图1-7所示。
图1-7 计算机总线结构
数据总线:用于传送数据信息。数据总线的位数是微型计算机的一个重要指标,通常与微处理器的字长一致。例如,Intel 8086微处理器字长16 bit,其数据总线宽度也是16位。
地址总线:专门用来传送地址。地址总线的位数决定了CPU可直接寻址的内存空间大小,比如8位微处理器的地址总线为16 bit,则其最大可寻址空间为216byte,为64KB, 16位微处理器的地址总线为20 bit,其可寻址空间为220byte,为1MB。
控制总线:用来传送控制信号和时序信号。在控制信号中,有些信号是微处理器送往存储器和I/O接口电路的,如读/写信号、片选信号、中断响应信号等;有些信号是其他部件反馈给CPU的,如中断申请信号、复位信号、总线请求信号、就绪信号等。控制总线的具体情况取决于CPU。
(4) CPU
CPU作为计算机系统的运算和控制核心,是信息处理、程序运行的最终执行单元。CPU内部主要包括运算器和控制器,CPU运算器结构如图1-8所示。
图1-8 CPU运算器结构
运算器的核心是算术逻辑部件和若干个寄存器。CPU用寄存器存储计算时所需的数据,寄存器一般有如下3种。
通用寄存器:用来存放需要进行运算的数据,如需进行加法运算的两个数据。
程序计数器:用来存储 CPU 要执行下一条指令所在的内存地址。
指令寄存器:用来存放程序计数器指向的指令。
ALU可以执行算术运算(包括加、减、乘、除等基本运算及其附加运算)和逻辑运算(包括移位、逻辑测试等运算)。相对控制器而言,运算器接受控制器的命令而进行动作,即运算单元所进行的全部操作都是由控制器发出的控制信号来决定的,所以控制器是执行部件。
控制器是整个CPU的指挥控制中心,由程序计数器(PC)、指令寄存器(IR)、指令译码器(ID)和操作控制器(OC)等组成,对协调整个计算机有序工作极为重要, CPU控制器结构如图1-9所示。
图1-9 CPU控制器结构
控制器根据用户预先编写好的程序,依次从存储器中取出各条指令,将其放在指令寄存器中,通过指令译码器(分析)确定应该进行什么操作,然后操作控制器按确定的时序,向相应的部件发出微操作控制信号。操作控制器中主要包括节拍脉冲发生器、控制矩阵、时钟脉冲发生器、复位电路和启停电路等控制逻辑单元。
(5)存储器
存储器是用来接收数据和保存数据的部件,它是一个记忆装置,也是计算机能够实现程序存储和程序控制的基础,包括Cache(一种高速缓冲存储器)、主存储器、辅助存储器,存储器的基本分类如图1-10所示。
图1-10 存储器的基本分类
寄存器:在CPU内部或I/O接口中,CPU可以直接访问寄存器;寄存器一般是8位,或8的整数倍位,32位CPU寄存器可存储4byte,64位寄存器可存储8byte。寄存器访问速度一般是半个CPU时钟周期,为纳秒(ns)级别。
高速缓存器(Cache):高速缓存器可以直接被CPU访问,它用来存放当前正在执行的程序中的活跃部分,以便其快速地向CPU提供指令和数据,其分为一级缓存器(L1)、二级缓存器(L2)、三级缓存器(L3)等,它位于内存和 CPU 之间,是一个读写速度比内存更快的存储器。当CPU向内存写入数据时,这些数据也会被写入高速缓存器中。当CPU 需要读取数据时,会从高速缓存器中直接读取,当然,如果需要的数据在高速缓存器中没有,CPU会再去读取内存中的数据,各级高速缓冲存储器介绍如下。
① L1:存在于每个CPU,用来缓存数据根指令,访问空间大小一般为32~256KB,访问速度一般是2~4个CPU时钟周期。
② L2:存在于每个CPU,访问空间大小为128KB~2MB,访问速度一般为10~20个CPU时钟周期。
③ L3:多个CPU共用,访问空间大小为2~64MB,访问速度一般为20~60个CPU时钟周期。
主存储器:可由CPU直接访问,可多个CPU共用,用来存放当前正在执行的程序和数据,访问空间大小一般在4~512GB,访问速度一般为200~300个CPU时钟周期。
辅助存储器:设置在主机外部,CPU不能直接访问,用来存放暂时不参与运行的程序和数据,需要时再将其传送到主存储器中。