CN109324828B - Method for realizing flash memory multi-command parallel execution in verification platform - Google Patents
Method for realizing flash memory multi-command parallel execution in verification platform Download PDFInfo
- Publication number
- CN109324828B CN109324828B CN201811108370.1A CN201811108370A CN109324828B CN 109324828 B CN109324828 B CN 109324828B CN 201811108370 A CN201811108370 A CN 201811108370A CN 109324828 B CN109324828 B CN 109324828B
- Authority
- CN
- China
- Prior art keywords
- command
- target
- execution
- flash memory
- thread
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000012795 verification Methods 0.000 title claims abstract description 36
- 230000015654 memory Effects 0.000 title claims abstract description 32
- 238000000034 method Methods 0.000 title claims abstract description 28
- 230000001960 triggered effect Effects 0.000 claims description 3
- 230000005055 memory storage Effects 0.000 abstract description 3
- 238000010586 diagram Methods 0.000 description 5
- 230000004048 modification Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000007547 defect Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 230000009131 signaling function Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3818—Decoding for concurrent execution
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
The invention discloses a method for realizing the parallel execution of flash memory multiple commands in a verification platform, which simulates a flash memory device on the verification platform, wherein each LUN corresponds to a command execution thread, the main thread analyzes the commands and executes the data return of immediate commands, thereby realizing the parallel execution of the commands on different storage hierarchies on TARGET and LUN. The number of parameterized TARGET and LUN, i.e. the number of parameterized generation command execution threads, is convenient to be transplanted to verification platforms with different flash memory storage structures. Different commands correspond to different command execution processes, so that the transplanting and multiplexing of command operations are facilitated.
Description
Technical Field
The invention relates to a method for realizing flash memory multi-command parallel execution in a verification platform, belonging to the technical field of memories.
Background
When operating a real flash memory device, the flash memory (NAND FLASH) often needs to execute multiple commands in parallel, and the multiple commands executed in parallel do not affect each other, i.e. the first command is executed while the second command can be received and executed, so that the parallel execution of the first command and the second command is realized. According to the storage structure characteristics of the flash memory, the flash memory has three parallel command execution modes: parallel execution of commands between different TARGETs, parallel execution of commands between different LUNs of the same TARGET, and parallel execution of commands on the same LUNs of the same TARGET. The existing verification platform realizes flash memory multi-command parallel execution by using a parallel model (a model written in a non-object-oriented language), has the defects of complex signal function in the model, unfavorable model modification, new characteristic addition, model transplanting and the like, limits the use scene of the model, and cannot be simply and conveniently applied to the verification platform with different characteristic requirements.
Disclosure of Invention
Aiming at the defects of the prior art, the invention provides a method for realizing the parallel execution of flash memory multi-command in an authentication platform, so as to realize the parallel execution of commands among different TARGETs, among different LUNs of the same TARGET and on the same LUN of the same TARGET.
In order to solve the technical problems, the invention adopts the following technical scheme: a method for implementing flash memory multi-command parallel execution in an authentication platform, comprising the steps of: s01), the verification platform generates a command execution thread for each LUN on each TARGET, each TARGET and each LUN are marked by unique marks, the command execution thread is in a waiting command triggering state, the verification platform main thread is in a waiting command input state, and the main thread and each command execution thread execute in parallel; s02), after the main thread of the verification platform receives the command, the main thread sends the command to a command analyzer for analysis, and the command to be executed, the TARGET for executing the command and the LUN number are analyzed; s03), if the command is an instant command, the command parser executes the command operation and puts output data into a data register for output, the main thread returns to a state of waiting for command input, and the command execution thread is not triggered; s04), if the command is a command with delay, the command parser triggers a corresponding command execution thread with a TARGET and a LUN number, and simultaneously outputs the command to the command execution thread, the main thread returns to a waiting command input state, the command execution thread receives event trigger, and the subsequent operation of the command is executed; s05), if the main thread receives a new command request during execution of a command execution thread of a TARGET or LUN, repeating steps S02, S03, and S04.
Further, before executing the method, a flash memory architecture is first established on the verification platform, wherein the flash memory architecture comprises a plurality of TARGET, a command parser and a data register, each TARGET comprises a plurality of LUNs, the command parser parses an input command and transmits the input command to the LUNs of the corresponding TARGET, and the data register registers and outputs data after command parsing.
Further, the method is applied to an object-oriented language-based verification platform.
The invention has the beneficial effects that: the method is simple and clear for realizing the parallel operation of the flash memory multi-command in the verification platform, the flash memory device is simulated on the verification platform, each LUN corresponds to a command execution thread, the main thread analyzes the command and executes the data return of the immediate command, and the parallel execution of the commands on different storage hierarchies on the TARGET and the LUN is realized. The number of parameterized TARGET and LUN, i.e. the number of parameterized generation command execution threads, is convenient to be transplanted to verification platforms with different flash memory storage structures. Different commands correspond to different command execution processes, so that the transplanting and multiplexing of command operations are facilitated.
Compared with the method for realizing the flash memory model by using a parallel model (a model written in a non-object-oriented language) in the verification platform, the method has the advantages that functional modules are mutually independent, model modification, new characteristic addition and model transplanting on different verification platforms are facilitated, and the method can be better applied to the verification platforms with different characteristic requirements.
Drawings
FIG. 1 is a schematic diagram of a memory structure of a flash memory device;
FIG. 2 is a schematic diagram of a flash model architecture in a verification platform;
FIG. 3 is a schematic diagram of a main thread execution process;
FIG. 4 is a schematic diagram of the execution of a command execution thread.
Detailed Description
The invention will be further described with reference to the drawings and the specific examples.
As shown in FIG. 1, a schematic storage structure of a flash memory device includes a plurality of TARGET, each TARGET includes a plurality of LUNs, a command is input into the flash memory, and after address resolution, data read-write operations are performed from the TARGET and the LUNs of the corresponding addresses. According to the storage structure of the flash memory, there are three parallel command execution modes, namely, parallel commands are executed among different TARGETs, parallel commands are executed on different LUNs of the same TARGET, and parallel commands are executed on the same LUNs of the same TARGET. According to the characteristics of the flash memory command, the flash memory command can be divided into an instant command and a command with delay, the flash memory immediately returns the requested data to complete the command operation after receiving the instant command, the flash memory is required to consume a certain time for completing the operation after receiving the command with delay, and a state signal on a flash memory interface is used for identifying whether the current command is completed. When commands are executed in parallel between different TARGET or on different LUNs of the same TARGET, the parallel execution command may be any command, and when commands are executed in parallel on the same LUN of the same TARGET, if the previous input command is a delayed command, the next command must be an immediate command.
The method is provided according to the characteristics of the flash memory.
The method for implementing flash memory multi-command parallel execution in the verification platform according to the embodiment comprises the following steps: s01), a flash memory architecture is built on the verification platform, as shown in fig. 2, where the flash memory architecture includes multiple TARGET, a command parser and a data register, each TARGET includes multiple LUNs, the command parser parses an input command and transmits the command to a LUN of a corresponding TARGET, and the data register registers and outputs data after command parsing.
S02), the verification platform generates a command execution thread for each LUN on each TARGET, each TARGET and each LUN are marked by unique marks, the command execution thread is in a waiting command triggering state, the verification platform main thread is in a waiting command input state, and the main thread and each command execution thread execute in parallel;
s03), after the main thread of the verification platform receives the command, the main thread sends the command to a command analyzer for analysis, and the command to be executed, the TARGET for executing the command and the LUN number are analyzed;
s04), if the command is an instant command, the command parser executes the command operation and puts output data into a data register for output, the main thread returns to a state of waiting for command input, and the command execution thread is not triggered;
s05), if the command is a command with delay, the command parser triggers a corresponding command execution thread with a TARGET and a LUN number, and simultaneously outputs the command to the command execution thread, the main thread returns to a state of waiting for command input, and the command execution thread receives event trigger and executes subsequent operation of the command;
s06), if the main thread receives a new command request during execution of a command execution thread of a TARGET or LUN, repeating steps S03, S04, and S05.
As shown in fig. 3, which is a schematic diagram of a main thread execution process, fig. 4 is an execution process of a command execution thread, where each LUN corresponds to a command execution thread, and the command execution thread executes in parallel with the main thread.
The method in this embodiment is simple and clear for implementing flash memory multi-command parallel operation in the verification platform, simulates a flash memory device on the verification platform, each LUN corresponds to a command execution thread, the main thread parses the command and executes the data return of the immediate command, and implements the parallel execution of commands on different storage hierarchies on the TARGET and the LUN. The number of parameterized TARGET and LUN, i.e. the number of parameterized generation command execution threads, is convenient to be transplanted to verification platforms with different flash memory storage structures. Different commands correspond to different command execution processes, so that the commands are convenient to transplant and multiplex.
Compared with the method for realizing the flash memory model by using a parallel model (a model written in a non-object-oriented language) in the verification platform, the method has the advantages that functional modules are mutually independent, model modification, new characteristic addition and model transplanting on different verification platforms are facilitated, and the method can be better applied to the verification platforms with different characteristic requirements.
The foregoing description is only of the basic principles and preferred embodiments of the present invention, and modifications and alternatives thereto will occur to those skilled in the art to which the present invention pertains, as defined by the appended claims.
Claims (2)
1. A method for realizing flash memory multi-command parallel execution in an authentication platform is characterized in that: the method comprises the following steps:
s01), firstly, establishing a flash memory architecture on a verification platform, wherein the flash memory architecture comprises a plurality of TARGET, a command parser and a data register, each TARGET comprises a plurality of LUNs, the command parser parses an input command and transmits the input command to the LUNs of the corresponding TARGET, and the data register registers and outputs data after command parsing; s02), the verification platform generates a command execution thread for each LUN on each TARGET, each TARGET and each LUN are marked by unique marks, the command execution thread is in a waiting command triggering state, the verification platform main thread is in a waiting command input state, and the main thread and each command execution thread execute in parallel; s03), after the main thread of the verification platform receives the command, the main thread sends the command to a command analyzer for analysis, and the command to be executed, the TARGET for executing the command and the LUN number are analyzed; s04), if the command is an instant command, the command parser executes the command operation and puts output data into a data register for output, the main thread returns to a state of waiting for command input, and the command execution thread is not triggered; s05), if the command is a command with delay, the command parser triggers a corresponding command execution thread with a TARGET and a LUN number, and simultaneously outputs the command to the command execution thread, the main thread returns to a state of waiting for command input, and the command execution thread receives event trigger and executes subsequent operation of the command; s06), if the main thread receives a new command request during execution of a command execution thread of a TARGET or LUN, repeating steps S03, S04, and S05.
2. The method for implementing flash multi-command parallel execution in an authentication platform according to claim 1, wherein: the method is applied to an object-oriented language-based verification platform.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811108370.1A CN109324828B (en) | 2018-09-21 | 2018-09-21 | Method for realizing flash memory multi-command parallel execution in verification platform |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811108370.1A CN109324828B (en) | 2018-09-21 | 2018-09-21 | Method for realizing flash memory multi-command parallel execution in verification platform |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109324828A CN109324828A (en) | 2019-02-12 |
CN109324828B true CN109324828B (en) | 2023-06-02 |
Family
ID=65266236
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811108370.1A Active CN109324828B (en) | 2018-09-21 | 2018-09-21 | Method for realizing flash memory multi-command parallel execution in verification platform |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109324828B (en) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110147373B (en) * | 2019-05-23 | 2021-06-22 | 泰康保险集团股份有限公司 | Data processing method and device and electronic equipment |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1613120A (en) * | 2002-01-04 | 2005-05-04 | 英特尔公司 | Flash memory access using a plurality of command cycles |
CN102890477A (en) * | 2012-09-26 | 2013-01-23 | 西安交通大学 | On-line active dynamic balance measurement and control device and on-line active dynamic balance measurement and control method |
WO2016039774A1 (en) * | 2014-09-12 | 2016-03-17 | Intel Corporation | Facilitating dynamic parallel scheduling of command packets at graphics processing units on computing devices |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
AU769359B2 (en) * | 1998-10-16 | 2004-01-22 | Auspice, Inc. | Enterprise level integration and communication techniques |
JP4048382B1 (en) * | 2006-09-01 | 2008-02-20 | 富士ゼロックス株式会社 | Information processing system and program |
US9268608B2 (en) * | 2009-02-26 | 2016-02-23 | Oracle International Corporation | Automatic administration of UNIX commands |
CN102012791B (en) * | 2010-10-15 | 2013-06-19 | 中国人民解放军国防科学技术大学 | Flash based PCIE (peripheral component interface express) board for data storage |
US8819328B2 (en) * | 2010-12-30 | 2014-08-26 | Sandisk Technologies Inc. | Controller and method for performing background operations |
RU2454739C1 (en) * | 2011-01-12 | 2012-06-27 | Российская Федерация, от имени которой выступает Министерство обороны Российской Федерации | Method of programming nand flash memory ic and apparatus for realising said method |
US10216625B2 (en) * | 2012-09-24 | 2019-02-26 | Sk Hynix Memory Solutions Inc. | Hardware integrity verification |
US9934194B2 (en) * | 2013-12-20 | 2018-04-03 | Rambus Inc. | Memory packet, data structure and hierarchy within a memory appliance for accessing memory |
US20170046102A1 (en) * | 2015-08-14 | 2017-02-16 | Marvell World Trade Ltd. | Flexible interface for nand flash memory |
CN105788636A (en) * | 2016-04-05 | 2016-07-20 | 山东华芯半导体有限公司 | EMMC controller based on parallel multichannel structure |
-
2018
- 2018-09-21 CN CN201811108370.1A patent/CN109324828B/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1613120A (en) * | 2002-01-04 | 2005-05-04 | 英特尔公司 | Flash memory access using a plurality of command cycles |
CN102890477A (en) * | 2012-09-26 | 2013-01-23 | 西安交通大学 | On-line active dynamic balance measurement and control device and on-line active dynamic balance measurement and control method |
WO2016039774A1 (en) * | 2014-09-12 | 2016-03-17 | Intel Corporation | Facilitating dynamic parallel scheduling of command packets at graphics processing units on computing devices |
Also Published As
Publication number | Publication date |
---|---|
CN109324828A (en) | 2019-02-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11520968B2 (en) | Verification platform for system on chip and verification method thereof | |
CN112286746B (en) | Universal verification platform and method for AXI slave device interface | |
US20070055911A1 (en) | A Method and System for Automatically Generating a Test-Case | |
CN105487987B (en) | A kind of concurrent sequence of processing reads the method and device of IO | |
CN107015914B (en) | Data calibration method and system | |
CN117170822B (en) | System model and code joint simulation system using distributed network middleware | |
CN110688269B (en) | RTL code automatic verification device and method adopting AXI bus interface | |
CN113849419B (en) | Method, system, equipment and storage medium for generating test vector of chip | |
CN110321260B (en) | Uvm-based AXI bus interface read-write data comparison method and UVM verification platform | |
CN115168129A (en) | Automatic test system of implant simulator and SSD (solid State disk) test method | |
CN109324828B (en) | Method for realizing flash memory multi-command parallel execution in verification platform | |
CN116737473A (en) | Memory reading and writing methods for chip verification and related devices | |
KR102104619B1 (en) | Testing apparatus for Radar processor using scenario | |
US12072789B2 (en) | Resumable instruction generation | |
CN117891739A (en) | Memory testing method and device, readable storage medium and electronic equipment | |
CN117476086A (en) | Memory performance test method and device, readable storage medium and electronic equipment | |
CN115993937A (en) | A method and device for realizing a multi-process solid-state hard drive simulation environment | |
CN113656268B (en) | Performance test method and device for business service, electronic equipment and storage medium | |
CN116663461A (en) | DUT simulation verification platform, verification method thereof, medium and electronic equipment | |
KR102104621B1 (en) | Testing method for Radar processor that can reduce network load | |
KR102104620B1 (en) | Testing apparatus for Radar processor that can reduce network load | |
CN119783603B (en) | Multi-platform fusion verification system | |
CN117539475B (en) | Dynamic calibration method based on API and database | |
CN114090197B (en) | Optimization method for multi-process AWG access control | |
WO2016107145A1 (en) | Method for implementing white-box test and test control terminal |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |