购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

3.2 试题精解

试题1(2009年11月试题9~10)

嵌入式系统中采用中断方式实现输入/输出的主要原因是 (9) 。在中断时,CPU断点信息一般保存到 (10) 中。

(9)A.速度最快

B.CPU不参与操作

C.实现起来比较容易

D.能对突发事件做出快速响应

(10)A.通用寄存器   B.堆

C.栈       D.I/O接口

试题分析

在一般的操作系统中,输入/输出方式主要有以下几种。

(1)程序控制方式:CPU直接利用I/O指令编程,实现数据的I/O。CPU发出I/O命令,命令中包含了外设的地址信息和所要执行的操作,相应的I/O系统执行该命令并设置状态寄存器;CPU不停地(定期地)查询I/O系统以确定该操作是否完成。由程序主动查询外设,完成主机与外设间的数据传送,方法简单,硬件开销小。

(2)程序中断方式:CPU利用中断方式完成数据的I/O,当I/O系统与外设交换数据时,CPU无需等待也不必去查询I/O的状态,当I/O系统完成了数据传输后则以中断信号通知CPU。然后CPU保存正在执行程序的现场,转入I/O中断服务程序完成与I/O系统的数据交换。再然后返回原主程序继续执行。与程序控制方式相比,中断方式因为CPU无需等待而提高了效率。在系统中具有多个中断源的情况下,常用的处理方法有:多中断信号线法、中断软件查询法、雏菊链法、总线仲裁法和中断向量表法。

(3)DMA方式:使用DMA控制器(DMAC)来控制和管理数据传输。DMAC和CPU共享系统总线,并且具有独立访问存储器的能力。在进行DMA时,CPU放弃对系统总线的控制而由DMAC控制总线;由DMAC提供存储器地址及必须的读/写控制信号,实现外设与存储器之间进行数据交换。DMAC获取总线方式主要有三种,分别是暂停方式、周期窃取(挪用)方式和共享方式。

(4)通道:通道是一种通过执行通道程序管理I/O操作的控制器,它使主机与I/O操作之间达到更高的并行程度。在具有通道处理机的系统中,当用户进程请求启动外设时,由操作系统根据I/O要求构造通道程序和通道状态字,将通道程序保存在主存中,并将通道程序的首地址放到通道地址字中,然后执行“启动I/O”指令。按照所采取的传送方式,可将通道分为字节多路通道、选择通道和数组多路通道三种。

(5)输入/输出处理机(IOP):也称为外围处理机(PPU),它是一个专用处理机,也可以是一个通用的处理机,具有丰富的指令系统和完善的中断系统。专用于大型、高效的计算机系统处理外围设备的I/O,并利用共享存储器或其他共享手段与主机交换信息。从而使大型、高效的计算机系统更加高效地工作。与通道相比,IOP具有比较丰富的指令系统,结构接近于一般的处理机,有自己的局部存储器。

嵌入式系统中采用中断方式实现输入/输出的主要原因是能对突发事件做出快速响应。在中断时,CPU断点信息一般保存到栈中。

试题答案

(9)D  (10)C

试题2(2009年11月试题11)

在嵌入式系统设计时,下面几种存储结构中对程序员透明的是 (11)

(11)A.高速缓存

B.磁盘存储器

C.内存

D.flash存储器

试题分析

四个选项中,高速缓存就是Cache,它处于内存与CPU之间,是为了提高访问内存时的速度而设置的,这个设备对于程序员的程序编写是完全透明的。

磁盘存储器与flash存储器都属于外设,在存储文件时,需要考虑到该设备的情况,因为需要将文件内容存于相应的设备之上。

内存是程序员写程序时需要考虑的,因为内存的分配与释放是经常要用到的操作。

试题答案

(11)A

试题3(2009年11月试题12)

系统间进行异步串行通信时,数据的串/并和并/串转换一般是通过 (12) 实现的。

(12)A.I/O指令

B.专用的数据传送指令

C.CPU中有移位功能的数据寄存器

D.接口中的移位寄存器

试题分析

一般来说,嵌入式系统通常采用接口中的移位寄存器来实现数据的串/并和并/串转换操作。

试题答案

(12)D

试题4(2010年11月试题9)

计算机执行程序时,在一个指令周期的过程中,为了能够从内存中读指令操作码,首先是将 (9) 的内容送到地址总线上。

(9)A.程序计数器PC

B.指令寄存器IR

C.状态寄存器SR

D.通用寄存器GR

试题分析

指令系统中的每一条指令都有一个操作码,它表示该指令应进行什么性质的操作。不同的指令用操作码这个字段的不同编码来表示,每一种编码代表一种指令。组成操作码字段的位数一般取决于计算机指令系统的规模。

通用计算机系统的基本指令有数据传送类指令、运算类指令、程序控制类指令、I/O指令、处理机控制和调试指令。

① 数据传送类指令。数据传送类指令是最基本的指令类型,主要用于实现寄存器与寄存器之间、寄存器与主存单元之间,以及两个主存单元之间的数据传送。数据传送指令的种类由三个主要因素决定,分别是数据存储设备的种类、数据传送单位和采用的寻址方式。数据传送类指令又可以细分为一般传送指令、堆栈操作指令和数据交换指令。一般传送指令具有数据复制的性质,即数据从源地址传送到目的地址,而源地址中的内容保持不变;堆栈操作指令分为进栈(PUSH)和出栈(POP)两种,在程序中它们往往是成对出现的;数据交换指令是双方向数据传送指令,即将源操作数与目的操作数相互交换位置。

② 运算类指令。运算类指令又分为算术运算指令、逻辑运算指令和移位指令,其中移位指令又可分为算术移位、逻辑移位和循环移位。运算类指令在整个指令系统中应该占有比较大的比重(例如,超过30%)。如果所占比重过小,就会影响整个计算机系统的性能。设计运算类指令,主要考虑操作种类、数据表示、数据长度、数据存储设备,以及它们的组合。在对这些因素进行组合时,必须考虑指令的执行时间、使用频率、硬件实现的复杂程度等多方面的情况。

③ 程序控制指令。程序控制类指令用于控制程序的执行顺序,并使程序具有测试、分析与判断的能力,主要包括三类,分别是转移指令(包括无条件转移和有条件转移)、程序调用和返回指令、循环控制指令。其中,前两类指令在一般计算机中是必须具备的,最后一类指令用于对循环程序进行优化。

④ I/O指令。I/O指令用来实现主机与外部设备之间的信息交换,包括I/O数据、主机向外设发控制命令或外设向主机报告工作状态等。I/O指令通常比较简单,采用单一的直接寻址方式,数据字长一般以字节为单位。在多用户或多任务环境下,I/O指令属于特权指令。当程序需要进行I/O操作时,用系统调用进入操作系统,由操作系统对设备统一进行管理。

⑤ 处理机控制和调试指令。在一般的计算机系统中,处理机有两个状态,分别是管态和用户态,或称主态和从态。这两个状态需要互相切换,在这两个状态下所能使用的指令应该有所区别。在一般通用计算机系统中,按照指令的使用权限,可以把指令分为两大类,分别是一般指令和特权指令。只有系统管理程序能够使用,一般用户程序不能使用的指令称为特权指令,主要包括处理机状态的设置和管理、系统硬件和软件资源的管理、进程的管理等。只有在管态下才能够使用特权指令;在用户态下,只能使用一般指令。

程序计数器(PC)用于记录需要执行的下一条指令操作码的地址,所以在读指令操作码时,应将程序计数器的内容送到地址总线上。

试题答案

(9)A

试题5(2010年11月试题10)

内存按字节编址,利用8K×4bit的存储器芯片构成84000H到8FFFFH的内存,共需 (10) 片。

(10)A.6   B.8

C.12   D.24

试题分析

本题的题型在软考中较为常见,其难度在于计算时需要注意技巧,如果不注意技巧,将浪费大量时间于无谓的计算过程。8FFFFH−84000H+1=(8FFFFH+1)−84000H= 90000H−84000H=C000H,转化成十进制为48K。由于内存是按字节编址,所以存储容量为:48K×8bit,48K×8bit/(8K×4bit)=12。

试题答案

(10)C

试题6(2010年11月试题11)

某磁盘磁头从一个磁道移至另一个磁道需要10ms。文件在磁盘上非连续存放,逻辑上相邻数据块的平均移动距离为10个磁道,每块的旋转延迟时间及传输时间分别为100ms和2ms,则读取一个100块的文件需要 (11) ms的时间。

(11)A.10200   B.11000

C.11200   D.20200

试题分析

在硬盘中,信息分布呈以下层次:记录面、圆柱面、磁道和扇区,如图3-1所示。

一台硬盘驱动器中有多个磁盘片,每个盘片有两个记录面,每个记录面对应一个磁头,所以记录面号就是磁头号,如图3-1(a)所示。所有的磁头安装在一个公用的传动设备或支架上,磁头一致地沿盘面径向移动,单个磁头不能单独地移动。在记录面上,一条条磁道形成一组同心圆,最外圈的磁道为0号,往内则磁道号逐步增加,如图3-1(b)所示。在一个盘组中,各记录面上相同编号(位置)的各磁道构成一个柱面,如图3-1(c)所示。若每个磁盘片有 m 个磁道,则该硬盘共有 m 个柱面。

引入柱面的概念是为了提高硬盘的存储速度。当主机要存入一个较大的文件时,若一条磁道存不完,就需要存放在几条磁道上。这时,应首先将一个文件尽可能地存放在同一柱面中。如果仍存放不完,再存入相邻的柱面内。

通常将一条磁道划分为若干个段,每个段称为一个扇区或扇段,每个扇区存放一个定长信息块(例如,512个字节),如图3-1(b)所示。一条磁道划分多少扇区,每个扇区可存放多少字节,一般由操作系统决定。磁道上的扇区编号从1开始,不像磁头或柱面编号从0开始。

图3-1 硬盘信息分布示意图

主机向硬盘控制器送出有关寻址信息,硬盘地址一般表示为:驱动器号、柱面(磁道)号、记录面(磁头)号、扇区号。通常,主机通过一个硬盘控制器可以连接几台硬盘驱动器,所以需送出驱动器号。调用磁盘常以文件为单位,故寻址信息一般应当给出文件起始位置所在的柱面号与记录面号(这就确定了具体磁道)、起始扇区号,并给出扇区数(交换量)。

硬盘标称的容量是指格式化容量,即用户实际可以使用的存储容量,而非格式化容量是指磁记录介质上全部的磁化单元数,格式化容量一般约为非格式化容量的60%~70%。格式化存储容量的计算公式是:

存储容量 = n × t × s × b

其中: n 为保存数据的总记录面数, t 为每面磁道数, s 为每道的扇区数, b 为每个扇区存储的字节数。

硬盘转速是硬盘主轴电机的旋转速度,它是决定硬盘内部传输速率的关键因素之一,在很大程度上直接影响到硬盘的速度。硬盘转速以每分钟多少转(RPM)来表示,RPM值越大,内部传输速率就越快,访问时间就越短,硬盘的整体性能也就越好。

记录密度是指硬盘存储器上单位长度或单位面积所存储的二进制信息量,通常以道密度和位密度表示。道密度是指沿半径方向上单位长度中的磁道数目,位密度是指沿磁道方向上单位长度中所记录的二进制信息的位数。

硬盘的存取时间主要包括三个部分:第一部分是指磁头从原先位置移动到目的磁道所需要的时间,称为寻道时间或查找时间;第二部分是指在到达目的磁道以后,等待被访问的记录块旋转到磁头下方的等待时间;第三部分是信息的读/写操作时间。由于寻找不同磁道和等待不同记录块所花的时间不同,所以通常取它们的平均值。因为读/写操作时间比较快,相对于平均寻道时间 T s 和平均等待时间 T w 来说,可以忽略不计。所以,磁盘的平均存取时间 T a 为:

硬盘缓存存在的目的是为了解决硬盘内部与接口数据之间速度不匹配的问题,它可以提高硬盘的读/写速度。

硬盘的数据传输速率分为内部数据传输速率和外部数据传输速率。内部数据传输速率是指磁头与硬盘缓存之间的数据传输速率,它的高低是评价一个硬盘整体性能的决定性因素。外部数据传输速率指的是系统总线与硬盘缓存之间的数据传输速率,外部数据传输速率与硬盘接口类型和缓存大小有关。

硬盘接口是硬盘与主机系统之间的连接部件,不同的硬盘接口决定着硬盘与计算机之间的连接速度,在整个系统中,硬盘接口的优劣直接影响着程序运行的快慢和系统性能好坏。

在本题中,首先需要寻道,即将磁头定位于目标磁道,然后通过磁盘的旋转,定位于要读取的信息之上,最后读取并传输数据。所以读取每个数据需要耗费的平均时间为:10×10+100+2=202ms,100块的文件需要20200ms。

试题答案

(11)D

试题7(2010年11月试题12)

计算机系统中,在 (12) 的情况下一般应采用异步传输方式。

(12)A.CPU访问内存

B.CPU与I/O接口交换信息

C.CPU与PCI 总线交换信息

D.I/O接口与打印机交换信息

试题分析

根据外部设备与I/O模块交换数据的方式,系统接口可以分为串行接口和并行接口两种。串行接口一次只能传送1位信息,而并行接口一次就可传送多位信息。

串行通信又可分为异步通信方式和同步通信方式两种。同步通信是一种连续串行传送数据的通信方式,一次通信只传送一帧信息。在异步通信中,数据通常以字符或者字节为单位组成字符帧传送。字符帧由发送端逐帧发送,通过传输线被接收设备逐帧接收。发送端和接收端可以由各自的时钟来控制数据的发送和接收,这两个时钟源彼此独立,互不同步。

异步通信在发送字符时,所发送的字符之间的时间间隔可以是任意的。接收端必须时刻做好接收的准备,发送端可以在任意时刻开始发送字符,因此必须在每一个字符的开始和结束的地方加上标志,即加上开始位和停止位,以便使接收端能够正确地将每一个字符接收下来。异步通信的好处是通信设备简单、便宜,但传输效率较低;同步通信要求收发双方具有同频同相的同步时钟信号,只需在传送报文的最前面附加特定的同步字符,使收发双方建立同步,此后,便在同步时钟的控制下逐位发送和接收。

在本题中,CPU访问内存通常是同步方式,CPU与I/O接口交换信息通常是同步方式,CPU与PCI总线交换信息通常是同步方式,I/O接口与打印机交换信息则通常采用基于缓存池的异步方式。

试题答案

(12)D

试题8(2011年11月试题9)

以下关于CISC(Complex Instruction Set Computer,复杂指令集计算机)和RISC (Reduced Instruction Set Computer,精简指令集计算机)的叙述中,错误的是 (9)

(9)A.在CISC中,复杂指令都采用硬布线逻辑来执行

B.一般而言,采用CISC技术的CPU,其芯片设计复杂度更高

C.在RISC中,更适合采用硬布线逻辑执行指令

D.采用RISC技术,指令系统中的指令种类和寻址方式更少

试题分析

在计算机系统结构发展的过程中,指令系统的优化设计有两个截然相反的方向,一个是增强指令的功能,设置一些功能复杂的指令,把一些原来由软件实现的、常用的功能改用硬件的指令系统来实现,这种计算机系统称为复杂指令系统计算机(Complex Instruction Set Computer,CISC);另一个是尽量简化指令功能,只保留那些功能简单,能在一个节拍内执行完成指令,较复杂的功能用一段子程序来实现,这种计算机系统称为精简指令系统计算机(Reduced Instruction Set Computer,RISC)。

① CISC指令系统的特点

CISC指令系统的主要特点如下。

●指令数量众多。指令系统拥有大量的指令,通常有100~250条左右。

●指令使用频率相差悬殊。最常使用的是一些比较简单的指令,仅占指令总数的20%,但在程序中出现的频率却占80%。而大部分复杂指令却很少使用。

●支持很多种寻址方式。支持的寻址方式通常有5~20种。

●变长的指令。指令长度不是固定的,变长的指令增加指令译码电路的复杂性。

●指令可以对主存单元中的数据直接进行处理。典型的CISC通常都有指令能够直接对主存单元中的数据进行处理,其执行速度较慢。

●以微程序控制为主。CISC的指令系统很复杂,难以用硬布线逻辑(组合逻辑)电路实现控制器,通常采用微程序控制。

② 目标程序的优化

目标程序是由指令直接组成的,是要在处理机中直接执行的,因此,面向目标程序优化的指令系统是提高计算机系统性能最直接的方法。优化目标程序的目的主要有两个:一个是缩短程序的长度,即减少程序的空间开销;另一个是缩短程序的执行时间,即减少程序的时间开销。

优化目标程序的主要途径是增强指令的功能,包括数据传送指令、运算类指令和程序控制指令。具体方法是,对大量的程序及其执行情况进行统计分析,找出那些使用频率高、执行时间长的指令和指令串。对于那些使用频率高的指令,用硬件加快其执行,就能缩短整个程序的执行时间。对于那些使用频率高的指令串,用一条新的指令来代替它,这样,不但能缩短整个程序的执行时间,而且能缩短整个程序的长度,从而减少程序的空间开销。

③ 对高级语言和编译程序的支持

高级语言和一般计算机的机器语言的语义差距比较大,通常用高级语言编写的程序经编译程序编译后生成的目标程序,与直接用机器语言或汇编语言编写的程序相比,时间和空间的开销都要大一个数量级。因此,改进指令系统,增加对高级语言和编译程序的支持,缩小高级语言与机器语言之间的差距,就能提高整个计算机系统的性能。

面向高级语言和编译程序增强指令系统的途径主要有两个:一是增强对高级语言和编译程序支持的指令的功能,增强体系结构的规整性,减少体系结构中各种例外情况;二是设计高级语言计算机,在这种计算机中,用高级语言编写的程序不需要经过编译,直接由机器的硬件来执行。例如,LISP计算机和PROLOG计算机等。

④ 操作系统的优化实现

任何一种计算机系统都必须有操作系统的支撑才能工作,而操作系统又必须用指令系统来实现。所以操作系统的优化必须要通过指令系统的优化才能实现。

⑤ CISC指令系统的缺陷

CISC指令系统主要存在如下三个方面的问题。

●80-20规律。在CISC中,各种指令的使用频率相差很悬殊,大量的统计数字表明,大约有20%的指令使用频率比较大,占据了80%的处理机时间。换句话说,有80%的指令只在20%的处理机运行时间内才被用到。

●超大规模(甚大规模、极大规模)集成电路技术的发展引起的问题。超大规模集成电路工艺要求规整性,而在CISC中,为了实现大量的复杂指令,控制逻辑极不规整,给超大规模集成电路工艺造成很大困难。在CISC中,大量使用微程序技术以实现复杂的指令系统。由于超大规模集成电路的集成度迅速提高,使得生产单芯片处理机成为可能。在单芯片处理机内,希望采用规整的硬布线控制逻辑,不希望用微程序。

●软硬件的功能分配问题。在CISC中,为了支持目标程序的优化,支持高级语言和编译程序,增加了许多复杂的指令,用一条指令来代替一串指令。这些复杂指令简化了目标程序,缩小了高级语言与机器指令之间的语义差距。然而,为了实现这些复杂的指令,不仅增加了硬件的复杂程度,而且使指令的执行周期大大加长。例如,为了支持编译程序的对称性要求,一般的运算类指令都能直接访问主存,从而使指令的执行周期数增加,数据的重复利用率降低。

RISC不是简单地把指令系统进行简化,而是通过简化指令的途径使计算机的结构更加简单、合理,以减少指令的执行周期数,从而提高运算速度。

① RISC指令系统的特点

RISC要求指令系统简化,操作在单周期内完成,指令格式力求一致,寻址方式尽可能减少,并提高编译的效率,最终达到加快机器处理速度的目的。RISC指令系统的主要特点如下。

●指令数量少。优先选取使用频率最高的一些简单指令和一些常用指令,避免使用复杂指令。只提供了LOAD(从存储器中读数)和STORE(把数据写入存储器)两条指令对存储器操作,其余所有的操作都在CPU的寄存器之间进行。

●指令的寻址方式少。通常只支持寄存器寻址方式、立即数寻址方式和相对寻址方式。

●指令长度固定,指令格式种类少。因为RISC指令数量少、格式少、相对简单,其指令长度固定,指令之间各字段的划分比较一致,译码相对容易。

●以硬布线逻辑控制为主。为了提高操作的执行速度,通常采用硬布线逻辑(组合逻辑)来构建控制器。

●单周期指令执行,采用流水线技术。因为简化了指令系统,很容易利用流水线技术,使得大部分指令都能在一个机器周期内完成。少数指令可能会需要多周期,例如,LOAD/STORE指令因为需要访问存储器,其执行时间就会长一些。

●优化的编译器:RISC的精简指令集使编译工作简单化。因为指令长度固定、格式少、寻址方式少,编译时不必在具有相似功能的许多指令中进行选择,也不必为寻址方式的选择而费心,同时易于实现优化,从而可以生成高效率执行的机器代码。

●CPU中的通用寄存器数量多,一般在32个以上,有的可达上千个。

大多数RISC采用了Cache方案,使用Cache来提高取指令的速度。而且,有的RISC使用两个独立的Cache来改善性能。一个称为指令Cache,另一个称为数据Cache。这样,取指令和取数据可以同时进行,互不干扰。

② RISC的核心思想

计算机执行一个程序所用的时间可表示为:

P = I × CPI × T

其中, P 是执行这个程序所使用的总时间, I 是这个程序所需执行的总的指令条数, CPI 是每条指令执行的平均周期数, T 是一个周期的时间长度。

●由于RISC的指令都比较简单,CISC中的一条复杂指令所完成的功能在RISC中可能要用几条指令才能实现。对于同一个源程序,分别编译后生成的动态目标代码,显然RISC的要比CISC的多。但是,由于CISC中复杂指令使用的频率很低,程序中使用的指令绝大多数都是与RISC一样的简单指令,因此,实际上的统计结果表明,RISC的 I 长度只比CISC的长20%~40%。

●由于CISC一般是用微程序实现的,一条指令往往要用好几个周期才能完成,一些复杂指令所要的周期数就更多。根据统计,大多数CISC的指令平均执行周期数 CPI 在4~10之间;而RISC的大多数指令都是单周期执行的,它们的 CPI 应该是1,但是,由于RISC中还有LOAD和STORE指令,也还有少数复杂指令,所以, CPI 要略大于1。

●由于RISC一般采用硬布线逻辑实现,指令要实现的功能都比较简单,所以,CISC的 T 通常是RISC的3倍左右。

综合以上三点,可以大致计算出,RISC的处理速度要比同规模的CISC提高3~5倍。其中的关键在于RISC的指令平均执行周期数 CPI 减小了,这正是RISC设计思想的精华。减小 CPI 是多个方面共同努力的结果。在硬件方面,采用硬布线控制逻辑,减少指令和寻址方式的种类,使用固定的指令格式,采用LOAD/STORE结构,指令执行过程中设置多级流水线等,软件方面十分强调优化编译技术的作用。

③ RISC的关键技术

RISC要达到很高的性能,必须有相应的技术支持。目前,在RISC处理机中采用的主要技术有如下几种。

●延时转移技术。在RISC处理机中,指令一般采用流水线方式工作。流水线技术所面临的一个问题就是转移指令的出现,这时,有可能使流水线断流。其中一个解决办法是在转移指令之后插入一条有效的指令,而转移指令好像被延迟执行了,因此,把这种技术称为延迟转移技术。

●指令取消技术。采用指令延时技术,遇到条件转移指令时,调整指令序列非常困难,在许多情况下找不到可以用来调整的指令。有些RISC处理机采用指令取消技术。在使用指令取消技术的处理机中,所有转移指令和数据变换指令都可以决定下面待执行的指令是否应该取消。如果指令被取消,其效果相当于执行了一条空操作指令,不影响程序的运行环境。为了提高程序的执行效率,应该尽量少取消指令,以保持指令流水线处于充满状态。

●重叠寄存器窗口技术。在处理机中设置一个数量比较大的寄存器堆,并把它划分成很多个窗口。每个过程使用其中相邻的三个窗口和一个公共的窗口,而在这些窗口中,有一个窗口是与前一个过程共用,还有一个窗口是与下一个过程共用的。与前一个过程共用的窗口可以用来存放前一个过程传送给本过程的参数,同时也存放本过程传送给前一个过程的计算结果;与下一个过程共用窗口可以用来存放本过程传送给下一个过程的参数和存放下一个过程传送给本过程的计算结果。

●指令流调整技术。为了使RISC处理机中的指令流水线高效率地工作,尽量不断流。编译器必须分析程序的数据流和控制流,当发现指令流有断流可能时,要调整指令序列。对有些可以通过变量重新命名来消除的数据相关,要尽量消除。这样,可以提高流水线的执行效率,缩短程序的执行时间。

●逻辑实现以硬件为主,固件为辅。RISC主要采用硬布线逻辑来实现指令系统。对于那些必须的复杂指令,也可用固件实现。

在实际应用中,商品化的RISC机器并不是纯粹的RISC。为了满足应用的需要,实用的RISC除了保持RISC的基本特色之外,还必须辅以一些必不可少的复杂指令,例如,浮点运算、十进制运算指令等。所以,这种机器实际上是在RISC基础上实现了RISC与CISC的完美结合。

本题考查CISC与RISC的区别,这是一种常见的考题,两者的区别总结如表3-2所示。

表3-2 CISC与RISC的区别

续表

试题答案

(9)A

试题9(2011年11月试题10)

以下关于Cache的叙述中,正确的是 (10)

(10)A.在容量确定的情况下,替换算法的时间复杂度是影响Cache命中率的关键因素

B.Cache的设计思想是在合理的成本下提高命中率

C.Cache的设计目标是容量尽可能与主存容量相等

D.CPU中的Cache容量应大于CPU之外的Cache容量

试题分析

Cache的功能是提高CPU数据输入/输出的速率,突破所谓的“冯·诺依曼瓶颈”,即CPU与存储系统间数据传送带宽限制。高速存储器能以极高的速率进行数据的访问,但因其价格高昂,如果计算机的内存完全由这种高速存储器组成,则会大大增加计算机的成本。通常在CPU和内存之间设置小容量的Cache。Cache容量小但速度快,内存速度较低但容量大,通过优化调度算法,系统的性能会大大改善,仿佛其存储系统容量与内存相当而访问速度近似Cache。

Cache通常采用相联存储器(Content Addressable Memory,CAM)。CAM是一种基于数据内容进行访问的存储设备。当对其写入数据时,CAM能够自动选择一个未用的空单元进行存储;当要读出数据时,不是给出其存储单元的地址,而是直接给出该数据或者该数据的一部分内容,CAM对所有存储单元中的数据同时进行比较,并标记符合条件的所有数据以供读取。由于比较是同时、并行进行的,所以,这种基于数据内容进行读/写的机制,其速度比基于地址进行读/写的方式要快很多。

① Cache基本原理

使用Cache改善系统性能的依据是程序的局部性原理。程序访问的局部性有两个方面的含义,分别是时间局部性和空间局部性。时间局部性是指如果一个存储单元被访问,则可能该单元会很快被再次访问。这是因为程序存在着循环。空间局部性是指如果一个存储单元被访问,则该单元邻近的单元也可能很快被访问。这是因为程序中大部分指令是顺序存储、顺序执行的,数据一般也是以向量、数组、树、表等形式簇聚地存储在一起的。

根据程序的局部性原理,最近的、未来要用的指令和数据大多局限于正在用的指令和数据,或是存放在与这些指令和数据位置上邻近的单元中。这样,就可以把目前常用或将要用到的信息预先放在Cache中。当CPU需要读取数据时,首先在Cache中查找是否有所需内容,如果有,则直接从Cache中读取;若没有,再从内存中读取该数据,然后同时送往CPU和Cache。如果CPU需要访问的内容大多都能在Cache中找到(称为访问命中),则可以大大提高系统性能。

如果以 h 代表对Cache的访问命中率(“1- h ”称为失效率,或者称为未命中率), t 1 表示Cache的周期时间, t 2 表示内存的周期时间,以读操作为例,使用“Cache+主存储器”的系统的平均周期为 t 3 。则:

t 3 = t 1 × h + t 2 ×(1− h )

系统的平均存储周期与命中率有很密切的关系,命中率的提高即使很小也能导致性能上的较大改善。

例如,设某计算机主存的读/写时间为l00ns,有一个指令和数据合一的Cache,已知该Cache的读/写时间为10ns,取指令的命中率为98%,取数的命中率为95%。在执行某类程序时,约有1/5指令需要存/取一个操作数。假设指令流水线在任何时候都不阻塞,则设置Cache后,每条指令的平均访存时间约为:

(2%×100ns + 98%×10ns)+ 1/5×(5%×100ns + 95%×10ns) = 14.7ns

② 映射机制

当CPU发出访存请求后,存储器地址先被送到Cache控制器以确定所需数据是否已在Cache中,若命中则直接对Cache进行访问。这个过程称为Cache的地址映射(映像)。在Cache的地址映射中,主存和Cache将均分成容量相同的块(页)。常见的映射方法有直接映射、全相联映射和组相联映射。

●直接映射。直接映射方式以随机存取存储器作为Cache存储器,硬件电路较简单。直接映射是一种多对一的映射关系,但一个主存块只能够复制到Cache的一个特定位置上去。例如,某Cache容量为16KB(即可用14位表示),每块的大小为16B(即可用4位表示),则说明其可分为1024块(可用10位表示)。主存地址的最低4位为Cache的块内地址,然后接下来的中间10位为Cache块号。如果主存地址为1234E8F8H(一共32位),那么,最后4位就是1000(对应十六进制数的最后一位“8”),而中间10位,则应从E8F(1110 1000 1111)中获取,得到10 1000 1111。因此,主存地址为1234E8F8H的单元装入的Cache地址为10 1000 1111 1000。

直接映射的关系可以用下列公式来表示:

K = I mod C

其中, K 为Cache的块号, I 为主存的页号, C 为Cache的块数。

直接映射方式的优点是比较容易实现,缺点是不够灵活,有可能使Cache的存储空间得不到充分利用。例如,假设Cache有8块,则主存的第1页与第17页同时复制到Cache的第1块,即使Cache其他块空闲,也有一个主存页不能写入Cache。

●全相联映射。全相联映射使用相联存储器组成的Cache存储器。在全相联映射方式中,主存的每一页可以映射到Cache的任一块。如果淘汰Cache中某一块的内容,则可调入任一主存页的内容,因而较直接映射方式灵活。

在全相联映射方式中,主存地址不能直接提取Cache块号,而是需要将主存页标记与Cache各块的标记逐个比较,直到找到标记符合的块(访问Cache命中),或者全部比较完后仍无符合的标记(访问Cache失败)。因此,这种映射方式速度很慢,失掉了高速缓存的作用,这是全相联映射方式的最大缺点。如果让主存页标记与各Cache标记同时比较,则成本又太高。全相联映像方式由于比较器电路难于设计和实现,故只适用于小容量的Cache。

●组相联映射。组相联映射是直接映射和全相联映射的折中方案。它将Cache中的块再分成组,通过直接映射方式决定组号,通过全相联映射的方式决定Cache中的块号。在组相联映射方式中,主存中一个组内的页数与Cache的分组数相同。

例如,容量为64块的Cache采用组相联方式映像,每块大小为128个字,每4块为一组,即Cache分为64/4=16组。若主存容量为4096页,且以字编址。首先,根据主存与Cache块的容量需一致,即每个内存页的大小也是128个字,因此一共有128×4096个字(2 19 个字),即主存地址需要19位。因为Cache分为16组,所以主存需要分为4096/16=256组(每组16页),即2 8 组,因此主存组号需8位。

按照上述划分方法,主存每一组的第1页映射到Cache的第1组,主存每一组的第2页映射到Cache的第2组,依此类推。因为主存中一个组内的页数与Cache的分组数相同,所以主存每一组的最后一页映射到Cache的最后一组。

要注意的是,有关组相联映射的划分方法不止一种。例如,还有一种方式是主存不分组,而是根据下列公式直接进行映射:

J = I mod Q

其中, J 为Cache的组号, I 为主存的页号, Q 为Cache的组数。

在组相联映射中,由于Cache中每组有若干可供选择的块,因而它在映像定位方面较直接映像方式灵活;每组块数有限,因此付出的代价不是很大,可以根据设计目标选择组内块数。

③ 替换算法

当Cache产生了一次访问未命中之后,相应的数据应同时读入CPU和Cache。但是当Cache已存满数据后,新数据必须替换(淘汰)Cache中的某些旧数据。最常用的替换算法有以下三种。

●随机算法。这是最简单的替换算法。随机算法完全不管Cache块过去、现在及将来的使用情况,简单地根据一个随机数,选择一块替换掉。

●先进先出(First In and First Out,FIFO)算法。按调入Cache的先后决定淘汰的顺序,即在需要更新时,将最先进入Cache的块作为被替换的块。这种方法要求为每块做一记录,记下它们进入Cache的先后次序。这种方法容易实现,而且系统开销小。其缺点是可能会把一些需要经常使用的程序块(如循环程序)替换掉。

●近期最少使用(Least Recently Used,LRU)算法。LRU算法是把CPU近期最少使用的块作为被替换的块。这种替换方法需要随时记录Cache中各块的使用情况,以便确定哪个块是近期最少使用的块。LRU算法相对合理,但实现起来比较复杂,系统开销较大。通常需要对每一块设置一个称为“年龄计数器”的硬件或软件计数器,用于记录其被使用的情况。

④ 写操作

因为需要保证缓存在Cache中的数据与内存中的内容一致,相对读操作而言,Cache的写操作比较复杂,常用有以下几种方法。

●写直达(write through)。当要写Cache时,数据同时写回内存,有时也称为写通。当某一块需要替换时,也不必把这一块写回到主存中去,新调入的块可以立即把这一块覆盖掉。这种方法实现简单,而且能随时保持主存数据的正确性,但可能增加多次不必要的主存写入,会降低存取速度。

●写回(write back)。CPU修改Cache的某一块后,相应的数据并不立即写入内存单元,而是当该块从Cache中被淘汰时,才把数据写回到内存中。在采用这种更新策略的Cache块表中,一般有一个标志位,当一块中的任何一个单元被修改时,标志位被置“1”。在需要替换掉这一块时,如果标志位为“1”,则必须先把这一块写回到主存中去之后,才能再调入新的块;如果标志位为“0”,则这一块不必写回主存,只要用新调入的块覆盖掉这一块即可。这种方法的优点是操作速度快,缺点是因主存中的字块未随时修改而有可能出错。

●标记法。对Cache中的每一个数据设置一个有效位。当数据进入Cache后,有效位置“1”;而当CPU要对该数据进行修改时,数据只需写入内存并同时将该有效位置“0”。当要从Cache中读取数据时需要测试其有效位,若为“l”则直接从Cache中取数,否则,从内存中取数。

试题答案

(10)B

试题10(2011年11月试题11)

虚拟存储器发生页面失效时,需要进行外部地址变换,即实现 (11) 的变换。

(11)A.虚地址到主存地址

B.主存地址到Cache地址

C.主存地址到辅存物理地址

D.虚地址到辅存物理地址

试题分析

虚拟存储(Virtual Storage)是指把多个存储介质模块(例如,硬盘、RAID等)通过一定的手段集中管理,形成统一管理的存储池(storage pool),为用户提供大容量、高数据传输性能的存储系统。存储虚拟化是将实际的物理存储实体与存储的逻辑表示实现分离,使用虚拟存储技术,应用服务器只与分配给它们的逻辑卷(虚卷)交互,而不用关心其数据是在哪个物理存储实体上。

① 虚拟存储的分类

按照拓扑结构的不同,虚拟存储可以分为两种方式,分别是对称式和非对称式。对称式虚拟存储技术是指虚拟存储控制设备与存储软件系统、交换设备集成为一个整体,内嵌在网络数据传输路径中;非对称式虚拟存储技术是指虚拟存储控制设备独立于数据传输路径之外。

按照实现原理的不同,虚拟存储也可以分为两种方式,分别是数据块虚拟与虚拟文件系统。数据块虚拟存储方式着重解决数据传输过程中的冲突和延时问题,利用虚拟的多端口并行技术,为多个用户提供极高的带宽,最大限度上减少延时与冲突的发生;虚拟文件系统存储方式着重解决大规模网络中文件共享的安全机制问题。通过对不同的站点指定不同的访问权限,保证网络文件的安全。在实际应用中,数据块虚拟存储方式以对称式拓扑结构为表现形式,虚拟文件系统存储方式以非对称式拓扑结构为表现形式。

② 虚拟存储的实现方式

虚拟存储要解决的关键问题是逻辑卷与物理存储实体之间的映射关系,这种映射关系可以在计算机层解决,也可以在存储设备层解决,还可以在存储网络层解决。

●主机级的虚拟化。由安装在应用服务器上的卷管理软件完成存储的虚拟化。基于主机端的虚拟存储几乎都是通过纯软件的方式实现的,这种实现机制不需要引入新设备,也不影响现有存储系统的基本架构,所以实现成本比较低。但是,这种机制难以克服的困难是平台依赖性太强,开发商要为每一种操作系统平台甚至每一个版本,开发一套软件产品。同时,由于存储管理由主机解决,增加了主机的负担。

●存储设备级的虚拟化。由存储设备的控制器实现存储的虚拟化。这种虚拟存储一般是存储厂商实施的,很可能使用厂商独家的存储产品。这种实现机制主要通过大规模的RAID子系统和多个I/O通道连接到服务器上,智能控制器提供访问控制、缓存和其他(例如,数据复制等)管理功能。这种方式的优点在于效率高、性能好,管理员对设备有完全的控制权,而且通过与服务器系统分开,可以将存储的管理与多种服务器操作系统隔离,并且可以很容易地调整硬件参数。但是,在现实中,厂商往往都只提供对自身产品的支持,不能解决异构存储环境中的虚拟化问题。

●网络级的虚拟化。由加入SAN的专用装置实现存储虚拟化。这种机制可以管理不同厂商的存储设备,实现SAN中所有设备的统一管理,具有较好的开放性。

不管采用何种虚拟存储技术,其目的都是为了提供一个高性能、安全、稳定、可靠、可扩展的存储网络平台,满足系统的要求。根据综合的性能价格比来说,一般情况下,在主机级和存储设备级的虚拟化技术能够保证系统的数据处理能力要求时,则可优先考虑,因为这两种虚拟存储技术构建方便、管理简单、维护容易、产品相对成熟、性能价格比高。在需要将多个异构的存储设备集成为一个或多个存储池时,则需要使用网络级的虚拟化技术,以达到充分利用存储容量、集中管理存储、降低存储成本的目的。

③ 虚拟存储的特点

虚拟存储技术是为了解决复杂、烦琐的存储管理而产生的,但是,随着信息技术的发展,虚拟存储在很多方面表现出优秀的性能。

●虚拟存储提供了一个大容量存储系统集中管理的手段,由网络中的一个环节进行统一管理,避免了由于存储设备扩充所带来的管理方面的麻烦。例如,增加新的存储设备时,只需要管理员对存储系统进行较为简单的配置更改,客户端无需任何操作。

●虚拟存储可以大大提高存储系统整体访问带宽。存储系统是由多个存储模块组成的,而虚拟存储系统可以很好地进行负载平衡,把每一次数据访问所需的带宽合理地分配到各个存储模块上,这样,系统的整体访问带宽就增大了。例如,一个存储系统中有4个存储模块,每一个存储模块的访问带宽为50MBps,则这个存储系统的总访问带宽就可以接近各存储模块带宽之和,即200MB/s。

●虚拟存储技术为存储资源管理提供了更好的灵活性和兼容性,可以将不同类型的存储设备集中管理使用,保护用户的已有投资。

●虚拟存储技术可以通过管理软件,为网络系统提供一些其他的有用功能,例如,无需服务器的远程镜像和数据快照等。

●虚拟存储技术将计算机的应用系统与存储设备分离,使各种不同的存储设备看上去具有标准的存储特性,应用系统不需要关心数据存储的具体设备,从而减轻了应用系统的负担。

