CN112997138A - 对存储介质访问的支持人工智能的管理 - Google Patents
对存储介质访问的支持人工智能的管理 Download PDFInfo
- Publication number
- CN112997138A CN112997138A CN201980072116.7A CN201980072116A CN112997138A CN 112997138 A CN112997138 A CN 112997138A CN 201980072116 A CN201980072116 A CN 201980072116A CN 112997138 A CN112997138 A CN 112997138A
- Authority
- CN
- China
- Prior art keywords
- host
- storage
- artificial intelligence
- host system
- internal
- 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
- 238000013473 artificial intelligence Methods 0.000 title claims abstract description 389
- 230000006399 behavior Effects 0.000 claims description 116
- 238000000034 method Methods 0.000 claims description 81
- 230000015654 memory Effects 0.000 claims description 79
- 230000005012 migration Effects 0.000 claims description 29
- 238000013508 migration Methods 0.000 claims description 29
- 238000013519 translation Methods 0.000 claims description 14
- 238000004891 communication Methods 0.000 claims description 12
- 230000004044 response Effects 0.000 claims description 6
- 238000007726 management method Methods 0.000 description 55
- 230000000694 effects Effects 0.000 description 38
- 230000008569 process Effects 0.000 description 29
- 239000000872 buffer Substances 0.000 description 28
- 238000012549 training Methods 0.000 description 23
- 238000013528 artificial neural network Methods 0.000 description 13
- 230000003111 delayed effect Effects 0.000 description 11
- 230000003044 adaptive effect Effects 0.000 description 10
- 239000004744 fabric Substances 0.000 description 8
- 230000006870 function Effects 0.000 description 7
- 230000036541 health Effects 0.000 description 7
- 238000012545 processing Methods 0.000 description 7
- 239000007787 solid Substances 0.000 description 7
- 238000007796 conventional method Methods 0.000 description 5
- 238000013527 convolutional neural network Methods 0.000 description 5
- 238000013500 data storage Methods 0.000 description 5
- 210000004027 cell Anatomy 0.000 description 4
- 238000012423 maintenance Methods 0.000 description 4
- 230000000306 recurrent effect Effects 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 239000003607 modifier Substances 0.000 description 3
- 210000002569 neuron Anatomy 0.000 description 3
- 230000002093 peripheral effect Effects 0.000 description 3
- 230000002085 persistent effect Effects 0.000 description 3
- 230000002829 reductive effect Effects 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 230000007423 decrease Effects 0.000 description 2
- 230000000593 degrading effect Effects 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 238000012417 linear regression Methods 0.000 description 2
- 238000010801 machine learning Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 230000036961 partial effect Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 230000003466 anti-cipated effect Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000001771 impaired effect Effects 0.000 description 1
- 230000000670 limiting effect Effects 0.000 description 1
- 238000007477 logistic regression Methods 0.000 description 1
- 230000000873 masking effect Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000007670 refining Methods 0.000 description 1
- 230000002787 reinforcement Effects 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 230000001960 triggered effect Effects 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/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
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
-
- 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/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0658—Controller construction arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
-
- 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
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5094—Allocation of resources, e.g. of the central processing unit [CPU] where the allocation takes into account power or heat criteria
-
- 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/044—Recurrent networks, e.g. Hopfield networks
-
- 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
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- 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
- G06N3/084—Backpropagation, e.g. using gradient descent
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/04—Inference or reasoning models
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Human Computer Interaction (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Mathematical Physics (AREA)
- Artificial Intelligence (AREA)
- Computational Linguistics (AREA)
- Biomedical Technology (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biophysics (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Medical Informatics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开描述了用于对存储介质的支持人工智能的管理的装置(104‑108)和方法(1400‑1800)。在一些方面,存储介质系统(114‑122)的介质访问管理器(130)从主机系统(102)接收用于对存储介质系统(114)的存储介质(124)的访问的主机输入/输出命令(I/O)。介质访问管理器(130)向人工智能引擎(132)提供描述主机I/O的信息,并从人工智能引擎(132)接收对主机系统行为的预测,该预测与存储介质(124)的后续访问相关。然后,介质访问管理器(130)基于对主机系统行为的预测,来调度主机I/O以访问存储系统(114)的存储介质(124)。通过这样做,主机I/O可以被调度以优化主机系统(102)对存储介质(124)的访问,诸如以避免与存储系统(114)的内部I/O的冲突、或基于即将到来的空闲时间而先占各种阈值。
Description
背景技术
许多计算和电子设备包括用于存储设备的软件、应用或数据的非易失性存储器。此外,大多数用户通过数据网络从各种位置或在移动中利用他们的设备通过流来传输数据或访问服务,诸如多媒体内容或社交介质应用。随着用户对数据和服务的不断增加的需求,存储提供者已经扩展了存储驱动器的容量和性能,以支持与用户和其他数据存储客户端的这些活动相关联的数据访问。通常,设备的存储驱动器包括存储介质,设备的数据向存储介质写入、以及从存储介质读取。为此,设备可以向存储驱动器发出数据访问请求,存储驱动器进而如每个请求所指定的,将数据写入存储介质或从存储介质读取数据。因此,存储驱动器性能总体取决于一速率,存储驱动器能够以该速率来完成设备或存储客户端的数据访问请求。
存储驱动器的存储介质不是仅基于从设备接收的数据访问请求来访问。存储驱动器本身可以实现与存储介质的健康或维护相关的各种内部操作。在传统的存储驱动器中,对与这些内部驱动器操作相关联的存储介质的访问不是计划的,并且可能与用于服务设备的数据请求的存储介质的访问冲突。因此,当存储驱动器的内部操作导致冲突访问,并且该冲突访问干扰设备的数据写入操作或数据读取操作时,整体存储驱动器性能可能随着数据请求时延增加、以及存储驱动器的数据吞吐量降低而降级。
发明内容
提供本发明内容是为了介绍在具体实施方式和附图中进一步描述的主题。因此,本发明内容不应被视为描述必要特征,也不应用于限制所要求保护的主题的范围。
在一些方面,存储介质系统的介质访问管理器实现一种方法,该方法从主机系统并且经由存储系统的主机接口,接收用于对存储系统的存储介质的访问的主机输入/输出(I/O)。介质访问管理器向与存储系统相关联的人工智能引擎提供描述从主机系统接收的主机I/O的信息。介质访问管理器从人工智能引擎接收对主机系统行为的预测,对主机系统行为的预测与由主机系统对存储介质的后续访问相关。基于对主机系统行为的预测,介质访问管理器调度用于对存储系统的存储介质的访问的主机I/O。
在其他方面,一种装置包括:主机接口,被配置以用于与主机系统通信;存储介质,用以存储主机系统的数据;以及介质接口,被配置为支持对存储介质的访问。该装置还包括:人工智能引擎;以及介质访问管理器,被配置为经由主机接口,从主机系统接收用于对该装置的存储介质的访问的主机输入/输出(I/O)。介质访问管理器向人工智能引擎提供描述从主机系统接收的主机I/O的信息。介质访问管理器从人工智能引擎接收对主机系统行为的预测,对主机系统行为的预测与由主机系统对存储介质的后续访问相关。至少基于对主机系统行为的预测,介质访问管理器调度用于对存储系统的存储介质的访问的主机I/O。
在另外的其他方面,描述了一种片上系统(SoC),该SoC包括:介质接口,用以访问存储系统的存储介质;主机接口,用以与主机系统通信;以及人工智能引擎。该SoC还包括:基于硬件的处理器;以及存储器,存储处理器可执行指令,处理器可执行指令响应于由基于硬件的处理器执行,实现介质访问管理器,以:经由主机接口,从主机系统接收用于对存储系统的存储介质的访问的主机输入/输出(I/O)。介质访问管理器向人工智能引擎提供描述从主机系统接收的主机I/O的信息。介质访问管理器从人工智能引擎接收对主机系统行为的预测,对主机系统行为的预测与由主机系统对存储介质的后续访问相关。至少基于对主机系统行为的预测,介质访问管理器调度用于对存储系统的存储介质的访问的主机I/O。
一个或多个实现的细节在附图和下面的描述中阐述。其他特征和优点将从说明书和附图以及权利要求书中显而易见。
附图说明
对存储介质访问的支持人工智能(支持AI)的管理的一个或多个实现的细节在附图和下面的详细描述中阐述。在附图中,附图标记的最左边的数字标识附图标记首次出现的附图。在说明书和附图中的不同实例中使用相似的附图标记表示相似的元件:
图1示出了根据本公开的一个或多个方面的具有支持AI的存储介质控制器被实现在其中的设备的示例操作环境。
图2示出了图1所示的存储控制器的介质访问管理器和AI引擎的示例配置。
图3示出了用于实现存储介质控制器的AI引擎的各种硬件和固件组件的示例配置。
图4示出了用于实现多个AI模型的AI引擎和持久存储器的示例配置。
图5示出了高速缓存存储器和存储存储器的示例配置,对存储介质访问的支持AI的管理的各方面通过其可以被实现。
图6示出了利用存储系统控制器的AI引擎来实现的预测性垃圾收集的示例。
图7示出了根据本公开的一个或多个方面由AI引擎调度的内部I/O操作的示例。
图8示出了根据本公开的一个或多个方面对预测主机系统行为的AI模型有用的示例主机I/O事件类型。
图9示出了被配置为预测主机I/O行为的各方面的AI模型的示例实现。
图10示出了包括各种I/O或空闲时间的预测的主机行为的示例。
图11示出了支持对主机行为的多阶段预测的AI模型的示例实现。
图12示出了可用于基于事件概率确定预测主机行为的路径的示例集束搜索(beamsearch)。
图13示出了用于AI模型的在线再训练或在线精化的操作的示例时间线。
图14描绘了根据本公开的一个或多个方面的用于对存储介质访问的支持AI的管理的示例方法。
图15描绘了基于对主机系统行为的预测来延迟存储系统的内部操作的示例方法。
图16描绘了用于基于主机系统行为的预测来提前存储系统的内部操作的示例方法。
图17描绘了用于基于主机系统行为的预测来更改针对设备级管理的阈值的示例方法。
图18描绘了用于利用AI模型的多个实例来运行推理以使得能够进行在线再训练或精化的示例方法。
图19示出了示例片上系统(SoC)环境,在该环境中,对存储介质访问的支持AI的管理的各方面可以被实现。
图20示出了根据本公开的一个或多个方面的AI引擎在其中可以被实现的示例存储系统控制器。
具体实施方式
用于管理对存储介质的访问的传统技术经常导致冲突或低效的存储介质访问,这会使存储驱动器性能降级。通常,存储驱动器固件用于诸如通过转换从设备接收的数据命令,以按端到端的方式来管理存储驱动器的数据路径,数据命令请求对存储介质上的数据的访问。在操作期间,如果出现存储介质健康或存储介质维护问题,则存储驱动器的固件通常调度存储介质访问,以相对于与设备的数据命令相关联的存储介质访问而促进这些内部任务。利用存储介质资源的设备的数据命令还可以进一步影响存储介质的任何正在进行的健康或维护问题。换言之,传统技术经常基于存储介质健康或存储介质维护的当前状态,来调度对存储介质的访问,这是对存储驱动器需求和性能的短期或狭隘视角。因此,用于管理访问的传统技术经常导致对存储介质的冲突访问或低效访问,这会使存储驱动器的性能降级或减少。
本公开描述了用于对存储介质访问的支持AI的管理的装置和技术。与传统的存储介质访问技术相比,所描述的装置和技术可以实现对存储介质访问的支持AI的管理,以用于针对优化的存储驱动器性能,而高效和协调地调度主机输入/输出(I/O)或内部I/O。在一些方面,存储控制器(介质访问管理器)的固件可以使用人工智能(AI)模型,以用于对由固件来管理存储介质访问、以及改进存储驱动器性能有用的活动的预测或预言,AI模型在原生的或专用AI硬件和/或固件上运行。例如,使用AI模型的AI引擎可以针对存储控制器的内部固件/软件来预测相关外部事件(例如,主机系统活动)。支持AI的存储控制器可以基于预测的外部事件、而不仅仅是当前设备状态或过去事件的历史,来确定何时执行与内部存储控制器相关的任务。
通常,对存储介质访问的支持AI的管理的各方面可以通过存储系统(例如,存储驱动器)的预测主机系统行为,来实现对主机I/O和/或内部I/O的智能预测性和适应性调度。在某些情况下,这可以使得通过对事件的AI辅助的预测能够优化内部I/O调度。在其他情况下,介质访问管理器可以先占(preempt)、挂起(suspend)或忽略阈值(例如,垃圾收集或热限制),以允许基于即将到来的空闲时间或主机系统活动中预计的减少,来执行主机I/O。介质访问管理器和AI引擎还可以优化各种闪存转换层(FTL)管理操作(例如,高速缓存、迁移或垃圾收集)以及设备级任务,设备级任务包括针对存储介质设备的热管理或功率管理。
在各种方面,存储控制器的AI引擎和AI模型可以预测主机系统的特定的空闲相关事件(例如,到下一空闲的时间、下一空闲持续时间),以及主机系统I/O行为(例如,写入密度)或存储介质访问的其他参数。通常,存储控制器的AI引擎可以实现或管理多个AI模型,这些AI模型可以基于将受益于AI辅助的存储系统的各种内部任务,而被加载到AI硬件或AI固件。在一些情况下,这些多个或不同的AI模型在原生硬件或AI硬件上并发运行或执行,以提供针对多个内部任务的同时AI辅助。备选地或附加地,AI引擎可以在线(运行时)执行AI模型的再训练或精化,从而支持对特定于用户或特定于主机系统的I/O工作负荷的动态适应。
在对存储介质访问的支持AI的管理的各方面中,存储介质系统的介质访问管理器从主机系统接收用于对存储介质系统的存储介质的访问的主机I/O。介质访问管理器向人工智能引擎提供描述从主机系统接收的主机I/O的信息。然后,介质访问管理器从人工智能引擎接收对主机系统行为的预测,对主机系统行为的预测与对存储介质的后续访问相关。然后,基于对主机系统行为的预测,介质访问管理器调度用于对存储系统的存储介质的访问的主机I/O。通过这样做,主机I/O可以被调度以优化对存储介质的主机系统访问,诸如以避免与存储系统的内部I/O冲突,或基于即将到来的空闲时间先占各种阈值或参数。
下面的讨论描述了操作环境、可以在操作环境中采用的技术、以及操作环境的组件在其中可以被实施的片上系统(SoC)。在本公开的上下文中,通过仅示例的方式来参考操作环境。
操作环境
图1示出了示例操作环境100,具有能够存储或访问各种形式的数据或信息的主机系统102。主机系统102的示例可以包括膝上型计算机104、台式计算机106和服务器108,它们中的任何一个都可以被配置为用户设备、计算设备、或存储网络或云存储的一部分。主机系统102的另外的示例(未示出)可以包括平板计算机、机顶盒、数据存储器具、可穿戴智能设备、电视、内容流设备、高清晰度多媒体接口(HDMI)介质棒、智能器具、家庭自动化控制器、智能恒温器、物联网(IoT)设备、移动互联网设备(MID)、网络附加存储(NAS)驱动器、聚合存储系统、游戏控制台、交通工具娱乐设备、交通工具计算系统、交通工具控制模块(例如,引擎或传动系统控制模块)等等。通常,主机系统102可以为任何适当的目的传送或存储数据,诸如以支持特定类型设备的功能性、提供用户接口、支持网络访问、实现游戏应用、回放介质、提供导航、编辑内容、提供数据存储等。
主机系统102包括处理器110和计算机可读介质112。处理器110可以被实现为用于执行主机系统102的操作系统或其他应用的指令或命令的任何适当类型或数量的处理器(单核或多核)。计算机可读介质112(CRM 112)包括主机系统102的存储器(未示出)和存储系统114。主机系统102的存储器可以包括易失性存储器或非易失性存储器的任何适当类型或组合。例如,主机系统102的易失性存储器可以包括各种类型的随机存取存储器(RAM)、动态RAM(DRAM)、静态RAM(SRAM)等。非易失性存储器可以包括只读存储器(ROM)、电可擦除可编程ROM(EEPROM)或闪存存储器(例如,NAND闪存)。单独地或组合在一起,这些存储器可以地存储与主机系统102的操作系统、用户、和/或应用相关联的数据。
主机系统102的存储系统114可以被配置为任何适当类型的数据存储系统,诸如存储设备、存储驱动器、存储阵列、存储卷等。尽管参照主机系统102进行了描述,但是存储系统114也可以被单独实现为独立设备或更大存储集合的一部分,诸如网络附接存储设备、外部存储驱动器、数据中心、服务器场或虚拟化存储系统(例如,用于基于云的存储或服务)。存储系统114的示例包括非易失性存储器快速版(NVMe)固态驱动器116、外围组件互连快速版(PCIe)固态驱动器118、固态驱动器120(SSD 120)和存储阵列122,其可以利用存储设备或存储驱动器的任意组合来实现。
存储系统114包括存储介质124、以及用于管理存储系统114的各种操作或功能的存储介质控制器126(存储控制器126)。存储介质124可以包括非易失性存储设备或由其形成,非易失性存储设备上存储有主机系统102的数据128或信息。存储介质124可以利用任何类型的固态存储介质或其组合来实现,诸如闪存、NAND闪存、RAM、DRAM(例如,用于高速缓存)、SRAM等。在一些情况下,被存储到存储介质124的数据128被组织成数据(例如,内容)或数据对象的文件,其被存储到存储系统114并由主机系统102访问。数据128的文件类型、大小或格式可以取决于与该文件相关联的相应源、使用或应用而变化。例如,被存储到存储系统114的数据128可以包括音频文件、视频文件、文本文件、图像文件、多媒体文件、电子表格等等。尽管参考固态存储器进行了描述,但是对存储介质访问的支持AI的管理的各方面也可以利用基于磁的或基于光的介质类型来植入。
通常,存储控制器126管理存储系统114的操作,并使主机系统102能够访问存储介质124以用于数据存储。存储控制器126可以通过硬件、固件或软件的任何适当组合来实现,以提供存储系统114的各种功能性。存储控制器126还可以管理或掌管与存储介质124相关联的内部任务或操作,诸如数据高速缓存、数据迁移、垃圾收集、热管理(例如,节流(throttle))、功率管理等。如此,存储控制器126可以从主机系统102接收主机I/O以用于数据访问,并队列化(或生成)与存储介质124的内部操作相关联的内部I/O。通常,存储控制器126可以执行用于对存储介质124的访问的介质I/O,该介质I/O与用于数据访问的经调度主机I/O、和/或用于与存储介质124相关联的内部操作或任务的内部I/O相对应。
在该示例中,存储控制器126还包括存储介质访问管理器130(介质访问管理器130)、人工智能引擎132(AI引擎132)和人工智能模型134(AI模型134)。在其他配置中,存储控制器126可以具有对AI引擎132或AI模型134的访问,AI引擎132或AI模型134与存储控制器126分开实现。在各种方面,介质访问管理器130使用AI引擎132和AI模型134来获得对活动(例如,主机活动或不活动)的预测或预言,该预测或预言对于管理存储介质访问、执行内部任务和改进存储驱动器性能是有用的。通常,介质访问管理器130可以通过存储系统(例如,存储驱动器)的预测的主机系统行为,来实现对主机I/O和/或内部I/O的智能预测性和适应性调度(例如,提前或延迟)。在一些情况下,这可以支持通过对事件的AI辅助的预测而进行优化的内部I/O调度。
例如,介质访问管理器130可以向AI引擎132提供用于存储介质访问的主机I/O的指示。AI引擎132可以使用主机I/O活动的指示作为针对AI模型134的输入,以预测或预言后续主机系统行为。基于对主机系统行为的该预测,介质访问管理器可以调度存储系统114的主机I/O和/或内部I/O,以及适于特定于用户的工作负荷来改进存储系统的性能。AI模型134可以包括任何适当类型的模型,诸如基于循环神经网络(RNN)架构的AI模型。具有RNN类型架构的AI模型可以配置有用于处理输入历史的存储器,使这些模型很好地适于预测主机系统行为或未来活动。AI模型134可以通过任何适当的参数来预测主机行为,诸如空闲相关参数(例如,到下一空闲的时间或下一空闲持续时间)或写入密度参数(例如,在给定持续时间内,主机系统期望写入的数据的量)。介质访问管理器130、AI引擎132和AI模型134如何实现和使用将变化,并在整个公开中进行了描述。
主机系统102还可以包括I/O端口136、图形处理单元138(GPU 138)和数据接口140。通常,I/O端口136允许主机系统102与其他设备、外围件或用户交互。例如,I/O端口136可以包括通用串行总线、人机接口设备、音频输入、音频输出等或与之耦合。GPU 138处理并绘制主机系统102的图形相关数据,诸如操作系统、应用等的用户接口元素。在一些情况下,GPU 138访问本地存储器的一部分以绘制图形,或者包括用于绘制主机系统102的图形的专用存储器(例如,视频RAM)。
主机系统102的数据接口140提供到一个或多个网络的、以及被连接到这些网络的其他设备的连接性。数据接口140可以包括有线接口,诸如以太网或光纤接口,用于通过局域网、内联网或因特网进行通信。备选地或附加地,数据接口140可以包括无线接口,无线接口促进通过无线网络(诸如无线LAN、广域无线网络(例如,蜂窝网络)和/或无线个域网(WPAN))的通信。根据对存储介质访问的支持AI的管理的一个或多个方面,通过I/O端口136或数据接口140传送的任何数据可以写入主机系统102的存储系统114或从其读取。
图2在200总体上图示了介质访问管理器130和AI引擎132的示例配置,其根据对存储介质访问的支持AI的管理的一个或多个方面来实现。在该示例中,在被实现为固态存储驱动器(SSD)202的存储系统114的上下文中示出了介质访问管理器130和AI引擎132。SSD202可以耦合到任何适当的主机系统102,并植入有存储介质124,存储介质124包括多个NAND闪存设备204-1到204-n,其中n是任何适当的整数。在一些情况下,NAND闪存设备204包括存储器设备、裸片或芯片的多个闪存通道,其可以在通道级(设备组)或设备级(单独设备)上可访问或进行管理。尽管被示为SSD 202的组件,但是介质访问管理器130和/或AI引擎132可以与存储系统114分开实现或在存储系统114的外部实现。在一些情况下,介质访问管理器130或AI引擎132被实现为存储介质加速器或聚合存储控制器的一部分,其耦合在主机系统102与一个或多个存储系统114之间。
通常,SSD 202的操作由存储控制器126的实例支持或管理,在该示例中,存储控制器126的实例包括用以支持与主机系统102的通信的主机接口206、以及用以支持对存储介质124的访问的介质接口208。主机接口206可以被配置为实现任何适当类型的存储接口或协议,诸如串行高级技术附件(SATA)、通用串行总线(USB)、PCIe、高级主机控制器接口(AHCI)、NVMe、NVM-over结构(NVM-OF)、NVM主机控制器接口规范(NVMHCIS)、小型计算机系统接口(SCSI)、串行附接SCSI(SAS)、安全数字I/O(SDIO)、光纤通道、它们的任意组合(例如,M.2或下一代形状因子(NGFF)组合接口)等。备选地或附加地,介质接口208可以实现任何适当类型的存储介质接口,诸如闪存接口、闪存总线通道接口、NAND通道接口、物理页寻址(PPA)接口等。
在各种方面,SSD 202或存储控制器126的组件提供主机接口206到主机系统102、以及介质接口208到存储介质124之间的数据路径。在该示例中,存储控制器126包括处理器核210,用于执行内核、固件或驱动器以实现存储控制器126的功能。在一些情况下,处理器核210还可以执行处理器可执行指令,以实现存储控制器126的介质访问管理器130或AI引擎132。备选地或附加地,介质访问管理器130或AI引擎132可以根据AI专用硬件或处理器核执行或在其上运行。
如图2所示,存储控制器126的结构212可以包括控制和数据总线,结构212可操作地耦合并支持存储控制器126的组件之间的通信。例如,介质访问管理器130或AI引擎132可以与主机接口206、处理器核210(例如,固件)或介质接口208通信,以在存储控制器126内交换数据、信息或I/O。存储控制器126的静态随机存取存储器214可以存储用于存储控制器的固件或驱动器的处理器可执行指令或代码,其可以由处理器核210执行。存储控制器126还可以是动态随机存取存储器(DRAM)控制器216和相关联的DRAM 218,以用于存储,或在存储控制器126在主机系统102、存储介质124或存储控制器的其他组件之间移动数据时高速缓存各种数据。
图3在300处图示了用于实现存储介质控制器的AI引擎的各种硬件和固件组件的示例配置。在该示例中,存储控制器126的组件被示出为可以在存储控制器的固件302或硬件304中实现的抽象实体。这只是各种组件的一个示例实现,其中组件中的任何组件都可以与本文描述的其他组件分开实现、或与本文描述的其他组件组合实现。备选地或附加地,参照图2或图3描述的任何组件可以被实现为知识产权块(IP块)或IP核,其作为提供组件的各种所描述特征的逻辑单元、单元和/或集成电路(IC)而被配置。例如,存储控制器126的组件(例如,AI引擎132)可以被植入为包括硬件、固件或软件的组合的IP核或IP块,以提供相应功能性或实现组件的相应操作。
在该示例中,存储控制器126的硬件304包括NAND闪存设备204、主机接口206、介质接口208和处理器210,其可以如参照图2所描述的那样实现。在一些方面,AI引擎132被实现为AI块306(例如,AI IP块)的一部分,AI块306包括处理器核308,AI引擎132在处理器核308上执行或运行。AI引擎132还可以运行AI模型134中的一个或多个AI模型,并提供AI引擎驱动器310,AI引擎132通过AI引擎驱动器310与存储控制器126的固件302交互。备选地或附加地,AI引擎132(例如,轻量级AI引擎132和模型134)可以在存储控制器126的处理器核210上执行,以提供AI引擎驱动器310。
通常,存储控制器126的固件302辅助硬件304来管理主机系统102与存储介质124之间的数据路径。换言之,固件302可以转换从主机系统102接收的针对数据的命令或请求,以支持对存储介质124的访问。如图3所示,固件302包括用于实现主机命令处理器314的主机接口驱动器312、以及用于实现介质命令管理器318的介质接口驱动器316。如图3所示,主机输入/输出命令320(主机I/O 320)由主机命令处理器314接收,并被发送到存储控制器126的闪存转换层324(FTL 324)的I/O调度器322。FTL 324和/或I/O调度器322可以处理和调度主机I/O 320,主机I/O 320然后可以作为对应的介质输入/输出命令326(介质I/O326)来执行,以用于通过介质命令管理器318的存储介质访问。
在各种方面,FTL 324管理命令处理(例如,主机I/O 320转换和调度),以促进主机系统数据在存储系统114内的移动、和/或通过存储控制器126而诸如移动到存储介质124。FTL 324还可以监控存储介质124或存储介质设备的资源或健康。例如,FTL 324可以监控存储介质124或高速缓存DRAM 218的自由空间的量、容量、自由块、坏块、写入/编程周期计数、设备/块损耗模式、功率消耗、温度等。在一些情况下,FTL 324包括用于管理存储介质健康和资源的内部FTL任务328(内部任务328)。FTL 324或存储控制器126的这些内部任务328可以包括访问存储介质的任务或操作,诸如数据迁移、垃圾收集、损耗均衡等。为了实现内部任务328,FTL 324可以生成用于存储介质访问的内部I/O,该内部I/O然后可以作为对应的介质I/O 326来执行以用于通过介质命令管理器318的存储介质访问。
在该示例中,存储控制器126的固件302还包括设备级管理330组件,用以管理存储介质124的设备级方面。例如,设备级管理330组件可以监控或管理以下项中的各单独项的参数:NAND闪存设备204、NAND通道、存储器芯片、存储器裸片、物理存储器块等。在一些情况下,设备级管理330组件监控存储介质124的温度条件(例如,裸片或设备温度),并基于预定义或适应性的温度阈值实现热控制(例如,节流)。例如,设备级管理330组件可以响应于NAND设备或NAND通道的温度超过温度阈值,延迟或限制对特定NAND设备或NAND通道的访问。备选地或附加地,设备级管理330组件可以实现存储介质124的类似形式的功率管理(例如,基于消耗)或其他设备级监控和控制。
在对存储介质访问的支持AI的管理方面,介质访问管理器130可以与AI引擎132交互,以优化用于对存储介质124的访问的各种I/O的处理和调度。在一些方面,介质访问管理器130将主机I/O 320作为输入332而提供或转发给AI引擎132的AI模型134。输入332可以包括描述主机I/O 320(主机系统活动)的任何适当类型的数据或信息,诸如主机I/O的事件类型、主机I/O的事件持续时间、与主机I/O相关联的数据的事件大小等。基于输入332,AI模型134生成或得到对主机系统行为的预测作为输出334。输出334或对主机的预测可以包括任何适当类型的数据或信息,诸如以下项的指示:直到主机系统变为空闲的持续时间、主机系统将保持空闲的持续时间、与由主机系统发出的下一主机I/O有关的参数等。输出334可以由介质访问管理器130直接接收、或通过诸如存储控制器126的I/O调度器322或FTL 324的另一实体接收。使用对主机行为的预测,诸如预测的主机事件(例如,写入密度或空闲时间)或预测的主机行为信息,介质访问管理器130可以更改或修改主机I/O 320和内部I/O如何被处理、调度或执行以作为用于存储介质访问的介质I/O。
例如,在内部任务328的上下文中,介质访问管理器130可以向AI模型134提供描述主机I/O 320的信息,并从AI模型134接收对主机系统行为的预测,对主机系统行为的预测与对存储介质124的后续访问相关。然后,介质访问管理器130和I/O调度器322可以使用存储介质健康和资源的指示、以及对主机系统行为的预测,来处理和调度主机I/O 320(例如,当前和后续接收的主机I/O)和用于内部任务328的内部I/O,以优化对存储介质124的访问。通过这样做,I/O调度可以通过如下来改进:避免或减少主机I/O和内部I/O之间的冲突,其竞争对同一存储介质资源的访问。
作为另一示例,考虑在设备级管理操作的上下文中的对存储介质访问的支持AI的管理,诸如对存储介质访问的基于热量的节流。除了使用当前I/O工作负荷或存储器设备状态来确定热节流的程度或量之外,介质访问管理器130还可以使用由AI引擎132的AI模型134提供的对主机系统行为的预测。在一些情况下,介质访问管理器130可以基于预测的即将到来的空闲时间,更改或先占(例如,暂时挂起)存储器设备的热阈值,在该空闲时间期间,存储器设备的温度将在不活动期间冷却。备选地或附加地,介质访问管理器130可以基于对主机系统行为的预测,来降低存储介质访问被节流的程度。如此,具有使用对主机系统行为的这种预测的能力可能会导致对存储介质访问的较少节流,这进而会改进主机I/O性能。这些仅是对存储介质访问的支持AI的管理的几个示例,在贯穿本公开中实现并描述了其他示例。
图4在400示出了用于实现多个AI模型的AI引擎和持久存储器的示例配置。在一些方面,AI引擎132可以包括多个AI模型134、或可以具有对多个AI模型134的访问,该多个AI模型134被配置或训练为辅助或优化存储介质控制器的不同的相应操作或任务。AI模型134可以存储在存储系统的持久存储介质中,诸如存储介质124或存储控制器126的内部存储器(未示出)。在该示例中,AI模型134存储在NAND闪存设备204上,诸如由图2的SSD 202实现的那些设备。这里,AI模型134包括多个AI模型,其被示为AI模型A 134-1到AI模型N 134-n,其中n是任何适当的整数。AI模型134中的每一个模型可以被配置或训练以用于存储控制器的相应内部任务328或设备级操作,诸如数据迁移、垃圾收集、损耗均衡、热控制等。备选地或附加地,AI模型134可以被配置或训练为辅助FTL 324存储控制器126的多个内部任务328。
如在402所示,介质访问管理器130或AI引擎132可以加载多个AI模型134,以辅助和/或优化存储系统114的内部任务328。在一些情况下,响应于存储系统114启动或加功率,多个AI模型134被加载。在其他情况下,AI模型134中的一个或多个模型可以按需加载、或如由AI引擎132请求而加载。通常,AI模型134可以加载以辅助或支持对存储系统114或存储控制器126的相应内部任务328的优化。在该示例中,假设介质访问管理器130或FTL 324正运行第一内部任务A 328-1(例如,数据迁移)和第二内部任务B 328-2(例如,垃圾收集)。这里,假设AI引擎132在存储系统114启动时,经由介质接口208加载AI模型A 134 1和AI模型B134-2两者。
在本示例的上下文中,AI模型A 134-1和AI模型B 134-2可以顺序或并发运行,以辅助存储控制器的内部任务A和/或内部任务B。如图4所示,AI引擎驱动器310可以向AI模型A 134-1提供第一组输入332-1,并向AI模型B 134-2提供第二组输入332-2。第一组输入332-1可以与第二组输入332-2相同、相似或不同,诸如针对每个内部任务328不同地配置。为了辅助内部任务,AI模型A向I/O调度器322或介质访问管理器130提供第一组输出334-1,而AI模型B 134-2向I/O调度器322或介质访问管理器130提供第二组输出334-2。第一组输出334-1可以与第二组输出334-2相同、相似或不同,诸如针对每个内部任务328不同地配置。
图5在500示出了高速缓存存储器和存储设备存储器的示例配置,对存储介质访问的支持AI的管理的各方面可以通过高速缓存存储器和存储设备存储器来实现。在该示例中,高速缓存存储器被示为单级单元(SLC)闪存高速缓存502,尽管在写入多级单元(MLC)闪存504之前可以使用其他闪存或存储器类型来高速缓存数据。MLC存储504还可以利用其他闪存或存储器类型来实现,诸如三级单元(TLC)闪存、四级单元闪存(QLC)、XLC闪存、NOR闪存等。通常,存储系统114可以利用SLC高速缓存502来实现,以改进突发写入性能或减少MLC存储介质504上的损耗。然而,SLC闪存或其他类型的高速缓存存储器可能比存储介质更昂贵,使得SLC高速缓存502利用比MLC闪存存储器的主存储区少的容量来实现。
如图5所示,主机系统102的主机I/O 320可以使数据被写入SLC高速缓存502的自由空间506(为了直观简明,这里省略了主机I/O到介质I/O的转变)。主机I/O 320的数据可以作为有效数据508或经整理的数据510,填充或占据SLC高速缓存502的非连续区域(例如,部分页或块)。在一些情况下,有效数据508在SLC高速缓存502内被组织和移动,以形成经整理的数据510。随着SLC高速缓存502用数据填充,存储控制器126将有效数据508或经整理的数据510迁移到MLC存储器504,如在512所示。备选地或附加地,主机I/O320还可以绕过SLC高速缓存502,而直接向MLC存储器504写入数据。
随着MLC存储504用数据填充,存储控制器126可以实现对部分有效MLC块的垃圾收集,以释放这些MLC块以供重复使用(例如,作为空闲MLC块而支持数据写入),如在514所示。如此,用于去往存储介质的数据写入的主机I/O 320可以导致与由存储控制器126或FTL324执行的数据迁移512和垃圾收集514相对应的内部I/O。在一些情况下,用于数据迁移512和垃圾收集514的内部I/O与从主机系统102接收的主机I/O 320并发出现。当内部I/O被允许以竞争对存储介质的访问(例如,作为对应的介质I/O)时,主机I/O性能,并且由此总体主机系统性能可能会受到极大的损害或降低。
在对存储介质访问的支持AI的管理方面,介质访问管理器130可以在调度主机I/O320和内部I/O中使用AI引擎132,以优化主机I/O性能并减少或消除用于对存储介质124的访问的主机I/O和内部I/O之间的争用。通常,介质访问管理器130可以利用对主机相关事件和行为的预测,来实现主机I/O和内部I/O的适应性或优化的调度。换言之,如果未来的主机I/O事件或活动基于过去的主机系统活动来预测,则对内部FTL操作的调度可以针对预测的机会而进行优化,以避免或减少尽可能多的并发主机I/O和内部I/O。在各种方面,存储控制器的介质访问管理器130和/或AI引擎132可以实现针对存储系统的预测性或适应性内部任务、或设备级管理。
在一些方面,介质访问管理器130向AI引擎132提供关于主机系统的当前或过去活动的信息,诸如用于读取或写入命令(例如,逻辑块地址(LBA)、大小、时间戳)或空闲时间(例如,间隔、占空比、周期性、频率、持续时间等)的信息或描述性数据。基于当前或过去的主机活动,使用AI模型134,AI引擎132可以提供对后续或未来主机活动的预测,诸如存储介质访问或空闲时间。对存储介质访问的预测可以包括访问的类型、主机系统将写入或读取的数据的量、写入或读取将花费多长时间来完成、或者哪些数据将来可能被无效或重写。基于对未来主机系统行为的预测,介质访问管理器130可以通过提前或延迟各种I/O,来更改对主机I/O或内部I/O的调度,以避免或减少对存储介质的访问的争用。通过这样做,主机I/O性能可以通过如下来改进:高效地屏蔽或隐藏内部I/O的执行、并利用从主机系统(例如,台式或膝上型计算设备)感知到的主机系统空闲时间的优点。
图6示出了由介质访问管理器130、并且利用存储系统控制器的AI引擎132来实现的预测性垃圾收集的示例。如在600所示,主机性能通过与传统垃圾收集一起发生的节流或暂停而降级。在没有支持AI的管理的情况下,无论何时主机的写入突发602超过存储介质的自由空间604的一水平时,垃圾收集通常被运行。与写入突发602相关联的传入数据使自由空间的水平落到垃圾收集阈值606以下,从而触发导致降低的主机I/O性能608的垃圾收集,这是因为用于垃圾收集的内部I/O与写入突发602的主机I/O竞争存储介质访问。
与传统技术相比,由AI引擎132和模型134支持的预测性垃圾收集的示例在610示出。在一些方面,存储介质的卷被配置有相应的阈值和自由空间,以支持预测性垃圾收集612,该预测垃圾收集612可以支持适应性垃圾收集操作,其减轻或避免主机I/O性能降低(例如,防止主机I/O节流)。使用AI引擎132,介质访问管理器130可以接收与主机系统的预测的写入突发614有关的信息。介质访问管理器130可以确定预测的写入突发614超过自由空间616的水平,并且在预测的写入突发614被预期发生之前,实现预测性垃圾收集612内部I/O。通过这样做,预测性垃圾收集612提供自由空间618的新水平,其可以接收(或吸收)预测的写入突发614或其他写入突发的数据,而不触发将干扰写入突发的主机I/O的常规垃圾收集内部I/O。
图7示出了根据一个或多个方面由AI引擎调度的内部I/O操作的示例。在该示例中,介质访问管理器130可以延迟垃圾收集和/或数据迁移,以改进主机I/O性能。如在700所示的,在没有支持AI的管理的情况下,主机写入702可以在704触发数据迁移,然后在706在遇到每个相应阈值时(例如,当可用自由空间减少时)触发垃圾收集。如在708所示的,当数据迁移和垃圾收集被执行以释放存储介质的块时,内部I/O与主机I/O争用对存储介质接口的访问并且使主机访问降级。
与传统技术相比,由AI引擎132和IA模型134支持的延迟垃圾收集和/或数据迁移的示例在710示出。在一些方面,介质访问管理器130监控主机系统的主机I/O,其在此包括用于去往存储介质的主机写入712的主机I/O。基于主机写入712,介质访问管理器130可以向AI引擎驱动器310的AI模型134提供事件类型或持续时间的指示714。基于主机活动的指示714,在716,AI模型134提供对主机系统行为的预测。对主机系统行为的预测可以包括描述以下项的信息:到下一空闲的时间、下一空闲的持续时间、直到主机系统的下一空闲的主机写入的写入密度等。基于对即将到来的空闲时间的预测718,介质访问管理器130可以延迟存储控制器的内部任务,如在720所示的。在不竞争FTL 324的内部I/O的情况下,在722支持完全主机性能,相对而言,利用传统存储控制器,则存储控制器的内部任务会使主机I/O性能降级。使用对主机系统的空闲时间的预测,介质访问管理器130然后可以在不与主机系统的主机I/O冲突的情况下,实现延迟的数据迁移724和延迟的垃圾收集726。
备选地或附加地,根据一个或多个方面,介质访问管理器130可以实现适应性高速缓存管理和动态绕过(dynamic bypass)。类似于适应性垃圾收集和数据迁移,介质访问管理器130可以使用对主机系统行为的预测,该预测与“写入密度”相关,以通过去往存储介质(例如,xLC闪存存储设备)的先占性(例如,早期)数据迁移或动态绕过高速缓存,来管理高速缓存(例如,SLC闪存高速缓存)的使用。例如,基于对大的写入突发的预测,介质访问管理器130可以执行从高速缓存存储器到存储介质的早期数据迁移,以释放足够的空间来吸收写入突发。在其他情况下,介质访问管理器130可以确定当前空闲时间对于数据迁移是不充足的,并且替代地使大的写入突发绕过高速缓存存储器以直接写入存储介质。这种绕过型数据写入可能比使用充足大小的高速缓存存储器慢,但是避免了来自高速缓存存储器的数据迁移,高速缓存存储器如果不能吸收整个写入突发,将在并发数据迁移触发时显著使主机I/O性能降级(例如,比绕过型数据写入慢得多)。
贯穿本公开描述的各种方面可以由介质访问管理器130或FTL 324来实现,介质访问管理器130或FTL 324与存储系统的、或与存储系统相关联的AI引擎、AI模型或AI驱动器进行交互。关于处理存储系统的各种信息,AI引擎132和/或AI模型134可以利用机器学习来实现,机器学习基于用于主机系统活动或行为预测的一个或多个神经网络。AI引擎132的每个AI模型、AI算法或神经网络可以包括一组连接的节点,诸如神经元或感知器,其被组织成一个或多个层。
通过示例的方式,AI引擎132的AI模型134(例如,机器学习模型)可以利用深度神经网络来实现,深度神经网络包括输入层、输出层以及一个或多个隐藏中间层,一个或多个隐藏中间层被定位于神经网络的输入层与输出层之间。深度神经网络的每个节点进而可以在神经网络的各层之间完全连接或部分连接。AI模型或AI算法可以是任何深度神经网络(DNN),诸如卷积神经网络(CNN),CNN包括AlexNet、ResNet、GoogleNet、MobileNet等中的一项。备选地或附加地,AI模型可以包括任何适当的循环神经网络(RNN)或其任何变型。通常,由AI引擎132采用的AI模型或AI算法还可以包括任何其他监督学习、非监督学习、强化学习算法等。
在各种方面中,AI引擎132的AI模型134可以被实现为循环神经网络,其具有形成循环的节点之间的连接,以为输入数据序列的后续部分(例如,主机I/O或事件描述)保留来自输入数据序列的先前部分的信息。备选地,AI模型可以被实现为前馈神经网络,其具有节点之间的连接,该连接不在输入数据序列之间形成循环。在其他情况下,AI引擎132的AI模型134可以包括具有多层感知器的卷积神经网络(CNN),其中给定层中的每个神经元与相邻层的所有神经元相连接。在一些方面,基于卷积神经网络的AI模型134可以应用于先前的主机系统活动,以预测或预言某种形式的后续或未来主机系统行为或活动。备选地或附加地,AI引擎132可以包括或利用各种回归模型,诸如多个线性回归模型、单个线性回归模型、逻辑回归模型、逐步回归模型、多变量适应性回归模型、局部估计的散点图模型等。
图8在800示出了根据一个或多个方面在预测主机系统行为中对AI模型有用的示例主机I/O事件类型。在该示例中,闪存转换层324被示为处理主机I/O 320,以生成用于对存储介质124的访问的对应介质I/O 326。这些主机I/O 320可以包括或对应于用于相应存储介质访问操作的主机I/O事件802-0到802-t。基于主机I/O 320,介质访问管理器130向AI引擎132的AI模型134中的一个或多个模型提供输入332。如图8所示,输入332可以包括事件描述符或描述,其包括事件类型、事件大小、事件持续时间、事件时间戳等。基于输入332(例如,主机I/O事件),AI模型134可以针对预测的主机行为,生成输出334或向介质访问管理器130提供输出334。如图8所示,针对预测的主机行为的输出334可以包括到下一空闲的时间、下一空闲的持续时间、(后续主机系统访问的)写入密度等。
在一些方面,介质访问管理器130或FTL 324将这些I/O事件的描述或描述符转发到AI模型134,以利用被配置为实现对未来主机行为或活动的预测的神经网络进行处理。在本示例的上下文中,主机I/O事件802可以如等式1所示出的进行描述或分类,其中xt是事件类型,dt是事件的持续时间。
Et=[xt,dt]
等式1:主机I/O事件描述符结构
通常,事件类型或I/O命令可以参照访问类型(例如,读取/写入)和访问的大小(例如,4KB、8KB或16KB)来描述。事件持续时间(dt)可以被定义为从事件或I/O命令到达到下一或后续I/O命令到达的时间。关于空闲事件和空闲时间,如果与事件相关联的持续时间长于预定义的空闲持续时间阈值(D),则该事件可以被分类为“空闲”,并且相关联的持续时间被分类为“空闲时间”。如在804所示的,针对AI模型134的输入序列可以由多个事件描述符806形成,其中在任何步骤(t)主机I/O事件的历史可以如等式2所示定义。
Et-w+1,Et-w+2,...Et-1,Et
等式2:主机I/O事件历史
利用主机I/O事件的输入序列,经训练的AI模型134可以被提供有空闲持续时间阈值,利用该空闲持续时间阈值来预测到下一空闲的时间下一空闲持续时间和写入强度通过示例的方式,考虑图9,其示出了被配置为预测主机I/O行为的AI模型900的示例实现。在各方面,AI模型134可以基于循环神经网络(RNN)体系结构,其可以证明在利用存储器处理像主机系统的I/O活动的输入的历史方面是有利的。
如图9所示,AI模型900包括嵌入层902、循环层904、以及相应的预测层和分类层906到910,用于“到下一空闲的时间”、“下一空闲的持续时间”和“直到下一空闲的写入量”。在该示例中,AI模型的输入权重912包括持续时间输入914和事件输入916,其可以由如本文所述的介质访问管理器130生成并格式化。在一些情况下,嵌入权重918在循环层904之前的嵌入层902处被应用于事件输入916。循环层904还可以包括隐藏权重920,其可以被应用于将AI模型900的实例与AI模型900的先前步骤或运行相连接。
如图9所示,AI模型900还包括相应的权重922至926,用于预测“到下一空闲的时间”、“下一空闲的持续时间”和“直到下一空闲的写入量”。类似地,预测层或分类层906至910中的任何一项或所有项提供对“到下一空闲的时间”、“下一空闲的持续时间”和“直到下一空闲的写入量”的主机I/O活动数量的对应预测928到932。通常,回归损失函数934和936以及分类损失函数938用于使用后向传播来训练模型权重。备选地或附加地,AI模型900可以包括注意力层,以使得AI模型能够基于先前隐藏状态的历史,来学习哪些权重或层要注意。
作为预测的主机行为的另一示例,考虑图10,其示出了包括各种I/O或空闲时间的预测的主机行为的示例。在一些方面,多阶段途径可以由AI模型134实现,以预测到下一空闲的时间、下一空闲的持续时间和/或主机I/O活动的写入密度。如在1000所示的,AI模型134将w个事件的历史作为输入序列,来预测下一事件1002以用作中间结果。这里,假设AI模型134预测4KB读取操作具有95%概率(被示出为下一事件1002),并且8KB写入操作具有5%概率。基于输入序列,AI模型134还可以预测针对下一事件1002(例如,针对4KB读取操作)的持续时间
该中间结果,事件1002,可以在1004被提供回给AI模型134作为输入序列的下一事件,以便预测下一事件1006这里,假设下一事件1006可以通过概率被预测为最有可能是持续时间的8KB写入。AI模型134的这种递归途径可以被执行和/或重复,直到空闲时间事件被预测到。例如,递归方法如在1008所示地重复,直到步骤t+T 1010,其中预测的持续时间长于预定义的空闲持续时间阈值D,在此点处,空闲事件被预测到,或者步骤t+T达到预定义的先行步骤S。如果递归方法产生对空闲事件的预测,则后续预测阶段可以用来预测针对主机系统活动的其他I/O相关量,如下面的等式3至5所示。
等式3-5:针对预测的空闲事件相关的主机系统行为的量
通过示例的方式,考虑图11,其示出了被配置用于主机I/O行为的多阶段预测的AI模型1100的示例实现。如图11所示,AI模型1100包括嵌入层1102、循环层1104、预测层1106和分类层1108。在该示例中,AI模型1100的输入权重1110包括持续时间输入1112和事件输入1114,其可以由如本文所述的介质访问管理器130生成并格式化。在一些情况下,嵌入权重1116在循环层1104之前的嵌入层1102被应用于事件输入1114。循环层1104还可以包括隐藏权重1118,其可以被应用于将AI模型1100的实例与AI模型1100的先前步骤或运行相连接。
如图11所示,AI模型1100还包括预测各种事件持续时间的“事件持续时间”权重1120、以用于对事件进行分类的“事件类型”权重1122,其可以被提供给预测层1106。预测层1106和分类层1108可以为下一或中间事件提供相应的事件预测1124和事件分类1126。通常,回归损失函数1128和分类损失函数1130用来使用后向传播来训练模型权重。备选地或附加地,AI模型1100可以包括注意力层,以使AI模型能够基于先前隐藏状态的历史,来学习哪些权重或层要注意。
图12在1200示出了示例集束搜索,其对于基于事件概率来确定预测的主机行为的路径是有用的。在一些方面,集束搜索可用于通过对主机系统行为的预测,来减少或减轻错误传播。通常,在每个时间步骤,由介质访问管理器130或AI引擎132实现的集束搜索可以保持具有最高联结或组合概率的K个事件。通过这样做,集束搜索可以增加AI引擎132从时间步骤t+1到时间步骤t+T选择事件的最佳路径的概率。如图12所示,对于K=3个事件,基于针对每个下一事件的指派的概率,集束搜索可以沿着从事件1202到事件1204的路径前进。基于从集束搜索到空闲事件1206的所选路径,AI引擎132可以使用如本文描述的AI模型134来预测“到下一空闲事件的时间”、“下一空闲的持续时间”或“写入密度”。
图13在1300示出了用于AI模型的在线再训练或在线精化的操作的示例时间线,其可以使AI模型能够适于特定于用户或特定于设备的I/O工作负荷。通常,用于预测主机系统I/O事件或行为的AI模型可以在将存储系统部署到用户之前,使用大数据集进行离线训练,该大数据集对于给定类型的设备或应用是通用的。一旦该设备由用户使用,则各种应用和日常使用模式通常从一用户到下一用户而变化。如此,AI模型的有效性或准确性可以基于终端用户的实际使用,利用在线(例如,运行时)精化或再训练来改进。
关于精化或再训练AI模型,下面的讨论可以适用于任一项,因为这些操作可以利用相同或相似的操作来实现。例如,当AI模型是鲁棒的或者已经在对对应用户有意义的数据上训练了足够长的时间时,AI模型可以被精化。在其他情况下,如果AI模型关于设备的特定用户的最佳参数不准确,则AI模型可以再训练。AI模型的精化可以包括模型参数的部分更新,诸如模型中的多个层或修改DNN的给定层中的参数。关于再训练,大部分或全部AI模型可以诸如利用引入、扩展或移除DNN的各种参数、权重或层来调整。在各种方面,存储控制器126、AI引擎132或AI引擎驱动器310的固件可以对AI模型134中的一个或多个模型进行再训练或精化。
在一些方面,AI模型上的推理过程和在线训练并发或并行地执行。由推理过程提供的输出既可用于预测主机系统行为,也可用于在线训练目的。为此,存储控制器或AI引擎132的固件可以同步或协调推理过程和在线训练的步骤,以确保在并发在线训练过程期间使用一组正确或最佳的模型权重。通常,在线训练(或精化)包括前向步骤和后向步骤,这两个步骤可以根据需要执行或重复。前向步骤可以与推理步骤类似或相同。后向步骤通过后向传播更新正被再训练的AI模型的权重或参数。在一些情况下,后向传播包括计算模型权重中的一个或多个模型权重被修改的量或程度。例如,AI引擎可以计算针对每个模型权重的权重修改量(Δw),并且然后从相应的权重添加或减去该权重修改量。
如图13所示,当AI模型被训练或精化时,AI模型的两个模型或实例可以并行操作。在该示例中,推理过程1302与AI模型的在线训练1304并发或并行地运行。通常,一个AI模型可以被指定为“当前模型”,而另一AI模型可以被指定为“更新模型”,其提供经再训练或改进的模型权重。AI模型的实例可以通过使用多个缓冲区来并发或并行地实现,多个缓冲区存储AI模型参数的相应版本。参照图13,这些缓冲区被标记为缓冲区A 1306和缓冲区B1308。如图13所示,推理过程1302可以连续运行,并且在线训练过程1304除了在权重被更新时以外也可以连续运行。
在一些方面,推理过程1302和在线训练1304在相同的硬件(未示出)上执行,以运行推理步骤和在线训练过程。换言之,在线训练1304的推理部分(或前向部分)和推理过程1302可以在本文描述的图1至图4所示的硬件和/或其他系统(例如,图19)或控制器(例如,图20)的相同实例上运行。例如,推理硬件的单个实例可以被实现,来执行图13的推理过程1302和在线训练1304两者。如图13所示,当缓冲区A 1306的权重被更新时,推理过程1302可以使用缓冲区B 1308的权重继续运行。类似地,当缓冲区B 1308的权重被更新时,推理过程1302可以使用缓冲区A 1306的权重继续运行。
在本示例的上下文中,在线训练1304可以基于缓冲区A 1306中的当前AI模型134来运行。AI引擎132利用当前AI模型134或缓冲区A 1306中的模型权重运行针对一个或多个实例(步骤)的推理作为一个批次1310(例如,批次1 1310-1)。在批次1310完成时,AI模型134通过后向传播1312进行更新,这可以由AI引擎132或存储控制器126的处理器核来实现。更新缓冲区B 1308中的模型权重或AI模型134耗费时间,在此期间推理过程1302可以通过AI模型134的另一实例继续运行。当批次1 1310-1的权重修改量1314-1在缓冲区B中被更新时,在线训练过程1304可以被锁定(模型参数调整暂停),而推理过程1302继续在缓冲区A上运行。通过这样做,在不使推理过程1302的性能降级的情况下,可以实现在线训练过程1304,同时支持对AI模型的快速且有效的训练。
在后向传播完成并且缓冲区B 1308中的模型权重或AI模型134被更新之后,该缓冲区变为用于下一批次在线训练1304和用于推理过程1302的“当前”缓冲区。换言之,批次21310-2利用存储在缓冲区B 1308中的模型权重或AI模型134运行,并且缓冲区A 1306变为“更新”缓冲区。如图13所示,以交替的方式,缓冲区1306A保存“当前”模型或模型权重,而缓冲区B 1308用作“更新”模型或模型权重。在模型更新完成时,缓冲区然后交换角色,即缓冲区1308B保存“当前”模型或模型权重,而缓冲区A 1306用作“更新”模型或模型权重。换言之,在线训练在缓冲区之间利用每个批次(例如,批次3、批次4、以此类推)的“往复”,以实现连续的在线训练过程。在在线或运行时训练期间,推理过程1302可以使用“当前”缓冲区的模型权重或模型,来提供对主机系统行为的适应性预测。在其他方面,可以执行再训练的AI模型精化,使得AI模型训练在第一组时间间隔期间实现,而推理在第二组不同的时间间隔中执行。
用于对存储介质访问的支持AI的管理的技术
以下讨论描述了用于对存储介质访问的支持AI的管理的技术,这些技术可以调度主机I/O或内部I/O以优化存储驱动器的性能。这些技术可以使用本文描述的任何环境和实体来实现,诸如介质访问管理器130、AI引擎132和/或AI模型134。这些技术包括图14至图18中所示的各种方法,各种方法中每个方法被示为可以由一个或多个实体执行的一组操作。
这些方法不一定限于相关联的附图中所示的操作的顺序。相反,操作中的任何操作可以重复、跳过、替换或重新排序以实现本文描述的各种方面。此外,这些方法可以全部或部分地彼此结合使用,无论是由同一实体、分开的实体还是其任何组合执行。例如,这些方法可以被组合以实现对存储介质的支持AI的管理,以基于对主机系统行为的预测,来调度存储介质系统的主机I/O和/或内部I/O,来优化与存储介质访问(例如,时延或吞吐量)相关的主机系统性能。在下面讨论的部分中,将通过示例的方式参照图1的操作环境100和图2至图13的各种实体或配置。这样的参照不应被视为将所描述的各方面限于操作环境100、实体或配置,而是作为各种示例中的一个示例的说明。备选地或附加地,这些方法的操作还可以通过或利用参照图19的片上系统和/或图20的存储系统控制器描述的实体来实现。
图14描绘了用于对存储介质访问的支持AI的管理的示例方法1400,包括通过或利用介质存储控制器的介质访问管理器130或AI引擎132执行的操作。
在1402,用于访问存储介质的主机I/O从主机系统接收。主机I/O可以经由存储系统或存储控制器的主机系统接口从主机系统接收。在一些情况下,主机I/O包括或对应于主机系统的写入或读取命令,该写入或读取命令包括相应的逻辑块地址、大小或时间戳。
在1404,描述主机系统的主机I/O的信息被提供给AI引擎。AI引擎可以与存储系统相关联,作为存储控制器的一部分或者由存储系统的存储控制器可访问。在一些情况下,描述主机I/O的信息或者主机I/O的描述符包括主机I/O的事件类型、主机I/O的事件持续时间或与主机I/O相关联的数据的事件大小。
在1406,对主机系统行为的预测从AI引擎接收。对主机系统行为的预测可以包括描述与主机系统对存储介质的后续访问有关的主机系统活动的信息。在一些情况下,对主机系统行为的预测包括以下项的指示:直到主机系统变为空闲的持续时间、主机系统将保持空闲的持续时间、或与由主机系统发出的下一主机I/O有关的参数。
在1408,用于访问存储介质的主机I/O基于对主机系统行为的预测来调度。主机I/O可以被调度为先占存储系统的内部任务的其他I/O。在一些情况下,主机I/O使用经修改的参数或阈值来调度或执行,以用于垃圾收集、高速缓存、数据迁移或热节流。例如,介质访问管理器可以挂起或先占一个或多个阈值,以防止触发内部存储系统操作,以实现主机I/O的完成。
可选地,在1410,存储系统的内部I/O基于对主机系统行为的预测来调度。在一些情况下,介质访问管理器确定存储系统具有待定的内部I/O。内部I/O的调度可以包括基于对主机系统行为的预测,提前或延迟存储系统的内部I/O,诸如以减轻用于对存储介质的访问的内部I/O与主机I/O或后续主机I/O之间的争用。
在1412,介质I/O被执行,介质I/O与存储系统的内部I/O和/或经调度的主机I/O相对应。存储控制器的FTL可以生成相应介质I/O,其与存储系统的内部I/O和经调度的主机I/O相对应。响应于介质I/O,存储系统可以将读取的数据返回到主机系统、或将主机系统的数据存储到存储系统。
图15描绘了用于基于对主机系统行为的预测,来延迟存储系统的内部操作的示例方法1500。在一些方面,介质存储控制器的介质访问管理器130或AI引擎132执行方法1500的操作。
在1502,描述主机I/O事件的相应类型和持续时间的信息被提供给AI引擎的AI模型。主机I/O事件可以指定或请求对存储系统的存储介质的访问,AI引擎与该存储系统相关联。在一些情况下,描述主机I/O事件的信息(或其描述符)包括主机I/O的事件类型、主机I/O的事件持续时间或与主机I/O相关联的数据的事件大小。
在1504,对主机系统即将到来的空闲时间的预测从AI引擎的AI模型接收。对即将到来的空闲时间的预测可以包括以下项的指示:直到主机系统变为空闲的持续时间、主机系统将保持空闲的持续时间、或与由主机系统发出的下一主机I/O有关的参数。在一些情况下,预测包括预期的主机I/O活动的指示,预期的主机I/O活动可能在主机系统的下一空闲时间之前发生。
在1506,存储系统的内部操作或内部任务基于对主机系统即将到来的空闲时间的预测来延迟。内部操作可以包括垃圾收集、数据迁移或涉及对存储介质的访问的其他任务。在一些情况下,内部操作由相应的阈值触发,当内部操作被延迟时,相应的阈值可以被挂起或先占。
在1508,介质I/O被执行,同时存储系统的内部操作被延迟,介质I/O与主机系统的主机I/O相对应。所执行的介质I/O可以对应于主机系统的写入命令或读取命令。虽然存储系统的内部操作被延迟,但介质I/O可以在不与存储系统的内部I/O竞争或争用的情况下被执行。如此,主机I/O性能可以通过许可主机系统对存储介质的完全访问而被优化(例如,没有节流或暂停)。
在1510,在即将到来的空闲时间期间,与延迟的内部操作的内部I/O相对应的其他介质I/O被执行。内部I/O可以对应于延迟的数据迁移或延迟的垃圾收集,其在主机系统的空闲时间期间被执行。在一些情况下,延迟有效防止了数据迁移或垃圾收集使主机I/O的性能降级,使得主机系统对存储介质的访问被优化。
图16描绘了用于基于对主机系统行为的预测来提前存储系统的内部操作的示例方法1600。在一些方面,介质存储控制器的介质访问管理器130或AI引擎132执行方法1600的操作。
在1602,描述主机系统的主机I/O的信息被提供给AI引擎的AI模型。主机I/O可以包括用于对存储系统的存储介质访问的I/O命令或I/O操作,AI引擎与该存储系统相关联。在一些情况下,描述主机I/O事件的信息(或其描述符)包括主机I/O的事件类型、主机I/O的事件持续时间或与主机I/O相关联的数据的事件大小。
在1604,对主机系统的访问活动的预测从AI引擎的AI模型接收。对访问活动的预测可以包括主机系统的写入密度、要写入存储介质的数据量或写入活动的预期持续时间。在一些情况下,预测还包括直到写入活动发生的时间量,使得介质访问管理器可以确定在主机系统的预测的活动开始之前,其他内部任务是否可以被执行。
在1606,存储系统的内部操作基于对主机系统的访问活动的预测来提前。内部操作可以包括垃圾收集或数据迁移,诸如以释放高速缓存存储器的空间或将自由空间量增加到超过高速缓存存储器或存储介质中自由空间的标称阈值。例如,内部操作可以被提前并被配置为释放足够的高速缓存空间,以防止主机系统的预测的活动在活动发生时触发内部操作。
在1608,介质I/O被执行,介质I/O与提前的内部操作的内部I/O相对应的。介质I/O可以对应于针对高速缓存存储器或存储介质的提前的或预备的垃圾收集或数据迁移。在至少一些情况下,提前的或预测性的内部操作在高速缓存存储器或存储介质中创建足够的自由空间,以支持主机系统活动,而不使活动触发针对附加的内部操作的阈值,。
在1610,其他介质I/O被执行,其他介质I/O与主机系统的预测的访问活动的主机I/O相对应。在内部操作的至少部分介质I/O被执行之后,针对主机I/O的介质I/O被执行用于存储介质访问。在一些情况下,由提前的内部操作提供的自由空间使得与主机I/O相对应的介质I/O能够以主机系统访问的完全水平来执行。如此,通过提前存储系统的内部操作,主机系统对存储介质的访问可以通过防止内部I/O与主机I/O竞争对存储介质的访问来优化。
图17描绘了用于基于对主机系统行为的预测来更改用于存储介质的设备级管理的参数的示例方法1700。在一些方面,介质存储控制器的介质访问管理器130或AI引擎132执行方法1700的操作。
在1702,用于访问存储介质的主机I/O从主机系统接收。主机I/O可以经由存储系统或存储控制器的主机系统接口从主机系统接收。在一些情况下,主机I/O包括或对应于主机系统的写入或读取命令,该写入或读取命令包括相应的逻辑块地址、大小或时间戳。
在1704,描述主机I/O的信息被提供给人工智能引擎。AI引擎可以与存储系统相关联,作为存储控制器的一部分或者由存储系统的存储控制器可访问。在一些情况下,描述主机I/O的信息或其描述符包括主机I/O的事件类型、主机I/O的事件持续时间或与主机I/O相关联的数据的事件大小。
在1706,对主机行为的预测从人工智能引擎接收。对主机系统行为的预测可以包括描述与主机系统对存储介质的后续访问相关的主机系统活动的信息。在一些情况下,对主机系统行为的预测包括以下项的指示:直到主机系统变为空闲的持续时间、主机系统将保持空闲的持续时间、或与由主机系统发出的下一主机I/O有关的参数(例如,写入强度)。
在1708,用于存储介质的设备级管理的参数基于对主机系统行为的预测来更改。该参数可以包括用于存储介质设备的热管理的阈值。例如,基于即将到来的空闲时间,介质访问管理器可以先占或挂起热限制,以允许用于数据写入的主机I/O以完全性能来完成,而无需对存储介质的访问进行热节流。备选地或附加地,用于垃圾收集或数据迁移的阈值可以被先占或挂起,以允许用于访问操作的完全主机I/O性能。
基于对即将到来的空闲时间(没有主机系统活动)的预测,在知道存储介质设备在操作完成之后将有充足的时间冷却的情况下,主机系统可以被提供有完全性能访问。在其他情况下,介质访问管理器可以确定即使垃圾收集或数据迁移被延迟直到写入操作之后(例如,更改或挂起用于任一项的阈值),写入操作也很可能在没有耗尽自由空间的情况下完成。
在1710,与主机系统的主机I/O相对应的介质I/O根据用于设备级管理的经更改的参数来执行。存储控制器的FTL可以生成与存储系统的内部I/O和经调度的主机I/O相对应的相应介质I/O。介质I/O可以根据针对存储介质或存储介质设备的经更改的或挂起的热限制来执行。备选地或附加地,介质I/O可以根据针对数据迁移或垃圾收集的经更改的或挂起的阈值来执行。
图18描绘了用于利用AI模型的多个实例来运行推理以实现在线再训练或精化的示例方法1800,其包括通过或利用存储系统的介质访问管理器130执行的操作。
在1802,推理经由AI引擎的硬件,利用AI模型的第一实例的第一参数(例如,相应的权重或参数)来运行。第一参数可以存储到第一缓冲区或存储器区。在一些情况下,AI模型的第一实例是用于运行推理的AI模型的“当前”实例。推理可以与在AI引擎的相同硬件上运行的在线训练过程并行运行。
在1804,AI模型的第二实例的第二参数基于AI模型的第一实例的第一参数进行更新。第二参数可以存储到第二缓冲区或存储器区。在一些情况下,AI模型的第二实例是AI模型的“更新”实例,其从硬件上运行的“当前”实例更新而来。在更新AI模型的第二实例的第二参数期间,在线再训练过程可以暂停。在1806,当第二实例的第二参数被更新时,推理继续利用AI模型的第一实例的第一参数运行。
在1808,推理经由AI引擎的硬件,利用AI模型的第二实例的第二参数来运行。AI模型的第二实例可以变为用于运行推理的AI模型的“当前”实例。AI模型的第一实例可以变为AI模型的“更新”实例,其从在硬件上运行的“当前”实例更新而来。推理可以与在AI引擎的相同硬件上运行的在线训练过程并行运行。
在1810,AI模型的第一实例的第一参数基于AI模型的第二实例的第二参数进行更新。在更新AI模型的第一实例的第一参数期间,在线再训练过程可以暂停。在1812,当第一实例的第一参数被更新时,推理继续利用AI模型的第二实例的第二参数来运行。从操作1812,方法1800可以返回到操作1802以开始在线训练过程的另一迭代。
片上系统
图19示出了示例性片上系统(SoC)1900,其可以实现对存储介质访问的支持AI的管理的各种方面。SoC 1900可以在任何适当的系统或设备中实现,诸如智能电话、上网本、平板计算机、接入点、网络附连的存储装置、相机、智能家电、打印机、机顶盒、服务器、数据中心、固态驱动器(SSD)、硬盘驱动器(HDD)、存储驱动器阵列、存储器模块、交通工具计算系统或任何其他适当类型的设备(例如,本文描述的其他设备)。尽管参照SoC描述,但图19的实体还可以实现为其他类型的集成电路或嵌入式系统,诸如专用集成电路(ASIC)、存储器控制器、存储控制器、通信控制器、专用标准产品(ASSP)、数字信号处理器(DSP)、可编程SoC(PSoC)、系统级封装(SIP)或现场可编程门阵列(FPGA)。
SoC 1900可以与电子电路、微处理器、存储器、输入输出(I/O)控制逻辑、通信接口、固件和/或可用于提供计算设备、主机系统或存储系统(诸如本文描述的任何设备或组件(例如,存储驱动器或存储阵列))的功能的软件集成。SoC 1900还可以包括集成数据总线或互连结构(未示出),其耦合SoC的各种组件以用于组件之间的控制信令、数据通信和/或路由。SoC 1900的集成数据总线、互连结构或其他组件可以通过外部端口、并行数据接口、串行数据接口、基于结构的接口、外围组件接口或任何其他适当的数据接口来暴露或访问。例如,SoC 1900的组件可以通过外部接口或片外数据接口访问或控制外部存储介质、AI引擎、AI模型或AI网络。
在该示例中,SoC 1900包括各种组件,诸如输入输出(I/O)控制逻辑1902和基于硬件的处理器1904(处理器1904),诸如微处理器、处理器核、应用处理器、DSP等。SoC 1900还包括存储器1906,其可以包括的以下项的任何类型和/或其组合:RAM、SRAM、DRAM、非易失性存储器、ROM、一次性可编程(OTP)存储器、多次可编程(MTP)存储器、闪存和/或其他适当的电子数据存储器。在一些方面,处理器1904和存储在存储器1906上的代码被实现为存储系统控制器或存储聚集器,以提供与对存储介质访问的支持AI的管理相关联的各种功能性。在本公开的上下文中,存储器1906经由非暂态信号存储数据、代码、指令或其他信息,并且不包括载波或暂态信号。备选地或附加地,SoC 1900可以包括用于访问附加的或可扩展的片外存储介质的数据接口(未示出),片外存储介质诸如固态存储器(例如,闪存或NAND存储器)、基于磁学的存储器介质或基于光学的存储器介质。
SoC 1900还可以包括固件1908、应用、程序、软件和/或操作系统,其可以实施为在存储器1906上维护的处理器可执行指令,用于由处理器1904执行以实现SoC 1900的功能。SoC 1900还可以包括其他通信接口,诸如收发机接口,用于控制片外通信收发机或本地片上(未示出)的组件或与其通信。备选地或附加地,收发机接口还可以包括或实现信号接口,用以向片外传送射频(RF)、中频(IF)或基带频率信号,以促进通过耦合到SoC 1900的收发机、物理层收发机(PHY)或介质访问控制器(MAC)进行有线或无线通信。例如,SoC 1900可以包括收发机接口,其被配置为支持有线或无线网络之上的存储,诸如以提供具有对存储介质访问的支持AI的管理的网络附接的存储(NAS)卷。
SoC 1900还包括介质访问管理器130、AI引擎132和AI模型134,其可以如图所示分开实现或与存储组件、数据接口组合,或者可通过片外接口访问(例如,存储到外部存储器的AI模型)。根据对存储介质访问的支持AI的管理的各种方面,介质访问管理器130可以与AI引擎132交互,以生成关于未来存储介质访问的对主机行为的预测,并基于该预测来调度内部操作(例如,内部任务I/O),以优化存储介质性能。备选地或附加地,AI引擎132可以实现多个AI模型134来预测主机行为,该多个AI模型134可以并发地和/或与在线精化或再训练一起执行,以用于对特定于主机的行为的改进预测。这些实体中的任何一个实体都可以实施为不同的或组合的组件,如参照本文呈现的各方面所描述的。这些组件和/或实体或相应功能性的示例参照图1的环境100的相应组件或实体、或者图2至图13所示的相应配置来描述。介质访问管理器130或AI引擎132可以全部或部分地实现为处理器可执行指令,处理器可执行指令由存储器1906维护并由处理器1904执行,以实现对存储介质访问的支持AI的管理的各种方面和/或特征。
介质访问管理器130可以独立实现,也可以与任何适当的组件或电路组合实现,以实现本文描述的各方面。例如,介质访问管理器130或AI引擎132可以实现为DSP、处理器/存储桥、I/O桥、图形处理单元、存储器控制器、存储控制器、算术逻辑单元(ALU)等的一部分。介质访问管理器130还可以与SoC 1900的其他实体集成来提供,诸如与SoC 1900的处理器1904、存储器1906、存储介质接口或固件1908集成。备选地或附加地,介质访问管理器130、AI引擎132和/或SoC 1900的其他组件可以实现为硬件、固件、固定逻辑电路或其任意组合。
作为另一示例,考虑图20,其示出了根据对存储介质访问的支持AI的管理的一个或多个方面的示例存储系统控制器2000。在各种方面中,存储系统控制器2000或其组件的任何组合可以实现为固态存储介质的存储驱动器控制器、存储介质控制器、NAS控制器、结构接口、NVMe目标或存储聚合控制器。在一些情况下,如参照图19所描述的,存储系统控制器2000类似于SoC 1900的组件来实现、或利用SoC 1900的组件来实现。换言之,SoC 1900的实例可以被配置为存储系统控制器,诸如存储系统控制器2000,以利用AI辅助来管理固态(例如,基于NAND闪存的)介质。
在该示例中,存储系统控制器2000包括输入输出(I/O)控制逻辑2002和处理器2004,诸如微处理器、处理器核、应用处理器、DSP等。在一些方面,存储系统控制器2000的处理器2004和固件可以被实现为提供与对存储介质访问的支持AI的管理相关联的各种功能性,诸如参照方法1400到1800中的任一个描述的那些功能性。存储系统控制器2000还包括主机接口2006(例如,SATA、PCIe、NVMe或结构接口)和存储介质接口2008(例如,NAND接口),它们分别实现对主机系统和存储介质的访问。存储系统控制器2000还包括闪存转换层2010(FTL 2010)、设备级管理器2012和I/O调度器322。在对存储介质访问的支持AI的管理的一些方面中,FTL 2010和/或设备级管理器2012通过存储介质接口2008生成存储系统控制器或管理存储介质设备的内部I/O。
存储系统控制器2000还包括介质访问管理器130、AI引擎132和AI模型134的实例。这些组件中的任何一个或全部可以如所示出地分开实现,或与处理器2004、主机接口2006、存储介质接口2008、闪存转换层2010、设备级管理器2012和/或I/O调度器322组合。参照图1的环境100的相应组件或实体、或者图2至图13所示的相应配置来描述这些组件和/或实体或对应的功能的示例。根据对存储介质访问的支持AI的管理的各方面,介质访问管理器130可以与存储系统控制器2000的AI引擎132交互,以生成对关于未来存储介质访问的主机行为的预测,并且基于该预测调度内部操作(例如,内部任务I/O),以优化存储介质性能。备选地或附加地,AI引擎132可以实现多个AI模型134来预测主机行为,该多个AI模型134可以并发地和/或与在线精化或再训练一起执行,以用于对特定于主机的行为的改进预测。介质访问管理器130可以全部或部分地实现为处理器可执行指令,处理器可执行指令由控制器的存储器维护并由处理器2004执行,以实现对存储介质访问的支持AI的管理的各种方面和/或特征。
尽管本主题已经用特定于结构特征和/或方法操作的语言进行了描述,但是应当理解,在所附权利要求中定义的主题不一定限于本文描述的特定示例、特征或操作,包括它们执行的顺序。
下面描述一些示例:
示例1:一种用于支持人工智能的存储介质访问管理的方法,包括:
从主机系统并且经由存储系统的主机接口接收用于对所述存储系统的存储介质的访问的主机输入/输出(I/O);
向与所述存储系统相关联的人工智能引擎提供描述从所述主机系统接收的所述主机I/O的信息;
从所述人工智能引擎接收对主机系统行为的预测,对主机系统行为的所述预测与由所述主机系统对所述存储介质的后续访问相关;以及
基于对主机系统行为的所述预测,调度用于对所述存储系统的存储介质的访问的所述主机I/O。
示例2:根据权利要求1所述的方法,还包括:
确定所述存储系统具有待定的内部I/O,并且其中所述调度包括:
基于对主机系统行为的所述预测,调度用于对所述存储系统的所述存储介质的访问的所述主机系统的所述主机I/O和所述存储系统的所述内部I/O。
示例3:根据权利要求2所述的方法,其中调度所述存储系统的内部I/O包括:基于对主机系统行为的所述预测,提前或延迟所述存储系统的所述内部I/O,以减轻所述内部I/O与所述主机I/O或后续主机I/O之间对于访问所述存储介质的争用。
示例4:根据权利要求2所述的方法,其中所述内部I/O与所述存储系统的闪存转换层的一个或多个任务相对应,一个或多个任务包括垃圾收集、数据迁移或损耗均衡中的一项。
示例5:根据权利要求1所述的方法,其中从所述人工智能引擎接收的对主机系统行为的所述预测包括以下项的指示:
直到所述主机系统变为空闲的持续时间;
所述主机系统将保持空闲的持续时间;或者
与由所述主机系统发出的下一主机I/O有关的参数。
示例6:根据权利要求1所述的方法,其中描述所述主机I/O的所述信息包括:针对所述主机I/O中的至少一个主机I/O的以下项的指示:
所述主机I/O的事件类型;
所述主机I/O的事件持续时间;或者
与所述主机I/O相关联的数据的事件大小。
示例7:根据权利要求1所述的方法,其中所述主机I/O的调度基于从所述人工智能引擎接收的对主机系统行为的所述预测、以及用于所述存储介质的热管理的所述存储介质的设备级参数。
示例8:根据权利要求1所述的方法,其中:
所述人工智能引擎执行多个人工智能模型;
所述多个人工智能模型中的至少两个人工智能模型与由所述存储系统的设备级管理器或闪存转换层实现的相应内部任务相关联;以及
所述方法还包括:在将所述信息提供给所述人工智能引擎之前,将所述多个智能模型中的至少一个智能模型加载到所述人工智能引擎,以使得能够对所述主机系统行为进行预测。
示例9:根据权利要求8所述的方法,还包括:经由所述人工智能引擎,并发执行所述多个人工智能模型中的所述至少两个人工智能模型,以实现所述存储系统的至少两个人工智能辅助的内部任务。
示例10:根据权利要求8所述的方法,还包括:经由所述人工智能引擎,并行执行所述多个人工智能模型中的一个人工智能模型的两个实例,以使得能够对所述人工智能模型进行在线再训练或精化。
示例11:一种装置,包括:
主机接口,被配置以用于与主机系统通信;
存储介质,用以存储所述主机系统的数据;
介质接口,被配置为支持对所述存储介质的访问;
人工智能引擎;以及
介质访问管理器,被配置为:
经由所述主机接口,从所述主机系统接收用于对所述装置的所述存储介质的访问的主机输入/输出(I/O);
向所述人工智能引擎提供描述从所述主机系统接收的所述主机I/O的信息;
从所述人工智能引擎接收对主机系统行为的预测,对主机系统行为的所述预测与由所述主机系统对所述存储介质的后续访问相关;以及
至少基于对主机系统行为的所述预测,调度用于对所述存储系统的所述存储介质的访问的所述主机I/O。
示例12:根据权利要求11所述的装置,其中所述介质访问管理器还被配置为:
确定所述装置具有用于对所述存储介质的访问的内部I/O,所述内部I/O是待定的;以及
基于对主机系统行为的所述预测,调度用于所述装置的所述存储介质的访问的所述主机系统的所述主机I/O和所述装置的所述内部I/O。
示例13:根据权利要求11所述的装置,其中:
从所述人工智能引擎接收的对主机系统行为的所述预测包括以下至少一项的指示:直到所述主机系统变为空闲的持续时间、所述主机系统将保持空闲的持续时间、或者与由所述主机系统发出的下一主机I/O相关的参数;或者
描述所述主机I/O的所述信息包括针对所述主机I/O中的至少一个主机I/O的以下项的指示:所述主机I/O的事件类型、所述主机I/O的事件持续时间、或者与所述主机I/O相关联的数据的事件大小。
示例14:根据权利要求11所述的装置,其中:
所述人工智能引擎执行多个人工智能模型,包括所述多个人工智能模型中的至少两个人工智能模型与由所述装置的设备级管理器或闪存转换层实现的相应内部任务相关联;以及
所述介质访问管理器还被配置为在将所述信息提供给所述人工智能引擎之前,将所述多个智能模型中的至少一个智能模型加载到所述人工智能引擎,以使得能够对所述对主机系统行为进行预测。
示例15:根据权利要求14所述的装置,其中所述介质访问管理器还被配置为:
使所述人工智能引擎并发执行所述多个人工智能模型中的所述至少两个人工智能模型,以实现所述装置的至少两个人工智能辅助的内部任务;或者
使所述人工智能引擎并行执行所述多个人工智能模型中的一个人工智能模型的两个实例,以使得能够对所述人工智能模型进行在线再训练或精化。
示例16:一种片上系统(SoC),包括:
介质接口,用以访问存储系统的存储介质;
主机接口,用以与主机系统通信;
人工智能引擎;
基于硬件的处理器;
存储器,存储处理器可执行指令,所述处理器可执行指令响应于由所述基于硬件的处理器执行,实现介质访问管理器,以:
经由所述主机接口,从所述主机系统接收用于对所述存储系统的存储介质的访问的主机输入/输出(I/O);
向所述人工智能引擎提供描述从所述主机系统接收的所述主机I/O的信息;
从所述人工智能引擎接收对主机系统行为的预测,对主机系统行为的所述预测与由所述主机系统对所述存储介质的后续访问相关;以及
至少基于对主机系统行为的所述预测,调度用于对所述存储系统的所述存储介质的访问的所述主机I/O。
示例17:根据权利要求16所述的SoC,其中所述介质访问管理器还被配置为确定所述SoC具有用于对所述存储介质的访问的内部I/O,所述内部I/O是待定的;以及
基于对主机系统行为的所述预测,调度用于对所述SoC的所述存储介质的访问的所述主机系统的所述主机I/O和所述SoC的所述内部I/O,调度所述内部I/O包括:提前或延迟所述SoC的所述内部I/O,以减轻所述内部I/O与所述主机I/O之间的争用。
示例18:根据权利要求16所述的SoC,其中:
从所述人工智能引擎接收的对主机系统行为的所述预测包括以下至少一项的指示:直到所述主机系统变为空闲的持续时间、所述主机系统将保持空闲的持续时间、或者与由所述主机系统发出的下一主机I/O有关的参数;或者
描述所述主机I/O的信息包括针对所述主机I/O中的至少一个主机I/O的以下项的指示:所述主机I/O的事件类型、所述主机I/O的事件持续时间或者与所述主机I/O相关联的数据的事件大小。
示例19:根据权利要求16所述的SoC,所述介质访问管理器还被配置为:基于对主机系统行为的所述预测、以及用于所述存储介质的热管理的所述存储介质的设备级参数来调度所述主机I/O。
示例20:根据权利要求16所述的SoC,其中:
所述SoC的所述人工智能引擎执行多个人工智能模型,包括所述多个人工智能模型中与由所述SoC的设备级管理器或闪存转换层实现的相应内部任务相关联的的至少两个人工智能模型;以及
所述介质访问管理器还被配置为:
使所述人工智能引擎并发执行所述多个人工智能模型中的所述至少两个人工智能模型,以实现所述SoC的至少两个人工智能辅助的内部任务;或者
使所述人工智能引擎并行执行所述多个人工智能模型中的一个人工智能模型的两个实例,以使得能够对所述人工智能模型进行在线再训练或精化。
Claims (20)
1.一种用于对存储介质访问的支持人工智能的管理的方法,包括:
从主机系统并且经由存储系统的主机接口接收用于对所述存储系统的存储介质的访问的主机输入/输出(I/O);
向与所述存储系统相关联的人工智能引擎提供描述从所述主机系统接收的所述主机I/O的信息;
从所述人工智能引擎接收对主机系统行为的预测,对主机系统行为的所述预测与由所述主机系统对所述存储介质的后续访问相关;以及
基于对主机系统行为的所述预测,调度用于对所述存储系统的所述存储介质的访问的所述主机I/O。
2.根据权利要求1所述的方法,还包括:
确定所述存储系统具有待定的内部I/O,并且其中所述调度包括:
基于对主机系统行为的所述预测,调度用于对所述存储系统的所述存储介质的访问的、所述主机系统的所述主机I/O和所述存储系统的所述内部I/O。
3.根据权利要求2所述的方法,其中调度所述存储系统的所述内部I/O包括:基于对主机系统行为的所述预测,提前或延迟所述存储系统的所述内部I/O,以减轻用于对所述存储介质的访问的、所述内部I/O与所述主机I/O或后续主机I/O之间的争用。
4.根据权利要求2所述的方法,其中所述内部I/O与所述存储系统的闪存转换层的一个或多个任务相对应,一个或多个任务包括垃圾收集、数据迁移或损耗均衡中的一项。
5.根据权利要求1所述的方法,其中从所述人工智能引擎接收的对主机系统行为的所述预测包括以下项的指示:
直到所述主机系统变为空闲的持续时间;
所述主机系统将保持空闲的持续时间;或者
与由所述主机系统发出的下一主机I/O有关的参数。
6.根据权利要求1所述的方法,其中描述所述主机I/O的所述信息包括:针对所述主机I/O中的至少一个主机I/O的以下项的指示:
所述主机I/O的事件类型;
所述主机I/O的事件持续时间;或者
与所述主机I/O相关联的数据的事件大小。
7.根据权利要求1所述的方法,其中对所述主机I/O的所述调度基于从所述人工智能引擎接收的对主机系统行为的所述预测、以及用于所述存储介质的热管理的所述存储介质的设备级参数。
8.根据权利要求1所述的方法,其中:
所述人工智能引擎执行多个人工智能模型;
所述多个人工智能模型中的至少两个人工智能模型与由所述存储系统的设备级管理器或闪存转换层实现的相应内部任务相关联;以及
所述方法还包括:在将所述信息提供给所述人工智能引擎之前,将所述多个智能模型中的至少一个智能模型加载到所述人工智能引擎,以使得能够对所述主机系统行为进行预测。
9.根据权利要求8所述的方法,还包括:经由所述人工智能引擎,并发执行所述多个人工智能模型中的所述至少两个人工智能模型,以实现所述存储系统的至少两个人工智能辅助的内部任务。
10.根据权利要求8所述的方法,还包括:经由所述人工智能引擎,并行执行所述多个人工智能模型中的一个人工智能模型的两个实例,以使得能够对所述人工智能模型进行在线再训练或精化。
11.一种装置,包括:
主机接口,被配置以用于与主机系统通信;
存储介质,用以存储所述主机系统的数据;
介质接口,被配置为支持对所述存储介质的访问;
人工智能引擎;以及
介质访问管理器,被配置为:
经由所述主机接口,从所述主机系统接收用于对所述装置的所述存储介质的访问的主机输入/输出(I/O);
向所述人工智能引擎提供描述从所述主机系统接收的所述主机I/O的信息;
从所述人工智能引擎接收对主机系统行为的预测,对主机系统行为的所述预测与由所述主机系统对所述存储介质的后续访问相关;以及
至少基于对主机系统行为的所述预测,调度用于对所述存储系统的所述存储介质的访问的所述主机I/O。
12.根据权利要求11所述的装置,其中所述介质访问管理器还被配置为:
确定所述装置具有用于对存储介质的访问的内部I/O,所述内部I/O是待定的;以及
基于对主机系统行为的所述预测,调度用于对所述装置的所述存储介质的访问的、所述主机系统的所述主机I/O和所述装置的所述内部I/O。
13.根据权利要求11所述的装置,其中:
从所述人工智能引擎接收的对主机系统行为的所述预测包括以下至少一项的指示:直到所述主机系统变为空闲的持续时间、所述主机系统将保持空闲的持续时间、或者与由所述主机系统发出的下一主机I/O有关的参数;或者
描述所述主机I/O的所述信息包括针对所述主机I/O中的至少一个主机I/O的以下项的指示:所述主机I/O的事件类型、所述主机I/O的事件持续时间、或者与所述主机I/O相关联的数据的事件大小。
14.根据权利要求11所述的装置,其中:
所述人工智能引擎执行多个人工智能模型,包括所述多个人工智能模型中的至少两个人工智能模型与由所述装置的设备级管理器或闪存转换层实现的相应内部任务相关联;以及
所述介质访问管理器还被配置为在将所述信息提供给所述人工智能引擎之前,将所述多个智能模型中的至少一个智能模型加载到所述人工智能引擎,以使得能够对所述主机系统行为进行预测。
15.根据权利要求14所述的装置,其中所述介质访问管理器还被配置为:
使所述人工智能引擎并发执行所述多个人工智能模型中的所述至少两个人工智能模型,以实现所述装置的至少两个人工智能辅助的内部任务;或者
使所述人工智能引擎并行执行所述多个人工智能模型中的一个人工智能模型的两个实例,以使得能够对所述人工智能模型进行在线再训练或精化。
16.一种片上系统(SoC),包括:
介质接口,用以访问存储系统的存储介质;
主机接口,用以与主机系统通信;
人工智能引擎;
基于硬件的处理器;
存储器,存储处理器可执行指令,所述处理器可执行指令响应于由所述基于硬件的处理器执行,实现介质访问管理器,以:
经由所述主机接口,从所述主机系统接收用于对所述存储系统的存储介质的访问的主机输入/输出(I/O);
向所述人工智能引擎提供描述从所述主机系统接收的所述主机I/O的信息;
从所述人工智能引擎接收对主机系统行为的预测,对主机系统行为的所述预测与由所述主机系统对所述存储介质的后续访问相关;以及
至少基于对主机系统行为的所述预测,调度用于对所述存储系统的所述存储介质的访问的所述主机I/O。
17.根据权利要求16所述的SoC,其中所述介质访问管理器还被配置为:确定所述SoC具有用于对存储介质的访问的内部I/O,所述内部I/O是待定的;以及
基于对主机系统行为的待定预测,调度用于对所述SoC的所述存储介质的访问的、所述主机系统的待定主机I/O和所述SoC的待定内部I/O,对所述内部I/O的所述调度包括:提前或延迟所述SoC的所述内部I/O,以减轻所述内部I/O与所述主机I/O之间的争用。
18.根据权利要求16所述的SoC,其中:
从所述人工智能引擎接收的对主机系统行为的所述预测包括以下至少一项的指示:直到所述主机系统变为空闲的持续时间、所述主机系统将保持空闲的持续时间、或者与由所述主机系统发出的下一主机I/O有关的参数;或者
描述所述主机I/O的信息包括针对所述主机I/O中的至少一个主机I/O的以下项的指示:所述主机I/O的事件类型、所述主机I/O的事件持续时间、或者与所述主机I/O相关联的数据的事件大小。
19.根据权利要求16所述的SoC,所述介质访问管理器还被配置为:基于对主机系统行为的所述预测、以及用于所述存储介质的热管理的所述存储介质的设备级参数来调度所述主机I/O。
20.根据权利要求16所述的SoC,其中:
所述SoC的所述人工智能引擎执行多个人工智能模型,包括所述多个人工智能模型中与由所述SoC的设备级管理器或闪存转换层实现的相应内部任务相关联的至少两个人工智能模型;以及
所述介质访问管理器还被配置为:
使所述人工智能引擎并发执行所述多个人工智能模型中的所述至少两个人工智能模型,以实现所述SoC的至少两个人工智能辅助的内部任务;或者
使所述人工智能引擎并行执行所述多个人工智能模型中的一个人工智能模型的两个实例,以使得能够对所述人工智能模型进行在线再训练或精化。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201862752876P | 2018-10-30 | 2018-10-30 | |
US62/752,876 | 2018-10-30 | ||
US16/664,528 US11010314B2 (en) | 2018-10-30 | 2019-10-25 | Artificial intelligence-enabled management of storage media access |
US16/664,528 | 2019-10-25 | ||
PCT/IB2019/059194 WO2020089759A1 (en) | 2018-10-30 | 2019-10-26 | Artificial intelligence-enabled management of storage media access |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112997138A true CN112997138A (zh) | 2021-06-18 |
Family
ID=70325161
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201980072116.7A Pending CN112997138A (zh) | 2018-10-30 | 2019-10-26 | 对存储介质访问的支持人工智能的管理 |
Country Status (5)
Country | Link |
---|---|
US (3) | US11010314B2 (zh) |
EP (1) | EP3874358A1 (zh) |
KR (1) | KR20200050409A (zh) |
CN (1) | CN112997138A (zh) |
WO (1) | WO2020089759A1 (zh) |
Families Citing this family (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11074013B2 (en) | 2018-08-07 | 2021-07-27 | Marvell Asia Pte, Ltd. | Apparatus and methods for providing quality of service over a virtual interface for solid-state storage |
US11656775B2 (en) | 2018-08-07 | 2023-05-23 | Marvell Asia Pte, Ltd. | Virtualizing isolation areas of solid-state storage media |
US11010314B2 (en) | 2018-10-30 | 2021-05-18 | Marvell Asia Pte. Ltd. | Artificial intelligence-enabled management of storage media access |
US11481118B2 (en) | 2019-01-11 | 2022-10-25 | Marvell Asia Pte, Ltd. | Storage media programming with adaptive write buffer release |
US20200234119A1 (en) * | 2019-01-17 | 2020-07-23 | Gyrfalcon Technology Inc. | Systems and methods for obtaining an artificial intelligence model in a parallel configuration |
US10817462B1 (en) * | 2019-04-26 | 2020-10-27 | Xilinx, Inc. | Machine learning model updates to ML accelerators |
US11074208B1 (en) | 2019-07-24 | 2021-07-27 | Xilinx, Inc. | Routing network using global address map with adaptive main memory expansion for a plurality of home agents |
US11474871B1 (en) | 2019-09-25 | 2022-10-18 | Xilinx, Inc. | Cache coherent acceleration function virtualization |
US11797441B2 (en) * | 2020-01-10 | 2023-10-24 | Micron Technology, Inc. | Cache media management |
KR102304929B1 (ko) * | 2020-02-07 | 2021-09-24 | 삼성전자 주식회사 | 모델 정보를 저장하는 스토리지 장치, 스토리지 장치를 포함하는 스토리지 시스템 및 스토리지 시스템의 동작 방법 |
US11662912B2 (en) * | 2020-08-19 | 2023-05-30 | Patrick Kidney | Switchless NVMe fabric |
US11403032B2 (en) | 2020-09-10 | 2022-08-02 | Micron Technology, Inc. | Data transfer management within a memory device having multiple memory regions with different memory densities |
US20220100407A1 (en) * | 2020-09-30 | 2022-03-31 | Seagate Technology, Llc | Data storage system with workload-based dynamic power consumption |
CN112433682B (zh) * | 2020-12-15 | 2023-12-05 | 合肥大唐存储科技有限公司 | 固态硬盘中控制参数的获取方法、存储介质和电子装置 |
US11783893B2 (en) * | 2020-12-23 | 2023-10-10 | Intel Corporation | Utilizing NAND buffer for DRAM-less multilevel cell programming |
US20230359552A1 (en) * | 2021-03-18 | 2023-11-09 | Micron Technology, Inc. | Memory write performance techniques |
KR102365312B1 (ko) * | 2021-06-17 | 2022-02-23 | 삼성전자주식회사 | 스토리지 컨트롤러, 연산 스토리지 장치, 및 연산 스토리지 장치의 동작 방법 |
EP4105771A1 (en) * | 2021-06-17 | 2022-12-21 | Samsung Electronics Co., Ltd. | Storage controller, computational storage device, and operational method of computational storage device |
US11698858B2 (en) * | 2021-08-19 | 2023-07-11 | Micron Technology, Inc. | Prediction based garbage collection |
US11893244B2 (en) | 2021-10-12 | 2024-02-06 | Western Digital Technologies, Inc. | Hybrid memory management of non-volatile memory (NVM) devices for use with recurrent neural networks |
US11755208B2 (en) | 2021-10-12 | 2023-09-12 | Western Digital Technologies, Inc. | Hybrid memory management of non-volatile memory (NVM) devices for use with recurrent neural networks |
US11941254B2 (en) | 2021-12-14 | 2024-03-26 | Micron Technology, Inc. | Test memory sub-systems through validation of responses to proof of space challenges |
US11960756B2 (en) | 2021-12-14 | 2024-04-16 | Micron Technology, Inc. | Management of storage space in solid state drives to support proof of space activities |
US11775188B2 (en) | 2022-02-02 | 2023-10-03 | Micron Technology, Inc. | Communications to reclaim storage space occupied by proof of space plots in solid state drives |
US11977742B2 (en) | 2022-02-02 | 2024-05-07 | Micron Technology, Inc. | Solid state drives configurable to use storage spaces of remote devices in activities involving proof of space |
US20230244394A1 (en) * | 2022-02-02 | 2023-08-03 | Micron Technology, Inc. | Gradually Reclaim Storage Space Occupied by a Proof of Space Plot in a Solid State Drive |
CN114637466B (zh) * | 2022-03-03 | 2022-11-11 | 深圳大学 | 一种数据读写行为推测方法、装置、存储介质及电子设备 |
US20230281122A1 (en) * | 2022-03-04 | 2023-09-07 | Western Digital Technologies, Inc. | Data Storage Device and Method for Host-Determined Proactive Block Clearance |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170031816A1 (en) * | 2015-07-31 | 2017-02-02 | Samsung Electronics Co., Ltd. | Storage device, system including storage device and method of operating the same |
US20180067733A1 (en) * | 2012-01-06 | 2018-03-08 | International Business Machines Corporation | Intelligent and automated code deployment |
CN107885762A (zh) * | 2017-09-19 | 2018-04-06 | 北京百度网讯科技有限公司 | 智能大数据系统、提供智能大数据服务的方法和设备 |
CN108108810A (zh) * | 2016-11-24 | 2018-06-01 | 三星电子株式会社 | 包括非易失性存储器件的存储装置及访问方法 |
US20180181302A1 (en) * | 2016-12-28 | 2018-06-28 | Western Digital Technologies, Inc. | Data management based on i/o traffic profiling |
US20180210754A1 (en) * | 2015-09-11 | 2018-07-26 | Cohesity, Inc. | Adaptive self-maintenance scheduler |
Family Cites Families (65)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6671791B1 (en) | 2001-06-15 | 2003-12-30 | Advanced Micro Devices, Inc. | Processor including a translation unit for selectively translating virtual addresses of different sizes using a plurality of paging tables and mapping mechanisms |
US7433948B2 (en) | 2002-01-23 | 2008-10-07 | Cisco Technology, Inc. | Methods and apparatus for implementing virtualization of storage within a storage area network |
US7406598B2 (en) * | 2004-02-17 | 2008-07-29 | Vixs Systems Inc. | Method and system for secure content distribution |
JP2008502697A (ja) * | 2004-06-15 | 2008-01-31 | デンツプライ インターナショナル インコーポレーテッド | 低収縮且つ低応力の歯科用組成物 |
US7502908B2 (en) | 2006-05-04 | 2009-03-10 | International Business Machines Corporation | Method for providing an address format compatible with different addressing formats used for addressing different sized address spaces |
US20080100636A1 (en) * | 2006-10-31 | 2008-05-01 | Jiin Lai | Systems and Methods for Low-Power Computer Operation |
US7783858B2 (en) | 2007-01-20 | 2010-08-24 | International Business Machines Corporation | Reducing memory overhead of a page table in a dynamic logical partitioning environment |
US7861036B2 (en) | 2007-09-18 | 2010-12-28 | Agere Systems Inc. | Double degraded array protection in an integrated network attached storage device |
US8571745B2 (en) * | 2008-04-10 | 2013-10-29 | Robert Todd Pack | Advanced behavior engine |
JP5186982B2 (ja) | 2008-04-02 | 2013-04-24 | 富士通株式会社 | データ管理方法及びスイッチ装置 |
US8806101B2 (en) | 2008-12-30 | 2014-08-12 | Intel Corporation | Metaphysical address space for holding lossy metadata in hardware |
US9389895B2 (en) | 2009-12-17 | 2016-07-12 | Microsoft Technology Licensing, Llc | Virtual storage target offload techniques |
WO2011090145A1 (ja) | 2010-01-20 | 2011-07-28 | 日本電気株式会社 | ネットワーク装置、ネットワーク構成方法及びネットワーク装置のプログラムを記録したプログラム記録媒体 |
US8495274B2 (en) | 2010-12-08 | 2013-07-23 | International Business Machines Corporation | Address translation table to enable access to virtual functions |
US8726276B2 (en) | 2011-01-26 | 2014-05-13 | International Business Machines Corporation | Resetting a virtual function that is hosted by an input/output adapter |
US8954822B2 (en) | 2011-11-18 | 2015-02-10 | Sandisk Enterprise Ip Llc | Data encoder and decoder using memory-specific parity-check matrix |
US9015351B1 (en) | 2012-03-02 | 2015-04-21 | Marvell International Ltd. | Address translation for SR-IOV virtual function apertures |
EP2823442A4 (en) * | 2012-03-06 | 2016-04-20 | Koodbee Llc | PREDICTIVE PROCESSING SYSTEM AND METHOD OF USE AND METHOD FOR PERFORMING BUSINESS |
US9098805B2 (en) * | 2012-03-06 | 2015-08-04 | Koodbee, Llc | Prediction processing system and method of use and method of doing business |
US9836316B2 (en) | 2012-09-28 | 2017-12-05 | Intel Corporation | Flexible acceleration of code execution |
US9134779B2 (en) | 2012-11-21 | 2015-09-15 | International Business Machines Corporation | Power distribution management in a system on a chip |
US9424219B2 (en) | 2013-03-12 | 2016-08-23 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Direct routing between address spaces through a nontransparent peripheral component interconnect express bridge |
US9720717B2 (en) | 2013-03-14 | 2017-08-01 | Sandisk Technologies Llc | Virtualization support for storage devices |
US20150378884A1 (en) | 2013-04-08 | 2015-12-31 | Avalanche Technology, Inc. | Storage system controlling addressing of solid storage disks (ssd) |
US9501245B2 (en) | 2014-05-02 | 2016-11-22 | Cavium, Inc. | Systems and methods for NVMe controller virtualization to support multiple virtual machines running on a host |
CN104461958B (zh) | 2014-10-31 | 2018-08-21 | 华为技术有限公司 | 支持sr-iov的存储资源访问方法、存储控制器及存储设备 |
KR102336443B1 (ko) | 2015-02-04 | 2021-12-08 | 삼성전자주식회사 | 가상화 기능을 지원하는 스토리지 장치 및 사용자 장치 |
KR102398213B1 (ko) | 2015-03-09 | 2022-05-17 | 삼성전자주식회사 | 저장 장치, 그것을 포함하는 호스트 시스템, 및 그것의 맵 테이블 업데이트 방법 |
US10114675B2 (en) | 2015-03-31 | 2018-10-30 | Toshiba Memory Corporation | Apparatus and method of managing shared resources in achieving IO virtualization in a storage device |
US9639280B2 (en) | 2015-06-18 | 2017-05-02 | Advanced Micro Devices, Inc. | Ordering memory commands in a computer system |
KR102371916B1 (ko) | 2015-07-22 | 2022-03-07 | 삼성전자주식회사 | 가상 머신을 지원하는 스토리지 장치, 그것을 포함하는 스토리지 시스템 및 그것의 동작 방법 |
US9948556B2 (en) | 2015-08-25 | 2018-04-17 | Google Llc | Systems and methods for externalizing network functions via packet trunking |
US9929750B2 (en) | 2015-09-08 | 2018-03-27 | Toshiba Memory Corporation | Memory system |
US10866910B2 (en) | 2015-09-28 | 2020-12-15 | Sandisk Technologies Llc | Systems, methods, and computer-readable media for managing instruction fetch in virtual computing environments |
US10586158B2 (en) * | 2015-10-28 | 2020-03-10 | The Climate Corporation | Computer-implemented calculation of corn harvest recommendations |
US10204006B2 (en) | 2015-10-28 | 2019-02-12 | Avago Technologies International Sales Pte. Limited | Systems and methods for side data based soft data flash memory access |
US10764242B2 (en) | 2015-11-24 | 2020-09-01 | At&T Intellectual Property I, L.P. | Providing network address translation in a software defined networking environment |
KR102572357B1 (ko) | 2016-02-03 | 2023-08-29 | 삼성전자주식회사 | Raid-6 데이터 저장 장치와 이를 포함하는 데이터 처리 시스템 |
US10216575B2 (en) | 2016-03-17 | 2019-02-26 | Sandisk Technologies Llc | Data coding |
US10635499B2 (en) | 2016-03-23 | 2020-04-28 | Unisys Corporation | Multifunction option virtualization for single root I/O virtualization |
US20180032249A1 (en) | 2016-07-26 | 2018-02-01 | Microsoft Technology Licensing, Llc | Hardware to make remote storage access appear as local in a virtualized environment |
US10318162B2 (en) | 2016-09-28 | 2019-06-11 | Amazon Technologies, Inc. | Peripheral device providing virtualized non-volatile storage |
US9747039B1 (en) | 2016-10-04 | 2017-08-29 | Pure Storage, Inc. | Reservations over multiple paths on NVMe over fabrics |
US10228874B2 (en) | 2016-12-29 | 2019-03-12 | Intel Corporation | Persistent storage device with a virtual function controller |
US10963393B1 (en) | 2017-01-13 | 2021-03-30 | Lightbits Labs Ltd. | Storage system and a method for application aware processing |
US10339068B2 (en) | 2017-04-24 | 2019-07-02 | Advanced Micro Devices, Inc. | Fully virtualized TLBs |
US10379765B2 (en) | 2017-06-27 | 2019-08-13 | Western Digital Technologies, Inc. | Geometry-aware command scheduling |
US10908998B2 (en) | 2017-08-08 | 2021-02-02 | Toshiba Memory Corporation | Managing function level reset in an IO virtualization-enabled storage device |
US10996888B2 (en) | 2017-10-31 | 2021-05-04 | Qualcomm Incorporated | Write credits management for non-volatile memory |
US11048537B2 (en) | 2017-11-10 | 2021-06-29 | Microsoft Technology Licensing, Llc | Virtual machine compute re-configuration |
US10509753B2 (en) | 2018-02-26 | 2019-12-17 | Micron Technology, Inc. | Dynamic allocation of resources of a storage system utilizing single root input/output virtualization |
US10698709B2 (en) | 2018-03-07 | 2020-06-30 | Microsoft Technology Licensing, Llc | Prediction of virtual machine demand |
US20190354599A1 (en) * | 2018-05-21 | 2019-11-21 | Microsoft Technology Licensing, Llc | Ai model canvas |
CN108959127B (zh) | 2018-05-31 | 2021-02-09 | 华为技术有限公司 | 地址转换方法、装置及系统 |
US11630920B2 (en) | 2018-06-29 | 2023-04-18 | Intel Corporation | Memory tagging for side-channel defense, memory safety, and sandboxing |
US10725941B2 (en) | 2018-06-30 | 2020-07-28 | Western Digital Technologies, Inc. | Multi-device storage system with hosted services on peer storage devices |
JP7384900B2 (ja) | 2018-08-03 | 2023-11-21 | エヌビディア コーポレーション | 仮想マシン・メモリの安全なアクセス |
US11656775B2 (en) | 2018-08-07 | 2023-05-23 | Marvell Asia Pte, Ltd. | Virtualizing isolation areas of solid-state storage media |
US11074013B2 (en) | 2018-08-07 | 2021-07-27 | Marvell Asia Pte, Ltd. | Apparatus and methods for providing quality of service over a virtual interface for solid-state storage |
US10866740B2 (en) | 2018-10-01 | 2020-12-15 | Western Digital Technologies, Inc. | System and method for performance-based multiple namespace resource allocation in a memory |
US11010314B2 (en) | 2018-10-30 | 2021-05-18 | Marvell Asia Pte. Ltd. | Artificial intelligence-enabled management of storage media access |
US11481118B2 (en) | 2019-01-11 | 2022-10-25 | Marvell Asia Pte, Ltd. | Storage media programming with adaptive write buffer release |
US11133067B2 (en) | 2019-03-08 | 2021-09-28 | Western Digital Technologies, Inc. | Multi-phased programming with balanced gray coding |
US11023397B2 (en) | 2019-03-25 | 2021-06-01 | Alibaba Group Holding Limited | System and method for monitoring per virtual machine I/O |
US11055232B2 (en) | 2019-03-29 | 2021-07-06 | Intel Corporation | Valid bits of a translation lookaside buffer (TLB) for checking multiple page sizes in one probe cycle and reconfigurable sub-TLBS |
-
2019
- 2019-10-25 US US16/664,528 patent/US11010314B2/en active Active
- 2019-10-26 EP EP19797810.9A patent/EP3874358A1/en not_active Withdrawn
- 2019-10-26 WO PCT/IB2019/059194 patent/WO2020089759A1/en unknown
- 2019-10-26 CN CN201980072116.7A patent/CN112997138A/zh active Pending
- 2019-10-30 KR KR1020190136475A patent/KR20200050409A/ko active IP Right Grant
-
2021
- 2021-05-13 US US17/320,096 patent/US11467991B2/en active Active
-
2022
- 2022-09-26 US US17/935,364 patent/US11726931B2/en active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180067733A1 (en) * | 2012-01-06 | 2018-03-08 | International Business Machines Corporation | Intelligent and automated code deployment |
US20170031816A1 (en) * | 2015-07-31 | 2017-02-02 | Samsung Electronics Co., Ltd. | Storage device, system including storage device and method of operating the same |
US20180210754A1 (en) * | 2015-09-11 | 2018-07-26 | Cohesity, Inc. | Adaptive self-maintenance scheduler |
CN108108810A (zh) * | 2016-11-24 | 2018-06-01 | 三星电子株式会社 | 包括非易失性存储器件的存储装置及访问方法 |
US20180181302A1 (en) * | 2016-12-28 | 2018-06-28 | Western Digital Technologies, Inc. | Data management based on i/o traffic profiling |
CN107885762A (zh) * | 2017-09-19 | 2018-04-06 | 北京百度网讯科技有限公司 | 智能大数据系统、提供智能大数据服务的方法和设备 |
Also Published As
Publication number | Publication date |
---|---|
EP3874358A1 (en) | 2021-09-08 |
US20230019264A1 (en) | 2023-01-19 |
KR20200050409A (ko) | 2020-05-11 |
US20200133898A1 (en) | 2020-04-30 |
US11467991B2 (en) | 2022-10-11 |
WO2020089759A1 (en) | 2020-05-07 |
US11726931B2 (en) | 2023-08-15 |
US11010314B2 (en) | 2021-05-18 |
US20210271611A1 (en) | 2021-09-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11726931B2 (en) | Artificial intelligence-enabled management of storage media access | |
CN110196624B (zh) | 用于服务器和固态设备的人工智能冷却方法 | |
US10579269B2 (en) | Method, system, and apparatus for nested suspend and resume in a solid state drive | |
CN110389909A (zh) | 使用深度神经网络优化固态驱动器的性能的系统和方法 | |
US20190243577A1 (en) | Method, system, and apparatus for multi-tiered progressive memory program operation suspend and resume | |
KR20210002676A (ko) | 집약성을 개선하기 위한 머신 학습 모델들의 수정 | |
EP3920026A1 (en) | Scheduler, method of operating the same, and accelerator apparatus including the same | |
US11829627B2 (en) | Data migration schedule prediction using machine learning | |
US20210256373A1 (en) | Method and apparatus with accelerator | |
US20230143270A1 (en) | Apparatus and method with scheduling | |
US11681909B2 (en) | Memory component with a bus to transmit data for a machine learning operation and another bus to transmit host data | |
US11769076B2 (en) | Memory sub-system with a virtualized bus and internal logic to perform a machine learning operation | |
US11263156B2 (en) | Memory component with a virtualized bus and internal logic to perform a machine learning operation | |
US11694076B2 (en) | Memory sub-system with internal logic to perform a machine learning operation | |
US10452546B2 (en) | Cache utility modeling for automated cache configuration | |
US20210110249A1 (en) | Memory component with internal logic to perform a machine learning operation | |
EP4163791A1 (en) | Artificial neural network module for performing artificial neural network operation on plurality of subgraphs and operating method thereof | |
US11676010B2 (en) | Memory sub-system with a bus to transmit data for a machine learning operation and another bus to transmit host data | |
EP3985507A1 (en) | Electronic device and method with scheduling | |
US20230004855A1 (en) | Co-operative and adaptive machine learning execution engines | |
CN117590925A (zh) | 集成电路及其操作方法 | |
KR20240022968A (ko) | 워크로드에 기초하여 dvfs 동작을 수행하는 집적 회로 및 이의 동작 방법 |
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 |