TW202036282A - Pairing system and pairing method of multi-device - Google Patents

Pairing system and pairing method of multi-device Download PDF

Info

Publication number
TW202036282A
TW202036282A TW108129466A TW108129466A TW202036282A TW 202036282 A TW202036282 A TW 202036282A TW 108129466 A TW108129466 A TW 108129466A TW 108129466 A TW108129466 A TW 108129466A TW 202036282 A TW202036282 A TW 202036282A
Authority
TW
Taiwan
Prior art keywords
auxiliary processor
query
ssd
identifier
pairing
Prior art date
Application number
TW108129466A
Other languages
Chinese (zh)
Other versions
TWI835837B (en
Inventor
奧斯卡P 品托
瑞姆達斯 P 卡佳瑞
Original Assignee
南韓商三星電子股份有限公司
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
Priority claimed from US16/207,080 external-priority patent/US10635609B2/en
Priority claimed from US16/435,442 external-priority patent/US10990554B2/en
Application filed by 南韓商三星電子股份有限公司 filed Critical 南韓商三星電子股份有限公司
Publication of TW202036282A publication Critical patent/TW202036282A/en
Application granted granted Critical
Publication of TWI835837B publication Critical patent/TWI835837B/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • G06F9/3012Organisation of register space, e.g. banked or distributed register file
    • G06F9/30134Register stacks; shift registers
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/1652Handling requests for interconnection or transfer for access to memory bus based on arbitration in a multiprocessor architecture
    • G06F13/1657Access to multiple memories
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 OR CALCULATING; 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 OR CALCULATING; 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
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/0662Virtualisation aspects
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 OR CALCULATING; 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3877Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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

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)
  • Advance Control (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Stored Programmes (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

A paring system and a paring method of a multi-device are disclosed. The system may include a Solid State Drive (SSD) and a co-processor. The SSD may include storage for data, storage for a unique SSD identifier (ID), and storage for a unique co-processor ID. The co-processor may include storage for the unique SSD ID, and storage for the unique co-processor ID. A hardware interface may permit communication between the SSD and the co-processor.

Description

在多元件環境中場可程式閘陣列與固態式硬碟配對辨識機制Matching identification mechanism of field programmable gate array and solid-state hard disk in a multi-component environment

本發明概念大體上涉及電腦系統,且更確切地說,涉及包含儲存裝置和輔助處理器的系統。 [相關申請案的交叉參考]The inventive concept generally relates to computer systems, and more specifically, to systems including storage devices and auxiliary processors. [Cross reference of related applications]

本申請是2019年1月28日申請的美國專利申請第16/260,087號的部分接續申請,所述申請是2018年12月19日申請的美國專利申請第16/226,629號的部分接續申請,所述申請是2018年11月30日申請的美國專利申請第16/207,080號的接續申請,所述申請要求2018年10月12日申請的美國臨時專利申請第62/745,261號的權益,所有上述申請出於所有目的以引用的方式併入本文中。This application is a partial continuation application of U.S. Patent Application No. 16/260,087 filed on January 28, 2019. The application is a partial continuation application of U.S. Patent Application No. 16/226,629 filed on December 19, 2018. The above application is a continuation of the U.S. Patent Application No. 16/207,080 filed on November 30, 2018. The application requires the rights and interests of U.S. Provisional Patent Application No. 62/745,261 filed on October 12, 2018. All of the above applications It is incorporated herein by reference for all purposes.

本申請要求2018年9月18日申請的美國臨時專利申請第62/733,077號和2019年3月13日申請的美國臨時專利申請第62/818,096號的權益,所述兩個申請出於所有目的以引用的方式併入本文中This application claims the benefits of U.S. Provisional Patent Application No. 62/733,077 filed on September 18, 2018 and U.S. Provisional Patent Application No. 62/818,096 filed on March 13, 2019, both of which are for all purposes Incorporated into this article by reference

出於外觀尺寸、功率、密度和性能益處,通常(但未必總是)將現場可程式閘陣列(Field Programmable Gate Array;FPGA)和固態驅動器(Solid State Drive;SSD)子裝置封裝於一個裝置外殼中。FPGA和SSD在主機的周邊元件連接(Peripheral Component Interconnect;PCI)視圖中顯現為獨立物理功能(physical function;PF)。FPGA和SSD子裝置也群集於不具有相互關係的獨立輸入/輸出(Input/Output;I/O)堆疊(具體來說,儲存裝置和OpenCL)上。For appearance size, power, density, and performance benefits, Field Programmable Gate Array (FPGA) and Solid State Drive (SSD) sub-devices are usually (but not always) packaged in one device housing in. FPGA and SSD appear as independent physical functions (PF) in the peripheral component connection (Peripheral Component Interconnect; PCI) view of the host. FPGA and SSD sub-devices are also clustered on independent input/output (Input/Output; I/O) stacks (specifically, storage devices and OpenCL) that have no mutual relationship.

包含FPGA和SSD裝置二者的外觀尺寸將顯示三個物理功能(PF):資料PF(也稱為使用者空間PF)、管理PF以及非揮發性儲存快速(Non-Volatile Memory Express;NVMe)PF。前兩個PF用於FPGA;第三PF用於SSD。The appearance size of both FPGA and SSD devices will show three physical functions (PF): data PF (also called user space PF), management PF, and non-volatile memory express (Non-Volatile Memory Express; NVMe) PF . The first two PFs are used for FPGA; the third PF is used for SSDs.

在機器僅包含一個FPGA/SSD配對的情況下,獨立PF對於配對識別不是問題(例如在x86主機伺服器中)。但在(又,例如在密集地群集的x86主機伺服器(a densely populated x86 host server)中)存在大於一個裝置時,不存在對哪個FPGA與哪個SSD配對的指示。當啟用PCIe直通且多功能裝置顯現為多個單功能裝置時,在虛擬化環境中的問題更加嚴重。In the case where the machine contains only one FPGA/SSD pair, independent PF is not a problem for pair recognition (for example, in an x86 host server). But when (again, for example in a densely populated x86 host server) there is more than one device, there is no indication of which FPGA is paired with which SSD. When PCIe pass-through is enabled and multi-function devices appear as multiple single-function devices, the problem in a virtualized environment becomes more serious.

對等(peer-to-peer;P2P)計算需要配對才能正確地運行。在不配對的情況下,p2p將失敗,這是由於資料可載入到錯誤的FPGA裝置環境中,從而導致硬體內核不具有正確的資料。當主機使用者不可在配對需求中識別應用程式時,問題變得嚴重。Peer-to-peer (P2P) computing requires pairing to run correctly. In the case of unpairing, p2p will fail, because the data can be loaded into the wrong FPGA device environment, resulting in the hardware core not having the correct data. The problem becomes serious when the host user cannot identify the application in the pairing requirement.

仍需要建立FPGA和其它輔助處理器與儲存裝置(例如SSD)的配對。It is still necessary to establish a pairing of FPGA and other auxiliary processors and storage devices (such as SSD).

根據本發明公開的實施例的系統包括:固態驅動器,包含用於資料的第一儲存裝置、用於唯一固態驅動器識別符的第二儲存裝置以及用於唯一輔助處理器識別符的第三儲存裝置;輔助處理器,包含用於所述唯一輔助處理器識別符的第四儲存裝置和用於所述唯一固態驅動器識別符的第五儲存裝置;以及硬體介面,位於所述固態驅動器與所述輔助處理器之間。The system according to the disclosed embodiment of the present invention includes a solid-state drive including a first storage device for data, a second storage device for a unique solid-state drive identifier, and a third storage device for a unique auxiliary processor identifier Auxiliary processor, including a fourth storage device for the unique auxiliary processor identifier and a fifth storage device for the unique solid-state drive identifier; and a hardware interface located between the solid-state drive and the Between auxiliary processors.

現在將詳細參考本發明概念的實施例,在附圖中說明所述實施例的實例。在以下詳細描述中,闡述眾多具體細節以實現對本發明概念的透徹理解。然而,應理解,本領域的普通技術人員可以在沒有這些具體細節的情況下實踐本發明概念。在其它情況下,未詳細描述眾所周知的方法、過程、元件、電路和網路,以免不必要地混淆實施例的各方面。Reference will now be made in detail to embodiments of the inventive concept, and examples of the embodiments are illustrated in the accompanying drawings. In the following detailed description, numerous specific details are set forth to achieve a thorough understanding of the concept of the present invention. However, it should be understood that those of ordinary skill in the art can practice the concept of the present invention without these specific details. In other cases, well-known methods, procedures, components, circuits, and networks are not described in detail so as not to unnecessarily obscure aspects of the embodiments.

應理解,雖然術語「第一」、「第二」等可在本文中用於描述各種元件,但這些元件不應受這些術語限制。這些術語僅用以將一個元件與另一元件區分開來。舉例來說,在不脫離本發明概念的範圍內,第一模組可以稱為第二模組,且類似地,第二模組可以稱為第一模組。It should be understood that although the terms “first”, “second”, etc. may be used herein to describe various elements, these elements should not be limited by these terms. These terms are only used to distinguish one element from another element. For example, without departing from the concept of the present invention, the first module may be referred to as the second module, and similarly, the second module may be referred to as the first module.

本文中用於本發明概念的描述中的術語是僅出於描述特定實施例的目的且並不希望限制本發明概念。除非上下文另外明確指示,否則如本發明概念和所附發明申請專利範圍的描述中所使用,單數形式「一(a/an)」和「所述(the)」旨在也包含複數形式。還將理解,如本文中所使用的術語「和/或」指代且涵蓋相關聯的所列專案中的一個或多個的任何和所有可能組合。應進一步理解,當在本說明書中使用時,術語「包括(comprises/comprising)」指定存在所陳述的特徵、整數、步驟、操作、元件和/或組件,但不排除存在或添加一或多個其它特徵、整數、步驟、操作、元件、組件和/或其群組。圖式中的元件和特徵未必是按比例繪製。The terms used in the description of the concept of the present invention herein are only for the purpose of describing specific embodiments and are not intended to limit the concept of the present invention. Unless the context clearly indicates otherwise, the singular forms "a/an" and "the" are intended to also include plural forms as used in the description of the concept of the present invention and the scope of the appended invention application. It will also be understood that the term "and/or" as used herein refers to and encompasses any and all possible combinations of one or more of the associated listed items. It should be further understood that when used in this specification, the term "comprises/comprising" designates the presence of the stated features, integers, steps, operations, elements and/or components, but does not exclude the presence or addition of one or more Other features, integers, steps, operations, elements, components, and/or groups thereof. The elements and features in the drawings are not necessarily drawn to scale.

當大於一個固態驅動器(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驅動器內部以及檔案系統級映射複雜性。When more than one solid-state drive (SSD)/field programmable gate array (FPGA) device pair is available on the same server, there is a host application user can choose between the peer buffer and the SSD on two separate such pairs possibility. This choice will cause data corruption and incorrect acceleration results. SSD/FPGA pairing shows three physical functions (PF): data PF (also called user space) (for FPGA), management PF (for FPGA), and non-volatile storage fast (NVMe) PF (for SSD) ). If all three PFs are based on the same device, this problem can be alleviated. However, using the Xilinx 3-port switch design approach, FPGA and SSD can be displayed as separate devices without details about their physical associations. (Xilinx is a registered trademark of Xilinx Corporation). The problem becomes more complicated due to the OpenCL software interface that Xilinx displays to its applications. The software interface virtualizes the details of the bus/device/function (BDF) and uses a logical number (such as 0, 1, 2, etc.) to represent each FPGA device. This additional indirection at the software level completely obfuscates the pairing associations that can be deduced previously at the peripheral component connection (PCI) BDF level. The application or user must understand the multi-function device association under the PCI BDF level, the internals of Xilinx drives, and the complexity of file system level mapping.

這種佈置容易出錯且其自身基於所使用的環境顯示出不同問題。對於用戶來說,由於對等請求仍然可成功,因此這種佈置的調試也可以是繁瑣的。This arrangement is error-prone and itself shows different problems based on the environment used. For the user, since the peer-to-peer request can still be successful, the debugging of this arrangement can also be cumbersome.

密集地群集的系統Densely clustered system

在上述情況下,期望所有裝置位於相同的根複合體下。但密集地群集有SSD/FPGA裝置的系統可能需要使用根據連接到每個CPU插座的每個根複合體配置的大於一個PCI快速(PCI Express;PCIe)交換機。利用可用於虛擬化環境中的存取控制服務(Access Control Service;ACS)和CPU/晶片組的不同支持,對等未得到統一支持,從而為應用用戶理解拓撲中的這些細微差別增加了負擔。In the above situation, it is desirable that all devices are located under the same root complex. However, densely clustered systems with SSD/FPGA devices may need to use more than one PCI Express (PCI Express; PCIe) switch configured for each root complex connected to each CPU socket. Utilizing the different support of Access Control Service (ACS) and CPU/chipset that can be used in a virtualized environment, peer-to-peer is not uniformly supported, which increases the burden for application users to understand these nuances in the topology.

從SSD到P2P依需撥號選路(Dial on Demand Routing;DDR)的p2p傳輸可因其可能不受支持而失敗。這種結果是由這一事實造成的:不需要PCI根複合體支援在根埠之間轉發包。這種設計選擇在實踐中對於儲存加速環境中的p2p使用率較有利,但對於用戶體驗不利。The p2p transmission from SSD to P2P dial on demand routing (Dial on Demand Routing; DDR) may fail because it may not be supported. This result is caused by the fact that there is no need for the PCI root complex to support packet forwarding between root ports. In practice, this design choice is beneficial to the p2p usage rate in the storage acceleration environment, but it is not good for the user experience.

密集的SSD/FPGA部署可由各種系統供應商內置有任何因特爾(Intel)/AMD解決方案,且可存在關於系統將如何交互的有限控制或不存在對其的控制。這個事實可對起作用的和不起作用的產生複雜度。Dense SSD/FPGA deployments can have any Intel/AMD solutions built in by various system vendors, and there may be limited or no control over how the system will interact. This fact can create complexity for what works and what does not work.

虛擬化環境中的PCI直通PCI pass-through in a virtualized environment

在某些Linux虛擬化環境中,多功能裝置(例如SSD/FPGA裝置)在用直通屬性映射到虛擬機器(Virtual Machine;VM)時可顯現為針對每個物理功能的獨立的單功能裝置。因此,可將SSD與FPGA之間顯示的三個PF映射為其間不具有關聯的三個單功能裝置。In some Linux virtualization environments, multi-function devices (such as SSD/FPGA devices) can appear as independent single-function devices for each physical function when they are mapped to virtual machines (Virtual Machine; VM) with pass-through attributes. Therefore, the three PFs displayed between the SSD and FPGA can be mapped to three single-function devices that do not have an association between them.

不具有PCI知識的用戶Users without PCI knowledge

除了以上情況之外,應用使用者可能不夠瞭解BDF關聯。這個事實可能是由於使用者是不需要用這種級別的系統細節教育的高級應用用戶。這種問題揭露可能需要高級抽象來解決這種知識差距的情況。In addition to the above, application users may not have enough understanding of BDF associations. This fact may be because the user is an advanced application user who does not need to be educated with this level of system details. This kind of problem exposure may require high-level abstractions to resolve this knowledge gap.

所提出的解決方案Proposed solution

通過提供近儲存加速且將其自身與其它獨立式SSD和FPGA區分開,SSD/FPGA裝置可視為新的SSD裝置類別。新裝置可能需要識別其自身的明確方式,即,其是具有近儲存的FPGA還是具有近加速的NVMe SSD?解決方案可包含:By providing near storage acceleration and distinguishing itself from other standalone SSDs and FPGAs, SSD/FPGA devices can be regarded as a new category of SSD devices. The new device may need a clear way to identify itself, that is, is it an FPGA with near storage or an NVMe SSD with near acceleration? Solutions can include:

低級裝置介面變更,包含:FPGA與SSD之間的私用硬體介面類別系統管理匯流排(System Management Bus;SMBus),用於共用特性;NVMe SSD韌體的較小更新,用於適應加速屬性;以及對FPGA韌體的更新,用於查詢SSD且通告SSD識別配對屬性。Low-level device interface changes, including: the private hardware interface category between FPGA and SSD, System Management Bus (SMBus), used for shared features; minor updates of NVMe SSD firmware, used to adapt to acceleration properties ; And the update of FPGA firmware, used to query the SSD and notify the SSD to identify the pairing attributes.

高級軟體介面變更,包含:FPGA的介面,所述介面可查詢低級配對細節,向現有軟體路徑顯示NVMe識別控制器新特性,且增強可管理性軟體模組以向FPGA和SSD查詢配對。Advanced software interface changes include: FPGA interface, which can query low-level pairing details, display new features of NVMe recognition controller to existing software paths, and enhance manageability software modules to query FPGA and SSD for pairing.

啟用API以用於採用生態系統,包含可通過裝置名、檔案名等識別配對的應用介面調用。The API is enabled for the adoption of the ecosystem, including application interface calls that can be matched by device name, file name, etc.

這些變更應足夠小,以視需要將NVMe SSD保持為通用。舉例來說,可對現有NVMe SSD進行重新程式設計以使其作為SSD適應於SSD/FPGA裝置。These changes should be small enough to keep the NVMe SSD as generic as needed. For example, the existing NVMe SSD can be reprogrammed to adapt it as an SSD to SSD/FPGA devices.

更改NVMe SSD以便與FPGA配對Change NVMe SSD to pair with FPGA

較小硬體變更使得FPGA和SSD能夠彼此對話。Minor hardware changes allow FPGA and SSD to talk to each other.

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。The SSD controller can support two SMBus main interfaces (see Figure 7 to Figure 8 and the accompanying text below for illustration and discussion). An SMBus main interface can be connected to an external SMBus (out-of-band (OOB)) through a connector from a board management controller (Board Management Controller; BMC) or such management entity. The second SMBus master port on the SSD can be connected to the slave SMBus port or the master SMBus port on the FPGA device. Out-of-band (OOB) SMBus interfaces can be used to implement management protocols, such as NVMe Management Interface (NMVe-MI). The internal SMBus interface between the SSD controller and FPGA can be used exclusively for communication between the two devices. The SSD controller firmware can query the FPGA device for its unique identification information. This interface can also be used for the configuration and status of the FPGA device, and the SSD controller monitors the FPGA device according to the guidance of the BMC or the host. When the host or BMC uses a management protocol (such as NVMe-MI of the SSD controller) to query the FPGA identification information, the SSD controller can extract the required information from the FPGA and return the information to the host or BMC.

SSD控制器可使用基於消息的協定來與FPGA裝置通信。SSD控制器可將各種命令消息寫入到FPGA的從SMBus埠,且隨後輪詢回應可用性。當FPGA回應訊息準備就緒時,SSD控制器讀取出回應訊息。當FPGA需要SSD控制器的關注時,FPGA可設置由SSD控制器週期性地輪詢的標誌。The SSD controller can use a message-based protocol to communicate with the FPGA device. The SSD controller can write various command messages to the slave SMBus port of the FPGA, and then poll for response availability. When the FPGA response message is ready, the SSD controller reads the response message. When the FPGA needs the attention of the SSD controller, the FPGA can set a flag to be polled periodically by the SSD controller.

SSD韌體所適應的較小變更可支援以上硬體設置。PCIe裝置初始化完成首先在多功能裝置內的嵌入式作業系統(operating system;O/S)環境中發生。稍後,多功能裝置在x86主機環境中再次初始化。The minor changes to the SSD firmware can support the above hardware settings. The completion of the PCIe device initialization first occurs in the embedded operating system (O/S) environment in the multi-function device. Later, the multifunction device is initialized again in the x86 host environment.

作為PCIe init階段的部分,軟體元件(SSD裝置中的韌體)可查詢並發現多功能裝置的本地裝置和附接裝置。在NVMe SSD和FPGA元件的初始化完成後,軟體元件可向FPGA查詢其裝置細節,所述裝置細節提供唯一序號和產品部件編號。這些細節可在其記憶體映射的NVMe基址暫存器(Base Address Register;BAR)空間中的私用偏移處寫入到SSD暫存器。在重定之後但在使得PCI配置存取適應這種更新之前,可由SSD韌體使得寫入窗口可用。這將更新保持在內部且保持在嵌入式O/S的控制內。As part of the PCIe init stage, software components (firmware in SSD devices) can query and discover the local devices and attached devices of the multi-function device. After the initialization of the NVMe SSD and FPGA components is completed, the software component can query the FPGA for its device details, which provide a unique serial number and product part number. These details can be written to the SSD register at a private offset in the NVMe base address register (BAR) space of its memory mapping. After resetting but before adapting PCI configuration access to this update, the write window can be made available by the SSD firmware. This keeps the update internal and within the control of the embedded O/S.

NVMe規格限定識別控制器和命名空間命令以發現NVMe SSD的能力。作為這些能力的部分,控制器可限定以下內容以通告其加速能力。The NVMe specification defines the ability to identify controllers and namespace commands to discover NVMe SSDs. As part of these capabilities, the controller can define the following to announce its acceleration capabilities.

表1:識別控制器資料結構 位元組 任選 / 必選 描述 4095:4031 O(供應商專有的) 加速能力 Table 1: Identify the controller data structure Byte Optional / required description 4095:4031 O (vendor specific) Acceleration

表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.專有 裝置計數,專用/共用,啟用 Table 2: Extended characteristics Byte Types of Reset description 3:0 RO 0h Supplier signature 4 RO 1h Extended features 6:5 RO Imp. Proprietary Calculation type: FPGA 10:7 RO Imp. Proprietary Device count, dedicated/shared, enabled 12:11 RO Imp. Proprietary Calculation type: cpu-ARM 16:13 RO Imp. Proprietary Device count, dedicated/shared, enabled

表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 保留 Table 3: Acceleration capacity Byte Types of Reset description 3:0 RO 0h Supplier signature 4 RO 1h The acceleration device is enabled and available 6:5 RO 100h Major version, minor version 7 RO 1h Current state 9:8 RO 0h Keep 25:10 RO Imp. Proprietary Accelerated part number as reported in FPGA VPD details 29:26 RO Imp. Proprietary Part supplier ID, device ID 33:30 RO Imp. Proprietary Acceleration feature 1 (TBD) 63:34 RO 0h Keep

更改FPGA以通告SSD裝置配對Change FPGA to notify SSD device pairing

類似於NVMe SSD,FPGA可由嵌入式O/S組件程式設計有唯一SSD細節。這些細節可通過介面來供x86主機軟體元件使用。Similar to NVMe SSD, FPGA can be programmed with embedded O/S components with unique SSD details. These details can be used by the x86 host software components through the interface.

用於配對的嵌入式O/S組件Embedded O/S components for pairing

軟體元件(也是SSD中的韌體)可查詢並發現多功能裝置的本地裝置和附接裝置。在NVMe SSD和FPGA元件的初始化完成後,軟體元件可向FPGA查詢其裝置細節,所述裝置細節提供唯一序號和產品部件編號。這些細節可在其記憶體映射的NVMe BAR空間中的私用偏移處寫入到SSD暫存器。類似地,軟體元件可用唯一SSD細節對FPGA進行程式設計,使得其與彼此配對。The software component (also the firmware in the SSD) can query and discover the local device and attached device of the multi-function device. After the initialization of the NVMe SSD and FPGA components is completed, the software component can query the FPGA for its device details, which provide a unique serial number and product part number. These details can be written to the SSD register at a private offset in the NVMe BAR space of its memory mapping. Similarly, software components can be programmed with unique SSD details to make them pair with each other.

SMBus上的上電/重定時的樣本枚舉Sample enumeration for power-up/retiming on SMBus

1.   FPGA向SSD發出NVMe(讀取識別控制器)1. FPGA sends NVMe (read recognition controller) to SSD

2.   SSD用識別資料進行回應2. The SSD responds with identification data

3.   FPGA保存序號、型號細節3. FPGA save serial number and model details

4.   FPGA發出NVMe(設置識別資料—偏移擴展特徵—供應商專有的3072位元組到4095位元組),包含:4. FPGA sends out NVMe (setting identification data-offset extension feature-vendor-specific 3072 bytes to 4095 bytes), including:

所存在的擴展特徵Extended features

計算類型:FPGA、計數、專用/共用Calculation type: FPGA, counting, dedicated/shared

計算類型:cpu-ARM、計數、專用/共用Calculation type: cpu-ARM, counting, dedicated/shared

5.   SSD確認NVMe(設置識別資料)5. SSD confirm NVMe (set identification data)

6.   FPGA發出NVMe(設置LogPage-compute_FPGA),包含:6. FPGA sends out NVMe (Set LogPage-compute_FPGA), including:

序號、型號Serial number, model

硬體能力—LUT、BRAM、URAM、Reg、DSP、DRAMHardware capabilities-LUT, BRAM, URAM, Reg, DSP, DRAM

7.   SSD確認NVMe(設置LogPage-compute_FPGA)7. SSD confirm NVMe (set LogPage-compute_FPGA)

專用介面可存在於x86主機軟體與這種元件之間以用於對配對和其它特徵的額外查詢。A dedicated interface may exist between the x86 host software and such components for additional queries on matching and other features.

可管理性軟體更改為適應新配對Manageability software changes to adapt to the new pairing

BMC通常與SMBus上的SSD介接。這種介面可擴展為適應FPGA配對,且還適應針對可用性和可管理性的特徵和其它屬性。BMC usually interfaces with SSD on SMBus. This interface can be extended to accommodate FPGA pairing, and also accommodate features and other attributes for usability and manageability.

樣本流:Sample stream:

1.   BMC向SSD發出NVMe(讀取LogPage Temp2)1. BMC sends NVMe to SSD (read LogPage Temp2)

2.   SSD向FPGA請求讀取溫度感測器2. SSD requests FPGA to read the temperature sensor

3.   FPGA返回溫度資料3. FPGA returns temperature data

4.   SSD返回LogPage資料4. SSD returns LogPage data

5.   BMC向SSD發出NVMe(讀取LogPage FPGA利用率)5. BMC sends NVMe to SSD (read LogPage FPGA utilization)

6.   SSD向FPGA請求讀取FPGA利用率6. SSD requests FPGA to read FPGA utilization

7.   FPGA返回利用率資料7. FPGA returns utilization data

8.   SSD返回LogPage資料8. SSD returns LogPage data

用於配對的x86主機軟體元件X86 host software components for pairing

這種軟體元件可供用作庫,且可在多功能裝置中共存的NVMe SSD與FPGA之間提供配對細節。元件可對x86 SDAccel執行時間驅動器和庫起作用以提供配對細節。This software component can be used as a library and can provide pairing details between NVMe SSDs and FPGAs that coexist in multi-function devices. The component can act on the x86 SDAccel execution time driver and library to provide pairing details.

到今天為止的OpenCL介面不顯示裝置的BDF級別細節,而是用從偏移0開始的編號提供邏輯抽象。介面可由提供商在內部進行更改,以查詢僅在硬體中顯示的低級細節,且這樣做還可以為計算端提供配對細節。此處,供應商可對介面變更負責。The OpenCL interface to date does not display the BDF level details of the device, but provides a logical abstraction with a number starting from offset 0. The interface can be changed internally by the provider to query low-level details that are only displayed in the hardware, and this can also provide matching details for the computing side. Here, the supplier can be responsible for interface changes.

用於查詢配對的命令列工具Command line tool for query matching

命令列工具可在不具有任何選項的情況下運行時提供細節,例如下表4中所繪示的那些細節。兩個I/O堆疊和其可程式設計裝置參考反映於細節中。NVMe SSD/dev/nvme2在指數零下與加速裝置配對。應注意,如在這種伺服器上所繪示,SSD裝置次序並未隨著FPGA加速裝置而遞增。The command-line tool can provide details when running without any options, such as those shown in Table 4 below. Two I/O stacks and their programmable device references are reflected in the details. NVMe SSD/dev/nvme2 is paired with the acceleration device at an index below zero. It should be noted that, as shown on this server, the SSD device order does not increase with the FPGA acceleration device.

表4:命令列工具輸出 裝置配對資訊: NVMe裝置                    加速裝置                                         (clGetDeviceIDs指數) /dev/nvme2                      0 /dev/nvme1              1 Table 4: Command line tool output Device pairing information: NVMe device acceleration device (clGetDeviceIDs index) /dev/nvme2 0 /dev/nvme1 1

命令列工具還可支援詳細資訊選項(verbose option),所述詳細資訊選項顯示對像系統管理員這樣的現場個人(field personal)而言更為重要的額外細節。這些額外細節可包含NVMe SSD屬性,這些屬性在這種類別的裝置上是唯一的,例如序號、模型和韌體細節以及命名空間和多分區映射資訊。細節的唯一集合還包含可識別裝置插入的槽位元的PCIe裝置鏈。下表5繪示此類資訊的實例。The command-line tool may also support verbose options, which display additional details that are more important to field personals like system administrators. These additional details can include NVMe SSD attributes, which are unique on this type of device, such as serial number, model and firmware details, as well as namespace and multi-partition mapping information. The unique set of details also includes a PCIe device chain that identifies the slot in which the device is inserted. Table 5 below shows examples of such information.

表5:命令列工具輸出 裝置配對資訊: NVMe裝置                            加速裝置                                                 (clGetDeviceIDs指數) /dev/nvme0         |...................................0        |                                    |         \-[0000:3d:00.0]     \-[0000:3e:00.0]-[0000:3e:00.1]                 |---> [PCIe EP][交換DP Slot#0][交換UP][RP槽#1][Numa節點0]                 +-型號:NVMe SSD 型號信息                 +-序列#:0123456789ABCDEF0000                 +-Firmware_rev:FPGASSD0                 +-映射:/dev/nvme0n1p1      /dev/nvme0n1 /dev/nvme2                              1         |...................................1        |                                    |        \-[0000:8e:00.0]         \-[0000:8f:00.0]-[0000: 8f:00.1]                 |---> [PCIe EP][交換DP槽#0][交換UP][RP槽#7][Numa節點1]                 +-型號:NVMe SSD 型號信息                 +-序列#:0123456789ABCDEF0000                 +-Firmware_rev:FPGASSD0                         +-映射:/dev/nvme2n1p1      /dev/nvme2n1 Table 5: Command line tool output Device pairing information: NVMe device acceleration device (clGetDeviceIDs index) /dev/nvme0 |................................. ..0 | | \-[0000:3d:00.0] \-[0000:3e:00.0]-[0000:3e:00.1] |---> [PCIe EP][Exchange DP Slot#0][Exchange UP ][RP slot#1][Numa node0] +-Model: NVMe SSD model information +-Serial#: 0123456789ABCDEF0000 +-Firmware_rev: FPGASSD0 +-Mapping: /dev/nvme0n1p1 /dev/nvme0n1 /dev/nvme2 1 |. ..................................1 | | \-[0000:8e:00.0] \-[0000 :8f:00.0]-[0000: 8f:00.1] |---> [PCIe EP][DP slot #0][UP UP][RP slot #7][Numa node 1] + -Model : NVMe SSD Model Information +-Serial#: 0123456789ABCDEF0000 +-Firmware_rev: FPGASSD0 +-Mapping: /dev/nvme2n1p1 /dev/nvme2n1

對於裝置/dev/nvme0,將SSD/FPGA裝置插入到同樣接近於numa節點0 CPU的槽號1中。這種資訊可以用於現場級分析以及可在應用級處用於CPU親和力。這種資訊還可在包含於深層嵌模式PCIe交換結構中時用於理解裝置分級結構,且還可隔離裝置問題:例如對於系統管理員。For the device /dev/nvme0, insert the SSD/FPGA device into slot 1 which is also close to the CPU of numa node 0. This information can be used for field level analysis as well as for CPU affinity at the application level. This information can also be used to understand the device hierarchy when included in the deep embedded mode PCIe switch structure, and can also isolate device problems: for example, for system administrators.

優勢Advantage

具有針對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規格擴展或一些其它機制。Having a pairing solution for SSD/FPGA devices is beneficial to make such devices more usable. In the short term, this pairing solution can solve the identification gap. In the long run, this pairing solution can illustrate decisions about how to advance the acceleration device. This solution can be used for other accelerator types, such as GPU, embedded CPU (such as Advanced Reduced Instruction Set Computer (RISC) machine (Advanced Reduced Instruction Set Computer Machine; ARM), RISC-V, tensor Processing unit (Tensor Processing Unit; TPU) and accelerator based on specific hardware), NVMe specification expansion, or some other mechanism.

圖1繪示根據本發明概念的一實施例的設計成支援儲存裝置與輔助處理器的配對的機器。在圖1中,繪示機器105。機器105可包含處理器110。處理器110可以是任何多種處理器:例如因特爾至強(Intel Xeon)、賽揚(Celeron)、安騰(Itanium)或淩動處理器(Atom processor)、AMD皓龍處理器(Opteron processor)、ARM處理器等。雖然圖1在機器105中繪示單個處理器110,但機器105可包含任何數目的處理器,所述處理器中的每一個可以是單核處理器或多核處理器,且可以任何所需組合混合。FIG. 1 illustrates a machine designed to support the pairing of a storage device and an auxiliary processor according to an embodiment of the inventive concept. In Figure 1, a machine 105 is shown. The machine 105 may include a processor 110. The processor 110 may be any of various processors: for example, Intel Xeon, Celeron, Itanium or Atom processor, AMD Opteron processor ), ARM processor, etc. Although FIG. 1 shows a single processor 110 in the machine 105, the machine 105 may include any number of processors, and each of the processors may be a single-core processor or a multi-core processor, and may be in any desired combination mixing.

機器105還可包含記憶體115。記憶體115可以是任何種類的記憶體,例如快閃記憶體、動態隨機存取記憶體(Dynamic Random Access Memory;DRAM)、靜態隨機存取記憶體(Static Random Access Memory;SRAM)、永久性隨機存取記憶體、鐵電隨機存取記憶體(Ferroelectric Random Access Memory;FRAM)或非揮發性隨機存取記憶體(Non-Volatile Random Access Memory;NVRAM),例如磁阻隨機存取記憶體(Magnetoresistive Random Access Memory;MRAM)等。記憶體115也可以是不同記憶體類型的任何所需組合。記憶體115可由記憶體控制器120管理。The machine 105 may also include a memory 115. The memory 115 can be any kind of memory, such as flash memory, dynamic random access memory (Dynamic Random Access Memory; DRAM), static random access memory (Static Random Access Memory; SRAM), permanent random Access memory, Ferroelectric Random Access Memory (FRAM) or Non-Volatile Random Access Memory (NVRAM), such as Magnetoresistive Random Access Memory (NVRAM) Random Access Memory; MRAM) etc. The memory 115 can also be any desired combination of different memory types. The memory 115 can be managed by the memory controller 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可能是硬碟驅動器。The machine 105 may also include a storage device 125-1 and a storage device 125-2, which can be controlled by a device driver (not shown). The storage device 125-1 and the storage device 125-2 may be any desired form of storage device. For example, the storage device 125-1 and the storage device 125-2 may be solid state drives (SSD), such as non-volatile storage fast (NVMe) SSDs, hard disk drives or any other required forms of storage devices. In addition, the storage device 125-1 and the storage device 125-2 may have different types, manufacturers, and/or models: for example, the storage device 125-1 may be an SSD, and the storage device 125-2 may be a hard disk drive.

機器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的其它實施方案。The machine 105 may also include an auxiliary processor 130-1 and an auxiliary processor 130-2. The auxiliary processor 130-1 and the auxiliary processor 130-2 can provide any required functions to support the storage device 125-1 and the storage device 125-2. For example, the auxiliary processor 125-1 can provide the following functions: data acceleration, data deduplication, data integrity, data encryption, data compression, and/or erasure coding. The auxiliary processor 130-1 and the auxiliary processor 130-2 may each provide only one such function, or the auxiliary processor 130-1 and the auxiliary processor 130-2 may each provide a plurality of such functions. The auxiliary processor 130-1 and the auxiliary processor 130-2 may be implemented using any required elements. Figure 2 shows some example implementations of the auxiliary processor 130-1 and the auxiliary processor 130-2, such as field programmable gate array (FPGA) 205, application-specific integrated circuit (ASIC) 210, graphics A processing unit (Graphics Processing Unit; GPU) 215, a tensor processing unit (TPU) 220, an erasure coding controller 225, and a small processor core 230, but the embodiment of the inventive concept may also include an auxiliary processor 130-1 and Other implementations of auxiliary processor 130-2.

返回到圖1,雖然圖1繪示兩個儲存裝置,其中每個儲存裝置具有一個輔助處理器,但本發明概念的實施例可視需要包含任何數目的儲存裝置和用於每個儲存裝置的任何數目的輔助處理器,所述儲存裝置和輔助處理器可具有不同類型。此外,在本發明概念的一些實施例中,一些儲存裝置可能具有輔助處理器,而其它儲存裝置可能不具有輔助處理器。但正如僅一個儲存裝置和一個輔助處理器的情況,不必考慮關於將儲存裝置與輔助處理器配對的問題,本發明概念的大部分實施例包含具有對應輔助處理器的至少兩個儲存裝置。在本文文件的剩餘部分中,術語「配對」旨在指代其中配對中的一個裝置支援另一裝置的裝置,且不應理解為僅將配對限制於兩個裝置。舉例來說,如果儲存裝置包含FPGA和GPU二者,那麼所有的三個裝置可視為「配對」。(可替代地,FPGA和GPU可分別視為與公共儲存裝置配對,若需要,保留FPGA與待間接確定的GPU之間的關聯。)Returning to FIG. 1, although FIG. 1 shows two storage devices, each of which has an auxiliary processor, the embodiment of the inventive concept may include any number of storage devices and any storage devices for each storage device as needed. The number of auxiliary processors, the storage device and the auxiliary processors may be of different types. In addition, in some embodiments of the inventive concept, some storage devices may have auxiliary processors, while other storage devices may not have auxiliary processors. However, as in the case of only one storage device and one auxiliary processor, there is no need to consider the problem of pairing the storage device with the auxiliary processor. Most embodiments of the inventive concept include at least two storage devices with corresponding auxiliary processors. In the rest of this document, the term "pairing" is intended to refer to a device in which one device in the pairing supports another device, and should not be understood as limiting the pairing to only two devices. For example, if the storage device includes both FPGA and GPU, then all three devices can be regarded as "paired." (Alternatively, FPGA and GPU can be regarded as paired with a public storage device respectively, and if necessary, the association between FPGA and GPU to be determined indirectly is retained.)

雖然圖1將機器105描繪為伺服器(其可以是獨立式伺服器或機架伺服器),但本發明概念的實施例可包含(但不限於)任何所需類型的機器105。舉例來說,機器105可用臺式電腦或膝上型電腦或可得益于本發明概念的實施例的任何其它機器替換。機器105也可包含專用可攜式電腦器、平板電腦、智慧手機和其它電腦器。Although FIG. 1 depicts the machine 105 as a server (which may be a standalone server or a rack server), embodiments of the inventive concept may include (but are not limited to) any desired type of machine 105. For example, the machine 105 can be replaced with a desktop computer or laptop computer or any other machine that can benefit from embodiments of the inventive concept. The machine 105 may also include dedicated portable computing machines, tablet computers, smart phones and other computing machines.

圖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以及其它元件來管理所述輸入/輸出介面埠。Figure 3 shows additional details of the machine of Figure 1. In FIG. 3, generally, a machine 105 includes one or more processors 110, and the one or more processors may include a memory controller 120 and a clock 305, and the memory controller and clock may be used to coordinate the device 105 The operation of the components. The processor 110 may also be connected to a memory 115, for example, the memory may include random access memory (RAM), read-only memory (ROM), or other state retention media. The processor 110 may also be connected to the storage device 125 and the network connector 310, which may be, for example, an Ethernet connector or a wireless connector. The processor 110 can also be connected to the bus 315, and the user interface 320 and input/output interface ports can be attached to the bus, and the input/output engine 325 and other components can be used to manage the input/output interface ports.

圖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僅具有作為虛擬ID 410、虛擬ID 415、虛擬ID 420和虛擬ID 425的結果而提供的資訊。借助於SSD 125-1和SSD 125-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的操作。FIG. 4 is a view of the operating system of the device of FIG. 1. In a conventional system, the operating system 405 uses a virtual identifier (ID) 410, a virtual identifier 415, a virtual identifier 420, and a virtual identifier 425 to identify the SSD 125-1 and the SSD 125-2 and the auxiliary processor 130- 1 and auxiliary processor 130-2. (From here on, the discussion will focus on SSDs as specific examples of storage devices that may include auxiliary processors, but the embodiments of the inventive concept can still be extended to storage devices of types other than SSDs.) (E.g. Peripheral Component Connection (PCI) enumerator) The virtual ID 410, virtual ID 415, virtual ID 420, and virtual ID 425 are allocated during device enumeration, or they can be allocated as virtual IDs in the machine 105 of Figure 1 to "build" Part (or both) of the machine (VM). Either way, the operating system 405 only has the information provided as a result of the virtual ID 410, virtual ID 415, virtual ID 420, and virtual ID 425. With the help of the fact that SSD 125-1 and SSD 125-2 are SSDs, the operating system 405 can know that the SSD 125-1 assigned the virtual ID 410 can include the data storage device 430, and can know that the SSD 125- assigned the virtual ID 415- 2 may include a data storage device 435. However, the operating system 405 may not know that the auxiliary processor 130-1 assigned the virtual ID 420 intends to support the operation of the SSD 125-1 assigned the virtual ID 410, or may not know that the auxiliary processor 130-2 assigned the virtual ID 425 intends to support Operation of 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至少出於配對目的可能僅需要儲存所述唯一資訊,而不是各自儲存關於配對中的每個裝置的資訊。FIG. 5 shows the device of FIG. 1 equipped to store information about its pairing. In FIG. 5, the device 125-1, the device 125-2, the device 130-1, and the device 130-2 may include storage devices for various pieces of information related to pairing. Therefore, SSD 125-1 may include storage device 505-1 and storage device 505-2 for information about itself and its companion auxiliary processor (auxiliary processor 130-1), and SSD 125-2 may include The storage device 510-1 and storage device 510-2 for information about itself and its paired auxiliary processor (auxiliary processor 130-2). The auxiliary processor 130-1 may include a storage device 510-2 for information about itself and its paired SSD ( The storage device 515-1 and storage device 515-2 of the information of the SSD 125-1), and the auxiliary processor 130-2 may include a storage device 520 for information about itself and its paired SSD (SSD 125-2) -1 and storage device 520-2. In some embodiments of the inventive concept, storage device 505-1, storage device 505-2, storage device 510-1, storage device 510-2, storage device 515-1, storage device 515-2, storage device 520- 1 and the information stored in the storage device 520-2 may include information unique to each device, such as the serial number of a globally unique ID (GUID); in other embodiments of the concept of the present invention, the storage device 505 -1. Storage device 505-2, storage device 510-1, storage device 510-2, storage device 515-1, storage device 515-2, storage device 520-1, and storage device 520-2 can be stored in the pairing device The information agreed between the two parties, said information is unique or almost certain to be unique. For example, there is an algorithm that allows both parties to agree to share secrets for ensuring the security of communication between the parties through an insecure connection: SSD 125-1 and auxiliary processor 130-1 can use such algorithms to agree to be available Shared secrets for agreed information. Or the SSD 125-1 and the auxiliary processor 130-1 may be allocated a common data segment at the time of manufacture (when they are physically paired). It should be noted that if the paired device uses some unique information that other devices will not use, then the device 125-1, device 125-2, device 130-1 and device 130-2 may only need to store the unique information at least for pairing purposes. Information instead of separately storing information about each device in the pair.

當作業系統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、虛擬ID 420以及虛擬ID 425的配對。When the operating system 405 queries individual devices for information about themselves, each device can also return information about its pairing. Therefore, for example, the SSD 125-1 can store its own information in the storage device 505-1 and information about the auxiliary processor 130-1 in the storage device 505-2; similarly, the auxiliary processor 130- 1 can store its own information in the storage device 515-2 and store information about the SSD 125-1 in the storage device 515-1. Subsequently, the operating system 405 can use information from the storage device 505-1, storage device 505-2, storage device 515-1, and storage device 515-2 to determine that the SSD 125-1 and the auxiliary processor 130-1 are paired. Such information may be, for example, the serial numbers of various devices or other information that is desired to be unique, such as GUID or calculated shared secret. For example, if two (or more than two) devices each provide their own serial numbers, and their paired serial numbers correspond to the serial numbers as expected, the operating system 405 may regard the two devices as paired. Similarly, if two (or more than two) devices each provide a unique identifier (or a unique identifier may be desired), then the fact that the devices all provide the identifier can confirm that these devices should be considered paired. In this way, the operating system 405 may cause the virtual ID 410, the virtual ID 415, the virtual ID 420, and the virtual ID 425 to be paired as needed.

圖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隨後可儲存這種配對資訊。FIG. 6 illustrates the operating system 405 of FIG. 5 that queries the SSD 125-1 of FIG. 1 and the auxiliary processor 130-1 of FIG. 1 and pairs the devices. In FIG. 6, the operating system 405 may send a query 605 to the SSD 125-1 asking for its device details. It should be noted that conventional operating systems can query devices to determine device characteristics and features as part of the startup; Basic Input/Output System (BIOS) can also query to discover which devices are connected. What is novel is that in response 610, the SSD 125-1 may contain information about itself and information about the auxiliary processor 130-1. Similarly, the operating system 405 may send a query 615 to the auxiliary processor 130-1 asking for details of its device: the auxiliary processor 130-1 may send a response 620 containing information about itself and information about the SSD 125-1. When the operating system 405 receives the response 610 and the response 620, the operating system 405 can use the information to determine that the SSD 125-1 and the auxiliary processor 130-1 are paired, as shown in operation 625. The operating system 405 can then store such pairing information.

一旦作業系統405察覺到哪些儲存裝置與哪些輔助處理器配對,作業系統405可使這種資訊可供應用程式和/或使用者使用。舉例來說,作業系統405可提供應用程式設計介面(Application Programming Interface;API),應用程式可使用應用程式設計介面來向作業系統405查詢配對資訊。舉例來說,應用程式可發送查詢,以向SSD 125-1詢問哪個(哪些)裝置經由API與所述裝置配對。作業系統405隨後可用輔助處理器130-1與SSD 125-1配對的資訊進行回應。另一應用程式可詢問關於與特定資料段相關聯的配對裝置的資訊:例如,給定特定文件(或鍵值目標,或可在儲存裝置上的另一格式中所儲存的資料),哪些儲存裝置儲存所述資料,以及哪些其它裝置與所述儲存裝置配對。作業系統405隨後可確定哪個儲存裝置儲存所述資料,且隨後返回關於儲存裝置和其配對的資訊。(當然,應用程式可發送兩個API查詢:一個用以確定儲存目標資料的特定儲存裝置,且另一個用以確定哪個(哪些)裝置與所述儲存裝置配對。將這兩個查詢組合成一個僅是一種簡化。)Once the operating system 405 is aware of which storage devices are paired with which auxiliary processors, the operating system 405 can make this information available to applications and/or users. For example, the operating system 405 can provide an application programming interface (API), and an application can use the application programming interface to query the operating system 405 for pairing information. For example, the application can send a query to ask the SSD 125-1 which device(s) are paired with the device via the API. The operating system 405 can then respond with the information that the auxiliary processor 130-1 is paired with the SSD 125-1. Another application can ask for information about the paired devices associated with a particular data segment: for example, given a particular document (or key-value target, or data that can be stored in another format on the storage device), which ones are stored The device stores the data and which other devices are paired with the storage device. The operating system 405 can then determine which storage device stores the data, and then return information about the storage device and its pairing. (Of course, the application can send two API queries: one to determine the specific storage device that stores the target data, and the other to determine which device(s) are paired with that storage device. Combine these two queries into one Just a simplification.)

一旦應用程式經由API瞭解到哪些裝置是配對的,應用程式隨後可相應地使用所述資訊。舉例來說,假設圖1的輔助處理器130-1和輔助處理器130-2是提供資料加速服務的兩個FPGA。一旦應用程式知道哪個儲存裝置儲存目標資料,應用程式可將請求導向與所述儲存裝置配對的FPGA,從而請求對目標資料進行資料加速服務。相同原理適用於可由圖1的輔助處理器130-1和輔助處理器130-2提供的任何其它功能:資料加速僅用作實例功能。Once the application knows which devices are paired via the API, the application can then use the information accordingly. For example, assume that the auxiliary processor 130-1 and the auxiliary processor 130-2 of FIG. 1 are two FPGAs that provide data acceleration services. Once the application program knows which storage device stores the target data, the application program can direct the request to the FPGA paired with the storage device to request data acceleration services for the target data. The same principle applies to any other functions that can be provided by the auxiliary processor 130-1 and auxiliary processor 130-2 of FIG. 1: data acceleration is only used as an example function.

此時,一個問題保持不變:如何使裝置察覺到識別配對中的裝置的資訊?如果在製造時將資訊分配為由配對裝置共用的唯一資料,那麼應答是顯而易見的。但如果裝置使用其序列編號或每個裝置分別所獨有的其它資料來說明識別其配對,那麼應答不會如此簡單。圖7到圖9說明裝置可如何獲得這種資訊。At this time, one question remains the same: how to make the device aware of the information identifying the paired device? If the information is allocated as the only data shared by the paired devices at the time of manufacturing, the answer is obvious. However, if the device uses its serial number or other information unique to each device to indicate the identification of its pairing, the response will not be so simple. Figures 7 to 9 illustrate how the device can obtain this information.

圖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可以是從裝置。FIG. 7 illustrates the SSD 125-1 of FIG. 1 and the auxiliary processor 130-1 of FIG. 1 in a single appearance size in an embodiment of the inventive concept. In FIG. 7, the SSD 125-1 and the auxiliary processor 130-1 can communicate using the hardware interface of the connection device. For example, this hardware interface may be a system management bus (SMBus) connecting the SSD 125-1 and the auxiliary processor 130-1. If SMBus is used, either of the devices (SSD 125-1 or auxiliary processor 130-1) can be the master device and the other can be the slave device, or both can be the master devices on the multi-master bus. For example, in some embodiments, the SSD 125-1 may be the master device of the SMBus 705, and the auxiliary processor 130-1 may be the slave device.

如所繪示,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。As shown, the SSD 125-1 can be connected to the machine 105 of FIG. 1 via both the in-band connection 710 and the out-of-band connection 715. The in-band connection 710 may include, for example, a message sent via a PCI Express (PCIe) connection, and the out-of-band connection 715 may be, for example, another SMBus connection (on which the SSD 125-1 may be a slave device, and the baseboard management controller (BMC ) Can be the main device, or SSD 125-1 and BMC can be the main device on the multi-main bus). Generally, the in-band connection 710 can be used for regular requests (such as read requests and write requests issued to the SSD 125-1) and can be used to use the functions of the auxiliary processor 130-1, while the out-of-band connection 715 can be used for Control type request: for example, querying the current operating temperature of the SSD 125-1 and/or the auxiliary processor 130-1. In the case of using the in-band connection 710 to communicate with the auxiliary processor 130-1, the SSD 125-1 may act as a pass-through device that relies on messages directed to the auxiliary processor 130-1. Alternatively, the SSD 125-1 may function in some converter capabilities to convert the request as received from the machine 105 of FIG. 1 into a different form for transmission to the auxiliary processor 130-1.

與圖7相比,圖8繪示在本發明概念的另一實施例中的呈單個外觀尺寸的圖1的SSD 125-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類似地操作。Compared with FIG. 7, FIG. 8 shows the SSD 125-1 of FIG. 1 and the auxiliary processor 130-1 of FIG. 1 in a single appearance size in another embodiment of the inventive concept. In the embodiment depicted in FIG. 8, the auxiliary processor 130-1 is directly connected to the in-band connection 710 instead of the SSD 125-1. In this embodiment of the inventive concept, when the auxiliary processor 130-1 receives a request intended for the SSD 125-1, the auxiliary processor 130-1 can act as a pass-through device that depends on the SSD 125- 1 message. Alternatively, the auxiliary processor 130-1 may play a role in some converter capabilities to convert the request as received from the machine 105 of FIG. 1 into a different form for transmission to the SSD 125-1. In all other respects, the SSD 125-1 and the auxiliary processor 130-1 operate similarly to the SSD 125-1 and the auxiliary processor 130-1 in FIG.

雖然圖7到圖8解決SSD 125-1和輔助處理器130-1二者以相同外觀尺寸出售的可能性,SSD 125-1和輔助處理器130-1可作為獨立元件出售,只要存在准許這兩個配對裝置之間的通信的某一形式的硬體介面505即可,以使得裝置能夠與圖4的作業系統325共用配對資訊。Although Figures 7 to 8 address the possibility that both the SSD 125-1 and the auxiliary processor 130-1 are sold in the same external dimensions, the SSD 125-1 and the auxiliary processor 130-1 can be sold as independent components, as long as there is permission for this A certain form of hardware interface 505 for communication between two paired devices is sufficient, so that the device can share pairing information with the operating system 325 of FIG. 4.

圖9繪示根據本發明概念的一實施例的建立其配對的圖1的SSD 125-1和圖1的輔助處理器130-1。圖9可在SSD 125-1和輔助處理器130-1共用硬體介面(例如圖7到圖8的硬體介面705)時使用。在圖9中,SSD 125-1正在從輔助處理器125-1發起對裝置資訊的查詢。SSD 125-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以向SSD 125-1通知接收到設置配對資料命令中的配對資料。最後,SSD 125-1可發送設置高級資料925以向輔助處理器130-1通知SSD 125-1希望輔助處理器130-1知道的任何其它資料,所述輔助處理器130-1可用設置回應930進行應答。FIG. 9 illustrates the SSD 125-1 of FIG. 1 and the auxiliary processor 130-1 of FIG. 1 that establish their pairing according to an embodiment of the inventive concept. FIG. 9 can be used when the SSD 125-1 and the auxiliary processor 130-1 share a hardware interface (for example, the hardware interface 705 in FIGS. 7 to 8). In Figure 9, the SSD 125-1 is initiating a query for device information from the auxiliary processor 125-1. The SSD 125-1 may send the identification device 905 to the auxiliary processor 130-1 (this command and all other commands in FIGS. 9 to 10 may be NVMe commands, or may be commands using other protocols). The auxiliary processor 130-1 may respond with an identification response 910, which may include unique information related to the pairing of the SSD 125-1 and the auxiliary processor 130-1. Such information may include, for example, the GUID or the manufacturer model and serial number of the auxiliary processor 130-1. After receiving the identification response 910, the SSD 125-1 can store the information of the auxiliary processor 130-1: for example, store it in the storage device 505-2 of FIG. The SSD 125-1 may then send the setting pairing data 915, which may include unique information of the SSD 125-1: in addition, for example, the GUID or the manufacturer model and serial number of the SSD 125-1. The auxiliary processor 130-1 can then store the information of the SSD 125-1: in addition, for example, store it in the storage device 515-1 of FIG. The auxiliary processor 130-1 may then send a setting response 920 to notify the SSD 125-1 that the pairing data in the setting pairing data command is received. Finally, the SSD 125-1 can send the setting advanced information 925 to notify the auxiliary processor 130-1 of any other information that the SSD 125-1 wants the auxiliary processor 130-1 to know, and the auxiliary processor 130-1 can respond 930 with the settings. Respond.

圖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可發送設置日誌頁925以向SSD 125-1通知輔助處理器130-1希望SSD 125-1知道的任何其它資料,所述SSD 125-1可用設置回應1025進行應答。FIG. 10 illustrates the SSD 125-1 of FIG. 1 and the auxiliary processor 130-1 of FIG. 1 that establish their pairing according to another embodiment of the inventive concept. FIG. 10 is similar to FIG. 9 except that the auxiliary processor 130-1 instead of the SSD 125-1 can initiate information exchange. In FIG. 10, the auxiliary processor 130-1 may send the read identity data 1005 to the SSD 125-1. The SSD 125-1 may respond with a read response 1010, which may include unique information related to the pairing of the auxiliary processor 130-1 and the SSD 125-1. Such information may include, for example, the GUID or the manufacturer model and serial number of the SSD 125-1. After receiving the read response 1010, the auxiliary processor 130-1 can store the information of the SSD 125-1: for example, store it in the storage device 505-2 of FIG. The auxiliary processor 130-1 may then send the set identity data 1015, which may include unique information of the auxiliary processor 130-1: in addition, for example, the GUID or the manufacturer model and serial number of the auxiliary processor 130-1. The SSD 125-1 can then store the information of the auxiliary processor 130-1: in addition, for example, it is stored in the storage device 515-1 of FIG. The SSD 125-1 can then send a setting response 1020 to notify the auxiliary processor 130-1 that the pairing data in the setting identity data command is received. Finally, the auxiliary processor 130-1 may send the setting log page 925 to inform the SSD 125-1 of any other information that the auxiliary processor 130-1 wants the SSD 125-1 to know about, and the SSD 125-1 may respond with the setting response 1025. .

圖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和其輔助處理器的結構。FIG. 11 illustrates a first topology including the SSD 125-1 of FIG. 1 and the auxiliary processor 130-1 of FIG. 1 according to an embodiment of the inventive concept. Figures 11 to 14 are taken from the U.S. Patent Application No. 16/260,087 filed on January 28, 2019 in the same application. The application is the U.S. Patent Application No. 16/226,629 filed on December 19, 2018. Part of the continuation application, the application is the continuation application of the U.S. Patent Application No. 16/207,080 filed on November 30, 2018, the application requires the U.S. Provisional Patent Application No. 62/745,261 filed on October 12, 2018 Rights, all of the above applications are incorporated herein by reference for all purposes. However, the U.S. Patent Application No. 16/260,087, which is also in the application, focuses on the overall combination of PCIe switches with erasure coding, while this article focuses more on the structure of SSD and its auxiliary processors.

在圖11中,繪示具有後備擦除編碼邏輯的PCIe交換機1105,其可實施為圖1的機器105的獨立組件。也就是說,可製造具有後備擦除編碼邏輯的PCIe交換機1105,且其可與任何其它元件(例如圖1的處理器110、儲存裝置125-1或輔助處理器130-1)分開出售。In FIG. 11, a PCIe switch 1105 with backup erasure coding logic is shown, which can be implemented as an independent component of the machine 105 of FIG. That is, the PCIe switch 1105 with backup erasure coding logic can be manufactured, and it can be sold separately from any other components (for example, the processor 110, the storage device 125-1, or the auxiliary processor 130-1 of FIG. 1).

具有後備擦除編碼邏輯的PCIe交換機1105可連接到儲存裝置125-1。在圖11中,將具有後備擦除編碼邏輯的PCIe交換機1105繪示為連接到僅單個儲存裝置,所述儲存裝置可以不支援擦除編碼:擦除編碼需要至少兩個儲存裝置或儲存裝置的至少兩個部分來執行分帶、分塊、分組以及使用同位或碼資訊。但即使利用單個儲存裝置,具有後備擦除編碼邏輯的PCIe交換機1105也可以提供一些優勢。舉例來說,具有後備擦除編碼邏輯的PCIe交換機1105可支援將改錯碼與儲存裝置125-1一起使用,或如果儲存裝置125-1本身不提供那些服務,那麼對儲存在儲存裝置125-1上的資料進行加密。A PCIe switch 1105 with backup erasure coding logic can be connected to the storage device 125-1. In FIG. 11, the PCIe switch 1105 with backup erasure coding logic is shown as being connected to only a single storage device, and the storage device may not support erasure coding: erasure coding requires at least two storage devices or storage devices. At least two parts are used to perform banding, block, grouping, and use of parity or code information. But even with a single storage device, the PCIe switch 1105 with backup erasure coding logic can provide some advantages. For example, a PCIe switch 1105 with backup erasure coding logic can support the use of error correction codes with storage device 125-1, or if the storage device 125-1 itself does not provide those services, then the storage device 125- The data on 1 is encrypted.

儲存裝置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之間。The storage device 125-1 can also be connected to the FPGA 205, the example of the auxiliary processor 130-1 of FIG. 1 (for the remainder of the discussion about FIGS. 11 to 14, any reference to the FPGA 205 can be understood to include References to any alternative auxiliary processors depicted in 2 or more generally references to auxiliary processors 130-1 of FIG. 1). FPGA 205 can support acceleration. Simply put, there may be situations where the data may need to be processed and then discarded. Loading all of the data into the processor 110 of FIG. 1 to perform processing can be expensive and time-consuming: calculations can be performed more easily when closer to the data. The FPGA 205 can support performing such calculations closer to the storage device, thereby avoiding loading data into the processor 110 of FIG. 1 to perform calculations: this concept is called "acceleration". FPGA-based acceleration is discussed in more detail in U.S. Patent Application No. 16/122,865 filed on September 5, 2018, which requires U.S. Provisional Patent Application No. 62/642,568, filed on March 13, 2018. U.S. Provisional Patent Application No. 62/641,267 filed on March 13, 2018 and U.S. Provisional Patent Application No. 62/638,904 filed on March 5, 2018, all of the above applications are hereby incorporated by reference; It also requires U.S. Patent Application No. 16/124,179 filed on September 6, 2018, U.S. Patent Application No. 16/124,182 filed on September 6, 2018, and U.S. Patent Application No. 16/ filed on September 6, 2018 124,183, all of the above applications are continuations of U.S. Patent Application No. 16/122,865 filed on September 5, 2018 and are hereby incorporated by reference. Since the goal of acceleration is to process data without transmitting the data to the processor 110 in FIG. 1, FIG. 11 shows the FPGA 205 closer to the storage device 125-1. However, it should be noted that the specific arrangement shown in FIG. 11 is not required: FPGA 205 may be located between PCIe switch 1105 with backup erasure coding logic and storage device 125-1.

除資料加速以外,FPGA 205可提供其它功能以支援儲存裝置125-1。舉例來說,FPGA 205可在儲存裝置125-1上實現資料刪除重複功能,以試圖減少將相同資料儲存在儲存裝置125-1上的次數。FPGA 205可確定是否不止一次將特定資料儲存在儲存裝置125-1上,在各種邏輯塊位址之間建立關聯(或由主機用來識別資料的其它資訊),且其中將資料儲存在儲存裝置125-1上,並且刪除額外複本。In addition to data acceleration, the FPGA 205 may provide other functions to support the storage device 125-1. For example, the FPGA 205 can implement the data deduplication function on the storage device 125-1 in an attempt to reduce the number of times the same data is stored on the storage device 125-1. FPGA 205 can determine whether to store specific data on storage device 125-1 more than once, establish associations between various logical block addresses (or other information used by the host to identify data), and store the data in the storage device. 125-1, and delete the extra copy.

可替代地,FPGA 205可在儲存裝置125-1上實現資料完整性功能(例如添加改錯碼),以防止通過儲存裝置125-1的操作中或使用迴圈冗餘校正(Cyclic Redundancy Correction;CRC)進行端對端保護的T10DIF(資料完整性欄位)中的錯誤而發生資料丟失。以此方式,FPGA 205可能能夠檢測在儲存裝置125-1上寫入或讀取資料的錯誤何時出現或對躍遷中的資料進行檢測並恢復初始資料。應注意,FPGA 205可在主機未察覺到正在提供資料完整性功能的情況下實現資料完整性功能:主機可僅參看資料本身且不參看任何改錯碼。Alternatively, the FPGA 205 can implement a data integrity function (such as adding an error correction code) on the storage device 125-1 to prevent the operation through the storage device 125-1 or the use of Cyclic Redundancy Correction (Cyclic Redundancy Correction; CRC) error in T10DIF (data integrity field) for end-to-end protection and data loss occurs. In this way, the FPGA 205 may be able to detect when an error in writing or reading data on the storage device 125-1 occurs or detect the data in transition and restore the original data. It should be noted that the FPGA 205 can implement the data integrity function without the host being aware that it is providing the data integrity function: the host can only refer to the data itself without any error correction codes.

可替代地,FPGA 205可在儲存裝置125-1上實現資料加密功能,以防止未經授權的各方能夠在儲存裝置125-1上存取資料:在不提供適合的加密金鑰的情況下,從FPGA 205返回的資料對於請求者來說是無意義的。主機可提供待在寫入和讀取資料時使用的加密金鑰。或,FPGA 205可自動執行資料加密和解密:FPGA 205可儲存加密金鑰(且甚至可代表主機產生加密金鑰),且基於誰正在請求資料來確定要使用的適合的加密金鑰。Alternatively, the FPGA 205 can implement a data encryption function on the storage device 125-1 to prevent unauthorized parties from being able to access data on the storage device 125-1: without providing a suitable encryption key , The information returned from FPGA 205 is meaningless to the requester. The host can provide an encryption key to be used when writing and reading data. Or, FPGA 205 can automatically perform data encryption and decryption: FPGA 205 can store encryption keys (and can even generate encryption keys on behalf of the host), and determine the appropriate encryption key to use based on who is requesting the data.

可替代地,FPGA 205可在儲存裝置125-1上實現資料壓縮功能,以減少將資料儲存在儲存裝置125-1上所需的空間量。當將資料寫入到儲存裝置125-1時,FPGA 205可實施將由主機提供的資料壓縮成較小儲存量隨後儲存壓縮的資料(以及在從儲存裝置125-1讀取資料時恢復初始資料所需的任何資訊)的功能。當從儲存裝置125-1讀取資料時,FPGA 205可讀取壓縮的資料(以及從壓縮的資料恢復初始資料所需的任何資訊)且除去壓縮以恢復初始資料。Alternatively, the FPGA 205 may implement a data compression function on the storage device 125-1 to reduce the amount of space required to store data on the storage device 125-1. When writing data to the storage device 125-1, the FPGA 205 can compress the data provided by the host into a smaller storage capacity and then store the compressed data (and restore the original data when reading data from the storage device 125-1). Any information required). When reading data from the storage device 125-1, the FPGA 205 can read the compressed data (and any information needed to restore the original data from the compressed data) and remove the compression to restore the original data.

