WO2012079436A1 - 一种存储器接口访问控制方法及装置 - Google Patents

一种存储器接口访问控制方法及装置 Download PDF

Info

Publication number
WO2012079436A1
WO2012079436A1 PCT/CN2011/081982 CN2011081982W WO2012079436A1 WO 2012079436 A1 WO2012079436 A1 WO 2012079436A1 CN 2011081982 W CN2011081982 W CN 2011081982W WO 2012079436 A1 WO2012079436 A1 WO 2012079436A1
Authority
WO
WIPO (PCT)
Prior art keywords
read
memory
instruction
write
instruction queue
Prior art date
Application number
PCT/CN2011/081982
Other languages
English (en)
French (fr)
Inventor
黄科
Original Assignee
中兴通讯股份有限公司
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by 中兴通讯股份有限公司 filed Critical 中兴通讯股份有限公司
Publication of WO2012079436A1 publication Critical patent/WO2012079436A1/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller

Definitions

  • the present invention relates to the field of Double Data Rate Synchronous Dynamic Random Access Memory (DDR) technology, and more particularly to a memory interface access method and apparatus.
  • DDR Double Data Rate Synchronous Dynamic Random Access Memory
  • DDRX type memory is widely used in various communication devices, including DDR, DDRII, and DDRIII, double-rate data bus memory, compared to SSRAM (Synchronous Static Random Access Memory), DDR Unit storage density (single particle up to 1Gbit), high interface speed (up to 1.333Ghz) and low cost, become one of the most important devices in memory.
  • SSRAM Synchronous Static Random Access Memory
  • DDR Unit storage density single particle up to 1Gbit
  • high interface speed up to 1.333Ghz
  • low cost become one of the most important devices in memory.
  • FIG. 1 shows a typical DDRX interface read and write access timing diagram.
  • the main steps include: power-on initialization, mode register loading, Active, Write, Read, Precharge. , Refresh, etc.
  • the power-on initialization and mode registers are only executed once during Power up, with little effect on efficiency. Therefore, access to the stored unit is mainly around the Active, Write, Read, Precharge, Refresh commands.
  • tRC that is, Active to Active time interval
  • the burst read and write length is 9tCK (tCK refers to the clock period)
  • tRC has not become a constraint bottleneck.
  • the burst read and write length is 6tCK, and it is necessary to add 3 NOP (empty) operations to meet the tRC requirement, which further reduces the effective data throughput rate.
  • a 32-bit wide device class is used to increase the interface bandwidth.
  • Type when Burst is 2, a burst can access 8 bytes of content. In some applications with short data entries, using a higher Burst length is not beneficial for improving efficiency. Therefore, in the existing application, the effective bandwidth of the DDRX is very low, and the actual utilization rate of the bandwidth resource is only about one tenth, regardless of the interface with multiple high rates.
  • the present invention provides a memory interface access control device, where the device includes: an address controller, an instruction queue, and an instruction queue scanner, wherein the address controller and the data storage application layer Connected, the instruction queue scanner is connected to an interface controller of the memory,
  • the address controller is configured to: map the read and write instructions issued by the data storage application layer to different spaces of the memory, and send the read and write instructions in different spaces of the memory to the corresponding instruction queue;
  • the instruction queue is set to buffer the received read and write instructions
  • the instruction queue scanner is arranged to sequentially read and write instructions from each instruction queue and to the interface controller of the memory.
  • the address controller is configured to store an application layer access address according to a data in the read/write instruction, and map the read and write instructions to different spaces of the memory.
  • the number of instruction queues is the same as the number of slices (BANK) of the memory.
  • the address controller is configured to map the read/write instructions to different spaces of the memory according to the data storage application layer access address according to the following manner: setting the address storage space size of the data storage application layer to be M, the space of the memory The size is P, and the number of BANKs of the memory is N, then the mapped access address m' of the data storage application layer access address m is:
  • round[x] is a rounding operation.
  • the instruction queue scanner is configured to read and write instructions from each instruction queue as follows:
  • the present invention also provides a memory interface access control method, the method comprising: mapping read and write instructions issued by a data storage application layer to different spaces of a memory; and sequentially reading and writing instructions from respective spaces of the memory , sent to the interface controller of the memory.
  • the method further includes:
  • the step of sequentially reading the read and write instructions from the respective spaces of the memory includes: sequentially reading the read and write instructions from the respective instruction queues.
  • the step of mapping the read and write instructions to different spaces of the memory respectively comprises: storing the application layer access addresses according to data in the read and write instructions, and mapping the read and write instructions to different spaces of the memory, respectively.
  • the address storage space size of the data storage application layer be M
  • the space size of the memory is P
  • the number of BANKs of the memory is N
  • round[x] is a rounding operation.
  • the steps of sequentially reading and writing instructions from each instruction queue include:
  • the present invention can effectively improve the throughput bandwidth of the DDRX memory, and can achieve the same effect for both the read operation and the write operation, and improve the access efficiency of the memory, thereby improving the overall performance of the device.
  • Figure 1 is a timing diagram of a DDR access interface including read and write
  • FIG. 2 is a schematic structural diagram of a memory interface access control apparatus according to an embodiment of the present invention
  • FIG. 3 is a schematic diagram of an algorithm of a queue scanner according to an embodiment of the present invention
  • FIG. 4 is a schematic diagram of implementing a DDR2 memory access interface according to an embodiment of the present invention
  • FIG. 5 is a schematic diagram of a DDR access interface for continuous read operation when the present invention is not used
  • FIG. 6 is a DDR access for continuous read operation after using the scheme of the present invention. Interface diagram.
  • the basic idea of the present invention is that the tRRD of the DDRX device is small, generally only two
  • the tCK feature converts the random read and write sequence of the DDRX address space into a controlled access procedure, allowing adjacent read and write operations to be distributed across different BANKs. In this way, random read and write operations are converted into ordered, controllable operations, thereby effectively improving bandwidth utilization.
  • the present invention provides a memory interface access control method, which specifically uses the following technical solutions:
  • the instructions issued by the data storage application layer are respectively mapped into different spaces of the memory; and instructions are sequentially read from the respective spaces of the memory and sent to the interface controller of the memory.
  • the instruction includes a read instruction or a write instruction.
  • the storage layer application address is stored according to the data in the read/write instruction, and the read and write instructions are respectively mapped into corresponding spaces of the memory.
  • the method further includes:
  • the step of sequentially reading the instructions from the respective spaces of the memory includes: sequentially reading the read and write instructions from the respective instruction queues. Further, the read and write instructions may be mapped to different spaces of the memory according to a data storage application layer access address in the following manner:
  • the address storage space of the data storage application layer be M
  • the space size of the memory is P
  • the number of BANKs of the memory is N
  • the mapped access address m' of the data storage application layer access address m is:
  • round[x] is a rounding operation.
  • DDRX interface controllers Between the DDRX interface controllers, read and write instructions are issued from the data storage application layer as needed, and the DDRX interface control converts the read and write instructions into DDRX access interfaces. After the read/write instruction issued by the data storage application layer is processed by the apparatus of the present invention, the processed read/write instruction is sent to the DDRX interface controller.
  • the memory interface access control apparatus of the embodiment of the present invention mainly includes three parts: an address controller, an instruction queue, and a queue scanner.
  • the address controller is mainly used to remap the addresses in the read and write instructions sent by the data storage application layer.
  • the specific mapping method can be as follows:
  • the address storage space size of the data storage application layer is M
  • the space size of the DDRX device is P
  • the number of BANKs of the DDRX device is N.
  • Address access space Map to device space: I ⁇ ! ⁇ + - i.
  • the read/write instructions in the space 0 ⁇ -1 are sent to the instruction queue 1
  • the read/write instructions in the space-1 are sent to the instruction queue 2.
  • the read/write instructions in the space ⁇ + -1 are sent to the instruction queue 3
  • the read/write instructions in the space ⁇ + -1 are sent to the instruction queue 4.
  • the input of the instruction queue is connected to the output of the address controller.
  • the number of instruction queues is related to the DDRX device type, for example, the same number of BANKs as the DDRX device.
  • the buffered instructions in the queue are FIFO for scheduling.
  • the queue scanner sequentially scans each instruction queue (hereinafter also referred to as a queue) according to the clock tick. If the queue is not empty, an instruction is read from the output of the queue and stored in the buffer of the scanner, and if the queue is empty, the scan is performed. Next queue. Preferably, if after 2 or more queue scans, it is determined that only one queue is always empty, and other queues are always empty, then the number of read and write instructions in each read queue is increased, and the addresses are consecutive. The read or write instructions are combined into one read/write instruction, the Burst length is adjusted, and then sent to the DDRX interface controller for processing.
  • FIG. 3 shows a specific operation flow of the queue scanner in the embodiment of the present invention. As shown in FIG. 3, the method is as follows: 3:4:
  • Step 1 Scan the instruction queue
  • Step 2 Determine whether the instruction queue is empty. If it is empty, move to the next instruction queue to scan; if it is not empty, proceed to the next step;
  • Step 3 Take an instruction from the current queue
  • Step 4 After determining whether the queue is scanned twice consecutively, only the current queue is not empty. If yes, step 5 is performed. If not, an instruction is taken from the current queue, and then moved to the next instruction queue for scanning;
  • Step 5 Increase the number of parameters f of the fetch instruction once, and merge the instructions of the k read/write instructions into one instruction.
  • the storage access by the application layer initiates read and write requests through three sets of signals, including: a write command signal consisting of wr_en, cmd, wr_data, and wr_addr; a read consisting of rd-en, cmd, and rd-addr a command signal; and a read data valid indication signal consisting of rd_data and data_valid.
  • the write command signal and the read command signal are routed through the corresponding wr-cmd-fifo and rd-cmd-fifo to facilitate the command controller to perform scheduling.
  • the access address processed by cmd-fifo needs to be mapped. Its function is to map the address table in the application layer to different BANKs in the DDRII memory, so that the accessed data is evenly mapped in 8 different BANKs.
  • the mapped address and the corresponding command are combined into one access command field, and are respectively imported into the instruction queue of 1-8 according to different BANK numbers, and each read access command field is assigned a unique serial number for distinguishing the output.
  • the access instruction buffer sequentially fetches the instruction fields from the eight queues of wr_cmd-fifo and rd_cmd-fifo according to the instruction execution cycle, wherein for the read instruction, a sequence number is added according to the order of fetching, and finally the instruction is executed. Pressed into the buffer to be processed by the DDR interface controller and converted to the access interface timing of the DDRII device.
  • the data read from the DDRII device needs to be de-stained according to the coloring sequence, so that the data output conforms to the order in which the command is initiated.
  • the effective access bandwidth of the DDRX memory can be effectively improved.
  • the access interface designed by the present invention is not used, and 18 tCKs are required to read 8 data; as shown in FIG. With the access interface designed by the present invention, only 9 tCKs are required to read 8 data. It can be seen that the effective access bandwidth of the solution of the present invention is increased by 50% compared with the original scheme, and the effect is remarkable.
  • modules or steps of the present invention can be implemented by a general-purpose computing device, which can be concentrated on a single computing device or distributed over a network composed of multiple computing devices. Alternatively, they may be implemented by program code executable by the computing device, such that they may be stored in the storage device by the computing device and, in some cases, may be different from the order herein.
  • the steps shown or described are performed, or they are separately fabricated into individual integrated circuit modules, or a plurality of modules or steps are fabricated as a single integrated circuit module.
  • the invention is not limited to any particular combination of hardware and software.
  • the present invention can effectively improve the throughput bandwidth of the DDRX memory, and can achieve the same effect for both the read operation and the write operation, and improve the access efficiency of the memory, thereby improving the overall performance of the device.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Dram (AREA)
  • Image Input (AREA)

