CN109656473A - 桥接装置及提供接近存储计算的方法 - Google Patents

桥接装置及提供接近存储计算的方法 Download PDF

Info

Publication number
CN109656473A
CN109656473A CN201810980128.7A CN201810980128A CN109656473A CN 109656473 A CN109656473 A CN 109656473A CN 201810980128 A CN201810980128 A CN 201810980128A CN 109656473 A CN109656473 A CN 109656473A
Authority
CN
China
Prior art keywords
command
data
nvme
bridge
storage device
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201810980128.7A
Other languages
English (en)
Other versions
CN109656473B (zh
Inventor
佛瑞德·沃里
瑞姆达斯·卡佳瑞
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of CN109656473A publication Critical patent/CN109656473A/zh
Application granted granted Critical
Publication of CN109656473B publication Critical patent/CN109656473B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1673Details of memory controller using buffers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4234Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4406Loading of operating system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/382Information transfer, e.g. on bus using universal interface adapter
    • G06F13/385Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4022Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4027Coupling between buses using bus bridges
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4221Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being an input/output bus, e.g. ISA bus, EISA bus, PCI bus, SCSI bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • G06F13/4295Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus using an embedded synchronisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0632Configuration or reconfiguration of storage systems by initialisation or re-initialisation of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0658Controller construction arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0661Format or protocol conversion arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0688Non-volatile semiconductor memory arrays
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4411Configuring for operating with peripheral devices; Loading of device drivers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/35Switches specially adapted for specific applications
    • H04L49/356Switches specially adapted for specific applications for storage area networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9063Intermediate storage in different physical parts of a node or terminal
    • H04L49/9078Intermediate storage in different physical parts of a node or terminal using an external memory or storage device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0008High speed serial bus, e.g. Fiber channel
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0026PCI express
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Security & Cryptography (AREA)
  • Mathematical Physics (AREA)
  • Information Transfer Systems (AREA)
  • Bus Control (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Stored Programmes (AREA)
  • Internal Circuitry In Semiconductor Integrated Circuit Devices (AREA)
  • Input Circuits Of Receivers And Coupling Of Receivers And Audio Equipment (AREA)
  • Artificial Intelligence (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Medical Informatics (AREA)
  • Computing Systems (AREA)

Abstract

本发明提供一种桥接装置及提供接近存储计算的方法。所述桥接装置包括:第一接口,被配置成从在主机计算机上运行的应用接收第一组命令;一个或多个命令处理器,所述一个或多个命令处理器中的每一者被配置成对所述第一组命令进行转换并基于所述第一组命令产生第二组命令;第二接口,被配置成将所述第二组命令提供到数据存储装置;以及计算处理器,被配置成在运行所述应用的同时发出内部命令来以对于所述主机计算机而言不可知的方式在后台模式中从所述数据存储装置提取数据以及向所述数据存储装置写入数据。本发明的接近存储计算及存储器内加速使得能够以高效方式在后台对大量数据进行处理。

Description

桥接装置及提供接近存储计算的方法
[相关申请的交叉参考]
本申请主张在2017年10月11日提出申请的序列号为第62/571,064号及第62/571,061号的美国临时专利申请的权利及优先权,所述美国临时专利申请的公开内容全文并入本申请供参考。
技术领域
本公开大体来说涉及数据存储系统,且更具体来说,涉及一种使用桥接装置提供接近存储计算的系统及方法。
背景技术
固态驱动器(solid-state drive,SSD)正快速地取代传统的存储装置(例如,硬盘驱动器(hard disk drive,HDD)迅速变成现代数据中心基础设施的主要存储元件。SSD提供低延迟、高数据读取/写入吞吐量及对用户数据的可靠的持久存储。基于网络结构的非易失性存储快速(non-volatile memory express,NVMe)(NVMe over fabric,NVMe-oF)是新兴的技术,其使得成百上千的SSD能够通过网络结构网络(fabric network)(例如,以太网、光纤信道及无限宽频(Infiniband))进行连接。
NVMe-oF协议能够实现远程直接附接存储(remote direct-attached storage,rDAS),所述远程直接附接存储使得大量的NVMe SSD能够通过所建立的网络结构网络连接到远程主机。NVMe-oF协议还支持远程直接存储器存取(remote direct memory access,RDMA)以提供可靠的传送服务来通过网络载送NVMe命令、数据及响应。iWARP、RoCE v1及RoCE v2是提供RDMA服务的传送协议的一些实例。
使用分解数据存储装置(disaggregated data storage device)(例如,NVMe-oF-可兼容SSD,在本文中也称为NVMe-oF SSD或缩写为eSSD)的数据存储系统可为在主机计算机上运行的应用提供大的存储容量。所述应用可从分解数据存储装置收集大量数据(大数据)并对它们进行分析。
由于大数据处理的规模非常大,因此用于执行有意义的大数据挖掘的基础设施可能成本过高,需要大量计算资源、大的系统存储器、高带宽网络以及用于存储所述大数据的大的及高性能的数据存储装置。期望将一些数据处理挖掘任务从主机计算机卸载到数据存储装置并使从数据存储装置到主机计算机的数据移动最小化。
发明内容
根据一个实施例,一种桥接装置包括:第一接口,被配置成从在主机计算机上运行的应用接收第一组命令;一个或多个命令处理器,所述一个或多个命令处理器中的每一者被配置成对所述第一组命令进行转换并基于所述第一组命令产生第二组命令;第二接口,被配置成将所述第二组命令提供到数据存储装置;以及计算处理器,被配置成在运行所述应用的同时发出内部命令来以对于所述主机计算机而言不可知的方式在后台模式中从所述数据存储装置提取数据以及向所述数据存储装置写入数据。
根据另一个实施例,一种提供接近存储计算的方法包括:通过第一接口从在主机计算机上运行的应用接收第一组命令;对所述第一组命令进行转换并基于所述第一组命令产生第二组命令;通过第二接口将所述第二组命令提供到数据存储装置;以及在运行所述应用的同时,发出内部命令来以对于所述主机计算机而言不可知的方式在后台模式中从所述数据存储装置提取数据及向所述数据存储装置写入数据。
现将参照附图更具体地阐述包括实施方式的新颖细节及事件组合在内的以上及其他优选特征,且以上及其他优选特征在权利要求书中指出。应理解,本文所述具体系统及方法仅作为例示示出且不作为限制。如所属领域中的技术人员应理解,本文所述原理及特征可用于各种各样的实施例中,而此并不背离本公开的范围。
附图说明
作为本说明书的一部分而包括在内的各个附图示出当前优选的实施例,且与以上所给出的大体说明及以下所给出的对优选实施例的详细说明一起用于解释及教示本文所述原理。
图1示出根据一个实施例的示例性数据存储系统的方块图。
图2示出根据一个实施例的示例性NVMe-oF桥接装置的方块图。
图3示出根据一个实施例的示例性专用命令单元(special command unit,SCU)模块的方块图。
图4示出根据一个实施例的转换命令识别符的示例性过程。
图5是示出根据一个实施例的对管理提交队列及管理完成队列的共享的方块图。
图6示出根据一个实施例的远程主机与接近存储计算(near storage compute,NSC)处理器之间对输入/输出提交队列(input/output submission queue,I/O SQ)的共享。
图7是示出根据一个实施例的桥接装置内的本地数据移动的图。
各个图未必是按比例绘制的,且出于说明目的,在所有图中具有相似结构或功能的元件一般是由相同的参考编号表示的。各个图仅旨在方便说明本文所述各种实施例。各个图并不阐述本文所公开教示内容的每一方面且并不限制权利要求书的范围。
具体实施方式
本文所公开的特征及教示内容中的每一者可单独使用或结合其他特征及教示内容来使用以提供用于提供接近存储计算的桥接装置。参照附图更详细地阐述代表性实例,这些代表性实例单独地使用及组合地使用这些附加特征及教示内容中的许多特征及教示内容。此详细说明仅旨在向所属领域中的技术人员教示用于实践本教示内容的各个方面的进一步细节,而并非旨在限制权利要求书的范围。因此,在本详细说明中以上所公开特征的组合可能未必是在最广泛意义上实践本教示内容所必需的,而是相反,仅是为了具体阐述本教示内容的代表性的实例而教示。
在以下说明中,仅出于解释目的来阐述特定术语以提供对本公开的透彻理解。然而,对于所属领域中的技术人员而言将显而易见,这些特定细节并非是实践本公开的教示内容所必需的。
本文的详细说明的一些部分是以算法及对计算机存储器内的数据位进行的操作的符号表示法来呈现。这些算法描述及表示法被数据处理领域中的技术人员用于向所属领域中的其他技术人员有效地传达其工作的实质。算法在此处且一般而言均被视为能得到所期望结果的步骤的自洽序列(self-consistent sequence)。所述步骤需要对物理量进行实体操纵。通常(尽管未必一定如此),这些量会呈能够被存储、传输、组合、比较及以其他方式被操纵的电信号或磁信号的形式。已证明,主要出于通用的原因,将这些信号称为位、值、元件、符号、字符、项、数字等有时是便利的。
然而,应记住,这些用语中的所有用语及所有相似用语均与适宜的物理量相关联且仅作为应用于这些量的便利标记。除非通过阅读以下论述显而易见地另有具体说明,否则应理解,在本说明通篇中,使用例如“处理(processing)”、“计算(computing)”、“运算(calculating)”、“判断(determining)”、“显示(displaying)”等用语进行的论述是指计算机系统或相似电子计算装置的动作及进程,所述计算机系统或相似电子计算装置操纵在计算机系统的寄存器及存储器内被表示为物理(电子)量的数据并将所述数据转换成在计算机系统存储器或寄存器或者其他这种信息存储装置、信息传输装置或信息显示装置内被相似地表示为物理量的其他数据。
另外,代表性实例及附属权利要求的各个特征可以并未具体地及明确地枚举的方式加以组合以提供本教示内容的附加的有用实施例。还应明确注意,出于原始公开内容的目的以及出于限制所主张主题的目的,所有值范围或对实体的群组的指示均用于公开每个可能的中间值或中间实体。还应明确注意,图中所示各组件的尺寸及形状被设计成有助于理解如何实践本教示内容,而并非旨在限制实例中所示尺寸及形状。
本公开阐述一种用于将数据处理及挖掘任务从主机计算机卸载到存储装置以使从存储装置到分解数据存储系统中的主机计算机的数据移动最小化的系统及方法。根据一个实施例,本系统及方法允许在存储装置附近或存储装置内处理数据,这在本文中分别被称为接近存储计算(NSC)及存储器内加速(in-storage acceleration,ISA)。本系统及方法非常适用于使用NVMe-oF标准的分解存储装置。另外,本系统及方法可在直接附接NVMe至NVMe桥接装置(direct attached NVMe-to-NVMe bridge device)中使用。主机计算机可将自身的一些数据挖掘任务卸载到NVMe-oF SSD以通过NVMe-oF网络减小主机计算机与NVMe-oF SSD之间的数据移动,从而节省能量及网络基础设施成本。
图1示出根据一个实施例的示例性数据存储系统的方块图。数据存储系统100包括主机110及机架160(在本文中也称为eSSD机架),机架160含有一个或多个可兼容NVMe-oF的以太网SSD(eSSD)。举例来说,机架160包括24个eSSD或48个eSSD。机架160中的eSSD分别被表示为eSSD 170a到eSSD 170n(在本文中统称为eSSD 170)。主机110包括应用111、操作系统(operating system,OS)及文件系统(file system,FS)112以及NVMe-oF驱动器113。主机110的初启程序(initiator)(例如,应用111)可利用NVMe-oF驱动器113建立基于以太网150的与eSSD 170的NVMe-oF连接。机架160包括以太网交换机(Ethernet switch)161、基板管理控制器(baseboard management controller,BMC)162及外围组件互连快速(peripheralcomponent interconnect express,PCIe)交换机163。以太网交换机161通过中性面165提供与eSSD 170的以太网连接,且PCIe交换机163通过中性面165提供与eSSD 170的管理接口164。BMC 162可根据系统管理员给出的指令对eSSD 170进行编程。
以太网交换机161在主机110与eSSD 170之间提供网络连接性。以太网交换机161可具有大容量(例如,100Gbps)上行链路以连接到一个或多个主机。以太网交换机161还具有用于连接到eSSD 170的多个较低容量(例如,25Gbps)下行链路。举例来说,以太网交换机161含有12个100Gbps上行链路以及24个或48个25Gbps下行链路。以太网交换机161可具有连接到BMC 162的专用配置/管理端口。
BMC 162管理机架160的内部组件,包括以太网交换机161、PCIe交换机163及eSSD170。BMC 162可支持用于系统管理的PCIe和/或系统管理总线(system management bus,SMBus)接口。BMC 162可对eSSD 170进行配置并对以太网交换机161进行编程。
类似于基于服务器的全闪存阵列(all-flash array,AFA),eSSD 170一起容纳在无服务器的壳体(即,机架160)中,所述无服务器的壳体含有多个eSSD、用于将所述多个eSSD与外界主机进行连接的网络交换机(即,以太网交换机161)以及用于管理所述多个eSSD的BMC 162。BMC 162处置引导程序(boot)并控制通往eSSD装置的路径。与完善的x86中央处理器(computer processing unit,CPU)不同,BMC 162可能无法完成CPU可处置的所有这些任务,且因此具有最低限度的壳体管理功能。BMC 162通过SMBus或PCIe总线保持对所连接的eSSD 170以及相关硬件进行关于连接性、状况、温度、日志及错误方面的健康情况检查。
eSSD 170提供高性能及大容量数据存储解决方案。NVMe-oF协议使成百上千的分解eSSD 170能够以远程直接附接存储(rDAS)方式附接到在主机计算机110上运行的应用111。本系统及方法有利于处理及移动被收集并存储在分解eSSD中的大量数据。使用传统的主机计算机的这种数据处理可能成本非常高昂。
在主机计算机110上运行的应用111可通过提取存储在整个网络(例如,以太网150)上的分解数据存储装置(例如,eSSD 170)中的数据来执行处理(例如,机器学习),处理数据,并将数据处理的结果存储回数据存储装置。包括数据提取、处理及存储的这种进程可能非常低效,会消耗主机计算机上过量的能量资源、计算资源、网络资源及数据存储资源。另外,所述进程可能会对主机计算机上的计算资源及存储器资源施加高成本要求。
本系统及方法能够使用接近存储计算或存储器内加速来实现后台数据处理。接近存储计算及存储器内加速使得能够以高效方式在后台对大量数据进行处理。根据一个实施例,与其中存储有待处理数据的数据存储装置耦合的桥接装置可有利于所耦合的数据存储装置附近的后台数据处理。在一个实施例中,桥接装置集成在数据存储装置中。在其他实施例中,桥接装置是连接到数据存储装置的单独的装置。应理解,用语“附近(near)”表示数据处理可不仅在单独装置中进行而且还可在数据存储装置自身内进行,而此并不背离本公开的范围。在一些实施例中,在本文中可将用语“接近存储(near-storage)”与“存储器内(in-storage)”互换使用。
所述桥接装置可具有一个或多个硬件组件,所述一个或多个硬件组件可采用对于应用而言透明的方式来构建对存储在数据存储装置中的数据的接近存储计算。桥接装置可为NVMe-oF至NVMe桥接装置及NVMe至NVMe桥接装置中的一者。与NVMe-oF标准兼容的NVMe-oF至NVMe桥接装置可通过网络结构网络接收NVMe-oF命令并为后端数据存储装置提供PCIe接口。与NVMe标准兼容的NVMe至NVMe桥接装置可通过PCIe总线接收NVMe命令并在数据存储装置附近执行数据处理。在下文中,为方便起见,阐述eSSD作为数据存储装置的实例;然而,应理解,可使用其他类型的数据存储装置及分布式数据存储系统,而此并不背离本公开的范围。在以下实例中,eSSD被阐述为包括桥接装置及后端SSD二者的装置;然而应理解,数据存储装置(后端SSD)可连接到分立的桥接装置以形成eSSD,或者eSSD可指代桥接装置自身或在其他实施例中可指代能够执行桥接装置的接近计算功能的装置。
本桥接装置可提取、处理及修改存储在后端SSD上的数据并将经处理数据存储回后端SSD而不会影响主机计算机到SSD的正常数据存取操作。在一个实施例中,桥接装置可具有系统存储器以维持一对输入/输出(I/O)提交队列及输入/输出完成队列并使用所述I/O队列对在后台模式中对后端SSD执行数据存取。桥接装置可共享I/O提交队列及I/O完成队列以处理来自主机计算机的命令及来自桥接装置的接近存储处理器的内部命令二者。另外,桥接装置的系统存储器可维持一对管理队列,所述一对管理队列包括管理提交队列及管理完成队列,其可在主机计算机与NSC处理器之间共享。
根据一个实施例,桥接装置可采用NVMe-oF至NVMe协议桥接或NVMe至NVMe协议桥接,以使得NSC处理器能够存取存储在后端SSD上的数据。例如机器学习(machinelearning,ML)算法等各种进程可在主机计算机上运行以采用对于主机计算机而言不可知的方式在后台模式中执行数据处理。运行机器学习算法的主机计算机可驻留在桥接装置外部但仍可通过桥接装置间接地对存储在eSSD中的数据进行存取。在一些实施例中,桥接装置和/或主机计算机可与eSSD驻留在同一机架中但驻留在不同的槽位(例如,U.2槽位)中,或者它们可在实体上驻留在机架外部。尽管以下结合图式加以解释的实例主要阐述NVMe-oF桥接装置(也被称为NVMe-oF至NVMe桥接装置),然而它们同等地适用于NVMe至NVMe桥接装置。
桥接装置提供接口来接收目的地为后端SSD的主机命令(例如,NVMe-oF命令)。桥接装置将所接收到的主机命令识别符(command identifier,CID)映射到本地标签,产生去往存储有待处理数据的后端SSD的NVMe命令,所述NVMe命令包含新的CID。后端SSD产生与NVMe命令对应的完成条目(completion entry,CE)并将所述完成条目发送到桥接装置。接着,桥接装置对完成条目进行剖析并将完成条目智能地转发到桥接装置的NSC处理器。
独立于从主机起始的桥接命令,桥接装置的NSC处理器可采用对于主机计算机而言不可知的方式发出NVMe命令到后端SSD。通过使用共享的I/O队列及管理队列,桥接装置可同时地有效处理来自主机计算机与NSC处理器二者的I/O操作而不会对彼此造成干扰。NSC处理器能够在维持其对主机命令进行桥接的能力的同时对存储在后端SSD中的数据进行存取,此使得机器学习应用能够在接近存储计算装置(即,桥接装置)中运行。NSC处理器为机器学习应用提供能量、资源及具有成本效益的数据处理。
NVMe-oF桥接装置可在一侧上提供与远程初启程序(例如,在主机计算机上运行的机器学习应用)的NVMe-oF接口且可在另一侧上提供与后端SSD的基于标准PCIe的NVMe接口。远程初启程序经由NVMe-oF接口通过以太网连接到NVMe-oF桥接装置。NVMe-oF桥接装置可将NVMe-oF协议转换成NVMe协议以连接到后端SSD。
另一方面,NVMe桥接装置可提供与远程初启程序及后端SSD的标准PCIe接口。远程初启程序通过PCIe总线连接到NVMe桥接装置。NVMe桥接装置可将NVMe主机命令转换成具有不同的命令识别符的另一个NVMe命令以使后端SSD将NVMe命令看成其仿佛是来自NVMe桥接装置而非来自主机计算机一样。
根据一个实施例,桥接装置的NVMe-oF至NVMe桥接功能或NVMe至NVMe桥接功能可实施在现场可编程门阵列(field-programmable gate array,FPGA)或应用专用集成电路(application-specific integrated chip,ASIC)中。作为另外一种选择,所述桥接功能可实施在固件程序或软件程序中。
图2示出根据一个实施例的示例性NVMe-oF桥接装置的方块图。NVMe-oF桥接装置200包括接近存储计算(NSC)处理器211、系统存储器212、命令剖析器213、命令分类器214、及命令处理器215、PCIe侧命令提交队列(PCIe-side command submission queue,PSQ)模块216、PCIe应用(PCIe application,PAPP)/根复合体模块(root complex module)217、NVMe-oF响应器218、PCIe完成条目剖析器219以及PCIe侧命令完成队列(PCIe-sidecommand completion queue,PCQ)模块220。NVMe-oF桥接装置200通过PCIe总线耦合到后端SSD 250。在主机计算机上运行的远程初启程序通过网络结构网络(在本实例中为以太网)将NVMe-oF命令发送到后端SSD 250。
NVMe-oF桥接装置200的命令剖析器213拦截目的地为后端SSD 250的NVMe-oF命令,对所述NVMe-oF命令进行剖析,并将经剖析的NVMe-oF命令发送到命令分类器214。举例来说,命令剖析器213抽取并剖析各种命令,包括但不限于命令操作码(opcode,OPC)、命令识别符(CID)、命名空间识别符(namespace identifier,NSID)、逻辑块数目(number oflogical block,NLB)及起始逻辑块地址(start logical block address,SLBA)。命令分类器214将经剖析的NVMe-oF命令分类成不同的群组并将经分类的NVMe-oF命令发送到命令处理器215。举例来说,命令分类器214对管理命令(admin command)、网络结构命令、读取命令、写入命令及专用命令进行分类。不同的命令或不同的NVMe-oF命令群组可使用命令处理器215的专用命令处理单元来进行处理。举例来说,命令处理器215包括专用命令单元(special command unit,SCU)231、网络结构命令单元(fabrics command unit,FCU)232、管理命令单元(admin command unit,ACU)233、写入命令单元(write command unit,WCU)234及读取命令单元(read command unit,RCU)235。
这些命令处理单元231至235将NVMe-oF命令转换成NVMe命令并将它们放置到PSQ模块216中。根据一个实施例,PSQ模块216构建命令提交队列并维持现用的提交队列的头指针(head pointer)及尾指针(tail pointer)不变。PSQ模块216可检测现用的提交队列并产生指示提交队列是满的还是空的的条件旗标。当将NVMe命令放置到提交队列中时,PSQ模块216可产生门铃事件(提交队列门铃)并通过PAPP模块217将门铃事件发送到后端SSD 250。PAPP模块217构建通往后端SSD 250的PCIe传送以通过PCIe总线发送门铃事件。PAPP模块217支持标准PCIe交易命令,所述标准PCIe交易命令包括NVMe-oF桥接装置200所需的配置(config)读取、配置写入、存储器写入及存储器读取。另外,PAPP模块217支持NVMe-oF桥接装置200的PCIe端点所需的PCIe存储器读取交易及PCIe存储器写入交易。换句话说,PAPP模块217构建并支持NVMe-oF桥接装置200的PCIe根复合体功能,从而使NVMe-oF桥接装置200成为PCIe根复合体装置。
PCQ模块220为后端SSD 250构建命令完成队列。后端SSD 250可为由后端SSD 250处理的每一个NVMe命令写入命令完成条目(CE)。通常,在命令提交队列与命令完成队列之间存在一对一映射。PCIe完成条目剖析器219剖析从PCQ模块220接收到的完成条目(CE)并对所述完成条目进行解释。PCIe完成条目剖析器219将经剖析的完成条目转发到产生对应的NVMe命令的适宜的命令处理单元231至235。适宜的命令处理单元231至235产生与从PCIe完成条目剖析器219接收到的PCIe完成条目对应的NVMe-oF完成条目(或NVMe完成条目)并将所述NVMe-oF完成条目转发到NVMe-oF响应器218以通过NVMe-oF接口(例如,以太网)将NVMe-oF完成条目发回到远程初启程序。NVMe-oF完成条目可位于去往远程初启程序的读取数据传输或写入数据传输之前。作为NVMe-oF命令桥接的一部分,命令处理单元231至235有利于在后端SSD 250与远程初启程序之间进行数据传输。
响应于门铃事件,后端SSD 250提取从PSQ模块216接收到的NVMe命令并执行所述NVMe命令。作为命令执行的一部分,后端SSD 250可执行数据传输。这种数据传输可往来于系统存储器212或在NVMe-oF桥接装置200中可用的芯片上存储器(on-chip memory)或芯片外存储器(off-chipmemory)之间进行。
图3示出根据一个实施例的示例性专用命令单元模块的方块图。专用命令单元231构建与NSC处理器211的接口以向后端SSD 250发出专用命令。NSC处理器211可使用此接口在后台中从后端SSD 250提取数据或者将数据或结果写入到后端SSD 250。
FCU 232是处置用于NVMe-oF协议的网络结构(fabrics)类型命令的网络结构命令单元。网络结构命令的实例包括但不限于连接(Connect)、性质获得(Property Get)、性质设定(Property Set)等。ACU 233是管理命令单元。管理命令的实例包括但不限于识别(Identify)、获得日志页面(Get LogPage)等。WCU 234是处置写入命令的写入命令单元。RCU 235是处置读取命令的读取命令单元。
参照图3,SCU 231包括入站(inbound,IB)先进先出(first input firstoutput,FIFO)332、出站(outbound,OB)先进先出333及用于NVMe命令的缓冲器334。IBFIFO 332及OBFIFO 333是由NSC处理器211使用的用于向后端SSD 250发出专用命令的结构。NSC处理器211创建NVMe命令,将NVMe命令放置在消息中并将所述消息写入到OBFIFO 333。SCU 231读取消息并将NVMe命令发送到后端SSD 250。当后端SSD 250以完成条目作出响应时,SCU 231将完成条目放置在消息中并将消息写入到IBFIFO 332中。NSC处理器211从IBFIFO 332读取完成条目以进行进一步处理。
图4示出根据一个实施例的转换命令识别符(CID)的示例性过程。桥接装置接收含有16位命令识别符(CID)(401)的传入命令(NVMe-oF命令或NVMe命令)。16位CID及提交队列(SQ)数目可唯一地识别现用命令。给定命令的完成条目含有相同的16位CID,以使完成条目可通过反向查找来与对应的NVMe命令正确地关联,此将在下文中详细论述。
在NVMe-oF桥接装置的情形中,NVMe-oF桥接装置接收NVMe-oF命令,并创建用于NVMe-oF命令的环境并且记录本地命令标签(在本文中也被称为本地标签)。在一个实施例中,NVM-oF桥接装置对查找表(lookup table,LUT)(402)进行查找以及将接收到的16位CID映射到12位本地标签(403)。如果查找表已满,则可从执行过程暂停传入命令,从而将现用命令的数目限制为查找表的容量(2^12)。所述12位本地标签还用作去往后端SSD的传出NVMe命令的16位NVMe CID 410的一部分。经转换的NVMe命令含有新构建的16位NVMe CID410。根据一个实施例,NVMe CID 410包括两个字段:4位命令处理单元ID(CU_ID)(404)及12位本地标签(405)。12位本地标签与4位CU_ID的分离字段仅为实例,且应理解,这两个字段在其他实施方式中可具有不同的大小,而此并不背离本公开的范围。在本实例中,NVMe CID410可使用以下映射方案来构建:
NVMe CID[15:0]={CU_ID[3:0],Local_Tag[11:0]}。
命令处理单元ID(CU_ID)可根据处理传入NVME-oF命令的桥接装置的命令处理单元来确定。表1示出用于命令处理单元ID(CU_ID)的示例性编码方案。
表1
命令单元 CU_ID
FCU 0
ACU 1
WCU 2
RCU 3
SCU 4
NVMe CID的12位逻辑标签用于映射到在原始NVME-oF命令中接收到的NVMe-oFCID。除SCU 231之外的命令处理单元的12位本地标签可以如下方式获得:
Local_Tag[11:0]=LUT(NVMe-oF CID[15:0]),查找表LUT将16位NVMe-oF CID映射到12位本地标签。查找表LUT是由命令分类器214维持的动态实体。当接收到主机命令时,对查找表LUT中的条目进行分配。12位条目索引是12位本地标签。原始的16位CID存储在对应的索引处。当命令完成时,将查找表LUT中的条目解除分配。SCU 231的12位本地标签可以如下方式获得:
Local_Tag[11:0]=LUT(NSC CID[15:0]),其中NSC CID是NSC处理器在内部指派的命令ID。NSC-CID是指由NSC处理器发出的命令中所含有的16位CID值。用于确定本地标签的以上方程式被用于将来自从主机或NSC处理器接收到的命令的CID映射到12位本地标签。
在对12位本地标签进行查找之后,NVMe CID的其余4位CU_ID有助于执行从后端SSD 250接收到的NVMe完成条目(CE)的反向查找。NVMe完成条目用于将NVMe CID与桥接装置的各处理单元中产生对应的NVMe命令的处理单元相关联。参照图2,PCIe完成条目剖析器219从通过PAPP模块217从后端SSD 250接收到的NVMe CID提取4位CU_ID,并确定完成条目所属的处理单元。一旦将所接收到的NVMe完成条目递送到适宜的命令处理单元,PCIe完成条目剖析器219便执行另一反向查找以将12位本地标签映射到原始NVMe-oF CID。在SCU231的情形中,这种反向查找将使用NSC-CID而不使用如上所述NVMe-oF CID。
通过利用这种NVMe-oF至NVMe映射(或NVMe至NVMe映射),NVMe-oF桥接装置200可支持多个命令处理单元向后端SSD 250发出NVMe命令。举例来说,NVMe-oF桥接装置200对于给定的提交队列SQ(12位深度的本地标签)而言可支持最多达4096(212)个现用NVMe命令(即,队列深度)。SCU 231使用这种机制来通过NSC处理器向后端SSD 250发出各种NVMe命令而不会干涉主机命令。举例来说,NSC处理器通过发出NVMe读取命令来从后端SSD提取数据块,处理所提取的数据,并通过发出NVMe写入命令将结果存储回后端SSD。应注意,可使用NVMe-CID的不同大小的CU_ID及本地标签分量,且这种NVMe-CID配置可提供不同的最大队列深度。
图5是示出根据一个实施例的对管理提交队列及管理完成队列的共享的方块图。后端SSD可与本桥接装置共享包括管理SQ 531及管理CQ 532的管理队列对。管理SQ 531用于向后端SSD发出管理命令。在远程主机501上运行的应用可为需要对后端SSD中的数据存储装置进行存取的数据中心应用(例如,机器学习应用)。NVMe-oF桥接装置的NVMe-oF至NVMe命令转换器521(例如,图2所示FCU 232及ACU 233)将从远程初启程序接收到的NVMe-oF管理命令转换成NVMe管理命令并将NVMe管理命令放置到管理SQ 531(例如,图2所示PSQ模块216)中。NVMe-oF桥接装置的NSC处理器511也通过管理SQ 531向后端SSD发出管理命令。
NVMe-oF命令处理单元(例如,FCU、ACU、WCU及RCU)中的每一者可具有唯一的4位CU_ID。因此,可通过相同的管理SQ 531从NVMe-oF主机以及NSC处理器511二者发出管理命令。假设NSC处理器511仅发出不会影响主机可见用户数据的数据完整性或后端SSD的控制数据结构的管理命令。NSC处理器511只可对主机数据进行读取或监视且只对自身拥有的数据进行修改。在一些实施例中,远程主机501与NSC处理器511可通过数据同步来共享存储在后端SSD中的数据。
图6示出根据一个实施例的远程主机与NSC处理器之间对I/O SQ的共享。不同于图5所示管理SQ 531,可存在大量的I/O SQ。I/O SQ可用于发出数据命令,例如读取及写入。I/O命令将数据移动到远程初启程序及后端SSD或者从远程初启程序及后端SSD移出数据,反之亦然。通过使用不同的CU_ID值,SCU 231可将NSC处理器的I/O命令放置到与用于主机I/O命令的I/O SQ相同的I/O SQ中。在另一个实施例中,可使用用于NSC处理器的一组专用的I/O SQ来处理来自NSC处理器611的I/O命令。图6示出其中对NSC处理器611及来自远程初启程序的I/O命令使用两个单独的I/O命令提交队列及I/O命令完成队列的实例。
在任一种情形中,PCIe完成条目剖析器使用CU_ID来将从后端SSD接收到的完成条目适当地路由到桥接装置的适宜的命令处理单元。假设NSC处理器611发出不会对主机数据进行修改的I/O命令。首先,NSC处理器611将读取由主机601写入的数据以对用于本地处理的读取数据进行处理及分析。由NSC处理器611产生的经修改数据或分析结果可被写入到对于主机601而言可存取或不可存取的单独的存储区域。在一个实施例中,NSC处理器611与在主机601上运行的远程初启程序可高度地同步以共享相同的数据及存储命名空间。
图7是示出根据一个实施例的桥接装置内的本地数据移动的图。桥接装置700包括写入数据缓冲器751及读取数据缓冲器752。根据一个实施例,桥接装置700的系统存储器(例如,图3所示系统存储器212)包括写入数据缓冲器751及读取数据缓冲器752。
NSC处理器711在后台对SSD数据进行扫描及分析。NSC处理器711可周期性地从后端SSD 750提取用户数据并对所述用户数据进行分析。NSC处理器711可将经修改数据和/或数据处理的结果存储回后端SSD 750。这些操作需要往来于后端SSD的数据移动。NSC NVMe命令规定这种数据传输的细节。
在一个实施例中,NSC处理器711使用NSC NVMe命令操作码来表示NVMe命令是写入命令还是读取命令。NSC NVMe命令还可表示写入数据缓冲器751或读取数据缓冲器752的相关联的逻辑块地址(logical block address,LBA)。对于NSC写入命令而言,数据从桥接装置700的系统存储器移动到后端SSD 750。对于NSC读取命令而言,数据从后端SSD 750移动到桥接装置700的系统存储器。对于主机命令的数据传输而言,可使用写入数据缓冲器751或读取数据缓冲器752中单独的一组缓冲器地址而不将这两种数据移动混合。
当NSC处理器711发出NSC NVMe命令来对存储在后端SSD 750中的数据进行处理时,NSC处理器711首先分配读取数据缓冲器752中具有期望大小的空间。NSC处理器711接着使用所分配的读取缓冲器空间的指针来创建NVMe读取命令。NSC处理器711在后端SSD 750中植入适宜的Namespace.LBA地址以读取存储在后端SSD 750中的数据。NSC处理器711接着将所构建的NSC-NVMe读取命令放置到桥接装置700的适宜的I/O SQ中。后端SSD 750通过PCIe总线提取NSC-NVMe读取命令并使用读取数据缓冲器752中的所分配的读取缓冲器空间的指针来对系统存储器执行所请求数据的DMA写入操作。后端SSD 750接着向桥接装置700发送NSC-NVMe读取命令完成条目。桥接装置700可将NSC-NVMe读取完成条目智能地转发到NSC处理器711。此时,NSC处理器711继续处理或分析所提取的数据。
NSC处理器711可对所提取的数据进行修改。作为数据处理的结果,NSC处理器711也可产生新数据。在某一时刻,NSC处理器711可通过对后端SSD 750执行写入操作来保持这种数据。NSC处理器711使用需要被写入到后端SSD 750的数据的地址来构建NSC-NVMe写入命令。NSC处理器711接着插入适宜的Namespace.LBA存储位置,数据将在所述Namespace.LBA存储位置处被写入到后端SSD 750内。NSC处理器711接着将新构建的NSC-NVMe写入命令放置到桥接装置700的I/O SQ中。后端SSD 750通过PCIe总线提取NSC-NVMe写入命令并执行所述NSC-NVMe写入命令。后端SSD 750执行DMA操作以将数据从系统存储器写入到在NSC-NVMe写入命令中规定的后端SSD地址。一旦已完成数据DMA操作,后端SSD 750便会发送NSC-NVMe写入命令的完成条目。桥接装置700可将NSC-NVMe写入命令完成条目智能地转发到NSC处理器711。此时,NSC处理器可将写入数据缓冲器751中的写入数据丢弃。
根据一个实施例,一种桥接装置包括:第一接口,被配置成从在主机计算机上运行的应用接收第一组命令;一个或多个命令处理器,所述一个或多个命令处理器中的每一者被配置成对所述第一组命令进行转换并基于所述第一组命令产生第二组命令;第二接口,被配置成将所述第二组命令提供到数据存储装置;以及计算处理器,被配置成在运行所述应用的同时发出内部命令来以对于所述主机计算机而言不可知的方式在后台模式中从所述数据存储装置提取数据以及向所述数据存储装置写入数据。
所述数据存储装置可为与非易失性存储快速(NVMe)标准兼容的固态驱动器。
所述数据存储装置可为与基于网络结构的非易失性存储快速(NVMe-oF)标准兼容的固态驱动器。
所述第一接口可为位于网络结构网络上的NVMe-oF接口,且至所述数据存储装置的所述第二接口可为PCIe接口。所述第一组命令可包括NVMe-oF命令,且所述第二组命令可包括非易失性存储快速命令。
所述网络结构网络可选自以太网、光纤信道及无限宽频。
所述桥接装置还可包括命令剖析器及命令分类器。所述命令剖析器可被配置成剖析所述第一组命令并产生经剖析命令,且所述命令分类器可被配置成对所述经剖析命令进行分类并将经分类命令提供到所述一个或多个命令处理器。
所述一个或多个命令处理器可包括专用命令单元,所述专用命令单元被配置成处理由所述计算处理器发出的所述第二组命令的命令子集。
所述应用可为机器学习(ML)应用。
所述第二组命令中的每一者可包括命令识别符,所述命令识别符包括命令处理单元识别符及本地标签,所述命令处理单元识别符与所述一个或多个命令处理器对应,所述本地标签通过查找表被映射到所述第一组命令。
所述桥接装置还可包括用于对去往所述数据存储装置的所述第二组命令进行排队的提交队列及用于对从所述数据存储装置接收的完成条目进行排队的完成队列。
根据另一个实施例,一种提供接近存储计算的方法包括:通过第一接口从在主机计算机上运行的应用接收第一组命令;对所述第一组命令进行转换并基于所述第一组命令产生第二组命令;通过第二接口将所述第二组命令提供到数据存储装置;以及在运行所述应用的同时,发出内部命令来以对于所述主机计算机而言不可知的方式在后台模式中从所述数据存储装置提取数据及向所述数据存储装置写入数据。
所述数据存储装置可为与非易失性存储快速(NVMe)标准兼容的固态驱动器。
所述数据存储装置可为与基于网络结构的非易失性存储快速(NVMe-oF)标准兼容的固态驱动器。
所述第一接口可为位于网络结构网络上的NVMe-oF接口,且至所述数据存储装置的所述第二接口可为PCIe接口。所述第一组命令可包括NVMe-oF命令,且所述第二组命令可包括NVMe命令。
所述网络结构网络可选自以太网、光纤信道及无限宽频。
所述提供接近存储计算的方法还可包括:剖析所述第一组命令并产生经剖析命令,以及对所述经剖析命令进行分类并将经分类命令提供到一个或多个命令处理器。
所述一个或多个命令处理器可包括专用命令单元,所述专用命令单元被配置成处理由计算处理器发出的所述第二组命令的命令子集。
所述应用可为机器学习(ML)应用。
所述第二组命令中的每一者可包括命令识别符,所述命令识别符包括命令处理单元识别符及本地标签,所述命令处理单元识别符与所述一个或多个命令处理器对应,所述本地标签通过查找表被映射到所述第一组命令。
所述提供接近存储计算的方法还可包括:提供用于对去往所述数据存储装置的所述第二组命令进行排队的提交队列及用于对从所述数据存储装置接收的完成条目进行排队的完成队列。
上文已阐述以上示例性实施例来示出实施用于提供接近存储计算的桥接装置的各种实施例。所属领域中的普通技术人员将会联想到对所公开示例性实施例的各种修改及相对于所公开示例性实施例的不同之处。在以上权利要求中阐述了旨在落于本发明范围内的主题。

Claims (20)

1.一种桥接装置,其特征在于,包括:
第一接口,被配置成从在主机计算机上运行的应用接收第一组命令;
一个或多个命令处理器,所述一个或多个命令处理器中的每一者被配置成对所述第一组命令进行转换并基于所述第一组命令产生第二组命令;
第二接口,被配置成将所述第二组命令提供到数据存储装置;以及
计算处理器,被配置成在运行所述应用的同时发出内部命令来以对于所述主机计算机而言不可知的方式在后台模式中从所述数据存储装置提取数据以及向所述数据存储装置写入数据。
2.根据权利要求1所述的桥接装置,其特征在于,所述数据存储装置是与非易失性存储快速标准兼容的固态驱动器。
3.根据权利要求1所述的桥接装置,其特征在于,所述数据存储装置是与基于网络结构的非易失性存储快速标准兼容的固态驱动器。
4.根据权利要求3所述的桥接装置,其特征在于,所述第一接口是位于网络结构网络上的基于网络结构的非易失性存储快速接口,且至所述数据存储装置的所述第二接口是外围组件互连快速接口,且其中所述第一组命令包括基于网络结构的非易失性存储快速命令,且所述第二组命令包括非易失性存储快速命令。
5.根据权利要求4所述的桥接装置,其特征在于,所述网络结构网络选自以太网、光纤信道及无限宽频。
6.根据权利要求1所述的桥接装置,其特征在于,还包括命令剖析器及命令分类器,其中所述命令剖析器被配置成剖析所述第一组命令并产生经剖析命令,且所述命令分类器被配置成对所述经剖析命令进行分类并将经分类命令提供到所述一个或多个命令处理器。
7.根据权利要求1所述的桥接装置,其特征在于,所述一个或多个命令处理器包括专用命令单元,所述专用命令单元被配置成处理由所述计算处理器发出的所述第二组命令的命令子集。
8.根据权利要求1所述的桥接装置,其特征在于,所述应用是机器学习应用。
9.根据权利要求1所述的桥接装置,其特征在于,所述第二组命令中的每一者包括命令识别符,所述命令识别符包括命令处理单元识别符及本地标签,所述命令处理单元识别符与所述一个或多个命令处理器对应,所述本地标签通过查找表被映射到所述第一组命令。
10.根据权利要求1所述的桥接装置,其特征在于,还包括用于对去往所述数据存储装置的所述第二组命令进行排队的提交队列及用于对从所述数据存储装置接收的完成条目进行排队的完成队列。
11.一种提供接近存储计算的方法,其特征在于,包括:
通过第一接口从在主机计算机上运行的应用接收第一组命令;
对所述第一组命令进行转换并基于所述第一组命令产生第二组命令;
通过第二接口将所述第二组命令提供到数据存储装置;以及
在运行所述应用的同时,发出内部命令来以对于所述主机计算机而言不可知的方式在后台模式中从所述数据存储装置提取数据及向所述数据存储装置写入数据。
12.根据权利要求11所述的提供接近存储计算的方法,其特征在于,所述数据存储装置是与非易失性存储快速标准兼容的固态驱动器。
13.根据权利要求11所述的提供接近存储计算的方法,其特征在于,所述数据存储装置是与基于网络结构的非易失性存储快速标准兼容的固态驱动器。
14.根据权利要求13所述的提供接近存储计算的方法,其特征在于,所述第一接口是位于网络结构网络上的基于网络结构的非易失性存储快速接口,且至所述数据存储装置的所述第二接口是外围组件互连快速接口,且其中所述第一组命令包括基于网络结构的非易失性存储快速命令,且所述第二组命令包括非易失性存储快速命令。
15.根据权利要求14所述的提供接近存储计算的方法,其特征在于,所述网络结构网络选自以太网、光纤信道及无限宽频。
16.根据权利要求11所述的提供接近存储计算的方法,其特征在于,还包括:
剖析所述第一组命令并产生经剖析命令,以及
对所述经剖析命令进行分类并将经分类命令提供到一个或多个命令处理器。
17.根据权利要求16所述的提供接近存储计算的方法,其特征在于,所述一个或多个命令处理器包括专用命令单元,所述专用命令单元被配置成处理由计算处理器发出的所述第二组命令的命令子集。
18.根据权利要求11所述的提供接近存储计算的方法,其特征在于,所述应用是机器学习应用。
19.根据权利要求16所述的提供接近存储计算的方法,其特征在于,所述第二组命令中的每一者包括命令识别符,所述命令识别符包括命令处理单元识别符及本地标签,所述命令处理单元识别符与所述一个或多个命令处理器对应,所述本地标签通过查找表被映射到所述第一组命令。
20.根据权利要求11所述的提供接近存储计算的方法,其特征在于,还包括:提供用于对去往所述数据存储装置的所述第二组命令进行排队的提交队列及用于对从所述数据存储装置接收的完成条目进行排队的完成队列。
CN201810980128.7A 2017-10-11 2018-08-27 桥接装置及提供接近存储计算的方法 Active CN109656473B (zh)

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
US201762571064P 2017-10-11 2017-10-11
US201762571061P 2017-10-11 2017-10-11
US62/571,061 2017-10-11
US62/571,064 2017-10-11
US15/944,682 US10394746B2 (en) 2017-10-11 2018-04-03 System and method for providing near storage compute using a bridge device
US15/944,682 2018-04-03

Publications (2)

Publication Number Publication Date
CN109656473A true CN109656473A (zh) 2019-04-19
CN109656473B CN109656473B (zh) 2021-07-02

Family

ID=65993255

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201810911803.0A Pending CN109656843A (zh) 2017-10-11 2018-08-10 数据存储装置及桥接装置
CN201810980128.7A Active CN109656473B (zh) 2017-10-11 2018-08-27 桥接装置及提供接近存储计算的方法

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN201810911803.0A Pending CN109656843A (zh) 2017-10-11 2018-08-10 数据存储装置及桥接装置

Country Status (5)

Country Link
US (3) US10719474B2 (zh)
JP (2) JP7141902B2 (zh)
KR (2) KR102513924B1 (zh)
CN (2) CN109656843A (zh)
TW (2) TWI780168B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112131166A (zh) * 2019-06-24 2020-12-25 三星电子株式会社 轻量桥接器电路及其操作方法
CN113051206A (zh) * 2020-05-04 2021-06-29 威盛电子股份有限公司 桥接电路与计算机系统
US11809799B2 (en) 2019-06-24 2023-11-07 Samsung Electronics Co., Ltd. Systems and methods for multi PF emulation using VFs in SSD controller

Families Citing this family (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10466916B2 (en) * 2015-04-28 2019-11-05 American Megatrends International, Llc System and method of dynamic write protect of storage devices exposed by baseboard management controller (BMC)
US10445018B2 (en) * 2016-09-09 2019-10-15 Toshiba Memory Corporation Switch and memory device
US10719474B2 (en) 2017-10-11 2020-07-21 Samsung Electronics Co., Ltd. System and method for providing in-storage acceleration (ISA) in data storage devices
US10761775B2 (en) * 2018-02-09 2020-09-01 Samsung Electronics Co., Ltd. System and method for NVMe inter command association in SSD storage using a bridge device
US10585819B2 (en) * 2018-03-05 2020-03-10 Samsung Electronics Co., Ltd. SSD architecture for FPGA based acceleration
KR102559581B1 (ko) 2018-05-23 2023-07-25 삼성전자주식회사 재구성 가능 로직을 포함하는 스토리지 장치 및 상기 스토리지 장치의 동작 방법
US11436023B2 (en) * 2018-05-31 2022-09-06 Pure Storage, Inc. Mechanism for updating host file system and flash translation layer based on underlying NAND technology
US11188496B2 (en) * 2018-09-13 2021-11-30 Toshiba Memory Corporation System and method for storing data using ethernet drives and ethernet open-channel drives
US11366610B2 (en) 2018-12-20 2022-06-21 Marvell Asia Pte Ltd Solid-state drive with initiator mode
US11204819B2 (en) 2018-12-21 2021-12-21 Samsung Electronics Co., Ltd. System and method for offloading application functions to a device
US10938730B2 (en) * 2019-01-29 2021-03-02 EMC IP Holding Company LLC Data transmission techniques between systems having different communication speeds
WO2020183444A1 (en) 2019-03-14 2020-09-17 Marvell Asia Pte, Ltd. Transferring data between solid state drives (ssds) via a connection between the ssds
CN113767361A (zh) * 2019-03-14 2021-12-07 马维尔亚洲私人有限公司 启用以太网的固态驱动器(ssd)
WO2020183246A2 (en) * 2019-03-14 2020-09-17 Marvell Asia Pte, Ltd. Termination of non-volatile memory networking messages at the drive level
US11079958B2 (en) 2019-04-12 2021-08-03 Intel Corporation Apparatus, system and method for offloading data transfer operations between source and destination storage devices to a hardware accelerator
CN110008154B (zh) * 2019-04-16 2020-08-21 北京智芯微电子科技有限公司 提高处理器与访存总线时序的方法及内存属性预测器
US11973650B2 (en) * 2019-04-25 2024-04-30 Liqid Inc. Multi-protocol communication fabric control
JP2021086583A (ja) 2019-11-29 2021-06-03 キヤノン株式会社 情報処理装置、制御装置および制御装置の制御方法
US20210166188A1 (en) * 2019-12-03 2021-06-03 International Business Machines Corporation Computation of supply-chain metrics
KR20210080009A (ko) * 2019-12-20 2021-06-30 삼성전자주식회사 가속기, 가속기의 동작 방법 및 가속기를 포함한 디바이스
US11687279B2 (en) 2020-01-27 2023-06-27 Samsung Electronics Co., Ltd. Latency and throughput centric reconfigurable storage device
US11210034B2 (en) * 2020-03-02 2021-12-28 Silicon Motion, Inc. Method and apparatus for performing high availability management of all flash array server
CN112882966A (zh) * 2020-03-24 2021-06-01 威盛电子股份有限公司 运算装置
TWI811620B (zh) * 2020-03-24 2023-08-11 威盛電子股份有限公司 運算裝置與資料處理方法
US11941433B2 (en) 2020-03-24 2024-03-26 Via Technologies Inc. Computing apparatus and data processing method for offloading data processing of data processing task from at least one general purpose processor
CN111459864B (zh) * 2020-04-02 2021-11-30 深圳朗田亩半导体科技有限公司 一种存储器件及其制造方法
US11778055B2 (en) * 2020-07-13 2023-10-03 Samsung Electronics Co., Ltd. Systems and methods for storage-efficient sensors
KR102656104B1 (ko) * 2020-07-23 2024-04-11 주식회사 멤레이 비휘발성 메모리 제어 장치 및 비휘발성 메모리 장치
JP2022057870A (ja) 2020-09-30 2022-04-11 キヤノン株式会社 制御装置および情報処理システムに関する。
KR20220067795A (ko) 2020-11-18 2022-05-25 삼성전자주식회사 스토리지 장치 및 이를 포함하는 스토리지 시스템
US11442776B2 (en) 2020-12-11 2022-09-13 Liqid Inc. Execution job compute unit composition in computing clusters
JP2022143959A (ja) 2021-03-18 2022-10-03 キオクシア株式会社 メモリシステム、方法及びデータ処理システム
US20220300165A1 (en) * 2021-03-22 2022-09-22 Google Llc Cooperative Storage Architecture
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
US11966343B2 (en) * 2021-07-19 2024-04-23 Samsung Electronics Co., Ltd. Universal mechanism to access and control a computational device
US11880568B2 (en) 2021-11-17 2024-01-23 Seagate Technology Llc On demand configuration of FPGA interfaces
US11809323B1 (en) 2022-06-22 2023-11-07 Seagate Technology Llc Maintaining real-time cache coherency during distributed computational functions

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101089808A (zh) * 2005-03-29 2007-12-19 李春柏 电脑主机的延伸装置的工作方法
CN101221552A (zh) * 2007-01-09 2008-07-16 国际商业机器公司 隔离i/o适配器单元的系统和方法
CN101882122A (zh) * 2009-05-07 2010-11-10 瀚邦科技股份有限公司 数据通信系统及桥接器
US20110119464A1 (en) * 2009-11-13 2011-05-19 Western Digital Technologies, Inc. Data storage system comprising a mapping bridge for aligning host block size with physical block size of a data storage device
CN105068953A (zh) * 2014-05-07 2015-11-18 Hgst荷兰公司 用于对等高速外围组件互联存储传输的系统和方法
US20170286363A1 (en) * 2016-04-04 2017-10-05 Marvell World Trade Ltd. Methods and systems for accessing host memory through non-volatile memory over fabric bridging with direct target access

Family Cites Families (54)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7526619B1 (en) * 2006-09-05 2009-04-28 Nvidia Corporation Method for providing emulated flexible magnetic storage medium using network storage services
JP2008282308A (ja) 2007-05-14 2008-11-20 Nec Electronics Corp 協調検証装置、協調検証方法、協調検証プログラム
US7702662B2 (en) * 2007-05-16 2010-04-20 International Business Machines Corporation Method and system for handling reallocated blocks in a file system
US20090251867A1 (en) 2007-10-09 2009-10-08 Sharma Viswa N Reconfigurable, modularized fpga-based amc module
US8825940B1 (en) * 2008-12-02 2014-09-02 Siliconsystems, Inc. Architecture for optimizing execution of storage access commands
US9262303B2 (en) 2008-12-05 2016-02-16 Altera Corporation Automated semiconductor design flaw detection system
KR101587549B1 (ko) * 2009-02-12 2016-01-21 삼성전자주식회사 폴리머 및 이를 포함하는 폴리머 액츄에터
US8219776B2 (en) * 2009-09-23 2012-07-10 Lsi Corporation Logical-to-physical address translation for solid state disks
US8880573B2 (en) 2010-10-12 2014-11-04 Dolby Laboratories Licensing Corporation System and method of dynamic precision operations
US8995981B1 (en) * 2010-12-13 2015-03-31 Csr Technology Inc. Systems and methods for remote control adaptive configuration
US8819328B2 (en) * 2010-12-30 2014-08-26 Sandisk Technologies Inc. Controller and method for performing background operations
US8700834B2 (en) 2011-09-06 2014-04-15 Western Digital Technologies, Inc. Systems and methods for an enhanced controller architecture in data storage systems
US20140059278A1 (en) * 2011-11-14 2014-02-27 Lsi Corporation Storage device firmware and manufacturing software
US9009703B2 (en) 2012-05-10 2015-04-14 International Business Machines Corporation Sharing reconfigurable computing devices between workloads
EP2888818A1 (en) 2012-08-21 2015-07-01 Missing Link Electronics Inc. Configurable mixed-signal systems
US20140071855A1 (en) 2012-09-10 2014-03-13 Accedian Networks Inc. Transparent auto-negotiation of ethernet
US9298654B2 (en) * 2013-03-15 2016-03-29 International Business Machines Corporation Local bypass in memory computing
US9311230B2 (en) 2013-04-23 2016-04-12 Globalfoundries Inc. Local direct storage class memory access
US9785356B2 (en) 2013-06-26 2017-10-10 Cnex Labs, Inc. NVM express controller for remote access of memory and I/O over ethernet-type networks
CN110275840B (zh) * 2014-02-23 2024-03-15 拉姆伯斯公司 在存储器接口上的分布式过程执行和文件系统
AU2015229802A1 (en) 2014-03-08 2016-10-06 Diamanti, Inc. Methods and systems for converged networking and storage
US9959203B2 (en) * 2014-06-23 2018-05-01 Google Llc Managing storage devices
WO2015200313A1 (en) * 2014-06-23 2015-12-30 Liqid Inc. Modular switched fabric for data storage systems
US9846660B2 (en) * 2014-11-12 2017-12-19 Xilinx, Inc. Heterogeneous multiprocessor platform targeting programmable integrated circuits
US9977734B2 (en) * 2014-12-11 2018-05-22 Toshiba Memory Corporation Information processing device, non-transitory computer readable recording medium, and information processing system
JP6329318B2 (ja) * 2015-02-25 2018-05-23 株式会社日立製作所 情報処理装置
US20160259754A1 (en) 2015-03-02 2016-09-08 Samsung Electronics Co., Ltd. Hard disk drive form factor solid state drive multi-card adapter
US9619396B2 (en) * 2015-03-27 2017-04-11 Intel Corporation Two level memory full line writes
US10416915B2 (en) * 2015-05-15 2019-09-17 ScaleFlux Assisting data deduplication through in-memory computation
US9891935B2 (en) * 2015-08-13 2018-02-13 Altera Corporation Application-based dynamic heterogeneous many-core systems and methods
CN108702374A (zh) * 2015-09-02 2018-10-23 科内克斯实验室公司 用于以太网类型网络上的存储器和I/O的远程访问的NVM Express控制器
US10613756B2 (en) 2015-09-03 2020-04-07 Qualcomm Incorporated Hardware-accelerated storage compression
US9824173B1 (en) * 2015-09-11 2017-11-21 Xilinx, Inc. Software development-based compilation flow for hardware implementation
US9864828B1 (en) * 2015-09-17 2018-01-09 Xilinx, Inc. Hardware acceleration device handoff for using programmable integrated circuits as hardware accelerators
US10180850B1 (en) * 2015-11-03 2019-01-15 Xilinx, Inc. Emulating applications that use hardware acceleration
US10447728B1 (en) * 2015-12-10 2019-10-15 Fireeye, Inc. Technique for protecting guest processes using a layered virtualization architecture
KR102491651B1 (ko) * 2015-12-14 2023-01-26 삼성전자주식회사 비휘발성 메모리 모듈, 그것을 포함하는 컴퓨팅 시스템, 및 그것의 동작 방법
US9934173B1 (en) * 2016-02-24 2018-04-03 Xilinx, Inc. Pseudo cut-through architecture between non-volatile memory storage and remote hosts over a fabric
KR101923661B1 (ko) * 2016-04-04 2018-11-29 주식회사 맴레이 플래시 기반 가속기 및 이를 포함하는 컴퓨팅 디바이스
US20170323305A1 (en) * 2016-05-03 2017-11-09 Anantha Pradeep Mechanism for securing legal interactions
US10210123B2 (en) * 2016-07-26 2019-02-19 Samsung Electronics Co., Ltd. System and method for supporting multi-path and/or multi-mode NMVe over fabrics devices
US10620855B2 (en) * 2016-09-06 2020-04-14 Samsung Electronics Co., Ltd. System and method for authenticating critical operations on solid-state drives
US9703494B1 (en) 2016-09-26 2017-07-11 Intel Corporation Method and apparatus for protecting lower page data during programming in NAND flash
US11586565B2 (en) * 2016-10-03 2023-02-21 Samsung Electronics Co., Ltd. Non-volatile storage system and data storage access protocol for non-volatile storage devices
US10545861B2 (en) * 2016-10-04 2020-01-28 Pure Storage, Inc. Distributed integrated high-speed solid-state non-volatile random-access memory
US10656877B2 (en) * 2016-12-06 2020-05-19 Nutanix, Inc. Virtual storage controller
JP2018141448A (ja) 2017-02-28 2018-09-13 ダイキン工業株式会社 圧縮機
US10579471B2 (en) * 2017-03-02 2020-03-03 Toshiba Memory Corporation Storage device and error correction method for storage device
US11249779B2 (en) * 2017-09-01 2022-02-15 Intel Corporation Accelerator interconnect assignments for virtual environments
US10719474B2 (en) * 2017-10-11 2020-07-21 Samsung Electronics Co., Ltd. System and method for providing in-storage acceleration (ISA) in data storage devices
US10558777B1 (en) * 2017-11-22 2020-02-11 Xilinx, Inc. Method of enabling a partial reconfiguration in an integrated circuit device
US11296921B2 (en) * 2017-12-03 2022-04-05 Intel Corporation Out-of-band management of FPGA bitstreams
US10761951B2 (en) * 2017-12-28 2020-09-01 Intel Corporation FPGA based functional safety control logic (FFSCL)
JP7075067B2 (ja) * 2018-06-22 2022-05-25 日本電気株式会社 ストレージ装置

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101089808A (zh) * 2005-03-29 2007-12-19 李春柏 电脑主机的延伸装置的工作方法
CN101221552A (zh) * 2007-01-09 2008-07-16 国际商业机器公司 隔离i/o适配器单元的系统和方法
CN101882122A (zh) * 2009-05-07 2010-11-10 瀚邦科技股份有限公司 数据通信系统及桥接器
US20110119464A1 (en) * 2009-11-13 2011-05-19 Western Digital Technologies, Inc. Data storage system comprising a mapping bridge for aligning host block size with physical block size of a data storage device
CN105068953A (zh) * 2014-05-07 2015-11-18 Hgst荷兰公司 用于对等高速外围组件互联存储传输的系统和方法
US20170286363A1 (en) * 2016-04-04 2017-10-05 Marvell World Trade Ltd. Methods and systems for accessing host memory through non-volatile memory over fabric bridging with direct target access

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112131166A (zh) * 2019-06-24 2020-12-25 三星电子株式会社 轻量桥接器电路及其操作方法
US11809799B2 (en) 2019-06-24 2023-11-07 Samsung Electronics Co., Ltd. Systems and methods for multi PF emulation using VFs in SSD controller
CN113051206A (zh) * 2020-05-04 2021-06-29 威盛电子股份有限公司 桥接电路与计算机系统

Also Published As

Publication number Publication date
JP2019075109A (ja) 2019-05-16
KR102388893B1 (ko) 2022-04-21
US20230016328A1 (en) 2023-01-19
JP2019075104A (ja) 2019-05-16
TW201933081A (zh) 2019-08-16
JP7137430B2 (ja) 2022-09-14
US20190107956A1 (en) 2019-04-11
US20190108158A1 (en) 2019-04-11
CN109656843A (zh) 2019-04-19
KR102513924B1 (ko) 2023-03-27
US10394746B2 (en) 2019-08-27
TWI780168B (zh) 2022-10-11
JP7141902B2 (ja) 2022-09-26
KR20190040884A (ko) 2019-04-19
KR20190040886A (ko) 2019-04-19
TWI751374B (zh) 2022-01-01
CN109656473B (zh) 2021-07-02
US11487696B2 (en) 2022-11-01
TW201933080A (zh) 2019-08-16
US10719474B2 (en) 2020-07-21
US20200341933A1 (en) 2020-10-29

Similar Documents

Publication Publication Date Title
CN109656473A (zh) 桥接装置及提供接近存储计算的方法
CN110830392B (zh) 启用存储介质上的虚拟功能
CN105993009B (zh) 通过非透明桥向PCIe集群中的计算资源传送MSI-X中断的方法和装置
CN108776576B (zh) 用于聚合的网上NVMe装置的聚合存储方法
CN107209681B (zh) 一种存储设备访问方法、装置和系统
US10498645B2 (en) Live migration of virtual machines using virtual bridges in a multi-root input-output virtualization blade chassis
JP5362980B2 (ja) データ処理システム内で第1のホスト・システムと第2のホスト・システムとの間で通信するための方法、プログラム、およびシステム(ソケット接続および共用メモリを使用するホスト・システム間の通信のためのシステムおよび方法)
US9740409B2 (en) Virtualized storage systems
US9996484B1 (en) Hardware acceleration for software emulation of PCI express compliant devices
CN108694021A (zh) 使用基板管理控制器配置存储设备的系统和方法
US20080147898A1 (en) System and method for configuring an endpoint based on specified valid combinations of functions
US20080148295A1 (en) System and method for migration of single root stateless virtual functions
CN113253919A (zh) 多功能存储装置和处理消息的方法
US20170220506A1 (en) Modular Software Defined Storage Technology
CN103828332B (zh) 数据处理方法、装置、存储控制器和机柜
RU2641251C1 (ru) Способ и устройство для автоматического обмена сигналами между встроенными мультиплатами центрального процессора
CN110532208B (zh) 一种数据处理方法、接口转换结构及数据处理设备
GB2536515A (en) Computer system, and a computer system control method
US9172586B1 (en) Method and system for writing tag and data
US20180365185A1 (en) Peripheral component interconnect express (pcie) switching for multi-host computing system deployments
US9753883B2 (en) Network interface device that maps host bus writes of configuration information for virtual NIDs into a small transactional memory
CN114417373A (zh) 一种NVMe-oF用户态客户端的数据访问方法和装置
CN109478171A (zh) 提高openfabrics环境中的吞吐量
US9052839B2 (en) Virtual storage apparatus providing a plurality of real storage apparatuses
US9396023B1 (en) Methods and systems for parallel distributed computation

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant