CN113419869B - 一种乱序数据的产生方法、装置、设备及存储介质 - Google Patents

一种乱序数据的产生方法、装置、设备及存储介质 Download PDF

Info

Publication number
CN113419869B
CN113419869B CN202110978207.6A CN202110978207A CN113419869B CN 113419869 B CN113419869 B CN 113419869B CN 202110978207 A CN202110978207 A CN 202110978207A CN 113419869 B CN113419869 B CN 113419869B
Authority
CN
China
Prior art keywords
data
thread
threads
current thread
receiving end
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
Application number
CN202110978207.6A
Other languages
English (en)
Other versions
CN113419869A (zh
Inventor
王向科
杨萌
刘凯
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Suzhou Inspur Intelligent Technology Co Ltd
Original Assignee
Suzhou Inspur Intelligent Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Suzhou Inspur Intelligent Technology Co Ltd filed Critical Suzhou Inspur Intelligent Technology Co Ltd
Priority to CN202110978207.6A priority Critical patent/CN113419869B/zh
Publication of CN113419869A publication Critical patent/CN113419869A/zh
Priority to US18/255,922 priority patent/US11907758B2/en
Priority to PCT/CN2021/127319 priority patent/WO2023024246A1/zh
Application granted granted Critical
Publication of CN113419869B publication Critical patent/CN113419869B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4221Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being an input/output bus, e.g. ISA bus, EISA bus, PCI bus, SCSI bus
    • G06F13/423Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being an input/output bus, e.g. ISA bus, EISA bus, PCI bus, SCSI bus with synchronous protocol

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明公开了一种乱序数据的产生方法、装置、设备及存储介质,该方法包括:创建多个线程;指示全部线程通过随机获取的方式获取传输权限,并在任意线程获取到传输权限后确定该任意线程为当前线程,指示当前线程将当前产生的数据及对应数据标识驱动到AXI总线上供接收端读取,以基于接收端读取的数据及对应数据标识实现乱序读取测试;在当前线程发送当前产生的数据及对应数据标识结束后回收传输权限,并返回执行指示全部线程通过随机获取的方式获取传输权限的步骤;多个线程与多个数据标识一一对应,同一时刻仅允许一个线程获取传输权限。本申请能够有效模拟AXI协议乱序读取的场景,进而实现接收端是否支持AXI协议乱序读取的有效测试。

Description

一种乱序数据的产生方法、装置、设备及存储介质
技术领域
本发明涉及数据传输技术领域,更具体地说,涉及一种乱序数据的产生方法、装置、设备及存储介质。
背景技术
AXI(Advanced eXtensible Interface,先进可扩展接口)协议是一种高性能、高带宽、低延迟的片内总线协议,支持乱序传输特性。具体来说,针对乱序传输特性,发送端可以通过AXI总线(AXI总线为基于AXI协议实现数据传输的总线)乱序返回不同ID的数据,不受ID的顺序约束,而接收端在从AXI总线上读取到数据后,可以将读取到的数据进行解析得到正确的数据。为了实现上述乱序传输特性,需要接收端支持AXI协议的乱序读取;现有技术中为了验证接收端是否支持AXI协议的乱序读取,通常是通过单一线程产生连续数据,进而将该连续数据通过AXI总线传输至接收端,这显然无法有效模拟乱序读取的场景,进而无法实现接收端是否支持AXI协议乱序读取的有效测试。
发明内容
本发明的目的是提供一种乱序数据的产生方法、装置、设备及存储介质,能够有效模拟AXI协议乱序读取的场景,进而实现接收端是否支持AXI协议乱序读取的有效测试。
为了实现上述目的,本发明提供如下技术方案:
一种乱序数据的产生方法,包括:
如果需要对接收端是否支持AXI协议的乱序读取进行测试,则创建多个线程;其中,多个线程与多个数据标识一一对应;
指示全部线程通过随机获取的方式获取传输权限,并在任意线程获取到传输权限后确定该任意线程为当前线程,指示当前线程将当前产生的数据及对应数据标识驱动到AXI总线上供接收端读取,以基于接收端读取的数据及对应数据标识实现乱序读取测试;其中,同一时刻仅允许一个线程获取传输权限;
在当前线程发送当前产生的数据及对应数据标识结束后回收所述传输权限,并返回执行指示全部线程通过随机获取的方式获取传输权限的步骤。
优选的,指示全部线程通过随机获取的方式获取传输权限,包括:
指示全部线程通过随机获取钥匙的方式获取传输权限;其中,所述钥匙为使得线程能够使用相应旗语实现AXI协议对应数据发送的工具;
在当前线程发送当前产生的数据及对应数据标识结束后回收所述传输权限,包括:
在当前线程发送当前产生的数据及对应数据标识结束后回收所述钥匙。
优选的,创建多个线程后,还包括:
将创建的线程均作为待执行线程加入至待执行线程队列中;
确定出当前线程后,还包括:
将当前线程作为执行线程从待执行队列中取出,以执行当前线程。
优选的,还包括:
在当前线程每次产生数据及对应数据标识的数据前插入随机时延。
优选的,控制当前线程产生对应数据标识的数据,包括:
控制当前线程按照每拍时钟对应一个数据的原则,产生当前线程对应数据标识的数据。
优选的,还包括:
将当前线程产生的数据及对应数据标识发送至测试装置,以供测试装置基于当前线程发送的数据、所述接收端接收的数据及分别对应的数据标识进行相应乱序读取测试。
优选的,创建多个线程,包括:
基于验证编程语言创建多个线程。
一种乱序数据的产生装置,包括:
创建模块,用于:如果需要对接收端是否支持AXI协议的乱序读取进行测试,则创建多个线程;其中,多个线程与多个数据标识一一对应;
发送模块,用于:指示全部线程通过随机获取的方式获取传输权限,并在任意线程获取到传输权限后确定该任意线程为当前线程,指示当前线程将当前产生的数据及对应数据标识驱动到AXI总线上供接收端读取,以基于接收端读取的数据及对应数据标识实现乱序读取测试;其中,同一时刻仅允许一个线程获取传输权限;
返回模块,用于:在当前线程发送当前产生的数据及对应数据标识结束后回收所述传输权限,并返回执行指示全部线程通过随机获取的方式获取传输权限的步骤。
一种乱序数据的产生设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如上任一项所述乱序数据的产生方法的步骤。
一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上任一项所述乱序数据的产生方法的步骤。
本发明提供了一种乱序数据的产生方法、装置、设备及存储介质,该方法包括:如果需要对接收端是否支持AXI协议的乱序读取进行测试,则创建多个线程;指示全部线程通过随机获取的方式获取传输权限,并在任意线程获取到传输权限后确定该任意线程为当前线程,指示当前线程将当前产生的数据及对应数据标识驱动到AXI总线上供接收端读取,以基于接收端读取的数据及对应数据标识实现乱序读取测试;在当前线程发送当前产生的数据及对应数据标识结束后回收所述传输权限,并返回执行指示全部线程通过随机获取的方式获取传输权限的步骤;其中,多个线程与多个数据标识一一对应,同一时刻仅允许一个线程获取传输权限。本申请中设置多个线程,不同线程对应不同数据标识,且每个线程均会循环产生对应数据标识的数据,进而通过循环选取随机线程,并将所选取线程产生的数据及对应数据标识驱动至AXI总线上,使得接收端能够循环从AXI总线上读取随机数据标识及相应的数据,能够有效模拟AXI协议乱序读取的场景,进而实现接收端是否支持AXI协议乱序读取的有效测试。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明实施例提供的一种乱序数据的产生方法的流程图;
图2为本发明实施例提供的一种乱序数据的产生装置的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参阅图1,其示出了本发明实施例提供的一种乱序数据的产生方法的流程图,具体可以包括:
S11:如果需要对接收端是否支持AXI协议的乱序读取进行测试,则创建多个线程;其中,多个线程与多个数据标识一一对应。
本发明实施例提供的一种乱序数据的产生方法的执行主体可以为对应产生装置,而该产生装置可以设置于发送端内,因此该测试方法的执行主体可以为发送端,以下以该测试方法的执行主体为发送端进行具体说明。需要说明的是,发送端为模拟数据产生及发送的终端,而接收端(具有相应IP)则为需要测试其是否能够支持AXI协议的乱序读取的终端。
其中,在确定出发送端及接收端后,发送端可以在本地创建多个线程,每个线程均可以单独产生数据以及发送产生的数据(数据即为用于实现测试的测试数据),进而模拟数据的产生及发送。具体来说,数据标识可以为数据ID(Identifier,标识,能够标识不同AXI协议传输事务的标志,用于区分多事务传输),当然也可以根据实际需要进行其他设定,本申请实施例均以数据标识为数据ID进行具体说明;模拟产生的数据以数据ID分组,同一数据ID生成的数据连续,不同数据ID具有不同的数据流,本申请实施例中设置创建的线程与数据ID为一一对应的关系,进而任意线程产生的数据则为具有该任意线程对应数据标识的数据,而该任意线程产生的多个数据则为该任意线程对应数据标识的数据流。
S12:指示全部线程通过随机获取的方式获取传输权限,并在任意线程获取到传输权限后确定该任意线程为当前线程,指示当前线程将当前产生的数据及对应数据标识驱动到AXI总线上供接收端读取,以基于接收端读取的数据及对应数据标识实现乱序读取测试;其中,同一时刻仅允许一个线程获取传输权限。
接收端通过读取数据通道随机发起多个读取数据事务的线程,读取数据事务的线程从AXI总线上读取发送端发送的数据及对应数据标识,且读取到的数据对应数据ID随机、数据地址随机,也即为乱序读取数据。对应的,发送端可以启动创建的全部线程,这些线程中每个线程都会循环产生数据,线程产生的数据即为需要驱动至AXI总线的对应数据ID的数据,而线程产生数据可以是随机的,也可以是按照根据实际需要设定的规则实现的,均在本发明的保护范围之内;并且,这些线程还会随机获取传输权限,或者说将传输权限随机赋予给这些线程中的任意线程(同一时刻只有一个线程能够使用AXI总线实现数据发送),而获取到传输权限的该任意线程则可以将自己最新产生的一个数据驱动到AXI总线上,供接收端从AXI总线上读取,在该任意线程将数据及对应数据标识驱动到AXI总线上后,则可以释放传输权限,以供发送端启动的全部线程随机获取该传输权限,如此往复,以实现随机线程向AXI总线上驱动所产生的数据及对应数据标识;由于线程与数据ID是一一对应的,因此实现随机线程向AXI总线上驱动所产生的数据,也即为实现随机数据ID的数据驱动到AXI总线上,从而实现乱序读取的模拟。
另外,任意线程可以每产生一个数据则发送该数据,并在发送该数据后再产生下一个数据,也可以根据实际需要进行的其他设置,均在本发明的保护范围之内。
S13:在当前线程发送当前产生的数据及对应数据标识结束后回收传输权限,并返回执行指示全部线程通过随机获取的方式获取传输权限的步骤。
本申请中设置多个线程,不同线程对应不同数据标识,且每个线程均会循环产生对应数据标识的数据,进而通过循环选取随机线程,并将所选取线程产生的数据及对应数据标识驱动至AXI总线上,使得接收端能够循环从AXI总线上读取随机数据标识及相应的数据,能够有效模拟AXI协议乱序读取的场景,进而实现接收端是否支持AXI协议乱序读取的有效测试。
本发明实施例提供的一种乱序数据的产生方法,指示全部线程通过随机获取的方式获取传输权限,可以包括:
指示全部线程通过随机获取钥匙的方式获取传输权限;其中,钥匙为使得线程能够使用相应旗语实现AXI协议对应数据发送的工具;
在当前线程发送当前产生的数据及对应数据标识结束后回收传输权限,可以包括:
在当前线程发送当前产生的数据及对应数据标识结束后回收钥匙。
需要说明的是,为了简便有效的实现传输权限的管控,本申请实施例可以创建一个旗语,该旗语可被视为对同一资源的访问控制,任意线程能够通过该旗语进入AXI总线的使用(包括将数据驱动至AXI总线上);并且为该旗语分配一个钥匙,任意线程获取该钥匙后则可以利用该钥匙使用相应旗语,进而通过旗语实现对AXI总线的使用。相应的,本申请实施例中任意线程在需要将数据驱动到AXI总线上时可以先获取钥匙,进而在获取到钥匙之后利用该钥匙使用相应旗语,进而通过旗语将数据驱动到AXI总线上,然后再及时将钥匙返回,从而开始新一轮的钥匙获取及AXI总线使用。
本发明实施例提供的一种乱序数据的产生方法,创建多个线程后,还可以包括:
将创建的线程均作为待执行线程加入至待执行线程队列中;
确定出当前线程后,还可以包括:
将当前线程作为执行线程从待执行队列中取出,以执行当前线程。
本申请实施例中发送端可以设置有待执行线程队列,进而对于当前能够使用AXI总线的线程则可以从待执行队列中取出,进而执行该线程以实现所产生数据至AXI总线的驱动,而对于其他线程则均作为待执行线程存储在待执行线程队列中,等待执行;可见,本申请能够通过线程队列的设置提高线程管理的便利性。
本发明实施例提供的一种乱序数据的产生方法,控制当前线程产生对应数据标识的数据,可以包括:
控制当前线程按照每拍时钟对应一个数据的原则,产生当前线程对应数据标识的数据。
需要说明的是,本申请实施例中可以设置有时钟,进而待任意线程产生数据时,每拍时钟对应一个数据,从而在实现数据发送时也能够符合时钟的设置,从而保证数据的高效产生及发送。
本发明实施例提供的一种乱序数据的产生方法,还可以包括:
在当前线程每次产生数据及对应数据标识前插入随机时延。
需要说明的是,本申请实施例还可以在每个线程产生的相邻数据中插入随机时延,该随机时延可以为随机个数的时钟延时,进而产生随机时钟个数间隔的乱序数据,构建随机化的数据乱序读取,充分验证接收端多种数据交织情况下的AXI读取处理性能,充分验证接收端的AXI总线协议支持情况。
本发明实施例提供的一种乱序数据的产生方法,还可以包括:
将当前线程产生的数据及对应数据标识发送至测试装置,以供测试装置基于当前线程发送的数据、接收端接收的数据及分别对应的数据标识进行相应乱序读取测试。
本申请实施例中发送端在将数据及对应数据标识驱动至AXI总线外,还可以将数据及对应数据标识发送至测试装置;相应的,测试装置在接收到发送端产生的数据及对应数据标识后,还可以获取接收端乱序读取并处理后的数据及对应数据标识,进而将这两者进行比对,如果两者一致,则说明接收端能够支持数据乱序读取,否则,说明接收端无法支持数据乱序读取,从而有效提高接收端能否支持数据乱序读取的测试效率。
本发明实施例提供的一种乱序数据的产生方法,创建多个线程,可以包括:
基于验证编程语言创建多个线程。
需要说明的是,验证编码语言具体可以为SystemVerilog语言,SystemVerilog语言(一种支持面向对象的高级验证编程语言)可以同时发起并执行多个线程,各个线程独立执行,并且线程之间有线程间的通信方式,可以实现线程间的先后执行(如事件),线程间资源共享的冲突处理(如旗语),线程间的数据同步传输(如信箱)。而AXI多事务数据的读取返回只有一套AXI总线,多个数据ID返回数据需要对同一总线资源进行访问控制,正如多个线程对同一资源的请求控制,因此采用本申请实施例基于SystemVerilog语言创建多个线程,进而通过多线程结合旗语的访问控制,实现多个数据ID的数据在时钟节拍维度的交织时序处理,保证在每个时钟节拍只有一个线程占用AXI总线返回数据,未占用总线的线程数据等待发送,从而保证每个线程的数据仍是其本身的时钟顺序,且能够有效实现线程管控等操作。另外,本申请实施例的测试装置也可以理解为构建的UVM(Universal VerificationMethodology),其是一个以SystemVerilog类库为主体的验证平台,利用其可重用组件构建具有标准化层次结构和接口的功能验证环境。
本申请在进行AXI总线功能验证时,使用多线程在时钟节拍维度模拟产生返回AXI总线的多事务的读数据,满足AXI协议中支持的不同ID数据的交织情况,从而测试接收端对AXI协议中多事务乱序读取的支持情况;同时在每个线程中插入随机延时模拟多种交织情况,进一步充分测试接收端对AXI总线读乱序的支持情况;其中,同一ID数据仍按照数据的顺序进行返回,而不同ID的数据之间没有固定的顺序要求。
本发明实施例还提供了一种乱序数据的产生装置,如图2所示,具体可以包括:
创建模块11,用于:如果需要对接收端是否支持AXI协议的乱序读取进行测试,则创建多个线程;其中,多个线程与多个数据标识一一对应;
发送模块12,用于:指示全部线程通过随机获取的方式获取传输权限,并在任意线程获取到传输权限后确定该任意线程为当前线程,指示当前线程将当前产生的数据及对应数据标识驱动到AXI总线上供接收端读取,以基于接收端读取的数据及对应数据标识实现乱序读取测试;其中,同一时刻仅允许一个线程获取传输权限;
返回模块13,用于:在当前线程发送当前产生的数据及对应数据标识结束后回收传输权限,并返回执行指示全部线程通过随机获取的方式获取传输权限的步骤。
本发明实施例提供的一种乱序数据的产生装置,发送模块可以包括:
获取单元,用于:指示全部线程通过随机获取钥匙的方式获取传输权限;其中,钥匙为使得线程能够使用相应旗语实现AXI协议对应数据发送的工具;
返回模块可以包括:
回收单元,用于:在当前线程发送当前产生的数据及对应数据标识结束后回收钥匙。
本发明实施例提供的一种乱序数据的产生装置,还可以包括:
加入模块,用于:创建多个线程后,将创建的线程均作为待执行线程加入至待执行线程队列中;
取出模块,用于:确定出当前线程后,将当前线程作为执行线程从待执行队列中取出,以执行当前线程。
本发明实施例提供的一种乱序数据的产生装置,还可以包括:
插入模块,用于:在当前线程每次产生数据及对应数据标识前插入随机时延。
本发明实施例提供的一种乱序数据的产生装置,还可以包括:
产生模块,用于:控制当前线程按照每拍时钟对应一个数据的原则,产生当前线程对应数据标识的数据。
本发明实施例提供的一种乱序数据的产生装置,还可以包括:
测试模块,用于:将当前线程产生的数据及对应数据标识发送至测试装置,以供测试装置基于当前线程发送的数据、接收端接收的数据及分别对应的数据标识进行相应乱序读取测试。
本发明实施例提供的一种乱序数据的产生装置,创建模块可以包括:
创建单元,用于:基于SystemVerilog语言创建多个线程。
本发明实施例还提供了一种乱序数据的产生设备,可以包括:
存储器,用于存储计算机程序;
处理器,用于执行计算机程序时实现如上任一项乱序数据的产生方法的步骤。
本发明实施例还提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时可以实现如上任一项乱序数据的产生方法的步骤。
需要说明的是,本发明实施例提供的一种乱序数据的产生装置、设备及存储介质中相关部分的说明请参见本发明实施例提供的一种乱序数据的产生方法中对应部分的详细说明,在此不再赘述。另外本发明实施例提供的上述技术方案中与现有技术中对应技术方案实现原理一致的部分并未详细说明,以免过多赘述。
对所公开的实施例的上述说明,使本领域技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

Claims (10)

1.一种乱序数据的产生方法,其特征在于,包括:
如果需要对接收端是否支持AXI协议的乱序读取进行测试,则创建多个线程;其中,多个线程与多个数据标识一一对应;
指示全部线程通过随机获取的方式获取传输权限,并在任意线程获取到传输权限后确定该任意线程为当前线程,指示当前线程将当前产生的数据及对应数据标识驱动到AXI总线上供接收端读取,以基于接收端读取的数据及对应数据标识实现乱序读取测试;其中,同一时刻仅允许一个线程获取传输权限;
在当前线程发送当前产生的数据及对应数据标识结束后回收所述传输权限,并返回执行指示全部线程通过随机获取的方式获取传输权限的步骤;
指示全部线程通过随机获取的方式获取传输权限,包括:
指示全部线程通过随机获取钥匙的方式获取传输权限;其中,所述钥匙为使得线程能够使用相应旗语实现AXI协议对应数据发送的工具。
2.根据权利要求1所述的方法,其特征在于,
在当前线程发送当前产生的数据及对应数据标识结束后回收所述传输权限,包括:
在当前线程发送当前产生的数据及对应数据标识结束后回收所述钥匙。
3.根据权利要求2所述的方法,其特征在于,创建多个线程后,还包括:
将创建的线程均作为待执行线程加入至待执行线程队列中;
确定出当前线程后,还包括:
将当前线程作为执行线程从待执行队列中取出,以执行当前线程。
4.根据权利要求3所述的方法,其特征在于,还包括:
在当前线程每次产生数据及对应数据标识前插入随机时延。
5.根据权利要求4所述的方法,其特征在于,控制当前线程产生对应数据标识的数据,包括:
控制当前线程按照每拍时钟对应一个数据的原则,产生当前线程对应数据标识的数据。
6.根据权利要求5所述的方法,其特征在于,还包括:
将当前线程产生的数据及对应数据标识发送至测试装置,以供测试装置基于当前线程发送的数据、所述接收端接收的数据及分别对应的数据标识进行相应乱序读取测试。
7.根据权利要求6所述的方法,其特征在于,创建多个线程,包括:
基于验证编程语言创建多个线程。
8.一种乱序数据的产生装置,其特征在于,包括:
创建模块,用于:如果需要对接收端是否支持AXI协议的乱序读取进行测试,则创建多个线程;其中,多个线程与多个数据标识一一对应;
发送模块,用于:指示全部线程通过随机获取的方式获取传输权限,并在任意线程获取到传输权限后确定该任意线程为当前线程,指示当前线程将当前产生的数据及对应数据标识驱动到AXI总线上供接收端读取,以基于接收端读取的数据及对应数据标识实现乱序读取测试;其中,同一时刻仅允许一个线程获取传输权限;
返回模块,用于:在当前线程发送当前产生的数据及对应数据标识结束后回收所述传输权限,并由所述发送模块指示全部线程通过随机获取的方式获取传输权限;
所述发送模块包括:
获取单元,用于:指示全部线程通过随机获取钥匙的方式获取传输权限;其中,所述钥匙为使得线程能够使用相应旗语实现AXI协议对应数据发送的工具。
9.一种乱序数据的产生设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至7任一项所述乱序数据的产生方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述乱序数据的产生方法的步骤。
CN202110978207.6A 2021-08-25 2021-08-25 一种乱序数据的产生方法、装置、设备及存储介质 Active CN113419869B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN202110978207.6A CN113419869B (zh) 2021-08-25 2021-08-25 一种乱序数据的产生方法、装置、设备及存储介质
US18/255,922 US11907758B2 (en) 2021-08-25 2021-10-29 Out-of-order data generation method and apparatus, and device and storage medium
PCT/CN2021/127319 WO2023024246A1 (zh) 2021-08-25 2021-10-29 一种乱序数据的产生方法、装置、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110978207.6A CN113419869B (zh) 2021-08-25 2021-08-25 一种乱序数据的产生方法、装置、设备及存储介质

Publications (2)

Publication Number Publication Date
CN113419869A CN113419869A (zh) 2021-09-21
CN113419869B true CN113419869B (zh) 2021-12-03

Family

ID=77719485

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110978207.6A Active CN113419869B (zh) 2021-08-25 2021-08-25 一种乱序数据的产生方法、装置、设备及存储介质

Country Status (3)

Country Link
US (1) US11907758B2 (zh)
CN (1) CN113419869B (zh)
WO (1) WO2023024246A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113419869B (zh) 2021-08-25 2021-12-03 苏州浪潮智能科技有限公司 一种乱序数据的产生方法、装置、设备及存储介质

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7308686B1 (en) * 1999-12-22 2007-12-11 Ubicom Inc. Software input/output using hard real time threads
CN1842054A (zh) * 2005-03-31 2006-10-04 华为技术有限公司 模拟数据包传输乱序的方法及装置
US20070157030A1 (en) * 2005-12-30 2007-07-05 Feghali Wajdi K Cryptographic system component
US9444757B2 (en) * 2009-04-27 2016-09-13 Intel Corporation Dynamic configuration of processing modules in a network communications processor architecture
CN102004709B (zh) * 2009-08-31 2013-09-25 国际商业机器公司 处理器局部总线到高级可扩展接口之间的总线桥及映射方法
US8972995B2 (en) * 2010-08-06 2015-03-03 Sonics, Inc. Apparatus and methods to concurrently perform per-thread as well as per-tag memory access scheduling within a thread and across two or more threads
US8438306B2 (en) * 2010-11-02 2013-05-07 Sonics, Inc. Apparatus and methods for on layer concurrency in an integrated circuit
CN102096734A (zh) * 2011-01-26 2011-06-15 北京中星微电子有限公司 一种验证总线乱序传输的方法和装置
US10303628B2 (en) * 2014-12-19 2019-05-28 Sonics, Inc. Reordering responses in a high performance on-chip network
CN107203462B (zh) * 2016-03-16 2020-12-25 创新先进技术有限公司 一种数据生成方法及装置
CN110324370B (zh) * 2018-03-29 2023-05-30 北京京东尚科信息技术有限公司 服务端向客户端推送数据的方法和装置
CN111835770B (zh) * 2020-07-14 2021-01-29 全时云商务服务股份有限公司 一种数据处理方法、装置、服务器及存储介质
CN113419869B (zh) * 2021-08-25 2021-12-03 苏州浪潮智能科技有限公司 一种乱序数据的产生方法、装置、设备及存储介质

Also Published As

Publication number Publication date
US20230401093A1 (en) 2023-12-14
WO2023024246A1 (zh) 2023-03-02
CN113419869A (zh) 2021-09-21
US11907758B2 (en) 2024-02-20

Similar Documents

Publication Publication Date Title
US20020059052A1 (en) Co-simulation of network components
CN106685733B (zh) 一种fc-ae-1553网络快速配置与自动化测试方法
CN111859832B (zh) 一种芯片仿真验证方法、装置及相关设备
CN107025203B (zh) 第一板卡、第二板卡及一种设备
US11989535B2 (en) Simulation method and recording medium
CN113076227A (zh) Mcu验证方法、系统和终端设备
CN113419869B (zh) 一种乱序数据的产生方法、装置、设备及存储介质
US11514225B2 (en) Verification platform for system on chip and verification method thereof
CN109933368B (zh) 一种指令的发射和验证方法及装置
US7865854B2 (en) Simultaneous parameter-driven and deterministic simulation with or without synchronization
US9218273B2 (en) Automatic generation of a resource reconfiguring test
CN108874523A (zh) 一种基于AI和儿童教育的promise控制异步函数序列的编程方法
US7099813B2 (en) Simulating program instruction execution and hardware device operation
CN111522648A (zh) 一种区块链的交易处理方法、装置及电子设备
CN105635272A (zh) 服务器、学生端、教师端及其学科作业处理方法、系统
CN105471930A (zh) 一种读取分布式数据的方法、系统和设备
CN105320512B (zh) 分配主干权限的方法及装置
CN103729259B (zh) 一种AHB总线读写burst相互打断的验证方法及装置
CN106131151A (zh) 用于测试推送系统的方法及装置
CN105740119A (zh) 一种芯片及芯片内多核的调试方法
CN117131821B (zh) 芯片验证方法、装置、电子设备及存储介质
CN103885769A (zh) 调试基于模型的消息序列的系统和方法
WO2019009068A1 (ja) 車両制御装置用の検証装置及び車両制御装置
CN104035852B (zh) 基于自动帧重复的1553b总线硬件定时通信测试装置及方法
CN116578405B (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