RISC-V——针对SoC的一套开放标准
对于大多数计算设备来说Linux已经成为了标准的操作系统,伯克利的研究者希望RISC-V也能够像Linux一样成为所有计算设备的标准ISA
片上系统(systems-on-a-chip, SoCs),集成了处理器和cache,如今已经被越来越广泛的运用到各个领域之中。因此有越来越多的公司加入到了芯片制造这个领域之中。鉴于业界已经通过开放标准和开源软件进行了革命——如TCP/IP和Linux。那么作为最重要的接口之一的指令系统(instruction set architecture,ISA)为什么不对所有人开放呢?
尽管指令系统由于历史或商业原因变得专利化了,但是从技术角度来看,必须要有免费的、开放的ISA。
这并不是一个遗漏的错误。一些拥有很成功ISA的公司,如ARM,IBM,Intel,MIPS都拥有针对他们自己的ISA的专利,而这使得我们这些没有license的学术机构和小公司根本无法使用这些ISA,除非付出巨额的费用。
而ARM的license甚至还不允许你设计自己的ARM核;而是只能使用其设计。目前世界上大约只有10家大公司才拥有修改其设计自己的ARM核的license。这就是商业,通过阻止别人进行设计改造从而扼杀了竞争和创新。
也不是因为公司做大部分的软件开发。虽然围绕这些流行ISA的软件生态系统有着非常高价值,但这几乎都是外人构建了所有的软件。
并不只有公司具备设计合格的ISA的能力。虽然设计ISA涉及到大量工作,但是今天有很多机构或公司有能力设计ISA。
最流行的ISA并不见得是完美的ISA。ARM和80x86不被视为完美的ISA。
也不是只有设计ISA的公司才能验证它们。很久以前,开放组织开发了可以确保与诸如浮点单元(IEEE 754),网络芯片和交换机(以太网)和I/O总线(PCIe)的硬件标准兼容的机制。如果没有这样的组织,开放的IT标准也不会那么受欢迎。
最后,专有ISA不能保证永远存活下去。如果一个公司倒闭了,它的ISA也会随之消亡。Digital Equipment公司的消亡导致Alpha和VAX ISA也一起终结了。注意,ISA实际上是一个接口规范,而不是实现。
其实有应该三种类型的ISA实现:
(1) 私有的闭源,如AppleiOS (2) 许可的开源,如Wind River VxWorks (3)
免费的开源,用户可以修改、共享,如Linux
拥有专利的ISA实际上允许前两种类型,但是我们还需要一种免费开放的ISA。
我们的结论是,业界将受益于可行的,免费开放的ISA,就像它从免费开放的软件栈中获益。例如,它将实现一个真正的,自由,开放的处理器设计市场,拥有专利的ISA阻止了这样一个市场的诞生。这样的市场会具有:
- 更强大的创新能力:
通过源自更多设计师的自由市场竞争,包括开放ISA与专有的ISA的竞争。
- 共享的、开放的核心设计:
这意味着更短的上市时间,更低的成本(由于重复使用),更少的错误(因为有更多人的关注),比如这将使政府机构加入涉密后门更困难。
- 负担得起的处理器:
更多的设备能够负担得起处理器的费用,这将有助于扩大物联网,其目标成本可能只有1美元。
要想让开源社区拥抱如此的开源ISA,我们认为它需要一个可靠的商业记录。第一个问题是,哪种风格的ISA有成功的历史?
在30年来没有这样的成功的ISA。除了DSP市场的一部分,VLIW已经失败了:Multiflow也不行,Itanium破产了,尽管惠普和英特尔投资了数十亿美元。没有新的CISC ISA可以成功数十年。幸存的CISC从复杂的ISA转换为更容易执行的ISA,这对于制定有价值的遗留代码基础是非常有意义的。
一套新的ISA不会有任何遗留代码,所以额外的硬件成本和翻译的开销成本很难证明:为什么不是只使用易于执行的ISA在第一位? RISC风格load-store ISA可以追溯到至少50年到Seymour Cray的CDC 6600.虽然80x86赢得了PC战争,RISC主导后PC时代的平板电脑和智能手机; 在2013年超过100亿基于ARM的SoC出货,相比之下,80x86芯片只有3亿。
鉴于ISA可以存活数十年,我们预测未来的技术景观,看看哪些功能对于基于RISC的免费开放ISA可能是重要的。
三个平台可能占据主导地位:物联网,个人移动设备和仓库规模计算机(WSC)。
这个蓝图式的建议有四个关键要求:
(1) 基本、扩展ISA:
为了匹配SoC的需求,同时保持稳定的软件基础,自由的,开放的ISA应该具有: -
编译器和操作系统可以依赖的一小组核心指令
- 标准且可扩展的ISA,可以为应用程序定制SoC
- 可调用特定应用程序加速器的全新操作码的空间
这符合当今SoC经常使用自定义应用程序特定加速器的做法。
- 紧凑指令集编码:
考虑到IoT的成本敏感性和对小容量存储器的期望,较小代码是可取的。
- 四精度(QP)以及单精度和双精度浮点:
在WSC中运行的一些应用程序处理这样的大数据集,这依靠软件库进行QP运算。
- 128位寻址以及32位和64位: 物联网上的节点的有限内存大小意味着32位寻址在未来几十年将是非常重要的,而64位寻址是更高要求的标准。尽管WSC行业不需要128位的运算,但是在十年内,WSC可能需要超过64位(16艾字节)来寻址所有的固态,非易失性存储器。
这些都是需要很多年才能确认是否正确的细节,所以似乎使用现有的ISA起步是更聪明的做法,而不是成立委员会,从头开始。 RISC ISAs都很相似,所以其中很多都可能是很好的选择。好消息是,已经有三个开源RISC ISA:SPARC,OpenRISC和RISC-V。
只有RISC-V满足上述所有四个要求(见下表)。 RISC-V也是10到20岁的年轻人,所以我们可以从以前的RISC ISA的错误中学习和修复——例如,SPARC和OpenRISC延迟分支——这就是为什么RISC-V是如此简单和干净。 此外,SPARC(V9)的64位地址版本是专有的,而OpenRISC可能失去了动力。RISC-V有很大的发展势头,到目前为止,它有来自Berkeley的8个芯片实现,以及在印度,英国和美国的外部项目。 由于开源Chisel硬件设计系统,一个64位RISC-V核要比类似过程制造的32位ARM内核快,且功耗和速度均为后者的一半。
虽然很难摒弃我们的偏见,但我们认为RISC-V是自由,开放RISC ISA的最好的、最安全的选择。为了扩大这个免费的,开放的ISA的社区,我们将提供研讨会和创建一个非营利基础,以验证实施和维护和发展RISC-V。
虽然RISC-V的第一个首要目标是物联网,但我们有着更为远大的目标:正如Linux已成为大多数计算设备的标准操作系统一样,我们设想RISC-V成为所有计算设备的标准ISA。
目前已经有大量公司和机构加入并关注着RISC-V的发展。(完)