>
赛灵思嵌入式开发套件(EDK)工具和IP具有很大的灵活性,用户可以利用它们以FPGA逻辑为基础设计出独具特色的定制多处理解决方案,从而同时满足价格和性能目标要求。本文将主要介绍以PowerPC和MicroBlaze嵌入式处理器为基础的赛灵思解决方案中的多处理概念。
应用领域
性能和功能划分是设计多处理器系统的主要动力。总的来说,多处理在以下这些常见场合中会发挥作用:
1. 多个独立功能。设计可能需要应对多个独立的处理任务。解决这个问题的好方法是为每个处理任务创建独立的专用处理模块,并为每个处理模块分配专用处理器和外设集。
2. 控制或数据层面卸载。常见情况是既有实时任务(计算或数据密集型),也有非实时任务,从而可能导致单处理器解决方案无法做出及时的响应。对于这种情况,您可以分配一个从处理器以便及时完成实时任务,主处理器则完成其他常规任务,并且充当到主机系统的接口。主处理器同时也监控从处理器。从处理器可能包含专用功能或接口,从而能够满足计算性能要求。相应的例子包括网络负载分担、媒体处理以及安全算法等。
3. 接口处理。对于作为多接口之间的桥梁或开关的系统,您可以分配一个从处理器用于处理每个接口上的数据,而用一个或者多个主处理器处理更高级的桥接或者开关任务。
4. 数据流处理。对于数据流计算问题,您可以安排多个处理器以流水线的方式处理数据流。多处理器流水线的每一级都要在将数据传到下一个处理器之前完成一部分计算任务。这是提高系统吞吐量的一种有效方式。
5. 可靠性和冗余度。您可以多次复制处理系统以提高可靠性和冗余度。
6. 对称处理。传统的对称处理(SMP)是一种十分有用的解决方案,您可以利用它来提升那些不存在明确划分边界的应用性能。一个具有SMP功能的OS层可以管理并行任务,并且在多处理器之间自动调度这些任务。然而,SMP使用模型不适用于赛灵思处理器,因为它们缺乏实现SMP所需的高速缓存相关性。
除了SMP场合,其他的所有应用场合均适合赛灵思公司带有EDK工具的FPGA的应用。赛灵思处理解决方案的独特之处在于,它可以针对应用要求来灵活定制每个处理子系统。例如,并不是所有的处理器都需要一个高速缓存或者浮点单元。通过为特定处理器分配特定的功能,您可以创建一个能够实现所有设计目标的专用解决方案。
简单且可扩展的系统架构
正如您见到的那样,有许多种使用模型适合多处理器使用。同时存在多种系统架构的可能性。为某一应用场合明确一种单纯且可扩展的拓扑和架构是一件令人头疼的事情,所以定义一个可以满足大部分需求的基线架构会将有所帮助。
图1给出了一个双内核架构。这个架构展示了简单且可扩展的多处理器系统定义。您可以基于这个定义衍生出新的拓扑来应对设计约束或挑战。该架构的主要概念如下:
图1:双处理器架构。
1. 这个架构是两套完全独立的单处理器系统的简单扩展,是通过将系统与通信元件连接在一起实现的。
2. 共享元件全部采用多端口(或者双端口)结构。这些元件的多端口特性使得每个处理器的系统总线在静态和动态负载方面都独立于其他总线。通过隔离各个处理子系统,您可以确保系统总线不会因为一个处理器的事务执行而不能给另一个处理器或者外设使用。所有的多端口外设都在内部完成不同端口上的访问仲裁。
3. 关键共享外设是多端口存储器控制器(MPMC)。MPMC通过不同的端口接口访问外部存储器。多个处理器可以通过独立端口连接到MPMC上。这种拓扑使得 PowerPC和MicroBlaze处理器能够以最小的延迟和高带宽同时访问外部存储器。MPMC目前最多可以提供8个端口,这样就可以将三到四个处理器连接到一个外部存储器上。
4. 这个架构还可以在处理器之间共享内部块RAM存储器。片上块RAM共享是一种在处理器之间传输KB尺寸数据的高速方式。块RAM的访问也可以是确定性的,这对于某些应用而言是一个重要要求。