CN101727295B - 一种基于虚拟块闪存地址映射的数据写入及读出方法 - Google Patents

一种基于虚拟块闪存地址映射的数据写入及读出方法 Download PDF

Info

Publication number
CN101727295B
CN101727295B CN2008102320634A CN200810232063A CN101727295B CN 101727295 B CN101727295 B CN 101727295B CN 2008102320634 A CN2008102320634 A CN 2008102320634A CN 200810232063 A CN200810232063 A CN 200810232063A CN 101727295 B CN101727295 B CN 101727295B
Authority
CN
China
Prior art keywords
block
address
dummy block
data
physical
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.)
Expired - Fee Related
Application number
CN2008102320634A
Other languages
English (en)
Other versions
CN101727295A (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.)
Xi'an Keyway Technology Co.,Ltd.
Original Assignee
Xi'an Qivi Test & Control Technology 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 Xi'an Qivi Test & Control Technology Co Ltd filed Critical Xi'an Qivi Test & Control Technology Co Ltd
Priority to CN2008102320634A priority Critical patent/CN101727295B/zh
Publication of CN101727295A publication Critical patent/CN101727295A/zh
Application granted granted Critical
Publication of CN101727295B publication Critical patent/CN101727295B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Memory System (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

一种基于虚拟块闪存地址映射的数据写入及读出方法,其特征在于,该方法包括以下步骤:构建虚拟块、构建一个初始地址映射表、写入数据、读出数据。本发明解决了没有利用通道内的并行优势来提高速度的技术问题。具有在用户数据的逻辑地址连续的情况下能将数据映射到多个通道中的多个芯片中,使通道的并行操作和通道内的并行操作同时进行,提高读写速度的优点。同时在物理块部分空闲的情况下还能够用来构成虚拟块,提高了物理块的利用率,延长闪存芯片的寿命。

Description

一种基于虚拟块闪存地址映射的数据写入及读出方法
技术领域
本发明涉及一种闪存控制器的数据写入及读出方法,具体涉及一种基于虚拟块闪存地址映射的闪存控制器数据写入及读出方法。
背景技术
SSD是英文solid state disk的缩写,即固态盘,它是一种把Nand flash芯片作为存储介质的存储器。它具有:数据存取速度快、经久耐用防震抗摔、工作时非常安静没有任何噪音产生等优点。
固态盘的核心部件是闪存控制器,它的功能就是控制和管理闪存芯片以及对外提供一个标准的接口。为了提高固体盘的速度,闪存控制器都是同时控制多个闪存芯片即多个通道,每个通道可以有多个芯片,每个通道是可以并行工作的,这样就提高了固体盘的读写速度。
目前公知的利用多通道进行并行读写的方法是一个基于逻辑条带的管理控制方法,这种方法是在每个通道中划分部分存储空间构成一个逻辑条带,用户在此逻辑条带上进行读写操作,这样就把逻辑上连续的数据分配到每个通道中。此方法的缺点是没有利用通道内的并行优势来提高速度,以及在逻辑条带的组织上不够灵活,使在对块进行回收和在回收前对块的利用率不高。
发明内容
本发明的目的在于提供一种基于虚拟块闪存地址映射的数据写入及读出方法,其解决了背景技术中没有利用通道内的并行优势来提高速度的技术问题。
本发明的技术解决方案是:
一种基于虚拟块闪存地址映射的数据写入及读出方法,其特殊之处在于,该方法包括以下步骤:
1)构建虚拟块
虚拟块的构成是由每个通道内每个芯片内的物理块的一部分构成,具体是将每个物理块等分成N块,然后将每个通道内每个芯片内取一个1/n个物理块来构成一个虚拟块;每个虚拟块由一个数据结构组成,该数据结构里记录了该虚拟块由那些物理块的那部分构成;
2)构建一个初始地址映射表
所述初始地址映射表包括逻辑地址页号和物理地址页号;
所述逻辑地址页号是由上位计算机给出一个逻辑地址,通过该逻辑地址对虚拟块包含扇区数求模得到虚拟块号的索引,用虚拟块号的索引作为下标在虚拟块表里找到相应的虚拟块地址,该虚拟块地址以页为单位的映射到一个虚拟块上的逻辑页上,得到一个逻辑地址页号;
所述物理地址页号是每个虚拟块地址以页为单位的映射,每个虚拟块由一个数据结构组成,该数据结构以页为单位的映射得到一个物理地址页号;
3)写入数据
3.1)计算机先写扇区的逻辑地址,通过该逻辑地址对虚拟块包含扇区数求模得到虚拟块号的索引,用虚拟块号的索引作为下标在虚拟块表里找到相应的虚拟块地址,得到逻辑块号在初始地址映射表中找到虚拟块号,再在虚拟块中找到一个空闲的页;
3.2)用上述逻辑地址对虚拟块包含扇区数求余得到该逻辑地址在虚拟块中的偏移地址,再用该偏移地址对通道数求模得到通道号,再用该偏移地址对一个页包含的扇区数求余得到此通道号里对应物理块的扇区偏移量,由此扇区偏移量得到物理地址,得到更新的逻辑地址页号对应的物理地址页号;
3.3)将更新后的逻辑地址页号和物理地址页号存入初始地址映射表中,完成初始地址映射表的更新;
3.4)通过更新后的初始地址映射表中物理地址页号对应的物理地址把数据写入该页,完成数据的写入;
4)读出数据
4.1)计算机先读扇区逻辑地址LBA,在地址映射表里搜索扇区逻辑地址LBA对应的逻辑页号;
4.2)如果找到,则取得该逻辑页号对应的物理地址通过驱动控制器读取扇区数据;
4.3)如果没有找到,则通过LBA计算出逻辑块号在更新后的地址映射表中找到虚拟块号,通过虚拟块数据结构里的物理块部分信息计算出物理地址页号,通过此物理地址页号对应的物理地址读出该页的数据,完成数据的读出。
上述虚拟块具体的构建过程是:
1)初始化nand flash芯片控制器,获取每个芯片的ID信息;
2)通过ID信息扫描每个芯片,并标记出坏块;
3)在内存中建立一个初始的块映射数组、虚拟块数组、物理块信息数组;并用初始值填充;
4)将内存中的这些信息保存到nand flash中的一个特定位置,该特定位置用户根据自身需要自定义,完成虚拟块的构建。
上述虚拟块具体的构建过程还可以包括一个优化记忆过程,该优化记忆过程具体是:
1)在进行读写操作后更新内存中的数据结构,并在断电前保存到nand flash中一个特定位置,该特定位置用户根据自身需要自定义;
2)初始化nand flash控制器;从nand flash中的特定位置读出管理信息到内存中;
3)由空闲内存数量确定扫描数量,再扫描的有效数据页,将映射关系保存到内存中的地址映射表中。
4)在进行读写操作后更新内存中的数据结构,在断电前保存到nand flash中的一个特定位置,该特定位置用户根据自身需要自定义;
上述用户自定义的方式具体是将需要保存到nand flash的信息放在某个芯片的第一个物理块中;如果一个块不能放下,可将其放在其他芯片的第一个物理块中,因为大多数芯片厂商保证每个芯片的第一个物理块是完好的。
本发明的优点在于:在用户数据的逻辑地址连续的情况下能将数据映射到多个通道中的多个芯片中,使通道的并行操作和通道内的并行操作同时进行,提高读写速度。同时在物理块部分空闲的情况下还能够用来构成虚拟块,提高了物理块的利用率,延长闪存芯片的寿命。
附图说明
图1为本发明虚拟块的构建结构示意图;
图2为本发明数据读出流程图;
图3为本发明数据写入流程图。
具体实施方式
参见图1、图2及图3,一种基于虚拟块闪存地址映射的数据写入及读出方法,该方法包括以下步骤:
1)构建虚拟块
虚拟块的构成是由每个通道内每个芯片内的物理块的一部分构成,具体是将每个物理块等分成N块,然后将每个通道内每个芯片内取一个1/n个物理块来构成一个虚拟块;每个虚拟块由一个数据结构组成,该数据结构里记录了该虚拟块由那些物理块的那部分构成;
2)构建一个初始地址映射表
所述初始地址映射表包括逻辑地址页号和物理地址页号;
所述逻辑地址页号是由上位计算机给出一个逻辑地址,通过该逻辑地址对虚拟块包含扇区数求模得到虚拟块号的索引,用虚拟块号的索引作为下标在虚拟块表里找到相应的虚拟块地址,该虚拟块地址以页为单位的映射到一个虚拟块上的逻辑页上,得到一个逻辑地址页号;
所述物理地址页号是每个虚拟块地址以页为单位的映射,每个虚拟块由一个数据结构组成,该数据结构以页为单位的映射得到一个物理地址页号;
3)写入数据
3.1)计算机先写扇区的逻辑地址,通过该逻辑地址对虚拟块包含扇区数求模得到虚拟块号的索引,用虚拟块号的索引作为下标在虚拟块表里找到相应的虚拟块地址,得到逻辑块号在初始地址映射表中找到虚拟块号,再在虚拟块中找到一个空闲的页;
3.2)用上述逻辑地址对虚拟块包含扇区数求余得到该逻辑地址在虚拟块中的偏移地址,再用该偏移地址对通道数求模得到通道号,再用该偏移地址对一个页包含的扇区数求余得到此通道号里对应物理块的扇区偏移量,由此扇区偏移量得到物理地址,得到更新的逻辑地址页号对应的物理地址页号;
3.3)将更新后的逻辑地址页号和物理地址页号存入初始地址映射表中,完成初始地址映射表的更新;
3.4)通过更新后的初始地址映射表中物理地址页号对应的物理地址把数据写入该页,完成数据的写入;
4)读出数据
4.1)计算机先读扇区逻辑地址LBA,在地址映射表里搜索扇区逻辑地址LBA对应的逻辑页号;
4.2)如果找到,则取得该逻辑页号对应的物理地址通过驱动控制器读取扇区数据;
4.3)如果没有找到,则通过LBA计算出逻辑块号在更新后的地址映射表中找到虚拟块号,通过虚拟块数据结构里的物理块部分信息计算出物理地址页号,通过此物理地址页号对应的物理地址读出该页的数据,完成数据的读出。
其中虚拟块具体的构建过程是:
1)初始化nand flash芯片控制器,获取每个芯片的ID信息;
2)通过ID信息扫描每个芯片,并标记出坏块;
3)在内存中建立一个初始的块映射数组、虚拟块数组、物理块信息数组;并用初始值填充;
4)将内存中的这些信息保存到nand flash中的一个特定位置,该特定位置用户根据自身需要自定义,完成虚拟块的构建。
虚拟块具体的构建过程最好还可以包括一个优化记忆过程提高读出数据的速度,该优化记忆过程具体是:
1)在进行读写操作后更新内存中的数据结构,并在断电前保存到nand flash中一个特定位置,该特定位置用户根据自身需要自定义;
2)初始化nand flash控制器;从nand flash中的特定位置读出管理信息到内存中;
3)由空闲内存数量确定扫描数量,再扫描的有效数据页,将映射关系保存到内存中的地址映射表中。
4)在进行读写操作后更新内存中的数据结构,在断电前保存到nand flash中的一个特定位置,该特定位置用户根据自身需要自定义。
其中户自定义的方式具体是将需要保存到nand flash的信息放在某个芯片的第一个物理块中;如果一个块不能放下,可将其放在其他芯片的第一个物理块中,因为大多数芯片厂商保证每个芯片的第一个物理块是完好的。
本方案是以虚拟块的设计为基础来进行的。虚拟块的构成是由每个通道内每个芯片内的物理块的一部分构成,即将每个物理块等分成N块,然后将每个通道内每个芯片内取一个1/n个物理块来够成一个虚拟块。每个虚拟块由一个数据结构组成。结构里记录了该虚拟块由那些物理块的那部分构成。以此来进行从虚拟块上的地址映射到物理块上的地址。而构成虚拟块的物理分块可以是任意通道和任意芯片的内的物理分块。这样就可以在有效的利用所有的空闲物理分块。
本方案在虚拟块上的地址映射是以页为单位的,每一个逻辑地址都映射到一个虚拟块上的逻辑页上,在此方案中除了通过块的方式进行地址映射,还建立了一种快速的地址映射表。它是将逻辑页号和物理页地址对应起来的一个地址映射表,通过它大大加快在读操作时的地址映射速度。通过将系统内存适当的加大能够扩大该地址映射表,以至能够存放更多的从逻辑到物理的映射关系来加快读操作地址的地址映射。这些地址的映射关系通过在进行写操作的时候将其保存到地址映射表中。

Claims (4)

1.一种基于虚拟块闪存地址映射的数据写入及读出方法,其特征在于,该方法包括以下步骤:
1)构建虚拟块
虚拟块的构成是由每个通道内每个芯片内的物理块的一部分构成,具体是将每个物理块等分成N块,然后将每个通道内每个芯片内取一个1/n个物理块来构成一个虚拟块;每个虚拟块由一个数据结构组成,该数据结构里记录了该虚拟块由哪些物理块的那部分构成;
2)构建一个初始地址映射表
所述初始地址映射表包括逻辑地址页号和物理地址页号;
所述逻辑地址页号是由计算机给出一个逻辑地址,通过该逻辑地址对虚拟块包含扇区数求模得到虚拟块号的索引,用虚拟块号的索引作为下标在虚拟块表里找到相应的虚拟块地址,该虚拟块地址以页为单位映射到一个虚拟块上的逻辑页上,得到一个逻辑地址页号;
所述物理地址页号是每个虚拟块地址以页为单位的映射,每个虚拟块由一个数据结构组成,该数据结构以页为单位映射得到一个物理地址页号;
3)写入数据
3.1)计算机先写扇区的逻辑地址,通过该逻辑地址对虚拟块包含扇区数求模得到虚拟块号的索引,用虚拟块号的索引作为下标在虚拟块表里找到相应的虚拟块地址,得到逻辑块号在初始地址映射表中找到虚拟块号,再在虚拟块中找到一个空闲的页;
3.2)用上述逻辑地址对虚拟块包含扇区数求余得到该逻辑地址在虚拟块中的偏移地址,再用该偏移地址对通道数求模得到通道号,再用该偏移地址对一个页包含的扇区数求余得到此通道号里对应物理块的扇区偏移量,由此扇区偏移量得到物理地址,得到更新的逻辑地址页号对应的物理地址页号;
3.3)将更新后的逻辑地址页号和物理地址页号存入初始地址映射表中,完成初始地址映射表的更新;
3.4)通过更新后的初始地址映射表中物理地址页号对应的物理地址把数据 写入该页,完成数据的写入;
4)读出数据
4.1)计算机先读扇区逻辑地址LBA,在地址映射表里搜索扇区逻辑地址LBA对应的逻辑页号;
4.2)如果找到,则取得该逻辑页号对应的物理地址通过驱动控制器读取扇区数据;
4.3)如果没有找到,则通过LBA计算出逻辑块号在更新后的地址映射表中找到虚拟块号,通过虚拟块数据结构里的物理块部分信息计算出物理地址页号,通过此物理地址页号对应的物理地址读出该页的数据,完成数据的读出。
2.根据权利要求1所述基于虚拟块闪存地址映射的数据读写方法,其特征在于,所述虚拟块具体的构建过程是:
1)首次初始化nand flash芯片控制器,获取每个芯片的ID信息;
2)通过ID信息扫描每个芯片,并标记出坏块;
3)在内存中建立一个初始的块映射数组、虚拟块数组、物理块信息数组;并用初始值填充;
4)将内存中的这些信息保存到nand flash中的一个特定位置,该特定位置用户根据自身需要自定义,完成虚拟块的构建。
3.根据权利要求2所述基于虚拟块闪存地址映射的数据读写方法,其特征在于,所述虚拟块具体的构建过程还包括一个优化记忆过程,该优化记忆过程具体是:
1)再次初始化nand flash芯片控制器;从nand flash中的特定位置读出管理信息到内存中;
2)由空闲内存数量确定扫描数量,再扫描的有效数据页,将映射关系保存到内存中的地址映射表中;
3)在进行读写操作后更新内存中的数据结构,在断电前保存到nand flash中的一个特定位置,该特定位置用户根据自身需要自定义。
4.根据权利要求2或3所述基于虚拟块闪存地址映射的数据读写方法,其特征在于:所述用户自定义的方式具体是将需要保存到nand flash的信息放在某个芯片的第一个物理块中;如果一个块不能放下,可将其放在其他芯片的第一个物理块中。 
CN2008102320634A 2008-10-31 2008-10-31 一种基于虚拟块闪存地址映射的数据写入及读出方法 Expired - Fee Related CN101727295B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2008102320634A CN101727295B (zh) 2008-10-31 2008-10-31 一种基于虚拟块闪存地址映射的数据写入及读出方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2008102320634A CN101727295B (zh) 2008-10-31 2008-10-31 一种基于虚拟块闪存地址映射的数据写入及读出方法

