CN107783909A - 一种内存地址总线扩展方法及装置 - Google Patents
一种内存地址总线扩展方法及装置 Download PDFInfo
- Publication number
- CN107783909A CN107783909A CN201610716253.8A CN201610716253A CN107783909A CN 107783909 A CN107783909 A CN 107783909A CN 201610716253 A CN201610716253 A CN 201610716253A CN 107783909 A CN107783909 A CN 107783909A
- Authority
- CN
- China
- Prior art keywords
- data
- column address
- access request
- information
- address information
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
- G06F12/0638—Combination of memories, e.g. ROM and RAM such as to permit replacement or supplementing of words in one module by words in another module
-
- 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/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4204—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
- G06F13/4234—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1015—Read-write modes for single port memories, i.e. having either a random port or a serial port
- G11C7/1018—Serial bit line access mode, e.g. using bit line address shift registers, bit line address counters, bit line burst counters
- G11C7/1021—Page serial bit line access mode, i.e. using an enabled row address stroke pulse with its associated word line address and a sequence of enabled column address stroke pulses each with its associated bit line address
- G11C7/1024—Extended data output [EDO] mode, i.e. keeping output buffer enabled during an extended period of time
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Bus Control (AREA)
Abstract
本发明实施例提供一种内存地址总线扩展方法及装置,涉及计算机技术领域。该方法包括:处理器向本地控制器发送第一数据访问请求,第一数据访问请求包含第一目标数据的第一拍列地址信息,第一数据访问请求为写数据指令或者读数据指令;处理器向本地控制器发送第二数据访问请求,第二数据访问请求包含第一目标数据的第二拍列地址信息,第一拍列地址信息和第二拍列地址信息用于指示第一目标数据的地址,第二数据访问请求为写数据指令或者读数据指令,且与第一数据访问请求的指令类型相同;若第一数据访问请求为读数据指令,处理器接收本地控制器发送的第一目标数据;若第一数据访问请求为写数据指令,处理器向本地控制器发送第一目标数据。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种内存地址总线扩展方法及装置。
背景技术
随着计算机技术的快速发展,计算机系统对于大容量内存的需求越来越强烈,现有的基于内存总线的扩容方法如图1所示,处理器通过内存总线接口连接到本地控制器,然后由本地控制器进行大容量的内存扩展。其中,本地控制器由ASIC/FPGA实现,且可以接收来自处理器的内存访问请求,并通过内置的内存控制器,将命令转化为对下级DRAM或NVM的访存。
目前,在基于内存总线的扩容方法下,处理器访问本地控制器控制下的内存时,通常向本地控制器发送一条访问指令,该访问指令携带访问数据的地址,该地址通过处理器与本地控制器之间固定的地址总线位宽来传输,当本地控制器接收到该条访问指令时,根据访问数据的地址从内存中将访问数据取回内部缓冲区,之后,本地控制器将该访问数据从内部缓冲区返回给处理器。
但是,处理器在通过上述方法访问内存时,并未对内存地址总线进行扩展,由于每一次传输地址时所使用的地址总线位宽是一定的,当扩展的内存容量较大,对应的扩展后的地址也会变大,若扩充后的大地址超出了地址线位宽所表示的范围,则基于现有的地址线位宽,无法通过标准的内存总线接口来传输扩充后的大地址。
发明内容
本发明的实施例提供一种内存地址总线扩展方法及装置,解决了现有技术中在对内存容量进行扩展时未对内存地址总线进行扩展的问题。
为达到上述目的,本发明的实施例采用如下技术方案:
第一方面,提供一种内存地址总线扩展方法,该方法包括:处理器向本地控制器发送为写数据指令或者读数据指令的第一数据访问请求,第一数据访问请求包含第一目标数据的第一拍列地址信息;处理器向本地控制器发送第二数据访问请求,第二数据访问请求包含第一目标数据的第二拍列地址信息,第一拍列地址信息和第二拍列地址信息用于指示第一目标数据的地址;其中,第二数据访问请求为写数据指令或者读数据指令,且第二数据访问请求与第一数据访问请求的指令类型相同;若第一数据访问请求为读数据指令,处理器接收本地控制器发送的第一目标数据;若第一数据访问请求为写数据指令,处理器向本地控制器发送第一目标数据。上述技术方案中,处理器通过发送第一数据访问请求和第二数据访问请求来完成一次完整的内存访问,即每一次发送的数据访问请求携带一拍列地址信息,通过两拍列地址信息来指示内存访问时的具体地址,从而可以通过现有的内存总线接口传输内存扩展后的大地址,实现内存地址总线的扩展。
在一种可能的实现方式中,处理器与本地控制器之间用于传输地址信息的地址线位宽为N,该方法还包括:当第一目标数据的第一拍列地址信息与第二拍列地址信息所占用的地址线位宽之和M小于2N时,处理器向本地控制器发送其他信息,其他信息占用2N-M位地址线位宽。上述可能的技术方案中,在无需修改本地控制器的情况下,可以利用扩展的地址总线来传输其他信息。
在一种可能的实现方式中,第一拍列地址信息和第二拍列地址信息分别包括指示信息和拍列地址;其中,当指示信息为第一指示信息时,指示信息用于指示拍列地址为第一拍列地址;当指示信息为第二指示信息时,指示信息用于指示拍列地址为第二拍列地址。上述可能的技术方案中,可以通过指示信息来指示第一目标数据的两拍列地址,从而根据两拍列地址来确定第一目标数据的地址,实现内存地址总线的扩展。
在一种可能的实现方式中,第一拍列地址信息和第二拍列地址信息还分别包括用于指示数据访问请求顺序的请求标识,且第一目标数据的第一拍列地址信息和第一目标数据的第二拍列地址信息包括的请求标识相同。上述可能的技术方案中,在存在并发的多个目标数据的数据访问请求时,可以根据请求标识确定多个目标数据的数据访问请求的顺序,从而可以有效地保证访问多个目标数据的访问。
在一种可能的实现方式中,若第一数据访问请求为读数据指令,处理器接收本地控制器发送的第一目标数据之前,该方法还包括:处理器接收本地控制器发送的用于指示本地控制器从内存中取出第一目标数据的第一确认信息;处理器根据第一确认信息向本地控制器发送用于获取第一目标数据的第一数据获取指令。上述可能的技术方案中,可以通过第一确认信息使处理器在恰当的时间发送第一数据获取指令,从而有效的获取第一目标数据,减小了不必要的数据获取指令的发送。
在一种可能的实现方式中,当第一目标数据的第一拍列地址信息与第二目标数据的第一拍列地址相同时,该方法还包括:处理器向本地控制器发送第三数据访问请求,第三数据访问请求包含第二目标数据的第二拍列地址信息,第一目标数据的第一拍列地址信息与第二目标数据的第二拍列地址信息用于指示第二目标数据的地址;第三数据访问请求为写数据指令或者读数据指令,且第三数据访问请求与第一数据访问请求的指令类型相同;其中,第二目标数据的第二拍列地址信息包括指示信息和拍列地址。上述可能的技术方案中,在大量连续地址访存时,可以将第一拍列地址信息作为虚拟行地址与其后的请求共享,从而节省了总线带宽,进一步的扩展了内存地址总线。
在一种可能的实现方式中,处理器向本地控制器发送第三数据访问请求之后,该方法还包括:若第一数据访问请求为读数据指令,处理器接收本地控制器发送的第二目标数据;若第一数据访问请求为写数据指令,处理器向本地控制器发送第二目标数据。
第二方面,提供一种内存地址总线扩展方法,该方法包括:本地控制器接收处理器发送的第一数据访问请求,第一数据访问请求包含第一目标数据的第一拍列地址信息,第一数据访问请求为写数据指令或者读数据指令;本地控制器接收处理器发送的第二数据访问请求,第二数据访问请求包含第一目标数据的第二拍列地址信息,第一拍列地址信息和第二拍列地址信息用于指示第一目标数据的地址;其中,第二数据访问请求为写数据指令或者读数据指令,且第二数据访问请求与第一数据访问请求的指令类型相同;若第一数据访问请求为读数据指令,本地控制器根据第一目标数据的第一拍列地址信息和第二拍列地址信息,从内存中获取第一目标数据,并将第一目标数据发送给处理器;若第一数据访问请求为写数据指令,本地控制器接收处理器发送的第一目标数据,并根据第一目标数据的第一拍列地址信息和第二拍列地址信息,将第一目标数据写入内存中。
在一种可能的实现方式中,处理器与本地控制器之间用于传输地址信息的地址线位宽为N,该方法还包括:当第一目标数据的第一拍列地址信息与第二拍列地址信息所占的地址线位宽之和M小于2N时,本地控制器接收处理器发送的其他信息,其他信息占用2N-M位地址线位宽。
在一种可能的实现方式中,第一拍列地址信息和第二拍列地址信息分别包括指示信息和拍列地址;其中,当指示信息为第一指示信息时,指示信息用于指示拍列地址为第一拍列地址;当指示信息为第二指示信息时,指示信息用于指示拍列地址为第二拍列地址。
在一种可能的实现方式中,第一拍列地址信息和第二拍列地址信息还分别包括用于指示数据访问请求顺序的请求标识,且第一目标数据的第一拍列地址信息和第一目标数据的第二拍列地址信息包括的请求标识相同。
在一种可能的实现方式中,若第一数据访问请求为读数据指令,本地控制器根据第一目标数据的第一拍列地址信息和第二拍列地址信息,从内存中获取第一目标数据之后,该方法还包括:本地控制器向处理器发送第一确认信息,第一确认信息用于指示本地控制器从内存中取出第一目标数据;相应的,本地控制器将第一目标数据发送给处理器,包括:当本地控制器接收到处理器发送的第一数据获取指令时,本地控制器将第一目标数据发送给处理器。
在一种可能的实现方式中,当第一目标数据的第一拍列地址信息与第二目标数据的第一拍列地址相同时,该方法还包括:本地控制器接收处理器发送的第三数据访问请求,第三数据访问请求包含第二目标数据的第二拍列地址信息,第一目标数据的第一拍列地址信息与第二目标数据的第二拍列地址信息用于指示第二目标数据的地址;第三数据访问请求为写数据指令或者读数据指令,且第三数据访问请求与第一数据访问请求的指令类型相同;其中,第二目标数据的第二拍列地址信息包括指示信息和拍列地址。
在一种可能的实现方式中,本地控制器接收处理器发送的第三数据访问请求之后,该方法还包括:若第一数据访问请求为读数据指令,本地控制器根据第一目标数据的第一拍列地址信息和第二目标数据的第二拍列地址信息,从内存中获取第二目标数据,并将第二目标数据发送给处理器;若第一数据访问请求为写数据指令,本地控制器接收处理器发送的第二目标数据,并根据第一目标数据的第一拍列地址信息和第二目标数据的第二拍列地址信息,将第二目标数据写入内存中。
第三方面,提供一种内存地址总线扩展装置,该装置包括:发送单元,用于向本地控制器发送第一数据访问请求,第一数据访问请求包含第一目标数据的第一拍列地址信息;其中,第一数据访问请求为写数据指令或者读数据指令;发送单元,还用于向本地控制器发送第二数据访问请求,第二数据访问请求包含第一目标数据的第二拍列地址信息,第一拍列地址信息和第二拍列地址信息用于指示第一目标数据的地址;其中,第二数据访问请求为写数据指令或者读数据指令,且第二数据访问请求与第一数据访问请求的指令类型相同;接收单元,用于若第一数据访问请求为读数据指令,接收本地控制器发送的第一目标数据;发送单元,还用于若第一数据访问请求为写数据指令,向本地控制器发送第一目标数据。
在一种可能的实现方式中,内存地址总线扩展装置与本地控制器之间用于传输地址信息的地址线位宽为N,发送单元,还用于:当第一目标数据的第一拍列地址信息与第二拍列地址信息所占用的地址线位宽之和M小于2N时,向本地控制器发送其他信息,其他信息占用2N-M位地址线位宽。
在一种可能的实现方式中,第一拍列地址信息和第二拍列地址信息分别包括指示信息和拍列地址;其中,当指示信息为第一指示信息时,指示信息用于指示拍列地址为第一拍列地址;当指示信息为第二指示信息时,指示信息用于指示拍列地址为第二拍列地址。
在一种可能的实现方式中,第一拍列地址信息和第二拍列地址信息还分别包括用于指示数据访问请求顺序的请求标识,且第一目标数据的第一拍列地址信息和第一目标数据的第二拍列地址信息包括的请求标识相同。
在一种可能的实现方式中,接收单元,还用于接收本地控制器发送的第一确认信息,第一确认信息用于指示本地控制器从内存中取出第一目标数据;发送单元,还用于根据第一确认信息向本地控制器发送第一数据获取指令,第一数据获取指令用于获取第一目标数据。
在一种可能的实现方式中,当第一目标数据的第一拍列地址信息与第二目标数据的第一拍列地址相同时,发送单元,还用于向本地控制器发送第三数据访问请求,第三数据访问请求包含第二目标数据的第二拍列地址信息,第一目标数据的第一拍列地址信息与第二目标数据的第二拍列地址信息用于指示第二目标数据的地址;第三数据访问请求为写数据指令或者读数据指令,且第三数据访问请求与第一数据访问请求的指令类型相同;其中,第二目标数据的第二拍列地址信息包括指示信息和拍列地址。
在一种可能的实现方式中,接收单元,还用于若第一数据访问请求为读数据指令,接收本地控制器发送的第二目标数据;发送单元,还用于若第一数据访问请求为写数据指令,向本地控制器发送第二目标数据。
第四方面,提供一种内存地址总线扩展装置,该装置包括:接收单元,用于接收处理器发送的第一数据访问请求,第一数据访问请求包含第一目标数据的第一拍列地址信息,第一数据访问请求为写数据指令或者读数据指令;接收单元,还用于接收处理器发送的第二数据访问请求,第二数据访问请求包含第一目标数据的第二拍列地址信息,第一拍列地址信息和第二拍列地址信息用于指示第一目标数据的地址;其中,第二数据访问请求为写数据指令或者读数据指令,且第二数据访问请求与第一数据访问请求的指令类型相同;获取单元,用于若第一数据访问请求为读数据指令,本地控制器根据第一目标数据的第一拍列地址信息和第二拍列地址信息,从内存中获取第一目标数据;发送单元,用于将第一目标数据发送给处理器;接收单元,还用于若第一数据访问请求为写数据指令,接收处理器发送的第一目标数据;写入单元,用于根据第一目标数据的第一拍列地址信息和第二拍列地址信息,将第一目标数据写入内存中。
在一种可能的实现方式中,处理器与内存地址总线扩展装置之间用于传输地址信息的地址线位宽为N;接收单元,还用于当第一目标数据的第一拍列地址信息与第二拍列地址信息所占的地址线位宽之和M小于2N时,接收处理器发送的其他信息,其他信息占用2N-M位地址线位宽。
在一种可能的实现方式中,第一拍列地址信息和第二拍列地址信息分别包括指示信息和拍列地址;其中,当指示信息为第一指示信息时,指示信息用于指示拍列地址为第一拍列地址;当指示信息为第二指示信息时,指示信息用于指示拍列地址为第二拍列地址。
在一种可能的实现方式中,第一拍列地址信息和第二拍列地址信息还分别包括用于指示数据访问请求顺序的请求标识,且第一目标数据的第一拍列地址信息和第一目标数据的第二拍列地址信息包括的请求标识相同。
在一种可能的实现方式中,发送单元,还用于向处理器发送第一确认信息,第一确认信息用于指示本地控制器从内存中取出第一目标数据;相应的,发送单元,还具体用于当接收单元接收到处理器发送的第一数据获取指令时,将第一目标数据发送给处理器。
在一种可能的实现方式中,当第一目标数据的第一拍列地址信息与第二目标数据的第一拍列地址相同时,接收单元,还用于接收处理器发送的第三数据访问请求,第三数据访问请求包含第二目标数据的第二拍列地址信息,第一目标数据的第一拍列地址信息与第二目标数据的第二拍列地址信息用于指示第二目标数据的地址;第三数据访问请求为写数据指令或者读数据指令,且第三数据访问请求与第一数据访问请求的指令类型相同;其中,第二目标数据的第二拍列地址信息包括指示信息和拍列地址。
在一种可能的实现方式中,获取单元,还用于若第一数据访问请求为读数据指令,根据第一目标数据的第一拍列地址信息和第二目标数据的第二拍列地址信息,从内存中获取第二目标数据;发送单元,还用于将第二目标数据发送给处理器;接收单元,还用于若第一数据访问请求为写数据指令,接收处理器发送的第二目标数据;写入单元,还用于根据第一目标数据的第一拍列地址信息和第二目标数据的第二拍列地址信息,将第二目标数据写入内存中。
本发明的实施例提供的一种内存地址总线扩展方法及装置,通过发送第一数据访问请求和第二数据访问请求来完成一次完整的内存读数据访问或者写数据访问,即每一次发送的数据访问请求携带一拍列地址信息,通过两拍列地址信息来指示内存访问时的具体地址,从而可以通过现有的内存总线接口传输内存扩展后的大地址,实现内存地址总线的扩展。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种内存容量扩展的结构示意图;
图2为本发明实施例提供的一种内存地址总线扩展方法的流程示意图;
图3为本发明实施例提供的一种内存地址总线扩展的结构示意图;
图4为本发明实施例提供的另一种内存地址总线扩展的结构示意图;
图5为本发明实施例提供的一种读取内存数据的时序图;
图6为本发明实施例提供的一种向内存写入数据的时序图;
图7为本发明实施例提供的另一种内存地址总线扩展方法的流程示意图;
图8为本发明实施例提供的另一种读取内存数据的时序图;
图9为本发明实施例提供的另一种向内存写入数据的时序图;
图10为本发明实施例提供的一种处理器的结构示意图;
图11为本发明实施例提供的一种本地控制器的结构示意图;
图12为本发明实施例提供的一种电子设备的结构示意图;
图13为本发明实施例提供的另一种电子设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在介绍本发明之前,首先对本发明的背景技术和应用场景进行简单介绍。
现有的基于内存总线的扩容方法如图1所示,处理器通过内存总线接口连接到本地控制器,然后由本地控制器进行大容量的内存扩展。本地控制器由专用集成电路/现场可编程门阵列(Application Specific Integrated Circuits/Field Programmable GateArray,ASIC/FPGA)实现,本地控制器连接内存,并可以被处理器访问。该处理器含有处理器核和集成的内存控制器,内存控制器之上包含一层扩展逻辑,处理器通过软件或者这层扩展逻辑发出内存访问请求,内存控制器管理内存,通过若干个内存通道与内存颗粒或内存条连接。其中,在基于上述内存总线的扩容技术进行内存访问时,处理器通常向本地控制器发送访问指令,该访问指令携带访问数据的地址,该地址通过处理器与本地控制器之间固定的地址总线位宽来传输。但是,处理器在通过上述方法访问内存时,虽然能够通过本地控制器和DRAM/NVM(Dynamic Random Access Memory/Non-Volatile Memory,动态随机存取存储器/非易失性存取器)扩展内存容量的大小,并未对内存地址总线进行扩展。进一步的,当扩展的内存容量较大,对应的扩展后的地址也变大时,基于现有的地址线位宽,无法通过标准的内存总线接口来传输扩充后的大地址。目前,存在一种比较简单的内存地址总线扩展方法,即通过冗余的地址线或者命令线对内存地址总线进行扩展,因为在现有标准中,当处理器进行内存访问时,并非所有的地址线和命令线都被用于传输有用信息,因此可以采用这些冗余的信号线达到扩展内存地址总线的目的。然而,对于标准的内存控制器,并不支持上述冗余信号线的利用,想要采用冗余的地址线或者命令线来扩展内存总线,必须同时修改内存控制器,从而操作比较复杂,同时也无法通过标准的内存总线接口来传输扩充后的大地址。
本发明实施例与背景技术的应用场景相同,且应用于对内存容量进行扩展的电子设备中,该电子设备可以为计算机、数字广播终端、消息收发设备、游戏控制台、平板设备、医疗设备、健身设备等等。具体的,当处理器对本地控制器控制下的内存进行访问时,该应用场景可以根据访问的地址的相关性分为随机地址访问场景和连续地址访问场景。其中,随机地址访问场景是指在一段时间内,处理器先后访问的地址之间相关性不大;连续地址访问场景是指在一段时间内,处理器先后访问的地址之间具有较强的相关性,特别是对于同一行的不同列地址进行连续访问的情况。
本发明的基本原理在于,处理器通过发送两次数据访问请求,来完成一次完整的内存访问,即每次发送数据访问请求时携带一拍列地址信息,通过两拍列地址信息来指示内存访问时的地址,从而无需修改本地控制器即可通过现有的内存总线接口传输内存扩展后的大地址,实现内存地址总线的扩展。
图2为本发明实施例提供的一种内存地址总线扩展方法的流程示意图,参见图2,该方法包括以下几个步骤。
步骤201:处理器向本地控制器发送第一数据访问请求,第一数据访问请求包含第一目标数据的第一拍列地址信息;其中,第一数据访问请求为写数据指令或者读数据指令。
其中,现有标准中的地址信号可以包括Rank、Bank、Bank Group、Row和Column,这些地址信号的组合,确定了内存寻址的具体位置。其中,Rank地址通过CS信号线来确定;Bank和Bank Group地址通过专门的BA和BG信号线确定;Row地址和Column地址,采用复用的信号线来确定。当确定内存寻址的具体位置时,内存控制器采用ACT命令来激活特定Bank和Bank Group下的某个Row地址进行行选通,然后在执行读/写操作时,指定相应的Column地址进行列选通,从而确定具体的寻址位置。
在本发明实施例中,当处理器通过现有技术向本地控制器发送ACT命令激活特定Bank和Bank Group下的某个Row地址进行行选通之后,也即是,当处理器将包含内存寻址中对应的行地址{BG,BA,ROW}的ACT命令发送给本地控制器之后,处理器在执行读/写操作时,处理器可以通过两次连续的数据访问请求发送两拍列地址信息,从而通过两拍列地址信息指定相应的Column地址进行列选通,进而确定具体的寻址位置,实现扩展内存地址总线的目的。
其中,由于根据处理器访问的地址的相关性,可以将本发明的应用场景分为随机地址访问场景和连续地址访问场景,而在不同的地址访问场景下,第一拍列地址信息和第二拍列地址信息包含的信息是不相同的,因此,下面分别针对不同的地址访问场景,对第一拍列地址信息和第二拍列地址信息进行详细阐述。
第一、在随机地址访问场景下,第一拍列地址信息和第二拍列地址信息分别可以包括拍列地址、指示信息和用于指示数据访问请求顺序的请求标识。其中,当该指示信息为第一指示信息时,该指示信息用于指示拍列地址为第一拍列地址;当该指示信息为第二指示信息时,该指示信息用于指示拍列地址为第二拍列地址。第一目标数据的第一拍列地址信息和第一目标数据的第二拍列地址信息包括的请求标识相同,用于表示第一目标数据对应的数据访问请求在并发的多个数据访问请求中的顺序。
比如,如图3所示,以第一目标数据的第一拍列地址信息为列地址11为例进行说明,图3中第一目标数据的第一拍列地址信息包括正常的n位列地址位宽,指示信息表示为SEQ,请求标识表示为ID1,图3中的列地址11对应的SEQ为第一指示信息,列地址12对应的SEQ为第二指示信息,且列地址11和列地址12对应的请求标识均为ID1。其中,拍列地址可以包括n-k位,指示信息SEQ可以包括1位,请求标识可以包括k-1位,用于标记并行发送的多个数据访问请求。
需要说明的是,上述图3中的第一目标数据的第二拍列地址信息与第一拍列地址信息类似,本发明实施例在此不再赘述。另外,上述图4所示的第一目标数据的第一拍列地址信息中的拍列地址、指示信息和请求标识所包括的位宽仅为示例性的,上述图3并不对本发明实施例构成限定。
为了提高内存总线的访问效率,内存控制器通常会对来自处理器的数据访问请求进行一定程度地调度和重整,即乱序处理。因此,对于两拍列地址对应的数据访问请求,需要有一定的机制来区分请求之间的先后顺序,上述图3所示的指示信息(SEQ)和请求标识(ID1),可以保证内存端能够正确还原出处理器原始的访问地址。同时,上述图3中通过两次数据访问请求发送的列地址总位宽为2*(n-k)位,相比于原始方式扩展了(n-2*k)位。
进一步的,如果所用的内存控制器具有保序功能,即内存总线上的数据访问请求能够按照指定的顺序下发,则上述图3中的指示信息SEQ和请求标识ID1可以是不需要的,在采用两拍列地址的方式进行数据访问时,能够直接将列地址总位宽扩大一倍。
第二、在连续地址访问场景下,即处理器连续访问的多个目标数据对应的行地址相同、列地址连续,则对于连续的数据访问请求,可以将第一拍列地址作为虚拟行地址,与其后的其他目标数据对应的数据访问请求共享,并将其他目标数据的第二拍列地址作为对应的数据访问的真正列地址。其中,第一拍列地址信息和第二拍列地址信息分别可以包括拍列地址和指示信息。其中,当该指示信息为第一指示信息时,该指示信息用于指示拍列地址为第一拍列地址;当该指示信息为第二指示信息时,该指示信息用于指示拍列地址为第二拍列地址。
比如,如图4所示,以第一目标数据的第一拍列地址信息为虚拟行地址、第二拍列地址信息为列地址12为例进行说明,图4中第一目标数据的第一拍列地址信息包括正常的n位列地址位宽,指示信息表示为SEQ,拍列地址可以包括n-1位,指示信息SEQ可以包括1位,且图4中的虚拟行地址对应的SEQ为第一指示信息,列地址12、列地址22和列地址32对应的SEQ为第二指示信息。对于与第一目标数据的第一拍列地址信息相同的第二目标数据,则只需发送第二目标数据的第二拍列地址信息即可,具体如图4所示。
需要说明的是,上述图4中的第一目标数据的第二拍列地址信息与第一拍列地址信息类似,本发明实施例在此不再赘述。另外,上述图4所示的第一目标数据的第一拍列地址信息中的拍列地址和指示信息所包括的位宽仅为示例性的,上述图4并不对本发明实施例构成限定。
对于该段连续地址的第N个目标数据的数据访问请求,N为大于1的整数,只需发送对应的第二拍列地址信息即可。采用这种方式,在进行大量的连续地址访存时,几乎不会造成总线带宽的浪费,同时又能有效地扩展内存地址总线。另外,上述图4中所示的采用虚拟行地址的方式,实际可用的列地址总位宽为2*(n-1),相比于原始方式扩展了(n-2)位。
具体的,在处理器向本地控制器发送第一数据访问请求之前,处理器可以向本地控制器发送ACT命令激活特定Bank和Bank Group下的某个Row地址进行行选通,并在对应的行选通之后,处理器可以向本地控制器发送第一数据访问请求,第一数据访问请求包含第一目标数据的第一拍列地址信息,该第一拍列地址信息可以表示为{BG,BA,COL,SEQ,ID}。
需要说明的是,第一拍列地址信息中的BG和BA与ACT命令包含的BG和BA一致,是通过专门的信号线BG和BA进行传输,所以BG和BA不占用正常的列地址位宽。
步骤202:本地控制器接收处理器发送的第一数据访问请求。
具体的,在本地控制器接收处理器发送的第一数据访问请求之前,本地控制器可以根据现有技术接收处理器发送的ACT命令,从而得到该ACT命令包含的行地址,当本地控制器接收到第一数据访问请求时,本地控制器可以根据第一拍列地址信息包括的请求标识确定该第一数据访问请求为第一目标数据的访问请求,并根据该指示信息为第一指示信息,确定该拍列地址为第一目标数据的第一拍列地址。
步骤203:处理器向本地控制器发送第二数据访问请求,第二数据访问请求包含第一目标数据的第二拍列地址信息,第一拍列地址信息和第二拍列地址信息用于指示第一目标数据的地址。
需要说明的是,第二数据访问请求可以是写数据指令或者读数据指令,且第二数据访问请求与第一数据访问请求的指令类型相同,即当第一数据访问请求为读数据指令时,第二数据访问请求也为读数据指令;当第一数据访问请求为写数据指令时,第二数据访问请求也为写数据指令。
步骤204:本地控制器接收处理器发送的第二数据访问请求。
具体的,当本地控制器接收到第二数据访问请求时,本地控制器可以根据第二拍列地址信息包括的请求标识确定该第二数据访问请求为第一目标数据的访问请求,并根据该指示信息为第二指示信息,确定该拍列地址为第一目标数据的第二拍列地址,从而本地控制器可以根据第一目标数据的第一拍列地址和第二拍列地址,确定该第一目标数据对应的内存地址。
需要说明的是,步骤203-步骤204中提到的第一目标数据的第二拍列地址信息与上述步骤201中阐述的第一目标数据的第二拍列地址信息一致,具体参见上述步骤201中的描述,本发明实施例在此不再赘述。
由于第一数据访问请求可以为读数据指令,也可以为写数据指令,而且当第一数据访问请求为不同的指令时,处理器和本地控制器对应的操作也会有所不同,下面分别进行阐述。
第一种情况、若第一数据访问请求为读数据指令,在步骤204之后,该方法包括步骤205a-206a。
步骤205a:本地控制器根据第一目标数据的第一拍列地址信息和第二拍列地址信息,从内存中获取第一目标数据,并将第一目标数据发送给处理器。
具体的,当本地控制器接收到第一拍列信息和第二拍列地址信息时,本地控制器可以根据第一拍列地址信息和第二拍列地址信息,确定第一目标数据在内存中的列地址,从而可以根据该列地址和通过ACT命令获取到的行地址,确定第一目标数据对应的实际地址,并根据该实际地址从内存中获取第一目标数据,之后,将该第一目标数据发送给处理器。
进一步的,在步骤205a中,当本地控制器从内存中获取第一目标数据后,本地控制器还可以向处理器发送第一确认信息,该第一确认信息用于指示本地控制器从内存中取出第一目标数据。相应的,当处理器接收到该第一确认信息时,处理器可以确定本地控制器已经成功从内存中取出第一目标数据,从而处理器可以根据该第一确认信息向本地控制器发送第一数据获取指令,以使本地控制器在接收到该第一数据获取指令时,将第一目标数据返回给处理器;其中,该第一数据获取指令用于获取第一目标数据。
步骤206a:处理器接收本地控制器发送的第一目标数据。
比如,在第一数据访问请求为读数据指令时,以应用场景为随机地址访问场景为例,对处理器访问内存时的指令之间的时序进行举例说明,如图5所示,CK_t和CK_c为差分时钟信号;CS_n为选通Rank地址的信号,且在低电平时有效;ACT_n为ACT命令对应的信号,且低电平有效;CMD为命令对应的信号,比如所占用的地址线为A[16:14];RD表示读数据命令,DES可以为其他命令;BG、BA分别为选通BankGroup和Bank地址的信号;A为Row地址和Column地址的复用信号,row 0表示行地址ROW,col 0a表示第一拍列地址信息,col 0b表示第二拍列地址信息;DQS_t和DQS_c为数据选通信号,DQ为数据信号,DQ0-DQ7表示第一目标数据(以burst 8为例)。其中,根据现有协议中关于时序参数的要求,ACT命令与RD之间相差tRCD的时间长度,RD与RD之间相差tCCD的时间长度,RD与读返回数据之间相差RL的时间长度。
第二种情况、若第一数据访问请求为写数据指令,在步骤204之后,该方法包括步骤205b-206b。
步骤205b:处理器向本地控制器发送第一目标数据。
具体的,当处理器向本地控制器连续发送两次数据访问请求之后,即将第一目标数据的第一拍列地址信息和第二拍列地址信息都发送给本地控制器之后,处理器可以向本地控制器发送第一目标数据,以使本地控制器将第一目标数据写入内存中。
步骤206b:本地控制器接收处理器发送的第一目标数据,并根据第一目标数据的第一拍列地址信息和第二拍列地址信息,将第一目标数据写入内存中。
具体的,当本地控制器接收到处理器发送的第一目标数据时,本地控制器可以根据第一拍列地址信息和第二拍列地址信息,确定第一目标数据对应的列地址,从而可以根据该列地址和通过ACT命令获取到的行地址,确定第一目标数据对应的实际地址,并根据该实际地址将第一目标数据写入内存对应的位置中。
比如,在第一数据访问请求为写数据指令时,以应用场景为随机地址访问场景为例,对处理器访问内存时的指令之间的时序进行举例说明,如图6所示,CK_t和CK_c为差分时钟信号;CS_n为选通Rank地址的信号,且在低电平时有效;ACT_n为ACT命令对应的信号,且低电平有效;CMD为命令对应的信号,比如所占用的地址线为A[16:14];WR表示写数据命令,DES可以为其他命令;BG、BA分别为选通Bank Group和Bank地址的信号;A为Row地址和Column地址的复用信号,row 0表示行地址ROW,col 0a表示第一拍列地址信息,col 0b表示第二拍列地址信息;DQS_t和DQS_c为数据选通信号,DQ为数据信号,DQ0-DQ7表示第一目标数据(以burst 8为例)。其中,根据现有协议中关于时序参数的要求,ACT命令与WR之间相差tRCD的时间长度,WR与WR之间相差tCCD的时间长度,WR与写入数据之间相差WL的时间长度。
进一步的,在大量连续地址访存时,可以将第一拍列地址信息作为虚拟行地址与其后的请求共享,从而节省了总线带宽,进一步的扩展了内存地址总线。也即是,在该应用场景为连续地址访问场景,第一目标数据的第一拍列地址信息与第二目标数据的第一拍列地址信息相同时,参见图7,该方法还包括以下步骤。
步骤207:处理器向本地控制器发送第三数据访问请求,第三数据访问请求包含第二目标数据的第二拍列地址信息,第一目标数据的第一拍列地址信息与第二目标数据的第二拍列地址信息用于指示第二目标数据的地址;其中,第二目标数据的第二拍列地址信息包括指示信息和拍列地址。
其中,第三数据访问请求可以为写数据指令或者读数据指令,且第三数据访问请求与第一数据访问请求的指令类型相同,即当第一数据访问请求为读数据指令时,第三数据访问请求也为读数据指令;当第一数据访问请求为写数据指令时,第三数据访问请求也为写数据指令。
需要说明的是,第二目标数据的第二拍列地址信息中包含的指示信息为第二指示信息,且用于指示第二目标数据的第二拍列地址信息中包括的拍列地址为第二目标数据的第二拍列地址。其中,具体的第二目标数据的第二拍列地址信息与上述步骤201中第一目标数据的第二拍列地址信息类似,具体参见上述步骤201中的描述,本发明实施例在此不再赘述。
具体的,若第一数据访问请求和第三数据访问请求为读数据指令,该方法还包括步骤208a和步骤209a。
步骤208a:本地控制器接收处理器发送的第三数据访问请求,并根据第一目标数据的第一拍列地址信息和第二目标数据的第二拍列地址信息,从内存中获取第二目标数据,并将第二目标数据发送给处理器。
当本地控制器接收到第二目标数据的第二拍列地址信息时,由于第一目标数据的第一拍列地址信息与第二目标数据的第一拍列地址信息相同,因此,本地控制器可以根据第一目标数据的第一拍列地址信息、以及第二目标数据的第二拍列地址信息,确定第二目标数据在内存中的列地址,从而可以根据该列地址和通过ACT命令获取到的行地址,确定第二目标数据对应的实际地址,并根据该实际地址从内存中获取第二目标数据,之后,将该第二目标数据发送给处理器。
可选的,在步骤208a中,当本地控制器从内存中获取第二目标数据后,本地控制器还可以向处理器发送第二确认信息,该第二确认信息用于指示本地控制器从内存中取出第二目标数据。相应的,当处理器接收到该第二确认信息时,处理器可以确定本地控制器已经成功从内存中取出第二目标数据,从而处理器可以根据该第二确认信息向本地控制器发送第二数据获取指令,以使本地控制器在接收到该第二数据获取指令时,将第二目标数据返回给处理器;其中,该第二数据获取指令用于获取第二目标数据。
步骤209a:处理器接收本地控制器发送的第二目标数据。
比如,在第一数据访问请求为读数据指令时,以应用场景为连续地址访问场景为例,对处理器访问内存时的指令之间的时序进行举例说明,如图8所示,CK_t和CK_c为差分时钟信号;CS_n为选通Rank地址的信号,且在低电平时有效;ACT_n为ACT命令对应的信号,且低电平有效;CMD为命令对应的信号,比如所占用的地址线为A[16:14];RD表示读数据命令,DES可以为其他命令;BG、BA分别为选通Bank Group和Bank地址的信号;A为Row地址和Column地址的复用信号,row表示行地址ROW,row’表示虚拟行地址,即第一目标数据的第一拍列地址信息,col 0表示第一目标数据的第二拍列地址信息,col 1表示第二目标数据的第二拍列地址信息。其中,根据现有协议中关于时序参数的要求,ACT命令与RD(row’)之间相差tRCD的时间长度,RD(row’)与RD(col 0)之间相差tRCD’的时间长度,RD(col 0)与RD(col 1)之间相差tCCD的时间长度,且tRCD’与tCCD相等。
具体的,若第一数据访问请求和第三数据访问请求为写数据指令,该方法还包括步骤208b和步骤209b。
步骤208b:处理器向本地控制器发送第二目标数据。
具体的,当处理器向本地控制器发送第三数据访问请求之后,处理器可以向本地控制器发送第二目标数据,以使本地控制器根据第一目标数据的第一拍列地址信息、以及第二目标数据的第二拍列地址信息,将第二目标数据写入内存中。
步骤209b:本地控制器接收处理器发送的第二目标数据,并根据第一目标数据的第一拍列地址信息和第二目标数据的第二拍列地址信息,将第二目标数据写入内存中。
具体的,当本地控制器接收到处理器发送的第二目标数据时,本地控制器可以根据第一目标数据的第一拍列地址信息、以及第二目标数据的第二拍列地址信息,确定第二目标数据对应的列地址,从而可以根据该列地址和通过ACT命令获取到的行地址,确定第二目标数据对应的实际地址,并根据该实际地址将第二目标数据写入内存对应的位置中。
比如,在第一数据访问请求为写数据指令时,以应用场景为连续地址访问场景为例,对处理器访问内存时的指令之间的时序进行举例说明,如图9所示,CK_t和CK_c为差分时钟信号;CS_n为选通Rank地址的信号,且在低电平时有效;ACT_n为ACT命令对应的信号,且低电平有效;CMD为命令对应的信号,比如所占用的地址线为A[16:14];WR表示写数据命令,DES可以为其他命令;BG、BA分别为选通Bank Group和Bank地址的信号;A为Row地址和Column地址的复用信号,row表示行地址ROW,row’表示虚拟行地址,即第一目标数据的第一拍列地址信息,col 0表示第一目标数据的第二拍列地址信息,col 1表示第二目标数据的第二拍列地址信息。其中,根据现有协议中关于时序参数的要求,ACT命令与WR(row’)之间相差tRCD的时间长度,WR(row’)与WR(col 0)之间相差tRCD'的时间长度,WR(col 0)与WR(col 1)之间相差tCCD的时间长度,且tRCD'与tCCD相等。
进一步的,若处理器与本地控制器之间用于传输地址信息的地址线位宽为N,当第一目标数据的第一拍列地址信息与第一目标数据的第二拍列地址信息所占用的地址线位宽之和M小于2N时,处理器还可以向本地控制器发送其他信息,该其他信息占用2N-M位地址线位宽,从而在对内存地址总线进行扩展的同时,还可以利用扩展的地址总线传输其他信息,该其他信息可以包括请求ID、标签TAG、以及优先级等等,本发明实施例对此不作限定。
本发明实施例中的应用场景可以包括随机地址访问场景和连续地址访问场景,第一数据访问请求可以为读数据指令或者为写数据指令,为便于理解读数据指令和写数据指令的整个执行过程,下面分别通过一个完整的实施例来对不同应用场景下的读数据指令和写数据指令进行举例说明。
实施例1、应用场景为随机地址访问场景,第一数据访问请求为读数据指令。
当第一目标数据的第一拍列地址信息表示为{BG,BA,COL,SEQ,ID}时,本地控制器可以为每个{BG,BA,ID}建立三组寄存器,分别为状态寄存器、地址寄存器和数据寄存器。其中,状态寄存器用于记录请求执行的状态;地址寄存器用于记录请求对应的地址;数据寄存器记录请求对应的数据。比如,对于状态寄存器,数值0可以表示请求尚未建立;数值1可以表示已经收到了第一拍列地址;数值2可以表示已经收到了第二拍列地址,但数据尚未取回数据寄存器;数值3表示已经将数据取回数据寄存器,等待处理器取数值。
具体的,上述步骤201-206a所述的方法可以分为以下几个大的步骤,具体过程如下所述。
步骤11:处理器向本地控制器发送包含了行地址{BG,BA,ROW}的ACT指令;当本地控制器接收到处理器发送的ACT命令时,可以识别该行地址{BG,BA,ROW},并将该行地址填入{BG,BA}对应的地址寄存器中的行地址的位置。
步骤12:处理器向本地控制器发送第一数据访问请求,第一数据访问请求包含第一目标数据的第一拍列地址信息{BG,BA,COL,SEQ,ID};当本地控制器接收到第一数据访问请求时,可以根据{BG,BA,COL,SEQ,ID}中的{BG,BA,ID}查找对应的状态寄存器,若该状态寄存器的值为第一数值时,本地控制器确定第一数据访问请求为发送第一拍列地址信息的读数据指令,则本地控制器可以将该状态寄存器的值设置为第二数值,并确认SEQ为第一指示信息时,将拍列地址COL填入地址寄存器中的第一拍列地址的位置。
步骤13:处理器向本地控制器发送第二数据访问请求,第二数据访问请求包含第一目标数据的第二拍列地址信息{BG,BA,COL,SEQ,ID};当本地控制器接收到第二数据访问请求时,本地控制器可以根据{BG,BA,COL,SEQ,ID}中的{BG,BA,ID}查找对应的状态寄存器,若该状态寄存器的值为第二数值时,本地控制器确定第二数据访问请求为发送第二拍列地址信息的读数据指令,则本地控制器可以将该状态寄存器的值设置为第三数值,并确认SEQ为第二指示信息时,将拍列地址COL填入地址寄存器中的第二拍列地址的位置。
步骤14:在状态寄存器变为第三数值时,本地控制器可以根据地址寄存器中的地址从内存中取出第一目标数据,并将第一目标数据填入对应的数据寄存器中,同时将对应的状态寄存器设置为第四数值。此时,本地控制器可以向处理器发送第一确认信息,处理器根据该第一确认信息,发送对应ID的第一数据获取指令,该第一数据获取指令可以包含{BG,BA,ID}。
步骤15:本地控制器接收到该第一数据获取指令后,根据{BG,BA,ID}查找对应的状态寄存器。若其值为第四数值,则本地控制器将对应的数据寄存器中的第一目标数据返回给处理器,并将对应的状态寄存器清零;若状态寄存器的值为第三数值,则本地控制器向处理器返回特殊标识,处理器收到特殊标识,得知第一目标数据尚未返回,将再次发送第一数据获取指令,直到返回第一目标数据。
需要说明的是,第一数值、第二数值、第三数值和第四数值可以预先设置,且为不同的数值。比如,对于状态寄存器的值可以设置为:第一数值为0,用于表示请求尚未建立;第二数值为1,用于表示已经收到了第一拍列地址信息;第三数值为2,用于表示已经收到了第二拍列地址信息,但数据尚未取回数据寄存器;第四数值可以为3,用于表示已经将第一目标数据取回数据寄存器,等待处理器取数值。
实施例2,应用场景为随机地址访问场景,第一数据访问请求为写数据指令。
当第一目标数据的第一拍列地址信息表示为{BG,BA,COL,SEQ,ID}时,本地控制器为每个{BG,BA,ID}建立两组寄存器,分别为状态寄存器和地址寄存器。其中,地址寄存器用于记录请求对应的地址,可以包括BG、BA、ROW、COL1和COL2等多个域;状态寄存器用于记录请求执行的状态;比如,对于状态寄存器,数值0可以表示请求尚未建立,数值1可以表示已经收到第一拍列地址信息;数值2可以表示已经收到第二拍列地址信息。另外,当写数据指令包括多个并发的指令时,为了将每个写数据指令与其对应的目标数据进行对应处理,本地控制器采用FIFO(First In First Out,先入先出)来寄存写数据指令和与其对应的目标数据。其中,共定义了3种FIFO:请求FIFO,用于记录数据访问请求对应的{BG,BA,ID,SEQ}信息,由所有写数据指令共用;地址FIFO,用于记录写数据指令对应的地址,每个{BG,BA,ID}包含一组地址FIFO;数据FIFO,用于记录目标数据,每个{BG,BA,ID}包含一组数据FIFO。
具体的,上述步骤201-206b所述的方法可以分为以下几个大的步骤,具体过程如下所述。
步骤21:处理器向本地控制器发送包含了行地址{BG,BA,ROW}的ACT指令;当本地控制器接收到处理器发送的ACT命令时,可以将该行地址填入{BG,BA}对应的地址寄存器中的行地址的位置。
步骤22:处理器向本地控制器发送第一数据访问请求,第一数据访问请求包含第一目标数据的第一拍列地址信息{BG,BA,COL,SEQ,ID};当本地控制器接收到第一数据访问请求时,本地控制器可以根据{BG,BA,COL,SEQ,ID}中的{BG,BA,ID}查找对应的状态寄存器,若该状态寄存器的数值为第一数值时,将该状态寄存器的值设置为第二数值,并根据SEQ为第一指示信息将拍列地址填入对应地址寄存器中第一拍列地址的位置COL1,以及将{BG,BA,ID,SEQ}写入请求FIFO中。
步骤23:处理器向本地控制器发送第二数据访问请求,当本地控制器接收到第二数据访问请求时也作与步骤22相应的处理,此时应将{BG,BA,ID}对应的状态寄存器的值设置为第三数值。若{BG,BA,ID}对应的状态寄存器为第三数值,说明本地控制器已经接收到第二拍列地址信息,从而本地控制器将{BG,BA,ID}对应的地址寄存器中的地址写入对应的地址FIFO中,同时将对应的状态寄存器的值清零。
步骤24:处理器向本地控制器发送第一目标数据;当第一目标数据到达本地控制器后,本地控制器从请求FIFO中取出队头,若SEQ为第一指示信息,则将第一目标数据写入{BG,BA,ID}对应的数据FIFO。当{BG,BA,ID}对应的地址FIFO和数据FIFO均不空时,本地分别从地址FIFO和数据FIFO中取出队头的地址和数据,并将该数据写入该地址指向的内存空间。
需要说明的是,实施例2中状态寄存器的值与上述实施例1中状态寄存器的值所表示的含义一致,具体参见上述实施例1中的描述,本发明实施例在此不再赘述。
在上述实施例1和实施例2中,即应用场景为随机地址访问场景下,当处理器侧的内存控制器存在乱序时,需要根据不同的地址扩展需求和并行请求数目,合理设置ID位宽。因为对于本地控制器,同一Bank上能够支持的并行请求数目完全由ID位宽决定。对软件来说,对于读数据指令,仅当上一个ID的请求数据返回后,才能够发送下一个ID的请求;对于写数据指令,必须保证前一次ID的两次写数据指令一定会先于后一次ID的两次写数据指令到达内存端,这可以通过适当插入读数据指令、查询本地控制器的状态等来实现。对于不同Bank上的请求,则可以完全并行执行,而无需考虑ID的问题。因此,对于软件来讲,应当尽可能做好{BG,BA}间的交叉访问,避免长期访问同一Bank。
实施例3、应用场景为连续地址访问场景,第一数据访问请求为读数据指令。
当第一目标数据的第一拍列地址信息表示为{BG,BA,ROW’,SEQ},第一目标数据的第二拍列地址信息表示为{BG,BA,COL1,SEQ},第二目标数据的第二拍列地址信息表示为{BG,BA,COL2,SEQ}时,本地控制器可以为每个{BG,BA}建立一个行地址寄存器,包括row和row’两个域,其中row’为虚拟行地址。采用内部缓冲区来暂存目标数据,内部缓冲区为内容寻址的缓存结构,包含标签和数据两部分,其中标签部分为实际内存的地址,数据部分为从实际内存中取回的数据。
具体的,上述步骤201-209a所述的方法可以分为以下几个大的步骤,具体过程如下所述。
步骤31:处理器向本地控制器发送包含了行地址{BG,BA,ROW}的ACT指令;本地控制器接收到ACT命令时,将ROW填入{BG,BA}对应的行地址寄存器中row的位置。
步骤32:处理器向本地控制器发送包含虚拟行地址{BG,BA,ROW’,SEQ}的第一数据访问请求;当本地控制器接收到第一数据访问请求时,根据SEQ为第一指示信息,判断出该请求携带虚拟行地址ROW’;从而将ROW’填入{BG,BA}对应的行地址寄存器中row’的位置。
步骤33:处理器向本地控制器发送第二数据访问请求,第二数据访问请求包含第一目标数据的第二拍列地址信息{BG,BA,COL1,SEQ};当本地控制器接收到第二数据访问请求时,根据SEQ为第二指示信息,判断出该请求携带的是第二拍列地址COL,从而根据{BG,BA,ROW,ROW’,COL1}检索内部缓冲区。同理,当本地控制器接收到第二目标数据的第二拍列地址信息{BG,BA,COL2,SEQ}时,也作相应的处理。
步骤34:若内部缓冲区命中,则本地控制器取出命中项的数据并返回给处理器;若内部缓冲区没有命中,则根据地址{BG,BA,ROW,ROW’,COL1}访问内存,并将对应的第一目标数据取回内部缓冲区,等待下一次数据获取指令,同时返回第一确认信息,告知处理器已取回第一目标数据;处理器收到第一确认信息后,根据其中携带的信息进行数据获取,或者发送新的请求。
实施例4、应用场景为连续地址访问场景,第一数据访问请求为写数据指令。
当第一目标数据的第一拍列地址信息表示为{BG,BA,ROW’,SEQ},第一目标数据的第二拍列地址信息表示为{BG,BA,COL1,SEQ},第二目标数据的第二拍列地址信息表示为{BG,BA,COL2,SEQ}时,本地控制器可以为每个{BG,BA}建立一个行地址寄存器,包括row和row’两个域,其中row’为虚拟行地址。同时,为所有的写数据指令建立一个地址FIFO,用于寄存写数据指令对应的地址。
具体的,上述步骤201-209b所述的方法可以分为以下几个大的步骤,具体过程如下所述。
步骤41:处理器向本地控制器发送包含了行地址{BG,BA,ROW}的ACT指令;本地控制器接收到ACT命令时,将ROW填入{BG,BA}对应的行地址寄存器中row的位置。
步骤42:处理器依次发送包含ROW’地址和COL地址的第一数据访问请求和第二数据访问请求;当本地控制器接收到第一数据访问请求和第二数据访问请求时,识别其中的SEQ;若SEQ为第一指示信息,则将ROW’写入{BG,BA}对应的行地址寄存器中row’的位置,同时将第一目标数据对应的地址{BG,BA,ROW,ROW’,COL1}写入地址FIFO。同理,当本地控制器接收到第三数据访问请求时,根据第三数据访问请求中的SEQ为第二指示信息,将第二目标数据对应的地址{BG,BA,ROW,ROW’,COL2}写入地址FIFO。
步骤43:处理器发送第一目标数据,当本地控制器接收到第一目标数据时,本地控制器从地址FIFO中取出队头,若地址FIFO队头的SEQ为第二指示信息,则将第一目标数据写入队头的{BG,BA,ROW,ROW’,COL1}指向的内存空间,若本地控制器接收到其他的写数据时,对应的地址FIFO队头的SEQ为第一指示信息,则说明该写数据对应的写数据指令携带的是虚拟行地址,将该写数据丢弃。同理,当本地控制器接收到第二目标数据时,也作相应的处理。
本发明实施例提供的一种内存地址总线扩展方法,处理器通过发送第一数据访问请求和第二数据访问请求来完成一次完整的内存访问,即每一次发送的数据访问请求携带一拍列地址信息,通过两拍列地址信息来指示内存访问时的具体地址,从而可以通过现有的内存总线接口传输内存扩展后的大地址,实现内存地址总线的扩展。另外,在进行大量的连续地址访存时,可以将第一拍列地址信息作为虚拟行地址与其后的请求共享,从而不会造成总线带宽的浪费,同时又能进一步的扩展内存地址总线。此外,在无需修改本地控制器的情况下还可以利用扩展的地址总线来传输其他信息。
上述主要从各个网元之间交互的角度对本发明实施例提供的方案进行了介绍。可以理解的是,各个网元,例如处理器、本地控制器等为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的网元及算法步骤,本发明能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
本发明实施例可以根据上述方法示例对处理器、本地控制器进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本发明实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
在采用对应各个功能划分各个功能模块的情况下,图10示出了上述实施例中所涉及的处理器的一种可能的结构示意图,该处理器300包括:发送单元301、接收单元302。其中,发送单元301用于支持处理器执行图2、图7中的过程201、203和205b,以及图7中的过程208b;接收单元302用于支持处理器执行图2、图7中的过程206a、209a。上述方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能模块的功能描述,在此不再赘述。
在采用对应各个功能划分各个功能模块的情况下,图11示出了上述实施例中所涉及的本地控制器的一种可能的结构示意图,该本地控制器400包括:接收单元401、获取单元402、发送单元403和写入单元404。其中,接收单元401用于支持电子设备执行图2、图7中的过程202、204和206b中接收第一目标数据的过程,以及图7中的209b中接收第二目标数据的过程;获取单元402用于支持电子设备执行图2、图7中的205a中获取第一目标数据的过程,以及图7中的208a中获取第二目标数据的过程;发送单元403用于支持电子设备执行图2、图7中的205a中发送第一目标数据的过程,以及图7中的208a中发送第二目标数据的过程;写入单元404用于支持电子设备执行图2、图7中的206b中将第一目标数据写入内存的过程,以及图7中的209b中将第二目标数据写入内存中的过程。上述方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能模块的功能描述,在此不再赘述。
需要说明的是,上述图10所述的处理器为方法实施例中的处理器以功能划分对应的内存地址总线扩展装置,图11所述的本地控制器为方法实施例中的本地控制器以功能划分对应的内存地址总线扩展装置。
在采用集成的单元的情况下,图12示出了上述实施例中所涉及的包含处理器和本地控制器的电子设备的一种可能的结构示意图。电子设备500包括:处理模块502和通信模块503。处理模块502用于对电子设备的动作进行控制管理,例如,处理模块502用于支持电子设备执行图2、图7中的过程201、203、206a和205b,以及图7中的过程207、209a和208b,和/或用于本文所描述的技术的其他过程。通信模块503用于支持电子设备与其他网络实体的通信。电子设备还可以包括存储模块501,用于存储电子设备的程序代码和数据,以及用于支持电子设备执行图2、图7中的过程202、204、205a和206b,以及图7中的过程208a和209b。
其中,处理模块502可以是处理器或控制器,例如可以是中央处理器(CentralProcessing Unit,CPU),通用处理器,数字信号处理器(Digital Signal Processor,DSP),专用集成电路(Application-Specific Integrated Circuit,ASIC),现场可编程门阵列(Field Programmable Gate Array,FPGA)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本发明公开内容所描述的各种示例性的逻辑方框,模块和电路。所述处理器也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等等。通信模块503可以是收发器、收发电路或通信接口等。存储模块501可以是存储器。
当处理模块502为处理器,通信模块503为通信接口,存储模块501为存储器时,本发明实施例所涉及的电子设备可以为图13所示的电子设备。
参阅图13所示,该电子设备510包括:处理器512、通信接口513、存储器511以及总线514。其中,通信接口513、处理器512以及存储器511通过总线514相互连接;总线514可以是外设部件互连标准(Peripheral Component Interconnect,PCI)总线或扩展工业标准结构(Extended Industry Standard Architecture,EISA)总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图13中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
本发明实施例提供的一种电子设备中,处理器通过发送第一数据访问请求和第二数据访问请求来完成一次完整的内存访问,即每一次发送的数据访问请求携带一拍列地址信息,通过两拍列地址信息来指示内存访问时的具体地址,从而可以通过现有的内存总线接口传输内存扩展后的大地址,实现内存地址总线的扩展。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (28)
1.一种内存地址总线扩展方法,其特征在于,所述方法包括:
处理器向本地控制器发送第一数据访问请求,所述第一数据访问请求包含第一目标数据的第一拍列地址信息;其中,所述第一数据访问请求为写数据指令或者读数据指令;
所述处理器向所述本地控制器发送第二数据访问请求,所述第二数据访问请求包含所述第一目标数据的第二拍列地址信息,所述第一拍列地址信息和所述第二拍列地址信息用于指示所述第一目标数据的地址;其中,所述第二数据访问请求为写数据指令或者读数据指令,且所述第二数据访问请求与所述第一数据访问请求的指令类型相同;
若所述第一数据访问请求为读数据指令,所述处理器接收所述本地控制器发送的所述第一目标数据;
若所述第一数据访问请求为写数据指令,所述处理器向所述本地控制器发送所述第一目标数据。
2.根据权利要求1所述的方法,其特征在于,所述处理器与所述本地控制器之间用于传输地址信息的地址线位宽为N,所述方法还包括:
当所述第一目标数据的第一拍列地址信息与所述第二拍列地址信息所占用的地址线位宽之和M小于2N时,所述处理器向所述本地控制器发送其他信息,所述其他信息占用2N-M位地址线位宽。
3.根据权利要求1所述的方法,其特征在于,所述第一拍列地址信息和所述第二拍列地址信息分别包括指示信息和拍列地址;其中,当所述指示信息为第一指示信息时,所述指示信息用于指示所述拍列地址为第一拍列地址;当所述指示信息为第二指示信息时,所述指示信息用于指示所述拍列地址为第二拍列地址。
4.根据权利要求3所述的方法,其特征在于,所述第一拍列地址信息和所述第二拍列地址信息还分别包括用于指示数据访问请求顺序的请求标识,且所述第一目标数据的第一拍列地址信息和所述第一目标数据的第二拍列地址信息包括的请求标识相同。
5.根据权利要求4所述的方法,其特征在于,若所述第一数据访问请求为读数据指令,所述处理器接收所述本地控制器发送的所述第一目标数据之前,所述方法还包括:
所述处理器接收所述本地控制器发送的第一确认信息,所述第一确认信息用于指示所述本地控制器从所述内存中取出所述第一目标数据;
所述处理器根据所述第一确认信息向所述本地控制器发送第一数据获取指令,所述第一数据获取指令用于获取所述第一目标数据。
6.根据权利要求3所述的方法,其特征在于,当所述第一目标数据的第一拍列地址信息与第二目标数据的第一拍列地址相同时,所述方法还包括:
所述处理器向所述本地控制器发送第三数据访问请求,所述第三数据访问请求包含所述第二目标数据的第二拍列地址信息,所述第一目标数据的第一拍列地址信息与所述第二目标数据的第二拍列地址信息用于指示所述第二目标数据的地址;所述第三数据访问请求为写数据指令或者读数据指令,且所述第三数据访问请求与所述第一数据访问请求的指令类型相同;
其中,所述第二目标数据的第二拍列地址信息包括所述指示信息和所述拍列地址。
7.根据权利要求6所述的方法,其特征在于,所述处理器向所述本地控制器发送第三数据访问请求之后,所述方法还包括:
若所述第一数据访问请求为读数据指令,所述处理器接收所述本地控制器发送的所述第二目标数据;
若所述第一数据访问请求为写数据指令,所述处理器向所述本地控制器发送所述第二目标数据。
8.一种内存地址总线扩展方法,其特征在于,所述方法包括:
本地控制器接收处理器发送的第一数据访问请求,所述第一数据访问请求包含第一目标数据的第一拍列地址信息;其中,所述第一数据访问请求为写数据指令或者读数据指令;
所述本地控制器接收所述处理器发送的第二数据访问请求,所述第二数据访问请求包含所述第一目标数据的第二拍列地址信息,所述第一拍列地址信息和所述第二拍列地址信息用于指示所述第一目标数据的地址;其中,所述第二数据访问请求为写数据指令或者读数据指令,且所述第二数据访问请求与所述第一数据访问请求的指令类型相同;
若所述第一数据访问请求为读数据指令,所述本地控制器根据所述第一目标数据的第一拍列地址信息和第二拍列地址信息,从内存中获取所述第一目标数据,并将所述第一目标数据发送给所述处理器;
若所述第一数据访问请求为写数据指令,所述本地控制器接收所述处理器发送的所述第一目标数据,并根据所述第一目标数据的第一拍列地址信息和第二拍列地址信息,将所述第一目标数据写入所述内存中。
9.根据权利要求8所述的方法,其特征在于,所述处理器与所述本地控制器之间用于传输地址信息的地址线位宽为N,所述方法还包括:
当所述第一目标数据的第一拍列地址信息与所述第二拍列地址信息所占的地址线位宽之和M小于2N时,所述本地控制器接收所述处理器发送的其他信息,所述其他信息占用2N-M位地址线位宽。
10.根据权利要求8所述的方法,其特征在于,所述第一拍列地址信息和所述第二拍列地址信息分别包括指示信息和拍列地址;其中,当所述指示信息为第一指示信息时,所述指示信息用于指示所述拍列地址为第一拍列地址;当所述指示信息为第二指示信息时,所述指示信息用于指示所述拍列地址为第二拍列地址。
11.根据权利要求10所述的方法,其特征在于,所述第一拍列地址信息和所述第二拍列地址信息还分别包括用于指示数据访问请求顺序的请求标识,且所述第一目标数据的第一拍列地址信息和所述第一目标数据的第二拍列地址信息包括的请求标识相同。
12.根据权利要求11所述的方法,其特征在于,若所述第一数据访问请求为读数据指令,所述本地控制器根据所述第一目标数据的第一拍列地址信息和第二拍列地址信息,从内存中获取第一目标数据之后,所述方法还包括:
所述本地控制器向所述处理器发送第一确认信息,所述第一确认信息用于指示所述本地控制器从所述内存中取出所述第一目标数据;
相应的,所述本地控制器将所述第一目标数据发送给所述处理器,包括:
当所述本地控制器接收到所述处理器发送的第一数据获取指令时,所述本地控制器将所述第一目标数据发送给所述处理器。
13.根据权利要求11所述的方法,其特征在于,当所述第一目标数据的第一拍列地址信息与第二目标数据的第一拍列地址相同时,所述方法还包括:
所述本地控制器接收所述处理器发送的第三数据访问请求,所述第三数据访问请求包含所述第二目标数据的第二拍列地址信息,所述第一目标数据的第一拍列地址信息与所述第二目标数据的第二拍列地址信息用于指示所述第二目标数据的地址;所述第三数据访问请求为写数据指令或者读数据指令,且所述第三数据访问请求与所述第一数据访问请求的指令类型相同;
其中,所述第二目标数据的第二拍列地址信息包括所述指示信息和所述拍列地址。
14.根据权利要求13所述的方法,其特征在于,所述本地控制器接收所述处理器发送的第三数据访问请求之后,所述方法还包括:
若所述第一数据访问请求为读数据指令,所述本地控制器根据所述第一目标数据的第一拍列地址信息和所述第二目标数据的第二拍列地址信息,从所述内存中获取第二目标数据,并将所述第二目标数据发送给所述处理器;
若所述第一数据访问请求为写数据指令,所述本地控制器接收所述处理器发送的所述第二目标数据,并根据所述第一目标数据的第一拍列地址信息和所述第二目标数据的第二拍列地址信息,将所述第二目标数据写入所述内存中。
15.一种内存地址总线扩展装置,其特征在于,所述装置包括:
发送单元,用于向本地控制器发送第一数据访问请求,所述第一数据访问请求包含第一目标数据的第一拍列地址信息;其中,所述第一数据访问请求为写数据指令或者读数据指令;
所述发送单元,还用于向所述本地控制器发送第二数据访问请求,所述第二数据访问请求包含所述第一目标数据的第二拍列地址信息,所述第一拍列地址信息和所述第二拍列地址信息用于指示所述第一目标数据的地址;其中,所述第二数据访问请求为写数据指令或者读数据指令,且所述第二数据访问请求与所述第一数据访问请求的指令类型相同;
接收单元,用于若所述第一数据访问请求为读数据指令,接收所述本地控制器发送的所述第一目标数据;
所述发送单元,还用于若所述第一数据访问请求为写数据指令,向所述本地控制器发送所述第一目标数据。
16.根据权利要求15所述的装置,其特征在于,所述内存地址总线扩展装置与所述本地控制器之间用于传输地址信息的地址线位宽为N,所述发送单元,还用于:
当所述第一目标数据的第一拍列地址信息与所述第二拍列地址信息所占用的地址线位宽之和M小于2N时,向所述本地控制器发送其他信息,所述其他信息占用2N-M位地址线位宽。
17.根据权利要求16所述的装置,其特征在于,所述第一拍列地址信息和所述第二拍列地址信息分别包括指示信息和拍列地址;其中,当所述指示信息为第一指示信息时,所述指示信息用于指示所述拍列地址为第一拍列地址;当所述指示信息为第二指示信息时,所述指示信息用于指示所述拍列地址为第二拍列地址。
18.根据权利要求17所述的装置,其特征在于,所述第一拍列地址信息和所述第二拍列地址信息还分别包括用于指示数据访问请求顺序的请求标识,且所述第一目标数据的第一拍列地址信息和所述第一目标数据的第二拍列地址信息包括的请求标识相同。
19.根据权利要求18所述的装置,其特征在于,
所述接收单元,还用于接收所述本地控制器发送的第一确认信息,所述第一确认信息用于指示所述本地控制器从所述内存中取出所述第一目标数据;
所述发送单元,还用于根据所述第一确认信息向所述本地控制器发送第一数据获取指令,所述第一数据获取指令用于获取所述第一目标数据。
20.根据权利要求17所述的装置,其特征在于,当所述第一目标数据的第一拍列地址信息与第二目标数据的第一拍列地址相同时,
所述发送单元,还用于向所述本地控制器发送第三数据访问请求,所述第三数据访问请求包含所述第二目标数据的第二拍列地址信息,所述第一目标数据的第一拍列地址信息与所述第二目标数据的第二拍列地址信息用于指示所述第二目标数据的地址;所述第三数据访问请求为写数据指令或者读数据指令,且所述第三数据访问请求与所述第一数据访问请求的指令类型相同;
其中,所述第二目标数据的第二拍列地址信息包括所述指示信息和所述拍列地址。
21.根据权利要求20所述的装置,其特征在于,
所述接收单元,还用于若所述第一数据访问请求为读数据指令,接收所述本地控制器发送的所述第二目标数据;
所述发送单元,还用于若所述第一数据访问请求为写数据指令,向所述本地控制器发送所述第二目标数据。
22.一种内存地址总线扩展装置,其特征在于,所述装置包括:
接收单元,用于接收处理器发送的第一数据访问请求,所述第一数据访问请求包含第一目标数据的第一拍列地址信息;其中,所述第一数据访问请求为写数据指令或者读数据指令;
所述接收单元,还用于接收所述处理器发送的第二数据访问请求,所述第二数据访问请求包含所述第一目标数据的第二拍列地址信息,所述第一拍列地址信息和所述第二拍列地址信息用于指示所述第一目标数据的地址;其中,所述第二数据访问请求为写数据指令或者读数据指令,且所述第二数据访问请求与所述第一数据访问请求的指令类型相同;
获取单元,用于若所述第一数据访问请求为读数据指令,所述本地控制器根据所述第一目标数据的第一拍列地址信息和第二拍列地址信息,从内存中获取所述第一目标数据;发送单元,用于将所述第一目标数据发送给所述处理器;
所述接收单元,还用于若所述第一数据访问请求为写数据指令,接收所述处理器发送的所述第一目标数据;写入单元,用于根据所述第一目标数据的第一拍列地址信息和第二拍列地址信息,将所述第一目标数据写入所述内存中。
23.根据权利要求22所述的装置,其特征在于,所述处理器与所述内存地址总线扩展装置之间用于传输地址信息的地址线位宽为N,
所述接收单元,还用于当所述第一目标数据的第一拍列地址信息与所述第二拍列地址信息所占的地址线位宽之和M小于2N时,接收所述处理器发送的其他信息,所述其他信息占用2N-M位地址线位宽。
24.根据权利要求22所述的装置,其特征在于,所述第一拍列地址信息和所述第二拍列地址信息分别包括指示信息和拍列地址;其中,当所述指示信息为第一指示信息时,所述指示信息用于指示所述拍列地址为第一拍列地址;当所述指示信息为第二指示信息时,所述指示信息用于指示所述拍列地址为第二拍列地址。
25.根据权利要求24所述的装置,其特征在于,所述第一拍列地址信息和所述第二拍列地址信息还分别包括用于指示数据访问请求顺序的请求标识,且所述第一目标数据的第一拍列地址信息和所述第一目标数据的第二拍列地址信息包括的请求标识相同。
26.根据权利要求25所述的装置,其特征在于,
所述发送单元,还用于向所述处理器发送第一确认信息,所述第一确认信息用于指示所述本地控制器从所述内存中取出所述第一目标数据;
相应的,所述发送单元,还具体用于当所述接收单元接收到所述处理器发送的第一数据获取指令时,将所述第一目标数据发送给所述处理器。
27.根据权利要求25所述的装置,其特征在于,当所述第一目标数据的第一拍列地址信息与第二目标数据的第一拍列地址相同时,
所述接收单元,还用于接收所述处理器发送的第三数据访问请求,所述第三数据访问请求包含所述第二目标数据的第二拍列地址信息,所述第一目标数据的第一拍列地址信息与所述第二目标数据的第二拍列地址信息用于指示所述第二目标数据的地址;所述第三数据访问请求为写数据指令或者读数据指令,且所述第三数据访问请求与所述第一数据访问请求的指令类型相同;
其中,所述第二目标数据的第二拍列地址信息包括所述指示信息和所述拍列地址。
28.根据权利要求27所述的装置,其特征在于,
所述获取单元,还用于若所述第一数据访问请求为读数据指令,根据所述第一目标数据的第一拍列地址信息和所述第二目标数据的第二拍列地址信息,从所述内存中获取第二目标数据;所述发送单元,还用于将所述第二目标数据发送给所述处理器;
所述接收单元,还用于若所述第一数据访问请求为写数据指令,接收所述处理器发送的所述第二目标数据;所述写入单元,还用于根据所述第一目标数据的第一拍列地址信息和所述第二目标数据的第二拍列地址信息,将所述第二目标数据写入所述内存中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610716253.8A CN107783909B (zh) | 2016-08-24 | 2016-08-24 | 一种内存地址总线扩展方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610716253.8A CN107783909B (zh) | 2016-08-24 | 2016-08-24 | 一种内存地址总线扩展方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107783909A true CN107783909A (zh) | 2018-03-09 |
CN107783909B CN107783909B (zh) | 2021-09-14 |
Family
ID=61388466
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610716253.8A Active CN107783909B (zh) | 2016-08-24 | 2016-08-24 | 一种内存地址总线扩展方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107783909B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111050048A (zh) * | 2019-12-27 | 2020-04-21 | 重庆金山医疗技术研究院有限公司 | 图像采集设备、方法及存储介质 |
CN111274182A (zh) * | 2020-02-21 | 2020-06-12 | 天津飞腾信息技术有限公司 | 一种总线地址拓展的方法及装置 |
CN111459419A (zh) * | 2020-06-17 | 2020-07-28 | 深圳市芯天下技术有限公司 | 用于flash的无感扩容方法、系统、存储介质和终端 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5161218A (en) * | 1989-11-13 | 1992-11-03 | Chips And Technologies, Inc. | Memory controller for using reserved DRAM addresses for EMS |
US20030046356A1 (en) * | 1999-11-08 | 2003-03-06 | Alvarez Manuel Joseph | Method and apparatus for transaction tag assignment and maintenance in a distributed symmetric multiprocessor system |
CN1731369A (zh) * | 2004-08-05 | 2006-02-08 | 中兴通讯股份有限公司 | 扩展存贮空间的装置和随机访问方法 |
CN1959661A (zh) * | 2006-11-21 | 2007-05-09 | 北京中星微电子有限公司 | 一种总线接口装置和方法 |
CN101071624A (zh) * | 2006-05-11 | 2007-11-14 | 上海集通数码科技有限责任公司 | 一种带扩展输入/输出接口的存储器芯片 |
CN101488119A (zh) * | 2009-03-03 | 2009-07-22 | 华为技术有限公司 | 地址译码方法、装置及单板 |
CN103077123A (zh) * | 2013-01-15 | 2013-05-01 | 华为技术有限公司 | 一种数据写入和读取方法及装置 |
CN104731525A (zh) * | 2015-02-06 | 2015-06-24 | 北京航天自动控制研究所 | 一种兼容不同位宽支持非对齐访问的fpga片内存储控制器 |
CN105095138A (zh) * | 2015-06-29 | 2015-11-25 | 中国科学院计算技术研究所 | 一种扩展同步内存总线功能的方法和装置 |
-
2016
- 2016-08-24 CN CN201610716253.8A patent/CN107783909B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5161218A (en) * | 1989-11-13 | 1992-11-03 | Chips And Technologies, Inc. | Memory controller for using reserved DRAM addresses for EMS |
US20030046356A1 (en) * | 1999-11-08 | 2003-03-06 | Alvarez Manuel Joseph | Method and apparatus for transaction tag assignment and maintenance in a distributed symmetric multiprocessor system |
CN1731369A (zh) * | 2004-08-05 | 2006-02-08 | 中兴通讯股份有限公司 | 扩展存贮空间的装置和随机访问方法 |
CN101071624A (zh) * | 2006-05-11 | 2007-11-14 | 上海集通数码科技有限责任公司 | 一种带扩展输入/输出接口的存储器芯片 |
CN1959661A (zh) * | 2006-11-21 | 2007-05-09 | 北京中星微电子有限公司 | 一种总线接口装置和方法 |
CN101488119A (zh) * | 2009-03-03 | 2009-07-22 | 华为技术有限公司 | 地址译码方法、装置及单板 |
CN103077123A (zh) * | 2013-01-15 | 2013-05-01 | 华为技术有限公司 | 一种数据写入和读取方法及装置 |
CN104731525A (zh) * | 2015-02-06 | 2015-06-24 | 北京航天自动控制研究所 | 一种兼容不同位宽支持非对齐访问的fpga片内存储控制器 |
CN105095138A (zh) * | 2015-06-29 | 2015-11-25 | 中国科学院计算技术研究所 | 一种扩展同步内存总线功能的方法和装置 |
Non-Patent Citations (1)
Title |
---|
赵林: ""大容量高速数据记录器的设计与实现"", 《中国优秀硕士学位论文全文数据库 工程科技Ⅱ辑》 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111050048A (zh) * | 2019-12-27 | 2020-04-21 | 重庆金山医疗技术研究院有限公司 | 图像采集设备、方法及存储介质 |
CN111274182A (zh) * | 2020-02-21 | 2020-06-12 | 天津飞腾信息技术有限公司 | 一种总线地址拓展的方法及装置 |
CN111459419A (zh) * | 2020-06-17 | 2020-07-28 | 深圳市芯天下技术有限公司 | 用于flash的无感扩容方法、系统、存储介质和终端 |
Also Published As
Publication number | Publication date |
---|---|
CN107783909B (zh) | 2021-09-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3091439B1 (en) | Multi-bank memory with multiple read ports and multiple write ports per cycle | |
JP2575557B2 (ja) | スーパーコンピユータシステム | |
US7451273B2 (en) | System, method and storage medium for providing data caching and data compression in a memory subsystem | |
CN109074333A (zh) | 非确定性存储器协议 | |
CN102681946B (zh) | 内存访问方法和装置 | |
CN110083555A (zh) | 具有独立接口路径的存储器设备的通用管芯实现 | |
TWI312938B (en) | Interface circuit, system, and method for interfacing between buses of different widths | |
TW388982B (en) | Memory controller which executes read and write commands out of order | |
CN108701081A (zh) | 用于同时存取非易失性存储器的多个分区的设备和方法 | |
US20080147969A1 (en) | Separate Handling of Read and Write of Read-Modify-Write | |
CN105408875B (zh) | 在存储器接口上的分布式过程执行和文件系统 | |
CN102597971A (zh) | 具有多个虚拟队列的地址转换单元 | |
CN105528299B (zh) | 读取命令排程方法以及使用该方法的装置 | |
KR20200123260A (ko) | 캐시 및 다중 독립 어레이를 갖는 메모리용 인터페이스 | |
US5901291A (en) | Method and apparatus for maintaining message order in multi-user FIFO stacks | |
CN107783909A (zh) | 一种内存地址总线扩展方法及装置 | |
JPS6217876Y2 (zh) | ||
EP1026600B1 (en) | Method and apparatus for interfacing with RAM | |
KR20010050236A (ko) | 데이터 처리 장치 및 방법과 컴퓨터 프로그램 제품 | |
US6629215B2 (en) | Multiple port memory apparatus | |
EP3244582B1 (en) | Switch and data accessing method thereof | |
US5278800A (en) | Memory system and unique memory chip allowing island interlace | |
JPS592058B2 (ja) | 記憶装置 | |
US5926840A (en) | Out-of-order fetching | |
US20080005417A1 (en) | Method for speedy delivery of data between processors and digital processing apparatus having shared memory |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |