文章目录
- 名词解释
- 回答问题
- 说明处理器的 2 种总线架构以及它们的优缺点?
- ARM7、ARM9 分别采用哪种总线结构?
- 采用 RISC 架构的 ARM 微处理器有哪些特点?
- 采用 RISC 精简指令集的计算机有哪些基本特点?
- 什么是流水线技术?
- 处理器速度取决那些方面?
- ARM7、ARM9 采用几级流水线,都是什么
- 图示说明 ARM7 三级流水线的工作原理?
- ARM7、ARM9 的流水线指令执行阶段处于第几级?
- ARM7、ARM9 流水线上正在执行的指令与程序指针的关系?
- 给出采用流水线技术的处理器,一段程序执行时间的计算公式?
- 流水线相关性有哪些?
- 什么是超标量执行、超标量处理机,它能解决什么问题?
- ARM7、ARM9 采用那个指令版本,有几套指令集,都是什么?
- 开发设计嵌入式系统时,嵌入式处理器如何选型?
- ARM9 有几种工作状态,都是什么?
- 嵌入式系统复位后,系统执行的 ARM 代码还是 Thumb 代码?
- 什么情况下,嵌入式处理器会从 ARM 状态进入 Thumb 状态?从 Thumb 状态进入 ARM状态?
- ARM9 处理器存储模式(存储格式)有几种,都是什么?
- 小端模式下,[0x40003000]=0x11223344,图示说明数据在存储器中是如何存储的?
- ARM 存储数据类型有几种,都是什么?
- 图示说明 MMU 的功能?
- 在什么情况下使用 MMU?为什么?
- 什么是页表、TLB?
- 协处理器CP15 的寄存器C1 的位 0 用于设置使能MMU, 给出使能 MMU的汇编程序段?
- 图示说明基于 cache 和 TLB 的存储访问原理?
- ARM 920T 支持的存储块大小有几种类型,都是什么?
- 图示说明粗页中大页的地址变换过程?
- ARM 920T 支持多少个域,如何管理?
- 在 ARM 920T 中,MMU 的存储访问失效有几种类型?都是什么?
- 在 ARM 920T 中. 当发生存储访问失效时,存储系统可以中止 3 种存储访问操作,都是什么?
- ARM 处理器有几种工作模式,都是什么?CPSR 寄存器哪几位用来记录当前的工作模式?
- ARM9 处理器,在 ARM 状态下,假设当前 PC 的值为 0x4000300C,那么流水线上正在译码的指令存储器地址是多少?正在执行的指令存储器地址是多少? (ppt无)
- 图示说明嵌入式系统启动过程中的工作模式转换?
- 发生复位异常时,处理器要执行哪些操作?
- 处理器响应异常时,要执行哪些操作?
- 异常返回时,要执行哪些操作?
- 发生 IRQ 异常时,异常返回指令是什么?
- 子程序调用时,子程序返回指令是什么? (PPT无)
- 为什么快速中断(Fiq)相对于普通中断(IRQ)能够更快的得到响应? (ppt无)
- 简单应用题
名词解释
ARM
ARM 为 Advanced RISC Machines 的缩写。
为英国 IT 业一专门提供处理器技术的公司,公司的名称为 ARM;
它代表一类嵌入式处理器技术,称为 ARM 技术;
它代表一类嵌入式处理器,利用 ARM 技术生产的嵌入式处理器称为 ARM 处理器。
IP(无)
IP(Intellectual Property)知识产权
MMU
MMU存储管理单元,用于管理存储系统。在嵌入式系统中,存储系统差别很大,可包含多种类型的存储器件,如FLASH,SRAM,SDRAM等,这些不同类型的存储器件的速度和位宽等各不相同。
MPU
MPU内存保护单元中一个域就是一些属性值及其对应的一片内存。这些属性包括:起始地址、长度、读写权限以及缓存等。
TCM
Tightly Coupled Memory,紧耦合内存,在SOC上用专用BUS与CPU连接的Memory。由于是专用BUS,可以高速访问。
CISC
复杂指令集计算机。随着计算机技术的发展而不断引入新的复杂的指令集,计算机的体系结构会越来越复杂。
据统计,CISC指令中,大约有20%指令会被反复使用,占整个程序代码的80%,而余下的80%指令却不经常使用,在程序设计中只占20% 。
RISC
精简指令集计算机。采用固定长度指令格式。基本特点如下:
(1)大多数指令只需要执行简单和基本的功能,其执行过程在一个机器周期内完成。
(2)只保留加载/存储指令。操作数由加载/存储指令从存储器取出放寄存器内操作。
(3)芯片逻辑不采用或少采用微码技术,而采用硬布线逻辑。
(4)减少指令数和寻址方式。
(5)指令格式固定,指令译码简化。
(6)优化编译
CACHE(无)
Cache,即高速缓冲存储器,是一种位于主存与CPU之间的存储器,其存取速度比主存快,但容量较小。Cache的存在是为了解决CPU与主存之间速度不匹配的问题,通过存储CPU近期可能会访问的数据和指令,来提高系统的整体性能。
TLB
快表TLB: Translation Lookaside Buffer,小容量(通常为8~16字)、高速度(访问速度和CPU中通用寄存器相当)的存储部件,存放当前访问需要的地址变换目标。
Thumb-2
Thumb-2技术,它是在ARM的Thumb代码压缩技术的基础上发展起来的,并且保持了对现存ARM解决方案的完整代码兼容性。
Thumb-2技术比纯32位代码少使用 31%的内存,减小了系统开销,同时能够提供比已有的基于Thumb技术的解决方案高出38%的性能。
Thumb指令集
目标:实现更高的代码密度
是ARM指令集的子集
执行:在指令的执行阶段,16位的指令被重新解码,完成对等的32位指令所实现的功能。
Thumb-2指令集:Thumb指令基础上的扩充
增加了一些16位Thumb指令
改进程序的执行流程
增加了一些32位Thumb指令实现一些ARM指令的专有功能,解决了Thumb指令集不能访问协处理器、特权指令和特殊功能指令的局限。
Thumb-2指令集不需要在ARM/Thumb状态之间反复切换,代码密度和性能得到的显著的提高。
SIMD
SIMD技术。单指令流多数据流,可同时进行2个16位操作数或4个8位操作数的运算。
NEON
NEON技术,将DSP和媒 体处理能力提高了近4倍。并支持改良的浮点运算,满足下一代3D图形、游戏物理应用以及传统嵌入式控制应用的需求。
TrustZone
TrustZone技术。可信区技术,是系统范围的安全方法,可以保护安全内存、加密块、键盘和屏幕等外设,从而可确保它们免遭软件攻击。 其应用可拓展到电话银行、多媒体娱乐等广阔领域。TrustZone技术是由硬件建构的访问控制方式,支持两颗虚拟的处理器。
Branch Prediction
分支预测技术。
回答问题
说明处理器的 2 种总线架构以及它们的优缺点?
- 冯·诺依曼(总线)结构
冯·诺依曼机:将数据和指令都存储在一个存储器空间中的计算机。
计算系统包含一个中央处理单元(CPU)和一个存储器空间组成。存储器空间存储数据和指令,根据统一编址对其进行读或写。
程序区和数据区在一个存储空间内,统一编址
共用一组总线
缺点(瓶颈):不能同时访问指令和数据
例如:Intel 8086
ARM ARM7处理器
MIPS MIPS处理器 - 哈佛(总线)结构
哈佛机:为数据和程序提供了各自独立的存储器空间。
程序存储区与数据存储区各自具有独立总线,独立编址。
指令和数据有不同的宽度
优点:取指与数据交换可同时进行,便于流水线作业
例如:ARM公司的ARM9处理器
ARM7、ARM9 分别采用哪种总线结构?
AMR7冯诺依曼总线结构
AMR9哈佛总线结构
采用 RISC 架构的 ARM 微处理器有哪些特点?
采用RISC架构的ARM微处理器一般具有如下特点:
- 体积小、低功耗、低成本、高性能;
- 支持Thumb(16位)/ARM(32位)双指令集,能很好的兼容8位/16位器件;
- 大量使用寄存器,指令执行速度更快;
- 大多数数据操作都在寄存器中完成;
- 寻址方式灵活简单,执行效率高;
- 指令长度固定。
- ARM 公司到现在为止定义了几种 ARM 指令集版本?版本号如何表示?
- ARM9 处理器为什么采用双指令集?
- ARM 版本 V8 架构有几套指令集,都是什么?
- 分析 ARM7TDMI-S 字母所代表的含义?
- 说明 RISC 与 CISC 的优缺点?
- 说明 TCM 和 Cache 的区别?
- 简单说明 ARM 公司的商业模式?
- ARM 处理器技术发展至今,处理器上都开发应用了哪些技术?
- 阐述说明智能手机为什么是嵌入式系统?
- 至少列举 3 款 ARM 支持的主流 OS?
采用 RISC 精简指令集的计算机有哪些基本特点?
RISC:精简指令集计算机。采用固定长度指令格式。基本特点如下:
(1)大多数指令只需要执行简单和基本的功能,其执行过程在一个机器周期内完成。
(2)只保留加载/存储指令。操作数由加载/存储指令从存储器取出放寄存器内操作。
(3)芯片逻辑不采用或少采用微码技术,而采用硬布线逻辑。
(4)减少指令数和寻址方式。
(5)指令格式固定,指令译码简化。
(6)优化编译。
什么是流水线技术?
每条指令执行分解为多步,每步由一个独立部件执行,各部件同时工作,从而实现多条指令同时执行的并行处理的技术;
处理器速度取决那些方面?
ARM7、ARM9 采用几级流水线,都是什么
ARM7:3级流水线结构。
ARM9:5级
图示说明 ARM7 三级流水线的工作原理?
ARM7、ARM9 的流水线指令执行阶段处于第几级?
3
ARM7、ARM9 流水线上正在执行的指令与程序指针的关系?
PC=当前执行指令地址+8
给出采用流水线技术的处理器,一段程序执行时间的计算公式?
流水线相关性有哪些?
- 结构相关:由结构不合理引起的冲突(例如:总线结构)
原因:某些指令在流水线中重叠执行时,产生资源冲突 。
例如:流水线上同时取指、读写数据引起冲突
措施:1)预取缓冲:采用分离式指令Cache和数据Cache。
2)增加部件缓冲:ALU中采用单独加法器来完成地址计算。 - 数据相关:
原因:当一条指令需要前面指令的执行结果,而这些指令均在流水线中重叠执行时,就可能引起流水线的数据相关。
数据相关有“写后读”、“写后写”和“读后写”等。
措施:
定向(旁路、短路):数据直接传送给后边执行部件,而不写入寄存器(流水线不停顿)
流水线互锁:管道互锁,停止执行当前指令,直到数据准备好。(流水线停顿) - 控制相关:
原因:当流水线遇到分支指令和其他会改变PC值的指令时,就会发生控制相关。
措施:1)引入延时分支。
2)尽早计算出分支转移成功时的PC值(即分支的目标地址)。
什么是超标量执行、超标量处理机,它能解决什么问题?
(一)、超标量处理机
ARM7、ARM9和ARM11等,都是单周期指令机
ARM内核包括多套指令执行部件
两条或两条以上能够同时工作的指令流水线
超标量处理机:一个时钟周期内同时执行多条指令的处理机
(二)、超标量执行 Cortex_A8
一个时钟周期内同时执行多条指令
(三)、超标量处理机问题
1、问题
多流水线的调度问题
多流水线的操作部件的资源冲突问题
2、解决冲突关注点(研发方向)
超标量处理器必须动态地检查指令相关性。
如果代码中有分支指令,必须将分支被执行和分支不被执行这两种情况分开考虑。
精确计算指令执行时间几乎是不可能的。
ARM7、ARM9 采用那个指令版本,有几套指令集,都是什么?
ARM7
指令集架构:V4版本
指令集:代码密度高,包扩32位ARM指令集、16位Thumb指令集。
ARM9
指令集架构:V4版本
指令集:32位ARM指令集和16位Thumb指令集。
开发设计嵌入式系统时,嵌入式处理器如何选型?
从应用的角度出发,选择ARM微处理器时应考虑一些问题。
- ARM微处理器内核的选择。(操作系统 指令集选择)
运行Windows CE、Linux等:ARM720T以上带有MMU的处理器,ARM720T、ARM920T、ARM922T、ARM946T、Xscale
运行uCLinux、RTLinux、uC/OS-II等: ARM7TDMI - 系统的工作频率。(速度)
系统的工作频率在很大程度上决定了ARM微处理器的处理能力。
ARM7系列:典型处理速度0.9MIPS/MHz,常见系统主时钟为20MHz-133MHz。
ARM9系列:典型处理速度1.1MIPS/MHz,常见系统主时钟频率为100MHz-233MHz。
ARM10最高可以达到700MHz。
不同芯片对时钟的处理不同,有的芯片只需要一个主时钟频率,有的芯片内部时钟控制器可以分别为ARM核和USB、UART、DSP、音频等功能部件提供不同频率的时钟。 - 芯片内存储器的容量。(片内程序存储器)
多数ARM微处理器片内存储器的容量都不大,需要用户在设计系统时外扩存储器。也有部分芯片具有相对较大的片内存储空间,如ATMEL的AT91F40162就具有高达2MB的片内程序存储空间,用户在设计时可考虑选用这种类型,以简化系统的设计。 - 片内外围电路的选择。(片内硬件模块)
几乎所有的ARM芯片均根据各自不同的应用领域,扩展了相关功能模块,并集成在芯片之中,称之为片内外围电路。如USART(UART/SCI)、IIC、SPI、USB(HOST/DEVICE)、IrDA、Ethernet(MAC)、IIS/AC97、LCD、Keypad、RTC、ADC、DAC、DSP协处理器等。 - 生产商的选择。如高通、三星电子、英伟达、德州仪器 、VLSI 、 Intel、IBM、飞思卡尔、atmel、 LG、NEC、SONY、富士通、英飞凌、任天堂、恩智浦半导体、OKI电气工业、Sharp等公司。
ARM9 有几种工作状态,都是什么?
ARM7TDMI核以后,T变种的ARM微处理器有两种工作状态:
(1)ARM状态。
(2)Thumb状态。
当ARM微处理器执行32位的ARM指令集时,工作在ARM状态。
当ARM微处理器执行16位的Thumb指令集时,工作在Thumb状态。
嵌入式系统复位后,系统执行的 ARM 代码还是 Thumb 代码?
ARM微处理器总是在ARM状态下开始执行代码。
什么情况下,嵌入式处理器会从 ARM 状态进入 Thumb 状态?从 Thumb 状态进入 ARM状态?
进入Thumb状态:
(1)当操作数寄存器的位[0]=1时,执行BX指令,使微处理器从ARM状态切换到Thumb状态 。
(2)在处理器处于Thumb状态时,如果发生异常(如IRQ、FIQ、Undef、Abort、SWI等),则异常处理返回时自动切换到Thumb状态。
进入ARM状态:
(1)当操作数寄存器的位[0]=0时,执行BX指令,可以使微处理器从Thumb状态切换到ARM状态 。
(2)在进行异常处理时,把PC指针放入异常模式链接寄存器中,并从异常向量地址开始执行程序,也可以使处理器切换到ARM状态。
ARM9 处理器存储模式(存储格式)有几种,都是什么?
存储器存储格式有两种: 大端模式、小端模式。
小端模式下,[0x40003000]=0x11223344,图示说明数据在存储器中是如何存储的?
ARM 存储数据类型有几种,都是什么?
ARM存储数据类型:六种数据类型:
(1)8位有符号和无符号字节。
(2)16位有符号和无符号半字,
以2字节的边界对齐 。
(3)32位有符号和无符号字,
以4字节的边界对齐 。
图示说明 MMU 的功能?
存储管理单元(MMU):用于在CPU和物理内存之间进行地址转换。
在什么情况下使用 MMU?为什么?
在ARM系统中,存储管理单元(MMU)主要完成的工作:
(1)将虚地址转换成物理地址。
(2)控制内存的访问权限。
MMU关闭时,虚地址直接输出到物理地址总线。
什么是页表、TLB?
页表:位于内存中,每个页表项对应于虚拟存储空间的一页,包含该虚拟页对应的物理页的地址(也就是虚页到实页)、访问权限、缓冲特性等。
快表TLB: Translation Lookaside Buffer,小容量(通常为8~16字)、高速度(访问速度和CPU中通用寄存器相当)的存储部件,存放当前访问需要的地址变换目标。
协处理器CP15 的寄存器C1 的位 0 用于设置使能MMU, 给出使能 MMU的汇编程序段?
协处理器CP15的寄存器C1的位[0]用于设置禁止/使能MMU。
C1位[0]=0时,禁止MMU;C1[0]=1时,使能MMU。
下面指令实现使能MMU:
MRC P15, 0, R0, C1, 0, 0 ; C1的内容赋给R0
ORR R0, #0x1
MCR P15, 0, R0, C1, 0, 0 ;R0的内容赋给C1
使能MMU时,其控制存储访问的过程是:
(1)首先在TLB中查找虚拟地址(要访问的存储变换条目)。
(2)如果该虚拟地址对应的地址变换目标不在TLB中,则到页表中查询对应的页表项,并把查询到的结果添加到TLB中。
(3)如果TLB已满,还需根据一定的淘汰算法进行替换。得到地址变换目标后,进行一下步骤的操作。
图示说明基于 cache 和 TLB 的存储访问原理?
ARM 920T 支持的存储块大小有几种类型,都是什么?
ARM 920T支持的存储块大小有4种:
(1)段(Section):以1MB为存储块单位。
(2)大页(Large Pages):以64KB 为存储块单位。
(3)小页(Small Pages):以4KB为存储块单位。
(4)极小页(Tiny Pages):以1KB为存储块单位。
图示说明粗页中大页的地址变换过程?
ARM 920T 支持多少个域,如何管理?
ARM 920T支持最多16个域,每个域的访问控制特性都是由CP15中的寄存器C3中的两位来控制的。
CP15中寄存器C3:每两位控制一个域的访问控制特性。
在 ARM 920T 中,MMU 的存储访问失效有几种类型?都是什么?
MMU的存储访问失效有4种类型:地址对齐失效、地址变换失效、域控制失效、访问权限控制失效。
在 ARM 920T 中. 当发生存储访问失效时,存储系统可以中止 3 种存储访问操作,都是什么?
当发生存储访问失效时,存储系统可以中止3种存储访问:cache内容预取、非缓冲的存储器访问操作、页表访问。
ARM 处理器有几种工作模式,都是什么?CPSR 寄存器哪几位用来记录当前的工作模式?
处理器的各种工作模式由当前程序状态寄存器CPSR的低5位M[4:0]决定。
ARM9 处理器,在 ARM 状态下,假设当前 PC 的值为 0x4000300C,那么流水线上正在译码的指令存储器地址是多少?正在执行的指令存储器地址是多少? (ppt无)
当前PC的值:0x4000300C
处理器状态:ARM状态(意味着指令是32位的,4字节对齐)
在ARM状态下,指令是32位宽,即4个字节。由于流水线的工作方式,我们可以推断出:
正在译码的指令:这是PC值所指向的指令的下一条指令,因为取指阶段已经为当前PC值对应的指令完成了,现在正处于译码阶段的是紧接着的下一条指令。所以,正在译码的指令的PC值是0x4000300C + 4 = 0x40003010(由于指令是4字节对齐的,所以直接加4)。因此,正在译码的指令存储器地址是0x40003010。
正在执行的指令:这是PC值所指向的指令的前两条指令(因为取指、译码之后才是执行阶段,且考虑到流水线中已有两条指令处于更靠后的阶段)。所以,正在执行的指令的PC值是0x4000300C - 2×4 = 0x40003004(每次减去4是因为每条指令占4个字节)。因此,正在执行的指令存储器地址是0x40003004。
图示说明嵌入式系统启动过程中的工作模式转换?
发生复位异常时,处理器要执行哪些操作?
复位异常时,处理器立即停止当前程序,进入禁止中断的管理模式。
从地址0x00000000处开始执行。
处理器响应异常时,要执行哪些操作?
(1)保存断点:将下一条指令的地址存入相应连接寄存器LR,以便程序在处理异常返回时能从正确的位置重新开始执行。
1)异常从ARM状态进入:LR寄存器中保存的是下一条指令的地址(一般是当前PC-- 4,与异常的类型有关);
2)异常从Thumb状态进入:LR寄存器中保存当前PC的偏移量,这样,异常处理程序就不需要确定异常是从何种状态进入的。
(2)保存状态:将CPSR复制到相应的SPSR中。
(3)修改模式值:根据异常类型,强制设置CPSR的运行模式位。
(4)中断屏蔽:中断标志位I,F配置
(5)程序转移:强制PC从相关的异常向量地址取一条指令执行,从而跳转到相应的异常处理程序处,同时设置中断禁止位,以禁止中断发生。
注意:如果异常发生时,处理器处于Thumb状态,则当异常向量地址加载入PC时,处理器自动切换到ARM状态。
异常返回时,要执行哪些操作?
异常处理完毕之后,ARM微处理器会执行以下几步操作从异常返回:
(1)恢复模式值:M[4:0]
(2)恢复状态:将SPSR复制回CPSR中。
(3)恢复屏蔽的中断:若在进入异常处理时设置了中断禁止位,要在此清除。
(4)恢复断点:将链接寄存器LR的值减去相应的偏移量后送到PC中
注意:恢复CPSR的动作会将T、F和I位自动恢复为异常发生前的值。
发生 IRQ 异常时,异常返回指令是什么?
SUBS PC,R14_irq,#4
子程序调用时,子程序返回指令是什么? (PPT无)
BX LR和MOV PC, LR
为什么快速中断(Fiq)相对于普通中断(IRQ)能够更快的得到响应? (ppt无)
1.FIQ的处理优先级比IRQ更高,甚至可以打断正在执行的IRQ;
2.FIQ模式有自己独有的寄存器,而IRQ需要和其他模式共用寄存器,在中断处理的保护/恢复现场会更快;
3.在异常向量表中,FIQ处在最末尾。在异常向量表中IRQ只能保存中断处理程序的首地址,在发生IRQ时需要一次跳转;而FIQ处在最末尾,所以可以直接将FIQ模式下的中断处理程序紧接着存放,这样在处理FIQ时就少一次跳转。
简单应用题
室外有一面彩灯展示系统,彩灯为流水显示,可以从一侧向另一侧流水
显示,也可以从两边向中间逐渐推进;还可以从中间向两边展开,
回答下列问题:
(1)、说明彩灯展示系统(嵌入式系统)组成?
(2)、现有三款嵌入式处理器系列,分别是基于 v7 Cortex-M 系列、Cortex-R 系列、
Cortex-A 系列,选择哪个系列的处理器设计本系统,为什么?
(3)、是否使用嵌入式操作系统?为什么?
(4)、利用流程图图示应用程序的执行过程?