risc是英文“reduced instruction set computing ” 的缩写,中文意思是“精简指令集”。
它是在cisc指令系统基础上发展起来的,有人对cisc机进行测试表明,各种指令的使用频度相当悬殊,最常使用的是一些比较简单的指令,它们仅占指令总数的20%,但在程序中出现的频度却占80%。复杂的指令系统必然增加微处理器的复杂性,使处理器的研制时间长,成本高。并且复杂指令需要复杂的操作,必然会降低计算机的速度。基于上述原因,20世纪80年代risc型cpu诞生了,相对于cisc型cpu ,risc型cpu不仅精简了指令系统,还采用了一种叫做“超标量和超流水线结构”,大大增加了并行处理能力。
risc指令集是高性能cpu的发展方向。它与传统的cisc(复杂指令集)相对。相比而言,risc的指令格式统一,种类比较少,寻址方式也比复杂指令集少。当然处理速度就提高很多了。目前在中高档服务器中普遍采用这一指令系统的cpu,特别是高档服务器全都采用risc指令系统的cpu。risc指令系统更加适合高档服务器的操作系统unix,现在linux也属于类似unix的操作系统。risc型cpu与intel和amd的cpu在软件和硬件上都不兼容。
目前,在中高档服务器中采用risc指令的cpu主要有以下几类:powerpc处理器、sparc处理器、pa-risc处理器、mips处理器、alpha处理器。
risc这种指令集运算包括hp的pa-risc,ibm的powerpc,compaq(被并入hp)的alpha,mips公司的mips,sun公司的sparc等。目前只有unix,linux,macos等操作系统运行在risc处理器上。
常见的精简指令集微处理器包括avr、pic、arm、dec alpha、pa-risc、sparc、mips、power架构等。
早期,这种cpu指令集的特点是指令数目少,每条指令都采用标准字长、执行时间短、cpu的实现细节对于机器级程序是可见的等等。
实际上在后来的发展中,risc与cisc在争吵的过程中相互学习,现在的risc指令集也达到数百条,运行周期也不再固定……虽然如此,risc设计的根本原则--针对流水线化的处理器优化--没有改变。
risc指令集的五个周期
这五个时钟周期分别为:if(instruction fetch,取指令),id(instruction decode/register fetch cycle,指令解码),ex(execution/effective address cycle,执行),mem(memory access,内存访问), wb(write-back cycle,写回)。
if:根据pc(program counter,程序计数器)中所存储的内存地址,在内存中找到该地址所指向的指令,并将该指令存储在寄存器中。同时,pc指向下一条指令,完成这个操作要求pc加4(以32位指令集为例,如果是64位则要加8)。
id : 操作从if阶段获取来的指令。将指令解码,最终找到指令所需要的寄存器中存储的数据。如果该指令只一条跳转指令,那么在这一阶段需要根据跳转指令的意义对获取的值进行比较,如果比较结果为true则执行跳转,如果比较结果为false则不执行跳转,继续下一条指令的执行;如果指令需要对指令中某些位进行填充,也在id阶段完成,比如对高四位进行填充以满足指令结果是32位;计算可能跳转的指令的地址。
ex : alu(arithmetic logic unit,算术逻辑单元)对id阶段的结果进行计算。在id阶段已经获得了指令计算所需要的寄存器的值,那么在ex阶段需要根据指令的意义对这些寄存器的值进行计算。计算根据指令的不同变得不同。主要有三种类型的alu计算:1. alu根据id中补充的地址,对有效的地址单元进行计算,最终得到所需要的内存的地址;2. 根据指令的意义,对从寄存器中获取的值,进行操作,比如对两个寄存器的值进行相加;3. 根据寄存器的值以及补充的值,计算出立即数的结果。
mem:如果当前指令是load指令,那么,根据ex计算出的内存地址,从内存中获取对应的值;如果当前指令是store,那么,根据ex计算出的内存地址和寄存器的值,将寄存器的值存入该内存地址中。其他的指令一般不会设计内存的访问。
wb:将计算出来的最终的寄存器的值写入到register file(寄存器文件)中。这部操作包括从内存中获取的值以及通过算术运算得到的结果。
以上五个时钟周期便是一条risc指令执行的主要步骤。
risc指令特征
指令种类少,指令格式规范:risc指令集通常只使用一种或少数几种格式。指令长度单一(一般4个字节),并且在字边界上对齐,字段位置、特别是操作码的位置是固定的。
寻址方式简化:几乎所有指令都使用寄存器寻址方式,寻址方式总数一般不超过5个。其他更为复杂的寻址方式,如间接寻址等则由软件利用简单的寻址方式来合成。
大量利用寄存器间操作:risc指令集中大多数操作都是寄存器到寄存器操作,只以简单的load和store操作访问内存。因此,每条指令中访问的内存地址不会超过1个,访问内存的操作不会与算术操作混在一起。
简化处理器结构:使用risc指令集,可以大大简化处理器的控制器和其他功能单元的设计,不必使用大量专用寄存器,特别是允许以硬件线路来实现指令操作,而不必像cisc处理器那样使用微程序来实现指令操作。因此risc处理器不必像cisc处理器那样设置微程序控制存储器,就能够快速地直接执行指令。
便于使用vlsi技术:随着lsi和vlsi技术的发展,整个处理器(甚至多个处理器)都可以放在一个芯片上。risc体系结构可以给设计单芯片处理器带来很多好处,有利于提高性能,简化vlsi芯片的设计和实现。基于vlsi技术,制造risc处理器要比cisc处理器工作量小得多,成本也低得多。
加强了处理器并行能力:risc指令集能够非常有效地适合于采用流水线、超流水线和超标量技术,从而实现指令级并行操作,提高处理器的性能。目前常用的处理器内部并行操作技术基本上是基于risc体系结构发展和走向成熟的。
量子点大战OLED 胜负明年见分晓?
手机芯片有什么作用
为什么要使用电话机器人,其理由是什么
苹果明年推出4.7英寸廉价版iPhone,或将是iPhone SE 2
荣耀V9怎么样?华为荣耀V9深度评测:使用90天评测,荣耀V9全方位细节分析
risc指令集是什么_有哪些
常用的hdl语言有哪两种
HTC手机业务让人唏嘘 智能家居能否助力走出低谷
英国:仅用LED和智能手机就足以完成光度立体成像
扬尘在线监测仪在施工现场的使用有哪些好处?
人工智能将如何变革视频监控行业?
灵动微从方案平台化分享MM32SPIN产品系列
阿自倍尔H3C型可调节接近传感器,可助于提高设备的运行率
集成驱动伺服电机的使用情况
如何在DigiPCBA平台上进行项目开放呢
华为AppCube应用魔方顺利通过信通院评估
三相半波/单相负载AC/AC变换电路
中国移动核心器件位居国外服务器?
机器视觉检测平台
三菱PLC电池的更换方法