目录

嵌入式系统设计知识点梳理

嵌入式系统设计知识点梳理

第一章 硬件基础

1、嵌入式微处理器结构

冯诺依曼结构:数据、指令存储器合并

哈佛结构:数据、指令存储器分开(吞吐量提高一倍)

ARM采用哈佛结构,是一种RISC体系结构的微处理器。

DSP(数字信号处理技术)采用哈佛结构,具有专门的硬件乘法器,广泛采用流水线操作,提供特殊的指令,可以用来快速地实现各种数字信号处理算法。

2、计算机硬件组成

基本的计算机硬件系统组成:运算器、控制器、存储器、输入设备和输出设备。

https://i-blog.csdnimg.cn/blog_migrate/317c3b2e7020b9b1a16f0438953dd6ea.png

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

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

CPU依据指令周期的不同阶段来区分二进制的指令和数据,因为在指令周期的不同阶段,指令会命令CPU分别去取指令或者数据。

3、数据的表示

十进制和二进制互转

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

原码、反码、补码和移码

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

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

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

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

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

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

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

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

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

表示方法为:

N = F * 2^E

其中E为阶码(带符号的纯整数),F为尾数(带符号的纯小数)。

浮点数运算第一步是对阶,小阶向大阶对齐。

https://i-blog.csdnimg.cn/blog_migrate/c1394362c6f5149025b5be6aca5cadcb.png

异或:同0非1

4、计算机指令基本信息

指令的定义

指令(又称机器指令) :是指示计算机执行某种操作的命令,是计算机运行的最小功能单位。一台计算机的所有指令的集合构成该机的指令系统,也称为指令集。

注:一台计算机只能执行自己指令系统中的指令,不能执行其他系统的指令。

指令格式

一条指令就是机器语言的一个语句,它是一组有意义的二进制代码。

一条指令通常要包括操作码字段和地址码字段两部分

一条指令可能包含0个、1个、2个、3个、4个地址码…

计算机指令执行过程:取指令-分析指令-执行指令

四地址指令:

指令含义:(A1)OP(A2)→A3,A4=下一条将要执行指令的地址

完成一条指令需要访存4次,取指→读A1→读A2→写A3

正常情况下:取指令之后PC+1,指向下一条指令

四地址指令:执行指令后,将PC的值修改位A4所指地址

指令寻址方式:

顺序寻址方式 :执行一段程序时,一条指令接一条指令顺序执行。(在PC中)指令字长=存储字长=16bit=2B

跳跃寻址方式 :指下一条指令的地址码不是由程序计数器给出,而是由本条指令直接给出,程序跳跃后,按新的指令地址顺序执行,因此,程序计数器PC中的内容也进行相应改变,以便及时跟踪新的指令地址。

指令操作数寻址方式:

立即寻址方式 :指令地址码字段指出的不是地址,而是操作数本身。

直接寻址方式: 是指在指令中明确要操作的数据的地址,处理器可以直接访问该地址并进行读取或写入操作。

间接寻址方式 :是指在指令中给出的是一个指向要操作的数据地址,处理器首先访问该地址,再获取实际数据的地址,最后才进行相应的读/写操作。(理解为地址指针)

寄存器寻址方式也分为直接寻址和间接寻址。两者的区别在于指令地址码给出寄存器编号时,前者寄存器内容是操作数本身,后者寄存器内容就是操作数地址。

寄存器寻址方式 :指令中地址码是寄存器编码,而不是操作数地址或操作数本身。

基址寻址方式 :将基址寄存器的内容加上指令中形成地址而形成操作数的有效地址,其优点是可扩大寻址能力。

变址寻址方式:

在这里索引寄存器的内容被添加到指令的地址部分,以获得操作数的有效地址。

EA = A +(R),在此,地址字段保存两个值,A(其为基值)和R(保持位移),反之亦然。

相对寻址方式:相对寻址是把程序计数器PC的内容加上指令中的形成地址而形成的操作数的有效地址,而程序计数器的内容就是当前指令的地址,所以相对寻址是相对于当前指令地址而言的。

计算及运行时状态:

系统态,可执行特权指令

用户态,不可执行特权指令

特权指令是计算机指令集的一个子集,特权指令通常与系统资源的操纵和控制有关。如:时钟控制指令用于取、置时钟寄存器的值

程序状态字控制指令用于取、置程序状态字

通道控制指令用于访问通道状态字

中断控制指令用于访问中断字。

5、指令系统CISC和

RISC(Reduced Instruction Set Computer):精简指令系统计算机,指令少,使用频率接近主要依赖硬件实现(通用寄存器、硬布线逻辑控制),设计思路:一条指令完成一个基本“动作”,多条指今组合完成一个复杂的基本功能。代表:ARM架构,主要用于手机、平板等。

CISC(Complex Instruction Set Computer):复杂指令系统计算机,兼容性强,指令繁多,长度可变,由微程序实现。设计思路:一条指令完成一个复杂的基本功能。代表:x86架构,主要用于笔记本、台式机等。 80-20规律:典型程序中80%的语句仅仅使用处理机中20%的指令, 乘法指令可以访存,一定是CISC

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

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

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

RISC中采用的流水技术:

超流水线技术:在每个机器周期内能完成一个甚至两个浮点操作,以时间换空间。

超标量技术:内含多条流水线同事执行多个处理,以空间换时间。

超长指令字技术(VLIW):同事执行多条指令,发挥软件作用。

6、指令流水线处理

https://i-blog.csdnimg.cn/blog_migrate/70f303c6057bc02c7864284737d9d4d0.png

https://i-blog.csdnimg.cn/blog_migrate/4f7c2b4647c31dbe677f7ce355c3bc85.png

指令流水线的表示方法:

https://i-blog.csdnimg.cn/blog_migrate/dd6b40206edec242cce2be76b0db9434.png

流水线性能指标:

流水线周期(▲t):指令段中执行时间最长的。

流水线总执行时间(t):t = t1 +(n-1)▲t,一条指令总执行时间+(总指令条数-1)*流水线周期。

流水线吞吐率=n/t(单位时间)。

流水线加速比=不使用流水线执行时间/使用流水线执行时间。

效率:流水线的设备利用率。

流水线冒险:

在流水线中会有一种情况,在下一个时钟周期中下一条指令不能执行,这种情况被叫做流水线冒险。流水线冒险一共分为三种情况,分别是 结构冒险(Structural hazards)数据冒险(Data hazards)控制冒险(Control hazards)

结构冒险:因 缺乏硬件支持 而导致指令不能在预定的时钟周期内执行的情况。即硬件不支持多条指令在同一时钟周期执行。

数据冒险: 无法提供指令所需数据 而导致指令不能在预定的时钟周期内执行的情况。即一条指令的执行需要等待另一条指令执行完成后所产生的数据。

控制冒险:也叫 分支冒险 ,决策依赖于一条指令的结果,而其他指令正在执行中。比如说分支跳转指令,必须等ALU给出结果后才知道该跳转到哪一条语句。

影响指令流水线的因素

经典机器周期设置(五段流水线)

IF:从指令cache中取指令

M:从数据cache中去数据

ID:从通用寄存器取数

EX:执行

WB:写回阶段

IMM:立即数寄存器

https://i-blog.csdnimg.cn/blog_migrate/378f100d35cee2f8561cf7d03d1adc10.png

7、中断原理

https://i-blog.csdnimg.cn/blog_migrate/c4c3455b8710d2be2c422e0dec4716bc.png

硬中断 由硬件产生,例如磁盘、网卡、键盘、时钟等。每个设备或设备集都有自己的IRQ(中断请求)。

软中断 是一组静态定义的下半部分接口,可以在所有的处理器上同时执行,即使两个类型相同也可以。但是一个软中断不会抢占另一个软中断,唯一可以抢占软中断的是硬中断。

可屏蔽中断和不可屏蔽中断都属于外部中断 ,是由外部中断源引起的。

8、存储系统

1.存储器的层次结构

https://i-blog.csdnimg.cn/blog_migrate/d4ccde868f5d2812bf3d9809f89c505a.png

计算机采用分级存储体系的主要目的是解决存储容量、成本和速度之间的矛盾问题。

主存——辅存:解决了主存容量不够的问题。

Cache——主存:解决了主存与CPU之间速度不匹配的问题。

https://i-blog.csdnimg.cn/blog_migrate/ef5ec13e32bd64de104ae2f0b4d6c99b.png

2.存储器的分类

(1)按层次分类

https://i-blog.csdnimg.cn/blog_migrate/2a18e72f431cd336a5fb6925c2cc6579.png

(2)按传输介质进行分类

半导体:主存、Cache

磁表面存储器: 磁盘,磁带

光存储器

(3)按存取方式进行分类

相联存储器:可以按照内容检索到存储位置进行读写。

随机存取存储器(RAM):读写任何一个存储单元所需的时间都相同,与位置无关。(内存 )

顺序存取存储器(SAM):读写一个存储单元所需的时间取决于存储单元所在的位置。(磁带)

直接存取存储器(DAM):既有随机存取特性,也有顺序存取特性。先直接选取信息所在区域,然后按顺序方式进行存取。(机械硬盘)

顺序存取存储器和直接存取存储器都归为串行访问存储器(读取时间和数据位置有关)。

(4)按信息的可更改性进行分类

读写存储器:可读可写(如内存,硬盘等)

只读存储器:只能读,不能写(如电影使用的光碟)

(5)按信息的可保存性进行分类

易失性存储器:断电后数据消失(主存,Cache)

非易失性存储器:断电依然保存(磁盘、光盘)

破坏性读出:读出数据后要进行重写(如DRAM芯片)

非破坏性读出:读出数据后原数据没被破坏(如SRAM芯片、磁盘、光盘)

3.存储器的性能指标

存储容量:存储字数 x 存储字长(如 1M x 8位 )。

MAR反映存储字数,MDR反映了存储字长。

单位成本:每位价格 = 总成本/总容量(某条内存条价格为259,容量为8GB,则单位成本 = 259 / (8*8) )。

存储速度:数据传输率 = 数据的宽度/存储周期

  • 存取时间:存取时间 + 恢复时间 = 存取周期,计算机进行一次读写操作后需要一段恢复时间才能进行下一次的读写操作。
  • 主存带宽:就是上面的数据传输率,表示每秒从主存进出信息的最大数量,单位为字/秒,字节/秒,位/秒。

两级存储映像:cache-主存、主存-辅存。

随机存储器:访问任意存储单元所用时间相同。

顺序存储器:顺序访问,如磁带。

直接存储器:磁道的寻址随机,磁道内寻址顺序。如磁盘。

高速cache:控制部分+存储器

内容是主存内存的副本拷贝,对于程序员来说是透明的。

4.ROM

https://i-blog.csdnimg.cn/blog_migrate/5b572f56933364581680e717e5329d3c.png

5.主存储器和CPU的连接

https://i-blog.csdnimg.cn/blog_migrate/659f6fb237048f66db81d7ffd080cf0c.png

1.单块存储芯片与CPU的连接

https://i-blog.csdnimg.cn/blog_migrate/20faf05337e73f2e6c563c3206ec1e63.png

假设有一块 8Kx1位 的存储芯片,说明此芯片需要 13根地址线,CPU有8个数据线和16根地址线,从上面可以看出,CPU每次只能传送1位数据到该芯片中,这会导致CPU的数据线没有得到充分利用,并且会有需要扩展主存容量的情况。

于是,就需要通过多个存储芯片的合理连接来扩展主存容量。

可以有两种方式:

位扩展:扩展存储单元的字长

字扩展:扩展存储单元的个数

2.多块存储芯片与CPU的连接
(1)位扩展:

如上图,将两片存储芯片进行连接,CPU地址总线A0~A12会一起发送给这两块芯片,而第二块芯片的数据线D0会和CPU的数据线D1进行相连。这样就扩展成了8Kx2位的存储器了。

同样,CPU中一共有D0~D7个数据线,因此可以总共连接8个图中所示的存储芯片,扩展成 8Kx8位的 存储器。

https://i-blog.csdnimg.cn/blog_migrate/038e2507d3b693821de6b920d646b935.png

(2)字扩展:

字扩展可分为两种:

  • 线选法
  • 片选法

https://i-blog.csdnimg.cn/blog_migrate/6e7e9b32880731200a5d6737ebdaf76e.png

如图中是一块 8Kx8位 的存储芯片,由于该芯片的存储单元字长等于CPU的数据总线数,因此不需要进行位扩展。而地址线并没有被完全利用到,因此可以考虑进行字扩展。

1.线选法

https://i-blog.csdnimg.cn/blog_migrate/85092228a431af332dbdbe7cc875adca.png

用专门的地址线作为片选线,进行选择某一块存储芯片。

如图中:A13为第一块存储芯片的片选线,A14为第二块存储芯片的片选线,当A13 A14分别为01或10时,代表选中了第一块存储芯片或第二块存储芯片,这样就能扩展存储单元的个数。

此时第一块存储芯片的最低地址为:01 0000 0000 0000,最高地址为 01 1111 1111 1111

第二块存储芯片的最低地址为:100 0000 0000 0000,最高地址为 101 1111 1111 1111

但是线选法有一个缺陷:A13和A14不能取00或者11,因为取00时会导致两快存储芯片都没有被选中,11会导致两块存储芯片都被选中。并且需要n个片选信号。

可以进行优化:

https://i-blog.csdnimg.cn/blog_migrate/80e3ed30ede16d6f988b7d9c34e45978.png

只通过A13和一个非门来进行选择。

此时第一块芯片的最低地址为10 0000 0000 0000,最高地址为11 1111 1111 1111

第二块芯片的最低地址为00 0000 0000 0000,最高地址为01 1111 1111 1111

2.片选法

https://i-blog.csdnimg.cn/blog_migrate/d72f71177969a8991380c8910f77f3df.png

总结: https://i-blog.csdnimg.cn/blog_migrate/82bf05735cc8befc6abda7b6fdc28704.png

(3)字位同时扩展

https://i-blog.csdnimg.cn/blog_migrate/eb602b17165f0a6637be9fed0cb8297b.png

9、Cache地址映射方法

硬件自动完成映射

直接映像:块与块固定对应。

全相联映像:块与块任意对应。

组组相联映像:先分块,再分组。块直接映像,组全相联映像。

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

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

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

CPU与主存之间的数据交互,内存会先将数据拷贝到cache中,若cache的数据被循环执行,则不用每次都去内存中读取数据,会加快CPU的工作效率。

设读取一次cache时间为1ns,读取一次内存时间为1000ns,若在CPU多次读取数据时有90%命中cache,则读取一次的平均时间为90%*1+10%*1000=100.9ns

10、IO端口的地址编址

I/O独立编址:I/O端口编址和存储器编址分开设置,相互独立。不占用内存空间、程序清晰、译码电路简单,但只能用专门的I/O指令。

存储器统一编址:从存储空间划出一部分地址给I/O端口。

https://i-blog.csdnimg.cn/blog_migrate/e404f092fb50027ce0fde5d17e9fc7fd.png

大端模式:高位数据存低位内存地址。

小端模式:高位数据存高位内存地址。

常见的电脑PC机一般采用小端模式。

11、总线

https://i-blog.csdnimg.cn/blog_migrate/d4f312974858dd30e70d97b7792fa6d5.png

总线事务:从请求总线到完成总线使用的操作序列。

它是在一个总线周期中发生的一系列活动。总线完成一次传输,分四个阶段:总线裁决、寻址阶段、数据传输阶段、结束阶段。

突发(Burst)是指在相邻的存储单元连续进行数据传输的方式。在进行突发传输时,只要指定起始列地址与突发长度,内存就会依次地自动对后面相应数量的存储单元进行读/写操作而不再需要控制器连续地提供列地址。这样,除了第一笔数据的传输需要若干个周期外,其后每个数据只需一个周期即可获得。

突发长度:连续传输的周期。

12、性能和可靠性

可靠性指标

平均无故障时间MTTF=1/失效率

平均故障修复时间MTTR=1/修复率

平均故障间隔时间MTBF=MTTF+MTTR

系统可用性=(MTTF/MTBF)*100%

串并联系统可靠性计算

https://i-blog.csdnimg.cn/blog_migrate/1826f9ad911a57c09d38e4b2bd64af42.png

计算机系统的性能指标

可靠性或可用性:计算机系统能正常工作的时间,其指标可以是能够持续工作的时间长度(例如,平均无故障时间),也可以是在一段时间内,能正常工作的时间所占的百分比。

处理能力或效率:

第一类指标是吞吐率(系统在单位时间内能处理正常作业的个数)

第二类指标是响应时间(从系统得到输入到给出输出之间的时间)

第三类指标是资源利用率,即在给定的时间区间中,各种部件(包括硬件设备和软件系统)被使用的时间与整个事件之比。

计算机硬件性能指标

指令周期:取出并执行一条指令的时间。

指令周期 = n总线周期 = nm*时钟周期

MIPS:每秒处理的百万级的机器语言指令数。用于衡量标量机性能。

13、嵌入式软件基础

https://i-blog.csdnimg.cn/blog_migrate/75a47fac229d16225b7503ac529fec6f.png

14、嵌入式操作系统

嵌入式实时系统中,要求系统在投入运行之前即具有确定性和可预测性。主要特点是及时响应和高可靠性。

硬实时要求在规定的时间内必须完成操作;

软实时只要按照任务优先级,尽可能快地完成操作即可。

实时:指系统必须在给定的死线(deadline,最后期限)内做出响应。

操作系统使用设备管理的方式管理外部设备,当驱动程序利用系统调用打开外部设备时,通常使用的标识是逻辑设备名。

实时操作系统不采用虚拟内存管理方式,而是采用物理内存直接管理方式。

BIT(在嵌入式实时系统中,用于对故障的检测和定位)

上电BIT:系统上电时对所有硬件进行自检,拥有100%CPU控制权,可对全部硬件进行测试。

周期BIT:系统运行空闲时,周期性对硬件进行检测,测试程序必须采取非破坏性测试算法,对部分可测部件进行测试。

维护BIT:在地面维护状态下,对系统硬件的部分或全部进行维护性测试,拥有100%CPU控制权,可对全部硬件进行测试。

启动BIT

15、任务管理

进程与线程

一个进程至少应该包括:相应的程序(代码和数据)、CPU上下文和一组系统资源。

线程间可共享:程序的公共数据、全局变量、代码、文件等资源;

线程间不可共享:独有的资源(程序计数器、寄存器和栈)

前趋图(任务间并行、顺序执行的关系)

当一个进程资源图中所有进程都是阻塞结点时,即陷入死锁状态。

https://i-blog.csdnimg.cn/blog_migrate/5f5485ef9c6df0469ef7d59a4f0fbf15.png

信号量操作

信号量的值小于0,表示没有可用的资源,其绝对值表示阻塞队列中等待该资源的进程数。假设系统采用PV操作实现进程同步与互斥,若n个进程共享两台打印机,那么信号量S的取值范围为-(n-2)~2。两台打印机,所以最多等待状态的进程数就是(n-2),如果没有进程申请打印机,打印机的信号量就是2。

同步信号量,值为可用资源的个数。信号量的值小于0,则线程进行等待;信号量的值大于0,表示值为可用资源的个数。初始值为0。

互斥信号量,只有两个值:0和1。0表示资源被占用,线程等待;1表示资源没有被占用,线程可以进入。初始值为1。

P(S):先执行S=S-1;如果S≥0,则继续;反之,则阻塞该进程,并将它插入该信号量的等待队列Q中。

V(S):先执行S=S+1;如果S>0,则继续;反之,则从该信号量的等待队列Q中移出第一个进程,使其变为就绪状态并插入就绪队列,然后再返回原进程继续执行。

抢占式和非抢占式

非抢占式内核要求每个任务要有自我放弃CPU的所有权,非抢占式内核的任务级响应时间取决于最长的任务执行时间;

抢占式内核的最高优先级任务何时执行是可知的,且应用程序不能直接使用不可重入函数。

死锁

死锁的四个必要条件:不可剥夺、互斥、请求与保持和循环等待。

死锁规律:(单进程所需资源-1)*进程个数+1 > 可用资源数。

若一个单处理器的计算机系统中同时存在3个并发进程,则同一时刻允许占用处理器的进程数最多为1个。

通信

低级通信:如信号量。

高级通信:共享内存、消息传递和管道。

案例:共享内存通信机制的缺点是

A.需要花费额外的空间

B.需要额外的同步机制

C.需要额外的硬件支持

D.通信过程中需要反复读取内存,时间开销大

16、存储管理

https://i-blog.csdnimg.cn/blog_migrate/5f64c5ec0dfd09114eed9298370bee53.png

固定分区会产生内部碎片;可变分区会产生外部碎片;可重定位分区可解决碎片问题。

段页式存储管理

物理地址:物理块号+页内偏移地址

逻辑地址:页号+页内偏移地址

https://i-blog.csdnimg.cn/blog_migrate/2c3ead902bdbaa218abc8a5e17abfa3d.png https://i-blog.csdnimg.cn/blog_migrate/ac896f7f7cad0623fc4b28ae1d4cb8bb.png

快表:小容量的相联存储器,将页表存于cache。

慢表:将页表存于内存。

慢表需要访问两次内存才能取出页,而快表是访问一次cache和一次内存,因此更快。

段式存储管理:先分段(大小不同),后分页(固定大小),基于可变分区提出。

17、文件系统结构

文件控制块(FCB)

文件标识信息(文件名、所有者名、文件类型、文件最近修改时间等)

文件位置信息(文件长度、文件存放位置等)

文件访问权限信息(口令、保存时限、保护类别等)

文件目录也是由文件组成

文件系统中,打开文件操作的功能是把文件的控制管理信息从辅存读到内存。

索引文件结构

https://i-blog.csdnimg.cn/blog_migrate/a65d2c4d7634b0aed1c2d0c13508ddad.png

树形文件结构

https://i-blog.csdnimg.cn/blog_migrate/0495bc14d2ce4a95075f63ee7172a7af.png

位示图法:对每个物理空间用一位标识(1-使用,0-空闲),形成一张位示图。

某字长为32位的计算机文件管理系统采用位示图记录磁盘使用情况。若磁盘的容量为300G,物理块的大小为1MB,那么位示图的大小为(9600)个字,磁盘有300*1024/1=307200个物理块,位示图大小=307200/32=9600个字

18、外存储器

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

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

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

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

19、输入输出控制

IO设备:块设备、字符设备

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

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

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

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

中断

中断响应时间:从发出中断请求到开始进入中断处理程序;

中断处理时间:从中断处理开始到中断处理结束。

多级中断嵌套:使用堆栈来保护断电和现场。

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

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

DMA方式

在一个总线周期结束后,CPU会响应DMA请求开始读取数据;

CPU响应程序中断方式请求是在一条指令执行结束时。

在计算机与外设交换数据的过程中,无论是无条件传送、程序查询方式传送还是中断传送,都需要由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 的双核处理器。

https://i-blog.csdnimg.cn/blog_migrate/eb04b76d0338d38de56501b21865a05f.png

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

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

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

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

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

单指令流单执行流机器(SISD)、单指令流多执行流机器(SIMD)、多指令流单执行流机器(MISD)、多指令流多执行流机器(MIMD)。

22、虚设备

系统引入虚拟设备技术主要是为了提高设备的利用率以及使独立设备共享化。

23、Spooling技术(外部设备同时联机操作)

组成:输入井和输出井、输入缓冲区和输出缓冲区、输入进程和输出进程。

为了解决CPU输出数据的速度远远高于打印机的打印速度这一矛盾,在操作系统中一般采用该技术。

操作系统的Spooling技术,实质是将独占设备转化为共享设备的技术。

24、单缓冲区和双缓冲区

单缓冲区的时间花费= (读入+送至+处理) + (读入+送至)*(盘块数-1 )

双缓冲区的时间花费= (读入+送至+处理) + 读入*(盘块数-1)

25、BSP特点:

硬件相关性:因为嵌入式实时系统的硬件环境具有应用相关性,而作为上层软件与硬件平台之间的接口,BSP需要为操作系统提供操作和控制具体硬件的方法。

操作系统相关性:不同的操作系统具有各自的软件层次结构,因此,不同的操作系统具有特定的硬件接口形式。实际上,BSP是一个介于操作系统和底层硬件之间的软件层次,包括了系统中大部分与硬件联系紧密的软件 。