开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 7698|回复: 100
收起左侧

[易源码分享] 【2023开源大赛】自定义指令集,做自己的SEQ处理器虚拟机

[复制链接]
发表于 2023-11-29 20:11:34 | 显示全部楼层 |阅读模式   北京市北京市
分享源码
界面截图:
是否带模块: 纯源码
备注说明: -
看到大家组织民间的开源大赛,我也就花几个小时写点小玩意来给大家参考参考。




做了一个顺序执行(SEQ)处理器的虚拟机,暂且实现了Y86指令集基础命令的执行。


首先是Y86指令集的相关二进制定义:
ISA1.png
ISA2.png
ISA3.png
ISA4.png
可以看到,这是一个非常精简的指令集,只有:
halt(结束执行)、nop(空指令)、cmovXX(条件赋值)、irmovl(立即数赋值寄存器)、rmmovl(寄存器数据写道内存)、mrmovl(内存数据读到寄存器)、OPL(基本运算,包括加减、异或、其运算)、jXX(跳转语句)、call(调用指令)、ret(返回指令)、pushl(寄存器压栈)和popl(寄存器出栈)。




不够基本够用了。
寄存器信息如下:
ISA5.png
为了防止不够用,我还特意加上了r8~r14共七个通用寄存器。


整个处理器虚拟机的设计严格按照Fetch(取指令)->Decode(解码,看需要使用哪些寄存器)->Execute(ALU单元执行计算阶段)->Memory(写回内存)->Write back(写回寄存器)->Program Counter Update(更新指令当前的PC)。


如果大家看不懂这些阶段是干了些什么,可以看下面两条指令的执行流程:
Call指令:
OP2.png
OPL指令:
OP1.png


这个SEQ处理器的虚拟机就很好实现了(内存部分就随便用数组映射一下吧):
SEQ.png
程序中给了一个数组求和的DEMO:
TEST.png
速度大概是系统指令执行速度的1/60,没什么优化。
如果大佬有兴趣可以有将其改进成流水线式的,应该会好很多。
源码回复下载: SEQ.zip (11.42 KB, 下载次数: 65)

评分

参与人数 26好评 +8 精币 +38 收起 理由
远赴 + 1 + 3 新技能已get√
天雷 + 1 + 2 支持开源~!感谢分享
汉族 + 1 + 3 奉上小小红包希望笑纳
wa690602724 + 1 感谢分享,很给力!~
易语言资源网 + 1 + 3 开源精神必须支持~
qhhiut + 1 感谢分享,很给力!~
易小超 + 2 支持开源~!感谢分享
ican8 + 1 感谢分享,很给力!~
mypursue + 1 感谢分享,很给力!~
keyi5566 + 1 感谢分享,很给力!~
无尘666 + 1 感谢分享,很给力!~
3266167 + 1 感谢分享,很给力!~
pj小黑屋 + 1 感谢分享,很给力!~
t176 + 1 感谢分享,很给力!~
望尘莫及 + 1 感谢分享,很给力!~
1828902364 + 1 感谢分享,很给力!~
YzZA + 1 感谢分享,很给力!~
风雨3137 + 1 感谢分享,很给力!~
qiyuer + 1 感谢分享,很给力!~
Zźh926 + 1 感谢分享,很给力!~
※逍遥游※ + 1 感谢分享,很给力!~
光影魔术 + 1 + 1 新技能已get√
734108950 + 1 + 2 支持开源~!感谢分享
inat + 1 + 2 感谢分享,很给力!~
財財 + 1 感谢分享,很给力!~
空竹 + 1 + 3 很好很强悍,坚持下去哦~

查看全部评分


本帖被以下淘专辑推荐:

结帖率:20% (1/5)

签到天数: 12 天

发表于 2024-9-22 11:22:27 | 显示全部楼层   浙江省金华市
这是直达虚拟机内的程序?
回复 支持 反对

使用道具 举报

头像被屏蔽
结帖率:100% (4/4)
发表于 2024-4-26 17:25:54 | 显示全部楼层   安徽省宣城市
有这精力封装个Websocket 多好 全网就没有一个好用的
回复 支持 反对

使用道具 举报

签到天数: 1 天

发表于 2024-3-17 17:53:00 | 显示全部楼层   福建省泉州市
        感谢分享,很给力~
回复 支持 反对

使用道具 举报

签到天数: 1 天

发表于 2024-2-14 01:48:40 | 显示全部楼层   江苏省连云港市
处理器的虚拟机
回复 支持 反对

使用道具 举报

发表于 2024-2-10 23:17:03 | 显示全部楼层   广西壮族自治区百色市
感谢分享,很给力!~
回复 支持 反对

使用道具 举报

结帖率:100% (1/1)

签到天数: 24 天

发表于 2024-1-20 22:36:16 | 显示全部楼层   江苏省南京市
每次看见都想点赞
回复 支持 反对

使用道具 举报

结帖率:71% (22/31)

签到天数: 11 天

发表于 2024-1-18 21:28:45 | 显示全部楼层   河南省焦作市
感谢开源~~
回复 支持 反对

使用道具 举报

发表于 2024-1-13 16:34:35 | 显示全部楼层   湖南省郴州市
本人有限   看不懂        感谢楼主分享
回复 支持 反对

使用道具 举报

签到天数: 3 天

发表于 2024-1-9 22:57:25 | 显示全部楼层   四川省成都市
6666666666666666666666
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 793400750,邮箱:wp@125.la
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表