实现Cell上的FIFO通信及利用旁路技术提升性能
在多核心架构不断发展的今天,如何高效地进行数据通信和利用硬件资源成为了提升系统性能的关键。本文将探讨在Cell平台上实现FIFO通信的策略,以及利用旁路技术提升应用性能的方法。
减少DMA数据传输的解决方案
为了减少DMA数据传输,我们采用了令牌打包的方法。将多个令牌组合成一个数据包,通过一次DMA传输完成,这样可以减少DMA数据传输的次数,也就是减少同步次数。然而,确定数据包的大小是一个重要问题,它取决于DMA数据传输的启动方式,并且错误的数据包大小可能导致死锁。
两种实现FIFO语义的策略
- 推策略(Push Strategy) :生产者在产生一个或多个令牌后,首先发出写请求。然后消费者通过DMA传输数据,并向生产者发送通知消息。一次DMA数据传输需要两条同步消息。令牌打包在生产者端进行,数据包大小需要在数据传输前确定。错误的数据包大小可能在某些网络拓扑中导致死锁。例如,在一个包含3个任务和3个FIFO通道的网络中,如果将F1通道的数据包大小从保证无死锁的3个令牌改为4个令牌,当P1生成3个令牌时,它会继续生成新令牌以填满数据包,而不是将它们发送给P2。这会导致P2无法继续执行,因为P1的数据包未完成发送,数据不可用。同样,P3在从P2读取数据时会被阻塞,无法为P1生成令牌,从而使网络陷入死锁。因此,对于推策略,所有FIFO通道的安全数据包大小应在编译时计算。
- 拉策略(Pull Strategy) :
- 读取请求 :消费者首
超级会员免费看
订阅专栏 解锁全文
1053

被折叠的 条评论
为什么被折叠?



