CN101930345A - 一种基于块访问的闪存读写方法 - Google Patents
一种基于块访问的闪存读写方法 Download PDFInfo
- Publication number
- CN101930345A CN101930345A CN 201010260295 CN201010260295A CN101930345A CN 101930345 A CN101930345 A CN 101930345A CN 201010260295 CN201010260295 CN 201010260295 CN 201010260295 A CN201010260295 A CN 201010260295A CN 101930345 A CN101930345 A CN 101930345A
- Authority
- CN
- China
- Prior art keywords
- subregion
- page
- 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.)
- Granted
Links
Images
Landscapes
- Techniques For Improving Reliability Of Storages (AREA)
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.一种基于块访问的闪存读写方法,其特征在于:包括以下步骤:
步骤一.扫描闪存各物理块,获得各物理块相应的页状态表,该页状态表表示各物理块中有效页在该物理块中的分布和数目;
步骤二.所述闪存分为至少一个分区,将有效页数目相等的物理块分在同一个分区.获得分区物理块编号表;
步骤三.根据所述分区的物理块数目和相应的有效页数目获得所述各个分区的分区容量表,该分区容量表表示各个分区的容量;
步骤四.根据所述分区容量表确定应用层访问的扇区号所在分区号和该分区内偏移量;
步骤五.根据所述分区号内物理块的有效页数目,通过所述偏移量获得该分区的虚拟块号和虚拟页号;
步骤六.根据所述虚拟块号并结合分区物理块编号表获得应用层访问的物理块号,根据所述虚拟页号并结合该物理块的页状态表获得应用层访问的有效页的物理页号。
2.根据权利要求1所述的方法,其特征在于:所述虚拟块号计算方式为:偏移量整除该块的有效页数目;所述虚拟页号计算方式为:偏移量对该块有效页数取余。
3.根据权利要求1所述的方法,其特征在于:所述页状态表具体为:一比特位标识一页的好坏,0代表无效页,1代表有效页。
4.根据权利要求1所述的方法,其特征在于:所述各个分区的容量为:分区的物理块数目乘以该物理块内有效页数目。
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 true CN101930345A (zh) | 2010-12-29 |
CN101930345B 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) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102147771A (zh) * | 2011-04-08 | 2011-08-10 | 深圳市江波龙电子有限公司 | 查找闪存设备中固件程序存放位置的方法 |
CN103049387A (zh) * | 2012-12-06 | 2013-04-17 | 深圳市江波龙电子有限公司 | 一种分页存储器件的压缩管理方法及装置 |
CN103309619A (zh) * | 2012-03-16 | 2013-09-18 | 国民技术股份有限公司 | 一种闪存数据存储方法 |
CN103577336A (zh) * | 2013-10-23 | 2014-02-12 | 华为技术有限公司 | 一种存储数据处理方法及装置 |
CN104885052A (zh) * | 2012-12-19 | 2015-09-02 | 高通股份有限公司 | 读写存储设备的数据映像中的虚拟边界码 |
WO2015196464A1 (zh) * | 2014-06-27 | 2015-12-30 | 华为技术有限公司 | 一种控制器、闪存装置和将数据写入闪存装置的方法 |
TWI658359B (zh) * | 2017-12-27 | 2019-05-01 | 群聯電子股份有限公司 | 資料寫入方法、有效資料識別方法及記憶體儲存裝置 |
CN112764670A (zh) * | 2019-11-04 | 2021-05-07 | 深圳宏芯宇电子股份有限公司 | 闪存设备及闪存管理方法 |
Citations (3)
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闪存管理方法 |
US20100082883A1 (en) * | 2008-10-01 | 2010-04-01 | Ming-Dar Chen | Hybrid density memory system and control method thereof |
-
2010
- 2010-08-24 CN CN 201010260295 patent/CN101930345B/zh active Active
Patent Citations (3)
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闪存管理方法 |
US20100082883A1 (en) * | 2008-10-01 | 2010-04-01 | Ming-Dar Chen | Hybrid density memory system and control method thereof |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102147771A (zh) * | 2011-04-08 | 2011-08-10 | 深圳市江波龙电子有限公司 | 查找闪存设备中固件程序存放位置的方法 |
CN102147771B (zh) * | 2011-04-08 | 2013-04-10 | 深圳市江波龙电子有限公司 | 查找闪存设备中固件程序存放位置的方法 |
CN103309619A (zh) * | 2012-03-16 | 2013-09-18 | 国民技术股份有限公司 | 一种闪存数据存储方法 |
CN103049387A (zh) * | 2012-12-06 | 2013-04-17 | 深圳市江波龙电子有限公司 | 一种分页存储器件的压缩管理方法及装置 |
CN103049387B (zh) * | 2012-12-06 | 2015-12-09 | 深圳市江波龙电子有限公司 | 一种分页存储器件的压缩管理方法及装置 |
CN104885052A (zh) * | 2012-12-19 | 2015-09-02 | 高通股份有限公司 | 读写存储设备的数据映像中的虚拟边界码 |
CN104885052B (zh) * | 2012-12-19 | 2017-12-05 | 高通股份有限公司 | 读写存储设备的数据映像中的虚拟边界码 |
CN103577336A (zh) * | 2013-10-23 | 2014-02-12 | 华为技术有限公司 | 一种存储数据处理方法及装置 |
CN103577336B (zh) * | 2013-10-23 | 2017-03-08 | 华为技术有限公司 | 一种存储数据处理方法及装置 |
WO2015196464A1 (zh) * | 2014-06-27 | 2015-12-30 | 华为技术有限公司 | 一种控制器、闪存装置和将数据写入闪存装置的方法 |
TWI658359B (zh) * | 2017-12-27 | 2019-05-01 | 群聯電子股份有限公司 | 資料寫入方法、有效資料識別方法及記憶體儲存裝置 |
CN112764670A (zh) * | 2019-11-04 | 2021-05-07 | 深圳宏芯宇电子股份有限公司 | 闪存设备及闪存管理方法 |
Also Published As
Publication number | Publication date |
---|---|
CN101930345B (zh) | 2012-05-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101930345B (zh) | 一种基于块访问的闪存读写方法 | |
EP2661692B1 (en) | Memory address translation | |
CN105830022B (zh) | 访问文件的方法和装置 | |
CN101645043B (zh) | 写数据的方法、读数据的方法及存储设备 | |
US8516219B2 (en) | Index cache tree | |
CN105205009B (zh) | 一种基于大容量固态存储的地址映射方法及装置 | |
CN105874440B (zh) | 用于对存储器进行碎片整理的系统和方法 | |
CN103942159A (zh) | 一种基于混合存储设备的数据读写方法与装置 | |
CN103176916A (zh) | 闪存及闪存的地址转换方法 | |
CN101740110A (zh) | 一种Nand Flash擦除均衡的方法及装置 | |
KR102430198B1 (ko) | 플래시 저장 장치의 어드레스 매핑 테이블 정리 방법 | |
CN106354658B (zh) | 一种降低混合映射算法中映射表内存资源占用的方法 | |
CA2758235A1 (en) | Device and method for storage, retrieval, relocation, insertion or removal of data in storage units | |
KR101400506B1 (ko) | 비휘발성 메모리 제어기 및 그 제어 방법 | |
CN105745628A (zh) | 一种将数据写入闪存装置的方法、闪存装置和存储系统 | |
CN103793331B (zh) | 一种物理内存管理方法及装置 | |
CN103034586B (zh) | 通过闪存转换层识别上层应用的方法及其系统 | |
CN105205008B (zh) | 降低混合映射算法中日志块映射表内存资源占用的方法 | |
CN101944065B (zh) | 一种基于扇区的闪存坏块屏蔽方法 | |
CN102999441A (zh) | 一种细粒度内存访问的方法 | |
TW200715117A (en) | Method for assigning virtual import/export element addresses | |
CN102681792A (zh) | 一种固态盘内存分区方法 | |
CN106528453B (zh) | 基于复合尺度页的页表分区管理装置和方法 | |
CN103020077A (zh) | 一种电力系统实时数据库内存管理方法 | |
US9311234B2 (en) | Method for reliably addressing a large flash memory and flash memory |
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 |