快捷搜索:

PowerQUICC II数据错误保护机制探讨

包管存储器中数据的完备性是存储系统设计的一个紧张身分。两个主要的要领用于完成这个义务:校验和纠错码(ECC)。传统上,奇偶校验是用的最为常见的手段,然则奇偶校验只有检测一位差错的能力且没有纠错能力。在数据完备性方面ECC是一种更为综合的手段用于探测和矫正单比特差错以及探测双比特差错。本论题主要评论争论PowerQUICCII数据差错保护机制。飞思卡尔公司的以下产品都属于PowerQUICCII的家族范畴。

1 奇偶校验根基

PowerQUICCII 对60X总线以及局部总线都能进行奇偶校验,这两者能够同时的并且自力的完成。

图一展示了奇偶校验的道理构成。0.29um工艺的设备(HiP3)DPRAM不支持任何的奇偶校验。0.25um(HiP4)和0.13(HiP7)设备一些奇偶校验能力得以增强。

当PowerQUICCII履行一个存储器写操作,他会孕育发生一个奇偶校验/ECC。奇偶校验和数据一路存储在外部的存储器中。对付这种操作,PowerQUICCII 不会履行校验对照并且也不会孕育发生校验差错。当PowerQUICCII履行一个存储读操作的时刻,外部存储器同时驱动数据和校验位。PowerQUICCII校验逻辑谋略当前读入数据的校验数据并且和从外部存储器中读入的校验位进行比对。两者间任何的掉配都邑孕育发生一个校验差错。那么PowerQUICCII 就会依据法度榜样申报该类差错信息。

PowerQUICCII支持3种类型的校验:一样平常,读-调剂-写,ECC。校验要领在每个BANK的BRn[DECC]进行设定。每个bank可以有不合的校验模式,或者可以设置为无校验。对付一样平常校验或者读-调剂-写校验,用户可以经由过程BCR[EPAR](对付60X总线),或者BCR[LEPAR](对局部总线)选择是奇校验照样偶校验。这两比特数据是全局的并且利用的所有的60X或局部总线上的BANK。ECC算法仅用于64比特数据。存储器数据宽度必须为64位的时刻才能用ECC模式。

在存储节制器中孕育发生并反省校验。603e核有自己自力的校验逻辑,经由过程HID0[EBD]它必须被禁止。校验差错经由过程MCP旌旗灯号申报到603e核。MCP旌旗灯号与HID0[EMCP]进行逻辑与运算。为了使MCP有效,HID0[EMCP]和MSR[ME]都必须置高。假如603e核被禁用,内部的MCP自动的从NMI_OUT引脚上输出。在核禁用模式下,NMI_OUT应该连接到主处置惩罚器的MCP管脚上。存储节制将MCP有效鄙人列环境下:

. 校验差错

.ECC双比特差错

.当最大年夜数目单比特差错水平到达的时刻ECC单比特差错呈现

60X总线数据校验管脚,dp【0:7】,与其余功能复用。他们可以在硬件复位的时刻设置设置设备摆设摆设为校验管脚。

局部总线有以下专用的校验管脚:

. SIUMCR[PBSE],校验字节选择使能,PGTA/PUPWAIT/PGPL4/PPBS用于字节校验

.SIUMCR[LPBSE],局部总线校验字节选择,假如LPBSE=1,那么将设置设置设备摆设摆设LGTA/LUPWAIT/LGPL4/LPBS为局部总线校验字节。

别的TESCR1,TESCR2等寄存器都与校验操作相关。

2  读-调剂-写

为了支持一样平常校验,一个称为校验存储器的存储器是必须的。校验存储器有一个额外的与每个字节相关的比特。额外的比特和响应的字节一路输入和读出。图3表示32比特宽度校验存储器。d【0:7】用于节制那个字节别写人。假如一字节写人地址0,BS[0:3]为0x0111.假如只有d【0:7】和dp【0】被写入,而d【8:31】以及dp【1:3】被樊篱。

低容量会导致校验存储器变得十分的昂贵。假如资源是个斟酌身分,那么读-调剂-写校验可以派上用处。其目的是为了避免暗光的校验存储器并应用一样平常的非校验存储器用于数据存储和校验。

留意到,仅有1字节用于校验存储。假如写了1字节到地址0,那么BS[0:7]为0x01111111.假如我们应用PBS作为校验字节选择,PBS和所有的BS逻辑或。假如BS[0]激活,那么响应的PBS【0】也是出于激活状态。在数据总线上,d【0:7】有效当d【8:63】有无效数据的时刻由于我们只写了一个字节。响应的校验位dp【1:7】是从无效数据孕育发生的是以它也是无效的。在写的时刻,由于bs【1:7】是高电平,无效的d【8:63】并没有写入存储器。然则为了校验,无效的dp【1:7】同dp【0】被一路写人。小于端口宽度的写会破会校验。

由一样平常校验和一样平常非校验存储器孕育发生的问题是对照清楚的,对照轻易理解为什么一个RMW对付客服问题是必须的。假如BANK被编程为RMW并且写数据小于端口宽度,对付写操作,存储节制器首先做一个端口宽度的读,然后做一个端口宽度的写。以一个1字节写人地址0作为例子,首先PowerQUICCII从地址0,1......7读数据。呈现在数据端口的数据为新的写入数据d【0:7】和刚才读入的原始数据d【8:63】组成。是以,所有的数据是有效的而且所有对付d【8:63】的校验数据被谋略并且被从新写人校验存储器,避免了校验破坏的问题。对付RMW,结果是应用一样平常的存储器并且资源是较低的。价值是每次小于端口宽度的写PowerQUICCII都有做一次额外的读操作,增添了总线周期。

3 初始化

以下章节先容的是ECC和读-调剂-写的初始化

3.1 ECC初始化

在应用前ECC存储器必须初始化,这部分评论争论发生了什么假如CPU造访非初始化ECC存储bank。上电复位今后,数据和ECC存储器包孕‘gabbed’。CPU开始存储有效的数据。一样平常环境下,宽度是32位或者更小。由于bank是ECC使能的,那么端口的宽度必须是64比特。一个小于64比特的写会自动触发读-调剂-写,由于ECC是基于64比特设置的。PowerQUICCII必须回读64比特数据,将心数据和回读数据组合然后孕育发生新的数据,同时谋略新的ECC校验。然则在回读的历程中,由于存储器是为初始化的,ECC校验经常是反面数据匹配的,这样会触发以外的ECC差错。初始化ECC存储器而不呈现ECC报错,那么设置TESCR1[DMD]以禁止数据报错机制。然后开始初始化ECC存储器空间。初始化今后,清楚DMD位开始正常操作。

3.2 读-调剂-写 初始化

像ECC一样,RMW必须在应用前初始化。设置TESCR1[DMD]并初始化全部存储bank。清除TESCR1[DMD]开始一样平常操作。设置LTESCR1[DMD]进行局部总线的一样平常操作。

3.3 一样平常校验

一样平常校验不必要初始化。

4 ECC 编码

ECC校验比特位即是所稀有据为的或运算。

您可能还会对下面的文章感兴趣: