Command execution method, device, equipment, and storage medium
By introducing a DQ operation conflict check mechanism in the flash command execution system, the bandwidth reduction caused by command conflict in the prior art is solved, and the parallel execution of commands and bandwidth improvement is achieved.
Patent Information
- Application Number
- CN202411433266.5
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2024-10-14
- Publication Date
- 2025-05-06
- Estimated Expiration
- 2044-10-14
AI Technical Summary
The prior art cannot determine whether the DQ-like command to be executed conflicts with the currently executed command, causing the main control chip to wait for the previous command to be executed before executing the next command, which in turn causes the bus data transmission bandwidth to decrease.
A DQ operation conflict check mechanism for the SCA protocol is designed. Through the command execution record table, a command is executed to determine whether there is a conflict between the command currently being executed and the command to be executed. If there is no conflict, the command to be executed will be executed immediately.
It avoids violating command conflict rules in the SCA protocol, realizes parallel execution of commands on the CA bus and DQ bus, increases the proportion of data transmission time on the DQ bus, and thus increases the bus data transmission bandwidth.
Smart Images

Figure CN118939204B_ABST
Abstract
Description
Technical Field
[0001] The present application relates to the field of computer technology, and in particular to a flash memory command execution method, device, equipment, storage medium and computer program product. Background Art
[0002] Nand Flash is a non-volatile memory based on NAND technology. Due to its high storage density, low power consumption, long life and high reliability, it is currently widely used in mobile devices, smart terminals, memory cards, solid-state drives and other scenarios.
[0003] As the demand for flash memory interface bandwidth increases, the data transmission rate of the flash memory interface continues to increase, while the command / address transmission rate of the flash memory interface remains unchanged. In the traditional flash memory interface transmission protocol (ONFi or Toggle), commands / addresses and data are transmitted on the same set of transmission lines. As the data transmission rate increases, the command / address transmission time accounts for a larger proportion, becoming the bottleneck of the flash memory interface bandwidth.
[0004] In order to solve the problem of improving the bandwidth of the flash memory interface, the existing solution proposes a new flash memory particle protocol - Separate Command Address (SCA) protocol. Based on the SCA protocol, the command / address and data transmission are separated and placed on two different transmission buses. Among them, the command / address is transmitted on the command and address (CA) bus; and the data is transmitted on the data bus (DQ bus), so that the command / address is transmitted on the CA bus while the data is transmitted on the DQ bus.
[0005] Under the SCA model, the operation commands for the CA bus can be divided into two types:
[0006] 1. Data transmission class, also known as DQ class commands;
[0007] 2. Non-data transfer type, referred to as non-DQ type commands.
[0008] Based on the requirements of the existing SCA protocol, the same NAND Flash can only receive one DQ class command at the same time on the CA bus. When a NAND Flash has received a DQ class command, the main control chip is not allowed to send the next DQ class command to the NAND Flash before the DQ class command is executed.
[0009] In this case, the prior art cannot determine whether the DQ command to be executed conflicts with the currently executed command, so the main control chip can only wait for the previous command to be executed before executing the next command. The existing NAND Flash command execution logic based on the SCA protocol is as follows: Figure 1 As shown, the proportion of data transmission on the DQ bus is greatly reduced, which in turn leads to a decrease in data bandwidth.
[0010] Therefore, how to reasonably schedule and execute flash memory commands so that CA bus commands can be executed in parallel with DQ data transmission as much as possible on the I / O interface to improve the bus data transmission bandwidth has become a technical problem that needs to be solved urgently. Summary of the invention
[0011] An embodiment of the present application provides a flash memory command execution method to solve the problem that the prior art cannot determine whether a DQ-type command to be executed conflicts with a currently executed command, so the main control chip can only wait for the previous command to be executed before executing the next command, thereby causing a decrease in bus data transmission bandwidth.
[0012] The embodiment of the present application also provides a flash memory command execution device to solve the problem that the prior art cannot determine whether the DQ type command to be executed conflicts with the command currently being executed, so the main control chip can only wait for the previous command to be executed before executing the next command, which in turn leads to a decrease in bus data transmission bandwidth.
[0013] The embodiment of the present application also provides a flash memory command execution device to solve the problem that the prior art cannot determine whether the DQ type command to be executed conflicts with the command currently being executed, so the main control chip can only wait for the previous command to be executed before executing the next command, which in turn leads to a decrease in bus data transmission bandwidth.
[0014] The embodiment of the present application also provides a computer-readable storage medium to solve the problem that the prior art cannot determine whether the DQ-type command to be executed conflicts with the command currently being executed, so the main control chip can only wait for the previous command to be executed before executing the next command, which leads to a decrease in bus data transmission bandwidth.
[0015] The embodiment of the present application also provides a computer program product to solve the problem that the prior art cannot determine whether the DQ-type command to be executed conflicts with the command currently being executed, so the main control chip can only wait for the previous command to be executed before executing the next command, which in turn leads to a decrease in bus data transmission bandwidth.
[0016] The present application embodiment adopts the following technical solutions:
[0017] A flash memory command execution method comprises: obtaining commands to be executed from a command queue in sequence, determining a first operation type corresponding to the commands to be executed, wherein the first operation type comprises a DQ operation for data and a non-DQ operation for non-data; when the first operation type corresponding to the commands to be executed is a DQ operation, determining a flash memory particle NAND Flash corresponding to the commands to be executed; judging whether a command currently being executed by the NAND Flash conflicts with the commands to be executed according to a pre-generated command execution record table, and executing the commands to be executed when the judgment result is no; and when the first operation type corresponding to the commands to be executed is a non-DQ operation, executing the commands to be executed.
[0018] A flash memory command execution device comprises: a first operation type identification unit, used to sequentially obtain commands to be executed from a command queue, and determine a first operation type corresponding to the command to be executed, wherein the first operation type includes a DQ type operation for data, and a non-DQ type operation for non-data; a flash memory particle determination unit, used to determine a flash memory particle NANDFlash corresponding to the command to be executed when the first operation type corresponding to the command to be executed is a DQ type operation; a command conflict detection unit, used to determine whether a command currently being executed by the NAND Flash conflicts with the command to be executed according to a pre-generated command execution record table, and when the judgment result is no, execute the command to be executed; a command execution unit, used to execute the command to be executed when the first operation type corresponding to the command to be executed is a non-DQ type operation.
[0019] A flash memory command execution device, comprising:
[0020] A processor; and a memory arranged to store computer-executable instructions, wherein the executable instructions, when executed, cause the processor to perform the following operations: sequentially obtain commands to be executed from a command queue, and determine a first operation type corresponding to the commands to be executed, wherein the first operation type includes a DQ operation for data and a non-DQ operation for non-data; when the first operation type corresponding to the commands to be executed is a DQ operation, determine a flash memory particle NAND Flash corresponding to the commands to be executed; according to a pre-generated command execution record table, determine whether a command currently being executed by the NAND Flash conflicts with the commands to be executed, and when the judgment result is no, execute the commands to be executed; when the first operation type corresponding to the commands to be executed is a non-DQ operation, execute the commands to be executed.
[0021] A computer-readable storage medium stores one or more programs. When the one or more programs are executed by an electronic device including multiple application programs, the electronic device performs the following operations: sequentially obtain commands to be executed from a command queue, and determine a first operation type corresponding to the command to be executed, wherein the first operation type includes a DQ operation for data and a non-DQ operation for non-data; when the first operation type corresponding to the command to be executed is a DQ operation, determine a flash memory particle NANDFlash corresponding to the command to be executed; based on a pre-generated command execution record table, determine whether there is a conflict between the command currently being executed by the NAND Flash and the command to be executed, and when the judgment result is no, execute the command to be executed; when the first operation type corresponding to the command to be executed is a non-DQ operation, execute the command to be executed.
[0022] A computer program product comprises a computer program, which is implemented when executed by a processor: sequentially obtaining commands to be executed from a command queue, determining a first operation type corresponding to the commands to be executed, wherein the first operation type comprises a DQ operation for data and a non-DQ operation for non-data; when the first operation type corresponding to the commands to be executed is a DQ operation, determining a flash memory particle NAND Flash corresponding to the commands to be executed; judging whether a command currently being executed by the NAND Flash conflicts with the commands to be executed according to a pre-generated command execution record table, and executing the commands to be executed when the judgment result is no; and when the first operation type corresponding to the commands to be executed is a non-DQ operation, executing the commands to be executed.
[0023] At least one of the above technical solutions adopted in the embodiments of the present application can achieve the following beneficial effects:
[0024] By adopting the flash memory command execution method provided in the embodiment of the present application, a DQ operation conflict check mechanism for the SCA protocol is designed. The controller can record the command status (including command type) of each NAND Flash that is executing a command and generate a command execution record table. When the command is subsequently processed, the first operation type corresponding to the command to be executed obtained from the command queue is determined. When it is determined that the first operation type corresponding to the command to be executed is a DQ operation, the flash memory particle NAND Flash corresponding to the command to be executed is determined, and according to the pre-generated command execution record table, it is judged in advance whether there is a conflict between the command currently being executed by the NAND Flash and the command to be executed. When the judgment result is no, the command to be executed can be executed immediately without waiting for the command currently being executed by the NAND Flash to be executed before executing the command to be executed; and when the first operation type corresponding to the command to be executed is a non-DQ operation, the command to be executed can be executed immediately. By adopting the flash memory command execution method provided in the embodiment of the present application, it is possible to determine in advance through the command execution record table whether the next command to be executed conflicts with the currently executed command, and directly send the command to be executed without command conflict to the corresponding NAND Flash for execution, without waiting for the command currently being executed by the NAND Flash to be completed before executing the command to be executed. This can avoid violating the command conflict rules in the SCA protocol and realize parallel execution of commands on the CA bus and the DQ bus, thereby increasing the proportion of data transmission time on the DQ bus, thereby increasing bus utilization and improving bus data transmission bandwidth. BRIEF DESCRIPTION OF THE DRAWINGS
[0025] The drawings described herein are used to provide a further understanding of the present application and constitute a part of the present application. The illustrative embodiments of the present application and their descriptions are used to explain the present application and do not constitute an improper limitation on the present application. In the drawings:
[0026] Figure 1 Provide a logical diagram for the existing NAND Flash command execution based on the SCA protocol;
[0027] Figure 2 A schematic diagram of a specific structure of a NAND Flash controller provided in an embodiment of the present application;
[0028] Figure 3 A schematic diagram of a specific flow chart of a flash memory command execution method provided in an embodiment of the present application;
[0029] Figure 4 A schematic diagram of a command execution record table provided in an embodiment of the present application;
[0030] Figure 5 A schematic diagram of a specific flow chart of a conflict identification method for DQ commands provided in an embodiment of the present application;
[0031] Figure 6 A specific flow chart of a conflict identification method for CA commands provided in an embodiment of the present application;
[0032] Figure 7 A NAND Flash command execution logic diagram provided for an embodiment of the present application;
[0033] Figure 8 A schematic diagram of the specific structure of a flash memory command execution device provided in an embodiment of the present application;
[0034] Fig. 9 A schematic diagram of the specific structure of a flash memory command execution device provided in an embodiment of the present application. DETAILED DESCRIPTION
[0035] In order to make the purpose, technical solution and advantages of the present application clearer, the technical solution of the present application will be clearly and completely described below in combination with the specific embodiments of the present application and the corresponding drawings. Obviously, the described embodiments are only part of the embodiments of the present application, not all of the embodiments. Based on the embodiments in the present application, all other embodiments obtained by ordinary technicians in this field without making creative work are within the scope of protection of the present application.
[0036] The technical solutions provided by various embodiments of the present application are described in detail below in conjunction with the accompanying drawings.
[0037] In order to solve the problem that the prior art cannot determine whether the DQ-type command to be executed conflicts with the currently executed command, so the main control chip can only wait for the previous command to be executed before executing the next command, which leads to a decrease in the bus data transmission bandwidth. This application example designs a DQ-type operation conflict check mechanism for the SCA protocol. Based on the DQ-type operation conflict check mechanism provided by the embodiment of the application, the NAND Flash controller can quickly query whether the command to be executed conflicts with the currently executed command, and then determine whether the command to be executed can be sent to the NAND Flash.
[0038] In one embodiment, the specific structure of the NAND Flash controller provided by the present application is as follows: Figure 2 As shown, it mainly includes the following units:
[0039] 1. Command queue: The NAND Flash controller converts Host read and write commands into NAND Flash operation commands and stores them in the command queue. In SCA mode, the NAND Flash controller can convert Host read and write commands into specific CA commands and DQ commands for each NAND Flash.
[0040] 2. Command arbitration scheduling unit: monitors the commands that need to be executed by each logic execution unit on each NAND Flash, selects the corresponding command through priority arbitration to start execution, and starts data transmission.
[0041] For ease of understanding, the basic structure of the flash memory particle Nand Flash is explained here. Each Nand Flash can include one or more logical execution units, which are represented by corresponding logical unit numbers (logical unit numbers, LUNs). LUN is the smallest unit for executing commands. Different LUNs can execute different command sequences. A LUN can contain one or more planes. A plane is the smallest unit that Nand Flash can operate according to commands such as read, write, and erase. A plane is a storage matrix.
[0042] 3. CA command / DQ command execution unit converts specific operation commands into NAND Flash I / O interface protocol.
[0043] 4. The DQ operation conflict check unit is used to record the command information currently being executed by each LUN of the NAND Flash, and to query whether the pending commands screened by the command arbitration scheduling unit conflict with the commands being executed, and to feed back the results to the command arbitration scheduling unit, so that the command arbitration scheduling unit can determine whether the pending commands corresponding to each LUN can be executed according to the query results fed back by the DQ operation conflict check unit.
[0044] Based on the above Nand Flash controller, the specific implementation flow chart of the flash memory command execution method provided in this application is as follows: Figure 3 As shown, it mainly includes the following steps:
[0045] Step 11, sequentially obtaining the commands to be executed from the command queue, and determining the first operation type corresponding to the commands to be executed;
[0046] In the embodiment of the present application, the command itself carries identification information indicating the operation type. Therefore, after obtaining the command to be executed from the command queue, the first operation type corresponding to the command to be executed can be determined based on the identification information of the command to be executed.
[0047] In one implementation, the first operation type may specifically include DQ operations for data and non-DQ operations for non-data.
[0048] Step 12: when it is determined by executing step 11 that the first operation type corresponding to the command to be executed is a DQ operation, determine the flash memory granule logical unit LUN corresponding to the command to be executed;
[0049] In the embodiment of the present application, the Nand Flash controller may determine the flash memory particle NAND Flash corresponding to the command to be executed, and determine a specific LUN on the NAND Flash for executing the command to be executed.
[0050] Step 13, judging whether there is a conflict between the command currently being executed by the LUN and the command to be executed according to the pre-generated command execution record table, and when the judgment result is no, executing the command to be executed;
[0051] The command execution record table may be generated based on the acquired LUN corresponding to the command being executed and the operation type. Specifically, in the embodiment of the present application, the command execution record table may be generated by the following method, including:
[0052] Obtain command information of a command currently being executed; determine the LUN, a first operation type, and a second operation type corresponding to the command being executed based on the command information; determine first status information and second status information corresponding to the LUN based on the first operation type and the second operation type; generate a command execution record table corresponding to the LUN based on the first status information and the second status information.
[0053] At the same time, the Nand Flash controller can monitor the execution progress of the commands currently being executed by each LUN. After determining that the currently executing command is completed, the Nand Flash controller can update and reset the command execution status corresponding to the LUN in the command execution record table.
[0054] Specifically, in an embodiment of the present application, the command arbitration scheduling unit of the Nand Flash controller may send the LUN number, operation type (such as DQ operation, non-DQ operation, write data transmission or read data transmission, etc.) and execution specification (wherein, the execution specification carries a preset operation type that conflicts with the command, and the execution specification may be set by the NAND manufacturer as needed. For example, the execution specification may stipulate that: the command cannot be executed in parallel with the same DQ BUS read data transmission, that is, the command conflicts with the data read transmission; or the command cannot be executed in parallel with the same DQ BUS write data transmission, that is, the command conflicts with the write data transmission) corresponding to the command to the DQ operation conflict checking unit when the command starts to be executed. Then, the DQ operation conflict checking unit may generate a command execution record table for recording the command execution status corresponding to each LUN according to the received status information.
[0055] In one implementation, the DQ operation conflict checking unit may record the command execution status of the DQ bus (ie, DQBUS) and the command execution status of the CA bus (ie, CA BUS) of each LUN respectively, and generate a command execution record table according to the DQ BUS command execution status and the CA BUS command execution status, such as Figure 4 shown.
[0056] The DQ BUS command execution status may specifically include:
[0057] Whenever DQ BUS data transmission starts to be executed, the DQ operation conflict checking unit may update the DQ BUS command execution status of the corresponding LUN to 1 or 2; whenever the DQ BUS data transmission command is completed, the DQ BUS status of the corresponding LUN is updated to 0.
[0058] Among them, 0 means that the current DQ BUS does not perform DQ operations;
[0059] 1 indicates that the current DQ BUS is performing a DQ operation, specifically a write data transmission operation;
[0060] 2 indicates that the current DQ BUS is performing a DQ operation, specifically a read data transmission operation.
[0061] The CA BUS command execution status can specifically include:
[0062] Whenever a CA BUS command starts to be executed, the DQ BUS command execution status of the corresponding LUN is updated to 1 or 2; whenever a CA BUS command is completed in Nand Flash, the DQ BUS status of the corresponding LUN is updated to 0.
[0063] Among them, 0 means that the current CA BUS does not perform DQ operations;
[0064] 1 indicates that the current LUN is executing a DQ command, and this command cannot be executed in parallel with the write data transmission on the same DQ BUS;
[0065] 2 indicates that the current LUN is executing a DQ command, and this command cannot be executed in parallel with the read data transmission on the same DQ BUS.
[0066] It should be noted here that since the commands to be executed can be divided into DQ commands for the DQ bus and CA commands for the CA bus, the operation types corresponding to the DQ commands are all DQ operations, and the operation types corresponding to the CA commands include both DQ operations and non-DQ operations. Since the operation modes included in the DQ commands and the CA commands are different, the subsequent conflict identification methods for different commands are also different. Therefore, the following text introduces the conflict identification methods of the DQ commands and CA commands in detail according to the different commands to be executed:
[0067] 1. When the command to be executed is a DQ command, the specific implementation flow diagram of the conflict identification method is as follows: Figure 5 As shown, it mainly includes the following sub-steps:
[0068] Sub-step 13-1-1, querying the data transmission operation of the DQ bus;
[0069] Sub-step 13-1-2, when it is found that the DQ bus is not performing a data transmission operation, determining first status information of the command currently being executed by the LUN according to the command execution record table, wherein the first status information is used to indicate the CA bus command execution status corresponding to the LUN;
[0070] Sub-step 13-1-3, determining, based on the first status information, a first operation type corresponding to the command currently being executed by the LUN;
[0071] In the embodiment of the present application, the first status information may refer to the CA BUS command execution status in the command execution record table.
[0072] Sub-step 13-1-4, when it is determined by executing sub-step 13-1-3 that the first operation type corresponding to the command currently being executed by the LUN is a DQ type operation, further determine the execution specification corresponding to the command being executed based on the CA BUS command execution status in the command execution record table, that is, determine whether the value corresponding to the CA BUS command execution status is 1 or 2.
[0073] Sub-step 13-1-5, determining the second operation type corresponding to the command to be executed;
[0074] That is, it is determined whether the DQ command to be executed is a write data transmission operation or a read data transmission operation.
[0075] Sub-step 13-1-6, determining whether the second operation type corresponding to the command to be executed matches the operation type recorded in the execution specification;
[0076] When the judgment result is yes, it is determined that the command currently being executed by the LUN conflicts with the command to be executed.
[0077] When the judgment result is no, it is determined that there is no conflict between the command currently being executed by the LUN and the command to be executed.
[0078] Specifically, when it is determined through the command execution record table that the CA BUS command execution status of the command currently being executed by the LUN is 1, that is, the current LUN is executing a DQ-type command, and the command cannot be executed in parallel with the same DQ BUS write operation, and the command to be executed is a DQ BUS write data transmission, or when the CA BUS command execution status of the command currently being executed by the LUN is 2, and the command to be executed is a DQ BUS read data transmission, at this time, the second operation type corresponding to the command to be executed matches the operation type recorded in the execution specification of the command currently being executed by the LUN, then it means that there is a conflict between the command currently being executed by the LUN and the command to be executed, and then the DQ-type operation conflict checking unit can feedback to the command arbitration scheduling unit: "Information that the command to be executed is not executable", so that the command arbitration scheduling unit can respond to the information and temporarily postpone sending the command to be executed to the corresponding command execution module for execution.
[0079] On the contrary, when it is determined through the command execution record table that the CA BUS command execution status of the command currently being executed by the LUN is 1, that is, the current LUN is executing a DQ-type command, and the command cannot be executed in parallel with the same DQ BUS write operation, and when the command to be executed is a DQ BUS read data transmission, or the CA BUS command execution status of the command currently being executed by the LUN is 2, and the command to be executed is a DQ BUS write data transmission, the second operation type corresponding to the command to be executed does not match the operation type recorded in the execution specification of the command currently being executed by the LUN, which means that there is no conflict between the command currently being executed by the LUN and the command to be executed, and then the DQ-type operation conflict checking unit can feedback to the command arbitration scheduling unit: "Information that the command to be executed can be executed", so that the command arbitration scheduling unit can respond to the information and send the command to be executed to the corresponding command execution module for execution.
[0080] 2. When the command to be executed is a CA command, the specific implementation flow diagram of the conflict identification method is as follows: Figure 6As shown, it mainly includes the following sub-steps:
[0081] Sub-step 13-2-1, determining the second status information of the command currently being executed by the LUN according to the command execution record table;
[0082] In the embodiment of the present application, the second status information may refer to the DQ BUS command execution status in the command execution record table.
[0083] Sub-step 13-2-2, when it is determined according to the second status information that the DQ bus corresponding to the LUN is not performing a DQ data transmission operation, determining according to the command execution record table the first status information that the LUN is currently executing a command;
[0084] That is, according to the command execution record table, when it is determined that the DQ BUS command execution status of the LUN is 0, the CA BUS command execution status of the LUN is further queried.
[0085] Sub-step 13-2-3, determining, based on the first status information, that the LUN is currently executing a first operation type corresponding to the command;
[0086] Sub-step 13-2-4, when the first operation type corresponding to the command currently being executed by the LUN is a DQ operation, determining that the command currently being executed by the LUN conflicts with the command to be executed;
[0087] When it is determined that the CA BUS command execution status of the LUN is 1 or 2, that is, when the current LUN is executing a DQ-type command, it can be determined that the command currently being executed by the LUN conflicts with the command to be executed, and then the DQ-type operation conflict check unit can feedback to the command arbitration scheduling unit: "Information that the command to be executed is not executable", so that the command arbitration scheduling unit can respond to the information and temporarily postpone sending the command to be executed to the corresponding command execution module for execution.
[0088] Sub-step 13-2-5, when the first operation type corresponding to the command currently being executed by the LUN is a non-DQ operation, determining that there is no conflict between the command currently being executed by the LUN and the command to be executed;
[0089] That is, when it is determined that the CA BUS command execution status of the LUN is 0, that is, the LUN is not currently executing a DQ operation, it is determined that there is no conflict between the command currently being executed by the LUN and the command to be executed, and then the DQ operation conflict check unit can feedback to the command arbitration scheduling unit: "Information that the command to be executed can be executed", so that the command arbitration scheduling unit can respond to the information and send the command to be executed to the corresponding command execution module for execution.
[0090] Sub-step 13-2-6, when it is determined according to the second status information that the DQ bus corresponding to the LUN is performing a DQ data transmission operation, determining the read / write type of the command currently being executed by the LUN according to the second status information;
[0091] That is, according to the command execution record table, it is determined whether the DQ BUS command execution state of the LUN is 1 or 2.
[0092] Sub-step 13-2-7, determining the execution specification corresponding to the command to be executed;
[0093] Sub-step 13-2-8, determining whether the read / write type of the command currently being executed by the LUN is the same as the operation type recorded in the execution specification of the command to be executed;
[0094] When the judgment result is yes, it is determined that the command currently being executed by the LUN conflicts with the command to be executed; when the judgment result is no, it is determined that the command currently being executed by the LUN does not conflict with the command to be executed.
[0095] Specifically, when it is determined through the command execution record table that the DQ BUS command execution status of the command currently being executed by the LUN is 1, that is, the current LUN is executing a write operation, and the execution specification of the command to be executed records: the command cannot be executed in parallel with the same DQ BUS write operation; or when the DQ BUS command execution status of the command currently being executed by the LUN is 2, that is, the current LUN is executing a read operation, and the execution specification of the command to be executed records: the command cannot be executed in parallel with the same DQ BUS read operation, then it means that the command currently being executed by the LUN conflicts with the command to be executed, and then the DQ operation conflict check unit can feedback to the command arbitration scheduling unit: "Information that the command to be executed is currently not executable", so that the command arbitration scheduling unit can respond to the information and temporarily postpone sending the command to be executed to the corresponding command execution module for execution.
[0096] On the contrary, when it is determined through the command execution record table that the DQ BUS command execution status of the command currently being executed by the LUN is 1, that is, the current LUN is executing a write data transfer operation, and the execution specification of the command to be executed records: the command cannot be executed in parallel with the same DQ BUS read operation; or when the DQ BUS command execution status of the command currently being executed by the LUN is 2, that is, the current LUN is executing a read data transfer operation, and the execution specification of the command to be executed records: the command cannot be executed in parallel with the same DQ BUS write operation, the above two situations both indicate that there is no conflict between the command currently being executed by the LUN and the command to be executed, and then the DQ operation conflict check unit can feedback to the command arbitration scheduling unit: "information that the command to be executed can be executed", so that the command arbitration scheduling unit can respond to the information and send the command to be executed to the corresponding command execution module for execution.
[0097] Step 14: When the first operation type corresponding to the command to be executed is a non-DQ operation, execute the command to be executed.
[0098] Using the command execution method provided in the embodiment of the present application, the command execution logic of NAND Flash is as follows: Figure 7 As shown:
[0099] Assuming that the controller sends a DQ command (for example, command A) to LUN 0, before command A is executed, the controller will detect the commands to be executed through the DQ operation conflict check unit, identify the commands to be executed that conflict with the currently executed commands, and then refuse to send the conflicting commands to LUN0. For example, at this time, the controller will refuse to send the next DQ command (for example, command B) to LUN0; when LUN 0 is executing a data transmission operation in response to command A, the controller will identify the subsequent commands to be executed for LUN0 through the DQ operation conflict check unit. Assuming that the commands to be executed C and the non-DQ command (command E) that are both DQ commands are identified, the controller can send the non-DQ command (command E) to LUN0 and refuse to send command C to LUN0; in addition, assuming that the controller determines that LUN1 is not currently executing a DQ command, the controller can send a DQ command (for example, command D) to LUN1. Similarly, when LUN1 is performing a data transfer operation in response to command D, the controller will refuse to send a new DQ class command to LUN1, and when the controller determines that the data transfer operation of LUN 0 is completed, it can send the next DQ class command (for example, command F) to LUN 0.
[0100] By adopting the flash memory command execution method provided in the embodiment of the present application, a DQ operation conflict check mechanism for the SCA protocol is designed. The controller can record the command status (including command type) of each NAND Flash that is executing a command and generate a command execution record table. When the command is subsequently processed, the first operation type corresponding to the command to be executed obtained from the command queue is determined. When it is determined that the first operation type corresponding to the command to be executed is a DQ operation, the flash memory particle NAND Flash corresponding to the command to be executed is determined, and according to the pre-generated command execution record table, it is judged in advance whether there is a conflict between the command currently being executed by the NAND Flash and the command to be executed. When the judgment result is no, the command to be executed can be executed immediately without waiting for the command currently being executed by the NAND Flash to be executed before executing the command to be executed; and when the first operation type corresponding to the command to be executed is a non-DQ operation, the command to be executed can be executed immediately. By adopting the flash memory command execution method provided in the embodiment of the present application, it is possible to determine in advance through the command execution record table whether the next command to be executed conflicts with the currently executed command, and directly send the command to be executed without command conflict to the corresponding NAND Flash for execution, without waiting for the command currently being executed by the NAND Flash to be completed before executing the command to be executed. This can avoid violating the command conflict rules in the SCA protocol and realize parallel execution of commands on the CA bus and the DQ bus, thereby increasing the proportion of data transmission time on the DQ bus, thereby increasing bus utilization and improving bus data transmission bandwidth.
[0101] In one implementation, the present application also provides a flash memory command execution device to solve the problem that the prior art cannot determine whether the DQ command to be executed conflicts with the command currently being executed, so the main control chip can only wait for the previous command to be executed before executing the next command, thereby causing the bus data transmission bandwidth to decrease. The specific structural diagram of the flash memory command execution device is shown in FIG. Figure 8 As shown, it includes: a first operation type identification unit 81, a flash memory particle determination unit 82, a command conflict detection unit 83 and a command execution unit 84.
[0102] The first operation type identification unit 81 is used to sequentially obtain the to-be-executed commands from the command queue and determine the first operation type corresponding to the to-be-executed commands, wherein the first operation type includes DQ operations for data and non-DQ operations for non-data;
[0103] A flash memory particle determination unit 82, configured to determine a flash memory particle NAND Flash corresponding to the command to be executed when the first operation type corresponding to the command to be executed is a DQ operation;
[0104] A command conflict detection unit 83 is used to determine whether the command currently being executed by the NAND Flash conflicts with the command to be executed according to a pre-generated command execution record table, and when the judgment result is no, execute the command to be executed;
[0105] The command execution unit 84 is configured to execute the command to be executed when the first operation type corresponding to the command to be executed is a non-DQ operation.
[0106] In one embodiment, for the DQ command of the DQ bus and the CA command of the CA bus, when the command to be executed is a DQ command, the command conflict detection unit 83 is specifically used to: query the data transmission operation of the DQ bus; when it is queried that the DQ bus does not perform a data transmission operation, determine the first status information of the command currently being executed by the LUN according to the command execution record table, wherein the first status information is used to indicate the execution status of the CA bus command corresponding to the LUN; and determine whether there is a conflict between the command currently being executed by the LUN and the command to be executed according to the CA bus status information.
[0107] In one embodiment, the command conflict detection unit 83 is specifically used to: determine, based on the first status information, a first operation type corresponding to the command currently being executed by the LUN; when the first operation type corresponding to the command currently being executed by the LUN is a DQ-type operation, determine, based on the first status information, a second operation type corresponding to the command being executed, wherein the second operation type includes write data transmission and read data transmission; based on the second operation type, determine whether there is a conflict between the command currently being executed by the LUN and the command to be executed; when the operation type corresponding to the command currently being executed by the LUN is a non-DQ-type operation, determine that there is no conflict between the command currently being executed by the LUN and the command to be executed.
[0108] In one embodiment, the command conflict detection unit 83 is specifically used to: determine the second operation type corresponding to the command to be executed; determine the execution specification of the command currently being executed by the LUN according to the command execution record table, wherein the execution specification carries a preset operation type that conflicts with the command being executed; determine whether the second operation type corresponding to the command to be executed matches the operation type recorded in the execution specification; when the judgment result is yes, determine that the command currently being executed by the LUN conflicts with the command to be executed; when the judgment result is no, determine that the command currently being executed by the LUN does not conflict with the command to be executed.
[0109] In one embodiment, when the command to be executed is a CA command, the command conflict detection unit 63 is specifically used to: determine, according to the command execution record table, second status information of the command currently being executed by the LUN, wherein the second status information is used to indicate the DQ bus command execution status corresponding to the LUN, and the second status information includes: no DQ data transmission operation is being performed or a DQ data transmission operation is being performed; when it is determined according to the second status information that the DQ bus corresponding to the LUN is not performing a DQ data transmission operation, determine, according to the command execution record table, first status information of the command currently being executed by the LUN; and determine, according to the first status information, that the LUN is currently executing a command on The first operation type corresponding to the command currently being executed by the LUN is determined; when the first operation type corresponding to the command currently being executed by the LUN is a DQ operation, it is determined that there is a conflict between the command currently being executed by the LUN and the command to be executed; when the first operation type corresponding to the command currently being executed by the LUN is a non-DQ operation, it is determined that there is no conflict between the command currently being executed by the LUN and the command to be executed; when it is determined according to the second status information that the DQ bus corresponding to the LUN is performing a DQ data transmission operation, the read / write type of the command currently being executed by the LUN is determined according to the second status information; and according to the read / write type, it is determined whether there is a conflict between the command currently being executed by the LUN and the command to be executed.
[0110] In one embodiment, the command conflict detection unit 83 is specifically used to: determine the execution specification corresponding to the command to be executed; determine whether the read and write type of the command currently being executed by the LUN matches the operation type recorded in the execution specification corresponding to the command to be executed; when the judgment result is yes, it is determined that the command currently being executed by the LUN conflicts with the command to be executed; when the judgment result is no, it is determined that the command currently being executed by the LUN does not conflict with the command to be executed.
[0111] In one embodiment, it also includes a command execution status recording unit, which is specifically used to: obtain command information of the command currently being executed; determine the LUN, the first operation type and the second operation type corresponding to the command being executed based on the command information; determine the first status information and the second status information corresponding to the LUN based on the first operation type and the second operation type; and generate a command execution record table corresponding to the LUN based on the first status information and the second status information.
[0112] In one implementation, the command execution status recording unit is specifically used to: obtain the execution progress of the currently executing command; and reset the command execution record table corresponding to the LUN when the currently executing command is completed.
[0113] By adopting the flash memory command execution device provided in the embodiment of the present application, a DQ operation conflict check mechanism for the SCA protocol is designed. The controller can record the command status (including command type) of each NAND Flash that is executing a command and generate a command execution record table. When the command is subsequently processed, the first operation type corresponding to the command to be executed obtained from the command queue is determined. When it is determined that the first operation type corresponding to the command to be executed is a DQ operation, the flash memory particle NAND Flash corresponding to the command to be executed is determined, and according to the pre-generated command execution record table, it is judged in advance whether there is a conflict between the command currently being executed by the NAND Flash and the command to be executed. When the judgment result is no, the command to be executed can be executed immediately without waiting for the command currently being executed by the NAND Flash to be executed before executing the command to be executed; and when the first operation type corresponding to the command to be executed is a non-DQ operation, the command to be executed can be executed immediately. By adopting the flash memory command execution method provided in the embodiment of the present application, it is possible to determine in advance through the command execution record table whether the next command to be executed conflicts with the currently executed command, and directly send the command to be executed without command conflict to the corresponding NAND Flash for execution, without waiting for the command currently being executed by the NAND Flash to be completed before executing the command to be executed. This can avoid violating the command conflict rules in the SCA protocol and realize parallel execution of commands on the CA bus and the DQ bus, thereby increasing the proportion of data transmission time on the DQ bus, thereby increasing bus utilization and improving bus data transmission bandwidth.
[0114] Fig. 9 This is a schematic diagram of the structure of an electronic device according to an embodiment of the present application. Fig. 9At the hardware level, the electronic device includes a processor, and optionally also includes an internal bus, a network interface, and a memory. The memory may include a memory, such as a high-speed random access memory (RAM), and may also include a non-volatile memory (non-volatile memory), such as at least one disk storage. Of course, the electronic device may also include hardware required for other services.
[0115] The processor, network interface and memory can be interconnected through an internal bus, which can be an ISA (Industry Standard Architecture) bus, a PCI (Peripheral Component Interconnect) bus or an EISA (Extended Industry Standard Architecture) bus. The bus can be divided into an address bus, a data bus, a control bus, etc. For ease of representation, Fig. 9 Only one bidirectional arrow is used in the diagram, but this does not mean that there is only one bus or only one type of bus.
[0116] The memory is used to store the program. Specifically, the program may include a program code, and the program code includes a computer operation instruction. The memory may include a memory and a non-volatile memory, and provides instructions and data to the processor.
[0117] The processor reads the corresponding computer program from the non-volatile memory into the memory and then runs it, forming a flash memory command execution device at the logical level. The processor executes the program stored in the memory and is specifically used to perform the following operations: sequentially obtain the commands to be executed from the command queue, determine the first operation type corresponding to the commands to be executed, wherein the first operation type includes DQ operations for data and non-DQ operations for non-data; when the first operation type corresponding to the commands to be executed is a DQ operation, determine the flash memory particle NANDFlash corresponding to the commands to be executed; according to the pre-generated command execution record table, determine whether the command currently being executed by the NAND Flash conflicts with the commands to be executed, and when the judgment result is no, execute the commands to be executed; when the first operation type corresponding to the commands to be executed is a non-DQ operation, execute the commands to be executed.
[0118] The above application Fig. 9The method for executing the flash command execution electronic device disclosed in the illustrated embodiment can be applied to a processor or implemented by a processor. The processor may be an integrated circuit chip with signal processing capabilities. In the implementation process, each step of the above method can be completed by an integrated logic circuit of hardware in the processor or an instruction in the form of software. The above processor can be a general-purpose processor, including a central processing unit (CPU), a network processor (NP), etc.; it can also be a digital signal processor (DSP), an application-specific integrated circuit (ASIC), a field-programmable gate array (FPGA) or other programmable logic devices, discrete gates or transistor logic devices, discrete hardware components. The methods, steps and logic block diagrams disclosed in the embodiments of the present application can be implemented or executed. The general-purpose processor can be a microprocessor or the processor can also be any conventional processor, etc. The steps of the method disclosed in the embodiments of the present application can be directly embodied as a hardware decoding processor for execution, or a combination of hardware and software modules in the decoding processor for execution. The software module can be located in a storage medium mature in the art such as a random access memory, a flash memory, a read-only memory, a programmable read-only memory, or an electrically erasable programmable memory, a register, etc. The storage medium is located in the memory, and the processor reads the information in the memory and completes the steps of the above method in combination with its hardware.
[0119] Of course, in addition to software implementation methods, the electronic device of the present application does not exclude other implementation methods, such as logic devices or a combination of software and hardware, etc. That is to say, the execution subject of the following processing flow is not limited to each logic unit, but can also be hardware or logic devices.
[0120] The embodiment of the present application also provides a computer-readable storage medium, which stores one or more programs, wherein the one or more programs include instructions, which, when executed by a portable electronic device including a plurality of application programs, enable the portable electronic device to execute Figure 3 The method of the embodiment shown is specifically used to perform the following operations:
[0121] Obtain commands to be executed from the command queue in sequence, and determine a first operation type corresponding to the command to be executed, wherein the first operation type includes DQ operations for data and non-DQ operations for non-data; when the first operation type corresponding to the command to be executed is a DQ operation, determine the flash memory particle NANDFlash corresponding to the command to be executed; according to a pre-generated command execution record table, determine whether there is a conflict between the command currently being executed by the NAND Flash and the command to be executed, and when the judgment result is no, execute the command to be executed; when the first operation type corresponding to the command to be executed is a non-DQ operation, execute the command to be executed.
[0122] It will be appreciated by those skilled in the art that embodiments of the present invention may be provided as methods, systems, or computer program products. Therefore, the present invention may take the form of a complete hardware embodiment, a complete software embodiment, or an embodiment combining software and hardware. Furthermore, the present invention may take the form of a computer program product implemented on one or more computer-usable storage media (including but not limited to disk storage, CD-ROM, optical storage, etc.) containing computer-usable program code.
[0123] The present invention is described with reference to flowcharts and / or block diagrams of methods, devices (systems), and computer program products according to embodiments of the present invention. It should be understood that each process and / or block in the flowchart and / or block diagram, as well as the combination of processes and / or blocks in the flowchart and / or block diagram, can be implemented by computer program instructions. These computer program instructions can be provided to a processor of a general-purpose computer, a special-purpose computer, an embedded processor, or other programmable data processing device to produce a machine, so that the instructions executed by the processor of the computer or other programmable data processing device generate instructions for implementing the processes in the flowchart and / or block diagram. Figure 1 A process or multiple processes and / or boxes Figure 1 A device that provides the functions specified in a block or multiple blocks.
[0124] These computer program instructions may also be stored in a computer-readable memory capable of directing a computer or other programmable data processing device to operate in a specific manner, so that the instructions stored in the computer-readable memory produce an article of manufacture comprising an instruction device, which implements the process Figure 1 A process or multiple processes and / or boxes Figure 1 A function specified in one or more boxes.
[0125] These computer program instructions can also be loaded onto a computer or other programmable data processing device so that a series of operating steps are executed on the computer or other programmable device to produce a computer-implemented process, thereby providing instructions for implementing the process. Figure 1 A process or multiple processes and / or boxes Figure 1 The steps for the functions specified in one or more boxes.
[0126] In a typical configuration, a computing device includes one or more processors (CPU), input / output interfaces, network interfaces, and memory.
[0127] Memory may include non-permanent storage in a computer-readable medium, in the form of random access memory (RAM) and / or non-volatile memory, such as read-only memory (ROM) or flash RAM. Memory is an example of a computer-readable medium.
[0128] Computer readable media include permanent and non-permanent, removable and non-removable media that can be implemented by any method or technology to store information. Information can be computer readable instructions, data structures, program modules or other data. Examples of computer storage media include, but are not limited to, phase change memory (PRAM), static random access memory (SRAM), dynamic random access memory (DRAM), other types of random access memory (RAM), read-only memory (ROM), electrically erasable programmable read-only memory (EEPROM), flash memory or other memory technology, compact disk read-only memory (CD-ROM), digital versatile disk (DVD) or other optical storage, magnetic cassettes, magnetic tape magnetic disk storage or other magnetic storage devices or any other non-transmission media that can be used to store information that can be accessed by a computing device. As defined herein, computer readable media does not include temporary computer readable media (transitory media), such as modulated data signals and carrier waves.
[0129] It should also be noted that the terms "include", "comprises" or any other variations thereof are intended to cover non-exclusive inclusion, so that a process, method, commodity or device including a series of elements includes not only those elements, but also other elements not explicitly listed, or also includes elements inherent to such process, method, commodity or device. In the absence of more restrictions, the elements defined by the sentence "comprises a ..." do not exclude the existence of other identical elements in the process, method, commodity or device including the elements.
[0130] Those skilled in the art will appreciate that the embodiments of the present application may be provided as methods, systems or computer program products. Therefore, the present application may take the form of a complete hardware embodiment, a complete software embodiment or an embodiment combining software and hardware. Moreover, the present application may take the form of a computer program product implemented on one or more computer-usable storage media (including but not limited to disk storage, CD-ROM, optical storage, etc.) containing computer-usable program codes.
[0131] The above is only an embodiment of the present application and is not intended to limit the present application. For those skilled in the art, the present application may have various changes and variations. Any modification, equivalent replacement, improvement, etc. made within the spirit and principle of the present application should be included in the scope of the claims of the present application.
Claims
1. A flash memory command execution method, characterized in that: include: sequentially acquiring commands to be executed from the command queue, and determining a first operation type corresponding to the commands to be executed, wherein the first operation type includes a DQ operation for data and a non-DQ operation for non-data; When the first operation type corresponding to the command to be executed is a DQ operation, determining a flash memory granule logical unit LUN corresponding to the command to be executed; Determine the status information of the command currently being executed by the LUN according to the pre-generated command execution record table, determine whether the command currently being executed by the LUN conflicts with the command to be executed according to the status information, and execute the command to be executed when the judgment result is no; wherein the status information includes first status information for indicating the execution status of the CA bus command corresponding to the LUN, and second status information for indicating the execution status of the DQ bus command corresponding to the LUN; When the first operation type corresponding to the command to be executed is a non-DQ operation, the command to be executed is executed.
2. According to the method of claim 1, the command to be executed comprises: The DQ command for the DQ bus and the CA command for the CA bus are characterized in that, when the command to be executed is a DQ command, determining the status information of the command currently being executed by the LUN according to the pre-generated command execution record table, and judging whether the command currently being executed by the LUN conflicts with the command to be executed according to the status information, specifically includes: Querying the data transmission operation of the DQ bus; When it is found that the DQ bus is not performing a data transmission operation, determining first status information that the LUN is currently executing a command according to the command execution record table; It is determined, according to the first status information, whether a command currently being executed by the LUN conflicts with the command to be executed.
3. The method according to claim 2, characterized in that The determining, according to the first status information, whether there is a conflict between the command currently being executed by the LUN and the command to be executed specifically includes: Determine, according to the first status information, that the LUN is currently executing a first operation type corresponding to a command; When the first operation type corresponding to the command currently being executed by the LUN is a DQ operation, determining a second operation type corresponding to the command to be executed, wherein the second operation type includes write data transmission and read data transmission; According to the second operation type, determining whether a command currently being executed by the LUN conflicts with the command to be executed; When the operation type corresponding to the command currently being executed by the LUN is a non-DQ operation, it is determined that there is no conflict between the command currently being executed by the LUN and the command to be executed.
4. The method according to claim 3, characterized in that The determining, according to the second operation type, whether there is a conflict between the command currently being executed by the LUN and the command to be executed specifically includes: Determine a second operation type corresponding to the command to be executed; Determining, according to the command execution record table, an execution specification of the command currently being executed by the LUN, wherein the execution specification carries a preset operation type that conflicts with the command being executed; Determine whether the second operation type corresponding to the command to be executed matches the operation type recorded in the execution specification; When the judgment result is yes, it is determined that the command currently being executed by the LUN conflicts with the command to be executed; When the judgment result is no, it is determined that there is no conflict between the command currently being executed by the LUN and the command to be executed.
5. The method according to claim 2, characterized in that: When the command to be executed is a CA command, determining, according to a pre-generated command execution record table, status information of a command currently being executed by the LUN, and judging, according to the status information, whether there is a conflict between the command currently being executed by the LUN and the command to be executed, specifically includes: Determine, according to the command execution record table, second status information of the command currently being executed by the LUN, wherein the second status information includes: no DQ data transmission operation is being performed or a DQ data transmission operation is being performed; When it is determined according to the second status information that the DQ bus corresponding to the LUN is not performing a DQ data transmission operation, determining according to the command execution record table the first status information that the LUN is currently executing a command; Determine, according to the first status information, that the LUN is currently executing a first operation type corresponding to a command; When the first operation type corresponding to the command currently being executed by the LUN is a DQ operation, it is determined that the command currently being executed by the LUN conflicts with the command to be executed; When the first operation type corresponding to the command currently being executed by the LUN is a non-DQ operation, determining that there is no conflict between the command currently being executed by the LUN and the command to be executed; When it is determined according to the second state information that the DQ bus corresponding to the LUN is performing a DQ data transmission operation, determining a read / write type of a command currently being executed by the LUN according to the second state information; According to the read / write type, it is determined whether a command currently being executed by the LUN conflicts with the command to be executed.
6. The method according to claim 5, characterized in that The determining, according to the read / write type, whether there is a conflict between the command currently being executed by the LUN and the command to be executed specifically includes: Determine the execution specification corresponding to the command to be executed; Determine whether the read / write type of the command currently being executed by the LUN matches the operation type recorded in the execution specification corresponding to the command to be executed; When the judgment result is yes, it is determined that the command currently being executed by the LUN conflicts with the command to be executed; When the judgment result is no, it is determined that there is no conflict between the command currently being executed by the LUN and the command to be executed.
7. The method according to claim 1, characterized in that The command execution record table is generated in advance, specifically including: Get the command information of the currently executing command; Determine, according to the command information, the LUN, the first operation type, and the second operation type corresponding to the command being executed; Determine first status information and second status information corresponding to the LUN according to the first operation type and the second operation type; A command execution record table corresponding to the LUN is generated according to the first status information and the second status information.
8. The method according to claim 7, characterized in that Also includes: Get the execution progress of the currently executing command; When the currently executing command is completed, the command execution record table corresponding to the LUN is reset.
9. A flash memory command execution device, characterized in that: include: A first operation type identification unit, configured to sequentially obtain commands to be executed from the command queue, and determine a first operation type corresponding to the commands to be executed, wherein the first operation type includes a DQ operation for data and a non-DQ operation for non-data; A flash memory particle determination unit, configured to determine a flash memory particle NAND Flash corresponding to the command to be executed when the first operation type corresponding to the command to be executed is a DQ type operation; A command conflict detection unit, configured to determine, according to a pre-generated command execution record table, status information of a command currently being executed by the LUN, and to determine, according to the status information, whether a conflict exists between the command currently being executed by the NAND Flash and the command to be executed, and to execute the command to be executed when the determination result is no; wherein the status information includes first status information for indicating an execution status of a CA bus command corresponding to the LUN, and second status information for indicating an execution status of a DQ bus command corresponding to the LUN; The command execution unit is used to execute the command to be executed when the first operation type corresponding to the command to be executed is a non-DQ operation.
10. A flash memory command execution device, comprising: processor; a memory arranged to store computer executable instructions which, when executed, cause the processor to: sequentially acquiring commands to be executed from the command queue, and determining a first operation type corresponding to the commands to be executed, wherein the first operation type includes a DQ operation for data and a non-DQ operation for non-data; When the first operation type corresponding to the command to be executed is a DQ operation, determining a flash memory particle NAND Flash corresponding to the command to be executed; According to the pre-generated command execution record table, determine the status information of the command currently being executed by the LUN, and judge whether the command currently being executed by the NAND Flash conflicts with the command to be executed according to the status information, and when the judgment result is no, execute the command to be executed; wherein the status information includes first status information for indicating the execution status of the CA bus command corresponding to the LUN, and second status information for indicating the execution status of the DQ bus command corresponding to the LUN When the first operation type corresponding to the command to be executed is a non-DQ operation, the command to be executed is executed.
11. A computer-readable storage medium storing one or more programs, which, when executed by an electronic device including a plurality of application programs, enable the electronic device to execute the flash memory command execution method as described in any one of claims 1 to 8.
Citation Information
Patent Citations
Method and system for processing file name conflict in multi-terminal concurrent operation
CN103514031A
Controller command scheduling in a memory system to increase command bus utilization
CN112585570A