这些已有的工作主要是从软件的角度研究如何优化SPM的存储分配与管理,而且大部分是基于单核处理器的研究,对于多核处理器环境下SPM的体系结构研究还不够充分。特别在共享存储的方式下,必须根据实际应用中核间数据共享与传输的特点,研究速度快、结构灵活的SPM存储结构。本文提出的FSDP采用多体并行和交叉访问的方式,访问延迟小,存取速度快;提供了硬件信号灯和软件查询两种同步机制,同步开销低,编程使用灵活。
3. 异构多核DSP总体结构
图1 异构多核DSP“SDSP”的总体结构
异构多核DSP“SDSP”的总体结构如图1所示,它由四个精简的32位浮点DSP核与一个32位的RISC核构成。DSP核采用课题组自行研制的32位高性能浮点DSP“YHFT-DSP700”的精简内核。该DSP内核主频300MHz,8流出超长指令字(VLIW)结构。四个DSP内核共享存储空间。每个DSP核具有私有的一级数据Cache(L1D)和一级指令Cache(L1P),共享二级Cache/SRAM(L2)和FSDP。FSDP与L1D处于同一个存储层次,具有不可Cache的全局存储空间,可以被四个DSP核的访存指令直接访问。
RISC核采用开放体系结构与源码的LEON处理器。LEON是一款高度可配置的32位通用RISC处理器,兼容SPARC V8指令集,采用7级整数流水线,指令Cache和数据Cache分离。片上集成了AMBA 2.0总线,挂接存储控制器、PCI模块、CAN接口等外设模块。
4. 快速共享数据缓冲池FSDP体系结构
FSDP是一个四通道共享存储结构,每个DSP核对应一个通道,每个通道包括两个大小相同的存储体SAi和SBi(i=1,2,3,4)、存控逻辑和读写队列。四个通道依次顺序编址,通过高速交叉开关(Crossbar)构成整个共享数据缓冲池,如图2所示。另外,FSDP采用了一组控制寄存器,通过公共的配置总线与四个DSP核相连,用于同步/互斥、状态查询、优先级控制等操作。
图2 FSDP的组成结构及其与DSP核的连接关系
FSDP采用多体并行交叉访问的机制,提供了“私有”和“共享”两种工作模式,支持多个DSP核的并行访问与核间数据流的传输。FSDP基于释放一致性共享存储模型,为用户提供了硬件自动阻塞和软件手工查询两种同步机制。多核DSP程序产生的中间结果、公共变量、系数常量、查找表等数据结构都可以通过FSDP实现快速的细粒度数据传输与交换。而大批量的全局数据和用户程序则存放在片外存储器中,通过两级Cache进行访问。下面,本文将详细介绍FSDP的组成结构和关键技术。