百科问答小站 logo
百科问答小站 font logo



ARM架构怎样设计才能在指令执行性能上超越X86架构? 第1页

  

user avatar   bei-ji-85 网友的相关建议: 
      

随便写点:

都什么年代了,还讨论精简指令集,x86架构内部也是精简指令集的,讨论这个没意义。

ARM的低功耗的一个原因是减少了硬件层面上对cache的一致性的保护,这样可以节省晶体管数量。很多人把晶体管数量当做低功耗的原因,其实是弄错了,晶体管数量少是结果,原因是ARM精简了很多设计(或者,叫偷工减料)

在这个链接里:en.wikipedia.org/wiki/M 有一个图:

里面的"Y"越多,意味着编写软件的时候需要的额外的指令就越多,这些指令就是要手工维护内存数据一致性的。

对于x86的32和64位架构来说,reorder的动作最少,所以在Intel和AMD的CPU上,编写操作系统编写驱动最容易,而对于ARM来说,需要大量的额外指令去刷新和同步cache,这对于软件来说非常不友好,也造成了额外的开销。

一个典型的例子就是,对于DMA操作来说,x86架构对于细节都做了隐藏,而ARM则需要额外指令通知硬件做刷新,否则数据就可能不一致,这对于IO操作来说非常不友好。

因为底层硬件设计就是这样的,除非把ARM推倒重来。网上的很多跑分软件并不实际做IO操作,单纯比较CPU的算力是没意义的,一个正常的软件,都需要给外设交换数据,这方面ARM对于x86而言,性能上没有优势。

单纯的比较单核的算力或者IPC毫无意义,普通用户不是拿CPU来搞科学计算的,绝大多数用户的应用都是有大量IO操作的,IO接口的设计才会直接影响到用户体验,道理就类似于:升级硬盘到SSD远比升级CPU效果更明显。

龙芯的单核同频率性能特别高,但实际呢?


user avatar   lulueh 网友的相关建议: 
      

我觉得,如果AMD intel来设计ARM处理器,性能追平自家的X86不是问题。

指令集不是问题,微架构设计能力才是。




  

相关话题

  操作系统中原子操作和锁的底层原理分别是什么?提供了哪些原子语义保证? 
  为何x86中“系统调用”要使用“内中断”实现? 
  ARM64 有能力完全取代 AMD64 吗? 
  最有可能干掉英特尔的公司是哪个?如何干掉? 
  汇编下call和ret指令是否有内存屏障的作用? 
  未来是属于 ARM 为代表的精简指令集还是 x86 为代表的复杂指令集? 
  为什么每款 ARM 电脑都需要专门为它编译的内核,而 x86 的可以通用? 
  x86指令集通过uops解码后通过RISC内核执行,是不是代表x86实际上已经属于半个RISC核? 
  c语言程序经过编译后,每条指令都有一个内存地址,那两个程序如果有相同内存地址的指令怎么办? 
  为什么英特尔x86等多数中央处理器不支持源操作数和目标操作数同时为内存的指令? 

前一个讨论
Windows 内核和 Linux 内核谁更复杂?
下一个讨论
多核cpu多线程同时执行cmpxchg指令会发生什么?





© 2024-09-20 - tinynew.org. All Rights Reserved.
© 2024-09-20 - tinynew.org. 保留所有权利