CN116737472B - 一种测试存储器时序训练过程的方法及装置 - Google Patents
一种测试存储器时序训练过程的方法及装置 Download PDFInfo
- Publication number
- CN116737472B CN116737472B CN202211325408.7A CN202211325408A CN116737472B CN 116737472 B CN116737472 B CN 116737472B CN 202211325408 A CN202211325408 A CN 202211325408A CN 116737472 B CN116737472 B CN 116737472B
- Authority
- CN
- China
- Prior art keywords
- restarting
- restart
- training
- ddr
- memory
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000012549 training Methods 0.000 title claims abstract description 166
- 238000012360 testing method Methods 0.000 title claims abstract description 133
- 238000000034 method Methods 0.000 title claims abstract description 84
- 230000008569 process Effects 0.000 title claims abstract description 49
- 238000004519 manufacturing process Methods 0.000 claims abstract description 65
- 238000010998 test method Methods 0.000 claims description 3
- 230000004044 response Effects 0.000 claims description 2
- 230000032683 aging Effects 0.000 abstract description 7
- 230000007547 defect Effects 0.000 abstract description 6
- 230000005856 abnormality Effects 0.000 abstract 1
- 239000010410 layer Substances 0.000 description 19
- 230000002159 abnormal effect Effects 0.000 description 10
- 230000006870 function Effects 0.000 description 7
- 230000008901 benefit Effects 0.000 description 6
- 238000012545 processing Methods 0.000 description 6
- 230000001960 triggered effect Effects 0.000 description 5
- 238000004458 analytical method Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 238000004590 computer program Methods 0.000 description 2
- 230000003111 delayed effect Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 230000035882 stress Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 239000012792 core layer Substances 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 230000008054 signal transmission Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本申请提供了一种测试存储器时序训练过程的方法,在电子设备的生产线的需要反复重启的测试阶段(如老化测试阶段)增加了对于DDR Training的测试过程,在电子设备每次重启时进行一次DDR Training。每一次开机启动过程都会对存储系统产生较大的压力。依赖开机启动过程对存储系统的压力来激发电子设备的潜在缺陷,促使电子设备提前暴露DDR故障或DDR Training得到的时序参数的异常,从而提前拦截此类故障的电子设备,最终提高出厂设备的良品率。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种测试存储器时序训练过程的方法及装置。
背景技术
在双倍速率同步动态随机存储器(double data rate,DDR)布线没有等长约束的条件下,信号的时序不一致,这就导致信号传输快慢不一,例如,DDR的地址(Addr)信号、命令(Cmd)信号相对时钟(CLK)信号有延时,数字输出(DQ)信号相对数据采样信号(DQS)有延时。因此,需要做DDR Training(训练)。DDR Training是找到一套时序参数,使时钟信号与写数据信号同步,并保存该时序参数。
电子设备在开机过程中,DDR会训练一套时序参数,如果这套时序参数异常会导致电子设备无法开机,或者出现严重的稳定性问题,如闪退、Panic等异常现象。因此,为确保电子设备的质量,如何提前发现电子设备内DDR的潜在缺陷成为亟需解决的技术问题。
发明内容
有鉴于此,本申请提供了一种测试存储器时序训练过程的方法及装置,以解决上述至少部分问题,其公开的技术方案如下:
第一方面,本申请提供了一种测试存储器时序训练过程的方法,应用于电子设备,电子设备包括存储器,方法包括:控制电子设备进行预设次数次重启,针对重启次数达到预设次数前的每一次重启,都执行一次存储器时序训练DDR Training的流程;针对首次重启,读取第一存储空间存储的存储器的原始时序参数,将原始时序参数存储至第二存储空间,并擦除第一存储空间存储的原始时序参数,执行DDR Training的流程得到新的时序参数,并存储至第一存储空间;针对首次重启之后最后一次重启之前的每一次重启,擦除第一存储空间存储的时序参数,执行DDR Training的流程得到新的时序参数并存储至第一存储空间;以及,针对最后一次重启,擦除第一存储空间中存储的上一次DDR Training得到的时序参数,并将第二存储空间内存储的原始时序参数写入第一存储空间。可见,在电子设备每次重启时进行一次DDR Training。每一次开机启动过程都会对存储系统产生较大的压力。依赖开机启动过程对存储系统的压力来激发电子设备的潜在缺陷,促使电子设备提前暴露DDR故障或DDR Training得到的时序参数异常,从而提前拦截此类故障的电子设备,最终提高出厂设备的良品率。
在第一方面一种可能的实现方式中,电子设备包括测试开关,该方法还包括:获取测试开关的状态信息;基于状态信息确定测试开关处于开启状态后,执行控制电子设备进行预设次数次重启,针对重启次数达到预设次数前的每一次重启,都执行一次DDRTraining的流程的步骤。这样可以通过测试开关灵活控制是否进行DDR Training测试,避免无需DDR Training测试的场景也进行DDR Training测试的现象发生,节省系统资源,提高其他测试项的效率。
在第一方面另一种可能的实现方式中,电子设备包括反复重启主任务和DDRTraining子任务;控制所述电子设备进行预设次数次重启的过程,包括:反复重启主任务触发电子设备重启之前,获取DDR Training的状态结果;若状态结果是未结束,反复重启主任务等待预设时长后触发电子设备重启;若状态结果是已结束,反复重启主任务立即触发电子设备重启。
在第一方面又一种可能的实现方式中,电子设备内设置有重启次数参数;所述重启次数的确定过程包括:读取重启次数参数;若重启次数参数的数值与预设初始数值相同,确定本次重启是首次重启;若重启次数参数的数值与预设次数对应的数值,确定本次重启是预设次数的最后一次重启;若重启次数参数的数值大于预设初始数值小于预设次数对应的数值,确定本次重启不是首次重启且不是最后一次重启。
在第一方面再一种可能的实现方式中,所述控制所述电子设备进行预设次数次重启,包括:接收测试系统发送的反复重启测试指令;响应所述反复重启测试指令,控制所述电子设备进行预设次数次重启。这样,无需手动操作即可触发电子设备反复重启,效率高且节约人工成本。
在第一方面另一种可能的实现方式中,电子设备包括操作系统,操作系统包括测试应用、生产服务和存储器驱动;控制电子设备进行预设次数次重启,针对重启次数达到预设次数前的每一次重启,都执行一次DDR Training的流程,包括:测试应用控制电子设备进行预设次数次重启,在重启次数达到预设次数前的每一次重启之前,测试应用都调用生产服务,由生产服务触发存储器驱动进行一次DDR Training。
在第一方面又一种可能的实现方式中,电子设备包括操作系统,操作系统包括测试应用、生产服务和存储器驱动,测试应用包括反复重启主任务;针对首次重启,读取第一存储空间存储的存储器的原始时序参数,将原始时序参数存储至第二存储空间,包括:反复重启主任务启动后创建DDR Training子任务;DDR Training子任务读取重启次数参数,解析重启次数参数确定本次重启是首次重启后,调用生产服务并传递首次重启的信息;生产服务接收首次重启的信息后,向存储器驱动传递第一DDR Training指令,所述第一DDRTraining指令包括首次重启的信息;存储器驱动响应第一DDR Training指令,读取第一存储空间存储的存储器的原始时序参数,并存储至第二存储空间。
在第一方面再一种可能的实现方式中,电子设备包括操作系统,操作系统包括测试应用、生产服务和存储器驱动,测试应用包括反复重启主任务,反复重启主任务启动后创建DDR Training子任务;针对最后一次重启,擦除第一存储空间存储的上一次DDRTraining得到的时序参数,并将第二存储空间内存储的原始时序参数写入第一存储空间,包括:DDR Training子任务读取重启次数参数,基于重启次数参数确定本次重启是预设次数中的最后一次重启,调用生产服务并传递最后一次重启的信息;生产服务接收最后一次重启的信息后,向存储器驱动传递第二DDR Training指令,所述第二DDR Training指令包括最后一次重启的信息;存储器驱动响应第二DDR Training指令,擦除第一存储空间存储的上一次DDR Training得到的时序参数,以及,将第二存储空间内存储的原始时序参数写入第一存储空间。可见,在确定本次重启是预设次数中的最后一次重启,则恢复首次重启时备份的时序参数,避免DDR Training测试过程对电子设备内的原始时序参数产生影响。
在第一方面另一种可能的实现方式中,电子设备包括操作系统,操作系统包括测试应用、生产服务和存储器驱动,测试应用包括反复重启主任务,反复重启主任务启动后创建DDR Training子任务;控制电子设备进行预设次数次重启的过程,包括:反复重启主任务触发电子设备重启之前,调用生产服务获取当前DDR Training的状态结果;生产服务向存储器驱动传递DDR Training状态获取指令;存储器驱动响应DDR Training状态获取指令,向生产服务返回当前DDR Training的状态结果;生产服务向反复重启主任务返回当前DDRTraining的状态结果;反复重启主任务解析状态结果,若状态结果是未结束,反复重启主任务等待预设时长后触发电子设备重启,若状态结果是已结束,反复重启主任务立即触发电子设备重启。可见,反复重启主任务在重启之前检测当前DDR Training的状态,若当前DDRTraining状态是未结束,则等待预设时长后再重启,以保证本次DDR Training完成后重启。
第二方面,本申请实施例还提供了一种电子设备,电子设备包括:一个或多个处理器、存储器和触摸屏;存储器用于存储程序代码;处理器用于运行程序代码,使得电子设备实现如第一方面任一项的测试存储器时序训练过程的方法。
第三方面,本申请实施例还提供了一种计算机可读存储介质,其上存储有指令,当指令在电子设备上运行时,使得电子设备执行如第一方面任一项的测试存储器时序训练过程方法。
第四方面,本申请实施例还提供了一种计算机程序产品,其上存储有执行,当计算机程序产品在电子设备上运行时,使得电子设备实现如第一方面任一项的测试存储器时序训练过程的方法及装置。
应当理解的是,本申请中对技术特征、技术方案、有益效果或类似语言的描述并不是暗示在任意的单个实施例中可以实现所有的特点和优点。相反,可以理解的是对于特征或有益效果的描述意味着在至少一个实施例中包括特定的技术特征、技术方案或有益效果。因此,本说明书中对于技术特征、技术方案或有益效果的描述并不一定是指相同的实施例。进而,还可以任何适当的方式组合本实施例中所描述的技术特征、技术方案和有益效果。本领域技术人员将会理解,无需特定实施例的一个或多个特定的技术特征、技术方案或有益效果即可实现实施例。在其他实施例中,还可在没有体现所有实施例的特定实施例中识别出额外的技术特征和有益效果。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种电子设备的硬件结构示意图;
图2是本申请实施例提供的一种电子设备的软件架构示意图;
图3是本申请实施例提供的一种测试存储器时序训练过程的方法的流程图;
图4是本申请实施例提供的一种测试开关设置界面的示意图。
具体实施方式
本申请说明书和权利要求书及附图说明中的术语“第一”、“第二”和“第三”等是用于区别不同对象,而不是用于限定特定顺序。
在本申请实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本申请实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
目前的生产线,在向DDR电路板中烧写软件程序时会进行一次DDR Training,后续不会再进行DDR Training。但是DDR Training的故障影响严重,如果DDR存在故障或DDRTraining得到的时序参数异常时,会导致电子设备无法开机或出现闪退、Panic等异常现象。
为了提高出厂的电子设备的良品率,本申请提供了一种测试存储器时序训练过程的方法,该方案在电子设备的生产线增加DDR Training测试,在反复重启的应力下,依赖开机启动过程中对存储系统的压力来激发手机潜在缺陷,促使电子设备中的DDR故障或DDRTraining得到的时序参数异常提前暴露,进一步提前拦截存在此类故障的电子设备,提高出厂的电子设备的良品率。
在本申请一些实施例中,电子设备可以是手机、平板电脑、桌面型、膝上型、笔记本电脑、超级移动个人计算机(Ultra-mobile Personal Computer,UMPC)、手持计算机、上网本、个人数字助理(Personal Digital Assistant,PDA)、可穿戴电子设备、智能手表、智慧屏等设备,本申请对上述智能家居设备、服务器和电子设备的具体形式不做特殊限制。
参见图1,为本申请实施例提供的一种电子设备的结构示意图。
如图1所示,电子设备可以包括存储器101、处理器102和显示屏103。
可以理解的是,本实施例示意的结构并不构成对电子设备的具体限定。在另一些实施例中,电子设备可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
处理器102可以包括一个或多个处理单元,例如:处理器102可以包括应用处理器(application processor,AP),调制解调处理器,图形处理器(graphics processingunit,GPU),图像信号处理器(image signal processor,ISP)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。
存储器101可以用于存储计算机可执行程序代码,所述可执行程序代码包括指令。处理器102通过运行存储在存储器101的指令,从而执行电子设备的各种功能应用以及数据处理。
存储器101可以包括存储程序区和存储数据区。其中,存储程序区可存储操作系统,至少一个功能所需的应用程序(比如声音播放功能,图像播放功能等)等。存储数据区可存储电子设备使用过程中所创建的数据(比如音频数据,电话本等)等。此外,存储器101可以包括高速随机存取存储器,还可以包括非易失性存储器。
显示屏103用于显示图像,视频等。电子设备的显示屏103上可以显示一系列图形用户界面(graphical user interface,GUI),这些GUI都是该电子设备的主屏幕。
另外,在上述部件之上,运行有操作系统,例如,iOS®系统,Android®系统等。在该操作系统上可以安装运行应用程序。
电子设备的操作系统可以采用分层架构,事件驱动架构,微核架构,微服务架构,或云架构。本申请实施例以分层架构的Android系统为例,示例性说明电子设备的软件结构。
图2是本申请实施例的电子设备的软件结构框图。
分层架构将软件分成若干个层,每一层都有清晰的角色和分工。层与层之间通过软件接口通信。在一些实施例中,将Android系统分为四层,从上至下分别为应用程序层,应用程序框架层,安卓运行时(Android runtime)和系统库,以及内核层。
应用程序层可以包括一系列应用程序包。如图2所示,以手机、平板电脑、可穿戴设备等为例,应用程序包可以包括相机、日历、地图、音乐、短信息、图库、通话、导航、蓝牙等应用程序。
例如,在本申请一示例性实施例中,应用程序包还可以包括测试应用,该测试应用包括反复重启测试项,如老化测试应用。在电子设备生产线上,可以通过该测试应用触发电子设备进行反复重启,每次重启开机后,都进行一次DDR Training测试,在生产线中依靠开机启动过程中对存储系统的压力,在反复重启过程中增加DDR Training测试,从而激发DDR的潜在缺陷,有效拦截DDR故障或时序参数异常的电子设备。
应用程序框架层为应用程序层的应用程序提供应用编程接口(applicationprogramming interface,API)和编程框架。应用程序框架层包括一些预先定义的函数。如图2所示,应用程序框架层可以包括窗口管理器,内容提供器,视图系统,电话管理器,资源管理器,通知管理器等。
Android Runtime包括核心库和虚拟机。Android runtime负责安卓系统的调度和管理。
核心库包含两部分:一部分是java语言需要调用的功能函数,另一部分是安卓的核心库。
应用程序层和应用程序框架层运行在虚拟机中。虚拟机将应用程序层和应用程序框架层的java文件执行为二进制文件。虚拟机用于执行对象生命周期的管理,堆栈管理,线程管理,安全和异常的管理,以及垃圾回收等功能。
系统库可以包括多个功能模块。例如,表面管理器(surface manager),媒体库(Media Libraries),三维图形处理库(例如:OpenGL ES),2D图形引擎(例如:SGL)等。
例如,在本申请实施例中,系统库还可以包括生产服务,该生产服务可以用于实现应用程序层的测试应用与内核层的存储器驱动之间的通信。
内核层是硬件和软件之间的层。内核层至少包含显示驱动,摄像头驱动,音频驱动,传感器驱动。例如,在本申请实施例中,内核层包括存储器驱动。
下面将结合图3说明本申请实施例提供的测试存储器时序训练过程的方法的过程。
在本申请实施例中,以测试应用是老化测试应用为例进行说明,老化测试应用在执行反复重启测试项时会创建反复重启主任务和Training测试子任务。如图3所示,该方法可以包括如下步骤:
S10,老化测试应用启动后,启动反复重启主任务。
在一示例性实施例中,电子设备处于开机状态下,进入测试工位后,生产线系统可以自动向电子设备下发测试应用启动指令,电子设备接收该指令后启动该测试应用。以老化测试应用为例,当电子设备进入老化测试工位后,生产线系统可以自动向该电子设备下发老化测试应用启动指令,电子设备响应该指令后启动老化测试应用。
在另一示例性实施例中,也可以由测试人员手动启动测试应用。在其他实施例中,可以通过生产线上的机械手启动测试应用。本申请实施例对测试应用的启动方式不做特殊限制。
在本申请实施例中,可以预先设置反复重启的次数,即重启次数。在一示例性实施例中,可以将重启次数写入反复重启测试项对应的代码,如50次。
老化测试应用启动后会创建反复重启主任务。反复重启主任务主要用于执行其他测试任务,如老化测试。
S11,反复重启主任务判断Training测试开关是否开启;如果Training测试开关已开启,则执行S12;如果Training测试开关关闭,则执行其他测试任务。
在一示例性实施例中,可以将Training开关的开启或关闭的信息写入反复重启测试项的程序指令中。此种方式适用于生产线上对批量电子设备进行测试的场景。
在另一示例性实施例中,Training测试开关可以是设置在用户界面(UserInterface,UI)界面上虚拟开关,例如,如图4所示,界面100包含Training测试开关项110,该Training测试开关项110包括按钮111,图4所示的按钮111的状态为开启状态,测试人员可以手动点击按钮111以关闭Training测试开关,或者,通过机械手点击按钮111来关闭Training测试开关。图4仅是本申请实施例提供的Training测试开关的一个示例,测试开关还可以采用其他样式,本申请对测试开关按钮的样式和入口位置不做限制。
在本申请的一种可能的实现方式中,如图4所示,界面100还可以包括反复重启次数设置项120,该反复重启次数设置项120包括次数显示框121,该次数显示框121默认显示系统默认值,如50次。用户点击该次数显示框121可以修改反复重启的次数。
上述的UI界面上设置Training测试开关的方式可以适用于测试人员单独对该电子设备进行测试的场景。
S12,创建DDR Training子任务。
反复重启主任务启动后,且检测到测试开关已开启后,创建DDR Training子任务,以及,触发DDR Training子任务进行DDR Training测试。
DDR Training测试开始前,擦除上一次DDR Training得到的时序参数,DDR驱动发现没有时序参数,会自动进行一次Training计算出一套时序参数。如果计算得到的时序参数没问题则表明Training测试过程成功。如果计算出的时序参数异常,会导致电子设备故障,例如,直接黑屏卡死或出现闪退、Panic的现象。
在本申请一示例性实施例中,反复重启主任务在创建DDR Training子任务后,执行其他的测试任务,如老化测试等。
S13,DDR Training子任务判断本次重启是否是第一次重启;如果是第一次重启,则执行S14;如果不是第一次重启,则执行S17。
DDR Training子任务被调用后会判断本次重启是否是首次重启。
在本申请一示例性实施例中,反复重启主任务内会维护重启次数的参数,如,可以利用i表示重启次数,重启次数参数i存储在反复重启主任务和DDR Training子任务都能够读取的存储空间中。DDR Training子任务可以从该存储空间中读取重启次数参数i的数值,进一步根据i的数值判断本次重启是否是第一次重启。
在一种可能的实现方式中,i的初始值为0,每完成一次开机重启,反复重启主任务都将i的数值加1。此种实现方式中,DDR Training子任务读取参数i的数值后,若i=0则确定本次重启是第一次重启。
在另一种可能的实现方式中,i的初始值为1,每完成一次开机重启,反复重启主任务都将i的数值加1。此种实现方式中,DDR Training子任务读取参数i的数值后,若i=1则确定本次重启是第一次重启。
S14,DDR Training子任务调用生产服务,并传递首次重启的信息。
DDR Training子任务通过生产服务提供的接口调用生产服务,DDR Training子任务调用生产服务时通过该接口向生产服务传递本次重启是首次重启的信息。
例如,在一示例性实施例中,上述的重启次数参数i是全局参数,即电子设备操作系统中的任务或服务都能获得该参数的含义和数值。这样,DDR Training子任务可以直接将参数i传递至生产服务。生产服务解析参数i的数值确定本次重启是第一次重启。
又如,在另一示例性实施例中,DDR Training子任务与生产服务约定一个参数,如参数j,利用该参数j表示是否是首次重启,例如,参数j的数值为0则表示本次启动不是首次启动,若参数j的数值为1则表示本次启动是首次启动。
S15,生产服务触发存储器驱动进行DDR Training测试,并传递首次重启的信息。
在一示例性实施例中,生产服务调用存储器驱动(即,DDR驱动)提供的接口调用存储器驱动,并通过该接口向DDR驱动传递本次重启是首次重启的信息。
在一种可能的实现方式中,生产服务调用DDR驱动的过程可以是生产服务通过DDR驱动提供的接口向DDR驱动发送第一时序训练测试指令,该指令携带首次重启的信息。
例如,在一示例性实施例中,生产服务接收DDR Training子任务传递的参数i,此种情况下,生产服务向DDR驱动传递参数i。
又如,在一示例性实施例中,生产服务接收DDR Training子任务传递的表示本次启动是否是首次启动的参数j,则继续将该参数j传递至DDR驱动。
S16,DDR驱动读取第一存储空间中存储的原始时序参数存储至第二存储空间,以及擦除所述第一存储空间中的原始时序参数,启动DDR Training测试。
DDR驱动执行第一次DDR Training过程时,先将第一存储空间存储的DDR的原始时序参数进行备份,然后,再擦除第一存储空间存储的DDR的原始时序参数,这样,DDR驱动发现没有时序参数,然后自动触发执行DDR Training算法计算出一套时序参数。
可以理解的是,第一存储空间和第二存储空间可以是同一地址块内的不同地址对应的存储空间,也可以是不同地址块内的不同地址的存储空间。
在本实施例中,第一存储空间是电子设备内用于存储DDR的时序参数的存储空间,第二存储空间是用于存储备份的时序参数的存储空间。
如果计算得到的时序参数没问题则Training测试过程成功,进一步,将该时序参数写入第一存储空间。如果计算出的时序参数异常,会导致电子设备故障,例如,直接黑屏卡死或出现闪退、Panic的现象。如果本次重启是首次重启,DDR驱动会备份DDR配置中Training得到的时序参数,然后擦除DDR配置中的时序参数,DDR驱动发现没有时序参数,会自动触发执行DDR Training计算出一套时序参数。
由上述内容可知,如果S13确定本次重启是首次重启,则执行S14~S16,并在执行完S16后执行S114。
S17,DDR Training子任务判断本次重启是否是配置次数的最后一次重启;如果不是配置次数的最后一次重启,则执行S18;如果是配置次数的最后一次重启,则执行S111。
在一种可能的实现方式中,重启次数参数i的初始值为0,每完成一次开机重启i的数值加1。以配置次数是50为例,如果i的数值为48,则确定本次重启是配置次数的最后一次重启。
在另一种可能的实现方式中,重启次数参数i的初始值为1,每完成一次开启重启i的数值加1。仍以配置次数是50为例,如果i的数值为49,则确定本次重启是配置次数的最后一次重启。
S18,调用生产服务,并传递本次重启非首次重启且非最后一次重启的信息。
在一种可能的实现方式中,与首次重启的信息相同,也可以利用重启次数参数i表征非首次重启且非最后一次重启的信息,例如,DDR驱动解析i的数值,如果1<i<48,则确定本次重启是非首次重启且非最后一次重启。
S19,生产服务触发DDR驱动进行DDR Training测试,并传递非首次重启且非最后一次重启的信息。
生产服务触发DDR驱动进行Training测试的过程与S15的过程相似,此处不再赘述。
在一种可能的实现方式中,生产服务调用DDR驱动的接口向DDR驱动传递第二DDRTraining指令,该指令携带非首次重启且非最后一次重启的信息。
S110,DDR驱动擦除上一次DDR Training得到的时序参数,并启动Training测试过程。
如果不是首次重启且不是最后一次重启,DDR驱动响应第二DDR Training指令擦除上一次DDR Training得到的时序参数,然后启动DDR Training计算出一套时序参数,DDRTraining过程此处不再赘述。
如果S13确定本次重启不是第一次重启,则继续判断本次重启是否是配置次数的最后一次重启,如果确定不是最后一次重启,则执行S18~S110,并在执行完S110后继续执行S114。
可以理解的是,S17~S110所述的过程是重复多次执行的过程,中间每一次DDRTraining测试都执行一次此过程。
S111,DDR Training子任务调用生产服务,并传递本次重启是配置次数的最后一次重启的信息。
S112,生产服务触发DDR驱动进行Training测试,并传递本次重启是最后一次重启的信息。
例如,生成服务接收本次重启是最后一次重启的信息后,可以调用DDR驱动的接口向DDR驱动传递第三DDR Training指令,该指令可以携带最后一次重启的信息。
S113,DDR驱动擦除上一次DDR Training得到的时序参数,并恢复备份的原始时序参数。
DDR驱动响应该第三DDR Training指令,擦除上一次DDR Training得到的时序参数,以及,将备份的原始时序参数重新写入第一存储空间。
S114,反复重启主任务在触发电子设备重启之前,调用生产服务获取当前DDRTraining测试状态。
在一示例性实施例中,反复重启主任务在执行完其他测试任务后触发电子设备重启,在触发电子设备之前获取DDR Training的测试状态。
在本申请的一个实施例中,反复重启主任务可以调用生产服务提供的测试状态查询接口,请求获取当前DDR Training测试的状态。
S115,生产服务调用DDR驱动请求获取当前DDR Training测试状态。
在本申请一实施例中,DDR Training测试的状态包括done(已完成)和busy(未完成),其中,done表示当前DDR Training测试已完成;busy表示当前DDR Training未完成正在进行。
S116,DDR驱动向生产服务返回当前DDR Training测试的状态结果。
在一示例性实施例中,DDR驱动向生产服务返回的Training测试状态可以为“busy”或“done”。
在另一示例性实施例中,DDR驱动返回的Training测试状态可以是二进制数值“0”或“1”,其中,“0”可以表示“done”,“1”可以表示“busy”,或者,“1”表示“busy”,“0”表示“done”。
本申请实施例对用于表征Training测试状态的信息不做特殊限定。
S117,生产服务向反复重启主任务返回当前DDR Training测试状态结果。
S118,若反复重启主任务解析当前DDR Training测试状态结果为busy,则确定Training未结束,等待预设时长后执行重启过程。
例如,在一示例性实施例中,如果返回的Training测试状态为“1”,表明当前Training测试为busy;如果为“0”,表明当前Training测试为done。
预设时长可以根据实际需求自行设定,例如5s。
在本申请一示例性实施例中,等待预设时长后再次获取Training测试状态,如果再次获取的Training测试状态仍为busy,则直接重启,重启之后不会因为上一次Training测试未结束而产生故障,重启之后,调用DDR Training子任务执行相应的流程,即执行完S118之后,返回执行S13。
S119,若反复重启主任务解析当前DDR Training测试状态结果为done,则确定Training已结束,立即触发电子设备重启。
触发电子设备重启之后,返回执行S10,即重新执行下一次重启过程。本申请实施例提供的测试存储器时序训练过程的方法,在生产线上需要反复重启的阶段(如,老化测试阶段)增加DDR Training测试。每次重启时进行一次Training测试。每一次开机启动过程都会对存储系统产生较大的压力。在反复重启的应力下,依赖开机启动过程对存储系统的压力激发电子设备潜在缺陷,促使电子设备提前暴露DDR故障或DDR Training得到的时序参数异常,从而提前拦截出现此类故障的电子设备,最终提高出厂设备的良品率。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本实施例所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本实施例各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器执行各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:快闪存储器、移动硬盘、只读存储器、随机存取存储器、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何在本申请揭露的技术范围内的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (9)
1.一种测试存储器时序训练过程的方法,其特征在于,应用于电子设备,所述电子设备包括存储器,包括操作系统,所述操作系统包括测试应用、生产服务和存储器驱动,所述测试应用包括反复重启主任务,所述反复重启主任务启动后创建DDR Training子任务,所述方法包括:
控制所述电子设备进行预设次数次重启,针对重启次数达到所述预设次数前的每一次重启,都执行一次存储器时序训练DDR Training的流程;
针对首次重启,读取第一存储空间存储的所述存储器的原始时序参数,将所述原始时序参数存储至第二存储空间,并擦除所述第一存储空间存储的原始时序参数,执行所述DDRTraining的流程得到新的时序参数,并在本次训练成功后将所述新的时序参数存储至所述第一存储空间;
针对首次重启之后最后一次重启之前的每一次重启,擦除所述第一存储空间存储的时序参数,执行所述DDR Training的流程得到新的时序参数,并在本次训练成功后将所述新的时序参数存储至所述第一存储空间;
针对所述最后一次重启,擦除所述第一存储空间存储的上一次DDR Training得到的时序参数,并在本次训练成功后将所述第二存储空间内存储的原始时序参数写入所述第一存储空间;
针对任一次DDR Training,若训练失败则确定所述电子设备是故障设备;
所述控制所述电子设备进行预设次数次重启的过程,包括:
所述反复重启主任务触发电子设备重启之前,调用所述生产服务获取当前DDRTraining的状态结果;
所述生产服务向所述存储器驱动传递DDR Training状态获取指令;
所述存储器驱动响应所述DDR Training状态获取指令,向所述生产服务返回当前DDRTraining的状态结果;
所述生产服务向所述反复重启主任务返回所述当前DDR Training的状态结果;
所述反复重启主任务解析所述状态结果,若所述状态结果是未结束,所述反复重启主任务等待预设时长后触发所述电子设备重启,若所述状态结果是已结束,所述反复重启主任务立即触发所述电子设备重启。
2.根据权利要求1所述的方法,其特征在于,所述电子设备包括测试开关,所述方法还包括:
获取所述测试开关的状态信息;
基于所述状态信息确定所述测试开关处于开启状态后,执行控制所述电子设备进行预设次数次重启,针对重启次数达到所述预设次数前的每一次重启,都执行一次DDRTraining的流程的步骤。
3.根据权利要求1-2任一项所述的方法,其特征在于,所述电子设备内设置有重启次数参数;所述重启次数的确定过程包括:
读取所述重启次数参数;
若所述重启次数参数的数值与预设初始数值相同,确定本次重启是首次重启;
若所述重启次数参数的数值与所述预设次数对应的数值,确定本次重启是所述预设次数的最后一次重启;
若所述重启次数参数的数值大于所述预设初始数值小于所述预设次数对应的数值,确定本次重启不是首次重启且不是最后一次重启。
4.根据权利要求1或2所述的方法,其特征在于,所述控制所述电子设备进行预设次数次重启,包括:
接收测试系统发送的反复重启测试指令;
响应所述反复重启测试指令,控制所述电子设备进行预设次数次重启。
5.根据权利要求1或2所述的方法,其特征在于,所述电子设备包括操作系统,所述操作系统包括测试应用、生产服务和存储器驱动;
所述控制所述电子设备进行预设次数次重启,针对重启次数达到所述预设次数前的每一次重启,都执行一次DDR Training的流程,包括:
所述测试应用控制所述电子设备进行预设次数次重启,在重启次数达到所述预设次数前的每一次重启之前,所述测试应用都调用所述生产服务,由所述生产服务触发所述存储器驱动进行一次DDR Training。
6.根据权利要求1或2所述的方法,其特征在于,所述针对首次重启,读取第一存储空间存储的所述存储器的原始时序参数,将所述原始时序参数存储至第二存储空间,包括:
所述反复重启主任务启动后创建DDR Training子任务;
所述DDR Training子任务读取重启次数参数,解析所述重启次数参数确定本次重启是首次重启后,调用所述生产服务并传递首次重启的信息;
所述生产服务接收首次重启的信息后,向所述存储器驱动传递第一DDR Training指令,所述第一DDR Training指令包括首次重启的信息;
所述存储器驱动响应所述第一DDR Training指令,读取第一存储空间存储的所述存储器的原始时序参数,并保存至第二存储空间。
7.根据权利要求1或2所述的方法,其特征在于,所述电子设备包括操作系统,所述操作系统包括测试应用、生产服务和存储器驱动,所述测试应用包括反复重启主任务,所述反复重启主任务启动后创建DDR Training子任务;
所述针对所述最后一次重启,擦除所述第一存储空间存储的上一次DDR Training得到的时序参数,并在本次训练成功后将所述第二存储空间内存储的原始时序参数写入所述第一存储空间,包括:
所述DDR Training子任务读取重启次数参数,基于所述重启次数参数确定本次重启是所述预设次数中的最后一次重启,调用所述生产服务并传递最后一次重启的信息;
所述生产服务接收最后一次重启的信息后,向所述存储器驱动传递第二DDR Training指令,所述第二DDR Training指令包括最后一次重启的信息;
所述存储器驱动响应所述第二DDR Training指令,擦除所述第一存储空间存储的上一次DDR Training得到的时序参数,以及,将所述第二存储空间内存储的原始时序参数写入所述第一存储空间。
8.一种电子设备,其特征在于,所述电子设备包括:一个或多个处理器、存储器和触摸屏;所述存储器用于存储程序代码;所述处理器用于运行所述程序代码,使得所述电子设备实现如权利要求1至7任一项所述的测试存储器时序训练过程的方法。
9.一种计算机可读存储介质,其特征在于,其上存储有指令,当所述指令在电子设备上运行时,使得所述电子设备执行如权利要求1至7任一项所述的测试存储器时序训练过程的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211325408.7A CN116737472B (zh) | 2022-10-27 | 2022-10-27 | 一种测试存储器时序训练过程的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211325408.7A CN116737472B (zh) | 2022-10-27 | 2022-10-27 | 一种测试存储器时序训练过程的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116737472A CN116737472A (zh) | 2023-09-12 |
CN116737472B true CN116737472B (zh) | 2024-05-03 |
Family
ID=87913862
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211325408.7A Active CN116737472B (zh) | 2022-10-27 | 2022-10-27 | 一种测试存储器时序训练过程的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116737472B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117827546B (zh) * | 2024-03-05 | 2024-05-31 | 四川华鲲振宇智能科技有限责任公司 | 一种Linux系统下控制服务器重启监管系统及方法 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108573730A (zh) * | 2017-03-14 | 2018-09-25 | 爱思开海力士有限公司 | 数据传输训练方法及执行该方法的数据存储装置 |
CN109872735A (zh) * | 2017-12-05 | 2019-06-11 | 三星电子株式会社 | 存储器装置训练方法、执行该方法的计算系统和系统芯片 |
CN111221582A (zh) * | 2020-01-02 | 2020-06-02 | 深圳中电长城信息安全系统有限公司 | 一种内存训练的方法及系统 |
CN112463504A (zh) * | 2020-12-14 | 2021-03-09 | 苏州浪潮智能科技有限公司 | 一种双控存储产品测试方法、系统、终端及存储介质 |
CN113721144A (zh) * | 2021-08-30 | 2021-11-30 | 珠海泰芯半导体有限公司 | 电机的老化测试方法、装置、存储介质及电子设备 |
CN113722242A (zh) * | 2021-08-31 | 2021-11-30 | 龙芯中科技术股份有限公司 | 内存配置方法、装置、电子设备及可读介质 |
CN115004155A (zh) * | 2020-02-24 | 2022-09-02 | 英特尔公司 | 在运行时实现外部存储器训练 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120284576A1 (en) * | 2011-05-06 | 2012-11-08 | Housty Oswin E | Hardware stimulus engine for memory receive and transmit signals |
US9437326B2 (en) * | 2014-06-12 | 2016-09-06 | Freescale Semiconductor, Inc. | Margin tool for double data rate memory systems |
-
2022
- 2022-10-27 CN CN202211325408.7A patent/CN116737472B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108573730A (zh) * | 2017-03-14 | 2018-09-25 | 爱思开海力士有限公司 | 数据传输训练方法及执行该方法的数据存储装置 |
CN109872735A (zh) * | 2017-12-05 | 2019-06-11 | 三星电子株式会社 | 存储器装置训练方法、执行该方法的计算系统和系统芯片 |
CN111221582A (zh) * | 2020-01-02 | 2020-06-02 | 深圳中电长城信息安全系统有限公司 | 一种内存训练的方法及系统 |
CN115004155A (zh) * | 2020-02-24 | 2022-09-02 | 英特尔公司 | 在运行时实现外部存储器训练 |
CN112463504A (zh) * | 2020-12-14 | 2021-03-09 | 苏州浪潮智能科技有限公司 | 一种双控存储产品测试方法、系统、终端及存储介质 |
CN113721144A (zh) * | 2021-08-30 | 2021-11-30 | 珠海泰芯半导体有限公司 | 电机的老化测试方法、装置、存储介质及电子设备 |
CN113722242A (zh) * | 2021-08-31 | 2021-11-30 | 龙芯中科技术股份有限公司 | 内存配置方法、装置、电子设备及可读介质 |
Also Published As
Publication number | Publication date |
---|---|
CN116737472A (zh) | 2023-09-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101702700B1 (ko) | 고속 컴퓨터 시동 | |
US8645977B2 (en) | Extensible application virtualization subsystems | |
US20120124426A1 (en) | Debugging in a cluster processing network | |
US20150236799A1 (en) | Method and system for quick testing and detecting mobile devices | |
CN110879742B (zh) | 虚拟机异步创建内部快照方法、装置及存储介质 | |
US10783066B2 (en) | Application content display at target screen resolutions | |
CN110990132B (zh) | 异步任务处理方法、装置、计算机设备和存储介质 | |
US7779302B2 (en) | Automated testing framework for event-driven systems | |
US9684548B2 (en) | Integrating operating systems | |
CN116737472B (zh) | 一种测试存储器时序训练过程的方法及装置 | |
CN113190427B (zh) | 卡顿监控方法、装置、电子设备及存储介质 | |
CN103034577B (zh) | 一种定位关机慢的方法及装置 | |
US20120089571A1 (en) | Computer process management | |
US7392149B2 (en) | Automatic software testing | |
CN116149818A (zh) | Gpu应用的迁移方法、设备、系统及存储介质 | |
US10394680B2 (en) | Techniques for tracking graphics processing resource utilization | |
US20240264914A1 (en) | Method and device for recovering self-test exception of server component, system and medium | |
CN106775620B (zh) | 一种定时方法及装置 | |
CN110764962A (zh) | 日志处理方法和装置 | |
US11544092B2 (en) | Model specific register (MSR) instrumentation | |
CN115981822A (zh) | 任务处理方法、介质、装置和计算设备 | |
WO2020145973A1 (en) | Event logs with firmware debug information | |
CN113760631A (zh) | 页面加载时长确定方法、装置、设备和存储介质 | |
JPH064364A (ja) | Cpu動作記録方式 | |
CN116954782B (zh) | 软件检查状态显示方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |