作者:贸泽电子Mark Patrick
自2010年问世以来,RISC-V指令集体系结构(ISA)取得了巨大的进步。 RISC-V ISA最初是从一个不起眼的初衷开始,用于向学生讲授处理器指令集体系结构的机制和操作,但如今,从半导体初创企业到行业巨头,RISC-V ISA已在嵌入式行业的各个领域得到广泛采用。
在本文中,我们将追溯RISC-V ISA从发展的起点到今天的历史,我们还将回顾基于开源体系结构的众多新产品,以帮助您了解如何在下一个设计中实现RISC-V。
处理器架构和市场动态
在一个由主要处理器供应商主导的行业中,对持有另一种截然不同方法和技术企业的进入可能持谨慎乐观的态度。
作为嵌入式开发人员,您可能会把大部分职业时间用在相同的处理器体系结构上。例如,如果您使用Arm指令集体系结构,可能会很容易发生这种情况。在Arm之前,处理器供应商通常采用专有方法来开发和推广其指令集体系结构。为了采用这种方法,供应商需要提供依赖特定ISA的集成开发环境(IDE),板级支持包(BSP)和参考设计。 Arm凭借其处理器知识产权许可模式改变了这一切。 Arm提供了处理器核心技术和ISA,处理器供应商可以围绕这些来构建通用和专用功能模块,例如无线连接、加密引擎和DSP等。这样,独立的处理器供应商便可以提供使用行业标准ISA器件,并通过针对特定应用和场景而设计的功能在市场上实现差异化。从商业角度来看,对Arm虽然要付出IP版税(royalty),但却避免了开发和维护其ISA的高昂成本。
尽管Arm后来占据主导地位,但一些处理器供应商具有成熟的ISA,如Microchip的PIC和AVR(与Atmel一起收购)以及瑞萨的RL / RX等,它们也证明市场对原有技术仍有很大兴趣,对传统ISA的尊重也成为新设计的可行候选者。嵌入式工具链、调试器和相关开发硬件的熟悉程度和投资也是非常实际的考虑因素。嵌入式开发人员的选择是忠实原有技术的另一个原因,他们使用原有器件ISA有多年的经验,好的代码重用方法也有助于延长ISA的寿命。
是时候改换新的ISA?
ISA是处理器的基本构建块,它把软件世界连接到硬件领域,并规定了处理器的字长。它从算术逻辑单元、存储器和控制逻辑的运行定义了所有事物如何相互作用的指令集。指令集的操作码分为不同的任务类别,例如将数据从一个寄存器移到另一个或执行计算。每个操作码指定每个操作需要多少个时钟周期,使用什么寄存器以及将结果存储在何处。
任何研究嵌入式系统的人都会学习ISA如何将硬件和软件世界“粘合”在一起,从而使处理器能够正常工作。学校的课程教材可能专注于特定的处理器类型。但是,在2010年,为了进行高级处理器设计课程,加州大学伯克利分校决定出于学术目的从头开始开发ISA。从外向型的角度看,大学倾向于使RISC-V ISA完全开源且免版税,以鼓励业界采用和驱动进一步的创新。
RISC-V ISA支持32位、64位和128位字长,其持续的开发和维护是学术界与半导体行业之间的合作见证。秉承其开源精神,RISC-V鼓励整个行业的可扩展性,这是成熟的ISA所无法提供的。
业界对此的最初反应非常冷淡。为学术目的而创建ISA与嵌入式开发人员的实际需求相去甚远。首先,您需要处理器供应商采用ISA并基于它构建功能丰富的微控制器和微处理器。然后,您才会具备所有ISA所需的广泛生态系统,其中包括编译器、调试器、链接器、代码分析工具、参考设计、电路板支持包、实时操作系统等,清单不胜枚举!
但是,在2015年,由领先的半导体供应商组成的财团成立了RISC-V基金会,这立即提高了ISA的重要程度,并将其推向了稳固发展的轨道。可扩展、免版税的ISA唤醒了业界,也发挥了RISC-V的巨大潜力。随着处理器供应商看到机遇,生态系统提供商迅速努力提供IDE和工具链支持。
如今,RISC-V基金会已有1,000多名成员从事技术合作和支持,超过100个内核、处理器和SoC都在使用RISC-V ISA,且评估和开发板的数量每天都在增加。
RISC-V完善的开发生态系统
进行基于RISC-V的设计并不像您想象的那么困难。所有生态系统组件均已就绪,可以开始从开发板、工具链和处理器进行原型设计。在本节中,我们将展示许多可用的RISC-V产品中的一些。
开发板
SiFive由RISC-V ISA创始人创立,是第一家提供RISC-V处理器芯片的公司。该公司最近推出了SiFive HiFive无与伦比的Linux开发平台。
这个全面的平台基于具有SiFive Freedom U740 Linux的多核RISC-V处理器,配备有8GB的64位n DDR4 RAM,一个千兆以太网端口,一个8通道Gen 3 PCIe交换机和JTAG支持,尺寸为170 mm x 170 mm的mini-ITX型,参见图1。
图1:SiFive HiFive无与伦比的Linux开发平台功能框图。(来源:SiFive)
该平台包括Freedom U-SDK,这是一个完整的软件开发工具套件,其中包括针对特定应用需求进行定制的开源Yocto Project Linux发行版(distribution)。 microSD卡可提供了一个预构建的可引导映像。
Freedom U740 SoC处理器包括4个SiFive 74内核和1个S7处理器内核。
该高端RISC-V开发板适合各种基于Linux的应用原型制作,包括IIoT网关,网络和计算等应用。
另一个RISC-V开发板是SparkFun RED-V,它们具有Arduino Uno R3和feather-compatible两种外形尺寸,均使用SiFive RISC-V FE310 SoC。
这两种板都能够运行高达320MHz的频率,包含有32MB的QSPI闪存,并通过USB-C端口或JTAG连接器提供编程和调试支持。外围接口包括19个GPIO引脚和9个PWM引脚,一个板载NXP处理器为FE310 SoC提供JTAG支持。
图2:SparkFun RED-V Thing Plus RISC-V开发板。(来源:SparkFun)
SparkFun RED-V板可以在3.3VDC至1.8VDC的电源下运行,也能够通过USB-C供电,逻辑电平保持在3.3VDC。
RED-V板是物联网应用原型设计的理想选择,也可用作RISC-V ISA功能和SiFive FE310处理器的初始介绍。
对于从事人工智能(AI)和机器学习应用的开发人员而言,Seeed Studio Sipeed M1n AI开发套件是基于RISC-V设计的理想切入点。这款紧凑而功能强大的开发板采用M1n模块尺寸封装,可支持Kendryte K210 AI SoC和8 MB闪存。
图3:Seeed Studio Sipeed AI开发套件。(来源:Sipeed Technology)
该模块通过QVGA @ 60 FPS和VGA @ 30 FPS的视频接口支持图像识别,语音识别功能可支持包含多达8个麦克风的阵列。
Kendryte K210 SoC集成了一个运行速度高达400 MHz的双核64位RISC-V处理器,一个神经网络处理器(NPU)和一个音频处理器(APU)。 NPU可以达到每秒一万亿次操作(1 TOPS),这一性能足以满足卷积神经网络任务(例如人脸和物体识别)等需求。深度学习框架支持Keras,TensorFlow和Darknet,外围接口连接包括I2C、UART、GPIO、I2S和SPI。
Kendryte K210还可以通过集成Wi-Fi连接的系统模块(SoM)包提供。 Seeed Studio Sipeed MAix-1模块的尺寸仅为25 mm x 25 mm,适合IoT和处在边缘的机器学习应用。Seeed Studio能够提供一个全面的软件开发套件,其中包括对MicroPython的FreeRTOS支持、机器视觉以及机器音频库和框架支持。
图4:Seeed Studio Sipeed MAix-1 系统模块。(来源:Seeed Studio)
RISC-V软件开发工具
SiFive Freedom Studio IDE支持SiFive开发板和处理器。这个基于Eclipse的IDE包含一个预先构建的RISC-V GCC工具链(编译器、调试器等),Eclipse C/C++开发工具和GitHub集成。调试支持工具包括OpenOCD、J-Link和QEMU。可提供Microsoft Windows、Linux和Apple Mac OS等版本的Freedom Studio。
RISC-V在嵌入式开发社区中得到了很好的支持。在IDE和硬件工具方面, IAR Systems、Lauterbach、PlatformIO和SEGGER等行业领先者都可支持RISC-V ISA的开发。
例如,用于RISC-V的SEGGER嵌入式Studio具有基于PC的RISC-V核心仿真器,可用于对应用代码进行深度仿真,除此之外,还包括免版税的ANSI和兼容ISO C的嵌入式系统库。
除了针对RISC-V的Embedded Workbench IDE之外,IAR Systems还提供用于RISC-V设备的硬件调试探针。一个示例是IAR Systems针对RISC-V的I-jet Trace。
您准备好使用RISC-V了吗?
在这篇简短的文章中,我们分析了半导体行业如何在快速采用RISC-V ISA,而且现在已经可以使用完整的软件开发工具生态系统。尽管ISA最初是为学术目的而开发,但RISC-V的免版税、且可扩展特性引起了业界的关注,并催生了处理器创新。
RISC-V已为您的下一个项目准备就绪。您准备好了吗?