第2章嵌入式处理器体系结构1第2章嵌入式处理器习题2-1什么是CISC和RISC,各自有什么特点?答:CISC复杂指令集体系结构,RISC精减指令集体系结构。CISCRISC一条指令仅执行简单操作,把微处理器能执行的指令数目减少到最低限度,以提高处理速度。RISC处理器比同等的CISC(复杂指令集计算机)处理器要快50%~75%,CISC一条指令可以执行许多操作。2-2冯.诺依曼结构与哈佛结构各自的特点是什么?答:冯·诺依曼结构的处理器使用同一个存储器,即程序和数据共用同一个存储器;而哈佛结构则是程序和数据采用独立的总线来访问程序存储器和数据存储器。2-3目前有哪些主要嵌入式内核生产厂商及典型嵌入式内核?ARM处理器核有哪三大特点?答:主要内核厂商有:美国的MIPS公司MIPS处理器内核、美国的IBM与Apple和Motorola联合开发的PowerPC、Motorola公司独立开发的68K/COLDFIRE、英国的ARM公司ARM处理器内核等等。ARM内核的三大主要特点如下:(1)功耗低(2)性价比高(3)代码密度高2-4简述ARM体系结构的技术特征。答:(1)单周期操作:ARM指令系统中的指令只需要执行简单而和基本的操作,因此其执行过程在一个机器周期内完成。(2)采用加载/存储指令结构:由于存储器访问指令的执行时间长(通过总线对外部访问),因此只采用了加载和存储两种指令对存储器进行读和写的操作,面向运算部件的操作都经过加载指令和存储指令,从存储器取出后预先存放到寄存器对内,以加快执行速度。(3)固定的32位长度指令:指令格式固定为32位长度,这样使指令译码结构简单,效率提高。(4)地址指令格式:编译开销大,尽可能优化,采用三地址指令格式、较多寄存器和对称的指令格式便于生成优化代码。(5)指令流水线技术:ARM采用多级流水线技术,以提高指令执行的效率。2-5简述Thumb、Thumb-2及Thumb-2EE的主要特点。答:(1)Thumb状态是ARM执行16位指令的状态,即16位状态。在Thumb模式下,较短的操作码有更少的功能性,而较短的操作码提供整体更佳的编码密度(即程序代码在内存中占的空间)。更短的Thumb操作码能更有效地使用有限的内存带宽,因而提供比32位程序码更佳的效能。嵌入式系统原理及应用(第三版)2(2)Thumb-2状态是ARMV7版本的ARM处理器所具有的新的状态,新的Thumb-2内核技术兼有16位及32位指令,实现了更高的性能、更有效的功耗及更少地占用内存。为多种嵌入式应用产品提供更高的性能、更有效的功耗和更简短的代码长度。Thumb-2内核技术以ARM现有的指令集体系结构为基础,继承了对现有软件和开发工具链的完全兼容性。(3)THUMB-2EE或ThumbEE即ThumbExecutionEnvironment,称为JazelleRCT技术,ThumbEE提供从Thumb-2而来的一些扩充性,在所处的执行环境下,使得指令集能特别适用于执行阶段的编码产生(例如即时编译)。Thumb-2EE是专为一些语言如Limbo、Java、C#、Perl和Python等设计的,并让即时编译器能够输出更小的编译码却不会影响到效能。2-6经典ARM处理器有哪些工作模式?各自的含义是什么?说明模式之间的切换方法。答:经典ARM有以下几中工作模式:工作模式用户模式User快速中断模式FIQ外部中断模式IRQ管理模式SVC中止模式ABT未定义指令模式UND系统模式SYS2-7如果在ARM状态与Thumb状态之间进行切换?答:(1)由ARM状态切换到Thumb状态通过BX指令,将操作数寄存器的最低位设置为1即可将ARM状态切换到Thumb状态。如果R0[0]=1,则执行BXR0指令将进入Thumb状态。(2)由Thumb状态切换到ARM状态通过BX指令,将操作数寄存器的最低位设置为0即可将Thumb状态切换到ARM状态。如果R0[0]=0,则执行BXR0指令将进入ARM状态。2-8ARM核有多少个寄存器?什么寄存器用于存储PC和链接寄存器?R13通常用来存储什么?哪种模式下可使用的通用寄存器最少?答:ARM内核共有37个寄存器,用于PC的寄存器是R15,链接寄存器是R14,R13存储的是堆栈指针。快速中断模式使用的寄存器最少,R0~R7共8个。2-9CPSR的哪一位反映了处理器的状态?若CPSR=0x00000090,分析系统的状态。答:CPSR的格式如下:313029282726……………………876543210NZCVQ状态保留IFTM4M3M2M1M0T位即CPSR.5为处理器状态位,T=1表示为Thumb状态,T=0为ARM状态。CPSR=0x0000090=00000000000000000000000010010000B,所有标志状态为0,I=1禁止外部中断,F=0允许快速中断,T=0为ARM状态,M4~M0=10000为用户模式。2-10经典ARM有哪几个异常类型?复位后,ARM处理器处于何种模式,何种状态?答:(1)经典ARM处理器主要异常包括:复位RESET未定义的指令UND软件中断SWI指令预取中止PABT第2章嵌入式处理器体系结构3数据访问中止DABT外部中断请求IRQ快速中断请求FIQ(2)复位后系统自动进入ARM进入管理模式,并处于ARM状态。2-11简述经典ARM异常的中断响应过程及如何从异常处理程序中正确返回。答:一、经典ARM异常的中断响应过程:(1)将CPSR的值保存到将要执行的异常中断对应的各自的SPSR中,以实现对处理器当前状态、中断屏蔽及各标志位的保护。(2)设置当前状态寄存器CPSR的相应位。设置CPSR中的M4~M0的5个位使进入相应工作模式,设置I=1禁止IRQ中断,如果进入复位模式或FIQ模式,还要设置F=1以禁止FIQ中断。(3)将引起异常指令的下一条地址(断点地址)保存到新的异常工作模式的R14中,使异常处理程序执行完后能正确返回原来的程序处继续向下执行。(4)给程序计数器PC强制赋值,使转入对应的向量地址,以便执行相应的处理程序。二、返回过程如下:(1)恢复原来被保护的用户寄存器。(2)将SPSR_mode寄存器值复制到CPSR中,使得CPSR从相应的SPSR中恢复,以恢复被中断的程序工作状态。(3)根据异常类型将PC值恢复成断点地址,以执行用户原来运行着的程序。(4)清除CPSR中的中断禁止标志I和F,开放外部中断IRQ和快速中断FIQ。2-12一个字的数据0x89ABCDEF,存放在0x0C100000~0x0C100003区域,分别说明采用小端模式存储和大端模式存储时,上述4个存储单元所存的数据。答:(1)小端模式的特点是高字节数据存储在高字节地址单元,因此小端模式下0x89ABCDEF存放格式如下:0xC10000000中的数据为0xEF0xC10000001中的数据为0xCD0xC10000002中的数据为0xAB0xC10000003中的数据为0x89(2)大端模式的特点是高字节数据存储在低字节地址单元,因此大端模式下0x89ABCDEF存放格式如下:0xC10000000中的数据为0x890xC10000001中的数据为0xAB0xC10000002中的数据为0xCD0xC10000003中的数据为0xEF2-13已经某ARM处理器采用超标量的2条13级指令流水线,假设每1级所需时间0.1ns,则该ARM处理器1秒钟最快能执行多少条指令?答:按照流水线的知识可知:对于13级指令流线的建立时间为13*0.1ns,13个时间片理想情况下,最多可以执行13条这种简单指令,即在理想情况下,每个时间片可执行一条简单指令。2条13级流水线在1秒内可执行的指令条数=2*13*0.1*1000000000=2600000000条嵌入式系统原理及应用(第三版)42-14说明AMBA、AHB、ASB以及APB的英文全称及其含义。答:AMBA(AdvancedMicrocontrollerBusArchitecture)即先进的微控制器总线体系结构,它是ARM公司公布的总线协议,是用于连接和管理片上系统(SoC)中功能模块的开放标准和片上互连规范。ASB(AdvanceSystemBus)为先进的系统总线,用于连接高性能系统模块,是第一代AMBA系统总线。AHB(AdvancedHigh-performanceBus)为先进的高性能总线,第二代系统总线,用于连接高性能系统组件或高带宽组件。APB(AdvancePeripheralBus)为先进的外围总线,支持低性能的外围接口,主要用于连接系统的周边组件。2-15AMBA总线有哪两类总线构成,各自的特点是什么?答:AMBA总线主要有系统总线和外围总线两类,系统总线连接高速部件,主要包括第一代系统总线ASB、第二代AHB、第三代AX及第四代ACE等,而外围总线连接低速部件。有APB(即APB1)、APB2、APB3和APB4等。系统总线的主要特点是高速,即其连接的所有部件均能以内核速度工作(高速),而外围总线通过连接的部件的速度均低于内核速度。2-16一个ARM微控制器系统,使用AMBA总线结构,说明如果配置I2C总线接口,SPI总线接口,UART接口,GPIO端口,SRAM,RTC接口以及SDRAM接口应该如何连接到总线上?答:根据AMBA总线的特点,快速部件全部连接在系统总线上,可知,SDRAM,SRAM以及高速GPIO端口连接在系统总线上,而其它均连接在外围总线上如I2C总线接口,SPI总线接口,UART接口,普通GPIO端口以及RTC接口。2-17CAN总线的定义是什么?它与其他总线相比有什么特点和优势?答:本题可参见第8章有关内容。CAN(ControllerAreaNetwork)是控制器局域网络,仅有CANH和CANL两个信号线,采用差分传输的方式,可以进行远距离多机通信。与其它單行总线相比,可行性高,传输距离远且可多主多从方式构建控制网络,但缺点是成本偏高。2-18一嵌入式应用系统要求采集模拟量8个通道,分辨率不于10位,需要UART2个,I2C总线接口2个,SPI接口1个,内部SRAM要求不小于8KB,内部Flash至少32KB,内置Enternet,引脚不超过144脚,试选择熟悉的ARM芯片,并说明理由。答:本题参照第4章最小系统中MCU的选型原则,参照第二章给出的二维码去了解多个厂家的MCU的基本性能参数,比较多片内具有以太网控制器Enternet的主要包括STM32F107系列、NXPLP1700系列以及TI的LM3S8000系列,结合其它外围接口及价格因素,可以选择STM32F107VCT6。选择理由是高性价比。2-19:已知基于ARMCortex-M系列的MCU外设中断源为IRQ18,其中断类型号为多少?求其中断服务程序入口地址,给出计算过程。答:IRQ号为18,因此按照式(2.2)可知:Iadd0=(16+i)*4=(16+18)*4=136=0x00000088中断类型号为18+16=34。