CPU与加速芯片之间的通信总线

加速芯片与CPU之间的连接一般通过DMA进行。在进行DMA描述之前,我们先了解一下CPU与加速芯片的互联总线,加速芯片与主CPU间的通信总线,一般要求低延迟、高带宽。

从这个看,加速芯片最好是挂在CPU的内部高速总线上,比方说intel的QPI总线,他不但高带宽、低延迟,而且FPGA加速芯片可以做到直接共享主CPU的内存,而不必像PCIE这样,较多数据的计算时基本上要进行因此内存拷贝。更牛逼的是intel的QPI可以做到硬件保持cache一致性。。。其他家也有一些类似的技术,比如Power PC的CAPI技术,ARM、xilinx等推动的CCIX等。但鉴于Intel在服务器处理器领域的霸主地位,个人觉得其他家很难有机会。

其次就是延迟稍大一些的PCIE,延迟大了以后,在处理上一般就要用到命令队列了,延迟越大,为了充分利用总线带宽,命令队列就要做到比较深,设计更复杂,也会带来更大的处理延迟,软件上要做到高性能就相对更难一些。

再往后的就要走类似以太这种网络接口了,延迟更大,但也有好处,可以连接更多的设备进行加速。

一般性的原则是,加速芯片约靠近CPU,延迟越低,设计时CPU与加速器之间的耦合性可以强一些,放到硬件加速的函数可以设计的“小而灵活”,越远耦合性应该越小。到网络接口连接加速芯片时,那就尽量松耦合了,要把一大块的功能放到加速芯片中。



猜你喜欢

转载自blog.csdn.net/weixin_38712697/article/details/80212146