积分 441 最后登录 2024-4-18 精华 0 阅读权限 30 主题 149 UID 297641 帖子 1102 PB币 968 威望 0 贡献 0 技术 1 活跃 2508
UID 297641 帖子 1102 PB币 968 贡献 0 技术 1 活跃 2508
发表于 2020-11-4 10:41:43
IP属地重庆
| 显示全部楼层
ARM是为了低功耗从X86分出来设计的精简指令
你想把ARM做到X86一样的性能,势必增加核心复杂度,增加指令集,到时候你猜ARM对X86还能有多少功耗优势?
X86精简核心规模抛弃部分指令集,一样也做到了功耗5W以下的ATOM,你又要问为什么那些X86手机功耗高发热大,因为没有专为X86平台开发的手机APP,你跑在X86手机上的APP全都是二次转换运行的,芯片一直高负载。
强大的性能当然需要更大的功耗。两者可以拿摩托和载重卡车打比方,你都可以载个妹子兜风,但是你不能嫌卡车耗油比摩托多.....
X86平板和arm平板不管从软硬件都有很大不同,可以说摩托和重卡的比喻在两方面都是有效的
最后的结果肯定是高端性能还是X86 但是基础人群的应用ARM肯定可以满足需求
由于定位的不同,ARM处理器基于精简指令集(RISC)架构。指令集数量少就可以简化硬件逻辑的设计,减少晶体管数量,也就意味着低功耗。而且由于移动平台应用通常简单,程序的控制流不复杂,执行效率没有必要很高,所以流水线、分支预测等硬件逻辑都比较简单。这些都降低了晶体管总量。同时因为移动设备有电池的能源限制,ARM的电源管理是作为重要部分特别设计了的。比如移动设备的处理器在待机时通常只以极低的主频在运行,甚至可以暂时关闭闲置的核心、协处理器来降低功耗。
x86就截然不同。x86是复杂指令集(CISC)架构,存在很多机器指令,只为了高效地完成一项专门任务(比如MMX, SSE中的指令)。这就使得硬件的逻辑很复杂,晶体管数量庞大。为了高效地进行运算,x86架构有较长的流水线以达到指令级并行(ILP)。长流水线带来的一个弊端,就是当遇到分支时,如果预载入分支指令不是未来真实的分支,那么要清空整个流水,代价较高。所以x86为此还必须有复杂的分支预测机构,确保流水线的效率。再加上多级cache,支持超线程、虚拟化等等,x86的复杂度其实相当高。
打了这么多字,其实就是为了说明一点,虽然现在ARM很强大,但它距离X86还是非常遥远,并没有因为这几年的进步而缩短,实际上反而在被更快的拉大。毕竟它们设计的出发点不一样,因此根本不具备多少可比性,X86无法做到ARM的功耗,而ARM也无法做到X86的性能。这也是为什么ATOM一直以来都不成功的原因所在——Intel试图用自己的短处去和别人的长处对抗,结果自然是不太好的,要不是Intel拥有这个星球上最先进的半导体工艺,ATOM根本都不可能出现。而ARM如果尝试去和X86拼性能,那结果自然也好不到哪儿去,原因刚刚也解释过了。不过这也不意味着ARM以后就只能占据低端,毕竟任何架构都有其优点,一旦有应用针对其进行优化,那么就可以扬长避短。X86的繁荣也正是因为整个世界的资源都针对它进行了优化所致。只要能为ARM找到合适的应用与适合的领域,未来ARM也未必不可以进入更高的层次。
展开阅读全文​