CN109669635B - 用于固态存储主控芯片的命令lba重合检测方法及装置 - Google Patents

用于固态存储主控芯片的命令lba重合检测方法及装置 Download PDF

Info

Publication number
CN109669635B
CN109669635B CN201811559645.3A CN201811559645A CN109669635B CN 109669635 B CN109669635 B CN 109669635B CN 201811559645 A CN201811559645 A CN 201811559645A CN 109669635 B CN109669635 B CN 109669635B
Authority
CN
China
Prior art keywords
command
lba
information
read
interval
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
Application number
CN201811559645.3A
Other languages
English (en)
Other versions
CN109669635A (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 Union Memory Information System Co Ltd
Original Assignee
Shenzhen Union Memory Information System 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 Union Memory Information System Co Ltd filed Critical Shenzhen Union Memory Information System Co Ltd
Priority to CN201811559645.3A priority Critical patent/CN109669635B/zh
Publication of CN109669635A publication Critical patent/CN109669635A/zh
Application granted granted Critical
Publication of CN109669635B publication Critical patent/CN109669635B/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
    • G06F3/0613Improving I/O performance in relation to throughput
    • 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/0653Monitoring storage devices or systems
    • 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/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • 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)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本发明涉及用于固态存储主控芯片的命令LBA重合检测方法及装置,该方法包括获取来自主机的命令;对命令进行解析,判断命令是否为读写命令;若是,则剥离并记录命令的LBA信息,以得到LBA信息所在的LBA区间信息;判断是否存在未完成的读写命令;若是,则查询未完成的读写命令的LBA区间信息;判断上述两个LBA区间信息是否重合;若是,则获取上述两个LBA区间信息重合的LBA区间相关信息,以形成检测信息;将检测信息以及命令存储于系统缓存内,以供固件调取检测信息和命令进行分配命令执行顺序和数据搬运。本发明减少软件的操作步骤,降低CPU和系统缓存开销,提高命令解析检测的效率,提高命令的吞吐率。

Description

用于固态存储主控芯片的命令LBA重合检测方法及装置
技术领域
本发明涉及固态硬盘,更具体地说是指用于固态存储主控芯片的命令LBA重合检测方法及装置。
背景技术
根据NVMe(非易失性内存主机控制器接口规范,Non-Volatile Memory express)协议,固态硬盘的命令是乱序执行,主机不关注命令的执行顺序,主机通过命令完成的先后顺序来判断命令执行的先后顺序,因此可能出现LBA(逻辑区块地址,Logical BlockAddress)区间重合的读写命令与主机判断命令的执行顺序不一致的情况。具体的情形如图1所示,先来的读命令和后来的写命令的LBA区间重合,由于命令乱序执行,在读命令读取数据的过程中,写命令可能已经将数据写入DRAM(动态随机存取存储器,Dynamic RandomAccess Memory)或其他高速缓存并返回完成信息,读命令的数据须从外部存储介质全部传输至主机后才返回命令完成信息,然而读取的数据并不是写命令所写入的数据,而是之前的旧数据,由于主机根据命令完成的先后顺序判断命令的执行顺序,主机认为读命令应该返回新写入的数据,而不是旧数据。
为了处理上述问题,需要对每一笔读写的LBA的信息进行记录,通过对LBA重合的读写命令的合理调度来解决数据比对不自恰的问题,现有的技术方案如图2所示,主机发起读写命令;NVMe控制器将读写命令写入命令缓存中;固件获取命令;固件对该命令类型和LBA信息进行解析;固件记录根据读写命令类型分别记录LBA信息,若是读命令,则遍历查询并对比所有未完成的写命令的LBA信息,若是写命令,遍历查询并对比所有未完成的写命令的LBA信息,输出对比结果;若LBA区间重合,固件合理分配命令执行顺序以确保命令数据的自恰;固件指导命令执行和数据搬运。从第三个步骤开始均为软件操作,其中第四个步骤到第六个步骤为纯软件操作,第三个步骤和第七个步骤为软硬件交互操作,即存在大量的软件操作,尤其是第五个步骤,软件需要实时维护和查询命令的LBA信息,CPU和系统缓存开销较大,影响命令执行效率,尤其影响对CPU消耗较高的随机读写性能。
因此,有必要设计一种新的方法,实现降低CPU和系统缓存的开销,提高命令解析检测的效率,提高命令的吞吐率。
发明内容
本发明的目的在于克服现有技术的缺陷,提供用于固态存储主控芯片的命令LBA重合检测方法及装置。
为实现上述目的,本发明采用以下技术方案:用于固态存储主控芯片的命令LBA重合检测方法,包括:
获取来自主机的命令;
对命令进行解析,判断所述命令是否为读写命令;
若是,则剥离并记录所述命令的LBA信息,以得到LBA信息所在的LBA区间信息;
判断是否存在未完成的读写命令;
若是,则查询未完成的读写命令的LBA区间信息;
判断未完成的读写命令的LBA区间信息与LBA信息所在的LBA区间信息是否重合;
若是,则获取未完成的读写命令的LBA区间信息与LBA信息所在的LBA区间信息重合的LBA区间相关信息,以形成检测信息;
将检测信息以及所述命令存储于系统缓存内,以供固件调取检测信息和所述命令进行分配命令执行顺序和数据搬运。
其进一步技术方案为:所述对命令进行解析,判断所述命令是否为读写命令之后,还包括:
若否,则将所述命令存储于命令缓存中。
其进一步技术方案为:所述获取来自主机的命令,包括:
由NVMe硬件电路和/或SATA电路和/或eMMC电路和/或UFS电路获取来自主机的命令。
其进一步技术方案为:所述剥离并记录所述命令的LBA信息,以得到LBA信息所在的LBA区间信息,包括:
剥离所述命令,以得到所述命令的LBA信息;
判断所述命令是否为读命令;
若是,则将所述命令的LBA信息记录于读命令LBA信息表的对应位置,并进入所述标记所述命令的LBA信息所在的位置的有效位,以得到LBA信息所在的LBA区间信息;
若否,则将所述命令的LBA信息记录于写命令LBA信息表的对应位置;
标记所述命令的LBA信息所在的位置的有效位,以得到LBA信息所在的LBA区间信息。
其进一步技术方案为:所述判断是否存在未完成的读写命令,包括:
判断所述读命令LBA信息表和/或所述写命令LBA信息表内的有效位是否是设定值;
若是,则存在未完成的读写命令;
若否,则不存在未完成的读写命令。
其进一步技术方案为:所述检测信息包括未完成的读写命令的LBA区间信息与LBA信息所在的LBA区间信息重合的命令号以及LBA重合区间。
本发明还提供了用于固态存储主控芯片的命令LBA重合检测装置,包括:
命令获取单元,用于获取来自主机的命令;
解析单元,用于对命令进行解析,判断所述命令是否为读写命令;
处理单元,用于若是,则剥离并记录所述命令的LBA信息,以得到LBA信息所在的LBA区间信息;
命令判断单元,用于判断是否存在未完成的读写命令;
查询单元,用于若是,则查询未完成的读写命令的LBA区间信息;
重合判断单元,用于判断未完成的读写命令的LBA区间信息与LBA信息所在的LBA区间信息是否重合;
信息获取单元,用于若是,则获取未完成的读写命令的LBA区间信息与LBA信息所在的LBA区间信息重合的LBA区间相关信息,以形成检测信息;
信息存储单元,用于将检测信息以及所述命令存储于系统缓存内,以供固件调取检测信息和所述命令进行分配命令执行顺序和数据搬运。
其进一步技术方案为:所述装置还包括:
命令存储单元,用于若否,则将所述命令存储于命令缓存中。
其进一步技术方案为:所述处理单元包括:
剥离子单元,用于剥离所述命令,以得到所述命令的LBA信息;
读命令判断子单元,用于判断所述命令是否为读命令;
第一记录子单元,用于若是,则将所述命令的LBA信息记录于读命令LBA信息表的对应位置;
第二记录子单元,用于若否,则将所述命令的LBA信息记录于写命令LBA信息表的对应位置;
标记子单元,用于标记所述命令的LBA信息所在的位置的有效位,以得到LBA信息所在的LBA区间信息。
本发明与现有技术相比的有益效果是:本发明通过由硬件接收来自主机的命令,并对命令进行解析,在命令为读写命令时,对命令的LBA信息进行记录和标记有效位,对读命令LBA信息表和/或写命令LBA信息表内的有效位标记情况进行判断以得到是否有未完成的读写命令,若有,则将未完成的读写命令的LBA区间信息与当前命令LBA信息所在的LBA区间信息进行比对,在两者重合的情况下获取重合的LBA区间相关信息,以形成检测信息,与命令一起存储在系统缓存中,供软件调取以进行命令顺序的分析和处理,减少软件的操作步骤,降低CPU和系统缓存开销,通过硬件电路的优化,采用有效位的标记,提高命令解析检测的效率,提高命令的吞吐率。
下面结合附图和具体实施例对本发明作进一步描述。
附图说明
为了更清楚地说明本发明实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为现有技术的读写命令处理顺序示意图;
图2为现有技术的解决数据比对不自恰的流程示意图;
图3为本发明实施例提供的用于固态存储主控芯片的命令LBA重合检测方法的应用场景示意图;
图4为本发明实施例提供的用于固态存储主控芯片的命令LBA重合检测方法的流程示意图一;
图5为本发明实施例提供的用于固态存储主控芯片的命令LBA重合检测方法的流程示意图二;
图6为本发明实施例提供的用于固态存储主控芯片的命令LBA重合检测方法的子流程示意图一;
图7为本发明实施例提供的用于固态存储主控芯片的命令LBA重合检测方法的子流程示意图二;
图8为本发明实施例提供的用于固态存储主控芯片的命令LBA重合检测方法的子流程示意图;
图9为本发明实施例提供的用于固态存储主控芯片的命令LBA重合检测装置的示意性框图;
图10为本发明实施例提供的用于固态存储主控芯片的命令LBA重合检测装置的处理单元的示意性框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在此本发明说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本发明。如在本发明说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
还应当进一步理解,在本发明说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
请参阅图3和图4,图3为本发明实施例提供的用于固态存储主控芯片的命令LBA重合检测方法的应用场景示意图。图3为本发明实施例提供的用于固态存储主控芯片的命令LBA重合检测方法的示意性流程图。该用于固态存储主控芯片的命令LBA重合检测方法可以运用在带有固态硬盘的服务器或者终端内,该服务器或终端与主机进行交互,由服务器内的硬件电路接收主机发送的命令并解析和处理后,将检测信息缓存于系统缓存中,供服务器内的固件进行调取,分配命令执行的顺序,从外置的存储器或者内置的存储器读取或者写入数据,以实现降低CPU和系统缓存的开销,提高命令解析检测的效率,提高命令的吞吐率。
图4是本发明实施例提供的用于固态存储主控芯片的命令LBA重合检测方法的流程示意图。如图4所示,该方法包括以下步骤S110至S190。
S110、获取来自主机的命令。
在本实施例中,命令是指需要固态硬盘执行的指令,包括但不局限于数据的读写命令。
如图5所示,具体地,由NVMe硬件电路和/或SATA(串行高级技术附件,SerialAdvanced Technology Attachment)电路和/或eMMC(Embedded Multi Media Card)电路和/或UFS电路接收来自主机的命令,再接收的来自主机的命令传输至硬件加速模块进行检测。该硬件加速模块是一个集成在主控芯片内的硬件模块,由该硬件模块执行命令LBA信息的维护及查询,即由硬件代替软件执行命令LBA信息的维护及查询,减少软件的操作步骤,降低CPU开销,从而在同等SSD(固态硬盘,Solid State Drives)性能指标下降低对CPU运算能力的要求;或者反过来说,在同等CPU运算能力下,可以获得更高的SSD读写性能,特别是依赖于CPU运算能力的SSD随机数发生器的读写性能。
S120、对命令进行解析,判断所述命令是否为读写命令。
在本实施例中,对命令进行解析,主要是对命令的类型进行分析,以得知该命令是否为读写命令。
S130、若是,则剥离并记录所述命令的LBA信息,以得到LBA信息所在的LBA区间信息。
在本实施例中,LBA信息是指该命令所需要写入或读取的数据所在的逻辑区块地址。而LBA区间信息指的是带有有效位、逻辑区块地址以及在读命令LBA信息表或在写命令LBA信息表内的位置的信息。
在一实施例中,如图6与7所示,上述的步骤S130可包括步骤S131~S135。
S131、剥离所述命令,以得到所述命令的LBA信息。
在本实施例中,命令内包括LBA信息以及类型等多个信息,需要对命令进行剥离才能获取到LBA信息,具体地,命令的字段中包含命令的类型,命令的起始LBA的ID和LBA个数,通过对具体地段的解析即可获取。
S132、判断所述命令是否为读命令。
不同的命令会将LBA信息记录在不同的命令LBA信息表内,因此,需要对该命令的类型进行细致地判断,以提高整个检测的准确性。
S133、若是,则将所述命令的LBA信息记录于读命令LBA信息表的对应位置,并进入步骤S135;
S134、若否,则将所述命令的LBA信息记录于写命令LBA信息表的对应位置;
S135、标记所述命令的LBA信息所在的位置的有效位,以得到LBA信息所在的LBA区间信息。
如图7所示,采用寻址写入或读取的方式进行LBA信息的记录,读命令LBA信息表或写命令LBA信息表均是以命令号作为地址索引的表格,因此,可以利用LBA信息内的地址进行索引,找到表格的对应位置进行写入或读取。采用有效位的标记方式,以便于检测当前是否有未完成的命令在执行。
具体地,读命令LBA信息表或者写命令LBA信息表的有效位在命令的LBA信息写入对应表的对应位置时该位置的有效位标记为1,命令完成后该有效位自动清零,即标记为0,提升LBA查询的效率。
S140、若否,则将所述命令存储于命令缓存中。
在本实施例中,本方法只针对读写命令的LBA重合检测过程。
S150、判断是否存在未完成的读写命令;
该步骤主要是检测是否存在未完成的命令,以便于筛选出都是未完成的命令且两个的LBA区间重合,避免数据不自恰的问题。
在一实施例中,如图8所示,上述的步骤S150可包括步骤S151~S153。
S151、判断所述读命令LBA信息表和/或所述写命令LBA信息表内的有效位是否是设定值。
在本实施例中,该设定值为1。
S152、若是,则存在未完成的读写命令;
S153、若否,则不存在未完成的读写命令。
具体地,当命令为读命令时,则判断该读命令LBA信息表内的有效位是否是1,也就是当前是否有某一位置的有效位为1,表明当前有读命令正在执行。
当命令为写命令时,则判断该写命令LBA信息表内的有效位是否是1,也就是当前是否有某一位置的有效位为1,表明当前有写命令正在执行。
S160、若是,则查询未完成的读写命令的LBA区间信息。
若当前的读命令LBA信息表或者写命令LBA信息表内存在有效位为1的位置,则依次查询有效位为1的LBA区间信息。
S170、判断未完成的读写命令的LBA区间信息与LBA信息所在的LBA区间信息是否重合。
将查询到有效位为1的LBA区间信息与LBA信息所在的LBA区间信息进行比对,若存在相同的区间,则表明未完成的读写命令的LBA区间信息与LBA信息所在的LBA区间信息重合。
S180、若是,则获取未完成的读写命令的LBA区间信息与LBA信息所在的LBA区间信息重合的LBA区间相关信息,以形成检测信息。
获取重合部分的LBA区间相关信息,形成检测信息;该检测信息指的是LBA重合的命令号以及LBA重合的区间,其中该命令号指的是未完成的读写命令的命令号。
S190、将检测信息以及所述命令存储于系统缓存内,以供固件调取检测信息和所述命令进行分配命令执行顺序和数据搬运。
软件通过查询或者中断的形式得知新的命令,并从系统缓存中获取命令及检测信息。根据检测信息,软件需合理的安排命令的执行顺序以确保数据传输与命令完成顺序的自恰。极大精简了软件操作步骤,大大降低了CPU开销。通过硬件电路的优化,提高命令LBA信息维护查询的效率,提高命令的吞吐率。
硬件收到主机的读写命令,自动解析,自动维护并查询LBA信息表,自动输出检测结果,整个过程不需要软件参与。
更进一步地,上述的步骤S150之后还包括:
若否,则进入结束步骤。
上述的步骤S170之后,还包括:
若否,则进入结束步骤。
上述方法是由固态硬盘的主控芯片来实现的,上述提及的主机是指通用计算机设备的固态存储接口(PCIE NVMe,SATA,UFS等);CPU是指主控芯片内部的CPU;固件也是主控芯片的固件;DRAM是指固态硬盘板级的DDR颗粒,主控芯片通过内部DDR控制器访问DDR颗粒;系统缓存也是指主控芯片内部的高速缓存;外置存储是指固态硬盘板级的存储介质,如NAND颗粒。
上述的用于固态存储主控芯片的命令LBA重合检测方法,通过由硬件接收来自主机的命令,并对命令进行解析,在命令为读写命令时,对命令的LBA信息进行记录和标记有效位,对读命令LBA信息表和/或写命令LBA信息表内的有效位标记情况进行判断以得到是否有未完成的读写命令,若有,则将未完成的读写命令的LBA区间信息与当前命令LBA信息所在的LBA区间信息进行比对,在两者重合的情况下获取重合的LBA区间相关信息,以形成检测信息,与命令一起存储在系统缓存中,供软件调取以进行命令顺序的分析和处理,减少软件的操作步骤,降低CPU和系统缓存开销,通过硬件电路的优化,采用有效位的标记,提高命令解析检测的效率,提高命令的吞吐率。
图9是本发明实施例提供的一种用于固态存储主控芯片的命令LBA重合检测装置300的示意性框图。如图9所示,对应于以上用于固态存储主控芯片的命令LBA重合检测方法,本发明还提供一种用于固态存储主控芯片的命令LBA重合检测装置300。该用于固态存储主控芯片的命令LBA重合检测装置300包括用于执行上述用于固态存储主控芯片的命令LBA重合检测方法的单元,该装置可以被配置于带有固态硬盘的服务器或者终端。
具体地,请参阅图9,该用于固态存储主控芯片的命令LBA重合检测装置300包括:
命令获取单元301,用于获取来自主机的命令;
解析单元302,用于对命令进行解析,判断所述命令是否为读写命令;
处理单元303,用于若是,则剥离并记录所述命令的LBA信息,以得到LBA信息所在的LBA区间信息;
命令判断单元304,用于判断是否存在未完成的读写命令;
查询单元305,用于若是,则查询未完成的读写命令的LBA区间信息;
重合判断单元306,用于判断未完成的读写命令的LBA区间信息与LBA信息所在的LBA区间信息是否重合;
信息获取单元307,用于若是,则获取未完成的读写命令的LBA区间信息与LBA信息所在的LBA区间信息重合的LBA区间相关信息,以形成检测信息;
信息存储单元308,用于将检测信息以及所述命令存储于系统缓存内,以供固件调取检测信息和所述命令进行分配命令执行顺序和数据搬运。
更进一步地,上述的装置还包括:
命令存储单元309,用于若否,则将所述命令存储于命令缓存中。
在一实施例中,如图10所示,所述处理单元303包括:
剥离子单元3031,用于剥离所述命令,以得到所述命令的LBA信息;
读命令判断子单元3032,用于判断所述命令是否为读命令;
第一记录子单元3033,用于若是,则将所述命令的LBA信息记录于读命令LBA信息表的对应位置;
第二记录子单元3034,用于若否,则将所述命令的LBA信息记录于写命令LBA信息表的对应位置;
标记子单元3035,用于标记所述命令的LBA信息所在的位置的有效位,以得到LBA信息所在的LBA区间信息。
需要说明的是,所属领域的技术人员可以清楚地了解到,上述用于固态存储主控芯片的命令LBA重合检测装置300和各单元的具体实现过程,可以参考前述方法实施例中的相应描述,为了描述的方便和简洁,在此不再赘述。
在本发明所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的。例如,各个单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。
本发明实施例方法中的步骤可以根据实际需要进行顺序调整、合并和删减。本发明实施例装置中的单元可以根据实际需要进行合并、划分和删减。另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。
该集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,终端,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。

Claims (7)

1.用于固态存储主控芯片的命令LBA重合检测方法,其特征在于,包括:
获取来自主机的命令;
对命令进行解析,判断所述命令是否为读写命令;
若是,则剥离并记录所述命令的LBA信息,以得到LBA信息所在的LBA区间信息;
判断是否存在未完成的读写命令;
若是,则查询未完成的读写命令的LBA区间信息;
判断未完成的读写命令的LBA区间信息与LBA信息所在的LBA区间信息是否重合;
若是,则获取未完成的读写命令的LBA区间信息与LBA信息所在的LBA区间信息重合的LBA区间相关信息,以形成检测信息;
将检测信息以及所述命令存储于系统缓存内,以供固件调取检测信息和所述命令进行分配命令执行顺序和数据搬运;
所述剥离并记录所述命令的LBA信息,以得到LBA信息所在的LBA区间信息,包括:
剥离所述命令,以得到所述命令的LBA信息;
判断所述命令是否为读命令;
若是,则将所述命令的LBA信息记录于读命令LBA信息表的对应位置,并进入标记所述命令的LBA信息所在的位置的有效位,以得到LBA信息所在的LBA区间信息;
若否,则将所述命令的LBA信息记录于写命令LBA信息表的对应位置;
标记所述命令的LBA信息所在的位置的有效位,以得到LBA信息所在的LBA区间信息。
2.根据权利要求1所述的用于固态存储主控芯片的命令LBA重合检测方法,其特征在于,所述对命令进行解析,判断所述命令是否为读写命令之后,还包括:
若否,则将所述命令存储于命令缓存中。
3.根据权利要求1所述的用于固态存储主控芯片的命令LBA重合检测方法,其特征在于,所述获取来自主机的命令,包括:
由NVMe硬件电路和/或SATA电路和/或eMMC电路和/或UFS电路获取来自主机的命令。
4.根据权利要求1所述的用于固态存储主控芯片的命令LBA重合检测方法,其特征在于,所述判断是否存在未完成的读写命令,包括:
判断所述读命令LBA信息表和/或所述写命令LBA信息表内的有效位是否是设定值;
若是,则存在未完成的读写命令;
若否,则不存在未完成的读写命令。
5.根据权利要求1所述的用于固态存储主控芯片的命令LBA重合检测方法,其特征在于,所述检测信息包括未完成的读写命令的LBA区间信息与LBA信息所在的LBA区间信息重合的命令号以及LBA重合区间。
6.用于固态存储主控芯片的命令LBA重合检测装置,其特征在于,包括:
命令获取单元,用于获取来自主机的命令;
解析单元,用于对命令进行解析,判断所述命令是否为读写命令;
处理单元,用于若是,则剥离并记录所述命令的LBA信息,以得到LBA信息所在的LBA区间信息;
命令判断单元,用于判断是否存在未完成的读写命令;
查询单元,用于若是,则查询未完成的读写命令的LBA区间信息;
重合判断单元,用于判断未完成的读写命令的LBA区间信息与LBA信息所在的LBA区间信息是否重合;
信息获取单元,用于若是,则获取未完成的读写命令的LBA区间信息与LBA信息所在的LBA区间信息重合的LBA区间相关信息,以形成检测信息;
信息存储单元,用于将检测信息以及所述命令存储于系统缓存内,以供固件调取检测信息和所述命令进行分配命令执行顺序和数据搬运;
所述处理单元包括:
剥离子单元,用于剥离所述命令,以得到所述命令的LBA信息;
读命令判断子单元,用于判断所述命令是否为读命令;
第一记录子单元,用于若是,则将所述命令的LBA信息记录于读命令LBA信息表的对应位置;
第二记录子单元,用于若否,则将所述命令的LBA信息记录于写命令LBA信息表的对应位置;
标记子单元,用于标记所述命令的LBA信息所在的位置的有效位,以得到LBA信息所在的LBA区间信息。
7.根据权利要求6所述的用于固态存储主控芯片的命令LBA重合检测装置,其特征在于,所述装置还包括:
命令存储单元,用于若否,则将所述命令存储于命令缓存中。
CN201811559645.3A 2018-12-19 2018-12-19 用于固态存储主控芯片的命令lba重合检测方法及装置 Active CN109669635B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811559645.3A CN109669635B (zh) 2018-12-19 2018-12-19 用于固态存储主控芯片的命令lba重合检测方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811559645.3A CN109669635B (zh) 2018-12-19 2018-12-19 用于固态存储主控芯片的命令lba重合检测方法及装置

Publications (2)

Publication Number Publication Date
CN109669635A CN109669635A (zh) 2019-04-23
CN109669635B true CN109669635B (zh) 2022-01-21

Family

ID=66144551

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811559645.3A Active CN109669635B (zh) 2018-12-19 2018-12-19 用于固态存储主控芯片的命令lba重合检测方法及装置

Country Status (1)

Country Link
CN (1) CN109669635B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110299180B (zh) * 2019-07-08 2021-06-08 深圳忆联信息系统有限公司 基于固态硬盘的调试信息输出方法、装置和计算机设备
CN111290715B (zh) * 2020-02-24 2023-04-28 山东华芯半导体有限公司 一种基于分区实现的安全存储装置
US11379153B2 (en) * 2020-07-23 2022-07-05 Micron Technology, Inc. Storage traffic pattern detection in memory devices
CN113031863B (zh) * 2021-03-19 2023-08-29 深圳忆联信息系统有限公司 Ssd命令相关性管理方法、装置、计算机设备及存储介质

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102819408A (zh) * 2012-08-24 2012-12-12 记忆科技(深圳)有限公司 可动态调整条带深度的raid 0的实现方法及系统
CN103543955A (zh) * 2013-08-05 2014-01-29 记忆科技(深圳)有限公司 利用固态硬盘作为设备读缓存的方法、系统及固态硬盘
CN105808462A (zh) * 2014-12-30 2016-07-27 研祥智能科技股份有限公司 基于fpga实现的仿真内存、仿真内存的实现方法及计算机
CN106383742A (zh) * 2016-09-23 2017-02-08 郑州云海信息技术有限公司 一种基于linux的IO调度方法
CN107003943A (zh) * 2016-12-05 2017-08-01 华为技术有限公司 NVMe over Fabric架构中数据读写命令的控制方法、存储设备和系统
CN108121672A (zh) * 2017-08-08 2018-06-05 鸿秦(北京)科技有限公司 一种基于NandFlash存储器多通道的存储阵列控制方法与装置
CN108491168A (zh) * 2018-03-30 2018-09-04 北京联想核芯科技有限公司 一种读、写命令流的处理方法及固态硬盘

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102819408A (zh) * 2012-08-24 2012-12-12 记忆科技(深圳)有限公司 可动态调整条带深度的raid 0的实现方法及系统
CN103543955A (zh) * 2013-08-05 2014-01-29 记忆科技(深圳)有限公司 利用固态硬盘作为设备读缓存的方法、系统及固态硬盘
CN105808462A (zh) * 2014-12-30 2016-07-27 研祥智能科技股份有限公司 基于fpga实现的仿真内存、仿真内存的实现方法及计算机
CN106383742A (zh) * 2016-09-23 2017-02-08 郑州云海信息技术有限公司 一种基于linux的IO调度方法
CN107003943A (zh) * 2016-12-05 2017-08-01 华为技术有限公司 NVMe over Fabric架构中数据读写命令的控制方法、存储设备和系统
CN108121672A (zh) * 2017-08-08 2018-06-05 鸿秦(北京)科技有限公司 一种基于NandFlash存储器多通道的存储阵列控制方法与装置
CN108491168A (zh) * 2018-03-30 2018-09-04 北京联想核芯科技有限公司 一种读、写命令流的处理方法及固态硬盘

Also Published As

Publication number Publication date
CN109669635A (zh) 2019-04-23

Similar Documents

Publication Publication Date Title
CN109669635B (zh) 用于固态存储主控芯片的命令lba重合检测方法及装置
US8086919B2 (en) Controller having flash memory testing functions, and storage system and testing method thereof
US7325112B2 (en) High-speed snapshot method
US20080028162A1 (en) Automatic data block misalignment detection and correction in a computer system utilizing a hard disk subsystem
CN108628542B (zh) 一种文件合并方法及控制器
CN110718264A (zh) 测试固态硬盘信息的方法、装置、计算机设备及存储介质
CN103440206A (zh) 一种固态硬盘及其混合映射方法
US20070168603A1 (en) Information recording apparatus and control method thereof
CN115639971B (zh) 数据写入方法、装置、电子设备、存储介质及程序产品
US20040088474A1 (en) NAND type flash memory disk device and method for detecting the logical address
US6934891B2 (en) Storage system having trace information fetching structure and method of fetching the same
CN103019969A (zh) 闪存储存装置及其不良储存区域的判定方法
CN103530236A (zh) 一种混合硬盘的实现方法及装置
CN109634826B (zh) 控制器极限性能分析方法、装置、计算机设备及存储介质
CN115512757A (zh) 错误复现修复方法、装置、设备及存储介质
CN113076056B (zh) 数据访问方法、硬盘和存储设备
CN104199748A (zh) 一种基于错误注入测试存储系统容忍坏扇区能力的方法
US7657704B2 (en) Method and related apparatus for verifying array of disks
US10838621B2 (en) Method and flash memory controller capable of avoiding inefficient memory block swap or inefficient garbage collection
CN112148486A (zh) 内存页面管理方法、装置、设备及可读存储介质
CN112015672A (zh) 一种存储系统中数据处理方法、装置、设备及存储介质
CN109388646B (zh) 数据处理方法及装置
CN111949198A (zh) 一种坏块管理方法、装置和存储设备
CN113010458B (zh) 存储器管理方法、存储控制器与存储装置
CN110018789A (zh) 动态适配NAND的Tr和Tprom时间的方法、装置及存储介质

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