RISC-V 开源处理器
对于您的下一个嵌入式设计
减少指令集计算机 (RISC) 不是新的架构,并且作为之前的复杂指令集计算机 (CISC) 的简化替代方案已经存在了几十年。较旧的 CISC 处理器工作得很好,大多数情况下遵循 Von Neumann 架构,处理器的代码将循环运行以提取、解码和执行指令。另一方面,RISC 处理器遵循哈佛架构,其中指令代码总线与数据总线分离,允许同时访问,使处理器能够在单个周期内执行每个指令。这使得它们能够快速、确定性和更轻松地创建函数编译器和库,从而更容易地从机器移植到机器。
但是,与 CISC 处理器一样,不同的制造商具有不同的内部架构、外设、I/O 和指令集。这需要针对特定制造商和零件定制的开发工具,以便开发设计。开发工具制造商通过为每个处理器的开发工具链维护不同的"插件"和标题文件来处理这个问题。相当的任务。
虽然RISC-V项目于2010年在加州伯克利启动,同时有伯克利和非伯克利的专家和贡献者,但直到2018年以来,RISC-V才获得了处理器制造商和设计工程师的更多关注,因为它承诺将设计从被锁定在制造商的零件或零件系列中。
RISC-V 是指令集架构 (ISA) 的开放式规范,允许任何制造商制造运行相同代码的处理器。此开源指令集方法无需为每个处理器的架构学习和创建独特的开发生态系统。除了专用处理器外,RISC-V 内核还可用于 ASIC 和 FPGA,实现更高的集成性。
关键是开源 RISC-V 指令的使用是分层和可扩展的。这意味着,使用开源标准指令集仍然允许创建应用程序特定指令集处理器 (ASIP),让设计人员添加自己的指令,更有效地执行深嵌入式功能。这可以采取芯片制造商的扩展形式,区分自己或ASIC/FPGA硬件从设计工程师的头脑无处不在。例如,EDA 供应商可以通过维利洛格或 VHDL 支持扩展。
为什么这个时机如此重要,你可能会问?先进的 RISC 机器 (ARM) 架构处理器是当今市场上占主导地位的 RISC 力量,但是,由于与华为的 ARM/中国合资企业以及主要 EDA 核心处理器产品施加的压力等多种因素,ARM 收入正在稳步下降,对 ARM 许可成本增加的持续担忧改变了可行性等式。ARM 正在提高其价格相当多。对于一个公司来说,预付六位数的许可费以及非常高的成本版税并不罕见。
在通信和任务关键技术的高科技问题上的政治摩擦正在推动各方走向开源的RISC-V架构。为了避免地缘政治摩擦,国际压力使开放源头RISC-V成为国际标准,并在3月正式成为RISC-V国际,总部设在瑞士而不是美国。RISC-V基金会(riscv.org)维持标准。
图1:里斯克-V。图片来源: RISC-V
建筑
RISC-V 使用标准的 5 级管道,每个时钟周期执行最多允许两个指令。实现了标准负载/存储架构,将 ALU 与内存操作区分开来。基础寄存器定义为基础集成 ISA,添加偏移寄存器值,并与源或目的地寄存器配合使用,以便完全访问外部内存。I/O 可以映射到此空间中,以便进行灵活的编程 I/O 和块操作。负载保留/存储条件指令 (LR/SC) 是一种有用的指令,允许根据有条件的标准进行更新或输出。
基础整数指令的特点是整数寄存器宽度和用户设计空间的大小。RV32I 和 RV64I 指令变体支持 32 位和 64 位用户级地址空间,未来 RV128I 打算为平 128 位寻址容量添加。
指令集的意图是允许本地硬件实现,而无需"过度构建",以保持其作为 ASIC 或 FPGA 实施的充分位置。指令变体包括 32 位和 64 位寻址功能,支持用户级 ISA 扩展和专用变体。
例如,小 Endian 配置的使用方式与 x86 架构类似,访问内存地址不必与其单词宽度对齐,字宽可以为 16、32、64 或 128 位。"篱笆"指令确保其他线程或 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 位指令长度的编码,包括在本规范中。完全支持例外、陷阱和中断。
如预期的那样,在本例"M"中,使用标准扩展支持整数倍增和分隔。单精度 ("S") 和双精度 ("D") 操作添加浮点 ("F") 扩展,并定义一类原子操作扩展 ("A")。还提供了四精度("Q")扩展,并支持小数符号的标准扩展("L")。
变体和矢量处理支持一系列数据并行加速器,作为RISC-V架构的明确目标。轻松的内存模型将使未来的扩展更容易处理数据并行的共处理器或加速器功能。例如,用户定义的加速器可能设计为运行来自重要应用域的内核。在这里,您可以消除除基础整数操作之外的所有操作,并且仅使用使手头任务更高效运行的扩展。
这对于人工智能加速和机器学习很有用。正在利用域特定扩展 (DSEs)、天体指令和矢量 ISA 来增加 TeraFLOPS/瓦数。用户定义的硬件加速器始终优于基于软件的计算解决方案,这些自定义加速器可以链入数据管道,还可以加速图形、多媒体、DSP、实时电机控制和其他特定的架构要求。
虽然加速器适用于硬件和计算机密集型任务,但超视听指令在将虚拟机作为客人或流程实施时尤其有用。内部嵌入式流程可以处理密集或内部管理任务,并成为处理器代码的一部分,或卸载到系统中的其他内核。使用"H"扩展,超视听指令是特权指令集的一部分,允许在机器模式下运行的处理器具有多个用户、流程和主管。配置位计划为正交实施,允许监管代码访问超遮阳板寄存器或在访问时产生中断。
硬件线程的明确定义是特权指令的一部分,允许从已停止的线程或未准备好继续的线程中恢复(例如,等待输入或在计算中间)。硬件线程还可以实现更高效的中断,因为快速和实时服务程序不必实施保存和恢复操作。RISC-V 的 ISA 支持五种超视面操作模式。它们是机器、主管、用户、超遮阳板主管和超高压下用户。这为多个独立流程的运行留下了很大的灵活性,而无需相互踩踏。
发展
幸运的是,一些质量开发环境、板材和套件从库存中随时可供 RISC-V 开发。虽然很少人引入离散芯片,但可以利用几个硬核和软核开始评估和发展RISC-V承诺的可实现性能。
作为离散芯片,首块RISC-V芯片来自中国T型头设计集团
基于 RISC-V 架构的 64 位核心实现,推出了 XT910。XT代表玄蒂,它转化为由暗铁制成的重剑。
这是第一个将 RISC-V 作为离散芯片 (RV64GCV) 实现的暗铁剑刺,每个星团具有 1、2 或 4 个内核,以及用于 AI 加速度的矢量发动机。针对边缘服务器、AI 和工业控制,采用台湾半导体的 12 纳米 FinFET 工艺制造。每个内核包含 32K 或 64K 的 L1 数据和 L1 指令缓存,并且可以同步多个内核以加快内存访问速度。XT910 使用 2.5 GHz 时钟和所有四个内核,被吹捧为在 300 GFLOP 上执行。这是针对预计到 2025 年的大型 175 齐塔字节数据集。
SIFive 宣布了 RISC-V 的第一个吹捧发展环境。这是一家完全专注于新架构的公司。它发布的999美元RISC-V开发者板在几天内就卖完了。西方数字公司只用了一个月的时间就为SiFive的自由平台颁发多年许可证,西数宣布计划将其整个产品组合转移到RISC-V硅,并成为SiFive的投资者。
现在可作为芯片或开发平台是较新的皇冠供应HiFive FE310-G002 32位RISC-V SoC和发展板。3.3V 开发板配备 32 位宽数据总线和集成无线技术,用于需要高端处理能力的网络和 IoT 应用程序。
开发基于 RISC-V 的产品作为核心提供了尽可能高的集成和最高的性能,因为大多数所有功能和数据传输都可以整体进行。
虽然硬核的使用应提供一个功能齐全且经过调试的处理器起点,但软核允许用户集成功能并排整体运行。
Terasic 提供针对 RISC-V 的核心开发平台。 PO633开发工具围绕 500 针 50,000 逻辑元件英特尔/阿尔泰拉 MAX 10 FPGA中心。这具有内部非电离即时内存、DSP 块以及外部 DDR2 和 DDR3 DRAM 接口。
作为通用处理器发动机,几乎可以实现任何操作系统,甚至多个操作系统也可以在运行时环境中作为虚拟机在高性能核心的处理能力下进行仿效。
有趣的是,最近发布的Linux 5.8支持RISC-V架构,这意味着一个无许可证的硬件和操作系统解决方案是在那里为设计师使用。
结论
迄今为止,第一代离散芯片和内核现已可供开发。作为学习和体验的平台,这可以让设计师在熟悉架构和工具方面领先一步。
期待看到更多的球员在外地。也希望看到一些真正的产品开始出现基于RISC-V架构。免费核心许可甚至免费操作系统许可的诱惑将是低 RISC 高容量高性能设计的一大驱动力。