CN115858031A - 用于计算卸载的系统和方法 - Google Patents
用于计算卸载的系统和方法 Download PDFInfo
- Publication number
- CN115858031A CN115858031A CN202211151910.0A CN202211151910A CN115858031A CN 115858031 A CN115858031 A CN 115858031A CN 202211151910 A CN202211151910 A CN 202211151910A CN 115858031 A CN115858031 A CN 115858031A
- Authority
- CN
- China
- Prior art keywords
- processing element
- data
- memory
- storage device
- computer
- 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/0629—Configuration or reconfiguration of storage systems
- G06F3/0635—Configuration or reconfiguration of storage systems by changing the path, e.g. traffic rerouting, path reconfiguration
-
- 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/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0625—Power saving in storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0634—Configuration or reconfiguration of storage systems by changing the state or mode of one or more devices
-
- 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
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)
- Computer Networks & Wireless Communication (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Signal Processing For Digital Recording And Reproducing (AREA)
- Hardware Redundancy (AREA)
Abstract
提供了用于计算卸载的系统和方法。所述方法可包括:第一处理元件将第一请求发出到存储装置;响应于第一请求,存储装置获得在存储装置上的第一数据,并且将第一数据提供给第二处理元件的第一存储器以进行存储;第二处理元件从第一存储器读取第一数据,并且对第一数据执行操作和计算中的至少一个以生成第二数据;以及第二处理元件将第二数据提供给第一处理元件。
Description
技术领域
公开总体涉及近存储处理,并且更具体地涉及用于计算卸载的系统和方法。
背景技术
本背景技术部分意在仅提供上下文,并且本部分中的任何构思的公开不构成对所述构思是现有技术的承认。
计算存储装置可包括可对存储在装置内的数据进行操作的一个或多个处理资源。主机可将处理任务卸载到存储装置,例如,通过将用户程序和/或用户程序的输入数据发送到装置。一个或多个处理资源可执行用户程序,并且将输出数据从用户程序发送到主机。
在该背景技术部分中公开的上面的信息仅用于强化理解公开的背景技术,因此可包含不构成现有技术的信息。
发明内容
在各个实施例中,在此描述的包括用于将操作和/或计算卸载到与处理元件相关联的存储装置(诸如,固态驱动器(SSD))的系统、方法和设备。
在各个实施例中,一种系统被公开。所述系统可包括:存储装置,与第一处理元件和第二处理元件通信;第二处理元件包括第一存储器,第一存储器经由第一连接连接到存储装置。第一处理元件可将第一请求发出到存储装置;响应于第一请求,存储装置可获得存储装置上的第一数据,并且将第一数据提供给第一存储器以进行存储;第二处理元件可从第一存储器读取第一数据,并且对第一数据执行操作或计算中的至少一个以生成第二数据;并且第二处理元件可将第二数据提供给第一处理元件。
在一个实施例中,第一处理元件将元数据提供给第二处理元件,元数据与所述计算相关联。在另一实施例中,元数据包括第一存储器上的第一数据的位置。在一个实施例中,存储装置包括固态驱动器,并且第一存储器包括动态随机存取存储器(DRAM)。在一个实施例中,第一处理元件包括主机装置的中央处理器。在一些实施例中,第二处理元件包括现场可编程门阵列(FPGA)、复杂可编程逻辑器件(CPLD)、专用集成电路(ASIC)或协同处理器中的至少一个,并且第一连接包括对等(P2P)连接。在一个实施例中,与第一存储器相关联的块大小可由与第一处理元件相关联的应用来设置。在另一个实施例中,第二处理元件经由交换机与存储装置通信。在一个实施例中,交换机包括外围组件互连快速(PCIe)交换机。在一个实施例中,第一存储器包括能够由第一处理元件访问并且能够由第二处理元件访问的第一部分,并且可用于将第二数据提供给第一处理元件。
相似地,用于执行与上面描述的基本相同或相似的操作的非暂时性计算机可读介质、装置和系统被进一步公开。
因此,在此描述的主题的特定实施例可被实现,以便实现以下优点中的一个或多个。公开的系统可为处理元件和存储组件提供高速缓存能力,并且因此允许用具有处理元件的固态驱动器来加速应用。例如,公开的系统可使用FPGA DRAM作为高速缓存,以使对存储装置的数据访问最小化。高速缓存可由至少部分驻留在主机上的一个或多个软件模块管理,并且可基于应用的需要被定制。FPGA上的内核可接收由主机装置上的中央处理器(CPU)提供的元数据,以在主机装置的DRAM上定位数据或者在DRAM周围移动数据。虽然高速缓存策略可在主机侧被改变,但是不需要改变FPGA上的内核,从而避免FPGA重新编译。
附图说明
当鉴于以下附图阅读本申请时,将更好地理解本技术的上面提到的方面和其他方面,在附图中,相同的标号指示相似或相同的元件。此外,在此提供的附图仅出于说明特定实施例的目的;可能未被明确示出的其他实施例不被排除在本公开的范围之外。
参照说明书、权利要求书和所附附图,将领会和理解本公开的这些以及其他特征和优点,其中:
图1示出了根据公开的示例实施例的表示不同的存储器类型以及相应的延迟和容量的示例图。
图2示出了根据公开的示例实施例的与主机处理(例如,中央处理器CPU)通信的存储装置的示例内部架构的示图。
图3描绘了根据公开的示例实施例的与公开的系统相关联的另一示例架构。
图4描绘了根据公开的示例实施例的与上面结合图3示出和描述的示例架构的示例操作相关联的示例流程的示图。
图5描绘了根据公开的示例实施例的与公开的系统相关联的另一示例架构。
图6示出了根据公开的示例实施例的示出与公开的系统相关联的各种操作的示例流程。
图7示出了根据公开的示例实施例的示出与公开的系统相关联的各种操作的另一示例流程。
图8示出了根据公开的示例实施例的在主机与存储装置之间发送的示例元数据的示图。
图9示出了根据公开的示例实施例的表示高速缓存设计的概述的第一示图。
图10示出了根据公开的示例实施例的具有针对不同的批(batch)大小(例如,批大小1和批大小8)的处理元件(例如,现场可编程门阵列,FPGA)的固态驱动器上的不同模型的执行时间的示例。
图11是示出根据公开的示例实施例的与公开的系统相关联的示例操作的另一示例性操作流程的说明。
图12示出了可用于实践本公开的实施例的系统的示例示意性示图。
图13示出了根据公开的示例实施例的管理计算实体的示例示意性示图。
图14示出了根据公开的示例实施例的用户装置的示例示意性示图。
虽然本技术容许各种修改和替代形式,但是本技术的具体实施例在附图中以示例的方式被示出并且将在此被描述。附图可不按比例。然而,应理解,附图和对其的详细描述不意在将本技术限制于公开的特定形式,而是相反,意在覆盖落入由所附权利要求限定的本技术的精神和范围内的所有修改、等同物和替代物。
具体实施方式
在附图和下面的描述中阐述了在此描述的主题的一个或多个实施例的细节。根据描述、附图和权利要求书,主题的其他特征、方面和优点将变得清楚。
现在将在下文中参照附图更全面地描述本公开的各种实施例,其中,一些实施例但不是所有实施例被示出。实际上,公开可以以许多不同的形式实现,并且不应被解释为限于在此阐述的实施例;而是,这些实施例被提供使得本公开将满足适用的法律要求。除非另外指示,否则术语“或”在此以替代含义和连接含义两者被使用。术语“说明性”和“示例”用于示例而不指示质量水平。相同的标号始终表示相同的元件。每个附图中的箭头描绘了双向数据流和/或双向数据流能力。术语“路径”、“通路”和“路线”在此可互换使用。
本公开的实施例可以以各种方式实现,包括作为包含制品的计算机程序产品。计算机程序产品可包括存储应用、程序、程序组件、脚本、源代码、程序代码、目标代码、字节代码、编译代码、解释代码、机器代码、可执行指令等(在此也被称为可执行指令、用于执行的指令、计算机程序产品、程序代码和/或在此可互换使用的相似术语)的非暂时性计算机可读存储介质。这样的非暂时性计算机可读存储介质包括所有计算机可读介质(包括易失性介质和非易失性介质)。
在一个实施例中,非易失性计算机可读存储介质可包括软盘、柔性盘、硬盘、固态存储设备(SSS)(例如,固态驱动器(SSD))、固态卡(SSC)、固态模块(SSM))、企业闪存驱动器、磁带或任何其他非暂时性磁介质等。非易失性计算机可读存储介质还可包括穿孔卡、纸带、光学标记片(或具有孔图案或其他光学可识别标记的任何其他物理介质)、光盘只读存储器(CD-ROM)、可重写光盘(CD-RW)、数字通用光盘(DVD)、蓝光盘(BD)、任何其他非暂时性光学介质等。这样的非易失性计算机可读存储介质还可包括只读存储器(ROM)、可编程只读存储器(PROM)、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)、闪存(例如,串行、NAND(与非)、NOR(或非)等)、多媒体存储卡(MMC)、安全数字(SD)存储卡、智能媒体卡、紧凑型闪存(CF)卡、记忆棒等。此外,非易失性计算机可读存储介质还可包括导电桥接随机存取存储器(CBRAM)、相变随机存取存储器(PRAM)、铁电随机存取存储器(FeRAM)、非易失性随机存取存储器(NVRAM)、磁阻式随机存取存储器(MRAM)、电阻式随机存取存储器(RRAM)、硅-氧化物-氮化物-氧化物-硅存储器(SONOS)、浮动结栅随机存取存储器(FJG RAM)、千足虫(Millipede)存储器、赛道存储器等。
在一个实施例中,易失性计算机可读存储介质可包括随机存取存储器(RAM)、动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)、快速页模式动态随机存取存储器(FPM DRAM)、扩展数据输出动态随机存取存储器(EDO DRAM)、同步动态随机存取存储器(SDRAM)、双倍数据速率同步动态随机存取存储器(DDR SDRAM)、第二代双倍数据速率型同步动态随机存取存储器(DDR2 SDRAM)、第三代双倍数据速率型同步动态随机存取存储器(DDR3 SDRAM)、兰巴斯(Rambus)动态随机存取存储器(RDRAM)、双晶体管RAM(TTRAM)、晶闸管RAM(T-RAM)、零电容器(Z-RAM)、兰巴斯直插式存储器组件(RIMM)、双列直插式存储器组件(DIMM)、单列直插式存储器组件(SIMM)、视频随机存取存储器(VRAM)、高速缓存存储器(包括各种级)、闪存、寄存器存储器等。将理解,在实施例被描述为使用计算机可读存储介质的情况下,除了上面描述的计算机可读存储介质之外,其他类型的计算机可读存储介质可被替代或使用。
应理解,本公开的各种实施例还可被实现为方法、设备、系统、计算装置、计算实体等。这样,本公开的实施例可采取执行存储在计算机可读存储介质上的指令以执行特定步骤或操作的设备、系统、计算装置、计算实体等的形式。因此,本公开的实施例还可采取完全硬件实施例、完全计算机程序产品实施例和/或包括执行特定步骤或操作的计算机程序产品和硬件的组合的实施例的形式。
下面参照框图和流程图说明描述本公开的实施例。因此,应理解,框图和流程图说明的每个框可以以计算机程序产品、完全硬件实施例、硬件和计算机程序产品的组合、和/或在用于执行的计算机可读存储介质上执行指令、操作、步骤和可互换使用的相似词(例如,可执行指令、用于执行的指令、程序代码等)的设备、系统、计算装置、计算实体等的形式实现。例如,代码的取得、加载和执行可被顺序地执行,使得一个指令被取得、加载和执行一次。在一些示例实施例中,取得、加载和/或执行可被并行地执行,使得多个指令被一起取得、加载和/或执行。因此,这样的实施例可产生执行框图和流程图说明中指定的步骤或操作的专门配置的机器。因此,框图和流程图说明支持用于执行指定指令、操作或步骤的实施例的各种组合。
各种基于机器学习的应用(诸如,基于深度学习的推荐系统)被部署在许多互联网服务(包括,社交媒体、娱乐服务和搜索引擎)中,以向用户提供最相关和个性化的内容。生产规模的神经模型由有数十亿个参数的大型嵌入表组成。基于DRAM的推荐系统可强制实行高基础建设成本并限制部署模型的大小。基于固态驱动器(SSD)的推荐系统提供更大的存储,并且是基于DRAM的解决方案的有希望的替代方案。
在一些方面,将计算卸载到处理元件(诸如,存储装置(诸如,固态驱动器(SSD))上的FPGA)可有效地减少存储设备与主机之间的数据流量。另外,与未卸载的情况或硬件是通用处理器的情况相比,用定制硬件(例如,编程的FPGA电路)执行卸载计算的至少一部分可提供增加的能量效率和性能。在许多情况下,部署在固态驱动器上的应用可包括具有相对规则和可预测的存储器访问模式(诸如,压缩和/或数据库查询等)的应用。然而,(例如,由于与存储器(例如,动态随机存取存储器,DRAM)和FPGA上的片上存储器相比的SSD的更高的访问延迟)针对具有更不规则和不可预测的存储器访问模式的应用(诸如,神经推荐系统),系统性能可被降低。
在各种方面,本公开的实施例总体指向寻址具有不规则存储器访问模式的应用,如上所述,并且可允许应用(诸如,神经推荐系统)受益于固态驱动器上的近存储计算。具体地,公开的系统可使用不同的存储器组件(例如,DRAM和/或FPGA的片上存储器),并且使用这样的存储器组件作为高速缓存,以便通过使用将被处理的数据的空间和时间位置来使对SSD的访问频率最小化。在其他方面,软件(例如,至少部分地存储在主机上的软件)可用于为固态驱动器中的FPGA上的内核管理高速缓存(例如,可包括双端口RAM模块的DRAM和块RAM(BRAM)被实例化到FPGA结构,以为相对大的数据集提供片上存储)。另外,公开的系统包括一组允许主机的处理器(例如,CPU)将信息通信到FPGA上的内核的元数据。在一些方面,根据需要,内核可被配置为在从全局存储器读取数据的同时执行计算。内核将数据写回到全局存储器,并且可通知主机内核已经完成内核的任务。
在各个方面,在数据主要驻留在SSD上时,主机处理器和存储装置处理元件(例如,与处理元件(诸如,FPGA)相关联的CPU)可经由允许处理元件(例如,SSD中的FPGA)上的内核利用处理元件的DRAM和片上存储器作为高速缓存的缓存技术进行通信。在其他方面,高速缓存可由CPU上的软件管理,因此一个或多个高速缓存策略可例如基于应用需求和数据剖析结果而被定制(例如,由用户和/或应用定制)。在其他方面,硬件(例如,处理元件(诸如,FPGA))可不具有访问或可具有对系统上使用的高速缓存策略的有限访问,因此当高速缓存策略正被改变时,硬件可保持正常操作。在各个方面,公开的系统可为具有相对高的存储要求和不规则和随机存储器访问模式的应用提供机制,以便以相对高的效率使用固态驱动器来进行计算卸载。如所指出的,一个这样的应用包括神经推荐系统,其中在这样的模型中使用的嵌入表的大小可达到相对大量的存储器(例如,千兆字节的存储器),而对嵌入表的访问可以是至少部分随机的。在一些方面,这样的嵌入表可类似于查找表,其中针对给定输入(例如,词或任何类别标签),查找表中的对应条目可被返回。应理解,公开的系统可结合各种不同的应用(例如,各种机器学习应用和模型)而不仅是神经推荐系统来使用。
如所指出的,公开的系统和方法为处理元件和存储组件提供高速缓存能力,因此允许用具有处理元件的固态驱动器来加速应用。例如,公开的系统可使用FPGA DRAM作为高速缓存以使对存储装置的数据访问最小化。高速缓存可由至少部分驻留在主机上的一个或多个软件模块管理,并且可基于应用的需要被定制。FPGA上的内核可接收由CPU提供的元数据,以在主机装置的DRAM上定位数据或在DRAM周围移动数据。虽然高速缓存策略可在主机侧被改变,但是不需要改变FPGA上的内核,从而避免FPGA重新编译。
在一些方面,FPGA DRAM可被划分为两个区域,(1)用于对等(peer topeer)数据的包括从SSD获取的数据的第一部分(2)用作高速缓存以存储先前从SSD获取的一些页的第二部分。此外,FPGA上的内核可在两个区域中的一个中确定FPGA请求的数据。此外,用于每个访问的地址和位置可由主机CPU经由元数据的发送而被提供给FPGA上的内核。
在一些方面,元数据可包括可由存储装置上的处理元件(例如,FPGA)使用的存储器(例如,DRAM)中的特定数据的位置。元数据可由主机处理器(例如,主机CPU)生成。在一些方面,元数据可包括设计参数,该设计参数可取决于如何在P2P区域与高速缓存区域之间划分总DRAM容量。高速缓存中的块的粒度(granularity)可以是设计参数,并且可基于应用的需要而被设置。在可导致较高的DRAM丢失率时,较大的块大小减少了CPU中的高速缓存管理的开销。CPU侧的软件高速缓存管理可与FPGA上的内核计算重叠,因此不影响总延迟。
图1示出了根据公开的示例实施例的表示不同的存储器类型和相应的延迟和容量的示例图。在一些方面,示图100示出了包括FPGA上的计算引擎102、查找表(LUT)104、BRAM106、DRAM 108和SSD 110的存储器层级(memory hierarchy),FPGA上的计算引擎102、查找表(LUT)104、BRAM 106、DRAM 108和SSD 110以从上到下更高容量101和更高延迟103的次序被组织。换言之,LUT 104可具有比BRAM 106更低的容量和更低的延迟,BRAM 106又可具有比DRAM 108更低的容量和更低的延迟。因此,公开的系统可利用FPGA上的计算引擎102(或存储装置的其他处理元件),并且使用任何示出的存储器元件(或为简洁起见未示出的相似元件),以便实现如在此各种描述的用于给定卸载计算的最低延迟(或相似的性能度量)。
图2示出了根据公开的示例实施例的与主机处理器(例如,中央处理器CPU)通信的存储装置的示例内部架构的示图。在一些示例中,存储装置(例如,智能SSD)202可包括固态驱动器,并且可包括NAND阵列(也称为存储组件)(例如,NAND)204、SSD控制器206、处理元件(诸如,FPGA 212)的和FGPA DRAM模块210。FPGA 212可经由交换机208(例如,PCIe交换机208)与存储组件204通信(称为对等(P2P)数据传送),并且FPGA 212可促进近存储计算。P2P数据传送可减少或消除SSD到CPU(主机)201之间和从CPU 201到FPGA 212的不必要的往返流量。
存储装置202上的FPGA DRAM 210可以能够FPGA 212访问。在一些示例中,FPGADRAM 210中可存在称为公共存储器区域(CMA)(未示出)的可以能够FPGA 212和CPU(主机)201两者访问的存储器的特定区域。该CMA区域可用于在存储组件204与FPGA 212之间直接传送数据。虽然CPU主机201不参与用对等传送从存储装置202到FPGA 212的数据移动,但是CPU主机201可发起数据传送。此外,主机201和存储装置202上的FPGA 212可通过将CMA区域映射到主机201的地址空间来进行通信。存储装置202还可支持用于执行各种操作的任何合适的编程模型(例如,OpenCL编程模型)和任何合适的API(例如,OpenCL API),各种操作包括但不限于内核启动、存储器分配、数据传送等。此外,计算可被完全或部分地卸载到存储装置202上的FPGA 212。另外,由FPGA 212执行的计算的结果可被直接写回到存储装置202或能够由CPU 201访问的主存储器(未示出)。
在各个方面,包括存储装置和交换机(例如,PCIe交换机208)的公开的系统可被配置为使用任何合适的存储协议进行操作,存储协议包括任何合适的互连,和/或存储协议包括外围组件互连快速(PCIe)、NVMe、基于结构的NVMe(NVMe-oF)、以太网、传输控制协议/互联网协议(TCP/IP)、远程直接存储器访问(RDMA)、基于融合以太网的RDMA(ROCE)、光纤通道、无限带宽、串行ATA(SATA)、小型计算机系统接口(SCSI)、串行附接SCSI(SAS)和/或iWARP等,或它们的任何组合。
在一些实施例中,存储装置可至少部分地实现一致性(例如,存储器一致性和/或高速缓存一致性等)或存储器语义接口(诸如,计算快速链接(CXL)),和/或一致性协议(诸如,CXL.mem、CXL.cache和/或CXL.IO)。一致性和/或存储器语义接口和/或协议的其他示例可包括Gen-Z、一致性加速器处理器接口(CAPI)和/或用于加速器的高速缓存一致性互连(CCIX)等。存储装置可使用这样的接口来与一个或多个处理元件(例如,主机CPU和/或FPGA等)通信。此外,存储装置可通过结构连接到一个或多个主机和/或其他装置,该结构可例如用互连结构(诸如,PCIe)和/或网络结构(诸如,以太网)等或它们的任何组合来实现,例如用一个或多个交换机(例如,交换机208)或接口(未示出)来实现。
在一些方面,存储装置可包括任何合适的存储介质,该存储介质可用基于固态介质、磁性介质、光学介质等的任何类型的非易失性存储介质来实现。例如,在一些实施例中,计算存储装置可被实现为基于非AND(NAND)闪存的SSD、持久性存储器(诸如,交叉网格非易失性存储器)、有体电阻变化的存储器和/或相变存储器(PCM)等、或它们的任何组合。
图3描绘了根据公开的示例实施例的与公开的系统相关联的另一示例架构。具体地,架构300示出了示例系统,该示例系统包括专用软件管理的高速缓存302、CPU 304、SSD306、包括P2P区域和高速缓存区域312的DRAM 308、FPGA 310以及与推荐系统相关联的一些示例元件和操作(诸如,存储在SSD上的嵌入表314和稀疏长度求和操作316)。
图4描绘了根据公开的示例实施例的与上面结合图3示出和描述的示例架构300的示例操作相关联的示例流程的示图400。具体地,在框402,公开的系统可将操作(诸如,用于SSD的读取命令)发出到DRAM。在框404,公开的系统可在SSD与FPGA DRAM之间执行对等(P2P)数据传送。在框406,公开的系统的CPU可针对每个访问将元数据发送到FPGA,并且可发起计算。在框408,FPGA可从DRAM读取输入,并且可执行计算并将结果发送回CPU。
在一些方面,公开允许具有相对高的存储要求、不规则和随机存储器访问模式的应用使用具有处理元件的存储装置的近存储计算。此外,通过将软件放在负责高速缓存管理的主机上,公开的系统允许基于应用访问模式定制高速缓存策略。此外,FPGA上的内核可不随不同的高速缓存策略而改变,从而节省FPGA重新编译。另外,即使针对具有大存储要求的应用,软件管理的高速缓存也在主机侧引入最小的存储开销。
在一些示例中,针对FPGA DRAM上的大小为4GB的高速缓存区域和4KB的块大小,高速缓存的总容量约为一百万个块。针对说明目的,具有最少最近使用(Least RecentlyUsed,LRU)替换策略的完全关联高速缓存可用约5.2兆字节的存储器被实现在主机侧上。该数量是针对每个高速缓存块,通过考虑有效位的1位,标签位的20位和替换策略(假设完美LRU被使用)的20位而被计算。如示例示出,主机侧的存储开销比高速缓存本身的大小小近三个数量级。
在一些方面中,针对解释目的,结合神经推荐系统的示例来描述公开的系统。应理解,在不减小实施例的范围的情况下,公开可与其他应用和系统一起被使用。在示例推荐系统中,系统可以以存储在SSD上的一组嵌入表的形式来保存数据。在其他方面,给定操作(诸如,对嵌入表的稀疏长度求和操作)可被卸载到计算存储装置上的FPGA。此外,FPGA的DRAM可用作存储在SSD上的数据的高速缓存,以提高FPGA上内核的性能(例如,稀疏长度和)。稀疏长度求和操作可表现出对嵌入表中的不同条目的许多随机访问。针对每个访问查询SSD是昂贵的,并且系统可无法实现性能度量(诸如,目标延迟)。因此,公开的系统使用DRAM存储器作为高速缓存以使对SSD的访问最小化。从而,公开使用可部署以将DRAM存储设备管理为SSD中的高速缓存的高速缓存技术。
上面和在此以各种方式描述的任何处理元件可包括可处理数据的任何类型的设备,包括组合逻辑、顺序逻辑、一个或多个定时器、计数器、寄存器和/或状态机、一个或多个复杂可编程逻辑器件(CPLD)、现场可编程门阵列(FPGA)、专用集成电路(ASIC)、中央处理器(CPU)(诸如,复杂指令集计算机(CISC)处理器(诸如,x86处理器)和/或精简指令集计算机(RISC)处理器(诸如,ARM处理器))、图形处理器(GPU)、神经处理器(NPU)和/或张量处理器(TPU)等,执行存储在任何类型的存储器中的指令,或它们的任何组合。处理元件320中的一个或多个可包括固定和/或可编程功能,以执行任何功能(诸如,压缩和/或解压、加密和/或解密、微服务、擦除码、视频编码和/或解码、数据库加速、搜索、机器学习和/或图形处理等)。
图5描绘了根据公开的示例实施例的与公开的系统相关联的示例架构的另一示图500。具体地,架构502示出了针对示例推荐器应用正被卸载到FPGA508的两个计算的示例:(1)以嵌入表514查找为特征的稀疏长度求和单元(例如,稀疏长度求和)510,和(2)矩阵-矩阵乘法单元(例如,全连接(FC)计算)512。稀疏长度求和单元510可解决分类输入(即,稀疏特征),并且矩阵-矩阵乘法单元512可执行提取密集特征的FC层。在一些方面,FPGA 508从DRAM 506读取输入并将计算的结果写回到DRAM 506。此外,可存在用于在固态驱动器504上存储嵌入表514的两个存储选项。针对较小的模型,嵌入表514可被存储在FPGA外部DRAM506上。一些固态驱动器可支持足够的DRAM存储器大小(例如,高达约4GB的DRAM存储器)。如果嵌入表514的大小超过FPGA DRAM 506的容量,则嵌入表514可被存储在SSD504上,这可提供高达太位字节的存储。在另一示例中,示例系统架构502可用于以推断任务和操作为目标。因此,嵌入表514中的值和FC层512中的权重可以是固定的。因此,所有设计输入特征(例如,嵌入表514和FC层权重,未示出)可在计算之前被放置到FPGA DRAM 506或SSD 504中。主机CPU(未示出)可将输入提供给FPGA 508上的内核。例如,公开的系统可基于每个用户请求来生成两个输入向量,一个属于底部FC层,另一个用于嵌入表514查找。FPGA 508可执行计算,并且可将结果写回到能够由CPU访问的主存储器(未示出)。
图6示出了根据公开的示例实施例的示出与公开的系统相关联的各种操作的示例流程的示图600。在框602,公开的系统可开始用于将操作和/或计算卸载到与处理元件相关联的存储装置(诸如,SSD)的处理。在框604,公开的系统可确定特定块是否在高速缓存中。如果是,则在框608,公开的系统可检索高速缓存中的块的位置。如果否,则在框610,公开的系统可将P2P传送从SSD发出到DRAM。然后在框612,公开的系统可生成对应的元数据,并且将元数据发送到FPGA。在框614,公开的系统可更新高速缓存。在框616,公开的系统可结束用于卸载计算和/或操作的处理。
在一些实施例中,操作和/或计算可包括包含可在存储装置上执行指令(例如,程序、内核、模块、子例程、中断处理程序和/或驱动程序等)的任何合适的装置程序,并且可使用户能够管理存储装置、管理存储装置上的一个或多个用户程序、访问在存储装置上实现的一个或多个支持特征(例如,跟踪、调试和/或剖析等)和/或访问存储装置上的操作系统等。装置程序的示例可包括可分析、配置、优化、维护和/或监测等的实用程序、存储装置和/或在存储装置上运行的用户程序(例如,用户应用)。
图7示出了根据公开的示例实施例的示出与公开的系统相关联的各种操作的示例流程的另一示图700。在框702,公开的系统可开始用于将操作和/或计算卸载到与处理元件相关联的存储装置的处理。在框704,公开的系统可从CPU接收元数据。在框706,公开的系统可确定块是否在高速缓存中。如果是,则然后在框708,公开的系统可从高速缓存区域移动数据。如果否,则然后在框710,公开的系统可确定是否将块保留在高速缓存中。如果是,则然后在框712,公开的系统可从P2P区域读取数据,然后在框716,公开的系统可将数据从P2P区域移动到高速缓存区域。如果否,则然后在框714,公开的系统可从P2P区域读取数据。在框718,公开的系统可结束用于卸载计算和/或操作的处理。
图8示出了根据公开的示例实施例的在主机与存储装置之间发送的示例元数据的示图800。主机CPU可将元数据发送到FPGA或与存储装置相关联的其他处理元件以进行各种操作(例如,嵌入表访问),其中元数据可包括关于与操作相关联的存储器位置的信息。示图800示出了元数据的细节,元数据可包括用作模式802的合适数量的位(例如,两个位),并且可用于识别三种不同的可能场景(在下面并结合图9解释的)。此外,FPGA可使用与高速缓存区域相关联的高速缓存地址806和与存储器的P2P区域相关联的缓冲器地址804,以根据如下的模式802位来定位数据。在第一模式(模式0)中,FPGA可使用由P2P缓冲器地址804位指定的地址来读取块。另外,FPGA可在由高速缓存地址806位提供的地址处保留块。模式1可类似于模式0,不同之处在于FPGA可不在DRAM的高速缓存中保留块。针对模式2,数据存在于DRAM的高速缓存中由高速缓存地址806位指定的地址处。此外,FPGA可不受使用中的高速缓存策略的影响,从而避免重新编译。
图9示出了根据公开的示例实施例的表示高速缓存设计的概述的第一示图900。具体地,DRAM 906容量分为四个区域:一个区域属于经由P2P传送从SSD新带到DRAM的数据,并且可被称为P2P缓冲器。第二区域可使用高速缓存来保留DRAM 906中的一些先前提取的块,并且可被称为高速缓存。另外,公开的系统可需要DRAM 906上的空间来存储模型中的其他层(例如,FC层)的权重和FPGA 908的输出。每个区域的大小可以是设计参数,并且可基于不同因素(诸如,查找的数量和/或批大小等)而被确定。如果在高速缓存中没有访问命中(hit),则P2P缓冲器区域应该足够大以容纳批大小所需的所有数据。DRAM 906可由主机CPU904管理并因此是软件管理的高速缓存902。CPU 904可针对DRAM 906的高速缓存中不存在的数据将P2P读取从SSD发出到DRAM 906。主机CPU可针对每个嵌入表访问将元数据发送到FPGA 908,以传达关于每个访问的位置的信息。示图910示出了由CPU 904提供给FPGA 908的元数据的细节。元数据由三个部分组成:合适数量的位(例如,两个位)可用作模式912,并且可用于识别三种不同的可能场景(在下面解释)。此外,FPGA 908可使用高速缓存地址914和P2P缓冲器地址916,以根据如下的模式912位来定位数据。在第一模式(模式0)中,数据块可不存在于DRAM 906的高速缓存中。因此,FPGA 908可使用由P2P缓冲器地址916位(例如,P位)指定的地址来读取块。另外,FPGA 908可在由高速缓存地址914位(例如,C位)提供的地址处保留块。模式1可类似于模式0,不同之处在于FPGA 908可不在DRAM 906的高速缓存中保留块。针对模式2,数据存在于DRAM 906的高速缓存中由高速缓存地址914位指定的地址处。使用软件管理的高速缓存(例如,软件管理的高速缓存902)可允许用户基于访问模式和数据剖析结果来选择正确的高速缓存方案。最后,在一个实施例中,FPGA 908可不受使用中的高速缓存策略的影响,从而避免重新编译。
图10示出了根据公开的示例实施例的具有针对不同的批大小(例如,批大小1和批大小8)的处理元件(例如,FPGA)的固态驱动器上的不同的模型的推断执行时间(y轴1004)的示例的示图1000。具体地,X轴1002示出了高速缓存命中率。在一些方面,100%的高速缓存命中率可被认为等同于模型的嵌入表的大小适合FPGAD RAM的情况。此外,零百分比高速缓存命中率表示在其中FPGA DRAM上没有可用的查找的场景。针对每个模型,对应的服务水平协议(SLA)要求用水平线示出。参考测量通道RMC1、RMC2和RMC3的SLA目标分别为大约100毫秒(ms)、400ms和100ms。针对批大小1,执行时间在所有三个模型的所需目标内。然而,针对低高速缓存命中率,执行时间不满足较大批大小的目标。例如,针对RMC1,对小于80%的高速缓存命中率,一个智能(SM1)的执行时间开始超过SLA目标。针对4个智能/>(SM4)的情况,执行时间满足所有高速缓存命中率的要求。
图11示出了根据公开的示例实施例的示出与公开的系统相关联的各种操作的示例流程的示图1100。具体地,示图1100示出了用于将操作和/或计算卸载到与处理元件相关联的存储装置(诸如,SSD)的示例流程。在框1102,第一处理元件将第一请求发出到存储装置。在框1104,响应于第一请求,存储装置获得存储装置上的第一数据,并且将第一数据提供给第一存储器以进行存储。在框1106,第二处理元件从第一存储器读取第一数据,并且对第一数据执行操作和计算中的至少一个以生成第二数据。在框1108,第二处理元件将第二数据提供给第一处理元件。
在此公开的任何存储装置可使用任何连接器配置(诸如,串行ATA(SATA)、小型计算机系统接口(SCSI)、串行附接SCSI(SAS)和/或U.2等)以任何形状因子(诸如,3.5英寸、2.5英寸、1.8英寸、M.2、企业和数据中心SSD形状因子(EDSFF)和/或NF1等)来实现。
在此公开的任何存储装置可完全或部分地用服务器机箱、服务器机架、数据房间(dataroom)、数据中心、边缘数据中心、移动边缘数据中心和/或它们的任何组合来实现和/或与服务器机箱、服务器机架、数据房间(dataroom)、数据中心、边缘数据中心、移动边缘数据中心和/或它们的任何组合结合使用。
在此描述的任何功能,包括在上面关于在此公开的实施例描述的任何主机功能和/或装置功能等,可用硬件、软件或包括它们的任何组合来实现。例如,它们可用执行存储在任何类型的存储器中的指令的组合逻辑、顺序逻辑、一个或多个定时器、计数器、寄存器、状态机、易失性存储器(诸如,DRAM和/或静态随机存取存储器(SRAM))、非易失性存储器和/或它们的任何组合、CPLD、FPGA、ASIC、包括复杂指令集计算机(CISC)处理器(诸如,x86处理器)和/或精简指令集计算机(RISC)处理器(诸如,ARM处理器)的CPU、图形处理器(GPU)和/或神经处理器(NPU)等来实现。在一些实施例中,一个或多个组件可被实现为片上系统(SOC)。
在此示出描述的实施例是示例操作和/或组件。在一些实施例中,一些操作和/或组件可被省略和/或其他操作和/或组件可被包括。此外,在一些实施例中,操作和/或组件的时间和/或空间顺序可变化。尽管一些组件和/或操作可被示出为单独的组件,但是在一些实施例中,单独示出的一些组件和/或操作可被集成到单个组件和/或操作中,和/或示出为单个组件和/或操作的一些组件和/或操作可用多个组件和/或操作来实现。
图12示出了可用于实践本公开的实施例的系统的示例示意图。如图12中示出的,该特定实施例可包括一个或多个管理计算实体1200、一个或多个网络1205和一个或多个用户装置1210(例如,主机装置、存储装置、附加装置等)。在各种实施例中,管理计算实体1200可被配置为运行与公开的系统和贯穿公开描述的相关联实施例相关联的操作。此外,管理计算实体1200可驻留在公开的系统的任何合适的部分中(例如,诸如存储装置管理器、主机应用、远程主机、另一装置和/或它们的组合等)。在此可互换使用的这些组件、实体、装置、系统和相似词语中的每个可例如通过相同或不同的有线或无线网络彼此直接或间接通信。另外,虽然图12将各种系统实体示出为单独的独立实体,但是各种实施例不限于该特定架构。如所指出的,可使用在此进一步描述的任何合适的协议来执行通信。
图13示出了根据公开的示例实施例的管理计算实体的示例示意图1300。如所指出的,管理计算实体可被配置为运行与公开的系统和贯穿公开描述的相关联的实施例相关联的操作。此外,管理计算实体1200可驻留在公开的系统的任何合适的部分中。具体地,内容组件可用于确定指示将通过在此描述的系统发送的数据(例如,视频、音频、文本、数据和/或它们的组合等)的信号。在另一个实施例中,用于发送信号的确定可以是例如基于对装置的用户输入、与系统相关联的网络上的数据发送的预定调度和网络条件中的改变等。在一个实施例中,信号可包括可被密封在数据帧和/或数据包中的数据,数据帧和/或数据包被配置为从装置发送到网络上的一个或多个装置。
在另一实施例中,处理元件1305可用于确定与数据相关联的各种参数,该数据通过与公开的系统相关联的网络发送。作为另一示例。处理元件1305可用于执行各种加速操作(诸如,卸载功能的至少一些部分、数据预处理或后处理和/或它们的组合等)。
在一个实施例中,发送组件(未示出)可用于将信号从网络上的一个装置发送到另一装置。例如,发送组件可用于使发送器(例如,下面的图14的发送器1404)准备通过网络发送信号。例如,发送组件可在一个或多个缓冲器中对数据进行排队,可确定发送装置和相关联的发送器是起作用的并且具有足够的功率来通过网络发送信号,可调整与数据发送相关联的一个或多个参数(例如,调制类型、信号放大、信号功率电平、噪声抑制和/或它们的组合等)。
通常,术语计算实体、计算机、实体、装置、系统和/或在此可互换使用的相似词语可表示例如一个或多个计算机、计算实体、台式计算机、移动电话、平板电脑、平板手机、笔记本电脑、膝上型电脑、分布式系统、游戏控制台(例如,Xbox、Play Station、Wii)、手表、眼镜、室内定位、接近信标、钥匙扣、射频识别(RFID)标签、耳机、扫描仪、电视、加密狗、相机、腕带、可穿戴物品/装置、自助服务机、输入终端、服务器或服务器网络、刀片(blade)、网关、交换机、处理装置、处理实体、机顶盒、继电器、路由器、网络接入点、基站等和/或适于执行在此描述的功能、操作和/或处理的装置或实体的任何组合。这样的功能、操作和/或处理可包括例如发送、接收、操作、处理、显示、存储、确定、创建/生成、监测、评估、比较和/或在此可互换使用的相似术语。在一个实施例中,可对数据、内容、信息和/或在此可互换使用的相似术语执行这些功能、操作和/或处理。
如所指示的,在一个实施例中,管理计算实体1200还可包括用于与各种计算实体通信的一个或多个通信接口1320(诸如,通过通信可被发送、接收、操作、处理、显示和/或存储等的数据、内容、信息和/或在此可互换使用的相似术语)。例如,管理计算实体1200可与用户装置1210和/或各种其他计算实体通信。
如图13中示出的,在一个实施例中,例如,管理计算实体1200可包括一个或多个处理元件1305(也称为处理器、处理电路系统和/或在此可互换使用的相似术语)或与一个或多个处理元件1305通信,该一个或多个处理元件经由总线与管理计算实体1200内的其他元件通信。如将理解的,处理元件1305可以多种不同的方式体现。例如,处理元件1305可被体现为一个或多个复杂可编程逻辑器件(CPLD)、微处理器、多核处理器、协同处理实体、专用指令集处理器(ASIP)、微控制器和/或控制器。此外,处理元件1305可被体现为一个或多个其他处理装置或电路系统。术语电路系统可表示完全硬件实施例或硬件和计算机程序产品的组合。因此,处理元件1305可被体现为集成电路、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、硬件加速器和/或其他电路系统等。因此,如将理解的,处理元件1305可被配置用于特定用途或被配置为执行存储在易失性或非易失性介质中或以其他方式能够由处理元件1305访问的指令。因此,无论是由硬件还是计算机程序产品配置,或者由它们的组合配置,当相应地配置时,处理元件1305可以是能够执行根据本公开的实施例的步骤或操作。
在一个实施例中,管理计算实体1200还可包括非易失性介质(也称为非易失性存储设备、存储器、存储器存储设备置、存储器电路系统和/或在此可互换使用的相似术语)或与非易失性介质(也称为非易失性存储设备、存储器、存储器存储设备、存储器电路系统和/或在此可互换使用的相似术语)通信。在一个实施例中,非易失性存储设备或存储器可包括一个或多个非易失性存储设备或存储器介质1310,包括但不限于硬盘、ROM、PROM、EPROM、EEPROM、闪存、MMC、SD存储卡、记忆棒、CBRAM、PRAM、FeRAM、NVRAM、MRAM、RRAM、SONOS、FJGRAM、千足虫存储器和/或赛道存储器等。如将认识到的,非易失性存储设备或存储器介质可存储数据库、数据库实例、数据库管理系统、数据、应用、程序、程序组件、脚本、源代码、目标代码、字节代码、编译代码、解释代码、机器代码和/或可执行指令等。术语数据库、数据库实例、数据库管理系统和/或在此可互换使用的相似术语可表示使用一个或多个数据库模型(诸如,分层数据库模型、网络模型、关系模型、实体关系模型、对象模型、文档模型、语义模型和/或图形模型等)的存储在计算机可读存储介质中的记录或数据的集合。
在一个实施例中,管理计算实体1200还可包括易失性介质(也称为易失性存储设备、存储器、存储器存储设备、存储器电路系统和/或在此可互换使用的相似术语)或与易失性介质(也称为易失性存储设备、存储器、存储器存储设备、存储器电路系统和/或在此可互换使用的相似术语)通信。在一个实施例中,易失性存储设备或存储器还可包括一个或多个易失性存储设备或存储器介质1315,包括但不限于RAM、DRAM、SRAM、FPM DRAM、EDODRAM、SDRAM、DDR SDRAM、DDR2 SDRAM、DDR3 SDRAM、RDRAM、TTRAM、T-RAM、Z-RAM、RIMM、DIMM、SIMM、VRAM、高速缓存存储器和/或寄存器存储器等。如将认识到的,易失性存储设备或存储器介质可用于存储正由例如处理元件1305执行的数据库、数据库实例、数据库管理系统、数据、应用、程序、程序组件、脚本、源代码、目标代码、字节代码、编译代码、解释代码、机器代码和/或可执行指令等中的至少一部分。因此,数据库、数据库实例、数据库管理系统、数据、应用、程序、程序组件、脚本、源代码、目标代码、字节代码、编译代码、解释代码、机器代码和/或可执行指令等可用于在处理元件1305和操作系统的帮助下控制管理计算实体1200的操作的特定方面。
如所指示的,在一个实施例中,管理计算实体1200还可包括用于与各种计算实体通信的一个或多个通信接口1320(诸如,通过通信可被发送、接收、操作、处理、显示、存储等的数据、内容、信息和/或在此可互换使用的相似术语)。这样的通信可使用有线数据传输协议(诸如,外围组件互连快速(PCIe)、光纤分布数据接口(FDDI)、数字订户线(DSL)、以太网、异步传送模式(ATM)、帧中继、电缆数据服务接口规范(DOCSIS)或任何其他有线发送协议)来执行。相似地,管理计算实体1200可被配置为使用各种协议(诸如,通用分组无线服务(GPRS)、通用移动电信系统(UMTS)、码分多址2000(CDMA2000)、CDMA2000 1X(1xRTT)、宽带码分多址(WCDMA)、时分同步码分多址(TD-SCDMA)、长期演进(LTE)、演进通用陆地无线接入网(E-UTRAN)、演进数据优化(EVDO)、高速分组接入(HSPA)、高速下行链路分组接入(HSDPA)。IEEE 802.11(Wi-Fi)、Wi-Fi直连、802.16(WiMAX)、超宽带(UWB)、红外(IR)协议、近场通信(NFC)协议、紫蜂(ZigBee)、蓝牙协议、5G协议、无线通用串行总线(USB)协议和/或任何其他无线协议)中的任何一种经由无线外部通信网络进行通信。
尽管未示出,但是管理计算实体1200可包括一个或多个输入元件(诸如,键盘输入、鼠标输入、触摸屏/显示器输入、运动输入、移动输入、音频输入、指示装置输入、操纵杆输入和/或小键盘输入等)或与一个或多个输入元件(诸如,键盘输入、鼠标输入、触摸屏/显示器输入、运动输入、移动输入、音频输入、指示装置输入、操纵杆输入和/或小键盘输入等)通信。管理计算实体1200还可包括一个或多个输出元件(诸如,音频输出、视频输出、屏幕/显示器输出、运动输出和/或移动输出等)(未示出)或与一个或多个输出元件(诸如,键盘输入、鼠标输入、触摸屏/显示器输入、运动输入、移动输入、音频输入、指示装置输入、操纵杆输入和/或小键盘输入等)(未示出)通信。
如将理解的,管理计算实体1200的组件中的一个或多个可位于远离其他管理计算实体1200组件(诸如,在分布式系统中)。此外,组件的一个或多个可被组合,并且执行在此描述的功能的附加组件可被包括在管理计算实体1200中。因此,管理计算实体1200可适合于适应各种需要和情况。如将认识到的,这些架构和描述仅用于示例目的被提供,不限于各种实施例。
用户可以是个人、家庭、公司、组织、实体、组织内的部门和/或组织和/或个人的代表等。在一个示例中,用户可以是雇员、居民和/或客户等。例如,用户可操作用户装置1210,该用户装置1210包括在功能上类似于管理计算实体1200的组件的一个或多个组件。
在各个方面,如这里结合图12和图13示出和描述的,处理组件、发送组件和/或接收组件(未示出)可被配置为在一个或多个用户装置1210上操作,用户装置1210可包括管理计算实体1200的功能的方面。具体地,处理组件、发送组件和/或接收组件可被配置为与一个或多个处理元件1305、存储器1310、易失性存储器1315通信,并且可包括通信接口1320(例如,用于促进装置之间的通信)。
图14示出了根据公开的示例实施例的用户装置的示例示意图。图14提供了表示可与本公开的实施例结合使用的用户装置1410(例如,主机装置、存储装置、外围装置等)的说明性示意图。通常,在此可互换使用的术语装置、系统、计算实体、实体和/或相似词语可表示例如一个或多个计算机、计算实体、台式机、移动电话、平板电脑、平板手机、笔记本电脑、膝上型电脑、分布式系统、游戏控制台(例如Xbox、PlayStation、Wii)、手表、眼镜、钥匙扣、射频识别(RFID)标签、耳机、扫描仪、相机、腕带、自助服务机、输入终端、服务器或服务器网络、刀片、网关、交换机、处理装置、处理实体、机顶盒、继电器、路由器、网络接入点、基站等,和/或适于执行在此描述的功能、操作和/或处理的装置或实体的任何组合。用户装置1410可由各方操作。如图14中示出的,用户装置1410可包括天线1412、发送器1404(例如,无线电)、接收器1406(例如,无线电)和分别将信号提供给发送器1404和从接收器1406接收信号的处理元件1408(例如,CPLD、FPGA、微处理器、多核处理器、协同处理实体、ASIP、微控制器和/或控制器)。
分别提供给发送器1404和从接收器1406接收的信号可包括根据适用无线系统的空中接口标准的信令信息。在这方面,用户装置1410可能够与一个或多个空中接口标准、通信协议、调制类型和接入类型一起操作。更具体地,用户装置1410可根据多个无线通信标准和协议(诸如,在上面关于图12的管理计算实体1200描述的那些标准和协议)中的任何一个来操作。在特定实施例中,用户装置1410可根据多个无线通信标准和协议(诸如,公开的IoTDOCSIS协议、UMTS、CDMA2000、1xRTT、WCDMA、TD-SCDMA、LTE、E-UTRAN、EVDO、HSPA、HSDPA、5G、Wi-Fi、Wi-Fi直连、WiMAX、UWB、IR、NFC、蓝牙和/或USB等)来操作。相似地,用户装置1410可根据多个有线通信标准和协议(诸如,在上面关于管理计算实体1200经由网络接口1420描述的那些标准和协议)来操作。
经由这些通信标准和协议,用户装置1410可使用构思(诸如,非结构化补充服务数据(USSD)、短消息服务(SMS)、多媒体消息服务(MMS)、双音多频信令(DTMF)和/或订户身份组件拨号器(SIM拨号器))来与各种其他实体通信。例如,用户装置1410还可将改变、附件和更新下载到例如用户装置1410的固件、软件(例如,包括可执行指令、应用、程序组件)和操作系统。
根据一个实施例,用户装置1410可包括位置确定方面、装置、组件、功能和/或在此可互换使用的相似词语。位置确定方面可用于通知由管理计算实体使用的模型以及在此描述的模型和/或机器学习技术中的一个或多个。例如,用户装置1410可包括室外定位方面(诸如,适于获取例如纬度、经度、高度、地理编码、路线、方向、航向、速度、世界时间(UTC)、日期和/或各种其他信息/数据的位置组件)。在一个实施例中,位置组件可通过识别视野中的卫星的数量和这些卫星的相对位置来获取有时称为星历数据的数据。卫星可以是包括低地球轨道(LEO)卫星系统、国防部(DOD)卫星系统、欧盟伽利略定位系统、中国指南针导航系统和/或印度区域导航卫星系统等的各种不同的卫星。可选地,可通过结合包括蜂窝塔和/或Wi-Fi接入点等的各种其他系统对用户装置1410的位置进行三角测量来确定位置信息。相似地,用户装置1410可包括室内定位方面(诸如,适于获取例如纬度、经度、高度、地理编码、路线、方向、航向、速度、时间、日期和/或各种其他信息/数据的位置组件)。一些室内系统可使用包括RFID标签、室内信标或发送器、Wi-Fi接入点、蜂窝塔和/或附近的计算装置(例如,智能电话、膝上型计算机)等的各种位置或定位技术。例如,这样的技术可包括室内定位、万向节接近信标、蓝牙低功耗(BLE)发送器和/或NFC发送器等。这些室内定位方面可在各种设置中使用,以将某人或某物的位置确定在英寸或厘米内。
用户装置1410还可包括用户界面(用户界面可包括结合到处理元件1408的显示器1416)和/或用户输入界面(结合到处理元件1408)。例如,如在此所述,用户界面可以是在用户装置1410上执行和/或能够经由用户装置1410访问的用户应用、浏览器、用户界面和/或在此可互换使用的相似词语,以与来自管理计算实体1200的信息交互和/或导致来自管理计算实体1200的信息的显示。用户输入接口可包括允许用户装置1410接收数据的多个装置和接口(诸如,小键盘1418(硬或软)、触摸显示器、语音/语言或运动接口或其他输入装置)中的任何一个。在包括小键盘1418的实施例中,小键盘1418可包括(或导致显示)常规数字(0-9)和相关键(#、*)以及用于操作用户装置1410的其他键,并且可包括一整组字母键或可被激活以提供一整组字母数字键的一组键。除了提供输入之外,用户输入接口可用于例如激活或去激活特定功能(诸如,屏幕保护程序和/或睡眠模式)。
用户装置1410还可包括可被嵌入和/或可以是可移除的易失性存储设备或存储器1422和/或非易失性存储设备或存储器1424。例如,非易失性存储器可以是ROM、PROM、EPROM、EEPROM、闪存、MMC、SD存储卡、记忆棒、CBRAM、PRAM、FeRAM、NVRAM、MRAM、RRAM、SONOS、FJG RAM、千足虫存储器和/或赛道存储器等。易失性存储器可以是RAM、DRAM、SRAM、FPMDRAM、EDO DRAM、SDRAM、DDR SDRAM、DDR2SDRAM、DDR3 SDRAM、RDRAM、TTRAM、T-RAM、Z-RAM、RIMM、DIMM、SIMM、VRAM、高速缓存存储器和/或寄存器存储器等。易失性存储设备或存储器和非易失性存储设备或存储器可存储数据库、数据库实例、数据库管理系统、数据、应用程序、程序、程序组件、脚本、源代码、目标代码、字节代码、编译代码、解释代码、机器代码和/或可执行指令等,以实现用户装置1410的功能。如所指示的,这可包括驻留在实体上的或能够通过浏览器或用于与管理计算实体1200和/或各种其他计算实体通信的其他用户界面访问的用户应用。
在另一实施例中,如在上面更详细地描述的,用户装置1410可包括与管理计算实体1400的组件或功能相同或相似的一个或多个组件或功能。如将认识到的,这些架构和描述仅用于示例目的被提供,不限于各种实施例。
特定实施例可以以硬件、固件和软件的一个或多个组合来实现。其他实施例也可被实现为存储在计算机可读存储装置上的可由至少一个处理器读取和执行以执行在此描述的操作的指令。计算机可读存储装置可包括用于以机器(例如,计算机)可读的形式存储信息的任何非暂时性存储器机制。例如,计算机可读存储装置可包括只读存储器(ROM)、随机存取存储器(RAM)、磁盘存储介质、光存储介质、闪存装置以及其他存储装置和介质。
在此使用词“示例性”表示“用作示例、实例或说明”。在此描述为“示例性”的任何实施例不一定被解释为比其他实施例优选或有利。如在此所使用的术语“计算装置”、“用户装置”、“通信站”、“站”、“手持装置”、“移动装置”、“无线装置”和“用户设备(UE)”表示无线通信装置(诸如,蜂窝电话、智能电话、平板计算机、上网本、无线终端、膝上型计算机、毫微微小区(femtocell,或毫微微蜂窝)、高数据速率(HDR)订户站、接入点、打印机、销售点装置、接入终端或其他个人通信系统(PCS)装置。装置可以是移动的或静止的。
如在本文档内所使用的,术语“通信”意在包括发送、或接收、或发送和接收两者。当描述正由一个装置发送并正由另一个装置接收的数据的组织但是仅需要这些装置中的一个的功能来侵犯本发明时,这在本发明中可特别有用。相似地,当仅要求保护那些装置之一的功能时,两个装置之间的双向数据交换(两个装置在交换期间发送和接收)可被描述为“通信”。如在此关于无线通信信号所使用的术语“通信”包括发送无线通信信号和/或接收无线通信信号。例如,能够传送无线通信信号的无线通信单元可包括用于将无线通信信号发送到至少一个其他无线通信单元的无线发送器,和/或用于从至少一个其他无线通信单元接收无线通信信号的无线通信接收器。
一些实施例可与例如以下项的各种装置和系统结合使用:个人计算机(PC)、台式计算机、移动计算机、膝上型计算机、笔记本计算机、平板计算机、服务器计算机、手持计算机、手持装置、个人数字助理(PDA)装置、手持PDA装置、板载装置、非板载装置、混合装置、车载装置、非车载装置、移动或便携式装置、消费者装置、非移动或非便携式装置、无线通信站、无线通信装置、无线接入点(AP)、有线或无线路由器、有线或无线调制解调器、视频装置、音频装置、音频-视频(A/V)装置、有线或无线网络、无线区域网、无线视频区域网(WVAN)、局域网(LAN)、无线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)、蓝牙TM、全球定位系统(GPS)、Wi-Fi、Wi-Max、紫蜂(ZigBee)TM、超宽带(UWB)、全球移动通信系统(GSM)、2G、2.5G、3G、3.5G、4G、第五代(5G)移动网络、3GPP、长期演进(LTE)、高级LTE、增强型数据速率GSM演进(EDGE)等)的一种或多种类型的无线通信信号和/或系统结合使用。其他实施例可在各种其他装置、系统和/或网络中使用。
尽管上面已经描述了示例处理系统,但是在此描述的主题和功能操作的实施例可在其他类型的数字电子电路系统中实现,或者在计算机软件、固件或包括本说明书中公开的结构及其结构等同物的硬件中实现,或者在它们中的一个或多个的组合中实现。
在此描述的主题和操作的实施例可在数字电子电路系统中实现,或者在计算机软件、固件或包括本说明书中公开的结构及其结构等同物的硬件中实现,或者在它们中的一个或多个的组合中实现。在此描述的主题的实施例可被实现为一个或多个计算机程序(即,计算机程序指令的一个或多个组件),一个或多个计算机程序被编码在计算机存储介质上,用于由信息/数据处理设备执行或控制信息/数据处理设备的操作。可选地或另外地,程序指令可被编码在人工生成的传播信号上(例如,机器生成的电、光或电磁信号),传播信号被生成以对信息/数据进行编码以便发送到合适的接收器设备以供信息/数据处理设备执行。计算机存储介质可以是计算机可读存储装置、计算机可读存储基底、随机或串行存取存储器阵列或装置、或者它们中的一个或多个的组合,或者计算机存储介质可被包括在计算机可读存储装置、计算机可读存储基底、随机或串行存取存储器阵列或装置、或者它们中的一个或多个的组合中。此外,虽然计算机存储介质不是传播信号,但是计算机存储介质可以是在人工生成的传播信号中编码的计算机程序指令的源或目的地。计算机存储介质还可以是一个或多个单独的物理组件或介质(例如,多个CD、磁盘或其他存储装置),或者被包括在一个或多个单独的物理组件或介质(例如,多个CD、磁盘或其他存储装置)中。
在此描述的操作可被实现为由信息/数据处理设备对存储在一个或多个计算机可读存储装置上或从其他源接收的信息/数据执行的操作。
术语“数据处理设备”包括用于处理数据的所有种类的设备、装置和机器,作为示例,所有种类的设备、装置和机器包括前述的可编程处理器、计算机、片上系统、或多个可编程处理器、计算机、片上系统、或组合。设备可包括专用逻辑电路系统(例如,FPGA(现场可编程门阵列)或ASIC(专用集成电路))。除了硬件之外,设备还可包括为所讨论的计算机程序创建执行环境的代码,例如,构成处理器固件、协议栈、数据库管理系统、操作系统、跨平台运行时环境、虚拟机或它们中的一个或多个的组合的代码。设备和执行环境可实现各种不同的计算模型基础设施(诸如,网络服务、分布式计算和网格计算基础设施)。
计算机程序(也被称为程序、软件、软件应用、脚本或代码)可以以包括编译或解释语言、声明或程序语言的任何形式的编程语言被编写,并且计算机程序(也被称为程序、软件、软件应用、脚本或代码)可以以包括作为独立程序或作为组件、子例程、对象或适于在计算环境中使用的其他单元的任何形式被部署。计算机程序可以但不需要对应于文件系统中的文件。程序可被存储在保存其他程序或信息/数据(例如,存储在标记语言文档中的一个或多个脚本)的文件的一部分中,被存储在专用于所讨论的程序的单个文件中,或者被存储在多个协调文件(例如,存储一个或多个组件、子程序或代码的部分的文件)中。计算机程序可被部署为在一个计算机上或在位于一个站点处、或分布在多个站点上并通过通信网络互连的多个计算机上执行。
在此描述的处理和逻辑流程可由执行一个或多个计算机程序以通过对输入信息/数据进行操作并生成输出来执行动作的一个或多个可编程处理器执行。作为示例,适合于执行计算机程序的处理器包括通用微处理器和专用微处理器两者,以及任何种类的数字计算机的任何一个或多个处理器。通常,处理器将从只读存储器或随机存取存储器或两者接收指令和信息/数据。计算机的基本元件是用于根据指令执行动作的处理器和用于存储指令和数据的一个或多个存储器装置。通常,计算机还将包括用于存储数据的一个或多个大容量存储装置(例如,磁盘、磁光盘或光盘),或者可操作地结合以从一个或多个大容量存储装置接收信息/数据或将信息/数据传送到一个或多个大容量存储装置或两者。然而,计算机不需要具有这样的装置。适合于存储计算机程序指令和信息/数据的装置包括所有形式的非易失性存储器、介质和存储器装置,作为示例,所有形式的非易失性存储器、介质和存储器装置包括半导体存储器装置(例如,EPROM、EEPROM和闪存装置);磁盘(例如,内部硬盘或可移动磁盘);磁光盘;以及CD-ROM和DVD-ROM盘。处理器和存储器可由专用逻辑电路系统补充或并入专用逻辑电路中。
为了提供与用户的交互,在此描述的主题的实施例可在具有用于向用户显示信息/数据的显示装置(例如,CRT(阴极射线管)或LCD(液晶显示器)监视器)以及用户可通过其向计算机提供输入的键盘和指向装置(例如,鼠标或轨迹球)的计算机上实现。还可使用其他类型的装置来提供与用户的交互;例如,提供给用户的反馈可以是任何形式的感觉反馈(例如,视觉反馈、听觉反馈或触觉反馈);并且可以以包括,声音、语音或触觉输入的任何形式接收来自用户的输入。另外,计算机可通过向用户使用的装置发送文档和从用户使用的装置接收文档来与用户交互;例如,通过响应于从用户的客户端装置上的网络浏览器接收的请求而向网络浏览器发送网页。
在此描述的主题的实施例可在计算系统中实现,计算系统包括后端组件(例如,作为信息/数据服务器),或者包括中间件组件(例如,应用服务器),或者包括前端组件(例如,具有用户可通过其与在此描述的主题的实施例交互的图形用户界面或网络浏览器的客户端计算机),或者一个或多个这样的后端组件、中间件组件或前端组件的任何组合。系统的组件可通过任何形式或介质的数字信息/数据通信(例如,通信网络)互连。通信网络的示例包括局域网(“LAN”)和广域网(“WAN”)、互联网络(例如,因特网)和对等网络(例如,自组织(hoc)对等网络)。
计算系统可包括客户端和服务器。客户端和服务器通常彼此远离,并且通常通过通信网络进行交互。客户端和服务器的关系借助于在相应计算机上运行并且彼此具有客户端-服务器关系的计算机程序而产生。在一些实施例中,服务器将信息/数据(例如,HTML页)发送到客户端装置(例如,为了向与客户端装置交互的用户显示信息/数据以及从与客户端装置交互的用户接收用户输入的目的)。可在服务器处从客户端装置接收在客户端装置处生成的信息/数据(例如,用户交互的结果)。
虽然本说明书包含许多具体的实施例细节,但是这些实施例细节不应被解释为对任何实施例或可要求保护的范围的限制,而是被解释为对特定于特定实施例的特征的描述。在此在单独实施例的上下文中描述的特定特征也可在单个实施例中组合实施。相反,在单个实施例的上下文中描述的各种特征也可单独地或以任何合适的子组合在多个实施例中实施。此外,尽管上面可将特征描述为以特定组合起作用甚至最初如此要求保护,但是在一些情况下可从组合删除来自于要求保护的组合的一个或多个特征,并且要求保护的组合可指向子组合或子组合的变体。
相似地,虽然在附图中以特定次序描绘操作,但是这不应被理解为要求以示出的特定次序或按连续的次序执行这样的操作,或者执行所有示出的操作,以实现期望的结果。在特定情况下,多任务和并行处理可以是有利的。此外,上面描述的实施例中的各种系统组件的分离不应被理解为在所有实施例中都需要这样的分离,并且应理解,描述的程序组件和系统通常可一起被集成在单个软件产品中或封装到多个软件产品中。
因此,在此已经描述了主题的特定实施例。其他实施例在所附权利要求的范围内。在一些情况下,权利要求中阐述的动作可以以不同的次序执行,并且仍然实现期望的结果。另外,附图中描绘的处理不一定需要示出的特定次序或连续的次序,以实现期望的结果。在特定实施例中,多任务和并行处理可以是有利的。
受益于前面的描述和相关联的附图中呈现的教导,这些实施例所属领域的技术人员将想到在此阐述的公开的许多修改和其他实施例。因此,应理解,实施例不限于公开的特定实施例,并且修改和其他实施例意在被包括在所附权利要求的范围内。尽管在此采用了特定术语,但是它们仅在一般和描述性意义上使用,而不是为了限制的目的。
Claims (20)
1.一种用于计算卸载的系统,包括:
存储装置,与第一处理元件和第二处理元件通信,其中:
第二处理元件包括第一存储器,第一存储器经由第一连接连接到存储装置;
第一处理元件将第一请求发出到存储装置;
响应于第一请求,存储装置获得存储装置上的第一数据,并且将第一数据提供给第一存储器以进行存储;
第二处理元件从第一存储器读取第一数据,并且对第一数据执行操作和计算中的至少一个以生成第二数据;并且
第二处理元件将第二数据提供给第一处理元件。
2.根据权利要求1所述的系统,其中,第一处理元件将元数据提供给第二处理元件,元数据与所述计算相关联。
3.根据权利要求2所述的系统,其中,元数据包括第一存储器上的第一数据的位置。
4.根据权利要求1所述的系统,其中,存储装置包括固态驱动器,并且第一存储器包括动态随机存取存储器。
5.根据权利要求1所述的系统,其中,第一处理元件包括主机装置的中央处理器。
6.根据权利要求1所述的系统,其中,第二处理元件包括现场可编程门阵列、复杂可编程逻辑器件、专用集成电路和协同处理器中的至少一个,并且第一连接包括对等连接。
7.根据权利要求1所述的系统,其中,与第一存储器相关联的块大小通过与第一处理元件相关联的应用设置。
8.根据权利要求1所述的系统,其中,第二处理元件经由交换机与存储装置通信。
9.根据权利要求8所述的系统,其中,交换机包括外围组件互连快速交换机。
10.根据权利要求1至9中的任何一项所述的系统,其中,第一存储器包括能够由第一处理元件访问并且能够由第二处理元件访问的第一部分,并且其中,第一部分用于将第二数据提供给第一处理元件。
11.一种用于计算卸载的方法,包括:
通过第一处理元件将第一请求发出到存储装置;
响应于第一请求,通过存储装置获得存储装置上的第一数据,并且将第一数据提供给第二处理元件的第一存储器以进行存储;
通过第二处理元件从第一存储器读取第一数据;
通过第二处理元件对第一数据执行操作和计算中的至少一个,以生成第二数据;以及
通过第二处理元件将第二数据提供给第一处理元件。
12.根据权利要求11所述的方法,还包括:通过第一处理元件将元数据提供给第二处理元件,元数据与所述计算相关联。
13.根据权利要求12所述的方法,其中,元数据包括第一存储器上的第一数据的位置。
14.根据权利要求11至13中的任何一项所述的方法,还包括:通过与第一处理元件相关联的应用来设置与第一存储器相关联的块大小。
15.根据权利要求11至13中的任何一项所述的方法,还包括:经由交换机在第二处理元件与存储装置之间传送至少一个消息。
16.一种包括用于计算卸载的计算机可执行指令的计算机可读介质,所述计算机可执行指令在由处理器执行时执行多个操作,所述多个操作包括:
通过第一处理元件将第一请求发出到存储装置;
响应于第一请求,通过存储装置获得存储装置上的第一数据,并且将第一数据提供给第二处理元件的第一存储器以进行存储;
通过第二处理元件从第一存储器读取第一数据;
通过第二处理元件对第一数据执行操作和计算中的至少一个,以生成第二数据;以及
通过第二处理元件将第二数据提供给第一处理元件。
17.根据权利要求16所述的计算机可读介质,其中,所述多个操作还包括:通过第一处理元件将元数据提供给第二处理元件,元数据与所述计算相关联。
18.根据权利要求17所述的计算机可读介质,其中,元数据包括第一存储器上的第一数据的位置。
19.根据权利要求16至18中的任何一项所述的计算机可读介质,其中,所述多个操作还包括:通过与第一处理元件相关联的应用来设置与第一存储器相关联的块大小。
20.根据权利要求16至18中的任何一项所述的计算机可读介质,其中,所述多个操作还包括:经由交换机在第二处理元件与存储装置之间传送至少一个消息。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202163248424P | 2021-09-24 | 2021-09-24 | |
US63/248,424 | 2021-09-24 | ||
US17/568,714 | 2022-01-04 | ||
US17/568,714 US20230099831A1 (en) | 2021-09-24 | 2022-01-04 | Systems and methods for near-storage processing in solid state drives |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115858031A true CN115858031A (zh) | 2023-03-28 |
Family
ID=83688991
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211151910.0A Pending CN115858031A (zh) | 2021-09-24 | 2022-09-21 | 用于计算卸载的系统和方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US20230099831A1 (zh) |
EP (1) | EP4155895A1 (zh) |
KR (1) | KR20230043674A (zh) |
CN (1) | CN115858031A (zh) |
TW (1) | TW202314527A (zh) |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7596643B2 (en) * | 2007-02-07 | 2009-09-29 | Siliconsystems, Inc. | Storage subsystem with configurable buffer |
US10635609B2 (en) * | 2018-03-02 | 2020-04-28 | Samsung Electronics Co., Ltd. | Method for supporting erasure code data protection with embedded PCIE switch inside FPGA+SSD |
US10990554B2 (en) * | 2018-03-02 | 2021-04-27 | Samsung Electronics Co., Ltd. | Mechanism to identify FPGA and SSD pairing in a multi-device environment |
US10585819B2 (en) * | 2018-03-05 | 2020-03-10 | Samsung Electronics Co., Ltd. | SSD architecture for FPGA based acceleration |
US10884672B2 (en) * | 2018-04-02 | 2021-01-05 | Samsung Electronics Co., Ltd. | NDP-server: a data-centric computing architecture based on storage server in data center |
US11112972B2 (en) * | 2018-12-05 | 2021-09-07 | Samsung Electronics Co., Ltd. | System and method for accelerated data processing in SSDs |
US10761779B2 (en) * | 2018-12-05 | 2020-09-01 | Intel Corporation | Storage compute offloads on sharded and erasure-coded data |
US20210278998A1 (en) * | 2020-03-09 | 2021-09-09 | Alibaba Group Holding Limited | Architecture and design of a storage device controller for hyperscale infrastructure |
US11573853B2 (en) * | 2021-03-31 | 2023-02-07 | Advanced Micro Devices, Inc. | Error checking data used in offloaded operations |
-
2022
- 2022-01-04 US US17/568,714 patent/US20230099831A1/en active Pending
- 2022-08-04 KR KR1020220097605A patent/KR20230043674A/ko unknown
- 2022-08-16 TW TW111130759A patent/TW202314527A/zh unknown
- 2022-09-19 EP EP22196363.0A patent/EP4155895A1/en active Pending
- 2022-09-21 CN CN202211151910.0A patent/CN115858031A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
EP4155895A1 (en) | 2023-03-29 |
KR20230043674A (ko) | 2023-03-31 |
US20230099831A1 (en) | 2023-03-30 |
TW202314527A (zh) | 2023-04-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20210374056A1 (en) | Systems and methods for scalable and coherent memory devices | |
US20210397577A1 (en) | Systems and methods for communications within a storage chassis | |
US9201810B2 (en) | Memory page eviction priority in mobile computing devices | |
US20100318712A1 (en) | System and method for distributed persistent computing platform | |
US20140115021A1 (en) | Method and Terminal for Accessing a File of a Terminal | |
US20220236902A1 (en) | Systems and methods for data transfer for computational storage devices | |
EP2989536A1 (en) | Management of access to a hybrid drive in power saving mode | |
US10642493B2 (en) | Mobile device and data management method of the same | |
EP4086747A1 (en) | Systems, methods, and apparatus for computational storage functions | |
CN113553170A (zh) | 用于资源分配的系统、方法和装置 | |
US20230042551A1 (en) | Systems, methods, and apparatus for the management of device local memory | |
EP4155895A1 (en) | Systems and methods for near-storage processing in solid state drives | |
CN114816235A (zh) | 用于计算存储设备的数据传递的系统和方法 | |
EP4242820A1 (en) | Systems and methods for checking data alignment between applications, file systems, and computational storage devices | |
EP4379525A1 (en) | Systems, methods, and apparatus for memory protection for computational storage devices | |
US20240118836A1 (en) | Systems, methods, and apparatus for transferring programs for computational storage devices | |
CN118114317A (zh) | 电子系统以及用于管理存储器的方法和装置 | |
CN117908770A (zh) | 用于传送计算存储设备的程序的系统、方法和装置 | |
CN116737063A (zh) | 用于存储器管理的方法和装置 | |
EP4099165A1 (en) | Virtual computational storage devices | |
US20230333769A1 (en) | Shared memory protection method for securing mmio commands |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |