CN109086006B - 一种数据读取的方法以及相关装置 - Google Patents
一种数据读取的方法以及相关装置 Download PDFInfo
- Publication number
- CN109086006B CN109086006B CN201810821669.5A CN201810821669A CN109086006B CN 109086006 B CN109086006 B CN 109086006B CN 201810821669 A CN201810821669 A CN 201810821669A CN 109086006 B CN109086006 B CN 109086006B
- Authority
- CN
- China
- Prior art keywords
- physical page
- page address
- read command
- address
- read
- 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 44
- 239000007787 solid Substances 0.000 description 10
- 230000008569 process Effects 0.000 description 9
- 238000010586 diagram Methods 0.000 description 7
- 230000004044 response Effects 0.000 description 5
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005265 energy consumption Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Images
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/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/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/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0674—Disk device
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Read Only Memory (AREA)
Abstract
本发明实施例公开了一种数据读取的方法,包括:获取第一读命令中对应的第一物理页地址;检测第一物理页地址是否与第二物理页地址连续;若检测到第一物理页地址与第二物理页地址不连续,则根据第一物理页地址读取第一物理页中目标逻辑块所对应的数据。本发明实施例还公开了一种数据读取装置。本发明实施例在判断读命令中对应物理页地址与前次接收的读命令中物理页地址不连续的情况下,可以在不读取物理页中无效数据的情况下,读取到所需要的数据,减小了读取时延。
Description
技术领域
本发明涉及数据读取技术领域,尤其涉及一种数据读取的方法以及相关装置。
背景技术
在人类生活中,随着互联网、云计算、物联网、大数据等技术的发展及广泛应用,每时每刻都在产生的海量数据需要进行处理和存储,因此对存储系统的性能提出了更高的要求。固态硬盘因为其具有读写速度快、能耗低等特点,而被广泛的应用。
系统对固态硬盘执行输入/输出(input/output,I/O)操作时,系统端是以逻辑块的形式将数据存储或读取。企业级固态硬盘基于性能和时延的考虑,采用的逻辑块的大小是4千字节(Kilobyte,KB),系统从存储芯片中读取数据的基本对象为物理页,在企业级固态硬盘中,物理页的大小为16KB。当系统需要读取的数据中,逻辑块的地址为随机时,系统依然需要读取完一个物理页,并从这一个物理页中获取所需要的逻辑块的数据,再根据需求判断是否需要读取下一个物理页,若需要,则从下一个物理页中获取所需要的逻辑块的数据。
当系统需要读取的数据中,逻辑块的地址为随机时,一个物理页中还包含除了所需读取的数据的逻辑块以外的逻辑块,因此为了读取该逻辑块,还需要读取该物理页中其它无用的数据,读取无用数据所需要的时间,导致了读取时延较大。
发明内容
本发明实施例提供了一种数据读取的方法以及相关装置,实现了在不读取无用数据的情况下,读取到所需要的数据,降低了读取的时延。
有鉴于此,本发明第一方面提供了一种数据读取的方法,包括:
获取第一读命令中对应的第一物理页地址;
检测所述第一物理页地址是否与第二物理页地址连续,其中,所述第二物理页地址为第二读命令所对应的地址,所述第二读命令为在所述第一读命令之前所接收到的命令;
若检测到所述第一物理页地址与所述第二物理页地址不连续,则根据所述第一物理页地址读取第一物理页中目标逻辑块所对应的数据,其中,所述第一物理页包括多个逻辑块,所述目标逻辑块属于所述第一物理页中的至少一个逻辑块。
结合本发明实施例的第一方面,在第一方面的第一种可能的实现方式中,所述获取第一读命令中对应的第一物理页地址,包括:
接收所述第一读命令,其中,所述第一读命令中包含第一逻辑地址;
根据所述第一逻辑地址生成所述第一物理页地址。
结合本发明实施例的第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,根据所述第一物理页地址读取第一物理页中目标逻辑块所对应的数据,包括:
根据所述第一物理页地址生成第一部分读命令,其中,所述第一部分读命令用于触发控制器读取所述第一物理页中的所述目标逻辑块所对应的数据;
根据所述第一部分读命令生成第二部分读命令;
根据所述第二部分读命令从所述第一物理页中读取所述目标逻辑块所对应的数据。
结合本发明实施例的第一方面的第二种可能的实现方式,本发明实施例的第一方面的第三种可能的实现方式中,根据所述第二部分读命令从所述第一物理页中读取所述目标逻辑块所对应的数据之后,所述方法还包括:
判断当前是否已读取完所述目标逻辑块所对应的数据;
若当前已经读取完所述目标逻辑块所对应的数据,则将所述第二物理页地址替换为所述第一物理页地址。
结合本发明实施例的第一方面至第一方面的第三种可能的实现方式中的任一种实现方式,本发明实施例的第一方面的第四种可能的实现方式中,其特征在于,所述检测所述第一物理页地址是否与第二物理页地址连续之后,所述方法还包括:
若检测到所述第一物理页地址与所述第二物理页地址连续,则根据所述第一物理页地址读取所述第一物理页中所有的数据。
本发明第二方面提供了一种数据读取装置,所述数据读取装置包括:
获取模块,用于获取第一读命令中对应的第一物理页地址;
检测模块,用于检测所述第一物理页地址是否与第二物理页地址连续,其中,所述第二物理页地址为第二读命令所对应的地址,所述第二读命令为在所述第一读命令之前所接收到的命令;
读取模块,用于若检测到所述第一物理页地址与所述第二物理页地址不连续,则根据所述第一物理页地址读取第一物理页中目标逻辑块所对应的数据,其中,所述第一物理页包括多个逻辑块,所述目标逻辑块属于所述第一物理页中的至少一个逻辑块。
结合本发明实施例的第二方面,在第二方面的第一种可能的实施例中,提供了一种数据读取装置,包括:
接收模块,用于接收所述第一读命令,其中,所述第一读命令中包含第一逻辑地址;
生成模块,用于根据所述第一逻辑地址生成所述第一物理页地址。
结合本发明实施例的第二方面的第一种可能的实施例,第二方面的第二种可能的实施例中,提供了一种数据读取装置,包括:
生成模块,还用于根据所述第一物理页地址生成第一部分读命令,其中,所述第一部分读命令用于触发控制器读取所述第一物理页中的所述目标逻辑块所对应的数据;
生成模块,还用于根据所述第一部分读命令生成第二部分读命令;
读取模块,还用于根据所述第二部分读命令从所述第一物理页中读取所述目标逻辑块所对应的数据。
结合本发明实施例的第二方面的第二种可能的实施例,第二方面的第三种可能的实施例中,提供了一种数据读取装置,包括:
判断模块,用于判断当前是否已读取完所述目标逻辑块所对应的数据;
替换模块,用于若当前已经读取完所述目标逻辑块所对应的数据,则将所述第二物理页地址替换为所述第一物理页地址。
结合本发明实施例的第二方面至第二方面的第三种可能的实现方式中的任一种实现方式,本发明实施例的第二方面的第四种可能的实现方式中所述数据读取装置,包括:
读取模块,还用于若检测到所述第一物理页地址与所述第二物理页地址连续,则根据所述第一物理页地址读取所述第一物理页中所有的数据。
从以上技术方案可以看出,本发明实施例具有以下优点:
本发明实施例中,提供了一种数据读取的方法,获取第一读命令中对应的第一物理页地址;检测第一物理页地址是否与第二物理页地址连续,其中,第二物理页地址为第二读命令所对应的地址,第二读命令为在第一读命令之前所接收到的命令;若检测到第一物理页地址与第二物理页地址不连续,则根据第一物理页地址读取第一物理页中目标逻辑块所对应的数据,其中,第一物理页包括多个逻辑块,目标逻辑块属于第一物理页中的至少一个逻辑块。
通过上述方式,固态硬盘读取不连续数据时,可以在不读取物理页中无效数据的情况下,读取到所需要的数据,减小了读取时延。
附图说明
图1为本发明实施例中数据读取的方法的Nand Flash型SSD的示意图;
图2为本发明实施例中数据读取的方法的一个实施例示意图;
图3为本发明实施例中数据读取装置的一个实施例示意图;
图4为本发明实施例中数据读取装置的另一个实施例示意图;
图5为本发明实施例中数据读取装置的另一个实施例示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
本发明实施例提供了一种数据读取的方法以及相关装置,实现了在不读取无用数据的情况下,读取到所需要的数据,降低了读取的时延。
应理解,本发明主要应用于固态硬盘(solid state drives,SSD)的数据读取中,其中SSD的闪存类型为与非型闪存(not and flash,Nand Flash),为了便于理解,请查阅图1,图1为本发明实施例中数据读取的方法的Nand Flash型SSD的示意图,本发明实施例为应用于Nand Flash型SSD的数据读取的方法,下面结合图1展开说明。
如图1所示,Nand Flash型SSD中可分为三个部分,分别为主控芯片、与非型内存以及缓存,其中,主控芯片,用于运行包括SSD的固件在内的操作指令;与非型闪存,其中与非型闪存中包含三个部分:逻辑执行单元(logical unit number,LUN)用于处理主控芯片下发的命令,并根据命令在闪存芯片上读取、写入或者擦除目标数据,一个闪存芯片上存在多个LUN,典型的为4或8个,这些LUN可以并行处理命令,此处不作限定。闪存芯片用于存储目标数据,其中闪存芯片为Nand型闪存,根据电子单元密度的差异,Nand型闪存还可以分为单层式存储单元(single-level cell,SLC)、多层式存储单元(multi-level cell,MLC)以及三层式存储单元(trinary-level cell,TLC),此处不对Nand型闪存的类型作限定,在SSD中,通常包含有8、16或32块Nand型闪存芯片组成的阵列。控制器,用于控制闪存芯片;存储器,用于存储主控芯片上运行的操作指令所暂时需要的数据,缓存的类型主要为动态随机存取存储器(dynamic random access memory,DRAM),也可以为静态随机存取存储器(static random access memory,SRAM)此处不做限定。
如图1所示,主控芯片上运行SSD的固件,接收外界发送的读命令,该读命令中包含的是所需获取数据的逻辑地址,固件根据该逻辑地址生成对应的物理页地址,运行有固件的主控芯片将生成的物理页地址与缓存于存储器中的前一次读命令中对应的物理页地址相比较,若两者为连续的物理页地址,则固件对包含该物理页地址的读命令进行处理并将处理后的读命令发送至控制器中,控制器根据生成闪存的厂商所预设的操纵码对接收到的读命令进行处理,并根据处理后的读命令发送至闪存芯片上的LUN,在向LUN发送读命令的同时,控制器根据读命令中要求读取的数据的大小设置倒计时时间,LUN根据该读命令读取闪存芯片上的所需数据,当控制器上的倒计时结束是,控制器向LUN发送查询指令,查询LUN是否根据读命令完成数据的读取,若LUN读取完成,则控制器向主控芯片反馈读取完成命令,主控芯片上的固件根据该读取完成命令,将本次读命令的物理页地址存储至存储器中,更新替换此前存储至此的物理页地址,用于与下次读命令所对应的物理页地址相比较。
下面对本发明中数据读取的方法进行介绍,请参阅图2,本发明实施例中数据读取的方法的一个实施例示意图,包括:
101、获取第一读命令中对应的第一物理页地址;
本实施例中,运行于SSD主控芯片的固件获取第一读命令中对应的第一物理页地址,将SSD此次接收到的读命令命名为第一读命令。第一读命令所要求读取的数据所处的物理页地址称为第一物理页地址。
102、检测第一物理页地址是否与第二物理页地址连续;
本实施例中,运行于SSD主控芯片上的固件检测第一读命令中对应的第一物理页地址是否与第二物理页地址连续,第二物理页地址为此次接收的第一读命令前接收的第二读命令中,所需要读取的数据所对应的物理页地址。
其中,检测的方法包括:将第一物理页地址与第二物理页地址相减,当计算结果为1时,两个物理页地址判断为连续的物理页地址,当计算结果为其它时,则判断两个物理页地址为不连续地址。
103、根据第一物理页地址读取第一物理页中目标逻辑块所对应的数据。
本实施例中,当运行于SSD主控芯片上的固件检测到第一读命令中对应的第一物理页地址,与第二物理页地址不连续时,在闪存芯片上配置的LUN根据第一物理页地址读取闪存芯片上的目标数据,该目标数据为第一物理页对应存储区域中目标逻辑块所对应的数据。
其中,逻辑块为物理页中数据读取的基本单位,一个物理页中包含多个逻辑块。
本发明实施例中,提供了一种数据读取的方法,首先,运行于SSD主控芯片的固件获取第一读命令中对应的第一物理页地址,然后运行于SSD主控芯片上的固件检测第一读命令中对应的第一物理页地址是否与第二物理页地址连续,当运行于SSD主控芯片上的固件检测到第一读命令中对应的第一物理页地址,与第二物理页地址不连续时,在闪存芯片上配置的LUN根据第一物理页地址读取闪存芯片上的目标数据,该目标数据为第一物理页对应存储区域中目标逻辑块所对应的数据。通过上述方式,当固态硬盘读取不连续数据时,可以在不读取物理页中无效数据的情况下,读取到所需要的数据,减小了读取时延。
可选地,在图2对应实施例的基础上,本发明实施例提供的数据读取的方法的第一个实施例中,获取第一读命令中对应的第一物理页地址,包括:
接收第一读命令,其中,第一读命令中包含第一逻辑地址;
根据第一逻辑地址生成第一物理页地址。
本实施例中,SSD接收外界发送的第一读命令,其中第一读命令中包含第一逻辑地址,第一逻辑地址为第一读命令所要求读取的目标数据在计算机系统中对应的地址,由于逻辑地址为由计算机系统中程序产生的和段相关的偏移地址部分,需要经过转换得出对应闪存芯片中实际存在的物理页地址,因此运行于SSD主控芯片上的固件在接收到包含有第一逻辑地址的第一读命令后,将第一逻辑地址转换为第一物理页地址,以便于读取数据。转换的过程包括在SSD的存储器中的地址映射表上查找与逻辑地址对应的物理页地址。
本发明实施例中,当SSD接收到第一读命令后,根据该读命令中包含的第一逻辑地址,生成第一物理页地址,以便于后续读取步骤的展开。提升了方案的可行性。
可选地,在上述图2对应的实施例的基础上,本发明实施例提供的数据读取的方法的第二个实施例中,根据第一物理页地址读取第一物理页中目标逻辑块所对应的数据,包括:
根据第一物理页地址生成第一部分读命令,其中,第一部分读命令用于触发控制器读取第一物理页中的目标逻辑块所对应的数据;
根据第一部分读命令生成第二部分读命令;
根据第二部分读命令从第一物理页中读取目标逻辑块所对应的数据。
本实施例中,运行于SSD主控芯片上的固件根据接收到的第一读命令中包含的第一物理页地址,生成第一部分读命令,该第一部分读命令用于触发控制器读取闪存芯片上的第一物理页中,目标逻辑块所对应的数据;当主控芯片生成了第一部分读命令后,向控制器发送该第一部分读命令,控制器接收到第一部分读命令后,根据SSD生产厂商提供的命令格式第一部分读命令转换为LUN可识别的时序命令,即根据第一部分读命令生成第二部分读命令;配置于闪存芯片上的LUN逻辑执行单元接收第二部分读命令后,根据该第二部分读命令在闪存芯片上第一物理页区域读取目标逻辑块所对应的数据。
本发明实施例中,提供了一种当第一读命令中的第一物理页地址与第二读命令中第二物理页地址不连续时,即两者物理页地址为随机时,SSD根据第一读命令生成第一部分读命令,用于读取目标逻辑块的数据,避免了读取无用数据,增加读取时延的情况。并且控制器可以根据该第一部分读命令生成LUN可识别的第二部分读命令。增加了方案的可行性。
可选地,在上述图2对应的实施例的基础上,本发明实施例提供的数据读取的方法的第三个实施例中,根据第二部分读命令从第一物理页中读取目标逻辑块所对应的数据之后,还包括:
判断当前是否已读取完目标逻辑块所对应的数据;
若当前已经读取完目标逻辑块所对应的数据,则将第二物理页地址替换为第一物理页地址。
本实施例中,在控制器向LUN发送第二部分读命令的同时,控制器根据所接收的读命令中对应要求读取数据的大小,设置倒计时时间,例如当所要求读取的数据为4KB时,设置倒计时的时间为60微秒,当所要求读取的数据为16KB时,设置倒计时的时间为100微秒。当倒计时结束时,控制器向LUN发送查询指令,用于询问LUN是否根据第二部分读命令完成从闪存芯片上的读取任务,LUN在接受到该查询指令后,向控制器发送查询指令的响应值,控制器接收该响应值后,根据该响应值判断当前是否已读取完目标逻辑块所对应的数据,例如,当LUN发送的响应值为“Bit6”时,控制器判断当前已读取完目标逻辑块所对应的数据,当LUN发送的响应值为“0”时,控制器判断当前未读取完目标逻辑块所对应的数据,需要说明的是,响应值所表示的读取情况,由闪存芯片的生产厂商预设,此处不对具体的响应值做限定。
当控制器判断当前已经读取完目标逻辑块所对应的数据,控制器向主控芯片发送指令,提示当前已经读取完目标逻辑块所对应的数据,主控芯片接收该指令后,使用第一读命令中包含的第一物理页地址,替换缓存于存储器中的第二物理页地址,以便于下一次接收到读命令时,使用缓存于存储器中的第一物理页地址与接收到的读命令中的物理页地址进行比较,判断两者是否为连续的物理页地址。
本发明实施例中,控制器通过设置倒计时的方式,自动向LUN发送指令,用于确认LUN是否已读取完目标逻辑块对应的数据,当LUN已读取完目标逻辑块对应的数据后,控制器可指示主控芯片使用第一物理页地址对缓存于存储器中的第二物理页地址进行更新替换操作,以使得下一次接收到读命令后可判断是否与第一物理页地址连续。提升了方案的可行性。
可选地,在上述图2或图2对应的第一至第三个实施例中任一项的基础上,本发明实施例提供的数据读取的方法第四个可选实施例中,检测所述第一物理页地址是否与第二物理页地址连续之后,还包括:
若检测到第一物理页地址与第二物理页地址连续,则根据第一物理页地址读取第一物理页中所有的数据。
本实施例中,当运行于SSD主控芯片上的固件检测到第一读命令中对应的第一物理页地址,与第二物理页地址连续时,在闪存芯片上配置的LUN根据第一物理页地址读取闪存芯片上的第一物理页地址上的所有数据。
本发明实施例中,当主控芯片检测到第一物理页地址与第二物理页地址连续时,LUN可以根据第一物理页地址读取闪存芯片上第一物理页地址对应的存储区域上所有的数据。提供了一种两个物理页地址连续时的读取方法,提高了方案的实现灵活性。
下面对本发明中数据读取装置进行详细描述,请参阅图3,图3为本发明实施例中数据读取装置的一个实施例示意图,本发明实施例提供的数据读取装置20的第一个实施例中,数据读取装置20包括:
获取模块201,用于获取第一读命令中对应的第一物理页地址;
检测模块202,用于检测所述第一物理页地址是否与第二物理页地址连续,其中,所述第二物理页地址为第二读命令所对应的地址,所述第二读命令为在所述第一读命令之前所接收到的命令;
读取模块203,用于若检测到所述第一物理页地址与所述第二物理页地址不连续,则根据所述第一物理页地址读取第一物理页中目标逻辑块所对应的数据,其中,所述第一物理页包括多个逻辑块,所述目标逻辑块属于所述第一物理页中的至少一个逻辑块。
本实施例中,获取模块201,用于获取第一读命令中对应的第一物理页地址;检测模块202,用于检测所述第一物理页地址是否与第二物理页地址连续,其中,所述第二物理页地址为第二读命令所对应的地址,所述第二读命令为在所述第一读命令之前所接收到的命令;读取模块203,用于若检测到所述第一物理页地址与所述第二物理页地址不连续,则根据所述第一物理页地址读取第一物理页中目标逻辑块所对应的数据,其中,所述第一物理页包括多个逻辑块,所述目标逻辑块属于所述第一物理页中的至少一个逻辑块。
本发明实施例中,提供了一种数据读取装置,首先,运行于SSD主控芯片的固件获取第一读命令中对应的第一物理页地址,然后运行于SSD主控芯片上的固件检测第一读命令中对应的第一物理页地址是否与第二物理页地址连续,当运行于SSD主控芯片上的固件检测到第一读命令中对应的第一物理页地址,与第二物理页地址不连续时,在闪存芯片上配置的LUN根据第一物理页地址读取闪存芯片上的目标数据,该目标数据为第一物理页对应存储区域中目标逻辑块所对应的数据。通过上述方式,当固态硬盘读取不连续数据时,可以在不读取物理页中无效数据的情况下,读取到所需要的数据,减小了读取时延。
可选地,在上述图3对应的实施例的基础上,请参阅图4,本发明实施例提供的数据读取装置20的第二个实施例中,数据读取装置20还包括接收模块204以及生成模块205;
接收模块204,用于接收所述第一读命令,其中,所述第一读命令中包含第一逻辑地址;
生成模块205,用于根据所述第一逻辑地址生成所述第一物理页地址。
其次,本发明实施例中,当SSD接收到第一读命令后,根据该读命令中包含的第一逻辑地址,生成第一物理页地址,以便于后续读取步骤的展开。提升了方案的可行性。
可选地,在上述图4对应的实施例的基础上,本发明实施例提供的数据读取装置20的第三个实施例中,
生成模块205,还用于根据所述第一物理页地址生成第一部分读命令,其中,所述第一部分读命令用于触发控制器读取所述第一物理页中的所述目标逻辑块所对应的数据;
生成模块205,还用于根据所述第一部分读命令生成第二部分读命令;
读取模块203,还用于根据所述第二部分读命令从所述第一物理页中读取所述目标逻辑块所对应的数据。
再次,本发明实施例中,提供了一种当第一读命令中的第一物理页地址与第二读命令中第二物理页地址不连续时,即两者物理页地址为随机时,SSD根据第一读命令生成第一部分读命令,用于读取目标逻辑块的数据,避免了读取无用数据,增加读取时延的情况。并且控制器可以根据该第一部分读命令生成LUN可识别的第二部分读命令。增加了方案的可行性。
可选地,在上述本发明实施例提供的数据读取装置20的第三个实施例的基础上,请参阅图5,本发明实施例提供的数据读取装置20的第四个实施例中,数据读取装置20还包括判断模块206以及替换模块207,
判断模块206,用于判断当前是否已读取完所述目标逻辑块所对应的数据;
替换模块207,用于若当前已经读取完所述目标逻辑块所对应的数据,则将所述第二物理页地址替换为所述第一物理页地址。
再次,本发明实施例中,控制器通过设置倒计时的方式,自动向LUN发送指令,用于确认LUN是否已读取完目标逻辑块对应的数据,当LUN已读取完目标逻辑块对应的数据后,控制器可指示主控芯片使用第一物理页地址对缓存于存储器中的第二物理页地址进行更新替换操作,以使得下一次接收到读命令后可判断是否与第一物理页地址连续。提升了方案的可行性。
可选地,在上述图3至图5对应的数据读取装置20的第一个至第四个实施例中任一项的基础上,本发明实施例提供的数据读取装置20的第五个实施例中,
读取模块203,还用于若检测到所述第一物理页地址与所述第二物理页地址连续,则根据所述第一物理页地址读取所述第一物理页中所有的数据。
本发明实施例中,当主控芯片检测到第一物理页地址与第二物理页地址连续时,LUN可以根据第一物理页地址读取闪存芯片上第一物理页地址对应的存储区域上所有的数据。提供了一种两个物理页地址连续时的读取方法,提高了方案的实现灵活性。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本发明所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (8)
1.一种数据读取的方法,其特征在于,包括:
获取第一读命令中对应的第一物理页地址;
检测所述第一物理页地址是否与第二物理页地址连续,其中,所述第二物理页地址为第二读命令所对应的地址,所述第二读命令为在所述第一读命令之前所接收到的命令;
若检测到所述第一物理页地址与所述第二物理页地址不连续,则根据所述第一物理页地址读取第一物理页中目标逻辑块所对应的数据,其中,所述第一物理页包括多个逻辑块,所述目标逻辑块属于所述第一物理页中的至少一个逻辑块;
其中,所述根据所述第一物理页地址读取第一物理页中目标逻辑块所对应的数据,包括:
根据所述第一物理页地址生成第一部分读命令,其中,所述第一部分读命令用于触发控制器读取所述第一物理页中的所述目标逻辑块所对应的数据;
根据所述第一部分读命令生成第二部分读命令;
根据所述第二部分读命令从所述第一物理页中读取所述目标逻辑块所对应的数据。
2.根据权利要求 1 所述的方法,其特征在于,所述获取第一读命令中对应的第一物理页地址,包括:
接收所述第一读命令,其中,所述第一读命令中包含第一逻辑地址;
根据所述第一逻辑地址生成所述第一物理页地址。
3.根据权利要求 1 所述的方法,其特征在于,根据所述第二部分读命令从所述第一物理页中读取所述目标逻辑块所对应的数据之后,所述方法还包括:
判断当前是否已读取完所述目标逻辑块所对应的数据;
若当前已经读取完所述目标逻辑块所对应的数据,则将所述第二物理页地址替换为所述第一物理页地址。
4.根据权利要求 1 至 3 中任一项所述的方法,其特征在于,所述检测所述第一物理页地址是否与第二物理页地址连续之后,所述方法还包括:
若检测到所述第一物理页地址与所述第二物理页地址连续,则根据所述第一物理页地址读取所述第一物理页中所有的数据。
5.一种数据读取装置,其特征在于,包括:
获取模块,用于获取第一读命令中对应的第一物理页地址;
检测模块,用于检测所述第一物理页地址是否与第二物理页地址连续,其中,所述第二物理页地址为第二读命令所对应的地址,所述第二读命令为在所述第一读命令之前所接收到的命令;
读取模块,用于若检测到所述第一物理页地址与所述第二物理页地址不连续,则根据所述第一物理页地址读取第一物理页中目标逻辑块所对应的数据,其中,所述第一物理页包括多个逻辑块,所述目标逻辑块属于所述第一物理页中的至少一个逻辑块;
生成模块,用于根据所述第一物理页地址生成第一部分读命令,其中,所述第一部分读命令用于触发控制器读取所述第一物理页中的所述目标逻辑块所对应的数据;
所述生成模块,还用于根据所述第一部分读命令生成第二部分读命令;
所述读取模块,还用于根据所述第二部分读命令从所述第一物理页中读取所述目标逻辑块所对应的数据。
6.根据权利要求 5 所述的数据读取装置,其特征在于,
接收模块,用于接收所述第一读命令,其中,所述第一读命令中包含第一逻辑地址;
生成模块,用于根据所述第一逻辑地址生成所述第一物理页地址。
7.根据权利要求 5 所述的数据读取装置,其特征在于,
判断模块,用于判断当前是否已读取完所述目标逻辑块所对应的数据;
替换模块,用于若当前已经读取完所述目标逻辑块所对应的数据,则将所述第二物理页地址替换为所述第一物理页地址。
8.根据权利要求 5 至 7 中任一项所述的数据读取装置,其特征在于,
读取模块,还用于若检测到所述第一物理页地址与所述第二物理页地址连续,则根据所述第一物理页地址读取所述第一物理页中所有的数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810821669.5A CN109086006B (zh) | 2018-07-24 | 2018-07-24 | 一种数据读取的方法以及相关装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810821669.5A CN109086006B (zh) | 2018-07-24 | 2018-07-24 | 一种数据读取的方法以及相关装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109086006A CN109086006A (zh) | 2018-12-25 |
CN109086006B true CN109086006B (zh) | 2021-10-15 |
Family
ID=64838271
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810821669.5A Active CN109086006B (zh) | 2018-07-24 | 2018-07-24 | 一种数据读取的方法以及相关装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109086006B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110275800B (zh) * | 2019-06-20 | 2021-06-08 | 深圳忆联信息系统有限公司 | Ssd数据物理备份方法、装置、计算机设备及存储介质 |
CN111176566B (zh) * | 2019-12-25 | 2023-09-19 | 山东方寸微电子科技有限公司 | 一种支持queue命令的eMMC读写控制方法及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102298508A (zh) * | 2011-09-07 | 2011-12-28 | 记忆科技(深圳)有限公司 | 基于流的固态硬盘预读取的方法及装置 |
CN103514104A (zh) * | 2012-06-27 | 2014-01-15 | 安凯(广州)微电子技术有限公司 | 读取数据方法以及数据写入方法 |
CN104375782A (zh) * | 2014-10-21 | 2015-02-25 | 浪潮电子信息产业股份有限公司 | 千万级小文件数据的一种读写解决方法 |
CN106445832A (zh) * | 2016-09-06 | 2017-02-22 | 深圳市先天海量信息技术有限公司 | 闪存存储系统的地址映射方法及装置 |
CN106802777A (zh) * | 2017-01-20 | 2017-06-06 | 杭州电子科技大学 | 一种用于固态存储设备的闪存转换层控制方法 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1999031592A1 (fr) * | 1997-12-16 | 1999-06-24 | Tdk Corporation | Systeme de memoire flash |
JP2006003966A (ja) * | 2004-06-15 | 2006-01-05 | Oki Electric Ind Co Ltd | フラッシュメモリの書込方法 |
US8095723B2 (en) * | 2007-02-16 | 2012-01-10 | Electronics And Telecommunications Research Institute | Log-based flash translation layer and operating method thereof |
JP4819113B2 (ja) * | 2008-12-03 | 2011-11-24 | 富士通株式会社 | バックアップ装置、バックアップ方法およびバックアッププログラム |
CN101719052B (zh) * | 2009-12-22 | 2012-05-02 | 成都市华为赛门铁克科技有限公司 | 一种写数据的方法、装置及系统 |
JP5929485B2 (ja) * | 2012-05-08 | 2016-06-08 | ソニー株式会社 | 制御装置、記憶装置、データ書込方法 |
US9128822B2 (en) * | 2012-06-22 | 2015-09-08 | Winbond Electronics Corporation | On-chip bad block management for NAND flash memory |
CN103019617A (zh) * | 2012-11-25 | 2013-04-03 | 向志华 | 高效实现ssd内部raid的构建方法、数据读写方法及装置 |
JP6018725B2 (ja) * | 2014-06-27 | 2016-11-02 | 華為技術有限公司Huawei Technologies Co.,Ltd. | コントローラ、フラッシュメモリ装置及びデータをフラッシュメモリ装置に書き込む方法 |
-
2018
- 2018-07-24 CN CN201810821669.5A patent/CN109086006B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102298508A (zh) * | 2011-09-07 | 2011-12-28 | 记忆科技(深圳)有限公司 | 基于流的固态硬盘预读取的方法及装置 |
CN103514104A (zh) * | 2012-06-27 | 2014-01-15 | 安凯(广州)微电子技术有限公司 | 读取数据方法以及数据写入方法 |
CN104375782A (zh) * | 2014-10-21 | 2015-02-25 | 浪潮电子信息产业股份有限公司 | 千万级小文件数据的一种读写解决方法 |
CN106445832A (zh) * | 2016-09-06 | 2017-02-22 | 深圳市先天海量信息技术有限公司 | 闪存存储系统的地址映射方法及装置 |
CN106802777A (zh) * | 2017-01-20 | 2017-06-06 | 杭州电子科技大学 | 一种用于固态存储设备的闪存转换层控制方法 |
Also Published As
Publication number | Publication date |
---|---|
CN109086006A (zh) | 2018-12-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106354615B (zh) | 固态硬盘日志生成方法及其装置 | |
US9753847B2 (en) | Non-volatile semiconductor memory segregating sequential, random, and system data to reduce garbage collection for page based mapping | |
US12019602B2 (en) | Key-value storage device and operating method thereof | |
CN107908571B (zh) | 一种数据写入方法、闪存装置及存储设备 | |
US10019179B2 (en) | Memory device that writes data into a block based on time passage since erasure of data from the block | |
US10346039B2 (en) | Memory system | |
JP2008242503A5 (zh) | ||
US20180276123A1 (en) | Memory system and control method | |
CN111984441B (zh) | 瞬间断电回复处理方法及装置以及计算机可读取存储介质 | |
US20170052720A1 (en) | Data protection method, memory contorl circuit unit and memory storage apparatus | |
US9037781B2 (en) | Method for managing buffer memory, memory controllor, and memory storage device | |
CN114063893A (zh) | 数据储存装置与数据处理方法 | |
US20190228827A1 (en) | Dynamic Management of a NAND Flash Memory | |
CN109086006B (zh) | 一种数据读取的方法以及相关装置 | |
CN115114195A (zh) | 存储系统 | |
CN111026325A (zh) | 闪存控制器、闪存控制器的控制方法及相关的电子装置 | |
US20220342811A1 (en) | Method and apparatus for page validity management and related storage system | |
KR20230040057A (ko) | 시스템의 읽기 성능을 개선하기 위한 장치 및 방법 | |
US20200210331A1 (en) | Using a common pool of blocks for user data and a system data structure | |
KR102448242B1 (ko) | 데이터 블록들에 관한 다른 동작의 수행율에 기초한 데이터 블록들에 관한 동작의 동시 수행 | |
CN111767007A (zh) | 用于闪存的写入管理机制 | |
CN114974365A (zh) | Ssd有限窗口数据去重识别方法、装置和计算机设备 | |
CN104978280B (zh) | 数据储存系统及其特定指令执行方法 | |
TWI697778B (zh) | 資料儲存裝置與資料處理方法 | |
CN109002265B (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 |