RISC-V维基网页翻译


简介:

RISC-V(发音为“risk-five”)是基于已建立的简化指令集计算(RISC)原则的开放式指令集架构(ISA)。

与其他大多数ISA相比,RISC-V ISA可以任意使用,允许任何人设计,制造和销售RISC-V芯片和软件。虽然不是第一个开放式ISA,但它是重要的,因为它被设计为在现有的计算机设备中(如规模计算机,高端手机和最小的嵌入式系统)中都可以使用同一种架构。这样的使用需要设计者考虑性能和功率效率的平衡。该指令集还具有大量支持软件。


该项目由加利福尼亚大学伯克利分校计算机科学系的研究人员于2010年发起,但许多贡献者是志愿者和与该大学无关的行业工作者。

RISC-V ISA已经设计了小型,快速和低功耗的芯片实现,但对于特定的应用,比如高性能和极低功耗,还需要进行扩展的设计,框架设计本身已经考虑可以进行可扩展设计。。

意义:

RISC-V作者旨在根据BSD许可证(开源许可证有还有几种,BSD是其中一种),免费提供几种CPU芯片设计。这些许可证允许基于RISC-V的芯片设计和衍生作品可以是公开的和免费的,也可以是封闭和专有的。


相比之下,像ARM控股和MIPS Technologies这样的商业芯片供应商,就使用他们的专利收取了大量许可证费用。在发布描述其设计优点和指导书的文件之前,他们还需要签订保密协议。许多先进的设计是完全专有的,甚至从来没有描述给客户。这样的商业安全性干扰了合法的对处理器的研究,包括公共教育使用,安全审计,以及开发公共,低成本的免费和开源软件编译器和操作系统。

开发CPU需要几种专业的设计专长:电子逻辑,编译器和操作系统。在专业工程团队之外凑齐这些是很难的。结果是,现代高质量的通用计算机指令集最近没有被广泛使用,甚至没有被解释,除了学术环境。因此,许多RISC-V贡献者将为统一的社区努力。

历史:

“RISC”的术语从1980年开始。在此之前,有一些理论认为更简单的计算机可以是更有效的,但设计原则没有被广泛描述。简单有效的电脑一直是学术界的兴趣。

学者们在1990年创建了第一版“计算机体系结构:定量方法”的RISC指令集DLX。David Patterson是作者,后来协助了RISC-V。但DLX是教育用途。学者和业余爱好者使用现场可编程门阵列来实现它,但并不有商业上的成功。

ARM CPU,版本2及更早版本,具有公共领域的指令集,并且仍然受到流行的免费软件编译器GCC的支持。这有助于促进ARM架构的接受。这个ISA存在三个开源核心,但是它们没有被实际制造出来。

OpenRISC是基于DLX的开源ISA,具有相关的RISC设计。它完全支持GCC和Linux实现。然而,它几乎没有商业实现。

基础:

伯克利分校在加利福尼亚大学的Krste Asanovic发现了许多用于开源计算机系统的用途。2010年,他决定在夏季的“短短三个月的项目”中开发和发布。这个计划是帮助学术和工业用户。[8]伯克利大卫·帕特森也协助努力。 Patterson最初确定了Berkeley RISC的属性[9],RISC-V是他长期合作的RISC研究项目之一。早期资金来自DARPA。[3]

设计人员声称,指令集是计算机的主界面,因为它位于硬件和软件之间。如果一个好的指令集是开放的,可供所有人使用,它应该通过允许更多的软件重用来大大降低软件的成本。它还应该增加硬件供应商之间的竞争,谁可以使用更多的资源进行设计,而不需要软件支持。


设计师们声称新的原则在指令集设计中变得越来越少,因为过去四十年来最成功的设计变得越来越相似。这些失败的大多数失败了,因为他们的赞助公司在商业上失败,而不是因为指导书在技术上很差。所以,一个设计良好的开放式指令集,使用既定的原则,应该吸引许多厂商的长期支持。[8]

大多数以前的ISA,使用开源协议用GPL(开源协议的另外一种,要求进行的更改也要全部开源),强制用户打开他们的芯片实现来展示给他人,即使是竞争关系的对手。这对开发者而言是非常无利可图的。因此,最广泛使用的ISA需要合法允许专有设计的许可证。例如,它可以使用伯克利许可证(BSD)。

—-以下是机器翻译
不同于仅为了简化展示而优化的其他学术设计,设计人员声称RISC-V指令集适用于实际的计算机。据说具有增加计算机速度,降低成本和功耗的功能。这些包括加载存储设计,用于简化CPU中的多路复用器的位模式,简化的基于标准的浮点,架构上中性的设计,并将最重要的位置于固定位置以加速符号扩展。据说扩展名通常在关键的时序路径上。[3]

设计人员声称,与一些类似的商用CPU相比,RISC-V CPU可以实现更高的速度,更小,更低功耗和更低成本的电子产品。[2]

该指令集专为广泛的用途而设计。它支持三个字宽,32,64和128位,以及各种子集。每个子集的定义对于三个字宽略有不同。这些子集支持小型嵌入式系统,个人计算机,带有矢量处理器的超级计算机以及仓库级机架式并行计算机。

指令集是可变宽度和可扩展的,因此可以始终添加更多的编码位。保留了128位扩展版ISA的空间,因为60年的行业经验表明,指令集设计中最不可恢复的错误是缺乏内存地址空间。 128位ISA仍然(在2016年)故意未定义,因为实际经验很少,但是还有这么大的内存系统。[3]

然而,RISC-V也支持设计师的学术用途。整数子集的简单性允许基本的学生练习。整数子集是一个简单的ISA启用软件来控制研究机器。可变长度ISA允许学生练习和研究的扩展。[3]分离的特权指令集允许对操作系统支持进行研究,而无需重新设计编译器。[12]RISC-V的开放知识产权意味着其设计可以发布,重用和修改。[3]

新指令集的一个常见问题是缺乏CPU设计和软件。
RISC-V网站具有用于用户模式指令的规范,以及用于支持操作系统的通用特权指令集的初步规范。[13]
还有七个开源CPU设计,64位伯克利无订购机(BOOM),[14] 64位火箭,[15]和五个32位Sodor CPU。[16]三级Sodor CPU似乎适合于小型嵌入式CPU。火箭可以适用于紧凑,低功耗的中间计算机,如个人设备。 BOOM利用了为火箭创造的大部分基础设施,可用于个人,超级计算机和仓库规模的计算机。
设计软件包括一个设计编译器Chisel [17],可以将Verilog的设计减少到设备中。该网站包括用于测试核心实现的验证数据。
可用的RISC-V软件工具包括GNU编译器集合(GCC)工具链(GDB,调试器),LLVM工具链,模拟器(Spike)和标准模拟器QEMU。

对于GNU / Linux,FreeBSD和NetBSD,存在操作系统支持,但截至2016年11月10日,管理员模式指令是不标准的[12],因此这种支持是临时性的。 RISC-V架构的初步FreeBSD端口在2016年2月上市,并将在FreeBSD 11.0中上市。[18] [19] Fedora的端口正在进行中,大多数标准磁盘映像的实用程序都已经完成。[20]有一个U-Boot端口。[21]还有一个模拟器,可以在使用JavaScript的Web浏览器上运行RISC-V Linux系统。 

作者: 外星人

http://weibo.com/kinnon