1 计算机系统基础知识

1.1 计算机系统硬件基本组成

计算机系统是有硬件和软件组成的。计算机的基本硬件系统由运算器控制器存储器输入设备输出设备5大部件组成。运算器控制器等部件被集成在一起称为中央处理单元,简称CPU

部件 作用
CPU 用于数据的加工处理,能完成各种算术、逻辑运算及控制功能。
存储器 计算机系统中的记忆设备,分为内部存储器和外部存储器。前者速度高、容量小,一般用于临时存放程序、数据及中间结果。而后者容量大、速度慢,可以长期保存程序和数据。
输入输出设备 输入设备用于输入原始数据及各种命令,而输出设备则用于输出计算机运行的结果。

1.2 中央处理单元

CPU是计算机系统的核心部件,负责获取程序指令对指令进行译码并加以执行

1.2.1 CPU的功能

  1. 程序控制。CPU通过执行指令来控制程序的执行顺序,这是CPU的重要功能。
  2. 操作控制。一条指令功能的实现需要若干操作信号配合来完成,CPU产生每条指令的操作信号并将操作信号送往对应的部件,控制相应的部件按指令的功能要求进行操作。
  3. 时间控制。CPU对各种操作进行时间上的控制,即指令执行过程中操作信号的出现时间、持续时间及出现的时间顺序都需要进行严格控制。
  4. 数据处理。CPU通过对数据进行算术运算及逻辑运算等方式进行加工处理,数据加工处理的结果被人们所利用。

1.2.2 CPU的组成

CPU主要有运算器控制器寄存器组内部总线等部件组成。

1.2.2.1 运算器

运算器由算数逻辑单元累加寄存器数据缓冲寄存器状态条件寄存器等组成,它是数据加工处理部件,用于完成计算机的各种算术和逻辑运算。相对控制器而言,运算器接受控制器的命令而进行动作,即运算器所进行的全部操作都是由控制器发出的控制信号来指挥的,所以它是执行部件
主要功能:

  • 执行所有的算术运算,例如加、减、乘、除等基本运算及附加运算。
  • 执行所有的逻辑运算并进行逻辑测试,例如与活、非、零值测试或两个值的比较等。
名称 缩写 功能
算数逻辑单元 ALU 运算器的重要组成部件,负责处理数据,实现对数据的算数运算和逻辑运算
累加寄存器 AC 它是一个通用寄存器,其功能是当ALU执行算术或逻辑运算时,为ALU提供一个工作区。运算结果是放在AC中的,运算器至少需要有一个累加寄存器
数据缓冲寄存器 DR 作为CPU和内存、外部设备之间数据传送的中转站;作为CPU和内存、外围设备之间在操作速度上的缓冲;在单累加器结构的运算器中,数据缓冲寄存器还可兼作为操作数寄存器。
状态条件寄存器 PSW 保存由算术指令和逻辑指令运行或测试的结果建立的各种条件码内容,主要分为状态标志和控制标志,例如运算结果进位标志(C)运算结果溢出标志(V)运算结果为0标志(Z)运算结果为负标志(N)中断标志(I)方向标志(D)单步标志等。这些标志通常分别由1位触发器保存,保存了当前指令执行完成之后的状态。通常,一个算术操作产生一个运算结果,而一个逻辑操作产生一个判决

1.2.2.2 控制器

运算器只能完成运算,而控制器用于控制整个CPU的工作,它决定了计算机运行过程的自动化。它不仅要保证程序的正确执行,而且要能够处理异常事件。控制器一般包括指令控制逻辑时序控制逻辑总线控制逻辑中断控制逻辑等几个部分。
指令控制逻辑要完成取指令分析指令执行指令的操作,其过程分为取指令指令译码指令操作码执行形成下一条指令地址等步骤。

名称 缩写 功能
指令寄存器 IR 当CPU执行一条指令时,先把它从内存储器取到缓冲寄存器中,再送入IR暂存,指令译码器根据IR的内容产生各种微操作指令,控制其他的组成部件工作,完成所需的功能。
程序计数器 PC PC具有寄存信息和计数两种功能,又称为指令计数器。程序的执行分为两种情况,一是顺序执行,二是转移执行。在程序开始执行前,将程序的起始地址送入PC,该地址在程序加载到内存时确定,因此PC的内容即是程序第一条指令的地址。执行指令时,CPU自动修改PC的内容,以便使其保持的总是将要执行的下一条指令的地址。由于大多数指令都是按顺序来执行的,所以修改的过程通常只是简单的对PC加1。当遇到转移指令时,后继指令的地址根据当前指令的地址加上一个向前或向后转移的位移量得到,或者根据转移指令给出的直接转移的地址得到。
地址寄存器 AR AR保存当前CPU所访问的内存单元的地址。由于内存和CPU存在着操作速度上的差异,所以需要使用AR保持地址信息,直到内存的读写操作完成为止。
指令译码器 ID 指令包含操作码地址码两部分,为了能执行任何给定的指令,必须对操作码进行分析,以便识别所完成的操作。指令译码器就是对指令中的操作码字段进行分析解释,识别该指令规定的操作,向操作控制器发出具体的控制信号,控制各部件工作,完成所需的功能。

