Storage system, storage device, and method of operating a storage device

CN114185821BActive Publication Date: 2026-09-29SAMSUNG ELECTRONICS CO LTD
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202110941208.3
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2021-03-15
Filing Date
2021-08-17
Publication Date
2026-09-29
Estimated Expiration
2041-08-17

Smart Images

  • Figure CN114185821B_ABST
    Figure CN114185821B_ABST
Patent Text Reader

Abstract

Storage systems, storage devices, and methods of operating storage devices are provided. The storage device can include a storage medium, a storage device controller coupled to the storage medium, a host interface coupled to the storage device controller, and an attachable module interface configured to connect an attachable computing module to the storage device controller. The attachable module interface can include a data interface, a sideband interface, and / or a power interface. The attachable module interface can include a connector configured to connect the attachable computing module to the storage device controller. The storage device can include a housing having an opening configured to enable the attachable computing module to be connected to the attachable module interface through the opening. The storage device controller can be configured to utilize one or more resources of the attachable computing module. The storage device controller can be configured to communicate with the attachable computing module through one or more command extensions of a storage protocol.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] This application claims priority and benefit to U.S. Provisional Patent Application No. 63 / 149,219, filed February 12, 2021, entitled "Systems, Methods, and Apparatus for Modular Compute Resources for Storage Devices," filed September 14, 2020, entitled "Pluggable Compute Resource Modules for SSDs," filed September 14, 2020, included by reference; and U.S. Patent Application No. 17 / 202,335, filed March 15, 2021, included by reference. Technical Field

[0002] This disclosure generally relates to storage devices, and more specifically, to systems, methods, and apparatus for modular computing resources used in storage devices. Background Technology

[0003] Storage devices may include storage media for providing non-volatile data storage. Computational storage devices may include one or more computing resources for enabling the storage device to process data at the storage device.

[0004] The information disclosed above in this background section is only intended to enhance the understanding of the background of the invention, and therefore may contain information that does not constitute prior art. Summary of the Invention

[0005] A storage device may include: a storage medium; a storage device controller coupled to the storage medium; a host interface coupled to the storage device controller; and an attachable module interface configured to connect an attachable computing module to the storage device controller. The attachable module interface may include a data interface configured to exchange data between the storage device controller and the attachable computing module. The attachable module interface may include a sideband interface configured to identify one or more parameters of the attachable computing module. The attachable module interface may include at least one power connection configured to apply power limits to the attachable computing module. The attachable module interface may include a connector configured to connect the attachable computing module to the storage device controller. The storage device may include a housing with an opening configured to allow the attachable computing module to connect to the attachable module interface. The storage device controller may be configured to control the visibility of one or more computing resources of the attachable computing module via the host interface. The storage device controller may be configured to utilize one or more resources of the attachable computing module. The storage device controller may be configured to transmit control of one or more functions of the storage device to the attachable computing module. The storage device controller may be configured to communicate with the attachable computing module via one or more command extensions of a storage protocol. The attachable module interface may be configured to allow the attachable computing module to be detached from the storage device and replaced with a different attachable computing module. The storage device may further include a network interface controller configured to utilize one or more computing resources of the attachable computing module.

[0006] A method of operating a storage device may include: detecting an attachable computing module connected to an attachable module interface of the storage device; and utilizing one or more computing resources of the attachable computing module based on the detection of the attachable computing module. The method may further include: identifying the attachable computing module via the attachable module interface. The method may further include: transmitting control of one or more functions of the storage device to the attachable computing module. The method may further include: communicating with the attachable computing module via one or more command extensions of a storage protocol.

[0007] A system may include a storage device and an attachable computing module connected to an attachable module interface. The storage device includes: a storage medium; a storage device controller coupled to the storage medium; a host interface coupled to the storage device controller; and an attachable module interface coupled to the storage device controller. The attachable computing module may include an identification data structure configured to be read by the storage device controller. Attached Figure Description

[0008] The accompanying drawings are not necessarily drawn to scale, and throughout the drawings, elements with similar structures or functions are generally indicated by similar reference numerals or portions thereof for illustrative purposes. The drawings are intended only to facilitate the description of the various embodiments described herein. The drawings do not depict every aspect of the teachings disclosed herein and do not limit the scope of the claims. To prevent the drawings from becoming unclear, not all components, connections, etc., may be shown, and not all components may have reference numerals. However, the pattern of component configuration may be readily apparent from the drawings. The drawings, together with the specification, illustrate exemplary embodiments of the present disclosure and, together with the description, serve to explain the principles of the present disclosure.

[0009] Figure 1 An embodiment of an architecture for a storage device is shown, based on a disclosed example embodiment.

[0010] Figure 2 An example embodiment of a storage device including an attachable computing module is shown, according to a disclosed example embodiment.

[0011] Figure 3 An example embodiment illustrating the physical construction of a storage device and an attachable computing module according to a disclosed example embodiment.

[0012] Figure 4 An example embodiment of a storage device having an attachable module interface and an integrated network interface controller (NIC) is shown according to a disclosed example embodiment.

[0013] Figure 5 An embodiment of a method for operating a storage device according to a disclosed example embodiment is shown. Detailed Implementation

[0014] Overview

[0015] In a data processing system according to a disclosed example embodiment, data may be stored in a storage device (such as a hard disk drive (HDD) and / or a solid-state drive (SSD), which may include a storage medium for providing non-volatile data storage. Data stored in the storage device may be transferred to a central processing unit (CPU) for processing. The results from the data processing may then be transferred back to the storage device. However, processing large amounts of data in a centralized manner can result in latency associated with moving data between the storage device and the CPU. This can also consume resources such as CPU cycles, memory bandwidth, network bandwidth, and / or power.

[0016] To reduce the time and / or cost associated with centralized data processing, the computing storage device according to the disclosed example embodiments may include computing resources that enable the storage device to process data directly at the storage device, rather than sending the data to a centralized processor. The computing storage device can be used in a wide variety of applications (such as graphics processing, scientific computing, video processing, artificial intelligence, machine learning, and / or social networks). Different applications may involve the use of different types and / or numbers of computing resources, so a single configuration of storage device with computing resources may not provide optimal or even sufficient resources for all potential applications. Therefore, different computing storage devices can be designed and manufactured for different applications.

[0017] However, designing and / or manufacturing a large number of different computing storage devices for different applications can increase the cost of manufacturing each device as well as the cost and / or complexity of the systems used for the design, marketing and / or support of the devices.

[0018] In some embodiments, the architecture for a computing storage device according to the disclosed example embodiments allows modular computing resources to be attached to the storage device. According to implementation details, this can enable one or a small number of basic storage devices to be suitable for use in a wide variety of applications by attaching modular computing resources that can be dedicated to and / or optimized for each application. For example, in some embodiments, pluggable computing modules can be inserted into slots and / or connectors on the storage device. Some embodiments may support multiple pluggable computing modules in the storage device.

[0019] In some implementations, the modular architecture of the computing storage device according to the disclosed example embodiments can, for example, reduce the cost per storage device by improving economies of scale in the design, manufacture, marketing, and / or support of individual or small numbers of basic storage devices. Furthermore, according to the implementation details, this can enable the development of an ecosystem in which participants can leverage their individual expertise to create computing modules that enable the computing storage device to operate in a wide variety of applications.

[0020] In some embodiments, the storage device may include an enclosure, which may be implemented as, for example, a case with an opening configured to allow an attachable computing module to connect to and / or be inserted into an attachable module interface. A storage device controller may be configured to transmit control (e.g., commands, information, parameters, etc.) of one or more functions of the storage device (such as data processing functions) to the attachable computing module. The storage device controller may be configured to communicate with the attachable computing module via one or more command extensions of a storage protocol and / or by utilizing proprietary communication protocols. A method may include transmitting control of one or more functions of the storage device (such as data processing functions) to the attachable computing module. In some embodiments, the attachable computing module may include control and / or status data structures configured to be read and / or written by the storage device controller.

[0021] As described in more detail below, a computing storage device having modular computing resources attached according to the disclosed example embodiments can be implemented using a wide variety of different physical and / or electrical configurations, interfaces, protocols and / or features, etc.

[0022] Architecture

[0023] Figure 1 An embodiment of an architecture for a storage device is shown, based on a disclosed example embodiment. Figure 1 The storage device 100 shown may include a storage device controller 102, a storage medium 104, a host interface 106, and an attachable module interface 108. The storage medium 104, the host interface 106, and the attachable module interface 108 may be coupled to the storage device controller 102 via connection 110, connection 112, and connection 114, respectively.

[0024] Attachable module interface 108 can be configured to connect an attachable computing module to storage device controller 102. Attachable module interface 108 can provide mechanical and / or electrical connections, etc., to the attachable computing module. For example, in some embodiments, attachable module interface 108 can provide a mechanical connection between the attachable computing module and storage device 100, as well as one or more electrical and / or signal connections (such as an electrical connection between the attachable computing module and storage device controller 102). Although only one attachable module interface 108 is available... Figure 1 The interface 108 is shown in the figure, but any number of additional attachable module interfaces 108 may be included to connect any number of attachable computing modules to the storage device controller 102.

[0025] The attachable module interface 108 can be implemented in any detachable or non-detachable form, including connectors (such as pin-and-sleeve connectors, spring-loaded connectors, printed circuit board (PCB) headers, card edge connectors, plugs and / or sockets, etc.), attachment sites (such as patterns of solder pads arranged to engage corresponding patterns of terminals on the attachable computing module and / or patterns of spring-loaded pins, etc.) and / or wireless connection points, etc. Electrical and / or signal connections can be wired (e.g., via contact terminals and / or solder connections, etc.) or wireless (e.g., via radio frequency (RF) connections, optical connections, and / or ultrasonic connections, etc.).

[0026] Storage device 100 and storage medium 104 can be implemented using any type of storage device and associated storage medium, including HDDs (which may include magnetic media), SSDs (which may include solid-state media such as NAND flash memory), optical disc drives, drives based on any type of persistent memory (such as cross-grid non-volatile memory and / or memory with varying bulk resistance, etc.), and / or any combination thereof. Storage medium 104 can be connected to storage device controller 102 via any suitable interface 110 (e.g., Toggle or Open NAND Flash Interface (ONFI) in the case of NAND storage media). Storage devices can be implemented using any form factor (e.g., 3.5-inch, 2.5-inch, 1.8-inch, M.2, Enterprise and Data Center SSD Form Factor (EDSFF) and / or NF1, etc.).

[0027] The host interface 106 can be implemented using any connector configuration (such as Serial ATA (SATA), Small Computer System Interface (SCSI), Serial Attached SCSI (SAS), U.2 and / or U.3, etc.) and any protocol used for one or more connections 112 (such as Peripheral Component Interconnect (PCI), PCIe, Non-Volatile Memory Fast (NVMe), NVMe over Network (NVMe-oF), Ethernet, Unlimited Bandwidth and / or Fibre Channel, etc.).

[0028] The storage device controller 102 may include logic for implementing any operational functions of the storage device and any functions for detecting the presence of an attachable computing module and / or interface connection to the attachable computing module via the attachable module interface 108, and / or for utilizing any computing resources of the attachable computing module. The storage device controller 102 may be implemented using hardware, software, or any combination thereof, including combinational logic, sequential logic, one or more timers, counters, registers, state machines, complex programmable logic devices (CPLDs), field-programmable gate arrays (FPGAs), application-specific integrated circuits (ASICs), complex instruction set computer (CISC) processors, and / or reduced instruction set computer (RISC) processors, etc., that execute instructions stored in volatile memory (such as dynamic random access memory (DRAM) and / or static random access memory (SRAM)), non-volatile memory (such as flash memory), and graphics processing units (GPUs), neural processing units (NPUs), and / or tensor processing units (TPUs).

[0029] One or more connections 114 between the attachable module interface 108 and the storage device controller 102 may include one or more power connections, data connections, and / or sideband connections. Some examples may include PCIe, Ethernet, Double Data Rate (DDR), DDR2, DDR3, DDR4, DDR5, switching, ONFI, Transmission Control Protocol / Internet Protocol (TCP / IP), unlimited bandwidth, Remote Direct Memory Access (RDMA), Compute Fast Link (CXL), Gen-Z, General Purpose Input / Output (GPIO), Internal Integrated Circuit (I2C), and / or System Management Bus (SMBus), etc.

[0030] Implementation

[0031] Figure 2 An example embodiment of a storage device including an attachable computing module is shown, according to a disclosed example embodiment. Figure 2 The embodiments shown can be used, for example, to implement Figure 1 The architecture shown is not limited to the principles described herein. Figure 2 Details shown in the image.

[0032] Figure 2The storage device 200 shown may include a storage device controller 202, a storage medium 204, a host interface 206, an attachable module interface 208, and an attachable computing module 220. The storage device 200 may also include a circuit board 222 (which may also be referred to as a storage device substrate), on which the storage device controller 202, storage medium 204, and host interface 206 may be located. The storage medium 204 may be connected to the storage device controller 202 via any suitable storage medium interface 210 (e.g., switching or ONFI in the case of NAND storage media). The storage device substrate 222 may also include a memory 224, which may be implemented using any suitable type of memory (e.g., DRAM, SRAM, and / or non-volatile memory, etc.), and if the memory 224 is implemented using DRAM, it may be connected to the storage device controller 202 via any suitable interface 223 (e.g., DDR, DDR2, ..., etc.).

[0033] Host interface 206 can use any storage interface and / or protocol (such as PCIe, NVMe, NVMe-oF, Ethernet, unlimited bandwidth and / or Fibre Channel, etc.) to connect storage device 200 to host 218 via connection 216.

[0034] The storage device controller 202 may include logic for implementing any operational functions of the storage device (such as a flash translation layer (FTL) in embodiments where the storage medium 204 is implemented using flash memory). As described below, the storage device controller 202 may include logic for implementing any function of connecting the attachable computing module 220 via the attachable module interface 208, and / or for utilizing any computing resources of the attachable computing module 220. The storage device controller 202 may be implemented using hardware, software, or any combination thereof (including combinational logic, sequential logic, one or more timers, counters, registers, state machines, CPLDs, FPGAs, ASICs, CISC and / or RISC processors, etc., that executes instructions stored in DRAM, SRAM, and / or flash memory, etc.) and any other type of processing unit.

[0035] The attachable computing module 220 may include any type and / or number of computing resources 226 (such as FPGAs, ASICs, CISC and / or RISC CPUs, x86 processors, ARM processors, GPUs, NPUs, TPUs, CPLDs, discrete combinational logic and / or sequential logic, etc.) in any suitable form (including integrated circuits and / or system-on-a-chip (SoCs)). The attachable computing module 220 may also include memory 228 (such as DRAM, SRAM and / or non-volatile memory, etc.) connected to the computing resources 226 via any suitable interface 230. As described below, the computing resources 226 may also include logic for implementing any additional functions of the attachable computing module 220 (such as interface functions and / or control functions, etc.).

[0036] The attachable computing module 220 may also include a module interface 232 for providing mechanical and / or electrical connections, etc., to the attachable module interface 208. For example, in Figure 2 In the embodiment shown, the module interface 232 may include a connector 234 that provides mechanical and electrical connections to a corresponding connector 236 that can be attached to the module interface 208.

[0037] The module interface 232 and the attachable module interface 208 may respectively include sideband interfaces 238 and 240, data interfaces 242 and 244, and power interfaces 246 and 248.

[0038] Sideband interfaces 238 and 240 can provide management and / or control functions in one or both directions via one or more sideband connections 250. Sideband interfaces 238 and 240 can use any suitable interface (such as GPIO, I2C, SMBus, and / or PCIe). For example, management and / or control functions can be implemented using a global control data structure, which can specify management and / or control functions (such as power limiting, module enable and / or disable, module reset, module identification and / or function signaling, clock signaling, error notification, and / or alarms).

[0039] In some embodiments, sideband interfaces 238 and 240 may be configured to identify one or more parameters of the attachable computing module 220. The attachable computing module 220 and the storage device controller 202 may use or include identification data structures that can be read by the storage device controller 202, for example, via one or more sideband connections 250. The identification data structures may include information or parameters about the attachable computing module 220 (such as vendor identifier (ID), revision ID, unique ID, capabilities, and / or characteristics).

[0040] Data interfaces 242 and 244 can send data, commands, and / or addresses, etc., through one or more data connections 252 to enable storage device 200 to utilize computing resources 226. Data interfaces 242 and 244 can use any suitable interconnect interface and / or protocol (such as PCIe, Ethernet, CXL, and / or Gen-Z, etc.), and use any data width and / or speed, etc., that can be determined by storage device controller 202 and / or negotiated with attachable computing module 220.

[0041] In some embodiments, host 218 and / or storage device controller 202 may use one or more extensions to existing protocols to exchange data, commands, and / or addresses with attachable computing module 220. For example, in some embodiments, host 218 may use the NVMe protocol to send compute storage commands to storage device 200. Storage device controller 202 may then use, for example, one or more NVMe command extensions to manage appropriate compute storage data and control interface connections with compute resource 226.

[0042] In some embodiments, the storage device controller 202 may (e.g., via the host interface 206) control the visibility of the attachable computing module 220 and / or computing resources 226 to the host 218. For example, in some embodiments, the computing resources 226 may not be directly visible to the host 218. In other embodiments, the storage device controller 202 may expose some or all of the details of the type and / or quantity of the computing resources 226 to the host 218.

[0043] In some embodiments, the storage device controller 202 may operate as a master processor, and the computing resources 226 may operate as a slave processor or coprocessor. In some embodiments, the storage device controller 202 may be configured to deferred control of one or more functions of the storage device 200 to the attachable computing module 220. For example, by reading the capabilities and / or characteristics of the attachable computing module 220 via an identification data structure, the storage device controller 202 may determine that the attachable computing module 220 is capable of controlling the storage device 200. The storage device controller 202 may then transfer control of one or more functions of itself to the attachable computing module 220. In such a configuration, some or all of the resources of the storage device controller 202 may operate as a slave processor or coprocessor of the attachable computing module 220.

[0044] Power interfaces 246 and 248 enable storage device 200 to supply operating power to attachable computing module 220, for example, via one or more hardwired connections 254. In one example, power interfaces 246 and 248 may impose power limits on attachable computing module 220. Storage device 200 may supply operating power to attachable computing module 220, for example, at voltages and / or currents that can be pre-specified, dynamically determined at runtime, based on requests via sideband interfaces, and / or subject to specified power limits.

[0045] In some embodiments, the designer and / or manufacturer of the storage device 200 may establish specifications for any aspect of the attachable computing module 220 (including mechanical interfaces, electrical interfaces, data interfaces, power interfaces, sideband interfaces, identification data structures, and / or global control data structures, etc.), which customers and / or third parties may then use to provide a compliant attachable computing module 220 that can operate correctly with the storage device 200.

[0046] The attachable computing module 220 can be implemented in any physical configuration (such as a daughterboard, a partially or fully enclosed module, an integrated circuit and / or a SoC, etc.) and can be attached to the storage device substrate 222 via card edge connectors, headstocks, plug and socket connectors, and / or solder pad connections, etc.

[0047] In some embodiments, the attachable computing module 220 can be attached to the storage device substrate 222 via a slot in a housing, which may be implemented, for example, as the housing of the storage device 200, using a connector on the attachable computing module 220 that can connect to a corresponding slot on the storage device substrate 222. In some embodiments, the attachable module interface 208 may be configured to allow the attachable computing module 220 to be detached from the storage device 200 and replaced with a different attachable computing module.

[0048] In some other embodiments, the attachable computing module 220 may be completely enclosed within the housing of the storage device 200. For example, the manufacturer of the storage device 200 may send a completed storage device substrate assembly 222, with or without a housing, to a customer. The customer may then remove part or all of the housing to attach the attachable computing module 220 to the storage device substrate 222, and subsequently replace the housing. Alternatively, the customer may provide their own housing for the storage device 200.

[0049] Although some components are available Figure 2While some components are shown as separate components, in some embodiments, some of the components shown separately may be integrated into a single component, and / or some components shown as a single component may be implemented using multiple components. Furthermore, the functionality described with respect to a particular component may be interchangeable with other components. For example, in some embodiments, control and / or management information shown via sideband connection 250 may alternatively be via data connection 252. Additionally, although the number of some components may be shown as one in the drawings of this application, in some embodiments, the number of these components may be at least one.

[0050] Figure 3 An example embodiment illustrating the physical construction of a storage device and an attachable computing module according to a disclosed example embodiment. Figure 3 The storage device 300 shown may include a housing 302 having an opening for a host connector 304. The host connector may be implemented using any storage device connector including SATA, SAS, M.2, U.2, U.3, and / or NF1, etc.

[0051] The housing 302 may also include a slot 305 configured to receive an attachable computing module 306. The attachable computing module 306 may include a connector 308 (such as a card edge connector, a sleeve connector, and / or a headstock, etc.) configured to connect the attachable computing module 306 to a corresponding connector on a storage device substrate located within the housing 302.

[0052] Although only one slot 305 and attachable computing module 306 are available Figure 3 As shown, however, any number of additional slots 305 may be included at any location on the housing 302 to accommodate additional attachable computing modules 306.

[0053] Integrated functions

[0054] In some embodiments, the storage device having an attachable module interface may also include additional functionality according to the disclosed example embodiments. For example, in some embodiments, additional devices that can utilize the computing resources of an attachable computing module may be integrated into the storage device.

[0055] Figure 4 An example embodiment of a storage device having an attachable module interface and an integrated network interface controller (NIC) is shown according to a disclosed example embodiment. Figure 4 The embodiments shown may include those with Figure 2 The components shown are similar to some of the components. However, Figure 4The storage device 400 shown may also include a NIC 460, which is configured to provide access to a network via one or more network connectors 462. The NIC 460 may use any network interface and / or protocol (such as Ethernet, TCP / IP, unlimited bandwidth, Fibre Channel and / or RDMA over Converged Ethernet (RoCE) etc.) and any interconnect interface and / or protocol (such as PCIe, RDMA, Compute Fast Link (CXL) and / or Gen-Z etc.).

[0056] NIC 460 may be configured to access computing resources 426 of attachable computing module 420 via interface 466 to storage device controller 402. Interface 466 may be implemented using any suitable interconnect and / or network interface and / or protocol (including any of those described above). Optionally or additionally, NIC 460 may be configured to directly access computing resources 426 of attachable computing module 420 via interface 468, which may also be implemented using any suitable interconnect and / or network interface and / or protocol (including any of those described above).

[0057] In some embodiments, NIC 460 may be configured to access host interface 406 via storage device controller 402. Optionally or additionally, NIC 460 may be configured to directly access host interface 406 via interface 470, which may also be implemented using any suitable interconnect and / or network interface and / or protocol (including any of those described above).

[0058] In some embodiments, NIC 460 may be configured to act as a computing NIC using some or all of the computing resources 426 of the attachable computing module 420, which may receive offloaded computing tasks from host 418 and / or any other device connected to one or more network connectors 462. In some embodiments, storage device 400 may primarily act as a network interface adapter, and NIC 460 may use more of the computing resources 426 of the attachable computing module 420 than storage device controller 402.

[0059] Additional Examples

[0060] Figure 5 An embodiment of a method for operating a storage device according to a disclosed example embodiment is shown. At operation 502, the method may begin. At operation 504, the method may detect an attachable computing module connected to an attachable module interface of the storage device. At operation 506, the method may utilize one or more computing resources of the attachable computing module based on the detection of the attachable computing module. At operation 508, the method may end.

[0061] about Figure 5 The operations and / or components described in the embodiments shown herein, as well as all other embodiments described herein, are exemplary operations and / or components. In some embodiments, some operations and / or components may be omitted and / or other operations and / or components may be included. Furthermore, in some embodiments, the temporal and / or spatial order of operations and / or components may be changed. Although some components may be shown as separate components, in some embodiments, some components shown separately may be integrated into a single component, and / or some components shown as a single component may be implemented using multiple components.

[0062] The embodiments disclosed above have been described in the context of various implementation details, but the principles of this disclosure are not limited to these or any other specific details. For example, some functions have been described as being implemented by specific components, but in other embodiments, functions may be distributed across different systems and components with various user interfaces in different locations. Specific embodiments have been described as having specific processes, operations, etc., but these terms also include embodiments in which specific processes, operations, etc. may be implemented by multiple processes, operations, etc., or embodiments in which multiple processes, operations, etc. may be integrated into a single process, operation, etc. References to components or elements may refer only to a portion of a component or element. For example, a reference to an integrated circuit may refer to all or only a portion of an integrated circuit, and a reference to a block may refer to an entire block or one or more sub-blocks. Unless otherwise clear from the context, the use of terms such as “first” and “second” in this disclosure and claims is for the purpose of distinguishing what they modify only and may not indicate any spatial or temporal order. In some embodiments, “based on” may mean “at least partially based on”. A reference to a first element does not imply the presence of a second element. For convenience, various organizational aids such as chapter titles may be provided, but the themes arranged according to these aids and the principles of this disclosure are not limited by these organizational aids.

[0063] The various details and embodiments described above can be combined to produce additional embodiments based on the inventive principles disclosed in this patent. Since the inventive principles disclosed in this patent can be modified in arrangement and detail without departing from the inventive concept, such changes and modifications are considered to fall within the scope of the appended claims.

Claims

1. A storage device, comprising: Storage medium; A storage device controller, integrated with the storage medium; The host interface is integrated with the storage device controller; as well as The attachable module interface is configured to connect an attachable computing module to the storage device controller. The storage device controller is configured to transmit control of one or more functions of the storage device to the attachable computing module.

2. The storage device according to claim 1, wherein, The attachable module interface includes a data interface configured to exchange data between the storage device controller and the attachable computing module.

3. The storage device according to claim 1, wherein, Attachable module interfaces include sideband interfaces.

4. The storage device according to claim 3, wherein, The sideband interface is configured to recognize one or more parameters of the attachable computing module.

5. The storage device according to claim 1, wherein, The attachable module interface includes at least one power interface.

6. The storage device according to claim 5, wherein, The at least one power interface is configured to apply a power limit to the attachable computing module.

7. The storage device according to claim 1, wherein, The attachable module interface includes a connector configured to connect the attachable computing module to the storage device controller.

8. The storage device according to claim 1, wherein, The storage device includes a housing with an opening configured to allow an attachable computing module to connect to an attachable module interface.

9. The storage device according to claim 1, wherein, The storage device controller is configured to control the visibility of one or more computing resources of an attachable computing module via a host interface.

10. The storage device according to claim 1, wherein, The storage device controller is configured to utilize one or more computing resources that can be attached to a computing module.

11. The storage device according to claim 1, wherein, The storage device controller is configured to communicate with the attachable computing module via one or more command extensions of the storage protocol.

12. The storage device according to claim 1, wherein, The attachable module interface is configured to allow the attachable computing module to be detached from the storage device and replaced with a different attachable computing module.

13. The storage device according to any one of claims 1 to 12, further comprising: The network interface controller is configured to utilize one or more computing resources that can be attached to computing modules.

14. A method of operating a storage device, the method comprising: Detect the attachable computing module connected to the attachable module interface of the storage device; as well as Based on the detection of an attachable computing module, one or more computing resources of the attachable computing module can be utilized. The method further includes transmitting control of one or more functions of the storage device to the attachable computing module.

15. The method of claim 14, further comprising: Attachable computing modules can be identified through the attachable module interface.

16. The method according to any one of claims 14 to 15, further comprising: Communicating with the attachable computing module via one or more command extensions of the storage protocol.

17. A storage system, comprising: Storage device, including: Storage medium, Storage device controller, integrated with storage medium, The host interface is integrated with the storage device controller, and It can be connected to a module interface and integrated with a storage device controller; and Attachable computing modules can be connected to the attachable module interface. The storage device controller is configured to transmit control of one or more functions of the storage device to the attachable computing module.

18. The storage system according to claim 17, wherein, The attachable computing module includes an identification data structure configured to be read by a storage device controller.

Citation Information

Patent Citations

  • Modular Carrier Form Factors For Computing Platforms

    US20180101500A1

  • Systems and methods for using resources in a networked computing environment

    US20180341619A1