加载中…
个人资料
指南针
指南针
  • 博客等级:
  • 博客积分:0
  • 博客访问:21,852
  • 关注人气:1
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
相关博文
推荐博文
谁看过这篇博文
加载中…
正文 字体大小:

cpu指令和应用程序间关系(转)

(2012-08-24 17:21:27)
标签:

it

分类: 电脑常识
这么说吧,CPU的控制权在操作系统内核和应用程序之间转来转去,当内核获得控制权时,CPU执行操作系统的指令,操作系统做操作系统应该做的事,也就是进程管理,内存管理,设备管理,文件管理等这一类的事情,MMX,SSE,AES/AVX这些新指令集大多是增强浮点运算,多媒体处理之类性能的,内核使用的意义不大,也尽可能不去使用这些特殊的指令集来完成,这样无需修改内核就可以在兼容的CPU上运行。

  当应用程序获得控制权时,CPU执行应用程序的指令,而应用程序可以使用任何CPU支持的指令集。一般来说,为了获得更好的性能,应用程序会尽可能使用新的指令集以更好的完成任务。

  只要在某个操作系统上运行的应用程序,就不存在什么不经过操作系统这一层这一说,必须经过操作系统,至少上面说的CPU控制权的转移就是由操作系统完成的。但是操作系统不关心应用程序使用了什么指令集,它只需要将CPU的控制权转移到应用程序就可以了。操作系统也不关心应用程序使用高级语言还是汇编语言来编写。因为最终都会变成机器语言。

  一般来说,当新的指令出来时,编译器厂商会跟进推出支持新指令集的汇编器,然后会推出支持这些新指令集的高级语言编译器,使用这些新的汇编器,编译器即可生成使用新指令集的应用程序。如果高级语言编译器暂时不支持,那么就用支持的汇编器,用汇编语言写。如果连汇编器都还没推出,那么只好用机器语言了。

  比如下面这样的新闻:
Intel日前对Intel编译器软件进行了更新,他们面向Windows/Linux/Mac OS X操作系统发布了最新版本的Intel Compiler Professional Editions 11.1。新版本的编译器将支持Intel高级向量指令集扩展(AVX),AVX是Intel Nehalem架构的继任者Sandy Bridge中所新增的指令集扩展.这次更新还改善了编译器与微软Visual Studio/Eclipse/Xcode等开发工具的兼容性。

0

阅读 评论 收藏 转载 喜欢 打印举报/Report
  • 评论加载中,请稍候...
发评论

    发评论

    以上网友发言只代表其个人观点,不代表新浪网的观点或立场。

      

    新浪BLOG意见反馈留言板 电话:4000520066 提示音后按1键(按当地市话标准计费) 欢迎批评指正

    新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 会员注册 | 产品答疑

    新浪公司 版权所有