端对端芯片数据通路保护装置及其方法

文档序号:6444569阅读:220来源:国知局
专利名称:端对端芯片数据通路保护装置及其方法
技术领域
本发明涉及数据通路保护技术,特别是涉及一种端对端芯片数据通路保护装置及其方法。
背景技术
目前,市场上的芯片由于成本,应用场合,环境等原因,没有考虑到内部数据通路 SRAM出错和外部数据通路DRAM或者NAND Flash出错的可能性,默认数据是一定正确的,但是事实上由于工艺原因,温度,环境,以及使用时间的增加会导致一定的错误率。这在固态存储的应用环境也是如此,在该领域需要保证数据的正确性以及保证不能发给主机端错误的数据而应该汇报出错或者重新启动。在此应用背景下,本发明提出了一个系统的解决方案,该方案不仅在数据缓冲(即SRAM和DRAM)以及数据存储区NAND Flash的通路上使用硬件逻辑进行纠错以及保护,而且针对描述这些通路数据的其他重要数据也进行了保护,以增强整个系统对错误的纠错率。

发明内容
本发明的目的在于提供一种端对端芯片数据通路保护装置及其方法,用于对数据缓冲以及数据存储区的通路使用硬件逻辑进行纠错及保护以及对描述这些通路数据的数据进行保护。为了实现上述目的,本发明提供一种端对端芯片数据通路保护装置,其特征在于, 包括通路保护模块,用于对芯片内部的数据通路、芯片与外部缓存之间的数据通路、芯片与外部存储器之间的数据通路进行保护;数据保护模块,连接所述通路保护模块,用于对描述上述通路数据的数据以及软件敏感重要数据进行保护。所述的端对端芯片数据通路保护装置,其中,所述通路保护模块进一步包括第一保护模块,用于采用加入奇偶校验位的方式对内部的SRAM数据进行保护;和 /或第二保护模块,用于对外部的DRAM数据保护,采用在芯片内部以32个比特为单位加入第一 ECC码进行检错以及纠错;和/或第三保护模块,用于对外部的数据存储单元NAND Flash中的数据,在路径上采用针对数据相关的大小为单位的第二 ECC码的保护。所述的端对端芯片数据通路保护装置,其中,所述第一保护模块进一步用于对芯片内部的SRAM根据粒度采用8比特、16比特,或32比特数据进行异或操作产生奇偶校验位,每粒度额外需要1比特的RAM单元来存储该奇偶校验位。所述的端对端芯片数据通路保护装置,其中,所述第二保护模块进一步用于在数据写入DRAM前,由芯片的内部硬件逻辑单元产生所述第一 ECC码,并获取所述第一 ECC码在DRAM中的存储地址;在数据读取时,根据该存储地址读取所述第一 ECC码, 并由所述内部硬件逻辑单元根据所述第一 ECC码进行检错和纠错。所述的端对端芯片数据通路保护装置,其中,所述第三保护模块进一步用于在数据写入NAND Flash前由芯片的内部硬件逻辑单元产生所述第二 ECC码,并随同原始数据一起写入一个页面;在读取过程中,读取整个页面进行检错和纠错。所述的端对端芯片数据通路保护装置,其中,所述数据保护模块进一步用于对描述所述通路数据的数据,采用在芯片内部以每32个比特为单位加入ECC码进行检错以及纠错;对软件敏感重要数据,将32位数据的数据最高位保留作为奇偶校验位,并采用该奇偶校验位进行检错以及纠错。为了实现上述目的,本发明提供一种端对端芯片数据通路保护方法,其特征在于, 包括通路保护步骤,用于对芯片内部的数据通路、芯片与外部缓存之间的数据通路、芯片与外部存储器之间的数据通路进行保护;数据保护步骤,用于对描述上述通路数据的数据以及软件敏感重要数据进行保护。所述的端对端芯片数据通路保护方法,其中,所述通路保护步骤中,进一步包括采用加入奇偶校验位的方式对内部的SRAM数据进行保护;和/或对外部的DRAM数据保护,采用在芯片内部以32个比特为单位加入第一 ECC码进行检错以及纠错;和/或对外部的数据存储单元NAND Flash中的数据,在路径上采用针对数据相关的大小为单位的第二 ECC码的保护。所述的端对端芯片数据通路保护方法,其中,所述通路保护步骤中,进一步包括对芯片内部的SRAM根据粒度采用8比特、16比特,或32比特数据进行异或操作产生奇偶校验位,每粒度额外需要1比特的RAM单元来存储该奇偶校验位。所述的端对端芯片数据通路保护方法,其中,所述通路保护步骤中,进一步包括在数据写入DRAM前,由芯片的内部硬件逻辑单元产生所述第一 ECC码,并获取所述第一 ECC码在DRAM中的存储地址;在数据读取时,根据该存储地址读取所述第一 ECC码, 并由所述内部硬件逻辑单元根据所述第一 ECC码进行检错和纠错。所述的端对端芯片数据通路保护方法,其中,所述通路保护步骤中,进一步包括在数据写入NAND Flash前由芯片的内部硬件逻辑单元产生所述第二 ECC码,并随同原始数据一起写入一个页面;在读取过程中,读取整个页面进行检错和纠错。所述的端对端芯片数据通路保护方法,其中,所述数据保护步骤中,还包括对描述所述通路数据的数据,采用在芯片内部以32个比特为单位加入ECC码进行检错以及纠错;对软件敏感重要数据,将32位数据的数据最高位保留作为奇偶校验位,并采用该奇偶校验位进行检错以及纠错。与现有技术相比,本发明的有益技术效果是本发明提出了一种数据通路保护的系统方案,该技术方案能对数据缓冲以及数据存储区的通路使用硬件逻辑进行纠错及保护以及对描述这些通路数据的数据进行保护,大大提高了芯片对制作缺陷、工作环境的抗性,有效地增强了用户的数据的完整性和正确性。


图1是典型的端对端数据通路示意图;图2是是典型的SOC芯片内部结构示意图;图3是本发明的端对端芯片数据通路保护装置结构图;图4是本发明对内部的SRAM中数据的保护机制示意图;图5是本发明对外部的DRAM中数据的保护机制示意图;图6是本发明对外部的NAND FLASH中数据的保护机制示意图;图7是本发明对META数据以及软件敏感重要数据的保护机制示意图。
具体实施例方式以下结合附图和具体实施例对本发明进行详细描述,但不作为对本发明的限定。对于一个典型的数据处理芯片,经常会存在着各种各样的数据通路,由于芯片制造工艺的不断提升,制造工艺提升容易受噪声,工艺偏差的影响,出错的概率也越来越大, 所以针对数据通路的保护也越来越重要,其中端对端的数据通路保护更是典型中的典型。如图1所示,为典型的端对端数据通路。主机101遵守协议向芯片102写入数据,芯片102接收到数据之后做某些处理写入外部存储器103中。同理,在写过程,主机101发起读操作。在图1中,存在四种数据通路一 )为主机101与芯片102之间的数据通路;二)为芯片102内部的数据通路;三)为芯片102与外部缓存104之间的数据通路(如存在时);四)为芯片102与外部存储器103之间的数据通路。在数据通路一中,数据将受到传输协议的保护,所以不在本发明覆盖范围之内。数据通路二、三、四均由本发明覆盖,因此本发明是提供一个完整的数据通路保护。相对于目前存在的技术方案,都只保护以上通路上的一个或两个。本发明除了可以保护主机101发送过来的数据外,还保护了描述这些通路数据的数据,即META数据的保护,以及软件敏感重要数据的保护。如图2所示,是典型的SOC芯片内部结构,其中包括CPU 20UDMA 202、总线、SRAM 203、数据传输协议控制器204、外部存储控制器205、其他外设206,还包括共享RAM、DRAM控制器。在数据写入过程中,CPU 201从数据传输协议控制器204接收命令或者数据,将数据缓存在SRAM 203或者外部存储控制器205,而数据读取过程,则与数据写入过程相反。在数据写入过程中,有可能由于SRAM 203以及外部存储控制器205的原因导致错误。本发明将完全保护这些数据通路。在一个存储应用方案中,PC机可能要发起一个读取数据的操作,比如读取一个数据文件时,不希望读取到一个错误的数据,比如银行系统。而出错可能是在数据原始的存储单元如NAND Flash,也可能在数据传送给主机的通路上,比如SRAM,DRAM上,因此保护数据存储单元本身以及整个数据通路都是同样重要的。本发明提出了一种不仅仅保护数据存储单元,而且还需要保护数据通路的方案,来确保数据出错时予以纠正,当错误无法纠正时, 进行错误报告。如图3所示,是本发明的端对端芯片数据通路保护装置结构图。该装置300包括 通路保护模块30、数据保护模块40。通路保护模块30,用于对芯片102内部的数据通路、芯片102与外部缓存104之间的数据通路、芯片102与外部存储器103之间的数据通路进行保护;数据保护模块40,连接通路保护模块30,用于对描述上述通路数据的数据(即 META数据)以及软件敏感重要数据进行保护。进一步地,通路保护模块30通过芯片102的内部硬件逻辑单元实现保护功能,其又包括第一保护模块301、第二保护模块302、第三保护模块303。第一保护模块301,用于采用加入奇偶校验位的方式对芯片102内部的SRAM中数据进行保护;芯片102的内部存在不同粒度的数据读写,因此第一保护模块301在进行数据保护时,对芯片102内部的SRAM根据粒度采用8比特,16比特或32比特数据进行异或操作产生奇偶校验位,每粒度额外需要1比特的RAM单元来存储该奇偶校验位,芯片102的内部硬件逻辑单元能提供错误报告机制,保护涉及所有的内部的SRAM 203,包括CPU内部。该方式将增加SRAM 203的面积。第二保护模块302,用于对外部的DRAM数据保护,其采用在芯片102内部以每32 个BIT(比特)为单位加入ECC码来实现检错以及纠错。进一步地,第二保护模块302在数据写入DRAM前,芯片102的内部硬件逻辑单元产生ECC码,并提供接口可以由用户或者系统指定ECC码所在DRAM中的存储地址;在数据读取时,同时根据存储地址读取相对应的ECC码,并由芯片102的内部硬件逻辑单元根据 ECC码进行检错和纠错,若存在错误,则纠正,若无法纠正,则报错。由于ECC码存储于DRAM 207内,这将会占用DRAM 207内的一些数字存储单元,降低DRAM 207的有效使用率。针对此通路,将采用比较简单的纠错编码,以减少对芯片面积的增加。进一步地,ECC码为典型的海明码,并需要7个额外的比特位来存储,采用海明码能纠正1个错误,并检测到2个错误。第三保护模块303,用于对外部的数据存储单元NAND Flash 208进行保护,其是在路径上采用针对数据相关的大小为单位的ECC码的保护。该路径是指由芯片102的内部缓存数据写入外部的NAND Flash 208芯片颗粒的整个数据通路。进一步地,第三保护模块303在数据写入NAND Flash 208前由芯片102的内部硬件逻辑单元产生ECC码,并随同原始数据一起写入一个页面(PAGE,为NAND Flash 208最小读写单位),在读取过程中,读取整个页面进行检错和纠错,若存在错误,则纠正,若无法纠正,则报错。数据保护模块40,用于对描述上述通路数据的数据(称之为META数据),以及可配的软件敏感重要数据进行保护,具体地对META数据,数据保护模块40采用DRAM 207的硬件机制保护。对软件敏感重要数据,数据保护模块40在32位数据的数据最高位保留作为奇偶校验位,由芯片102提供奇偶校验位产生和检查的硬件逻辑单元,这对软件数据来说是透明的,以方便软件的使用。可配的软件敏感重要数据是指数据保护地址范围的可配,也可以通过这个来实现是否需要使能该功能。在此,假设数据写入DRAM 207是以32比特作为单位的,为了不用其他地址来保存该校验位,设定最高位即第31比特作为奇偶校验位,数据保护模块40不能使用该比特作为数据来使用,而是用第31位来产生奇偶校验位。如图4所示,是本发明对内部的SRAM中数据的保护机制示意图,结合图2,描述该保护机制。第一保护模块301对于芯片102内部的SRAM 203将会采用加入奇偶校验位的方式来实现,对芯片102内部的SRAM 203根据粒度采用8比特,16比特或32比特数据进行异或操作产生奇偶校验位,每粒度额外需要了 IBIT (比特)的RAM单元来存储该奇偶校验位,芯片102的内部硬件逻辑单元提供错误报告机制,保护涉及所有的内部的SRAM 203,包括CPU内部。该方式将增加SRAM 203的面积。如图5所示,是本发明对外部的DRAM数据的保护机制示意图,结合图2,描述该保护机制。对于外部的DRAM数据保护,第二保护模块302采用在芯片102内部以每32个 BIT(比特)为单位加入ECC码来实现纠错以及检错。进一步地,第二保护模块302在数据写入DRAM 207前,由芯片102的内部硬件逻辑单元产生ECC码,并提供接口可以由用户或系统指定ECC码所在DRAM 207中的存储地址;在数据读取时,同时根据存储地址读取相对应的ECC码,并由芯片102的内部硬件逻辑单元进行检错和纠错,若存在错误,则纠正,若无法纠正,则报错。由于ECC码存储于DRAM 207内,这将会占用DRAM 207内的一些数字存储单元,降低DRAM 207的有效使用率。针对此通路,将采用比较简单的纠错编码,以减少对芯片面积的增加。进一步地,纠错编码为典型的海明码,其需要7个额外的比特位来存储,采用海明码能纠正1个错误,并检测到2个错误。如图6所示,是本发明对外部的NAND Flash中数据的保护机制示意图,结合图2, 描述该保护机制。本发明还对外部的数据存储单元NAND Flash 208中的数据进行保护,具体是在该路径上采用针对数据相关的大小为单位的ECC码的保护。该路径是指由芯片102的内部缓存数据写入外部的NAND Flash 208芯片颗粒的整个数据通路。进一步地,第三保护模块303在数据写入NAND Flash 208前由芯片102的内部硬件逻辑单元产生ECC码,并随同原始数据一起写入一个页面(PAGE),在读取过程中,读取整个页面进行检错和纠错。若存在错误,则纠正,若无法纠正,则报错。
如图7所示,是本发明的对META数据以及软件敏感重要数据的保护机制示意图, 结合图2,描述该保护机制。除了对以硬件逻辑(SRAM、DRAM、NAND Flash)为单元的保护以外,本发明还提出了针对描述上述通路数据的数据(称之为META数据)的保护,以及可配的软件敏感重要数据的保护。可配的软件敏感重要数据是指数据保护地址范围的可配,也可以通过这个来实现是否需要使能该功能。对META数据,数据保护模块40将用DRAM 207的硬件机制保护。对软件敏感重要数据,数据保护模块40是在32位数据的数据最高位保留作为奇偶校验位,由芯片102提供奇偶校验位产生和检查的硬件逻辑单元,这对软件数据来说是透明的,以方便软件的使用。在此,假设数据写入DRAM 207是以32比特作为单位,为了不用其他地址来保存该校验位,假定最高位即第31比特作为奇偶校验位,数据保护模块40不能使用该比特作为数据来使用,而是用第31位来产生奇偶校验位。本发明提出了对于芯片的端对端的数据通路保护方法,该技术方案以32比特为单位,最高位为奇偶校验位来额外保护软件数据。采用本发明提出的芯片的端对端的数据通路保护方法,将极大的提升芯片数据的正确性,适用于对数据正确性特别敏感的领域,如银行,军事,太空场合。当然,本发明还可有其它多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明做出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。
9
权利要求
1.一种端对端芯片数据通路保护装置,其特征在于,包括通路保护模块,用于对芯片内部的数据通路、芯片与外部缓存之间的数据通路、芯片与外部存储器之间的数据通路进行保护;数据保护模块,连接所述通路保护模块,用于对描述上述通路数据的数据以及软件敏感重要数据进行保护。
2.根据权利要求1所述的端对端芯片数据通路保护装置,其特征在于,所述通路保护模块进一步包括第一保护模块,用于采用加入奇偶校验位的方式对内部的SRAM数据进行保护;和/或第二保护模块,用于对外部的DRAM数据保护,采用在芯片内部以32个比特为单位加入第一 ECC码进行检错以及纠错;和/或第三保护模块,用于对外部的数据存储单元NAND Flash中的数据,在路径上采用针对数据相关的大小为单位的第二 ECC码的保护。
3.根据权利要求2所述的端对端芯片数据通路保护装置,其特征在于,所述第一保护模块进一步用于对芯片内部的SRAM根据粒度采用8比特、16比特,或32比特数据进行异或操作产生奇偶校验位,每粒度额外需要1比特的RAM单元来存储该奇偶校验位。
4.根据权利要求2或3所述的端对端芯片数据通路保护装置,其特征在于,所述第二保护模块进一步用于在数据写入DRAM前,由芯片的内部硬件逻辑单元产生所述第一 ECC码,并获取所述第一 ECC码在DRAM中的存储地址;在数据读取时,根据该存储地址读取所述第一 ECC码,并由所述内部硬件逻辑单元根据所述第一 ECC码进行检错和纠错。
5.根据权利要求2或3所述的端对端芯片数据通路保护装置,其特征在于,所述第三保护模块进一步用于在数据写入NAND Flash前由芯片的内部硬件逻辑单元产生所述第二 ECC码,并随同原始数据一起写入一个页面;在读取过程中,读取整个页面进行检错和纠错。
6.根据权利要求1、2或3所述的端对端芯片数据通路保护装置,其特征在于,所述数据保护模块进一步用于对描述所述通路数据的数据,采用在芯片内部以每32个比特为单位加入ECC码进行检错以及纠错;对软件敏感重要数据,将32位数据的数据最高位保留作为奇偶校验位,并采用该奇偶校验位进行检错以及纠错。
7.—种端对端芯片数据通路保护方法,其特征在于,包括通路保护步骤,用于对芯片内部的数据通路、芯片与外部缓存之间的数据通路、芯片与外部存储器之间的数据通路进行保护;数据保护步骤,用于对描述上述通路数据的数据以及软件敏感重要数据进行保护。
8.根据权利要求7所述的端对端芯片数据通路保护方法,其特征在于,所述通路保护步骤中,进一步包括采用加入奇偶校验位的方式对内部的SRAM数据进行保护;和/或对外部的DRAM数据保护,采用在芯片内部以32个比特为单位加入第一 ECC码进行检错以及纠错;和/或对外部的数据存储单元NAND Flash中的数据,在路径上采用针对数据相关的大小为单位的第二 ECC码的保护。
9.根据权利要求8所述的端对端芯片数据通路保护方法,其特征在于,所述通路保护步骤中,进一步包括对芯片内部的SRAM根据粒度采用8比特、16比特,或32比特数据进行异或操作产生奇偶校验位,每粒度额外需要1比特的RAM单元来存储该奇偶校验位。
10.根据权利要求8或9所述的端对端芯片数据通路保护方法,其特征在于,所述通路保护步骤中,进一步包括在数据写入DRAM前,由芯片的内部硬件逻辑单元产生所述第一 ECC码,并获取所述第一 ECC码在DRAM中的存储地址;在数据读取时,根据该存储地址读取所述第一 ECC码,并由所述内部硬件逻辑单元根据所述第一 ECC码进行检错和纠错。
11.根据权利要求8或9所述的端对端芯片数据通路保护方法,其特征在于,所述通路保护步骤中,进一步包括在数据写入NAND Flash前由芯片的内部硬件逻辑单元产生所述第二ECC码,并随同原始数据一起写入一个页面;在读取过程中,读取整个页面进行检错和纠错。
12.根据权利要求7、8或9所述的端对端芯片数据通路保护方法,其特征在于,所述数据保护步骤中,还包括对描述所述通路数据的数据,采用在芯片内部以32个比特为单位加入ECC码进行检错以及纠错;对软件敏感重要数据,将32位数据的数据最高位保留作为奇偶校验位,并采用该奇偶校验位进行检错以及纠错。
全文摘要
本发明公开了一种端对端芯片数据通路保护装置及其方法,其中该装置包括通路保护模块,用于对芯片内部的数据通路、芯片与外部缓存之间的数据通路、芯片与外部存储器之间的数据通路进行保护;数据保护模块,连接所述通路保护模块,用于对描述上述通路数据的数据以及软件敏感重要数据进行保护。本发明能对数据缓冲以及数据存储区的通路使用硬件逻辑进行纠错及保护以及对描述这些通路数据的数据进行保护。
文档编号G06F11/10GK102567132SQ201110456099
公开日2012年7月11日 申请日期2011年12月30日 优先权日2011年12月30日
发明者傅俊诚 申请人:记忆科技(深圳)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1