C64x+ 存储器架构
德州仪器(TI)公司对高性能C64x核进行了改进,使其性能大副提升,称之为C64x+DSP核。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的部分,可以存储关键的代码或者数据使得内核能够以很高的速度访问。C64x+平台上L2 存储器可用于存储代码和数据。L2上最大可以分配256K字节CACHE来缓存DDR2中的数据或代码。L2中其余部分作为RAM存储代码和数据。
图 2 内核访问存储器流程
高速缓存一致性问题分析
在任何时刻,内核或者其它主机访问存储器中数据时,由于CACHE的存在造成不能够得到最近更新过的数据,就会出现CACHE一致性问题。CACHE的一致性问题分为两个大类:内核读一致性问题和内核写一致性问题。在下面两个小节中,分别描述了这两种情况的模型:
内核读一致性模型
图 3给出了内核读一致性的模型。在这个模型中,CACHE一致性问题的存在取决于图中虚线箭头指示的第二步操作能否在内核从CACHE中重新读数据之前完成。如果不能,则会造成内核读取的数据不是其它主机更新后的数据,而是原来CACHE中的内容,从而导致一致性的问题。
图 3 内核读一致性模型