过去十年的定义是各种技术领域的开源创新。软件堆栈的可公开访问性质使开发人员社区能够交换代码并实现想法,以构建超越组织边界的协作杰作。很长一段时间以来,更广泛的社区都没有认识到这一趋势。最终,绝对的数量和质量赢得了许多拥护者,开源成为软件事实上的黄金标准,但开源硬件呢?
在软件不断增长的同时,硬件开发仍然是孤立的,并且以公司为中心,以创造竞争优势。硬件的历史充满了导致不同规格出现的非协作运动。孤立的创新最终导致市场分散的例子很多。专有性质并没有成为可持续的业务优势,而是成为瓶颈,并最终导致该标准的终结。索尼蓝光就是这样一个例子。
一个可能的原因可能是硬件是通过 IP 保护获得商业竞争力的源泉,因此公司希望将其保留在内部。显然,这种方法并没有扩大规模,我们目睹了硬件平台的增长速度要慢得多。例如,当人工智能 (AI) 出现精益但要求苛刻的用例时,该行业还没有准备好。现有参与者试图推动传统的 FPGA、GPU 和 CPU 解决方案,这些解决方案对于不断发展的推理行业所需的计算来说并不理想。很长一段时间,Arm 不断创新,提供了非常进化的指令集,但最终也未能跟上步伐。
这种情况最终导致亚马逊和谷歌看到了定制计算解决方案的潜力,因此他们开始投资半导体以开发推理定制处理解决方案。它为开源硬件驱动的车辆带来了一线希望,这将有助于缩小数据科学与大数据驱动的智能之间的鸿沟。本文追溯了开源软件的历程,并总结了一些经验教训,可以帮助开源硬件通过采用最佳实践来迎头赶上。
图 1:Arm 及其指令集架构 (ISA) 多年来一直是知识中心。
开源秘方
二十多年前,当开源概念首次出现时,围绕货币化存在许多问题,随着时间的推移,各种模型也在演变。如今,超过 3500 万开发人员为代码做出了贡献,为数十亿台设备提供动力,并由此产生了巨大的价值。从 MongoDB(79 亿美元)和 Elastic(73 亿美元)的公开上市以及微软(70 亿美元)、IBM 的 RedHat(340 亿美元)和 Salesforce 的 MuleSoft 的大额收购公开上市后就可以看出上市65亿美元。
今天,所有大公司都在以某种形式使用开源,因为它有助于创建优化的软件来解决手头的问题。虽然计算机和电信行业是开源软件的主要消费者,约占其软件需求的 60%,但工业和医疗保健企业正在迅速采用。开源大大减少了开发时间,因为大多数模块都以经过良好测试和优化的形式提供,随时可以集成到软件堆栈中以解决特定问题。
开源提供了一个经典的营销课程:用户在意识到之前就已经是客户了。当他们意识到这一点时,他们在他们的堆栈中使用了如此多的开源代码,以至于他们最好购买许可证。从 Apache 孵化的许可证到 MongoDB、Elastic 和 Cockroach 提供的对商业更友好的许可证,该行业已经走了很长一段路。这就是开源在最初几天没有任何明确的营销需求就开创了免费增值模式的方式。
开源软件成功的秘诀是在任何新旅程的核心发现问题,并让商业模式随着时间的推移而出现。随着您解决更重要的问题,您的源代码需求会增长,从而扩大项目规模,吸引更多资金。这就是为什么上四分位数的开源项目会产生显着的开发者吸引力,而其中大多数是免费的社区项目。
理解为什么有人会为已经开源的代码付费也很重要?答案在于一段时间内的专门支持、安全修复和维护。它导致满足不同行业需求水平的不同开放程度。
Linux的出现
今天,开源软件在代码大师班和商业模式方面有了显着的发展。每当一家领先的公司参与开源开发时,它都会成为创建庞大而持久的堆栈的催化剂。
Google 开创了各种成功案例,例如 Android 移动操作系统、TensorFlow 机器学习和 Kubernetes,用于部署、扩展和容器化应用程序管理。有几个企业家努力解决问题的年轻创业公司的例子。随着大众对这个问题的突出认识,解决方案的规模和数量都在增长,从而带来了商业成功的故事。
在这个增长过程中,关键的组成部分是 Linux 的出现。它作为一个可扩展的主干,可以吸收如此多的不同组件和硬件并无缝提供高性能。无论是提供强大的主干来处理严格的时序要求,还是创建空间以适应处理特定架构元素的不同方式,Linux 都在成功交付成果的同时满足了苛刻的用例。
构建类似 Linux 的胶水
有了关于开源软件进化的背景,让我们将探索转向开源硬件世界。并不是说开源硬件没有取得任何成功;无论硬件在哪里开源,它都会成为一个巨大的成功故事。Arduino 是一款开源微控制器板,它是开源硬件如何彻底改变人们使用硬件进行研究和项目相关活动的方式的典型代表。
随着计算世界日益增长的需求,开源硬件的想法正在迅速普及。几家小型企业尝试使用模块化硬件,为客户提供配置首选硬件模块的选择。这个想法令人兴奋,使用户能够为扬声器、摄像头和来自不同供应商的网络模块使用一流的硬件,并创建他们想要的任何设备。
但这种方法未能转化为可扩展的产品和消费者的大规模采用。原因可以追溯到缺乏可以使硬件模块化真正可用的驱动硬件代码。孤立且高度捆绑的开发使得在最终产品中实现模块化几乎是不可能的。随着处理器达到违反摩尔定律的地步,前所未有地需要开创性的创新来汇集该行业的主流智慧。
正如我们看到硬件领域对开源的需求一样,先驱者可以从其开源软件兄弟那里吸取一些教训。开源软件旨在弥补领先供应商提供的软件的性能差距。因此,重点从来不是用户友好性,而是在具有挑战性的环境中更高的可靠性和代码性能。
Linux 成为一种流行的服务器操作系统。MySQL 在该领域向 Oracle 发起了挑战,纯粹是基于架构稳健性和模块化方法的优点,并解决了单体架构的缺点。今天,我们看到亚马逊将几乎所有的软件模块作为单独的服务出售,这在早期的单一软件理念中是不可能的。
关键问题是,开源硬件的Linux等价物是什么?挑战在于硬件的复杂性,使它几乎不可能构建一个类似Linux的胶水,将所有硬件连接在一起。因此,在建立民主的硬件生态系统方面,物理、法律和经济障碍从未受到真正的挑战。在第一部分中,物理限制是相当复杂的,并限制了真正的Linux等价于开源硬件突破的发展。但5G从开放硬件(如无线电接入网络(RAN))中脱颖而出,这表明它是可以想象和创造的。
下一个关键问题是,像RISC-V这样的指令集体系结构(ISA)是否可以触发开源硬件的扩散,Linux为平滑同化各种异类组件提供了一条途径。如果是这样的话,什么阻止了早期玩家建立这样一个生态系统是很重要的。
图3:Microsemi在其FPGA设计中实现了RISC-V内核。
在很长一段时间里,ARM扮演着知识中心的角色,为那些不愿意被束缚在流行选项上的玩家带来了最好的指令集。RISC-V在开源硬件领域提供了一个独特的机会,在ARM可能被并入一家大型半导体公司后,它有可能成为黄金标准。
随后的挑战在于新工具的学习曲线。在一段令人难以置信的时期,硬件行业在验证 RTL 代码的方式上并没有发生巨大的变化。SV-UVM 是一种事实上的选择,它逐渐发展并创造了一个重要的舒适区。创建一个新的解决方案并期望人们愉快地采用它是具有挑战性的。价值必须大得多,才能触发大规模采用新的设计和验证工具集,以创建优雅的硬件设计。
在诸如 PCIe、USB、OpenCL 和 OpenCV 等开源硬件规范方面有成功案例,然而,通往真正开源硬件的道路却要经历生产难题。这将涉及下一个 TSMC 的出现,它可以支持灵活的运输,并为 RTL 验证流片创建端到端管道,与开源硬件的新世界保持一致。说起来容易做起来难,因为与投资不大的软件不同,在硬件方面,每一层都以紧密耦合的方式构建了数十年,为开源硬件让路而拆除成本很高。
现有工具的增量演进可能需要一个世纪才能达到改变业务的开源硬件阶段。解决方案是通过明确的路线图开启一个不同思维和突破的新时代。除非开源硬件的先驱者找到端到端问题的答案,否则采用和建立一个事实上的 Linux 等效物将发现有限的接受者。对设计工具和生产的投资需要通过大规模的技能再培训来取得成功,以使设计社区大规模采用新的工具链来创建敏捷的硬件开发。
审核编辑:郭婷
评论
查看更多