技术专题 | 全方位探索RISC-V应用发展之路!

为帮助嵌入式、物联网和人工智能的从业者对嵌入式系统相关技术形成全面、客观的认识,《单片机与嵌入式系统应用》特开设“技术专题”栏目,力邀业内有影响力的专家聚焦当下热点,撰写技术与产业深度文章。近两年,伴随AIoT的蓬勃发展、错综复杂的政经环境,开源RISC-V 指令集架构受到广泛关注,生态日益完善,但其应用发展之路还面临诸多挑战。

技术专题 | 全方位探索RISC-V应用发展之路!_第1张图片

已经出版的2020年第11期中刊登了4篇文章,围绕RISC-V处理器技术、产业生态现状与发展前景,以及RISC-V MCU 芯片设计与应用等进行深入阐述。还有另外4篇将刊登在2021年第1期中,敬请关注。现在将已经刊出的4篇文章部分内容分享给嵌友,一起学习交流,如果嵌友对全部内容感兴趣,可以给我们留言索取完整内容。

RISC-V 为什么会成为热点?

作者 贸泽电子 Mark Patrick(英国)

译者 禾沐

引 言

新的处理器指令集架构(ISA)并不会经常出现。加州大学伯克利分校开发的开源RISC-V ISA 已经在嵌入式产业中产生了不小的波澜,项目的目的是让开发者能够设计处理器核和生成对应的软件编译器。目前,该项目由RISC-V基金会运作,成员包括众多大学、跨国科技企业(比如谷歌、IBM、微软、英伟达和甲骨文)、芯片厂商和创业公司。

RISC-V 的目标是从其他处理器ISA 的错误中学习,这之中的核心是稳定性,既包括指令集和核心本身,也扩展到芯片设计者、编译器作者、操作系统构架师和开发工具供应商。稳定性让强力的处理器核更加易于获取,并增强其可用性,这对于鼓励更多的工程师在整个生态圈中使用这一开源技术而言非常重要。应用开发者可以针对一个冻结的ISA 进行代码优化,在达到最小的内存使用和功耗的同时保证扩展性和对未来设备的兼容性。这使得处理器核开发者可以开发各种不同的指令集实现,从简单的多级流水线(pipeline)到乱序执行(out of order execution)。它们会有不同的延迟、尺寸和功耗,但是它们相互兼容,而且与生态系统中的工具兼容。

整个生态系统的稳定性对于RISC-V 指令集而言至关重要,在设计时RISC-V 考虑了32/64/128位地址空间并保证三者之间的兼容性;其架构还支持扩展,从而提供芯片制造商所需的功能差异和对未来应用场景的支持,不过ISA的基本组成并不会发生变化。

。。。。。。

RISC-V 处理器嵌入式开发概述

何小庆

摘要: 本文介绍了RISC-V 指令集的起源和发展历史;讨论了各种RISC-V CPU 核、SoC设计平台和芯片产品的技术特点及选型要点;重点阐述了RISC-V 给嵌入式系统带来的益处、RISC-V 指令扩展的特点与安全应用,介绍了支持RISC-V开源和商业软件开发工具和操作系统的现况;最后展望了RISC-V 在教育和产业应用方面的发展趋势。

引 言

过去二十年,ARM 在移动和嵌入式领域成果丰硕,在IoT 领域正逐渐确定其市场地位,其他商用架构(如MIPS)逐渐消亡。不仅如此,ARM 还在进军Intel所在的x86市场,已经对传统PC和服务器领域造成一定压力。RISC-V 开源指令集的出现,迅速引起了产业界的广泛关注,科技巨头很看重指令集架构(CPU ISA)的开放性,各大公司正在积极寻找ARM 之外的第二选择,RISC-V无疑成为必然选择。RISC-V 被全球范围内的大学陆续采纳为教材以替代MIPS和x86架构,政府和企业采纳RISC-V为标准指令集,开源的CPU核和SoC芯片不断涌现,生态环境逐渐丰富,开发者社区愈来愈活跃。在错综复杂的国际政治经济环境的大背景下,芯片成为中国科技的新制高点,CPU “自主可控”与“普世通用”存在天然的矛盾,而RISC-V开源指令集架构正在成为一种解决之道。

1 什么是RISC-V?

