# US 12,761,831 B2 · Computational storage device, and computational storage system and electronic system including the same

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 12,761,831 B2
- Document ID: US12761831B2
- Status: Granted
- Kind: B2
- Application number: 18/134,698
- Filed: 2023-04-14
- Published: 2024-01-04
- Granted: 2026-10-13
- Earliest claimed: 2022-06-29
- Assignees: Samsung Electronics Co., Ltd.
- Applicants: Samsung Electronics Co., Ltd.
- Inventors: Soo-Young Ji; Min-Ho Kim; Dongouk Moon; Sang-Hwa Jin
- Web page: https://patentgrep.com/patent/US12761831B2

## CPC

- G06F 3/0656: {Data buffering arrangements}
- G06F 3/0604: {Improving or facilitating administration, e.g. storage management}
- G06F 3/061: {Improving I/O performance}
- G06F 3/0659: {Command handling arrangements, e.g. command buffers, queues, command scheduling}
- G06F 3/0661: {Format or protocol conversion arrangements}
- G06F 3/0679: {Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Disclosed are a computational storage device, an electronic system and an electronic device. The computational storage device includes a nonvolatile memory, a buffer memory, and a storage controller. The storage controller communicates with the nonvolatile memory and the buffer memory. The storage controller performs computational processing and data format conversion on first data input to the storage controller based on a storage processing table associated with an external electronic device to output second data.

## Claims

### Claim 1

A computational storage device of a first electronic device, the computational storage device comprising:
a nonvolatile memory;
a buffer memory; and
a storage controller comprising a plurality of processing modules and configured to:
communicate with the nonvolatile memory and the buffer memory,
perform, based on first information in a storage processing table associated with a second electronic device external to the first electronic device, at least one of a computational processing and a data format conversion on first data input to the storage controller to output second data; and
send the second data to the second electronic device through an interface of the first electronic device,
wherein the storage processing table indicates one or more processing modules, among the plurality of processing modules, that are enabled independently for each of a plurality of external electronic devices that are external to the computational storage device, the second electronic device being one of the plurality of external electronic devices,
wherein the plurality of processing modules comprise:
a first computational module configured to perform a first computational processing,
a second computational module configured to perform a second computational processing,
a first plug-in module configured to perform a first data format conversion, and
a second plug-in module configured to perform a second data format conversion, and
wherein, based on a request from a host device to perform an operation related to the second electronic device on the first data, obtaining the first information associated with the second electronic device from the storage processing table, the first information indicating that at least one of the second computational processing or second data format conversion is to be performed on the first data, and
wherein the storage controller is further configured to obtain the second data based on the second computational module performing the second computational processing on the first data or the second plug-in module configured to perform the second data format conversion on the first data.

### Claim 2 (depends on 1)

The computational storage device of claim 1, wherein the first information comprises:
data processing information corresponding to data processing to be performed in the second electronic device, and
data format information corresponding to a scheme to communicate with the second electronic device.

### Claim 3 (depends on 2)

The computational storage device of claim 2, wherein the storage controller comprises an acceleration module, and
wherein the acceleration module comprises:
a plurality of computational modules configured to perform the computational processing based on the data processing information, the plurality of computational modules including the first computational module and the second computational module; and
a plurality of plug-in modules configured to perform the data format conversion based on the data format information, the plurality of plug-in modules including the first plug-in module and the second plug-in module.

### Claim 4 (depends on 3)

The computational storage device of claim 3, wherein the storage processing table indicates an order of performing the computational processing and the data format conversion based on a type of a request from a host device.

### Claim 5 (depends on 4)

The computational storage device of claim 4, wherein, based on the request from the host device being a read request and based on the storage processing table indicating that the computational processing is performed prior to the data format conversion, the second computational module is configured to perform the computational processing on the first data, and the second plug-in module is configured to output the second data by performing the data format conversion on the first data on which the computational processing has been performed by the second computational module.

### Claim 6 (depends on 4)

The computational storage device of claim 4, wherein, based on the request from the host device being a write request and based on the storage processing table indicating that the data format conversion is performed prior to the computational processing, the second plug-in module is configured to perform the data format conversion on the first data, and the second computational module is configured to output the second data by performing the computational processing on the first data on which the data format conversion has been performed by the second plug-in module.

### Claim 7 (depends on 4)

The computational storage device of claim 4, wherein the storage controller further comprises:
a buffer memory interface comprising two or more interface channels, the buffer memory interface being configured to communicate with the plurality of computational modules, the plurality of plug-in modules, and the buffer memory through the two or more interface channels; and
an acceleration module manager configured to control the plurality of computational modules, the plurality of plug-in modules, and the buffer memory interface based on the request from the host device and the storage processing table.

### Claim 8 (depends on 7)

The computational storage device of claim 7, wherein, based on the storage processing table indicating that the computational processing is performed prior to the data format conversion, the acceleration module manager is configured to form one or more data paths,
wherein each of the one or more data paths starts from the buffer memory interface, sequentially passes through the plurality of computational modules and the plurality of plug-in modules, and returns to the buffer memory interface.

### Claim 9 (depends on 8)

The computational storage device of claim 8, wherein the acceleration module manager is configured to enable the plurality of computational modules, the plurality of plug-in modules, and the two or more interface channels based on the storage processing table, and
wherein a number of the enabled interface channels is equal to a sum of a number of the enabled computational modules and the number of the enabled plug-in modules.

### Claim 10 (depends on 2)

The computational storage device of claim 2, wherein the storage controller further comprises:
an acceleration module comprising a plurality of computational modules performing the computational processing, the plurality of computational modules including the first computational module and the second computational module, and
a core module comprising a plurality of cores,
wherein the core module further comprises a plurality of plug-in modules performing the data format conversion, the plurality of plug-in modules including the first plug-in module and the second plug-in module.

### Claim 11 (depends on 10)

The computational storage device of claim 10, wherein a number of the plurality of cores is more than or equal to a number of the plurality of plug-in modules, and
wherein the plurality of plug-in modules are respectively provided in one or more of the plurality of cores.

### Claim 12 (depends on 11)

The computational storage device of claim 11,
wherein a first core, among the plurality of cores, comprises the first plug-in module, among the plurality of plug-in modules, the first core being configured to perform the first data format conversion,
wherein a second core, among the plurality of cores, comprises the second a plug-in module, among the plurality of plug-in modules, the second core being configured to perform the second data format conversion, and
wherein, based on a request from the host device being a write request and based on the storage processing table indicating that the data format conversion is performed prior to the computational processing,
the first plug-in module is configured to perform the first data format conversion on a first data component of the first data,
the second plug-in module is configured to perform the second data format conversion on a second data component of the first data, and
the first computational module is configured to output the second data by performing a first computational processing on first output data of the first plug-in module and second output data of the second plug-in module.

### Claim 13 (depends on 1)

The computational storage device of claim 1, wherein one of the first data and the second data has a data format suitable for one of communication with the second electronic device and a data processing to be performed in the second electronic device, and the other of the first data and the second data has a data format suitable for the computational processing to be performed in the storage controller.

### Claim 14

An electronic system comprising:
a first electronic device; and
a second electronic device configured to communicate with the first electronic device,
wherein the first electronic device comprises a host device and a computational storage device,
wherein the computational storage device of the first electronic device comprises:
a nonvolatile memory;
a buffer memory; and
a storage controller comprising a plurality of processing modules and configured to:
communicate with the nonvolatile memory and the buffer memory, and
perform, based on first information in a first storage processing table associated with the host device and a second storage processing table associated with the second electronic device external to the first electronic device, at least one of a computational processing and a data format conversion on first data input to the storage controller to output second data; and
send the second data to the second electronic device through an interface of the first electronic device,
wherein the second storage processing table indicates one or more processing modules, among the plurality of processing modules, that are enabled independently for each of a plurality of external electronic devices that are external to the computational storage device, the second electronic device being one of the plurality of external electronic devices,
wherein the plurality of processing modules comprise:
a first computational module configured to perform a first computational processing,
a second computational module configured to perform a second computational processing,
a first plug-in module configured to perform a first data format conversion, and
a second plug-in module configured to perform a second data format conversion, and
wherein, based on a request from a host device to perform an operation related to the second electronic device on the first data, obtaining the first information associated with the second electronic device from the second storage processing table, the first information indicating that at least one of the second computational processing or second data format conversion is to be performed on the first data, and
wherein the storage controller is further configured to obtain the second data based on the second computational module performing the second computational processing on the first data or the second plug-in module configured to perform the second data format conversion on the first data.

### Claim 15 (depends on 14)

The electronic system of claim 14, wherein one of the first data and the second data has a data format suitable for one of communication with the second electronic device and a data processing to be performed in the host device, and the other of the first data and the second data has a data format suitable for the computational processing to be performed in the storage controller.

### Claim 16 (depends on 14)

The electronic system of claim 14, wherein one of the first data and the second data is received from one of the second electronic device and the host device, and the other of the first data and the second data is output to the nonvolatile memory.

### Claim 17 (depends on 14)

The electronic system of claim 14, wherein the buffer memory comprises a first storage region associated with the host device and a second storage region associated with the second electronic device,
wherein the first data or the second data are written in the first storage region based on the first storage processing table or are read from the first storage region based on the first storage processing table, and
wherein the first data or the second data are written in the second storage region based on the second storage processing table or are read from the second storage region based on the second storage processing table.

### Claim 18

A first electronic device comprising:
a host device;
a compute express link (CXL) switch;
a CXL memory device; and
a CXL storage device comprising a CXL storage controller, the CXL storage controller comprising a plurality of processing modules and configured to:
communicate with the host device and the CXL memory device through the CXL switch, and
perform, based on information in a storage processing table associated with a second electronic device external to the first electronic device, computational processing and data format conversion on first data input to the CXL storage controller to output second data; and
send the second data to the second electronic device through an interface of the first electronic device,
wherein the storage processing table indicates one or more processing modules, among the plurality of processing modules, that are enabled independently for each of a plurality of external electronic devices that are external to the CXL storage device, the second electronic device being one of the plurality of external electronic devices,
wherein the plurality of processing modules comprises:
a first computational module configured to perform a first computational processing,
a second computational module configured to perform a second computational processing,
a first plug-in module configured to perform a first data format conversion, and
a second plug-in module configured to perform a second data format conversion, and
wherein, based on a request from a host device to perform an operation related to the second electronic device on the first data, obtaining the information associated with the second electronic device from the storage processing table, the information indicating that at least one of the second computational processing or second data format conversion is to be performed on the first data, and
wherein the CXL storage controller is further configured to obtain the second data based on the second computational module performing the second computational processing on the first data or the second plug-in module configured to perform the second data format conversion on the first data.

### Claim 19 (depends on 1)

The computational storage device of claim 1, wherein storage controller is further configured to receive the storage processing table from the host device of the first electronic device including the computational storage device.
