【计算机组成原理】CISC和RISC

目录

  • 前言
  • 1. CISC(复杂指令集计算)
  • 2. RISC(精简指令集计算)
  • 3. 差异

前言

对于这方面的知识常见于408或者软考

CISC(Complex Instruction Set Computing)和RISC(Reduced Instruction Set Computing)是两种不同的指令集架构,它们在处理器设计中扮演着重要角色

1. CISC(复杂指令集计算)

CISC 架构设计的核心思想是在一条指令中完成尽可能多的工作,代表一条指令可以执行多个低级操作,包括内存访问、算术运算、逻辑操作等

特点:

  • 指令集复杂,包含大量的指令,有些指令长度甚至超过一个字节
  • 指令的执行时间不固定,可能因为指令的复杂性而变化
  • CISC 处理器通常具有多种寻址模式,可以更灵活地访问内存
  • 具有大型指令集,能够处理高级语言的复杂结构,如条件语句和循环

优点:

  • 适合处理复杂的高级语言代码,减少了编译器的负担
  • 单条指令完成多个操作,有时可以提高程序的执行效率

缺点:

  • 指令集过于复杂,导致处理器设计和实现难度增加
  • 复杂的指令集可能导致较低的指令执行效率
  • 更复杂的硬件结构可能会增加功耗和成本

2. RISC(精简指令集计算)

RISC 架构设计的核心思想是简化指令集,每条指令执行的操作尽量少,甚至是单一的操作

特点:

  • 指令集简单,指令长度通常是固定的
  • 每条指令的执行时间基本相同,通常是一个时钟周期
  • RISC 处理器通常具有固定的寻址模式,简化了指令的解码和执行过程
  • 由于指令集简单,RISC 处理器的控制逻辑通常更简单,可以更高效地实现

优点:

  • 指令执行速度更快,因为每条指令的执行时间更加可预测和稳定
  • 更简单的指令集架构使得处理器的设计和实现更加容易
  • 更少的指令意味着更少的芯片面积和更低的功耗

缺点:

  • 需要更多的指令来完成复杂的操作,可能导致程序体积增加
  • 对于一些特定的应用,可能需要更多的指令才能完成相同的任务,导致性能下降

3. 差异

分析复杂度:

指令集复杂度指令执行效率硬件复杂度适用场景
CISC 拥有较为复杂的指令集,可以执行更多的操作

RISC 则采用精简的指令集,每条指令执行的操作较少
由于指令长度固定且执行时间相对稳定,RISC 处理器的指令执行效率通常高于 CISC 处理器CISC 处理器的硬件结构通常更加复杂,因为需要支持复杂的指令集

RISC 处理器的硬件结构通常更简单,指令执行的逻辑更清晰
CISC 处理器适合处理复杂的高级语言代码

RISC 处理器在对性能要求更高、功耗更低的场景下更为适用

分析差异:

指令系统类型指令寻址方式实现方式其它
CISC(复杂)数量多,使用频率差别大,可变长格式支持多种微程序控制技术(微码)颜值周期长
RISC(精简)数量少,使用频率接近,订场格式,大部分为单周期指令,操作寄存器,只有Load/Store操作内存支持方式少增加通用寄存器,硬布线逻辑控制为主,适合采用流水线优化编译,有效支持高级语言

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

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

相关文章

【arduino】控制N位数码管

以下以四位共阳极数码管为例; 本文所有说明均以注释的方式进行。 使用方法: #include "DigitalTube.h" //每位共阳极对应的引脚int digital[4] {8, 11, 12, 7};//参数分别为a f b g e c d dp digital(共阳极引脚数组) length(digital长度)D…

LRUCache原理及源码实现

目录 LRUCache简介: LRUCache的实现: LinkedHashMap方法实现: 自己实现链表: 前言: 有需要本文章源码的友友请前往:LRUCache源码 LRUCache简介: LRU是Least Recently Used的缩写&#xf…

ChatGPT-4 Turbo 今天开放啦!附如何查询GPT-4 是否为 Turbo

2024年4月12日,OpenAI在X上宣布GPT-4 Turbo开放了!提高了写作、数学、逻辑推理和编码方面的能力。另外最重要的是,响应速度更快了!! ChatGPT4 Turbo 如何升级?解决国内无法升级GPT4 Turbo的问题&#xff0…

设计模式-代理模式(Proxy)

1. 概念 代理模式(Proxy Pattern)是程序设计中的一种结构型设计模式。它为一个对象提供一个代理对象,并由代理对象控制对该对象的访问。 2. 原理结构图 抽象角色(Subject):这是一个接口或抽象类&#xff0…

ros2 launch gazebo_ros gazebo.launch.py无法启动

我的系统是ubuntu20.04,ros2的版本是humble,当运行gazebo仿真时,运行 ros2 launch gazebo_ros gazebo.launch.py命令,会出现以下问题: 此时,这个页面会卡死在第六行,gazebo也不会打开 但最后单…

Element Plus的deep穿透

Element Plus的deep穿透主要用于解决在Vue3项目中使用Element Plus组件库时,样式设置不生效的问题。当直接在Element Plus组件上使用样式时,由于Element Plus的样式是通过外部样式文件实现的,这些样式的优先级更高,因此直接添加的…

009优化器

优化器的逻辑 优化器选择索引的目的是选择一个执行方案,用最小的代价去执行语句。 数据库里影响执行代价的因素。 1)扫描行数 ,扫描的行数越少,意味着访问磁盘的数据的次数越小,消耗cpu的资源越少 2)是…

threejs--02threejs手册起步+进阶

快速过一下基本用法 01 场景 //场景、相机和渲染器 const scene new THREE.Scene(); const camera new THREE.PerspectiveCamera( 75, window.innerWidth / window.innerHeight, 0.1, 1000 );const renderer new THREE.WebGLRenderer(); renderer.setSize( window.innerWi…

哈希函数算法

概述 为了实现哈希集合这一数据结构,有以下几个关键问题需要解决: 哈希函数:能够将集合中任意可能的元素映射到一个固定范围的整数值,并将该元素存储到整数值对应的地址上。冲突处理:由于不同元素可能映射到相同的整…

【vue】Pinia-1 入门

简介 Pinia是Vue.js的一个状态管理库,由Vue.js官方维护。它提供了一种简单而强大的方式来管理Vue.js应用程序中的状态。 应用场景:用户登录 解决问题 Pinia是全局的状态管理,所有组件都可看到 避免了组件间的大量数据交换简化了组件间的通…

C语言中局部变量和全局变量是否可以重名?为什么?

可以重名 在C语言中, 局部变量指的是定义在函数内的变量, 全局变量指的是定义在函数外的变量 他们在程序中的使用方法是不同的, 当重名时, 局部变量在其所在的作用域内具有更高的优先级, 会覆盖或者说隐藏同名的全局变量 具体来说: 局部变量的生命周期只在函数内部,如果出了…

【C++类和对象】构造函数与析构函数

💞💞 前言 hello hello~ ,这里是大耳朵土土垚~💖💖 ,欢迎大家点赞🥳🥳关注💥💥收藏🌹🌹🌹 💥个人主页&#x…

Stacked Hourglass Networks for Human Pose Estimation 用于人体姿态估计的堆叠沙漏网络

Stacked Hourglass Networks for Human Pose Estimation 用于人体姿态估计的堆叠沙漏网络 这是一篇关于人体姿态估计的研究论文,标题为“Stacked Hourglass Networks for Human Pose Estimation”,作者是 Alejandro Newell, Kaiyu Yang, 和 Jia Deng&a…

多模态 ——LLaVA 集成先进图像理解与自然语言交互GPT-4的大模型

概述 提出了一种大型模型 LLaVA,它使用 GPT-4 生成多模态语言图像指令跟随数据,并利用该数据将视觉和语言理解融为一体。初步实验表明,LLaVA 展示了出色的多模态聊天能力,在合成多模态指令上的表现优于 GPT-4。 在科学质量保证中…

如何减少延迟队列的压力

1、增加消费者数量: 通过增加消费者(即处理消息的工作进程)的数量,可以提高消息的处理速度,从而减轻队列的压力。这可以 通过水平扩展来实现,即部署更多的消费者实例来并行处理消息。 2、优化消费者性能&…

第1章、react基础知识;

一、react学习前期准备; 1、基本概念; 前期的知识准备: 1.javascript、html、css; 2.构建工具:Webpack:https://yunp.top/init/p/v/1 3.安装node:npm:https://yunp.top/init/p/v/1 …

Python 基于 OpenCV 视觉图像处理实战 之 OpenCV 简单视频处理实战案例 之三 简单动态聚光灯效果

Python 基于 OpenCV 视觉图像处理实战 之 OpenCV 简单视频处理实战案例 之三 简单动态聚光灯效果 目录 Python 基于 OpenCV 视觉图像处理实战 之 OpenCV 简单视频处理实战案例 之三 简单动态聚光灯效果 一、简单介绍 二、简单动态聚光灯效果实现原理 三、简单动态聚光灯效果…

Mysql视图与事物与字符集实验

一 视图 1.视图的定义 视图是一个虚拟表,其内容由查询定义。 2.视图的优点 1)视点集中 2)简化操作 3)定制数据 4)分隔合并数据 5)安全性好 3.语法格式及限定条件 1)语法格式&#xff1…

详细讲解 C 语言标准库中的 strncmp 函数

strncmp 是 C 语言标准库提供的一个函数,用于比较两个字符串的前若干个字符是否相等。以下是关于 strncmp 函数的详细说明: 函数原型 int strncmp(const char *str1, const char *str2, size_t num); 参数说明 const char *str1: 指向第一个要比较的字…

轻量化模块整理,即插即用

轻量化模块整理,即插即用(持续更新) 整理一些轻量化的结构,作为知识储备,可以用到后续的项目和研究中 Mobilenetv3 深度可分离卷积 MobileNetV3 是一个轻量级的深度学习模型,专为移动和边缘设备上的高效…