1.1 计算机系统基础知识
1.1.1 计算机系统硬件基本组成
计算机基本硬件系统由 运算器、控制器、存储器、输入设备 和 输出设备 5大部件组成。
运算器、控制器等部件被集成在一起统称为中央处理单元(Central Processing Unit,CPU)。
CPU是硬件系统的核心,用于数据的加工处理,能完成各种算术、逻辑运算及控制功能。
存储器是计算机系统中的记忆设备,分为 内部存储器 和 外部存储器 。
内部存储器:速度高、容量小,一般用于临时存放程序、数据及中间结果。
外部存储器:容量大、速度慢,可以长期保存程序和数据。
输入设备和输出设备:合称为外部设备(简称外设),输入设备用于输入原始数据及各种命令,而输出设备则用于输出计算机运行的结果。
1.1.2 中央处理单元
1.CPU的功能
(1)程序控制。CPU通过执行指令来控制程序的执行顺序,这是CPU的重要职能。
(2)操作控制。一条指令功能的实现需要若干操作信号来完成,CPU产生每条指令的操作信号并将操作信号送往不同的部件,控制相应的部件指令的功能要求进行操作。
(3)时间控制。CPU对各种操作进行时间上的控制,这就是时间控制。CPU每条指令的整个执行时间要进行严格控制。同时,指令执行过程中操作信号的出现时间、持续时间及出现的时间顺序都需要进行严格控制。
(4)数据处理。CPU通过对数据进行算术运算及逻辑运算等方式进行加工处理,数据加工处理的结果被人们所利用。所以,对数据的加工处理是CPU最根本的任务。
2. CPU的组成
CPU主要由运算器、控制器、寄存器组合内部总线等部件组成,如图:
1)运算器
运算器由算术逻辑单元(Arithmetic算术、算法 and Logic Unit,ALU)、累加寄存器、数据缓冲寄存器和状态条件寄存器组成,它是数据加工处理部件,完成计算机的各种算术和逻辑运算。相对控制器而言,运算器接受控制器的命令而进行动作,即运算器所进行的全部操作都是由控制器发出的信号来指挥的,所以它是执行部件。运算器有如下两个主要功能。
(1)执行所有算术运算,如加、减、乘、除等基本运算附加运算。
(2)执行所有的逻辑运算并进行逻辑测试,如与、或、非、零值测试或两个值的比较等。
下面简要介绍运算器的各种组成部件的组成和功能。
(1)算术逻辑单元。
ALU是运算器的总要组成部件,负责处理数据,实际对数据的算术运算和逻辑运算。
(2)累加寄存器(AC)。英文(accumulator register)
AC通常称为累加器,它是一个通用寄存器。其功能是当运算器的算术逻辑单元执行算术或逻辑运算时,为 ALU 提供一个工作区。
例如,在执行一个减法运算前,先将被减数暂取出放在AC中,再从内存储器中取出减数,然后同AC的内容相减,所得的结果送回AC中。运算的结果是放在累加器中的,运算器中至少要有一个累加寄存器。
(3)数据缓冲寄存器(DR)。英文(Data Register,DR)
在对内存储器进行读写操作时,用DR暂时存放由内存储器读写的一条指令或一个数据字,将不同时间段内读写的数据隔离开来。
DR 的主要作用为:
作为 CPU 和内存、外部设备之间数据传送的中转站;
作为 CPU 和内存、外围设备之间在操作速度上的缓冲;
在单累加器结构的运算器中,数据缓冲寄存器还可以兼作为操作数寄存器。
(4)状态条件寄存器(PSW)。 英文(PSW,Program Status Word)
PSW 保存由算术指令和逻辑指令运行和测试的结果建立的各种条件码内容,主要分为状态标志和控制标志,如运算结果进位标志(C)、运算结果溢出标志(V)、运算结果为 0 标志(Z)、运算结果为负标志(N)、中断标志(I)、方向标志(D)和单步标志灯。
这些标志通常分别由 1 位触发器保存,保存了当前指令执行完之后的状态。
通常,一个算术操作产生一个运算结果,而一个逻辑操作则产生一个判断。
2)控制器
运算器只能完成运算,而控制器用于控制整个CPU的工作,它决定了计算机运行过程的自动化。它不仅需要保证程序的正确执行,而且要能够处理异常事件。
控制器一般包括指令控制逻辑、时序控制逻辑、总线控制逻辑和中断控制逻辑等几个部分。
指令控制逻辑要完成取指令、分析指令和执行指令的操作,其过程分为取指令、指令译码、按指令操作码执行、形成下一条指令地址等步骤。
(1)指令寄存器 (IR)。英文(IR,Instruction Register)
当CPU执行一条指令时,先把它从内存储器取到缓冲寄存器中,在送入 IR 暂存,指令译码器根据 IR 的内容产生各种微操作指令,控制其他的组成部件工作,完成所需的功能。
(2)程序计数器(PC)。英文 (PC Program Counter Register)
PC具有寄存信息和计数两种功能又称为指令计数器。
程序的执行分两种情况,一是顺序执行,而是转移执行。
在程序的起始地址送入PC,该地址在程序加载到内存时确定,因此 PC 的内容即是程序第一条指令的地址。执行指令时,CPU将自动修改PC的内容,以便使其保持的总是将要执行的下一条指令的地址。由于大多数指令都是按顺序来执行的,所以修改的过程通常只是简单地对 PC 加 1。当遇到转移指令时,后继指令的地址根据当前指令的地址加上一个向前或向后转移的位移量得到,或者根据转移指令给出的直接转移的地址得到。
(3)地址寄存器(AR)。英文(AD Address Register)
AR 保存当前 CPU 所访问的内存单元的地址。
由于内存和 CPU 存在操作速度上的差异,所以需要使用 AR 保持地址信息,知道内存读/写操作完成为止。
(4)指令译码器(ID)。 英文(ID Instruction Decoder)
指令分为 操作码 和 地址码 两部分,为了能执行任何给定的指令,必须对操作码进行分析,以便识别所完成的操作。
指令译码器就是对指令中的操作码字段进行分析解释,识别该指令规定的操作,想操作控制器发出具体的控制信号,控制各部件工作,完成所需的功能。
时序控制逻辑要为每条指令按时间顺序提供应有的控制信号。
总线逻辑是为多个功能部件服务的信息通路的控制电路。中断控制逻辑用于控制各种中断请求,并根据优先级的高低对中断请求进行排队,逐个交给CPU处理。
3)寄存器组
寄存器组可分为专用寄存器和通用寄存器。
运算器和控制器中的寄存器是专用寄存器,其作用是固定的。
运算器和控制器中的寄存器是专用寄存器,其作用是固定的。通用寄存器用途广泛并可由程序员规定其用途,其数目因处理器不同有所差异。
3. 多核 CPU
核心(Die)又称为内核,是CPU最重要的组成部分。CPU中心那块隆起的芯片就是核心,是由单晶硅以一定的生产工艺制造出来的,CPU所有的计算、接收/存储命令、处理数据都由核心执行。
各种 CPU 核心都具有固定的逻辑结构,一级缓存、执行单元、指令级单元和总线接口等逻辑单元都会有科学的布局。
多核即在一个单芯片上面集成两个甚至更多个处理器内核,其中每个内核都有自己的逻辑单元、控制单元、中断处理器、运算单元,一级Cache、二级Cache共享或独有,某部件的完整性和单核处理器内核相比完全一致。
CPU的主要厂商AMD和Intel 的双核技术在物理结构上有很大不同。
AMD 将两个内核做在一个 Die(晶元)上,通过直连架构连接起来,集成度更高。
Intel 则是将放在不同的Die 上的两个内核封装在一起,因此有人将 Intel 的方案称为“ 双芯 ”,将 AMD 的方案称为双核。从用户端的角度来看,AMD 的方案能够使双核 CPU的管脚、工号等指标跟单核 CPU保持一致,从单核升级到双核,不需要更换电源、芯片组、散热系统 和主板,只需要刷新BIOS软件即可。