由于虚拟存储具有上述特点,正逐步成为共享存储管理的主流技术,在数据镜像、数据复制、实时数据恢复、应用集成等方面有着广泛的应用。

虚拟存储区的容量与物理主存大小无关,而受限于计算机的地址结构和可用磁盘容量。其页面的置换依据相应的页面置换算法进行,当页面失效时,需要进行数据交换,此时涉及逻辑地址(虚地址)到辅存物理地址的变换。

试题答案

(11)D

试题11(2011年11月试题12)

挂接在总线上的多个部件, (12)

(12)A.只能分时向总线发送数据,并只能分时从总线接收数据

B.只能分时向总线发送数据,但可同时从总线接收数据

C.可同时向总线发送数据,并同时从总线接收数据

D.可同时向总线发送数据,但只能分时从总线接收数据

试题分析

总线是一组能为多个部件分时共享的公共信息传送线路。共享是指总线上可以挂接多个部件,各个部件之间相互交换的信息都可以通过这组公共线路传送;分时是指同一时刻只允许有一个部件向总线发送信息,如果出现两个或两个以上部件同时向总线发送信息,势必导致信号冲突。当然,在同一时刻,允许多个部件同时从总线上接收相同的信息。

① 总线的分类

按总线相对于CPU或其他芯片的位置可分为内部总线和外部总线两种。在CPU内部,寄存器之间和算术逻辑部件ALU与控制部件之间传输数据所用的总线称为内部总线;外部总线是指CPU与内存RAM、ROM和输入/输出设备接口之间进行通信的通路。由于CPU通过总线实现程序取指令、内存/外设的数据交换,在CPU与外设一定的情况下,总线速度是制约计算机整体性能的最大因素。

按总线功能来划分,又可分为地址总线、数据总线、控制总线三类,人们通常所说的总线都包括这三个组成部分,地址总线用来传送地址信息,数据总线用来传送数据信息,控制总线用来传送各种控制信号。例如,ISA(Industrial Standard Architecture,工业标准结构)总线共有98条线,其中数据线有16条、地址线24条,其余为控制信号线、接地线和电源线。

按总线在微机系统中的位置,可分为机内总线和机外总线两种。上面所说的总线都是机内总线,而机外总线是指与外部设备接口相连的,实际上是一种外设的接口标准。例如,目前计算机上流行的接口标准IDE(Integrated Drive Electronics,电子集成驱动器)、SCSI、USB(Universal Serial Bus,通用串行总线)和IEEE(Institute of Electrical and Electronics Engineers,美国电气电子工程师协会)1394等,前两种主要是与硬盘、光驱等设备接口相连,后面两种新型外部总线可以用来连接多种外部设备。

计算机的总线按其功用来划分,主要有局部总线、系统总线、通信总线三种类型。其中局部总线是在传统的ISA总线和CPU总线之间增加的一级总线或管理层,它的出现是由于计算机软硬件功能的不断发展,系统原有的ISA或EISA(Extended ISA,扩展的ISA)等已远远不能适应系统高传输能力的要求,而成为整个系统的主要瓶颈;系统总线是计算机系统内部各部件(插板)之间进行连接和传输信息的一组信号线,例如,ISA、EISA、MCA(Micro Channel Architecture,微通道结构)、VESA(Video Electronic Standard Association,视频电子标准协会)、PCI(Peripheral Component Interconnect,外设组件互连)、AGP(Accelerate Graphical Port,加速图形接口)等;通信总线是计算机系统之间或计算机系统与其他系统(例如,远程通信设备、测试设备等)之间进行通信的一组信号线。

按照总线中数据线的多少,可分为并行总线和串行总线。并行总线是含有多条双向数据线的总线,它可以实现一个数据的多位同时传输,总线中数据线的数量决定了可传输一个数据的最大位数(一般为8的倍数)。由于可以同时传输数据的各位,所以并行总线具有数据传输速率高的优点。但由于各条数据线的传输特性不可能完全一致,当数据线较长时,数据各位到达接收端时的延迟可能不一致,会造成传输错误,所以并行总线不宜过长,适合近距离连接。大多数的系统总线属于并行总线;串行总线是只含有一条双向数据线或两条单向数据线的总线,可以实现一个数据的各位按照一定的速度和顺序依次传输。由于按位串行传输数据对数据线传输特性的要求不高,在长距离连线情况下仍可以有效地传送数据,所以串行总线的优势在于远距离通信。但由于数据是按位顺序传送的,所以在相同的时钟控制下,数据传输速率低于并行总线。大多数的通信总线属于串行总线。

② 总线标准

总线标准是指计算机部件各生产厂家都需要遵守的总线要求,从而使不同厂家生产的部件能够互换。总线标准主要规定总线的机械结构规范、功能结构规范和电气规范。总线标准可以分为正式标准和工业标准两种,其中正式标准是由IEEE等国际组织正式确定和承认的标准;工业标准也称为事实标准,是首先由某一厂家提出,然后得到其他厂家广泛使用的标准。

③ 总线的性能指标

通常,总线规范中会详细描述总线各方面的特性,包括物理特性、功能特性、电气特性和时间特性。物理特性又称机械特性,它规定了总线的线数,以及总线的插头、插座的形状、尺寸和信号线的排列方式等要素;功能特性描述总线中每一根线的功能;电气特性定义了每根线上信号的传递方向及有效电平范围;时间特性规定了每根线在什么时间有效以及不同信号之间相互配合的时间关系。

总线的性能指标主要有以下几个。

●总线宽度。总线宽度指的是总线的线数,它决定了总线所占的物理空间和成本。对总线宽度最直接的影响是地址线和数据线的数量。主存空间和I/O空间的扩充使地址线数量的增加,并行传输要求有足够的数据线。例如,32位的PCI总线允许寻址的主存空间的大小为232 =4G 个单元。

●总线带宽。总线带宽定义为总线的最大数据传输速率,即每秒传输的字节数。在同步通信中,总线的带宽与总线时钟密不可分,总线时钟频率的高低决定了总线带宽的大小:

总线带宽 = 总线宽度×总线频率

总线的实际带宽还会受到总线长度(总线延迟)、总线负载、总线收发器性能等多方面因素的影响。例如,假设某系统总线在一个总线周期中并行传输4字节信息,一个总线周期占用2个时钟周期,总线时钟频率为10MHz。此时,时钟周期T=1/10M=0.1µs,总线周期=2T=0.2µs,则总线带宽为4/0.2=20MB/s。

●总线负载。总线负载是指连接在总线上的最大设备数量。大多数总线的负载能力是有限的。

●总线分时复用。总线分时复用是指在不同时段利用总线上同一个信号线传送不同信号,例如,地址总线和数据总线共用一组信号线。采用这种方式的目的是减少总线数量,提高总线的利用率。

