将RISC-V放入您的设计中

描述

让我们谈谈将 RISC-V 整合到工业产品线开发流程中。这里的关键信息是,软件工程师可以更早、更频繁地进行创新,并为硬件设计团队提出更具体的核心要求。如果你曾经做过基于 Linux 的设计,你应该熟悉这个过程,因为有很多相似之处。同时,硬件工程师利用开源 RISC-V 实施,可以在创新和协作方面领先一步,并参与开放社区。

Linux

图1

如图所示,传统的硬件/软件协同设计模型在划分阶段后硬件和软件设计并行向前发展。虽然这是“完美世界”的场景,但现实情况是硬件通常驱动设计的大部分定义,而软件则支持硬件定义的内容。虽然这种情况多年来有所改善,并且软件对整体定义的贡献比过去更大,但它仍然是一个以硬件为主的模型。

Linux

图 2

像所有模型一样,最终您必须从概念到实际实施,并且必须以具有成本效益的方式进行。因此,大多数组织实施产品开发模型来管理此过程,例如 NXP 显示的模型,其中硬件和软件开发阶段大部分与几个已定义的正式里程碑并行运行。

美中不足的地方在于,硬件和软件开发人员通常是从不同的地方裁减出来的。对于每个学科来说,完美的解决方案看起来都非常不同,而性能方面的考虑往往会迫使做出对软件人员不友好的决策。一种潜在的解决方案是,在做出这些决定时,硬件开发人员应该考虑如何让软件团队更轻松,即帮助他们利用已知的范例。

在恩智浦,软件团队驱动下一代物联网系统的编程模型,这是定义算法和数据结构表达的底层计算系统的抽象。这有助于弥合底层硬件架构与应用程序开发人员的软件支持层之间的差距。它将包括操作系统以及可以通过硬件实现改进的功能,例如低级中断、内存管理和时钟支持。例如,对于具有连接性的嵌入式处理器,软件团队提供与硬件设计团队紧密架构的 PHY 和 MAC 层堆栈的输入,以实现高效的 SoC 设计。

当您查看当前设计所投入的资源(资源等于人)时,很明显软件开始主导嵌入式设计的成本。因此,软件团队需要在决策中拥有更大的发言权。

Linux

图 3

图 3 显示了一个更现实的设计流程,其中硬件设计在软件之前开始,为软件团队提供了一些关于它需要支持什么的定义。不幸的是,这最终会导致更长的软件设计时间。

Linux

图 4

如图 4 所示,可以通过使用 Zebu 和仿真等快速仿真技术在流程的早期开始,采用“左移”方法进行软件开发。因此,图 3 中的过程图已经演变,现在显示软件开始更早,结束更早。

RISC-V 编程模型由创建机器抽象视图的语言和库组成。关于控制你需要问的问题是”

并行性是如何产生的?

如何强制执行依赖项(排序)?

对于数据,它是:

数据可以共享还是全部私有?

如何访问共享数据或传输私有数据?

对于同步:

可以使用哪些操作来协调并行性?

什么是原子(不可分割)操作?

使用 Chisel 硬件设计工具等工具和 RISC-V 等开放式 ISA 实现,软件团队可以在流程的早期开始探索,使用关键软件算法和应用程序,设计可以有效执行这些关键软件应用程序的专用 RISC-V 内核。 这尤其适用于系统定义和软件系统建模。

在处理系统定义和软件系统建模时,软件工程师使用类似于 C/C++ 程序或 Matlab 模型的模型以及一组性能要求。然后,Chisel 用于设计探索。

一旦团队获得了扩展 RISC-V 架构所需的指令,它们就会作为新指令的定义传递出去,最终生成编程模型。这就是发送回硬件团队进行实施和优化的内容。

一个重要的问题是 RISC-V 是否可以“足够开放”以类似于 Linux 模型的方式运行。如果你看看 Linux 的早期以及它是如何开始流行的,那么如果它确实以这种方式发生,那将是对行业有利的。在嵌入式领域,Linux 项目的数量大约增长了 50%。大约 80% 的用户使用操作系统的免费版本。

RISC-V要取得成功,必须坚持这四个“自由”:

出于任何目的运行软件的自由。

研究软件如何工作的自由,并对其进行更改以使其按照您的意愿行事。访问源代码是一个先决条件。

重新分发副本的自由,以便您可以帮助您的邻居。

将修改后的版本的副本分发给他人的自由。

关键信息是嵌入式软件工程师将在定义 SoC 架构,特别是编程模型和系统优化方面发挥更大的作用。开源 RISC-V 实现将允许更多的软件驱动硬件。生态系统对于 RISC-V 的成功至关重要。

审核编辑:郭婷

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分