[go: up one dir, main page]

CN118585460A - 块寻址方法、装置、存储控制芯片及存储介质 - Google Patents

块寻址方法、装置、存储控制芯片及存储介质 Download PDF

Info

Publication number
CN118585460A
CN118585460A CN202410688739.XA CN202410688739A CN118585460A CN 118585460 A CN118585460 A CN 118585460A CN 202410688739 A CN202410688739 A CN 202410688739A CN 118585460 A CN118585460 A CN 118585460A
Authority
CN
China
Prior art keywords
block
current
belongs
flash
binding
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
CN202410688739.XA
Other languages
English (en)
Other versions
CN118585460B (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.)
Shenzhen Sandi Yixin Electronics Co ltd
Original Assignee
Shenzhen Sandi Yixin Electronics 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 Shenzhen Sandi Yixin Electronics Co ltd filed Critical Shenzhen Sandi Yixin Electronics Co ltd
Priority to CN202410688739.XA priority Critical patent/CN118585460B/zh
Publication of CN118585460A publication Critical patent/CN118585460A/zh
Application granted granted Critical
Publication of CN118585460B publication Critical patent/CN118585460B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0646Configuration or reconfiguration
    • 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)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Read Only Memory (AREA)

Abstract

本申请公开了一种块寻址方法、装置、存储控制芯片及存储介质。该方法包括:读取并加载预先存储的块地址表;将当前绑定块的块序号作为索引因子,定位出当前绑定块位于块地址表所属的信息区;基于当前绑定块所属的信息区匹配的参数数据,按照寻址算法计算得到块地址;根据当前绑定块对应的块地址,完成对Flash的写入或者读取。通过绑定块的块序号作为索引因子在块地址表中快速定位出绑定块所属的信息区,并根据绑定块匹配信息区的参数数据,按照寻址算法得到块地址,能够快速得到绑定块的块地址,提高寻址效率,实现读写加速。

Description

块寻址方法、装置、存储控制芯片及存储介质
技术领域
本发明涉及闪存技术领域,特别是涉及一种块寻址方法、装置及存储控制芯片。
背景技术
NANDFlash作为主流的存储介质之一,广泛应用于各类型的存储产品中,如U盘、SD卡等。NANDFlash的架构按照层次划分依次为Bank、Plane、Block(块)和Page(页),其中Block是NANDFlash最小的擦除单元,而Page是NANDFlash最小的读写单元。
Multi-Plane是NANDFlash提高读写性能的操作,该操作需预先按照配置好的绑定规则将来自不同Plane的块绑定形成绑定块。当执行数据读写时,数据从绑定块中读写时,以此减少NANDFlash内部CacheRegister和PageRegister之间的传输时间,实现读写加速。
绑定块是来自不同Plane的块组成,绑定块的块地址包含多个,这些块地址在量产阶段会生成块地址表来进行统一管理。相关技术中,当执行读写操作时,存储控制芯片需要加载整个块地址表来进行寻址,实现数据的读写,但由于每次读写都需要加载整个块地址表,绑定块的寻址效率偏低,对存储产品的随机读写性能会有影响。
发明内容
本发明的目的是克服现有技术中的不足之处,提供一种块寻址方法、装置、存储控制芯片及存储介质,能够提高寻址效率,加速读写性能。
本申请的第一方面提供了一种块寻址方法,包括:
读取并加载预先存储的块地址表;
将当前绑定块的块序号作为索引因子,定位出当前所述绑定块位于所述块地址表所属的信息区;
基于当前所述绑定块所属的所述信息区匹配的参数数据,按照寻址算法计算得到块地址;
根据当前所述绑定块对应的所述块地址,完成对Flash的写入或者读取。
进一步地,在其中一个实施例中,所述基于当前所述绑定块所属的所述信息区匹配的参数数据,按照寻址算法计算得到块地址,包括:
解析出当前所述绑定块所包含的闪存块;
读取各所述闪存块所属的信息区的参数数据,其中所述参数数据包括:当前所述闪存块所属的CE、当前所述闪存块所属的Bank、当前所述闪存块所属Plane的总块数、当前所述闪存块所属Bank的总Plane数、当前所述闪存块对应块模板比特位的位置序号和当前所述闪存块所属的Plane;
根据所述参数数据计算得到当前所述绑定块的块地址。
进一步地,在其中一个实施例中,所述解析出Flash中各Plane对应的块模板之后,还包括:
若各所述Plane对应的所述块模板均相同,保存其中一份所述块模板作为各所述Plane对应的所述块模板。
进一步地,在其中一个实施例中,所述预先存储的块地址表,按如下方式生成:
解析出Flash中各Plane对应的块模板;
按照预设划分规则将各所述块模板归类至不同信息区,并为每个所述信息区添加索引标识,生成块地址表,其中所述预设划分规则包括:基于当前Bank所属的CE、当前所述Plane所属的Bank、绑定关系进行划分;
存储所述块地址表。
本申请的第二方面提供了一种块寻址装置,包括:
加载模块,用于读取并加载预先存储的块地址表;
索引模块,用于将当前绑定块的块序号作为索引因子,定位出当前所述绑定块位于所述块地址表所属的信息区;
寻址模块,用于基于当前所述绑定块所属的所述信息区匹配的信息数据,按照寻址算法计算得到块地址;
读写模块,用于根据当前所述绑定块对应的所述块地址,完成对Flash的写入或者读取。
进一步地,在其中一个实施例中,所述寻址模块,包括:
解析单元,用于解析出当前所述绑定块所包含的闪存块;
读取单元,用于读取各所述闪存块所属的信息区的参数数据,其中所述参数数据包括:当前所述闪存块所属的CE、当前所述闪存块所属的Bank、当前所述闪存块所属Plane的总块数、当前所述闪存块所属Bank的总Plane数、当前所述闪存块对应块模板比特位的位置序号和当前所述闪存块所属的Plane;
算址单元,用于根据所述参数数据计算得到当前所述绑定块的块地址。
进一步地,在其中一个实施例中,所述寻址模块,还包括:
压缩单元,用于若各所述Plane对应的所述块模板均相同,保存其中一份所述块模板作为各所述Plane对应的所述块模板。
进一步地,在其中一个实施例中,所述预先存储的块地址表,按如下方式生成:
解析出Flash中各Plane对应的块模板;
按照预设划分规则将各所述块模板归类至不同信息区,并为每个所述信息区添加索引标识,生成块地址表,其中所述预设划分规则包括:基于当前Bank所属的CE、当前所述Plane所属的Bank、绑定关系进行划分;
存储所述块地址表。
本申请的第三方面提供了一种存储控制芯片,包括上述所述的块寻址装置。
本申请的第四方面提供了一种计算机可读存储介质,存储有可执行代码,当所述可执行代码被电子设备的处理器执行时,使所述处理器执行如上述所述的块寻址方法。
本申请的技术方案,包括:读取并加载预先存储的块地址表;将当前绑定块的块序号作为索引因子,定位出当前绑定块位于块地址表所属的信息区;基于当前绑定块所属的信息区匹配的参数数据,按照寻址算法计算得到块地址;根据当前绑定块对应的块地址,完成对Flash的写入或者读取。通过绑定块的块序号作为索引因子在块地址表中快速定位出绑定块所属的信息区,并根据绑定块匹配信息区的参数数据,按照寻址算法得到块地址,能够快速得到绑定块的块地址,提高寻址效率,实现读写加速。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1是本申请一实施例示出的块寻址方法的流程示意图;
图2所示为本申请一实施例中的块寻址装置的结构示意图;
图3所示为本申请一实施例中的存储产品的结构示意图;
图4所示为本申请一实施例中的存储控制芯片的结构示意图;
图5所示为本申请一实施例中的电子设备的结构示意图;
图6所示为本申请一实施例中的闪存块与绑定块之间的对应关系示意图。
具体实施方式
为了便于理解本发明,下面将相关附图对本发明进行更全面的描述。附图中给出了本发明的较佳实施方式。但是,本发明可以以许多不同的形式来实现,并不限于本文所描述的实施方式。相反地,提供这些实施方式的目的是使对本发明的公开内容理解的更加透彻全面。
需要说明的是,当元件被称为“固定于”另一个元件,它可以直接在另一个元件上或者也可以存在居中的元件。当一个元件被认为是“连接”另一个元件,它可以是直接连接到另一个元件或者可能同时存在居中元件。本文所使用的术语“垂直的”、“水平的”、“左”、“右”以及类似的表述只是为了说明的目的,并不表示是唯一的实施方式。
除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中在本发明的说明书中所使用的术语只是为了描述具体的实施方式的目的,不是旨在于限制本发明。本文所使用的术语“及/或”包括一个或多个相关的所列项目的任意的和所有的组合。
相关技术中,当执行读写操作时,存储控制芯片需要加载整个块地址表来进行寻址,实现数据的读写,但由于每次读写都需要加载整个块地址表,绑定块的寻址效率偏低,对存储产品的随机读写性能会有影响。
因此,为了解决上述技术问题,本申请提供了一种块寻址方法,能够提高寻址效率,加速读写性能。
以下结合附图详细说明本申请的技术方案。
请参阅图1,一种块寻址方法,包括如下步骤:
步骤S110、读取并加载预先存储的块地址表。
块地址表作为管理NANDFlash的数据,是相当重要的管理性数据,其用于记录NANDFlash中各块的块地址的管理表。由于NANDFlash中包含的块数量庞大,并且每个块地址一般需要分配2字节的空间来进行存储,因此按照现有技术中的技术手段,需要一定量的存储空间来存储块地址表。本实施例中,考虑到上述情况,对现有技术中块地址表的生成方式做出来优化,尽可能压缩块地址表的长度大小。
本实施例中的块地址表,可按如下方式生成:解析出Flash中各Plane对应的块模板;按照预设划分规则将各块模板归类至不同信息区,并为每个信息区添加索引标识,生成块地址表,其中预设划分规则包括:基于当前Bank所属的CE、当前Plane所属的Bank、绑定关系进行划分;存储块地址表。
块模板:是用于表达当前Plane下,哪些块是好块,哪些块是坏块的二进制序列。该模板会在对NANDFlash的量产阶段执行全盘扫描时会得到的基础数据。
另外,量产阶段还会扫描出一系列的用于描述NANDFlash的基础数据,这些数据包括Bank与CE(通道)的关系、Bank与Plane的关系、Plane与Plane的绑定关系、Plane包含的好坏块数量等。
根据上述量产阶段所得到的NANDFlash基础数据,本实施例中,可以按照预设划分规则将各块模板归类至不同信息区,并给每个信息区添加索引标识,具象化成块地址表,并存储块地址表。具体的预设划分规则包括:基于当前Bank所属的CE、当前Plane所属的Bank、绑定关系进行划分。
为了更好地理解本实施例的技术方案,下面以具体案列进行展开说明。如图3所示为本实施例中存储产品30的结构示意图。存储产品30包括存储控制芯片310和存储颗粒320,存储控制芯片310通过片选端口CE0来选中NANDFlash321或者NANDFlash322。每个NANDFlash包含2个Plane,其中NANDFlash321对应A1、A2,NANDFlash322对应B1和B2。另外,每个Plane包含5个块,分别是A11~A15、A21~A25、B11~B15和B21~B25。
经量产扫描,得到如下表1所示的块模板:
块模板 块模板序列
A1 01101
A2 10011
B1 11100
B2 10010
表1
其中,“0”代表该块为坏块,不可执行数据的读写,“1”为好块,可执行数据的读写。另外,PlaneA1和PlaneA2具备绑定关系,PlaneB1和PlaneB2具备绑定关系。
进一步地,作为优选实施方式,若各Plane对应的块模板均相同,保存其中一份块模板作为各Plane对应的块模板。需要说明的是,当各Plane对应的块模板均相同,即块模板A1、A2、B1和B2均相同,可以仅保存一份块模板作为其他Plane对应的块模板,这一目的在于能够进一步压缩块地址表的长度大小,完成对相同块模板的多次复用。
由于块模板A1和A2位于Bank0下,且PlaneA1和PlaneA2具备绑定关系;块模板B1和B2位于Bank1下,且PlaneB1和PlaneB2具备绑定关系;Bank0和Bank1位于CE0下。因此,根据预设划分规则对表1的数据进行划分,并添加索引标识,生成如表2所示的块地址信息表。
表2
其中,“信息区”是存储块模板的区域,基于当前Bank所属CE、当前Plane所属的Bank以及Plane与Plane的绑定关系来进行划分。“wStartBlkIndex”是其中一项索引标识,代表该信息区中绑定块的起始块号。“wBlkcnt”是另一项索引标识,代表该信息区中绑定块的数量。
本实施例中,A1和A2能够执行绑定,通过块模板可知A1和A2绑定后能够得到3个绑定块,绑定块序号对应0,1和2,因此INFO_0的索引标识wStartBlkIndex=0;wBlkcnt=3。B1和B2同样能够执行绑定,通过块模板可知B1和B2绑定后能够得到2个绑定块,绑定块序号对应3和4,因此INFO_1的索引标识wStartBlkIndex=3;wBlkcnt=2。总共得到5个绑定块,其中绑定块0~2的基础信息能够在INFO_0找到,而绑定块3~4的基础信息能够在INFO_1找到,通过上述方式,就完成了块地址表生成。
需要说明的是,块地址表的生成属于前置流程,是在步骤S110之前所必需要创建的块地址表,块地址表创建生成后,会存储在NANDFlash中。当存储控制芯片310需要写入或者读取数据时,就可以通过加载块地址表的方式来实现对NANDFlash中各块的读写操作。由于本实施例的块模板是采用二进制具象表达的序列,即使NANDFlash包含的块很多,其也不会占据过多NANDFlash的存储空间。对不同信息区添加的“划分信息”和“索引标识”进行区分,同样也不会占据过多NANDFlash的存储空间。
假设NANDFlash中的各Plane包括2000个块,按照本实施例的技术方案,4个块模板总共2000*4=8000bit,即1000字节,“划分信息”和“索引标识”的每个项数最多配置2个字节来进行存储,2个信息区总共耗费=1k+8*4=1032字节。相比于相关技术中采用每个块地址需要2个字节来进行管理的方式,块地址表=2000*4*4=16000字节。就能够看出本申请能够尽可能压缩块地址表占据NANDFlash的存储空间,同时,存储控制芯片310执行对NANDFlash的读写操作时,能够极大加快块地址表在存储控制芯片中RAM的加载速度,大幅度提升NANDFlash的随机读写性能。
步骤S120、将当前绑定块的块序号作为索引因子,定位出当前绑定块位于块地址表所属的信息区。
当块地址表创建生成并存储后,当存储控制芯片需要向NANDFlash写入一笔数据时,需要快速定位出绑定块的地址,以此来完成写入。由于在量产阶段,已经判定出NANDFlash210中的A1和A2具备绑定关系,NANDFlash220中的B1和B2具备绑定关系。在管理层面上,绑定的Plane会采用统一的分区(Partition)来对其进行管理,即在本实施例中,A1、A2、B1和B2会有专门的Partition0来进行管理。
由此,可以得出如图6所示的闪存块与绑定块之间的对应关系(假设是顺序绑定)。
Partition0作为用于管理A1和A2这两个Plane的分区,其内部具有3个绑定块(S0~S2),其中:
绑定块S0的块地址=闪存块A12的块地址+闪存块A21的块地址;
绑定块S1的块地址=闪存块A13的块地址+闪存块A24的块地址;
绑定块S2的块地址=闪存块A15的块地址+闪存块A25的块地址。
Partition0作为用于管理B1和B2这两个Plane的分区,其内部具有2个绑定块(S3~S4),其中:
绑定块S3的块地址=闪存块B11的块地址+闪存块B21的块地址;
绑定块S4的块地址=闪存块B12的块地址+闪存块B24的块地址。
以上对应关系对应了表1中的“索引标识”一栏。
进一步地,作为优选实施例,对于PlaneB1和PlaneB2而言,绑定形成的绑定块块数是2块,是按照顺序绑定的方式来实现的,顺序绑定即当前Plane下按照块的排列顺序来与其他Plane的块来进行绑定,即闪存块B11与闪存块B21绑定形成绑定块S3,闪存块B12与闪存块B24绑定形成绑定块S4。但在实际应用中,为了更好地发挥绑定块的读写性能,需要优先将品质好的闪存块选择出来并绑定形成绑定块。品质好的闪存块可以通过判断ECC的大小来分析,ECC越小代表当前闪存块品质越好,ECC越大代表当前闪存块品质越差。由于闪存块包含若干页,每个页都对应有ECC,将这些页所有的ECC读取,采用均值计算的方式来计算当前闪存块的ECC。如当前闪存块包含10个页,每个页的ECC分别是50、60、40、30、20、60、50、40,因此,当前闪存块的ECC=(50+60+40+30+20+60+50+40)/8≈44,因此当前闪存块的ECC等于44。若判定出闪存块B12的品质不如闪存块B13,则会优先将闪存块B13与闪存块B24绑定形成绑定块S3。
现存储控制芯片310准备向存储颗粒320写入一份新的数据,需要写入至绑定块S1中。存储控制芯片310的RAM加载块地址表,根据绑定块S1的索引“wBlkIndex”在块地址表中进行快速定位,并计算出绑定块S1的块地址。
本实施例中,由于已经根据“划分信息”和“索引标识”针对每个绑定块做了信息区的归类。因此,令wBlkIndex=1,wBlkIndex≥wStartBlkIndex并且<wStartBlkIndex+wBlkcnt,判定绑定块S1位于信息区INFO_0中,便完成了绑定块S1的快速定位。
步骤S130、基于当前绑定块所属的信息区匹配的参数数据,按照寻址算法计算得到块地址。
本实施例中,当定位出绑定块S1位于信息区INFO_0时,根据信息区INFO_0,读取该信息区所匹配的参数数据,并按照寻址算法计算得到块地址。
其中,寻址算法,可按如下方式实现:
解析出当前绑定块所包含的闪存块;读取各闪存块所属的信息区的参数数据,其中参数数据包括:当前闪存块所属的Bank、当前闪存块所属Plane的总块数、当前闪存块所属Bank的总Plane数、当前所述闪存块对应块模板比特位的位置序号和当前闪存块所属的Plane;根据参数数据计算得到当前绑定块的块地址。
需要说明的是,由于绑定块S1的块地址是由闪存块A13的块地址、闪存块A24的块地址所构成,因此,分别计算出闪存块A13、闪存块A24的块地址,便可以得到绑定块S1的块地址。
闪存块A13所属Bank0中,闪存块A13所属的PlaneA1中闪存块的总数是5块,闪存块A13所属Bank0中Plane的总数是2个,闪存块A13基于块模板“01101”的比特位是“1”,闪存块A13所属的PlaneA1序号是0,因此,根据以上参数数据,通过公式1)来计算得到闪存块A13的块地址。
Block address=INFO[i].Bank[j]*wBlkPerBank+Planecnt*x+Plane[k]1)
其中:
“Block address”代表当前闪存块的地址;
“INFO[i]”代表该当前闪存块所属的信息区;
“Bank[j]”代表当前闪存块所属的Bank;
“wBlkPerBank”代表当前闪存块所属Bank的总块数;
“Planecnt”代表当前闪存块所属Bank下的Plane总数;
“x”代表当前闪存块对应块模板比特位的位置序号;
“Plane[k]”代表当前闪存块位于所属Bank下的哪个Plane中。
本实施例中,令INFO[i].Bank[j]=0;wBlkPerBank=5;Planecnt=2;x=1;Plane[k]=0,可以计算得到闪存块A13的地址:
闪存块A13的地址=0*5+2*2+0=4。
同理,根据公式1)来计算闪存块A24的块地址:
闪存块A24的地址=0*5+2*3+1=7。
按照上述步骤,就能够得到绑定块S1的地址,需要说明的是,绑定块S1的地址是由闪存块A13和闪存块A24的地址所组成。
步骤S140、根据当前绑定块对应的块地址,完成对Flash的写入或者读取。
通过以上步骤,就能够得到绑定块的块地址,存储控制芯片310便可以根据绑定块S1的块地址,实现对Flash的写入操作。需要说明的是,不管是写入亦或者读取,绑定块的块地址的计算原理是相同,因此在案例展示中,仅以写入为例进行说明。
本实施的技术方案,通过绑定块的块序号作为索引因子在块地址表中快速定位出绑定块所属的信息区,并根据绑定块匹配信息区的参数数据,按照寻址算法得到块地址,能够快速得到绑定块的块地址,提高寻址效率,实现读写加速。
与前述的方法实施例相对应,本申请还提供了一种块寻址装置及相应实施例。
图2所示为本申请一实施例中示出的一种块寻址装置的结构示意图。
请参阅图2,一种块寻址装置200,包括:加载模块210、索引模块220、寻址模块230和读写模块240。其中:
加载模块210用于读取并加载预先存储的块地址表。
需要说明的是,预先存储的块地址表,可按如下方式生成解析出Flash中各Plane对应的块模板;按照预设划分规则将各块模板归类至不同信息区,并为每个信息去添加索引标识,生成块地址表,其中预设划分规则包括:基于当前Plane所属的Bank、绑定关系进行划分;存储块地址表。
索引模块220用于将当前绑定块的块序号作为索引因子,定位出当前绑定块位于块地址表所属的信息区。
寻址模块230用于基于当前绑定块所属的信息区匹配的参数数据,按照寻址算法计算得到块地址。
读写模块240用于根据当前绑定块对应的块地址,完成对Flash的写入或者读取。
进一步地,在一实施方式中,寻址模块230包括:解析单元231、压缩单元232、读取单元233和算址单元234。其中:
解析单元231用于解析出当前绑定块所包含的闪存块。
压缩单元232用于若各Plane对应的块模板均相同,保存其中一份块模板作为各Plane对应的块模板。
读取单元233用于读取各闪存块所属的信息区的参数数据,其中参数数据包括:当前闪存块所属的Bank、当前闪存块所属Plane的总块数、当前闪存块所属Bank的总Plane数、当前所述闪存块对应块模板比特位的位置序号和当前闪存块所属的Plane。
算址单元234用于根据参数数据计算得到当前绑定块的块地址。
需要说明的是,该实施例公开的块寻址装置所实现的块寻址方法如上述实施例,故在此不再进行详细讲述。可选地,本实施例中的各个模块和上述其他操作或功能分别为了实现前述实施例中的方法。
图4所示的是本申请一实施例示出的存储控制芯片的结构示意图。
请参阅图4,一种存储控制芯片310,包括上述的块寻址装置200。
需要说明的是,本实施例的存储控制芯片310,通过绑定块的块序号作为索引因子在块地址表中快速定位出绑定块所属的信息区,并根据绑定块匹配信息区的参数数据,按照寻址算法得到块地址,能够快速得到绑定块的块地址,提高寻址效率,实现读写加速。
参阅图5,本申请另一实施例示出了一种计算电子设备500包括:处理器510和存储器520。
处理器510可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(FieldProgrammable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。
通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器存储器510可以包括各种类型的存储单元,例如系统内存、只读存储器(ROM)和永久存储装置。
其中,ROM可以存储处理器520或者计算机的其他模块需要的静态数据或者指令。永久存储装置可以是可读写的存储装置。永久存储装置可以是即使计算机断电后也不会失去存储的指令和数据的非易失性存储设备。在一些实施方式中,永久性存储装置采用大容量存储装置(例如磁或光盘、闪存)作为永久存储装置。
另外一些实施方式中,永久性存储装置可以是可移除的存储设备(例如软盘、光驱)。系统内存可以是可读写存储设备或者易失性可读写存储设备,例如动态随机访问内存。系统内存可以存储一些或者所有处理器在运行时需要的指令和数据。
此外,存储器520可以包括任意计算机可读存储媒介的组合,包括各种类型的半导体存储芯片(例如DRAM,SRAM,SDRAM,闪存,可编程只读存储器),磁盘和/或光盘也可以采用。
在一些实施方式中,存储器520可以包括可读和/或写的可移除的存储设备,例如激光唱片(CD)、只读数字多功能光盘(例如DVD-ROM,双层DVD-ROM)、只读蓝光光盘、超密度光盘、闪存卡(例如SD卡、min SD卡和Micro-SD卡等)、磁性软盘等。计算机可读存储媒介不包含载波和通过无线或有线传输的瞬间电子信号。存储器520上存储有可执行代码,当可执行代码被处理器510处理时,可以使处理器510执行上文述及的方法中的部分或全部。
此外,根据本申请的方法还可以实现为一种计算机程序或计算机程序产品,该计算机程序或计算机程序产品包括用于执行本申请的上述方法中部分或全部步骤的计算机程序代码指令。
或者,本申请还可以实施为一种计算机可读存储介质(或非暂时性机器可读存储介质或机器可读存储介质),其上存储有可执行代码(或计算机程序或计算机指令代码),当可执行代码(或计算机程序或计算机指令代码)被电子设备(或服务器等)的处理器执行时,使处理器执行根据本申请的上述方法的各个步骤的部分或全部。
以上已经描述了本申请的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其他普通技术人员能理解本文披露的各实施例。

Claims (10)

1.一种块寻址方法,其特征在于,包括:
读取并加载预先存储的块地址表;
将当前绑定块的块序号作为索引因子,定位出当前所述绑定块位于所述块地址表所属的信息区;
基于当前所述绑定块所属的所述信息区匹配的参数数据,按照寻址算法计算得到块地址;
根据当前所述绑定块对应的所述块地址,完成对Flash的写入或者读取。
2.根据权利要求1所述的块寻址方法,其特征在于,所述基于当前所述绑定块所属的所述信息区匹配的参数数据,按照寻址算法计算得到块地址,包括:
解析出当前所述绑定块所包含的闪存块;
读取各所述闪存块所属的信息区的参数数据,其中所述参数数据包括:当前所述闪存块所属的CE、当前所述闪存块所属的Bank、当前所述闪存块所属Plane的总块数、当前所述闪存块所属Bank的总Plane数、当前所述闪存块对应块模板比特位的位置序号和当前所述闪存块所属的Plane;
根据所述参数数据计算得到当前所述绑定块的块地址。
3.根据权利要求2所述的块寻址方法,其特征在于,所述解析出Flash中各Plane对应的块模板之后,还包括:
若各所述Plane对应的所述块模板均相同,保存其中一份所述块模板作为各所述Plane对应的所述块模板。
4.根据权利要求1~3中任意一项所述的块寻址方法,其特征在于,所述预先存储的块地址表,按如下方式生成:
解析出Flash中各Plane对应的块模板;
按照预设划分规则将各所述块模板归类至不同信息区,并为每个所述信息区添加索引标识,生成块地址表,其中所述预设划分规则包括:基于当前Bank所属的CE、当前所述Plane所属的Bank、绑定关系进行划分;
存储所述块地址表。
5.一种块寻址装置,其特征在于,包括:
加载模块,用于读取并加载预先存储的块地址表;
索引模块,用于将当前绑定块的块序号作为索引因子,定位出当前所述绑定块位于所述块地址表所属的信息区;
寻址模块,用于基于当前所述绑定块所属的所述信息区匹配的参数数据,按照寻址算法计算得到块地址;
读写模块,用于根据当前所述绑定块对应的所述块地址,完成对Flash的写入或者读取。
6.根据权利要求5所述的块寻址装置,其特征在于,所述寻址模块,包括:
解析单元,用于解析出当前所述绑定块所包含的闪存块;
读取单元,用于读取各所述闪存块所属的信息区的参数数据,其中所述参数数据包括:当前所述闪存块所属的Bank、当前所述闪存块所属Plane的总块数、当前所述闪存块所属Bank的总Plane数、当前所述闪存块对应块模板比特位的位置序号和当前所述闪存块所属的Plane;
算址单元,用于根据所述参数数据计算得到当前所述绑定块的块地址。
7.根据权利要求5所述的块寻址装置,其特征在于,所述寻址模块,还包括:
压缩单元,用于若各所述Plane对应的所述块模板均相同,保存其中一份所述块模板作为各所述Plane对应的所述块模板。
8.根据权利要求5~7中任意一项所述的块寻址装置,其特征在于,所述预先存储的块地址表,按如下方式生成:
解析出Flash中各Plane对应的块模板;
按照预设划分规则将各所述块模板归类至不同信息区,并为每个所述信息区添加索引标识,生成块地址表,其中所述预设划分规则包括:基于当前Bank所属的CE、当前所述Plane所属的Bank、绑定关系进行划分;
存储所述块地址表。
9.一种存储控制芯片,其特征在于,包括如权利要求5~8中任意一项所述的块寻址装置。
10.一种计算机可读存储介质,其特征在于,存储有可执行代码,当所述可执行代码被电子设备的处理器执行时,使所述处理器执行如权利要求1~4中任意一项所述的块寻址方法。
CN202410688739.XA 2024-05-30 2024-05-30 块寻址方法、装置、存储控制芯片及存储介质 Active CN118585460B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202410688739.XA CN118585460B (zh) 2024-05-30 2024-05-30 块寻址方法、装置、存储控制芯片及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202410688739.XA CN118585460B (zh) 2024-05-30 2024-05-30 块寻址方法、装置、存储控制芯片及存储介质

Publications (2)

Publication Number Publication Date
CN118585460A true CN118585460A (zh) 2024-09-03
CN118585460B CN118585460B (zh) 2025-03-07

Family

ID=92536103

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202410688739.XA Active CN118585460B (zh) 2024-05-30 2024-05-30 块寻址方法、装置、存储控制芯片及存储介质

Country Status (1)

Country Link
CN (1) CN118585460B (zh)

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB1470328A (en) * 1973-04-09 1977-04-14 Ericsson Telefon Ab L M Stored programme controlled telephone exchange
CN101344867A (zh) * 2007-07-13 2009-01-14 深圳市江波龙电子有限公司 提高Nand型快闪存储器数据存取速度的方法
CN101533663A (zh) * 2008-03-11 2009-09-16 深圳市朗科科技股份有限公司 提高闪存介质数据存取速度的方法
CN101645310A (zh) * 2008-08-05 2010-02-10 深圳市朗科科技股份有限公司 闪存设备、闪存管理方法及系统
CN104699414A (zh) * 2013-12-09 2015-06-10 华为技术有限公司 一种数据读写方法及存储设备
CN104794065A (zh) * 2015-05-04 2015-07-22 常州工学院 一种多分组定长数据循环存取方法
CN113485974A (zh) * 2021-06-02 2021-10-08 翱捷科技股份有限公司 Nor闪存使用yaffs的方法及装置
CN114448890A (zh) * 2021-12-22 2022-05-06 天翼云科技有限公司 寻址方法、装置、电子设备及存储介质

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB1470328A (en) * 1973-04-09 1977-04-14 Ericsson Telefon Ab L M Stored programme controlled telephone exchange
CN101344867A (zh) * 2007-07-13 2009-01-14 深圳市江波龙电子有限公司 提高Nand型快闪存储器数据存取速度的方法
CN101533663A (zh) * 2008-03-11 2009-09-16 深圳市朗科科技股份有限公司 提高闪存介质数据存取速度的方法
CN101645310A (zh) * 2008-08-05 2010-02-10 深圳市朗科科技股份有限公司 闪存设备、闪存管理方法及系统
CN104699414A (zh) * 2013-12-09 2015-06-10 华为技术有限公司 一种数据读写方法及存储设备
CN104794065A (zh) * 2015-05-04 2015-07-22 常州工学院 一种多分组定长数据循环存取方法
CN113485974A (zh) * 2021-06-02 2021-10-08 翱捷科技股份有限公司 Nor闪存使用yaffs的方法及装置
CN114448890A (zh) * 2021-12-22 2022-05-06 天翼云科技有限公司 寻址方法、装置、电子设备及存储介质

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
CHE-WEI TSAO 等: "Efficient Victim Block Selection for Flash Storage Devices", IEEE TRANSACTIONS ON COMPUTERS, 3 March 2015 (2015-03-03), pages 3444 - 3460 *
王立 等: "闪存数据库系统中一种高效的自适应存储模式", 计算机应用, vol. 31, no. 5, 31 December 2011 (2011-12-31), pages 1400 - 1403 *

Also Published As

Publication number Publication date
CN118585460B (zh) 2025-03-07

Similar Documents

Publication Publication Date Title
TWI650644B (zh) 管理快閃記憶體模組的方法及相關的快閃記憶體控制器及電子裝置
US9317214B2 (en) Operating a memory management controller
US8892812B2 (en) Flash memory device and data writing method for a flash memory
CN110489052B (zh) 数据储存装置
CN104750571A (zh) 用以进行错误纠正的方法、存储装置与存储装置的控制器
CN104346288B (zh) 用来管理一记忆装置的方法以及记忆装置与控制器
US10013187B2 (en) Mapping table accessing method, memory control circuit unit and memory storage device
US12066952B2 (en) Data processing method and system, device, and medium
US8429339B2 (en) Storage device utilizing free pages in compressed blocks
CN104346292A (zh) 用来管理一记忆装置的方法、记忆装置与控制器
US9037781B2 (en) Method for managing buffer memory, memory controllor, and memory storage device
CN115756312A (zh) 数据访问系统、数据访问方法和存储介质
CN108733324A (zh) 一种固态硬盘的数据读写方法、装置、设备及存储介质
CN111984204B (zh) 一种数据读写方法、装置及电子设备和存储介质
CN112817919A (zh) 数据合并方法、装置及计算机可读存储介质
CN118585460A (zh) 块寻址方法、装置、存储控制芯片及存储介质
US20240070120A1 (en) Data processing method and apparatus
CN110262758B (zh) 一种数据存储管理方法、系统及相关设备
CN106802775A (zh) 一种数据存储方法及装置
US20080172522A1 (en) Information processing apparatus and incremental write type file management software
CN107870736B (zh) 支持大于4gb非线性闪存的方法及装置
CN118351925B (zh) 闪存预分类方法、装置、设备及存储介质
CN118331488A (zh) 优化ram存储空间的方法、装置、设备及存储介质
CN118331511B (zh) 存储器管理方法及存储器控制器
CN115687171B (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
GR01 Patent grant
GR01 Patent grant