RISC-V为Linux带来了实时性
作者:Jon Gabay,贸泽电子专稿
(来源:MicroSemi.com)
由简而始
最早的微处理器始于最简单的架构。四位的冯·诺依曼方法使处理器可以使用多个周期来提取指令,对指令进行解码,执行指令并在内部或外部存储结果,而这样做的代价是需要非常多的周期。长期以来这种架构满足了我们的需求,经历多代,该底层架构始终让嵌入式设计和计算机化系统表现出色,时至今日也依然如此。相比之下,当今的计算机使用多核千兆赫兹速度的处理器,拥有超乎想象的内存和存储容量。
操作系统也较之以前复杂了很多。捆绑了基本函数的早期软件内核包括Control Program/Monitor (CP/M)、Tandy Radio Shack磁盘操作系统 (TRS-DOS)、Apple OS、Commodore和其他早期先驱者,它们将第一批封闭源码和专有操作系统结合在一起,允许通过命令行指令传递参数,从而提供更大的灵活性和控制。
作为开源操作环境,Linux非常适合小型嵌入式微控制器设计以及成熟的高端计算机平台。对设计人员而言,嵌入式Linux已被证明是可扩展的灵活选择。作为微控制器的嵌入式操作系统,它允许命令行操作以及可能非常小巧紧凑的脚本内核, 是小内存和有限资源设计的理想选择。
在更高端应用方面,完整的高分辨率图形运算和用户界面可以在具有更多内存和资源的更先进处理器上运行。现在,设计人员可以选择经过全面测试和调试的代码块,用于文件I/O、图形控制、用户界面、通信、周边设备等。现在,只需选择经过验证的IP并将其拼接在一起, 从此轻松实现从概念到原型设计的转变。
正是因为Linux可扩展、无需支付代价高昂的许可费,并提供经过证明的实时性,这一切才得以实现。对于特定于应用的高端设计以及物联网 (IoT) 设备等不太复杂、特定于应用的小型设计正是如此。物联网的爆炸式增长也在改变格局。
随着人工智能软硬件的日益普及,嵌入式智能数据块也变得更加重要。在大量多核硬件解决方案涌现的今天,更是如此。RISC-V开源处理器架构为嵌入式和高端应用提供了完美的延续,当AI核心能力越来越多地与多核处理器体系结构融合时尤其如此。
对设计人员而言,嵌入式Linux已被证明是可扩展的灵活选择。简单的命令行和脚本可用于内存有限的小型设计。而涉及到完整的高端图形运算和用户界面时,Linux无需支付高昂的许可费,并提供了经过证明的实时性。现在,设计人员可以选择经过全面测试和调试的代码块,用于文件I/O、图形控制、用户界面、通信和周边设备。现在,只需选择经过验证的IP并将其拼接在一起, 从此轻松实现从概念到原型设计的转变。
知识库
现代多核硬件、超高分辨率图形和3D渲染以及现代应用(尤其是AI)需要可在本地或全局访问的大量内存和数据。可靠的硬件功能和无错误的操作系统运算至关重要。更多专门针对特定功能的嵌入式设计正在出现,而不是个人台式电脑。对于大多数人来说,Linux的嵌入显然已成为我们数字基础设施的一部分。
开源技术的一个关键优势是围绕它形成的专家库。每个人不再囿于某一制造商的独特特性,而是遵循相同的规则在同一个领域尽展才能。这些知识和经验会随着每个新设计的出现而增长,架构、工具和技术的学习时间也在缩短。这不仅仅是传统形式的高端图形渲染、通信和数据处理。曾几何时整合周边设备独特的嵌入式系统是一项非常艰巨的任务。
现代和下一代智能系统将机器学习、深度学习和神经网络用作其AI的组成部分。为特定任务开发AI算法是这个过程的一部分。使其接收数据、观察其学习、确定是否已实现成功的智能、将其捆绑、打包和使用是一项现代挑战,给预算和时间表带来了未知因素。开源处理器和操作系统可以增设封装训练AI阶段,因此比以往任何时候都更加可取,当多个设计团队共同努力解决难题时尤其如此。
Caffe深度学习框架等Linux AI库已经包含工业应用以及语音、视觉和图形。商业AI应用同样可以利用MLIB机器学习库,它可以结合Python、Java、Scala和R编程语言使用,将AI用于商业开发和趋势确定。目前已有数种适用于Linux的开源AI工具可供使用,可嵌入诸多设计中。
一旦AI证明有效,就可以添加和重用学到的经验。这样一来,设计团队就可以更轻松地引入设计的新版本,同时保留原有的设计工作。设计重用适用于硬件、固件、应用软件、嵌入式数据和从学习中获得的嵌入式知识。
适用于RISC-V的Linux
多个Linux发行版已针对32位和64位实现的RISC-V进行了编译和测试。设备和开发工具制造商有望捆绑对于特定单核或多核环境具有更全面功能的Linux软件包,从而提高集成度。预构建工具链设置和安装所需的时间和精力更少,并且有助于更快地进行设计和编码。
例如,HiFive Unleashed开发板被誉为世界上第一个也是唯一一个Linux多核RISC-V处理器开发板。8Gb纠错DRAM内存、32MB的Quad Flash闪存和Microcard可移动闪存使其招牌Freedom U540 SoC可配合Windows、maCOS和Linux用于快速部署预构建工具链。设计人员可以自由使用GNU或OpenOCD嵌入式工具链,因此也可以使用ContOS和Ubuntu。设计工程师不需要目标硬件,因为QEMU和VirtualBox等机器模拟器允许虚拟地加载、运行和调试客户机操作系统和代码,并将其下载到目标开发机器上,不会发生破坏整个开发环境的高风险情况。
使用U54或U74等SiFive HiFive 64位四核RISC-V内核和8Gb的DRAM,A/B Open的组合利用夹层连接器和Microsemi扩展板创建了一个高性能的现代台式PC。该组合将Sata、千兆以太网、USB(2和3)、PCI Express等结合在Microsemi Polarfire FPGA上。
这并不是唯一的场景。其他领先的解决方案(例如Debian、OpenEmbedded、Buildroot、OpenSUSE和FreeBSD)也与RISC-V硬件组队,同时创建32位和64位版本,既可以作为QEMU上的虚拟机,也可以在现成或简单的FPGA板上实际运行。随着深度数据密集型设计的普及,例如超高分辨率虚拟现实和全息投影成像,有望看到更多的128位甚至256位版本出现。
软硬件
目前,RISC-V CPU芯片可以在SiFive上有效运行代码,例如SiFive的FE310就可运行在Sparkfun DEV-15799上。大多数开创性设计会利用指令集扩展和基于现场可编程门阵列 (FPGA) 的内核或一组内核的硬件灵活性。确实,分立CPU芯片曾经一直是嵌入式设计的主体,但更多时候,高速并且非常密集的FPGA已取代它们,成为计算机硬件的归宿。这尤其是因为多处理器内核可以并排使用并共享相同的外围设备和内存资源,而不会占用过多的电路板空间、连接器和PCB走线。
除了Microchip PolarfireSoC FPGA以外,多家FPGA制造商也都采用了可使用RISC-V的平台。Lattice的ICE40 FPGA已在ICEcube2上使用和示范,以显示运行Zephry RTOS的硬件。就像选择Linux发行版一样,用户也需要考虑选择哪款RISC-V内核。一些人更偏好可以提供核心发行版的选项,例如Lattice、Microchip和Microsemi。第三方也会这样。例如,Antmicro Multicore VexRiscv内核是基于Python Soft SoC生成器LiteX的一种RISC-V架构。
这种32位实现支持多种外围设备,包括DRAM控制、USB、以太网、PCI Express和FPGA设计人员可以根据需要解析或复制的其他重要系统功能。可供使用的另一个内核是Open Virtual Platforms提供的RV64GC。可以想象,集成服务公司和设计公司将开拓设计流和工具链配置,以提供几乎统包的开发和调试。
问题和方向
销售包含嵌入式操作系统硬件的公司被视为商业发行厂商。这意味着他们必须在销售产品时提供源代码,或者遵守书面要约,在三年内向任何第三方提供完整的机器可读源代码副本,收取实际完成源代码发行的费用。
任何感兴趣的人都可以进行改进,并发布他们的改进,如果他们发布商业产品,可以将其改进加入未来的版本中。任何感兴趣的人都可以使用该硬件并对其进行重新编程,以通过相同的令牌执行新增或更改后的功能。一个典型的例子就是适用于b/g/n频率的Linksys Wi-Fi路由器。它使用嵌入式Linux进行开发,允许业余无线电操作人员重写固件以使用不属于标准Wi-Fi网络的其他频率。
这对于业余无线电操作人员来说是一件好事,因为这让他们可以实现普通消费者无法合法访问的更高功率Wi-Fi链路。对社会来说也有着积极影响,因为业余无线电操作人员是紧急情况下首先发出警报并提供帮助的人,经常为第一响应者提供紧急信息。这最终将使制造商受益,因为业余无线电操作人员将购买他们的产品,以便用更新的代码重新刷新。但是,与此同时,这对制造商来说也可能是一件坏事,因为现在竞争对手知道他们如何执行仲裁、缓冲区管理和设备驱动程序。
使用私有或专有算法的设计人员可能不喜欢这样。如果他们为产品增加的价值是代码驱动的专利问题解决方法,那么开源可能不适合他们。
那么硬件和指令集呢? 这一点仍然未知。RISC-V允许扩展指令集,并鼓励硬件设计人员(尤其是使用FPGA的硬件设计人员)在开源核心框架上构建。如果将专利硬件与标准指令类的扩展耦合起来,这是否就泄露了其秘密?
机器学习学到的行为或通过深度学习得到的神经网络模式又会怎样? 所有的教学和训练时间是否都会成为免费的午餐,拱手送给想要利用您设计的人? 神经元图谱也将成为开源吗? 这都是未知的,特别是因为RISC-V是相对较新的架构,并且刚刚开始受到关注、流行。这些问题应该都有出现。如何解决这些问题将取决于该国际团体成员公司发出什么样的声音。
展望
现在有前所未有的高层次构建块立即可供系统设计人员加以利用。这些构建块包括高端多核处理器、图形、组网、无线通信、能耗管理、传感器接口、电机控制、大容量存储、多协议、加密和解密以及生物特征识别。
硬件和操作系统均具有可扩展性,意味着可以部署和更新更智能的物联网设计。工具链可让设计人员剪切和粘贴功能齐全的高级功能,并将它们组合在一起。
随着智能机器的出现,现有技术的改良解决方案将取代满是漏洞的缺陷版本。新的改良将由人们进行审查和改进,而不仅仅是制造商的事情。
但是,也不要轻视其他处理器架构、公司和封闭源代码构建块。设备制造商擅长开拓最前沿的技术,并将它们封装起来供设计工程师使用。开源和闭源技术都有自己的一席之地,每个人都必须根据自己的独特需求自行确定最佳选择。