免费智能真题库 > 历年试卷 > 嵌入式系统设计师 > 2017年下半年 嵌入式系统设计师 下午试卷 案例
第1题      
知识点   总线   DMA方式   CAN   信号   消息传递   地址映射   消息   物理层   数据传输方式   图形   DM   流量控制   电源   信息管理   链路   硬件   传输层

 
阅读下列说明和图,回答问题1至问题3,将解答填入答题纸的对应栏内。
【说明】
某舰载综合处理系统由若干数据处理模块、10处理模块、信号处理模块、图形处理模块、大容量处理模块和电源模块组成,各处理模块通过CAN总线连接,如图1-1所示。



为了提高综合处理系统的处理速度,主要处理模块都设计为多个处理器。其中,数据处理模块有4片PowerPC8640处理器,通过RapidlO内部网络连接,如图1-2所示。

串行RapidlO协议即SR1O通信协议,构建了3层的协议体系。如图1-3所示,分别是物理层、传输层、逻辑层。物理层定义了硬件接口的电器特性,并包括链路控制、初级流量控制和低级错误管理等功能;传输层负责进行寻址和路由信息管理;逻辑层定义了服务类型和包交换的格式。

逻辑层定义了数据包的格式,同时支持两种操作方式,分别是直接IO/DMA方式消息传递方式。
直接I0/DMA是一种常用的数据传输方式,发送端需要知道被访问设备的存储空间地址映射,被访问端的操作基本由硬件实现。直接I0/DMA下,发起一次传输操作,需要有效数据、目标器件ID、数据长度、数据在被访问设备存储空间的地址以及包优先级等;同时,所有构成的包的长度为32bit的整数倍;若包长度不能满足要求,则添加附加位进行弥补。
消息传递方式不要求发送节点知道目的节点的地址空间映射,当数据到达目的节点时,会根据邮箱号确定消息存储位置。在消息传递模式下进行数据传输时,除了有效载荷外还需要提供目的节点的ID、数据长度、包优先级和邮箱号等。
 
问题:1.1   可执行程序有严格的格式,一般分为text段、data段和bss段,请解释各段存放的内容,并将答案填写在答题纸的(1)〜(3)中。
陈工程师写了一段图形图像相关的程序,在程序中他定义了一个大数组,如下所示:
char arrMap[1024*1024];
void main(void)
{...}
请问此数组位于内存哪个位置(即在那个段中)?请将答案写到答题纸(4)处。
 
问题:1.2   RapidlO逻辑层中直接IO/DMA和消息传递这两种传输方式的主要差异如表1-1所示。请完成表中的内容,将表1-1中的(1)~(5)答案填写在答题纸的对应栏中。

 
问题:1.3   在IO处理模块等多个模块上,都采用中断方式处理输入输出。在中断处过程包括关中断、保存断点、识别中断源等一系列步骤,如图1-4所示,请完成其中的填空,将答案填写在答题纸的对应栏中。
 
 
 



   知识点讲解    
   · 总线    · DMA方式    · CAN    · 信号    · 消息传递    · 地址映射    · 消息    · 物理层    · 数据传输方式    · 图形    · DM    · 流量控制    · 电源    · 信息管理    · 链路    · 硬件    · 传输层
 
       总线
        计算机系统中的总线(Bus)是指计算机设备和设备之间传输信息的公共数据通道,是连接计算机硬件系统内多种设备的通信线路,它的一个重要特征是由总线上的所有设备共享,因此可以将计算机系统内的多种设备以总线方式进行连接。
               总线的分类
               按照所传输的信号类型可将总线分为数据总线、地址总线和控制总线3类。不同型号的CPU芯片,其数据总线、地址总线和控制总线的条数可能不同。
               .数据总线(Data Bus,DB)用来传送数据信息,是双向的。CPU既可通过DB从内存或输入设备读入数据,也可通过DB将内部数据送至内存或输出设备。DB的宽度决定了CPU和计算机其他设备之间每次交换数据的位数。
               .地址总线(Address Bus,AB)用于传送CPU发出的地址信息,是单向的。传送地址信息的目的是指明与CPU交换信息的内存单元或I/O设备。存储器是按地址访问的,所以每个存储单元都有一个固定地址,要访问1MB存储器中的任一单元,需要给出220个地址,即需要20位地址(220=1M)。因此,地址总线的宽度决定了CPU的最大寻址能力。
               .控制总线(Control Bus,CB)用来传送控制信号、时序信号和状态信息等。其中有的信号是CPU向内存或外部设备发出的信息,有的是内存或外部设备向CPU发出的信息。显然,CB中的每一条线的信息传送方向是单方向且确定的,但CB作为一个整体则是双向的。所以,在各种结构框图中,凡涉及到控制总线CB,均是以双向线表示。
               总线的性能直接影响到整机系统的性能,而且任何系统的研制和外围模块的开发都必须依从所采用的总线规范。总线技术随着微机结构的改进而不断发展与完善。
               在计算机的概念模型中,CPU通过系统总线和存储器之间直接进行通信。实际上在现代的计算机中,存在一个控制芯片的模块。CPU需要和存储器,I/O设备等进行交互,会有多种不同功能的控制芯片,称之为控制芯片组。对于目前的计算机结构来说,控制芯片集成在主板上,典型的有南北桥结构和单芯片结构。与芯片相连接的总线可以分为前端总线(FSB)、存储总线、I/O总线、扩展总线等。
                      南北桥芯片结构
                      北桥芯片直接与CPU、内存、显卡、南桥相连,控制着CPU的类型、主板的总线频率、内存控制器、显示核心等。前端总线(FSB)是将CPU连接到北桥芯片的总线。内存总线是将内存连接到北桥芯片的总线。用于和北桥之间的通信,显卡则通过I/O总线连接到北桥芯片。
                      南桥芯片主要负责外部设备接口与内部CPU的联系,其中,通过I/O总线连接外部I/O设备连接到南桥,例如USB设备、ATA和SATA设备以及一些扩展接口,扩展总线则指是主板上提供的一些PCI、ISA等插槽。
                      单芯片结构
                      单芯片组方式取消了北桥。由于CPU中内置了内存控制器,不再需要通过北桥来控制,这样就能提高内存控制器的频率,减少延迟。还有一些CPU还集成了显示单元,使得显示芯片的频率更高,延迟更低。
               常见总线
               (1)ISA总线。ISA是工业标准总线,只支持16位I/O设备,数据传输率大约是16Mb/s,也称为AT标准。
               (2)EISA总线。EISA是在ISA总线的基础上发展起来的32位总线。该总线定义32位地址线、32位数据线以及其他控制信号线、电源线、地线等共196个接点。总线传输速率达33MB/s。
               (3)PCI总线。PCI总线是目前微型机上广泛采用的内总线,采用并行传输方式。PCI总线有适于32位机的124个信号的标准和适于64位机的188个信号的标准。PCI总线的传输速率至少为133MB/s,64位PCI总线的传输速率为266MB/s。PCI总线的工作与CPU的工作是相互独立的,也就是说,PCI总线时钟与处理器时钟是独立的、非同步的。PCI总线上的设备是即插即用的。接在PCI总线上的设备均可以提出总线请求,通过PCI管理器中的仲裁机构允许该设备成为主控设备,主控设备与从属设备间可以进行点对点的数据传输。PCI总线能够对所传输的地址和数据信号进行奇偶校验检测。
               (4)PCI Express总线。PCI Express简称为PCI-E,采用点对点串行连接,每个设备都有自己的专用连接,不需要向整个总线请求带宽,而且可以把数据传输率提高到一个很高的频率。相对于传统PCI总线在单一时间周期内只能实现单向传输,PCI Express的双单工连接能提供更高的传输速率和质量。
               PCI Express的接口根据总线位宽不同而有所差异,包括X1、X4、X8以及X16(X2模式将用于内部接口而非插槽模式),其中X1的传输速度为250MB/s,而X16就是等于16倍于X1的速度,即是4GB/s。较短的PCI Express卡可以插入较长的PCI Express插槽中使用。PCI Express接口能够支持热拔插。同时,PCI Express总线支持双向传输模式,还可以运行全双工模式,它的双单工连接能提供更高的传输速率和质量,它们之间的差异与半双工和全双工类似。因此连接的每个装置都可以使用最大带宽。
               (5)前端总线。微机系统中,前端总线(Front Side Bus,FSB)是将CPU连接到北桥芯片的总线。需要注意主板和CPU的搭配问题。一般来说,如果CPU不超频,那么前端总线是由CPU决定的,如果主板不支持CPU所需要的前端总线,系统就无法工作。
               通常情况下,一个CPU默认的前端总线是唯一的。北桥芯片负责联系内存、显卡等数据吞吐量最大的部件,并与南桥芯片连接。CPU通过前端总线(FSB)连接到北桥芯片,进而通过北桥芯片与内存、显卡交换数据。FSB是CPU和外界交换数据的最主要通道,因此FSB的数据传输能力对计算机整体性能作用很大,如果没足够快的FSB,再强的CPU也不能明显提高计算机整体速度。
               (6)RS-232C。RS-232C是一条串行外总线,其主要特点是所需传输线比较少,只需三条线(一条发、一条收、一条地线)即可实现全双工通信。传送距离远,用电平传送为15m,电流环传送可达千米。有多种可供选择的传送速率。采用非归零码负逻辑工作,电平≤-3V为逻辑1,而电平≥+3V为逻辑0,具有较好的抗干扰性。
               (7)SCSI总线。小型计算机系统接口(SCSI)是一条并行外总线,广泛用于连接软硬磁盘、光盘、扫描仪等。该接口总线早期是8位的,后来发展到16位。传输速率由SCSI-1的5MB/s到16位的Ultra2 SCSI的80MB/s。今天的传输速率已高达320MB/s。该总线上最多可接63种外设,传输距离可达20m(差分传送)。
               (8)SATA。SATA是Serial ATA的缩写,即串行ATA。它主要用作主板和大量存储设备(如硬盘及光盘驱动器)之间的数据传输之用。SATA总线使用嵌入式时钟信号,具备了更强的纠错能力,与以往相比其最大的区别在于能对传输指令(不仅仅是数据)进行检查,如果发现错误会自动矫正,这在很大程度上提高了数据传输的可靠性。串行接口还具有结构简单、支持热插拔的优点。
               (9)USB。通用串行总线(USB)当前风头正劲,近几年得到十分广泛的应用。USB由4条信号线组成,其中两条用于传送数据,另外两条传送+5V容量为500mA的电源。可以经过集线器(Hub)进行树状连接,最多可达5层。该总线上可接127个设备。USB 1.0有两种传送速率:低速为1.5MB/s,高速为12MB/s。USB 2.0的传送速率为480MB/s。USB总线最大的优点还在于它支持即插即用,并支持热插拔。
               (10)IEEE-1394。IEEE-1394是高速串行外总线,近几年得到广泛应用。IEEE-1394也支持外设热插拔,可为外设提供电源,省去了外设自带的电源,能连接多个不同设备,支持同步和异步数据传输。IEEE-1394由6条信号线组成,其中两条用于传送数据,两条传送控制信号,另外两条传送8~40V容量为1500mA的电源,IEEE-1394总线理论上可接63个设备。IEEE-1394的传送速率从400MB/s、800MB/s、1600MB/s直到3.2GB/s。
               (11)IEEE-488总线。IEEE-488是并行总线接口标准。微计算机、数字电压表、数码显示器等设备及其他仪器仪表均可用IEEE-488总线连接装配,它按照位并行、字节串行双向异步方式传输信号,连接方式为总线方式,仪器设备不需中介单元直接并联于总线上。总线上最多可连接15台设备。最大传输距离为20m,信号传输速度一般为500Kb/s,最大传输速度为1MB/s。
 
       DMA方式
        在计算机与外设交换数据的过程中,无论是无条件传送、利用查询方式传送还是利用中断方式传送,都需要由CPU通过执行程序来实现,这就限制了数据的传送速度。
        直接内存存取(Direct Memory Access,DMA)是指数据在内存与I/O设备间的直接成块传送,即在内存与I/O设备间传送一个数据块的过程中,不需要CPU的任何干涉,只需要CPU在过程开始启动(即向设备发出“传送一块数据”的命令)与过程结束(CPU通过轮询或中断得知过程是否结束和下次操作是否准备就绪)时的处理,实际操作由DMA硬件直接执行完成,CPU在此传送过程中可做别的事情。
        DMA传送的一般过程如下图所示。
        
        DMA过程示意图
        (1)外设向DMA控制器(DMAC)提出DMA传送的请求。
        (2)DMA控制器向CPU提出请求,其请求信号通常加到CPU的保持请求输入端HOLD上。
        (3)CPU在完成当前的总线周期后立即对此请求作出响应,CPU的响应包括两个方面的内容:一方面,CPU将有效的保持响应信号HLDA输出加到DMAC上,告诉DMAC它的请求已得到响应;另一方面,CPU将其输出的总线信号置为高阻,这就意味着CPU放弃了对总线的控制权。
        (4)此时,DMAC获得了对系统总线的控制权,开始实施对系统总线的控制。同时向提出请求的外设送出DMAC的响应信号,告诉外设其请求已得到响应,现在准备开始进行数据的传送。
        (5)DMAC送出地址信号和控制信号,实现数据的高速传送。
        (6)当DMAC将规定的字节数传送完时,它就将HOLD信号变为无效并加到CPU上,撤销对CPU的请求。CPU检测到无效的HOLD就知道DMAC已传送结束,CPU就送出无效的HLDA响应信号,同时重新获得系统总线的控制权,接着DMA前的总线周期继续执行下面的总线周期。
        在此再强调说明,在DMA传送过程中无须CPU的干预,整个系统总线完全交给了DMAC,由它控制系统总线完成数据传送。在DMA传送数据时要占用系统总线,根据占用总线方法的不同,DMA可以分为中央处理器停止法、总线周期分时法和总线周期挪用法等。无论采用哪种方法,在DMA传送数据期间,CPU不能使用总线。
 
       CAN
        控制器局域网(Controller Area Network,CAN)总线是国际上应用最广泛的现场总线之一。最初,CAN总线被汽车环境中的微控制器通信,在车载各电子控制装置(Electric Control Unit,ECU)之间交换信息,形成汽车电子控制网络。例如:发动机管理系统、变速箱控制器、仪表装备、电子主干系统中均嵌入CAN总线控制装置。
        一个由CAN总线构成的单一网络中,理想情况下可以挂接任意多个节点,实际应用中节点数目受网络硬件的电气特性所限制。例如:当使用Philips P82C250作为CAN收发器时,同一网络中允许挂接110个节点。CAN可提供1Mb/s的数据传输速率,虽然相对于以太网并不算高速,但是,这足以使实时控制变得非常容易。而且,CAN总线是一种多主方式的串行通信总线。基本设计规范要求有高的位速率,高抗电磁干扰性,并可以检测出产生的任何错误。当信号传输距离达到10km时CAN总线仍可提供高达50kb/s的数据传输速率。由于CAN总线具有很高的实时性能。它已经在汽车工业、航空工业、工业控制、安全防护等领域中得到了广泛应用。
 
       信号
        任务间同步的另一种方式是异步信号。在两个任务之间,可以通过相互发送信号的方式,来协调它们之间的运行步调。
        所谓的信号,指的是系统给任务的一个指示,表明某个异步事件已经发生了。该事件可能来自于外部(如其他的任务、硬件或定时器),也可能来自于内部(如执行指令出错)。异步信号管理允许任务定义一个异步信号服务例程ASR(Asynchronous Signal Routine),与中断服务程序不同的是,ASR是与特定的任务相对应的。当一个任务正在运行的时候,如果它收到了一个信号,将暂停执行当前的指令,转而切换到相应的信号服务例程去运行。不过这种切换不是任务之间的切换,因为信号服务例程通常还是在当前任务的上下文环境中运行的。
        信号机制与中断处理机制非常相似,但又各有不同。它们的相同点是:
        .都具有中断性:在处理中断和异步信号时,都要暂时地中断当前任务的运行;
        .都有相应的服务程序;
        .都可以屏蔽响应:外部硬件中断可以通过相应的寄存器操作来屏蔽,任务也能够选择不对异步信号进行响应。
        信号机制与中断机制的不同点是:
        .中断是由硬件或特定的指令产生,而信号是由系统调用产生;
        .中断触发后,硬件会根据中断向量找到相应的处理程序去执行;而信号则通过发送信号的系统调用来触发,但系统不一定马上对它进行处理;
        .中断处理程序是在系统内核的上下文中运行,是全局的;而信号处理程序是在相关任务的上下文中运行,是任务的一个组成部分。
        实时系统中不同的任务经常需要互斥地访问共享资源。当任务试图访问资源时被正使用该资源的其他任务阻塞,可能出现优先级反转的现象,即当高优先级任务企图访问已被某低优先级任务占有的共享资源时,高优先级任务必须等待直到低优先级任务释放它占有的资源。如果该低优先级任务又被一个或多个中等优先级任务阻塞,问题就更加严重。由于低优先级任务得不到执行就不能访问资源、释放资源。于是低优先级任务就以一个不确定的时间阻塞高优先级的任务,导致系统的实时性没有保障。下图为是一个优先级反转的示例。
        
        一个优先级反转的示例
        如上图所示,系统存在任务1、任务2、任务3(优先级从高到低排列)和资源R。某时,任务1和任务2都被阻塞,任务3运行且占用资源R。一段时间后,任务1和任务2相继就绪,任务1抢占任务3运行,由于申请资源R失败任务1被挂起。由于任务2的优先级高于任务3,任务2运行。由于任务3不能运行和释放资源R,因此任务1一直被阻塞。极端情况下,任务1永远无法运行,处于饿死状态。
        解决优先级反转问题的常用算法有优先级继承和优先级天花板。
               优先级继承协议
               L. Sha、R. Rajkumar和J. P. Lehoczky针对资源访问控制提出了优先级继承协议(Priority Inheritance Protocol,PIP)。
               PIP协议能与任何优先级驱动的抢占式调度算法配合使用,而且不需要有关任务访问资源情况的先验知识。优先级继承协议的执行方式是:当低优先级任务正在使用资源,高优先级任务抢占执行后也要访问该资源时,低优先级任务将提升自身的优先级到高优先级任务的级别,保证低优先级任务继续使用当前资源,以尽快完成访问,尽快释放占用的资源。这样就使高优先级任务得以执行,从而减少高优先级任务被多个低优先级任务阻塞的时间。低优先级任务在运行中,继承了高优先级任务的优先级,所以该协议被称作优先级继承协议。
               由于只有高优先级任务访问正被低优先级任务使用的资源时,优先级继承才会发生,在此之前,高优先级任务能够抢占低优先级任务并执行,所以优先级继承协议不能防止死锁,而且阻塞是可以传递的,会形成链式阻塞。另外,优先级继承协议不能将任务所经历的阻塞时间减少到尽可能小的某个范围内。最坏情况下,一个需要μ个资源,并且与v个低优先级任务冲突的任务可能被阻塞min(μ,v)次。
               优先级冲顶协议
               J. B. Goodenough和L. Sha针对资源访问控制提出了优先级冲顶协议(Priority Ceiling Protocol,PCP)。
               PCP协议扩展了PIP协议,能防止死锁和减少高优先级任务经历的阻塞时间。该协议假设所有任务分配的优先级都是固定的,每个任务需要的资源在执行前就已确定。每个资源都具有优先级冲顶值,等于所有访问该资源的任务中具有的最高优先级。任一时刻,当前系统冲顶值(current priority ceiling)等于所有正被使用资源具有的最高冲顶值。如果当前没有资源被访问,则当前系统冲顶值等于一个不存在的最小优先级。当任务试图访问一个资源时,只有其优先级高于当前系统冲顶值,或其未释放资源的冲顶值等于当前系统冲顶值才能获得资源,否则会被阻塞。而造成阻塞的低优先级任务将继承该高优先级任务的优先级。
               已经证明,PCP协议的执行规则能防止死锁,但其代价是高优先级任务可能会经历优先级冲顶阻塞(Priority ceiling blocking)。即高优先级任务可能被一个正使用某资源的低优先级任务阻塞,而该资源并不是高优先级任务请求的。这种阻塞又被称作回避阻塞(avoidance blocking),意思是因为回避死锁而引起的阻塞。即使如此,在PCP协议下,每个高优先级任务至多被低优先级任务阻塞一次。使用PCP协议后,能静态分析和确定任务之间的资源竞争,计算出任务可能经历的最大阻塞时间,从而能分析任务集合的可调度性。在PCP协议下,高优先级任务被阻塞时会放弃处理器,因此,访问共享资源的任务可能会产生4次现场切换。
 
       消息传递
        消息是内存空间中一段长度可变的缓冲区,其长度和内容均由用户定义。从操作系统的角度来看,所有的消息都是单纯的字节流,既没有确切的格式,也没有特定的含义。对消息内容的解释是由应用来完成的,应用根据自定义的消息格式,将消息解释成特定的含义,如某种类型的数据、数据块的指针或空。
        消息传递指的是任务与任务之间通过发送和接收消息来交换信息。
        消息机制由操作系统来维护,包括定义寻址方式、认证协议、消息的数量等。一般提供两个基本的操作:send操作,用来发送一条消息;receive操作,用来接收一条消息。如果两个任务想要利用消息机制来进行通信,它们首先要在两者之间建立一个通信链路,然后就可以使用send和receive操作来发送和接受消息。
        任务之间的通信方式可以分为直接通信和间接通信两种。
        (1)直接通信。在直接通信方式下,通信双方必须明确知道与之通信的对象。采用类似下面的通信原语:
        .send(P,message):发送一条消息给任务P;
        .receive(Q,message):从任务Q那里接收一条消息。如果没有收到消息,可以阻塞起来等待消息的到来,也可以立即返回。
        在通信双方之间存在一条通信链路,该链路具有如下特征:
        .通信链路是自动建立的,由操作系统来维护;
        .每条链路只涉及一对相互通信的任务,每对任务之间仅存在一条链路;
        .通信链路可以是单向或双向的。
        (2)间接通信。在间接通信方式下,通信双方不需要指出消息的来源或去向,而是通过共享的邮箱(mailbox)来发送和接收消息,每个邮箱都有一个唯一的标识。采用类似下面的通信原语:
        .send(A,message):发送一条消息给邮箱A;
        .receive(A,message):从邮箱A接收一条消息。
        间接通信的特点:
        .对于一对任务,只有当它们共享一个公共邮箱时才能进行通信;
        .一个邮箱可以被多个任务访问,每对任务也可以使用多个邮箱来通信;
        .通信可以是单向或双向的。
        邮箱只能存放单条消息,它提供了一种低开销的消息传递机制,其状态只有两种:空或满。另外一种间接通信机制是消息队列。它与邮箱是类似的,但可以同时存放若干条消息,提供了一种任务间缓冲通信的方法。如下图所示,发送消息的任务将消息放入队列,而接收消息的任务则将消息从队列中取出。
        
        消息队列示意图
 
       地址映射
        如前所述,当一个任务被加载到内存后,它的各个连续的逻辑页面,被分散地存放在若干个不连续的物理页面当中。在这种情形下,为了保证程序能够正确地运行,需要把程序中使用的逻辑地址转换为内存访问时的物理地址,也就是地址映射。
        那么如何将一个逻辑地址映射为相应的物理地址呢?在页式存储管理当中,连续的逻辑地址空间被划分为一个个的逻辑页面,这些逻辑页面被装入到不同的物理页面当中。也就是说,系统是以页面为单位来进行处理的,而不是以一个个的字节为单位。因此,地址映射的基本思路是:
        .逻辑地址分析:对于给定的一个逻辑地址,找到它所在的逻辑页面,以及它在页面内的偏移地址;
        .页表查找:根据逻辑页面号,从页表中找到它所对应的物理页面号;
        .物理地址合成:根据物理页面号及页内偏移地址,确定最终的物理地址。
               逻辑地址分析
               由于页面的大小一般都是2的整数次幂,因此,人们可以很方便地进行逻辑地址的分析。具体来说,对于给定的一个逻辑地址,可以直接把它的高位部分作为逻辑页面号,把它的低位部分作为页内偏移地址。例如,假设页面的大小是4KB,即212,逻辑地址为32位。那么在一个逻辑地址当中,最低的12位就是页内偏移地址,而剩下的20位就是逻辑页面号。
               下图是逻辑地址分析的一个例子,在这个例子中,逻辑地址用十六进制形式表示。假设页面的大小为1KB,逻辑地址为0x3BAD。在这种情形下,首先把这个十六进制的地址展开为二进制的形式。然后,由于页面的大小为1KB,即2的10次方,所以这个逻辑地址的最低10位,就表示页内偏移地址,而剩下的最高6位,就表示逻辑页面号。因此,该地址的逻辑页面号是0x0E,页内偏移地址是0x03AD。
               
               逻辑地址分析的例子
               如果逻辑地址不是用十六进制,而是用十进制的形式来表示,那么有两种做法:一是先把它转换为十六进制的形式,然后重复刚才的步骤。二是采用如下的计算方法:
               逻辑页面号=逻辑地址/页面大小
               页内偏移量=逻辑地址%页面大小
               用页面大小去除逻辑地址,得到的商就是逻辑页面号;得到的余数就是页内偏移地址。例如,假设页面的大小为2KB,现在要计算逻辑地址7145的逻辑页面号和页内偏移地址。用2048去除7145,得到的商是3,余数是1001。所以这个逻辑地址的逻辑页面号是3,页内偏移地址是1001。实际上,这个算法和刚才的十六进制的方法是完全等价的。从二进制运算的角度来看,一个是右移操作,一个是除法操作。把一个整数右移N位等价于把它除以2N
               页表查找
               对于给定的一个逻辑地址,如果知道其逻辑页面号,就可以去查找页表,从中找到相应的物理页面号。
               在具体实现上,页表通常是保存在内核的地址空间中,因为它是操作系统的一个数据结构。另外,为了能够访问页表的内容,在硬件上要增加一对寄存器。一个是页表基地址寄存器,用来指向页表的起始地址;另一个是页表长度寄存器,用来指示页表的大小,即对于当前任务,它总共包含有多少个页面。操作系统在进行任务切换的时候,会去更新这两个寄存器当中的内容。
               物理地址合成
               对于给定的一个逻辑地址,如果已经知道了它所对应的物理页面号和页内偏移地址,可以采用简单的叠加算法,计算出最终的物理地址。假设物理页面号为f,页内偏移地址为offset,每个页面的大小为2n,那么相应的物理地址为:f×2n+offset。
               下图是页式存储管理当中的地址映射机制,也是以上各个步骤的一个综合。假设在程序的运行过程中,需要去访问某个内存单元,因此就给出了这个内存单元的逻辑地址。如前所述,这个逻辑地址由两部分组成,一是逻辑页面号,二是页内偏移地址。这个分析工作是由硬件自动来完成的,对用户是透明的。在页表基地址寄存器当中,存放的是当前任务的页表首地址。将这个首地址与逻辑页面号相加,就找到相应的页表项。里面存放的是这个逻辑页面所对应的物理页面号。将这个物理页面号取出来,与页内偏移地址进行组合,从而得到最终的物理地址。然后就可以用这个物理地址去访问内存。
               
               页式存储管理中的地址映射
               现有的这种地址映射方案,虽然能够实现从逻辑地址到物理地址的转换,但它有一个很大的问题。当程序运行时需要去访问某个内存单元,例如,去读写内存当中的一个数据,或是去内存取一条指令,需要访问2次内存。第一次是去访问页表,取出物理页面号;第二次才是真正去访问数据或指令。也就是说,内存的访问效率只有50%。这样,就会降低获取数据的存取速度,进而影响到整个系统的使用效率。为了解决这个问题,人们又引入了快表的概念。它的基本思路来源于对程序运行过程的一个观察结果。对于绝大多数的程序,它们在运行时倾向于集中地访问一小部分的页面。因此,对于它们的页表来说,在一定时间内,只有一小部分的页表项会被经常地访问,而其他的页表项则很少使用。根据这个观察结果,人们在MMU中增加了一种特殊的快速查找硬件:TLB(Translation Lookaside Buffer),或者叫关联存储器,用来存放那些最常用的页表项。这种硬件设备能够把逻辑页面号直接映射为相应的物理页面号,不需要再去访问内存当中的页表,这样就缩短了页表的查找时间。
               在TLB方式下,地址映射的过程略有不同。当一个逻辑地址到来时,它首先会到TLB当中去查找,看这个逻辑页面号所在的页表项是否包含在TLB当中,这个查找的速度是非常快的,因为它是以并行的方式进行。如果能够找到的话,就直接从TLB中把相应的物理页面号取出来,与页内偏移地址拼接成最终的物理地址。如果在TLB中没有找到该逻辑页面,那只能采用通常的地址映射方法,去访问内存当中的页表。接下来,硬件还会在TLB当中寻找一个空闲单元,如果没有空闲单元,就把某一个页表项驱逐出来,然后把刚刚访问过的这个页表项添加到TLB当中。这样,如果下次再来访问这个页面,就可以在TLB中找到它。
               页式存储管理方案的优点是:
               (1)没有外碎片,而且内碎片的大小不会超过页面的大小。这是因为系统是以页面来作为内存分配的基本单位,每一个页面都能够用上,不会浪费。只是在任务的某一些页面当中,可能没有装满,里面有一些内碎片。
               (2)程序不必连续存放,它可以分散地存放在内存的不同位置,从而提高了内存利用率。
               (3)便于管理。
               页式存储管理方案的缺点主要有:
               (1)程序必须全部装入内存,才能够运行。如果一个程序的规模大于当前的空闲空间的总和,那么它就无法运行。
               (2)操作系统必须为每一个任务都维护一张页表,开销比较大。简单的页表结构已经不能满足要求,必须设计出更为复杂的结构,如多级页表结构、哈希页表结构、反置页表等。
 
       消息
        对象之间进行通信的一种构造叫做消息。当一个消息发送给某个对象时,包含要求接收对象去执行某些活动的信息。接收到信息的对象经过解释,然后予以响应。这种通信机制叫做消息传递。发送消息的对象不需要知道接收消息的对象如何响应该请求。
 
       物理层
        IEEE 802.11定义了3种PLCP帧格式来对应3种不同的PMD子层通信技术。
        1)FHSS
        对应于FHSS通信的PLCP帧格式如下图所示。
        
        用于FHSS方式的PLCP帧
        SYNC是0和1的序列,共80比特作为同步信号。SFD的比特模式为0000110010111101,用作帧的起始符。PLW代表帧的长度,共12位,所以帧最大长度可以达到4096字节。PSF是分组信令字段,用来标识不同的数据速率。起始数据速率为1Mb/s,以0.5的步长递增。PSF=0000时,代表数据速率为1Mb/s;PSF为其他数值时,则在起始速率的基础上增加一定倍数的步长,例如PSF=0010,则1Mb/s+0.5Mb/s×2=2Mb/s。16位的CRC是为了保护PLCP头部所加的,它能纠正2比特错。MPDU代表MAC协议数据单元。
        2)DSSS
        下图所示为采用DSSS通信时的帧格式。
        
        用于DSSS方式的PLCP帧
        与前一种不同的字段解释如下:SFD字段的比特模式为1111001110100000。Signal字段表示数据速率,步长为100kb/s,比FHSS精确5倍。Service字段保留未用。Length字段指MPDU的长度。
        3)DFIR
        下图所示为采用漫反射红外线时的PLCP帧格式。
        
        用于DFIR方式的PLCP帧
        DFIR的SYNC比FHSS和DSSS的都短,因为采用光敏二极管检测信号不需要复杂的同步过程。Data rate字段=000,表示1Mb/s;Data rate字段=001,表示2Mb/s。DCLA是直流电平调节字段,通过发送32个时隙的脉冲序列来确定接收信号的电平。MPDU的长度不超过2500字节。
 
       数据传输方式
        按照不同的标准划分,数据的传输方式可以分为并行与串行、异步与同步等。
        1)并行传输与串行传输
        并行传输指的是数据以并行方式在多条并行信道上同时进行传输。常用的就是将构成一个字符代码的几位二进制码,分别在几个并行信道上进行传输。例如,采用8位代码的字符,可以用8个信道并行传输。一次传送一个字符,因此收、发双方不存在字符的同步问题,不需要另加"起""止"信号或其他同步信号来实现收、发双方的字符同步,这是并行传输的一个主要优点。但是,并行传输必须有并行信道,这往往带来了设备上或实施条件上的限制,因此,实际应用受限。
        串行传输指的是数据流以串行方式,在一条信道上传输。一个字符的8个二进制代码,由高位到低位顺序排列,再接下一个字符的8位二进制码,这样串接起来形成串行数据流传输。串行传输只需要一条传输信道,易于实现,是目前主要采用的一种传输方式。但是串行传输存在一个收、发双方如何保持码组或字符同步的问题,这个问题不解决,接收方就不能从接收到的数据流中正确地区分出一个个字符,因而传输将失去意义。如何解决码组或字符的同步问题,目前有两种不同的解决办法,即异步传输方式和同步传输方式。
        2)异步传输与同步传输
        异步传输一般以字符为单位,不论所采用的字符代码长度为多少位,在发送每个字符代码时,字符代码前面均加上一个"起"信号(其长度规定为1个码元,极性为0,即空号的极性);字符代码后面均加上一个"止"信号(其长度为1个或2个码元,极性皆为1,即与信号极性相同)。加上起、止信号的作用就是为了能区分串行传输的字符,也就是实现串行传输收、发双方码组或字符的同步。例如,用异步方式传送一个字符R(编码为1010010)的字码结构如下图所示。当不发送数据时,发送端连续地发送停止码1,接收端一旦发现有从1到0的跳变,便知有新的字符开始发送。接收端利用这个电平从高到低的跳变,启动定时机构按发送的速度顺序接收字符,一个字符发送结束后,发送端即发送停止码元,接收端一旦收到停止位,就将定时机构复位,准备接收下一个字符代码。
        
        异步传输
        采用异步方式,每个字符都带有开始和停止的同步信息,因此开销大、效率低、速度慢,但控制简单,如果有错,只需重发一个字符便可弥补。异步方式常用于低速传输。
        同步传输是以同步的时钟节拍来发送数据信号的,因此在一个串行的数据流中,各信号码元之间的相对位置都是固定的(即同步的)。接收端为了从收到的数据流中正确地区分出一个个信号码元,必须首先建立准确的时钟信号。数据的发送一般以组(或称帧)为单位,一组数据包含多个字符。收、发之间的帧同步是通过传输特定的传输控制字符或同步序列来完成的,如下图所示。
        
        同步传输
        同步传输的开销小、效率高,多用于字符信息块的高速传送。缺点是线路控制较复杂,如果数据中有一位错,就必须重新传输整个数据。
 
       图形
               表示与存储
               图形是指能在人的视觉系统中产生视觉印象的客观对象,它包括人眼观察到的自然景物、拍摄到的图片、绘图工具得到的工程图、用数学方法描述的图像等。图形是客观对象的一种抽象表示,它带有形状和颜色信息。构成图形的要素有几何要素(刻画对象轮廓形状的点、线、面、体等)和非几何要素(刻画对象表面属性或材质的颜色、灰度等)。图形可用形状参数和属性参数表示,即参数表示法;也可用带有灰度或色彩的点阵图表示,简称像素图、图像(数字图像),即点阵表示法。
               图形是计算机图形学(Computer Graphics, CG)研究的对象。ISO给计算机图形学的定义为:研究用计算机进行数据和图形之间相互转换的方法和技术。还有定义为:计算机图形学是运用计算机描述、输入、表示、存储、处理(检索/变换/图形运算)、显示、输出图形的一门学科。计算机图形技术主要研究如何在计算机中表示图形,以及利用计算机进行图形的计算、处理和显示的相关原理和算法,其核心是将客观世界对象以图形的形式在计算机内表示出来,主要包括模型生成和图形显示,如下图所示。模型生成是获取、存储和管理客观世界物体的计算机模型,以在计算机上建立客观世界的模拟环境。图形显示是生成、处理和操纵客观世界物体模型的可视化结果,以在输出设备上呈现客观世界物体的图像。
               
               计算机图形生成模型
               计算机图形技术所涉及的研究内容非常广泛,如图形硬件、图形标准、图形交互技术、光栅图形生成算法、曲线曲面造型、实体造型、真实感图形计算与显示算法、风格化绘制、科学计算可视化、计算机动画、自然景物仿真、虚拟现实等。
               图形的文件格式
               ① TIF。
               TIF格式是平面设计中最常用的一种图形格式,因为其属于跨平台的格式,而且支持CMYK色,所以经常被用于印刷输出的场合。此外还有一个特色就是其支持LZW压缩,即不失真压缩,也就是说不管如何压缩,图档的品质都还能保持原来的水准。
               ②TGA。
               TGA图形格式的最大特点就是可以制作出不规则形状的图档,一般图档都为四方形,若需要圆形、菱形甚至镂空的图档时,TGA格式可能就会派上用场了。TGA格式同样支持压缩,也属于不失真压缩。
               ③ PSD。
               PSD格式是Photoshop专用的图形文件格式,该格式包含图形中的色层、遮罩、色频、选取区等Photoshop可以处理的属性,这样全方位的存储如果运用得当,几乎可以将创作的过程完整地记录,以便日后的修改。
               ④UFO。
               UFO格式是另一个著名制图软件Ulead Photoimapct的专用图形格式,其是致力于追赶Adobe的有力科技,同样也发展出了与PSD格式类似的图档格式,能够完整记录所有处理过的属性,不过在记录原理上却有些不同,UFO以物件代替图层,这一点并无大碍,因为Photoimapct与Photoshop本身就有很多的不同之处。
               ⑤RIF。
               RIF是著名制图软件Painter的专用图形格式,处理方式和前面两种大同小异,都可以存储相当多的属性资料。另外,Painter可以打开PSD文件,而且经过Painter处理的PSD文件可以在Photoshop中通用,这样就可以使同一文件在Photoshop和Painter中交换使用了。
               ⑥ CDR。
               CDR是著名制图软件CorelDRAW的专用图形格式,由于CorelDRAW是向量软件,所以CDR可以记录的资料可以说是千奇百怪,各物件的属性、位置、分页通通可以存储,以便日后修改。在兼容度上,目前基本没有其他软件可以打开CDR文件,这是向量软件的通病。
               ⑦EPS。
               EPS是印刷时经常用到的格式,向量图可以转换成EPS格式,点阵图也可以转成EPS格式。EPS文件可以同时存储点阵以及向量,故专门用于印前操作,如排版等,所以一般在印刷时都使用EPS文件。
               图形处理技术
               图形处理技术的范围很广,这里以真实感图形绘制和非真实感图形绘制为例简单介绍图形处理技术。
               真实感图形绘制是指借助数学、物理、计算机等学科知识使用计算机生成三维场景中真实逼真的图形、图像的过程。真实感图像绘制主要包括两个方面:表面特性的精确表示和场景中光照效果的物理描述。真实感图形绘制的应用非常广泛,例如计算机动画制作、影视特效仿真、计算机游戏、多媒体教育和虚拟现实等。真实感图形绘制所涉及的技术主要有消隐技术、表面细节绘制技术、纹理贴图技术、高级光照与着色技术等。
               非真实感图形绘制是指利用计算机生成不具有照片般真实感而具有手绘风格的图形的技术,其目标不在于表现图形的真实性,而是在于表现图形的艺术特质、模拟艺术作品(甚至包括作品中的缺陷)或作为真实感图形的有效补充。非真实感图形绘制的应用领域也非常广泛,其中一个重要的应用领域就是对绘画进行模拟,主要模拟的画种有油画、水彩画、钢笔画、铅笔画、水墨画和卡通动画。非真实感图形绘制所涉及的技术主要有基于像素的绘制,基于线条、曲线和笔画的绘制,模拟绘画绘制等。
               如下图所示,树和天空是采用真实感图形绘制技术绘制出来的,国画是采用非真实感图形绘制技术绘制出来的。
               
               真实感图形绘制和非真实感图形绘制
 
       DM
        DM(Delta Modulation)即增量调制,又称ΔM调制,是最简单的有损预测编码方法,早期在数字电话中被采用,是一种最简单的差值脉冲编码。实际的采样信号与预测的采样信号的差的极性若为正,则用1表示,反之则用0表示。由于DM编码只用1位对声音信号进行编码,所以DM系统又称1位系统。
 
       流量控制
        在双方的数据通信中,如何控制数据通信的流量同样非常重要。它既可以确保数据通信的有序进行,还可避免通信过程中不会出现因为接收方来不及接收而造成的数据丢失。这就是数据链路层的“流量控制”功能。数据的发送与接收必须遵循一定的传送速率规则,可以使得接收方能及时地接收发送方发送的数据。并且当接收方来不及接收时,就必须及时控制发送方数据的发送速率,使两方面的速率基本匹配。
 
       电源
        (1)设备间内安放计算机主机时,应按照计算机主机电源要求进行工程设计。
        (2)设备间内安放程控用户交换机时应按照《工业企业程控用户交换机工程设计规范》CECS09:1989进行工程设计。
        (3)设备间、交接间应用可靠的交流220V、50Hz电源供电。
        设备间应由可靠交流电源供电,不要用邻近的照明开关来控制这些电源插座,减少偶然断电事故发生。
 
       信息管理
        管理信息系统是由人、计算机和管理规则等组成,以采集、加工、维护和使用信息为主要功能的人-机系统。例如金融、财会、经营、管理、教育、科研、医疗、人事、档案、物资等各方面都有大量的信息需要及时分析和处理,以便为决策提供依据。虽然在这方面应用中计算公式并不复杂,但数据量极大,在当今信息爆炸的时代,人工已难以胜任这一重任,计算机则成为信息管理的重要工具。该系统一般以数据库管理系统为核心,以其他软件和网络系统为支撑环境,而用户则通过专门的人机交互界面,进行数据的查询、修改等操作,并实现统计分析、规划、决策等功能。在信息管理方面,我们正经历着从单项事务的电子数据处理,向以数据库为基础的管理信息系统,及以数据库、模型库和方法库为基础的决策支持系统发展的过程,并且呈现出系统集成化、结构分布化、信息多元化、功能智能化等趋势。
 
       链路
        链路(link)指的是从发信点到收信点(即从信源到信宿)的一串结点和线路。链路通信是指端到端的通信。
        计算机网络从逻辑结构上可以分成两部分:负责数据处理、向网络用户提供各种网络资源及网络服务的外层用户资源子网和负责数据转发的内层通信子网。通信子网由分组交换结点(简记为R)及连接这些结点的链路组成,负责在主机(Host,H)间传输分组。资源子网由连在网上的主机构成,为网上用户提供共享资源,入网途径和方法。局域网中的每台主机都通过网卡连接到传输介质上,网卡负责在各个主机间传递数据,显然,网卡和传输介质构成了局域网的通信子网,而主机集合则构成了资源子网。用户子网指的是由主计算机、终端、通信控制设备、连网外设、各种软件资源等组成。通信子网分为点对点通信子网和广播式通信子网。它主要有三种组织形式:结合型、专用型和公用型,如下图所示。
        
        网络的组织形式
        计算机网络也可以看作是在物理上分布的相互协作的计算机系统。其硬件部分除了单体计算机、光纤、同轴电缆以及双绞线等传输媒体之外,还包括插入计算机中用于收发数据分组的各种通信网卡(在操作系统中,这些网卡不当成一种外部设备),把多台计算机连接到一起的集线器(hub,该设备近年正逐步被相应的交换机取代),扩展带宽和连接多台计算机用的交换机(switch)以及负责路径管理、控制网络交通情况的路由器或ATM交换机等。其中路由器或ATM交换机是构成广域网络的主要设备,而交换机和集线则是构成局域网络的主要设备。这些设备都可看作一种专用的计算机。
        综上所述,计算机网络是一个由不同传输媒体构成的通信子网,与这个通信子网连接的多台地理上分散的具有唯一地址的计算机,将数据划分为不同长度分组进行传输和处理的协议软件以及应用系统所组成的传输和共享信息的系统。
 
       硬件
        硬件是计算机物理设备的总称,也称为硬件设备,通常是电子的、机械的、磁性的或光的元器件或装置,一般分为中央处理器、存储器和输入、输出设备。
 
       传输层
        传输层的主要服务功能是建立、提供端到端的通信连接,亦即一个应用程序到另一个应用程序的通信连接。说到底,传输层主要是为任何两台需要相互通信的计算机建立通信连接。它可以同时从应用层的几个应用程序接收数据并发送给下一层(IP)。传输层的主要协议有TCP(传输控制协议)和UDP(用户报文协议)。TCP是TCP/IP的两个最基本的协议之一。
        TCP协议。传输层中的TCP协议负责任何两台计算机之间的连接,此外还提供了一种可靠传输的方法,解决了IP协议的不安全因素,为数据报正确、安全地到达目的地提供了保障。
        网络中由于带宽的限制,每一条线路上都有一个流量极限。当有大量数据报拥挤在一条线路上时,往往会超过其流量极限,就像是公路上阻塞的汽车一样。而在Internet上,当一条线路上的负荷已超出其极限流量时,一些数据报就会被丢失,导致数据报在传输的过程中失去安全保障。
        IP协议不负责处理数据报的丢失、误投递等情况,而TCP协议则提供了可靠传输的机制,它能够自动检测丢失的数据报并自动重传,弥补IP的不足。此外,它还负责过滤多个重复的数据报,接收最先到达的一个。因此,TCP和IP总是协调一致地工作,以保证数据报的可靠传输。
        TCP协议提供的是一种面向连接的服务。在传输层中,用户数据报协议(User Datagram Protocol,UDP)。提供另一种面向无连接的服务,即在数据传输时不加上自己的头标,这样使得协议本身的开销非常小,性能也比TCP高。但其可靠性不如TCP协议,适合于传输一些不需要绝对可靠的数据(或由上层保障数据的可靠性)。


 题号导航      2017年下半年 嵌入式系统设计师 下午试卷 案例   本试卷我的完整做题情况 
1 /
2 /
3 /
4 /
5 /
 
↓第1题