支援省电模式的UEFI壳程序方法及其电脑系统与流程

文档序号:16626350发布日期:2019-01-16 06:08阅读:454来源:国知局
本案涉及一种uefi壳程序方法及其电脑系统。具体而言,本案涉及一种支援省电模式的uefi壳程序方法及其电脑系统。
背景技术
::传统上,电脑系统可启动(boot)操作系统(operatingsystem,os)。一般而言,操作系统的启动是由低阶指令码处理,其中低阶指令码是用以中介于电脑系统的硬件元件与执行在电脑系统上的操作软件及其他高阶软件之间。低阶指令码通常被称为基本输入/输出系统(basicinput/outputsystem,bios)固件,并提供一组软件常规流程让高阶软件得以与电脑系统的硬件元件进行互动。此一固件常规地在电脑系统每次开机时进行自我开机测试(power-onselftest,post),以在交付电脑系统的控制权给操作系统前,先测试并启始电脑系统中的所有硬件元件。此些硬件元件可包括系统主存储器、磁碟机、及键盘。然而,随着科技进步,许多装置(如周边装置)已进展为无线(wireless)或无电源线(cordless),而以传统bios标准为基础的启动固件(其初始为ibm(internationalmachinecorporation)公司为个人电脑所设计),已限制了启动固件可控制的硬件及操作系统随后可控制的硬件。当新的软件及硬件科技发展时,此种限制将成为软件及硬件互动间的主要障碍。由此之故,新的bios标准固件已提出且被主要的产业领导公司所广泛使用。此一新的标准固件称为统一可延伸固件界面(unifiedextensiblefirmwareinterface,uefi)。随着uefi标准的使用,生产bios的公司可生产电脑系统的uefi固件,而生产操作系统的公司也可通过生产相容于uefi的操作系统,而获得uefi固件所提供的益处。然而,在制造阶段,在将电脑系统交予消费者前,电脑系统制造商须对电脑系统进行检测,以确保电脑系统的品质控制达到标准,并在合理错误范围内。品质检测的一个标准步骤为在任何操作系统安装前测试电脑系统。然而,当数以百计或数以千计的电脑系统需进行测试时,维持此些电脑系统在等待测试过程中开机的电源为一考量问题。此外,在进行耗时的检测时,检测工程师需偶尔离开工作场所。在如此状况下,持续检测工作的运行将造成不必要的电源浪费。因此,有需要在减少电源浪费的同时保存工作执行的进度。技术实现要素:本发明的一实施例的目的之一在于提供具有uefi壳程序的电脑系统及方法,其可支援省电模式。本案一实施例涉及一种在一电脑系统中利用一处理器执行一uefi壳程序的操作方法。根据本案一实施例,该uefi壳程序位于一存储器中,该存储器电性连接该处理器,且该方法包括:通过该处理器,执行该uefi壳程序,以执行以下操作:启始一省电函式库的一呼叫操作;撷取对应于该省电函式库的一电源设定数据;撷取并储存一硬件暂存器数据至该存储器;以及致能一系统控制中断操作,启始对多个中央处理器内部快取存储器进行的一清除操作,并根据该电源设定数据设置多个省电控制暂存器。于一实施例中,启始该省电函式库的该呼叫的操作包括:执行伴随该省电函式库运行的一应用程序,其中该省电函式库为对应于acpi标准的shells3函式库。于一实施例中,撷取对应于该省电函式库的该电源设定数据的操作包括:通过多个标准acpi查找表,撷取对应于该省电函式库的一acpi数据。于一实施例中,撷取并储存该硬件暂存器数据至该存储器的操作包括:储存一8259pic数据至该存储器;储存一hpet数据至该存储器;储存一pci数据及一pci-e数据至该存储器;储存一输入/输出apic数据至该存储器;以及储存一本地apic数据至该存储器。于一实施例中,撷取并储存该硬件暂存器数据至该存储器的操作包括:从该电脑系统中撷取一芯片组专用装置暂存器数据,并储存该芯片组专用装置暂存器数据至该存储器。于一实施例中,更包括:通过对一系统bios的一系统呼叫,致能该系统bios协助储存该芯片组专用装置暂存器数据至该存储器。于一实施例中,撷取并储存该硬件暂存器数据至该存储器的操作包括:从该电脑系统中撷取一板专用装置暂存器数据,并储存该板专用装置暂存器数据至该存储器。于一实施例中,更包括:通过对一系统bios的一系统呼叫,致能该系统bios协助储存该板专用装置暂存器数据至该存储器。于一实施例中,撷取并储存该硬件暂存器数据至该存储器的操作包括:撷取并储存一中央处理器暂存器数据至该存储器。本案另一实施例涉及一种在一电脑系统中利用一处理器执行一uefi壳程序的操作方法。根据本案一实施例,该uefi壳程序位于一存储器中,该存储器电性连接该处理器,且该方法包括:通过该处理器,执行该uefi壳程序,以执行以下操作:自该存储器取出一中央处理器暂存器数据,并储存该中央处理器暂存器数据至多个中央处理器暂存器;去能一系统控制中断操作;自该存储器取出一硬件暂存器数据,并储存该硬件暂存器数据至多个硬件暂存器;启始对多个中央处理器内部快取存储器进行的一清除操作;以及执行多个硬件控制器的一连结操作。于一实施例中,自该存储器取出该中央处理器暂存器数据,并储存该中央处理器暂存器数据至该些中央处理器暂存器的操作包括:确认该电脑系统处于一省电模式中,并受控以自该省电模式中回复。于一实施例中,自该存储器取出该中央处理器暂存器数据,并储存该中央处理器暂存器数据至该些中央处理器暂存器的操作包括:启始一全局描述符表及一中断描述符表中的至少一者;在该电脑系统为x64架构的状况下,致能一paging64模式;以及储存自该存储器取出的该中央处理器暂存器数据至该些中央处理器暂存器。于一实施例中,自该存储器取出该硬件暂存器数据,并储存该硬件暂存器数据至多个硬件暂存器的操作包括:启始一程序,以储存自该存储器取出的一芯片组专用装置暂存器数据至多个芯片组专用装置暂存器。于一实施例中,更包括:启始对一系统bios的一系统呼叫,以协助储存自该存储器取出的该芯片组专用装置暂存器数据至该些芯片组专用装置暂存器。于一实施例中,自该存储器取出该硬件暂存器数据,并储存该硬件暂存器数据至多个硬件暂存器的操作包括:启始一程序,以储存自该存储器取出的一板专用装置暂存器数据至多板专用装置暂存器。于一实施例中,更包括:启始对一系统bios的一系统呼叫,以协助储存自该存储器取出的该板专用装置暂存器数据至该些芯片组专用装置暂存器。于一实施例中,自该存储器取出该硬件暂存器数据,并储存该硬件暂存器数据至多个硬件暂存器的操作包括:储存自该存储器取出的该硬件暂存器数据至该电脑系统中。于一实施例中,更包括:储存自该存储器取出的一本地apic数据至该电脑系统中的对应位置;储存自该存储器取出的一输入/输出apic数据至该电脑系统中的对应位置;储存自该存储器取出的一pci数据及一pci-e数据至该电脑系统中的对应位置;储存自该存储器取出的一高精度事件计时器数据至该电脑系统中的对应位置;启始该电脑系统的一8254可编程内部计时器;以及储存自该存储器取出的一8259pic数据至该电脑系统。本案另一实施态样涉及一种电脑系统。根据本案一实施例,该电脑系统包括一存储器以及一处理器。该存储器用以储存一uefi壳程序,其中该uefi壳程序用以支援该电脑系统中的多个uefi应用程序以进入一省电模式。该处理器用以操作性耦接该存储器,并用以操作性执行该uefi壳程序以执行以下操作:启始一省电函式库的一呼叫操作;撷取对应于该省电函式库的一电源设定数据;撷取并储存一硬件暂存器数据至该存储器;以及致能一系统控制中断操作,启始对多个中央处理器内部快取存储器进行的一清除操作,并根据该电源设定数据设置多个省电控制暂存器。本案另一实施态样涉及一种电脑系统。根据本案一实施例,该电脑系统包括一存储器以及一处理器。该存储器用以储存一uefi壳程序,其中该uefi壳程序用以支援该电脑系统中的多个uefi应用程序以进入一省电模式。该处理器用以操作性耦接该存储器,并用以操作性执行该uefi壳程序以执行以下操作:自该存储器取出一中央处理器暂存器数据,并储存该中央处理器暂存器数据至多个中央处理器暂存器;去能一系统控制中断操作;自该存储器取出一硬件暂存器数据,并储存该硬件暂存器数据至多个硬件暂存器;启始对多个中央处理器内部快取存储器进行的一清除操作;以及执行多个硬件控制器的一连结操作。附图说明图1为根据本案一实施例所绘示的电脑系统的示意图;图2为根据本案一实施例所绘示的uefi专用相容系统的示意图;图3为根据本案一实施例所绘示的uefi固件于执行中不同阶段的示意图;图4a为根据本案一实施例所绘示的进入省电模式的流程图;图4b为根据本案另一实施例所绘示的进入省电模式的流程图;图5为根据本案另一实施例所绘示的进入省电模式的步骤的细部流程图;图6为根据本案一实施例所绘示储存数据至存储器或回存自存储器取出的数据的次序的示意图;图7为根据本案一实施例所绘示的从省电模式回复的流程图;图8为根据本案另一实施例所绘示的从省电模式回复的步骤的细部流程图。具体实施方式本发明的多种实施例可提供用于执行支援省电模式的uefi固件的方法及系统。在以下的详细描述中,将会搭配图式进行说明,其所示的图式为具体的实施例或示例。然而,这些实施例仅是为了描述本发明及技术范围,而不应被解释为对本发明的一种限制。参照图式,其中类似的标号在该些图示中表示类似的元件,以下将会说明本发明各方面的实施例及例示性的操作环境。本发明公开内容提供电脑系统及其方法,用以执行支援进入省电模式及从省电模式回复的uefi固件。在进一步的实施例中,此一电脑系统包括(但不限于)笔记型电脑、个人电脑、电脑服务器、手持电脑装置(如行动电话及平板电脑)、及穿戴式装置。应注意到,在此一实施例中,关于「uefi固件」的用词一般用以指称在启动程序(bootloader)执行前执行的程序。此一固件可嵌入于uefi基本输入/输出系统中,或独立于基本输入/输出系统之外。举例而言,在本实施例中,uefi固件意指uefi壳程序(uefishell),其可在电脑系统通电时运行。图1及以下段落用以简单且普遍性描述实现本发明一个实施例的适当电脑环境。然而,本领域普通技术人员将认知到,本发明的实施例可实现于其它适当电脑环境中。再者,本领域普通技术人员将认知到,本发明的实施例可在其它电脑系统下实施,如多处理器系统、多处理器或可编程消费型电子元件、微处理器、大型主机(mainframecomputer)等。本发明的实施例亦可在分散式运算环境下实施,其中作业是在通过通讯网络连结的远端处理装置所执行。参照图1,以下说明实施本案多个实施例的例示性电脑架构。应了解到,虽然在以下实施例中及本文内容中是以传统的桌上型电脑或服务器电脑为例进行说明,然而本案的多个实施例可应用于任何型态的电脑系统。图1显示电脑系统100的例示性电脑架构,其可操作于以固件启始操作系统(operatingsystem,os)。图1中方块用以代表电脑架构的功能性元件,其未必会以独立的物理元件出现。此外,在不违背本案实施例的整体概念及目的的情况下,上述功能性元件可结合、分割、或移除。为提供上述功能,电脑系统100包括一基板(baseboard)或母板(motherboard),其为印刷电路板,其可通过系统汇流排或其它通讯路径连接其它元件或装置。在一实施例中,中央处理器102与芯片组104连动操作。中央处理器102可为标准中央处理器,其可进行电脑运行中所需要的计算及逻辑运算。中央处理器102,在此以及在其他实施例中,可包括一或多个微处理器、微控制器、现场可编程逻辑闸阵列(fieldprogrammablegatearray,fpga)、复杂可编程逻辑元件(complexprogrammablelogicdevice,cpld)、特殊应用集成电路(applicationspecificintegratedcircuit,asic)及/或任何其它电子计算装置。芯片组104包括北桥(northbridge)106及南桥(southbridge)108。北桥106提供中央处理器102与电脑系统100的其余部分之间的界面。北桥106还提供了一界面连接至一或多个随机存取存储器(randomaccessmemory,ram),用于作为电脑系统100中的主存储器114。北桥106更可能提供一界面至一板上图形适配器(on-boardgraphicsadapter)112。北桥106还可以通过一以太网络适配器(ethernetadapter)110以启用网络通讯功能。以太网络适配器110能够将电脑系统100经由网络连接至一或多个其他电脑。以太网络适配器110可进行连接的网络可包括区域网络(localareanetwork,lan)或广域网络(wideareanetwork,wan),例如区域网络及广域网络环境常见于办公室、企业范围计算机网络(enterprise-widecomputernetworks)、企业内网(intranet)及网际网络(theinternet)。北桥106连接到南桥108。南桥108是负责控制电脑系统100的许多输入/输出功能。特别是,南桥108可提供一或多个通用序列汇流排(universalserialbus,usb)界面116、一声音适配器124、一以太网络控制器134及一或多个通用输入/输出(generalpurposeinput/output,gpio)接脚118。南桥108还可以提供一个汇流排,用以连接周边卡装置(peripheralcarddevice),如符合bios启动规范(biosbootspecification,bbs)标准的scsi主汇流排适配器130,scsi主汇流排适配器130包括内建只读存储器131。在一实施例中,汇流排包括外设元件互连(peripheralcomponentinterconnect,pci)汇流排。南桥108还可以提供一系统管理汇流排132,用于管理电脑系统100中的各种元件。在南桥108运作时,也可利用电源管理电路126及脉冲产生电路128进行操作。南桥108还可用于提供一或多个界面来将大量储存装置(massstoragedevice)连接到电脑系统100。例如,在一实施例中,南桥108包括串行高级技术附件(serialadvancedtechnologyattachment,sata)适配器及先进技术附件100界面适配器(ata100interfaceadapter),其中串行高级技术附件适配器用于提供一或多个串行高级技术附件界面120,且先进技术附件100界面用于提供一或多个先进技术附件100界面(ata100port)122。串行高级技术附件界面120与先进技术附件100界面122可被连接至一或多个大量储存装置,其中大量储存装置可储存操作系统、应用程序、及其他数据。本领域普通技术人员已熟知的是,操作系统包括控制电脑的运作及分配资源的一组程序。应用程序是运行于在操作系统(或其它运行环境(runtimeenvironment))的顶层的软件,并且会使用电脑资源来执行电脑系统100的使用者所期望被执行的应用程序的特定任务。连接到南桥108及scsi主汇流排适配器(scsihostbusadapter)130的大量储存装置,及其相关的电脑可读取媒体,可供电脑系统100非挥发性储存(non-volatilestorage)的功能。虽然在本文中电脑可读取媒体指的是大容量储存装置,如硬盘/或光碟机,本领域技术人士应可理解的是,电脑可读取媒体可为电脑系统100可读取的任何媒体。举例而言(但不以此例为限),电脑可读取媒体可以包括电脑可读取媒体和通讯媒体,电脑可读取媒体包括挥发性(volatile)及非挥发性(non-volatile)、可移动和不可移动媒体,以任何方式或信息储存技术(例如,计算机可读取指令、数据结构、程序模块、或其他数据)实现。电脑可读取媒体包括(但不限于)ram、rom、eprom、eeprom、快闪存储器、或其他固态储存装置;cd-rom、dvd、hd-dvd、blu-ray、或其他光学储存装置;卡式磁带、磁带、磁片、或其它磁储存装置;或任何其他可用来储存所需信息且电脑可读取的媒体。南桥108可提供一低接脚数(lowpincount,lpc)界面,用于连接超级输入/输出(superi/o)装置138。超级输入/输出装置138是负责提供多个输入/输出连接埠,包括键盘连接埠、鼠标连接埠、序列界面、平行界面、以及其它类型的输入/输出连接埠。lpc界面或另一界面可被用以连接至储存媒体,如rom或非挥发性随机存取存储器(non-volatilerandomaccessmemory,nvram)137,例如快闪存储器。此一电脑储存媒体可用以储存固件136,其中固件136包括用以协助启动电脑系统100的指令及数据,及用以在电脑系统100内元件之间传送信息的指令及数据。然而,在其它实施例中固件136可储存于任何电脑系统100中的任何其它区域。固件136可包括符合uefi标准的程序码。应理解的是,固件136除了包括符合uefi标准的壳程序(shell)外,其它的固件类型及组合亦可能被包括在固件136中。举例而言,固件136可额外地或替代性地包括一个bios固件及/或其它现有技术中已熟知类型的固件。以下与图式搭配提供uefi固件136的运作的相关说明。应了解到,电脑系统100可以不包括所有显示于图1中的元件,且亦可能包括未直接显示于图1中的其它元件。或者,电脑系统100可以利用与图1完全不同的结构实现。参照图2,以下将说明关于符合uefi标准的系统的更多细节,此一系统可用以提供本案多种实现方式的操作环境。如图2所示,该系统包括一平台硬件(platformhardware)316及操作系统(operatingsystem,os)202。平台固件(platformfirmware)308可通过使用os启动载入器(osloader或bootloader或osbootloader)302从efi系统分区(efisystempartition)318取得os程序码。类似地,os启动载入器302可从其他位置取得os程序码,例如包括从连接的周边装置或者从固件136本身中取得。efi系统分区318亦可为一种结构性可共用系统磁盘分割(architecturallyshareablesystempartition)。因此,efi系统分区318是定义一分区及数据系统,其是设计以允许多个供应商之间能安全地共用大量储存装置。此外,亦可使用os分区320进行上述运作。参照图3,图3描述uefi固件启动操作系统的不同阶段。如图3所示,当电脑系统100通电时,本案一实施例中的uefi固件会被电脑系统100的处理器(如中央处理器102)执行。uefi固件将首先进入一个安全阶段(securityphase,secphase),其中在此阶段中还没有任何存储器在电脑系统100中被启始(或初始化)。在本阶段中,由于尚未有存储器被初始化,处理器的快取存储器(cache)被作为随机存取存储器(ram)使用来预先验证(pre-verify)中央处理器(cpu)、芯片组及主板。接着,uefi固件会进入预先可延伸固件界面初始化(pre-efiinitializat1n,pei)阶段,其中电脑系统100的中央处理器、芯片组、主板及存储器会被初始化。在驱动执行(driverexecut1n,dxe)阶段,启动服务(bootservice)、运行服务(runtimeservice)、及驱动程序执行调度服务(driverexecutingdispatcherservice)可被执行以初始化电脑系统100的任何其他硬件。继dxe阶段后,uefi固件进入启动装置选择(bootdeviceselecting,bds)阶段。在bds阶段,会尝试对操作系统对应的开机载入程序的控制装置以及各种驱动器进行初始化。在暂态系统负载(transientsystemload,tsl)阶段中,控制权将会被转交给操作系统以继续电脑系统100的启动,并且再到达运行时期(runtime,rt)阶段。图4a、图4b为本案一实施例中的一实施态样的示意图。如前所述,uefi固件可包括uefi壳程序(uefishell),其中uefi壳程序可后续运行uefi应用程序,如检测应用程序(diagnosticapplication)。在不同实施例中,uefi壳程序可独立于负责初始化uefi的os启动器的uefi固件之外。以下将搭配图4a、图4b,说明本案一实施例中一种使电脑系统得以通过电脑系统的uefi壳程序进入省电模式的方法。更进一步来说,在一实施例中,uefi壳程序可进入省电模式而使得在uefi壳程序下执行的任一或所有uefi应用程序可相应地进入省电模式。在此一实施例中,在uefi壳程序将控制权交给操作系统前,uefi壳程序可在前述开机的任何阶段中启始省电模式。在一实施例中,uefi壳程序是在接收到指令后进入省电模式。举例而言,检测工程师或使用者可输入指令以指示uefi壳程序进入省电模式。在其它不同实施例中,在电脑系统通电并执行uefi壳程序后,uefi壳程序可根据预设的闲置时间门槛,在使用者无动作后自动进入省电模式。如图4a、图4b所示,在一实施例中,进入省电模式的方法包括操作s1-s4,以下将进一步说明此些操作。操作s1包括启始省电函式库的呼叫操作(call)。在本实施例中,省电模式是指称acpi标准的s3睡眠阶段(s3sleepstage)。然而,在不同实施例中,省电模式可指称acpi标准或其它标准中的其它任何可节省耗电的状态。相应地,在省电模式是指称acpi标准的s3睡眠阶段的情况下,前述省电函式库意指睡眠状态或待机(suspend-to-ram,str)状态的程序。一般而言,acpi标准是由操作系统及操作系统上运行的应用程序实现。然而,在本案一实施例中,若运行于uefi壳程序上的应用程序符合acpi标准(即此些应用程序以shells3函式库(shells3library)运行),uefi壳程序可不通过操作系统执行此一工作。应注意到,在其它实施例中,省电模式可指称任何其它的睡眠模式(如s1模式或s2模式)或休眠模式(如s4模式)。操作s2包括撷取对应于前述省电函式库的电源设定数据。在本实施例中,以符合acpi标准的shells3函式库运行的uefi应用程序具有对应的电源设定数据,此些电源设定数据储存于此些uefi应用程序的acpi查照表(acpitable)中。举例而言,电源设定数据可包括用以说明输入/输出连接埠(input/outputport)位址的facp查照表(其用于基于acpi实现的核心(kernel))、差异系统描述查照表(differentiatedsystemdescriptiontable,dsdt)(其包含被核心中的驱动器所执行的字节码(bytecode)),或任何其它在acpi标准中的查照表。在此实施例中,此电源设定数据是暂时性被撷取并储存,以在进入省电模式前被进一步使用。操作s3包括撷取并储存硬件暂存器数据至存储器。在本实施例中,存储器指称电脑系统的随机存取存储器。然而,本案并不以随机存取存储器为限。在不同实施例中,亦可使用其它形式的存储器。举例而言,若在实现s4休眠模式的情况下,系统内文(systemcontext)可储存于用以备份的储存媒体,如硬盘。在本实施例中,前述硬件暂存器数据意指位于电脑系统中的硬件所对应的暂存器(下称硬件暂存器)中的数据。换言之,操作s3是在进入省电模式之前取得此些暂存器的状态的快照(snapshot)。在一实施例中,在操作s3后,可接续执行操作s31(参照第4b图),以中断硬件控制器的连接。应注意到,此一步骤可适应性省略。操作s4包括致能系统控制中断操作(systemcontrolinterrupt,sci),启始对多个中央处理器内部快取存储器(cpuinternalcaches)进行的清除操作(flushing),并根据前述电源设定数据设置多个省电控制暂存器(power-savingcontrolregister)。在本实施例中,致能系统控制中断操作,可令任何符合acpi标准且运行于uefi壳程序上的应用程序获得通知,并执行后续程序以准备进入省电模式。在进入省电模式前,可先致能唤醒事件(wake-upevent)。举例而言,根据在电源设定数据中\_s3物件(\_s3object)的数值,可设置pm1控制暂存器(pm1controlregister)(其用于固定特征(fixedfeature)或硬件装置),以令电脑系统可根据acpi标准中的s3睡眠模式,进入省电模式,并从省电模式中回复(唤醒)。以下搭配图5,说明图4a、图4b的操作s3中撷取并储存硬件暂存器数据至存储器的操作。在本实施例中,操作s3可更包括操作s301-s307,以下将进一步说明此些操作。操作s301包括撷取标准硬件暂存器(standardhardwareregister)数据,而操作s302包括将此些标准硬件暂存器数据存入存储器(如随机存取存储器)。在本实施例中,操作s301与操作s302可依序储存以下数据至存储器:8259可编程中断控制数据(8259programmableinterruptcontroller(pic)data)、高精度事件计时器数据(highprecisioneventtimer(hpet)data)、外设元件互连(pci)数据及外设元件互连express(pci-e)数据,输入/输出高级可编程中断控制器(input/outputadvancedprogrammableinterruptcontroller,i/oapic)数据、及本地高级可编程中断控制器(localadvancedprogrammableinterruptcontroller,localapic)数据。在本案一实施例中,操作s303-s307可依序执行。然而,在其它实施例中,操作s303-s307的执行次序可依实际需求进行调整。操作s303包括启动储存芯片组专用装置暂存器(chipsetspecificdeviceregister)数据至存储器的程序。在本实施例中,电脑系统的芯片组专用装置暂存器数据是被撷取而后储存至存储器。应注意到,直到此时,电脑系统仍用uefishells3函式库(即前述省电函式库)执行此些操作。在需要额外协助以储存芯片组专用装置暂存器数据至存储器的状况下,于操作s304中,电脑系统可通过对系统bios(systembios)的系统呼叫(systemcall),致使系统bios协助储存芯片组专用装置暂存器数据至存储器。举例而言,通过对系统bios的系统呼叫(systemcall),pm控制暂存器(pmcontrolregister)中的数据可储存至存储器。在操作s304后,流程继续利用uefishells3函式库进行。操作s305及操作s306依循类似于操作s303及操作s304的模式,唯其并不是撷取并储存芯片组专用装置暂存器数据至存储器。操作s305及操作s306是撷取并储存板专用装置暂存器(broadspecificdeviceregister)数据至存储器。在需要额外协助以储存板专用装置暂存器数据至存储器的状况下,电脑系统可通过对系统bios的系统呼叫,致能系统bios协助储存板专用装置暂存器数据至存储器。在操作s307中,流程回到利用uefishells3函式库进行,以储存中央处理器暂存器(cpucache)数据至存储器。图6为在本案一实施例中操作s301-s307依照f01-f09的次序储存数据至存储器的例示。应注意到,储存至存储器的每一笔数据的大小及位置不以此实施例为限。在不同实施例中,次序、大小、及位置皆可依实际需求进行调整。图7、图8揭示本案一实施例中从省电模式回复或唤醒的方法,此方法包括操作r1-r5。在一实施例中,在实际上开始唤醒程序之前,可先执行确认操作,以确认电脑系统处于省电模式中。操作r1包括自前述存储器取出中央处理器暂存器数据,并回存中央处理器暂存器数据(如回存中央处理器暂存器数据至多个中央处理器暂存器)。在本实施例中,此一操作可用组合码(assemblycode)启始,且此一操作可包括启始全局描述符表(globaldescriptortable,gdt)及/或中断描述符表(interruptvectortable,idt),以在电脑系统为x64架构的状况下,致能paging64模式,并而后回存自存储器取出的中央处理器暂存器数据。操作r2包括使系统控制中断操作(systemcontrolinterrupt,sci)失效。在本实施例中,可通过uefi系统管理模式(systemmanagementmode,smm)控制协定的trigger功能(triggerfunction),使acpi系统控制中断操作(acpisystemcontrolinterrupt(sci))失效,以令电脑系统使s/w系统管理中断操作(s/wsystemmanagementinterrupt(smi))失效,或直接将acpipm1控制暂存器的位元0(bit0)写为数值零。操作r3包括自存储器取出前述硬件暂存器数据,并回存前述硬件暂存器数据(如回存前述硬件暂存器数据至前述硬件暂存器)。在本实施例中,参照图6,操作r3以硬件暂存器数据存入存储器的相反次序,回存此些硬件暂存器数据。然而,在其它不同实施例中,回存此些硬件暂存器数据的次序可依实际需求进行调整。操作r4包括启始对中央处理器内部快取存储器(cpuinternalcache)进行的清除操作(flushing)。在本实施例中,是执行对wbinvd功能(writebackandinvalidatecache)的呼叫操作(call),以清除可能遗留于中央处理器内部快取存储器中程序码的脏线(dirtylines)。这可确保电脑系统从省电模式唤醒时以全新的状态启动。亦即,对中央处理器内部快取存储器进行的清除操作是确保需被回存的数据可被确实回存,而写入此些数据对应的硬件位置。操作r5包括执行前述硬件控制器的重新连接操作。在本实施例中,此些硬件控制器是通过ueficonnectcontrollerbootservice重新连接。一旦重新连接所有的硬件控制器,电脑系统即从省电模式唤醒,并回复在进入省电模式前uefi壳程序的应用程序的运行状态。图8为根据本案一实施例所绘示的操作r3的细部流程图。在本实施例中,操作r301-r305回存前述硬件暂存器数据至存储器。操作r301包括回存自存储器取出的前述芯片组专用装置暂存器数据至电脑系统中的对应位置。在需要额外协助以执行此一操作的情况下,于操作r302中,可进行对系统bios的系统呼叫,以协助回存自存储器取出的前述芯片组专用装置暂存器数据。而后,流程回到利用uefishells3函式库进行。操作r303包括回存自存储器取出的前述板专用装置暂存器数据至电脑系统中的对应位置。类似地,在需要额外协助的情况下,可执行对系统bios的系统呼叫,以协助回存自存储器取出的前述板专用装置暂存器数据。操作r305包括回存自存储器取出的前述标准硬件暂存器数据。在本实施例中,本操作与操作s302的次序相反。在一实施例中,本操作依次序执行:回存前述本地高级可编程中断控制器(localapic)数据、回存前述输入/输出高级可编程中断控制器(i/oapic)数据、回存前述外设元件互连(pci)数据及前述外设元件互连express(pci-e)数据、回存前述高精度事件计时器数据(highprecisioneventtimer(hpet)data)、启始电脑系统的8254可编程内部计时器(8254programmableintervaltimer)、回存前述8259可编程中断控制数据(8259programmableinterruptcontroller(pic)data)。虽然本发明已以实施例公开如上,然其并非用以限定本发明,本领域普通技术人员,在不脱离本发明的精神和范围内,当可作各种的更动与润饰,因此本发明的保护范围当视后附的权利要求范围所界定者为准。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1