CN115629845A - Io数据的产生方法、装置、计算机设备和存储介质 - Google Patents

Io数据的产生方法、装置、计算机设备和存储介质 Download PDF

Info

Publication number
CN115629845A
CN115629845A CN202211598296.2A CN202211598296A CN115629845A CN 115629845 A CN115629845 A CN 115629845A CN 202211598296 A CN202211598296 A CN 202211598296A CN 115629845 A CN115629845 A CN 115629845A
Authority
CN
China
Prior art keywords
data
virtual queue
ring table
table structure
address space
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.)
Granted
Application number
CN202211598296.2A
Other languages
English (en)
Other versions
CN115629845B (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.)
Beijing Yunbao Chuangxin Intelligent Technology Co ltd
Original Assignee
Beijing Yunbao Chuangxin 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 Beijing Yunbao Chuangxin Intelligent Technology Co ltd filed Critical Beijing Yunbao Chuangxin Intelligent Technology Co ltd
Priority to CN202211598296.2A priority Critical patent/CN115629845B/zh
Publication of CN115629845A publication Critical patent/CN115629845A/zh
Application granted granted Critical
Publication of CN115629845B publication Critical patent/CN115629845B/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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0646Configuration or reconfiguration
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45579I/O management, e.g. providing access to device drivers or storage

Abstract

本申请涉及一种IO数据的产生方法、装置、计算机设备、存储介质和计算机程序产品。该方法包括:接收IO数据的产生请求;根据请求,获取测试用例中与模拟设备关联的虚拟队列的模式;若为第一模式虚拟队列,则在与虚拟队列关联的地址空间中配置第一环表结构的地址空间;若为第二模式虚拟队列,则在与虚拟队列关联的地址空间中配置第二环表结构的地址空间;根据请求,获取在测试用例中配置的交互数据,并将交互数据填充至与虚拟队列关联的数据空间中;将数据空间的地址信息填充至第一环表结构或第二环表结构的地址空间,以完成一次请求;若IO数据未产生完成,继续接收请求。本方法可提供适应不同virtqueue模式的IO数据的产生方法。

Description

IO数据的产生方法、装置、计算机设备和存储介质
技术领域
本申请涉及计算机技术领域,特别是涉及一种IO数据的产生方法、装置、计算机设备、存储介质和计算机程序产品。
背景技术
Virtio作为一种通用的半虚拟化I/O实现方案,在虚拟化业务中起着重要的作用。其中,Virtio主要依靠virtqueue(承载着大量数据的队列)实现,比如,虚拟机的前端驱动通过virtqueue与虚拟机的后端设备进行数据交互。然而,在所述交互的仿真验证过程中,如何产生基于Virtio的IO(Input/Output,输入/输出)数据是所述仿真验证的难点之一。目前,缺乏一种能够适应不同virtqueue模式的IO数据的产生方法。
发明内容
本申请可以提供一种能够适应不同virtqueue模式的IO数据的产生方法、装置、计算机设备、计算机可读存储介质和计算机程序产品。
第一方面,本申请提供了一种IO数据的产生方法。所述方法包括:
接收IO数据的产生请求,其中,所述IO数据为虚拟机内部的模拟设备的前端驱动和后端设备的交互数据;
根据所述产生请求,获取在测试用例中配置的与所述模拟设备关联的虚拟队列的模式;
若所述虚拟队列的模式为第一模式虚拟队列,则在与所述虚拟队列关联的地址空间中配置第一环表结构的地址空间;
若所述虚拟队列的模式为第二模式虚拟队列,则在与所述虚拟队列关联的地址空间中配置第二环表结构的地址空间;
根据所述产生请求,获取在测试用例中配置的所述交互数据,并将所述交互数据填充至与所述虚拟队列关联的数据空间中;
将所述数据空间的地址信息填充至所述第一环表结构或所述第二环表结构的地址空间,以完成一次所述产生请求;
若所述IO数据未产生完成,则继续接收所述产生请求。
第二方面,本申请还提供了一种IO数据的产生装置。所述装置包括:
产生请求接收模块,用于接收IO数据的产生请求,其中,所述IO数据为虚拟机内部的模拟设备的前端驱动和后端设备的交互数据;
获取模块,用于根据所述产生请求,获取在测试用例中配置的与所述模拟设备关联的虚拟队列的模式;
第一配置模块,用于当所述虚拟队列的模式为第一模式虚拟队列时,则在与所述虚拟队列关联的地址空间中配置第一环表结构的地址空间;
第二配置模块,用于当所述虚拟队列的模式为第二模式虚拟队列时,则在与所述虚拟队列关联的地址空间中配置第二环表结构的地址空间;
获取与填充模块,用于根据所述产生请求,获取在测试用例中配置的所述交互数据,并将所述交互数据填充至与所述虚拟队列关联的数据空间中;
第一填充模块,用于将所述数据空间的地址信息填充至所述第一环表结构或所述第二环表结构的地址空间,以完成一次所述产生请求;
第一判断模块,用于当所述IO数据未产生完成时,则继续接收所述产生请求。
第三方面,本申请还提供了一种计算机设备。所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现第一方面提供的所述IO数据的产生方法的步骤。
第四方面,本申请还提供了一种计算机可读存储介质。所述计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现第一方面提供的所述IO数据的产生方法的步骤。
第五方面,本申请还提供了一种计算机程序产品。所述计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现第一方面提供的所述IO数据的产生方法的步骤。
上述IO数据的产生方法、装置、计算机设备、存储介质和计算机程序产品,通过为第一模式虚拟队列配置第一环表结构的地址空间,以及为第二模式虚拟队列配置第二环表结构的地址空间,可以提供一种能够适应不同virtqueue模式的IO数据的产生方法。
附图说明
图1为本申请IO数据的产生方法第一实施例的流程示意图;
图2为本申请IO数据的产生装置第一实施例的结构示意图;
图3为本申请计算机设备的内部结构示意图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
请参见图1,图1是本申请IO数据的产生方法第一实施例的示意图。本申请第一实施例中,所述IO数据的产生方法可以是用于待测设计的激励的产生方法。具体地,所述IO数据的产生方法可以包括如下步骤:
步骤100:接收IO数据的产生请求,其中,所述IO数据为虚拟机内部的模拟设备的前端驱动和后端设备的交互数据。
当需要向待测设计输入激励时,IO数据的产生装置启动,以接收IO数据的产生请求,并根据所述IO数据的产生请求产生基于Virtio的所述IO数据。其中,所述IO数据的产生装置可以是类似于UVM(Universal Verification Methodology,通用验证方法学)中的Driver模块。
所述虚拟机内部的模拟设备(如基于Virtio的网络设备virtio-net)包括前端驱动(如virtio-net driver)和后端设备(如virtio-net device)。所述前端驱动是所述模拟设备对应的驱动程序。所述后端设备为在QEMU(quick emulator)中实现的所述模拟设备。
所述后端设备位于DPU(Data Processing Unit,数据处理单元)。所述DPU可以是基于SoC(System on Chip,片上系统)的芯片或基于FPGA(Field Programmable GateArray,现场可编程逻辑门阵列)的智能网卡。所述前端驱动位于主机。所述主机可以是服务器或服务器集群。
步骤102:根据所述产生请求,获取在测试用例中配置的与所述模拟设备关联的虚拟队列的模式。
在接收到所述IO数据的产生请求时,所述IO数据的产生装置根据所述产生请求获取测试用例中配置的与所述产生请求关联的模拟设备,以及与所述模拟设备关联的虚拟队列的模式。所述测试用例配置有预先输入的与不同模拟设备关联的虚拟队列的模式。所述测试用例由验证人员根据仿真验证的需求编写。
步骤104:若所述虚拟队列的模式为第一模式虚拟队列,则在与所述虚拟队列关联的地址空间中配置第一环表结构的地址空间。
当所述IO数据的产生装置获取到所述虚拟队列的模式时,判断所述虚拟队列的模式是第一模式虚拟队列,还是第二模式虚拟队列。
当所述虚拟队列的模式是第一模式虚拟队列时,例如split模式虚拟队列,则在与所述虚拟队列关联的地址空间中配置第一环表结构的地址空间。其中,第一环表结构可以包括第一描述符环表(descriptor ring)、可用环表(available ring)、已用环表(usedring)。
所述第一描述符环表的每个第一描述符表项用于描述一个用于存储数据的内存区域。例如,使用第一描述符表项时,可以从别的地方把数据拷贝到第一描述符表项所描述的内存区域中,也可以是从第一描述符表项所描述的内存区域中把数据拷贝到别的地方。所述第一描述符环表的第一描述符表项的数量等于所述虚拟队列的深度。
所述可用环表是一个指向第一描述符表项的环型表。所述可用环表的每个表项存储指向一个所述第一描述符表项的指针。所述可用环表的每个表项由前端驱动提供(写入)指向一个所述第一描述符表项的指针,由后端设备使用(读取)指向一个所述第一描述符表项的指针。
所述已用环表也是一个指向第一描述符表项的环型表,与可用环表相反,所述已用环表是由后端设备提供(写入)指向一个所述第一描述符表项的指针,由前端驱动使用(读取)指向一个所述第一描述符表项的指针。
步骤106:若所述虚拟队列的模式为第二模式虚拟队列,则在与所述虚拟队列关联的地址空间中配置第二环表结构的地址空间。
当所述虚拟队列的模式是第二模式虚拟队列时,例如packed模式虚拟队列,则在与所述虚拟队列关联的地址空间中配置第二环表结构的地址空间。其中,所述第二环表结构可以包括第二描述符环表。
所述第二描述符环表的每个第二描述符表项包括第一部分表项和第二部分表项。所述第一部分表项用于描述一个用于存储数据的内存区域。所述第二部分表项包括可用(available)标记和已用(used)标记。当可用(available)标记使能时,已用(used)标记不使能,则所述第二描述符(2nd descriptor)表项由前端驱动使用;当已用(used)标记使能时,可用(available)标记不使能,则所述第二描述符(2nd descriptor)表项由后端设备使用。
例如,使用第二描述符表项时,可以从别的地方把数据拷贝到第二描述符表项的第一部分表项所描述的内存区域中,也可以是从第二描述符表项的第一部分表项所描述的内存区域中把数据拷贝到别的地方。所述第二描述符环表的第二描述符表项的数量等于所述虚拟队列的深度。
步骤108:根据所述产生请求,获取在测试用例中配置的所述交互数据,并将所述交互数据填充至与所述虚拟队列关联的数据空间中。
在接收到所述IO数据的产生请求时,所述IO数据的产生装置根据所述产生请求获取测试用例中配置的所述交互数据。所述测试用例配置有预先输入的所述虚拟机内部的模拟设备的前端驱动和后端设备的交互数据。在获取到所述交互数据时,所述IO数据的产生装置将所述交互数据填充至与所述虚拟队列关联的数据空间中。
步骤110:将所述数据空间的地址信息填充至所述第一环表结构或所述第二环表结构的地址空间,以完成一次所述产生请求。
当将所述交互数据填充至与所述虚拟队列关联的数据空间时,并且,当所述虚拟队列为第一模式虚拟队列时,所述IO数据的产生装置将所述数据空间的地址信息填充至所述第一环表结构的地址空间,以完成一次所述产生请求。具体地,所述IO数据的产生装置可以将所述数据空间的地址信息填充至所述第一环表结构的第一描述符环表的一个第一描述符表项中。
在本申请IO数据的产生方法第一实施例的变更实施例中,若所述第一环表结构的地址空间已被占满,则在有地址空间被释放出来时,再将所述数据空间的地址信息填充至所述第一环表结构的地址空间。若所述第一环表结构的地址空间未被占满,则将所述数据空间的地址信息填充至所述第一环表结构的地址空间。
当将所述交互数据填充至与所述虚拟队列关联的数据空间时,并且,当所述虚拟队列为第二模式虚拟队列时,所述IO数据的产生装置将所述数据空间的地址信息填充至所述第二环表结构的地址空间,以完成一次所述产生请求。具体地,所述IO数据的产生装置可以将所述数据空间的地址信息填充至所述第二环表结构的第二描述符环表的一个第二描述符表项的第一部分表项中。
在本申请IO数据的产生方法第一实施例的变更实施例中,若所述第二环表结构的地址空间已被占满,则在有地址空间被释放出来时,再将所述数据空间的地址信息填充至所述第二环表结构的地址空间。若所述第二环表结构的地址空间未被占满,则将所述数据空间的地址信息填充至所述第二环表结构的地址空间。
步骤112:若所述IO数据未产生完成,则继续接收所述产生请求。
当完成一次所述IO数据的产生请求时,所述IO数据的产生装置根据所述测试用例配置的所述虚拟机内部的模拟设备的前端驱动和后端设备的交互数据判断所述IO数据的产生请求是否产生完成。若所述IO数据未产生完成,则所述IO数据的产生装置继续接收所述产生请求。即所述IO数据的产生装置继续执行步骤100至步骤112。
在本申请IO数据的产生方法第一实施例的变更实施例中,若所述IO数据已产生完成,则不再接收所述产生请求。即所述IO数据的产生装置停止执行步骤100至步骤112。
在本申请IO数据的产生方法第一实施例的变更实施例中,初始化时,即在执行所述步骤100之前,所述IO数据的产生装置还根据测试用例的配置信息,将主机的内存空间划分为m+n+64bits地址空间。其中,高位m bits用于区分不同的模拟设备的地址空间,m代表测试用例配置的模拟设备的最大数量,m为正整数。次高位n bits用于区分同一模拟设备所关联的虚拟队列的地址空间,n代表所述同一模拟设备所关联的虚拟队列的数量,n为正整数。低位64bits用于区分每个虚拟队列的地址空间。
本申请所述IO数据的产生方法通过在步骤104中为第一模式虚拟队列配置第一环表结构的地址空间,以及在步骤106中为第二模式虚拟队列配置第二环表结构的地址空间,可以提供一种能够适应不同virtqueue模式的IO数据的产生方法。
应该理解的是,虽然如上所述的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上所述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
基于同样的发明构思,本申请具体实施方式还提供了一种用于实现上述IO数据的产生方法的IO数据的产生装置。该IO数据的产生装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个IO数据的产生装置实施例中的具体限定可以参见上文中对于IO数据的产生方法的限定,在此不再赘述。
如图2所示,图2为本申请IO数据的产生装置第一实施例的结构示意图。本申请IO数据的产生装置包括:产生请求接收模块200、获取模块202、第一配置模块204、第二配置模块206、获取与填充模块208、第一填充模块210及第一判断模块212。
具体地,所述产生请求接收模块200用于接收IO数据的产生请求。其中,所述IO数据为虚拟机内部的模拟设备的前端驱动和后端设备的交互数据。
所述获取模块202用于根据所述产生请求,获取在测试用例中配置的与所述模拟设备关联的虚拟队列的模式。
所述第一配置模块204用于当所述虚拟队列的模式为第一模式虚拟队列时,则在与所述虚拟队列关联的地址空间中配置第一环表结构的地址空间。
所述第二配置模块206用于当所述虚拟队列的模式为第二模式虚拟队列时,则在与所述虚拟队列关联的地址空间中配置第二环表结构的地址空间。
所述获取与填充模块208用于根据所述产生请求,获取在测试用例中配置的所述交互数据,并将所述交互数据填充至与所述虚拟队列关联的数据空间中。
所述第一填充模块210用于将所述数据空间的地址信息填充至所述第一环表结构或所述第二环表结构的地址空间,以完成一次所述产生请求。
在本申请IO数据的产生装置第一实施例的变更实施例中,所述第一填充模块210还用于若所述第一环表结构或所述第二环表结构的地址空间已被占满,则在有地址空间被释放出来时,再将所述数据空间的地址信息填充至所述第一环表结构或所述第二环表结构的地址空间。若所述第一环表结构或所述第二环表结构的地址空间未被占满,则将所述数据空间的地址信息填充至所述第一环表结构的地址空间。
所述第一判断模块212用于当所述IO数据未产生完成时,则继续接收所述产生请求。
在本申请IO数据的产生装置第一实施例的变更实施例中,所述IO数据的产生装置还可以包括第二判断模块。所述第二判断模块用于当所述IO数据已产生完成,则不再接收所述产生请求。
在本申请IO数据的产生装置第一实施例的变更实施例中,所述IO数据的产生装置还可以包括内存空间划分模块。所述内存空间划分模块用于在初始化时,控制所述IO数据的产生装置根据测试用例的配置信息,将主机的内存空间划分为m+n+64bits地址空间。其中,高位m bits用于区分不同的模拟设备的地址空间,m代表测试用例配置的模拟设备的最大数量,m为正整数。次高位n bits用于区分同一模拟设备所关联的虚拟队列的地址空间,n代表所述同一模拟设备所关联的虚拟队列的数量,n为正整数。低位64bits用于区分每个虚拟队列的地址空间。
本申请所述IO数据的产生装置通过在第一配置模块中为第一模式虚拟队列配置第一环表结构的地址空间,以及在第二配置模块中为第二模式虚拟队列配置第二环表结构的地址空间,可以提供一种能够适应不同virtqueue模式的IO数据的产生装置。
上述IO数据的产生装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
本申请还提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图3所示。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质和内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储数据请求对应的数据等数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时可以实现所述IO数据的产生方法。
本领域技术人员可以理解,图3中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
本申请所述计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现所述IO数据的产生方法各实施例中的步骤。
本申请还提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现所述IO数据的产生方法各实施例中的步骤。
本申请还提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现所述IO数据的产生方法各实施例中的步骤。
本领域普通技术人员可以理解实现所述IO数据的产生方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-Only Memory,ROM)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(ReRAM)、磁变存储器(Magnetoresistive Random Access Memory,MRAM)、铁电存储器(Ferroelectric Random Access Memory,FRAM)、相变存储器(Phase Change Memory,PCM)、石墨烯存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器等。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic RandomAccess Memory,DRAM)等。本申请所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本申请所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。

Claims (10)

1.一种IO数据的产生方法,其特征在于,所述方法包括:
接收IO数据的产生请求,其中,所述IO数据为虚拟机内部的模拟设备的前端驱动和后端设备的交互数据;
根据所述产生请求,获取在测试用例中配置的与所述模拟设备关联的虚拟队列的模式;
若所述虚拟队列的模式为第一模式虚拟队列,则在与所述虚拟队列关联的地址空间中配置第一环表结构的地址空间;
若所述虚拟队列的模式为第二模式虚拟队列,则在与所述虚拟队列关联的地址空间中配置第二环表结构的地址空间;
根据所述产生请求,获取在测试用例中配置的所述交互数据,并将所述交互数据填充至与所述虚拟队列关联的数据空间中;
将所述数据空间的地址信息填充至所述第一环表结构或所述第二环表结构的地址空间,以完成一次所述产生请求;
若所述IO数据未产生完成,则继续接收所述产生请求。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
若所述第一环表结构或所述第二环表结构的地址空间已被占满,则在有地址空间被释放出来时,再将所述数据空间的地址信息填充至所述第一环表结构或所述第二环表结构的地址空间;
若所述第一环表结构或所述第二环表结构的地址空间未被占满,则将所述数据空间的地址信息填充至所述第一环表结构或所述第二环表结构的地址空间。
3.根据权利要求1所述的方法,其特征在于,所述第一模式虚拟队列为split模式虚拟队列,所述第一环表结构包括第一描述符环表、可用环表、已用环表。
4.根据权利要求1所述的方法,其特征在于,所述第二模式虚拟队列为packed模式虚拟队列,所述第二环表结构包括第二描述符环表。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
根据测试用例的配置信息,将主机的内存空间划分为m+n+64bits地址空间,其中,高位m bits用于区分不同的模拟设备的地址空间,m代表测试用例配置的模拟设备的最大数量;次高位n bits用于区分同一模拟设备所关联的虚拟队列的地址空间,n代表所述同一模拟设备所关联的虚拟队列的数量;低位64bits用于区分每个虚拟队列的地址空间。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
若所述IO数据已产生完成,则不再接收所述产生请求。
7.一种IO数据的产生装置,其特征在于,所述装置包括:
产生请求接收模块,用于接收IO数据的产生请求,其中,所述IO数据为虚拟机内部的模拟设备的前端驱动和后端设备的交互数据;
获取模块,用于根据所述产生请求,获取在测试用例中配置的与所述模拟设备关联的虚拟队列的模式;
第一配置模块,用于当所述虚拟队列的模式为第一模式虚拟队列时,则在与所述虚拟队列关联的地址空间中配置第一环表结构的地址空间;
第二配置模块,用于当所述虚拟队列的模式为第二模式虚拟队列时,则在与所述虚拟队列关联的地址空间中配置第二环表结构的地址空间;
获取与填充模块,用于根据所述产生请求,获取在测试用例中配置的所述交互数据,并将所述交互数据填充至与所述虚拟队列关联的数据空间中;
第一填充模块,用于将所述数据空间的地址信息填充至所述第一环表结构或所述第二环表结构的地址空间,以完成一次所述产生请求;
第一判断模块,用于当所述IO数据未产生完成时,则继续接收所述产生请求。
8.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至6中任一项所述的方法的步骤。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至6中任一项所述的方法的步骤。
10.一种计算机程序产品,包括计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1至6中任一项所述的方法的步骤。
CN202211598296.2A 2022-12-14 2022-12-14 Io数据的产生方法、装置、计算机设备和存储介质 Active CN115629845B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211598296.2A CN115629845B (zh) 2022-12-14 2022-12-14 Io数据的产生方法、装置、计算机设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211598296.2A CN115629845B (zh) 2022-12-14 2022-12-14 Io数据的产生方法、装置、计算机设备和存储介质

