CN110908715A - 多装置的配对系统及配对方法 - Google Patents
多装置的配对系统及配对方法 Download PDFInfo
- Publication number
- CN110908715A CN110908715A CN201910881494.1A CN201910881494A CN110908715A CN 110908715 A CN110908715 A CN 110908715A CN 201910881494 A CN201910881494 A CN 201910881494A CN 110908715 A CN110908715 A CN 110908715A
- Authority
- CN
- China
- Prior art keywords
- pairing
- coprocessor
- query
- identifier
- solid state
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 60
- 239000007787 solid Substances 0.000 claims abstract description 50
- 230000004044 response Effects 0.000 claims description 90
- 238000012545 processing Methods 0.000 claims description 16
- 238000004891 communication Methods 0.000 abstract description 6
- 230000015654 memory Effects 0.000 description 42
- 238000007726 management method Methods 0.000 description 31
- 230000006870 function Effects 0.000 description 28
- 230000001133 acceleration Effects 0.000 description 24
- 230000008901 benefit Effects 0.000 description 12
- 230000008569 process Effects 0.000 description 11
- 230000003863 physical function Effects 0.000 description 10
- 238000004519 manufacturing process Methods 0.000 description 8
- 230000002093 peripheral effect Effects 0.000 description 8
- 238000004364 calculation method Methods 0.000 description 7
- 238000013144 data compression Methods 0.000 description 7
- 230000005540 biological transmission Effects 0.000 description 6
- 238000012937 correction Methods 0.000 description 5
- 230000008859 change Effects 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 238000013459 approach Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 230000009977 dual effect Effects 0.000 description 2
- 230000014759 maintenance of location Effects 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 208000033748 Device issues Diseases 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 239000005441 aurora Substances 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 239000000969 carrier Substances 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007596 consolidation process Methods 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 239000004744 fabric Substances 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 230000035945 sensitivity Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000029305 taxis Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 238000010200 validation analysis Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
- G06F9/3012—Organisation of register space, e.g. banked or distributed register file
- G06F9/30134—Register stacks; shift registers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1605—Handling requests for interconnection or transfer for access to memory bus based on arbitration
- G06F13/1652—Handling requests for interconnection or transfer for access to memory bus based on arbitration in a multiprocessor architecture
- G06F13/1657—Access to multiple memories
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4022—Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4204—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
- G06F13/4221—Bus 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0662—Virtualisation aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0688—Non-volatile semiconductor memory arrays
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3877—Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/0026—PCI express
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Human Computer Interaction (AREA)
- Mathematical Physics (AREA)
- Information Transfer Systems (AREA)
- Mobile Radio Communication Systems (AREA)
- Stored Programmes (AREA)
- Advance Control (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开一种多装置的配对系统及配对方法。系统可包含固态驱动器和协处理器。固态驱动器可包含用于数据的存储装置、用于唯一固态驱动器标识符的存储装置以及用于唯一协处理器标识符的存储装置。协处理器可包含用于唯一固态驱动器标识符的存储装置和用于唯一协处理器标识符的存储装置。硬件接口可准许固态驱动器与协处理器之间的通信。
Description
相关申请案数据
本申请是2019年1月28日申请的美国专利申请第16/260,087号的部分接续申请,所述申请是2018年12月19日申请的美国专利申请第16/226,629号的部分接续申请,所述申请是2018年11月30日申请的美国专利申请第16/207,080号的接续申请,所述申请要求2018年10月12日申请的美国临时专利申请第62/745,261号的权益,所有上述申请出于所有目的以引用的方式并入本文中。
本申请要求2018年9月18日申请的美国临时专利申请第62/733,077号和2019年3月13日申请的美国临时专利申请第62/818,096号的权益,所述两个申请出于所有目的以引用的方式并入本文中。
技术领域
本发明概念大体上涉及计算机系统,且更确切地说,涉及包含存储装置和协处理器的系统。
背景技术
出于外观尺寸、功率、密度和性能益处,通常(但未必总是)将现场可编程门阵列(Field Programmable Gate Array;FPGA)和固态驱动器(Solid State Drive;SSD)子装置封装于一个装置外壳中。FPGA和SSD在主机的外围组件互连(Peripheral ComponentInterconnect;PCI)视图中显现为独立物理功能(physical function;PF)。FPGA和SSD子装置也群集于不具有相互关系的独立输入/输出(Input/Output;I/O)堆栈(具体来说,存储装置和OpenCL)上。
包含FPGA和SSD装置二者的外观尺寸将显示三个物理功能(PF):数据PF(也称为用户空间PF)、管理PF以及非易失性存储快速(Non-Volatile Memory Express;NVMe)PF。前两个PF用于FPGA;第三PF用于SSD。
在机器仅包含一个FPGA/SSD配对的情况下,独立PF对于配对识别不是问题(例如在x86主机服务器中)。但在(又,例如在密集地群集的x86主机服务器(a denselypopulated x86 host server)中)存在大于一个装置时,不存在对哪个FPGA与哪个SSD配对的指示。当启用PCIe直通且多功能装置显现为多个单功能装置时,在虚拟化环境中的问题更加严重。
对等(peer-to-peer;P2P)计算需要配对才能正确地运行。在不配对的情况下,p2p将失败,这是由于数据可加载到错误的FPGA装置环境中,从而导致硬件内核不具有正确的数据。当主机用户不可在配对需求中识别应用程序时,问题变得严重。
仍需要建立FPGA和其它协处理器与存储装置(例如SSD)的配对。
发明内容
根据本发明公开的实施例的多装置的配对系统包括:固态驱动器,包含用于数据的第一存储装置、用于唯一固态驱动器标识符的第二存储装置以及用于唯一协处理器标识符的第三存储装置;协处理器,包含用于所述唯一协处理器标识符的第四存储装置和用于所述唯一固态驱动器标识符的第五存储装置;以及硬件接口,位于所述固态驱动器与所述协处理器之间。
根据本发明公开的实施例的多装置的配对方法包括:将查询从第一装置发送到第二装置;从所述第二装置接收所述第一装置处的响应,所述响应包含第一配对数据;将所述第一配对数据存储在所述第一装置中的第一存储装置中;从所述第一装置中的第二存储装置存取第二配对数据;以及将所述第二配对数据从所述第一装置发送到所述第二装置。
根据本发明公开的实施例的多装置的配对方法包括:将第一查询发送到由第一虚拟标识符表示的固态驱动器;响应于所述第一查询而从所述固态驱动器接收唯一固态驱动器标识符和唯一协处理器标识符;将第二查询发送到由第二虚拟标识符表示的协处理器;响应于所述第二查询而从所述协处理器接收所述唯一固态驱动器标识符和所述唯一协处理器标识符;以及将所述第一虚拟标识符与所述第二虚拟标识符配对。
附图说明
图1绘示根据本发明概念的一实施例的设计成支持存储装置与协处理器的配对的机器。
图2绘示图1的协处理器的不同形式。
图3绘示图1的机器的额外细节。
图4绘示图1的装置的操作系统的视图。
图5绘示图1的配备成存储关于其配对的信息的装置。
图6绘示查询图1的SSD和图1的协处理器且将装置配对的操作系统。
图7绘示在本发明概念的一实施例中的呈单个外观尺寸的图1的SSD和图1的协处理器。
图8绘示在本发明概念的另一实施例中的呈单个外观尺寸的图1的SSD和图1的协处理器。
图9绘示根据本发明概念的一实施例的建立其配对的图1的SSD和图1的协处理器。
图10绘示根据本发明概念的另一实施例的建立其配对的图1的SSD和图1的协处理器。
图11绘示根据本发明概念的一个实施例的包含图1的SSD和图1的协处理器的第一拓朴。
图12绘示根据本发明概念的另一实施例的包含图1的SSD和图1的协处理器的第二拓朴。
图13绘示根据本发明概念的又一实施例的包含图1的SSD和图1的协处理器的第三拓朴。
图14绘示根据本发明概念的又一实施例的包含图1的SSD和图1的协处理器的第四拓朴。
图15绘示根据本发明概念的一实施例的供图1的SSD(或图1的协处理器)向其合作伙伴查询配对数据的实例过程的流程图。
图16绘示根据本发明概念的一实施例的供图1的SSD(或图1的协处理器)从其合作伙伴接收配对数据的查询的实例过程的流程图。
图17绘示根据本发明概念的一实施例的用于图1的SSD和/或图1的协处理器以对关于其和其配对合作伙伴的来自操作系统的查询作出响应的实例过程的流程图。
图18绘示根据本发明概念的一实施例的用于图5的操作系统以查询图1的SSD和图1的协处理器且将它们配对的实例过程的流程图。
图19绘示根据本发明概念的一实施例的用于图5的操作系统以对来自应用程序的关于装置的配对信息的查询作出响应的实例过程的流程图。
具体实施方式
现在将详细参考本发明概念的实施例,在附图中说明所述实施例的实例。在以下详细描述中,阐述众多具体细节以实现对本发明概念的透彻理解。然而,应理解,本领域的普通技术人员可以在没有这些具体细节的情况下实践本发明概念。在其它情况下,未详细描述众所周知的方法、过程、组件、电路和网络,以免不必要地混淆实施例的各方面。
应理解,虽然术语“第一”、“第二”等可在本文中用于描述各种元件,但这些元件不应受这些术语限制。这些术语仅用以将一个元件与另一元件区分开来。举例来说,在不脱离本发明概念的范围内,第一模块可以称为第二模块,且类似地,第二模块可以称为第一模块。
本文中用于本发明概念的描述中的术语是仅出于描述特定实施例的目的且并不希望限制本发明概念。除非上下文另外明确指示,否则如本发明概念和所附权利要求书的描述中所使用,单数形式“一(a/an)”和“所述(the)”旨在也包含复数形式。还将理解,如本文中所使用的术语“和/或”指代且涵盖相关联的所列项目中的一个或多个的任何和所有可能组合。应进一步理解,当在本说明书中使用时,术语“包括(comprises/comprising)”指定存在所陈述的特征、整数、步骤、操作、元件和/或组件,但不排除存在或添加一或多个其它特征、整数、步骤、操作、元件、组件和/或其群组。图式中的组件和特征未必是按比例绘制。
当大于一个固态驱动器(SSD)/现场可编程门阵列(FPGA)装置配对在相同服务器上可用时,存在主机应用用户可在两个独立的此类配对上选择对等缓冲器和SSD的可能性。这种选择将造成数据损坏和加速结果不正确。SSD/FPGA配对显示三个物理功能(PF):数据PF(也称为用户空间)(用于FPGA)、管理PF(用于FPGA)以及非易失性存储快速(NVMe)PF(用于SSD)。如果所有的三个PF都基于相同装置,那么可减轻这种问题。但使用Xilinx 3端口交换机设计方法(Xilinx 3-port switch design approach),FPGA和SSD可显示为不具有关于其物理关联的细节的独立装置。(Xilinx是赛灵思公司的注册商标)。由于Xilinx向其应用程序显示的OpenCL软件接口,因此问题变得更加复杂。软件接口使总线/装置/功能(bus/device/function;BDF)细节虚拟化且用逻辑编号(例如0、1、2等等)表示每个FPGA装置。软件级别下的这种额外间接完全混淆先前可在外围组件互连(PCI)BDF级别下推导出的配对关联。应用程序或用户必须了解PCI BDF级别下的多功能装置关联、Xilinx驱动器内部以及文件系统级映射复杂性。
这种布置容易出错且其自身基于所使用的环境显示出不同问题。对于用户来说,由于对等请求仍然可成功,因此这种布置的调试也可以是繁琐的。
密集地群集的系统
在上述情况下,期望所有装置位于相同的根复合体下。但密集地群集有SSD/FPGA装置的系统可能需要使用根据连接到每个CPU插座的每个根复合体配置的大于一个PCI快速(PCI Express;PCIe)交换机。利用可用于虚拟化环境中的存取控制服务(AccessControl Service;ACS)和CPU/芯片组的不同支持,对等未得到统一支持,从而为应用用户理解拓扑中的这些细微差别增加了负担。
从SSD到P2P按需拨号路由(Dial on Demand Routing;DDR)的p2p传输可因其可能不受支持而失败。这种结果是由这一事实造成的:不需要PCI根复合体支持在根端口之间转发包。这种设计选择在实践中对于存储加速环境中的p2p使用率较有利,但对于用户体验不利。
密集的SSD/FPGA部署可由各种系统供应商内置有任何因特尔(Intel)/AMD解决方案,且可存在关于系统将如何交互的有限控制或不存在对其的控制。这个事实可对起作用的和不起作用的产生复杂度。
虚拟化环境中的PCI直通
在某些Linux虚拟化环境中,多功能装置(例如SSD/FPGA装置)在用直通属性映射到虚拟机(Virtual Machine;VM)时可显现为针对每个物理功能的独立的单功能装置。因此,可将SSD与FPGA之间显示的三个PF映射为其间不具有关联的三个单功能装置。
不具有PCI知识的用户
除了以上情况之外,应用用户可能不够了解BDF关联。这个事实可能是由于用户是不需要用这种级别的系统细节教育的高级应用用户。这种问题揭露可能需要高级抽象来解决这种知识差距的情况。
所提出的解决方案
通过提供近存储加速且将其自身与其它独立式SSD和FPGA区分开,SSD/FPGA装置可视为新的SSD装置类别。新装置可能需要识别其自身的明确方式,即,其是具有近存储的FPGA还是具有近加速的NVMe SSD?解决方案可包含:
低级装置接口变更,包含:FPGA与SSD之间的私用硬件接口类系统管理总线(System Management Bus;SMBus),用于共享特性;NVMe SSD固件的较小更新,用于适应加速属性;以及对FPGA固件的更新,用于查询SSD且通告SSD识别配对属性。
高级软件接口变更,包含:FPGA的接口,所述接口可查询低级配对细节,向现有软件路径显示NVMe识别控制器新特性,且增强可管理性软件模块以向FPGA和SSD查询配对。
启用API以用于采用生态系统,包含可通过装置名、文件名等识别配对的应用接口调用。
这些变更应足够小,以视需要将NVMe SSD保持为通用。举例来说,可对现有NVMeSSD进行重新编程以使其作为SSD适应于SSD/FPGA装置。
更改NVMe SSD以便与FPGA配对
较小硬件变更使得FPGA和SSD能够彼此对话。
SSD控制器可支持两个SMBus主接口(如下文参看图7到图8和随附文本所绘示且论述)。一个SMBus主接口可通过来自板管理控制器(Board Management Controller;BMC)或此类管理实体的连接器连接到外部SMBus(带外(out-of-band;OOB))。SSD上的第二SMBus主端口可连接到FPGA装置上的从SMBus端口或主SMBus端口。带外(OOB)SMBus接口可用于实施管理协议,例如NVMe管理接口(NVMe Management Interface;NMVe-MI)。SSD控制器与FPGA之间的内部SMBus接口可专门用于这两个装置之间的通信。SSD控制器固件可向FPGA装置查询其唯一识别信息。这种接口还可用于FPGA装置的配置、状态以及由SSD控制器根据BMC或主机的指导对所述FPGA装置进行监视。当主机或BMC使用管理协议(例如SSD控制器的NVMe-MI)来查询FPGA识别信息时,SSD控制器又可从FPGA提取所需信息并将所述信息返回到主机或BMC。
SSD控制器可使用基于消息的协议来与FPGA装置通信。SSD控制器可将各种命令消息写入到FPGA的从SMBus端口,且随后轮询响应可用性。当FPGA响应消息准备就绪时,SSD控制器读取出响应消息。当FPGA需要SSD控制器的关注时,FPGA可设置由SSD控制器周期性地轮询的标志。
SSD固件所适应的较小变更可支持以上硬件设置。PCIe装置初始化完成首先在多功能装置内的嵌入式操作系统(operating system;O/S)环境中发生。稍后,多功能装置在x86主机环境中再次初始化。
作为PCIe init阶段的部分,软件组件(SSD装置中的固件)可查询并发现多功能装置的本地装置和附接装置。在NVMe SSD和FPGA组件的初始化完成后,软件组件可向FPGA查询其装置细节,所述装置细节提供唯一序列号和产品部件编号。这些细节可在其存储器映射的NVMe基地址寄存器(Base Address Register;BAR)空间中的私用偏移处写入到SSD寄存器。在复位之后但在使得PCI配置存取适应这种更新之前,可由SSD固件使得写入窗口可用。这将更新保持在内部且保持在嵌入式O/S的控制内。
NVMe规格限定识别控制器和命名空间命令以发现NVMe SSD的能力。作为这些能力的部分,控制器可限定以下内容以通告其加速能力(参见表1、表2及表3)。
表1:识别控制器数据结构
字节 | 任选/必选 | 描述 |
4095:4031 | O(供应商专有的) | 加速能力 |
表2:扩展特征
字节 | 类型 | 复位 | 描述 |
3:0 | RO | 0h | 供应商签名 |
4 | RO | 1h | 所存在的扩展特征 |
6:5 | RO | Imp.专有 | 计算类型:FPGA |
10:7 | RO | Imp.专有 | 装置计数,专用/共享,启用 |
12:11 | RO | Imp.专有 | 计算类型:cpu-ARM |
16:13 | RO | Imp.专有 | 装置计数,专用/共享,启用 |
表3:加速能力
字节 | 类型 | 复位 | 描述 |
3:0 | RO | 0h | 供应商签名 |
4 | RO | 1h | 加速装置启用且可用 |
6:5 | RO | 100h | 主要版本,次要版本 |
7 | RO | 1h | 当前状态 |
9:8 | RO | 0h | 保留 |
25:10 | RO | Imp.专有 | 如FPGA VPD细节中所报告的加速部件编号 |
29:26 | RO | Imp.专有 | 部件供应商ID,装置ID |
33:30 | RO | Imp.专有 | 加速特征1(TBD) |
63:34 | RO | 0h | 保留 |
更改FPGA以通告SSD装置配对
类似于NVMe SSD,FPGA可由嵌入式O/S组件编程有唯一SSD细节。这些细节可通过接口来供x86主机软件组件使用。
用于配对的嵌入式O/S组件
软件组件(也是SSD中的固件)可查询并发现多功能装置的本地装置和附接装置。在NVMe SSD和FPGA组件的初始化完成后,软件组件可向FPGA查询其装置细节,所述装置细节提供唯一序列号和产品部件编号。这些细节可在其存储器映射的NVMe BAR空间中的私用偏移处写入到SSD寄存器。类似地,软件组件可用唯一SSD细节对FPGA进行编程,使得其与彼此配对。
SMBus上的上电/复位时的样本枚举
1.FPGA向SSD发出NVMe(读取识别控制器)
2.SSD用识别数据进行响应
3.FPGA保存序列号、型号细节
4.FPGA发出NVMe(设置识别数据—偏移扩展特征—供应商专有的3072字节到4095字节),包含:
所存在的扩展特征
计算类型:FPGA、计数、专用/共享
计算类型:cpu-ARM、计数、专用/共享
5.SSD确认NVMe(设置识别数据)
6.FPGA发出NVMe(设置LogPage-compute_FPGA),包含:
序列号、型号
硬件能力—LUT、BRAM、URAM、Reg、DSP、DRAM
7.SSD确认NVMe(设置LogPage-compute_FPGA)
专用接口可存在于x86主机软件与这种组件之间以用于对配对和其它特征的额外查询。
可管理性软件更改为适应新配对
BMC通常与SMBus上的SSD介接。这种接口可扩展为适应FPGA配对,且还适应针对可用性和可管理性的特征和其它属性。
样本流:
1.BMC向SSD发出NVMe(读取LogPage Temp2)
2.SSD向FPGA请求读取温度传感器
3.FPGA返回温度数据
4.SSD返回LogPage数据
5.BMC向SSD发出NVMe(读取LogPage FPGA利用率)
6.SSD向FPGA请求读取FPGA利用率
7.FPGA返回利用率数据
8.SSD返回LogPage数据
用于配对的x86主机软件组件
这种软件组件可供用作库,且可在多功能装置中共存的NVMe SSD与FPGA之间提供配对细节。组件可对x86 SDAccel运行时间驱动器和库起作用以提供配对细节。
到今天为止的OpenCL接口不显示装置的BDF级别细节,而是用从偏移0开始的编号提供逻辑抽象。接口可由提供商在内部进行更改,以查询仅在硬件中显示的低级细节,且这样做还可以为计算端提供配对细节。此处,供应商可对接口变更负责。
用于查询配对的命令行工具
命令行工具可在不具有任何选项的情况下运行时提供细节,例如下表4中所绘示的那些细节。两个I/O堆栈和其可编程装置参考反映于细节中。NVMe SSD/dev/nvme2在指数零下与加速装置配对。应注意,如在这种服务器上所绘示,SSD装置次序并未随着FPGA加速装置而递增。
表4:命令行工具输出
命令行工具还可支持详细信息选项(verbose option),所述详细信息选项显示对像系统管理员这样的现场个人(field personal)而言更为重要的额外细节。这些额外细节可包含NVMe SSD属性,这些属性在这种类别的装置上是唯一的,例如序列号、模型和固件细节以及命名空间和多分区映射信息。细节的唯一集合还包含可识别装置插入的槽位的PCIe装置链。下表5绘示此类信息的实例。
表5:命令行工具输出
对于装置/dev/nvme0,将SSD/FPGA装置插入到同样接近于numa节点0CPU的槽号1中。这种信息可以用于现场级分析以及可在应用级处用于CPU亲和力。这种信息还可在包含于深层嵌套式PCIe交换结构中时用于理解装置分级结构,且还可隔离装置问题:例如对于系统管理员。
优势
具有针对SSD/FPGA装置的配对解决方案有益于使此类装置更可用。短期来看,这种配对解决方案可解决识别差距(identification gap)。长期来看,这种配对解决方案可帮助在如何推进加速装置方面做出决策。这种解决方案可以用于其它加速器类型,例如GPU、嵌入式CPU(比如高级精简指令集计算机(Reduced Instruction Set Computer;RISC)机器(Advanced Reduced Instruction Set Computer Machine;ARM)、RISC-V、张量处理单元(Tensor Processing Unit;TPU)和基于特定硬件的加速器)、NVMe规格扩展或一些其它机制。
图1绘示根据本发明概念的一实施例的设计成支持存储装置与协处理器的配对的机器。在图1中,绘示机器105。机器105可包含处理器110。处理器110可以是任何多种处理器:例如因特尔至强(Intel Xeon)、赛扬(Celeron)、安腾(Itanium)或凌动处理器(Atomprocessor)、AMD皓龙处理器(Opteron processor)、ARM处理器等。虽然图1在机器105中绘示单个处理器110,但机器105可包含任何数目的处理器,所述处理器中的每一个可以是单核处理器或多核处理器,且可以任何所需组合混合。
机器105还可包含存储器115。存储器115可以是任何种类的存储器,例如闪存、动态随机存取存储器(Dynamic Random Access Memory;DRAM)、静态随机存取存储器(StaticRandom Access Memory;SRAM)、永久性随机存取存储器、铁电随机存取存储器(Ferroelectric Random Access Memory;FRAM)或非易失性随机存取存储器(Non-Volatile Random Access Memory;NVRAM),例如磁阻随机存取存储器(MagnetoresistiveRandom Access Memory;MRAM)等。存储器115也可以是不同存储器类型的任何所需组合。存储器115可由存储器控制器120管理。
机器105还可包含存储装置125-1和存储装置125-2,所述存储装置可由装置驱动器(未绘示)控制。存储装置125-1和存储装置125-2可以是任何所需形式的存储装置。举例来说,存储装置125-1和存储装置125-2可以是固态驱动器(SSD),例如非易失性存储快速(NVMe)SSD、硬盘驱动器或任何其它所需形式的存储装置。此外,存储装置125-1和存储装置125-2可具有不同类型、制造商和/或模型:例如,存储装置125-1可能是SSD,而存储装置125-2可能是硬盘驱动器。
机器105还可包含协处理器130-1和协处理器130-2。协处理器130-1和协处理器130-2可提供任何所需功能以支持存储装置125-1和存储装置125-2。举例来说,协处理器125-1可提供如下功能:数据加速、数据删除重复、数据完整性、数据加密、数据压缩和/或擦除编码。协处理器130-1和协处理器130-2可各自提供仅一个此类功能,或协处理器130-1和协处理器130-2可各自提供多个此类功能。可使用任何所需组件来实施协处理器130-1和协处理器130-2。图2绘示协处理器130-1和协处理器130-2的一些实例实施方案,例如现场可编程门阵列(FPGA)205、专用集成电路(Application-Specific Integrated Circuit;ASIC)210、图形处理单元(Graphics Processing Unit;GPU)215、张量处理单元(TPU)220、擦除编码控制器225和小型处理器核心230,但本发明概念的实施例也可包含协处理器130-1和协处理器130-2的其它实施方案。
返回到图1,虽然图1绘示两个存储装置,其中每个存储装置具有一个协处理器,但本发明概念的实施例可视需要包含任何数目的存储装置和用于每个存储装置的任何数目的协处理器,所述存储装置和协处理器可具有不同类型。此外,在本发明概念的一些实施例中,一些存储装置可能具有协处理器,而其它存储装置可能不具有协处理器。但正如仅一个存储装置和一个协处理器的情况,不必考虑关于将存储装置与协处理器配对的问题,本发明概念的大部分实施例包含具有对应协处理器的至少两个存储装置。在本文档的剩余部分中,术语“配对”旨在指代其中配对中的一个装置支持另一装置的装置,且不应理解为仅将配对限制于两个装置。举例来说,如果存储装置包含FPGA和GPU二者,那么所有的三个装置可视为“配对”。(可替代地,FPGA和GPU可分别视为与公共存储装置配对,若需要,保留FPGA与待间接确定的GPU之间的关联。)
虽然图1将机器105描绘为服务器(其可以是独立式服务器或机架服务器),但本发明概念的实施例可包含(但不限于)任何所需类型的机器105。举例来说,机器105可用台式计算机或膝上型计算机或可得益于本发明概念的实施例的任何其它机器替换。机器105也可包含专用便携式计算机器、平板计算机、智能手机和其它计算机器。
图3绘示图1的机器的额外细节。在图3中,通常,机器105包含一或多个处理器110,所述一或多个处理器可包含存储器控制器120和时钟305,所述存储器控制器和时钟可用于协调装置105的组件的操作。处理器110还可以连接到存储器115,例如,所述存储器可包含随机存取存储器(random access memory;RAM)、只读存储器(read-only memory;ROM)或其它状态保持介质。处理器110还可以连接到存储装置125和网络连接器310,所述网络连接器可以是例如以太网连接器或无线连接器。处理器110也可连接到总线315,用户接口320和输入/输出接口端口可附接到所述总线,可使用输入/输出引擎325以及其它组件来管理所述输入/输出接口端口。
图4绘示图1的装置的操作系统的视图。在常规系统中,操作系统405使用虚拟标识符(identifier;ID)410、虚拟标识符415、虚拟标识符420和虚拟标识符425来识别SSD 125-1和SSD 125-2以及协处理器130-1和协处理器130-2。(从此处开始,论述的重点是作为可能包含协处理器的存储装置的具体实例的SSD,但本发明概念的实施例仍然可扩展到除SSD外的类型的存储装置。)可在通过控制器(例如外围组件互连(PCI)枚举器)枚举装置期间分配虚拟ID 410、虚拟ID 415、虚拟ID 420和虚拟ID 425,或可将它们分配作为“构建”图1的机器105内的虚拟机(VM)的部分(或二者)。无论哪种方式,操作系统405仅具有作为虚拟ID410、虚拟ID 415、虚拟ID 420和虚拟ID 425的结果而提供的信息。借助于SSD 125-1和SSD125-2是SSD的事实,操作系统405可以知道分配有虚拟ID 410的SSD 125-1可包含数据存储装置430,且可以知道分配有虚拟ID 415的SSD 125-2可包含数据存储装置435。但操作系统405可不知道分配有虚拟ID 420的协处理器130-1打算支持分配有虚拟ID 410的SSD 125-1的操作,或可不知道分配有虚拟ID 425的协处理器130-2打算支持SSD 125-2的操作。
图5绘示图1的配备成存储关于其配对的信息的装置。在图5中,装置125-1、装置125-2、装置130-1和装置130-2可包含用于与配对有关的各种信息片段的存储装置。因此,SSD 125-1可包含用于关于其自身和其配对协处理器(协处理器130-1)的信息的存储装置505-1和存储装置505-2,SSD 125-2可包含用于关于其自身和其配对协处理器(协处理器130-2)的信息的存储装置510-1和存储装置510-2,协处理器130-1可包含用于关于其自身和其配对SSD(SSD 125-1)的信息的存储装置515-1和存储装置515-2,且协处理器130-2可包含用于关于其自身和其配对SSD(SSD 125-2)的信息的存储装置520-1和存储装置520-2。在本发明概念的一些实施例中,存储装置505-1、存储装置505-2、存储装置510-1、存储装置510-2、存储装置515-1、存储装置515-2、存储装置520-1以及存储装置520-2中所存储的信息可包含每个装置所独有的信息,例如全局唯一ID(globally unique ID;GUID)的序列号;在本发明概念的其它实施例中,存储装置505-1、存储装置505-2、存储装置510-1、存储装置510-2、存储装置515-1、存储装置515-2、存储装置520-1以及存储装置520-2可存储在配对装置之间一致同意的信息,所述信息是唯一的或几乎可确定是唯一的。举例来说,存在通过不安全连接使得双方同意共享秘密以用于确保各方之间的通信安全的算法:SSD 125-1和协处理器130-1可使用此类算法来同意可用作一致同意的信息的共享秘密。或SSD 125-1和协处理器130-1可在制造时(当它们进行物理配对时)分配有公共数据段。应注意,如果配对装置使用其它装置将不会使用的一些唯一信息,那么装置125-1、装置125-2、装置130-1和装置130-2至少出于配对目的可能仅需要存储所述唯一信息,而不是各自存储关于配对中的每个装置的信息。
当操作系统405向单独的装置查询关于它们自身的信息时,每个装置还可返回关于其配对的信息。因此,例如,SSD 125-1可将其自身的信息存储在存储装置505-1中且将关于协处理器130-1的信息存储在存储装置505-2中;类似地,协处理器130-1可将其自身的信息存储在存储装置515-2中且将关于SSD 125-1的信息存储在存储装置515-1中。随后,操作系统405可使用来自存储装置505-1、存储装置505-2、存储装置515-1以及存储装置515-2的信息来确定SSD 125-1与协处理器130-1是配对的。此类信息可以是例如各种装置的序列号或期望独有的其它信息,例如GUID或计算得到的共享秘密。举例来说,如果两个(或大于两个)装置各自提供其自身的序列号,且其配对的序列号与所述序列号正如期望一样对应,那么操作系统405可将两个装置视为配对。类似地,如果两个(或大于两个)装置各自提供唯一标识符(或可能期望独有的标识符),那么装置全部提供所述标识符的事实可证实这些装置应视为是配对的。以此方式,操作系统405可视需要引起虚拟ID 410、虚拟ID 415、虚拟ID420以及虚拟ID 425的配对。
图6绘示查询图1的SSD 125-1和图1的协处理器130-1且将装置配对的图5的操作系统405。在图6中,操作系统405可向SSD 125-1发送询问其装置细节的查询605。应注意,常规操作系统可查询装置以确定装置特性和特征作为启动的部分;基本输入/输出系统(Basic Input/Output System;BIOS)还可查询以发现哪些装置是连接的。新颖的是,作为响应610,SSD 125-1可包含关于其自身的信息和关于协处理器130-1的信息。类似地,操作系统405可向协处理器130-1发送询问其装置细节的查询615:协处理器130-1可发送包含关于其自身的信息和关于SSD 125-1的信息的响应620。当操作系统405接收响应610和响应620时,操作系统405可使用所述信息来确定SSD 125-1和协处理器130-1是配对的,如操作625中所绘示。操作系统405随后可存储这种配对信息。
一旦操作系统405察觉到哪些存储装置与哪些协处理器配对,操作系统405可使这种信息可供应用程序和/或用户使用。举例来说,操作系统405可提供应用编程接口(Application Programming Interface;API),应用程序可使用应用编程接口来向操作系统405查询配对信息。举例来说,应用程序可发送查询,以向SSD 125-1询问哪个(哪些)装置经由API与所述装置配对。操作系统405随后可用协处理器130-1与SSD 125-1配对的信息进行响应。另一应用程序可询问关于与特定数据段相关联的配对装置的信息:例如,给定特定文件(或键值目标,或可在存储装置上的另一格式中所存储的数据),哪些存储装置存储所述数据,以及哪些其它装置与所述存储装置配对。操作系统405随后可确定哪个存储装置存储所述数据,且随后返回关于存储装置和其配对的信息。(当然,应用程序可发送两个API查询:一个用以确定存储目标数据的特定存储装置,且另一个用以确定哪个(哪些)装置与所述存储装置配对。将这两个查询组合成一个仅是一种简化。)
一旦应用程序经由API了解到哪些装置是配对的,应用程序随后可相应地使用所述信息。举例来说,假设图1的协处理器130-1和协处理器130-2是提供数据加速服务的两个FPGA。一旦应用程序知道哪个存储装置存储目标数据,应用程序可将请求导向与所述存储装置配对的FPGA,从而请求对目标数据进行数据加速服务。相同原理适用于可由图1的协处理器130-1和协处理器130-2提供的任何其它功能:数据加速仅用作实例功能。
此时,一个问题保持不变:如何使装置察觉到识别配对中的装置的信息?如果在制造时将信息分配为由配对装置共享的唯一数据,那么应答是显而易见的。但如果装置使用其序列编号或每个装置分别所独有的其它数据来帮助识别其配对,那么应答不会如此简单。图7到图9说明装置可如何获得这种信息。
图7绘示在本发明概念的一实施例中的呈单个外观尺寸的图1的SSD 125-1和图1的协处理器130-1。在图7中,SSD 125-1和协处理器130-1可使用连接装置的硬件接口进行通信。举例来说,这种硬件接口可以是连接SSD 125-1和协处理器130-1的系统管理总线(SMBus)。如果使用SMBus,那么装置(SSD 125-1或协处理器130-1)中任一个可以是主装置,且另一个可以是从装置,或二者可以是多主总线上的主装置。举例来说,在一些实施例中,SSD 125-1可以是SMBus 705的主装置,而协处理器130-1可以是从装置。
如所绘示,SSD 125-1可经由带内连接710和带外连接715二者连接到图1的机器105。带内连接710可包含例如通过PCI快速(PCIe)连接发送的消息,而带外连接715可以是例如另一SMBus连接(在其上SSD 125-1可为从装置,且基板管理控制器(BMC)可为主装置,或在其上SSD 125-1和BMC可以是多主总线上的主装置)。通常,带内连接710可以用于常规请求(例如向SSD 125-1发出的读取请求和写入请求)且可以用于使用协处理器130-1的功能,而带外连接715可以用于控制类型请求:例如,对SSD 125-1和/或协处理器130-1的当前运行温度的查询。在使用带内连接710来与协处理器130-1进行通信的情况下,SSD 125-1可充当直通装置,所述装置依赖于针对协处理器130-1的消息。可替代地,SSD 125-1可在一些转换器能力中起作用,从而将如从图1的机器105接收的请求转换为不同形式以供传输到协处理器130-1。
与图7相比,图8绘示在本发明概念的另一实施例中的呈单个外观尺寸的图1的SSD125-1和图1的协处理器130-1。在图8中所绘示的实施例中,协处理器130-1直接连接到带内连接710,而不是SSD 125-1。在本发明概念的这一实施例中,当协处理器130-1接收既定用于SSD 125-1的请求时,协处理器130-1可充当直通装置,所述装置依赖于针对SSD 125-1的消息。可替代地,协处理器130-1可在一些转换器能力中起作用,从而将如从图1的机器105接收的请求转换为不同形式以供传输到SSD 125-1。在所有其它方面中,SSD 125-1和协处理器130-1与如图7中的SSD 125-1和协处理器130-1类似地操作。
虽然图7到图8解决SSD 125-1和协处理器130-1二者以相同外观尺寸出售的可能性,SSD 125-1和协处理器130-1可作为独立组件出售,只要存在准许这两个配对装置之间的通信的某一形式的硬件接口705即可,以使得装置能够与图4的操作系统405共享配对信息。
图9绘示根据本发明概念的一实施例的建立其配对的图1的SSD 125-1和图1的协处理器130-1。图9可在SSD 125-1和协处理器130-1共享硬件接口(例如图7到图8的硬件接口705)时使用。在图9中,SSD 125-1正在从协处理器130-1发起对装置信息的查询。SSD125-1可向协处理器130-1发送识别装置905(这种命令和图9到图10中的所有其它命令可以是NVMe命令,或可以是使用其它协议的命令)。协处理器130-1可用识别响应910进行响应,所述识别响应可包含与SSD 125-1和协处理器130-1的配对有关的唯一信息。这种信息可包含例如GUID或协处理器130-1的制造商型号和序列号。在接收到识别响应910后,SSD 125-1可存储协处理器130-1的信息:例如将其存储于图5的存储装置505-2中。SSD 125-1随后可发送设置配对数据915,所述设置配对数据可包含SSD 125-1的唯一信息:此外,例如,GUID或SSD 125-1的制造商型号和序列号。协处理器130-1随后可存储SSD 125-1的信息:此外,例如,将其存储于图5的存储装置515-1中。协处理器130-1随后可发送设置响应920以向SSD125-1通知接收到设置配对数据命令中的配对数据。最后,SSD 125-1可发送设置高级数据925以向协处理器130-1通知SSD 125-1希望协处理器130-1知道的任何其它数据,所述协处理器130-1可用设置响应930进行应答。
图10绘示根据本发明概念的另一实施例的建立其配对的图1的SSD 125-1和图1的协处理器130-1。除了协处理器130-1而不是SSD 125-1可发起信息交换之外,图10类似于图9。在图10中,协处理器130-1可向SSD 125-1发送读取身份数据1005。SSD 125-1可用读取响应1010进行响应,所述读取响应可包含与协处理器130-1和SSD 125-1的配对有关的唯一信息。这种信息可包含例如GUID或SSD 125-1的制造商型号和序列号。在接收到读取响应1010后,协处理器130-1可存储SSD 125-1的信息:例如,将其存储于图5的存储装置505-2中。协处理器130-1随后可发送设置身份数据1015,所述设置身份数据可包含协处理器130-1的唯一信息:此外,例如,GUID或协处理器130-1的制造商型号和序列号。SSD 125-1随后可存储协处理器130-1的信息:此外,例如,将其存储于图5的存储装置515-1中。SSD 125-1随后可发送设置响应1020以向协处理器130-1通知接收到设置身份数据命令中的配对数据。最后,协处理器130-1可发送设置日志页1025以向SSD 125-1通知协处理器130-1希望SSD 125-1知道的任何其它数据,所述SSD 125-1可用设置响应1030进行应答。
图11绘示根据本发明概念的一个实施例的包含图1的SSD 125-1和图1的协处理器130-1的第一拓朴。图11到图14截取自同在申请中的2019年1月28日申请的美国专利申请第16/260,087号,所述申请是2018年12月19日申请的美国专利申请第16/226,629号的部分接续申请,所述申请是2018年11月30日申请的美国专利申请第16/207,080号的接续申请,所述申请要求2018年10月12日申请的美国临时专利申请第62/745,261号的权益,所有上述申请出于所有目的以引用的方式并入本文中。但是同在申请中的美国专利申请第16/260,087号关注的是具有擦除编码的PCIe交换机的总体组合,而本文更为关注的是SSD和其协处理器的结构。
在图11中,绘示具有后备擦除编码逻辑的PCIe交换机1105,其可实施为图1的机器105的独立组件。也就是说,可制造具有后备擦除编码逻辑的PCIe交换机1105,且其可与任何其它组件(例如图1的处理器110、存储装置125-1或协处理器130-1)分开出售。
具有后备擦除编码逻辑的PCIe交换机1105可连接到存储装置125-1。在图11中,将具有后备擦除编码逻辑的PCIe交换机1105绘示为连接到仅单个存储装置,所述存储装置可以不支持擦除编码:擦除编码需要至少两个存储装置或存储装置的至少两个部分来执行分带、分块、分组以及使用奇偶校验或码信息。但即使利用单个存储装置,具有后备擦除编码逻辑的PCIe交换机1105也可以提供一些优势。举例来说,具有后备擦除编码逻辑的PCIe交换机1105可支持将纠错码与存储装置125-1一起使用,或如果存储装置125-1本身不提供那些服务,那么对存储在存储装置125-1上的数据进行加密。
存储装置125-1也可以连接到FPGA 205、图1的协处理器130-1的实例(针对关于图11到图14的论述的剩余部分,对FPGA 205的任何参考可理解为包含对如图2中所绘示的任何替代协处理器的参考,或更通常来说对图1的协处理器130-1的参考)。FPGA 205可支持加速。简单地说,可存在其中可能需要对数据进行处理且随后将其丢弃的情况。将所有所述数据加载到图1的处理器110中以执行处理可以是昂贵且耗时的:计算更接近数据时可更容易地执行。FPGA 205可支持在更接近存储装置的情况下执行此类计算,从而避免了将数据加载到图1的处理器110中来执行计算:这种概念称为“加速”。基于FPGA的加速在2018年9月5日申请的美国专利申请第16/122,865号中更详细地论述,所述申请要求2018年3月13日申请的美国临时专利申请第62/642,568号、2018年3月13日申请的美国临时专利申请第62/641,267号以及2018年3月5日申请的美国临时专利申请第62/638,904号的权益,所有上述申请特此以引用的方式并入本文中;且要求2018年9月6日申请的美国专利申请第16/124,179号、2018年9月6日申请的美国专利申请第16/124,182号以及2018年9月6日申请的美国专利申请第16/124,183号的权益,所有上述申请是2018年9月5日申请的美国专利申请案第16/122,865号的接续申请且特此以引用的方式并入本文中。由于加速的目标是在不将数据传输到图1的处理器110的情况下处理数据,因此图11将FPGA 205绘示为更接近存储装置125-1。然而,应注意,不需要图11中所绘示的特定布置:FPGA 205可位于具有后备擦除编码逻辑的PCIe交换机1105与存储装置125-1之间。
除数据加速以外,FPGA 205可提供其它功能以支持存储装置125-1。举例来说,FPGA 205可在存储装置125-1上实现数据删除重复功能,以试图减少将相同数据存储在存储装置125-1上的次数。FPGA 205可确定是否不止一次将特定数据存储在存储装置125-1上,在各种逻辑块地址之间建立关联(或由主机用来识别数据的其它信息),且其中将数据存储在存储装置125-1上,并且删除额外复本。
可替代地,FPGA 205可在存储装置125-1上实现数据完整性功能(例如添加纠错码),以防止通过存储装置125-1的操作中或使用循环冗余校正(Cyclic RedundancyCorrection;CRC)进行端对端保护的T10DIF(数据完整性字段)中的错误而发生数据丢失。以此方式,FPGA 205可能能够检测在存储装置125-1上写入或读取数据的错误何时出现或对跃迁中的数据进行检测并恢复初始数据。应注意,FPGA 205可在主机未察觉到正在提供数据完整性功能的情况下实现数据完整性功能:主机可仅参看数据本身且不参看任何纠错码。
可替代地,FPGA 205可在存储装置125-1上实现数据加密功能,以防止未经授权的各方能够在存储装置125-1上存取数据:在不提供适合的加密密钥的情况下,从FPGA 205返回的数据对于请求者来说是无意义的。主机可提供待在写入和读取数据时使用的加密密钥。或,FPGA 205可自动执行数据加密和解密:FPGA 205可存储加密密钥(且甚至可代表主机产生加密密钥),且基于谁正在请求数据来确定要使用的适合的加密密钥。
可替代地,FPGA 205可在存储装置125-1上实现数据压缩功能,以减少将数据存储在存储装置125-1上所需的空间量。当将数据写入到存储装置125-1时,FPGA 205可实施将由主机提供的数据压缩成较小存储量随后存储压缩的数据(以及在从存储装置125-1读取数据时恢复初始数据所需的任何信息)的功能。当从存储装置125-1读取数据时,FPGA 205可读取压缩的数据(以及从压缩的数据恢复初始数据所需的任何信息)且除去压缩以恢复初始数据。
可使用数据删除重复、数据完整性、数据加密以及数据压缩的任何所需实施方案。本发明概念的实施例不限于任何这些功能的特定实施方案。
FPGA 205还可视需要在存储装置125-1上实现功能的任何组合。举例来说,FPGA205可实施数据压缩和数据完整性二者(由于数据压缩可增加数据对错误的灵敏度:如存储在存储装置125-1上的数据中的单个错误可导致大量数据不可用)。或FPGA 205可实施数据加密和数据压缩二者(以在尽可能少地使用用于数据的存储装置时保护数据)。也可以由FPGA 205提供两个或大于两个功能的其它组合。
就总体操作而言,在实现任何这些功能时,FPGA 205可从适合的源读取数据。应注意,虽然术语“源”是单数名词,但是本发明概念的实施例可在适当情况下从多个源(例如多个存储装置)读取数据。FPGA 205随后可对数据执行适当的操作:数据加速、数据整合、数据加密和/或数据压缩。FPGA 205随后可对操作结果采取适当的操作:例如,将结果发送到图1的机器105,或将数据写入到存储装置125-1。
虽然参看图11的FPGA 205描述以上功能,但本发明概念的实施例可将这些功能包含在系统(所述系统包含FPGA)中的任何位置。另外,本发明概念的实施例可使FPGA 205从“远距离”存储装置存取数据。举例来说,暂时回到图1,且假设存储装置125-1包含类似于FPGA 205的FPGA,但存储装置125-2不含此类协处理器。在存储装置125-1中所包含的FPGA可用于通过向存储装置125-2发送请求来将其功能应用于存储装置125-2。举例来说,如果存储装置125-1中的FPGA提供数据加速,那么存储装置125-1中的FPGA可发送对从存储装置125-2读取数据的请求,执行适当的加速,随后将结果发送到适合的目的地(例如图1的机器105)。
在图11中(且在下图12到图14中所绘示的拓扑中),具有后备擦除编码逻辑的PCIe交换机1105可附接到不具备擦除编码的资格的装置。举例来说,具有后备擦除编码逻辑的PCIe交换机1105可附接到具有内建式擦除编码功能的其它存储装置或附接到不是存储装置的装置,例如图11的FPGA 205或图2的GPU 215。可将所有此类装置描述为不具备擦除编码(或至少,通过具有后备擦除编码逻辑的PCIe交换机1105进行擦除编码)的资格的装置。
当具有后备擦除编码逻辑的PCIe交换机1105连接到不具备擦除编码的资格的装置时,系统具有可使用的各种替代方法。在本发明概念的一个实施例中,包含不具备擦除编码的资格的任何装置可导致具有后备擦除编码逻辑的PCIe交换机1105的后备擦除编码逻辑停用。因此,如果例如具有后备擦除编码逻辑的PCIe交换机1105连接到图11的FPGA 205,或图2的GPU 215,或具有本地擦除编码逻辑的存储装置,那么连接到具有后备擦除编码逻辑的PCIe交换机1105的存储装置中无一可与擦除编码一起使用。应注意,对停用具有后备擦除编码逻辑的PCIe交换机1105的后备擦除编码逻辑的决策不必转移到在相同底盘或其它底盘中的具有后备擦除编码逻辑的其它PCIe交换机。举例来说,暂时提前参看图13,图13绘示两个具有后备擦除编码逻辑的PCIe交换机1105、具有后备擦除编码逻辑的PCIe交换机1305,其中一个可具有启用的后备擦除编码逻辑,而另一个可具有停用的后备擦除编码逻辑。
本发明概念的另一实施例可停用不具备擦除编码的资格的装置,如同它们根本未连接到具有后备擦除编码逻辑的PCIe交换机1105一样来处理这些装置。在本发明概念的这一实施例中,具有后备擦除编码逻辑的PCIe交换机1105可针对存储装置125-1启用后备擦除编码逻辑,且可停用不具备擦除编码的资格的任何其它存储装置,如同它们未连接到具有后备擦除编码逻辑的PCIe交换机1105一样。
在本发明概念的又一实施例中,具有后备擦除编码逻辑的PCIe交换机1105可针对可由后备擦除编码逻辑覆盖的存储装置来启用后备擦除编码逻辑,但仍然使得能够访问不具备擦除编码的资格的其它装置。本发明概念的这一实施例是最复杂的实施方式:具有后备擦除编码逻辑的PCIe交换机1105需要确定哪些装置具备擦除编码的资格和哪些装置不具备擦除编码的资格,随后分析流量以确定流量是指定用于虚拟存储装置(在这种情况下,流量由后备擦除编码逻辑截断)还是未指定用于虚拟存储装置(在这种情况下,将流量传送到其初始目的地。)
在其中图1的机器105最终没有提供已安装装置的完整功能的本发明概念的实施例中,即在其中擦除编码由于存在不具备擦除编码的资格的装置而停用或此类装置由具有后备擦除编码逻辑的PCIe交换机1105停用的本发明概念的实施例中,图1的机器105可向用户通知这一事实。这种通知可由图1的处理器110、BMC或具有后备擦除编码逻辑的PCIe交换机1105提供。除向用户通知一些功能已停用以外,所述通知还可通知用户如何重新配置图1的机器105以准许添加的功能。举例来说,所述通知可建议不具备擦除编码的资格的装置连接到中平面中的特定槽位(可能是连接到具有后备擦除编码逻辑的PCIe机1305的那些槽位),并且建议确实具备擦除编码的资格的存储装置连接到其它槽位,例如连接到具有后备擦除编码逻辑的PCIe交换机1105的那些槽位。以此方式,具备擦除编码的资格的至少一些存储装置可受益于擦除编码方案,但不阻断对不具备擦除编码的资格的其它装置进行访问。
图12绘示根据本发明概念的另一实施例的包含图1的SSD和图1的协处理器的第二拓朴。在图12中,具有后备擦除编码逻辑的PCIe交换机1105可位于FPGA 205内:也就是说,FPGA 205也可实施具有后备擦除编码逻辑的PCIe交换机1105。FPGA 205和具有后备擦除编码逻辑的PCIe交换机1105随后可连接到存储装置125-1到存储装置125-4。虽然图12绘示FPGA 205和连接到四个存储装置125-1到存储装置125-4的具有后备擦除编码逻辑的PCIe交换机1105,但本发明概念的实施例可包含任何数目的存储装置125-1到存储装置125-4。
通常,图12中所绘示的拓朴可在含有所绘示的所有组件(SSD 125-1到SSD 125-4可以是独立闪存,而不是自给式SSD)的单个外壳或壳体内实现。也就是说,并非作为独立组件出售,而是图12中所绘示的整个结构可作为单个单元出售。但本发明概念的实施例还可包含转接卡(riser card),所述转接卡的一端连接到图1的机器105(可能连接到中平面),且其中另一端上的连接器(例如U.2、M.3或SFF-TA-1008连接器)连接到存储装置125-1到存储装置125-4。且虽然图12将具有后备擦除编码逻辑的PCIe交换机1105绘示为FPGA 205的部件,但具有后备擦除编码逻辑的PCIe交换机1105也可以实施为智能SSD的部件。
图13绘示根据本发明概念的又一实施例的图1的用于使用具有后备擦除编码逻辑的PCIe交换机1105的第三拓朴。在图13中,绘示两个具有后备擦除编码逻辑的PCIe交换机1105和具有后备擦除编码逻辑的PCIe交换机1305,其间连接了至多24个存储装置125-1到存储装置125-6。每个具有后备擦除编码逻辑的PCIe交换机1105和具有后备擦除编码逻辑的PCIe交换机1305可包含96个PCIe通路,在每个方向上使用四个PCIe通路来与存储装置125-1到存储装置125-6中的一个通信:每个具有后备擦除编码逻辑的PCIe交换机1105和具有后备擦除编码逻辑的PCIe交换机1305随后可支持至多12个存储装置。为了在由多个具有后备擦除编码逻辑的PCIe交换机1105和具有后备擦除编码逻辑的PCIe交换机1305所支持的存储装置上支持擦除编码,一个具有后备擦除编码逻辑的PCIe交换机可指定用于负责在所有装置上的擦除编码,且可具有启用的后备擦除编码逻辑。另一具有后备擦除编码逻辑的PCIe交换机1305可在后备擦除编码逻辑停用的情况下仅仅作为PCIe交换机来操作。可以任何所需方式完成关于应该选择哪个PCIe交换机来处理擦除编码的选择:例如,两个PCIe交换机可单独对这个进行协商,或首先枚举的PCIe交换机可指定用于处理擦除编码。选择用来处理擦除编码的PCIe交换机随后可向虚拟存储装置(跨越两个PCIe交换机)报告,而不处理擦除编码的PCIe交换机可能无下游装置进行报告(以防止图1的处理器110试图存取作为擦除编码方案的部分的存储装置)。
应注意,虽然具有后备擦除编码逻辑的PCIe交换机1105和具有后备擦除编码逻辑的PCIe交换机1305可都位于相同底盘中,但具有后备擦除编码逻辑的PCIe交换机1105和具有后备擦除编码逻辑的PCIe交换机1305可位于不同底盘中。也就是说,擦除编码方案可跨越多个底盘中的存储装置。唯一需要的就是各种底盘中的PCIe交换机能够彼此协商将成为擦除编码方案的部分的存储装置所处的位置。本发明概念的实施例不限于两个具有后备擦除编码逻辑的PCIe交换机1105和具有后备擦除编码逻辑的PCIe交换机1305:在擦除编码方案中所包含的存储装置可连接到任何数目的具有后备擦除编码逻辑的PCIe交换机1105和具有后备擦除编码逻辑的PCIe交换机1305。
主机逻辑块地址(Host Logical Block Address;LBA)可以任何所需方式跨具有后备擦除编码逻辑的PCIe交换机1105和具有后备擦除编码逻辑的PCIe交换机1305分割。举例来说,主机中的最低有效位(least significant bit;LBA)可用于识别具有后备擦除编码逻辑的PCIe交换机1105或具有后备擦除编码逻辑的PCIe交换机1305中的哪一个包含存储具有所述主机LBA的数据的存储装置。利用大于两个具有后备擦除编码逻辑的PCIe交换机,多个位可用于确定哪一个具有后备擦除编码逻辑的PCIe交换机管理存储数据的存储装置。一旦已识别到适合的具有后备擦除编码逻辑的PCIe交换机,传输就可以路由到适合的具有后备擦除编码逻辑的PCIe交换机(假设传输并未指定用于存储装置,所述存储装置连接到启用后备擦除编码逻辑的具有后备擦除编码逻辑的PCIe交换机)。
在本发明概念的另一实施例中,并非使单个具有后备擦除编码逻辑的PCIe交换机负责虚拟化连接到两个具有后备擦除编码逻辑的PCIe交换机的所有存储装置,而是每个具有后备擦除编码逻辑的PCIe交换机可产生独立虚拟存储装置(具有独立擦除编码域)。以此方式,可为不同客户产生不同擦除编码域,但这些编码域具有较小容量。
虽然图13意指只有存储装置125-1到存储装置125-6连接到具有后备擦除编码逻辑的PCIe交换机1105和具有后备擦除编码逻辑的PCIe交换机1305,且意指所有存储装置125-1到存储装置125-6可与擦除编码方案一起使用,但如上文所论述,本发明概念的实施例不限于此:具有后备擦除编码逻辑的PCIe交换机1105和具有后备擦除编码逻辑的PCIe交换机1305可使不具备擦除编码的资格的装置与其连接。可根据单个具有后备擦除编码逻辑的PCIe交换机对此类装置进行分组,其中根据不同具有后备擦除编码逻辑的PCIe交换机1105对具备擦除编码的资格的存储装置进行分组。以此方式,可实现图1的机器105的最佳功能,其中使一个(或一些)具有后备擦除编码逻辑的PCIe交换机启用后备擦除编码逻辑,且使一个(或一些)具有后备擦除编码逻辑的PCIe交换机禁用后备擦除编码逻辑。
图14绘示根据本发明概念的又一实施例的包含图1的SSD和图1的协处理器的第四拓朴。在图14中,与图13相比,具有后备擦除编码逻辑的PCIe交换机1105、具有后备擦除编码逻辑的PCIe交换机1305以及具有后备擦除编码逻辑的PCIe交换机1405可按照分级结构构造。具有后备擦除编码逻辑的PCIe交换机1105在分级结构的顶部处可管理用于分级结构中的具有后备擦除编码逻辑的PCIe交换机1105下方的所有存储装置的擦除编码,并且因此可启用后备擦除编码逻辑。另一方面,具有后备擦除编码逻辑的PCIe交换机1305和具有后备擦除编码逻辑的PCIe交换机1405可使其后备擦除编码逻辑停用(由于其存储装置由具有后备擦除编码逻辑的PCIe交换机1105的后备擦除编码逻辑管理)。
虽然图14绘示以两层分级结构构造的三个具有后备擦除编码逻辑的PCIe交换机1105、具有后备擦除编码逻辑的PCIe交换机1305以及具有后备擦除编码逻辑的PCIe交换机1405,但是本发明概念的实施例不受限于所包含的PCIe交换机的数目或不受限于分级布置。因此,本发明概念的实施例可支持配置于任何所需分级结构中的任何数目的具有后备擦除编码逻辑的PCIe交换机。
上文参看图1到图14所描述的本发明概念的实施例的重点是单端口存储装置。但本发明概念的实施例可扩展到双端口存储装置,其中一个(或大于一个)存储装置与多个具有后备擦除编码逻辑的PCIe交换机进行通信。在本发明概念的这些实施例中,如果图11的具有后备擦除编码逻辑的PCIe交换机1105无法与双端口存储装置进行通信,那么具有后备擦除编码逻辑的PCIe交换机1105可将传输发送到具有后备擦除编码逻辑的PCIe交换机1305以试图与存储装置进行通信。具有后备擦除编码逻辑的PCIe交换机1305有效地充当桥接器以使具有后备擦除编码逻辑的PCIe交换机1105与存储装置进行通信。
图15绘示根据本发明概念的一实施例的供图1的SSD 125-1(或图1的协处理器130-1)向其合作伙伴查询配对数据的实例过程的流程图。在图15中,在框1505处,图1的SSD125-1可向其合作伙伴发送图9的识别装置905(或图1的协处理器130-1可向其合作伙伴发送图10的读取身份数据1005)。在框1510处,图1的SSD 125-1可接收图9的识别响应910(或图1的协处理器130-1可接收图10的读取响应1010)。在框1515处,图1的SSD 125-1可将接收到的配对信息存储在图5的存储装置505-2中(或图1的协处理器130-1可将接收到的配对信息存储在图5的存储装置515-1中)。在框1520处,图1的SSD 125-1可从图5的存储装置505-1存取其自身的配对信息(或图1的协处理器130-1可从图5的存储装置515-2存取其配对信息)。最后,在框1525处,图1的SSD 125-1可向其合作伙伴发送图9的设置配对数据915(或图1的协处理器130-1可向其合作伙伴发送图10的设置身份数据1015),使得其合作伙伴可存储其配对信息。
图16绘示根据本发明概念的一实施例的供图1的SSD 125-1(或图1的协处理器130-1)从其合作伙伴接收配对数据的查询的实例过程的流程图。在图12中,在框1605处,图1的SSD 125-1可从图1的协处理器130-1接收图10的读取身份数据1005(或图1的协处理器130-1可从图1的SSD 125-1接收图9的识别装置905)。在框1610处,图1的SSD 125-1可从图5的存储装置505-1存取其配对信息(或协处理器130-1可从图5的存储装置515-2存取其配对信息)。在框1615处,图1的SSD 125-1可向图1的协处理器130-1发送图10的读取响应1010中的配对信息(或图1的协处理器130-1可发送图9的识别响应910中的配对信息)。在框1620处,图1的SSD 125-1可从图1的协处理器130-1接收图10的设置身份数据1015(或图1的协处理器130-1可从图1的SSD 125-1接收图9的设置配对数据915)。最后,在框1625处,图1的SSD125-1可将图1的协处理器130-1的配对信息存储在图5的存储装置505-2中(或图1的协处理器130-1可将图1的SSD 125-1的配对信息存储在图5的存储装置515-1中)。
图17绘示根据本发明概念的一实施例的使图1的SSD 125-1和/或图1的协处理器130-1对关于其和其配对合作伙伴的来自图5的操作系统405的查询作出响应的实例过程的流程图。在图17中,在框1705处,图1的SSD 125-1和/或协处理器130-1可从图5的操作系统405接收图6的查询605和/或查询615。在框1710处,图1的SSD 125-1和/或协处理器130-1可从图5存储装置505-1和/或存储装置515-2存取用于图1的SSD 125-1和/或协处理器130-1的配对信息,例如唯一ID或制造商型号和/或序列号。在框1715处,图1的SSD 125-1和/或协处理器130-1可从图5的存储装置505-2和/或存储装置515-1存取用于合作伙伴装置的配对信息,例如唯一ID或制造商型号和/或序列号。最后,在框1720处,图1的SSD 125-1和/或协处理器130-1可向图5的操作系统405发送关于配对装置的配对信息。
图18绘示根据本发明概念的一实施例的使图5的操作系统405查询图1的SSD 125-1和图1的协处理器130-1且将它们配对的实例过程的流程图。在图18中,在框1805处,图5的操作系统405可向由虚拟ID表示的装置(向图5的操作系统405)发送查询,例如图6的查询605和/或查询615。在框1810处,图5的操作系统405可从装置接收其配对信息。在框1815处,图5的操作系统405可向由另一虚拟ID表示的另一装置(向图5的操作系统405)发送另一查询,例如图6的查询605和/或查询615。在框1820处,图5的操作系统405可从所述装置接收其配对信息。在框1825处,图5的操作系统405可确定两个装置已提供了相同配对信息,且在图5的操作系统405内以某种方式将装置配对。最后,在框1830处,图5的操作系统405可将API提供给支持关于装置配对的查询的应用程序。
图19绘示根据本发明概念的一实施例的使图5的操作系统405对来自应用程序的关于装置的配对信息的查询作出响应的实例过程的流程图。在图19中,在框处1905,图5的操作系统405可从应用程序接收对特定装置的配对的请求。在框1910处,图5的操作系统405可在存储配对信息的表中找出所请求的装置。在框1915处,图5的操作系统405可为表中的装置确定配对。在框1920处,图5的操作系统405可向应用程序返回关于装置的配对的信息。
可替代地,在框1925处,图5的操作系统405可从应用程序接收对关于数据标识符(例如文件、对象、密钥等)的配对信息的请求。在框1930处,图5的操作系统405可确定存储由数据标识符识别到的数据的装置。此时,如由箭头1935所绘示,图5的操作系统405可执行如上文所描述的框1910和框1915。随后,如由箭头1940所绘示,在框1945处,图5的操作系统405可向应用程序返回关于存储数据的装置和其配对二者的信息。
在图15到图19中,绘示本发明概念的一些实施例。但本领域技术人员将认识到,通过改变框的次序、通过省略框或通过包含未在附图中绘示的链路,本发明概念的其它实施例也是可能的。无论是否明确地描述,流程图的所有此类变化都视为本发明概念的实施例。
本发明概念的实施例提供优于现有技术的技术优势。本发明概念的实施例准许图1的SSD 125-1和SSD 125-2以及协处理器130-1、协处理器130-2确定关于其配对合作伙伴的配对信息。随后,图1的SSD 125-1和SSD 125-2以及协处理器130-1、协处理器130-2可向图5的操作系统405提供这种配对信息,使得图5的操作系统405能够存储关于哪些装置与哪些其它装置配对的信息。一旦图5的操作系统405具有适当地配对的装置,图5的操作系统405就可以经由API向应用程序提供这种信息,使得应用程序能够请求来自图1的协处理器130-1和协处理器130-2的服务,所述协处理器与存储数据的图1的SSD 125-1和SSD 125-2配对,所述服务待在配对之后执行。
以下论述旨在提供其中可以实施本发明概念的某些方面的一或多个合适机器的简要一般描述。一或多个机器可以至少部分地通过来自例如键盘、鼠标等常规输入装置的输入,以及通过从另一机器接收的指令、与虚拟现实(virtual reality;VR)环境的交互、生物计量反馈或其它输入信号来进行控制。本文中所使用的术语“机器”旨在广泛地涵盖单个机器、虚拟机,或一起操作的以通信方式连接的机器、虚拟机或装置的系统。示例性机器包含计算装置,例如个人计算机、工作站、服务器、便携式计算机、手持式装置、电话、平板电脑等;以及交通装置,例如私人或公共交通工具,例如汽车、火车、出租车等。
一或多个机器可以包含嵌入式控制器,例如可编程或不可编程的逻辑装置或阵列、专用集成电路(ASIC)、嵌入式计算机、智能卡等。一或多个机器可以例如通过网络接口、调制解调器或其它通信连接来利用与一或多个远程机器的一或多个连接。机器可以借助于物理网络和/或逻辑网络(例如企业内部网、因特网、局域网、广域网等)互连。本领域技术人员应理解,网络通信可以利用各种有线和/或无线短程或远程载波和协议,其包含射频(radio frequency;RF)、卫星、微波、电气电子工程师学会(Institute of Electrical andElectronics Engineer;IEEE)802.11、光学、红外线、电缆、激光等。
可以参考或结合包含功能、过程、数据结构、应用程序等的相关联数据来描述本发明概念的实施例,所述相关联数据在通过机器存取时引起机器执行任务或限定抽象数据类型或低级硬件环境。相关联数据可以存储在例如易失性和/或非易失性存储器(例如RAM、ROM等)中或存储在其它存储装置以及其相关联存储介质中,所述存储介质包含硬盘驱动器、软盘、光学存储装置、磁带、闪存、存储棒、数字视频光盘、生物存储装置等。相关联数据可以包、串行数据、并行数据、传播信号等形式在包含物理和/或逻辑网络的传输环境上传递,并且可以压缩或加密格式使用。相关联数据可以用于分布式环境中,并且本地地和/或远程地存储以供机器访问。
本发明概念的实施例可以包含有形的非暂时性机器可读介质,所述非暂时性机器可读介质包括可由一或多个处理器执行的指令,所述指令包括用于执行如本文所描述的发明性概念的元件的指令。
上文所描述的方法的各个操作可由能够执行所述操作的任何合适的装置来执行,例如各种硬件和/或软件组件、电路和/或模块。软件可包括用于实现逻辑功能的可执行指令的有序列表,且可以在供指令执行系统、设备或装置使用或与指令执行系统、设备或装置结合的任何“处理器可读介质”中实施,所述指令执行系统、设备或装置为例如单核处理器或多核处理器或含处理器的系统。
结合本文中所公开的实施例而描述的方法或算法及函数的框或步骤可直接以硬件、由处理器执行的软件模块或所述两个的组合实施。如果以软件实施,那么可将功能作为一或多个指令或代码存储在有形的非暂时计算机可读介质上或通过所述有形的非暂时性计算机可读介质进行传输。软件模块可驻留在随机存取存储器(RAM)、闪存、只读存储器(ROM)、电可编程ROM(Electrically Programmable ROM;EPROM)、电可擦可编程ROM(Electrically Erasable Programmable ROM;EEPROM)、寄存器、硬盘、可移动式磁盘、CDROM或所属领域中已知的任何其它形式的存储介质中。
在参考所说明实施例描述和说明本发明概念的原理之后,应认识到,所说明实施例的布置和细节可以在不脱离此类原理的情况下进行修改,并且可以按任何所需方式组合。而且,虽然前述论述的重点是特定实施例,但是可设想其它配置。特定来说,即使本文中使用例如“根据本发明概念的实施例”等的表达,但是这些词语一般表示参考实施例可能性,且并不旨在将本发明概念限制到特定实施例配置。如本文中所使用,这些术语可以参考可组合到其它实施例中的相同或不同实施例。
前述说明性实施例不应解释为限制其本发明概念。虽然已经描述几个实施例,但本领域技术人员将容易理解,在实质上不脱离本公开的新颖教示和优势的情况下,对那些实施例的许多修改是可能的。因此,所有此类修改旨在包含在如所附权利要求中限定的这一发明概念的范围内。
本发明概念的实施例可以扩展到(但不限于)以下陈述:
陈述1.本发明概念的实施例包含一种系统,包括:
固态驱动器(SSD),包含:
用于数据的第一存储装置;
用于唯一SSD标识符(ID)的第二存储装置;以及
用于唯一协处理器ID的第三存储装置;
协处理器,包含:
用于唯一协处理器ID的第四存储装置;
用于唯一SSD ID的第五存储装置;以及
硬件接口,位于SSD与协处理器之间。
陈述2.本发明概念的实施例包含根据陈述1所述的系统,其中协处理器包含现场可编程门阵列(FPGA)、专用集成电路、图形处理单元(GPU)、张量处理单元、擦除编码控制器以及小型处理器核心中的一个。
陈述3.本发明概念的实施例包含根据陈述1所述的系统,其中硬件接口包含系统管理总线(SMBus)和集成电路间(Inter-Integrated Circuit;I2C)总线中的一个。
陈述4.本发明概念的实施例包含根据陈述1所述的系统,其中第四存储装置包含一次性可编程(one-time programmable;OTP)存储器、可编程只读存储器(ProgrammableRead-Only Memory;PROM)、可擦可编程只读存储器(Eraseable Programmable Read-OnlyMemory;EPROM)和电可擦可编程只读存储器(EEPROM)中的一个。
陈述5.本发明概念的实施例包含根据陈述1所述的系统,其中协处理器可操作以向SSD查询唯一SSD ID且将唯一SSD ID存储在第五存储装置中。
陈述6.本发明概念的实施例包含根据陈述1所述的系统,其中协处理器可操作以为SSD提供唯一协处理器ID。
陈述7.本发明概念的实施例包含根据陈述1所述的系统,其中SSD可操作以向协处理器查询唯一协处理器ID且将唯一协处理器ID存储在第三存储装置中。
陈述8.本发明概念的实施例包含根据陈述1所述的系统,其中SSD可操作以为协处理器提供唯一SSD ID。
陈述9.本发明概念的实施例包含根据陈述1所述的系统,其中SSD可带外地操作以接收关于SSD和协处理器的查询。
陈述10.本发明概念的实施例包含根据陈述9所述的系统,其中SSD包含用于带外地接收查询的SMBus连接。
陈述11.本发明概念的实施例包含根据陈述9所述的系统,其中SSD可操作以用唯一SSD ID和唯一协处理器ID二者对查询作出响应。
陈述12.本发明概念的实施例包含根据陈述9所述的系统,其中查询包含非易失性存储器快速(NVMe)管理接口(MI)命令。
陈述13.本发明概念的实施例包含根据陈述1所述的系统,其中协处理器可操作以带外地接收关于SSD和协处理器的查询。
陈述14.本发明概念的实施例包含根据陈述13所述的系统,其中协处理器可操作以用唯一SSD ID和唯一协处理器ID二者对查询作出响应。
陈述15.本发明概念的实施例包含根据陈述13所述的系统,其中查询包含非易失性存储器快速(NVMe)管理接口(MI)命令。
陈述16.本发明概念的实施例包含根据陈述1所述的系统,其中SSD可操作以带内地接收关于SSD和协处理器的查询。
陈述17.本发明概念的实施例包含根据陈述16所述的系统,其中SSD包含用于带内地接收查询的外围组件互连快速(PCIe)连接。
陈述18.本发明概念的实施例包含根据陈述16所述的系统,其中SSD可操作以用唯一SSD ID和唯一协处理器ID二者对查询作出响应。
陈述19.本发明概念的实施例包含根据陈述16所述的系统,其中查询包含非易失性存储器快速(NVMe)管理接口(MI)命令。
陈述20.本发明概念的实施例包含一种方法,包括:
将查询从第一装置发送到第二装置;
从第二装置接收第一装置处的响应,所述响应包含第一配对数据;
将第一配对数据存储在第一装置中的第二存储装置中;
从第一装置中的第一存储装置存取第二配对数据;以及
将第二配对数据从第一装置发送到第二装置。
陈述21.本发明概念的实施例包含根据陈述20所述的方法,其中第一装置和第二装置分别包含现场可编程门阵列(FPGA)、专用集成电路、图形处理单元(GPU)、张量处理单元、擦除编码控制器以及小型处理器核心中的一个。
陈述22.本发明概念的实施例包含根据陈述20所述的方法,其中:
将查询从第一装置发送到第二装置包含通过第一装置与第二装置之间的硬件接口将查询从第一装置发送到第二装置;
从第二装置接收第一装置处的响应包含通过第一装置与第二装置之间的硬件接口从第二装置接收第一装置处的响应;且
将第二配对数据从第一装置发送到第二装置包含通过第一装置与第二装置之间的硬件接口将第二配对数据从第一装置发送到第二装置。
陈述23.本发明概念的实施例包含根据陈述20所述的方法,其中第二存储装置包含一次性可编程(OTP)存储器、可编程只读存储器(PROM)、可擦可编程只读存储器(EPROM)以及电可擦可编程只读存储器(EEPROM)中的一个。
陈述24.本发明概念的实施例包含一种方法,包括:
从第二装置接收第一装置处的查询;
从第一装置中的第一存储装置存取第一配对数据;
将响应从第一装置发送到第二装置,所述响应包含第一配对数据;
从第二装置接收第一装置处的第二配对数据;以及
将第二配对数据存储在第一装置中的第二存储装置中。
陈述25.本发明概念的实施例包含根据陈述24所述的方法,其中第一装置和第二装置分别包含现场可编程门阵列(FPGA)、专用集成电路、图形处理单元(GPU)、张量处理单元、擦除编码控制器以及小型处理器核心中的一个。
陈述26.本发明概念的实施例包含根据陈述24所述的方法,其中:
从第二装置接收第一装置处的查询包含通过第一装置与第二装置之间的硬件接口从第二装置接收第一装置处的查询;
将响应从第一装置发送到第二装置包含通过第一装置与第二装置之间的硬件接口将响应从第一装置发送到第二装置;且
从第二装置接收第一装置处的第二配对数据包含通过第一装置与第二装置之间的硬件接口从第二装置接收第一装置处的第二配对数据。
陈述27.本发明概念的实施例包含根据陈述24所述的方法,其中第二存储装置包含一次性可编程(OTP)存储器、可编程只读存储器(PROM)、可擦可编程只读存储器(EPROM)以及电可擦可编程只读存储器(EEPROM)中的一个。
陈述28.本发明概念的实施例包含一种方法,包括:
接收第一装置处的查询;
从第一装置中的第一存储装置存取用于第一装置的第一唯一标识符(ID);
从第一装置中的第二存储装置存取用于第二装置的第二唯一ID,所述第二装置与第一装置配对;以及
发送对来自第一装置的查询的响应,所述响应包含第一唯一ID和第二唯一ID二者。
陈述29.本发明概念的实施例包含根据陈述28所述的方法,其中:
接收第一装置处的查询包含带外地接收第一装置处的查询;且
发送对来自第一装置的查询的响应包含带外地发送对来自第一装置的查询的响应。
陈述30.本发明概念的实施例包含根据陈述29所述的方法,其中:
带外地接收第一装置处的查询包含通过系统管理总线(SMBus)连接接收第一装置处的查询;且
带外地发送对来自第一装置的查询的响应包含通过SMBus连接发送对来自第一装置的查询的响应。
陈述31.本发明概念的实施例包含根据陈述28所述的方法,其中:
接收第一装置处的查询包含带内地接收第一装置处的查询;且
发送对来自第一装置的查询的响应包含带内地发送对来自第一装置的查询的响应。
陈述32.本发明概念的实施例包含根据陈述31所述的方法,其中:
带内地接收第一装置处的查询包含通过外围组件互连快速(PCIe)连接接收第一装置处的查询;且
带内地发送对来自第一装置的查询的响应包含通过PCIe连接发送对来自第一装置的查询的响应。
陈述33.本发明概念的实施例包含根据陈述28所述的方法,其中查询包含非易失性管理快速(NVMe)管理接口(MI)命令。
陈述34.本发明概念的实施例包含一种方法,包括:
将第一查询发送到由第一虚拟标识符(ID)表示的固态驱动器(SSD);
响应于第一查询从SSD接收唯一SSD ID和唯一协处理器ID;
将第二查询发送到由第二虚拟ID表示的协处理器;
响应于第二查询从协处理器接收唯一SSD ID和唯一协处理器ID;以及
将第一虚拟ID与第二虚拟ID配对。
陈述35.本发明概念的实施例包含根据陈述34所述的方法,其中将第一查询发送到固态驱动器(SSD)包含将第一查询带外地发送到SSD。
陈述36.本发明概念的实施例包含根据陈述35所述的方法,其中将第一查询带外地发送到SSD包含通过系统管理总线(SMBus)连接将第一查询发送到SSD。
陈述37.本发明概念的实施例包含根据陈述34所述的方法,其中将第一查询发送到固态驱动器(SSD)包含将第一查询带内地发送到SSD。
陈述38.本发明概念的实施例包含根据陈述37所述的方法,其中将第一查询带内地发送到SSD包含通过外围组件互连快速(PCIe)连接将第一查询发送到SSD。
陈述39.本发明概念的实施例包含根据陈述34所述的方法,其中第一查询包含非易失性管理快速(NVMe)管理接口(MI)命令。
陈述40.本发明概念的实施例包含根据陈述34所述的方法,其中将第二查询发送到协处理器包含将第二查询带外地发送到协处理器。
陈述41.本发明概念的实施例包含根据陈述40所述的方法,其中将第二查询带外地发送到协处理器包含通过SMBus连接将第二查询发送到协处理器。
陈述42.本发明概念的实施例包含根据陈述34所述的方法,其中第二查询包含非易失性管理快速(NVMe)管理接口(MI)命令。
陈述43.本发明概念的实施例包含根据陈述34所述的方法,其中将第一虚拟ID与第二虚拟ID配对包含响应于返回唯一SSD ID和唯一协处理器ID的SSD和协处理器二者而将第一虚拟ID与第二虚拟ID配对。
陈述44.本发明概念的实施例包含根据陈述34所述的方法,所述方法进一步包括提供应用编程接口(API),所述应用编程接口可操作以对关于第一虚拟ID与第二虚拟ID的配对的查询作出响应。
陈述45.本发明概念的实施例包含根据陈述44所述的方法,所述方法进一步包括:
接收对第一虚拟ID的配对的配对查询;以及
响应于第一虚拟ID与第二虚拟ID的配对而返回第二虚拟ID。
陈述46.本发明概念的实施例包含根据陈述45所述的方法,其中:
接收对第一虚拟ID的配对的配对查询包含经由API从应用程序接收用于第一虚拟ID的配对的配对查询;且
响应于第一虚拟ID与第二虚拟ID的配对而返回第二虚拟ID包含响应于第一虚拟ID与第二虚拟ID的配对而将第二虚拟ID返回到应用程序。
陈述47.本发明概念的实施例包含根据陈述44所述的方法,所述方法进一步包括:
接收对与文件相关联的配对的文件查询;
将SSD识别为存储所述文件;以及
响应于文件查询而返回第一虚拟ID和第二虚拟ID。
陈述48.本发明概念的实施例包含根据陈述47所述的方法,其中:
接收对与文件相关联的配对的文件查询包含经由API从应用程序接收对与文件相关联的配对的文件查询;
响应于文件查询而返回第一虚拟ID和第二虚拟ID包含响应于文件查询而将第一虚拟ID和第二虚拟ID返回到应用程序。
陈述49.本发明概念的实施例包含一种物品,所述物品包括非暂时性存储介质,所述非暂时性存储介质具有存储于其上的在由机器执行时引起以下操作的指令:
将查询从第一装置发送到第二装置;
从第二装置接收第一装置处的响应,所述响应包含第一配对数据;
将第一配对数据存储在第一装置中的第二存储装置中;
从第一装置中的第一存储装置存取第二配对数据;以及
将第二配对数据从第一装置发送到第二装置。
陈述50.本发明概念的实施例包含根据陈述49所述的物品,其中第一装置和第二装置分别包含现场可编程门阵列(FPGA)、专用集成电路、图形处理单元(GPU)、张量处理单元、擦除编码控制器以及小型处理器核心中的一个。
陈述51.本发明概念的实施例包含根据陈述49所述的物品,其中:
将查询从第一装置发送到第二装置包含通过第一装置与第二装置之间的硬件接口将查询从第一装置发送到第二装置;
从第二装置接收第一装置处的响应包含通过第一装置与第二装置之间的硬件接口从第二装置接收第一装置处的响应;且
将第二配对数据从第一装置发送到第二装置包含通过第一装置与第二装置之间的硬件接口将第二配对数据从第一装置发送到第二装置。
陈述52.本发明概念的实施例包含根据陈述49所述的物品,其中第二存储装置包含一次性可编程(OTP)存储器、可编程只读存储器(PROM)、可擦可编程只读存储器(EPROM)以及电可擦可编程只读存储器(EEPROM)中的一个。
陈述53.本发明概念的实施例包含一种物品,所述物品包括非暂时性存储介质,所述非暂时性存储介质具有存储于其上的在由机器执行时引起以下操作的指令:
从第二装置接收第一装置处的查询;
从第一装置中的第一存储装置存取第一配对数据;
将响应从第一装置发送到第二装置,所述响应包含第一配对数据;
从第二装置接收第一装置处的第二配对数据;以及
将第二配对数据存储在第一装置中的第二存储装置中。
陈述54.本发明概念的实施例包含根据陈述53所述的物品,其中第一装置和第二装置分别包含现场可编程门阵列(FPGA)、专用集成电路、图形处理单元(GPU)、张量处理单元、擦除编码控制器以及小型处理器核心中的一个。
陈述55.本发明概念的实施例包含根据陈述53所述的物品,其中:
从第二装置接收第一装置处的查询包含通过第一装置与第二装置之间的硬件接口从第二装置接收第一装置处的查询;
将响应从第一装置发送到第二装置包含通过第一装置与第二装置之间的硬件接口将响应从第一装置发送到第二装置;且
从第二装置接收第一装置处的第二配对数据包含通过第一装置与第二装置之间的硬件接口从第二装置接收第一装置处的第二配对数据。
陈述56.本发明概念的实施例包含根据陈述53所述的物品,其中第二存储装置包含一次性可编程(OTP)存储器、可编程只读存储器(PROM)、可擦可编程只读存储器(EPROM)以及电可擦可编程只读存储器(EEPROM)中的一个。
陈述57.本发明概念的实施例包含一种物品,所述物品包括非暂时性存储介质,所述非暂时性存储介质具有存储于其上的在由机器执行时引起以下操作的指令:
接收第一装置处的查询;
从第一装置中的第一存储装置存取用于第一装置的第一唯一标识符(ID);
从第一装置中的第二存储装置存取用于第二装置的第二唯一ID,所述第二装置与第一装置配对;以及
发送对来自第一装置的查询的响应,所述响应包含第一唯一ID和第二唯一ID二者。
陈述58.本发明概念的实施例包含根据陈述57所述的物品,其中:
接收第一装置处的查询包含带外地接收第一装置处的查询;且
发送对来自第一装置的查询的响应包含带外地发送对来自第一装置的查询的响应。
陈述59.本发明概念的实施例包含根据陈述58所述的物品,其中:
带外地接收第一装置处的查询包含通过系统管理总线(SMBus)连接接收第一装置处的查询;且
带外地发送对来自第一装置的查询的响应包含通过SMBus连接发送对来自第一装置的查询的响应。
陈述60.本发明概念的实施例包含根据陈述57所述的物品,其中:
接收第一装置处的查询包含带内地接收第一装置处的查询;且
发送对来自第一装置的查询的响应包含带内地发送对来自第一装置的查询的响应。
陈述61.本发明概念的实施例包含根据陈述60所述的物品,其中:
带内地接收第一装置处的查询包含通过外围组件互连快速(PCIe)连接接收第一装置处的查询;且
带内地发送对来自第一装置的查询的响应包含通过PCIe连接发送对来自第一装置的查询的响应。
陈述62.本发明概念的实施例包含根据陈述57所述的物品,其中查询包含非易失性管理快速(NVMe)管理接口(MI)命令。
陈述63.本发明概念的实施例包含一种物品,所述物品包括非暂时性存储介质,所述非暂时性存储介质具有存储于其上的在由机器执行时引起以下操作的指令:
将第一查询发送到由第一虚拟标识符(ID)表示的固态驱动器(SSD);
响应于第一查询从SSD接收唯一SSD ID和唯一协处理器ID;
将第二查询发送到由第二虚拟ID表示的协处理器;
响应于第二查询从协处理器接收唯一SSD ID和唯一协处理器ID;以及
将第一虚拟ID与第二虚拟ID配对。
陈述64.本发明概念的实施例包含根据陈述63所述的物品,其中将第一查询发送到固态驱动器(SSD)包含将第一查询带外地发送到SSD。
陈述65.本发明概念的实施例包含根据陈述64所述的物品,其中将第一查询带外地发送到SSD包含通过系统管理总线(SMBus)连接将第一查询发送到SSD。
陈述66.本发明概念的实施例包含根据陈述63所述的物品,其中将第一查询发送到固态驱动器(SSD)包含将第一查询带内地发送到SSD。
陈述67.本发明概念的实施例包含根据陈述66所述的物品,其中将第一查询带内地发送到SSD包含通过外围组件互连快速(PCIe)连接将第一查询发送到SSD。
陈述68.本发明概念的实施例包含根据陈述63所述的物品,其中第一查询包含非易失性管理快速(NVMe)管理接口(MI)命令。
陈述69.本发明概念的实施例包含根据陈述63所述的物品,其中将第二查询发送到协处理器包含将第二查询带外地发送到协处理器。
陈述70.本发明概念的实施例包含根据陈述69所述的物品,其中将第二查询带外地发送到协处理器包含通过SMBus连接将第二查询发送到协处理器。
陈述71.本发明概念的实施例包含根据陈述63所述的物品,其中第二查询包含非易失性管理快速(NVMe)管理接口(MI)命令。
陈述72.本发明概念的实施例包含根据陈述63所述的物品,其中将第一虚拟ID与第二虚拟ID配对包含响应于返回唯一SSD ID和唯一协处理器ID的SSD和协处理器二者而将第一虚拟ID与第二虚拟ID配对。
陈述73.本发明概念的实施例包含根据陈述63所述的物品,所述非暂时性存储介质具有存储于其上的在由机器执行时引起以下操作的指令:提供应用编程接口(API),所述应用编程接口可操作以对关于第一虚拟ID与第二虚拟ID的配对的查询作出响应。
陈述74.本发明概念的实施例包含根据陈述73所述的物品,所述非暂时性存储介质具有存储于其上的在由机器执行时引起以下操作的其它指令:
接收对第一虚拟ID的配对的配对查询;以及
响应于第一虚拟ID与第二虚拟ID的配对而返回第二虚拟ID。
陈述75.本发明概念的实施例包含根据陈述74的物品,其中:
接收对第一虚拟ID的配对的配对查询包含经由API从应用程序接收对第一虚拟ID的配对的配对查询;且
响应于第一虚拟ID与第二虚拟ID的配对而返回第二虚拟ID包含响应于第一虚拟ID与第二虚拟ID的配对而将第二虚拟ID返回到应用程序。
陈述76.本发明概念的实施例包含根据陈述73所述的物品,所述非暂时性存储介质具有存储于其上的在由机器执行时引起以下操作的其它指令:
接收对与文件相关联的配对的文件查询;
将SSD识别为存储所述文件;以及
响应于文件查询而返回第一虚拟ID和第二虚拟ID。
陈述77.本发明概念的实施例包含根据陈述76的物品,其中:
接收对与文件相关联的配对的文件查询包含经由API从应用程序接收对与文件相关联的配对的文件查询;
响应于文件查询而返回第一虚拟ID和第二虚拟ID包含响应于文件查询而将第一虚拟ID和第二虚拟ID返回到应用程序。
因此,考虑到对本文中所描述的实施例的各种置换,此详细描述和随附材料旨在仅为说明性的,并且不应视为限制本发明概念的范围。因此,本发明概念所要求保护的是落入所附权利要求书以及其等效物的范围和精神内的所有此类修改。
Claims (20)
1.一种多装置的配对系统,包括:
固态驱动器,包含用于数据的第一存储装置、用于唯一固态驱动器标识符的第二存储装置以及用于唯一协处理器标识符的第三存储装置;
协处理器,包含用于所述唯一协处理器标识符的第四存储装置和用于所述唯一固态驱动器标识符的第五存储装置;以及
硬件接口,位于所述固态驱动器与所述协处理器之间。
2.根据权利要求1所述的配对系统,其中所述协处理器包含现场可编程门阵列、专用集成电路、图形处理单元、张量处理单元、擦除编码控制器以及小型处理器核心中的一个。
3.根据权利要求1所述的配对系统,其中所述协处理器可操作以向所述固态驱动器查询所述唯一固态驱动器标识符且将所述唯一固态驱动器标识符存储在所述第五存储装置中。
4.根据权利要求1所述的配对系统,其中所述协处理器可操作以为所述固态驱动器提供所述唯一协处理器标识符。
5.根据权利要求1所述的配对系统,其中所述固态驱动器可操作以为所述协处理器提供所述唯一固态驱动器标识符。
6.根据权利要求1所述的配对系统,其中所述固态驱动器可操作以带外地接收关于所述固态驱动器和所述协处理器的查询。
7.根据权利要求6所述的配对系统,其中所述固态驱动器可操作以用所述唯一固态驱动器标识符和所述唯一协处理器标识符二者对所述查询作出响应。
8.根据权利要求1所述的配对系统,其中所述协处理器可操作以带外地接收关于所述固态驱动器和所述协处理器的查询。
9.根据权利要求8所述的配对系统,其中所述协处理器可操作以用所述唯一固态驱动器标识符和所述唯一协处理器标识符二者对所述查询作出响应。
10.根据权利要求1所述的配对系统,其中所述固态驱动器可操作以带内地接收关于所述固态驱动器和所述协处理器的查询。
11.根据权利要求10所述的配对系统,其中所述固态驱动器可操作以用所述唯一固态驱动器标识符和所述唯一协处理器标识符二者对所述查询作出响应。
12.一种多装置的配对方法,包括:
将查询从第一装置发送到第二装置;
从所述第二装置接收所述第一装置处的响应,所述响应包含第一配对数据;
将所述第一配对数据存储在所述第一装置中的第一存储装置中;
从所述第一装置中的第二存储装置存取第二配对数据;以及
将所述第二配对数据从所述第一装置发送到所述第二装置。
13.根据权利要求12所述的配对方法,其中:
将所述查询从所述第一装置发送到所述第二装置包含通过所述第一装置与所述第二装置之间的硬件接口将所述查询从所述第一装置发送到所述第二装置;
从所述第二装置接收所述第一装置处的所述响应包含通过所述第一装置与所述第二装置之间的所述硬件接口从所述第二装置接收所述第一装置处的所述响应;以及
将所述第二配对数据从所述第一装置发送到所述第二装置包含通过所述第一装置与所述第二装置之间的所述硬件接口将所述第二配对数据从所述第一装置发送到所述第二装置。
14.一种多装置的配对方法,包括:
将第一查询发送到由第一虚拟标识符表示的固态驱动器;
响应于所述第一查询而从所述固态驱动器接收唯一固态驱动器标识符和唯一协处理器标识符;
将第二查询发送到由第二虚拟标识符表示的协处理器;
响应于所述第二查询而从所述协处理器接收所述唯一固态驱动器标识符和所述唯一协处理器标识符;以及
将所述第一虚拟标识符与所述第二虚拟标识符配对。
15.根据权利要求14所述的配对方法,其中将所述第一虚拟标识符与所述第二虚拟标识符配对包含响应于返回所述唯一固态驱动器标识符和所述唯一协处理器标识符的所述固态驱动器和所述协处理器二者而将所述第一虚拟标识符与所述第二虚拟标识符配对。
16.根据权利要求14所述的配对方法,进一步包括提供应用编程接口,所述应用编程接口可操作以对关于所述第一虚拟标识符与所述第二虚拟标识符的配对的查询作出响应。
17.根据权利要求16所述的配对方法,进一步包括:
接收对所述第一虚拟标识符的配对的配对查询;以及
响应于所述第一虚拟标识符与所述第二虚拟标识符的所述配对而返回所述第二虚拟标识符。
18.根据权利要求17所述的配对方法,其中:
接收对所述第一虚拟标识符的所述配对的所述配对查询包含经由所述应用编程接口从应用程序接收对所述第一虚拟标识符的所述配对的所述配对查询;以及
响应于所述第一虚拟标识符与所述第二虚拟标识符的所述配对而返回所述第二虚拟标识符包含响应于所述第一虚拟标识符与所述第二虚拟标识符的所述配对而将所述第二虚拟标识符返回到所述应用程序。
19.根据权利要求16所述的配对方法,进一步包括:
接收对与文件相关联的配对的文件查询;
将所述固态驱动器识别为存储所述文件;以及
响应于所述文件查询而返回所述第一虚拟标识符和所述第二虚拟标识符。
20.根据权利要求19所述的配对方法,其中:
接收对与所述文件相关联的所述配对的所述文件查询包含经由所述应用编程接口从应用程序接收对与所述文件相关联的所述配对的所述文件查询;以及
响应于所述文件查询而返回所述第一虚拟标识符和所述第二虚拟标识符包含响应于所述文件查询而将所述第一虚拟标识符和所述第二虚拟标识符返回到所述应用程序。
Applications Claiming Priority (14)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201862733077P | 2018-09-18 | 2018-09-18 | |
US62/733,077 | 2018-09-18 | ||
US201862745261P | 2018-10-12 | 2018-10-12 | |
US62/745,261 | 2018-10-12 | ||
US16/207,080 US10635609B2 (en) | 2018-03-02 | 2018-11-30 | Method for supporting erasure code data protection with embedded PCIE switch inside FPGA+SSD |
US16/207,080 | 2018-11-30 | ||
US16/226,629 US10838885B2 (en) | 2018-03-02 | 2018-12-19 | Method for supporting erasure code data protection with embedded PCIE switch inside FPGA+SSD |
US16/226,629 | 2018-12-19 | ||
US16/260,087 | 2019-01-28 | ||
US16/260,087 US11860672B2 (en) | 2018-03-02 | 2019-01-28 | Method for supporting erasure code data protection with embedded PCIE switch inside FPGA+SSD |
US201962818096P | 2019-03-13 | 2019-03-13 | |
US62/818,096 | 2019-03-13 | ||
US16/435,442 US10990554B2 (en) | 2018-03-02 | 2019-06-07 | Mechanism to identify FPGA and SSD pairing in a multi-device environment |
US16/435,442 | 2019-06-07 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110908715A true CN110908715A (zh) | 2020-03-24 |
CN110908715B CN110908715B (zh) | 2022-03-22 |
Family
ID=69815233
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910881494.1A Active CN110908715B (zh) | 2018-09-18 | 2019-09-18 | 多装置的配对系统 |
Country Status (4)
Country | Link |
---|---|
JP (1) | JP7497146B2 (zh) |
KR (1) | KR20200032654A (zh) |
CN (1) | CN110908715B (zh) |
TW (1) | TWI835837B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI751753B (zh) * | 2020-10-22 | 2022-01-01 | 十銓科技股份有限公司 | 數位標籤轉換介面之方法 |
US11989594B2 (en) | 2021-08-03 | 2024-05-21 | Samsung Electronics Co., Ltd. | Systems, methods, and apparatus for associating computational device functions with compute engines |
KR102560696B1 (ko) * | 2022-01-26 | 2023-07-28 | 삼성전자주식회사 | 접근 권한 제어를 수행하는 스토리지 장치 및 그 동작방법 |
US12019548B2 (en) | 2022-04-18 | 2024-06-25 | Samsung Electronics Co., Ltd. | Systems and methods for a cross-layer key-value store architecture with a computational storage device |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103262019A (zh) * | 2010-12-16 | 2013-08-21 | 国际商业机器公司 | 配对存储器的扩充块迁移 |
CN103765370A (zh) * | 2011-08-26 | 2014-04-30 | 威睿公司 | 访问对象存储系统的计算机系统 |
US20140244843A1 (en) * | 2012-07-03 | 2014-08-28 | Empire Technology Development Llc | Resource management in a cloud computing environment |
CN104683430A (zh) * | 2013-07-08 | 2015-06-03 | 英特尔公司 | 用于从远程可访问存储设备进行初始化的技术 |
CN105721621A (zh) * | 2014-12-17 | 2016-06-29 | 施耐德电气It公司 | 用于生成唯一设备id的系统和方法 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9245113B2 (en) | 2010-10-22 | 2016-01-26 | Lenovo Enterprise Solutions (Singapore) Pte. Ltd. | Out of band vital product data collection |
JP5677393B2 (ja) | 2012-09-27 | 2015-02-25 | 株式会社東芝 | 情報処理装置および命令のオフローディング方法 |
US10635316B2 (en) * | 2014-03-08 | 2020-04-28 | Diamanti, Inc. | Methods and systems for data storage using solid state drives |
US9817852B2 (en) * | 2014-08-28 | 2017-11-14 | Samsung Electronics Co., Ltd. | Electronic system with version control mechanism and method of operation thereof |
US9983833B2 (en) * | 2015-12-23 | 2018-05-29 | Toshiba Memory Corporation | Solid state drive with holding file for atomic updates |
US10346041B2 (en) | 2016-09-14 | 2019-07-09 | Samsung Electronics Co., Ltd. | Method for using BMC as proxy NVMeoF discovery controller to provide NVM subsystems to host |
-
2019
- 2019-08-19 TW TW108129466A patent/TWI835837B/zh active
- 2019-09-18 KR KR1020190114580A patent/KR20200032654A/ko active Search and Examination
- 2019-09-18 CN CN201910881494.1A patent/CN110908715B/zh active Active
- 2019-09-18 JP JP2019169341A patent/JP7497146B2/ja active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103262019A (zh) * | 2010-12-16 | 2013-08-21 | 国际商业机器公司 | 配对存储器的扩充块迁移 |
CN103765370A (zh) * | 2011-08-26 | 2014-04-30 | 威睿公司 | 访问对象存储系统的计算机系统 |
US20140244843A1 (en) * | 2012-07-03 | 2014-08-28 | Empire Technology Development Llc | Resource management in a cloud computing environment |
CN104683430A (zh) * | 2013-07-08 | 2015-06-03 | 英特尔公司 | 用于从远程可访问存储设备进行初始化的技术 |
CN105721621A (zh) * | 2014-12-17 | 2016-06-29 | 施耐德电气It公司 | 用于生成唯一设备id的系统和方法 |
Also Published As
Publication number | Publication date |
---|---|
JP2020047277A (ja) | 2020-03-26 |
KR20200032654A (ko) | 2020-03-26 |
TW202036282A (zh) | 2020-10-01 |
JP7497146B2 (ja) | 2024-06-10 |
TWI835837B (zh) | 2024-03-21 |
CN110908715B (zh) | 2022-03-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10990554B2 (en) | Mechanism to identify FPGA and SSD pairing in a multi-device environment | |
CN110908715B (zh) | 多装置的配对系统 | |
US11989413B2 (en) | Method for using BMC as proxy NVMeoF discovery controller to provide NVM subsystems to host | |
US11983129B2 (en) | Self-configuring baseboard management controller (BMC) | |
US10996896B2 (en) | Solid state drive multi-card adapter with integrated processing | |
US11797181B2 (en) | Hardware accessible external memory | |
US20200334190A1 (en) | Multi-mode nmve over fabrics devices | |
TWI594600B (zh) | 網路交換器與使用網路交換器更新裝置的方法 | |
US10635609B2 (en) | Method for supporting erasure code data protection with embedded PCIE switch inside FPGA+SSD | |
CN111045597B (zh) | 计算机系统 | |
US11544205B2 (en) | Peer storage devices sharing host control data |
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 |