前言
RISCV是基于精简指令原则的开源指令集架构。该项目2010年始于加州大学伯克利分校,采用开源BSD License。RISCV指令集可自由地用于任何目的,允许任何人设计、制造、销售RISCV芯片和软件,而不必支付给任何公司专利费。其目标是成为一个通用的指令集架构,能适应包括从最袖珍的嵌入式控制器到最快的高性能计算机等各种规模的处理器。与现有其他指令集架构相比,RISCV架构有着鲜明的特点和优势。
(1) 开源和免费。开源意味着开发者可以针对特定应用场景进行定制优化,免费意味着RISCV可以帮助开发者有效降低CPU设计成本。
(2) 模块化和简洁。模块化设计和简洁的基础指令可以让使用RISCV技术的芯片设计者开发出很简单的RISCV CPU,特别是在嵌入式和物联网(Internet of Things,IoT)等领域对功耗和代码体积有较高限制的应用场景。
(3) 灵活和可扩展性。RISCV架构预留大量的编码空间用于自定义扩展,并定义了4条用户指令供用户直接使用,该特性在安全或者IoT领域有着广泛的需求。
2015年,RISCV基金会成立,它是开放、协作的软硬件创新者社区,指导未来发展方向并推动RISCV的广泛应用。同时,在我国也成立了中国开放指令生态(RISCV)联盟和中国RISCV产业联盟来推动RISCV在我国的发展。
虽然RISCV目前的生态还处于初级阶段,但是越来越多的产业界巨头对RISCV有着强烈的兴趣并纷纷加入RISCV基金会,RISCV极有可能像Linux那样开启开源芯片设计的黄金时代。从中国的自主可控生态建设来看,从零开始建立互相兼容的RISCV生态当下也许是最好的时机,可以期待在不久的将来,RISCV的生态就可以挑战x86和ARM的地位。
全书由13章组成,分为三大部分。第1章为第一部分——处理器指令集架构,主要介绍指令集相关基础概念及RISCV指令集架构。第2~9章为第二部分——处理器微架构,主要内容为RISCV CPU微架构设计及逻辑实现,从微架构和流水线设计原理着手,详细介绍RISCV指令集架构CPU的设计方法,并以开源处理器核Ariane为例,介绍RISCV处理器的实现细节。第10~13章为第三部分——处理器验证,主要内容为RISCV CPU验证,着重介绍如何基于当前主流验证方法UVM构建RISCV CPU验证平台,并完成CPU核的验证工作。
希望本书能够成为RISCV处理器爱好者的入门图书,为RISCV处理器在国内的普及和发展贡献绵薄之力。
感谢鹏城实验室自主可控项目组参与本书编写的所有成员,编写过程中有着大量的代码分析、资料整理和文稿校对工作,他们的付出使得本书能够最终成文。同时,还要感谢清华大学出版社各位编辑的大力支持,他们认真细致的工作保证了本书的质量。
由于编者水平有限,书中难免有疏漏和不足之处,恳请读者批评指正!
编者2023年11月