一种多核异构处理器的虚拟控制系统及方法与流程

文档序号:31526342发布日期:2022-09-14 14:28阅读:151来源:国知局
一种多核异构处理器的虚拟控制系统及方法与流程

1.本技术涉及处理器技术领域,特别是涉及一种多核异构处理器的虚拟控制系统及方法。


背景技术:

2.当前大型soc(system on chip,系统芯片)设计当中,多核异构成为了一种趋势,一颗芯片里面往往会有多个不同架构的处理器核,同时soc里面也会有很多不同的外设即物理输入输出硬件资源,比如ddr视频类的输入输出接口,各种高速数据接口(比如usb、pcie等),还有各种慢速的外设 (比如spi、uart、i2c 、i2s等),而由于不同处理器核的架构不同,导致与处理器核连接后的硬件资源(如终端控制器、时钟控制器和输入输出硬件资源等)会组成一个封闭的硬件域,使一个硬件域内的物理输入输出硬件资源只能被该硬件域内的处理器核访问,而不能被其他处理器核访问。因此,现有技术在进行芯片设计时,往往会为每一个处理器核都配置其专属使用的物理输入输出硬件资源。这种方法一方面造成了物理输入输出硬件资源的浪费,另一方面,不同处理器核之间查看log困难。


技术实现要素:

