Memory RAS几乎都是基于Memory ECC来做各种的延伸;最近接触了LPDDR,在加上DDR5 的on-die ECC, Memory ECC还是有很多种;今天就一起罗列了和大家讨论一下吧。下图为CPU的简单Memory Sub-System.
注:这遍文章不具体讨论各种ECC的算法,只是讨论ECC由哪个模块生成,经过什么通道进行传输,存储在什么地方;从High Level去了解各种ECC的方案。
ECC Solution
根据我们熟悉的程度,我们还是从DDR上的ECC开始聊起。
Side-band ECC
Side-band ECC即为标准DDR 内存的ECC,如上图,ECC的生成和校验均由Memory Controller来完成,Data通道宽度为64-bit,有额外专门的8-bit ECC通道(一共72-bit),DIMM端也有专门的颗粒存储ECC。读写操作如下:
写:Memory Controller会根据64-bit Data计算出ECC,再经ECC通道写入DIMM端ECC位置。