arm芯片用pcie总线是不是能提高数据传输性能和效率

xieyao你提到的ARM总线应该是存储扩展用的并行总线。而PCIE是用于微控制器/微处理器到外设之间的高速串行总线。两者是不一样的。另外,有的ARM芯片是带有PCIE接口模块的,比如TI的SITARA系列 Cortex-A8 内核的芯片。所以,问之前请先调查清楚。
■网友
先跑题一下,ARM的性能瓶颈不在总线上。举个例子,内存带宽是其重要的瓶颈之一。现有ARM的并非没有集成Pcie控制器,如陈俊直所说的TI部分系列,还有CB2,3的全志A20 SOC,对SOC而言,只要你买了授权的IP core是可以集成到基于ARM的芯片的。就题主的问题可以有两个方面来切入,一个是片内总线与片外总线,一个是ARM的性能。第一个,题主说的“arm自己有一套总线”,这个是片内总线的概念,比如AMBA,再细层次的AXI等。ARM与flash的通讯属于片外总线通讯,引申开来有各种片外总线,如:SPI,I2C,UART,PCIE等等。那通过PCIe来连接flash确实如 @疯狂的蔬菜说的,有点杀鸡用牛刀的意思。另外,外部总线速率上去了,但外设自身速率没上去也很难提高整体的通信速度。第二个,提高ARM整体性能。这个议题应该是整个ARM联盟一直孜孜不倦追求的。坦率的讲,仅从性能上,Intel确实可以吊打整个ARM联盟。原因在于精简指令集(RISC)是一种更为消耗带宽的指令集,但ARM 架构的内存带宽却远远不足,因此这是ARM性能提升的巨大瓶颈。我想,我们谈到的并能运算能力差,超线程能力等等瓶颈,其主要的根因也在这。所以,题主问这个问题可能是真心希望改善ARM性能,对于ARM阵营是可好消息。不过,方向可能有些偏颇,呵呵。
■网友
PCIE总线是一种外部总线协议,也就是说是一种片间总线协议。具体到这个问题上,假设我有一颗带PCIE功能支持的ARM芯片,PCIE可以用来连接CPU和特定的存储器控制器,而不是Flash芯片本身。这是因为大部分FLASH芯片是用来实现存储程序和数据的功能,具体到电路上面就是地址线给定一个地址-\u0026gt;使能-\u0026gt;数据线上出现相应地址的数据电平,实现这种功能并行接口就足够了。如果硬是要把Flash芯片挂在PCIE通道上面,每一颗Flash芯片都要额外多设计一个PCIE控制器,成本会大大提高。而在SoC一端,也要增加一堆PCIE控制器,成本和功耗都会提高很多(我印象中PCIE控制器在ARM的SoC里面是一个独立的IP核,要额外授权?如有误请指出)。其次,Flash是一种以block而不是bit组织的存储器,而且还有坏块的问题,因此必须要有一个专用的控制器对所有Flash芯片进行集中管理。ARM的SoC上面集成了控制器的话,Flash芯片就可以直接用并行总线接到SoC上面了,用PCIE就多做了一层无谓的转换了。最重要的一点是,目前大部分ARM的性能瓶颈和总线无关,发挥这些SoC的全部数据吞吐能力用PCIE总线的话有点杀鸡用牛刀了。


    推荐阅读