CN113051082A - 软件硬件数据同步方法、装置、电子设备和存储介质 - Google Patents
软件硬件数据同步方法、装置、电子设备和存储介质 Download PDFInfo
- Publication number
- CN113051082A CN113051082A CN202110229144.4A CN202110229144A CN113051082A CN 113051082 A CN113051082 A CN 113051082A CN 202110229144 A CN202110229144 A CN 202110229144A CN 113051082 A CN113051082 A CN 113051082A
- Authority
- CN
- China
- Prior art keywords
- event
- queue
- command
- gpu
- cpu
- 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.)
- Pending
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/54—Interprogram communication
- G06F9/542—Event management; Broadcasting; Multicasting; Notifications
-
- 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/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
-
- 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/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Advance Control (AREA)
Abstract
本申请实施例提供了一种软件硬件数据同步方法、装置、电子设备和存储介质,通过GPU的驱动程序获取预设的事件队列,其中,事件队列包括多个事件;驱动程序根据各个事件对应的事件类型在命令队列中插入事件命令;驱动程序将GPU的硬件模块执行事件命令时触发的中断信号发送至CPU,以使CPU依次执行事件队列中的各个事件。在本申请实施例中,GPU的驱动程序可以在命令队列中插入事件命令,每当GPU的硬件模块执行到命令队列中的事件命令时,都会触发中断并通知CPU,以使CPU在收到中断信号后执行事件命令对应的不同类型的事件,因此,CPU能够根据收到的中断信号获取到GPU目前执行的命令的位置,实现CPU和GPU的数据同步。
Description
技术领域
本申请涉及图像处理技术,具体地,涉及一种软件硬件数据同步方法、装置、电子设备和存储介质。
背景技术
在一些电子设备中,图形任务的处理通常是由GPU(Graphics Processing Unit,图形处理器)和CPU(central processing unit,中央处理器)协同完成的。一个图像任务通常包括软件部分和硬件部分,CPU通过GPU的驱动程序执行图形任务的软件部分,例如,删除命令缓冲区、加锁或解锁等;而GPU则通过硬件模块执行图形任务的硬件部分,例如渲染、绘图等。
当电子设备在处理图形任务时,在某些情况下,由CPU执行的软件部分可能比GPU执行的硬件部分更快地完成任务,此时可能存在GPU在执行命令时必要的文件已经被CPU销毁了。例如,在GPU引用命令队列中的一个表面(surface)之前,CPU可能不再需要这个表面而准备销毁这个表面,若在CPU销毁表面之后,GPU需要引用这个表面,会导致图形任务发生错误,无法继续执行。所以,CPU对于表面信息的销毁操作应当在GPU处理完表面之后执行。
因此,CPU和GPU在执行图形任务时需要实现数据同步,以使CPU能够获取到GPU的命令执行情况,以保证图形任务的正常执行。
发明内容
本申请实施例中提供了一种软件硬件数据同步方法、装置、电子设备和存储介质,用于解决现有技术在处理图形任务时CPU和GPU无法进行数据同步的问题。
根据本申请实施例的第一个方面,提供了一种软件硬件数据同步方法,应用于图形处理器GPU的驱动程序,所述GPU还包括硬件模块,所述方法包括:
获取预设的事件队列,其中,所述事件队列包括多个事件;
根据所述事件队列包括的各个事件对应的事件类型在命令队列中插入事件命令;
将所述GPU的硬件模块执行所述事件命令时触发的中断信号发送至CPU,以使所述CPU执行所述事件队列中的各个事件。
根据本申请实施例的第二个方面,提供了一种软件硬件数据同步装置,应用于图形处理器GPU的驱动程序,所述GPU还包括硬件模块,所述装置包括:
队列获取模块,用于获取预设的事件队列,其中,所述事件队列包括多个事件;
命令插入模块,用于根据所述事件队列包括的各个事件对应的事件类型在命令队列中插入事件命令;
执行模块,用于将所述GPU的硬件模块执行所述事件命令时触发的中断信号发送至CPU,以使所述CPU执行所述事件队列中的各个事件。
根据本申请实施例的第三个方面,提供了一种电子设备,包括:处理器、存储器和总线,所述处理器包括CPU和GPU,所述存储器存储有所述处理器可执行的机器可读指令,当所述电子设备运行时,所述处理器与所述存储器之间通过所述总线通信,所述机器可读指令被所述处理器执行时执行上述实施例提供的软件硬件数据同步方法。
根据本申请实施例的第四个方面,提供了一种存储介质,所述存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行上述实施例提供的软件硬件数据同步方法。
本申请实施例提供了一种软件硬件数据同步方法、装置、电子设备和存储介质,应用于图形处理器GPU的驱动程序,所述GPU还包括硬件模块,所述方法包括:获取预设的事件队列,其中,事件队列包括多个事件;根据所述事件队列包括的各个事件对应的事件类型在命令队列中插入事件命令;驱动程序将GPU的硬件模块执行事件命令时触发的中断信号发送至CPU,以使CPU执行事件队列中的各个事件。在本申请实施例中,GPU驱动程序可以在命令队列中插入事件命令,每当GPU的硬件模块执行到命令队列中的事件命令时,都会触发中断并通知CPU,CPU在收到中断信号后执行对应的事件类型对中断进行处理,因此,CPU能够根据收到的中断信号获取到GPU目前执行的命令的位置,实现CPU和GPU的数据同步。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1为本申请实施例提供的软件硬件数据同步方法的流程图;
图2为本申请实施例提供的步骤S11的子步骤流程图;
图3为本申请实施例提供的事件队列的示意图;
图4为本申请实施例提供的步骤S13的子步骤流程图;
图5为本申请实施例提供的命令队列的示意图;
图6为本申请实施例提供的软件硬件数据同步装置的功能模块图;
图7为本申请实施例提供的电子设备的示意图。
图标:10-电子设备;11-处理器;12-存储器;13-总线;110-命令提交装置;1101-队列获取模块;1102-命令插入模块;1103-执行模块。
具体实施方式
在实现本申请的过程中,发明人发现,在一些电子设备中,图形任务的处理通常是由GPU(Graphics Processing Unit,图形处理器)和CPU(central processing unit,中央处理器)协同完成的。一个图形任务通常包括软件部分和硬件部分,CPU执行图形任务的软件部分,例如,删除命令缓冲区、加锁或解锁等;而GPU则执行图形任务的硬件部分,例如渲染、绘图等。
当电子设备在处理图形任务时,在某些情况下,由CPU执行的软件部分可能比GPU执行的硬件部分更快地完成任务,这种情况可能导致GPU在执行命令时必要的文件已经被CPU提前销毁了。例如,在GPU引用命令队列中的一个表面(surface)之前,CPU可能由于不再需要这个表面而销毁这个表面,若在CPU销毁表面之后,GPU仍然需要引用这个表面,那么此时CPU对表面的操作就造成了破坏,导致待执行的图形任务发生错误,无法继续执行。所以,表面的销毁操作需要考虑命令队列中的各个命令完成情况,即CPU对于表面信息(或命令缓冲区)的销毁操作应当在GPU处理完表面之后执行。
其次,每个执行图形任务的线程都有各自的命令缓冲区,在将待执行的图形处理命令填充至命令缓冲区时不存在数据同步的问题,但是当线程将命令缓冲区中的图形处理命令提交给GPU硬件执行时,对于命令缓冲区中的数据,软件和硬件之间则需要实现数据同步,也就是说软件和硬件在处理数据时需要实现同步。
因此,CPU和GPU在执行图形任务时需要实现数据同步,以使CPU能够获取到GPU的命令执行情况,以保证图形任务的正常执行。
针对上述问题,发明人提出通过事件(Event)命令的方式来解决在使用GPU处理图形任务时,软件和硬件如何数据同步的问题。具体地,本申请实施例提供了一种软件硬件数据同步方法、装置、电子设备和存储介质,应用于图形处理器GPU的驱动程序,所述GPU还包括硬件模块,所述方法包括:获取预设的事件队列,其中,事件队列包括多个事件;根据事件队列包括的各个事件对应的事件类型在命令队列中插入事件命令;驱动程序将GPU的硬件模块执行事件命令时触发的中断信号发送至CPU,以使CPU执行事件队列中的各个类型对应的事件。在本申请实施例中,GPU驱动程序可以在命令队列中插入事件命令,每当GPU的硬件模块执行到命令队列中的事件命令时,都会触发中断并通知CPU,CPU在收到中断信号后执行对应的事件类型对中断进行处理,因此,CPU能够根据收到的中断信号获取到GPU目前执行的命令的位置,实现CPU和GPU的数据同步。
为了使本申请实施例中的技术方案及优点更加清楚明白,以下结合附图对本申请的示例性实施例进行进一步详细的说明,显然,所描述的实施例仅是本申请的一部分实施例,而不是所有实施例的穷举。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
请参照图1,图1为本申请实施例提供的软件硬件数据同步方法的流程图。在本实施例中,软件硬件数据同步方法应用于GPU的驱动程序,所述GPU还包括硬件模块,所述方法包括:
步骤S11,获取预设的事件队列。
其中,事件队列包括多个事件。
步骤S12,根据事件队列包括的各个事件对应的事件类型在命令队列中插入事件命令。
步骤S13,将GPU的硬件模块执行所述事件命令时触发的中断信号发送至CPU,以使CPU执行事件队列中的各个事件。
在上述步骤中,GPU包括驱动程序和硬件模块,驱动程序由CPU辅助执行,用于执行图形任务处理过程中的软件部分,而硬件模块则用于执行图形任务处理过程中的硬件部分,即执行命令队列中的命令。本申请实施例为GPU提供了一种特殊的命令类型,即事件命令,事件命令和其他普通类型的图形处理命令都能被插入到命令队列中,GPU按顺序从命令队列中读取并执行命令,但当GPU执行此事件命令时,将触发一个硬件中断通知CPU,CPU收到中断信号后调用相对应的中断处理程序对中断进行处理,即执行事件队列中的各个事件,因此,CPU能够根据接收到的中断信号获取GPU目前执行的命令的位置,实现CPU和GPU的数据同步。
可选地,在本实施例中,命令队列中可能存在多个事件命令,当GPU执行到一个事件命令时,触发中断并通知CPU,在通知CPU后,GPU继续执行命令队列中的其他命令。
可选地,请参照图2,图2为本申请实施例提供的步骤S11的子步骤流程图。在本实施例中,步骤S11包括以下步骤:
步骤S111,获取多个不同的事件类型。
其中,所述事件类型包括等待、销毁、加锁及解锁等。
步骤S112,将多个不同的事件类型对应的事件按照预设顺序排列,获得预设的事件队列。
在上述步骤中,GPU包括一个驱动程序,该驱动程序由CPU执行,在CPU通过GPU驱动程序向命令队列中提交事件命令之前,首先需要通过GPU驱动程序建立一个事件队列。
如图3所示,图3为本申请实施例提供的事件队列的示意图。在本实施例中,CPU首先获取多个不同的事件类型,可选地,事件类型包括等待、销毁、加锁及解锁等不同的类型,其中,等待是指CPU在等待预设时间后再执行下一操作,销毁是指CPU对表面命令缓冲区进行销毁,加锁及解锁是指对图形操作进行加锁或者解锁。
在一种实施方式中,图3所示的事件类型1可以是销毁,事件类型2可以是等待,事件类型3可以是加锁,事件类型n可以是解锁。值得说明的是,上述仅是对各个事件类型的举例说明,并不构成对事件类型的限定,在本实施例的其他实施方式中,事件类型还可以包括多种其他种类的触发事件。也即是说,事件队列中的各个事件类型的顺序可以是等待、加锁、解锁、销毁,也可以是销毁、等待、解锁、加锁等其他形式。
继续参照图3,在本实施例中,当获取到多个不同的事件类型后,将多个不同的事件类型对应的事件按照需求进行排列,最终获得图3所示的事件队列。值得说明的是,图3仅为本申请实施例对事件队列的一种示例,在本实施例的其他实施方式中,事件队列中各个事件类型还可以存在其他不同的排序方式。
可选地,在本实施例中,在CPU通过GPU的驱动程序插入事件命令时,需要根据事件类型决定事件命令的插入位置。
例如,若一个命令缓冲区中的所有命令在执行时需要保证CPU和GPU同步,可以根据用户的同步需求设置不同的事件类型。
当事件类型为销毁时,则需要在命令队列的末尾插入销毁类型对应的事件命令,以使所述销毁类型对应的事件在所述命令队列中最后被执行。也即是说,需要在命令队列中所有的命令均被GPU的硬件模块执行后,GPU再执行销毁对应的事件命令,并触发中断,CPU在接收到中断信号后则执行事件命令中对应的事件,即销毁命令缓冲区。
当事件类型为加锁和解锁时,可以在命令缓冲区的前后分别设置加锁事件和解锁事件,即在命令队列的头部插入加锁对应的事件命令,在命令队列的尾部插入解锁对应的事件命令。当GPU执行加锁对应的事件命令时,触发中断,CPU接收到中断信号后对命令缓冲区加锁,即独占实施;直至GPU执行到解锁对应的事件命令,触发中断,CPU再对命令缓冲区进行解锁。
可选地,在本实施例中,事件队列还包括头节点和尾结点,其中,头节点用于表示CPU执行事件类型的位置,尾结点用于表示CPU向事件队列中增加事件类型的位置。也即是说,在CPU执行事件时,从头节点所在的位置开始执行,而CPU在向事件队列插入事件类型时,则从尾结点所在的位置开始插入。
可选地,在本实施例中,请继续参照图2,在图2中的步骤S112之后,步骤S11还包括:
步骤S113,获取事件队列的尾结点所在的位置;
步骤S114,将新增的事件随机存储至队列的尾结点所在的位置中。
步骤S115,更新队列的尾结点的位置。
在上述步骤中,每当GPU触发一次中断,CPU都会执行一次事件队列中存储的事件类型,在事件队列中的事件被执行完毕之前,需要向事件队列中继续增加事件类型,便于CPU继续执行。
在向事件队列中增加事件类型时,需要先获取队列的尾结点所在的位置,并将事件类型随机增加至队列的尾结点所在的位置处,然后再更新队列的尾结点的位置,从而使得队列的尾结点始终位于事件队列的尾部。
可选地,在本实施例中,在获取到预设的事件队列之后,需要根据事件队列中的各个事件类型的顺序在命令队列中插入事件命令。例如,若事件队列中的事件类型分别为销毁、加锁、解锁。
例如,若销毁表面1的命令需要在图形处理命令3(即图形处理命令3之后的命令都不需要引用该表面1)之后执行,则可以在图形处理命令3之后插入事件命令。
可选地,事件命令可以插入到图形处理命令3及图形处理命令4之间,也可以插入到图形处理命令3之后的任意一个位置处。同理,CPU可以根据其他事件类型的执行位置按需在命令列表中插入事件命令,以保证软件执行的事件(例如销毁、加锁)在GPU执行之后才会被执行,避免销毁数据后硬件还需要引用该数据而造成图形任务出错的情况发生。
除此之外,事件队列可以根据不同的情况进行自定义,CPU可以将GPU处理图形任务时需要的事件类型插入到事件队列中,以保证GPU的顺利执行。
可选地,请参照图4,图4为本申请实施例提供的步骤S13的子步骤流程图。在本实施例中,步骤S13包括以下子步骤:
步骤S131,当CPU接收到所述中断信号后,进入中断服务程序,从事件队列中获取队列的头节点。
步骤S132,执行队列的头节点中存储的事件。
在上述步骤中,请结合参照图5,图5为本申请实施例提供的命令队列的示意图,在本实施例中,CPU将命令缓冲区中待GPU执行的图形处理命令写入到命令队列中,并通过GPU驱动程序将事件命令插入到命令队列中,GPU在执行命令时,按照命令队列中各个命令的顺序依次读取并执行。当GPU执行到事件命令时,会触发硬件中断,然后CPU进入中断服务程序。以图5为例,GPU(硬件)按顺序执行命令队列中的命令,也就是依次执行图5中的图形处理命令1、图形处理命令2,当图形处理命令2执行完后执行事件命令1,当执行到事件命令1时,触发GPU中断,随后CPU进入中断服务程序进行处理。当CPU进入中断服务程序后,GPU继续执行图形处理命令3以及事件命令2,当执行到事件命令2时,再次触发中断,CPU进入中断服务程序。
当CPU进入中断服务程序后,从事件队列中获取事件队列的头节点,并执行头节点中对应的事件。
可选地,请继续参照图4,在本实施例中,在步骤S132之后,步骤S13还包括:
步骤S133,删除被执行的头节点及头节点中存储的事件。
在上述步骤中,每当CPU执行完一次事件类型后,都会将该事件类型对应的节点及该节点中存储的事件类型删除。当CPU再次进入中断服务程序时,即可获取到事件队列中的下一个事件类型进行执行。
由于每当GPU执行到一个事件命令时,都会触发中断,因此CPU可以根据触发的中断了解到此时GPU的命令执行位置。例如,在图5中,当GPU第一次触发中断时,CPU能够获取到目前GPU已经执行到图形处理命令2了,当GPU第二次触发中断时,CPU则了解到命令队列中的图形处理命令n已经被GPU执行了。因此,通过上述步骤,可以使CPU了解到GPU的命令执行情况,实现GPU和CPU的数据同步,避免出现软件命令先于硬件命令执行完成而使硬件有可能只能错误执行完的情况。
综上所述,本申请实施例提供了一种软件硬件数据同步方法、装置、电子设备和存储介质,应用于图形处理器GPU的驱动程序,所述GPU还包括硬件模块,所述方法包括:获取预设的事件队列,其中,事件队列包括多个事件;根据所述事件队列包括的各个事件对应的事件类型在命令队列中插入事件命令;驱动程序将GPU的硬件模块执行事件命令时触发的中断信号发送至CPU,以使CPU执行事件队列中的各个事件。在本申请实施例中,GPU驱动程序可以在命令队列中插入事件命令,每当GPU的硬件模块执行到命令队列中的事件命令时,都会触发中断并通知CPU,CPU在收到中断信号后执行对应的事件类型对中断进行处理,因此,CPU能够根据收到的中断信号获取到GPU目前执行的命令的位置,实现CPU和GPU的数据同步。
基于同样的构思,本申请实施例还提供了一种软件硬件数据同步装置。请参照图6,图6为本申请实施例提供的软件硬件数据同步装置110的功能模块图,应用于应用于图形处理器GPU的驱动程序,所述GPU还包括硬件模块,所述装置包括:
队列获取模块1101,用于获取预设的事件队列,其中,所述事件队列包括多个事件。
命令插入模块1102,用于根据所述事件队列包括的各个事件对应的事件类型在命令队列中插入事件命令。
执行模块1103,用于将所述GPU的硬件模块执行所述事件命令时触发的中断信号发送至CPU,以使所述CPU执行所述事件队列中的各个事件。
在一种可选的实施方式中,队列获取模块1101具体用于:
获取多个不同的事件类型,其中,所述事件类型包括等待、销毁、加锁及解锁;将多个不同事件类型对应的事件随机排列,获得预设的事件队列。
在一种可选的实施方式中,队列获取模块1101具体还用于:
获取所述事件队列的尾结点所在的位置;将新增的事件随机存储至所述队列的尾结点所在的位置;更新所述队列的尾结点的位置。
在一种可选的实施方式中,所述执行模块1103具体用于:
当所述CPU接收到所述中断信号后,进入中断服务程序,从所述事件队列中获取队列的头节点;执行所述队列的头节点中存储的事件。
请参照图7,图7为本申请实施例提供的电子设备10的示意图,在本实施例中,电子设备10包括处理器11、存储器12和总线13,所述处理器11包括CPU和GPU,存储器12存储有所述处理器11可执行的机器可读指令,当电子设备10运行时,处理器11与存储器12之间通过所述总线13通信,所述机器可读指令被所述处理器11执行时执行本申请实施例提供的命令提交方法或命令执行方法。
本申请实施例还提供了一种存储介质,所述存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行本申请实施例提供的命令提交方法或命令执行方法。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (11)
1.一种软件硬件数据同步方法,其特征在于,应用于图形处理器GPU的驱动程序,所述GPU还包括硬件模块,所述方法包括:
获取预设的事件队列,其中,所述事件队列包括多个事件;
根据所述事件队列包括的各个事件对应的事件类型在命令队列中插入事件命令;
将所述GPU的硬件模块执行所述事件命令时触发的中断信号发送至CPU,以使所述CPU执行所述事件队列中的各个事件。
2.根据权利要求1所述的方法,其特征在于,所述获取预设的事件队列,包括:
获取多个不同的事件类型,其中,所述事件类型包括等待、销毁、加锁及解锁;
将多个不同的事件类型对应的事件按照预设顺序排列,获得预设的事件队列。
3.根据权利要求2所述的方法,所述获取预设的事件队列还包括:
获取所述事件队列的尾结点所在的位置;
将新增的事件随机存储至所述队列的尾结点所在的位置;
更新所述队列的尾结点的位置。
4.根据权利要求1所述的方法,其特征在于,所述根据所述事件队列包括的多个事件的类型在命令队列中插入事件命令,包括:
当所述事件类型为销毁时,在所述命令队列的末尾插入销毁类型对应的事件命令,以使所述销毁类型对应的事件在所述命令队列中最后被执行。
5.根据权利要求1所述的方法,其特征在于,所述将所述GPU的硬件模块执行所述事件命令时触发的中断信号发送至CPU,以使所述CPU执行所述事件队列中的各个事件,包括:
当所述CPU接收到所述中断信号后,进入中断服务程序,从所述事件队列中获取队列的头节点;
执行所述队列的头节点中存储的事件。
6.根据权利要求5所述的方法,其特征在于,在执行所述队列的头节点中存储的事件之后,所述方法还包括:
删除所述被执行的头节点及所述头节点中存储的事件。
7.一种软件硬件数据同步装置,其特征在于,应用于图形处理器GPU的驱动程序,所述GPU还包括硬件模块,所述装置包括:
队列获取模块,用于获取预设的事件队列,其中,所述事件队列包括多个事件;
命令插入模块,用于根据所述事件队列包括的各个事件对应的事件类型在命令队列中插入事件命令;
执行模块,用于将所述GPU的硬件模块执行所述事件命令时触发的中断信号发送至CPU,以使所述CPU执行所述事件队列中的各个事件。
8.根据权利要求7所述的装置,其特征在于,所述队列获取模块具体用于:
获取多个不同的事件类型,其中,所述事件类型包括等待、销毁、加锁及解锁;
将多个不同的事件类型对应的事件按照预设顺序排列,获得预设的事件队列。
9.根据权利要求7所述的装置,其特征在于,所述执行模块具体用于:
当所述CPU接收到所述中断信号后,进入中断服务程序,从所述事件队列中获取队列的头节点;
执行所述队列的头节点中存储的事件。
10.一种电子设备,其特征在于,包括:处理器、存储器和总线,所述处理器包括CPU和GPU,所述存储器存储有所述处理器可执行的机器可读指令,当所述电子设备运行时,所述处理器与所述存储器之间通过所述总线通信,所述机器可读指令被所述处理器执行时执行如权利要求1-6任一项所述的软件硬件数据同步方法。
11.一种存储介质,其特征在于,所述存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行如权利要求1-6任一项所述的软件硬件数据同步方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110229144.4A CN113051082A (zh) | 2021-03-02 | 2021-03-02 | 软件硬件数据同步方法、装置、电子设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110229144.4A CN113051082A (zh) | 2021-03-02 | 2021-03-02 | 软件硬件数据同步方法、装置、电子设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113051082A true CN113051082A (zh) | 2021-06-29 |
Family
ID=76509781
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110229144.4A Pending CN113051082A (zh) | 2021-03-02 | 2021-03-02 | 软件硬件数据同步方法、装置、电子设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113051082A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115150179A (zh) * | 2022-04-25 | 2022-10-04 | 深圳星云智联科技有限公司 | 软硬生命老化控制方法和相关装置、芯片、介质和程序 |
CN115858055A (zh) * | 2023-02-06 | 2023-03-28 | 中车工业研究院(青岛)有限公司 | 一种软硬件间的解耦方法、系统、装置及介质 |
CN118035163A (zh) * | 2024-04-10 | 2024-05-14 | 深圳中微电科技有限公司 | 一种gpu实时处理数据的方法、系统及存储介质 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004341921A (ja) * | 2003-05-16 | 2004-12-02 | Nippon Telegr & Teleph Corp <Ntt> | 情報処理方法および情報処理システム |
US20060075210A1 (en) * | 2004-05-06 | 2006-04-06 | Rajit Manohar | Sensor-network processors using event-driven architecture |
CN101770398A (zh) * | 2008-12-26 | 2010-07-07 | 罗侍田 | 一种操作系统内核 |
CN102597950A (zh) * | 2009-09-03 | 2012-07-18 | 先进微装置公司 | 基于硬件排程gpu工作 |
CN103582877A (zh) * | 2010-12-15 | 2014-02-12 | 超威半导体公司 | 计算机系统中断处理 |
CN108536527A (zh) * | 2018-02-08 | 2018-09-14 | 山东省科学院自动化研究所 | 一种嵌入式软件的任务调度方法及装置 |
CN109213607A (zh) * | 2017-06-30 | 2019-01-15 | 武汉斗鱼网络科技有限公司 | 一种多线程渲染的方法和装置 |
CN110673937A (zh) * | 2019-09-19 | 2020-01-10 | 惠州志顺电子实业有限公司 | 单片机及其同步异步控制方法 |
CN111061571A (zh) * | 2018-10-16 | 2020-04-24 | 鸿合科技股份有限公司 | 一种事件处理方法及装置、电子设备 |
-
2021
- 2021-03-02 CN CN202110229144.4A patent/CN113051082A/zh active Pending
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004341921A (ja) * | 2003-05-16 | 2004-12-02 | Nippon Telegr & Teleph Corp <Ntt> | 情報処理方法および情報処理システム |
US20060075210A1 (en) * | 2004-05-06 | 2006-04-06 | Rajit Manohar | Sensor-network processors using event-driven architecture |
CN101770398A (zh) * | 2008-12-26 | 2010-07-07 | 罗侍田 | 一种操作系统内核 |
CN102597950A (zh) * | 2009-09-03 | 2012-07-18 | 先进微装置公司 | 基于硬件排程gpu工作 |
CN103582877A (zh) * | 2010-12-15 | 2014-02-12 | 超威半导体公司 | 计算机系统中断处理 |
CN109213607A (zh) * | 2017-06-30 | 2019-01-15 | 武汉斗鱼网络科技有限公司 | 一种多线程渲染的方法和装置 |
CN108536527A (zh) * | 2018-02-08 | 2018-09-14 | 山东省科学院自动化研究所 | 一种嵌入式软件的任务调度方法及装置 |
CN111061571A (zh) * | 2018-10-16 | 2020-04-24 | 鸿合科技股份有限公司 | 一种事件处理方法及装置、电子设备 |
CN110673937A (zh) * | 2019-09-19 | 2020-01-10 | 惠州志顺电子实业有限公司 | 单片机及其同步异步控制方法 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115150179A (zh) * | 2022-04-25 | 2022-10-04 | 深圳星云智联科技有限公司 | 软硬生命老化控制方法和相关装置、芯片、介质和程序 |
CN115150179B (zh) * | 2022-04-25 | 2024-01-02 | 深圳星云智联科技有限公司 | 软硬生命老化控制方法和相关装置、芯片、介质和程序 |
CN115858055A (zh) * | 2023-02-06 | 2023-03-28 | 中车工业研究院(青岛)有限公司 | 一种软硬件间的解耦方法、系统、装置及介质 |
CN118035163A (zh) * | 2024-04-10 | 2024-05-14 | 深圳中微电科技有限公司 | 一种gpu实时处理数据的方法、系统及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113051082A (zh) | 软件硬件数据同步方法、装置、电子设备和存储介质 | |
CN111782360A (zh) | 分布式任务调度方法及装置 | |
US20120144138A1 (en) | Locking Access To Data Storage Shared By A Plurality Of Compute Nodes | |
CN109032796B (zh) | 一种数据处理方法和装置 | |
US20080244589A1 (en) | Task manager | |
CN110225078B (zh) | 一种应用服务更新方法、系统及终端设备 | |
US10564889B2 (en) | Method and apparatus for processing data based on physical host | |
US7818749B2 (en) | Data processing method, data processing apparatus, and data processing program | |
US9246836B2 (en) | Single producer, single consumer lockless FIFO/LIFO queue | |
US9411661B2 (en) | Deadlock avoidance | |
CN108292244B (zh) | 数据处理装置、数据处理方法及计算机可读取的记录介质 | |
US20170353554A1 (en) | Message transmitting method and device for a robot operating system | |
CN112947973A (zh) | 中间件服务程序的配置更新方法、装置及电子设备 | |
US6839723B2 (en) | Information management system | |
CN113051071A (zh) | 命令提交方法和装置、命令读取方法和装置、电子设备 | |
US20190057001A1 (en) | Decoupled maintenance and repository synchronization error detection | |
US9727381B2 (en) | Image forming apparatus and resource management method | |
FR3003365A1 (fr) | Procede et dispositif de gestion de mises a jour logicielles d'un ensemble d'equipements d'un systeme tel qu'un systeme d'un aeronef | |
RU2698766C1 (ru) | Способ и устройство для передачи, отправки и получения информации | |
CN112379952B (zh) | 一种跨进程回调的实现方法 | |
CN114691651A (zh) | 事件处理方法、装置、设备以及存储介质 | |
CN115269063A (zh) | 进程创建方法、系统、设备及介质 | |
JP2006331213A (ja) | システムリソース管理装置、システムリソース管理方法及びプログラム | |
US20210011795A1 (en) | Computer system, control method, and recording medium | |
KR20220069113A (ko) | 데이터 구조, 저장 수단 및 장치 |
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 |