AI智能总结
目录 (一)CISC和RISC指令集特点................................................. 5(二)主流指令集架构(ISA)介绍.......................................... 12三.RISC-V架构发展简介........................................................................22(一)RISC-V的提出及早期发展历程...................................... 22(二)RISC-V主要特点...............................................................28(三)基于RISC-V架构芯片的发展情况现状.........................50四.RISC-V产业生态发展情况................................................................54(一)RISC-V基金会情况.......................................................... 54(二)全球主要企业和产品......................................................... 59五.国内RISC-V产业生态发展情况...................................................... 75(一)国内处理器市场发展情况.................................................75(二)国内RISC-V指令集发展概况......................................... 78(三)主要企业和产品................................................................. 83六.RISC-V面临的机遇与挑战..............................................................101(一)RISC-V发展存在的机遇................................................ 101(二)RISC-V发展存在的挑战................................................ 102七.RISC-V发展趋势及建议..................................................................104(一)技术发展趋势.....................................................................104(二)生态环境发展趋势............................................................ 106(三)未来展望............................................................................. 108(四)发展建议............................................................................. 110 一.计算机指令集基本情况 计算机的程序是由一系列的指令组成的,指令就是要计算机执行某种操作的命令。从计算机组成的层次结构来说,计算机的指令有微指令、机器指令和宏指令之分。指令系统是指机器所具有的全部指令的集合,它反映了计算机所拥有的基本功能。在计算机系统的设计和使用过程中,硬件设计人员采用各种手段实现指令系统,而软件设计人员则使用这些指令系统编制各种各样的系统软件和应用软件,用这些软件来填补硬件的指令系统与人们习惯的使用方式之间的语义差距。因此,指令系统是软件设计人员与硬件设计人员之间的一个主要分界面,也是他们之间互相沟通的一座桥梁。在计算机系统的设计过程中,指令系统的设计是非常关键的,它必须由软件设计人员与硬件设计人员来共同完成。设计指令系统就是要选择计算机系统中的一些基本操作(包括操作系统和高级语言中的)应由硬件实现还是由软件实现,选择某些复杂操作是由一条专用的指令实现,还是由一串基本指令实现,然后具体确定指令系统的指令格式、类型、操作以及对操作数的访问方式。指令系统的发展经历了从简单到复杂的演变过程。20世纪50至60年代,当时的计算机硬件结构比较简单,由于技术的限制,计算机大多数都是采用分立元件的晶体管或电子 管组成,因为计算机的指令系统数量也不大,只有定点加减、逻辑运算、数据传送、转移等十几至几十条指令,寻址方式也比较简单。 20世纪60年代中期,集成电路的出现,让计算机的体积、价格、能耗等方面都得到了下降,整体的硬件功能也得到了一定的提升,整个指令系统变得更加丰富,增加了乘除运算、浮点运算、十进制运算、字符串处理等指令,指令数目多达一二百条,寻址方式也趋多样化。当时的计算机速度很慢,特别是存储速度非常慢,广泛使用的慢速磁带存储设备以及大容量内存的缺乏,让计算机对每一字节空间的应用都很珍惜。在这样的情况下,人们倾向于在一条指令中完成更多的工作,比如“从内存和寄存器读取数据相加后,写入内存”。这实际上是四条指令,首先是从内存读取数据,其次是从寄存器读取数据,第三是相加,最后才是写入内存。一条指令可以完成四项工作,这是当时计算机的主流设计方案。 20世纪70年代,计算机的普及说明了整个计算机性能有了一个更大的提升,但是其中出现的软件危机却为指令系统带来了新的转机。IBM以及其他企业的从业人员发现,目前的PC发展方向存在一定的问题。如果按照现在指令集发展的方向继续发展的话,那么现有的指令集系统会越来越复杂。而同时期编译器的流行,让这种情况发生了变化: 一方面指令集越来越复杂,一方面编译器却很少使用这么多复杂的指令集。而且如此多的复杂指令,CPU难以对每一个指令都做出优化,甚至部分复杂指令本身耗费的时间反而更多。对这件事情的总结,就是后来著名的“8020”定律,也就是在所有的指令集中,只有20%最常用,80%基本上罕有问津。 20世纪80年代,精简指令集开始出现。这种指令集的优势在于将计算机中最常用的20%的指令集集中优化,而剩下的不常用的80%则采用拆分为常用指令集等方式运行。随着RISC微处理器迅速发展,人们又发现RISC指令系统并不能充分实现指令级并行处理,从而影响了计算机性能的进一步提高,又出现了超长指令字(VLIW)计算机指令系统。在上世纪80年代中末期,大量基于RISC的新指令集和产品的问世,让人们看到了精简指令集的威力。SGI的工作站基于MIPS,速度超群;IBM的Power系列堪称巨型计算机的首选产品;还有DEC Alpha架构的处理器,都是RISC的代表之作。 二.计算机指令集简介 (一)CISC和RISC指令集特点 1.CISC指令集 CISC是指复杂指令系统计算机(Complex Instruction Set Computer)。随着计算机系统的复杂,要求计算机指令系统的构造能使计算机的整体性能更快更稳定。最初,人们采用的优化方法是通过设置一些功能复杂的指令,把一些原来由软件实现的、常用的功能改用硬件的指令系统实现,以此来提高计算机的执行速度,这种计算机系统就被称为复杂指令系统计算机,简称CISC。 (1)CISC指令集主要特点 为了支持复杂指令集,CISC通常包括一个复杂的数据通路和一个微程序控制器。微程序控制器由一个微程序存储器、一个微程序计数器(MicroPC)和地址选择逻辑构成。在微程序存储器中的每一个字都表示一个控制字,并且包含了一个时钟周期内所有数据通路控制信号的值。这就意味着控制字中的每一位表示一个数据通路控制线的值。例如,它可以用于加载寄存器或者选择ALU中的一个操作。此外每个处理器指令都由一系列的控制字组成。当从内存中取出这样的一条指令时,首先把它放在指令寄存器中,然后地址选择逻辑再根据他来确定微程序存储器中相应的控制字顺序起始地址。当把该起始地址放入MicroPC中后,就从微程序内存中找到相应的控制字,并利用它在数据通路 中 把 数 据 从 一 个 寄 存 器 传 送 到 另 一 个 寄 存 器 。 由 于MicroPC中的地址并发递增来指向下一个控制字,因此对于序列中的每个控制器都会重复一遍这一步骤。最终,当执 行完最后一个控制字时,就从内存中取出一条新的指令,整个过程会重复进行。由此可见,控制字的数量及时钟周期的数目对于每一条指令都可以是不同的。因此在CISC中很难实现指令流水操作。另外,速度相对较慢的微程序存储器需要一个较长的时钟周期。由于指令流水和短的时钟周期都是快速执行程序的必要条件,因此CISC体系结构对于高效处理器略有挑战。 CISC指令集主要具有以下特点。一是指令系统复杂。指令数较多,一般大于100条。寻址方式和指令格式较多,一般大于4种。二是绝大多数指令需要多个机器时钟周期才能执行完毕。三是各种指令都可以访问存储器。 从计算机诞生以来,人们一直沿用CISC指令集方式。早期的桌面软件是按CISC设计的,并一直沿用。桌面计算机流行的X86体系结构即使用CISC。微处理器(CPU)厂商一直在走CISC的发展道路,早期典型代表企业包括英特尔(Intel)、摩托罗拉、德州仪器(TI)、惠普等。在CISC微处理器中,程序的各条指令是按顺序串行执行的,每条指令中的各个操作也是按顺序串行执行的。顺序执行的优点是控制简单,但计算机各部分的利用率不高,执行速度慢。 Intel公司的X86系列CPU是典型的CISC体系的结构,从最初的8086到后来的Pentium系列,每出一代新的CPU, 都会有自己新的指令,而为了兼容以前的CPU平台上的软件,旧的CPU的指令集又必须保留,这就使指令的解码系统越来越复杂。CISC可以有效地减少编译代码中指令的数目,使取指操作所需要的内存访问数量达到最小化。此外CISC可以简化编译器结构,它在处理器指令集中包含了类似于程序设计语言结构的复杂指令,这些复杂指令减少了程序设计语言和机器语言之间的语义差别,而且简化了编译器的结构。 (2)CISC指令集主要问题 一是CISC中各种指令的使用频度相差很悬殊,大量的统计数字表明,大约有20%的指令使用频度比较高,占据了80%的处理机时间。换句话说,有80%的指令只在20%的处理机运行时间内才被用到。 二是VLSI的集成度迅速提高,使得生产单芯片处理机成为可能。在单芯片处理机内,希望采用规整的硬布线控制逻辑,不希望用微程序。而在CISC处理机中,大量使用微程序技术以实现复杂的指令系统,给VLSI工艺造成很大困难。 三是虽然复杂指令简化了目标程序,缩小了高级语言与机器指令之间的语义差距,然而增加了硬件的复杂程度,会使指令的执行周期大大加大,从而有可能使整个程序的执行时间反而增加。 2.RISC指令集 RISC是 指 精 简 指 令 系 统 计 算 机 (Reduced InstructionSet Computer),是在20世纪80年代发展起来的,其基本思想是尽量简化计算机指令功能,只保留那些功能简单、能在一个节拍内执行完成的指令,而把较复杂的功能用一段子程序来实现。 由于CISC技术在发展中出现了问题,计算机系统结构设计的先驱者们尝试从另一条途径来支持高级语言及适应VLSI技术特点。1975年IBM公司JohnCocke提出了精简指令系统的设想。到了1979年,美国加州大学伯克莱分校由Patterso