Cortex-M55来了,将集成在下一代STM32、Keil MDK等产品中

Source

关注、星标公众,不错过精彩内容

整理:黄工

公众号:strongerHuang

昨天(2020-02-10),Arm官方推出Cortex-M55处理器,它是一款支持AI处理能力的Cortex-M处理器,也是首款采用Arm Helium技术的芯片。它的出现将增强IoT终端设备的AI性能

一、首推Cortex-M55

Cortex-M55是首款采用Arm Helium技术的芯片,为物联网设备带来了节能的ML和DSP性能的显着提升。Arm提供了多种开发工具和模型,以帮助各MCU厂商将基于Cortex-M55的设备推向市场。与以前的Cortex-M设计相比,Arm工具和模型对于了解体系结构差异和性能改进特别有用。

Arm Helium技术:

Arm Helium技术用于Arm Cortex-M内核的M-Profile矢量扩展,为其提供高达15倍的机器学习性能和高达5倍的信号处理能力,这样一来,我们可以继续使用M内核芯片,而无需采用更高性能的处理器架构。 

Helium和Neon(用于Cortex-A处理器的高级SIMD技术)具有相似性,但Helium专为单片机的高效信号处理性能而设计。

二、Cortex-M55特性

Cortex-M55处理器可提高设备上的处理性能,同时保持Cortex-M的易用性,包括单个工具链和熟悉的软件开发生态系统。与现有的Cortex-M处理器相比,超过150种新的标量和矢量指令,低开销循环和半精度浮点都有助于将ML性能提高15倍,并将信号处理性能提高5倍。

Cortex-M55处理器具有多种配置的高度可配置性,以提高性能和安全性。对于DSP应用,矢量单元每个周期支持两个32位MAC运算,扩展的算术支持包括用于ML工作负载的8位固定点。

Cortex-M55处理器具有多项优势,包括增强的ML和DSP性能,简单的程序员模型,统一的控制和信号处理以及对通用ML框架。

特点和优点:

1.提高机器学习和DSP性能

与现有的Cortex-M处理器相比,ML的性能提高了15倍,信号处理性能提高了5倍。

2.加快上市时间

Corstone-300参考设计提供了最快,最安全的方式来将Cortex-M55集成到片上系统(SoC)中。

3.简化软件开发

由广泛的软件,工具,库和资源生态系统支持的单一开发人员工具链。

三、Cortex-M55技术指标

内核框架:

技术参数:

详细介绍请参看:

https://developer.arm.com/ip-products/processors/cortex-m/cortex-m55

四、开发工具和开发人员

借助Arm工具,可以在基于Cortex-M55的芯片对软件进行编译,执行和调试。

1.已有的工具

所有开发工具都已经在早期提供并使用,只需要升级即可,并将于2020年3月、4月公开。

Keil MDK:Cortex-M项目的最受欢迎的工具,将在MDK V5.30集成。

请参看我教程:Keil MDK 系列教程

Arm Development Studio:适用于任何Arm IP的集成开发环境。

Arm Fast Models:一个全面的建模环境。

Arm Fixed Virtual Platform:使用Arm快速模型构建的虚拟开发板,无需物理板即可进行软件开发,并在11.10中支持Cortex-M55处理器。

Arm Cycle Models:Arm IP的100%周期精确的Arm IP模型,用于性能分析和IP选择。

2.开发人员

嵌入式软件开发工程师:使用Arm工具来学习新的矢量指令,循环增强功能,新的寄存器,节拍概念以及编程模型的其他增强功能。

算法开发工程师:使用Arm工具将现有算法移植到基于Cortex-M55的设备上,并优化代码以利用提高的性能和降低的软件复杂性。

SoC架构师:使用Arm工具进行性能分析,以将基于Cortex-M55的系统与以前的Cortex-M设计进行比较,并为即将到来的项目做出明智的IP选择决策。

五、在Cortex-M55处理器上开发

Keil MDK和Arm Development Studio中都包含Arm最新的编译器Arm Compiler 6。包括Armv8.1-M和Cortex-M55处理器。Arm Compiler 6.14增加了对Cortex-M55处理器的特定支持。它汇集了现代LLVM编译器基础结构和高度优化的Arm库和链接器。

1.hello.c代码

一个乘累加(MLA)函数的例子,它可以被Arm编译器自动向量化

__attribute__((noinline)) int mla(short *a, short *b, int length) 
{ 
    int i; 
    int sum = 0;


    for(i = 0; i < length; i++) 
    { 
        sum += a[i] * b[i]; 
    }


    return sum; 
}

2.从Arm Compiler 5迁移到Arm Compiler 6,将需要对编译器命令行选项进行一些更改:

3.调试代码

开发Cortex-M55处理器可用Keil MDK 和 Development Studio工具。

Development Studio中的反汇编窗口显示上面示例中的向量指令:

µ Vision调试器显示矢量指令的反汇编 : 

Development Studio  和µ Vision 显示矢量寄寄存器,包括Q寄存器(最适合您的格式)和VPR(矢量预测状态和控制寄存器):

µ Vision 具有有可配置,显示的Helium寄存器的专用视图:

更多介绍和开发资料请见Arm官方的信息。

‧  END  

推荐阅读:

精选汇总 | 目录 | 搜索

ANSI C、ISO C、Standard 是什么关系?

支持10K高清视频是HDMI 2.1有什么特点?

关注微信公众号『strongerHuang』,后台回复“1024”,查看更多精彩内容

长按前往图中包含的公众号关注

发布了418 篇原创文章 · 获赞 4166 · 访问量 266万+