您当前的位置: 首页 > 

凌云时刻

暂无认证

  • 0浏览

    0关注

    1437博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

趣说cpu指令集之别

凌云时刻 发布时间:2019-12-13 07:53:07 ,浏览量:0

近期,我们发现很多同学对CPU指令集方面的知识比较匮乏,今天我们就给大家介绍下CPU指令集。

前言

在说正题之前,我相信小伙伴们都有各自擅长的方言吧?像粤语、东北话、闽南语及上海话等等,甚至想出国的同学还要学习当地的语言,例如英语、法语等。同样,我们在进行计算机编程时,也会遇到汇编、C、C++、Java、dotnet、PHP及Python等不同语言,他们各自的语法和写法都不同。如果我拿一段Java代码,放到Python解释器上执行,是根本行不通的。

cpu指令集

同理可知,作为计算机最核心的CPU也有其自身的语言,也就是CPU指令集。CPU指令集是指可以操控该CPU进行运算的所有指令。操作系统内核及更上层的应用程序正是通过这些指令直接操控CPU进行运算和其它操作。

这些CPU指令是以二进制的形式存在的。并且根据CPU不同的功能和特性,设计了不同的CPU指令集,甚至一些指令集的定义都完全不同。就像上文提到的不同语言,就像是你只会中文却找了一个英国人作为合作伙伴,相互之间没有翻译难以准确沟通。同样,不同的CPU指令集一定要搭配相应的程序才能工作。目前指令集有X86、ARM、MIPS、OpenPOWER和国产的SW及开源的RISC-V架构。

编译

小伙伴们平时用C、C++等编写的程序代码需要通过编译器转化成对应CPU指令集的二进制编码,才能在对应的CPU上面执行。这个转换过程,我们称它为“编译”,从操作系统内核到各种库及各种驱动程序,再到开发的小程序都要针对对应的CPU指令集进行编译后才能运行。

因此,有小伙伴问:龙梦的补丁被Linux内核5.5收录后,是不是任何采用该新内核的发行版都能在龙芯上直接运行?答案显然不是,也只有如Fedora 28龙芯版这样的被航天龙梦团队专门针对龙芯使用的MIPS指令集优化编译的操作系统解决方案才能在龙芯上运行。

关于“Linux宝库”微信公众号:

欢迎关注"Linux宝库"微信公众号,这里每天发布最新的开源人物和开源事件。谨以此号记录Linux和开源业界的点点滴滴,为开源爱好者和从业者点亮人生。

- END -

- 责任编辑:陈绪 -

关注
打赏
1663816507
查看更多评论
立即登录/注册

微信扫码登录

0.0767s