一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于多核芯片的多系统共享GPU的方法和系统与流程

2023-01-15 10:05:12 来源:中国专利 TAG:

一种基于多核芯片的多系统共享gpu的方法和系统
技术领域
1.本技术涉及嵌入式领域,特别是涉及一种基于多核芯片的多系统共享gpu的方法和系统片。


背景技术:

2.随着半导体技术的发展与进步,行业需求的增加,单芯片的集成度越来越高,产生了越来越复杂的多核系统芯片,系统芯片集成了同构或异构处理器核心子系统,来满足复杂场景下的功能需求。以汽车电子为例,仪表,导航,多媒体,中控等功能的需求不断增加,单个系统芯片内通常集成多核核心,分别运行不同的子系统处理相应的功能。多核异构或同构芯片上集成多个不同处理器内核和不同内核上部署不同的子系统来完成对应的功能模块已成为趋势。同时系统安全,尤其是车机系统,是行业永远需要关注的焦点。
3.目前市面上多核异构或者同构的芯片普遍都是运行单个系统单个gpu在执行渲染任务,或者运行多个系统多个gpu执行渲染任务。针对单系统单个gpu,现有做法芯片集成度不高,不能很好的利用芯片内部资源来实现gpu效率的最大化,同时无法完成复杂的场景功能,通常需要多个单系统单gpu芯片进行堆叠完成。针对多系统多gpu方案,成本较高,芯片面积较大,在针对简单或复杂的渲染场景下资源的分配处理也不灵活。


技术实现要素:

4.为了解决现有技术中存在的至少一个问题,本技术的目的在于提供一种基于多核芯片的多系统共享gpu的方法和系统,利用核间通讯机制与内存共享,使得应用域子系统也能共享gpu,实现单gpu在多系统安全共享资源,有效地提高了gpu利用率实现gpu效率的最大化,并保证多系统中gpu的健壮性。
5.为实现上述目的,本技术提供的一种基于多核芯片的多系统共享gpu的方法,应用于包括安全域子系统和应用域子系统的系统上,gpu驱动被配置在所述安全域子系统,共享内存被配置在所述应用域子系统,所述方法包括:所述应用域子系统接收gpu处理任务请求,从所述gpu处理任务请求中获取待处理数据并存储至共享内存,生成gpu调度命令,并通过核间通信将所述gpu调度命令发送至所述安全域子系统;所述安全域子系统接收所述gpu调度命令,对所述gpu调度命令进行安全鉴权,若鉴权成功,则从所述共享内存中取出待处理数据并对所述待处理数据的有效性进行判别,若所述待处理数据有效,则将所述待处理数据发送至所述gpu驱动,所述gpu驱动调用gpu执行所述gpu调度命令,得到执行结果,将所述执行结果存储至所述共享内存。
6.进一步地,所述gpu处理任务请求包括以下中的一种:渲染任务请求和计算任务请求。
7.更进一步地,所述gpu调度命令包括所述应用域子系统的身份信息和gpu标识。
8.更进一步地,所述方法还包括:
所述安全域子系统通过核间通信向所述应用域子系统发送第一反馈消息,用于告知所述应用域子系统当前gpu调度命令已完成的信息;所述应用域子系统接收所述第一反馈消息,从所述共享内存中获取所述执行结果。
9.更进一步地,所述方法还包括:若鉴权失败,则所述安全域子系统通过核间通信向所述应用域子系统发送第二反馈消息,用于告知所述应用域子系统鉴权失败的信息;所述应用域子系统接收所述第二反馈消息,结束当前所述gpu调度命令并通知上层应用鉴权失败。
10.更进一步地,所述方法还包括:若所述待处理数据无效,则所述安全域子系统通过核间通信向所述应用域子系统发送第三反馈消息,用于告知所述应用域子系统数据无效的信息;所述应用域子系统接收所述第三反馈消息,结束当前所述gpu调度命令并通知上层应用数据无效。
11.更进一步地,所述gpu驱动调用所述gpu执行所述gpu调度命令的步骤之前,所述方法还包括:所述安全域子系统判断所述gpu是否空闲。
12.更进一步地,所述安全域子系统判断所述gpu是否空闲的步骤之后,所述方法还包括:若否,则所述安全域子系统通过核间通信向所述应用域子系统发送第四反馈消息,用于反馈需等待调度的信息,并根据所述gpu调度命令的优先级将所述gpu调度命令加入等待调度队列,等待所述gpu空闲;所述应用域子系统接收所述第四反馈消息,通知上层应用所述gpu调度命令加入等待调度队列,等待gpu空闲时所述安全域子系统处理所述gpu调度命令,如果等待超时,则结束当前所述gpu调度命令并通知上层应用应用等待超时。
13.为实现上述目的,本技术还提供一种基于多核芯片的多系统共享gpu的系统,包括:应用域子系统和安全域子系统,其中,所述应用域子系统包括:应用域子系统处理模块,用于接收gpu处理任务请求,从所述gpu处理任务请求中获取待处理数据并存储至共享内存,生成gpu调度命令,和应用域子系统核间通信模块,用于将所述gpu调度命令通过核间通信发出;所述安全域子系统包括:安全域子系统核间通信模块,用于接收所述所述gpu调度命令,安全域子系统处理模块,用于对所述gpu调度命令进行鉴权,若鉴权成功,则从所述共享内存中取出待处理数据并对所述待处理数据的有效性进行判别,若所述待处理数据有效,则将所述待处理数据发送给gpu驱动模块,所述gpu驱动模块,用于调用gpu执行所述gpu调度命令,得到所述执行结果;所述安全域子系统处理模块,还用于将所述执行结果存储至所述共享内存。
14.更进一步地,所述gpu处理任务请求包括以下中的一种:渲染任务请求和计算任务请求。
15.更进一步地,所述gpu调度命令包括所述应用域子系统的身份信息和gpu标识。
16.更进一步地,所述安全域子系统处理模块还用于生成第一反馈消息,用于告知该应用域子系统当前gpu调度命令已完成的信息;所述安全域子系统核间通信模块还用于通过核间通信向所述应用域子系统发送所述第一反馈消息,用于告知该应用域子系统当前gpu调度命令已完成的消息;所述应用域子系统核间通信模块还用于接收所述第一反馈消息;所述应用域子系统处理模块,还用于从所述共享内存中获取所述执行结果。
17.更进一步地,所述安全域子系统处理模块还用于生成第二反馈消息,用于告知该应用域子系统鉴权失败的信息;所述安全域子系统核间通信模块还用于通过核间通信向所述应用域子系统发送所述第二反馈消息;所述应用域子系统核间通信模块还用于接收所述第二反馈消息;所述应用域子系统处理模块,还用于结束当前所述gpu调度命令并通知上层应用鉴权失败。
18.更进一步地,所述安全域子系统处理模块还用于生成第三反馈消息,用于用于告知该应用域子系统数据无效的信息;所述安全域子系统核间通信模块还用于通过核间通信向所述应用域子系统发送所述第三反馈消息;所述应用域子系统核间通信模块还用于接收所述第三反馈消息;所述应用域子系统处理模块,还用于结束当前所述gpu调度命令并通知上层应用数据无效。
19.更进一步地,所述安全域子系统处理模块,还用于判断所述gpu是否空闲;若是,则对所述gpu调度命令进行任务调度,若否,根据所述gpu调度命令的优先级将所述gpu调度命令加入等待调度队列,等待所述gpu空闲;所述安全域子系统处理模块,还用于生成第四反馈消息,用于反馈需等待调度的信息;所述安全域子系统核间通信模块还用于通过核间通信向所述应用域子系统发送所述第四反馈消息;所述应用域子系统核间通信模块还用于接收所述第四反馈消息;所述应用域子系统处理模块,还用于通知上层应用所述gpu调度命令加入等待调度队列,等待gpu空闲时所述安全域子系统处理所述gpu调度命令,如果等待超时,则结束当前所述gpu调度命令并通知上层应用等待超时。
20.为实现上述目的,本技术还提供的芯片,其上集成有如上所述的一种基于多核芯片的多系统共享gpu的系统。
21.为实现上述目的,本技术还提供的电路板,包括如上所述的芯片。
22.为实现上述目的,本技术还提供的车机,包括如上所述的芯片。
23.为实现上述目的,本技术还提供的电子设备,包括,存储器和处理器,其特征在于,所述存储器中存储有计算机指令,所述处理器被设置为运行所述指令以执行如上所述的基于多核芯片的多系统共享gpu的方法的步骤。
24.为实现上述目的,本技术还提供的计算机可读存储介质,其上存储有计算机指令,
当计算机指令运行时执行如上所述的基于多核芯片的多系统共享gpu的方法的步骤。
25.本技术的一种基于多核芯片的多系统共享gpu的方法和系统,提出了一种针对多核异构或者同构芯片上单个gpu多系统的运行环境下,将gpu驱动部署在安全域子系统,采用安全的鉴权机制,有效提高了gpu渲染任务的安全性;并利用核间通讯机制与内存共享,使得应用域子系统也能共享gpu,实现单gpu在多系统soc平台下安全共享渲染资源,有效地提高了gpu利用率实现gpu效率的最大化,并保证多系统中gpu的健壮性。
26.本技术的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本技术而了解。
附图说明
27.附图用来提供对本技术的进一步理解,并且构成说明书的一部分,并与本技术的实施例一起,用于解释本技术,并不构成对本技术的限制。在附图中:图1为根据本技术一个实施例的基于多核芯片的多系统共享gpu的场景示意图;图2为根据本技术一个实施例的基于多核芯片的多系统共享gpu的方法流程图;图3为根据本技术另一个实施例的基于多核芯片的多系统共享gpu的方法流程图;图4为根据本技术另一个实施例的基于多核芯片的多系统共享gpu的系统结构框图;图5为根据本技术实施例的芯片结构示意图;图6为根据本技术实施例的电路板结构示意图;图7为根据本技术实施例的车机结构示意图。
具体实施方式
28.下面将参照附图更详细地描述本技术的实施例。虽然附图中显示了本技术的某些实施例,然而应当理解的是,本技术可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例,相反提供这些实施例是为了更加透彻和完整地理解本技术。应当理解的是,本技术的附图及实施例仅用于示例性作用,并非用于限制本技术的保护范围。
29.应当理解,本技术的方法实施方式中记载的各个步骤可以按照不同的顺序执行,和/或并行执行。此外,方法实施方式可以包括附加的步骤和/或省略执行示出的步骤。本技术的范围在此方面不受限制。
30.本文使用的术语“包括”及其变形是开放性包括,即“包括但不限于”。术语“基于”是“至少部分地基于”。术语“一个实施例”表示“至少一个实施例”;术语“另一实施例”表示“至少一个另外的实施例”;术语“一些实施例”表示“至少一些实施例”。其他术语的相关定义将在下文描述中给出。
31.需要注意,本技术中提及的“第一”、“第二”等仅用于对不同的装置、模块、单元或数据进行区分,并非用于限定这些装置、模块、单元或数据所执行的功能的顺序或者相互依存关系。
32.需要注意,本技术中提及的“一个”、“多个”的修饰是示意性而非限制性的,本领域技术人员应当理解,除非在上下文另有明确指出,否则应该理解为“一个或多个”。“多个”应理解为两个或以上。
33.gpu(graphics processing unit,图形处理器),又称显示核心、视觉处理器、显示芯片,是一种专门在个人电脑、工作站、游戏机和一些移动设备(如平板电脑、智能手机等)上图像运算工作的微处理器。 gpu的任务主要包括渲染和计算。
34.渲染,是处理器将需要计算的画面信息,计算并“绘制”在显示屏幕上的过程。甚至从“dos”系统开始,处理器就会将计算好的字母或者数字用像素的方式表现在显示屏幕上,这时候渲染的概念已然存在了。后来,随着显示技术的进步,社会的发展,对画面的要求就不再是简单的“像素点拼凑”了,渲染技术也慢慢地出现了两条主流分支,一种用于互动游戏,另一种是用于影视技术。像游戏这类需要实时互动的程序,就需要实时显示画面;而作为影视技术而言,需要的则是精致画面的效果。从计算机图形学(computer graphics)学科角度讲,两种渲染方式都是将已经计算好的数据图像化。离线渲染经典实现方式为cpu将需要渲染的文件先从硬盘读取到内存,再读取到cpu完成对数据的计算,计算后的数据为图像数据,通过视频编码格式(如h.264)压缩,最终成为我们可以在电脑上播放的影片。实时渲染经典的实现方式为cpu将需要渲染的文件先从硬盘读取到内存,再读取到cpu完成对数据的计算,通过pcie接口传输到显卡,显卡将这类数据图形(graphic)化,通过显卡(gpu)强大的运算能力,直接输出画面到显示设备。
35.ipc(inter-process communication,核间通信),在多核系统中,由于应用的需求,经常需要各核进行通信。比如,当多个处理器需要共享外设,memory及各处理器之间互发中断时,ipc即实现此功能。ipc主要应用于两个方面:发送中断给其他核和核间少量数据的传输。
36.下面,将参考附图详细地说明本技术的实施例。
37.首先,需要说明的是,本技术中的基于多核芯片的多系统共享gpu的方法,用于包括安全域子系统和应用域子系统的系统上,gpu驱动被配置在所述安全域子系统。
38.但可以理解的是,本技术并不局限于上述具体的系统,其适用于任何多系统共用gpu的情况。
39.实施例1图1为根据本技术一个实施例的基于多核芯片的多系统共享gpu的场景示意图。该实施例中有一个安全域子系统和n个应用域子系统,gpu驱动被配置在所述安全域子系统。
40.实施例2图2为根据本技术一个实施例的基于多核芯片的多系统共享gpu的方法流程图,下面将参考图2,对本技术的基于多核芯片的多系统共享gpu的方法进行详细描述。
41.在步骤201,所述应用域子系统接收gpu处理任务请求,从所述gpu处理任务请求中获取待处理数据并存储至共享内存,生成gpu调度命令,并将所述gpu调度命令通过核间通信发送至所述安全域子系统。
42.本技术实施例中,该gpu处理任务请求可以包括以下中的一种:渲染任务或计算任务。
43.具体地,所述gpu处理任务中的待处理数据是指,需要gpu进行计算或渲染的数据内容,gpu获取到相关数据后,可以直接用相关数据进行计算或渲染。
44.本技术实施例中,所述gpu调度命令包括所述应用域子系统的身份信息和gpu标识。
45.具体地,所述应用域子系统的身份信息,是指用来区分不同应用域子系统的标识信息。同一个设备可以支持多个gpu,所述gpu标识是指用来区分不同gpu的标识信息,大多数情况下使用数字号码。本实施例以一个gpu为例,但不限于一个gpu的场景。
46.本技术实施例中,安全域子系统与应用域子系统之间采用核间通信方式进行通信;所述核间通信是指用于完成多个核之间的信息交互,核间通信可以采用多种方式,本发明实施例以通过ipc方式为例实现核间通信,但不限于ipc方式。
47.本技术实施例中,在步骤201前,还包括以下步骤:应用域子系统的上层应用创建上下文,并发送一个gpu处理任务请求。
48.具体来说,所述gpu 处理任务是指,需要gpu进行计算或渲染的任务,gpu对图像的渲染和特定数据模型的计算处理有较大的优势,速度较快。
49.在步骤202,所述安全域子系统接收所述gpu调度命令,对所述gpu调度命令进行鉴权,若鉴权成功,则从所述共享内存中取出待处理数据并对所述待处理数据的有效性进行判别,若所述待处理数据有效,则将所述待处理数据发送至所述gpu驱动,所述gpu驱动调用所述gpu执行所述gpu调度命令,得到执行结果,将所述执行结果存储至所述共享内存。
50.进一步地,在将所述执行结果存储至所述共享内存的步骤之后,该方法还包括以下步骤:所述安全域子系统通过核间通信向所述应用域子系统发送第一反馈消息,用于告知所述应用域子系统当前gpu调度命令已完成的信息;所述应用域子系统接收所述第一反馈消息,从所述共享内存中获取已保存的所述执行结果。
51.具体来说,鉴权是应用域子系统与安全域子系统进行通信的必要手段,用于保证安全域子系统不被恶意攻击,本技术中的鉴权是指安全性鉴权。
52.本技术实施例中,所述对所述gpu调度命令进行鉴权,可以采用如下方式:例如,安全域子系统与应用域子系统可以约定有效的公共密钥,应用域子系统基于所述约定有效的公共密钥对所述应用域子系统的标识和gpu id 进行加密,生成唯一的一种标识,将所述标识放入所述gpu调度命令中,发送给安全域子系统。
53.所述安全域子系统收到所述gpu调度命令后,对其中加密后的所述应用域子系统的标识和gpu id 进行解密,获得所述应用域子系统标识和gpu id,并对所述应用域子系统的标识和gpu标识的正确性进行验证。
54.进一步地,在对所述gpu调度命令进行鉴权的步骤之后,该方法还包括以下步骤:若鉴权失败,则所述安全域子系统通过核间通信向所述应用域子系统发送第二反馈消息,用于告知所述应用域子系统鉴权失败的信息。
55.本技术实施例中,所述gpu调度命令中携带待处理数据在所述共享内存中的地址,安全域子系统根据所述待处理数据在所述共享内存中的地址,从所述共享内存中取出相应的所述待处理数据。
56.本技术实施例中,对所述待处理数据的有效性进行判别,可以根据渲染或计算结果对输入数据的规则要求,针对待处理数据的大小、范围、结构进行判别,防止gpu资源被浪费或额外占用。
57.进一步地,在对所述待处理数据的有效性进行判别的步骤之后,该方法还包括以
下步骤:若所述待处理数据无效,则所述安全域子系统通过核间通信向所述应用域子系统发送第三反馈消息,用于告知所述应用域子系统数据无效的信息。
58.所述应用域子系统接收所述第三反馈消息,结束当前所述gpu调度命令并通知上层应用数据无效。
59.进一步地,在将所述待处理数据发送至所述gpu驱动的步骤之前,该方法还包括以下步骤:判断所述gpu是否空闲。
60.进一步地,在判断所述gpu是否空闲的步骤之后,还包括如下步骤:若gpu不空闲,则所述安全域子系统通过核间通信向所述应用域子系统发送第四反馈消息,用于反馈需等待调度的信息,并根据所述gpu调度命令的优先级将所述gpu调度命令加入等待调度队列,等待所述gpu空闲;安全域子系统按照任务的优先级顺序调整调度队列。当出现gpu被占满的极限场景时,需要判断优先级,安全域子系统gpu本身如果有级别高的任务将gpu驱动占满了,首先确保安全域子系统的任务优先级最高,能绘制完。应用域子系统上的发送的gpu调度请求都要排到安全域子系统的任务的后面。
61.所述应用域子系统接收所述第四反馈消息,通知上层应用所述gpu调度命令加入等待调度队列,等待gpu空闲时所述安全域子系统处理所述gpu调度命令,如果等待超时,则结束当前所述gpu调度命令并通知上层应用等待超时。
62.需要说明的是,上述流程仅仅是以一个应用域子系统的情况为例,实际应用中,有一个或多个应用域子系统,对于每一个应用域子系统均需要并行执行上述流程。
63.根据本技术实施例的基于多核芯片的多系统共享gpu的方法,通过将gpu驱动部署在安全域子系统,采用安全的鉴权机制,有效提高了gpu渲染任务的安全性;并利用核间通讯机制与内存共享,使得应用域子系统也能共享gpu,实现单gpu在多系统soc平台下安全共享gpu的资源,有效地提高了gpu利用率实现gpu效率的最大化,并保证多系统中gpu的健壮性。
64.实施例3下面通过一个具体实施例对本技术作进一步解释和说明。
65.本实施例以车机为例的场景进行举例说明。该场景中,车机里有仪表系统和中控系统,中控系统和仪表系统是独立的。中控系统有娱乐系统或安卓系统等应用。仪表系统涉及到车辆行驶信息,安全级别比较高,因此为了保证安全性,将gpu驱动部署在仪表系统上,当中控系统上要播放视频或地图导航产生渲染任务,调用仪表系统中的gpu,完成渲染任务。
66.图3为根据本技术另一个实施例的基于多核芯片的多系统共享gpu的方法流程图。参考图3所示,该基于多核芯片的多系统共享gpu的方法包括以下步骤:当在中控系统的上层的一个应用收到开启信号后,需要下层将该应用的画面渲染出来,上层的应用创建根据上下文发起渲染任务,并将渲染任务发送给下层。
67.在步骤301,中控系统的下层接收所述渲染任务请求,从所述渲染任务请求中获取待渲染数据并存储至共享内存,并生成gpu调度命令。
68.在步骤302,中控系统通过核间通信将所述gpu调度命令发送至所述仪表系统。
69.在步骤303,仪表系统接收所述gpu调度命令,对所述gpu调度命令进行鉴权,若鉴权失败则执行步骤s304,若鉴权成功,则执行步骤s306。
70.在步骤304,仪表系统通过核间通信向中控系统发送第二反馈消息,用于告知中控系统鉴权失败的信息;在步骤305,中控系统接收所述第二反馈消息,结束当前所述gpu调度命令并通知上层应用鉴权失败。
71.在步骤306,从所述共享内存中取出待处理数据;在步骤307,对所述待处理数据的有效性进行判别,若无效,则执行步骤308,若有效,则执行步骤310。
72.在步骤308,仪表系统通过核间通信向中控系统发送第三反馈消息,用于告知中控系统数据无效的信息;在步骤309,中控系统接收所述第三反馈消息,结束当前所述gpu调度命令并通知上层应用数据无效。
73.在步骤310,仪表系统判断所述gpu是否空闲,若是,则执行步骤311,若否,则执行步骤318;在步骤311,进行任务调度;在步骤312,将所述待处理数据发送至所述gpu驱动,所述gpu驱动调用所述gpu执行所述gpu调度命令,得到执行结果;在步骤313,将所述执行结果存储至所述共享内存。
74.在步骤314,仪表系统通过核间通信向所述中控系统发送第一反馈消息,用于告知中控系统当前gpu调度命令已完成的信息;在步骤315,中控系统收到第一反馈消息,从共享内存中取出执行结果,提交给上层应用,进行视频播放或地图导航。
75.在步骤316,根据所述gpu调度命令的优先级将所述gpu调度命令加入等待调度队列,等待所述gpu空闲;在步骤317,仪表系统通过核间通信向所述中控系统发送第四反馈消息,用于反馈需等待调度的信息;在步骤318,中控系统接收所述第四反馈消息,通知上层应用所述gpu调度命令加入等待调度队列,等待gpu空闲时所述安全域子系统处理所述gpu调度命令,如果等待超时,则结束当前所述gpu调度命令并通知上层应用等待超时。
76.需要说明的是,上述流程仅仅是以车机为具体实例的场景的情况为例,但实际应用中,不限于车机场景,基于多核芯片的多系统共享gpu的场景均在保护范围之内。
77.综上所述,根据本技术实施例的基于多核芯片的多系统共享gpu的方法,通过将gpu部署在安全域子系统,采用安全的鉴权机制,有效提高了gpu渲染任务的安全性;并利用核间通讯机制与内存共享,使得应用域子系统也能共享gpu,实现单gpu在多系统soc平台下安全共享gpu的资源,有效地提高了gpu利用率实现gpu效率的最大化,并保证多系统中gpu的健壮性。
78.实施例4
图4为根据本技术一个实施例的基于多核芯片的多系统共享gpu的系统结构框图。参考图4所示,该基于多核芯片的多系统共享gpu的系统40,包括至少一个应用域子系统41、安全域子系统42和共享内存43。
79.在本实施例中,应用域子系统42为一个或多个。本实施例以一个应用域子系统的情况举例说明,但不限于一个应用域子系统的情况,多个应用域子系统的情况也在保护范围之内。
80.应用域子系统41,包括:应用域子系统处理模块411,用于接收gpu处理任务请求,从所述gpu处理任务请求中获取待处理数据并存储至共享内存43,生成gpu调度命令,和应用域子系统核间通信模块412,用于将所述gpu调度命令通过核间通信发出;安全域子系统42,包括:安全域子系统核间通信模块421,用于接收所述应用域子系统发送的所述gpu调度命令,安全域子系统处理模块422,用于对所述gpu调度命令进行有效鉴权,若鉴权成功,则从所述共享内存43中取出待处理数据并对所述待处理数据的有效性进行判别,若所述待处理数据有效,则将所述待处理数据发送给gpu驱动模块423,gpu驱动模块423,用于调用gpu执行所述gpu调度命令,得到执行结果;所述安全域子系统处理模块422,还用于将所述执行结果存储至所述共享内存43。
81.本技术实施例中,所述gpu处理任务请求包括以下中的一种:渲染任务请求和计算任务请求。
82.本技术实施例中,所述gpu调度命令包括所述应用域子系统的身份信息和gpu标识。
83.进一步地,所述安全域子系统处理模块422还用于生成第一反馈消息,用于告知该应用域子系统41当前gpu调度命令已完成的信息;所述安全域子系统核间通信模块421还用于通过核间通信向所述应用域子系统41发送所述第一反馈消息;所述应用域子系统核间通信模块412还用于接收所述第一反馈消息;所述应用域子系统处理模块411,还用于从所述共享内存中获取所述执行结果。
84.进一步地,所述安全域子系统处理模块422还用于生成第二反馈消息,用于告知该应用域子系统41鉴权失败的信息;所述安全域子系统核间通信模块421还用于通过核间通信向所述应用域子系统41发送第二反馈消息;所述应用域子系统核间通信模块412还用于接收第二反馈消息;所述应用域子系统处理模块411,还用于结束当前所述gpu调度命令并通知上层应用鉴权失败。
85.进一步地,所述安全域子系统处理模块422还用于生成第三反馈消息,用于告知该应用域子系统41数据无效的信息;所述安全域子系统核间通信模块421还用于通过核间通信向所述应用域子系统41发送第三反馈消息;所述应用域子系统核间通信模块412还用于接收第三反馈消息;所述应用域子系统处理模块411,还用于结束当前所述gpu调度命令并通知上层应用数据无效。
86.进一步地,所述安全域子系统处理模块422,还用于判断所述gpu是否空闲;若是,则对所述gpu调度命令进行任务调度,若否,根据所述gpu调度命令的优先级将所述gpu调度命令加入等待调度队列,等待所述gpu空闲;进一步地,所述安全域子系统处理模块422还用于生成第四反馈消息,用于反馈需等待调度的信息;所述安全域子系统核间通信模块421还用于通过核间通信向所述应用域子系统41发送第四反馈消息;进一步地,所述应用域子系统核间通信模块412还用于接收第四反馈消息;进一步地,所述应用域子系统处理模块411,还用于通知上层应用所述gpu调度命令加入等待调度队列,等待gpu空闲时所述安全域子系统处理所述gpu调度命令,如果等待超时,则结束当前所述gpu调度命令并通知上层应用等待超时。
87.需要说明的是,上述实施例中对基于多核芯片的多系统共享gpu的方法的解释说明也适用于上述实施例中的基于多核芯片的多系统共享gpu的系统,此处不再赘述。
88.根据本技术实施例的基于多核芯片的多系统共享gpu的系统,通过将gpu驱动部署在安全域子系统,采用安全的鉴权机制,有效提高了gpu渲染任务的安全性;并利用核间通讯机制与内存共享,使得应用域子系统也能共享gpu,实现单gpu在多系统soc平台下安全共享gpu的资源,有效地提高了gpu利用率实现gpu效率的最大化,并保证多系统中gpu的健壮性。
89.实施例5图5为根据本技术实施例的芯片结构示意图。参考图5所示,该芯片50上集成有如上所述的基于多核芯片的多系统共享gpu的系统40。
90.实施例6图6为根据本技术实施例的电路板结构示意图。参考图6所示,该电路板60上包括如上所述的芯片50。
91.实施例7图7为根据本技术实施例的车机结构示意图。参考图7所示,该车机70包括如上所述的芯片50。
92.实施例8本技术一个实施例中,还提供了一种电子设备,该电子设备包括存储器和处理器,所述存储器上储存有在所述处理器上运行的计算机程序,所述处理器运行所述计算机程序时执行上述实施例的基于多核芯片的多系统共享gpu的方法的步骤。
93.实施例9本技术一个实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中描述的系统中所包含的;也可以是单独存在,而未装配入该系统中。上述计算机可读存储介质承载有一个或者多个计算机指令,当上述一个或者多个计算机指令被执行时,实现上述实施例的基于多核芯片的多系统共享gpu的方法的步骤。
94.本技术的实施例,计算机可读存储介质可以是非易失性的计算机可读存储介质,例如可以包括但不限于:便携式计算机磁盘、硬盘、随机访问存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、便携式紧凑磁盘只读存储器(cd-rom)、光
存储器件、磁存储器件、或者上述的任意合适的组合。在本技术中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
95.本领域普通技术人员可以理解:以上仅为本技术的优选实施例而已,并不用于限制本技术,尽管参照前述实施例对本技术进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实施例记载的技术方案进行修改,或者对其中部分技术特征进行等同替换。凡在本技术的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本技术的保护范围之内。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献