TI对高性能C64x核进行了改进,使其性能大大提升,称之为C64x+DSP核。基于C64x+核开发的DSP芯片,所有部件都以交换网络(SCR)为核心连接起来。SCR上的部件分为两类:Master和Slave。Master包括Core、EDMA以及串行高速IO(sRIO),EMAC等外设。Master可以直接通过SCR发起到Slave的数据传输。Slave包括每一个Core的内存,DDR2外存以及其它不能直接发起数据传输的外设,Slave之间的数据传输,需要通过DMA协助完成。各款基于C64x+DSP的数据手册上详细描述了SCR的配置和Master、Slave的情况。
C64x+系统的存储器框图如图 1所示。存储器被分成了三级:第一级是L1,包含数据存储器(L1D)和代码存储器(L1P);第二级是代码和数据共用存储器(L2);第三级是外部存储器,主要是DDR2存储器。L1P、L1D和L2的CACHE功能分别由相应的L1P控制器、L1D控制器和L2控制器完成。表 1总结了C64x+平台上可用的CACHE情况。
图 1 C64x+存储器框图
表 1 C64x+ CACHE特性
C64x+平台上L1P用来存储或者缓存代码;L1D用来存储或者缓存数据。L1P和L1D大小都是32K字节,可以分别配置0K、4KB、8KB、16KB或者32KB作为CACHE,其余作为代码或者数据RAM。作为CACHE的部分,用来缓存L2和DDR2的数据或代码。作为RAM的部分,可以存储关键的代码或者数据使得Core能够以很高的速度
C64x+平台上L2 存储器可用于存储代码和数据。L2上最大可以分配256K字节CACHE来缓存DDR2中的数据或代码。L2中其余部分作为RAM存储代码和数据。
图 2描述了Core访问存储器内容的操作流程。在这个访问流程中,Core对于存储器的访问总是先从离Core最近的一级存储器开始,如果命中,Core可以直接得到代码/数据,否则代码/数据会被加载到前几级的CACHE中,从而Core可以得到要处理的代码/数据。在这个动态访问过程中,各级CACHE中的内容和下一级存储器中的内容可能存在不一致,这种瞬态的不一致不会造成问题。但是,如果Core或者其它Master不能得到另外一方对存储器内容更新后的内容,就会出现CACHE一致性问题。
图 2 Core访问存储器流程
|