片上嵌入式多处理器的一致性机制设计
广播方式将事务广播给系统中所有的代理程序。因此,这些代理程序可以“窥探”它们的状态,然后采取适当的动作使数据项副本无效并对其进行更新。这种方式在一个事务的不同阶段之间的重叠是最小的,并被限制为有序串行化(管道化)。 由于受到带宽可扩展性、速度和总线可扩展性的限制,这些严格的监听总线机制逐渐演变成一些新的一致性机制。高端系统(仍与嵌入式CMP有关,尽管原因并不相同)常采用基于目录的机制。当已经存在低级别的多处理时,通常优先采纳监听“虚拟总线”机制。 监听虚拟总线串行化使用树型开关或层次环等专用的更高性能互连架构,特别是在事务的请求阶段。在这些系统中,互连负责建立全局串行顺序,同时从受限的、基于物理总线的互连转换到更高性能(如串行)的点到点信令链路。 另一方面,基于目录的机制在一个称为目录的新结构上完成串行化。这个目录通常驻留在内存模块中,用来存储系统中各种缓存行的状态。一般而言,这些系统与监听总线机制(虚拟或其它形式)相比,其在串行化和有序化方面对网络的依赖程度大大降低。由于目录机制不广播消息的数目,所以它们可用在非常大的系统中。 影响片上嵌入式多处理器一致性的另一个趋势是,为降低复杂性,带有多个处理器的下一代SoC将把通讯与计算分开。这种趋势已经促使了基于网络级芯片(NoC)的设计方法学的诞生,以及从电路交换NoC向分组交换NoC的转移。任何一种片上嵌入式多处理器的一致性机制都需要关注深亚微米SoC中的这个重要变化,并在分组交换网络底层上对一致性协议进行分层。 嵌入式SoC带来了成本、功耗、实时操作、知识产权(IP)所有权以及异质处理器等一系列问题,因此,选择嵌入式SoC的一致性机制与通用SoC有所不同。系统功耗低,系统成本就低,而系统成本是SoC的一个敏感因素。此外,如果SoC用于移动应用,低功耗要求的确是必需的。 正像缓存进入DSP领域需要一个过程一样(周期准确的处理器和系统仿真器是加快这个转变过程的关键工具),一致性设计也是如此。为将软件移植到实时系统中,一致性/SoC设计工程师必须确保有周期足够准确且快速的仿真器可用于应用程序/中间件端口。这个问题在高性能嵌入式SoC中更加严重,因为与通用多处理器相比,程序员需要更多地接触硬件。对于通用多处理器,仅是有限的“系统”(中间件、库和操作系统)程序员需要接触到这个接口。 IP所有权是嵌入式SoC的一个特点。大多数通用CMP供应商的设计,在内存级(与一致性相关的级别)未采用任何外部IP。但对嵌入式SoC的积分器来说,外部IP的使用非常普遍。甚至连许多高性能嵌入式SoC中的互连(如OCP-IP),也是外部IP供应商提供的一个IP模块。此外,高性能嵌入式SoC有时也会受益于以一致性方式共享相同内存的异质ISA内核,例如一个RISC内核和一个DSP。 从这些趋势来看,监听虚拟总线一致性机制与CMP的相关性是显而易见的:有限的可扩展性、大量的片上带宽、点到点信令、更低开销和更低延迟。但有趣的是,通常认为仅适用于大型服务器级机器的目录机制,经过适当修改后也适用于嵌入式SoC,这是因为目录机制可以与无序互连、异质ISA、低功率单播事务等协同工作。 第一代嵌入式CMP或许只能采用监听虚拟总线机制,但预计混合型监听目录机制可能成为实现嵌入式一致性的新趋势,这是因为设计工程师将开始意识到目录机制的模块化所带来的好处。 死锁/活锁 除了选择串行化方法和一致性协议的类型之外,在给定的有限资源/缓存情况下,缓存一致性协议设计工程师必须保证该协议是无死锁和无活锁的。对于基于互连的分组交换型一致性协议,这点尤其重要。 这里存在两类死锁,即互连死锁和协议死锁。这两种死锁通常都是由于分组交换互连中的缓冲区限制引起的。在设计一致性协议时,应该仔细考虑协议死锁(图3a)。防止死锁的常用机制包括:将事务的请求路径与回复/响应路径分开(图3b);保证在任何状态下缓存或内存代理程序都对请求给出响应。 如图3b所示,设计工程师通常使用虚拟通道来完成上述第一个机制。在任何虚拟通道中流动的事务都遵循先进先出(FIFO)顺序,而且信息流中的阻塞事件可引起一个能一直追溯到阻塞根源的背压(backpressure)流控。因此,只要(事务)接收器(sink)在向前移动(forward progress),系统就不会阻塞。 如果在向前移动的过程中出现停顿,分布式系统将出现活锁现象。在处理器上,这将在没有向前发展的“载入/存储”的程序计数器中得到反映。当多个缓存试图获得缓存线的所有权失败时,这种情况常常发生。如果在该系
- 基于FPGA的DSP设计方法(08-26)
- 电力电子装置控制系统的DSP设计方案(04-08)
- 基于DSP Builder的VGA接口设计(04-10)
- 基于DSP和USB的高速数据采集与处理系统设计(05-01)
- 数字信号处理(DSP)应用系统中的低功耗设计(05-02)
- 基于DSP的嵌入式显微图像处理系统的设计(06-28)