CN103164368B - 一种嵌入式设备兼容不同地址映射内存芯片的方法及系统 - Google Patents
一种嵌入式设备兼容不同地址映射内存芯片的方法及系统 Download PDFInfo
- Publication number
- CN103164368B CN103164368B CN201310107945.9A CN201310107945A CN103164368B CN 103164368 B CN103164368 B CN 103164368B CN 201310107945 A CN201310107945 A CN 201310107945A CN 103164368 B CN103164368 B CN 103164368B
- Authority
- CN
- China
- Prior art keywords
- memory chip
- memory
- characteristic interval
- address
- chip
- 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
Landscapes
- Techniques For Improving Reliability Of Storages (AREA)
- For Increasing The Reliability Of Semiconductor Memories (AREA)
Abstract
本发明公开一种嵌入式设备兼容不同地址映射内存芯片的方法及系统,包括步骤:A、读取内存芯片VID;B、将读取的VID与预设内存芯片列表进行比较,当列表中存在唯一的VID与其一致,则应用该唯一的VID所对应的配置参数;当列表中存在多个VID与其一致,则按照预定规则对多个内存芯片地址映射信息进行分析,计算得出并应用地址映射信息有效的内存芯片的配置参数;C、根据内存芯片配置参数控制内存芯片。本发明在原有通过读取VID来判别内存芯片的技术基础上进行改进和完善,使得信号时序相同而内存地址映射不同的内存芯片可被正确读取,并且也适用于无VID的情况,很好地解决了不同映射地址特别是不同容量的内存芯片的兼容问题。
Description
技术领域
本发明涉及嵌入设备内存芯片识别领域,尤其涉及一种嵌入式设备兼容不同地址映射内存芯片的方法及系统。
背景技术
目前以智能手机为代表的嵌入式设备的技术更新很快,其对内存(RAM)的消耗也与日俱增,内存容量也日益成为一个衡量设备技术水平的指标。而由于成本,市场需求,技术升级等种种因素,我们往往会在同一个设计方案中使用不同品牌,不同容量,不同性能的若干种内存芯片,以生产不同配置的嵌入式设备。这样就带来一个兼容性的问题,即一套代码支持若干种芯片。
目前解决此类兼容性问题的主要方法是通过读取相关的厂商识别码(VendorID,VID)来做识别内存芯片的具体型号。然而实际开发过程中,存在着两个不同型号的内存芯片具有相同的VID的情况,这样一来,现有的方法无法正常工作了。
因此,现有技术还有待于改进和发展。
发明内容
鉴于上述现有技术的不足,本发明的目的在于提供一种嵌入式设备兼容不同地址映射内存芯片的方法及系统,旨在解决目前内存芯片兼容方面存在的问题。
本发明的技术方案如下:
一种嵌入式设备兼容不同地址映射的内存芯片的方法,其中,包括以下步骤:
A、通过内存芯片的访问接口读取所述内存芯片的VID;
B、将所读取的内存芯片的VID与预设的内存芯片列表中的内存芯片VID信息进行比较分析,当内存芯片列表中存在唯一的内存芯片VID与所读取的内存芯片的VID一致,则应用与所述唯一的内存芯片VID相对应的内存芯片的配置参数;
当内存芯片列表中存在多个内存芯片VID与所读取的内存芯片的VID一致,则按照预定规则对多个内存芯片的地址映射信息进行分析,计算得出与所读取的内存芯片相符的地址映射信息,并应用与所相符的地址映射信息对应的内存芯片的配置参数;
C、根据所应用的内存芯片的配置参数控制内存芯片。
所述的嵌入式设备兼容不同地址映射的内存芯片的方法,其中,所述步骤A之前还包括:
判断内存芯片的类型,所述内存芯片的类型包括MCP芯片和非MCP芯片;所述MCP芯片包括有NAND和eMMC类型MCP芯片。
所述的嵌入式设备兼容不同地址映射的内存芯片的方法,其中,所述内存芯片列表包括所述嵌入式设备用到的多个内存芯片的配置信息。
所述的嵌入式设备兼容不同地址映射的内存芯片的方法,其中,所述步骤B中按照预定规则对多个内存芯片的地址映射信息进行分析,计算得出与所读取的内存芯片相符的地址映射信息,并应用与所相符的地址映射信息对应的内存芯片的配置参数具体包括:
根据内存芯片的地址映射信息确定各个内存芯片的地址映射的特征区间,计算各个特征区间与内存芯片有效地址的匹配次数,获取匹配次数最少的特征区间并应用与该特征区间匹配的内存芯片的配置参数,通过内存有无检查算法对获取的特征区间进行内存测试,检查所获取的特征区间的内存地址是否有效,若所获取的特征区间的内存地址有效,则应用与所获取特征区间匹配的内存芯片的配置参数,若所获取的特征区间的内存地址无效,则排除与所获取特征区间匹配的内存芯片并重复上述步骤分析其余特征区间。
所述的嵌入式设备兼容不同地址映射的内存芯片的方法,其中,所述计算各个特征区间与内存芯片有效地址的匹配次数,获取匹配次数最少的特征区间并应用与该特征区间匹配的内存芯片的配置参数具体还包括:
计算各个特征区间与内存芯片有效地址的匹配次数,并按照匹配次数由少到多的顺序设置特征区间列表,
获取所述特征区间列表中匹配次数最少的特征区间,当存在唯一的匹配次数最少的特征区间的内存芯片,则应用该内存芯片的配置参数;当存在多个匹配次数最少的特征区间的内存芯片,则多个匹配次数最少的特征区间的内存芯片在所述内存芯片列表中随机排序,应用其中在所述内存芯片列表中排序靠前的内存芯片的配置参数。
所述的嵌入式设备兼容不同地址映射的内存芯片的方法,其中,所述通过内存有无检查算法对获取的特征区间进行内存测试,检查所获取的特征区间的内存地址是否有效具体为:确定所获取的特征区间的测试起始地址和结束地址,对所述特征区间内的每kB字节依次写入数据,并依次检查每kB字节内的数据是否完全正确,当存在一个kB字节内的数据有误,则判定所述特征区间的内存地址无效,当全部的每kB字节内的数据均正确,则判定所述特征区间的内存地址有效。
所述的嵌入式设备兼容不同地址映射的内存芯片的方法,其中,所述通过内存有无检查算法对获取的特征区间进行内存测试,检查所获取的特征区间的内存地址是否有效具体为:从所获取的特征区间的测试起始位置确定1kB区域,并按字节方式写入0x00,随后按字节方式读取0x00,判断该存储区域是否全部为0x00,若否,则判定所述特征区间的内存地址无效,若是,则判定所述1kB区域内存地址有效,继续按上述步骤对特征区间的第二个1kB区域进行内存测试,直至所述特征区间内的所有1kB区域测试完成,当所有1KB区域的内存地址均有效,则判定所述特征区间的内存地址有效,当其中一个1kB区域内存地址无效,则所述特征区间的内存地址无效。
所述的嵌入式设备兼容不同地址映射的内存芯片的方法,其中,当所获取的特征区间的内存地址无效时,删除所述内存芯片列表中所有有效地址包含所获取特征区间的内存芯片;
当所获取的特征区间的内存地址有效时,删除所述内存芯片列表中所有有效地址不包含所获取特征区间的内存芯片;
当所述内存芯片列表中存在唯一匹配的内存芯片,则检查是否正在使用唯一匹配的内存芯片的配置参数,若是,则内存芯片识别结束,若否,则重置内存控制器并应用唯一匹配的内存芯片的配置参数。
一种嵌入式设备兼容不同地址映射的内存芯片的系统,其中,包括:
读取模块,用于通过内存芯片的访问接口读取所述内存芯片的VID;
比较分析和应用模块,用于将所读取的内存芯片的VID与预设的内存芯片列表中的内存芯片VID信息进行比较分析,计算得出与所读取的地址映射信息对应的内存芯片的配置参数并应用;
控制模块,用于根据应用的内存芯片的配置参数控制内存芯片。
所述的嵌入式设备兼容不同地址映射的内存芯片的系统,其中,所述比较分析和应用模块包括:
内存芯片列表设置单元、用于设置并显示所述嵌入式设备所有可能用到的内存芯片的配置信息;
特征区间获取单元、用于根据内存芯片的地址映射信息确定各个内存芯片的地址映射的特征区间;
特征区间匹配单元、用于计算各个特征区间与内存芯片有效地址的匹配次数并按照匹配次数由少到多的顺序设置特征区间列表;
应用内存芯片配置参数单元、用于当存在唯一的匹配次数最少的特征区间的内存芯片,则应用该内存芯片的配置参数;当存在多个匹配次数最少的特征区间的内存芯片,则多个匹配次数最少的特征区间的内存芯片在所述内存芯片列表中随机排序,应用其中在所述内存芯片列表中排序靠前的内存芯片的配置参数。
内存测试单元、用于通过内存有无检查算法对获取的特征区间进行内存测试,检查所获取的特征区间的内存地址是否有效。
有益效果:本发明公开了一种嵌入式设备兼容不同地址映射内存芯片的方法及系统,其在原有的通过读取VID来判别内存芯片的技术基础上进行改进和完善,使得信号时序相同而内存地址映射不同的内存芯片可被正确读取,很好地解决了不同映射地址特别是不同容量的内存芯片的兼容问题。
附图说明
图1为本发明的嵌入式设备兼容不同地址映射内存芯片的方法流程图。
图2为本发明的嵌入式设备兼容不同地址映射内存芯片的方法的具体实施例的流程图。
图3为本发明的嵌入式设备兼容不同地址映射内存芯片方法的具体实施例的内存芯片特征区间示意图。
图4为本发明的嵌入式设备兼容不同地址映射内存芯片系统的功能原理框图。
图5为本发明的嵌入式设备兼容不同地址映射内存芯片系统的比较分析和应用模块的功能原理框图。
具体实施方式
本发明提供一种嵌入式设备兼容不同地址映射内存芯片的方法及系统,为使本发明的目的、技术方案及效果更加清楚、明确,以下对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
在嵌入式领域,内存芯片通过主控芯片(通常为SoC,SystemonChip)的内存控制器接入系统。由于不同内存芯片的地址线行列配置,信号时序会有所不同,需要给内存控制器不同的配置参数,以正确的访问内存芯片。由此可以看出,要解决内存兼容问题首先要识别内存芯片。
目前嵌入式设备普遍应用了MCP(Multi-ChipPackage)封装的内存芯片(即将传统的存储芯片NAND或者eMMC和内存芯片封装在一个芯片里)。通过读取NAND或者eMMC的VID来识别整个MCP芯片,然后应用所对应的内存参数。但是有的厂商的MCP芯片使用了共同的VID,如Hynix的H9TP32A4GDMCPR(容量512MB,以下称A4G和H9TP32A8JD
MCPR(容量1GB,以下称A8J)两种芯片的VID是相同的。在上述情况中,由于两种芯片是同一家厂商的产品,他们的信号时序相同,仅仅在地址映射(即地址线行列配置,A8J多使用一条地址线)上有所不同。如果我们使用A4G的参数来访问A8J芯片,那么我们会发现,A8J芯片的0-512MB的区间工作正常,512MB-1GB的区间将不会被使用。反之,A4G芯片的0-512MB的区间工作正常,但是如果系统访问了A4G芯片所没有的512MB-1GB的区间,会出现内存错误。这样,使用VID的方法就出现了不足。因此需要就上述问题对内存芯片方案进行重新设计和优化,即采用如图1所示的一种嵌入式设备兼容不同地址映射的内存芯片的方法就能很好的解决内存芯片识别和兼容的问题,
本发明的嵌入式设备兼容不同地址映射的内存芯片的方法包括以下步骤:
S100、通过内存芯片的访问接口读取所述内存芯片的VID;在具体实施过程中,在S100之前还需要判断内存芯片的类型,判断MCP中存储芯片的类型(NAND或eMMC),通过存储芯片的访问接口读取内存芯片的VID(此时所读取的VID实际上是NAND或eMMC的ID)。另外,所读取的内存芯片的类型也包括非MCP芯片;在非MCP芯片的情况下,内存芯片是独立封装的芯片,此时是无法通过直接读取VID的方式来识别内存芯片,由于本发明的内存芯片兼容的方法并不依赖于VID的读取,所以目前本发明方法是解决上述非MCP内存芯片兼容的唯一方法。
S200、将所读取的内存芯片的VID与预设的内存芯片列表中的内存芯片VID信息进行比较分析,当内存芯片列表中存在唯一的内存芯片VID与所读取的内存芯片的VID一致,则应用与所述唯一的内存芯片VID相对应的内存芯片的配置参数;所述内存芯片列表是在嵌入式设备中预先设置好的,包括所述嵌入式设备所有可能用到的内存芯片的配置信息(一般情况下,包含了嵌入式设备所有可能用到的内存芯片的配置信息)。
当内存芯片列表中存在多个内存芯片VID与所读取的内存芯片的VID一致,则按照预定规则对多个内存芯片的地址映射信息进行分析,计算得出所读取的内存芯片相符的地址映射信息,并应用所确定的地址映射信息对应的内存芯片的配置参数。另外,在非MCP芯片的读取分析中,因为无法直接读取VID,在两个内存芯片都没有VID的情况下,本发明认为两者的VID相同,这样,同样可按照本发明的预定规则对其进行分析,从而正确访问非MCP芯片。
S300、根据所应用的内存芯片的配置参数控制内存芯片。
其中,所述步骤S200中按照预定规则对多个内存芯片的地址映射信息进行分析,计算得出与所读取的内存芯片相符的地址映射信息,并应用所确定的地址映射信息对应的内存芯片的配置参数的具体实施例中为:
根据内存芯片的地址映射信息确定各个内存芯片的地址映射的特征区间,具体为;检查各个内存芯片的地址映射情况,找出各个内存芯片的各个优先地址段的起始地址和结束地址,这样可以得到从零开始的各个特征点,这样就得到了一个特征点的列表。进一步的,点和点之间的范围称为特征区间。这样就得到了一个特征区间列表。
在初步得到特征区间列表后,计算各个特征区间与内存芯片有效地址的匹配次数,所谓匹配是指如果某个特征区间包含在某个内存芯片的有效地址内,则判定此特征区间和这个内存芯片匹配,随后按照匹配次数由少到多的顺序设置特征区间列表(即匹配次数少的优先),
获取所述特征区间列表中匹配次数最少的特征区间并应用与该特征区间匹配的内存芯片的配置参数,当存在唯一的匹配次数最少的特征区间的内存芯片,则通过主控芯片的内存控制器的相关寄存器,清除现有的设置,应用该内存芯片的配置参数;当存在多个匹配次数最少的特征区间的内存芯片,则多个匹配次数最少的特征区间的内存芯片在所述内存芯片列表中随机排序,通过主控芯片的内存控制器的相关寄存器,清除现有的设置,应用其中在所述内存芯片列表中排序靠前的内存芯片的配置参数。
随后通过内存有无检查算法对获取的特征区间进行内存测试,检查所获取的特征区间的内存地址是否有效,若所获取的特征区间的内存地址有效,则应用与所获取特征区间匹配的内存芯片的配置信息,若所获取的特征区间的内存地址无效,则排除与所获取特征区间匹配的内存芯片并重复上述步骤分析其余特征区间,即,删除该已排除的内存芯片配置信息,重新计算特征区间并在特征区间列表表中排序,按照上述方法开始下一轮检查。
所述通过内存有无检查算法对获取的特征区间进行内存测试,确定所获取的特征区间的内存地址是否有效在具体实施例中:确定所获取的特征区间的测试起始地址和结束地址,对所述特征区间内的每kB字节依次写入数据,并依次检查每kB字节内的数据是否完全正确,当存在一个kB字节内的数据有误,则判定所述特征区间的内存地址无效,当全部的每kB字节内的数据均正确,则判定所述特征区间的内存地址有效。
上述内存有无检查算法的一个较佳实施例过程为:
从所获取的特征区间的测试起始位置确定1kB区域,并按字节方式写入0x00,随后按字节方式读取0x00,判断该存储区域是否全部为0x00,若否,则判定所述特征区间的内存地址无效,若是,则判定所述1kB区域内存地址有效,继续按上述步骤对特征区间的第二个1kB区域进行内存测试,直至所述特征区间内的所有1kB区域测试完成,若所有1KB区域的内存地址均有效,则判定所述特征区间的内存地址有效,若其中一个1kB区域内存地址无效,则所述特征区间的内存地址无效。至此内存有无检查算法结束。
对执行上述内存有无检查算法后获得的结果所采取的处理机制是:
当获取的特征区间的内存地址无效时,删除所述内存芯片列表中所有有效地址包含所获取特征区间的内存芯片;当所获取的特征区间的内存地址有效时,删除所述内存芯片列表中所有有效地址不包含所获取特征区间的内存芯片;
当所述内存芯片列表中存在唯一匹配的内存芯片,则检查是否正在使用唯一匹配的内存芯片的配置参数,若是,则内存芯片识别结束,若否,则重置内存控制器并应用唯一匹配的内存芯片的配置参数。
如图2所述的是本发明的嵌入式设备兼容不同地址映射内存芯片的方法的具体实施例的流程图,包括以下步骤:
S1、检查内存芯片的VID,具体过程如步骤S100中所述。
S2、根据所检查获取的VID信息与内存芯片列表中的内存芯片的VID信息进行比较,判断是否唯一匹配,当存在唯一匹配,则执行步骤S9,充重置内存控制器,应用此唯一匹配的内存芯片的配置参数。当不是唯一匹配,即存在多个VID相同的内存芯片信息,则执行步骤S3,计算特征区间并排序,首先通过计算获得内存芯片的特征区间,并形成特征区间列表,然后计算各个特征区间与内存芯片有效地址的匹配次数,随后按照匹配次数由少到多的顺序设置特征区间列表,具体列表排序方式如S200所述。
S4、获取所述特征区间列表中匹配次数最少或排序靠前的特征区间,重置内存控制器,应用与该特征区间匹配的内存芯片的配置参数,具体步骤如S200所述。
S5、检查所应用的内存芯片的特征区间内存有无情况,具体内存有无检查算法如步骤S200所述。根据所获取的内存有无检查结果执行步骤S6,排除不符合结果的可能性,即当获取的特征区间的内存地址无效时,删除所述内存芯片列表中所有有效地址包含所获取特征区间的内存芯片;当所获取的特征区间的内存地址有效时,删除所述内存芯片列表中所有有效地址不包含所获取特征区间的内存芯片。
S7、对特征区间列表中所保留的内存芯片信息进行判定,判断是否存在特征区间与内存芯片有效地址唯一匹配的内存芯片配置信息,若不存在,则说明还有未排除的内存配置信息,则从步骤S3开始,重复执行特征区间匹配以及内存测试步骤。当存在唯一匹配内存芯片配置信息则执行步骤S8,检查唯一匹配的内存芯片的配置参数是否已经应用,若是,则内存芯片识别结束,若否,则执行步骤S9,重置内存控制器并应用唯一匹配的内存芯片的配置参数。
图3给出了本发明嵌入式设备兼容不同地址映射的内存芯片的具体实施例,内存芯片特征区间获取后的识别过程可以表述如下
假设我们实际使用的是内存芯片B,具体程序执行的步骤如下:
1、检查各个内存芯片的优先地址段的起始地址和结束地址,找出5个特征点,即0,0x1000,0x2000,0x3000,0x4000,由此得到4个特征区间,即0~0x1000,0x1000~0x2000,0x2000~0x3000,0x3000~0x4000。
2、计算各个特征区间的匹配次数。3个内存芯片都包含了第一个特征区间0~0x1000,则匹配次数为3,以此类推,4个特征区间的匹配次数为3,2,2,1。
3、找到匹配次数最小的特征区间,即0x3000~0x4000区间。因为只有内存芯片A包含了此区间,所以重置主控芯片的内存控制器,应用内存芯片A对应的参数。
4、使用内存有无检查算法进行内存测试。因为我们实际使用的是内存芯片B,那么内存有无检查算法的结果自然是无效,所以排除包含了此区间的内存芯片A的可能性,开始下一轮排查。
5、找出4个特征点,即0,0x1000,0x2000,0x3000,由此得到3个特征区间,即0~0x1000,0x1000~0x2000,0x2000~0x3000。
6、计算各个特征区间的匹配次数,内存芯片B和C都包含了第一个特征区间0~0x1000,则匹配次数为2,以此类推,3个特征区间的匹配次数为2,1,1。
7、找到2个匹配次数最小的特征区间,即0x1000~0x2000区间和0x2000~0x3000区间,它们的匹配次数均为1。取其中靠前的一个,即0x1000-0x2000区间。因为只有内存芯片B包含了此区间,所以重置主控芯片的内存控制器,应用内存芯片B对应的参数。
8、使用内存有无检查算法进行内存测试。因为实际使用的是内存芯片B,那么内存有无检查算法的结果自然是有效,所以排除不包含了此区间的内存芯片C的可能性。
9、这样内存芯片列表中就只剩下内存芯片B一项。因为当前参数已经是内存芯片B的参数,无需再次重置主控芯片的内存控制器。整个识别过程结束。
如图4所示的一种嵌入式设备兼容不同地址映射的内存芯片的系统,包括:
读取模块100,用于通过内存芯片的访问接口读取所述内存芯片的VID,具体表述见步骤S100。
比较分析和应用模块200,用于将所读取的内存芯片的VID与预设的内存芯片列表中的内存芯片VID信息进行比较分析,计算得出与所读取的地址映射信息对应的内存芯片的配置参数并应用,具体表述见步骤S200。
控制模块300,用于根据应用的内存芯片的配置参数控制内存芯片,具体表述见步骤S300。
其中,如图5所述的所述的比较分析和应用模块200包括:
内存芯片列表设置单元210、用于设置并显示所述嵌入式设备所有可能用到的内存芯片的配置信息;
特征区间获取单元220、用于根据内存芯片的地址映射信息确定各个内存芯片的地址映射的特征区间;
特征区间匹配单元230、用于计算各个特征区间与内存芯片有效地址的匹配次数并按照匹配次数由少到多的顺序设置特征区间列表;
应用内存芯片配置参数单元240、用于当存在唯一的匹配次数最少的特征区间的内存芯片,则应用该内存芯片的配置参数;当存在多个匹配次数最少的特征区间的内存芯片,则多个匹配次数最少的特征区间的内存芯片在所述内存芯片列表中随机排序,应用其中在所述内存芯片列表中排序靠前的内存芯片的配置参数。
内存测试单元250、用于通过内存有无检查算法对获取的特征区间进行内存测试,检查所获取的特征区间的内存地址是否有效。
本发明公开了一种嵌入式设备兼容不同地址映射内存芯片的方法及系统,其在原有的通过读取VID来判别内存芯片的技术基础上进行改进和完善,使得信号时序相同而内存地址映射不同的内存芯片可被正确读取,很好地解决了不同映射地址特别是不同容量的内存芯片的兼容问题。
应当理解的是,本发明的应用不限于上述的举例,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,所有这些改进和变换都应属于本发明所附权利要求的保护范围。
Claims (10)
1.一种嵌入式设备兼容不同地址映射的内存芯片的方法,其特征在于,包括以下步骤:
A、通过内存芯片的访问接口读取所述内存芯片的厂商识别码;
B、将所读取的内存芯片的厂商识别码与预设的内存芯片列表中的内存芯片厂商识别码信息进行比较分析,当内存芯片列表中存在唯一的内存芯片厂商识别码与所读取的内存芯片的厂商识别码一致,则应用与所述唯一的内存芯片厂商识别码相对应的内存芯片的配置参数;
当内存芯片列表中存在多个内存芯片厂商识别码与所读取的内存芯片的厂商识别码一致,则根据内存芯片的地址映射信息确定各个内存芯片的地址映射的特征区间,计算各个特征区间与内存芯片有效地址的匹配次数,获取匹配次数最少的特征区间并应用与该特征区间匹配的内存芯片的配置参数;
C、根据所应用的内存芯片的配置参数控制内存芯片。
2.根据权利要求1所述的嵌入式设备兼容不同地址映射的内存芯片的方法,其特征在于,所述步骤A之前还包括:
判断内存芯片的类型,所述内存芯片的类型包括MCP芯片和非MCP芯片;所述MCP芯片包括有NAND和eMMC类型MCP芯片。
3.根据权利要求1所述的嵌入式设备兼容不同地址映射的内存芯片的方法,其特征在于,所述内存芯片列表包括所述嵌入式设备用到的多个内存芯片的配置信息。
4.根据权利要求1所述的嵌入式设备兼容不同地址映射的内存芯片的方法,其特征在于,所述步骤B中按照预定规则对多个内存芯片的地址映射信息进行分析,计算得出与所读取的内存芯片相符的地址映射信息,并应用与所相符的地址映射信息对应的内存芯片的配置参数具体包括:
根据内存芯片的地址映射信息确定各个内存芯片的地址映射的特征区间,计算各个特征区间与内存芯片有效地址的匹配次数,获取匹配次数最少的特征区间并应用与该特征区间匹配的内存芯片的配置参数,通过内存有无检查算法对获取的特征区间进行内存测试,检查所获取的特征区间的内存地址是否有效,若所获取的特征区间的内存地址有效,则应用与所获取特征区间匹配的内存芯片的配置参数,若所获取的特征区间的内存地址无效,则排除与所获取特征区间匹配的内存芯片并重复上述步骤分析其余特征区间。
5.根据权利要求4所述的嵌入式设备兼容不同地址映射的内存芯片的方法,其特征在于,所述计算各个特征区间与内存芯片有效地址的匹配次数,获取匹配次数最少的特征区间并应用与该特征区间匹配的内存芯片的配置参数具体还包括:
计算各个特征区间与内存芯片有效地址的匹配次数,并按照匹配次数由少到多的顺序设置特征区间列表,
获取所述特征区间列表中匹配次数最少的特征区间,当存在唯一的匹配次数最少的特征区间的内存芯片,则应用该内存芯片的配置参数;当存在多个匹配次数最少的特征区间的内存芯片,则多个匹配次数最少的特征区间的内存芯片在所述内存芯片列表中随机排序,应用其中在所述内存芯片列表中排序靠前的内存芯片的配置参数。
6.根据权利要求4所述的嵌入式设备兼容不同地址映射的内存芯片的方法,其特征在于,所述通过内存有无检查算法对获取的特征区间进行内存测试,检查所获取的特征区间的内存地址是否有效具体为:确定所获取的特征区间的测试起始地址和结束地址,对所述特征区间内的每kB字节依次写入数据,并依次检查每kB字节内的数据是否完全正确,当存在一个kB字节内的数据有误,则判定所述特征区间的内存地址无效,当全部的每kB字节内的数据均正确,则判定所述特征区间的内存地址有效。
7.根据权利要求4所述的嵌入式设备兼容不同地址映射的内存芯片的方法,其特征在于,所述通过内存有无检查算法对获取的特征区间进行内存测试,检查所获取的特征区间的内存地址是否有效具体为:从所获取的特征区间的测试起始位置确定1kB区域,并按字节方式写入0x00,随后按字节方式读取0x00,判断该存储区域是否全部为0x00,若否,则判定所述特征区间的内存地址无效,若是,则判定所述1kB区域内存地址有效,继续按上述步骤对特征区间的第二个1kB区域进行内存测试,直至所述特征区间内的所有1kB区域测试完成,当所有1KB区域的内存地址均有效,则判定所述特征区间的内存地址有效,当其中一个1kB区域内存地址无效,则所述特征区间的内存地址无效。
8.根据权利要求4所述的嵌入式设备兼容不同地址映射的内存芯片的方法,其特征在于,当所获取的特征区间的内存地址无效时,删除所述内存芯片列表中所有有效地址包含所获取特征区间的内存芯片;
当所获取的特征区间的内存地址有效时,删除所述内存芯片列表中所有有效地址不包含所获取特征区间的内存芯片;
当所述内存芯片列表中存在唯一匹配的内存芯片,则检查是否正在使用唯一匹配的内存芯片的配置参数,若是,则内存芯片识别结束,若否,则重置内存控制器并应用唯一匹配的内存芯片的配置参数。
9.一种嵌入式设备兼容不同地址映射的内存芯片的系统,其特征在于,包括:
读取模块,用于通过内存芯片的访问接口读取所述内存芯片的厂商识别码;
比较分析和应用模块,用于根据内存芯片的地址映射信息确定各个内存芯片的地址映射的特征区间;计算各个特征区间与内存芯片有效地址的匹配次数并按照匹配次数由少到多的顺序设置特征区间列表;用于当存在唯一的匹配次数最少的特征区间的内存芯片,则应用该内存芯片的配置参数;当存在多个匹配次数最少的特征区间的内存芯片,则多个匹配次数最少的特征区间的内存芯片在所述内存芯片列表中随机排序,应用其中在所述内存芯片列表中排序靠前的内存芯片的配置参数;
控制模块,用于根据应用的内存芯片的配置参数控制内存芯片。
10.根据权利要求9所述的嵌入式设备兼容不同地址映射的内存芯片的系统,其特征在于,所述比较分析和应用模块包括:
内存芯片列表设置单元、用于设置并显示所述嵌入式设备所有可能用到的内存芯片的配置信息;
特征区间获取单元、用于根据内存芯片的地址映射信息确定各个内存芯片的地址映射的特征区间;
特征区间匹配单元、用于计算各个特征区间与内存芯片有效地址的匹配次数并按照匹配次数由少到多的顺序设置特征区间列表;
应用内存芯片配置参数单元、用于当存在唯一的匹配次数最少的特征区间的内存芯片,则应用该内存芯片的配置参数;当存在多个匹配次数最少的特征区间的内存芯片,则多个匹配次数最少的特征区间的内存芯片在所述内存芯片列表中随机排序,应用其中在所述内存芯片列表中排序靠前的内存芯片的配置参数;
内存测试单元、用于通过内存有无检查算法对获取的特征区间进行内存测试,检查所获取的特征区间的内存地址是否有效。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310107945.9A CN103164368B (zh) | 2013-03-29 | 2013-03-29 | 一种嵌入式设备兼容不同地址映射内存芯片的方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310107945.9A CN103164368B (zh) | 2013-03-29 | 2013-03-29 | 一种嵌入式设备兼容不同地址映射内存芯片的方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103164368A CN103164368A (zh) | 2013-06-19 |
CN103164368B true CN103164368B (zh) | 2016-02-10 |
Family
ID=48587466
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310107945.9A Active CN103164368B (zh) | 2013-03-29 | 2013-03-29 | 一种嵌入式设备兼容不同地址映射内存芯片的方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103164368B (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104346275A (zh) * | 2013-08-07 | 2015-02-11 | 鸿富锦精密工业(深圳)有限公司 | 内存测试系统及方法 |
CN103747113B (zh) * | 2013-12-27 | 2017-05-03 | 珠海全志科技股份有限公司 | 一种以太网控制器phy芯片mii地址自动识别的方法 |
CN104571948A (zh) * | 2014-12-11 | 2015-04-29 | 乐视致新电子科技(天津)有限公司 | 一种兼容多种ddr的方法及系统 |
CN104461649B (zh) * | 2014-12-19 | 2018-01-16 | 广东欧珀移动通信有限公司 | 芯片兼容方法及装置 |
CN104735641B (zh) * | 2015-03-11 | 2018-11-16 | 广东欧珀移动通信有限公司 | 基于双倍数据率ddr寄存器进行参数配置的方法及装置 |
CN105259989B (zh) * | 2015-11-18 | 2019-01-29 | 合肥宝龙达信息技术有限公司 | 一种笔记本板载内存兼容多源的方法 |
CN106304032A (zh) * | 2016-08-08 | 2017-01-04 | 周奇 | 手机配置兼容方法及系统 |
CN110941454A (zh) * | 2019-11-08 | 2020-03-31 | 山东超越数控电子股份有限公司 | 一种实现内存自适应的方法及系统 |
CN115756296A (zh) * | 2021-09-02 | 2023-03-07 | 深圳市中兴微电子技术有限公司 | 缓存管理方法和装置、控制程序及控制器 |
CN113590508B (zh) * | 2021-09-30 | 2022-02-11 | 沐曦科技(北京)有限公司 | 动态可重构的内存地址映射方法及装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6748515B1 (en) * | 2000-07-17 | 2004-06-08 | Silicon Laboratories Inc. | Programmable vendor identification circuitry and associated method |
CN1581341A (zh) * | 2003-07-31 | 2005-02-16 | 惠普开发有限公司 | 数据单元内具有可变控制字段的数据媒体 |
CN101178933A (zh) * | 2007-12-05 | 2008-05-14 | 苏州壹世通科技有限公司 | 一种闪存阵列装置 |
CN102110054A (zh) * | 2009-12-23 | 2011-06-29 | Tcl集团股份有限公司 | 一种pci设备与系统内存的通讯方法和装置 |
CN102693337A (zh) * | 2012-05-11 | 2012-09-26 | 江苏中科梦兰电子科技有限公司 | 8位位宽和16位位宽内存芯片兼容的内存设备设计方法 |
-
2013
- 2013-03-29 CN CN201310107945.9A patent/CN103164368B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6748515B1 (en) * | 2000-07-17 | 2004-06-08 | Silicon Laboratories Inc. | Programmable vendor identification circuitry and associated method |
CN1581341A (zh) * | 2003-07-31 | 2005-02-16 | 惠普开发有限公司 | 数据单元内具有可变控制字段的数据媒体 |
CN101178933A (zh) * | 2007-12-05 | 2008-05-14 | 苏州壹世通科技有限公司 | 一种闪存阵列装置 |
CN102110054A (zh) * | 2009-12-23 | 2011-06-29 | Tcl集团股份有限公司 | 一种pci设备与系统内存的通讯方法和装置 |
CN102693337A (zh) * | 2012-05-11 | 2012-09-26 | 江苏中科梦兰电子科技有限公司 | 8位位宽和16位位宽内存芯片兼容的内存设备设计方法 |
Also Published As
Publication number | Publication date |
---|---|
CN103164368A (zh) | 2013-06-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103164368B (zh) | 一种嵌入式设备兼容不同地址映射内存芯片的方法及系统 | |
CN104007935B (zh) | 存储器设备 | |
CN106484581B (zh) | 空间辐射环境下可编程soc器件单粒子翻转检测系统及方法 | |
CN106030521A (zh) | 命令排队 | |
CN103544122B (zh) | 一种接口自适应匹配的协同系统及其协同方法 | |
CN103324583B (zh) | 一种光纤陀螺离线高速数据采集方法 | |
CN106326171A (zh) | 硬盘背板的硬盘类型识别方法和装置 | |
CN102930877B (zh) | 适用于光模块控制器中数字监控系统及其实现方法 | |
CN104572384A (zh) | 一种芯片多fpga验证方法及系统 | |
CN107290654A (zh) | 一种fpga逻辑测试结构及方法 | |
CN112631633A (zh) | 基于双芯智能电表的功能模块升级方法和装置 | |
CN112162765A (zh) | 固件升级方法、上位机及存储介质 | |
CN105575437A (zh) | 智能卡eeprom的测试方法 | |
CN106407130A8 (zh) | 一种Nandflash内存数据管理的方法 | |
WO2010020194A1 (zh) | 具有唯一标识的电视机芯片及写入唯一标识的方法 | |
CN109633415A (zh) | 一种异常芯片的识别方法及设备 | |
CN105573947B (zh) | 一种基于apb总线的sd/mmc卡控制方法 | |
CN108122592A (zh) | 半导体装置和半导体集成系统 | |
CN112214384A (zh) | 一种硬盘序列号管理方法、系统、终端及存储介质 | |
CN103365815B (zh) | 支持sd模式下ip实现的sd存储卡接口 | |
CN107632913A (zh) | 基于国产化操作系统的存储设备与接口测试方法 | |
CN103345610B (zh) | 快速验证智能卡数据完整性的设备及方法 | |
CN103150262B (zh) | 管道式串行接口闪存访问装置 | |
CN101950368B (zh) | 24c系列芯片存储容量的识别方法 | |
CN105739919B (zh) | 资料存取系统及方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |