基于KeyStone 器件建立鲁棒性系统
可由AID8~15(AID11 除外)进行写(PUSH)操作。
TCI6614 上的MPU6 用于避免ARM 对DDR3 的非法操作。注意,MPU6 是用于低32-bit DDR 物理地址范围的保护。
注意,为了清除MPU 异常/中断事件,必须在服务程序的最后向EOI 寄存器写0.
TCI6614 的MPU 事件与其他KeyStone 器件有所不同。TCI6614 中所有的MPU0~7 事件被合并为一个事件并作为一个系统事件连接到CIC0。由于TCI6614 MPU 事件是电平中断而非脉冲中断事件,所有必须首先清除MPU 事件标志,然后才可以清CIC 标志。对于脉冲中断事件,必须首选清CIC 标志,然后清源标志。
另外,只有在通过PSC 使能BCP 后,才可以访问TCI6614 中用于BCP 的MPU5。即在访问TCI6614 中MPU5 寄存器时,如果此时BCP 没有被使能,则该访问将触发访问错误。
2.4 预留区域保护
预留区域(非法地址)被自动保护。对非法地址进行读操作时将返回垃圾数据,写操作则会被阻止。对预留区域的访问可以产生异常,这有益于捕获软件bug。
由于DSP core 的访问会经过L1D 控制器,所以DSP core 对非法地址的访问会触发L1D 内存保护异常。
DSP core 从非法地址执行时将触发指令获取异常。
对于非法写操作,触发的异常取决于相应的目的地址。
DMA 对非法地址访问时,DMA 模块会上报总线错误。DMA 错误事件可以作为异常路由到DSP core。
3 EDC
EDC(Error Detection and Correction)用于存储器软错误 (Soft Error) 。软错误是一个错误的信号或数据,但是并不意味着硬件被破坏。在观测到一个软错误后,并不意味着系统可靠性会下降。在宇宙飞船中这种类型的错误称为单一事件扰乱。在内存系统中,一个软错误会改变程序中的一条指令或者一个数据值。软错误通常可以通过器件的重启进行纠正,而硬件错误通常不能通过重启来恢复。软错误不会对系统硬件造成破坏;仅仅会对处理的代码或数据造成错误。产生软错误的原因有:
1. 阿尔法粒子辐射及宇宙射线产生能量中子及质子。发生的概率取决于器件的地理位置及周围环境。通常,一个器件在几年中才会出现几次。
2. 软错误也可由随机噪声、干扰或信号完整性错误引发,如板载电感应或电容串扰。如果软错误发送概率高于上述条目1 中的理论值,则应该检查硬件设计找出其他原因。一个常见的原因是供电电源电压低于预期,导致器件对噪声或干扰的影响更敏感。
KeyStone 器件各级memory 中都实现了EDC 机制,下表对不同memory 模块的实现机制进行了比较。
3.1 L1P 错误检测
关于L1P 及LL2 EDC 基本信息参考“TMS320C66x DSP CorePac User Guide(SPRUGW0)”。
校验比特生成与核对:校验比特在进行64-bit 对齐的DMA 写或L1P cache 缓存时生成。非64-bit对齐的DMA 访问将使校验信息失效。在256-bit 对齐的程序读取或64-bit 对齐的DMA 读操作时,L1P EDC 逻辑会核对校验信息。
错误检查设置:器件复位后默认情况下L1P 错误检查特性是关闭的。一旦L1PEDCMD 寄存器中的“EN”bit 被置位,所有L1P memory 中的ED 逻辑被使能。下面是从应用代码中摘录的L1P ED 功能使能例子。
注意:要使L1P ED 功能工作正常,必须同时使能L2 EDC。
对L1P cache 访问时的错误处理: 对从L1P cache 中获取程序产生的校验错误,没有专用的系统事件,然而,错误检测逻辑会发送一个直接的异常事件给DSP(IERR.IFX 事件),然后用户可以使用内部异常事件获取这个错误。L1PEDSTAT 寄存器的PERR bit 会被置位。L1PEDARRD寄存器会记录包含错误bit 的的地址信息。在L1P 错误对应的异常处理服务函数中,需要对包含错误地址的cache line 进行失效操作。
对DMA 访问的错误处理:对DMA/IDMA 访问产生的校验错误,对应#113 号系统事件。用户可以使用这个事件获取错误。L1PEDSTAT 寄存器的DERR 比特位会被置位,并且L1PEDARRD 寄存器会记录包含错误bit 的地址信息。
L1P EDC 功能验证:通过置位LPEDCMD 寄存器中的SUSP 比特可以暂停L1P EDC 逻辑。使用该特性,可以软件模仿EDC 错误并验证EDC 功能。与本文对应的例程中提供了验证L1P EDC功能的代码,对应函数L1P_ED_test()。
3.2 LL2 错误检查与纠正
校验比特生成与核对:在对L2 以128 bits 为单元进行内存写操作时会产生相应的校验信息。非128-bit 对齐或者小于128 bits 的写操作会使校验信息失效。对128-bit 对齐的memory 读操作时,LL2 EDC 逻辑会核对校验信息。更多信息参考“TMS320C66x DSP CorePac User Guide(SPRUGW0)”。
错误检查及纠正配置:器件复位后默认情况下LL2 EDC 特性是被关闭的。与某些C64+
- HyperLink编程和性能考量(01-15)
- 在KeyStone 器件实现IEEE1588 时钟方案(10-15)
- 基于多核处理器的弹载嵌入式系统设计研究(02-18)
- Navigator Runtime 最大限度提高多内核效率(05-08)
- 基于KeyStone DSP的多核视频处理技术(09-15)
- KeyStone多核SoC工具套件: 单个平台满足所有需求(09-07)