在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 2655|回复: 7

[求助] FPGA WFI

[复制链接]
发表于 2020-5-30 07:25:56 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

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

x
最近对MPSOC进行WFI测试,发现一个问题是:当3个Core(1~3)都处于等待中断以后(执行了WFI),对于同一中断的响应时间不一,即响应中断后立即读全局计数器,发现读出的数据相差160ns~170ns,亦即相差近20条指令执行时间,请大V指点?如何做到同步?
发表于 2020-6-1 09:33:45 | 显示全部楼层
你指的同步是啥意思? 3 个 core 必须同时开始处理,还是必须同时处理完毕?

完全一个时间点执行是不可能的,一个 cache miss 或者跳转就差的远了。及时 CPU core 能够同时相应,你的全局计数器也不能并行相应三个请求,差 20 个 clock 估计在总线访问的顺序执行上。不知道你的中断处理怎么做的,这个量级也可能是 L1 cache miss L2 cache hit。
 楼主| 发表于 2020-6-1 18:10:53 | 显示全部楼层


abeey 发表于 2020-6-1 09:33
你指的同步是啥意思? 3 个 core 必须同时开始处理,还是必须同时处理完毕?

完全一个时间点执行是不可能 ...


我这里指的同步是同时开始同时结束。执行的程序是完全相同的。同步目的是可靠性要求。
WFI是同步开始。如果执行的程序是相同的,则也应是同时结束。
 楼主| 发表于 2020-6-1 18:12:22 | 显示全部楼层


lutj_1101 发表于 2020-6-1 18:10
我这里指的同步是同时开始同时结束。执行的程序是完全相同的。同步目的是可靠性要求。
WFI是同步开始。如 ...


我这里不进行中断处理。
WFI只是利用中断同步启动CPU执行。
发表于 2020-6-3 20:47:39 | 显示全部楼层


lutj_1101 发表于 2020-6-1 18:10
我这里指的同步是同时开始同时结束。执行的程序是完全相同的。同步目的是可靠性要求。
WFI是同步开始。如 ...


同时开始个概率会比较高,同时结束的概率非常低,需要用自旋锁之类的来保证同步。

及时程序执行的一样,硬件上执行时间也是不同,会有 cache miss,会有跳转预测 miss,如果读取外部寄存器会有总线竞争,至少到某个桥的地方有竞争,需要变成顺序。
 楼主| 发表于 2020-6-4 18:04:39 | 显示全部楼层


abeey 发表于 2020-6-3 20:47
同时开始个概率会比较高,同时结束的概率非常低,需要用自旋锁之类的来保证同步。

及时程序执行的一样, ...


目前使用WFI能够基本做到3核同步,就如你所说,读全局计数器不能做到完全同步,但随后的读数分析表明基本可实现步长相等,但偶尔有步长差,但差值最大为2。
发表于 2020-6-5 11:28:02 | 显示全部楼层


lutj_1101 发表于 2020-6-4 18:04
目前使用WFI能够基本做到3核同步,就如你所说,读全局计数器不能做到完全同步,但随后的读数分析表明基本 ...


你的中断不做其他的事情?随着做的事情越来越多,所需要的时间就会差别越来越大。
 楼主| 发表于 2020-6-5 17:04:44 | 显示全部楼层


abeey 发表于 2020-6-5 11:28
你的中断不做其他的事情?随着做的事情越来越多,所需要的时间就会差别越来越大。
...


中断事务由主核core0承担,同步核用于可靠性。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /2 下一条


小黑屋| 手机版| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-12-22 13:25 , Processed in 0.020483 second(s), 7 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表