Dram的初始化方法及装置的制造方法

文档序号:9752238阅读:1414来源:国知局
Dram的初始化方法及装置的制造方法
【技术领域】
[0001]本发明属于计算机技术领域,尤其涉及一种动态随机存取存储器(DynamicRandom Access Memory,DRAM)的初始化方法及装置。
【背景技术】
[0002]移动操作系统启动时,在其引导装载(bootloader)的预装载(preloader)阶段,会根据配置文件来初始化内存的容量大小,并将初始化好的地址空间通过传参方式传给小内核(Little Kernel,LK)使用,即,将DRAM的物理首地址、容量大小等信息存放在DRAM的指定区域,等待小内核读取并使用。
[0003]由于是根据配置文件来对DRAM的整个地址空间进行初始化,因此,DRAM不允许存在坏块,若DRAM的存储阵列中存在坏块,会影响移动操作系统的正常运行,这样一来,对于存在少量坏块的DRAM,就无法被使用,在经过厂商的封装测试之后,只能被当作废弃品处理,造成了资源浪费。

【发明内容】

[0004]有鉴于此,本发明实施例提供了DRAM的初始化方法及装置,旨在解决现有技术中存在少量坏块的DRAM会导致移动操作系统无法正常运行的问题。
[0005]第一方面,提供了一种动态随机存取存储器DRAM的初始化方法,包括:
[0006]将DRAM的地址空间划分为N个块,所述N为大于I的整数;
[0007]根据所述划分的结果,对所述DRAM进行坏块扫描,将扫描结果记录在预设的数据表中;
[0008]根据所述数据表的记录对所述DRAM进行地址重映射,包括:将地址连续的非坏块组合成块区域,并获取所述块区域的首地址及容量大小;
[0009]根据所述划分的结果,修改操作系统内核的配置文件,以对内核接收参数的空间进行扩大;
[0010]将所述块区域的首地址及容量大小传递到内核,以完成所述DRAM的初始化。
[0011 ]第二方面,提供了一种动态随机存取存储器DRAM的初始化装置,包括:
[0012]划分单元,用于将DRAM的地址空间划分为N个块,所述N为大于I的整数;
[0013]扫描单元,用于根据所述划分的结果,对所述DRAM进行坏块扫描,将扫描结果记录在预设的数据表中;
[0014]映射单元,用于根据所述数据表的记录对所述DRAM进行地址重映射,包括:将地址连续的非坏块组合成块区域,并获取所述块区域的首地址及容量大小;
[0015]修改单元,用于根据所述划分的结果,修改操作系统内核的配置文件,以对内核接收参数的空间进行扩大;
[0016]初始化单元,用于将所述块区域的首地址及容量大小传递到内核,以完成所述DRAM的初始化。
[0017]本发明实施例对DRAM的地址空间进行重新映射,提取出DRAM中不存在坏块的地址空间,并通过修改操作系统的配置文件,使得操作系统能够在存在坏块的DRAM上也得到正常运行,有效地提高了存储资源利用率。
【附图说明】
[0018]为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0019]图1是本发明实施例提供的DRAM的初始化方法的实现流程图;
[0020]图2是本发明实施例提供的DRAM的初始化方法坏块扫描的实现流程图;
[0021 ]图3是本发明实施例提供的DRAM的初始化方法扫描结果记录的实现流程图;
[0022]图4是本发明另一实施例提供的DRAM的初始化方法的实现流程图;
[0023]图5是本发明另一实施例提供的DRAM的初始化方法的实现流程图;
[0024]图6是本发明实施例提供的DRAM的初始化装置的结构框图。
【具体实施方式】
[0025]以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透切理解本发明实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本发明。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本发明的描述。
[0026]图1示出了本发明实施例提供的DRAM的初始化方法的实现流程,在本发明实施例中,DRAM的初始化,指的是操作系统在启动过程中,根据配置文件来初始化DRAM的分块情况、容量大小等相关参数,以使得在初始化完成之后,操作系统能够在DRAM上正常运行。其中,所述操作系统包括但不限于移动终端所采用的移动操作系统,例如android系统等。该方案的实现流程详述如下:
[0027]在SlOl中,将DRAM的地址空间划分为N个块,所述N为大于I的整数。
[0028]以android系统为例,在终端设备开机,android系统bootloader的preloader阶段,完成DRAM在该阶段的初始化后,先将DRAM的整个地址空间划分为N个块,最终划分出来的块数由块的大小决定,例如,每个块的容量为IM,则512M的DRAM可以划分出512个块。
[0029]在S102中,根据所述划分的结果,对所述DRAM进行坏块扫描,将扫描结果记录在预设的数据表中。
[0030]对DRAM进行坏块扫描,其目的是为了区分并记录DRAM存储空间中的坏块区域和非坏块区域。具体的扫描过程如图2所示:
[0031 ]在S201中,通过预设算法对所述N个块中的每个块分别进行测试。
[0032]在S202中,若测试出某个块存在至少一个错误,则将该块记录为坏块,否则将该块记录为非坏块。
[0033]例如,利用0x55555555、0xAAAAAAAA或者随机数对DRAM进行全盘读写,又例如,利用march X这样一种有效测试DRAM故障的算法对每个块分别进行测试,只要某个块的测试结果中存在至少一个错误,就将该块记录为坏块,若某个块通过预设算法测试之后没有发现错误,则该块就被判定为非坏块。
[0034]具体的扫描结果记录过程可以如图3所示:
[0035]在S301中,通过二值法对所述N个块中的每个块进行标记。
[0036]通过“O — I” 二值来对坏块和非坏块进行标记,例如,将坏块标记为I,非坏块标记为O;或者,将坏块标记为O,非坏块标记为I,通过二值法来对扫描结果进行标记,能够直观便捷地区分出DRAM中的坏块和非坏块。
[0037]在S302中,在所述预设的数据表中写入每个块对应的地址及标记。
[0038]在预设的数据表中写入DRAM中每个块在DRAM中的地址及对应的标记,由此就可以完成对DRAM坏块情况的记录。此外,在预设的数据表中,显然也可以仅写入DRAM中的坏块对应的地址及标记,那么没有写入DRAM中的地址空间显然就是非坏块所处的地址空间;或者仅写入DRAM中的非坏块对应的地址及标记,那么没有写入DRAM中的地址空间显然就是坏块所处的地址空间。
[0039]在S103中,根据所述数据表的记录对所述DRAM进行地址重映射,包括:将地址连续的非坏块组合成块区域,并获取所述块区域的首地址及容量大小。
[°04°]以android系统为例,在其boot loader的小内核(LK)阶段,根据数据表中记录的坏块和/或非坏块情况,对DRAM进行地址重映射,具体方式可以通过在小内核解析preloader参数的源码部分添加地址重映射函数来实现,根据数据表中的记录,将DRAM中地址空间连续的非坏块组合成一个新的块区域,并根据数据表中记录的地址信息,映射出该块区域的首地址及容量大小。
[0041]在S104中,根据所述划分的结果,修改操作系统内核的配置文件,以对内核接收参数的空间进行扩大。
[0042]对于android系统来说,由于内核的配置文件默认将DRAM的块数配置为8,导致内核最多只能接收8组DRAM的地址空间参数,因此,在本发明实施例中,需要将内核默认的块数扩大到与划分的块区域的数量相等。以512M的DRAM为例,划分每个块区域的大小为1M,那么DRAM的整个地址空间就被划分成了 512块,则需要将内核默认的块数由8修改为512,此时,内核最多可以接收512组D R A M地址空间参数。修改的方式如下:将内核源码的平台(platform)配置文件的宏⑶NFIG_ARM_NR_BANKS的值修改为512,架构的配置文件的ARM_NR_BANKS的默认值修改为512,由此扩大内核接收LK参数的空间,内核才能完全获知DRAM每一个块区域的首地址和容量大小。
[0043]在S105中,将所述块区域的首地址及容量大小传递到内核,以完成所述DRAM的初始化。
[0044]在完成了对内核配置文件的修改之后,再将S103得到的块区域的首地址及容量大小通过传参的方式传递给内核,从而完成DRAM的初始化,由此,操作系统可以在DRAM上正常运行,有效地避免了少量坏块的存在对系统运行所带来的不良影响。
[0045]进一步地,为了提高终端设备的开机效率,避免每次系统启动时都需要对DRAM进行坏块扫描,作为本发明的一个实施例,在所述将扫描结果记录在预设的数据表中之后,所述根据所述数据表的记录对所述DRAM进行地址重映射之前,还可以将所述数据表存储至非易失性存储器中,这样一来,就可以利用非易失性存储器掉电数据不丢失的特性,实现数据表的永久保存。其中,所述非易失性存储器,包括但不限于只读存储器(Read Only Memory,ROM),闪存(Flash)等。贝Ij相应地,如图4所示,在终端设备开机启动的过程中,bootloader的小内核阶段,会首先检测终端设备中的非易失性存储器中是否存储有数据表,如果其中并没有存储数据表,再从SlOl开始执行本方案的相关步骤,若其中存储了数据表,则直接从中读取出数据表,从S103开始执行本方案的相关步骤。
[0046]通过上述方案阐述可以看出,显然,在对DRAM进行块划分的过程中,块的容量越小,划分的块数就越多,这样一来,在进行地址重映射时,对DRAM存储阵列上的空间就越能达到充分利用,因此,作为本发明的一个实施例,如图5所示,在SlOl之前,所述方法还包括:
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1