【问题思考总结】只有load和store指令能够访存有什么好处?为什么能方便实现指令流水线?【CISC与RISC的区别】【2011 408真题T18 III】

问题

今天在搜寻这个问题的时候,发现鲜有人关注和回答,因此,在搜寻了一些外网的回答和资料后,通过思考,总结了一些个人的愚见,恳请各位指正。

思考

CISC与RISC的区别之我见

首先,这两种架构的指令格式有所不同,一个是定长,一个是不定长,CISC是不定长,RISC是定长,这就导致了CISC有可能有的指令执行时间很长,有的指令执行时间很短,这也就导致了CISC基本不可能实现指令流水线、

此外,RISC有很多寄存器,而CISC有较少的寄存器。在早些时候,CPU的时钟频率较低,导致访存指令可以在一个时钟周期内完成。然而,随着CPU性能的发展,CPU时钟频率越来越高,使得需要引入Cache来平衡主存和CPU之间的速度矛盾。而这也导致了现在访存开销很大。为了提高效率,于是RISC采用了更多的寄存器,并可以使指令执行的更迅速(这里我有个疑问,那为什么CISC也不采用更多的寄存器呢?)(天,但是访存时间没变流水段怎么加速?)

最后,RISC只能通过LOAD和STORE指令进行访存,而CISC则不然(我做个简单的瞎联想,CISC的寄存器要比RISC少,而指令复杂性又比RISC高,因而自然要用更多的指令进行访存)。这是为什么呢?原因在于,指令流水线的特点

------未完待续------
见笑了。。。过两天考研了,这个感觉挖到这再挖下去有点不值了,突然碰到bug,以后有缘再挖。

贴两个链接:
[1]https://www.quora.com/Why-do-most-RISC-systems-implement-load-store-architecture
[2]https://www.quora.com/How-do-I-write-a-code-for-both-RISC-and-CISC-to-perform-the-adding-or-multiplication-of-two-values

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

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

相关文章

0级表空间后,又有0级全库备份,再1级表空间备份,xtts还认吗?

0级表空间后,又有0级全库备份,再1级表空间备份,xtts还认吗? 不认。此时需要根据提示报错的scn号再做备份再做恢复: backup incremental from SCN 1041682 tablespace DATA,USERS filesperset 300 format /bak/hisdb1…

C语言指针3

1.assert(条件); 一旦条件为假则报错 2.统一关闭assert方法: 在#include<assert.h> 上一行加上#define NDEBUG 3.但是引用assert会增加程序运行的时间 4.size_t等价于unsigned int 5.关于数组首元素的地址 两个特例: sizeof,&数组名 6. int main() {int a…

13.二进制枚举练习题

文章目录 二进制枚举练习题[78. 子集](https://leetcode.cn/problems/subsets/)[77. 组合](https://leetcode.cn/problems/combinations/)[1286. 字母组合迭代器](https://leetcode.cn/problems/iterator-for-combination/)[2397. 被列覆盖的最多行数](https://leetcode.cn/pro…

【算法Hot100系列】盛最多水的容器

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

ubuntu18使用docker编译和运行的步骤

在Ubuntu 18.04上使用Docker来编译和运行应用程序主要包括以下步骤&#xff1a; 安装Docker&#xff1a; 在Ubuntu上安装Docker之前&#xff0c;首先需要更新包索引并安装一些必要的包&#xff0c;以确保能够通过HTTPS使用仓库&#xff1a; sudo apt update sudo apt install a…

【设计模式-2.4】创建型——抽象工厂模式

说明&#xff1a;本文介绍设计模式中&#xff0c;创建型设计模式的抽象工厂设计模式&#xff1b; 工厂模式的问题 在【设计模式-2.2】创建型——简单工厂和工厂模式这篇博文中&#xff0c;介绍过飞机大战游戏里&#xff0c;使用简单工厂和工厂模式来创建坦克、飞机、Boss对象…

MySQL数据库,表的增量备份与恢复

1. 从物理与逻辑的角度 数据库备份可以分为物理备份和逻辑备份。物理备份是对数据库操作系统的物理文件&#xff08;如数据 文件&#xff0c;日志文件等&#xff09;的备份。这种类型的备份适用于在出现问题时需要快速恢复的大型重要数据库。 物理备份又可以分为冷备份&#xf…

【JAVA-Day65】Java内部类深度解析

Java内部类深度解析 《Java内部类深度解析》摘要引言一、理解内部类1. 内部类的基本概念和语法1.1 什么是内部类&#xff1f;1.2 内部类的语法结构1.3 内部类的基本概念 2. 不同类型的内部类详解2.1 成员内部类2.2 静态内部类2.3 局部内部类2.4 匿名内部类 二、内部类与普通类的…

t2017030921字母矩阵

题1 字母矩阵(char) 【问题描述】 小Y才学C不久就写了一个字母矩阵的题&#xff0c;即给出一个数字N&#xff0c;画出一个最外围全是字母‘A’的中空矩形&#xff0c;当N5时形如下图: AAAAA A A A A A A AAAAA 小Q看了这个图形后&#xff0c;想了想马上给出这样一个…

【Unity自动寻路】使用Navigation系统实现物体自动寻路绕开障碍物

知识点流程图 自动导航Navigation系统 我们在游戏场景中经常会有一些障碍物、墙壁、树木等等&#xff0c;如果我想要让角色或者怪物去墙的另一边&#xff0c;我直接在墙另一边点击左键&#xff0c;我希望角色自动跑过去&#xff0c;但是他不能直接穿透墙&#xff0c;他需要“智…

04-Nacos中负载均衡规则的配置

负载均衡规则 同集群优先 默认的ZoneAvoidanceRule实现并不能根据同集群优先的规则来实现负载均衡,Nacos中提供了一个实现叫NacosRule可以优先从同集群中挑选服务实例 当服务消费者在本地集群找不到服务提供者时也会去其他集群中寻找,但此时会在服务消费者的控制台报警告 第…

六大设计原则

六大设计原则 1、单一职责原则 一个类或者模块只负责完成一个职责或者功能。 2、开放封闭原则 规定软件中的对象、类、模块和函数对扩展应该是开放的&#xff0c;对于修改应该是封闭的。用抽象定义结构&#xff0c;用具体实现扩展细节。 3、里氏替换原则 如果S是T的子类型…

STM32_串口下载程序

目录标题 前言1、理论知识2、串口下载具体操作2.1、硬件准备2.2、软件准备2.3、设置单片机的启动模式为系统存储器启动2.4、软件配置2.5、下载程序 附:生成hex文件 前言 使用调试器下载程序又快有稳定还能使用调试功能&#xff0c;当然是下载调试的首选。但是拓展下串口下载程…

BAQ压缩原理

什么是BAQ? BAQ——Block Adaptive Quantization,块自适应量化 BAQ是一种数据压缩算法。 谁提出了BAQ压缩? BAQ压缩原理是由美国NASA JPL的R. Kwok和W.T.K. Johnson在1989年提出的。第一次被用于美国NASA的“麦哲伦金星探测”任务中。 BAQ压缩的目的是什么? 上世纪后半…

Springboot Minio最新版大文件下载

上节我们说了Minio怎么大文件上传&#xff0c;我们是进行了分段上传&#xff0c;然后合并处理&#xff0c;感兴趣的可以去这篇文章&#xff0c; Springboot Minio最新版大文件上传-CSDN博客 那么今天的主题就是大文件下载&#xff0c;再大文件就需要分段下载&#xff0c;也就需…

网络爬虫第1天之数据解析库的使用

一、正则表达式 正则表达式&#xff08;Regular Expression 简称regex或regexp&#xff09;是一种强大的文本处理工具&#xff0c;它可以帮助实现快速的检索、替换或验证字符串中的特定模式。 1、match match()方法会尝试从字符串开始的位置到字符结束的位置匹配正则表达式&am…

gitee gihub上传步骤

上传 1. 到具体要上传的文件目录 2. 右击git Bash Here 初始化仓库&#xff1a;git init 3. 添加文件 添加所有文件 : git add . &#xff08;注意这里有个点&#xff09;添加具体文件&#xff1a; git add test.md 4. 添加到暂存区 git commit -m 暂存区 5. 将本地代…

如何将数据库导入MySQL的办法

在电脑cmd终端进行导入 首先找到MySQL中bin的位置 第一步&#xff1a;找到MySQL 第二步&#xff1a;进入MySQL 第三步&#xff1a;打开bin 第四步&#xff1a;输入cmd进入终端 第五步&#xff1a; 输入mysql -uroot -p 然后会弹出enter password&#xff1a; 输入你的密码…

C++-LD_PRELOAD

LD_PRELOAD是linux上的一个环境变量&#xff0c;作用是在程序启动前先加载这个动态链接库&#xff08;无论程序本身是否需要&#xff09;。使用场景通常是我们已经有一个release版本的动态库&#xff0c;此时我们想要调试动态库中的内容&#xff0c;又或者我们有一个v1版本的动…

Day10 Liunx高级系统设计11-数据库2

DQL:数据查询语言 查询全表 select * from 表名; 查询指定列 select 列名 1, 列名 2,… from 表名 ; 条件查询 select * from 表名 where 条件 ; 注意&#xff1a; 条件查询就是在查询时给出 WHERE 子句&#xff0c;在 WHERE 子句中可以使用如下运算符及关键 字&#…