CN109358908B - 一种获取内存条的spd信息的方法、装置及存储介质 - Google Patents
一种获取内存条的spd信息的方法、装置及存储介质 Download PDFInfo
- Publication number
- CN109358908B CN109358908B CN201811295918.8A CN201811295918A CN109358908B CN 109358908 B CN109358908 B CN 109358908B CN 201811295918 A CN201811295918 A CN 201811295918A CN 109358908 B CN109358908 B CN 109358908B
- Authority
- CN
- China
- Prior art keywords
- spd information
- memory bank
- reading
- host
- new
- 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.)
- Active
Links
- 230000015654 memory Effects 0.000 title claims abstract description 152
- 238000000034 method Methods 0.000 title claims abstract description 70
- 238000004590 computer program Methods 0.000 claims description 11
- 230000004048 modification Effects 0.000 claims description 7
- 238000012986 modification Methods 0.000 claims description 7
- 230000008569 process Effects 0.000 abstract description 7
- 238000004891 communication Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 6
- 230000009471 action Effects 0.000 description 3
- 230000006870 function Effects 0.000 description 2
- 101100498818 Arabidopsis thaliana DDR4 gene Proteins 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000002360 explosive Substances 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4411—Configuring for operating with peripheral devices; Loading of device drivers
-
- 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/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- 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
-
- 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/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
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)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- Read Only Memory (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本发明公开了一种获取内存条的SPD信息的方法、装置及存储介质,基于FPGA板卡实现,首先在上电初始化阶段,读取内存条的固有SPD信息;然后按照当前与主机的配置逻辑修改固有SPD信息,并存储。在上述过程中,存储的新SPD信息不影响内存条中的固有SPD信息,且新SPD信息能够适应当前系统的运行。当接收到主机发送的读取SPD信息的读取命令时,将存储的,与读取命令相对应的目标SPD信息发送至主机,使得主机能够获取新SPD信息。由此可见,本方法一方面未对内存条中的固有SPD信息进行修改,另一方面,可以根据系统的实际配置逻辑修改SPD信息中的某些参数从而得到新SPD信息,适应性更强。
Description
技术领域
本发明涉及内存条领域,特别是涉及一种获取内存条的SPD信息的方法、装置及存储介质。
背景技术
内存条是计算机中重要的部件之一,是与CPU进行沟通的桥梁。近几年随着高性能计算的快速发展以及大数据的爆发式增长,为了达到更快的运算速度、降低功耗,基于FPGA的加速卡、采集卡等FPGA板卡应运而生,而这些FPGA板卡为了提高运算速度,也会带内存条,例如DDR(Double Data Rate双倍速率同步动态随机存储器)。主机为了能与DDR进行数据交互,必须要知道内存条的配置信息,也就是内存条的SPD信息。
目前的技术中,主机是通过DIMM或PCIE上的I2C接口,直接从DDR上的EEPROM中读取内存的SPD信息。但是由于主机只能读取内存条出厂前由厂家写到EEPROM中的信息,当FPGA板卡在主机与内存条之间加入自由逻辑后,会导致一些参数与本来的参数不匹配,如果主机还是按照原有信息读写内存条的SPD信息,会出现读写数据错误或者系统不稳定的情况。而且,一般内存条出厂前的配置信息都比较保守,并没有发挥最优的性能,FPGA板卡可协助其发挥出最优的性能,那么此时出厂前的SPD信息亦与实际不匹配。
由此可见,在FPGA板卡连接有内存条的情况下,如何能够使得主机与FPGA板卡的自由逻辑不受内存条的固有SPD信息的影响,是本领域技术人员亟待解决的问题。
发明内容
本发明的目的是提供一种获取内存条的SPD信息的方法、装置及存储介质,用于在与FPGA板卡连接有内存条的情况下,使得主机与FPGA板卡的自由逻辑不受内存条的固有SPD信息的影响。
为解决上述技术问题,本发明提供一种获取内存条的SPD信息的方法,基于与内存条连接的FPGA板卡,包括:
在上电初始化阶段,读取所述内存条的固有SPD信息;
按照当前与主机的配置逻辑修改所述固有SPD信息以得到新SPD信息;
将所述新SPD信息存储;
接收所述主机发送的读取SPD信息的读取命令,并读取所述新SPD信息中与所述读取命令相对应的目标SPD信息发送至所述主机。
优选地,在所述将所述新SPD信息存储之后,还包括:
在所述内存条中的预先约定的目标地址中写入约定标识符。
优选地,在所述读取所述内存条的固有SPD信息之前,还包括:
在所述目标地址中读取所述内存条中的当前标识符;
依据所述当前标识符判断所述内存条是否为新内存条;
如果是,进入所述读取所述内存条的固有SPD信息的步骤;
如果否,则进入所述接收所述主机发送的读取SPD信息的读取命令,并读取所述新SPD信息中与所述读取命令相对应的目标SPD信息发送至所述主机的步骤。
优选地,所述依据所述当前标识符判断所述内存条是否为新内存条具体包括:
判断所述当前标识符与所述约定标识符是否相同;
如果是,则确定所述内存条为新内存条,否则,确定所述内存条不为新内存条。
优选地,所述在所述内存条中的预先约定的目标地址中写入约定标识符之前,还包括:
判断所述固有SPD信息是否全部搬移;
如果是,则进入所述在所述内存条中的预先约定的目标地址中写入约定标识符的步骤;
如果否,则返回所述读取所述内存条的固有SPD信息的步骤。
优选地,还包括:
当接收到所述主机发送的用于对所述新SPD信息修改的写命令时,忽略所述写命令。
优选地,在忽略所述写命令后,还包括:
向所述主机返回禁止修改所述新SPD信息的提示信息。
为解决上述技术问题,本发明还提供一种获取内存条的SPD信息的装置,基于与内存条连接的FPGA板卡,包括:
主控模块,用于在上电初始化阶段,读取所述内存条的固有SPD信息;
写操作模块,用于按照当前与主机的配置逻辑修改所述固有SPD信息以得到新SPD信息,并将所述新SPD信息存储;
被控模块,用于接收所述主机发送的读取SPD信息的读取命令,并读取所述新SPD信息中与所述读取命令相对应的目标SPD信息发送至所述主机。
为解决上述技术问题,本发明还提供一种获取内存条的SPD信息的装置,基于与内存条连接的FPGA板卡,包括存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如所述的获取内存条的SPD信息的方法的步骤。
为解决上述技术问题,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述所述的获取内存条的SPD信息的方法的步骤。
本发明所提供的获取内存条的SPD信息的方法,基于FPGA板卡实现,首先在上电初始化阶段,读取内存条的固有SPD信息;然后按照当前与主机的配置逻辑修改固有SPD信息以得到新SPD信息,并存储。在上述过程中,存储的新SPD信息不影响内存条中的固有SPD信息,且新SPD信息能够适应当前系统的运行。当接收到主机发送的读取SPD信息的读取命令时,将存储的与读取命令相对应的目标SPD信息发送至主机,使得主机能够获取新SPD信息。由此可见,本方法一方面未对内存条中的固有SPD信息进行修改,另一方面,可以根据系统的实际配置逻辑修改SPD信息中的某些参数从而得到新SPD信息,适应性更强。
另外,本发明实施例所提供的获取内存条的SPD信息的装置及存储介质与上述方法相对应,效果同上。
附图说明
为了更清楚地说明本发明实施例,下面将对实施例中所需要使用的附图做简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种获取内存条的SPD信息的方法的流程图;
图2为本发明实施例提供的一种主机、FPGA板卡和内存条的连接示意图;
图3为本发明实施例提供的另一种获取内存条的SPD信息的方法的流程图;
图4为本发明实施例提供的另一种获取内存条的SPD信息的方法的流程图;
图5为本发明实施例提供的一种获取内存条的SPD信息的装置的结构图;
图6为FPGA中各模块的工作示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下,所获得的所有其他实施例,都属于本发明保护范围。
本发明的核心是提供一种获取内存条的SPD信息的方法、装置及存储介质,用于在与FPGA板卡连接有内存条的情况下,使得主机与FPGA板卡的自由逻辑不受内存条的固有SPD信息的影响。
为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。
实施例一
图1为本发明实施例提供的一种获取内存条的SPD信息的方法的流程图。该方法基于与内存条连接的FPGA板卡,由FPGA板卡来执行上述方法,这里提到的FPGA板卡可以是基于FPGA的加速卡或采集卡等板卡。之所以用到FPGA是由于其可自由编程,能够更好的实现本方法。如图1所示,该方法包括:
S10:读取内存条的固有SPD信息。
在具体实施中,FPGA板卡要与内存条连接,然后再与主机连接,主机获取内存条的SPD信息具体是通过FPGA板卡实现的。本步骤中所说的固有SPD信息指的是内存条在出厂前就设置好的SPD信息。通常情况下,固有SPD信息由内存条的EEPROM中读取。内存条的类型不作限定,例如可以是DDR、DDR2、DDR3以及DDR4等。
S11:按照当前与主机的配置逻辑修改固有SPD信息以得到新SPD信息。
由于主机和FPGA板卡连接,当FPGA板卡在主机与内存条之间加入自由逻辑后,这些逻辑可能与固有SPD信息不符合。因此,本步骤中,相当于FPGA板卡并不对内存条进行修改,而是在得到的固有SPD信息的基础上,依据与主机的配置逻辑修改固有SPD信息,换句话说,FPGA板卡虽然对固有SPD信息进行了修改,但是这一修改并不影响内存条自身携带的固有SPD信息。
S12:将新SPD信息存储。
FPGA板卡上除了FPGA外还有其它器件,本发明不再赘述,通常情况下FPGA内部具有一定的存储空间,可以存储数据,因此,作为优选地地实施方式,可以将新SPD信息存储在FPGA内部的on-chip-memory上。当然还可以存储在片外存储上,只不过,存储在片外存储上需要额外添加存储介质。上述两种存储方式均不影响本方案的实现,可以根据实际情况选择合适的存储方式。FPGA板卡
S13:接收主机发送的读取SPD信息的读取命令,并读取新SPD信息中与读取命令相对应的目标SPD信息发送至主机。
主机不再与内存条直接发送读取命令,而是与FPGA板卡直接通信,当FPGA板卡接收到主机发送的读取命令后,将相应的目标SPD信息反馈给主机,从而实现主机获取SPD信息的目的。本步骤是在上电初始化成功之后,FPGA板卡与主机正常通信后所执行的步骤。
在具体实施中,主机可能是需要获取全部SPD信息,即全部新SPD信息,也有可能是获取新SPD信息中的某一部分,因此,本步骤中,采用目标SPD信息来描述,也就是说,目标SPD信息可以是新SPD信息的全部信息,也可以是SPD信息的部分信息。
通常情况下,固有SPD信息和新SPD信息都会按照某种排列规则分布在不同的地址中,这是预先约定的。因此,主机在发送读取命令时,通常会在读取命令中携带有所要获取的SPD信息对应的地址,当FPGA板卡得到读取命令时,首先解析该命令,得到对应的地址,然后再按照得到的地址查找相应的目标SPD信息。
本实施例提供的获取内存条的SPD信息的方法,基于FPGA板卡实现,首先在上电初始化阶段,读取内存条的固有SPD信息;然后按照当前与主机的配置逻辑修改固有SPD信息以得到新SPD信息,并存储。在上述过程中,存储的新SPD信息不影响内存条中的固有SPD信息,且新SPD信息能够适应当前系统的运行。当接收到主机发送的读取SPD信息的读取命令时,将存储的,与读取命令相对应的目标SPD信息发送至主机,使得主机能够获取新SPD信息。由此可见,本方法一方面未对内存条中的固有SPD信息进行修改,另一方面,可以根据系统的实际配置逻辑修改SPD信息中的某些参数从而得到新SPD信息,适应性更强。
为了让本领域技术人员更加清楚本发明所提供的方法的具体实施,下文中给出一种具体应用场景进行说明。图2为本发明实施例提供的一种主机、FPGA板卡和内存条的连接示意图。图2中,FPGA板卡包括FPGA外,还包括其它硬件,图中未示出,在获取SPD信息的过程中,主机与FPGA板卡的通信,其实是主机与FPGA的通信,也就是说上述方法具体是由FPGA来实现的。主机与FPGA通过PCIE/DIMM接口连接,具体是使用上述接口的I2C接口实现,FPGA板卡与内存条的通信,其实是FPGA板卡上的FPGA与内存条的通信,具体是FPGA与内存条通过PCIE/DIMM接口连接,具体是使用上述接口的I2C接口实现。FPGA按照功能划分为两个部分,一个是SPD模块,另一个是其它模块,SPD模块具体实现上述方法。SPD模块将在后文的实施例中详细描述,本实施例不再赘述。
实施例二
图3为本发明实施例提供的另一种获取内存条的SPD信息的方法的流程图。在上述实施例的基础上,在S12之后,还包括:
S20:在内存条中的预先约定的目标地址中写入约定标识符。
在具体实施中,FPGA板卡和内存条的连接并不是一成不变的,可能需要更换内存条,因此,FPGA板卡在每次上电初始化都要执行S10,而有可能该FPGA板卡之前与内存条连接,并已经获取过该内存条的固有SPD信息,因此,为了避免重复获取固有SPD信息的步骤,本实施例中,在将SPD信息存储后,对内存条的目标地址写入约定标识符。通过约定标识符就可以在上电初始化阶段确定是否需要读取固有SPD信息等步骤。
这里的目标地址可以是内存条上EEPROM的一个预留地址,例如0x55,这里的约定标识符可以是0xFF,需要说明的是,目标地址以及约定标识符需要预先确定,至于二者中的具体内容可以依据内存条的地址数等确定,不影响本方案的实施。
在此基础上,在S10之前,还包括:
S21:在目标地址中读取内存条中的当前标识符。
S22:依据当前标识符判断内存条是否为新内存条,如果是,进入S10;如果否,则进入S13。
作为优选地实施方式,S22具体包括:
判断当前标识符与约定标识符是否相同;
如果是,则确定内存条为新内存条,否则,确定内存条不为新内存条。
通过步骤S21和S22可以避免重复获取固有SPD信息及存储的步骤,提高主机获取SPD信息的速度。
实施例三
图4为本发明实施例提供的另一种获取内存条的SPD信息的方法的流程图。在实施例二的基础上,在S20之前,还包括:
S30:判断固有SPD信息是否全部搬移,如果是,则进入S20;如果否,则返回S10。
在具体实施中,读取SPD信息可以按照地址由小到大的顺序读取,例如当地址为256时,可以从0开始,依次读取,直到255为止。如果按照此顺序读取,则S30中判断固有SPD信息是否全部搬移完毕就可以通过当前地址数来判断固有SPD信息是否全部搬移完毕。
本实施例中,通过增加S30可以有效防止出现部分固有SPD信息丢失的问题。
实施例四
在上述实施例的基础上,获取内存条的SPD信息的方法还包括:
当接收到主机发送的用于对新SPD信息修改的写命令时,忽略写命令。
为了防止恶意“篡改”内存条的固有SPD信息,本发明还加入一定的保护机制,就是只能在FPGA内修改保存有SPD信息的内存,当主机要修改时,忽略主机发送的写命令。相当于,只有“读”权限,而无“写”权限,从而很好的保护了固有SPD信息。
在此基础上,在忽略写命令后,还包括:
向主机返回禁止修改新SPD信息的提示信息。
对于主机来说,发送完写命令后,并不确定是否被执行,本实施例中,向主机返回提示信息,从而主机可以确定无法对固有SPD信息进行修改。
需要说明的是,在上述各实施例中除了S13外,其余步骤均是在上电初始化阶段进行的。
实施例五
图5为本发明实施例提供的一种获取内存条的SPD信息的装置的结构图。该装置包括:
主控模块10,用于在上电初始化阶段,读取内存条的固有SPD信息。
写操作模块11,用于按照当前与主机的配置逻辑修改固有SPD信息以得到新SPD信息,并将新SPD信息存储。
被控模块12,用于接收所述主机发送的读取SPD信息的读取命令,并读取所述新SPD信息中与所述读取命令相对应的目标SPD信息发送至所述主机。
由于装置部分的实施例与方法部分的实施例相互对应,因此装置部分的实施例请参见方法部分的实施例的描述,这里暂不赘述。
图6为FPGA中各模块的工作示意图。FPGA按照功能划分为SPD模块,SPD模块中包含有控制模块和on-chip-memory,控制模块中按照执行的逻辑划分为多个逻辑模块,包括主控模块、被控模块,写操作模块和读操作模块。主控模块能够直接读取内存条中的固有SPD信息,然后发送给写操作模块,写操作模块按照当前与主机的配置逻辑修改固有SPD信息得到新SPD信息,并写入FPGA中的on-chip-memory。上述模块工作在上电初始化阶段,在系统正常工作后,被控模块接收主机的读取命令,并解析该命令,从而确定要读取的目标SPD信息的地址,然后控制读操作模块按照解析出的地址在on-chip-memory中读取目标SPD信息,然后被控模块再将目标SPD信息反馈给主机。需要说明的是,图6只是其中的一种应用场景,即将新SPD信息存储在on-chip-memory中,在其它实施例中还可以存储在片外存储上,本发明不再赘述。
由于装置部分与方法部分的实施例是对应的,因此,优选地,主控模块还用于在所述内存条中的预先约定的目标地址中写入约定标识符。
主控模块还用于在目标地址中读取内存条中的当前标识符;依据当前标识符判断内存条是否为新内存条;如果是,则读取内存条的固有SPD信息;如果否,则触发被控模块。
主控模块具体用于判断当前标识符与约定标识符是否相同;如果是,则确定内存条为新内存条,否则,确定内存条不为新内存条。
主控模块还用于判断固有SPD信息是否全部搬移;如果是,则在内存条中的预先约定的目标地址中写入约定标识符;如果否,则读取内存条的固有SPD信息。
被控模块还用于当接收到主机发送的用于对新SPD信息修改的写命令时,忽略写命令。在忽略写命令后,还用于向主机返回禁止修改新SPD信息的提示信息。
实施例六
本实施例提供的装置是从硬件层面描述,具体的,获取内存条的SPD信息的装置,基于与内存条连接的FPGA板卡,包括存储器,用于存储计算机程序;
处理器,用于执行计算机程序时实现如实施例一-实施例四所述的获取内存条的SPD信息的方法的步骤。
由于装置部分的实施例与方法部分的实施例相互对应,因此装置部分的实施例请参见方法部分的实施例的描述,这里暂不赘述。在本发明的一些实施例中,处理器和存储器可通过总线或其它方式连接。
实施例七
本发明还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现如实施例一-实施例四所述的获取内存条的SPD信息的方法的步骤。
可以理解的是,如果上述实施例中的方法以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(RandomAccess Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
由于计算机可读存储介质中存储的方法的实施例在上文中详细描述,因此,本实施例不再赘述。
以上对本发明所提供的获取内存条的SPD信息的方法、装置及存储介质进行了详细介绍。说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。
还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
Claims (10)
1.一种获取内存条的SPD信息的方法,基于与内存条连接的FPGA板卡,其特征在于,包括:
在上电初始化阶段,读取所述内存条的固有SPD信息;
按照当前与主机的配置逻辑修改所述固有SPD信息以得到新SPD信息;
将所述新SPD信息存储;
接收所述主机发送的读取SPD信息的读取命令,并读取所述新SPD信息中与所述读取命令相对应的目标SPD信息发送至所述主机。
2.根据权利要求1所述的获取内存条的SPD信息的方法,其特征在于,在所述将所述新SPD信息存储之后,还包括:
在所述内存条中的预先约定的目标地址中写入约定标识符。
3.根据权利要求2所述的获取内存条的SPD信息的方法,其特征在于,在所述读取所述内存条的固有SPD信息之前,还包括:
在所述目标地址中读取所述内存条中的当前标识符;
依据所述当前标识符判断所述内存条是否为新内存条;
如果是,进入所述读取所述内存条的固有SPD信息的步骤;
如果否,则进入所述接收所述主机发送的读取SPD信息的读取命令,并读取所述新SPD信息中与所述读取命令相对应的目标SPD信息发送至所述主机的步骤。
4.根据权利要求3所述的获取内存条的SPD信息的方法,其特征在于,所述依据所述当前标识符判断所述内存条是否为新内存条具体包括:
判断所述当前标识符与所述约定标识符是否相同;
如果是,则确定所述内存条为新内存条,否则,确定所述内存条不为新内存条。
5.根据权利要求2-4任意一项所述的获取内存条的SPD信息的方法,其特征在于,所述在所述内存条中的预先约定的目标地址中写入约定标识符之前,还包括:
判断所述固有SPD信息是否全部搬移;
如果是,则进入所述在所述内存条中的预先约定的目标地址中写入约定标识符的步骤;
如果否,则返回所述读取所述内存条的固有SPD信息的步骤。
6.根据权利要求1-4任意一项所述的获取内存条的SPD信息的方法,其特征在于,还包括:
当接收到所述主机发送的用于对所述新SPD信息修改的写命令时,忽略所述写命令。
7.根据权利要求6所述的获取内存条的SPD信息的方法,其特征在于,在忽略所述写命令后,还包括:
向所述主机返回禁止修改所述新SPD信息的提示信息。
8.一种获取内存条的SPD信息的装置,基于与内存条连接的FPGA板卡,其特征在于,包括:
主控模块,用于在上电初始化阶段,读取所述内存条的固有SPD信息;
写操作模块,用于按照当前与主机的配置逻辑修改所述固有SPD信息以得到新SPD信息,并将所述新SPD信息存储;
被控模块,用于接收所述主机发送的读取SPD信息的读取命令,并读取所述新SPD信息中与所述读取命令相对应的目标SPD信息发送至所述主机。
9.一种获取内存条的SPD信息的装置,基于与内存条连接的FPGA板卡,其特征在于,包括存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至7任一项所述的获取内存条的SPD信息的方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述的获取内存条的SPD信息的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811295918.8A CN109358908B (zh) | 2018-11-01 | 2018-11-01 | 一种获取内存条的spd信息的方法、装置及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811295918.8A CN109358908B (zh) | 2018-11-01 | 2018-11-01 | 一种获取内存条的spd信息的方法、装置及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109358908A CN109358908A (zh) | 2019-02-19 |
CN109358908B true CN109358908B (zh) | 2021-06-29 |
Family
ID=65343789
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811295918.8A Active CN109358908B (zh) | 2018-11-01 | 2018-11-01 | 一种获取内存条的spd信息的方法、装置及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109358908B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110704334B (zh) * | 2019-09-25 | 2021-10-15 | 苏州浪潮智能科技有限公司 | 一种重要产品数据管理的方法、系统及设备 |
CN112115656B (zh) * | 2020-09-23 | 2024-06-14 | 恒为科技(上海)股份有限公司 | 一种快速设置内存条约束的方法及装置 |
CN113835932A (zh) * | 2021-11-25 | 2021-12-24 | 四川华鲲振宇智能科技有限责任公司 | 一种内存信号协商训练智能判断方法及系统 |
CN114489852B (zh) * | 2022-01-20 | 2024-03-01 | 飞腾信息技术有限公司 | 内存芯片的启动方法、装置、计算机设备及存储介质 |
CN116521429B (zh) * | 2023-06-27 | 2023-08-29 | 苏州浪潮智能科技有限公司 | 资产信息的上报方法及装置、存储介质及电子设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101354673A (zh) * | 2007-07-27 | 2009-01-28 | 佛山市顺德区顺达电脑厂有限公司 | 内存之spd芯片错误信息仿真装置 |
US8312444B2 (en) * | 2007-07-30 | 2012-11-13 | Ocz Technology Group, Inc. | Method for optimizing memory modules for user-specific environments |
CN103971070A (zh) * | 2013-01-24 | 2014-08-06 | 鸿富锦精密工业(深圳)有限公司 | 一种系统内存保护方法与装置 |
-
2018
- 2018-11-01 CN CN201811295918.8A patent/CN109358908B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101354673A (zh) * | 2007-07-27 | 2009-01-28 | 佛山市顺德区顺达电脑厂有限公司 | 内存之spd芯片错误信息仿真装置 |
US8312444B2 (en) * | 2007-07-30 | 2012-11-13 | Ocz Technology Group, Inc. | Method for optimizing memory modules for user-specific environments |
CN103971070A (zh) * | 2013-01-24 | 2014-08-06 | 鸿富锦精密工业(深圳)有限公司 | 一种系统内存保护方法与装置 |
Non-Patent Citations (1)
Title |
---|
《基于MPC8536的COM Express模块研制》;张奇;《中国优秀硕士论文全文数据库 信息科技辑》;20150215;I137-21 * |
Also Published As
Publication number | Publication date |
---|---|
CN109358908A (zh) | 2019-02-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109358908B (zh) | 一种获取内存条的spd信息的方法、装置及存储介质 | |
KR101946458B1 (ko) | 비휘발성 이중 인-라인 메모리 모듈을 위한 제어기와 통신하기 위한 기법들 | |
DE112015003397T5 (de) | Vorrichtung, System und Verfahren zur Bestimmung von Vergleichsinformationen basierend auf Speicherdaten | |
US20110099317A1 (en) | Input-output module for operation in memory module socket and method for extending a memory interface for input-output operations | |
CN107665174B (zh) | 具有非易失性存储器和易失性存储器的存储系统 | |
CN105283918A (zh) | 使用多周期命令实现存储器装置访问的设备、方法和系统 | |
CN110941395A (zh) | 动态随机存取存储器、内存管理方法、系统及存储介质 | |
US20240061738A1 (en) | Log output method and system for server, and related apparatus | |
CN108984219A (zh) | 内存参数配置方法及电子设备 | |
KR102307372B1 (ko) | 메모리 제어기 | |
US8914602B2 (en) | Display controller having an embedded non-volatile memory divided into a program code block and a data block and method for updating parameters of the same | |
US7197675B2 (en) | Method and apparatus for determining the write delay time of a memory utilizing the north bridge chipset as in charge of the works for checking the write delay time of the memory | |
US7941583B2 (en) | Controlled frequency core processor and method for starting-up said core processor in a programmed manner | |
US20170103797A1 (en) | Calibration method and device for dynamic random access memory | |
CN116679887B (zh) | 用于NAND Flash的通用控制模块及方法 | |
JP5801158B2 (ja) | Ram記憶装置 | |
CN107807870B (zh) | 一种存储服务器主板掉电保护功能的测试方法和系统 | |
US8745363B2 (en) | Bootable volatile memory device, memory module and processing system comprising bootable volatile memory device, and method of booting processing system using bootable volatile memory device | |
KR20220048035A (ko) | 메모리 내 작업 | |
CN111177027A (zh) | 动态随机存取存储器、内存管理方法、系统及存储介质 | |
CN108519860B (zh) | 一种ssd读命中的处理方法和装置 | |
EP2526477B1 (en) | Memory controller | |
CN113722242B (zh) | 内存配置方法、装置、电子设备及可读介质 | |
US8639879B2 (en) | Sorting movable memory hierarchies in a computer system | |
US7345914B2 (en) | Use of flash memory blocks outside of the main flash memory array |
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 |