嵌入式作业(二)159030021张倩问题1:查阅资料,比较ARMv7指令集与ARMv8指令集具体有哪些变化。答:如下表所示。ARMv8指令集分为Aarch64和Aarch32。后者与ARMv7基本相同,但是多了一些vfp的指令,或者以前的软件模拟实现改为硬件支持,可以说是靠着后者实现对Aarch32的向前兼容。Aarch64是升级的那一部分。指令编码不同(虽然也是32位);寄存器多了;寄存器变宽了(64位);功能寄存器和通用寄存器分开(除了x30也是rl);没有THUMB;另外还有架构上的变化,如exceptionlevel,stackalignment等。问题2:ARMCortex-A9的处理器架构有哪些特点。(体系结构原理、流水线、处理器宽带、频率、性能等)答:Cortex-A9微体系结构既可用于可伸缩的多核处理器(Cortex-A9MPCore™多核处理器),也可用于更传统的处理器(Cortex-A9单核处理器)。可伸缩的多核处理器和单核处理器支持16、32或64KB4路关联的L1高速缓存配置,对于可选的L2高速缓存控制器,最多支持8MB的L2高速缓存配置,它们具有极高的灵活性,均适用于特定应用领域和市场。图1ARMCortex-A9架构Cortex-A9处理器最主要的流水线性能包括以下几条:●先进的取指及分支预测处理——避免因访问指令的延时而影响跳转指令的执行。●最多支持四条指令CacheLine预取挂起——进一步减少了内存延时的影响,从而促进指令的顺利传输。●每个周期内可连续将两至四条指令发送到指令解码——确保充分利用超标量流水线性能。●Fast-loop模式——执行小循环时提供低功耗运行。●超标量解码器——每个周期可完成两条完全指令的解码。●支持指令预测执行——通过将物理寄存器动态地重新命名至虚拟寄存器池来实现。●提升了流水线的利用效率——消除了相邻指令之间的数据依赖性,减少了中断延时。●支持寄存器的虚拟重命名——以一种有效的、基于硬件的循环展开方法,提高了代码执行效率,而不会增加代码大小和功耗水平。●四个后续流水线中的任何一个均可从发射队列中选择执行指令—提供了无序分配,进一步提高了流水线利用效率,无需借助于开发者或编译器指令调度。确保专为上一代处理器进行优化的代码能够发挥最大性能,也维护了现有软件投资。●每周期支持两个算术流水线、加载-存储或计算引擎以及分支跳转的并行执行。●可将有相关性load-store指令提前传送至内存系统进行快速处理,进一步减少了流水线暂停,大幅提高了涉及存取复杂数据结构或C++函数的高级代码的执行效率。●支持四个数据CacheLine的填充请求——而且还能通过自动或用户控制预取操作,保证了关键数据的可用性,从而进一步减少了内存延时导致的暂停现象。●支持无序指令完成回写——允许释放流水线资源,无需受限于系统提供所需数据的顺序。通过综合技术,这种处理器设计能使设备的时钟频率超过1GHz,而且提供了较高的功效水平,满足了长时间电池供电工作的要求。问题3:ARMCortex-A系列、R系列和M系列的最新型号处理器是什么,有哪些技术特征。答:(1)Cortex-A72是Cortex-R系列最新的处理器。在相同的智能手机电池寿命限制下,Cortex-A72处理器相较于2014年发布基于Cortex-A15处理器、28纳米工艺节点的设备,性能可提升3.5倍;并且具备多项基于ARMv8-A架构的微架构改善,在浮点、整数和内存性能等方面提升后,可改进每一项主要工作负载的执行效率。Cortex-A72已为16纳米FinFE工艺节点优化,在移动设备的电耗范围内可以运行达2.5GHz频率,甚至更高的效能表现。除了效能的提高,Cortex-A72处理器在功耗上也展现了优异的成果。在代表性的高端移动工作负载条件下,结合Cortex-A72在16纳米FinFET+工艺技术下,能够使能耗显著下降75%。(2)Cortex-R8处理器是Cortex-R系列的最新型号处理器。Cortex-R8是一款新款实时处理器。所谓实时处理器,主要是为要求高可靠性、高可用性、高容错性、高维护性、实时响应的嵌入式系统提供高性能计算解决方案。Cortex-R8在架构设计上基本延续了Cortex-R7的特点,仍然是11级乱序流水线,ARMv7-R指令集,向下兼容,不过Cortex-R8支持最多四个核心,比上代翻一番,而且各个核心可以非对称运行,有自己的电源管理,所以能单独关闭以省电。每个核心还可以搭配最多2MB低延迟的紧耦合缓存(TCM),包括1MB指令、1MB数据,整个处理器最多8MB。相比之下,Cortex-R7每个核心最多只有128KB指令/数据缓存。Cortex-R8可以采用28/16/14nm等不同工艺制造,其中在28nmHPM工艺下主频最高可达1.5GHz,性能最高15000DhrystoneMIPS,是现在Cortex-R7的两倍,而核心面积最小可以做到仅仅0.33平方毫米。Cortex-R8可广泛用于智能手机、平板电脑、车联网、物联网等领域,尤其是能满足4GLTE-A、4.5GLTE-APro、5G通信基带和大容量存储器对低延迟、高性能和高能效的要求。微体系结构:11阶段管道与指令预取,分支预测,超标量体系结构的顺序执行,寄存器重命名,并行执行路径负载储备,MAC,shift-ALU,分裂和浮点。还有一个硬件分配器和ARM9软件兼容,ARM11Cortex-R4Cortex-R5和Cortex-R7嵌入式处理器。指令集:ARMv7-R架构Thumb-2®和Thumb。对DSP扩展的支持,以及一个可选的浮点单元,与单个或单/双精度。缓存控制器:哈佛与可选的内存架构集成控制器指令和数据缓存。缓存大小可配置从4到64kb。回写式高速缓存线路。紧耦合的内存:可选紧耦合的内存接口。TCM具有高度确定性或低延迟的、可能无法很好的响应高速缓存的应用。指令和/或数据TCM。TCM大小最高可达到1MB。中断接口:标准中断、IRQ和不可屏蔽的快速中断、FIQ、输入与支持复杂的基于优先级的中断处理的通用中断控制器(GIC)一起提供。处理器包括低延迟中断技术,该技术允许长多循环指令中断和重新启动。在某些情况下还会推迟冗长的内存访问。内存保护单元(微控制器):可选的微处理器为12或16个区域的属性,每个区域都有低至32字节的分辨率。区域可以重叠,编号最高的区域具有最高优先级。浮点单元(FPU):可选浮点单元(FPU)实现具有16个双精度寄存器且符合IEEE754的ARM矢量浮点体系结构VFPv3。运算包括加、减、乘、除、乘积累加、平方根、定点和浮点之间的转换,以及浮点常数指令。ECC:针对具有ECC位的高速缓存和/或TCM内存的可选单位错误更正和双位错误检测。处理器将自动更正单位软错误。奇偶校验:可选支持校验位错误检测缓存和/或TCMS。低延迟外围端口(LLPP):一个专用的32位AMBA(AXI和可选的AHB)端口与处理器对延迟敏感的外围设备更紧密结合。加速器联接端口(ACP):一种64位AXI辅助端口,支持处理器和外部智能外设(如DMA控制器、以太网或Flexray接口)保持一致。双核:支持处于锁步模式的冗余Cortex-R75CPU,以获得可靠的容错/故障检测系统。(3)Cortex-M7处理器是高能效Cortex-M系列处理器中具有最高性能的最新成员,它能帮助合作伙伴构建各种最复杂的微控制器与嵌入式芯片。Cortex-M7的设计旨在提供超高性能,并保持ARMv7-M架构的卓越响应性和易用性。它拥有业内领先的高性能和灵活的系统接口,是各种应用领域的理想之选。ARMCortex-M7功能ISA支持ARMv7-MDSP扩展单周期16/32位MAC单周期双16位MAC8/16位SIMD运算硬件除法(2-12周期)浮点单元单和双精度浮点单元与IEEE754兼容流水线6级超标量+分支预测性能效率5.04CoreMark/MHz*性能效率2.14/2.55/3.23DMIPS/MHz**互联64位AMBA4AXI,AHB外设端口(64MB到512MB)指令缓存0到64kB,双路组相联,带有可选ECC数据缓存0到64kB,四路组相联,带有可选ECC指令TCM0到16MB,带有可选ECC数据TCM0到16MB,带有可选ECC内存保护可选的8或16区域MPU,带有子区域和背景区域中断不可屏蔽中断(NMI)+1到240个物理中断中断优先级8到256个优先级欢喜中断控制器最多240个唤醒中断休眠模式集成WFI和WFE指令以及SleepOnExit功能。休眠和深度休眠信号。ARM电源管理工具包及可选Retention模式位操作集成指令和BitBanding支持调试可选的JTAG和串行线调试端口。最多8个断点和4个观察点。跟踪可选的指令和数据跟踪(ETM)、数据跟踪(DWT)以及指令跟踪(ITM)