一种新型ddriii内存识别和初始化方法

文档序号:6430121阅读:280来源:国知局
专利名称:一种新型ddriii内存识别和初始化方法
技术领域
本发明涉及嵌入式系统设计中DDRIII内存识别和初始化技术领域,具体说是一种新型DDRIII内存识别和初始化方法。
背景技术
嵌入式系统设计中,已经越来越多的使用DDRIII (双倍速率同步动态随机存储器第三代)内存,且由于空间和可靠性原因,一般都是将DDRIII内存芯片贴于电路板之上。众所周知,不同于其他芯片,DDRIII内存芯片本身是不提供接口访问和内部也不会设置内存芯片的识别号码的,所以,如果系统单板设计时需要使用并识别不同型号和容量大小的内存时,就面临一个内存识别以及读取和配置内存控制器相关时序参数的问题,不能正确的识别出内存,就不能正确的初始化内存。传统的嵌入式系统设计中,解决正确识别DDRIII内存问题的方法之一是使用固定一种型号的DDRIII内存芯片,将初始化数据固化在启动代码里,这种方法的缺点是开发难度大,调试周期长,生产物料采购范围小,且易受供货厂家产能影响。另一种常用的方法,比如内存条,是使用一片电子可擦写式只读存储器EEPR0M,依照一定的数据格式(电子元件工业联合会JEDEC制定的SPD(串行配置检测)规范)将内存相关的存储容量大小、内存类型、时序、物理尺寸等参数存储起来,处理器通过I2C(内部整合电路)接口读取该信息,BootLoader (系统启动程序)使用这些信息初始化DDRIII控制器和内存芯片。相对于嵌入式系统设计,这种方法的缺点是不灵活,EEPROM是要焊接在电路板上的,产品定型后,换一种型号内存芯片,其内容也要相应更新,烧写更新EEPROM不方便,调试时需要反复更新时序参数的配置,那就更不便了。

发明内容
针对现有技术中存在的缺陷,本发明的目的在于提供一种新型DDRIII内存识别和初始化方法,降低开发难度,电路设计可扩展性更好,调试简单方便,生产物料选择范围更广。为达到以上目的,本发明采取的技术方案是一种新型DDRIII内存识别和初始化方法,所述DDRIII内存为内存裸片,其特征在于采用可编程逻辑器件CPLD存储内存芯片相关信息,且数据存储格式在串行配置检测 SPD规范基础上有四点不同e、地址1处,是PPD的版本号;f、地址3处,定义的是内存芯片组访问的模式,非缓冲型还是寄存器型;g、地址32处,定义的是内存芯片生产厂家对应编码;h、地址33到125和地址128到255都是定义的备用;此种新的数据存储格式称为并行配置探测PPD规范,处理器访问可编程逻辑器件CPLD的总线采用处理器通常都具备的本地并行总线,处理器的系统启动程序bootloader程序通过本地并行总线读取存储在CPLD里的内存相关信息,然后使用读取到的信息对内存控制器进行初始化,内存相关信息的存储及其总线访问逻辑接口,是通过在CPLD里做逻辑来实现的。在上述技术方案的基础上,所述存储在CPLD里的内存相关信息至少包括内存芯片的密度和物理片选数、芯片地址的行数和列数、时序参数、内存芯片组访问的模式、内存芯片生产厂家对应编码。在上述技术方案的基础上,CPLD逻辑设定bootloader要访问的地址和数据宽度, 按照设定的地址排列顺序将存储在CPLD里的内存相关信息读出来。在上述技术方案的基础上,CPLD逻辑设定bootloader要访问的地址和数据宽度取8位数据宽度和8位地址宽度。在上述技术方案的基础上,利用CPLD的目标文件能通过其联合测试行为组织 JTAG接口通过PC机专用线缆实时在线下载功能,来改变存储在CPLD里的内存相关信息中的需要调整的内存参数的配置。在上述技术方案的基础上,具体步骤为步骤1,配置完PPD,将逻辑编译成目标文件,编译的目标文件通过JTAG下载线缆下载到CPLD中,步骤2,将处理器和CPLD所在电路复位或重新上电,开始测试过程,步骤3,BootLoader程序通过本地并行总线读取内存参数,其内部程序根据读到的信息,自动计算出处理器需要的寄存器值,将数量众多的控制器的寄存器自动的初始化并启动,步骤4,用户通过调试端口对内存读写进行测试,如测试不成功,返回,检查修改 PPD配置参数,再重复步骤1到步骤4,直至测试成功。本发明所述的新型DDRIII内存识别和初始化方法,采用新的存储方式和总线访问方式,降低开发难度,电路设计可扩展性更好,调试简单方便,生产物料选择范围更广。


本发明有如下附图图1本地并行总线接口原理示意图,图2DDRI11初始化调试流程图。
具体实施例方式以下结合附图对本发明作进一步详细说明。本发明所述的新型DDRIII内存识别和初始化方法,存储内存芯片相关信息的存储介质采用CPLD (可编程逻辑器件),数据存储格式与DDR3SPD规范只有四点不同,我们称这种新定义的数据存储格式为PPD(并行配置探测)规范,这四点不同具体是地址1处, SPD规范是SPD版本号,PPD规范是PPD的版本号;地址3处,SPD规范定义的是内存模块的类型,PPD规范定义的是内存芯片组访问的模式,非缓冲型还是寄存器型;地址32处,SPD规范定义的是备用,PPD规范定义的是内存芯片生产厂家对应编码;最后一点不同是PPD规范里地址33到125和地址128到255都是定义的备用,而SPD规范里有些有定义具体内容, 有的是定义的备用。处理器访问存储介质(即CPLD)的总线采用处理器通常都具备的本地并行总线(本发明只适用于有本地并行总线的处理器)。处理器的bootloader程序(系统启动程序)可以通过本地并行总线读取存储在 CPLD里的内存相关信息,比如内存芯片的密度和物理片选数、芯片地址的行数和列数、时序参数等等,然后使用读取到的信息对内存控制器进行初始化。而内存相关信息的存储及其总线访问逻辑接口,是通过在CPLD里做逻辑来实现的。这里以飞思卡尔的双核处理器P2020为例,DDRIII数据传输速率667MT/s,使用2 个物理片选,DDR3内存芯片使用8片美光公司的MT41JU8M16HA-15E(内存芯片型号,单颗粒容量2G bit)。给出CPLD的可编程逻辑描述语言的实例如下
林 林林 ** *** * * *
权利要求
1.一种新型DDRIII内存识别和初始化方法,所述DDRIII内存为内存裸片,其特征在于采用可编程逻辑器件CPLD存储内存芯片相关信息,且数据存储格式在串行配置检测 SPD规范基础上有四点不同a、地址1处,是PPD的版本号;b、地址3处,定义的是内存芯片组访问的模式,非缓冲型还是寄存器型;C、地址32处,定义的是内存芯片生产厂家对应编码;d、地址33到125和地址128到255都是定义的备用;此种新的数据存储格式称为并行配置探测PPD规范,处理器访问可编程逻辑器件CPLD的总线采用处理器通常都具备的本地并行总线,处理器的系统启动程序bootloader程序通过本地并行总线读取存储在CPLD里的内存相关信息,然后使用读取到的信息对内存控制器进行初始化,内存相关信息的存储及其总线访问逻辑接口,是通过在CPLD里做逻辑来实现的。
2.如权利要求1所述的新型DDRIII内存识别和初始化方法,其特征在于所述存储在CPLD里的内存相关信息至少包括内存芯片的密度和物理片选数、芯片地址的行数和列数、时序参数、内存芯片组访问的模式、内存芯片生产厂家对应编码。
3.如权利要求1所述的新型DDRIII内存识别和初始化方法,其特征在于CPLD逻辑设定bootloader要访问的地址和数据宽度,按照设定的地址排列顺序将存储在CPLD里的内存相关信息读出来。
4.如权利要求3所述的新型DDRIII内存识别和初始化方法,其特征在于CPLD逻辑设定bootloader要访问的地址和数据宽度取8位数据宽度和8位地址宽度。
5.如权利要求1所述的新型DDRIII内存识别和初始化方法,其特征在于利用CPLD的目标文件能通过其联合测试行为组织JTAG接口通过PC机专用线缆实时在线下载功能,来改变存储在CPLD里的内存相关信息中的需要调整的内存参数的配置。
6.如权利要求1所述的新型DDRIII内存识别和初始化方法,其特征在于,具体步骤为步骤1,配置完PPD,将逻辑编译成目标文件,编译的目标文件通过JTAG下载线缆下载到CPLD中,步骤2,将处理器和CPLD所在电路复位或重新上电,开始测试过程,步骤3,BootLoader程序通过本地并行总线读取内存参数,其内部程序根据读到的信息,自动计算出处理器需要的寄存器值,将数量众多的控制器的寄存器自动的初始化并启动,步骤4,用户通过调试端口对内存读写进行测试,如测试不成功,返回,检查修改PPD配置参数,再重复步骤1到步骤4,直至测试成功。
全文摘要
本发明涉及一种新型DDRIII内存识别和初始化方法,所述DDRIII内存为内存裸片,采用可编程逻辑器件CPLD存储内存芯片相关信息,且数据存储格式在串行配置检测SPD规范基础上有四点不同;处理器访问可编程逻辑器件CPLD的总线采用处理器通常都具备的本地并行总线,处理器的系统启动程序bootloader程序通过本地并行总线读取存储在CPLD里的内存相关信息,然后使用读取到的信息对内存控制器进行初始化,内存相关信息的存储及其总线访问逻辑接口,是通过在CPLD里做逻辑来实现的。本发明所述的新型DDRIII内存识别和初始化方法,降低开发难度,电路设计可扩展性更好,调试简单方便,生产物料选择范围更广。
文档编号G06F12/06GK102306127SQ201110223228
公开日2012年1月4日 申请日期2011年8月5日 优先权日2011年8月5日
发明者李传宝 申请人:烽火通信科技股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1