可使用資料刪除重複、資料完整性、資料加密以及資料壓縮的任何所需實施方案。本發明概念的實施例不限於任何這些功能的特定實施方案。Any required implementation of data deduplication, data integrity, data encryption, and data compression can be used. The embodiments of the inventive concept are not limited to specific implementations of any of these functions.

FPGA 205還可視需要在儲存裝置125-1上實現功能的任何組合。舉例來說,FPGA 205可實施資料壓縮和資料完整性二者(由於資料壓縮可增加資料對錯誤的靈敏度:如儲存在儲存裝置125-1上的資料中的單個錯誤可導致大量資料不可用)。或FPGA 205可實施資料加密和資料壓縮二者(以在盡可能少地使用用於資料的儲存裝置時保護資料)。也可以由FPGA 205提供兩個或大於兩個功能的其它組合。The FPGA 205 can also implement any combination of functions on the storage device 125-1 as needed. For example, FPGA 205 can implement both data compression and data integrity (because data compression can increase the sensitivity of data to errors: for example, a single error in the data stored on the storage device 125-1 can make a large amount of data unavailable) . Or FPGA 205 can implement both data encryption and data compression (to protect data when the storage device for data is used as little as possible). The FPGA 205 may also provide other combinations of two or more functions.

就總體操作而言,在實現任何這些功能時,FPGA 205可從適合的源讀取資料。應注意,雖然術語「源」是單數名詞,但是本發明概念的實施例可在適當情況下從多個源(例如多個儲存裝置)讀取資料。FPGA 205隨後可對資料執行適當的操作:資料加速、資料整合、資料加密和/或資料壓縮。FPGA 205隨後可對操作結果採取適當的操作:例如,將結果發送到圖1的機器105,或將資料寫入到儲存裝置125-1。In terms of overall operation, the FPGA 205 can read data from a suitable source when implementing any of these functions. It should be noted that although the term “source” is a singular noun, embodiments of the inventive concept can read data from multiple sources (eg, multiple storage devices) under appropriate circumstances. FPGA 205 can then perform appropriate operations on the data: data acceleration, data integration, data encryption, and/or data compression. The FPGA 205 can then take appropriate actions on the result of the operation: for example, sending the result to the machine 105 of FIG. 1 or writing data to the storage device 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)。Although the above functions are described with reference to the FPGA 205 of FIG. 11, embodiments of the inventive concept may include these functions in any position in the system (the system includes an FPGA). In addition, the embodiment of the inventive concept enables the FPGA 205 to access data from a "remote" storage device. For example, temporarily returning to FIG. 1 and assuming that the storage device 125-1 includes an FPGA similar to the FPGA 205, but the storage device 125-2 does not contain such auxiliary processors. The FPGA included in the storage device 125-1 can be used to apply its functions to the storage device 125-2 by sending a request to the storage device 125-2. For example, if the FPGA in the storage device 125-1 provides data acceleration, the FPGA in the storage device 125-1 can send a request to read data from the storage device 125-2, perform appropriate acceleration, and then send the result To a suitable destination (such as machine 105 in Figure 1).

在圖11中(且在下圖12到圖14中所繪示的拓撲中),具有後備擦除編碼邏輯的PCIe交換機1105可附接到不具備擦除編碼的資格的裝置。舉例來說,具有後備擦除編碼邏輯的PCIe交換機1105可附接到具有內建式擦除編碼功能的其它儲存裝置或附接到不是儲存裝置的裝置,例如圖11的FPGA 205或圖2的GPU 215。可將所有此類裝置描述為不具備擦除編碼(或至少,通過具有後備擦除編碼邏輯的PCIe交換機1105進行擦除編碼)的資格的裝置。In FIG. 11 (and in the topologies shown in FIGS. 12 to 14 below), a PCIe switch 1105 with backup erasure coding logic can be attached to a device that is not qualified for erasure coding. For example, the PCIe switch 1105 with backup erasure coding logic can be attached to other storage devices with built-in erasure coding functions or to devices that are not storage devices, such as FPGA 205 in FIG. 11 or in FIG. 2 GPU 215. All such devices can be described as devices that are not eligible for erasure coding (or at least, erasure coding through a PCIe switch 1105 with backup erasure coding logic).

當具有後備擦除編碼邏輯的PCIe交換機1105連接到不具備擦除編碼的資格的裝置時,系統具有可使用的各種替代方法。在本發明概念的一個實施例中,包含不具備擦除編碼的資格的任何裝置可導致具有後備擦除編碼邏輯的PCIe交換機1105的後備擦除編碼邏輯停用。因此,如果例如具有後備擦除編碼邏輯的PCIe交換機1105連接到圖11的FPGA 205,或圖2的GPU 215,或具有本地擦除編碼邏輯的儲存裝置,那麼連接到具有後備擦除編碼邏輯的PCIe交換機1105的儲存裝置中無一可與擦除編碼一起使用。應注意,對停用具有後備擦除編碼邏輯的PCIe交換機1105的後備擦除編碼邏輯的決策不必轉移到在相同底盤或其它底盤中的具有後備擦除編碼邏輯的其它PCIe交換機。舉例來說,暫時提前參看圖13,圖13繪示兩個具有後備擦除編碼邏輯的PCIe交換機1105、具有後備擦除編碼邏輯的PCIe交換機1305,其中一個可具有啟用的後備擦除編碼邏輯,而另一個可具有停用的後備擦除編碼邏輯。When a PCIe switch 1105 with backup erasure coding logic is connected to a device that is not qualified for erasure coding, the system has various alternative methods that can be used. In one embodiment of the inventive concept, including any device that is not eligible for erasure coding can cause the backup erasure coding logic of the PCIe switch 1105 with backup erasure coding logic to be disabled. Therefore, if, for example, a PCIe switch 1105 with backup erasure coding logic is connected to FPGA 205 in FIG. 11, or GPU 215 in FIG. 2, or a storage device with local erasure coding logic, then it is connected to a storage device with backup erasure coding logic. None of the storage devices of the PCIe switch 1105 can be used with erasure coding. It should be noted that the decision to disable the backup erasure coding logic of the PCIe switch 1105 with backup erasure coding logic does not have to be transferred to other PCIe switches with backup erasure coding logic in the same chassis or other chassis. For example, referring to Figure 13 in advance, Figure 13 shows two PCIe switches 1105 with backup erasure coding logic and PCIe switch 1305 with backup erasure coding logic. One of them may have backup erasure coding logic enabled. And the other one can have backup erasure coding logic disabled.

本發明概念的另一實施例可停用不具備擦除編碼的資格的裝置,如同它們根本未連接到具有後備擦除編碼邏輯的PCIe交換機1105一樣來處理這些裝置。在本發明概念的這一實施例中,具有後備擦除編碼邏輯的PCIe交換機1105可針對儲存裝置125-1啟用後備擦除編碼邏輯,且可停用不具備擦除編碼的資格的任何其它儲存裝置,如同它們未連接到具有後備擦除編碼邏輯的PCIe交換機1105一樣。Another embodiment of the inventive concept can deactivate devices that are not eligible for erasure coding as if they are not connected to the PCIe switch 1105 with backup erasure coding logic to handle these devices. In this embodiment of the inventive concept, the PCIe switch 1105 with backup erasure coding logic can enable the backup erasure coding logic for the storage device 125-1, and can disable any other storage that is not eligible for erasure coding. Devices as if they were not connected to the PCIe switch 1105 with backup erasure coding logic.

在本發明概念的又一實施例中,具有後備擦除編碼邏輯的PCIe交換機1105可針對可由後備擦除編碼邏輯覆蓋的儲存裝置來啟用後備擦除編碼邏輯,但仍然使得能夠訪問不具備擦除編碼的資格的其它裝置。本發明概念的這一實施例是最複雜的實施方式:具有後備擦除編碼邏輯的PCIe交換機1105需要確定哪些裝置具備擦除編碼的資格和哪些裝置不具備擦除編碼的資格,隨後分析流量以確定流量是指定用於虛擬儲存裝置(在這種情況下,流量由後備擦除編碼邏輯截斷)還是未指定用於虛擬儲存裝置(在這種情況下,將流量傳送到其初始目的地。)In another embodiment of the concept of the present invention, the PCIe switch 1105 with backup erasure coding logic can enable backup erasure coding logic for storage devices that can be covered by the backup erasure coding logic, but still enables access without erasure coding. Encoded qualification of other devices. This embodiment of the inventive concept is the most complex implementation: a PCIe switch 1105 with backup erasure coding logic needs to determine which devices are eligible for erasure coding and which devices are not qualified for erasure coding, and then analyze the traffic to Determine whether the traffic is designated for virtual storage (in this case, the traffic is truncated by the back-up erasure coding logic) or not designated for virtual storage (in this case, the traffic is delivered to its original destination.)

在其中圖1的機器105最終沒有提供已安裝裝置的完整功能的本發明概念的實施例中,即在其中擦除編碼由於存在不具備擦除編碼的資格的裝置而停用或此類裝置由具有後備擦除編碼邏輯的PCIe交換機1105停用的本發明概念的實施例中,圖1的機器105可向用戶通知這一事實。這種通知可由圖1的處理器110、BMC或具有後備擦除編碼邏輯的PCIe交換機1105提供。除向用戶通知一些功能已停用以外,所述通知還可通知使用者如何重新配置圖1的機器105以准許添加的功能。舉例來說,所述通知可建議不具備擦除編碼的資格的裝置連接到中平面中的特定槽位(可能是連接到具有後備擦除編碼邏輯的PCIe機1305的那些槽位),並且建議確實具備擦除編碼的資格的儲存裝置連接到其它槽位元,例如連接到具有後備擦除編碼邏輯的PCIe交換機1105的那些槽位。以此方式,具備擦除編碼的資格的至少一些儲存裝置可受益於擦除編碼方案,但不阻斷對不具備擦除編碼的資格的其它裝置進行訪問。In the embodiment of the inventive concept in which the machine 105 of FIG. 1 ultimately does not provide the full functionality of the installed device, that is, in which erasure coding is disabled due to the existence of a device that is not qualified for erasure coding or such a device is In an embodiment of the inventive concept where the PCIe switch 1105 with backup erasure coding logic is disabled, the machine 105 of FIG. 1 can notify the user of this fact. Such notification may be provided by the processor 110 of FIG. 1, the BMC, or the PCIe switch 1105 with backup erasure coding logic. In addition to notifying the user that some functions have been disabled, the notification may also inform the user how to reconfigure the machine 105 of FIG. 1 to permit the added functions. For example, the notification may suggest that devices that are not eligible for erasure coding connect to specific slots in the mid-plane (possibly those slots connected to PCIe machines 1305 with backup erasure coding logic), and suggest Storage devices that are indeed eligible for erasure coding are connected to other slots, such as those connected to the PCIe switch 1105 with backup erasure coding logic. In this way, at least some storage devices that are eligible for erasure coding can benefit from the erasure coding scheme, but access to other devices that are not eligible for erasure coding is not blocked.

圖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。FIG. 12 illustrates a second topology including the SSD of FIG. 1 and the auxiliary processor of FIG. 1 according to another embodiment of the inventive concept. In FIG. 12, the PCIe switch 1105 with backup erasure coding logic can be located in the FPGA 205: that is, the FPGA 205 can also implement the PCIe switch 1105 with backup erasure coding logic. FPGA 205 and PCIe switch 1105 with backup erasure coding logic can then be connected to storage device 125-1 to storage device 125-4. Although FIG. 12 shows the FPGA 205 and the PCIe switch 1105 with backup erasure coding logic connected to the four storage devices 125-1 to 125-4, the embodiment of the inventive concept may include any number of storage devices 125 -1 to storage device 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的部件。Generally, the topology shown in Figure 12 can be in a single shell or case containing all the components shown (SSD 125-1 to SSD 125-4 can be independent flash memory instead of self-contained SSD) achieve. That is to say, it is not sold as an independent component, but the entire structure shown in FIG. 12 can be sold as a single unit. However, the embodiment of the concept of the present invention may also include a riser card, one end of which is connected to the machine 105 of FIG. 1 (may be connected to the midplane), and a connector on the other end (for example, U.2, M.3 or SFF-TA-1008 connector) connect to storage device 125-1 to storage device 125-4. And although FIG. 12 shows the PCIe switch 1105 with backup erasure coding logic as a component of FPGA 205, the PCIe switch 1105 with backup erasure coding logic can also be implemented as a component of a smart 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試圖存取作為擦除編碼方案的部分的儲存裝置)。FIG. 13 illustrates a third topology for using the PCIe switch 1105 with backup erasure coding logic of FIG. 1 according to another embodiment of the inventive concept. In FIG. 13, two PCIe switches 1105 with backup erasure coding logic and PCIe switches 1305 with backup erasure coding logic are shown, and at most 24 storage devices 125-1 to storage devices 125-6 are connected between them. Each PCIe switch 1105 with backup erasure coding logic and PCIe switch 1305 with backup erasure coding logic can contain 96 PCIe lanes, using four PCIe lanes in each direction to communicate with storage device 125-1 to storage device One communication in 125-6: Each PCIe switch 1105 with backup erasure coding logic and PCIe switch 1305 with backup erasure coding logic can then support up to 12 storage devices. In order to support erasure coding on storage devices supported by multiple PCIe switches 1105 with backup erasure coding logic and PCIe switches 1305 with backup erasure coding logic, a PCIe switch with backup erasure coding logic can be specified It is responsible for erasure coding on all devices and can have back-up erasure coding logic enabled. Another PCIe switch 1305 with backup erasure coding logic can only operate as a PCIe switch when the backup erasure coding logic is disabled. The choice of which PCIe switch should be selected to handle erasure coding can be done in any desired way: for example, two PCIe switches can negotiate this separately, or the PCIe switch enumerated first can be designated to handle erasure coding. The PCIe switch selected to handle erasure coding can then report to the virtual storage device (across two PCIe switches), while the PCIe switch that does not handle erasure coding may not have a downstream device to report (to prevent the processor 110 in Figure 1 from attempting Access storage devices that are part of an erasure coding scheme).

應注意,雖然具有後備擦除編碼邏輯的PCIe交換機1105和具有後備擦除編碼邏輯的PCIe交換機1305可都位於相同底盤中,但具有後備擦除編碼邏輯的PCIe交換機1105和具有後備擦除編碼邏輯的PCIe交換機1305可位於不同底盤中。也就是說,擦除編碼方案可跨越多個底盤中的儲存裝置。唯一需要的就是各種底盤中的PCIe交換機能夠彼此協商將成為擦除編碼方案的部分的儲存裝置所處的位置。本發明概念的實施例不限於兩個具有後備擦除編碼邏輯的PCIe交換機1105和具有後備擦除編碼邏輯的PCIe交換機1305:在擦除編碼方案中所包含的儲存裝置可連接到任何數目的具有後備擦除編碼邏輯的PCIe交換機1105和具有後備擦除編碼邏輯的PCIe交換機1305。It should be noted that although the PCIe switch 1105 with backup erasure coding logic and the PCIe switch 1305 with backup erasure coding logic may both be located in the same chassis, the PCIe switch 1105 with backup erasure coding logic and the PCIe switch 1105 with backup erasure coding logic The PCIe switch 1305 can be located in different chassis. That is, the erasure coding scheme can span storage devices in multiple chassis. The only requirement is that the PCIe switches in the various chassis can negotiate with each other the location of the storage devices that will be part of the erasure coding scheme. The embodiments of the inventive concept are not limited to two PCIe switches with backup erasure coding logic 1105 and PCIe switches with backup erasure coding logic 1305: the storage devices included in the erasure coding scheme can be connected to any number of The PCIe switch 1105 with backup erasure coding logic and the PCIe switch 1305 with backup erasure coding logic.

主機邏輯塊位址(Host Logical Block Address;LBA)可以任何所需方式跨具有後備擦除編碼邏輯的PCIe交換機1105和具有後備擦除編碼邏輯的PCIe交換機1305分割。舉例來說,主機中的最低有效位元(least significant bit;LBA)可用於識別具有後備擦除編碼邏輯的PCIe交換機1105或具有後備擦除編碼邏輯的PCIe交換機1305中的哪一個包含儲存具有所述主機LBA的資料的儲存裝置。利用大於兩個具有後備擦除編碼邏輯的PCIe交換機,多個位可用於確定哪一個具有後備擦除編碼邏輯的PCIe交換機管理儲存資料的儲存裝置。一旦已識別到適合的具有後備擦除編碼邏輯的PCIe交換機,傳輸就可以路由到適合的具有後備擦除編碼邏輯的PCIe交換機(假設傳輸並未指定用於儲存裝置,所述儲存裝置連接到啟用後備擦除編碼邏輯的具有後備擦除編碼邏輯的PCIe交換機)。The Host Logical Block Address (LBA) can be split across the PCIe switch 1105 with backup erasure coding logic and the PCIe switch 1305 with backup erasure coding logic in any desired manner. For example, the least significant bit (LBA) in the host can be used to identify which of the PCIe switch 1105 with backup erasure coding logic or the PCIe switch 1305 with backup erasure coding logic contains storage The storage device of the host LBA data. With more than two PCIe switches with backup erasure coding logic, multiple bits can be used to determine which PCIe switch with backup erasure coding logic manages the storage device storing the data. Once a suitable PCIe switch with backup erasure coding logic has been identified, the transmission can be routed to a suitable PCIe switch with backup erasure coding logic (assuming that the transmission is not designated for storage devices that are connected to the enabled PCIe switch with backup erasure coding logic).

在本發明概念的另一實施例中,並非使單個具有後備擦除編碼邏輯的PCIe交換機負責虛擬化連接到兩個具有後備擦除編碼邏輯的PCIe交換機的所有儲存裝置,而是每個具有後備擦除編碼邏輯的PCIe交換機可產生獨立虛擬儲存裝置(具有獨立擦除編碼域)。以此方式,可為不同客戶產生不同擦除編碼域,但這些編碼域具有較小容量。In another embodiment of the concept of the present invention, instead of making a single PCIe switch with backup erasure coding logic be responsible for virtualizing all storage devices connected to two PCIe switches with backup erasure coding logic, each has backup The PCIe switch of erasure coding logic can generate independent virtual storage device (with independent erasure coding domain). In this way, different erasure coding domains can be generated for different clients, but these coding domains have a smaller capacity.

雖然圖13意指只有儲存裝置125-1到儲存裝置125-6連接到具有後備擦除編碼邏輯的PCIe交換機1105和具有後備擦除編碼邏輯的PCIe交換機1305,且意指所有儲存裝置125-1到儲存裝置125-6可與擦除編碼方案一起使用,但如上文所論述,本發明概念的實施例不限於此:具有後備擦除編碼邏輯的PCIe交換機1105和具有後備擦除編碼邏輯的PCIe交換機1305可使不具備擦除編碼的資格的裝置與其連接。可根據單個具有後備擦除編碼邏輯的PCIe交換機對此類裝置進行分組,其中根據不同具有後備擦除編碼邏輯的PCIe交換機1105對具備擦除編碼的資格的儲存裝置進行分組。以此方式,可實現圖1的機器105的最佳功能,其中使一個(或一些)具有後備擦除編碼邏輯的PCIe交換機啟用後備擦除編碼邏輯,且使一個(或一些)具有後備擦除編碼邏輯的PCIe交換機禁用後備擦除編碼邏輯。Although FIG. 13 means that only storage device 125-1 to storage device 125-6 are connected to PCIe switch 1105 with backup erasure coding logic and PCIe switch 1305 with backup erasure coding logic, and it means all storage devices 125-1 The storage device 125-6 can be used with an erasure coding scheme, but as discussed above, embodiments of the inventive concept are not limited to this: PCIe switch 1105 with backup erasure coding logic and PCIe with backup erasure coding logic The switch 1305 can connect devices that are not qualified for erasure coding. Such devices can be grouped according to a single PCIe switch with backup erasure coding logic, wherein storage devices qualified for erasure coding are grouped according to different PCIe switches 1105 with backup erasure coding logic. In this way, the best function of the machine 105 of FIG. 1 can be achieved, in which one (or some) PCIe switches with backup erasure coding logic are enabled with backup erasure coding logic, and one (or some) is enabled with backup erasure coding logic. The PCIe switch with encoding logic disables backup erasure encoding logic.

圖14繪示根據本發明概念的又一實施例的包含圖1的SSD和圖1的輔助處理器的第四拓樸。在圖14中,與圖13相比,具有後備擦除編碼邏輯的PCIe交換機1105、具有後備擦除編碼邏輯的PCIe交換機1305以及具有後備擦除編碼邏輯的PCIe交換機1405可按照分級結構構造。具有後備擦除編碼邏輯的PCIe交換機1105在分級結構的頂部處可管理用於分級結構中的具有後備擦除編碼邏輯的PCIe交換機1105下方的所有儲存裝置的擦除編碼,並且因此可啟用後備擦除編碼邏輯。另一方面,具有後備擦除編碼邏輯的PCIe交換機1305和具有後備擦除編碼邏輯的PCIe交換機1405可使其後備擦除編碼邏輯停用(由於其儲存裝置由具有後備擦除編碼邏輯的PCIe交換機1105的後備擦除編碼邏輯管理)。FIG. 14 shows a fourth topology including the SSD of FIG. 1 and the auxiliary processor of FIG. 1 according to another embodiment of the inventive concept. In FIG. 14, compared with FIG. 13, the PCIe switch 1105 with backup erasure coding logic, the PCIe switch 1305 with backup erasure coding logic, and the PCIe switch 1405 with backup erasure coding logic can be constructed in a hierarchical structure. The PCIe switch 1105 with backup erasure coding logic can manage the erasure coding for all storage devices under the PCIe switch 1105 with backup erasure coding logic in the hierarchy at the top of the hierarchy, and thus backup erasure can be enabled Except for coding logic. On the other hand, the PCIe switch 1305 with backup erasure coding logic and the PCIe switch 1405 with backup erasure coding logic can disable its backup erasure coding logic (because its storage device is controlled by the PCIe switch with backup erasure coding logic 1105 backup erasure coding logic management).

雖然圖14繪示以兩層分級結構構造的三個具有後備擦除編碼邏輯的PCIe交換機1105、具有後備擦除編碼邏輯的PCIe交換機1305以及具有後備擦除編碼邏輯的PCIe交換機1405,但是本發明概念的實施例不受限於所包含的PCIe交換機的數目或不受限於分級佈置。因此,本發明概念的實施例可支援配置於任何所需分級結構中的任何數目的具有後備擦除編碼邏輯的PCIe交換機。Although FIG. 14 shows three PCIe switches 1105 with backup erasure coding logic, a PCIe switch 1305 with backup erasure coding logic, and a PCIe switch 1405 with backup erasure coding logic constructed in a two-layer hierarchical structure, the present invention The embodiment of the concept is not limited to the number of PCIe switches included or to a hierarchical arrangement. Therefore, embodiments of the inventive concept can support any number of PCIe switches with backup erasure coding logic deployed in any desired hierarchical structure.

上文參看圖1到圖14所描述的本發明概念的實施例的重點是單埠儲存裝置。但本發明概念的實施例可擴展到雙埠儲存裝置,其中一個(或大於一個)儲存裝置與多個具有後備擦除編碼邏輯的PCIe交換機進行通信。在本發明概念的這些實施例中,如果圖11的具有後備擦除編碼邏輯的PCIe交換機1105無法與雙埠儲存裝置進行通信,那麼具有後備擦除編碼邏輯的PCIe交換機1105可將傳輸發送到具有後備擦除編碼邏輯的PCIe交換機1305以試圖與儲存裝置進行通信。具有後備擦除編碼邏輯的PCIe交換機1305有效地充當橋接器以使具有後備擦除編碼邏輯的PCIe交換機1105與儲存裝置進行通信。The focus of the embodiment of the inventive concept described above with reference to FIGS. 1 to 14 is the single-port storage device. However, embodiments of the inventive concept can be extended to dual-port storage devices, where one (or more than one) storage device communicates with multiple PCIe switches with backup erasure coding logic. In these embodiments of the inventive concept, if the PCIe switch 1105 with backup erasure coding logic of FIG. 11 cannot communicate with the dual-port storage device, then the PCIe switch 1105 with backup erasure coding logic can send the transmission to The PCIe switch 1305 backing up erasure coding logic attempts to communicate with the storage device. The PCIe switch 1305 with backup erasure coding logic effectively acts as a bridge to enable the PCIe switch 1105 with backup erasure coding logic to communicate with the storage device.

圖15繪示根據本發明概念的一實施例的供圖1的SSD 125-1(或圖1的輔助處理器130-1)向其合作夥伴查詢配對資料的實例過程的流程圖。在圖15中,在框1505處,圖1的SSD 125-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),使得其合作夥伴可儲存其配對資訊。15 is a flowchart of an example process for the SSD 125-1 of FIG. 1 (or the auxiliary processor 130-1 of FIG. 1) to query its partners for pairing information according to an embodiment of the inventive concept. In FIG. 15, at block 1505, the SSD 125-1 of FIG. 1 may send the identification device 905 of FIG. 9 to its partner (or the auxiliary processor 130-1 of FIG. 1 may send the reading of FIG. 10 to its partner). Get identity information 1005). At block 1510, the SSD 125-1 of FIG. 1 may receive the identification response 910 of FIG. 9 (or the auxiliary processor 130-1 of FIG. 1 may receive the read response 1010 of FIG. 10). At block 1515, the SSD 125-1 of FIG. 1 may store the received pairing information in the storage device 505-2 of FIG. 5 (or the auxiliary processor 130-1 of FIG. 1 may store the received pairing information in In the storage device 515-1 of Figure 5). At block 1520, the SSD 125-1 of FIG. 1 may access its own pairing information from the storage device 505-1 of FIG. 5 (or the auxiliary processor 130-1 of FIG. 1 may access the storage device 515-2 of FIG. Access its pairing information). Finally, at block 1525, the SSD 125-1 of FIG. 1 may send the setting pairing information 915 of FIG. 9 to its partner (or the auxiliary processor 130-1 of FIG. 1 may send the setting identity information of FIG. 10 to its partner 1015) so that its partners can store their matching information.

圖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的SSD 125-1可將圖1的輔助處理器130-1的配對資訊儲存在圖5的儲存裝置505-2中(或圖1的輔助處理器130-1可將圖1的SSD 125-1的配對資訊儲存在圖5的儲存裝置515-1中)。16 is a flowchart of an example process for the SSD 125-1 of FIG. 1 (or the auxiliary processor 130-1 of FIG. 1) to receive a query for matching data from its partners according to an embodiment of the inventive concept. In FIG. 12, at block 1605, the SSD 125-1 of FIG. 1 may receive the read identity data 1005 of FIG. 10 from the auxiliary processor 130-1 of FIG. 1 (or the auxiliary processor 130-1 of FIG. The SSD 125-1 of FIG. 1 receives the identification device 905 of FIG. 9). At block 1610, the SSD 125-1 of FIG. 1 may access its pairing information from the storage device 505-1 of FIG. 5 (or the auxiliary processor 130-1 may access its pairing information from the storage device 515-2 of FIG. 5 ). At block 1615, the SSD 125-1 of FIG. 1 may send the pairing information in the read response 1010 of FIG. 10 to the auxiliary processor 130-1 of FIG. 1 (or the auxiliary processor 130-1 of FIG. 1 may send FIG. 9 The identification response to the pairing information in 910). At block 1620, the SSD 125-1 of FIG. 1 may receive the setting identity information 1015 of FIG. 10 from the auxiliary processor 130-1 of FIG. 1 (or the auxiliary processor 130-1 of FIG. 1 may obtain the information from the SSD 125- of FIG. 1 1 Receive the setting pairing data 915 of FIG. 9). Finally, at block 1625, the SSD 125-1 of FIG. 1 may store the pairing information of the auxiliary processor 130-1 of FIG. 1 in the storage device 505-2 of FIG. 5 (or the auxiliary processor 130-1 of FIG. 1 The pairing information of the SSD 125-1 in FIG. 1 can be stored in the storage device 515-1 in FIG. 5).

圖17繪示根據本發明概念的一實施例的使圖1的SSD 125-1和/或圖1的輔助處理器130-1對關於其和其配對合作夥伴的來自圖5的作業系統405的查詢作出回應的實例過程的流程圖。在圖17中,在框1705處,圖1的SSD 125-1和/或輔助處理器130-1可從圖5的作業系統405接收圖6的查詢605和/或查詢610。在框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發送關於配對裝置的配對資訊。FIG. 17 shows the SSD 125-1 of FIG. 1 and/or the auxiliary processor 130-1 of FIG. 1 to the operating system 405 of FIG. 5 with respect to the SSD 125-1 and/or the auxiliary processor 130-1 of FIG. 1 according to an embodiment of the inventive concept. The flow chart of the example process of query response. In FIG. 17, at block 1705, the SSD 125-1 and/or auxiliary processor 130-1 of FIG. 1 may receive the query 605 and/or query 610 of FIG. 6 from the operating system 405 of FIG. At block 1710, the SSD 125-1 and/or auxiliary processor 130-1 of FIG. 1 may access the SSD 125-1 and/or the SSD 125-1 and/or the storage device 515-2 of FIG. 5 from the storage device 505-1 and/or storage device 515-2 of FIG. /Or the matching information of the auxiliary processor 130-1, such as a unique ID or manufacturer model and/or serial number. At block 1715, the SSD 125-1 and/or auxiliary processor 130-1 of FIG. 1 may access the pairing information for the partner device from the storage device 505-2 and/or storage device 515-1 of FIG. 5, For example, unique ID or manufacturer model and/or serial number. Finally, at block 1720, the SSD 125-1 and/or auxiliary processor 130-1 of FIG. 1 may send pairing information about the paired device to the operating system 405 of FIG. 5.

圖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提供給支援關於裝置配對的查詢的應用程式。FIG. 18 shows a flowchart of an example process for the operating system 405 of FIG. 5 to query the SSD 125-1 of FIG. 1 and the auxiliary processor 130-1 of FIG. 1 and pair them according to an embodiment of the inventive concept. In FIG. 18, at block 1805, the operating system 405 of FIG. 5 may send a query (to the operating system 405 of FIG. 5) to the device represented by the virtual ID, such as query 605 and/or query 615 of FIG. At block 1810, the operating system 405 of FIG. 5 may receive its pairing information from the device. At block 1815, the operating system 405 of FIG. 5 may send another query, such as query 605 and/or query 615 of FIG. 6, to another device represented by another virtual ID (to operating system 405 of FIG. 5). At block 1820, the operating system 405 of FIG. 5 may receive its pairing information from the device. At block 1825, the operating system 405 of FIG. 5 may determine that the two devices have provided the same pairing information, and the devices are paired in some manner in the operating system 405 of FIG. 5. Finally, at block 1830, the operating system 405 of FIG. 5 may provide APIs to applications that support queries regarding device pairing.

圖19繪示根據本發明概念的一實施例的使圖5的作業系統405對來自應用程式的關於裝置的配對資訊的查詢作出回應的實例過程的流程圖。在圖19中,在框處1905,圖5的作業系統405可從應用程式接收對特定裝置的配對的請求。在框1910處,圖5的作業系統405可在儲存配對資訊的表中找出所請求的裝置。在框1915處,圖5的作業系統405可為表中的裝置確定配對。在框1920處,圖5的作業系統405可向應用程式返回關於裝置的配對的資訊。FIG. 19 is a flowchart of an example process for making the operating system 405 of FIG. 5 respond to a query about device pairing information from an application according to an embodiment of the inventive concept. In FIG. 19, at block 1905, the operating system 405 of FIG. 5 may receive a pairing request for a specific device from an application program. At block 1910, the operating system 405 of FIG. 5 may find the requested device in the table storing the pairing information. At block 1915, the operating system 405 of FIG. 5 may determine a pairing for the devices in the table. At block 1920, the operating system 405 of FIG. 5 may return information about the pairing of the device to the application.

可替代地,在框1925處,圖5的作業系統405可從應用程式接收對關於資料識別符(例如文件、物件、金鑰等)的配對資訊的請求。在框1930處,圖5的作業系統405可確定儲存由資料識別符識別到的資料的裝置。此時,如由箭頭1935所繪示,圖5的作業系統405可執行如上文所描述的框1910和框1915。隨後,如由箭頭1940所繪示,圖5的作業系統405可向應用程式返回關於儲存資料的裝置和其配對二者的資訊。Alternatively, at block 1925, the operating system 405 of FIG. 5 may receive a request for pairing information about data identifiers (eg, documents, objects, keys, etc.) from the application. At block 1930, the operating system 405 of FIG. 5 may determine the device that stores the data identified by the data identifier. At this time, as illustrated by the arrow 1935, the operating system 405 of FIG. 5 may execute block 1910 and block 1915 as described above. Subsequently, as shown by the arrow 1940, the operating system 405 of FIG. 5 may return information about both the device storing the data and its pairing to the application.

在圖15到圖19中,繪示本發明概念的一些實施例。但本領域技術人員將認識到,通過改變框的次序、通過省略框或通過包含未在附圖中繪示的鏈路,本發明概念的其它實施例也是可能的。無論是否明確地描述,流程圖的所有此類變化都視為本發明概念的實施例。In FIGS. 15 to 19, some embodiments of the inventive concept are shown. However, those skilled in the art will recognize that other embodiments of the inventive concept are also possible by changing the order of the blocks, by omitting the blocks, or by including links not shown in the drawings. Regardless of whether it is explicitly described, all such changes of the flowchart are regarded as embodiments of the inventive concept.

本發明概念的實施例提供優於現有技術的技術優勢。本發明概念的實施例准許圖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配對,所述服務待在配對之後執行。The embodiments of the inventive concept provide technical advantages over the prior art. The embodiment of the inventive concept allows the SSD 125-1 and the SSD 125-2 and the auxiliary processor 130-1 and the auxiliary processor 130-2 of FIG. 1 to determine the pairing information about their pairing partners. Subsequently, the SSD 125-1 and SSD 125-2 in FIG. 1 as well as the auxiliary processor 130-1 and the auxiliary processor 130-2 may provide such pairing information to the operating system 405 of FIG. 5, so that the operating system 405 of FIG. 5 can Store information about which devices are paired with which other devices. Once the operating system 405 of FIG. 5 has appropriately paired devices, the operating system 405 of FIG. 5 can provide this information to the application via the API, so that the application can request the auxiliary processor 130-1 and auxiliary processing from FIG. 1 The auxiliary processor is paired with the SSD 125-1 and SSD 125-2 of FIG. 1 that store data, and the service is to be executed after the pairing.

以下論述旨在提供其中可以實施本發明概念的某些方面的一或多個合適機器的簡要一般描述。一或多個機器可以至少部分地通過來自例如鍵盤、滑鼠等常規輸入裝置的輸入,以及通過從另一機器接收的指令、與虛擬實境(virtual reality;VR)環境的交互、生物計量回饋或其它輸入信號來進行控制。本文中所使用的術語「機器」旨在廣泛地涵蓋單個機器、虛擬機器,或一起操作的以通信方式連接的機器、虛擬機器或裝置的系統。示例性機器包含計算裝置,例如個人電腦、工作站、伺服器、可攜式電腦、掌上型裝置、電話、平板電腦等;以及交通裝置,例如私人或公共交通工具,例如汽車、火車、計程車等。The following discussion is intended to provide a brief general description of one or more suitable machines in which certain aspects of the inventive concept may be implemented. One or more machines can be at least partially through input from conventional input devices such as keyboards, mice, etc., as well as through instructions received from another machine, interaction with virtual reality (VR) environments, and biometric feedback Or other input signals for control. The term "machine" as used herein is intended to broadly cover a single machine, a virtual machine, or a system of communicatively connected machines, virtual machines or devices that operate together. Exemplary machines include computing devices, such as personal computers, workstations, servers, portable computers, palmtop devices, phones, tablets, etc.; and transportation devices, such as private or public transportation, such as cars, trains, taxis, etc.

一或多個機器可以包含嵌入式控制器,例如可程式設計或不可程式設計的邏輯裝置或陣列、專用積體電路(ASIC)、嵌入式電腦、智慧卡等。一或多個機器可以例如通過網路介面、數據機或其它通信連接來利用與一或多個遠端機器的一或多個連接。機器可以借助於物理網路和/或邏輯網路(例如企業內部網、網際網路、局域網、廣域網路等)互連。本領域技術人員應理解,網路通信可以利用各種有線和/或無線短程或遠端載波和協議,其包含射頻(radio frequency;RF)、衛星、微波、電氣電子工程師學會(Institute of Electrical and Electronics Engineer;IEEE)802.11、Bluetooth®、光學、紅外線、電纜、鐳射等。One or more machines may include embedded controllers, such as programmable or non-programmable logic devices or arrays, application-specific integrated circuits (ASICs), embedded computers, smart cards, etc. One or more machines may utilize one or more connections to one or more remote machines, for example, through a network interface, modem, or other communication connection. Machines can be interconnected by means of physical networks and/or logical networks (such as intranet, Internet, local area network, wide area network, etc.). Those skilled in the art should understand that various wired and/or wireless short-range or remote carriers and protocols can be used for network communication, including radio frequency (RF), satellite, microwave, and Institute of Electrical and Electronics Engineers (Institute of Electrical and Electronics Engineers). Engineer; IEEE) 802.11, Bluetooth®, optical, infrared, cable, laser, etc.

可以參考或結合包含功能、過程、資料結構、應用程式等的相關聯資料來描述本發明概念的實施例,所述相關聯資料在通過機器存取時引起機器執行任務或限定抽象資料類型或低級硬體環境。相關聯資料可以儲存在例如揮發性和/或非揮發性記憶體(例如RAM、ROM等)中或儲存在其它儲存裝置以及其相關聯儲存介質中,所述儲存介質包含硬碟驅動器、軟碟、光學儲存裝置、磁帶、快閃記憶體、儲存棒、數位視訊光碟、生物儲存裝置等。相關聯資料可以包、串列資料、並行資料、傳播信號等形式在包含物理和/或邏輯網路的傳輸環境上傳遞,並且可以壓縮或加密格式使用。相關聯資料可以用於分散式環境中,並且本地地和/或遠端地儲存以供機器訪問。The embodiments of the inventive concept can be described with reference to or in combination with related data including functions, processes, data structures, applications, etc., which when accessed through a machine cause the machine to perform tasks or define abstract data types or low-level The hardware environment. Associated data can be stored in, for example, volatile and/or non-volatile memory (such as RAM, ROM, etc.) or in other storage devices and their associated storage media. The storage media includes hard drives, floppy disks , Optical storage devices, tapes, flash memory, storage sticks, digital video discs, biological storage devices, etc. The associated data can be transmitted in the form of packets, serial data, parallel data, propagated signals, etc., on a transmission environment including physical and/or logical networks, and can be used in compressed or encrypted format. The associated information can be used in a distributed environment and stored locally and/or remotely for machine access.

本發明概念的實施例可以包含有形的非暫時性機器可讀介質,所述非暫時性機器可讀介質包括可由一或多個處理器執行的指令,所述指令包括用於執行如本文所描述的發明性概念的元件的指令。Embodiments of the inventive concept may include a tangible non-transitory machine-readable medium that includes instructions executable by one or more processors, the instructions including instructions for executing as described herein The instruction of the elements of the inventive concept.

上文所描述的方法的各個操作可由能夠執行所述操作的任何合適的裝置來執行,例如各種硬體和/或軟體元件、電路和/或模組。軟體可包括用於實現邏輯功能的可執行指令的有序列表,且可以在供指令執行系統、設備或裝置使用或與指令執行系統、設備或裝置結合的任何「處理器可讀介質」中實施,所述指令執行系統、設備或裝置為例如單核處理器或多核處理器或含處理器的系統。The various operations of the methods described above can be performed by any suitable device capable of performing the operations, such as various hardware and/or software components, circuits, and/or modules. The software may include an ordered list of executable instructions for implementing logical functions, and may be implemented in any "processor-readable medium" used by or in combination with an instruction execution system, device, or device The instruction execution system, device or device is, for example, a single-core processor or a multi-core processor or a system containing a processor.

結合本文中所公開的實施例而描述的方法或演算法及函數的框或步驟可直接以硬體、由處理器執行的軟體模組或所述兩個的組合實施。如果以軟體實施,那麼可將功能作為一或多個指令或代碼儲存在有形的非暫時電腦可讀介質上或通過所述有形的非暫時性電腦可讀介質進行傳輸。軟體模組可駐留在隨機存取記憶體(RAM)、快閃記憶體、唯讀記憶體(ROM)、電可程式設計ROM(Electrically Programmable ROM;EPROM)、電可擦可程式設計ROM(Electrically Erasable Programmable ROM;EEPROM)、暫存器、硬碟、可移動式磁片、CD ROM或所屬領域中已知的任何其它形式的儲存介質中。The blocks or steps of methods or algorithms and functions described in conjunction with the embodiments disclosed herein can be directly implemented by hardware, a software module executed by a processor, or a combination of the two. If implemented in software, the function can be stored as one or more instructions or codes on a tangible non-transitory computer-readable medium or transmitted through the tangible non-transitory computer-readable medium. The software module can reside in random access memory (RAM), flash memory, read-only memory (ROM), electrically programmable ROM (Electrically Programmable ROM; EPROM), electrically erasable programmable ROM (Electrically Erasable Programmable ROM; EEPROM), scratchpad, hard disk, removable disk, CD ROM or any other form of storage medium known in the art.

在參考所說明實施例描述和說明本發明概念的原理之後,應認識到,所說明實施例的佈置和細節可以在不脫離此類原理的情況下進行修改,並且可以按任何所需方式組合。而且,雖然前述論述的重點是特定實施例,但是可設想其它配置。特定來說,即使本文中使用例如「根據本發明概念的實施例」等的表達,但是這些詞語一般表示參考實施例可能性,且並不旨在將本發明概念限制到特定實施例配置。如本文中所使用,這些術語可以參考可組合到其它實施例中的相同或不同實施例。After describing and explaining the principles of the inventive concept with reference to the illustrated embodiments, it should be recognized that the arrangement and details of the illustrated embodiments can be modified without departing from such principles, and can be combined in any desired manner. Moreover, although the foregoing discussion has focused on specific embodiments, other configurations are conceivable. In particular, even if expressions such as “an embodiment according to the inventive concept” are used herein, these words generally indicate the possibility of a reference embodiment, and are not intended to limit the inventive concept to a specific embodiment configuration. As used herein, these terms may refer to the same or different embodiments that can be combined into other embodiments.

前述說明性實施例不應解釋為限制其本發明概念。雖然已經描述幾個實施例,但本領域技術人員將容易理解,在實質上不脫離本公開的新穎教示和優勢的情況下,對那些實施例的許多修改是可能的。因此,所有此類修改旨在包含在如所附權利要求中限定的這一發明概念的範圍內。The foregoing illustrative embodiments should not be construed as limiting the inventive concept thereof. Although several embodiments have been described, those skilled in the art will readily understand that many modifications to those embodiments are possible without substantially departing from the novel teachings and advantages of the present disclosure. Therefore, all such modifications are intended to be included within the scope of this inventive concept as defined in the appended claims.

本發明概念的實施例可以擴展到(但不限於)以下陳述:The embodiments of the inventive concept can be extended to (but not limited to) the following statements:

陳述1.本發明概念的實施例包含一種系統,包括: 固態驅動器(SSD),包含: 用於資料的第一儲存裝置; 用於唯一SSD識別符(ID)的第二儲存裝置;以及 用於唯一輔助處理器ID的第三儲存裝置; 輔助處理器,包含: 用於唯一輔助處理器ID的第四儲存裝置; 用於唯一SSD ID的第五儲存裝置;以及 硬體介面,位於SSD與輔助處理器之間。Statement 1. An embodiment of the inventive concept includes a system including: Solid state drives (SSD), including: The first storage device for data; A second storage device for a unique SSD identifier (ID); and A third storage device for the unique auxiliary processor ID; Auxiliary processor, including: A fourth storage device for the unique auxiliary processor ID; The fifth storage device for the unique SSD ID; and The hardware interface is located between the SSD and the auxiliary processor.

陳述2.本發明概念的實施例包含根據陳述1所述的系統,其中輔助處理器包含現場可程式閘陣列(FPGA)、專用積體電路、圖形處理單元(GPU)、張量處理單元、擦除編碼控制器以及小型處理器核心中的一個。Statement 2. An embodiment of the inventive concept includes the system according to Statement 1, wherein the auxiliary processor includes a field programmable gate array (FPGA), a dedicated integrated circuit, a graphics processing unit (GPU), a tensor processing unit, a wiper Except for one of the code controller and the small processor core.

陳述3.本發明概念的實施例包含根據陳述1所述的系統,其中硬體介面包含系統管理匯流排(SMBus)和積體電路間(Inter-Integrated Circuit;I2C)匯流排中的一個。Statement 3. An embodiment of the inventive concept includes the system according to Statement 1, wherein the hardware interface includes one of a system management bus (SMBus) and an Inter-Integrated Circuit (I2C) bus.

陳述4.本發明概念的實施例包含根據陳述1所述的系統,其中第四儲存裝置包含一次性可程式(one-time programmable;OTP)記憶體、可程式唯讀記憶體(Programmable Read-Only Memory;PROM)、可擦可程式唯讀記憶體(Eraseable Programmable Read-Only Memory;EPROM)和電可擦可程式唯讀記憶體(EEPROM)中的一個。Statement 4. An embodiment of the inventive concept includes the system according to Statement 1, wherein the fourth storage device includes one-time programmable (OTP) memory, programmable read-only memory (Programmable Read-Only) Memory; PROM), erasable programmable read-only memory (Eraseable Programmable Read-Only Memory; EPROM), and electrically erasable programmable read-only memory (EEPROM).

陳述5.本發明概念的實施例包含根據陳述1所述的系統,其中輔助處理器可操作以向SSD查詢唯一SSD ID且將唯一SSD ID儲存在第五儲存裝置中。Statement 5. An embodiment of the inventive concept includes the system according to Statement 1, wherein the auxiliary processor is operable to query the SSD for a unique SSD ID and store the unique SSD ID in the fifth storage device.

陳述6.本發明概念的實施例包含根據陳述1所述的系統,其中輔助處理器可操作以為SSD提供唯一輔助處理器ID。Statement 6. An embodiment of the inventive concept includes the system according to Statement 1, wherein the auxiliary processor is operable to provide a unique auxiliary processor ID for the SSD.

陳述7.本發明概念的實施例包含根據陳述1所述的系統,其中SSD可操作以向輔助處理器查詢唯一輔助處理器ID且將唯一輔助處理器ID儲存在第三儲存裝置中。Statement 7. An embodiment of the inventive concept includes the system according to Statement 1, wherein the SSD is operable to query the auxiliary processor for a unique auxiliary processor ID and store the unique auxiliary processor ID in a third storage device.

陳述8.本發明概念的實施例包含根據陳述1所述的系統,其中SSD可操作以為輔助處理器提供唯一SSD ID。Statement 8. An embodiment of the inventive concept includes the system according to Statement 1, wherein the SSD is operable to provide a unique SSD ID for the auxiliary processor.

陳述9.本發明概念的實施例包含根據陳述1所述的系統,其中SSD可帶外地操作以接收關於SSD和輔助處理器的查詢。Statement 9. An embodiment of the inventive concept includes the system according to Statement 1, wherein the SSD can operate out-of-band to receive queries about the SSD and auxiliary processors.

陳述10.本發明概念的實施例包含根據陳述9所述的系統,其中SSD包含用於帶外地接收查詢的SMBus連接。Statement 10. An embodiment of the inventive concept includes the system according to Statement 9, wherein the SSD includes an SMBus connection for receiving queries out-of-band.

陳述11.本發明概念的實施例包含根據陳述9所述的系統,其中SSD可操作以用唯一SSD ID和唯一輔助處理器ID二者對查詢作出回應。Statement 11. An embodiment of the inventive concept includes the system according to Statement 9, wherein the SSD is operable to respond to queries with both a unique SSD ID and a unique auxiliary processor ID.

陳述12.本發明概念的實施例包含根據陳述9所述的系統,其中查詢包含非揮發性記憶體快速(NVMe)管理介面(MI)命令。Statement 12. An embodiment of the inventive concept includes the system according to Statement 9, wherein the query includes a non-volatile memory express (NVMe) management interface (MI) command.

陳述13.本發明概念的實施例包含根據陳述1所述的系統,其中輔助處理器可操作以帶外地接收關於SSD和輔助處理器的查詢。Statement 13. An embodiment of the inventive concept includes the system according to Statement 1, wherein the auxiliary processor is operable to receive out-of-band queries about the SSD and the auxiliary processor.

陳述14.本發明概念的實施例包含根據陳述13所述的系統,其中輔助處理器可操作以用唯一SSD ID和唯一輔助處理器ID二者對查詢作出回應。Statement 14. An embodiment of the inventive concept includes the system according to Statement 13, wherein the auxiliary processor is operable to respond to queries with both a unique SSD ID and a unique auxiliary processor ID.

陳述15.本發明概念的實施例包含根據陳述13所述的系統,其中查詢包含非揮發性記憶體快速(NVMe)管理介面(MI)命令。Statement 15. An embodiment of the inventive concept includes the system according to Statement 13, wherein the query includes a non-volatile memory express (NVMe) management interface (MI) command.

陳述16.本發明概念的實施例包含根據陳述1所述的系統,其中SSD可操作以帶內地接收關於SSD和輔助處理器的查詢。Statement 16. An embodiment of the inventive concept includes the system according to Statement 1, wherein the SSD is operable to receive in-band queries about the SSD and the auxiliary processor.

陳述17.本發明概念的實施例包含根據陳述16所述的系統,其中SSD包含用於帶內地接收查詢的周邊元件連接快速(PCIe)連接。Statement 17. An embodiment of the inventive concept includes the system according to Statement 16, wherein the SSD includes a Peripheral Component Link Express (PCIe) connection for receiving queries in-band.

陳述18.本發明概念的實施例包含根據陳述16所述的系統,其中SSD可操作以用唯一SSD ID和唯一輔助處理器ID二者對查詢作出回應。Statement 18. An embodiment of the inventive concept includes the system according to Statement 16, wherein the SSD is operable to respond to queries with both a unique SSD ID and a unique auxiliary processor ID.

陳述19.本發明概念的實施例包含根據陳述16所述的系統,其中查詢包含非揮發性記憶體快速(NVMe)管理介面(MI)命令。Statement 19. An embodiment of the inventive concept includes the system according to Statement 16, wherein the query includes a non-volatile memory express (NVMe) management interface (MI) command.

陳述20.本發明概念的實施例包含一種方法,包括: 將查詢從第一裝置發送到第二裝置; 從第二裝置接收第一裝置處的回應,所述回應包含第一配對資料; 將第一配對資料儲存在第一裝置中的第二儲存裝置中; 從第一裝置中的第一儲存裝置存取第二配對資料;以及 將第二配對資料從第一裝置發送到第二裝置。Statement 20. An embodiment of the inventive concept includes a method including: Send the query from the first device to the second device; Receiving a response from the first device from the second device, the response including the first pairing data; Storing the first pairing data in a second storage device in the first device; Access the second pairing data from the first storage device in the first device; and Send the second pairing data from the first device to the second device.

陳述21.本發明概念的實施例包含根據陳述20所述的方法,其中第一裝置和第二裝置分別包含現場可程式閘陣列(FPGA)、專用積體電路、圖形處理單元(GPU)、張量處理單元、擦除編碼控制器以及小型處理器核心中的一個。Statement 21. An embodiment of the inventive concept includes the method according to Statement 20, wherein the first device and the second device respectively include a field programmable gate array (FPGA), a dedicated integrated circuit, a graphics processing unit (GPU), and One of the volume processing unit, erasure coding controller, and small processor core.

陳述22.本發明概念的實施例包含根據陳述20所述的方法,其中: 將查詢從第一裝置發送到第二裝置包含通過第一裝置與第二裝置之間的硬體介面將查詢從第一裝置發送到第二裝置; 從第二裝置接收第一裝置處的回應包含通過第一裝置與第二裝置之間的硬體介面從第二裝置接收第一裝置處的回應;且 將第二配對資料從第一裝置發送到第二裝置包含通過第一裝置與第二裝置之間的硬體介面將第二配對資料從第一裝置發送到第二裝置。Statement 22. An embodiment of the inventive concept includes the method according to Statement 20, wherein: Sending the query from the first device to the second device includes sending the query from the first device to the second device through the hardware interface between the first device and the second device; Receiving the response from the first device from the second device includes receiving the response from the first device from the second device through the hardware interface between the first device and the second device; and Sending the second pairing data from the first device to the second device includes sending the second pairing data from the first device to the second device through a hardware interface between the first device and the second device.

陳述23.本發明概念的實施例包含根據陳述20所述的方法,其中第二儲存裝置包含一次性可程式(OTP)記憶體、可程式唯讀記憶體(PROM)、可擦可程式唯讀記憶體(EPROM)以及電可擦可程式唯讀記憶體(EEPROM)中的一個。Statement 23. An embodiment of the inventive concept includes the method according to Statement 20, wherein the second storage device includes one-time programmable (OTP) memory, programmable read-only memory (PROM), and erasable programmable read-only One of the memory (EPROM) and the electrically erasable programmable read-only memory (EEPROM).

陳述24.本發明概念的實施例包含一種方法,包括: 從第二裝置接收第一裝置處的查詢; 從第一裝置中的第一儲存裝置存取第一配對資料; 將回應從第一裝置發送到第二裝置,所述回應包含第一配對資料; 從第二裝置接收第一裝置處的第二配對資料;以及 將第二配對資料儲存在第一裝置中的第二儲存裝置中。Statement 24. An embodiment of the inventive concept includes a method including: Receiving the query at the first device from the second device; Accessing the first pairing data from the first storage device in the first device; Sending a response from the first device to the second device, the response including the first pairing data; Receiving the second pairing data from the first device from the second device; and The second pairing data is stored in the second storage device in the first device.

陳述25.本發明概念的實施例包含根據陳述24所述的方法,其中第一裝置和第二裝置分別包含現場可程式閘陣列(FPGA)、專用積體電路、圖形處理單元(GPU)、張量處理單元、擦除編碼控制器以及小型處理器核心中的一個。Statement 25. An embodiment of the inventive concept includes the method according to Statement 24, wherein the first device and the second device respectively include a field programmable gate array (FPGA), a dedicated integrated circuit, a graphics processing unit (GPU), and One of the volume processing unit, erasure coding controller, and small processor core.

陳述26.本發明概念的實施例包含根據陳述24所述的方法,其中: 從第二裝置接收第一裝置處的查詢包含通過第一裝置與第二裝置之間的硬體介面從第二裝置接收第一裝置處的查詢; 將回應從第一裝置發送到第二裝置包含通過第一裝置與第二裝置之間的硬體介面將回應從第一裝置發送到第二裝置;且 從第二裝置接收第一裝置處的第二配對資料包含通過第一裝置與第二裝置之間的硬體介面從第二裝置接收第一裝置處的第二配對資料。Statement 26. An embodiment of the inventive concept includes the method according to Statement 24, wherein: Receiving the query from the first device from the second device includes receiving the query from the first device from the second device through a hardware interface between the first device and the second device; Sending the response from the first device to the second device includes sending the response from the first device to the second device through the hardware interface between the first device and the second device; and Receiving the second pairing data of the first device from the second device includes receiving the second pairing data of the first device from the second device through a hardware interface between the first device and the second device.

陳述27.本發明概念的實施例包含根據陳述24所述的方法,其中第二儲存裝置包含一次性可程式(OTP)記憶體、可程式唯讀記憶體(PROM)、可擦可程式唯讀記憶體(EPROM)以及電可擦可程式唯讀記憶體(EEPROM)中的一個。Statement 27. An embodiment of the inventive concept includes the method according to Statement 24, wherein the second storage device includes one-time programmable (OTP) memory, programmable read-only memory (PROM), and erasable programmable read-only One of the memory (EPROM) and the electrically erasable programmable read-only memory (EEPROM).

陳述28.本發明概念的實施例包含一種方法,包括: 接收第一裝置處的查詢; 從第一裝置中的第一儲存裝置存取用於第一裝置的第一唯一識別符(ID); 從第一裝置中的第二儲存裝置存取用於第二裝置的第二唯一ID,所述第二裝置與第一裝置配對;以及 發送對來自第一裝置的查詢的回應,所述回應包含第一唯一ID和第二唯一ID二者。Statement 28. An embodiment of the inventive concept includes a method including: Receive the query from the first device; Accessing a first unique identifier (ID) for the first device from the first storage device in the first device; Accessing a second unique ID for the second device from a second storage device in the first device, which is paired with the first device; and Send a response to the query from the first device, the response including both the first unique ID and the second unique ID.

陳述29.本發明概念的實施例包含根據陳述28所述的方法,其中: 接收第一裝置處的查詢包含帶外地接收第一裝置處的查詢;且 發送對來自第一裝置的查詢的回應包含帶外地發送對來自第一裝置的查詢的回應。Statement 29. An embodiment of the inventive concept includes the method according to Statement 28, wherein: Receiving the query at the first device includes receiving the query at the first device out-of-band; and Sending a response to the query from the first device includes sending out-of-band a response to the query from the first device.

陳述30.本發明概念的實施例包含根據陳述29所述的方法,其中: 帶外地接收第一裝置處的查詢包含通過系統管理匯流排(SMBus)連接接收第一裝置處的查詢;且 帶外地發送對來自第一裝置的查詢的回應包含通過SMBus連接發送對來自第一裝置的查詢的回應。Statement 30. An embodiment of the inventive concept includes the method according to Statement 29, wherein: Receiving the query at the first device out-of-band includes receiving the query at the first device through a system management bus (SMBus) connection; and Sending a response to the query from the first device out-of-band includes sending a response to the query from the first device through an SMBus connection.

陳述31.本發明概念的實施例包含根據陳述28所述的方法,其中: 接收第一裝置處的查詢包含帶內地接收第一裝置處的查詢;且 發送對來自第一裝置的查詢的回應包含帶內地發送對來自第一裝置的查詢的回應。Statement 31. An embodiment of the inventive concept includes the method according to Statement 28, wherein: Receiving the query at the first device includes receiving the query at the first device in-band; and Sending a response to the query from the first device includes sending a response to the query from the first device in-band.

陳述32.本發明概念的實施例包含根據陳述31所述的方法,其中: 帶內地接收第一裝置處的查詢包含通過周邊元件連接快速(PCIe)連接接收第一裝置處的查詢;且 帶內地發送對來自第一裝置的查詢的回應包含通過PCIe連接發送對來自第一裝置的查詢的回應。Statement 32. An embodiment of the inventive concept includes the method according to Statement 31, wherein: Receiving the query at the first device in-band includes receiving the query at the first device through a peripheral component connection express (PCIe) connection; and Sending a response to the query from the first device in-band includes sending a response to the query from the first device through a PCIe connection.

陳述33.本發明概念的實施例包含根據陳述28所述的方法,其中查詢包含非揮發性管理快速(NVMe)管理介面(MI)命令。Statement 33. An embodiment of the inventive concept includes the method according to Statement 28, wherein the query includes a non-volatile management express (NVMe) management interface (MI) command.

陳述34.本發明概念的實施例包含一種方法,包括: 將第一查詢發送到由第一虛擬識別符(ID)表示的固態驅動器(SSD); 回應於第一查詢從SSD接收唯一SSD ID和唯一輔助處理器ID; 將第二查詢發送到由第二虛擬ID表示的輔助處理器; 回應於第二查詢從輔助處理器接收唯一SSD ID和唯一輔助處理器ID;以及 將第一虛擬ID與第二虛擬ID配對。Statement 34. An embodiment of the inventive concept includes a method including: Send the first query to the solid state drive (SSD) indicated by the first virtual identifier (ID); In response to the first query, receive the unique SSD ID and the unique auxiliary processor ID from the SSD; Sending the second query to the auxiliary processor represented by the second virtual ID; Receiving a unique SSD ID and a unique auxiliary processor ID from the auxiliary processor in response to the second query; and Pair the first virtual ID with the second virtual ID.

陳述35.本發明概念的實施例包含根據陳述34所述的方法,其中將第一查詢發送到固態驅動器(SSD)包含將第一查詢帶外地發送到SSD。Statement 35. An embodiment of the inventive concept includes the method according to Statement 34, wherein sending the first query to a solid state drive (SSD) includes sending the first query to the SSD out of band.

陳述36.本發明概念的實施例包含根據陳述35所述的方法,其中將第一查詢帶外地發送到SSD包含通過系統管理匯流排(SMBus)連接將第一查詢發送到SSD。Statement 36. An embodiment of the inventive concept includes the method according to Statement 35, wherein sending the first query out-of-band to the SSD includes sending the first query to the SSD through a system management bus (SMBus) connection.

陳述37.本發明概念的實施例包含根據陳述34所述的方法,其中將第一查詢發送到固態驅動器(SSD)包含將第一查詢帶內地發送到SSD。Statement 37. An embodiment of the inventive concept includes the method according to Statement 34, wherein sending the first query to a solid state drive (SSD) includes sending the first query to the SSD in-band.

陳述38.本發明概念的實施例包含根據陳述37所述的方法,其中將第一查詢帶內地發送到SSD包含通過周邊元件連接快速(PCIe)連接將第一查詢發送到SSD。Statement 38. An embodiment of the inventive concept includes the method according to Statement 37, wherein sending the first query to the SSD in-band includes sending the first query to the SSD through a Peripheral Element Connection Express (PCIe) connection.

陳述39.本發明概念的實施例包含根據陳述34所述的方法,其中第一查詢包含非揮發性管理快速(NVMe)管理介面(MI)命令。Statement 39. An embodiment of the inventive concept includes the method according to Statement 34, wherein the first query includes a non-volatile management express (NVMe) management interface (MI) command.

陳述40.本發明概念的實施例包含根據陳述34所述的方法,其中將第二查詢發送到輔助處理器包含將第二查詢帶外地發送到輔助處理器。Statement 40. An embodiment of the inventive concept includes the method according to Statement 34, wherein sending the second query to the auxiliary processor includes sending the second query to the auxiliary processor out-of-band.

陳述41.本發明概念的實施例包含根據陳述40所述的方法,其中將第二查詢帶外地發送到輔助處理器包含通過SMBus連接將第二查詢發送到輔助處理器。Statement 41. An embodiment of the inventive concept includes the method according to Statement 40, wherein sending the second query out-of-band to the auxiliary processor includes sending the second query to the auxiliary processor via an SMBus connection.

陳述42.本發明概念的實施例包含根據陳述34所述的方法,其中第二查詢包含非揮發性管理快速(NVMe)管理介面(MI)命令。Statement 42. An embodiment of the inventive concept includes the method according to Statement 34, wherein the second query includes a non-volatile management express (NVMe) management interface (MI) command.

陳述43.本發明概念的實施例包含根據陳述34所述的方法,其中將第一虛擬ID與第二虛擬ID配對包含回應於返回唯一SSD ID和唯一輔助處理器ID的SSD和輔助處理器二者而將第一虛擬ID與第二虛擬ID配對。Statement 43. An embodiment of the inventive concept includes the method according to Statement 34, wherein pairing the first virtual ID with the second virtual ID includes responding to the SSD and the auxiliary processor returning a unique SSD ID and a unique auxiliary processor ID Otherwise, the first virtual ID is paired with the second virtual ID.

陳述44.本發明概念的實施例包含根據陳述34所述的方法,所述方法進一步包括提供應用程式設計介面(API),所述應用程式設計介面可操作以對關於第一虛擬ID與第二虛擬ID的配對的查詢作出回應。Statement 44. An embodiment of the inventive concept includes the method according to Statement 34, the method further comprising providing an application programming interface (API) that is operable to compare information about the first virtual ID and the second Respond to the paired query of the virtual ID.

陳述45.本發明概念的實施例包含根據陳述44所述的方法,所述方法進一步包括: 接收對第一虛擬ID的配對的配對查詢;以及 回應於第一虛擬ID與第二虛擬ID的配對而返回第二虛擬ID。Statement 45. An embodiment of the inventive concept includes the method according to Statement 44, the method further comprising: Receiving a pairing query for the pairing of the first virtual ID; and In response to the pairing of the first virtual ID and the second virtual ID, the second virtual ID is returned.

陳述46.本發明概念的實施例包含根據陳述45所述的方法,其中: 接收對第一虛擬ID的配對的配對查詢包含經由API從應用程式接收用於第一虛擬ID的配對的配對查詢;且 回應於第一虛擬ID與第二虛擬ID的配對而返回第二虛擬ID包含回應於第一虛擬ID與第二虛擬ID的配對而將第二虛擬ID返回到應用程式。Statement 46. An embodiment of the inventive concept includes the method according to Statement 45, wherein: Receiving the pairing query for the first virtual ID includes receiving the pairing query for the first virtual ID from the application via API; and Returning the second virtual ID in response to the pairing of the first virtual ID and the second virtual ID includes returning the second virtual ID to the application in response to the pairing of the first virtual ID and the second virtual ID.

陳述47.本發明概念的實施例包含根據陳述44所述的方法,所述方法進一步包括: 接收對與文件相關聯的配對的文件查詢; 將SSD識別為儲存所述文件;以及 回應於文件查詢而返回第一虛擬ID和第二虛擬ID。Statement 47. An embodiment of the inventive concept includes the method according to Statement 44, the method further comprising: Receive a query on a paired file associated with the file; Identify the SSD as storing the file; and In response to the file query, the first virtual ID and the second virtual ID are returned.

陳述48.本發明概念的實施例包含根據陳述47所述的方法,其中: 接收對與文件相關聯的配對的文件查詢包含經由API從應用程式接收對與文件相關聯的配對的文件查詢; 回應於文件查詢而返回第一虛擬ID和第二虛擬ID包含回應於文件查詢而將第一虛擬ID和第二虛擬ID返回到應用程式。Statement 48. An embodiment of the inventive concept includes the method according to Statement 47, wherein: Receiving a paired document query associated with the document includes receiving a paired document query associated with the document from an application via an API; Returning the first virtual ID and the second virtual ID in response to the document query includes returning the first virtual ID and the second virtual ID to the application in response to the document query.

陳述49.本發明概念的實施例包含一種物品,所述物品包括非暫時性儲存介質,所述非暫時性儲存介質具有儲存於其上的在由機器執行時引起以下操作的指令: 將查詢從第一裝置發送到第二裝置; 從第二裝置接收第一裝置處的回應,所述回應包含第一配對資料; 將第一配對資料儲存在第一裝置中的第二儲存裝置中; 從第一裝置中的第一儲存裝置存取第二配對資料;以及 將第二配對資料從第一裝置發送到第二裝置。Statement 49. An embodiment of the inventive concept includes an article including a non-transitory storage medium having stored thereon instructions that, when executed by a machine, cause the following operations: Send the query from the first device to the second device; Receiving a response from the first device from the second device, the response including the first pairing data; Storing the first pairing data in a second storage device in the first device; Access the second pairing data from the first storage device in the first device; and Send the second pairing data from the first device to the second device.

陳述50.本發明概念的實施例包含根據陳述49所述的物品,其中第一裝置和第二裝置分別包含現場可程式閘陣列(FPGA)、專用積體電路、圖形處理單元(GPU)、張量處理單元、擦除編碼控制器以及小型處理器核心中的一個。Statement 50. An embodiment of the inventive concept includes the article according to Statement 49, wherein the first device and the second device respectively include a field programmable gate array (FPGA), a dedicated integrated circuit, a graphics processing unit (GPU), and Zhang One of the volume processing unit, erasure coding controller, and small processor core.

陳述51.本發明概念的實施例包含根據陳述49所述的物品,其中: 將查詢從第一裝置發送到第二裝置包含通過第一裝置與第二裝置之間的硬體介面將查詢從第一裝置發送到第二裝置; 從第二裝置接收第一裝置處的回應包含通過第一裝置與第二裝置之間的硬體介面從第二裝置接收第一裝置處的回應;且 將第二配對資料從第一裝置發送到第二裝置包含通過第一裝置與第二裝置之間的硬體介面將第二配對資料從第一裝置發送到第二裝置。Statement 51. An embodiment of the inventive concept includes the article according to Statement 49, wherein: Sending the query from the first device to the second device includes sending the query from the first device to the second device through the hardware interface between the first device and the second device; Receiving the response from the first device from the second device includes receiving the response from the first device from the second device through the hardware interface between the first device and the second device; and Sending the second pairing data from the first device to the second device includes sending the second pairing data from the first device to the second device through a hardware interface between the first device and the second device.

陳述52.本發明概念的實施例包含根據陳述49所述的物品,其中第二儲存裝置包含一次性可程式(OTP)記憶體、可程式唯讀記憶體(PROM)、可擦可程式唯讀記憶體(EPROM)以及電可擦可程式唯讀記憶體(EEPROM)中的一個。Statement 52. An embodiment of the inventive concept includes the article according to Statement 49, wherein the second storage device includes one-time programmable (OTP) memory, programmable read-only memory (PROM), and erasable programmable read-only One of the memory (EPROM) and the electrically erasable programmable read-only memory (EEPROM).

陳述53.本發明概念的實施例包含一種物品,所述物品包括非暫時性儲存介質,所述非暫時性儲存介質具有儲存於其上的在由機器執行時引起以下操作的指令: 從第二裝置接收第一裝置處的查詢; 從第一裝置中的第一儲存裝置存取第一配對資料; 將回應從第一裝置發送到第二裝置,所述回應包含第一配對資料; 從第二裝置接收第一裝置處的第二配對資料;以及 將第二配對資料儲存在第一裝置中的第二儲存裝置中。Statement 53. An embodiment of the inventive concept includes an article including a non-transitory storage medium having stored thereon instructions that, when executed by a machine, cause the following operations: Receiving the query at the first device from the second device; Accessing the first pairing data from the first storage device in the first device; Sending a response from the first device to the second device, the response including the first pairing data; Receiving the second pairing data from the first device from the second device; and The second pairing data is stored in the second storage device in the first device.

陳述54.本發明概念的實施例包含根據陳述53所述的物品,其中第一裝置和第二裝置分別包含現場可程式閘陣列(FPGA)、專用積體電路、圖形處理單元(GPU)、張量處理單元、擦除編碼控制器以及小型處理器核心中的一個。Statement 54. An embodiment of the inventive concept includes the article according to Statement 53, wherein the first device and the second device respectively include a field programmable gate array (FPGA), a dedicated integrated circuit, a graphics processing unit (GPU), and Zhang One of the volume processing unit, erasure coding controller, and small processor core.

陳述55.本發明概念的實施例包含根據陳述53所述的物品,其中: 從第二裝置接收第一裝置處的查詢包含通過第一裝置與第二裝置之間的硬體介面從第二裝置接收第一裝置處的查詢; 將回應從第一裝置發送到第二裝置包含通過第一裝置與第二裝置之間的硬體介面將回應從第一裝置發送到第二裝置;且 從第二裝置接收第一裝置處的第二配對資料包含通過第一裝置與第二裝置之間的硬體介面從第二裝置接收第一裝置處的第二配對資料。Statement 55. An embodiment of the inventive concept includes the article according to Statement 53, wherein: Receiving the query from the first device from the second device includes receiving the query from the first device from the second device through a hardware interface between the first device and the second device; Sending the response from the first device to the second device includes sending the response from the first device to the second device through the hardware interface between the first device and the second device; and Receiving the second pairing data of the first device from the second device includes receiving the second pairing data of the first device from the second device through a hardware interface between the first device and the second device.

陳述56.本發明概念的實施例包含根據陳述53所述的物品,其中第二儲存裝置包含一次性可程式(OTP)記憶體、可程式唯讀記憶體(PROM)、可擦可程式唯讀記憶體(EPROM)以及電可擦可程式唯讀記憶體(EEPROM)中的一個。Statement 56. An embodiment of the inventive concept includes the article according to Statement 53, wherein the second storage device includes one-time programmable (OTP) memory, programmable read-only memory (PROM), erasable and programmable read-only One of the memory (EPROM) and the electrically erasable programmable read-only memory (EEPROM).

陳述57.本發明概念的實施例包含一種物品,所述物品包括非暫時性儲存介質,所述非暫時性儲存介質具有儲存於其上的在由機器執行時引起以下操作的指令: 接收第一裝置處的查詢; 從第一裝置中的第一儲存裝置存取用於第一裝置的第一唯一識別符(ID); 從第一裝置中的第二儲存裝置存取用於第二裝置的第二唯一ID,所述第二裝置與第一裝置配對;以及 發送對來自第一裝置的查詢的回應,所述回應包含第一唯一ID和第二唯一ID二者。Statement 57. An embodiment of the inventive concept includes an article including a non-transitory storage medium having stored thereon instructions that, when executed by a machine, cause the following operations: Receive the query from the first device; Accessing a first unique identifier (ID) for the first device from the first storage device in the first device; Accessing a second unique ID for the second device from a second storage device in the first device, which is paired with the first device; and Send a response to the query from the first device, the response including both the first unique ID and the second unique ID.

陳述58.本發明概念的實施例包含根據陳述57所述的物品,其中: 接收第一裝置處的查詢包含帶外地接收第一裝置處的查詢;且 發送對來自第一裝置的查詢的回應包含帶外地發送對來自第一裝置的查詢的回應。Statement 58. An embodiment of the inventive concept includes the article according to Statement 57, wherein: Receiving the query at the first device includes receiving the query at the first device out-of-band; and Sending a response to the query from the first device includes sending out-of-band a response to the query from the first device.

陳述59.本發明概念的實施例包含根據陳述58所述的物品,其中: 帶外地接收第一裝置處的查詢包含通過系統管理匯流排(SMBus)連接接收第一裝置處的查詢;且 帶外地發送對來自第一裝置的查詢的回應包含通過SMBus連接發送對來自第一裝置的查詢的回應。Statement 59. An embodiment of the inventive concept includes the article according to Statement 58, wherein: Receiving the query at the first device out-of-band includes receiving the query at the first device through a system management bus (SMBus) connection; and Sending a response to the query from the first device out-of-band includes sending a response to the query from the first device through an SMBus connection.

陳述60.本發明概念的實施例包含根據陳述57所述的物品,其中: 接收第一裝置處的查詢包含帶內地接收第一裝置處的查詢;且 發送對來自第一裝置的查詢的回應包含帶內地發送對來自第一裝置的查詢的回應。Statement 60. An embodiment of the inventive concept includes the article according to Statement 57, wherein: Receiving the query at the first device includes receiving the query at the first device in-band; and Sending a response to the query from the first device includes sending a response to the query from the first device in-band.

陳述61.本發明概念的實施例包含根據陳述60所述的物品,其中: 帶內地接收第一裝置處的查詢包含通過周邊元件連接快速(PCIe)連接接收第一裝置處的查詢;且 帶內地發送對來自第一裝置的查詢的回應包含通過PCIe連接發送對來自第一裝置的查詢的回應。Statement 61. An embodiment of the inventive concept includes the article according to Statement 60, wherein: Receiving the query at the first device in-band includes receiving the query at the first device through a peripheral component connection express (PCIe) connection; and Sending a response to the query from the first device in-band includes sending a response to the query from the first device through a PCIe connection.

陳述62.本發明概念的實施例包含根據陳述57所述的物品,其中查詢包含非揮發性管理快速(NVMe)管理介面(MI)命令。Statement 62. An embodiment of the inventive concept includes the article according to Statement 57, wherein the query includes a non-volatile management express (NVMe) management interface (MI) command.

陳述63.本發明概念的實施例包含一種物品,所述物品包括非暫時性儲存介質,所述非暫時性儲存介質具有儲存於其上的在由機器執行時引起以下操作的指令: 將第一查詢發送到由第一虛擬識別符(ID)表示的固態驅動器(SSD); 回應於第一查詢從SSD接收唯一SSD ID和唯一輔助處理器ID; 將第二查詢發送到由第二虛擬ID表示的輔助處理器; 回應於第二查詢從輔助處理器接收唯一SSD ID和唯一輔助處理器ID;以及 將第一虛擬ID與第二虛擬ID配對。Statement 63. An embodiment of the inventive concept includes an article including a non-transitory storage medium having stored thereon instructions that, when executed by a machine, cause the following operations: Send the first query to the solid state drive (SSD) indicated by the first virtual identifier (ID); In response to the first query, receive the unique SSD ID and the unique auxiliary processor ID from the SSD; Sending the second query to the auxiliary processor represented by the second virtual ID; Receiving a unique SSD ID and a unique auxiliary processor ID from the auxiliary processor in response to the second query; and Pair the first virtual ID with the second virtual ID.

陳述64.本發明概念的實施例包含根據陳述63所述的物品,其中將第一查詢發送到固態驅動器(SSD)包含將第一查詢帶外地發送到SSD。Statement 64. An embodiment of the inventive concept includes the article according to Statement 63, wherein sending the first query to a solid state drive (SSD) includes sending the first query to the SSD out of band.

陳述65.本發明概念的實施例包含根據陳述64所述的物品,其中將第一查詢帶外地發送到SSD包含通過系統管理匯流排(SMBus)連接將第一查詢發送到SSD。Statement 65. An embodiment of the inventive concept includes the article according to Statement 64, wherein sending the first query out-of-band to the SSD includes sending the first query to the SSD through a system management bus (SMBus) connection.

陳述66.本發明概念的實施例包含根據陳述63所述的物品,其中將第一查詢發送到固態驅動器(SSD)包含將第一查詢帶內地發送到SSD。Statement 66. An embodiment of the inventive concept includes the article according to Statement 63, wherein sending the first query to a solid state drive (SSD) includes sending the first query in-band to the SSD.

陳述67.本發明概念的實施例包含根據陳述66所述的物品,其中將第一查詢帶內地發送到SSD包含通過周邊元件連接快速(PCIe)連接將第一查詢發送到SSD。Statement 67. An embodiment of the inventive concept includes the article according to Statement 66, wherein sending the first query in-band to the SSD includes sending the first query to the SSD through a Peripheral Element Connection Express (PCIe) connection.

陳述68.本發明概念的實施例包含根據陳述63所述的物品,其中第一查詢包含非揮發性管理快速(NVMe)管理介面(MI)命令。Statement 68. An embodiment of the inventive concept includes the article according to Statement 63, wherein the first query includes a non-volatile management express (NVMe) management interface (MI) command.

陳述69.本發明概念的實施例包含根據陳述63所述的物品,其中將第二查詢發送到輔助處理器包含將第二查詢帶外地發送到輔助處理器。Statement 69. An embodiment of the inventive concept includes the article according to Statement 63, wherein sending the second query to the auxiliary processor includes sending the second query out-of-band to the auxiliary processor.

陳述70.本發明概念的實施例包含根據陳述69所述的物品,其中將第二查詢帶外地發送到S輔助處理器SD包含通過SMBus連接將第二查詢發送到輔助處理器。Statement 70. An embodiment of the inventive concept includes the article according to Statement 69, wherein sending the second query out-of-band to the S auxiliary processor SD includes sending the second query to the auxiliary processor via an SMBus connection.

陳述71.本發明概念的實施例包含根據陳述63所述的物品,其中第二查詢包含非揮發性管理快速(NVMe)管理介面(MI)命令。Statement 71. An embodiment of the inventive concept includes the article according to Statement 63, wherein the second query includes a non-volatile management express (NVMe) management interface (MI) command.

陳述72.本發明概念的實施例包含根據陳述63所述的物品,其中將第一虛擬ID與第二虛擬ID配對包含回應於返回唯一SSD ID和唯一輔助處理器ID的SSD和輔助處理器二者而將第一虛擬ID與第二虛擬ID配對。Statement 72. An embodiment of the inventive concept includes the article according to Statement 63, wherein pairing the first virtual ID with the second virtual ID includes responding to the SSD and the auxiliary processor returning a unique SSD ID and a unique auxiliary processor ID Otherwise, the first virtual ID is paired with the second virtual ID.

陳述73.本發明概念的實施例包含根據陳述63所述的物品,所述非暫時性儲存介質具有儲存於其上的在由機器執行時引起以下操作的指令:提供應用程式設計介面(API),所述應用程式設計介面可操作以對關於第一虛擬ID與第二虛擬ID的配對的查詢作出回應。Statement 73. An embodiment of the inventive concept includes the article according to Statement 63, the non-transitory storage medium having stored thereon instructions that, when executed by a machine, cause the following operations: Provide an application programming interface (API) , The application programming interface is operable to respond to queries regarding the pairing of the first virtual ID and the second virtual ID.

陳述74.本發明概念的實施例包含根據陳述73所述的物品,所述非暫時性儲存介質具有儲存於其上的在由機器執行時引起以下操作的其它指令: 接收對第一虛擬ID的配對的配對查詢;以及 回應於第一虛擬ID與第二虛擬ID的配對而返回第二虛擬ID。Statement 74. An embodiment of the inventive concept includes the article according to Statement 73, the non-transitory storage medium having stored thereon other instructions that when executed by a machine cause the following operations: Receiving a pairing query for the pairing of the first virtual ID; and In response to the pairing of the first virtual ID and the second virtual ID, the second virtual ID is returned.

陳述75.本發明概念的實施例包含根據陳述74的物品,其中: 接收對第一虛擬ID的配對的配對查詢包含經由API從應用程式接收對第一虛擬ID的配對的配對查詢;且 回應於第一虛擬ID與第二虛擬ID的配對而返回第二虛擬ID包含回應於第一虛擬ID與第二虛擬ID的配對而將第二虛擬ID返回到應用程式。Statement 75. An embodiment of the inventive concept includes an article according to Statement 74, wherein: Receiving the pairing query for the first virtual ID includes receiving the pairing query for the first virtual ID from the application via API; and Returning the second virtual ID in response to the pairing of the first virtual ID and the second virtual ID includes returning the second virtual ID to the application in response to the pairing of the first virtual ID and the second virtual ID.

陳述76.本發明概念的實施例包含根據陳述73所述的物品,所述非暫時性儲存介質具有儲存於其上的在由機器執行時引起以下操作的其它指令: 接收對與文件相關聯的配對的文件查詢; 將SSD識別為儲存所述文件;以及 回應於文件查詢而返回第一虛擬ID和第二虛擬ID。Statement 76. An embodiment of the inventive concept includes the article according to Statement 73, the non-transitory storage medium having stored thereon other instructions that when executed by a machine cause the following operations: Receive a query on a paired file associated with the file; Identify the SSD as storing the file; and In response to the file query, the first virtual ID and the second virtual ID are returned.

陳述77.本發明概念的實施例包含根據陳述76的物品,其中: 接收對與文件相關聯的配對的文件查詢包含經由API從應用程式接收對與文件相關聯的配對的文件查詢; 回應於文件查詢而返回第一虛擬ID和第二虛擬ID包含回應於文件查詢而將第一虛擬ID和第二虛擬ID返回到應用程式。Statement 77. An embodiment of the inventive concept includes an article according to Statement 76, in which: Receiving a paired document query associated with the document includes receiving a paired document query associated with the document from an application via an API; Returning the first virtual ID and the second virtual ID in response to the document query includes returning the first virtual ID and the second virtual ID to the application in response to the document query.

因此,考慮到對本文中所描述的實施例的各種置換,此詳細描述和隨附材料旨在僅為說明性的,並且不應視為限制本發明概念的範圍。因此,本發明概念所要求保護的是落入所附申請專利範圍書以及其等效物的範圍和精神內的所有此類修改。Therefore, in consideration of various permutations to the embodiments described herein, this detailed description and accompanying materials are intended to be illustrative only, and should not be regarded as limiting the scope of the inventive concept. Therefore, what the concept of the present invention claims is all such modifications that fall within the scope and spirit of the appended patent application and its equivalents.

105:機器/裝置 110:處理器 115:記憶體 120:記憶體控制器 125、125-1、125-2、125-3、125-4、125-5、125-6:儲存裝置/裝置/SSD 130-1、130-2:輔助處理器/裝置 205:現場可程式閘陣列 210:專用積體電路 215:圖形處理單元 220:張量處理單元 225:擦除編碼控制器 230:小型處理器內核 305:時鐘 310:網路連接器 315:匯流排 320:使用者介面 325:輸入/輸出引擎 405:作業系統 410、415、420、425:虛擬識別符 430、435:資料儲存裝置 505-1、505-2、510-1、510-2、515-1、515-2、520-1、520-2:儲存裝置 605、615:查詢 610、620:回應 625:操作 705:系統管理匯流排/硬體介面 710:帶內連接 715:帶外連接 905:識別裝置 910:識別回應 915:設置配對資料 920、930、1020、1025:設置回應 925:設置高級資料/設置日誌頁 1005:讀取身份資料 1010:讀取回應 1015:設置身份資料 1105、1305、1405:具有後備擦除編碼邏輯的PCIe交換機; 1505、1510、1515、1520、1525、1605、1610、1615、1620、1625、1705、1710、1715、1720、1805、1810、1815、1820、1825、1830、1905、1910、1915、1920、1925、1930:框 1935、1940:箭頭105: machine/device 110: processor 115: memory 120: Memory Controller 125, 125-1, 125-2, 125-3, 125-4, 125-5, 125-6: storage device/device/SSD 130-1, 130-2: auxiliary processor/device 205: Field programmable gate array 210: dedicated integrated circuit 215: Graphics Processing Unit 220: tensor processing unit 225: erasure coding controller 230: small processor core 305: Clock 310: Network connector 315: Bus 320: User Interface 325: input/output engine 405: Operating System 410, 415, 420, 425: virtual identifier 430, 435: Data storage device 505-1, 505-2, 510-1, 510-2, 515-1, 515-2, 520-1, 520-2: storage device 605, 615: query 610, 620: Response 625: operation 705: System Management Bus/Hardware Interface 710: In-band connection 715: Out-of-band connection 905: identification device 910: identification response 915: set pairing information 920, 930, 1020, 1025: set response 925: Set advanced information/set log page 1005: read identity data 1010: Read response 1015: set identity information 1105, 1305, 1405: PCIe switches with backup erasure coding logic; 1505, 1510, 1515, 1520, 1525, 1605, 1610, 1615, 1620, 1625, 1705, 1710, 1715, 1720, 1805, 1810, 1815, 1820, 1825, 1830, 1905, 1910, 1915, 1920, 1925, 1930: box 1935, 1940: arrows

圖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的作業系統以對來自應用程式的關於裝置的配對資訊的查詢作出回應的實例過程的流程圖。FIG. 1 illustrates a machine designed to support the pairing of a storage device and an auxiliary processor according to an embodiment of the inventive concept. Fig. 2 shows different forms of the auxiliary processor of Fig. 1. Figure 3 shows additional details of the machine of Figure 1. FIG. 4 is a view of the operating system of the device of FIG. 1. FIG. 5 shows the device of FIG. 1 equipped to store information about its pairing. FIG. 6 shows an operating system for querying the SSD of FIG. 1 and the auxiliary processor of FIG. 1 and pairing the devices. FIG. 7 shows the SSD of FIG. 1 and the auxiliary processor of FIG. 1 in a single appearance size in an embodiment of the inventive concept. FIG. 8 shows the SSD of FIG. 1 and the auxiliary processor of FIG. 1 in a single external size in another embodiment of the inventive concept. FIG. 9 illustrates the SSD of FIG. 1 and the auxiliary processor of FIG. 1 with their pairing established according to an embodiment of the inventive concept. FIG. 10 illustrates the SSD of FIG. 1 and the auxiliary processor of FIG. 1 with their pairing established according to another embodiment of the inventive concept. FIG. 11 shows a first topology including the SSD of FIG. 1 and the auxiliary processor of FIG. 1 according to an embodiment of the inventive concept. FIG. 12 illustrates a second topology including the SSD of FIG. 1 and the auxiliary processor of FIG. 1 according to another embodiment of the inventive concept. FIG. 13 shows a third topology including the SSD of FIG. 1 and the auxiliary processor of FIG. 1 according to another embodiment of the inventive concept. FIG. 14 shows a fourth topology including the SSD of FIG. 1 and the auxiliary processor of FIG. 1 according to another embodiment of the inventive concept. 15 is a flowchart of an example process for the SSD of FIG. 1 (or the auxiliary processor of FIG. 1) to query its partners for pairing information according to an embodiment of the inventive concept. 16 is a flowchart of an example process for the SSD of FIG. 1 (or the auxiliary processor of FIG. 1) to receive matching data from its partners according to an embodiment of the inventive concept. FIG. 17 illustrates an example process flow for the SSD of FIG. 1 and/or the auxiliary processor of FIG. 1 to respond to queries from the operating system about it and its partner partners according to an embodiment of the inventive concept Figure. 18 is a flowchart of an example process for querying the SSD of FIG. 1 and the auxiliary processor of FIG. 1 and pairing them with the operating system of FIG. 5 according to an embodiment of the inventive concept. 19 is a flowchart of an example process used in the operating system of FIG. 5 to respond to a query about device pairing information from an application according to an embodiment of the inventive concept.

105:機器/裝置 105: machine/device

110:處理器 110: processor

115:記憶體 115: memory

120:記憶體控制器 120: Memory Controller

125-1、125-2:儲存裝置/裝置/SSD 125-1, 125-2: storage device/device/SSD

130-1、130-2:輔助處理器/裝置 130-1, 130-2: auxiliary processor/device

Claims (20)

一種系統,包括: 固態驅動器,包含用於資料的第一儲存裝置、用於唯一固態驅動器識別符的第二儲存裝置以及用於唯一輔助處理器識別符的第三儲存裝置; 輔助處理器,包含用於所述唯一輔助處理器識別符的第四儲存裝置和用於所述唯一固態驅動器識別符的第五儲存裝置;以及 硬體介面,位於所述固態驅動器與所述輔助處理器之間。A system including: A solid-state drive includes a first storage device for data, a second storage device for a unique solid-state drive identifier, and a third storage device for a unique auxiliary processor identifier; The auxiliary processor includes a fourth storage device for the unique auxiliary processor identifier and a fifth storage device for the unique solid-state drive identifier; and The hardware interface is located between the solid-state drive and the auxiliary processor. 如申請專利範圍第1項所述的系統,其中所述輔助處理器包含現場可程式閘陣列、專用積體電路、圖形處理單元、張量處理單元、擦除編碼控制器以及小型處理器核心中的一個。The system described in the first item of the scope of patent application, wherein the auxiliary processor includes a field programmable gate array, a dedicated integrated circuit, a graphics processing unit, a tensor processing unit, an erasure coding controller, and a small processor core one of. 如申請專利範圍第1項所述的系統,其中所述輔助處理器可操作以向所述固態驅動器查詢所述唯一固態驅動器識別符且將所述唯一固態驅動器識別符儲存在所述第五儲存裝置中。The system according to claim 1, wherein the auxiliary processor is operable to query the solid-state drive for the unique solid-state drive identifier and store the unique solid-state drive identifier in the fifth storage In the installation. 如申請專利範圍第1項所述的系統,其中所述輔助處理器可操作以為所述固態驅動器提供所述唯一輔助處理器識別符。The system of claim 1, wherein the auxiliary processor is operable to provide the unique auxiliary processor identifier to the solid-state drive. 如申請專利範圍第1項所述的系統,其中所述固態驅動器可操作以為所述輔助處理器提供所述唯一固態驅動器識別符。The system described in claim 1, wherein the solid-state drive is operable to provide the unique solid-state drive identifier to the auxiliary processor. 如申請專利範圍第1項所述的系統,其中所述固態驅動器可操作以帶外地接收關於所述固態驅動器和所述輔助處理器的查詢。The system according to claim 1, wherein the solid-state drive is operable to receive out-of-band queries about the solid-state drive and the auxiliary processor. 如申請專利範圍第6項所述的系統,其中所述固態驅動器可操作以用所述唯一固態驅動器識別符和所述唯一輔助處理器識別符二者對所述查詢作出回應。The system of claim 6, wherein the solid-state drive is operable to respond to the query with both the unique solid-state drive identifier and the unique auxiliary processor identifier. 如申請專利範圍第1項所述的系統,其中所述輔助處理器可操作以帶外地接收關於所述固態驅動器和所述輔助處理器的查詢。The system according to claim 1, wherein the auxiliary processor is operable to receive out-of-band inquiries about the solid-state drive and the auxiliary processor. 如申請專利範圍第8項所述的系統,其中所述輔助處理器可操作以用所述唯一固態驅動器識別符和所述唯一輔助處理器識別符二者對所述查詢作出回應。The system according to claim 8, wherein the auxiliary processor is operable to respond to the query with both the unique solid-state drive identifier and the unique auxiliary processor identifier. 如申請專利範圍第1項所述的系統,其中所述固態驅動器可操作以帶內地接收關於所述固態驅動器和所述輔助處理器的查詢。The system according to claim 1, wherein the solid-state drive is operable to receive in-band queries about the solid-state drive and the auxiliary processor. 如申請專利範圍第10項所述的系統,其中所述固態驅動器可操作以用所述唯一固態驅動器識別符和所述唯一輔助處理器識別符二者對所述查詢作出回應。The system described in claim 10, wherein the solid-state drive is operable to respond to the query with both the unique solid-state drive identifier and the unique auxiliary processor identifier. 一種方法,包括: 將查詢從第一裝置發送到第二裝置; 從所述第二裝置接收所述第一裝置處的回應,所述回應包含第一配對資料; 將所述第一配對資料儲存在所述第一裝置中的第一儲存裝置中; 從所述第一裝置中的第二儲存裝置存取第二配對資料;以及 將第二配對資料從所述第一裝置發送到所述第二裝置。One method includes: Send the query from the first device to the second device; Receiving a response from the first device from the second device, the response including first pairing data; Storing the first pairing data in a first storage device in the first device; Accessing the second pairing data from the second storage device in the first device; and The second pairing data is sent from the first device to the second device. 如申請專利範圍第12項所述的方法,其中: 將查詢從第一裝置發送到第二裝置包含通過所述第一裝置與所述第二裝置之間的硬體介面將所述查詢從所述第一裝置發送到所述第二裝置; 從所述第二裝置接收所述第一裝置處的回應包含通過所述第一裝置與所述第二裝置之間的所述硬體介面從所述第二裝置接收所述第一裝置處的所述回應;以及 將第二配對資料從所述第一裝置發送到所述第二裝置包含通過所述第一裝置與所述第二裝置之間的所述硬體介面將所述第二配對資料從所述第一裝置發送到所述第二裝置。The method described in item 12 of the scope of patent application, wherein: Sending a query from a first device to a second device includes sending the query from the first device to the second device through a hardware interface between the first device and the second device; Receiving the response at the first device from the second device includes receiving the response at the first device from the second device through the hardware interface between the first device and the second device Said response; and Sending the second pairing data from the first device to the second device includes sending the second pairing data from the first device through the hardware interface between the first device and the second device. A device is sent to the second device. 一種方法,包括: 將第一查詢發送到由第一虛擬識別符表示的固態驅動器; 回應於所述第一查詢而從所述固態驅動器接收唯一固態驅動器識別符和唯一輔助處理器識別符; 將第二查詢發送到由第二虛擬識別符表示的輔助處理器; 回應於所述第二查詢而從所述輔助處理器接收所述唯一固態驅動器識別符和所述唯一輔助處理器識別符;以及 將所述第一虛擬識別符與所述第二虛擬識別符配對。One method includes: Sending the first query to the solid-state drive indicated by the first virtual identifier; Receiving a unique solid-state drive identifier and a unique auxiliary processor identifier from the solid-state drive in response to the first query; Sending the second query to the auxiliary processor indicated by the second virtual identifier; Receiving the unique solid-state drive identifier and the unique auxiliary processor identifier from the auxiliary processor in response to the second query; and The first virtual identifier is paired with the second virtual identifier. 如申請專利範圍第14項所述的方法,其中將所述第一虛擬識別符與所述第二虛擬識別符配對包含回應於返回所述唯一固態驅動器識別符和所述唯一輔助處理器識別符的所述固態驅動器和所述輔助處理器二者而將所述第一虛擬識別符與所述第二虛擬識別符配對。The method of claim 14, wherein pairing the first virtual identifier with the second virtual identifier includes responding to returning the unique solid-state drive identifier and the unique auxiliary processor identifier Both the solid-state drive and the auxiliary processor pair the first virtual identifier with the second virtual identifier. 如申請專利範圍第14項所述的方法,進一步包括提供應用程式設計介面,所述應用程式設計介面可操作以對關於所述第一虛擬識別符與所述第二虛擬識別符的所述配對的查詢作出回應。The method described in claim 14 further includes providing an application programming interface that is operable to pair the first virtual identifier with the second virtual identifier To respond to inquiries. 如申請專利範圍第16項所述的方法,進一步包括: 接收對所述第一虛擬識別符的配對的配對查詢;以及 回應於所述第一虛擬識別符與所述第二虛擬識別符的所述配對而返回所述第二虛擬識別符。The method described in item 16 of the scope of patent application further includes: Receiving a pairing query for the pairing of the first virtual identifier; and The second virtual identifier is returned in response to the pairing of the first virtual identifier and the second virtual identifier. 如申請專利範圍第17項所述的方法,其中: 接收對所述第一虛擬識別符的配對的配對查詢包含經由所述應用程式設計介面從應用程式接收對所述第一虛擬識別符的所述配對的所述配對查詢;以及 回應於所述第一虛擬識別符與所述第二虛擬識別符的所述配對而返回所述第二虛擬識別符包含回應於所述第一虛擬識別符與所述第二虛擬識別符的所述配對而將所述第二虛擬識別符返回到所述應用程式。As the method described in item 17 of the scope of patent application, wherein: Receiving the pairing query for the first virtual identifier includes receiving the pairing query for the first virtual identifier from an application program via the application programming interface; and Returning to the second virtual identifier in response to the pairing of the first virtual identifier and the second virtual identifier includes all responses to the first virtual identifier and the second virtual identifier The pairing returns the second virtual identifier to the application. 如申請專利範圍第16項所述的方法,進一步包括: 接收對與文件相關聯的配對的文件查詢; 將所述固態驅動器識別為儲存所述文件;以及 回應於所述文件查詢而返回所述第一虛擬識別符和所述第二虛擬識別符。The method described in item 16 of the scope of patent application further includes: Receive a query on a paired file associated with the file; Identifying the solid-state drive as storing the file; and The first virtual identifier and the second virtual identifier are returned in response to the file query. 如申請專利範圍第19項所述的方法,其中: 接收對與文件相關聯的配對的文件查詢包含經由所述應用程式設計介面從應用程式接收對與所述文件相關聯的所述配對的所述文件查詢;以及 回應於所述文件查詢而返回所述第一虛擬識別符和所述第二虛擬識別符包含回應於所述文件查詢而將所述第一虛擬識別符和所述第二虛擬識別符返回到所述應用程式。As the method described in item 19 of the scope of patent application, in which: Receiving the paired document query associated with the document includes receiving the paired document query associated with the document from an application program via the application programming interface; and Returning the first virtual identifier and the second virtual identifier in response to the document query includes returning the first virtual identifier and the second virtual identifier to the document query in response to the document query. The application.
TW108129466A 2018-09-18 2019-08-19 Pairing system and pairing method of multi-device TWI835837B (en)

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 2018-11-30
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/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
TW202036282A true TW202036282A (en) 2020-10-01
TWI835837B TWI835837B (en) 2024-03-21

Family

ID=69815233

Family Applications (1)

Application Number Title Priority Date Filing Date
TW108129466A TWI835837B (en) 2018-09-18 2019-08-19 Pairing system and pairing method of multi-device

Country Status (4)

Country Link
JP (1) JP7497146B2 (en)
KR (1) KR102896604B1 (en)
CN (1) CN110908715B (en)
TW (1) TWI835837B (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI751753B (en) * 2020-10-22 2022-01-01 十銓科技股份有限公司 Digital label conversion interface method
US12307258B2 (en) 2023-07-07 2025-05-20 Quanta Computer Inc. Systems and methods for efficient transfer of data to a baseboard management controller

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11593240B2 (en) * 2020-02-12 2023-02-28 Samsung Electronics Co., Ltd. Device and method for verifying a component of a storage device
US11989594B2 (en) 2021-08-03 2024-05-21 Samsung Electronics Co., Ltd. Systems, methods, and apparatus for associating computational device functions with compute engines
US12321475B2 (en) 2022-01-26 2025-06-03 Samsung Electronics Co., Ltd. Storage device for performing access authority control and operating method thereof
KR102560696B1 (en) * 2022-01-26 2023-07-28 삼성전자주식회사 Storage device performing access authority control and Operating method thereof
US12360906B2 (en) 2022-04-14 2025-07-15 Samsung Electronics Co., Ltd. Systems and methods for a cross-layer key-value store with a computational storage device
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
CN115658582B (en) * 2022-10-13 2025-08-15 超聚变数字技术有限公司 PCIE equipment scanning method and server
JP7782005B1 (en) * 2024-11-13 2025-12-08 レノボ・シンガポール・プライベート・リミテッド Information processing device and control method
CN120469959B (en) * 2025-07-11 2025-09-26 苏州元脑智能科技有限公司 Circuit board

Family Cites Families (10)

* Cited by examiner, † Cited by third party
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
US8560792B2 (en) * 2010-12-16 2013-10-15 International Business Machines Corporation Synchronous extent migration protocol for paired storage
CN104412235B (en) * 2012-07-03 2019-05-07 英派尔科技开发有限公司 Resource management in cloud computing environment
JP5677393B2 (en) * 2012-09-27 2015-02-25 株式会社東芝 Information processing apparatus and instruction offloading method
US9311110B2 (en) * 2013-07-08 2016-04-12 Intel Corporation Techniques to initialize from a remotely accessible storage device
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
US9880929B2 (en) * 2014-12-17 2018-01-30 Schneider Electric It Corporation Systems and methods for generating a unique device id
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

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI751753B (en) * 2020-10-22 2022-01-01 十銓科技股份有限公司 Digital label conversion interface method
US12307258B2 (en) 2023-07-07 2025-05-20 Quanta Computer Inc. Systems and methods for efficient transfer of data to a baseboard management controller

Also Published As

Publication number Publication date
KR102896604B1 (en) 2025-12-05
CN110908715A (en) 2020-03-24
JP2020047277A (en) 2020-03-26
CN110908715B (en) 2022-03-22
KR20200032654A (en) 2020-03-26
TWI835837B (en) 2024-03-21
JP7497146B2 (en) 2024-06-10

Similar Documents

Publication Publication Date Title
TWI835837B (en) Pairing system and pairing method of multi-device
US10990554B2 (en) Mechanism to identify FPGA and SSD pairing in a multi-device environment
US11983406B2 (en) Method for using BMC as proxy NVMeoF discovery controller to provide NVM subsystems to host
US11983129B2 (en) Self-configuring baseboard management controller (BMC)
US11126583B2 (en) Multi-mode NMVe over fabrics devices
US10346042B2 (en) Management of external memory
US11544205B2 (en) Peer storage devices sharing host control data
KR20180012181A (en) Self-Configuring SSD Multi-Protocol Support in Host-less Environment
CN113190490A (en) Method, electronic system and encryption device for encryption
JP5509176B2 (en) Computer system and module takeover method in computer system
CN107463339A (en) A kind of NAS storage system
US9971532B2 (en) GUID partition table based hidden data store system
CN110515540A (en) A kind of method and device of topology hard disk
US12481612B2 (en) Mechanism to identify FPGA and SSD pairing in a multi-device environment
CN116108442A (en) Secure processor, operating method thereof, and storage device including the secure processor
US11144496B2 (en) Self-configuring SSD multi-protocol support in host-less environment
CN117610038A (en) Method and device for realizing encrypted USB flash disk, electronic equipment and storage medium