DSP核心内存架构
1. 6655的CorePac概述1.1. C66xDSP的CorePac组成1) DSP核心和相关CorePac核;
2) 一级和二级存储器L1P,L1D,L2;
3) 数据跟踪格式(DTF);
4) 内嵌跟踪缓冲器(ETB);
5) 中断控制器;
6) 关机控制器(Power-down controller);
7) 外部存储器控制器;
8) 扩展存储器控制器;
9) 专用上电/休眠控制器(LPSC);
1.2. C66x的CorePac构成图解C66x的CorePac提供内存保护,位宽控制以及地址扩展。图1所示为C66x系列的CorePac示意图。
图1 CorePac图解
2. 存储器架构每一个C66x的CorePac都包含一个1024KB的二级缓存L2,一个32KB的一级缓存L1P和一个一级数据寄存器L1D,C6655/57设备还包含一个1024KB的多核空想内存(MSM)。所有的寄存器在存储空间上都有相应的映射。
设备复位后,L1P和L1Dcache默认被设置为缓存。L1P和L1D也可以通过软件来设置,L1P配置寄存器(L1PCFG)的L1PMODE字段可以配置L1P,L1D配置寄存器(L1DCFG)的L1PMODE字段来配置L1D。L1D是一个两组相关的缓存通道(一组备份),而L1P是直接映射的缓存。
2.1. L1P内存配置L1P内存规则如下:
32K区域,没有等待状态;(如图2所示)
图2 L1P的配置
若模式位为000则全部配置为SRAM内存形式,若为001则配置为7/8的SRAM,1/8的直接映射缓存形式,以此类推,到100时全部配置为直接映射缓存形式。
2.2. L1D内存配置L1D内存规则如下:
32K区域,没有等待状态;(如图3所示)
图3 L1D配置
若模式位为000则全部配置为SRAM内存形式,若为001则配置为7/8的SRAM,1/8配置为两组相关缓存,以此类推,到100时全部配置为两组相关缓存。
2.3. L2内存配置L2内存规则如下:
1) 存储器总共大小为1024KB(C6655)
2) 每一个和包含1024KB内存
3) 每一个核的本地起始地址为0x00800000h
L2存储器可以配置成全SRAM,全4通道相关联存储器,或者二者结合。L2可配置为缓存的存储空间的大小是通过L2配置寄存器L2MODE字段来控制的。图4所示为L2配置成SRAM/缓冲可选方式。设备复位后L2默认为配置为全SRAM。
图4 L2配置
在系统中所有主处理器核都可以全局寻址。此外,局部寄存器可以由协处理器通过“别名”(aliased address)直接访问,其中MSBs都置为0。别名地址允许通用代码在C66x核中运行。例如,地址0x10800000是C66x CorePac核心的L2存储器的全局基地址,那么,C66x CorePac核心可以用地址0x10800000和0x00800000来访问该地址。
局部地址只能用来放置共享代码/数据,任何对特定核的代码/数据,或者在运行期间被某核心指定的存储空间都只能用全局寻址。
2.4. MSMC SRAMMSMC SRAM的特性如下:
1) 存储空间大小为1024KB
2) MSMC SRAM可以配置成L2存储空间/L3存储空间
3) 允许外部地址从2GB扩展到8GB
4) 拥有存储保护特性
MSMC SRAM通常是配置成全SRAM模式。当被配置为L2时,其内容可以被缓冲到L1P和L1D中,当被配置为L3时,其内容可以被缓冲到L2中。
2.5. L3内存片上L3 ROM大小为128KB。ROM中包含了用来启动设备的软件,这一部分不要求block形式访问ROM。
3. 存储区保护(Memory Protection)存储器保护允许操作系统定义谁有权利访问L1D,L1P和L2。为了实现这个功能,L1D,L1P和L2被分为页,L1P有16页(每页2KB),L1D有16页(每页2KB),L2有32页(每页16KB)。在C66xCorePac中的L1D,L1P和L2的控制器中有一组寄存器来定义每一页存储器的使用许可权。
每一页可以配置为全正交用户或超级用户读,写以及执行使用许可。此外,每一页可以标记为局部访问或者全局访问。局部访问时DSP直接访问L1D,L1P和L2,而全局访问是指由DMA(IDMA或EDMA)或者其它主系统初始化。注意:由DSP计数器的EDMA和IDMA是全局访问。对一个受保护的设备,页被限制为安全访问(默认),或者公开访问。DSP核以及主处理系统都有一个自己的ID,这个ID可以定义存储页是局部访问的还是全局访问的。如图5所示,AIDx和LOCAL位用来定义页保护配置:
图5 页保护配置ID
访问页出现错误时,软件会在中断服务程序中处理错误。DSP或者DMA在没有获得允许访问权时访问页会导致:
1) 块访问出错-读操作返回0,写操作被忽略
2) 捕获状态寄存器中初始状态的ID,地址以及地址类型,然后保存
3) 信号事件会中断控制器
软件的中断服务函数会对这类事件采取正确的响应,并复位存储控制器中的错误状态。
4. 位宽管理器(Bandwidth Management)当多个请求竞争一个C66x CorePac资源时,具有最高优先权的请求者会得到使用权。以下四个资源由位宽管理器控制:
1) L1P SRAM/Cache
2) L1D SRAM/Cache
3) L2 SRAM/Cache
4) 内存映射寄存器配置总线
高优先级的初始化操作由C66x CorePac中的寄存器来设置,这些操作有:
1) DSP初始化转移数据
2) 用户可编程缓冲器一致性操作
3) IDMA初始化转移数据
在C66x CorePac外部初始化的系统外设操作优先级由优先级定位寄存器配置(PRI_ALLOC),没有优先级定位寄存器的外设由自己的寄存器编程设置其优先级。
5. 降功率控制(Power-Down Control)C66x CorePac支持各个部分的降功率控制。降功率控制器(PDC)可以用来降低L1P,缓冲控制器硬件和整个核的功率。降功率特性可以降低DSP在运行时的开销。(L2不支持降功率控制)