发明内容
为了克服现有的数据存储装置的不足, 本发明的目的是提供一种新的数据保密存储装置和数据存储方法,在实现数据保密存储的同时,可以更好地利用起存储部件的存储容量。
本发明提供了一种数据保密存储装置,数据存储装置包括接口部件、存储控制部件、数据线路、外围电路、外壳等,数据线路包括连接各个零部件的多路数据线。数据存储装置还包括N个存储部件,其中至少一个存储部件是可拆卸地安装于数据存储装置的。每个存储部件包括至少两个存储比特域;其中,任意一个存储部件中的任意一个存储比特域与其它存储部件中的互补存储比特域构成逻辑存储区域,从而在数据存储装置中形成至少两个逻辑存储区域。其中,N是大于等于2的自然数。当N等于2时,上述存储装置的每个存储部件包括两个存储比特域,其中第一存储部件的第一存储比特域与第二存储部件的第二存储比特域构成存储装置的第一逻辑存储区域;第一存储部件的第二存储比特域与第二存储部件的第一存储比特域构成存储装置的第二逻辑存储区域。当N是大于等于3的自然数时,L是小于或等于N的自然数;M是1到N的自然数。上述存储装置的第L个逻辑存储区域包括第M个存储部件中的第((M+L-2) mod N)+1个存储比特域。任意一个存储部件中的任意一个存储比特域都属于一个逻辑存储区域。存储部件包括以磁、光、半导体等原理存储数据信息的软盘、硬盘、光碟、半导体存储器、Flash存储芯片等以及这些设备和部件的必要外围设备和组件。
上述数据存储装置还包括至少两个开关装置。开关装置包括多路双向开关部件,每个开关装置连接到一个存储比特域,开关装置控制一个存储比特域数据线路的导通与断开。开关装置布置在存储控制部件与存储部件之间的数据线路上。
上述数据存储装置的存储控制部件,包括多个I/O端口, 每一个I/O端口通过数据线路连接到至少两个存储部件中的互补存储比特域。每个I/O端口连接到1个以上的存储比特域,连接于同一个I/O端口的1个以上的存储比特域互为互补存储比特域,这些互为互补存储比特域的多个存储比特域分布于多个不同的存储部件中,这里的多个指1个以上的数量。每一个存储比特域只连接某一个I/O端口的全部数据线中的部分数据线,这里的部分指数量上至少比全部少1个。I/O端口用于传递需要存储的数据,存储操作命令和地址信息。
上述数据存储装置,当存储部件为FLASH存储部件时,数据存储装置还包括至少一个缓存区域或者缓存部件,用于临时存储需要存储的数据。缓存区域或缓存部件可以布置在数据存储装置的存储控制部件中,也可以是独立的缓存部件。
上述存储部件为FLASH存储部件的数据存储装置还包括至少两个开关装置。开关装置包括多路双向开关部件,每个开关装置连接到一个存储比特域,开关装置控制一个存储比特域数据线路的导通与断开。开关装置布置在存储控制部件与存储部件之间的数据线路上。
上述存储部件为FLASH存储部件的数据存储装置的存储控制部件,包括多个I/O端口, 每一个I/O端口通过数据线路连接到至少两个存储部件中的互补存储比特域。I/O端口用于传递需要存储的数据,存储操作命令和地址信息。FLASH存储部件包括FLASH存储芯片。
用于对存储部件为FLASH存储部件的存储装置,即FLASH存储装置,执行块删除处理的方法,上述FLASH存储装置包括N个存储部件,N是大于或等于2的自然数;以及至少一个缓存部件,用于临时存储需要存储的数据,其中:至少一个存储部件是可拆卸的,所述每个存储部件包括至少两个存储比特域;任意一个存储部件中的任意一个存储比特域与其它存储部件中的互补存储比特域构成逻辑存储区域,从而在所述存储装置中形成至少两个逻辑存储区域;所述方法包括步骤:
a)把目标块中不需要删除数据的存储比特域中的数据备份到缓存部件;
b)执行目标块的块擦除操作;
c)把备份到缓存部件中的数据重新写入到原存储比特域。
用于对存储部件为FLASH存储部件的存储装置执行块写入处理的方法,上述FLASH存储装置包括:N个存储部件,N是大于或等于2的自然数;以及至少一个缓存部件,用于临时存储需要存储的数据,其中:至少一个存储部件是可拆卸的,所述每个存储部件包括至少两个存储比特域;任意一个存储部件中的任意一个存储比特域与其它存储部件中的互补存储比特域构成逻辑存储区域,从而在所述存储装置中形成至少两个逻辑存储区域;所述方法包括步骤:
a’)把待写入数据的目标存储比特域所在的块中除所述目标存储比特域外的存储比特域中的数据备份到缓存部件;
b’)对所述目标存储比特域所在的块执行块擦除操作;
c’)把备份到所述缓存部件中的数据重新写入到原存储比特域;
d’)把需要存储的数据写入所述目标存储比特域;
其中c’)和d’)的次序是能够交换的。
本发明提供了一种存储装置,包括:N个存储部件,每个存储部件包括小于或等于N的数目个存储比特域;不同的存储部件中的存储比特域构成小于或等于N的数目个逻辑存储区域;其中,第L个逻辑存储区域包括第M个存储部件中的第((M+L-2) mod N)+1个存储比特域。其中,N是大于等于2的自然数;L是小于或等于N的自然数;M是1到N的自然数。特别的,当N等于2时,即存储装置包括两个存储部件,第一存储部件和第二存储部件,并且每个存储部件包括两个存储比特域,第一存储比特域和第二存储比特域时,第一存储部件的第一存储比特域与第二存储部件的第二存储比特域构成存储装置的第一逻辑存储区域;第一存储部件的第二存储比特域与第二存储部件的第一存储比特域构成存储装置的第二逻辑存储区域。所述存储装置的第一和第二逻辑存储区域可以按照普通存储装置的逻辑操作方法进行读、写和删除等操作。
当存储装置包括N个存储部件时,每个存储部件包括小于或等于N的数目的存储比特域;不同的存储部件中的存储比特域构成小于或等于N的数目个逻辑存储区域;其中,任意一个存储部件中的任意一个存储比特域与其它存储部件中的互补存储比特域构成的一个逻辑存储区域;任意一个存储部件中的任意一个存储比特域属于一个逻辑存储区域。其中N是大于2的自然数。
上述数据存储装置中还包括两个或者两个以上开关装置,每个开关装置连接于每一存储比特域,控制部件能够控制存储比特域数据线路的导通与断开。开关装置包括多路双向开关,能够双向导通或者断开数据线路。开关装置根据存储控制部件的控制指令导通或者断开。
上述数据存储装置的存储控制部件包括多个I/O端口,每一个I/O端口至少连接于2个存储部件,每一个I/O端口通过数据线路分别与多个存储部件中的多个存储比特域连接,I/O端口的每一位分别连接于不同存储比特域的对应比特位,同一个I/O端口的所有位不能连接于同一存储部件,同一个存储部件的不同存储比特域连接于不同的I/O端口。
当存储部件是Flash存储芯片时,数据存储装置包括:两个或者两个以上的FLASH存储芯片,每个FLASH存储芯片包括两个或者两个以上存储比特域;两个或者两个以上开关装置,每个开关装置布置于每一个FLASH存储部件中的存储比特域的数据线路上,开关装置能够控制与存储部件的存储比特域连接的数据线路的导通与断开;还包括至少一个缓存设备,用于临时备份需要存储的数据。
当存储装置包括两个以上存储部件时,每个存储部件被划分成多个存储比特域。 从不同存储部件选取比特域以构成逻辑存储区域,使每个逻辑存储区域中的字节都包含完整的8位比特,即每个字节都是完整的逻辑字节。当存储部件的每一个地址对应的存储单元包含2个或者2个以上字节时,每个逻辑存储区域中的存储单元也包含与存储部件的每一个地址对应的存储单元相同数目的字节数。
本发明还提供了一种存储部件由FLASH存储芯片构成的存储装置的数据删除方法。FLASH存储芯片中的数据是按照块或页来删除的。为了叙述方便,这里对块或页不做区分,都是指FLASH芯片中的用于数据存储的由多个字节构成的存储单位。从本发明的数据存储装置中删除数据时,首先把FLASH存储芯片中要删除的数据所在的目标块所在的逻辑存储区域的位于同一块中的相邻逻辑存储区域中的数据备份到暂存区域,然后执行目标块的块擦除操作,目标块中的所有逻辑存储区域的所有数据都被擦除,最后把暂存区域中备份的数据写回到其原来的存储位置,这样就完成了本发明的数据存储装置的一个数据块的数据删除操作。不同的FLASH存储芯片可以同时进行上述删除处理。当要删除的数据文件的存储范围包括多个块时,只要依次执行删除每一个块中的数据的操作来删除每一个块中的数据即可完成数据文件的删除操作。
本发明还提供了一种存储部件由FLASH存储芯片构成的存储装置的数据存储方法。FLASH存储芯片中的数据是按照块或页来组织存储的。向本发明的数据存储装置中存储数据时,第一步把FLASH存储芯片中要存储的数据所在的目标块所在的逻辑存储区域的位于同一块中的相邻逻辑存储区域中的数据存储到暂存区域,第二步执行要存储数据的目标块的块擦除操作,把要存储数据的目标块中的所有逻辑存储区域的所有数据都被擦除,第三步把暂存区域中存储的备份数据写回到其原来的存储位置,第四步把要存储是数据写入目标块。其中第三步和第四步的操作的顺序可以调换。当要存储的数据文件需要的存储空间多于一个块时,按照前述步骤把数据依次写入目标块即可,直到完成整个数据文件的存储。如果暂存区域的空间比较大,可以一次执行多个块的数据的暂存、多个块的擦除和多个块的写入操作。不同的FLASH存储芯片的同一个逻辑存储区域可以同时进行删除或存储操作。
附图说明
下面结合附图和实施例对本发明进一步说明。在附图中,相同或相似的标号代表相同或相似的部件。
图1是本发明的数据存储装置的两个存储部件的存储比特域划分图;
图2是图1中的数据存储装置的逻辑存储区域构成图;
图3是本发明的包括4个存储部件的数据存储装置的存储比特域划分图;
图4是图3中的数据存储装置的逻辑存储区域构成图;
图5是根据本发明一个实施例的数据存储装置的原理图;
图6是根据本发明另一个实施例的数据存储装置的原理图;
图7是根据本发明又一个实施例的数据存储装置的原理图;
图8是根据本发明一个实施例的采用FLASH存储部件的数据存储装置的原理图;
图9是本发明的采用FLASH存储部件的数据存储装置的块删除操作流程图;
图10是本发明的采用FLASH存储部件的数据存储装置的块存储操作流程图。
具体实施方式
图1中,第一存储部件1中的存储单元包括地址范围从00H到FFH的多个有8位比特的字节。第二存储部件2中的存储区域包括地址范围从00H到FFH的多个有8位比特的字节。存储比特域是指存储部件中由每个字节的一个或者多个比特位所构成的存储区域,通常,不同字节中的构成同一个存储比特域的比特位在字节中是处于相同位置的,即每一个字节中的比特位的划分是相同的。例如,存储部件中所有的存储字节的第1位比特位构成了一个存储比特域;存储部件中每一个存储字节的第4~7位比特位构成一个存储比特域;存储部件中所有字节的1、3、5、7位比特位构成一个存储比特域。对于一个寻址地址对应的存储区域包括2个或者多个字节的存储部件,即一个最小寻址地址对应的存储单元包括2个、4个、8个或者更多字节的存储部件,存储比特域可以包括同一个地址对应的多个不同字节中的多个比特位,即由每一个地址对应的位于不同字节中的多个比特位构成一个存储比特域。存储部件1中的每一个字节的4到7位比特位构成了存储部件1中的第一存储比特域13,即存储部件1中第一存储比特域13包括了存储部件1中每一个字节的4到7位比特位;存储部件1中的每一个字节的0到3位比特构成了存储部件1中的第二存储比特域15,即第二存储比特域15包括了存储部件1中每一个字节的0到3位。 存储部件中的每一个字节的相同位置的比特位对应数据总线中的同一条线路。存储部件1中的第一存储比特域13中的每一个字节的4到7位与数据总线中的4到7位线路连接。类似的,存储部件2中的每一个字节的4到7位比特构成了存储部件2中的第一存储比特域23,即存储部件2中第一存储比特域23包括了存储部件2中每一个字节的4到7位;存储部件2中的每一个字节的0到3位比特构成了存储部件2中的第二存储比特域25,即第二存储比特域25包括了存储部件2中每一个字节的0到3位。在访问存储部件1中的某一个存储单元时,例如某一个字节,需要给出该存储单元的逻辑地址,例如00H,然后把逻辑地址转换成为物理地址。在图1中,逻辑地址即物理地址。在有些存储部件中,存储操作需要访问的逻辑地址需要经过变换才能得到对应的存储部件物理地址,此变换方法为公知技术。根据逻辑地址变换得到的存储部件物理地址后,就可以对该物理地址对应的存储单元的一个或者多个字节,例如00H字节,进行读、写和删除等操作,此时,该存储单元的每一个字节的0到7位比特位都可以被访问并操作。
存储部件1中的第一存储比特域13与存储部件2中的第二存储比特域25互为互补存储比特域,简称互补比特域;存储部件1中的第二存储比特域15与存储部件2中的第一存储比特域23互为互补比特域。互补存储比特域是位于不同存储部件中的能够构成完整字节的不同存储比特域,多个互为互补存储比特域的存储比特域构成了一个完整的逻辑存储区域。逻辑存储区域是与某一地址范围对应的计算机或主控设备可操作的存储区域。数据文件被存储在逻辑存储区域中,逻辑存储区域中存储的是完整的数据字节,这些数据字节中的比特位属于至少2个存储部件中的至少2个存储比特域。逻辑存储区域可以依据其对应的地址被主控设备访问。其中地址可以是逻辑地址也可以是物理地址。逻辑存储区域可以包括文件系统的多个逻辑分区;文件系统的一个逻辑分区也可以包括多个逻辑存储区域。互补存储比特域构成的逻辑存储区域中的每一个字节都是完整的字节,这些字节的比特位分布于不同存储部件的不同存储比特域中。即,互补存储比特域是构成同一逻辑存储区域的、位于不同存储部件中的多个存储比特域。位于同一个存储部件中的不同存储比特域虽然在物理上构成了一个完整的字节,但是在本发明的存储装置中,这些位于同一个存储部件中的不同存储比特域存储的数据并不属于同一个逻辑数据字节,因此位于同一个存储部件中的不同存储比特域不构成互补存储比特域。
构成存储比特域的可以是每一个字节中任意的比特位。构成存储比特域的每一个字节中比特位的数目也可以是任意的,例如,存储比特域由每个字节的1、4、5位三位比特位构成,此时这个存储比特域的互补存储比特域由另一个存储部件中的每个字节的0、2、3、6、7位比特位构成。每一个地址对应的存储单元包括多个字节时,存储比特域可以由不同字节中的任意数目个比特位构成。
图2中,数据存储装置的存储区域由第一存储部件的存储区域和第二存储部件的存储区域构成。数据存储装置3的逻辑存储区域的000H到0FFH地址段的第一逻辑存储区域由存储部件1的存储比特域13和存储部件2的存储比特域25构成。存储比特域13包括了存储装置3的000H到0FFH地址段的每个字节的4到7位,存储比特域25包括了000H到0FFH地址段的每个字节的0到3位。访问000H到0FFH地址段,即第一逻辑存储区域中的任意存储单元时,例如000H字节,需要同时访问存储比特域13中00H字节的4到7位和存储比特域25中00H字节的0到3位。访问操作包括寻址、读、写和删除等操作。存储装置3的第二逻辑存储区域,即100H到1FFH地址段的存储区域,由第一存储部件的存储比特域15和第二存储部件的存储比特域23构成。存储比特域23包括了100H到1FFH地址段的每个字节的4到7位,存储比特域15包括了100H到1FFH地址段的每个字节的0到3位。访问100H到1FFH地址段,即第二逻辑存储区域中的存储单元时,例如100H字节,需要同时访问存储比特域23中00H字节的4到7位和存储比特域15中00H字节的0到3位。即存储比特域13和25构成了存储装置3的逻辑存储区域的低地址区域,存储比特域23和15构成了存储装置3的逻辑存储区域的高地址区域。
在访问存储装置3的逻辑存储区域时,需要对逻辑地址进行判断和变换,以映射到第一存储部件和第二存储部件所对应的物理地址。如果要访问的逻辑地址位于000H到0FFH地址段,例如01FH,根据该地址的最高位是0判断出需要访问的是第一逻辑存储区域中的存储比特域13和25,然后把后两位地址,1FH,传递给存储比特域13所在的第一存储部件和存储比特域25所在的第二存储部件,从而完成对逻辑地址01FH所对应的物理地址1FH存储单元的访问。访问物理地址1FH时,存储装置同时访问了两个存储部件的物理地址1FH所在的存储单元,即存储比特域13、25、23、15中物理地址为1FH的比特组中的数据都被访问了。此时,只需要对存储比特域13和25中物理地址为1FH的比特组中的比特进行操作,对于存储比特域23和15中物理地址为1FH的比特组中的比特不进行任何操作。如果要访问的逻辑地址位于100H到1FFH地址段,例如15EH,根据该地址的最高位是1判断出需要访问的是第二逻辑存储区域中的存储比特域23和15,然后把后两位地址,5EH,直接传递给存储比特域15所在的第一存储部件和存储比特域23所在的第二存储部件,从而完成对该地址所对应存储单元的访问。这样,经过对要访问的逻辑地址的判断、分析和变换,确定出要访问的逻辑存储区域,得到需要访问的存储比特域,得到需要访问的存储部件的物理地址。本实施例中为了描述方便,采用了两个地址范围为000H到0FFH的存储部件构成了一个存储地址范围为000H到1FFH的存储装置,但本领域的技术人员应该了解,本发明所涉及的存储装置的存储容量不受本实施例限制。本发明的存储部件和数据存储装置的存储容量是任意的。存储装置中能够通过硬件方式实现地址的变换。硬件方式包括采用硬件电路的方式,例如通过逻辑电路对逻辑地址的最高位进行判断,逻辑地址的最高位是1对应一个逻辑存储区域,最高位是0对应另一个逻辑存储区域,根据对最高位的判断结果导通或者断开要访问的逻辑存储区域对应的存储比特域的连接。存储装置也能够通过软件的方式,如通过地址对照映射表实现地址的变换。逻辑地址和物理地址之间的变换是本领域的公知技术。对于任意存储容量的数据存储装置,都能够按照前述方法对逻辑地址和物理地址进行变换。对于包含2个以上逻辑存储区域的存储装置,也能够按照前述方法进行地址变换和寻址。
当存储装置的每个存储部件包括两个存储比特域,其中第一存储部件的第一存储比特域与第二存储部件的第二存储比特域构成数据存储装置的第一逻辑存储区域;第一存储部件的第二存储比特域与第二存储部件的第一存储比特域构成存储装置的第二逻辑存储区域。任意一个存储部件中的任意一个存储比特域都属于一个特定的逻辑存储区域。
在图2的存储装置中,存储部件1,和/或存储部件2是可分离地安装在存储装置上的。存储部件1,和/或存储部件2能够从存储装置上分离以实现对要存储的数据的分拆和分存,从而实现了保密存储。
对于每一个最小寻址地址对应的存储单元由多个字节构成的存储部件,即存储单元为16位、32位、64位比特或者更多位比特位的存储部件,也即每一个地址所对应的存储单元包括2个、3个、4个、6个、8个或者更多个字节的存储部件,存储部件中的存储比特域可以包括不同字节中的多位比特位。由不同存储部件中的不同存储比特域构成的逻辑存储区域包括由不同字节中的多位比特位构成的完整的多个字节。逻辑存储区域的每一个地址对应的存储单元包括和存储部件中每一个地址对应的存储单元相同数量的字节数。存储部件中,每一个存储比特域都属于一个逻辑存储区域,一个存储比特域不能同时属于两个逻辑存储区域。
本发明的数据存储装置能够包括2个以上数目的存储部件,例如3个、4个、8个等数目的存储部件。图3是本发明的数据存储装置包括4个存储部件时的情况。当存储装置包括4个存储部件时,每个存储部件包括4个存储比特域。每个存储比特域由存储部件的每一个字节的任意两位构成。例如每一个字节7、6两位比特位构成第一存储比特域,5、4两位构成第二存储比特域,3、2两位构成第三存储比特域,1、0两位构成第四存储比特域。存储部件100中的存储空间被划分成四个存储比特域,存储空间中的每一个字节的第7、6位比特位构成了存储比特域101;存储空间中的每一个字节的第5、4位比特位构成了存储比特域102;存储空间中的每一个字节的第3、2位比特位构成了存储比特域103;存储空间中的每一个字节的第1、0位比特位构成了存储比特域104。存储部件200、300、和400中也进行了与存储部件100类似的划分,每一个存储部件中都被划分为4个存储比特域。不同存储部件中的存储比特域的划分的数量和划分方式可以不同,即不同存储部件中的不同存储比特域包括的比特位可以不同。
图4中,数据存储装置500的第一逻辑存储区域501包括第一存储部件的第一存储比特域101、第二存储部件的第二存储比特域202、第三存储部件的第三存储比特域303和第四存储部件的第四存储比特域404。数据存储装置的第二逻辑存储区域502包括第一存储部件的第四存储比特域104、第二存储部件的第一存储比特域201、第三存储部件的第二存储比特域302和第四存储部件的第三存储比特域403。数据存储装置的第三逻辑存储区域503包括第一存储部件的第三存储比特域103、第二存储部件的第四存储比特域204、第三存储部件的第一存储比特域301和第四存储部件的第二存储比特域402。数据存储装置的第四逻辑存储区域504包括第一存储部件的第二存储比特域102、第二存储部件的第三存储比特域203、第三存储部件的第四存储比特域304和第四存储部件的第一存储比特域401。访问数据存储装置500的第一逻辑存储区域501时,需要同时访问第一存储部件的存储比特域101、第二存储部件的存储比特域202、第三存储部件的存储比特域303和第四存储部件的存储比特域404。图4中,某一个逻辑存储区域的构成也可以任意选取各个存储部件中的互补比特域来构成,而在编号上采用与前述方案逆序或者不同的编排方式。逻辑存储区域的编号也是任意的,例如,可以规定存储装置的第二逻辑存储区域包括第一存储部件的第二存储比特域、第二存储部件的第三存储比特域、第三存储部件的第四存储比特域和第四存储部件的第一存储比特域或者第一逻辑存储区域包括第一存储部件的第一存储比特域、第二存储部件的第二存储比特域、第三存储部件的第四存储比特域和第四存储部件的第三存储比特域。
当存储装置包括4个存储部件而每个存储部件包括2个存储比特域时,第一存储部件的第一存储比特域与第二存储部件的第二存储比特域构成第一逻辑存储区域,第一存储部件的第二存储比特域与第二存储部件的第一存储比特域构成第二逻辑存储区域;类似的方法能够构成第三逻辑存储区域和第四逻辑存储区域。此时,相当于存储装置包括两组子存储空间,每组子存储空间包括两个存储部件、每个存储部件包括两个存储比特域的情况。
当存储装置包括N个存储部件时,N是大于等于3的自然数时,L是小于或等于N的自然数;M是1到N的自然数。上述数据存储装置的第L个逻辑存储区域包括第M个存储部件中的第((M+L-2) mod N)+1个存储比特域。
图5中,数据存储装置包括存储部件1和存储部件2、存储控制部件50、开关装置32、开关装置34、开关装置36、开关装置38和数据线路40。存储部件1和2是存储数据的部件,按照图1、2、3、4实施例中公开的方法构成逻辑存储区域。存储部件可以是半导体存储介质、磁存储介质、光存储介质或者其它原理的存储介质,例如FLASH存储芯片、磁盘、光盘等。典型的存储控制部件如USB存储控制芯片或者SD存储控制芯片。存储控制部件中包括有接口模块,与主控设备连接,用于进行接口协议的转换和接口的连接。存储控制部件中包括地址处理模块,用于对存储部件的地址进行管理,包括寻址、地址变换、逻辑地址与物理地址转换等。存储控制部件中包括数据处理模块,用于数据的校验、暂存等。存储控制部件50通过接口模块52与主控设备连接。接口模块52可以是USB接口、SD接口或者其它形式的接口。主控设备可以是计算机、数码相机或智能终端等。存储控制部件50通过数据线接口54与数据线路40连接。数据线接口包括控制命令接口、地址接口、数据接口和控制信号接口。这些接口分别与数据线路40中对应的控制命令传输线、地址传输线、数据传输线和控制信号传输线连接。控制命令线接口、地址接口、数据接口和控制信号接口可以复用,例如在FLASH存储芯片中控制命令线接口、地址接口、数据接口是共用的。相应的,如果接口复用,数据线路也共用。即共用的数据线路上传递的可以是控制命令、地址信息和需要存储的数据。具体传递的是何种信息可以通过控制信号进行识别,或者按照约定的格式把控制命令、地址信息和数据组织起来按照固定的格式传递。数据线路40包括多条数据线,典型的数据线路包括8条数据线,也可以是16条或者更多的数据线。存储部件1和2的控制命令、地址信息和需要存储的数据信息共用8位接口。与存储部件1和2相连的数据线路包含8条共用的数据线。数据线路40的4到7位数据线与存储部件1的4到7位接口相连,在4到7位数据线上布置有开关装置32。数据线路40的4到7位数据线与存储部件2的4到7位接口相连,在4到7位数据线上布置有开关装置36。数据线路40的0到3位数据线与存储部件1的0到3位接口相连,在0到3位数据线上布置有开关装置34。数据线路40的0到3位数据线与存储部件2的0到3位接口相连,在0到3位数据线上布置有开关装置38。开关装置用于连通或者断开数据线。典型的开关装置包括多路双向开关组件。每一条数据线上布置有一路双向开关组件。开关装置32、34、36、38分别包括4路双向开关组件。当向数据存储装置中存储数据时,数据通过接口52被传递到存储控制部件50。存储控制部件50通过数据线路40把要存储的数据写入存储部件1和2。当数据线路40上传递的是控制命令和地址信息时,开关装置32、34、36、38导通,控制命令和地址信息能够传递给存储部件1和2。当数据线路40上传递的是数据信息时,根据数据信息写入或读出位置的不同,开关装置32、34、36和38分别按需连通或者断开。存储部件1的存储比特域13和存储部件2的存储比特域25构成了存储装置的第一逻辑存储区域;存储部件1的存储比特域15和存储部件2的存储比特域23构成了存储装置的第二逻辑存储区域。第一逻辑存储区域可以对应于存储装置的高地址存储区域,也可以对应于存储装置的低地址存储区域。第二逻辑存储区域可以对应于存储装置的高地址存储区域,也可以对应于存储装置的低地址存储区域。当需要把数据存入到存储装置的第一逻辑存储区域,即存储部件1的4到7位即存储比特域13和存储部件2的0到3位即存储比特域25构成的逻辑存储区域或者从中读出数据时,开关装置32和38连通,而开关装置34和36断开,即对第一逻辑存储区域进行操作。当需要访问第二逻辑存储区域,即访问存储部件1的0到3位即存储比特域15和存储部件2的4到7位即存储比特域23构成的逻辑存储区域时,开关装置34和36连通,而开关装置32和38断开,即对第二逻辑存储区域进行写或者读操作。其中存储部件1,和/或2是可分离地安装在存储装置中的。
本发明提供的数据存储装置包括接口部件、存储控制部件、数据线路、外围电路、外壳等,数据线路包括连接各个零部件的多路数据线。数据存储装置还包括N个存储部件,其中至少一个存储部件是可拆卸的,每个存储部件包括至少两个存储比特域;其中,任意一个存储部件中的任意一个存储比特域与其它存储部件中的互补存储比特域构成逻辑存储区域,从而在存储装置中形成至少两个逻辑存储区域。其中,N是大于等于2的自然数。
存储部件包括以磁、光、半导体等原理存储数据信息的软盘、硬盘、光碟、半导体存储器、Flash存储芯片等以及这些设备和部件的必要外围设备和组件。
图6中,数据存储装置的存储控制部件50的数据接口55、地址接口57和控制命令接口56是独立的接口,即非复用的接口。数据接口55与数据线路45连接。命令接口56与命令线路46连接。地址接口57与地址线路47连接。控制命令信息可以通过命令线路46由存储控制部件50直接传递到存储部件1和存储部件2。地址信息可以通过地址线路47由存储控制部件50直接传递到存储部件1和存储部件2。数据线路45的高四位通过开关装置32与存储部件1数据接口的高4位连接。数据线路45的高四位通过开关装置36与存储部件2数据接口的高4位连接。数据线路45的低四位通过开关装置34与存储部件1数据接口的低4位连接。数据线路45的低四位通过开关装置38与存储部件2数据接口的低4位连接。存储部件1中的存储比特域15和存储部件2中的存储比特域23构成了存储装置的第一逻辑存储区域,其中存储比特域23中包括的是每一个字节的4到7位,存储比特域15中包括的是每一个字节的0到3位。存储部件1中的存储比特域13和存储部件2中的存储比特域25构成了存储装置的第二逻辑存储区域,其中存储比特域13中包括的是每一个字节的4到7位,存储比特域25中包括的是每一个字节的0到3位。当访问第一逻辑存储区域时,即对第一逻辑存储区域进行写入、读取或者删除等操作时,开关装置34和36处于导通状态,开关装置32和38处于断开状态,这样就可以对第一逻辑存储区域进行各种操作。当访问第二逻辑存储区域时,即对第二逻辑存储区域进行写入、读取或者删除等操作时,开关装置32和38处于导通状态,开关装置34和36处于断开状态,这样就可以对第二逻辑存储区域进行各种操作。而地址信息和控制命令信息分别通过命令线路46和地址线路47传递。
上述数据存储装置包括至少两个开关装置。开关装置包括多路双向开关部件,每个开关装置连接到一个存储比特域,开关装置控制一个存储比特域数据线路的导通与断开。开关装置布置在存储控制部件与存储部件之间的数据线路上。
对于逻辑存储区域的访问控制,能够通过存储控制部件的多组I/O端口和与I/O端口连接的数据线路来实现。图7中,存储控制部件50有两组I/O接口,I/O1和I/O2。通过存储控制部件内部的硬件线路或者软件编程能够实现对I/O端口的控制,包括是否输出数据、输出数据的类型、输出的时序、输入数据的读取等,这些都是公知技术。存储部件1中的存储比特域13和存储部件2中的存储比特域25构成了存储装置的第一逻辑存储区域。第一逻辑存储区域通过数据线路41与存储控制部件50的I/O1端口连接。I/O1端口可以是8位、16位或者更多位。以I/O1端口为8位为例,I/O1端口连接的数据线路包括8位数据线。I/O1端口的高4位与存储比特域13连接,I/O1端口的低4位与存储比特域25连接。I/O1端口输出的数据被分拆成为两部分,分别传递给存储部件1和存储部件2中对应的存储区域;同理,存储部件1和存储部件2输出的数据也在I/O1端口被合并成为一个完整的字节。存储部件2中的存储比特域23和存储部件1中的存储比特域15构成了存储装置的第二逻辑存储区域。第二逻辑存储区域通过数据线路42与存储控制部件50的I/O2端口连接。I/O1端口和I/O2端口可以是单纯的数据传输端口,即只传递要存储的数据;也可以是复用端口,即I/O端口可以传递控制命令、地址信息和要存储的数据。在I/O端口是单纯的数据存储端口时,控制命令和地址信息可以通过控制命令线路和地址信息线路传递给存储部件。当向逻辑存储区域写入数据时,控制命令和地址信息通过控制命令线路和地址信息线路传递给逻辑存储区域所在的多个存储部件,然后I/O端口输出要存储的数据。要存储的数据被数据线路分拆成为两个比特组并分别传递到两个存储部件中对应的存储比特域,完成数据的存储过程。此时,每个存储部件中只存储了需要存储的数据的一部分,当把一个存储部件拆除后,可以实现数据的保密存储。当从逻辑存储区域读出数据时,控制命令和地址信息通过控制命令线路和地址信息线路传递给逻辑存储区域所在的多个存储部件,每个存储部件都开始输出数据。与I/O1端口连接的多个存储比特域中的数据在数据线路41中被拼合成完整的数据并被传递到I/O1端口;与I/O2端口连接的多个存储比特域中的数据在数据线路42中被拼合成完整的数据并被传递到I/O2端口。如果要读取的数据存储于与I/O1端口连接的逻辑存储区域中,则存储控制部件只输出I/O1端口传递来的数据,而丢弃I/O2端口传递来的数据;反之亦然。在I/O端口是复用端口情况下,当需要访问第一逻辑存储区域时,即向第一逻辑存储区域写入数据或读出数据、执行删除或查询操作时,首先通过I/O1和I/O2端口同时传递控制命令、地址信息,此时每个存储部件接收的都是完整的控制命令和地址信息,存储部件1和存储部件2都做好被访问的准备;然后中断I/O2端口,数据通过I/O1端口传递给存储比特域13和25,或从存储比特域13和25传递给I/O1端口,实现了数据的分拆、分存或读取。当需要访问第二逻辑存储区域时,过程类似。当数据存储装置包括多个存储部件时,可以按照上述方法和过程类比操作。
上述数据存储装置的存储控制部件,包括多个I/O端口, 每一个I/O端口通过数据线路连接到至少两个存储部件中的互补存储比特域。每个I/O端口连接到1个以上的存储比特域,连接于同一个I/O端口的1个以上的存储比特域互为互补存储比特域,这些互为互补存储比特域的多个存储比特域分布于多个不同的存储部件中,这里的多个指1个以上的数量。每一个存储比特域只连接某一个I/O端口的全部数据线中的部分数据线,这里的部分指数量上至少比全部少1个。I/O端口用于传递需要存储的数据,存储操作命令和地址信息。
图8中,存储部件1和2是FLASH存储部件,如FLASH存储芯片,存储控制部件50是FLASH存储部件的专用存储控制部件,例如U盘存储控制芯片。存储部件1中的存储比特域13和存储部件2中的存储比特域25构成了第一逻辑存储区域,存储部件1中的存储比特域15和存储部件2中的存储比特域23构成了第二逻辑存储区域。FLASH存储控制部件50与FLASH存储芯片1、2之间传递的命令信息、地址信息和数据信息通过共用的8位数据线路40来进行。控制信号线70传递的是控制信号,控制信号线由一根或者多根数据线构成。控制信号包括操作的类型,例如读操作、写操作、擦除操作。典型的控制信号包括各条控制信号数据线上输出的高电平和低电平的组合。控制信号包括要访问的地址所在的逻辑存储区域的信息,例如是访问第一逻辑存储区域,还是访问第二逻辑存储区域。可以规定第一逻辑存储区域作为存储装置的高地址存储区域,也可以规定第二逻辑存储区域作为存储装置的高地址存储区域,不影响使用。开关装置32、34、36和38的连通和断开,可以通过控制信号线70上传递的控制信号来控制。对于控制信号的设定,可以通过在存储控制部件内部的编程来实现,也可以通过逻辑门电路来实现,这些都是计算机领域的公知技术。暂存部件60用于临时存储数据,暂存部件60可以与存储控制部件50是一体的,也可以是单独的部件。典型的暂存部件如RAM存储器件。暂存部件60中包括数据暂存区域,能够用于备份数据。在数据存储装置中,存储部件1,和/或存储部件2是可分离地安装在存储装置上的。存储部件1,和/或存储部件2能够从存储装置上分离以实现保密存储。开关装置32布置在存储部件1的存储比特域13的数据线路上。开关装置34布置在存储部件1的存储比特域15的数据线路上。开关装置36布置在存储部件2的存储比特域23的数据线路上。开关装置38布置在存储部件2的存储比特域25的数据线路上。典型的开关装置包括多路双向开关组件,每一路开关能够控制一路数据线的连通或断开。开关装置根据控制信号线70上的控制信号的不同而处于连通或断开状态。开关装置连通时,数据能够写入该开关装置连接的比特域,或从比特域中读出数据发送到存储控制部件。开关装置断开时,存储控制部件不能与该开关装置连接的存储比特域进行数据交换。当存储控制部件向多个存储部件传递控制命令、地址信息时,全部开关装置处于连通状态,控制命令、地址信息被传递到每一个存储部件中,存储部件根据控制命令、地址信息做出相应的操作。当存储控制部件向存储部件传递数据信息时,与目标逻辑存储区域中的存储比特域连接的开关装置导通,与其它逻辑存储区域中的存储比特域连接的开关装置处于断开状态。
上述数据存储,当存储部件为FLASH存储芯片或FLASH存储部件时,数据存储装置还包括至少一个缓存区域或者缓存部件,用于临时存储需要存储的数据。缓存区域或缓存部件可以布置在数据存储控制部件中,也可以布置于一个独立的装置或部件中。
上述存储部件为FLASH存储部件的数据存储装置还包括至少两个开关装置。开关装置包括多路双向开关部件,每个开关装置连接到一个存储比特域,开关装置控制一个存储比特域数据线路的导通与断开。开关装置布置在存储控制部件与存储部件之间的数据线路上。
上述存储部件为FLASH存储部件的数据存储装置的存储控制部件,包括多个I/O端口, 每一个I/O端口通过数据线路连接到至少两个存储部件中的互补存储比特域。I/O端口用于传递需要存储的数据,存储操作命令和地址信息。FLASH存储部件包括FLASH存储芯片。
在从如图8所示的数据存储装置中读取数据时,当要读取的数据位于低地址逻辑存储区域,例如第一逻辑存储区域时,存储控制部件50首先向存储部件1和存储部件2发送读相关控制命令和数据存储的地址信息,控制信号线70上传递的信号表明此时数据线路40上传递的是控制命令和地址信息,开关装置32、34、36、38处于导通状态,存储部件1和2能够接收控制命令和地址信息。当第一逻辑存储区域开始输出所存储的数据信息时,此时控制信号线70上传递的信号表明此时数据线路40上传递的是要读取的数据。存储部件1和存储部件2开始输出所存储的数据,此时开关装置32和38连通,存储在存储比特域13和存储比特域25中的数据被输出到数据线路40上,并在数据线路40上合并成为完整的数据字节,构成完整的数据。完整的数据被传输到存储控制部件50,完成数据的读操作;开关装置34和36断开,存储在存储比特域15和存储比特域23中的数据不能传递到数据线路40上。当要读取的数据位于高地址逻辑存储区域,例如第二逻辑存储区域时,存储控制部件50首先向存储部件1和存储部件2发送读相关控制命令和数据存储的地址信息,控制信号线70上传递的信息表明此时数据线路上传递的是控制命令和地址信息。此时开关装置32、34、36、38处于导通状态,存储部件1和2能够接收控制命令和地址信息。当第二逻辑存储区域开始输出所存储的数据信息时,即存储部件1和存储部件2开始输出所存储的数据时,此时控制信号线70上传递的信息表明此时数据线路40上传递的是要读取的数据。开关装置34和36连通,存储在存储比特域15和存储比特域23中的数据被输出到数据线路40上,并在数据线路40上合并成为完整的数据字节,构成完整的数据。完整的数据被传输到存储控制部件50,完成数据的读操作。开关装置32和38断开,存储在存储比特域13和存储比特域25中的数据不能传递到数据线路40上。
当要访问的是低地址逻辑存储区域时,存储控制部件输出的地址信息中有效地址的最高位是0。当要访问的是高地址逻辑存储区域时,地址信息中有效地址的最高位是1。访问的是低地址逻辑存储区域还是高地址逻辑存储区域,可以由存储控制部件通过控制信息线70指明,也可以由开关装置中的逻辑电路根据地址信息中有效地址的最高位判断。根据有效地址的最高位就可以判断出要访问的是低地址逻辑区域还是高地址逻辑区域,并依此调节开关装置32、34、36、38的状态。存储部件在接收存储控制部件传递来的地址信息时,对于有效地址信息中的最高位不需要响应,只根据有效地址信息中除最高位以外的地址进行寻址操作即可。
图9是对存储部件为FLASH存储部件的存储装置执行块删除处理的流程900。FLASH存储装置包括N个存储部件,N是大于或等于2的自然数;以及至少一个缓存部件,用于临时存储需要存储的数据,其中,至少一个存储部件是可拆卸的,每个存储部件包括至少两个存储比特域;任意一个存储部件中的任意一个存储比特域与其它存储部件中的互补存储比特域构成逻辑存储区域,从而在所述存储装置中形成至少两个逻辑存储区域。Flash存储芯片中存储的数据文件是放在多个块或页中的,需要依次删除每一个存储有文件的块或页以完成对整个文件的删除。因为Flash存储芯片的特性是整块或者整页删除数据,所以在删除数据前要把存储在存储部件中的不需要删除的数据进行临时转存,即备份。要删除存储在第一逻辑存储区域某一块或页中的数据,首先,需要把存储在第二逻辑存储区域的位于同一块或页中的数据读出并临时存储在暂存部件中进行备份,即执行步骤903,把目标块中不需要删除数据的存储比特域中的数据备份到缓存部件,也就是把目标块所在逻辑存储区域的位于同一块中的相邻逻辑存储区域中的数据存储到暂存区域;然后,执行步骤905,执行目标块的块擦除操作,即把目标块中的所有字节的所有存储比特位都置为“0”或“1”,此时,该块中不论第一逻辑存储区域还是第二逻辑存储区域中的数据都被删除;最后,把存储在暂存区域中的临时存储的备份数据重新写入第二逻辑存储区域中原来的块或页中,即执行步骤907,把备份到缓存部件中的数据重新写入到原存储比特域,也就是把暂存区域中存储的数据写入到原来的存储位置。这样,第一逻辑存储区域中指定的块或者页中的数据就被删除了。按照前述删除块中内容的方法依次删除要删除的文件所在的全部目标块中的内容,即重复执行步骤903、905、907,完成对整个数据文件的删除。删除其它逻辑存储区域中存储的数据按照上述步骤进行即可。
用于对存储部件为FLASH存储部件的存储装置,即FLASH存储装置,执行块删除处理的方法,上述FLASH存储装置包括N个存储部件,N是大于或等于2的自然数;以及至少一个缓存部件,用于临时存储需要存储的数据,其中:至少一个存储部件是可拆卸的,所述每个存储部件包括至少两个存储比特域;任意一个存储部件中的任意一个存储比特域与其它存储部件中的互补存储比特域构成逻辑存储区域,从而在所述存储装置中形成至少两个逻辑存储区域;所述方法包括步骤:
a)把目标块中不需要删除数据的存储比特域中的数据备份到缓存部件;
b)执行目标块的块擦除操作;
c)把备份到缓存部件中的数据重新写入到原存储比特域。
图10是对存储部件为FLASH存储部件的存储装置执行块写入处理的流程1000。FLASH存储装置包括N个存储部件,N是大于或等于2的自然数;以及至少一个缓存部件,用于临时存储需要存储的数据,其中,至少一个存储部件是可拆卸的,每个存储部件包括至少两个存储比特域;任意一个存储部件中的任意一个存储比特域与其它存储部件中的互补存储比特域构成逻辑存储区域,从而在所述存储装置中形成至少两个逻辑存储区域。在FLASH存储部件中数据是按块或页存储的。在FLASH存储部件中存储数据文件时,需要首先删除要写入数据的块,即目标块中的数据,然后再把要存储的数据写入目标块。如果要把数据存储到第一逻辑存储区域的某一块或页中,第一步,把存储在第二逻辑存储区域的位于同一个块或者页中的数据读出并存储到暂存部件中进行备份,即执行步骤1002,把待写入数据的目标存储比特域所在的块中除所述目标存储比特域外的存储比特域中的数据备份到缓存部件,也就是把目标块所在逻辑存储区域的位于同一块中的相邻逻辑存储区域中的数据存储到暂存区域;第二步,执行步骤1004,对目标存储比特域所在的块执行块擦除操作,即把目标块中的所有字节的所有存储比特位都置为“0”或“1”;第三步,把暂存部件中的备份数据写回原位置,即执行步骤1006,把备份到缓存部件中的数据重新写入到原存储比特域,也就是把暂存区域中存储的数据写入到原来的第二逻辑存储区域中的存储位置;第四步,把需要存储的数据写入第一逻辑存储区域中指定的目标块,即执行步骤1008,把需要存储的数据写入目标存储比特域。这样就完成了把数据写入某一块或页的操作。其中步骤1006和步骤1008的次序是能够交换的。如果需要存储的数据文件大小超过一个块或页,只需要按照存储的顺序,把需要存储的数据依次存储到各个块或页中,直到完成整个数据文件的存储操作,即重复步骤1002、1004、1006、1008,直到完成对整个文件的存储。在其它逻辑存储区域中存储数据类比上述步骤进行即可。
用于对存储部件为FLASH存储部件的存储装置执行块写入处理的方法,上述FLASH存储装置包括:N个存储部件,N是大于或等于2的自然数;以及至少一个缓存部件,用于临时存储需要存储的数据,其中:至少一个存储部件是可拆卸的,所述每个存储部件包括至少两个存储比特域;任意一个存储部件中的任意一个存储比特域与其它存储部件中的互补存储比特域构成逻辑存储区域,从而在所述存储装置中形成至少两个逻辑存储区域;所述方法包括步骤:
a’)把待写入数据的目标存储比特域所在的块中除所述目标存储比特域外的存储比特域中的数据备份到缓存部件;
b’)对所述目标存储比特域所在的块执行块擦除操作;
c’)把备份到所述缓存部件中的数据重新写入到原存储比特域;
d’)把需要存储的数据写入所述目标存储比特域;
其中c’)和d’)的次序是能够交换的。
此外,本发明可以采取可从计算机可用介质或计算机可读介质访问的计算机程序产品的形式,该介质提供程序代码以供计算机或任意指令执行系统使用或者结合计算机或任意指令执行系统而使用。出于本描述的目的,计算机可用介质或计算机可读介质可以是任意切实可行的装置,其可以包含、存储、传送、传播或传输程序以供计算机或任意指令执行系统、装置或设备使用或者结合计算机或任意指令执行系统、装置或设备而使用。
该介质可以是电子的、磁的、光的、电磁的、红外的或半导体的系统(或装置、设备)或者传播介质。计算机可读介质的例子包括半导体或固态存储器(solid status memory)、磁带、可装卸的计算机磁盘、随机存取存储器(RAM)、只读存储器(ROM)、硬盘以及光盘。
尽管以上针对特定实施例对本发明进行了详细的说明,但本领域技术人员应当理解,本发明不限于以上公开的特定实施例。在不偏离本发明的本质和范围的情况下,可以对本发明进行各种修改和替换。本发明的范围仅由所附权利要求书限定。