ARM

近日,Arm发布了Arm® Cortex®-R系列的最新产品Cortex-R52+,可支持汽车电子设计的演变,帮助汽车研发人员在巨大的压力下,达成汽车设计的要求。

Arm汽车事业部副总裁Chet Babla表示:“随着虚拟电子控制单元(ECU)的应用越来越普遍,它们需要通过验证过的嵌入式实时技术提供支持,实现虚拟嵌入式应用之间的严格隔离。Cortex-R52+ 可为具有功能安全要求的实时应用提供更好的可配置性。这对于ECU的整合日益重要。”

作为Arm安全就绪(Safety Ready)产品组合的一部分,Cortex-R52+ 能够出色地满足异构SoC内部集成的安全岛的需求,广泛应用于包括ADAS和座舱控制器在内的诸多应用。该IP采用多处理器配置,单个集群内部可容纳多达四对锁步(lock-stepped)CPU,以提供最高的安全完整性,此外,如果需要更高的计算性能,也可以将其配置为8个CPU。

Cortex-R52+基于以下三大基础技术:

  • 软件隔离:通过硬件实现的软件隔离,意味着软件功能互不干扰。对于安全相关的任务,这也意味着需要认证的代码更少,从而节省了时间、成本和工作量。
  • 支持多个操作系统:借助虚拟化功能,开发人员能够在单个CPU内,使用多个操作系统来整合应用。这样可以简化功能的添加,而无需增加电子控制单元的数量。
  • 实时性能:Cortex-R52+的高性能多核集群可为确定性系统提供实时响应能力,且在所有Cortex-R产品中产生的延迟最低。

与Cortex-R52相同,Cortex-R52+ 将采用独立评估和认证,达到ISO 26262标准的ASIL D等级,以及IEC 61508标准的SIL 3等级,可以避免系统性失效和覆盖随机硬件故障。

汽车设计人员面临的巨大压力

如今的汽车设计人员面临着三大压力。第一,汽车电动化发展迅速:根据Strategy Analytics的预测,到2027年,全球汽车销量中将有40%是油电混合或纯电动汽车。第二,为处理座舱,引擎,底盘和传动系统中的高级功能,软件将变得越来越复杂,对应用整合的需求也不断提升,这就需要包括实时功能在内的混合计算能力。第三,安全关键型元件越来越多,意味着汽车设计必须达到ISO 26262等汽车功能安全标准的要求。

现如今的汽车可能采用远多于100个单独的ECU,高档汽车制造商表示,他们的汽车平均每年增加四个ECU。随着ECU的增加,汽车就需要更多复杂、昂贵且沉重的线缆,迫使汽车电子设计人员必须整合设计,将许多控制功能集成到少量但具备更高算力的域控制器或区域控制器中。

由于同一计算资源将被更多应用共享,因此虚拟化需求不容忽视。处理器内核是正在应用虚拟化的领域之一,它们处理时间关键功能并管理安全岛。随着时间关键型系统整合到域控制器和区域控制器中,设计人员必须能够保持确定性的实时执行。

增强汽车功能安全性

长期以来,Arm不断加大对汽车计算产品的投资,旨在让OEM能够满足这些不断变化且高要求的汽车设计需求。2020年,Arm发布了功能强大的下一代CPU、GPU和图像信号处理器,例如Arm Mali-C71AE。这些处理器的设计都是为了可以集成到安全相关系统,以满足针对汽车的ISO 26262 / ASIL B和ASIL D以及工业应用中的IEC 61508 SIL 2和SIL 3完整性要求。

征程才刚刚开始

Arm对于汽车设计愿景的核心原则是安全功能必须基于坚实的基础,Cortex-R52+ 的推出强化了这一基础,为时间关键型应用提供了增强的安全性、灵活性和实时性能。

Arm仍在继续开发安全就绪产品组合,不仅包括芯片IP,还包括安全包和相关软件,例如软件测试库(STL),功能安全运行时系统(FuSa RTS),以及Arm功能安全编译器等开发工具。该产品组合不仅仅能帮助硬件产品开发,这些解决方案将会显著加快软件开发和验证,同时缩短部署安全可靠的系统的路径。

打造更安全的驾驶世界所面临的挑战是使设计师和开发人员能够更快,更高效地交付更先进,功能更安全,更具信息安全且更具成本效益的解决方案。这是汽车发展历史上的重大挑战之一,Arm将不惧挑战,创造历史。

来源:汽车电子应用网

围观 65

本文所述的ARM的指的是Cortex A系列以及ARM9,ARM11,跑Linux操作系统。对于CortexM系列并不一定完全适用;

谈到ARM以及启动和烧写等方面,首先我们要明确一下几个关键词:Uboot,Cmdline,启动方式选择,文件系统格式,存储介质,如NAND,EMMC,SD卡等

下面一个一个做相关介绍:

启动方式:

① 一般CPU都可以配置为从多种介质启动,比如SPI Nor Flash,NAND,EMMC,SD卡,U盘等
② 大致原理是CPU内部ROM有一段固化的启动代码,根据CPU配置引脚,判断启动位置,然后从外部介质读取数据启动
③ 一般启动介质的前一部分代码的作用必须是:初始化硬件参数,自身拷贝
④ 关于自拷贝:因为CPU内部RAM很小,因此只能读取一部分启动介质的数据即Uboot到内部RAM运行,所以Uboot前一部分的工作需要将自身剩余部分拷贝到外部RAM中,然后加载运行

Uboot:

① 主要作用:引导Linux系统(主要是从存储介质的哪个地方读取Kernel,传递什么样的启动参数)
② 其他功能:支持很多命令,主要是存储控制和网络命令,最终目的还是引导和升级系统用
③ 常用操作:TFTP,NAS,Flash操作,UBI操作,Setenv,boot等
④ 一般升级系统流程:使用tftp方式从主机下载kernel及文件系统等文件,然后使用flash等命令烧写到存储介质如NAND,最后设定启动参数,然后引导系统启动;
⑤ 一般调试流程,介绍2种:
- 使用NAS从主机直接加载文件系统,直接在线调试,快捷方便
- 设定从SD卡启动,从SD卡加载kernel和文件系统调试

CMDLINE:

① 一般由Uboot传递给Kernel,或者Kernel中配置写死不过一般很少见

② 主要2个参数:
第一,指定console设备,用于打印输出及做控制台用
第二,指定rootfs挂载分区和类型

③ 看2个例子:

从NAND启动,/proc/cmdline,加载的是UBI文件系统,位置在mtd3

console=ttymxc0,115200 ubi.mtd=3 root=ubi0:rootfs rootfstype=ubifs mtdparts=gpmi-nand:5m(boot),10m(kernel),1m(dtb),-(rootfs)

从SD卡启动,/proc/cmdline,加载的是ext4文件系统,位置在sd卡第二分区mmcblk0p2

console=ttymxc0,115200 root=/dev/mmcblk0p2 rootwait rw rootdelay=5 mem=256M fstype=ext4 mtdparts=gpmi-nand:5m(boot),10m(kernel),1m(dtb),-(rootfs)

存储介质:

主要介绍Raw Flash 及 FTL devices区别

Flash特点:写入前需要先擦除,有寿命且不长,而且容易产生坏块

RAW Flash:即裸芯片,没有控制器,针对其主要操作有擦除,读和写

Device: 在裸芯片上加了控制器,比如SD卡,U盘等;加了控制器后,只需要读和写就行了,不需要擦除。控制器做了一系列的工作:擦除,磨损平衡,磨损算法等等,一个控制器算法的好坏直接决定了设备的使用寿命。

文件系统:

① FAT:windows常用文件系统,一般U盘,sd卡即为fat格式
② ext2/3/4,Linux常用文件系统,一般用于FTL Device,即只有读和写
③ JFFS2,Linux常用,一般用于容量较小的Flash,且是Raw Flash,MTD设备
④ UBIFS,Linux常用文件系统,只能用于Raw Flash,因为kernel ubi子系统,有相关的磨损平衡算法,可以保证效率
⑤ SD卡启动,文件系统挂载情况:

# mount
/dev/root on / type ext4 (rw,noatime,data=ordered)
proc on /proc type proc (rw,nosuid,nodev,noexec,noatime)
sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,noatime)
tmpfs on /tmp type tmpfs (rw,nosuid,nodev,noatime)
tmpfs on /dev type tmpfs (rw,nosuid,relatime,size=512k,mode=755)
devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,mode=600)
debugfs on /sys/kernel/debug type debugfs (rw,noatime)
#
# cat /proc/mtd
dev:    size   erasesize  name
mtd0: 00500000 00020000 "boot"
mtd1: 00a00000 00020000 "kernel"
mtd2: 00100000 00020000 "dtb"
mtd3: 0f000000 00020000 "rootfs"

⑥ NAND启动,文件系统挂载情况:

# mount
ubi0:rootfs on / type ubifs (rw,relatime)
devtmpfs on /dev type devtmpfs (rw,relatime,size=89164k,nr_inodes=22291,mode=755)
proc on /proc type proc (rw,relatime)
devpts on /dev/pts type devpts (rw,relatime,gid=5,mode=620)
tmpfs on /dev/shm type tmpfs (rw,relatime,mode=777)
tmpfs on /tmp type tmpfs (rw,relatime)
tmpfs on /run type tmpfs (rw,nosuid,nodev,relatime,mode=755)
sysfs on /sys type sysfs (rw,relatime)
#
# cat /proc/mtd
dev:    size   erasesize  name
mtd0: 00500000 00020000 "boot"
mtd1: 00a00000 00020000 "kernel"
mtd2: 00100000 00020000 "dtb"
mtd3: 0f000000 00020000 "rootfs"

烧写过程:
① 一般从SD卡等外部方式启动,在Uboot中,使用flash命令及UBI命令分别烧写uboot,dtb,kernel,rootfs到对应的分区即可
② 第二使用芯片厂家的烧写工具,如nxp的 mfgtoos,在pc上通过usb烧写文件
③ 如已有uboot,在uboot中从sd卡,U盘等读取文件烧写;或tftp从pc下载文件烧写

升级过程:
① 此升级指的是Uboot OK的前提下做Uboot,kernel,rootfs等升级
② 通过SD卡升级,一般是首先在PC上制作SD卡启动分区,通过官方的工具烧写升级文件到SD卡即可;此处的升级文件分两个方面:

  • 最小升级内核,并且包含升级脚本,此脚本会将目标文件烧写到存储介质中
  • 目标升级文件,即要烧写到比如NAND中的文件

③ 以NXP SD卡升级为例说明此过程:

首先是Uboot启动过程:

U-Boot 2016.03-mys-imx6ulx+gca7b81f (Apr 27 2017 - 07:55:51 +0800)
 
CPU:   Freescale i.MX6ULL rev1.0 528 MHz (running at 396 MHz)
CPU:   Commercial temperature grade (0C to 95C) at 39C
Reset cause: POR
Board: MX6ULL 14x14 EVK
I2C:   ready
DRAM:  512 MiB
MMC:   FSL_SDHC: 0, FSL_SDHC: 1
*** Warning - bad CRC, using default environment
Display: TFT43AB (480x272)
Video: 480x272x24
In:    serial
Out:   serial
Err:   serial
switch to partitions #0, OK
mmc0 is current device
Net:   Board Net Initialization Failed
No ethernet found.
Normal Boot
Hit any key to stop autoboot:  0
switch to partitions #0, OK
mmc0 is current device
switch to partitions #0, OK
mmc0 is current device
reading boot.scr
423 bytes read in 10 ms (41 KiB/s)
Running bootscript from mmc ...
## Executing script at 80800000
reading zImage
6789824 bytes read in 302 ms (21.4 MiB/s)
reading mys-imx6ull-14x14-evk-gpmi-weim.dtb
36951 bytes read in 20 ms (1.8 MiB/s)
Kernel image @ 0x83000000 [ 0x000000 - 0x679ac0 ]
## Flattened Device Tree blob at 84000000
   Booting using the fdt blob at 0x84000000
   Using Device Tree in place at 84000000, end 8400c056
Starting kernel ..

最小系统加载启动完毕后,运行升级脚本

VFS: Mounted root (ext4 filesystem) on device 179:2.
devtmpfs: mounted
Freeing unused kernel memory: 432K (80b54000 - 80bc0000)
INIT: version 2.88 booting
Starting udev
udevd[114]: starting version 3.1.5
random: udevd urandom read with 32 bits of entropy available
EXT4-fs (mmcblk0p2): re-mounted. Opts: data=ordered
bootlogd: cannot allocate pseudo tty: No such file or directory
FAT-fs (mmcblk0p1): Volume was not properly unmounted. Some data may be corrupt. Please run fsck.
ALSA: Restoring mixer settings...
/usr/sbin/alsactl: load_state:1735: No soundcards found...
INIT: Entering runlevel: 5
Starting system message bus: dbus.
 
System update start ...
prepare files are okay

升级脚本分析:

root@mys6ull14x14:/run/media/mmcblk0p2# cat usr/bin/flash_nand.sh
#!/bin/sh
part_uboot=0
part_kernel=1
part_dtb=2
part_rootfs=3
 
echo heartbeat > /sys/class/leds/user/trigger
 
mfg_path=/run/media/mmcblk0p1/mfg-images  
 
//升级目标文件
 
uboot=${mfg_path}/u-boot.imx 
kernel=${mfg_path}/zImage
dtb=${mfg_path}/gpmi-weim.dtb
rootfs=${mfg_path}/core-image-base.rootfs.tar.xz
 
if [ -d $mfg_path ] && [ -s $uboot ] && [ -s $kernel ] && [ -s $dtb ] && [ -s $rootfs ]
then
    echo "prepare files are okay"
else
    echo 0 > /sys/class/leds/user/brightness
    echo "file or directory not exist"
fi
 
直接使用Flash命令烧写Uboot到对应分区
echo "Flashing uboot"
flash_erase /dev/mtd${part_uboot} 0 0 && kobs-ng init -x -v ${uboot}
if [ $? -eq 0 ]
then
    echo "Flash uboot okay"
else
    echo "Flash uboot failed"
    echo 0 > /sys/class/leds/user/brightness
    exit
fi
 
直接使用Flash命令烧写kernel到对应分区
 
 
echo "Flashing kernel"
flash_erase /dev/mtd${part_kernel} 0 0 && nandwrite -p /dev/mtd${part_kernel} -p ${kernel}
if [ $? -eq 0 ]
then
    echo "Flash kernel okay"
else
    echo "Flash kernel failed"
    echo 0 > /sys/class/leds/user/brightness
    exit
fi
 
直接使用Flash命令烧写dtb到对应分区
 
echo "Flashing dtb"
flash_erase /dev/mtd${part_dtb} 0 0 && nandwrite -p /dev/mtd${part_dtb} -p ${dtb}
if [ $? -eq 0 ]
then
    echo "Flash dtb file okay"
else
    echo "Flash dtb file failed"
    echo 0 > /sys/class/leds/user/brightness
    exit
fi
 
烧写rootfs比较特别,此处是使用ubifs,因此需要先使用ubi命令在NAND上建立好文件系统格式
 
echo "Flashing rootfs"
flash_erase /dev/mtd${part_rootfs} 0 0
if [ $? -ne 0 ]
then
    echo "erase /dev/mtd${part_rootfs} fail"
    echo 0 > /sys/class/leds/user/brightness
    exit
fi
 
ubiformat /dev/mtd${part_rootfs}
if [ $? -ne 0 ]
then
    echo "format /dev/mtd${part_rootfs} fail"
    echo 0 > /sys/class/leds/user/brightness
    exit
fi
 
ubiattach /dev/ubi_ctrl -m ${part_rootfs}
if [ $? -ne 0 ]
then
    echo "attach /dev/mtd${part_rootfs} fail"
    echo 0 > /sys/class/leds/user/brightness
    exit
fi
 
ubimkvol /dev/ubi0 -Nrootfs -m
if [ $? -ne 0 ]
then
    echo "make volume /dev/mtd${part_rootfs} fail"
    echo 0 > /sys/class/leds/user/brightness
    exit
fi
 
mkdir -p /run/media/mtd${part_rootfs} \
 && mount -t ubifs ubi0:rootfs /run/media/mtd${part_rootfs}
if [ $? -ne 0 ]
then
    echo "mount /dev/mtd${part_rootfs} fail"
    echo 0 > /sys/class/leds/user/brightness
    exit
fi
 
建立好ubi格式之后,直接将rootfs压缩包解压到对应分区即可;
 
tar xvf ${rootfs} -C /run/media/mtd${part_rootfs}
if [ $? -eq 0 ]
then
    echo "Flash filesystem okay"
    sync && sync && sync
    echo none > /sys/class/leds/user/trigger
    echo 1 > /sys/class/leds/user/brightness
else
    echo "Flash filesystem failed"
    echo 0 > /sys/class/leds/user/brightness
    umount /run/media/mtd${part_rootfs}
    exit
fi
umount /run/media/mtd${part_rootfs}
echo "Programming success"
echo "You need reboot the board"

版权声明:本文为博主 WindLOR 原创文章,
遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/wind0419/article/details/77973144

围观 331

Arm以其在移动设备中的Cortex系列处理器而闻名,然而主流Cortex-A系列CPU并不是该公司唯一提供的CPU,Arm还提供了用于高性能实时应用的Cortex-R系列 "实时 "处理器。上一次我们谈到Cortex-R产品是在2016年发布的R8。当时,该公司提出R8将广泛用于调制解调器子系统内部的5G连接解决方案。

R系列的另一大市场是存储解决方案,Cortex-R处理器作为主要的处理元件被用于HDD和SSD控制器。今天,Arm公司推出了全新的Cortex-R82,代表了该公司首款64位Armv8-R架构处理器IP,这意味着它是该公司首款64位实时处理器,从而扩展了R系列的产品组合。

到目前为止,上一代R处理器都是基于前代Armv7-R或ArmV8-R的32位架构,比如Cortex-R52。多年来,这对于部署这些处理器的用例来说还是不错的,也足够了。然而,在现代产品中,我们看到更大内存寻址的设计变得必要。例如,现代固态硬盘在其控制器上经常使用高达2GB的DRAM内存,这接近于R8 CPU的32位4GB内存寻址限制。

新的Cortex-R82增强了核心,使其性能比R8提升了2倍,使用了更宽的物理寻址空间,最高可达1TB,这与系统的其他部分是一致的。Arm目前并没有透露太多关于R82的微架构,以及它与R8的不同之处,但我们猜想随着向Armv8-R架构的转变,会有一些重大的变化。

从架构和微架构方面来看,这里一个重要的新增功能是可选择加入用于SIMD处理的NEON单元,包括新的点产品指令。这将使处理器本身具有更高性能的并行处理计算能力,使SSD控制器设计者等客户的设计更具灵活性。

微架构的另一大变化是加入了MMU,这使得Cortex-82实际上可以作为Linux等丰富操作系统的通用CPU。如果处理器可以自己运行自己的操作系统,这对于-R系列未来的目标市场可能性来说,其实是一个相当大的变化。Arm的产品介绍主要集中在存储控制器上,既能像现在这样运行实时工作负载,又能加入丰富的操作系统,以实现更复杂的算法和更高层次的应用,而这些在裸机和实时操作系统上是不太可行的。

随着存储市场的发展,我们看到合作伙伴提出的最大要求之一就是灵活性。Cortex-R82处理器的新特性让合作伙伴有可能设计出多达8个内核的多核实现,并根据软件中的外部需求调整存储控制器上运行的工作负载类型。例如,停车场会经常使用视频监控来识别车牌信息,而这些车牌信息以后会被用于计费。在白天,车辆登记车牌数据会被收集,这意味着大部分核心被用于密集存储。到了晚上,这些核心将用于处理计费数据,并将调整进行所需的数据分析和机器学习。随着存储控制器越来越多样化,以应对不同的市场和功能,Cortex-R82提供的架构可以提供这种极度的灵活性--降低成本和上市时间。

Arm表示,目前85%的存储解决方案都使用Cortex-R处理器,因此新的R82很可能代表着性能的大跃进,并为厂商在未来设计中设计新的差异化功能提供了新的可能性。





来源:cnBeta.COM

围观 91

梳理下ARM代码编译链接的工作流程,以及过程中需要的相关概念信息,不具体关注编译链接的具体命令。

一、编译过程

编译过程就是把源代码编译生成目标代码的过程。而采用ARM编译命令,可以将源代码编译成带有ELF格式的目标文件。除了编译命令可以选择相应的编译选项之外,源代码中的pragmas以及特别的关键字也会对编译过程/结果产生一定影响。

1. makefile文件

Makefiile类似一个脚本文件,这个文件用来定义编译过程,其中包含了需要编译的文件、文件顺序,编译的宏定义等等,可以看做完整编译需要的信息及过程的集合。

2. ELF格式文件

ELF文件:(Executable and Linkable Format) ELF文件出了包含编译出的二进制代码,还包含其他链接需要信息,ELF格式提供了相应代码/数据对应编译出的地址信息、文件信息等内容。

二、链接过程

链接就是把编译生成的目标文件和链接库处理成为相应ELF格式的映像文件(image),最终的文件可以写入嵌入式系统的ROM/FLASH中。映像文件中包含:分组信息和定位信息,亦即输出段/域及地址定位信息。链接器同时可以生成相应与域有关的符号来指示关于加载时地址、运行时地址、加载时长度限制、运行时长度限制等信息。同时链接器也具有优化的功能,删除不必要的代码、段域等。

1. 映像文件的组成
一个映像文件包含一个或多个域;一个域包含一个或多个输出段;一个输出段包含一个或多个输入段;输入段中包含了目标文件的代码和数据。

输入段的内容:代码、已初始化的数据、未初始化的数据、初始化0的存储区域。

输出段和域中包含:RO、RW、ZI域。

2. 映像文件的地址映射

加载时地址和运行时地址的区别:加载时地址是运行前的地址,简单理解在FLASH中固定存储即为加载时地址,而若代码载入RAM运行时,新的地址为运行时地址;而程序在FLASH中运行,加载时地址和运行时地址就一致了。当地址映射复杂时,可以通过scatter配置文件进行设置。

3. 初始入口点和普通入口点

初始入口点:运行时的入口点,初始入口点必须位于映像文件运行时入口点,而它的加载时地址和运行时地址一致(称为固定域)。可以通过-entry指定映像文件的初始入口点。

普通入口点:用ENTRY伪操作定义在程序中,一般为中断服务程序的入口点。

4. scatter文件中包含的信息

加载时域描述、运行时域描述、输入段描述、输入段选择符;加载时域包括:名称、起始地址、属性、最大尺寸和一个运行时域;运行时域包括:名称、起始地址、属性、最大尺寸和一个输入段集合;输入段选择符描述了输入段名称或属性的匹配方式。

输入段属性:RO-CODE/CODE、RO_DATA/CONST、RO/TEXT包括前两项、RW_DATARW/DATA(RW_CODE+RW_DATA)、BSS、ZI;FIRST\LAST来指定运行时域的开头结尾,.ANY可以根据实际情况安排到合适的运行时域。

可以使用FIXED属性将域放置在ROM中固定位置,加载时域和固定时域即相同。

小知识

1.程序断点

断点可以分为:软件断点和硬件断点,软件断点可以相应地址插入相应的指令实现,而硬件断点必须要需要相应硬件支持才能实现。

2.链接库的概念

链接库分为:静态链接库和动态链接库,而动态链接库又分为加载时动态链接库和运行时动态链接库;其差别:静态链接库的使用内容包含在生成的目标代码中,加载时动态链接库是程序载入内存时知道相应的动态链接库调用内容同时调入内存中,而运行时动态链接库只有在运行到需要调用时才调入使用。

3.JTAG

JTAG仿真器也称为JTAG调试器,是通过ARM芯片的JTAG边界扫描口进行调试的设备。JTAG仿真器比较便宜,连接比较方便,通过现有的JTAG边界扫描口与 ARM CPU 核通信,属于完全非插入式(即不使用片上资源)调试,它无需目标存储器,不占用目标系统的任何端口,而这些是驻留监控软件所必需的。

另外,由于JTAG调试的目标程序是在目标板上执行,仿真更接近于目标硬件,因此,许多接口问题,如高频操作限制、AC和DC参数不匹配,电线长度的限制等被最小化了。使用集成开发环境配合JTAG仿真器进行开发是目前采用最多的一种调试方式。

本文章来源网络,如果原作者不支持咱们转发,请联系删除,谢谢!

围观 19

(2020226日)2019财年第三季度(20199-12月)中,Arm半导体合作伙伴基于Arm技术的芯片出货量达到64亿颗,再创历史新高,这也是过去两年内第三次创下单季出货量新高。

其中,Cortex-M处理器的出货量达到42亿颗,再次刷新纪录,Arm由此看到终端设备对于嵌入式智能的需求不断增加。截止到目前,Arm的合作伙伴已经出货超过1600亿颗基于Arm技术的芯片,过去三年平均每年出货超过220亿颗芯片。

Arm IP产品事业群总裁Rene Haas 表示:“上一季度,Arm合作伙伴基于Arm技术的芯片出货量达到了创纪录的64亿颗,其中包括刷新纪录的42亿颗Cortex-M处理器,进一步证明了Cortex-M是嵌入式与物联网应用的首选处理器。”

“此外,我们对新技术与开发人员生态系统的加速投资也为我们带来了2015年以来单季最多的授权协议数量。Arm携手全球最大的计算生态系统,积极为更多终端设备带来更高效的智能,打造人工智能驱动的网络边缘,同时为云端带来更高的效率与更低的成本。”

关于Arm

作为计算及互联革命的核心Arm技术正改变着人们生活及企业运行的方式。Arm先进的低功耗处理器设计已应用于超过1,600亿颗芯片的智能计算,Arm的技术安全地为电子设备提供支持,覆盖从传感器到智能手机乃至超级计算的多样化应用。结合我们的物联网设备、连接与数据管理平台,Arm技术帮助客户从互联设备中获得强大且可执行的洞察,从而赋能真正的商业价值。Arm携手超过1,000家技术合作伙伴,为从芯片到云端的整个计算领域提供设计、安全和管理方面的技术,并在该技术领域处于业界领先地位。

围观 13
  • Arm推出业界首款搭配Cortex-M使用的微神经网络处理器(microNPU),搭配最新的Cortex-M处理器,可使机器学习性能提升480
  • 全新的IP可让无处不在的数十亿个下一代更小型、低功耗的设备具备更强的机器学习处理能力
  • 软件开发流程针对提高开发人员的生产力进行了优化,并针对这些全新处理器的各种配置将机器学习性能最大化

(2020211日) Arm今天宣布其人工智能(AI)平台新增重要生力军,包括全新机器学习(ML) IPArm® Cortex®-M55处理器和Arm Ethos™-U55神经网络处理器(NPU),后者也是针对Cortex-M平台推出的业界首款微神经网络处理器(microNPU)。这样的设计(Cortex-M55结合Ethos-U55)为微控制器带来480倍的机器学习性能飞跃。全新的IP与搭配的开发工具,能够让AI硬件与软件开发人员以更多的方式进行创新,从而为数十亿个小型、低功耗的物联网与嵌入式设备带来前所未有的终端机器学习处理能力。

Arm 资深副总裁暨车用与物联网事业部总经理Dipti Vachani表示:“要让AI无所不在,设备制造商与开发人员必须在数十亿、乃至数万亿个设备上实现终端机器学习能力。我们的AI平台增添这些生力军后,即便在最小的设备上,终端机器学习也将成为新常态,不会再有遗珠之憾,从而让AI的潜力可以在范围宽广的、正在改变我们生活的应用当中得以安全、有效地发挥。”

随着物联网的发展与AI5G的发展相互交织,更多的终端智能意味着更小型且成本敏感的设备会愈来愈智能、功能也愈来愈强,同时因为对云端与网络的依赖较小,也将具备更高的隐私性与可靠度。Arm通过新的设计为微处理器带来安全的智能,为想要有效提升终端数字信号处理(DSP)与机器学习能力(ML)的产品制造商降低芯片与开发成本,同时加快他们的产品上市速度。

Arm Cortex-M55: Arm人工智能能力最强大的Cortex-M处理器

Cortex-M处理器已经成为开发人员运算平台的最佳选择,Arm的合作伙伴已经出货超过500亿片基于Cortex-M的芯片,用于各种客户应用。新增的Cortex-M55Arm历来AI能力最为强大的Cortex-M处理器,也是首款基于Armv8.1-M架构、内建Arm Helium向量处理技术的处理器,它可以大幅提升DSPML的性能,同时更省电。与前几代的Cortex-M处理器相比,Cortex-M55ML性能最高可提升15倍,而DSP性能也可提升5倍,且具备更佳的能耗比。

此外,客户也可以使用Arm Custom Instructions (Arm自定义指令集)延伸处理器的能力,对特定工作负载进行优化,而这也是Cortex-M处理器的全新功能。

Ethos-U55: Arm针对Cortex-M推出的首款microNPU

针对需求更高的ML系统,可将Cortex-M55Ethos-U55搭配,后者是Arm首款微神处理器(microNPU),与现有的Cortex-M处理器相比,两者结合后可使产品ML性能提升480倍。

Ethos-U55具有高度的可配置性,旨在加速空间受限的嵌入式与物联网设备的ML推理能力。它先进的压缩技术可以显著节省电力并缩小ML模型尺寸,以便运作之前只能在较大型系统上执行的神经网络运算。

简化的软件使得所有开发人员都能获取安全的AI功能

Arm非常清楚,开发人员的经验对于推动AI革命是至关重要的。因此,Cortex-M55Ethos-U55得到了Arm业界领先的Cortex-M软件开发工具链的全力支持。如此一来,我们针对传统DSPML等工作负载,有了一致的开发流程;同时从TensorFlow Lite Micro开始,针对先进机器学习框架进行特定的整合与优化,确保开发人员拥有无缝的开发体验,并能够在任何一种Cortex-MEthos-U55的配置上,获取最佳性能。

Arm认为安全不应该是事后弥补措施,它对于物联网的普及极为重要。为了确保最安全的设计并顺利通过PSA认证,这些处理器和搭配的Corstone参考设计都可以与Arm TrustZone一起工作,以确保安全性可以更为简易地整合到完整的片上系统中。

赋能生态系统

全新的Cortex-M CPUEthos microNPU凸显了Arm对推动物联网发展的承诺:致力于协助芯片设计人员与设备制造商,即便在最小的终端设备上,也能利用Arm架构进行创新,并为物联网点燃新一波创造力与创新性。这一技术正获得生态系统合作伙伴与业界的广泛支持,其中包括亚马逊(Amazon)Alif半导体(Alif Semiconductor)、恒玄科技(Bestechnic)、赛普拉斯(Cypress)、杜比(Dolby)Google、恩智浦半导体(NXP)、三星(Samsung)、意法半导体(STMicroelectronics)等。

您可以通过Arm资深副总裁暨车用与物联网事业部总经理Dipti Vachani这篇博客,了解此新技术如何带给数十亿设备AI体验。

您也可以点击以下链接,获取更多有关Cortex-M55 Ethos-U55的技术细节。

关于Arm

作为计算及互联革命的核心Arm技术正改变着人们生活及企业运行的方式。Arm先进的低功耗处理器设计已应用于超过1,500亿颗芯片的智能计算,Arm的技术安全地为电子设备提供支持,覆盖从传感器到智能手机乃至超级计算的多样化应用。结合我们的物联网设备、连接与数据管理平台,Arm技术帮助客户从互联设备中获得强大且可执行的洞察,从而赋能真正的商业价值。Arm携手超过1,000家技术合作伙伴,为从芯片到云端的整个计算领域提供设计、安全和管理方面的技术,并在该技术领域处于业界领先地位。

围观 16

关于ARM的GPIO上拉下拉的基本理解

demi的头像

上拉寄存器是控制对应端口上拉使能的。当对应位为0时,设置对应引脚上拉使能,为1时,禁止对应引脚上拉使能。如果上拉寄存器使能,无论引脚功能寄存器如何设置(输入,输出,数据,中断等),对应引脚输出高电平。

Arm 的互联技术结合格芯的 12LP 工艺,带来高性能与低延迟表现,拓宽人工智能 (AI)、云计算和移动 SoC 高核心设计带宽。

2019 年 8 月 7 日 — 作为先进的专业代工厂,格芯今日宣布,已流片生产基于 Arm® 的 3D 高密度测试芯片,可提升人工智能/机器学习 (AI/ML) 和高端消费电子移动及无线解决方案等计算应用的系统性能与能效。新芯片采用格芯 12nm Leading-Performance (12LP) FinFET 工艺制造,运用 Arm 3D 网状互连技术,核心间数据通路更为直接,可降低延迟,提升数据传输率,满足数据中心、边缘计算和高端消费电子应用的需求。

该芯片的交付证明了Arm和格芯在研究和开发差异化解决方案方面取得的快速进展,差异化解决方案能够提升设备密度和性能,从而实现可伸缩高性能计算。此外,两家公司还验证了一种3D可测试性设计(DFT)方法,使用格芯的晶圆与晶圆之间的混合键合,每平方毫米可连接多达100万个3D连接,拓展了12nm设计在未来的应用。

Arm Research 副总裁 Eric Hennenhoefer 表示:“Arm 的 3D 互连技术使半导体行业能够强化摩尔定律,以便应对更多样化的计算应用。格芯在制造与先进封装能力方面的专业知识,结合 Arm 的技术,赋予我们共同的合作伙伴更多差异化功能,推动进军下一代高性能计算新模式。”

格芯平台首席技术专家 John Pellerin 表示:“在大数据与认知计算时代,先进封装的作用远甚以往。AI 的使用与高吞吐量节能互连的需求,正通过先进封装技术推动加速器的增长。我们很高兴能与 Arm 这样的创新型合作伙伴携手,提供先进的封装解决方案,进一步在小尺寸芯片上集成多种节点技术,优化逻辑拓展、内存带宽和射频性能。合作将使我们发现先进封装新视角,助力我们共同的客户高效创建完备的差异化解决方案。”

格芯已转变自身商业模式,帮助客户开发专注市场及应用的新型解决方案,满足当今市场的严苛需求。格芯的 3D 面对面 (F2F) 封装解决方案不仅为设计者提供异构逻辑和逻辑/内存集成途径,还可以优化生产节点制造,从而实现更低延迟、更高带宽和更小特征尺寸。格芯的这一策略,以及 Arm 等合作伙伴的早期参与,为客户提供了更多选择与灵活性,同时还可帮助客户降低成本,推动客户下一代产品更快量产。

围观 57

页面

订阅 RSS - ARM