Patentable/Patents/US-20260099495-A1
US-20260099495-A1

Host Device, Storage Device and System and Method Thereof

PublishedApril 9, 2026
Assigneenot available in USPTO data we have
Technical Abstract

There is provided a host device, a storage device and a system and a method thereof. A B-tree based retrieval method performed by the host device includes acquiring query information from a storage of a storage device based on a B-tree query request for a table; sending the query information to the storage device for storing into a memory of the storage device; sending the B-tree query request to the storage device to initiate a query for the table at the storage device; and receiving a result of the B-tree query request from the storage device.

Patent Claims

Legal claims defining the scope of protection, as filed with the USPTO.

1

4 .-. (canceled)

2

a storage; and acquire query information from the storage of a storage device based on a B-tree query request for a table; send the query information to the storage device for storing into a memory of the storage device; send the B-tree query request to the storage device to initiate a query for the table at the storage device; and receive a result of the B-tree query request from the storage device. a processor configured to: . A host device, comprising:

3

claim 5 . The host device of, wherein a target field of the B-tree query request is a field that is not contained in leaf nodes of a secondary index of the table.

4

claim 6 . The host device of, wherein the query information comprises at least one of all fields of the table and length information thereof, at least one field of the table requested to be queried by the B-tree query request, page number information of root nodes of a primary index and the secondary index of the table, and a size of a B-tree page.

5

claim 5 . The host device of, wherein the at least one processor is further configured to package the B-tree query request and the query information through a protocol to send to the storage device.

6

receiving, from a host device, and storing query information into a memory; receiving a B-tree query request from the host device to initiate a query for a table; acquiring a result of the B-tree query request by using the query information; and sending the result of the B-tree query request to the host device. . A B-tree based retrieval method performed by a storage device, comprising:

7

claim 9 . The B-tree based retrieval method of, wherein a target field of the B-tree query request is a field that is not contained in leaf nodes of a secondary index of the table.

8

claim 10 at least one of all fields of the table and length information thereof, at least one field of the table requested to be queried by the B-tree query request, page number information of root nodes of a primary index and the secondary index of the table, and a size of a B-tree page. . The B-tree based retrieval method of, wherein the query information comprises:

9

claim 11 acquiring a primary key value of a root page of at least one target root node of the table corresponding to the B-tree query request by traversing and retrieving a root page of each root node of the secondary index of the table using the query information; and acquiring a key value of the target field corresponding to the B-tree query request as the result of the B-tree query request by traversing and retrieving a root page of a root node, corresponding to the primary key value, of the primary index of the table using the query information. . The B-tree based retrieval method of, wherein the acquiring the result of the B-tree query request comprises:

10

claim 12 based on all fields of the table and length information thereof and the page number information of root nodes of the secondary index of the table, loading the root page of each root node of the secondary index of the table stored in a storage of the storage device into the memory of the storage device with the size of the B-tree page respectively for retrieval, so as to acquire the primary key value of the root page of the at least one target root node. . The B-tree based retrieval method of, wherein the acquiring the primary key value of the root page of at least one target root node of the table corresponding to the B-tree query request comprises:

11

claim 12 based on all fields of the table and length information thereof and the page number information of root nodes of the primary index of the table, loading the root page of the root node, corresponding to the primary key value, of the primary index of the table stored in the storage of the storage device into the memory of the storage device with the size of the B-tree page respectively for retrieval, so as to acquire the key value of the target field. . The B-tree based retrieval method of, wherein the acquiring the key value of the target field corresponding to the B-tree query request as the result of the B-tree query request comprises:

12

claim 13 sorting the primary key value, and sequentially loading root pages of root nodes corresponding to the sorted primary key value into the memory of the storage device for retrieval. . The B-tree based retrieval method of, further comprising:

13

a storage; a memory; and receive, from a host device, and store query information into the memory; receive a B-tree query request from the host device to initiate a query for a table; acquire a result of the B-tree query request by using the query information; and send the result of the B-tree query request to the host device. a processor configured to: . A storage device comprising:

14

claim 16 . The storage device of, wherein a target field of the B-tree query request is a field that is not contained in leaf nodes of a secondary index of the table.

15

claim 17 at least one of all fields of the table and length information thereof, at least one field of the table requested to be queried by the B-tree query request, page number information of root nodes of a primary index and the secondary index of the table, and a size of a B-tree page. . The storage device of, wherein the query information comprises

16

claim 18 acquire a primary key value of a root page of at least one target root node of the table corresponding to the B-tree query request by traversing and retrieving a root page of each root node of the secondary index of the table using the query information; and acquire a key value of the target field corresponding to the B-tree query request as the result of the B-tree query request by traversing and retrieving a root page of a root node, corresponding to the primary key value, of the primary index of the table using the query information. . The storage device of, wherein the processor is further configured to:

17

claim 19 based on all fields of the table and length information thereof and the page number information of root nodes of the secondary index of the table, loading the root page of each root node of the secondary index of the table stored in a storage of the storage device into the memory of the storage device with the size of the B-tree page respectively for retrieval, so as to acquire the primary key value of the root page of the at least one target root node. . The storage device of, wherein the processor is further configured to:

18

claim 19 based on all fields of the table and length information thereof, and the page number information of root nodes of the primary index of the table, loading the root page of the root node, corresponding to the primary key value, of the primary index of the table stored in the storage of the storage device into the memory of the storage device with the size of the B-tree page respectively for retrieval, so as to acquire the key value of the target field. . The storage device of, wherein the processor is further configured to:

19

claim 20 sort the primary key value, and sequentially load root pages of root nodes corresponding to the sorted primary key value into the memory of the storage device for retrieval. . The storage device of, wherein the processor is further configured to:

20

24 .-. (canceled)

Detailed Description

Complete technical specification and implementation details from the patent document.

This U.S. non-provisional application claims the benefit of priority under 35 U.S.C. 119 from Chinese Patent Application No. 202411411753.1, filed on Oct. 9, 2024 in the Chinese Intellectual Property Office, the entire contents of which are herein incorporated by reference.

The present inventive concepts relate to the fields of B-tree based retrieval, and more particularly, relate to host devices, storage devices and systems and methods thereof.

Recently, when a B-tree based retrieval is performed using, for example, My Structured Query Language (MySQL), if a key is retrieved in a primary index, a page where the key is located and its primary key value may be retrieved by performing an input/output (I/O) operation between a host device and a storage device, and then a complete row of the key may be retrieved, at which time there is no need to perform the I/O operation to obtain an additional column. Here, the B-tree may refer to a self-balancing data structure that stores/retrieves data and is used for searching, insertion, and/or deletion operation. On the other hand, if a key is retrieved in a secondary index, a page where the key is located and its key value may be retrieved. The key value is a pointer pointing to a complete row that actually exists and the key value is usually a primary key value. In this case, any retrieval involving the secondary index must be operated by performing the I/O operation, starting at a root node and navigating through a branch node to the correct leaf node in the secondary index to acquire the primary key value, and then again by performing the I/O operation, navigating from the root node through the branch node in the primary index to the correct leaf node to acquire data.

According to some example embodiments of the present inventive concepts, there is provided a B-tree based retrieval method performed by a host device, including acquiring query information from a storage of a storage device based on a B-tree query request for a table; sending the query information to the storage device for storing into a memory of the storage device; sending the B-tree query request to the storage device to initiate a query for the table at the storage device; and receiving a result of the B-tree query request from the storage device.

A target field of the B-tree query request may be a field that is not contained in leaf nodes of a secondary index of the table.

The query information may include at least one of all fields of the table and length information thereof, at least one field of the table requested to be queried by the B-tree query request, page number information of root nodes of a primary index and the secondary index of the table, and a size of a B-tree page.

The sending the B-tree query request and the query information to the storage device may include packaging the B-tree query request and the query information through a predetermined (or, alternatively, desired or selected) protocol to send to the storage device.

According to some example embodiments of the present inventive concepts, there is provided a host device, including a storage; and a processor configured to acquire query information from the storage of a storage device based on a B-tree query request for a table; send the query information to the storage device for storing into a memory of the storage device; send the B-tree query request to the storage device to initiate a query for the table at the storage device; and receive a result of the B-tree query request from the storage device.

A target field of the B-tree query request may be a field that is not contained in leaf nodes of a secondary index of the table.

The query information may include at least one of all fields of the table and length information thereof, at least one field of the table requested to be queried by the B-tree query request, page number information of root nodes of a primary index and the secondary index of the table, and a size of a B-tree page.

The at least one processor may further be configured to package the B-tree query request and the query information through a predetermined (or, alternatively, desired or selected) protocol to send to the storage device.

According to some example embodiments of the present inventive concepts, there is provided a B-tree based retrieval method performed by a storage device, including receiving, from a host device, and storing query information into a memory; receiving a B-tree query request from the host device to initiate a query for a table; acquiring a result of the B-tree query request by using the query information; and sending the result of the B-tree query request to the host device.

A target field of the B-tree query request may be a field that is not contained in leaf nodes of a secondary index of the table.

The query information may include at least one of all fields of the table and length information thereof, at least one field of the table requested to be queried by the B-tree query request, page number information of root nodes of a primary index and the secondary index of the table, and a size of a B-tree page.

The acquiring the result of the B-tree query request may include acquiring a primary key value of a root page of at least one target root node of the table corresponding to the B-tree query request by traversing and retrieving a root page of each root node of the secondary index of the table using the query information; and acquiring a key value of the target field corresponding to the B-tree query request as the result of the B-tree query request by traversing and retrieving a root page of a root node, corresponding to the primary key value, of the primary index of the table using the query information.

The acquiring the primary key value of the root page of at least one target root node of the table corresponding to the B-tree query request may include based on all fields of the table and length information thereof and the page number information of root nodes of the secondary index of the table, loading the root page of each root node of the secondary index of the table stored in a storage of the storage device into the memory of the storage device with the size of the B-tree page respectively for retrieval, so as to acquire the primary key value of the root page of the at least one target root node.

The acquiring the key value of the target field corresponding to the B-tree query request as the result of the B-tree query request may include based on all fields of the table and length information thereof and the page number information of root nodes of the primary index of the table, loading the root page of the root node corresponding to the primary key value of the primary index of the table stored in the storage of the storage device into the memory of the storage device with the size of the B-tree page respectively for retrieval, so as to acquire the key value of the target field.

The B-tree based retrieval method may further include sorting the primary key value, and sequentially loading root pages of root nodes corresponding to the sorted primary key value into the memory of the storage device for retrieval.

According to some example embodiments of the present inventive concepts, there is provided a storage device, including a storage; a memory; and a processor configured to receive, from a host device, and store query information into the memory; receive a B-tree query request from the host device to initiate a query for a table; acquire a result of the B-tree query request by using the query information; and send the result of the B-tree query request to the host device.

A target field of the B-tree query request may be a field that is not contained in leaf nodes of a secondary index of the table.

The query information may include at least one of all fields of the table and length information thereof, at least one field of the table requested to be queried by the B-tree query request, page number information of root nodes of a primary index and the secondary index of the table, and a size of a B-tree page.

The processor may further be configured to acquire a primary key value of a root page of at least one target root node of the table corresponding to the B-tree query request by traversing and retrieving a root page of each root node of the secondary index of the table using the query information; and acquire a key value of the target field corresponding to the B-tree query request as the result of the B-tree query request by traversing and retrieving a root page of a root node, corresponding to the primary key value, of the primary index of the table using the query information.

The processor may further be configured to, based on all fields of the table and length information thereof and the page number information of root nodes of the secondary index of the table, load the root page of each root node of the secondary index of the table stored in a storage of the storage device into the memory of the storage device with the size of the B-tree page respectively for retrieval, so as to acquire the primary key value of the root page of the at least one target root node.

The processor may further be configured to, based on all fields of the table and length information thereof and the page number information of root nodes of the primary index of the table, load the root page of the root node corresponding to the primary key value of the primary index of the table stored in the storage of the storage device into the memory of the storage device with the size of the B-tree page respectively for retrieval, so as to acquire the key value of the target field.

The processor may further be configured to sort the primary key value, and sequentially load root pages of root nodes corresponding to the sorted primary key value into the memory of the storage device for retrieval.

According to some example embodiments of the present inventive concepts, there is provided a system for performing a B-tree storage application retrieval including the previously mentioned host device and the previously mentioned storage device.

According to some example embodiments of the present inventive concepts, there is provided a computer-readable medium having stored thereon computer executable instructions that, in response to being executed, executes the previously mentioned method.

According to some example embodiments of the present inventive concepts, by retrieving target data inside a storage device, a large amount of data migration between a host device and the storage device may be avoided, so that an amount of data movement between the host device and the storage device may be reduced, a resource utilization rate and a bandwidth consumption of the host device may be reduced and a bandwidth utilization rate may be improved, an I/O bandwidth in the storage device may be improved, a delay of retrieving the target data may be reduced, and retrieval performance may be improved.

Hereinafter, various example embodiments of the present inventive concepts are described with reference to the accompanying drawings, in which the same reference numerals are used to depict the same or similar elements, features, and structures. However, the present inventive concepts are not intended to be limited by the various example embodiments described herein to a specific embodiment and it is intended that the present inventive concepts cover all modifications, equivalents, and/or alternatives of the present inventive concepts, provided they come within the scope of the appended claims and their equivalents. The terms and words used in the following description and claims are not limited to their dictionary meanings, but, are merely used to enable a clear and consistent understanding of the present inventive concepts. Accordingly, it should be apparent to those skilled in the art that the following descriptions of various example embodiments of the present inventive concepts are provided for illustration purpose only and not for the purpose of limiting the present inventive concepts as defined by the appended claims and their equivalents.

It is to be understood that the singular forms include plural forms, unless the context clearly indicates otherwise. The terms “include”, “contain”, and “have”, used herein, indicate functions, operations, or the existence of elements of the inventive concepts, but do not exclude other functions, operations, or elements.

For example, the expressions “A or B”, or “at least one of A and/or B” may indicate A and B, and A or B. For example, the expression “A or B” or “at least one of A and/or B” may indicate (1) A, (2) B, or (3) both A and B.

In various example embodiments of the present inventive concepts, it is intended that when a component (for example, a first component) is referred to as being “coupled” or “connected” with/to another component (for example, a second component), the component may be directly connected to the another component or may be connected through another component (for example, a third component). In contrast, when a component (for example, a first component) is referred to as being “directly coupled” or “directly connected” with/to another component (for example, a second component), another component (for example, a third component) does not exist between the component and the another component.

The expression “configured to”, used in describing various example embodiments of the present inventive concepts, may be used interchangeably with expressions such as “suitable for”, “having the capacity to . . . ”, “designed to”, “adapted to”, “made to”, and “capable of”, for example, according to the situation. The term “configured to” may not necessarily indicate “specifically designed to” in terms of hardware. Instead, the expression “a device configured to . . . ” in some situations may indicate that the device and another device or part are “capable of . . . ”. For example, the expression “a processor configured to perform A, B, and C” may indicate a dedicated processor (for example, an embedded processor) for performing a corresponding operation or a general purpose processor (for example, a central processing unit (CPU) or an application processor (AP)) for performing corresponding operations by executing at least one software program stored in a memory device.

The terms used herein are to describe certain example embodiments of the present inventive concepts, but are not intended to limit the scope of other embodiments. Unless otherwise indicated herein, all terms used herein, including technical or scientific terms, may have the same meanings that are generally understood by a person skilled in the art. In general, terms defined in a dictionary should be considered to have the same meanings as the contextual meanings in the related art, and, unless clearly defined herein, should not be understood differently or as having an excessively formal meaning. In any case, even terms defined in the present inventive concepts are not intended to be interpreted as excluding the example embodiments of the present inventive concepts.

1 FIG. 1 FIG. 6 is a schematic diagram illustrating a B-tree retrieval. As illustrated in, in the case where a height of a B-tree is three layers, if an advance cache is not considered, a host device interacts with a storage devicetimes. In addition, most of the I/O operations between the host device and the storage device are random IOs, resulting in high read overhead. The above phenomenon will cause a large amount of invalid data to move between the host device and the storage device, consume bandwidth resources, and affect performance at the same time.

2 FIG. is a flowchart illustrating a B-tree based retrieval method performed by a host device according to some example embodiments of the present inventive concepts.

2 FIG. 210 Referring to, in operation S, query information may be acquired from a storage of a storage device based on a B-tree query request for a table. Only as an example rather than a limitation, a target field of the B-tree query request may be a field that is not contained in leaf nodes of a secondary index of the table. In addition, the query information may include at least one of all fields of the table and length information thereof, at least one field of the table requested to be queried by the B-tree query request, page number information of root nodes of a primary index and the secondary index of the table, and a size of a B-tree page. According to some example embodiments of the present inventive concepts, the B-tree query request for the table may be acquired by a database application (e.g., a B-tree storage application) of the host device.

210 According to some example embodiments of the present inventive concepts, in operation S, the B-tree query request for the table may be an SQL statement, but is not limited thereto, and the query information may be acquired based on “Select” and “Where” in the SQL statement. Here, the page number information of the root nodes of the primary index and the secondary index of the table may be acquired by querying database dictionary information (e.g., Logical Block Address (LBA) information) from the storage of the storage device based on the SQL statement. In addition, the size of the B-tree page may be acquired from an InnoDB module in the database application of the host device, and the size of the B-tree page may be a default value (e.g., 16K, etc.) in the InnoDB module.

220 In operation S, the query information may be sent to the storage device for storing into a memory of the storage device. According to some example embodiments of the present inventive concepts, the storage device may firstly be discovered, the memory is requested to the storage device, the memory of the storage device is mapped to the host device, and the query information is then sent to the storage device to store the query information into the memory of the storage device.

230 In operation S, the B-tree query request may be sent to the storage device to initiate a query for the table at the storage device.

220 230 230 According to some example embodiments of the present inventive concepts, the sending operations in operation Sand operation Smay package the B-tree query request and the query information through a predetermined (or, alternatively, desired or selected) protocol to send to the storage device. Only as an example rather than a limitation, the predetermined (or, alternatively, desired or selected) protocol may be the Storage Networking Industry Association (SNIA) Computing Storage (CS) Application Programming Interface (API) or Open Computing Language (OpenCL). In addition, when the storage device is a Non-Volatile Memory express (NVMe) device, packaged information may further be sent to the storage device through an NVMe interface protocol by an NVMe device driver (e.g., an NVMe TP4091 device driver, etc.). When the storage device is an NVMe device, before packaging the B-tree query request in operation S, the B-tree query request may firstly be transformed into an NVMe computing command (e.g., a storage device configuration command, a B-tree traversal command, etc.), and then be packaged and sent.

240 In operation S, a result of the B-tree query request may be received from the storage device.

3 FIG. is a flowchart illustrating a B-tree based retrieval method performed by a storage device according to some example embodiments of the present inventive concepts.

3 FIG. 310 Referring to, in operation S, the query information may be received from the host device and be stored into the memory. Here, only as an example rather than a limitation, a target field of the B-tree query request may be a field that is not contained in leaf nodes of a secondary index of the table. In addition, the query information may include all fields of the table and length information thereof, at least one field of the table requested to be queried by the B-tree query request, page number information of root nodes of the primary index and the secondary index of the table, and a size of a B-tree page. According to some example embodiments of the present inventive concepts, the query information may be stored in a database configuration module in the memory.

320 In operation S, a B-tree query request may be received from the host device to initiate a query for a table. According to some example embodiments of the present inventive concepts, the processor included in the storage device may be a Computational Storage Engine (CSE), the CSE may include a Computational Storage Engine Entity (CSEE), and the CSEE may select a Computational Storage Function (CSF) for performing the following operations from at least one CSF included therein.

330 330 In operation S, a result of the B-tree query request may be acquired by using the query information. According to some example embodiments of the present inventive concepts, the acquiring the result of the B-tree query request in operation Smay further include acquiring a primary key value of a root page of at least one target root node of the table corresponding to the B-tree query request by traversing and retrieving a root page of each root node of the secondary index of the table using the query information; and acquiring a key value of the target field corresponding to the B-tree query request as the result of the B-tree query request by traversing and retrieving a root page of a root node, corresponding to the primary key value, of the primary index of the table using the query information. That is to say, the above operations traverse the secondary index and the primary index to acquire the key value of the target field, and may repeatedly load the root pages of the root nodes into the memory of the storage device for retrieval.

According to some example embodiments of the present inventive concepts, more specifically, the acquiring the primary key value of the root page of at least one target root node of the table corresponding to the B-tree query request may include based on all fields of the table and length information thereof and the page number information of root nodes of the secondary index of the table, loading the root page of each root node of the secondary index of the table stored in a storage of the storage device into the memory of the storage device with the size of the B-tree page respectively for retrieval, so as to acquire the primary key value of the root page of the at least one target root node.

According to some example embodiments of the present inventive concepts, more specifically, the acquiring the key value of the target field corresponding to the B-tree query request as the result of the B-tree query request may include based on all fields of the table and length information thereof and the page number information of root nodes of the primary index of the table, loading the root page of the root node, corresponding to the primary key value, of the primary index of the table stored in the storage of the storage device into the memory of the storage device with the size of the B-tree page respectively for retrieval, so as to acquire the key value of the target field.

According to some example embodiments of the present inventive concepts, the next root node to be loaded may be determined based on the key value, and the page number information of the next root node may be acquired. In addition, according to some example embodiments of the present inventive concepts, the key value of the target field as the result of the B-tree query request may be stored in the memory of the storage device.

330 According to some example embodiments of the present inventive concepts, in the above specific operations of operation S, based on the page number information of root nodes of the secondary index of the table and/or the page number information of root nodes of the primary index of the table, a destination address and a source address thereof in the storage of the storage device may be acquired, a Direct Memory Access (DMA) negotiation with a storage controller included in the storage device may be initiated and a DMA data transmission channel between the storage and the memory of the storage device may be established to load the corresponding root pages into the memory of the storage device. In addition, in the above retrieval process, comparison and retrieval of key values may be implemented through a comparator of the CSF. For example, an input of the comparator may be a key value A and a key value B for comparison, and an output may be A_greater_B, i.e. if A>B, it is a high level, and otherwise, it is a low level; A_equal_B, i.e. if A=B, it is a high level, and otherwise, it is a low level; A_less_B, i.e. if A<B, it is a high level, and otherwise, it is a low level.

Alternatively, according to some example embodiments of the present inventive concepts, after acquiring the primary key value of the root page of the at least one target root node, the primary key value may be sorted, and root pages of root nodes corresponding to the sorted primary key value may be sequentially loaded into the memory of the storage device for retrieval. Only as an example rather than a limitation, the primary key value may be sorted according to a key value size. Sorting the primary key value may optimize retrieval performance and reduce retrieval time.

340 In operation S, the result of the B-tree query request may be sent to the host device. According to some example embodiments of the present inventive concepts, similar to sending the query information and the B-tree query request to the storage device, the result of the B-tree query request may be packaged through a predetermined (or, alternatively, desired or selected) protocol to be sent to the host device, which will not be described here.

In addition, according to some example embodiments of the present invention concepts, before sending the result of the B-tree query request to the host device, interrupt information may be sent to the host device to indicate that the result of the B-tree query request has been retrieved, the result of the B-tree query request may then be acquired from the memory by a query server module in the host device, and the result may be returned to the database application of the host device.

In addition, according to some example embodiments of the present inventive concepts, the storage device may further send the query information to the host device.

4 FIG. 400 is a block diagram illustrating a host deviceaccording to some example embodiments of the present inventive concepts.

4 FIG. 400 410 420 Referring to, the host deviceaccording to some example embodiments of the present inventive concepts may include a storageand a processor.

420 The processormay be configured to acquire query information from the storage of a storage device based on a B-tree query request for a table; send the query information to the storage device for storing into a memory of the storage device; send the B-tree query request to the storage device to initiate a query for the table at the storage device; and receive a result of the B-tree query request from the storage device.

Only as an example rather than a limitation, a target field of the B-tree query request may be a field that is not contained in leaf nodes of a secondary index of the table. In addition, the query information may include at least one of all fields of the table and length information thereof, at least one field of the table requested to be queried by the B-tree query request, page number information of root nodes of a primary index and the secondary index of the table, and a size of a B-tree page.

420 According to some example embodiments of the present inventive concepts, the processormay further be configured to package the B-tree query request and the query information through a predetermined (or, alternatively, desired or selected) protocol to send to the storage device.

420 420 According to some example embodiments of the present inventive concepts, the processormay include hardware or hardware circuitry having logic circuitry; a hardware/software combination, for example, a processor executing software and/or firmware; or a combination thereof. For example, more specifically, the processormay include, but is not limited to, a central processing unit (CPU), an arithmetic logic unit (ALU), a digital signal processor, a microcomputer, a field programmable gate array (FPGA), a system on a chip (SoC), a programmable logic unit, a microprocessor, an application specific integrated circuit (ASIC), etc.

400 In addition to the above components, the host deviceaccording to some example embodiments of the present inventive concepts may further include an interface module for sending/receiving data, etc. for implementing corresponding functions, which will not be described here.

5 FIG. 500 is a block diagram illustrating a storage deviceaccording to some example embodiments of the present inventive concepts.

5 FIG. 500 510 520 530 Referring to, the storage deviceaccording to some example embodiments of the present inventive concepts may include a storage, a memoryand a processor.

530 The processormay be configured to receive, from a host device, and store query information into the memory; receive a B-tree query request from the host device to initiate a query for a table; acquire a result of the B-tree query request by using the query information; and send the result of the B-tree query request to the host device.

Only as an example rather than a limitation, a target field of the B-tree query request may be a field that is not contained in leaf nodes of a secondary index of the table. In addition, the query information may include at least one of all fields of the table and length information thereof, at least one field of the table requested to be queried by the B-tree query request, page number information of root nodes of a primary index and the secondary index of the table, and a size of a B-tree page.

530 According to some example embodiments of the present inventive concepts, the processormay further be configured to acquire a primary key value of a root page of at least one target root node of the table corresponding to the B-tree query request by traversing and retrieving a root page of each root node of the secondary index of the table using the query information; and acquire a key value of the target field corresponding to the B-tree query request as the result of the B-tree query request by traversing and retrieving a root page of a root node, corresponding to the primary key value, of the primary index of the table using the query information.

According to some example embodiments of the present inventive concepts, more specifically, the processor may further be configured to, based on all fields of the table and length information thereof and the page number information of root nodes of the secondary index of the table, load the root page of each root node of the secondary index of the table stored in a storage of the storage device into the memory of the storage device with the size of the B-tree page respectively for retrieval, so as to acquire the primary key value of the root page of the at least one target root node.

According to some example embodiments of the present inventive concepts, more specifically, the processor may further be configured to, based on all fields of the table and length information thereof, and the page number information of root nodes of the primary index of the table, load the root page of the root node, corresponding to the primary key value, of the primary index of the table stored in the storage of the storage device into the memory of the storage device with the size of the B-tree page respectively for retrieval, so as to acquire the key value of the target field.

530 According to some example embodiments of the present inventive concepts, the processormay further be configured to sort the primary key value, and sequentially load root pages of root nodes corresponding to the sorted primary key value into the memory of the storage device for retrieval.

500 In addition to the above components, the storage deviceaccording to some example embodiments of the present inventive concepts may further include an interface module for sending/receiving data, etc. for implementing corresponding functions, which will not be described here.

530 530 According to some example embodiments of the present inventive concepts, the processormay include hardware or hardware circuitry having logic circuitry; a hardware/software combination, for example, a processor executing software and/or firmware; or a combination thereof. For example, more specifically, the processormay include, but is not limited to, a central processing unit (CPU), an arithmetic logic unit (ALU), a digital signal processor, a microcomputer, a field programmable gate array (FPGA), a system on a chip (SoC), a programmable logic unit, a microprocessor, an application specific integrated circuit (ASIC), etc.

6 FIG. 600 is a block diagram illustrating a systemaccording to some example embodiments of the present inventive concepts.

6 FIG. 4 FIG. 5 FIG. 600 610 620 610 400 620 500 Referring to, the systemaccording to some example embodiments of the present inventive concepts may include a host deviceand a storage device. The host devicemay be the same or similar to the host deviceillustrated in, and the storage devicemay be the same or similar to the storage deviceillustrated in, which will not be described here.

7 FIG. 1000 is a schematic diagram illustrating a systemto which a storage device is applied according to some example embodiments of the present inventive concepts.

1000 1000 7 FIG. 7 FIG. The systemofmay basically be a mobile system, such as a portable communication terminal (e.g., a mobile phone), a smartphone, a tablet personal computer (PC), a wearable device, a healthcare device, or an Internet of things (IOT) device. However, the systemofis not necessarily limited to the mobile system and may be a PC, a laptop computer, a server, a media player, or an automotive device (e.g., a navigation device).

7 FIG. 1000 1100 1200 1200 1300 1300 1000 1410 1420 1430 1440 1450 1460 1470 1480 a b a b Referring to, the systemmay include a main processor, memories (e.g.,and), and storage devices (e.g.,and). In addition, the systemmay include at least one of an image capturing device, a user input device, a sensor, a communication device, a display, a speaker, a power supplying device, and a connecting interface.

1100 1000 1000 1100 The main processormay control all operations of the system, more specifically, operations of other components included in the system. The main processormay be implemented as a general-purpose processor, a dedicated processor, or an application processor.

1100 1110 1120 1200 1200 1300 1300 1100 1130 1130 1100 a b a b The main processormay include at least one CPU coreand further include a controllerconfigured to control the memoriesandand/or the storage devicesand. In some example embodiments, the main processormay further include an accelerator, which is a dedicated circuit for a high-speed data operation, such as an artificial intelligence (AI) data operation. The acceleratormay include a graphics processing unit (GPU), a neural processing unit (NPU) and/or a data processing unit (DPU) and be implemented as a chip that is physically separate from the other components of the main processor.

1200 1200 1000 1200 1200 1200 1200 1200 1200 1100 a b a b a b a b The memoriesandmay be used as main memory devices of the system. Although each of the memoriesandmay include a volatile memory, such as static random access memory (SRAM) and/or dynamic RAM (DRAM), each of the memoriesandmay include non-volatile memory, such as a flash memory, phase-change RAM (PRAM) and/or resistive RAM (RRAM). The memoriesandmay be implemented in the same package as the main processor.

1300 1300 1200 1200 1300 1300 1310 1310 1320 1320 1310 1310 1320 1320 1320 1320 a b a b a b a b a b a b a b a b The storage devicesandmay serve as non-volatile storage devices configured to store data regardless of whether power is supplied thereto, and have larger storage capacity than the memoriesand. The storage devicesandmay respectively include storage controllers (STRG CTRL)andand NVM (Non-Volatile Memory)sandconfigured to store data via the control of the storage controllersand. Although the NVMsandmay include flash memories having a two-dimensional (2D) structure or a three-dimensional (3D) V-NAND structure, the NVMsandmay include other types of NVMs, such as PRAM and/or RRAM.

1300 1300 1100 1000 1100 1300 1300 100 1480 1300 1300 a b a b a b The storage devicesandmay be physically separated from the main processorand included in the systemor implemented in the same package as the main processor. In addition, the storage devicesandmay have types of solid-state devices (SSDs) or memory cards and be removably combined with other components of the systemthrough an interface, such as the connecting interfacethat will be described below. The storage devicesandmay be devices to which a standard protocol, such as a universal flash storage (UFS), an embedded multi-media card (eMMC), or a non-volatile memory express (NVMe), is applied, without being limited thereto.

1410 1410 The image capturing devicemay capture still images or moving images. The image capturing devicemay include a camera, a camcorder, and/or a webcam.

1420 1000 The user input devicemay receive various types of data input by a user of the systemand include a touch pad, a keypad, a keyboard, a mouse, and/or a microphone.

1430 1000 1430 The sensormay detect various types of physical quantities, which may be obtained from the outside of the system, and convert the detected physical quantities into electric signals. The sensormay include a temperature sensor, a pressure sensor, an illuminance sensor, a position sensor, an acceleration sensor, a biosensor, and/or a gyroscope sensor.

1440 1000 1440 The communication devicemay transmit and receive signals between other devices outside the systemaccording to various communication protocols. The communication devicemay include an antenna, a transceiver, and/or a modem.

1450 1460 1000 The displayand the speakermay serve as output devices configured to respectively output visual information and auditory information to the user of the system.

1470 1000 1000 The power supplying devicemay appropriately convert power supplied from a battery (not shown) embedded in the systemand/or an external power source, and supply the converted power to each of components of the system.

1480 1000 1000 1000 1480 The connecting interfacemay provide connection between the systemand an external device, which is connected to the systemand capable of transmitting and receiving data to and from the system. The connecting interfacemay be implemented by using various interface schemes, such as advanced technology attachment (ATA), serial ATA (SATA), external SATA (e-SATA), small computer small interface (SCSI), serial attached SCSI (SAS), peripheral component interconnection (PCI), PCI express (PCIe), NVMe, IEEE 1394, a universal serial bus (USB) interface, a secure digital (SD) card interface, a multi-media card (MMC) interface, an eMMC interface, a UFS interface, an embedded UFS (eUFS) interface, and a compact flash (CF) card interface.

8 FIG. 10 is a block diagram of a host storage systemaccording to some example embodiments of the present inventive concepts.

10 100 200 200 210 220 100 110 120 120 200 200 The host storage systemmay include a hostand a storage device. Further, the storage devicemay include a storage controllerand an NVM. According to some example embodiments of the present inventive concepts, the hostmay include a host controllerand a host memory. The host memorymay serve as a buffer memory configured to temporarily store data to be transmitted to the storage deviceor data received from the storage device.

200 100 200 200 200 200 200 100 200 The storage devicemay include storage media configured to store data in response to requests from the host. As an example, the storage devicemay include at least one of an SSD, an embedded memory, and a removable external memory. When the storage deviceis an SSD, the storage devicemay be a device that conforms to an NVMe standard. When the storage deviceis an embedded memory or an external memory, the storage devicemay be a device that conforms to a UFS standard or an eMMC standard. Each of the hostand the storage devicemay generate a packet according to an adopted standard protocol and transmit the packet.

220 200 200 200 When the NVMof the storage deviceincludes a flash memory, the flash memory may include a 2D NAND memory array or a 3D (or vertical) NAND (VNAND) memory array. As another example, the storage devicemay include various other kinds of NVMs. For example, the storage devicemay include magnetic RAM (MRAM), spin-transfer torque MRAM, conductive bridging RAM (CBRAM), ferroelectric RAM (FRAM), PRAM, RRAM, and various other kinds of memories.

110 120 110 120 110 120 According to an embodiment, the host controllerand the host memorymay be implemented as separate semiconductor chips. Alternatively, in some embodiments, the host controllerand the host memorymay be integrated in the same semiconductor chip. As an example, the host controllermay be any one of a plurality of modules included in an application processor (AP). The AP may be implemented as a System on Chip (SoC). Further, the host memorymay be an embedded memory included in the AP or an NVM or memory module located outside the AP.

110 120 220 220 The host controllermay manage an operation of storing data (e.g., write data) of a buffer region of the host memoryin the NVMor an operation of storing data (e.g., read data) of the NVMin the buffer region.

210 211 212 213 210 214 215 216 217 218 210 214 213 214 220 The storage controllermay include a host interface, a memory interface, and a CPU. Further, the storage controllersmay further include a flash translation layer (FTL), a packet manager, a buffer memory, an error correction code (ECC) engine, and an advanced encryption standard (AES) engine. The storage controllersmay further include a working memory (not shown) in which the FTLis loaded. The CPUmay execute the FTLto control data write and read operations on the NVM.

211 100 100 211 220 211 100 220 212 220 220 220 212 The host interfacemay transmit and receive packets to and from the host. A packet transmitted from the hostto the host interfacemay include a command or data to be written to the NVM. A packet transmitted from the host interfaceto the hostmay include a response to the command or data read from the NVM. The memory interfacemay transmit data to be written to the NVMto the NVMor receive data read from the NVM. The memory interfacemay be configured to comply with a standard protocol, such as Toggle or open NAND flash interface (ONFI).

214 100 220 220 220 The FTLmay perform various functions, such as an address mapping operation, a wear-leveling operation, and a garbage collection operation. The address mapping operation may be an operation of converting a logical address received from the hostinto a physical address used to actually store data in the NVM. The wear-leveling operation may be a technique for preventing excessive deterioration of a specific block by allowing blocks of the NVMto be uniformly used. As an example, the wear-leveling operation may be implemented using a firmware technique that balances erase counts of physical blocks. The garbage collection operation may be a technique for ensuring usable capacity in the NVMby erasing an existing block after copying valid data of the existing block to a new block.

215 100 100 216 220 220 216 210 216 210 The packet managermay generate a packet according to a protocol of an interface, which consents to the host, or parse various types of information from the packet received from the host. In addition, the buffer memorymay temporarily store data to be written to the NVMor data to be read from the NVM. Although the buffer memorymay be a component included in the storage controllers, the buffer memorymay be outside the storage controllers.

217 220 217 220 220 220 217 220 The ECC enginemay perform error detection and correction operations on read data read from the NVM. More specifically, the ECC enginemay generate parity bits for write data to be written to the NVM, and the generated parity bits may be stored in the NVMtogether with write data. During the reading of data from the NVM, the ECC enginemay correct an error in the read data by using the parity bits read from the NVMalong with the read data, and output error-corrected read data.

218 210 The AES enginemay perform at least one of an encryption operation and a decryption operation on data input to the storage controllersby using a symmetric-key algorithm.

9 FIG. 3000 is a diagram illustrating a data centerto which a storage device is applied according to some example embodiments of the present inventive concepts.

9 FIG. 3000 3000 3000 3100 3100 3200 3200 3100 3100 3200 3200 3100 3100 3200 3200 n m n m n m. Referring to, the data centermay be a facility that collects various types of pieces of data and provides services and be referred to as a data storage center. The data centermay be a system for operating a search engine and a database, and may be a computing system used by companies, such as banks, or government agencies. The data centermay include application serverstoand storage serversto. The number of application serverstoand the number of storage serverstomay be variously selected according to example embodiments. The number of application serverstomay be different from the number of storage serversto

3100 3200 3110 3210 3120 3220 3200 3210 3200 3220 3220 3220 3210 3220 3200 3210 3220 3210 3220 3210 3200 3100 3100 3150 3200 3250 3250 3200 The application serveror the storage servermay include at least one of processorsandand memoriesand. The storage serverwill now be described as an example. The processormay control all operations of the storage server, access the memory, and execute instructions and/or data loaded in the memory. The memorymay be a double-data-rate synchronous DRAM (DDR SDRAM), a high-bandwidth memory (HBM), a hybrid memory cube (HMC), a dual in-line memory module (DIMM), Optane DIMM, and/or a non-volatile DIMM (NVMDIMM). In some example embodiments, the numbers of processorsand memoriesincluded in the storage servermay be variously selected. In some example embodiments, the processorand the memorymay provide a processor-memory pair. In some example embodiments, the number of processorsmay be different from the number of memories. The processormay include a single-core processor or a multi-core processor. The above description of the storage servermay be similarly applied to the application server. In some example embodiments, the application servermay not include a storage device. The storage servermay include at least one storage device. The number of storage devicesincluded in the storage servermay be variously selected according to some example embodiments.

3100 3100 3200 3200 3300 3300 3200 3200 3300 n m m The application serverstomay communicate with the storage serverstothrough a network. The networkmay be implemented by using a fiber channel (FC) or Ethernet. In this case, the FC may be a medium used for relatively high-speed data transmission and use an optical switch with high performance and high availability. The storage serverstomay be provided as file storages, block storages, or object storages according to an access method of the network.

3300 3300 3300 In an embodiment, the networkmay be a storage-dedicated network, such as a storage area network (SAN). For example, the SAN may be an FC-SAN, which uses an FC network and is implemented according to an FC protocol (FCP). As another example, the SAN may be an Internet protocol (IP)-SAN, which uses a transmission control protocol (TCP)/IP network and is implemented according to a SCSI over TCP/IP or Internet SCSI (iSCSI) protocol. In another embodiment, the networkmay be a general network, such as a TCP/IP network. For example, the networkmay be implemented according to a protocol, such as FC over Ethernet (FCoE), network attached storage (NAS), and NVMe over Fabrics (NVMe-oF).

3100 3200 3100 3100 3200 3200 n m. Hereinafter, the application serverand the storage serverwill mainly be described. A description of the application servermay be applied to another application server, and a description of the storage servermay be applied to another storage server

3100 3200 3200 3300 3100 3200 3200 3300 3100 m m The application servermay store data, which is requested by a user or a client to be stored, in one of the storage serverstothrough the network. Also, the application servermay obtain data, which is requested by the user or the client to be read, from one of the storage serverstothrough the network. For example, the application servermay be implemented as a web server or a database management system (DBMS).

3100 3120 3150 3100 3300 3100 3220 3220 3250 3250 3200 3200 3300 3100 3100 3100 3200 3200 3100 3100 3100 3200 3200 3250 3250 3200 3200 3120 3120 3100 3100 3220 3220 3200 3200 3300 n n n m m m n m n m m m n n m m The application servermay access a memoryor a storage device, which is included in another application server, through the network. Alternatively, the application servermay access memoriestoor storage devicesto, which are included in the storage serversto, through the network. Thus, the application servermay perform various operations on data stored in application serverstoand/or the storage serversto. For example, the application servermay execute an instruction for moving or copying data between the application serverstoand/or the storage serversto. In this case, the data may be moved from the storage devicestoof the storage serverstoto the memoriestoof the application serverstodirectly or through the memoriestoof the storage serversto. The data moved through the networkmay be data encrypted for security or privacy.

3200 3254 3210 3251 3240 3251 3254 3250 3254 The storage serverwill now be described as an example. An interfacemay provide physical connection between a processorand a controllerand a physical connection between a network interface card (NIC)and the controller. For example, the interfacemay be implemented using a direct attached storage (DAS) scheme in which the storage deviceis directly connected with a dedicated cable. For example, the interfacemay be implemented by using various interface schemes, such as ATA, SATA, e-SATA, an SCSI, SAS, PCI, PCIe, NVMe, IEEE 1394, a USB interface, an SD card interface, an MMC interface, an eMMC interface, a UFS interface, an eUFS interface, and/or a CF card interface.

3200 3230 3240 3230 3210 3250 3240 3250 3210 The storage servermay further include a switchand the NIC (Network InterConnect). The switchmay selectively connect the processorto the storage deviceor selectively connect the NICto the storage devicevia the control of the processor.

3240 3240 3300 3240 3210 3230 3254 3240 3210 3230 3250 In an embodiment, the NICmay include a network interface card and a network adaptor. The NICmay be connected to the networkby a wired interface, a wireless interface, a Bluetooth interface, or an optical interface. The NICmay include an internal memory, a digital signal processor (DSP), and a host bus interface and be connected to the processorand/or the switchthrough the host bus interface. The host bus interface may be implemented as one of the above-described examples of the interface. In an embodiment, the NICmay be integrated with at least one of the processor, the switch, and the storage device.

3200 3200 3100 3100 3150 3150 3250 3250 3120 3120 3220 3220 m n n m n m In the storage serverstoor the application serversto, a processor may transmit a command to storage devicestoandtoor the memoriestoandtoand program or read data. In this case, the data may be data of which an error is corrected by an ECC engine. The data may be data on which a data bus inversion (DBI) operation or a data masking (DM) operation is performed, and may include cyclic redundancy code (CRC) information. The data may be data encrypted for security or privacy.

3150 3150 3250 3250 3252 3252 3252 3252 n m m m Storage devicestoandtomay transmit a control signal and a command/address signal to NAND flash memory devicestoin response to a read command received from the processor. Thus, when data is read from the NAND flash memory devicesto, a read enable (RE) signal may be input as a data output control signal, and thus, the data may be output to a DQ bus. A data strobe signal DQS may be generated using the RE signal. The command and the address signal may be latched in a page buffer depending on a rising edge or falling edge of a write enable (WE) signal.

3251 3250 3251 3251 3252 3252 3210 3200 3210 3200 3110 3110 3100 3100 3253 3252 3252 3253 3251 3252 3250 m m n n The controllermay control all operations of the storage device. In an embodiment, the controllermay include SRAM. The controllermay write data to the NAND flash memory devicein response to a write command or read data from the NAND flash memory devicein response to a read command. For example, the write command and/or the read command may be provided from the processorof the storage server, the processorof another storage server, or the processorsandof the application serversand. DRAMmay temporarily store (or buffer) data to be written to the NAND flash memory deviceor data read from the NAND flash memory device. Also, the DRAMmay store metadata. Here, the metadata may be user data or data generated by the controllerto manage the NAND flash memory device. The storage devicemay include a secure element (SE) for security or privacy.

According to some example embodiments of the present inventive concepts, there is provided a computer-readable medium having stored thereon computer executable instructions that, when executed, execute the previously mentioned method. Examples of the computer-readable medium here may include Read Only Memory (ROM), Random Access Programmable Read Only Memory (PROM), Electrically Erasable Programmable Read Only Memory (EEPROM), Random Access Memory (RAM), Dynamic Random Access Memory (DRAM), Static Random Access Memory (SRAM), Flash, Non-Volatile Memory, CD-ROM, CD-R, CD+R, CD-RW, CD+RW, DVD-ROM, DVD-R, DVD+R, DVD-RW, DVD+RW, DVD-RAM, BD-ROM, BD-R, BD-R LTH, BD-RE, Blu-ray or optical disc storage, hard disk drive (HDD), solid state drive (SSD), card storage (such as, Multimedia Cards, Secure Digital (SD) Cards or Extreme Digital (XD) Cards), magnetic tapes, floppy disks, magneto-optical data storage devices, optical data storage devices, hard disks, solid state disks, and any other device. The any other device is configured to store a computer program and any relevant data, data files and data structures in a non-transitory manner and to provide the computer program and any relevant data, data files and data structures to a processor or computer, so that the processor or computer can execute the computer program. The computer program in the above computer-readable medium may run in an environment deployed in computer devices such as a client, a host, an agent device, and a server. In addition, in an example, the computer program and any relevant data, data files and data structures are distributed over networked computer systems, so that the computer program and any relevant data, data files and data structures are stored, accessed, and executed in a distributed manner by one or more processors or computers.

According to example embodiments of the present inventive concepts, by retrieving target data inside a storage device, a large amount of data migration between a host device and the storage device may be avoided, so that an amount of data movement between the host device and the storage device may be reduced, a resource utilization rate and a bandwidth consumption of the host device may be reduced and a bandwidth utilization rate may be improved, an I/O bandwidth in the storage device may be improved, a delay of retrieving the target data may be reduced, and retrieval performance may be improved. Therefore, the improved devices and methods overcome the deficiencies of the conventional devices and methods of accessing data, particularly related to retrieving target data inside a storage device, while reducing resource consumption (e.g., processing capability, power, bandwidth), improving data accuracy, and resource allocation (e.g., latency).

As described herein, any electronic devices and/or portions thereof according to any of the example embodiments may include, may be included in, and/or may be implemented by one or more instances of processing circuitry such as hardware including logic circuits; a hardware/software combination such as a processor executing software; or any combination thereof. For example, the processing circuitry more specifically may include, but is not limited to, a central processing unit (CPU), an arithmetic logic unit (ALU), a graphics processing unit (GPU), an application processor (AP), a digital signal processor (DSP), a microcomputer, a field programmable gate array (FPGA), and programmable logic unit, a microprocessor, application-specific integrated circuit (ASIC), a neural network processing unit (NPU), an Electronic Control Unit (ECU), an Image Signal Processor (ISP), and the like. In some example embodiments, the processing circuitry may include a non-transitory computer readable storage device (e.g., a memory), for example a DRAM device, storing a program of instructions, and a processor (e.g., CPU) configured to execute the program of instructions to implement the functionality and/or methods performed by some or all of any devices, systems, modules, units, controllers, circuits, architectures, and/or portions thereof according to any of the example embodiments, and/or any portions thereof.

Although the present inventive concepts have been illustrated and described with reference to some specific example embodiments, it will be understood by those skilled in the art that various changes in form and detail may be made without departing from the spirit and scope of the present inventive concepts as defined by the claims and the equivalents thereof.

Classification Codes (CPC)

Cooperative Patent Classification codes for this invention. Click any code to explore related patents in that topic.

Patent Metadata

Filing Date

November 11, 2024

Publication Date

April 9, 2026

Inventors

Zhonggang CHEN
Jongtae PARK
Fei DONG

Want to explore more patents?

Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.

Citation & reuse

Analysis on this page is generated by Patentable — an AI-powered patent intelligence platform. AI-generated summaries, explanations, and analysis may be reused with attribution and a visible link back to the canonical URL below. Patent abstracts and claims are USPTO public domain.

Cite as: Patentable. “HOST DEVICE, STORAGE DEVICE AND SYSTEM AND METHOD THEREOF” (US-20260099495-A1). https://patentable.app/patents/US-20260099495-A1

© 2026 Patentable. All rights reserved.

Patentable is a research and drafting-assistant tool, not a law firm, and does not provide legal advice. Documents we generate are drafts for review by a licensed patent attorney.