posts - 116,  comments - 123,  trackbacks - 0
     当系统在做Memory IO操作的时候,用Index和Data间接方式访问寄存器(比如APIC 寄存器),这个时候需要加入写延时,否则,数据就会错位,因为系统硬件做流水操作,导致程序不能严格的顺序执行。而以前的延时值都是自己在实际中进行测试,选择一个比较合适的值,比较笨的方法!后来同事发现了mfence这个指令,可以正好使用在这个地方。mfence保证系统在后面的memory访问之前,先前的memory访问都已经结束。这是mfence是X86cpu家族中的新指令。

SFENCE,LFENCE,MFENCE指令提供了高效的方式来保证读写内存的排序,这种操作发生在产生弱排序数据的程序和读取这个数据的程序之间。 
   SFENCE——串行化发生在SFENCE指令之前的写操作但是不影响读操作。 
   LFENCE——串行化发生在SFENCE指令之前的读操作但是不影响写操作。 
   MFENCE——串行化发生在MFENCE指令之前的读写操作。
sfence:在sfence指令前的写操作当必须在sfence指令后的写操作前完成。
lfence:在lfence指令前的读操作当必须在lfence指令后的读操作前完成。
mfence:在mfence指令前的读写操作当必须在mfence指令后的读写操作前完成。

注意:SFENCE,LFENCE,MFENCE指令提供了比CPUID指令更灵活有效的控制内存排序的方式。

mfence is a memory barrier supported by hardware, and it only makes sense for shared memory systems.

For example, you have the following codes
<codes1>
mfence
<codes2>

mfence or other memory barriers techniques disallows the code motion (load/store)from codes2 to codes1 done by _hardware_ . Some machines like P4 can move loads in codes 2 before stores in codes1, which is out-of-order.

Another memory barrier is something like ("":::"memory"), which disallows the code motion done by _compiler_. But IMO memory access order is not always guaranteed in this case.
posted on 2007-07-31 14:40 yuhen 阅读(2473) 评论(1)  编辑 收藏 引用 所属分类: 技术文档

FeedBack:
# re: 初始化IO APIC时,发现的汇编指令Mfence
2007-08-07 11:29 | 5

真的是好文章,写的不错 。以后会经常光顾,希望有更好的文章哦 !!

业务增长总是要求 IT 基础设施不断扩展。经常需要增加服务器以支持新应用,而这会导致许多服务器无法得到充分利用,进而致使网络管理成本增加,灵活性和可靠性降低。

虚拟化可以减少服务器数量的增加,简化服务器管理,同时明显提高服务器利用率、网络灵活性和可靠性。将多种应用整合到少量企业级服务器上即可实现这一目标。

通过整合及虚拟化,数百台服务器可以减少至数十台。10% 甚至更低的服务器利用率将提高到 60% 或更高。IT 基础设施的灵活性、可靠性和效率也得到改进。


全国第一家虚拟主机:支持伪静态.有利于提高排名

15G全能空间年付500元/月付70元 可免费试用
5GB 独立WEB空间、5GB 企业邮箱空间、5GB MSSQL数据库
IIS连接数据 500 个、500GB/月流量、共享日志文件空间

企业邮箱功能
赠送5GB 超大企业邮箱,500个Email企业邮箱用户
自动回复、自动转发、POP3、SMTP收发信、SMTP发信认证
邮件过滤、邮件拒收、邮件夹管理、邮件域管理、定制邮件数

数据库功能
支持5GB MSSQL数据库空间,5个用户数据库、Access

主机功能支持
采用安全稳定的Win2003 .net2.0 架构
支持ASP、PHP、ASP.NET、PERL等脚本、支持自定义CGI
全面支持.net2.0版本,独立的Application应用池,
支持SSI(Shtml),支持FrontPage扩展
可免费自行绑定5个域名、500个解析、500个子域名


详情咨询021-51695858 QQ:446601

官方网站: WWW.ABCNIC.COM (中国福网)

企业名称:上海福虎信息科技有限公司

公司地址:上海市浦东新区金桥浙桥路289号建银大厦A座7层

许 可 证:沪ICP证B2-20040529号

  回复  更多评论
  
只有注册用户登录后才能发表评论。
<2014年6月>
25262728293031
1234567
891011121314
15161718192021
22232425262728
293012345

Believe in who you are,
you are a shinning star!

常用链接

留言簿(14)

随笔分类(122)

随笔档案(116)

文章分类(2)

文章档案(2)

相册

BLOG

Study

Testing

最新随笔

搜索

  •  

积分与排名

  • 积分 - 96144
  • 排名 - 63

最新随笔

最新评论

阅读排行榜

评论排行榜