您现在的位置: 主页 > 嵌入式操作系统 > armlinux > Linux x86 和ARM什么区别?
本文所属标签:
为本文创立个标签吧:

Linux x86 和ARM什么区别?

来源: 网络用户发布,如有版权联系网管删除 2020-04-16 

Linux x86 和ARM什么区别? 问题:
最近在用三星的一款i5处理器的Windows平板,和iPad,以及其他使用ARM处理器的手机相比,发热量大很多,甚至需要借助风扇来散热,耗电量也大了不少。
那么就很奇怪,在主频相差不大,并且实际执行效果差不多的情况下,x86架构的处理器的发热量和功耗为什么会那么大?这种差异到底是硬件以及处理器的指令集本身的问题,还是软件层面的问题?

回答1:
说x86和ARM处理器“实际执行效果差不多”其实有所不妥。楼主也说了比较的几个设备主要是windows平板,ipad和智能手机。这些平台上的程序都是移动环境下的应用,大多逻辑简单功能单一,没什么“计算”可言。ARM处理器本身定位于嵌入式平台,应付轻量级、目的单一明确的程序,现在应用在移动设备上正是得心应手。x86定位于桌面和服务器,这些平台上很多应用是计算密集型的,比如多媒体编辑、科研计算、模拟等等。因此将x86和ARM在移动环境下做对比得出“差不多”是不好的。

由于定位的不同,ARM处理器基于精简指令集(RISC)架构。指令集数量少就可以简化硬件逻辑的设计,减少晶体管数量,也就意味着低功耗。而且由于移动平台应用通常简单,程序的控制流不复杂,执行效率没有必要很高,所以流水线、分支预测等硬件逻辑都比较简单。这些都降低了晶体管总量。同时因为移动设备有电池的能源限制,ARM的电源管理是作为重要部分特别设计了的。比如移动设备的处理器在待机时通常只以极低的主频在运行,甚至可以暂时关闭闲置的核心、协处理器来降低功耗。

x86就截然不同。x86是复杂指令集(CISC)架构,存在很多机器指令,只为了高效地完成一项专门任务(比如MMX, SSE中的指令)。这就使得硬件的逻辑很复杂,晶体管数量庞大。为了高效地进行运算,x86架构有较长的流水线以达到指令级并行(ILP)。长流水线带来的一个弊端,就是当遇到分支时,如果预载入分支指令不是未来真实的分支,那么要清空整个流水,代价较高。所以x86为此还必须有复杂的分支预测机构,确保流水线的效率。再加上多级cache,支持超线程、虚拟化等等,x86的复杂度其实相当高。

回答2:
因为ARM是为了低功耗设计的,而X86是为了高性能。你想把ARM做到X86一样的性能,势必增加核心复杂度,增加指令集,到时候你猜ARM对X86还能有多少功耗优势?X86精简核心规模抛弃部分指令集,一样也做到了功耗5W以下的ATOM,你又要问为什么那些X86手机功耗高发热大,因为没有专为X86平台开发的手机APP,你跑在X86手机上的APP全都是二次转换运行的,芯片一直高负载。你ARM手机一直高负载功耗不高发热不大?


————————————————
版权声明:本文为CSDN博主「iblade」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/iblade/java/article/details/79628889


              查看评论 回复



嵌入式交流网主页 > 嵌入式操作系统 > armlinux > Linux x86 和ARM什么区别?
 

"Linux x86 和ARM什么区别?"的相关文章

网站地图

围观()