一种基于虚拟块闪存地址映射的数据写入及读出方法,其特征在于,该方法包括以下步骤:构建虚拟块、构建一个初始地址映射表、写入数据、读出数据。本发明专利技术解决了没有利用通道内的并行优势来提高速度的技术问题。具有在用户数据的逻辑地址连续的情况下能将数据映射到多个通道中的多个芯片中,使通道的并行操作和通道内的并行操作同时进行,提高读写速度的优点。同时在物理块部分空闲的情况下还能够用来构成虚拟块,提高了物理块的利用率,延长闪存芯片的寿命。
【技术实现步骤摘要】
本专利技术涉及一种闪存控制器的数据写入及读出方法,具体涉及一种基于虚拟块闪存地址映射的闪存控制器数据写入及读出方法。
技术介绍
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)如果没有找到,则通过L本文档来自技高网...
【技术保护点】
一种基于虚拟块闪存地址映射的数据写入及读出方法,其特征在于,该方法包括以下步骤: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)构建虚拟块虚拟块的构成是由每个通道内每个芯片内的物理块的一部分构成,具体是将每个物理块等分成N块,然后将每个通道内每个芯片内取一个1/n个物理块来构成一个虚拟块;每个虚拟块由一个数据结构组成,该数据结构里记录了该虚拟块由那些物理块的那部分构成;2)构建一个初始地址映射表所述初始地址映射表包括逻辑地址页号和物理地址页号;所述逻辑地址页号是由上位计算机给出一个逻辑地址,通过该逻辑地址对虚拟块包含扇区数求模得到虚拟块号的索引,用虚拟块号的索引作为下标在虚拟块表里找到相应的虚拟块地址,该虚拟块地址以页为单位的映射到一个虚拟块上的逻辑页上,得到一个逻辑地址页号;所述物理地址页号是每个虚拟块地址以页为单位的映射,每个虚拟块由一个数据结构组成,该数据结构以页为单位的映射得到一个物理地址页号;3)写入数据3.1)计算机先写扇区的逻辑地址,通过该逻辑地址对虚拟块包含扇区数求模得到虚拟块号的索引,用虚拟块号的索引作为下标在虚拟块表里找到相应的虚拟块地址,得到逻辑块号在初始地址映射表中找到虚拟块号,再在虚拟块中找到一个空闲的页;3.2)用上述逻辑地址对虚拟块包含扇区数求余得到该逻辑地址在虚拟块中的偏移地址,再用该偏移地址对通道数求模得到通道号,再用该偏移地址对一个页包含的扇区数求余得到此通道号里对应物理块的扇区偏移量,由此扇区偏移量得到物理地址,得到更新的逻辑地址页号对应的物理地址页号;3.3)将更新后的逻辑地址页号和物理地址页号存入初始地址映射表中,完成初始地址映射表的更新;3.4)通过更新后的初始地址映射表中物理地址页号对应的物理地址把数据写入该页,完成数据的写入;4)读出数据4.1)计算机先读扇区逻辑地址LBA,在地址映射表里搜索扇区逻辑地址L...
【专利技术属性】
技术研发人员:邱波,
申请(专利权)人:西安奇维测控科技有限公司,
类型:发明
国别省市:87[中国|西安]
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。