中国电子技术网

设为首页 网站地图 加入收藏

 
 

标准化开源处理器架构

关键词:RISC-V 开源处理器

时间:2022-05-19 10:37:30      来源:贸泽电子

RISC-V是一种开放的指令集架构(ISA)规范,它使任何制造商都能够制造运行相同代码的处理器。有了这种开源指令集架构,就不再需要为每种处理器架构都创建一套专门的开发生态系统并分别学习。除了专用处理器之外,RISC-V内核还可用于ASIC和FPGA,以实现更高的集成度。


图源:Shutterstock/wanpatsorn

我们是否经常因为新项目比以前的项目对功率和速度要求更高,而不得不学习新的处理器架构和开发环境?经验告诉我们,在新处理器中使用与我们熟悉的部件相似的部件至少可以减轻痛苦。但如果只学习一种新架构就可以让您在未来更快、更轻松地进行设计,是不是很棒呢?得益于RISC-V的可扩展、可复制且可配置的开源处理器,这已不再是空中楼阁。

RISC-V的前世今生

精简指令集计算机(RISC)并非什么新的架构。它们面世已有数十年,一直作为比其早出现的复杂指令集计算机(CISC)的精简替代。在RISC登上历史舞台前,CISC处理器的表现非常出色。CISC处理器基本上遵循冯·诺依曼架构,在这种架构中,处理器的代码将以多个周期运行,以便对指令进行提取、解码和执行。RISC处理器则遵循哈佛架构,这种架构的指令代码总线与数据总线分离,允许同时访问,从而使处理器可以在单个周期内执行每条指令。这赋予它们快速和确定性,并且更容易创建编译器和函数库,可以更轻松地在不同计算机之间移植。

但是,像CISC处理器一样,不同的RISC制造商都有不同的内部架构、外围设备、I/O和指令集,因此必须使用针对特定制造商和零件量身定制的开发工具进行设计开发。为了解决这个问题,开发工具制造商需要维护不同的“插件”和头文件,并把它们用在各种处理器的开发工具链中,这可是一项艰巨的任务。

尽管RISC-V项目2010年起就已在加州大学伯克利分校开展,并且有该校内外的专家和贡献者共同参与,但直到2018年,RISC-V才获得处理器制造商和设计工程师的更多关注。就是因为它有望使设计摆脱对特定制造商的零件或零件系列的依赖。

RISC-V是一种开放的指令集架构(ISA)规范,它使任何制造商都能够制造运行相同代码的处理器。有了这种开源指令集架构,就不再需要为每种处理器架构都创建一套专门的开发生态系统并分别学习。除了专用处理器之外,RISC-V内核还可用于ASIC和FPGA,以实现更高的集成度。

关键在于,开源RISC-V指令的使用是分层并且可扩展的。这意味着,设计人员在使用开源标准指令集时,仍然可以添加更高效执行深度嵌入功能的指令,从而创建专用指令集处理器(ASIP)。具体而言,芯片制造商可以通过自行加入扩展指令来实现差异化优势,设计工程师也可以依靠聪明才智开发出自己的ASIC/FPGA硬件。例如,EDA供应商就可以通过Verilog或VHDL来支持扩展。

为什么这样的机遇如此重要?高级精简指令集机器(ARM)架构处理器是当今市场上的主导RISC力量,但是公司预付六位数的许可费和高昂版税的情况并不少见。

要确保领先技术的长期可持续性,尤其是在军事和安全需求方面,需要考虑许多因素。开源RISC-V架构可以很好地满足每个人的需求。

国际压力使开源RISC-V成为了国际标准,总部位于瑞士而非美国的RISC-V基金会也于2020年3月正式更名为RISC-V International。RISC-V基金会(riscv.org)负责RISC-V标准的维护。

RISC-V架构详解

RISC-V使用标准的5级管道,每个时钟周期最多允许执行两条指令。该标准实现了标准的加载/存储架构,将ALU与内存操作区分开来。基本寄存器定义为Base Integer(基本整数)ISA,其加入了偏移寄存器值,并使用源寄存器或目标寄存器来实现对外部存储器的完整访问。I/O可映射到该空间中,实现灵活的编程I/O和块操作。此外,Load-Reserved/Store-Conditional指令(LR/SC)有助于根据条件标准进行更新或输出。

基本整数指令的特点是整数寄存器宽度和用户设计空间大小。RV32I和RV64I指令变体支持32位和64位用户级地址空间;未来的RV128I将能够实现平面128位寻址能力。该指令集旨在不用“过度设计架构”就可支持原生硬件实现,使之适于通过ASIC或FPGA来实现。

