接口测试方法、装置、处理器和电子设备
技术领域
本申请涉及处理器设计技术领域,具体而言,涉及一种接口测试方法、装置、处理器和电子设备。
背景技术
处理器和高带宽存储器(High Bandwidth Memory,简称:HBM)的存储颗粒是采用硅中阶层的2.5D芯片连接方法,由于高带宽存储器已经是3D的封装,采用这种混合结构可能会带来供电噪声和信号噪声。由于这些存在供电噪声和信号噪声,以及随着信号频率的提高,高带宽存储器的访问出错的概率也就随之提高。由于处理器和HBM是封装连接方式,导致HBM的接口无法探测,传统的采用仪器分析校准已经无法实现。
发明内容
本申请的目的在于提供一种接口测试方法、装置、处理器和电子设备,能够较快速地实现高带宽存储器的接口的测试以及校准。
第一方面,本发明实施例提供一种接口测试方法,包括:
重复对高带宽存储器进行测试过程,直到达到设定的条件,根据得到的所述高带宽存储器的接口的测试参数的当前状态确定所述高带宽存储器的接口的目标配置参数,所述测试过程包括:
将测试向量通过高带宽存储器的接口发送给所述高带宽存储器;
从所述高带宽存储器按照设定协议读回所述测试向量,得到读回向量;
将所述读回向量与所述测试向量进行对比分析,以得到所述测试参数的当前状态;
根据所述高带宽存储器的接口的测试参数的当前状态,调整所述测试参数。
在可选的实施方式中,所述测试参数包括:读数据通路延时;所述根据所述高带宽存储器的接口的测试参数的当前状态,调整所述测试参数,包括:
根据所述高带宽存储器的接口的测试参数的当前状态,采用二分法更新所述读数据通路延时。
在本实施例中的接口测试方法中,采用二分法的更新方式对读数据通路延时,从而可以更快地排除无用区间,以提高对读数据通路延时的校准的速度。
在可选的实施方式中,所述采用二分法更新所述读数据通路延时,包括:
当所述读数据通路延时的初始值为最大值时,则采用二分法逐渐减小的方式更新所述读数据通路延时;或者,
当所述读数据通路延时的初始值为最小值时,则采用二分法逐渐增大的方式更新所述读数据通路延时。
在本实施例中的接口测试方法中,针对初始值为最大值或最小时采用不同的二分方式,从而可以适应性地调整读数据通路延时的调整方向,从而也可以更快地确定出读数据通路延时的目标配置参数。
在可选的实施方式中,所述测试参数包括:参考电压和读数据接口延时,根据所述高带宽存储器的接口的测试参数的当前状态,调整所述测试参数,包括:
以所述测试参数中的第一测试参数为基准,对第二测试参数进行更新,其中,当所述参考电压为所述第一测试参数时,所述读数据接口延时为所述第二测试参数;
在确定所述第二测试参数的最佳值后,以所述第二测试参数的最佳值为基准,对所述第一测试参数进行更新。
在本实施例中的接口测试方法中,参考电压和读数据接口延时共同相互配合调整的方式,相对于独立执行参考电压和读数据接口延时,调优效率可以更高,且所需的调优的时间长度也更短;进一步地,同时参考电压和读数据接口延时耦合诊断的结果更佳精确。
在可选的实施方式中,所述对第二测试参数进行更新,包括:使用二分法对所述第二测试参数进行更新;
所述对所述第一测试参数进行更新,包括:使用二分法对所述第一测试参数进行更新。
在本实施例中的接口测试方法中,使用二分法对第一测试参数和第二测试参数进行更新,从而可以更快地确定出第一测试参数对应的调优值。
在可选的实施方式中,所述测试参数包括:地址线,所述根据所述高带宽存储器的接口的测试参数的当前状态,调整所述测试参数,包括:
根据所述高带宽存储器的接口的地址线的当前状态,对所述地址线按照设定单位步进向指定方向移,以更新所述地址线的当前状态。
在本实施例中的接口测试方法中,针对地址线,采用向指定方向移动的方式,以找出地址线可行区间。
在可选的实施方式中,所述对所述地址线按照设定单位步进向指定方向移,以更新所述地址线的当前状态,包括:
以所述设定单位步进为1/16窗口,对所述地址线按照设定单位步进向指定方向移,以更新所述地址线的当前状态。
在本实施例中的接口测试方法中,采用单位步进为1/16窗口,相对于采用单位步进1/32窗口,测量时间缩短一半,从而可以提高测量的速度。
在可选的实施方式中,所述对所述地址线按照设定单位步进向指定方向移,以更新所述地址线的当前状态,包括:
以目标位置为初始位置,对所述地址线按照设定单位步进向右移位,以更新所述地址线的当前状态。
在可选的实施方式中,所述对所述地址线按照设定单位步进向指定方向移,以更新所述地址线的当前状态,还包括:
以所述目标位置为初始位置,对所述地址线按照设定单位步进向左移位,以更新所述地址线的当前状态;
所述直到达到设定的条件,根据得到的所述高带宽存储器的接口的测试参数的当前状态确定所述高带宽存储器的接口的目标配置参数,包括:在确定出所述地址线的指定窗口的最左端和所述指定窗口的最右端时,根据所述指定窗口的最左端,以及所述指定窗口的最右端确定出所述指定窗口的中点,以根据得到所述指定窗口的中点确定出所述地址线的目标配置参数。
在本实施例中的接口测试方法中,通过上述的方式确定出地址线的窗口的最左端以及最右端,从而可以确定出一个完整的窗口,基于完整的窗口可以确定出窗口中对应的最优点,以确定出接收地址和时钟相对的最优位置关系。
第二方面,本发明实施例提供一种接口测试装置,包括:
确定模块,用于重复对高带宽存储器进行测试过程,直到达到设定的条件,根据得到的所述高带宽存储器的接口的测试参数的当前状态确定所述高带宽存储器的接口的目标配置参数,
其中,所述测试过程包括:
发送模块,用于将测试向量通过高带宽存储器的接口发送给所述高带宽存储器;
读回模块,用于从所述高带宽存储器按照设定协议读回所述测试向量,得到读回向量;
分析模块,用于将所述读回向量与所述测试向量进行对比分析,以得到所述测试参数的当前状态;
调整模块,用于根据所述高带宽存储器的接口的测试参数的当前状态,调整所述测试参数。
第三方面,本发明实施例提供一种处理器,用于执行上述的前述实施方式任一所述的方法的步骤。
第四方面,本发明实施例提供一种电子设备,包括:前述实施方式所述的处理器。
本申请实施例的有益效果是:通过采用内存控制器直接传输诊断向量的方式,可以在无法探测到高带宽存储器的接口的情况下,能够较快速地实现接口的数据的诊断。进一步地,根据诊断确定出的测试参数的状态,还进一步地调整测试参数,从而可以实现对高带宽存储器的接口的调优。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请实施例提供的处理器的方框结构示意图。
图2为本申请实施例提供的接口测试方法的流程图。
图3a为本申请实施例提供的高带宽存储器的写访问时序示意图。
图3b为本申请实施例提供的高带宽存储器的读访问时序示意图。
图4为本申请实施例提供的高带宽存储器的读写访问方框示意图。
图5为本申请实施例提供的高带宽存储器的接口中的逻辑电路示意图。
图6为本申请实施例提供的高带宽存储器的接口中的参考电压和读数据接口延时同时对采样信号的准确性的影响示意图。
图7为本实施例提供的高带宽存储的接收地址和时钟的相位关系示意图。
图8为本申请实施例提供的接口测试装置的功能模块示意图。
具体实施方式
下面将结合本申请实施例中附图,对本申请实施例中的技术方案进行描述。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本申请的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
实施例一
为便于对本实施例进行理解,首先对执行本申请实施例所公开的一种接口测试方法的处理器及电子设备进行介绍。
如图1所示,图1示出了本实施例提供的处理器的示意图。本实施例中提供的处理器包括:多个高带宽存储器110(High Bandwidth Memory,简称:HBM)、多个内存控制器130(Memory Controller,简称:MC)、高带宽存储器的接口120(High Bandwidth MemoryPhysicalLayer,简称:HBMPHY)、处理器核心140。
可选地,本实施例中高带宽存储器110可以是第二代高带宽存储器(HBM2)。示例性地,当高带宽存储器110可以是第二代高带宽存储器时,高带宽存储器的接口120可表示为HBM2PHY。
高带宽存储器110是一种CPU(central processing unit,中央处理器)/GPU(Graphics Processing Unit,图形处理器)内存芯片,即SDRAM(Synchronous DynamicRandom Access Memory,同步动态随机存取存储器)。进一步地,该高带宽存储器110也可以理解为将很多个DDR(Double Data Rate,双倍速率同步动态随机存储器)芯片堆叠在一起后与CPU或GPU封装在一起,实现大容量,高位宽的DDR组合阵列。其中,高带宽存储器110堆栈没有以物理方式与CPU或GPU集成,而是通过硅中介层的方式连接。
可选地,处理器中可以包含多颗高带宽存储器110。
示例性地,处理器上可以设置有偶数颗高带宽存储器110。示例性地,偶数颗高带宽存储器110可以分布在处理器核心140两侧。
在一个实例中,如图1所示,该处理器中可以包含有四颗高带宽存储器110。其中,其中两颗高带宽存储器110设置在图示中的处理器的左侧,另两颗高带宽存储器110设置在图示中的处理器的右侧。
示例性地,每颗高带宽存储器110需要1696个数据访问的引脚(Pin)通过硅中介层(Interposer)与处理器核心140连接。
内存控制器130是计算机系统内部控制内存,并负责内存与CPU/GPU之间数据交换的重要组成部分。内存控制器130决定了计算机系统所能使用的最大内存容量、内存BANK数、内存类型和速度、内存颗粒数据深度和数据宽度等等重要参数,也就是说决定了计算机系统的内存性能,从而也对计算机系统的整体性能产生较大影响。
可选地,本实施例中的内存控制器130可以是整合型内存控制器130。其中,该整合型内存控制器130内置在处理器上。
本申请实施例还提供一种电子设备,该电子设备包括上述的处理器。
本实施例提供的电子设备还可以包括:输入输出单元、显示单元等。
示例性地,输入输出单元用于提供给用户输入数据。所述输入输出单元可以是,但不限于,鼠标和键盘等。
上述的显示单元在电子设备与用户之间提供一个交互界面(例如用户操作界面)或用于显示图像数据给用户参考。
可选地,根据电子设备的功能的不同还可以为电子设备配置更多或更少的组件,以适应不同场景下对电子设备的需求。例如,电子设备可用于对周边的环境进行识别处理时,则电子设备还可以包括采集单元,用于采集周边的环境数据。再例如,电子设备还可以用于导航,则电子设备还可以包括定位单元,用于获取电子设备的实时位置。
本实施例中的电子设备可以用于执行本申请实施例提供的各个方法中的各个步骤。下面通过几个实施例详细描述接口测试方法的实现过程。
实施例二
在本实施例中,由于高带宽存储器、高带宽存储器接口以及处理器核心通过硅中介层连接,导致高带宽存储器的接口无法通过仪器探测,因此,现有的通过仪器分析校准的方式在本实施例中的处理器中不能实施。基于此研究,本申请实施例,提供了一种不需要仪器就能够实现接口的诊断与调优的方式。
请参阅图2,是本申请实施例提供的接口测试方法的流程图。下面将对图2所示的具体流程进行详细阐述。
步骤201,将测试向量通过高带宽存储器的接口发送给所述高带宽存储器。
示例性地,内存控制器按照被测试的测试参数确定出对应的测试向量。示例性地,测试向量可以是十六进制的向量。例如,测试向量可以是:0x55550xaaaa、0xffff、0xff00等。
示例性地,测试向量也可以是二进制的向量。例如,测试向量可以是:0101010101、0101000101等。
示例性地,内存控制器将生成的测试向量通过高带宽存储器的接口写入高带宽存储器,以实现在高带宽存储器中写数据的操作。
示例性地,如果差分时钟信号、行地址信号、列地址信号、差分写使能信号以及数据信号的对应关系在理想状态下,对高带宽存储器的读写操作可以更准确。在一个实例中,图3a示出了理想状态下差分时钟信号、行地址信号、列地址信号、差分写使能信号以及数据信号的对应关系示意图。如图3a所示,图中示出了差分时钟信号(CK_t/CK_c)、行地址信号(Row)、列地址信号(Column)。其中,差分时钟信号的上升沿或下降沿与行地址信号的每一信号的中间位置对齐,差分时钟信号的上升沿或下降沿与列地址信号的每一信号的中间位置对齐。图3a中还示出了差分写使能信号(WDQS_t/WDQS_c)与数据信号(DQ)。其中,差分写使能信号与数据信号边缘对齐。也就是,数据信号的一个窗口的最左端点与差分写使能信号的一上升沿对齐,该窗口的最右端点分别与时钟信号与差分写使能信号的该上升沿相邻的下降沿对齐。或者,数据信号的一个窗口的最左端点与差分写使能信号的一下降沿对齐,该窗口的最右端点分别与时钟信号与差分写使能信号的该下降沿相邻的上升沿对齐。
其中,图3a所示的状态为访问高带宽存储器的最优状态。
步骤202,从所述高带宽存储器按照设定协议读回所述测试向量,得到读回向量。
示例性地,如果差分时钟信号、行地址信号、列地址信号、读使能信号以及数据信号的对应关系在理想状态下,对高带宽存储器的读写操作可以更准确。在一个实例中,图3b示出了理想状态下差分时钟信号、行地址信号、列地址信号、读使能信号以及数据信号的对应关系示意图。如图3b所示,图中示出了差分时钟信号(CK_t/CK_c)、行地址信号(Row)、列地址信号(Column)。其中,差分时钟信号的上升沿或下降沿与行地址信号的每一信号的中间位置对齐,差分时钟信号的上升沿或下降沿与列地址信号的每一信号的中间位置对齐。图3a中还示出了读使能信号(RDQS_t/RDQS_c)与数据信号(DQ)。其中,读使能信号与数据信号边缘对齐。也就是,数据信号的一个窗口的最左端点与读使能信号的一上升沿对齐,该窗口的最右端点分别与时钟信号与读使能信号的该上升沿相邻的下降沿对齐。或者,数据信号的一个窗口的最左端点与读使能信号的一下降沿对齐,该窗口的最右端点分别与时钟信号与读使能信号的该下降沿相邻的上升沿对齐。
通过本实施例中的接口测试方法,对高带宽存储器的接口的参数进行调整,从而使访问高带宽存储器的时序能够满足图3a和图3b所示的时序要求。
如图4所示,图示中以高带宽存储器为第二代高带宽存储器(HBM2)为例进行描述,由内存控制器(MC)随机生成一测试向量,然后内存控制器将该测试向量通过高带宽存储器的接口(HBM2PHY)写入高带宽存储器(HBM2)中。然后,内存控制器从高带宽存储器按照协议读回,得到一读回向量。在图4所示中的实例中,内存控制器生成的测试向量为:0101010101,内存控制器从高带宽存储器读回的向量也是:0101010101。因此,在如4所示的实例中,当前测试的测试参数在允许的误差内。
如图5所示,图5示出了高带宽存储器的接口中的逻辑电路示意图。图示中的逻辑电路中包括:打拍单元(Pipeline)、逻辑与单元(Gate)、接收数据缓存(RxDataFifo)、以及接口延时逻辑单元(Logic)。
其中,打拍单元(Pipeline)与逻辑与单元(Gate)相互连接,打拍单元(Pipeline)接收内存控制器的输入信号。接收数据缓存(RxDataFifo)分别与逻辑与单元(Gate)和接口延时逻辑单元(Logic)连接。其中,该接口延时逻辑单元(Logic)可与高带宽存储器连接。
其中,打拍单元(Pipeline)用于针对时序不够的情况进行处理。
示例性地,如图5所示,从高带宽存储器读出数据时,高带宽存储器的接口中的逻辑电路的信号流向可以被描述为:在到达接收数据缓存(RxDataFifo)之前,先经过一个接口延时逻辑单元(Logic),该接口延时逻辑单元为双时钟沿采样到单时钟数据的转换逻辑单元。从接收数据缓存(RxDataFifo)中可读出有效数据(Dfi_rddata_valid)。
示例性地,如图5所示,向高带宽存储器写入数据时,高带宽存储器的接口中的逻辑电路的信号流向可以被描述为:使能信号(dfi_rdata_en)传输至打拍单元(Pipeline),有效数据(RxDatVld)流经逻辑与单元(Gate),以及有效时钟信号(Dfi_clk)经过逻辑与单元(Gate),然后进入接收数据缓存(RxDataFifo)。
请再次参阅图5,接收数据缓存(RxDataFifo)、接口延时逻辑单元(Logic)以及引脚(Pin)之间形成一读延时。
步骤203,将所述读回向量与所述测试向量进行对比分析,以得到所述测试参数的当前状态。
示例性地,可以将读回向量与测试向量进行对比,判断读回向量与测试向量是否相同,以确定当前的测试参数是否在允许的误差范围内。
在一个实例中,若发送的测试向量是0x5555,从高带宽存储器中读回的读回向量也是0x5555,则表示当前的测试参数在允许的误差范围内。
在一个实例中,若发送的测试向量是0x5555,从高带宽存储器中读回的读回向量也是0x5553,则表示当前的测试参数未在允许的误差范围内。
示例性地,内存控制器向高带宽存储器基于某个延时D发送一个测试向量A,高带宽存储器按照协议采样得到读取向量B,控制器再根据协议把这个读取向量B读回来,如果测试向量A等于读取向量B,那么该延时D就是合理的,否则就是不合理的。
步骤204,根据所述高带宽存储器的接口的测试参数的当前状态,调整所述测试参数。
重复对高带宽存储器进行上述的步骤201至步骤204的测试过程,直到达到设定的条件,根据得到的所述高带宽存储器的接口的测试参数的当前状态确定所述高带宽存储器的接口的目标配置参数。
可选地,上述设定的条件可以指步骤203中对读回向量与测试向量进行对比,得到的结果是读回向量与测试向量相同变成读回向量与测试向量不相同。
可选地,上述设定的条件可以指步骤203中对读回向量与测试向量进行对比,得到的结果是读回向量与测试向量不相同,变成读回向量与测试向量相同。
本实施例中,上述的测试参数可以是接口诊断、调优过程中所需处理的值。示例性地,该测试参数可以是:行列地址信号、列地址信号、读数据通路延时、参考电压、读数据接口延时等测试参数中的任意一种或多种。下面分别针对不同的测试参数的调整进行描述。
本实施例中,上述的测试参数可以是读数据通路延时。
在一种实施方式中,步骤204可以包括:根据所述高带宽存储器的接口的测试参数的当前状态,采用二分法更新所述读数据通路延时。
本实施例中,可以根据读数据通路延时的当前值确定出对应的调整方式。
示例性地,当所述读数据通路延时的初始值为最大值时,则采用二分法逐渐减小的方式更新所述读数据通路延时。
示例性地,当所述读数据通路延时的初始值为最小值时,则采用二分法逐渐增大的方式更新所述读数据通路延时。
在另一种实施方式中,步骤204可以包括:根据所述高带宽存储器的接口的测试参数的当前状态,按照设定的步长更新所述读数据通路延时。
示例性地,当所述读数据通路延时的初始值为最大值时,则根据上述设定的步长逐渐减小该读数据通路延时,以更新所述读数据通路延时。
示例性地,当所述读数据通路延时的初始值为最小值时,则根据上述设定的步长逐渐增大该读数据通路延时,以更新所述读数据通路延时。
在另一种实施方式中,步骤204可以包括:根据所述高带宽存储器的接口的测试参数的当前状态,按照变化的步长更新所述读数据通路延时。
示例性地,该变化的步长可以是逐渐变小。例如,第一次更新读数据通路延时的变化量为a,第二次更新读数据通路延时的变化量为p1*a,第三次更新读数据通路延时的变化量为p2*a,…,第n次更新读数据通路延时的变化量为p(n-1)*a。其中,1>p1>p2>p3>…>p(n-1)>0。
示例性地,当所述读数据通路延时的初始值为最大值时,则根据上述变化步长逐渐减小该读数据通路延时,以更新所述读数据通路延时。
示例性地,当所述读数据通路延时的初始值为最小值时,则根据上述变化的步长逐渐增大该读数据通路延时,以更新所述读数据通路延时。
可选地,当步骤203中对读回向量与测试向量进行对比,得到的结果是读回向量与测试向量相同变成读回向量与测试向量不相同时,则可以停止更新读数据通路延时,并将最新得到的读数据通路延时作为读数据通路延时的目标配置参数。
本实施例中,上述的测试参数可以是参考电压和读数据接口延时。
如图6所示,图6示出了参考电压和读数据接口延时同时对采样信号的准确性的影响示意图。本实施例中,参考电压和读数据接口延时对采样信号的准确性具有影响,可能直接决定采样值正确性。
如图6所示,其中虚线线条表示最佳的参考电压值和读数据接口延时,在虚线线条所示的条件下可以保证采样接口有最大的余量,可以忍受环境变化引起的信号偏移和抖动。请参阅图6,图示中的延时2为最佳延时,该延时的波峰与读时钟的上升沿对齐。最佳参考电压值在最大参考电压值与最小参考电压值之间。
本实施例中,为了优化诊断时间,本实施例中,可以将参考电压和读数据接口延时两个变量耦合迭代测试。
在一种实施方式中,步骤204可以包括:以所述测试参数中的第一测试参数为基准,对第二测试参数进行更新,在确定所述第二测试参数的最佳值后,以所述第二测试参数的最佳值为基准,对所述第一测试参数进行更新。其中,当所述参考电压为所述第一测试参数时,所述读数据接口延时为所述第二测试参数。
可选地,对第二测试参数进行更新可以包括:使用二分法对所述第二测试参数进行更新。可选地,对所述第一测试参数进行更新,包括:使用二分法对所述第一测试参数进行更新。
示例性地,可以以参考电压的初始值为基准,对读数据接口延时根据二分法迭代,确定出接口延时的最佳值。然后,以该读数据接口延时的最佳值为基准,对参考电压根据二分法迭代,找到参考电压的最佳值。
可选地,当步骤203中对读回向量与测试向量进行对比,得到的结果是读回向量与测试向量相同变成读回向量与测试向量不相同时,则可以停止更新接口延时,并将最新得到的接口延时作为接口延时的最佳值。
可选地,当步骤203中对读回向量与测试向量进行对比,得到的结果是读回向量与测试向量相同变成读回向量与测试向量不相同时,则可以停止更新参考电压,并将最新得到的参考电压作为参考电压的最佳值。
示例性地,以该读数据接口延时的初始值为基准,对参考电压根据二分法迭代,找到参考电压的最佳值。然后,可以以参考电压的最佳值为基准,对读数据接口延时根据二分法迭代,确定出接口延时的最佳值。
通过将两个测试参数耦合的方式进行迭代以确定出最佳值,避从而可以提高确定测试参数的最优解的效率,同时耦合诊断的结果更佳精确。
在一种实施方式中,步骤204可以包括:以所述测试参数中的第一测试参数为基准,对第二测试参数进行更新,在确定所述第二测试参数的当前最佳值后,以所述第二测试参数的当前最佳值为基准,对所述第一测试参数进行更新,以得到第一测试参数的最佳值;然后,以所述测试参数中的第一测试参数的最佳值为基准,对第二测试参数进行更新,以确定所述第二测试参数的最佳值。其中,当所述参考电压为所述第一测试参数时,所述读数据接口延时为所述第二测试参数。
通过上述的再次迭代可以更准确地确定出第一测试参数的最佳值,提高高带宽存储器的接口的诊断的效果。
本实施例中,上述的测试参数可以是地址线。示例性地,该地址线可以是行地址线,也可以是列地址线。
在一种实施方式中,步骤204可以包括:根据所述高带宽存储器的接口的地址线的当前状态,对所述地址线按照设定单位步进向指定方向移,以更新所述地址线的当前状态。
示例性地,地址线调整的单位精度可以是1/32窗口。
可选地,根据所述高带宽存储器的接口的地址线的当前状态,对所述地址线按照设定单位步进向指定方向移,以更新所述地址线的当前状态,包括:以所述设定单位步进为1/32窗口,对所述地址线按照设定单位步进向指定方向移,以更新所述地址线的当前状态。
本实施例中,若以1/32窗口为设定单位步进,可以使确定出的地址线对应的目标配置参数的精度能够在1/32窗口以内。
可选地,为了提高地址线的调整效率,可以适当地增大设定单位步进。
例如,根据所述高带宽存储器的接口的地址线的当前状态,对所述地址线按照设定单位步进向指定方向移,以更新所述地址线的当前状态,包括:以所述设定单位步进为1/16窗口,对所述地址线按照设定单位步进向指定方向移,以更新所述地址线的当前状态。
本实施例中,若以1/16窗口为设定单位步进,从而可以提高地址线调整的速度。
示例性地,根据准确度或时间的要求不同,可以适应性地确定出不同的设定单位步进,从而可以满足不同准确度或时间的要求。
如图7所示,高带宽存储的接收地址和时钟的最佳相位关系是差分时钟上升沿与地址中间对齐。因此,就地址线而言,需要确定的是地址线的其中一个窗口的中点,该窗口的中点则可以作为地址线的目标配置参数。
示例性地,在一个实例中,若当前确定出的地址线的上确定一经验值为目标位置。若该目标位置在一窗口的最左端与最右端之间,则可以通过以该目标位置为初始位置向左移动窗口,以此确定出窗口的最右端,通过以该目标位置为初始位置向右移动窗口,以此确定出窗口的最左端。
示例性地,以目标位置为初始位置,对所述地址线按照设定单位步进向右移位,以更新所述地址线的当前状态。通过步骤201至204的循环执行,以此可以确定出地址线的一窗口的最左端。
示例性地,若步骤203中读回向量与测试向量进行对比,得到读回向量与测试向量相同,则确定出的地址线的当前位置还处于一窗口的最左端与最右端之间,则当前还未找到地址线对应窗口的最左端。若步骤203中读回向量与测试向量进行对比,得到读回向量与测试向量由相同变成了不相同,则确定出的地址线的当前位置未处于一窗口的最左端与最右端之间,则可以将最新确定出的地址线的当前位置作为对应窗口的最左端。
上述的循环执行步骤201至步骤204,确定出地址线的一窗口的最左端,详细描述为:以图7为例,若内存控制器从高带宽存储器读取的读回向量与测试向量相同,则表示左虚线未到达到实线位置,则表示未找到最左端。左虚线到达到实线位置,则表示找到最左端,若地址线的窗口继续向右移动,则内存控制器从高带宽存储器读取的读回向量与测试向量则会不同。也就是说,内存控制器通过判断从高带宽存储器读取的读回向量与测试向量是否相同,以确定左虚线是否到达到实线位置,以确定当前地址线的一窗口的最左端是否与差分时钟上升沿对齐。
示例性地,以所述目标位置为初始位置,对所述地址线按照设定单位步进向左移位,以更新所述地址线的当前状态。通过步骤201至204的循环执行,以此可以确定出地址线的一窗口的最右端。
示例性地,若步骤203中读回向量与测试向量进行对比,得到读回向量与测试向量相同,则确定出的地址线的当前位置还处于一窗口的最左端与最右端之间,则当前还未找到地址线对应窗口的最右端。若步骤203中读回向量与测试向量进行对比,得到读回向量与测试向量由相同变成了不相同,则确定出的地址线的当前位置未处于一窗口的最左端与最右端之间,则可以将最新确定出的地址线的当前位置作为对应窗口的最右端。
上述的循环执行步骤201至步骤204,确定出地址线的一窗口的最右端,详细描述为:以图7为例,若内存控制器从高带宽存储器读取的读回向量与测试向量相同,右虚线未到达到实线位置,则表示未找到最右端。右虚线到达到实线位置,则表示找到最右端,若地址线的窗口继续向左移动,则内存控制器从高带宽存储器读取的读回向量与测试向量则会不同。也就是,内存控制器通过判断从高带宽存储器读取的读回向量与测试向量是否相同,以确定右虚线是否到达到实线位置,以确定当前地址线的一窗口的最右端是否与差分时钟上升沿对齐。
其中,直到达到设定的条件,根据得到的所述高带宽存储器的接口的测试参数的当前状态确定所述高带宽存储器的接口的目标配置参数,可以包括:在确定出所述地址线的指定窗口的最左端和该指定窗口的最右端时,根据所述指定窗口的最左端,以及所述指定窗口的最右端确定出所述指定窗口的中点,以根据得到所述指定窗口的中点确定出所述地址线的目标配置参数。
在一个实例中,若当前确定出的地址线的上确定一经验值为目标位置。若该目标位置未指定窗口的最左端与最右端之间,且当前确定出的经验值为以错误值,则可以通过以该目标位置为初始位置向右移动窗口,以此确定出窗口的最右端;以当前的最右端的位置继续向右移动窗口,以此确定出窗口的最左端。
示例性地,以目标位置为初始位置,对所述地址线按照设定单位步进向右移位,以更新所述地址线的当前状态。通过步骤201至204的循环执行,以此可以确定出地址线的一窗口的最右端。
示例性地,循环执行步骤201至204,当内存控制器从高带宽存储器读取的读回向量与测试向量不相同,继续向右移动,直到读回向量与测试向量相同,以确定出指定窗口的最右端。
示例性地,以确定出的最右端为初始位置,继续向右移动查找该指定窗口的最左端。循环执行步骤201至204,当内存控制器从高带宽存储器读取的读回向量与测试向量相同,继续向右移动,直到读回向量与测试向量不相同,以确定出指定窗口的最左端。
在一个实例中,若当前确定出的地址线的上确定一经验值为目标位置。若该目标位置未在指定窗口的最右端与最左端之间,且当前确定出的经验值为以错误值,则可以通过以该目标位置为初始位置向左移动窗口,以此确定出窗口的最左端;以当前的最左端的位置继续向左移动窗口,以此确定出窗口的最右端。
示例性地,以目标位置为初始位置,对所述地址线按照设定单位步进向左移位,以更新所述地址线的当前状态。通过步骤201至204的循环执行,以此可以确定出地址线的一窗口的最左端。
示例性地,循环执行步骤201至204,当内存控制器从高带宽存储器读取的读回向量与测试向量不相同,继续向左移动,直到读回向量与测试向量相同,以确定出指定窗口的最左端。
示例性地,以确定出的最左端为初始位置,继续向左移动查找该指定窗口的最右端。循环执行步骤201至204,当内存控制器从高带宽存储器读取的读回向量与测试向量相同,继续向左移动,直到读回向量与测试向量不相同,以确定出指定窗口的最右端。
进一步地,在本实施例中的方法还可以基于测试过程中对测试参数的调整得到的测试参数的各个状态值,得到测试参数的眼图。
其中,眼图是一系列数字信号在示波器上累积而显示的图形。在本实例中,眼图可以是由测试过程中对测试参数的调整得到的测试参数的各个状态值累积而显示的图形。
通过本实施例中的接口测试方法,通过对在调整测试参数的过程中得到的测试参数的状态值进行积累展示,从而可以得到眼图测量结果。由于直接采用内存控制器向高带宽存储器发送测试向量,从而可以克服仪器不能检测高带宽存储器的接口的问题,还能够提高高带宽存储器的接口质量诊断的准确性。
进一步地,通过优化测试过程中,对测试参数的调整方式,缩短测试参数的调优的迭代过程,提高精准性和效率。
实施例三
基于同一申请构思,本申请实施例中还提供了与接口测试方法对应的接口测试装置,由于本申请实施例中的装置解决问题的原理与前述的接口测试方法实施例相似,因此本实施例中的装置的实施可以参见上述方法的实施例中的描述,重复之处不再赘述。
请参阅图8,是本申请实施例提供的接口测试装置的功能模块示意图。本实施例中的接口测试装置中的各个模块用于执行上述方法实施例中的各个步骤。接口测试装置包括:确定模块301、发送模块302、读回模块303、分析模块304、调整模块305;其中,
确定模块301,用于重复对高带宽存储器进行测试过程,直到达到设定的条件,根据得到的所述高带宽存储器的接口的测试参数的当前状态确定所述高带宽存储器的接口的目标配置参数,
其中,所述测试过程包括:
发送模块302,用于将测试向量通过高带宽存储器的接口发送给所述高带宽存储器;
读回模块303,用于从所述高带宽存储器按照设定协议读回所述测试向量,得到读回向量;
分析模块304,用于将所述读回向量与所述测试向量进行对比分析,以得到所述测试参数的当前状态;
调整模块305,用于根据所述高带宽存储器的接口的测试参数的当前状态,调整所述测试参数。
一种可能的实施方式中,所述测试参数包括:读数据通路延时;调整模块305,包括:通路延时调整单元。
该通路延时调整单元,用于根据所述高带宽存储器的接口的测试参数的当前状态,采用二分法更新所述读数据通路延时。
一种可能的实施方式中,通路延时调整单元,用于:
当所述读数据通路延时的初始值为最大值时,则采用二分法逐渐减小的方式更新所述读数据通路延时;或者,
当所述读数据通路延时的初始值为最小值时,则采用二分法逐渐增大的方式更新所述读数据通路延时。
一种可能的实施方式中,所述测试参数包括:参考电压和读数据接口延时,调整模块305,包括:双参调整单元。
该双参调整单元,用于:
以所述测试参数中的第一测试参数为基准,对第二测试参数进行更新,其中,当所述参考电压为所述第一测试参数时,所述读数据接口延时为所述第二测试参数;
在确定所述第二测试参数的最佳值后,以所述第二测试参数的最佳值为基准,对所述第一测试参数进行更新。
一种可能的实施方式中,所述双参调整单元,用于:
使用二分法对所述第二测试参数进行更新;
使用二分法对所述第一测试参数进行更新。
一种可能的实施方式中,所述测试参数包括:地址线,所述调整模块305包括地址线调整单元。
该地址线调整单元,用于根据所述高带宽存储器的接口的地址线的当前状态,对所述地址线按照设定单位步进向指定方向移,以更新所述地址线的当前状态。
一种可能的实施方式中,该地址线调整单元,用于:
以所述设定单位步进为1/16窗口,对所述地址线按照设定单位步进向指定方向移,以更新所述地址线的当前状态。
一种可能的实施方式中,地址线调整单元,用于:
以目标位置为初始位置,对所述地址线按照设定单位步进向右移位,以更新所述地址线的当前状态。
一种可能的实施方式中,地址线调整单元,还用于:
以所述目标位置为初始位置,对所述地址线按照设定单位步进向左移位,以更新所述地址线的当前状态;
所述直到达到设定的条件,根据得到的所述高带宽存储器的接口的测试参数的当前状态确定所述高带宽存储器的接口的目标配置参数,包括:在确定出所述地址线的指定窗口的最左端和所述指定窗口的最右端时,根据所述指定窗口的最左端,以及所述指定窗口的最右端确定出所述指定窗口的中点,以根据得到所述指定窗口的中点确定出所述地址线的目标配置参数。
此外,本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述方法实施例中所述的接口测试方法的步骤。
本申请实施例所提供的接口测试方法的计算机程序产品,包括存储了程序代码的计算机可读存储介质,所述程序代码包括的指令可用于执行上述方法实施例中所述的接口测试方法的步骤,具体可参见上述方法实施例,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本申请的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。