IoT(Internet of things,物联网)做为下世代的产业应用,欲借着在现有的设备中加入微型电脑,将所有东西连上网络来创造新的应用。然而,现行的微型电脑价格依然过高,拖慢 IoT 的发展。其中,在整个微型电脑架构中,最贵的非 CPU 莫属了。
现在的 IoT 市场,大多考虑采用 ARM 架构的 CPU。虽然相较于其他的处理器平台,ARM 的授权相对灵活,但对 IoT 厂商来说价格仍偏高,使得行动 CPU 的成本价格迟迟降不下来。因此,现行市场急需低成本且稳定的新架构。于是,RISC-V,做为开源的新架构, 跃上舞台。
在 CPU 中,指令集架构(Instruction Set Architecture,ISA),扮演着重要的角色,ISA 是电脑的基础,整个系统皆顺其而生。此外,ISA 会影响操作系统的种类以及软件的支援程度,因此,每个 ISA 皆有各自的生态。那么市场上常见的 ISA 有哪些呢?
现行市场主流的指令集架构,能见度最高的就属 X86 和 ARM,X86 由 Intel 主导,也是目前个人电脑的主流,ARM 则是采用授权的方式释出,在行动装置崛起后,在手机、平板等各式嵌入式系统中广为使用。其他 ISA 在这种状况下可说是愈来愈少见了。
然而,X86 和 ARM 的专利被少数几家把持住,厂商需要付出高额的授权费才能使用 ARM,X86 甚至不授权给予其他厂商使用。在物联网装置都需要内建微型电脑来运作下,为 ISA 授权金垫高的成本就造成了另一种阻碍。
避免授权金突围,RISC-V 登场
做为开源的 ISA,RISC-V 是由 UC Berkeley 所发展的,RISC-V 正试着挑战现行主流的指令集架构。借由 RISC-V,UC Berkeley 正试着从头打造一个全新的生态系,并将其开放,让所有人都可以使用。但是,为何要重新建造一个全新的指令集架构?
以开源的角度来说,软件的生态系比芯片的生态系完善。在软件世界中,任何一套商业软件大多有和其功能类似的开源版本,且功能不逊于商业版本。但是,至今却没有高能见度的开源 ISA 在市场中出现,如果有一套稳定且好用的开源 ISA 出现,或将打破现行被垄断的情形,避免授权所带来的开发成本,也可能改善现在持有 ISA 专利的厂商对授权的态度。
简单易上手开发的优势
除了授权的问题外,X86 和 ARM 的手册皆有上千多页,对工程师而言是相当大的负担,因为要设计一颗 CPU,工程师就要熟悉 ISA 中的所有规定,越熟悉才能设计出越好的 CPU。至于 RISC-V 则只需要约 100 页左右,大幅缩小工程师的负担。
从官网上的文件可以知道,RISC-V 只有大约 100 个 Instructions,且不会再增加。如此便不需为了新增指令而增加新的电路,增加芯片的面积。此外,RISC-V 提供 16、32、64bits 等多种内存定址方式,让厂商有更多的选择。
在软件支援方面,因为 RISC-V 是全新的指令集架构,因此现行的软件都要做修整方能配合使用。为了做后续的发展,他们已经为 RISC-V 开发出 GCC / glibc / GDB、LLVM / Clang、Linux、Yocto、Verification Suite 等软件。
在硬件开发工具部分,他们设计出全新的硬件描述语言 Chisel,以 Scala 为语言核心,辅以硬件开发工具,可以将 Scala 所开发出的电路轻易地转换成 C++ 的电路模拟,或者 FPGA、ASIC 用的 Verilog Code,并进行合成和绕线,提升硬件设计的效率。
实做产品足以挑战 ARM
为了证明 RISC-V 的实际效能,UC Berkeley 甚至实际设计出一颗芯片,并将其制作出来。为了确保公平性,还特别选用和 ARM Cortex-A5 相同的台积电制程。从下图可以得知,采用 RISC-V 的 CPU 不但面积比较小,运算速度较快,而且还耗较少的电。足以证明 RISC-V 做为新进者,已经具有挑战 ARM 的潜力。
(Source:RISC-V 官网)
至此,可以了解 RISC-V 的基本生态圈已经建立起来。但是,距离正式商业性产品的发表还需要一段时间,将来会如何发展尚未明了。不过,从 RISC-V Rocket 的效能来看,要进入 IoT 的市场是相当容易的。此外,他们已经将设计且验证完的 CPU 程式码变成 open source,在官网中便可找到。
- The RISC-V Instruction Set Architecture
(首图来源:Flickr/qwikrex CC BY 2.0)