Description

一种存储器接口访问控制方法及装置
技术领域
本发明涉及双倍速率同步动态随机存储器( Double Data Rate Synchronous Dynamic Random Access Memory , 以下简称 DDR )技术领域, 更具体地, 涉 及一种存储器接口访问方法及装置。
背景技术
DDRX类型存储器在各种通信设备中得到广泛应用, 包括 DDR、 DDRII 以及 DDRIII等釆用双倍速率的数据总线存储器,相对于 SSRAM( Synchronous Static Random Access Memory, 同步静态随机存取存储器) , DDR以单位存 储密度大(单颗粒可达 1Gbit ) , 接口速率高(最高可达 1.333Ghz ) 以及成本 低等优势, 成为存储器中最重要的器件之一。
为了实现上述种种的优异特性, 在器件的设计上也必然需要付出很多代 价。 为实现单片更大存储容量的指标, 需要在每个存储单元尽可能釆用更少 的晶体管 ( SSRAM每个存储单元至少需要六个晶体管 ) , 但同时也使得访问 控制电路的复杂性提高。 为提高接口速率, 需要釆用更高的预存取倍数。 由 于单颗粒地址空间密度的提高, 为减少地址管脚的数量, 外部地址寻址都釆 用行列寻址方式, 将寻址命令分解两步完成, 等等。 这些技术使得存储器的 读写访问接口日趋复杂, 指令带宽比例也随着提高。
DDRX存储器接口速率已经提高到吉赫兹数量级, 但是实际接口访问带 宽却并不能达到很高的利用率。 图 1示出了一个典型的 DDRX接口读写访问 时序图,主要的操作步骤包括:上电初始化、模式寄存器加载、 Active (激活)、 Write (写) 、 Read (读) 、 Precharge (预充电 ) 、 Refresh (刷新)等。 上电 初始化和模式寄存器只在 Power up (上电) 时执行一次, 对效率影响不大。 因此,对存储的单元访问主要围绕着 Active, Write, Read, Precharge, Refresh 这几个命令展开。 以 DDR器件为例, Burst (突发)长度为 8时, 有效带宽 44%, Burst长度为 4时, 有效带宽降到 22%, Burst长度为 2时, 有效带宽降 到 11%。 当然, 如果使读写地址始终都能够连续操作, 读写带宽理论可以达 到 99%, 但这仅限于器件的理论值, 在实际应用中读写地址分布是随机的。 除了必要开销操作以外, DDRX访问时序还有一些限制, 以 DDR器件为例, 涉及的主要参数如下表 1所示。
表 1
Figure imgf000004_0001
其中最主要影响性能的参数是 tRC (即 Active到 Active的时间间隔) , 当 Burst长度为 8, —次突发读写长度为 9tCK ( tCK指时钟周期), tRC还没 成为制约瓶颈。 而当 Burst长度为 2时, 一次突发读写长度为 6tCK, 此时需 要增加 3个 NOP (空)操作, 才能满足 tRC要求, 这使得有效数据吞吐率进 一步降低。
在实际的 DDR存储器设计中, 为提高接口带宽多釆用 32位宽的器件类 型, 在 Burst为 2时, 一次突发可以存取 8个字节内容, 在一些数据表项较短 的应用中, 釆用更高 Burst长度对提高效率并无益处。 由此, 在现有的应用场 合下, DDRX有效带宽非常低, 无论多高速率的接口, 带宽资源实际利用率 只有十分之一左右。
发明内容
本发明的目的是提供一种存储器接口访问控制方法及装置,提高 DDR存 储器的访问效率, 有效提高存储器带宽利用率。
为解决上述技术问题, 本发明提供了一种存储器接口访问控制装置, 所 述装置包括依次相连的: 地址控制器、 指令队列和指令队列扫描器, 其中, 所述地址控制器与数据存储应用层相连, 所述指令队列扫描器与存储器的接 口控制器相连,
所述地址控制器设置成: 将所述数据存储应用层发出的读写指令分别映 射到存储器的不同空间, 并将所述存储器的不同空间中的读写指令发送到相 应的指令队列中;
指令队列设置成緩存收到的读写指令;
指令队列扫描器设置成依次从各指令队列中读取读写指令, 并发送到所 述存储器的接口控制器。
所述地址控制器是设置成根据所述读写指令中的数据存储应用层访问地 址, 将所述读写指令分别映射到所述存储器的不同空间。
所述指令队列的个数与所述存储器的片 (BANK ) 的数目相同。
所述地址控制器是设置成根据数据存储应用层访问地址按照以下方式将 所述读写指令分别映射到所述存储器的不同空间: 设数据存储应用层的地址访问空间大小为 M, 存储器的空间大小为 P, 存储器的 BANK数为 N,则数据存储应用层访问地址 m的经过映射转换后的 访问地址 m'为:
, J,. m ,T, P χ Γ1 .
m = round]— x Nlx v m - round]— x Nlx— ,
M N M N 其中, round[x]为取整运算。
所述指令队列扫描器是设置成通过如下方式从各指令队列中读取读写指 令:
依次扫描各指令队列, 如果当前指令队列不为空, 则从当前指令队列中 读取一条读写指令存入所述指令队列扫描器内部的緩存器中, 如果当前指令 队列为空, 则扫描下一个指令队列; 以及
如果经过 2次或 2次以上全部指令队列扫描后, 判断只有一个指令队列 始终不为空, 且其他指令队列始终为空, 则增大每次从指令队列中读取读写 指令的条数, 将读取的地址连续的读写指令合并为一条读写指令, 并调整读 写指令的突发(Burst )参数。
本发明还提供了一种存储器接口访问控制方法, 所述方法包括: 将数据存储应用层发出的读写指令分别映射到存储器的不同空间; 以及 依次从所述存储器的各个空间读取读写指令, 发送到所述存储器的接口 控制器中。
该方法在将所述读写指令分别映射到所述存储器的不同空间的步骤之 后, 还包括:
将所述存储器的不同空间中的读写指令分别发送到相应的指令队列中, 其中所述指令队列的个数与所述存储器的 BANK的数目相同;
依次从所述存储器的各个空间读取读写指令的步骤包括: 依次从各指令 队列中读取读写指令。
将所述读写指令分别映射到存储器的不同空间的步骤包括: 根据所述读 写指令中的数据存储应用层访问地址, 将所述读写指令分别映射到所述存储 器的不同空间。
根据数据存储应用层访问地址将所述读写指令分别映射到所述存储器的 不同空间的步骤中:
设数据存储应用层的地址访问空间大小为 M, 存储器的空间大小为 P, 存储器的 BANK数为 N,则数据存储应用层访问地址 m的经过映射转换后的 访问地址 m'为: ηί = round— x Nl x— + m - round— x Nl x—;
M N M N
其中, round[x]为取整运算。
依次从各个指令队列中读取读写指令的步骤包括:
依次扫描各指令队列, 如果当前指令队列不为空, 则从当前指令队列中 读取一条读写指令存入内部緩存器中, 如果当前指令队列为空, 则扫描下一 个指令队列; 以及
如果经过 2次或 2次以上全部指令队列扫描后, 判断只有一个指令队列 始终不为空, 且其他指令队列始终为空, 则增大每次从指令队列中读取读写 指令的条数, 将读取的地址连续的读写指令合并为一条读写指令, 并调整读 写指令的 Burst参数。
与现有技术相比, 本发明能够有效提高 DDRX存储器的吞吐带宽, 且对 读操作和写操作均能达到同样效果, 并且提高了存储器的访问效率, 从而提 升设备的整体性能。
附图概述
此处所说明的附图用来提供对本发明的进一步理解, 构成本申请的一部 分, 本发明的示意性实施例及其说明用于解释本发明, 并不构成对本发明的 不当限定。 在附图中:
图 1为包含读写的 DDR访问接口时序示意图;
图 2为本发明实施例的存储器接口访问控制装置的组成示意图; 图 3为本发明实施例的队列扫描器的算法示意图;
图 4为依据本发明实施例的实现 DDR2存储器访问接口示意图; 图 5为未釆用本发明方案时连续读操作的 DDR访问接口示意图; 图 6为釆用本发明方案后连续读操作的 DDR访问接口示意图。
本发明的较佳实施方式
本发明的基本思想在于, 利用 DDRX器件的 tRRD较小, 一般只有 2个 tCK的特性, 将对 DDRX地址空间的随机读写操作序列转换为有控制的访问 过程, 使相邻的读写操作分布在不同的 BANK (片)上。 这样, 将随机的读 写操作转换为有序的、 可控制的操作, 从而有效提高了带宽利用率。 基于上述思想, 本发明提供一种存储器接口访问控制方法, 具体釆用如 下技术方案:
将数据存储应用层发出的指令分别映射到存储器的不同空间中; 以及 依次从所述存储器的各个空间读取指令, 发送到所述存储器的接口控制 器中。
其中, 所述指令包括读指令或写指令。
其中, 根据所述读写指令中的数据存储应用层访问地址, 将所述读写指 令分别映射到所述存储器的相应空间中。
进一步地, 在将所述读写指令映射到所述存储器的不同空间中后, 所述 方法还包括:
将所述存储器的不同空间的读写指令分别发送到相应的指令队列中, 其 中所述指令队列的个数与所述存储器的 BANK的数目相同;
依次从所述存储器的各个空间读取指令的步骤包括: 依次从各指令队列 中读取读写指令。 进一步地, 可以根据数据存储应用层访问地址按照以下方式将所述读写 指令映射到所述存储器的不同空间:
设数据存储应用层的地址访问空间大小为 M, 存储器的空间大小为 P, 存储器的 BANK数为 N,则数据存储应用层访问地址 m的经过映射转换后的 访问地址 m'为:
, J,. m ,T, P χ Γ1 .
m = round]— x Nlx v m - round]— x Nlx— ,
M N M N
其中, round[x]为取整运算。
为了便于阐述本发明, 以下将结合附图及具体实施例对本发明技术方案 的实施作进一步详细描述。 需要说明的是, 在不冲突的情况下, 本申请中的 实施例及实施例中的特征可以相互任意组合。 实施例一
本发明实施例提供的存储器接口访问控制装置设在数据存储应用层和
DDRX接口控制器之间, 读写指令从数据存储应用层根据需要发出, DDRX 接口控制将读写指令转换为 DDRX的访问接口。 通过本发明装置对数据存储 应用层发出的读写指令进行处理后, 再将处理后的读写指令发送给 DDRX接 口控制器。
如图 2所示, 本发明实施例的存储器接口访问控制装置主要包括三个部 分: 地址控制器、 指令队列和队列扫描器。
地址控制器主要用于将数据存储应用层发送的读写指令中的地址重新映 射。 具体的映射方法可按照以下步骤:
假设数据存储应用层的地址访问空间大小为 M, DDRX器件的空间大小 为 P, DDRX器件的 BANK数为 N。
则将地址访问空间: 0〜 - 1映射到器件空间: 0〜 - 1;
将地址访问空间: 〜 映射到器件空间: κ ι
……
将地址访问空间: 映射到器件空间: I ^〜! ^+ - i。 地址控制器完成地址映射后, 将不同地址空间的读写指令发送对应的指 令队列中。
本实施例中, 如图 2所示, 共有 4个指令队列, 则: 空间 0〜 -1内的读 写指令发送到指令队列 1中, 空间 -1内的读写指令发送到指令队列 2 中, 空间 〜 +普 -1内的读写指令发送到指令队列 3中, 空间 ~ + -1内的 读写指令发送到指令队列 4中。 指令队列的输入连接到地址控制器的输出, 指令队列的数量设置与 DDRX器件类型有关,例如可以与 DDRX器件的 BANK数量相同。 队列中緩 冲的指令先进先出等待调度。
队列扫描器根据时钟节拍依次扫描各个指令队列 (下文中也简称为队 列) , 如果队列不为空就从队列的输出读取一条指令存入扫描器内部的緩存 器中, 如果队列为空就扫描下一个队列。 优选地, 如果经过 2次或以上全部队列扫描后, 判断只有一个队列始终 不为空, 而其他队列始终为空, 则增大每次读取队列中读写指令条数, 并将 地址连续的读或者写指令合并为一条读写指令, 调整 Burst长度, 再发送到 DDRX接口控制器处理。
图 3示出了本发明实施例中队列扫描器的具体操作流程, 如图 3所示, 该;克程4 述:¾口下:
步骤 1 , 扫描指令队列;
步骤 2 , 判断指令队列是否为空, 如果为空, 则移动到下一指令队列进 行扫描; 如果不为空, 则继续下一步骤;
步骤 3 , 从当前队列中取出一条指令;
步骤 4, 判断是否连续 2次全部队列扫描后, 只有当前队列不为空, 如 果是, 则执行步骤 5 , 如果不是, 则从当前队列中取出一条指令后, 移动到 下一指令队列进行扫描;
步骤 5 , 增大一次取出指令的条数参数 k, 并将这 k条读写指令中地址连 续的指令合并成一条指令。
实施例二
图 4所示以 DDRII器件为例描述本专利的一个实施例。 由应用层的存储 访问通过三组信号发起读写请求, 包括: 由 wr— en、 cmd、 wr— data和 wr— addr 组成的写命令信号; 由 rd— en、 cmd和 rd— addr组成的读命令信号; 以及, 由 rd— data和 data— valid组成的读数据有效指示信号。 其中写命令信号和读命令 信号经过相应的 wr— cmd— fifo和 rd— cmd— fifo, 将应用层的访问命令流进行疏 导, 便于命令控制器进行调度。
经过 cmd— fifo处理后的访问地址需要进行映射处理, 其作用是将应用层 中地址表映射到 DDRII存储器中的不同 BANK中,使访问的数据均匀映射在 8个不同的 BANK中。映射后的地址和相应的命令组合成一条访问命令字段, 按照不同 BANK号分别导入 1-8的指令队列中, 同时为每条读访问命令字段 分配一个唯一序号用于区分输出。 访问指令緩冲区按照指令执行周期依次从 wr— cmd— fifo和 rd— cmd— fifo的 8 个队列中依次取出指令字段, 其中对于读指令需要根据取出的顺序再增加 一个序号着色, 最后将指令压入緩冲区内待 DDR接口控制器进行处理,转换 为 DDRII器件的访问接口时序。
从 DDRII器件中读出的数据除了输出数据有效信号 data— valid以外, 还 需要根据着色序号进行去着色处理, 使之数据输出符合命令发起的次序。
釆用本发明设计方案, 可以有效提高 DDRX存储器的有效访问带宽, 如 图 5所示, 未釆用本发明设计的访问接口, 读取 8个数据需要 18个 tCK; 如 图 6所示, 釆用本发明设计的访问接口, 读取 8个数据仅需要 9个 tCK。 可 见釆用本发明方案的有效访问带宽较原来的方案提高 50%, 效果显著。
以上仅为本发明的优选实施案例而已, 并不用于限制本发明, 本发明还 可有其他多种实施例, 在不背离本发明精神及其实质的情况下, 熟悉本领域 的技术人员可根据本发明做出各种相应的改变和变形, 但这些相应的改变和 变形都应属于本发明所附的权利要求的保护范围。
显然, 本领域的技术人员应该明白, 上述的本发明的各模块或各步骤可 以用通用的计算装置来实现, 它们可以集中在单个的计算装置上, 或者分布 在多个计算装置所组成的网络上, 可选地, 它们可以用计算装置可执行的程 序代码来实现, 从而, 可以将它们存储在存储装置中由计算装置来执行, 并 且在某些情况下, 可以以不同于此处的顺序执行所示出或描述的步骤, 或者 将它们分别制作成各个集成电路模块, 或者将它们中的多个模块或步骤制作 成单个集成电路模块来实现。 本发明不限制于任何特定的硬件和软件结合。
工业实用性
与现有技术相比, 本发明能够有效提高 DDRX存储器的吞吐带宽, 且对 读操作和写操作均能达到同样效果, 并且提高了存储器的访问效率, 从而提 升设备的整体性能。

Claims

权 利 要 求 书
1、 一种存储器接口访问控制装置, 包括依次相连的: 地址控制器、 指令 队列和指令队列扫描器, 其中, 所述地址控制器与数据存储应用层相连, 所 述指令队列扫描器与存储器的接口控制器相连,
所述地址控制器设置成: 将所述数据存储应用层发出的读写指令分别映 射到存储器的不同空间, 并将所述存储器的不同空间中的读写指令发送到相 应的指令队列中;
所述指令队列设置成緩存收到的读写指令;
所述指令队列扫描器设置成依次从各指令队列中读取读写指令, 发送到 所述存储器的接口控制器。
2、 如权利要求 1所述的装置, 其中,
所述地址控制器是设置成根据所述读写指令中的数据存储应用层访问地 址, 将所述读写指令分别映射到所述存储器的不同空间。
3、 如权利要求 2所述的装置, 其中,
所述指令队列的个数与所述存储器的片 (BANK ) 的数目相同。
4、 如权利要求 3所述的装置, 其中,
所述地址控制器是设置成根据数据存储应用层访问地址按照以下方式将 所述读写指令分别映射到所述存储器的不同空间: 设数据存储应用层的地址访问空间大小为 M, 存储器的空间大小为 P, 存储器的 BANK数为 N,则数据存储应用层访问地址 m的经过映射转换后的 访问地址 m'为:
, J,. m ,T, P χ Γ1 .
m = round]— x Nlx—— v m - round]— x Nlx— ,
M N M N
其中, round[x]为取整运算。
5、 如权利要求 1或 2所述的装置, 其中,
所述指令队列扫描器是设置成通过如下方式从各指令队列中读取读写指 令: 依次扫描各指令队列, 如果当前指令队列不为空, 则从当前指令队列中 读取一条读写指令存入所述指令队列扫描器内部的緩存器中 , 如果当前指令 队列为空, 则扫描下一个指令队列; 以及
如果经过 2次或 2次以上全部指令队列扫描后, 判断只有一个指令队列 始终不为空, 且其他指令队列始终为空, 则增大每次从指令队列中读取读写 指令的条数, 将读取的地址连续的读写指令合并为一条读写指令, 并调整读 写指令的突发(Burst )参数。
6、 一种存储器接口访问控制方法, 包括:
将数据存储应用层发出的读写指令分别映射到存储器的不同空间; 以及 依次从所述存储器的各个空间读取读写指令, 发送到所述存储器的接口 控制器中。
7、如权利要求 6所述的方法, 其在将所述读写指令分别映射到所述存储 器的不同空间的步骤之后, 还包括:
将所述存储器的不同空间中的读写指令分别发送到相应的指令队列中, 其中所述指令队列的个数与所述存储器的片 (BANK ) 的数目相同;
依次从所述存储器的各个空间读取读写指令的步骤包括: 依次从各指令 队列中读取读写指令。
8、 如权利要求 6或 7所述的方法, 其中, 将所述读写指令分别映射到存 储器的不同空间的步骤包括:
根据所述读写指令中的数据存储应用层访问地址, 将所述读写指令分别 映射到所述存储器的不同空间。
9、 如权利要求 8所述的方法, 其中,
根据数据存储应用层访问地址将所述读写指令分别映射到所述存储器的 不同空间的步骤中:
设数据存储应用层的地址访问空间大小为 M, 存储器的空间大小为 P, 存储器的 BANK数为 N,则数据存储应用层访问地址 m的经过映射转换后的 访问地址 m'为: ηί = round[— xN]x—— v m - round[— xN]x—;
M N M N
其中, round[x]为取整运算。
10、 如权利要求 7所述的方法, 其中,
依次从各个指令队列中读取读写指令的步骤包括:
依次扫描各指令队列, 如果当前指令队列不为空, 则从当前指令队列中 读取一条读写指令存入内部緩存器中, 如果当前指令队列为空, 则扫描下一 个指令队列; 以及
如果经过 2次或 2次以上全部指令队列扫描后, 判断只有一个指令队列 始终不为空, 且其他指令队列始终为空, 则增大每次从指令队列中读取读写 指令的条数, 将读取的地址连续的读写指令合并为一条读写指令, 并调整读 写指令的 Burst参数。
PCT/CN2011/081982 2010-12-13 2011-11-09 一种存储器接口访问控制方法及装置 WO2012079436A1 (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201010586872.2 2010-12-13
CN201010586872.2A CN102541769B (zh) 2010-12-13 2010-12-13 一种存储器接口访问控制方法及装置

Publications (1)

Publication Number Publication Date
WO2012079436A1 true WO2012079436A1 (zh) 2012-06-21

Family

ID=46244070

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2011/081982 WO2012079436A1 (zh) 2010-12-13 2011-11-09 一种存储器接口访问控制方法及装置

Country Status (2)

Country Link
CN (1) CN102541769B (zh)
WO (1) WO2012079436A1 (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102819506B (zh) * 2012-08-03 2015-06-10 中国人民解放军国防科学技术大学 一种基于双相关链的监听应答处理方法
CN104346285B (zh) 2013-08-06 2018-05-11 华为技术有限公司 内存访问处理方法、装置及系统
CN104461956B (zh) * 2013-09-18 2017-10-24 华为技术有限公司 访问同步动态随机访问存储器的方法、装置及系统
CN105045722B (zh) * 2015-08-26 2018-06-05 东南大学 一种ddr2-sdram控制器及其低延迟优化方法
CN112035056B (zh) * 2020-07-09 2022-11-29 苏州浪潮智能科技有限公司 一种基于多计算单元的并行ram访问设备及访问方法
CN114281247B (zh) * 2021-11-29 2022-10-14 深圳三地一芯电子有限责任公司 一种基于混合介质的flash带宽分配方法及装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5574944A (en) * 1993-12-15 1996-11-12 Convex Computer Corporation System for accessing distributed memory by breaking each accepted access request into series of instructions by using sets of parameters defined as logical channel context
CN101192195A (zh) * 2006-11-22 2008-06-04 北京华旗资讯数码科技有限公司 电子硬盘的存储空间的分组管理方法
CN101576853A (zh) * 2008-05-06 2009-11-11 群联电子股份有限公司 数据存取方法、使用此方法的控制器与存储系统
CN101840374A (zh) * 2010-04-28 2010-09-22 福建星网锐捷网络有限公司 处理装置、信息查找系统及信息查找方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6938133B2 (en) * 2001-09-28 2005-08-30 Hewlett-Packard Development Company, L.P. Memory latency and bandwidth optimizations
US7698498B2 (en) * 2005-12-29 2010-04-13 Intel Corporation Memory controller with bank sorting and scheduling
CN101340365A (zh) * 2008-08-11 2009-01-07 杭州瑞纳科技有限公司 一种高带宽利用率的ddr2 sdram控制器设计方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5574944A (en) * 1993-12-15 1996-11-12 Convex Computer Corporation System for accessing distributed memory by breaking each accepted access request into series of instructions by using sets of parameters defined as logical channel context
CN101192195A (zh) * 2006-11-22 2008-06-04 北京华旗资讯数码科技有限公司 电子硬盘的存储空间的分组管理方法
CN101576853A (zh) * 2008-05-06 2009-11-11 群联电子股份有限公司 数据存取方法、使用此方法的控制器与存储系统
CN101840374A (zh) * 2010-04-28 2010-09-22 福建星网锐捷网络有限公司 处理装置、信息查找系统及信息查找方法

Also Published As

Publication number Publication date
CN102541769B (zh) 2014-11-05
CN102541769A (zh) 2012-07-04

Similar Documents

Publication Publication Date Title
US6341318B1 (en) DMA data streaming
US6505269B1 (en) Dynamic addressing mapping to eliminate memory resource contention in a symmetric multiprocessor system
KR20190017639A (ko) 지능형 고 대역폭 메모리 장치
CN101916227B (zh) 一种rldram sio存储器访问控制方法和装置
US20020184462A1 (en) Pipelined memory controller
WO2012079436A1 (zh) 一种存储器接口访问控制方法及装置
US8918589B2 (en) Memory controller, memory system, semiconductor integrated circuit, and memory control method
US20230101873A1 (en) Memory module with reduced read/write turnaround overhead
US20210280226A1 (en) Memory component with adjustable core-to-interface data rate ratio
JP2014154119A (ja) メモリ制御装置及び半導体記憶装置
US9390017B2 (en) Write and read collision avoidance in single port memory devices
WO2004107187A1 (en) Memory controller dynamically arbitrating page packets
WO2006050983A1 (en) Memory access using multiple sets of address/data lines
JP6468971B2 (ja) 半導体メモリ、メモリシステム
EP2660820A1 (en) Ddr controller, and method and chip for implementing same
WO2022068149A1 (zh) 数据加载和存储系统及方法
US8995210B1 (en) Write and read collision avoidance in single port memory devices
US20130332665A1 (en) Memory with bank-conflict-resolution (bcr) module including cache
JP2011018427A (ja) 半導体記憶装置
US20220100521A1 (en) Data loading and storage system and method
US8244929B2 (en) Data processing apparatus
US8806132B2 (en) Information processing device, memory access control device, and address generation method thereof
JP2004127305A (ja) メモリ制御装置
US6532523B1 (en) Apparatus for processing memory access requests
US9627014B2 (en) Multiple port shared memory

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 11848362

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 11848362

Country of ref document: EP

Kind code of ref document: A1