检测装置、方法及电子设备与流程

文档序号:33193588发布日期:2023-02-04 09:55阅读:38来源:国知局
检测装置、方法及电子设备与流程

1.本技术涉及集成电路技术领域,特别是涉及一种检测装置、检测方法及电子设备。


背景技术:

2.目前在服务器(server)平台、个人计算机(pc,personal computer)平台和消费者(consumer)平台等平台上,为了降低内存的功耗,在系统负载小时,让全部或者部分内存进入低功耗睡眠状态,内存进入自刷新阶段(动态随机存取存储器(dram,dynamic random access memory)需要进行定期刷新,不然数据会自动丢失),此时内存控制器可以进入低功耗或者保持运行状态;当系统负载增加时,唤醒睡眠的内存。内存进入低功耗睡眠状态前系统会将关键信息存入内存中,内存通过自刷新来维持所存储的关键信息,内存被唤醒退出低功耗睡眠状态的时候再从内存中读取关键信息供系统使用。
3.然而,动态内存在刷新的时候,可能由于刷新时间、刷新时间间隔设置不合理或者内存中存储单元的本身缺陷等问题,导致数据翻转或丢失,即内存出现自刷新错误。此时,内存不能正确保存数据,导致系统从内存中读取的数据发生错误,使得系统丢失关键数据,不能继续运行,会发生蓝屏或者宕机等现象。


技术实现要素:

4.基于此,有必要针对现有技术中的由于内存自刷新错误导致系统丢失关键数据,从而不能正常运行的问题提供一种检测装置、检测方法及电子设备。
5.为了实现上述目的,一方面,本发明提供了一种检测装置,包括:存储模块及控制模块,所述控制模块与内存模块及所述存储模块连接;所述控制模块包括:
6.第一控制单元,用于获取第一记录数据,控制所述存储模块存储所述第一记录数据;所述内存模块用于获取所述第一记录数据;
7.判断单元,用于获取内存控制命令,并识别所述内存控制命令是否为内存睡眠命令或唤醒内存命令;
8.第二控制单元,用于当所述内存控制命令为所述内存睡眠命令时,控制所述内存模块进入自刷新;
9.第三控制单元,用于当所述内存控制命令为所述唤醒内存命令时,控制所述内存模块退出自刷新,并在所述内存模块退出自刷新后读取所述内存模块所存储的第二记录数据;及
10.处理单元,用于根据所述第一记录数据和所述第二记录数据输出测试结果。
11.在其中一个实施例中,所述控制模块还与内存控制模块连接,所述控制模块从所述内存控制模块获取所述第一记录数据和所述内存控制命令。
12.在其中一个实施例中,所述处理单元包括:
13.第一处理单元,用于判断所述第一记录数据和所述第二记录数据是否相同;
14.第二处理单元,用于当所述第一记录数据和所述第二记录数据不同时,从所述存
储模块读取所述第一记录数据,并重新写入所述内存模块,直到所述第一处理单元判断到从所述内存模块中读取的数据与所述第一记录数据相同。
15.在其中一个实施例中,所述处理单元包括:
16.第一处理单元,用于判断所述第一记录数据和所述第二记录数据是否相同;
17.第三处理单元,用于当所述第一记录数据和所述第二记录数据不同时,输出报警信号。
18.在其中一个实施例中,还包括信号开关模块,所述信号开关模块具有第一电连接端、第二电连接端及第三电连接端;所述第一电连接端与所述内存控制模块连接,所述第二电连接端与所述控制模块连接,所述第三电连接端与所述内存模块连接;
19.当初始状态时,所述第二控制单元控制所述第一电连接端和所述第三电连接端之间导通且所述第一电连接端和所述第二电连接端之间导通;所述内存模块从所述内存控制模块获取所述第一记录数据和所述内存睡眠命令并进入自刷新,第一控制单元实时从所述内存控制模块获取所述第一记录数据并控制所述存储模块存储所述第一记录数据,所述判断单元获取并识别到所述内存睡眠命令;
20.当所述判断单元获取并识别到所述唤醒内存命令时,所述第三控制单元控制所述第一电连接端和所述第三电连接端之间断开且所述第二电连接端和所述第三电连接端之间导通;所述内存模块退出自刷新,所述第三控制单元在所述内存模块退出自刷新后读取所述内存模块所存储的第二记录数据;
21.当所述第一处理单元判断到从所述内存模块中读取的数据与所述第一记录数据相同时,所述第二控制单元重新控制所述第一电连接端和所述第三电连接端之间导通且所述第一电连接端和所述第二电连接端之间导通。
22.在其中一个实施例中,所述内存控制模块通过所述控制模块与所述内存模块连接。
23.在其中一个实施例中,还包括报警模块,所述报警模块与所述控制模块连接,所述报警模块用于接收到所述报警信号时进行报警。
24.在其中一个实施例中,还包括恢复开关模块,所述恢复开关模块与所述控制模块连接,用于输出恢复触发信号;
25.所述处理单元还包括第四处理单元,所述第四处理单元用于接收到所述恢复触发信号时,从所述存储模块读取所述第一记录数据,并重新写入所述内存模块,直到所述第一处理单元判断到从所述内存模块中读取的数据与所述第一记录数据相同。
26.在其中一个实施例中,还包括供电模块,所述供电模块与所述存储模块和所述控制模块连接,以为所述存储模块和所述控制模块供电。
27.在其中一个实施例中,还包括电路板,所述存储模块和所述控制模块均设置于所述电路板上。
28.一种电子设备,包括内存控制模块、内存模块及如上任一项所述的检测装置。
29.在其中一个实施例中,所述检测装置为独立于所述内存控制模块的数据采集卡或者所述检测装置集成于所述内存控制模块内。
30.一种检测方法,应用于如上任一项所述的检测装置,所述方法包括:
31.获取第一记录数据,并控制存储模块存储第一记录数据;
32.判断内存控制命令是否为内存睡眠命令或唤醒内存命令;
33.当所述内存控制命令为内存睡眠命令时,且在内存模块获取到所述第一记录数据后控制所述内存模块进入自刷新;
34.当所述内存控制命令为唤醒内存命令时,控制所述内存模块退出自刷新,并在所述内存模块退出自刷新后读取所述内存模块所存储的第二记录数据;
35.根据所述第一记录数据和所述第二记录数据输出测试结果。
36.在其中一个实施例中,所述根据所述第一记录数据和所述第二记录数据输出测试结果,包括:
37.判断第一记录数据和第二记录数据是否相同;
38.当所述第一记录数据和所述第二记录数据不同时,将存储的所述第一记录数据重新写入所述内存模块,直到从所述内存模块中读取的数据与所述第一记录数据相同。
39.在其中一个实施例中,所述根据所述第一记录数据和所述第二记录数据输出测试结果包括:
40.判断第一记录数据和第二记录数据是否相同;
41.当所述第一记录数据和所述第二记录数据不同时,输出报警信号。
42.上述检测装置、检测方法及电子设备存储第一记录数据,在内存模块获得第一记录数据后控制内存模块进入低功耗睡眠状态并进行自刷新使得内存模块存储该第一记录数据;在唤醒内存时控制内存模块退出自刷新,并在内存模块退出自刷新后读取内存模块存储的第二记录数据。根据第一记录数据和第二记录数据可以得到内存模块是否发生自刷新错误的测试结果,使得用户及时知晓内存模块的运行状态,避免从内存模块中抓取到错误的关键数据影响系统运行。
附图说明
43.为了更清楚地说明本技术实施例或传统技术中的技术方案,下面将对实施例或传统技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
44.图1为一实施例中提供的电子设备的结构框图;
45.图2为另一实施例中提供的电子设备的结构框图;
46.图3为又一实施例中提供的电子设备的结构框图;
47.图4为一实施例中提供的检测方法流程图。
48.附图标记说明:
49.10、内存控制模块;20、内存模块;30、检测装置;31、存储模块;32、控制模块;33、信号开关模块;34、报警模块;35、恢复开关模块;36、电路板;321、第一控制单元;322、判断单元;323、第二控制单元;324、第三控制单元;325、处理单元。
具体实施方式
50.为了便于理解本技术,下面将参照相关附图对本技术进行更全面的描述。附图中给出了本技术的实施例。但是,本技术可以以许多不同的形式来实现,并不限于本文所描述
的实施例。相反地,提供这些实施例的目的是使本技术的公开内容更加透彻全面。
51.除非另有定义,本文所使用的所有的技术和科学术语与属于本技术的技术领域的技术人员通常理解的含义相同。本文中在本技术的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本技术。
52.可以理解,本技术所使用的术语“第一”、“第二”等可在本文中用于描述各种元件,但这些元件不受这些术语限制。这些术语仅用于将第一个元件与另一个元件区分。举例来说,在不脱离本技术的范围的情况下,可以将第一电阻称为第二电阻,且类似地,可将第二电阻称为第一电阻。第一电阻和第二电阻两者都是电阻,但其不是同一电阻。
53.可以理解,以下实施例中的“连接”,如果被连接的电路、模块、单元等相互之间具有电信号或数据的传递,则应理解为“电连接”、“通信连接”等。
54.在此使用时,单数形式的“一”、“一个”和“所述/该”也可以包括复数形式,除非上下文清楚指出另外的方式。还应当理解的是,术语“包括/包含”或“具有”等指定所陈述的特征、整体、步骤、操作、组件、部分或它们的组合的存在,但是不排除存在或添加一个或更多个其他特征、整体、步骤、操作、组件、部分或它们的组合的可能性。同时,在本说明书中使用的术语“和/或”包括相关所列项目的任何及所有组合。
55.传统技术中,为了降低内存的功耗,在系统负载小时,让全部或者部分内存进入低功耗休眠状态,内存进入自刷新阶段(dram需要进行定期刷新,不然数据会自动丢失),此时内存控制器可以进入低功耗或者保持运行状态;当系统负载增加时,唤醒睡眠的内存。内存进入低功耗状态前系统会将关键信息存入内存中,内存退出低功耗睡眠状态的时候再从内存中读取信息供系统使用。然而由于内存在自刷新阶段中可能由于刷新时间、刷新时间间隔设置不合理或内存中的存储单元本身缺陷问题会导致数据反转或丢失,从而使得内存中存储的关键数据发生变化。当内存退出低功耗状态的时候再从内存中抓取其存储的数据供系统使用。若内存中存储的数据为系统数据、配置参数数据等重要数据,而这些数据某个位或某些位发生丢失或翻转,都可能导致系统不能正常运行,发生蓝屏或宕机等现象。基于此,本技术提供一种检测装置能够对内存在自刷新阶段的稳定性和可靠性进行功能测试,从而对操作系统(os,operating system)的恢复有很大帮助。
56.请参阅图1,本技术提供一种检测装置30,检测装置30包括存储模块31及控制模块32。控制模块32与内存模块20及存储模块31连接。控制模块32包括第一控制单元321、判断单元322、第二控制单元323、第三控制单元324及处理单元325。第一控制单元321用于获取第一记录数据,控制存储模块31存储第一记录数据。内存模块20用于获取第一记录数据。判断单元322用于获取内存控制命令,并识别内存控制命令是否为内存睡眠命令或唤醒内存命令。第二控制单元323用于当内存控制命令为内存睡眠命令时,控制内存模块20进入自刷新。第三控制单元324用于当内存控制命令为唤醒内存命令时,控制内存模块20退出自刷新,并在内存模块20退出自刷新后读取内存模块20所存储的第二记录数据。处理单元325用于根据第一记录数据和第二记录数据输出测试结果。
57.具体的,检测装置30可以应用于如服务器平台、个人计算机平台、消费者平台等包含独立内存的电子设备。该电子设备至少包含内存(memory)模块。内存模块20可以为动态随机存取存储器(dram,dynamic random access memory),譬如双列直插式存储模块(dimm,dual-inline-memory-modules)、内存颗粒等动态内存。双列直插式存储模块可以包
括带寄存器的双列直插内存模块20(rdimm,registered dimm)、无缓冲双通道内存模块20(udimm,unbuffered dual in-line memory modules or unregistered dual in-line memory modules),小型双列直插式内存模块(sodimm,small outline dual in-line memory module)等。内存模块20具体可以采用ddr2、ddr3、ddr4、ddr5spec等系列的产品。内存模块20由于是动态随机存取存储器(ram,random access memory),故其需要进行定期刷新以保证内部存储的数据不丢失。
58.本实施例中,检测装置30包括存储模块31及控制模块32。譬如,控制模块32可以包括现场可编程逻辑门阵列(fpga,field programmable gate array)或中央处理器(cpu,central processing unit)等等。存储模块31与控制模块32连接,存储模块31用于存储记录数据。
59.控制模块32还与内存模块20连接。控制模块32包括第一控制单元321、判断单元322、第二控制单元323、第三控制单元324及处理单元325。第一控制单元321用于获取第一记录数据,并控制存储模块31存储该第一记录数据。内存模块20用于获取第一记录数据。第一记录数据可以是系统的关键数据等。本实施例中,原本写入内存模块20的第一记录数据不仅被写入到内存模块20中还被备份在存储模块31中。第一记录数据由于被备份在存储模块31中,其不受内存模块20自刷新的影响,故存储模块31所存储的第一记录数据始终为准确的数据。
60.判断单元322用于获取内存控制命令,并识别内存控制命令是否为内存睡眠命令或唤醒内存命令。内存控制命令用于控制内存模块20的工作状态,当内存模块20接收到内存睡眠命令也可以称为自刷新进入(sre,self-refresh enter)命令时,内存模块20进入自刷新状态,以维持存储在内存模块20内部的数据;当内存模块20接收到唤醒内存命令也可以称为自刷新退出(srx,self-refresh exit)命令时,内存模块20退出自刷新。
61.第二控制单元323用于当内存控制命令为内存睡眠命令时,控制内存模块20进入自刷新。内存模块20利用自刷新来维持其内部存储的第一记录数据。第三控制单元324用于当内存控制命令为唤醒内存命令时,控制内存模块20退出自刷新,并读取内存模块20自刷新后所存储的第二记录数据。若内存模块20没有发生自刷新错误导致其内部存储数据发生丢失或翻转等,则内存模块20自刷新后所存储的第二记录数据与自刷新之前写入到内存模块20中的第一记录数据相同;反之,则内存模块20中存储的数据发生变化,第二记录数据与第一记录数据不同。
62.处理单元325根据第一记录数据和第二记录数据输出内存模块20中数据是否错误的测试结果。示例性的,处理单元325可以通过比对第一记录数据和第二记录数据来输出测试结果。若第一记录数据和第二记录数据相同,则测试结果为内存模块20没有发生自刷新错误;若第一记录数据和第二记录数据不同,则测试结果为内存模块20发生自刷新错误。其中,处理单元325可以将存储模块31存储的第一记录数据与第三控制单元324直接从内存模块20读取的第二记录数据相比较;还可以配置为当内存控制命令为唤醒内存命令时第三控制单元324还进一步控制存储模块31存储第二记录数据,处理单元325从存储模块31获取第一记录数据和第二记录数据并将它们相比较。
63.上述检测装置30存储第一记录数据,在内存模块20获得第一记录数据后控制内存模块20进入低功耗睡眠状态并进行自刷新使得内存模块20存储该第一记录数据;在唤醒内
存时控制内存模块20退出自刷新,并在内存模块20退出自刷新后读取内存模块20存储的第二记录数据。根据第一记录数据和第二记录数据输出内存模块20是否发生自刷新错误的测试结果,使得用户及时知晓内存模块20的运行状态,避免系统从内存模块20中抓取到错误的关键数据影响系统运行。
64.在一些示例中,电子设备还可以包含内存控制(memory controller)模块。内存控制模块10可以为主控芯片、中央处理器(cpu,central processing unit)等等。控制模块32还与内存控制模块10连接,控制模块32从内存控制模块10获取第一记录数据和内存控制命令。
65.具体的,为了给系统节省功耗,内存控制模块10可以进入睡眠(str,suspend to ram)状态。高级配置和电源管理接口(acpi,advanced configuration and power management interface)协议中定义睡眠状态为s3状态。内存控制模块10可以在进入s3状态的时候将关键信息存入内存模块20中,电源仍然继续为内存模块20等必要的设备供电以确保数据不丢失,而其他设备均处于关闭状态,使得降低系统的耗电量。内存控制模块10在退出s3状态的时候从内存模块20中重新读取信息,从而恢复到进入s3状态之前的工作状态。需要说明的是,内存控制模块10的睡眠状态和内存模块20的睡眠状态没有必然的联系,当内存控制模块10在正常运行时同样可以控制内存模块20进入睡眠状态,并在一段时间后唤醒内存模块20中,从内存模块20中读取数据。内存控制模块10在正常运行或在退出s3状态后从内存模块20中重新读取的数据为内存模块20自刷新后的数据。
66.内存控制模块10可以通过控制模块32与内存模块20连接,从而向内存模块20输出第一记录数据和内存控制命令。控制模块32从内存控制模块10中获取到第一记录数据。控制模块32可以为带有对内存控制模块10发出的命令进行解析功能的控制器系统。
67.示例性的,控制模块32中判断单元322可以获取内存控制模块10和内存模块20之间的内存控制命令状态,并通过获取的内存控制命令状态识别内存控制命令是否为内存睡眠命令或唤醒内存命令。
68.在一些示例中,处理单元325包括第一处理单元和第二处理单元。第一处理单元用于判断第一记录数据和第二记录数据是否相同。第二处理单元用于当第一记录数据和第二记录数据不同时,从存储模块31读取第一记录数据,并重新写入内存模块20,直到第一处理单元判断到从内存模块20中读取的数据与第一记录数据相同。
69.在一些示例中,第一处理单元可以逐一比对第一记录数据和第二记录数据中每个比特位,当第一记录数据和第二记录数据中有一个比特位不同则判断为第一记录数据和第二记录数据不同,第二处理单元将存储模块31中的第一记录数据重新写入内存模块20。在其他示例中,可以将第一处理单元配置为当第一记录数据和第二记录数据中预设比特位不同时才判断为第一记录数据和第二记录数据不同,第二处理单元将存储模块31中的第一记录数据重新写入内存模块20。预设比特位可以为影响系统正常运行的数据位。
70.由于存储模块31内存储的第一记录数据为内存模块20自刷新前内存控制模块10写入到内存模块20中的正确的数据,因此,在内存模块20发生自刷新错误后重新写入第一记录数据能够保证内存模块20存储的错误数据被重新替换为正确的数据。本实施例中,在第二处理单元向内存模块20重新写入第一记录数据后还可以利用第一处理单元重复判断从内存模块20中读取的数据是否正确。例如,向内存模块20重新写入不成功或者内存模块
20本身缺陷可能会导致内存模块20中存储数据仍然为错误的数据,通过重复判断内存模块20中读取的数据与第一记录数据是否相同,并利用第二处理单元一次或多次的将正确数据重新写入内存模块20,能够保证内存控制模块10从内存模块20中读取的数据始终与写入内存模块20中的数据相同,即系统能够读取到正确的数据,从而正常工作。
71.在另一些示例中,处理单元325包括第一处理单元和第三处理单元。第一处理单元用于判断第一记录数据和第二记录数据是否相同。第三处理单元用于当第一记录数据和第二记录数据不同时,输出报警信号。
72.在一些示例中,参阅图2或图3,检测装置30还可以包括报警模块34。报警模块34可以与控制模块32连接,具体可以与第三处理单元连接。当报警模块34接收到报警信号时可以通过灯光、文字、语音等方式进行报警,从而及时通知操作人员内存模块20发生自刷新错误。
73.在一些示例中,请参阅图1和2,检测装置30还包括信号开关模块33。信号开关模块33可以是带有对信号加强的功能的高速信号的开关,也可以叫做数据选择器(mux,multiplexer)。信号开关模块33具有第一电连接端a、第二电连接端b及第三电连接端c。第一电连接端a与内存控制模块10连接,第二电连接端b与控制模块32连接,第三电连接端c与内存模块20连接。本实施例中,控制模块32通过控制信号开关模块33的第一电连接端a、第二电连接端b及第三电连接端c之间的通断来控制内存模块20的工作。
74.具体的,当初始状态时,第二控制单元323控制第一电连接端a和第三电连接端c之间导通,即内存控制模块10和内存模块20之间导通,且控制第一电连接端a和第二电连接端b之间导通,即控制模块32和内存控制模块10之间导通。内存模块20从内存控制模块10获取第一记录数据和内存睡眠命令,并在内存睡眠命令下进入自刷新。第一控制单元321从内存控制模块10获取第一记录数据并控制存储模块31存储第一记录数据。判断单元322获取并识别到内存睡眠命令。存储模块31存储数据时可以按照地址顺序进行记录,譬如,存储模块31可以包括第一存储单元、第二存储单元、第三存储单元、第四存储单元等等,可以将第一记录数据存储在第一存储单元中。
75.当内存控制模块10向内存模块20发出唤醒内存命令时,内存模块20由于接收到唤醒内存命令从而退出自刷新。判断单元322获取并识别到唤醒内存命令,继而第三控制单元324控制第一电连接端a和第三电连接端c之间断开,即内存控制模块10和内存模块20之间断开,且第二电连接端b和第三电连接端c之间导通,即控制模块32和内存模块20之间导通,使得第三控制单元324可以在内存模块20退出自刷新后读取内存模块20自刷新后所存储的第二记录数据。第三控制单元324也可以进一步控制存储模块31存储第二记录数据。存储模块31在存储第二记录数据时,可以按照地址顺序进行记录,譬如记录在第二存储单元中。
76.当第一处理单元判断到从内存模块20中读取的数据与第一记录数据相同时,第二控制单元323重新控制第一电连接端a和第三电连接端c之间导通且第一电连接端a和第二电连接端b之间导通。
77.若第一处理单元判断到从内存模块20中读取的数据与第一记录数据不同,则第二控制单元323不切换信号开关模块33中各个电连接端之间的通断状态。并且,第三处理单元可以在第一处理单元判断到从内存模块20中读取的数据与第一记录数据不同输出报警信号;或者,第二处理单元可以将存储模块31内存储的第一记录数据重新写入内存模块20。直
到从内存模块20中读取的数据与第一记录数据相同时,第二控制单元323重新控制第一电连接端a和第三电连接端c之间导通且第一电连接端a和第二电连接端b之间导通,使得内存控制模块10能够从内存模块20中读取内存模块20所存储的数据,并且控制模块32再次恢复到对内存控制模块10和内存模块20之间的内存控制命令状态进行检测的阶段。
78.本实施例中,由于是在内存模块20中读取的数据与第一记录数据相同时才重新控制内存控制模块10与内存模块20之间导通,因此,内存控制模块10从内存模块20中所读取的数据始终保持与写入到内存模块20中的数据一致,从而能够保证系统读取的数据准确,系统正常运行。
79.在一些示例中,参阅图1和图2,检测装置30还包括恢复开关模块35。用户在检测装置30报警后可以通过操作恢复开关模块35对内存模块20的自刷新错误进行恢复。恢复开关模块35与控制模块32连接。用户操作恢复开关模块35后,恢复开关模块35会发出恢复触发信号。处理单元还可以包括第四处理单元,第四处理单元用于接收到恢复触发信号时,从存储模块31读取第一记录数据,并将第一记录数据重新写入内存模块20,直到第一处理单元判断到从内存模块20中读取的数据与第一记录数据相同。
80.在另一些示例中,当第一处理单元判断到第二记录数据与第一记录数据不同时,不需要恢复触发信号,第二处理单元自动将存储模块31所存储的第一记录数据写入内存模块20直到从内存模块20中读取的数据与第一记录数据相同。本实施例中,当检测装置30检测到内存模块20发生自刷新错误后自动对内存模块20中的数据进行纠错,以保证内存控制模块10从内存模块20中读取的数据正确。
81.在一些示例中,请参阅图2或图3,报警模块34可以包括报警指示灯,报警指示灯点亮进行报警。在其他实施例中,报警模块34也可以通过语音报警、短信报警等其他形式进行报警。恢复开关模块35可以包括恢复按键,用户可以在报警模块34报警后操作恢复按键,恢复按键被按下后输出恢复触发信号给控制模块32,从而控制模块32重新向内存模块20写入第一记录数据。
82.在一些示例中,请参阅图2或图3,检测装置30还包括电路板36。存储模块31和控制模块32均设置于电路板36上。检测装置30还可以包括壳体(未示出),将存储模块31和控制模块32设置在电路板36上,并将存储模块31、控制模块32及电路板36均封装在壳体内部,将报警模块34和恢复开关模块35设置在壳体外表面。
83.在一些示例中,检测装置30还包括供电模块(图未示出)。供电模块与存储模块31和控制模块32连接,以为存储模和控制模块32供电。本实施例中,检测装置30属于一个独立的系统,供电模块为存储模块31和控制模块32独立供电,使得不受内存控制模块10的影响,检测装置30能够稳定检测内存模块20的自刷新错误。
84.本技术还提供一种电子设备。参阅图1,电子设备包括内存控制模块10、内存模块20及如上任一个实施例中的检测装置30。
85.上述检测装置30存储第一记录数据,在内存模块20获得第一记录数据后控制内存模块20进入低功耗睡眠状态并进行自刷新使得内存模块20存储该第一记录数据;在唤醒内存时控制内存模块20退出自刷新,并读取内存存储的第二记录数据。根据第一记录数据和第二记录数据输出内存模块20是否发生自刷新错误的测试结果,使得用户及时知晓内存模块20的运行状态,避免系统从内存模块20中抓取到错误的关键数据影响系统运行。
86.在一实施例中,检测装置30为独立于内存控制模块10的数据采集卡或者检测装置30集成于内存控制模块10内。但即便是集成于内存控制模块10内时,检测装置30仍然属于一个独立的系统,不受内存控制模块10的影响。
87.本技术还提供一种检测方法,该检测方法应用于上述任意一个实施例中的检测装置30。参阅图4,检测方法包括:
88.步骤s41,获取第一记录数据,并控制存储模块存储第一记录数据。
89.步骤s42,判断内存控制命令是否为内存睡眠命令或唤醒内存命令。
90.具体的,检测方法可以应用于如服务器平台、个人计算机平台、消费者平台等包含独立内存的电子设备中的检测装置30。该电子设备至少包含内存(memory)模块和内存控制模块10。检测装置30从内存控制模块10中获取第一记录数据,并存储该第一记录数据。并且内存模块20可以在其自刷新之前从内存控制模块10中直接或间接的获得该第一记录数据。
91.内存模块20由于是动态随机存取存储器(ram,random access memory),故其需要进行定期刷新以保证内部存储的数据不丢失。内存控制命令用于控制内存模块20的工作状态,当内存模块20接收到内存睡眠命令也可以称为自刷新进入(sre,self-refresh enter)命令时,内存模块20进入自刷新状态,以维持存储在内存模块20内部的数据;当内存模块20接收到唤醒内存命令也可以称为自刷新退出(sre,self-refresh exit)命令时,内存模块20退出自刷新。
92.检测装置30可以通过检测内存控制模块10和内存模块20之间的控制命令状态来判断内存控制命令是否为内存睡眠命令或唤醒内存命令。
93.步骤s43,当内存控制命令为内存睡眠命令时,且在内存模块获取到第一记录数据后,控制内存模块进入自刷新。
94.具体的,检测装置30当识别到内存控制命令为内存睡眠命令时,控制内存模块20进入自刷新。内存模块20利用自刷新来维持其内部存储的第一记录数据。
95.步骤s44,当内存控制命令为唤醒内存命令时,控制内存模块退出自刷新,并在内存模块退出自刷新后获取内存模块所存储的第二记录数据。
96.具体的,检测装置30当识别到内存控制命令为唤醒内存命令时,控制内存模块20退出自刷新。检测装置30还在内存模块20退出自刷新后获取并存储内存模块20自刷新后所存储的第二记录数据。若内存模块20没有发生自刷新错误导致其内部存储数据发生丢失或翻转等,则内存模块20自刷新后所存储的第二记录数据与自刷新之前写入到内存模块20中的第一记录数据相同;反之,则内存模块20中存储的数据发生变化,第二记录数据与第一记录数据不同。
97.步骤s45,根据第一记录数据和第二记录数据输出测试结果。
98.具体的,检测装置30根据第一记录数据和第二记录数据输出内存模块20中数据是否错误的测试结果。示例性的,检测装置30可以通过比对第一记录数据和第二记录数据来输出测试结果。若第一记录数据和第二记录数据相同,则测试结果为内存模块20没有发生自刷新错误;若第一记录数据和第二记录数据不同,则测试结果为内存模块20发生自刷新错误。
99.上述检测方法存储第一记录数据,在内存模块20获得第一记录数据后控制内存模块20进入低功耗睡眠状态并进行自刷新使得内存模块20存储该第一记录数据;在唤醒内存
时控制内存模块20退出自刷新,并读取内存模块20存储的第二记录数据。根据第一记录数据和第二记录数据输出内存模块20是否发生自刷新错误的测试结果,使得用户及时知晓内存模块20的运行状态,避免系统从内存模块20中抓取到错误的关键数据影响系统运行。
100.在一些示例中,检测装置30中的控制模块32还与内存控制模块10连接,控制模块32从内存控制模块10获取第一记录数据和内存控制命令。步骤s42中判断内存控制命令是否为内存睡眠命令或唤醒内存命令,包括:获取内存控制模块10和内存模块20之间的内存控制命令状态;并根据内存控制命令状态判断内存控制模块10是否进入睡眠状态或退出睡眠状态。
101.在一些示例中,步骤s45具体包括:判断第一记录数据和第二记录数据是否相同;当第一记录数据和第二记录数据不同时,将存储的第一记录数据重新写入内存模块20,直到从内存模块20中读取的数据与第一记录数据相同。
102.在另一些示例中,步骤s45具体包括:判断第一记录数据和第二记录数据是否相同;当第一记录数据和第二记录数据不同时,输出报警信号。
103.在一些示例中,参阅图2,检测装置30还包括信号开关模块33。信号开关模块33具有第一电连接端a、第二电连接端b及第三电连接端c;第一电连接端a与内存控制模块10连接,第二电连接端b与控制模块32连接,第三电连接端c与内存模块20连接。步骤s43包括:控制第一电连接端a和第三电连接端c之间导通,且第一电连接端a和第二电连接端b之间导通;及获取并存储第一记录数据。步骤s44包括:控制第一电连接端a和第三电连接端c之间断开且第二电连接端b和第三电连接端c之间导通,并获取内存模块20自刷新后所存储的第二记录数据。检测方法还包括:当从内存模块20中读取的数据与第一记录数据相同时,控制第一电连接端a和第三电连接端c之间导通。
104.在另一个具体实施例中,参阅图3,内存控制模块10通过控制模块32与内存模块20连接。检测方法还包括:在接收到内存睡眠命令之前,将第一记录数据转发给内存模块20。检测方法还包括:当检测到从内存模块20中读取的数据与第一记录数据相同时,将从内存模块20中读取的第一记录数据转发给内存控制模块10。
105.应该理解的是,虽然图4的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图4中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
106.在本说明书的描述中,参考术语“有些实施例”、“其他实施例”、“理想实施例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特征包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性描述不一定指的是相同的实施例或示例。
107.上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
108.以上所述实施例仅表达了本技术的几种实施方式,其描述较为具体和详细,但并
不能因此而理解为对申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本技术构思的前提下,还可以做出若干变形和改进,这些都属于本技术的保护范围。因此,本技术专利的保护范围应以所附权利要求为准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1