sky 发表于 2020-9-25 00:30:21

数字IC设计校招复习(十一)——计算机体系结构,RISC-V简介

本帖最后由 sky 于 2020-9-25 00:30 编辑


我对于大名鼎鼎的RISCV早已有所耳闻,但除了应付课程报告而大概浏览过的一本RISCV书籍和一些资料之外,并没有深入了解过与之相关的具体指令集。
此外,由于我并非计算机科班出身,所以也没有系统地学习过计算机体系结构相关的课程。
之前参加OPPO的秋招面试,被问到了一些体系结构相关的知识,并且看了诸如汇顶,平头哥等等公司的数字IC设计工程师的校招要求,都有熟悉计算机体系结构,熟悉RISCV等的基本要求或加分项,所以最近在快速学习Berkeley的CS61C这门课程,同时阅读了蜂鸟E200那本《手把手教你设计CPU——RISC-V处理器》书籍,权且算作面试前的临时抱佛脚。从这篇文章开始,我会简要地记录一些学习过程中的知识点和心得,由于时间,水平有限,难免会有一些错误,还望指正。

RISC-V的前世今生RISC-V的含义就是第五代RISC指令集架构,是由伯克利的研究团队开发的。所谓RISC即精简指令集架构,是与CISC(复杂指令集架构)相对的概念。精简的意思是该指令集架构只实现一些必要的,简单的基本指令,而不会像CISC那样考虑很复杂,但很少使用的指令。现如今RISC是潮流,即使是采用CISC的Intel的CPU,在硬件中也添加了相关的译码器,将CISC指令翻译为RISC指令后再执行,可以说是一种表明CISC实际RISC的做法,而Intel之所以这么做可能更多地是为了确保向后兼容,而不是真的完全看好CISC架构。
RISC-V的设计哲学就是“精简”,由于其总结了计算机体系结构近几十年的发展成果,避免了很多时代遗留问题,所以具有很多后发优势。在同等代码量下,基于RISC-V的处理器相比ARM的Cortex系列处理器具有更高的能效比和更少的指令数,这是其能获得大范围认同的主要原因。
此外,RISC-V是一个开源的指令集架构,意味着不需要昂贵的授权费(例如X86指令集甚至不是昂贵的授权费可以解决的问题)就可以获得完整的指令集架构内容。这一点尤其对于国内的企业有很大的好处,因为目前诸如海思等企业已可以独立自主地设计高性能的处理器,但仍需要获得指令集相关的授权,若采用RISC-V指令集架构则没有这方面的困扰。当然目前RISC-V社区的规模和X86以及ARM仍然差距很大,但众多主流厂商也都看好RISC-V的发展前景,例如我上面提到的,很多大厂在校招时都希望应聘者对RISC-V有了解,RISC-V的社区规模还在不断增长中。
计算机体系结构
计算机是个包含很广的学科,从最顶层的算法到最底层的晶体管大致可按下图划分为几个层次。


在层次图中与RISC-V相关的是编译器和计算机体系结构两部分,前者属于软件,功能是将高级语言(C,C++等)语言写的程序翻译为硬件可以理解的机器语言指令,后者属于硬件,研究的是如何使用流水线技术,多级存储技术等来从框架层面搭建一个可以执行RISC-V指令的处理器。在实际处理中需要这两部分,以及操作系统等相配合才能实现一个高效的处理器,例如编译器层次中,现在标配的超标量处理器就需要编译器对翻译后的指令根据依赖性进行优化,操作系统会维护虚拟地址相关的页表,而体系结构层次则会加入分支预测硬件,cache管理硬件等,所以若是想设计处理器,还是得软硬件都熟悉才行。
接下来几篇文章我打算按照
RISC-V指令集
RISC-V相关硬件的数据通路和控制通路
CPU中的存储层次(cache)
等几个主题来进行介绍,希望能来得及在下次面试前更新完成。
页: [1]
查看完整版本: 数字IC设计校招复习(十一)——计算机体系结构,RISC-V简介