CN117591036B - 基于固件与芯片微内核的占位数据补齐方法及系统 - Google Patents
基于固件与芯片微内核的占位数据补齐方法及系统 Download PDFInfo
- Publication number
- CN117591036B CN117591036B CN202410070964.7A CN202410070964A CN117591036B CN 117591036 B CN117591036 B CN 117591036B CN 202410070964 A CN202410070964 A CN 202410070964A CN 117591036 B CN117591036 B CN 117591036B
- Authority
- CN
- China
- Prior art keywords
- buffer area
- solid state
- programming
- state disk
- microkernel
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 33
- 239000007787 solid Substances 0.000 claims abstract description 70
- 238000012545 processing Methods 0.000 claims abstract description 41
- 230000015654 memory Effects 0.000 claims abstract description 19
- 230000000295 complement effect Effects 0.000 claims description 9
- 230000001502 supplementing effect Effects 0.000 claims description 4
- 230000007246 mechanism Effects 0.000 abstract description 9
- 230000008569 process Effects 0.000 abstract description 5
- 230000000694 effects Effects 0.000 abstract description 2
- 238000012544 monitoring process Methods 0.000 abstract description 2
- 230000004044 response Effects 0.000 abstract description 2
- 238000013461 design Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 3
- 239000002699 waste material Substances 0.000 description 3
- 239000013589 supplement Substances 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000003321 amplification Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 210000001503 joint Anatomy 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 238000003199 nucleic acid amplification method Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0608—Saving storage space on storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0611—Improving I/O performance in relation to response time
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0653—Monitoring storage devices or systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0658—Controller construction arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-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)
- Computer Security & Cryptography (AREA)
- Read Only Memory (AREA)
Abstract
本发明属于存储技术领域,具体公开了基于固件与芯片微内核的占位数据补齐方法及系统。通过相应的自动超时通知机制,可以实时监测编程单元的组成状态,并在编程单元未按预定时间凑齐时,即时告知中央处理器,这种自动化的超时响应机制减少了中央处理器的监控负担,提高了固态硬盘数据处理的效率和可靠性;通过相应的数据占位自动化补齐方式,可以在检测到编程单元数据块不完整时,自动补充占位数据块,简化了数据补齐操作,确保了固态硬盘数据写入过程的高效性和精确性;通过同一占位数据块复写机制,显著减少了时间消耗和内存消耗,提升了固态硬盘数据写入操作速度。本发明在减小固态硬盘写入放大效应和提高整体性能方面具有明显优势。
Description
技术领域
本发明属于存储技术领域,具体涉及基于固件与芯片微内核的占位数据补齐方法及系统。
背景技术
随着半导体存储技术的飞速发展,固态硬盘(Solid State Drives, SSD)已成为高性能存储系统的核心。在固态硬盘中,数据通常按照4K或8K(分别记为P4K或P8K)的数据块进行管理。为了提高固态硬盘的写入效率,通常采用多重写入(multi-write)的方式,将多个P4K或P8K数据块组合成一个更大的写入单元,称为编程单元(Programming Unit,prou),该单元是实际写入固态硬盘NAND闪存的最小数据单位。
在这种环境下,有效管理和维护固态硬盘写入数据的完整性变得尤为重要。在某些情况下,如数据不频繁更新或遭遇异常断电时,固态硬盘中的数据块(P4K或P8K)可能无法凑齐成为最小写入单元(Program Unit, prou)。这种不完整的数据单元需暂存于内存,未能及时写入NAND闪存,将导致内存资源浪费和数据丢失的风险。对于这种情况,可在不完整的数据单元中补齐相应的占位数据(Dummy Data)来得到完整的编程单元(ProgrammingUnit, prou)写入NAND闪存。
传统的补齐占位数据(Dummy Data)的方法是通过纯软件的方式实现的:1.结合定时器(Timer),在定时器的回调函数中检查编程单元是否已经组成完整;2.在检测到编程单元不完整时,需要通过软件反复申请多个P4K大小的内存,并将这些虚拟数据与原有数据在内存中组合成编程单元后,再写入NAND闪存。这种传统方法存在效率低下和资源浪费的问题,需软件层面反复申请内存,会导致内存资源的浪费,并且处理核心在写入流程中需要检测编程单元数据是否凑齐,将会降低写入性能。鉴于此,亟需一种可高效补齐占位数据的手段。
发明内容
本发明的目的是提供基于固件与芯片微内核的占位数据补齐方法及系统,用以解决现有技术中存在的上述问题。
为了实现上述目的,本发明采用以下技术方案:
第一方面,提供基于固件与芯片微内核的占位数据补齐方法,应用于固态硬盘主控芯片的微内核,方法包括:
接收固态硬盘主控芯片的中央处理器所发送的配置信息,所述配置信息包括缓存区地址、编程单元结构参数和预定时间段;
基于编程单元结构参数检测在预定时间段内固态硬盘所有待写入的编程单元中是否存在未凑齐的编程单元;
在检测到存在未凑齐的编程单元时,生成中断信号,并根据编程单元结构参数确定对应编程单元所缺少的数据块数量;
将中断信号传输至中央处理器,并接收中央处理器反馈的写入命令;
基于写入命令调取缓存区地址,并根据缓存区地址访问预置的缓存区,从缓存区内读取预存的占位数据块;
根据对应编程单元所缺少的数据块数量将占位数据块重复写入对应编程单元,以补齐对应编程单元,得到完整编程单元;
将完整编程单元写入固态硬盘闪存芯片。
在一个可能的设计中,所述编程单元包含若干个4K数据块,所述占位数据块为4K数据块,所述缓存区为4K大小的缓存区。
在一个可能的设计中,所述编程单元结构参数包含完整编程单元的4K数据块数量。
第二方面,提供基于固件与芯片微内核的占位数据补齐方法,应用于固态硬盘主控芯片的中央处理器,方法包括:
创建缓存区和占位数据块,将占位数据块存入缓存区内,确定缓存区的缓存区地址;
获取编程单元结构参数和预定时间段;
将缓存区地址、编程单元结构参数和预定时间段组成配置信息,将配置信息发送至固态硬盘主控芯片的微内核,以使微内核基于编程单元结构参数检测在预定时间段内固态硬盘所有待写入的编程单元中是否存在未凑齐的编程单元,以及在检测到存在未凑齐的编程单元时生成中断信号,根据编程单元结构参数确定对应编程单元所缺少的数据块数量;
接收微内核反馈的中断信号,并响应中断信号生成写入命令;
将写入命令发送至微内核,以使微内核基于写入命令调取缓存区地址,根据缓存区地址访问预置的缓存区,从缓存区内读取预存的占位数据块,根据对应编程单元所缺少的数据块数量将占位数据块重复写入对应编程单元,补齐对应编程单元,得到完整编程单元,将完整编程单元写入固态硬盘闪存芯片。
在一个可能的设计中,所述编程单元包含若干个4K数据块,所述占位数据块为4K数据块,所述缓存区为4K大小的缓存区。
在一个可能的设计中,所述编程单元结构参数包含完整编程单元的4K数据块数量。
第三方面,提供基于固件与芯片微内核的占位数据补齐方法,应用于固态硬盘主控芯片,方法包括:
创建缓存区和占位数据块,将占位数据块存入缓存区内,确定缓存区的缓存区地址;
获取编程单元结构参数和预定时间段;
基于编程单元结构参数检测在预定时间段内固态硬盘所有待写入的编程单元中是否存在未凑齐的编程单元;
在检测到存在未凑齐的编程单元时,根据编程单元结构参数确定对应编程单元所缺少的数据块数量;
调取缓存区地址,并根据缓存区地址访问预置的缓存区,从缓存区内读取预存的占位数据块;
根据对应编程单元所缺少的数据块数量将占位数据块重复写入对应编程单元,以补齐对应编程单元,得到完整编程单元;
将完整编程单元写入固态硬盘闪存芯片。
在一个可能的设计中,所述编程单元包含若干个4K数据块,所述占位数据块为4K数据块,所述缓存区为4K大小的缓存区。
在一个可能的设计中,所述编程单元结构参数包含完整编程单元的4K数据块数量。
第四方面,提供基于固件与芯片微内核的占位数据补齐系统,包括固态硬盘主控芯片和固态硬盘闪存芯片,所述固态硬盘主控芯片设有中央处理器和微内核,其中:
中央处理器,用于创建缓存区和占位数据块,将占位数据块存入缓存区内,确定缓存区的缓存区地址;获取编程单元结构参数和预定时间段;将缓存区地址、编程单元结构参数和预定时间段组成配置信息,将配置信息发送至固态硬盘主控芯片的微内核;接收微内核反馈的中断信号,并响应中断信号生成写入命令;以及将写入命令发送至微内核;
微内核,用于接收中央处理器所发送的配置信息;基于编程单元结构参数检测在预定时间段内固态硬盘所有待写入的编程单元中是否存在未凑齐的编程单元;在检测到存在未凑齐的编程单元时,生成中断信号,并根据编程单元结构参数确定对应编程单元所缺少的数据块数量;将中断信号传输至中央处理器,并接收中央处理器反馈的写入命令;基于写入命令调取缓存区地址,并根据缓存区地址访问预置的缓存区,从缓存区内读取预存的占位数据块;根据对应编程单元所缺少的数据块数量将占位数据块重复写入对应编程单元,以补齐对应编程单元,得到完整编程单元;将完整编程单元写入固态硬盘闪存芯片。
在一个可能的设计中,所述微内核部署于相应的硬件加速器内,所述硬件加速器包括配置寄存器和状态寄存器,所述配置寄存器用于存储配置信息,所述状态寄存器用于向中央处理器传输中断信号。
在一个可能的设计中,所述固态硬盘闪存芯片为Nand-flash存储器。
有益效果:本发明通过相应的自动超时通知机制,可以实时监测编程单元的组成状态,并在编程单元未按预定时间凑齐时,通过中断信号即时告知中央处理器,这种自动化的超时响应机制减少了中央处理器的监控负担,提高了固态硬盘数据处理的效率和可靠性。本发明通过相应的数据占位自动化补齐方式,可以在检测到编程单元数据块不完整时,自动补充占位数据块,不仅简化了数据补齐操作,还确保了固态硬盘数据写入过程的高效性和精确性。本发明通过同一占位数据块复写机制,确保反复使用同一占位数据块进行虚拟数据占位,显著减少了时间消耗和内存消耗,提升了写入操作速度,使处理时间更短,内存资源利用率更优,这种方法在减小固态硬盘写入放大效应和提高整体性能方面具有明显优势。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例1中方法的步骤示意图;
图2为本发明实施例2中系统的架构示意图。
具体实施方式
在此需要说明的是,对于这些实施例方式的说明用于帮助理解本发明,但并不构成对本发明的限定。本文公开的特定结构和功能细节仅用于描述本发明的示例实施例。然而,可用很多备选的形式来体现本发明,并且不应当理解为本发明限制在本文阐述的实施例中。
应当理解,除非另有明确的规定和限定,术语“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在实施例中的具体含义。
在下面的描述中提供了特定的细节,以便于对示例实施例的完全理解。然而,本领域普通技术人员应当理解可以在没有这些特定细节的情况下实现示例实施例。例如可以在框图中示出系统,以避免用不必要的细节来使得示例不清楚。在其他实施例中,可以不以非必要的细节来示出众所周知的过程、结构和技术,以避免使得实施例不清楚。
实施例1:
本实施例提供基于固件与芯片微内核的占位数据补齐方法,可应用于相应的固态硬盘主控芯片,所述固态硬盘主控芯片包括中央处理器和微内核,所述微内核与固态硬盘闪存芯片建立数据对接,如图1所示,方法包括以下步骤:
S1.中央处理器创建缓存区和占位数据块,将占位数据块存入缓存区内,确定缓存区的缓存区地址,并获取编程单元结构参数和预定时间段。
具体实施时,在初始化阶段,中央处理器(CPU)先申请创建一个缓存区(Buffer),并计算创建需要的占位数据块(Dummy Data),所述缓存区专门用于存储占位数据块(DummyData),占位数据块(Dummy Data)采用4K数据块(P4K),缓存区为4K大小的缓存区,在将占位数据块(Dummy Data)存入缓存区内后,生成所述缓存区的缓存区地址。同时,中央处理器(CPU)预先设定编程单元结构参数和预定时间段,编程单元结构参数包括一个完整编程单元(Programming Unit,prou)中所包含4K数据块的数量,预定时间段即设定的时间阈值,用于实现后续的自动超时通知机制。
S2.中央处理器将缓存区地址、编程单元结构参数和预定时间段组成配置信息,将配置信息发送至固态硬盘主控芯片的微内核。
具体实施时,中央处理器(CPU)将利用缓存区地址、编程单元结构参数和预定时间段组成配置信息,然后将配置信息发送至固态硬盘主控芯片的微内核。
S3.微内核接收中央处理器所发送的配置信息,并基于编程单元结构参数检测在预定时间段内固态硬盘所有待写入的编程单元中是否存在未凑齐的编程单元。
具体实施时,微内核在接收到中央处理器(CPU)所发送的配置信息后,根据编程单元结构参数监测在预定时间段内固态硬盘各待写入的编程单元,判断其中是否存在预定时间段内还未凑齐的编程单元,未凑齐的编程单元即所含4K数据块数量没有达到完整编程单元应包含4K数据块数量的编程单元。通过设置预定时间段,以实现自动超时通知机制。
S4.微内核在检测到存在未凑齐的编程单元时,生成中断信号,并根据编程单元结构参数确定对应编程单元所缺少的数据块数量。
具体实施时,当微内核在检测到存在未凑齐的编程单元时,根据完整编程单元应包含4K数据块数量及未凑齐的编程单元当前所含的4K数据块数量,确定未凑齐的编程单元所缺少的数据块数量,并生成对应的中断信号。
S5.微内核将中断信号传输至中央处理器。
S6.中央处理器响应中断信号生成写入命令,并将写入命令发送至微内核。
具体实施时,中央处理器(CPU)在接收到中断信号后,可判断是否是因为长时间未凑齐或紧急情况(如立即下电)导致中断,并立即响应中断信号生成写入命令,并将写入命令发送至微内核。
S7.微内核基于写入命令调取缓存区地址,并根据缓存区地址访问预置的缓存区,从缓存区内读取预存的占位数据块。
具体实施时,微内核接收到写入命令后,调取对应的缓存区地址并根据缓存区地址访问预置的缓存区,从缓存区内读取预存的占位数据块(Dummy Data)。
S8.根据对应编程单元所缺少的数据块数量将占位数据块重复写入对应编程单元,以补齐对应编程单元,得到完整编程单元。
具体实施时,微内核根据对应编程单元所缺少的数据块数量将占位数据块(DummyData)重复写入对应编程单元,以补齐对应编程单元所缺少的数据块,得到完整编程单元(prou)。示例性地,如对应编程单元所缺少的数据块数量为3,则将占位数据块(DummyData)重复3次写入对应编程单元,以补齐对应编程单元所缺少的3个数据块。
S9.微内核将完整编程单元写入固态硬盘闪存芯片。
具体实施时,微内核将占位数据块重复补入对应未凑齐的编程单元中,得到完整编程单元后,就将完整编程单元写入固态硬盘闪存芯片中。若微内核监测到多个未凑齐编程单元,那么各未凑齐编程单元的占位数据块补齐操作可并行进行,以提高固态硬盘数据写入效率。
本实施例方法过相应的自动超时通知机制,可以减少中央处理器的监控负担,提高固态硬盘数据处理的效率和可靠性;通过相应的数据占位自动化补齐方式,可以简化数据补齐操作,确保固态硬盘数据写入过程的高效性和精确性;通过同一占位数据块复写机制,确保反复使用同一占位数据块进行虚拟数据占位,显著减少了时间消耗和内存消耗,提升了写入操作速度,使处理时间更短,内存资源利用率更优。
实施例2:
本实施例提供基于固件与芯片微内核的占位数据补齐系统,如图2所示,包括固态硬盘主控芯片和固态硬盘闪存芯片,所述固态硬盘主控芯片设有中央处理器(CPU)和微内核,其中:
中央处理器(CPU),用于创建缓存区和占位数据块(Dummy Data),将占位数据块(Dummy Data)存入缓存区内,确定缓存区的缓存区地址;获取编程单元结构参数和预定时间段;将缓存区地址、编程单元结构参数和预定时间段组成配置信息,将配置信息发送至固态硬盘主控芯片的微内核;接收微内核反馈的中断信号,并响应中断信号生成写入命令;以及将写入命令发送至微内核;
微内核,用于接收中央处理器(CPU)所发送的配置信息;基于编程单元结构参数检测在预定时间段内固态硬盘所有待写入的编程单元中是否存在未凑齐的编程单元;在检测到存在未凑齐的编程单元时,生成中断信号,并根据编程单元结构参数确定对应编程单元所缺少的数据块数量;将中断信号传输至中央处理器(CPU),并接收中央处理器(CPU)反馈的写入命令;基于写入命令调取缓存区地址,并根据缓存区地址访问预置的缓存区,从缓存区内读取预存的占位数据块(Dummy Data);根据对应编程单元所缺少的数据块数量将占位数据块(Dummy Data)重复写入对应编程单元,以补齐对应编程单元,得到完整编程单元;将完整编程单元写入固态硬盘闪存芯片。
进一步地,所述微内核部署于相应的硬件加速器内,所述硬件加速器包括配置寄存器和状态寄存器,所述配置寄存器用于存储配置信息,所述状态寄存器用于向中央处理器传输中断信号。
进一步地,所述固态硬盘闪存芯片为Nand-flash存储器。
实施例3:
本实施例还提供一种软件程序,当所述软件程序在微内核运行时,使得所述微内核执行实施例1方法中微内核的执行步骤。同时,本实施例还提供另一种软件程序,当该软件程序在中央处理器运行时,使得所述中央处理器执行实施例1方法中中央处理器的执行步骤。
最后应说明的是:以上所述仅为本发明的优选实施例而已,并不用于限制本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (8)
1.基于固件与芯片微内核的占位数据补齐方法,应用于固态硬盘主控芯片的微内核,其特征在于,包括:
接收固态硬盘主控芯片的中央处理器所发送的配置信息,所述配置信息包括缓存区地址、编程单元结构参数和预定时间段;
基于编程单元结构参数检测在预定时间段内固态硬盘所有待写入的编程单元中是否存在未凑齐的编程单元;
在检测到存在未凑齐的编程单元时,生成中断信号,并根据编程单元结构参数确定对应编程单元所缺少的数据块数量;
将中断信号传输至中央处理器,并接收中央处理器反馈的写入命令;
基于写入命令调取缓存区地址,并根据缓存区地址访问预置的缓存区,从缓存区内读取预存的占位数据块;
根据对应编程单元所缺少的数据块数量将占位数据块重复写入对应编程单元,以补齐对应编程单元,得到完整编程单元;
将完整编程单元写入固态硬盘闪存芯片。
2.基于固件与芯片微内核的占位数据补齐方法,应用于固态硬盘主控芯片的中央处理器,其特征在于,包括:
创建缓存区和占位数据块,将占位数据块存入缓存区内,确定缓存区的缓存区地址;
获取编程单元结构参数和预定时间段;
将缓存区地址、编程单元结构参数和预定时间段组成配置信息,将配置信息发送至固态硬盘主控芯片的微内核,以使微内核基于编程单元结构参数检测在预定时间段内固态硬盘所有待写入的编程单元中是否存在未凑齐的编程单元,以及在检测到存在未凑齐的编程单元时生成中断信号,根据编程单元结构参数确定对应编程单元所缺少的数据块数量;
接收微内核反馈的中断信号,并响应中断信号生成写入命令;
将写入命令发送至微内核,以使微内核基于写入命令调取缓存区地址,根据缓存区地址访问预置的缓存区,从缓存区内读取预存的占位数据块,根据对应编程单元所缺少的数据块数量将占位数据块重复写入对应编程单元,补齐对应编程单元,得到完整编程单元,将完整编程单元写入固态硬盘闪存芯片。
3.基于固件与芯片微内核的占位数据补齐方法,应用于固态硬盘主控芯片,其特征在于,包括:
创建缓存区和占位数据块,将占位数据块存入缓存区内,确定缓存区的缓存区地址;
获取编程单元结构参数和预定时间段;
基于编程单元结构参数检测在预定时间段内固态硬盘所有待写入的编程单元中是否存在未凑齐的编程单元;
在检测到存在未凑齐的编程单元时,根据编程单元结构参数确定对应编程单元所缺少的数据块数量;
调取缓存区地址,并根据缓存区地址访问预置的缓存区,从缓存区内读取预存的占位数据块;
根据对应编程单元所缺少的数据块数量将占位数据块重复写入对应编程单元,以补齐对应编程单元,得到完整编程单元;
将完整编程单元写入固态硬盘闪存芯片。
4.根据权利要求1-3任一所述的基于固件与芯片微内核的占位数据补齐方法,其特征在于,所述编程单元包含若干个4K数据块,所述占位数据块为4K数据块,所述缓存区为4K大小的缓存区。
5.根据权利要求4所述的基于固件与芯片微内核的占位数据补齐方法,其特征在于,所述编程单元结构参数包含完整编程单元的4K数据块数量。
6.基于固件与芯片微内核的占位数据补齐系统,其特征在于,包括固态硬盘主控芯片和固态硬盘闪存芯片,所述固态硬盘主控芯片设有中央处理器和微内核,其中:
中央处理器,用于创建缓存区和占位数据块,将占位数据块存入缓存区内,确定缓存区的缓存区地址;获取编程单元结构参数和预定时间段;将缓存区地址、编程单元结构参数和预定时间段组成配置信息,将配置信息发送至固态硬盘主控芯片的微内核;接收微内核反馈的中断信号,并响应中断信号生成写入命令;以及将写入命令发送至微内核;
微内核,用于接收中央处理器所发送的配置信息;基于编程单元结构参数检测在预定时间段内固态硬盘所有待写入的编程单元中是否存在未凑齐的编程单元;在检测到存在未凑齐的编程单元时,生成中断信号,并根据编程单元结构参数确定对应编程单元所缺少的数据块数量;将中断信号传输至中央处理器,并接收中央处理器反馈的写入命令;基于写入命令调取缓存区地址,并根据缓存区地址访问预置的缓存区,从缓存区内读取预存的占位数据块;根据对应编程单元所缺少的数据块数量将占位数据块重复写入对应编程单元,以补齐对应编程单元,得到完整编程单元;将完整编程单元写入固态硬盘闪存芯片。
7.根据权利要求6所述的基于固件与芯片微内核的占位数据补齐系统,其特征在于,所述微内核部署于相应的硬件加速器内,所述硬件加速器包括配置寄存器和状态寄存器,所述配置寄存器用于存储配置信息,所述状态寄存器用于向中央处理器传输中断信号。
8.根据权利要求6所述的基于固件与芯片微内核的占位数据补齐系统,其特征在于,所述固态硬盘闪存芯片为Nand-flash存储器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410070964.7A CN117591036B (zh) | 2024-01-18 | 2024-01-18 | 基于固件与芯片微内核的占位数据补齐方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410070964.7A CN117591036B (zh) | 2024-01-18 | 2024-01-18 | 基于固件与芯片微内核的占位数据补齐方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117591036A CN117591036A (zh) | 2024-02-23 |
CN117591036B true CN117591036B (zh) | 2024-03-19 |
Family
ID=89911843
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410070964.7A Active CN117591036B (zh) | 2024-01-18 | 2024-01-18 | 基于固件与芯片微内核的占位数据补齐方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117591036B (zh) |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105917318A (zh) * | 2012-07-24 | 2016-08-31 | 英特尔公司 | 用于实现基于ssd的i/o高速缓存的系统和方法 |
CN107357666A (zh) * | 2017-06-26 | 2017-11-17 | 西安微电子技术研究所 | 一种基于硬件保护的多核并行系统处理方法 |
CN107402724A (zh) * | 2017-07-31 | 2017-11-28 | 郑州云海信息技术有限公司 | 一种SSD中Journal元数据的保存方法及系统 |
CN107797756A (zh) * | 2016-09-05 | 2018-03-13 | 上海宝存信息科技有限公司 | 固态硬盘系统的优先写入方法以及使用该方法的装置 |
CN112148498A (zh) * | 2020-09-30 | 2020-12-29 | 平安普惠企业管理有限公司 | 数据同步方法、装置、服务器及存储介质 |
CN113672524A (zh) * | 2021-08-20 | 2021-11-19 | 上海哔哩哔哩科技有限公司 | 基于多级缓存的数据处理方法及系统 |
WO2022193218A1 (en) * | 2021-03-18 | 2022-09-22 | Micron Technology, Inc. | Techniques to mitigate memory die misalignment |
CN115203124A (zh) * | 2022-07-13 | 2022-10-18 | 北京极光星通科技有限公司 | 高速数据处理方法、系统、电子设备及存储介质 |
CN115857811A (zh) * | 2022-12-08 | 2023-03-28 | 深圳大普微电子科技有限公司 | 一种数据处理方法、装置、固态硬盘及可读存储介质 |
CN116991326A (zh) * | 2023-09-01 | 2023-11-03 | 成都芯盛集成电路有限公司 | 一种块数据保护方法、装置、设备及存储介质 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7397797B2 (en) * | 2002-12-13 | 2008-07-08 | Nvidia Corporation | Method and apparatus for performing network processing functions |
US9690515B2 (en) * | 2013-10-25 | 2017-06-27 | Sandisk Technologies Llc | Delayed automation to maximize the utilization of read and write cache |
KR20160028228A (ko) * | 2014-09-03 | 2016-03-11 | 삼성전자주식회사 | 플래시 메모리 장치, 플래시 메모리 시스템 및 이의 동작방법 |
-
2024
- 2024-01-18 CN CN202410070964.7A patent/CN117591036B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105917318A (zh) * | 2012-07-24 | 2016-08-31 | 英特尔公司 | 用于实现基于ssd的i/o高速缓存的系统和方法 |
CN107797756A (zh) * | 2016-09-05 | 2018-03-13 | 上海宝存信息科技有限公司 | 固态硬盘系统的优先写入方法以及使用该方法的装置 |
CN107357666A (zh) * | 2017-06-26 | 2017-11-17 | 西安微电子技术研究所 | 一种基于硬件保护的多核并行系统处理方法 |
CN107402724A (zh) * | 2017-07-31 | 2017-11-28 | 郑州云海信息技术有限公司 | 一种SSD中Journal元数据的保存方法及系统 |
CN112148498A (zh) * | 2020-09-30 | 2020-12-29 | 平安普惠企业管理有限公司 | 数据同步方法、装置、服务器及存储介质 |
WO2022193218A1 (en) * | 2021-03-18 | 2022-09-22 | Micron Technology, Inc. | Techniques to mitigate memory die misalignment |
CN113672524A (zh) * | 2021-08-20 | 2021-11-19 | 上海哔哩哔哩科技有限公司 | 基于多级缓存的数据处理方法及系统 |
CN115203124A (zh) * | 2022-07-13 | 2022-10-18 | 北京极光星通科技有限公司 | 高速数据处理方法、系统、电子设备及存储介质 |
CN115857811A (zh) * | 2022-12-08 | 2023-03-28 | 深圳大普微电子科技有限公司 | 一种数据处理方法、装置、固态硬盘及可读存储介质 |
CN116991326A (zh) * | 2023-09-01 | 2023-11-03 | 成都芯盛集成电路有限公司 | 一种块数据保护方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN117591036A (zh) | 2024-02-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7681004B2 (en) | Advanced dynamic disk memory module | |
EP3379420B1 (en) | Apparatus, system, and method to flush modified data from a volatile memory to a persistent second memory | |
TWI512476B (zh) | 用以控制非依電性記憶體裝置中之操作之方法以及相關電腦程式產品、電腦可讀儲存媒體、記憶體裝置、及主機裝置 | |
US10877686B2 (en) | Mass storage device with host initiated buffer flushing | |
CN112667445B (zh) | 封装后的内存修复方法及装置、存储介质、电子设备 | |
US11886742B2 (en) | Memory system control method for power-level state of a host via PCIe bus including receiving optimized buffer flush/fill (OBFF) messages over the PCIe bus | |
CN113760185A (zh) | 内存块回收方法和装置 | |
KR20210098717A (ko) | 컨트롤러, 컨트롤러의 동작 방법 및 이를 포함하는 저장 장치 | |
US20240053890A1 (en) | Data Storage Device That Detects And Releases Bottlenecks | |
CN112947869A (zh) | 固态硬盘及写操作方法 | |
US20120047387A1 (en) | Cache control device and cache control method | |
CN117591036B (zh) | 基于固件与芯片微内核的占位数据补齐方法及系统 | |
US20230289226A1 (en) | Instant Submission Queue Release | |
US11138066B1 (en) | Parity swapping to DRAM | |
KR20220045549A (ko) | 데이터의 메모리로의 예측 기반 선택적 플러시 | |
WO2023272585A1 (zh) | 一种测试存储器的方法和装置 | |
JPH1165898A (ja) | 電子計算機の保守方式 | |
CN118012355B (zh) | 模拟eeprom及其控制方法、模拟控制器、存储介质 | |
US12045506B2 (en) | Combining operations during reset | |
CN113094294B (zh) | Ssd异常掉电处理方法、装置、计算机设备及存储介质 | |
US11561735B2 (en) | Latency on indirect admin commands | |
CN116483612B (zh) | 内存故障处理方法、装置、计算机设备和存储介质 | |
US11640335B2 (en) | Multiple function level reset management | |
JPS62269253A (ja) | 半導体記憶装置の停電処理方式 | |
US20240111426A1 (en) | Data Storage Device That Detects and Releases Bottlenecks In Hardware |
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 |