软考中级:嵌入式系统设计师 – 第一部分

第一章 计算机系统基础知识

1、嵌入式定义是,以应用为中心、以计算机技术为基础、软硬件可裁剪,适用在对体积、功耗、性能等方面有严格要求的专用计算机系统。除了桌面计算机和服务器外,所有的控制类设备都属于嵌入式系统。
2、基本的计算机硬件系统由运算器、控制器、存储器、输入设备和输出设备5大部件组成。中央处理单元(CPU)由运算器和控制器及其相关部件集成。运算器主要完成算数和逻辑运算。控制器主要完成从主存中取出指令并分析以控制计算机各个部件有条不紊地完成指令。存储器分为内部存储器(内存、主存)和外部存储器(外存、辅存)。内存速度快、容量小,一般用于临时存储计算机运行时所需的程序、数据及运算结果。外存速度慢、容量大,用于长期保存信息。寄存器是CPU中的存储器件,用来临时存放少量的数据、运算结果和正在执行的指令。与内存相比,寄存器的速度要快。主机由CPU和主存集成。
3、计算机软件是指为管理、运行、维护、及应用计算机系统所开发的程序和相关文档的集合。软件分为系统软件、中间件、应用软件等类型。系统软件的主要功能是管理系统的硬件和软件资源;应用软件是用于解决应用领域的具体问题;中间件是一类独立的系统软件或服务程序,常用于管理计算资源和网络通信,提供通信处理、数据存取、事务处理、Web服务、安全、跨平台等服务。
4、十进制和二进制互转

例如十进制数175.71875转换为二进制数。计算步骤分两步。

第一步只看整数位,175/2=87..1 87/2=43..1 43/2=21..1 21/2=10..1 10/2=5..0 5/2=2..1 2/2=1..0 1/2=0..1 二进制采取余数表示,并且顺序是反着的,为10101111。

第二部只看小数位,0.71875*2=1.4375 0.4375*2=0.875 0.875*2=1.75 0.75*2=1.5 0.5*2=1 二进制采取整数表示,并且顺序是正着的,为10111。

即十进制数175.71875转换为二进制数为10101111.10111。

二进制转换为十进制如下:

10101111.10111=2^7+2^5+2^3+2^2+2^1+2^0+2^-1+2^-3+2^-4+2^-5=175.71875

八进制和十进制互换也类似。

5、八进制和二进制互转、十六进制和二进制互转

3个二进制位组成1个八进制位,4个二进制位组成1个十六进制位。

例如将二进制数10101111.10111转换为八进制和十六进制。

10101111.10111 = 010 101 111 . 101 110 = 257.56

10101111.10111 = 1010 1111 . 1011 1000 = AF.B8

6、原码、反码、补码和移码

如果机器字长为n,则最高位是符号位,0正1负。其余的n-1位表示数值的绝对值。

正数的原码和反码、补码相同。

负数的反码是,除符号位外,n-1位取反。以原码作为参照。

负数的补码是,除符号位外,原码加1。正负零的补码相同。当符号位为1而数值位全为0时,表示整数-2^(n-1),即符号位的1既表示负数也表示数值。

正数、负数的移码是,将补码的符号位取反。移码常用来表示浮点数中的阶码。

7、定点数:表示数据时小数点的位置固定不变。

定点整数:纯整数,小数点在最低有效数值位之后。

定点小数:纯小数,小数点在最高有效数值位之前。

8、浮点数:表示数据时小数点位置不固定。

一个含小数点的二进制数N可以表示:N= 2^E * F,E为阶码,F为尾数。阶码通常表示带符号的纯整数。尾数表示带符号的纯小数。

浮点数的数值范围由阶码决定,数值精度由尾数决定。

为了提高数据精度,当尾数的值不为0时,规定尾数域的最高有效位应为1。否则需要修改阶码左移或右移小数点的位置,使其变为规格化的形式。

有关浮点数的工业标准IEEE 754,格式为S P M。S为符号位,0正1负。P为指数(阶码),移码表示。M为尾数,原码表示。

如果P全0,M全0,则数值为正负零;P全1,M全0,则数值为正负无穷大;P全1,M不是0,则数值不是一个数(NaN)。

9、校验码

码距:指一个编码系统中任意两个合法编码之间至少有多少个二进制位不同。简述就是两个码组对应位上数字不同的个数。例如00110和00100码距为1,12345和13344码距为2,Caus和Daun码距为2。

