CN102541469B - 固件存储系统中数据保护的方法、设备及系统 - Google Patents

固件存储系统中数据保护的方法、设备及系统 Download PDF

Info

Publication number
CN102541469B
CN102541469B CN201110414981.0A CN201110414981A CN102541469B CN 102541469 B CN102541469 B CN 102541469B CN 201110414981 A CN201110414981 A CN 201110414981A CN 102541469 B CN102541469 B CN 102541469B
Authority
CN
China
Prior art keywords
data
read
mirror image
firmware memory
data block
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201110414981.0A
Other languages
English (en)
Other versions
CN102541469A (zh
Inventor
周超
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN201110414981.0A priority Critical patent/CN102541469B/zh
Publication of CN102541469A publication Critical patent/CN102541469A/zh
Application granted granted Critical
Publication of CN102541469B publication Critical patent/CN102541469B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

本发明实施例提供了一种固件存储系统中数据保护的方法、设备及系统,涉及信息安全领域,方法包括:冗余独立闪存阵列RAIF控制器将与自身相连的N个固件存储器进行分组,构成冗余独立闪存阵列;当RAIF控制器接收到主设备发送的写命令时,将写命令携带的数据写入冗余独立闪存阵列中镜像分组内的两个固件存储器中;当RAIF控制器接收到主设备发送的读命令时,从冗余独立闪存阵列中镜像分组内的一个固件存储器中读取读命令所要求读取的数据,且当所读取的数据出错时,从镜像分组内的另一个固件存储器中读取读命令所要求读取的数据。本技术方案保证了固件数据完整性和准确性。

Description

固件存储系统中数据保护的方法、设备及系统
技术领域
本发明涉及信息安全领域,特别涉及一种固件存储系统中数据保护的方法、设备及系统。
背景技术
固件(Firmware)可以被理解为“固化的软件”,广泛地存在于各种电子设备,如小型机、路由器、交换机、PC(personal computer,个人计算机)机、智能手机、数码相机、光驱、显卡或者遥控器等电子设备。例如,针对PC机来讲,固件指主板BIOS(Basic Input/OuputSystem,基本输入输出系统),主要完成上电自检、初始化和操作系统引导等功能;针对智能手机来将,固件即手机操作系统。
通常,固件被保存在电子设备内的非易失性存储器,如ROM(Read-Only Memory,只读存储器)、PROM(Progammable Read-Only Memory,可编程只读存储器)、EPROM(ErasableProgammable Read-Only Memory,可擦写可编程只读存储器)、EEPROM(ElectricallyErasable Programmable Read-Only Memory,电可擦可编程只读存储器)或者Flash Memory(闪存)芯片等。随着IT(Information Technology,信息技术)技术的迅速发展,基于闪存芯片容易做大容量且可擦写等特点,在固件需要不断更新以适应持续升级的硬件环境、固件实现的功能也越来越复杂及所需存储空间越来越大的情况下,闪存芯片成为了现有电子设备最常用的固件存储器。
现有技术中,固件经常要进行RAS(Reliability,Availability&Serviceability,可靠性,可用性,服务性)事件的处理。但是,由于闪存芯片在擦写操作时有一定的失败概率,这将导致写入闪存芯片的固件数据有误,尤其在主设备数量众多且各主设备均挂载闪存芯片的情况下,主设备在读取固件时出现固件数据有误的概率将会更大。
发明内容
为了保证固件数据完整性和准确性,本发明实施例提供了一种固件存储系统中数据保护的方法、设备及系统。所述技术方案如下:
一种固件存储系统中数据保护的方法,所述方法包括:
冗余独立闪存阵列RAIF控制器将与自身相连的N个固件存储器按照每两个固件存储器一组的规则进行分组,构成冗余独立闪存阵列,所述冗余独立闪存阵列至少包含一个镜像分组,所述镜像分组内包括互为镜像的两个固件存储器,其中,N为大于等于2的整数;
当所述RAIF控制器接收到主设备发送的写命令时,将所述写命令携带的数据写入所述冗余独立闪存阵列中镜像分组内的两个固件存储器中;
当所述RAIF控制器接收到主设备发送的读命令时,从所述冗余独立闪存阵列中镜像分组内的一个固件存储器中读取所述读命令所要求读取的数据,当所读取的数据出错时,从所述镜像分组内的另一个固件存储器中读取所述读命令所要求读取的数据。
一种冗余独立闪存阵列RAIF控制器,所述RAIF控制器包括:RAIF构建模块、写数据模块和读数据模块;
所述RAIF构建模块,用于将与所述RAIF控制器相连的N个固件存储器进行分组,构成冗余独立闪存阵列,所述冗余独立闪存阵列至少包含一个镜像分组,所述镜像分组内包括互为镜像的两个固件存储器,其中,N为大于等于2的整数;
所述写数据模块,用于当接收到主设备发送的写命令时,将所述写命令携带的数据写入所述冗余独立闪存阵列中镜像分组内的两个固件存储器中;
所述读数据模块,用于当所述RAIF控制器接收到主设备发送的读命令时,从所述冗余独立闪存阵列中镜像分组内的一个固件存储器中读取所述读命令所要求读取的数据,当所读取的数据出错时,从所述镜像分组内的另一个固件存储器中读取所述读命令所要求读取的数据。
一种固件存储系统,所述系统包括:主设备、冗余独立闪存阵列RAIF控制器及N个固件存储器,所述N个固件存储器分别通过所述RAIF控制器与所述主设备相连,其中,N为大于等于2的整数;
所述RAIF控制器,用于将与自身相连的N个固件存储器按照每两个固件存储器一组的规则进行分组,构成冗余独立闪存阵列,所述冗余独立闪存阵列至少包含一个镜像分组,所述镜像分组内包括互为镜像的两个固件存储器;
所述主设备,用于向所述RAIF控制器发送写命令或者读命令;
所述RAIF控制器,还用于当接收到主设备发送的写命令时,将所述写命令携带的数据写入所述冗余独立闪存阵列中镜像分组内的两个固件存储器中;
所述RAIF控制器,还用于当接收到主设备发送的读命令时,从所述冗余独立闪存阵列中镜像分组内的一个固件存储器中读取所述读命令所要求读取的数据,当所读取的数据出错时,从所述镜像分组内的另一个固件存储器中读取所述读命令所要求读取的数据。
所述RAIF控制器,还用于将读取的数据返回给所述主设备。
本发明技术方案中,RAIF控制器将与其相连的N个固件存储器构建成冗余独立闪存阵列,并在写数据时,将数据同时写入到冗余独立闪存阵列中镜像分组内的两个固件存储器中,这样,在读取数据时,一旦发现从镜像分组内的一个固件存储器中所读取的数据错误时,就可以从该竞相分组中的另外一个固件存储器中读取数据,以实现数据的备份,保证数据的完整性和安全性。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例1提供的一种固件存储系统中数据保护的方法流程图;
图2是本发明实施例2提供的一种固件存储系统中数据保护的方法流程图;
图3a为本发明实施例2所提供的一种RAIF控制器所构建的冗余独立闪存阵列的示例图;
图3b为本发明实施例2所提供的另一种RAIF控制器所构建的冗余独立闪存阵列的示例图;
图4a为本发明实施例2所提供的一种RAIF控制器将未分块数据写入冗余独立闪存阵列的示例图;
图4b为本发明实施例2所提供的一种RAIF控制器将数据分块后写入冗余独立闪存阵列的示例图;
图5a为本发明实施例2所提供的一种RAIF控制器将未分块数据及校验值写入冗余独立闪存阵列的示例图;
图5b为本发明实施例2所提供的一种RAIF控制器将数据分块后带校验值写入冗余独立闪存阵列的示例图;
图6为本发明实施例2所提供的一种RAIF控制器将数据分块后带校验值写入冗余独立闪存阵列的示例图;
图7为本发明实施例3所提供的一种冗余独立闪存阵列RAIF控制器装置框图;
图8为本发明实施例3所提供的一种冗余独立闪存阵列RAIF控制器装置框图;
图9为本发明实施例4所提供的一种固件存储系统示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
实施例1
参见图1,一种固件存储系统中数据保护的方法,方法包括:
步骤101:冗余独立闪存阵列RAIF控制器将与自身相连的N个固件存储器进行分组,构成冗余独立闪存阵列,其中,冗余独立闪存阵列至少包含一个镜像分组,镜像分组内包括互为镜像的两个固件存储器,N为大于等于2的整数;
步骤102:当RAIF控制器接收到主设备发送的写命令时,将写命令携带的数据写入冗余独立闪存阵列中镜像分组内的两个固件存储器中;
步骤103:当RAIF控制器接收到主设备发送的读命令时,从冗余独立闪存阵列中镜像分组内的一个固件存储器中读取读命令所要求读取的数据,当所读取的数据出错时,从镜像分组内的另一个固件存储器中读取读命令所要求读取的数据。
本发明技术方案中,RAIF控制器将与其相连的N个固件存储器构建成冗余独立闪存阵列,并在写数据时,将数据同时写入到冗余独立闪存阵列中镜像分组内的两个固件存储器中,这样,在读取数据时,一旦发现从镜像分组内的一个固件存储器中所读取的数据错误时,就可以从该竞相分组中的另外一个固件存储器中读取数据,以实现数据的备份,保证数据的完整性和安全性。
实施例2
参见图2,一种固件存储系统中数据保护的方法,以保证固件数据完整性和准确性,并可以实现固件的快速更新,所述方法具体可以包括如下步骤:
步骤201:冗余独立闪存阵列RAIF控制器将与自身相连的N个固件存储器进行分组,构成冗余独立闪存阵列,具体地,RAIF控制器将与自身相连的N个固件存储器按照每两个固件存储器一组的规则进行分组,其中,冗余独立闪存阵列至少包含一个镜像分组,镜像分组内包括互为镜像的两个固件存储器,N为大于等于2的整数;
其中,RAIF控制器具体可以是FPGA(Field-Programmable Gate Array,现场可编程门阵列)控制器,RAID(Redundant Array of Independent Disks,冗余独立磁盘阵列)控制器、CPLD(Complex Programmable Logic Device,复杂可编程逻辑器件)控制器或者ASIC(Application Specific Integrated Circuit,特定应用集成电路)控制器等芯片器件。
固件存储器具体可以是SD(Secure Digital Card,安全数字卡)卡、CF(Compact Flash,紧凑型闪存)卡、MS(Memory Stick,记忆棒)卡、XD(XD-PICTURE CARD)卡、TF(Trans FLash)卡、U盘或者NOR Flash芯片等固件存储器。
本发明实施例中,RAIF控制器所连接的固件存储器的个数可以是偶数也可以是奇数,那么,基于步骤201所述的构建冗余独立闪存阵列的方式可以知道:当RAIF控制器所连接的固件存储器的个数为偶数时,则该RAIF控制器所构建的冗余独立闪存阵列中仅包含一个或者多个镜像分组,当RAIF控制器所连接的固件存储器的个数为奇数时,则该RAIF控制器所构建的冗余独立闪存阵列中除包含有一个或者多个镜像分组外,还会有一个孤立的固件存储器。
例如,参见图3a,为本发明实施例所提供的一种RAIF控制器所构建的冗余独立闪存阵列的示例图,RAIF控制301a连接有固件存储器302a、固件存储器303a、固件存储器304a和固件存储器305a;则,RAIF控制器301a便可以将固件存储器302a和固件存储器303a分到同一个镜像分组A1,将有固件存储器304a和有固件存储器305a分到同一镜像分组A2中,也即RAIF控制器301a所构建的冗余独立闪存阵列中仅有2个镜像分组。
参见图3b,为本发明实施例所提供的另一种RAIF控制器所构建的冗余独立闪存阵列的示例图,RAIF控制301b连接有固件存储器302b、固件存储器303b、固件存储器304b、固件存储器305b和固件存储器306b;则,RAIF控制器301b便可以将固件存储器302b和固件存储器303b分到同一个镜像分组B1,将有固件存储器304b和有固件存储器305b分到同一镜像分组B2中,固件存储器306b作为孤立的固件存储器存在,也即RAIF控制器301b所构建的冗余独立闪存阵列中有两个镜像分组和一个孤立的固件存储器。
步骤202:当RAIF控制器接收到主设备发送的写命令时,将写命令携带的数据写入冗余独立闪存阵列中镜像分组内的两个固件存储器中;
其中,主设备具体可以是CPU(Central Processor Unit,中央处理器单元)芯片、ICH(Input/Output Controller Hub,南桥)芯片或者单片机等需要对固件进行读写操作的芯片器件。
本发明实施例中,RAIF控制器可以通过如下三种方式将写命令携带的数据写入冗余独立闪存阵列中镜像分组内的两个固件存储器中:
方式一、当N为大于等于2的偶数时,将写命令携带的数据写入到冗余独立闪存阵列中镜像分组内的两个固件存储器中包括:
将写命令携带的数据分成M个数据块,其中,M为大于等于1的整数;
分别将M个数据块作为当前待写入的数据块,执行如下操作:从冗余独立闪存阵列中选择一镜像分组,并将当前待写入的数据块同时写入所选择的镜像分组内的两个固件存储器;
记录并保存数据与数据的数据块和存储数据的数据块镜像分组间对应关系。
针对图3a所示的冗余独立闪存阵列,参见图4a,为本发明实施例RAIF控制器将未分块数据写入冗余独立闪存阵列的示例图;RAIF控制器301a将写命令所携带的数据C同时写入镜像分组A1中的固件存储器302a和固件存储器303a。
那么,当RAIF控制器301a从固件存储器302a中读取数据C失败或者读取的数据B错误时,可以从固件存储器303a中读取数据C,以实现数据的备份,保证数据的完整性和安全性。
针对图3a所示的冗余独立闪存阵列,参见图4b,为本发明实施例RAIF控制器将数据分块后写入冗余独立闪存阵列的示例图;当M为大于等于2的值,例如M为3时,RAIF控制器301a将写命令携带的数据C随机分为连续的数据块C1、数据块C2和数据块C3;RAIF控制器301将数据块C1同时写入到镜像分组A1中的固件存储器302a和固件存储器303a中、将数据块C2同时写入到镜像分组A2中的固件存储器304a和固件存储器305a中、将数据块C3同时写入到镜像分组A1中的固件存储器302a和固件存储器303a中;将数据A→数据块C1、数据块C2和数据块C3→镜像分组A1、镜像分组A2和镜像分组A1的对应关系记录并保存下来,以便在读取数据时使用。
那么,当RAIF控制器从固件存储器302a中读取数据块C1失败或者读取的数据块C1错误时,可以从固件存储器303a中读取数据块C1,以实现数据的备份,保证数据的完整性和安全性;另外,将数据C分块后并行存储在多个镜像分组中,当RAIF控制器301a读取数据C时,便可以同时从多个镜像分组中同时读取数据C的各个数据块,并将所读取的g各数据块组合还原为数据C,可以提升数据读取的速度。
方式二、当N为大于等于2的偶数时,将写命令携带的数据写入到冗余独立闪存阵列中镜像分组内的两个固件存储器中包括:
将写命令携带的数据分成M个数据块,并分别计算M个数据块的校验值,其中,M为大于等于1的整数;
分别将M个数据块作为当前待写入的数据块,执行如下操作:从冗余独立闪存阵列中选择一镜像分组,并将当前待写入的数据块和当前待写入的数据块的校验值同时写入所选择的镜像分组内的两个固件存储器;
记录并保存数据与数据的数据块和存储数据的数据块镜像分组间对应关系。
针对图3a所示的冗余独立闪存阵列,参见图5a,为本发明实施例RAIF控制器将未分块数据及校验值写入冗余独立闪存阵列的示例图;RAIF控制器301a计算写命令所携带的数据C的校验和,如计算数据C的奇偶校验和C’,其中,数据C的校验和用户验证数据C是否出错,根据该校验和可以更进一步地保证RAIF控制器在读取数据时的正确性;RAIF控制器301a将数据C及校验和C’同时写入固件存储器302a和固件存储器303a。
那么,当RAIF控制器301a从固件存储器302a中读取数据C失败或者读取的数据C错误时,可以从固件存储器303a中读取数据C,以实现数据的备份,保证数据的完整性和安全性。
针对图3a所示的冗余独立闪存阵列,参见图5b,为本发明实施例RAIF控制器将数据分块后带校验值写入冗余独立闪存阵列的示例图;当M为大于等于2的值,例如M为3时,RAIF控制器301a将写命令携带的数据C随机分为连续的数据块C1、数据块C2和数据块C3,并分别计算数据块C1、数据块C2和数据块C3的校验和C1’、C2’和C3’,其中,各数据块的校验和分别用于验证各数据块是否出错,进一步保证RAIF控制器301a在读取数据块时的正确性;RAIF控制器301将数据块C1及校验和C1’同时写入到镜像分组A1中的固件存储器302a和固件存储器303a中、将数据块C2及校验和C2’同时写入到镜像分组A2中的固件存储器304a和固件存储器305a中、将数据块C3及校验和C3’同时写入到镜像分组A1中的固件存储器302a和固件存储器303a中;将数据C→数据块C1、数据块C2和数据块C3→镜像分组A1、镜像分组A2和镜像分组A1的对应关系记录并保存下来,以便在读取数据时使用。
那么,当RAIF控制器从固件存储器302a中读取数据块C1失败或者读取的数据块C1错误时,可以从固件存储器303a中读取数据块C1,以实现数据的备份,保证数据的完整性和安全性;另外,将数据C分块后并行存储在多个镜像分组中,当RAIF控制器301a读取数据C时,便可以同时从多个镜像分组中同时读取数据C的各个数据块,并将所读取的数据块组合还原为数据C,可以提升数据读取的速度,另外,在读取数据块时,还相应读取该数据块对应的校验和,并根据所读取的校验和验证所读取数据块的正确性,以保证所读取数据的正确性。
更进一步地,本发明实施例中,RAIF控制器可以根据配置信息将数据块及数据块对应的校验值分别写到到固件存储器的特定区域,其中,配置信息给出了固件存储器中数据区与校验区的具体划分信息。
方式三、当N为大于等于2的奇数时,将写命令携带的数据写入到冗余独立闪存阵列中镜像分组内的两个固件存储器中包括:
将写命令携带的数据分成M个数据块,并分别计算M个数据块的校验值,其中,M为大于等于1的整数;
分别将M个数据块作为当前待写入的数据块,执行如下操作:从冗余独立闪存阵列中选择一镜像分组,并将当前待写入的数据块同时写入所选择的镜像分组内的两个固件存储器,且将当前待写入的数据块的校验值写入未被分到镜像分组内的固件存储器;
记录并保存数据与数据的数据块和存储数据的数据块镜像分组间对应关系。
针对图3b所示的冗余独立闪存阵列,参见图6,为本发明实施例RAIF控制器将数据分块后带校验值写入冗余独立闪存阵列的示例图;当M为大于等于2的值,例如M为3时,RAIF控制器301b将写命令携带的数据C随机分为连续的数据块C1、数据块C2和数据块C3,并分别计算数据块C1、数据块C2和数据块C3的校验和C1’、C2’和C3’,其中,各数据块的校验和分别用于验证各数据块是否出错,进一步保证RAIF控制器301b在读取数据块时的正确性;RAIF控制器301将数据块C1同时写入到镜像分组B1中的固件存储器302b和固件存储器303b中,并将校验和C1’写入孤立的固件存储器306b,将数据块C2同时写入到镜像分组B2中的固件存储器304b和固件存储器305b中,并将校验和C2’写入孤立的固件存储器306b,将数据块C3同时写入到镜像分组B1中的固件存储器302b和固件存储器303b中,并将校验和C3’写入孤立的固件存储器306b;将数据C→数据块C1、数据块C2和数据块C3→镜像分组B1、镜像分组B2和镜像分组B1的对应关系记录并保存下来,以便在读取数据时使用。
那么,当RAIF控制器从固件存储器302b中读取数据块C1失败或者读取的数据块C1错误时,可以从固件存储器303b中读取数据块C1,以实现数据的备份,保证数据的完整性和安全性;另外,将数据C分块后并行存储在多个镜像分组中,当RAIF控制器301b读取数据C时,便可以同时从多个镜像分组中同时读取数据C的各个数据块,并将所读取的数据块组合还原为数据C,可以提升数据读取的速度,另外,在读取数据块时,还相应读取该数据块对应的校验和,并根据所读取的校验和验证所读取数据块的正确性,以保证所读取数据的正确性。
步骤203:当RAIF控制器接收到主设备发送的读命令时,从冗余独立闪存阵列中镜像分组内的一个固件存储器中读取读命令所要求读取的数据,当所读取的数据出错时,从镜像分组内的另一个固件存储器中读取读命令所要求读取的数据。
本发明实施例中,针对方式一的RAIF控制器将写命令携带的数据写入冗余独立闪存阵列中镜像分组内的两个固件存储器中的方法,相应地从冗余独立闪存阵列中镜像分组内的一个固件存储器中读取读命令所要求读取的数据,当所读取的数据出错时,从分组内的另一个固件存储器中读取读命令所要求读取的数据包括:
查找数据与数据的数据块和存储数据的数据块镜像分组间对应关系,得到各存储有读命令所要求读取数据的数据块的镜像分组;
分别将所查找得到的各镜像分组作为当前待读取的镜像分组,执行如下操作:从当前待读取的镜像分组内的一个固件存储器中读取所要求读取数据的数据块,确定读取过程是否出现读取故障,当出现读取故障时,从当前待读取的镜像分组内的另一个固件存储器中读取所要求读取数据的数据块;
将所读取的各所要求读取数据的数据块组合后得到所要求读取的数据,并将组合得到的所要求读取的数据返回给主设备。
本发明实施例中,针对方式二的RAIF控制器将写命令携带的数据写入冗余独立闪存阵列中镜像分组内的两个固件存储器中的方法,相应地,从冗余独立闪存阵列中镜像分组内的一个固件存储器中读取读命令所要求读取的数据,当所读取的数据出错时,从镜像分组内的另一个固件存储器中读取读命令所要求读取的数据包括:
查找数据与数据的数据块和存储数据的数据块镜像分组间对应关系,得到各存储有读命令所要求读取数据的数据块的镜像分组;
分别将所查找得到的各镜像分组作为当前待读取的镜像分组,执行如下操作:从当前待读取的镜像分组内的一个固件存储器中读取所要求读取数据的数据块及数据块对应的校验值,并根据校验值验证数据块是否出错,当校验值出错时,从当前待读取的镜像分组内的另一个固件存储器中读取所要求读取数据的数据块;
将所读取的各所要求读取数据的数据块组合后得到所要求读取的数据,并将组合得到的所要求读取的数据返回给主设备。
本发明实施例中,针对方式三的RAIF控制器将写命令携带的数据写入冗余独立闪存阵列中镜像分组内的两个固件存储器中的方法,相应地,从冗余独立闪存阵列中镜像分组内的一个固件存储器中读取读命令所要求读取的数据,当所读取的数据出错时,从镜像分组内的另一个固件存储器中读取读命令所要求读取的数据包括:
查找数据与数据的数据块和存储数据的数据块镜像分组间对应关系,得到各存储有读命令所要求读取数据的数据块的镜像分组;
分别将所查找得到的各镜像分组作为当前待读取的镜像分组,执行如下操作:从当前待读取的镜像分组内的一个固件存储器中读取所要求读取数据的数据块,并从未被分到镜像分组内的固件存储器中读取数据块的校验值,根据校验值验证数据块是否出错,当校验值出错时,从当前待读取的镜像分组内的另一个固件存储器中读取所要求读取数据的数据块;
将所读取的各所要求读取数据的数据块组合后得到所要求读取的数据,并将组合得到的所要求读取的数据返回给主设备。
步骤204:RAIF控制器接收固件存储器硬件接口发送的中断请求,并根据该中断请求判断此时是有新的固件存储设备插入还是有固件存储设备拔除,
当中断请求指示有新的固件存储器接入RAIF控制器时,执行步骤205;
当中断请求指示有固件存储器从RAIF控制器中拔除时,执行步骤206;
步骤205:RAIF控制器判断自身是否能够识别新接入的固件存储器,
在能够识别新接入的固件存储器时,将新接入的固件存储器加入冗余独立闪存阵列中;
在不能够识别新接入的固件存储器时,向用户返回操作失败的信息。
具体地,RAIF控制器判断自身是否能够识别新接入的固件存储器包括:
检查所新插入的固件存储器的规格信息是否符合预设值,当符合预设值时,则判定能够识别新接入的固件存储器,否则,判定不能够识别新接入的固件存储器。
步骤206:RAIF控制器将所拔除的固件存储器从冗余独立闪存阵列中移除。
通过步骤204至206步骤的实现,RAIF控制器支持固件存储器的热插拔实现,从而可以实现固件的快速更新。
本发明技术方案中,RAIF控制器将与其相连的N个固件存储器构建成冗余独立闪存阵列,并在写数据时,将数据同时写入到冗余独立闪存阵列中镜像分组内的两个固件存储器中,这样,在读取数据时,一旦发现从镜像分组内的一个固件存储器中所读取的数据错误时,就可以从该竞相分组中的另外一个固件存储器中读取数据,以实现数据的备份,保证数据的完整性和安全性。
另外,RAIF控制器在将数据到冗余独立闪存阵列时,将该数据对应的校验值也写入到冗余独立闪存阵列中,该校验值用于校验所读取的数据是否出错,根据该校验和可以更进一步地保证RAIF控制器在读取数据时的正确性。
再者,RAIF控制器还可以将数据进行分块后并行的写入到冗余独立闪存阵列的各镜像分组内的固件存储器中,这样,在RAIF读取数据时,便可以同时从多个镜像分组中同时读取数据的各个数据块,并将所读取的数据块组合还原为数据,以提升数据读取的速度。
实施例3
参见图7,一种冗余独立闪存阵列RAIF控制器,该RAIF控制器具体和方法实施例2中的RAIF控制器相同,包括:RAIF构建模块401、写数据模块402和读数据模块403;
其中,RAIF构建模块401,用于将与RAIF控制器相连的N个固件存储器进行分组,构成冗余独立闪存阵列,其中,冗余独立闪存阵列至少包含一个镜像分组,镜像分组内包括互为镜像的两个固件存储器,其中,N为大于等于2的整数;
写数据模块402,用于当接收到主设备发送的写命令时,将写命令携带的数据写入冗余独立闪存阵列中镜像分组内的两个固件存储器中;
读数据模块403,用于当RAIF控制器接收到主设备发送的读命令时,从冗余独立闪存阵列中镜像分组内的一个固件存储器中读取读命令所要求读取的数据,当所读取的数据出错时,从镜像分组内的另一个固件存储器中读取读命令所要求读取的数据。
具体地,写数据模块402包括:
数据分块单元,用于当N为大于等于2的偶数时,将写命令携带的数据分成M个数据块,其中,M为大于等于1的整数;
数据写入单元,用于分别将M个数据块作为当前待写入的数据块,执行如下操作:从冗余独立闪存阵列中选择一镜像分组,并将当前待写入的数据块同时写入所选择的镜像分组内的两个固件存储器;
存储单元,用于记录并保存数据与数据的数据块和存储数据的数据块镜像分组间对应关系。
或者,写数据模块402包括:
数据分块单元,用于当N为大于等于2的偶数时,将写命令携带的数据分成M个数据块,并分别计算M个数据块的校验值,其中,M为大于等于1的整数;
数据写入单元,用于分别将M个数据块作为当前待写入的数据块,执行如下操作:从冗余独立闪存阵列中选择一镜像分组,并将当前待写入的数据块和当前待写入的数据块的校验值同时写入所选择的镜像分组内的两个固件存储器;
存储单元,用于记录并保存数据与数据的数据块和存储数据的数据块镜像分组间对应关系。
或者,写数据模块402包括:
数据分块单元,用于当N为大于等于2的奇数时,将写命令携带的数据分成M个数据块,并分别计算M个数据块的校验值,其中,M为大于等于1的整数;
数据写入单元,用于分别将M个数据块作为当前待写入的数据块,执行如下操作:从冗余独立闪存阵列中选择一镜像分组,并将当前待写入的数据块同时写入所选择的镜像分组内的两个固件存储器,且将当前待写入的数据块的校验值写入未被分到镜像分组内的固件存储器;
存储单元,用于记录并保存数据与数据的数据块和存储数据的数据块镜像分组间对应关系。
读数据模块403包括:
查找单元,用于查找数据与数据的数据块和存储数据的数据块镜像分组间对应关系,得到各存储有读命令所要求读取数据的数据块的镜像分组;
数据读取单元,用于分别将所查找得到的各镜像分组作为当前待读取的镜像分组,执行如下操作:从当前待读取的镜像分组内的一个固件存储器中读取所要求读取数据的数据块,确定读取过程是否出现读取故障,当出现读取故障时,从当前待读取的镜像分组内的另一个固件存储器中读取所要求读取数据的数据块;
发送单元,用于将所读取的各所要求读取数据的数据块组合后得到所要求读取的数据,并将组合得到的所要求读取的数据返回给主设备。
或者,读数据模块403包括:
查找单元,用于查找数据与数据的数据块和存储数据的数据块镜像分组间对应关系,得到各存储有读命令所要求读取数据的数据块的镜像分组;
数据读取单元,用于分别将所查找得到的各镜像分组作为当前待读取的镜像分组,执行如下操作:从当前待读取的镜像分组内的一个固件存储器中读取所要求读取数据的数据块及数据块对应的校验值,并根据校验值验证数据块是否出错,当校验值出错时,从当前待读取的镜像分组内的另一个固件存储器中读取所要求读取数据的数据块;
发送单元,用于将所读取的各所要求读取数据的数据块组合后得到所要求读取的数据,并将组合得到的所要求读取的数据返回给主设备。
或者,读数据模块403包括:
查找单元,用于查找数据与数据的数据块和存储数据的数据块镜像分组间对应关系,得到各存储有读命令所要求读取数据的数据块的镜像分组;
数据读取单元,用于分别将所查找得到的各镜像分组作为当前待读取的镜像分组,执行如下操作:从当前待读取的镜像分组内的一个固件存储器中读取所要求读取数据的数据块,并从未被分到镜像分组内的固件存储器中读取数据块的校验值,根据校验值验证数据块是否出错,当校验值出错时,从当前待读取的镜像分组内的另一个固件存储器中读取所要求读取数据的数据块;
发送单元,用于将所读取的各所要求读取数据的数据块组合后得到所要求读取的数据,并将组合得到的所要求读取的数据返回给主设备。
参见图8,本发明实施例中,RAIF控制器还包括:
接收模块404,用于接收固件存储器硬件接口发送的中断请求;
固件存储器添加模块405,用于当中断请求指示有新的固件存储器接入RAIF控制器时,判断自身是否能够识别新接入的固件存储器,并在能够识别新接入的固件存储器时,将新接入的固件存储器加入冗余独立闪存阵列中;
固件存储器移除模块406,用于当中断请求指示有固件存储器从RAIF控制器中拔除时,RAIF控制器将所拔除的固件存储器从冗余独立闪存阵列中移除。
本发明技术方案中,RAIF控制器将与其相连的N个固件存储器构建成冗余独立闪存阵列,并在写数据时,将数据同时写入到冗余独立闪存阵列中镜像分组内的两个固件存储器中,这样,在读取数据时,一旦发现从镜像分组内的一个固件存储器中所读取的数据错误时,就可以从该竞相分组中的另外一个固件存储器中读取数据,以实现数据的备份,保证数据的完整性和安全性。
另外,RAIF控制器在将数据到冗余独立闪存阵列时,将该数据对应的校验值也写入到冗余独立闪存阵列中,该校验值用于校验所读取的数据是否出错,根据该校验和可以更进一步地保证RAIF控制器在读取数据时的正确性。
再者,RAIF控制器还可以将数据进行分块后并行的写入到冗余独立闪存阵列的各镜像分组内的固件存储器中,这样,在RAIF读取数据时,便可以同时从多个镜像分组中同时读取数据的各个数据块,并将所读取的数据块组合还原为数据,以提升数据读取的速度。
实施例4
参见图9,一种固件存储系统,该固件存储系统具体包括主设备501、RAIF(RedundantArray of Independent Flash Memories,冗余独立闪存阵列)控制器502及固件存储器601、固件存储602、……、固件存储器60N共N个固件存储器,该N个固件存储器分别通过RAIF控制器502与主设备501相连,其中,N为大于等于2的整数。
本发明实施例中,RAIF控制器502,用于将与自身相连的N个固件存储器进行分组,构成冗余独立闪存阵列,其中,冗余独立闪存阵列至少包含一个镜像分组,镜像分组内包括互为镜像的两个固件存储器;
主设备501,用于向RAIF控制器502发送写命令或者读命令;
RAIF控制器502,还用于当接收到主设备501发送的写命令时,将写命令携带的数据写入冗余独立闪存阵列中镜像分组内的两个固件存储器中。
RAIF控制器502,还用于当接收到主设备501发送的读命令时,从冗余独立闪存阵列中镜像分组内的一个固件存储器中读取读命令所要求读取的数据,当所读取的数据出错时,从镜像分组内的另一个固件存储器中读取读命令所要求读取的数据。
RAIF控制器502,还用于将读取的数据返回给主设备501。
其中,主设备501具体可以是CPU(Central Processor Unit,中央处理器单元)芯片、ICH(Input/Output Controller Hub,南桥)芯片或者单片机等需要对固件进行读写操作的芯片器件。
RAIF控制器502具体可以是FPGA(Field-Programmable Gate Array,现场可编程门阵列)控制器,RAID(Redundant Array of Independent Disks,冗余独立磁盘阵列)控制器、CPLD(Complex Programmable Logic Device,复杂可编程逻辑器件)控制器或者ASIC(Application Specific Integrated Circuit,特定应用集成电路)控制器等芯片器件,其具体结构和实施例3中所述的RAIF控制器相同,此处就不在赘述。
固件存储器具体可以是SD(Secure Digital Card,安全数字卡)卡、CF(Compact Flash,紧凑型闪存)卡、MS(Memory Stick,记忆棒)卡、XD(XD-PICTURE CARD)卡、TF(Trans FLash)卡、U盘或者NOR Flash芯片等固件存储器。
本发明技术方案中,RAIF控制器将与其相连的N个固件存储器构建成冗余独立闪存阵列,并在写数据时,将数据同时写入到冗余独立闪存阵列中镜像分组内的两个固件存储器中,这样,在读取数据时,一旦发现从镜像分组内的一个固件存储器中所读取的数据错误时,就可以从该竞相分组中的另外一个固件存储器中读取数据,以实现数据的备份,保证数据的完整性和安全性。
另外,RAIF控制器在将数据到冗余独立闪存阵列时,将该数据对应的校验值也写入到冗余独立闪存阵列中,该校验值用于校验所读取的数据是否出错,根据该校验和可以更进一步地保证RAIF控制器在读取数据时的正确性。
再者,RAIF控制器还可以将数据进行分块后并行的写入到冗余独立闪存阵列的各镜像分组内的固件存储器中,这样,在RAIF读取数据时,便可以同时从多个镜像分组中同时读取数据的各个数据块,并将所读取的数据块组合还原为数据,以提升数据读取的速度。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (17)

1.一种固件存储系统中数据保护的方法,其特征在于,所述方法包括: 
冗余独立闪存阵列RAIF控制器将与自身相连的N个固件存储器进行分组,构成冗余独立闪存阵列,所述冗余独立闪存阵列至少包含一个镜像分组,所述镜像分组内包括互为镜像的两个固件存储器,其中,N为大于等于2的整数,所述固件存储器是在电子设备内保存固件的非易失性存储器; 
当所述RAIF控制器接收到主设备发送的写命令时,通过固件存储器硬件接口将所述写命令携带的数据写入所述冗余独立闪存阵列中镜像分组内的两个固件存储器中; 
当所述RAIF控制器接收到主设备发送的读命令时,通过固件存储器硬件接口从所述冗余独立闪存阵列中镜像分组内的一个固件存储器中读取所述读命令所要求读取的数据,当所读取的数据出错时,通过固件存储器硬件接口从所述镜像分组内的另一个固件存储器中读取所述读命令所要求读取的数据。 
2.根据权利要求1所述的方法,其特征在于,当N为大于等于2的偶数时,所述通过固件存储器硬件接口将所述写命令携带的数据写入到所述冗余独立闪存阵列中镜像分组内的两个固件存储器中包括: 
将所述写命令携带的数据分成M个数据块,其中,M为大于等于1的整数; 
分别将所述M个数据块作为当前待写入的数据块,执行如下操作:从所述冗余独立闪存阵列中选择一镜像分组,并通过固件存储器硬件接口将所述当前待写入的数据块同时写入所选择的镜像分组内的两个固件存储器; 
记录并保存数据与所述数据的数据块和存储所述数据的数据块镜像分组间对应关系。 
3.根据权利要求1所述的方法,其特征在于,当N为大于等于2的偶数时,所述通过固件存储器硬件接口将所述写命令携带的数据写入到所述冗余独立闪存阵列中镜像分组内的两个固件存储器中包括: 
将所述写命令携带的数据分成M个数据块,并分别计算所述M个数据块的校验值,其中,M为大于等于1的整数; 
分别将所述M个数据块作为当前待写入的数据块,执行如下操作:从所述冗余独立闪存阵列中选择一镜像分组,并通过固件存储器硬件接口将所述当前待写入的数据块和所述当前 待写入的数据块的校验值同时写入所选择的镜像分组内的两个固件存储器; 
记录并保存数据与所述数据的数据块和存储所述数据的数据块镜像分组间对应关系。 
4.根据权利要求1所述的方法,其特征在于,当N为大于等于2的奇数时,所述通过固件存储器硬件接口将所述写命令携带的数据写入到所述冗余独立闪存阵列中镜像分组内的两个固件存储器中包括: 
将所述写命令携带的数据分成M个数据块,并分别计算所述M个数据块的校验值,其中,M为大于等于1的整数; 
分别将所述M个数据块作为当前待写入的数据块,执行如下操作:从所述冗余独立闪存阵列中选择一镜像分组,并通过固件存储器硬件接口将所述当前待写入的数据块同时写入所选择的镜像分组内的两个固件存储器,且通过固件存储器硬件接口将所述当前待写入的数据块的校验值写入未被分到镜像分组内的固件存储器; 
记录并保存数据与所述数据的数据块和存储所述数据的数据块镜像分组间对应关系。 
5.根据权利要求2所述的方法,其特征在于,所述通过固件存储器硬件接口从所述冗余独立闪存阵列中镜像分组内的一个固件存储器中读取所述读命令所要求读取的数据,且当所读取的数据出错时,通过固件存储器硬件接口从所述镜像分组内的另一个固件存储器中读取所述读命令所要求读取的数据包括: 
查找所述数据与所述数据的数据块和存储所述数据的数据块镜像分组间对应关系,得到各存储有所述读命令所要求读取数据的数据块的镜像分组; 
分别将所查找得到的各镜像分组作为当前待读取的镜像分组,执行如下操作:通过固件存储器硬件接口从当前待读取的镜像分组内的一个固件存储器中读取所要求读取数据的数据块,确定读取过程是否出现读取故障,当出现读取故障时,通过固件存储器硬件接口从所述当前待读取的镜像分组内的另一个固件存储器中读取所要求读取数据的数据块; 
将所读取的各所要求读取数据的数据块组合后得到所要求读取的数据,并将组合得到的所要求读取的数据返回给所述主设备。 
6.根据权利要求3所述的方法,其特征在于,所述通过固件存储器硬件接口从所述冗余独立闪存阵列中镜像分组内的一个固件存储器中读取所述读命令所要求读取的数据,且当所读取的数据出错时,通过固件存储器硬件接口从所述镜像分组内的另一个固件存储器中读取 所述读命令所要求读取的数据包括: 
查找所述数据与所述数据的数据块和存储所述数据的数据块镜像分组间对应关系,得到各存储有所述读命令所要求读取数据的数据块的镜像分组; 
分别将所查找得到的各镜像分组作为当前待读取的镜像分组,执行如下操作:通过固件存储器硬件接口从当前待读取的镜像分组内的一个固件存储器中读取所要求读取数据的数据块及所述数据块对应的校验值,并根据所述校验值验证所述数据块是否出错,当所述校验值出错时,通过固件存储器硬件接口从所述当前待读取的镜像分组内的另一个固件存储器中读取所要求读取数据的数据块; 
将所读取的各所要求读取数据的数据块组合后得到所要求读取的数据,并将组合得到的所要求读取的数据返回给所述主设备。 
7.根据权利要求4所述的方法,其特征在于,所述通过固件存储器硬件接口从所述冗余独立闪存阵列中镜像分组内的一个固件存储器中读取所述读命令所要求读取的数据,且当所读取的数据出错时,通过固件存储器硬件接口从所述镜像分组内的另一个固件存储器中读取所述读命令所要求读取的数据包括: 
查找所述数据与所述数据的数据块和存储所述数据的数据块镜像分组间对应关系,得到各存储有所述读命令所要求读取数据的数据块的镜像分组; 
分别将所查找得到的各镜像分组作为当前待读取的镜像分组,执行如下操作:通过固件存储器硬件接口从当前待读取的镜像分组内的一个固件存储器中读取所要求读取数据的数据块,并通过固件存储器硬件接口从所述未被分到镜像分组内的固件存储器中读取所述数据块的校验值,根据所述校验值验证所述数据块是否出错,当所述校验值出错时,通过固件存储器硬件接口从所述当前待读取的镜像分组内的另一个固件存储器中读取所要求读取数据的数据块; 
将所读取的各所要求读取数据的数据块组合后得到所要求读取的数据,并将组合得到的所要求读取的数据返回给所述主设备。 
8.根据权利要求1所述的方法,其特征在于,所述方法还包括: 
所述RAIF控制器接收固件存储器硬件接口发送的中断请求; 
当所述中断请求指示有新的固件存储器接入所述RAIF控制器时,所述RAIF控制器判断自身是否能够识别新接入的固件存储器,并在能够识别所述新接入的固件存储器时,将所述 新接入的固件存储器加入所述冗余独立闪存阵列中; 
当所述中断请求指示有固件存储器从RAIF控制器中拔除时,所述RAIF控制器将所拔除的固件存储器从所述冗余独立闪存阵列中移除。 
9.一种冗余独立闪存阵列RAIF控制器,其特征在于,所述RAIF控制器包括:RAIF构建模块、写数据模块和读数据模块; 
所述RAIF构建模块,用于将与所述RAIF控制器相连的N个固件存储器进行分组,构成冗余独立闪存阵列,所述冗余独立闪存阵列至少包含一个镜像分组,所述镜像分组内包括互为镜像的两个固件存储器,其中,N为大于等于2的整数,所述固件存储器是在电子设备内保存固件的非易失性存储器; 
所述写数据模块,用于当接收到主设备发送的写命令时,通过固件存储器硬件接口将所述写命令携带的数据写入所述冗余独立闪存阵列中镜像分组内的两个固件存储器中; 
所述读数据模块,用于当所述RAIF控制器接收到主设备发送的读命令时,通过固件存储器硬件接口从所述冗余独立闪存阵列中镜像分组内的一个固件存储器中读取所述读命令所要求读取的数据,当所读取的数据出错时,通过固件存储器硬件接口从所述镜像分组内的另一个固件存储器中读取所述读命令所要求读取的数据。 
10.根据权利要求9所述的RAIF控制器,其特征在于,所述写数据模块包括: 
数据分块单元,用于当N为大于等于2的偶数时,将所述写命令携带的数据分成M个数据块,其中,M为大于等于1的整数; 
数据写入单元,用于分别将所述M个数据块作为当前待写入的数据块,执行如下操作:从所述冗余独立闪存阵列中选择一镜像分组,并通过固件存储器硬件接口将所述当前待写入的数据块同时写入所选择的镜像分组内的两个固件存储器; 
存储单元,用于记录并保存数据与所述数据的数据块和存储所述数据的数据块镜像分组间对应关系。 
11.根据权利要求9所述的RAIF控制器,其特征在于,所述写数据模块包括: 
数据分块单元,用于当N为大于等于2的偶数时,将所述写命令携带的数据分成M个数据块,并分别计算所述M个数据块的校验值,其中,M为大于等于1的整数; 
数据写入单元,用于分别将所述M个数据块作为当前待写入的数据块,执行如下操作: 从所述冗余独立闪存阵列中选择一镜像分组,并通过固件存储器硬件接口将所述当前待写入的数据块和所述当前待写入的数据块的校验值同时写入所选择的镜像分组内的两个固件存储器; 
存储单元,用于记录并保存数据与所述数据的数据块和存储所述数据的数据块镜像分组间对应关系。 
12.根据权利要求9所述的RAIF控制器,其特征在于,所述写数据模块包括: 
数据分块单元,用于当N为大于等于2的奇数时,将所述写命令携带的数据分成M个数据块,并分别计算所述M个数据块的校验值,其中,M为大于等于1的整数; 
数据写入单元,用于分别将所述M个数据块作为当前待写入的数据块,执行如下操作:从所述冗余独立闪存阵列中选择一镜像分组,并通过固件存储器硬件接口将所述当前待写入的数据块同时写入所选择的镜像分组内的两个固件存储器,且通过固件存储器硬件接口将所述当前待写入的数据块的校验值写入未被分到镜像分组内的固件存储器; 
存储单元,用于记录并保存数据与所述数据的数据块和存储所述数据的数据块镜像分组间对应关系。 
13.根据权利要求10所述的RAIF控制器,其特征在于,所述读数据模块包括: 
查找单元,用于查找所述数据与所述数据的数据块和存储所述数据的数据块镜像分组间对应关系,得到各存储有所述读命令所要求读取数据的数据块的镜像分组; 
数据读取单元,用于分别将所查找得到的各镜像分组作为当前待读取的镜像分组,执行如下操作:通过固件存储器硬件接口从当前待读取的镜像分组内的一个固件存储器中读取所要求读取数据的数据块,确定读取过程是否出现读取故障,当出现读取故障时,通过固件存储器硬件接口从所述当前待读取的镜像分组内的另一个固件存储器中读取所要求读取数据的数据块; 
发送单元,用于将所读取的各所要求读取数据的数据块组合后得到所要求读取的数据,并将组合得到的所要求读取的数据返回给所述主设备。 
14.根据权利要求11所述的RAIF控制器,其特征在于,所述读数据模块包括: 
查找单元,用于查找所述数据与所述数据的数据块和存储所述数据的数据块镜像分组间对应关系,得到各存储有所述读命令所要求读取数据的数据块的镜像分组; 
数据读取单元,用于分别将所查找得到的各镜像分组作为当前待读取的镜像分组,执行如下操作:通过固件存储器硬件接口从当前待读取的镜像分组内的一个固件存储器中读取所要求读取数据的数据块及所述数据块对应的校验值,并根据所述校验值验证所述数据块是否出错,当所述校验值出错时,通过固件存储器硬件接口从所述当前待读取的镜像分组内的另一个固件存储器中读取所要求读取数据的数据块; 
发送单元,用于将所读取的各所要求读取数据的数据块组合后得到所要求读取的数据,并将组合得到的所要求读取的数据返回给所述主设备。 
15.根据权利要求12所述的RAIF控制器,其特征在于,所述读数据模块包括: 
查找单元,用于查找所述数据与所述数据的数据块和存储所述数据的数据块镜像分组间对应关系,得到各存储有所述读命令所要求读取数据的数据块的镜像分组; 
数据读取单元,用于分别将所查找得到的各镜像分组作为当前待读取的镜像分组,执行如下操作:通过固件存储器硬件接口从当前待读取的镜像分组内的一个固件存储器中读取所要求读取数据的数据块,并通过固件存储器硬件接口从未被分到镜像分组内的固件存储器中读取所述数据块的校验值,根据所述校验值验证所述数据块是否出错,当所述校验值出错时,通过固件存储器硬件接口从所述当前待读取的镜像分组内的另一个固件存储器中读取所要求读取数据的数据块; 
发送单元,用于将所读取的各所要求读取数据的数据块组合后得到所要求读取的数据,并将组合得到的所要求读取的数据返回给所述主设备。 
16.根据权利要求9所述的RAIF控制器,其特征在于,所述RAIF控制器还包括: 
接收模块,用于接收固件存储器硬件接口发送的中断请求; 
固件存储器添加模块,用于当所述中断请求指示有新的固件存储器接入所述RAIF控制器时,判断自身是否能够识别新接入的固件存储器,并在能够识别所述新接入的固件存储器时,将所述新接入的固件存储器加入所述冗余独立闪存阵列中; 
固件存储器移除模块,用于当所述中断请求指示有固件存储器从RAIF控制器中拔除时,所述RAIF控制器将所拔除的固件存储器从所述冗余独立闪存阵列中移除。 
17.一种固件存储系统,其特征在于,所述系统包括:主设备、冗余独立闪存阵列RAIF控制器及N个固件存储器,所述N个固件存储器分别通过所述RAIF控制器与所述主设备相连, 其中,N为大于等于2的整数,所述固件存储器是在电子设备内保存固件的非易失性存储器; 
所述RAIF控制器,用于将与自身相连的N个固件存储器进行分组,构成冗余独立闪存阵列,所述冗余独立闪存阵列至少包含一个镜像分组,所述镜像分组内包括互为镜像的两个固件存储器; 
所述主设备,用于向所述RAIF控制器发送写命令或者读命令; 
所述RAIF控制器,还用于当接收到主设备发送的写命令时,通过固件存储器硬件接口将所述写命令携带的数据写入所述冗余独立闪存阵列中镜像分组内的两个固件存储器中;
所述RAIF控制器,还用于当接收到主设备发送的读命令时,通过固件存储器硬件接口从所述冗余独立闪存阵列中镜像分组内的一个固件存储器中读取所述读命令所要求读取的数据,当所读取的数据出错时,通过固件存储器硬件接口从所述镜像分组内的另一个固件存储器中读取所述读命令所要求读取的数据;
所述RAIF控制器,还用于将读取的数据返回给所述主设备。 
CN201110414981.0A 2011-12-13 2011-12-13 固件存储系统中数据保护的方法、设备及系统 Active CN102541469B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201110414981.0A CN102541469B (zh) 2011-12-13 2011-12-13 固件存储系统中数据保护的方法、设备及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201110414981.0A CN102541469B (zh) 2011-12-13 2011-12-13 固件存储系统中数据保护的方法、设备及系统

Publications (2)

Publication Number Publication Date
CN102541469A CN102541469A (zh) 2012-07-04
CN102541469B true CN102541469B (zh) 2015-01-21

Family

ID=46348455

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201110414981.0A Active CN102541469B (zh) 2011-12-13 2011-12-13 固件存储系统中数据保护的方法、设备及系统

Country Status (1)

Country Link
CN (1) CN102541469B (zh)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103761549A (zh) * 2014-01-13 2014-04-30 刘鹏 一种高可靠性rfid标签识别方法
CN103870215B (zh) * 2014-04-12 2015-01-14 天津瑞发科半导体技术有限公司 Usb固态盘固件存储装置
CN107193679A (zh) * 2017-05-16 2017-09-22 郑州云海信息技术有限公司 一种容灾方法及系统
CN107203441A (zh) * 2017-08-01 2017-09-26 常州昊云工控科技有限公司 双备份数据存储装置及其工作方法、机器人
US10877673B2 (en) * 2017-12-15 2020-12-29 Microchip Technology Incorporated Transparently attached flash memory security
CN108897643A (zh) * 2018-06-22 2018-11-27 郑州云海信息技术有限公司 一种存储设备的控制方法和存储系统
CN109766212A (zh) * 2018-12-26 2019-05-17 贵州航天凯山石油仪器有限公司 一种存储媒介中的数据保护方法及系统
CN111221681A (zh) * 2019-11-07 2020-06-02 华为技术有限公司 一种存储器的修复方法及装置
CN112347007B (zh) * 2020-10-14 2022-12-09 歌尔科技有限公司 闪存数据保护方法、装置、电子设备及存储介质
CN113703683B (zh) * 2021-08-28 2022-05-13 江苏华存电子科技有限公司 一种单一的优化冗余存储系统的装置
CN114006898A (zh) * 2021-10-30 2022-02-01 杭州迪普信息技术有限公司 版本更换方法、装置及系统

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101388238A (zh) * 2007-09-10 2009-03-18 群联电子股份有限公司 快闪存储芯片与快闪阵列存储系统
CN101436151A (zh) * 2008-12-01 2009-05-20 成都索贝数码科技股份有限公司 基于文件系统的数据实时备份方法及其系统

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101388238A (zh) * 2007-09-10 2009-03-18 群联电子股份有限公司 快闪存储芯片与快闪阵列存储系统
CN101436151A (zh) * 2008-12-01 2009-05-20 成都索贝数码科技股份有限公司 基于文件系统的数据实时备份方法及其系统

Also Published As

Publication number Publication date
CN102541469A (zh) 2012-07-04

Similar Documents

Publication Publication Date Title
CN102541469B (zh) 固件存储系统中数据保护的方法、设备及系统
EP2811392B1 (en) Method and device for reducing read delay
CN106463179B (zh) 利用存储器控制器处理数据错误事件的方法、装置和系统
US9052843B2 (en) Card and host device
US8954705B2 (en) Memory space management method and memory controller and memory storage device and memory storage using the same
KR20120064462A (ko) 메모리 컨트롤러, 이의 오류정정 방법, 및 이를 포함하는 메모리 시스템
US8566689B2 (en) Data integrity units in nonvolatile memory
CN115756984A (zh) 内存测试方法、装置、设备及存储介质
US7921265B2 (en) Data access method, channel adapter, and data access control device
KR20180110482A (ko) 메모리 테스트 시스템 및 방법
JP4544901B2 (ja) 記憶制御システム及びブート制御システム
US11720276B2 (en) Memory system and controller for managing write status
CN109800110A (zh) 数据备份方法、系统及电子设备、存储介质和备份装置
CN105354107A (zh) NOR Flash的数据传输方法及系统
WO2018171145A1 (zh) 数据处理方法、系统和pos终端
US11269703B2 (en) Information processing system and storage device control method to determine whether data has been correctly written into a storage device
KR101660180B1 (ko) Ic 카드, 휴대 가능 전자 장치 및 ic 카드 처리 장치
US9639417B2 (en) Storage control apparatus and control method
US9373405B2 (en) Auto resume of irregular erase stoppage of a memory sector
CN115543876B (zh) 用于验证地址译码功能的方法及装置、电子设备、介质
EP4293494A1 (en) Systems and methods for a redundant array of independent disks (raid) using a decoder in cache coherent interconnect storage devices
CN113791936A (zh) 数据备份方法、装置及存储介质
CN114217737A (zh) 一种数据存储处理方法、数据存储处理电路及电子设备
CN115686345A (zh) 数据处理方法和装置
JP2013127682A (ja) セキュリティトークン、セキュリティトークンにおける命令の実行方法及びコンピュータプログラム

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant