March C+算法是改进后的March C算法,在每个状态中增加了一次读操作,使它能够覆盖开路故障(Stuck-open故障),在每步增加一次读操作可大大提高对此故障的覆盖率。另外March C+算法同时可检测译码电路、主存数据寄存器(memory data register,简称MDR)和主存地址寄存器(memory address register,简称MAR)MARSAF故障、固定故障、转换故障、地址译码故障、耦合故障以及部分NPSF故障,对于存储器RAM的故障覆盖率在95%以上,可见,它是一种很适合检测存储器的算法。
March C+算法的测试过程
过程1:首先是初始化,对整个RAM单元写0,操作的地址顺序为升序或降序。
过程2:以地址升序方式读单元,读出每个单元的值并检查是否为0,接着对该单元写1,在读出每个单元的值并检查是否为1。重复这样的操作过程直到所有的单元;以地址升序的方式读单元检查是否为1,接着对该单元写0,再读出每个单元的值并检查是否为0,重复这样的操作过程直到所有单元。
过程3:以地址降序方式读单元,读出每个单元的值并检查是否为0,接着对该单元写1,在读出每个单元的值并检查是否为1,重复这样的操作过程直到所有的单元;以地址降序的方式读单元检查是否为1,接着对该单元写0,再读出每个单元的值并检查是否为0,重复这样的操作过程直到所有的单元。
过程4:以地址降序或升序方式读单元,检查是否为0。