CN112558863A - Ssd坏块替换方法、装置、可读存储介质及电子设备 - Google Patents

Ssd坏块替换方法、装置、可读存储介质及电子设备 Download PDF

Info

Publication number
CN112558863A
CN112558863A CN202011338732.3A CN202011338732A CN112558863A CN 112558863 A CN112558863 A CN 112558863A CN 202011338732 A CN202011338732 A CN 202011338732A CN 112558863 A CN112558863 A CN 112558863A
Authority
CN
China
Prior art keywords
block
logic unit
queue
ssd
block object
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
Application number
CN202011338732.3A
Other languages
English (en)
Other versions
CN112558863B (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.)
Chengdu Baiwei Storage Technology Co ltd
Original Assignee
Chengdu Baiwei Storage 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 Chengdu Baiwei Storage Technology Co ltd filed Critical Chengdu Baiwei Storage Technology Co ltd
Priority to CN202011338732.3A priority Critical patent/CN112558863B/zh
Publication of CN112558863A publication Critical patent/CN112558863A/zh
Application granted granted Critical
Publication of CN112558863B publication Critical patent/CN112558863B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提供的一种SSD坏块替换方法、装置、可读存储介质及电子设备,建立与所有面和逻辑单元分别对应的队列,将所有好块按照顺序存入对应的面队列中,对属于同一逻辑单元好块重组形成基于逻辑单元的块对象,并存入对应的逻辑单元队列中,将逻辑单元队列索引与数据块索引与块对象关联,将每一逻辑单元队列中所有块对象取出并对应组合,组合出尽量多的完整的快条带,当运行过程中出现坏块时,移除坏块所在的块对象并寻找替换的块对象,将坏块所在的块对象中的好块存入对应的面队列中,提高了坏块替换的及时性,在替换过程中块条带数量也不会减少,提高了多plane的并发度,提升了SSD的读写访问性能,进一步保证了SSD的高可靠性。

Description

SSD坏块替换方法、装置、可读存储介质及电子设备
技术领域
本发明涉及固态硬盘技术领域,尤其涉及一种SSD坏块替换方法、装置、可读存储介质及电子设备。
背景技术
众所周知,坏块替换是固态硬盘(Solid State Disk,SSD)固件中不可或缺的组成部分,因为没有任何一家NAND(计算机闪存设备)厂商可以保证生产的NAND中不包含坏块。因此,如何在包含一定数量坏块的基础上,提供高可靠、高性能的存储服务是固件算法研究的重点和难点。由于坏块的存在会降低多plane(面)的并发度,plane的并发度越低读写访问的性能也随之下降,因此替换出现故障的block(块)是保障性能不下降的必要手段。
发明内容
本发明所要解决的技术问题是:提供了一种SSD坏块替换方法、装置、可读存储介质及电子设备,能够提升SSD的读写访问性能。
为了解决上述技术问题,本发明采用的一种技术方案为:
一种SSD坏块替换方法,包括步骤:
为所述SSD中的每一面建立对应的面队列以及每一逻辑单元建立对应的逻辑单元队列;
将所述SSD中每一面中的所有好块存入对应的面队列中;
将属于同一逻辑单元的面队列中的好块取出对应组合成基于逻辑单元的块对象,并将所述块对象存入对应的逻辑单元队列;
接收数据写入请求,从所述逻辑单元队列中选择对应的块对象进行数据写入。
为了解决上述技术问题,本发明采用的另一种技术方案为:
一种SSD坏块替换装置,包括:
队列建立模块,用于为所述SSD中的每一面建立对应的面队列以及每一逻辑单元建立对应的逻辑单元队列;
好块存储模块,用于将所述SSD中每一面中的所有好块存入对应的面队列中;
将属于同一逻辑单元的面队列中的好块取出并对应组合成基于逻辑单元的块对象,并将所述块对象存入对应的逻辑单元队列;
数据写入模块,用于接收数据写入请求,从所述逻辑单元队列中选择对应的块对象进行数据写入。
为了解决上述技术问题,本发明采用的另一种技术方案为:
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述SSD坏块替换方法中的各个步骤。
为了解决上述技术问题,本发明采用的另一种技术方案为:
一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述SSD坏块替换方法中的各个步骤。
本发明的有益效果在于:为SSD中的每一面和每一逻辑单元分别建立对应的队列,将每一面中的所有好块存入对应的面队列中,对属于同一逻辑单元的面队列中的好块进行重组形成基于逻辑单元的块对象,并存入对应的逻辑单元队列中,通过对SSD中各个面中的好块进行重组形成基于逻辑单元的块对象,在进行数据读写时,能够基于完整的块对象实现数据读写,提高了多plane的并发度,从而提升了SSD的读写访问性能。
附图说明
图1为本发明实施例的一种SSD坏块替换方法中的步骤流程图;
图2为本发明实施例的一种SSD坏块替换装置的结构示意图;
图3为本发明实施例的一种电子设备的结构示意图;
图4为本发明实施例的SSD坏块替换方法中SSD布局示意图;
图5为本发明实施例的SSD坏块替换方法中块条带的组合示意图;
图6为本发明实施例的SSD坏块替换方法中坏块替换示意图。
具体实施方式
为详细说明本发明的技术内容、所实现目的及效果,以下结合实施方式并配合附图予以说明。
如图1所示,本发明实施例提供了一种SSD坏块替换方法,包括步骤:
为所述SSD中的每一面建立对应的面队列以及每一逻辑单元建立对应的逻辑单元队列;
将所述SSD中每一面中的所有好块存入对应的面队列中;
将属于同一逻辑单元的面队列中的好块取出对应组合成基于逻辑单元的块对象,并将所述块对象存入对应的逻辑单元队列;
接收数据写入请求,从所述逻辑单元队列中选择对应的块对象进行数据写入。
从上述描述可知,本发明的有益效果在于:为SSD中的每一面和每一逻辑单元分别建立对应的队列,将每一面中的所有好块存入对应的面队列中,对属于同一逻辑单元的面队列中的好块进行重组形成基于逻辑单元的块对象,并存入对应的逻辑单元队列中,通过对SSD中各个面中的好块进行重组形成基于逻辑单元的块对象,在进行数据读写时,能够基于完整的块对象实现数据读写,提高了多plane的并发度,从而提升了SSD的读写访问性能。
进一步的,所述将所述SSD中每一面中的所有好块存入对应的面队列中包括:
将所述SSD中每一面中的所有好块按照排列顺序存入对应的面队列中。
由上述描述可知,通过将好块按照排列顺序存入对应的面对列中,避免了部分好块被遗漏未存入面对列中,确保每一面中的每一个好块均存入对应的面对列中,能够对所有好块进行充分的利用。
进一步的,所述将属于同一逻辑单元的面队列中的好块取出对应组合成基于逻辑单元的块对象包括:
将属于同一逻辑单元的面队列中的好块取出后,依次对应组合属于同一逻辑单元的不同面队列中的好块,得到基于逻辑单元的块对象。
由上述描述可知,通过依次对应组合属于同一逻辑单元的不同面队列中的好块,得到完整的块对象,基于完整的块对象是多层操作中进行数据读写的基本单元,能够保证SSD固件内部的读写功能。
进一步的,所述将所述块对象存入对应的逻辑单元队列后还包括:
确定所述块对象对应的逻辑单元队列索引以及所述块对象中的每一个好块在对应的面上的数据块索引,并将所述逻辑单元队列索引与所述数据块索引与所述块对象关联;
所述从所述逻辑单元队列中选择对应的块对象进行数据写入包括:
确定可进行数据写入的块对象索引;
根据所述块对象索引从对应的逻辑单元队列中选择对应的块对象;
根据所述块对象的数据块索引将所述数据写入对应的数据块中。
由上述描述可知,通过将逻辑单元队列索引与数据块索引与块对象关联,当需要数据写入时,能够快速定位到可进行数据写入的块,减少数据写入的时间,优化SSD的读写访问性能。
进一步的,所述将属于同一逻辑单元的面队列中的好块依次取出对应组合成基于逻辑单元的块对象,并将所述块对象存入对应的逻辑单元队列包括:
将属于同一逻辑单元的面队列中的好块取出对应组合成基于逻辑单元的块对象,直至属于同一逻辑单元的任一面队列中的好块数量为0,并将所述块对象存入对应的逻辑单元队列;
将所述逻辑单元队列中对应的块对象取出并对应组合成块条带,直至任一所述逻辑单元队列中的块对象数量为0。
由上述描述可知,通过将逻辑单元队列中对应的块对象取出并对应组合成块条带,直至任一所述逻辑单元队列中的块对象数量为0,能够组合出数量尽可能多的完整的块条带,并且不存在任何坏块,能够使块条带的并发度保持一致,进一步保证了SSD的高可靠性。
进一步的,还包括步骤:
接收坏块替换请求,根据所述坏块替换请求移除所述坏块所在的块对象,从所述块对象对应的逻辑单元队列中寻找替换的块对象。
由上述描述可知,由于坏块的存在会降低多plane的并发度,plane的并发度越低读写访问的性能也随之下降,通过在使用过程中对新增的坏块进行及时发现,并移除所述坏块所在的块对象,从对应的逻辑单元队列中寻找替换的块对象,能够针对新增的坏块进行及时的替换,提高了坏块替换的及时性,进一步保证了SSD使用过程中的可靠性。
进一步的,从对应的逻辑单元队列中寻找替换的块对象之后还包括:
将所述坏块所在的块对象中的好块存入所述好块对应的面队列中。
由上述描述可知,通过将坏块所在的块对象中的好块存入好块对应的面队列中,能够形成新的可用的块对象,在后续替换运行中出现的坏块的同时,保证了块条带数量不减少。
如图2所示,本发明另一实施例提供了一种SSD坏块替换装置,包括:
队列建立模块,用于为所述SSD中的每一面建立对应的面队列以及每一逻辑单元建立对应的逻辑单元队列;
好块存储模块,用于将所述SSD中每一面中的所有好块存入对应的面队列中;
将属于同一逻辑单元的面队列中的好块取出并对应组合成基于逻辑单元的块对象,并将所述块对象存入对应的逻辑单元队列;
数据写入模块,用于接收数据写入请求,从所述逻辑单元队列中选择对应的块对象进行数据写入。
本发明另一实施例提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述SSD坏块替换方法中的各个步骤。
如图3所示,本发明另一实施例提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述SSD坏块替换方法中的各个步骤。
本发明上述SSD坏块替换方法、装置、计算机可读存储介质及电子设备能够适用于任何类型的SSD的任何类型的布局,比如4target或者4plane的布局,以下通过具体实施方式进行说明:
实施例一
图4所示为SSD布局图,其包括多个channel(通道),每个channel包括多个target(目标),每个target包括多个LUN(逻辑单元),每个LUN包括多个plane(面),每个plane包括多个block(块),其中,由多个good block(好块)组成一个Block Strip(块条带);其中,SSD的布局可以根据需要进行选择,比如4target或者4plane的布局,本实施例中,SSD的布局为2个channel,每一channel中有2个target,每一target中有1个LUN,每一LUN中有2个plane,每一plane中有多个block;
请参照图1、4-5,本实施例的一种SSD坏块替换方法,包括步骤:
S1、为所述SSD中的每一面建立对应的面队列以及每一逻辑单元建立对应的逻辑单元队列;
比如,本实施例中的SSD一共有8个plane,4个LUN,为每一plane建立plane FIFO,为每一LUN建立LUN FIFO,一共得到8个plane FIFO、4个LUN FIFO,如图5所示,建立LUN0对应的队列,得到LUN0 FIFO,建立LUN0中2个plane对应的队列,得到plane0 FIFO与plane1FIFO,依此类推,得到每一plane对应的plane FIFO以及每一LUN对应的LUN FIFO;
S2、将所述SSD中每一面中的所有好块存入对应的面队列中;
具体的,所述将所述SSD中每一面中的所有好块存入对应的面队列中包括:
将所述SSD中每一面中的所有好块按照排列顺序存入对应的面队列中;
比如,如图5所示,以plane0与plane1为例,在plane0中block0为好块,则先存入plane0 FIFO的第一个位置,block1为好块,则再存入plane0 FIFO的第二个位置,block3为坏块,则省略block3,假设block4为好块,则再存入plane0 FIFO的第三个位置,依此类推,直至plane0中所有好块均存入plane0 FIFO;在plane1中block0为好块,则先存入plane1FIFO的第一个位置,block1为坏块,则省略block1,假设block2为好块,则将其存入plane1FIFO的第二个位置,依此类推,直至plane1中所有好块均存入plane1 FIFO;
S3、将属于同一逻辑单元的面队列中的好块取出对应组合成基于逻辑单元的块对象,并将所述块对象存入对应的逻辑单元队列;
具体的,将属于同一逻辑单元的面队列中的好块取出后,依次对应组合属于同一逻辑单元的不同面队列中的好块,得到基于逻辑单元的块对象,并将所述块对象存入对应的逻辑单元队列,直至属于同一逻辑单元的任一面队列中的好块数量为0;
比如,如图5所示,将plane0 FIFO中第一个位置的block0与plane1 FIFO中第一个位置的block0取出组合成LUN0_block0后,将LUN0_block0存入LUN0 FIFO的第一个位置,将plane0 FIFO中第二个位置的block1与plane1 FIFO中第二个位置的block2取出组合成LUN0_block1后,将LUN0_block1存入LUN0 FIFO的第二个位置,依此类推,直至无法再组合出基于逻辑单元的块对象,假设plane0 FIFO中好块有8个,plane1 FIFO中好块有5个,则组合成第5个LUN0_block,且将其存入LUN0 FIFO后停止,此时,plane0 FIFO中好块数量为3,plane1 FIFO中还有0个好块;
其中,所述将所述块对象存入对应的逻辑单元队列后还包括:
S4、确定所述块对象对应的逻辑单元队列索引以及所述块对象中的每一个好块在对应的面上的数据块索引,并将所述逻辑单元队列索引与所述数据块索引与所述块对象关联;
具体的,定义块对象LUN_block的结构:
Figure BDA0002797960960000071
其中,LUN_block结构中entry字段用于表示所述块对象所归属的LUN FIFO,block_id用于保存块对象LUN_block在对应plane FIFO上的block索引;
S5、接收数据写入请求,从所述逻辑单元队列中选择对应的块对象进行数据写入;
具体的,所述从所述逻辑单元队列中选择对应的块对象进行数据写入包括:
确定可进行数据写入的块对象索引;
根据所述块对象索引从对应的逻辑单元队列中选择对应的块对象;
根据所述块对象的数据块索引将所述数据写入对应的数据块中;
比如,接收到数据写入请求后,如图5所示,假设确定LUN0_block0可进行数据写入,即块对象索引entry为第0个LUN第1个位置对应的块对象可以进行数据写入,根据LUN0_block0结构中entry字段选择到对应的LUN0 FIFO,根据块对象的数据库索引block_id找到包含的每一个数据块对应的位置为plane0 FIFO的第一个位置和plane1 FIFO的第一个位置,接着将数据写入plane0 FIFO中的block0与plane1 FIFO中的block0。
实施例二
请参照图5,本实施例中的SSD布局与实施例一相同,在实施例一的基础上进一步限定如何组合出数量尽可能多的完整的块条带:
具体的,在步骤S3中将属于同一逻辑单元的面队列中的好块取出对应组合成基于逻辑单元的块对象,并将所述块对象存入对应的逻辑单元队列包括:
将属于同一逻辑单元的面队列中的好块依次取出对应组合成基于逻辑单元的块对象,并将所述块对象存入对应的逻辑单元队列,直至属于同一逻辑单元的任一面队列中的好块数量为0;
将所述逻辑单元队列中对应的块对象取出并对应组合成块条带,直至任一所述逻辑单元队列中的块对象数量为0;
比如,如图5所示,将plane0 FIFO中第一个位置的block0与plane1 FIFO中第一个位置的block0取出组合成LUN0_block0后,将LUN0_block0存入LUN0 FIFO的第一个位置,将plane0 FIFO中第二个位置的block1与plane1 FIFO中第二个位置的block2取出组合成LUN0_block1后,将LUN0_block1存入LUN0 FIFO的第二个位置,依此类推,直至无法再组合出基于逻辑单元的块对象,假设plane0 FIFO中好块有8个,plane1 FIFO中好块有5个,则组合成第5个LUN0_block,且将其存入LUN0 FIFO后停止,此时,plane0 FIFO中好块数量为3,plane1 FIFO中还有0个好块;将LUN0 FIFO中的LUN0_block0、LUN1 FIFO中的LUN1_block0、LUN2 FIFO中的LUN2_block0以及LUN3 FIFO中的LUN3_block0取出,组合成块条带blockstripe,依此类推,直至任一LUN FIFO中的LUN_block数量为0,此时,LUN0 FIFO中只有5个LUN_block,假设LUN1 FIFO、LUN2 FIFO、LUN3 FIFO均有7个LUN_block,则组合成第5个block stripe后停止,此时,LUN0 FIFO中LUN_block数量为0,LUN1 FIFO、LUN2 FIFO、LUN3FIFO均还有2个LUN_block;
实施例三
请参照图6,本实施例在实施例一或实施例二的基础上进一步限定了如何替换运行中出现的坏块:
还包括步骤:
S6、接收坏块替换请求,根据所述坏块替换请求移除所述坏块所在的块对象,从所述块对象对应的逻辑单元队列中寻找替换的块对象;
比如,如图6所示,假设LUN0_block中归属于plane0的block0为坏块,则将LUN0_block从block stripe中移除,从LUN0 FIFO中将LUN0 FIFO中的第一个位置处的LUN0_block0取出替换block stripe中的LUN0_block;
其中,从对应的逻辑单元队列中寻找替换的块对象之后还包括:
将所述坏块所在的块对象中的好块存入所述好块对应的面队列中;
比如,如图6所示,此时LUN0_block中的另一个数据块,即属于plane1的block0的数据块是好块,则将其存入plane1 FIFO,假设此时LUN0中plane0FIFO中好块数量为3,假设这3个好块分别为block5、block6、block7,plane1 FIFO中原本好块数量为0,则添加后好块数量增加为1,将plane0 FIFO中位于第一个位置的block5与plane1FIFO中位于第一个位置的block0取出组合成数据块对象LUN0_block5,则该新增的LUN0_block5添加到LUN0 FIFO,就可以弥补之前用于替换的块对象,由此就可以保证块带条数不减少。
实施例四
请参照图2,一种SSD坏块替换装置,包括:
队列建立模块,用于为所述SSD中的每一面建立对应的面队列以及每一逻辑单元建立对应的逻辑单元队列;
好块存储模块,用于将所述SSD中每一面中的所有好块存入对应的面队列中;
将属于同一逻辑单元的面队列中的好块取出并对应组合成基于逻辑单元的块对象,并将所述块对象存入对应的逻辑单元队列;
数据写入模块,用于接收数据写入请求,从所述逻辑单元队列中选择对应的块对象进行数据写入。
实施例五
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时可实现实施例一、二或三中SSD坏块替换方法的各个步骤。
实施例六
请参照图3,一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现实施例一、二或三中SSD坏块替换方法的各个步骤。
综上所述,本发明提供的一种SSD坏块替换方法、装置、可读存储介质及电子设备,为每一面和每一逻辑单元分别建立对应的队列,将所有好块按照顺序存入对应的面队列中,能够对所有好块进行充分的利用,对属于同一逻辑单元好块重组形成基于逻辑单元的块对象,并存入对应的逻辑单元队列中,完整的块对象是多层操作中进行数据读写的基本单元,能够保证SSD固件内部的读写功能,通过将每一逻辑单元队列中所有块对象取出并对应组合,能够组合出尽量多的完整的快条带,使块条带的并发度保持一致,同时当运行过程中出现坏块时,实时移除坏块所在的块对象,从对应的逻辑单元队列中寻找替换的块对象,能够针对新增的坏块进行及时的替换,此外将坏块所在的块对象中的好块存入对应的面队列中,能够形成新的可用的块对象,既提高了坏块替换的及时性,也在替换过程中通过对块对象剩余好块的充分利用能够保证尽可能多地重组出块对象,以此保证块带条数量不减少,提高了多plane的并发度,提升了SSD的读写访问性能,保证了SSD的高可靠性。
在本申请所提供的上述实施例中,应该理解到,所揭露的方法、装置、计算机可读存储介质以及电子设备,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个组件或模块可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或组件或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的组件可以是或者也可以不是物理上分开的,作为组件显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部组件来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个组件单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
需要说明的是,对于前述的各方法实施例,为了简便描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定都是本发明所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。
以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等同变换,或直接或间接运用在相关的技术领域,均同理包括在本发明的专利保护范围内。

Claims (10)

1.一种SSD坏块替换方法,其特征在于,包括步骤:
为所述SSD中的每一面建立对应的面队列以及每一逻辑单元建立对应的逻辑单元队列;
将所述SSD中每一面中的所有好块存入对应的面队列中;
将属于同一逻辑单元的面队列中的好块取出对应组合成基于逻辑单元的块对象,并将所述块对象存入对应的逻辑单元队列;
接收数据写入请求,从所述逻辑单元队列中选择对应的块对象进行数据写入。
2.根据权利要求1所述的一种SSD坏块替换方法,其特征在于,所述将所述SSD中每一面中的所有好块存入对应的面队列中包括:
将所述SSD中每一面中的所有好块按照排列顺序存入对应的面队列中。
3.根据权利要求1所述的一种SSD坏块替换方法,其特征在于,所述将属于同一逻辑单元的面队列中的好块取出对应组合成基于逻辑单元的块对象包括:
将属于同一逻辑单元的面队列中的好块取出后,依次对应组合属于同一逻辑单元的不同面队列中的好块,得到基于逻辑单元的块对象。
4.根据权利要求1所述的一种SSD坏块替换方法,其特征在于,所述将所述块对象存入对应的逻辑单元队列后还包括:
确定所述块对象对应的逻辑单元队列索引以及所述块对象中的每一个好块在对应的面上的数据块索引,并将所述逻辑单元队列索引与所述数据块索引与所述块对象关联;
所述从所述逻辑单元队列中选择对应的块对象进行数据写入包括:
确定可进行数据写入的块对象索引;
根据所述块对象索引从对应的逻辑单元队列中选择对应的块对象;
根据所述块对象的数据块索引将所述数据写入对应的数据块中。
5.根据权利要求1至4中任一项所述的一种SSD坏块替换方法,其特征在于,所述将属于同一逻辑单元的面队列中的好块取出对应组合成基于逻辑单元的块对象,并将所述块对象存入对应的逻辑单元队列包括:
将属于同一逻辑单元的面队列中的好块依次取出对应组合成基于逻辑单元的块对象,并将所述块对象存入对应的逻辑单元队列,直至属于同一逻辑单元的任一面队列中的好块数量为0;
将所述逻辑单元队列中对应的块对象取出并对应组合成块条带,直至任一所述逻辑单元队列中的块对象数量为0。
6.根据权利要求1至4中任一项所述的一种SSD坏块替换方法,其特征在于,还包括步骤:
接收坏块替换请求,根据所述坏块替换请求移除所述坏块所在的块对象,从所述块对象对应的逻辑单元队列中寻找替换的块对象。
7.根据权利要求6所述的一种SSD坏块替换方法,其特征在于,从所述块对象对应的逻辑单元队列中寻找替换的块对象之后还包括:
将所述坏块所在的块对象中的好块存入所述好块对应的面队列中。
8.一种SSD坏块替换装置,其特征在于,包括:
队列建立模块,用于为所述SSD中的每一面建立对应的面队列以及每一逻辑单元建立对应的逻辑单元队列;
好块存储模块,用于将所述SSD中每一面中的所有好块存入对应的面队列中;
将属于同一逻辑单元的面队列中的好块取出并对应组合成基于逻辑单元的块对象,并将所述块对象存入对应的逻辑单元队列;
数据写入模块,用于接收数据写入请求,从所述逻辑单元队列中选择对应的块对象进行数据写入。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述的一种SSD坏块替换方法中的各个步骤。
10.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至7任一项所述的一种SSD坏块替换方法中的各个步骤。
CN202011338732.3A 2020-11-25 2020-11-25 Ssd坏块替换方法、装置、可读存储介质及电子设备 Active CN112558863B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011338732.3A CN112558863B (zh) 2020-11-25 2020-11-25 Ssd坏块替换方法、装置、可读存储介质及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011338732.3A CN112558863B (zh) 2020-11-25 2020-11-25 Ssd坏块替换方法、装置、可读存储介质及电子设备

