CN114880181B - 内存测试方法及装置 - Google Patents

内存测试方法及装置 Download PDF

Info

Publication number
CN114880181B
CN114880181B CN202210781068.2A CN202210781068A CN114880181B CN 114880181 B CN114880181 B CN 114880181B CN 202210781068 A CN202210781068 A CN 202210781068A CN 114880181 B CN114880181 B CN 114880181B
Authority
CN
China
Prior art keywords
test
data
memory
test data
determining
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
Application number
CN202210781068.2A
Other languages
English (en)
Other versions
CN114880181A (zh
Inventor
罗建洪
杨珏
马少阳
杨上山
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Moore Threads Technology Co Ltd
Original Assignee
Moore Threads Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Moore Threads Technology Co Ltd filed Critical Moore Threads Technology Co Ltd
Priority to CN202210781068.2A priority Critical patent/CN114880181B/zh
Publication of CN114880181A publication Critical patent/CN114880181A/zh
Application granted granted Critical
Publication of CN114880181B publication Critical patent/CN114880181B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2205Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2273Test methods

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

本公开涉及一种内存测试方法及装置,所述方法应用于处理器,用于对与处理器连接的第一内存进行稳定性测试,处理器包括多个处理单元及多个第一逻辑电路,处理单元通过多个第一逻辑电路对第一内存进行直接存储器存取,所述方法包括:在接收到内存测试指令的情况下,通过多个处理单元及多个第一逻辑电路,以多主机数据访问的方式,执行预设轮次的数据搬移测试;在预设轮次的测试结果满足条件的情况下,确定第一内存的稳定性测试结果为测试通过。本公开实施例能够有效提高内存稳定性测试时的测试效率。

Description

内存测试方法及装置
技术领域
本公开涉及存储技术领域,尤其涉及一种内存测试方法及装置。
背景技术
内存作为电子设备的重要部件,其稳定性至关重要。当内存不稳定时,电子设备通常无法正确加载程序和数据,导致电子设备无法正常运行。因此,在电子设备出厂之前,通常会对其内存进行稳定性测试。然而,使用现有的内存测试方法进行稳定性测试时,测试效率不高。
发明内容
有鉴于此,本公开提出了一种内存测试方法及装置。
根据本公开的一方面,提供了一种内存测试方法,所述方法应用于处理器,用于对与所述处理器连接的第一内存进行稳定性测试,所述处理器包括多个处理单元及多个第一逻辑电路,所述处理单元通过所述多个第一逻辑电路对所述第一内存进行直接存储器存取,所述方法包括:在接收到内存测试指令的情况下,通过所述多个处理单元及所述多个第一逻辑电路,以多主机数据访问的方式,执行预设轮次的数据搬移测试,其中,所述多主机数据访问是指所述多个处理单元同时对所述第一内存进行数据访问,所述数据搬移是指从源地址读取数据后写入目的地址;在预设轮次的测试结果满足条件的情况下,确定所述第一内存的稳定性测试结果为测试通过。
在一种可能的实现方式中,所述条件包括所述预设轮次的测试结果均通过。
在一种可能的实现方式中,所述通过所述多个处理单元及所述多个第一逻辑电路,以多主机数据访问的方式,执行预设轮次的数据搬移测试,包括:对于任意一轮数据搬移测试,在所述第一内存中,确定各所述第一逻辑电路对应的存储区域;确定各条测试数据的长度、源地址及目的地址,其中,所述源地址、所述目的地址中的至少一种位于所述第一内存中;将各条所述测试数据加载到对应的源地址;根据各所述第一逻辑电路对应的存储区域、各条所述测试数据的长度、源地址及目的地址,通过所述多个处理单元及所述多个第一逻辑电路,以直接存储器存取的方式,同时对各条所述测试数据进行搬移;根据各条所述测试数据的长度、源地址及目的地址,确定本轮数据搬移测试的测试结果。
在一种可能的实现方式中,所述根据各所述第一逻辑电路对应的存储区域、各条所述测试数据的长度、源地址及目的地址,通过所述多个处理单元及所述多个第一逻辑电路,以直接存储器存取的方式,同时对各条所述测试数据进行搬移,包括:根据各条所述测试数据的源地址及目的地址,确定各条所述测试数据对应的存储区域,以及存储区域对应的第一逻辑电路;对于任一处理单元,通过该处理单元所处理的测试数据对应的第一逻辑电路,以直接存储器存取的方式,对所述测试数据进行搬移。
在一种可能的实现方式中,所述根据各条所述测试数据的长度、源地址及目的地址,确定本轮数据搬移测试的测试结果,包括:对于任意一条测试数据,根据所述测试数据的长度、源地址及目的地址,确定所述测试数据搬移前后是否一致;在所述测试数据搬移前后一致的情况下,确定所述测试数据搬移成功;在各条测试数据都搬移成功的情况下,确定本轮数据搬移测试的测试结果为测试通过。
在一种可能的实现方式中,所述根据所述测试数据的长度、源地址及目的地址,确定所述测试数据搬移前后是否一致,包括:根据所述测试数据的长度及源地址,确定所述测试数据搬移前的第一哈希值;根据所述测试数据的长度及目的地址,确定所述测试数据搬移后的第二哈希值;在所述第一哈希值与所述第二哈希值相同的情况下,确定所述测试数据搬移前后一致。
在一种可能的实现方式中,所述处理器还包括第二逻辑电路,所述第二逻辑电路用于计算所述第一哈希值及所述第二哈希值。
在一种可能的实现方式中,所述根据各条所述测试数据的长度、源地址及目的地址,确定本轮测试结果,还包括:在所述测试数据搬移前后不一致的情况下,确定所述测试数据搬移失败;确定并输出所述测试数据中不一致的错误数据及所述错误数据的地址信息。
在一种可能的实现方式中,所述处理器为图形处理器,所述第一内存为显存,所述显存的存储介质为双倍速率同步动态随机存储器DDR。
根据本公开的另一方面,提供了一种内存测试装置,所述装置应用于处理器,用于对与所述处理器连接的第一内存进行稳定性测试,所述处理器包括多个处理单元及多个第一逻辑电路,所述处理单元通过所述多个第一逻辑电路对所述第一内存进行直接存储器存取,所述装置包括:数据搬移测试模块,用于在接收到内存测试指令的情况下,通过所述多个处理单元及所述多个第一逻辑电路,以多主机数据访问的方式,执行预设轮次的数据搬移测试,其中,所述多主机数据访问是指所述多个处理单元同时对所述第一内存进行数据访问,所述数据搬移是指从源地址读取数据后写入目的地址;测试结果确定模块,用于在预设轮次的测试结果满足条件的情况下,确定所述第一内存的稳定性测试结果为测试通过。
在一种可能的实现方式中,所述条件包括所述预设轮次的测试结果均通过。
在一种可能的实现方式中,所述数据搬移测试模块,包括:存储区域确定子模块,对于任意一轮数据搬移测试,在所述第一内存中,确定各所述第一逻辑电路对应的存储区域;测试数据确定子模块,用于确定各条测试数据的长度、源地址及目的地址,其中,所述源地址、所述目的地址中的至少一种位于所述第一内存中;测试数据加载子模块,用于将各条所述测试数据加载到对应的源地址;测试数据搬移子模块,用于根据各所述第一逻辑电路对应的存储区域、各条所述测试数据的长度、源地址及目的地址,通过所述多个处理单元及所述多个第一逻辑电路,以直接存储器存取的方式,同时对各条所述测试数据进行搬移;测试结果确定子模块,用于根据各条所述测试数据的长度、源地址及目的地址,确定本轮数据搬移测试的测试结果。
在一种可能的实现方式中,所述测试数据搬移子模块,用于:根据各条所述测试数据的源地址及目的地址,确定各条所述测试数据对应的存储区域,以及存储区域对应的第一逻辑电路;对于任一处理单元,通过该处理单元所处理的测试数据对应的第一逻辑电路,以直接存储器存取的方式,对所述测试数据进行搬移。
在一种可能的实现方式中,所述测试结果确定子模块,用于:对于任意一条测试数据,根据所述测试数据的长度、源地址及目的地址,确定所述测试数据搬移前后是否一致;在所述测试数据搬移前后一致的情况下,确定所述测试数据搬移成功;在各条测试数据都搬移成功的情况下,确定本轮数据搬移测试的测试结果为测试通过。
在一种可能的实现方式中,所述根据所述测试数据的长度、源地址及目的地址,确定所述测试数据搬移前后是否一致,包括:根据所述测试数据的长度及源地址,确定所述测试数据搬移前的第一哈希值;根据所述测试数据的长度及目的地址,确定所述测试数据搬移后的第二哈希值;在所述第一哈希值与所述第二哈希值相同的情况下,确定所述测试数据搬移前后一致。
在一种可能的实现方式中,所述处理器还包括第二逻辑电路,所述第二逻辑电路用于计算所述第一哈希值及所述第二哈希值。
在一种可能的实现方式中,所述测试结果确定子模块,还用于:在所述测试数据搬移前后不一致的情况下,确定所述测试数据搬移失败;确定并输出所述测试数据中不一致的错误数据及所述错误数据的地址信息。
在一种可能的实现方式中,所述处理器为图形处理器,所述第一内存为显存,所述显存的存储介质为双倍速率同步动态随机存储器DDR。
本公开实施例的内存测试方法,在对与处理器连接的第一内存进行稳定性测试时,能够通过处理器中的多个处理单元及多个第一逻辑电路,以多主机数据访问的方式,执行预设轮次的数据搬移测试,并在预设轮次的测试结果满足条件的情况下,确定第一内存的稳定性测试结果为测试通过。该内存测试方法,不仅能够满足内存稳定性测试时的压力需求,而且实现简单,不需要复杂软件栈的支持,从而能够有效提高内存稳定性测试时的测试效率。
根据下面参考附图对示例性实施例的详细说明,本公开的其它特征及方面将变得清楚。
附图说明
包含在说明书中并且构成说明书的一部分的附图与说明书一起示出了本公开的示例性实施例、特征和方面,并且用于解释本公开的原理。
图1示出根据本公开一实施例的内存测试方法的应用场景的示意图。
图2示出根据本公开一实施例的内存测试方法的应用场景的示意图。
图3示出根据本公开一实施例的内存测试方法的流程图。
图4示出根据本公开一实施例的内存测试方法的处理过程的示意图。
图5示出根据本公开一实施例的内存测试装置的框图。
具体实施方式
以下将参考附图详细说明本公开的各种示例性实施例、特征和方面。附图中相同的附图标记表示功能相同或相似的元件。尽管在附图中示出了实施例的各种方面,但是除非特别指出,不必按比例绘制附图。
在这里专用的词“示例性”意为“用作例子、实施例或说明性”。这里作为“示例性”所说明的任何实施例不必解释为优于或好于其它实施例。
另外,为了更好的说明本公开,在下文的具体实施方式中给出了众多的具体细节。本领域技术人员应当理解,没有某些具体细节,本公开同样可以实施。在一些实例中,对于本领域技术人员熟知的方法、手段、元件和电路未作详细描述,以便于凸显本公开的主旨。
内存是电子设备的重要部件,其可以集成在电子设备的主板上,这类内存通常被称为板载内存。由于板载内存难以更换,为了尽可能减少电子设备因内存不稳定导致的设备故障,在电子设备出厂之前,通常会对其内存进行稳定性测试。
在一些技术方案中,通过BIST(built-in self test,内建自测)方式,对内存进行测试。然而,该测试方法只适用于内存前期配置时的测试,例如内存调试阶段的测试,无法对内存施加压力,不适用于对内存进行稳定性测试。
在另一些技术方案中,通过内存读写的方式,对内存进行稳定性测试。例如,假设电子设备为GPU(graphics processing unit,图形处理器)设备,对GPU设备的内存(GPU设备中的内存可称为显存)进行稳定性测试时,可通过GPU设备中的处理器(即GPU)对其内存进行读写的方式来实现。由于内存读写时的数据量通常较小,例如每次4字节,因此,通过内存读写的方式对内存进行稳定性测试时,压力不够,测试效果较差。
还有一些技术方案,通过运行业务的方式,对内存进行稳定性测试。例如,可通过运行GPU业务的方式,来对GPU设备的内存(即显存)进行稳定性测试。然而,业务的运行通常需要复杂的软件栈支持,例如,GPU设备运行业务时的软件栈包括KMD(kernel modedriver,内核态显卡驱动程序)、UMD(user mode driver,用户态显卡驱动程序)、OpenGL(open graphics library,开放图形库)、OpenCL(open computing language,开放计算语言)、DirectX(direct extension,一种多媒体编程接口)、CUDA(compute unified devicearchitecture,统一计算设备架构)等。由于需要复杂的软件栈支持,通过运行业务的方式对内存进行稳定性测试时,测试效率不高。
为了解决上述技术问题,本公开提出了一种内存测试方法,应用于处理器,用于对与处理器连接的第一内存进行稳定性测试。该处理器包括多个处理单元及多个第一逻辑电路,处理单元通过多个第一逻辑电路对第一内存进行直接存储器存取。该内存测试方法包括:在接收到内存测试指令的情况下,通过多个处理单元及多个第一逻辑电路,以多主机数据访问的方式,执行预设轮次的数据搬移测试,其中,多主机数据访问是指多个处理单元同时对第一内存进行数据访问,数据搬移是指从源地址读取数据后写入目的地址;在预设轮次的测试结果满足条件的情况下,确定第一内存的稳定性测试结果为测试通过。
本公开实施例的内存测试方法,在对与处理器连接的第一内存进行稳定性测试时,能够通过处理器中的多个处理单元及多个第一逻辑电路,以多主机数据访问的方式,执行预设轮次的数据搬移测试,并在预设轮次的测试结果满足条件的情况下,确定第一内存的稳定性测试结果为测试通过。该内存测试方法不仅能够满足内存稳定性测试时的压力需求,而且实现简单,不需要复杂软件栈的支持,从而能够有效提高内存稳定性测试时的测试效率。
本公开实施例的内存测试方法,可用于对电子设备的板载内存进行稳定性测试。该电子设备包括处理器,处理器与待测试的板载内存连接,可用于执行本公开实施例的内存测试方法。例如,在电子设备为GPU设备时,待测试的板载内存为GPU设备的显存,GPU设备的处理器GPU与显存连接,可用于执行本公开实施例的内存测试方法,以实现显存的稳定性测试。需要说明的是,本公开对电子设备的具体类型不作限制,也就是说,本公开实施例的内存测试方法,可用对于各种类型的电子设备的板载内存进行稳定性测试。
图1示出根据本公开一实施例的内存测试方法的应用场景的示意图。如图1所示,电子设备100包括处理器110及第一内存120,本公开实施例的内存测试方法可用于对电子设备100中的第一内存120进行稳定性测试。第一内存120为电子设备100的板载内存。处理器110与第一内存120连接,其包括3个处理单元111及3个第一逻辑电路112,每个处理器单元111均可通过这3个第一逻辑电路112对第一内存120进行直接存储器存取(directmemory access,DMA)。
在处理器110接收到内存测试指令的情况下,可对第一内存120进行稳定性测试,具体为:通过3个处理单元111及3个第一逻辑电路112,以多主机数据访问的方式,执行预设轮次的数据搬移测试,并在预设轮次的测试结果满足条件的情况下,确定电子设备100的第一内存120的稳定性测试结果为测试通过。
需要说明的是,图1仅以处理器包括3个处理单元及3个第一逻辑电路作为示例,对本公开实施例的内存测试方法的应用场景进行了示例性地说明,本领域技术人员应当理解,处理器中包括的处理单元及第一逻辑电路的数量还可以为其他,处理单元的数量与第一逻辑电路的数量可以相同或不同,本公开对此均不作限制。
在一种可能的实现方式中,对电子设备的板载内存进行稳定性测试时,也可将该电子设备连接到其他设备上,其他设备可为该电子设备提供电源等运行环境。举例来说,假设电子设备为GPU设备(比如GPU卡),对该GPU设备的显存(即板载内存)进行稳定性测试时,可将该GPU设备连接到主设备上,主设备为其提供电源等运行环境。
图2示出根据本公开一实施例的内存测试方法的应用场景的示意图。如图2所示,电子设备GPU卡200通过总线与主设备300连接,总线可例如高速串行计算机扩展(peripheral component interconnect express,PCIe)总线等,本公开对总线的具体类型不作限制。主设备300包括系统内存310、CPU(central processing unit,中央处理器)320及其他硬件单元330,其可为GPU卡200提供电源等运行环境。GPU卡200包括GPU 210、风扇220、外设接口230及显存240。本公开实施例的内存测试方法可用于对显存240进行稳定性测试。
GPU 210包括第一逻辑电路211、第一逻辑电路212、第一逻辑电路213、GPU系统管理单元214、多个GPU核(GPU cores)215及显存控制器216。其中,GPU系统管理单元214为GPU的控制单元,即MCU(micro controll unit)。多个GPU核(GPU cores)215为GPU的多个处理单元,可用于执行计算、图像渲染等处理,本公开对GPU核的具体数量不作限制。显存控制器216为显存240的控制单元,GPU系统管理单元214可通过显存控制器216对显存240进行控制及操作,多个GPU核215可通过显存控制器216对显存240进行数据存取。第一逻辑电路211、第一逻辑电路212、第一逻辑电路213均为直接存储器存取逻辑电路,即DMA逻辑电路。
在GPU卡200通过PCIe总线与主设备300连接的情况下,第一逻辑电路211可以为PCIe DMA逻辑电路(可称为PCIe DMA),GPU 210中的GPU系统管理单元214、多个GPU核215可通过第一逻辑电路211访问系统内存310及显存240。第一逻辑电路212、第一逻辑电路213可以看作是GPU 210中的另外两个DMA逻辑电路(可分别称为DMA0、DMA1),GPU 210中的GPU系统管理单元214、多个GPU核215可通过第一逻辑电路212、第一逻辑电路213访问显存240。
显存240可包括至少一个存储颗粒。例如,显存240可包括4个存储颗粒。在显存240的存储介质为双倍速率同步动态随机存储器DDR(double data rate synchronousdynamic random access memory)的情况下,显存240可包括至少一个DDR颗粒。为了便于在系统内存310与显存240之间搬移数据,可对系统内存310及显存240进行统一地址编排。需要说明的是,本领域技术人员可根据实际情况设置显存240的存储介质的具体类型,也可根据实际情况设置显存240中的存储颗粒的具体数量,本公开对此均不作限制。
在GPU 210接收到内存测试指令的情况下,可对显存240进行稳定性测试,具体为:GPU系统管理单元214可通过多个GPU核215、第一逻辑电路211、第一逻辑电路212、第一逻辑电路213,以多主机数据访问的方式,执行预设轮次的数据搬移测试,数据搬移测试可包括在系统内存310与显存240之间搬移数据、在显存240内部搬移数据、在GPU210中的缓存(图中未示出)与显存240之间搬移数据等;在预设轮次的测试结果满足条件的情况下,确定电子设备GPU卡200的显存240的稳定性测试结果为测试通过。
需要说明的是,图2仅以GPU卡作为示例,对本公开实施例的内存测试方法的应用场景进行了示例性地说明,本领域技术人员应当理解,电子设备并不限于GPU卡,本公开实施例的内存测试方法应用于其他电子设备的场景与GPU卡类似,此处不再赘述。此外,图2也仅以GPU包括3个第一逻辑电路作为示例,对本公开实施例的内存测试方法的应用场景进行了示例性地说明,本领域技术人员应该理解,GPU中包括的第一逻辑电路的数量还可以为其他,本公开对此不作限制。
在一种可能的实现方式中,本公开实施例的内存测试方法可以以固件形式写入到电子设备中。在接收到内存测试指令的情况下,电子设备的处理器可运行该固件,以完成对第一内存的稳定性测试。
图3示出根据本公开一实施例的内存测试方法的流程图。该内存测试方法应用于处理器,用于对与处理器连接的第一内存进行稳定性测试。处理器可包括多个处理单元及多个第一逻辑电路。处理单元可通过多个第一逻辑电路对第一内存进行直接存储器存取。
如图3所示,该内存测试方法包括:
步骤S31,在接收到内存测试指令的情况下,通过所述多个处理单元及所述多个第一逻辑电路,以多主机数据访问的方式,执行预设轮次的数据搬移测试,其中,所述多主机数据访问是指所述多个处理单元同时对所述第一内存进行数据访问,所述数据搬移是指从源地址读取数据后写入目的地址;
步骤S32,在预设轮次的测试结果满足条件的情况下,确定所述第一内存的稳定性测试结果为测试通过。
在一种可能的实现方式中,待测试的第一内存为电子设备的板载内存,即集成在电子设备的主板上的内存。第一内存的存储介质可以为双倍速率同步动态随机存储器DDR、或者其他存储介质,本公开对此不作限制。电子设备包括与第一内存连接的处理器,处理器可用于执行该内存测试方法。处理器包括多个处理单元及多个第一逻辑电路,各处理单元均可通过多个第一逻辑电路对第一内存进行直接存储器存取。也就是说,第一逻辑电路为DMA逻辑电路。
举例来说,假设电子设备为GPU卡,待测试的第一内存为显存,那么,该电子设备的处理器为图形处理器GPU,GPU可用于执行本公开实施例的内存测试方法,以实现对显存的稳定性测试。其中,显存的存储介质可以为双倍速率同步动态随机存储器DDR、或者其他存储介质,本公开对此不作限制。
在一种可能的实现方式中,内存测试指令可以看作是第一内存稳定性测试的启动指令。内存测试指令可通过开关、按钮等硬件方式触发,也可通过命令行、人机界面操作等软件方式触发,本公开对内存测试指令的触发方式不作限制。
在一种可能的实现方式中,处理器在执行步骤S31之前,还需确认第一内存是否已完成初始化及训练(training)。第一内存的初始化是指对第一内存进行参数设置;第一内存的训练是指根据第一内存初始化时设置的参数,对第一内存的时序、信号等进行训练,以调整时序,提高信号完整性。如果第一内存已完成初始化及训练,则直接执行步骤S31,开始对第一内存进行稳定性测试;如果第一内存未完成初始化及训练,则先对第一内存进行初始化及训练,并在第一内存完成初始化及训练后执行步骤S31。
在一种可能的实现方式中,在处理器所属的电子设备通过总线与其他设备连接的情况下,处理器在执行步骤S31之前,还确认总线是否已完成初始化。例如,图2所示的应用场景中,GPU 210在执行步骤S31之前,需确认GPU卡200与主设备300连接的总线是否完成初始化、显存240是否完成初始化及训练,并在两者均已完成的情况下,执行步骤S31,开始对显存240进行稳定性测试。
在一种可能的实现方式中,在步骤S31中,处理器可通过多个处理单元及多个第一逻辑电路,以多主机数据访问的方式,执行预设轮次的数据搬移测试。其中,多主机数据访问是指处理器中的多个处理单元同时对第一内存进行数据访问。这里是将处理器中的各个处理单元看作是第一内存的主机(master)。
数据搬移是指从源地址读取数据后写入目的地址。数据搬移时的源地址、目的地址中的至少一种位于第一内存中。如果数据搬移时的源地址位于第一内存中,则表示该数据搬移是从第一内存中读取数据后写入第二内存,即第一内存与第二内存之间的数据搬移,其中,第二内存为处理器可访问的其他内存或缓存(例如图2中的系统内存、GPU中的SRAM(static random-access memory,静态随机存取存储器)等),本公开对第二内存的具体类型不作限制。如果数据搬移时的目的地址位于第一内存中,则表示该数据搬移是从第二内存中读取数据后写入第一内存,即第一内存与第二内存之间的数据搬移。如果数据搬移时的源地址、目的地址均位于第一内存中,则表示数据搬移是从第一内存的一个地址读取数据,写入第一内存的另一个地址,即第一内存内部的数据搬移。
举例来说,假设第一内存为GPU卡中的显存,第二内存包括与GPU卡连接的主设备中的系统内存、GPU中的SRAM,那么,数据搬移可包括显存与系统内存之间的数据搬移、显存与GPU中的SRAM之间的数据搬移、以及显存内部的数据搬移。其中,显存与系统内存之间的数据搬移可通过PCIe DMA实现,显存与GPU中的SRAM之间的数据搬移以及显存内部的数据搬移可通过DMA0、DMA1实现。
在一种可能的实现方式中,假设有N条待搬移的测试数据(N为大于或等于处理单元的数量的正整数),在每轮数据搬移测试中,可通过多个处理单元及多个第一逻辑电路,以多主机数据访问的方式,对这N条测试数据进行搬移,共进行N次数据搬移,即在每轮数据搬移测试中,每条测试数据被搬移一次。例如,假设有10条待搬移的测试数据,处理器包括5个处理单元,则在每轮数据搬移测试中,每个处理单元分别搬移2个测试数据,总共进行10次数据搬移。
在一种可能的实现方式中,在每轮数据搬移测试中,通过多个处理单元及多个第一逻辑电路,以多主机数据访问的方式,对N条测试数据进行数据搬移后,对于任意一条测试数据,可通过数据比对、哈希(hash)值验证等方式,确定该条测试数据搬移前后是否一致(即确定搬移后的测试数据是否与搬移前的测试数据一致)。对于任意一轮数据搬移测试,如果每条测试数据搬移前后均一致,则可认为该轮数据搬移测试的测试结果为测试通过;如果存在测试数据搬移前后不一致的情况,则可认为该轮数据搬移测试的测试结果为测试未通过。
需要说明的是,本领域技术人员可根据实际情况对预测轮次的具体取值进行设置,例如,可将预设轮次设为5000次、8000次、10000次等,本公开对此不作限制。
在一种可能的实现方式中,执行预设轮次的数据搬移测试后,可执行步骤S32,在预设轮次的测试结果满足条件的情况下,确定第一内存的稳定性测试结果为测试通过。其中,本领域技术人员可根据实际情况对所述条件进行设置,本公开对此不作限制。
在一个示例中,所述条件可包括预设轮次的测试结果中的通过次数大于或等于预设的通过次数阈值。假设预设轮次为10000次,预设的通过次数阈值为9990,那么,在10000次数据搬移测试中,如果通过次数大于或等于9990,则可确定第一内存的稳定性测试结果为测试通过;如果通过次数小于9990,则可确定第一内存的稳定性测试结果为测试未通过。
在另一个示例中,所述条件可包括预设轮次的测试结果均通过。假设预设轮次为10000次,那么,在10000次数据搬移测试的测试结果均为通过的情况下,则可确定第一内存的稳定性测试结果为测试通过,否则,可确定第一内存的稳定性测试结果为测试未通过。将条件设置为预测轮次的测试结果均通过,使得对第一内存的稳定性测试的结果的判断更为严格,从而能够提高第一内存的稳定性测试的准确性。
本公开实施例的内存测试方法,在对与处理器连接的第一内存进行稳定性测试时,能够通过处理器中的多个处理单元及多个第一逻辑电路,以多主机数据访问的方式,执行预设轮次的数据搬移测试,并在预设轮次的测试结果满足条件的情况下,确定第一内存的稳定性测试结果为测试通过。该内存测试方法不仅能够满足内存稳定性测试时的压力需求,而且实现简单,不需要复杂软件栈的支持,从而能够有效提高内存稳定性测试时的测试效率。
在一种可能的实现方式中,步骤S31可包括:对于任意一轮数据搬移测试,在所述第一内存中,确定各所述第一逻辑电路对应的存储区域;确定各条测试数据的长度、源地址及目的地址,其中,所述源地址、所述目的地址中的至少一种位于所述第一内存中;将各条所述测试数据加载到对应的源地址;根据各所述第一逻辑电路对应的存储区域、各条所述测试数据的长度、源地址及目的地址,通过所述多个处理单元及所述多个第一逻辑电路,以直接存储器存取的方式,同时对各条所述测试数据进行搬移;根据各条所述测试数据的长度、源地址及目的地址,确定本轮数据搬移测试的测试结果。
在执行任意一轮数据搬移测试时,可首先在第一内存中,确定各第一逻辑电路对应的存储区域。例如,可根据第一逻辑电路的数量,将第一内存划分为相同数量的存储区域,然后将各第一逻辑电路与第一内存中的各存储区域对应起来,其中,第一逻辑电路与第一内存中的存储区域为一一对应关系。为了便于后续确定测试数据搬移前后是否一致,在第一内存中划分存储区域时,各存储区域的地址不重叠。各存储区域的大小可以相同或不同,可根据实际情况进行设置,本公开对此不作限制。
需要说明的是,第一内存中存储区域的划分,可以在每轮数据搬移测试时均执行,也可以在第一轮数据搬移测试执行后,保存划分结果,以便执行后续轮次的数据搬移测试时直接使用,无需再次划分。本领域技术人员可根据实际情况进行设置,本公开对此不作限制。
在一种可能的实现方式中,在确定各第一逻辑电路对应的存储区域后,可确定各条测试数据的长度、源地址及目的地址。各条测试数据的源地址、目的地址中的至少一个位于第一内存中。
在一种可能的实现方式中,各条测试数据可以是根据数据规则生成的,或者是根据数据规则预先设置的。其中,数据规则可包括:测试数据的数据类型要求;测试数据的二进制表示要求,例如,测试数据的二进制表示中包括K个连续0(K为大于或等于2的正整数)、K个连续1、0和1交错出现中的至少一种;测试数据的长度要求,例如,测试数据长度为随机值,测试数据的长度为1M、10M、1G、第一内存允许的数据最小长度、或第一内存的最大容量等;测试数据的源地址、目的地址的要求,例如,测试数据的源地址、目的地址是否位于第一内存中,测试数据的源地址或目的地址为存储区域的边界地址、测试数据的源地址或目的地址跨第一内存的存储颗粒等。通过对数据规则的设计,使得测试数据中包括不同存储区域、不同数据类型、不同长度、跨存储颗粒的测试数据,从而提高测试数据的多样性。
需要说明的是,以上仅对数据规则进行了示例性地说明,在实际应用中,本领域技术人员可根据实际情况对数据规则进行设置,本公开对此不作限制。
在一种可能的实现方式中,在根据数据规则生成各条测试数据时,可以在每轮数据搬移测试时,实时生成各条测试数据;也可以在第一轮数据搬移测试时,实时生成各条测试数据,然后将生成的各条测试数据保存至预设区域,以便执行后续轮次的数据搬移测试时直接使用,无需再次生成测试数据。
需要说明的是,本领域技术人员可根据实际情况对各条测试数据的获取方式进行设置,本公开对此不作限制。
通过这种方式,能够在对第一内存进行稳定性测试时,使用自定义的测试数据,由于自定义的测试数据的数据类型、长度、源地址、目的地址等均已明确,因此在出现错误时,能够快速定位发生错误的测试数据及其在第一内存中的地址,从而提高错误定位效率。
在一种可能的实现方式中,确定各条测试数据的长度、源地址及目的地址后,可将各条测试数据加载到对应的源地址,然后根据各第一逻辑电路对应的存储区域、各条测试数据的长度、源地址及目的地址,通过多个处理单元及多个第一逻辑电路,以直接存储器存取的方式,同时对各条测试数据进行搬移。
具体地,可首先根据各条测试数据的源地址及目的地址,确定各条测试数据对应的存储区域,以及存储区域对应的第一逻辑电路。其中,测试数据对应的存储区域可包括测试数据的源地址对应的存储区域(可称为第一区域)、以及测试数据的目的地址对应的存储区域(可称为第二区域),相应地,存储区域对应的第一逻辑电路也包括第一区域对应的第一逻辑电路、以及第二区域对应的第一逻辑电路。然后确定各处理单元需处理的测试数据。对于任一处理单元,可通过该处理单元所处理的测试数据对应的第一逻辑电路,以直接存储器存取的方式,对测试数据进行搬移。通过这种方式,能够提高处理单元的数据搬移效率,从而提高内存稳定性测试时的测试效率。
在一种可能的实现方式中,在完成各条测试数据的搬移之后,可根据各条测试数据的长度、源地址及目的地址,确定本轮数据搬移测试的测试结果。具体地,对于任意一条测试数据,可根据测试数据的长度、源地址及目的地址,通过数值比较、哈希值验证等方式,确定测试数据搬移前后是否一致(即确定搬移后的测试数据是否与搬移前的测试数据一致);如果测试数据搬移前后一致,则可确定该条测试数据搬移成功。
如果测试数据搬移前后不一致,则可确定该条测试数据搬移失败,然后确定并输出该条测试数据中搬移前后不一致的错误数据及该错误数据的地址信息。其中,错误数据及其地址信息可输出至失败日志,以便于用户查看。通过这种方式,能够在出现错误时,自动确定并输出错误数据及其地址信息,从而减少错误定位时间,提高错误定位效率。
在各条测试数据都搬移成功的情况下,可确定本轮数据搬移测试的测试结果为测试通过,否则,可确定本轮数据搬移测试的测试结果为测试通过。
在本实施例中,在执行任意一轮数据搬移测试时,首先在第一内存中,确定各第一逻辑电路对应的存储区域,然后确定各条测试数据的长度、源地址及目的地址,并将各条测试数据加载到对应的源地址,之后根据各第一逻辑电路对应的存储区域、各条测试数据的长度、源地址及目的地址,通过多个处理单元及多个第一逻辑电路,以直接存储器存取的方式,同时对各条测试数据进行搬移;并根据各条测试数据的长度、源地址及目的地址,确定本轮数据搬移测试的测试结果。通过这种方式,不仅能够满足内存稳定性测试时的压力需求,而且能够提高数据搬移测试时的测试效率,从而提高内存稳定性测试时的测试效率。
在一种可能的实现方式中,所述根据所述测试数据的长度、源地址及目的地址,确定所述测试数据搬移前后是否一致,包括:根据所述测试数据的长度及源地址,确定所述测试数据搬移前的第一哈希值;根据所述测试数据的长度及目的地址,确定所述测试数据搬移后的第二哈希值;在所述第一哈希值与所述第二哈希值相同的情况下,确定所述测试数据搬移前后一致。
在确定测试数据搬移前后是否一致时,可首先根据测试数据的长度及源地址,确定测试数据搬移前的第一哈希值,并根据测试数据的长度及目的地址,确定测试数据搬移后的第二哈希值;然后判断第一哈希值与第二哈希值是否相同;在第一哈希值与第二哈希值相同的情况下,可认为测试数据搬移前后一致;在第一哈希值与第二哈希值不同的情况下,可认为测试数据搬移前后不一致。
在本实施例中,通过判断测试数据搬移前的第一哈希值与测试数据搬移后的第二哈希值是否相同,来确定测试数据搬移前后是否一致,简单快速,能够提高处理效率。
在一种可能的实现方式中,处理器还可包括第二逻辑电路,第二逻辑电路可用于确定测试数据搬移前的第一哈希值及测试数据搬移后的第二哈希值。其中,第二逻辑电路可以看作是一种用于计算哈希值的可信引擎(trust engine)或加密算法引擎,可通过硬件逻辑算法来实现。通过处理器中的第二逻辑电路来计算第一哈希值及第二哈希值,能够提高第一哈希值及第二哈希值的计算效率。
图4示出根据本公开一实施例的内存测试方法的处理过程的示意图。本公开实施例的内存测试方法用于对电子设备中的第一内存进行稳定性测试。电子设备包括与第一内存连接的处理器,处理器包括多个处理单元及多个第一逻辑电路,各处理单元均可通过多个第一逻辑电路对第一内存进行直接存储器存取。
如图4所示,对包括待测试的第一内存的电子设备上电启动后,首先执行步骤401中,对第一内存进行初始化及训练;在第一内存已完成初始化及训练、并在接收到内存测试指令的情况下,执行第一轮数据搬移测试,具体包括:
步骤S402,在第一内存中,确定各第一逻辑电路对应的存储区域;
步骤S403,确定各条测试数据的长度、源地址及目的地址;
步骤S404,将各条测试数据加载到对应的源地址;
步骤S405,根据各第一逻辑电路对应的存储区域、各条测试数据的长度、源地址及目的地址,通过多个处理单元及多个第一逻辑电路,以直接存储器存取的方式,同时对各条测试数据进行搬移;
步骤S406,判断各条测试数据是否搬移成功;
在各条测试数据都搬移成功的情况下,执行步骤S407,确定本轮数据搬移测试的测试结果为测试通过,第一轮数据搬移测试完成;
然后执行步骤S408,判断测试轮次是否达到预设轮次;
在测试轮次未达到预设轮次的情况下,从步骤S402开始,执行下一轮数据搬移测试;在测试轮次达到预设轮次的情况下,执行步骤S409,确定第一内存的稳定性测试结果为测试通过,之后结束测试。
在各轮数据搬移测试中,如果存在测试数据搬移失败的情况,则执行以下步骤:
步骤S410,确定本轮数据搬移测试的测试结果为测试未通过;
步骤S411,确定并输出测试数据中不一致的错误数据及其地址信息;
步骤S412,确定第一内存的稳定性测试结果为测试未通过,之后结束测试。
本公开实施例的内存测试方法,在对与处理器连接的第一内存进行稳定性测试时,能够通过处理器中的多个处理单元及多个第一逻辑电路,以多主机数据访问的方式,执行预设轮次的数据搬移测试,并在预设轮次的测试结果满足条件的情况下,确定第一内存的稳定性测试结果为测试通过。该内存测试方法不仅能够满足内存稳定性测试时的压力需求,而且实现简单,不需要复杂软件栈的支持,从而能够有效提高内存稳定性测试时的测试效率。
本公开实施例的内存测试方法,还能够在每轮数据搬移测试中,使用自定义的测试数据,由于自定义的测试数据的数据类型、长度、源地址、目的地址等均已明确,因此在出现错误时,能够快速定位发生错误的测试数据及其在第一内存中的地址,从而提高错误定位效率。
在一种可能的实现方式中,可在不同的温度、湿度环境下,通过本公开实施例的内存测试方法,对第一内存(即电子设备的板载内存)进行稳定性测试,得到不同温湿度环境下的内存稳定性的测试结果。
需要说明的是,尽管以上述实施例作为示例介绍了内存测试方法如上,但本领域技术人员能够理解,本公开应不限于此。事实上,用户完全可根据个人喜好和/或实际应用场景灵活设定各步骤,只要符合本公开的技术方案即可。
图5示出根据本公开一实施例的内存测试装置的框图。所述内存测试装置应用于处理器,用于对与所述处理器连接的第一内存进行稳定性测试,所述处理器包括多个处理单元及多个第一逻辑电路,所述处理单元通过所述多个第一逻辑电路对所述第一内存进行直接存储器存取。
如图5所示,所述装置包括:
数据搬移测试模块51,用于在接收到内存测试指令的情况下,通过所述多个处理单元及所述多个第一逻辑电路,以多主机数据访问的方式,执行预设轮次的数据搬移测试,其中,所述多主机数据访问是指所述多个处理单元同时对所述第一内存进行数据访问,所述数据搬移是指从源地址读取数据后写入目的地址;
测试结果确定模块52,用于在预设轮次的测试结果满足条件的情况下,确定所述第一内存的稳定性测试结果为测试通过。
在一种可能的实现方式中,所述条件包括所述预设轮次的测试结果均通过。
在一种可能的实现方式中,所述数据搬移测试模块,包括:存储区域确定子模块,对于任意一轮数据搬移测试,在所述第一内存中,确定各所述第一逻辑电路对应的存储区域;测试数据确定子模块,用于确定各条测试数据的长度、源地址及目的地址,其中,所述源地址、所述目的地址中的至少一种位于所述第一内存中;测试数据加载子模块,用于将各条所述测试数据加载到对应的源地址;测试数据搬移子模块,用于根据各所述第一逻辑电路对应的存储区域、各条所述测试数据的长度、源地址及目的地址,通过所述多个处理单元及所述多个第一逻辑电路,以直接存储器存取的方式,同时对各条所述测试数据进行搬移;测试结果确定子模块,用于根据各条所述测试数据的长度、源地址及目的地址,确定本轮数据搬移测试的测试结果。
在一种可能的实现方式中,所述测试数据搬移子模块,用于:根据各条所述测试数据的源地址及目的地址,确定各条所述测试数据对应的存储区域,以及存储区域对应的第一逻辑电路;对于任一处理单元,通过该处理单元所处理的测试数据对应的第一逻辑电路,以直接存储器存取的方式,对所述测试数据进行搬移。
在一种可能的实现方式中,所述测试结果确定子模块,用于:对于任意一条测试数据,根据所述测试数据的长度、源地址及目的地址,确定所述测试数据搬移前后是否一致;在所述测试数据搬移前后一致的情况下,确定所述测试数据搬移成功;在各条测试数据都搬移成功的情况下,确定本轮数据搬移测试的测试结果为测试通过。
在一种可能的实现方式中,所述根据所述测试数据的长度、源地址及目的地址,确定所述测试数据搬移前后是否一致,包括:根据所述测试数据的长度及源地址,确定所述测试数据搬移前的第一哈希值;根据所述测试数据的长度及目的地址,确定所述测试数据搬移后的第二哈希值;在所述第一哈希值与所述第二哈希值相同的情况下,确定所述测试数据搬移前后一致。
在一种可能的实现方式中,所述处理器还包括第二逻辑电路,所述第二逻辑电路用于计算所述第一哈希值及所述第二哈希值。
在一种可能的实现方式中,所述测试结果确定子模块,还用于:在所述测试数据搬移前后不一致的情况下,确定所述测试数据搬移失败;确定并输出所述测试数据中不一致的错误数据及所述错误数据的地址信息。
在一种可能的实现方式中,所述处理器为图形处理器,所述第一内存为显存,所述显存的存储介质为双倍速率同步动态随机存储器DDR。
在一些实施例中,本公开实施例提供的装置具有的功能或包含的模块可以用于执行上文方法实施例描述的方法,其具体实现可以参照上文方法实施例的描述,为了简洁,这里不再赘述。
以上已经描述了本公开的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。

Claims (18)

1.一种内存测试方法,其特征在于,所述方法应用于处理器,用于对与所述处理器连接的第一内存进行稳定性测试,所述处理器包括多个处理单元及多个第一逻辑电路,所述处理单元通过所述多个第一逻辑电路对所述第一内存进行直接存储器存取,
所述方法包括:
在接收到内存测试指令的情况下,通过所述多个处理单元及所述多个第一逻辑电路,以多主机数据访问的方式,执行预设轮次的数据搬移测试,其中,所述多主机数据访问是指所述多个处理单元同时对所述第一内存进行数据访问,所述数据搬移是指从源地址读取数据后写入目的地址;
在预设轮次的测试结果满足条件的情况下,确定所述第一内存的稳定性测试结果为测试通过;
其中,所述通过所述多个处理单元及所述多个第一逻辑电路,以多主机数据访问的方式,执行预设轮次的搬移测试,包括:
对于任意一轮数据搬移测试,在所述第一内存中,确定各所述第一逻辑电路对应的存储区域;
确定各条测试数据的长度、源地址及目的地址;
根据各所述第一逻辑电路对应的存储区域、各条所述测试数据的长度、源地址及目的地址,通过所述多个处理单元及所述多个第一逻辑电路,以直接存储器存取的方式,同时对各条所述测试数据进行搬移。
2.根据权利要求1所述的方法,其特征在于,所述条件包括所述预设轮次的测试结果均通过。
3.根据权利要求1所述的方法,其特征在于,所述源地址、所述目的地址中的至少一种位于所述第一内存中;
所述通过所述多个处理单元及所述多个第一逻辑电路,以多主机数据访问的方式,执行预设轮次的搬移测试,还包括:
在同时对各条所述测试数据进行搬移之前,将各条所述测试数据加载到对应的源地址;以及
在同时对各条所述测试数据进行搬移之后,根据各条所述测试数据的长度、源地址及目的地址,确定本轮数据搬移测试的测试结果。
4.根据权利要求3所述的方法,其特征在于,所述根据各所述第一逻辑电路对应的存储区域、各条所述测试数据的长度、源地址及目的地址,通过所述多个处理单元及所述多个第一逻辑电路,以直接存储器存取的方式,同时对各条所述测试数据进行搬移,包括:
根据各条所述测试数据的源地址及目的地址,确定各条所述测试数据对应的存储区域,以及存储区域对应的第一逻辑电路;
对于任一处理单元,通过该处理单元所处理的测试数据对应的第一逻辑电路,以直接存储器存取的方式,对所述测试数据进行搬移。
5.根据权利要求3所述的方法,其特征在于,所述根据各条所述测试数据的长度、源地址及目的地址,确定本轮数据搬移测试的测试结果,包括:
对于任意一条测试数据,根据所述测试数据的长度、源地址及目的地址,确定所述测试数据搬移前后是否一致;
在所述测试数据搬移前后一致的情况下,确定所述测试数据搬移成功;
在各条测试数据都搬移成功的情况下,确定本轮数据搬移测试的测试结果为测试通过。
6.根据权利要求5所述的方法,其特征在于,所述根据所述测试数据的长度、源地址及目的地址,确定所述测试数据搬移前后是否一致,包括:
根据所述测试数据的长度及源地址,确定所述测试数据搬移前的第一哈希值;
根据所述测试数据的长度及目的地址,确定所述测试数据搬移后的第二哈希值;
在所述第一哈希值与所述第二哈希值相同的情况下,确定所述测试数据搬移前后一致。
7.根据权利要求6所述的方法,其特征在于,所述处理器还包括第二逻辑电路,所述第二逻辑电路用于计算所述第一哈希值及所述第二哈希值。
8.根据权利要求3所述的方法,其特征在于,所述根据各条所述测试数据的长度、源地址及目的地址,确定本轮测试结果,还包括:
在所述测试数据搬移前后不一致的情况下,确定所述测试数据搬移失败;
确定并输出所述测试数据中不一致的错误数据及所述错误数据的地址信息。
9.根据权利要求1至8中任意一项所述的方法,其特征在于,所述处理器为图形处理器,所述第一内存为显存,所述显存的存储介质为双倍速率同步动态随机存储器DDR。
10.一种内存测试装置,其特征在于,所述装置应用于处理器,用于对与所述处理器连接的第一内存进行稳定性测试,所述处理器包括多个处理单元及多个第一逻辑电路,所述处理单元通过所述多个第一逻辑电路对所述第一内存进行直接存储器存取,
所述装置包括:
数据搬移测试模块,用于在接收到内存测试指令的情况下,通过所述多个处理单元及所述多个第一逻辑电路,以多主机数据访问的方式,执行预设轮次的数据搬移测试,其中,所述多主机数据访问是指所述多个处理单元同时对所述第一内存进行数据访问,所述数据搬移是指从源地址读取数据后写入目的地址;
测试结果确定模块,用于在预设轮次的测试结果满足条件的情况下,确定所述第一内存的稳定性测试结果为测试通过;
其中,所述数据搬移测试模块,包括:
存储区域确定子模块,对于任意一轮数据搬移测试,在所述第一内存中,确定各所述第一逻辑电路对应的存储区域;
测试数据确定子模块,用于确定各条测试数据的长度、源地址及目的地址;
测试数据搬移子模块,用于根据各所述第一逻辑电路对应的存储区域、各条所述测试数据的长度、源地址及目的地址,通过所述多个处理单元及所述多个第一逻辑电路,以直接存储器存取的方式,同时对各条所述测试数据进行搬移。
11.根据权利要求10所述的装置,其特征在于,所述条件包括所述预设轮次的测试结果均通过。
12.根据权利要求10所述的装置,其特征在于,所述源地址、所述目的地址中的至少一种位于所述第一内存中;
所述数据搬移测试模块,还包括:
测试数据加载子模块,用于在同时对各条所述测试数据进行搬移之前,将各条所述测试数据加载到对应的源地址;
测试结果确定子模块,用于在同时对各条所述测试数据进行搬移之后,根据各条所述测试数据的长度、源地址及目的地址,确定本轮数据搬移测试的测试结果。
13.根据权利要求12所述的装置,其特征在于,所述测试数据搬移子模块,用于:
根据各条所述测试数据的源地址及目的地址,确定各条所述测试数据对应的存储区域,以及存储区域对应的第一逻辑电路;
对于任一处理单元,通过该处理单元所处理的测试数据对应的第一逻辑电路,以直接存储器存取的方式,对所述测试数据进行搬移。
14.根据权利要求12所述的装置,其特征在于,所述测试结果确定子模块,用于:
对于任意一条测试数据,根据所述测试数据的长度、源地址及目的地址,确定所述测试数据搬移前后是否一致;
在所述测试数据搬移前后一致的情况下,确定所述测试数据搬移成功;
在各条测试数据都搬移成功的情况下,确定本轮数据搬移测试的测试结果为测试通过。
15.根据权利要求14所述的装置,其特征在于,所述根据所述测试数据的长度、源地址及目的地址,确定所述测试数据搬移前后是否一致,包括:
根据所述测试数据的长度及源地址,确定所述测试数据搬移前的第一哈希值;
根据所述测试数据的长度及目的地址,确定所述测试数据搬移后的第二哈希值;
在所述第一哈希值与所述第二哈希值相同的情况下,确定所述测试数据搬移前后一致。
16.根据权利要求15所述的装置,其特征在于,所述处理器还包括第二逻辑电路,所述第二逻辑电路用于计算所述第一哈希值及所述第二哈希值。
17.根据权利要求12所述的装置,其特征在于,所述测试结果确定子模块,还用于:
在所述测试数据搬移前后不一致的情况下,确定所述测试数据搬移失败;
确定并输出所述测试数据中不一致的错误数据及所述错误数据的地址信息。
18.根据权利要求10至17中任意一项所述的装置,其特征在于,所述处理器为图形处理器,所述第一内存为显存,所述显存的存储介质为双倍速率同步动态随机存储器DDR。
CN202210781068.2A 2022-07-05 2022-07-05 内存测试方法及装置 Active CN114880181B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210781068.2A CN114880181B (zh) 2022-07-05 2022-07-05 内存测试方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210781068.2A CN114880181B (zh) 2022-07-05 2022-07-05 内存测试方法及装置

Publications (2)

Publication Number Publication Date
CN114880181A CN114880181A (zh) 2022-08-09
CN114880181B true CN114880181B (zh) 2022-09-06

Family

ID=82683270

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210781068.2A Active CN114880181B (zh) 2022-07-05 2022-07-05 内存测试方法及装置

Country Status (1)

Country Link
CN (1) CN114880181B (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006227668A (ja) * 2005-02-15 2006-08-31 Ricoh Co Ltd メモリモデルとプログラムと論理回路検証方法
JP2010049581A (ja) * 2008-08-22 2010-03-04 Jds:Kk ストレージ機器の使用限界予想方法又はその使用限界予想装置若しくはその使用限界予想時間解析用プログラム
CN112988491A (zh) * 2021-05-20 2021-06-18 新华三半导体技术有限公司 一种内存测试方法、装置及内存控制器
CN113721838A (zh) * 2021-07-22 2021-11-30 成都忆芯科技有限公司 用于存储设备的写、读数据方法、存储控制器以及dma引擎
CN113868039A (zh) * 2021-08-30 2021-12-31 浪潮电子信息产业股份有限公司 一种测试方法、装置及相关设备

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006227668A (ja) * 2005-02-15 2006-08-31 Ricoh Co Ltd メモリモデルとプログラムと論理回路検証方法
JP2010049581A (ja) * 2008-08-22 2010-03-04 Jds:Kk ストレージ機器の使用限界予想方法又はその使用限界予想装置若しくはその使用限界予想時間解析用プログラム
CN112988491A (zh) * 2021-05-20 2021-06-18 新华三半导体技术有限公司 一种内存测试方法、装置及内存控制器
CN113721838A (zh) * 2021-07-22 2021-11-30 成都忆芯科技有限公司 用于存储设备的写、读数据方法、存储控制器以及dma引擎
CN113868039A (zh) * 2021-08-30 2021-12-31 浪潮电子信息产业股份有限公司 一种测试方法、装置及相关设备

Also Published As

Publication number Publication date
CN114880181A (zh) 2022-08-09

Similar Documents

Publication Publication Date Title
WO2018118837A1 (en) Method to dynamically inject errors in a repairable memory on silicon and a method to validate built-in-self-repair logic
US8892794B2 (en) Using central direct memory access (CDMA) controller to test integrated circuit
CN113220220B (zh) 控制器、控制器的操作方法及包括该控制器的存储装置
US20200218653A1 (en) Controller, data storage device, and operating method thereof
US10698819B2 (en) Memory system and operating method thereof
CN110765032A (zh) 基于系统管理总线接口对i2c存储器进行读写的方法
CN113868039A (zh) 一种测试方法、装置及相关设备
CN116302721A (zh) 芯片设计验证系统与方法及计算机可读取记录介质
CN114446381B (zh) eMMC故障分析方法、装置、可读存储介质及电子设备
CN110737552A (zh) 一种基于fpga的sfc接口测试设备与方法
CN114880181B (zh) 内存测试方法及装置
US20050107987A1 (en) System and method for testing a memory with an expansion card using DMA
US10861576B2 (en) Nonvolatile memory device, operating method thereof and data storage device including the same
US7350109B2 (en) System and method for testing a memory using DMA
US20230245711A1 (en) Memory priming and initalization systems and methods
CN109815071A (zh) 一种基于Linux系统的存储介质掉电测试方法
CN112417802B (zh) 一种模拟存储芯片的方法、系统、设备及存储介质
CN110399645B (zh) 基于固态硬盘的fpga原型验证加速系统及实现方法
CN114579484A (zh) 数据存储装置及其操作方法
CN114385426A (zh) 存储器测试方法、装置、设备及存储介质
CN117393032B (zh) 一种存储装置及其数据处理方法
CN117931555B (zh) 在内核态下模拟scsi设备故障的方法及装置
CN117690475B (zh) 一种存储芯片的检测系统及检测方法
CN117785756B (zh) 存储器控制系统、方法、芯片及计算机可读存储介质
CN111415697B (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