一种支持多任务的BIOS运行方法及BIOS芯片技术

技术编号:8801005 阅读:170 留言:0更新日期:2013-06-13 05:42
本发明专利技术实施例提供一种支持多任务的BIOS运行方法及BIOS芯片,其中方法包括:在BIOS运行过程中,确定当前BIOS运行阶段对应的调度器;使用所述调度器调取与当前BIOS运行阶段对应的驱动Driver调用程序;使用所述Driver调用程序,将当前BIOS运行阶段中符合预设条件的Driver放入多核CPU,在多个CPU核心上运行多个当前BIOS运行阶段对应的Driver。本发明专利技术实施例实现了在BIOS环境下的多任务运行的支持。

【技术实现步骤摘要】

本专利技术涉及计算机通信
,更具体地说,涉及一种支持多任务的BIOS(Basic Input Output System,基本输入输出系统)运行方法及BIOS芯片。
技术介绍
BIOS是一组固化到计算机内主板上一个ROM (Read-Only Memory,只读内存)芯片上的程序,它保存着计算机最重要的基本输入输出的程序、系统设置信息、开机后自检程序和系统自启动程序;其主要功能是为计算机提供最底层的、最直接的硬件设置和控制。通常情况下,BIOS是在计算机开机的时候运行,在计算机开机时,BIOS将进行计算机的自检,自检完成后,BIOS调入开机启动程序,通过开机启动程序,将计算机的控制权交由计算机的操作系统。目前,BIOS的运行过程主要分为四个阶段:SEC (Security,安全启动阶段),PEI(Pre EFI Initialization Environment,早期 EFI 初始化阶段),DXE (Driver ExecutionEnvironment,驱动执行阶段)和RT (Run Time OS,运行阶段)。专利技术人在实现本专利技术的过程中发现:现有的BIOS只能运行在BSP (board supported package,板极支持包)上,即上述的SEC,PEI,DXE和RT这四个阶段均只能在BSP上运行,这使得无论计算机系统有多少个CPU,都无法在BIOS环境下支持多任务的运行,使得BIOS运行过程中的任务处理效率大大降低。
技术实现思路
有鉴于此,本专利技术实施例提供一种支持多任务的BIOS运行方法及BIOS芯片,以解决现有的BIOS只能运行在BSP上,而造成得在BIOS环境下无法支持多任务运行的问题。为实现上述目的,本专利技术实施例提供如下技术方案:一种支持多任务的BIOS运行方法,包括:在BIOS运行过程中,确定当前BIOS运行阶段对应的调度器;使用所述调度器调取与当前BIOS运行阶段对应的驱动Driver调用程序;使用所述Driver调用程序,将当前BIOS运行阶段中符合预设条件的Driver放入多核CPU,在多个CPU核心上运行多个当前BIOS运行阶段对应的Driver。本专利技术实施例还提供一种BIOS芯片,包括:调度器确定模块,与所述调度器确定模块相连的程序调用模块,与所述程序调用模块相连的任务分配模块; 所述调度器确定模块,用于在BIOS运行过程中,确定当前BIOS运行阶段对应的调度器;所述程序调用模块,用于使用所述调度器确定模块所确定的调度器,调取与当前BIOS运行阶段对应的驱动Driver调用程序;所述任务分配模块,用于使用所述Driver调用程序,将当前BIOS运行阶段中符合预设条件的Driver放入多核CPU,在多个CPU核心上运行多个当前BIOS运行阶段对应的Driver0基于上述技术方案,本专利技术实施例提供的支持多任务的BIOS运行方法,在不同的BIOS运行阶段设置与该BIOS运行阶段对应的调度器,使用所述调度器调取与当前BIOS运行阶段对应的Driver调用程序,通过Driver调用程序所起到的Driver与多核CPU的交互作用,使用所述Driver调用程序将当前BIOS运行阶段中符合预设条件的Driver放入多核CPU,在多个CPU核心上运行多个当前BIOS运行阶段对应的Driver ;本专利技术实施例实现了在多核CPU上运行BIOS的目的,解决了现有的BIOS只能运行在BSP上,而造成得在BIOS环境下无法支持多任务运行的问题,实现了在BIOS环境下的多任务运行的支持,提高了 BIOS运行过程中的任务处理效率。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本专利技术实施例提供的支持多任务的BIOS运行方法的流程图;图2为本专利技术实施例提供的在多个CPU核心上运行多个Drive的示意图;图3为本专利技术实施例提供的一种支持多任务的BIOS运行方法的另一流程图;图4为本专利技术实施例提供的支持多任务的BIOS运行方法的又一流程图;图5为本专利技术实施例提供的一种支持多任务的BIOS运行方法的再一流程图;图6为本专利技术实施例提供的支持多任务的BIOS运行方法的再又一流程图;图7为本专利技术实施例提供的进行多核CPU初始化的示意图;图8为本专利技术实施例提供的BIOS芯片的结构框图;图9为本专利技术实施例提供的BIOS芯片的另一结构框图;图10为本专利技术实施例提供的第一任务分配单元的结构框图;图11为本专利技术实施例提供的BIOS芯片的又一结构框图;图12为本专利技术实施例提供的BIOS芯片的再一结构框图;图13为本专利技术实施例提供的第二任务分配单元的结构框图;图14为本专利技术实施例提供的BIOS芯片的再又一结构框图;图15为本专利技术实施例提供的BIOS芯片的再另一结构框图。具体实施例方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。图1为本专利技术实施例提供的支持多任务的BIOS运行方法的流程图,参照图1,该方法可以包括:步骤S100、在BIOS运行过程中,确定当前BIOS运行阶段对应的调度器;本专利技术实施例中可在各个BIOS运行阶段均设置对应的调度器,如可在PEI阶段设置对应的调度器,DXE阶段设置对应的调度器等;所述调度器用于调取与当前BIOS运行阶段对应的Driver (驱动)调用程序。步骤S110、使用所述调度器调取与当前BIOS运行阶段对应的Driver调用程序;本专利技术实施例中,Driver调用程序是多核CPU与当前BIOS运行阶段对应的Driver的交互桥梁,起到将Driver放入多核CPU的作用;Driver调用程序可以是Driver与多核CPU之间的一个调用接口,也可以是一个调用协议,具体的Driver调用程序的设置可视不同的BIOS运行阶段的Driver,与多核CPU的交互方式而改变,并没有固定的限制。步骤S120、使用所述Driver调用程序,将当前BIOS运行阶段中符合预设条件的Driver放入多核CPU,在多个CPU核心上运行多个当前BIOS运行阶段对应的Driver。符合预设条件的Driver可以是当前BIOS运行阶段对应的全部Driver,也可以是预先设置的需要放入多核CPU的Driver。可选的,本专利技术实施例可设置BIOS Post Task Table(B10S通知任务表),在BIOS通知任务表中设置各BIOS运行阶段需要放入多核CPU的Driver信息,如可在BIOS通知任务表中设置PEI阶段需要放入多核CPU的Driver信息,在BIOS通知任务表中设置DXE阶段需要放入多核CPU的Driver信息等。可选的,本专利技术实施例中的BIOS通知任务表可以是静态的Driver分配策略,BIOS通知任务表可在BIOS运行之初就开始调用,在BIOS运行过程中BIOS通知任本文档来自技高网...

【技术保护点】
一种支持多任务的BIOS运行方法,其特征在于,包括:在BIOS运行过程中,确定当前BIOS运行阶段对应的调度器;使用所述调度器调取与当前BIOS运行阶段对应的驱动Driver调用程序;使用所述Driver调用程序,将当前BIOS运行阶段中符合预设条件的Driver放入多核CPU,在多个CPU核心上运行多个当前BIOS运行阶段对应的Driver。

【技术特征摘要】
1.一种支持多任务的BIOS运行方法,其特征在于,包括: 在BIOS运行过程中,确定当前BIOS运行阶段对应的调度器; 使用所述调度器调取与当前BIOS运行阶段对应的驱动Driver调用程序; 使用所述Driver调用程序,将当前BIOS运行阶段中符合预设条件的Driver放入多核CPU,在多个CPU核心上运行多个当前BIOS运行阶段对应的Driver。2.根据权利要求1所述的方法,其特征在于,当前BIOS运行阶段为PEI阶段;所述确定当前BIOS运行阶段对应的调度器包括:确定PEI阶段对应的PEI调度器Dispatcher ; 所述使用所述调度器调取与当前BIOS运行阶段对应的Driver调用程序包括: 使用所述PEI Dispatcher调取PEI Driver调用接口 PPI ; 所述使用所述Driver调用程序,将当前BIOS运行阶段中符合预设条件的Driver放入多核CPU包括: 使用所述PPI将PEI阶段中符合预设条件的PEI Driver放入多核CPU。3.根据权利要求2所述的方法,其特征在于,所述使用所述PPI将PEI阶段中符合预设条件的PPI Driver放入多核CPU包括: 通过PEI服务列表获取待运行PEI Driver的标识Guid ; 将所述Guid对应的待运行PEI Driver中符合预设条件的PEI Driver放入多核CPU,在多个CPU核心上运行符合预设条件的PEI Driver,得到运行的PEI Driver的任务身份标识ID,向所述PEI服务列表返回所述任务ID。4.根据权利要求3所述的方法,在向PEI服务列表返回所述任务ID时还包括:向PEI服务列表返回所述任务ID对应的PEI Driver在多核CPU上的运行状态; 所述方法还包括: 通过所述PEI服务列表获取运行的PEI Driver的任务ID,获取所述任务ID中指定任务ID对应的PEI Driver的运行状态;或, 对所述任务ID中指定任务ID对应的PEI Driver的运行状态进行控制,在所述多核CPU调整所述指定任务ID对应的PEI Driver的运行状态后,向所述PEI服务列表返回所述指定任务ID对应的PEI Driver调整后的运行状态;或, 通过所述PEI服务列表获取当前运行的PEI Driver的任务列表,所述任务列表包括放置在多核CPU上的PEI Driver的任务ID及对应的任务运行状态,在指定的缓冲区缓冲所述任务列表。5.根据权利要求1所述的方法,其特征在于,当前BIOS运行阶段为DXE阶段;所述确定当前BIOS运行阶段对应的调度器包括:确定DXE阶段对应的DXE调度器Dispatcher ; 所述使用所述调度器调取与当前BIOS运行阶段对应的Driver调用程序包括: 使用所述 DXE Dispatcher 调取 DXE Driver 调用协议 Protocol ; 所述使用所述Driver调用程序,将当前BIOS运行阶段中符合预设条件的Driver放入多核CPU包括: 使用所述Protocol将DXE阶段符合预设条的DXE Driver放入多核CPU。6.根据权利要求5所述的方法,其特征在于,所述使用所述Protocol将DXE阶段符合预设条的DXE Driver放入多核CPU包括: 获取待运行DXE Driver的标识Guid ;将所述Guid对应的待运行DXE Driver中符合预设条件的DXE Driver放入多核CPU,在多个CPU核心上运行符合预设条件的DXE Drive,得到运行的DXE Driver的任务身份标识ID,返回所述任务ID。7.根据权利要求6所述的方法,其特征在于,在返回所述任务ID的同时还包括:返回所述任务ID对应的DXE Driver在多核CPU上的运行状态; 所述方法还包括: 获取所述任务ID中指定任务ID对应的DXE Driver的运行状态;或, 对所述任务ID中指定任务ID对应的DXE Driver的运行状态进行控制,在所述多核CPU调整所述指定任务ID对应的DXE Driver的运行状态后,返回所述指定任务ID对应的DXE Driver调整后的运行状态;或, 获取运行的DXE Driver的任务列表,所述任务列表包括放置在多核CPU上的DXEDriver的任务ID及对应的任务运行状态,在指定的缓冲区缓冲所述任务列表。8.根据权利要求1至7任一项所述的方法,其特征在于,所述符合预设条件的Driver包括:与预置的BIOS通知任务表中设定的,在当前BIOS运行阶段放入多核CPU的Driver对应的Driver,所述BIOS通知任务表携带有各BIOS运行阶段需要放入多核CPU的Driver信息;或,当前BIOS运行阶段全部的Driver。9.根据权利要求1至7任一项所述的方法,其特征在于,还包括: 利用BSP通过高级可编程中断控制器APIC总线向多核CPU广播启动内部处理器中断SIPI信息,以初始化多核CPU的各核心。10.一种BIOS芯片,其特征在于,包括:调度器确定模块,与所述调度器确定模块相连的程序调用模块,与所述程序调用模块相连的任务分配模块; 所...

【专利技术属性】
技术研发人员:郑红文
申请(专利权)人:合肥联宝信息技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1