DMA控制器是连接在内部总线上的主设备,根据SSD主控的应用需求需要支持下列三种主要功能:
数据搬移和数据运算;
数据保护和数据校验;
数据生成和模式统计;
数据搬移和数据运算功能是按照数据块为单位对内存不同地址范围内的数据进行逻辑运算(XOR/OR)或数据比较和数据复制操作:
把地址1开始和地址2开始的相同数量的数据块之间进行逻辑计算并把计算结果写会地址3开始的数据缓存中;
把地址1开始和地址2开始的相同数量的数据块之间进行比较并返回成功/失败信息给CPU;
把地址1开始的若干数据块复制到地址3指定的数据区域;
数据保护和数据校验功能是对内存中的数据块进行数据完整性校验、插入数据保护校验码、生成或校验管理用元数据(Meta-data):
检查或者生成内存中某个数据块对应的CRC/Block ECC/DIF数据;
检查或者生成软件对NAND管理所使用的元数据;
对内存中某个数据块进行加扰/解扰或者加密/解密;
数据生成和模式统计功能是在内存中生成数据Pattern、对内存中的内容进行模式匹配并统计特定模式字的数量:
对指定数据块与指定的数据pattern进行逻辑运算并写回,以加速软件管理数据的快速维护;
指定模式字对内存中的数据块进行匹配,统计出模式字出现的次数;
统计内存中数据块中0或者1的比特数量;