处理器

处理器,也被称为中央处理器(Central Processing Unit,CPU),是计算机系统中的关键组件之一,负责执行计算机程序中的指令,控制计算机的各个部分,并处理数据。

近年来随着物联网、车用电子及智慧家居等需求兴起,电源管理与微控制器(MCU)等晶片用量逐步攀升,已经排挤其他部分8吋芯片产能的投片量,根据TrendForce光电研究(WitsView)最新观察指出,晶圆代工厂相继提高8吋厂IC代工费用。

2017年12英寸硅晶圆供不应求且价格逐季调涨,随着第三季旺季需求上升,加上8吋晶圆代工短期难再大幅扩产,整体产能仍然吃紧。2018年8吋硅晶圆价格将再次上涨。

涨价浪潮对中国厂商的伤害

由于上游产能紧张及原材料价格上涨,被动元器件的涨价更是超过预期。进入2018年,电容,电阻等被动元器件价格一路走高。据相关渠道获悉,国巨,风华高科均对电阻多次提价。其中,国巨对中大尺寸后膜芯片电阻级排阻提价30%以上,风华高科对片式电阻提价10%-20%左右。在采访中,多位业内人士对记者表示,电容、电阻等被动元器件涨价将持续,涨价趋势可能将持续到年底。

另一方面,DRAM和NANDFlash的价格从2017年就开始不断上涨,随即引起内存条和固态硬盘等产品的价格大幅上涨,一年内内存条的价格增幅一度达到300%。光是两条内存装机成本就要比一年前至少增加800-1000元,SSD硬盘的价格也翻倍。

外界原本预期DRAM上游厂商会在2018年一季度下调价格,但三星、海力士已拒绝了降价的可能,三星2018年的DRAM颗粒合约价将上涨3-5%,海力士也跟进表态称将涨价5%,理由是DRAM颗粒依然供不应求。

存储器/处理器/阻容暴涨背后,谁将引领国产MCU未来?

据了解,发改委已就存储芯片涨价的问题约谈三星,或将调查可能存在的公司价格操纵行为。发改委价监局官员徐新宇称,过去18个月芯片价格大幅上涨,发改委对此保持警惕,“我们已经注意到价格飙升状况,将更加关注该行业未来可能因‘价格操纵’引起的问题。”徐新宇表示,可能有多家公司协同行动,尽量推高芯片价格,谋求获利最大化。

谁将引领国产MCU未来?

在业界关注被动元器件和存储芯片价格是否会出现松动的时候,MCU等芯片涨价潮又来袭。2017年第四季度以来,全球不少MCU厂商产品交期都从4个月延长至6个月,日本MCU厂商更是拉长至9个月。从2018年上季度半导体情报数据来看,去年至今全球电子产品制造业都异常兴旺,连日本都出现多年不见的正增长,这带动芯片等电子元器件的销量。在硅晶圆产能满载、汽车电子及物联网需求的持续爆发下,MCU在2018年供应短缺局面或难以有效缓解。

存储器/处理器/阻容暴涨背后,谁将引领国产MCU未来?

近期,欧洲半导体巨头NXP公司对其代理商又发出了涨价通知。通知称,将从2018年第一季度开始对NXP旗下MCU(微控制器)、数字化网络、汽车微控制器等主要产品上调价格。涨价幅度在5%-10%不等,这标志着半导体巨头打响了2018年MUC芯片涨价的第一枪。因此导致市场上MCU供应出现短缺,芯片报价因而持续大幅走扬。市场分析人士指出,另一家欧洲半导体巨擘─ST(意法半导体),后续有可能跟进NXP调涨MCU报价脚步,增强全球MCU市场涨价热潮更大动能。
存储器/处理器/阻容暴涨背后,谁将引领国产MCU未来?

中国MCU市场增长率高于全球,并稳步增长。2017年中国MCU市场规模为400亿元左右,较去年增长7%,占全球市场的30%;中国MCU自2010年以来保持稳定增长,预计2020年,年均增长可达6.5%。从营业收入看,我国MCU应用的最大市场是消费电子,其次是计算机外设和汽车电子市场。汽车电子MCU增长迅速,预计2015-2020年年均增速达13%。从MCU位数看,8位和32位将以互补性的组合占据MCU领域。

芯片价格一路上涨,需求旺盛是重要原因。此外全球6成的家电产能都在中国。国内消费电子市场无论在规模还是在质量上都在不断崛起,以美的、格力为代表的家电企业,以及以华为、OPPO、VIVO为代表的手机厂商已进入全球市场前列。广阔的市场空间和本土消费电子企业的崛起为本土消费电子MCU企业提供了优越的成长环境,加上国家政策支持IC国产化的背景下,国内MCU企业将迎来高速成长。

作为国内本土MCU厂商代表中颖,HK(航顺芯片),GD(北京兆易),NUC(新唐)是否能在这一波涨价潮中脱颖而出,抢占更多的市场做好准备?另一方面,国内厂商能否最大化接受本土MCU的进入,达成本土MCU战略合作共识,减小国外MCU对国内厂商的涨价冲击呢?这也是国内厂商需要思考的问题。MCU市场的增长已经势不可挡,预估中国MCU市场将于2020年持续成长达414亿元人民币。

存储器/处理器/阻容暴涨背后,谁将引领国产MCU未来?

中国作为最大的芯片市场却没有话语权,国产化率低受制于人,MCU市场更是尤为明显。中颖号称国内8位MCU之王,站在有利的环境及正确的产业趋势下,在家电行业内十几年默默耕耘,九死一生。但中颖作为中国小家电MCU的龙头厂商,近年来营运表现优于其他同业。

然而在32位MCU市场近一年来,又出一匹黑马HK(航顺),短短一年时间的市场推广,大受客户选用,根据客户使用反馈,不仅产品性能稳定,功耗更低,宽电压设计,兼容性更是完美替代进口品牌。这也是继GD32位MCU之后的又一个国内32位MCU之新星。而GD在市场多年的沉淀和耕耘,在国内一直处于领先地位,也让很多国内厂商对本土MCU品牌接受度提高。但与进口品牌相比较,本土MCU仍是弱势群体。

存储器/处理器/阻容暴涨背后,谁将引领国产MCU未来?

不掌握芯片及其技术,本土企业终究被跨国巨头扼住咽喉。从近5年中国集成电路产业进出口数据来看,国内集成电路每年进口金额在1250-1650亿美元,有着极大的国产替代进口的空间,芯片国产化也将带来诸多的投资机会。中国本土MCU小微跃跃欲试,32位MCU厂商众多,但我们相信中颖,HK(航顺),GD(兆易)必将引领国产替代进口MCU的未来。

来源:慧聪电子网

围观 506
围观 265

业界首款基于ARM®Cortex®-M7的跨界处理器,达到3020 CoreMark得分和1284DMIPS,并可在600 MHz时提供20纳秒的中断延迟 - 现已上市,价格在同类解决方案中极具优势

恩智浦半导体(纳斯达克代码:NXPI)正式推出了i.MX RT 系列跨界解决方案,实现了高性能、高集成的同时最大限度地降低成本。随着市场对更加智能和更具“意识”的节点运算需求越来越大,节点设备对物联网(IoT)的发展愈加重要,人们希望节点设备能提供最低的成本、最高的计算性能以及更可靠的安全性及隐私保护。然而这些必需的功能,例如图形和显示支持以及无缝的连接性,不仅增加了系统级成本,而且延长了产品上市时间。

恩智浦通过构建i.MX RT跨界处理器来应对这一挑战,在提供应用处理器的高性能和功能的同时,还具有传统微控制器(MCU)的易用性和实时确定性操作。理想的应用包括音频子系统、消费和健康保健、家庭和楼宇自动化、工业计算、电机控制和电力转换。

全新的跨界处理器提供高水平的集成和丰富的用户体验(图形、显示和音频),同时降低系统级成本。i.MX RT具有大容量静态随机存取内存(SRAM)和集成DC-DC,可提供前所未有的性能,让您的每笔投入均物有所值。为外部存储器提供快速和安全的接口,不需要嵌入式闪存,从而降低了产品成本并显著降低了闪存编程成本。

“我们看到,嵌入式设计师被迫在最终产品的性能和成本之间作出权衡。i.MX RT在这两个领域实现了令人印象深刻的飞跃,这表明恩智浦的创新和对真实市场需求的理解。”EEMBC总裁Markus Levy表示。“这种独特的方法将彻底改变数千个IoT应用中的嵌入式设计。”

性能与功率比较

全新的i.MX RT1050是基于ARM Cortex-M7的最高性能设备,具有实时操作和应用处理器级功能。在600 MHz时,它比任何其他Cortex-M7产品的运行速度快50%,比现有Cortex-M4产品快两倍多。通过将这种高性能与Cortex-M7内核相结合,实现了低至20ns的中断延迟 - 是全球所有基于ARM Cortex的产品中最低的延迟时间。此外,通过集成512KB的紧耦合内存(TCM) SRAM,为实时IoT应用保持了非常高的有效内核性能。

集成的DC-DC转换器不仅消除了对外部PMIC的需求,而且使运行功率效率(每mW的CoreMark得分)比同类竞争MCU解决方案高2-4倍。基于110mA/MHz (全功能操作)的能耗表现,i.MX RT1050比基于Cortex-M7的同类竞争MCU要高2-3倍。

整合和易用性

i.MX RT1050可通过多种外部存储器接口选项实现高级GUI、增强型HMI以及更大的设计灵活性。高安全性嵌入式设计可以通过AES-128的高效加密引擎、高度安全启动(HAB)和实时QSPI闪存解密来实现。

MCU客户可以利用其当前的工具链,包括MCUXpresso软件和工具、IAR系统和ARM Keil MDK,节省时间并实现工具的重复使用。使用开源实时操作系统(包括FreeRTOS、ARM Mbed™操作系统、Zephyr™操作系统以及提供软件库、在线工具和支持的全球ARM生态系统)可以实现快速开发和简单的原型创作。使用与Arduino™硬件接口兼容的低成本评估套件(EVK),还可以进一步加快开发速度。而恩智浦即时可用的USB C型屏蔽板可通过Arduino接口与i.MX RT配合使用,进一步降低开发难度。

“RT给市场带来了巨大的变化。它使客户能够在保持现有工具链和生态系统的同时,提升到应用处理器级的性能。与各种各样多引脚封装MCU相比,对低引脚数串行闪存编程也更容易。”恩智浦微控制器资深副总裁兼总经理Geoff Lees表示。“请继续关注,GHz Cortex-M的竞赛已经开始。”

产品定价和上市时间

更为重要的是,i.MX RT系列的高性能和功率效率都建立在合理的价格之上。而且,支持使用2-4层PCB设计也可大大降低BOM成本;与对MCU片上闪存编程相比,对外部闪存编程也可实现成本节省。

i.MX RT包括以下两个系列,可实现功能、定价和封装上最大的灵活性。

• i.MX RT1050现已上市,10K数量起始价2.98美元
• i.MX RT1020将于2018年第2季度上市,10K数量定价为2.18美元

围观 287

一、

STM32的AD转换,可以将转换任务组织为两个组:规则组和注入组。

在任意多个通道上以任意顺序进行的一系列转换构成成组转换。

例如,可以如下顺序完成转换:通道3、通道8、通道2、通道2、通道0、通道2、通道2、通道15。在执行规则通道组扫描转换时,如有例外处理则可启用注入通道组的转换。可以模糊的将注入组的转换理解为AD转换的中断一样,规则通道组的转换是普通转换,然而注入组的转换条件满足的情况下,注入组的转换会打断规则组的转换。

如果规则转换已经在运行,为了在注入转换后确保同步,所有的ADC(主和从)的规则转换被停止,并在注入转换结束时同步恢复。规则转换和注入转换均有外部触发选项,规则通道转换期间有DMA请求产生,而注入转换则无DMA请求,需要用查询或中断的方式保存转换的数据。

二、

规则组:此模式通过设置ADC_CR1寄存器上的DISCEN位激活。它可以用来执行一个短序列的n次转换(n<=8),此转换是ADC_SQRx寄存器所选择的转换序列的一部分。数值n由ADC_CR1寄存器的DISCNUM[2:0]位给出。

一个外部触发信号可以启动ADC_SQRx寄存器中描述的下一轮n次转换,直到此序列所有的转换完成为止。总的序列长度由ADC_SQR1寄存器的L[3:0]定义。

举例: n=3,被转换的通道 = 0、1、2、3、6、7、9、10 第一次触发:转换的序列为 0、1、2 第二次触发:转换的序列为 3、6、7 第三次触发:转换的序列为 9、10,并产生EOC事件 第四次触发:转换的序列 0、1、2,依次类推;

注入组:此模式通过设置ADC_CR1寄存器的JDISCEN位激活。在一个外部触发事件后,该模式按通道顺序逐个转换ADC_JSQR寄存器中选择的序列。

一个外部触发信号可以启动ADC_JSQR寄存器选择的下一个通道序列的转换,直到序列中所有的转换完成为止。总的序列长度由ADC_JSQR寄存器的JL[1:0]位定义。

例子: n=1,被转换的通道 = 1、2、3 第一次触发:通道1被转换 第二次触发:通道2被转换 第三次触发:通道3被转换,并且产生EOC和JEOC事件 第四次触发:通道1被转换,也是依次类推。

三、

STM32的ADC的工作模式:

单次转换模式:转换一次则停止;
连续转换模式:转换完一次后即开始下一次转换;
扫描模式:扫描一组模拟通道;
间断模式:每触发一次,转换序列中n个通道。

四、

因为规则通道转换的值储存在一个仅有的数据寄存器中,所以当转换多个规则通道时需要使用DMA,这可以避免丢失已经存储在ADC_DR寄存器中的数据。只有在规则通道的转换结束时才产生DMA请求,并将转换的数据从ADC_DR寄存器传输到用户指定的目的地址。

注: 只有ADC1和ADC3拥有DMA功能。由ADC2转化的数据可以通过双ADC模式,利用ADC1的DMA功能传输。

五、

双ADC模式

(1)同步注入模式:此模式转换一个注入通道组。外部触发来自ADC1的注入组多路开关(由ADC1_CR2寄存器的JEXTSEL[2:0]选择),它同时给ADC2提供同步触发。

注意: 不要在2个ADC上转换相同的通道(两个ADC在同一个通道上的采样时间不能重叠)。

(2)同步规则模式:此模式在规则通道组上执行。外部触发来自ADC1的规则组多路开关(由ADC1_CR2寄存器的EXTSEL[2:0]选择),它同时给ADC2提供同步触发。

(3)快速交叉模式:此模式只适用于规则通道组(通常为一个通道)。外部触发来自ADC1的规则通道多路开关。

外部触发产生后:
A.ADC2立即启动并且
B.ADC1在延迟7个ADC时钟周期后启动

注意:最大允许采样时间<7个ADCCLK周期,避免ADC1和ADC2转换相同通道时发生两个采样周期的重叠。

(4)慢速交叉模式:此模式只适用于规则通道组(只能为一个通道)。外部触发来自ADC1的规则通道多路开关。

外部触发产生后:
A.ADC2立即启动并且
B.ADC1在延迟14个ADC时钟周期后启动
C.在延迟第二次14个ADC周期后ADC2再次启动,如此循环。

(5)交替触发模式:此模式只适用于注入通道组。

外部触发源来自ADC1的注入通道多路开关。
A.当第一个触发产生时,ADC1上的所有注入组通道被转换。
B.当第二个触发到达时,ADC2上的所有注入组通道被转换。
C.如此循环……

(6)独立模式:此模式里,双ADC同步不工作,每个ADC接口独立工作。

(7)混合的规则/注入同步模式:规则组同步转换可以被中断,以启动注入组的同步转换。

(8)混合的同步规则+交替触发模式:规则组同步转换可以被中断,以启动注入组交替触发转换。 显示了一个规则同步转换被交替触发所中断。

(9)混合同步注入+ 交叉模式:一个注入事件可以中断一个交叉转换。这种情况下,交叉转换被中断,注入转换被启动,在注入序列转换结束时,交叉转换被恢复。

来源: eeworld

围观 545

9月25日,英特尔宣布推出14核、16核与18核处理器 -- 英特尔®酷睿TM i9-7940X、英特尔® 酷睿TM i9-7960X 和英特尔®酷睿TM i9-7980XE 处理器,并开始向合作伙伴以及零售渠道发售。在英特尔® 酷睿TM X 系列处理器家族面世之际,英特尔推出了内容创建者和发烧友期盼已久的至尊版处理器 -- 史上顶级配置台式机处理器。

整个英特尔®酷睿TM X 系列处理器家族都致力于通过强大的计算能力提供丰富的沉浸式体验,但至尊版能够进一步提升内容创建的能力,支持内容创建者轻松处理大型任务,成为编辑和渲染高清 4K 和 VR 视频的强大平台,甚至可以在 PC 上打造完整的工作室。

凭借英特尔®酷睿TM X 系列至尊版处理器,内容创建者将体验与前代至尊版在 VR 内容创建方面高达80%的性能提升[1],以及 4K 视频编辑[2]60%的速度提升。

零售渠道现可提供整个英特尔酷睿 X 系列处理器家族。

新闻资料:
英特尔® 酷睿TM X 系列处理器
英特尔® 酷睿TM X 系列处理器家族情况说明
英特尔® 酷睿TM X 系列处理器家族产品概述
英特尔® 酷睿TM X 系列处理器9月发售 (Intel.com)

[1] 基于在英特尔® 酷睿™ i9-7980XE (18C/36T) 和英特尔® 酷睿™ i7-6950X (10C/20T) 上运行 Blender 2.78c BMW 工作负载的测量结果

[2] 基于在英特尔® 酷睿™ i9-7980XE (18C/36T) 和英特尔® 酷睿™ i7-6950X (10C/20T) 上运行 Adobe Premiere Pro 工作负载的测量结果

工作负载说明

在性能检测过程中涉及的软件及其性能只有在英特尔微处理器的架构下方能得到优化。

诸如 SYSmark 和 MobileMark 等测试均系基于特定计算机系统、硬件、软件、操作系统及功能,上述任何要素的变动都有可能导致测试结果的变化。请参考其他信息及性能测试(包括结合其他产品使用时的运行性能)以对目标产品进行全面评估。关于性能及性能指标评测数据的更完整信息,敬请登陆:
http://www.intel.com/benchmarks

Blender 工作负载:Blender 2.78b 是一种常用的开源 3D 渲染器。所运行的基准评测工作负载包含一个需渲染约 3MB BMW 汽车模型的渲染器。

Adobe Premiere Pro CC 工作负载:项目文件夹包括以大约 80Mbps 的速度录制的 7 个 4K H.264 MP4 视频剪辑,总共 1.90GB。该视频流为 3840x2160 (4K),H.264 格式,帧速率为 29.97 FPS。音频流为 1536 Kbps、48.0 KHz、16 位立体声、WAV 格式。性能测试测量将整个视频剪辑导出至 4K H.264 MP4 格式时所用的时间。输出为高质量 4K 视频文件。

配置

酷睿 i9-7980XE(2.6GHz,最高 4.4GHz,18C/36T,24.75MB,165W TDP),
主板:ASUS PRIME X299-DELUXE Bios 702,
内存:4x8GB DDR4-2666,
存储:英特尔固态盘 600p 512GB,
操作系统:Windows* 10 (RS2),
显卡:Nvidia GTX 1080Ti(驱动程序 384.94),
英特尔® 睿频加速 Max 驱动程序版本 1.0.0.1031,
系统电源管理政策:高性能

英特尔® 酷睿™ i7-6950X 处理器(3.0GHz,最高 3.5GHz,10C/20T,25MB,140W TDP),
主板:ASRock X99M Extreme4,
内存:4x8GB DDR4-2400,
存储:英特尔 750 PCIe 固态盘 -- 400GB,
操作系统:Windows* 10 (RS2),
显卡:Nvidia GTX 1080Ti(驱动程序 22.21.13.8233),
BIOS:BIOS P3.20,
英特尔® 睿频加速 Max 驱动程序版本 1.0.0.1029,
系统电源管理政策:高性能

来源: 美通社

围观 370

澳大利亚研究人员日前宣布,他们发秘境一种构建量子计算机的新方法,能以更简单、更廉价的方式批量生产量子计算机。

量子计算机研究取得新突破:用现有技术生产量子芯片

量子计算机是一种遵循量子力学规律进行高速数学和逻辑运算、存储及处理量子信息的物理装置,它能利用亚原子粒子的神奇力量来解决一些对于当前算机而言过于复杂或过于耗时的问题。

当前,谷歌和IBM等科技公司都在利用各种方法来开发量子计算机。而澳大利亚新南威尔士大学一组研究人员日前表示,他们利用新型量子位(quantum bit,量子计算机的最小信息单位)发明了一种新型芯片。

这种新型芯片设计能让硅量子处理器克服当前所存在的两个局限:1)必须精准放置原子;2)原子必须放开放置,但又要相互连接。

新南威尔士大学发明的这种新量子位被称为“触发器量子位”(flip-flop qubit),该项目负责人安德里亚·梅洛(Andrea Mello)称,这种新设计允许人们使用与生产当前计算机芯片同样的设备技术来生产量子处理器。

梅洛说:“这意味着构建量子计算机变得更加可行,因为它使用的制造技术与当前计算机行业所使用的技术相同。”

这意味我们将可以批量生产量子计算机芯片,而在此之前,这一直是令研发人员头痛的问题。

当前,IBM的量子计算机拥有16量子位,意味着它只能执行一些基础的计算。而谷歌的量子计算机仅拥有9量子位。

相比之下,当前的台式机计算速度达到了每秒10亿次浮点运算,全球最快的超级计算机——中国的“神威太湖之光”——的计算速度达到了每秒9.3亿亿次浮点运算。

但理论上讲,一台小型的30量子位通用量子计算机的运行速度,相当于一台每秒10万亿次浮点运算的普通计算机的运算速度。

德克萨斯A&M大学教授拉斯洛·凯什(Laszlo Kish)称,目前判断这项发明是否是“突破性的”还为时尚早,但在解决量子计算的核心问题上,他们可能向正确的方向迈进了一步。

如今,在获得澳洲电信、澳大利亚联邦银行、澳大利亚和新南威尔士政府的投资后,新南威尔士大学成立了“硅量子计算有限公司,计划在2022年打造出10量子位原型硅量子集成电路,为打造全球第一台硅量子计算机做准备。

来源: chinaaet

围观 368

作者:张国斌

2017年9月2日,华为消费者业务CEO余承东在德国柏林IFA2017大会官方论坛发表“Mobile AI. The Ultimate Intelligent Experience”为主题的演讲,全面阐释了华为消费者业务的人工智能战略,并正式发布了麒麟970芯片。这款有55亿晶体管、全球首款内置神经网络处理单元(NPU)的人工智能处理器震撼了产业,震撼了全球!从公布的数据来看,NPU运算能力达到1.92T FP16 OPS!是同等CPU处理器能力的25倍!能效是其50倍!这款处理器让华为一举站在了全球移动人工智能(AI)领域的最前沿!

深度揭秘麒麟970 人工智能处理器,它的强大超出你想象!

深度揭秘麒麟970 人工智能处理器,它的强大超出你想象!

麒麟970 AI处理器对人工智能产业发展有何意义?它对智能手机发展有何重要意义?为何在两年前定义的这款芯片能赶上了全球人工智能大潮?结合我和产业人士的交流谈谈自己的感受。

一、异构与端云结合实现人工智能非常有价值

几年前,产业都在讨论如何在云端实现人工智能,而华为探索了新的模式,就是端云结合实现人工智能,云端智能的优势在于强大的运算能力,基于大数据给出大智慧,在策略性输出上有极大优势。而端侧在具备了强大的感知能力之后,手机就会成为帮助用户思考的分身和伙伴。两者达成平衡与协调,才是未来终端发展的出路。这次麒麟970也是人工智能处理器从服务器走向便携化的一个重要里程碑,意义非常重大,借用一位大佬的评论:“这也许是手机的一小步,但是一定是人类生活的一大步。”

由于人工智能处理器需要进行大量的计算因此需要消耗大量功耗,按照以前的思路,人工智能处理器需要将在云端处理利用服务器的计算资源完成处理,但是显然这不现实,因为大量数据需要上传不仅占用带宽还有延时问题,不能实现真正的实时人工智能处理器,在麒麟970之前,移动端还没有一款可以真正支持人工智能出来的ASIC芯片,因此这个探索意义非常大。

麒麟970采用异构架构完成人工智能处理,芯片括了CPU、GPU、NPU、ISP、DSP。以前大家从人工智能角度来看,认为NPU是做AI的,AI就是要靠NPU去实现的,但从麒麟970来看不完全是。NPU在实现AI上承担了很多主要工作,但是CPU、GPU也参与了处理,例如ISP也参与很多相关工作。所以,未来以异构架构实现人工智能将成为主流,这个异构SoC将成为一个AI计算平台。

深度揭秘麒麟970 人工智能处理器,它的强大超出你想象!

从余承东公布的华为人工智能战略来看,在未来终端上的人工智能实现需通过端云协同,华为构建芯、端、云协同发展,通过结合云端和终端的能力,实现手机从智能终端到智慧终端的跨越,给用户带来颠覆性的体验。这可能引发智能手机巨大的新变革。

二、吹响智能手机“十年一变”号角

在手机产品界及手机领域有个“十年一变”的规律,1997年11月诺基亚发布了全球首款内置游戏的移动电话诺基亚6110,其贪吃蛇游戏是有史以来第一款手机游戏,这款手机相信很多人都买过,它成为诺基亚在功能机时代封王的奠基者。

深度揭秘麒麟970 人工智能处理器,它的强大超出你想象!

2007年11月5日,安卓系统正式发布,Android一词最早出现于法国作家利尔亚当(Auguste Villiers de l'Isle-Adam)在1886年发表的科幻小说《未来夏娃》(L'ève future)中。他将外表像人的机器起名为Android。这个绿色小机器人颠覆了功能机,也是在2007年,苹果iPhone惊艳面市,以此为标志,我们正式进入了智能手机时代。
深度揭秘麒麟970 人工智能处理器,它的强大超出你想象!

时间到了2017年,智能手机将再次面临重大分化,人工智能在2017年将成为智能手机的分水岭,未来手机将只有人工智能手机和非人工智能手机两种。

从现在往前看,原来的手机是纯粹的通信工具,后来加入计算器、录音机等一堆硬件。到了智能手机,本质上其还是工具属性较强,把互联网变成了移动互联网,同时具有一个开放生态,可以往里做各种各样的应用创新。但是智能手机对人的理解,对环境的理解还没有本质的变化,所以智能手机还是一个升级版的工具。但当人工智能引进以后,手机本身有足够强的处理能力,有传感器,才有可能把手机从工具属性变成更加类似像宠物一样的东西,具备理解能力,一开始做不到那么懂你,但是慢慢还是能懂的。不同的手机拿到不同的人手里,表现也会不同。

因为手机有了人工智能,它带来了无限可能。人工智能应用场景非常多,几乎无所不包,以手机拍照为例,就像单反里基本的光学部分都很好,但如何设置出恰当的参数是很麻烦的事情,未来AI手机在这方面可以更加有效,能够对环境有足够的了解,对拍摄对象有识别,进行一定的校正,可以说AI手机成了一部懂得拍照的手机。降噪方面,以前我们理解降噪就是做相位对消,而采用了人工智能处理以后,它能使用我们目前还未知的方式进行消噪,就如同图像识别,人工智能CNN卷积神经网络,经过逐层的神经网络卷积等运算,自动提取和发现了我们目前难以理解的特征值一样,这个确实令人非常兴奋。

有了人工智能能力的手机,不但可以解析出用户的语言,更能分辨情绪,当手机能够分辨你在哪里,你是谁,并“猜”到你的心意,这样的手机真的更贴心了,人工智能手机还能基于用户画像和过往行为习惯及结合当前的使用场景,推测出用户的行为意图。以这样的路径发展下去,未来手机一定非常强大,它可以成为人的伙伴甚至教练,例如阿法狗就完全可以成为围棋教练。

在专业知识背景和本地结合下,可以把手机作为教练级伙伴。随着手机性能的不断提升,用户不断的使用,手机会不停的进化学习,到某一天,手机能全面与互联网结合,直接帮助人、甚至可能陪伴人。
不过,人工智能技术发展后,手机将变成了一部值不值得去偷的手机,因为它只服务特定的用户,这个变化也是挺有意思。

三、开放人工智能开发环境,让华为手机超越苹果成为可能

余承东在9月2日的演讲中说:“华为将会把麒麟作为人工智能移动计算平台开放给更多的开发者和合作伙伴,让开发者利用麒麟970的强大AI算力,开发出更具想象力和全新体验的应用,共同造就移动AI计算应用的美好未来。”,华为一位技术大牛也说:“我们今年不只是发布一款芯片,还要发布整个开发环境,第三方可以尽早参与开发。”由此可以想象,华为凭借领先的人工智能平台,构建一个开放的人工智能开发环境,让更多第三方可以开发人工智能应用,这个有点类似目前的APP开发,未来开发者可以为华为人工智能开发不同的算法,一起开发AI应用。

这样的开发环境和先发优势让华为在人工智能生态系统建设上占领了优势,未来华为凭借这个优势完全有超过苹果的可能。(三星已经不在考虑范围之内了)

四、 谈点产品定义的思路

麒麟970是两年前定义的产品,为何在当时大家还在热衷于多核架构的时候,华为麒麟团队人就看到了人工智能的曙光?这里结合一些获取的信息谈谈产品定义。

首先,据华为公布的资料显示,在2012年以前,华为就开始思考智慧终端该有一颗什么样的大脑,以及Ta会干些什么?学习什么?如何思考?为了创造“A new brain”,华为做了各种相关的科学研究和应用尝试。例如通过“诺亚方舟实验室”做过探索。

诺亚方舟实验室成立于2012年。作为人工智能算法的研究、管理 AI 的技术合作、识别 AI 主要应用场景和需求管理等研究的前沿阵地,诺亚方舟实验室的创新产品和技术主要聚焦在数据挖掘、人机交互、智能系统以及大数据系统领域,主要致力于“从大数据到大智慧”,对未来5-10年的技术发展方向做前瞻性的研究。

自2016年起,诺亚方舟实验室的研究成果就已经逐步应用到华为的手机产品上——Mate 9、P10 所采用的人工智能,应用在传感器算法、计算机视觉、搜索引擎和语义理解等领域。例如Mate9应用了智能感知学习技术,能够跟踪趋势和行为模式,从而确保手机持续运行的快速和顺畅,避免出现像手机使用时间越长,反应越慢的情况;P10 & P10 Plus新增的Ultra Memory功能,结合智能感知和深度学习,实现了自动内存压缩和回收,以及自动碎片处理功能,极大提高了手机的响应速度,也缩短了应用启动时间。这些基础研究对于产品定义都非常有益。

其次,至于麒麟970芯片为何考虑加入人工智能?按照一位技术大牛的说法是华为考虑的是随着传感器能力慢慢达到人类水平,则需要智能处理的介入。

为什么呢?这是因为超越人体感官和人体智能这两者之间是有因果关系的。例如戴眼镜的人摘了眼镜看不清楚,收集不到合适的信息,其实就相当于智商下降,虽然有智力但是不能做判断和决策,对于手机也是一样,如果图像传感器或者麦克风很强大,但是没有智能介入,手机还只是硬件升级而已。

还有就是,即使手机图像处理做的再好跟人眼也还是有差别,其中的原因就是人脑里有感光视觉。举例来说,如果一个人对某个人很熟悉,则对着他的侧脸或者光线较暗的环境下大脑也能把那个人的样子补出来,而不熟的人就做不到,因为人脑没有足够多的细节去主动补充,这也是人工智能干预的例子。

这样,麒麟970的架构定义者就发现了感官和人工智能中间的关联,有了人工智能干预以后,sensor信号和人工智能结合就会跟人类视觉处理类似了,而如果手机的某些感官超过人类,则就可以能帮助到人类,顺着这个逻辑再推导,自然就会推导出麒麟970的架构,就是把感测信号和人工智能处理结合起来这才是手机架构的大的升级,这样,今天的明星麒麟970就应运而生了!这个思路很值得本土IC公司借鉴。

深度揭秘麒麟970 人工智能处理器,它的强大超出你想象!

从2008年海思K3V1开始到现在麒麟970,华为手机处理器经过十年发展,一举登顶全球手机处理器巅峰,凭借的就是务实和努力,为了这个荣耀,华为人付出了艰辛的劳动,如余承东在演讲中所言仅仅为了优化麒麟在高铁场景的通信体验,就在高铁上进行了40万公里场测。现在,华为已经规划麒麟990芯片,希望2年后的麒麟990继续震撼全球!

本文为原创文章,转载需注明作者、出处及原文链接

来源: 张国斌

围观 357

μC/OS-II操作系统是一种抢占式多任务、单内存空间、微小内核的嵌入式操作系统,具有高效紧凑的特点。它执行效率高,占用空间小,可移植性强,实时性能良好且可扩展性强。采用μC/OS-II实时操作系统,可以有效地对任务进行调度;对各任务赋予不同的优先级可以保证任务及时响应;采用实时操作系统,降低了程序的复杂度,方便程序的开发和维护。 μC/OS-11非常适合应用在一些小型的嵌入式产品应用场合,在家用电器、机器人、工业控制、航空航天、军事科技等领域有着广泛的应用。

单片机、ARM、FPGA与μC/OS-II操作系统相结合,实现一些具体功能,是目前嵌入式应用中比较常见的。在这些应用中,基础性的工作就是操作系统的移植。本文选取使用较多的51单片机、LPC2210、NiosII三种处理器进行介绍。

1.μC/OS-II操作系统移植条件

μC/OS-II操作系统的大部分源代码都是用C语言书写的,但仍需使用汇编语言来完成一些和处理器相关的操作,例如读写处理器、寄存器时只能使用汇编语言来实现。因此,将μC/OS-II操作系统移植到目标处理器上,需要从硬件和软件两方面来考虑。

硬件方面,目标处理器需满足以下条件:

①处理器的C编译器能产生可重入代码;
②用C语言可以开/关中断;
③处理器支持中断,并且能够产生定时中断(通常在10~1 000 Hz之间);
④处理器能够支持容纳一定量数据的硬件堆栈;
⑤处理器有将堆栈指针和其他寄存器读出和存储到堆栈或内存中的指令。

软件方面,主要关注的是一些与处理器相关的代码移植,其分布在OS_CPU.H、OS_CPU_C.C和OS_CPU_A.ASM这3个不同的文件中。

2.目标处理器硬件支持

51单片机、LPC2210、NiosII三种处理器在硬件方面均能满足μC/OS-II操作系统的移植要求。

51单片机:选择Keil公司的集成开发环境作为开发工具,因为该集成开发环境的C51编译器能产生可重入型代码,且用C语言就可以开/关中断。同时具有一定数量的堆栈和操作相关寄存器的指令。
LPC2210:采用ARM7微控制器可以满足上述②、④、⑤,而ADS1.2的C编译器可以满足①、③的要求。

NiosII处理器:Nios处理器可以配置成最多支持64个中断,包括外部硬件中断、内部中断以及TRAP(调试中断)。Nios II处理器可以配置使用32位内部定时器,通过用软件控制写入几个控制寄存器的内容来获得定时工作,与一般的定时器工作原理相同,可以产生定时中断。 Nios处理器可以外接存储器。以使用的DE2开发板为例,外接512 KB SRAM资源,可提供足够的数据硬件堆栈。

NioslI 8.0 IDE采用GNU编译器,支持C/C++的编译、链接产生重入代码,允许在C语言中嵌入汇编语言。

3 软件移植过程

3.1 OS_CPU.H的实现

OS_CPU.H文件包括了用#define语言定义的与处理器相关的常数、宏以及数据类型。

在上述三种处理器采用的不同编译器中,数据类型的定义是相同的,在此不做具体介绍。

在OS_CPU.H中定义与处理器相关的宏,主要是进入临界区的OS_ENTER_CRITICAL()和退出临界区的OS_EXIT_CRITICAL()。

在Keil编译器中,EA是总中断。

#define OS_ENTER_CRITICAL() EA=0;//关中断
#define OS_EXIT_CRITICAL() EA=1;//开中断

在ADS编译器中定义为软件中断函数,并编写软件中断处理代码实现开/关中断。

_swi(0x00)viod OS_TASK_SW(viod);//任务级任务切换函数
_swi(0x00)viod OS_ENTER_CRITICAL(viod);//关中断
_swi(0x00)viod OS_EXIT_CRITICAL(viod); //开中断

在NiosII 8.0 IDE编译器中:

#define OS_ENTER_CRITICAL() asm(“PFX 8\n WRCTL%g0;”) //关中断
#define OS_EXIT_CRITICAL() asm(“PFX 9\n WRC TL%g 0;”) //开中断

堆栈的增长方向通过设置OS_STK_GROWTH为0或者1来确定。51单片机中只能设置为0,表示堆栈是从下往上增长的。LPC2210中则可以设置成0或者1。NiosII中则只能设置成1,表示堆栈是从上往下增长的。

3.2 OS_CPU_C.C的实现

OS_CPU_C.C中,主要应改写堆栈初始化函数OS-TaskStkIint()。必须根据移植时统一定义的任务堆栈结构进行初始化,其他9个钩子函数只需说明即可。也可根据移植时用户自己的需要,编写相应的操作代码。

以LPC2210为例,堆栈空间从高到低依次存放着PC,LR,R12,R11,…,R1,R0,CPSR,OsEnterSum。每个任务都有独立的 OsEnterSum,在任务切换时保存和恢复各自的OsEnterSum值。各个任务开/关中断的状态可以不同,这样实现了开/关中断的嵌套。

转自: 电子工程网

围观 296

ARM处理器在全球范围的流行,32位的RISC嵌入式处理器已经成为嵌入式应用和设计的主流。与国内大量应用的8位单片机相比,32位的嵌入式CPU有着非常大的优势,它为嵌入式设计带来丰富的硬件功能和额外的性能,使得整个嵌入式系统的升级只需通过软件的升级即可实现。而8位处理器通常受到的64K软件限制也不存在了,设计者几乎可以任意选择多任务操作系统,并将应用软件设计得复杂庞大,真正体现“硬件软件化”的设计思想。

32位嵌入式处理器与8位处理器应用开发有什么不同?

什么发生了改变?

目前,国内熟悉8位处理器开发的工程师非常多,开发工具和手段也很丰富,并且价格较低。而32位处理器的开发与8位处理器的开发则有着许多明显的不同。

第一,实时多任务操作系统(RTOS)引入32位嵌入式系统。

由于32位CPU的资源丰富,指令集相对庞大,而且,系统软件比较复杂,所以,通常在开发时要选用相应的RTOS来对应用软件中的各个任务进行调度。软件设计工程师需要学习全新的RTOS技术,掌握底层软件、系统软件和应用软件的设计和调试方法。这对于开发者来说是一个新的挑战。

当然,RTOS的引入,也将给嵌入式开发商带来软件的模块化和可移植化等好处,为软件的工程化管理做好准备。

第二,调试的硬件接口发生改变。

在开发8位处理器时,通常采用在线仿真器ICE(In-Circuit-Emulator),ICE通过插座或者相应的夹具替代CPU来进行仿真和开发 工作。而对于32位嵌入式处理器来说,因其过高的时钟频率(50MHZ 至400MHZ以上)和复杂的封装形式(如BGA)导致ICE很难胜任开发工具的 工作。CPU厂商借助于边界扫描接口(JTAG口)来提供调试信息,供开发者进行开发。

JTAG口通常是一个14Pin或20Pin的插座,JTAG调试器(或称JTAG仿真器)因为可直接从CPU获取调试信息而使得该产品的设计简化,从而使得价格要低于ICE。

第三,系统的开发方式产生变化。

对于一个8位的系统开发来说,设计者只需按照硬件设计及调试、软件(汇编或C语言)编程、定位引导、软件调试、系统联调等过程来进行即可,应用软件的开发通常在硬件之后,且应用软件包是不能通用的。

对于一个32位的嵌入式系统则不同。在硬件设计开发的同时,需要有实时多任务操作系统环境,软件工程师可以同时进行应用软件包的开发和调试。在硬件调试 结束时,应进行BSP(板级支持包)的设计和调试。在BSP调试通过后,方可进行系统软件和应用软件的联调。通常应用软件的开发可以单独进行。更换 CPU 或硬件平台后,应用软件包是通用的(要基于同样的RTOS)。

那么,开发一个32位的嵌入式系统需要哪些工具和环境呢?

首先需要选择一个合适的多任务操作系统。

目前,商用的RTOS比较多,如Linux、Nucleus、WinCE、VxWorkx等。用户可根据系统的技术要求和商业要求,选择合适的一种。

另外,要选择相应的编译工具和调试环境。

根据所选用的RTOS和编程语言(C或C++)来确定要使用的编译器。对于ARM系列CPU来说,比较常见的有arm公司的SDT和ADS,以及免费的GNU等。

许多厂商将编译器(Compiler)、连接器(Linker)、定位器(Locater)、模拟器(Simulator)和监控调试器 (Monitor Debugger)作为一个整体提供给用户。这通常称为集成开发环境 IDE(Integrated Development Environment)。选用IDE将给调试带来许多方便。

再者,要选择合适的JTAG仿真器。

JTAG仿真器的一端通过JTAG连接电缆与目标板相连,另一端则与主机的调试环境相连。与主机的连接方式通常有三种。一是并口方 式,一是USB口方式,另一种是网口方式。这三种方式在代码下载速度、连接方便性、调试资源共享性等方面均有所不同,用户可以根据经费、技术方案要求、主 机环境等实际情况来选择。另外,JTAG的主频也是影响 JTAG仿真器速度的重要技术指标,越快速的JTAG仿真器,其JTAG主频也越高。

与ICE开发方式相似,JTAG仿真器也提供逻辑追踪功能,以确保硬件调试和软硬件联调的顺利进行。该功能需要增加额外的费用,因而建议只在进行复杂的系统级开发项目中选购。

好的JTAG仿真器还应该支持任务级调试。其调试环境除具有丰富的调试功能,良好的调试界面外,还应该能够“认识”各种不同类型的RTOS。这样,用户 在进行基于RTOS的软件调试时,能够直接对各种任务进行操作。如果JTAG仿真器不能支持任务的调试,那么,将给软件开发工程师带来诸多不便,影响开发 进度。

32位嵌入式系统的开发过程中存在其特有的技术难点,因此开发者对其要有充分的心理准备并做出相应的对策。

BSP的开发和调试 在硬件调试完成后,就需要进行实时操作系统(RTOS)的移植。其中最主要的就是BSP的开发和调试。在整个嵌入式系统中,应用软 件通过对系统软件的调用来完成各种应用功能。而系统软件则是通过BSP来完成与硬件设备的握手连接。所以,BSP的性能将影响整个系统的可靠性。

由于操作系统(RTOS)厂商提供的开发环境的建立,是基于BSP的正常工作,只有在BSP工作正常后,用户才能“看到”整个系统硬件资源。因此,在此之前,用户对BSP的调试几乎是在“盲目”中进行的。BSP的开发调试有时要花费一至两个月甚至更长的时间。

解决的办法似乎不多。一是提高工程师的水平,在CPU的掌握、目标板硬件及周边驱动设备的熟悉、深入了解操作系统(RTOS)的工作机制、系统的资源配置等方面加强学习;另外,要选用好的JTAG仿真器或其它工具。

应用软件的并行开发 由于越来越强烈的快速上市要求,嵌入式系统的开发周期越来越短。这就必然要求在硬件开发的同时,能够进行软件的开发。一方面,用户 可以在一块标准的评估板上来开发一部分软件,待实际目标板硬件和BSP完成后,再进行系统级的调试和开发。另一方面,用户可以借助实时操作系统 (RTOS)厂商提供的虚拟环境来进行软件开发调试,要开发和调试的软件几乎不受任何限制。待实际硬件平台完成后,只须重新编译连接,即可下载到目标上运 行。注意在选用RTOS时,增加该工具环境。

来源:网络

围观 304

ARM® TrustZone® 是针对片上系统(SoC)设计的系统级安全技术,它基于硬件,内置于CPU和系统内核,为半导体芯片设计师设计设备安全性能(如可信根)量身打造。TrustZone可用于任何基于ARM Cortex®-A的系统,随着全新Cortex-M23和Cortex-M33处理器的发布与升级,Cortex-M也已经支持该技术。

从尺寸最小的微控制器(搭载针对Cortex-M处理器优化的TrustZone技术),到高性能处理器(搭载针对Cortex-A处理器优化的TrustZone技术),设计师们终于可以从设计初始就着手打造出色的安全性能了。

TrustZone技术的核心理念是将可信资源与非可信资源在硬件上实现隔离。在处理器内部,软件只能安装于安全或非安全域其中一处;在两个域间切换则必须经过Cortex-A处理器的软件(后文称安全监视器)和Cortex-M处理器的硬件(核心逻辑)处理才能执行。这种将安全(可信)域和非安全(非可信)域隔离理念的实现不仅涉及CPU,还涵盖存储、片上总线系统、中断、周边设备接口和SoC上的软件。

针对ARMv8-M处理器(Cortex-M)的TrustZone技术

ARMv8-M架构将TrustZone技术拓展至Cortex-M级系统,实现了对所有成本点的安全防护。为Cortex-M度身设计的TrustZone技术可以保护固件和周边设备,并为安全启动、可信更新以及可信根执行实现隔离。该架构具备嵌入式解决方案应有的确定性实时响应能力。同时,因为安全与非安全域间的上下文切换在硬件中完成,所以更快实现转换及更高的电源效率。该架构无需安装任何安全监视器软件,因为处理器本身就能完成切换任务,不仅可以减少存储足迹,还能降低代码执行的动态功率。

在继续讨论编程之前,我们先介绍以下几个概念:

1.地址定义安全

2.新增执行状态

3.跨域调用

概念1:地址定义安全

第一个需要了解的概念是:地址定义安全,即每一个地址都与一个特定的安全状态相关。Cortex-M处理器采用全新引入的安全属性单元来检查地址的安全状态。根据整体SoC设计,系统级接口可以重写该属性。选择此状态后,该地址还会通过一个存储保护单元(视系统配置而定)。


地址定义安全图解

概念2:新增执行状态

第二个概念是“新增执行状态”。ARMv7-M和ARMv6-M架构定义了两种执行模式:管理者模式(handler mode)和线程模式(thread mode)。管理者模式是特权模式,可以接入SoC的所有资源;而线程模式则可以设定为特权或非特权两种。凭借TrustZone安全拓展技术,我们可以对处理器模式进行镜像处理,构造安全和非安全两种状态,每种状态都各自包含管理者模式和线程模式。安全状态和处理器模式是正交的,因此可形成4种状态和模式的组合。在安全的存储器中运行软件时,处理器自动设定为安全状态;反之,在非安全存储器中运行软件时,处理器自动设定为非安全状态。这种设计消除了本来用于管理状态切换的安全监控软件的必要性,从而实现减少存储足迹和功耗的目的。


新增正交态

概念3:跨域调用

ARMv8-M为实现Cortex-M的性能专门设计,具备确定性实时运行功能。换言之,只要遵守以预先设定的安全状态接入点为基础的特定规则,任何状态下的任何功能都可以直接调用其他状态下的任何其他功能。此外,每个状态都有一个独特的堆栈集和对应的堆栈指示器,用来保护安全域资产。由于无需使用API层管理调度,成本大幅减少。基于预先设定的接入点,调度可以直接读取被调函数


跨域调用

应用案例简述

如下图表介绍了一个使用案例简述。该环境下,用户应用和I/O驱动都处于非安全状态,而系统的启动代码和通讯堆栈则处于安全状态。用户应用调度并转入通讯堆栈以传输、接收数据,而该堆栈将使用非安全状态的I/O驱动来完成界面上的数据传输和接收。

所有相似系统环境下,示例软件配置都可以得益于TrustZone技术的安全状态功能:

非安全应用不能接入安全资源,除非通过事先定义好的安全服务功能接入点

安全固件既可以接入安全存储,也可以进入非安全存储

安全和非安全代码可以用不同的定时器制定独立的时间进度

每根中断线都可以设置为安全或非安全。安全软件和非安全软件的中断向量表也可以分开。

尽管处理器硬件可以为安全软件提供核心保护,但安全软件依然需要谨慎的编写,才能确保整个系统的安全。以下是软件开发商在设计安全软件时必须牢记的三个内容:

使用最新的ARM C语言拓展(ACLE)技术

验证非可信指示

为异步非安全存储修改专门设计

建议1:使用最新的ARM C语言拓展技术

经过优化,ARMv8-M的TrustZone技术引入了全新指令,支持安全状态转换。软件开发商再也无需创建封装器来生成这些指令了,他们现在可以使用ARM C语言拓展功能(ACLE)中定义的全新编译器,让软件工具理解上述功能的安全使用,并生成所需的最佳代码。ACLE功能由多家编译器厂商实现并支持,代码非常便捷易用。

比如说,在创建可以从非安全状态调度的安全API时,应该使用一个名为“cmse_nonsecure_entry”的全新功能属性来做函数声明。安全状态调度功能使用结束时,处理器中的寄存器仍可能保留一些秘密信息。凭借正确的功能属性,编译器便可自动插入代码,清空R0-R3、R12和应用程序状态寄存器(APSR)中仍保留秘密信息的寄存器,但是寄存器将结果返还给非安全软件的情况除外。寄存器R4到R11有不同的处理方式,因为它们的内容在函数边界保持不变。如果它们的值在函数执行过程中改变,那么就必须在返还非安全调度功能之前改回原值。

建议2:验证非可信指标

有时候,非安全代码会提供错误的设计指示,试图接入安全存储。为了彻底杜绝这一可能,ARMv8-M引入了一个全新指令——测试目标(TT)指令。TT指令可以将一个地址的安全属性返还,安全软件即可由此判断该指示指向安全还是非安全地址。

为了提高指示检查效率,每个存储区都有一个安全配置定义的区域号。软件可以用区域号判断相邻的存储区是否具有类似的安全属性。

TT指令将来自地址值的安全属性和区域号(还有MPU的区域号)返还原软件。如果在存储段的起始和终止地址上使用TT指令,并确定两个地址都处于同一个区域号内时,软件便可迅速判断存储范围(如数据阵列或数据结构)是否完全位于非安全空间。


检查指示是否指向安全的区域边界

使用上述机制,凭借API调度进安全侧的安全代码即可判断,非安全软件区域发起的指示请求是否具备符合该API的安全属性。通过这种方法,我们可以阻止非安全软件在安全软件中使用API来读取或破坏安全信息。

建议3:为异步非安全存储修改专门设计

非安全中断服务程序可以修改正在被安全软件处理的非安全数据。因此,已经通过安全API验证的输入数据可以在经过验证之后被一个非安全的ISR更改。避免这种情况的一个方法就是在安全存储中为那份输入数据建立一个本地副本,并用安全副本进行处理(包括输入数据的验证)以避免非安全存储读取;无法创建该副本时(如在特定存储区域中处理大量数据),则可以选择另一种方法,即对安全属性单元进行编程,以确保该存储区域的安全。

总结

确保整个系统的安全性并阻止安全数据泄漏至非安全侧,是安全软件开发商的责任。为实现这一目标,我们向安全软件开发商介绍TrustZone 技术3大关键理念与3个重要使用建议——保护调度函数寄存器数据的ACLE技术、验证指示的TT指令;最后一点开发商也必须牢记,非安全侧可能会通过干扰安全侧来修改数据。欲知更多详情,请点此浏览,为协助您在ARMv8-M处理器上开发安全固件,我们精选了相关文件以供参考。

围观 337

页面

订阅 RSS - 处理器