RISC为什么一定要用流水技术

RISC为什么一定要用流水技术,第1张

在20世纪70年代后期,人们已经感到日趋庞杂的指令集不仅不易实现,而且还有可能降低系统的效率和性能。从1979年开始,美国加州大学伯克利分校以Parrerson为首的研究小组对指令集结构的合理性进行了深入研究,他们的研究结果表明,CISC由于指令功能复杂,规整性不好,不利于采用流水线技术来提升性能。RISC指令集弥补了CISC指令集这方面的不足。RISC一定要采用流水线技术的目的就是为了提高性能。

cpu9代微码是什么

CPU微码(CPU Microcode),又称为微指令,是在CISC处理器运行一些功能复杂的指令的时候,所分解的一系列相对简单的指令。 现代CPU的IDU(Instruction Decode Unit),也就是指令解码器,分为硬件指令解码和微码指令解码。 其中硬件指令解码通常运用在RISC处理器上,而微码指令解码通常运用在CISC处理器上,换句话来说就是x86处理器使用的是CISC指令集,CISC指令集较为复杂,指令很多且长短不一,因此不能像RISC处理器那样使用硬件解码,就需要利用微指令,将那些复杂的指令分解为相对简单的指令。 微指令的作用便是将机器指令与相关的电路实现分离,这样一来机器指令就可以更自由的进行设计与修改,而不用考虑到实际的电路架构,使用微指令架构,除了可以在降低电路复杂度的同时,还可以构建出复杂的多步骤机器指令。

答案是C

参考如下:

第1级是微程序机器级,这级的机器语言是微指令集,程序员用微指令编写的微程序一般是直接由硬件解释实现的。

第2级是传统机器级。这级的机器语言是该机的指令集,程序员用机器指令集编写的程序可以由微程序进行解释。这个解释程序运行在第1级上。由微程序解释指令集又称作仿真(emulation)。实际上,在第1级可以有一个或数个能够在它上面运行的解释程序,每一个解释程序都定义了一种指令集。因此,可以通过仿真在一台机器上实现多种指令集。

计算机系统中也可以没有微程序机器级。在这些计算机系统中是用硬件直接实现传统机器的指令集,而不必由任何解释程序进行干预。我们目前使用的RISC技术就是采用这样的设计思想,处理器的指令集全部用硬件直接实现以提高指令的执行速度。

第3级是 *** 作系统虚拟机。从 *** 作系统的基本功能来看,一方面它要直接管理传统机器中的软硬件资源,另一方面它又是传统机器的引伸。它提供了传统机器所没有的某些基本 *** 作和数据结构,如文件结构与文件管理的基本 *** 作、存储体系和多道程序以及多重处理所用的某些 *** 作、设备管理等。

第4级是汇编语言虚拟机。这级的机器语言是汇编语言,用汇编语言编写的程序,首先翻译成第3级和第2级语言,然后再由相应的机器执行。完成汇编语言翻译的程序就叫做汇编程

指令系统 计算机所能执行的全部指令的集合,它描述了计算机内全部的控制信息和“逻辑判断”能力。不同计算机的指令系统包含的指令种类和数目也不同。一般均包含算术运算型、逻辑运算型、数据传送型、判定和控制型、输入和输出型等指令。指令系统是表征一台计算机性能的重要因素,它的格式与功能不仅直接影响到机器的硬件结构,而且也直接影响到系统软件,影响到机器的适用范围。 指令系统 指令 微机完成规定 *** 作的命令,一条指令通常由 *** 作码和地址码组成。 *** 作数: 计算机在运行过程需要的数据称为 *** 作数。编辑本段概况 一条指令就是机器语言的一个语句,它是一组有意义的二进制代码,指令的基本格式如: *** 作码字段地址码字段其中 *** 作码指明了指令的 *** 作性质及功能,地址码则给出了 *** 作数或 *** 作数的地址。 各计算机公司设计生产的计算机,其指令的数量与功能、指令格式、寻址方式、数据格式都有差别,即使是一些常用的基本指令,如算术逻辑运算指令、转移指令等也是各不相同的。因此,尽管 精简指令系统计算结构(RISC)来设计芯片 各种型号计算机的高级语言基本相同,但将高级语言程序(例如Fortran语言程序)编译成机器语言后,其差别也是很大的。因此将用机器语言表示的程序移植到其他机器上去几乎是不可能的。从计算机的发展过程已经看到,由于构成计算机的基本硬件发展迅速,计算机的更新换代是很快的,这就存在软件如何跟上的问题。大家知道,一台新机器推出交付使用时,仅有少量系统软件(如 *** 作系统等)可提交用户,大量软件是不断充实的,尤其是应用程序,有相当一部分是用户在使用机器时不断产生的,这就是所谓第三方提供的软件。 为了缓解新机器的推出与原有应用程序的继续使用之间的矛盾,1964年在设计IBM360计算机时所采用的系列机思想较好地解决了这一问题。从此以后,各个计算机公司生产的同一系列的计算机尽管其硬件实现方法可以不同,但指令系统、数据格式、I/O系统等保持相同,因而软件完全兼容(在此基础上,产生了兼容机)。当研制该系列计算机的新型号或高档产品时,尽管指令系统可以有较大的扩充,但仍保留了原来的全部指令,保持软件向上兼容的特点,即低档机或旧机型上的软件不加修改即可在比它高档的新机器上运行,以保护用户在软件上的投资。编辑本段指令的发展历程 回顾计算机的发展历史,指令系统的发展经历了从简单到复杂的演变过程。早在20世纪50-60年代,计算机大多数采用分立元件的晶体管或电子管组成,其体积庞大,价格也很昂贵,因此计算机的硬件结构比较简单,所支持的指令系统也只有十几至几十条最基本的指令,而且寻址方式简单。到60年代中期,随着集成电路的出现,计算机的功耗、体积、价格等不断下降,硬件功能不断增强,指 指令系统 令系统也越来越丰富。在70年代,高级语言己成为大、中、小型机的主要程序设计语言,计算机应用日益普及。由于软件的发展超过了软件设计理论的发展,复杂的软件系统设计一直没有很好的理论指导,导致软件质量无法保证,从而出现了所谓的“软件危机”。人们认为,缩小机器指令系统与高级语言语义差距,为高级语言提供很多的支持,是缓解软件危机有效和可行的办法。计算机设计者们利用当时已经成熟的微程序技术和飞速发展的VLSI技术,增设各种各样的复杂的、面向高级语言的指令,使指令系统越来越庞大。这是几十年来人们在设计计算机时,保证和提高指令系统有效性方面传统的想法和作法。按这种传统方法设计的计算机系统称为复杂指令系统计算机(ComplexSetInstructionComputer),简称CISC RISC是一种计算机体系结构的设计思想,是近代计算机体系结构发展史中的一个里程碑。然而,直到现在,RISC还没有一个确切的定义。90年代初,IEEE的MichaelSlater对于RISC的定义做了如下描述:RISC处理器所设计的指令系统应使流水线处理能高效率执行,并使优化编译器能生成优化代码。 1RISC为使流水线高效率执行,应具有下述特征:(1)简单而统一格式的指令译码;(2)大部分指令可以单周期执行完成;(3)只有LAD和STORE指令可以访问存储器;(4)简单的寻址方式;(5)采用延迟转移技术;(6)采用LOAD延迟技术。 2RISC为使优化编译器便于生成优化代码,应具有下述特征: (1)三地址指令格式 (2)较多的寄存器 (3)对称的指令格式。 减少指令平均执行周期数是RISC思想的精华 特点及要求 指令系统的性能决定了计算机的基本功能,它的设计直接关系到计算机的硬件结构和用户的需要。一个完善的指令系统应满足如下四方面的要求:完备性 指用汇编语言编写各种程序时,指令系统直接提供的指令足够使用,而不必用软件来实现。完备性要求指令系统丰富、功能齐全、使用方便。有效性 是指利用该指令系统所编写的程序能够高效率地运行。高效率主要表现在程序占据存储空间小、执行速度快。 指令系统 规整性 包括指令系统的对称性、匀齐性、指令格式和数据格式的一致性。对称性是指:在指令系统中所有的寄存器和存储器单元都可同等对待,所有的指令都可使用各种寻址方式;匀齐性是指:一种 *** 作性质的指令可以支持各种数据类型;指令格式和数据格式的一致性是指:指令长度和数据长度有一定的关系,以方便处理和存取。兼容性 至少要能做到“向上兼容”,即低档机上运行的软件可以在高档机上运行。编辑本段寻址方式 根据指令内容确定 *** 作数地址的过程称为寻址。完善的寻址方式可为用户组织和使用数据提供方便。 ①直接寻址:指令地址域中表示的是 *** 作数地址。 ②间接寻址:指令地址域中表示的是 *** 作数地址的地址即指令地址码对应的存储单元所给出的是地址A, *** 作数据存放在地址A指示的主存单元内。有的计算机的指令可以多次间接寻址,如A指示的主存单元内存放的是另一地址B,而 *** 作数据存放在B指示的主存单元内,称为多重间接寻址。 ③立即寻址:指令地址域中表示的是 *** 作数本身。 指令系统 ④变址寻址:指令地址域中表示的是变址寄存器号i和位移值D。将指定的变址寄存器内容E与位移值D相加,其和E+D为 *** 作数地址。许多计算机具有双变址功能,即将两个变址寄存器内容与位移值相加,得 *** 作数地址。变址寻址有利于数组 *** 作和程序共用。同时,位移值长度可短于地址长度,因而指令长度可以缩短。 ⑤相对寻址:指令地址域中表示的是位移值D。程序计数器内容(即本条指令的地址)K与位移值D相加,得 *** 作数地址K+D。当程序在主存储器浮动时,相对寻址能保持原有程序功能。 此外,还有自增寻址、自减寻址、组合寻址等寻址方式。寻址方式可由 *** 作码确定,也可在地址域中设标志,指明寻址方式。编辑本段种类 常见指令按功能可划分为: ①数据处理指令:包括算术运算指令、逻辑运算指令、移位指令、比较指令等。 ②数据传送指令:包括寄存器之间、寄存器与主存储器之间的传送指令等。 ③程序控制指令:包括条件转移指令、无条件转移指令、转子程序指令等。 ④输 指令系统 入-输出指令:包括各种外围设备的读、写指令等。有的计算机将输入-输出指令包含在数据传送指令类中。 ⑤状态管理指令:包括诸如实现置存储保护、中断处理等功能的管理指令。 随着计算机系统结构的发展,有些计算机还不断引入新指令。如“测并置”指令是为在多机系统和多道程序中防止重入公用子程序而设置的。指令先测试标志位以判断该子程序是否正在使用。如未被使用,则转入子程序并置该标志位,以防其他进程重入。后来又出现功能更强的信号(PV *** 作)指令。有的计算机还设置“执行”指令。“执行“指令执行由地址域所确定的存储单元中的指令。其目的是避免用程序直接修改程序中的指令。这对程序的检查和流水线等技术的应用均有好处。有的计算机采用堆栈实现程序的调用指令和返回指令。调用时将返回地址和各种状态、参数压入堆栈顶部,这样就能较好地实现子程序的嵌套和递归调用,并可使子程序具有可重入性。另外,一些计算机使不少复杂的 *** 作固定化,形成诸如多项式求值、队列插项、队列撤项和各种翻译、编辑等指令。 向量指令和标量指令:有些大型机和巨型机设置功能齐全的向量运算指令系统。向量指令的基本 *** 作对象是向量,即有序排列的一组数。若指令为向量 *** 作,则由指令确定向量 *** 作 指令系统 数的地址(主存储器起始地址或向量寄存器号),并直接或隐含地指定如增量、向量长度等其他向量参数。向量指令规定处理机按同一 *** 作处理向量中的所有分量,可有效地提高计算机的运算速度。不具备向量处理功能,只对单个量即标量进行 *** 作的指令称为标量指令。 特权指令和用户指令:在多用户环境中,某些指令的不恰当使用会引起机器的系统性混乱。如置存储保护、中断处理、输入输出等这类指令,均称为特权指令,不允许用户直接使用。为此,处理机一般设置特权和用户两种状态,或称管(理)态和目(的)态。在特权状态下,程序可使用包括特权指令在内的全部指令。在用户状态下,只允许使用非特权指令,或称用户指令。用户如使用特权指令则会发生违章中断。如用户需要申请 *** 作系统进行某些服务,如输入-输出等,可使用“广义指令”,或称为“进监督”、“访管”等的指令。编辑本段指令格式 计算机的指令格式与机器的字长、存储器的容量及指令的功能都有很大的关系。从便于程序设计、增加基本 *** 作并行性、提高指令功能的角度来看,指令中应包含多种信息。但在有些指令中,由于部分信息可能无用,这将浪费指令所占的存储空间,并增加了访存次数,也许反而会影响速度。因此,如何合理、科学地设 指令系统 计指令格式,使指令既能给出足够的信息,又使其长度尽可能地与机器的字长相匹配,以节省存储空间,缩短取指时间,提高机器的性能,这是指令格式设计中的一个重要问题。 计算机是通过执行指令来处理各种数据的。为了指出数据的来源、 *** 作结果的去向及所执行的 *** 作,一条指令必须包含下列信息: (1) *** 作码。它具体说明了 *** 作的性质及功能。一台计算机可能有几十条至几百条指令,每一条指令都有一个相应的 *** 作码,计算机通过识别该 *** 作码来完成不同的 *** 作。 (2) *** 作数的地址。CPU通过该地址就可以取得所需的 *** 作数。 (3) *** 作结果的存储地址。把对 *** 作数的处理所产生的结果保存在该地址中,以便再次使用。 (4)下条指令的地址。执行程序时,大多数指令按顺序依次从主存中取出执行,只有在遇到转移指令时,程序的执行顺序才会改变。为了压缩指令的长度,可以用一个程序计数器(ProgramCounter,PC)存放指令地址。每执行一条指令,PC的指令地址就自动+1(设该指令只占一个主存单元),指出将要执行的下一条指令的地址。当遇到执行转移指令时,则用转移地址修改PC的内容。由于使用了PC,指令中就不必明显地给出下一条将要执行指令的地址。 指令系统 一条指令实际上包括两种信息即 *** 作码和地址码。 *** 作码(OperationCode,OP)用来表示该指令所要完成的 *** 作(如加、减、乘、除、数据传送等),其长度取决于指令系统中的指令条数。地址码用来描述该指令的 *** 作对象,它或者直接给出 *** 作数,或者指出 *** 作数的存储器地址或寄存器地址(即寄存器名)。 指令包括 *** 作码域和地址域两部分。根据地址域所涉及的地址数量,常见的指令格式有以下几种。 ①三地址指令:一般地址域中A1、A2分别确定第一、第二 *** 作数地址,A3确定结果地址。下一条指令的地址通常由程序计数器按顺序给出。 指令系统 ②二地址指令:地址域中A1确定第一 *** 作数地址,A2同时确定第二 *** 作数地址和结果地址。 ③单地址指令:地址域中A 确定第一 *** 作数地址。固定使用某个寄存器存放第二 *** 作数和 *** 作结果。因而在指令中隐含了它们的地址。 ④零地址指令:在堆栈型计算机中, *** 作数一般存放在下推堆栈顶的两个单元中,结果又放入栈顶,地址均被隐含,因而大多数指令只有 *** 作码而没有地址域。 ⑤可变地址数指令:地址域所涉及的地址的数量随 *** 作定义而改变。如有的计算机的指令中的地址数可少至 0个,多至6个。

RISC(精简指令集计算机)和CISC(复杂指令集计算机)是当前CPU的两种架构。它们的区别在于不同的CPU设计理念和方法。

CPU架构是厂商给属于同一系列的CPU产品定的一个规范,主要目的是为了区分不同类型CPU的重要标示

早期的CPU全部是CISC架构,它的设计目的是要用最少的机器语言指令来完成所需的计算任务。比如对于乘法运算,在CISC架构的CPU上,您可能需要这样一条指令:MUL ADDRA, ADDRB就可以将ADDRA和ADDRB中的数相乘并将结果储存在ADDRA中。将ADDRA, ADDRB中的数据读入寄存器,相乘和将结果写回内存的 *** 作全部依赖于CPU中设计的逻辑来实现。这种架构会增加CPU结构的复杂性和对CPU工艺的要求,但对于编译器的开发十分有利。比如上面的例子,C程序中的a=b就可以直接编译为一条乘法指令。今天只有Intel及其兼容CPU还在使用CISC架构。

RISC架构要求软件来指定各个 *** 作步骤。上面的例子如果要在RISC架构上实现,将ADDRA, ADDRB中的数据读入寄存器,相乘和将结果写回内存的 *** 作都必须由软件来实现,比如:MOV A, ADDRA; MOV B, ADDRB; MUL A, B; STR ADDRA, A。这种架构可以降低CPU的复杂性以及允许在同样的工艺水平下生产出功能更强大的CPU,但对于编译器的设计有更高的要求。

复杂指令集计算机(CISC)

长期来,计算机性能的提高往往是通过增加硬件的复杂性来获得.随着集成电路技术.特别是VLSI(超大规模集成电路)技术的迅速发展,为了软件编程方便和提高程序的运行速度,硬件工程师采用的办法是不断增加可实现复杂功能的指令和多种灵活的编址方式.甚至某些指令可支持高级语言语句归类后的复杂 *** 作.至使硬件越来越复杂,造价也相应提高.为实现复杂 *** 作,微处理器除向程序员提供类似各种寄存器和机器指令功能外.还通过存于只读存贮器(ROM)中的微程序来实现其极强的功能 ,傲处理在分析每一条指令之后执行一系列初级指令运算来完成所需的功能,这种设计的型式被称为复杂指令集计算机(Complex Instruction Set Computer-CISC)结构.一般CISC计算机所含的指令数目至少300条以上,有的甚至超过500条.

精简指令集计算机(RISC)

采用复杂指令系统的计算机有着较强的处理高级语言的能力.这对提高计算机的性能是有益的.当计算机的设计沿着这条道路发展时.有些人没有随波逐流.他们回过头去看一看过去走过的道路,开始怀疑这种传统的做法:IBM公司没在纽约Yorktown的JhomasIWason研究中心于1975年组织力量研究指令系统的合理性问题.因为当时已感到,日趋庞杂的指令系统不但不易实现.而且还可能降低系统性能.1979年以帕特逊教授为首的一批科学家也开始在美国加册大学伯克莱分校开展这一研究.结果表明,CISC存在许多缺点.首先.在这种计算机中.各种指令的使用率相差悬殊:一个典型程序的运算过程所使用的80%指令.只占一个处理器指令系统的20%.事实上最频繁使用的指令是取、存和加这些最简单的指令.这样-来,长期致力于复杂指令系统的设计,实际上是在设计一种难得在实践中用得上的指令系统的处理器.同时.复杂的指令系统必然带来结构的复杂性.这不但增加了设计的时间与成本还容易造成设计失误.此外.尽管VLSI技术现在已达到很高的水平,但也很难把CISC的全部硬件做在一个芯片上,这也妨碍单片计算机的发展.在CISC中,许多复杂指令需要极复杂的 *** 作,这类指令多数是某种高级语言的直接翻版,因而通用性差.由于采用二级的微码执行方式,它也降低那些被频繁调用的简单指令系统的运行速度.因而.针对CISC的这些弊病.帕特逊等人提出了精简指令的设想即指令系统应当只包含那些使用频率很高的少量指令.并提供一些必要的指令以支持 *** 作系统和高级语言.按照这个原则发展而成的计算机被称为精简指令集计算机(Reduced Instruction Set Computer-RISC)结构.简称RISC.

CISC与RISC的区别 

我们经常谈论有关"PC"与"Macintosh"的话题,但是又有多少人知道以Intel公司X86为核心的PC系列正是基于CISC体系结构,而 Apple公司的Macintosh则是基于RISC体系结构,CISC与RISC到底有何区别?

从硬件角度来看CISC处理的是不等长指令集,它必须对不等长指令进行分割,因此在执行单一指令的时候需要进行较多的处理工作。而RISC执行的是等长精简指令集,CPU在执行指令的时候速度较快且性能稳定。因此在并行处理方面RISC明显优于CISC,RISC可同时执行多条指令,它可将一条指令分割成若干个进程或线程,交由多个处理器同时执行。由于RISC执行的是精简指令集,所以它的制造工艺简单且成本低廉。

从软件角度来看,CISC运行的则是我们所熟识的DOS、Windows *** 作系统。而且它拥有大量的应用程序。因为全世界有65%以上的软件厂商都理为基于CISC体系结构的PC及其兼容机服务的,象赫赫有名的Microsoft就是其中的一家。而RISC在此方面却显得有些势单力薄。虽然在RISC上也可运行DOS、Windows,但是需要一个翻译过程,所以运行速度要慢许多。

目前CISC与RISC正在逐步走向融合,Pentium Pro、Nx586、K5就是一个最明显的例子,它们的内核都是基于RISC体系结构的。他们接受CISC指令后将其分解分类成RISC指令以便在遇一时间内能够执行多条指令。由此可见,下一代的CPU将融合CISC与RISC两种技术,从软件与硬件方面看二者会取长补短。

复杂指令集CPU内部为将较复杂的指令译码,也就是指令较长,分成几个微指令去执行,正是如此开发程序比较容易(指令多的缘故),但是由于指令复杂,执行工作效率较差,处理数据速度较慢,PC 中 Pentium的结构都为CISC CPU。

RISC是精简指令集CPU,指令位数较短,内部还有快速处理指令的电路,使得指令的译码与数据的处理较快,所以执行效率比CISC高,不过,必须经过编译程序的处理,才能发挥它的效率,我所知道的IBM的 Power PC为RISC CPU的结构,CISCO 的CPU也是RISC的结构。

咱们经常见到的PC中的CPU,Pentium-Pro(P6)、Pentium-II,Cyrix的M1、M2、AMD的K5、K6实际上是改进了的CISC,也可以说是结合了CISC和RISC的部分优点。

RISC与CISC的主要特征对比

比较内容 CISC RISC

指令系统 复杂,庞大 简单,精简

指令数目 一般大于200 一般小于100

指令格式 一般大于4 一般小于4

寻址方式 一般大于4 一般小于4

指令字长 不固定 等长

可访存指令 不加限制 只有LOAD/STORE指令

各种指令使用频率 相差很大 相差不大

各种指令执行时间 相差很大 绝大多数在一个周期内完成

优化编译实现 很难 较容易

程序源代码长度 较短 较长

控制器实现方式 绝大多数为微程序控制 绝大多数为硬布线控制

软件系统开发时间 较短 较长

以上就是关于RISC为什么一定要用流水技术全部的内容,包括:RISC为什么一定要用流水技术、cpu9代微码是什么、计算机系统知识等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/9833947.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-02
下一篇2023-05-02

发表评论

登录后才能评论

评论列表(0条)

    保存