CN110119252A - 一种通用闪存存储存储阵列的管理方法及装置 - Google Patents

一种通用闪存存储存储阵列的管理方法及装置 Download PDF

Info

Publication number
CN110119252A
CN110119252A CN201910421006.9A CN201910421006A CN110119252A CN 110119252 A CN110119252 A CN 110119252A CN 201910421006 A CN201910421006 A CN 201910421006A CN 110119252 A CN110119252 A CN 110119252A
Authority
CN
China
Prior art keywords
block
pending
file
list item
specified
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
CN201910421006.9A
Other languages
English (en)
Other versions
CN110119252B (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.)
Shandong Inspur Scientific Research Institute Co Ltd
Original Assignee
Jinan Inspur Hi Tech Investment and Development 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 Jinan Inspur Hi Tech Investment and Development Co Ltd filed Critical Jinan Inspur Hi Tech Investment and Development Co Ltd
Priority to CN201910421006.9A priority Critical patent/CN110119252B/zh
Publication of CN110119252A publication Critical patent/CN110119252A/zh
Application granted granted Critical
Publication of CN110119252B publication Critical patent/CN110119252B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0643Management of files
    • 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/0683Plurality of storage devices
    • G06F3/0688Non-volatile semiconductor memory arrays
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F5/06Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor

Landscapes

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

Abstract

本发明提供了一种通用闪存存储存储阵列的管理方法及装置,包括:确定UFS存储阵列的block的阵列地址指针,建立FIFO,其中,FIFO的表项与阵列地址指针相对应;当外部输入的待执行命令为写入命令时,根据待执行文件的大小和指针寄存器指向的当前表项确定待执行文件的目标表项,再按照对应的目标阵列地址指针将待执行文件并行存储到对应的目标block中,并存储文件标识和各个目标表项;将指针寄存器从当前表项顺次移动各个目标表项后指向的表项作为当前表项;当外部输入的待执行命令不是写入命令时,根据待执行命令对应的指定文件的指定文件标识确定对应的各个指定表项,再确定对应的指定阵列地址指针,再对对应的指定block中的信息,行执行待执行命令对应的操作。

Description

一种通用闪存存储存储阵列的管理方法及装置
技术领域
本发明涉及IC设计技术领域,特别涉及一种通用闪存存储存储阵列的管理方法及装置。
背景技术
通用闪存存储(Universal Flash Storage,UFS)作为非易失存储器,可以给智能终端带来更高的读写速度更可靠的稳定性,已经被广泛应用在智能终端上,并且正逐渐取代嵌入式的多媒体存储卡(embedded Multi Media Card,eMMC)的地位。
目前,UFS芯片大多数都是单芯片应用,在手机等嵌入式领域基本满足了需求。但是,在一些对速度、容量都有高要求的场合,通过单UFS芯片无法满足用户高要求的使用需求,从而导致用户的使用体验差。
发明内容
本发明实施例提供了一种通用闪存存储存储阵列的管理方法及装置,能够通过多个UFS芯片组成的UFS存储阵列满足用户高要求的使用需求。
第一方面,本发明实施例提供了一种通用闪存存储存储阵列的管理方法,包括:
S1:预先确定通用闪存存储UFS存储阵列中的UFS芯片的每一个block的阵列地址指针;
S2:针对每一个所述UFS芯片,建立由所述UFS芯片的每一个所述block组成的FIFO,其中,所述FIFO的每一个表项与所述UFS芯片的一个所述阵列地址指针相对应;
S3:当接收到外部输入的待执行命令时,确定所述待执行命令是否为写入命令,如果是,执行S4,否则,执行S7;
S4:根据所述待执行命令对应的待执行文件的大小和指针寄存器指向的当前表项,从各个所述表项中确定所述待执行文件对应的至少一个目标表项,执行S5;
S5:按照所述至少一个目标表项对应的目标阵列地址指针,将所述待执行文件并行存储到对应的目标block中,并存储所述待执行文件的文件信息,其中,所述文件信息,包括:所述待执行文件的文件标识和对应的各个所述目标表项,执行S6;
S6:将所述指针寄存器从指向的所述当前表项顺次移动所述待执行文件对应的各个目标表项后指向的表项,作为所述指针寄存器指向的当前表项;
S7:根据所述待执行命令对应的指定文件的指定文件标识,从所述文件信息中确定所述指定文件对应的各个指定表项,并确定各个所述指定表项对应的指定阵列地址指针,执行S8;
S8:对各个所述指定阵列地址指针对应的指定block中的信息,并行执行所述待执行命令对应的操作。
优选地,
在确定所述待执行命令为写入命令时,在执行S4之前,进一步包括:
D1:根据所述待执行命令对应的待执行文件的大小和所述block的位宽,确定所述待执行文件当前需要使用的block的数量;
D2:确定所述当前需要使用的block的数量是否不大于所述UFS存储阵列的最大并行的block的数量,如果是,执行S4,否则,根据所述最大并行的block的数量和所述当前需要使用的block的数量,将所述待执行文件并行存储到对应的block中;
其中,
所述S4中的所述根据所述待执行命令对应的待执行文件的大小和指针寄存器指向的当前表项,从各个所述表项中确定所述待执行文件对应的至少一个目标表项,包括:
将指针寄存器从指向的当前FIFO的当前表项顺次移动n次时指向的至少一个所述FIFO的表项,作为所述待执行文件对应的至少一个目标表项,其中,n为所述待执行文件当前需要使用的所述block的数量;
优选地,
所述根据所述最大并行的block的数量和所述当前需要使用的block的数量,将所述待执行文件并行存储到对应的block中,包括:
F1:将所述指针寄存器从指向的当前FIFO的当前表项顺次移动m次时指向的至少一个所述FIFO的表项,作为所述待执行文件对应的目标表项,其中,m为所述最大并行的block的数量;
F2:按照所述待执行文件对应的目标表项所对应的目标阵列地址指针,将所述待执行文件中m个block位宽的信息并行存储到对应的所述block中;
F3:将所述指针寄存器从指向的当前FIFO的当前表项顺次移动m次后指向的表项作为当前表项;
F4:确定已存储m个block位宽的信息后的所述待执行文件当前需要使用的block的数量是否不大于所述最大并行的block的数量,如果是,执行F5和S4,否则,执行F5,并返回F1;
F5:将已存储m个block位宽的信息后的所述待执行文件作为待执行文件。
优选地,
所述S1,包括:
针对通用闪存存储UFS存储阵列中的每一个UFS芯片,根据所述UFS芯片中的每一个block的物理地址,确定每一个所述block的逻辑地址;
对所述UFS存储阵列中的每一个block的逻辑地址编码,获得每一个所述block的逻辑地址对应的阵列地址指针;
所述按照所述至少一个目标表项对应的目标阵列地址指针,将所述待执行文件并行存储到对应的目标block中,包括:
确定与所述至少一个目标表项对应的目标阵列地址指针相对应的目标block;
将所述待执行文件并行存储到各个所述目标block中;
所述S8,包括:
确定各个所述指定阵列地址指针分别对应指定block的逻辑地址;
根据每一个所述指定block的逻辑地址,分别确定每一个所述指定block的物理地址;
对各个所述指定block的物理地址对应的指定block,并行执行所述待执行命令对应的操作。
优选地,
在所述从所述文件信息中确定所述待执行命令对应的指定文件标识所对应的各个指定表项之后,在所述确定各个所述指定表项对应的指定阵列地址指针之前,进一步包括:
确定所述指定表项的数量是否不大于所述UFS存储阵列的最大并行的block的数量;
如果是,执行所述确定各个所述指定表项对应的指定阵列地址指针;
否则,根据各个所述指定表项和所述最大并行的block的数量,对所述待执行文件使用的block并行执行所述待执行命令对应的操作。
优选地,
所述根据各个所述指定表项和所述最大并行的block的数量,对所述待执行文件使用的block并行执行所述待执行命令对应的操作,包括:
G1:确定未处理集合,其中,所述未处理集合包括各个所述指定表项;
G2:从所述未处理集合中取出所述最大并行的block的数量个待执行表项;
G3:确定各个所述待执行表项对应的待执行阵列地址指针;
G4:对各个所述待执行阵列地址指针对应的block,并行执行所述待执行命令对应的操作;
G5:判断所述未处理集合中的所述待执行表项的数量是否不大于所述最大并行的block的数量,如果是,执行G6,否则,返回G2;
G6:将所述未处理集合中的所述指定表项作为待执行表项,执行G3、G4和G7;
G7:当所述待执行命令为擦除命令时,删除存储的所述指定文件对应的各个指定表项和指定文件标识。
第二方面,本发明实施例提供了一种通用闪存存储存储阵列的管理装置,包括:
阵列地址指针确定模块,用于执行S1:预先确定通用闪存存储UFS存储阵列中的UFS芯片的每一个block的阵列地址指针;
指针管理模块,用于S2:针对每一个所述UFS芯片,建立由所述UFS芯片的每一个所述block组成的FIFO,其中,所述FIFO的每一个表项与所述UFS芯片的一个所述阵列地址指针确定模块确定的所述阵列地址指针相对应;
处理模块,用于S3:当接收到外部输入的待执行命令时,确定所述待执行命令是否为写入命令,如果是,触发写入模块,否则,触发非写入模块;
所述写入模块,用于被触发时,执行S4:根据所述待执行命令对应的待执行文件的大小和指针寄存器指向的当前表项,从所述指针管理模块建立的FIFO的各个表项中确定所述待执行文件对应的至少一个目标表项;S5:按照所述至少一个目标表项对应的目标阵列地址指针,将所述待执行文件并行存储到对应的目标block中,并存储所述待执行文件的文件信息,其中,所述文件信息,包括:所述待执行文件的文件标识和对应的各个所述目标表项,S6:将所述指针寄存器从指向的所述当前表项顺次移动所述待执行文件对应的各个目标表项后指向的表项,作为所述指针寄存器指向的当前表项;
所述非写入模块,用于被触发时,执行S7:根据所述待执行命令对应的指定文件的指定文件标识,从所述写入模块存储的所述文件信息中确定所述指定文件对应的各个指定表项,并确定各个所述指定表项对应的指定阵列地址指针;S8:对各个所述指定阵列地址指针对应的指定block中的信息,并行执行所述待执行命令对应的操作。
优选地,
所述写入模块,包括:第一写入管理模块和第二写入管理模块;
所述第一写入管理模块,用于执行D1:根据所述待执行命令对应的待执行文件的大小和所述block的位宽,确定所述待执行文件当前需要使用的block的数量;将指针寄存器从指向的当前FIFO的当前表项顺次移动n次时指向的至少一个所述FIFO的表项,作为所述待执行文件对应的至少一个目标表项,其中,n为所述待执行文件当前需要使用的所述block的数量;
所述第二写入管理模块,用于执行D2:确定所述第一写入管理模块确定的所述当前需要使用的block的数量是否不大于所述UFS存储阵列的最大并行的block的数量,如果是,执行S4,否则,根据所述最大并行的block的数量和所述当前需要使用的block的数量,将所述待执行文件并行存储到对应的block中。
优选地,
所述第二写入管理模块,用于F1:将所述指针寄存器从指向的当前FIFO的当前表项顺次移动m次时指向的至少一个所述FIFO的表项,作为所述待执行文件对应的目标表项,其中,m为所述最大并行的block的数量;
F2:按照所述待执行文件对应的目标表项所对应的目标阵列地址指针,将所述待执行文件中m个block位宽的信息并行存储到对应的所述block中;
F3:将所述指针寄存器从指向的当前FIFO的当前表项顺次移动m次后指向的表项作为当前表项;
F4:确定已存储m个block位宽的信息后的所述待执行文件当前需要使用的block的数量是否不大于所述最大并行的block的数量,如果是,执行F5和S4,否则,执行F5,并返回F1;
F5:将已存储m个block位宽的信息后的所述待执行文件作为待执行文件。
优选地,
所述非写入模块,进一步用于确定所述指定表项的数量是否不大于所述UFS存储阵列的最大并行的block的数量,如果是,执行所述确定各个所述指定表项对应的指定阵列地址指针,否则,根据各个所述指定表项和所述最大并行的block的数量,对所述待执行文件使用的block并行执行所述待执行命令对应的操作。
本发明实施例提供了一种通用闪存存储存储阵列的管理方法及装置,对于由至少两个UFS芯片组成的UFS存储阵列中的每一个UFS芯片,通过确定每一个UFS芯片的block的阵列地址指针,可以确定该芯片对应的FIFO的每一个表项,在外部输入的待执行命令是写入命令时,可以根据待执行命令对应的待执行文件的大小和指针寄存器指向的当前表项,来确定待执行文件需要使用的FIFO的目标表项,再根据确定的目标表项所对应的目标阵列地址指针,即可将待执行文件并行存储到各个目标阵列地址指针对应的block中,并存储待执行文件的文件标识和各个待执行文件使用的FIFO的目标表项,以便需要对待执行文件进行操作时,根据该信息查找待执行文件,再更新指针寄存器指向的当前表项,以便后续文件的存储;而当外部输入的待执行命令不是写入命令时,则需要根据待执行命令对应的指定文件的指定文件标识,确定指定文件对应的各个指定表项,进而确定指定表项对应的指定阵列地址指针,以便对各个指定阵列地址指针对应的指定block中的信息,并行执行待执行命令对应的操作。综上可见,通过由多个UFS芯片组成的UFS存储阵列,可以根据待执行文件大小和UFS存储阵列的最大并行的block的数量,对文件进行并行写入或者并行执行待执行命令对应的操作,在文件较大时,可以提高文件执行的速度,从而实现通过多个UFS芯片组成的UFS存储阵列满足用户高要求的使用需求。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一实施例提供的一种通用闪存存储存储阵列的管理方法的流程图;
图2是本发明一实施例提供的另一种通用闪存存储存储阵列的管理方法的流程图;
图3是本发明一实施例提供的一种通用闪存存储存储阵列的管理装置的结构示意图;
图4是本发明一实施例提供的另一种通用闪存存储存储阵列的管理装置的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例,基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示,本发明实施例提供了一种通用闪存存储存储阵列的管理方法,包括:
S1:预先确定通用闪存存储UFS存储阵列中的UFS芯片的每一个block的阵列地址指针;
S2:针对每一个所述UFS芯片,建立由所述UFS芯片的每一个所述block组成的FIFO,其中,所述FIFO的每一个表项与所述UFS芯片的一个所述阵列地址指针相对应;
S3:当接收到外部输入的待执行命令时,确定所述待执行命令是否为写入命令,如果是,执行S4,否则,执行S7;
S4:根据所述待执行命令对应的待执行文件的大小和指针寄存器指向的当前表项,从各个所述表项中确定所述待执行文件对应的至少一个目标表项,执行S5;
S5:按照所述至少一个目标表项对应的目标阵列地址指针,将所述待执行文件并行存储到对应的目标block中,并存储所述待执行文件的文件信息,其中,所述文件信息,包括:所述待执行文件的文件标识和对应的各个所述目标表项,执行S6;
S6:将所述指针寄存器从指向的所述当前表项顺次移动所述待执行文件对应的各个目标表项后指向的表项,作为所述指针寄存器指向的当前表项;
S7:根据所述待执行命令对应的指定文件的指定文件标识,从所述文件信息中确定所述指定文件对应的各个指定表项,并确定各个所述指定表项对应的指定阵列地址指针,执行S8;
S8:对各个所述指定阵列地址指针对应的指定block中的信息,并行执行所述待执行命令对应的操作。
在本发明实施例中,对于由至少两个UFS芯片组成的UFS存储阵列中的每一个UFS芯片,通过确定每一个UFS芯片的block的阵列地址指针,可以确定该芯片对应的FIFO的每一个表项,在外部输入的待执行命令是写入命令时,可以根据待执行命令对应的待执行文件的大小和指针寄存器指向的当前表项,来确定待执行文件需要使用的FIFO的目标表项,再根据确定的目标表项所对应的目标阵列地址指针,即可将待执行文件并行存储到各个目标阵列地址指针对应的block中,并存储待执行文件的文件标识和各个待执行文件使用的FIFO的目标表项,以便需要对待执行文件进行操作时,根据该信息查找待执行文件,再更新指针寄存器指向的当前表项,以便后续文件的存储;而当外部输入的待执行命令不是写入命令时,则需要根据待执行命令对应的指定文件的指定文件标识,确定指定文件对应的各个指定表项,进而确定指定表项对应的指定阵列地址指针,以便对各个指定阵列地址指针对应的指定block中的信息,并行执行待执行命令对应的操作。综上可见,通过由多个UFS芯片组成的UFS存储阵列,可以根据待执行文件大小和UFS存储阵列的最大并行的block的数量,对文件进行并行写入或者并行执行待执行命令对应的操作,在文件较大时,可以提高文件执行的速度,从而实现通过多个UFS芯片组成的UFS存储阵列满足用户高要求的使用需求。
在本发明一实施例中,在确定所述待执行命令为写入命令时,在执行S4之前,进一步包括:
D1:根据所述待执行命令对应的待执行文件的大小和所述block的位宽,确定所述待执行文件当前需要使用的block的数量;
D2:确定所述当前需要使用的block的数量是否不大于所述UFS存储阵列的最大并行的block的数量,如果是,执行S4,否则,根据所述最大并行的block的数量和所述当前需要使用的block的数量,将所述待执行文件并行存储到对应的block中;
其中,
所述S4中的所述根据所述待执行命令对应的待执行文件的大小和指针寄存器指向的当前表项,从各个所述表项中确定所述待执行文件对应的至少一个目标表项,包括:
将指针寄存器从指向的当前FIFO的当前表项顺次移动n次时指向的至少一个所述FIFO的表项,作为所述待执行文件对应的至少一个目标表项,其中,n为所述待执行文件当前需要使用的所述block的数量。
在本发明实施例中,由于UFS存储阵列中的每一个block位宽均相同,所以通过确定待执行文件的大小,可以确定待执行文件在写入时需要使用的block的数量,例如,UFS存储阵列中每个block的位宽为10bit,待执行文件的大小为30bit,那么待执行文件当前需要使用的block的数量为3个。UFS存储阵列的最大并行的block的数量为,组成UFS存储阵列的UFS芯片的数量,当待执行文件当前需要使用的block的数量不大于组成UFS存储阵列的UFS芯片的数量时,待执行文件需要使用的block的数量,即为待执行文件的并行写入规模,以使在待执行文件较大时提供高达最大并行指数倍的单片UFS芯片的写入速度,提高用户的使用体验。而当待执行文件当前需要使用的block的数量大于组成UFS存储阵列的UFS芯片的数量时,则需要UFS存储阵列的最大并行的block的数量,选择待执行文件并行写入时的规模。每次在将待执行文件写入需要写入信息block时,可以通过指针寄存器的当前位置和待执行文件的写入规模,来确定需要写入信息的FIFO的目标表项,以便根据目标表项查找需要写入信息的block完成信息的写入。
在本发明一实施例中,所述根据所述最大并行的block的数量和所述当前需要使用的block的数量,将所述待执行文件并行存储到对应的block中,包括:
F1:将所述指针寄存器从指向的当前FIFO的当前表项顺次移动m次时指向的至少一个所述FIFO的表项,作为所述待执行文件对应的目标表项,其中,m为所述最大并行的block的数量;
F2:按照所述待执行文件对应的目标表项所对应的目标阵列地址指针,将所述待执行文件中m个block位宽的信息并行存储到对应的所述block中;
F3:将所述指针寄存器从指向的当前FIFO的当前表项顺次移动m次后指向的表项作为当前表项;
F4:确定已存储m个block位宽的信息后的所述待执行文件当前需要使用的block的数量是否不大于所述最大并行的block的数量,如果是,执行F5和S4,否则,执行F5,并返回F1;
F5:将已存储m个block位宽的信息后的所述待执行文件作为待执行文件。
在本发明实施例中,在待执行文件当前需要使用的block的数量大于UFS存储阵列最大并行的block的数量时,根据最大并行的block的数量确定待执行文件此次进行写入操作时对应的目标表项,通过各个目标表项可以确定对应的目标阵列地址指针,进而确定待执行文件此次进行写入操作需要使用的block,将待执行文件中m个block位宽的信息并行存储到此次需要使用的block中,即可完成写入操作。当已存储信息后的待执行文件的当前需要使用的block的数量不大于UFS存储阵列最大并行的block的数量时,则待执行文件该次写入的规模为当前需要使用的block。
在本发明一实施例中,所述S1,包括:
针对通用闪存存储UFS存储阵列中的每一个UFS芯片,根据所述UFS芯片中的每一个block的物理地址,确定每一个所述block的逻辑地址;
对所述UFS存储阵列中的每一个block的逻辑地址编码,获得每一个所述block的逻辑地址对应的阵列地址指针;
所述按照所述至少一个目标表项对应的目标阵列地址指针,将所述待执行文件并行存储到对应的目标block中,包括:
确定与所述至少一个目标表项对应的目标阵列地址指针相对应的目标block;
将所述待执行文件并行存储到各个所述目标block中;
所述S8,包括:
确定各个所述指定阵列地址指针分别对应指定block的逻辑地址;
根据每一个所述指定block的逻辑地址,分别确定每一个所述指定block的物理地址;
对各个所述指定block的物理地址对应的指定block,并行执行所述待执行命令对应的操作。
在本发明实施例中,由于UFS存储阵列中的每一个block的物理地址均不同,所以根据block的物理地址可以确定其对应的逻辑地址,再通过对UFS存储阵列中的各个block的逻辑地址编码,即可获得每一个block对应的阵列地址指针,以使在确定阵列地址指针后,根据映射关系查找对应的block,并对查找到的block执行待执行命令对应的操作。同样地,在当待执行命令不是写入命令时,通过确定的各个指定阵列地址指针可以确定对应的指定block的逻辑地址,进而确定指定block的物理地址,再按照物理地址即可对各个指定block并行执行待执行命令对应的操作。由于不论UFS存储阵列的规格是多大,顶层文件***看到的底层都是一个单一的UFS芯片,整个UFS存储阵列中的block统一编码,可以降低顶层文件***适配难度。
在本发明一实施例中,在所述从所述文件信息中确定所述待执行命令对应的指定文件标识所对应的各个指定表项之后,在所述确定各个所述指定表项对应的指定阵列地址指针之前,进一步包括:
确定所述指定表项的数量是否不大于所述UFS存储阵列的最大并行的block的数量;
如果是,执行所述确定各个所述指定表项对应的指定阵列地址指针;
否则,根据各个所述指定表项和所述最大并行的block的数量,对所述待执行文件使用的block并行执行所述待执行命令对应的操作。
在本发明实施例中,当待执行命令不是写入命令时,待执行命令可以是读取命令或擦除命令。在对待执行命令对应的指定文件进行读取或擦除操作时,需要先根据指定文件对应的指定表项的数量和UFS存储阵列的最大并行的block的数量,确定指定文件每次并行执行操作时的规模。即当指定文件使用的block的数量不大于UFS存储阵列的最大并行的block的数量时,可以确定指定文件所对应的指定表项的数量,即为并行执行操作的指定block的数量,因此,可以对指定文件当前使用的block中的信息并行执行读取命令或擦除命令对应的操作,以使在文件较大时提高对文件的执行速度,提高用户的使用体验。
在本发明一实施例中,所述根据各个所述指定表项和所述最大并行的block的数量,对所述待执行文件使用的block并行执行所述待执行命令对应的操作,包括:
G1:确定未处理集合,其中,所述未处理集合包括各个所述指定表项;
G2:从所述未处理集合中取出所述最大并行的block的数量个待执行表项;
G3:确定各个所述待执行表项对应的待执行阵列地址指针;
G4:对各个所述待执行阵列地址指针对应的block,并行执行所述待执行命令对应的操作;
G5:判断所述未处理集合中的所述待执行表项的数量是否不大于所述最大并行的block的数量,如果是,执行G6,否则,返回G2;
G6:将所述未处理集合中的所述指定表项作为待执行表项,执行G3、G4和G7;
G7:当所述待执行命令为擦除命令时,删除存储的所述指定文件对应的各个指定表项和指定文件标识。
在本发明实施例中,在待执行文件的对应的目标表项的数量大于UFS存储阵列的最大并行的block的数量时,指定文件每次对应的读出或擦除操作的规模为UFS存储阵列的最大并行的block。每次在进行读出或擦除操作时,可以通过从指定文件对应的各个指定表项中确定出最大并行的block个待执行表项,进而确定出对应的待执行阵列地址指针,再查找需要进行读出或擦除操作blcok,并对查找到的各个block并行执行待执行命令对应的操作,即可完成用户所要求的操作。
为了更加清楚的说明本发明的技术方案及优点,下面对本发明实施例提供的一种通用闪存存储存储阵列的管理方法进行详细说明,如图2所示,具体可以包括以下步骤:
步骤201:针对通用闪存存储UFS存储阵列中的每一个UFS芯片,根据UFS芯片中的每一个block的物理地址,确定每一个block的逻辑地址。
具体地,由于由至少两个UFS芯片组成的UFS存储阵列中的每一个UFS芯片的每一个block的物理地址不同,因此,通过block的物理地址可以确定block对应的逻辑地址。
步骤202:对UFS存储阵列中的每一个block的逻辑地址编码,获得每一个block的逻辑地址对应的阵列地址指针。
具体地,可以按照从指向的当前表项进行移动的顺序,对每一个block的逻辑地址进行编码,获得block的逻辑地址对应的阵列地址指针,以使通过阵列地址指针,查找block。
步骤203:针对每一个UFS芯片,建立由UFS芯片的每一个block组成的FIFO,其中,FIFO的每一个表项与UFS芯片的一个阵列地址指针相对应。
具体地,每个UFS有对应的FIFO,该FIFO即由该UFS芯片的各个block组成,因此,该FIFO的表项与该UFS芯片的block的阵列地址指针相对应。
步骤204:当接收到外部输入的待执行命令时,确定待执行命令是否为写入命令,如果是,执行步骤205,否则,执行步骤216。
具体地,在处理外部输入的待执行命令时,需要先确定待执行命令是写入命令还是读取命令或者命令,以使对待执行命令对应的待执行文件执行对应的操作。
步骤205:根据待执行命令对应的待执行文件的大小和block的位宽,确定待执行文件当前需要使用的block的数量,执行步骤206。
具体地,UFS存储阵列中的每一个block的位宽相同,因此,通过待执行文件的大小和block的位宽即可确定待执行文件当前需要使用的block的数量。
步骤206:确定当前需要使用的block的数量是否不大于UFS存储阵列的最大并行的block的数量,如果是,执行步骤213,否则,执行步骤207。
具体地,通过将待执行文件当前需要使用的block的数量,与UFS存储阵列的最大并行的block的数量进行比对,可以确定待执行文件并行写入的规模,以使按照确定的规模将待执行文件中的内容并行写入到对应的block中。
步骤207:将指针寄存器从指向的当前FIFO的当前表项顺次移动m次时指向的至少一个FIFO的表项,作为待执行文件对应的目标表项,其中,m为最大并行的block的数量,执行步骤208。
具体地,在确定待执行文件当前需要使用的block的数量大于UFS存储阵列的最大并行的block的数量时,那么待执行文件并行写入的数量即为UFS存储阵列的最大并行的block的数量。通过指针寄存器指向的当前FIFO的当前表项,移动UFS存储阵列的最大并行的block的数量时指向的表项,可以确定待执行文件对应的至少一个目标表项,
步骤208:按照待执行文件对应的目标表项所对应的目标阵列地址指针,将待执行文件中m个block位宽的信息并行存储到对应的block中,执行步骤209。
具体地,通过指针寄存器移动时指向的待执行文件所对应的目标表项,可以确定待执行文件当次存储信息时需要使用的block对应的目标阵列地址指针,通过各个目标阵列地址指针可以查找到待执行文件当次存储信息时需要使用的block,即可再将待执行文件的m个block位宽的信息并行存储到对应的block中。
步骤209:将指针寄存器从指向的当前FIFO的当前表项顺次移动m次后指向的表项作为当前表项,执行步骤210。
步骤210:确定已存储m个block位宽的信息后的待执行文件当前需要使用的block的数量是否不大于最大并行的block的数量,如果是,执行步骤211,否则,执行步骤212。
具体地,在将待存储文件并行存储到block后,需要根据待执行文件对应的各个目标表项,更新指针寄存器指向的当前表项,以使再次存储文件时,根据指针寄存器的指向的当前表项查找需要存储信息的block。再通过将已存储m个block位宽的信息后的待执行文件当前需要使用的block的数量,与最大并行的block的数量进行对比,可以确定已存储m个block位宽的信息后的待执行文件写入信息时的并行写入规模。
步骤211:将已存储m个block位宽的信息后的待执行文件作为待执行文件,执行步骤213。
具体地,在确定已存储m个block位宽的信息后的待执行文件当前需要使用的block的数量不大于最大并行的block的数量时,则已存储m个block位宽的信息后的待执行文件再次并行写入的规模,即为待执行文件当前需要使用的所述block的数量。
步骤212:将已存储m个block位宽的信息后的待执行文件作为待执行文件,返回步骤207。
步骤213:将指针寄存器从指向的当前FIFO的当前表项顺次移动n次时指向的至少一个FIFO的表项,作为待执行文件对应的至少一个目标表项,其中,n为待执行文件需要使用的block的数量,执行步骤214。
具体地,当待执行文件的并行写入规模为待执行文件当前需要使用的block的数量时,可以根据指针寄存器从指向的当前FIFO的当前表项顺次移动n次时指向的至少一个FIFO的表项,确定待执行文件对应的目标表项,以使通过目标表项,确定待执行文件需要写入信息的block。
步骤214:确定与至少一个目标表项对应的目标阵列地址指针相对应的目标block,并将待执行文件并行存储到各个目标block中,执行步骤215。
具体地,通过待执行文件对应的目标表项,可以确定待执行文件需要使用的block的目标阵列地址指针,以使通过目标阵列地址指针查找待执行文件需要使用的block,完成将待执行文件并行存储带查找到的block中,再存储待执行文件的文件标识和待执行文件对应的各个目标表项,以便对待执行文件进行读取或擦除命令时,根据待执行文件的文件标识查找对应的目标表项。
步骤215:将指针寄存器从指向的当前表项顺次移动待执行文件对应的各个目标表项后指向的表项,作为指针寄存器指向的当前表项,结束当前流程。
步骤216:根据待执行命令对应的指定文件的指定文件标识,从存储的文件信息中确定指定文件对应的各个指定表项,执行步骤217。
具体地,在待执行命令不是写入命令时,可以根据待执行命令对应的指定文件的指定文件标识,从存储的文件信息中确定指定文件对应的各个指定表项。
步骤217:确定指定表项的数量是否不大于UFS存储阵列的最大并行的block的数量,如果是,执行步骤223,否则,执行步骤218。
具体地,根据指定文件对应的指定表项的数量和UFS存储阵列的最大并行的block的数量,可以确定在对待执行文件进行并行读取或擦除操作的规模。
步骤218:确定由各个指定表项组成的未处理集合,执行步骤219。
步骤219:从未处理集合中取出最大并行的block的数量个待执行表项,执行步骤220。
步骤220:确定各个待执行表项对应的待执行阵列地址指针,并对各个待执行阵列地址指针对应的block,并行执行待执行命令对应的操作,执行步骤221。
具体地,在指定文件对应的指定表项的数量大于UFS存储阵列的最大并行的block的数量时,可以先从指定文件按照各个指定表项对应的顺序取出,最大并行的block数量个指定表项作为待执行表项,进而对应的待执行阵列地址指针,再通过待执行阵列地址指针即可确定此次进行读取或擦除操作的block,最后对各个待执行阵列地址指针对应的block,并行执行待执行命令对应的操作,即可完成此次读取或擦除操作。
步骤221:判断未处理集合中的指定表项的数量是否不大于最大并行的block的数量,如果是,执行步骤222,否则,返回步骤219。
具体地,通过将未处理集合中的指定表项的数量与最大并行的block的数量进行比对,可以确定再次进行读取或擦除操作的规模,以使按照确定的执行规模,确定对应的block。
步骤222:将未处理集合中的指定表项作为待执行表项,确定各个待执行表项对应的待执行阵列地址指针,并对各个待执行阵列地址指针对应的block,并行执行待执行命令对应的操作,并当待执行命令为擦除命令时,删除存储的指定文件对应的各个指定表项和指定文件标识,结束当前流程。
步骤223:确定各个指定表项对应的指定阵列地址指针,执行步骤224。
步骤224:确定各个指定阵列地址指针分别对应指定block的逻辑地址,执行步骤225。
步骤225:根据每一个指定block的逻辑地址,分别确定每一个指定block的物理地址,执行步骤226。
步骤226:对各个指定block的物理地址对应的指定block,并行执行待执行命令对应的操作。
具体地,在指定文件对应的指定表项的数量不大于UFS存储阵列的最大并行的block的数量时,可以确定各个指定表项对应的指定阵列地址指针,进而确定对应的指定block的逻辑地址,通过指定block的逻辑地址即可查找到待执行文件使用的指定block,以使对查找到的指定block并行执行待执行命令对应的操作,以为用户提供相应服务。
综上可见,本发明提供的一种通用闪存存储存储阵列的管理方法,不论UFS存储阵列规格是什么,顶层文件***看到的底层都是一个单一的UFS芯片,整个UFS存储阵列中的block统一编码,降低顶层文件***适配难度;根据文件大小自动选择并行写入、读取或擦除规模,在文件较大时提供高达最大并行指数倍单片UFS芯片的写入速度、读出或擦除速度;利用FIFO先进先出特点,结合UFS芯片的磨损均衡和坏块扫描以及芯片级地址映射功能,实现高效的存储空间碎片整理,能够满足用户高要求的使用需求。
如图3所示,本发明实施例提供了一种通用闪存存储存储阵列的管理装置,包括:
阵列地址指针确定模块301,用于执行S1:预先确定通用闪存存储UFS存储阵列中的UFS芯片的每一个block的阵列地址指针;
指针管理模块302,用于S2:针对每一个所述UFS芯片,建立由所述UFS芯片的每一个所述block组成的FIFO,其中,所述FIFO的每一个表项与所述UFS芯片的一个所述阵列地址指针确定模块301确定的所述阵列地址指针相对应;
处理模块303,用于S3:当接收到外部输入的待执行命令时,确定所述待执行命令是否为写入命令,如果是,触发写入模块304,否则,触发非写入模块305;
所述写入模块304,用于被触发时,执行S4:根据所述待执行命令对应的待执行文件的大小和指针寄存器指向的当前表项,从所述指针管理模块302建立的FIFO的各个表项中确定所述待执行文件对应的至少一个目标表项;S5:按照所述至少一个目标表项对应的目标阵列地址指针,将所述待执行文件并行存储到对应的目标block中,并存储所述待执行文件的文件信息,其中,所述文件信息,包括:所述待执行文件的文件标识和对应的各个所述目标表项,S6:将所述指针寄存器从指向的所述当前表项顺次移动所述待执行文件对应的各个目标表项后指向的表项,作为所述指针寄存器指向的当前表项;
所述非写入模块305,用于被触发时,执行S7:根据所述待执行命令对应的指定文件的指定文件标识,从写入模块301存储的所述文件信息中确定所述指定文件对应的各个指定表项,并确定各个所述指定表项对应的指定阵列地址指针;S8:对各个所述指定阵列地址指针对应的指定block中的信息,并行执行所述待执行命令对应的操作。
在本发明实施例中,对于由至少两个UFS芯片组成的UFS存储阵列中的每一个UFS芯片,指针管理模块通过阵列地址指针确定模块确定每一个UFS芯片的block的阵列地址指针,可以确定该芯片对应的FIFO的每一个表项,在处理模块确定外部输入的待执行命令是写入命令时,触发写入模块,以使写入模块可以根据待执行命令对应的待执行文件的大小和指针寄存器指向的当前表项,来确定待执行文件需要使用的FIFO的目标表项,再根据确定的目标表项所对应的目标阵列地址指针,即可将待执行文件并行存储到各个目标阵列地址指针对应的block中,并存储待执行文件的文件标识和各个待执行文件使用的FIFO的目标表项,以便需要对待执行文件进行操作时,根据该信息查找待执行文件,再更新指针寄存器指向的当前表项,以便后续文件的存储;而当处理模块确定外部输入的待执行命令不是写入命令时,则可以触发非写入模块,以使非写入模块需要根据待执行命令对应的指定文件的指定文件标识,确定指定文件对应的各个指定表项,进而确定指定表项对应的指定阵列地址指针,以便对各个指定阵列地址指针对应的指定block中的信息,并行执行待执行命令对应的操作。综上可见,通过由多个UFS芯片组成的UFS存储阵列,可以根据待执行文件大小和UFS存储阵列的最大并行的block的数量,对文件进行并行写入或者并行执行待执行命令对应的操作,在文件较大时,可以提高文件执行的速度,从而实现通过多个UFS芯片组成的UFS存储阵列满足用户高要求的使用需求。
基于图3所示的所述通用闪存存储存储阵列的管理装置,在本发明实施例中,如图4所示,所述写入模块304,包括:第一写入管理模块3041和第二写入管理模块3042;
所述第一写入管理模块3041,用于执行D1:根据所述待执行命令对应的待执行文件的大小和所述block的位宽,确定所述待执行文件当前需要使用的block的数量;将指针寄存器从指向的当前FIFO的当前表项顺次移动n次时指向的至少一个所述FIFO的表项,作为所述待执行文件对应的至少一个目标表项,其中,n为所述待执行文件当前需要使用的所述block的数量;
所述第二写入管理模块3042,用于执行D2:确定所述第一写入管理模块3041确定的所述当前需要使用的block的数量是否不大于所述UFS存储阵列的最大并行的block的数量,如果是,执行S4,否则,根据所述最大并行的block的数量和所述当前需要使用的block的数量,将所述待执行文件并行存储到对应的block中。
在本发明一实施例中,所述第二写入管理模块,用于F1:将所述指针寄存器从指向的当前FIFO的当前表项顺次移动m次时指向的至少一个所述FIFO的表项,作为所述待执行文件对应的目标表项,其中,m为所述最大并行的block的数量;
F2:按照所述待执行文件对应的目标表项所对应的目标阵列地址指针,将所述待执行文件中m个block位宽的信息并行存储到对应的所述block中;
F3:将所述指针寄存器从指向的当前FIFO的当前表项顺次移动m次后指向的表项作为当前表项;
F4:确定已存储m个block位宽的信息后的所述待执行文件当前需要使用的block的数量是否不大于所述最大并行的block的数量,如果是,执行F5和S4,否则,执行F5,并返回F1;
F5:将已存储m个block位宽的信息后的所述待执行文件作为待执行文件。
在本发明一实施例中,所述非写入模块,进一步用于确定所述指定表项的数量是否不大于所述UFS存储阵列的最大并行的block的数量,如果是,执行所述确定各个所述指定表项对应的指定阵列地址指针,否则,根据各个所述指定表项和所述最大并行的block的数量,对所述待执行文件使用的block并行执行所述待执行命令对应的操作。
本发明各个实施例至少具有如下有益效果:
1、在本发明一实施例中,对于由至少两个UFS芯片组成的UFS存储阵列中的每一个UFS芯片,通过确定每一个UFS芯片的block的阵列地址指针,可以确定该芯片对应的FIFO的每一个表项,在外部输入的待执行命令是写入命令时,可以根据待执行命令对应的待执行文件的大小和指针寄存器指向的当前表项,来确定待执行文件需要使用的FIFO的目标表项,再根据确定的目标表项所对应的目标阵列地址指针,即可将待执行文件并行存储到各个目标阵列地址指针对应的block中,并存储待执行文件的文件标识和各个待执行文件使用的FIFO的目标表项,以便需要对待执行文件进行操作时,根据该信息查找待执行文件,再更新指针寄存器指向的当前表项,以便后续文件的存储;而当外部输入的待执行命令不是写入命令时,则需要根据待执行命令对应的指定文件的指定文件标识,确定指定文件对应的各个指定表项,进而确定指定表项对应的指定阵列地址指针,以便对各个指定阵列地址指针对应的指定block中的信息,并行执行待执行命令对应的操作。综上可见,通过由多个UFS芯片组成的UFS存储阵列,可以根据待执行文件大小和UFS存储阵列的最大并行的block的数量,对文件进行并行写入或者并行执行待执行命令对应的操作,在文件较大时,可以提高文件执行的速度,从而实现通过多个UFS芯片组成的UFS存储阵列满足用户高要求的使用需求。
2、在本发明一实施例中,由于UFS存储阵列中的每一个block位宽均相同,所以通过确定待执行文件的大小,可以确定待执行文件在写入时需要使用的block的数量,例如,UFS存储阵列中每个block的位宽为10bit,待执行文件的大小为30bit,那么待执行文件当前需要使用的block的数量为3个。UFS存储阵列的最大并行的block的数量为,组成UFS存储阵列的UFS芯片的数量,当待执行文件当前需要使用的block的数量不大于组成UFS存储阵列的UFS芯片的数量时,待执行文件需要使用的block的数量,即为待执行文件的并行写入规模,以使在待执行文件较大时提供高达最大并行指数倍的单片UFS芯片的写入速度,提高用户的使用体验。而当待执行文件当前需要使用的block的数量大于组成UFS存储阵列的UFS芯片的数量时,则需要UFS存储阵列的最大并行的block的数量,选择待执行文件并行写入时的规模。每次在将待执行文件写入需要写入信息block时,可以通过指针寄存器的当前位置和待执行文件的写入规模,来确定需要写入信息的FIFO的目标表项,以便根据目标表项查找需要写入信息的block完成信息的写入。
3、在本发明一实施例中,在待执行文件当前需要使用的block的数量大于UFS存储阵列最大并行的block的数量时,根据最大并行的block的数量确定待执行文件此次进行写入操作时对应的目标表项,通过各个目标表项可以确定对应的目标阵列地址指针,进而确定待执行文件此次进行写入操作需要使用的block,将待执行文件中m个block位宽的信息并行存储到此次需要使用的block中,即可完成写入操作。当已存储信息后的待执行文件的当前需要使用的block的数量不大于UFS存储阵列最大并行的block的数量时,则待执行文件该次写入的规模为当前需要使用的block。
需要说明的是,在本文中,诸如第一和第二之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个······”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同因素。
最后需要说明的是:以上所述仅为本发明的较佳实施例,仅用于说明本发明的技术方案,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所做的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

Claims (10)

1.一种通用闪存存储存储阵列的管理方法,其特征在于,包括:
S1:预先确定通用闪存存储UFS存储阵列中的UFS芯片的每一个block的阵列地址指针;
S2:针对每一个所述UFS芯片,建立由所述UFS芯片的每一个所述block组成的FIFO,其中,所述FIFO的每一个表项与所述UFS芯片的一个所述阵列地址指针相对应;
S3:当接收到外部输入的待执行命令时,确定所述待执行命令是否为写入命令,如果是,执行S4,否则,执行S7;
S4:根据所述待执行命令对应的待执行文件的大小和指针寄存器指向的当前表项,从各个所述表项中确定所述待执行文件对应的至少一个目标表项,执行S5;
S5:按照所述至少一个目标表项对应的目标阵列地址指针,将所述待执行文件并行存储到对应的目标block中,并存储所述待执行文件的文件信息,其中,所述文件信息,包括:所述待执行文件的文件标识和对应的各个所述目标表项,执行S6;
S6:将所述指针寄存器从指向的所述当前表项顺次移动所述待执行文件对应的各个目标表项后指向的表项,作为所述指针寄存器指向的当前表项;
S7:根据所述待执行命令对应的指定文件的指定文件标识,从所述文件信息中确定所述指定文件对应的各个指定表项,并确定各个所述指定表项对应的指定阵列地址指针,执行S8;
S8:对各个所述指定阵列地址指针对应的指定block中的信息,并行执行所述待执行命令对应的操作。
2.根据权利要求1所述的方法,其特征在于,
在确定所述待执行命令为写入命令时,在执行S4之前,进一步包括:
D1:根据所述待执行命令对应的待执行文件的大小和所述block的位宽,确定所述待执行文件当前需要使用的block的数量;
D2:确定所述当前需要使用的block的数量是否不大于所述UFS存储阵列的最大并行的block的数量,如果是,执行S4,否则,根据所述最大并行的block的数量和所述当前需要使用的block的数量,将所述待执行文件并行存储到对应的block中;
其中,
所述S4中的所述根据所述待执行命令对应的待执行文件的大小和指针寄存器指向的当前表项,从各个所述表项中确定所述待执行文件对应的至少一个目标表项,包括:
将指针寄存器从指向的当前FIFO的当前表项顺次移动n次时指向的至少一个所述FIFO的表项,作为所述待执行文件对应的至少一个目标表项,其中,n为所述待执行文件当前需要使用的所述block的数量。
3.根据权利要求2所述的方法,其特征在于,
所述根据所述最大并行的block的数量和所述当前需要使用的block的数量,将所述待执行文件并行存储到对应的block中,包括:
F1:将所述指针寄存器从指向的当前FIFO的当前表项顺次移动m次时指向的至少一个所述FIFO的表项,作为所述待执行文件对应的目标表项,其中,m为所述最大并行的block的数量;
F2:按照所述待执行文件对应的目标表项所对应的目标阵列地址指针,将所述待执行文件中m个block位宽的信息并行存储到对应的所述block中;
F3:将所述指针寄存器从指向的当前FIFO的当前表项顺次移动m次后指向的表项作为当前表项;
F4:确定已存储m个block位宽的信息后的所述待执行文件当前需要使用的block的数量是否不大于所述最大并行的block的数量,如果是,执行F5和S4,否则,执行F5,并返回F1;
F5:将已存储m个block位宽的信息后的所述待执行文件作为待执行文件。
4.根据权利要求1所述的方法,其特征在于,
所述S1,包括:
针对通用闪存存储UFS存储阵列中的每一个UFS芯片,根据所述UFS芯片中的每一个block的物理地址,确定每一个所述block的逻辑地址;
对所述UFS存储阵列中的每一个block的逻辑地址编码,获得每一个所述block的逻辑地址对应的阵列地址指针;
所述按照所述至少一个目标表项对应的目标阵列地址指针,将所述待执行文件并行存储到对应的目标block中,包括:
确定与所述至少一个目标表项对应的目标阵列地址指针相对应的目标block;
将所述待执行文件并行存储到各个所述目标block中;
所述S8,包括:
确定各个所述指定阵列地址指针分别对应指定block的逻辑地址;
根据每一个所述指定block的逻辑地址,分别确定每一个所述指定block的物理地址;
对各个所述指定block的物理地址对应的指定block,并行执行所述待执行命令对应的操作。
5.根据权利要求1至4中任一所述的方法,其特征在于,
在所述从所述文件信息中确定所述待执行命令对应的指定文件标识所对应的各个指定表项之后,在所述确定各个所述指定表项对应的指定阵列地址指针之前,进一步包括:
确定所述指定表项的数量是否不大于所述UFS存储阵列的最大并行的block的数量;
如果是,执行所述确定各个所述指定表项对应的指定阵列地址指针;
否则,根据各个所述指定表项和所述最大并行的block的数量,对所述待执行文件使用的block并行执行所述待执行命令对应的操作。
6.根据权利要求5所述的方法,其特征在于,
所述根据各个所述指定表项和所述最大并行的block的数量,对所述待执行文件使用的block并行执行所述待执行命令对应的操作,包括:
G1:确定未处理集合,其中,所述未处理集合包括各个所述指定表项;
G2:从所述未处理集合中取出所述最大并行的block的数量个待执行表项;
G3:确定各个所述待执行表项对应的待执行阵列地址指针;
G4:对各个所述待执行阵列地址指针对应的block,并行执行所述待执行命令对应的操作;
G5:判断所述未处理集合中的所述待执行表项的数量是否不大于所述最大并行的block的数量,如果是,执行G6,否则,返回G2;
G6:将所述未处理集合中的所述指定表项作为待执行表项,执行G3、G4和G7;
G7:当所述待执行命令为擦除命令时,删除存储的所述指定文件对应的各个指定表项和指定文件标识。
7.一种通用闪存存储存储阵列的管理装置,其特征在于,包括:
阵列地址指针确定模块,用于执行S1:预先确定通用闪存存储UFS存储阵列中的UFS芯片的每一个block的阵列地址指针;
指针管理模块,用于S2:针对每一个所述UFS芯片,建立由所述UFS芯片的每一个所述block组成的FIFO,其中,所述FIFO的每一个表项与所述UFS芯片的一个所述阵列地址指针确定模块确定的所述阵列地址指针相对应;
处理模块,用于S3:当接收到外部输入的待执行命令时,确定所述待执行命令是否为写入命令,如果是,触发写入模块,否则,触发非写入模块;
所述写入模块,用于被触发时,执行S4:根据所述待执行命令对应的待执行文件的大小和指针寄存器指向的当前表项,从所述指针管理模块建立的FIFO的各个表项中确定所述待执行文件对应的至少一个目标表项;S5:按照所述至少一个目标表项对应的目标阵列地址指针,将所述待执行文件并行存储到对应的目标block中,并存储所述待执行文件的文件信息,其中,所述文件信息,包括:所述待执行文件的文件标识和对应的各个所述目标表项,S6:将所述指针寄存器从指向的所述当前表项顺次移动所述待执行文件对应的各个目标表项后指向的表项,作为所述指针寄存器指向的当前表项;
所述非写入模块,用于被触发时,执行S7:根据所述待执行命令对应的指定文件的指定文件标识,从所述写入模块存储的所述文件信息中确定所述指定文件对应的各个指定表项,并确定各个所述指定表项对应的指定阵列地址指针;S8:对各个所述指定阵列地址指针对应的指定block中的信息,并行执行所述待执行命令对应的操作。
8.根据权利要求7所述的装置,其特征在于,所述写入模块,包括:第一写入管理模块和第二写入管理模块;
所述第一写入管理模块,用于执行D1:根据所述待执行命令对应的待执行文件的大小和所述block的位宽,确定所述待执行文件当前需要使用的block的数量;将指针寄存器从指向的当前FIFO的当前表项顺次移动n次时指向的至少一个所述FIFO的表项,作为所述待执行文件对应的至少一个目标表项,其中,n为所述待执行文件当前需要使用的所述block的数量;
所述第二写入管理模块,用于执行D2:确定所述第一写入管理模块确定的所述当前需要使用的block的数量是否不大于所述UFS存储阵列的最大并行的block的数量,如果是,执行S4,否则,根据所述最大并行的block的数量和所述当前需要使用的block的数量,将所述待执行文件并行存储到对应的block中。
9.根据权利要求8所述的装置,其特征在于,
所述第二写入管理模块,用于F1:将所述指针寄存器从指向的当前FIFO的当前表项顺次移动m次时指向的至少一个所述FIFO的表项,作为所述待执行文件对应的目标表项,其中,m为所述最大并行的block的数量;
F2:按照所述待执行文件对应的目标表项所对应的目标阵列地址指针,将所述待执行文件中m个block位宽的信息并行存储到对应的所述block中;
F3:将所述指针寄存器从指向的当前FIFO的当前表项顺次移动m次后指向的表项作为当前表项;
F4:确定已存储m个block位宽的信息后的所述待执行文件当前需要使用的block的数量是否不大于所述最大并行的block的数量,如果是,执行F5和S4,否则,执行F5,并返回F1;
F5:将已存储m个block位宽的信息后的所述待执行文件作为待执行文件。
10.根据权利要求7至9中任一所述的装置,其特征在于,
所述非写入模块,进一步用于确定所述指定表项的数量是否不大于所述UFS存储阵列的最大并行的block的数量,如果是,执行所述确定各个所述指定表项对应的指定阵列地址指针,否则,根据各个所述指定表项和所述最大并行的block的数量,对所述待执行文件使用的block并行执行所述待执行命令对应的操作。
CN201910421006.9A 2019-05-21 2019-05-21 一种通用闪存存储存储阵列的管理方法及装置 Active CN110119252B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910421006.9A CN110119252B (zh) 2019-05-21 2019-05-21 一种通用闪存存储存储阵列的管理方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910421006.9A CN110119252B (zh) 2019-05-21 2019-05-21 一种通用闪存存储存储阵列的管理方法及装置

Publications (2)

Publication Number Publication Date
CN110119252A true CN110119252A (zh) 2019-08-13
CN110119252B CN110119252B (zh) 2022-02-18

Family

ID=67522887

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910421006.9A Active CN110119252B (zh) 2019-05-21 2019-05-21 一种通用闪存存储存储阵列的管理方法及装置

Country Status (1)

Country Link
CN (1) CN110119252B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110781106A (zh) * 2019-09-05 2020-02-11 深圳市德名利电子有限公司 一种通用闪存存储器主机端芯片装置以及设备

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5896393A (en) * 1996-05-23 1999-04-20 Advanced Micro Devices, Inc. Simplified file management scheme for flash memory
US6845439B1 (en) * 2001-05-31 2005-01-18 Adaptec, Inc. Method and system for accessing an expanded SCB array
CN106874220A (zh) * 2017-02-15 2017-06-20 济南浪潮高新科技投资发展有限公司 一种nand flash阵列二级地址映射表的实现方法
CN108255739A (zh) * 2016-12-28 2018-07-06 爱思开海力士有限公司 存储器***及其操作方法
CN109524044A (zh) * 2017-09-18 2019-03-26 爱思开海力士有限公司 存储器***及其操作方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5896393A (en) * 1996-05-23 1999-04-20 Advanced Micro Devices, Inc. Simplified file management scheme for flash memory
US6845439B1 (en) * 2001-05-31 2005-01-18 Adaptec, Inc. Method and system for accessing an expanded SCB array
CN108255739A (zh) * 2016-12-28 2018-07-06 爱思开海力士有限公司 存储器***及其操作方法
CN106874220A (zh) * 2017-02-15 2017-06-20 济南浪潮高新科技投资发展有限公司 一种nand flash阵列二级地址映射表的实现方法
CN109524044A (zh) * 2017-09-18 2019-03-26 爱思开海力士有限公司 存储器***及其操作方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
秦国杰等: "基于内外两级并行的多通道闪存存储***设计", 《北京理工大学学报》 *
赵倩等: "一种基于NAND Flash的多通道存储***编址方式研究与实现", 《微电子学与计算机》 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110781106A (zh) * 2019-09-05 2020-02-11 深圳市德名利电子有限公司 一种通用闪存存储器主机端芯片装置以及设备

Also Published As

Publication number Publication date
CN110119252B (zh) 2022-02-18

Similar Documents

Publication Publication Date Title
US9280459B2 (en) Block grouping method for garbage collection of solid state drive
CN101458956B (zh) 存取一快闪存储器的装置、方法及平均地使用该快闪存储器的区块的方法
CN105760113B (zh) 基于nand闪存的高速存储设备及文件管理方法
US8769218B2 (en) System and apparatus for flash memory data management
CN103164490B (zh) 一种不固定长度数据的高效存储实现方法和装置
US9075707B2 (en) Data writing method and data storage device
TWI406130B (zh) 資料處理系統、控制器及其搜尋特定記憶體區的方法
CN103229164B (zh) 数据访问方法和装置
CN108984420A (zh) 管理非易失性存储器(nvm)中的多个名称空间
US20110072195A1 (en) Method for managing a memory device having multiple channels and multiple ways, and associated memory device and controller thereof
CN109284252B (zh) 一种通信设备中轻量级文件***管理方法
CN108491402B (zh) 一种轻量级文件***的实现方法
CN109582593A (zh) 一种基于计算的ftl地址映射方法及数据读、写方法
CN102169460A (zh) 变长数据管理方法及装置
CN110968269A (zh) 基于scm与ssd的键值存储***及读写请求处理方法
CN106598504B (zh) 数据存储方法及装置
US20090319721A1 (en) Flash memory apparatus and method for operating the same
US9009442B2 (en) Data writing method, memory controller and memory storage apparatus
KR101400506B1 (ko) 비휘발성 메모리 제어기 및 그 제어 방법
CN108664577B (zh) 一种基于flash空闲区的文件管理方法及***
CN109213423A (zh) 基于地址屏障无锁处理并发io命令
CN109947669A (zh) Kv存储设备的地址转换方法与***
CN109840218A (zh) 有效数据管理方法以及存储控制器
CN107203341A (zh) 基于闪存的数据存储方法、装置以及闪存芯片
CN110119252A (zh) 一种通用闪存存储存储阵列的管理方法及装置

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
TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20220125

Address after: 250100 building S02, No. 1036, Langchao Road, high tech Zone, Jinan City, Shandong Province

Applicant after: Shandong Inspur Scientific Research Institute Co.,Ltd.

Address before: 250100 First Floor of R&D Building 2877 Kehang Road, Sun Village Town, Jinan High-tech Zone, Shandong Province

Applicant before: JINAN INSPUR HIGH-TECH TECHNOLOGY DEVELOPMENT Co.,Ltd.

GR01 Patent grant
GR01 Patent grant