免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: wait_rabbit
打印 上一主题 下一主题

[内核同步] 有关原子操作和 cache 一致性问题 [复制链接]

论坛徽章:
12
寅虎
日期:2013-12-04 20:37:4915-16赛季CBA联赛之广东
日期:2017-08-22 19:23:1215-16赛季CBA联赛之上海
日期:2016-06-18 23:05:05操作系统版块每日发帖之星
日期:2016-06-06 06:20:00操作系统版块每日发帖之星
日期:2016-06-05 06:20:00操作系统版块每日发帖之星
日期:2016-06-03 06:20:002015年辞旧岁徽章
日期:2015-03-03 16:54:152015年亚洲杯之巴勒斯坦
日期:2015-02-10 21:38:08卯兔
日期:2014-10-31 20:42:23申猴
日期:2014-06-11 17:15:10处女座
日期:2014-05-22 09:00:1815-16赛季CBA联赛之广夏
日期:2017-09-25 23:37:46
21 [报告]
发表于 2013-01-07 23:08 |只看该作者

那个 MESI 协议挺复杂的,各种状态,一直没决心也没时间把彻底搞明白。

人生百年,草木一秋。不如归去啊。

论坛徽章:
12
寅虎
日期:2013-12-04 20:37:4915-16赛季CBA联赛之广东
日期:2017-08-22 19:23:1215-16赛季CBA联赛之上海
日期:2016-06-18 23:05:05操作系统版块每日发帖之星
日期:2016-06-06 06:20:00操作系统版块每日发帖之星
日期:2016-06-05 06:20:00操作系统版块每日发帖之星
日期:2016-06-03 06:20:002015年辞旧岁徽章
日期:2015-03-03 16:54:152015年亚洲杯之巴勒斯坦
日期:2015-02-10 21:38:08卯兔
日期:2014-10-31 20:42:23申猴
日期:2014-06-11 17:15:10处女座
日期:2014-05-22 09:00:1815-16赛季CBA联赛之广夏
日期:2017-09-25 23:37:46
22 [报告]
发表于 2013-01-07 23:17 |只看该作者
hmsghnh 发表于 2013-01-07 10:11
明显,问题由于cnt++; 不是原子操作。改成原子操作应该就没这问题了。这里加内存屏障应该没什么作用吧。

...


  老兄你该早点出来点醒梦中人啊。

论坛徽章:
11
未羊
日期:2013-12-16 12:45:4615-16赛季CBA联赛之青岛
日期:2016-04-11 19:17:4715-16赛季CBA联赛之广夏
日期:2016-04-06 16:34:012015亚冠之卡尔希纳萨夫
日期:2015-11-10 10:04:522015亚冠之大阪钢巴
日期:2015-07-30 18:29:402015亚冠之城南
日期:2015-06-15 17:56:392015亚冠之卡尔希纳萨夫
日期:2015-05-15 15:19:272015亚冠之山东鲁能
日期:2015-05-14 12:38:13金牛座
日期:2014-12-04 15:34:06子鼠
日期:2014-10-16 13:40:4715-16赛季CBA联赛之八一
日期:2016-07-22 09:41:40
23 [报告]
发表于 2013-01-08 00:41 |只看该作者
本帖最后由 zylthinking 于 2013-01-08 01:18 编辑
wait_rabbit 发表于 2013-01-07 22:39
就是那个红字部分,应该不是一个特定延时(特定延时显然不靠谱,万一出啥事儿了,延时不管用咋办)..


我也不是特清楚, 但觉得延时不管用这个情况应该是不会出现的; 正如在无阻力下, 地球下落的物体加速度总是 9.8 一样, 不存在使物理定律失效的特例; 由于发送 MESI 时已经申请了总线, (这个应该是吧, 不确定), 那么剩下的几乎就没有什么太多异常了吧, 电流速度恒为 300000km/s,  只要按距离算到达了最远端CPU, 应该就可以干其他的了吧, 毕竟他还占着总线呢, 其他CPU 在能干一些破坏性的事情前, 肯定都有时间注意到 invalidate 消息的到来, 所以, 我也就瞎蒙了一个特定的延时, 因为, 我没从哪里听说过被  invalidate 的 CPU 还会发什么消息来确认, 搞得像是 TCP 三次握手似的

论坛徽章:
2
CU十二周年纪念徽章
日期:2013-10-24 15:41:34处女座
日期:2013-12-27 22:22:41
24 [报告]
发表于 2013-01-08 23:47 |只看该作者
多么经典,触目惊心的race啊。


论坛徽章:
0
25 [报告]
发表于 2013-01-09 10:19 |只看该作者
不懂楼主说什么,但是看起来很厉害的样子。

论坛徽章:
0
26 [报告]
发表于 2013-01-10 22:34 |只看该作者
楼主的这个实验和MESI协议无关吧。是时序的问题.
想象一下线程0执行完cnt++后,将新的数据写入内存,此时线程1也将cnt=0写入内存,这个先后顺序是无法保证的。所以需要原子的操作,保证在执行cnt++的过程不会被打断。至于内存屏障,只能用来防止同一个线程内CPU乱序执行吧

论坛徽章:
4
戌狗
日期:2013-08-15 18:22:43技术图书徽章
日期:2013-08-21 13:48:45巨蟹座
日期:2013-09-26 17:06:39处女座
日期:2013-12-25 11:26:10
27 [报告]
发表于 2013-01-14 11:54 |只看该作者
zylthinking 发表于 2013-01-08 00:41
电流速度恒为 300000km/s,  只要按距离算到达了最远端CPU, 应该就可以干其他的了吧, .


话说电流的速度好像是十几米,或者几十米每秒的样子,反正超级慢。

论坛徽章:
4
天秤座
日期:2013-10-18 13:58:33金牛座
日期:2013-11-28 16:17:01辰龙
日期:2014-01-14 09:54:32戌狗
日期:2014-01-24 09:23:27
28 [报告]
发表于 2013-01-14 12:09 |只看该作者
板子要看制版材料和与地的距离。理论上是电容电感~~~~~

论坛徽章:
12
寅虎
日期:2013-12-04 20:37:4915-16赛季CBA联赛之广东
日期:2017-08-22 19:23:1215-16赛季CBA联赛之上海
日期:2016-06-18 23:05:05操作系统版块每日发帖之星
日期:2016-06-06 06:20:00操作系统版块每日发帖之星
日期:2016-06-05 06:20:00操作系统版块每日发帖之星
日期:2016-06-03 06:20:002015年辞旧岁徽章
日期:2015-03-03 16:54:152015年亚洲杯之巴勒斯坦
日期:2015-02-10 21:38:08卯兔
日期:2014-10-31 20:42:23申猴
日期:2014-06-11 17:15:10处女座
日期:2014-05-22 09:00:1815-16赛季CBA联赛之广夏
日期:2017-09-25 23:37:46
29 [报告]
发表于 2013-01-14 12:31 |只看该作者
本帖最后由 wait_rabbit 于 2013-01-14 12:36 编辑
塑料袋 发表于 2013-01-14 11:54
话说电流的速度好像是十几米,或者几十米每秒的样子,反正超级慢。


塑料袋大虾,zyl 兄指的应该是电场的速度。

如果是导体中的自由电子,那就超级小了,貌似不到1毫米/秒。

====

弄混了,平均漂移速度是 10-4 m/s,平均热运动速度是 100+ m/s 。 电场的作用微乎其微。

论坛徽章:
0
30 [报告]
发表于 2013-01-16 22:13 |只看该作者
后面的大侠们跑题了。。。。。继续分析。。。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP