搜索
bottom↓
回复: 12

B52 - 51 指令的执行密度 , 针对性的优化, DEMO 的指令执行统计

[复制链接]

出280入168汤圆

发表于 2021-3-31 22:01:42 | 显示全部楼层 |阅读模式
本帖最后由 chunjiu 于 2021-3-31 22:03 编辑

搞了一天 , 整体的梳理了一遍, 进行了一些冗余算法的删除 , 总体来说有效果 , 速度明显的又提高了一点 . 不过 , 离目标还是差的很远 !

今天买了 H743 的板子 , 准备过几天收到了用 300MHz 跑起来试试

因为指令解码和执行部分没优化 , 原先的做法就是最土最直接的对变量进行寻址和计算操作 , 所以对这儿优化应该大有可为 ! 加油 !  

[附文件]   



然后统计了一下指令的执行密度 , 得到以下统计 ( 详情在文件 PDF 内 ) :

0x 0:    791832
0x 1:         0
0x 2:    527889
0x 3:         0
0x 4:         0
0x 5:         0
0x 6:    263944
0x 7:         0
0x 8:    527888
0x 9:         0
0x A:         0
0x B:         0
0x C:         0
0x D:         0
0x E:         0
0x F:         0
0x10:         0
0x11:         0
0x12:   1055777
0x13:         0
0x14:         0
0x15:    791832
0x16:         0
0x17:         0
0x18:         0
0x19:         0
0x1A:         0
0x1B:         0
0x1C:         0
0x1D:         0
0x1E:         0
0x1F:         0
0x20:    263944
0x21:         0
0x22:   1055777
0x23:         0
0x24:    527888
0x25:         0
0x26:         0
0x27:         0
0x28:         0
0x29:         0
0x2A:         0
0x2B:         0
0x2C:         0
0x2D:    263944
0x2E:         0
0x2F:         0
0x30:         0
0x31:         0
0x32:    263944
0x33:         0
0x34:         0
0x35:         0
0x36:         0
0x37:         0
0x38:         0
0x39:         0
0x3A:         0
0x3B:         0
0x3C:         0
0x3D:         0
0x3E:    263944
0x3F:         0
0x40:         0
0x41:         0
0x42:         0
0x43:         0
0x44:    263945
0x45:         0
0x46:         0
0x47:         0
0x48:         0
0x49:         0
0x4A:         0
0x4B:         0
0x4C:         0
0x4D:         0
0x4E:         0
0x4F:         0
0x50:         0
0x51:         0
0x52:         0
0x53:         0
0x54:         0
0x55:         0
0x56:         0
0x57:         0
0x58:         0
0x59:         0
0x5A:         0
0x5B:         0
0x5C:         0
0x5D:         0
0x5E:         0
0x5F:         0
0x60:    527890
0x61:         0
0x62:         0
0x63:         0
0x64:         0
0x65:         0
0x66:         0
0x67:         0
0x68:         0
0x69:         0
0x6A:         0
0x6B:         0
0x6C:         0
0x6D:         0
0x6E:         0
0x6F:         0
0x70:    263944
0x71:         0
0x72:         0
0x73:         0
0x74:   1055776
0x75:   1319722
0x76:         0
0x77:         0
0x78:    263945
0x79:    263945
0x7A:         0
0x7B:         0
0x7C:         0
0x7D:         0
0x7E:         0
0x7F:         0
0x80:         0
0x81:         0
0x82:         0
0x83:         0
0x84:         0
0x85:   1847608
0x86:    791832
0x87:         0
0x88:         0
0x89:         0
0x8A:         0
0x8B:         0
0x8C:         0
0x8D:    263944
0x8E:    263944
0x8F:    791832
0x90:    263944
0x91:         0
0x92:         0
0x93:    263944
0x94:         0
0x95:         0
0x96:         0
0x97:         0
0x98:         0
0x99:         0
0x9A:         0
0x9B:         0
0x9C:         0
0x9D:         0
0x9E:         0
0x9F:         0
0xA0:         0
0xA1:         0
0xA2:         0
0xA3:         0
0xA4:         0
0xA5:         0
0xA6:         0
0xA7:         0
0xA8:         0
0xA9:         0
0xAA:         0
0xAB:         0
0xAC:         0
0xAD:    263944
0xAE:    263944
0xAF:    263944
0xB0:         0
0xB1:         0
0xB2:         0
0xB3:         0
0xB4:         0
0xB5:         0
0xB6:         0
0xB7:         0
0xB8:         0
0xB9:         0
0xBA:         0
0xBB:         0
0xBC:         0
0xBD:         0
0xBE:         0
0xBF:         0
0xC0:   2903384
0xC1:         0
0xC2:         0
0xC3:         0
0xC4:         0
0xC5:         0
0xC6:         0
0xC7:         0
0xC8:         0
0xC9:         0
0xCA:         0
0xCB:         0
0xCC:         0
0xCD:         0
0xCE:         0
0xCF:         0
0xD0:   3959160
0xD1:         0
0xD2:         0
0xD3:         0
0xD4:         0
0xD5:         0
0xD6:         0
0xD7:         0
0xD8:    263944
0xD9:         0
0xDA:         0
0xDB:         0
0xDC:         0
0xDD:         0
0xDE:         0
0xDF:         0
0xE0:         0
0xE1:         0
0xE2:         0
0xE3:         0
0xE4:   1319721
0xE5:    791833
0xE6:         0
0xE7:         0
0xE8:         0
0xE9:    263945
0xEA:         0
0xEB:         0
0xEC:    263944
0xED:         0
0xEE:         0
0xEF:         0
0xF0:         0
0xF1:         0
0xF2:         0
0xF3:         0
0xF4:         0
0xF5:   2111552
0xF6:    263945
0xF7:         0
0xF8:    263944
0xF9:         0
0xFA:         0
0xFB:         0
0xFC:    263944
0xFD:         0
0xFE:         0
0xFF:    527888

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

阿莫论坛20周年了!感谢大家的支持与爱护!!

月入3000的是反美的。收入3万是亲美的。收入30万是移民美国的。收入300万是取得绿卡后回国,教唆那些3000来反美的!

出0入25汤圆

发表于 2021-3-31 22:23:09 | 显示全部楼层
为啥NOP还有这么多次?

出280入168汤圆

 楼主| 发表于 2021-3-31 22:37:37 来自手机 | 显示全部楼层
hecat 发表于 2021-3-31 22:23
为啥NOP还有这么多次?

估计是中断处理里面在进入或退出时同步用的,

我开了两个定时器中断。

sdcc 编译器的详细情况还没有研究过,后面再研究。

出280入168汤圆

 楼主| 发表于 2021-4-1 13:12:10 | 显示全部楼层
在关键的三个变量上使用了寄存器变量 register, 让整体效率提升了 70% ~ 80% !

之前计算的最高理论值 800KHz 是全 NOP 指令得到的, 这次是真正的 DEMO 程序, Release 版本达到了 400KHZ.

但是编译的结果经常出现宕机, 稍微改改重新编译就不行了, 有时候忽然又可以了 ... 哦 gcc ...

出0入4汤圆

发表于 2021-4-1 16:32:21 | 显示全部楼层
大神教教我们也玩玩呗~~集大家的力量不是更好玩

出280入168汤圆

 楼主| 发表于 2021-4-1 16:44:44 | 显示全部楼层
zhanyanqiang 发表于 2021-4-1 16:32
大神教教我们也玩玩呗~~集大家的力量不是更好玩

别急, 还在初期阶段, 思绪乱得很 ...

老代码和新代码中有一些变量类型定义的前后不一致, 但 GCC 9 没任何提醒, 所以编译的结果老宕机, 我还在一边调试一边查找 ...

出0入0汤圆

发表于 2021-10-8 17:06:36 | 显示全部楼层
大神,现在进行的如何了,什么时候可以分享一下!

出280入168汤圆

 楼主| 发表于 2021-10-8 21:07:38 | 显示全部楼层
kxhui88 发表于 2021-10-8 17:06
大神,现在进行的如何了,什么时候可以分享一下!

重新架构了,现在处于新框架的构造初期,今年内不可能有新内容推出了!

新构思的架构雏形应该在明年的春节后完成,大致是 MCU * 4 的形式(未确定)。

出0入0汤圆

发表于 2021-10-9 00:05:29 | 显示全部楼层
chunjiu 发表于 2021-10-8 21:07
重新架构了,现在处于新框架的构造初期,今年内不可能有新内容推出了!  

新构思的架构雏形应该 ...

请问大神,能否把现有的分享学习一下

出280入168汤圆

 楼主| 发表于 2021-10-9 07:05:38 来自手机 | 显示全部楼层
本帖最后由 chunjiu 于 2021-10-9 07:06 编辑
kxhui88 发表于 2021-10-9 00:05
请问大神,能否把现有的分享学习一下


在各项测试中改的太乱了,没时间整理!要不~ 你自己整理?

因为在测试中发现初版达不到设计目标,所以就没清理。

ps, 已经不记得最后修改的能否编译和运行了……

出0入0汤圆

发表于 2021-10-9 10:35:19 | 显示全部楼层
chunjiu 发表于 2021-10-9 07:05
在各项测试中改的太乱了,没时间整理!要不~ 你自己整理?

因为在测试中发现初版达不到设计目标,所以 ...

好啊,好啊,我只是想学习学习!

出280入168汤圆

 楼主| 发表于 2021-10-9 14:40:28 | 显示全部楼层
本帖最后由 chunjiu 于 2021-10-9 15:12 编辑
kxhui88 发表于 2021-10-9 10:35
好啊,好啊,我只是想学习学习!


兄弟,注意哈:

这些代码之前没放出来是因为没完工,所以不能抱以太大的期望 ...

不要以为可看到一个花瓶,也许丑陋一点,但实际上 ~ 此作品只是个没完工的土胚。

PS:

用 STM32CubeIDE 打开这个项目,刚才试着编译了一下,发现一些定义找不到了,

估计是改了一半代码后又去忙别的事情了,所以没全部改完,变成了半拉子。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

发表于 2021-10-9 22:33:07 | 显示全部楼层
chunjiu 发表于 2021-10-9 14:40
兄弟,注意哈:

这些代码之前没放出来是因为没完工,所以不能抱以太大的期望 ...

多谢大神分享!
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-25 18:40

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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