奇偶校验码:在编码中增加一个校验位来使编码中1的个数为奇数(奇校验)或偶数(偶校验),从而使码距变为2。

对于奇偶校验,它可以检测代码中奇数位出错的编码,但不能发现偶数位出错的情况。

海明码:在数据位之间的特定位置插入k个校验位,通过扩大码距来实现检错和纠错。

海明码需满足关系:2^k>=n+k+1,n代表数据位,k代表校验位。

循环冗余校验码(CRC编码-可以检错但不能纠错):利用生成多项式为k个数据为产生r个校验位来进行编码,其编码长度为k+r。广泛应用于数据通信领域和磁介质存储系统中。

原始报文为“11001010101”,其生成多项式为“x4+x3+x+1”。对其进行CRC编码后的结果为110010101010011。 //补的是多项式中最高次方的零个数。

10、算术运算

二进制的加减

[X+Y]补=[X]补+[Y]补

[X-Y]补=[X]补+[-Y]补

[X]补 取反(包括符号位)+1=[-X]补

例如:设二进制数X=+110110,Y=-110011,求X+Y、X-Y。

[X]补=0011 0110 [Y]补=1100 1101 [-Y]补=0011 0011

X+Y=[X+Y]补=[X]补+[Y]补=0000 0011

X-Y=[X-Y]补=[X]补+[-Y]补=0110 1001

溢出及判定

只有当相同符号数相加或相异符号数相减时,运算结果才有可能溢出。

常用的溢出检测机制:双符号位判决法、进位判决法等

双符号位判决法:00-正、11-负、01或10-溢出

进位判决法:符号位⊕数值位最高位=1时溢出

浮点运算

浮点加减运算

例如:设有浮点数X=M*2^i,Y=N*2^j,求X±Y。

先对阶。另K=|i-j|,把阶码小的尾数右移K位,使其阶码加上K。

后续操作忽略。

浮点乘除运算

浮点数相乘,其积的阶码=两乘数的阶码相加,积的尾数=两乘数的尾数相乘。

浮点数相除,其商的阶码=被除数的阶码-除数的阶码,商的尾数=被除数的尾数/除数的尾数。

11、逻辑运算:与、或、非和异或

⊕为异或,A⊕B=(~A)B+A(~B)

12、中央处理单元(CPU)

CPU主要由运算器、控制器、寄存器组和内部总线组成。

运算器:算术逻辑单元(ALU)、累加寄存器(AC)、数据缓冲寄存器(DR)和状态条件寄存器(PSW)等组成。完成计算机的各种算术运算和逻辑运算。

算术逻辑单元(ALU):实现数据的算术运算和逻辑运算。

累加寄存器(AC):是一个通用寄存器,功能是当运算器的ALU执行算术运算和逻辑运算时,为ALU提供一个工作区。例如,在执行减法运算前,先从内存储器中取出被减数暂存在AC中,再从内存储器中取出减数,然后和AC的内容相减,将结果送回AC。运算结果是放在累加器中的,运算器中至少要有一个累加器。

数据缓冲寄存器(DR):在对内存储器进行读/写操作时,用DR暂时存放由内存储器读/写的一条指令或一个数据字,将不同时间段内读/写的数据隔离开来。功能:作为CPU和内存、外围设备之间数据传送的中转站;作为CPU和内存、外围设备之间在操作速度上的缓冲;在单累加器结构中,数据缓冲寄存器还可兼作为操作数寄存器。

状态条件寄存器(PSW):PSW保存由算术指令和逻辑指令运行或测试的结果建立的各种条件码内容,主要分为状态标志和控制标志。例如运算结果进位标志(C)、运算结果溢出标志(V)、运算结果为0标志(Z)、运算结果为负标志(N)、中断标志(I)、方向标志(D)和单步标志等。这些标志通常分别由1位触发器保存,保存了当前指令执行完成之后的状态。通常,一个算术操作产生一个运算结果,而一个逻辑操作产生一个裁决。

控制器:指令寄存器(IR)、程序计数器(PC)、地址寄存器(AR)、指令译码器(ID)等组成。完成指令控制逻辑、时序控制逻辑、总线控制逻辑和中断控制逻辑等。

指令寄存器(IR):当CPU执行一条指令时,先把它从内存储器中取出放到DR,再送入IR暂存,ID根据IR的内容产生各种微操作指令,控制其他的组成部件工作,完成所需的功能。

程序计数器(PC):在程序开始执行前,将程序的起始地址送入PC,该地址在程序加载刀内存时确定,因此PC的内容是程序第一条指令的地址。执行指令时,CPU自动修改PC的内容,以便使其保存的总是将要执行的下一条指令的地址。由于大多数指令都是按顺序执行的,修改的过程只是对PC加1。

地址寄存器(AR):保存当前CPU所访问的内存单元的地址,直到内存的读/写操作完成为止。

指令译码器(ID):对指令中的操作码字段进行分析解释,识别该指令规定的操作,向操作控制器发出具体的控制信号,控制各部件工作,完成所需的功能。

寄存器组:专用寄存器和通用寄存器。运算器和控制器的寄存器是专用寄存器,作用是固定的。通用寄存器用途广法并可由程序员规定其用途,其数目因处理器不同而差异。

13、存储器

内存(主存):容量小,速度快。

外存(辅存):容量大,速度稍慢。

随机存储器(RAM):能读能写。SRAM、DRAM、SDRAM等。SRAM比DRAM快,但贵。

只读存储器(ROM):只读。ROM、PROM、EPROM和EEPROM等。

ROM:这种存储器是在厂家生产时就写好数据的,其内容只能读出,不能改变。一般用于存放系统程序BIOS和用于微程序控制。

PROM:可以由用户一次性写入,写入后不能再修改。

EPROM:可读可写可修改。改写的方法是写入之前先用紫外线照射15~20分钟来擦去所有信息,然后再通过特殊的电子设备写入信息。

EEPROM:可读可写可修改。改写的方法是用电擦除。

FLASH:非易失性存储器,基于EEPROM。

存储在ROM设备中的程序称为固件。例如,当计算机上电后,会运行存储在ROM中的固件。

14、相联存储器

相联存储器工作原理是把数据或数据的某一部分作为关键字,按顺序写入信息,读出时并行地将该关键字与存储器中的每个单元进行比较,找出存储器中所有与关键字相同的数据字,特别适用于信息检索和更新。

输入检索寄存器存放要检索的关键字;屏蔽寄存器屏蔽不参与检索的字段;比较器将检索的关键字与存储体的每一单元进行比较,为了提高速度,比较器的数量应很大;匹配寄存器记录比较的结果。

15、高速缓存(Cache)

Cache的内容是主存局部域的副本,对程序员来说是透明的。

Cache存储器中控制部分的功能是判断CPU要访问的信息是否在Cache存储器中。若在即为命中,若不在即没有命中。命中时直接对Cache存储器寻址;未命中时,要按照替换原则决定主存的一块信息放到Cache存储器的哪一块里。

Cache的地址映像有三种:

直接映像。主存的块只能存放到Cache存储器的相同块号。

全相联映像。主存的任一块可以调入到Cache存储器的任何一个块的空间。

组相联映像。把多块组成一个组,总共有多组。组与组直接直接映像,组内的块全相联映像。

按照Cache地址映像的快冲突概率,从高到低排列的是:直接映像-组相联映像-全相联映像。

替换算法:使Cache命中率尽可能高。随机替换算法、先进先出算法、近期最少使用算法、优化替换算法。

Cache容量越大,则命中率越高,随着Cache容量的增加,其命中率接近100%,非线性增长。但增加Cache容量意味着增加Cache的成本和增加Cache的命中时间。

提高Cache命中率的方法主要有选择适当的块容量、提高Cache的容量和提高Cache的相联度等。

现代CPU中Cache分位多个层级。

在多级Cache的计算机中,Cache分为一级(L1 Cache)、二级(L2 Cache)、三级(L3 Cache)等,CPU访存时首先查找L1 Cache,如果不命中,则访问L2 Cache,直到所有级别的Cache都不命中,才访问主存。通常要求L1 Cache的速度足够快,以赶上CPU的主频。如果Cache为两级,则L1 Cache的容量一般都比较小,为几千字节到几十千字节;L2 Cache则具有较高的容量,一般为几百字节到几兆字节,以使高速缓存具有足够高的命中率。

16、虚拟存储器

CPU使用专门的MMU将虚拟地址转换为物理地址后访问主存。

17、外存储器

外存储器存放暂时不用的程序和数据,并且以文件的形式存储。CPU不能直接访问外存中的程序和数据,只能将其以文件为单位调入主存才可访问。

包括磁盘存储器、光盘存储器、固态硬盘。

DVD-RAM和DVD-RW是DVD技术所支持的两种不同的可多次擦除重写的DVD光盘格式。

CD-R指一次性可写(刻录)CD光盘,而CD-RW指可多次擦除重写的CD光盘。

18、总线:数据总线、地址总线、控制总线
19、输入输出控制
IO设备:块设备、字符设备

块设备可寻址,例如磁盘、USB闪存、CD-ROM等。字符设备不可寻址,例如打印机、网卡、鼠标键盘。

程序控制IO方式:无条件传送、程序查询方式。

无条件传送:外设总是准备好的,它可以无条件地随时接收CPU发来的输出数据,也能够无条件地随时向CPU提高需要输入地数据。

程序查询方式:通过CPU执行程序来查询外设的状态,判断外设是否准备好接收数据或准备好了向CPU输入的数据。

中断

当系统与外设交换数据时,CPU无需等待也不必去查询I/O设备的设备,而是处理其他任务。当I/O设备准备好以后,就发出中断请求信号通知CPU,CPU接到中断请求信号后,保存正在执行程序的现场,转入I/O中断服务程序的执行,完成与I/O系统的数据交换,然后再返回被打断的程序继续执行。与程序控制方式相比,中断方式因为无需CPU等待而提高了效率。

系统具有多个中断源时,常用中断处理方法:多中断信号线法、中断软件查询法、菊花链法、总线仲裁法和中断向量表法等。

DMA方式

在计算机与外设交换数据的过程中,无论是无条件传送、程序查询方式传送还是中断传送,都需要由CPU通过执行程序来实现,这就限制了数据的传送速度。

在内存与IO设备间传送一个数据块的过程中,不需要CPU的任何干涉(整个系统总线完全交给了DMA控制器DMAC,由它控制系统总线完成数据传送),只需要CPU在过程开始启动与过程结束时的处理,实际操作由DMA硬件直接执行完成,CPU在此传送过程中可做别的事情。在DMA传送数据期间,CPU不能使用总线。

输入/输出处理机

DMA方式的出现减轻了CPU对I/O操作的控制,使得CPU的效率显著提高,而输入/输出处理机的出现进一步提高了CPU的效率。

20、计算机体系结构

按处理机数量分类:单处理系统、并行处理与多处理系统、分布式处理系统。

按并行程度分类:Flynn分类法、冯泽云分类法、Handler分类法、Kuck分类法。

Flynn分类法:根据指令流和数据流分类。

单指令流单数据流机器(SISD)。所有的指令都是串行执行,并且在某个时钟周期内,CPU只能处理一个数据流。早期的计算机都是 SISD 机器。

单指令流多数据流机器(SIMD)。SIMD采用了资源重复的措施开发并行性。现在用的单核计算机基本上都属于SIMD机器。

多指令流单数据流机器(MISD)。在实际情况中,MISD 只是作为理论模型出现,没有实际应用。

多指令流多数据流机器(MIMD)。最新的多核计算平台就属于MIMD的范畴,例如Intel 和 AMD 的双核处理器。

冯泽云分类法:按并行度分类。

字串行位串行计算机(WSBS)、字并行位串行计算机(WPBS)、字串行位并行计算机(WSBP)、字并行位并行计算机(WPBP)。

Handler分类法:基于硬件并行程度计算并行度。

处理机级、每个处理机中的算逻单元级、每个算逻单元中的逻辑门电路级。

Kuck分类法:根据指令流和执行流分类。

单指令流单执行流机器(SISE)、单指令流多执行流机器(SIME)、多指令流单执行流机器(MISE)、多指令流多执行流机器(MIME)。

21、CISC和RISC

RISC(Reduced Instruction Set Computer):精简指令系统计算机。

CISC(Complex Instruction Set Computer):复杂指令系统计算机。

RISC编译器的子程序库通常要比CISC的子程序库大得多。

RISC比CISC更加适合VLSI工艺的规整性要求。

CISC系统中的指令可以对主存单元中的数据直接进行处理,其执行速度较慢。目前使用的绝大多数计算机都属于CISC类型。

RISC的关键技术:重叠寄存器窗口技术、优化编译技术、超流水及超标量技术、硬布线逻辑与微程序相结合在微程序技术中。

RISC中采用的流水技术:超流水线技术、超标量技术、超长指令字技术(VLIW)。

22、计算机可靠性与系统性能

性能评测的常用方法:时钟频率、指令执行速度、等效指令速度法、数据处理速率(PDR)和核心程序法。

主频越高,速度越快;PDR值越大,机器性能越好。

物联沃分享整理
物联沃-IOTWORD物联网 » 软考中级:嵌入式系统设计师 – 第一部分

发表评论