CN117112452A - 寄存器模拟配置方法、装置、计算机设备和存储介质 - Google Patents
寄存器模拟配置方法、装置、计算机设备和存储介质 Download PDFInfo
- Publication number
- CN117112452A CN117112452A CN202311077916.2A CN202311077916A CN117112452A CN 117112452 A CN117112452 A CN 117112452A CN 202311077916 A CN202311077916 A CN 202311077916A CN 117112452 A CN117112452 A CN 117112452A
- Authority
- CN
- China
- Prior art keywords
- memory
- register
- memory bank
- time sequence
- controller
- 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.)
- Granted
Links
- 238000004088 simulation Methods 0.000 title claims abstract description 73
- 238000000034 method Methods 0.000 title claims abstract description 67
- 238000004590 computer program Methods 0.000 claims abstract description 26
- 238000012216 screening Methods 0.000 claims abstract description 21
- 238000013179 statistical model Methods 0.000 claims description 55
- 238000006243 chemical reaction Methods 0.000 claims description 15
- 230000008569 process Effects 0.000 description 14
- 239000002245 particle Substances 0.000 description 10
- 238000004422 calculation algorithm Methods 0.000 description 8
- 230000008859 change Effects 0.000 description 7
- 239000008187 granular material Substances 0.000 description 7
- 238000004364 calculation method Methods 0.000 description 6
- 238000012545 processing Methods 0.000 description 6
- 238000004891 communication Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 230000009286 beneficial effect Effects 0.000 description 3
- 230000001360 synchronised effect Effects 0.000 description 3
- 230000009977 dual effect Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000001914 filtration Methods 0.000 description 2
- 229910052710 silicon Inorganic materials 0.000 description 2
- 239000010703 silicon Substances 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 101100498818 Arabidopsis thaliana DDR4 gene Proteins 0.000 description 1
- OKTJSMMVPCPJKN-UHFFFAOYSA-N Carbon Chemical compound [C] OKTJSMMVPCPJKN-UHFFFAOYSA-N 0.000 description 1
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 1
- 230000004913 activation Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000002349 favourable effect Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 229910021389 graphene Inorganic materials 0.000 description 1
- 238000003384 imaging method Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000013178 mathematical model Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
- G06F12/0646—Configuration or reconfiguration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本申请涉及一种寄存器模拟配置方法、装置、计算机设备、存储介质和计算机程序产品。所述方法包括:从创建的堆空间中,读取出配置内存条控制器所需的目标参数;所述堆空间中预先存储有与所述内存条控制器关联的模拟内存条信息;根据所述目标参数,确定出与所述内存条控制器关联的内存时序;从所述内存时序中,筛选出与所述内存条控制器中寄存器对应的目标内存时序,作为所述寄存器的模拟配置参数。采用本方法,能够提高寄存器配置效率。
Description
技术领域
本申请涉及计算机技术领域,特别是涉及一种寄存器模拟配置方法、装置、计算机设备、存储介质和计算机程序产品。
背景技术
在正常访问内存条之前,需要对相应的内存条控制器中寄存器进行配置,不同的输入数据都会影响到最后配置的结果。
传统技术中,在对内存条控制器中寄存器进行配置时,需要插入相应的内存条,比如先插入内存条,接着从插入的内存条中读取出实际数据,来对内存条控制器中寄存器进行配置。但是,每次配置的时候都需要插入内存条,过程比较繁琐,导致寄存器配置效率较低。
发明内容
基于此,有必要针对上述技术问题,提供一种能够寄存器配置效率的寄存器模拟配置方法、装置、计算机设备、计算机可读存储介质和计算机程序产品。
第一方面,本申请提供了一种寄存器模拟配置方法。所述方法包括:
从创建的堆空间中,读取出配置内存条控制器所需的目标参数;所述堆空间中预先存储有与所述内存条控制器关联的模拟内存条信息;
根据所述目标参数,确定出与所述内存条控制器关联的内存时序;
从所述内存时序中,筛选出与所述内存条控制器中寄存器对应的目标内存时序,作为所述寄存器的模拟配置参数。
在其中一个实施例中,所述根据所述目标参数,确定出与所述内存条控制器关联的内存时序,包括:
获取与所述内存条控制器关联的各个内存时序统计模型;
从所述目标参数中,筛选出与所述各个内存时序统计模型关联的输入参数;
分别将与所述各个内存时序统计模型关联的输入参数,输入至所述各个内存时序统计模型中,得到与所述内存条控制器关联的各个内存时序。
在其中一个实施例中,在从所述内存时序中,筛选出与所述内存条控制器中寄存器对应的目标内存时序,作为所述寄存器的模拟配置参数之后,还包括:
获取所述寄存器的预期配置结果;
在所述寄存器的模拟配置参数满足所述预期配置结果的情况下,根据所述寄存器的模拟配置参数,对所述寄存器进行配置。
在其中一个实施例中,所述方法还包括:
在所述寄存器的模拟配置参数不满足所述预期配置结果的情况下,确定所述寄存器的模拟配置参数与所述预期配置结果之间的差异;
根据所述差异,对输出所述模拟配置参数的内存时序统计模型进行更新。
在其中一个实施例中,在从创建的堆空间中,读取出配置内存条控制器所需的目标参数之前,还包括:
获取所述模拟内存条信息;所述模拟内存条信息至少包括第一信息和第二信息,所述第一信息为与模拟内存条关联的内存时序,所述第二信息为所述模拟内存条的描述信息;
将所述模拟内存条信息进行格式转换,得到转换后的模拟内存条信息;
创建所述堆空间,并将所述转换后的模拟内存条信息,存储至所述堆空间中;所述堆空间中存储的所述模拟内存条信息的偏移地址,与实际内存条信息的偏移地址相同。
在其中一个实施例中,所述从创建的堆空间中,读取出配置内存条控制器所需的目标参数,包括:
对接收到的目标参数读取请求进行解析,得到当前基地址和当前偏移地址;
将所述当前基地址转换成所述堆空间的基地址;
根据所述堆空间的基地址和所述当前偏移地址,得到目标参数存储地址;
根据所述目标参数存储地址,从所述堆空间对应位置中,读取出配置所述内存条控制器所需的目标参数。
在其中一个实施例中,所述从所述内存时序中,筛选出与所述内存条控制器中寄存器对应的目标内存时序,包括:
获取所述内存条控制器中寄存器的寄存器标识;
从所述内存时序中,确定出与所述寄存器标识对应的内存时序,作为与所述寄存器对应的目标内存时序。
第二方面,本申请还提供了一种寄存器模拟配置装置。所述装置包括:
参数读取模块,用于从创建的堆空间中,读取出配置内存条控制器所需的目标参数;所述堆空间中预先存储有与所述内存条控制器关联的模拟内存条信息;
时序确定模块,用于根据所述目标参数,确定出与所述内存条控制器关联的内存时序;
时序筛选模块,用于从所述内存时序中,筛选出与所述内存条控制器中寄存器对应的目标内存时序,作为所述寄存器的模拟配置参数。
第三方面,本申请还提供了一种计算机设备。所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
从创建的堆空间中,读取出配置内存条控制器所需的目标参数;所述堆空间中预先存储有与所述内存条控制器关联的模拟内存条信息;
根据所述目标参数,确定出与所述内存条控制器关联的内存时序;
从所述内存时序中,筛选出与所述内存条控制器中寄存器对应的目标内存时序,作为所述寄存器的模拟配置参数。
第四方面,本申请还提供了一种计算机可读存储介质。所述计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
从创建的堆空间中,读取出配置内存条控制器所需的目标参数;所述堆空间中预先存储有与所述内存条控制器关联的模拟内存条信息;
根据所述目标参数,确定出与所述内存条控制器关联的内存时序;
从所述内存时序中,筛选出与所述内存条控制器中寄存器对应的目标内存时序,作为所述寄存器的模拟配置参数。
第五方面,本申请还提供了一种计算机程序产品。所述计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现以下步骤:
从创建的堆空间中,读取出配置内存条控制器所需的目标参数;所述堆空间中预先存储有与所述内存条控制器关联的模拟内存条信息;
根据所述目标参数,确定出与所述内存条控制器关联的内存时序;
从所述内存时序中,筛选出与所述内存条控制器中寄存器对应的目标内存时序,作为所述寄存器的模拟配置参数。
上述寄存器模拟配置方法、装置、计算机设备、存储介质和计算机程序产品,通过从预先存储有与内存条控制器关联的模拟内存条信息的堆空间中,读取出配置该内存条控制器所需的目标参数,接着根据目标参数,确定出与内存条控制器关联的内存时序,最后从内存时序中,筛选出与内存条控制器中寄存器对应的目标内存时序,并将其作为寄存器的模拟配置参数。这样,实现了根据与内存条控制器关联的模拟内存条信息,确定出内存条控制器中寄存器的模拟配置参数的目的,整个过程中只需要输入模拟内存条信息,即可自动确定出寄存器的模拟配置参数,无需插入实际内存条,从而简化了内存条控制器中寄存器的配置过程,进而提高了寄存器配置效率。
附图说明
图1为一个实施例中寄存器模拟配置方法的流程示意图;
图2为一个实施例中确定出与内存条控制器关联的内存时序的步骤的流程示意图;
图3为一个实施例中将转换后的模拟内存条信息存储至堆空间中的步骤的流程示意图;
图4为一个实施例中读取出配置内存条控制器所需的目标参数的步骤的流程示意图;
图5为另一个实施例中寄存器模拟配置方法的流程示意图;
图6为一个实施例中在软件环境下模拟配置DDR Controller流程的方法;
图7为一个实施例中寄存器模拟配置装置的结构框图;
图8为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
在一个实施例中,如图1所示,提供了一种寄存器模拟配置方法,本实施例以该方法应用于终端进行举例说明;可以理解的是,该方法也可以应用于服务器,还可以应用于包括终端和服务器的系统,并通过终端和服务器之间的交互实现。其中,终端可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑等;服务器可以用独立的服务器或者是多个服务器组成的服务器集群来实现。本实施例中,该方法包括以下步骤:
步骤S101,从创建的堆空间中,读取出配置内存条控制器所需的目标参数;堆空间中预先存储有与内存条控制器关联的模拟内存条信息。
其中,本申请需要模拟的内存条是指DDR(Double Data Rate SynchronousDynamic Random Access Memory,双倍速率同步动态随机存储器),比如DDR3、DDR4、DDR5-3200A、DDR5-3200B、DDR5-3200C等,主要用于暂时存放CPU(Central Processing Unit,中央处理器)中的运算数据,以及与硬盘等外部存储器交换的数据。在实际场景中,内存条可以是指DDR DIMM(双倍传输双直列存储器)。DIMM是指Dual Inline Memory Modules,其中文名为双列直插式存储模块。
其中,内存条控制器是指DDR Controller(控制器),用于对内存进行读写,是CPU获得数据的通道。在配置内存条控制器时,需要读取内存条信息;不同内存条,会导致内存条控制器的配置存在偏差,而且会非常大。配置内存条控制器,具体是指配置内存条控制器中寄存器的Timing(内存时序)。
需要说明的是,在实际场景中,在配置内存条控制器时,需要读取插入的实际内存条的信息;而本申请是在软件环境中模拟内存条,并利用模拟内存条信息,来配置内存条控制器,无需依赖硬件(即实际内存条)。
其中,与内存条控制器关联的模拟内存条信息,是指配置内存条控制器所需的模拟内存条的内存条信息,具体包括与模拟内存条关联的内存时序以及模拟内存条的描述信息。也就是说,本申请是利用与模拟内存条关联的内存时序以及模拟内存条的描述信息,来模拟插入的一根内存条,从而实现在软件环境中模拟配置内存条控制器。
其中,与模拟内存条关联的内存时序,是指与模拟内存条的规格相关的内存时序,比如CL(CAS Latency,内存读写操作前列地址控制器的潜伏时间)、CWL(CAS WriteLatency,从写命令发出到写数据出现的时间)等;模拟内存条的规格是指DIMM型号。在实际场景中,与模拟内存条关联的内存时序,是指一套满足Jedec(Joint Electron DeviceEngineering Council,固态技术协会)规范的SDRAM(Synchronous Dynamic RandomAccess Memory,同步动态随机存储器)颗粒的Timing,其可以根据模拟内存条的规格,在jedec ddr5 spec(ddr5规范文件)中的speedbin(内存时序表)中查找得到。
其中,模拟内存条的描述信息,是指与模拟内存条相关的重要信息。在实际场景中,模拟内存条的描述信息,是指一套DIMM模型的SPD(SERIAL PRESENCE DETECT,串行存储内存条信息的介质)参数,具体包括该模拟内存条的Rank(内存颗粒集合)数量、内存颗粒带宽、数据线位宽、内存条支持频率以及一些延迟相关的时序。一些延迟相关的时序是指另一套Timing,具体包括TRCD(RAS to CASDelay,内存行地址传输到列地址的延迟时间)、TRP(RAS Precharge Time,内存行地址选通脉冲预充电时间)、TRAS(RAS Active Time,行地址激活的时间)等。
需要说明的是,本申请在配置内存条控制器时,涉及两套Timing,一套Timing是指满足Jedec规范的SDRAM颗粒的Timing,另一套Timing是指从SPD参数中提取出的Timing。
其中,堆空间是指执行寄存器模拟配置过程中所申请的存储空间,用于预先存储与内存条控制器关联的模拟内存条信息,比如SPD参数、满足Jedec规范的SDRAM颗粒的Timing等。需要说明的是,堆空间模拟的是SPD芯片上的一个用于存储SPD参数的可擦写可编程存储器,其内部存储的数据和数据偏移地址与真实的数据和数据偏移地址一样。通过创建堆空间,可以将实际访问数据通路(比如I3C通路)转换成从堆空间里读数据的通路。
其中,配置内存条控制器所需的目标参数,是指一些配置内存条控制器所需的重要参数(即一些与配置内存条控制器相关的参数),具体是指从模拟内存条的描述信息(即SPD参数)中提取出的内存时序、模拟内存条上内存颗粒的数量及带宽,以及与模拟内存条关联的内存时序。在实际场景中,目标参数是指模拟出的DIMM上面内存颗粒的数量、内存颗粒的带宽以及一些SDRAM的Timing,即上面提到的两套Timing。
具体地,终端先获取与内存条控制器关联的模拟内存条信息,接着根据堆空间创建指令,创建相应的堆空间,并将与内存条控制器关联的模拟内存条信息存储至堆空间,使得堆空间存储的模拟内存条信息以及模拟内存条信息的偏移地址,与SPD芯片上的可擦写可编程存储器存储的实际内存条信息以及实际内存条信息的偏移地址一样,从而达到模拟实际内存条的效果。最后,终端根据与内存条控制器相关的读取请求,从创建的堆空间对应位置中,读取出一些与配置内存条控制器相关的参数,作为目标参数。
举例说明,终端先获取一套满足Jedec规范的SDRAM颗粒的Timing和一套DIMM模型的SPD参数,作为模拟内存条信息,并将其存储至预先创建的堆空间中,最后根据读取请求,从堆空间中读取出模拟出的DIMM上面内存颗粒的数量、内存颗粒的带宽以及一些SDRAM的Timing。
步骤S102,根据目标参数,确定出与内存条控制器关联的内存时序。
其中,与内存条控制器关联的内存时序有很多个,比如tWRPDEN、tWRAPDEN等,具体包括内存条控制器中各个寄存器对应的内存时序。在实际场景中,DDR控制器中包括几百个寄存器,每个寄存器都匹配有对应的内存时序,不同寄存器对应的内存时序不一样。
其中,在计算每个内存时序时,从目标参数中选择的参数是不一样的;而且,每个内存时序是通过对从目标参数中选择的参数进行层层计算得到的,比如tWRPDEN这个内存时序是通过WL+WBL/2+(tWR/tCK(avg))+1计算得到的,tWRAPDEN这个内存时序是通过WL+WBL/2+WR+1计算得到的,即每个内存时序都配置有相应的计算函数。需要说明的是,tWRPDEN、tWRAPDEN、WL、WBL、tWR、tCK、WR是指不同的内存时序。
具体地,终端从目标参数中,选择内存条控制器的每个内存时序的关联参数;获取内存条控制器的每个内存时序的统计指令,分别根据内存条控制器的每个内存时序的统计指令,对内存条控制器的每个内存时序的关联参数进行统计,得到内存条控制器的每个内存时序,即得到每个内存时序的具体值。
举例说明,终端从目标参数中,选择tWRPDEN的关联参数,根据tWRPDEN的关联参数,计算得到tWRPDEN的具体值;或者,终端从目标参数中,选择tWRAPDEN的关联参数,根据tWRAPDEN的关联参数,计算得到tWRAPDEN的具体值。
步骤S103,从内存时序中,筛选出与内存条控制器中寄存器对应的目标内存时序,作为寄存器的模拟配置参数。
其中,寄存器对应的目标内存时序,是指从内存条控制器的所有内存时序中筛选出来的与寄存器匹配的内存时序。
其中,寄存器的模拟配置参数,是指寄存器对应的内存时序的具体值。
具体地,终端从与内存条控制器关联的内存时序中,筛选出与内存条控制器中各个寄存器的名称对应的内存时序,对应作为各个寄存器对应的目标内存时序;最后将各个寄存器对应的目标内存时序,确认为各个寄存器的模拟配置参数。
举例说明,假设寄存器A的名称为a,则终端从与内存条控制器关联的内存时序中,筛选出与名称a对应的内存时序(比如A1、A2、A3),作为寄存器A的模拟配置参数。参照此方法,终端可以得到内存条控制器中各个寄存器的模拟配置参数。
上述寄存器模拟配置方法中,通过从预先存储有与内存条控制器关联的模拟内存条信息的堆空间中,读取出配置该内存条控制器所需的目标参数,接着根据目标参数,确定出与内存条控制器关联的内存时序,最后从内存时序中,筛选出与内存条控制器中寄存器对应的目标内存时序,并将其作为寄存器的模拟配置参数。这样,实现了根据与内存条控制器关联的模拟内存条信息,确定出内存条控制器中寄存器的模拟配置参数的目的,整个过程中只需要输入模拟内存条信息,即可自动确定出寄存器的模拟配置参数,无需插入实际内存条,从而简化了内存条控制器中寄存器的配置过程,进而提高了寄存器配置效率。
在一个实施例中,如图2所示,上述步骤S102,根据目标参数,确定出与内存条控制器关联的内存时序,具体包括如下步骤:
步骤S201,获取与内存条控制器关联的各个内存时序统计模型。
步骤S202,从目标参数中,筛选出与各个内存时序统计模型关联的输入参数。
步骤S203,分别将与各个内存时序统计模型关联的输入参数,输入至各个内存时序统计模型中,得到与内存条控制器关联的各个内存时序。
其中,内存时序统计模型是指用于统计出相应内存时序的数学模型,比如tWRPDEN统计模型、tWRAPDEN统计模型等,每个内存时序都对应有一个内存时序统计模型。需要说明的是,tWRPDEN统计模型是对公式WL+WBL/2+(tWR/tCK(avg))+1进行抽象得到的内存时序统计模型,tWRAPDEN统计模型是对公式WL+WBL/2+WR+1进行抽象得到的内存时序统计模型。
其中,每个内存时序统计模型关联的输入参数,是指从目标参数中筛选出的计算相应内存时序所需要的参数。
具体地,终端获取内存条控制器的控制器标识,根据内存条控制器的控制器标识,查询控制器标识与内存时序统计模型的关联关系,得到与内存条控制器关联的各个内存时序统计模型;接着,终端根据各个内存时序统计模型的输入参数标识,从目标参数中,筛选出与各个内存时序统计模型的输入参数标识对应的参数,作为与各个内存时序统计模型关联的输入参数;最后,终端分别将与各个内存时序统计模型关联的输入参数,输入至各个内存时序统计模型中,通过各个内存时序统计模型对对应的输入参数进行层层计算,得到与内存条控制器关联的各个内存时序。
举例说明,终端获取与内存条控制器关联的tWRPDEN统计模型和tWRAPDEN统计模型;从目标参数中,筛选出与tWRPDEN统计模型关联的输入参数,以及与tWRAPDEN统计模型关联的输入参数;将与tWRPDEN统计模型关联的输入参数,输入至tWRPDEN统计模型,通过tWRPDEN统计模型计算得到tWRPDEN,以及将与tWRAPDEN统计模型关联的输入参数,输入至tWRAPDEN统计模型,通过tWRAPDEN统计模型计算得到tWRAPDEN。
在本实施例中,通过与内存条控制器关联的各个内存时序统计模型,对与各个内存时序统计模型关联的输入参数进行处理,得到与内存条控制器关联的各个内存时序;这样,利用各个内存时序统计模型,可以快速计算出与内存条控制器关联的各个内存时序,有利于提高内存时序的确定效率,进一步提高了后续的寄存器配置效率。
在一个实施例中,上述步骤S103,在从内存时序中,筛选出与内存条控制器中寄存器对应的目标内存时序,作为寄存器的模拟配置参数之后,还包括如下内容:获取寄存器的预期配置结果;在寄存器的模拟配置参数满足预期配置结果的情况下,根据寄存器的模拟配置参数,对寄存器进行配置。
其中,寄存器的预期配置结果是指寄存器的预期内存时序范围,具体是指寄存器对应的内存时序的预期范围。需要说明的是,寄存器的预期配置结果是验证过的数据。
其中,寄存器的模拟配置参数满足预期配置结果,是指寄存器的模拟配置参数在对应的预期内存时序范围内,说明该寄存器模拟配置成功,后续可以利用该模拟配置参数对该寄存器进行配置。
其中,根据寄存器的模拟配置参数,对寄存器进行配置,是指将寄存器的模拟配置参数作为寄存器的内存时序的具体值。
具体地,终端从数据库中,获取内存条控制器中寄存器的预期配置结果,并将该寄存器的模拟配置参数与预期配置结果进行比较,得到比较结果;根据比较结果,识别到寄存器的模拟配置参数在预期配置结果所表示的预期内存时序范围内,则确认该寄存器的模拟配置参数满足预期配置结果,接着根据寄存器的模拟配置参数,对寄存器进行配置,即将模拟配置参数作为寄存器的内存时序的初始值,后续在使用调试过程中,对寄存器的内存时序的具体值进行不断优化。
举例说明,在识别到寄存器的模拟配置参数符合硅前验证的结果的情况下,在硅后过程中第一次使用时,会使用这套模拟配置参数进行启动,后续在使用调试过程中,再对这套模拟配置参数进行优化。
在本实施例中,在寄存器的模拟配置参数满足预期配置结果的情况下,才根据寄存器的模拟配置参数,对寄存器进行配置,有利于提高寄存器的配置准确率,避免确定出的模拟配置参数不符合要求,导致寄存器配置过程中存在故障的缺陷。
在一个实施例中,本申请提供的寄存器模拟配置方法还包括对内存时序统计模型进行更新的步骤,具体包括如下内容:在寄存器的模拟配置参数不满足预期配置结果的情况下,确定寄存器的模拟配置参数与预期配置结果之间的差异;根据差异,对输出模拟配置参数的内存时序统计模型进行更新。
其中,寄存器的模拟配置参数不满足预期配置结果,是指寄存器的模拟配置参数不在对应的预期内存时序范围内,说明该寄存器模拟配置失败,后续需要重新计算出该寄存器的模拟配置参数;同时也说明输出模拟配置参数的内存时序统计模型的精度较低,后续需要对该内存时序统计模型进行更新。
其中,输出模拟配置参数的内存时序统计模型,是指计算出对应内存时序的具体值的内存时序统计模型。
具体地,终端将该寄存器的模拟配置参数与预期配置结果进行比较,得到比较结果;根据比较结果,识别到寄存器的模拟配置参数不在预期配置结果所表示的预期内存时序范围内,则确认该寄存器的模拟配置参数不满足预期配置结果;接着,获取寄存器的模拟配置参数与预期配置结果之间的差异,并根据差异对输出模拟配置参数的内存时序统计模型进行不断更新,直到更新后内存时序统计模型输出的模拟配置参数满足对应的预期配置结果,则停止更新。进一步地,终端后续可以使用更新后内存时序统计模型,输出该寄存器的内存时序,作为该寄存器的新的模拟配置参数。
举例说明,终端识别到寄存器的tWRPDEN的具体值不在tWRPDEN的预期内存时序范围内,说明该寄存器的tWRPDEN的具体值不满足预期配置结果,则根据tWRPDEN的具体值与对应的预期配置结果之间的差异,对tWRPDEN统计模型进行不断更新,直到更新后tWRPDEN统计模型的精度满足要求,即通过更新后tWRPDEN统计模型可以输出满足预期配置结果的tWRPDEN。
在本实施例中,在寄存器的模拟配置参数不满足预期配置结果的情况下,利用寄存器的模拟配置参数与预期配置结果之间的差异,对输出模拟配置参数的内存时序统计模型进行更新,实现了对内存时序统计模型进行不断优化的目的,有利于进一步提高更新后内存时序统计模型的精度,使得后续通过更新后内存时序统计模型输出的模拟配置参数更加接近预期配置结果,进一步提高了模拟配置参数的确定准确率。
在一个实施例中,如图3所示,上述步骤S101,在从创建的堆空间中,读取出配置内存条控制器所需的目标参数之前,还包括将转换后的模拟内存条信息存储至堆空间中的步骤,具体包括如下步骤:
步骤S301,获取模拟内存条信息;模拟内存条信息至少包括第一信息和第二信息,第一信息为与模拟内存条关联的内存时序,第二信息为模拟内存条的描述信息。
步骤S302,将模拟内存条信息进行格式转换,得到转换后的模拟内存条信息。
步骤S303,创建堆空间,并将转换后的模拟内存条信息,存储至堆空间中;堆空间中存储的模拟内存条信息的偏移地址,与实际内存条信息的偏移地址相同。
其中,将模拟内存条信息进行格式转换,是指将模拟内存条信息转换为C语言,从而得到C语言数据结构体,方便后面进行参数配置。转换后的模拟内存条信息的格式为C语言数据结构体。
其中,创建的堆空间用于存储转换后的模拟内存条信息。需要说明的是,堆空间预先进行了布局设计,使得堆空间存储的每一份模拟内存条信息及其偏移地址,与对应SPD芯片上的可擦写可编程存储器存储的每一份实际内存条信息及其实际偏移地址一样,从而将实际访问数据通路(比如I3C通路)转换成从堆空间里读数据的通路;这样的话在后期代码也可以做最小的改动,即可把从堆空间里读数据的通路变成实际访问数据通路,大大节省了从软件模拟到实际硬件读取代码上的改动时间。在实际场景中,一般是通过I3C通路读取SPD参数。
具体地,终端获取与模拟内存条关联的内存时序以及模拟内存条的描述信息,并将这两个信息进行组合,得到与内存条控制器关联的模拟内存条信息;接着按照格式转换指令(该指令可以通过Python脚本实现),对模拟内存条信息进行格式转换处理,得到转换后的模拟内存条信息;最后,创建用于替代SPD芯片上的可擦写可编程存储器的堆空间,并将转换后的模拟内存条信息,存储至该堆空间中。
举例说明,终端先获取一套满足Jedec规范的SDRAM颗粒的Timing和一套DIMM模型的SPD参数,作为与内存条控制器关联的模拟内存条信息,并利用Python脚本将这两套数据转换成C语言,从而得到C语言数据结构体;最后,终端申请一块堆地址,以创建用于替代SPD芯片上的可擦写可编程存储器的堆空间,该堆空间内部存储的数据和数据偏移地址与真实的一样,接着将得到的C语言数据结构体,存储至该堆空间中。
在本实施例中,通过将获取到的模拟内存条信息进行格式转换,得到转换后的模拟内存条信息,然后创建堆空间,最后将转换后的模拟内存条信息存储至创建的堆空间中;这样,利用堆空间存储模拟内存条信息,可以模拟SPD芯片上的可擦写可编程存储器存储真实的SPD参数的情况,从而无需插入真实内存条,即无需硬件支持,有利于后续在软件环境中模拟配置内存条控制器中寄存器,从而提高了寄存器配置效率。同时,将模拟内存条信息进行格式转换,以适配软件环境,从而更有利于在软件环境中模拟配置内存条控制器中寄存器。
在一个实施例中,如图4所示,上述步骤S101,从创建的堆空间中,读取出配置内存条控制器所需的目标参数,具体包括如下步骤:
步骤S401,对接收到的目标参数读取请求进行解析,得到当前基地址和当前偏移地址。
步骤S402,将当前基地址转换成堆空间的基地址。
步骤S403,根据堆空间的基地址和当前偏移地址,得到目标参数存储地址。
步骤S404,根据目标参数存储地址,从堆空间对应位置中,读取出配置内存条控制器所需的目标参数。
其中,目标参数读取请求是指读取配置内存条控制器所需要的参数的请求。
其中,当前基地址是指I3C基地址,当前偏移地址是指要读取的目标参数的偏移地址。需要说明的是,从目标参数读取请求中可以提取出目标参数读取地址(即I3C通路访问目标参数的实际地址),再从该目标参数读取地址中拆分出当前基地址和当前偏移地址。
其中,堆空间的基地址在创建堆空间的时候就可以确定下来。
其中,目标参数存储地址是指经过转换后的目标参数读取地址,具体由堆空间的基地址和当前偏移地址拼接得到。需要说明的是,本申请根据转换得到的目标参数存储地址,去从堆空间对应位置中,读取出配置内存条控制器所需的目标参数,可以模拟出I3C通路通过偏移地址读取到堆空间中对应地址的数据,即将想要的实际地址转换到堆空间的地址然后读取到相应的数据,从而实现了将实际访问数据通路(比如I3C通路)转换成从堆空间里读数据的通路的目的。
具体地,终端对接收到的目标参数读取请求进行解析,得到目标参数读取地址;对目标参数读取地址进行拆分,得到当前基地址和当前偏移地址;接着,根据当前基地址与堆空间基地址之间的转换关系,将当前基地址转换成堆空间的基地址;然后,将堆空间的基地址和当前偏移地址进行拼接,得到拼接地址,作为目标参数存储地址;最后,从堆空间中与目标参数存储地址对应的位置处,读取出配置内存条控制器所需的目标参数。
举例说明,终端通过地址转换器,将接收到的实际地址进行拆分,得到I3C基地址和偏移地址,将拆分出来的基地址转换成对应堆空间的基地址,并在转换得到的堆空间的基地址上,加上该偏移地址,得到实际地址在堆空间中对应的存储地址,作为目标参数存储地址;最后,根据目标参数存储地址,从堆空间中读取出配置内存条控制器所需的目标参数,比如模拟出的DIMM上面内存颗粒的数量、内存颗粒的带宽以及一些SDRAM的Timing。
在本实施例中,通过将从接收到的目标参数读取请求中解析出来的当前基地址,转换成堆空间的基地址,并结合解析出来的当前偏移地址,得到目标参数存储地址,最后从堆空间中与目标参数存储地址对应的位置,读取出配置内存条控制器所需的目标参数;这样,实现了从实际访问数据通路转换成从堆空间里读数据的通路的目的,保证了在软件环境中能够成功读取出配置内存条控制器所需的目标参数,使得后续做最小的代码改动,即可把从堆空间里读数据的通路变成实际访问数据通路,大大节省了从软件模拟到实际硬件读取代码上的改动时间。
在一个实施例中,上述步骤S103,从内存时序中,筛选出与内存条控制器中寄存器对应的目标内存时序,具体包括如下步骤:获取内存条控制器中寄存器的寄存器标识;从内存时序中,确定出与寄存器标识对应的内存时序,作为与寄存器对应的目标内存时序。
其中,寄存器标识是指寄存器的唯一标识信息,比如寄存器名称、寄存器编号等。
具体地,终端查询数据库,得到内存条控制器中寄存器的寄存器标识;或者,通过寄存器标识识别指令,识别出内存条控制器中寄存器的寄存器标识。接着,终端从与内存条控制器关联的所有内存时序中,筛选出与寄存器标识对应的内存时序,最后将与寄存器标识对应的内存时序,确认为与该寄存器对应的目标内存时序。
举例说明,假设寄存器B的寄存器标识为b,则终端从与内存条控制器关联的所有内存时序中,筛选出与寄存器标识b对应的内存时序(比如B1、B2、B3),并将其作为寄存器B的目标内存时序。参照此方法,终端可以得到内存条控制器中各个寄存器的目标内存时序。
在本实施例中,根据内存条控制器中寄存器的寄存器标识,从内存时序中,确定出与寄存器标识对应的内存时序,作为与寄存器对应的目标内存时序;这样,根据寄存器的寄存器标识,可以准确查询到寄存器对应的目标内存时序,避免找到的目标内存时序不全面或者存在错误,从而提高了寄存器的目标内存时序的确定准确率。
在一个实施例中,如图5所示,提供了另一种寄存器模拟配置方法,以该方法应用于终端为例进行说明,包括以下步骤:
步骤S501,获取模拟内存条信息;模拟内存条信息至少包括第一信息和第二信息,第一信息为与模拟内存条关联的内存时序,第二信息为模拟内存条的描述信息。
步骤S502,将模拟内存条信息进行格式转换,得到转换后的模拟内存条信息。
步骤S503,创建堆空间,并将转换后的模拟内存条信息,存储至堆空间中;堆空间中存储的模拟内存条信息的偏移地址,与实际内存条信息的偏移地址相同。
步骤S504,对接收到的目标参数读取请求进行解析,得到当前基地址和当前偏移地址;将当前基地址转换成堆空间的基地址。
步骤S505,根据堆空间的基地址和当前偏移地址,得到目标参数存储地址;根据目标参数存储地址,从堆空间对应位置中,读取出配置内存条控制器所需的目标参数。
步骤S506,获取与内存条控制器关联的各个内存时序统计模型;从目标参数中,筛选出与各个内存时序统计模型关联的输入参数。
步骤S507,分别将与各个内存时序统计模型关联的输入参数,输入至各个内存时序统计模型中,得到与内存条控制器关联的各个内存时序。
步骤S508,获取内存条控制器中寄存器的寄存器标识;从内存时序中,确定出与寄存器标识对应的内存时序,作为与寄存器对应的目标内存时序;将与寄存器对应的目标内存时序,确认为寄存器的模拟配置参数。
步骤S509,获取寄存器的预期配置结果;在寄存器的模拟配置参数满足预期配置结果的情况下,根据寄存器的模拟配置参数,对寄存器进行配置。
上述寄存器模拟配置方法中,根据与内存条控制器关联的模拟内存条信息,确定出内存条控制器中寄存器的模拟配置参数,整个过程中只需要输入模拟内存条信息,即可自动确定出寄存器的模拟配置参数,无需插入实际内存条,从而实现了在软件环境中模拟配置内存条控制器的目的,进而简化了内存条控制器中寄存器的配置过程,进一步提高了寄存器配置效率。
在一个实施例中,为了更清晰阐明本申请实施例提供的寄存器模拟配置方法,以下以一个具体的实施例对该寄存器模拟配置方法进行具体说明。在一个实施例中,参考图6,本申请还提供了一种在软件环境下模拟配置DDR Controller流程的方法,模拟从内存条上电到读取内存条,然后再通过算法,基于读取到的内存数据,算出需要改变的内存时序,并将这些内存时序填到DDR Controller的寄存器中。具体包括如下内容:
(1)终端使用软件模拟配置程序,获取一套满足Jedec规范的SDRAM颗粒的Timing、一套DIMM模型的SPD参数以及预期配置结果,并将预期配置结果存储至预期结果存放空间。接着,终端利用满足Jedec规范的SDRAM颗粒的Timing和DIMM模型的SPD参数这两套数据,来模拟插入的一根内存条。
(2)终端利用Python脚本(一种用于格式转换的脚本),对上述两套数据进行格式转换,得到C语言数据结构体,方便后面进行模拟配置。
(3)终端在执行模拟配置的过程中,创建寄存器的堆空间,用于模拟SPD芯片上的一个可擦写可编程存储器,其内部存储的数据和数据偏移地址与真实的一样;此时,终端将上述C语言数据结构体,对应存储至创建的堆空间中。
(4)终端通过堆空间地址和寄存器地址转换器,将接收到的基地址和偏移量先进行拆分,将拆分出来的基地址转换成对应的堆空间基地址,在加上数据的偏移地址,从而可以模拟出I3C通路通过偏移地址读取到堆空间中对应地址的数据,进而得到配置DDRController所需要的数据,比如模拟出的DIMM上面内存颗粒的数量、内存颗粒的带宽以及一些SDRAM的Timing。
(5)终端利用DDR Controller Timing算法(一种计算内存时序的算法),将从堆空间读取到的数据(即配置DDR Controller所需要的数据)作为算法的输入数据,并通过算法计算出与DDR Controller关联的所有Timing,比如通过算法将DDR Controller读取过程中有那些相关的寄存器和读写时序因为CL这个延迟的不同导致的变化给算出来,再将DDRController读取DDR上数据所需要的其他时序给算出来。
(6)终端将计算出来的Timing,模拟成要填入DDR Controller中寄存器的模拟值,其中包括DDR Controller中七百多个寄存器的相关配置的具体值。
(7)终端利用DDR Controller配置结果校验器,将DDR Controller中寄存器的模拟值与预期结果存放空间中存放的预期配置结果进行比较,判断是否模拟配置成功。
上述在软件环境下模拟配置DDR Controller流程的方法,可以达到以下技术效果:(1)有效地提早了DDR Controller配置方案产品化的时间,可以在早期利用软件算法模拟出想要的DIMM,并将其放到堆空间,通过一个软件的地址转换器,将想要的实际地址转换到堆空间的地址,然后拿到相应的数据,这样的话在后期代码也可以做最小的改动,就可以把从堆空间里读数据的通路变成实际的访问数据通路,大大节省了从软件模拟到实际硬件读取代码上的改动时间。(2)将通过算法算出的寄存器配置的具体值和预期配置结果进行比对,可以提前验证整套算法的可靠性,而且软件模拟出结果也是很快的,从而提早了调试时间,进而提高了开发效率。
应该理解的是,虽然如上所述的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上所述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
基于同样的发明构思,本申请实施例还提供了一种用于实现上述所涉及的寄存器模拟配置方法的寄存器模拟配置装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个寄存器模拟配置装置实施例中的具体限定可以参见上文中对于寄存器模拟配置方法的限定,在此不再赘述。
在一个实施例中,如图7所示,提供了一种寄存器模拟配置装置,包括:参数读取模块710、时序确定模块720和时序筛选模块730,其中:
参数读取模块710,用于从创建的堆空间中,读取出配置内存条控制器所需的目标参数;堆空间中预先存储有与内存条控制器关联的模拟内存条信息。
时序确定模块720,用于根据目标参数,确定出与内存条控制器关联的内存时序。
时序筛选模块730,用于从内存时序中,筛选出与内存条控制器中寄存器对应的目标内存时序,作为寄存器的模拟配置参数。
在一个实施例中,时序确定模块720,还用于获取与内存条控制器关联的各个内存时序统计模型;从目标参数中,筛选出与各个内存时序统计模型关联的输入参数;分别将与各个内存时序统计模型关联的输入参数,输入至各个内存时序统计模型中,得到与内存条控制器关联的各个内存时序。
在一个实施例中,寄存器模拟配置装置还包括模拟配置模块,用于获取寄存器的预期配置结果;在寄存器的模拟配置参数满足预期配置结果的情况下,根据寄存器的模拟配置参数,对寄存器进行配置。
在一个实施例中,寄存器模拟配置装置还包括模型更新模块,用于在寄存器的模拟配置参数不满足预期配置结果的情况下,确定寄存器的模拟配置参数与预期配置结果之间的差异;根据差异,对输出模拟配置参数的内存时序统计模型进行更新。
在一个实施例中,寄存器模拟配置装置还包括信息存储模块,用于获取模拟内存条信息;模拟内存条信息至少包括第一信息和第二信息,第一信息为与模拟内存条关联的内存时序,第二信息为模拟内存条的描述信息;将模拟内存条信息进行格式转换,得到转换后的模拟内存条信息;创建堆空间,并将转换后的模拟内存条信息,存储至堆空间中;堆空间中存储的模拟内存条信息的偏移地址,与实际内存条信息的偏移地址相同。
在一个实施例中,参数读取模块710,还用于对接收到的目标参数读取请求进行解析,得到当前基地址和当前偏移地址;将当前基地址转换成堆空间的基地址;根据堆空间的基地址和当前偏移地址,得到目标参数存储地址;根据目标参数存储地址,从堆空间对应位置中,读取出配置内存条控制器所需的目标参数。
在一个实施例中,时序筛选模块730,还用于获取内存条控制器中寄存器的寄存器标识;从内存时序中,确定出与寄存器标识对应的内存时序,作为与寄存器对应的目标内存时序。
上述寄存器模拟配置装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图8所示。该计算机设备包括处理器、存储器、输入/输出接口、通信接口、显示单元和输入装置。其中,处理器、存储器和输入/输出接口通过系统总线连接,通信接口、显示单元和输入装置通过输入/输出接口连接到系统总线。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质和内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的输入/输出接口用于处理器与外部设备之间交换信息。该计算机设备的通信接口用于与外部的终端进行有线或无线方式的通信,无线方式可通过WIFI、移动蜂窝网络、NFC(近场通信)或其他技术实现。该计算机程序被处理器执行时以实现一种寄存器模拟配置方法。该计算机设备的显示单元用于形成视觉可见的画面,可以是显示屏、投影装置或虚拟现实成像装置。显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图8中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,还提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
需要说明的是,本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-OnlyMemory,ROM)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(ReRAM)、磁变存储器(Magnetoresistive Random Access Memory,MRAM)、铁电存储器(Ferroelectric Random Access Memory,FRAM)、相变存储器(Phase Change Memory,PCM)、石墨烯存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器等。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic RandomAccess Memory,DRAM)等。本申请所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本申请所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。
Claims (11)
1.一种寄存器模拟配置方法,其特征在于,所述方法包括:
从创建的堆空间中,读取出配置内存条控制器所需的目标参数;所述堆空间中预先存储有与所述内存条控制器关联的模拟内存条信息;
根据所述目标参数,确定出与所述内存条控制器关联的内存时序;
从所述内存时序中,筛选出与所述内存条控制器中寄存器对应的目标内存时序,作为所述寄存器的模拟配置参数。
2.根据权利要求1所述的方法,其特征在于,所述根据所述目标参数,确定出与所述内存条控制器关联的内存时序,包括:
获取与所述内存条控制器关联的各个内存时序统计模型;
从所述目标参数中,筛选出与所述各个内存时序统计模型关联的输入参数;
分别将与所述各个内存时序统计模型关联的输入参数,输入至所述各个内存时序统计模型中,得到与所述内存条控制器关联的各个内存时序。
3.根据权利要求1所述的方法,其特征在于,在从所述内存时序中,筛选出与所述内存条控制器中寄存器对应的目标内存时序,作为所述寄存器的模拟配置参数之后,还包括:
获取所述寄存器的预期配置结果;
在所述寄存器的模拟配置参数满足所述预期配置结果的情况下,根据所述寄存器的模拟配置参数,对所述寄存器进行配置。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
在所述寄存器的模拟配置参数不满足所述预期配置结果的情况下,确定所述寄存器的模拟配置参数与所述预期配置结果之间的差异;
根据所述差异,对输出所述模拟配置参数的内存时序统计模型进行更新。
5.根据权利要求1所述的方法,其特征在于,在从创建的堆空间中,读取出配置内存条控制器所需的目标参数之前,还包括:
获取所述模拟内存条信息;所述模拟内存条信息至少包括第一信息和第二信息,所述第一信息为与模拟内存条关联的内存时序,所述第二信息为所述模拟内存条的描述信息;
将所述模拟内存条信息进行格式转换,得到转换后的模拟内存条信息;
创建所述堆空间,并将所述转换后的模拟内存条信息,存储至所述堆空间中;所述堆空间中存储的所述模拟内存条信息的偏移地址,与实际内存条信息的偏移地址相同。
6.根据权利要求5所述的方法,其特征在于,所述从创建的堆空间中,读取出配置内存条控制器所需的目标参数,包括:
对接收到的目标参数读取请求进行解析,得到当前基地址和当前偏移地址;
将所述当前基地址转换成所述堆空间的基地址;
根据所述堆空间的基地址和所述当前偏移地址,得到目标参数存储地址;
根据所述目标参数存储地址,从所述堆空间对应位置中,读取出配置所述内存条控制器所需的目标参数。
7.根据权利要求1至6任一项所述的方法,其特征在于,所述从所述内存时序中,筛选出与所述内存条控制器中寄存器对应的目标内存时序,包括:
获取所述内存条控制器中寄存器的寄存器标识;
从所述内存时序中,确定出与所述寄存器标识对应的内存时序,作为与所述寄存器对应的目标内存时序。
8.一种寄存器模拟配置装置,其特征在于,所述装置包括:
参数读取模块,用于从创建的堆空间中,读取出配置内存条控制器所需的目标参数;所述堆空间中预先存储有与所述内存条控制器关联的模拟内存条信息;
时序确定模块,用于根据所述目标参数,确定出与所述内存条控制器关联的内存时序;
时序筛选模块,用于从所述内存时序中,筛选出与所述内存条控制器中寄存器对应的目标内存时序,作为所述寄存器的模拟配置参数。
9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述的方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的方法的步骤。
11.一种计算机程序产品,包括计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1至7中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311077916.2A CN117112452B (zh) | 2023-08-24 | 2023-08-24 | 寄存器模拟配置方法、装置、计算机设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311077916.2A CN117112452B (zh) | 2023-08-24 | 2023-08-24 | 寄存器模拟配置方法、装置、计算机设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117112452A true CN117112452A (zh) | 2023-11-24 |
CN117112452B CN117112452B (zh) | 2024-04-02 |
Family
ID=88807105
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311077916.2A Active CN117112452B (zh) | 2023-08-24 | 2023-08-24 | 寄存器模拟配置方法、装置、计算机设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117112452B (zh) |
Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030236959A1 (en) * | 2002-06-25 | 2003-12-25 | Johnson Jerome J. | Memory auto-precharge |
US20050228629A1 (en) * | 2002-02-22 | 2005-10-13 | Neosera Systems Limited | Method and a processor for parallel processing of logic event simulation |
US20080313578A1 (en) * | 2007-05-09 | 2008-12-18 | Maixner Richard C | Techniques For Use With Automated Circuit Design and Simulations |
CN108416422A (zh) * | 2017-12-29 | 2018-08-17 | 国民技术股份有限公司 | 一种基于fpga的卷积神经网络实现方法及装置 |
CN111143104A (zh) * | 2019-12-29 | 2020-05-12 | 苏州浪潮智能科技有限公司 | 一种内存异常的处理方法、系统、电子设备及存储介质 |
US20200210345A1 (en) * | 2018-12-31 | 2020-07-02 | Knu-Industry Cooperation Foundation | Non-volatile memory device using efficient page collection mapping in association with cache and method of operating the same |
CN111427794A (zh) * | 2020-04-03 | 2020-07-17 | 天津飞腾信息技术有限公司 | 一种用于加速存储部件网表仿真的方法、系统及介质 |
US20200285793A1 (en) * | 2019-03-08 | 2020-09-10 | Fujitsu Limited | Simulation apparatus, description conversion method and simulation method |
CN115114874A (zh) * | 2022-06-24 | 2022-09-27 | 山东云海国创云计算装备产业创新中心有限公司 | 一种写均衡功能仿真验证方法、系统、设备以及存储介质 |
CN115454627A (zh) * | 2022-08-30 | 2022-12-09 | 深圳鲲云信息科技有限公司 | 一种神经网络模型的计算方法、计算机设备和存储介质 |
CN116136810A (zh) * | 2021-11-18 | 2023-05-19 | 中国科学院上海高等研究院 | 寄存器传输级设计内存序检测方法及装置存储介质和终端 |
CN116187231A (zh) * | 2023-03-17 | 2023-05-30 | 山东云海国创云计算装备产业创新中心有限公司 | 一种基于ddr验证的信号产生方法、装置、设备及介质 |
CN116521429A (zh) * | 2023-06-27 | 2023-08-01 | 苏州浪潮智能科技有限公司 | 资产信息的上报方法及装置、存储介质及电子设备 |
-
2023
- 2023-08-24 CN CN202311077916.2A patent/CN117112452B/zh active Active
Patent Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050228629A1 (en) * | 2002-02-22 | 2005-10-13 | Neosera Systems Limited | Method and a processor for parallel processing of logic event simulation |
US20030236959A1 (en) * | 2002-06-25 | 2003-12-25 | Johnson Jerome J. | Memory auto-precharge |
US20080313578A1 (en) * | 2007-05-09 | 2008-12-18 | Maixner Richard C | Techniques For Use With Automated Circuit Design and Simulations |
CN108416422A (zh) * | 2017-12-29 | 2018-08-17 | 国民技术股份有限公司 | 一种基于fpga的卷积神经网络实现方法及装置 |
US20200210345A1 (en) * | 2018-12-31 | 2020-07-02 | Knu-Industry Cooperation Foundation | Non-volatile memory device using efficient page collection mapping in association with cache and method of operating the same |
US20200285793A1 (en) * | 2019-03-08 | 2020-09-10 | Fujitsu Limited | Simulation apparatus, description conversion method and simulation method |
CN111143104A (zh) * | 2019-12-29 | 2020-05-12 | 苏州浪潮智能科技有限公司 | 一种内存异常的处理方法、系统、电子设备及存储介质 |
CN111427794A (zh) * | 2020-04-03 | 2020-07-17 | 天津飞腾信息技术有限公司 | 一种用于加速存储部件网表仿真的方法、系统及介质 |
CN116136810A (zh) * | 2021-11-18 | 2023-05-19 | 中国科学院上海高等研究院 | 寄存器传输级设计内存序检测方法及装置存储介质和终端 |
CN115114874A (zh) * | 2022-06-24 | 2022-09-27 | 山东云海国创云计算装备产业创新中心有限公司 | 一种写均衡功能仿真验证方法、系统、设备以及存储介质 |
CN115454627A (zh) * | 2022-08-30 | 2022-12-09 | 深圳鲲云信息科技有限公司 | 一种神经网络模型的计算方法、计算机设备和存储介质 |
CN116187231A (zh) * | 2023-03-17 | 2023-05-30 | 山东云海国创云计算装备产业创新中心有限公司 | 一种基于ddr验证的信号产生方法、装置、设备及介质 |
CN116521429A (zh) * | 2023-06-27 | 2023-08-01 | 苏州浪潮智能科技有限公司 | 资产信息的上报方法及装置、存储介质及电子设备 |
Non-Patent Citations (1)
Title |
---|
李哲;田泽;王世中;郑斐;: "基于PLB4总线的DDR3控制器的设计与优化", 计算机技术与发展, no. 03, pages 181 - 185 * |
Also Published As
Publication number | Publication date |
---|---|
CN117112452B (zh) | 2024-04-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10204698B2 (en) | Method to dynamically inject errors in a repairable memory on silicon and a method to validate built-in-self-repair logic | |
CN111105839B (zh) | 芯片测试方法、装置、电子设备及计算机可读介质 | |
US20220198111A1 (en) | Device for generating verification vector for circuit design verification, circuit design system, and reinforcement learning method of the device and the circuit design system | |
US20160320451A1 (en) | Simulation verification method for fpga function modules and system thereof | |
KR20170059219A (ko) | 메모리 장치, 메모리 시스템 및 메모리 장치의 복구 검증 방법 | |
US20150234977A1 (en) | Method of verifying layout of mask rom | |
CN112464593A (zh) | Rom位映射关系生成方法、装置、处理器芯片及服务器 | |
KR20130048999A (ko) | 반도체 테스트 장치 및 그의 어드레스 스크램블 생성 방법 | |
CN112466379B (zh) | 存储器位映射关系确定方法、装置、处理器芯片及服务器 | |
CN117112452B (zh) | 寄存器模拟配置方法、装置、计算机设备和存储介质 | |
US20230305734A1 (en) | Platform for non-volatile memory storage devices simulation | |
CN116737473A (zh) | 芯片验证的存储器读取、写入方法及其相关装置 | |
US8495537B1 (en) | Timing analysis of an array circuit cross section | |
CN113760751B (zh) | 生成测试用例的方法、电子设备及存储介质 | |
CN116483645A (zh) | 设备虚拟调试方法、装置、设备、存储介质和程序产品 | |
US10176282B2 (en) | Timing delay characterization method, memory compiler and computer program product | |
US11579195B2 (en) | Automated verification code generation based on a hardware design and design data | |
CN114328062A (zh) | 校验缓存一致性的方法、装置和存储介质 | |
US12040030B2 (en) | Method and device for generating command sequence, method and device for testing, and storage medium | |
CN117034824B (zh) | 复用测试用例和验证环境的仿真验证系统、方法、终端及介质 | |
CN118092929A (zh) | 寄存器描述文件转换方法、装置、计算机设备和存储介质 | |
CN116880852A (zh) | 基于机器学习的代码数据检查方法、装置及计算机设备 | |
CN116795658A (zh) | 一种接口测试方法、装置、电子设备及存储介质 | |
CN117131817A (zh) | 芯片验证方法、系统、实时微处理器、介质和程序产品 | |
CN118295664A (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 |