CN114442911A - 用于固态驱动器的异步输入/输出扫描和聚合的系统和方法 - Google Patents

用于固态驱动器的异步输入/输出扫描和聚合的系统和方法 Download PDF

Info

Publication number
CN114442911A
CN114442911A CN202011235820.0A CN202011235820A CN114442911A CN 114442911 A CN114442911 A CN 114442911A CN 202011235820 A CN202011235820 A CN 202011235820A CN 114442911 A CN114442911 A CN 114442911A
Authority
CN
China
Prior art keywords
logical block
block addresses
sequence
solid state
frequently
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
CN202011235820.0A
Other languages
English (en)
Other versions
CN114442911B (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.)
Dell Products LP
Original Assignee
Dell Products LP
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 Dell Products LP filed Critical Dell Products LP
Priority to CN202011235820.0A priority Critical patent/CN114442911B/zh
Priority to US17/096,163 priority patent/US11681436B2/en
Publication of CN114442911A publication Critical patent/CN114442911A/zh
Application granted granted Critical
Publication of CN114442911B publication Critical patent/CN114442911B/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/0604Improving or facilitating administration, e.g. storage management
    • 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/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/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/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)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

一种信息处理系统可以包括处理器和扫描代理,所述扫描代理包括体现在通信地耦合到所述处理器的计算机可读介质中的指令程序,并且被配置为与对通信地耦合到所述处理器的固态驱动器的输入/输出操作异步地:扫描对所述固态驱动器的连续输入/输出操作的逻辑块地址的序列;确定所述序列中彼此频繁地接近的逻辑块地址;以及将与所述序列中彼此频繁地接近的逻辑块地址有关的信息传送到所述固态驱动器,使得所述固态驱动器的控制器使用所述信息来组织所述固态驱动器的物理页中的数据,使得至少一个物理页包括所述序列中彼此频繁地接近的逻辑块地址。

Description

用于固态驱动器的异步输入/输出扫描和聚合的系统和方法
技术领域
本公开总体上涉及信息处理系统,并且更具体地涉及用于固态驱动器的异步输入/输出扫描和聚合以便将固态驱动器的读取效率最大化的系统和方法。
背景技术
随着信息的价值和使用不断增加,个人和企业都在寻求附加方式来处理和存储信息。可供用户使用的一个选项是信息处理系统。信息处理系统通常出于商业、个人或其他目的而处理、编译、存储和/或传送信息或数据,由此允许用户利用信息的价值。因为技术和信息处理需求和要求在不同的用户或应用程序之间会有所不同,所以信息处理系统在处理哪些信息、如何处理信息、处理、存储或传送多少信息以及如何快速有效地处理、存储或传送信息的方面也可能有所不同。信息处理系统的变化允许信息处理系统是通用的或者被配置用于特定用户或特定用途,诸如金融交易处理、机票预订、企业数据存储或全球通信。另外,信息处理系统可以包括可以被配置为处理、存储和传送信息的各种硬件和软件部件,并且可以包括一个或多个计算机系统、数据存储系统和联网系统。
信息处理系统通常采用存储资源(例如,硬盘驱动器)来存储数据和指令程序以供后续检索。作为传统的磁性硬盘驱动器的替代或补充,信息处理系统越来越多地采用固态存储装置(例如,固态驱动器)。固态装置(SSD)是使用固态存储器(例如,快闪存储器)来存储持久数据的数据存储装置。SSD可以模拟硬盘驱动器接口,因此在大多数应用程序中方便更换。
SSD经常使用NAND快闪存储器作为其底层存储介质。在来自NAND快闪存储器的传统读取请求中,读取请求的逻辑块地址可以映射到数据单(例如,4千字节)。在现有方法中,此类数据单据通过不同页随机分布在NAND快闪存储器中。然而,根据典型的NAND快闪存储器行为,读取操作是基于页的,这意味着读取操作将一页数据(例如,16千字节)从NAND阵列读取到NAND高速缓存(例如,页寄存器)。然而,只有请求的数据单被传送到请求读取操作的主机,而该页的其余部分(例如,12千字节)被丢弃,这意味着每个读取操作在数据吞吐量方面只有25%有效。对于双平面读取模式,只有两页中的一个数据单有效,这意味着每个读取操作在数据吞吐量方面只有12.5%有效。此类低效率会对数据吞吐量和性能产生负面影响。
发明内容
根据本公开的教导,可以减少或消除与NAND快闪存储器中的读取操作的低效率相关联的缺点和问题。
根据本公开的实施方案,一种信息处理系统可以包括处理器和扫描代理,所述扫描代理包括体现在通信地耦合到所述处理器的计算机可读介质中的指令程序,并且被配置为与对通信地耦合到所述处理器的固态驱动器的输入/输出操作异步地:扫描对所述固态驱动器的连续输入/输出操作的逻辑块地址的序列;确定所述序列中彼此频繁地接近的逻辑块地址;以及将与所述序列中彼此频繁地接近的逻辑块地址有关的信息传送到所述固态驱动器,使得所述固态驱动器的控制器使用所述信息来组织所述固态驱动器的物理页中的数据,使得至少一个物理页包括所述序列中彼此频繁地接近的逻辑块地址。
根据本公开的实施方案,一种方法可以包括:与对固态驱动器的输入/输出操作异步地:扫描对所述固态驱动器的连续输入/输出操作的逻辑块地址的序列;确定所述序列中彼此频繁地接近的逻辑块地址;以及将与所述序列中彼此频繁地接近的逻辑块地址有关的信息传送到所述固态驱动器,使得所述固态驱动器的控制器使用所述信息来组织所述固态驱动器的物理页中的数据,使得至少一个物理页包括所述序列中彼此频繁地接近的逻辑块地址。
根据本公开的实施方案,一种固态驱动器可以包括:存储器介质,所述存储器介质用于存储数据;以及控制器,所述控制器被配置为接收与在对所述存储器介质的输入/输出操作中彼此频繁地接近的逻辑块地址有关的信息,并且基于所述信息来组织所述存储器介质的物理页中的数据,使得至少一个物理页包括所述序列中彼此频繁接近的逻辑块地址。
根据本公开的实施方案,一种方法可以包括:接收与在对所述存储器介质的输入/输出操作中彼此频繁地接近的逻辑块地址有关的信息,并且基于所述信息来组织所述存储器介质的物理页中的数据,使得至少一个物理页包括所述序列中彼此频繁接近的逻辑块地址。
根据本文所包括的附图、说明和权利要求,本公开的技术优点对于本领域技术人员而言是显而易见的。实施方案的目的和优点将至少通过在权利要求中特别指出的要素、特征和组合来实现和达到。
应当理解,上述一般描述和以下详细描述均仅为示例并且是解释性的,而不限制本公开中阐明的权利要求。
附图说明
通过参考以下结合附图的描述,可以获得对本发明实施方案及其优点的更完整理解,其中相同的附图标记表示相同特征,并且其中:
图1示出了根据本公开的实施方案的示例性信息处理系统的框图;
图2示出了根据本公开的实施方案的描绘由扫描代理生成哈希-LBA窗口对的流程图;
图3示出了根据本公开的实施方案的描绘生成聚合表以及将与出现次数超过频率阈值的LBA序列有关的信息传送到SSD的流程图;
图4示出了根据本公开的实施方案的描绘生成聚合表以及将与出现次数超过频率阈值的LBA序列的有关信息传送到SSD的替代方法的流程图;并且
图5示出了根据本公开的实施方案的描绘基于近数据参考表的条目在SSD中聚合数据的流程图。
具体实施方式
出于本公开的目的,信息处理系统可以包括可操作以计算、分类、处理、传输、接收、检索、发起、切换、存储、显示、显现、检测、记录、再现、处理或利用任何形式的信息、情报或数据以用于商业、科学、控制或其他目的的任何工具或工具聚合。例如,信息处理系统可以是个人计算机、网络存储装置或任何其他合适的装置,并且可以在大小、形状、性能、功能性和价格上变化。信息处理系统可以包括随机存取存储器(RAM)、一个或多个处理资源,诸如中央处理单元(CPU)或硬件或软件控制逻辑、ROM和/或其他类型的非易失性存储器。信息处理系统的附加部件可以包括一个或多个磁盘驱动器、用于与外部装置进行通信的一个或多个网络端口以及各种输入和输出(I/O)装置,诸如键盘、鼠标和视频显示器。信息处理系统还可以包括可操作以在各种硬件部件之间传输通信的一根或多根总线。
出于本公开的目的,计算机可读介质可以包括可以将数据和/或指令保留一段时间的任何工具或工具聚合。作为示例但不作为限制,计算机可读存储介质可以包括基于半导体的或其他集成电路(IC)(例如,现场可编程门阵列(FPGA)或专用IC(ASIC))、硬盘、HDD、混合硬盘驱动器(HHD)、光盘、光盘驱动器(ODD)、磁光盘、磁光盘驱动器、软盘、软盘驱动器(FDD)、磁带、全息存储介质、固态装置(SSD)、RAM驱动器、安全数字卡、安全数字驱动器或另一种合适的计算机可读存储介质或者这些介质中的两者或多者的组合(如果适用)。在本文中,对计算机可读介质的引用不包括不符合35U.S.C.§101规定的专利保护条件的任何介质。在本文中,对计算机可读介质的引用不包括信号传输的暂时形式(诸如传播的电信号或电磁信号本身),因为它们不符合35U.S.C.§101的专利保护条件。
图1示出了根据本公开的实施方案的示例性信息处理系统102的框图。在某些实施方案中,信息处理系统102可以是个人计算机(例如,台式计算机或便携式计算机)。在其他实施方案中,信息处理系统102可以包括服务器。如图1所描绘,信息处理系统102可以包括处理器103、通信地耦合到处理器103的存储器104以及通信地耦合到处理器103的固态装置(SSD)106。
处理器103可以包括被配置为解译和/或执行程序指令和/或处理数据的任何系统、装置或设备,并且可以包括但不限于微处理器、微控制器、数字信号处理器(DSP)、专用集成电路(ASIC)或被配置为解译和/或执行程序指令和/或处理数据的任何其他数字或模拟电路。在一些实施方案中,处理器103可以解译和/或执行程序指令和/或处理由存储器104、SSD 106和/或信息处理系统102的另一部件中的一者或多者存储和/或传送的数据。
存储器104可以通信地耦合到处理器103,并且可以包括被配置为将程序指令或数据保留一段时间的任何系统、装置或设备(例如,计算机可读介质)。存储器104可以包括随机存取存储器(RAM)、电可擦除可编程只读存储器(EEPROM)、PCMCIA卡、快闪存储器、磁性存储装置、光电存储装置、固态存储装置或者在关闭信息处理系统102的电源之后保留数据的任何合适的易失性或非易失性存储器选择和/或阵列。如图1所示,存储器104可能已在其上存储了扫描代理112和聚合表114。
扫描代理112可以包括可执行指令程序,所述可执行指令程序可以由处理器103读取并执行以执行扫描代理112的功能性。在一些实施方案中,扫描代理112可以包括信息处理系统102的操作系统(例如,驱动器)的部件。在其他实施方案中,扫描代理112可以包括在操作系统的顶部执行的独立应用程序。如下面更详细描述的,扫描代理112可以扫描对SSD106的连续输入/输出操作的逻辑块地址(LBA)序列,将此类序列分离为滚动窗口,并且确定LBA序列中彼此频繁地接近的LBA用于读取操作。为了避免对输入/输出过程产生负面影响,扫描代理112可以异步地执行扫描和聚合。作为此功能性的一部分,扫描代理112可以生成聚合表114。聚合表114可以包括针对多个LBA序列中的每一者阐明此序列在连续输入/输出操作中的出现频率的任何列表、映射、表、数据库或其他合适的数据结构。对于频率超过阈值频率的每个LBA序列,扫描代理112可以(例如,经由与SSD106相关联的供应商唯一命令)将此序列的标识传送到SSD 106。
SSD 106可以通信地耦合到处理器103,并且可以包括被配置为将程序指令或数据保留一段时间的任何系统、装置或设备(例如,计算机可读介质),其包括固态存储器作为存储介质(例如,快闪存储器)。如图1所示,SSD 106可以包括控制器107、快闪存储器108和近数据参考表110。尽管图1将SSD 106描述为与信息处理系统102集成在一起,但是信息处理系统102的某些实施方案可以包括(例如,通过网络)远程地耦合到信息处理系统102的SSD106。
控制器107可以通信地耦合到处理器103,并且可以包括被配置为管理和/或控制SSD 106及其各种部件的任何系统、装置或设备。例如,在一些实施方案中,控制器107可以被配置为从包括SSD 106的快闪存储器108读取数据和/或将数据写入快闪存储器108中。在此类实施方案中,控制器107可以在执行此类读取和写入时引用近数据参考表110,以便将SSD 106的虚拟逻辑块地址(LBA)(如处理器103所“看到的”)转换为快闪存储器108的物理LBA。在相同的或替代实施方案中,控制器107可以被配置为保持和/或控制近数据参考表110的内容。具体地,控制器107可以从扫描代理112接收与出现次数超过频率阈值的LBA序列有关的信息,并且将此类序列存储在近数据参考表110中。近数据参考表110可以包括阐明出现次数超过频率阈值的LBA序列的任何列表、映射、表、数据库或其他合适的数据结构。因此,控制器107可以处理存储在近数据参考表110中的信息,并且基于所述信息,将与此类频繁的LBA序列相关联的数据单组合到快闪存储器108上的同一物理页中(例如,在垃圾回收期间)。因此,对于访问此类物理页的后续读取操作,可以增加数据单的单页命中率。
快闪存储器108可以通信地耦合到控制器107,并且可以包括利用基于快闪存储器的存储介质和/或类似的存储介质的非易失性存储介质。在一些实施方案中,快闪存储器108可以包括NAND快闪存储器。在所描绘的实施方案中,快闪存储器108可以存储与对SSD106的输入/输出操作相关联的信息(例如,经历对SSD 106的写入操作的数据、指令或其他信息和/或响应于对SSD 106的读取操作的数据、指令和/或其他信息)。
图2示出了根据本公开的实施方案的描绘由扫描代理112生成哈希-LBA窗口对208的流程图。如图2所示,扫描代理112可以将与连续输入/输出操作相关联的LBA序列202分离为多个滚动窗口204(例如,滚动窗口204a、204b、204c、204x)。对于每个滚动窗口204,扫描代理112可以为此滚动窗口204计算哈希206(例如,哈希206a、206b、206c、206x)或其他指纹。扫描代理112还可以将每个哈希206与其相关联的LBA窗口204匹配,以生成多个哈希-LBA窗口对208(例如,哈希-LBA窗口对208a、208b、208c、208x)。
图3示出了根据本公开的实施方案的描绘生成聚合表114以及将与出现次数超过频率阈值的LBA序列有关的信息传送到SSD 106的流程图。如图3中所示,扫描代理112可以将匹配过程302应用于哈希-LBA窗口对208以生成聚合表114,其中聚合表114包括多个条目304,每个条目304针对特定的哈希-LBA窗口对208阐明在预定义持续时间内哈希-LBA窗口对208的出现频率。同样如图3中所示,扫描代理112可以分析聚合表114以确定是否有任何条目304指示有任何哈希-LBA窗口对208的出现频率等于或大于预定义频率阈值。对于频率超过预定义频率阈值的每个特定的哈希-LBA窗口对208,扫描代理112可以将与在此哈希-LBA窗口对208中阐明的LBA有关的信息传送到SSD 106。
图4示出了根据本公开的实施方案的描绘生成聚合表114以及将与出现次数超过频率阈值的LBA序列有关的信息传送到SSD 106的替代方法的另一个流程图。在图4中描绘的方法中,扫描代理112可以生成对多个滚动LBA窗口204的扫描,并且应用高级匹配过程402,所述高级匹配过程可以处理各种LBA模式,识别通常彼此接近排序但是并不一定紧邻的LBA,并且生成聚合表114,使得聚合表的条目404识别通常彼此接近排序的LBA组以及它们彼此接近排序的频率。同样如图4中所示,扫描代理112可以分析聚合表114以确定是否有任何条目404指示有任何组的出现频率等于或大于预定义频率阈值。对于频率超过预定义频率阈值的每个特定组,扫描代理112可以将与在此组中阐明的LBA有关的信息传送到SSD106。
图5示出了根据本公开的实施方案的描绘基于近数据参考表110的条目在SSD 106中聚合数据的流程图。如上所述,扫描代理112可以将与在输入/输出操作中彼此频繁地接近出现的LBA有关的信息传送到SSD 106,并且控制器107可以将此信息存储在近数据参考表110中。如图5中所示,近数据参考表110可以包括多个条目508(例如,条目508a、508b、508c),其中每个条目508阐明与数据单相关联的LBA,在所述数据单中,LBA在输入/输出操作期间彼此频繁地接近排序。在SSD 106内进行垃圾回收或其他数据操作之前,SSD 106的物理块502A可以包括多个物理页504,其中一些页504包括具有无效数据的数据单506。如本领域中已知的,当执行垃圾回收时,控制器107可以将物理块502A的数据重写为新的物理块502B,不包括无效数据。然而,根据本公开的实施方案,控制器107可以被配置为基于近数据参考表110的条目508,将数据重写到物理块502B上,使得物理块502B的一个或多个物理页504与在先前的输入/输出操作中具有彼此接近排序的数据单(如扫描代理112所确定的)的LBA相关联。例如,控制器107可以将与条目508a的LBA相关联的数据单放入第一物理页504中,将与条目508b的LBA相关联的数据单放入第二物理页504中,并且将与条目508c的LBA相关联的数据单放入第三物理页504中。
信息处理系统102的部件可以包括接口、逻辑和/或其他合适的元件。接口接收输入、发送输出、处理输入和/或输出,和/或执行其他合适的操作。接口可以包括硬件和/或软件。逻辑执行部件的操作,例如执行指令以由输入生成输出。逻辑可以包括硬件、软件和/或其他逻辑。逻辑可以被编码在一个或多个有形计算机可读存储介质中,并且可以在由处理器或其他部件执行时执行操作。
如本文中所使用的,当两个或更多个元件被称为彼此“耦合”时,此术语指示此类两个或更多个元件处于电子通信或机械通信(如果适用),而无论是间接连接还是直接连接、是否有中间元件。
本公开包括本领域普通技术人员将理解的对本文中的示例性实施方案的所有改变、替换、变化、变更和修改。类似地,如果适用,所附权利要求包括本领域普通技术人员将理解的对本文中的示例性实施方案的所有改变、替换、变化、变更和修改。此外,所附权利要求中对被调适为、被布置为、能够、被配置为、被启用以、可操作以或操作以执行特定功能的设备或系统或者设备或系统的部件的引用包括所述设备、系统或部件,而无论它或特定功能是否被激活、开启或解锁,只要所述设备、系统或部件如此调适、布置、有能力、配置、启用、可操作或操作即可。因此,在不脱离本公开的范围的情况下可以对本文描述的系统、设备和方法进行修改、增添或省略。例如,系统和设备的部件可以被集成或分离。此外,本文公开的系统和设备的操作可以由更多、更少或其他部件来执行,并且所描述的方法可以包括更多、更少或其他步骤。另外,可以任何合适的顺序执行步骤。如本文档中所使用的,“每个”是指集合中的每个成员或集合的子集中的每个成员。
尽管在附图中示出并在上面描述了示例性实施方案,但是可以使用任何数量的技术来实现本公开的原理,而无论当前是否已知。本公开绝不应当限于附图中所示和上面描述的示例性实现方式和技术。
除非另有特别说明,否则附图中所描绘的物品不一定按比例绘制。
本文中所引用的所有示例和条件语言意图用于教学对象以帮助读者理解本公开和由发明人提供的促进技术的构想,并且应被解释为不对此类特别引用的示例和条件构成限制。尽管已详细描述本公开的实施方案,但是应当理解,在不脱离本公开的精神和范围的情况下,可以对实施方案进行各种改变、替代和更改。
尽管上面已经列举了特定优点,但是各种实施方案可以包括所枚举优点中的一些、不包括其任一者或包括其全部。另外,在回顾了前述附图和描述之后,其他技术优点对于本领域的普通技术人员而言将变得显而易见。
为了帮助专利局和根据本申请发布的任何专利的任何读者解读本申请所附的权利要求,申请人希望注意,除非在特定权利要求中明确使用词语“用于……的装置”或“用于……的步骤”,否则他们不意图向任何附加的权利要求或权利要求要素援引35U.S.C.§112(f)。