指令变体同时具备32位和64位寻址能力,以及用户级ISA扩展,并且支持专用变体。小字节序配置的使用类似于x86架构。例如,访问的存储器地址不必与它们可能是16位、32位、64位或128位的字宽对齐。另外,“Fence”指令可确保先前的指令值结果对于其他线程或I/O设备可见。这样就可以在不影响I/O的情况下将内存读/写操作分开,避免了等待时间。

存储器上位加载直接指令也是一项非常有用的功能,其允许32位地址寄存器的上20位加载时在单循环指令中放入直接数据值。此外,另一种存储器地址操作指令可设置下12位。这有助于创建与位置无关的代码,允许程序生成相对于程序计数器寄存器的32位地址。此外,虽然目前128位寻址的存储器似乎还难以想象,但此功能仍然存在。

堆栈指针、全局指针和线程指针包含在32个整数寄存器集中,另外还有32个浮点寄存器可用于实参、形参和结果。读取时,寄存器x0始终返回“0”,并且在所有实现中通用。非常重要的一点在于RISC-V具有用于嵌入式应用的16位变体,其32位变体也有用于整数寄存器集和浮点寄存器集的选项。

RISC-V可执行16位、32位、48位、64位和80+x位长度的指令,并支持可变长度指令,现有规范还为192位以上指令长度预留了编码。异常、陷阱和中断可得到完全支持。

正如预期的那样,扩展用于算术运算以指定定点、浮点、整型、精度、高返回值、低返回值和运算类型(表A)。

乘法和除法的算术扩展

表A:乘除法的简化扩展(来源:编者)

类型

扩展

整型

M

单精度

S

双精度

D

浮点精度

F

原子操作

A

四精度

Q

十进制

L

变体和矢量处理支持多种数据并行加速器,这是RISC-V架构的明确目标。弱内存模型将使未来的扩展更易于结合数据并行协同处理器或加速器功能使用。例如,用户定义的加速器经过设计可运行基础应用域提供的内核。这样,就可以消除基本整数运算外的所有运算,并且只使用能够让手边任务更加高效运行的扩展。

这对于AI加速和机器学习非常有用。为提高teraFLOPS/Watt,使用特定领域扩展 (DSE)、张量指令和矢量ISA的工作正在进行当中。用户定义的硬件加速器将始终优于基于软件的计算解决方案。这些定制的加速器可链接到数据管道,还可加速图形、多媒体、DSP、实时电机控制及其他特定的架构需求。

最近得到批准的是向量扩展,它向32位向量寄存器添加了七个非特权CSR。必须正确设置向量上下文状态字段mstatus vs.,否则尝试执行或访问任何向量指令均可能引发非法指令异常。

尽管加速器非常适合硬件和计算机密集型任务,但是在将虚拟机作为来宾或进程实现时,虚拟机监视指令非常方便。内部嵌入式方法可以处理繁重的任务或内务管理功能,并且可作为处理器代码的一部分,或卸载到系统中的其他内核。使用“H”扩展,虚拟机监视指令是特权指令集的一部分,使按机器模式运行的处理器可以有多个用户、进程和管理者。作为正交实现进行规划时,配置位可允许监管代码访问系统虚拟机监视器寄存器,或在访问后生成中断。

密码学和机器学习功能利用向量扩展,这些扩展是特定领域中其他向量扩展的基础。RISC-V架构可以加速支持32位和64位数据路径的加密工作负载。这有助于实现NIST AES解密和NIST AED解密,以及块密码、哈希函数、熵源扩展、Crossbar交换等。

一个近期的关键发展是开始支持SiFive的Freedom SDK开发系统的可信执行环境(TEE)。向RISC-V新增的HexFive安全多区域支持基于“无限”数量安全区域的强制分离硬件策略。这让固件开发人员能够实现对数据的完全控制。代码、外设和中断锁定将会是违反安全规定时的尝试。

硬件线程的显式定义是特权指令的一部分,后者允许从停止的线程或尚未准备好进行处理(例如正在等待输入或正在计算中)的线程恢复。硬件线程还可实现更加高效的中断,因为不必为快速和实时服务例程实现保存和恢复操作。RISC-V的ISA支持五种虚拟机监视器运行模式,即机器、管理器、用户、虚拟机监视器下级管理器和虚拟机监视器下级用户。这为多个独立进程提供了很大的灵活性,使其在运行时不会相互影响。

现实示例

为了更好地了解RISC-V是什么,以及如何与时俱进地利用这项技术,我们使用业界知名的RISC-V开发公司来作为示例。SiFive为特定领域的片上系统(SoC)提供了一系列RISC-V处理器内核,从低功耗嵌入式微控制器式内核一直到多核应用处理器,品类丰富。此外,可以调整可配置内核来满足特定需求,其中包括HyperX架构、流水线结构、矢量架构和并行处理架构。

SiFive的一个主要优势在于其在线微架构生成器工具可提供详细的架构配置和扩展(图1)。设计人员可以使用单个或多个浮点处理器、位操作指令、灵活中断处理程序、预测分支等,进行单核或多达8个及以上内核的设计。这些架构是针对测试挂钩以及使用J-TAG的调试和跟踪功能而构建。


图1:在统一或单片设计中混合和匹配多个内核的能力让工程师能够根据他们的需求定制设计,同时无需完全重新设计就可保持升级或增强多个部分的能力。(图源:SiFive)

外设端口位宽可以是32位宽,代码和数据的内存端口位宽可以是64位宽,这意味着更少的访问次数和更快的传输速度。内存块可以是内核独有的,也可以映射用于内核之间的共享访问。SiFive方法的一个主要优点是允许以异构和/或单片方式实现密集外围功能的混搭过程(图2)。计算密集型任务可以通过共享内存和外设的原子访问,与数据I/O、加载和存储以及通信操作并行运行。



图2:灵活的在线内核开发工具可满足要捕获和分类的每个内核的特定需求,包括多核架构、外围架构、总线宽度和共享资源。构建函数创建自定义内核,仿真模型被用于功能验证。(图源:Bedford Falls)

SiFive带来的另一个重要好处是增强了安全性。采用WorldGuard技术,细粒度安全性可以隔离执行代码和数据。这包括无限量用户定义世界的多级特权。此外,世界ID标记还将进程彼此隔离以确保受保护的隔离执行。

屏蔽架构也包含在内,以保护关键信息。其具有符合NIST SP-800-90A/B/C标准的真随机数生成器,用于加密和基于信息熵的安全功能。此外,AES加密引擎可抵御各种类型的攻击,安全加密哈希引擎支持SHA-2和SHA-3标准以及公钥加密。

目前可用的芯片或开发平台上使用的是较新的Crown Supply HiFive FE310-G002 32位RISC-V SoC和开发板。这款3.3V开发板具有32位宽数据总线以及集成无线技术,用于要求高端处理能力的网络和物联网应用。

将基于RISC-V的产品作为内核进行开发,可以提供尽可能高的集成度和性能,因为几乎所有功能和数据传输都可采用单片进行。

尽管使用硬核应该能提供一个经过全面表征和调试的处理器起点,但软核能够实现用户集成的功能,可完成单片并排运行。

要点总结

能够使用免费许可IP来定制微控制器和微处理器架构,就可以实现当前和未来的产品线标准化。此外,开源意味着,一旦完成最初的学习曲线,就可以利用大量合格的专业设计人员持续开发产品的架构。

最小和增量式设计改进不会将原来的优势和缺点一股脑全部摈弃,而且硬件和软件的巧妙实现可以在未来重复使用。这使得设计人员可以专注于新设计的创新和先进之处,并为未来可用的设计元素、库、功能和模块提供稳定的平台阶段。这似乎是一个“轻量级RISC”解决方案。



Jon Gabay

作者介绍

Jon Gabay拥有电气工程专业背景,曾就职于国防、商业、工业、消费、能源和医疗公司,担任过设计工程师、固件编码师、系统设计师、科学家和产品开发人员。作为一名替代能源研究者和发明家,在2004年之前他曾成立并运营了一家专注于自动化技术的公司 - Dedicated Devices。此后,他一直从事着技术研发工作,并撰写了多篇文章,为新一代工程师和学生提供了多种参考资源。

关于贸泽电子

贸泽电子(Mouser Electronics)是一家全球授权半导体和电子元器件授权分销商,服务全球广大电子设计群体。贸泽电子原厂授权分销近1,200家知名品牌,可订购数百万种在线产品,为客户提供一站式采购平台,欢迎关注我们,获取第一手的设计与产业资讯信息!

  • 分享到:

 

猜你喜欢

  • 主 题:自主移动机器人(AMR)平台方案介绍
  • 时 间:2024.11.19
  • 公 司:安森美

  • 主 题:PIC®和AVR®单片机如何在常见应用中尽展所长
  • 时 间:2024.11.26
  • 公 司:DigiKey & Microchip

  • 主 题:盛思锐新型传感器发布:引领环境监测新纪元
  • 时 间:2024.12.12
  • 公 司:sensirion