CN101930345B - 一种基于块访问的闪存读写方法 - Google Patents

一种基于块访问的闪存读写方法 Download PDF

Info

Publication number
CN101930345B
CN101930345B CN 201010260295 CN201010260295A CN101930345B CN 101930345 B CN101930345 B CN 101930345B CN 201010260295 CN201010260295 CN 201010260295 CN 201010260295 A CN201010260295 A CN 201010260295A CN 101930345 B CN101930345 B CN 101930345B
Authority
CN
China
Prior art keywords
page
subregion
physical block
physical
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
CN 201010260295
Other languages
English (en)
Other versions
CN101930345A (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.)
CCore Technology Suzhou Co Ltd
Original Assignee
CCore Technology Suzhou 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 CCore Technology Suzhou Co Ltd filed Critical CCore Technology Suzhou Co Ltd
Priority to CN 201010260295 priority Critical patent/CN101930345B/zh
Publication of CN101930345A publication Critical patent/CN101930345A/zh
Application granted granted Critical
Publication of CN101930345B publication Critical patent/CN101930345B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

一种基于块访问的闪存读写方法,包括以下步骤:步骤一、扫描闪存各物理块,获得各物理块相应的页状态表;步骤二、获得分区物理块编号表;步骤三、根据所述分区物理块数目和相应的有效页数目获得所述各个分区的分区容量表;步骤四、根据所述分区容量表确定应用层访问的扇区号所在分区号和该分区内偏移量;步骤五、根据所述分区号内物理块的有效页数目,通过所述偏移量获得该分区的虚拟块号和虚拟页号;步骤六、根据所述虚拟块号并结合分区物理块编号表获得物理块号,根据所述虚拟页号并结合该物理块的页状态表获得有效页的物理页号。本发明把存在无效页的物理层映射成连续线性存储介质,从而最大限度的扩大存储介质有效容量。

Description

一种基于块访问的闪存读写方法
技术领域
本发明涉及一种基于块访问的闪存读写方法。
背景技术
闪存Flash作为一种存储介质,由于其较高的性价比,在存储领域得到广泛的应用。由于生产工艺的问题,Flash供应商无法保证出厂的芯片没有缺陷,这就需要使用者在应用过程中自行识别有缺陷的存储区,并做出相应的处理。由于大容量Flash是以块为最小的可擦除单元(整个Flash由若干个块组成,每个块由若干个页组成,每个页由若干个字节组成),所以一般对有缺陷的存储区也是按块来处理。
但是,这种管理方法存在缺陷。只要一个块中有一个页是坏的,这个块就作为坏块处理。当Flash中坏块较多时,容量就会明显下降。因此如何充分利用存储介质中的有效页空间,成为本领域技术人员努力的方向。
发明内容
本发明目的是提供一种基于块访问的闪存读写方法,该方法把存在无效页的物理层映射成连续线性存储介质,从而最大限度的扩大存储介质有效容量。
为达到上述目的,本发明采用的技术方案是:
一种基于块访问的闪存读写方法,包括以下步骤:
步骤一.扫描Flash闪存各物理块,获得各物理块相应的页状态表,该页状态表表示各物理块中有效页在该物理块中的分布和数目;
步骤二.所述Flash闪存分为至少一个分区,将有效页数目相等的物理块分在同一个分区,获得分区物理块编号表;
步骤三.根据所述分区的物理块数目和相应的有效页数目获得所述各个分区的分区容量表,该分区容量表表示各个分区的容量;
步骤四.根据所述分区容量表确定应用层访问的扇区号所在分区号和该分区内偏移量;
步骤五.根据所述分区号内物理块的有效页数目,通过所述偏移量获得该分区的虚拟块号和虚拟页号;
步骤六.根据所述虚拟块号并结合分区物理块编号表获得物理块号,根据所述虚拟页号并结合该物理块的页状态表获得有效页的物理页号。
上述技术方案中的有关内容解释如下:
1、上述方案中,所述虚拟块号计算方式为:偏移量整除该块的有效页数目;所述虚拟页号计算方式为:偏移量对该块有效页数取余。
2、上述方案中,所述页状态表具体为:一比特位标识一页的好坏,0代表无效页,1代表有效页。
3、上述方案中,所述各个分区的容量为:分区的物理块数目乘以该物理块内有效页数目。
由于上述技术方案运用,本发明与现有技术相比具有下列优点和效果:
本发明把下层实际存在物理无效页即坏页的Flash闪存映射成连续的线性存储介质,同时最大限度的扩大使用容量。上层应用软件可以透明地使用线性地址去读写Flash闪存,而不必关心Flash闪存上的坏块和无效页。
附图说明
附图1为闪存存储结构示意图;
附图2为本发明页状态表示意图;
附图3为本发明分区物理块编号表示意图;
附图4为本发明分区等级表;
附图5为本发明分区容量表示意图。
具体实施方式
下面结合附图及实施例对本发明作进一步描述:
实施例:一种基于块访问的闪存读写方法,包括以下步骤:
步骤一、扫描Flash闪存各物理块,获得各物理块相应的页状态表,该页状态表表示各物理块中有效页在该物理块中的分布和数目;
步骤二、所述Flash闪存分为至少一个分区,将有效页数目相等的物理块分在同一个分区,获得分区物理块编号表;
步骤三、根据所述分区的物理块数目和相应的有效页数目获得所述各个分区的分区容量表,该分区容量表表示各个分区的容量;
步骤四、根据所述分区容量表确定应用层访问的扇区号所在分区号和该分区内偏移量;
步骤五、根据所述分区号内物理块的有效页数目,通过所述偏移量获得该分区的虚拟块号和虚拟页号;
步骤六、根据所述虚拟块号并结合分区物理块编号表获得物理块号,根据所述虚拟页号并结合该物理块的页状态表获得有效页的物理页号。
所述虚拟块号计算方式为:偏移量整除该块的有效页数目;所述虚拟页号计算方式为:偏移量对该块有效页数取余。
所述页状态表具体为:一比特位标识一页的好坏,0代表无效页,1代表有效页;根据物理块内各页的好坏状态,通过一个十六进制字节标识物理块的好坏状态。
所述各个分区的容量为:分区的物理块数目乘以该物理块内有效页数目。
本实施例上述内容具体工作过程如下。
如图1所示,假设一款Flash有16个物理块,每个物理块有8个物理页,每个物理页有1个扇区。扫描该Flash得到所有物理块的页状态表,如图2所示。bit0表示page0的状态,bit1表示page1的状态,以此类推。页状态0xFF表示物理块是全好页,页状态0xF7表示物理块page3是坏页,页状态0x7F表示物理块page7是坏页,等等。根据物理块的页状态表把所有物理块分区,组成分区编号表,如图3所示。分区0包含物理块0,5,6和12;分区1包含物理块1,2,10和11;分区2包含物理块3,4,7和8。
分区3包含物理块9,13,14和15。根据各分区的物理块状态组成分区等级表,如图4所示。分区0的等级数是8,即该分区中的所有物理块都是全好页,没有坏页;分区1的等级数是7,即该分区中的所有物理块都是只有一个坏页;分区2的等级数是6,即该分区中的所有物理块都是只有两个坏页;分区3的等级数是5,即该分区中的所有物理块都是只有三个坏页。根据各分区的物理块数和等级组成分区容量表,如图5所示。
如果使用现有的坏块管理算法,该款Flash的容量只有32,因为只有4个好块。然而使用本分明,该款Flash的容量就达到了104,是一般坏块管理算法的3倍多。
当要读取扇区号73的内容时,首先根据分区容量表确定对应的分区号是2,分区内偏移:73-32-28=13;由于分区2的等级是6,所以其虚拟块号:13/6=2,虚拟页号:13%6=1;查找分区2的物理块编号表,得到该分区虚拟块号2对应物理块号7;由于物理块号7的页状态表是0xF6,所以虚拟页号1对应物理页2。这样就得到扇区号73对应的物理地址是物理块号7的物理页2,读取该物理页就得到扇区号73的内容。
上述实施例只为说明本发明的技术构思及特点,其目的在于让熟悉此项技术的人士能够了解本发明的内容并据以实施,并不能以此限制本发明的保护范围。凡根据本发明精神实质所作的等效变化或修饰,都应涵盖在本发明的保护范围之内。

Claims (4)

1.一种基于块访问的闪存读写方法,其特征在于:包括以下步骤:
步骤一.扫描闪存各物理块,获得各物理块相应的页状态表,该页状态表表示各物理块中有效页在该物理块中的分布和数目,所述页状态表具体为:一比特位标识一页的好坏,0代表无效页,1代表有效页;
步骤二.所述闪存分为至少一个分区,将有效页数目相等的物理块分在同一个分区.获得分区物理块编号表;
步骤三.根据所述分区的物理块数目和相应的有效页数目获得所述各个分区的分区容量表,该分区容量表表示各个分区的容量;
步骤四.根据所述分区容量表确定应用层访问的扇区号所在分区号和该分区内偏移量;
步骤五.根据所述分区号内物理块的有效页数目,通过所述偏移量获得该分区的虚拟块号和虚拟页号;
步骤六.根据所述虚拟块号并结合分区物理块编号表获得应用层访问的物理块号,根据所述虚拟页号并结合该物理块的页状态表获得应用层访问的有效页的物理页号。
2.根据权利要求1所述的方法,其特征在于:所述虚拟块号计算方式为:偏移量整除该块的有效页数目;所述虚拟页号计算方式为:偏移量对该块有效页数取余。
3.根据权利要求1所述的方法,其特征在于:所述页状态表具体为:一比特位标识一页的好坏,0代表无效页,1代表有效页。
4.根据权利要求1所述的方法,其特征在于:所述各个分区的容量为:分区的物理块数目乘以该物理块内有效页数目。
CN 201010260295 2010-08-24 2010-08-24 一种基于块访问的闪存读写方法 Active CN101930345B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN 201010260295 CN101930345B (zh) 2010-08-24 2010-08-24 一种基于块访问的闪存读写方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN 201010260295 CN101930345B (zh) 2010-08-24 2010-08-24 一种基于块访问的闪存读写方法