●总线猝发传输。猝发式数据传输是一种总线传输方式,即在一个总线周期中可以传输存储地址连续的多个数据。

除了以上提到的性能指标外,总线是否具有即插即用功能,是否支持总线设备的热插拔,是否支持多主控设备,是否具有错误检测能力,是否依赖于特定CPU等,也是评价总线性能的指标。

试题答案

(12)B

试题12(2012年11月试题10)

以下关于嵌入式系统开发的叙述,正确的是 (10)

(10)A.宿主机与目标机之间只需要建立逻辑连接

B.宿主机与目标机之间只能采用串口通信方式

C.在宿主机上必须采用交叉编译器来生成目标机的可执行代码

D.调试器与被调试程序必须安装在同一台机器上

试题分析

在嵌入式系统开发过程中,有三种不同的开发模式,这三种开发模式就会涉及本题所述的宿主机与目标机(调试程序运行的机器称为宿主机,被调试程序运行的机器称为目标机)。下面将详细说明这三种开发模式。

本机开发:本机开发也就是在目标机(在嵌入式系统中通常把嵌入式系统或设备简称为目标机)中直接进行操作系统移植及应用程序的开发。在这种方式下进行开发,首先就得在目标机中安装操作系统,并且具有良好的人机开发界面。

交叉开发:意思就是在一台宿主机(在嵌入式系统中通常把通用PC称为宿主机)上进行操作系统的裁剪,以及编写应用程序,在宿主机上应用交叉编译环境编译内核及应用程序,然后把目标代码下载到目标机上运行。这就需要在宿主机上安装、配置交叉编译环境(交叉开发工具链),使其能够编译成在目标机上运行的目标代码。

模拟开发:建立在交叉开发环境基础之上。除了宿主机和目标机以外,还得提供一个在宿主机上模拟目标机的环境,使得开发好的内核和程序直接在这个环境下运行以验证其正确性,这就不需要将每次的修改都下载到目标机中,待程序正确后再下载到目标机上运行。这样就可以达到在没有目标机的情况下调试软件的目的。比较著名的模拟开发环境有SkyEye,它能够模拟如ARM等处理器的开发环境。模拟硬件环境是一项比较复杂的工程,所以多数商业嵌入式系统的开发采用的是交叉开发模式。

从以上解释可以看出,宿主机与目标机可能在一台机器上,也可能在不同机器上。宿主机与目标机之间既要有逻辑连接,还要有物理连接。至于通信方式,串口只是其中一种标准,还可采用其他方式。

试题答案

(10)C

试题13(2012年11月试题11)

以下关于嵌入式系统硬件抽象层的叙述,错误的是 (11)

(11)A.硬件抽象层与硬件密切相关,可对操作系统隐藏硬件的多样性

B.硬件抽象层将操作系统与硬件平台隔开

C.硬件抽象层使软硬件的设计与调试可以并行

D.硬件抽象层应包括设备驱动程序和任务调度

试题分析

针对不同的硬件平台,操作系统通常建立在一个抽象硬件层上,该抽象层位于底层硬件和内核之间,为内核提供各种方便移植的宏定义接口,在不同的平台间移植时,只需要修改宏定义即可。在硬件抽象层中,封装了与特定硬件有关的各种类型定义、数据结构和各种接口。硬件抽象层提供的接口包括I/O接口、中断处理、异常处理、Cache处理和对称多处理等。

根据抽象程度的不同,硬件抽象层的结构可以分为以下三个级别。

① 系统结构抽象层。该层抽象了CPU核的特征,包括中断的传递、异常处理、上下文切换和CPU的启动等。

② 处理器变种抽象层。该层抽象了CPU变种的特征,例如,Cache、内存管理部件、浮点处理器和片上部件(存储器、中断控制器)等。

③ 平台抽象层。该层抽象了不同平台的特征,例如,片外器件定时器和I/O寄存器等。

每个EOS都有一个内核,大多数内核都包含调度器、内核对象和内核服务三个公共构件。其中调度器是EOS的心脏,提供一组算法决定何时执行哪个任务;内核对象是特殊的内核构件,帮助创建嵌入式应用;内核服务是内核在对象上执行的操作或通用操作。

试题答案

(11)D

试题14(2012年11月试题12)

(12) 不是反映嵌入式实时操作系统实时性的评价指标。

(12)A.任务执行时间

B.中断响应和延迟时间

C.任务切换时间

D.信号量混洗时间

试题分析

影响嵌入式操作系统实时性的6个主要因素如下。

① 常用系统调用平均运行时间。常用系统调用平均运行时间即系统调用效率,是指内核执行常用的系统调用所需的平均时间。

② 任务切换时间。任务切换时间是指事件引发切换后,从当前任务停止运行、保存运行状态(CPU寄存器内容),到装入下一个将要运行的任务状态、开始运行的时间间隔。任务切换时间也称为上下文切换时间,是指CPU控制权由运行态的任务转移给另外一个就绪任务所需要的时间,包括在进行任务切换时,保存和恢复任务上下文所花费的时间,以及选择下一个待运行任务的调度时间。该指标与微处理器的寄存器数目和系统结构有关。相同的操作系统在不同的微处理器上运行时,所花费的时间可能不同。

③ 线程切换时间。线程是可被调度的最小单位。在嵌入式系统的应用系统中,很多功能是以线程的方式执行的,所以线程切换时间同样是考察的一个要点。测试方法及原理与任务切换类似,不再介绍。

④ 任务抢占时间。任务抢占时间是高优先级的任务从正在运行的低优先级任务中获得系统控制权所消耗的时间。

⑤ 信号量混洗时间。信号量混洗时间是指从一个任务释放信号量到另一个等待该信号量的任务被激活的时间延迟。在嵌入式系统中,通常有许多任务同时竞争某一共享资源,基于信号量的互斥访问保证了任一时刻只有一个任务能够访问公共资源。信号量混洗时间反映了与互斥有关的时间开销,是RTOS实时性的一个重要指标。

⑥ 中断处理相关时间。中断延迟时间是指从中断发生到系统获知中断的时间,主要受系统最大关中断时间的影响,关中断的时间越长,中断延迟也就越长。最大关中断时间包含两个方面,一是内核最大关中断时间,即内核在执行临界区代码时关闭中断,二是应用关中断时间。关中断最大时间是这两种关中断时间的最大值。

中断响应时间是指从中断发生到开始执行用户中断服务例程的时间;中断恢复时间是指用户中断服务例程结束回到被中断的代码之间的时间。对于可抢占式调度,中断恢复时间还要加上进行任务切换和恢复新的任务上下文的时间;任务响应时间是指从任务对应的中断产生到该任务真正开始运行的时间。

试题答案

(12)A 7zfemjupN8j72ZI4kO5TVbndgtNJOjwyEK95S1UOllJwl8mDenBbrCMqFcHvCVsk

点击中间区域
呼出菜单
上一章
目录
下一章
×