chunjiu 发表于 2021-3-31 22:01:42

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

本帖最后由 chunjiu 于 2021-3-31 22:03 编辑

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

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

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

[附文件]



然后统计了一下指令的执行密度 , 得到以下统计 ( 详情在文件 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

hecat 发表于 2021-3-31 22:23:09

为啥NOP还有这么多次?

chunjiu 发表于 2021-3-31 22:37:37

hecat 发表于 2021-3-31 22:23
为啥NOP还有这么多次?

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

我开了两个定时器中断。

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

chunjiu 发表于 2021-4-1 13:12:10

在关键的三个变量上使用了寄存器变量 register, 让整体效率提升了 70% ~ 80% !

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

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

zhanyanqiang 发表于 2021-4-1 16:32:21

大神教教我们也玩玩呗~~{:lol:}集大家的力量不是更好玩

chunjiu 发表于 2021-4-1 16:44:44

zhanyanqiang 发表于 2021-4-1 16:32
大神教教我们也玩玩呗~~集大家的力量不是更好玩

别急, 还在初期阶段, 思绪乱得很 ... {:lol:}

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

kxhui88 发表于 2021-10-8 17:06:36

大神,现在进行的如何了,什么时候可以分享一下!

chunjiu 发表于 2021-10-8 21:07:38

kxhui88 发表于 2021-10-8 17:06
大神,现在进行的如何了,什么时候可以分享一下!

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

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

kxhui88 发表于 2021-10-9 00:05:29

chunjiu 发表于 2021-10-8 21:07
重新架构了,现在处于新框架的构造初期,今年内不可能有新内容推出了!

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

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

chunjiu 发表于 2021-10-9 07:05:38

本帖最后由 chunjiu 于 2021-10-9 07:06 编辑

kxhui88 发表于 2021-10-9 00:05
请问大神,能否把现有的分享学习一下

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

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

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

kxhui88 发表于 2021-10-9 10:35:19

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

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

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

chunjiu 发表于 2021-10-9 14:40:28

本帖最后由 chunjiu 于 2021-10-9 15:12 编辑

kxhui88 发表于 2021-10-9 10:35
好啊,好啊,我只是想学习学习!

兄弟,注意哈:

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

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

PS:

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

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

kxhui88 发表于 2021-10-9 22:33:07

chunjiu 发表于 2021-10-9 14:40
兄弟,注意哈:

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


多谢大神分享!
页: [1]
查看完整版本: B52 - 51 指令的执行密度 , 针对性的优化, DEMO 的指令执行统计