问答题
[说明]
通常计算机按其体系结构分为冯·诺依曼(Von Neumann)结构和哈佛(Harvard)结构。冯·诺依曼结构,也称普林斯顿结构,是一种将程序指令存储器和数据存储器合并在一起的存储器结构。哈佛结构是一种将程序指令存储和数据存储分开的存储器结构。复杂系统的不同处理器可采用不同类型体系结构。
某嵌入式系统由数据处理模块、信号处理模块和光纤网络交换模块组成,如图所示。其中数据处理模块的主处理器选用PPC7447,内部集成了二级Cache,并有SDAM存储器、FLASH、NvRAM、实时时钟、FC(Fabric Channel)通信接口、以太网接口和RS232接口;信号处理模块采用DSP TMS320C6000,并有FC通信接口、RS232接口,用于SPM与外部数据通信;光纤网络交换模块提供FC协议交换能力,主要由控制单元和交换单元两部分组成。
本嵌入式系统的数据处理模块主要接收外部命令、控制系统运行、与系统其他模块通信;信号处理模块主要进行图形图像处理,需要较大的运算量和较高的运算速度。
问答题
回答下列问题,将答案填写在对应的栏目中。
本嵌入式系统的数据处理模块采用______体系结构,信号处理模块采用______体系结构。
在设计中断时,中断触发方式一般分为沿中断和电平中断。沿中断利用______或______作为中断触发信号,电平中断利用______或______作为中断触发信号。
【正确答案】
【答案解析】冯·诺依曼或Von Neumann 哈佛或Harvard
上升沿、下降沿
高电平、低电平
本题主要考查对嵌入式系统结构的认识。
哈佛结构的微处理器通常具有较高的执行效率。其程序指令和数据指令是分开组织和存储的,执行时可以预先读取下一条指令。在DSP算法中,最大量的工作之一是与存储器交换信息,这其中包括作为输入信号的采样数据、滤波器系数和程序指令。由于哈佛结构的总线操作是独立的,能同时取指令和数据,提高了速度。目前DSP内部一般采用的是哈佛结构,它在片内至少有4套总线:程序的数据总线、程序的地址总线、数据的数据总线和数据的地址总线。TMS320C6000作为一款典型的数字信号处理芯片,采用的是哈佛结构,而作为本系统中数据处理模块的主控设备PPC7447,由于面向的是控制及数据处理领域,无需独立的数据与指令总线,因此采用的是冯·诺依曼结构。
系统中断的触发方式一般分为两种模式:边沿触发与电平触发。边沿触发又分为上升沿触发和下降沿触发两种方式,电平触发分为高电平触发和低电平触发两种方式,中断控制器检测到中断触发沿到来时会给处理器一个中断信号,处理器完成相应处理后进入中断处理程序。有时边沿触发很容易产生毛刺并导致误中断,这时候就要使用电平触发,以期获得一个确定的中断触发。
问答题
在设计数据处理模块DPM时,假设某桥芯片内部集成一路递增定时器,定时器位宽为32位,最高位为控制使能位,输入时钟为25MHz。请回答下面三个问题,将答案填写在对应的栏目中(给出表达式即可)。
(1)该定时器最长定时时间是多少(单位ns)?
(2)设置10ms定时时间,则定时器的初值为多少?
(3)若改为一路递减定时器,设置10ms定时时间,则定时器的初值为多少?
【正确答案】
【答案解析】(1)40×2
31
或85899345920
(2)2
31
-10×10
6
/40或2147233648
(3)10×10
6
/40或250000
计时器位宽为32位,而最高位为控制位,所以用于计数的位宽为31位,计数个数为2
31
,所以最大计时长度为2
31
个时钟周期。在25MHz的时钟周期下,单个时钟周期的长度为40ns,因此计时器的最大计时长度为40×2
31
ns(或85 899 345 920ns)。
在递增计时的情况下,需要从初值开始递增到0x7fffffff结束,10ms的时长需要10×10
6
/40个时钟周期,亦即250000个时钟周期。但由于是从初值开始递增到0x7fffffff,所以定时器的初值应该为最大计数值减去10ms时长对应的计数值,即2
31
-10×10
6
/40或2147233648。
在递减计时的情况下,从0x7fffffff开始进行递减。10ms的时长同样需要10×10
6
/40(或250000)个时钟周期,因此定时器的初值应该设为10×10
6
/40或250000。
问答题
嵌入式系统底层FC通信驱动对大数据采用DMA数据传输。图1-2是未完成的DMA数据传输工作流程图,请从下面①~⑧中选择正确的答案,完成该图,将答案填写在对应栏中。
【正确答案】
【答案解析】(1)DMA响应,或③
(2)发送内存地址,或⑤
(3)字计数器计数,或①
(4)传送结束,或⑦
DMA是所有现代计算机系统中的重要特色,该工作方式允许不同速度的硬件装置来沟通,而不需要依赖于CPU的大量中断负载。否则,CPU需要从来源把每一片段的资料复制到暂存器,然后将这新信息再次写回到新的地方。在这个时间中,CPU对于其他的工作来说就无法使用。DMA传输将一个内存区从一个装置复制到另外一个。CPU初始化这个传输动作,传输动作本身是由DMA控制器来实行和完成。典型的例子就是移动一个外部内存的区块到芯片内部更快的内存去。像是这样的操作并没有让处理器工作拖延,反而可以被重新安排去处理其他的工作。DMA传输对于高效能嵌入式系统算法和网络是很重要的。
一个完整的DMA传输过程必须经过下面的4个步骤:
第1步是DMA请求。CPU对DMA控制器进行初始化,并向I/O接口发出操作命令,I/O接口提出DMA请求。
第2步是DMA响应。DMA控制器对DMA请求判别优先级及屏蔽,向总线裁决逻辑提出总线请求。当CPU执行完当前总线周期即可释放总线控制权。此时,总线裁决逻辑输出总线应答,表示DMA已经响应,通过DMA控制器通知I/O接口开始DMA传输。
第3步是DMA传输。DMA控制器获得总线控制权后,CPU即刻挂起或只执行内部操作,由DMA控制器输出读写命令,直接控制RAM与I/O接口进行DMA传输。在DMA控制器的控制下,在存储器和外部设备之间直接进行数据传送,在传送过程中不需要中央处理器的参与。开始时需提供要传送的数据的起始位置和数据长度。
第4步是DMA结束。当完成规定的成批数据传送后,DMA控制器即释放总线控制权,并向I/O接口发出结束信号。当I/O接口收到结束信号后,一方面停止I/O设备的工作,另一方面向CPU提出中断请求,使CPU从不介入的状态解脱,并执行一段检查本次DMA传输操作正确性的代码。最后,带着本次操作结果及状态继续执行原来的程序。