CN105701040B - 一种激活内存的方法及装置 - Google Patents
一种激活内存的方法及装置 Download PDFInfo
- Publication number
- CN105701040B CN105701040B CN201410707487.7A CN201410707487A CN105701040B CN 105701040 B CN105701040 B CN 105701040B CN 201410707487 A CN201410707487 A CN 201410707487A CN 105701040 B CN105701040 B CN 105701040B
- Authority
- CN
- China
- Prior art keywords
- line
- sub
- memory
- access request
- activation instruction
- 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 519
- 238000000034 method Methods 0.000 title claims abstract description 36
- 230000004913 activation Effects 0.000 claims abstract description 259
- 238000003860 storage Methods 0.000 claims description 206
- 238000009826 distribution Methods 0.000 claims description 26
- 230000005540 biological transmission Effects 0.000 claims description 9
- 238000000151 deposition Methods 0.000 claims description 5
- 230000003213 activating effect Effects 0.000 abstract description 9
- 230000007420 reactivation Effects 0.000 abstract description 2
- 238000010586 diagram Methods 0.000 description 14
- 230000008569 process Effects 0.000 description 6
- 238000004590 computer program Methods 0.000 description 5
- 230000004048 modification Effects 0.000 description 5
- 238000012986 modification Methods 0.000 description 5
- 230000007547 defect Effects 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000003139 buffering effect Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C8/00—Arrangements for selecting an address in a digital store
- G11C8/16—Multiple access memory array, e.g. addressing one storage element via at least two independent addressing line groups
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C8/00—Arrangements for selecting an address in a digital store
- G11C8/10—Decoders
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
-
- 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/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline, look ahead
- G06F9/3854—Instruction completion, e.g. retiring, committing or graduating
- G06F9/3856—Reordering of instructions, e.g. using queues or age tags
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/22—Read-write [R-W] timing or clocking circuits; Read-write [R-W] control signal generators or management
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C8/00—Arrangements for selecting an address in a digital store
- G11C8/14—Word line organisation; Word line lay-out
Abstract
本发明涉及计算机领域,公开了一种激活内存的方法及装置,在该方案中,获取第一内存访问请求后,第一内存访问请求用于请求访问内存的第一子行,没有立即去激活第一子行,而是从内存待调度队列中查找第二内存访问请求,第二内存访问请求用于请求访问内存的第二子行,第一子行与第二子行处于内存的同一行中;然后,合并第一内存访问请求和第二内存访问请求,生成第一激活指令,第一激活指令用于指示激活内存中的第一子行和第二子行,并将第一激活指令发送至内存,这样,就可以同时将第一子行和第二子行激活,没必要在激活第一子行后,对第一子行所在的行预充电,然后,再激活第二子行,因此,提高了激活的效率。
Description
技术领域
本发明涉及计算机领域,特别涉及一种激活内存的方法及装置。
背景技术
目前,数据中心的功耗的25-40%被内存所消耗,内存具有行列结构,任意一行和任意一列交叉形成的单元格为一个存储单元,因此,任意一个存储单元均对应一个行号和一个列号,访问一行中的某个存储单元时,首先要激活整个行,要访问编号为“00”(即处于0行0列)的存储单元时,首先要激活处于0行中的9个存储单元,而激活的功耗占内存功耗的85%以上,因此,目前的数据中心的功耗较大。
为了降低数据中心的功耗,提出了一种细粒度行访问内存的方法,该方案的主要思路为:每次激活时只需要激活待访问的存储单元即可,不需要将处于同一行的所有存储单元激活,内存接收到一个行激活指令时,并不立即激活此行,而是等接收到列激活指令时,根据行激活指令中的行地址和列激活指令中的列地址确定出待激活的存储单元,然后,再激活该存储单元,因此,降低了数据中心的功耗。
但是,上述方案中,不能同时对多个存储单元进行激活,而是每激活一个存储单元后,要对该存储单元进行预充电后,然后,才能对下一个存储单元进行激活操作,因此,目前激活内存的方法存在效率较低的缺陷。
发明内容
本发明实施例提供一种激活内存的方法及装置,用以解决现有技术中存在的激活内存的方法效率较低的缺陷。
本发明实施例提供的具体技术方案如下:
第一方面,提供一种激活内存的方法,包括:
获取第一内存访问请求,所述第一内存访问请求用于请求访问内存的第一子行;
从内存待调度队列中查找第二内存访问请求,所述内存待调度队列包括多个内存访问请求,所述第二内存访问请求用于请求访问所述内存的第二子行,所述第一子行与所述第二子行处于所述内存的同一行;
合并所述第一内存访问请求和所述第二内存访问请求,生成第一激活指令,所述第一激活指令用于指示激活所述内存中的所述第一子行和所述第二子行;
将所述第一激活指令发送至所述内存。
结合第一方面,在第一种可能的实现方式中,从内存待调度队列中查找第二内存访问请求之后,还包括:
生成子行选择向量,并将所述子行选择向量发送至所述内存;
所述子行选择向量用于标识待激活的子行是所述第一子行和所述第二子行。
第二方面,提供一种激活内存的方法,包括:
接收内存控制器发送的第一激活指令,所述第一激活指令用于指示激活内存中的第一子行和内存中的第二子行,所述第一子行与所述第二子行均处于所述内存中的同一行中;
根据所述第一激活指令激活处于所述内存中的所述第一子行和所述第二子行。
结合第二方面,在第一种可能的实现方式中,根据所述第一激活指令激活处于所述内存中的所述第一子行和所述第二子行之前,还包括:
接收所述内存控制器发送的子行选择向量,所述子行选择向量用于标识待激活的子行是所述第一子行和所述第二子行;
根据所述第一激活指令激活处于所述内存中的所述第一子行和所述第二子行,具体包括:
根据所述第一激活指令中、所述子行选择向量激活处于所述内存的所述第一子行和所述第二子行。
第三方面,提供一种内存控制器,包括:
请求分发模块,用于获取第一内存访问请求,所述第一内存访问请求用于请求访问内存的第一子行;
内存调度器,用于从内存待调度队列中查找第二内存访问请求,所述内存待调度队列包括多个内存访问请求,所述第二内存访问请求用于请求访问所述内存的第二子行,所述第一子行与所述第二子行处于所述内存的同一行;
内存调度器还用于,合并所述第一内存访问请求和所述第二内存访问请求,生成第一激活指令,所述第一激活指令用于指示激活所述内存中的所述第一子行和所述第二子行;
所述命令调度器,用于所述第一激活指令发送至所述内存。
结合第三方面,在第一种可能的实现方式中,从内存待调度队列中查找第二内存访问请求之后,还包括:
生成子行选择向量,并将所述子行选择向量发送至所述内存;
所述子行选择向量用于标识待激活的子行是所述第一子行和所述第二子行。
第四方面,提供一种内存模块,包括:
锁存器,用于接收内存控制器发送的第一激活指令,所述第一激活指令用于指示激活内存中的第一子行和内存中的第二子行,所述第一子行与所述第二子行均处于所述内存中的同一行中;
子行选择解码器,用于根据从所述锁存器获取的所述第一激活指令激活处于所述内存中的所述第一子行和所述第二子行。
结合第四方面,在第一种可能的实现方式中,所述锁存器还用于:
接收所述内存控制器发送的子行选择向量,所述子行选择向量用于标识待激活的子行是所述第一子行和所述第二子行;
所述子行选择解码器具体用于:
根据所述第一激活指令中、所述子行选择向量激活处于所述内存的所述第一子行和所述第二子行。
第五方面,提供一种内存控制器,包括:
请求分发模块,用于获取第一内存访问请求,所述第一内存访问请求用于请求访问内存的第一子行;
内存调度器,用于获取所述请求分发模块获取到的第一内存访问请求,并根据所述第一内存访问请求生成第一激活指令;
命令调度器,用于将从所述内存调度器获取的所述第一激活指令发送至所述内存;
所述请求分发模块还用于,从所述内存待调度队列中查找第二内存访问请求,所述内存待调度队列包括多个内存访问请求,所述第二内存访问请求用于请求访问所述内存的第二子行,所述第一子行位于第一子阵列,所述第二子行处于第二子阵列;
所述内存调度器还用于,根据所述第二内存访问请求生成第二激活指令;
所述命令调度器还用于,将从所述内存调度器获取的所述第二激活指令发送至所述内存;
其中,所述第一子阵列和所述第二子阵列均包括至少一行,所述至少一行中的任意一行包括至少一个子行,所述至少一个子行中的任意一子行包括至少一个存储单元,任意一存储单元与一个行号标识和一个列号标识相对应;
其中,所述第二子行包括的任意一存储单元所对应的列号标识与所述第一子行包括的任意一存储单元所对应的列号标识均不相同。
结合第五方面,在第一种可能的实现方式中,所述请求分发模块还用于:
获取第三内存访问请求,所述第三内存访问请求用于请求访问内存的第三子行,所述第三子行与所述第一子行处于同一行,所述第二子行包括的任意一存储单元所对应的列号标识与所述第三子行包括的任意一存储单元所对应的列号标识均不相同;
所述内存调度器具体用于:
合并所述第一内存访问请求和所述第三内存访问请求,生成第一激活指令。
结合第五方面,以及第五方面的第一种可能的实现方式,在第二种可能的实现方式中,所述请求分发模块还用于:
获取第四内存访问请求,所述第四内存访问请求用于请求访问内存的第四子行,所述第四子行与所述第二子行处于同一行,所述第四子行包括的任意一存储单元所对应的列号标识与所述第一子行包括的任意一存储单元所对应的列号标识均不相同;
所述内存调度器具体用于:
合并所述第二内存访问请求和所述第四内存访问请求,生成第二激活指令。
结合第五方面的第二种可能的实现方式,在第三种可能的实现方式中,所述第四子行包括的任意一存储单元所对应的列号标识与所述第三子行包括的任意一存储单元所对应的列号标识均不相同。
第六方面,提供一种内存模块,包括:
第一锁存器,用于接收内存控制器发送的第一激活指令,所述第一激活指令用于指示激活内存中的第一子行;
第一子行选择解码器,用于根据所述第一激活指令激活处于所述内存中的所述第一子行;
第二锁存器,用于接收所述内存控制器发送的第二激活指令,所述第二激活指令用于指示激活所述内存中的第二子行;
第二子行选择解码器,用于根据所述第二激活指令激活处于所述内存中的所述第二子行;
所述第一子行位于第一子阵列,所述第二子行处于第二子阵列;
所述第一子阵列和所述第二子阵列均包括至少一行,所述至少一行中的任意一行包括至少一个子行,所述至少一个子行中的任意一子行包括至少一个存储单元,任意一存储单元与一个行号标识和一个列号标识相对应;
所述第二子行包括的任意一存储单元所对应的列号标识与所述第一子行包括的任意一存储单元所对应的列号标识均不相同;
所述第一锁存器和所述第二锁存器均与用于进行数据缓存的全局缓冲器相连。
结合第六方面,在第一种可能的实现方式中,所述第一激活指令还用于指示激活内存中的第三子行,所述第三子行与所述第一子行处于同一行中;
所述第二子行包括的任意一存储单元所对应的列号标识与所述第三子行包括的任意一存储单元所对应的列号标识均不相同。
结合第六方面,以及第六方面的第一种可能的实现方式,在第二种可能的实现方式中,所述第二激活指令还用于指示激活内存中的第四子行,所述第四子行与所述第二子行处于同一行中;
所述第四子行包括的任意一存储单元所对应的列号标识与所述第一子行包括的任意一存储单元所对应的列号标识均不相同;
所述第四子行包括的任意一存储单元所对应的列号标识与所述第三子行包括的任意一存储单元所对应的列号标识均不相同。
第七方面,提供一种激活内存的方法,包括:
获取第一内存访问请求,所述第一内存访问请求用于请求访问内存的第一子行;
根据所述第一内存访问请求生成第一激活指令,并将所述第一激活指令发送至所述内存;
从内存待调度队列中查找第二内存访问请求,所述内存待调度队列包括多个内存访问请求,所述第二内存访问请求用于请求访问所述内存的第二子行,所述第一子行位于第一子阵列,所述第二子行处于第二子阵列;
根据所述第二内存访问请求生成第二激活指令,并将所述第二激活指令发送至所述内存;
所述第一子阵列和所述第二子阵列均包括至少一行,所述至少一行中的任意一行包括至少一个子行,所述至少一个子行中的任意一子行包括至少一个存储单元,任意一存储单元与一个行号标识和一个列号标识相对应;
所述第二子行包括的任意一存储单元所对应的列号标识与所述第一子行包括的任意一存储单元所对应的列号标识均不相同。
结合第七方面,在第一种可能的实现方式中,根据所述第一内存访问请求生成第一激活指令之前,还包括:
获取第三内存访问请求,所述第三内存访问请求用于请求访问内存的第三子行,所述第三子行与所述第一子行处于同一行,所述第二子行包括的任意一存储单元所对应的列号标识与所述第三子行包括的任意一存储单元所对应的列号标识均不相同;
根据所述第一内存访问请求生成第一激活指令,具体包括:
合并所述第一内存访问请求和所述第三内存访问请求,生成第一激活指令。
结合第七方面,以及第七方面的第一种可能的实现方式,在第二种可能的实现方式中,根据所述第二内存访问请求生成第二激活指令之前,还包括:
获取第四内存访问请求,所述第四内存访问请求用于请求访问内存的第四子行,所述第四子行与所述第二子行处于同一行,所述第四子行包括的任意一存储单元所对应的列号标识与所述第一子行包括的任意一存储单元所对应的列号标识均不相同;
根据所述第二内存访问请求生成第二激活指令,具体包括:
合并所述第二内存访问请求和所述第四内存访问请求,生成第二激活指令。
结合第七方面的第二种可能的实现方式,在第三种可能的实现方式中,所述第四子行包括的任意一存储单元所对应的列号标识与所述第三子行包括的任意一存储单元所对应的列号标识均不相同。
第八方面,提供一种激活内存的方法,包括:
接收内存控制器发送的第一激活指令,所述第一激活指令用于指示激活内存中的第一子行;
根据所述第一激活指令激活处于所述内存中的所述第一子行;
接收内存控制器发送的第二激活指令,所述第二激活指令用于指示激活内存中的第二子行;
根据所述第二激活指令激活处于所述内存中的所述第二子行;
所述第一子行位于第一子阵列,所述第二子行处于第二子阵列;所述第一子阵列和所述第二子阵列均包括至少一行,所述至少一行中的任意一行包括至少一个子行,所述至少一个子行中的任意一子行包括至少一个存储单元,任意一存储单元与一个行号标识和一个列号标识相对应;
所述第二子行包括的任意一存储单元所对应的列号标识与所述第一子行包括的任意一存储单元所对应的列号标识均不相同;
所述第一锁存器和所述第二锁存器均与用于进行数据缓存的全局缓冲器相连。
结合第八方面,在第一种可能的实现方式中,所述第一激活指令还用于指示激活内存中的第三子行,所述第三子行与所述第一子行处于同一行中;
所述第二子行包括的任意一存储单元所对应的列号标识与所述第三子行包括的任意一存储单元所对应的列号标识均不相同;
根据所述第一激活指令激活处于所述内存中的所述第一子行,具体包括:
由所述内存中的第一锁存器根据所述第一激活指令激活处于所述内存中的所述第一子行和所述第三子行。
结合第八方面,以及第八方面的第一种可能的实现方式,在第二种可能的实现方式中,所述第二激活指令还用于指示激活内存中的第四子行,所述第四子行与所述第二子行处于同一行中;
所述第四子行包括的任意一存储单元所对应的列号标识与所述第三子行包括的任意一存储单元所对应的列号标识均不相同;
根据所述第二激活指令激活处于所述内存中的所述第二子行,具体包括:
由所述内存中的第二锁存器根据所述第二激活指令激活处于所述内存中的所述第二子行和所述第四子行。
本发明有益效果如下:
现有技术中,不能同时对多个存储单元进行激活,而是每激活一个存储单元后,要对该存储单元进行预充电后,然后,才能对下一个存储单元进行激活操作,因此,目前激活内存的方法存在效率较低的缺陷,本发明实施例中,获取第一内存访问请求后,第一内存访问请求用于请求访问内存的第一子行,没有立即去激活第一子行,而是从内存待调度队列中查找第二内存访问请求,第二内存访问请求用于请求访问内存的第二子行,第一子行与第二子行处于内存的同一行中或者处于同一行中;然后,合并第一内存访问请求和第二内存访问请求,生成第一激活指令,第一激活指令用于指示激活内存中的第一子行和第二子行,并将第一激活指令发送至内存,这样,就可以同时将第一子行和第二子行激活,没必要在激活第一子行后,对第一子行所在的行预充电后才激活第二子行,因此,提高了激活内存的效率。
附图说明
图1A为本发明实施例中激活内存的一种流程图;
图1B为本发明实施例中子行选择向量的示意图;
图2为本发明实施例中激活内存的另一种流程图;
图3为本发明实施例中内存控制器的一种示意图;
图4为本发明实施例中内存模块的一种示意图;
图5A为本发明实施例中内存控制器的另一种示意图;
图5B为本发明实施例中内存的示意图;
图6为本发明实施例中内存模块的另一种示意图;
图7为本发明实施例中激活内存的另一种流程图;
图8为本发明实施例中激活内存的另一种流程图;
图9为本发明实施例中内存控制器的另一种示意图;
图10为本发明实施例中内存模块的另一种示意图;
图11为本发明实施例中激活内存的另一种流程图;
图12为本发明实施例中激活内存的另一种流程图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
另外,本文中术语“系统”和“网络”在本文中常被可互换使用。本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字母“/”,一般表示前后关联对象是一种“或”的关系。
下面结合说明书附图对本发明优选的实施方式进行详细说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明,并且在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
下面结合附图对本发明优选的实施方式进行详细说明。
参阅图1A所示,本发明实施例中,激活内存的一种流程如下:
步骤100:获取第一内存访问请求,第一内存访问请求用于请求访问内存的第一子行;
步骤110:从内存待调度队列中查找第二内存访问请求,内存待调度队列包括多个内存访问请求,第二内存访问请求用于请求访问内存的第二子行,第一子行与第二子行处于内存的同一行;
步骤120:合并第一内存访问请求和第二内存访问请求,生成第一激活指令,第一激活指令用于指示激活内存中的第一子行和第二子行;
步骤130:将第一激活指令发送至内存。
本发明实施例中,要识别待激活的第一子行和第二子行是否处于同一行,可以查看所处的行的行地址是否相同。
本发明实施例中,为了使内存知道哪些子行要激活,哪些子行不激活,在内存待调度队列中查找第二内存访问请求之后,还包括如下操作:
生成子行选择向量,并将子行选择向量发送至内存;
子行选择向量用于标识待激活的子行是第一子行和第二子行。
例如,处于一行中有N个子行,子行选择向量中的值分别与一个子行相对应,且该值用于表示相对应的子行是被激活还是不被激活,如图1B所示,子行选择向量中的值为0时,表示对应的子行被激活,子行选择向量中的值为1时,表示对应的子行不被激活,当然,也可以用其他形式来表示对应的子行是否被激活,在此不再进行一一详述。
本发明实施例中,在发送子行选择向量时,可以与第一激活指令同时发送,如,将子行选择向量携带在第一激活指令中,此时,在具体实现时,将子行选择向量和第一激活指令在内存总线上同时写入;或者,在发送子行选择向量时,可以在发送第一激活指令之前发送子行选择向量,此时,在具体实现时,在内存总线上第一激活指令写入之前通过总线写入子行选择向量。
本发明实施例中,在激活第一子行和第二子行后,把第一子行和第二子行中的数据取到对应的子行缓冲中去,对于不被选中的子行,不激活,不把对应的数据取到相应的子行缓冲中去。
在该方案中,在接收到第一内存访问请求时,不是立即去激活第一内存访问请求所请求访问的第一子行,而是对内存待调度队列中的内存访问请求进行调度,查找第二内存访问请求,将第一内存访问请求和第二内存访问请求合并为第一激活指令,并将第一激活指令发送至内存,这样,一次性可以激活第一子行和第二子行,提高了激活效率。
参阅图2所示,本发明实施例中,激活内存的另一种流程如下:
步骤200:接收内存控制器发送的第一激活指令,第一激活指令用于指示激活内存中的第一子行和内存中的第二子行,第一子行与第二子行均处于内存中的同一行中;
步骤210:根据第一激活指令激活处于内存中的第一子行和第二子行。
本发明实施例中,根据第一激活指令激活处于内存中的第一子行和第二子行之前,还包括如下操作:
接收内存控制器发送的子行选择向量,子行选择向量用于标识待激活的子行是第一子行和第二子行;
根据第一激活指令激活处于内存中的第一子行和第二子行时,可以采用如下方式:
根据第一激活指令中、子行选择向量激活处于内存的第一子行和第二子行。
基于上述相应方法的技术方案,参阅图3所示,本发明实施例提供一种内存控制器3000,该内存控制器3000包括请求分发模块30、内存调度器31、命令调度器32,其中:
请求分发模块30,用于获取第一内存访问请求,第一内存访问请求用于请求访问内存的第一子行;
内存调度器31,用于从内存待调度队列中查找第二内存访问请求,内存待调度队列包括多个内存访问请求,第二内存访问请求用于请求访问内存的第二子行,第一子行与第二子行处于内存的同一行;
内存调度器31还用于,合并第一内存访问请求和第二内存访问请求,生成第一激活指令,第一激活指令用于指示激活内存中的第一子行和第二子行;
命令调度器32,用于第一激活指令发送至内存。
本发明实施例中,内存调度器31还用于:
生成子行选择向量,并将子行选择向量发送至内存;
子行选择向量用于标识待激活的子行是第一子行和第二子行。
基于上述相应方法的技术方案,参阅图4所示,本发明实施例提供一种内存模块4000,该内存模块4000包括锁存器40、子行选择解码器41,其中:
锁存器40,用于接收内存控制器发送的第一激活指令,第一激活指令用于指示激活内存中的第一子行和内存中的第二子行,第一子行与第二子行均处于内存中的同一行中;
子行选择解码器41,用于根据从锁存器40获取的第一激活指令激活处于内存中的第一子行和第二子行。
锁存器40还用于:
接收内存控制器发送的子行选择向量,子行选择向量用于标识待激活的子行是第一子行和第二子行;
子行选择解码器41具体用于:
根据第一激活指令中、子行选择向量激活处于内存的第一子行和第二子行。
本发明实施例中,为了提高存储单元的资源的利用率,如图5A所示,提供一种内存控制器5000,该内存控制器5000包括请求分发模块50、内存调度器51、命令调度器52,其中:
请求分发模块50,用于获取第一内存访问请求,第一内存访问请求用于请求访问内存的第一子行;
内存调度器51,用于获取请求分发模块50获取到的第一内存访问请求,并根据第一内存访问请求生成第一激活指令;
命令调度器52,用于将从内存调度器51获取的第一激活指令发送至内存;
请求分发模块50还用于,从内存待调度队列中查找第二内存访问请求,内存待调度队列包括多个内存访问请求,第二内存访问请求用于请求访问内存的第二子行,第一子行位于第一子阵列,第二子行处于第二子阵列;
内存调度器51还用于,根据第二内存访问请求生成第二激活指令;
命令调度器52还用于,将从内存调度器51获取的第二激活指令发送至内存;
其中,第一子阵列和第二子阵列均包括至少一行,至少一行中的任意一行包括至少一个子行,至少一个子行中的任意一子行包括至少一个存储单元,任意一存储单元与一个行号标识和一个列号标识相对应;
其中,第二子行包括的任意一存储单元所对应的列号标识与第一子行包括的任意一存储单元所对应的列号标识均不相同。
本发明实施例中,子阵列、行、列、存储单元的关系如图5B所示。
进一步的,本发明实施例中,请求分发模块50还用于:
获取第三内存访问请求,第三内存访问请求用于请求访问内存的第三子行,第三子行与第一子行处于同一行,第二子行包括的任意一存储单元所对应的列号标识与第三子行包括的任意一存储单元所对应的列号标识均不相同;
内存调度器51具体用于:
合并第一内存访问请求和第三内存访问请求,生成第一激活指令。
本发明实施例中,进一步的,请求分发模块50还用于:
获取第四内存访问请求,第四内存访问请求用于请求访问内存的第四子行,第四子行与第二子行处于同一行,第四子行包括的任意一存储单元所对应的列号标识与第一子行包括的任意一存储单元所对应的列号标识均不相同;
内存调度器51具体用于:
合并第二内存访问请求和第四内存访问请求,生成第二激活指令。
本发明实施例中,可选的,第四子行包括的任意一存储单元所对应的列号标识与第三子行包括的任意一存储单元所对应的列号标识均不相同。
在该方案中,激活第一子行后,第二子行包括的任意一存储单元所对应的列号标识与第一子行包括的任意一存储单元所对应的列号标识均不相同时,可以将与第一子行处于不同子阵列的第二子行激活,因此,提高了资源的利用率。
本发明实施例中,为了提高存储单元的资源的利用率,如图6所示,内存模块6000,该内存模块6000包括第一锁存器60、第一子行选择解码器61、第二锁存器62、第二子行选择解码器63、其中:
第一锁存器60,用于接收内存控制器发送的第一激活指令,第一激活指令用于指示激活内存中的第一子行;
第一子行选择解码器61,用于根据第一激活指令激活处于内存中的第一子行;
第二锁存器62,用于接收内存控制器发送的第二激活指令,第二激活指令用于指示激活内存中的第二子行;
第二子行选择解码器63,用于根据第二激活指令激活处于内存中的第二子行;
第一子行位于第一子阵列,第二子行处于第二子阵列;
第一子阵列和第二子阵列均包括至少一行,至少一行中的任意一行包括至少一个子行,至少一个子行中的任意一子行包括至少一个存储单元,任意一存储单元与一个行号标识和一个列号标识相对应;
第二子行包括的任意一存储单元所对应的列号标识与第一子行包括的任意一存储单元所对应的列号标识均不相同;
第一锁存器60和第二锁存器62均与用于进行数据缓存的全局缓冲器相连。
本发明实施例中,进一步的,第一激活指令还用于指示激活内存中的第三子行,第三子行与第一子行处于同一行中;
第二子行包括的任意一存储单元所对应的列号标识与第三子行包括的任意一存储单元所对应的列号标识均不相同。
本发明实施例中,进一步的,第二激活指令还用于指示激活内存中的第四子行,第四子行与第二子行处于同一行中;
第四子行包括的任意一存储单元所对应的列号标识与第一子行包括的任意一存储单元所对应的列号标识均不相同;
第四子行包括的任意一存储单元所对应的列号标识与第三子行包括的任意一存储单元所对应的列号标识均不相同。
在该方案中,第一锁存器激活第一子行后,第二子行包括的任意一存储单元所对应的列号标识与第一子行包括的任意一存储单元所对应的列号标识均不相同时,第二锁存器可以将与第一子行处于不同子阵列的第二子行激活,因此,提高了资源的利用率。
参阅图7所示,本发明实施例中,激活内存的另一种流程如下:
步骤700:获取第一内存访问请求,第一内存访问请求用于请求访问内存的第一子行;
步骤710:根据第一内存访问请求生成第一激活指令,并将第一激活指令发送至内存;
步骤720:从内存待调度队列中查找第二内存访问请求,内存待调度队列包括多个内存访问请求,第二内存访问请求用于请求访问内存的第二子行,第一子行位于第一子阵列,第二子行处于第二子阵列;
步骤730:根据第二内存访问请求生成第二激活指令,并将第二激活指令发送至内存;
第一子阵列和第二子阵列均包括至少一行,至少一行中的任意一行包括至少一个子行,至少一个子行中的任意一子行包括至少一个存储单元,任意一存储单元与一个行号标识和一个列号标识相对应;
第二子行包括的任意一存储单元所对应的列号标识与第一子行包括的任意一存储单元所对应的列号标识均不相同。
本发明实施例中,进一步的,根据第一内存访问请求生成第一激活指令之前,还包括:
获取第三内存访问请求,第三内存访问请求用于请求访问内存的第三子行,第三子行与第一子行处于同一行,第二子行包括的任意一存储单元所对应的列号标识与第三子行包括的任意一存储单元所对应的列号标识均不相同;
根据第一内存访问请求生成第一激活指令,具体包括:
合并第一内存访问请求和第三内存访问请求,生成第一激活指令。
本发明实施例中,进一步的,根据第二内存访问请求生成第二激活指令之前,还包括:
获取第四内存访问请求,第四内存访问请求用于请求访问内存的第四子行,第四子行与第二子行处于同一行,第四子行包括的任意一存储单元所对应的列号标识与第一子行包括的任意一存储单元所对应的列号标识均不相同;
根据第二内存访问请求生成第二激活指令,具体包括:
合并第二内存访问请求和第四内存访问请求,生成第二激活指令。
本发明实施例中,可选的,第四子行包括的任意一存储单元所对应的列号标识与第三子行包括的任意一存储单元所对应的列号标识均不相同。
在该方案中,激活第一子行后,第二子行包括的任意一存储单元所对应的列号标识与第一子行包括的任意一存储单元所对应的列号标识均不相同时,可以将与第一子行处于不同子阵列的第二子行激活,因此,提高了资源的利用率。
参阅图8所示,本发明实施例中,激活内存的另一种流程如下:
步骤800:接收内存控制器发送的第一激活指令,第一激活指令用于指示激活内存中的第一子行;
步骤810:根据第一激活指令激活处于内存中的第一子行;
步骤820:接收内存控制器发送的第二激活指令,第二激活指令用于指示激活内存中的第二子行;
步骤830:根据第二激活指令激活处于内存中的第二子行;第一子行位于第一子阵列,第二子行处于第二子阵列;第一子阵列和第二子阵列均包括至少一行,至少一行中的任意一行包括至少一个子行,至少一个子行中的任意一子行包括至少一个存储单元,任意一存储单元与一个行号标识和一个列号标识相对应;第二子行包括的任意一存储单元所对应的列号标识与第一子行包括的任意一存储单元所对应的列号标识均不相同;第一锁存器和第二锁存器均与用于进行数据缓存的全局缓冲器相连。
本发明实施例中,进一步的,第一激活指令还用于指示激活内存中的第三子行,第三子行与第一子行处于同一行中;
第二子行包括的任意一存储单元所对应的列号标识与第三子行包括的任意一存储单元所对应的列号标识均不相同;
根据第一激活指令激活处于内存中的第一子行,具体包括:
由内存中的第一锁存器根据第一激活指令激活处于内存中的第一子行和第三子行。
本发明实施例中,可选的,第二激活指令还用于指示激活内存中的第四子行,第四子行与第二子行处于同一行中;
第四子行包括的任意一存储单元所对应的列号标识与第三子行包括的任意一存储单元所对应的列号标识均不相同;
根据第二激活指令激活处于内存中的第二子行,具体包括:
由内存中的第二锁存器根据第二激活指令激活处于内存中的第二子行和第四子行。
在该方案中,第一锁存器激活第一子行后,第二子行包括的任意一存储单元所对应的列号标识与第一子行包括的任意一存储单元所对应的列号标识均不相同时,第二锁存器可以将与第一子行处于不同子阵列的第二子行激活,因此,提高了资源的利用率。
上述图5、图6、图7、图8讲述的是激活第一子行后,与第一子行处于不同子阵列的第二子行包括的任意一存储单元所对应的列号标识与第一子行包括的任意一存储单元所对应的列号标识均不相同时,才可以将第二子行激活,进一步的,为了提高资源利用率,提出了如下方案:
本发明实施例中,为了提高存储单元的资源的利用率,如图9所示,提供一种内存控制器9000,该内存控制器9000包括请求分发模块90、内存调度器91、命令调度器92,其中:
请求分发模块90,用于获取第一内存访问请求,第一内存访问请求用于请求访问内存的第一子行;
内存调度器91,用于获取请求分发模块90获取到的第一内存访问请求,并根据第一内存访问请求生成第一激活指令;
命令调度器92,用于将从内存调度器91获取的第一激活指令发送至内存;
请求分发模块90还用于,从内存待调度队列中查找第二内存访问请求,内存待调度队列包括多个内存访问请求,第二内存访问请求用于请求访问内存的第二子行,第一子行位于第一子阵列,第二子行处于第二子阵列;
内存调度器91还用于,根据第二内存访问请求生成第二激活指令;
命令调度器92还用于,将从内存调度器91获取的第二激活指令发送至内存;
其中,第一子阵列和第二子阵列均包括至少一行,至少一行中的任意一行包括至少一个子行,至少一个子行中的任意一子行包括至少一个存储单元,任意一存储单元与一个行号标识和一个列号标识相对应;
其中,第二子行包括列号标识与第一子行包括的存储单元对应的列号标识相同的存储单元。
本发明实施例中,进一步的,请求分发模块90还用于:
获取第三内存访问请求,第三内存访问请求用于请求访问内存的第三子行,第三子行与第一子行处于同一行,第二子行包括列号标识与第三子行包括的存储单元对应的列号标识相同的存储单元;
内存调度器91具体用于:
合并第一内存访问请求和第三内存访问请求,生成第一激活指令。
本发明实施例中,进一步的,请求分发模块90还用于:
获取第四内存访问请求,第四内存访问请求用于请求访问内存的第四子行,第四子行与第二子行处于同一行,第四子行包括列号标识与第一子行包括的存储单元对应的列号标识相同的存储单元;
内存调度器91具体用于:
合并第二内存访问请求和第四内存访问请求,生成第二激活指令。
本发明实施例中,可选的,第四子行包括列号标识与第三子行包括的存储单元对应的列号标识相同的存储单元。
在该方案中,第一锁存器激活第一子行后,第二子行包括列号标识与第一子行包括的存储单元对应的列号标识相同的存储单元时,第二锁存器也可以将与第一子行处于不同子阵列的第二子行激活,因此,提高了资源的利用率。
本发明实施例中,为了提高存储单元的资源的利用率,如图10所示,内存模块10000,该内存模块10000包括第一锁存器100、第一子行选择解码器101、第二锁存器102、第二子行选择解码器103、其中:
第一锁存器100,用于接收内存控制器发送的第一激活指令,第一激活指令用于指示激活内存中的第一子行;
第一子行选择解码器101,用于根据第一激活指令激活处于内存中的第一子行;
第二锁存器102,用于接收内存控制器发送的第二激活指令,第二激活指令用于指示激活内存中的第二子行;
第二子行选择解码器103,用于根据第二激活指令激活处于内存中的第二子行;
第一子行位于第一子阵列,第二子行处于第二子阵列;
第一子阵列和第二子阵列均包括至少一行,至少一行中的任意一行包括至少一个子行,至少一个子行中的任意一子行包括至少一个存储单元,任意一存储单元与一个行号标识和一个列号标识相对应;
第二子行包括列号标识与第一子行包括的存储单元对应的列号标识相同的存储单元;
第一锁存器100和第二锁存器102均未与用于进行数据缓存的全局缓冲器相连。
本发明实施例中,进一步的,第一激活指令还用于指示激活内存中的第三子行,第三子行与第一子行处于同一行中;
第二子行包括列号标识与第三子行包括的存储单元对应的列号标识相同的存储单元。
本发明实施例中,进一步的,第二激活指令还用于指示激活内存中的第四子行,第四子行与第二子行处于同一行中;
第四子行包括列号标识与第一子行包括的存储单元对应的列号标识相同的存储单元;
第四子行包括列号标识与第三子行包括的存储单元对应的列号标识相同的存储单元。
在该方案中,第一锁存器激活第一子行后,第二子行包括列号标识与第一子行包括的存储单元对应的列号标识相同的存储单元时,第二锁存器也可以将与第一子行处于不同子阵列的第二子行激活,因此,提高了资源的利用率。
本发明实施例中,为了提高存储单元的资源的利用率,如图11所示,提供另一种激活内存的方法:
步骤1100:获取第一内存访问请求,第一内存访问请求用于请求访问内存的第一子行;
步骤1110:获取第一内存访问请求,并根据第一内存访问请求生成第一激活指令;
步骤1120:将第一激活指令发送至内存;
步骤1130:从内存待调度队列中查找第二内存访问请求,内存待调度队列包括多个内存访问请求,第二内存访问请求用于请求访问内存的第二子行,第一子行位于第一子阵列,第二子行处于第二子阵列;
步骤1140:根据第二内存访问请求生成第二激活指令;
步骤1150:将获取的第二激活指令发送至内存;
其中,第一子阵列和第二子阵列均包括至少一行,至少一行中的任意一行包括至少一个子行,至少一个子行中的任意一子行包括至少一个存储单元,任意一存储单元与一个行号标识和一个列号标识相对应;
其中,第二子行包括列号标识与第一子行包括的存储单元对应的列号标识相同的存储单元。
本发明实施例中,进一步的,根据第一内存访问请求生成第一激活指令之前,还包括:获取第三内存访问请求,第三内存访问请求用于请求访问内存的第三子行,第三子行与第一子行处于同一行,第二子行包括列号标识与第三子行包括的存储单元对应的列号标识相同的存储单元;
根据第一内存访问请求生成第一激活指令,可以采用如下方式:合并第一内存访问请求和第三内存访问请求,生成第一激活指令。
本发明实施例中,进一步的,根据第二内存访问请求生成第二激活指令之前,还包括:
获取第四内存访问请求,第四内存访问请求用于请求访问内存的第四子行,第四子行与第二子行处于同一行,第四子行包括列号标识与第一子行包括的存储单元对应的列号标识相同的存储单元;
根据第二内存访问请求生成第二激活指令时,可以为:合并第二内存访问请求和第四内存访问请求,生成第二激活指令。
本发明实施例中,可选的,第四子行包括列号标识与第三子行包括的存储单元对应的列号标识相同的存储单元。
在该方案中,第一锁存器激活第一子行后,第二子行包括列号标识与第一子行包括的存储单元对应的列号标识相同的存储单元时,第二锁存器也可以将与第一子行处于不同子阵列的第二子行激活,因此,提高了资源的利用率。
本发明实施例中,为了提高存储单元的资源的利用率,如图12所示,提供另一种激活内存的方法:
步骤1200:接收内存控制器发送的第一激活指令,第一激活指令用于指示激活内存中的第一子行;
步骤1210:根据第一激活指令激活处于内存中的第一子行;
步骤1220:接收内存控制器发送的第二激活指令,第二激活指令用于指示激活内存中的第二子行;
步骤1230:根据第二激活指令激活处于内存中的第二子行;
第一子行位于第一子阵列,第二子行处于第二子阵列;
第一子阵列和第二子阵列均包括至少一行,至少一行中的任意一行包括至少一个子行,至少一个子行中的任意一子行包括至少一个存储单元,任意一存储单元与一个行号标识和一个列号标识相对应;
第二子行包括列号标识与第一子行包括的存储单元对应的列号标识相同的存储单元;
第一锁存器和第二锁存器均未与用于进行数据缓存的全局缓冲器相连。
本发明实施例中,进一步的,第一激活指令还用于指示激活内存中的第三子行,第三子行与第一子行处于同一行中;
第二子行包括列号标识与第三子行包括的存储单元对应的列号标识相同的存储单元。
本发明实施例中,进一步的,第二激活指令还用于指示激活内存中的第四子行,第四子行与第二子行处于同一行中;
第四子行包括列号标识与第一子行包括的存储单元对应的列号标识相同的存储单元;
第四子行包括列号标识与第三子行包括的存储单元对应的列号标识相同的存储单元。
在该方案中,第一锁存器激活第一子行后,第二子行包括列号标识与第一子行包括的存储单元对应的列号标识相同的存储单元时,第二锁存器也可以将与第一子行处于不同子阵列的第二子行激活,因此,提高了资源的利用率。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明实施例进行各种改动和变型而不脱离本发明实施例的精神和范围。这样,倘若本发明实施例的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (22)
1.一种激活内存的方法,其特征在于,包括:
获取第一内存访问请求,所述第一内存访问请求用于请求访问内存的第一子行;
从内存待调度队列中查找第二内存访问请求,所述内存待调度队列包括多个内存访问请求,所述第二内存访问请求用于请求访问所述内存的第二子行,所述第一子行与所述第二子行处于所述内存的同一行;
合并所述第一内存访问请求和所述第二内存访问请求,生成第一激活指令,所述第一激活指令用于指示激活所述内存中的所述第一子行和所述第二子行;
将所述第一激活指令发送至所述内存。
2.如权利要求1所述的方法,其特征在于,从内存待调度队列中查找第二内存访问请求之后,还包括:
生成子行选择向量,并将所述子行选择向量发送至所述内存;
所述子行选择向量用于标识待激活的子行是所述第一子行和所述第二子行。
3.一种激活内存的方法,其特征在于,包括:
接收内存控制器发送的第一激活指令,所述第一激活指令用于指示激活内存中的第一子行和内存中的第二子行,所述第一子行与所述第二子行均处于所述内存中的同一行中;
根据所述第一激活指令激活处于所述内存中的所述第一子行和所述第二子行。
4.如权利要求3所述的方法,其特征在于,根据所述第一激活指令激活处于所述内存中的所述第一子行和所述第二子行之前,还包括:
接收所述内存控制器发送的子行选择向量,所述子行选择向量用于标识待激活的子行是所述第一子行和所述第二子行;
根据所述第一激活指令激活处于所述内存中的所述第一子行和所述第二子行,具体包括:
根据所述第一激活指令中、所述子行选择向量激活处于所述内存的所述第一子行和所述第二子行。
5.一种内存控制器,其特征在于,包括:
请求分发模块,用于获取第一内存访问请求,所述第一内存访问请求用于请求访问内存的第一子行;
内存调度器,用于从内存待调度队列中查找第二内存访问请求,所述内存待调度队列包括多个内存访问请求,所述第二内存访问请求用于请求访问所述内存的第二子行,所述第一子行与所述第二子行处于所述内存的同一行;
所述内存调度器还用于,合并所述第一内存访问请求和所述第二内存访问请求,生成第一激活指令,所述第一激活指令用于指示激活所述内存中的所述第一子行和所述第二子行;
命令调度器,用于所述第一激活指令发送至所述内存。
6.如权利要求5所述的内存控制器,其特征在于,所述内存调度器还用于:
生成子行选择向量,并将所述子行选择向量发送至所述内存;
所述子行选择向量用于标识待激活的子行是所述第一子行和所述第二子行。
7.一种内存模块,其特征在于,包括:
锁存器,用于接收内存控制器发送的第一激活指令,所述第一激活指令用于指示激活内存中的第一子行和内存中的第二子行,所述第一子行与所述第二子行均处于所述内存中的同一行中;
子行选择解码器,用于根据从所述锁存器获取的所述第一激活指令激活处于所述内存中的所述第一子行和所述第二子行。
8.如权利要求7所述的内存模块,其特征在于,所述锁存器还用于:
接收所述内存控制器发送的子行选择向量,所述子行选择向量用于标识待激活的子行是所述第一子行和所述第二子行;
所述子行选择解码器具体用于:
根据所述第一激活指令中、所述子行选择向量激活处于所述内存的所述第一子行和所述第二子行。
9.一种内存控制器,其特征在于,包括:
请求分发模块,用于获取第一内存访问请求,所述第一内存访问请求用于请求访问内存的第一子行;
内存调度器,用于获取所述请求分发模块获取到的第一内存访问请求,并根据所述第一内存访问请求生成第一激活指令;
命令调度器,用于将从所述内存调度器获取的所述第一激活指令发送至所述内存;
所述请求分发模块还用于,从所述内存待调度队列中查找第二内存访问请求,所述内存待调度队列包括多个内存访问请求,所述第二内存访问请求用于请求访问所述内存的第二子行,所述第一子行位于第一子阵列,所述第二子行处于第二子阵列;
所述内存调度器还用于,根据所述第二内存访问请求生成第二激活指令;
所述命令调度器还用于,将从所述内存调度器获取的所述第二激活指令发送至所述内存;
其中,所述第一子阵列和所述第二子阵列均包括至少一行,所述至少一行中的任意一行包括至少一个子行,所述至少一个子行中的任意一子行包括至少一个存储单元,任意一存储单元与一个行号标识和一个列号标识相对应;
其中,所述第二子行包括的任意一存储单元所对应的列号标识与所述第一子行包括的任意一存储单元所对应的列号标识均不相同。
10.如权利要求9所述的内存控制器,其特征在于,所述请求分发模块还用于:
获取第三内存访问请求,所述第三内存访问请求用于请求访问内存的第三子行,所述第三子行与所述第一子行处于同一行,所述第二子行包括的任意一存储单元所对应的列号标识与所述第三子行包括的任意一存储单元所对应的列号标识均不相同;
所述内存调度器具体用于:
合并所述第一内存访问请求和所述第三内存访问请求,生成第一激活指令。
11.如权利要求10所述的内存控制器,其特征在于,所述请求分发模块还用于:
获取第四内存访问请求,所述第四内存访问请求用于请求访问内存的第四子行,所述第四子行与所述第二子行处于同一行,所述第四子行包括的任意一存储单元所对应的列号标识与所述第一子行包括的任意一存储单元所对应的列号标识均不相同;
所述内存调度器具体用于:
合并所述第二内存访问请求和所述第四内存访问请求,生成第二激活指令。
12.如权利要求11所述的内存控制器,其特征在于,所述第四子行包括的任意一存储单元所对应的列号标识与所述第三子行包括的任意一存储单元所对应的列号标识均不相同。
13.一种内存模块,其特征在于,包括:
第一锁存器,用于接收内存控制器发送的第一激活指令,所述第一激活指令用于指示激活内存中的第一子行;
第一子行选择解码器,用于根据所述第一激活指令激活处于所述内存中的所述第一子行;
第二锁存器,用于接收所述内存控制器发送的第二激活指令,所述第二激活指令用于指示激活所述内存中的第二子行;
第二子行选择解码器,用于根据所述第二激活指令激活处于所述内存中的所述第二子行;
所述第一子行位于第一子阵列,所述第二子行处于第二子阵列;
所述第一子阵列和所述第二子阵列均包括至少一行,所述至少一行中的任意一行包括至少一个子行,所述至少一个子行中的任意一子行包括至少一个存储单元,任意一存储单元与一个行号标识和一个列号标识相对应;
所述第二子行包括的任意一存储单元所对应的列号标识与所述第一子行包括的任意一存储单元所对应的列号标识均不相同;
所述第一锁存器和所述第二锁存器均与用于进行数据缓存的全局缓冲器相连。
14.如权利要求13所述的内存模块,其特征在于,所述第一激活指令还用于指示激活内存中的第三子行,所述第三子行与所述第一子行处于同一行中;
所述第二子行包括的任意一存储单元所对应的列号标识与所述第三子行包括的任意一存储单元所对应的列号标识均不相同。
15.如权利要求14所述的内存模块,其特征在于,所述第二激活指令还用于指示激活内存中的第四子行,所述第四子行与所述第二子行处于同一行中;
所述第四子行包括的任意一存储单元所对应的列号标识与所述第一子行包括的任意一存储单元所对应的列号标识均不相同;
所述第四子行包括的任意一存储单元所对应的列号标识与所述第三子行包括的任意一存储单元所对应的列号标识均不相同。
16.一种激活内存的方法,其特征在于,包括:
获取第一内存访问请求,所述第一内存访问请求用于请求访问内存的第一子行;
根据所述第一内存访问请求生成第一激活指令,并将所述第一激活指令发送至所述内存;
从内存待调度队列中查找第二内存访问请求,所述内存待调度队列包括多个内存访问请求,所述第二内存访问请求用于请求访问所述内存的第二子行,所述第一子行位于第一子阵列,所述第二子行处于第二子阵列;
根据所述第二内存访问请求生成第二激活指令,并将所述第二激活指令发送至所述内存;
所述第一子阵列和所述第二子阵列均包括至少一行,所述至少一行中的任意一行包括至少一个子行,所述至少一个子行中的任意一子行包括至少一个存储单元,任意一存储单元与一个行号标识和一个列号标识相对应;
所述第二子行包括的任意一存储单元所对应的列号标识与所述第一子行包括的任意一存储单元所对应的列号标识均不相同。
17.如权利要求16所述的方法,其特征在于,根据所述第一内存访问请求生成第一激活指令之前,还包括:
获取第三内存访问请求,所述第三内存访问请求用于请求访问内存的第三子行,所述第三子行与所述第一子行处于同一行,所述第二子行包括的任意一存储单元所对应的列号标识与所述第三子行包括的任意一存储单元所对应的列号标识均不相同;
根据所述第一内存访问请求生成第一激活指令,具体包括:
合并所述第一内存访问请求和所述第三内存访问请求,生成第一激活指令。
18.如权利要求17所述的方法,其特征在于,根据所述第二内存访问请求生成第二激活指令之前,还包括:
获取第四内存访问请求,所述第四内存访问请求用于请求访问内存的第四子行,所述第四子行与所述第二子行处于同一行,所述第四子行包括的任意一存储单元所对应的列号标识与所述第一子行包括的任意一存储单元所对应的列号标识均不相同;
根据所述第二内存访问请求生成第二激活指令,具体包括:
合并所述第二内存访问请求和所述第四内存访问请求,生成第二激活指令。
19.如权利要求18所述的方法,其特征在于,所述第四子行包括的任意一存储单元所对应的列号标识与所述第三子行包括的任意一存储单元所对应的列号标识均不相同。
20.一种激活内存的方法,其特征在于,包括:
接收内存控制器发送的第一激活指令,所述第一激活指令用于指示激活内存中的第一子行;
根据所述第一激活指令激活处于所述内存中的所述第一子行;
接收内存控制器发送的第二激活指令,所述第二激活指令用于指示激活内存中的第二子行;
根据所述第二激活指令激活处于所述内存中的所述第二子行;
所述第一子行位于第一子阵列,所述第二子行处于第二子阵列;所述第一子阵列和所述第二子阵列均包括至少一行,所述至少一行中的任意一行包括至少一个子行,所述至少一个子行中的任意一子行包括至少一个存储单元,任意一存储单元与一个行号标识和一个列号标识相对应;
所述第二子行包括的任意一存储单元所对应的列号标识与所述第一子行包括的任意一存储单元所对应的列号标识均不相同;
第一锁存器和第二锁存器均与用于进行数据缓存的全局缓冲器相连。
21.如权利要求20所述的方法,其特征在于,所述第一激活指令还用于指示激活内存中的第三子行,所述第三子行与所述第一子行处于同一行中;
所述第二子行包括的任意一存储单元所对应的列号标识与所述第三子行包括的任意一存储单元所对应的列号标识均不相同;
根据所述第一激活指令激活处于所述内存中的所述第一子行,具体包括:
由所述内存中的第一锁存器根据所述第一激活指令激活处于所述内存中的所述第一子行和所述第三子行。
22.如权利要求21所述的方法,其特征在于,所述第二激活指令还用于指示激活内存中的第四子行,所述第四子行与所述第二子行处于同一行中;
所述第四子行包括的任意一存储单元所对应的列号标识与所述第三子行包括的任意一存储单元所对应的列号标识均不相同;
根据所述第二激活指令激活处于所述内存中的所述第二子行,具体包括:
由所述内存中的第二锁存器根据所述第二激活指令激活处于所述内存中的所述第二子行和所述第四子行。
Priority Applications (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410707487.7A CN105701040B (zh) | 2014-11-28 | 2014-11-28 | 一种激活内存的方法及装置 |
KR1020177017450A KR101992729B1 (ko) | 2014-11-28 | 2015-11-28 | 메모리 활성화 방법 및 장치 |
EP15862610.1A EP3217406B1 (en) | 2014-11-28 | 2015-11-28 | Memory management method and device, and memory controller |
JP2017528499A JP6395937B2 (ja) | 2014-11-28 | 2015-11-28 | メモリ活性化方法および装置 |
PCT/CN2015/095886 WO2016082800A1 (zh) | 2014-11-28 | 2015-11-28 | 一种内存管理方法、装置以及内存控制器 |
US15/607,360 US10127955B2 (en) | 2014-11-28 | 2017-05-26 | Memory activation method and apparatus, and memory controller |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410707487.7A CN105701040B (zh) | 2014-11-28 | 2014-11-28 | 一种激活内存的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105701040A CN105701040A (zh) | 2016-06-22 |
CN105701040B true CN105701040B (zh) | 2018-12-07 |
Family
ID=56073643
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410707487.7A Active CN105701040B (zh) | 2014-11-28 | 2014-11-28 | 一种激活内存的方法及装置 |
Country Status (6)
Country | Link |
---|---|
US (1) | US10127955B2 (zh) |
EP (1) | EP3217406B1 (zh) |
JP (1) | JP6395937B2 (zh) |
KR (1) | KR101992729B1 (zh) |
CN (1) | CN105701040B (zh) |
WO (1) | WO2016082800A1 (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10394456B2 (en) | 2017-08-23 | 2019-08-27 | Micron Technology, Inc. | On demand memory page size |
US11210019B2 (en) * | 2017-08-23 | 2021-12-28 | Micron Technology, Inc. | Memory with virtual page size |
US10522210B2 (en) * | 2017-12-14 | 2019-12-31 | Micron Technology, Inc. | Apparatuses and methods for subarray addressing |
US10332586B1 (en) * | 2017-12-19 | 2019-06-25 | Micron Technology, Inc. | Apparatuses and methods for subrow addressing |
US11152039B2 (en) | 2019-07-11 | 2021-10-19 | Micron Technology, Inc. | Input/output line sharing for memory arrays |
US11119658B2 (en) | 2019-11-01 | 2021-09-14 | Micron Technology, Inc. | Capacity expansion channels for memory sub-systems |
MX2022002781A (es) | 2019-11-28 | 2022-10-07 | Sekisui Chemical Co Ltd | Pelicula intermedia para vidrio laminado, vidrio laminado, y sistema de visualizacion de imagenes. |
US11600312B1 (en) * | 2021-08-16 | 2023-03-07 | Micron Technology, Inc. | Activate commands for memory preparation |
AU2021470113A1 (en) * | 2021-10-20 | 2024-01-18 | Paypal, Inc. | Database management using sort keys |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101788961A (zh) * | 2009-01-23 | 2010-07-28 | 英业达集团(天津)电子技术有限公司 | 对块设备进行异步请求的数据访问方法 |
CN102999441A (zh) * | 2012-11-15 | 2013-03-27 | 清华大学 | 一种细粒度内存访问的方法 |
WO2014178846A1 (en) * | 2013-04-30 | 2014-11-06 | Hewlett-Packard Development Company, L.P. | Coalescing memory access requests |
Family Cites Families (30)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6161208A (en) * | 1994-05-06 | 2000-12-12 | International Business Machines Corporation | Storage subsystem including an error correcting cache and means for performing memory to memory transfers |
US6226722B1 (en) * | 1994-05-19 | 2001-05-01 | International Business Machines Corporation | Integrated level two cache and controller with multiple ports, L1 bypass and concurrent accessing |
JP2845187B2 (ja) * | 1995-12-21 | 1999-01-13 | 日本電気株式会社 | 半導体記憶装置 |
US6339822B1 (en) * | 1998-10-02 | 2002-01-15 | Advanced Micro Devices, Inc. | Using padded instructions in a block-oriented cache |
US6618390B1 (en) * | 1999-05-21 | 2003-09-09 | Advanced Micro Devices, Inc. | Method and apparatus for maintaining randomly accessible free buffer information for a network switch |
US6741256B2 (en) * | 2001-08-27 | 2004-05-25 | Sun Microsystems, Inc. | Predictive optimizer for DRAM memory |
US6683816B2 (en) * | 2001-10-05 | 2004-01-27 | Hewlett-Packard Development Company, L.P. | Access control system for multi-banked DRAM memory |
US6865697B2 (en) * | 2002-01-18 | 2005-03-08 | International Business Machines Corporation | Method and apparatus for reduced error checking of data received by a server from a client |
US6877046B2 (en) * | 2002-03-29 | 2005-04-05 | International Business Machines Corporation | Method and apparatus for memory with embedded processor |
US7103730B2 (en) * | 2002-04-09 | 2006-09-05 | Intel Corporation | Method, system, and apparatus for reducing power consumption of a memory |
CN100350401C (zh) * | 2002-05-24 | 2007-11-21 | 皇家飞利浦电子股份有限公司 | 计算机存储器设备和计算机设备 |
US7017005B2 (en) * | 2002-08-28 | 2006-03-21 | Hywire Ltd. | Implementation of a content addressable memory using a RAM-cell structure |
US7050351B2 (en) * | 2003-12-30 | 2006-05-23 | Intel Corporation | Method and apparatus for multiple row caches per bank |
US7272699B2 (en) | 2004-11-12 | 2007-09-18 | International Business Machines Corporation | Flexible sub-column to sub-row mapping for sub-page activation in XDR™ DRAMs |
KR100725100B1 (ko) * | 2005-12-22 | 2007-06-04 | 삼성전자주식회사 | 포트간 데이터 전송기능을 갖는 멀티패쓰 억세스블 반도체메모리 장치 |
US7724593B2 (en) | 2006-07-07 | 2010-05-25 | Rao G R Mohan | Memories with front end precharge |
ATE479186T1 (de) * | 2006-07-07 | 2010-09-15 | S Aqua Semiconductor Llc | Speichereinheiten mit front-end-vorladung |
US8543788B2 (en) * | 2007-06-06 | 2013-09-24 | Aptina Imaging Corporation | Conformal rolling buffer apparatus, systems, and methods |
US8001338B2 (en) * | 2007-08-21 | 2011-08-16 | Microsoft Corporation | Multi-level DRAM controller to manage access to DRAM |
JP2009157887A (ja) * | 2007-12-28 | 2009-07-16 | Nec Corp | ロードストアキューの制御方法及びその制御システム |
US8130576B2 (en) | 2008-06-30 | 2012-03-06 | Intel Corporation | Memory throughput increase via fine granularity of precharge management |
KR101506330B1 (ko) * | 2008-09-23 | 2015-03-27 | 삼성전자 주식회사 | 데이터 강건성 관리장치와, 데이터 저장 방법 및 데이터 복구 방법 |
US20110093367A1 (en) * | 2009-10-20 | 2011-04-21 | At&T Intellectual Property I, L.P. | Method, apparatus, and computer product for centralized account provisioning |
WO2011078812A1 (en) * | 2009-12-22 | 2011-06-30 | Bazlamacci Cuneyt F | Systolic array architecture for fast ip lookup |
WO2011094437A2 (en) | 2010-01-28 | 2011-08-04 | Hewlett-Packard Development Company, L.P. | Memory access methods and apparatus |
US9104713B2 (en) * | 2011-10-05 | 2015-08-11 | International Business Machines Corporation | Managing a temporal key property in a database management system |
KR20130065957A (ko) * | 2011-12-12 | 2013-06-20 | 숭실대학교산학협력단 | 메모리 제어장치 및 제어방법, 그리고 그 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 기록매체 |
US20140173170A1 (en) * | 2012-12-14 | 2014-06-19 | Hewlett-Packard Development Company, L.P. | Multiple subarray memory access |
US9367449B2 (en) * | 2013-09-11 | 2016-06-14 | Owtware Holdings Limited, BVI | Hierarchical garbage collection in an object relational database system |
CN103927268B (zh) * | 2014-04-08 | 2017-02-15 | 中国科学院微电子研究所 | 一种存储器的访问方法及装置 |
-
2014
- 2014-11-28 CN CN201410707487.7A patent/CN105701040B/zh active Active
-
2015
- 2015-11-28 KR KR1020177017450A patent/KR101992729B1/ko active IP Right Grant
- 2015-11-28 WO PCT/CN2015/095886 patent/WO2016082800A1/zh active Application Filing
- 2015-11-28 EP EP15862610.1A patent/EP3217406B1/en active Active
- 2015-11-28 JP JP2017528499A patent/JP6395937B2/ja active Active
-
2017
- 2017-05-26 US US15/607,360 patent/US10127955B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101788961A (zh) * | 2009-01-23 | 2010-07-28 | 英业达集团(天津)电子技术有限公司 | 对块设备进行异步请求的数据访问方法 |
CN102999441A (zh) * | 2012-11-15 | 2013-03-27 | 清华大学 | 一种细粒度内存访问的方法 |
WO2014178846A1 (en) * | 2013-04-30 | 2014-11-06 | Hewlett-Packard Development Company, L.P. | Coalescing memory access requests |
Non-Patent Citations (1)
Title |
---|
一种减少内存访问延时的方法;李文 等;《计算机工程》;20060215;第32卷(第3期);242-244 * |
Also Published As
Publication number | Publication date |
---|---|
CN105701040A (zh) | 2016-06-22 |
WO2016082800A1 (zh) | 2016-06-02 |
KR20170087948A (ko) | 2017-07-31 |
KR101992729B1 (ko) | 2019-06-25 |
US20170263295A1 (en) | 2017-09-14 |
EP3217406A4 (en) | 2017-12-06 |
JP6395937B2 (ja) | 2018-09-26 |
JP2018500667A (ja) | 2018-01-11 |
US10127955B2 (en) | 2018-11-13 |
EP3217406B1 (en) | 2022-04-06 |
EP3217406A1 (en) | 2017-09-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105701040B (zh) | 一种激活内存的方法及装置 | |
CN106294233B (zh) | 一种直接内存访问的传输控制方法及装置 | |
CN105912396B (zh) | 用于动态地分配可配置计算资源的资源的技术 | |
CN106164881B (zh) | 异构计算系统中的工作窃取 | |
CN103309738B (zh) | 用户作业调度方法及装置 | |
CN103999051B (zh) | 用于着色器核心中着色器资源分配的策略 | |
CN104025185B (zh) | 用于使用gpu控制器来预加载缓存的机制 | |
US20130212594A1 (en) | Method of optimizing performance of hierarchical multi-core processor and multi-core processor system for performing the method | |
CN105893303B (zh) | 晶圆级封装件 | |
CN110178118A (zh) | 硬件实现的负载平衡 | |
CN106502782A (zh) | 异构计算系统及其方法 | |
CN104980518B (zh) | 多学习主体并行训练模型的方法、装置和系统 | |
CN104426790B (zh) | 对多队列的缓存空间进行分配控制的方法及装置 | |
CN102135949A (zh) | 基于图形处理器的计算网络系统、方法及装置 | |
CN101741650B (zh) | 基于QoS预测的服务组合方法及装置 | |
CN104615684B (zh) | 一种海量数据通信并发处理方法及系统 | |
CN107250984A (zh) | 用于利用工作窃取支持进行有效同步屏障的技术 | |
CN110308982A (zh) | 一种共享内存复用方法及装置 | |
TWI687818B (zh) | 用於平行計算之方法、處理器、電腦程式產品及計算單元 | |
CN108205469A (zh) | 一种基于MapReduce的资源分配方法及服务器 | |
Zheng et al. | Grus: Enabling latency SLOs for GPU-accelerated NFV systems | |
CN110011936A (zh) | 基于多核处理器的线程调度方法及装置 | |
US20110276979A1 (en) | Non-Real Time Thread Scheduling | |
CN104750614B (zh) | 用于管理存储器的方法和装置 | |
CN109298923B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right |
Effective date of registration: 20200420 Address after: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen Patentee after: HUAWEI TECHNOLOGIES Co.,Ltd. Address before: 301, A building, room 3, building 301, foreshore Road, No. 310052, Binjiang District, Zhejiang, Hangzhou Patentee before: Huawei Technologies Co.,Ltd. |
|
TR01 | Transfer of patent right |