一个CPU 支持的指令和指令的字节级编码就是这个CPU 的指令集(ISA),指令集在计算机软件和硬件之间搭起了一个桥梁。不同的CPU 家族(如x86、PowerPC 和ARM)都有不同的ISA,RISC-V 是其中唯一的开源ISA。RISC-V 是一种开源的指令集架构,它不是一款CPU 芯片,甚至不是一个完整的指令集,它是指令集规范和标准。RISC-V 起源于加州大学伯克利分校,在2010年夏季Krste Asanovic教授带领他的两位学生(AndrewWaterman 和 Yunsup Lee)启动了3个月的项目,针对x86和ARM 架构复杂和IP授权的问题,旨在开发简化和开放的指令集架构。

RISC-V基金会创建于2015年,是一家非盈利组织。基金会董事会由Bluespec、Google、Microsemi、NVIDIA、NXP、UC Berkeley、Western Digital 七家单位代表组成,主席目前是Krste Asanovi 教授。基金会为核心芯片架构制定标准和建立生态,标准是公开免费下载的。基金会旗下有300家以上的付费成员,包括高通、NXP、阿里巴巴和华为等,RISC-V 基金会成员可以使用RISC-V 商标,RISC-V 采用开源BSD 授权,任何企业、高校和个人都可以遵循RISC-V架构指南设计自己的CPU。RISC-V基金会总部从美国迁往瑞士,并于2020年3月完成在瑞士的注册,基金会更名为RISC-V 国际基金会(RISC-VInternational Association)。

十年来RISC-V 蓬勃发展,在CPU IP核、平台、SoC芯片和应用方面都有了相当迅速的发展。比如,应用上有西部数据设计的SSD 和HDD 控制器(内核是SweRVCore),中科蓝芯开发的TWS蓝牙耳机芯片,嘉楠科技的K210 AIoT 芯片,泌恒电子的蓝牙MCU、32位通用MCU和高速接口的MCU,它们的内核都是RISC-V。

。。。。。。

基于Robei嵌入式芯片的电机控制系统

焦雨晴1,刘万成2,张伟1,张在天3,吴国盛4,5

(1.青岛大学 电子信息学院,青岛 266071;2.中电科53所;3.澳大利亚新南威尔士大学;

4.青岛若贝电子有限公司;5.青岛大学 芯片设计与应用研究所)

摘要: 基于单片机和嵌入式系统开发的产品渗透至各行各业,嵌入式技术逐步改变了我们的生活。然而,市面上的芯片大多是基于ARM 架构的,意味着每个产品都暗含了ARM 公司的授权费,这使中国嵌入式开发成本大大提高,为了摆脱芯片受制于人的困境,青岛若贝电子有限公司设计了基于RISC-V架构的Robei嵌入式芯片,这对我国嵌入式设计公司和开发人员来说,在降低成本、实现技术自主方面有重大意义。本文通过电机控制系统的实现来对Robei嵌入式芯片的功能进行简单阐述与测试。

引 言

微控制器作为一个实现特定功能的芯片,在嵌入式领域得到大规模应用,但是其核心还是通过对一整套指令集进行操作与执行的机制。用户程序都要经过编译器变成微处理器支持的指令集来运行。目前这些指令集又被分为精简指令集(RISC)与复杂指令集(CISC)系统。复杂指令集的主要代表是x86架构,支持方为Intel和AMD 公司,精简指令集的主要代表是ARM 架构[1],其特点为指令数少、功耗低,在移动通信领域广泛应用。如今,ARM家族占据32位处理器超过七成的市场。ARM 处理器广泛应用于消费类电子产品,从便携式装置到电脑外设,甚至在很多军用设施(如导弹弹载计算机等)中都有它的存在。

由于ARM 指令集授权费用昂贵且不可自行更改,加利福尼亚大学伯克利分校设计了RISC-V 架构,V 有两层意思:一是指Berkeley从RISC-I开始设计的第五代指令集架构;二是它代表了变化(VARIATION)和向量(VECTORS)。RISC-V 架构是基于精简指令集计算(RISC)原理建立的开源指令集架构(ISA),并在指令集不断发展和成熟的基础上建立全新指令[2]。RISC-V 指令集的优点是完全开源、设计简单、易于移植Unix系统、模块化设计并且开源完整工具链,拥有大量开源实现和流片案例,受到很多芯片设计公司的认可。虽然RISC-V 架构起步相对较晚,但在众多芯片公司创立的基金会的扶持下发展很快。它可以根据具体场景选择适合的指令集架构。Robei 嵌入式芯片就是众多RISC-V 架构芯片中的一种。

1 芯片架构

Robei嵌入式芯片是采用Robei EDA 工具打造的三级流水CPU,流水线分为IF->DX->WB三级。IF(Instruction Fetch)用于抓取指令,DX(Decoder & Execute)负责解码并执行指令,最后一级为WB(WriteBack),用于存回数据。Robei嵌入式芯片的CPU 执行RISC-V 指令集中RV32IM 指令集,同时具备中断处理等功能。除了核心的CPU Core和总线等模块之外, 还包含DMA控制器、 I2C模块(支持主从模式和多地址识别和监测)、SPI通信模块、UART 模块(两个通道)以及Timer(三个通道)等必要模块,可以实现数据输入/输出、MPU内存块保护、WWDG 看门狗、I2C以及SPI通信、定时器计时以及PWM 波输出和DMA 数据搬运等功能。

。。。。。。

RISC-V架构的高速接口芯片设计及USB3.0应用

蔡 亮

(南京沁恒微电子股份有限公司,南京 210000)

摘要: 本文介绍了一款RISC-V架构的微控制器,通过多角度的设计方法实现将多种高速、超高速接口集成,并在实际应用中保障多个接口同时工作下的足够传输带宽。以实际模拟USB3.0 U 盘应用举例,描述了在CH569平台上并配合适当的软件结构,将发挥微控制器应用的高速设计。

引 言

微控制器最大的特点在于其通用性,不但集成了多样的功能模块、传输接口,还可以将ROM/RAM/IO 等资源完全开放给用户,通过编程实现各种功能。现在32位MCU已经是市场的主流,工作频率一般可在100~350MHz之间。但是随着市场的需求和技术的升级,USB3.0、SATA、Type C等具有高速传输率(Gbps为单位)、硬件接口统一、软件协议扩展性强的接口及技术也在逐渐普遍化。若把此类接口集成到MCU 上,可以更加完善MCU的控制领域,提升MCU 性能及功能的集成度。

现在市场上这种高速接口芯片多数是桥接芯片,即将某一种高速接口转换为另一种高速接口。此类芯片的特点是功能固定,使用方便,但不具有扩展性和灵活性。对于需要进行自由控制或数据管理的场合,则要选择接口控制芯片,这类芯片厂家较少,而且其设计目标所运行的代码复杂庞大、芯片价格高昂。对于一些特定功能要求或者在常规传输中增加自定义设计的场合,性价比较低。

近年出现的RISC-V指令及其架构凭借精简、自由、开源可控等优势被逐渐应用于MCU 的设计中,芯片厂家在此基础上可以更自由地设计自家MCU 内核体系、仲裁机制、外部资源等,从内而外提升高速接口应用性能。CH569就是基于RISC-V框架并融合了多种高速接口设计的一款32位USB3.0超高速接口芯片。

1 RISC-V MCU 高速设计

1.1 高速中断响应机制设计

MCU 中的实时处理主要靠中断技术实现,良好的中断系统设计能够提高MCU 的处理能力。通常,MCU 的中断系统在响应中断请求时,硬件会停止当前的程序流程,自动保存或修改PC值、修改工作模式(支持多种模式的MCU)等。由软件方式确定中断源后(例如中断向量表),系统将跳转到相应的中断服务程序中。大部分的MCU中断来源于“外部中断”,由外围设备驱动,发生时间具有不确定性,所以系统无法在编译过程中知道调用中断服务函数的上下文内容。因此,编译软件会在中断服务函数的开头保存所有通用寄存器数据(压栈),在离开中断程序时,再将之前保存的数据写入到内部通用寄存器中(出栈)。

RISC-V架构规定,使用基本整数指令子集需要用到32个通用整数寄存器,按照C语言调用约定,发生中断时,如果中断服务程序中调用了其他函数,那么在中断服务入口,软件会将16个通用寄存器存入堆栈中,并在中断指令返回前,将堆栈中的数据写回到通用寄存器中。CH569芯片采用硬件加速中断进出栈方式,即关闭软件对中断函数的“现场保存和恢复”工作改由硬件实现。

。。。。。。


1.从嵌入式角度分析“可解释性”对人工智能的影响!

2.【MCU】寄存器、标准库、HAL库、LL库,这么多库!你叫我怎么选?

3.用Linux开发嵌入式项目拢共分几步?

4.程序本身如何知道自身大小?这是鸡生蛋还是蛋生鸡的问题!

5.国产集成开发环境助力国产RISC-V打破国外巨头在芯片技术上的垄断

6.做嵌入式开发时,你是怎么实现LCD显示的?

你可能感兴趣的:(芯片,嵌入式,编程语言,操作系统,物联网)