1.1 计算机系统基础知识
1.1.1 计算机系统硬件的基本组成
计算机的基本硬件:运算器、控制器、存储器、输入设备和输出设备。
运算器、控制器被集成在一起称为中央处理器(CPU,Central Processing Unit)。用于数据的加工处理,完成各种算术,逻辑运算和控制功能。
存储器分为内部存储器和外部存储器。前者容量小、速度高,一般用于临时存放程序,数据以及中间结果。后者容量大、速度慢,可以尝试保存程序和数据。
输入设备和输出设备统称外设。输入设备用于输入原始数据及各种命令,而输出设备用于输出计算机运行的结果。
1.1.2 中央处理单元
负责获取指令、对指令进行译码并加以执行。
-
CPU的功能
- 程序控制。通过执行指令来控制程序的执行顺序,是CPU的主要功能。
- 操作控制。一条指令功能的实现需要若干操作信号配合完成,CPU产生每条指令的操作信号并将操作信号送往不同的部件,控制相应的部件按指令的功能要求进行操作。
- 时间控制。CPU对于各种操作进行时间上的控制,即在指令执行过程中操作信号的出现时间、持续时间及出现的时间顺序都需要进行严格的控制。
-
数据处理。CPU通过对数据进行算术运算及逻辑运算等方式进行加工处理,数据加工处理的结果被人们利用。所以,对数据的加工处理,也是CPU最根本的任务。
CPU还需要对系统内部和外部的中断(异常),作出响应进行相应的处理。
-
CPU的组成
-
运算器
运算器的组成:算术逻辑单元、累加存储器、数据缓冲寄存器、状态条件寄存器。
运算器的主要功能:
(1)执行所有算数运算,如加减乘除等基本运算及附加运算。
(2)执行所有的逻辑运算并进行逻辑测试,如与或非零值测试或两个值的比较等。
运算器中各组成部件的功能
(1)算术逻辑单元(ALU):负责处理数据,实现对数据的运算和逻辑运算。
(2)累加寄存器(AC):也称为累加器,是一个通用寄存器,功能是当运算器的算术逻辑单元执行算术运算或逻辑运算时,为ALU提供一个工作区。
(3)数据缓冲寄存器(DR):在对内存器进行读/写操作时,用DR暂时存放由内存储器读/写的一条指令或一个数据字,将不同时间段内的读/写数据隔离。主要作用是作为CPU和内存、外部设备之间数据的中转站;在单累加器结构的运算器中,数据缓冲寄存器还可以兼作为操作数据寄存器。
(4)状态条件寄存器(PSW):由算术指令和逻辑指令运行或测试的结果建立的各种条件码内容,主要分为状态标志和控制标志。 -
控制器
运算器只能完成运算,控制器用于控制整个CPU的工作,她决定计算机运行过程的自动化。不仅要保证程序的正确执行,而且还能够处理异常事件。包括指令控制逻辑、时序控制逻辑、总线控制逻辑和中断控制逻辑。
指令控制逻辑要完成取指令、分析指令和执行指令的操作,过程分为取指令,指令译码、按指令操作码执行、形成吓一跳指令地址等步骤。
(1)指令寄存器(IR):当CPU执行一条指令时,先把它从内存储器取到缓冲寄存器中,再送入IR暂存,指令译码器根据IR的内容产生各种微操作指令,控制其他的组成部件工作,完成所需的功能。
(2)程序计数器(PC):具有寄存信息、计数两种功能,又被称为指令计数器。程序的执行分为两种情况,一是顺序执行,二是转移执行。
(3)地址寄存器(AR):保存当前CPU所访问的内存单元的地址。
(4)指令译码器(ID):指令分为操作码和地址这两个部分,为了执行任何给定的命令,必须对操作码进行分析,以便识别完成所有的操作。
时序控制逻辑要为每条指令按时间顺序提供相应的控制信号。
总线逻辑是为多个功能部件服务的信息通路的控制电路。
中断控制逻辑用于控制各种中断请求,并根据优先级的高低对中断请求进行排队,逐个交给CPU处理。 -
寄存器组
寄存器组分为专用寄存器和通用寄存器。运算器和控制器中的寄存器是专用寄存器,其作用是固定的。通用寄存器的用途广泛,可由程序员来规定其用途,其数目因处理器不同有所差异。
-
运算器
-
多核CPU
核心由又称为内核,是CPU是最主要的组成部分。CPU所有的计算、计算/存储命令、处理数据都由内核来完成。各种CPU内核都具有固定的逻辑结构,一级缓存、二级缓存、执行单元、指令级单元和总线接口等逻辑单元都会有不同的布局。
以双核CPU为例,AMD和Intel的双核技术在物理结构上有很大的不同。AMD将两个内核做在一个CPU芯片上,通过直接架构连接起来,集成度更高;Intel则是将两个CPU芯片封装在一起。因此,有人将Intel的方案称为“双芯”,将AMD的方案称为“双核”。
1.1.3 数据表示
各种数据在计算机中表示的形式称为机器数,机器数的特点是采用二进制,即数据用0和1表示,小数点隐含(不占位置)。机器数对应的实际数值称为数的真值。
1.1.4 效验码
计算机系统在运行时,各部件之间要进行数据交换,为了提高数据在传送过程中的正确性,一个方法是提高硬件电路的可靠性,另一个方法是采用校验码对数据的正确性进行检查甚至纠正。
常用的三种校验码:
(1)奇偶校验码常用的有水平奇偶校验码、垂直奇偶校验码和水平垂直校验码。
(2)海明码是由贝尔实验室的Richard Hamming设计的,它是利用奇偶性来检错和纠错的校验方法。
(3)循环冗余校验码广泛用于数据通信领域和磁介质存储系统中。
-
奇偶校验码
奇偶校验码(Parity Code)是一个简单的校验方法。这种方法通过在数据编码中增加一位校验位,使编码中1的个数为奇数(奇校验)或偶数(偶校验)。奇校验只能发现奇数个错误为;偶校验只能发现偶数个错误位;奇偶校验只能查错不能纠错。 -
海明码
海明码(Hamming Code)是利用奇偶性来差错和纠错的校验方法。 -
循环冗余校验码
循环冗余校验码(Cyclic Redundancy Check,CRC)由两部分组成,左边为信息码(数据),右边为校验码。