IP Library Granted Patent US 12,222,859
Granted Patent B2
US 12,222,859 · App. 18/565,053 · Granted Feb 11, 2025

Write data cache method and system, device, and storage medium

Inventors: Jiang Wang (Jiangsu, CN); Shuqing Li (Jiangsu, CN); Huajin Sun (Jiangsu, CN)
Assignee: SUZHOU METABRAIN INTELLIGENT TECHNOLOGY CO., LTD.
G06F12/0804G06F2212/603
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,222,859
App. No.
18/565,053
Granted
Feb 11, 2025
Kind
B2
Abstract

A method and system for high-speed caching of data writing, a device and a storage medium. The method includes: in response to receiving a data-writing operating instruction emitted by a host, creating a controlling page table and filling sequentially a plurality of control blocks into the controlling page table; submitting an entry pointer of a first instance of the control blocks to a work-queue scheduling engine, to execute tasks corresponding to the plurality of control blocks alternately in the work-queue scheduling engine; sending in advance a completion response to the host and notifying a firmware to perform subsequent processing and falling-into-disk of data; and in response to ending of execution of a task corresponding to a last one instance of the control blocks, releasing a used resource of the controlling page table.

Claims (43)

1. A method for high-speed caching of data writing, wherein the method comprises:

in response to receiving a data-writing operating instruction sent by a host, creating a controlling page table and filling a plurality of control data blocks into the controlling page table sequentially;

submitting an entry pointer of a first instance of the plurality of control data blocks to a work-queue scheduling engine, to execute tasks corresponding to the plurality of control data blocks alternately in the work-queue scheduling engine;

sending a completion response to the host in advance and notifying a firmware to perform subsequent processing and falling-into-disk of data; and

in response to the completion of execution of a task corresponding to a last one instance of the plurality of control data blocks, releasing a used resource of the controlling page table.

2. The method according to claim 1 , wherein the step of, creating the controlling page table and filling the plurality of control data blocks into the controlling page table sequentially comprises:

filling a first control data block into the controlling page table, to provide an internal-memory region in a local double-speed synchronous dynamic random access memory;

filling a second control data block into the controlling page table, to migrate to-be-written data in a host double-speed synchronous dynamic random access memory into the internal-memory region; and

filling a third control data block into the controlling page table, to respond to the host and end a current inputting-outputting.

3. The method according to claim 2 , wherein the method further comprises:

performing powering-down protection to written data within the internal-memory region in the local double-speed synchronous dynamic random access memory.

4. The method according to claim 1 , wherein the method further comprises:

in response to a space of the controlling page table being insufficient, applying for a new controlling-page-table space to create a new controlling page table, and initializing the new controlling page table and the original controlling page table into a chain controlling page table.

5. The method according to claim 1 , wherein the method further comprises:

in response to receiving a read-data operating instruction sent by the host, creating a blank controlling page table and backing up the read-data operating instruction into the blank controlling page table.

6. The method according to claim 1 , wherein the method further comprises:

setting up a continuous storage space in an on-chip storage to be used as a resource pool of controlling page tables, and initializing an address pointer of each of the controlling page tables into an idle-controlling-page-table-entry list.

7. The method according to claim 6 , wherein the method further comprises:

determining whether counting of the controlling page tables that already applied for by the firmware is smaller than a threshold; and

in response to the counting of the controlling page tables that already applied for by the firmware being smaller than the threshold, adding one to the counting of the controlling page tables that already applied for by the firmware controlling page table, and subtracting one from counting of the controlling page tables that already applied for by an interface-managing-engine of the host.

8. The method according to claim 1 , wherein the last one instance of the plurality of control data blocks refers to a last control data block of a step required by a subsequent operation after the firmware takes over.

9. A computer device, wherein the computer device comprises a memory and one or more processors, the memory stores a computer-readable instruction, and the computer-readable instruction, when executed by the one or more processors, causes the one or more processors to implement operations comprising:

in response to receiving a data-writing operating instruction sent by a host, creating a controlling page table and filling a plurality of control data blocks into the controlling page table sequentially;

submitting an entry pointer of a first instance of the plurality of control data blocks to a work-queue scheduling engine, to execute tasks corresponding to the plurality of control data blocks alternately in the work-queue scheduling engine;

sending a completion response to the host in advance and notifying a firmware to perform subsequent processing and falling-into-disk of data; and

in response to the completion of execution of a task corresponding to a last one instance of the plurality of control data blocks, releasing a used resource of the controlling page table.

10. One or more non-transitory computer-readable storage mediums storing a computer-readable instruction, wherein the computer-readable instruction, when executed by one or more processors, causes the one or more processors to implement operations comprising:

in response to receiving a data-writing operating instruction sent by a host, creating a controlling page table and filling a plurality of control data blocks into the controlling page table sequentially;

submitting an entry pointer of a first instance of the plurality of control data blocks to a work-queue scheduling engine, to execute tasks corresponding to the plurality of control data blocks alternately in the work-queue scheduling engine;

sending a completion response to the host in advance and notifying a firmware to perform subsequent processing and falling-into-disk of data; and

in response to the completion of execution of a task corresponding to a last one instance of the plurality of control data blocks, releasing a used resource of the controlling page table.

11. The method according to claim 6 , wherein granularities of the controlling page tables in a single resource pool are consistent.

12. The method according to claim 6 , wherein the resource pool is managed by using a consistent hardware logic.

13. The method according to claim 6 , wherein both a head pointer and a tail pointer of the idle-controlling-page-table-entry list are managed by hardware.

14. The method according to claim 13 , wherein when controlling page table (CP) resource is applied, from the head pointer, a CP entry address is read and already-applied-for counting values of the Acceleration Engine Manager (AEM) and the firmware are updated.

15. The method according to claim 14 , wherein in the releasing of the CP resource, from the tail pointer, a to-be-released CP entry address is stored and the already-applied-for counting values of the AEM and the firmware are updated.

16. The method according to claim 15 , wherein CP applying and CP releasing of the AEM are operated directly by using a hardware logic.

17. The method according to claim 15 , wherein CP applying and CP releasing of the firmware are completed by accessing a CP applying register and a CP releasing register.

18. The method according to claim 15 , wherein the method further comprises:

in the CP applying, by the firmware, directly reading the CP applying register, and, from a flag bit of read content, determining whether it is an effective CP entry address; and

in the CP releasing, directly writing, by the firmware, the entry address of the to-be-released CP into the CP releasing register, and writing, by the hardware logic, the to-be-released CP into the “idle-CP-entry list”.

19. The method according to claim 7 , wherein when the counting of the controlling page tables that already applied for by the firmware is equal to the threshold, the applying of the current time fails.

20. The method according to claim 1 , wherein a size of the controlling page table is 512 bytes, 1024 bytes or 2048 bytes.

Assignments (2)
LICENSE Recorded Jun 30, 2026
From: IEIT SYSTEMS CO., LTD
To: AIVRES SYSTEMS INC.
Reel/Frame 075857/0939 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 28, 2023
From: WANG, JIANG; LI, SHUQING; SUN, HUAJIN
To: SUZHOU METABRAIN INTELLIGENT TECHNOLOGY CO., LTD.
Reel/Frame 065689/0964 →
Priority Claims (1)
CN 202111497794.3 · Dec 9, 2021 · national
Continuity (1)
Related Publication 20240264940A1 · Aug 8, 2024
References Cited (12)
US 5517626A · Archer · 1996 [cited by examiner]
US 6311258B1 · Gibson · 2001 [cited by examiner]
US 6336180B1 · Long · 2002 [cited by examiner]
US 20120303855A1 · Bakke et al. · 2012 [cited by applicant]
CN 105453062A · 2016 [cited by applicant]
CN 108959117A · 2018 [cited by applicant]
CN 109976953A · 2019 [cited by applicant]
CN 111642137A · 2020 [cited by applicant]
CN 113885945A · 2022 [cited by applicant]
CN 113918101A · 2022 [cited by applicant]
Bo Hu “Design and implementation analysis of heterogeneous architecture for database query acceleration.” Changjiang Information and Communication, vol. 34, No. 9 (2021). [cited by applicant]
Theurich, Klaus, et al. “Advanced firmware verification using a code simulator for the IBM System z9.” IBM journal of research and development 51.1.2 (2007): 207-216. [cited by applicant]