由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
_robot版 - 实时进程间通讯问题
相关主题
嵌入式编程问题Touchpad超频到1.8G,感觉在飞,现在正式比ipad快了
大家都打算作一些什末?F4 Phantom好像有问题啊
有没人对Loongson CPU感兴趣为什么我的asus ac1900硬盘速度这么慢?
两个$199想问一下编译用便宜量又足的工作站推荐
回国创业团队请帮我查查这个ssd是m2 sata 3 还是m2 nvme
装机没有点亮,请教一下原因求大神解释下copy on write
MBP显卡被降频后前对比,欢迎新13"贴成绩谁能给介绍一下unix服务器的文件权限操作阿?
MBP显卡阉割后前对比btsync 和 syncthing
相关话题的讨论汇总
话题: old话题: data话题: cpu话题: 进程话题: 区域
1 (共1页)
r******s
发帖数: 925
1
两个不同的real time进程运行在不同的CPU上面,使用一段共享内存进行同步
内存容量足够大,我想采用的方法,就是划分块
A块属于A进程写,B只读的区域,
B块属于B进程写,A只读的区域。
由于没有使用中断,两边都是在固定的时钟周期内写自己的区域同时读对方的区域
这样编程比较简单,我想了解一下可能出现的后果,
比如,A读了B正在写的区域
那么我可以为每个块设置一个标志位,代表在写,在读,或者ready
有没有哪位大侠给出一个简单但是确保安全的办法?
t**********l
发帖数: 24
2
不是大侠,胡乱说一下,不对请指正。
假设用DUAL PORT RAM,两CPU不存在读写同一区 地址或数据总线冲突问题(不然要用硬
件如令牌环等裁决总线)。
假设CPU1写A区时间最长为 Tw_max
CPU2读A区时间最长为 Tr_max
CPU2读时,读三次,每次间隔Tw_max+delta, 三取二。
CPU1写时,写一次,但与上一次写应间隔至少 2(Tw+delta) + 3Tr
r******s
发帖数: 925
3
一看就是明白人啊,知道俺是在搞DP RAM,
我想试试标志位,每个周期内只允许一次写,写的时候锁定
理论上只要写+读的时间小于周期时间,都是可以实现的
根据我的经验估计这个时间只是周期时间的1/10或者更短
我先run一天一夜看看到底有什么错误发生。

【在 t**********l 的大作中提到】
: 不是大侠,胡乱说一下,不对请指正。
: 假设用DUAL PORT RAM,两CPU不存在读写同一区 地址或数据总线冲突问题(不然要用硬
: 件如令牌环等裁决总线)。
: 假设CPU1写A区时间最长为 Tw_max
: CPU2读A区时间最长为 Tr_max
: CPU2读时,读三次,每次间隔Tw_max+delta, 三取二。
: CPU1写时,写一次,但与上一次写应间隔至少 2(Tw+delta) + 3Tr

t**********l
发帖数: 24
4
若有结果了,望能通报下。

【在 r******s 的大作中提到】
: 一看就是明白人啊,知道俺是在搞DP RAM,
: 我想试试标志位,每个周期内只允许一次写,写的时候锁定
: 理论上只要写+读的时间小于周期时间,都是可以实现的
: 根据我的经验估计这个时间只是周期时间的1/10或者更短
: 我先run一天一夜看看到底有什么错误发生。

r******s
发帖数: 925
5
结果有了,timer是记录的print的时刻,秒为单位
CPU和CPU都是1ms的时间中断,每个时间中断各自count加一次
这样两者的计数理想差值应该是恒定的,但是实际是有偏差的
同步误差在1/150000ms 到 1/1000 ms之间,没出现读写冲突问题
测试的是单个字节读写。今儿再做做block 读写
timer1: old 0, data 386
timer99: old 386, data 385
timer256: old 385, data 384
timer434: old 384, data 383
timer609: old 383, data 382
timer775: old 382, data 381
timer936: old 381, data 380
timer1095: old 380, data 379
timer1252: old 379, data 378
timer1408: old 378, data 377
timer1563: old 377, data 376
timer1719: old 376, data 375
timer187

【在 t**********l 的大作中提到】
: 若有结果了,望能通报下。
c******a
发帖数: 600
6
nice
r******s
发帖数: 925
7
感觉这个误差属于机器误差部分,是可以忍受的
这两天一直忙着修车,没进展,等block的出来了我再贴一下我的程序设计吧

【在 r******s 的大作中提到】
: 结果有了,timer是记录的print的时刻,秒为单位
: CPU和CPU都是1ms的时间中断,每个时间中断各自count加一次
: 这样两者的计数理想差值应该是恒定的,但是实际是有偏差的
: 同步误差在1/150000ms 到 1/1000 ms之间,没出现读写冲突问题
: 测试的是单个字节读写。今儿再做做block 读写
: timer1: old 0, data 386
: timer99: old 386, data 385
: timer256: old 385, data 384
: timer434: old 384, data 383
: timer609: old 383, data 382

1 (共1页)
相关主题
btsync 和 syncthing回国创业团队
吐槽一下android 4.4装机没有点亮,请教一下原因
笔记本sd卡槽坏了,联想保修吗MBP显卡被降频后前对比,欢迎新13"贴成绩
实时进程间通讯问题MBP显卡阉割后前对比
嵌入式编程问题Touchpad超频到1.8G,感觉在飞,现在正式比ipad快了
大家都打算作一些什末?F4 Phantom好像有问题啊
有没人对Loongson CPU感兴趣为什么我的asus ac1900硬盘速度这么慢?
两个$199想问一下编译用便宜量又足的工作站推荐
相关话题的讨论汇总
话题: old话题: data话题: cpu话题: 进程话题: 区域