收藏 分销(赏)

优质毕业设计NandFlash控制器的ECC校验原理及验证.doc

上传人:人****来 文档编号:2597088 上传时间:2024-06-02 格式:DOC 页数:34 大小:1.04MB
下载 相关 举报
优质毕业设计NandFlash控制器的ECC校验原理及验证.doc_第1页
第1页 / 共34页
优质毕业设计NandFlash控制器的ECC校验原理及验证.doc_第2页
第2页 / 共34页
优质毕业设计NandFlash控制器的ECC校验原理及验证.doc_第3页
第3页 / 共34页
优质毕业设计NandFlash控制器的ECC校验原理及验证.doc_第4页
第4页 / 共34页
优质毕业设计NandFlash控制器的ECC校验原理及验证.doc_第5页
第5页 / 共34页
点击查看更多>>
资源描述

1、*大学毕业设计(论文)题目:Nand Flash控制器ECC校验原理及验证姓名 学号所在单位指导老师 完成日期 Nand Flash控制器ECC校验原理及验证摘要移动电话功效日益丰富,其对系统中数据存放容量需求正在快速增加。Nand Flash含有速度快、密度大、成本低等特点,在多种数码产品中得到了广泛应用,在多种片上系统芯片中(SOC)集成Nand Flash控制器正成为一个趋势。不过,因为加工工艺不足,在Nand Flash控制器设计时应含有处理存放数据犯错功效。为处理该问题,本文分析常见差错控制编码(ECC)算法,以提升Nand Flash读写速度,采取该编码可有效降低存放器数据纠错时间

2、。关键词:Nand Flash控制器,ECC算法,汉明码AbstractWith the development of the multifunctional mobile telephonethe demand for the capacity of the chipS memory is growing at a phenomenal rateNand flash memory has become the preferred data storage solution for many digital products due to its fast access time,high d

3、esity,cost,performance and SO on advantagesIt becomes a tendency that Nand Flash controller iS integrated in diversified SOCBeca use of limitation of the manufacturing technique condition,a Nand Flash controller is required to handle the bits errorsFor solving this question,this essay expound by the

4、 analysis of the error checking and correction (ECC)design method to accelerate the reading and writing process for Nand FlashSimulation shows that the method is effectively reduce the memory data error correction timeKeywords: Nand Flash,ECC Algorithm,Hamming目录目录Nand Flash控制器ECC校验原理及验证2摘要2Abstract3

5、目录4第一章 引言61.1 Nand Flash研制背景61.2 Nand Flash应用领域61.3 Nand Flash研究前景7第二章 Nand Flash控制器特点82.1Nand Flash控制器和Nor Flash 控制器82.1.1性能比较82.1.2接口差异92.2 Nand Flash控制器特点92.2.1Nand Flash容量和成本102.2.2Nand Flash物理组成102.3Nand Flash 控制器缺点102.4Nand Flash存放结构112.4.1Nand Flash规格说明112.4.2 Nand Flash接口说明11第三章 Nand Flash控制

6、器总体结构153.1Nand Flash控制器总体架构153.2Nand Flash控制器接口模块设计163.2.1 AMBA AHB总线介绍163.2.2 接口模块设计思想介绍173.2.3 控制器接口模块设计183.3Nand Flash控制器主控逻辑模块设计203.4Nand Flash控制器ECC模块24第四章 ECC模块校验原理264.1 汉明码算法264.2 ECC生成模块设计28第五章 ECC模块验证315.1汉明码验证315.1.1汉明码验证原理315.1.2汉明码验证不足33参考文件34第一章 引言1.1 Nand Flash研制背景Nand Flash 结构最早是在1989

7、年由日本东芝企业引入。Nand flash是非易失性存放设备一个,是非线性存放单元。含有大容量、成本低等特点。现在, Nand Flash和Nor Flash已经占据了Flash市场支配地位。因为Nand Flash含有高密度, 低功耗, 低成本等特点, 而且是可升级器件, 所以它是多媒体产品导入市场理想选择。优异在系统内设计也使得为降低成本, 在传统设计应用上采取Nand Flash来替换Nor Flash成为可能,这种优良特征使得Nand Flash控制器开始广泛研发出来。 图1-1 Nand Flash芯片举例(三星系列) 1.2 Nand Flash应用领域Nand型闪存,关键功效是存

8、放资料,现在Nand Flash已开始广泛利用到电子市场领域。其关键应用市场在数码相机,比重高达50,其次为手机,比重在1215。种种迹象显示,Nand Flash将作为中、高端手机一个主流存放处理方案正成为一个趋势。所以,Nand Flash有着宽广发展前景。1.3 Nand Flash研究前景在Flash Memory全部现有实现架构中,Nand Flash结构相对其它实现技术能够在给定模具尺寸内提供更高容量,换句话说即使选择别Flash Memory能做到相同容量也会有着更大尺寸,而通常体积方面问题往往是像手机等小型移动电子设备一个限制,从市场上出现部分Flash Memory经典容量规

9、格上看,也只有Nand Flash才含有GB级甚至更大这么经典容量规格,所以从容量需求规格上来说,选Nand Flash更适宜手机大容量数据存放要求,而且Nand Flash复用接口为全部最新器件和密度全部提供了一个相同引脚输出。这种引脚输出使得设计工程师无须改变电路板硬件设计,就能从较小密度移植到更大密度设计上。从Nand Flash本身应用特点来说, Nand Flash适合应用在次序存取场所,而手机多媒体系统从实际应用需求看,不管音乐播放、照片存取还是视频播放基础全部是要求次序存取,Nand Flash适合于这么应用场所。最终一点即成本原因,电子产品竞争,归根结底是价格竞争,具体到存放器

10、全部趋势全部指向最关键单位比特成本最小化,在这一点上按现在情形能够说Nand Flash相较于Flash Memory其它实现技术有着很显著性能价格比优势,尤其是Flash Memory另一个主流实现技术Nor Flash固有特征决定了它不可能做到比Nand Flash更低单位比特成本。而且Nand Flash单位比特成本下降速度很快,现在还没有迹象表明这种下降趋势已经放慢脚步。Flash Memory其它实现技术要做到和其在相同单位比特成本基础上竞争将是困难。所以,研究Nand Flash含有巨大实用价值。第二章 Nand Flash控制器特点2.1Nand Flash控制器和Nor Fla

11、sh 控制器 Flash Memory汉字名字叫闪存,是一个长寿命非易失性(在断电情况下仍能保持所存放数据信息)存放器。功效特征分为两种:一个是Nor型闪存,以编码应用为主,其功效多和运算相关;另一个为Nand型闪存,关键功效是存放资料,如数码相机中所用记忆卡。Nor和Nand是现在市场上两种关键非易失闪存技术。Intel于1988年首先开发出Nor Flash技术,根本改变了原先由EPROM和EEPROM一统天下局面。紧接着,1989年,东芝企业发表了Nand Flash创意思想,强调降低每比特成本,更高性能,而且象磁盘一样能够经过接口轻松升级。不过经过了十多年以后,仍然有相当多硬件工程师分

12、不清Nor和Nand闪存。所以,下面一章来说一下二者区分。2.1.1性能比较flash闪存是非易失存放器,能够对称为块存放器单元块进行擦写和再编程。任何 flash器件写入操作只能在空或已擦除单元内进行,所以大多数情况下,在进行写入操作之前必需先实施擦除。Nand器件实施擦除 操作是十分简单,而Nor则要求在进行擦除前 先要将目标块内全部位全部写为1。 因为擦除Nor器件时是以64128KB块进行,实施一个写入/擦除操作时间为5s ,和此相反,擦除Nand器件是以832KB块进 行,实施相同操作最多只需要4ms。 实施擦除时块尺寸不一样深入拉大了Nor和Nand之间性能差距,统计表明,对于给定

13、一套写入操作(尤其是更新小文件时), 更多擦除操作必需在基于Nor单元中进行。这么,当选择存放处理方案时,设计师必需权衡以下各项原因。 Nor读速度比Nand稍快部分。 Nand写入速度比Nor快很多。 Nand擦除速度远比Nor快。 Nand擦除单元更小,对应擦除电路愈加简单。 Nand实际应用方法要比Nor复杂多。 Nor能够直接使用,并在上面直接运行代码,而Nand需要I/O接口,所以使用时需要驱动。2.1.2接口差异Nor flash带有SRAM接口,有足够地址引脚来寻址,能够很轻易地存取其内部每 一个字节。 Nand器件使用复杂I/O口来串行地存取数据,各个产品或厂商方法可能各不相同

14、 。8个引脚用来传送控制、地址和数据信息。 Nand读和写操作采取512字节块,这一点有点像硬盘管理这类操作,很自然地,基于Nand存放器就能够替换硬盘或其它块设备。Nor特点是芯片内实施(XIP, eXecute In Place),这么应用程序能够直接在flash闪存内运行,无须再把代码读到系统RAM中。 Nor传输效率很高,在14MB小容量时含有很高成本效益,不过很低写入和擦除速度大大影响了它性能。 Nand结构能提供极高单元密度,能够达成高存放密度,而且写入和擦除速度也很快。应用Nand困难在于flash管理需要特殊系统接口。2.2 Nand Flash控制器特点Nand结构能提供极高

15、单元密度,能够达成高存放密度,而且写入和擦除速度也很快。应用Nand困难在于flash管理和需要特殊系统接口。2.2.1Nand Flash容量和成本Nand flash单元尺寸几乎是Nor器件二分之一,因为生产过程更为简单,Nand结构能够在给定模具尺寸内提供更高容量,也就 对应地降低了价格。 Nor flash占据了容量为116MB闪存市场大部分,而Nand Flash只是用在8128M B产品当中,这也说明Nor关键应用在代码存 储介质中,Nand适合于数据存放,Nand在CompactFlash、Secure Digital、PC Cards和M MC存放卡市场上所占份额最大。2.2.

16、2Nand Flash物理组成Nand Flash 数据是以bit方法保留在memory cell,通常来说,一个cell 中只能存放一个bit。这些cell 以8个或16个为单位,连成bit line,形成所谓byte(x8)/word(x16),这就是Nand Device位宽。这些Line会再组成Page,因为 Nand Flash 有多个结构,本人在网上查Nand Flash 是K9F1208,下面以本文就以K9F1208U0M为例,每页528Bytes(512byte(Main Area)+16byte(Spare Area),每32个page形成一个Block(32*528B)。具

17、体一片flash上有多少个Block视需要所定。k9f1208U0M含有4096个block,故总容量为4096*(32*528B)=66MB,不过其中2MB是用来保留ECC校验码等额外数据,故实际中可使用为64MB。 Nand flash以页为单位读写数据,而以块为单位擦除数据。根据这么组织方法能够形成所谓三类地址: Column Address:Starting Address of the Register. 翻成汉字为列地址,地址低8位 Page Address :页地址 Block Address :块地址 对于Nand Flash来讲,地址和命令只能在I/O7:0上传输,数据宽度是

18、8位。2.3Nand Flash 控制器缺点因为Nand Flash生产工艺不足,一个Nand Flash存放不能确保在其整个工作周期中性能稳定。在Nand Flash出厂或使用过程中,会产生坏块,从而造成数据存放错误。为确保数据可靠性,需要对坏区进行检测。在这种情况下,Nand Flash犯错时通常不会造成整个块blocK或页(page)不能读取或全部犯错,而是1个页中只有1个或多个比特犯错,此时,可经过数据校验方法对错误数据进行定位及纠正。常见数据校验方法有奇偶校验H J、循环余校验(CRC)等,在NandFlash处理中,通常使用一个较专用校验ECC,这个将是本文研究关键。2.4Nand

19、 Flash存放结构2.4.1Nand Flash规格说明Nand Flash数据是以bit方法保留在memory cell中。通常来说,一个cell中能存放一个或多个bit。这些cell以8 bits或16 bits为单位,连成bit line,形成所谓byte(x8)word(x16),这就是Nand Device位宽。这些Line会再组成页(page),而通常情况下Nand Flash页有大页和小页之分,大页即每个page包含2112 bytes,其中2048bytes用做主数据区(Main Area,也叫Data Field),Main Area里存放数据,而剩下64个字节空间叫做备份

20、数据区(Spare Area),Spare Area里存放是ECC校验码或其它部分坏块标识之类信息。小页则每个page包含528bytes。其中512bytes用做Main Area来存放数据,而剩下16bytes用做Spare Area存放ECC校验码或其它信息。对于大页Device,每64个page组成一个block对于小页Device则每32个page组威一个block。以美光科技企业MT29F4GOSBxC为例,其每页有2112 bytes,每“个page组成一个block,一个device总共包含4096个block,其总容量为:(2K+64)byte64page4096block=

21、4224 MB=(4096MB十128 MB)。2.4.2 Nand Flash接口说明Nand Flash采取高度复用访问接口,其IO口即作为数据总线又作为地址总线和指令输入接ta(女H果是16位device则地址和指令只在IO7:0】上传输)。另外,Nand Flash还包含5个比较关键控制信号,对Nand Flash操作最终全部是经过这多个控制信号来控制完成。Nand Flash外部接口图2-1所表示。图2-1 Nand Flash 接口示意图由图2-1能够看出,因为IO复用原因,Nand Flash引脚极少,节省了引脚数量,而且这么还有一个好处:Nand Flash复用接口为全部最新器

22、件提供了一个相同引脚输出,无须改变控制器硬件设计就可把更高密度Nand器件移植进来,使得Flash控制器含有良好扩展性。Nand Flash外部接口说明如表2-1所表示。表2-1 Nand Flash 接口说明Nand Flash内部结构图23所表示,存放器内部由控制逻辑、IO控制逻辑、寄存器(包含地址寄存器、状态寄存器、指令寄存器)和存放阵列组成。图2-2 Nand Flash 内部结构示意图在5个关键信号RE、WE、ALE、CLE、CE控制下,控制逻辑将IO口输入数据锁存进对应指令寄存器、地址寄存器或数据寄存器,或经过IO口把状态寄存器、数据寄存器中数据发送出去。在控制逻辑控制下,把数据寄

23、存器(data register)中数据写入存放阵列中(写页操作时),或把存放阵列中数据写入数据寄存器中(读页操作时),控制逻辑控制在数据寄存器和存放阵列之间进行数据传输过程中,信号RB会被拉低,外部主控制器能够依据RB高低来判定正在进行写或读操作是否已经完成。 第三章 Nand Flash控制器总体结构3.1Nand Flash控制器总体架构通常说来,Nand Flash控制器含有以下结构。图3-1 Nand Flash控制器总体架构经过简化,能够发觉,Nand Flash控制器能够分为以下三个部分:接口模块、主控逻辑模块、ECC模块。图 3-2 简化后Nand Flash控制器总体架构3.

24、2Nand Flash控制器接口模块设计接口模块未来自总线上主设备发出符合AMBA AHB总线协议信息流转换成控制器能够接收格式并发给控制器,或把来自控制器数据转换成符合系统总线要求格式并发送给主设备,我们着重讨论控制器接口模块设计思想。3.2.1 AMBA AHB总线介绍由ARM企业开发AMBA(Advanced Micro controller Bus Architecture)片上总线结构,因为其本身高性能和该总线协议完全开放性,已经成为了SOC设计中使用相当广泛总线标准。在AMBA规范中定义了四种总线:优异系统总线ASB、优异高性能总线AHB、优异外围设备总线APB、优异可扩展接口AX

25、I。AMBA总线20规范于1999年出台,该规范引入优异高性能总线(AHB)是现在AMBA实现关键形式。该总线是为高性能、高时钟频率系统模块设计总线,它能够对处理器、片上存放器、片外存放器接口和低功耗外围设备宏单元模块进行有效互连。该总线含有突发传送、分离传送、单周期总线主设备移交、单时钟沿工作、以多选形式实现总线互连、宽达128位数据总线配置等特征。一个经典AMBA AHB系统中包含以下多个组件:(1)AHB主设备(master)开启读、写总线操作芯核。在任何时候,只能有一个总线主设备在使用总线。(2)AHB从设备(slave)响应(非开启)读或写总线操作芯核。从设备信号向AHB主设备指明目

26、前数据传输状态(成功、失败,或等候)。(3)AHB仲栽器(仲裁器)确定访问总线下一个总线主设备,以确保任何时刻只有一个主设备能开启数据传输。每个AHB系统只能有一个仲裁器。(4)AHB译码器(decoder)译码每次传输地址,提供传输中包含从设备选择信号。全部AHB实现方案中需要一个集中译码器。AMBA AHB系统总线能够支持多达16个总线主设备和任意多个从设备。经典AHB系统中,常见主设备有处理器、DSP、DMA控制器、测试接口等,从设备常见有外部存放器接口、APB桥和内部存放器等外围设备。我们研究Nand Flash控制器就是基于AMBAAHB总线协议设计出,它作为一个标准AHB slav

27、e设备挂在AHB总线上和系统中其它主设备进行数据传输。3.2.2 接口模块设计思想介绍接口模块由图3-1可知,它又包含了AHB从设备接口模块和外部DMA接口模块,AHB从设备接口模块使得控制器作为一个符合AMBAAHB总线协议标准从设备模块挂在系统总线上供其它主设备进行访问,AHB从设备接口功效包含数据位宽转换(把系统总线输入32位数据转换为存放器需要8位数据或把从控制器读出数据拼接成32位数据发往总线)、依据收到AHB总线输入控制信号,将其转换成控制器主控逻辑输入控制信号以后发给控制器主控逻辑、同时对总线输入多种控制信号做出合适回应等。外部DMA接口模块关键负责在控制器和系统中其它模块进行D

28、MA传输时控制器和外部DMA控制器之间握手信号和数据传输处理。通常来说,接口定义以下:D7D0 :8位数据总线CLE :命令锁存使能ALE :地址锁存使能RDY/nBSY :flash空闲、,忙信号CE :片选使能RE :读使能WE :写使能WP :写保护CLEALE描述10命令周期01地址周期,分4个字节传送00数据周期11保留 Nand flash访问分为三个阶段:命令周期、地址周期、数据周期,三个阶段串行进行。首先,发送地址命令,CLE为高,将命令写入flash内部命令寄存器;然后发送地址,ALE为高,将地址串行传送到内部地址寄存器;第三步,在数据总线上传送数据,在传送数据之前需要判定f

29、lash空闲、忙信号。3.2.3 控制器接口模块设计控制器对存放器全部操作控制全部是以符合存放器要求8位数据格式进行,而总线上主设备则是以32位数据格式访问系统中从设备。控制器接口模块将系统中其它主设备从AHB总线输入控制信号和数据转换成控制器能够接收格式并发给控制器,同时把从控制器中读出数据转换成符合主设备要求,即符合AHB总线协议所要求格式后发给主设备,并对总线主设备所发出多种控制信号做出合适回应。接口模块为总线上其它主设备提供了一个访问控制器方法。图3-2 控制器和系统连接示意图在基于AMBAAHB总线系统结构中,控制器和系统连接图51所表示,LEON3为系统CPU,AHBCTRL为总线

30、控制器,图中虚线框所表示即为控制器接口模块。首先在AHBCTRL中为控制器分配ID和对应寻址空间,以后控制器中各个参数寄存器在总线上地址便随之确定,使得系统中CPU或其它主设备能够经过总线访问本控制器,接口模块一边以标准AHB从设备接口和总线连接,另一边则和后面控制器关键控制实体逻辑(包含主控逻辑和ECC两大部分)连接,系统中其它主设备比如CPU对存放器进行多种存取操作步骤以下:(1)首先主设备选择访问本控制器,读出控制器状态,以判定控制器是否处于空闲状态,只有控制器处于空闲状态时才可对存放器进行深入操作。(2)当接口模块返回给主设备状态表明控制器处于空闲状态时,主设备便能够对存放器进行读页、

31、写页、块擦除等操作了。首先应对控制器中各相关寄存器进行配置(主设备从总线输入数据为32位,接口模块对其进行位宽转换后在控制逻辑控制下将其写入对应寄存器中),包含各操作所需要地址信息,器件规格选择信息、器件时序参数信息等,这些已经在第三章中各个操作具体控制实现中介绍。当配置完这些寄存器后,把要进行操作相关命令写入控制器指令寄存器,便开启控制器对存放器进行对应具体操作控制。(3)以写页为例,当把写页命令写入控制器指令寄存器后,主设备会读控制器状态寄存器,判定到町以往buffer当中写入数据时,便经过从设备接U把准备写入存放器数据写入接口模块中数据缓冲寄存器组,以后接口模块对其做位宽转换后将其写入b

32、uffer,写满以后发出握手信号给主控逻辑模块,等候主控逻辑将buffer当中数据写入存放器后发出握手信号,然后再次写入下一组数据,这么直到写慢一页数据。对于读页操作则和写页是类似,不再赘述。(4)其它不需要传输数据操作比如块擦除、读状态、读ID等则相对简单,首先判定控制器状态寄存器处于空闲状态时,配置好各操作相关寄存器,以后写对应命令到控制器指令寄存器,控制器便开始对存放器进行具体操作控制,主设备能够经过读控制器状态寄存器判定正在进行操作是否完成。3.3Nand Flash控制器主控逻辑模块设计主控逻辑模块是Nand Flash控制器一个关键组成部分,它包含了用作数据缓存Buffer模块、部

33、分确保控制器正常工作所必需配置参数寄存器。对于存放器绝大多数操作全部是由主控逻辑逻辑负责控制实现,主控逻辑正确产生多种输出到存放器控制信号,并在ECC模块配合下,在写页和读页操作过程中进行数据可靠性检测。通常说来,它由一个深度为0x210buffer和主状态机模块FsmMNvcs2组成。其中buffer为一个RAM,写页时主状态机模块先把由控制器AHB从设备接口模块写入数据暂存到buffer中,当buffer存满数据时,主状态机模块控制把这512个字节数据作为一块数据次序写进存放器,然后发出握手信号给接口模块等候其再次写数据到buffer中,这么反复4次便写入一页共2048个字节数据。假如存放

34、器件规格为小页类型,即每页大小为512字节则这个过程只有一次。在读页操作时,整个过程和写页时是类似。主状态机模块则负责控制实现对存放器进行全部存取操作时控制信号产生和数据流控制。在网上用综合工具Synplify Pro 862将设计HDL代码综合后,所截取主控逻辑模块整体接口图3-3。图3-3 主控逻辑模块接口示意图其关键接口含义以下:图3-4 控制器主控逻辑模块接口说明主控逻辑模块FsmMNvcs2是控制器关键模块,绝大多数控制器功效实现包含读页、写页、块擦除、读状态等操作全部是经过该模块不然控制完成,它实现比较复杂,关键是经过设计相互嵌套有限状态机,由大状态机调用小状态机,大小状态机相互配

35、合完成每一个对于存放器存取操作。图3-5 主控逻辑模块功效示意图 主控逻辑模块功效示意图34所表示,每个灰色结点代表一个功效实现,也代表了一个状态序列,系统处于start状态时,经过控制器AHB从设备接口模块写入指令到控制器指令寄存器(寄存器分配和相对应指令编码前面已经介绍),开启主状态机进入某个状态序列完成对存放器一个操作,而在某状态序列中每个状态则经过调用一个叫做toggle控制逻辑小状态机完成对存放器每一个具体操作,比如写一个命令、地址到存放器中。3.4Nand Flash控制器ECC模块ECC模块由ECC生成模块、错误地址定位模块和ECC主控逻辑模块三个子模块。ECC生成模块在写页操作

36、或读页操作过程中以每512个字节为一个数据包生成一组ECC校验码,错误地址定位模块则是在读页操作过程中对读出数据进行错误检测和错误地址生成(有错误发生时),ECC主控逻辑模块则实现控制ECC模块和错误地址定位模块工作。因为因为加工工艺不足,在Nand Flash控制器设计时应含有处理存放数据犯错功效。为处理该问题,本文将着重分析检测和纠正少许位数犯错ECC模块(Error Checking and Correcting)。Nand Flash和其它类型Flash存放器相比,有着密度大、价格低、读写速度快等优点,尤其是密度大特点使其在移动多媒体应用等领域得到了广泛使用。不过使用Nand Flas

37、h也有可能带来部分副作用,比如位反转现象,因为其存放单元采取串联架构,相邻存放单元有可能相互影响,使其保留逻辑值发生反转。所以在控制器设计中加入了错误检测和纠正功效,这个功效由ECC模块来实现。对数据进行校验时常见方法有奇偶校验、CRC校验等,而在Nand Flash应用中通常使用一个专用校验ECC校验,ECC即Error Checking andCorrecting缩写。在操作时序和电路稳定性不存在问题情况下,Nand Flash不会出现对整个block或是整个page不能正确存取这种情况,而只是在存取一页数据中有可能出现某一个或多个bit发生反转错误。而ECC校验能检测并纠正一个bit错误

38、,而且计算速度很快,对2比特以上错误不能确保被检测,而这在其实际应用中极少发生。依据这个实际情况,我们着重对ECC模块进行以下验证。第四章 ECC模块校验原理ECC校验是一个适合应用于存放器数据校验技术,针对NAND Flash在使用过程中有可能出现位反转现象,在控制器设计中加入了ECC模块。本章将讨论ECC校验码生成原理和ECC生成模块设计实现。4.1 汉明码算法ECC校验是在奇偶校验基础上发展而来,它将数据块看作一个矩阵,利用矩阵行、列奇偶信息生成ECC校验码。它能够检测并纠正单比特错误和检测双比特错误,但对双比特以上错误不能确保检测。它克服了传统奇偶校验只能检出奇数位犯错、校验码冗长、不

39、能纠错不足。每nbitECC数值可满足2nbit数据包校验要求。又因为这种Hamming码算法要求一对ECC数据(奇偶),所以总共要求2nbitECC校验数据来处理2nbit数据包。ECC通常每256字节原始数据生成3字节ECC校验数据,这三字节共24比特分成两部分:6比特列校验和16比特行校验,多出两个比特置1,这么对于每页2048字节存放器需要24字节ECC校验位。试验室采取矩阵形式,8位数据线每传来一个字节我们将其作为一行,256个字节作为一组,总共有256行。分别计算每行各bit异或结果记为字节校验码(Byte-Wise),计算每列各bit异或结果记为比特校验码(Bit-Wise)。E

40、CC列校验和生成规则以下图所表示:图4-1 ECC列校验用数学表示式表示为:P4=D7(+)D6(+)D5(+)D4P4=D3(+)D2(+)D1(+)D0 P2=D7(+)D6(+)D3(+)D2P2=D5(+)D4(+)D1(+)D0 P1=D7(+)D5(+)D3(+)D1P1=D6(+)D4(+)D2(+)D0这里(+)表示“位异或”操作。ECC行校验和生成规则以下图所表示:图4-2 ECC行校验用数学表示式表示为:P8=2nd(+)4th(+)6th(+)8th(+)这里(+)一样表示“位异或”操作当往Nand Flashpage中写入数据时候,每256字节我们生成一个ECC校验和,

41、称之为原ECC校验和,保留到PAGEOOB(out-of-band)数据区中。当从Nand Flash中读取数据时候,每256字节我们生成一个ECC校验和,称之为新ECC校验和。校验时候,依据上述ECC生成原理不难推断:将从OOB区中读出原ECC校验和新ECC校验和按位异或,若结果为0,则表示不存在错(或是出现了 ECC无法检测错误);若3个字节异或结果中存在11个比特位为1,表示存在一个比特错误,且可纠正;若3个字节异或结果中只存在1个比特位为1,表示 OOB区犯错;其它情况均表示出现了无法纠正错误。4.2 ECC生成模块设计本章第一节已经讨论了ECC校验码生成原理,在控制器进行读页操作和写

42、页操作时,ECC生成模块工作是相同,其内部设置有4个24bits向量,每个向量对应一块数据ECC校验码,写页操作时,ECC主控模块把要写入数据传给存放器同时,也将其发往ECC生成模块,并产生控制脉冲使ECC生成模块对和该数据块相对应ECC校验码进行更新,写完一整页数据后,在ECC主控模块控制下,分别把4组ECC校验码以字节方法发给ECC主控模块并最终写进存放器目标页备份数据区中。读页操作时,ECC主控模块把从存放器中读出数据传给主控逻辑模块同时也将其发给ECC生成模块,在ECC主控模块发出控制脉冲控制下对某组ECC校验码进行更新。ECC生成模块直接把目前正被读“数据块”最新更新ECC校验结果输

43、出到ECC错误定位模块,错误定位模块会在读操作过程中进行实时错误检测。 24位校验码包含6个列校验码和18个行校验码,6个列校验码生成电路图4-3所表示。图4-3 ECC校验6个列校验码生成电路图图4-3中enable为ECC主控逻辑发出ECC更新控制信号,DATAin为8位数据输入, Pr为一个数据包中全部数据第0、2、4、6位异或值,Pl则为数据包中全部数据第1、3、5、7位和异或值;P2为一个数据包中全部数据第0、1、4、5位异或值,P2则为本数据包中全部数据第2、3、6、7位异或值;P4、为一个数据包中全部数据第0、1、2、3位异或值,P4则为本数据包中全部数据第4、5、6、7位异或值

44、。ECC校验18个行校验码生成电路图4-4所表示。 图4-4 ECC校验18个行校验码生成电路图图4-4中COUNTill为9位地址输入,表示正在参与校验数据在该数据包中位置。每读或写一个数据, (n_8、16、32、641024、2048)Pn和Pn只有一个被更新,即P8、实际上对数据包中全部偶数行数据全部数据位进行校验,P8则对数据包中全部奇数行数据全部位进行校验;P16、则对第O、1、4、5、8、9508、509行数据全部位进行校验,P16则对其它第2、3、6、7510、511行数据全部位进行校验;依次类推,P2048对第O至第255行数据全部位进行校验,P2048对第256至第511行

45、数据全部位进行校验。 至此,ECC生成模块设计已经完成。第五章 ECC模块验证5.1汉明码验证5.1.1汉明码验证原理ECC校验负责检测错误、维护ECC信息、更正由原数值改变了单比特错误。全部ECC操作处理全部可由一个ECC模块来控制,其作为一个简单地存放一映射接口,放置在Nand器件和处理器接口之间。该模块通常包含Hamming编码产生模块和犯错位置模块,分别用于产生ECC校验码和计算犯错位置。下面,我将举例验证ECC模块。为计算ECC值,数据包中比特数据要优异行分割,如1/2组、1/4组、1/8组等,直到其精度达成单个比特为止,以8bit即1Byte数据包为例进行说明,以下表所表示。76543210比特位1101比特偶校验位01011/4偶校验位00011/2偶校验位01010001数据包01011/2奇校验位01001/4奇校验位0000比特奇校验位表5-1 8比特数据包校验分割 1/2 1/4 bitECCe=0001 0101 1101=101ECCO=0101 0100 0000=010该数据按表1所表示方法进行比特分割,分别得到上方偶校验值ECCe和下方奇校验值ECCo。其中,1/2校验值经“异或”操作组成ECC校验最高有效位,同理1/4校验值组成ECC校验次高有效位,最低有效位由具体到比特校验值填补。图1展示了两

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 学术论文 > 毕业论文/毕业设计

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服