CN114579319A - 显存管理方法、显存管理模块、soc及电子设备 - Google Patents
显存管理方法、显存管理模块、soc及电子设备 Download PDFInfo
- Publication number
- CN114579319A CN114579319A CN202210489162.0A CN202210489162A CN114579319A CN 114579319 A CN114579319 A CN 114579319A CN 202210489162 A CN202210489162 A CN 202210489162A CN 114579319 A CN114579319 A CN 114579319A
- Authority
- CN
- China
- Prior art keywords
- video memory
- memory frame
- frame
- software
- queue
- 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
Links
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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
-
- 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5022—Mechanisms to release resources
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Television Signal Processing For Recording (AREA)
Abstract
本公开提供一种显存管理方法、显存管理模块、SOC及电子设备,该方法包括:通过与请求方的软硬件性质对应的接口接收显存帧分配请求,并根据显存帧分配请求从预先创建的显存帧队列中申请显存帧给请求方;通过与释放方的软硬件性质对应的接口接收显存帧释放请求,并将与显存帧释放请求对应的显存帧释放回显存帧队列;当请求方或释放方为软件IP模块时与软硬件接口相对应,当请求方或释放方为硬件IP模块时与硬件接口相对应。采用本公开的技术方案可提高显存管理的性能。
Description
技术领域
本公开涉及显存管理技术领域,尤其涉及一种显存管理方法、显存管理模块、SOC及电子设备。
背景技术
随着图形处理和人工智能技术的高速发展,GPU(Graphic Process Unit,图形处理单元)已经在现代信息技术中得到广泛应用。大规模数据和图形处理一般离不开独立的显示存储(显存),因此需要对显存进行快速高效且安全的管理。
现有技术中,一般都是通过纯软件的方式对显存进行管理。在传统的纯软件管理方式中,操作系统内的应用软件通过调用函数来访问显存帧(Frame Buffer),以实现分配/释放显存帧(Frame Buffer)的效果。这样虽然可以灵活分配任意大小显存帧,但是因为应用软件通过调用函数去访问显存帧的过程依赖于执行大量的程序,延迟较大,那么通过纯软件的方式对显存进行管理,少则需要几十个时钟周期,多则需要几百甚至上千个时钟周期(如缺页,刷新,页冲突等),导致管理性能较低。
发明内容
本公开的目的是提供一种显存管理方法、显存管理模块、SOC及电子设备,相较于传统的纯软件管理,可以提高GPU显存管理的性能。
根据本公开的一个方面,提供一种显存管理方法,应用于包括硬件接口以及软硬件接口的显存管理模块,所述方法包括:通过与请求方的软硬件性质对应的接口接收显存帧分配请求,并根据所述显存帧分配请求从预先创建的显存帧队列中申请显存帧给所述请求方;通过与释放方的软硬件性质对应的接口接收显存帧释放请求,并将与所述显存帧释放请求对应的显存帧释放回所述显存帧队列;当所述请求方或所述释放方为软件IP模块时,与所述软硬件接口相对应,当所述请求方或所述释放方为硬件IP模块时,与所述硬件接口相对应。
本公开一种可行的实现方式中,所述软硬件接口包括请求状态寄存器以及结果状态寄存器;当所述请求方为所述软件IP模块时,所述通过与请求方的软硬件性质对应的接口接收显存帧分配请求,并根据所述显存帧分配请求从预先创建的显存帧队列中申请显存帧给所述请求方,包括:接收所述请求方对所述请求状态寄存器发起的第一访问命令,所述第一访问命令用于表征所述显存帧分配请求;根据所述显存帧分配请求从所述显存帧队列中申请显存帧,并将申请到的显存帧所对应的显存帧地址写入到所述结果状态寄存器。
本公开一种可行的实现方式中,所述根据所述显存帧分配请求从预先创建的显存帧队列中申请显存帧给所述请求方,包括:根据所述显存帧分配请求所指示的显存帧个数,从所述显存帧队列中申请对应个数的显存帧,将所述对应个数的显存帧的显存帧地址范围发送给所述请求方。
本公开一种可行的实现方式中,所述显存帧队列包括第一指针以及第二指针,所述第一指针用于指示所述显存帧队列中当前处于可申请状态的第一个显存帧的显存帧地址,所述第二指针用于指示所述显存帧队列中当前处于可申请状态的最后一个显存帧的显存帧地址;从所述显存帧队列中申请对应个数的显存帧,包括:从所述第一指针所指向的显存帧开始,沿朝向所述第二指针所指向的显存帧的方向,从所述显存帧队列中申请对应个数的显存帧,并将所述对应个数的显存帧的状态从可申请状态修改为不可申请状态;移动所述第一指针至所述显存帧队列中当前处于可申请状态的第一个显存帧的地址。
本公开一种可行的实现方式中,在所述根据所述显存帧分配请求从预先创建的显存帧队列中申请显存帧之前,所述方法还包括:判断在所述显存帧队列内是否存在处于可申请状态的显存帧;在为是时,根据所述显存帧分配请求从预先创建的显存帧队列中申请显存帧;在为否时,发出用于表征存在显存泄露的第一告警中断。
本公开一种可行的实现方式中,在所述发出用于表征存在显存泄露的第一告警中断之前,所述方法还包括:等待预设时长后再次判断在所述显存帧队列内是否存在处于可申请状态的显存帧,且确定不存在处于可申请状态的显存帧。
本公开一种可行的实现方式中,所述显存帧释放请求携带与所述显存帧释放请求对应的显存帧的描述符,每个与所述显存帧释放请求对应的显存帧的描述符中包括待释放的显存帧的地址,所述显存帧队列包括用于指示所述显存帧队列中当前处于可申请状态的最后一个显存帧的显存帧地址的第二指针,所述将与所述显存帧释放请求对应的显存帧释放回所述显存帧队列,包括:根据每个与所述显存帧释放请求对应的显存帧的描述符,将所述显存帧队列中与各个待释放的显存帧的地址所指向的显存帧的状态修改为可申请状态;将所述第二指针挪动至目标显存帧的地址,所述目标显存帧是当前所接收到的显存帧释放请求所包括的最后一个描述符所对应的显存帧。
本公开一种可行的实现方式中,所述显存管理模块还包括数目寄存器,用于记录所述显存帧队列中当前处于可申请状态的显存帧的总数目;在所述将与所述显存帧释放请求对应的显存帧释放回所述显存帧队列之前,所述方法还包括:判断在所述显存帧队列内是否存在处于不可申请状态的显存帧;在为是时,将与所述显存帧释放请求对应的显存帧释放回所述显存帧队列;在为否时,发出用于表征异常的第二告警中断。
本公开一种可行的实现方式中,所述请求方与所述释放方为同一模块,或为不同模块。
本公开一种可行的实现方式中,显存管理模块还包括传输单元,当所述请求方与所述释放方为不同模块时,所述方法还包括:通过所述传输单元接收请求方发送的描述符,所述请求方发送的描述符中携带所述释放方的标识;通过所述传输单元将所述描述符传输给所述释放方的标识对应的所述释放方。
本公开一种可行的实现方式中,与所述显存帧释放请求对应的显存帧是所述请求方请求的显存帧。
根据本公开的另一方面,还提供一种显存管理模块,包括:
管理单元、硬件接口以及软硬件接口;
所述管理单元,用于在通过所述硬件接口或所述软硬件接口接收请求方发起的显存帧分配请求时,从预先创建的显存帧队列中申请显存帧并分配给所述请求方;以及用于在通过所述硬件接口或所述软硬件接口接收释放方发起的显存帧释放请求时,将与所述显存帧释放请求对应的显存帧释放回所述显存帧队列;当所述请求方或所述释放方为硬件IP模块时,与所述硬件接口对应,当所述请求方或所述释放方为软件IP模块时,与所述软硬件接口对应。
根据本公开的另一方面,还提供一种SOC,包括上述显存管理模块以及多个IP模块,在所述多个IP模块中包括至少一个硬件IP模块以及至少一个软件IP模块。
本公开一种可行的实现方式中,所述软硬件接口包括多个通道,所述多个IP模块中,不同的所述软件IP模块通过不同的所述通道发起所述显存帧分配请求和/或所述显存帧释放请求。
本公开一种可行的实现方式中,在所述多个IP模块中,每个所述软件IP模块存在一一对应的所述软硬件接口。
本公开一种可行的实现方式中,所述请求方与所述释放方为同一IP模块,或为不同IP模块。
根据本公开的另一方面,还提供一种电子设备,该电子设备包括上述SOC。在一些使用场景下,该电子设备的产品形式是便携式电子设备,例如智能手机、平板电脑、VR设备等;在一些使用场景下,该电子设备的产品形式是个人电脑、游戏主机等。
附图说明
图1为本公开一个实施例的显存管理模块的结构示意图之一;
图2为本公开一个实施例的显存帧队列的示意图;
图3为本公开一个实施例的显存管理模块的结构示意图之二;
图4为本公开一个实施例的SOC的结构示意图;
图5为本公开一个实施例的显存管理方法的流程示意图。
具体实施方式
在介绍本公开实施例之前,应当说明的是:
本公开部分实施例被描述为处理流程,虽然流程的各个操作步骤可能被冠以顺序的步骤编号,但是其中的操作步骤可以被并行地、并发地或者同时实施。
本公开实施例中可能使用了术语“第一”、“第二”等等来描述各个特征,但是这些特征不应当受这些术语限制。使用这些术语仅仅是为了将一个特征与另一个特征进行区分。
本公开实施例中可能使用了术语“和/或”,“和/或”包括其中一个或更多所列出的相关联特征的任意和所有组合。
应当理解的是,当描述两个部件的连接关系或通信关系时,除非明确指明两个部件之间直接连接或直接通信,否则,两个部件的连接或通信可以理解为直接连接或通信,也可以理解为通过中间部件间接连接或通信。
为了使本公开实施例中的技术方案及优点更加清楚明白,以下结合附图对本公开的示例性实施例进行进一步详细的说明,显然,所描述的实施例仅是本公开的一部分实施例,而不是所有实施例的穷举。需要说明的是,在不冲突的情况下,本公开中的实施例及实施例中的特征可以相互组合。
本公开的目的在于提供一种显存管理方案。其中,显存的管理,主要包括显存帧的申请分配以及显存帧的释放。在本公开中,为了便于区分,将申请显存帧的IP模块称为请求方,将释放显存帧的IP模块称为释放方。
本公开的一个实施例提供一种显存管理模块,如图1所示,显存管理模块可以包括硬件接口(Request/Release接口)、软硬件接口(Interface,IF)以及管理单元(HardwareMemory Manager,HMM)。
其中,硬件接口与硬件IP模块相对应。硬件IP模块可以通过硬件接口与管理单元HMM进行各种交互,例如通过硬件接口向管理单元HMM发起显存帧分配请求和/或显存帧释放请求。
软硬件接口与软件IP模块相对应。软件IP模块可以通过软硬件接口与管理单元HMM进行各种交互,例如通过软硬件接口向管理单元HMM发起显存帧分配请求和/或显存帧释放请求。
在本公开中,硬件IP模块一般是指位于SOC(System on Chip,片上系统)内的GPUCore(GPU核)、VPU(Video Processing Unit,视频处理单元)、DC(Display Controller,显示控制器)等硬件功能IP模块。软件IP模块一般是指位于CPU(central processing unit,中央处理器)、DSP(Digital Signal Processor,数字信号处理器)以及MCU(Microcontroller Unit,微控制单元)内的SW(Software,软件)。以MCU为例,位于MCU内的SW可以控制MCU的行为,进而促使MCU行使相应的功能。
基于此,在本公开中,显存管理模块中的管理单元HMM可以根据请求方的软硬件性质,通过对应的接口(为便于区分,将其成为第一接口)(硬件接口或软硬件接口)接收显存帧分配请求,从预先创建的显存帧队列中申请显存帧给所述请求方;以及根据释放方的软硬件性质,通过对应的接口(为便于区分,将其成为第二接口)(硬件接口或软硬件接口)接收显存帧释放请求,并将与显存帧释放请求对应的显存帧,即待释放显存帧释放回显存帧队列。
其中,第一接口与请求方的软硬件性质对应,第二接口与释放方的软硬件性质对应。也就是说,当请求方为软件IP模块时,第一接口为软硬件接口,当请求方为硬件IP模块时,第一接口为硬件接口;当释放方为软件IP模块时,第二接口为软硬件接口,当释放方为硬件IP模块时,第二接口为硬件接口。
在本公开所涉及到的显存管理方案中,在显存管理模块的控制下,一套完整的显存帧申请以及显存帧释放流程,可能包括以下四种情况:1)软件IP模块通过软硬件接口申请显存帧,软件IP模块通过软硬件接口释放显存帧;2)硬件IP模块通过硬件接口申请显存帧,硬件IP模块通过硬件接口释放显存帧;3)软件IP模块通过软硬件接口申请显存帧,硬件IP模块通过硬件接口释放显存帧;4)硬件IP模块通过硬件接口申请显存帧,软件IP模块通过软硬件接口释放显存帧。
由此可见,在本公开实施例中,显存管理模块可以根据请求方的软硬件性质,通过软硬件接口或硬件接口接收显存帧分配请求,通过硬件接口或硬件接口接收显存帧释放请求。对于显存管理模块本身而言,是一个硬件模块,那么在本公开实施例中,从本质来说是通过硬件的方式来管理显存帧的申请分配以及显存帧的释放。而通过硬件的方式进行管理,大部分的工作都是由硬件来执行,可以基于硬件模块自身内部的硬件连线去实施各种控制,例如查询显存帧的状态、读写数据等,相较于现有技术中通过执行大量的程序去调用函数的纯软件方式,可以极大地节省各部分的时延,由此可以提高管理性能。
此外,通过硬件来进行管理,使得各个IP模块可以在固定设计的时钟周期内(一般为2到10个时钟周期,取决于片上网络的时延设计和是否有并发请求)内就可以完成显存帧的申请分配、释放,这极大提高了显存管理效率,加快了GPU处理器运行速度。
针对情况1)以及情况2),在一些实施方式中,请求方与释放方的软硬件性质相同。在这种情况下,请求方与释放方可以为同一模块,例如软件IP模块1(请求方)通过软硬件接口向管理单元HMM申请显存帧,软件IP模块1(释放方)再通过软硬件接口向管理单元HMM申请释放显存帧。在另一些实施方式中,请求方与释放方也可以是不同模块,例如软件IP模块1(请求方)通过软硬件接口向管理单元HMM申请显存帧,软件IP模块2(释放方)通过软硬件接口向管理单元HMM申请释放显存帧。
在一些实施方式中,针对上述情况1)-4),释放方所释放的显存帧是请求方所请求的显存帧。也就是说,在这种实施方式下,上述显存帧的请求与释放是两个存在关联的连续过程,请求方在申请到显存帧并进行相应的处理后,需要将处理后的显存帧直接或间接传输给释放方(若请求方与释放方为同一模块,则无需此过程),待释放方使用完显存帧后,由释放方将其释放回显存帧队列。
在另一些实施方式中,针对上述情况1)-4),释放方所释放的显存帧不是请求方所申请的显存帧。在这种实施方式下,上述显存帧的请求过程与上述显存帧的释放过程,是两个相互独立的过程。
下面将分别针对显存帧的申请分配过程以及显存帧的释放过程进行介绍。
显存帧的申请分配过程如下。
前文提及,显存管理模块中的管理单元HMM通过与请求方的软硬件性质对应的第一接口接收显存帧分配请求,并根据显存帧分配请求从预先创建的显存帧队列中申请显存帧给请求方。
基于此,当请求方为硬件IP模块时,硬件IP模块与显存管理模块之间存在物理接口,即硬件接口电路。硬件IP模块可直接通过该硬件接口向显存管理模块传输显存帧分配请求。当显存管理模块中的管理单元HMM接收到显存帧分配请求,可以基于显存帧分配请求中所携带的信息,从显存帧队列中申请显存帧,并将申请到的显存帧所对应的显存帧地址(以显存帧的描述符Framebuffer descriptor的形式)通过硬件接口传输给请求方。
当然,在Framebuffer descriptor中除了包括申请到的显存帧所对应的显存帧地址之外,还可以包括owner字段,用于指示该对应的显存帧地址所对应的显存帧在本次所分配给的指定对象,即本公开中的请求方。若后续该对应的显存帧被请求方传输给其他IP模块,相应的,该对应的显存帧的显存帧的描述符中的owner字段会相应被修改。
当请求方为软件IP模块时,显存管理模块通过软硬件接口接收显存帧分配请求。本公开所涉及到的软硬件接口包括请求状态寄存器以及结果状态寄存器。
软件IP模块通过访问请求状态寄存器,进而修改请求状态寄存器中的值,以产生第一访问命令传递给显存管理模块中的管理单元HMM,该第一访问命令用于表征显存帧分配请求。当显存管理模块中的管理单元HMM接收到用于表征显存帧分配请求的第一访问命令后,可以基于显存帧分配请求中所携带的信息,从显存帧队列中申请显存帧,并将申请到的显存帧所对应的显存帧地址通过软硬件接口传输给请求方。具体为显存管理模块中的管理单元HMM将申请到的显存帧所对应的显存帧地址以显存帧的描述符Framebufferdescriptor的形式写入到结果状态寄存器,软件IP模块通过不断轮询软硬件接口中的结果状态寄存器,以获取申请到的显存帧所对应的显存帧地址。
在软件IP模块或硬件IP模块发起的显存帧分配请求中均指示有本次显存帧分配请求所需要申请的显存帧个数。基于此,显存管理模块中的管理单元HMM通过软硬件接口或者硬件接口获取到显存帧分配请求后,基于该显存帧分配请求中所携带的信息,从显存帧队列中申请显存帧的过程相似,均是根据显存帧分配请求所指示的显存帧个数,从显存帧队列中申请对应个数的显存帧,然后将该申请到的对应个数的显存帧的显存帧地址范围发送给请求方。
至于本公开实施例所提及到的显存帧队列,是MCU通过执行内置于MCU中的软件程序所初始化的一个虚拟的数据队列FIFO。显存帧队列在物理上可以位于GDDR上,也可以位于其它存储器上,如SRAM,DRAM等,用于存储显存帧Frame buffer。
以显存帧队列位于GDDR上为例,如图2所示,该显存帧队列可以包括第一指针(Frame Buffer Head,图2中简称为Head)以及第二指针(Frame buffer Tail指针,图2中简称为Tail)。
第一指针会随着显存帧队列内部的显存帧申请分配情况以及释放情况进行更新,始终指向显存帧队列中当前可用的第一个显存帧,用于标识显存帧队列在当前可用的第一个显存帧的地址。
第二指针会随着显存帧队列内部的显存帧申请分配情况以及释放情况进行更新,始终指向显存帧队列中当前可用的最后一个显存帧,用于标识显存帧队列在当前可用的最后一个显存帧的地址。
该第一指针和第二指针是硬件指针,由硬件自动更新。
基于上述显存帧队列,显存管理模块中的管理单元HMM,根据显存帧分配请求所指示的显存帧个数,从显存帧队列中申请对应个数的显存帧,可以包括:
从显存帧队列中的第一指针所指向的显存帧开始,沿朝向第二指针所指向的显存帧的方向,从显存帧队列中申请对应个数的显存帧,并将对应个数的显存帧的状态从可申请状态修改为不可申请状态。
相应的,在申请到对应个数的显存帧之后,管理单元HMM控制第一指针移动至显存帧队列中当前处于可申请状态的第一个显存帧的地址。
结合上述任一一种实施方式,在本公开的一种实施方式中,管理单元HMM在管理显存帧的申请分配过程中,还可以基于显存帧队列检测是否存在显存泄露的情况。
检测是否存在显存泄露,可以包括:管理单元HMM在根据显存帧分配请求从显存帧队列中申请显存帧之前,可以先判断在显存帧队列内是否存在处于可申请状态的显存帧。
其中,若显存帧队列内存在至少一个处于可申请状态的显存帧,则可以继续执行:根据显存帧分配请求从显存帧队列中申请显存帧。
若显存帧队列内不存在任何一个处于可申请状态的显存帧,则可以认定存在显存泄露的情况。此时,管理单元HMM可以发出用于表征存在显存泄露的第一告警中断上报给MCU,进而交由MCU上的SW进行处理。
进一步的,为了进行容错处理,管理单元HMM在初步确定显存帧队列内不存在任何一个处于可申请状态的显存帧时,还可以等待预设时长后再次判断在显存帧队列内是否存在处于可申请状态的显存帧,且在再次确定不存在处于可申请状态的显存帧时,发出用于表征存在显存泄露的第一告警。
上述管理单元HMM判断在显存帧队列内是否存在处于可申请状态的显存帧的过程,可以是HMM根据其内部的硬件电路(例如加法器、减法器等)确定当前显存帧队列中的第一指针以及第二指针的位置,进而确定在显存帧队列内是否存在处于可申请状态的显存帧。
当然,在一些实施方式中,在显存管理模块内还可以新增第一数目寄存器以及第二数目寄存器。
其中,第一数目寄存器用于记录在初始化显存帧队列时,显存帧队列内的显存帧的总数目,是一个定值;第二数目寄存器用于记录显存帧队列在当前所包括的可用的显存帧的数目,是一个动态变化值。
在这种实施方式下,HMM还可以通过访问第二数目寄存器,以获取显存帧队列中当前可用(即处于可申请状态的显存帧)的显存帧的数目(第一数目),以及根据第一指针以及第二指针的位置,获取显存帧队列中当前不可用的显存帧(即处于不可申请状态的显存帧)的第二数目,并将第一数目与第二数目进行求和得到数目和值。
后续,HMM将数目和值与第一数目寄存器所记录的显存帧的总数目进行比较,若两者数值不一致,也可以认定存在显存泄露的情况。
在这种实施方式下,HMM在认定存在显存泄露时,可以立即发出第一告警,也可以通过预先设置泄露个数阈值的方式来设置最低容忍度,并在HMM监测到显存的泄露个数低于泄露个数阈值时,不发出第一告警,在HMM监测到显存的泄露个数等于或大于泄露个数阈值时,发出第一告警。
其中,显存的泄露个数即为总数目与数目和值之差。例如数目和值为99,总数目为100,即存在显存泄露,且显存的泄露个数为100-99=1。
显存帧的释放过程如下。
前文提及,显存管理模块中的管理单元HMM通过与释放方的软硬件性质对应的第二接口接收显存帧释放请求,并将与显存帧释放请求对应的显存帧释放回显存帧队列。
基于此,当请求方为硬件IP模块时,硬件IP模块直接通过与显存管理模块之间存在物理接口,即硬件接口向显存管理模块中的管理单元HMM传输显存帧释放请求。
当请求方为软件IP模块时,软件IP模块通过访问软硬件接口所包括的请求状态寄存器,进而修改请求状态寄存器中的值,以产生第二访问命令传递给显存管理模块中的管理单元HMM。该第二访问命令用于表征显存帧释放请求。
在本公开实施例中,在显存帧释放请求内携带本次待释放的各个显存帧的显存帧的描述符,在每个显存帧的描述符中包括待释放的显存帧的地址,且各个待释放的显存帧的地址之间不一定连续。值得指出的是,显存帧释放请求所携带的显存帧的描述符中的owner字段已被释放方清除。
基于此,管理单元HMM获取到软件IP模块或硬件IP模块传输的显存帧释放请求后,根据每个与显存帧释放请求对应的显存帧的描述符,将显存帧队列中与各个待释放的显存帧的地址所指向的显存帧的状态修改为可申请状态;以及将显存帧队列的第二指针挪动至目标显存帧的地址。目标显存帧是管理单元HMM当前所接收到的显存帧释放请求中所包括的最后一个描述符所对应的显存帧。
此外,在一些实施方式中,在释放显存帧的过程中,管理单元HMM还可以针对显存是否存在故障进行检测。例如,管理单元HMM在将与显存帧释放请求对应的显存帧释放回显存帧队列之前,还可以检测当前在显存帧队列内是否存在处于不可申请状态的显存帧,即是否存在被占用的显存帧。
其中,在存在时,执行:将与显存帧释放请求对应的显存帧释放回显存帧队列。当不存在时,说明显存帧在释放前已满,显存存在错误。此时,管理单元HMM可以发出用于表征显存存在异常的第二告警中断上报给MCU,进而交由MCU上的SW进行处理。
从上述显存帧的申请分配以及释放的具体过程可以看出,在本公开实施例中,可以通过HMM完成对显存的泄露检测以及异常检测,提高了显存管理的安全性和健壮性,进而提高GPU系统的整体稳定性。
此外,前文提及,请求方与释放方可以为相同IP模块或不同IP模块。其中,当请求方与释放方为不同IP模块,且释放方所释放的显存帧是请求方所申请分配的显存帧全部或部分显存帧时,意味着请求方将申请分配到的部分或全部显存帧直接或间接传输给了释放方。
基于此,请参考图3,在本公开的一种实施方式中,显存管理模块还可以包括传输单元TSE(Transmit Switch Engine),用于将其中一个IP模块(为便于区分,以下称之为第一IP模块)的显存帧传输至另一个IP模块(为便于区分,以下称之为第二IP模块)。
可以理解,第一IP模块可以是硬件IP模块以及软件IP模块中的任意一种,第二IP模块可以是硬件IP模块以及软件IP模块中的任意一种。
第一IP模块在申请分配到显存帧并获取到对应的显存帧的描述符Framebufferdescriptor(该显存帧的描述符可以是由其他IP模块发送,也可以是由HMM发送)后,可以针对Framebuffer descriptor所包括的owner字段进行修改,并在Framebuffer descriptor内设置发送方的标识src_port以及释放方的标识dst_port。
其中,src_port用于表示当前占用本Framebuffer descriptor所指示的显存帧的IP模块的编号,dst_port用于表示本Framebuffer descriptor所指示的显存帧最终将被送至的目的IP模块(本示例中的释放方,即第二IP模块)的编号。
第一IP模块完成上述针对Framebuffer descriptor的设置后,将Framebufferdescriptor发送给传输单元TSE。
传输单元TSE接收到第一IP模块发送的Framebuffer descriptor后,基于Framebuffer descriptor所携带的释放方的标识dst_port,将Framebuffer descriptor传输给与dst_port对应的释放方,即第二IP模块。
第二IP模块在获取到Framebuffer descriptor后,可以基于Framebufferdescriptor内的显存帧地址,去相应的位置获取到对应的显存帧进行使用。
至此,即通过传输单元TSE完成将其中一个IP模块的显存帧传输至另一个IP模块。
值得指出的是,在现有技术中,不同IP模块之间有传输显存帧的需求时,需要第一IP模块先申请分配显存帧后再进行释放,然后再由第二IP模块去申请分配该由第一IP模块所释放的显存帧。显然,该过程及其繁琐且耗时。而在本公开中,无需经历该繁琐的过程,通过传输单元TSE即可实现不同IP模块之间的显存帧传输需求,可以节省时间,提高传输效率。
此外,在本公开的一种实施方式中,传输单元TSE所传输的对象并不是真实的显存帧,而是指的显存帧的索引,即显存帧的描述符。由于显存帧的描述符所占用的内存资源远远小于真实的显存帧,由此,通过本公开所提出的传输单元TSE来传输显存帧,可以进一步提高传输效率,有利于提高使用该传输单元TSE的系统的整体流畅度。
此外,值得指出的是,即使采用硬件的方式来实现显存管理,对于本领域技术人员来说,容易想到的技术手段是通过硬件的方式为各个IP模块绑定对应的显存帧,那么各个IP模块只能独占对应的显存帧。即使同一显存帧可以与不同的IP模块进行绑定,该同一显存帧在被其中一个IP模块申请占用后,在其没有被释放的前提下,该同一显存帧也不能在多个IP模块之间直接共享,存在管理不灵活的问题。
而在本公开实施例中,发明人通过付出创造性劳动,创新性地提出根据请求方的显存帧分配请求,从显存帧队列中申请分配可用的显存帧给请求方,不存在显存帧只能被某一IP模块独占的情况。此外,本公开实施例还创新性地提出通过传输单元TSE将同一显存帧在不同IP模块之间进行传输,实现了显存帧在不同IP模块之间的直接共享,提高了显存管理的灵活性。
本公开实施例还提供一种SOC,在一些使用场景下,该SOC的产品形式体现为显卡;在另一些使用场景下,该SOC的产品形式体现为GPU主板。
如图4所示,SOC可以包括上述任一实施例所提及到的显存管理模块以及多个IP模块。且在多个IP模块中包括至少一个软件IP模块以及至少一个硬件IP模块。
其中,硬件IP模块可以是图4中所示的VPU、DC以及GPU Core(GPU Core0、GPUCore1、GPU Core2)等,软件IP模块可以是图4中所示的MCU内的SW。
可选的,在一种实施方式中,显存管理模块所包括的软硬件接口包括多个通道。在多个IP模块中,预先建立不同的软件IP模块与同一个软硬件接口中的不同通道之间一一对应关系。相应的,不同的软件IP模块通过同一软硬件接口中的不同的通道向管理单元发起显存帧分配请求和/或显存帧释放请求。
可选的,在一种实施方式中,显存管理模块包括多个软硬件接口,在多个IP模块中,预先建立不同的软件IP模块与不同的软硬件接口之间一一对应关系。相应的,不同的软件IP模块通过与之对应的不同软硬件接口向管理单元发起显存帧分配请求和/或显存帧释放请求。
可选的,在一种实施方式中,请求方与释放方可以是同一IP模块,也可以是不同IP模块。
本公开实施例还提供一种电子设备,该电子设备包括上述的SOC。在一些使用场景下,该电子设备的产品形式是便携式电子设备,例如智能手机、平板电脑、VR设备等;在一些使用场景下,该电子设备的产品形式是个人电脑、游戏主机、工作站、服务器等。
本公开的一个实施例提供一种显存管理方法,应用于包括硬件接口以及软硬件接口的显存管理模块。如图5所示,该方法可以包括:
步骤S110:通过与请求方的软硬件性质对应的接口接收显存帧分配请求,并根据所述显存帧分配请求从预先创建的显存帧队列中申请显存帧给所述请求方。
步骤S120:通过与释放方的软硬件性质对应的接口接收显存帧释放请求,并将与所述显存帧释放请求对应的显存帧释放回所述显存帧队列。
当所述请求方或所述释放方为软件IP模块时,与所述软硬件接口相对应,当所述请求方或所述释放方为硬件IP模块时,与所述硬件接口相对应。
在一些实施方式中,所述软硬件接口包括请求状态寄存器以及结果状态寄存器;当所述请求方为所述软件IP模块时,所述通过与请求方的软硬件性质对应的接口接收显存帧分配请求,并根据所述显存帧分配请求从预先创建的显存帧队列中申请显存帧给所述请求方,包括:
接收所述请求方对所述请求状态寄存器发起的第一访问命令,所述第一访问命令用于表征所述显存帧分配请求;
根据所述显存帧分配请求从所述显存帧队列中申请显存帧,并将申请到的显存帧所对应的显存帧地址写入到所述结果状态寄存器。
在一些实施方式中,所述根据所述显存帧分配请求从预先创建的显存帧队列中申请显存帧给所述请求方,包括:
根据所述显存帧分配请求所指示的显存帧个数,从所述显存帧队列中申请对应个数的显存帧,将所述对应个数的显存帧的显存帧地址范围发送给所述请求方。
在一些实施方式中,所述显存帧队列包括第一指针以及第二指针,所述第一指针用于指示所述显存帧队列中当前处于可申请状态的第一个显存帧的显存帧地址,所述第二指针用于指示所述显存帧队列中当前处于可申请状态的最后一个显存帧的显存帧地址;从所述显存帧队列中申请对应个数的显存帧,包括:
从所述第一指针所指向的显存帧开始,沿朝向所述第二指针所指向的显存帧的方向,从所述显存帧队列中申请对应个数的显存帧,并将所述对应个数的显存帧的状态从可申请状态修改为不可申请状态;
移动所述第一指针至所述显存帧队列中当前处于可申请状态的第一个显存帧的地址。
在一些实施方式中,在所述根据所述显存帧分配请求从预先创建的显存帧队列中申请显存帧之前,所述方法还包括:
判断在所述显存帧队列内是否存在处于可申请状态的显存帧;
在为是时,根据所述显存帧分配请求从预先创建的显存帧队列中申请显存帧;
在为否时,发出用于表征存在显存泄露的第一告警中断。
在一些实施方式中,在所述发出用于表征存在显存泄露的第一告警中断之前,所述方法还包括:等待预设时长后再次判断在所述显存帧队列内是否存在处于可申请状态的显存帧,且确定不存在处于可申请状态的显存帧。
在一些实施方式中,所述显存帧释放请求携带与所述显存帧释放请求对应的显存帧的描述符,每个与所述显存帧释放请求对应的显存帧的描述符中包括待释放的显存帧的地址;所述显存帧队列包括用于指示所述显存帧队列中当前处于可申请状态的最后一个显存帧的显存帧地址的第二指针,所述将与所述显存帧释放请求对应的显存帧释放回所述显存帧队列,包括:
根据每个与所述显存帧释放请求对应的显存帧的描述符,将所述显存帧队列中与各个待释放的显存帧的地址所指向的显存帧的状态修改为可申请状态;
将所述第二指针挪动至目标显存帧的地址,所述目标显存帧是当前所接收到的显存帧释放请求所包括的最后一个描述符所对应的显存帧。
在一些实施方式中,在所述将与所述显存帧释放请求对应的显存帧释放回所述显存帧队列之前,所述方法还包括:
判断在所述显存帧队列内是否存在处于不可申请状态的显存帧;
在为是时,将与所述显存帧释放请求对应的显存帧释放回所述显存帧队列;
在为否时,发出用于表征异常的第二告警中断。
在一些实施方式中,所述请求方与所述释放方为同一模块,或为不同模块。
在一些实施方式中,显存管理模块还包括传输单元,当所述请求方与所述释放方为不同模块时,所述方法还包括:
通过所述传输单元接收请求方发送的描述符,所述请求方发送的描述符中携带所述释放方的标识;通过所述传输单元将所述描述符传输给所述释放方的标识对应的所述释放方。
在一些实施方式中,与所述显存帧释放请求对应的显存帧是所述请求方请求的显存帧。
基于上述方案,在显存管理方案中,显存管理模块可以根据请求方的软硬件性质,通过软硬件接口或硬件接口接收显存帧分配请求,通过硬件接口或硬件接口接收显存帧释放请求。对于显存管理模块本身而言,是一个硬件模块,那么在本公开实施例中,从本质来说,是通过硬件的方式来管理显存帧的申请分配以及显存帧的释放。而通过硬件的方式进行管理,大部分的工作都是由硬件来执行,可以基于硬件模块自身内部的硬件连线去实施各种控制,例如查询显存帧的状态、读写数据等,相较于现有技术中通过执行大量的程序去调用函数的纯软件方式,可以极大地节省各部分的时延,由此可以提高管理性能。
此外,本公开所提供的显存管理方案,位于显存帧队列内的显存帧无需与各个IP模块之间建立恒定的绑定关系,显存管理模块可根据各个IP模块的显存帧分配请求为各个IP模块分配显存帧,以及在后续将分配出去的显存帧释放回显存帧队列,那么从宏观上来说,同一个显存帧在不同的阶段可能会分配给不同的IP模块,实现了显存帧在各个IP模块之间的共享,提高了显存管理的灵活性。
此外,在本公开所提及到的显存管理方案中,显存管理模块还可以针对显存帧泄露的情况进行检测判断,极大提高了显存帧的分配和使用性能,也提高了显存的安全性和健壮性。
尽管已描述了本公开的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本公开范围的所有变更和修改。
显然,本领域的技术人员可以对本公开进行各种改动和变型而不脱离本公开的精神和范围。这样,倘若本公开的这些修改和变型属于本公开权利要求及其等同技术的范围之内,则本公开也意图包含这些改动和变型在内。
Claims (17)
1.一种显存管理方法,应用于包括硬件接口以及软硬件接口的显存管理模块,所述方法包括:
通过与请求方的软硬件性质对应的接口接收显存帧分配请求,并根据所述显存帧分配请求从预先创建的显存帧队列中申请显存帧给所述请求方;
通过与释放方的软硬件性质对应的接口接收显存帧释放请求,并将与所述显存帧释放请求对应的显存帧释放回所述显存帧队列;
当所述请求方或所述释放方为软件IP模块时,与所述软硬件接口相对应,当所述请求方或所述释放方为硬件IP模块时,与所述硬件接口相对应。
2.根据权利要求1所述的显存管理方法,所述软硬件接口包括请求状态寄存器以及结果状态寄存器;当所述请求方为所述软件IP模块时,所述通过与请求方的软硬件性质对应的接口接收显存帧分配请求,并根据所述显存帧分配请求从预先创建的显存帧队列中申请显存帧给所述请求方,包括:
接收所述请求方对所述请求状态寄存器发起的第一访问命令,所述第一访问命令用于表征所述显存帧分配请求;
根据所述显存帧分配请求从所述显存帧队列中申请显存帧,并将申请到的显存帧所对应的显存帧地址写入到所述结果状态寄存器。
3.根据权利要求1所述的显存管理方法,所述根据所述显存帧分配请求从预先创建的显存帧队列中申请显存帧给所述请求方,包括:
根据所述显存帧分配请求所指示的显存帧个数,从所述显存帧队列中申请对应个数的显存帧,将所述对应个数的显存帧的显存帧地址范围发送给所述请求方。
4.根据权利要求3所述的显存管理方法,所述显存帧队列包括第一指针以及第二指针,所述第一指针用于指示所述显存帧队列中当前处于可申请状态的第一个显存帧的显存帧地址,所述第二指针用于指示所述显存帧队列中当前处于可申请状态的最后一个显存帧的显存帧地址;从所述显存帧队列中申请对应个数的显存帧,包括:
从所述第一指针所指向的显存帧开始,沿朝向所述第二指针所指向的显存帧的方向,从所述显存帧队列中申请对应个数的显存帧,并将所述对应个数的显存帧的状态从可申请状态修改为不可申请状态;
移动所述第一指针至所述显存帧队列中当前处于可申请状态的第一个显存帧的地址。
5.根据权利要求1-4中任一项所述的显存管理方法,在所述根据所述显存帧分配请求从预先创建的显存帧队列中申请显存帧之前,所述方法还包括:
判断在所述显存帧队列内是否存在处于可申请状态的显存帧;
在为是时,根据所述显存帧分配请求从预先创建的显存帧队列中申请显存帧;
在为否时,发出用于表征存在显存泄露的第一告警中断。
6.根据权利要求5所述的显存管理方法,在所述发出用于表征存在显存泄露的第一告警中断之前,所述方法还包括:
等待预设时长后再次判断在所述显存帧队列内是否存在处于可申请状态的显存帧,且确定不存在处于可申请状态的显存帧。
7.根据权利要求1所述的显存管理方法,所述显存帧释放请求携带与所述显存帧释放请求对应的显存帧的描述符,每个与所述显存帧释放请求对应的显存帧的描述符中包括待释放的显存帧的地址;所述显存帧队列包括用于指示所述显存帧队列中当前处于可申请状态的最后一个显存帧的显存帧地址的第二指针,所述将与所述显存帧释放请求对应的显存帧释放回所述显存帧队列,包括:
根据每个与所述显存帧释放请求对应的显存帧的描述符,将所述显存帧队列中与各个待释放的显存帧的地址所指向的显存帧的状态修改为可申请状态;
将所述第二指针挪动至目标显存帧的地址,所述目标显存帧是当前所接收到的显存帧释放请求所包括的最后一个描述符所对应的显存帧。
8.根据权利要求1或7所述的显存管理方法,在所述将与所述显存帧释放请求对应的显存帧释放回所述显存帧队列之前,所述方法还包括:
判断在所述显存帧队列内是否存在处于不可申请状态的显存帧;
在为是时,将与所述显存帧释放请求对应的显存帧释放回所述显存帧队列;
在为否时,发出用于表征异常的第二告警中断。
9.根据权利要求1所述的显存管理方法,所述请求方与所述释放方为同一模块,或为不同模块。
10.根据权利要求9所述的显存管理方法,显存管理模块还包括传输单元,当所述请求方与所述释放方为不同模块时,所述方法还包括:
通过所述传输单元接收请求方发送的描述符,所述请求方发送的描述符中携带所述释放方的标识;
通过所述传输单元将所述描述符传输给所述释放方的标识对应的所述释放方。
11.根据权利要求1所述的显存管理方法,与所述显存帧释放请求对应的显存帧是所述请求方请求的显存帧。
12.一种显存管理模块,包括:
管理单元、硬件接口以及软硬件接口;
所述管理单元,用于在通过所述硬件接口或所述软硬件接口接收请求方发起的显存帧分配请求时,从预先创建的显存帧队列中申请显存帧并分配给所述请求方;以及用于在通过所述硬件接口或所述软硬件接口接收释放方发起的显存帧释放请求时,将与所述显存帧释放请求对应的显存帧释放回所述显存帧队列;
当所述请求方或所述释放方为硬件IP模块时,与所述硬件接口对应,当所述请求方或所述释放方为软件IP模块时,与所述软硬件接口对应。
13.一种SOC,包括权利要求12所述的显存管理模块以及多个IP模块,在所述多个IP模块中包括至少一个硬件IP模块以及至少一个软件IP模块。
14.根据权利要求13所述的SOC,所述软硬件接口包括多个通道,所述多个IP模块中,不同的所述软件IP模块通过不同的所述通道发起所述显存帧分配请求和/或所述显存帧释放请求。
15.根据权利要求13所述的SOC,在所述多个IP模块中,每个所述软件IP模块存在一一对应的所述软硬件接口。
16.根据权利要求13所述的SOC,所述请求方与所述释放方为同一IP模块,或为不同IP模块。
17.一种电子设备,包括权利要求13-16中任一项所述的SOC。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210489162.0A CN114579319B (zh) | 2022-05-07 | 2022-05-07 | 显存管理方法、显存管理模块、soc及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210489162.0A CN114579319B (zh) | 2022-05-07 | 2022-05-07 | 显存管理方法、显存管理模块、soc及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114579319A true CN114579319A (zh) | 2022-06-03 |
CN114579319B CN114579319B (zh) | 2022-07-19 |
Family
ID=81769386
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210489162.0A Active CN114579319B (zh) | 2022-05-07 | 2022-05-07 | 显存管理方法、显存管理模块、soc及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114579319B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115292199A (zh) * | 2022-09-22 | 2022-11-04 | 荣耀终端有限公司 | 一种显存泄露的处理方法及相关装置 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109376003A (zh) * | 2018-08-17 | 2019-02-22 | 中国航空无线电电子研究所 | 一种链式结构的gpu显存管理方法 |
CN112506646A (zh) * | 2020-11-16 | 2021-03-16 | 西安万像电子科技有限公司 | 显存分配的方法及装置 |
WO2021098182A1 (zh) * | 2019-11-20 | 2021-05-27 | 上海商汤智能科技有限公司 | 资源管理方法和装置、电子设备及存储介质 |
CN113900829A (zh) * | 2021-12-10 | 2022-01-07 | 深圳比特微电子科技有限公司 | 用于设备的内存管理方法、内存管理设备和计算系统 |
CN114217977A (zh) * | 2021-12-23 | 2022-03-22 | 北京百度网讯科技有限公司 | 资源分配方法、装置、设备以及存储介质 |
CN114418828A (zh) * | 2021-12-23 | 2022-04-29 | 北京百度网讯科技有限公司 | 显存管理方法、装置、设备、存储介质及程序产品 |
-
2022
- 2022-05-07 CN CN202210489162.0A patent/CN114579319B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109376003A (zh) * | 2018-08-17 | 2019-02-22 | 中国航空无线电电子研究所 | 一种链式结构的gpu显存管理方法 |
WO2021098182A1 (zh) * | 2019-11-20 | 2021-05-27 | 上海商汤智能科技有限公司 | 资源管理方法和装置、电子设备及存储介质 |
CN112506646A (zh) * | 2020-11-16 | 2021-03-16 | 西安万像电子科技有限公司 | 显存分配的方法及装置 |
CN113900829A (zh) * | 2021-12-10 | 2022-01-07 | 深圳比特微电子科技有限公司 | 用于设备的内存管理方法、内存管理设备和计算系统 |
CN114217977A (zh) * | 2021-12-23 | 2022-03-22 | 北京百度网讯科技有限公司 | 资源分配方法、装置、设备以及存储介质 |
CN114418828A (zh) * | 2021-12-23 | 2022-04-29 | 北京百度网讯科技有限公司 | 显存管理方法、装置、设备、存储介质及程序产品 |
Non-Patent Citations (1)
Title |
---|
潘曦等: "基于RFID通信资源管理系统的设计与实现", 《北京电子科技学院学报》 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115292199A (zh) * | 2022-09-22 | 2022-11-04 | 荣耀终端有限公司 | 一种显存泄露的处理方法及相关装置 |
Also Published As
Publication number | Publication date |
---|---|
CN114579319B (zh) | 2022-07-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2022156370A1 (zh) | 一种基于fpga的dma设备及dma数据搬移方法 | |
CN112948318B (zh) | 一种Linux操作系统下基于RDMA的数据传输方法及装置 | |
CN113918101B (zh) | 一种写数据高速缓存的方法、系统、设备和存储介质 | |
US8990456B2 (en) | Method and apparatus for memory write performance optimization in architectures with out-of-order read/request-for-ownership response | |
CN110119304B (zh) | 一种中断处理方法、装置及服务器 | |
CN113051195A (zh) | 存储器、gpu及电子设备 | |
CN112947857B (zh) | 一种数据搬移方法、装置、设备及计算机可读存储介质 | |
CN114579319B (zh) | 显存管理方法、显存管理模块、soc及电子设备 | |
CN112612623A (zh) | 一种共享内存管理的方法和设备 | |
US20230137668A1 (en) | storage device and storage system | |
CN115525417A (zh) | 数据通信方法、通信系统及计算机可读存储介质 | |
WO2022032990A1 (zh) | 一种命令信息传输方法、系统、装置及可读存储介质 | |
TWI811560B (zh) | 資源整合系統及資源整合方法 | |
EP0217350A2 (en) | Data transfer control unit and system | |
CN115658571B (zh) | 一种数据传输方法、装置、电子设备及介质 | |
JP2001282631A (ja) | 書き込みデータの破壊を制限する方法及びシステムとpciバス・システム | |
US8688889B2 (en) | Virtual USB key for blade server | |
CN115878333A (zh) | 进程组间的一致性判断方法、装置及设备 | |
CN116009770A (zh) | 读响应电路、方法、数据传输系统及相关设备 | |
CN115048255A (zh) | 一种自动化测试方法、装置,主机及存储介质 | |
US20130247065A1 (en) | Apparatus and method for executing multi-operating systems | |
CN116601616A (zh) | 一种数据处理装置、方法及相关设备 | |
US20030214909A1 (en) | Data processing device and its input/output method and program | |
US7716397B2 (en) | Methods and systems for interprocessor message exchange between devices using only write bus transactions | |
US20240103897A1 (en) | Diversified virtual memory |
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 |