存储器控制器(Memory Controller)是存储器与CPU之间交换数据的中介。存储器控制器根据不同的存储器规格或者接口规范衍生出不同类型,如用于动态随机存取存储器(DRAM)的控制器和用于闪存(Flash)的控制器。
管理闪存,使得产品厂商只专注于产品开发,不需要处理闪存兼容性和管理问题,缩短了新产品的上市周期和研发成本。

纠错编码(ECC) 技术能发现并纠正存储器数据的错误从而提高存储器的可靠性。存储器控制器支持ECC技术,存储器只需要提供额外的监督位存储容量即可。控制器支持ECC功能的优势是,算法没有固化在存储器中,因此选择更具灵活性;缺点是没有结合存储器本身进行针对性的性能优化。如图5-74所示,k位的原始数据D(k)经过ECC编码后生成带有监督位的n位数据C(n,k),控制器将该数据写入存储器。从存储器读出数据C(n,k),如果C'中出现的错误位数没有超过控制器ECC编码的纠错能力,经过存储器控制器的解码纠正可得到正确的数据Q(k)=D(k);反之,则有可能不能纠正。从只能纠正1位错误的汉明码开始,随着存储器误码率的增加能够纠正2位其至更多位错误的ECC编码被逐渐采用,目前常用的有BCH码,RS码和LDPC码等。