Publications (2)

Publication Number Publication Date
CN112558863A true CN112558863A (zh) 2021-03-26
CN112558863B CN112558863B (zh) 2023-02-14

Family

ID=75043620

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011338732.3A Active CN112558863B (zh) 2020-11-25 2020-11-25 Ssd坏块替换方法、装置、可读存储介质及电子设备

Country Status (1)

Country Link
CN (1) CN112558863B (zh)

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070271439A1 (en) * 2006-05-11 2007-11-22 Stmicroelectronics Sa Method and device for managing a memory access look-up table
US20100262764A1 (en) * 2009-04-14 2010-10-14 Chao-Yin Liu Method for accessing storage apparatus and related control circuit
KR20120109017A (ko) * 2011-03-24 2012-10-08 삼성전자주식회사 메모리 컨트롤러, 이를 포함하는 장치들, 및 이의 동작 방법
JP2012216122A (ja) * 2011-04-01 2012-11-08 Sony Corp 制御装置、記憶装置、アクセス制御方法
CN103778065A (zh) * 2012-10-25 2014-05-07 北京兆易创新科技股份有限公司 一种闪速存储器及其进行坏块管理的方法
CN104360958A (zh) * 2014-12-09 2015-02-18 哈尔滨工业大学 基于块保留区替换的坏块管理系统及管理方法
CN105843700A (zh) * 2016-03-25 2016-08-10 中国科学院微电子研究所 一种控制器
CN107247563A (zh) * 2017-07-06 2017-10-13 济南浪潮高新科技投资发展有限公司 一种nand flash芯片的块信息标识实现方法
CN108469946A (zh) * 2018-03-31 2018-08-31 北京联想核芯科技有限公司 一种用于提高ssd写入效率的组块方法和装置
CN109445697A (zh) * 2018-10-22 2019-03-08 郑州云海信息技术有限公司 一种组块方法及装置

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070271439A1 (en) * 2006-05-11 2007-11-22 Stmicroelectronics Sa Method and device for managing a memory access look-up table
US20100262764A1 (en) * 2009-04-14 2010-10-14 Chao-Yin Liu Method for accessing storage apparatus and related control circuit
KR20120109017A (ko) * 2011-03-24 2012-10-08 삼성전자주식회사 메모리 컨트롤러, 이를 포함하는 장치들, 및 이의 동작 방법
JP2012216122A (ja) * 2011-04-01 2012-11-08 Sony Corp 制御装置、記憶装置、アクセス制御方法
CN103778065A (zh) * 2012-10-25 2014-05-07 北京兆易创新科技股份有限公司 一种闪速存储器及其进行坏块管理的方法
CN104360958A (zh) * 2014-12-09 2015-02-18 哈尔滨工业大学 基于块保留区替换的坏块管理系统及管理方法
CN105843700A (zh) * 2016-03-25 2016-08-10 中国科学院微电子研究所 一种控制器
CN107247563A (zh) * 2017-07-06 2017-10-13 济南浪潮高新科技投资发展有限公司 一种nand flash芯片的块信息标识实现方法
CN108469946A (zh) * 2018-03-31 2018-08-31 北京联想核芯科技有限公司 一种用于提高ssd写入效率的组块方法和装置
CN109445697A (zh) * 2018-10-22 2019-03-08 郑州云海信息技术有限公司 一种组块方法及装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
乔立岩等: "一种新型NAND Flash坏块管理算法的研究与实现", 《电子测量技术》 *

Also Published As

Publication number Publication date
CN112558863B (zh) 2023-02-14

Similar Documents

Publication Publication Date Title
US11150823B2 (en) Method, device and computer program product for splitting disk set
US10318512B2 (en) Storing and querying multidimensional data using first and second indicies
CN103064765B (zh) 数据恢复方法、装置及集群存储系统
EP2711856B1 (en) Method and device for metadata query
CN107807794A (zh) 一种数据存储方法和装置
US20160350302A1 (en) Dynamically splitting a range of a node in a distributed hash table
CN106874348B (zh) 文件存储和索引方法、装置及读取文件的方法
US10970173B2 (en) Logging process in a data storage system
US9807168B2 (en) Distributed shared log for modern storage servers
US11176110B2 (en) Data updating method and device for a distributed database system
US20110238708A1 (en) Database management method, a database management system and a program thereof
CN108027713A (zh) 用于固态驱动器控制器的重复数据删除
US9430503B1 (en) Coalescing transactional same-block writes for virtual block maps
CN111475105A (zh) 监控数据存储方法、设备、服务器及存储介质
CN103617260A (zh) 重复数据删除的索引生成方法及装置
CN103765375A (zh) 向目标物理介质集合传递在虚拟卷中组织的已去重的数据
US10346073B2 (en) Storage control apparatus for selecting member disks to construct new raid group
CN103593447B (zh) 用于数据库表的数据处理方法和装置
CN107644081A (zh) 数据去重方法及装置
CN109683825A (zh) 一种存储系统在线数据压缩方法、装置及设备
CN112084070A (zh) L2p映射数据恢复方法、装置、存储介质及电子设备
US8407255B1 (en) Method and apparatus for exploiting master-detail data relationships to enhance searching operations
CN114721594A (zh) 一种分布式存储方法、装置、设备及机器可读存储介质
US10204177B2 (en) Matching an ordered set of strings containing wild cards
CN112558863B (zh) Ssd坏块替换方法、装置、可读存储介质及电子设备

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant