CISC和RISC的区别

CISC是什么

   CISC是一种指令集设计方式,全程叫复杂指令集,这种指令设计模式包含大量的复杂指令和复杂的寻址方式,

以下是CISC架构的一些主要特点:

  1. 丰富的指令集:CISC处理器通常包含大量的指令,这些指令覆盖了广泛的操作,包括算术运算、逻辑运算、数据传输、控制流等。

  2. 复杂的寻址模式:CISC架构支持多种寻址模式,如直接寻址、间接寻址、基址寻址、索引寻址、相对寻址等,这使得程序能够以更紧凑的形式编写,但也增加了硬件的复杂性。

  3. 指令流水线:为了提高性能,CISC处理器通常采用指令流水线技术,将指令的执行分解为多个阶段,如取指、译码、执行、访存和写回等。

  4. 微码控制:CISC处理器的指令执行通常由微码控制,每条指令的执行都需要一系列的微指令序列。

  5. 硬件复杂性:由于指令集的复杂性,CISC处理器的硬件设计相对复杂,需要更多的晶体管和更大的芯片面积。

  6. 编译器优化:CISC架构的编译器需要能够理解和优化大量的指令和寻址模式,这增加了编译器的复杂性。

  7. 向后兼容性:CISC架构的处理器通常需要保持向后兼容性,这意味着新的处理器需要支持旧的指令集,这限制了架构的进化

CISC架构的代表处理器包括早期的x86处理器,如Intel的80286、80386等

RISC是什么

与CISC相应,这种指令集出现以后,很多人发现,里面的指令其实不需要那么多,大概只有百分之20的指令是会在日常生活中被使用到,因此,为了轻量化CISC,就产生了RISC,这种指令集被称为精简指令集,里面含有的更多是常用到的指令,大大减少了成本,并且提高了效率,但是也会造成部分功能缺少,RISC(精简指令集计算机)架构的主要特点如下:
1. 简化的指令集:RISC架构选取使用频度较高的一些简单指令以及一些很有用但又不复杂的指令,让复杂指令的功能由频度高的简单指令的组合来实现
2. 指令长度固定,指令格式种类少:RISC架构的指令长度固定,指令格式种类少,寻址方式种类少,这简化了指令解码和执行过程
3. 寄存器操作:只有取数/存数指令访问存储器,其余指令的操作都在寄存器内完成,这减少了对内存的访问频率,从而提高性能
4. 多个通用寄存器:RISC架构中CPU有多个通用寄存器,这有助于减少内存访问次数,提高数据处理效率
5. 流水线技术:RISC架构采用流水线技术,大部分指令在一个时钟周期内完成。采用超标量和超流水线技术,可使每条指令的平均执行时间小于一个时钟周期
6. 组合逻辑控制:控制器采用组合逻辑控制,不用微程序控制,这简化了控制逻辑,提高了执行速度
7. 高效率:由于指令集简单且执行时间固定,RISC处理器可以实现高效的指令流水线,提高指令执行速度。
8. 低功耗:RISC架构简化了处理器的设计,减少了功耗,因此广泛应用于移动设备和嵌入式系统中。
这些特点使得RISC架构在现代计算机系统中,尤其是在需要高效率和低功耗的应用场景中,如移动设备、嵌入式系统等领域,得到了广泛的应用。

CISC和RISC的区别及应用场景

CISC的应用场景:
  1. 高性能计算:需要处理复杂计算和大量数据操作的场景,如服务器和高性能工作站。
  2. 向后兼容性要求高:需要运行大量遗留软件的系统,如某些企业级应用。
  3. 高级语言编译:CISC架构适合编译高级语言,因为其复杂的指令集可以映射高级语言的复杂操作。
  4. 特定领域的应用:如图形处理和信号处理,这些领域可能需要特定的复杂指令来加速计算。
RISC的应用场景:
  1. 移动设备:智能手机、平板电脑等,因为RISC架构的处理器通常具有较低的功耗和较高的性能/功耗比。
  2. 嵌入式系统:需要低功耗和高效率的嵌入式设备,如智能家居、汽车电子等。

