CN115705151A - 用于管理设备本地存储器的系统、方法和装置 - Google Patents
用于管理设备本地存储器的系统、方法和装置 Download PDFInfo
- Publication number
- CN115705151A CN115705151A CN202210926086.5A CN202210926086A CN115705151A CN 115705151 A CN115705151 A CN 115705151A CN 202210926086 A CN202210926086 A CN 202210926086A CN 115705151 A CN115705151 A CN 115705151A
- Authority
- CN
- China
- Prior art keywords
- memory
- storage device
- data
- host
- command
- 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/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/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0662—Virtualisation aspects
- G06F3/0664—Virtualisation aspects at device level, e.g. emulation of a storage device or system
-
- 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/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/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
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7807—System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
- G06F15/7821—Tightly coupled to memory, e.g. computational memory, smart memory, processor in memory
-
- 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/20—Employing a main memory using a specific memory technology
- G06F2212/202—Non-volatile memory
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Mram Or Spin Memory Techniques (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Memory System (AREA)
Abstract
提供一种管理存储设备存储器的系统、方法和装置。所述方法包括:从主机接收管理存储器的命令;通过存储设备经由存储设备中的至少一个处理元件对存储在存储器中的第一数据执行命令以生成第二数据;以及通过存储设备将基于第二数据的第三数据发送给主机。
Description
对相关申请的交叉引用
本申请要求于2021年8月3日提交的题为“MANAGEMENT OF DEVICE LOCAL MEMORY”的美国临时专利申请No.63/229,067的权益,该申请通过引用并入本文用于所有目的。
技术领域
本公开通常涉及存储系统,并且更具体地涉及用于管理计算存储设备的存储器的系统和方法。
背景技术
本背景部分旨在仅提供上下文,并且在本部分中公开任何概念并不构成承认所述概念是现有技术。
随着技术的进步,当通过诸如移动设备、物联网设备、空中(遥感)设备、软件日志、摄像头、麦克风、射频识别(RFID)读取器、无线传感器网络等的设备收集数据时,数据的大小和数量迅速增加。为了处理和使用由收集的数据表示的信息,数据中心通常使用存储设备、处理元件和服务器对数据进行过滤、计算、存储和执行相关操作。仍然需要改进存储设备中的计算功能的系统和方法。
本背景部分披露的上述信息仅用于加深对本披露背景的理解,因此可能包含不构成现有技术的信息。
发明内容
在各种实施例中,本文描述的包括用于计算存储设备的数据传输的系统、方法和装置。特别是,一种管理存储设备的存储器的系统、方法和装置。
在各种方面,描述了一种用于管理存储设备的存储器的方法。所述方法可以包括:从主机接收管理存储器的命令;通过存储设备经由存储设备中的至少一个处理元件对存储在存储器中的第一数据执行命令以生成第二数据;以及通过存储设备将基于第二数据的第三数据发送给主机。
在一些实施例中,命令包括将第一数据的至少一部分设置为预定比特的操作,并且第三数据包括完成指示。在一些实施例中,存储器包括位于存储设备内的易失性存储器或非易失性存储器,并且所述方法还包括虚拟化易失性存储器或非易失性存储器。在一个实施例中,所述方法包括:经由与易失性存储器相关联的虚拟地址与主机进行通信。在一些实施例中,所述方法还包括:将虚拟化存储器的一部分专用于第一操作或第一持续时间。在其他实施例中,命令包括由主机上的应用生成并通过应用程序接口(API)接收的命令。在特定实施例中,存储设备包括启用非易失性存储器快速(NVMe)的存储设备或启用结构上NVMe(NVMe-oF)的存储设备。
描述了一种管理功能的系统。所述系统包括:主机,包括应用;存储设备,包括处理元件和存储器;其中,系统存储计算机可执行指令,所述指令在由处理器执行时使处理器执行包括以下的操作:从主机上的应用接收管理存储器的命令;通过存储设备经由存储设备中的至少一个处理元件对存储在存储器中的第一数据执行命令以生成第二数据;以及通过存储设备将基于第二数据的第三数据发送给主机。在一些实施例中,命令包括将第一数据的至少一部分设置为预定比特的操作,并且第三数据包括完成指示。在其他实施例中,存储器包括位于存储设备内的易失性存储器或非易失性存储器,并且所述方法还包括虚拟化易失性存储器或非易失性存储器。在各种实施例中,所述操作还包括:经由与易失性存储器相关联的虚拟地址与主机进行通信。在附加实施例中,所述操作还包括:将虚拟化存储器的一部分专用于第一操作或第一持续时间。在一些实施例中,命令包括由主机上的应用生成并通过API接收的命令。在其他实施例中,存储设备包括启用NVMe的存储设备或启用NVMe-oF的存储设备。
在各种实施例中,描述了一种非暂时性计算机可读介质,计算机可读介质存储指令,当指令由计算机执行时,使计算机执行用于管理存储设备的存储器的操作。所述操作包括:从主机接收管理存储器的命令;通过存储设备经由存储设备中的至少一个处理元件对存储在存储器中的第一数据执行命令以生成第二数据;以及通过存储设备将基于第二数据的第三数据发送给主机。
在一些实施例中,命令包括将第一数据的至少一部分设置为预定比特的操作,并且第三数据包括完成指示。在其他实施例中,存储器包括位于存储设备内的易失性存储器或非易失性存储器,并且所述方法还包括虚拟化易失性存储器或非易失性存储器。在特定实施例中,所述操作还包括:经由与易失性存储器相关联的虚拟地址与主机进行通信。在附加实施例中,所述操作还包括:将虚拟化存储器的一部分专用于第一操作或第一持续时间。在一些实施例中,命令包括由主机上的应用生成并通过API接收的命令。
因此,本文描述的主题的特定实施例可以被实施以实现以下优点中的一个或多个。提供各种协议和技术来清除设备本地存储器。提供可广泛应用于直接和虚拟化环境的机制。允许存储器管理技术可以扩展为以最少的主机干预与多个设备一起扩展。可与各种标准化协议结合使用。减少网络延迟并提高网络稳定性和操作数据传输率,进而改善用户体验。降低与路由网络流量、网络维护、网络升级等相关的成本。此外,在一些方面,所公开的系统可以用于降低网络上设备的功耗和/或带宽,并且可以用于提高设备之间通信的速度和/或效率。此外,所公开的系统和方法可以用于提供一种无缝机制,适用于直接连接和网络连接的驱动器。此外,所公开的机制可以应用于计算存储设备(例如,具有处理功能的存储设备)和相关系统。在其他方面,所公开的系统可以与任何合适的存储设备结合使用,诸如非易失性存储器快速(NVMe)、结构上NVMe(NVMe-oF)和/或非NVMe固态驱动器(SSD)。此外,所公开的系统和方法可以被标准化并应用于一系列存储设备和相关系统,同时与供应商无关。
附图说明
当参考以下附图阅读本申请时,将更好地理解本技术的上述方面和其他方面,其中相同的数字表示相似或相同的元件。此外,此处提供的附图仅用于说明某些实施例;可能未明确说明的其他实施例不排除在本公开的范围之外。
本公开的这些和其他特征和优点将通过参考说明书、权利要求和附图来理解和了解,其中:
图1示出根据本公开的实施例的包括支持对存储设备的维护的计算存储单元的系统。
图2示出根据本公开的实施例的图1的机器的细节。
图3A示出根据本公开的实施例的可以与图1的存储设备相关联的计算存储单元的第一示例布置。
图3B示出根据本公开的实施例的可以与图1的存储设备相关联的计算存储单元的第二示例布置。
图3C示出根据本公开的实施例的可以与图1的存储设备相关联的计算存储单元的第三示例布置。
图3D示出根据本公开的实施例的可以与图1的存储设备相关联的计算存储单元的第四示例布置。
图4示出根据本公开的实施例的示例设备本地存储器的示意图。
图5示出根据本公开实施例的示例存储器命令的另一示意图。
图6示出根据本公开的实施例的另一示例存储器命令的示意图。
图7是根据本公开的示例实施例的示出与公开的系统相关联的示例操作的示例操作流程的示图。
图8示出可以用于实践本公开的实施例的系统的示例示意图。
图9示出根据本公开的示例实施例的管理计算实体的示例示意图。
图10示出根据本公开的示例实施例的用户设备的示例示意图。
尽管本技术易于进行各种修改和替代形式,但是其特定实施例在附图中以示例的方式示出并且将在本文中进行描述。附图可能不是按比例绘制的。然而,应当理解,附图及其详细描述并非旨在将本技术限制为所公开的特定形式,而是相反,其意图是涵盖在所附权利要求所定义的本技术的精神和范围内的所有修改、等同物和替代方案。
具体实施方式
本文描述的主题的一个或多个实施例的细节在附图和以下描述中阐述。本主题的其他特征、方面和优点将从描述、附图和权利要求中变得显而易见。
现在将在下文中参考附图更全面地描述本公开的各种实施例,其中示出了一些但不是所有实施例。实际上,本公开可以以许多不同的形式体现,并且不应被解释为限于本文所阐述的实施例;相反,提供这些实施例是为了使本公开满足适用的法律要求除非另有说明,否则术语“或”在本文中以替代和结合的含义使用。术语“说明性”和“示例”用于作为示例,不表示质量水平。相同的附图标记始终指代相同的元件。每个图中的箭头描绘了双向数据流和/或双向数据流能力。术语“路径”、“通路”和“路线”在本文中可互换使用。
本公开的实施例可以以各种方式实现,包括作为包括制品的计算机程序产品。计算机程序产品可以包括存储应用程序、程序、程序组件、脚本、源代码、程序代码、目标代码、字节代码、编译代码、解释代码、机器代码、可执行指令等(在本文中也称为可执行指令、用于执行的指令、计算机程序产品、程序代码和/或本文可互换使用的类似术语)的非暂时性计算机可读存储介质。这种非暂时性计算机可读存储介质包括所有计算机可读介质(包括易失性和非易失性介质)。
在一个实施例中,非易失性计算机可读存储介质可以包括软盘、可折叠磁盘、硬盘、固态存储(SSS)(例如固态驱动器(SSD))、固态卡(SSC)、固态模块(SSM)、企业级闪存驱动器、磁带或任何其他非暂时性磁介质等。非易失性计算机可读存储介质还可以包括穿孔卡、纸带、光学标记片(或具有孔图案或其他光学可识别标记的任何其他物理介质)、光盘只读存储器(CD-ROM)、光盘可重写(CD-RW)、数字通用光盘(DVD)、蓝光光盘(BD)、任何其他非暂时性光学介质等。这种非易失性计算机可读存储介质还可以包括只读存储器(ROM)、可编程只读存储器(PROM)、可擦可编程只读存储器(EPROM)、电可擦可编程只读存储器(EEPROM)、闪存(例如串行、NAND、NOR等)、多媒体存储卡(MMC)、安全数字(SD)存储卡、SmartMedia卡、CompactFlash(CF)卡、记忆棒等。此外,非易失性计算机可读存储介质还可以包括导电桥接随机存取存储器(CBRAM)、相变随机存取存储器(PRAM)、铁电随机存取存储器(FeRAM)、非易失性随机存取存储器(NVRAM)、磁阻式随机存取存储器(MRAM)、电阻式随机存取存储器(RRAM)、氧化硅-氮化物-氧化硅存储器(SONOS)、浮结栅随机存取存储器(FJGRAM)、千足虫存储器、赛道存储器等。
在一个实施例中,易失性计算机可读存储介质可以包括随机存取存储器(RAM)、动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)、快速页面模式动态随机存取存储器(FPM DRAM)、扩展数据输出动态随机存取存储器(EDO DRAM)、同步动态随机存取存储器(SDRAM)、双倍数据速率同步动态随机存取存储器(DDR SDRAM)、双倍数据速率型二倍同步动态随机存取存储器(DDR2 SDRAM)、双倍数据速率类型三同步动态随机存取存储器(DDR3SDRAM)、Rambus动态随机存取存储器(RDRAM)、双晶体管RAM(TTRAM)、晶闸管RAM(T-RAM)、零电容(Z-RAM)、Rambus嵌入式存储器组件(RIMM)、双列直插式存储器组件(DIMM)、单列直插式存储器组件(SIMM)、视频随机存取存储器(VRAM)、高速缓存(包括各种级别)、闪存、寄存器存储器等。应当理解,在实施例被描述为使用计算机可读存储介质的情况下,除了上述计算机可读存储介质之外,其可以替代或使用他类型的计算机可读存储介质。
应当理解,本公开的各种实施例也可以实现为方法、装置、系统、计算设备、计算实体等。因此,本公开的实施例可以采取执行存储在计算机可读存储介质上的指令以执行某些步骤或操作的装置、系统、计算设备、计算实体等的形式。因此,本公开的实施例还可以采取完全硬件实施例、完全计算机程序产品实施例和/或包括计算机程序产品和执行某些步骤或操作的硬件的组合的实施例的形式。
下面参照框图和流程图说明本公开的实施例。因此,应该理解,框图和流程图说明的每个块可以以计算机程序产品、完全硬件实施例、硬件和计算机程序产品的组合和/或执行指令、操作、步骤和在计算机可读存储介质上互换使用的类似文字(例如可执行指令、执行指令、程序代码等)的装置、系统、计算设备、计算实体等的形式实现。例如,可以顺序地执行代码的检索、加载和执行,从而一次检索、加载和执行一条指令。在一些示例实施例中,可以并行执行检索、加载和/或执行,使得多个指令被一起检索、加载和/或执行。因此,这样的实施例可以产生执行框图和流程图说明中指定的步骤或操作的特定配置的机器。因此,框图和流程图说明支持用于执行指定指令、操作或步骤的实施例的各种组合。
在各个方面,计算存储(CS)设备(也称为近存储计算设备)可以用于增强存储功能使用,例如,通过执行近存储加速操作。CS设备可以包括提供称为计算存储功能(CSF)和持久数据存储的功能的存储元件。CSF的非限制性示例可以包括提供压缩、加密、数据库过滤器、纠删码、廉价磁盘冗余阵列(RAID)、散列和循环冗余校验(CRC)操作、正则表达式(RegEx)操作(例如,图案匹配)、分散收集、管道、视频压缩、重复数据删除和/或大型数据集管理的功能。此外,计算存储设备可以包括计算存储引擎,其可以包括能够执行一个或多个CSF的组件(例如,诸如CPU、FPGA等的硬件组件)。在各个方面,计算存储设备可以与诸如主机的另一设备至少部分地通信并由其控制。主机可以包括计算机系统,磁盘、磁盘子系统或文件服务器连接到该计算机系统,并且可以访问以进行数据存储和输入/输出(I/O)。
在某些方面,CS设备可以通过使用近存储处理(例如,对靠近存储数据的位置的数据执行计算,例如,在同一设备中)来增强各种存储用例。例如,具有计算元件(例如,处理器)的诸如固态设备(SSD)的存储设备可以通过处理设备内的各种CS命令来执行近数据处理。在一些方面,CS命令处理可以由与诸如存储设备、计算存储设备或另一相关联的计算设备的设备通信的主机CPU部分或全部完成,因为配置和应用可以变化。在一些情况下,CS命令可以启动一个或多个计算功能,该计算功能可以对作为输入提供给该功能的数据运行计算操作,并且可以提供计算功能的结果作为执行该功能的结果。这样的功能可以在主机CPU中作为软件功能,在设备CPU中作为软件功能或硬件功能。
在一些方面,所公开的实施例能够使得诸如计算存储SSD的存储设备能够以有条理的方式识别计算功能,并且额外能够使得设备与一个或多个设备内计算引擎(例如,硬件、固件和/或基于软件的计算元素)配对。因此,所公开的实施例可以实现具有计算要求的各种计算存储用例,例如,由各种标准机构和/或用户偏好指定的那些。
在一些方面,本文描述的设备可以包括具有持久性和易失性存储器的CS设备。特别地,设备可以包括设备本地存储器,其可以包括可用于计算程序和/或设备主存储器的补充使用的设备存储器的分级和工作区域。此外,设备本地存储器可以完全由主机使用,或者可以部分由主机使用,因为它可以以更小的分配单元被映射到虚拟化环境中的应用和虚拟机(VM)。分配给VM的存储器可以通过基于主机的应用释放或在VM终止时释放而得到保护的方式被使用。本公开的各种实施例通过提供识别这些功能和计算引擎的标准化方法来进一步解决这样的限制,并提供管理这些功能、计算引擎和相关存储器以及在CS设备中实现和使用它们的机制。
在各个方面,所公开的系统可以包括用于清除设备本地存储器的机制,并且该机制可以至少部分地由主机管理。此外,所公开的系统可以包括用于不通过物理地址暴露给主机的设备存储器的寻址机制。所公开的系统可以包括用于主机软件发现此类设备存储器机制的机制,以及用于在虚拟化环境中在VM上下文中使用和管理此类设备存储器的机制。此外,所公开的系统可以包括可以实现这样的机制的一个或多个CS设备(例如,SmartSSDTM)和/或在主机上或在启用这样的机制的设备内运行的软件程序。此外,所公开的系统可以包括一个或多个应用程序接口(API)和/或用于与这些功能接口的任何其他合适的通信技术。
在各个方面,除了各种软件模块之外,所公开的系统还可以与包括专用集成电路(ASIC)、现场可编程门阵列(FPGA)等的各种不同设备结合使用。所公开的系统可以在系统级别(例如,主机级别)和更细粒度的级别(例如,设备级别)上操作。在主机级别,所公开的系统可以包括用于将各种功能分组和映射到对应的硬件元件(例如,FPGA、数据处理单元(DPU)、张量处理单元(TPU)等)或各种软件模块(例如,用Python或任何其他合适的编程语言编写的软件模块)的机制。
图1示出根据本公开的实施例的包括支持存储设备上的各种功能(例如,CSF)的计算存储单元的系统。在图1中,也可以被称为主机或系统的机器105可以包括处理器110、存储器115和存储设备120。处理器110可以是任何种类的处理器。(为了便于说明,处理器110以及下面讨论的其他组件被显示在机器外部;本公开的实施例可以将这些组件包括在机器内。)虽然图1示出了单个处理器110,但机器105可以包括任意数量的处理器,每个处理器可以是单核或多核处理器,每个处理器可以实现精简指令集计算机(RISC)架构或复杂指令集计算机(CISC)架构(以及其他可能性),并且可以以任何所需的组合混合。
处理器110可以耦合到存储器115。存储器115可以是任何种类的存储器,诸如闪存、动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)、持久随机存取存储器、铁电随机存取存储器(FRAM),或非易失性随机存取存储器(NVRAM),诸如磁阻随机存取存储器(MRAM)等。存储器115也可以是不同存储器类型的任何期望组合,并且可以由存储器控制器125管理。存储器115可以是用于存储可能被称为“短期”的数据:即不希望长时间存储的数据。短期数据的示例可包括临时文件、应用在本地使用的数据(可能已从其他存储位置复制)等。
处理器110和存储器115也可以支持可以运行各种应用的操作系统。这些应用可以发出请求(也可以被称为命令)以从存储器115或存储设备120读取数据或将数据写入到存储器115或存储设备120。可以使用设备驱动器130访问存储设备120。
存储设备120可以与计算存储单元135相关联。如参照图3A-图3D所示,计算存储单元135可以是存储设备120的一部分,或者它可以与存储设备120分离。短语“与……相关联”旨在涵盖包括计算存储单元的存储设备和与不属于存储设备本身的计算存储单元配对的存储设备两者。换言之,当存储设备和计算存储单元是物理上分离的设备但以使得它们能够相互通信的方式连接时,可以说存储设备和计算存储单元是“配对的”。
此外,存储设备120和配对的计算存储单元135之间的连接可能使这两个设备能够通信,但可能不能使一个(或两个)设备与不同的伙伴一起工作:也就是说,存储设备120可能不能与另一个计算存储单元通信,和/或计算存储单元135可能不能与另一个存储设备通信。例如,存储设备120和配对的计算存储单元135可以串联(以任一顺序)连接到诸如总线的结构,使得计算存储单元135能够以另一个计算存储单元可能不能实现的方式从存储设备120访问信息。
处理器110和存储设备120可以连接到一种结构。结构可以是任何可以传递信息的结构。该结构可以包括可以在机器105内部并且可以使用诸如外围组件互连快速(PCIe)、串行AT附件(SATA)、小型计算机系统接口(SCSI)等接口的结构。该结构还可以包括可以在机器105外部并且可以使用诸如以太网、InfiniBand或光纤通道等接口的结构。此外,该结构可以支持一种或多种协议,诸如非易失性存储器(NVM)快速(NVMe)、结构上NVMe(NVMeoF)或简单服务发现协议(SSDP)等。因此,该结构可以被认为包含内部和外部网络连接,命令可以通过其直接或间接地发送到存储设备120(并且更具体地,与存储设备120相关联的计算存储单元)。
尽管图1示出了一个存储设备120和一个计算存储单元135,但是机器105中可以有任意数量(一个或多个)的存储设备和/或任意数量(一个或多个)的计算存储单元。
尽管图1使用通用术语“存储设备”,但本公开的实施例可以包括可以受益于计算存储单元的使用的任何存储设备格式,其示例可以包括硬盘驱动器和固态驱动器(SSD)。以下对“SSD”的任何引用应理解为包括本公开的此类其他实施例。此外,虽然上面(和下面)的讨论关注于存储设备120与计算存储单元相关联,但是本公开的实施例可以扩展到可以包括计算存储单元或与计算存储单元相关联的存储设备以外的设备。上面(和下面)对“存储设备”的任何引用都可以理解为还包括可能与计算存储单元相关联的其他设备。
主机可以用可以被配置为主机的任何类型的装置来实现,包括例如诸如计算服务器、存储服务器、存储节点、网络服务器等的服务器、诸如工作站、个人计算机、平板电脑、智能手机等的计算机或它们的任何组合。该设备可以用可以被配置为设备的任何类型的装置来实现,包括例如加速器设备、存储设备、网络设备、存储器扩展和/或缓冲设备、图形处理单元(GPU)、神经处理单元(NPU)、张量处理单元(TPU)等或它们的任何组合。
设备(例如,主机、CS设备和/或任何中间设备)之间的任何通信可以在可以用任何类型的有线和/或无线通信介质、接口、协议等实现的接口上发生,包括PCIe、NVMe、以太网、NVMe-oF、Compute Express Link(CXL)和/或连贯协议,诸如CXL.mem、CXL.cache、CXL.IO等、Gen-Z、开放连贯加速器处理器接口(OpenCAPI)、用于加速器的高速缓存相干互连(CCIX)、高级可扩展接口(AXI)等或其任何组合、传输控制协议/互联网协议(TCP/IP)、光纤通道、InfiniBand、串行AT附件(SATA)、小型计算机系统接口(SCSI)、串行连接SCSI(SAS)、iWARP、任何一代无线网络,包括2G、3G、4G、5G等,任何一代Wi-Fi、蓝牙、近场通信(NFC)等或其任何组合。在一些实施例中,通信接口可以包括通信结构,包括一个或多个链路、总线、交换机、集线器、节点、路由器、转换器、中继器等。在一些实施例中,本文所示的系统可包括具有一个或多个附加通信接口的一个或多个附加装置。
在设备被实现为存储设备的实施例中,存储设备可以包括任何类型的非易失性存储介质,例如,基于固态介质(例如,固态驱动器(SSD))、磁介质(例如,硬盘驱动器)、硬盘驱动器(HDD))、光学介质等或其任何组合。例如,在一些实施例中,存储设备可以实现为基于非与(NAND)闪存的SSD、诸如交叉网格非易失性存储器的持久性存储器、具有体电阻变化的存储器、相变存储器(PCM)等或其任何组合。任何此类存储设备可以使用任何连接器配置(诸如SATA、SCSI、SAS、U.2、M.2等)以任何形式实现,诸如3.5英寸、2.5英寸、1.8英寸、M.2、企业和数据中心SSD形式因子(EDSFF)、NF1等。任何此类存储设备可以完全或部分地与服务器机箱、服务器机架、数据室、数据中心、边缘数据中心、移动边缘数据中心和/或其任何组合一起实现和/或结合使用。
本文描述的任何功能,包括任何主机功能、设备功能等,可以用硬件、软件、固件或其任何组合来实现,包括例如硬件和/或软件组合逻辑、时序逻辑、定时器、计数器、寄存器、状态机、易失性存储器(诸如动态随机存取存储器(DRAM)和/或静态随机存取存储器(SRAM))、非易失性存储器(包括闪存)、持久性存储器(诸如交叉网格非易失性存储器)、具有体电阻变化的存储器、相变存储器(PCM)等和/或其任何组合、复杂可编程逻辑器件(CPLD)、现场可编程门阵列(FPGA)、专用集成电路(ASIC)CPU,包括复杂指令集计算机(CISC)处理器,诸如x86处理器和/或精简指令集计算机(RISC)处理器,诸如RISC-V和/或ARM处理器、图形处理单元(GPU)、神经处理单元(NPU)、张量处理单元(TPU)等,执行存储在任何类型存储器中的指令。在一些实施例中,一个或多个组件可以实现为片上系统(SOC)。
图2示出根据本公开的实施例的图1的机器105的细节。在图2中,机器105通常包括一个或多个处理器110,处理器110可以包括存储器控制器125和时钟205,可用于协调机器组件的操作。处理器110还可以耦合到存储器115,作为示例,存储器115可以包括随机存取存储器(RAM)、只读存储器(ROM)或其他状态保存介质。处理器110也可以耦合到存储设备120和网络连接器210,例如,网络连接器可以是以太网连接器或无线连接器。处理器110还可以连接到总线215,总线215可以连接用户接口220和输入/输出(I/O)接口端口,这些端口可以使用I/O引擎225等组件进行管理。
图3A-图3D示出根据本公开的实施例的可以与图1的存储设备120相关联的图1的计算存储单元135(其也可以称为“计算设备”或“设备”)的各种布置。在图3A中,示出存储设备305和计算设备310-1。存储设备305可以包括控制器315和存储320-1,并且可以是跨队列对可到达的。队列对325既可以用于存储设备305的管理和控制存储设备305的I/O二者。
计算设备310-1可以与存储设备305配对。计算设备310-1可以包括任意数量的(一个或多个)处理器330,其可以提供一个或多个服务335-1和335-2。为了更清楚,每个处理器330可以提供任何数量(一个或多个)服务335-1和335-2(尽管本公开的实施例可以包括计算设备310-1,计算设备310-1正好包括两个服务335-1和335-2)。每个处理器330可以是单核处理器或多核处理器。计算设备310-1可以是跨队列对340可到达的,队列对340可以用于管理计算设备310-1和/或控制计算设备310-1的I/O二者。
处理器330(或多个)可以被认为是近存储处理:即,与图1的处理器110相比更靠近存储设备305的处理。因为处理器330更靠近存储设备305,所以处理器330能够比图1的处理器110执行命令更快地对存储在存储设备305中的数据执行这样的命令。虽然未在图3A中显示,但是处理器330可以具有相关联的存储器,可以用于对存储在存储设备305中的数据的命令的本地执行。这个相关联的存储器可以包括类似于图1的存储器115的本地存储器、片上存储器(可能比诸如存储器115的存储器更快,但生产成本可能更高),或两者兼而有之。
尽管图3A示出存储设备305和计算设备310-1是跨结构345单独可到达,但本公开的实施例也可以包括串联连接的存储设备305和计算设备310-1(如图1所示)。也就是说,指向存储设备305和计算设备310-1的命令可能都在到结构345的相同物理连接处被接收并且可以通过一个设备传递给另一个设备。例如,如果计算设备310-1位于存储设备305和结构345之间,则计算设备310-1可以接收指向计算设备310-1和存储设备305两者的命令。计算设备310-1可以处理指向计算设备310-1的命令,并且可以将指向存储设备305的命令传递给存储设备305。类似地,如果存储设备305位于计算设备310-1和结构345之间,则存储设备305可以接收指向存储设备305和计算设备310-1两者的命令。存储设备305可以处理指向存储设备305的命令并且可以将指向计算设备310-1的命令传递给计算设备310-1。
服务335-1和335-2可以提供可以在存储设备305中存储的数据上执行的许多不同的功能(例如,CSF)。例如,服务335-1和335-2可以提供预定义的功能,诸如数据的加密、解密、压缩和/或解压缩、擦除编码和/或应用正则表达式。或者,服务335-1和335-2可以提供更通用的功能,诸如数据搜索和/或SQL功能。服务335-1和335-2也可以支持运行应用特定代码。也就是说,使用服务335-1和335-2的应用可以提供要使用存储设备305上的数据来执行的定制代码。服务335-1和335-2也可以是这些功能的任何组合。表1列出了可以由处理器330提供的服务的一些示例。
表1:服务类型
处理器330(以及实际上,计算设备310-1)可以以任何期望的方式被实现。示例实现可以包括诸如中央处理单元(CPU)或一些其他处理器的本地处理器、图形处理单元(GPU)、通用GPU(GPGPU)、数据处理单元(DPU)、张量处理单元(TPU)或神经处理单元(NPU)等。处理器330也可以使用现场可编程门阵列(FPGA)或专用集成电路(ASIC)以及其他可能性来实现。如果计算设备310-1包括多于一个处理器330,则每个处理器都可以如上所述实现。例如,计算设备310-1可能具有CPU、TPU和FPGA中的每一个,或者计算设备310-1可能具有两个FPGA,或者计算设备310-1可能具有两个CPU和一个ASIC,等等。
取决于期望的解释,计算设备310-1或处理器330可以被认为是计算存储单元。
尽管图3A将存储设备305和计算设备310-1示为单独的设备,但在图3B中,它们可以组合。因此,计算设备310-2可以包括控制器315、存储320-1和提供服务335-1和335-2的处理器330。与图3A的存储设备305和计算设备310-1一样,可以通过队列对340接收管理和I/O命令。即使计算设备310-2被示为包括存储器和处理器330两者,但是图3B仍然可以被认为包括与计算存储单元相关联的存储设备。
在图3C所示的又一变体中,示出了计算设备310-3。计算设备310-3可以包括控制器315和存储320-1,以及提供服务335-1和335-2的处理器330。但是即使计算设备310-3可以被认为是包括控制器315、存储320-1和处理器330的单个组件(并且也被认为是与计算存储单元相关联的存储设备),与图3B中所示的实现不同,控制器315和处理器330各自可包括其自己的队列对325和340(同样,其可用于管理和/或I/O)。通过包括队列对325,控制器315可以提供对存储320-1的透明访问(而不是要求所有通信都通过处理器330进行)。
此外,处理器330可以具有对存储320-1的代理存储访问350。因此,代替通过控制器315路由访问请求,处理器330可能能够直接访问来自存储320-1的数据。
在图3C中,控制器315和代理存储访问350都用虚线示出以表示它们是可选元件,并且可以根据实现方式被省略。
最后,图3D示出了另一个实现。在图3D中,示出了计算设备310-4,其可以包括类似于图3C的控制器315和代理存储访问350。此外,计算设备310-4可以包括一个或多个存储320-1到320-4的阵列。尽管图3D示出了四个存储元件,但是本公开的实施例可以包括任意数量(一个或多个)的存储元件。此外,单独的存储元件可以是其他存储设备,诸如图3A-图3D中所示的那些。
因为计算设备310-4可以包括多于一个的存储元件320-1到320-4,所以计算设备310-4可以包括阵列控制器355。阵列控制器355可以管理如何在存储元件320-1至320-4上存储数据和从其检索数据。例如,如果存储元件320-1至320-4被实现为独立磁盘冗余阵列(RAID)的某个级别,则阵列控制器355可以是RAID控制器。如果存储元件320-1至320-4使用某种形式的纠删码(Erasure Coding)实现,则阵列控制器355可以是纠删码控制器。
在一些实施例中,一个或多个计算存储(CS)应用程序编程接口(API)可以提供查询机制,例如,以发现设备中的一个或多个计算功能,该功能可以由提供者预加载,稍后由用户下载,或以任何其他方式使用。这些功能的列表可以被提供给用户并且例如使用功能ID的列表来描述。可以提供附加的查询功能,例如,关于一个或多个功能的细节、输入和/或输出参数和/或功能的状态值等。所公开的系统可以使用一个或多个API以与配备这些功能并具有初始化、执行、停止、重置、下载、加载和/或卸载这些功能等的计算存储设备通信。在某些情况下,同一功能可能同时驻留在一台或多台设备上。一个或多个API可以提供分类以在查询和/或执行级别区分功能和/或其特征。
图4示出根据本公开的示例实施例的管理设备本地存储器的示意图。特别地,图示400示出包括设备402(例如,CS设备)的系统,可以包括被配置为提供对设备存储器和计算资源的访问的控制器404、各种计算引擎(CE)406、设备本地存储器(DLM)410、可以连接到存储(例如,持久存储)的命名空间416以及可以被配置为处理存储在设备上的数据(例如,存储在DLM和/或存储上的数据)的各种CS程序414。进一步示出与设备402通信的主机420;主机420可以包括中央处理单元(CPU)424(或类似的处理元件)、存储器422和至少一个应用426。主机420还可以在端口432处连接430到设备402。如上所述,图示400中至少部分地描绘的公开的系统可以包括可以执行各种任务的各种元件,诸如清除设备存储器的任务;在一些方面,设备存储器的清除可以至少部分地由主机420管理,如下面进一步描述的。
在各个方面,所公开的系统可以支持某些存储协议(例如,非易失性存储器快,NVMe),其可以包括诸如设备本地存储器(DLM)的存储器类型,以供计算存储使用并且用于可能不涉及计算存储元素的未来用例。如图400所示,可以在可以与不同计算引擎(CE)406相关联的范围(例如,图400的DLM 410中所示的范围A、范围B、范围C和范围D)中分配DLM410。在一些方面,这样的CE 406(例如,CE 408)和对应的存储器范围(例如,存储器范围A412)可以进一步被分配给主机420环境中(或虚拟化环境中的VM/容器中,未显示)的主机应用426。
在一些方面,存储器(例如,DLM 410)可以被用作主机420、本地存储器(例如,NAND闪存和/或命名空间416)和/或CS程序414(例如,在设备402上运行的CS程序)之间传送的数据的源或目的地。在其他方面,存储器(例如,DLM 410)可以在名称空间416之间用于特定操作,包括但不限于复制、碎片整理、对齐、其组合等。在某些方面,用例可以完全包含在设备402中。在其他方面,存储器(例如,DLM 410)也可以被用于与安全相关的目的,诸如需要得到保护的托管密钥(例如,与加密相关的密钥)。在一些方式中,存储器可以被用作与使用所公开系统的任何合适的设备(例如,设备402和/或主机420)相关联的备份操作的中间缓冲器。在其他方面,存储器可以与诸如管理网络、存储、安全和/或相关操作的适配器(未示出)之类的外部设备共享。
在一些方面,存储器(例如,DLM 410)可以在不同时间由一个或多个操作(例如,基于应用426的主机发起的操作)使用。在使用该存储器用于不同操作之间,所公开的系统可以清除存储器(例如,DLM 410),例如,以防止在操作之后泄露潜在的敏感数据,如下文进一步讨论的。此外,虽然可以通过将空白数据从主机420或本地存储器(例如,基于名称空间416的本地存储器)传递到存储器(例如,DLM 410)来清除存储器(例如,DLM 410),但这样的操作可能会消耗可用于其他目的资源。
在一些方面,所公开的系统可以清除DLM 410中的数据。清除DLM 410中的数据可以包括擦除DLM 410的现有内容(例如,用零替换每个字节)。在一些方面,所公开的系统可以选择替换字节为在整个存储器范围内重复的任何字节值。在其他方面,所公开的系统可以以安全的方式进行数据的清除(例如,使得操作不在调用者的直接路径中以避免基于时间的攻击)。
在一些方面,所公开的系统可以以几种方式从DLM 410清除数据。在第一示例中,所公开的系统可以通过以控制器404本地的存储器中的一个或多个存储器范围(例如,存储器范围A412)为目标来以清除数据为目标。例如,图400中的范围A、B、C和D可以(例如,由主机420和/或设备402)作为清除的目标。在另一示例中,所公开的系统可以创建包括多个存储器范围的存储器范围集并且可以向控制器404发送命令以请求清除指定的存储器范围集(例如,存储器范围集413)。此外,存储器范围集(例如,存储器范围集413)可以在其中具有多个范围,这些范围也与一个或多个CE(例如,图400中的CE 0和CE 1)相关联。在一些方面,当要清除多个范围时,所公开的系统可以执行这种技术。
在一些方面,所公开的系统可以为设备存储器提供不作为物理地址暴露给主机的寻址机制,如下面进一步描述的。在某些方面,所公开的系统可以在某些规范(例如,NVMe、NVMe-oF等)的上下文中以不同方式表征和/或定义DLM。因此,给定的设备(例如,设备402)可以虚拟化后备物理介质(例如,DLM 410和/或存储器412),并将这种物理介质呈现给供应商并且由供应商定义。因此,所公开的系统可以使用抽象层(例如,基于软件的层)来满足规范的一个或多个要求,同时隐藏供应商的特定实现和在执行各种命令中构建和优化设备402的DLM 410操作流程所采取的细节。如图400所示,DLM 410可以被虚拟寻址。因此,可以实现任何合适的方法来将底层物理存储器映射到DLM 410的存储器区域中的定义的存储器范围(例如,范围A412)。
在某些方面,如果存储器(例如,DLM 410)被虚拟寻址,则所公开的系统可以如下操作。在第一次使用给定命令(例如,创建存储器范围集命令)分配存储器范围(例如,范围A412)时,可以分配DLM 410中的物理存储器并将其映射到特定的存储器范围。在此之前,所公开的系统可以允许在没有任何映射的情况下包含存储器(例如,DLM 410)(例如,所公开的系统可以允许创建存储器的虚拟映射以在分配范围或创建存储器范围集的命令之后使用)。然后,所公开的系统可以将物理存储器返回到虚拟地址,并从而可以使物理存储器可用于程序和其他用途。此外,在一些方面,所公开的系统可以允许在各种事件上释放物理存储器,包括但不限于:如上所述的存储器的清除、使用适当的设备命令删除存储器范围和/或将DLM 410藤(free)回到主机(例如主机420)上的池。在一些方面,释放操作可以由主机420中的一个或多个应用触发或当VM/容器终止时触发。
在一些方面,由于底层物理存储器可以以给定用户(例如,供应商)选择的任何方式设置和构造,因此所公开的系统可以设置并使用抽象层来提供一种机制,以根据需要将不同的存储器类型统一起来,并将其作为一个池呈现给设备(例如,图4的设备402)。此外,所公开的系统可以允许将存储器(例如,图4的DLM 410)应用到特定用途,以使特定存储器类型、通道、时隙等能够使用对应的虚拟化层定制到给定使用情况。所公开的系统允许设备执行各种操作,诸如隐藏某些存储器缺陷(例如,不可用的物理或虚拟存储器),允许使用分散的存储器(不在一个连续段中的存储器),以及允许使用特定用途存储器类型。
在一些方面,所公开的系统可以在发出对应的设备命令(例如,来自主机420并且由设备402在控制器404处接收)时创建设备存储器范围(例如,图400的DLM 410的范围A412)。通过创建存储器范围,所公开的系统可以允许设备提供一种机制来保证范围内的数据只能通过映射到所请求的程序的存储器或调用者的命令上下文的虚拟地址来访问。因此,容纳在该存储器范围内的数据可以被视为安全的。安全数据可以有多个用例。例如,默认情况下,在多租户环境中可能需要安全数据,放置基于安全的密钥(例如,在加密应用中)、敏感数据、其组合等。
例如,图400中所示的实施例可以与诸如以下的存储协议一起使用:非易失性存储器快速(NVMe),可以使用互连,诸如外围组件互连快速(PCIe);和/或结构上NVMe(NVMe-oF),其可以使用诸如以太网的网络,但原理不限于这些协议、通信技术或任何其他实现细节。
图5示出根据本公开实施例的示例存储器命令的另一示意图。特别地,图示500示出可以被用于清除DLM中的存储器的存储器范围清除命令,如上所述。图示500进一步示出该特定示例命令的特定字节502及其对应的描述504。例如,比特127:104被保留,比特103:96指存储器清除字节(MCB),它表示用于清除存储器的字节(默认被设置为“0”)。此外,比特95:64专用于存储器范围长度(MRL),它表示从MRS起到清除的存储器范围的长度。此外,比特63:00表示存储器范围开始(MRS),它表示指定需要清除的存储器范围开始的字段。
图6示出根据本公开实施例的示例存储器命令的另一示意图。特别地,图示600示出存储器范围设置清除命令,其可以被用于使用主机数据指针来清除DLM中的存储器,如上所述。图示600进一步示出了该特定示例命令的特定字节602及其描述604。例如,字节60203:00可以表示集合中的总范围(TRS),它可以指定在主机缓冲器中指定的存储器范围集中包含的存储器范围的总数(可以与某些协议相关联,诸如NVMe基本规范和相关的物理范围页(PRP)和分散聚合表(SGL))。在某些方面,比特31:04可以被保留,并且剩余比特范围可以与连续的存储器范围相关联(例如,存储器范围0、存储器范围1等)。
图7示出说明根据本公开的实施例的与所公开的系统相关联的一些示例操作的代表性流程图700。在块702,所公开的系统可以从主机接收用于管理存储器的命令。在一些方面,命令可以包括将第一数据的至少一部分设置为预定位(例如,零)的操作。在块704,所公开的系统可以通过存储设备经由存储设备中的至少一个处理元件对存储在存储器上的第一数据执行命令,以生成第二数据。在一些方面,命令也可以触发动作,包括将一部分虚拟化存储器专用于第一操作或第一持续时间(例如,在给定的时间段内为特定任务保留一部分存储器)。在块706,所公开的系统可以经由存储设备将基于第二数据的第三数据发送到主机。在一些方面,第三数据可以包括完成指示(例如,确认消息)。
图8示出可以用于实践本公开的实施例的系统的示例示意图。如图8所示,该特定实施例可以包括一个或多个管理计算实体800、一个或多个网络805和一个或多个用户设备810(例如,主机设备、存储设备、附加设备等)。在各种实施例中,管理计算实体800可以被配置为运行与在整个公开中描述的所公开的系统和相关实施例相关联的操作,包括但不限于结合图7中的示例操作描述的那些。此外,管理计算实体800可以驻留在所公开系统的任何适当部分中(例如,诸如存储设备管理器、主机应用程序、远程主机、另一设备、它们的组合等)。这些组件、实体、设备、系统和本文中可互换使用的类似词语中的每一个可以例如通过相同或不同的有线或无线网络彼此直接或间接通信。此外,虽然图8将各种系统实体图示为单独的、独立的实体,但各种实施例不限于该特定架构。如所指出的,可以使用本文进一步描述的任何合适的协议来执行通信。
图9示出根据本公开的示例实施例的管理计算实体的示例示意图900。如所指出的,管理计算实体可以被配置为运行与在整个公开中描述的所公开系统和相关实施例相关联的操作。此外,管理计算实体900可以驻留在所公开系统的任何适当部分中。特别地,内容组件可用于确定指示要通过本文描述的系统发送的数据(例如,视频、音频、文本、数据、其组合等)的信号。在另一个实施例中,用于传输的信号的确定可以例如基于对设备的用户输入、与系统相关联的网络上的数据传输的预定时间表、网络条件的变化等。在一个实施例中,信号可以包括数据可以被封装在数据帧和/或分组中,被配置为从设备发送到网络上的一个或多个设备。
在另一个实施例中,处理元件905可以用于确定与通过与所公开的系统相关联的网络发送的数据相关联的各种参数。作为另一示例,处理元件905可以用于执行各种加速操作,诸如分流功能的至少一部分、数据预处理或后处理、其组合等。
在一个实施例中,传输组件(未示出)可以用于将信号从一个设备传输到网络上的另一设备。例如,发送组件可用于准备发送器(例如,下面的图10的发送器1004)以通过网络发送信号。例如,发送组件可以在一个或多个缓冲器中排队数据,可以确定发送设备和相关的发送器是正常工作的并且有足够的功率通过网络发送信号,可以调整与数据传输相关联得一个或多个参数(例如,调制类型,与数据传输相关的信号放大,信号功率电平,噪声抑制,其组合等)。
通常,此处可互换使用的术语计算实体、计算机、实体、设备、系统和/或类似词语可以是指例如一台或多台计算机、计算实体、台式计算机、移动电话、平板电脑、平板手机、笔记本电脑、笔记本电脑、分布式系统、游戏机(例如Xbox、Play Station、Wii)、手表、眼镜、iBeacons、接近信标、遥控钥匙、射频识别(RFID)标签、耳机、扫描仪、电视、加密狗、相机、腕带、可穿戴物品/设备、信息亭、输入终端、服务器或服务器网络、刀片、网关、交换机、处理设备、处理实体、机顶盒、继电器、路由器、网络接入点、基站等和/或适用于执行此处描述的功能、操作和/或处理的设备或实体的任何组合。这样的功能、操作和/或处理可以包括例如传输、接收、操作、处理、显示、存储、确定、创建/生成、监控、评估、比较和/或本文可互换使用的类似术语。在一个实施例中,这些功能、操作和/或处理可以在数据、内容、信息和/或本文可互换使用的类似术语上执行。
如所指示的,在一个实施例中,管理计算实体900还可以包括一个或多个通信接口920,用于与各种计算实体通信,例如通过通信本文中互换使用的可以发送、接收、操作、处理、显示、存储等的数据、内容、信息和/或类似术语。例如,管理计算实体800可以与用户设备610和/或各种其他计算实体通信。
如图9所示,在一个实施例中,管理计算实体900可以包括一个或多个处理元件905(也称为处理器、处理电路和/或本文中互换使用的类似术语)或与之通信,这些处理元件905例如通过总线与管理计算实体900内的其他元件通信。如将理解的,处理元件905可以以多种不同方式体现。例如,处理元件905可以体现为一个或多个复杂可编程逻辑器件(CPLD)、微处理器、多核处理器、协处理实体、专用指令集处理器(ASIP)、微控制器和/或控制器。此外,处理元件905可以体现为一个或多个其他处理设备或电路。术语电路可以是指完全硬件实施例或硬件和计算机程序产品的组合。因此,处理元件905可以体现为集成电路、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、硬件加速器、其他电路等。因此将理解,处理元件905可被配置用于特定用途或被配置为执行存储在易失性或非易失性介质中或以其他方式可由处理元件905访问的指令。因此,无论是由硬件还是计算机程序产品,或者由它们的组合来配置,处理元件905在相应地配置时能够执行根据本公开的实施例的步骤或操作。
在一个实施例中,管理计算实体900还可以包括非易失性介质(也称为非易失性存储、存储器、存储器存储、存储电路和/或本文可互换使用的类似术语)或与之通信。在一个实施例中,非易失性存储或存储器可以包括一个或多个非易失性存储或存储介质910,包括但不限于硬盘、ROM、PROM、EPROM、EEPROM、闪存、MMC、SD存储卡、记忆棒、CBRAM、PRAM、FeRAM、NVRAM、MRAM、RRAM、SONOS、FJG RAM、千足虫内存、赛道存储器等。如将认识到的,非易失性存储或存储介质可以存储数据库、数据库实例、数据库管理系统、数据、应用程序、程序、程序组件、脚本、源代码、目标代码、字节代码、编译代码、解释代码、机器代码、可执行指令等。术语数据库、数据库实例、数据库管理系统和/或本文可互换使用的类似术语可以是指使用一个或多个数据库模型存储在计算机可读存储介质中的记录或数据的集合,诸如分层数据库模型、网络模型、关系模型、实体-关系模型、对象模型、文档模型、语义模型、图模型等。
在一个实施例中,管理计算实体900还可以包括易失性介质(也称为易失性存储器、存储器、存储器存储器、存储器电路和/或本文可互换使用的类似术语)或与之通信。在一个实施例中,易失性存储器或存储器还可以包括一个或多个易失性存储器或存储器介质915,包括但不限于RAM、DRAM、SRAM、FPM DRAM、EDO DRAM、SDRAM、DDR SDRAM、DDR2 SDRAM、DDR3 SDRAM、RDRAM、TTRAM、T-RAM、Z-RAM、RIMM、DIMM、SIMM、VRAM、高速缓冲存储器、寄存器存储器等。如将认识到的,易失性存储或存储介质可用于存储由例如处理元件905执行的数据库、数据库实例、数据库管理系统、数据、应用程序、程序、程序组件、脚本、源代码、目标代码、字节代码、编译代码、解释代码、机器代码、可执行指令等。因此,数据库、数据库实例、数据库管理系统、数据、应用程序、程序、程序组件、脚本、源代码、目标代码、字节代码、编译代码、解释代码、机器代码、可执行指令等可用于在处理元件905和操作系统的帮助下控制管理计算实体900的操作的某些方面。
如所指示的在一个实施例中,管理计算实体900还可以包括一个或多个通信接口920,用于与各种计算实体通信,诸如通过通信本文中互换使用的可以发送、接收、操作、处理、显示、存储等的数据、内容、信息和/或类似术语。这种通信可以使用有线数据传输协议来执行,诸如外围组件互连快速(PCIe)、光纤分布式数据接口(FDDI)、小型计算机系统接口(SCSI)、数字用户线(DSL)、以太网、异步传输模式(ATM)、帧中继、有线数据服务接口规范(DOCSIS)或任何其他有线传输协议。类似地,管理计算实体900可以被配置为通过无线外部通信网络使用多种协议中的任何一种进行通信,诸如通用分组无线电服务(GPRS)、通用移动电信系统(UMTS)、码分多址2000(CDMA2000)、CDMA2000 1X(1xRTT)、宽带码分多址(WCDMA)、时分同步码分多址(TD-SCDMA)、长期演进(LTE)、演进的通用陆地无线接入网(E-UTRAN)、演进数据优化(EVDO)、高速分组接入(HSPA)、高速下行链路分组接入(HSDPA)、IEEE802.11(Wi-Fi)、Wi-Fi Direct、802.16(WiMAX)、超宽带(UWB)、红外(IR)协议、近场通信(NFC)协议、ZigBee、蓝牙协议、5G协议、无线通用串行总线(USB)协议和/或任何其他无线协议。
尽管未示出,但管理计算实体900可包括一个或多个输入元件或与之通信,诸如键盘输入、鼠标输入、触摸屏/显示器输入、运动输入、移动输入、音频输入、定点设备输入、操纵杆输入、键盘输入等。管理计算实体900还可以包括一个或多个输出元件(未示出)或与之通信,诸如音频输出、视频输出、屏幕/显示输出、运动输出、移动输出等。
如将理解的,管理计算实体900的一个或多个组件可以位于远离其他管理计算实体900组件的位置,诸如在分布式系统中。此外,可以组合一个或多个组件,并且执行本文描述的功能的附加组件可以包括在管理计算实体800中。因此,管理计算实体900可以适合于适应各种需要和环境。如将认识到的,提供这些架构和描述仅用于示例目的并且不限于各种实施例。
用户可以是个人、家庭、公司、组织、实体、组织内的部门、组织和/或个人的代表等。在一个示例中,用户可以是雇员、居民、客户等。例如,用户可以操作用户设备810,包括功能类似于管理计算实体900的组件的一个或多个组件。
在各个方面,处理组件、发送组件和/或接收组件(未示出)可以被配置为在一个或多个设备上操作并且可以包括管理计算实体900的功能的各个方面,如在此结合图8和图9所示和所描述的。特别地,处理组件、发送组件和/或接收组件可以被配置为与一个或多个处理元件905、存储器910、易失性存储器915通信,并且可以包括通信接口920(例如,促进设备之间的通信)。
图10示出根据本公开的示例实施例的用户设备的示例示意图。图10提供了可以与本公开的实施例结合使用的用户设备1010(例如,主机设备、存储设备、外围设备等)的示意性示意图。通常,此处可互换使用的术语设备、系统、计算实体、实体和/或类似词语可以是指例如一台或多台计算机、计算实体、台式机、移动电话、平板电脑、平板手机、笔记本电脑、膝上型电脑、分布式系统、游戏机(例如Xbox、Play Station、Wii)、手表、眼镜、密钥卡、射频识别(RFID)标签、耳机、扫描仪、相机、腕带、信息亭、输入终端、服务器或服务器网络,刀片、网关、交换机、处理设备、处理实体、机顶盒、中继器、路由器、网络接入点、基站等和/或适用于执行本文描述的功能、操作和/或处理的设备或实体的任何组合。用户设备1010可以由各方操作。如图所示。如图10所示,用户设备1010可以包括天线1012、发送器1004(例如无线电)、接收器1006(例如无线电)和处理元件1008(例如CPLD、FPGA、微处理器、多核处理器、协处理实体、ASIP、微控制器和/或控制器)分别向发送器1004和接收器1006提供信号和从发送器1004和接收器1006接收信号。
分别提供给发送器1004和接收器1006和从发送器1004和接收器1006接收的信号可以包括根据适用无线系统的空中接口标准的信令信息。对此,用户设备1010可能能够以一种或多种空中接口标准、通信协议、调制类型和接入类型进行操作。更具体地,用户设备1010可以根据多种无线通信标准和协议中的任何一种来操作,诸如以上关于图8的管理计算实体800所描述的那些。在特定实施例中,用户设备1010可以根据多个无线通信标准和协议操作,诸如公开的IoT DOCSIS协议、UMTS、CDMA2000、1xRTT、WCDMA、TD-SCDMA、LTE、E-UTRAN、EVDO、HSPA、HSDPA、5G、Wi-Fi、Wi-FiDirect、WiMAX、UWB、IR、NFC、蓝牙、USB等。类似地,用户设备1010可以根据多种有线通信标准和协议进行操作,诸如上面关于管理计算实体800通过网络接口1020描述的那些。
通过这些通信标准和协议,用户设备1010可以使用诸如非结构化补充服务数据(USSD)、短消息服务(SMS)、多媒体消息服务(MMS)、双音多频信令(DTMF)和/或用户身份组件拨号器(SIM拨号器)等概念与各种其他实体进行通信。用户设备1010还可以例如将更改、附加组件和更新下载到其固件、软件(例如包括可执行指令、应用程序、程序组件)和操作系统。
根据一个实施例,用户设备1010可以包括位置确定方面、设备、组件、功能和/或在此可互换使用的类似词。位置确定方面可用于通知由管理计算实体使用的模型以及本文描述的模型和/或机器学习技术中的一个或多个。例如,用户设备1010可以包括户外定位方面,诸如适于获取例如纬度、经度、海拔、地理编码、路线、方向、航向、速度、世界时间(UTC)、日期和/或各种其他信息/数据。在一个实施例中,定位组件可以通过识别视野中的卫星数量和这些卫星的相对位置来获取数据,有时称为星历数据。卫星可以是各种不同的卫星,包括低地球轨道(LEO)卫星系统、国防部(DOD)卫星系统、欧盟伽利略定位系统、中国罗盘导航系统、印度区域导航卫星系统等。可选地,位置信息可以通过结合包括蜂窝塔、Wi-Fi接入点等的各种其他系统对用户设备1010的位置进行三角测量来确定。类似地,用户设备1010可以包括室内定位方面,诸如适于获取例如纬度、经度、海拔、地理编码、路线、方向、航向、速度、时间、日期和/或各种其他信息/数据的位置组件。一些室内系统可以使用各种定位或定位技术,包括RFID标签、室内信标或发送器、Wi-Fi接入点、蜂窝塔、附近的计算设备(例如智能手机、膝上型电脑)等。例如,这样的技术可以包括iBeacon、Gimbal接近信标、蓝牙低能量(BLE)发送器、NFC发送器等。这些室内定位方面可用于各种设置,以确定某人或某物在英寸或厘米以内的位置。
用户设备1010还可以包括用户接口(其可以包括耦合到处理元件1008的显示器1016)和/或用户输入接口(耦合到处理元件1008)。例如,用户界面可以是用户应用程序、浏览器、用户界面和/或本文中使用的类似文字,可在用户设备1010上互换执行和/或可通过用户设备1010访问,以与管理计算实体交互和/或导致显示来自管理计算实体的信息,如本文所述。用户输入接口可以包括允许用户设备1010接收数据的多个设备或接口中的任何一个,诸如键盘1018(硬的或软的)、触摸显示器、语音/话语或动作接口或其他输入设备。在包括小键盘1018的实施例中,小键盘1018可以包括(或导致显示)常规数字(0-9)和相关键(#、*),以及用于操作用户设备1010的其他键,并且可以包括完整的一组字母键或一组可以被激活以提供全套字母数字键的键。除了提供输入之外,用户输入界面还可用于例如激活或停用某些功能,诸如屏幕保护程序和/或睡眠模式。
用户设备1010还可以包括易失性存储器或存储器1022和/或非易失性存储器或存储器1024,它们可以是嵌入的和/或可以是可移除的。例如,非易失性存储器可以是ROM、PROM、EPROM、EEPROM、闪存、MMC、SD存储卡、记忆棒、CBRAM、PRAM、FeRAM、NVRAM、MRAM、RRAM、SONOS、FJG RAM、Millipede存储器、赛道存储器等。易失性存储器可以是RAM、DRAM、SRAM、FPM DRAM、EDO DRAM、SDRAM、DDR SDRAM、DDR2 SDRAM、DDR3 SDRAM、RDRAM、TTRAM、T-RAM、Z-RAM、RIMM、DIMM、SIMM、VRAM、高速缓存存储器、寄存器存储器等。易失性和非易失性存储器或存储器可以存储数据库、数据库实例、数据库管理系统、数据、应用程序、程序、程序组件、脚本、源代码、目标代码、字节代码、编译代码、解释代码、机器代码、可执行指令等来实现用户设备1010的功能。如所指出的,这可以包括驻留在实体上或通过浏览器或其他用户界面可访问的用户应用程序,用于与管理计算实体和/或各种其他计算实体通信。
在另一实施例中,用户设备1010可以包括与管理计算实体的组件或功能相同或相似的一个或多个组件或功能,如上文更详细描述的。如将认识到的,提供这些架构和描述仅用于示例目的并且不限于各种实施例。
某些实施例可以以硬件、固件和软件之一或它们的组合来实现。其他实施例也可以实现为存储在计算机可读存储设备上的指令,该指令可以由至少一个处理器读取和执行以执行本文所述的操作。计算机可读存储设备可以包括用于以机器(例如,计算机)可读的形式存储信息的任何非暂时性存储器机制。例如,计算机可读存储设备可以包括只读存储器(ROM)、随机存取存储器(RAM)、磁盘存储介质、光存储介质、闪存设备以及其他存储设备和介质。
“示例性”一词在此用于表示“作为示例、实例或说明”。在此描述为“示例性”的任何实施例不必被解释为比其他实施例更优选或有利。本文使用的术语“计算设备”、“用户设备”、“通信站”、“站”、“手持设备”、“移动设备”、“无线设备”和“用户设备”(UE)是指无线通信设备,诸如蜂窝电话、智能手机、平板电脑、上网本、无线终端、膝上型计算机、毫微微蜂窝基站、高数据速率(HDR)用户站、接入点、打印机、销售点设备、接入终端或其他个人通信系统(PCS)设备。设备可以是移动的或固定的。
如本文档中所使用的,术语“通信”旨在包括发送或接收,或发送和接收两者。当描述由一个设备发送并由另一个设备接收的数据的组织时,这在权利要求中可能特别有用,但仅需要这些设备之一的功能才能侵犯权利要求。类似地,两个设备之间的双向数据交换(在交换期间设备都发送和接收)可以被描述为“通信”,当仅声明其中一个设备的功能时。如本文所用的关于无线通信信号的术语“通信”包括发送无线通信信号和/或接收无线通信信号。例如,能够传送无线通信信号的无线通信单元可以包括将无线通信信号发送到至少一个其他无线通信单元的无线发送器,和/或从至少一个其他无线通信单元接收无线通信信号的无线通信接收器。
一些实施例可以与各种设备和系统结合使用,例如个人计算机(PC)、台式计算机、移动计算机、膝上型计算机、笔记本计算机、平板计算机、服务器计算机、手持计算机、手持设备、个人数字助理(PDA)设备、手持PDA设备、车载设备、非车载设备、混合设备、车辆设备、非车辆设备、移动或便携式设备、消费设备、非移动或非便携式设备、无线通信站、无线通信设备、无线接入点(AP)、有线或无线路由器、有线或无线调制解调器、视频设备、音频设备、音频-视频(A/V)设备、有线或无线网络、无线局域网、无线视频局域网(WVAN)、局域网(LAN)、无线局域网(WLAN)、个域网(PAN)、无线PAN(WPAN)等。
一些实施例可以与单向和/或双向无线电通信系统、蜂窝无线电话通信系统、移动电话、蜂窝电话、无线电话、个人通信系统(PCS)设备、结合无线通信设备的PDA设备、移动或便携式全球定位系统(GPS)设备、包含GPS接收器或收发器或芯片的设备、包含RFID元件或芯片的设备、多输入多输出(MIMO)收发器或设备、单输入多输出(SIMO)收发器或设备、多输入单输出(MISO)收发器或设备、具有一个或多个内部天线和/或外部天线的设备、数字视频广播(DVB)设备或系统、多标准无线电设备或系统、有线或无线手持设备,例如智能手机、无线应用协议(WAP)设备等。
一些实施例可以与一种或多种类型的无线通信信号和/或遵循一种或多种无线通信协议的系统结合使用,例如射频(RF)、红外(IR)、频分复用(FDM)、正交FDM(OFDM)、时分复用(TDM)、时分多址(TDMA)、扩展TDMA(E-TDMA)、通用分组无线业务(GPRS)、扩展GPRS、码分多址(CDMA),宽带CDMA(WCDMA)、CDMA 2000、单载波CDMA、多载波CDMA、多载波调制(MDM)、离散多音(DMT)、BluetoothTM、全球定位系统(GPS)、Wi-Fi、Wi-Max、ZigBeeTM、超宽带(UWB)、全球移动通信系统(GSM)、2G、2.5G、3G、3.5G、4G、第五代(5G)移动网络、3GPP、长期演进(LTE)、LTE高级、增强型GSM演进数据速率(EDGE)等。其他实施例可以用在各种其他设备、系统和/或网络中。
尽管上面已经描述了示例处理系统,但是本文描述的主题和功能操作的实施例可以在其他类型的数字电子电路中或者在计算机软件、固件或硬件中实现,包括在本说明书中公开的结构和它们的结构等同物,或它们的一种或多种的组合。
本文描述的主题和操作的实施例可以在数字电子电路中或在计算机软件、固件或硬件中实现,包括在本说明书中公开的结构及其结构等同物,或它们中的一个或多个的组合。本文描述的主题的实施例可以实现为一个或多个计算机程序,即,计算机程序指令的一个或多个组件,编码在计算机存储介质上以供信息/数据处理装置执行或控制其操作。可选地或另外地,程序指令可以在人工生成的传播信号上编码,例如机器生成的电、光或电磁信号,其被生成以编码信息/数据以传输到合适的接收器装置以通过信息/数据处理设备执行。计算机存储介质可以是或包含在计算机可读存储设备、计算机可读存储基板、随机或串行存取存储器阵列或设备、或它们中的一个或多个的组合中。此外,虽然计算机存储介质不是传播信号,但计算机存储介质可以是编码在人工生成的传播信号中的计算机程序指令的源或目的地。计算机存储介质也可以是或包括在一个或多个单独的物理组件或介质(例如多个CD、磁盘或其他存储设备)中。
本文描述的操作可以被实现为由信息/数据处理装置对存储在一个或多个计算机可读存储设备上或从其他源接收的信息/数据执行的操作。
术语“数据处理装置”涵盖用于处理数据的所有种类的装置、设备和机器,包括例如可编程处理器、计算机、片上系统或前述的多个或组合。装置可以包括专用逻辑电路,例如FPGA(现场可编程门阵列)或ASIC(专用集成电路)。除了硬件之外,装置还可以包括为所讨论的计算机程序创建执行环境的代码,例如,构成处理器固件、协议栈、数据库管理系统、操作系统、跨平台运行环境、虚拟机或其一种或多种的组合的代码。装置和执行环境可以实现各种不同的计算模型基础设施,诸如web服务、分布式计算和网格计算基础设施。
计算机程序(也称为程序、软件、软件应用程序、脚本或代码)可以用任何形式的编程语言编写,包括编译或解释语言、声明性或过程性语言,并且可以以任何形式部署,包括作为独立程序或作为组件、组件、子程序、对象或其他适合在计算环境中使用的单元。计算机程序可以但不必对应于文件系统中的文件。程序可以存储在文件的一部分中,该文件包含其他程序或信息/数据(例如,存储在标记语言文档中的一个或多个脚本),存储在专用于所讨论程序的单个文件,或存储在多个协调文件(例如存储一个或多个组件、子程序或部分代码的文件)。可以部署计算机程序以在一台计算机或位于一个站点或分布在多个站点并通过通信网络互连的多台计算机上执行。
本文描述的处理和逻辑流程可以由一个或多个可编程处理器执行,一个或多个可编程处理器执行一个或多个计算机程序以通过对输入信息/数据进行操作并生成输出来执行动作。适合于执行计算机程序的处理器包括,例如,通用和专用微处理器,以及任何类型的数字计算机的任何一个或多个处理器。通常,处理器将从只读存储器或随机存取存储器或两者接收指令和信息/数据。计算机的基本元件是用于根据指令执行动作的处理器以及用于存储指令和数据的一个或多个存储器设备。通常,计算机还将包括或可操作地耦合以从一个或多个用于存储数据的大容量存储设备(例如,磁、磁光盘或光盘)接收数据或将数据传输到一个或多个大容量存储设备或两者。然而,计算机不必具有此类设备。适用于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、介质和存储设备,包括例如半导体存储设备,例如,EPROM、EEPROM和闪存设备;磁盘,例如,内部硬盘或可移动磁盘;磁光盘;以及CD-ROM和DVD-ROM磁盘。处理器和存储器可以由专用逻辑电路补充或合并到专用逻辑电路中。
为了提供与用户的交互,可以在具有用于向用户显示信息的显示设备(例如,CRT(阴极射线管)或LCD(液晶显示器)监视器)以及键盘和指示设备(例如,鼠标或轨迹球,用户可通过其向计算机提供输入)的计算机上实现本说明书中描述的主题的实施例。其他种类的设备也可以用于提供与用户的交互,例如,提供给用户的反馈可以是任何形式的感觉反馈,例如,视觉反馈、听觉反馈或触觉反馈;并且可以以任何形式接收来自用户的输入,包括声音、语音或触觉输入。另外,计算机可以通过向用户使用的设备发送文档和从用户使用的设备接收文档来与用户进行交互,例如,通过响应从网络浏览器收的请求,将网页发送到用户设备上的网络浏览器。此外,计算机可以通过向用户使用的设备发送文档和从其接收文档来与用户交互;响应于从web浏览器接收的请求,例如通过将网页发送到用户客户端设备上的web浏览器。
本说明书中描述的主题的实施例可以实现在包括后端组件(例如,作为数据服务器)或包括中间件组件(例如,应用服务器)或包括前端组件(例如,具有图形用户界面或Web浏览器的客户端计算机,用户可以通过图形用户界面或Web浏览器与本说明书中描述的主题的实现进行交互)或者包括一个或多个这种后端组件,中间件组件或前端组件的任意组合的计算系统中。系统的组件可以通过数字数据通信的任何形式或介质(例如,通信网络)互连。通信网络的示例包括局域网(“LAN”)和广域网(“WAN”),互联网络(例如互联网)和点对点网络(例如ad hoc点对点网络)。
计算系统可以包括客户端和服务器。客户端和服务器通常彼此远离,并且通常通过通信网络进行交互。客户端和服务器之间的关系通过在各自计算机上运行并彼此具有客户端-服务器关系的计算机程序产生。在一些实施例中,服务器将信息/数据(例如HTML页面)发送到客户端设备(例如,为了向与客户端设备交互的用户显示信息/数据以及从用户接收用户输入)。在客户端设备处生成的信息/数据(例如用户交互的结果)可以在服务器处从客户端设备接收。
尽管本说明书包含许多特定实现细节,但是这些细节不应被解释为对任何发明或可要求保护的范围的限制,而应解释为对特定发明的特定实施例而言特定的特征的描述。在单独的实施例的上下文中在本说明书中描述的特定特征也可以在单个实施例中组合实现。相反,在单个实施例的上下文中描述的各种特征也可以分别在多个实施例中或以任何合适的子组合来实现。此外,尽管上面可以将特征描述为以特定组合起作用并且甚至最初如此宣称,但是在某些情况下,可以从组合中删除所要求保护的组合中的一个或多个特征,并且可以将所要求保护的组合用于子组合或子组合的变型。
类似地,尽管在附图中以特定顺序描绘了操作,但是这不应理解为要求以所示的特定顺序或以连续的顺序执行这样的操作,或者执行所有示出的操作以实现期望的结果。在特定情况下,多任务和并行处理可能是有利的。此外,上述实施例中的各种系统模块和组件的分离不应被理解为在所有实施例中都需要这种分离,并且应当理解,所描述的程序组件和系统通常可以一起集成在单个软件产品或打包成多个软件产品。
因此,已经描述了主题的特定实施例。其他实施例在所附权利要求的范围内。在一些情况下,权利要求中记载的动作可以以不同的顺序执行并且仍然实现期望的结果。另外,附图中描绘的处理不一定需要所示的特定顺序或连续顺序来实现期望的结果。在特定实施例中,多任务和并行处理可能是有利的。
受益于前述描述和相关附图中呈现的教导的本领域技术人员将想到本文阐述的本公开的许多修改和其他实施例。因此,应当理解,实施例不限于所公开的具体实施例,并且修改和其他实施例旨在包括在所附权利要求的范围内。尽管在此使用了特定的术语,但它们仅用于一般性和描述性的意义,而不是为了限制的目的。
Claims (20)
1.一种管理存储设备的存储器的方法,包括:
从主机接收管理存储器的命令;
通过存储设备经由存储设备中的至少一个处理元件对存储在存储器中的第一数据执行命令,以生成第二数据;以及
通过存储设备将基于第二数据的第三数据发送给主机。
2.根据权利要求1所述的方法,其中,命令包括将第一数据的至少一部分设置为预定比特的操作,并且第三数据包括完成指示。
3.根据权利要求1所述的方法,其中,存储器包括位于存储设备内的易失性存储器或非易失性存储器,并且所述方法还包括虚拟化易失性存储器或非易失性存储器。
4.根据权利要求3所述的方法,其中,所述方法包括:经由与易失性存储器相关联的虚拟地址与主机通信。
5.根据权利要求3所述的方法,其中,所述方法还包括:将虚拟化存储器的一部分专用于第一操作或第一持续时间。
6.根据权利要求1所述的方法,其中,命令包括由主机上的应用生成并经由应用程序接口(API)接收的命令。
7.根据权利要求1所述的方法,其中,存储设备包括启用非易失性存储器快速(NVMe)的存储设备或启用结构上NVMe(NVMe-oF)的存储设备。
8.一种管理功能的系统,包括:
主机,包括应用;
存储设备,包括处理元件和存储器;
其中,系统存储计算机可执行指令,所述指令在由处理器执行时使处理器执行操作,包括:
从主机上的应用接收管理存储器的命令;
通过存储设备经由存储设备中的至少一个处理元件对存储在存储器中的第一数据执行命令,以生成第二数据;以及
通过存储设备将基于第二数据的第三数据发送给主机。
9.根据权利要求8所述的系统,其中,命令包括将第一数据的至少一部分设置为预定比特的操作,并且第三数据包括完成指示。
10.根据权利要求8所述的系统,其中,存储器包括位于存储设备内的易失性存储器或非易失性存储器,并且所述操作还包括虚拟化易失性存储器或非易失性存储器。
11.根据权利要求10所述的系统,其中,所述操作还包括:经由与易失性存储器相关联的虚拟地址与主机进行通信。
12.根据权利要求10所述的系统,其中,所述操作还包括:将虚拟化存储器的一部分专用于第一操作或第一持续时间。
13.根据权利要求8所述的系统,其中,命令包括由主机上的应用生成并经由应用程序接口(API)接收的命令。
14.根据权利要求8所述的系统,其中,存储设备包括启用非易失性存储器快速(NVMe)的存储设备或启用结构上NVMe(NVMe-oF)的存储设备。
15.一种存储指令的非暂时性计算机可读介质,当指令由计算机运行时,使计算机执行用于管理存储设备的存储器的操作,所述操作包括:
从主机接收管理存储器的命令;
通过存储设备经由存储设备中的至少一个处理元件对存储在存储器中的第一数据执行命令,以生成第二数据;以及
通过存储设备将基于第二数据的第三数据发送给主机。
16.根据权利要求15所述的非暂时性计算机可读介质,其中,命令包括将第一数据的至少一部分设置为预定比特的操作,并且第三数据包括完成指示。
17.根据权利要求15所述的非暂时性计算机可读介质,其中,存储器包括位于存储设备内的易失性存储器或非易失性存储器,并且所述操作还包括虚拟化易失性存储器或非易失性存储器。
18.根据权利要求17所述的非暂时性计算机可读介质,其中,所述操作还包括:经由与易失性存储器相关联的虚拟地址与主机通信。
19.根据权利要求17所述的非暂时性计算机可读介质,其中,所述操作还包括:将虚拟化存储器的一部分专用于第一操作或第一持续时间。
20.根据权利要求15所述的非暂时性计算机可读介质,其中,命令包括由主机上的应用生成并经由应用程序接口(API)接收的命令。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202163229067P | 2021-08-03 | 2021-08-03 | |
US63/229,067 | 2021-08-03 | ||
US17/855,753 US20230042551A1 (en) | 2021-08-03 | 2022-06-30 | Systems, methods, and apparatus for the management of device local memory |
US17/855,753 | 2022-06-30 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115705151A true CN115705151A (zh) | 2023-02-17 |
Family
ID=82656782
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210926086.5A Pending CN115705151A (zh) | 2021-08-03 | 2022-08-03 | 用于管理设备本地存储器的系统、方法和装置 |
Country Status (5)
Country | Link |
---|---|
US (1) | US20230042551A1 (zh) |
EP (1) | EP4130971A1 (zh) |
KR (1) | KR20230020352A (zh) |
CN (1) | CN115705151A (zh) |
TW (1) | TW202324072A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116204137A (zh) * | 2023-05-04 | 2023-06-02 | 苏州浪潮智能科技有限公司 | 基于dpu的分布式存储系统、控制方法、装置及设备 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9152505B1 (en) * | 2012-03-29 | 2015-10-06 | Amazon Technologies, Inc. | Verified hardware-based erasure of data on distributed systems |
US9501222B2 (en) * | 2014-05-09 | 2016-11-22 | Micron Technology, Inc. | Protection zones in virtualized physical addresses for reconfigurable memory systems using a memory abstraction |
US10437476B2 (en) * | 2017-10-23 | 2019-10-08 | Micron Technology, Inc. | Namespaces allocation in non-volatile memory devices |
US20220188028A1 (en) * | 2019-03-12 | 2022-06-16 | Intel Corporation | Computational data storage systems |
-
2022
- 2022-06-30 US US17/855,753 patent/US20230042551A1/en active Pending
- 2022-07-20 EP EP22185922.6A patent/EP4130971A1/en active Pending
- 2022-07-25 TW TW111127671A patent/TW202324072A/zh unknown
- 2022-07-28 KR KR1020220093960A patent/KR20230020352A/ko unknown
- 2022-08-03 CN CN202210926086.5A patent/CN115705151A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116204137A (zh) * | 2023-05-04 | 2023-06-02 | 苏州浪潮智能科技有限公司 | 基于dpu的分布式存储系统、控制方法、装置及设备 |
CN116204137B (zh) * | 2023-05-04 | 2023-08-04 | 苏州浪潮智能科技有限公司 | 基于dpu的分布式存储系统、控制方法、装置及设备 |
Also Published As
Publication number | Publication date |
---|---|
US20230042551A1 (en) | 2023-02-09 |
KR20230020352A (ko) | 2023-02-10 |
TW202324072A (zh) | 2023-06-16 |
EP4130971A1 (en) | 2023-02-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20210397577A1 (en) | Systems and methods for communications within a storage chassis | |
US20210374056A1 (en) | Systems and methods for scalable and coherent memory devices | |
EP2989536B1 (en) | Management of access to a hybrid drive in power saving mode | |
US20220236902A1 (en) | Systems and methods for data transfer for computational storage devices | |
EP4086747A1 (en) | Systems, methods, and apparatus for computational storage functions | |
CN113126910A (zh) | 存储设备及其操作方法 | |
CN113553170A (zh) | 用于资源分配的系统、方法和装置 | |
US20230042551A1 (en) | Systems, methods, and apparatus for the management of device local memory | |
CN114816235A (zh) | 用于计算存储设备的数据传递的系统和方法 | |
EP4350500A1 (en) | Systems, methods, and apparatus for transferring programs for computational storage devices | |
US20240176750A1 (en) | Systems, methods, and apparatus for memory protection for computational storage devices | |
US20230289084A1 (en) | Systems and methods for checking data alignment between applications, file systems, and computational storage devices | |
CN118114317A (zh) | 电子系统以及用于管理存储器的方法和装置 | |
CN117908770A (zh) | 用于传送计算存储设备的程序的系统、方法和装置 | |
KR20240081422A (ko) | 연산 스토리지 장치의 메모리 보호를 위한 시스템, 방법 및 장치 | |
EP4155895A1 (en) | Systems and methods for near-storage processing in solid state drives | |
CN116737063A (zh) | 用于存储器管理的方法和装置 | |
US20150039659A1 (en) | Data location management agent using remote storage | |
US20200081853A1 (en) | Hybrid memory system interface |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |