一种异构多处理器系统及其驱动控制方法
【专利摘要】本发明公开了一种异构多处理器系统及其驱动控制方法,其中异构多处理器驱动控制方法包括:在系统初始化时,第一处理器对外部设备拥有控制权,此时只有第一处理器接受外部设备的中断请求,而第二处理器屏蔽外部设备的中断请求;第一处理器运行外部设备的驱动程序,检测外部设备的状态;当外部设备处于第一状态时,第一处理器对外部设备的控制命令和数据传输进行处理,将外部设备的状态和控制信息写入存储器;当检测的外部设备由第一状态转变为第二状态时,第一处理器对外部设备拥有的控制权转交给第二处理器,第二处理器运行外部设备的驱动程序,从存储器中读取外部设备的状态和控制信息进行处理。本发明通过中断技术,实现了设备驱动的动态调整。
【专利说明】
一种异构多处理器系统及其驱动控制方法
技术领域
[0001]本发明涉及异构多处理器技术,尤其涉及一种异构多处理器系统及其驱动控制方法。
【背景技术】
[0002]随着集成电路技术的发展,越来越多的处理功能可以集成到一个系统集成芯片(System on a Chip,简称SoC)中。很多电子设备只需要一个SoC再辅以若干电阻和电容。SoC中的处理器,对称多处理器的很常见。异构模式的如ARM的big.little处理器架构也越来越多。在控制领域,如Freescale的Vybrid系列处理器如VF6xx,采用两个内核,一个Cortex A5,另一个 Cortex M4。
[0003]现有技术的异构模式多处理器存在的问题是,各处理器虽然都可以控制驱动外部设备,但它们可能不能同时访问外部设备。对同一外部设备,如果多个异构内核要访问该设备,可能需要不同的驱动程序,因为各内核上运行的操作系统(OS)可能都是不同的。
【发明内容】
[0004]本发明的目的在于解决现有技术中异构模式多处理器在控制驱动外部设备时存在的上述问题,提供一种异构多处理器系统及其驱动控制方法。
[0005]为了实现上述目的,一方面,本发明提供了一种异构多处理器驱动控制方法,该方法应用于由第一处理器、第二处理器、存储器和外部设备构成的异构多处理器系统中,该方法包括以下步骤:
[0006]在系统初始化时,第一处理器对外部设备拥有控制权,此时只有第一处理器接受外部设备的中断请求,而第二处理器屏蔽外部设备的中断请求;
[0007]第一处理器运行外部设备的驱动程序,检测外部设备的状态;
[0008]当外部设备处于第一状态时,第一处理器对外部设备的控制命令和数据传输进行处理,将外部设备的状态和控制信息写入存储器;当外部设备由第一状态转变为第二状态时,第一处理器对外部设备拥有的控制权转交给第二处理器,第二处理器运行外部设备的驱动程序,从存储器中读取外部设备的状态和控制信息进行处理。
[0009]优选地,当检测的外部设备由第二状态转变为第一状态时,第二处理器对外部设备拥有的控制权交还给第一处理器,第一处理器运行外部设备的驱动程序,从存储器中读取外部设备的状态和控制信息进行处理。
[0010]优选地,第一处理器和第二处理器通过DMA控制器控制外部设备和存储器之间进行数据传输。
[0011]优选地,第一处理器接受外部设备的中断请求,而第二处理器屏蔽外部设备的中断请求步骤是通过DMA中断控制器实现。
[0012]另一方面,本发明提供了一种异构多处理器系统,该系统包括:第一处理器、第二处理器、存储器和外部设备;第一处理器和第二处理器连接存储器,通过设备总线访问外部设备;外部设备的中断信号分别接到第一中断控制器和第二中断控制器,第一中断控制器与第一处理器连接,第二中断控制器与第二处理器连接;
[0013]在系统初始化时,第一处理器对外部设备拥有控制权,此时只有第一处理器接受外部设备的中断请求,而第二处理器屏蔽外部设备的中断请求;第一处理器运行外部设备的驱动程序,检测外部设备的状态;当外部设备处于第一状态时,第一处理器对外部设备的控制命令和数据传输进行处理,将外部设备的状态和控制信息写入存储器;当外部设备由第一状态转变为第二状态时,第一处理器对外部设备拥有的控制权转交给第二处理器,第二处理器运行外部设备的驱动程序,从存储器中读取外部设备的状态和控制信息进行处理。
[0014]优选地,异构多处理器系统系统还包括DMA控制器,第一处理器和第二处理器通过DMA控制器控制外部设备和存储器之间进行数据传输。
[0015]优选地,第一处理器和第二处理器具体用于,从存储器中读取外部设备的状态和控制信息对外部设备进行初始化,并进入正常驱动流程。
[0016]本发明通过中断技术和适当的控制,实现了在异构多处理器系统的各处理器上进行动态调整设备驱动,从一个内核上将控制权转移到另一个内核。这一方面可以调整各内核上的负载,另一方面也可以对功耗进行更精细的控制。比如,当某外设没有工作时,可以只在功耗比较小的内核上运行监控程序;当检测到该外设需要进入工作状态后,就转移到计算能力更强的内核上。
【附图说明】
[0017]图1为本发明实施例提供的一种异构多处理器系统结构图;
[0018]图2为本发明实施例提供的一种异构多处理器驱动控制方法流程图。
【具体实施方式】
[0019]下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
[0020]图1为本发明实施例提供的一种异构多处理器系统结构图。如图1所示,该系统包括:第一处理器11、第二处理器12、第一中断控制器21、第二中断控制器22、存储器30、DMA控制器40和外部设备50。
[0021]其中,第一处理器11和第二处理器12连接,第一处理器11和第二处理器12分别连接存储器30和DMA控制器40,并通过设备总线访问外部设备50。第一处理器11和第二处理器12通过DMA控制器40控制外部设备50和存储器30之间进行数据传输。
[0022]外部设备50的中断信号分别接到第一中断控制器21和第二中断控制器22,第一中断控制器21与第一处理器11连接,第二中断控制器22与第二处理器12连接。第一中断控制器21或第二中断控制器22对每一中断设置有一个中断屏蔽位,用来使能/屏蔽对应的中断。中断屏蔽位可在异构多处理器系统复位时进行设置。
[0023]在本发明实施例提供的异构多处理器系统中,第一处理器11和第二处理器12运行不同的操作系统。例如,第一处理器11上运行一个小型操作系统,进行实时控制,第二处理器12上运行一个大型操作系统,以提供丰富的应用。
[0024]相应地,本申请针提供了一种异构多处理器系统的控制驱动方法,如图2所示。
[0025]图2为本发明实施例提供的一种异构多处理器驱动控制方法流程图。该方法包括以下步骤:异构多处理器系统在进行系统初始化时,先由第一处理器11对外部设备50拥有控制权,此时只有第一处理器11可以接受外部设备50的中断请求,而第二处理器12需要屏蔽外部设备50的中断请求;在第一处理器11上运行一个外部设备50的精简版驱动程序,用于检测外部设备50的状态。
[0026]当检测的外部设备50处于第一状态时,由第一处理器11对外部设备50的控制命令和数据传输进行处理,并将外部设备50的状态和控制信息写入存储器30 ;当检测的外部设备50由第一状态转变为第二状态时,第一处理器11对外部设备50拥有的控制权转交给第二处理器12,第二处理器12运行外部设备50的驱动程序,并从共享的存储器30中读取外部设备50的状态和控制信息进行初始化,并进入正常驱动流程。
[0027]需要说明的是,本发明实施例提供的异构多处理器系统在进行系统初始化时,也可以先由第二处理器12对外部设备50拥有控制权,而第一处理器11则需要屏蔽外部设备50的中断请求。该技术方案同样属于本发明保护的范围。
[0028]在一个应用场景中:例如在移动设备上,经常需要功耗控制。外部设备并非总是处于工作或者高负载状态。当异构多处理器系统检测到外部设备处于空闲状态(例如第一状态)时,由低能耗的处理器核(例如第一处理器)来处理;当检测到外部设备处于高负载状态(例如第二状态)时,再由高功耗的处理器核(例如第二处理器)来处理。
[0029]本发明实施例通过中断技术和适当的控制,实现了在异构多处理器系统的各处理器上进行动态调整设备驱动,从一个内核上将控制权转移到另一个内核。这一方面可以调整各内核上的负载,另一方面也可以对功耗进行更精细的控制。比如,当某外设没有工作时,可以只在功耗比较小的内核上运行监控程序;当检测到该外设需要进入工作状态后,就转移到计算能力更强的内核上。
[0030]显而易见,在不偏离本发明的真实精神和范围的前提下,在此描述的本发明可以有许多变化。因此,所有对于本领域技术人员来说显而易见的改变,都应包括在本权利要求书所涵盖的范围之内。本发明所要求保护的范围仅由所述的权利要求书进行限定。
【主权项】
1.一种异构多处理器驱动控制方法,应用于由第一处理器(11)、第二处理器(12)、存储器(30)和外部设备(50)构成的异构多处理器系统中,其特征在于: 在系统初始化时,所述第一处理器(11)对所述外部设备(50)拥有控制权,此时只有所述第一处理器(11)接受所述外部设备(50)的中断请求,而所述第二处理器(12)屏蔽所述外部设备(50)的中断请求; 所述第一处理器(11)运行所述外部设备(50)的驱动程序,检测所述外部设备(50)的状态; 当所述外部设备(50)处于第一状态时,所述第一处理器(11)对所述外部设备(50)的控制命令和数据传输进行处理,将所述外部设备(50)的状态和控制信息写入存储器(30);当检测的所述外部设备(50)由第一状态转变为第二状态时,所述第一处理器(11)对所述外部设备(50)拥有的控制权转交给所述第二处理器(12),所述第二处理器(12)运行所述外部设备(50)的驱动程序,从所述存储器(30)中读取所述外部设备(50)的状态和控制信息进行处理。2.根据权利要求1所述的方法,其特征在于,当检测的所述外部设备(50)由第二状态转变为第一状态时,所述第二处理器(12)对所述外部设备(50)拥有的控制权交还给所述第一处理器(11),所述第一处理器(11)运行所述外部设备(50)的驱动程序,从所述存储器(30)中读取所述外部设备(50)的状态和控制信息进行处理。3.根据权利要求1所述的方法,其特征在于,所述第一处理器(11)和所述第二处理器(12)通过DMA控制器(40)控制所述外部设备(50)和所述存储器(30)之间进行数据传输。4.根据权利要求1所述的方法,其特征在于,所述第一处理器(11)接受所述外部设备(50)的中断请求,而所述第二处理器(12)屏蔽所述外部设备(50)的中断请求步骤通过中断控制器实现。5.根据权利要求1至5中任一权利要求所述的方法,其特征在于,所述第一处理器(11)或所述第二处理器(12)运行所述外部设备(50)的驱动程序,从所述存储器(30)中读取所述外部设备(50)的状态和控制信息进行处理步骤包括: 从所述存储器(30)中读取所述外部设备(50)的状态和控制信息进行初始化,并进入正常驱动流程。6.一种异构多处理器系统,其特征在于,包括:第一处理器(11)、第二处理器(12)、存储器(30)和外部设备(50); 所述第一处理器(11)和所述第二处理器(12)连接存储器(30),通过设备总线访问所述外部设备(50); 所述外部设备(50)的中断信号分别接到第一中断控制器(21)和第二中断控制器(22),所述第一中断控制器(21)与所述第一处理器(11)连接,所述第二中断控制器(22)与所述第二处理器(12)连接; 在系统初始化时,所述第一处理器(11)对所述外部设备(50)拥有控制权,此时只有所述第一处理器(11)接受所述外部设备(50)的中断请求,而所述第二处理器(12)屏蔽所述外部设备(50)的中断请求;所述第一处理器(11)运行所述外部设备(50)的驱动程序,检测所述外部设备(50)的状态;当所述外部设备(50)处于第一状态时,所述第一处理器(11)对所述外部设备(50)的控制命令和数据传输进行处理,将所述外部设备(50)的状态和控制信息写入存储器(30);当检测的所述外部设备(50)由第一状态转变为第二状态时,所述第一处理器(11)对所述外部设备(50)拥有的控制权转交给所述第二处理器(12),所述第二处理器(12)运行所述外部设备(50)的驱动程序,从所述存储器(30)中读取所述外部设备(50)的状态和控制信息进行处理。7.根据权利要求1所述的系统,其特征在于,还包括DMA控制器(40),所述第一处理器(11)和所述第二处理器(12)通过所述DMA控制器(40)控制所述外部设备(50)和所述存储器(30)之间进行数据传输。8.根据权利要求1所述的系统,其特征在于,所述第一处理器(11)和所述第二处理器(12)具体用于, 从所述存储器(30)中读取所述外部设备(50)的状态和控制信息对所述外部设备(50)进行初始化,并进入正常驱动流程。
【文档编号】G06F13/10GK105988945SQ201510062427
【公开日】2016年10月5日
【申请日】2015年2月6日
【发明人】庹凌云, 邓育贤, 王允臻, 方之熙
【申请人】致象尔微电子科技(上海)有限公司