总的来说,CISC和RISC各有优势,选择哪种架构取决于特定应用的性能需求、功耗限制和成本考量。随着技术的发展,现代处理器设计中CISC和RISC的界限越来越模糊,许多现代处理器融合了两者的特点,以适应不同的性能和效率需求。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/62402.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

20 设计模式之职责链模式(问题处理案例)

一、什么是职责链模式 职责链模式是一种行为型设计模式,它允许将请求沿着处理者的链进行传递,直到有一个处理者能够处理它为止。换句话说,它将请求的发送者和接收者解耦,使得多个对象都有机会处理这个请求,从而避免了将…

linux基于systemd自启守护进程 systemctl自定义服务傻瓜式教程

系统服务 书接上文: linux自启任务详解 演示系统:ubuntu 20.04 开发部署项目的时候常常有这样的场景: 业务功能以后台服务的形式提供,部署完成后可以随着系统的重启而自动启动;服务异常挂掉后可以再次拉起 这个功能在ubuntu系统中通常由systemd提供 如果仅仅需要达成上述的场…

ros项目dual_arm_pick-place(moveit和gazebo联合仿真)(一)

目录 前言正文创建功能包具体代码运行 总结 前言 dual_arm_pick-place项目中,实现了两套的moveit和gazebo联合仿真。 启动文件分别是bringup_moveit.launch和arm_bringup_moveit.launch。 在这个项目中,我将代码重新创建了一个包,co_simula…

MySQL 索引(B+树)详解

MySQL 索引(B树)详解 MySQL逻辑架构对比InnoDB与MyISAM存储结构存储空间可移植性、备份及恢复事务支持AUTO_INCREMENT表锁差异全文索引表主键表的具体行数CRUD操作外键 sql优化简介什么情况下进行sql优化sql语句执行过程sql优化就是优化索引 索引索引的优…

MySQL生产环境备份脚本

全量备份脚本,其中BakDir,ZlbakDir,LogFile需要自己创建 #!/bin/bash export LANGen_US.UTF-8# 指定备份目录 BakDir/root/beifen/data/mysqlbak/data/allbak # 指定增量备份目录 ZlbakDir/root/beifen/data/mysqlbak/data/zlbak # 备份日志…

HTTP multipart/form-data 请求

序言 最近在写项目的过程中有一个需求是利用 HTTP 协议传输图片和视频,经过查询方法相应的方法发现使用 multipart/form-data 的方式,这是最常见处理二进制文件的表单编码类型。  学习了一下午,现在总结一下使用的方法和相关的知识点&#x…

Linux下redis环境的搭建

1.redis的下载 redis官网下载redis的linux压缩包,官网地址:Redis下载 网盘链接: 通过网盘分享的文件:redis-5.0.4.tar.gz 链接: https://pan.baidu.com/s/1cz3ifYrDcHWZXmT1fNzBrQ?pwdehgj 提取码: ehgj 2.redis安装与配置 将包上传到 /…

如何使用靜態IP代理?【詳細教程】

靜態IP地址是手動分配給設備或伺服器的固定不變的 IP。與動態 IP 地址不同,動態 IP 地址由 DHCP 伺服器自動分配,並且會隨時間而變化。​​​​​​​ 如何獲取和設置靜態IP地址 一、檢查是否需要靜態IP? 在配置靜態 IP 之前,請…

监控组态软件的构成与功能

监控组态软件的构成包括系统开发环境、图形界面系统、实时数据库系统等。其功能包括数据采集与控制、人机交互界面、数据处理与存储等。 监控组态软件的构成: 系统开发环境:这是自动化工程设计工程师为实施其控制方案,在组态软件的支持下进行…

Java 基础之 XQuery:强大的 XML 查询语言

一、什么是 XQuery XQuery 是一种函数式语言,专门用于检索以 XML 格式存储的信息。它负责从 XML 文档中查找和提取元素及属性,在网络服务中有着广泛的应用,比如提取信息、生成摘要报告、进行数据转换等。 XQuery 是 W3C 设计的一种针对于 X…

day09性能测试(1)——纯理论

document.querySelector(video).playbackRate 2.5 //可以写任何数字 【没有所谓的运气🍬,只有绝对的努力✊】 目录 1、性能测试概念 2、功能测试 vs 性能测试 3、小结(习题) 4、性能测试的策略 4.1 基准测试 4.2 负载测试 …

docker-3.docker权限问题

docker权限,每次开机都要重新sudo 目录 1.简介2.解决办法1:当前用户添加到docker用户组(这个方法还是缺权限??)3.解决办法2:临时更改Docker socket文件权限1.简介 Ubuntu下Docker提示permission denied (权限不足)解决办法 安装docker后,执行docker ps命令时提示 perm…

easyExcel实现表头批注

背景&#xff1a; 网上大部分都不能直接使用&#xff0c;为此总结一个方便入手且可用的工具&#xff0c;用自定义注解实现 依赖包&#xff1a; <dependency><groupId>com.alibaba</groupId><artifactId>easyexcel</artifactId><version>…

内部类和Object类

匿名对象 格式&#xff1a; 匿名对象只可以调用一次成员 &#xff1a; 1. 调用一次成员变量 &#xff1a; new 类名(实参).成员变量名&#xff1b; 2.调用一次成员方法&#xff1a; new 类名(实参).成员方法名(实参)&#xff1b; 匿名对象存在的必要&#xff1a;为了提高…

Python的3D可视化库vedo 1-3 (visual模块)网格对象的线和面、图片的属性

文章目录 4 MeshVisual4.1 线条4.1.1 线宽和颜色4.1.2 线条渲染为管 4.2 曲面4.2.1 物体展示为实心或框架4.2.2 曲面插值4.2.3 面的剔除 4.3 纹理4.4 相机跟随 5 ImageVisual5.1 图片属性5.1.1 占用内存大小5.1.2 颜色标量范围 5.2 渲染属性5.2.1 透明度5.2.2 亮度5.2.3 对比度…

19 设计模式之享元模式(电影院座位预定案例)

一、享元模式的定义 享元模式是一种结构型设计模式&#xff0c;它通过共享对象来支持大量细粒度的对象&#xff0c;减少内存消耗。享元模式的核心思想是&#xff1a;将对象分为共享部分和非共享部分&#xff0c;只有共享部分是被多个对象共享的&#xff0c;而非共享部分则是每个…

使用redis 的stream 做消息中间件 多线程消费消息

1.redis stream 特点 1.支持消息持久化 2.消费者组模式 3.消息确认机制 4. 消息重试机制 5. 死信队列2. 消息生产者服务 2.1 如下代码Service Slf4j public class StreamMessageProducer {Autowiredprivate StringRedisTemplate redisTemplate;private static final String S…

Python100道练习题

Python100道练习题 BIlibili 1、两数之和 num1 20 num2 22result num1 num2print(result)2、一百以内的偶数 list1 []for i in range(1,100):if i % 2 0:list1.append(i) print(list1)3、一百以内的奇数 # 方法一 list1 [] for i in range(1,100):if i % 2 ! 0:lis…

Java转C之并发和多线程

提纲&#xff1a; 概念介绍与对比概述 简述Java与C在并发和多线程方面的核心区别解释C11标准、POSIX、C11 <threads.h>、Pthread等名词 Java多线程与并发回顾 线程、Runnable、ExecutorService概念说明同步关键字与工具类含义 C并发基础 没有Java式的内置线程类&#xf…

Ubuntu系统本地化搭建Maxakb+Ollama

安装docker 最详细的ubuntu 安装 docker教程-腾讯云开发者社区-腾讯云 安装Ollama Ollama官网 执行命令&#xff1a; curl -fsSL https://ollama.com/install.sh | sh安装完成后下载模型 执行命令&#xff1a; ollama run llama3.3:70b安装MaxKb 执行命令&#xff1a; d…