CISC和RISC的区别
CISC是什么
CISC是一种指令集设计方式,全程叫复杂指令集,这种指令设计模式包含大量的复杂指令和复杂的寻址方式,
以下是CISC架构的一些主要特点:
-
丰富的指令集:CISC处理器通常包含大量的指令,这些指令覆盖了广泛的操作,包括算术运算、逻辑运算、数据传输、控制流等。
-
复杂的寻址模式:CISC架构支持多种寻址模式,如直接寻址、间接寻址、基址寻址、索引寻址、相对寻址等,这使得程序能够以更紧凑的形式编写,但也增加了硬件的复杂性。
-
指令流水线:为了提高性能,CISC处理器通常采用指令流水线技术,将指令的执行分解为多个阶段,如取指、译码、执行、访存和写回等。
-
微码控制:CISC处理器的指令执行通常由微码控制,每条指令的执行都需要一系列的微指令序列。
-
硬件复杂性:由于指令集的复杂性,CISC处理器的硬件设计相对复杂,需要更多的晶体管和更大的芯片面积。
-
编译器优化:CISC架构的编译器需要能够理解和优化大量的指令和寻址模式,这增加了编译器的复杂性。
-
向后兼容性: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的应用场景:
- 高性能计算:需要处理复杂计算和大量数据操作的场景,如服务器和高性能工作站。
- 向后兼容性要求高:需要运行大量遗留软件的系统,如某些企业级应用。
- 高级语言编译:CISC架构适合编译高级语言,因为其复杂的指令集可以映射高级语言的复杂操作。
- 特定领域的应用:如图形处理和信号处理,这些领域可能需要特定的复杂指令来加速计算。
RISC的应用场景:
- 移动设备:智能手机、平板电脑等,因为RISC架构的处理器通常具有较低的功耗和较高的性能/功耗比。
- 嵌入式系统:需要低功耗和高效率的嵌入式设备,如智能家居、汽车电子等。
总的来说,CISC和RISC各有优势,选择哪种架构取决于特定应用的性能需求、功耗限制和成本考量。随着技术的发展,现代处理器设计中CISC和RISC的界限越来越模糊,许多现代处理器融合了两者的特点,以适应不同的性能和效率需求。
相关文章:
CISC和RISC的区别
CISC是什么 CISC是一种指令集设计方式,全程叫复杂指令集,这种指令设计模式包含大量的复杂指令和复杂的寻址方式, 以下是CISC架构的一些主要特点: 丰富的指令集:CISC处理器通常包含大量的指令,这些指令覆盖…...
学生信息管理系统(简化版)后端接口
目录 allAPI __init__.py是空文件,目的让python知道这个文件夹是个包 ClassInfo.py from fastapi import APIRouter, Depends, HTTPException from sqlalchemy.orm import Session from API.database import get_db, Base from sqlalchemy import Column, String,…...
一、开启 GD32 单片机的学习之门
文章目录 一、开启GD32单片机的学习之门二、筑牢根基:GD32单片机基础知识全解析(一)单片机概述 三、开发环境搭建(一)软件下载与安装(二)安装GD32F450设备支持包(三)编译…...
计算生成报价单小程序系统开发方案
计算生成报价单小程序报价系统,是根据商品品牌、类型、型号、规格、芯数、特性、颜色、分类进行选择不同的参数进行生成报价单,要求报价单支持生成图片、pdf、excel表格。 计算生成报价单小程序系统的主要功能模块有: 1、在线生成报价单&…...
高效整合聚水潭库存数据至MySQL的实现
聚水潭数据集成到MySQL:商品库存查询案例分享 在本次技术案例中,我们将详细探讨如何通过轻易云数据集成平台,将聚水潭的商品库存数据高效、可靠地集成到MySQL数据库中。具体方案为“聚水潭-商品库存查询-->BI彩度-商品库存表”࿰…...
深入理解 JVM 的栈帧结构
🧑 博主简介:CSDN博客专家,历代文学网(PC端可以访问:https://literature.sinhy.com/#/literature?__c1000,移动端可微信小程序搜索“历代文学”)总架构师,15年工作经验,…...
爬虫基础之HTTP基本原理
URL和URI 我们先了解一下 URI和 URL。URI的全称为 Uniform Resource ldentifer,即统一资源标志符;URL的全称为 Universal Resource Locator,即统一资源定位符。它们是什么意思呢?举例来说,https:/github.com/favicon.ico 既是一个 URI,也是…...
PyQt5:一个逗号引发的闪退血案
【日常小计】 在开发PyQt5程序时,调用了一个写入excel表格的后端方法,但是每次打开页面点击对应的动作,窗口就会闪退,而且Python后台也没有提示出任何的异常堆栈,后来经过在后端一点一点的单点测试,终于发…...
python学opencv|读取图像(五)读取灰度图像像素
【1】引言 前序学习了图像的基本读取,掌握了imread()、imshow()和imwrite()函数的基本功能和使用技巧,参考文章链接为: python学opencv|读取图像-CSDN博客 然后陆续掌握了彩色图像保存、图像放大和缩小以及对imshow()函数的大胆尝试技巧&a…...
LiDAR点云 反射强度 常见物体反射强度
1.激光点云发射的点无法全部被反射回来的原因 激光点云发射的点无法全部被反射回来的原因主要包括以下几点: 目标物表面特性:某些物体表面具有高反射率,导致激光雷达接收到的反射能量过强,从而产生噪点,影响点云数据的…...
零基础微信小程序开发——WXML 模板语法之事件绑定(保姆级教程+超详细)
🎥 作者简介: CSDN\阿里云\腾讯云\华为云开发社区优质创作者,专注分享大数据、Python、数据库、人工智能等领域的优质内容 🌸个人主页: 长风清留杨的博客 🍃形式准则: 无论成就大小,…...
qt QNetworkAccessManager详解
1、概述 QNetworkAccessManager是QtNetwork模块中的一个核心类,它允许应用程序发送网络请求并接收响应。该类是网络通信的基石,提供了一种方便的方式来处理常见的网络协议,如HTTP、HTTPS等。QNetworkAccessManager对象持有其发送的请求的通用…...
在2023idea中如何创建SpringBoot
目录 一.下载和安装 Maven 1.前往 https://maven.apache.org/download.cgi 下载最新版的 Maven 程序 2.将文件解压到D:Program FilesApachemaven目录 3.新建环境变量MAVEN_HOME,赋值D:Program FilesApachemaven 4.编辑环境变量Path,追加%MAVEN_HOME…...
R语言医学数据分析实践-R语言的数据结构
【图书推荐】《R语言医学数据分析实践》-CSDN博客 《R语言医学数据分析实践 李丹 宋立桓 蔡伟祺 清华大学出版社9787302673484》【摘要 书评 试读】- 京东图书 (jd.com) R语言编程_夏天又到了的博客-CSDN博客 在R语言中,数据结构是非常关键的部分,它提…...
PID算法
PID算法是闭环控制中的核心算法之一,它结合了比例(P)、积分(I)和微分(D)三种控制策略,能够实现对被控对象的精确控制。以下将详细介绍PID算法,并针对P、I、D分别举出三个…...
C++day2
1.利用函数重载,实现对整形数组的冒泡排序,对浮点型数组的冒泡排序 #include <iostream>using namespace std;int bubblesort(int a[]) {int i,j,temp;for(i1;i<5;i){for(j0;j<5-i;j){if(a[j]>a[j1]){temp a[j];a[j] a[j1];a[j1] tem…...
RFdiffusion ContigMap类初始化方法解读
功能概述 __init__ 方法是 ContigMap 类的初始化函数,其核心任务是构建和管理一个蛋白质序列和结构的映射系统,处理用户提供的输入数据(如片段信息、参考序列、掩码等),并生成内部所需的各种索引和映射,以便在蛋白质设计中有效地定义、解析和操作不同区域的结构和序列。…...
LeetCode 每日一题 2024/12/2-2024/12/8
记录了初步解题思路 以及本地实现代码;并不一定为最优 也希望大家能一起探讨 一起进步 目录 12/2 52. N 皇后 II12/3 3274. 检查棋盘方格颜色是否相同12/4 2056. 棋盘上有效移动组合的数目12/5 3001. 捕获黑皇后需要的最少移动次数12/6 999. 可以被一步捕获的棋子数…...
5G模组AT命令脚本-关闭模组的IP过滤功能
关闭模组的IP过滤功能 关闭模组的IP过滤功能 5G 模组通常使用nat方式为 下挂设备或上位机提供上网服务,默认情况,不做NAt的包无法经由 模组转发,如果禁掉这个限制 ,可使用本文中的配置命令本脚本用于关闭模组的IP过滤功能…...
得力DL-720C(new)标签热敏打印机
特点 适配标签宽度20-90mm的热敏标签纸,无需碳带。不适用于使用碳带上色的热转印纸(如铜版纸)。标签纸类型支持: 间隙纸(靠间隙定位)。得力自配的纸就是间隙纸,不透明。黑标纸(靠背…...
openjdk17 jvm加载class文件,解析字段和方法,C++源码展示
##构造方法ClassFileParser,parse_stream解析文件流 ClassFileParser::ClassFileParser(ClassFileStream* stream,Symbol* name,ClassLoaderData* loader_data,const ClassLoadInfo* cl_info,Publicity pub_level,TRAPS) :_stream(stream),_class_name(NULL),_load…...
基于 AutoFlow 快速搭建基于 TiDB 向量搜索的本地知识库问答机器人
导读 本文将详细介绍如何通过 PingCAP 开源项目 AutoFlow 实现快速搭建基于 TiDB 的本地知识库问答机器人。如果提前准备好 Docker、TiDB 环境,整个搭建过程估计在 10 分钟左右即可完成,无须开发任何代码。 文中使用一篇 TiDB 文档作为本地数据源作为示…...
Vue项目实战-新能源汽车可视化(二)(持续更新中)
一.项目代码 1.DataSceen <template><div id"app-content"><div class"containerBox"><!-- 左边区域 --><div classleft><!-- 车辆情况 --><div class"item"></div><!-- 历史数据 -->&…...
CSS border 0.5px 虚线
border 0.5px 存在很多兼容问题,很多设备都会默认展示 1px 如果是实线可以用 background 和 height 1px 然后transform scaleY(0.5) 去实现。 但是虚线怎么办呢。 .ticket-line::before {content: ;position: absolute;top: 0;left: 0;right: 0;bottom: 0;width: …...
利用最大流算法解决Adam教授的双路径问题
利用最大流算法解决Adam教授的双路径问题 Adam教授的烦恼问题描述与转换转换步骤伪代码C代码示例解释Adam教授的烦恼 Adam教授有两个儿子,可不幸的是,他们互相讨厌对方。随着时间的推移,问题变得如此严重,他们之间不仅不愿意一起走到学校,而且每个人都拒绝走另一个人当天…...
c#如何开发后端
1选择开发框架 在 C# 中,用于后端开发最常用的框架是ASP.NET。它提供了构建 Web 应用程序、Web API 和微服务等多种后端服务所需的功能。ASP.NET有不同的模式,如ASP.NET MVC(Model - View - Controller)和ASP.NET Web API。ASP.NE…...
05_掌握Python3.11新特性-模式匹配
学习完本篇内容,你将掌握以下技能: 了解 Python 3.11 中的模式匹配新特性掌握如何使用模式匹配来简化代码和提高代码的可读性熟练掌握并应用到实际编程中python3.11新特性-模式匹配 在 Python 3.11 中,引入了模式匹配(pattern match...
【AI日记】24.12.09 kaggle 比赛 Titanic-12
【AI论文解读】【AI知识点】【AI小项目】【AI战略思考】【AI日记】 工作 内容: 学习 kaggle 入门比赛 Titanic - Machine Learning from Disaster学习机器学习(pandas,numpy,sklearn),数据可视化ÿ…...
Linux,如何要定位并删除占用磁盘空间的大文件?
Linux,如何要定位并删除占用磁盘空间的大文件? 要定位并删除占用磁盘空间的大文件主要有以下这些步骤: 1. 使用 du 命令查找大文件或目录 du(Disk Usage)命令可以帮助你查找占用空间较大的文件或目录。 du -ah --…...
【Java】—— 图书管理系统
基于往期学习的类和对象、继承、多态、抽象类和接口来完成一个控制台版本的 “图书管理系统” 在控制台界面中实现用户与程序交互 任务目标: 1、系统中能够表示多本图书的信息 2、提供两种用户(普通用户,管理员) 3、普通用户…...
初识Linux · 线程同步
目录 前言: 认识条件变量 认识接口 快速使用接口 生产消费模型 前言: 前文我们介绍了线程互斥,线程互斥是为了防止多个线程对临界资源访问的时候出现了对一个变量同时操作的情况,对于线程互斥来说,我们使用到了锁…...
游戏引擎学习第40天
仓库 : https://gitee.com/mrxiao_com/2d_game 整理了一些需要完成的任务,确保所有内容都已清理完成,因为需要为后续的数学部分打好基础。下一步将认真开始处理数学相关内容,因此在此之前,需要彻底梳理未完成的事项,清…...
概率论——假设检验
解题步骤: 1、提出假设H0和H1 2、定类型,摆公式 3、计算统计量和拒绝域 4、定论、总结 Z检验 条件: 对μ进行检验,并且总体方差已知道 例题: 1、假设H0为可以认为是570N,H1为不可以认为是570N 2、Z…...
【Pandas】pandas isnull
Pandas2.2 General Top-level missing data 方法描述isna(obj)用于检测数据中的缺失值isnull(obj)用于检测数据中的缺失值notna(obj)用于检测数据中的非缺失值notnull(obj)用于检测数据中的非缺失值 pandas.isnull() pandas.isnull() 是 Pandas 库中的一个函数,…...
Rust HashMap使用
Rust 的 HashMap 是一个功能强大的数据结构,它结合了哈希表的高效性和 Rust 编程语言的内存安全特性。通过提供常数时间复杂度的查找、插入和删除操作,以及丰富的 API,它在许多实际应用中都非常有用。 示例代码: use std::colle…...
Spring Boot如何实现防盗链
一、什么是盗链 盗链是个什么操作,看一下百度给出的解释:盗链是指服务提供商自己不提供服务的内容,通过技术手段绕过其它有利益的最终用户界面(如广告),直接在自己的网站上向最终用户提供其它服务提供商的…...
TIM输入捕获---STM
一、简介 IC输入捕获 输入捕获模式下,当通道输入引脚出现指定电平跳变时,当前CNT的值将被锁存在CCR中,可用于测量PWM波形的频率、占空比、脉冲间隔、电平持续时间等参数 每个高级定时器和通用定时器都拥有4个输入捕获通道 可配置为PWMI模…...
核密度估计——从直方图到核密度(核函数)估计_带宽选择
参考 核密度估计(KDE)原理及实现-CSDN博客 机器学习算法(二十一):核密度估计 Kernel Density Estimation(KDE)_算法_意念回复-GitCode 开源社区 引言 在统计学中,概率密度估计是一种重要的方法࿰…...
javaScript Tips
一键去掉鼠标的图标 document.body.style.cursor none; 获取一个随机颜色 const randomHex () >#${Math.floor(Math.random() * 0xffffff).toString(16).padEnd(6, 0)}; 生成随机字符串,各种随机基本都是这个原理 const randomString () > Math.rand…...
【Ubuntu】清理、压缩VirtualBox磁盘空间大小
1、说明 本人为虚拟机创建了两个硬盘:root.vdi 和 hoom.vdi,在创建虚拟机时,分别挂载在/root目录和/home目录下。 下面演示分别清理、压缩两个磁盘的空间。 2、清理空间 1)清理 root.vid sudo dd if=/dev/zero of=/EMPTY bs=1M;sudo rm -f /EMPTY输出信息中会提示,如…...
若依 ruoyi VUE el-select 直接获取 选择option 的 label和value
1、最新在研究若依这个项目,我使用的是前后端分离的方案,RuoYi-Vue-fast(后端) RuoYi-Vue-->ruoyi-ui(前端)。RuoYi-Vue-fast是单应用版本没有区分那么多的modules 自己开发起来很方便,这个项目运行起来很方便,但是需要自定义的…...
C++小小复习一下
类,对象,成员变量,成员函数 特点:面向对象程序设计---因为要创建对象来调用类里面的函数或者成员变量 比如你的对象是一个生物-人:他会有自己的一些属性:身高,体重,性别等…...
JavaWeb学习(4)(四大域、HttpSession原理(面试)、SessionAPI、Session实现验证码功能)
目录 一、web四大域。 (1)基本介绍。 (2)RequestScope。(请求域) (3)SessionScope。(会话域) (4)ApplicationScope。(应用域) (5)PageScope。(页面域) 二、Ht…...
quartz 架构详解
Quartz是一个开源的作业调度框架,完全由Java编写,主要用于定时任务的调度和管理。Quartz的架构主要包括以下几个核心组件: 1.调度器(Scheduler):调度器是Quartz的核心组件,负责管理Qua…...
Redis安装和Python练习(Windows11 + Python3.X + Pycharm社区版)
环境 Windows11 Python3.X Pycharm社区版 思路 1 github下载redis压缩包 ,安装并启动redis服务,在Pycharm中运行python程序,连接redis服务,熟悉redis的使用和巩固python语言。 2 python开发环境的搭建参考 https://mp.csdn.…...
明年 iPhone 将搭载苹果自研 5G 基带芯片
明年 iPhone 将搭载苹果自研 5G 基带芯片 据彭博社记者 Mark Gurman 透露,苹果首款自主研发 5G 基带芯片即将面世。 苹果首款自研 5G 基带芯片将命名为「Sinope」,将应用在 2025 年发布的 iPhone SE、iPhone 17 Slim 版以及低端系列的 iPad 系列。「Si…...
1.1 Beginner Level学习之“编写简单的发布服务器和订阅服务器”(第十二节)
学习大纲: 1. 编写发布服务器节点 在ROS中,**节点(Node)**是与ROS网络通信的基本单位。在这个部分,我们将创建一个简单的发布节点(talker),它会不断向话题(topic&#x…...
C语言 字符串操作函数
strncpy() 用于将一个字符串的一部分拷贝到另一个字符串中。 char* strncpy(char* destination, const char* source, size_t num);参数:destination 是目标字符串的指针,表示将要拷贝到的位置source 是源字符串的指针,表示要拷贝的字符串num…...
论文概览 |《Cities》2024.07 Vol.150(上)
本次给大家整理的是《Cities》杂志2024年07月第150期的论文的题目和摘要,一共包括90篇SCI论文!由于论文过多,我们将通过两篇文章进行介绍,本篇文章介绍第1--第45篇论文! 论文1 Spatiotemporal infection dynamics: Linking indiv…...
查看Windows系统上的Redis服务器是否设置了密码
查看 Redis 配置文件 1.找到 Redis 配置文件: 通常Redis配置文件名为 redis.windows.conf 或 redis.conf,它位于Redis安装目录中。 2.打开配置文件: 使用文本编辑器(如Notepad、VS Code等)打开该文件。 3.查找 re…...