Publications (2)

Publication Number Publication Date
CN101727295A CN101727295A (zh) 2010-06-09
CN101727295B true CN101727295B (zh) 2012-01-04

Family

ID=42448238

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2008102320634A Expired - Fee Related CN101727295B (zh) 2008-10-31 2008-10-31 一种基于虚拟块闪存地址映射的数据写入及读出方法

Country Status (1)

Country Link
CN (1) CN101727295B (zh)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102479157B (zh) * 2010-11-22 2015-05-27 慧荣科技股份有限公司 用来进行区块管理的方法、记忆装置及其控制器
CN102681822B (zh) * 2011-03-17 2016-06-15 中兴通讯股份有限公司 一种处理器地址缓冲管理的实现装置及方法
CN103257831B (zh) 2012-02-20 2016-12-07 深圳市腾讯计算机系统有限公司 存储器的读写控制方法及对应的存储器
CN104699414B (zh) * 2013-12-09 2018-02-13 华为技术有限公司 一种数据读写方法及存储设备
CN105260320B (zh) * 2015-10-12 2020-06-16 珠海格力电器股份有限公司 用于flash存储器的数据处理方法和装置
CN105159843B (zh) * 2015-10-19 2018-07-31 深圳芯邦科技股份有限公司 一种基于超级块的多通道管理方法与系统
TWI570559B (zh) * 2015-12-28 2017-02-11 點序科技股份有限公司 快閃記憶體及其存取方法
CN108255414B (zh) * 2017-04-14 2020-04-03 新华三信息技术有限公司 固态硬盘访问方法及装置
CN107273304A (zh) * 2017-05-24 2017-10-20 记忆科技(深圳)有限公司 一种提高固态硬盘顺序读性能的方法及固态硬盘
CN107861888B (zh) * 2017-11-08 2020-03-24 郑州云海信息技术有限公司 Fpga卡用ddr的方法、系统、装置及可读存储介质
CN107797940B (zh) * 2017-11-21 2021-02-23 四川巧夺天工信息安全智能设备有限公司 一种针对无法访问东芝硬盘数据区的恢复方法
CN108021512A (zh) * 2017-11-22 2018-05-11 深圳忆联信息系统有限公司 一种固态硬盘映射管理方法及固态硬盘
CN108089993A (zh) * 2017-12-29 2018-05-29 苏州大学 多层式储存格nand闪存、关键数据存储方法及垃圾回收方法
CN109445697A (zh) * 2018-10-22 2019-03-08 郑州云海信息技术有限公司 一种组块方法及装置
CN113419675B (zh) * 2021-06-11 2023-03-03 联芸科技(杭州)股份有限公司 用于存储器的写操作方法及读操作方法
CN114398010A (zh) * 2022-01-14 2022-04-26 深圳宏芯宇电子股份有限公司 数据读写方法、存储器存储装置及存储器控制器
CN114415972B (zh) * 2022-03-28 2022-07-15 北京得瑞领新科技有限公司 Ssd的数据处理方法、装置、存储介质及ssd设备
CN115858407B (zh) * 2023-02-16 2023-05-16 浪潮电子信息产业股份有限公司 一种数据存储方法、装置、设备、可读存储介质及服务器

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1664791A (zh) * 2004-03-05 2005-09-07 中国科学院计算技术研究所 一种虚拟存储模型及其方法
CN1932778A (zh) * 2006-07-23 2007-03-21 海信集团有限公司 一种对nand flash存储器进行虚拟空间管理的方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1664791A (zh) * 2004-03-05 2005-09-07 中国科学院计算技术研究所 一种虚拟存储模型及其方法
CN1932778A (zh) * 2006-07-23 2007-03-21 海信集团有限公司 一种对nand flash存储器进行虚拟空间管理的方法

Also Published As

Publication number Publication date
CN101727295A (zh) 2010-06-09

Similar Documents

Publication Publication Date Title
CN101727295B (zh) 一种基于虚拟块闪存地址映射的数据写入及读出方法
JP5580311B2 (ja) 多性能モードメモリシステム
US8762627B2 (en) Memory logical defragmentation during garbage collection
CN108121503B (zh) 一种NandFlash地址映射及块管理方法
US8626987B2 (en) Flash memory system and defragmentation method
US9753847B2 (en) Non-volatile semiconductor memory segregating sequential, random, and system data to reduce garbage collection for page based mapping
US8239639B2 (en) Method and apparatus for providing data type and host file information to a mass storage system
CN102841851B (zh) 闪存管理方法和闪存设备
US20140129758A1 (en) Wear leveling in flash memory devices with trim commands
CN106469122B (zh) 有效数据合并方法、存储器控制器与存储器储存装置
TWI434175B (zh) 用來進行區塊管理之方法以及記憶裝置及控制器
US20110022779A1 (en) Skip Operations for Solid State Disks
US11513949B2 (en) Storage device, and control method and recording medium thereof
CN103270500A (zh) 事务日志恢复
JP2012515954A (ja) 論理アドレスオフセット
KR100703807B1 (ko) 블록 방식의 메모리에서 데이터의 변경 유형에 따라 블록을관리하는 방법 및 장치
CN101556555B (zh) 用于闪存的区块管理方法、其控制器与储存系统
CN106557432B (zh) 缓冲存储器管理方法、存储器控制电路单元及存储装置
CN101625897B (zh) 用于快闪存储器的数据写入方法、储存系统与控制器
KR101403922B1 (ko) 접근 빈도에 따라 데이터를 할당하는 저장장치 및 저장방법
US20090172269A1 (en) Nonvolatile memory device and associated data merge method
JP2015507798A (ja) メモリ・モジュールにおいてデータ・エンティティを消去するための方法
CN101714065A (zh) 一种闪存控制器的映射信息管理方法
TW202034178A (zh) 資料儲存裝置與資料處理方法
US10303368B2 (en) Storage device that determines data attributes based on continuity of address ranges

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
ASS Succession or assignment of patent right

Owner name: XI AN KEYWAY TECHNOLOGY CO., LTD.

Free format text: FORMER OWNER: XI AN QIVI TEST + CONTROL TECHNOLOGY CO., LTD.

Effective date: 20120320

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20120320

Address after: 710077 Xi'an high tech Zone, Jin Industrial Road, No., No. C Venture Park, No. 8,

Patentee after: Xi'an Keyway Technology Co.,Ltd.

Address before: 710077 Xi'an high tech Zone, Jin Industrial Road, No., No. C Venture Park, No. 8,

Patentee before: Xi'an Qivi Test & Control Technology Co., Ltd.

C17 Cessation of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20120104

Termination date: 20121031