Publications (2)

Publication Number Publication Date
CN115629845A true CN115629845A (zh) 2023-01-20
CN115629845B CN115629845B (zh) 2023-04-11

Family

ID=84909683

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211598296.2A Active CN115629845B (zh) 2022-12-14 2022-12-14 Io数据的产生方法、装置、计算机设备和存储介质

Country Status (1)

Country Link
CN (1) CN115629845B (zh)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20210157765A1 (en) * 2018-08-07 2021-05-27 Huawei Technologies Co., Ltd. Data processing method and device, and server
CN112988051A (zh) * 2019-12-17 2021-06-18 株式会社日立制作所 存储系统和存储管理方法
CN114281252A (zh) * 2021-12-10 2022-04-05 阿里巴巴(中国)有限公司 非易失性高速传输总线NVMe设备的虚拟化方法及设备
CN114826983A (zh) * 2022-06-08 2022-07-29 深圳云豹智能有限公司 Virtio网络设备延时定位方法、处理单元及virtio网络设备
CN115098030A (zh) * 2022-06-30 2022-09-23 深圳云豹智能有限公司 虚拟磁盘写入或读出数据的方法、装置及计算机设备
CN115113977A (zh) * 2022-06-30 2022-09-27 深圳云豹智能有限公司 描述符读取装置和设备、方法及集成电路
CN115242726A (zh) * 2022-07-27 2022-10-25 阿里巴巴(中国)有限公司 队列的调度方法和装置及电子设备

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20210157765A1 (en) * 2018-08-07 2021-05-27 Huawei Technologies Co., Ltd. Data processing method and device, and server
CN112988051A (zh) * 2019-12-17 2021-06-18 株式会社日立制作所 存储系统和存储管理方法
CN114281252A (zh) * 2021-12-10 2022-04-05 阿里巴巴(中国)有限公司 非易失性高速传输总线NVMe设备的虚拟化方法及设备
CN114826983A (zh) * 2022-06-08 2022-07-29 深圳云豹智能有限公司 Virtio网络设备延时定位方法、处理单元及virtio网络设备
CN115098030A (zh) * 2022-06-30 2022-09-23 深圳云豹智能有限公司 虚拟磁盘写入或读出数据的方法、装置及计算机设备
CN115113977A (zh) * 2022-06-30 2022-09-27 深圳云豹智能有限公司 描述符读取装置和设备、方法及集成电路
CN115242726A (zh) * 2022-07-27 2022-10-25 阿里巴巴(中国)有限公司 队列的调度方法和装置及电子设备

Also Published As

Publication number Publication date
CN115629845B (zh) 2023-04-11

Similar Documents

Publication Publication Date Title
US8103847B2 (en) Storage virtual containers
US20160048327A1 (en) Data distribution among multiple managed memories
KR101025407B1 (ko) 테스트 데이터 처리 디바이스 및 방법, 테스트 장치 및 컴퓨터 판독가능 매체
CN110582745B (zh) 存储器装置及可促进张量存储器存取的方法
CN107807839B (zh) 一种修改虚拟机内存数据的方法、装置及电子设备
EP3523726A1 (en) Database processing method, apparatus, and electronic device
US20180275871A1 (en) Simulation of a plurality of storage devices from a single storage device coupled to a computational device
US20210191855A1 (en) Logical-to-physical data structures
US9437327B2 (en) Combined rank and linear address incrementing utility for computer memory test operations
US11474710B2 (en) Application-specific memory scaling in multi-device systems
US10922068B1 (en) Updating firmware for programmable integrated circuits in computing environments
US20060026328A1 (en) Apparatus And Related Method For Calculating Parity of Redundant Array Of Disks
US9792042B2 (en) Systems and methods for set membership matching
CN108959105B (zh) 一种实现地址映射的方法及装置
CN109766179B (zh) 一种显存分配方法以及装置
CN115629845B (zh) Io数据的产生方法、装置、计算机设备和存储介质
CN104598409A (zh) 一种处理输入输出请求的方法及设备
US10970206B2 (en) Flash data compression decompression method and apparatus
CN107861795B (zh) 模拟物理tcm芯片的方法、系统、装置及可读存储介质
US10585793B2 (en) Allocating shared memory blocks to table entries to store in a memory device
EP3264254B1 (en) System and method for a simulation of a block storage system on an object storage system
CN115757066A (zh) 硬盘性能测试方法、装置、设备、存储介质和程序产品
CN112368686A (zh) 一种异构计算系统及内存管理方法
CN111651124B (zh) Ssd映射表多核分区并行重建方法、装置、设备及介质
CN114691496A (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