Publications (2)

Publication Number Publication Date
CN101930345A CN101930345A (zh) 2010-12-29
CN101930345B true CN101930345B (zh) 2012-05-02

Family

ID=43369545

Family Applications (1)

Application Number Title Priority Date Filing Date
CN 201010260295 Active CN101930345B (zh) 2010-08-24 2010-08-24 一种基于块访问的闪存读写方法

Country Status (1)

Country Link
CN (1) CN101930345B (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102147771B (zh) * 2011-04-08 2013-04-10 深圳市江波龙电子有限公司 查找闪存设备中固件程序存放位置的方法
CN103309619A (zh) * 2012-03-16 2013-09-18 国民技术股份有限公司 一种闪存数据存储方法
CN103049387B (zh) * 2012-12-06 2015-12-09 深圳市江波龙电子有限公司 一种分页存储器件的压缩管理方法及装置
US9442840B2 (en) * 2012-12-19 2016-09-13 Qualcomm Incorporated Virtual boundary codes in a data image of a read-write memory device
CN103577336B (zh) * 2013-10-23 2017-03-08 华为技术有限公司 一种存储数据处理方法及装置
ES2642218T3 (es) * 2014-06-27 2017-11-15 Huawei Technologies Co., Ltd. Controlador, aparato de memoria flash y procedimiento para escribir datos en aparato de memoria flash
TWI658359B (zh) * 2017-12-27 2019-05-01 群聯電子股份有限公司 資料寫入方法、有效資料識別方法及記憶體儲存裝置
CN112764670A (zh) * 2019-11-04 2021-05-07 深圳宏芯宇电子股份有限公司 闪存设备及闪存管理方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1690983A (zh) * 2004-04-30 2005-11-02 联发科技股份有限公司 可循序写入数据至闪存中的系统及其方法
CN101339537A (zh) * 2008-08-14 2009-01-07 四川登巅微电子有限公司 一种以页为单位的nand闪存管理方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI467369B (zh) * 2008-10-01 2015-01-01 A Data Technology Co Ltd 混合密度記憶體系統及其控制方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1690983A (zh) * 2004-04-30 2005-11-02 联发科技股份有限公司 可循序写入数据至闪存中的系统及其方法
CN101339537A (zh) * 2008-08-14 2009-01-07 四川登巅微电子有限公司 一种以页为单位的nand闪存管理方法

Also Published As

Publication number Publication date
CN101930345A (zh) 2010-12-29

Similar Documents

Publication Publication Date Title
CN101930345B (zh) 一种基于块访问的闪存读写方法
EP2661692B1 (en) Memory address translation
CN105205009B (zh) 一种基于大容量固态存储的地址映射方法及装置
CN101645043B (zh) 写数据的方法、读数据的方法及存储设备
US8516219B2 (en) Index cache tree
US8335907B2 (en) Micro-update architecture for address tables
CN105830022B (zh) 访问文件的方法和装置
CN103942159A (zh) 一种基于混合存储设备的数据读写方法与装置
CA2758235A1 (en) Device and method for storage, retrieval, relocation, insertion or removal of data in storage units
CN103793331B (zh) 一种物理内存管理方法及装置
CN102609358B (zh) 聚集静态数据的方法及其固态硬盘
KR101400506B1 (ko) 비휘발성 메모리 제어기 및 그 제어 방법
KR20150142583A (ko) 플래시 저장 장치의 어드레스 매핑 테이블 정리 방법
CN103034586B (zh) 通过闪存转换层识别上层应用的方法及其系统
CN101944065B (zh) 一种基于扇区的闪存坏块屏蔽方法
CN105205008B (zh) 降低混合映射算法中日志块映射表内存资源占用的方法
CN102999441A (zh) 一种细粒度内存访问的方法
US9311234B2 (en) Method for reliably addressing a large flash memory and flash memory
CN103377141A (zh) 高速存储区的访问方法以及访问装置
CN108280028B (zh) 一种基于动态分配的智能电能表负荷记录实现的方法
CN104778212A (zh) 地图数据生成方法和装置、地图数据读取方法和装置
CN111143313B (zh) 一种提高混合映射算法的日志块读写性能的方法
CN107632944A (zh) 一种读取数据的方法及装置
TW201830244A (zh) 快閃記憶體以及其管理方法
CN103984647B (zh) 存储表替换方法

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
CP01 Change in the name or title of a patent holder

Address after: 215011 Zhuyuan Road 209, Suzhou High-tech Zone, Jiangsu Province 2301, Building 3, Suzhou Pioneer Park

Patentee after: Suzhou Guoxin Technology Co., Ltd.

Address before: 215011 Zhuyuan Road 209, Suzhou High-tech Zone, Jiangsu Province 2301, Building 3, Suzhou Pioneer Park

Patentee before: C*Core Technology (Suzhou) Co., Ltd.

CP01 Change in the name or title of a patent holder