(一)数据的表示
不同进制之间的转换
R 进制转十进制使用按权展开法,其具体操作方式为:将 R 进制数的每一位数值用 Rk 形式表示,即幂的底数是 R ,指数为 k ,k 与该位和小数点之间的距离有关。当该位位于小数点左边,k 值是该位和小数点之间数码的个数,而当该位位于小数点右边,k 值是负值,其绝对值是该位和小数点之间数码的个数加 1 。
-
例如二进制数 10100.01=1x24+0x23+1x22+0x21+0x20+0x2-1+1x2-2=1x24+1x22+1x2-2=20.25
-
例如七进制数 604.01=6x72+0x71+4x70+0x7-1+1x7-2=6x72+4x70+1x7-2=298.0204081632653
数值之间的转换。
(二)计算机结构
计算机结构中的主机主要包括:CPU、主存储器。 CPU 主要由运算器、控制器两部分组成。
-
运算器:主要负责运算功能,如加减法。
-
算术逻辑单元 ALU(Arithmetic and Logic Unit):能实现多组算术运算和逻辑运算的组合逻辑电路;是 CPU 的执行单元,跟运算有关。
-
累加寄存器 AC:储存运算过程中的一些值,加减法都会用到。
-
数据缓冲寄存器 DR:对内存储器进行读写操作时,用来暂存数据。
-
状态条件寄存器 PSW(常考):存储运算过程中的标志位,保存运算的进位、溢出、中断等状态信息。
-
-
控制器:控制整个 CPU 的交互功能。
-
程序计数器 PC:确定下一个待执行的指令的地址。
-
指令寄存器 IR:。
-
指令译码器:。
-
时序部件:。
-
(三)计算机体系结构分类 - Flynn
Flynn 分类法是一种计算机体系结构分类法,分类依据有两个指标:指令流、数据流,两者都有单、双之分,即单指令流、多指令流、单数据流、多数据流。
(四)CISC 与 RISC
CISC 与 RISC 是两种不同的指令系统,考试中主要出现在选择题中,考察两者的区别,记住图片中的区别即可。
-
CISC 是以前在计算机还没有大规模使用的情况下提出来的指令系统,数量较多,通用性较差。
-
RISC 去掉了复杂的指令,增强了通用性,是目前使用比较广泛的指令集。增加的硬布线逻辑控制可以提高效率。
(五)流水线
考试中主要考察计算的问题。
概念
流水线是指在程序执行时多条指令重叠进行操作的一种准并行处理实现技术。各种部件同时处理是针对不同指令而言的,它们可同时为多条指令的不同部分进行工作,以提高各部件的利用率和指令的平均执行速度。
上图中的取指、分析、执行是由三个不同的部件完成,所以在未使用流水线执行指令的情况下,有大量部件在大量时间是处于空闲状态。比如指令 1 在取指完成后,直到指令 2 的取值前,取指部件都处于空闲状态,分析部件、执行部件也是类似的情况。
流水线的工作就是将这些部件完全利用起来。如指令 1 取指完成后进入分析环节,同时取指部件开始对指令 2 进行取指,以此类推,就可以将部件完全利用起来。流水线广泛应用于工厂生产线中,很大程度的提高了生辰效率。
流水线计算
这部分是考试的重点。
在流水线的执行过程中,会分成三个段:取指段、分析段、执行段,而流水线周期则为这三个中执行时间最长的一段所花费的时间。
流水线计算公式分为理论公式和实践公式,理论公式是完整的计算第一条指令执行完所需要的时间,而实践公式在计算第一条指令的执行时间时,将每一段的执行时间都按周期计算,其它的则相同。
在考试中,流水线的计算是作为选择题出现的,其答案有百分之八十的情况是用理论公式计算,百分之二十的情况是用实践公式计算。如果选项中有用理论公式计算出来的答案,就选该答案。否则,就选实践公式计算出来的答案。
吞吐率计算
流水线的吞吐率:单位时间内处理任务的数量或输出结果的数量。
在上题中,指令条数为 100 条,流水线执行时间为 203ns,则流水线的吞吐率为:100/203=0.493 。
加速比计算
流水线的加速比:完成同一批任务,不适用流水线所用的时间与使用流水线所用的时间的比值。
在上面的例题中,不适用流水线所用的时间为(2+2+1)x100=500ns,使用流水线所用的时间为 203ns,则流水线的加速比为:500ns/203ns=2.463 。加速比越高,说明使用流水线产生的效果越好。所以对于流水线来讲,加速比越高越好。
效率计算
流水线的效率:在时空图中,流水线利用起来的时间片与整个时间片的比值。流水线的效率是为了设计出效率更高的流水线,那么什么样的流水线效率最高呢?是每一个工作段的时间都接近或相等的流水线的效率最高。
(六)层次化存储结构
在整个层次化存储结构中,速度最快效率最高的是 CPU 中的寄存器。CPU 中有运算器、控制器,这两者中都有寄存器。寄存器的容量是非常小的,但是速度是非常快的。寄存器在整个存储结构中,是属于最顶层的。
在整个存储结构中,速度最快的往往容量最小,速度最慢的往往容量最大,这是基于性价比设计的。
Cache
Cache 是高速缓存存储器,在存储结构中,Cache 不是必需的,可以省略掉,因为 CPU 可以直接与内存进行数据交换。但是缺少 Cache 会导致 CPU 与内存之间的数据交换非常慢,比加上 Cache 大概慢了数百倍。Cache 是按内容存储的,即将相同的内容存储在一块区域中,读取的时候也是按内容来取。按内容存取的存储器又叫相联存储器,它是一种不根据地址而是根据存储内容来进行存取的存储器,可以实现快速地查找快表。相联存储器的速度和效率远高于按地址存取的存储器。
寄存器的容量极小,又存在于 CPU 中,所以并不把寄存器当作存储器来看待。所以在计算机的存储系统体系中,Cache 是访问速度最快的层次。在考试中,如果要选择速度最快的存储器,如果答案中有寄存器和 Cache 就选寄存器,如果没有寄存器但有 Cache 就选 Cache。
如果 CPU 需要访问的数据在 Cache 中直接能找到,则说明对 Cache 的访问命中;如果不能在 Cache 中找到,则 CPU 会去内存(主存储器)中读取需要的数据,此时没有命中 Cache。对 Cache 的访问命中率:CPU 读取 Cache 的时候能够获取到需要的数据的概率。
局部性原理
局部性原理是指CPU访问存储器时,无论是存取指令还是存取数据,所访问的存储单元都趋于聚集在一个较小的连续区域中。
2.1 时间局部性
时间局部性:如果程序中的某条指令一旦执行,不久以后该指令可能再次执行;如果某数据被访问过,不久以后该数据可能再次被访问。产生时间局部性的典型原因:是由于在程序中存在着大量的循环操作。
被引用过一次的存储器位置在未来会被多次引用(通常在循环中)。
比如在执行 for 循环时,就会反复执行循环体中的语句,此时 CPU 就会在某一时段内集中访问循环体中变量所在的存储单元。
2.2 空间局部性
空间局部性:一旦程序访问了某个存储单元,在不久之后,其附近的存储单元也将被访问,即程序在一段时间内所访问的地址,可能集中在一定的范围之内,这是因为指令通常是顺序存放、顺序执行的,数据也一般是以向量、数组表等形式簇聚存储的。
如果一个存储器的位置被引用,那么将来它附近的位置也会被引用。
比如对数组的处理,通常就涉及到空间局部性。
主存
3.1 主存的分类
主存可分为随机存取存储器(RAM,Random Access Memory)、只读存储器(ROM,Read-Only Memory)。
3.2 主存的编址
所谓主存的编址,实际上就是将存储芯片(颗粒)组成相应的主存器。在用芯片组成存储器的时候,要分析什么样规格的芯片、多少块芯片能够组成按什么样方式编址的存储空间。如下图中的 8*4 的存储器表示:该存储器有 8 个地址空间,每个地址空间可以存储 4bit 位的数据。
这部分内容考察的概率比较大。
磁盘结构与参数
机械硬盘在存取数据时,磁盘是匀速运动的。磁盘的平均存取时间与平均寻道时间、数据传输速率、平均旋转时间(磁盘转速)等都有关系。平均寻道时间、数据传输速率与磁盘转速无关。磁盘转速的提高,会缩短平均旋转等待时间。
(1)试题的第一个答案为 366ms。若系统使用单缓冲区顺序处理这些记录,即单缓存区每次只能处理一个逻辑记录。分析后发现需要分为前 10 条记录、最后一条记录两个部分来计算。题干中说明磁盘的旋转周期为 33ms,即转一圈的时间为 33ms,总共有 11 条记录,则每条记录的读取时间为 33ms/11=3ms。
**处理前 10 条记录:**当读取完 R0 时(耗时 3ms),将 R0 存储到单缓冲区中进行处理(耗时 3ms),由于磁头是匀速运动,当处理完 R0 时磁头已经到达 R2 的开始处,所以只能等到磁头重新到达 R1 的开始处时,才能读取完 R1 后再将 R1 存储到单缓存区中进行处理,以此类推直到处理完 R9 都是这样的模式。所以,处理完一条记录,并将磁头移到下一条待处理的记录开始处,所花费的时间是:磁头转一圈的时间(33ms)+一条记录的处理时间(3ms)=36ms,这样的处理方式总共需要 10 次,所以这部分的处理时间:36ms x 10 = 360 ms。这里可以这样理解:磁头刚开始在 R0 的开始处,转一圈后回到 R0 的开始处,此时需要 33ms,处理 R0 的时间为 3ms,在处理 R0 的过程中,磁头继续匀速转动,当处理完 R0 时,磁头正好到达 R1 的开始处,接下来以同样的模式开始处理 R1,直到处理完 R9 都是这样的模式。
**处理最后一条记录:**最后一条记录为 R10,读取耗时 3ms,处理耗时 3ms,总共耗时 6ms。由于接下来无需处理下一条记录,所以整个处理过程完毕。
(2)试题的第二个答案为 66ms。优化信息存储以获得最少的处理时间,其思路为:读取并处理完 R0 后,磁头正好到达 R1 的开始处,这种存储方式是处理最快的。此时,读取处理每一条记录的时间为:3ms(读取)+3ms(处理)=6ms,总共 11 条记录,则整个处理时间为:6ms x 11=66ms。
(七)总线
总线(Bus)是计算机各种功能部件之间传送信息的公共通信干线,它是由导线组成的传输线束。按照计算机所传输的信息种类,计算机的总线可以划分为数据总线、地址总线和控制总线,分别用来传输数据、数据地址和控制信号。总线是一种内部结构,它是cpu、内存、输入、输出设备传递信息的公用通道,主机的各个部件通过总线相连接,外部设备通过相应的接口电路再与总线相连接,从而形成了计算机硬件系统。在计算机系统中,各个部件之间传送信息的公共通路叫总线,微型计算机是以总线结构来连接各个功能部件的。
按照总线所处的位置不同,总线通常被分成三种类型:
-
内部总线:微机中各外围芯片与 CPU 之间的总线,属于芯片层级的总线。
-
系统总线(内部总线):微机中各插线板与系统板之间的总线,属于插线板层级的总线。比如 PCI、VGA 等接口。PCI 是并行内总线(2021 年上半年上午题)。
-
数据总线(DB,Data Bus):用于传输数据的总线,将数据从一个设备传输到另一个设备。数据总线是双向的,它有助于发送和接收数据。如果计算机系统是 32 位,就表示该系统的一个字节就表示 32bit 位,说明数据总线的宽度就是 32bit 位,一次或者一个周期能够传输的数据量就是 32bit 位。
-
地址总线(AB,Address Bus):一种微处理器用于传输内存物理地址的计算机总线。它是单向的,只能在一个方向传输数据的 I/O 和数据的内存地址。假设地址总线是 32 位,则表示其代表的地址空间是 232(相当于 4G 的宽度)。所以,32 位的操作系统,能管理的最大内存为 4G。
-
控制总线(CB,Control Bus):主要用来传送控制信号和时序信号。控制总线的传送方向由具体控制信号而定,一般是双向的,控制总线的位数要根据系统的实际控制需要而定。实际上控制总线的具体情况主要取决于CPU。
-
-
外部总线:微机与外部设备之间的总线。SCSI(小型计算机系统接口)是一条并行外总线(2021 年上半年上午题)。
(八)系统可靠性分析与设计
1 串联系统与并联系统
主要是计算方面的问题。串联系统是将多个子系统串联在一起,并联系统是将多个子系统并联在一起。
- 串联系统
-
串联系统的特点:上图中的串联系统由R1、R2、…、Rn这些子系统组成,当这些子系统都能正常运行时,该串联系统才能正常运行;否则只要有其中一个子系统不能正常运行,则整个串联系统就无法正常运行。
-
串联系统的可靠度计算:将每个子系统的可靠度相乘,因为所有子系统可靠,整个串联系统才能可靠。
-
串联系统的失效率计算:将每个子系统的失效率相加,由于是近似计算,所以有时候计算结果并不是很精确。比如整个串联系统由 20 个子系统组成,每个子系统的可靠度是 0.9,则每个子系统的失效率是 0.1,则整个串联系统的失效率为 0.1 x 20=2,这显然是不正确的。所以,只有在失效率很小的时候,才能使用下面的计算公式。
- 并联系统
-
并联系统的特点:只要有一个子系统能正常运行,则整个并联系统就可以正常运行;当所有的子系统同时失效时,整个并联系统才会失效。
-
并联系统的可靠度:先算出所有子系统同时失效的概率 A,然后即可得出 1-A 就是整个并联系统的可靠度。例如,并联系统由三个子系统组成,每个子系统的可靠度为 0.9,则每个子系统的失效率为 0.1,所以该并联系统的可靠度为:1 - 0.1 x 0.1 x 0.1 = 1- 0.13=0.999。
-
并联系统的失效率:下图中计算并联系统失效率的公式过于复杂,不建议使用。一般是先求出可靠度 A,然后就可以得出失效率为 1-A。
2 N 模冗余系统与混合系统
- N 模冗余系统
可以使用冗余的方式来提高系统的可靠性。在 N 模冗余系统中,是通过表决的方式将错误屏蔽掉。
- 混合系统
混合系统中同时存在串联系统、并联系统。
混合系统的可靠度计算:先从整体上看系统是串联系统还是并联系统,如果从整体上看是串联系统,则先计算并联系统的可靠度,然后再计算整个串联系统的可靠度;如果从整体上看是并联系统,则先计算串联系统的可靠度,再计算并联系统的可靠度。
(九)差错控制
1 概念
差错控制主要讲校验码。下图中:
-
采用 1 位长度的编码,是无法检错的。
-
采用 2 位长度的编码,是可以检错的,但是无法纠错。比如,要传输的 A=11,由于链路错误,导致接收的 10,此时无法根据接收的 10 来判断到底传输的是 A 还是 B。因为 11、00 都可以因为传错 1 位变成 10。所以要增加码距才能纠错。
-
采用 3 位长度的编码,是可以纠错的。传输链路还是比较可靠的,一般只会传错 1 位,不会传错 2 位或者更多位。
2 循环校验码 CRC
循环校验码 CRC 是一种可以做检错,但是无法做纠错的效验码。
3 海明校验码
海明校验码的难度较高,在考试中出现的概率较大。要学会如何编码、要能计算多少位的信息位需要多少个校验位。首先要清楚使用海明码编码完成的串中,哪些位置是校验位,哪些位置是信息位。
如果只有 1 个信息位,则最终编码的长度为 3 位。