外贸网站高端定做中卫网站制作公司报价

news/2025/9/26 23:48:53/文章来源:
外贸网站高端定做,中卫网站制作公司报价,58同城怎么发布广告信息,阿里云服务器 做网站从零设计四位栈处理器#xff08;2#xff09;——结构与指令集一句话概括#xff1a; 在Toxic处理器中#xff0c;万物皆栈。熟悉汇编语言的同学会了解#xff0c;一般的汇编语言#xff0c;会包含以下几个部分#xff1a;寄存器地址立即数操作码在这期文章中#xff…从零设计四位栈处理器2——结构与指令集一句话概括 在Toxic处理器中万物皆栈。熟悉汇编语言的同学会了解一般的汇编语言会包含以下几个部分寄存器地址立即数操作码在这期文章中我们将通过类比的方法来解释Toxic处理器的运行方法以及设计上作出的妥协。 上图显示的是RISC-V的最基础的四类指令其中R类负责寄存器与寄存器之间的运算操作I类负责寄存器和小立即数之间的操作S类负责写入内存读取指令被归结为I类内U类负责处理大立即数以及PC相关的寻址。一、寄存器寄存器的本质是用来暂存数据避免读写内存带来的巨大性能开销。我们先举一个R类RISC-V汇编的例子add x1, x1, x1这条命令的意思是将x1寄存器的值与x1寄存器相加并且将结果写入x1寄存器。事实上这是一个非常典型的寄存器寻址的汇编指令在X86构架、ARM构架和MIPS构架中几乎都能找到相似的指令。但是我们在Toxic处理器中并没有这样的指令出现。那么我们为什么不用这种类型的指令呢我们上面展现的汇编代码来自RV32I指令集本质上是一个32位整数指令集在该指令集中总共定义了32个通用寄存器。我们为了寻址32个寄存器在指令中每包含一个寄存器需要花费log_2(32)5比特的宽度。而Toxic处理器是一个4位等长指令处理器而4位二进制码只有16种不同的组合这也就导致了在Toxic处理器中应用这种“寄存器寻址”的体系是非常不现实的一条指令总共只有4比特算上操作码占的空间我们恐怕最多只能留2位给寄存器寻址但这显然是不够的。所以既想维持4位的简洁又想拥有更多的”暂存空间“要怎么办呢于是我们引出了Stack Machine栈处理器这个概念。所谓栈处理器是相对于寄存器处理器而言的一个栈处理器是不存在通用寄存器的取而代之的是一个“栈”。栈这个概念相信各位已经非常清楚了Toxic处理器里面的栈和我们通常说的栈道理上是完全相同的。不同之处在于1. Toxic处理器的栈是由硬件逻辑门实现。2. Toxic处理器的栈除了实现了pushpop之外还实现了tos和ntos两个功能。tos就是所谓的栈顶ntos就是次栈顶在访问tos和ntos的时候不会改变栈内部的内容。在这里我们将这个作用是“替代通用寄存器”的栈命名为数据栈。二、地址以RV32I为例如果我们有一个32位宽度的总线那么我们总共可以寻址的空间是2^32 Byte假设每个地址寻1 Byte。这个寻址空间说大不大但是对于普通应用来说已经足够了。但是Toxic处理器是一个四位处理器2^416 Byte的寻址空间对于几乎任何程序来说都是不够的。很自然的我们就可以想到去运用多个4位总线连接起来一同来寻址这样的话可以扩大我们的寻址空间。于是乎就出现了一个问题到底要多大的寻址空间才好呢在这里Toxic处理器的设计给每个去尝试实现它的人都留下了空间我们规定总线宽度只要为4位的倍数都可以让Toxic指令集良好的工作。在开头我们就说过Toxic处理器中万物皆栈。与数据栈的思路相同我们同样用栈来表示一个总线地址在此我们称之为地址栈。8位的地址栈的实现与数据栈基本相同为了避免混淆我们暂时不引入更高位的地址栈的设计。到此为止我们已经讲述了Toxic处理器中最重要的两个部件。如果你感觉有似懂非懂的地方没有关系在我们一步步解释整个Toxic指令集之后你会有更清晰的认识。三、立即数立即数在处理器中的作用是将指令中的数直接作为处理器内的数据进行计算。用RV32I指令集举个例子addi x1, x1, 1该指令的意思是将x1寄存器1的结果存进x1寄存器。在该指令中数字1就是一个立即数。对于我们的Toxic处理器来说处理立即数的本质就是将我们指定的任何一个数字push进数据栈内。下图是Toxic指令集的所有指令以及编码 在了解生成立即数的具体操作之前我们先看3个指令P1, ADD, LS。P1: 将数据“1”push进数据栈。ADD将数据栈tos和ntos的加和push进数据栈。LS将数据栈中的tos左移一位。明白了这三个指令的操作我们来思考一下如何把“5”这个数字push到数据栈内呢首先5的二进制是0101。我们有以下代码P1 // tos为0001 LS // tos为0010 LS // tos为0100 P1 // tos为0001 这时候之前的tos已经成为了ntos为0100 ADD // 0001 0100 0101这时候tos为0101我们完成了将“5”push到栈顶为了更高效的生成立即数比如说15也就是二进制中的1111我们引入了P11这个指令P11所做的事情与P1类似就是将0011给push到栈顶。四、操作码操作码是指在机械码中存在的用来指定处理器指令的几位。在RV32I指令集中我们可以看到0-6位都是“opcode”也就是我们说的操作码。再次地Toxic指令集是一个4位等长指令指令集。然而不难发现在Toxic指令集中我们虽然只有4位的空间来描述一个指令但是我们对于寄存器的寻址并不占用指令空间对总线地址的访问也不占用指令空间甚至连对寄存器的操作都不占用指令空间。所以到最后所有4位空间我们都将分配给操作码。换句话说在Toxic指令集中所有机器码都是操作码。其实关于操作码的界定问题学术界也没有一个非常准确的标准比如说很多时候RV32I的funct3都会被说成操作码的一部分。但是这都不重要只是个人的区分和习惯问题我们这期文章就暂时先讲这么多下期文章我们会更加仔细、更加完整的解读这16条指令并且聊一聊如何用Toxic指令集编写一个真实有意义的程序。在讲完指令集后会讲一下整个Toxic处理器电路层面的实现。当然在那之前还有很多工作需要完善大家可以先看看我的GitHub上Toxic_v2的英文文档还有最近很快就要完成了的Toxic_v2模拟器如果大家能给我点个星星我会非常感谢文档https://github.com/Entropy-xcy/Toxic_v2模拟器https://github.com/Entropy-xcy/Toxic_v2_simulator引用【1】 RISC-V ISA Specifications https://riscv.org/specifications/

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

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

相关文章

Markdown 之——清单の语法

清单 您可以将项目组织成有序和无序列表。 有序列表 要创建有序列表,请在订单项中添加数字和句点。数字不必按数字顺序排列,但列表应以数字开头。Markdown HTML 渲染输出1. First item2. Second item3. Third item4.…

“计算理论之美”课程笔记一:概率

介绍:\(k-sat\) \(k-sat\) 问题:输入一系列条件,每个子句得到 恰好 \(k\)个子条件,对于每个条件,至少有一个子条件必须得到满足。每个子条件都要求你使一个特定的布尔值为真或为假。判断在 \(n\) 个布尔变量下,所…

“计算理论之美”课程笔记四:高维空间组合优化

高维空间的问题 高维空间点集直径 一维直径 在一位空间上的直径是很好求得的,因为我们只要找到所有点中的 \(\min\) 和 \(\max\),就可以 \(O(n)\) 的求得精确解。并且空间复杂度是 \(O(1)\) 的(我们只要存储历史最大…

git分支从dev迁移到maser

1:切换到master分支 2:执行到chery-pick -n (change id) 3:需要按照最早执行的顺序,从早到后执行,然后处理冲突

网站制作百度资源延安网站建设报价

关于OpenStack的争议,从未停止,每每关于它的消息,都会一石激起千层浪。今天就让我们看看关于OpenStack的问答吧。1Q : OpenStack服务介绍A : MySQL为各个服务器提供数据存储RabbitMq:为各个服务之间提供通信认证和服务注册Keystone:为各个服务…

2025.9.26总结

今天继续看苍穹外卖,简单的增删改查中,出了一个阿里云oss云存储,将图片,视频存的云端中,领了30天试用。 不过目前我没觉得和存在本地有啥差别

毕设做音乐网站架设个人网站

霍夫变换 霍夫变换只能灰度图,彩色图会报错 lines cv2.HoughLinesP(edge_img,1,np.pi/180,15,minLineLength40,maxLineGap20) 参数1:要检测的图片矩阵参数2:距离r的精度,值越大,考虑越多的线参数3:距离…

4gl

4gl4gl.....编程语言 sql工程

邮箱官方网站注册做seo的网站

文章目录 引言一、快速入门1.1 OSHI的简介1.2 引入依赖1.3 涉及的包(package)1.4 涉及的核心类 二、操作系统信息:OperatingSystem2.1 总揽2.2 文件系统信息:FileSystem2.3 网络参数信息:NetworkParams2.4 进程信息&am…

C++ 与现代并发编程:性能与复杂度的平衡艺术

一、引言 随着多核处理器成为主流,单核性能提升逐渐遇到瓶颈,软件开发的重点转向如何充分利用硬件的并行能力。并发编程因此成为现代开发不可回避的主题。从桌面应用到服务器端系统,从游戏引擎到人工智能框架,几乎…

926

做英语ppt,明天写java和数据结构的作业,整理一下这周的知识

20250736

清晨的英语课展开,单词发音与语法结构在教室里交织。下课铃响时,走廊里突然涌起此起彼伏的人,下午便开始放1天假期。 正午的阳光透过窗帘缝隙,我躺在床上。空调外机嗡嗡作响,眼皮渐渐沉重却始终无法进入睡眠。 暮…

今科云平台网站建设技术公司注册网上查询

java-ssm-jsp的问卷调查系统的设计与实现 获取源码——》公主号:计算机专业毕设大全

免费领夸克盘1tb

免费领夸克盘1tbhttps://www.2020web.cn/1987.html 亲测好使!!!!!!!!!!!

最新网站发布网站建设行业企业排名

题目描述&#xff1a; 个人题解&#xff1a; 先将整数转换成字符串&#xff0c;再利用双指针逐一比较数字。 代码实现&#xff1a; class Solution { public:bool isPalindrome(int x) {if(x<0||(x%100&&x!0)){return false;}//c标准库调用&#xff0c;将整数下转…

sql优化个人总结

1、查询返回列不要尽量不使用*,用二级覆盖索引里面的字段 2、小表驱动大表,in后面先执行放小表,exist前面先执行放小表 3、join的时候如果没有使用索引,一般是BNL算法,A join B,即把B数据加载到无序的join_buffe…

原文扫描件忆 我常常追忆过去[1]。 过往在我眼前顶个,我行走于记忆的回廊。或清晰,或模糊,或光鲜,或灰暗;往事纷纷而至,可是,我似乎是孤独的。 我时常回忆起零碎的往事。坐在车上,想起儿时和爷爷坐火车回老家,…

企业网站设计公司wordpress英文主题哪个好用

最大公约数和最小公倍数 概念描述 最大公约数&#xff08;GCD&#xff09;是指两个或多个整数共有约数中的最大值。 最小公倍数&#xff08;LCM&#xff09;是指两个或多个整数共有的倍数中的最小值 方法介绍 碾转相除法 一种用于计算两个整数的最大公约数&#xff08;GCD…

网站报价内容郑州网站建设 华数

目录 词云简介 准备工作 安装方法一&#xff1a; 安装方法二&#xff1a; 生成词云步骤 数据预处理&#xff1a; 分词&#xff1a; 统计词频出现的次数&#xff1a; 去除词语&#xff1a; 生成词云&#xff1a; 显示词云&#xff1a; 保存词云&#xff1a; 完整代码 词…

dedecms 营销网站模板傻瓜式建站平台

正常的 RGB 颜色的有效范围&#xff0c;是从 0 到 16,777,215 (&HFFFFFF&)。每种颜色的设置值&#xff08;属性或参数&#xff09;都是一个四字节的整数。对于这个范围内的数&#xff0c;其高字节都是 0&#xff0c;而低三个字节&#xff0c;从最低字节到第三个字节&am…