时序控制逻辑要为每条指令按时间顺序提供应有的控制信号。总线逻辑是为多个功能部件服务的信息通路的控制电路。中断控制逻辑用于控制各种中断请求,并根据优先级的高低对中断请求进行排队,逐个交给CPU处理。

1.2.2.3 寄存器组

寄存器组可分为专用寄存器通用寄存器运算器和控制器中的寄存器就是专用寄存器,其作用是固定的。通用寄存器用途广泛并可由程序员规定其用途,其数目因处理器不同有所差异。

1.2.3 多核CPU

核心又称为内核,是CPU最重要的组成部分。CPU所有的计算接收/存储命令处理数据都由核心执行。各种CPU核心都具有固定的逻辑结构一级缓存二级缓存执行单元指令级单元总线接口等逻辑单元都会有合理的布局。
多核即在一个单芯片上面集成两个甚至更多个处理器内核,其中,每个内核都有自己的逻辑单元控制单元中断处理器运算单元一级缓存二级缓存共享或独有,其部件的完整性和单核处理器内核相比完全一致。
多核CPU系统最大的优点是可满足用户同时进行多任务处理的要求
单核多线程CPU是交替地转换执行多个任务,只不过交替转换的时间很短,用户一般感觉不出来。如果同时执行的任务太多,就会感觉到“慢”或者“卡”。而多核在理论上则是在任何时间内每个核执行各自的任务,不存在交替问题。因此,单核多线程和多核虽然都可以执行多任务,但多核的速度更快。
要发挥CPU的多核性能,就需要操作系统能及时、合理的给各个核分配任务和资源,也需要应用软件在运行时可以把并行的线程同时交付给多个核心分别处理
PS:

  • 多核每核一般也为多线程

1.3 数据表示

各种数值在计算机中表示的形式成为机器数,其特点是采用二进制计数制,数的符号用0和1表示,小数点则隐含,表示不占位置。机器数对应的实际数值成为数的真值
机器数有无符号数带符号数之分。无符号数表示正数,在机器数中没有符号位。对于无符号数,若约定小数点的位置在机器数的最高位之前,则是纯小数。对于带符号数,机器数的最高位是表示正、负的符号位,其余位则表示数值。
为了便于运算,带符号的机器数可采用原码反码补码移码等不同的编码方法,机器数的这些编码方法称为码制

1.3.1 原码、反码、补码和移码

1.3.1.1 原码

原码表示法。数值X的原码记为[X],假设机器字长为n。

类型 表示 范围
纯整数 X 0≤X≤2n-1-1
纯整数 2n-1+ X||-(2n-1-1)≤X≤0
纯小数 X 0≤X<1
纯小数 20+ X||-1<X≤0

例如:
假设机器字长n等于8

真值 原码 真值 原码
+1 0 0000001 -1 1 0000001
+45 0 0101101 -45 1 0101101
+127 0 1111111 -127 1 1111111
+0.5 0 .1000000 -0.5 1 .1000000

1.3.1.2 反码

反码表示法。数值X的反码记为[X],假设机器字长为n。

类型 表示 范围
纯整数 X 0≤X≤2n-1-1
纯整数 2n-1+X -(2n-1-1)≤X≤0
纯小数 X 0≤X<1
纯小数 2-2-(n-1)+X -1<X≤0

例如:
假设机器字长n等于8

真值 反码 真值 反码
+1 0 0000001 -1 1 1111110
+45 0 0101101 -45 1 1010010
+127 0 1111111 -127 1 0000000
+0.5 0 .1000000 -0.5 1 .0111111

正数的反码和原码相同,负数的反码是除符号位外按位取反

1.3.1.3 补码

补码表示法。数值X的补码记为[X],假设机器字长为n。

类型 表示 范围
纯整数 X 0≤X≤2n-1-1
纯整数 2n+X -2n-1≤X≤0
纯小数 X 0≤X<1
纯小数 2+X -1≤X<0

例如:
假设机器字长n等于8

真值 补码 真值 补码
+1 0 0000001 -1 1 1111111
+45 0 0101101 -45 1 1010011
+127 0 1111111 -127 1 0000001
+0.5 0 .1000000 -0.5 1 .1000000

正数的补码和原码相同,负数的补码是反码的末位加1

1.3.1.4 移码

移码表示法。移码表示法是在数X上增加一个偏移量来定义,常用于表示浮点数中的阶码。如果机器字长为n,规定偏移量为2n-2

类型 表示 范围
纯整数 2n-2+X -2n-1≤X<2n-1
纯小数 1+X -1≤X<1

例如:
假设机器字长n等于8

真值 移码 真值 移码
+1 1 0000001 -1 0 1111111
+45 1 0101101 -45 0 1010011
+127 1 1111111 -127 0 0000001

在偏移量为2n-1的情况下,补码的符号位取反即为移码

1.3.2 定点数和浮点数

1.3.2.1 定点数

定点数。定点数就是小数点的位置固定不变的数。小数点的位置通常有两种约定方式:

类型 约定方式
定点整数(纯整数) 小数点在最低有效数值位之后
定点小数(纯小数) 小数点在最高有效数值位之前

设机器字长为n,各种码制下带浮点数的范围如下:

码制 定点整数 定点小数
原码 -(2n-1-1)~(2n-1-1) -(1-2-(n-1))~+(1-2-(n-1))
反码 -(2n-1-1)~(2n-1-1) -(1-2-(n-1))~+(1-2-(n-1))
补码 -2n-1~(2n-1-1) -1~+(1-2-(n-1))
移码 -2n-1~(2n-1-1) -1~+(1-2-(n-1))

1.3.2.2 浮点数

当机器字长为n时,定点数的补码和移码可表示2n个数,而其原码和反码只能表示2n-1个数(0的表示占用了两个编码),因此,定点数所能表示的数值范围比较小,在运算中很容易因结果超出范围而溢出。浮点数是小数点位置不固定的数,它能表示更大范围的数。
在十进制中,一个数可以写成多种表示形式。例如,83.125可写成103×0.083125或104×0.0083125等。同样,一个二进制数也可以写成多种表示形式。例如,二进制数1011.10101可以写成24×0.101110101、25×0.0101110101等。由此可知,一个二进制数N可以表示为更一般的形式N=2E×F,其中E称为阶码,F称为尾数。用阶码和尾数表示的数称为浮点数,这种表示数的方法称为浮点表示法
在浮点表示法中,阶码为带符号的纯整数,尾数为带符号的纯小数。浮点数的表示格式如下:

一个数的浮点表示不是唯一的。当小数点的位置发生改变时,阶码也随着相应改变,因此可以用多个浮点形式表示同一个数。
浮点数所能表示的数值范围主要由阶码决定,所表示数值的精度则由尾数决定。为了充分利用尾数来表示更多的有效数字,通常采用规格化浮点数。规格化就是将尾数的绝对值限定在区间[0.5,1]。
如果浮点数的阶码(包括1位阶符)用R位的移码表示,尾数(包括1位数符)用M位的补码表示,则这种浮点数所能表示的数值范围如下:
最大正数:+(1-2-M+1)×2(2R-1-1)
最小负数:-1×2(2R-1-1)

1.3.2.3 工业标准IEEE 754

IEEE 754是由IEEE制定的有关浮点数的工业标准,被广泛采用。该标准的表示形式如下:
(-1)S2E(b0b1b1b2···bp-1)

目前计算机主要使用如下3种形式的IEEE 754浮点数。

参数 单精度浮点数 双精度浮点数 扩充精度浮点数
浮点数字长 32 64 80
尾数长度P 23 52 64
符号位S 1 1 1
指数长度E 8 11 15
最大指数 +127 +1023 +16 383
最小指数 -126 -1022 -16 382
指数偏移量 +127 +1023 +16 383
可表示的实数范围 10-38~1038 10-308~10308 10-4932~104932

根据IEEE 754标准,被编码的值分为3种不同的情况:规格化的值、非规格化的值和特殊的值,规格化的值为最普遍的情形。
1. 规格化的值
当阶码部分的二进制不全为0也不全为1时,所表示的是规格化的值。
例如:在单精度浮点格式下,阶码为 10110011 时,偏移量为+127(01111111),则其表示的真值为10110011-01111111=00110100,转换为十进制后为52。

1.4 校验码

2 计算机体系结构

2.1 计算机体系结构的发展

2.2 存储系统

2.3 输入/输出技术

2.4 总线结构

3 安全性、可靠性与系统性能评测

3.1 计算机安全概述

3.2 加密技术和认证技术

3.3 计算机可靠性

3.4 计算机系统的性能评价

说点什么
禁止广告!
好耶,沙发还空着ヾ(≧▽≦*)o
Loading...