微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 片上嵌入式多处理器的一致性机制设计

片上嵌入式多处理器的一致性机制设计

时间:07-12 来源:互联网 点击:

统中适当地建立一个全局串行顺序,则每个代理程序就可以按照这个顺序来处理请求。必须按照公平方式来建立全局串行顺序,并且公平地将各种资源(端口、总线、缓冲器)分配给多线程/多处理器。

另一个与防止活锁有关的问题是流量控制。系统的流量控制将限制资源的分配。以ad-hoc方式实现的流量控制可能导致活锁,而常见的一种情况就是在响应请求的同时,过度地使用重试或否定应答(NACK)。

其它设计考虑

除了死锁和活锁之外,设计工程师还应该考虑以下的问题:

缓存层次和DMA:当事务穿过缓存层次时将产生死锁问题。通常,我们可以采纳在更广泛的协议中使用的相同机制,以便在单独的(虚拟或真实)通道/FIFO中保留请求和回复。

另一个问题是确定增强一致性的缓存级别(L1缓存、L2缓存或L3缓存),以及I/O应在哪个位置上从一致性域进入和提取缓存线。通常情况下,包含(inclusion)问题的相关解决机在很大程度上依赖于具体的应用或系统。通过在一致性系统的事务集合包含线索(hint),可一致性系统中使用线索来进行预取和数据放置。一个显而易见的例子就是路由。在路由系统中,需要把外来IP包的头文件与一个表进行匹配,以该IP包的目标缓冲器/接口。通过利用线索对事务进行分类(如读出/写入、命中/不命中策略),可以将这些头文件放在靠近较低缓存级别的位置。

同步和屏障(barrier)操作:许多ISA提供各种必须映射到一致性系统的原子语义(atomic primitive)。较弱的内存系统要求一种被称为屏障的安全网落,它可以在发送敏感代码序列期间,强迫发生某种行为(通常在处理器或线程发出的“存储”和“载入”操作之间)。这种屏障一般通过插入ISA支持的专用屏障指令来实现。一致性系统可能需要通过动态地停滞某些事务来对这些操作作出响应,以支持这些行为。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top