IP Library Granted Patent US 12,216,942
Granted Patent B2
US 12,216,942 · App. 18/483,468 · Granted Feb 4, 2025

Controller and control method

Inventors: Yoshihiro Ohba (Kawasaki Kanagawa, JP); Tomoya Sanuki (Yokkaichi Mie, JP); Takeshi Ishihara (Yokohama Kanagawa, JP)
Assignee: KIOXIA CORPORATION
G06F3/0659G06F3/0604G06F3/0634G06F3/0679
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,216,942
App. No.
18/483,468
Granted
Feb 4, 2025
Kind
B2
Abstract

According to one embodiment, a controller includes a first interface, a second interface, a virtual register table, a memory management unit and a calculation processing unit. The first interface receives an I/O command from a host. The second interface transmits and receives first host data to and from a storage. The virtual register table has a virtual address specified by a page number assigned to a page in which data to be used to process a calculation instruction is stored and a page offset, and a data size of the data. The memory management unit stores, into a memory, the copy of the first host data, and updates the virtual register table. The calculation processing unit processes the calculation instruction by referring to the virtual register table.

Claims (61)

1. A controller for controlling a computing storage device that is connectable to a host and includes a storage, the controller comprising:

a first interface configured to receive an I/O command from the host, the I/O command being designating first host data;

a second interface configured to transmit and receive the first host data to and from the storage;

a memory for storing a copy of the first host data designated in the I/O command;

a virtual register table having a virtual address specified by a page number assigned to a page in which data to be used to process a calculation instruction in accordance with a calculation option accompanying the first host data is stored and a page offset, and a data size of the data, the virtual address and the data size being associated with each virtual register number identified based on the calculation option;

a memory management unit configured to store, into the memory, the copy of the first host data designated in the I/O command, and update the virtual register table; and

a calculation processing unit configured to process the calculation instruction using the first host data designated in the I/O command, by referring to the virtual register table.

2. The controller according to claim 1 , further comprising a page table having a flag indicating a storage destination of data and a real address of the storage destination, the flag and the real address being associated with each page number, wherein

the storage includes a first area for storing the first host data, and a second area for temporarily storing the copy of the first host data stored in the memory, and

when a free space in the memory for storing the copy of the first host data designated in the I/O command is insufficient, the memory management unit is configured to store, into the second area, a copy of second host data stored in a third area in the memory by referring to the page table, store the copy of the first host data into the third area, and update the page table.

3. The controller according to claim 1 , wherein

the I/O command includes a read command for reading the first host data from the storage,

the calculation option designates an operation mode of the computing storage device, and

when the designated operation mode is a copy-with-read (CwR) mode, the memory management unit is configured to copy, into the memory, the first host data read from the storage based on the read command, and set a virtual address of a destination of the copying and a data size of the first host data in the virtual register table, the virtual address of the destination and the data size of the first host data being associated with the virtual register number identified based on the calculation option.

4. The controller according to claim 1 , wherein

the I/O command includes a write command for writing the first host data into the storage,

the calculation option designates an operation mode of the computing storage device, and

when the designated operation mode is a copy-with-write (CwW) mode, the memory management unit is configured to copy, into the memory, the first host data to be written into the storage based on the write command, and set a virtual address of a destination of the copying and a data size of the first host data in the virtual register table, the virtual address of the destination and the data size of the first host data being associated with the virtual register number identified based on the calculation option.

5. The controller according to claim 1 , wherein

the I/O command includes a read command for reading the first host data from the storage,

the calculation option designates an operation mode of the computing storage device,

when the designated operation mode is a compute-on-read (CoR) mode, the memory management unit is configured to copy, into the memory, the first host data read from the storage based on the read command, and set a virtual address of a destination of the copying and a data size of the first host data in the virtual register table, the virtual address of the destination and the data size of the first host data being associated with the virtual register number identified based on the calculation option,

the calculation processing unit is configured to process the calculation instruction using the first host data copied into the memory by executing a program that is set beforehand, and

the first interface is configured to transmit a result of the processing to the host.

6. The controller according to claim 1 , wherein

the I/O command includes a write command for writing the first host data into the storage,

the calculation option designates an operation mode of the computing storage device,

when the designated operation mode is a compute-on-write (CoW) mode, the memory management unit is configured to copy, into the memory, the first host data to be written into the storage based on the write command, and set a virtual address of a destination of the copying and a data size of the first host data in the virtual register table, the virtual address of the destination and the data size of the first host data being associated with the virtual register number identified based on the calculation option,

the calculation processing unit is configured to process the calculation instruction using the first host data copied into the memory by executing a program that is set beforehand, and

the second interface is configured to transmit a result of the processing to the storage.

7. The controller according to claim 1 , wherein the calculation instruction includes a secret calculation instruction.

8. The controller according to claim 1 , wherein

a copy of first host data which is not accompanied by the calculation option is not stored into the memory, and

processing of the calculation instruction using the first host data which is not accompanied by the calculation option is not performed.

9. The controller according to claim 1 , wherein

the first interface is connectable to the host, based on an NVMe standard, and

the I/O command is a command conforming to the NVMe standard.

10. The controller according to claim 9 , wherein the calculation option accompanying the first host data is included in metadata attached to the first host data.

11. The controller according to claim 9 , wherein the calculation option accompanying the first host data is designated as second host data different from the first host data.

12. The controller according to claim 11 , wherein

a read command and a write command conforming to the NVMe standard each include a logical address to be used to access the storage,

a logical address space based on the logical address includes a first space for the first host data and a second space for the second host data, and

the first and second host data are distinguished based on the logical addresses included in the read command and the write command.

13. The controller according to claim 1 , wherein

the storage is a nonvolatile memory, and

the controller is connected to the nonvolatile memory, and is configured to control the nonvolatile memory.

14. The controller according to claim 13 , wherein the computing storage device is a solid state drive (SSD).

15. The controller according to claim 1 , wherein the controller is connectable to the host via a network in conformity with an NVMe-oF standard.

16. The controller according to claim 15 , wherein

the computing storage device includes an NVMe-oF target module, and

the controller is disposed inside the NVMe-oF target module.

17. The controller according to claim 1 , further comprising

a state table, wherein

the first interface includes a first queue being configured to store I/O commands received from the host in order of reception, and a second queue being configured to store completion notifications for the I/O commands received from the storage in order of reception,

when the free space in the memory for storing the copy of the first host data is insufficient, the memory management unit is configured to store, into the state table, a command ID assigned to the I/O command designating the first host data and queue information indicating the first queue storing the I/O command or the second queue storing the completion notification for the I/O command, and suspend processing for the first queue or the second queue indicated by the queue information, and

the memory management unit is configured to issue, to the storage, a swapping command for swapping on the second host data stored in the memory, using the command ID stored in the state table.

18. A control method for controlling a computing storage device that is connectable to a host and includes a storage, the control method comprising:

receiving an I/O command from the host, the I/O command being designating first host data;

storing a copy of the first host data designated in the I/O command into a memory, and updating a virtual register table; and

processing a calculation instruction using the first host data designated in the I/O command, by referring to the virtual register table, wherein

the virtual register table has a virtual address represented by a page number assigned to a page in which data to be used to process the calculation instruction in accordance with a calculation option accompanying the first host data is stored and a page offset, and a data size of the data, the virtual address and the data size being associated with each virtual register number identified based on the calculation option.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 12, 2024
From: OHBA, YOSHIHIRO; SANUKI, TOMOYA; ISHIHARA, TAKESHI
To: KIOXIA CORPORATION
Reel/Frame 067088/0963 →
Priority Claims (2)
JP 2022-164005 · Oct 12, 2022 · national
JP 2023-114531 · Jul 12, 2023 · national
Continuity (1)
Related Publication 20240126479A1 · Apr 18, 2024
References Cited (9)
US 11210214B2 · Ogawa · 2021 [cited by examiner]
US 20100257334A1 · Kawakami · 2010 [cited by examiner]
US 20200089430A1 · Kanno · 2020 [cited by examiner]
US 20210150074A1 · Niell et al. · 2021 [cited by applicant]
US 20220107738A1 · Ohba et al. · 2022 [cited by applicant]
US 20220155969A1 · Subramanian et al. · 2022 [cited by applicant]
JP 2022061450A · 2022 [cited by applicant]
Ilaria Chillotti et al., “TFHE: Fast Fully Homomorphic Encryption over the Torus”, 2018, pp. 1-62. [cited by applicant]
Ilaria Chillotti et al., “Programmable Bootstrapping Enables Efficient Homomorphic Inference of Deep Neural Networks”, 2021, pp. 1-14. [cited by applicant]