Claims (8)

1.一种信息处理系统,其包括:
处理器;以及
扫描代理,所述扫描代理包括体现在可通信地耦合到所述处理器的计算机可读介质中的指令程序,并且被配置为与对通信地耦合到所述处理器的固态驱动器的输入/输出操作异步地:
扫描对所述固态驱动器的连续输入/输出操作的逻辑块地址的序列;
确定所述序列中彼此频繁地接近的逻辑块地址;以及
将与所述序列中彼此频繁地接近的逻辑块地址有关的信息传送到所述固态驱动器,使得所述固态驱动器的控制器使用所述信息来组织所述固态驱动器的物理页中的数据,使得至少一个物理页包括所述序列中彼此频繁地接近的逻辑块地址。
2.根据权利要求1所述的信息处理系统,其中确定所述序列中彼此频繁地接近的逻辑块地址包括:
将所述序列分离为逻辑块地址的滚动窗口;以及
确定在所述滚动窗口中彼此频繁地出现在一起的逻辑块地址。
3.根据权利要求2所述的信息处理系统,其中所述扫描代理还被配置为针对每个滚动窗口:
生成此滚动窗口的指纹;以及
确定所述指纹的出现频率以确定所述滚动窗口的逻辑块地址是否在所述滚动窗口中彼此频繁地出现在一起。
4.一种方法,其包括与对固态驱动器的输入/输出操作异步地:
扫描对所述固态驱动器的连续输入/输出操作的逻辑块地址的序列;
确定所述序列中彼此频繁地接近的逻辑块地址;以及
将与所述序列中彼此频繁地接近的逻辑块地址有关的信息传送到所述固态驱动器,使得所述固态驱动器的控制器使用所述信息来组织所述固态驱动器的物理页中的数据,使得至少一个物理页包括所述序列中彼此频繁地接近的逻辑块地址。
5.根据权利要求4所述的方法,其中确定所述序列中彼此频繁地接近的逻辑块地址包括:
将所述序列分离为逻辑块地址的滚动窗口;以及
确定在所述滚动窗口中彼此频繁地出现在一起的逻辑块地址。
6.根据权利要求5所述的方法,其还包括:
生成此滚动窗口的指纹;以及
确定所述指纹的出现频率以确定所述滚动窗口的逻辑块地址是否在所述滚动窗口中彼此频繁地出现在一起。
7.一种固态驱动器,其包括:
存储器介质,所述存储器介质用于存储数据;以及
控制器,所述控制器被配置为:
接收与在对所述存储器介质的输入/输出操作中彼此频繁地接近的逻辑块地址有关的信息;并且
基于所述信息来组织所述存储器介质的物理页中的数据,使得至少一个物理页包括所述序列中彼此频繁接近的逻辑块地址。
8.一种方法,其包括:
接收与在对所述存储器介质的输入/输出操作中彼此频繁地接近的逻辑块地址有关的信息;以及
基于所述信息来组织所述存储器介质的物理页中的数据,使得至少一个物理页包括所述序列中彼此频繁接近的逻辑块地址。
CN202011235820.0A 2020-11-06 2020-11-06 用于固态驱动器的异步输入/输出扫描和聚合的系统和方法 Active CN114442911B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202011235820.0A CN114442911B (zh) 2020-11-06 2020-11-06 用于固态驱动器的异步输入/输出扫描和聚合的系统和方法
US17/096,163 US11681436B2 (en) 2020-11-06 2020-11-12 Systems and methods for asynchronous input/output scanning and aggregation for solid state drive

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011235820.0A CN114442911B (zh) 2020-11-06 2020-11-06 用于固态驱动器的异步输入/输出扫描和聚合的系统和方法

Publications (2)

Publication Number Publication Date
CN114442911A true CN114442911A (zh) 2022-05-06
CN114442911B CN114442911B (zh) 2024-03-08

Family

ID=81361095

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011235820.0A Active CN114442911B (zh) 2020-11-06 2020-11-06 用于固态驱动器的异步输入/输出扫描和聚合的系统和方法

Country Status (2)

Country Link
US (1) US11681436B2 (zh)
CN (1) CN114442911B (zh)

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060044934A1 (en) * 2004-09-02 2006-03-02 Micron Technology, Inc. Cluster based non-volatile memory translation layer
US20100095073A1 (en) * 2008-10-09 2010-04-15 Jason Caulkins System for Controlling Performance Aspects of a Data Storage and Access Routine
US20150062736A1 (en) * 2013-08-30 2015-03-05 Seagate Technology Llc Cache data management for program execution
CN104425039A (zh) * 2013-09-10 2015-03-18 Lsi公司 用于改进的固态介质顺序读的动态映射预取
US20170139826A1 (en) * 2015-11-17 2017-05-18 Kabushiki Kaisha Toshiba Memory system, memory control device, and memory control method
CN107526689A (zh) * 2016-06-17 2017-12-29 希捷科技有限公司 读高速缓存管理
US20180188981A1 (en) * 2016-12-29 2018-07-05 Western Digital Technologies, Inc. Methods and apparatus for read disturb detection based on logical domain
US20180357160A1 (en) * 2017-06-12 2018-12-13 Western Digital Technologies, Inc. System and method of direct write and mapping of data in a non-volatile memory having multiple sub-drives
CN109542358A (zh) * 2018-12-03 2019-03-29 浪潮电子信息产业股份有限公司 一种固态硬盘冷热数据分离方法、装置及设备
CN110007852A (zh) * 2017-12-29 2019-07-12 英特尔公司 基于逻辑区域的流分类
CN110874330A (zh) * 2018-08-29 2020-03-10 爱思开海力士有限公司 非易失性存储器装置、数据存储装置及其操作方法

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10474397B2 (en) * 2017-06-13 2019-11-12 Western Digital Technologies, Inc Unified indirection in a multi-device hybrid storage unit
US10275162B2 (en) * 2017-06-23 2019-04-30 Dell Products L.P. Methods and systems for managing data migration in solid state non-volatile memory
US10580495B2 (en) * 2017-12-21 2020-03-03 Western Digital Technologies, Inc. Partial program operation of memory wordline
US10540100B2 (en) * 2018-04-10 2020-01-21 Western Digital Technologies, Inc. Mapping-based wear leveling for non-volatile memory
KR20210061544A (ko) * 2019-11-20 2021-05-28 에스케이하이닉스 주식회사 컨트롤러 및 컨트롤러의 동작방법
US11281981B2 (en) * 2019-12-09 2022-03-22 Western Digital Technologies, Inc. Storage system and sorting-based method for random read command prediction in a multi-queue system
KR20210111993A (ko) * 2020-03-04 2021-09-14 에스케이하이닉스 주식회사 컨트롤러 및 컨트롤러의 동작 방법
US11301173B2 (en) * 2020-04-20 2022-04-12 Alibaba Group Holding Limited Method and system for facilitating evaluation of data access frequency and allocation of storage device resources

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060044934A1 (en) * 2004-09-02 2006-03-02 Micron Technology, Inc. Cluster based non-volatile memory translation layer
US20100095073A1 (en) * 2008-10-09 2010-04-15 Jason Caulkins System for Controlling Performance Aspects of a Data Storage and Access Routine
US20150062736A1 (en) * 2013-08-30 2015-03-05 Seagate Technology Llc Cache data management for program execution
CN104425039A (zh) * 2013-09-10 2015-03-18 Lsi公司 用于改进的固态介质顺序读的动态映射预取
US20170139826A1 (en) * 2015-11-17 2017-05-18 Kabushiki Kaisha Toshiba Memory system, memory control device, and memory control method
CN107526689A (zh) * 2016-06-17 2017-12-29 希捷科技有限公司 读高速缓存管理
US20180188981A1 (en) * 2016-12-29 2018-07-05 Western Digital Technologies, Inc. Methods and apparatus for read disturb detection based on logical domain
US20180357160A1 (en) * 2017-06-12 2018-12-13 Western Digital Technologies, Inc. System and method of direct write and mapping of data in a non-volatile memory having multiple sub-drives
CN110007852A (zh) * 2017-12-29 2019-07-12 英特尔公司 基于逻辑区域的流分类
CN110874330A (zh) * 2018-08-29 2020-03-10 爱思开海力士有限公司 非易失性存储器装置、数据存储装置及其操作方法
CN109542358A (zh) * 2018-12-03 2019-03-29 浪潮电子信息产业股份有限公司 一种固态硬盘冷热数据分离方法、装置及设备

Also Published As

Publication number Publication date
CN114442911B (zh) 2024-03-08
US11681436B2 (en) 2023-06-20
US20220147248A1 (en) 2022-05-12

Similar Documents

Publication Publication Date Title
US10976928B2 (en) Remove-on-delete technologies for solid state drive optimization
US11630767B2 (en) Garbage collection—automatic data placement
US10877898B2 (en) Method and system for enhancing flash translation layer mapping flexibility for performance and lifespan improvements
CN105843551B (zh) 高性能和大容量储存重复删除中的数据完整性和损耗电阻
KR20200022118A (ko) 데이터 저장 장치 및 그 동작 방법
CN108027713B (zh) 用于固态驱动器控制器的重复数据删除
US11126561B2 (en) Method and system for organizing NAND blocks and placing data to facilitate high-throughput for random writes in a solid state drive
US20150142860A1 (en) Method and System for Forward Reference Logging in a Persistent Datastore
US8898414B2 (en) Storage devices and methods of driving storage devices
TW201217968A (en) Data writing method, memory controller and memory storage apparatus
CN113282234B (zh) 存储装置、存储系统、及其操作方法
US11436086B2 (en) Raid storage-device-assisted deferred parity data update system
CN112825025A (zh) 控制器及其操作方法
CN114442911B (zh) 用于固态驱动器的异步输入/输出扫描和聚合的系统和方法
CN108334457B (zh) 一种io处理方法及装置
US11372767B2 (en) Selectively processing storage commands at different granularities based on command types
US11281575B2 (en) Method and system for facilitating data placement and control of physical addresses with multi-queue I/O blocks
US9460005B2 (en) Storage devices including memory device and methods of operating the same
US8949553B2 (en) System and method for retention of historical data in storage resources
US20210096779A1 (en) Raid storage multi-operation command system
CN115509950A (zh) 存储器系统、包括存储器系统的数据处理系统及操作方法
CN117806535A (zh) 操作固态驱动器的方法和固态驱动器
CN116048381A (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