打通RISC-V技术筋脉,站稳AIoT时代风口

横空出世的 RISC-V

“硅仙人”Jim Keller在 2022 年的一次演讲中,宣称处理器架构的未来是属于 RISC-V 的。言外之意,它将会超越现在的市场霸主 x86 与 ARM 处理器架构。听起来很唬人,但这话是 Keller 大仙说的,就没人敢不当回事。

Jim Keller

要知道,当年 AMD 能领先于 Intel 推出划时代的 64 位 x86 处理器,就是 Keller 大仙的功劳。再后来 Keller 大仙把硅谷的大厂转了个遍,每到一处必推出震动业界的处理器产品。硅谷大仙,法力无边,有这么强悍的背书,RISC-V 究竟是何方神圣?

此事要从计算机科学的圣地——加州大学伯克利分校说起。2010 年时,伯克利的 Krste Asanovic 教授、Andrew Waterman 和 Yunsup Lee 共同设计发明了 RISC-V 处理器体系结构。而 RISC-V 也得到了图灵奖获得者 David A. Patterson 的支持,他可是计算机体系结构的权威大佬。

风景优美的计算机科学圣地

他们做这件事的初衷,是因为业界虽有成熟的 x86 与 ARM 架构,但一是其架构过于复杂,二是存在高昂的授权费用,所以不便开展教学工作。不过这能难倒伯克利计算机系吗?

于是一个简洁、开放、免费的处理器架构 RISC-V 诞生了。RISC 是精简指令集(Reduced Instruction Set Computing)的缩写,V 是罗马数字 5,是第五代指令集架构的意思。所以它正确的读法应该是“risk five”。

RISC-V 在教学上便利的特点,其实也迎合了业界的强烈呼唤,所以短短几年就从学术走向了工业级应用。尤其是在 2022 年,RISC-V 概念引爆市场,这一年也被称为 RISC-V 的元年。

展望未来,RISC-V 攻城略地的本钱是什么?我们从它的体系结构来管窥一二。

后来者居上:RISC-V 体系结构特点

RISC-V 体系结构最基础的特点有三个:开源、精简、模块化。这三个特点为何如此受到业界青睐?通过与 x86 与 ARM 的对比最容易说清楚问题。

开源,这是伯克利对于计算机科学事业的慷慨贡献。RISC-V 采用 BSD 开源协议,不会受到单一商业体的控制,也不会有商业上的纠纷,有利于大规模推广。

而 x86 是全封闭架构,只有 Intel 和 AMD 享有;使用 ARM 则要支付昂贵的授权费,也只有实力强大的玩家才玩得起。

精简,RISC-V 指令集和架构设计说明文档只有几百页,而有些商业 RISC 芯片则是数万页的文档。这说明前者有着更强的可扩展性,这也是后发者的优势,可以摒弃掉很多繁杂冗余的设计,保留最核心的部分。

模块化,不同于 x86 与 ARM 这样的通用性架构,用户可根据业务需求进行定制。例如弱计算、低功耗场景,或者智能化、高性能计算场景等。

Intel 进军移动处理器市场折戟沉沙;ARM 在发展多年后意图进军高性能计算领域,推出的 ARM64 指令集 A64 都无法兼容 A32,从这两件事就能看出,处理器架构可进行模块化灵活定制是多么重要。

纵观 IT 历史发展,初代互联网是由“Wintel”联盟(Windows + Intel)双巨头主导,Intel 发布一款新处理器,微软就会升级软件把性能吃掉,行业大部分利润被如此收割。

随后移动互联网崛起,主导者是“AAA”(Arm, Android, Apple)。以谷歌为代表的互联网公司兴起,依托于 Linux 这样的开源软件,他们摆脱了微软的控制。ARM 的授权生产模式,又孕育出了不少像高通这样成功的芯片制造企业。市场进一步开放,不再是少数玩家的时代。

我们正在进入人工智能(AI)+ 物联网(IoT)的 AIoT 时代,市场将会百花齐放,那么主导者会是谁?我想那一定是及早在 RISC-V 体系结构上进行布局的远见者们。

我们先从 RISC-V 最具特色的指令集架构说起。

理解 RISC-V 的语言:指令集介绍

对于一台计算机来说,最基础的组成是什么?硬件是芯片,软件是操作系统。而对于处理器架构来说,最核心的部分是指令集架构(Instruction Set Architecture,缩写为 ISA)。

指令集才是计算机真正的硬件与软件交界处,它以指令的形式,定义了 CPU 可对外提供的操作,就像是 CPU 的语言。而 CPU 的执行,又依赖于外界向它输入的指令。再庞大的软件,也是由文本形式的源代码,编译成一条条二进制指令,交由 CPU 来执行,构成我们今天的信息世界。

当前业界比较流行的指令集设计,采用的是增量式方法。即增加新指令时,要做到保持向后二进制兼容。这看起来似乎没什么问题,但旧有指令已经被弃用甚至是存在错误的,也要一并保留下来,这就会造成指令集无谓的庞大,变得臃肿、冗杂。

作为后发者的 RISC-V,自然就在设计之初,避免了增量式带来的问题,采用了模块化的设计方法。

模块化设计方法,就是设计一个最小集合和最基础的指令集。最小指令集可以完整地实现一个软件栈,其他特殊功能的指令集可以在最小指令集的基础上,通过模块化的方式叠加实现。

这也就是为什么 RISC-V 可以根据应用场景,实现差异化的定制。其在设计原则上,就避开了摊大饼式的增量陷阱,而采用了搭乐高式的灵活拼装方式。

RISC-V 针对 32 位处理器的最小指令集是 RV32I,表示 32 位基础整型指令集。它是固定不变的,包含约 40 条指令,可实现一个完整的软件栈。

RV64I 则是 64 位基础整型指令集,它在 RV32I 的基础上添加了对字(word)、双字(double word)、长整型(long)版本指令的支持,并将所有寄存器扩展到64位。

在 RV32I 和 RV64I 的基础上,RISC-V 还定义了一级扩展指令集。芯片设计者可以根据业务需求选择扩展指令集。具体描述如下表所示:

轻松上手:搭建实验环境

要想从入门到不放弃,动手实际体验是必不可少的。可能你会产生一个疑问,就是学习 RISC-V 是不是还要先买块开发板?那编译、开发、调试是不是门槛很高?

不必,《RISC-V 体系结构编程与实践》书中给出了基于 QEMU 或者 NEMU 模拟器上进行实验的方法,并且本书编著团队“奔跑吧 Linux 社区”提供了自研、开源的小型操作系统 BenOS。对初学者相当友好,可以认为是傻瓜式的开局。

QEMU 是使用最广泛的开源虚拟机软件,也是做系统底层开发和嵌入式开发的必备神器。NEMU 是我国南京大学实现,用于教学的计算机指令集体系结构模拟器。由中科院牵头研发出的“香山”高性能 RISC-V 处理器,就使用了 NEMU 进行前期指令集和体系结构的模拟。

我们来看下如何在 QEMU 上实现 RISC-V 版的“hello, world”吧。

准备工作

编译BenOS

运行

大功告成!就这么简单。

结语

从市场发展看,AI 会需要越来越密集的算力,而 IoT 则会无处不在。终端用 ARM 芯片,服务端用 x86 的 CPU,这是当前比较典型的技术架构。但公司在内部就需要维护两套技术体系的研发,从资源使用角度来说相当不经济。

RISC-V 让全平台底层技术栈的统一有了希望。因为只需要一套技术体系,即可适应从处理器到操作系统、基础软件库、上层应用的研发工作。这也是芯片公司、互联网公司如此青睐 RISC-V 的重要原因。

而我国在 RISC-V 技术体系上,目前保持了领先水平。香山处理器团队也参与了《RISC-V 体系结构编程与实践》的审校,为本书提供了更加权威、深度的技术细节内容。

我们发展 RISC-V 不仅是为了在未来占得先机,也是避免再在关键技术上被“卡脖子”。所以 RISC-V 对于技术人来说,真是一个稳稳的风口。

时不我待,赶紧学习起来,准备站上风口吧!

展开阅读全文

页面更新:2024-05-19

标签:筋脉   技术   风口   体系结构   指令   架构   处理器   芯片   业界   基础   时代   市场   软件

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2020-2024 All Rights Reserved. Powered By 71396.com 闽ICP备11008920号-4
闽公网安备35020302034903号

Top