一种电脑系统自动启动方法及电源管理压力测试方法与流程

未命名 08-25 阅读:139 评论:0


1.本发明涉及电脑自动化测试技术领域,尤其是涉及一种电脑系统自动启动方法及电源管理压力测试方法。


背景技术:

2.我国行业内百花齐放诞生了一批优秀的国产cpu,产品性能不断优化,使用场景不断扩大,为构建安全、自主、可控的国产化计算平台奠定了基础。
3.但国产处理器规范不尽相同,和intel、amd区别较大,传统适用于intel、amd cpu平台的电源管理(acpi)压力方法在使用国产cpu的平台上常常不能正常工作。acpi规范提出的目的是降低系统功耗,提高移动设备的续航,目前已被广泛使用在各种电子设备。
4.intel、amd cpu平台使用rtc作为自动唤醒,如图1所示,现有技术的电源管理(acpi)压力方法如下:设置rtc定时-》rtc触发中断-》电源ic启动电源-》cpu开机;在国产cpu项目中,为确保安全性,大多数不设计rtc开机唤醒硬件支持,因此无法自动进行电源管理(acpi)压力测试,以龙芯3a4000平台为例,参考图2,其中rtc中断电路rtc_3v将连接到cpu的桥片7a1000,因此在s5(冷重启)状态主板掉电情况下cpu供电已经切断无法实现定时自动开机。


技术实现要素:

5.本发明的目的在于解决在保证安全性的情况下实现电脑系统自动启动的问题,提供一种电脑系统自动启动方法及电源管理压力测试方法。
6.为实现上述目的,本发明采用以下技术方案:
7.一种电脑系统自动启动方法,包括以下步骤:
8.a1:将唤醒启动或开机启动的预设倒计时秒数写入嵌入式控制器的寄存器;
9.a2:若嵌入式控制器检测到进入指定电源状态则读取所述嵌入式控制器的寄存器的数值,根据所述预设倒计时秒数开始倒计时;
10.a3:倒计时结束后所述嵌入式控制器控制cpu根据测试项目启动唤醒或开机时序,以实现电脑系统单次自动启动。
11.一些实施例中,步骤a1具体包括以下步骤:
12.a11:通过命令状态端口发送写入命令,嵌入式控制器进入等待数据状态;
13.a12:通过数据端口发送数据地址和预设倒计时秒数至线性预测编码总线;
14.a13:嵌入式控制器根据命令从线性预测编码总线上获得预设倒计时秒数并存放到嵌入式控制器的寄存器,完成数据写入。
15.一些实施例中,步骤a1还包括以下步骤:写入后cpu读取并校验嵌入式控制器的寄存器的数值,判断是否将倒计时秒数正确写入嵌入式控制器,若写入失败则自动重写。
16.一些实施例中,自动重写的最大次数设置为5次。
17.一些实施例中,所述读取嵌入式控制器的寄存器的数值包括以下步骤:
18.b1:发送读取命令并把需要读取的地址发送给嵌入式控制器;
19.b2:嵌入式控制器获得命令和地址后,把嵌入式控制器的寄存器的数据放入数据端口,将输出缓冲器满置1;
20.b3:cpu通过数据端口读取数据。
21.本发明还提供一种电源管理压力测试方法,包括以下步骤:
22.c1:设置测试参数,所述测试参数包括测试项目、测试项目对应的唤醒启动或开机启动的预设倒计时秒数及总循环次数;
23.c2:将测试项目对应的唤醒启动或开机启动的预设倒计时秒数写入嵌入式控制器的寄存器;
24.c3:调用系统接口按照所述测试项目执行动作,进入测试项目对应的电源状态;
25.c4:若嵌入式控制器检测到进入测试项目对应的指定电源状态则读取所述寄存器的数值,根据所述预设倒计时秒数开始倒计时;
26.c5:倒计时结束后嵌入式控制器根据测试项目启动唤醒或开机时序;
27.c6:判断是否到达所述总循环次数,若否则进入步骤c2,若是则停止测试输出测试结果,以实现电脑系统多次循环启动。
28.一些实施例中,步骤c1中所述预设倒计时秒数为1-255s。
29.一些实施例中,所述测试项目包括:睡眠状态测试、休眠状态测试、冷重启状态测试。
30.本发明还提供一种计算机可读介质,其上存储有计算机程序,所述程序被处理器执行时实现上述的方法的步骤。
31.本发明还提供一种计算机系统,包括至少一个计算机,每个计算机包括处理器和存储器,所述至少一个计算机的处理器执行存储器中的程序指令执行上述的方法的步骤。
32.本发明具有如下有益效果:
33.本发明的电脑系统自动启动方法通过将唤醒启动或开机启动的预设倒计时秒数写入嵌入式控制器,倒计时结束后嵌入式控制器控制cpu根据测试项目启动唤醒或开机时序,能够实现电脑系统单次自动启动,满足不同的启动需求;传统电源管理压力测试方法即rtc方法在系统端有规范接口,开放接口容易被系统病毒实施攻击,较于rtc方法,本发明提出的电源管理压力测试方法通过利用嵌入式控制器实现电源管理压力测试,不依赖标准化的系统接口的设置使病毒无法进行攻击,保证了高的安全性。本发明能够在不破坏系统安全性设计以及系统不完善的情况下实现自动化测试,提高开发效率,降低协同难度。
34.进一步地,本发明实施例通过使用写入后读取校验的方法判断是否将倒计时秒数正确写入嵌入式控制器,写入失败时自动重写的设置提高了将倒计时秒数写入嵌入式控制器的寄存器的成功率,保证了电源管理压力测试的顺利进行。
附图说明
35.图1是背景技术中现有技术的rtc自动唤醒电路示意图;
36.图2是背景技术中无rtc开机唤醒硬件支持的龙芯3a4000平台的rtc电路示意图;
37.图3是本发明实施例中的电脑系统自动启动方法流程图;
38.图4是本发明实施例中的电源管理压力测试方法流程图;
39.图5是本发明实施例中具体的电源管理压力测试方法流程图;
40.图6本发明实施例中国产龙芯中科处理器平台便携笔记本电脑装置的系统示意图。
具体实施方式
41.以下对本发明的实施方式做详细说明。应该强调的是,下述说明仅仅是示例性的,而不是为了限制本发明的范围及其应用。
42.如图3所示,本实施例提出了全新的通过ec实现自动开机/唤醒启动方法,本实施例的电脑系统自动启动方法包括以下步骤:
43.a1:将唤醒启动或开机启动的预设倒计时秒数写入嵌入式控制器的寄存器(ec寄存器);
44.a2:若嵌入式控制器(ec)检测到进入指定电源状态则读取所述嵌入式控制器的寄存器的数值,根据所述预设倒计时秒数开始倒计时;
45.a3:倒计时结束后所述嵌入式控制器控制cpu根据测试项目启动唤醒或开机时序,以实现电脑系统单次自动启动。
46.对于支持acpi的设备,操作系统可根据当前任务需求使用acpi接口控制设备的电源状态,对处于空闲的设备进行电源管理以降低能耗。动态电源管理对系统软硬件协调,硬件供电可靠性都有较高的要求,设计不当会引起死机,不开机,卡顿,功能异常等情况。目前已有的测试方法大多针对windows操作系统+x86cpu,本发明实施例提出的测试方法针对使用ec的pc平台开发,填补业内空白。本实施例通过ec实现自动开机/唤醒启动的方法能够满足研发及出厂测试产品的电源管理(acpi)压力测试,使用ec的pc平台均可以使用本技术方案。
47.如图4、图5所示,本发明实施例的工作流程如下:
48.1.首先运行测试程序并传入参数,包括以下参数:测试项目(可选择s3(睡眠)测试,s4(休眠)测试,s5(冷重启)测试);cycle(总循环次数),设置总循环次数必须是大于0的整数;预设倒计时唤醒/开机秒数,其范围为[1-255]。
[0049]
2.按照设定的参数运行,将倒计时秒数传递给ec;
[0050]
3.调用系统接口(lpc总线接口)按传入的参数执行动作(s3,s4,s5),系统进入相应的状态后等待ec被唤醒/开机;
[0051]
4.cpu通知ec已经进入s3或s4或s5状态,ec开始倒计时读秒;
[0052]
5.读秒结束时ec控制cpu跑唤醒/开机时序重新进入操作系统;
[0053]
6.判断循环是否达到cycle数,若循环达到cycle数则输出压力测试结果,否则重复以上2到6步骤。
[0054]
本发明实施例用以解决测试工具缺失,不支持部分处理器,需依赖特定硬件设计的问题。实施例使用ec作为自动唤醒硬件,在不需要额外增加硬件设计的情况下实现自动开关机、自动唤醒的功能,测试中ec能自动根据系统所处的acpi状态,设定的倒计时值进行倒计时,在倒计时结束时,如果当前acpi状态是s5,则执行s0开机时序,如果当前状态是s3,则执行s3唤醒时序。如果系统当前处于s0正常运行状态,倒计时为暂停状态。系统端软件和ec进行配合到达找到可控制循环测试执行acpi测试的目的,可包括4种acpi压力测试:
reboot(热重启)测试、s5(冷重启)测试、s3(睡眠)测试、s4(休眠)测试。其中s3、s4、s5测试用到了本发明实施例中的核心技术ec唤醒。本实施例可用于评估acpi功能的可靠性,发现其中存在的问题。
[0055]
在量产应用中未发现因ec寄存器写入失败导致测试无法正常完成的情况但在实验时发现在多次写入ec寄存器中存在失败的情况,为防止此情况本实施例使用写入后读取校验的方法判断是否正确写入,写入失败时自动重试,最大重写次数设置为5次。
[0056]
步骤2中,系统访问ec接口并将倒计时秒数传递给ec的具体方式及步骤如下:
[0057]
本实施例针对不同的平台使用了两种访问ec ram方法,龙芯、兆芯、曙光平台使用io port的方式访问,而飞腾平台,本身没有定义io port接口,使用了内存映射的方式进行访问。数据访问遵循ec规范,使用lpc总线进行通信,使用62h,66h两个端口,其中62h是命令状态端口,66h是数据端口。
[0058]
如图6所示,本实施例中的龙芯中科处理器平台便携笔记本电脑装置包含有cpu、ddr(双倍速率同步动态随机存储器)、bios rom(基本输入输出系统)、桥片、集成显卡、dvo(直接视频接口)、显示器、pci(外设部件互连标准)控制器、hda(高保真音频)控制器、声卡、ec(嵌入式控制器)等部件。cpu与桥片之间通过ht总线连接,桥片内部有集成显卡,集成音频控制had,pci控制器;桥片的pci总线上挂着存储操作系统的硬盘,桥片的lpc总线与ec相连从而使得cpu能够通过lpc的62h/66h端口访问ec。ec内部设计有定时器(timer),本发明实施例利用此定时器进行倒计时工作。
[0059]
命令及数据发送、读数据步骤如下:
[0060]
发送命令:(可发送读,写等命令)
[0061]
等待ibe(input buffer empty)
[0062]
通过62h端口发送命令
[0063]
等待ibe(这次等待ibe是确认ec已经取走数据)
[0064]
发送数据:
[0065]
等待ibe(input buffer empty)
[0066]
通过66h端口发送数据
[0067]
等待ibe(这次等待ibe是确认ec已经取走数据)
[0068]
读数据:
[0069]
等待ibe(input buffer empty)
[0070]
等待obf(output buffer full)
[0071]
通过66h端口读取数据
[0072]
读ec ram(ec寄存器):
[0073]
发送读命令(执行发送命令过程)
[0074]
发送地址数据(执行发送数据过程)
[0075]
读取数据(执行读数据过程)
[0076]
写ec ram:
[0077]
a)发送写命令(执行发送命令过程)
[0078]
b)发送地址数据(执行发送数据过程)
[0079]
c)发送写入值数据(执行读数据过程)
[0080]
lpc通信每次只能传输1byte数据,以将预设倒计时秒数写入ec ram为例,首先压力测试程序执行发送命令过程发送写入命令,ec进入等待数据状态,接着执行两次发送数据过程依次发送地址和倒计时值,ec根据命令从lpc总线上获得数据并存放到ec ram,完成写入数据到ec ram。
[0081]
从ec ram读取数据过程:压力测试程序执行发送命令发送读取命令,成功后执行读数据过程把需要读取的地址发送给ec,ec获得命令和地址后,把数据放入66h端口,obf(输出缓冲器满)置1,cpu从66h端口把数据取走,完成从ec ram读取数据。
[0082]
步骤4及步骤5中在秒事件中加入状态检查,当处于s3或s5状态,且嵌入式控制器的寄存器倒计时值》0时,对嵌入式控制器的寄存器值进行递减,定时器每秒倒计时一次,嵌入式控制器的寄存器值减一,递减到0时触发唤醒。利用定时器秒事件每秒触发一次的特性完成倒计时且不增加ec的负担。
[0083]
较于传统rtc方法,本实施例提出的方法使用高度定制化的ec实现,本发明实施例不依赖系统接口,在不破坏系统安全性设计的情况下,以及系统不完善时实现自动化测试,提供开发效率,降低协同难度。传统rtc方法在系统端有规范接口,开放接口容易被系统病毒实施攻击,使用本实施例,在系统端没有接口,病毒无法进行攻击,安全性非常高。
[0084]
本发明实施例是全新的自动化测试技术,通过命令行参数设定测试项目、循环次数和倒计时时间,使用命令行方式运行,即使不支持图形界面的服务器版操作系统也能运行。本发明实施例不局限于国产自主cpu平台,适用于所有使用ec(embedded controller)作电源管理ic方案的pc平台。本实施例能有效检验pc的acpi功能的稳定性,能在pc研发过程中暴露问题点,从而提高pc产品质量以及开发进度。
[0085]
实验例
[0086]
以龙芯3a5000平台为例进行acpi测试实例,相关参数如下:
[0087]
机型:lx41a2
[0088]
cpu:龙芯3a5000
[0089]
显卡:景嘉微jm7201
[0090]
桥片:龙芯7a1000
[0091]
内存:紫光ddr4 3200 8g
[0092]
系统:uos v20 1032
[0093]
ec:ite8987 fw:lx41a2ecv57.bin
[0094]
本实验分为两次,使用10台相同的测试样机作为实验对象,第一组数据来自不稳定系统内核+bata版bios,第二组数据来自稳定内核+稳定bios。
[0095]
内核版本:4.19.0#3200
[0096]
bios版本:kl4.014.ls3as0007a_beat7.r.test.fd
[0097]
第一组的acpi检测结果如下表1所示:
[0098]
表1
[0099][0100]
稳定组:
[0101]
内核4.19.0#3218 bios版本:kl4.015.211015-2k.fd
[0102]
第二组的acpi检测结果如下表2所示:
[0103]
表2
[0104]
编号#2#3#4#5#7#8#9#10#11#12s3(500个循环)通过通过通过通过通过通过通过通过通过通过s4(500个循环)通过通过通过通过通过通过通过通过通过通过s5(300个循环)通过通过通过通过通过通过通过通过通过通过
[0105]
参考表1、表2,两组acpi测试顺利执行完成,检查系统功能无异常记录“通过”,如果出现异常情况则记录出现问题时测试已执行的循环次数以及异常现象。从实验数据检验可以看出,不稳定组出现黑屏死机等较多异常情况,更新稳定固件以及稳定操作系统内核后,所有测试样机顺利通过测试且无异常,本实施例中的电源管理压力测试方法能有效发现系统稳定性问题。
[0106]
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
[0107]
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0108]
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0109]
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一
个方框或多个方框中指定的功能的步骤。
[0110]
以上内容是结合具体/优选的实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,其还可以对这些已描述的实施方式做出若干替代或变型,而这些替代或变型方式都应当视为属于本发明的保护范围。在本说明书的描述中,参考术语“一种实施例”、“一些实施例”、“优选实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。尽管已经详细描述了本发明的实施例及其优点,但应当理解,在不脱离专利申请的保护范围的情况下,可以在本文中进行各种改变、替换和变更。

技术特征:
1.一种电脑系统自动启动方法,其特征在于,包括以下步骤:a1:将唤醒启动或开机启动的预设倒计时秒数写入嵌入式控制器的寄存器;a2:若嵌入式控制器检测到进入指定电源状态则读取所述嵌入式控制器的寄存器的数值,根据所述预设倒计时秒数开始倒计时;a3:倒计时结束后所述嵌入式控制器控制cpu根据测试项目启动唤醒或开机时序,以实现电脑系统单次自动启动。2.如权利要求1所述的方法,其特征在于,步骤a1具体包括以下步骤:a11:通过命令状态端口发送写入命令,嵌入式控制器进入等待数据状态;a12:通过数据端口发送数据地址和预设倒计时秒数至线性预测编码总线;a13:嵌入式控制器根据命令从线性预测编码总线上获得预设倒计时秒数并存放到嵌入式控制器的寄存器,完成数据写入。3.如权利要求1所述的方法,其特征在于,步骤a1还包括以下步骤:写入后cpu读取并校验嵌入式控制器的寄存器的数值,判断是否将倒计时秒数正确写入嵌入式控制器,若写入失败则自动重写。4.如权利要求3所述的方法,其特征在于,自动重写的最大次数设置为5次。5.如权利要求3所述的方法,其特征在于,所述读取嵌入式控制器的寄存器的数值包括以下步骤:b1:发送读取命令并把需要读取的地址发送给嵌入式控制器;b2:嵌入式控制器获得命令和地址后,把嵌入式控制器的寄存器的数据放入数据端口,将输出缓冲器满置1;b3:cpu通过数据端口读取数据。6.一种电源管理压力测试方法,其特征在于,包括以下步骤:c1:设置测试参数,所述测试参数包括测试项目、测试项目对应的唤醒启动或开机启动的预设倒计时秒数及总循环次数;c2:将测试项目对应的唤醒启动或开机启动的预设倒计时秒数写入嵌入式控制器的寄存器;c3:调用系统接口按照所述测试项目执行动作,进入测试项目对应的电源状态;c4:若嵌入式控制器检测到进入测试项目对应的指定电源状态则读取所述寄存器的数值,根据所述预设倒计时秒数开始倒计时;c5:倒计时结束后嵌入式控制器根据测试项目启动唤醒或开机时序;c6:判断是否到达所述总循环次数,若否则进入步骤c2,若是则停止测试输出测试结果,以实现电脑系统多次循环启动。7.如权利要求6所述的方法,其特征在于,步骤c1中所述预设倒计时秒数为1-255s。8.如权利要求6所述的方法,其特征在于,所述测试项目包括:睡眠状态测试、休眠状态测试、冷重启状态测试。9.一种计算机可读介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1-5任一项所述的方法的步骤。10.一种计算机系统,其特征在于,包括至少一个计算机,每个计算机包括处理器和存储器,所述至少一个计算机的处理器执行存储器中的程序指令执行权利要求6-8任一项所
述的方法的步骤。

技术总结
本发明提供一种电脑系统自动启动方法及电源管理压力测试方法,自动启动方法包括以下步骤:A1:将唤醒启动或开机启动的预设倒计时秒数写入嵌入式控制器的寄存器;A2:若嵌入式控制器检测到进入指定电源状态则读取所述嵌入式控制器的寄存器的数值,根据所述预设倒计时秒数开始倒计时;A3:倒计时结束后所述嵌入式控制器控制CPU根据测试项目启动唤醒或开机时序,以实现电脑系统单次自动启动。本发明的电脑系统自动启动方法能够实现电脑系统单次自动启动,满足不同的启动需求;本发明的电源管理压力测试方法能够在不破坏系统安全性设计以及系统不完善的情况下实现自动化测试,提高开发效率,降低协同难度。降低协同难度。降低协同难度。


技术研发人员:卢庆波
受保护的技术使用者:深圳三诺信息科技有限公司
技术研发日:2023.02.03
技术公布日:2023/8/24
版权声明

本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

航空之家 https://www.aerohome.com.cn/

飞机超市 https://mall.aerohome.com.cn/

航空资讯 https://news.aerohome.com.cn/

分享:

扫一扫在手机阅读、分享本文

相关推荐