不同类型的CPU指令集不同,指令系统一样吗? 30
在百度知道里看到这题:35.单选题:(1.0分)计算机运行的指令一般由操作码和操作数组成,下面关于计算机指令的说法中错误的是2011-10-2912:31提问者:爱痕19...
在百度知道里看到这题:
35. 单选题: (1.0分) 计算机运行的指令一般由操作码和操作数组成,下面关于计算机指令的说法中错误的是
2011-10-29 12:31
提问者:爱痕1991 | 浏览次数:112次
A. 操作码部分指出计算机应执行的操作类型,一般用容易记忆的标识符表示
B. 指令系统中提供不同类型的指令有很多,如数据传送指令、移位指令、控制转移指令和输入输出指令等
C. 操作数部分可能是操作的数据,也可能是操作数所在内存的地址
D. 程序由一连串的指令组成,不同类型的CPU提供的指令系统一般不相同
答案是D
不太明白这个答案,指令集和指令系统是两个概念吗?区别在哪里?
因为:指令集就是CPU能支持的指令的集合
因这:指令系统:计算机所能执行的全部指令的集合
又因为:不同CPU指令集不同
????????
????????
所以:不同CPU的指令系统是相同的。
谁能把中间“?”代表的推导过程给补上?谢谢 展开
35. 单选题: (1.0分) 计算机运行的指令一般由操作码和操作数组成,下面关于计算机指令的说法中错误的是
2011-10-29 12:31
提问者:爱痕1991 | 浏览次数:112次
A. 操作码部分指出计算机应执行的操作类型,一般用容易记忆的标识符表示
B. 指令系统中提供不同类型的指令有很多,如数据传送指令、移位指令、控制转移指令和输入输出指令等
C. 操作数部分可能是操作的数据,也可能是操作数所在内存的地址
D. 程序由一连串的指令组成,不同类型的CPU提供的指令系统一般不相同
答案是D
不太明白这个答案,指令集和指令系统是两个概念吗?区别在哪里?
因为:指令集就是CPU能支持的指令的集合
因这:指令系统:计算机所能执行的全部指令的集合
又因为:不同CPU指令集不同
????????
????????
所以:不同CPU的指令系统是相同的。
谁能把中间“?”代表的推导过程给补上?谢谢 展开
展开全部
百度百科可以查看完整的定义。
————————————————————————
1997年Intel公司推出了多媒体扩展指令集MMX(MultiMedia eXtensions),它包括57条多媒体指令。MMX指令主要用于增强CPU对多媒体信息的处理能力,提高CPU处理3D图形、视频和音频信息的能力。
SSE指令集
Streaming SIMD Extensions 由于MMX指令并没有带来3D游戏性能的显著提升,1999年Intel公司在Pentium III CPU产品中推出了数据流单指令序列扩展指令(SSE)。SSE兼容MMX指令,它可以通过SIMD(单指令多数据技术)和单时钟周期并行处理多个浮点来有效地提高浮点运算速度。 在MMX指令集中,借用了浮点处理器的8个寄存器,这样导致了浮点运算速度降低。而在SSE指令集推出时,Intel公司在Pentium III CPU中增加了8个128位的SSE指令专用寄存器。而且SSE指令寄存器可以全速运行,保证了与浮点运算的并行性。
编辑本段SSE2指令集
在Pentium 4 CPU中,Intel公司开发了新指令集SSE2。这一次新开发的SSE2指令一共144条,包括浮点SIMD指令、整形SIMD指令、SIMD浮点和整形数据之间转换、数据在MMX寄存器中转换等几大部分。其中重要的改进包括引入新的数据格式,如:128位SIMD整数运算和64位双精度浮点运算等。为了更好地利用高速缓存。另外,在Pentium 4中还新增加了几条缓存指令,允许程序员控制已经缓存过的数据。
编辑本段SSE3指令集
相对于SSE2,SSE3又新增加了13条新指令,此前它们被统称为pni(prescott new instructions)。13条指令中,一条用于视频解码,两条用于线程同步,其余用于复杂的数学运算、浮点到整数转换和SIMD浮点运算。
编辑本段SSE4指令集
SSE4又增加了50条新的增加性能的指令,这些指令有助于编译、媒体、字符/文本处理和程序指向加速。 SSE4指令集将作为Intel公司未来“显著视频增强”平台的一部分。该平台的其他视频增强功能还有Clear Video技术(CVT)和统一显示接口(UDI)支持等,其中前者是对ATi AVIVO技术的回应,支持高级解码、后处理和增强型3D功能。
编辑本段3D Now!扩展指令集
3D Now!指令集是AMD公司1998年开发的多媒体扩展指令集,共有21条指令。针对MMX指令集没有加强浮点处理能力的弱点,重点提高了AMD公司K6系列CPU对3D图形的处理能力。由于指令有限,3D Now!指令集主要用于3D游戏,而对其他商业图形应用处理支持不足。
编辑本段X86指令集
要知道什么是指令集还要从当今的X86架构的CPU说起。X86指令集是Intel为其第一块16位CPU(i8086)专门开发的,IBM1981年推出的世界第一台PC机中的CPU—i8088(i8086简化版)使用的也是X86指令,同时电脑中为提高浮点数据处理能力而增加的X87芯片系列数学协处理器则另外使用X87指令,以后就将X86指令集和X87指令集统称为X86指令集。虽然随着CPU技术的不断发展,Intel陆续研制出更新型的i80386、i80486直到今天,但为了保证电脑能继续运行以往开发的各类应用程序以保护和继承丰富的软件资源,所以Intel公司所生产的所有CPU仍然继续使用X86指令集,所以它的CPU仍属于X86系列。由于Intel X86系列及其兼容CPU都使用X86指令集,所以就形成了今天庞大的X86系列及兼容CPU阵容。
编辑本段EM64T指令集
Intel公司的EM64T(Extended Memory 64 Technology)即64位内存扩展技术。该技术为服务器和工作站平台应用提供扩充的内存寻址能力,拥有更多的内存地址空间,可带来更大的应用灵活性,特别有利于提升音频视频编辑、CAD设计等复杂工程软件及游戏软件的应用。 我们常说的64位指的是AMD公司出的64位CPU,而EM64T则是Intel公司按照自己的意思理解出来的64位,也就是和AMD公司的64位对应的另一种叫法。
编辑本段RISC指令集
reduced instruction set computer RISC指令集是以后高性能CPU的发展方向。它与传统的CISC(复杂指令集)相对。相比而言,RISC的指令格式统一,种类比较少,寻址方式也比复杂指令集少。目前使用RISC指令集的体系结构主要有ARM、MIPS。
编辑本段3DNow!+指令集
在原有的指令集基础上,增加到52条指令,其中包含了部分SSE指令,该指令集主要用于新型的AMD CPU上。
————————————————————————
指令系统是计算机硬件的语言系统,也叫机器语言,它是软件和硬件的主要界面,从系统结构的角度看,它是系统程序员看到的计算机的主要属性。因此指令系统表征了计算机的基本功能决定了机器所要求的能力,也决定了指令的格式和机器的结构。对不同的计算机在设计指令系统时,应对指令格式、类型及操作功能给予应有的重视。
指令系统:
计算机所能执行的全部指令的集合,它描述了计算机内全部的控制信息和“逻辑判断”能力。不同计算机的指令系统包含的指令种类和数目也不同。一般均包含算术运算型、逻辑运算型、数据传送型、判定和控制型、输入和输出型等指令。指令系统是表征一台计算机性能的重要因素,它的格式与功能不仅直接影响到机器的硬件结构,而且也直接影响到系统软件,影响到机器的适用范围。
指令
微机完成规定操作的命令,一条指令通常由操作码和地址码组成。
操作数:
计算机在运行过程需要的数据称为操作数。
编辑本段概况
一条指令就是机器语言的一个语句,它是一组有意义的二进制代码,指令的基本格式如:操作码字段+地址码字段,其中操作码指明了指令的操作性质及功能,地址码则给出了操作数或操作数的地址。 各计算机公司设计生产的计算机,其指令的数量与功能、指令格式、寻址方式、数据格式都有差别,即使是一些常用的基本指令,如算术逻辑运算指令、转移指令等也是各不相同的。因此,尽管 精简指令系统计算结构(RISC)来设计芯片
各种型号计算机的高级语言基本相同,但将高级语言程序(例如Fortran语言程序)编译成机器语言后,其差别也是很大的。因此将用机器语言表示的程序移植到其他机器上去几乎是不可能的。从计算机的发展过程已经看到,由于构成计算机的基本硬件发展迅速,计算机的更新换代是很快的,这就存在软件如何跟上的问题。大家知道,一台新机器推出交付使用时,仅有少量系统软件(如操作系统等)可提交用户,大量软件是不断充实的,尤其是应用程序,有相当一部分是用户在使用机器时不断产生的,这就是所谓第三方提供的软件。 为了缓解新机器的推出与原有应用程序的继续使用之间的矛盾,1964年在设计IBM360计算机时所采用的系列机思想较好地解决了这一问题。从此以后,各个计算机公司生产的同一系列的计算机尽管其硬件实现方法可以不同,但指令系统、数据格式、I/O系统等保持相同,因而软件完全兼容(在此基础上,产生了兼容机)。当研制该系列计算机的新型号或高档产品时,尽管指令系统可以有较大的扩充,但仍保留了原来的全部指令,保持软件向上兼容的特点,即低档机或旧机型上的软件不加修改即可在比它高档的新机器上运行,以保护用户在软件上的投资。
编辑本段指令的发展历程
回顾计算机的发展历史,指令系统的发展经历了从简单到复杂的演变过程。早在20世纪50-60年代,计算机大多数采用分立元件的晶体管或电子管组成,其体积庞大,价格也很昂贵,因此计算机的硬件结构比较简单,所支持的指令系统也只有十几至几十条最基本的指令,而且寻址方式简单。到60年代中期,随着集成电路的出现,计算机的功耗、体积、价格等不断下降,硬件功能不断增强,指 指令系统
令系统也越来越丰富。在70年代,高级语言己成为大、中、小型机的主要程序设计语言,计算机应用日益普及。由于软件的发展超过了软件设计理论的发展,复杂的软件系统设计一直没有很好的理论指导,导致软件质量无法保证,从而出现了所谓的“软件危机”。人们认为,缩小机器指令系统与高级语言语义差距,为高级语言提供很多的支持,是缓解软件危机有效和可行的办法。计算机设计者们利用当时已经成熟的微程序技术和飞速发展的VLSI技术,增设各种各样的复杂的、面向高级语言的指令,使指令系统越来越庞大。这是几十年来人们在设计计算机时,保证和提高指令系统有效性方面传统的想法和作法。按这种传统方法设计的计算机系统称为复杂指令系统计算机(ComplexSetInstructionComputer),简称CISC. RISC是一种计算机体系结构的设计思想,是近代计算机体系结构发展史中的一个里程碑。然而,直到现在,RISC还没有一个确切的定义。90年代初,IEEE的MichaelSlater对于RISC的定义做了如下描述:RISC处理器所设计的指令系统应使流水线处理能高效率执行,并使优化编译器能生成优化代码。 1.RISC为使流水线高效率执行,应具有下述特征:(1)简单而统一格式的指令译码;(2)大部分指令可以单周期执行完成;(3)只有LAD和STORE指令可以访问存储器;(4)简单的寻址方式;(5)采用延迟转移技术;(6)采用LOAD延迟技术。 2.RISC为使优化编译器便于生成优化代码,应具有下述特征: (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个。
————————————————————————
1997年Intel公司推出了多媒体扩展指令集MMX(MultiMedia eXtensions),它包括57条多媒体指令。MMX指令主要用于增强CPU对多媒体信息的处理能力,提高CPU处理3D图形、视频和音频信息的能力。
SSE指令集
Streaming SIMD Extensions 由于MMX指令并没有带来3D游戏性能的显著提升,1999年Intel公司在Pentium III CPU产品中推出了数据流单指令序列扩展指令(SSE)。SSE兼容MMX指令,它可以通过SIMD(单指令多数据技术)和单时钟周期并行处理多个浮点来有效地提高浮点运算速度。 在MMX指令集中,借用了浮点处理器的8个寄存器,这样导致了浮点运算速度降低。而在SSE指令集推出时,Intel公司在Pentium III CPU中增加了8个128位的SSE指令专用寄存器。而且SSE指令寄存器可以全速运行,保证了与浮点运算的并行性。
编辑本段SSE2指令集
在Pentium 4 CPU中,Intel公司开发了新指令集SSE2。这一次新开发的SSE2指令一共144条,包括浮点SIMD指令、整形SIMD指令、SIMD浮点和整形数据之间转换、数据在MMX寄存器中转换等几大部分。其中重要的改进包括引入新的数据格式,如:128位SIMD整数运算和64位双精度浮点运算等。为了更好地利用高速缓存。另外,在Pentium 4中还新增加了几条缓存指令,允许程序员控制已经缓存过的数据。
编辑本段SSE3指令集
相对于SSE2,SSE3又新增加了13条新指令,此前它们被统称为pni(prescott new instructions)。13条指令中,一条用于视频解码,两条用于线程同步,其余用于复杂的数学运算、浮点到整数转换和SIMD浮点运算。
编辑本段SSE4指令集
SSE4又增加了50条新的增加性能的指令,这些指令有助于编译、媒体、字符/文本处理和程序指向加速。 SSE4指令集将作为Intel公司未来“显著视频增强”平台的一部分。该平台的其他视频增强功能还有Clear Video技术(CVT)和统一显示接口(UDI)支持等,其中前者是对ATi AVIVO技术的回应,支持高级解码、后处理和增强型3D功能。
编辑本段3D Now!扩展指令集
3D Now!指令集是AMD公司1998年开发的多媒体扩展指令集,共有21条指令。针对MMX指令集没有加强浮点处理能力的弱点,重点提高了AMD公司K6系列CPU对3D图形的处理能力。由于指令有限,3D Now!指令集主要用于3D游戏,而对其他商业图形应用处理支持不足。
编辑本段X86指令集
要知道什么是指令集还要从当今的X86架构的CPU说起。X86指令集是Intel为其第一块16位CPU(i8086)专门开发的,IBM1981年推出的世界第一台PC机中的CPU—i8088(i8086简化版)使用的也是X86指令,同时电脑中为提高浮点数据处理能力而增加的X87芯片系列数学协处理器则另外使用X87指令,以后就将X86指令集和X87指令集统称为X86指令集。虽然随着CPU技术的不断发展,Intel陆续研制出更新型的i80386、i80486直到今天,但为了保证电脑能继续运行以往开发的各类应用程序以保护和继承丰富的软件资源,所以Intel公司所生产的所有CPU仍然继续使用X86指令集,所以它的CPU仍属于X86系列。由于Intel X86系列及其兼容CPU都使用X86指令集,所以就形成了今天庞大的X86系列及兼容CPU阵容。
编辑本段EM64T指令集
Intel公司的EM64T(Extended Memory 64 Technology)即64位内存扩展技术。该技术为服务器和工作站平台应用提供扩充的内存寻址能力,拥有更多的内存地址空间,可带来更大的应用灵活性,特别有利于提升音频视频编辑、CAD设计等复杂工程软件及游戏软件的应用。 我们常说的64位指的是AMD公司出的64位CPU,而EM64T则是Intel公司按照自己的意思理解出来的64位,也就是和AMD公司的64位对应的另一种叫法。
编辑本段RISC指令集
reduced instruction set computer RISC指令集是以后高性能CPU的发展方向。它与传统的CISC(复杂指令集)相对。相比而言,RISC的指令格式统一,种类比较少,寻址方式也比复杂指令集少。目前使用RISC指令集的体系结构主要有ARM、MIPS。
编辑本段3DNow!+指令集
在原有的指令集基础上,增加到52条指令,其中包含了部分SSE指令,该指令集主要用于新型的AMD CPU上。
————————————————————————
指令系统是计算机硬件的语言系统,也叫机器语言,它是软件和硬件的主要界面,从系统结构的角度看,它是系统程序员看到的计算机的主要属性。因此指令系统表征了计算机的基本功能决定了机器所要求的能力,也决定了指令的格式和机器的结构。对不同的计算机在设计指令系统时,应对指令格式、类型及操作功能给予应有的重视。
指令系统:
计算机所能执行的全部指令的集合,它描述了计算机内全部的控制信息和“逻辑判断”能力。不同计算机的指令系统包含的指令种类和数目也不同。一般均包含算术运算型、逻辑运算型、数据传送型、判定和控制型、输入和输出型等指令。指令系统是表征一台计算机性能的重要因素,它的格式与功能不仅直接影响到机器的硬件结构,而且也直接影响到系统软件,影响到机器的适用范围。
指令
微机完成规定操作的命令,一条指令通常由操作码和地址码组成。
操作数:
计算机在运行过程需要的数据称为操作数。
编辑本段概况
一条指令就是机器语言的一个语句,它是一组有意义的二进制代码,指令的基本格式如:操作码字段+地址码字段,其中操作码指明了指令的操作性质及功能,地址码则给出了操作数或操作数的地址。 各计算机公司设计生产的计算机,其指令的数量与功能、指令格式、寻址方式、数据格式都有差别,即使是一些常用的基本指令,如算术逻辑运算指令、转移指令等也是各不相同的。因此,尽管 精简指令系统计算结构(RISC)来设计芯片
各种型号计算机的高级语言基本相同,但将高级语言程序(例如Fortran语言程序)编译成机器语言后,其差别也是很大的。因此将用机器语言表示的程序移植到其他机器上去几乎是不可能的。从计算机的发展过程已经看到,由于构成计算机的基本硬件发展迅速,计算机的更新换代是很快的,这就存在软件如何跟上的问题。大家知道,一台新机器推出交付使用时,仅有少量系统软件(如操作系统等)可提交用户,大量软件是不断充实的,尤其是应用程序,有相当一部分是用户在使用机器时不断产生的,这就是所谓第三方提供的软件。 为了缓解新机器的推出与原有应用程序的继续使用之间的矛盾,1964年在设计IBM360计算机时所采用的系列机思想较好地解决了这一问题。从此以后,各个计算机公司生产的同一系列的计算机尽管其硬件实现方法可以不同,但指令系统、数据格式、I/O系统等保持相同,因而软件完全兼容(在此基础上,产生了兼容机)。当研制该系列计算机的新型号或高档产品时,尽管指令系统可以有较大的扩充,但仍保留了原来的全部指令,保持软件向上兼容的特点,即低档机或旧机型上的软件不加修改即可在比它高档的新机器上运行,以保护用户在软件上的投资。
编辑本段指令的发展历程
回顾计算机的发展历史,指令系统的发展经历了从简单到复杂的演变过程。早在20世纪50-60年代,计算机大多数采用分立元件的晶体管或电子管组成,其体积庞大,价格也很昂贵,因此计算机的硬件结构比较简单,所支持的指令系统也只有十几至几十条最基本的指令,而且寻址方式简单。到60年代中期,随着集成电路的出现,计算机的功耗、体积、价格等不断下降,硬件功能不断增强,指 指令系统
令系统也越来越丰富。在70年代,高级语言己成为大、中、小型机的主要程序设计语言,计算机应用日益普及。由于软件的发展超过了软件设计理论的发展,复杂的软件系统设计一直没有很好的理论指导,导致软件质量无法保证,从而出现了所谓的“软件危机”。人们认为,缩小机器指令系统与高级语言语义差距,为高级语言提供很多的支持,是缓解软件危机有效和可行的办法。计算机设计者们利用当时已经成熟的微程序技术和飞速发展的VLSI技术,增设各种各样的复杂的、面向高级语言的指令,使指令系统越来越庞大。这是几十年来人们在设计计算机时,保证和提高指令系统有效性方面传统的想法和作法。按这种传统方法设计的计算机系统称为复杂指令系统计算机(ComplexSetInstructionComputer),简称CISC. RISC是一种计算机体系结构的设计思想,是近代计算机体系结构发展史中的一个里程碑。然而,直到现在,RISC还没有一个确切的定义。90年代初,IEEE的MichaelSlater对于RISC的定义做了如下描述:RISC处理器所设计的指令系统应使流水线处理能高效率执行,并使优化编译器能生成优化代码。 1.RISC为使流水线高效率执行,应具有下述特征:(1)简单而统一格式的指令译码;(2)大部分指令可以单周期执行完成;(3)只有LAD和STORE指令可以访问存储器;(4)简单的寻址方式;(5)采用延迟转移技术;(6)采用LOAD延迟技术。 2.RISC为使优化编译器便于生成优化代码,应具有下述特征: (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个。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询