CN109324828B - 一种在验证平台中实现闪存多命令并行执行的方法 - Google Patents
一种在验证平台中实现闪存多命令并行执行的方法 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
本发明公开一种在验证平台中实现闪存多命令并行执行的方法,在验证平台上模拟闪存器件,每一个LUN对应一个命令执行线程,主线程解析命令并执行立即命令的数据返回,实现了在TARGET、LUN上不同存储层次结构上命令的并行执行。参数化TARGET、LUN的个数,即参数化生成命令执行线程的数量,便于移植到有不同闪存存储结构的验证平台中。不同的命令对应不同的命令执行过程,方便命令操作的移植和复用。
Description
技术领域
本发明涉及一种验证平台中实现闪存多命令并行执行的方法,属于存储器技术领域。
背景技术
在操作真实的闪存器件时,闪存(NAND FLASH)常常需要并行执行多条命令,并且并行执行的多条命令之间互不影响,即执行第一条命令的同时,可以接收并执行第二条命令,实现第一条命令和第二条命令的并行执行。根据闪存的存储结构特点,闪存有三种并行命令执行方式:不同TARGET之间并行执行命令、相同TARGET不同LUN之间并行执行命令、相同TARGET相同LUN上并行执行命令。现在的验证平台是通过使用并行模型(非面向对象语言编写的模型)的方式实现闪存多命令并行执行,存在模型内部信号功能复杂,不利于模型修改、新特性增加和模型移植等缺陷,限制了模型使用场景,不能简单方便的应用在有不同特性要求的验证平台中。
发明内容
针对现有技术的缺陷,本发明提供一种在验证平台中实现闪存多命令并行执行的方法,以实现不同TARGET之间、相同TARGET不同LUN之间、相同TARGET相同LUN上并行执行命令。
为了解决所述技术问题,本发明采用的技术方案是:一种在验证平台中实现闪存多命令并行执行的方法,包括以下步骤:S01)、验证平台为每个TARGET上的每一个LUN生成一个命令执行线程,每个TARGET和每一个LUN都有唯一的标号来标识,命令执行线程处于等待命令触发状态,验证平台主线程处于等待命令输入状态,主线程与每一个命令执行线程并行执行;S02)、当验证平台主线程接收到命令后,主线程将命令送到命令解析器进行解析,解析出需要执行的命令和执行该命令的TARGET、LUN编号;S03)、如果该命令是即时命令,命令解析器执行该命令操作并将输出数据放到数据寄存器输出,主线程返回等待命令输入状态,不触发命令执行线程;S04)、如果该命令是带延时的命令,命令解析器触发相应的TARGET、LUN编号的命令执行线程,同时将命令输出给该命令执行线程,主线程返回等待命令输入状态,命令执行线程接收到事件触发,执行该命令的后续操作;S05)、如果在某一个TARGET、LUN的命令执行线程执行过程中,主线程接收到新的命令请求,则执行重复步骤S02、S03、S04。
进一步的,执行该方法前,首先在验证平台建立闪存架构,闪存架构包括多个TARGET、命令解析器和数据寄存器,每个TARGET包含多个LUN,命令解析器解析输入的命令并传递至相应TARGET的LUN,数据寄存器寄存命令解析后的数据并输出。
进一步的,该方法应用在基于面向对象语言的验证平台中。
本发明的有益效果:本方法对于在验证平台中实现闪存多命令并行操作简单明了,在验证平台上模拟闪存器件,每一个LUN对应一个命令执行线程,主线程解析命令并执行立即命令的数据返回,实现了在TARGET、LUN上不同存储层次结构上命令的并行执行。参数化TARGET、LUN的个数,即参数化生成命令执行线程的数量,便于移植到有不同闪存存储结构的验证平台中。不同的命令对应不同的命令执行过程,方便命令操作的移植和复用。
该方法能够应用在基于面向对象语言的验证平台中,相比于在验证平台用并行模型(非面向对象语言编写的模型)的方式实现闪存模型的方法,本方法功能模块之间相互独立,便于模型修改、新特性增加和模型在不同验证平台上移植,能够更好的应用在有不同特性要求的验证平台中。
附图说明
图1是闪存器件存储结构示意图;
图2是验证平台中闪存模型架构示意图;
图3是主线程执行过程示意图;
图4是一个命令执行线程的执行过程示意图。
具体实施方式
下面结合附图和具体实施例对本发明作进一步的说明。
如图1所示,为闪存器件存储结构示意图,包括多个TARGET,每个TARGET又包括多个LUN,命令输入至 闪存,经过地址解析后,从对应地址的TARGET、LUN上执行数据读写操作。根据闪存的存储结构,会有三种并行命令执行方式,不同TARGET之间并行执行命令、相同TARGET不同LUN上并行执行命令、相同TARGET相同LUN上并行执行命令。根据闪存命令的特点,可以分为即时命令和带延时的命令,闪存接收到即时命令后立即返回请求的数据完成该命令操作,闪存接收到带延时的命令后,后续的操作需要闪存消耗一定的时间来完成操作,使用闪存接口上的状态信号来标识当前命令是否操作完成。在不同TARGET之间或相同TARGET不同LUN上并行执行命令时,并行执行命令可以是任意命令,在相同TARGET相同LUN上并行执行命令时,如果前一条输入的命令为带延时的命令,则后一条命令必定为即时命令。
本方法就是根据闪存的上述特点提出的。
本实施例所述在验证平台中实现闪存多命令并行执行的方法包括以下步骤:S01)、在验证平台建立闪存架构,如图2所示,闪存架构包括多个TARGET、命令解析器和数据寄存器,每个TARGET包括多个LUN,命令解析器解析输入的命令并传递至相应TARGET的LUN,数据寄存器寄存命令解析后的数据并输出。
S02)、验证平台为每个TARGET上的每一个LUN生成一个命令执行线程,每个TARGET和每一个LUN都有唯一的标号来标识,命令执行线程处于等待命令触发状态,验证平台主线程处于等待命令输入状态,主线程与每一个命令执行线程并行执行;
S03)、当验证平台主线程接收到命令后,主线程将命令送到命令解析器进行解析,解析出需要执行的命令和执行该命令的TARGET、LUN编号;
S04)、如果该命令是即时命令,命令解析器执行该命令操作并将输出数据放到数据寄存器输出,主线程返回等待命令输入状态,不触发命令执行线程;
S05)、如果该命令是带延时的命令,命令解析器触发相应的TARGET、LUN编号的命令执行线程,同时将命令输出给该命令执行线程,主线程返回等待命令输入状态,命令执行线程接收到事件触发,执行该命令的后续操作;
S06)、如果在某一个TARGET、LUN的命令执行线程执行过程中,主线程接收到新的命令请求,则执行重复步骤S03、S04、S05。
如图3所示,为主线程执行过程示意图,图4是一个命令执行线程的执行过程,每一个LUN对应一个命令执行线程,命令执行线程与主线程并行执行。
本实施例所述方法对于在验证平台中实现闪存多命令并行操作简单明了,在验证平台上模拟闪存器件,每一个LUN对应一个命令执行线程,主线程解析命令并执行立即命令的数据返回,实现了在TARGET、LUN上不同存储层次结构上命令的并行执行。参数化TARGET、LUN的个数,即参数化生成命令执行线程的数量,便于移植到有不同闪存存储结构的验证平台中。不同的命令对应不同的命令执行过程,方便命令的移植和复用。
该方法能够应用在基于面向对象语言的验证平台中,相比于在验证平台用并行模型(非面向对象语言编写的模型)的方式实现闪存模型的方法,本方法功能模块之间相互独立,便于模型修改、新特性增加和模型在不同验证平台上移植,能够更好的应用在有不同特性要求的验证平台中。
以上描述的仅是本发明的基本原理和优选实施例,本领域技术人员根据本发明做出的改进和替换,属于本发明的保护范围。
Claims (2)
1.一种在验证平台中实现闪存多命令并行执行的方法,其特征在于:包括以下步骤:
S01)、首先在验证平台建立闪存架构,闪存架构包括多个TARGET、命令解析器和数据寄存器,每个TARGET包含多个LUN,命令解析器解析输入的命令并传递至相应TARGET的LUN,数据寄存器寄存命令解析后的数据并输出;S02)、验证平台为每个TARGET上的每一个LUN生成一个命令执行线程,每个TARGET和每一个LUN都有唯一的标号来标识,命令执行线程处于等待命令触发状态,验证平台主线程处于等待命令输入状态,主线程与每一个命令执行线程并行执行;S03)、当验证平台主线程接收到命令后,主线程将命令送到命令解析器进行解析,解析出需要执行的命令和执行该命令的TARGET、LUN编号;S04)、如果该命令是即时命令,命令解析器执行该命令操作并将输出数据放到数据寄存器输出,主线程返回等待命令输入状态,不触发命令执行线程;S05)、如果该命令是带延时的命令,命令解析器触发相应的TARGET、LUN编号的命令执行线程,同时将命令输出给该命令执行线程,主线程返回等待命令输入状态,命令执行线程接收到事件触发,执行该命令的后续操作;S06)、如果在某一个TARGET、LUN的命令执行线程执行过程中,主线程接收到新的命令请求,则执行重复步骤S03、S04、S05。
2.根据权利要求1所述的在验证平台中实现闪存多命令并行执行的方法,其特征在于:该方法应用在基于面向对象语言的验证平台中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811108370.1A CN109324828B (zh) | 2018-09-21 | 2018-09-21 | 一种在验证平台中实现闪存多命令并行执行的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811108370.1A CN109324828B (zh) | 2018-09-21 | 2018-09-21 | 一种在验证平台中实现闪存多命令并行执行的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109324828A CN109324828A (zh) | 2019-02-12 |
CN109324828B true CN109324828B (zh) | 2023-06-02 |
Family
ID=65266236
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811108370.1A Active CN109324828B (zh) | 2018-09-21 | 2018-09-21 | 一种在验证平台中实现闪存多命令并行执行的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109324828B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110147373B (zh) * | 2019-05-23 | 2021-06-22 | 泰康保险集团股份有限公司 | 数据处理方法、装置以及电子设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1613120A (zh) * | 2002-01-04 | 2005-05-04 | 英特尔公司 | 使用多个命令周期的闪存存储器访问 |
CN102890477A (zh) * | 2012-09-26 | 2013-01-23 | 西安交通大学 | 一种在线主动动平衡测控装置及测控方法 |
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 |
---|---|---|---|---|
ATE323997T1 (de) * | 1998-10-16 | 2006-05-15 | Auspice Inc | Betriebskommunikationsprotokoll |
JP4048382B1 (ja) * | 2006-09-01 | 2008-02-20 | 富士ゼロックス株式会社 | 情報処理システムおよびプログラム |
US9268608B2 (en) * | 2009-02-26 | 2016-02-23 | Oracle International Corporation | Automatic administration of UNIX commands |
CN102012791B (zh) * | 2010-10-15 | 2013-06-19 | 中国人民解放军国防科学技术大学 | 基于Flash的数据存储PCIE板卡 |
US8819328B2 (en) * | 2010-12-30 | 2014-08-26 | Sandisk Technologies Inc. | Controller and method for performing background operations |
RU2454739C1 (ru) * | 2011-01-12 | 2012-06-27 | Российская Федерация, от имени которой выступает Министерство обороны Российской Федерации | Способ программирования имс flash-памяти типа nand и устройство для его реализации |
US10216625B2 (en) * | 2012-09-24 | 2019-02-26 | Sk Hynix Memory Solutions Inc. | Hardware integrity verification |
US9665533B2 (en) * | 2013-12-20 | 2017-05-30 | Rambus Inc. | Blob pools, selectors, and command set implemented 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 (zh) * | 2016-04-05 | 2016-07-20 | 山东华芯半导体有限公司 | 一种基于并行多通道结构的eMMC控制器 |
-
2018
- 2018-09-21 CN CN201811108370.1A patent/CN109324828B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1613120A (zh) * | 2002-01-04 | 2005-05-04 | 英特尔公司 | 使用多个命令周期的闪存存储器访问 |
CN102890477A (zh) * | 2012-09-26 | 2013-01-23 | 西安交通大学 | 一种在线主动动平衡测控装置及测控方法 |
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 (zh) | 2019-02-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112286746B (zh) | 针对axi从设备接口的通用验证平台及方法 | |
US20070055911A1 (en) | A Method and System for Automatically Generating a Test-Case | |
US11520968B2 (en) | Verification platform for system on chip and verification method thereof | |
CN107015914B (zh) | 数据标定方法及*** | |
CN110321260B (zh) | 一种基于uvm的axi总线接口读写数据比较方法和uvm验证平台 | |
CN112597014A (zh) | 基于数据驱动的自动化测试方法、装置、介质及电子设备 | |
CN104461854A (zh) | 一种舰船装备软件通用仿真测试平台及其构建方法 | |
CN109597653A (zh) | Bios与bmc命令交互的方法、bios及bmc | |
CN109324828B (zh) | 一种在验证平台中实现闪存多命令并行执行的方法 | |
CN110688269B (zh) | 采用axi总线接口的rtl代码自动化验证装置及方法 | |
US8874966B1 (en) | Storage device error simulator tool | |
CN113849419B (zh) | 芯片的测试向量生成方法、***、设备及存储介质 | |
CN115168129A (zh) | 植入仿真器的自动化测试***及ssd硬盘测试方法 | |
CN117891739A (zh) | 内存测试方法、装置、可读存储介质及电子设备 | |
CN116737473A (zh) | 芯片验证的存储器读取、写入方法及其相关装置 | |
CN106802847B (zh) | 用于模拟慢速存储盘的方法和装置 | |
KR102104621B1 (ko) | 네트워크 부하를 저감시킬 수 있는 레이더 신호 처리 장치의 시험 방법 | |
KR102104620B1 (ko) | 네트워크 부하를 저감시킬 수 있는 레이더 신호 처리 장치의 시험 장비 | |
CN108228735A (zh) | 一种数据处理方法、装置及*** | |
CN114138570A (zh) | 一种fpga的测试方法、***、设备以及介质 | |
WO2021247074A1 (en) | Resumable instruction generation | |
CN109783417B (zh) | 一种串口通讯装置及方法 | |
CN113608974B (zh) | 一种分布式存储***的性能压测方法、***及相关组件 | |
CN113656268B (zh) | 业务服务的性能测试方法、装置、电子设备和存储介质 | |
WO2023246245A1 (zh) | 嵌入式软件模型架构、电池管理***控制器和车辆 |
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 |