一种激活内存的方法及装置的制造方法

文档序号:9921978阅读:432来源:国知局
一种激活内存的方法及装置的制造方法
【技术领域】
[0001]本发明涉及计算机领域,特别涉及一种激活内存的方法及装置。
【背景技术】
[0002]目前,数据中心的功耗的25-40%被内存所消耗,内存具有行列结构,任意一行和任意一列交叉形成的单元格为一个存储单元,因此,任意一个存储单元均对应一个行号和一个列号,访问一行中的某个存储单元时,首先要激活整个行,要访问编号为“00” (即处于O行O列)的存储单元时,首先要激活处于O行中的9个存储单元,而激活的功耗占内存功耗的85%以上,因此,目前的数据中心的功耗较大。
[0003]为了降低数据中心的功耗,提出了一种细粒度行访问内存的方法,该方案的主要思路为:每次激活时只需要激活待访问的存储单元即可,不需要将处于同一行的所有存储单元激活,内存接收到一个行激活指令时,并不立即激活此行,而是等接收到列激活指令时,根据行激活指令中的行地址和列激活指令中的列地址确定出待激活的存储单元,然后,再激活该存储单元,因此,降低了数据中心的功耗。
[0004]但是,上述方案中,不能同时对多个存储单元进行激活,而是每激活一个存储单元后,要对该存储单元进行预充电后,然后,才能对下一个存储单元进行激活操作,因此,目前激活内存的方法存在效率较低的缺陷。

【发明内容】

[0005]本发明实施例提供一种激活内存的方法及装置,用以解决现有技术中存在的激活内存的方法效率较低的缺陷。
[0006]本发明实施例提供的具体技术方案如下:
[0007]第一方面,提供一种激活内存的方法,包括:
[0008]获取第一内存访问请求,所述第一内存访问请求用于请求访问内存的第一子行;
[0009]从内存待调度队列中查找第二内存访问请求,所述内存待调度队列包括多个内存访问请求,所述第二内存访问请求用于请求访问所述内存的第二子行,所述第一子行与所述第二子行处于所述内存的同一行;
[0010]合并所述第一内存访问请求和所述第二内存访问请求,生成第一激活指令,所述第一激活指令用于指示激活所述内存中的所述第一子行和所述第二子行;
[0011 ] 将所述第一激活指令发送至所述内存。
[0012]结合第一方面,在第一种可能的实现方式中,从内存待调度队列中查找第二内存访问请求之后,还包括:
[0013]生成子行选择向量,并将所述子行选择向量发送至所述内存;
[0014]所述子行选择向量用于标识待激活的子行是所述第一子行和所述第二子行。
[0015]第二方面,提供一种激活内存的方法,包括:
[0016]接收内存控制器发送的第一激活指令,所述第一激活指令用于指示激活内存中的第一子行和内存中的第二子行,所述第一子行与所述第二子行均处于所述内存中的同一行中;
[0017]根据所述第一激活指令激活处于所述内存中的所述第一子行和所述第二子行。
[0018]结合第二方面,在第一种可能的实现方式中,根据所述第一激活指令激活处于所述内存中的所述第一子行和所述第二子行之前,还包括:
[0019]接收所述内存控制器发送的子行选择向量,所述子行选择向量用于标识待激活的子行是所述第一子行和所述第二子行;
[0020]根据所述第一激活指令激活处于所述内存中的所述第一子行和所述第二子行,具体包括:
[0021]根据所述第一激活指令中、所述子行选择向量激活处于所述内存的所述第一子行和所述第二子行。
[0022]第三方面,提供一种内存控制器,包括:
[0023]请求分发模块,用于获取第一内存访问请求,所述第一内存访问请求用于请求访问内存的第一子行;
[0024]内存调度器,用于从内存待调度队列中查找第二内存访问请求,所述内存待调度队列包括多个内存访问请求,所述第二内存访问请求用于请求访问所述内存的第二子行,所述第一子行与所述第二子行处于所述内存的同一行;
[0025]内存调度器还用于,合并所述第一内存访问请求和所述第二内存访问请求,生成第一激活指令,所述第一激活指令用于指示激活所述内存中的所述第一子行和所述第二子行;
[0026]所述命令调度器,用于所述第一激活指令发送至所述内存。
[0027]结合第三方面,在第一种可能的实现方式中,从内存待调度队列中查找第二内存访问请求之后,还包括:
[0028]生成子行选择向量,并将所述子行选择向量发送至所述内存;
[0029]所述子行选择向量用于标识待激活的子行是所述第一子行和所述第二子行。
[0030]第四方面,提供一种内存模块,包括:
[0031]锁存器,用于接收内存控制器发送的第一激活指令,所述第一激活指令用于指示激活内存中的第一子行和内存中的第二子行,所述第一子行与所述第二子行均处于所述内存中的同一行中;
[0032]子行选择解码器,用于根据从所述锁存器获取的所述第一激活指令激活处于所述内存中的所述第一子行和所述第二子行。
[0033]结合第四方面,在第一种可能的实现方式中,所述锁存器还用于:
[0034]接收所述内存控制器发送的子行选择向量,所述子行选择向量用于标识待激活的子行是所述第一子行和所述第二子行;
[0035]所述子行选择解码器具体用于:
[0036]根据所述第一激活指令中、所述子行选择向量激活处于所述内存的所述第一子行和所述第二子行。
[0037]第五方面,提供一种内存控制器,包括:
[0038]请求分发模块,用于获取第一内存访问请求,所述第一内存访问请求用于请求访问内存的第一子行;
[0039]内存调度器,用于获取所述请求分发模块获取到的第一内存访问请求,并根据所述第一内存访问请求生成第一激活指令;
[0040]命令调度器,用于将从所述内存调度器获取的所述第一激活指令发送至所述内存;
[0041]所述请求分发模块还用于,从所述内存待调度队列中查找第二内存访问请求,所述内存待调度队列包括多个内存访问请求,所述第二内存访问请求用于请求访问所述内存的第二子行,所述第一子行位于第一子阵列,所述第二子行处于第二子阵列;
[0042]所述内存调度器还用于,根据所述第二内存访问请求生成第二激活指令;
[0043]所述命令调度器还用于,将从所述内存调度器获取的所述第二激活指令发送至所述内存;
[0044]其中,所述第一子阵列和所述第二子阵列均包括至少一行,所述至少一行中的任意一行包括至少一个子行,所述至少一个子行中的任意一子行包括至少一个存储单元,任意一存储单元与一个行号标识和一个列号标识相对应;
[0045]其中,所述第二子行包括的任意一存储单元所对应的列号标识与所述第一子行包括的任意一存储单元所对应的列号标识均不相同。
[0046]结合第五方面,在第一种可能的实现方式中,所述请求分发模块还用于:
[0047]获取第三内存访问请求,所述第三内存访问请求用于请求访问内存的第三子行,所述第三子行与所述第一子行处于同一行,所述第二子行包括的任意一存储单元所对应的列号标识与所述第三子行包括的任意一存储单元所对应的列号标识均不相同;
[0048]所述内存调度器具体用于:
[0049]合并所述第一内存访问请求和所述第三内存访问请求,生成第一激活指令。
[0050]结合第五方面,以及第五方面的第一种可能的实现方式,在第二种可能的实现方式中,所述请求分发模块还用于:
[0051]获取第四内存访问请求,所述第四内存访问请求用于请求访问内存的第四子行,所述第四子行与所述第二子行处于同一行,所述第四子行包括的任意一存储单元所对应的列号标识与所述第一子行包括的任意一存储单元所对应的列号标识均不相同;
[0052]所述内存调度器具体用于:
[0053]合并所述第二内存访问请求和所述第四内存访问请求,生成第二激活指令。
[0054]结合第五方面的第二种可能的实现方式,在第三种可能的实现方式中,所述第四子行包括的任意一存储单元所对应的列号标识与所述第三子行包括的任意一存储单元所对应的列号标识均不相同。
[0055]第六方面,提供一种内存模块,包括:
[0056]第一锁存器,用于接收内存控制器发送的第一激活指令,所述第一激活指令用于指示激活内存中的第一子行;
[0057]第一子行选择解码器,用于根据所述第一激活指令激活处于所述内存中的所述第一子行;
[0058]第二锁存器,用于接收所述内存控制器发送的第二激活指令,所述第二激活指令用于指示激活所述内存中的第二子行;
[0059]第二子行选择解码器,用于根据所述第二激活指令激活处于所述内存中的所述第二子行;
[0060]所述第一子行位于第一子阵列,所述第二子行处于第二子阵列;
[0061]所述第一子阵列和所述第二子阵列均包括至少一行,所述至少一行中的任意一行包括至少一个子行,所述至少一个子行中的任意一子行包括至少一个存储单元,任意一存储单元与一个行号标识和一个列号标识相对应;
[0062]所述第二子行包括的任意一存储单元所对应的列号标识与所述第一子行包括的任意一存储单元所对应的列号标识均不相同;
[0063]所述第一锁存器和所述第二锁存器均与用于进行数据缓存的全局缓冲器相连。
[0064]结合第六方面,在第一种可能的实现方式中,所述第一激活指令还用于指示激活内存中的第三子行,所述第三子行与所述第一子行处于同一行中;
[0065]所述第二子行包括的任意一存储单元所对应的列号标识与所述第三子行包括的任意一存储单元所对应的列号标识均不相同。
[0066]结合第六方面,以及第六方面的第一种可能的实现方式,在第二种可能的实现方式中,所述第二激活指令还用于指示激活内存中的第四子行,所述第四子行与所述第二子行处于同一行中;
[0067]所述第四子行包括的任意一存储单元所对应的列号标识与所述第一子行包括的任意一存储单元所对应的列号标识均不相同;
[0068]所述第四子行包括的任意一存储单元所对应的列号标识与所述第三子行包括的任意一存储单元所对应的列号标识均不相同。
[0069]第七方面,提供一种激活内存的方法,包括:
[0070]获取第一内存访问请求,所述第一内存访问请求用于请求访问内存的第一子行;[0071 ] 根据所述第一内存访问请求生成第一激活指令,并将所述第一激活指令发送至所述内存;
[0072]从内存待调度队列中查找第二内存访问请求,所述内存待调度队列包括多个内存访问请求,所述第二内存访问请求用于请求访问所述内存的第二子行,所述第一子行位于第一子阵列,所述第二子行处于第二子阵列;
[0073]根据所述第二内存访问请求生成第二激活指令,并将所述第二激活指令发送至所述内存;
[0074]所述第一子阵列和所述第二子阵列均包括至少一行,所述至少一行中的任意一行包括至少一个子行,所述至少一个子行中的任意一子行包括至少一个存储单元,任意一存储单元与一个行号标识和一个列号标识相对应;
[0075]所述第二子行包括的任意一存储单元所对应的列号标识与所述第一子行包括的任意一存储单元所对应的列号标识均不相同。
[0076]结合第七方面,在第一种可能的实现方式中,根据所述第一内存访问请求生成第一激活指令之前,还包括:
[0077]获取第三内存访问请求,所述
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1