一种闪存芯片的读写方法.pdf

上传人:a**** 文档编号:436728 上传时间:2018-02-16 格式:PDF 页数:20 大小:647.54KB
返回 下载 相关 举报
摘要
申请专利号:

CN01100002.3

申请日:

2001.01.02

公开号:

CN1362708A

公开日:

2002.08.07

当前法律状态:

撤回

有效性:

无权

法律详情:

发明专利申请公布后的视为撤回|||公开|||实质审查的生效申请日:2001.1.2

IPC分类号:

G11C7/00

主分类号:

G11C7/00

申请人:

吴秀林; 岳京星

发明人:

岳京星; 吴秀林

地址:

100029北京市朝阳区北四环中路33号

优先权:

专利代理机构:

北京三友知识产权代理有限公司

代理人:

刘芳

PDF下载: PDF下载
内容摘要

一种闪存芯片的读写方法,闪存芯片内部的各存储块分有数据区和控制区,控制区划分为索引区、逻辑地址指针区和状态标识区,根据索引区、逻辑地址指针区和状态标识区所表述的信息,对闪存的各存储块的数据区进行擦除、读、写和数据更新操作。本发明根据存储块的状态进行擦除、读、写操作,将闪存的写入操作与擦除操作分开,提高整体的读写速度,使得对闪存中各个存储块的写入操作的频率基本一致,延长闪存盘的寿命。

权利要求书

1、一种闪存芯片的读写方法,其特征在于:闪存芯片内部的各存储块分
有数据区和控制区,控制区划分为索引区、逻辑地址指针区和状态标识区,根
据索引区、逻辑地址指针区和状态标识区所表述的信息,对闪存的各存储块的
数据区进行擦除、读、写和数据更新操作。
2、如权利要求1所述的闪存芯片的读写方法,其特征在于:所述的状态
标识区标识所对应存储块工作状态的状态标识位组可为相对应的存储块
(Block)的四种状态之一:“空”或“忙”或“释放”或“丢弃”。
3、如权利要求1所述的闪存芯片的读写方法,其特征在于:所述的索引
区中的索引位组的信息为与之相对应的存储块使用状态之一:“未用过”或“已
使用”。
4、如权利要求1所述的闪存芯片的读写方法,其特征在于:所述的逻辑
地址指针区内的逻辑地址指针组信息为与之相对应的存储块的物理地址或表示
多次更新后、按照更新次数顺序记录的逻辑地址。
5、如权利要求1或2或3或4所述的闪存芯片的读写方法,其特征在于:
所述的擦除操作步骤为:
a、依次检测闪存盘中所有或设定数目的部分存储块状态标识的状态数
据;
b、如果该状态为“释放”,则对与存储块状态标识相对应的存储块全块
进行擦除;否则,进入步骤e;
c、将该存储块的索引区中所有的索引信息设置为:“未用”;
d、将该存储块的逻辑地址指针区中所有的逻辑地址指针擦除;
e、如果该状态为“空闲”或“忙”或“丢弃”;
f、如果未检测完闪存盘中所有的或设定数据的部分存储块状态标识的
状态数据,返回步骤a;否则,进入步骤g;
g、结束。
6、如权利要求1所述的闪存芯片的读写方法,其特征在于:所述的擦除
操作可为初始化擦除和其他时间的擦除。
7、如权利要求6所述的闪存芯片的读写方法,其特征在于:所述的初始
化擦除操为在该闪存盘加电时所作的第一个操作。
8、如权利要求6所述的闪存芯片的读写方法,其特征在于:所述的其他
时间擦除可为读数据块内文件的同时擦除状态为“释放”数据块。
9、如权利要求1所述的闪存芯片的读写方法,其特征在于:所述的擦除
也可为读操作擦除或操作写擦除。
10、如权利要求9所述的闪存芯片的读写方法,其特征在于:所述的读操
作擦除为在每个读操作之前的擦除操作。
11、如权利要求5或10所述的闪存芯片的读写方法,其特征在于:所述
的读操作擦除为:如果存储块状态为“释放”的存储块的数量少于一事先设置
的最小的读操作擦除存储块的数量,将其与该事先设置的最小的读操作擦除存
储块的数量之间的差值数量的“丢弃”的存储块设置为被擦除的对象,进行擦
除操作。
12、如权利要求9所述的闪存芯片的读写方法,其特征在于:所述的写操
作擦除为在每个写操作之前的擦除操作。
13、如权利要求5或12所述的闪存芯片的读写方法,其特征在于:所述
的写操作擦除为:如果存储块状态为“释放”的存储块的数量少于一事先设置
的最小的写操作擦除存储块的数量,将其与该事先设置的最小的读操作擦除存
储块的数量之间的差值数量的“丢弃”的存储块设置为被擦除的对象,进行擦
除操作。
14、如权利要求1或2或3或4所述的闪存芯片的读写方法,其特征在于:
所述的读操作包括如下步骤:
a、根据给出的访问地址找到相应的存储块,依次检测该存储块中索
引区各索引信息中的内容;
b、如果找到最后一个内容记录“已使用”的索引信息,进入步骤c;
否则返回到步骤a;
c、根据与该索引信息对应的逻辑地址指针中的地址找到该地址指示
的存储块,读出该存储块内的数据内容,结束。
15、如权利要求1或2或3或4所述的闪存芯片的读写方法,其特征在
于:所述的写操作包括如下步骤:
a、找到当前指针所指向的为“空闲”状态的存储块,将所要写的数据写
入该存储块的数据区中;
b、再读回该存储块的数据内容,将步骤a所写的数据与读回的该存储块
的数据内容进行比较;
c、如果比较结果为不一致,进入步骤d;否则进入步骤e;
d、将当前存储块的状态修改为“丢弃”,返回步骤a;
e、将与当前存储块相对应的索引区中相应的状态内容设置为“已使用”;
f、将与其相对应的逻辑地址指针的内容设置为该数据存入的存储块的地
址;
g、将当前存储块的状态修改为“忙”,结束。
16、如权利要求1或15所述的闪存芯片的读写方法,其特征在于:所述
的数据更新操作包括如下步骤:
a、根据给出的被更新数据的地址找到相应的存储块,分析与之相对应的
状态标识区中的信息内容;
b、如果该状态标识区中的内容为“忙”,依次检测该存储块中索引区各
索引信息中的内容,直到找到最后一个内容值记录为“已使用”的索
引信息;
c、根据步骤b中找到的索引信息对应的逻辑地址指针的内容,找到该逻
辑地址指针所指向的存储块;
d、将步骤c中找到的存储块所对应的状态标识区中的内容设置为“释
放”;
e、找到当前指针指向的首个为“空闲”状态的存储块,进行写操作。
f、将步骤b中最后一个内容值记录为“已使用”索引信息后面的一个索
引信息的内容设置为“已使用”;将与该索引信息其相对应的逻辑地址
指针的内容设置为步骤e所写数据的存储块的地址;
g、将步骤a中的被更新数据的地址找到相应的存储块相对应的状态标识
区中的信息内容设置为“释放”;结束。
17、如权利要求16所述的闪存芯片的读写方法,其特征在于:所述的数
据更新操作还包括如下步骤:将被更新数据的存储块内本次不更新的其他文件
的内容进行复制,再将该文件内容搬移到当前指针更新写入的存储块相应位置
上。
18、如权利要求15或16所述的闪存芯片的读写方法,其特征在于:所述
的为“空闲”状态的存储块的地址存储在闪存盘的一连续的存储区中。

说明书

一种闪存芯片的读写方法

本发明涉及一种闪存芯片的读写方法,尤指一种针对以闪存芯片为基本存
储介质的闪存盘的数据写入和读出的方法。

众所周知,现有的闪存均是由存储块组成的,每一个存储块内均包含两个
区域:数据存储区100和存储块状态区500;数据存储区用于实际的数据存储,
存储块状态区内则是标识存储块内的存储块好坏的存储块的状态信息。如果,
存储块内的存储块均是正常的,存储块的状态信息被设定为“好”;一旦存储
块内的存储块出现坏的单元,存储块的状态信息被设定为“坏”。通过上述的
设定,闪存的读写管理软件就可以在对闪存进行读写操作时方便地“避开”被
设定为“坏”的存储块。另外,一般对闪存进行数据更新操作,需要先擦除原
有数据,然后才能写入新的数据。

上述现有的闪存的存储块的分区管理方式和数据的更新方式是一种基本的
操作方式。但是上述方式存在着一些缺点:首先,存储块的状态区只有“好”
和“坏”两种状态,不利于描述其所对应的存储块的更详细的工作状态和使用
信息;其次,由于数据更新操作需要先擦除原有数据,才能写入新的数据,因
此,数据更新操作所花费的时间远比对闪存进行写操作所花费的时间要多得
多;再有,现有的数据更新操作不对所写入的存储块的使用频率进行统计,因
此会造成闪存中各个存储块老化速度不均匀,降低了闪存的使用寿命。

本发明的主要目的在于提供一种闪存芯片的读写方法,将闪存盘的闪存中
的存储块进行管理,增加状态标识,根据存储块的状态进行擦除、读、写操作,
从而将闪存的写入操作与擦除操作分开,提高整体的读写速度,避免在向闪存
盘写入数据耗时过长,预防由于系统致命的瘫痪所造成的数据损失。

本发明的又一目的在于提供一种闪存芯片的读写方法,使得对闪存中各个
存储块的写入操作的频率基本一致,避免闪存中各个存储块的老化程度不均,
实现所有的存储块都被均匀分配写入,最终延长闪存盘的寿命。

本发明的目的是通过如下技术方案实现的:

一种闪存芯片的读写方法,闪存芯片内部的各存储块分有数据区和控制
区,控制区划分为索引区、逻辑地址指针区和状态标识区,根据索引区、逻辑
地址指针区和状态标识区所表述的信息,对闪存的各存储块的数据区进行擦
除、读、写和数据更新操作。

所述的状态标识区标识所对应存储块工作状态的状态标识位组可为相对应
的存储块(Block)的四种状态之一:“空”或“忙”或“释放”或“丢弃”。

所述的索引区中的索引位组的信息为与之相对应的存储块使用状态之一:
“未用过”或“已使用”。

所述的逻辑地址指针区内的逻辑地址指针组信息为与之相对应的存储块的
物理地址或表示多次更新后、按照更新次数顺序记录的逻辑地址。

所述的擦除操作步骤为:

1、依次检测闪存盘中所有或设定数目的部分存储块状态标识的状态数
据;

2、如果该状态为“释放”,则对与存储块状态标识相对应的存储块全块进
行擦除;否则,进入步骤5;

3、将该存储块的索引区中所有的索引信息设置为:“未用”;

4、将该存储块的逻辑地址指针区中所有的逻辑地址指针擦除;

5、如果该状态为“空闲”或“忙”或“丢弃”;

6、如果未检测完闪存盘中所有的或设定数据的部分存储块状态标识的状
态数据,返回步骤1;否则,进入步骤7;

7、结束。

所述的擦除操作可为初始化擦除和其他时间的擦除。初始化擦除操为在该
闪存盘加电时所作的第一个操作。其他时间擦除可为读数据块内文件的同时擦
除状态为“释放”数据块。擦除也可为读操作擦除或操作写擦除,读操作擦除
为在每个读操作之前的擦除操作;写操作擦除为在每个写操作之前的擦除操
作。

所述的读操作擦除为:如果存储块状态为“释放”的存储块的数量少于一
事先设置的最小的读操作擦除存储块的数量,将其与该事先设置的最小的读操
作擦除存储块的数量之间的差值数量的“丢弃”的存储块设置为被擦除的对象,
进行擦除操作。

所述的写操作擦除为:如果存储块状态为“释放”的存储块的数量少于一
事先设置的最小的写操作擦除存储块的数量,将其与该事先设置的最小的读操
作擦除存储块的数量之间的差值数量的“丢弃”的存储块设置为被擦除的对象,
进行擦除操作。

所述的读操作包括如下步骤:

1、根据给出的访问地址找到相应的存储块,依次检测该存储块中索引
区各索引信息中的内容;

2、如果找到最后一个内容记录“已使用”的索引信息,进入步骤3;
否则返回到步骤1;

3、根据与该索引信息对应的逻辑地址指针中的地址找到该地址指示的
存储块,读出该存储块内的数据内容,结束。

所述的写操作包括如下步骤:

1、找到当前指针所指向的为“空闲”状态的存储块,将所要写的数据
写入该存储块的数据区中;

2、再读回该存储块的数据内容,将步骤1所写的数据与读回的该存储
块的数据内容进行比较;

3、如果比较结果为不一致,进入步骤4;否则进入步骤5;

4、将当前存储块的状态修改为“丢弃”,返回步骤1;

5、将与当前存储块相对应的索引区中相应的状态内容设置为“已使
用”;

6、将与其相对应的逻辑地址指针的内容设置为该数据存入的存储块的
地址;

7、将当前存储块的状态修改为“忙”,结束。

所述的数据更新操作包括如下步骤:

1、根据给出的被更新数据的地址找到相应的存储块,分析与之相对应的
状态标识区中的信息内容;

2、如果该状态标识区中的内容为“忙”,依次检测该存储块中索引区各
索引信息中的内容,直到找到最后一个内容值记录为“已使用”的索
引信息;

3、根据步骤2中找到的索引信息对应的逻辑地址指针的内容,找到该逻
辑地址指针所指向的存储块;

4、将步骤3中找到的存储块所对应的状态标识区中的内容设置为“释
放”;

5、找到当前指针指向的首个为“空闲”状态的存储块,进行写操作。

6、将步骤2中最后一个内容值记录为“已使用”索引信息后面的一个索
引信息的内容设置为“已使用”;将与该索引信息其相对应的逻辑地址
指针的内容设置为步骤5所写数据的存储块的地址;

7、将步骤1中的被更新数据的地址找到相应的存储块相对应的状态标识
区中的信息内容设置为“释放”;结束。

所述的数据更新操作还包括如下步骤:将被更新数据的存储块内本次不更
新的其他文件的内容进行复制,再将该文件内容搬移到当前指针更新写入的存
储块相应位置上。

所述的为“空闲”状态的存储块的地址存储在闪存盘的一连续的存储区中。

本发明通过将构成闪存盘的闪存中的存储块内的状态区的重新划分为索引
区、逻辑地址指针区和存储块状态标识区,实现了利用各个分区来存储与之对
应的存储块数据区的操作状态信息的目的,将闪存的写入操作与擦除操作分
开,避免了写入数据耗时过长的缺点,可以预防由于系统以外瘫痪所造成的数
据损失。

此外,本发明通过存储块内的状态区的重新划分,使每个闪存单元只能在
清除状态时被写入,被写入的位将自然地保持到该位因为需要重写而将包括该
位的整个存储块被擦除之前;最后,每个存储块的写操作均因为可成功地找到
可写入的“空”存储块,而不需要先擦除它;由于每一个要写的存储块均在不
同的逻辑存储块上,空闲状态存储块按照指针指向顺序排列,写入时是一一按
次序被使用,因此没有哪个存储块可被连续地写入,使得对闪存中各个存储块
的写入操作的频率基本一致,避免了闪存中各个存储块的老化程度不均,实现
了所有的存储块都被均匀分配写入,最终延长了闪存盘的寿命。

以下结合附图和具体实施方案对本发明做进一步的详细说明:

图1为现有闪存中存储块的数据存储部分和坏块标识部分划分示意图。

图2为本发明对闪存中存储块的划分及状态信息标识的方法示意图。

图3为本发明对闪存中存储块首次写入数据后的状态示意图。

图4为本发明对闪存中存储块数据更新后的状态示意图。

图5为本发明对闪存中存储块写操作基本流程图;

图6为本发明对闪存中存储块读操作基本流程图;

图7为本发明对闪存中存储块初始化及擦除过程流程图;

图8为本发明对闪存中存储块数据更新操作流程图。

如图1-4所示,本发明闪存芯片内部的各存储块分有数据区和控制区,控
制区划分为索引区、逻辑地址指针区和状态标识区,根据索引区、逻辑地址指
针区和状态标识区所表述的信息,对闪存的各存储块的数据区进行擦除、读、
写和数据更新操作。闪存中存储块管理方法为本发明方法的基础依据。

状态标识区标识所对应存储块工作状态的状态标识位组可为相对应的存储
块(Block)的四种状态之一:“空”或“忙”或“释放”或“丢弃”。状态标
识区的状态标识位组数与数据块的数量一致。1号数据块为坏块,该数据块的
号码信息被另放入控制区不良存储信息内。

