CN115687172A - 内存初始化方法、计算机设备及存储介质 - Google Patents
内存初始化方法、计算机设备及存储介质 Download PDFInfo
- Publication number
- CN115687172A CN115687172A CN202211316568.5A CN202211316568A CN115687172A CN 115687172 A CN115687172 A CN 115687172A CN 202211316568 A CN202211316568 A CN 202211316568A CN 115687172 A CN115687172 A CN 115687172A
- Authority
- CN
- China
- Prior art keywords
- memory
- time delay
- initialization parameter
- initialization
- read
- 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
Links
Images
Landscapes
- Memory System (AREA)
Abstract
本申请提供了一种内存初始化方法、计算机设备及存储介质,涉及计算机技术领域。方法包括:在计算机进行内存初始化时,根据确定对内存的时延需求,基于时延需求确定目标初始化参数组,根据该目标初始化参数组对内存进行初始化,得到对应的读写时延,根据该读写时延对内存进行读操作或写操作。基于时延需求的目标初始化参数组对内存进行初始化,可以使内存的读写时延满足应用场景/模式的时延需求,进而,避免计算机中的内存使用统一的SPD中的时序参数进行初始化,导致所有的应用场景下内存的读写时延一致,无法满足一些具有读写时延需求的应用场景/模式。
Description
技术领域
本发明涉及计算机技术领域,特别是涉及一种内存初始化方法、计算机设备及存储介质。
背景技术
目前,对内存进行读操作或写操作之前,基于初始化参数对内存进行初始化。例如,根据串行存在检测(SerialPresenceDetect,SPD)参数对内存进行初始化,得到内存的读写时延,即内存响应操作系统的读写请求所需要的时长。SPD中的时序参数可以存储在电擦除可编程只读存储器(ElectricallyErasableProgrammableRead-OnlyMemory,EEPROM)中。但往往基于一种读写时延对内存进行读操作或写操作,由于不同场景的内存读写请求对时延要求不同,如果采用一种读写时延对内存进行读操作或写操作,无法满足这些应用场景的时延需求。
发明内容
本申请提供一种内存初始化方法、计算机设备及存储介质,解决了处理器对内存的访问速度无法满足应用场景的时延需求的问题。
第一方面,提供了一种内存初始化的方法,方法包括:在计算机进行内存初始化时,根据确定对内存的时延需求,基于时延需求确定目标初始化参数组,根据该目标初始化参数组对内存进行初始化,得到对应的读写时延,根据该读写时延对内存进行读操作或写操作。
不同的应用场景/模式对内存进行数据读写的时延需求不同,因此,需要确定内存的读写时延。在对数据读写要求快的应用场景时,内存需要具有较短的读写时延,在对数据读写要求稳定的应用场景时,内存需要具有较稳定的读写时延,此时内存进行数据读写比较稳定。通过选择匹配时延需求的初始化参数组对内存进行初始化,可以使在该应用场景下对内存进行读操作或写操作的效率得到提高。
具体地,根据时延需求与初始化参数组的对应关系确定目标初始化参数组。
由于时延需求用于指示内存的读写时延,内存根据初始化参数组进行初始化也会得到对应的读写时延,则选择满足时延需求的初始化参数组作为目标初始化参数组,可以满足应用场景对内存的需求。根据读写时延与初始化参数的对应关系确定满足时延需求的目标初始化参数组,还可以缩短内存初始化的时间。
可选地,按照预设规则调整默认初始化参数组的数值,确定多个初始化参数组。
按照预设规则调整默认初始化参数组的数值,并根据调整后的初始化参数组对内存进行初始化,直至根据调整后的初始化参数对内存初始化失败,由初始化成功的初始化参数组成初始化参数集合,以供满足不同的时延需求。
结合第一方面,在另一种可能的实现方式中,根据内存的应用场景/模式确定对所述内存的时延需求。
计算机设备可以应用在不同的应用场景或应用模式下,用户在BIOS配置界面输入应用场景或应用模式,处理器根据用户输入的应用场景或应用模式确定对应的时延需求,可以使内存满足不同的应用场景或应用模式的需求,进而提高在该应用场景或应用模式下对内存进行读操作或写操作的效率。
结合第一方面,在另一种可能的实现方式中,根据输入的读写时延确定对所述内存的时延需求。
用户在BIOS配置界面输入读写时延值或读写时延范围,该读写时延值或读写时延范围即为处理器对内存的时延需求,在对内存进行初始化时,使用满足读写时延值或读写时延范围的初始化参数组,可以使内存的读写效率最高。
第二方面,提供一种内存初始化装置,内存初始化装置包括初始化模块和读写模块。
初始化模块用于在内存初始化过程中,确定对内存的时延需求;基于时延需求,在多个初始化参数组中确定目标初始化参数组,目标初始化参数组中的第一参数的数值小于默认初始化参数组中第一参数的数值;基于目标初始化参数组配置内存,完成内存初始化。
读写模块用于对内存执行读/写操作,其中,执行读/写操作的时延满足时延需求。
结合第二方面,在一种可能的实现方式中,初始化模块具体用于根据内存的应用场景/模式确定对内存的时延需求。
结合第二方面,在另一种可能的实现方式中,初始化模块具体用于根据输入的读写时延确定对内存的时延需求。
结合第二方面,在另一种可能的实现方式中,初始化模块具体用于根据时延需求与初始化参数组的对应关系确定目标初始化参数组。
结合第二方面,在另一种可能的实现方式中,初始化模块具体用于按照预设规则调整默认初始化参数组的数值,确定多个初始化参数组。
第三方面,提供一种计算机设备,所述计算机设备包括处理器、通信接口和内存,内存用于存储一组计算机指令和多个初始化参数组;通信接口用于接收内存初始化指令;处理器用于管理内存的多个初始化参数组,执行如第一方面或第一方面可能的实现方式中任一项所述的方法。
第四方面,提供一种计算机可读存储介质,包括计算机软件指令;当计算机软件指令在计算机中运行时,使得计算机执行如第一方面或第一方面可能的实现方式中任一项所述的方法。
第五方面,提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述第一方面或第一方面的任一种实现方式所述的方法。
本申请在上述各方面提供的实现方式的基础上,还可以进行进一步组合以提供更多实现方式。
附图说明
图1为本申请提供的一种内存初始化系统的结构示意图;
图2为本申请提供的一种内存初始化方法的流程示意图;
图3为本申请提供的一种内存初始化方法的具体流程图;
图4为本申请提供的一种内存初始化装置的结构示意图;
图5为本申请提供的一种计算机设备的结构示意图。
具体实施方式
为方便理解本申请的方案,首先给出相关概念的简要介绍如下。
内存:用于存放处理器中的运算数据,以及与硬盘等外部存储器交换的数据。
串行存在检测(Serial Presence Detect,SPD)芯片:是内存条上面的一个可擦写可编程只读存储器(Electrically Erasable Programmable ROM,EEPROM)。SPD芯片内记录了该内存条的许多重要信息,诸如内存的芯片及模组厂商、工作频率、工作电压、速度、容量、电压与行、列地址带宽等参数,还包括时序参数。时序参数和内存传输数据时的延迟时间相关,内存传输数据时的延迟时间也可以称为内存的读写时延,即内存的数据存取时间。其中,SPD信息一般都是在出厂前,由制造商根据内存的实际性能写入到EEPROM芯片中。计算设备启动过程中,计算机设备就会读取SPD中的信息,并根据这些参数信息来自动配置相应的内存工作时序与控制寄存器。
下面对内存的SPD中的时序参数进行详细介绍。
在操作系统启动时,基本输入输出系统(Basic Input Output System,BIOS)执行开机自检程序,以确保计算机设备中的硬件存在且可以正常工作,硬件包括处理器(Central Processing Unit,CPU)、内存、主板、阵列卡。在计算机设备中硬件不存在或计算机设备中硬件存在故障时,BIOS给出错误提示,提示该硬件不存在或该硬件存在故障。硬件故障可以是CPU温度过高或内存配置错误等。在计算机设备中硬件存在,且硬件不存在故障时,根据硬件的启动配置启动操作系统。
在操作系统启动过程中,通过对计算机设备的所有硬件设备进行初始化,来确保计算机设备中的硬件存在且可以正常工作。其中,内存初始化是指根据SPD中的时序参数对内存进行数据寻址,进而得到内存的读写时延。数据寻址是根据内存中数据的行地址和列地址获取数据。
列地址选通脉冲(column address strobe,CAS)是发送给内存的一个信号,用来与列地址选通脉冲关联的地址就是数据的列地址。行地址选通脉冲(Row address strobe,RAS)也是发送给内存的一个信号,用来与行地址选通脉冲关联的地址就是数据的行地址。
SPD中的时序参数包括列地址控制器潜伏时间(CAS Latency,CL)、行地址到列地址的延迟时间(RAS to CAS Delay,tRCD)、行地址控制器预充电时间(RAS PrechargeTime,tRP)、行地址控制器激活时间(Active to Precharge Delay,tRAS)。SPD中的时序参数的单位为时钟周期,时钟周期是脉冲信号之间的时间间隔,时钟周期可以是1s,1ms,1μs。SPD中的时序参数包括但不限于上述时序参数。
CL是指内存存取数据所需的延迟时间,简单的说,就是内存接到CPU的指令后的反应速度。由于CL决定了内存从接收一个数据读取指令到执行该指令的时钟周期,因此CL越小,内存的读写速度越快。
对内存进行读操作、写操作或刷新操作时,需要在列地址选通脉冲和行地址选通脉冲之间插入延迟时钟周期,即tRCD。同理tRCD越小,内存的读写速度越快,内存的性能越好。
tRP指内存从一个行访问结束到重新开始一个行访问的间隔时间。即在发出预充电命令之后,内存要经过tRP时间才能允许发送行有效命令打开新的工作行。预启动指在tRP时间内关闭已经结束访问的工作行,准备打开新的工作行的操作。tRP设置过长会导致所有的行激活延迟过长,进而影响内存的读写速度。
tRAS指从收到一个请求后到初始化RAS开始接受数据的间隔时间。如果tRAS的时钟周期数过高,操作系统会因为无谓的等待而降低性能。如果tRAS的时钟周期数过低,则可能因缺乏足够的时间而无法完成数据的突发传输,进而导致丢失数据或损坏数据。
由以上可知,当内存接收到处理器下发的初始化指令后,进行预充电等待tRP时间以实现行激活,当行激活完成后,行地址选通脉冲开始进行数据寻址,在数据所在行被选定后,等待tRCD时间进行列寻址,列寻址所需要的时间为CL,最后通过列地址选通脉冲访问所需数据的精确十六进制地址,从该地址中访问数据。
举例来说,内存的SPD中的时序参数中的CL、tRCD、tRP、tRAS分别为3、4、4、8,单位是时钟周期,在内存进行初始化时,首先需要4个时钟周期进行行激活,行激活完成后需要1个时钟周期进行行寻址,等待4个时钟周期后开始进行列寻址,列寻址需要3个时钟周期。综上,内存需要12个时钟周期查找数据的精确地址,以响应操作系统的初始化指令。
在计算机设备的操作系统成功启动后,处理器根据内存的SPD中的时序参数进行读操作或写操作。因此处理器每次从内存中读取数据或向内存写入数据的读写时延与内存初始化得到的读写时延一致。
但是,计算机设备可以应用在不同的应用场景/模式下,不同的应用场景/模式对内存进行数据读写的时延需求不同。因此,在计算机设备上电时,均使用SPD中的时序参数对内存进行初始化无法满足不同应用场景的时延需求。
本申请提供了一种内存初始化方法,即计算机进行内存初始化时,根据确定对内存的时延需求,基于时延需求确定目标初始化参数组,根据该目标初始化参数组对内存进行初始化,得到对应的读写时延,根据该读写时延对内存进行读操作或写操作。基于时延需求的目标初始化参数组对内存进行初始化,可以使内存的读写时延满足应用场景/模式的时延需求,进而,避免计算机中的内存使用统一的SPD中的时序参数进行初始化,导致所有的应用场景下内存的读写时延一致,无法满足一些具有读写时延需求的应用场景/模式。
下面将结合附图对本申请实施例的实施方式进行详细描述。
图1为本申请提供的一种系统架构的示意图。该系统架构图是计算机设备的举例说明。参考图1,计算机设备100包括处理器110和内存120。内存120用于存放处理器中的运算数据,以及与硬盘等外部储存器交换的数据。
在本申请实施例中,内存120均用于存储初始化参数集合,初始化参数集合包括用于对内存进行初始化的初始化参数和根据该初始化参数进行内存初始化得到的读写时延,以供处理器110从多个初始化参数组中确定满足时延需求的目标初始化参数组对内存进行初始化,初始化参数组中的初始化参数可以是SPD中的时序参数。
处理器110运行有处理器固件111。处理器固件111用于配置内存120的多个初始化参数组,并从多个初始化参数组中确定满足时延需求的目标初始化参数组。示例地,处理器固件111根据时延需求对内存120进行初始化,从内存120的多个初始化参数组中确定满足时延需求的目标初始化参数组,使用目标初始化参数组对内存120进行初始化得到对用的读写时延,处理器110根据该读写时延对内存120进行读操作或写操作。下述实施例中描述的处理器固件某个步骤(如以下的步骤210-步骤240),可以理解为是:CPU调用处理器固件执行该步骤。
处理器固件111(也称为处理器固件程序)可以为BIOS、管理引擎(managementengine,ME)、微码或智能管理单元(intelligent management unit,IMU)等固件。需要说明的,本申请实施例对处理器固件的具体形式并不限定,以上仅为示例性说明。在下述实施例中,仅以处理器固件为BIOS为例进行说明。
本申请实施例描述的系统架构以及应用场景是为了更加清楚的说明本申请实施例的技术方案,并不构成对于本申请实施例提供的技术方案的限定,本领域普通技术人员可知,随着系统架构的演变和新业务场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。
接下来,结合附图对内存初始化方法进行详细说明。图2为本申请提供的一种内存初始化方法的流程示意图。图3为本申请提供的一种内存初始化方法的具体流程图。在这里以图1中所示的处理器110、内存120为例进行说明。
步骤210、处理器确定对内存的时延需求。
在一种实施例中,用户可以通过BIOS配置界面输入计算机设备所要使用的应用场景/模式。示例的,应用场景/模式可以是对稳定性要求比较高的数据库场景或访问量波动比较大的网站场景,当应用场景为这类对稳定性有要求的应用场景时,对应的时延需求指示的初始化参数为默认初始化参数组中的初始化参数;也可以是对读写速度要求比较高的游戏场景,当应用场景为对读写速度有要求时,对应的时延需求指示的初始化参数为多个初始化参数组中的初始化参数较低的初始化参数组中的初始化参数。在本申请实施例中,一个计算机设备在操作系统启动后只应用于一个应用场景。
在另一种实施例中,用户可以通过BIOS配置界面输入计算机设备所要使用的应用场景的读写时延范围或读写时延值。因此时延需求可以是一个值,也可以是一个范围。当时延需求是读写时延范围时,则确定的目标初始化参数组在该读写时延范围内即可;当时延需求是读写时延值时,则确定的目标初始化参数组对应的读写时延是小于或等于读写时延值的。
示例的,当用户未在BIOS配置界面输入时延需求或计算机设备无法识别用户在BIOS配置界面输入的时延需求时,计算机设备可以使用默认初始化参数组中的初始化参数对内存进行初始化。
步骤220、处理器按照预设规则调整默认初始化参数组的数值,确定多个初始化参数组。
根据内存初始化过程可知,内存寻址过程需要的时间为tRAS,tRAS包括选择数据所在行所需要的时间、tRCD以及CL,每次寻址的时间间隔为tRP,因此在操作系统可以进行数据读写操作前等待内存响应的时间为tRAS和tRP之和,即为内存读写时延。
内存读写时延受上述初始化参数组(CL、tRCD、tRP、tRAS)影响,初始化参数组中的参数的时钟周期越小,表示内存的读写时延越小,操作系统进行数据读写操作前等待内存响应的时间越小,内存的读写速度越快。
为了满足不同的时延需求,处理器调整默认初始化参数组的时钟周期,确定多个初始化参数组。在本申请实施例中,默认初始化参数组为SPD中的时序参数。举例来说,调整默认初始化参数组的时钟周期可以将SPD中的时序参数均减少预设时钟周期,也可以减少其中一个时序参数的时钟周期,在此不做具体限定。通过调整初始化参数组中的参数的时钟周期,可以使内存具有不同的读写时延,以满足不同的时延需求。
首先,处理器根据SPD中的时序参数中的CL、tRCD、tRP、tRAS对内存进行初始化,当根据SPD中的时序参数对内存初始化成功时,得到对应的读写时延,将SPD中的时序参数和对应的读写时延保存为初始化参数组。需要说明的是,当内存根据SPD中的时序参数进行初始化失败时,表示该内存存在故障,无法使用该内存启动操作系统,结束内存初始化进程并产生告警。
其次,由处理器多次调整CL、tRCD、tRP、tRAS,并根据调整后的CL、tRCD、tRP、tRAS对内存进行初始化得到对应的读写时延,在根据调整后的初始化参数对内存初始化成功时,将该调整后的初始化参数和对应的读写时延存储为一个初始化参数组,在根据调整后的初始化参数对内存初始化失败时,无法得到对应的读写时延,因此不根据该初始化参数生成初始化参数组。
在一种实施例中,将SPD中的时序参数中的CL减少一个时钟周期,一个时钟周期为1秒,tRCD、tRP、tRAS保持不变,使用CL减少一个时钟周期的SPD中的时序参数对内存进行初始化,在根据CL减少一个时钟周期的SPD中的时序参数对内存初始化成功时,将CL减少一个时钟周期的SPD中的时序参数和对应的读写时延存储为一个初始化参数组,继续将调整后的SPD中的时序参数中的CL减少一个时钟周期,并使用其对内存进行初始化,在根据调整后的SPD中的时序参数中的CL减少一个时钟周期对内存初始化成功时,将该参数和对应的读写时延存储为一个初始化参数组,直至调整后的SPD中的时序参数对内存初始化失败。该实施例以CL为例,其中对参数tRCD、tRP、tRAS的调整也可以采用上述方式。
在另一种实施例中,将SPD中的时序参数中的CL、tRCD、tRP、tRAS均减少一个时钟周期,一个时钟周期为1秒,使用减少一个时钟周期的SPD中的时序参数对内存进行初始化,在根据减少一个时钟周期的SPD中的时序参数对内存初始化成功时,将减少一个时钟周期的SPD中的时序参数和对应的读写时延存储为一个初始化参数组,继续将调整后的SPD中的时序参数减少一个时钟周期,并使用其对内存进行初始化,在根据调整后的SPD中的时序参数减少一个时钟周期对内存初始化成功时,将该参数和对应的读写时延存储为一个初始化参数组,直至调整后的SPD中的时序参数对内存初始化失败。表1为多个初始化参数组。
表1
CL/秒 | tRCD/秒 | tRP/秒 | tRAS/秒 | 读写时延/秒 |
4 | 5 | 5 | 9 | 14 |
3 | 4 | 4 | 8 | 12 |
2 | 3 | 3 | 7 | 10 |
… | … | … | … | … |
如表1所示,预先配置的初始化参数CL、tRCD、tRP、tRAS分别为4秒、5秒、5秒、9秒,根据内存初始化过程可知,在操作系统可以进行数据读写操作前等待内存响应的时间为tRAS和tRP之和,因此根据预先配置的初始化参数对内存进行初始化得到对应的读写时延为14秒。将预先配置的初始化参数减小1秒后,初始化参数为3秒、4秒、4秒、8秒,根据调整后的初始化参数对内存进行初始化得到对应的读写时延为12秒。将调整后的初始化参数再减小1秒后,初始化参数为2秒、3秒、3秒、7秒,根据再次调整后的初始化参数对内存进行初始化得到对应的读写时延为10秒,以此类推。
由以上可知,多个初始化参数组中具有可以使内存成功初始化的全部初始化参数。
步骤230、处理器基于时延需求,在多个初始化参数组中确定目标初始化参数组,基于目标初始化参数组对内存初始化。
根据时延需求进一步确定该内存的多个初始化参数组中满足时延需求的目标初始化参数组,根据目标初始化参数组对内存进行初始化,可以使内存在该应用场景下具有满足其时延需求的读写速度。
在一种实施例中,内存具有多个初始化参数组,即该内存具有多组初始化参数和对应的读写时延。处理器从该内存的多个初始化参数组中选择满足时延需求的目标初始化参数组,根据目标初始化参数组对内存进行初始化。多个初始化参数组中包括SPD中的时序参数和对应的读写时延(即默认初始化参数组)、以及多组调整后的初始化参数和对应的读写时延,因此,目标初始化参数组中的初始化参数可以是SPD中的时序参数,也可以是调整后的初始化参数。
举例来说,当应用场景的时延需求指示处理器稳定的对内存进行读操作或写操作时,内存不能运行在较低的读写时延下,否则,内存可能会丢失数据或损坏数据。此时时延需求指示的读写时延可以是根据SPD中的时序参数进行初始化得到的读写时延,因此确定该内存中满足时延需求的目标初始化参数组是SPD中的时序参数,根据SPD中的时序参数对内存进行初始化。SPD中的时序参数是根据该内存芯片的实际性能预先配置的参数,因此使用SPD中的时序参数对内存进行初始化得到的第一读写时延可以供处理器稳定的对内存进行读写操作。
当时延需求指示处理器在该应用场景下可以快速的对内存进行读操作或写操作,即要求内存具有较小的读写时延,此时,确定满足时延需求的目标初始化参数组可以是多个初始化参数组中初始化参数最小的初始化参数组,根据该初始化参数组对内存进行初始化。时延需求中指示的读写时延越小,从多个初始化参数组中选择的初始化参数越小。
在另一种实施例中,时延需求包括目标初始化参数组,处理器可以直接使用时延需求中的目标初始化参数组对内存进行初始化得到对应的读写时延,无需从多个初始化参数组中选择。根据对应的读写时延对内存进行读操作或写操作可以使得内存在该应用场景下的读写效率最高。
由于一个计算机设备中可以挂载一个或多个内存供中央处理器(centralprocessing unit,CPU)访问数据。内存挂载是将内存中的根目录连接到计算机设备的根目录下的某一空目录,访问此空目录中的内存根目录就等同于访问该内存。
计算机设备中挂载的一个或多个内存可以具有一组初始化参数,也可以具有不同组的初始化参数,因此,不同的内存的初始化参数组不同。需要根据计算机设备中所有内存的初始化参数组确定满足时延需求的目标初始化参数组。
在一种实施例中,计算机设备挂载一个内存,该内存可以只有一组初始化参数和一个对应的读写时延,也可以有多组初始化参数和对应的读写时延。当该内存可以只有一组初始化参数时,根据该组初始化参数对内存进行初始化。当该内存有多组初始化参数和对应的读写时延时,根据时延需求指示的读写时延选择确定满足时延需求的目标初始化参数组进行初始化。该内存的读写时延可以是时延需求指示的读写时延,也可以是小于时延需求指示的读写时延。
在一种实施例中,计算机设备挂载多个内存,每个内存中包括多组初始化参数和对应的读写时延,从多组初始化参数中确定满足时延需求的初始化参数。选择的目标初始化参数组可以成功初始化计算机设备中挂载的多个内存。
举例来说,计算机设备中挂载第一内存和第二内存,第一内存和第二内存具有不同的SPD,但是第一内存和第二内存的多个初始化参数组中存在交集。根据时延需求可知该应用场景需要较快的读写速度,即较低的读写时延,因此选择交集中数值较小的初始化参数组对内存初始化。
步骤240、处理器对内存执行读/写操作。
处理器根据目标初始化参数组对内存进行初始化后,得到该内存在该应用场景下的读写时延。处理器根据该读写时延对内存进行读操作或写操作。
根据满足时延需求的读写时延对内存进行读操作或写操作,可以满足对应的应用场景需求,避免由于内存的读写时延过高导致读写速度过低,或内存的读写时延过低造成内存不稳定的问题,进而提高内存的性能。
可以理解的是,为了实现上述实施例中功能,计算机包括了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本申请中所公开的实施例描述的各示例的单元及方法步骤,本申请能够以硬件或硬件和计算机软件相结合的形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用场景和设计约束条件。
图4为本申请的实施例提供的内存初始化装置的结构示意图。这些内存初始化装置可以用于实现上述方法实施例中计算机的功能,因此也能实现上述方法实施例所具备的有益效果。在本申请的实施例中,该内存初始化装置可以是如图2所示的处理器110、内存120。
如图4所示,内存初始化装置400包括初始化模块401和读写模块402。内存初始化装置400用于实现上述图2中所示的方法实施例中处理器110、内存120的功能。
当内存初始化装置400用于实现图2所示的方法实施例中处理器110、内存120的功能时:初始化模块401用于在内存初始化过程中,确定对内存的时延需求;基于时延需求,在多个初始化参数组中确定目标初始化参数组,目标初始化参数组中的第一参数的数值小于默认初始化参数组中第一参数的数值;基于目标初始化参数组配置内存,完成内存初始化。
读写模块402用于对内存执行读/写操作,其中,执行读/写操作的时延满足时延需求。
初始化模块401具体用于根据内存的应用场景/模式确定对内存的时延需求。
初始化模块401具体用于根据输入的读写时延确定对内存的时延需求。
初始化模块401具体用于根据时延需求与初始化参数组的对应关系确定目标初始化参数组。
初始化模块401具体用于按照预设规则调整默认初始化参数组的数值,确定多个初始化参数组。
内存初始化装置400还包括存储模块403。存储模块403用于存储多个初始化参数组。
有关上述初始化模块401、读写模块402、和存储模块403更详细的描述可以参考图2所示的方法实施例中相关描述直接得到,这里不加赘述。
图5提供了一种计算机设备。图5所示的计算机设备500具体可以用于实现上述图4所示实施例中内存初始化装置400的功能。
计算机设备500包括总线501、处理器502、通信接口503和存储器504。处理器502、存储器504和通信接口503之间通过总线501通信。总线501可以是外设部件互连标准(peripheral component interconnect,PCI)总线或扩展工业标准结构(extendedindustry standard architecture,EISA)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,图5中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。通信接口503用于与外部通信。
其中,处理器502可以为中央处理器(central processing unit,CPU)。处理器502用于配置多个初始化参数组,并从多个初始化参数组中确定满足时延需求的目标初始化参数组对存储器504进行初始化。存储器504可以包括易失性存储器(volatile memory),例如随机存取存储器(random access memory,RAM)。存储器504用于存储多个初始化参数组。
存储器504中存储有可执行代码,处理器502执行该可执行代码以执行前述内存初始化的方法。
具体地,在实现图4所示实施例的情况下,且图4实施例中所描述的各模块为通过软件实现的情况下,存储器504存储执行图4中的初始化模块401和读写模块402的功能所需的软件或程序代码,处理器502用于执行存储器504中的指令,执行应用于内存初始化装置400的内存初始化的方法。
本申请还提供了一种计算机可读存储介质,包括指令,当其在计算机上运行时,使得计算机执行上述应用于内存初始化装置400的内存初始化的方法。
本申请还提供了一种计算机程序产品,所述计算机程序产品被计算机执行时,所述计算机执行前述方法的任一方法。该计算机程序产品可以为一个软件安装包,在需要使用前述方法的任一方法的情况下,可以下载该计算机程序产品并在计算机上执行该计算机程序产品。
另外需说明的是,以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。另外,本申请提供的装置实施例附图中,模块之间的连接关系表示它们之间具有通信连接,具体可以实现为一条或多条通信总线或信号线。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件的方式来实现,当然也可以通过专用硬件包括专用集成电路、专用CPU、专用存储器、专用元器件等来实现。一般情况下,凡由计算机程序完成的功能都可以很容易地用相应的硬件来实现,而且,用来实现同一功能的具体硬件结构也可以是多种多样的,例如模拟电路、数字电路或专用电路等。但是,对本申请而言更多情况下软件程序实现是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在可读取的存储介质中,如计算机的软盘、U盘、移动硬盘、ROM、RAM、磁碟或者光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,训练设备,或者网络设备等)执行本申请各个实施例所述的方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。
所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、训练设备或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、训练设备或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存储的任何可用介质或者是包含一个或多个可用介质集成的训练设备、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘(Solid State Disk,SSD))等。
Claims (10)
1.一种内存初始化方法,其特征在于,包括:
在内存初始化过程中,确定对所述内存的时延需求;
基于所述时延需求,在多个初始化参数组中确定目标初始化参数组,所述目标初始化参数组中的第一参数的数值小于默认初始化参数组中所述第一参数的数值;
基于所述目标初始化参数组配置所述内存,完成所述内存初始化;
对所述内存执行读/写操作,其中,执行所述读/写操作的时延满足所述时延需求。
2.根据权利要求1所述的方法,其特征在于,确定对所述内存的时延需求,包括:
根据所述内存的应用场景/模式确定对所述内存的时延需求。
3.根据权利要求1所述的方法,其特征在于,确定对所述内存的时延需求,还包括:
根据输入的读写时延确定对所述内存的时延需求。
4.根据权利要求1-3中任一项所述的方法,其特征在于,基于所述时延需求,在多个初始化参数组中确定目标初始化参数组,包括:
根据所述时延需求与初始化参数组的对应关系确定所述目标初始化参数组。
5.根据权利要求1-4中任一项所述的方法,其特征在于,在基于所述时延需求,在多个初始化参数组中确定目标初始化参数组之前,所述方法还包括:
按照预设规则调整所述默认初始化参数组的数值,确定所述多个初始化参数组。
6.一种计算机设备,其特征在于,所述计算机设备包括处理器,所述处理器用于:
在内存初始化过程中,确定对所述内存的时延需求;
基于所述时延需求,在多个初始化参数组中确定目标初始化参数组,所述目标初始化参数组中的第一参数的数值小于默认初始化参数组中所述第一参数的数值;
基于所述目标初始化参数组配置所述内存,完成所述内存初始化;
对所述内存执行读/写操作,其中,执行所述读/写操作的时延满足所述时延需求。
7.根据权利要求6所述的计算机设备,其特征在于,所述处理器具体用于:根据所述时延需求与初始化参数组的对应关系确定所述目标初始化参数组。
8.根据权利要求6所述的计算机设备,其特征在于,所述处理器具体用于:按照预设规则调整所述默认初始化参数组的数值,确定所述多个初始化参数组。
9.根据权利要求6所述的计算机设备,其特征在于,所述计算机设备还包括内存,所述内存用于存储初始化参数组。
10.一种计算机可读存储介质,其特征在于,用于存储计算机指令,当所述计算机指令在计算机设备上运行时,使得所述计算机执行如权利要求1-5中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211316568.5A CN115687172A (zh) | 2022-10-26 | 2022-10-26 | 内存初始化方法、计算机设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211316568.5A CN115687172A (zh) | 2022-10-26 | 2022-10-26 | 内存初始化方法、计算机设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115687172A true CN115687172A (zh) | 2023-02-03 |
Family
ID=85098448
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211316568.5A Pending CN115687172A (zh) | 2022-10-26 | 2022-10-26 | 内存初始化方法、计算机设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115687172A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117312183A (zh) * | 2023-11-30 | 2023-12-29 | 苏州元脑智能科技有限公司 | 一种内存容量调整方法、装置、电子设备及存储介质 |
-
2022
- 2022-10-26 CN CN202211316568.5A patent/CN115687172A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117312183A (zh) * | 2023-11-30 | 2023-12-29 | 苏州元脑智能科技有限公司 | 一种内存容量调整方法、装置、电子设备及存储介质 |
CN117312183B (zh) * | 2023-11-30 | 2024-02-20 | 苏州元脑智能科技有限公司 | 一种内存容量调整方法、装置、电子设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100867900B1 (ko) | 내장 nand 플래시 컨트롤러를 구비한 sdram메모리 디바이스 | |
US6513114B1 (en) | System and methods for providing selectable initialization sequences | |
TWI522919B (zh) | 自動地配置電腦系統中之基本輸入輸出系統效能設定檔的裝置、方法及非暫態電腦可讀取記錄媒體 | |
US7496719B2 (en) | Universal nonvolatile memory boot mode | |
US9395919B1 (en) | Memory configuration operations for a computing device | |
JPH0764770A (ja) | 遠隔的に書込み可能なepromを有するマイクロコントローラ装置及び書込み方法 | |
US20010003198A1 (en) | Method for timing setting of a system memory | |
US9378132B2 (en) | System and method for scanning flash memories | |
CN109669729B (zh) | 一种处理器的启动引导方法 | |
US20090198770A1 (en) | System and method of updating codes in controller | |
US8370617B2 (en) | Booting method and computer system using the booting method | |
JPH0256690B2 (zh) | ||
US20190155517A1 (en) | Methods and apparatus for memory controller discovery of vendor-specific non-volatile memory devices | |
CN115687172A (zh) | 内存初始化方法、计算机设备及存储介质 | |
US10430181B1 (en) | Retrieving updated firmware code | |
US6446139B1 (en) | Multiple chip single image BIOS | |
CN111627475B (zh) | 存储器和其电子装置及其测试系统、测试方法和应用方法 | |
WO2021021645A1 (en) | Serial memory device i/o mode selection | |
CN115223649A (zh) | 信息检测方法及装置、电子设备 | |
EP4167080A1 (en) | Memory initialisation apparatus and method, and computer system | |
CN108701080A (zh) | 使用参考值确保存储设备动作有效 | |
CN110007970A (zh) | 一种COMe板的内核启动时长优化方法 | |
US5961611A (en) | Automatic option setting circuit | |
CN113703818B (zh) | 设备升级方法和装置、计算机设备和计算机可读存储介质 | |
KR20170055206A (ko) | 세이프 어드레스 매핑을 이용한 메모리 셀 액세스 제어 방법 |
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 |