找回密码
 立即注册
楼主: eanry

为什么 8H8K64U的DMA_SPI比纯硬件SPI没任何速度提升?

[复制链接]
  • 打卡等级:初来乍到
  • 打卡总天数:5
  • 最近打卡:2025-10-03 08:54:28
已绑定手机

2

主题

8

回帖

66

积分

注册会员

积分
66
发表于 2025-10-3 08:54:28 来自手机 | 显示全部楼层
神农鼎 发表于 2025-10-2 21:25
让 STC8H8K64U工作在 40MHz, 40MHz/4 = 10MHz 比 24M/4 = 6M快
另外,双缓冲乒乓技术,高效刷屏 ...

感谢!算法上已经是双缓冲乒乓运作了,具体可以看文字说明或图片代码。调试发现不是算法问题,是芯片的dma单次传输数据量成为了瓶颈。不知道是不是8位机的限制。
通过算法优化原则,把运算量最大的数据准备(循环体)过程再优化了,性能有少量提升。后面再单纯的提高主频的意义,对dma比纯硬件的比率并无高。
回复

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:5
  • 最近打卡:2025-10-03 08:54:28
已绑定手机

2

主题

8

回帖

66

积分

注册会员

积分
66
发表于 2025-10-3 09:38:46 来自手机 | 显示全部楼层
另外,习惯了电脑上的32位甚至是64位编程,对8位编程真是不习惯。16位变量的++运算,编译成机器字节码竟然也要8-12个字节,更不要说数组或指针寻址等运算,基本上都要30个字节指令组合起步,这让我无言。记得30年前用的286汇编都没有这么庞大的代码。所以,算法优化也难以弥补机器代码的细碎。看来选型对性能影响深远啊!
回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:523
  • 最近打卡:2025-10-15 12:20:44

9

主题

475

回帖

3321

积分

论坛元老

积分
3321
发表于 2025-10-3 11:04:46 | 显示全部楼层
性能和成本是基本对应的
干什么活就用什么芯片.不同类型芯片不同使用场合没有可比性,DMA要是真没用,费劲开发他干吗.
64位处理器再厉害,我拿它算个8位单字节运算,同样时钟频率下,跟8位处理器比没有任何优势
回复

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:5
  • 最近打卡:2025-10-03 08:54:28
已绑定手机

2

主题

8

回帖

66

积分

注册会员

积分
66
发表于 2025-10-3 11:58:34 来自手机 | 显示全部楼层
网老四 发表于 2025-10-3 11:04
性能和成本是基本对应的
干什么活就用什么芯片.不同类型芯片不同使用场合没有可比性,DMA要是真没用,费劲开 ...

对,也认同。所以我前面也说了,选型很重要。
但不可否认这款芯片的DMA,如果其他功能的DMA一次最多只能256字节,相对来说就显得很鸡肋。
请仔细阅读我的每个文字,由此至终我并没有说dma没用,别曲解我的意思。
我的意思是说引入双缓冲后相关代码的指令消耗时间已经与dma的快速所抵消了,代码也复杂了,所以鸡肋。
另外我感觉32位芯片在处理8位任务,应该只会游刃有余而不会不胜任或吃力,只是性价比低而矣。
回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:523
  • 最近打卡:2025-10-15 12:20:44

9

主题

475

回帖

3321

积分

论坛元老

积分
3321
发表于 2025-10-4 22:22:42 | 显示全部楼层
任何功能都有适用范围,DMA本身好处,并非简单的认为用了它就会有好处.
如果不是需要让cpu干别的事,那么DMA跟CPU直接访问外设没有任何速度上的区别,
DMA仅仅是在CPU能够充分准备好数据以后,不用傻傻等待数据传输完.
如果CPU忙得连数据准备的工作都完不成,任何处理器都不会从DMA上获得好处.

当然如果 是 DMA-P2P, 外设直接送外设,就不用 CPU准备数据
回复

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:208
  • 最近打卡:2025-10-15 11:03:15

787

主题

1万

回帖

1万

积分

管理员

积分
19770
发表于 2025-10-5 02:08:17 | 显示全部楼层
参照下面管脚兼容的 STC32G12K128的
软件 双缓冲 乒乓 技术,
256字节的 DMA缓冲区,比无限深度的 DMA缓冲区,
只是牺牲 0.26% 的 CPU时间而已。
当然 STC32G12K128的 DMA缓冲区是 8K xdata 深度。
AI8051U的 DMA 缓冲区是 32K xdata 深度,
===还支持 DMA-P2P, 外设直接送外设

截图202510050206175142.jpg

截图202510050205286666.jpg

https://www.stcaimcu.com/data/download/Datasheet/STC32G.pdf


截图202510050212478383.jpg
https://www.stcaimcu.com/data/download/Datasheet/AI8051U.pdf
回复

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:208
  • 最近打卡:2025-10-15 11:03:15

787

主题

1万

回帖

1万

积分

管理员

积分
19770
发表于 2025-10-5 02:27:31 | 显示全部楼层
回复

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:208
  • 最近打卡:2025-10-15 11:03:15

787

主题

1万

回帖

1万

积分

管理员

积分
19770
发表于 2025-10-5 02:50:22 | 显示全部楼层
STC32G144K246-视频级动画效果演示 - 老梁亲测 AI33-ARM 内部平台系列讲座 国芯人工智能技术交流网站 - AI32位8051交流社区

STC32G144K246-LQFP100/64,  刷彩屏的能力
120MHz-CPU, 极限 140MHz
53MHz  以上的 I/O 输出速度,比 AI8051U的 I/O输出快4倍以上
DAC + OP 已验证

AI8051U, 40MHz,  13.5MHz-I/O 速度,@3.3V
320*240, AI8051U 刷彩屏
==》 320*240*2 = 153,600;    28帧/S

480*320, AI8051U 刷彩屏
==》 480*320*2 = 307,200;    14帧/S

800*480, AI8051U 刷彩屏
==》 800*480*2 = 768,000;    5.6帧/S

STC32G144K246-LQFP100/64, 刷彩屏AI8051U的4倍以上的速度
120MHz-CPU, 极限 140MHz
53MHz-I/O 速度,
===>刷彩屏是 AI8051U 4倍的速度

STC32G144K246-LQFP100/64, QSPI-4线读FLASH, DMA-i8080并口-TFT接口 刷彩屏
===4倍AI8051U的 I/O 输出速度
320*240*2 = 153,600;    i8080-8位或16位并口刷彩屏,28帧/S * 4 = 112 /S;   
===改成 SPI-
刷彩屏 要除4 = 28 /S;
480*320*2 = 307,200;    i8080-8位或16位并口刷彩屏,14帧/S * 4 = 56 帧/S;     
===改成
SPI-刷彩屏要除4 = 14 /S;
800*480*2 = 768,000;    i8080-8位或16位并口刷彩屏,5.6帧/S * 4 = 22.4 帧/S;
===改成
SPI-刷彩屏要除4 = 5.6 /S;

1024*600*2 = 1,228,800;    i8080-8位或16位并口刷彩屏
===320*240*2 = 153,600的,28帧/S / 8 / 4 = 3.5 帧/S * 4 = 14 帧/S;

1024*768*2 = 1,572,864;   
i8080-8位或16位并口刷彩屏
===320*240*2 = 153,600的,28帧/S / 10.24 / 4 = 2.73 帧/S * 4 = 11 帧/S;


现在的 STC32G144K246的I/O输出速度实际应在 53MHz ~ 64MHz附近
===正在设计 120MHz 输出速度的 I/O, 将刷屏速度再 * 2
回复

使用道具 举报 送花

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

本版积分规则

QQ|手机版|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-10-16 05:33 , Processed in 0.145686 second(s), 85 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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