动态随机存取存储器(Dram)数据处理平台及其验证方法与流程
未命名
08-02
阅读:123
评论:0

动态随机存取存储器(dram)数据处理平台及其验证方法
技术领域
1.本技术涉及芯片验证技术领域,特别是涉及一种动态随机存取存储器(dram)数据处理平台及其验证方法。
背景技术:
2.dram存储器是现在主流的存储设备所必备的器件,且越来越多的芯片设计中采用dram存储器来提高性能和降低成本。参阅图1,通常在ssd控制芯片中,系统初始化信息、系统管理信息、临时数据等会被存储到dram存储器中。当主机对ssd发起写指令,数据会经由dram下发到flash中;当主机发起读命令时,数据由flash进入dram存储器。同时,管理flash数据的地址相关的信息也会存储到dram存储器中。由此可见,dram控制系统在整个ssd控制芯片中起着承上启下的作用。
3.在dram控制系统中,dram正常工作需要进行控制器的初始化配置,物理层(dram phy)的初始化配置,dram颗粒的初始化以及dram颗粒的参数校验、时序training等,这些步骤需要花费很长仿真时间,尤其在复杂的soc系统仿真中,仿真时间还会被继续放大。此外,dram控制系统需要兼容所有符合协议规定的dram颗粒,即在验证dram控制器功能时,需要将不同厂商提供的dram仿真模型连接到dram控制器进行验证测试,而不同dram仿真模型组成的dimm有很多种,同时dram仿真模型的工作频率,参数配置也是千变万化,使得需要构造不同验证环境。因此,现有验证dram的方法存在所需仿真时间长、仿真速度低,且验证效率低的问题。
技术实现要素:
4.本技术的目的在于提供一种动态随机存取存储器(dram)数据处理平台及其验证方法,通过使设计的dram数据处理平台具备模拟dram的功能,减少了仿真时间,提高了仿真速度,且可复用至不同厂商的dram颗粒的仿真环境中,减少了验证环境开发的工作量,提高了验证效率。
5.为达到上述目的:
6.第一方面,本技术实施例提供了一种动态随机存取存储器(dram)数据处理平台,应用于dram控制系统,所述dram控制系统包括控制器和双列直插式存储模块(dimm),所述控制器与所述dimm之间通过信号线进行数据连接,所述dram数据处理平台包括数据监控单元和数据处理单元,所述数据监控单元与所述数据处理单元之间通信连接;其中,
7.所述数据监控单元,被配置为响应于模拟模式,获取所述控制器发送的操作指令;所述操作指令包括待验证dram支持的协议所规定的指令;
8.所述数据处理单元,被配置为模拟待验证dram的功能,根据所述操作指令执行相应处理;
9.所述数据监控单元,还被配置为响应于监控模式,对在所述控制器与所述dimm连接的信号线上所执行的操作进行监测,获得监测信息;
10.所述数据处理单元,还被配置为根据监测信息进行相应处理。
11.在一实施方式中,所述操作指令包括数据读写指令;所述dram数据处理平台还包括数据比对单元,所述数据监控单元与所述数据比对单元通信连接;其中,
12.所述数据监控单元,被配置为响应于模拟模式,获取所述控制器发送的数据读写指令;
13.所述数据处理单元,被配置为模拟待验证dram的读写功能,根据所述数据读写指令进行数据读写;
14.所述数据监控单元,还被配置为响应于监控模式,对在所述控制器与所述dimm连接的信号线上所执行的读写操作进行监测,获得监测信息;
15.所述数据处理单元,还被配置为:根据所述监测信息生成对应的事务传输包;
16.所述数据比对单元,被配置为根据所述事务传输包进行读写数据比对,以确定所述控制器与位于所述dimm上的待验证dram之间数据读写的正确性。
17.在一实施方式中,所述dram数据处理平台还包括数据驱动单元,所述数据驱动单元与所述数据处理单元通信连接;其中,
18.所述数据处理单元,被配置为:
19.模拟待验证dram的读写功能;
20.在所述数据读写指令为数据写指令时,将所述数据写指令中的地址作为待写入数据的索引,存储所述数据写指令中的待写入数据至构建的数组中;在所述数据读写指令为数据读指令时,从所述数组中读取与所述数据读指令中的地址关联的数据,并生成对应的数据包发送到所述数据驱动单元;
21.所述数据驱动单元,被配置为对所述数据包进行解析,并将解析结果反馈到所述控制器。
22.在一实施方式中,所述数据监控单元,被配置为:
23.监控所述控制器与所述dimm连接的信号线以获取所述控制器和所述dimm之间传输的有效操作信息,所述有效操作信息是以高低电平组的方式表示的;
24.所述数据处理单元,被配置为:
25.将所述有效操作信息转化为仿真波形图像上的可识别指令字符,以获取所述控制器向所述dimm发出的数据读写指令、地址信息和与数据读写指令关联的数据信息;
26.根据所述数据读写指令、所述地址信息和与所述数据读写指令关联的数据信息,生成事务传输包,并将所述事务传输包发送给所述数据比对单元。
27.在一实施方式中,所述数据比对单元,被配置为:
28.解析所述事务传输包,以获得所述控制器对所述dimm写入的数据以及所述dimm反馈给所述控制器所读取的数据;
29.比对所述控制器对所述dimm写入的数据与所述dimm反馈给所述控制器所读取的数据是否一致;
30.若是,则确定所述控制器与位于所述dimm上的待验证dram之间数据读写正确。
31.在一实施方式中,所述数据处理单元,还被配置为:
32.配置当前工作场景对应的特征变量,并将所述特征变量传递给所述数据驱动单元和所述数据监控单元;
33.所述特征变量包括dimm基本信息、时钟和复位信息、地址信息和数据存储信息、时序信息、数据保护信息、检查使能信息。
34.第二方面,本技术实施例提供了一种基于第一方面所述的dram数据处理平台的验证方法,所述方法包括:
35.数据监控单元响应于模拟模式,获取控制器发送的操作指令;所述操作指令包括待验证dram支持的协议所规定的指令;
36.数据处理单元模拟待验证dram的功能,根据所述操作指令执行相应处理;
37.数据监控单元响应于监控模式,对在控制器与dimm连接的信号线上所执行的操作进行监测,获得监测信息;
38.数据处理单元根据监测信息进行相应处理。
39.在一实施方式中,在所述操作指令包括数据读写指令时,所述数据监控单元响应于模拟模式,获取所述控制器发送的数据读写指令;
40.所述数据处理单元模拟待验证dram的读写功能,根据所述数据读写指令进行数据读写;
41.所述数据监控单元响应于监控模式,对在所述控制器与所述dimm连接的信号线上所执行的读写操作进行监测,获得监测信息;
42.所述数据处理单元根据所述监测信息生成对应的事务传输包;
43.所述数据比对单元根据所述事务传输包进行读写数据比对,以确定所述控制器与位于所述dimm上的待验证dram之间数据读写的正确性。
44.在一实施方式中,所述数据处理单元模拟待验证dram的读写功能,根据所述操作指令执行相应处理,包括:
45.数据处理单元模拟待验证dram的读写功能,在所述数据读写指令为数据写指令时,将所述数据写指令中的地址作为待写入数据的索引,存储所述数据写指令中的待写入数据至构建的数组中,以及在所述数据读写指令为数据读指令时,从所述数组中读取与所述数据读指令中的地址关联的数据,并生成对应的数据包发送到所述数据驱动单元;
46.所述方法还包括:
47.数据驱动单元对所述数据包进行解析,并将解析结果反馈到所述控制器。
48.在一实施方式中,所述数据监控单元响应于监控模式,对在所述控制器与所述dimm连接的信号线上所执行的读写操作进行监测,获得监测信息,包括:
49.监控所述控制器与所述dimm连接的信号线以获取所述控制器和所述dimm之间传输的有效操作信息,所述有效操作信息是以高低电平组的方式表示的;
50.所述数据处理单元根据所述监测信息生成对应的事务传输包,包括:
51.将所述有效操作信息转化为仿真波形图像上的可识别指令字符,以获取所述控制器向所述dimm发出的数据读写指令、地址信息和与数据读写指令关联的数据信息;
52.根据所述数据读写指令、所述地址信息和与所述数据读写指令关联的数据信息,生成事务传输包。
53.在一实施方式中,所述方法还包括:
54.所述数据处理单元配置当前工作场景对应的特征变量,并将所述特征变量传递给所述数据驱动单元和所述数据监控单元;
55.所述特征变量包括dimm基本信息、时钟和复位信息、地址信息和数据存储信息、时序信息、数据保护信息、检查使能信息。
56.本技术实施例提供一种动态随机存取存储器(dram)数据处理平台,应用于dram控制系统,所述dram控制系统包括控制器和双列直插式存储模块(dimm),所述控制器与所述dimm之间通过信号线进行数据连接,所述dram数据处理平台包括数据监控单元和数据处理单元,所述数据监控单元与所述数据处理单元之间通信连接;其中,所述数据监控单元,被配置为响应于模拟模式,获取所述控制器发送的操作指令;所述操作指令包括待验证dram支持的协议所规定的指令;所述数据处理单元,被配置为模拟待验证dram的功能,根据所述操作指令执行相应处理;所述数据监控单元,还被配置为响应于监控模式,对在所述控制器与所述dimm连接的信号线上所执行的操作进行监测,获得监测信息;所述数据处理单元,还被配置为根据监测信息进行相应处理。如此,通过使设计的dram数据处理平台具备模拟dram的功能,减少了仿真时间,提高了仿真速度,且可复用至不同厂商的dram颗粒的仿真环境中,减少了验证环境开发的工作量,提高了验证效率。
附图说明
57.图1为现有ssd控制器系统的结构示意图;
58.图2为现有dram控制系统的结构示意图;
59.图3为本发明实施例提供的一种动态随机存取存储器(dram)数据处理平台和dram控制系统的结构示意图;
60.图4为本发明实施例中dram数据处理平台在监控模式下对应的写命令的波形示意图;
61.图5为本发明实施例提供的一种动态随机存取存储器(dram)数据处理平台的验证方法的流程示意图;
62.图6为本发明实施例提供的一种动态随机存取存储器(dram)数据处理平台的结构示意图;
63.图7为本发明实施例提供的一种在模拟模式下的动态随机存取存储器(dram)数据处理平台和dram控制系统的结构示意图;
64.图8为本发明实施例提供的一种在监控模式下的动态随机存取存储器(dram)数据处理平台和dram控制系统的结构示意图;
65.图9为本发明实施例中开启模拟模式的过程示意图;
66.图10为本发明实施例中开启监控模式的过程示意图。
具体实施方式
67.这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本技术相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本技术的一些方面相一致的装置和方法的例子。
68.在后续的描述中,使用用于表示元件的诸如“模块”、“部件”或者“单元”的后缀仅为了有利于本技术的说明,其本身没有特定的意义。因此,“模块”、“部件”或者“单元”可以
混合地使用。
69.参阅图2,为一种dram控制系统的组成框图,该系统中存在着多个dram颗粒组成的dimm模块,dimm可以有一个,也可以有多个。控制器和dimm之间的通信是通过一组dram协议规定的信号线,由图2中的字符s进行标识。
70.一方面,在复杂soc系统仿真中,dram控制系统的初始化过程所消耗的时间较长,严重影响仿真速度。另一方面,在验证dram控制器功能时,需要将不同厂商提供的dram仿真模型连接到dram控制器进行验证测试,而不同dram颗粒模型组成的dimm有很多种,同时dram仿真模型的工作频率,参数配置也是千变万化。比如ddr4协议支持的speed bin有ddr4-1600、ddr4-1844、ddr4-2666、ddr4-3200等,dimm类型又可分为udimm、rdimm、lrdimm等。同时,在验证环境中更换不同厂家的dram仿真模型时,需要根据协议规则,通过信号线在仿真波形中显示的高低电平识别出指令类型,地址信息等,以此确认dram仿真模型的准备步骤进行到了哪一步,以及dram控制系统是否对dram颗粒能够正常读写,使得整个过程耗费诸多人力和时间,且验证效率极其低下。也就是说,随着dram协议的不断更新,dram的配置信息越来越多,需要仿真验证dram仿真模型的种类也日渐增长,而每种dram仿真模型在验证环境中的调试需要耗费大量时间,使得快速收敛dram的验证越来越重要。
71.针对上述问题,本技术提出了一种动态随机存取存储器(dram)数据处理平台,也可称为dram数据处理模型,该dram数据处理平台可应用于dram控制系统,其中,该dram数据处理平台支持两种工作模式,第一种工作模式是模拟模式,也可称为dram模拟模式,此模式主要是应对dram控制器下发的命令进行响应,模拟出一个真实的dram颗粒行为。参阅图3(a),在模拟模式下,dram数据处理平台包括依次通信连接的数据监控单元13、数据处理单元14和数据驱动单元15;数据监控单元13与控制器11连接,数据驱动单元15与dram控制系统中的控制器11通信连接;数据监控单元13被配置为获取控制器11发送的操作指令;操作指令包括待验证dram支持的协议所规定的指令;数据处理单元14,被配置为模拟待验证dram的功能,根据操作指令执行相应处理,获得对应的数据包;数据驱动单元15被配置为对数据包进行解析,并将解析结果反馈到控制器11。
72.在一实施方式中,dram数据处理平台支持的第二种工作模式是监控模式,也可称为监控器模式,监测dram接口的信号线行为而不进行信号线的驱动,主要用于调试多变的dram颗粒类型,并对dram接口的数据正确性进行比对。参阅图3(b),在监控器模式下,dram控制系统包括控制器11(也可称为dram控制器)和双列直插式存储模块(dimm)12,控制器11与dimm12之间通过信号线进行数据交互连接,dram数据处理平台包括通信连接的数据监控单元13和比对单元16;数据监控单元13和控制器11与dimm12之间连接的信号线相连接,数据监控单元13,还被配置为对在控制器11与dimm连接的信号线上所执行的操作进行监测,获得监测信息;所述数据处理单元14,被配置为根据监测信息进行相应处理。
73.其中,操作指令包括但不限于数据读写指令、配置指令、刷新指令等,在此不作具体限定。所述数据处理单元14根据监测信息进行相应处理,包括解读监控信息是否正确,以上报时序、命令、数据格式等一些警报和错误信息,以及对监控的数据进行封装以生成数据传输包等。
74.其中,模拟模式的应用场景主要是在soc系统芯片验证环境中,假设dram存储器数据的读写性能不是整个soc性能的瓶颈,更关注其他路径上的问题,仅需要dram存储器进行
数据的搬运功能和保证读写数据的正确性。实际上如果要让真正的dram颗粒模型运行起来需要很多步骤,比如dram颗粒的初始化,参数校验,时序training等,这些仿真步骤在dram的单元测试(ut)中花费时间可以忍受,但在复杂的soc系统芯片中这些仿真时间被放大很多倍,对soc的迭代效率大打折扣。然而,通过将dram数据处理平台配置为模拟模式既可以省去上述步骤,还可以根据数据延迟可控等特性满足性能测试的各种场景,大大减少了仿真时间,提高了仿真效率。在多数soc系统芯片验证仿真中,都会趋于使用dram数据处理平台的dram模拟模式。
75.其中,监控模式更适合以下场景:在验证dram控制器功能时,需要将其对接不同厂商提供的颗粒模型组成的dimm。dram数据处理平台的数据监控单元会对dimm与dram控制器之间的信号线进行监测,其主要优势在于:在调试验证环境方面,可直观在仿真波形上看到初始化指令,参数校验指令,时序training的过程,比观测高低电平的组合更加便捷,而且针对不同厂商的颗粒模型,dram数据处理平台的监控模式完全具备可复用性,大大提高了构造不同验证环境的效率。
76.因此,上述两种模式的区别在于使用场景的不同,模拟模式适合于模拟dram行为的soc系统芯片验证环境中,dram不作为仿真验证中的关注对象;而监控模式适合于调试测试不同颗粒,注重dram数据正确性的场景。这里,若采用uvm验证方法学中的组件方式构造dram数据处理平台,在验证环境中将此dram数据处理平台例化后,利用agent的uvm_active模式和uvm_passive模式,分别对应dram数据处理平台的模拟模式和监控模式。此外,数据监控单元13也可称为监控器。
77.在一实施方式中,操作指令包括数据读写指令,其中,数据监控单元13,被配置为响应于模拟模式,获取控制器11发送的数据读写指令;数据处理单元14,被配置为模拟待验证dram的读写功能,根据数据读写指令进行数据读写;数据监控单元13,还被配置为响应于监控模式,对在控制器11与dimm12连接的信号线上所执行的读写操作进行监测,获得监测信息;数据处理单元14,还被配置根据所述监测信息生成对应的事务传输包;数据比对单元16,被配置为根据事务传输包进行读写数据比对,以确定控制器11与位于dimm12上的待验证dram之间数据读写的正确性。
78.其中,在需要验证控制器11与位于dimm12上的待验证dram之间数据读写的正确性时,控制器11可先向dram数据处理平台发送数据读写指令,数据监控单元13在模拟模式下监测到控制器11发送的数据读写指令后,可传输给数据处理单元14,数据处理单元14通过模拟待验证dram的读写功能,根据数据读写指令进行数据读写操作。同时,数据监控单元13在监控模式下可实时对在控制器11与dimm12连接的信号线上所执行的读写操作进行监测,比如获取控制器11通过信号线向dimm12发送的写指令和读命令等数据,获得监测信息;数据处理单元14,还被配置为检查所述监测信息的正确性,并根据监测信息进行相应处理,以获取对应的事务传输包,并将事务传输包发送给数据比对单元16。而数据比对单元16根据事务传输包进行读写数据比对,比如判断对同一地址的写数据和读数据是否一致等,以确定控制器11与位于dimm12上的待验证dram之间数据读写的正确性。
79.在一实施方式中,继续参阅图3(a),数据处理单元14,被配置为:
80.模拟待验证dram的读写功能;
81.在数据读写指令为数据写指令时,将数据写指令中的地址作为待写入数据的索
引,存储数据写指令中的待写入数据至构建的数组中;
82.在数据读写指令为数据读指令时,从数组中读取与数据读指令中的地址关联的数据,并生成对应的数据包发送到数据驱动单元15;
83.数据驱动单元15,被配置为对数据包进行解析,并将解析结果反馈到控制器11。
84.具体地,在数据读写指令为数据写指令时,数据处理单元14模拟待验证dram的写功能,将数据写指令中的地址作为待写入数据的索引,存储数据写指令中的待写入数据至构建的数组中;在数据读写指令为数据读指令时,数据处理单元14模拟待验证dram的读功能,从数组中读取与数据读指令中的地址关联的数据,并生成对应的数据包发送到数据驱动单元15。数据驱动单元15对数据处理单元14发送的数据包进行解析,并将解析获得的数据驱动或反馈到控制器11与dimm12连接的信号线上,以使控制器11可获取到读取的数据等信息。其中,数据驱动单元15也可称为数据驱动器。
85.在一实施方式中,继续参阅图3(b),数据监控单元13,被配置为:
86.监控控制器11与dimm12连接的信号线以获取控制器11和dimm12之间传输的有效操作信息,所述有效操作信息是以高低电平组的方式表示的;
87.数据处理单元14,还被配置为:
88.将有效操作信息转化为仿真波形图像上的可识别指令字符,以获取控制器11向dimm12发出的数据读写指令、地址信息和与数据读写指令关联的数据信息;
89.根据数据读写指令、地址信息和与数据读写指令关联的数据信息,生成事务传输包,并将事务传输包发送给数据比对单元16。
90.其中,数据监控单元13在监控模式下,可对在控制器11与dimm12连接的信号线上所传输的有效操作信息进行监测,有效操作信息是以高低电平组的方式表示的,数据处理单元14将有效操作信息转化为仿真波形图像上的可识别指令字符,以获取控制器11向dimm12发出的数据读写指令、地址信息和与数据读写指令关联的数据信息。例如,数据监控单元13可对控制器11与dimm12连接的信号线进行监测,并根据dram协议规则对控制器11与dimm12连接的信号线进行采样,将高低电平组转换成在仿真波形上可直观识别的指令字符,便于调试验证环境,对于不同厂商的颗粒只要是符合协议规范的,均可使用此功能进行颗粒的功能调试。参阅图4,对于写指令波形图,若符合ddr5协议的ca信号线总共有14个,每个周期内ca信号高低电平组合成不同的命令、地址和一些额外的信息。比如,t0-t1周期内ca0-ca4的电平是高-》低-》高-》高-》低,根据dram协议可识别为写指令,其他ca信号线上的高低电平信号可确定写指令的地址。假设,若表示地址部分的高低电平最后组合出14’hc00的地址,经过dram数据处理平台的解析,可得到图4中的cmd_info,其他额外的信息可选择打印的方式在仿真日志中获取。
91.这里,数据监控单元13可将从控制器11与dimm12连接的信号线上获取的数据读写指令、地址信息和与数据读写指令关联的数据信息等监测信息发送给数据处理单元14,数据处理单元14在检查所述监测信息的正确性后,可根据所述监测信息进行相应处理,生成对应的事务传输包,并将事务传输包发送给数据比对单元16,以由数据比对单元16判断控制器11与位于dimm12上的待验证dram之间数据读写是否正确。在一实施方式中,数据比对单元16,被配置为解析事务传输包,以获得控制器11对dimm12写入的数据以及dimm12反馈给控制器11所读取的数据,并比对控制器11对dimm12写入的数据与dimm12反馈给控制器11
所读取的数据是否一致,若是,则确定控制器11与位于dimm12上的待验证dram之间数据读写正确;若否,则确定控制器11与位于dimm12上的待验证dram之间数据读写错误。具体地,数据比对单元16解析事务传输包,以获得控制器11向dimm12发送写指令时对dimm12写入的数据,以及控制器11向dimm12发送针对写入数据的读指令时从dimm12上对应读取的数据,进而判断写入的数据和读取的数据是否一致,若写入的数据和读取的数据一致,说明读写功能正常,即确定控制器11与位于dimm12上的待验证dram之间数据读写正确,而若写入的数据和读取的数据不一致,说明读写功能异常,即确定控制器11与位于dimm12上的待验证dram之间数据读写错误。
92.综上,上述实施例提供的dram数据处理平台中,通过使设计的dram数据处理平台具备模拟dram的功能,减少了仿真时间,提高了仿真速度,且可复用至不同厂商的dram颗粒的仿真环境中,减少了验证环境开发的工作量,提高了验证效率。
93.在一实施方式中,数据处理单元14,被配置为配置当前工作场景对应的特征变量,并将特征变量传递给数据驱动单元15和数据监控单元13。
94.可以理解,为了使得dram数据处理平台能够有效正确的工作,需要设置dram数据处理平台的工作场景,而可直接通过配置不同的特征变量以构成特定的工作场景。数据处理单元14通过配置当前工作场景对应的特征变量,并将特征变量传递给数据驱动单元15和数据监控单元13,以对数据驱动单元15和数据监控单元13进行相应配置,使得dram数据处理平台能够正确接收、处理操作指令,以及输出合理的响应信息。
95.其中,特征变量包括但不限于:dimm基本信息、时钟和复位信息、地址信息和数据存储信息、时序信息、数据保护信息、使能信息。对于每种信息,下面分别进行具体说明:
96.dimm基本信息:主要包括dimm的属性信息和dram颗粒的属性信息。dram数据处理平台需要模拟的是不同类型的dimm,而每一种dimm的数据保护信息,时序信息都是不同的。其中,dimm类型主要有udimm、rdimm、lrdimm等,同时还需要配置dimm中的最大rank数量。dram颗粒的属性信息主要有遵循的协议类型(如ddr4、ddr5等),dram颗粒的数据宽度(如x4、x8、x16等),颗粒密度(不同协议类型的颗粒密度有所不同,颗粒密度和颗粒数据宽度组成了单颗粒的容量)等。
97.时钟和复位信息:时钟根据speed bin的配置产生,对于ddr4常见的speed bin有2666、2933、3200等,而对于ddr5常见的有3200、3600、4000、4400、4800等。它影响着写数据的采集周期和读数据的返回时序,dram数据处理平台监测到数据读写指令时做出复位操作,主要涉及到数据的复位,而数据初始值支持可配置。
98.地址信息和数据存储信息:访问dram数据的实际存储地址由地址元素column、row、bank、bank group、channel等构成,它们的最大值需要配置合理,才可以产生一个合理的存储空间,实现地址匹配后数据的写入和输出。
99.时序信息:时序信息的配置不仅需要满足dram控制器的时序要求,而且需要涵盖所有数据读写指令的性能和延迟要求。
100.数据保护信息:通过判断是否支持数据校验,判断是否支持数据保护,和判断是否支持数据注错等,通过配置这些特征参数,dram数据处理平台会调用不同的数据处理流程,满足dram控制器的数据正确性需求。
101.检查使能信息:如果有需要对dram控制器输出的指令信息、指令和数据的时序信
息等进行检查,则使能此检查机制,以便检查dram数据处理平台接收到的信息是否正确,以及读写数据的自动比对是否开启在需要在此使能。
102.基于前述实施例相同的发明构思,本实施例还提供了一种基于上述dram数据处理平台的验证方法,参阅图5,所述方法包括:
103.步骤s101、数据监控单元响应于模拟模式,获取控制器发送的操作指令;所述操作指令包括待验证dram支持的协议所规定的指令。
104.步骤s102、数据处理单元模拟待验证dram的功能,根据所述操作指令执行相应处理。
105.步骤s103、数据监控单元响应于监控模式,对在控制器与dimm连接的信号线上所执行的操作进行监测,获得监测信息。
106.步骤s104、数据处理单元根据监测信息进行相应处理。
107.其中,操作指令包括但不限于数据读写指令、配置指令、刷新指令等,在此不作具体限定。该dram数据处理平台支持两种工作模式,第一种工作模式是模拟模式,也可称为dram模拟模式,此模式主要是应对dram控制器下发的命令进行响应,模拟出一个真实的dram颗粒行为;第二种工作模式是监控模式,也可称为监控器模式,监测dram接口的信号线行为而不进行信号线的驱动,主要用于调试多变的dram颗粒类型,并对dram接口的数据正确性进行比对。
108.其中,模拟模式的应用场景主要是在soc系统芯片验证环境中,假设dram存储器数据的读写性能不是整个soc性能的瓶颈,更关注其他路径上的问题,仅需要dram存储器进行数据的搬运功能和保证读写数据的正确性。实际上如果要让真正的dram颗粒模型运行起来需要很多步骤,比如dram颗粒的初始化,参数校验,时序training等,这些仿真步骤在dram的单元测试(ut)中花费时间可以忍受,但在复杂的soc系统芯片中这些仿真时间被放大很多倍,对soc的迭代效率大打折扣。然而,通过将dram数据处理平台配置为模拟模式既可以省去上述步骤,还可以根据数据延迟可控等特性满足性能测试的各种场景,大大减少了仿真时间,提高了仿真效率。在多数soc系统芯片验证仿真中,都会趋于使用dram数据处理平台的dram模拟模式。
109.其中,监控模式更适合以下场景:在验证dram控制器功能时,需要将其对接不同厂商提供的颗粒模型组成的dimm。dram数据处理平台的数据监控单元会对dimm与dram控制器之间的信号线进行监测,其主要优势在于:在调试验证环境方面,可直观在仿真波形上看到初始化指令,参数校验指令,时序training的过程,比观测高低电平的组合更加便捷,而且针对不同厂商的颗粒模型,dram数据处理平台的监控模式完全具备可复用性,大大提高了构造不同验证环境的效率。
110.在一实施方式中,在操作指令包括数据读写指令时,数据监控单元响应于模拟模式,获取控制发送的数据读写指令;数据处理单元模拟待验证dram的读写功能,根据数据读写指令进行数据读写;数据监控单元响应于监控模式,对在控制器与dimm连接的信号线上所执行的读写操作进行监测,获得监测信息;所述数据处理单元根据监测信息生成对应的事务传输包;数据比对单元根据事务传输包进行读写数据比对,以确定控制器与位于dimm上的待验证dram之间数据读写的正确性。
111.其中,在需要验证控制器与位于dimm上的待验证dram之间数据读写的正确性时,
控制器可先向dram数据处理平台发送数据读写指令,数据监控单元在模拟模式下监测到控制器发送的数据读写指令后,可传输给数据处理单元,数据处理单元通过模拟待验证dram的读写功能,根据数据读写指令进行数据读写操作。同时,数据监控单元在监控模式下可实时对在控制器与dimm连接的信号线上所执行的读写操作进行监测,比如获取控制器通过信号线向dimm发送的写指令和读命令等数据,以获取对应监测信息,并将所述监测信息发送给数据处理单元,数据处理单元可检查所述监测信息的正确性,并将所述监测信息打包生成对应的事务传输包,并将事务传输包发送给数据比对单元。而数据比对单元根据事务传输包进行读写数据比对,比如判断对同一地址的写数据和读数据是否一致等,以确定控制器与位于dimm上的待验证dram之间数据读写的正确性。
112.在一实施方式中,数据处理单元模拟待验证dram的读写功能,根据所述操作指令执行相应处理,包括:
113.数据处理单元模拟待验证dram的读写功能,在数据读写指令为数据写指令时,将数据写指令中的地址作为待写入数据的索引,存储数据写指令中的待写入数据至构建的数组中,以及在数据读写指令为数据读指令时,从数组中读取与数据读指令中的地址关联的数据,并生成对应的数据包发送到数据驱动单元;
114.所述方法还包括:数据驱动单元获取数据包,并对数据包进行解析,并将解析结果反馈到控制器。
115.具体地,在数据读写指令为数据写指令时,数据处理单元模拟待验证dram的写功能,将数据写指令中的地址作为待写入数据的索引,存储数据写指令中的待写入数据至构建的数组中;在数据读写指令为数据读指令时,数据处理单元模拟待验证dram的读功能,从数组中读取与数据读指令中的地址关联的数据,并生成对应的数据包发送到数据驱动单元。数据驱动单元对数据处理单元发送的数据包进行解析,并将解析获得的数据驱动或反馈到控制器与dimm连接的信号线上,以使控制器可获取到读取的数据等信息。其中,数据驱动单元也可称为数据驱动器。
116.在一实施方式中,数据监控单元响应于监控模式,对在所述控制器与所述dimm连接的信号线上所执行的读写操作进行监测,获取监测信息,包括:
117.数据监控单元响应于监控模式,监控控制器与dimm连接的信号线以获取控制器和dimm之间传输的有效操作信息,有效操作信息是以高低电平组的方式表示的;
118.所述数据处理单元根据所述监测信息生成对应的事务传输包,包括:
119.将有效操作信息转化为仿真波形图像上的可识别指令字符,以获取控制器向dimm发出的数据读写指令、地址信息和与数据读写指令关联的数据信息;
120.根据数据读写指令、地址信息和与数据读写指令关联的数据信息,生成事务传输包,并将事务传输包发送给比对单元。
121.其中,数据监控单元在监控模式下,可对在控制器与dimm连接的信号线上所传输的有效操作信息进行监测,有效操作信息是以高低电平组的方式表示的,数据处理单元将有效操作信息转化为仿真波形图像上的可识别指令字符,以获取控制器向dimm发出的数据读写指令、地址信息和与数据读写指令关联的数据信息。例如,数据监控单元可对控制器与dimm连接的信号线进行监测,并根据dram协议规则对控制器与dimm连接的信号线进行采样,以获得监测信息。所述数据处理单元将以高低电平组方式表示的有效操作信息转换成
在仿真波形上可直观识别的指令字符,便于调试验证环境,对于不同厂商的颗粒只要是符合协议规范的,均可使用此功能进行颗粒的功能调试。
122.在一实施方式中,数据比对单元根据事务传输包进行读写数据比对,以确定控制器与位于dimm上的待验证dram之间数据读写的正确性,包括:
123.解析事务传输包,以获得控制器对dimm写入的数据以及dimm反馈给控制器所读取的数据;
124.比对控制器对dimm写入的数据与dimm反馈给控制器所读取的数据是否一致;
125.若是,则确定控制器与位于dimm上的待验证dram之间数据读写正确。
126.其中,在需要验证控制器与位于dimm上的待验证dram之间数据读写的正确性时,可通过控制器先向dram数据处理平台发送数据读写指令,数据监控单元在模拟模式下监测到控制器发送的数据读写指令后,可传输给数据处理单元,数据处理单元通过模拟待验证dram的读写功能,根据数据读写指令进行数据读写操作。同时,数据监控单元在监控模式下可实时对在控制器与dimm连接的信号线上所执行的读写操作进行监测,比如获取控制器通过信号线向dimm发送的写指令和读命令等数据,以获得监测信息,并将所述监测信息发送到数据处理单元进行相应处理。数据处理单元14在检查所述监测信息的正确性后,可生成对应的事务传输包,并将事务传输包发送给数据比对单元。而数据比对单元根据事务传输包进行读写数据比对,比如判断对同一地址的写数据和读数据是否一致等,以确定控制器与位于dimm上的待验证dram之间数据读写的正确性。
127.综上,上述实施例提供的基于dram数据处理平台的验证方法中,通过使设计的dram数据处理平台具备模拟dram的功能,减少了仿真时间,提高了仿真速度,且可复用至不同厂商的dram颗粒的仿真环境中,减少了验证环境开发的工作量,提高了验证效率。
128.在一实施方式中,所述方法还包括:
129.所述数据处理单元配置当前工作场景对应的特征变量,并将所述特征变量传递给所述数据驱动单元和所述数据监控单元;
130.所述特征变量包括dimm基本信息、时钟和复位信息、地址信息和数据存储信息、时序信息、数据保护信息、检查使能信息。
131.可以理解,为了使得dram数据处理平台能够有效正确的工作,需要设置dram数据处理平台的工作场景,而可直接通过配置不同的特征变量以构成特定的工作场景。数据处理单元通过配置当前工作场景对应的特征变量,并将特征变量传递给数据驱动单元和数据监控单元,以对数据驱动单元和数据监控单元进行相应配置,使得dram数据处理平台能够正确接收、处理操作指令,以及输出合理的响应信息。
132.基于前述实施例相同的发明构思,本实施例中以dram数据处理平台为dram数据处理模型、数据驱动单元为数据驱动器和数据监控单元为数据监控器为例,本实施例中采用uvm验证方法学中的组件方式,构成一个dram数据处理模型,如图6所示,模型主体分为两部分,分别是数据驱动器(driver)和数据监控器(monitor),在agent中对数据驱动器和数据监控器进行例化、配置和接口连接等,并设有可配置的工作模式,还有一些模拟dram存储器的配置参数,存储单元等。
133.其中,dram数据处理模型支持两种工作模式,第一种工作模式是模拟模式,此模式主要应对dram控制器下发的命令进行响应,模拟出一个真实的dram颗粒行为。第二种工作
模式是监控模式,监测dram接口的信号线行为而不进行信号线的驱动,主要用于调试多变的颗粒类型,并对dram接口的数据正确性进行。在验证环境中将此模型例化后,利用agent的uvm_active模式和uvm_passive模式,分别对应dram数据处理模型的模拟模式和监控器模式。
134.其中,dram数据处理模型具体实现的功能可包括:
135.(1)利用数据监控器(monitor)组件对信号线进行监测,根据dram协议规则进行采样,将高低电平组转换成在仿真波形上可直观识别的指令字符,便于调试验证环境。
136.(2)通用dram存储器的行为模拟,支持对dram数据处理模型进行配置,满足dram协议规范要求的读写命令的响应。如图7所示,在dram数据处理模型处于模拟模式下时,对应的dram数据处理模型主要包括数据监控器、数据驱动器、比分板和数据处理单元。
137.(3)监测读写数据的处理。结合dram指令和接收的数据,组成事务级传输包,将传输包发送到uvm的比分板(scoreboard),以对读写数据进行自动比较,具有复用性极高的特点。这里,验证dram数据读写的正确性,需要进行数据比对,事务级传输包中含有地址和地址对应的数据,若写命令和读命令对同一地址进行操作后产生写事务包和读事务包,写入的数据和读出的数据相同即可表明数据读写正确。如图8所示,在dram数据处理模型处于监控模式下时,对应的dram数据处理模型主要包括数据监控器、比分板和数据处理单元。在这种工作模式下,可以监控任意一种符合协议规范的dram存储器的仿真模型的接口行为,可实现高效调试验证环境,以及精确数据处理的目的。
138.(4)控制器不需要dram数据处理模型反馈的情况下,dram数据处理模型记录指令,根据地址索引进行数据信息的存储。
139.(5)控制器发出需要dram数据处理模型反馈的指令时,dram数据处理模型根据数据监控器(monitor)接收到的指令信息,结合已保存的数据信息,向数据驱动器(driver)发出事务级传输包,数据驱动器分析处理传输包,并将相关数据信息驱动到s信号线上。
140.参阅图9,为本技术实施例提供的一种开启模拟模式的过程示意图,包括以下步骤:
141.步骤s201:配置dimm基本信息。
142.这里,dimm基本信息主要包括dimm的属性信息和dram颗粒的属性信息,具体可参见前述实施例的说明。
143.步骤s202:配置时钟和复位信息。
144.这里,时钟是根据speed bin的配置产生的,影响着写数据的采集周期和读数据的返回时序。dram数据处理模型监测到读写指令时做出复位操作,主要涉及到数据的复位,数据初始值支持可配置。
145.步骤s203:设置地址信息,产生存储模型。
146.这里,设置的地址信息包括访问dram数据的实际存储地址,由地址元素column、row、bank、bank group、channel等构成,它们的最大值需要配置合理,才可以产生一个合理的存储空间,实现地址匹配后数据的写入和输出。
147.步骤s204:设置时序信息。
148.这里,时序信息的配置不仅需要满足dram控制器的时序要求,而且需要涵盖所有读写指令的性能和延迟要求。
149.步骤s205:将agent设置为uvm-active模式。
150.步骤s206:开启模拟模式。
151.这里,在dram数据处理模型开启模拟模式时,适合模拟dram行为的soc系统芯片验证环境中,dram不作为仿真验证中的关注对象。
152.参阅图10,为本技术实施例提供的一种开启监控模式的过程示意图,包括以下步骤:
153.步骤s301:获取被监控dimm的所有信息。
154.这里,被监控dimm为待验证dram所在的dimm.
155.步骤s302:配置dimm基本信息。
156.这里,dimm基本信息主要包括dimm的属性信息和dram颗粒的属性信息,具体可参见前述实施例的说明。
157.步骤s303:配置时钟和复位信息。
158.这里,时钟是根据speed bin的配置产生的,影响着写数据的采集周期和读数据的返回时序。dram数据处理模型监测到读写指令时做出复位操作,主要涉及到数据的复位,数据初始值支持可配置。
159.步骤s304:设置地址信息,产生存储模型。
160.这里,设置的地址信息包括访问dram数据的实际存储地址,由地址元素column、row、bank、bank group、channel等构成,它们的最大值需要配置合理,才可以产生一个合理的存储空间,实现地址匹配后数据的写入和输出。
161.步骤s305:设置时序信息。
162.这里,时序信息的配置不仅需要满足dram控制器的时序要求,而且需要涵盖所有读写指令的性能和延迟要求。
163.步骤s306:配置数据保护信息。
164.在一实施方式中,通过判断是否支持数据校验,判断是否支持数据保护,和判断是否支持数据注错等,通过配置这些特征参数,数据平台会调用不同的数据处理流程,以满足dram控制器的数据正确性需求。
165.步骤s307:检查使能信息。
166.在一实施方式中,如果有需要对dram控制器输出的指令信息、指令和数据的时序信息等进行检查,则使能此检查机制,以便检查dram数据处理平台接收到的信息是否正确,以及读写数据的自动比对是否开启在需要在此使能。
167.步骤s308:将agent设置为uvm-passive模式。
168.步骤s309:开启监控模式。
169.这里,当dram数据处理模型处于模拟模式时,能够在复杂soc系统仿真中,模拟dram读写数据的功能,大幅减少仿真时间;而当dram数据处理模型处于监控模式时,若对dram接口进行调试,可快速识别dram控制器发出的指令,采集信号线上的数据,以及dram的响应信息,以可复用到不同厂商的dram颗粒的仿真环境中,可以极大程度减少验证环境开发的工作量,从而实现验证的快速收敛。
170.综上,上述实施例提供的dram数据处理模型即dram数据处理平台,具有以下创新点:检测传输信号级,信号高低电平的监测转换成可读性非常高的指令字符,且可独立监
测;检测传输事务级,可实现验证环境的数据自动比对;实现了数据处理模型的读写功能;可复用,即针对不同厂商的dram颗粒模型构造的验证环境不同,均可使用。同时,具有以下优点:指令可视化,提高了调试阶段的指令识别效率;具有简易读写dram数据处理模型的功能,集成到soc系统中可跳过初始化、各种校验和时序training过程,大大减少仿真时间,加速验证迭代;良好的复用性,大大提高了验证效率。
171.以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
172.在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,除了包含所列的那些要素,而且还可包含没有明确列出的其他要素。
173.以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
技术特征:
1.一种动态随机存取存储器(dram)数据处理平台,应用于dram控制系统,所述dram控制系统包括控制器和双列直插式存储模块(dimm),所述控制器与所述dimm之间通过信号线进行数据连接,其特征在于,所述dram数据处理平台包括数据监控单元和数据处理单元,所述数据监控单元与所述数据处理单元通信连接;其中,所述数据监控单元,被配置为响应于模拟模式,获取所述控制器发送的操作指令;所述操作指令包括待验证dram支持的协议所规定的指令;所述数据处理单元,被配置为模拟待验证dram的功能,根据所述操作指令执行相应处理;所述数据监控单元,还被配置为响应于监控模式,对在所述控制器与所述dimm连接的信号线上所执行的操作进行监测,获得监测信息;所述数据处理单元,还被配置为根据监测信息进行相应处理。2.根据权利要求1所述的dram数据处理平台,其特征在于,所述操作指令包括数据读写指令;所述dram数据处理平台还包括数据比对单元,所述数据监控单元与所述数据比对单元通信连接;其中,所述数据监控单元,被配置为响应于模拟模式,获取所述控制器发送的数据读写指令;所述数据处理单元,被配置为模拟待验证dram的读写功能,根据所述数据读写指令进行数据读写;所述数据监控单元,还被配置为响应于监控模式,对在所述控制器与所述dimm连接的信号线上所执行的读写操作进行监测,获得监测信息;所述数据处理单元,还被配置为:根据所述监测信息生成对应的事务传输包;所述数据比对单元,被配置为根据所述事务传输包进行读写数据比对,以确定所述控制器与位于所述dimm上的待验证dram之间数据读写的正确性。3.根据权利要求2所述的dram数据处理平台,其特征在于,所述dram数据处理平台还包括数据驱动单元,所述数据驱动单元与所述数据处理单元通信连接;其中,所述数据处理单元,被配置为:模拟待验证dram的读写功能;在所述数据读写指令为数据写指令时,将所述数据写指令中的地址作为待写入数据的索引,存储所述数据写指令中的待写入数据至构建的数组中;在所述数据读写指令为数据读指令时,从所述数组中读取与所述数据读指令中的地址关联的数据,并生成对应的数据包发送到所述数据驱动单元;所述数据驱动单元,被配置为对所述数据包进行解析,并将解析结果反馈到所述控制器。4.根据权利要求2所述的dram数据处理平台,其特征在于,所述数据监控单元,被配置为:监控所述控制器与所述dimm连接的信号线以获取所述控制器和所述dimm之间传输的有效操作信息,所述有效操作信息是以高低电平组的方式表示的;所述数据处理单元,被配置为:将所述有效操作信息转化为仿真波形图像上的可识别指令字符,以获取所述控制器向所述dimm发出的数据读写指令、地址信息和与数据读写指令关联的数据信息;
根据所述数据读写指令、所述地址信息和与所述数据读写指令关联的数据信息,生成事务传输包,并将所述事务传输包发送给所述数据比对单元。5.根据权利要求2所述的dram数据处理平台,其特征在于,所述数据比对单元,被配置为:解析所述事务传输包,以获得所述控制器对所述dimm写入的数据以及所述dimm反馈给所述控制器所读取的数据;比对所述控制器对所述dimm写入的数据与所述dimm反馈给所述控制器所读取的数据是否一致;若是,则确定所述控制器与位于所述dimm上的待验证dram之间数据读写正确。6.根据权利要求3所述的dram数据处理平台,其特征在于,所述数据处理单元,还被配置为:配置当前工作场景对应的特征变量,并将所述特征变量传递给所述数据驱动单元和所述数据监控单元;所述特征变量包括dimm基本信息、时钟和复位信息、地址信息和数据存储信息、时序信息、数据保护信息、检查使能信息。7.一种基于权利要求1至6中任一项所述的dram数据处理平台的验证方法,其特征在于,所述方法包括:数据监控单元响应于模拟模式,获取控制器发送的操作指令;所述操作指令包括待验证dram支持的协议所规定的指令;数据处理单元模拟待验证dram的功能,根据所述操作指令执行相应处理;数据监控单元响应于监控模式,对在控制器与dimm连接的信号线上所执行的操作进行监测,获得监测信息;数据处理单元根据监测信息进行相应处理。8.根据权利要求7所述的方法,其特征在于,在所述操作指令包括数据读写指令时,所述数据监控单元响应于模拟模式,获取所述控制器发送的数据读写指令;所述数据处理单元模拟待验证dram的读写功能,根据所述数据读写指令进行数据读写;所述数据监控单元响应于监控模式,对在所述控制器与所述dimm连接的信号线上所执行的读写操作进行监测,获得监测信息;所述数据处理单元根据所述监测信息生成对应的事务传输包;所述数据比对单元根据所述事务传输包进行读写数据比对,以确定所述控制器与位于所述dimm上的待验证dram之间数据读写的正确性。9.根据权利要求8所述的方法,其特征在于,所述数据处理单元模拟待验证dram的读写功能,根据所述操作指令执行相应处理,包括:数据处理单元模拟待验证dram的读写功能,在所述数据读写指令为数据写指令时,将所述数据写指令中的地址作为待写入数据的索引,存储所述数据写指令中的待写入数据至构建的数组中,以及在所述数据读写指令为数据读指令时,从所述数组中读取与所述数据读指令中的地址关联的数据,并生成对应的数据包发送到所述数据驱动单元;
所述方法还包括:数据驱动单元对所述数据包进行解析,并将解析结果反馈到所述控制器。10.根据权利要求8所述的方法,其特征在于,所述数据监控单元响应于监控模式,对在所述控制器与所述dimm连接的信号线上所执行的读写操作进行监测,获得监测信息,包括:监控所述控制器与所述dimm连接的信号线以获取所述控制器和所述dimm之间传输的有效操作信息,所述有效操作信息是以高低电平组的方式表示的;所述数据处理单元根据所述监测信息生成对应的事务传输包,包括:将所述有效操作信息转化为仿真波形图像上的可识别指令字符,以获取所述控制器向所述dimm发出的数据读写指令、地址信息和与数据读写指令关联的数据信息;根据所述数据读写指令、所述地址信息和与所述数据读写指令关联的数据信息,生成事务传输包。
技术总结
本申请公开了一种动态随机存取存储器(Dram)数据处理平台,应用于Dram控制系统,Dram控制系统包括控制器和DIMM,Dram数据处理平台包括数据监控单元和数据处理单元;其中,数据监控单元被配置为响应于模拟模式,获取控制器发送的操作指令;数据处理单元被配置为模拟待验证Dram的功能,根据操作指令执行相应处理;数据监控单元还被配置为响应于监控模式,对在控制器与DIMM连接的信号线上所执行的操作进行监测,获得监测信息;数据处理单元还被配置为根据监测信息进行相应处理。如此,通过使设计的Dram数据处理平台具备模拟Dram的功能,减少了仿真时间,提高了仿真速度,且可复用至不同厂商的Dram颗粒的仿真环境中,减少了验证环境开发的工作量,提高了验证效率。提高了验证效率。提高了验证效率。
技术研发人员:张吉兴 黄运新 杨亚飞
受保护的技术使用者:深圳大普微电子科技有限公司
技术研发日:2023.04.26
技术公布日:2023/8/1
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
飞机超市 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/