《stm32嵌入式系统开发实战指南》一1.2 Cortex内核系列处理器技术特点

简介: 本节书摘来自华章出版社《stm32嵌入式系统开发实战指南》一书中的第1章,第1.2节,作者 李志明 檀永 徐石明,更多章节内容可以访问云栖社区“华章计算机”公众号查看

1.2 Cortex内核系列处理器技术特点

1.2.1 ARM Cortex-M系列处理器

ARM Cortex-M3是一种基于ARMv7体系结构的最新ARM嵌入式内核,它采用哈佛结构,使用分离的指令和数据总线(与冯?诺依曼结构的数据和指令共用一条总线相比,双总线架构使吞吐量得到有效提升)。除了使用哈佛结构,Cortex-M3 还具有其他显著的优点:具有更小的基础内核、价格更低、速度更快。与内核集成在一起的是一些系统外设,如中断控制器、总线矩阵、调试功能模块,而这些外设通常都是由芯片制造商增加的。Cortex-M3 还集成了睡眠模式和可选的完整八区域存储器保护单元。
Cortex-M3旨在向专业嵌入式市场提供低成本、低功耗的芯片,主要应用于汽车和无线通信领域。与之前其他ARM内核一样,ARM公司将内该设计授权给各个制造商来开发具体的芯片。迄今为止,已经有多家芯片制造商开始生产基于Cortex-M3内核的微控制器,如意法半导体、流明诺瑞(现已被德州仪器收购)、恩智浦等。
Cortex-M3处理器是使用最少门数的ARM CPU,相对于过去的产品大大减小了芯片面积,可减小装置的体积或采用更低成本的工艺进行生产,仅33 000门的内核性能可达l.2 DMIPS/MHz。此外,基本系统外设还具备高度集成化特点,集成了许多紧耦合系统外设,合理利用了芯片空间,使系统满足下一代产品的控制需求。总体来讲,ARM Cortex-M3处理器整合了多种技术,减少对内存的依赖,RISC内核在降低功耗的基础上提供出色的性能,可实现由以往的代码向32位微控制器的快速移植,是专为存储器和处理器的尺寸对产品成本影响极大的各种应用开发设计的。
在指令集上,Cortex-M3只支持最新的 Thumb-2指令集。这种设计的优势在于:
避免状态切换带来的额外开销;
Thumb-2指令集专门面向C语言设计,对硬件除法以及本地位域操作更为方便和高效;
允许用户在C代码层面维护和修改应用程序,易于重用;
具有调用汇编代码的功能。
综合以上这些优势,将更易于开发新产品,缩短上市时间。
Cortex-M3处理器结合了执行Thumb-2指令集的32位哈佛体系结构和系统外设,包括Nested Vectored Interrupt Controller和Arbiter总线。该技术方案在测试和实例应用中表现出较高的性能:在台机电180 nm工艺下,芯片性能达1.2 DMIPS/MHz,时钟频率高达l00 MHz。Cortex-M3处理器还实现了末尾连锁(Tail-Chaining)中断技术。该技术是一项完全基于硬件的中断处理技术,最多可减少12个时钟周期,在实际应用中可减少70%中断。并且推出了新的单线调试技术,避免使用多引脚进行JTAG调试,并全面支持RealView编译器和RealView调试产品。RealView工具向设计者提供模拟、创建虚拟模型、编译软件、调试、验证和测试基于ARMv7体系结构的系统等功能,目前,以Cortex-M4为内核的微控制器也已面市,性能较Cortex-M3有较大幅度的提升,图1.3为Cortex-M系列处理器的发展沿革及性能对比。

image

为微控制器应用而开发的Cortex-M3拥有以下性能:
实现单周期Flash应用最优化;
准确快速地中断处理,永不超过12个时钟周期,仅6个时钟周期的末尾连锁中断技术;
有低功耗时钟门控(Clock Gating)的3种睡眠模式;
单周期乘法和乘法累加指令;
ARM Thumb-2指令集混合的16/32位固有指令集,无模式转换;
包括数据观察点和Flash补丁在内的高级调试功能;
原子位操作,在一个单一指令中读取/修改/编写;
1.25 DMIPS/MHz(与0.9 DMIPS/MHz的ARM7和1.1 DMIPS/MHz的ARM9相比)。

1.2.2 ARM Cortex-R系列处理器

ARM Cortex-R系列处理器目前包括Cortex-R4和Cortex-R4F两个型号,主要适用于实时系统的嵌入式处理器。
1.Cortex-R4处理器
Cortex-R4处理器支持手机、硬盘、打印机及汽车电子设计,能协助新一代嵌入式产品快速执行各种复杂的控制算法与实时工作的运算;可通过内存保护单元(Memory Protection Unit,MPU)、高速缓存以及紧密耦合内存(Tightly Coupled Memory,TCM)让处理器针对各种不同的嵌入式应用进行最佳化调整,且不影响基本的ARM指令集兼容性。这种设计能够在沿用原有程序代码的情况下,降低系统的成本与复杂度,同时其紧密耦合内存的功能也能提供更小的规格及更高效率的整合,并带来更短的响应时间。
Cortex-R4处理器采用ARMv7体系结构,能够与现有的程序维持完全的回溯兼容性,支持现今全球各地的数十亿系统;并已针对Thumb-2指令集进行最佳化设计。此项特性带来很多的利益,其中包括:更低的时钟频率所带来的省电效益;更高的性能使各种多功能特色融入移动电话与汽车产品的设计中;更复杂的算法支持更高性能的数码影像与内置硬盘的系统。运用Thumb-2指令集,以及RealView开发套件,使芯片内部存储器的容量最多可降低30%,大幅降低系统成本,而其速度比在ARM9tt6E-S处理器所使用的Thumb指令集高出40%。由于存储器在芯片中的占用空间愈来愈多,因此这项设计将大幅节省芯片容量,让芯片制造商运用这款处理器开发各种SoC(System on a Chip)器件。
相比于前几代处理器,Cortex-R4处理器高效率的设计方案使其能以更低的时钟达到更高的性能。经过最佳化设计的Artisan Mctro内存则进一步降低嵌入式系统的体积与成本。Cortex-R4处理器搭载一个具备双指令发送功能的先进的微架构,采用90nm工艺并搭配Artisan Advantage程序库的组件,底面积不到1mm2,耗电最低0.27mW/MHz,并能提供超过600 DMIPS的性能。
Cortex-R4处理器在各种安全应用上加入了容错功能和内存保护机制,支持最新版OSEK实时操作系统;支持RealView Develop系列软件开发工具、RealView Create系列ESL工具与模块,以及Core Sight除错与追踪技术,协助设计者迅速开发各种嵌入式系统应用。
2.Cortex-R4F处理器
Cortex-R4F处理器拥有针对汽车市场而开发的各项先进功能,包括自动除错功能、可相互连接的错误侦测机制,以及可选择优化的浮点运算单元(Floating-Point Unit,FPU)。ECC(Error Correcting Code)技术能监控内存存取作业,侦测并校正各种错误。当发生内存错误时,ECC逻辑除通报错误并停止系统运作外,还会加以校正。Cortex-R4F还拥有Cortex-R4处理器的各项先进功能,能够透过高效能内存保护单元、高速缓存以及紧密耦合内存,使处理器针对各种不同的应用进行最佳化调整;同时将传统处理器中的错误侦测功能延伸至整个SoC中,系统会不断地扫描先前侦错的资料,以提升系统的可靠度。基于对安全性能的重视,Cortex-R4F处理器特别搭载了高分辨率内存保护机制,能严密控制独立的软件作业。
Cortex-R4F处理器中执行浮点运算的FPU提供胜过固定小数点操作数的动态范围及精准度。该FPU与ARM的其他处理器核心之间的FPU均维持同溯兼容性,并针对各种汽车应用常见的单精度处理作业进行优化。使用单倍精度格式,而非双倍精度的数值资料,不仅能将数据处理速度提升至2倍,更能维持必要的精度以提高SoC设计的效率。
Cortex-R4F处理器采用一套具备双指令发送功能的先进微架构,透过Artisan Advantage程序库中针对90nm工艺的优化,达到超过800 DMIPS的性能水准。Level 1内存松散的时序设计,使组件能使用高密度、低功耗的RAM,使得在总成本中占有高比重的内存能像处理器逻辑一样拥有节省空间的优势。在90nm工艺下,占用空间不到1mm2,且耗电量不到0.27 mW/MHz,可以有效地协助系统开发者降低成本与功耗。该处理器采用ARMv7ISA,功能特点与Cortex-R4类似。

1.2.3 ARM Cortex-A系列处理器

Cortex-A8处理器是一款适用于复杂操作系统及用户应用的应用处理器。该处理器支持智能能源管理(Intelligent Energy Manager,IEM)技术的Artisan Advantage程序库以及先进的泄漏控制技术,使得Cortex-A8处理器实现了非凡的速度和功耗效率。在65nm工艺下, Cortex-A8处理器的功耗不到300mW,能够提供高性能和低功耗。它第一次为低费用、高容量的产品带来了台式机级别的性能。
Cortex-A8处理器是第一款基于ARMv7架构的应用处理器,使用了能够带来更高性能、更低功耗和更高代码密度的Thumb-2指令集技术。它首次采用了强大的NEON信号处理扩展集,可为H.264和MP3等媒体编解码提供加速。Cortex-A8的解决方案还包括Jazelle-RCTJava加速技术,对实时(JTT)和动态调整编译(DAC)提供最优化,同时减少内存占用空间高达3倍。该处理器配置了先进的超标量体系结构流水线,能够同时执行多条指令,并且提供超过2.0 DMIPS/MHz的性能。该处理器集成了一个可调尺寸的二级高速缓冲存储器,能够同高速缓存的16KB或者32KB一级高速缓冲存储器一起工作,从而达到最快的读取速度和最大的吞吐量。
Cortex-A8处理器使用了先进的分支预测技术,并且具有专用的NEON整型和浮点型流水线进行媒体和信号处理。在使用小于4mm2的硅片及低功耗的65nm工艺的情况下,Cortex-A8处理器的运行频率将高于600MHz(不包括NEON追踪技术和二级高速缓冲存储器)。在高性能的90nm和65nm 工艺下,Cortex-A8处理器运行频率最高可达1GHz,能够满足高性能消费产品设计的需要。
这些新的Cortex处理器都是基于ARMv7架构的产品,从尺寸和性能方面来看,既有少于33 000个门电路的Cortex-M系列,也有高性能的Cortex-A系列。其中,ARMCortex-A系列是针对日益增长的,能够运行包括Linux、Windows CE和Symbian操作系统在内的消费者娱乐和无线产品设计的;Cortex-R系列针对的是需要运行实时操作系统进行控制应用的系统,包括汽车电子、网络和影像系统;Cortex-M系列则是为那些对开发费用非常敏感同时对性能要求不断增加的嵌入式应用(如微控制器、汽车车身控制系统和各种大型家电)所设计的。随着在各种不同领域应用需求的增加,微处理器市场也在趋于多样化。为了适应市场的发展变化,基于ARMv7架构的ARM处理器系列将不断拓展自己的应用领域。事实上,Cortex-A系列处理器家族目前已有Cortex-A7、Cortex-A8、Cortex-A9和Cortex-A15等内核,并且家族仍在继续扩大。

相关文章
|
7月前
|
存储 编译器 C语言
STM32开发 -- Keil基本使用
STM32开发 -- Keil基本使用
307 0
|
4月前
|
传感器 数据采集 物联网
基于STM32的光敏传感器数据采集系统-嵌入式系统与设计课程设计2
基于STM32的光敏传感器数据采集系统-嵌入式系统与设计课程设计
213 0
|
3月前
|
缓存 编译器 程序员
嵌入式开发环境Vscode开发STM32单片机程序
嵌入式开发环境Vscode开发STM32单片机程序
55 0
|
3月前
|
芯片
嵌入式系统中STM32时钟系统详解
嵌入式系统中STM32时钟系统详解
47 0
|
4月前
|
传感器 数据采集 物联网
基于STM32的光敏传感器数据采集系统-嵌入式系统与设计课程设计1
基于STM32的光敏传感器数据采集系统-嵌入式系统与设计课程设计
235 0
|
10月前
|
NoSQL Shell C语言
用GCC开发STM32,正点原子开发板的一个库函数版本例程示例
用GCC开发STM32,正点原子开发板的一个库函数版本例程示例
用GCC开发STM32,正点原子开发板的一个库函数版本例程示例
|
10月前
|
NoSQL 数据可视化 编译器
用GCC开发STM32入门二
用GCC开发STM32入门二
|
10月前
|
IDE 编译器 Linux
用GCC开发STM32入门一(使用官方库)
用GCC开发STM32入门一(使用官方库)
|
10月前
|
存储 IDE 安全
STM32CubeMX开发教程(2)— 使用教程(点亮LED灯)
STM32CubeMX开发教程(2)— 使用教程(点亮LED灯)
419 0
|
2月前
|
C++ 芯片 编译器
STM32F103标准外设库—— 新建工程与库函数(四)
STM32F103标准外设库—— 新建工程与库函数(四)
44 0
STM32F103标准外设库—— 新建工程与库函数(四)