CN113126908A - 被配置为支持多流的存储装置及其操作方法 - Google Patents
被配置为支持多流的存储装置及其操作方法 Download PDFInfo
- Publication number
- CN113126908A CN113126908A CN202011609288.4A CN202011609288A CN113126908A CN 113126908 A CN113126908 A CN 113126908A CN 202011609288 A CN202011609288 A CN 202011609288A CN 113126908 A CN113126908 A CN 113126908A
- Authority
- CN
- China
- Prior art keywords
- physical
- virtual
- stream
- information
- representative value
- 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.)
- Pending
Links
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/0604—Improving or facilitating administration, e.g. storage management
- G06F3/0607—Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- 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/0604—Improving or facilitating administration, e.g. storage management
-
- 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/0629—Configuration or reconfiguration of 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/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/0656—Data buffering 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/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0662—Virtualisation aspects
- G06F3/0667—Virtualisation aspects at data level, e.g. file, record or object virtualisation
-
- 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]
-
- 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/0683—Plurality of storage devices
- G06F3/0688—Non-volatile semiconductor memory arrays
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1032—Reliability improvement, data loss prevention, degraded operation etc
- G06F2212/1036—Life time enhancement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7201—Logical to physical mapping or translation of blocks or pages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7203—Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7205—Cleaning, compaction, garbage collection, erase control
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7208—Multiple device management, e.g. distributing data over multiple flash devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
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)
- Software Systems (AREA)
- Computing Systems (AREA)
- Artificial Intelligence (AREA)
- Mathematical Physics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Medical Informatics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
一种存储装置被配置为利用多个物理流来管理多个非易失性存储器。该存储装置的操作方法包括:从外部主机装置接收输入/输出请求;确定第0虚拟流标识符;从第0虚拟流特征提取第0代表值;提取与第一物理流和第二物理流对应的第一代表值和第二代表值;基于所提取的代表值来计算包括第0虚拟流与第一物理流和第二物理流中的每一个之间的第一相似度和第二相似度的距离信息;基于距离信息将多个物理流之一指派到第0虚拟流;以及在所指派的物理流处执行与输入/输出请求对应的操作,并且通过使用机器学习模型来执行所述提取和所述计算。
Description
相关申请的交叉引用
本申请要求于2019年12月31日在韩国知识产权局提交韩国专利申请No.10-2019-0178994的优先权,该申请的完整内容以引用方式并入本文中。
技术领域
本文所描述的发明构思的至少一些示例实施例涉及半导体存储器,更具体地,涉及一种被配置为支持多流的存储装置及其操作方法。
背景技术
半导体存储器装置被分类为:易失性存储器装置,其中当电源被关闭时所存储的数据消失,例如静态随机存取存储器(SRAM)或动态随机存取存储器(DRAM);或者非易失性存储器装置,其中即使当电源被关闭时也保持所存储的数据,例如闪存装置、相变RAM(PRAM)、磁性RAM(MRAM)、电阻RAM(RRAM)或铁电RAM(FRAM)。
如今,基于闪存的固态驱动器(SSD)正广泛用作计算***的大容量存储介质。使用SSD的主机可根据应用生成各种类型的数据。为了改进存储装置的操作,主机可将关于数据的信息与数据一起提供给存储装置。然而,由于SSD的硬件的限制,关于主机能够提供的数据的信息是限制性的。
发明内容
本发明构思的至少一些示例实施例提供一种通过基于虚拟流与存储装置内管理的物理流之间的距离信息(即,相似度)映射来自主机的虚拟流和物理流而具有改进的性能和改进的寿命的存储装置及其操作方法。
根据至少一些示例实施例,一种被配置为利用多个物理流来管理多个非易失性存储器的存储装置的操作方法包括:从外部主机装置接收输入/输出请求;确定与所接收的输入/输出请求对应的第0虚拟流标识符;从与所确定的第0虚拟流标识符对应的第0虚拟流的第0虚拟流特征提取第0代表值;提取分别与所述多个物理流中的第一物理流和第二物理流对应的第一代表值和第二代表值;基于所提取的第0代表值、第一代表值和第二代表值来计算包括第0虚拟流与第一物理流之间的第一相似度以及第0虚拟流与第二物理流之间的第二相似度的距离信息;基于距离信息将所述多个物理流之一指派到第0虚拟流;以及在所指派的物理流处执行与输入/输出请求对应的操作,并且其中,通过使用通过机器学习预先学习的学习模型来执行第0代表值的提取、第一代表值和第二代表值的提取、以及距离信息的计算。
根据至少一些示例实施例,一种存储装置包括:多个非易失性存储器;以及包括处理电路***的存储控制器,处理电路***被配置为利用多个物理流来管理所述多个非易失性存储器并且将所述多个物理流之一指派到与来自外部主机装置的输入/输出请求对应的第0虚拟流,其中,存储控制器还包括存储器,该存储器被配置为存储包括分别与所述多个物理流对应的多个虚拟流特征的流信息,并且其中,处理电路***被配置为基于通过机器学习预先学习的机器学习模型来:从与第0虚拟流对应的第0虚拟流特征提取第0代表值,从流信息提取分别与所述多个物理流对应的多个代表值,基于所提取的第0代表值和所提取的多个代表值来计算指示第0虚拟流与所述多个物理流中的每一个之间的相似度的距离信息,并且基于距离信息将所述多个物理流之一指派到第0虚拟流。
根据至少一些示例实施例,一种被配置为利用多个物理流来管理多个非易失性存储器的存储装置的操作方法包括:从外部主机装置接收输入/输出请求;确定与所接收的输入/输出请求对应的第0虚拟流标识符;从与所确定的第0虚拟流标识符对应的第0虚拟流的第0虚拟流特征提取第0代表值;从代表值池获得分别与所述多个物理流中的第一物理流和第二物理流对应的第一代表值和第二代表值;基于所获得的第一代表值和第二代表值来计算包括第0虚拟流与第一物理流之间的第一相似度以及第0虚拟流与第二物理流之间的第二相似度的距离信息;基于距离信息将所述多个物理流之一指派到第0虚拟流;在所指派的物理流处执行与输入/输出请求对应的操作;以及基于第0代表值以及与所指派的物理流对应的物理流标识符来更新代表值池。通过使用通过机器学习预先学习的学习模型来执行第0代表值的提取和距离信息的计算。
根据至少一些示例实施例,一种被配置为利用多个物理流来管理多个非易失性存储器的存储装置的操作方法包括:从外部主机装置接收输入/输出请求;基于输入/输出请求的逻辑块地址来确定输入/输出请求的突发性;当输入/输出请求具有突发性时,将与输入/输出请求对应的数据存储在数据缓冲器中;当存储在数据缓冲器中的数据的大小为参考值或更大时,提取存储在数据缓冲器中的数据的第0代表值;提取分别与所述多个物理流中的第一物理流和第二物理流对应的第一代表值和第二代表值;基于所提取的第0代表值、第一代表值和第二代表值来计算包括存储在数据缓冲器中的数据与第一物理流之间的第一相似度以及存储在数据缓冲器中的数据与第二物理流之间的第二相似度的距离信息;基于距离信息将所述多个物理流之一指派到存储在数据缓冲器中的数据;以及将存储在数据缓冲器中的数据存储在所指派的物理流中。通过使用通过机器学习预先学习的学习模型来执行第0代表值的提取、第一代表值和第二代表值的提取、以及距离信息的计算。
附图说明
通过参照附图详细描述本发明构思的示例实施例,本发明构思的示例实施例的以上和其它特征和优点将变得更显而易见。附图旨在描绘本发明构思的示例实施例,不应被解释为限制权利要求的预期范围。除非明确地指出,否则附图不应被视为按比例绘制。
图1是示出根据本发明构思的至少一个示例实施例的存储***的框图。
图2是示出图1的存储控制器的框图。
图3是示出图1的非易失性存储器装置的框图。
图4是用于描述在存储装置处管理的物理流的图。
图5是示出图2的流映射表的图。
图6是示出图2的存储装置的操作的流程图。
图7是示出图6的操作S140的流程图。
图8是用于描述图2的存储控制器的距离信息计算处理的示例图。
图9是示出图8的物理流数据库的图。
图10是详细示出图8的代表值提取器的框图。
图11A和图11B是用于描述图8和图9的代表值提取器的操作的图。
图12是用于描述图8的距离函数引擎的示例图。
图13和图14是示出根据本发明构思的至少一个示例实施例的存储装置的操作的流程图和框图。
图15A和图15B是用于描述图14的更新代表值池的操作的图。
图16是示出图1的存储装置的操作的流程图。
图17是示出图1的存储装置的操作的流程图。
图18是示出应用了根据本发明构思的至少一个示例实施例的存储***的固态驱动器***的框图。
图19是示出应用了根据本发明构思的至少一个示例实施例的存储***的电子装置的框图。
图20是示出应用了根据本发明构思的至少一个示例实施例的存储***的数据中心的框图。
具体实施方式
下面,详细描述本发明构思的至少一些示例实施例。
本说明书中通过使用术语“部分”、“单元”、“模块”、“引擎”等描述的组件以及附图中示出的功能块可利用软件、硬件或其组合来实现。软件可以是存储在被配置为执行计算机可读指令的一个或多个处理器的存储器中的计算机可读指令。例如,软件可以是机器代码、固件、嵌入式代码和/或包括计算机可读指令的应用软件,其被存储在一个或多个处理器的存储器中并由该一个或多个处理器执行。例如,硬件可包括电路、电子电路、处理器、计算机、集成电路、集成电路核心、压力传感器、惯性传感器、微机电***(MEMS)、无源元件、或其组合。另外,除非不同地定义,否则本文所使用的所有术语(包括技术术语或科学术语)具有与本领域技术人员所理解含义相同的含义。常用字典中定义的术语将被解释为具有与相关技术领域中的上下文含义相同的含义,并且除非说明书中清楚地定义,否则不应被解释为具有理想或过于正式的含义。
图1是示出根据本发明构思的至少一个示例实施例的存储***的框图。参照图1,存储***100可包括主机110和存储装置1000。根据本发明构思的至少一个示例实施例,存储***100可以是被配置为处理各种信息并存储所处理的信息的信息处理装置的存储***。可具有存储***100作为存储***的信息处理装置的示例包括(但不限于)个人计算机(PC)、膝上型计算机、服务器、工作站、智能电话、平板PC、数字相机和黑匣子。
主机110可控制存储***100的总体操作。例如,主机110可向存储装置1000发送用于将数据“DATA”存储在存储装置1000中或读取存储在存储装置1000中的数据“DATA”的请求RQ。
存储装置1000可包括存储控制器1100和非易失性存储器装置1200。响应于来自主机110的请求RQ,存储控制器1100可将从主机110接收的数据“DATA”存储在非易失性存储器装置1200中或者可将存储在非易失性存储器装置1200中的数据“DATA”传送至主机110。
根据本发明构思的至少一个示例实施例,主机110可基于虚拟流VS来管理存储在存储装置1000中的数据“DATA”。例如,主机110可基于数据的属性将虚拟流标识符VSID指派到要存储在存储装置1000中的数据。即,相同属性或相似属性的数据可通过相同的虚拟流标识符VSID来管理。
根据本发明构思的至少一个示例实施例,存储装置1000可支持基于物理流PS来管理非易失性存储器装置1200的存储空间的多流功能。在这种情况下,存储装置1000所管理或支持的物理流的数量可与主机110所管理的虚拟流的数量不同。例如,物理流的数量可小于虚拟流的数量。换言之,在主机110要管理的虚拟流的数量为“n”的情况下,存储装置1000所管理或支持的物理流的数量可为“m”,其中“m”和“n”均为正整数并且“m”小于“n”。根据本发明构思的至少一个示例实施例,可基于存储装置1000的资源(例如,数据缓冲器)来管理或指定存储装置1000所管理的物理流的数量。即,可能需要用于将多个虚拟流映射到数量相对少的物理流的装置。
根据本发明构思的至少一个示例实施例的存储装置1000的存储控制器1100可包括流映射管理器1110。流映射管理器1110可执行将主机110所管理的虚拟流映射到存储装置1000所管理的物理流的操作(即,流映射操作或流群集(clustering)操作)。根据本发明构思的至少一个示例实施例,流映射管理器1110可基于机器学习来执行上述流映射或群集操作。下面,将参照附图更充分地描述根据本发明构思的至少一个示例实施例的流映射管理器1110的操作。
图2是示出图1的存储控制器的框图。参照图1和图2,存储控制器1100可包括流映射管理器1110、处理器1120、主机接口电路1130、非易失性存储器接口电路1140、输入/输出(I/O)监测器1150、流信息SDB、以及虚拟流与物理流之间的映射表SMT(以下称为“流映射表”)。
根据本发明构思的至少一些示例实施例,存储控制器1100可以是或包括处理电路***(例如,处理器1120)。控制器1100的处理电路***可包括专门被构造为执行和/或控制本公开中描述为由控制器1100、存储装置1000或任一者的元件执行的一些或所有操作的一个或多个电路或电路***(例如,硬件)。根据本发明构思的至少一个示例实施例,控制器1100的处理电路***可包括存储器以及执行计算机可读代码(例如,软件和/或固件)的一个或多个处理器,该计算机可读代码被存储在存储器中并且包括用于使得一个或多个处理器执行和/或控制本公开中描述为由控制器1100、存储装置1000或任一者的元件执行的一些或所有操作的指令。根据本发明构思的至少一个示例实施例,控制器1100的处理电路***可包括例如上述硬件和执行计算机可读代码的一个或多个处理器的组合。
参照图1和图2,流映射管理器1110可被配置为将物理流指派到从主机110接收的请求RQ。例如,流映射管理器1110可确定从主机110接收的请求RQ的虚拟流标识符。流映射管理器1110可基于流映射表SMT来确定是否存在先前指派到虚拟流标识符的物理流。在不存在指派到目标虚拟流标识符的物理流的情况下,流映射管理器1110可基于关于流信息SDB中的多个物理流中的每一个的信息以及与所接收的请求RQ对应的信息将物理流指派或映射到虚拟流标识符。
在这种情况下,流映射管理器1110可将相似特征的虚拟流映射到相同物理流。根据本发明构思的至少一个示例实施例,可基于机器学习来执行将物理流指派到目标虚拟流标识符。下面,将参照附图更充分地描述流映射管理器1110的操作。
处理器1120可控制存储控制器1100的总体操作。例如,处理器1120可被配置为驱动存储控制器1100上的闪存转换层(FTL)(未示出)。可替代地,处理器1120可被配置为执行操作存储控制器1100所需的各种操作。
根据本发明构思的至少一个示例实施例,流映射管理器1110可以软件、硬件或其组合的形式实现。例如,流映射管理器1110可由诸如机器学习加速器的硬件装置实现,其包括被配置为执行各种机器学习操作的电路***。可替代地,流映射管理器1110可以以设计为执行各种机器学习操作的软件的形式实现;在这种情况下,流映射管理器1110可由处理器1120驱动。
主机接口电路1130可遵从给定通信协议与主机110通信。主机接口电路1130可基于给定通信协议来实现。根据本发明构思的至少一个示例实施例,给定接口协议可包括诸如SATA(串行ATA)接口、PCIe(***组件互连高速)接口、SAS(串行附接SCSI)接口、NVMe(非易失性存储器高速)接口、NVMeoF(NVMe of Fabrics)、和UFS(通用闪存)接口的各种接口中的至少一个。
根据本发明构思的至少一个示例实施例,存储控制器1100可通过使用主机接口电路1130来确定与从主机110提供的请求RQ对应的虚拟流标识符VSID。例如,在数据的虚拟流标识符VSID由主机110直接管理的情况下,主机110可向存储控制器1100提供包括虚拟流标识符VSID的请求RQ。在这种情况下,存储控制器1100可通过使用主机接口电路1130来检查所接收的请求RQ的虚拟流标识符VSID。可替代地,在数据的虚拟流标识符VSID不由主机110直接管理的情况下,主机110可向存储控制器1100提供不包括虚拟流标识符VSID的请求RQ。在这种情况下,存储控制器1100可通过使用主机接口电路1130来检查所接收的请求RQ的各种信息(例如,数据的逻辑地址和数据的大小),并且可基于所检查的信息来指派和管理与所接收的请求RQ对应的虚拟流标识符VSID。即,虚拟流标识符VSID可由主机110明确地提供;可替代地,在主机110未明确提供虚拟流标识符VSID的情况下,存储控制器1100可基于关于所接收的请求RQ的各种信息来指派和管理虚拟流标识符VSID。
实施例被描述为检查、分配或管理虚拟流标识符VSID的上述操作由主机接口电路1130执行,但是本发明构思的至少一些示例实施例不限于此。例如,存储控制器1100还可包括用于管理虚拟流标识符VSID的另一组件,例如,诸如命令解析器的命令处理组件。
非易失性存储器接口电路1140可遵从给定通信协议与非易失性存储器装置1200通信。根据本发明构思的至少一个示例实施例,给定接口协议可以是NAND接口。
输入/输出监测器1150可被配置为监测存储装置1000的各种输入/输出信息。例如,输入/输出监测器1150可被配置为监测关于多个虚拟流中的每一个的各种输入/输出信息。所监测的信息可被存储在流信息SDB中。根据本发明构思的至少一个示例实施例,关于多个虚拟流中的每一个的输入/输出信息可包括下列信息中的任何或所有信息:关于多个虚拟流中的每一个的吞吐量(throughput)、逻辑块地址(LBA)范围、顺序性、突发性、连续性、更新性等。根据本发明构思的至少一个示例实施例,吞吐量可以指示每单位时间从相应虚拟流输出的数据量,逻辑地址范围可以指示相应虚拟流中的数据的逻辑地址范围,顺序性可以指示针对相应虚拟流的I/O请求是否按顺序发生;突发性可以指示从相应虚拟流一次输出的数据量,连续性可以指示相应虚拟流中的数据保留的时间,更新性可以指示相应虚拟流中的数据的更新次数。然而,以上描述是示例,并且本发明构思的至少一些示例实施例不限于此。
流信息SDB可被配置为存储与多个虚拟流中的每一个对应的各种信息。例如,如上所述,多个虚拟流可被映射到多个物理流。流信息SDB可被配置为存储关于与每个物理流对应的各个虚拟流的信息。根据本发明构思的至少一个示例实施例,流信息SDB可由输入/输出监测器1150更新。根据本发明构思的至少一个示例实施例,可以以数据库的形式提供流信息SDB,并且流信息SDB可被存储在存储控制器1100中所包括的缓冲存储器(未示出)中或被存储在存储控制器1100外部的缓冲存储器(未示出)中。
流映射表SMT可被配置为存储关于多个虚拟流与多个物理流之间的映射的信息。根据本发明构思的至少一个示例实施例,流信息SDB和流映射表SMT可被存储在存储控制器1100中包括的缓冲存储器(未示出)中或被存储在存储控制器1100外部的缓冲存储器(未示出)中。
图3是示出图1的非易失性存储器装置的框图。图4是用于描述在存储装置处管理的物理流的图。参照图1、图3和图4,非易失性存储器装置1200可包括多个非易失性存储器NVM11至NVM44。多个非易失性存储器NVM11至NVM44中的每一个可利用例如一个半导体芯片、一个半导体管芯或一个半导体封装件来实现。
非易失性存储器NVM11可包括多个平面PL1和PL2。平面PL1可包括多个存储器块BLK11至BLK14,平面PL2可包括多个存储器块BLK21至BLK24。多个存储器块BLK11至BLK14和BLK21至BLK24中的每一个可包括多个页。根据本发明构思的至少一个示例实施例,包括在相同平面(例如,PL1)中的多个存储器块(例如,BLK11至BLK14)可被配置为共享相同位线,但是本发明构思的至少一些示例实施例不限于此。为了例示简明,示例被示出为一个非易失性存储器NVM11包括两个平面PL1和PL2并且一个平面包括四个存储器块,但是本发明构思的至少一些示例实施例不限于此。例如,平面的数量、存储器块的数量或页的数量可不同地改变或修改。根据本发明构思的至少一个示例实施例,剩余非易失性存储器NVM12至NVM44在结构上与上述非易失性存储器NVM11相似,因此,将省略附加描述以避免冗余。
多个非易失性存储器NVM11至NVM44当中属于第一部分的非易失性存储器NVM11、NVM12、NVM13和NVM14可通过第一通道CH1与存储控制器1100通信,多个非易失性存储器NVM11至NVM44当中属于第二部分的非易失性存储器NVM21、NVM22、NVM23和NVM24可通过第二通道CH2与存储控制器1100通信,多个非易失性存储器NVM11至NVM44当中属于第三部分的非易失性存储器NVM31、NVM32、NVM33和NVM34可通过第三通道CH3与存储控制器1100通信,多个非易失性存储器NVM11至NVM44当中属于第四部分的非易失性存储器NVM41、NVM42、NVM43和NVM44可通过第四通道CH4与存储控制器1100通信。非易失性存储器NVM11、NVM21、NVM31和NVM41可构成第一通路WAY1,非易失性存储器NVM12、NVM22、NVM32和NVM42可构成第二通路WAY2,非易失性存储器NVM13、NVM23、NVM33和NVM43可构成第三通路WAY3,非易失性存储器NVM14、NVM24、NVM34和NVM44可构成第四通路WAY4。即,非易失性存储器装置1200可具有多通路/多通道结构,并且可理解,本发明构思的至少一些示例实施例不限于图3所示的结构。
根据本发明构思的至少一个示例实施例,存储装置1000可基于多个物理流来管理非易失性存储器装置1200中包括的多个存储器块。例如,如图4所示,存储装置1000可将多个存储器块中的第一存储器块BLK1作为与第一物理流标识符PSID1对应的物理流来管理,可将多个存储器块中的第二存储器块BLK2作为与第二物理流标识符PSID2对应的物理流来管理,可将多个存储器块中的第三存储器块BLK3作为与第三物理流标识符PSID3对应的物理流来管理,并且可将多个存储器块中的第四存储器块BLK4作为与第四物理流标识符PSID4对应的物理流来管理。
根据本发明构思的至少一个示例实施例,对应于/属于相同物理流标识符的存储器块(例如,第一存储器块BLK1)可被包括在相同平面中,可被包括在相同非易失性存储器中,可被包括在与相同通道连接的非易失性存储器中,或者可被包括在相同通路中所包括的非易失性存储器中。可替代地,与物理流标识符(例如,PSID1)对应的存储器块(例如,第一存储器块BLK1)可分布到多个非易失性存储器。然而,以上描述是示例,本发明构思的至少一些示例实施例不限于此。
如参照图2所描述的,流映射管理器1110可将相似特征的虚拟流映射到相同物理流,并且因此,与相似特征的虚拟流对应的数据可存储在相同物理流中。在这种情况下,由于存储在相同物理流中的数据具有相似特征,所以由于存储装置1000的维护操作(例如,垃圾收集操作)而引起的性能降低可变慢,或者写放大因子(WAF)可减小。
图5是示出图2的流映射表的图。下面,为了例示简明并且为了描述方便,术语“物理流”和“物理流标识符”可互换使用。即,术语“物理流标识符”或物理流标识符的标号(例如,PSID)可用于指示物理流。同样,术语“虚拟流”和“虚拟流标识符”可互换使用,并且术语“虚拟流标识符”或虚拟流标识符的标号(例如,VSID)可用于指示虚拟流。
参照图2和图5,流映射表SMT可包括关于虚拟流与多个物理流中的每一个之间的映射的信息。例如,存储装置1000可包括四个物理流PSID1至PSID4。在这种情况下,通过存储装置1000(或流映射管理器1110),多个虚拟流VSID11至VSID1m可被映射到第一物理流PSID1,多个虚拟流VSID21至VSID2n可被映射到第二物理流PSID2,多个虚拟流VSID31至VSID3k可被映射到第三物理流PSID3,多个虚拟流VSID41至VSID4i可被映射到第四物理流PSID4。流映射表SMT可包括如上所述的映射信息。
如上所述,流映射管理器1110可基于流映射表SMT来确定与从主机110接收的请求RQ对应的虚拟流是否被映射到任何物理流。当流映射表SMT中存在与从主机110接收的请求RQ对应的虚拟流时,流映射管理器1110可在与虚拟流对应的物理流处处理与请求RQ对应的操作。相反,当流映射表SMT不存在该虚拟流时,流映射管理器1110可执行用于将物理流指派或映射到该虚拟流的操作(即,流映射操作或流群集操作)。下面,将参照附图更充分地描述流映射操作或流群集操作。
图6是示出图2的存储装置的操作的流程图。图7是示出图6的操作S140的流程图。参照图2、图6和图7,在操作S110中,存储装置1000可从主机110接收输入/输出请求RQ。为了易于描述,假设输入/输出请求RQ是写请求。
在操作S120中,存储装置1000可确定与输入/输出请求RQ对应的虚拟流标识符VSID。例如,如参照图2描述的,在虚拟流标识符VSID由主机110直接管理的情况下,关于虚拟流标识符VSID的信息可被包括在输入/输出请求RQ中。在这种情况下,存储控制器1100可基于输入/输出请求RQ来确定与输入/输出请求RQ对应的虚拟流标识符VSID。相反,在虚拟流标识符VSID不由主机110直接管理的情况下,存储控制器1100可基于关于输入/输出请求RQ的各种信息(例如,逻辑地址和数据大小)来将虚拟流标识符VSID指派和管理到输入/输出请求RQ。为了描述方便,与来自主机110的输入/输出请求RQ对应的虚拟流标识符被称为“第0虚拟流标识符”,与第0虚拟流标识符对应的虚拟流被称为“第0虚拟流”。
在操作S130中,存储装置1000可确定第0虚拟流标识符VSID0是否被指派或映射到物理流。例如,存储装置1000的存储控制器1100可基于流映射表SMT来确定第0虚拟流标识符VSID0是否被指派到物理流。当确定第0虚拟流标识符VSID0被指派到物理流时,在操作S190中,存储装置1000可在对应物理流PS处执行与输入/输出请求RQ对应的操作。例如,存储装置1000的存储控制器1100可将与输入/输出请求RQ对应的数据存储在对应物理流PS中或对应物理流PS中包括的存储器块之一中。
当确定不存在指派到第0虚拟流标识符VSID0的物理流时,在操作S140中,存储装置1000的存储控制器1100可计算多个物理流PS中的每一个与第0虚拟流之间的距离信息DS。根据本发明构思的至少一个示例实施例,距离信息DS可以是指示第0虚拟流与多个物理流PS中的每一个之间的相似度(或流相似度)的值。流相似度可以是指示多个物理流中的每一个中包括的虚拟流的特征与第0虚拟流的特征有多相似的因子。根据本发明构思的至少一个示例实施例,可基于机器学习执行计算距离信息DS的操作。
详细地,操作S140可包括操作S141至操作S143,如图7所示。在操作S141中,存储装置1000可通过使用机器学习模型来提取每个物理流的代表值(或代表向量)。例如,多个物理流中的每一个的代表值可以是与指派到多个物理流中的每一个的虚拟流之一对应的特征值。特征值可以是对应虚拟流的各种信息(例如,吞吐量、逻辑块地址范围、顺序性、突发性、连续性、更新性等)之一,或者可以是对应虚拟流的各种信息中的两个或更多个的组合。根据本发明构思的至少一个示例实施例,特征值可以是由输入/输出监测器1150(参照图2)直接监测的值,或者可以是所监测的值的组合。
存储装置1000的存储控制器1100可基于存储在流信息SDB中的信息通过使用机器学习来提取每个物理流的代表值。
在操作S142中,存储装置1000可通过使用机器学习模型来提取与第0虚拟流标识符VSID0关联的第0代表值(或者第0代表向量,其可包括例如多个特征值)。第0代表值可以是与第0虚拟流对应的特征值。上面描述了特征值,因此,将省略附加描述以避免冗余。
在操作S143中,存储装置1000可基于所提取的值来计算距离信息。例如,存储装置1000的存储控制器1100可计算所提取的代表值中的每一个与第0代表值之间的逻辑距离,可量化所计算的距离,并且可输出量化结果作为距离信息。根据本发明构思的至少一个示例实施例,如上所述,距离信息DS可指示多个物理流中的每一个与第0虚拟流之间的相似度。
在操作S140之后,在操作S150中,存储装置1000可确定距离信息DS是否低于参考值REF。例如,距离信息DS可包括与目标虚拟流与多个物理流PS中的每一个之间的相似度关联的多个值。存储装置1000的存储控制器1100可确定多个值中的至少一个是否低于参考值REF。
当距离信息DS不低于参考值REF时(例如,当距离信息DS中所包括的分别与多个物理流PS关联的多个值均不低于参考值REF时),在操作S160中,存储装置1000可确定是否仍有未分配的物理流。当仍有未分配的物理流时,在操作S170中,存储装置1000可选择未分配的物理流之一。例如,存储装置1000的存储控制器1100可将未分配的物理流之一指派或映射到第0虚拟流。
当在操作S150中确定距离信息DS低于参考值REF时(例如,当距离信息DS中的分别与多个物理流PS关联的多个值当中的至少一个值低于参考值REF时)或者当在操作S160中确定没有未分配的物理流时,在操作S180中,存储装置1000可选择与距离信息DS中包括的多个值中的最低值对应的物理流。例如,距离信息DS低于参考值REF可意指多个物理流中存在与第0虚拟流具有高相似度的物理流。另外,随着距离信息DS变低或变得更加接近“0”,相似度可增加。在第一物理流与第0虚拟流具有高相似度的情况下,映射到第一物理流的剩余虚拟流与第0虚拟流之间的相似度可为高。即,可为第0虚拟流选择与距离信息DS中包括的多个值中的最低距离值对应的物理流。可替代地,即使距离信息DS不低于参考值REF,在没有未分配物理流的情况下,也可选择已分配的物理流当中与最低距离值对应的物理流,因此,可选择与第0虚拟流具有高相似度的物理流。
根据本发明构思的至少一个示例实施例,在至少两个距离值相等并且为最低的情况下,存储装置1000可根据单独的内部策略来选择物理流。例如,存储装置1000可从分别与最低且相等的至少两个距离值对应的物理流当中选择分配了相对较少的存储器块的物理流。可替代地,存储装置1000可通过比较关于分别与最低的至少两个距离值对应的物理流的任何其它信息来选择物理流。
之后,存储装置1000可执行操作S190。上面描述了操作S190,因此,将省略附加描述以避免冗余。
根据本发明构思的至少一个示例实施例,存储装置1000可基于关于分配到第0虚拟流的物理流的信息来更新流映射表SMT。例如,存储装置1000可利用第0虚拟流标识符和所分配的物理流标识符的映射信息来更新流映射表SMT。
如上所述,根据本发明构思的至少一个示例实施例的存储装置1000可通过提取每个物理流的代表值并比较所提取的代表值和来自主机110的虚拟流的代表值来选择与虚拟流具有最高相似度的物理流。另外,在确定相似度时,由于使用从各种流信息提取的代表值并且周期性地或实时地反映各种流信息,所以确定相似度的准确性可提高。因此,由于高相似度的虚拟流被指派或映射到相同物理流,所以可防止(或减慢)由于存储装置1000的维护操作而引起的性能降低。
图8是用于描述图2的存储控制器的距离信息计算处理的示例图。图9是示出图8的物理流数据库的图。图10是详细示出图8的代表值提取器的框图。为了例示简明,省略了对于描述距离信息的计算和流映射操作而言不必要的组件。另外,为了描述方便,假设存储装置1000包括四个物理流PSID1、PSID2、PSID3和PISID4。然而,本发明构思的至少一些示例实施例不限于此。例如,由存储装置1000管理的物理流的数量可不同地改变。
参照图2和图8至图10,存储控制器1100可包括流信息SDB、流映射管理器1110和非易失性存储器接口电路1140。
流信息SDB可包括关于第一物理流PSDB1至第四物理流PSDB4的信息(以下称为“第一物理流信息至第四物理流信息”)。第一物理流信息PSDB1至第四物理流信息PSDB4中的每一个可包括与对应虚拟流关联的特征。例如,如图9所示,第一物理流信息PSDB1可包括映射到第一物理流PSID1的虚拟流VSID11至VSID14的虚拟流特征VSF11至VSF14。第二物理流信息PSDB2可包括映射到第二物理流PSID2的虚拟流VSID21至VSID24的虚拟流特征VSF21至VSF24。第三物理流信息PSDB3可包括映射到第三物理流PSID3的虚拟流VSID31至VSID34的虚拟流特征VSF31至VSF34。第四物理流信息PSDB4可包括映射到第四物理流PSID4的虚拟流VSID41至VSID44的虚拟流特征VSF41至VSF44。
虚拟流特征VSF11至VSF44中的每一个可包括关于虚拟流VSID11至VSID44中的每一个的各种信息。例如,映射到第一物理流PSID1的虚拟流VSID11的虚拟流特征VSF11可包括关于第一虚拟流VSID1的以下信息:吞吐量TP、逻辑块地址范围LR、更新性UP、顺序性SQ和突发性BS。虚拟流特征VSF11可以是由输入/输出监测器1150(参照图2)监测的值,或者可以是所监测的值的组合。剩余虚拟流特征VSF12至VSF44中的每一个可如上所述包括对应虚拟流的信息,因此,将省略附加描述以避免冗余。
流映射管理器1110可基于流信息SDB和第0虚拟流VSID0(即,与来自主机110的请求RQ对应的虚拟流)的第0虚拟流特征VSF0来确定与第0虚拟流VSID0关联的物理流PSID。
例如,流映射管理器1110可包括代表值提取器1111、距离函数引擎1112和物理流确定器1113。代表值提取器1111可从第0虚拟流特征VSF0以及第一物理流信息PSDB1至第四物理流信息PSDB4的虚拟流特征VFS1x至VSF4x提取第0代表值RV0至***表值RV4。根据本发明构思的至少一个示例实施例,代表值提取器1111可基于预先学习的机器学习模型来执行上述代表值提取操作。根据本发明构思的至少一个示例实施例,可以通过使用训练数据集来学习或训练预先学习的机器学习模型。训练数据集可以包括具有各种类型或特征的数据模式,并且由用户或卖方准备。根据本发明构思的至少一个示例实施例,训练数据集可以是在运行时存储在存储装置中的数据集。
详细地,如图10所示,代表值提取器1111可包括选择引擎1111a和提取引擎1111b。选择引擎1111a可包括多个选择模型SM1至SM4。选择引擎1111a可通过使用多个选择模型SM1至SM4从第一物理流信息PSDB1至第四物理流信息PSDB4的多个虚拟流特征VSF1x至VSF4x选择对应的虚拟流特征VSFa至VSFd。
根据本发明构思的至少一个示例实施例,多个选择模型SM1至SM4中的每一个可以是通过机器学习预先学习的模型。机器学习可包括诸如siamese网络、深度神经网络、卷积神经网络和自动编码器的各种机器学习方案之一。根据本发明构思的至少一个示例实施例,多个选择模型SM1至SM4可利用不同的学习模型来实现,或者多个选择模型SM1至SM4可利用单个学习模型来实现。即,选择引擎1111a可通过使用多个选择模型SM1至SM4中的对应一个从与多个物理流中的每一个对应的虚拟流特征当中选择重要性高的虚拟流特征。根据本发明构思的至少一个示例实施例,虚拟流特征的重要性高可意指虚拟流特征表示对应物理流的特征或对应物理流中包括的多个虚拟流的特征。
提取引擎1111b可包括多个提取模型EM0至EM4。提取引擎1111b可通过使用第0提取模型EM0至第四提取模型EM4从第0虚拟流特征VSF0和所选虚拟流特征VSFa至VSFd提取第0代表值RV0至***表值RV4。
根据本发明构思的至少一个示例实施例,多个提取模型EM0至EM4中的每一个可以是通过机器学习预先学习的模型。机器学习可包括上述机器学习方案之一。根据本发明构思的至少一个示例实施例,多个提取模型EM0至EM4可利用不同的学习模型实现,或者多个提取模型EM0至EM4可利用单个学习模型实现。即,提取引擎1111b可通过使用多个提取模型EM0至EM4从多个虚拟流特征提取重要性高的信息作为代表值。代表值的重要性高可意指代表值表示对应物理流的特征。例如,在大量数据的虚拟流被映射或指派到特定物理流的情况下,该特定物理流的代表值可以是能够表达大量数据的特征值(例如,逻辑块地址范围或数据大小)。可替代地,在热数据的虚拟流被映射或指派到特定物理流的情况下,该特定物理流的代表值可以是指示数据的更新周期的特征值(例如,更新性)。然而,以上描述是示例,本发明构思的至少一些示例实施例不限于此。根据本发明构思的至少一个示例实施例,从多个流特征中的每一个提取的代表值可对应于一条信息,或者可对应于至少两个或更多个信息。可替代地,从多个流特征提取的代表值可以是不同类型的信息。
返回图8,如上所述,代表值提取器1111可基于通过机器学习预先学习的模型来提取第0代表值RV0至***表值RV4。
距离函数引擎1112可被配置为基于代表值提取器1111所提取的代表值RV0至RV4来计算距离信息DS。例如,如上所述,第0代表值RV0可以是与从主机110接收的请求RQ的第0虚拟流VSID0对应的代表值,第一代表值RV1至***表值RV4可以是分别与存储装置1000所管理的第一物理流PSID1至第四物理流PSID4对应的代表值。距离函数引擎1112可将第0代表值RV0与第一代表值RV1至***表值RV4中的每一个进行比较,并且可输出比较结果作为距离信息DS。即,距离信息DS可包括第一距离值ds1至第四距离值ds4。第一距离值ds1可指示第0虚拟流VSID0与第一物理流PSID1之间的相似度,第二距离值ds2可指示第0虚拟流VSID0与第二物理流PSID2之间的相似度,第三距离值ds3可指示第0虚拟流VSID0与第三物理流PSID3之间的相似度,第四距离值ds4可指示第0虚拟流VSID0与第四物理流PSID4之间的相似度。根据本发明构思的至少一个示例实施例,距离函数引擎1112可被配置为使用通过机器学习预先学习的学习模型来计算上述距离信息DS。
物理流确定器1113可从距离函数引擎1112接收距离信息DS并且可基于所接收的距离信息DS来确定与第0虚拟流VSID0对应的物理流或物理流标识符PSID。例如,物理流确定器1113可确定距离信息DS中包括的第一距离值ds1至第四距离值ds4中是否存在低于参考值REF的值。可替代地,当第一距离值ds1至第四距离值ds4中不存在低于参考值REF的值并且存在任何其它物理流时,物理流确定器1113可选择除了第一物理流PSID1至第四物理流PSID4之外的任何其它物理流作为与第0虚拟流VSID0对应的物理流。
可替代地,当第一距离值ds1至第四距离值ds4中不存在低于参考值REF的值并且不存在任何其它物理流时,物理流确定器1113可选择与第一距离值ds1至第四距离值ds4中的最低值对应的物理流作为与第0虚拟流VSID0对应的物理流。可替代地,当第一距离值ds1至第四距离值ds4中存在低于参考值REF的值时,物理流确定器1113可选择与第一距离值ds1至第四距离值ds4中的最低值对应的物理流作为与第0虚拟流VSID0对应的物理流。
例如,假设[ds1,ds2,ds3,ds4]为[0.52,0.83,0.15,0.41]。在这种假设下,在参考值REF为“0.2”的情况下,由于距离值ds3低于参考值REF,所以可选择与最低的第三距离值ds3对应的第三物理流PSID3作为与第0虚拟流VSID0对应的物理流。在参考值REF为“0.1”并且存在未分配的物理流(例如,第五物理流(未示出))的情况下,可选择未分配的物理流作为与第0虚拟流VSID0对应的物理流。在参考值REF为“0.1”并且不存在未分配的物理流(例如,第五物理流(未示出))的情况下,可选择与最低的第三距离值ds3对应的第三物理流PSID3作为与第0虚拟流VSID0对应的物理流。
与所选物理流对应的物理流标识符PSID可被提供给非易失性存储器接口电路1140,并且非易失性存储器接口电路1140可执行与所选物理流标识符PSID关联的操作(即,与请求RQ对应的操作)。根据本发明构思的至少一个示例实施例,与所选物理流对应的物理流标识符PSID可被提供给闪存转换层(FTL)(未示出),并且闪存转换层(FTL)可基于所选物理流标识符PSID从非易失性存储器装置1200中包括的多个存储器块当中选择或指派要执行与请求RQ对应的操作的存储器块。例如,在选择第三物理流PSID3的情况下,如参照图4描述的,可选择与第三物理流PSID3对应的第三存储器块BLK3中的至少一个作为要执行与请求RQ对应的操作的存储器块。
图11A和图11B是用于描述图8和图9的代表值提取器的操作的图。为了例示简明并且为了描述方便,在图11A和图11B中省略了选择模型SM1至SM4的配置。
参照图8、图11A和图11B,如上所述,选择引擎1111a可基于第一物理流信息PSDB1至第四物理流信息PSDB4来选择虚拟流特征VSFa至VSFd。例如,选择引擎1111a可基于第一物理流信息PSDB1来选择与映射到第一物理流PSID1的虚拟流VSID11至VSID14中的虚拟流VSID11对应的虚拟流特征VSF11作为与第一物理流PSID1对应的虚拟流特征VSFa。同样,选择引擎1111a可基于第二物理流信息PSDB2至第四物理流信息PSDB4来选择与映射到第二物理流PSID2至第四物理流PSID4的虚拟流VSID21至VSID44中的虚拟流VSID23、VSID32和VSID44对应的虚拟流特征VSF23、VSF32和VSF44作为与第二物理流PSID2至第四物理流PSID4对应的虚拟流特征VSFb、VSFc和VSFd。选择引擎1111a可基于通过机器学习预先学习的选择模型SM1至SM4(参照图10)来执行上述选择操作。
提取引擎1111b可基于第0虚拟流特征VSF0和选择引擎1111a所选择的虚拟流特征VSFa至VSFd来提取第0代表值RV0至***表值RV4。在这种情况下,第0代表值RV0至***表值RV4可包括相同类型的信息或者可包括不同类型的信息。
例如,如图11A所示,提取引擎1111b可通过使用多个提取模型EM0至EM4分别从第0虚拟流特征VSF0和所选虚拟流特征VSFa至VSFd提取第0代表值RV0至***表值RV4。在这种情况下,第0代表值RV0至***表值RV4可包括关于与对应虚拟流关联的吞吐量的信息TP0、TP11、TP23、TP32和TP44。即,提取引擎1111b所提取的第0代表值RV0至***表值RV4可包括相同类型的信息。在这种情况下,可利用通过机器学习预先学习的单个模型来实现提取引擎1111b中包括的多个提取模型EM0至EM4。即,提取引擎1111b可通过使用单个模型来提取第0代表值RV0至***表值RV4。
相反,如图11B所示,从提取引擎1111b’提取的代表值RV0至RV4可包括不同类型的信息。例如,与第一物理流PSID1对应的第一代表值RV1可包括关于第一物理流PSID1的虚拟流VSID11的吞吐量TP11的信息,与第二物理流PSID2对应的第二代表值RV2可包括关于第二物理流PSID2的虚拟流VSID23的逻辑块地址范围LR23的信息,与第三物理流PSID3对应的第三代表值RV3可包括关于第三物理流PSID3的虚拟流VSID32的更新性UP32的信息,与第四物理流PSID4对应的***表值RV4可包括关于第四物理流PSID4的虚拟流VSID44的吞吐量TP44的信息。在这种情况下,与第0虚拟流VSID0对应的第0代表值RV0可包括关于吞吐量TP0、逻辑块地址范围LR0和更新性UP0的信息,以用于与剩余代表值RV1至RV4进行比较。在这种情况下,第一提取模型EM1和第四提取模型EM4可利用相同的单个学习模型来实现,剩余提取模型EM0、EM2和EM3可利用不同的学习模型来实现。
根据本发明构思的至少一个示例实施例,被配置为提取分别与第一物理流PSID1至第四物理流PSID4对应的第一代表值RV1至***表值RV4的提取模型EM1至EM4中的每一个可接收关于对应物理流的信息(例如,物理流标识符PSID1至PSID4中的对应一个)作为输入。即,提取模型EM1至EM4可基于对应物理流标识符PSID1至PSID4和对应虚拟流特征VSFa至VSFd来提取第一代表值RV1至***表值RV4。
上面将实施例描述为代表值提取器1111为每个物理流选择一个虚拟流特征并且从所选虚拟流特征提取一条信息,但是本发明构思的至少一些示例实施例不限于此。例如,代表值提取器1111的选择引擎1111a可为每个物理流选择至少两个或更多个虚拟流特征。可替代地,代表值提取器1111的提取引擎1111b可被配置为通过组合、重新处理或重新计算所选虚拟流特征的各种信息中的至少两种或更多种类型的信息来计算新类型的信息。该新类型的信息可通过提取引擎1111b的机器学习来确定。
图12是用于描述图8的距离函数引擎的示例图。为了描述方便并且为了例示简明,图12中示意性地示出计算距离信息DS中包括的多个距离信息中的一条距离信息的配置。然而,本发明构思的至少一些示例实施例不限于此。例如,可理解,距离函数引擎可基于图12所示的配置来扩展或修改。
参照图8和图12,提取引擎1111b可包括第0卷积层(ConvNet)CN0和第一卷积层CN1。根据本发明构思的至少一个示例实施例,第0卷积层CN0可指示第0提取模型EM0,第一卷积层CN1可指示第一提取模型EM1。第0卷积层CN0可接收值“x0”并且可提取或输出值“h0”。第一卷积层CN1可接收值“x1”并且可提取或输出值“h1”。根据本发明构思的至少一个示例实施例,值“x0”可指示第0虚拟流特征VSF0,值“h0”可指示第0代表值RV0。值“x1”可指示与第一物理流PSID1对应的虚拟流特征VSFa,值“h1”可指示第一代表值RV1。根据本发明构思的至少一个示例实施例,“x0”、“x1”、“h0”和“h1”中的每一个可以是包括对应信息的向量值。
根据本发明构思的至少一个示例实施例,为了相似度计算的对称性(即,提取相同类型的信息),第0卷积层CN0和第一卷积层CN1可被配置为共享经学习的参数。根据本发明构思的至少一个示例实施例,第0卷积层CN0和第一卷积层CN1可基于用于特征提取的不同学习模型或不同特征提取技术来实现。
距离函数引擎1112可包括联合全连接网层(jointed fully-connected netlayer)FCN。联合全连接网层FCN可从第0卷积层CN0接收值“h0”并且可从第一卷积层CN1接收值“h1”。联合全连接网层FCN可基于输入值“h0”和“h1”来输出或计算值“p”。根据本发明构思的至少一个示例实施例,值“p”可以是第一距离值ds1,第一距离值ds1可由与RV1和RV0之间的差对应的值表达。即,值“p”可由下式1计算。
[式1]
参照上式1,“p”指示联合全连接网层FCN的输出,“σ”指示允许值“p”具有介于“0”和“1”之间的值的函数,“a”指示联合全连接网层FCN处所使用的权重。如上所述,值“p”可通过上式1来计算,并且值“p”可指示值“h0”和值“h1”之间的相似度。换言之,值“p”可指示第0虚拟流和第一物理流之间的相似度。
如上所述,根据本发明构思的至少一个示例实施例的存储装置1000可将来自主机110的虚拟流映射或群集到存储装置1000处管理的物理流。在这种情况下,虚拟流的数量可超过物理流的数量。存储装置1000可通过基于预先映射到物理流的虚拟流的虚拟流特征提取各个物理流的代表值并将所提取的代表值中的每一个与来自主机110的虚拟流的代表值进行比较来计算距离信息(即,流相似度)。存储装置1000可基于所计算的距离信息来选择与来自主机110的虚拟流对应的物理流。
根据本发明构思的至少一个示例实施例,上述提取代表值并计算距离信息的操作可通过经由机器学习预先学习的学习模型来执行。与基于预先简单指定的方案来对虚拟流进行群集的方式相比,由于上述群集虚拟流的方式使用了虚拟流的各种特征,所以流相似度的准确性可提高。即,由于具有相似特征的虚拟流被映射到相同的物理流,所以存储装置的性能和寿命可提高。
图13和图14是示出根据本发明构思的至少一个示例实施例的存储装置的操作的流程图和框图。为了例示简明并且为了描述方便,将参照图1的存储装置1000来描述图13的流程图,并且流映射管理器2110可对应于图1的流映射管理器1110。即,可用图14的流映射管理器2110代替来图1的存储装置1000的存储控制器1100中包括的流映射管理器1110。
参照图1、图13和图14,存储装置1000可执行操作S210至操作S230。参照图6描述了与操作S210至操作S230相似的操作S110至操作S130,因此,将省略附加描述以避免冗余。
在操作S242中,存储装置1000可通过使用机器学习模型来提取与第0虚拟流对应的第0代表值RV0。在操作S243中,存储装置1000可基于代表值池2114和第0代表值RV0来计算距离信息DS。
之后,存储装置1000可执行操作S250至操作S290。操作S250至操作S290与图6的操作S150至操作S190相似,因此,将省略附加描述以避免冗余。
在操作S295中,存储装置1000可更新代表值池2114。根据本发明构思的至少一个示例实施例,根据图6的流程图的操作方法包括提取每个物理流的代表值的操作(即,操作S141)。相反,根据图13的流程图的操作方法不包括提取每个物理流的代表值的操作(即,操作S141)。详细地,如图14所示,能够被包括在存储控制器1100中的流映射管理器2110可包括代表值提取器2111、距离函数引擎2112、物理流确定器2113、代表值池2114和代表值池管理器2115。
代表值提取器2111可被配置为提取与来自主机110的请求RQ对应的第0虚拟流VSID0的第0代表值RV0。即,代表值提取器2111可基于参照图8至图12描述的第0提取模型EM0来提取第0虚拟流VSID0的第0代表值RV0。
同时,代表值池2114可存储分别与多个物理流关联的代表值。例如,可通过与虚拟流关联的虚拟流映射操作或虚拟流群集操作来提取或计算每个物理流的代表值。为每个物理流提取的代表值可被存储在代表值池2114中。即,代表值池2114可存储分别与多个物理流对应的代表值,因此,可获得每个物理流的代表值而无需单独的提取操作(即,省略图7的操作S141)。
距离函数引擎2112可从代表值提取器2111接收第0代表值RV0并且可从代表值池2114接收多个物理流的代表值。距离函数引擎2112可基于所接收的代表值来计算距离信息DS,并且物理流确定器2113可基于所计算的距离信息DS来选择物理流并且可输出与所选物理流对应的物理流标识符PSID。上面描述了距离函数引擎2112和物理流确定器2113的操作,因此,将省略附加描述以避免冗余。
代表值池管理器2115可基于物理流确定器2113所选择的物理流标识符PSID来更新代表值池2114。例如,在为第0虚拟流VSID0选择新物理流(例如,第0物理流)的情况下,代表值池管理器2115可将第0代表值RV0存储在代表值池2114中作为如此选择的第0物理流的代表值。在为第0虚拟流VSID0选择先前分配的物理流(例如,第一物理流)的情况下,代表值池管理器2115可将先前存储在代表值池2114中的第一物理流的代表值与第0代表值RV0进行比较,并且可选择并更新先前存储在代表值池2114中的代表值和第0代表值RV0之一。根据本发明构思的至少一个示例实施例,可基于机器学习来执行上述更新操作。
如上所述,关于多个物理流,根据本发明构思的至少一个示例实施例的存储装置可在代表值池中存储和管理通过机器学习提取的代表值。在这种情况下,在每一虚拟流群集操作中可省略提取每个物理流的代表值的操作。因此,存储装置的性能和寿命可提高。
图15A和图15B是用于描述图14的更新代表值池的操作的图。为了简明并且为了易于描述,省略对于描述更新代表值池2114的操作而言不必要的组件。
参照图1、图14、图15A和图15B,代表值池2114可被配置为存储分别与第一物理流PSID1至第三物理流PSID3对应的第一代表值RV1至第三代表值RV3。代表值池2114可处于虚拟流还未被指派到第四物理流PSID4的状态。
在这种情况下,如图15A所示,存储装置1000可为从主机110提供的第0虚拟流VSID0选择第四物理流PSID4。即,存储装置1000可确定不存在与第0虚拟流VSID0相似的物理流,并且可将新的物理流(例如,第四物理流PSID4)指派到第0虚拟流VSID0。在这种情况下,代表值池管理器2115可利用针对第0虚拟流VSID0提取的第0代表值RV0作为第四物理流PSID4的代表值来更新代表值池2114。更新后的代表值池2114’可存储分别与第一物理流PSID1至第四物理流PSID4对应的第一代表值RV1、第二代表值RV2、第三代表值RV3和第0代表值RV0。
可替代地,如图15B所示,存储装置1000可为从主机110提供的第0虚拟流VSID0选择第一物理流PSID1。即,存储装置1000可确定第一物理流PSID1与第0虚拟流VSID0相似,并且可将第一物理流PSID1指派到第0虚拟流VSID0。在这种情况下,代表值池管理器2115可利用针对第0虚拟流VSID0提取的第0代表值RV0作为第一物理流PSID1的代表值更新代表值池2114。更新后的代表值池2114’可存储分别与第一物理流PSID1至第三物理流PSID3对应的第0代表值RV0、第二代表值RV2和第三代表值RV3。
根据本发明构思的至少一个示例实施例,可选择性地执行更新第一物理流PSID1的代表值。例如,在代表值池2114中,根据将先前存储的第一物理流PSID1的第一代表值RV1与新指派的第0虚拟流VSID0的第0代表值RV0进行比较的结果,可将第一代表值RV1和第0代表值RV0之一更新为第一物理流PSID1的代表值。可替代地,通过将第一代表值RV1和第0代表值RV0组合而获得的新代表值可被更新为第一物理流PSID1的代表值。可基于机器学习来确定上述选择或组合操作。
图16是示出图1的存储装置的操作的流程图。根据本发明构思的至少一个示例实施例,可执行根据图16的流程图的操作方法而无需虚拟流或虚拟流标识符VSID。例如,根据图16的流程图的操作方法可以是将物理流指派到具有顺序性的请求(即,不是随机写请求,而是顺序写请求)的操作。
参照图1和图16,在操作S310中,存储装置1000可从主机110接收输入/输出请求RQ。根据本发明构思的至少一个示例实施例,输入/输出请求RQ可以是写请求。
在操作S320中,存储装置1000可检查所接收的输入/输出请求RQ的顺序性。例如,存储装置1000可管理与从主机110接收的请求RQ的逻辑块地址关联的散列表。散列表可包括累积从主机110接收的多个输入/输出请求的逻辑块地址的信息。存储装置1000可基于散列表来确定所接收的输入/输出请求RQ的逻辑块地址相对于先前的输入/输出请求或存储的数据是不是顺序的(或连续的)。
当在操作S330中确定输入/输出请求RQ不是顺序的或连续的时,存储装置1000可执行操作S340。在操作S340中,存储装置1000可响应于所接收的输入/输出请求RQ而将数据写入非易失性存储器装置1200。根据本发明构思的至少一个示例实施例,在操作S340中写入的数据可以是随机数据(即,无序的数据)。
当在操作S330中确定输入/输出请求RQ是顺序的或连续的时,存储装置1000可执行操作S350。在操作S350中,存储装置1000可将与所接收的输入/输出请求RQ对应的数据存储在缓冲器中。例如,存储装置1000可包括单独的数据缓冲器(例如,DRAM或SRAM)。存储装置1000可将与所接收的输入/输出请求RQ对应的数据存储在数据缓冲器中。
在操作S360中,存储装置1000可确定存储在缓冲器中的数据的大小(即,I/O大小)是否大于参考大小。当存储在缓冲器中的数据的大小不大于参考大小时,存储装置1000可返回到操作S310。
当存储在缓冲器中的数据的大小大于参考大小时,在操作S370中,存储装置1000可将物理流指派到存储在缓冲器中的数据。根据本发明构思的至少一个示例实施例,可基于参照图1至图15B描述的物理流选择或指派方法来执行操作S370。例如,存储装置1000可提取或管理多个物理流的代表值。存储装置1000可提取存储在缓冲器中的数据的代表值。存储装置1000可基于存储在缓冲器中的数据的代表值和物理流的代表值来计算距离信息,并且可基于所计算的距离信息来指派多个物理流之一。即,除了随机数据和顺序的数据基于虚拟流或虚拟流标识符被分类之外,操作S370可与上述实施例的操作相似。因此,将省略附加描述以避免冗余。根据本发明构思的至少一个示例实施例,如上所述,可基于机器学习来执行操作S370。
在操作S380中,存储装置1000可基于所指派的物理流PSID将数据(即,存储在缓冲器中的数据)存储在非易失性存储器装置1200中。例如,存储装置1000可将数据存储在所分配的物理流PSID中包括的存储器块中。可替代地,存储装置1000可将数据存储在特定存储器块中并且可允许该特定存储器块被包括在所指派的物理流PSID中。
根据本发明构思的至少一些示例实施例,存储装置1000可基于突发性来确定从主机110接收的输入/输出请求是与随机数据还是与顺序的数据关联,并且可将具有相似特征的物理流指派到顺序的数据。在这种情况下,即使逻辑块地址由于在主机110上的内核处发生的页高速缓存而失去突发性,由于基于每个物理流的代表值将物理流指派到数据,所以可在相同物理流处管理具有相似特征的数据。因此,存储装置的性能和寿命可提高。
图17是示出图1的存储装置的操作的流程图。参照图1和图17,在操作S410中,存储装置1000可执行正常操作。例如,存储装置1000可基于参照图1至图16描述的操作方法来操作。
在操作S420中,存储装置1000可确定是否需要流重新群集。例如,存储装置1000可响应于主机110的明确请求对物理流进行重新群集。可替代地,存储装置1000可在特定条件下对物理流进行重新群集。根据本发明构思的至少一个示例实施例,物理流的重新群集可包括对指派物理流所需的信息进行重新群集,例如对物理流与虚拟流之间的映射关系进行重新群集、对物理流的代表值进行重新群集、调节物理流的数量、以及调节虚拟流的数量。
根据本发明构思的至少一个示例实施例,特定条件可包括各种条件,例如两个或更多个物理流中包括的数据具有相似度的情况、特定物理流中包括的数据的相似度显著减小的情况、需要未被指派的新的物理流的情况、以及需要将一个物理流中包括的数据分布到两个物理流中的情况。
当需要流重新群集时,在操作S430中,存储装置1000可执行流重新群集操作。例如,在流重新群集操作中,存储装置1000可基于所收集的流信息SDB对学习模型(例如,选择模型或提取模型)执行训练。可替代地,在流重新群集操作中,存储装置1000可将一个物理流中包括的数据分布到至少两个物理流中。可替代地,在流重新群集操作中,存储装置1000可将至少两个物理流中包括的数据整合到一个物理流中。可替代地,在流重新群集操作中,存储装置1000可对各个物理流的代表值进行重新群集。上述操作是示例,并且本发明构思的至少一些示例实施例不限于此。例如,在流重新群集操作中,存储装置1000可对指派物理流所需的各种信息进行重新群集。
图18是示出应用了根据本发明构思的至少一个示例实施例的存储***的固态驱动器(SSD)***的框图。参照图18,SSD***3000可包括主机3100和存储装置3200。根据本发明构思的至少一个示例实施例,主机3100和存储装置3200可以是参照图1至图17描述的主机110和存储装置1000,或者可基于参照图1至图17描述的操作方法来操作。
存储装置3200可通过信号连接器3201与主机3100交换信号SIG,并且可通过电源连接器3202被供应电力PWR。存储装置3200包括SSD控制器3210、多个非易失性存储器3221至322n、辅助电源3230和缓冲存储器3240。
SSD控制器3210可响应于从主机3100接收的信号SIG而控制多个非易失性存储器3221至322n。多个非易失性存储器3221至322n可在SSD控制器3210的控制下操作。辅助电源3230通过电源连接器3202与主机3100连接。辅助电源3230可通过从主机3100供应的电力PWR充电。当没有从主机3100平稳地供应电力PWR时,辅助电源3230可为存储装置3200供电。
缓冲存储器3240可用作存储装置3200的缓冲存储器。根据本发明构思的至少一个示例实施例,参照图1至图17描述的流映射管理器1110和2110中的每一个可通过使用存储在缓冲存储器3240中的信息来执行上述操作。
图19是示出应用了根据本发明构思的至少一个示例实施例的存储***的电子装置的框图。参照图19,电子装置4000可包括主处理器4100、触摸面板4200、触摸驱动器集成电路(TDI)4202、显示面板4300、显示驱动器集成电路(DDI)4302、***存储器4400、存储装置4500、音频处理器4600、通信块4700和图像处理器4800。根据本发明构思的至少一个示例实施例,电子装置4000可以是诸如个人计算机、膝上型计算机、工作站、便携式通信终端、个人数字助理(PDA)、便携式媒体播放器(PMP)、数字相机、智能电话、平板计算机和可穿戴装置的各种电子装置之一。
主处理器4100可控制电子装置4000的总体操作。主处理器4100可控制/管理电子装置4000的组件的操作。为了操作电子装置4000,主处理器4100可处理各种操作。
触摸面板4200可被配置为在触摸驱动器集成电路4202的控制下感测来自用户的触摸输入。显示面板4300可被配置为在显示驱动器集成电路4302的控制下显示图像信息。
***存储器4400可存储用于电子装置4000的操作的数据。例如,***存储器4400可包括诸如静态随机存取存储器(SRAM)、动态RAM(DRAM)或同步DRAM(SDRAM)的易失性存储器和/或诸如相变RAM(PRAM)、磁阻RAM(MRAM)、电阻RAM(ReRAM)或铁电RAM(FRAM)的非易失性存储器。
不管是否供电,存储装置4500均可存储数据。例如,存储装置4500可包括诸如闪存、PRAM、MRAM、ReRAM和FRAM的各种非易失性存储器中的至少一种。例如,存储装置4500可包括电子装置4000的嵌入式存储器和/或可移除存储器。根据本发明构思的至少一个示例实施例,存储装置4500可以是参照图1至图17描述的存储装置,或者可基于参照图1至图17描述的操作方法来操作。
音频处理器4600可通过使用音频信号处理器4610来处理音频信号。音频信号处理器4610可通过麦克风4620接收音频输入,或者可通过扬声器4630提供音频输出。
通信块4700可通过天线4710与外部装置/***交换信号。通信块4700的收发器4720和调制器/解调器(MODEM)4730可遵从以下各种无线通信协议中的至少一种来处理与外部装置/***交换的信号:长期演进(LTE)、全球微波接入互操作性(WiMax)、全球移动通信***(GSM)、码分多址(CDMA)、蓝牙、近场通信(NFC)、无线保真(Wi-Fi)和射频标识(RFID)。
图像处理器4800可通过透镜4810接收光。图像处理器4800中包括的图像装置4820和图像信号处理器(ISP)4830可基于所接收的光来生成关于外部对象的图像信息。
图20是示出应用了根据本发明构思的至少一个示例实施例的存储***的数据中心的框图。参照图20,数据中心5000可包括多个计算节点5100至5400。多个计算节点5100至5400可经由网络NT彼此通信。根据本发明构思的至少一个示例实施例,网络NT可包括诸如Fibre信道、iSCSI协议、FCoE、NAS和NVMe-oF的各种通信协议中的至少一种。
多个计算节点5100至5400可包括处理器5110、5210、5310和5410,存储器5120、5220、5320和5420,存储装置5130、5230、5330和5430,以及接口电路5140、5240、5340和5440。
例如,第一计算节点5100可包括第一处理器5110、第一存储器5120、第一存储装置5130和第一接口电路5140。根据本发明构思的至少一个示例实施例,第一处理器5110可利用单核或多核实现。第一存储器5120可包括诸如DRAM、SDRAM、SRAM、3D XPoint存储器、MRAM、PRAM、FeRAM或ReRAM的存储器。第一存储装置5130可以是诸如硬盘驱动器(HDD)或固态驱动器(SSD)的大容量存储介质。第一接口电路5140可以是被配置为支持经由网络NT的通信的网络接口控制器(NIC)。
根据本发明构思的至少一个示例实施例,第一计算节点5100的第一处理器5110可被配置为访问第一存储器5120。可替代地,第一计算节点5100的第一处理器5110可被配置为经由网络NT访问第二计算节点至第四计算节点5200、5300和5400的存储器5220、5320和5420。根据本发明构思的至少一个示例实施例,第一计算节点5100的第一处理器5110可被配置为访问第一存储装置5130。可替代地,第一计算节点5100的第一处理器5110可被配置为经由网络NT访问第二计算节点至第四计算节点5200、5300和5400的存储装置5230、5330和5430。第二计算节点至第四计算节点5200至5400的操作可与上述第一计算节点5100的操作相似,因此,将省略附加描述以避免冗余。
根据本发明构思的至少一个示例实施例,可在数据中心5000处执行各种应用。应用可被配置为执行用于计算节点5100至5400之间的数据移动或复制的指令,或者可被配置为执行用于组合、处理或再现存在于计算节点5100至5400上的各种信息的指令。根据本发明构思的至少一个示例实施例,数据中心5000可用于高性能计算(HPC)(例如,金融、石油、材料科学、气象预测)、企业应用(例如,横向扩展数据库)、大数据应用(例如,NoSQL数据库或内存中复制)。
根据本发明构思的至少一个示例实施例,多个计算节点5100至5400中的至少一个可以是应用服务器。应用服务器可被配置为执行被配置为在数据中心5000处执行各种操作的应用。多个计算节点5100至5400中的至少一个可以是存储服务器。存储服务器可被配置为存储在数据中心5000处生成或管理的数据。数据中心5000中包括的多个计算节点5100至5400可被放置在相同的站点处,或者可存在于在物理上彼此分离的站点处。根据本发明构思的至少一个示例实施例,数据中心5000中包括的多个计算节点5100至5400可通过相同的存储器技术实现,或者可通过不同的存储器技术实现。根据本发明构思的至少一个示例实施例,数据中心5000中包括的计算节点5100至5400的数量是示例,并且本发明构思的至少一些示例实施例不限于此。另外,在每个计算节点中,处理器的数量、存储器的数量和存储装置的数量是示例,并且本发明构思的至少一些示例实施例不限于此。根据本发明构思的至少一个示例实施例,分别被包括在计算节点5100、5200、5300和5400中的存储装置5130、5230、5330和5430可基于参照图1至图17描述的操作方法来操作。
根据本发明构思的至少一个示例实施例,存储装置可提取虚拟流和内部管理的物理流的代表值,并且可基于所提取的代表值来确定虚拟流与物理流之间的相似度。存储装置可基于相似度将物理流指派到虚拟流。因此,由于具有相似特征的虚拟流被映射到相同物理流,所以存储装置的性能和寿命可提高。
至此已经描述了本发明构思的示例实施例,将显而易见,其可按许多方式变化。这种变化不应被视为脱离本发明构思的示例实施例的预期精神和范围,对于本领域技术人员而言将显而易见的所有这些修改旨在被包括在所附权利要求的范围内。
Claims (21)
1.一种存储装置的操作方法,所述存储装置被配置为利用多个物理流来管理多个非易失性存储器,所述方法包括:
从外部主机装置接收输入/输出请求;
确定与所接收的输入/输出请求对应的第0虚拟流标识符;
从与所确定的第0虚拟流标识符对应的第0虚拟流的第0虚拟流特征提取第0代表值;
提取分别与所述多个物理流中的第一物理流和第二物理流对应的第一代表值和第二代表值;
基于所提取的第0代表值、第一代表值和第二代表值来计算距离信息,所述距离信息包括所述第0虚拟流与所述第一物理流之间的第一相似度以及所述第0虚拟流与所述第二物理流之间的第二相似度;
基于所述距离信息将所述多个物理流之一指派到所述第0虚拟流;以及
在所指派的物理流处执行与所述输入/输出请求对应的操作,
其中,通过使用通过机器学习预先学习的学习模型来执行所述第0代表值的提取、所述第一代表值和所述第二代表值的提取、以及所述距离信息的计算。
2.根据权利要求1所述的方法,其中,所述学习模型包括被配置为从所述第0虚拟流特征提取所述第0代表值的第0提取模型。
3.根据权利要求2所述的方法,
其中,所述学习模型还包括第一选择模型、第二选择模型、第一提取模型和第二提取模型,
其中,所述第一代表值和所述第二代表值的提取包括:
通过使用所述第一选择模型来选择与映射到所述第一物理流的一个或多个第一虚拟流中的至少一个对应的第一虚拟流特征;
通过使用所述第二选择模型来选择与映射到所述第二物理流的一个或多个第二虚拟流中的至少一个对应的第二虚拟流特征;
通过使用所述第一提取模型从所述第一虚拟流特征提取所述第一代表值;以及
通过使用所述第二提取模型从所述第二虚拟流特征提取所述第二代表值。
4.根据权利要求3所述的方法,其中,所述第0虚拟流特征包括关于与所述第0虚拟流标识符对应的所述第0虚拟流的第0吞吐量、第0逻辑块地址范围、第0更新性、第0顺序性和第0突发性的信息,
其中,所述第一虚拟流特征包括关于所述一个或多个第一虚拟流中的所述至少一个的第一吞吐量、第一逻辑块地址范围、第一更新性、第一顺序性和第一突发性的信息,并且
其中,所述第二虚拟流特征包括关于所述一个或多个第二虚拟流中的所述至少一个的第二吞吐量、第二逻辑块地址范围、第二更新性、第二顺序性和第二突发性的信息。
5.根据权利要求4所述的方法,还包括:
由输入/输出监测器监测所述第0虚拟流特征、所述第一虚拟流特征和所述第二虚拟流特征。
6.根据权利要求4所述的方法,
其中,所述第0代表值包括第0值,所述第0值对应于关于所述第0吞吐量的信息、关于所述第0逻辑块地址范围的信息、关于所述第0更新性的信息、关于所述第0顺序性的信息、关于所述第0突发性的信息、或者其中至少两个的组合,
其中,所述第一代表值包括第一值,所述第一值对应于关于所述第一吞吐量的信息、关于所述第一逻辑块地址范围的信息、关于所述第一更新性的信息、关于所述第一顺序性的信息、关于所述第一突发性的信息、或者其中至少两个的组合,
其中,所述第二代表值包括第二值,所述第二值对应于关于所述第二吞吐量的信息、关于所述第二逻辑块地址范围的信息、关于所述第二更新性的信息、关于所述第二顺序性的信息、关于所述第二突发性的信息、或者其中至少两个的组合,并且
其中,包括在所述第0代表值中的所述第0值、包括在所述第一代表值中的所述第一值、以及包括在所述第二代表值中的所述第二值为相同类型。
7.根据权利要求4所述的方法,其中,所述第0代表值包括第0值,所述第0值对应于关于所述第0吞吐量的信息、关于所述第0逻辑块地址范围的信息、关于所述第0更新性的信息、关于所述第0顺序性的信息、关于所述第0突发性的信息、或者其中至少两个的组合,
其中,所述第一代表值包括第一值,所述第一值对应于关于所述第一吞吐量的信息、关于所述第一逻辑块地址范围的信息、关于所述第一更新性的信息、关于所述第一顺序性的信息、关于所述第一突发性的信息、或者其中至少两个的组合,
其中,所述第二代表值包括第二值,所述第二值对应于关于所述第二吞吐量的信息、关于所述第二逻辑块地址范围的信息、关于所述第二更新性的信息、关于所述第二顺序性的信息、关于所述第二突发性的信息、或者其中至少两个的组合,
其中,包括在所述第一代表值中的所述第一值对应于第一类型,
其中,包括在所述第二代表值中的所述第二值对应于与所述第一类型不同的第二类型,并且
其中,包括在所述第0代表值中的所述第0值对应于所述第一类型和所述第二类型二者。
8.根据权利要求1所述的方法,其中,基于所述距离信息将所述多个物理流之一指派到所述第0虚拟流包括:
确定所述距离信息中包括的所述第一相似度和所述第二相似度中的至少一个是否低于参考值;以及
当所述距离信息中包括的所述第一相似度和所述第二相似度中的至少一个低于所述参考值时,将所述第一物理流和所述第二物理流当中的与所述第一相似度和所述第二相似度中的最低相似度对应的流指派到所述第0虚拟流,并且当所述距离信息中包括的所述第一相似度和所述第二相似度二者均不低于所述参考值时,将所述多个物理流当中的与所述第一物理流和所述第二物理流不同的第三物理流指派到所述第0虚拟流。
9.根据权利要求1所述的方法,还包括:
基于所述第0虚拟流标识符和所指派的物理流的物理流标识符来更新被配置为存储所述多个物理流与多个虚拟流之间的映射信息的流映射表。
10.根据权利要求1所述的方法,其中,所述输入/输出请求包括关于所述第0虚拟流标识符的信息。
11.根据权利要求1所述的方法,其中,基于所述输入/输出请求中包括的逻辑块地址或数据大小来确定所述第0虚拟流标识符。
12.根据权利要求9所述的方法,其中,所述多个虚拟流的数量超过所述多个物理流的数量。
13.一种存储装置,包括:
多个非易失性存储器;以及
存储控制器,其包括处理电路***,所述处理电路***被配置为利用多个物理流来管理所述多个非易失性存储器并且将所述多个物理流中的一个指派到与来自外部主机装置的输入/输出请求对应的第0虚拟流,
其中,所述存储控制器还包括存储器,所述存储器被配置为存储流信息,所述流信息包括分别与所述多个物理流对应的多个虚拟流特征,并且
其中,所述处理电路***被配置为基于通过机器学习而预先学习的机器学习模型来:
从与所述第0虚拟流对应的第0虚拟流特征提取第0代表值,
从所述流信息提取分别与所述多个物理流对应的多个代表值,
基于所提取的第0代表值和所提取的多个代表值来计算距离信息,所述距离信息指示所述第0虚拟流与所述多个物理流中的每一个之间的相似度,并且
基于所述距离信息将所述多个物理流中的一个指派到所述第0虚拟流。
14.根据权利要求13所述的存储装置,其中,所述处理电路***被配置为:
基于所述第0虚拟流特征和所述流信息来提取所述第0代表值和所述多个代表值;
计算指示所述多个代表值中的每一个与所述第0代表值之间的相似度的所述距离信息;以及
基于所述距离信息来指派所述多个物理流中的所述一个。
15.根据权利要求14所述的存储装置,
其中,所述处理电路***还被配置为:
通过使用多个选择模型来从所述流信息中包括的多个虚拟流特征当中选择分别与所述多个物理流对应的多个选择虚拟流特征;以及
通过使用多个提取模型来从所述多个选择虚拟流特征提取分别与所述多个物理流对应的所述多个代表值,并且通过使用第0提取模型来从所述第0虚拟流特征提取所述第0代表值,并且
其中,所述多个选择模型和所述多个提取模型被包括在所述机器学习模型中。
16.根据权利要求15所述的存储装置,其中,所述第0提取模型是被配置为从所述第0虚拟流特征提取所述第0代表值的第0卷积层,
其中,所述多个提取模型中的第一提取模型是第一卷积层,所述第一卷积层被配置为从所述多个选择虚拟流特征当中的与所述多个物理流中的第一物理流对应的第一虚拟流特征提取所述多个代表值当中的第一代表值,
其中,距离函数引擎包括联合全连接网层,所述联合全连接网层被配置为基于所述第0代表值和所述第一代表值来计算所述第0虚拟流与所述第一物理流之间的第一相似度,并且
其中,所述第0卷积层和所述第一卷积层还被配置为共享多个学习参数。
17.根据权利要求13所述的存储装置,其中,所述处理电路***还被配置为监测所述第0虚拟流特征和所述多个虚拟流特征。
18.根据权利要求17所述的存储装置,其中,所述第0虚拟流特征包括关于所述第0虚拟流的吞吐量、逻辑块地址范围、更新性、顺序性和突发性的信息,并且
其中,所述多个虚拟流特征包括关于多个虚拟流中的每一个的吞吐量、逻辑块地址范围、更新性、顺序性和突发性的信息,所述多个虚拟流被指派到所述多个物理流中的每一个。
19.一种存储装置的操作方法,所述存储装置被配置为利用多个物理流来管理多个非易失性存储器,所述方法包括:
从外部主机装置接收输入/输出请求;
确定与所接收的输入/输出请求对应的第0虚拟流标识符;
从与所确定的第0虚拟流标识符对应的第0虚拟流的第0虚拟流特征提取第0代表值;
从代表值池获得分别与所述多个物理流中的第一物理流和第二物理流对应的第一代表值和第二代表值;
基于所获得的第一代表值和第二代表值来计算距离信息,所述距离信息包括所述第0虚拟流与所述第一物理流之间的第一相似度以及所述第0虚拟流与所述第二物理流之间的第二相似度;
基于所述距离信息将所述多个物理流之一指派到所述第0虚拟流;
在所指派的物理流处执行与所述输入/输出请求对应的操作;以及
基于所述第0代表值以及与所指派的物理流对应的物理流标识符来更新所述代表值池,
其中,通过使用学习模型来执行所述第0代表值的提取和所述距离信息的计算,所述学习模型是通过机器学习而预先学习的。
20.根据权利要求19所述的方法,其中,所述学习模型包括被配置为从所述第0虚拟流特征提取所述第0代表值的第0提取模型。
21.一种存储装置的操作方法,所述存储装置被配置为利用多个物理流来管理多个非易失性存储器,所述方法包括:
从外部主机装置接收输入/输出请求;
基于所述输入/输出请求的逻辑块地址来确定所述输入/输出请求的突发性;
当所述输入/输出请求具有突发性时,将与所述输入/输出请求对应的数据存储在数据缓冲器中;
当存储在所述数据缓冲器中的所述数据的大小为参考值或更大时,提取存储在所述数据缓冲器中的所述数据的第0代表值;
提取分别与所述多个物理流中的第一物理流和第二物理流对应的第一代表值和第二代表值;
基于所提取的第0代表值、第一代表值和第二代表值来计算距离信息,所述距离信息包括存储在所述数据缓冲器中的所述数据与所述第一物理流之间的第一相似度以及存储在所述数据缓冲器中的所述数据与所述第二物理流之间的第二相似度;
基于所述距离信息将所述多个物理流之一指派到存储在所述数据缓冲器中的所述数据;以及
将存储在所述数据缓冲器中的所述数据存储在所指派的物理流中,
其中,通过使用学习模型来执行所述第0代表值的提取、所述第一代表值和所述第二代表值的提取、以及所述距离信息的计算,所述学习模型是通过机器学习而预先学习的。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2019-0178994 | 2019-12-31 | ||
KR1020190178994A KR20210085674A (ko) | 2019-12-31 | 2019-12-31 | 다중-스트림을 지원하도록 구성된 스토리지 장치 및 그것의 동작 방법 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113126908A true CN113126908A (zh) | 2021-07-16 |
Family
ID=74125021
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011609288.4A Pending CN113126908A (zh) | 2019-12-31 | 2020-12-30 | 被配置为支持多流的存储装置及其操作方法 |
Country Status (4)
Country | Link |
---|---|
US (2) | US11567698B2 (zh) |
EP (1) | EP3846037B1 (zh) |
KR (1) | KR20210085674A (zh) |
CN (1) | CN113126908A (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102493864B1 (ko) * | 2021-11-16 | 2023-01-31 | 삼성전자주식회사 | 스토리지 장치의 동작 방법 및 호스트 및 스토리지 장치를 포함하는 스토리지 시스템의 동작 방법 |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3865775B2 (ja) | 1995-04-11 | 2007-01-10 | キネテック インコーポレイテッド | データ処理システムにおけるデータの識別 |
US6842761B2 (en) | 2000-11-21 | 2005-01-11 | America Online, Inc. | Full-text relevancy ranking |
US7496565B2 (en) | 2004-11-30 | 2009-02-24 | Microsoft Corporation | Method and system for maintaining namespace consistency with a file system |
US8352540B2 (en) | 2008-03-06 | 2013-01-08 | International Business Machines Corporation | Distinguishing data streams to enhance data storage efficiency |
US9875480B2 (en) | 2012-01-27 | 2018-01-23 | Sony Network Entertainment International Llc | System, method, and infrastructure for real-time live streaming content |
US9639549B2 (en) | 2014-01-24 | 2017-05-02 | International Business Machines Corporation | Hybrid of proximity and identity similarity based deduplication in a data deduplication system |
US10282324B2 (en) * | 2015-07-13 | 2019-05-07 | Samsung Electronics Co., Ltd. | Smart I/O stream detection based on multiple attributes |
GB2556925B (en) * | 2016-11-25 | 2020-07-29 | Canon Kk | Method and system for determining encoding parameters of video sources in large scale video surveillance systems |
US10338842B2 (en) | 2017-05-19 | 2019-07-02 | Samsung Electronics Co., Ltd. | Namespace/stream management |
US10902615B2 (en) | 2017-11-13 | 2021-01-26 | Qualcomm Incorporated | Hybrid and self-aware long-term object tracking |
KR102656172B1 (ko) * | 2018-03-28 | 2024-04-12 | 삼성전자주식회사 | 가상 스트림들과 물리 스트림들을 맵핑하기 위한 스토리지 장치 및 그것의 동작 방법 |
US10949123B2 (en) | 2018-10-18 | 2021-03-16 | Western Digital Technologies, Inc. | Using interleaved writes to separate die planes |
KR102599117B1 (ko) * | 2018-11-14 | 2023-11-06 | 삼성전자주식회사 | 블록들의 온 셀 카운트들을 모니터링하고 저장하는 스토리지 장치 및 그것의 동작 방법 |
US10776164B2 (en) * | 2018-11-30 | 2020-09-15 | EMC IP Holding Company LLC | Dynamic composition of data pipeline in accelerator-as-a-service computing environment |
KR20210055875A (ko) | 2019-11-08 | 2021-05-18 | 삼성전자주식회사 | 저장 장치와 저장 장치 시스템 그리고 그 동작 방법 |
KR20210094915A (ko) | 2020-01-22 | 2021-07-30 | 삼성전자주식회사 | 스토리지 컨트롤러, 이를 포함하는 스토리지 장치 및 스토리지 컨트롤러의동작 방법 |
-
2019
- 2019-12-31 KR KR1020190178994A patent/KR20210085674A/ko unknown
-
2020
- 2020-12-29 US US17/136,818 patent/US11567698B2/en active Active
- 2020-12-29 EP EP20217489.2A patent/EP3846037B1/en active Active
- 2020-12-30 CN CN202011609288.4A patent/CN113126908A/zh active Pending
-
2023
- 2023-01-25 US US18/101,496 patent/US11907586B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US11567698B2 (en) | 2023-01-31 |
US20210200477A1 (en) | 2021-07-01 |
US11907586B2 (en) | 2024-02-20 |
EP3846037B1 (en) | 2023-08-23 |
EP3846037A1 (en) | 2021-07-07 |
US20230168842A1 (en) | 2023-06-01 |
KR20210085674A (ko) | 2021-07-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11874815B2 (en) | Key-value storage device and method of operating the same | |
CN107533551B (zh) | 数据块级别的大数据统计 | |
CN110032521B (zh) | 增强闪存转换层映射灵活性的方法和*** | |
US20190243773A1 (en) | Method and system for user-space storage i/o stack with user-space flash translation layer | |
CN103329111B (zh) | 一种基于块存储的数据处理方法、装置及*** | |
CN109522154B (zh) | 数据恢复方法及相关设备与*** | |
KR20160105624A (ko) | 데이터 처리 시스템 및 그것의 동작 방법 | |
US11620263B2 (en) | Data compression using dictionaries | |
CN112684976A (zh) | 用于执行迁移操作的存储器***及其操作方法 | |
US20220075717A1 (en) | Wear Leveling in Non-Volatile Memory | |
US11449270B2 (en) | Address translation method and system for KV storage device | |
CN112673357A (zh) | 主机驻留式转换层有效性检查 | |
CN115756312A (zh) | 数据访问***、数据访问方法和存储介质 | |
KR20210119864A (ko) | 저장 장치 및 방법 | |
US11907586B2 (en) | Storage device configured to support multi-streams and operation method thereof | |
CN107798063A (zh) | 快照处理方法和快照处理装置 | |
CN112181274B (zh) | 提升存储设备性能稳定性的大块的组织方法及其存储设备 | |
KR20150142250A (ko) | 컨트롤러의 작동 방법과 상기 컨트롤러를 포함하는 장치의 작동 방법 | |
CN115328402A (zh) | 数据缓存的方法和装置 | |
US10891223B2 (en) | Storage class memory status | |
KR102623061B1 (ko) | 데이터베이스에서 이터레이터 연산을 수행하기 위한 장치 | |
KR20210052199A (ko) | 스토리지 디바이스 특성 셀프 모니터링을 위한 스토리지 디바이스 및 방법 | |
EP3223167A1 (en) | Storage space management method and device | |
KR102484073B1 (ko) | 스토리지 시스템 | |
CN115480700A (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 |