索引区中的索引位组的信息为与之相对应的存储块使用状态之一:“未用
过或已使用”。其中“未用过”用“1”表示;“已使用”用“0”表示。

逻辑地址指针区内的逻辑地址指针组信息为与之相对应的存储块的物理地
址号码。索引区中的索引位组的数量与逻辑地址指针区中的逻辑地址指针组的
数量相等。

当数据块内没有写入数据为空闲状态时,索引位组的信息为“1”,  状态
标识位组可为“空”,表示该数据块为空闲状态,逻辑地址指针组信息没有地
址指针设置,这是对应的状态标识位组为“空”,表示该数据块为空闲状态,
可写入数据;当然,该数据块号码如果被表示在不良信息管理区内,表示该数
据块为“坏的”,则不能写入数据。这一步往往是向数据块内写入数据时首先
应该进行。

参见图3,在该实施例中,2号数据块写入了数据,这是其对应的索引位
信息置为0,逻辑地址指针的地址置为该数据块的物理地址2,2号数据块的
状态被标识为“忙”。

参见图4,当对应的2号数据块有更新操作,并且更新的数据放入数据块
状态标识位组的标记为“空”(如图3所示)的3号数据块中后,2号数据
块索引位组增加一个已使用的标记“0”,对应的增加标识逻辑地址指针区内的
逻辑地址指针组信息也增加一个更新次数顺序记录的最后一个数据块逻辑地
址,故应为“3”。这时,相应的2号数据块状态标识位组的标记为“丢弃”;3
号数据块状态标识位组的标记为“忙”。在某时刻,由系统对标识为“丢弃”
的块进行擦除,擦除完毕后,将该数据块状态标识位组的标记为“释放”。因
此数据更新时只要将数据直接写入一个空的数据块中即可,而不需要先进行擦
除的操作,节省了大量的时间,提高了闪存的读写速度。标识索引状态的索引
区中的索引位组的数量与逻辑地址指针区中的逻辑地址指针组的数量相等。其
索引位组的数量与逻辑地址指针区中的逻辑地址指针组的数量应为该数据块更
新操作的次数。而状态标识区的状态标识位组的数量可与数据块的数量相等。

另外当遇到坏块时,可通过在对应的标识位组标记“坏”,将该坏块区分
出来,置为不用,而不至于影响整个闪存片的使用。

如图5所示,本发明的写操作写操作包括如下步骤:

1、找到当前指针所指向的为“空闲”状态的存储块N,将所要写的数

   据写入存储块N的数据区中;

2、再读回该存储块N的数据内容,将步骤1所写的数据与读回的该存

   储块N的数据内容进行比较;

3、如果比较结果为不一致,将当前存储块N的状态修改为“丢弃”,

   将该存储块N的号码存入“坏块”的号码管理区域内,返回步骤1;

4、如果比较结果为一致,则写入数据,将与当前存储块相对应的索引

   区中相应的状态内容设置为“已使用”;

5、将与其相对应的逻辑地址指针的内容设置为该数据存入的存储块的

   地址;

6、将当前存储块的状态修改为“忙”,结束。

参见图6,本发明读操作包括如下步骤:

1、根据给出的访问地址找到相应的存储块M,依次检测该存储块M中索

   引区各索引信息中的内容;

2、如果找到最后一个内容记录“已使用”即为“0“的索引信息,进入步

   骤3;否则返回到步骤1;

3、根据与该索引信息对应的逻辑地址指针中的地址找到该地址指示的存

   储块N,读出该存储块N内的数据内容A,

4、完成整个读的操作。

图7所示的是本发明擦除操作的方法。本发明的一个重要目的就是将擦除
操作与写操作分开,以提高整个读写的速度。因此本发明的擦除操作可为初始
化擦除和其他时间的擦除。而初始化擦除操为在该闪存盘加电时所作的第一个
操作;其他时间擦除可为读数据块内文件的同时擦除状态为“释放”数据块,
这样将改变现有技术中必须再完成了擦除操作后,才能进行写操作的缺点。

具体擦除操作步骤为:

1、依次检测闪存盘中所有或设定数目的部分存储块状态标识的状态数

   据;

2、如果该状态为“释放”,则对与存储块状态标识相对应的存储块全

   块进行擦除;否则,进入步骤5;

3、将该存储块的索引区中所有的索引信息设置为:“未用”;

4、将该存储块的逻辑地址指针区中所有的逻辑地址指针擦除;

5、如果该状态为“空闲”或“忙”或“丢弃”;

6、如果未检测完闪存盘中所有的或设定数据的部分存储块状态标识的

   状态数据,返回步骤1;否则,进入步骤7;

7、结束。

当然,擦除也可为读操作擦除或操作写擦除。而读操作擦除为在每个读操
作之前的擦除操作,具体是依据:如果存储块状态为“释放”的存储块的数量
少于一事先设置的最小的读操作擦除存储块的数量,将其与该事先设置的最小
的读操作擦除存储块的数量之间的差值数量的“丢弃”的存储块设置为被擦除
的对象,进行擦除操作。

对于写操作擦除,也为在每个写操作之前的擦除操作。如果存储块状态为
“释放”的存储块的数量少于一事先设置的最小的写操作擦除存储块的数量,
将其与该事先设置的最小的读操作擦除存储块的数量之间的差值数量的“丢
弃”的存储块设置为被擦除的对象,进行擦除操作。

另外,为避免系统意外断电,而将正在进行写操作,存储块中已经有了数
据,但是该块的状态尚未改变,因此再上电时,首先应判断指针所指向的存储
块内是否有数据。如果有数据,并检测该存储块的状态为“空闲“时,则该存
储块标记为”释放“,指针向下移动。否则指针指向不改变。

如图8所示为本发明数据更新的方法。

它包括如下步骤:

1、根据给出的被更新数据的地址找到相应的存储块,分析与之相对应

   的状态标识区中的信息内容A;

2、如果该状态标识区中的内容为“忙”,依次检测该存储块中索引区

   各索引信息中的内容,直到找到最后一个内容值记录为“已使用”

   的索引信息;

3、根据步骤2中找到的索引信息对应的逻辑地址指针的内容,找到该

   逻辑地址指针所指向的存储块M;

4、将步骤3中找到的存储块所对应的状态标识区中的内容设置为“释

   放”,即为可擦除;

5、找到当前指针指向的首个为“空闲”状态的存储块N,进行写操作。

6、将步骤2中最后一个内容值记录为“已使用”索引信息后面的一个

   索引信息的内容设置为“已使用”;将与该索引信息其相对应的逻

   辑地址指针的内容设置为步骤5所写数据的存储块的地址N;

7、将步骤1中的被更新数据的地址找到相应的存储块M相对应的状态

   标识区中的信息内容设置为“释放”;结束。

另外,当存储块中有一个以上不同的文件时,为A、B,并且一次更新的
操作只是对于一个文件A的更新,因此数据更新操作还包括如下步骤:将被更
新数据的存储块M内本次不更新的其他文件B的内容进行复制,再将该文件B
内容搬移到当前指针更新写入的存储块N相应位置上。

综上所述,本发明通过控制区的合理划分和标识记录,有效地实现了对闪
存片数据块读写信息的管理,并将数据块写入和擦除动作分别完成,大大提高
了数据读写的速度,而且还可均匀地使用闪存片个数据块,延长其使用寿命。

一种闪存芯片的读写方法.pdf_第1页
第1页 / 共20页
一种闪存芯片的读写方法.pdf_第2页
第2页 / 共20页
一种闪存芯片的读写方法.pdf_第3页
第3页 / 共20页
点击查看更多>>
资源描述

《一种闪存芯片的读写方法.pdf》由会员分享,可在线阅读,更多相关《一种闪存芯片的读写方法.pdf(20页珍藏版)》请在专利查询网上搜索。

一种闪存芯片的读写方法,闪存芯片内部的各存储块分有数据区和控制区,控制区划分为索引区、逻辑地址指针区和状态标识区,根据索引区、逻辑地址指针区和状态标识区所表述的信息,对闪存的各存储块的数据区进行擦除、读、写和数据更新操作。本发明根据存储块的状态进行擦除、读、写操作,将闪存的写入操作与擦除操作分开,提高整体的读写速度,使得对闪存中各个存储块的写入操作的频率基本一致,延长闪存盘的寿命。。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 信息存储


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1