精简指令集

article/2025/10/11 4:28:39

精简指令集编辑risc(精简指令集)一般指精简指令集

本词条缺少 信息栏,补充相关内容使词条更完整,还能快速升级,赶紧来 编辑吧!
RISC的英文全称是Reduced Instruction Set Computer,中文是精简指令集计算机。特点是所有指令的格式都是一致的,所有指令的指令周期也是相同的,并且采用流水线技术。在中高档服务器中采用RISC指令的CPU主要有Compaq( 康柏,即新惠普)公司的Alpha、HP公司的PA-RISC、IBM公司的PowerPC、MIPS公司的MIPS和SUN公司的Sparc。

目录

1简介

2发展背景

  发展分歧
  提出原由

3优势

4特征

5结构特点

6发展前景

1简介编辑

精简指令集,是计算机中央处理器的一种设计模式,也被称为 RISC(Reduced Instruction Set Computer的缩写)。 [1] 这种设计思路对指令数目和 寻址方式都做了精简,使其实现更容易,指令 并行执行程度更好,编译器的效率更高。常用的精简指令集微处理器包括DECAlpha、ARC、ARM、AVR、MIPS、PA-RISC、PowerArchitecture(包括PowerPC)和SPARC等。这种设计思路最早的产生缘自于有人发现,尽管传统处理器设计了许多特性让代码编写更加便捷,但这些复杂特性需要几个 指令周期才能实现,并且常常不被运行程序所采用。此外,处理器和主内存之间运行速度的差别也变得越来越大。在这些因素促使下,出现了一系列新技术,使处理器的指令得以流水执行,同时降低处理器访问内存的次数。早期,这种指令集的特点是指令数目少,每条指令都采用标准 字长、执行时间短、 中央处理器的实现细节对于机器级程序是可见的。

2发展背景编辑

在早期的 计算机业中, 编译器技术尚未出现。程序是以 机器语言或汇编语言完成的。为了便于编写程序,计算机架构师造出越来越复杂的指令,可以高阶程序语言直接陈述高阶功能。当时的看法是硬件比 编译器更易设计,所以复杂的东西就加进硬件了。
加速复杂化的其它因素是缺乏大内存。内存小的环境中,具有极高讯息密度的程序较有利。当内存中的每一字节如此珍贵,例如储存某个完整系统只需几千字节,它使产业移向高度编码的指令、长度不等的指令、执行多个操作的指令,和执行数据传输与计算的指令。当时指令 封包问题远比易解的指令重要。
那时使用磁性技术,内存不仅小,而且很慢。这是维持极高讯息密度的其它原因。借着具有极高讯息密度 封包,当必须存取慢速资源时可以降低频率。
CPU只有少数缓存器的两个原因︰
CPU内部 缓存器远贵于外部内存。以当时的集成电路技术水准,大 缓存器集对芯片或电路板区域只是多余的浪费。
具有大数量的缓存器将需要大数量的指令位(使用珍贵的 RAM)以做为缓存器指定器。
基于上述原因,CPU设计师试着令指令尽可能做更多的工作。这导致一个指令将做全部的工作︰读入两个数字,相加,并且直接在内存储存计算结果。其它版本将从内存读取两个数字,但计算结果储存在 缓存器。另一个版本将从内存和 缓存器各读一个数字,并再次存入内存。以此类推。这种处理器设计原理最终成为 复杂指令集(CISC)。
当时的目标是给所有的指令提供所有的寻址模式,此称为「正交性」。这在 CPU 上导致了一些复杂性,但就理论上每个可能的命令都可以单独的调试(调用,be tuned),这样使得程序员能够比用简单的命令来得更快速。
这类的设计最终可以由光谱的两端来表达, 6502 在光谱的一端,而 VAX 在光谱的另一端。单价25美元的 1MHz 6502 芯片只有单一的通用 缓存器, 但它的极精简的单周期内存界面(single-cycle memory interface)让一个位的操作效能和更高频率设计几乎相同,例如 4MHz Zilog Z80 在使用相同慢速的记忆芯片下(大约近似 300ns)。

发展分歧

精简指令集 精简指令集
在 计算机指令系统的优化发展过程中,出现过两个截然不同的优化方向:CISC技术和RISC技术。CISC是指 复杂指令系统计算机(Complex Instruction Set Computer);RISC是指精减指令系统计算机(Reduced Instruction Set Computer)。这里的 计算机指令系统指的是计算机的最低层的 机器指令,也就是CPU能够直接识别的指令。随着 计算机系统的复杂,要求计算机指令系统的构造能使计算机的整体性能更快更稳定。最初,人们采用的优化方法是通过设置一些功能复杂的指令,把一些原来由软件实现的、常用的功能改用硬件的 指令系统实现,以此来提高计算机的执行速度,这种 计算机系统就被称为 复杂指令系统计算机,即Complex Instruction Set Computer,简称CISC。另一种优化方法是在20世纪80年代才发展起来的,其基本思想是尽量简化 计算机指令功能,只保留那些功能简单、能在一个节拍内执行完成的指令,而把较复杂的功能用一段子程序来实现,这种 计算机系统就被称为精简 指令系统计算机.即Reduced Instruction Set Computer,简称RISC。RISC技术的精华就是通过简化 计算机指令功能,使指令的平均执行周期减少,从而提高计算机的工作 主频,同时大量使用 通用寄存器来提高子程序执行的速度

提出原由

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

3优势编辑

RISC和CISC是设计制造 微处理器的两种典型技术,虽然它们都是试图
精简指令集 精简指令集
在 体系结构、操作运行、软件硬件、 编译时间和运行时间等诸多因素中做出某种平衡,以求达到高效的目的,但采用的方法不同,因此,在很多方面差异很大,它们主要有:
(1) 指令系统:RISC设计者把主要精力放在那些经常使用的指令上,尽量使它们具有简单高X色。对不常用的功能,常通过组合指令来完成。因此,在RISC机器上实现特殊功能时,效率可能较低。但可以利用流水技术和 超标量技术加以改进和弥补。而CISC计算机的 指令系统比较丰富,有专用指令来完成特定的功能。因此,处理特殊任务效率较高。
(2) 存储器操作:RISC对存储器操作有限制,使控制简单化;而CISC机器的存储器操作指令多,操作直接。
(3)程序:RISC 汇编语言程序一般需要较大的内存空间,实现特殊功能时程序复杂,不易设计;而CISC汇编语言程序编程相对简单,科学计算及复杂操作的程序设计相对容易,效率较高。
精简指令集 精简指令集
(4)中断:RISC机器在一条指令执行的适当地方可以响应中断,但是相比CISC指令执行的时间短,所以中断响应及时;而CISC机器是在一条指令执行结束后响应中断。
(5)CPU:RISCCPU包含有较少的单元电路,因而面积小、功耗低;而CISCCPU包含有丰富的电路单元,因而功能强、面积大、功耗大。
(6)设计周期:RISC 微处理器结构简单,布局紧凑,设计周期短,且易于采用最新技术;CISC微处理器结构复杂,设计周期长。
(7)用户使用:RISC微处理器结构简单,指令规整,性能容易把握,易学易用;CISC微处理器结构复杂,功能强大,实现特殊功能容易。
(8)应用范围:由于RISC 指令系统的确定与特定的应用领域有关,故RISC机器更适合于专用机;而CISC机器则更适合于通用机。

4特征编辑

32位精简指令集架构 32位精简指令集架构
统一指令编码(例如,所有指令中的op-code永远位于同样的位位置、等长指令),可快速解译︰
泛用的缓存器,所有缓存器可用于所有内容,以及编译器设计的单纯化(不过缓存器中区分了整数和浮点数);
单纯的寻址模式(复杂寻址模式以简单计算指令序列取代);
硬件中支持少数数据型别(例如,一些CISC计算机中存有处理字节字符串的指令。这在RISC计算机中不太可能出现)。
RISC设计上同时也有哈佛 内存模块特色,凡 指令流和数据流在概念上分开;这意味着更改代码存在的内存地址对处理器执行过的指令没有影响(因为CPU有着独立的指令和 数据缓存),至少在特殊的同步指令发出前。在另一面,这允许 指令缓存和数据缓存同时被访问,通常能改进运行效率。
许多早期的RISC设计同样共享着不好的副作用——转移延时槽,转移延时槽是指一个跳转或转移指令之后的指令空间。无论转移是否发生,空间中的指令将被执行(或者说是转移效果被延迟)。这些指令让CPU的算术和 逻辑单元(ALU)繁忙比通常执行转移所需更多的时间。现在转移延时槽被认为是实现特定RISC设计的副作用,现代的RISC设计通常避免了这个问题(如PowerPC,最近的SPARC版本,MIPS)。

5结构特点编辑

精简指令集 精简指令集
RISC是简化 指令集计算机的简略缩写,其风格是强调计算机结构的简单性和高效性。RISC设计是从足够的不可缺少的指令集开始的。它的速度比那些具有传统复杂指令组计算机结构的机器快得多,而且RISC机由于其较简洁的设计,较易使用,故具有更短的研制开发周期。RISC结构一般具有如下的一些特点:
①单周期的执行:它统一用单周期指令。从根本上克服了CISC 指令周期数有长有短,造成运行中偶发性不确定,致使运行失常的问题。
②采用高效的流水线操作:使指令在流水线中并行地操作,从而提高处理数据和指令的速度。
③无 微代码的硬连线控制:微代码的使用会增加复杂性和每条指令的执行周期。
④ 指令格式的规格化和简单化:为与 流水线结构相适应且提高流水线的效率,指令的格式必须趋于简单和固定的规式。比如指令采用16位或32位的固定的长度,并且指令中的 操作码字段、操作数字段都尽可能具有统一的格式。此外,尽量减少 寻址方式,从而使硬件逻辑部件简化且缩短 译码时间,同时也提高了机器执行效率和可靠性。
⑤采用面向 寄存器堆的指令:RISC结构采用大量的寄存器——寄存器操作指令,使 指令系统更为精简。控制部件更为简化,指令执行速度大大提高。由于VLSI技术的迅速发展,使得在一个芯片上做大量的寄存器成为可能。这也促成了RISC结构的实现。
⑥采用装入/存储指令结构:在CISC结构中。大量设置 存储器——存储器操作指令,频繁地访问内存,将会使执行速度降低。RISC结构的 指令系统中,只有装入/ 存储指令可以访问内存,而其它指令均在 寄存器之间对数据进行处理。用装入指令从内存中将数据取出,送到 寄存器;在寄存器之间对数据进行快速处理,并将它暂存在那里,以便再有需要时。不必再次访问内存。在适当的时候,使用一条 存储指令再将这个数据送回内存。采用这种方法可以提高指令执行的速度。
⑦注重编译的优化,力求有效地支撑高级语言程序。
通常使用的 单片机中,MCS一51系列的单片机属于CISC的体系结构;AVR系列的单片机则属于RISC的体系结构。

6发展前景编辑

鉴于RISC的设计特点以及其无可比拟的优点,RISC体系结构处理器的发展方向:
扩展指令集 扩展指令集
是增加处理器的 并行性;
二是扩展支持可伸缩并行计算机系统的功能;
三是提高工艺水平。最终RISC与DSP在 嵌入式应用中完美融合,密不可分。
RISC 微处理器不仅精简了 指令系统,采用 超标量和超流水线结构;它们的指令数目只有几十条,却大大增强了 并行处理能力。如:1987年SunMicrosystem公司推出的SPARC芯片就是一种 超标量结构的RISC处理器。而SGI公司推出的MIPS处理器则采用超流水线结构,这些RISC处理器在构建并行精简 指令系统 多处理机中起着核心的作用。RISC处理器是当今UNIX领域64位 多处理机的主流芯片。
性能特点
性能特点一:由于指令集简化后,流水线以及常用指令均可用硬件执行;
性能特点二:采用大量的 寄存器,使大部分指令操作都在寄存器之间进行,提高了处理速度;
性能特点三:采用 缓存— 主机—外存三级 存储结构,使取数与存数指令分开执行,使处理器可以完成尽可能多的工作,且不因从 存储器存取信息而放慢处理速度。
应用特点
由于RISC 处理器指令简单、采用硬布线控制逻辑、处理能力强、速度快,世界上绝大部分UNIX 工作站和服务器厂商均采用RISC芯片作CPU用。如原DEC的Alpha21364、IBM的PowerPCG4、HP的PA—8900、SGI的R12000A和SUNMicrosystem公司的UltraSPARC║。
运行特点
RISC芯片的工作频率一般在400MHZ数量级。 时钟频率低,功率消耗少,温升也少,机器不易发生故障和老化,提高了系统的可靠性。单一 指令周期容纳多部并行操作。在RISC 微处理器发展过程中。曾产生了超长 指令字(VLIW) 微处理器,它使用非常长的指令组合,把许多条指令连在一起,以能 并行执行。VLIW处理器的基本模型是标量代码的执行模型,使每个 机器周期内有多个操作。有些RISC处理器中也采用少数VLIW指令来提高处理速度。
词条图册 更多图册

词条图片(7张)


http://chatgpt.dhexx.cn/article/8O9yva8E.shtml

相关文章

Centos7 连接wifi (PEAP)

1 注意连接的wifi 2 安全中的设置,按照下图 3 有问题,记得reboot重启一下!

802.1x EAP(证书)、PEAP(证书、EAP-MSCHAP v2)认证配置(NPS、组策略)

802.1x EAP(证书) NPS 组策略 PEAP(证书、EAP-MSCHAP v2) NPS 组策略按需配置,下图是PEAP证书

Android Wifi连接 (PEAP)

Wifi PEAP方式的连接与Android的版本有很大关系,三个大的差别对应的版本分别是4.3以下,4.3到6.0之间,以及6.0以上,现在就基于版本分析。 如果要连接wifi,那么得创建WifiConfiguration 版本4.3以下,需要采…

AP与mAP的详解

AP和mAP是图像分类任务中的评价方法。 mAP的计算方法: 1、首先使用训练好的模型获得所有测试样本的confideutnce score,每个类别(如person、car等)都会获得一组confidence score,假设现在共有20个测试样本&#xff0…

AP,mAP

AP(Average Precision) AP (Average precision)是主流的目标检测模型的评价指标。 定义:平均精度,就是对PR曲线上的Precision值求均值,即PR曲线下的面积。 由于IoU有三种计算方式,对应地,AP也…

RADIUS 服务器之 hostapd 配置说明

RADIUS 服务器之 hostapd 配置说明 本文提供了企业级加密的 RADIUS 服务器配置环境搭建,供读者参考。 一. 安装 hostapd $ sudo apt-get install libnl1 libnl-dev libnl-doc $ sudo apt-get install libssl-dev $ sudo apt-get install bridge-utils $ sudo ap…

EAP-TLS/EAP-TTLS/EAP-PEAP

原文:http://blog.chinaunix.net/uid-26422163-id-3457357.html IEEE的802.1X使用了EAP认证框架,因为EAP提供了可扩展的认证方法,但是这些认证方法的安全性完全取决于具体的认证方法,比如EAP-MD5、EAP-LEAP、EAP-GTC等&#xff0c…

peaks

文章目录 语法说明示例 peaks:包含两个变量的示例函数 语法 Z peaks; Z peaks(n); Z peaks(V); Z peaks(X,Y); peaks(...) [X,Y,Z] peaks(...);说明 peaks 是从高斯分布转换和缩放得来的包含两个变量的函数,在演示 mesh、surf、pcolor、contour 等函数中很有…

Radius协议、EAP协议、EAP-MSCHAPv2、EAP-TLS、EAP-TTLS和EAP-PEAP

1. Radius协议 Radius协议是目前AAA服务中所使用的最广泛的协议,它对认证,授权以及计费的功能都提供支持。Radius服务器通过建立一个唯一的用户数据库,存储用户名,用户密码等一系列信息,接入用户通过发送自己的用户名…

使用 freeradius 搭建 EAP PEAP MS-CHAPv2 验证环境

企业级 Wi-Fi 搭建起来有点小复杂,我们知道自己家使用的 Wi-Fi 非常简单,几乎只需要配置一下热点的 SSID 和密码就可以了,实际上这是两种 Wi-Fi 认证类型。想要快速部署企业级 Wi-Fi 验证环境,首先要理解企业级 Wi-Fi 部署的一些核…

IEEE 802.1X-PEAP认证过程分析(抓包)

IEEE 802.1X-PEAP认证过程分析(抓包) 本文介绍IEEE802.1X认证的PEAP认证方式,是带有radius服务器的EAP中继认证。 IEEE802.1X认证是使用EAP报文格式在申请者和认证者之间交换信息。带有radius服务器,即认证者不对申请者发送的数据…

PEP是什么

转载 :https://www.cnblogs.com/abella/p/10056875.html PEP是什么? PEP的全称是Python Enhancement Proposals,其中Enhancement是增强改进的意思,Proposals则可译为提案或建议书,所以合起来,比较常见的翻…

企业级无线渗透之PEAP

0x00 前言 上月,受邀在C-SEC上海快递行业安全会议上做了关于无线安全威胁的议题分享。介绍了家庭级的无线网络薄弱环节及攻击方法,同时列举了乌云上因无线边界被突破,造成内网沦陷的诸多例子。后半部分,简要的介绍了企业级无线网络…

深度讲解linux中fputc()函数

字符写入fputc函数 int fputc(int char, FILE *stream) 返回值 如果没有发生错误,则返回被写入的字符。如果发生错误,则返回 EOF,并设置错误标识符。 ch 为要写入的字符,fp 为文件指针。fputc() 写入成功时返回写入的字符&…

文件操作之函数fputc(),fgetc()

目录 引言 一、fputc()与putchar()的联系 二、fgetc()与getchar()的联系 总结 引言 引用自《C程序设计-清华大学出版社 (2017)》 一、fputc()与putchar()的联系 fputc(ch,fp)是将ch输出到fp所指的文件里面putchar(ch)是将ch输出到屏幕 FILE*fpfopen("text.txt",…

文件操作:fgetc与fputc函数的使用

在成功打开文件后,我们便可以对文件进行操作,以下是字符输入函数fgetc和字符输出函数fputc的简单使用说明。 如果还不知道如何打开文件的可以看看我的另一篇文章。 点我 fputc函数的使用 当我们以读的形式打开文件的时候,便可以使用fputc函数…

c语言中fputc函数的作用是,C语言中fputc函数的用法_后端开发

Python画ROC曲线和AUC值计算(附代码)_后端开发 ROC(Receiver Operating Characteristic)曲线和AUC常被用来评价一个二值分类器的优劣。这篇文章将先简单的介绍ROC和AUC,而后用实例演示如何python作出ROC曲线图以及计算AUC。 C语言中fputc函数的用法 C语言中fputc函数…

C语言文件操作入门:fopen、fclose、fputc、fgetc、fputs、fgets、fprintf、fscanf、fwrite、fread详解

本篇文章主要讲解4组函数: 字符读写:fputc和fgetc。文本行读写:fputs和fgets。格式化读写:fprintf和fscanf。二进制读写:fwrite和fread。 预备知识:fopen和fclose 如果我们要读写一个文件,就必…

linux fputc fgetc fseek rewind 函数

目录 前言fputc 函数fgetc 函数fseek函数rewind函数 前言 <sprintf fprintf 函数 > 前一节讲了 sprintf fprintf 函数 的缓存问题 在他们的基础上加了一个while&#xff08;1&#xff09;&#xff1b; 来验证 结果都是输出的 不管怎么样 都会写入到内核态 内核态在输出…

c语言中fputc函数的作用是,C语言中fputc函数的用法

C语言中fputc函数的用法 C语言中fputc函数的用法为“int fgetc (FILE *fp)”&#xff0c;该函数的作用是从指定的文件中读取一个字符&#xff0c; 读取成功时会返回读取到的字符&#xff0c;读取到文件末尾或读取失败时返回EOF。推荐教程&#xff1a;《C语言》 示例代码#includ…