CN116820860A - 处理器及其测试方法 - Google Patents

处理器及其测试方法 Download PDF

Info

Publication number
CN116820860A
CN116820860A CN202311091799.5A CN202311091799A CN116820860A CN 116820860 A CN116820860 A CN 116820860A CN 202311091799 A CN202311091799 A CN 202311091799A CN 116820860 A CN116820860 A CN 116820860A
Authority
CN
China
Prior art keywords
data sequence
processor
read
address
writing
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.)
Pending
Application number
CN202311091799.5A
Other languages
English (en)
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.)
Intel China Research Center Co ltd
Original Assignee
Intel China Research Center 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 Intel China Research Center Co ltd filed Critical Intel China Research Center Co ltd
Priority to CN202311091799.5A priority Critical patent/CN116820860A/zh
Publication of CN116820860A publication Critical patent/CN116820860A/zh
Pending legal-status Critical Current

Links

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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing

Landscapes

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

Abstract

本申请涉及一种处理器及其测试方法。处理器包括测试器和状态寄存器。测试器独立于处理器的内核并且被配置为:基于相同的数据生成机制和相同的初始数据序列,生成伪随机写入数据序列和期望读取数据序列;通过处理器的内存端口,以预定地址写入顺序向双倍数据速率(DDR)内存子系统中的预定地址范围写入伪随机写入数据序列;以及通过处理器的内存端口,以预定地址读取顺序从DDR内存子系统中的预定地址范围读取数据序列并比较所读取的数据序列与期望读取数据序列是否相同,其中,预定地址写入顺序和预定地址读取顺序是相同的。状态寄存器被配置为存储由测试器生成的测试结果。

Description

处理器及其测试方法
技术领域
本公开一般地涉及计算机领域,尤其涉及一种处理器及其测试方法。
背景技术
精简指令集计算机(Reduced Instruction Set Computer,RISC)是一种执行较少类型计算机指令的处理器。RISC处理器的基本出发点是通过精减机器指令系统来减少硬件设计的复杂程度,同时提高指令执行速度。在RISC处理器中,无论简单还是复杂操作,均由简单指令的程序块完成。
发明内容
根据本发明实施例的处理器,包括:测试器,独立于处理器的内核并且被配置
为:基于相同的数据生成机制和相同的初始数据序列,生成伪随机写入数据序列和期望读取数据序列,通过处理器的内存端口,以预定地址写入顺序向双倍数据速率(DDR)内存子系统中的预定地址范围写入伪随机写入数据序列,并且通过处理器的内存端口,以预定地址读取顺序从DDR内存子系统中的预定地址范围读取数据序列,并比较所读取的数据序列与期望读取数据序列是否相同,其中,预定地址写入顺序和预定地址读取顺序是相同的;以及状态寄存器,被配置为存储由测试器生成的测试结果。
根据本发明另一实施例的处理器,包括:测试器,独立于处理器的内核并且被配置为:通过处理器的内存端口,以第一地址写入顺序向双倍数据速率(DDR)内存子系统中的第一地址范围写入第一写入数据序列,并且通过处理器的内存端口,以第一地址读取顺序从第一地址范围读取数据序列,并比较从第一地址范围所读取的数据序列与第一期望读取数据序列是否相同,其中,第一地址读取顺序和第一地址写入顺序是相同的,并且第一期望读取数据序列和第一写入数据序列是预定的并且是相同的;以及状态寄存器,被配置为存储由所述测试器生成的测试结果。
根据本发明实施例的用于处理器的测试方法,包括利用独立于处理器的内核的测试器执行以下处理:基于相同的数据生成机制和相同的初始数据序列,生成伪随机写入数据序列和期望读取数据序列;通过处理器的内存端口,以预定地址写入顺序向双倍数据速率(DDR)内存子系统中的预定地址范围写入伪随机写入数据序列;以及通过处理器的内存端口,以预定地址读取顺序从DDR内存子系统中的预定地址范围读取数据序列,并比较所读取的数据序列与期望读取数据序列是否相同,其中,预定地址写入顺序和预定地址读取顺序是相同的。
根据本发明另一实施例的用于处理器的测试方法,包括利用独立于处理器的内核的测试器执行以下处理:通过处理器的内存端口,以第一地址写入顺序向双倍数据速率(DDR)内存子系统中的第一地址范围写入第一写入数据序列;以及通过处理器的内存端口,以第一地址读取顺序从第一地址范围读取数据序列,并比较从第一地址范围所读取的数据序列与第一期望读取数据序列是否相同,其中,第一地址读取顺序和第一地址写入顺序是相同的,并且第一期望读取数据序列和第一写入数据序列是预定的并且是相同的。
附图说明
本公开的实施例将以示例而非限制的方式在附图中进行图示,其中,类似的附图标记指代类似的元件。
图1示出了根据本公开实施例的处理器的示例框图。
图2示出了根据本公开实施例的测试器的示例框图。
图3示出了根据本公开实施例的测试器的另一示例框图。
图4示出了图3所示的测试器执行的示例测试过程的流程图。
图5示出了根据本公开各种实施例的处理器可以用在其中的示例计算设备的框图。
具体实施方式
将使用本领域技术人员常用的术语来描述说明性实施例的各个方面,以将本公开的实质传达给本领域其他技术人员。然而,对于本领域技术人员来说显而易见的是,可以使用所描述的方面的部分来实施许多替代实施例。出于解释的目的,给出了具体的数字、材料、和配置,以便提供对说明性实施例的透彻理解。然而,对于本领域技术人员来说显而易见的是,可以在没有这些具体细节的情况下实施替代实施例。在其它实例中,为了避免模糊说明性实施例,可以省略或简化公知特征。
此外,以最有助于理解说明性实施例的方式,将各种操作依次描述为多个离散操作;然而,不应将描述顺序解释为暗示这些操作必须是顺序相关的。特别地,这些操作不需要按照呈现的顺序来执行。
本文中重复使用短语“在实施例中”、“在一个实施例中”、和“在一些实施例中”。这些短语通常不指代相同的实施例;然而,它们也可以指代相同的实施例。除非上下文另有规定,否则术语“包含”、“具有”、和“包括”是同义词。短语“A或B”和“A/B”的意思是“(A)、(B)、或(A和B)”。
在采用RISC 中央处理单元(CPU)的计算设备中,RISC CPU通常需要经由包括异步桥、芯片网络(Network of Chip,NoC)、双倍数据速率(Double Data Rate,DDR)控制器、DDR物理层接口(DDR PHY)等的通信路径来对DDR内存子系统进行存取操作。如果RISC CPU不能对DDR内存子系统进行存取操作,计算设备的操作系统就无法启动进而无法执行后续操作。但是,当RISC CPU对DDR内存子系统的存取操作出现故障时,通常很难确定故障是由于RISCCPU本身的问题造成的还是由于RISC CPU外部的其他部件的问题造成的。
鉴于以上情况,提出了根据本公开实施例的处理器,包括独立于该处理器的内核的测试器,该测试器可以被配置为测试处理器外部的、与处理器对DDR内存子系统的存取操作有关的其他部件是否处于正常工作状态。这样,在处理器对DDR内存子系统的存取操作出现故障时,如果测试器的测试结果表明处理器外部的、与处理器对DDR内存子系统的存取操作有关的其他部件处于正常工作状态,则可以确定故障是由于处理器本身的问题造成的,否则可以确定故障是由于处理器外部的、与处理器对DDR内存子系统的存取操作有关的其他部件的问题造成的。
图1示出了根据本公开实施例的处理器的示例框图。如图1所示,根据本公开实施例的处理器100包括内核102、最后一级缓存(LLC)104、测试器106、以及内存端口108。当处理器100处于正常工作模式时,测试器106关闭,内核102经由LLC 104耦合到内存端口108,并经由异步桥和NoC对DDR内存子系统进行存取操作。当处理器100处于测试模式时,测试器106启用并耦合到内存端口108,并经由异步桥和NoC对DDR内存子系统进行存取操作。
如图1所示,在一些实施例中,根据本公开实施例的处理器100还可以包括多路复用器(MUX)110,被配置为在处理器100处于正常工作模式时将LLC 104耦合到内存端口108,并且在处理器100处于测试模式时将测试器106耦合到内存端口108。
图2示出了根据本公开实施例的测试器的示例框图。如图2所示,根据本公开实施例的测试器106包括数据发送单元1062-1、数据包读写单元1064-1、以及数据接收单元1066-1,其中:数据发送单元1062-1被配置为基于第一数据生成机制和第一初始数据序列生成伪随机写入数据序列;数据包读写单元1064-1被配置为通过内存端口108,以预定地址写入顺序向DDR内存子系统中的预定地址范围写入伪随机写入数据序列并以预定地址读取顺序从DDR内存子系统中的预定地址范围读取数据序列;数据接收单元1066-1被配置为基于第二数据生成机制和第二初始数据序列生成期望读取数据序列,接收数据包读写单元1064-1所读取的数据序列并比较该数据序列与期望读取数据序列是否相同。这里,预定地址写入顺序和预定地址读取顺序是相同的,第一数据生成机制和第二数据生成机制是相同的,并且第一初始数据序列和第二初始数据序列是相同的。
需要说明的是,由于第一数据生成机制和第二数据生成机制是相同的并且第一初始数据序列和第二初始数据序列是相同的,所以伪随机写入数据序列和期望读取数据序列是相同的。如果数据包读写单元1064-1所读取的数据序列与期望读取数据序列相同,则表明处理器100外部的、与处理器100对DDR内存子系统的存取操作有关的其他部件处于正常工作状态,否则表明处理器100外部的、与处理器100对DDR内存子系统的存取操作有关的其他部件不处于正常工作状态。
在一些实施例中,如图2所示,数据接收单元1066-1还可以被配置为记录数据包读写单元1064-1所读取的数据序列与期望读取数据序列之间的比较结果,并将所记录的比较结果写入处理器100的控制状态寄存器(Control and Status Register,CSR)112。
在一些实施例中,数据发送单元1062-1还可以被配置为基于第一数据生成机制和第一初始数据序列生成多个随机写入数据序列。数据包读写单元1064-1还可以被配置为通过多个写入周期向DDR内存子系统写入多个伪随机写入数据序列并通过多个读取周期从DDR内存子系统读取多个数据序列。数据接收单元1066-1还可以被配置为基于第二数据生成机制和第二初始数据序列生成多个期望读取数据序列,接收数据包读写单元1064-1所读取的多个数据序列,并比较这些数据序列中的每个数据序列与多个期望读取数据序列中的相应一个是否相同。这里,与多个写入周期中的每个写入周期相关联的地址范围、地址写入顺序、以及伪随机写入数据序列和与多个读取周期中的相应读取周期相关联的地址范围、地址读取顺序、以及期望读取数据序列分别是相同的。多个写入周期中的每个写入周期期间的数据传输次数和数据传输量可以是相同的,和/或多个读取周期中的每个读取周期期间的数据传输次数和数据传输量也可以是相同的。在这种情况下,数据接收单元1066-1还可以被配置为将数据包读写单元1064-1所读取的多个数据序列中的每个数据序列与多个期望读取数据序列中的相应一个的比较结果和前一个比较结果进行逻辑“或”运算,并将逻辑运算的结果写入CSR 112(也就是说,只要发生一次所读取的数据序列与期望读取数据序列不相等的情况就会被一直保留下来,表示有比较错误发生)。
在一些实施例中,如图2所示,第一数据生成机制和第一初始数据序列可以由处理器100的调试器114为数据发送单元1062-1配置,并且第二数据生成机制和第二初始数据序列可以由处理器100的调试器114为数据接收单元1066-1配置。这里,调试器114可以是处理器100中的硬件单元,并且可以对CSR 112进行读写操作。
在一些实施例中,数据发送单元1066-1还可以被配置为利用线性反馈移位寄存器(Linear Feedback Shift Register,LFSR)生成伪随机写入数据序列,并且数据接收单元1066-1还可以被配置为利用LFSR生成期望读取数据序列。处理器100可以是采用RISC架构的CPU(即,RISC CPU)。
在一些实施例中,数据包读写单元1064-1可以被配置为基于诸如,高级可扩展接口(Advanced eXtensible Interface,AXI)协议、高级高性能总线(Advanced HighPerformance Bus,AHB)协议、以及一致性集线器接口(Coherent Hub Interface,CHI)协议之类的总线协议来向DDR内存子系统写入伪随机写入数据序列并从DDR内存子系统读取数据序列。例如,数据包读写单元1064-1可以生成AXI写入或读取周期,其中,与AXI写入或读取周期相关联的突发长度为1、突发大小为256位、突发类型为递增地址模式。需要说明的是,对于DDR内存子系统的写入周期和读取周期仅依赖于测试器106,而与内核102无关。表1和表2分别示出了与AXI写入和读取周期有关的示例信号及其含义:
表1
表2
下面结合示例来说明图2所示的测试器106的工作过程。假设先执行16个写入周期的数据写入,再执行16个读取周期的数据读取:
步骤1,执行第1个写入周期的写入事务(awaddr=0x2110000000,awid=0x0,awburst=0x1,awlen=3,awsize=5,wstrb=32'ffffffff);
步骤2,执行第2个写入周期的写入事务(awaddr=0x2110000080,awid=0x0,awburst=0x1,awlen=3,awsize=5,wstrb=32'ffffffff);
步骤3至15,执行第3至15个写入周期的写入事务;
步骤16,执行第16个写入周期的写入事务(awaddr=0x2110000780,awid=0x0,awburst=0x1,awlen=3,awsize=5,wstrb=32'ffffffff);
步骤17,执行第1个读取周期的读取事务(araddr=0x2110000000,arid=0x1,arburst=0x1、arlen=3,arsize=5),在读取响应返回后,比较所读取的数据序列与预先生成的期望读取数据序列(即,与第1个写入周期相关联的伪随机写入数据序列所对应的期望读取数据序列)是否相同,并在比较完成后生成下一个期望读取数据序列(即,与第2个写入周期相关联的伪随机写入数据序列所对应的期望读取数据序列)。在采用AXI协议的情况下,与各个写入周期相关联的写入事务标识符是相同的,并且与各个读取周期相关联的读取事务标识符是相同的。
步骤18至31,执行第2至15个读取周期的读取事务,在每次读取响应返回后,比较所读取的数据序列与预先生成的相应期望读取数据序列是否相同,并在比较完成后生成下一个期望读取数据序列。
步骤32,执行第16个读取周期的读取事务,在读取响应返回后,比较所读取的数据序列与预先生成的相应期望读取数据序列(即,与第16个写入周期相关联的伪随机写入数据序列所对应的期望读取数据序列)是否相同。
可以看出,结合图2描述的测试器执行的测试方法是一种基于伪随机数据序列的测试方法,该测试方法包括:基于相同的数据生成机制和相同的初始数据序列生成伪随机写入数据序列和期望读取数据序列;通过内存端口108以预定地址写入顺序向DDR内存子系统中的预定地址范围写入伪随机写入数据序列;以及通过内存端口108以预定地址读取顺序从DDR内存子系统中的预定地址范围读取数据序列,并比较所读取的数据序列与期望读取数据序列是否相同。
在一些实施例中,结合图2描述的测试器执行的测试方法还包括:记录所读取的数据序列与期望读取数据序列之间的比较结果,并将所记录的比较结果作为测试结果写入处理器100的CSR 112。
在一些实施例中,结合图2描述的测试器执行的测试方法还包括:生成多个伪随机写入数据序列和多个期望读取数据序列,通过多个写入周期向DDR内存子系统写入多个伪随机写入数据序列,通过多个读取周期从DDR内存子系统读取多个数据序列,并比较所读取的每个数据序列与多个期望读取数据序列中的相应一个是否相同,其中,与多个写入周期中的每个写入周期相关联的地址范围、地址写入顺序、以及伪随机写入数据序列和与多个读取周期中的相应读取周期相关联的地址范围、地址读取顺序、以及期望读取数据序列分别是相同的。
在一些实施例中,在结合图2描述的测试器执行的测试方法中,多个写入周期中的每个写入周期期间的数据传输次数和数据传输量是相同的,和/或多个读取周期中的每个读取周期期间的数据传输次数和数据传输量是相同的。
在一些实施例中,结合图2描述的测试器执行的测试方法还包括:利用线性反馈移位寄存器生成伪随机写入数据序列和期望读取数据序列。
图3示出了根据本公开实施例的测试器的另一示例框图。如图3所示,根据本公开实施例的测试器106包括数据包生成单元1062-2和数据比较单元1064-2,其中:数据包生成单元1062-2被配置为生成第一写入数据序列,通过内存端口108以第一地址写入顺序向DDR内存子系统中的第一地址范围写入第一写入数据序列并以第一地址读取顺序从DDR内存子系统中的第一地址范围读取数据序列;数据比较单元1064-2被配置为比较数据包生成单元1062-2从DDR内存子系统中的第一地址范围所读取的数据序列与第一期望读取数据序列是否相同。这里,第一地址读取顺序和第一地址写入顺序是相同的,并且第一期望读取数据序列和第一写入数据序列是预定的并且是相同的。如果数据包生成单元1062-2从DDR内存子系统中的第一地址范围所读取的数据序列与第一期望读取数据序列相同,则表明处理器100外部的、与处理器100对DDR内存子系统的存取操作有关的其他部件处于正常工作状态,否则表明处理器100外部的、与处理器100对DDR内存子系统的存取操作有关的其他部件不处于正常工作状态。
在一些实施例中,数据包生成单元1062-2还可以被配置为生成第二写入数据序列,在第一写入数据序列的写入完成后通过内存端口108以第二地址写入顺序向DDR内存子系统中的第二地址范围写入第二写入数据序列,并在对第一地址范围的数据序列的读取完成后通过内存端口108以第二地址读取顺序从DDR内存子系统中的第二地址范围读取数据序列。数据比较单元1064-2还可以被配置为比较数据包生成单元1062-2从DDR内存子系统中的第二地址范围所读取的数据序列与第二期望读取数据序列是否相同。这里,第二地址读取顺序和第二地址写入顺序是相同的,并且第二期望读取数据序列和第二写入数据序列是预定的并且是相同的。如果数据包生成单元1062-2从DDR内存子系统中的第二地址范围所读取的数据序列与第二期望读取数据序列相同,则表明处理器100外部的、与处理器100对DDR内存子系统的存取操作有关的其他部件处于正常工作状态,否则表明处理器100外部的、与处理器100对DDR内存子系统的存取操作有关的其他部件不处于正常工作状态。
在一些实施例中,数据包生成单元1062-2还可以被配置为在第二写入数据序列的写入完成后,通过内存端口108再次以第一地址写入顺序向DDR内存子系统中的第一地址范围写入第一写入数据序列并以第一地址读取顺序从DDR内存子系统中的第一地址范围读取数据序列,在第一写入数据序列的再次写入完成后,通过内存端口108再次以第二地址写入顺序向DDR内存子系统中的第二地址范围写入第二写入数据序列,并且在对第一地址范围的数据序列的再次读取完成后,通过内存端口108再次以第二地址读取顺序从DDR内存子系统中的第二地址范围读取数据序列。
在一些实施例中,数据比较单元1064-2还可以被配置为在数据包生成单元1062-2再次从DDR内存子系统中的第一或第二地址范围读取数据序列后,比较数据包生成单元1062-2从DDR内存子系统中的第一或第二地址范围所读取的数据序列与第一或第二期望读取数据序列是否相同。
在一些实施例中,数据包生成单元1062-2还可以被配置为在第一写入数据序列的写入或再次写入完成第一预定百分比后或者在第一写入数据序列的写入或再次写入执行第一预定时间后,以第一地址读取顺序从DDR内存子系统中的第一地址范围读取数据序列,和/或在第二写入数据序列的写入或再次写入完成第二预定百分比后或者在第二写入数据序列的写入或再次写入执行第二预定时间后,以第二地址读取顺序从DDR内存子系统中的第二地址范围读取数据序列。
在一些实施例中,数据比较单元1064-2还可以被配置为记录从DDR内存子系统中的第一地址范围或第二地址范围所读取的数据序列与第一期望读取数据序列或第二期望读取数据序列的比较结果,并将所记录的比较结果作为测试结果写入处理器100的CSR112。处理器100可以是采用RISC CPU。
表3和表4分别示出了第一写入数据序列和第一期望读取数据序列的示例(仅列出了8个写入周期和8个读取周期):
表3
表4
表5和表6分别示出了第二写入数据序列和第二期望读取数据序列的示例(仅列出了8个写入周期和8个读取周期):
表5
表6
在一些实施例中,在以64位的形式写入和读取第一和第二写入数据序列的情况下,表3和表4所示的写入数据序列和期望读取数据序列可以分别修改为表7和表8所示的形式(仅示出了表3和表4中的一些数据序列的修改形式)。在本示例中,awburst=2’b1,awlen=8’hF,awsize=3’h3,起始地址是0x20000000。
表7
表8
在一些实施例中,在数据包生成单元1062-2从DDR内存子系统中的第一和第二地址范围所读取的多个数据序列处于乱序状态时,数据比较单元1064-2还可以被配置为将第一地址范围、第二地址范围、第一期望读取数据序列、以及第二期望读取数据序列添加到队列中,并且通过搜索队列来比较数据包生成单元1062-2从DDR内存子系统中的第一地址范围所读取的数据序列与第一期望读取数据序列是否相同或者比较数据包生成单元1062-2从DDR内存子系统中的第二地址范围所读取的数据序列与第二期望读取数据序列是否相同。
在一些实施例中,第一写入数据序列与第一地址范围的地址序列相同,并且第二写入数据序列与第二地址范围的地址序列相同。相应地,第一期望读取数据序列也与第一地址范围的地址序列相同,并且第二期望读取数据序列也与第二地址范围的地址序列相同。这样,可以降低数据比较单元1064-2的比较逻辑的复杂性。表9和表10分别示出了与相应地址范围的地址序列相同的写入数据序列和期望读取数据序列的示例:
表9
表10
表9和表10中的数据序列0x2000_001f_......_2000_0000表示:
0x2000001f_2000001e_2000001d_2000001c_2000001a_20000019_20000018_20000017_20000016_20000015_20000014_20000013_20000012_20000011_20000010_2000000f_2000000e_2000000d_2000000c_2000000b_2000000a_20000009_20000008_20000007_20000006_20000005_20000004_20000003_20000002_20000001_20000000。
表9和表10中的其它数据序列类似地按照每32位分组,每组数据递增的规律。总之,让数据和地址强相关可以大大简化数据比较单元1064-2的逻辑结构。在数据包生成单元1062-2采用AXI协议的情况下,与相同写入或读取事务标识符相关联的写入或读取数据序列按顺序传输。可以通过同一个写入事务标识符来识别所有写入数据序列,并且可以通过同一个读取事务标识符来识别所有读取数据序列。可以看到,如果写入数据序列和相应地址范围的地址序列相同,那么相应的期望预期读取数据序列就很容易知道。因此,数据比较单元1064-2的数据比较逻辑将非常简单。这样,在支持多事务标识符的情况下,虽然读取的数据可能是乱序的,但是因为从地址就可以知道期望读取的数据是什么样的,数据比较单元1064-2的数据比较逻辑很容易实现。
图4示出了图3所示的测试器执行的示例测试过程的流程图。如图4所示,图3所示的测试器可以执行以下测试过程(其中,第一写入数据序列和第二写入数据序列的写入以乒乓模式进行,并且对第一地址范围和第二地址范围的读取也是以乒乓模式进行):
S402,将第一写入数据序列写入第一地址范围;
S404,在第一写入数据序列的写入基本完成时,从第一地址范围读取数据序列;
S406,在第一写入数据序列的写入完成后,将第二写入数据序列写入第二地址范围;
S408,在从第一地址范围读取数据序列的过程中,比较所读取的数据序列和第一期望读取数据序列是否相同,并将比较结果写入CSR;
S410,在第二写入数据序列的写入基本完成并且从第一地址范围读取数据序列的过程完成后,从第二地址范围读取数据序列;
S412,在从第二地址范围读取数据序列的过程中,比较所读取的数据序列和第二期望读取数据序列是否相同,并将比较结果写入CSR;
S414,在从第二地址范围读取数据序列的过程完成并且第二写入数据序列的写入完成后,返回到S402。
可以看出,结合图3和图4描述的测试器执行的测试方法是一种基于预定数据序列的测试方法,该测试方法包括:通过内存端口108以第一地址写入顺序向DDR内存子系统中的第一地址范围写入第一写入数据序列;以及通过内存端口108以第一地址读取顺序从DDR内存子系统中的第一地址范围读取数据序列,并比较从第一地址范围所读取的数据序列与第一期望读取数据序列是否相同,其中,第一地址读取顺序和第一地址写入顺序是相同的,并且第一期望读取数据序列和第一写入数据序列是预定的并且是相同的。
在一些实施例中,结合图3和图4描述的测试器执行的测试方法还包括:在第一写入数据序列的写入完成后,通过内存端口108以第二地址写入顺序向DDR内存子系统中的第二地址范围写入第二写入数据序列;以及在对第一地址范围的数据序列的读取完成后,通过内存端口108以第二地址读取顺序从DDR内存子系统中的第二地址范围读取数据序列,并比较从第二地址范围所读取的数据序列与第二期望读取数据序列是否相同,其中,第二地址读取顺序和第二地址写入顺序是相同的,并且第二期望读取数据序列和第二写入数据序列是预定的且相同的。
在一些实施例中,结合图3和图4描述的测试器执行的测试方法还包括:在第二写入数据序列的写入完成后,通过内存端口108再次以第一地址写入顺序向DDR内存子系统中的第一地址范围写入第一写入数据序列,以第一地址读取顺序从DDR内存子系统中的第一地址范围读取数据序列,并比较从第一地址范围所读取的数据序列与第一期望读取数据序列是否相同;在第一写入数据序列的再次写入完成后,通过内存端口108再次以第二地址写入顺序向DDR内存子系统中的第二地址范围写入第二写入数据序列;以及在对第一地址范围的数据序列的再次读取完成后,通过内存端口108再次以第二地址读取顺序从DDR内存子系统中的第二地址范围读取数据序列,并比较从第二地址范围所读取的数据序列与第二期望读取数据序列是否相同。
在一些实施例中,结合图3和图4描述的测试器执行的测试方法还包括:在第一写入数据序列的写入或再次写入完成第一预定百分比后或者在第一写入数据序列的写入或再次写入执行第一预定时间后,以第一地址读取顺序从所述DDR内存子系统中的第一地址范围读取数据序列;以及在第二写入数据序列的写入或再次写入完成第二预定百分比后或者在第二写入数据序列的写入或再次写入执行第二预定时间后,以第二地址读取顺序从DDR内存子系统中的第二地址范围读取数据序列。
在一些实施例中,结合图3和图4描述的测试器执行的测试方法还包括:将第一地址范围、第二地址范围、第一期望读取数据序列、以及第二期望读取数据序列添加到队列中;以及通过搜索队列来比较从第一地址范围所读取的数据序列与第一期望读取数据序列是否相同或者比较从第二地址范围所读取的数据序列与第二期望读取数据序列是否相同。
在一些实施例中,在结合图3和图4描述的测试器执行的测试方法中,第一写入数据序列与第一地址范围的地址序列相同,并且第二写入数据序列与第二地址范围的地址序列相同
在一些实施例中,结合图3和图4描述的测试器执行的测试方法还包括:记录从第一地址范围或第二地址范围所读取的数据序列与第一期望读取数据序列或第二期望读取数据序列的比较结果,并将所记录的比较结果作为测试结果写入处理器100的CSR 112。
在一些实施例中,如图2和图3所示,测试器106还可以被配置为经由CSR 112从调试器114接收测试开始命令或测试停止命令,并且响应于测试开始命令或测试停止命令而开始或停止执行测试过程。
在一些实施例中,如图2和图3所示,测试器106还可以被配置为经由CSR 112从调试器114接收测试方法选择指令,并且响应于测试方法选择指令而执行基于伪随机数据序列的测试方法或基于预定数据序列的测试方法。
图5示出了根据本公开各种实施例的处理器可以用在其中的示例计算设备的框图。具体地,图5所示的计算设备500包括一个或多个处理器(或处理器核)510、一个或多个存储器/存储设备520、和一个或多个通信资源530,其中,这些处理器、存储器/存储设备、和通信资源中的每一者可以经由总线540或其他接口电路通信地耦合。对于利用节点虚拟化(例如,网络功能虚拟化(NFV))的实施例,可以执行管理程序502以提供一个或多个网络切片/子切片的执行环境从而利用计算设备500的硬件资源。
处理器510可以包括例如,处理器512和处理器514。处理器510可以是例如,中央处理单元(CPU)、精简指令集计算(RISC)处理器、复杂指令集计算(CISC)处理器、图形处理单元(GPU)、诸如基带处理器的数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、射频集成电路(RFIC)、另一处理器(包括本文讨论的那些处理器)、或其任何合适的组合。
存储器/存储设备520可以包括主存储器、磁盘存储设备、或其任何适当组合。存储器/存储设备520可以包括但不限于任何类型的易失性、非易失性、或半易失性存储器,例如,动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)、闪存、固态存储器等。
通信资源530可包括互连或网络接口控制器、组件、或其他合适的设备,以经由网络508与一个或多个外围设备504或一个或多个数据库506或其他网络元件通信。例如,通信资源530可以包括有线通信组件(例如,用于经由USB、以太网等进行耦合)、蜂窝通信组件、近场通信(NFC)组件、Bluetooth®(或Bluetooth®低能量)组件、Wi-Fi®组件、和其他通信组件。
指令550可以包括软件、程序、应用程序、小程序、应用程序、或其他可执行代码,用于使处理器510中的至少任意一个处理器执行各种处理过程。指令550可以全部或部分驻留在处理器510(例如,在处理器的高速缓存中)、存储器/存储设备520、或其任何适当组合中的至少一者内。此外,指令550的任意部分可以从外围设备504或数据库506的任意组合传送到硬件资源500。因此,处理器510的存储器、存储器/存储设备520、外围设备504、和数据库506是计算机可读和机器可读介质的示例。
尽管为了描述的目的,这里已经说明和描述了某些实施例,但是在不脱离本公开的范围的情况下,可以用实现相同目的的各种各样的替代和/或等效实施例或实施方式来代替图示出和描述的实施例。本申请旨在涵盖本文所讨论的实施例的任何改编或变化。因此,这里所描述的实施例显然仅由所附权利要求书及其等效物来限制。

Claims (17)

1.一种处理器,包括:
测试器,独立于所述处理器的内核并且被配置为:
基于相同的数据生成机制和相同的初始数据序列,生成伪随机写入数据序列和期望读取数据序列,
通过所述处理器的内存端口,以预定地址写入顺序向双倍数据速率(DDR)内存子系统中的预定地址范围写入所述伪随机写入数据序列,并且
通过所述处理器的内存端口,以预定地址读取顺序从所述DDR内存子系统中的所述预定地址范围读取数据序列,并比较所读取的数据序列与所述期望读取数据序列是否相同,其中,所述预定地址写入顺序和所述预定地址读取顺序是相同的;以及
状态寄存器,被配置为存储由所述测试器生成的测试结果。
2.如权利要求1所述的处理器,其中,所述测试器进一步被配置为记录所读取的数据序列与所述期望读取数据序列之间的比较结果,并将所记录的比较结果作为所述测试结果写入所述状态寄存器。
3.如权利要求1所述的处理器,其中,所述测试器进一步被配置为生成多个伪随机写入数据序列和多个期望读取数据序列,通过多个写入周期向所述DDR内存子系统写入所述多个伪随机写入数据序列,通过多个读取周期从所述DDR内存子系统读取多个数据序列,并比较所读取的每个数据序列与所述多个期望读取数据序列中的相应一个是否相同,
其中,与所述多个写入周期中的每个写入周期相关联的地址范围、地址写入顺序、以及伪随机写入数据序列和与所述多个读取周期中的相应读取周期相关联的地址范围、地址读取顺序、以及期望读取数据序列分别是相同的。
4.如权利要求3所述的处理器,其中,所述多个写入周期中的每个写入周期期间的数据传输次数和数据传输量是相同的。
5.如权利要求3所述的处理器,其中,所述多个读取周期中的每个读取周期期间的数据传输次数和数据传输量是相同的。
6.如权利要求1所述的处理器,其中,所述测试器进一步被配置为利用线性反馈移位寄存器生成所述伪随机写入数据序列和所述期望读取数据序列。
7.如权利要求1所述的处理器,其中,所述处理器是采用精简指令集计算机(RISC)架构的中央处理单元。
8.一种处理器,包括:
测试器,独立于所述处理器的内核并且被配置为:
通过所述处理器的内存端口,以第一地址写入顺序向双倍数据速率(DDR)内存子系统中的第一地址范围写入第一写入数据序列,并且
通过所述处理器的内存端口,以第一地址读取顺序从所述第一地址范围读取数据序列,并比较从所述第一地址范围所读取的数据序列与第一期望读取数据序列是否相同,其中,所述第一地址读取顺序和所述第一地址写入顺序是相同的,并且所述第一期望读取数据序列和所述第一写入数据序列是预定的并且是相同的;以及
状态寄存器,被配置为存储由所述测试器生成的测试结果。
9. 如权利要求8所述的处理器,其中,所述测试器进一步被配置为:
在所述第一写入数据序列的写入完成后,通过所述处理器的内存端口,以第二地址写入顺序向所述DDR内存子系统中的第二地址范围写入第二写入数据序列;以及
在对所述第一地址范围的数据序列的读取完成后,通过所述处理器的内存端口,以第二地址读取顺序从所述第二地址范围读取数据序列,并比较从所述第二地址范围所读取的数据序列与第二期望读取数据序列是否相同,其中,所述第二地址读取顺序和所述第二地址写入顺序是相同的,并且所述第二期望读取数据序列和所述第二写入数据序列是预定的并且是相同的。
10.如权利要求9所述的处理器,其中,所述测试器进一步被配置为:
在所述第二写入数据序列的写入完成后,通过所述处理器的内存端口,再次以所述第一地址写入顺序向所述第一地址范围写入所述第一写入数据序列,以所述第一地址读取顺序从所述第一地址范围读取数据序列,并比较从所述第一地址范围所读取的数据序列与所述第一期望读取数据序列是否相同;
在所述第一写入数据序列的再次写入完成后,通过所述处理器的内存端口,再次以所述第二地址写入顺序向所述第二地址范围写入所述第二写入数据序列;以及
在对所述第一地址范围的数据序列的再次读取完成后,通过所述处理器的内存端口,再次以所述第二地址读取顺序从所述第二地址范围读取数据序列,并比较从所述第二地址范围所读取的数据序列与所述第二期望读取数据序列是否相同。
11. 如权利要求10所述的处理器,其中,所述测试器进一步被配置为:
在所述第一写入数据序列的写入或再次写入完成第一预定百分比后或者在所述第一写入数据序列的写入或再次写入执行第一预定时间后,以所述第一地址读取顺序从所述第一地址范围读取数据序列;以及
在所述第二写入数据序列的写入或再次写入完成第二预定百分比后或者在所述第二写入数据序列的写入或再次写入执行第二预定时间后,以所述第二地址读取顺序从所述第二地址范围读取数据序列。
12. 如权利要求10所述的处理器,其中,所述测试器进一步被配置为:
将所述第一地址范围、所述第二地址范围、所述第一期望读取数据序列、以及所述第二期望读取数据序列添加到队列中;以及
通过搜索所述队列来比较从所述第一地址范围所读取的数据序列与所述第一期望读取数据序列是否相同或者比较从所述第二地址范围所读取的数据序列与所述第二期望读取数据序列是否相同。
13.如权利要求10所述的处理器,其中,所述第一写入数据序列与所述第一地址范围的地址序列相同,并且所述第二写入数据序列与所述第二地址范围的地址序列相同。
14.如权利要求10所述的处理器,其中,所述测试器进一步被配置为:
记录从所述第一地址范围或所述第二地址范围所读取的数据序列与所述第一期望读取数据序列或所述第二期望读取数据序列的比较结果,并将所记录的比较结果作为所述测试结果写入所述状态寄存器。
15.如权利要求8所述的处理器,其中,所述处理器是采用精简指令集计算机(RISC)架构的中央处理单元。
16.一种用于处理器的测试方法,包括利用独立于所述处理器的内核的测试器执行以下处理:
基于相同的数据生成机制和相同的初始数据序列,生成伪随机写入数据序列和期望读取数据序列;
通过所述处理器的内存端口,以预定地址写入顺序向双倍数据速率(DDR)内存子系统中的预定地址范围写入所述伪随机写入数据序列;以及
通过所述处理器的内存端口,以预定地址读取顺序从所述DDR内存子系统中的所述预定地址范围读取数据序列,并比较所读取的数据序列与所述期望读取数据序列是否相同,其中,所述预定地址写入顺序和所述预定地址读取顺序是相同的。
17. 一种用于处理器的测试方法,包括利用独立于所述处理器的内核的测试器执行以下处理:
通过所述处理器的内存端口,以第一地址写入顺序向双倍数据速率(DDR)内存子系统中的第一地址范围写入第一写入数据序列;以及
通过所述处理器的内存端口,以第一地址读取顺序从所述第一地址范围读取数据序列,并比较从所述第一地址范围所读取的数据序列与第一期望读取数据序列是否相同,其中,所述第一地址读取顺序和所述第一地址写入顺序是相同的,并且所述第一期望读取数据序列和所述第一写入数据序列是预定的并且是相同的。
CN202311091799.5A 2023-08-28 2023-08-28 处理器及其测试方法 Pending CN116820860A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311091799.5A CN116820860A (zh) 2023-08-28 2023-08-28 处理器及其测试方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311091799.5A CN116820860A (zh) 2023-08-28 2023-08-28 处理器及其测试方法

Publications (1)

Publication Number Publication Date
CN116820860A true CN116820860A (zh) 2023-09-29

Family

ID=88126047

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311091799.5A Pending CN116820860A (zh) 2023-08-28 2023-08-28 处理器及其测试方法

Country Status (1)

Country Link
CN (1) CN116820860A (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090319837A1 (en) * 2008-06-24 2009-12-24 Unisys Corporation Verification of a data processing system using overlapping address ranges
CN104361909A (zh) * 2014-12-02 2015-02-18 大唐微电子技术有限公司 一种片上ram内建自测试方法及电路
CN108597556A (zh) * 2018-04-20 2018-09-28 青岛海信电器股份有限公司 双倍速率同步动态随机存储器稳定性测试方法及系统
CN112053732A (zh) * 2020-05-20 2020-12-08 深圳市宏旺微电子有限公司 基于March算法优化的DRAM检测故障方法、装置及系统

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090319837A1 (en) * 2008-06-24 2009-12-24 Unisys Corporation Verification of a data processing system using overlapping address ranges
CN104361909A (zh) * 2014-12-02 2015-02-18 大唐微电子技术有限公司 一种片上ram内建自测试方法及电路
CN108597556A (zh) * 2018-04-20 2018-09-28 青岛海信电器股份有限公司 双倍速率同步动态随机存储器稳定性测试方法及系统
CN112053732A (zh) * 2020-05-20 2020-12-08 深圳市宏旺微电子有限公司 基于March算法优化的DRAM检测故障方法、装置及系统

Similar Documents

Publication Publication Date Title
US10002085B2 (en) Peripheral component interconnect (PCI) device and system including the PCI
US7406560B2 (en) Using multiple non-volatile memory devices to store data in a computer system
US9395919B1 (en) Memory configuration operations for a computing device
US20110107044A1 (en) Memory migration
US10606677B2 (en) Method of retrieving debugging data in UEFI and computer system thereof
KR101456976B1 (ko) 메모리 테스트 디바이스 및 메모리 테스트 방법
US10990293B2 (en) Extensible storage system and method
US11175977B2 (en) Method and system to detect failure in PCIe endpoint devices
US8713230B2 (en) Method for adjusting link speed and computer system using the same
US7571357B2 (en) Memory wrap test mode using functional read/write buffers
US20130191693A1 (en) Trace Queue for Peripheral Component
CN110765032A (zh) 基于系统管理总线接口对i2c存储器进行读写的方法
US10496422B2 (en) Serial device emulator using two memory levels with dynamic and configurable response
US20060026328A1 (en) Apparatus And Related Method For Calculating Parity of Redundant Array Of Disks
US10970206B2 (en) Flash data compression decompression method and apparatus
CN116679887B (zh) 用于NAND Flash的通用控制模块及方法
CN116820860A (zh) 处理器及其测试方法
US20100146224A1 (en) Request processing device, request processing system, and access testing method
US7143321B1 (en) System and method for multi processor memory testing
CN112466381B (zh) 一种适用于测试ddr3物理层电气功能的测试芯片
US8117427B2 (en) Motherboard, storage device and controller thereof, and booting method
JP2005149503A (ja) Dmaを使用してメモリをテストするためのシステムおよび方法
CN109669722B (zh) 执行内核的指令的方法、调试内核系统的方法和内核系统
US7913129B2 (en) Method of testing data paths in an electronic circuit
WO2023036076A1 (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