嵌入式软考备考_1 计算机系统基础

嵌入式软考备考

一、计算机系统基础

4分左右。但是是解题的基础。

数的转换

进制转换不必多说。主要还是十进制,二进制,八进制,十六进制。

二进制算数运算

首先是 bit B KB MB GB,以及01加减乘除运算。

地址作差+1=380000H bit。换算为 KB 单位即可。

一定看清 Byte 和 bit!

数的表示

原码补码反码

原码:负数首位为1. 如-1: 1000 0001.

反码:负数除了符号位全部取反。如-1:1111 1110.

补码:负数反码+1。如-1: 1111 1111.

移码:补码的符号位取反。如1: 1000 0001,-1:0111 1111.

反码和补码用于实现减法运算。但是反码运算结果可能出现没有意义的-0. 补码则不会。

原码和反码表示范围都是 − 2 n − 1 − 1 -2^{n-1}-1 2n11 ~ 2 n − 1 − 1 2^{n-1}-1 2n11 , n-1 是因为有一位是符号位拿出来了。

补码和移码的表示范围是 − 2 n − 1 -2^{n-1} 2n1 ~ 2 n − 1 − 1 2^{n-1}-1 2n11 ,因为原码反码有-0,补码没有,比如 1000 0000 补码可以表示 -128.

移码通常用于表示浮点数的阶码。

补码转回原码也是先取反再+1.

定点数浮点数

定点数:小数点固定。

定点整数:123000.

定点小数:123.000

浮点数: N = R e ∗ M N=R^e*M N=ReM ,M 是尾数,R 是基数,e 是阶码。

存储结构包括:阶符,阶码,数符,尾数。

阶码计算:先对阶,计算完后调整尾数。

计算机组成

五大部分,运算器,控制器,存储器,输入设备,输出设备。

运算器下的寄存器

算术逻辑单元 ALU:数据的算术运算和逻辑运算。

累加寄存器 AC:通用寄存器,用于残存数据。

数据缓冲寄存器 DR:读写内存时,暂存指令或数据。

状态条件寄存器 PSW:存状态标志与控制标志。如溢出。

控制器下的寄存器

程序计数器 PC:存储下一条要执行的指令的地址。

指令寄存器 IR:存储即将执行的指令。

指令译码器 ID:分析解释指令。

时序部件:提供时序控制信号指令中的操作码字段。

例:一条计算机指令中包含操作码、地址码。这两部分存储在哪里?

答:都存储在 IR 中。虽然是地址,但是不是指令对应的地址,是指令要操作的数据对应的地址,是指令的一部分。

衡量计算机性能指标

CPU:

主频:越高,运行越快。

字长:能运算处理的数据。和 CPU 位数对应。

CPU 缓存:临时存储的数据。

核心数量:进程并发度。

总线:数据总线,控制总线,地址总线。

  • 带宽:单位时间能处理的数据。
  • 位宽:数据总线宽度。
  • 工作频率:若干次周期/s。带宽=位宽*工作频率。

image-20230329154756660

答案为C。

BIOS/CMOS:保存计算机的一些配置信息。BIOS 配置 RAM 里的 CMOS,是 ROM;CMOS 则存储了一些可修改的 BIOS 参数,比如开机日期设置,软件启动顺序,密码等。

系统性能评测方法:

时钟频率:类似主频。

指令执行速度:每秒多少条指令通常只用基本的加法指令去计算。

等效指令速度法:平均一定比例的各类指令后计算等效时间。

数据处理速率 PDR。

核心程序法,基准测试程序:用程序测试速度。

指令

由操作码、操作数地址码组成。

如四地址指令,可能形如:加法指令,加数1地址,加数2地址,answer 地址,下一条指令地址。

简化:下一条指令地址放到 pc 中。

再简化:把运算结果放到累加寄存器 ACC 中。

一地址指令:比如读取该地址中的数据。

零地址指令:如出栈入栈这类无参指令。

寻址方式

为了扩大寻址空间,提高编程灵活性,出现了许多种寻址方式。

立即寻址:操作数放在指令里。灵活性差。

直接寻址:指令中存放操作数的地址。

间接寻址:指令中放了一个指向操作数的地址的地址。

寄存器寻址方式:寄存器放操作数。

寄存器间接寻址方式:寄存器放操作数的地址。

流水线

image-20230329195711095

每条指令需要经过取指-分析-执行三个阶段。我们可以让不同的阶段重叠处理,准并行实现。

计算公式:一条指令执行时间+(指令条数-1)*流水线周期。流水线周期是取指、分析、执行中执行最长的时间。

流水线吞吐率:总花费时间的倒数。

流水线最大吞吐率:流水线周期的倒数。

例:取指2ns,分析2ns,执行1ns,流水线周期是?100条指令最短时间是?

答:2ns;(5ns)+(99)*(2ns)=203ns。

多级存储

image-20230329204307154

上面的小,快,但贵;下面的大,慢,便宜。可以说上面是下面的缓存。

cache:有一片存储空间,和相联存储表。cache 主要是对程序的时间空间局部性优化来加快访问速度。

平均系统访问周期:假设命中 cache 概率为h,cache 访存时间为t1,内存访存时间为t2,则平均周期为 ht1+(1-h)t2

cache 直接映像

image-20230330211138310

左边是 cache ,右边是主存。

主存中每一部分分为:主存区号,区内块号,块内地址。

主存缓存到 cache 中,必须缓存到块号相同的位置,比如第0区,第1区,第2区……的第1块都只能缓存到 cache 中的第1块。

我们判断是否命中,比如我们要找第3区第4块。我们就看看 cache 中第4块有没有缓存数据,如果有,主存区号是否是第3区。如果是则命中。

这种方式地址变换电路简单,访问速度快,但是容易冲突,命中率低,对页面置换算法要求较高,空间利用率低。

全相联地址映像和变换

主存中任何一块可以放到缓存中任何一个位置。空间利用率和命中率都高了,但是实现起来复杂,速度慢。适合小容量 cache。

组相联地址映像和变换

cache 分为若干个组,主存按 cache 组数分区。比如 cache 分了8组,每组2个单元,那么主存就分为若干个8组的区,每个区的第1组存到 cache 的第1组,第2组存到 cache 的第2组……

就是折中了直接映像和全相联地址映像,实现难度和命中率也在两者之间。

IO 控制

直接程序控制:包括无条件传送方式和程序查询方式。

无条件传送:CPU 一直在准备访问外部设备,需要访问时立刻就能访问。

程序查询方式:CPU 不断查询外部设备是否空闲,空闲了才能使用。比如要打印12345,CPU 先看打印机是否空闲,空闲就先打个1,过一段时间看打印完空闲了没有,没空闲就再等待,空闲了再打印2……

缺点在于 CPU 要一直等待 IO。

中断方式:打印机打印完了会发一个中断给 CPU,CPU 收到后知道可以调用打印机了。这样 CPU 就不用一直查询 IO 设备是否空闲了。

但是这种方式还是有点占用 CPU 的,因为打印数据还是 CPU 传给打印机。

直接存储器读取方式 DMA:要打印的时候,CPU 把数据发给直接存储器,然后不用一直陪着打印机打到结束了,去干别的事就可以。只在 IO 开始和结束时介入。

输入输出处理机 IOP:大型主机常用,通过通道的方式,了解即可。

可靠性和校验码

可靠性

掌握各种系统可靠度的计算公式。一般就是考混合系统。

image-20230331013311759

简单说就是串行是 * 可靠度,并行是 * 失效率。

校验码

码距:编码系统中两个合法编码的码字之间的最小距离。2位可检错。3位可纠错。

奇偶校验只能检错(检一位错),CRC 可以检多位错,海明码可以检错和纠正一位错。

奇偶校验码不必多说。

CRC:k个数据位后跟r个校验位来进行编码。了解概念即可。

海明码:数据位间插入 k 个校验位,要求 2 k − 1 ≥ n + k 2^k-1\ge n+k 2k1n+k

猜你喜欢

转载自blog.csdn.net/jtwqwq/article/details/129844108