CN115904761B - 片上系统、车辆及视频处理单元虚拟化方法 - Google Patents
片上系统、车辆及视频处理单元虚拟化方法 Download PDFInfo
- Publication number
- CN115904761B CN115904761B CN202310000577.1A CN202310000577A CN115904761B CN 115904761 B CN115904761 B CN 115904761B CN 202310000577 A CN202310000577 A CN 202310000577A CN 115904761 B CN115904761 B CN 115904761B
- Authority
- CN
- China
- Prior art keywords
- processing unit
- hardware
- video processing
- call request
- operating system
- 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
Images
Classifications
-
- 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
- Stored Programmes (AREA)
- Computer And Data Communications (AREA)
Abstract
本公开提供了一种片上系统、车辆及视频处理单元虚拟化方法,片上系统包括:多个硬件域,每一硬件域能够独立运行操作系统,不同的硬件域的硬件资源相互隔离,不同的硬件域之间通过核间通信结构进行通信;共享内存,与多个硬件域连接,以使多个硬件域能够通过共享内存共享数据;多个硬件域包括用于运行第一操作系统的第一硬件域、用于运行第二操作系统的第二硬件域和用于运行虚拟化管理应用程序的第三硬件域,第三硬件域包括视频处理单元,虚拟化管理应用程序将通过核间通信结构接收的第一调用请求和/或第二调用请求发送至视频处理单元响应,第一调用请求由第一操作系统调用视频处理单元生成,第二调用请求由第二操作系统调用视频处理单元生成。
Description
技术领域
本公开涉及计算机领域,尤其涉及一种片上系统、车辆及视频处理单元虚拟化方法。
背景技术
随着科技进步、社会发展和多功能的需求,不同功能的操作系统分别需要VPU(Video Processing Unit,视频处理单元)来进行编解码等视频处理。每一操作系统分别配置VPU,可以满足各操作系统对VPU的需求,但增加了成本。通过服务器为各终端提供VPU服务,可以实现多个操作系统共用同一VPU,但各终端与服务器之间的数据传输受到限制,在快速、及时等放方面仍有不足。在同构多核SOC(System on Chip,片上系统)内利用CPU的虚拟化技术构建出包括主机与多个客户机的不同虚拟机,客户机与主机都运行在虚拟机上,受虚拟机控制,VPU的虚拟化前端跑在各个客户机上,VPU的虚拟化后端跑在主机上,可以实现VPU的虚拟化。但该虚拟化技术需要CPU本身支持虚拟化,且依赖于片上系统的CPU具有相同的架构,对于异构多核的SOC或者CPU本身不支持虚拟化,则无法实现。
发明内容
本公开提供了一种片上系统、车辆及视频处理单元虚拟化方法,以至少解决现有技术中存在的以上技术问题。
根据本公开的第一方面,提供了一种片上系统,包括:
多个硬件域,每一所述硬件域能够独立运行操作系统,不同的所述硬件域的硬件资源相互隔离,不同的所述硬件域之间通过核间通信结构进行通信;
共享内存,与多个所述硬件域连接,以使多个所述硬件域能够通过所述共享内存共享数据;
多个所述硬件域包括用于运行第一操作系统的第一硬件域、用于运行第二操作系统的第二硬件域和用于运行虚拟化管理应用程序的第三硬件域,所述第三硬件域包括视频处理单元,所述虚拟化管理应用程序将通过所述核间通信结构接收的第一调用请求和/或第二调用请求发送至所述视频处理单元进行响应,所述第一调用请求由所述第一操作系统调用所述视频处理单元生成,所述第二调用请求由所述第二操作系统调用所述视频处理单元生成。
在一可实施方式中,所述虚拟化管理应用程序根据预设策略将所述第一调用请求和/或所述第二调用请求发送至所述视频处理单元。
在一可实施方式中,所述预设策略包括下述中的至少一种:所述第一调用请求和第二调用请求优先级;所述第一应用程序和所述第二应用程序对所述视频处理单元的资源的分配。
在一可实施方式中,所述第三硬件域包括与所述第一操作系统对应的第一消息队列和所述第二操作系统对应的第二消息队列,所述虚拟化管理应用程序将接收的所述第一调用请求放入所述第一消息队列,将接收的所述第二调用请求放入所述第二消息队列,所述虚拟化管理应用程序根据预设策略从所述第一消息队列取出所述第一调用请求和/或从所述第二消息队列取出所述第二调用请求,以发送至所述视频处理单元进行响应。
在一可实施方式中,所述第一调用请求或所述第二调用请求包括下述中的至少一种:实例创建请求,其用于根据待处理图像数据请求所述视频处理单元创建对应的VPU实例;数据处理请求,其用于请求所述视频处理单元采用对应的VPU实例对所述待处理图像数据进行处理;实例释放请求,其用于请求所述视频处理单元清除VPU实例,以释放所述视频处理单元的资源。
在一可实施方式中,所述数据处理请求包括第一地址信息,以使所述视频处理单元根据所述第一地址信息从所述共享内存获取所述待处理图像数据。
在一可实施方式中,所述数据处理请求包括第二地址信息,以使所述视频处理单元根据所述第二地址信息将处理后的图像数据存入所述共享内存。
在一可实施方式中,所述视频处理单元响应所述实例创建请求,确定当前实例所需资源,若所述视频处理单元剩余资源小于当前实例所需资源,当前实例创建失败,并反馈实例创建结果。
在一可实施方式中,所述虚拟化管理应用程序还用于将所述视频处理单元的资源按预设比例配置给所述第一应用程序和所述第二应用程序,或将所述视频处理单元的资源动态配置给所述第一应用程序和所述第二应用程序。
在一可实施方式中,所述片上系统还包括:
硬件访问权限控制器,其用于配置所述片上系统的各所述硬件域访问硬件资源的权限。
在一可实施方式中,所述硬件访问权限控制器还用于配置所述片上系统的硬件资源以形成多个所述硬件域或者解除多个所述硬件域之间的硬件隔离。
根据本公开的第二方面,提供了一种车辆,包括本公开实施例所述的片上系统。
根据本公开的第三方面,提供了一种基于片上系统的视频处理单元虚拟化方法,所述片上系统包括多个硬件域和与多个所述硬件域连接的共享内存,以使多个所述硬件域能够通过所述共享内存共享数据,每一所述硬件域能够独立运行操作系统,不同的所述硬件域的硬件资源相互隔离,不同的所述硬件域之间通过核间通信结构进行通信,所述多个硬件域包括用于运行第一操作系统的第一硬件域、用于运行第二操作系统的第二硬件域和用于运行虚拟化管理应用程序的第三硬件域,所述第三硬件域包括视频处理单元,所述方法包括:
所述第三硬件域上的虚拟化管理应用程序通过所述核间通信结构接收第一调用请求和/或第二调用请求,所述第一调用请求由所述第一硬件域上的第一操作系统调用所述视频处理单元生成,所述第二调用请求由所述第二硬件域上的第二操作系统调用所述视频处理单元生成;
所述虚拟化管理应用程序将所述第一调用请求和/或所述第二调用请求发送至所述视频处理单元进行响应。
本公开的片上系统包括多个硬件域和共享内存,不同的所述硬件域的硬件资源相互隔离,每一所述硬件域能够独立运行操作系统,本公开实施例中,操作系统运行于硬件域上,不依赖虚拟机,适用于各种CPU架构的片上系统,不限于多核同构的片上系统。不同的所述硬件域之间通过核间通信结构进行通信,可以实现各硬件域上的操作系统之间快速通信。多个所述硬件域能够通过所述共享内存共享数据,通过共享内存共享数据,可以减少不同硬件域之间的数据传输,提高片上系统的处理速度。运行于第一硬件域的第一操作系统和运行于第二硬件域的第二操作系统分别能够向运行于第三硬件域的虚拟化管理应用程序请求调用视频处理单元,所述虚拟化管理应用程序将通过所述核间通信结构接收的调用请求发送至所述视频处理单元进行响应,调用请求包括所述第一操作系统调用所述视频处理单元生成的第一调用请求以及所述第二操作系统调用所述视频处理单元生成的所述第二调用请求。本公开实施例的片上系统基于硬件域能够实现视频处理单元的虚拟化,能够适用于同构和异构的多核片上系统,具有较强的适应性。
应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
通过参考附图阅读下文的详细描述,本公开示例性实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本公开的若干实施方式,其中:
在附图中,相同或对应的标号表示相同或对应的部分。
图1示出了本公开实施例的片上系统的组成结构示意图一;
图2示出了本公开实施例的片上系统调用视频处理单元的实现流程示意图一;
图3示出了本公开实施例的片上系统调用视频处理单元的实现流程示意图二;
图4示出了本公开实施例的片上系统调用视频处理单元的实现流程示意图三;
图5示出了本公开实施例的视频处理单元虚拟化方法的实现流程示意图。
具体实施方式
为使本公开的目的、特征、优点能够更加的明显和易懂,下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分实施例,而非全部实施例。基于本公开中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。
参见图1,本公开实施例提供了一种片上系统,该片上系统包括多个硬件域,每一硬件域能够独立运行操作系统,不同的硬件域的硬件资源相互隔离,不同的硬件域之间通过核间通信结构进行通信。
本公开实施例中的每个硬件域是一组独立硬件资源的组合,能够独立运行操作系统,每一硬件域的硬件资源例如可包括CPU、中断控制器(Generic Interrupt Controller,GIC)、时钟模块(CLK)、通信模块等。不同硬件域的硬件资源的具体构成可以相同,也可以不同。
本公开实施例中,多个硬件域中的一个硬件域包括视频处理单元,且该硬件域上运行有虚拟化管理应用程序,多个硬件域中至少两个硬件域上运行的操作系统具有使用视频处理单元的需求,具有使用视频处理单元的需求的操作系统可以通过向虚拟化管理应用程序发送调用请求,以使视频处理单元对调用请求对应的数据进行处理。
例如,在一个具体实施方式中,多个硬件域包括用于运行第一操作系统的第一硬件域、用于运行第二操作系统的第二硬件域和用于运行虚拟化管理应用程序的第三硬件域,第三硬件域包括视频处理单元,虚拟化管理应用程序将通过核间通信结构接收的第一调用请求和/或第二调用请求发送至视频处理单元进行响应,第一调用请求由第一操作系统调用视频处理单元生成,第二调用请求由第二操作系统调用视频处理单元生成。
本公开实施例中,运行虚拟化管理应用程序的硬件域可以作为主机,运行各操作系统,如第一操作系统及第二操作系统的硬件域可以作为客户机。各客户机分别可以调用主机的视频处理单元。主机可以对客户机的调用请求进行响应。
在以下实施例中,继续以第一操作系统和第二操作系统对视频处理单元进行调用为例,对本公开实施例的片上系统进行说明。
在其他可实施方式中,片上系统上可以装载有更多操作系统,例如多个硬件域还可以包括用于运行第三操作系统的硬件域以及用于运行第四操作系统的硬件域等,根据需要,第三操作系统或第四操作系统也可以发送调用请求,以使视频处理单元对调用请求对应的数据进行处理。
在一可实施方式中,参见图1,本公开实施例的片上系统还包括共享内存,共享内存与多个硬件域连接,以使多个硬件域能够通过共享内存共享数据。各硬件域上的操作系统均可将数据存储至该共享内存,各硬件域上的操作系统也可以访问其他操作系统存储至该共享内存上是数据。
本公开的片上系统包括多个硬件域和共享内存,不同的硬件域的硬件资源相互隔离,每一硬件域能够独立运行操作系统,本公开实施例中,操作系统运行于硬件域上,不依赖虚拟机,适用于各种CPU架构的片上系统,不限于多核同构的片上系统。不同的硬件域之间通过核间通信结构进行通信,可以实现各硬件域上的操作系统之间快速通信。多个硬件域能够通过共享内存共享数据,通过共享内存共享数据,可以减少不同硬件域之间的数据传输,提高片上系统的处理速度。运行于第一硬件域的第一操作系统和运行于第二硬件域的第二操作系统分别能够向运行于第三硬件域的虚拟化管理应用程序请求调用视频处理单元,虚拟化管理应用程序将通过核间通信结构接收的调用请求发送至视频处理单元进行响应,调用请求包括第一操作系统调用视频处理单元生成的第一调用请求以及第二操作系统调用视频处理单元生成的第二调用请求。本公开实施例的片上系统基于硬件域能够实现视频处理单元的虚拟化,能够适用于同构和异构的多核片上系统,适应性强。
本公开实施例中,不同硬件域的硬件资源相互隔离,各硬件域对各自的硬件资源具有访问和管理权限,其硬件域不能对其他硬件域的硬件资源直接进行操作。
本公开实施例中,虚拟化管理应用程序可以根据预设策略将各操作系统的调用请求发送至视频处理单元。根据预设策略使视频处理单元响应各调用请求,可以优化视频处理单元的算力。通过虚拟化管理应用程序还可以对预设策略进行变更,以便于能够灵活适应不同场景。
在一可实施方式中,虚拟化管理应用程序根据预设策略将第一调用请求和/或第二调用请求发送至视频处理单元。虚拟化管理应用程序接收的调用请求可以是第一操作系统调用视频处理单元生成的第一调用请求,也可以是第二操作系统调用视频处理单元生成的第二调用请求,或者虚拟化管理应用程序接收的调用请求既包括第一调用请求又包括第二调用请求。
本公开实施例中,各操作系统调用视频处理单元,可以是请求视频处理单元进行编码,也可以是请求视频处理单元进行解码。
在一可实施方式中,预设策略包括但不限于下述中的至少一种:第一调用请求和第二调用请求优先级;第一应用程序和第二应用程序对视频处理单元的资源的分配。通过对不同操作系统的调用请求设定不同的优先级,以对不同操作系统提供差异化的VPU服务。例如,可以设定第一操作系统的优先级高于其他操作系统的优先级,在第一操作系统和第二操作系统均发出调用请求的情况下,优先处理第一操作系统发出的第一调用请求,虚拟化管理应用程序将第一调用请求发送给视频处理单元进行响应之后,再将第二调用请求发送给视频处理单元进行响应。或者,可以对各操作系统的调用请求设定一定的顺序和比例,虚拟化管理应用程序将各操作系统的调用请求按设定顺序和比例,发送给视频处理单元进行响应。例如,第一操作系统发出的第一调用请求优先于第二操作系统发出的第二调用请求,且连续处理第一调用请求的个数不超过4个,连续处理第二调用请求的个数不超过2个。在第一操作系统和第二操作系统均发出多个请求解码的调用请求的情况下,虚拟化管理应用程序依次发送4个请求解码的第一调用请求给视频处理单元进行解码之后,再发送2个请求解码的第二调用请求给视频处理单元进行解码,之后再次发送4个请求解码的第一调用请求给视频处理单元进行解码,如此重复。
视频处理单元的资源可以通过虚拟化管理应用程序进行分配。视频处理单元的资源的分配可以包括但不限于各操作系统的VPU实例的最大数量,各操作系统支持的最大分辨率等。例如,第一操作系统的VPU实例的最大数量是3个,最大分辨率为1920x1080。第二操作系统的VPU实例的最大数量是2个,最大分辨率为1280x720。第三操作系统的VPU实例的最大数量是2个,最大分辨率为1280x720。视频处理单元最多为第一操作系统建立3个VPU实例,最多为第二操作系统建立2个VPU实例,最多为第三操作系统建立2个VPU实例。响应各操作系统的编码或解码的调用请求,可以选择对应的已建立的VPU实例进行编码或解码。若需要新的VPU实例处理数据,可以删除现有的VPU实例,以建立新的VPU实例满足调用请求的具体编解码需求。
其他示例性实施例中,视频处理单元的资源也可以不具体分配至各操作系统,而仅对各操作系统可使用视频处理单元的资源的总数进行控制。例如,可以预设各操作系统可建立VPU实例的总数,可以根据具体情况灵活分配各操作系统的VPU实例数量。
通过对视频处理单元的资源预先进行分配,可以保证视频处理单元的服务质量。
在一可实施方式中,第三硬件域包括与第一操作系统对应的第一消息队列和第二操作系统对应的第二消息队列,虚拟化管理应用程序将接收的第一调用请求放入第一消息队列,将接收的第二调用请求放入第二消息队列,虚拟化管理应用程序根据预设策略从第一消息队列取出第一调用请求和/或从第二消息队列取出第二调用请求,以发送至视频处理单元进行响应。各操作系统分别对应有各自的消息队列,各消息队列用于存放对应的操作系统发送的调用请求。将预设策略与各消息队列相关联,虚拟化管理应用程序即可根据预设策略从各消息队列取出相应的调用请求送至视频处理单元进行响应。例如,预设策略为优先处理第一操作系统的第一调用请求,则虚拟化管理应用程序优先从第一操作系统对应的第一消息队列中取出第一调用请求,并发送至视频处理单元。在第一消息队列中的第一操作请求全部取出后,虚拟化管理应用程序再从第二操作系统对应的第二消息队列中取出第二调用请求,并发送至视频处理单元。
将调用请求从消息队列中取出,发送至视频处理单元进行处理后,虚拟化管理应用程序将处理结果反馈至对应的操作系统。
本公开实施例中,与各操作系统对应的消息队列可以是基于虚拟化管理应用程序接收到操作系统的调用请求创建。虚拟化管理应用程序接收到操作系统的调用请求,若有与操作系统对应的消息队列,则将接收到的调用请求放入对应的消息队列中,若没有与操作系统对应的消息队列,则创建与操作系统对应的消息队列,并将接收到的调用请求放入对应的消息队列中。
在一可实施方式中,第一调用请求或第二调用请求包括下述中的至少一种:实例创建请求,其用于根据待处理图像数据请求视频处理单元创建对应的VPU实例;数据处理请求,其用于请求视频处理单元采用对应的VPU实例对待处理图像数据进行处理;实例释放请求,其用于请求视频处理单元清除VPU实例,以释放视频处理单元的资源。本公开实施例中,各操作系统的调用请求,例如第一调用请求和第二调用请求包括实例创建请求、数据处理请求和实例释放请求。根据实例创建请求创建的VPU实例用于处理图像数据,如对图像数据进行编码或解码。
各操作系统的VPU实例的个数根据预设策略确定,例如,第一操作系统的最大实例数为3,则视频处理单元最大创建3个与第一操作系统对应的VPU实例。
参见图2,接收实例创建请求,虚拟化管理应用程序可以确定是否有与生成实例创建请求的操作系统对应的消息队列,若有,则将实例创建请求放入该消息队列中;若无,则创建与该操作系统对应的消息队列,并将实例创建请求放入创建的消息队列中,后续接收自该操作系统的调用请求均放入该消息队列中。如接收到第一操作系统的实例创建请求,若有与第一操作系统对应的第一消息队列,则将该实例创建请求放入第一消息队列中,若没有与第一操作系统对应的第一消息队列,则创建第一消息队列与第一操作系统对应,并将该实例创建请求以及之后接收的第一操作系统的第一调用请求放入第一消息队列中。
参见图3,数据处理请求用于请求视频处理单元采用对应的VPU实例对待处理图像数据进行处理。VPU实例对待处理图像数据进行处理包括对待处理图像数据进行编码和对待处理图像数据进行解码。数据处理请求包括VPU实例的标识信息,根据标识信息用对应的VPU实例对待处理图像数据进行处理。例如,与第一操作系统对应有3个VPU实例,对应的标识分别为ID1001、ID1002和ID1003,若数据处理请求中包含的标识信息为ID1002,则采用ID1002对应的VPU实例对待处理图像数据进行处理。
参见图4,实例释放请求用于请求视频处理单元清除VPU实例,以释放视频处理单元的资源。通过清除VPU实例可以释放视频处理单元的资源,以便于能够创建新的VPU实例。在清除VPU实例之后,对视频处理单元剩余的资源进行更新,以便于创建VPU实例时,能够准确判断视频处理单元剩余的资源是否满足当前待创建的VPU实例对资源的需求。
在一可实施方式中,参见图3,数据处理请求包括第一地址信息,以使视频处理单元根据第一地址信息从共享内存获取待处理图像数据。待处理图像数据存储于共享内存中,操作系统,如第一操作系统或第二操作系统调用视频处理单元对待处理图像数据进行解密或编码等处理时,只需发送待处理图像数据的第一地址信息,视频处理单元根据该第一地址信息从共享内存获取对应的待处理图像数据,无需直接传送待处理图像数据。
在一可实施方式中,参见图3,数据处理请求包括第二地址信息,以使视频处理单元根据第二地址信息将处理后的图像数据存入共享内存。将处理后的图像数据存储于共享内存中,视频处理单元对待处理图像数据进行解密或编码等处理后,只需根据该第二地址信息将处理后的图像数据存储至共享内存,无需直接传送处理后的图像数据。
在一可实施方式中,参见图2,视频处理单元响应实例创建请求,确定当前实例所需资源,若视频处理单元剩余资源小于当前实例所需资源,当前实例创建失败,并反馈实例创建结果。虚拟化管理应用程序将实例创建请求从消息队列中取出发送给视频处理单元,视频处理单元确定剩余的资源是否满足本次待创建的VPU实例所需的资源,若满足,则创建对应的VPU实例,并向对应的操作系统反馈创建的VPU实例的标识;若不满足,则创建失败,并将对应的操作系统反馈创建失败的信息。
在一可实施方式中,虚拟化管理应用程序还用于将视频处理单元的资源按预设比例配置给第一应用程序和第二应用程序,或将视频处理单元的资源动态配置给第一应用程序和第二应用程序。
在一可实施方式中,片上系统还包括硬件访问权限控制器,硬件访问权限控制器用于配置片上系统的各硬件域访问硬件资源的权限。例如,硬件访问权限控制器可以将共享内存的资源按比例分配给各硬件域。
在一可实施方式中,硬件访问权限控制器还用于配置片上系统的硬件资源以形成多个硬件域或者解除多个硬件域之间的硬件隔离。片上系统的多个硬件域可以是硬件访问权限控制器对片上系统的硬件资源进行配置形成。形成硬件域可以是在制备该片上系统时预先配置形成,也可以是根据需要随时进行调整。硬件访问权限控制器还能够解除多个硬件域之间的硬件隔离,通过解除硬件域之间的硬件隔离,可以解除视频处理单元的虚拟化,还可以在解除硬件域之间的硬件隔离重新配置各硬件域的硬件资源。
本公开实施例中,各硬件域间之间的通信可以是基于Hypervisor-virtio实现。
本公开实施例提供了一种车辆,包括本公开实施例的片上系统。本公开实施例的片上系统可用于各种多操作系统的设备。包括但不限于车辆。
以应用于车辆为例,片上系统可以实现车辆的舱泊一体,在一个片上系统上集成座舱管理系统和泊车操作系统。例如,座舱管理系统运行于第一硬件域上,泊车操作系统运行于第二硬件域上,座舱管理系统对驾驶员进行检测,保证驾驶安全时,需要调用第三硬件域的视频处理单元,泊车操作系统也需要调用第三硬件域的视频处理单元对全景式监控影像系统(Around View Monitor,AVM)的图像进行处理。
参见图1及图5,本公开实施例提供了一种基于片上系统的视频处理单元虚拟化方法,片上系统包括多个硬件域,每一硬件域能够独立运行操作系统,不同的硬件域的硬件资源相互隔离,不同的硬件域之间通过核间通信结构进行通信,多个硬件域包括用于运行第一操作系统的第一硬件域、用于运行第二操作系统的第二硬件域和用于运行虚拟化管理应用程序的第三硬件域,第三硬件域包括视频处理单元,本公开实施例的视频处理单元虚拟化方法包括:第三硬件域上的虚拟化管理应用程序通过核间通信结构接收第一调用请求和/或第二调用请求,第一调用请求由第一硬件域上的第一操作系统调用视频处理单元生成,第二调用请求由第二硬件域上的第二操作系统调用视频处理单元生成;虚拟化管理应用程序将第一调用请求和/或第二调用请求发送至视频处理单元进行响应。
在一可实施方式中,本公开实施例的片上系统还包括共享内存,共享内存与多个硬件域连接,以使多个硬件域能够通过共享内存共享数据。各硬件域上的操作系统均可将数据存储至该共享内存,各硬件域上的操作系统也可以访问其他操作系统存储至该共享内存上是数据。
在一可实施方式中,虚拟化管理应用程序根据预设策略将第一调用请求和/或第二调用请求发送至视频处理单元。
在一可实施方式中,预设策略包括但不限于下述中的至少一种:第一调用请求和第二调用请求优先级;第一应用程序和第二应用程序对视频处理单元的资源的分配。
在一可实施方式中,第三硬件域包括与第一操作系统对应的第一消息队列和第二操作系统对应的第二消息队列,虚拟化管理应用程序将接收的第一调用请求放入第一消息队列,将接收的第二调用请求放入第二消息队列,虚拟化管理应用程序根据预设策略从第一消息队列取出第一调用请求和/或从第二消息队列取出第二调用请求,以发送至视频处理单元进行响应。各操作系统分别对应有各自的消息队列,各消息队列用于存放对应的操作系统发送的调用请求。将预设策略与各消息队列相关联,虚拟化管理应用程序即可根据预设策略从各消息队列取出相应的调用请求送至视频处理单元进行响应。例如,预设策略为优先处理第一操作系统的第一调用请求,则虚拟化管理应用程序优先从第一操作系统对应的第一消息队列中取出第一调用请求,并发送至视频处理单元。在第一消息队列中的第一操作请求全部取出后,虚拟化管理应用程序再从第二操作系统对应的第二消息队列中取出第二调用请求,并发送至视频处理单元。
将调用请求从消息队列中取出,发送至视频处理单元进行处理后,虚拟化管理应用程序将处理结果反馈至对应的操作系统。
本公开实施例中,与各操作系统对应的消息队列可以是基于虚拟化管理应用程序接收到操作系统的调用请求创建。虚拟化管理应用程序接收到操作系统的调用请求,若有与操作系统对应的消息队列,则将接收到的调用请求放入对应的消息队列中,若没有与操作系统对应的消息队列,则创建与操作系统对应的消息队列,并将接收到的调用请求放入对应的消息队列中。
在一可实施方式中,第一调用请求或第二调用请求包括下述中的至少一种:实例创建请求,其用于根据待处理图像数据请求视频处理单元创建对应的VPU实例;数据处理请求,其用于请求视频处理单元采用对应的VPU实例对待处理图像数据进行处理;实例释放请求,其用于请求视频处理单元清除VPU实例,以释放视频处理单元的资源。
在一可实施方式中,数据处理请求包括第一地址信息,以使视频处理单元根据第一地址信息从共享内存获取待处理图像数据。
在一可实施方式中,数据处理请求包括第二地址信息,以使视频处理单元根据第二地址信息将处理后的图像数据存入共享内存。
在一可实施方式中,视频处理单元响应实例创建请求,确定当前实例所需资源,若视频处理单元剩余资源小于当前实例所需资源,当前实例创建失败,并反馈实例创建结果。
在一可实施方式中,虚拟化管理应用程序还用于将视频处理单元的资源按预设比例配置给第一应用程序和第二应用程序,或将视频处理单元的资源动态配置给第一应用程序和第二应用程序。
在一可实施方式中,片上系统还包括硬件访问权限控制器,硬件访问权限控制器用于配置片上系统的各硬件域访问硬件资源的权限。
在一可实施方式中,硬件访问权限控制器还用于配置片上系统的硬件资源以形成多个硬件域或者解除多个硬件域之间的硬件隔离。
本公开实施例的视频处理单元虚拟化方法基于上述实施例的片上系统实现,以上针对视频处理单元虚拟化方法实施例的描述与前述片上系统实施例的描述是类似的,具有同前述片上系统实施例相似的有益效果,因此不做赘述。对于本公开实施例的视频处理单元虚拟化方法描述尚未披露的技术细节,请参照本公开前述片上系统实施例的描述而理解,为节约篇幅,因此不再赘述。
本公开实施例还提供了一种电子设备,该电子设备包括本公开实施例的片上系统。
根据本公开的实施例,本公开还提供了一种可读存储介质,其上存储有计算机指令,当计算机指令运行时执行本公开实施例的视频处理单元虚拟化方法。
本公开实施例的电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、片上系统(SOC)、复杂可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,也可以为分布式系统的服务器,或者是结合了区块链的服务器。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或隐含地包括至少一个该特征。在本公开的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。
以上所述,仅为本公开的具体实施方式,但本公开的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本公开揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本公开的保护范围之内。因此,本公开的保护范围应以所述权利要求的保护范围为准。
Claims (12)
1.一种片上系统,其特征在于,包括:
多个硬件域,每一所述硬件域能够独立运行操作系统,不同的所述硬件域的硬件资源相互隔离,不同的所述硬件域之间通过核间通信结构进行通信;
共享内存,与多个所述硬件域连接,以使多个所述硬件域能够通过所述共享内存共享数据;
多个所述硬件域包括用于运行第一操作系统的第一硬件域、用于运行第二操作系统的第二硬件域和用于运行虚拟化管理应用程序的第三硬件域,所述第三硬件域包括视频处理单元,所述虚拟化管理应用程序将通过所述核间通信结构接收的第一调用请求和/或第二调用请求发送至所述视频处理单元进行响应,所述第一调用请求由所述第一操作系统调用所述视频处理单元生成,所述第二调用请求由所述第二操作系统调用所述视频处理单元生成;
所述第一调用请求或所述第二调用请求包括:实例创建请求,其用于根据待处理图像数据请求所述视频处理单元创建对应的VPU实例;数据处理请求,其用于请求所述视频处理单元采用对应的VPU实例对待处理图像数据进行处理;实例释放请求,其用于请求所述视频处理单元清除VPU实例,以释放所述视频处理单元的资源;
视频处理单元响应实例创建请求,确定当前实例所需资源,视频处理单元确定剩余的资源是否满足本次待创建的VPU实例所需的资源,若满足,则创建对应的VPU实例,并向对应的操作系统反馈创建的VPU实例的标识;若不满足,则创建失败,并将对应的操作系统反馈创建失败的信息;
数据处理请求包括VPU实例的标识信息,根据标识信息用对应的VPU实例对待处理图像数据进行处理;
虚拟化管理应用程序接收到操作系统的调用请求,若有与操作系统对应的消息队列,则将接收到的调用请求放入对应的消息队列中,若没有与操作系统对应的消息队列,则创建与操作系统对应的消息队列,并将接收到的调用请求放入对应的消息队列中。
2.根据权利要求1所述的片上系统,其特征在于,所述虚拟化管理应用程序根据预设策略将所述第一调用请求和/或所述第二调用请求发送至所述视频处理单元。
3.根据权利要求2所述的片上系统,其特征在于,所述预设策略包括下述中的至少一种:所述第一调用请求和第二调用请求优先级;第一应用程序和第二应用程序对所述视频处理单元的资源的分配。
4.根据权利要求1或2所述的片上系统,其特征在于,所述第三硬件域包括与所述第一操作系统对应的第一消息队列和所述第二操作系统对应的第二消息队列,所述虚拟化管理应用程序将接收的所述第一调用请求放入所述第一消息队列,将接收的所述第二调用请求放入所述第二消息队列,所述虚拟化管理应用程序根据预设策略从所述第一消息队列取出所述第一调用请求和/或从所述第二消息队列取出所述第二调用请求,以发送至所述视频处理单元进行响应。
5.根据权利要求1所述的片上系统,其特征在于,所述数据处理请求包括第一地址信息,以使所述视频处理单元根据所述第一地址信息从所述共享内存获取待处理图像数据。
6.根据权利要求1所述的片上系统,其特征在于,所述数据处理请求包括第二地址信息,以使所述视频处理单元根据所述第二地址信息将处理后的图像数据存入所述共享内存。
7.根据权利要求1所述的片上系统,其特征在于,所述视频处理单元响应所述实例创建请求,确定当前实例所需资源,若所述视频处理单元剩余资源小于当前实例所需资源,当前实例创建失败,并反馈实例创建结果。
8.根据权利要求1所述的片上系统,其特征在于,所述虚拟化管理应用程序还用于将所述视频处理单元的资源按预设比例配置给第一应用程序和第二应用程序,或将所述视频处理单元的资源动态配置给所述第一应用程序和所述第二应用程序。
9.根据权利要求1所述的片上系统,其特征在于,所述片上系统还包括:
硬件访问权限控制器,其用于配置所述片上系统的各所述硬件域访问硬件资源的权限。
10.根据权利要求9所述的片上系统,其特征在于,所述硬件访问权限控制器还用于配置所述片上系统的硬件资源以形成多个所述硬件域或者解除多个所述硬件域之间的硬件隔离。
11.一种车辆,其特征在于,包括权利要求1-10任一项所述的片上系统。
12.一种基于片上系统的视频处理单元虚拟化方法,所述片上系统包括多个硬件域和与多个所述硬件域连接的共享内存,以使多个所述硬件域能够通过所述共享内存共享数据,每一所述硬件域能够独立运行操作系统,不同的所述硬件域的硬件资源相互隔离,不同的所述硬件域之间通过核间通信结构进行通信,所述多个硬件域包括用于运行第一操作系统的第一硬件域、用于运行第二操作系统的第二硬件域和用于运行虚拟化管理应用程序的第三硬件域,所述第三硬件域包括视频处理单元,所述方法包括:
所述第三硬件域上的虚拟化管理应用程序通过所述核间通信结构接收第一调用请求和/或第二调用请求,所述第一调用请求由所述第一硬件域上的第一操作系统调用所述视频处理单元生成,所述第二调用请求由所述第二硬件域上的第二操作系统调用所述视频处理单元生成,所述第一调用请求或所述第二调用请求包括:实例创建请求,其用于根据待处理图像数据请求所述视频处理单元创建对应的VPU实例;数据处理请求,其用于请求所述视频处理单元采用对应的VPU实例对待处理图像数据进行处理;实例释放请求,其用于请求所述视频处理单元清除VPU实例,以释放所述视频处理单元的资源;
所述虚拟化管理应用程序将所述第一调用请求和/或所述第二调用请求发送至所述视频处理单元进行响应;
视频处理单元响应实例创建请求,确定当前实例所需资源,视频处理单元确定剩余的资源是否满足本次待创建的VPU实例所需的资源,若满足,则创建对应的VPU实例,并向对应的操作系统反馈创建的VPU实例的标识;若不满足,则创建失败,并将对应的操作系统反馈创建失败的信息;
数据处理请求包括VPU实例的标识信息,根据标识信息用对应的VPU实例对待处理图像数据进行处理;
虚拟化管理应用程序接收到操作系统的调用请求,若有与操作系统对应的消息队列,则将接收到的调用请求放入对应的消息队列中,若没有与操作系统对应的消息队列,则创建与操作系统对应的消息队列,并将接收到的调用请求放入对应的消息队列中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310000577.1A CN115904761B (zh) | 2023-01-03 | 2023-01-03 | 片上系统、车辆及视频处理单元虚拟化方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310000577.1A CN115904761B (zh) | 2023-01-03 | 2023-01-03 | 片上系统、车辆及视频处理单元虚拟化方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115904761A CN115904761A (zh) | 2023-04-04 |
CN115904761B true CN115904761B (zh) | 2023-06-27 |
Family
ID=86484748
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310000577.1A Active CN115904761B (zh) | 2023-01-03 | 2023-01-03 | 片上系统、车辆及视频处理单元虚拟化方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115904761B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116467100B (zh) * | 2023-05-24 | 2023-09-29 | 南京芯驰半导体科技有限公司 | 数据处理方法、装置、电子设备及存储介质 |
CN117112083B (zh) * | 2023-10-23 | 2024-02-23 | 南京芯驰半导体科技有限公司 | 用于多硬件域SoC的调用摄像头数据的方法及多硬件域SoC |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114296943A (zh) * | 2021-12-31 | 2022-04-08 | 武汉路特斯汽车有限公司 | 基于虚拟化技术的资源分配方法、装置和设备 |
CN115309511A (zh) * | 2022-09-28 | 2022-11-08 | 亿咖通(湖北)技术有限公司 | 基于Xen的数据交互方法、装置、存储介质以及电子设备 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105959797A (zh) * | 2016-05-25 | 2016-09-21 | 青岛海信电器股份有限公司 | 一种视频解码方法及数字电视 |
CN113849261A (zh) * | 2020-06-28 | 2021-12-28 | 华为技术有限公司 | 处理数据的方法、主机及装置 |
CN115480931A (zh) * | 2022-08-12 | 2022-12-16 | 黑芝麻智能科技(重庆)有限公司 | 一种核间通信处理方法、装置及计算机系统 |
CN115086438B (zh) * | 2022-08-19 | 2022-11-11 | 南京芯驰半导体科技有限公司 | 任务处理方法、视频处理单元、部件及交通设备 |
CN115185880B (zh) * | 2022-09-09 | 2022-12-09 | 南京芯驰半导体科技有限公司 | 一种数据存储方法及装置 |
CN115344226B (zh) * | 2022-10-20 | 2023-03-24 | 亿咖通(北京)科技有限公司 | 一种虚拟化管理下的投屏方法、装置、设备及介质 |
-
2023
- 2023-01-03 CN CN202310000577.1A patent/CN115904761B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114296943A (zh) * | 2021-12-31 | 2022-04-08 | 武汉路特斯汽车有限公司 | 基于虚拟化技术的资源分配方法、装置和设备 |
CN115309511A (zh) * | 2022-09-28 | 2022-11-08 | 亿咖通(湖北)技术有限公司 | 基于Xen的数据交互方法、装置、存储介质以及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN115904761A (zh) | 2023-04-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN115904761B (zh) | 片上系统、车辆及视频处理单元虚拟化方法 | |
EP3637771A1 (en) | Cloud desktop system, and image sequence compression and encoding method, and medium therefor | |
CN109218356B (zh) | 管理服务器上有状态应用的方法和设备 | |
CN113849312B (zh) | 数据处理任务的分配方法、装置、电子设备及存储介质 | |
CN113934464A (zh) | Linux系统中启动安卓应用的方法、装置和电子设备 | |
CN114418828B (zh) | 显存管理方法、装置、设备、存储介质及程序产品 | |
EP3816821A2 (en) | Search method and apparatus, electronic device and storage medium | |
CN111209080A (zh) | 一种图形处理器透传的方法 | |
CN114077367A (zh) | Linux系统中实现安卓应用快捷方式的方法和装置 | |
CN114116092A (zh) | 云桌面系统处理方法、云桌面系统控制方法以及相关设备 | |
CN113886019B (zh) | 虚拟机创建方法、装置、系统、介质和设备 | |
US20140089624A1 (en) | Cooperation of hoarding memory allocators in a multi-process system | |
US8707449B2 (en) | Acquiring access to a token controlled system resource | |
CN115629809A (zh) | 数据处理方法、装置、电子设备及计算机可读存储介质 | |
CN115599268A (zh) | 一种屏幕截图方法、计算设备和存储介质 | |
CN114374657A (zh) | 一种数据处理方法和装置 | |
CN115373869A (zh) | 基于aar的进程处理方法、装置及电子设备 | |
CN113064620A (zh) | 一种处理系统数据的方法和装置 | |
CN113703906A (zh) | 一种数据处理方法、装置及系统 | |
CN110633141A (zh) | 一种应用程序的内存管理方法、装置、终端设备及介质 | |
CN115686748B (zh) | 虚拟化管理下的服务请求响应方法、装置、设备及介质 | |
CN113259261B (zh) | 网络流量控制方法和电子设备 | |
CN115826898B (zh) | 一种跨屏显示方法、系统、装置、设备及存储介质 | |
CN115373752A (zh) | 业务处理方法、装置及存储介质 | |
CN117742957A (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 |