3.为了解决现有技术存在的不足,本技术的目的在于提供一种多核异构处理器的虚拟控制系统及方法,容易管理物理硬件资源,方便各处理器核之间查看硬件资源信息。
4.为实现上述目的,本技术提供的多核异构处理器的虚拟控制系统,包括,多核异构处理器,包括至少两个架构不同的处理器核,所述处理器核分别与所述处理器核连接的硬件资源构成硬件上互相隔离的多个硬件域,所述硬件资源包括虚拟输入输出硬件资源;虚拟控制终端,配置在各处理器核上,用于管理与所在处理器核连接的虚拟输入输出硬件资源和物理输入输出硬件资源;资源配置模块,与所述虚拟控制终端连接,用于为处理器核分配虚拟输入输出硬件资源,建立虚拟输入输出硬件资源与物理输入输出硬件资源的连接,其中,一个所述物理输入输出硬件资源与其对应的多个虚拟输入输出硬件资源中的一个连接;通信模块,与各处理器核上的虚拟控制终端连接,用于虚拟控制终端之间查看不同硬件域的物理输入输出硬件资源信息。
5.进一步地,同种类型的所述物理输入输出硬件资源设置有1个,并默认与任意一个处理器核的虚拟输入输出硬件资源连接。
6.进一步地,所述各处理器核上配置的操作系统类型相同或不同。
7.进一步地,所述通信模块包括mailbox模块和共享内存,所述mailbox模块用于核间消息的传输,所述核间消息用于通知虚拟控制终端向共享内存中读写指令;所述共享内存为每个处理器核都至少配置有指令buffer和日志buffer,所述指令buffer用于缓存所属处理器核接收到的指令,所述日志buffer用于缓存所属处理器核写入的输入输出信息。
8.为实现上述目的,本技术还提供一种多核异构处理器的虚拟控制方法,包括:第一虚拟控制终端向第二虚拟控制终端发送输入输出信息获取指令,所述第一虚拟控制终端配置在第一处理器核上,所述第二虚拟控制终端配置在第二处理器核上,所述第一处理器核配置有物理输入输出硬件资源;基于输入输出信息获取指令,第二虚拟控制终端从其所在处理器核的虚拟输入输出硬件资源中获取第二虚拟控制终端所在处理器核的输入输出信息,并向第一虚拟控制终端发送输入输出信息;第一虚拟控制终端控制所述物理输入输出硬件资源查看打印所述输入输出信息。
9.进一步地,所述虚拟控制终端之间通过核间消息和共享内存相互通信。
10.进一步地,所述第一虚拟控制终端和第二虚拟控制终端之间通过核间消息和共享内存相互通信的具体步骤包括:第一虚拟控制终端发送输入输出信息获取指令到共享内存中第二处理器核的指令buffer,所述指令buffer用于缓存所述指令;第一虚拟控制终端通过核间消息通知第二虚拟控制终端从所述指令buffer中获取指令;基于所述指令,第二虚拟控制终端从与第二处理器核连接的虚拟输入输出硬件资源中获取输入输出信息写入第二处理器核的日志buffer,并通过核间消息通知第一虚拟控制终端,所述日志buffer用于缓存输入输出信息;第一虚拟控制终端从所述日志buffer中获取所述输入输出信息。
11.为实现上述目的,本技术还提供一种系统芯片,包括,如上所述的多核异构处理器的虚拟控制系统。
12.为实现上述目的,本技术提供的电子设备,包括如上所述的系统芯片。
13.为实现上述目的,本技术提供的计算机可读存储介质,其上存储有计算机指令,当计算机指令运行时执行如上所述的多核异构处理器的虚拟控制方法的步骤。
14.本技术的多核异构处理器的虚拟控制系统及方法,容易动态地为异构的各处理器核灵活配置输入输出硬件资源,减少了输入输出硬件资源的浪费,方便各处理器核之间访问输入输出硬件资源信息。
15.本技术的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本技术而了解。
附图说明
16.附图用来提供对本技术的进一步理解,并且构成说明书的一部分,并与本技术的实施例一起,用于解释本技术,并不构成对本技术的限制。在附图中:图1为本技术的多核异构处理器的虚拟控制系统的结构示意图;图2为本技术的通信模块的结构示意图;图3为本技术的多核异构处理器的虚拟控制方法的流程示意图;图4为本技术的一种电子设备的示意框图;图5为本技术的一种存储介质的示意图。
具体实施方式
17.下面将参照附图更详细地描述本技术的实施例。虽然附图中显示了本技术的某些实施例,然而应当理解的是,本技术可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例,相反提供这些实施例是为了更加透彻和完整地理解本技术。应当理解的是,本技术的附图及实施例仅用于示例性作用,并非用于限制本技术的保护范围。
18.应当理解,本技术的方法实施方式中记载的各个步骤可以按照不同的顺序执行,和/或并行执行。此外,方法实施方式可以包括附加的步骤和/或省略执行示出的步骤。本技术的范围在此方面不受限制。
19.本文使用的术语“包括”及其变形是开放性包括,即“包括但不限于”。术语“基于”是“至少部分地基于”。术语“一个实施例”表示“至少一个实施例”;术语“另一实施例”表示“至少一个另外的实施例”;术语“一些实施例”表示“至少一些实施例”。其他术语的相关定义将在下文描述中给出。
20.需要注意,本技术中提及的“一个”、“多个”的修饰是示意性而非限制性的,本领域技术人员应当理解,除非在上下文另有明确指出,否则应该理解为“一个或多个”。“多个”应理解为两个或以上。
21.下面,将参考附图详细地说明本技术的实施例。
22.实施例1图1为本技术的多核异构处理器的虚拟控制系统的结构示意图,如图1所示,本技术的多核异构处理器的虚拟控制系统,包括两个异构的处理器核10和30、通信模块20、资源配置模块40和物理输入输出硬件资源50,其中,处理器核10上配置有虚拟控制终端11,处理器核30上配置有虚拟控制终端31,虚拟控制终端11和虚拟控制终端31之间通过通信模块20通信连接,虚拟控制终端11和虚拟控制终端31与资源配置模块40连接,资源配置模块40与物理输入输出硬件资源50连接。
23.可以理解的是,由于处理器核10和处理器核30是异构设置,二者之间并没有缓存一致性硬件,各处理器核的中断控制器、时钟控制器和内存构成的硬件域之间是硬隔离的,因此各处理器核不能直接的被操作系统统一的调度,各处理器核的硬件域内的硬件资源只能被其处理器核访问。
24.示例性的,处理器核10是cortex-r处理器核,处理器核30是cortex-a处理器核,两处理器核上运行有相同或不同的操作系统,操作系统包括但不限于android、linux、qnx和freertos。
25.其中,虚拟控制终端用于管理与所在处理器核连接的虚拟输入输出硬件资源和物理输入输出硬件资源;资源配置模块40用于为处理器核分配虚拟输入输出硬件资源,建立虚拟输入输出硬件资源与物理输入输出硬件资源的连接;通信模块20用于虚拟控制终端之间查看不同硬件域的物理输入输出硬件资源信息。
26.需要说明的是,虚拟输入输出硬件资源是与物理输入输出硬件资源对应的,其中,物理输入输出硬件资源包括但不限于ddr视频类的输入输出接口,各种高速数据接口(比如usb、pcie等),还有各种慢速的外设 (比如spi、uart、i2c 、i2s等。
27.例如,物理输入输出硬件资源为物理串口,则虚拟输入输出硬件资源为虚拟串口。
28.如图1所示,资源配置模块40包括第一虚拟串口41、第二虚拟串口42和驱动43,第
一虚拟串口配置给处理器核10,第二虚拟串口配置给处理器核30,第一虚拟串口通过驱动43与物理输入输出硬件资源50连接,物理输入输出硬件资源50为物理串口。
29.在本实施例中,是默认将物理输入输出硬件资源50与第一虚拟串口41连接,即是将物理输入输出硬件资源50配置给处理器核10使用,在另一些实施例中,物理输入输出硬件资源50会默认配置给性能更好、启动速度更快的处理器核。
30.图2为本技术的通信模块的结构示意图,如图2所示,其中,通信模块20包括共享内存21和mailbox模块22;共享内存21为虚拟控制终端11配置有指令buffer2110和日志buffer2111,为虚拟控制终端31配置有指令buffer2310和日志buffer2311;指令buffer用于缓存指令发送端的虚拟控制终端的指令以供响应指令的虚拟控制终端获取,所述日志buffer用于缓存响应指令的虚拟控制终端的输入输出信息以供指令发送端的虚拟控制终端获取;所述mailbox模块22用于核间消息的传输,所述核间消息用于通知mailbox模块22另一端的虚拟控制终端向共享内存中读写指令。
31.本技术的实施例用于使用1个物理串口,在物理串口减少的情况下,依然方便多个异构处理器核查看打印日志,调试系统。
32.示例性的,本技术的实施例的工作过程如下:由于当前的物理串口配置给处理器核10,因此可以在处理器核10上查看处理器核30上的输入输出信息,通过处理器核10的虚拟控制终端11发送输入输出信息获取指令到共享内存21中处理器核30的指令buffer2310,同时通过mailbox模块22发送核间消息通知处理器核30读取指令buffer2310中的指令,处理器核30从指令buffer2310中读取指令后进行响应,将输入输出信息写入日志buffer2311,同时通过mailbox模块22发送核间消息通知处理器核10从日志buffer2311中读取输入输出信息,进行后续的保存和打印查看。
33.实施例2本技术的一个实施例,提供了一种多核异构处理器的虚拟控制系统,用于实现处理器核之间查看不同硬件域内的输入输出信息。
34.本实施例与实施1的不同之处在于:本实施例中,为处理器核10和处理器核30均配置有专属物理串口,此时处理器核10和处理器核30均可通过其专属的物理串口相互查看打印对方处理器核的输入输出信息。
35.实施例3本技术的一个实施例,提供了一种多核异构处理器的虚拟控制方法,用于实现处理器核之间查看不同硬件域内的输入输出信息。
36.图3为本技术的多核异构处理器的虚拟控制方法的流程示意图,下面将参考图3对本技术的多核异构处理器的虚拟控制方法进行详细描述:步骤s101:第一虚拟控制终端向第二虚拟控制终端发送输入输出信息获取指令,所述第一虚拟控制终端配置在第一处理器核上,所述第二虚拟控制终端配置在第二处理器核上,所述第一处理器核配置有物理输入输出硬件资源;步骤s102:基于输入输出信息获取指令,第二虚拟控制终端从其所在处理器核的虚拟输入输出硬件资源中获取第二虚拟控制终端所在处理器核的输入输出信息,并向第一虚拟控制终端发送输入输出信息;步骤s103:第一虚拟控制终端控制所述物理输入输出硬件资源查看打印所述输入
输出信息。
37.需要说明的是,在本实施例中,虚拟输入输出硬件资源为各处理器核均配置有1个,物理输入输出硬件资源会默认配置给性能更好启动速度更快的第一处理器核。
38.需要说明的是,虚拟输入输出硬件资源是与物理输入输出硬件资源对应的,其中,物理输入输出硬件资源包括但不限于ddr视频类的输入输出接口,各种高速数据接口(比如usb、pcie等),还有各种慢速的外设 (比如spi、uart、i2c 、i2s等。例如,物理输入输出硬件资源为物理串口,则虚拟输入输出硬件资源为虚拟串口。
39.进一步地,所述虚拟控制终端之间通过核间消息和共享内存相互通信;需要说明的是,共享内存为第一处理器核和第二处理器核均配置有指令buffer和日志buffer,在本实施的方法中,由于物理输入输出硬件资源会默认配置给性能更好启动速度更快的第一处理器核,因此本技术的方法主要是在第一处理器核上查看第二处理器核上的输入输出信息,在整个虚拟控制终端之间相互通信的过程中,第二处理器核的指令buffer和日志buffer是起重要作用的,而第一处理器核的指令buffer和日志buffer并不起作用;所述指令buffer用于缓存所属处理器核接收到的指令,所述日志buffer用于缓存所属处理器核写入的输入输出信息;所述核间消息通过mailbox模块传输,核间消息用于通知对面的虚拟控制终端向共享内存中读写指令。
40.作为一种优选的实施方式,所述第一虚拟控制终端和第二虚拟控制终端之间通过核间消息和共享内存相互通信的具体步骤包括:第一虚拟控制终端发送输入输出信息获取指令到共享内存中第二处理器核的指令buffer,所述指令buffer用于缓存所述指令;第一虚拟控制终端通过核间消息通知第二虚拟控制终端从所述指令buffer中获取指令;基于所述指令,第二虚拟控制终端从与第二处理器核连接的虚拟输入输出硬件资源中获取输入输出信息写入第二处理器核的日志buffer,并通过核间消息通知第一虚拟控制终端,所述日志buffer用于缓存输入输出信息;第一虚拟控制终端从所述日志buffer中获取所述输入输出信息。
41.本技术的实施例用于使用1个物理串口,在物理串口减少的情况下,依然方便多个异构处理器核查看打印日志,调试系统。
42.实施例4本技术的一个实施例,提供了一种多核异构处理器的虚拟控制方法,用于实现处理器核之间查看不同硬件域内的输入输出信息。
43.本技术的实施例与实施例2的不同之处在于,本实施例中,为第一处理器核和第二处理器核均配置有专属的物理串口,此时第一处理器核和第二处理器核均可通过其专属的物理串口相互查看打印对方处理器核的输入输出信息。
44.实施例5本实施例中,还提供一种系统芯片,包括,上述实施例的多核异构处理器的虚拟控制系统。
45.实施例6本实施例中,还提供一种电子设备,图4为本技术提供的一种电子设备的示意框
图。如图4所示,电子设备130包括多核异构处理器的虚拟控制系统131和存储器132。存储器132用于存储非暂时性计算机可读指令(例如一个或多个计算机程序模块)。多核异构处理器的虚拟控制系统131中的处理器核用于运行非暂时性计算机可读指令,非暂时性计算机可读指令被多核异构处理器的虚拟控制系统131中的处理器核运行时可以执行上文所述的多核异构处理器的虚拟控制方法的一个或多个步骤。存储器132和多核异构处理器的虚拟控制系统131可以通过总线系统和/或其它形式的连接机构(未示出)互连。
46.例如,多核异构处理器的虚拟控制系统131的处理器核可以是中央处理单元(cpu)、数字信号处理器(dsp)或者具有数据处理能力和/或程序执行能力的其它形式的处理单元,例如现场可编程门阵列(fpga)等;例如,中央处理单元(cpu)可以为x86或arm架构等。其处理器核可以为通用处理器核或专用处理器核,可以控制电子设备130中的其它组件以执行期望的功能。
47.例如,存储器132可以包括一个或多个计算机程序产品的任意组合,计算机程序产品可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。易失性存储器例如可以包括随机存取存储器(ram)和/或高速缓冲存储器(cache)等。非易失性存储器例如可以包括只读存储器(rom)、硬盘、可擦除可编程只读存储器(eprom)、便携式紧致盘只读存储器(cd-rom)、usb存储器、闪存等。在计算机可读存储介质上可以存储一个或多个计算机程序模块,多核异构处理器的虚拟控制系统131可以运行一个或多个计算机程序模块,以实现电子设备130的各种功能。在计算机可读存储介质中还可以存储各种应用程序和各种数据以及应用程序使用和/或产生的各种数据等。
48.需要说明的是,本技术的实施例中,电子设备130的具体功能和技术效果可以参考上文中关于多核异构处理器的虚拟控制方法的描述,此处不再赘述。
49.实施例7本实施例中,还提供一种计算机可读存储介质,图5为本技术的一种存储介质的示意图。如图5所示,存储介质150用于存储非暂时性计算机可读指令151。例如,当非暂时性计算机可读指令151由计算机执行时可以执行根据上文所述的多核异构处理器的虚拟控制方法中的一个或多个步骤。
50.例如,该存储介质150可以应用于上述电子设备130中。例如,存储介质150可以为图4所示的电子设备130中的存储器132。例如,关于存储介质150的相关说明可以参考图4所示的电子设备130中的存储器132的相应描述,此处不再赘述。
51.需要说明的是,本技术上述的存储介质(计算机可读介质)可以是计算机可读信号介质或者非暂时性计算机可读存储介质或者是上述两者的任意组合。非暂时性计算机可读存储介质例如可以是,但不限于,电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。非暂时性计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑磁盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。
52.在本技术中,非暂时性计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本技术中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计
算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是非暂时性计算机可读存储介质以外的任何计算机可读介质,该计算机可读信号介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、rf(射频)等,或者上述的任意合适的组合。
53.上述计算机可读介质可以是上述电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。
54.可以以一种或多种程序设计语言或其组合来编写用于执行本技术的操作的计算机程序代码,上述程序设计语言包括但不限于面向对象的程序设计语言,诸如java、smalltalk、c++,还包括常规的过程式程序设计语言,诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。
55.附图中的流程图和框图,图示了按照本技术各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这根据所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
56.描述于本技术实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。其中,单元的名称在某种情况下并不构成对该单元本身的限定。
57.本文中以上描述的功能可以至少部分地由一个或多个硬件逻辑部件来执行。例如,非限制性地,可以使用的示范类型的硬件逻辑部件包括:现场可编程门阵列(fpga)、专用集成电路(asic)、专用标准产品(assp)、片上系统(soc)、复杂可编程逻辑设备(cpld)等。
58.以上描述仅为本技术的部分实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本技术中所涉及的公开范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述公开构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本技术中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
59.此外,虽然采用特定次序描绘了各操作,但是这不应当理解为要求这些操作以所示出的特定次序或以顺序次序来执行。在一定环境下,多任务和并行处理可能是有利的。同样地,虽然在上面论述中包含了若干具体实现细节,但是这些不应当被解释为对本技术的范围的限制。在单独的实施例的上下文中描述的某些特征还可以组合地实现在单个实施例中。相反地,在单个实施例的上下文中描述的各种特征也可以单独地或以任何合适的子组合的方式实现在多个实施例中。
60.尽管已经采用特定于结构特征和/或方法逻辑动作的语言描述了本主题,但是应当理解所附权利要求书中所限定的主题未必局限于上面描述的特定特征或动作。相反,上面所描述的特定特征和动作仅仅是实现权利要求书的示例形式。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1