精简指令集计算机

✍ dations ◷ 2025-11-11 23:52:10 #精简指令集计算机

精简指令集计算机(英语:Reduced instruction set computer,缩写:RISC)或简译为精简指令集,是计算机中央处理器的一种设计模式。这种设计思路可以想像成是一家模块化的组装工厂,对指令数目和寻址方式都做了精简,使其实现更容易,指令并行执行程度更好,编译器的效率更高。目前常见的精简指令集微处理器包括DEC Alpha、ARC(英语:ARC (processor))、ARM、AVR、MIPS、PA-RISC、Power ISA(包括PowerPC、PowerXCell)、RISC-V和SPARC等。

精简指令集的名称最早来自1980年大卫·帕特森在加州大学柏克莱分校主持的Berkeley RISC(英语:Berkeley RISC)计划。但在他之前,已经有人提出类似的设计理念。由约翰·科克主持,在1975年开始,1980年完成的IBM 801计划,可能是第一个使用精简指令集理念来设计的系统。

这种设计思路最早的产生缘自于有人发现,尽管传统处理器设计了许多特性让代码编写更加便捷,但这些复杂特性需要几个指令周期才能实现,并且常常不被运行程序所采用。此外,处理器和主内存之间运行速度的差别也变得越来越大。在这些因素促使下,出现了一系列新技术,使处理器的指令得以流水执行,同时降低处理器访问内存的次数。

早期,这种指令集的特点是指令数目少,每条指令都采用标准字长、执行时间短、中央处理器的实现细节对于机器级程序是可见的等等。

实际上在后来的发展中,RISC与CISC(复杂指令集)在竞争的过程中相互学习,现在的RISC指令集也达到数百条,运行周期也不再固定。虽然如此,RISC设计的根本原则——针对流水线化的处理器优化——没有改变,而且还在遵循这种原则的基础上发展出RISC的一个并发化变种VLIW(包括Intel EPIC),就是将简短而长度统一的精简指令组合出超长指令,每次执行一条超长指令,等于并发执行多条短指令。

另一方面,目前最常见的复杂指令集x86 CPU,虽然指令集是CISC的,但因对常用的简单指令会以硬件线路控制尽全力加速,不常用的复杂指令则交由微码循序器“慢慢解码、慢慢跑”,因而有“RISCy x86”之称。

在早期的计算机业界,编译器技术并不发达,程序多半以机器语言或汇编语言完成。为了便于编写程序,计算机体系结构师设计出越来越复杂的指令,可以直接对应高级编程语言的高级功能。当时的看法是硬件比编译器更容易设计,所以结构的复杂性在硬件这端。

加速这种复杂化的另一因素是缺乏大容量的内存。在内存容量受限的应用中,具有极高消息密度的程序更加实用。当时内存中的每一字节都很宝贵,例如只有几千个字节来存储某个完整系统。它使产业界倾向于高度编码的指令、长度不等的指令、多操作数的指令,以及把数据的搬移与计算合并在一起的指令。在当时看来,相对于使指令更容易解码,指令的编码打包问题尤为重要。

还有一个因素是当时的内存不仅容量少,而且速度很慢,使用的都是磁性技术。凭借高密度打包的指令,访问慢速资源的频率可以降低。

微处理器只有少量寄存器的两个原因是:

基于上述原因,微处理器设计师尽可能使指令做更多的工作。这导致单个指令做全部的工作:读入两个加数,相加,并将计算结果直接写入内存;另一个例子是从内存读取两个数据,但计算结果存储在寄存器内;第三个例子是从内存和寄存器各读取一个数据,其结果再次写入内存;以此类推。这种微处理器设计原理,在精简指令集(RISC)的思路出现后,最终被人称为复杂指令集。

当时设计的一个通常目标是为每个指令都提供所有的寻址模式,称为“正交性”。这给微处理器增加了一些复杂性,但理论上每个可能的命令均可单独调整。相对于使用更简单的指令,这样做能够使设计速度更快。

这类设计最终可以由功率谱的两端来表述,6502在一端,VAX在功率谱的另一端。单价25美元的1MHz 6502芯片只有一个通用寄存器,但它非常精简的单周期内存访问接口允许一个字节宽度的操作,其效率和使用更高时钟频率的设计一致,例如主频4MHz的Zilog Z80使用相同慢速的记忆芯片(大约近似300ns)。另一方面,VAX则是一种小型机,它的每个CPU至少需要三个机架来放置。其显著特点是,它支持的内存访问模式数目多得惊人,并且每条指令都可以使用任一种模式。

1970年代后期,IBM(以及其它类似企业组织)的研究人员显示,大多数正交寻址模式基本上已被程序员所忽略。这是编译器的使用逐渐增多而汇编语言的使用相对减少所导致的。值得注意的是,由于编写编译器的难度很大,当时编译器并不能充分利用CISC处理器所提供的各种特性。尽管如此,广泛应用编译器的趋势已然很明显,从而使得正交寻址模式变得更加无用。

这些复杂操作很少被使用。事实上,相比用更精简的一系列指令来完成同一个任务,用单一复杂指令甚至会更慢。这看上去有些自相矛盾,却源自于微处理器设计者所花的时间和精力:设计者一般没有时间去调整每一条可能被用到的指令,通常他们只优化那些常用的指令。一个恶名昭著的例子是VAX的INDEX指令,执行它比执行一个循环还慢。

几乎就在同时,微处理器开始比内存运行得更快。即便是在七十年代末,人们也已经认识到这种不一致性至少会在下一个十年继续增加,到时微处理器将会比内存的速度快上百倍。很明显,需要有更多寄存器(以及后来的缓存)来支持更高频率的操作。为此,必须降低微处理器原本的复杂度,以节省出空间给新增的寄存器和缓存。

不过RISC也有它的缺点。当需要一系列指令用来完成非常简单的程序时,从存储器读入的指令总数会变多,因此也需要更多时间。在当时的工业和设计领域,对RISC的性能优劣有大量持续不断的争论。

精简指令集设计中常见的特征:


相关

  • Ω-3脂肪酸ω−3脂肪酸(Omega-3 fatty acids)又称n−3脂肪酸,是一类不饱和脂肪酸,其中最重要的3种为:ALA(存在于植物中的油),EPA和DHA(这二种发现存在于海洋动植物油中)。从脂肪酸分子中距离羧基
  • 法郎法郎(法语:Franc,简写:₣)是货币的一种。可以指以下货币:最早在1360年法国国王约翰二世铸造叫法郎的硬币,法国大革命后推行公制,1795年,法郎开始作为标准货币在法国流通,取代原有的里
  • 二甲基乙醇胺二甲基乙醇胺(Dimethylaminoethanol,dimethylethanolamine简称DMAE或DMEA),化学式C4H11NO,是一种有机化合物,常温下为无色至淡黄色的透明液体。二甲基乙醇胺被用作聚氨酯和环氧树
  • 伊马韦雷坐标:58°43′57″N 25°46′2″E / 58.73250°N 25.76722°E / 58.73250; 25.76722伊马韦雷(爱沙尼亚语:Imavere),是爱沙尼亚的城镇,位于该国中部,由耶尔瓦县负责管辖,是伊马韦雷乡
  • 春溪国家公园春溪国家公园(英语:Springbrook National Park)是澳洲东部的国家公园之一,位于昆士兰州首府布里斯本南方约78公里处,是澳洲的世界遗产“东海岸雨林保护区”的一部分。在1994年12
  • 达梅罗湖坐标:53°33′52″N 12°12′23″E / 53.56444°N 12.20639°E / 53.56444; 12.20639达梅罗湖(德语:Damerower See),是德国的湖泊,位于该国东北部,由梅克伦堡-前波美拉尼亚州负责管
  • 三井财阀三井财阀(日语假名:みついざいばつ),是日本三大财阀之一。其最初的企业为三井高俊创立的三井越后屋。目前包括银行、零售等多个产业。三井越后屋(即今日的三越)是由伊势国松阪市的
  • 娜塔莎·贝丁菲尔德娜塔莎·安妮·贝丁菲尔德 (英语:Natasha Anne Bedingfield,1981年11月26日-),是一名英国歌手及作词人。 在吉尼斯世界纪录大全中,娜塔莎与她的哥哥丹尼尔是英国榜历史上唯一一对兄弟姊妹能各自发展出唱片,并均获得第一名。类似地,他们各自在澳洲、美国、加拿大和欧洲都能取得头十名的成绩。娜塔莎在2004年为她个人第一张专辑“Unwritten”进行录音工作。这张专辑主要包括了节奏轻快的流行音乐歌曲和受到R&B音乐的影响。这张专辑在国际上取得成功,全球销售超过250万张。 在2007
  • 森尾由美森尾 由美(别名河合 由美)(1966年6月8日-),是日本女性声优及演员。埼玉县草加市出身。所属事务所为Stardust Promotion。
  • 马克·塔克薛拉马克·查尔斯·塔克薛拉(Mark Charles Teixeira,1980年4月11日-),生于马里兰州安那波利斯,大联盟登录名字为Mark Teixeira,中文绰号为铁爷,为美国籍球员。他是纽约洋基队的先发一垒手。2003年出道于德州游骑兵,2007年季中被交易至亚特兰大勇士,2008年季中再被交易到洛杉矶天使。2008年12月,他与纽约洋基签下八年一亿八千万美元的合约。塔克薛拉以优越的长打能力、及防守一垒的出色表现著称,生涯共获得5次美国职棒大联盟金手套奖及3次美国职棒大联盟银棒奖。塔克薛拉是在马