WO2012019475A1 - 一种rldramsio访问控制方法和装置 - Google Patents

一种rldramsio访问控制方法和装置 Download PDF

Info

Publication number
WO2012019475A1
WO2012019475A1 PCT/CN2011/074373 CN2011074373W WO2012019475A1 WO 2012019475 A1 WO2012019475 A1 WO 2012019475A1 CN 2011074373 W CN2011074373 W CN 2011074373W WO 2012019475 A1 WO2012019475 A1 WO 2012019475A1
Authority
WO
WIPO (PCT)
Prior art keywords
command
write
sub
read
data
Prior art date
Application number
PCT/CN2011/074373
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 WO2012019475A1 publication Critical patent/WO2012019475A1/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0207Addressing or allocation; Relocation with multidimensional access, e.g. row/column, matrix

Definitions

  • the present invention relates to a RLDRAM (Reduced Latency Dynamic Random Access Memory) technology, and more particularly to an RLDRAM SIO (Independent I/O) access control method and apparatus .
  • RLDRAM Reduced Latency Dynamic Random Access Memory
  • SIO Independent I/O
  • BACKGROUND OF THE INVENTION Today's high-speed network applications require high-bandwidth and high-density memory solutions that not only require higher operating speeds, but also applications that simultaneously read and write memory. This also places higher demands on the capacity and access rate of the network packet dynamic cache memory.
  • DRAM Dynamic Random Access Memory
  • RLDRAM uses internal pre-charging and built-in startup scheme, so that the addressing process can be completed in a single cycle, so it is lower than the general DRAM.
  • RLDRAM is divided into RLDRAM CIO (shared I/O) and RLDRAM SIO.
  • RLDRAM SIO can read and write at the same time because its write data line and read data line are independent, which greatly improves bandwidth utilization. So RLDRAM SIO is very suitable for network applications.
  • the RLDRAM SIO has good architecture and performance
  • the existing address resolution and buffering methods for input read and write commands do not fully take into account the access configuration requirements of the RLDRAM SIO, and the minimum access of the sub-data slice to the internal bank.
  • the limitation of the interval tRC (active to active/auto Refresh Command time) on the output operation command process makes it difficult to achieve high bandwidth utilization in the RLDRAM SIO during use.
  • Clk is the clock cycle line
  • Cmd the output operation command line
  • cycle is the clock cycle
  • the sub-data slice is written internally.
  • the access interval to the same internal body must be greater than or equal to 4 clock cycles, and each input write command sequentially accesses the same internal body.
  • the address, so that the effective utilization of the write data line Wdata is only about 50%.
  • the effective utilization of the data line Rdata is very low.
  • the technical problem to be solved by the present invention is to provide an RLDRAM SIO access control method and apparatus, which improves the efficiency of RLDRAM SIO read and write operations.
  • a RLDRAM SIO access control method includes: performing address resolution and separate storage on an input read/write command, and uniformly sorting the separately stored read and write commands to obtain an operation command queue, and parsing the input data packet into sub-data slices; The sub-data slice is output and the read and write commands in the operation command queue are output to the RLDRAM SIO.
  • the specific process of performing address resolution and separately storing the input read/write commands includes: respectively, respectively, the two-dimensional address information including the data unit write address and the sub-data slice written into the internal body address is respectively associated with the write command and the read command. Relationship; buffering the write command and the accessed two-dimensional address information into a write command queue, and buffering the read command and the accessed two-dimensional address information into the read command queue.
  • the two-dimensional address information including the data unit write address and the sub-data slice written to the internal body address is respectively associated with the write command and the read command, and includes:
  • the data unit write address and the write command establish a corresponding access relationship, and in each data unit write address, the sub-data piece is written into the internal body address, and the corresponding access is established according to the number from small to large. Relationship, such that each write command has two-dimensional address information including a data unit write address and a sub-data slice write internal body address;
  • the data unit write address is associated with the read command, and in each data unit write address, the sub-data slice is written to the internal body address, and the read command is established in accordance with the number from small to large.
  • the relationship is such that each read command has two-dimensional address information including a data unit write address and a sub-data slice write internal body address.
  • the specific process of the operation command queue obtained by uniformly sorting the separately saved read and write commands includes:: writing the minimum access interval of the internal body based on the same sub-data slice, The queue and read command queues are reordered to get the operation command queue.
  • the operation command queue obtained by reordering the separately saved write command and read command based on the requirement that the same sub-data slice is written into the inner body minimum access interval includes:
  • the read command and the write command are processed according to the sub-data slice write internal body number from small to large, and the first command taken is directly stored in the operation command queue, and the second command is executed. The following steps:
  • Step 1 Determine whether the previous command is a read command or a write command. If the previous command is a write command, jump to step two. If the previous command is a read command, jump to step three;
  • Step 2 Determine whether the read command queue is empty. If it is empty, skip to step 5. If not, go to step 4;
  • Step 3 Determine whether the write command queue is empty. If it is empty, go to step four. If it is not empty, go to step five.
  • Step 4 The sub-data slice accessed by the current read command is retrieved from the read command queue, and the internal body number is written, and it is determined whether the sub-data slice written by the current read command is greater than the sub-data slice written by the previous write command.
  • the internal body number, or the difference between the sub-data slice written by the previous write command and the internal block number of the sub-data slice written by the current read command is greater than or equal to 2 (tRC-T)/BL
  • BL is The burst length of RLDRAM SIO
  • tRC is the minimum access interval for writing the internal body address of the same sub-data slice
  • T is the interval between the write command and the read command in one command cycle, and if so, the current read command is stored in the operation command queue. Otherwise, the next write command is stored in the operation command queue, and the current read command is still pending, and the jump step is one;
  • Step 5 The sub-data slice accessed by the current write command is retrieved from the write command queue, and the internal body number is written, and it is determined whether the sub-data slice accessed by the current write command is greater than the sub-data slice written by the previous read command.
  • the internal body number, or whether the difference between the internal data number of the sub-data slice read by the previous read command and the sub-data slice write internal body number accessed by the current write command is greater than or equal to 2 (tRC-T)/BL, and if so, The current write command is stored in the operation command queue. Otherwise, the next read command is stored in the operation command queue.
  • the current write command is still pending, and the process proceeds to step 1.
  • the process of parsing the input data packet into the sub data piece includes: dividing the input data packet into data units, and dividing each data unit into sub-data slices equal to the number of internal bodies of the RLDRAM SIO.
  • An RLDRAM SIO access control method includes: performing address resolution and buffering on an input read command or a write command to obtain an operation command queue, and, when inputting a write command, parsing the input data packet into a sub-data piece; The sub-data slice and the read command or write command in the operation command queue to the RLDRAM SIO.
  • the operation command queue obtained by performing address resolution and buffering on the input read command or the write command includes: sequentially writing the two-dimensional address information including the data unit write address and the sub-data slice into the internal body address, and sequentially writing or reading the command Establishing a corresponding access relationship; buffering the write command and the accessed two-dimensional address information into the operation command queue, or buffering the read command and the accessed two-dimensional address information into the operation command queue.
  • a RLDRAM SIO access control device includes:
  • the input operation control module is configured to parse and separately store the input read/write commands and data packets, and uniformly sort the saved read and write commands to obtain an operation command queue, and send the operation command queue to the cache module;
  • a cache module configured to separately store an operation command queue and a sub-data piece obtained by parsing the data packet
  • Output operation control module for outputting read and write commands in the operation command queue to RLDRAM
  • the input operation control module specifically includes:
  • a write packet parsing sub-module configured to divide the input data packet corresponding to the write command into data units, and divide each data unit into sub-data slices equal to the number of internal bodies of the RLDRAM SIO; and write address resolution buffer sub-module for The two-dimensional address information including the data unit write address and the sub-data slice written to the internal body address is sequentially allocated to the write command for the sub-data slice, and stored in the write command queue;
  • a read address parsing cache submodule configured to sequentially allocate the two-dimensional address information to a read command for a sub-data slice, and store the read command in a read command queue;
  • the read/write command sorting submodule is used to write the internal command minimum queue interval based on the same sub-data slice, and reorder the read command queue and the write command queue to obtain the operation command queue. Output to the cache module.
  • the cache module specifically includes:
  • the operation command cache sub-module is configured to save an operation command queue uniformly reordered by the input operation control module
  • the write data buffer sub-module is configured to save the sub-data slice divided by the input operation control module.
  • the cache module further includes a read data buffer sub-module for storing sub-data slices read from the RLDRAM SIO; the apparatus further includes an output data module for re-sampling the sub-data slices in the read data buffer sub-module The composite data unit is sent out.
  • An RLDRAM SIO system having the above access control device, the RLDRAM SIO being connected to an output operation control module in the access control device, the access control device comprising: an input operation control module, for reading and writing commands and data for input The package is parsed and stored separately, and the saved read and write commands are uniformly sorted to obtain an operation command queue, and the operation command queue is sent to the cache module;
  • a cache module configured to separately store an operation command queue and a sub-data piece obtained by parsing the data packet
  • Output operation control module for outputting read and write commands in the operation command queue to RLDRAM
  • the present invention has at least the following advantages:
  • the RLDRAM SIO access control method and device of the present invention performs address resolution and separate storage on input read and write commands, and uniformly sorts the separately stored read and write commands to obtain an operation command queue, and simultaneously parses the input data packets into sub data. Slice; store the operation command queue and the sub-data slice obtained by parsing the data packet; output the sub-data slice and read and write commands in the operation command queue to the RLDRAM SIO.
  • the invention optimizes the access address of the read and write operations on the basis of the existing IP core, and arranges the order of reading and writing commands reasonably, so that the read and write operations can achieve efficient use of bandwidth, and greatly improve the bandwidth utilization of the RLDRAM SIO.
  • FIG. 1 is a schematic diagram showing bandwidth utilization of a write data line accessing RLDRAM SIO in a case where only a write command is performed in a certain period of time in the prior art;
  • FIG. 3 is a flowchart of the RLDRAM SIO access control method in the first embodiment of the present invention
  • FIG. 4 is a flowchart of a write command in the first embodiment of the present invention
  • FIG. 5 is a flowchart of the RLDRAM SIO access control method according to the second embodiment of the present invention
  • FIG. 6 is a flowchart of the RLDRAM SIO access control method according to the third embodiment of the present invention
  • FIG. 7 is a fourth embodiment of the present invention
  • FIG. 8 is a schematic diagram of the composition of the input operation control module in the fourth embodiment of the present invention
  • FIG. 9 is a schematic diagram showing the composition of the RLDRAM SIO system having the access control apparatus according to the fourth embodiment in the fifth embodiment of the present invention
  • FIG. 10 is a schematic diagram showing the utilization of the effective bandwidth of the write data line in the case where only the write command is used in the command cycle after using the technical solution of the present invention.
  • FIG. 11 is a schematic diagram showing the utilization of the effective bandwidth of the read and write data lines in the case where there are write commands and read commands in one command cycle after using the technical solution of the present invention. detailed description
  • Burst length BL Determines the command cycle of the RLDRAM SIO, one command cycle equals BL/2 clock cycles.
  • the value of BL is related to the device performance of the memory, usually not less than 4, and is 2
  • Memory internal bank is the internal storage space of RLDRAM SIO. At present, the majority of MICRON's RLDRAM SIO products have 8 or 16 banks.
  • Same body minimum access time interval tRC The minimum interval between consecutive accesses to the same bank.
  • the RLDRAM SIO also requires that two consecutive read operations or two write operations must pass between one command cycle, i.e., two operations of the same nature cannot occur in the same command cycle.
  • the data packet is usually sliced into fixed-length data units for storage, and when the data unit is written, it is divided into a plurality of sub-data pieces and stored in the sub-data piece and written into the internal body bank.
  • the present invention further proposes that when a data unit is written, it is divided into n sub-data slices and each sub-data slice stored in the same address is written into the internal body bank, where n is the total number of banks in the memory.
  • the data unit write address is Addr
  • the two-dimensional address corresponding to the n sub-data pieces obtained by dividing it is ⁇ Addr, BAddr ⁇ , BAddr represents the address of the bank, and its value is polled from 0 to n-1, 0 to N-1 can be regarded as the bank number.
  • each bank needs to perform a polling operation for both the write operation and the read operation, and the Addr in the two-dimensional address may be the same or different.
  • the output timing optimization of the command operation becomes regulated.
  • the output operation is sorted.
  • the sorting is mainly considered: the minimum interval between consecutive accesses to the same bank shall not be less than the minimum access time interval of the same body tRC .
  • an RLDRAM SIO access control method as shown in FIG. 3, includes the following specific steps:
  • Step 101 The two-dimensional address information including the data unit write address Addr and the sub-data slice written to the internal body address BAddr is sequentially associated with the write command and the read command, respectively.
  • the data unit write address Addr establishes a corresponding access relationship with the write command, and in each data unit write address, the sub data piece is written into the internal body address BAddr according to the bank number from small to large.
  • a corresponding access relationship is established with the write command, that is, each time a sub-data slice write command is input, a bank is allocated thereto, and the bankO ⁇ bank(nl) is cyclically allocated, so that each write command has a two-dimensional shape including Addr and Bddr. Address information;
  • the input data packet corresponding to the write command is divided into data units, each data unit is divided into sub-data slices equal to the number of banks of the RLDRAM SIO, and the sub-data slices of the data unit are sequentially stored in all the banks. .
  • the data unit is written to the address Addr to establish a corresponding access relationship with the read command.
  • the sub-data slice is written to the internal body address Bddr according to the bank number from small to large.
  • the command establishes a corresponding access relationship, that is, each time a sub-data slice read command is input, a bank is allocated thereto, and cyclically allocated according to bankO ⁇ bank(nl), so that each read command has two-dimensional address information including Addr and BAddr.
  • Step 10 2 The write command and the accessed two-dimensional address information ⁇ Addr, BAddr ⁇ are buffered into the write command queue, and the read command and the accessed two-dimensional address information ⁇ Addr, BAddr ⁇ are buffered into the read command queue.
  • Step 103 Reorder the write command queue and the read command queue according to the requirement of the same body minimum access time interval tRC to obtain an operation command queue.
  • the scan write command queue and the read command queue are respectively processed according to the queue first-in first-out principle, that is, the read command and the write command are processed from small to large according to the bank number, as shown in FIG. 4:
  • Step 1 The first command taken is directly stored in the operation command queue, and the second command is executed from step 2 to step 6:
  • Step 2 determining whether the previous command is a read command or a write command, if the previous command is a write command, then jump to step 3, if the previous command is a read command, then jump to step 4;
  • Step 3 determining whether the read command queue is empty, if it is empty, the jump step 6, if not empty, jump to step 5;
  • Step 4 Determine whether the write command queue is empty. If it is empty, jump to step 5, if not, go to step 6;
  • Step 5 The bank number accessed by the current read command is taken out from the read command queue, and it is determined whether the bank number accessed by the current read command is greater than the bank number accessed by the previous write command, or the bank number accessed by the previous write command and the current read command. Whether the difference between the accessed bank numbers is greater than or equal to 2 (tRC-T)/BL, T is the interval between the write command and the read command in one command cycle, and its value can be greater than or equal to 0. If yes, the current read command Stored in the operation command queue, otherwise the next write command is stored in the operation command queue, and the current read command is still pending. Jump step 2;
  • Step 6 the bank number accessed by the current write command is taken out from the write command queue, and it is determined whether the bank number accessed by the current write command is greater than the bank number accessed by the previous read command, or the bank number accessed by the previous read command and the current write command. Whether the difference between the accessed bank numbers is greater than or equal to 2 (tRC-T)/BL. If yes, the current write command is stored in the operation command queue. Otherwise, the next read command is stored in the operation command queue, and the current write command is still pending. Go to step 2.
  • Step 104 Output a sub-data slice and read and write commands in the operation command queue to the RLDRAM SIO according to the RLDRAM SIO access configuration requirement.
  • the interval between the two operation commands in one command cycle is T: If the previous command is a write command and the current command is a read command, the interval from the previous command is T. The current command is output; if the previous command is a read command and the current command is a write command, the current command is output after the previous command interval (BL/2-T-2).
  • Step 105 When the RLDRAM SIO executes the write command, the sub-data slices of each data unit are sequentially stored in all the banks; when the read command is executed, the sub-data slices are taken out from all the banks. Finally, the sub-data slices are combined into a data unit output.
  • the RLDRAM SIO access control method in the first embodiment described above can achieve the purpose of improving the efficiency of the RLDRAM SIO read and write operation.
  • the present invention also provides a simplified technical solution specifically for a read only command or a write only command, that is, the second embodiment and the third embodiment described below.
  • an RLDRAM SIO access control method includes:
  • Step 201 The two-dimensional address information including the data unit write address Addr and the sub-data slice written to the internal body address BAddr is sequentially established with the write command.
  • the data unit write address Addr establishes a corresponding access relationship with the write command, and in each data unit write address, the sub data piece is written into the internal body address BAddr according to the bank number from small to large and the write command.
  • Establish a corresponding access relationship that is, each time a sub-data slice write command is input, a bank is allocated to it, and cyclically allocated according to bankO ⁇ bank(nl), so that each write command has two-dimensional address information including Addr and BAddr;
  • the input data packet corresponding to the write command is divided into data units, each data unit is divided into sub-data slices equal to the number of banks of the RLDRAM SIO, and the sub-data slices of the data unit are sequentially stored in all the banks. .
  • Step 202 Cache the write command and the accessed two-dimensional address information ⁇ Addr, BAddr ⁇ into the operation command queue.
  • Step 203 Output a sub-data slice and a write command in the operation command queue to the RLDRAM SI0 according to the RLDRAM SIO access configuration requirement.
  • This step is already completed by the memory access control technology in the prior art, and the present invention does not improve the output process. Therefore, only the principle of the judgment processing of this step is described: from the previous write command (BL/2) -1) Outputs the current write command after one clock cycle.
  • Step 204 When the RLDRAM SIO executes the write command, the sub-data slices of each data unit are sequentially stored in all the banks.
  • an RLDRAM SIO access control method includes:
  • Step 301 The two-dimensional address information including the data unit write address Addr and the sub-data slice written to the internal body address BAddr is sequentially established with the read command.
  • the data unit write address Addr establishes a corresponding access relationship with the read command, and in each data unit write address, the sub data piece is written into the internal body address BAddr according to the bank number from small to large and the read command.
  • a corresponding access relationship is established, that is, each time a sub-data slice read command is input, a bank is allocated thereto, and cyclically allocated according to bankO ⁇ bank(nl), so that each read command has two-dimensional address information including Addr and BAddr.
  • Step 302 Cache the read command and the accessed two-dimensional address information ⁇ Addr, BAddr ⁇ into the operation command queue.
  • Step 303 Output a sub-data slice and a read command in the operation command queue to the RLDRAM SIO according to the RLDRAM SIO access configuration requirement.
  • This step is already completed by the memory access control technology in the prior art, and the present invention does not improve the output process. Therefore, only the principle of the judgment processing of this step is described: from the previous read command (BL/2) -1) Outputs the current read command after one clock cycle.
  • Step 304 When the RLDRAM SIO executes the read command, the sub-data slices are taken out from all the banks, and finally the sub-data slices are combined into a data unit output.
  • an RLDRAM SIO access control apparatus for performing the method in the first embodiment, as shown in FIG. 7, includes the following components:
  • the input operation control module is configured to parse and separate the input read/write commands and data packets, and uniformly sort the separately read and write commands to obtain an operation command queue, and send the operation command queue to the cache module. As shown in FIG. 8, the input operation control module specifically includes the following submodules:
  • each data unit is divided into sub-data slices equal to the number of internal bodies of the RLDRAM SIO, and sequentially stored in all internal bank banks of the memory;
  • the address resolution buffer sub-module is configured to sequentially allocate the two-dimensional address information including the data unit write address Addr and the sub-data slice to the internal body address BAddr to the write command to the sub-data slice, and store the write command in the write command queue.
  • the specific process is as follows: The data unit is written to the address Addr to establish a corresponding access relationship with the write command. In each data unit write address, the sub-data piece is written into the internal body address BAddr according to the bank number from small to large.
  • the command establishes a corresponding access relationship, that is, each time a sub-data slice write command is input, a bank is allocated to it, and the bankO ⁇ bank(nl) is cyclically allocated, so that each write command has two-dimensional address information including Addr and BAddr.
  • the write command and its accessed two-dimensional address information ⁇ Addr, BAddr ⁇ are cached into the write command queue.
  • the read address resolution buffer sub-module is configured to sequentially allocate the two-dimensional address information to a read command for the sub-data slice and store the read command queue.
  • the specific process is as follows: Write the data unit to the address Addr and establish a corresponding access relationship with the read command. In each data unit write address, write the sub-data slice to the internal body address BAddr according to the bank number from small to large.
  • the command establishes a corresponding access relationship, that is, each time a sub-data slice read command is input, a bank is allocated thereto, and cyclically allocated according to bankO ⁇ bank(nl), so that each read command has two-dimensional address information including Addr and BAddr.
  • the read command and its accessed two-dimensional address information ⁇ Addr, BAddr ⁇ are buffered into the read command queue.
  • the read/write command sorting sub-module is configured to uniformly reorder the read command queue and the write command queue according to the requirement of the same body minimum access time interval tRC, and output the operation command queue to the cache module.
  • the specific process is shown in Figure 4.
  • a cache module configured to store an operation command queue and a sub-data slice obtained by parsing the data packet, respectively.
  • the cache module specifically includes the following submodules:
  • the operation command cache sub-module is configured to save an operation command queue that is uniformly reordered by the input operation control module and the read/write command sorting sub-module;
  • a write data buffer sub-module configured to save the sub-data piece divided by the input operation control module, specifically the write data packet analysis sub-module;
  • the read data buffer sub-module is used to store sub-data slices read from the RLDRAM SIO.
  • the current command is output after the previous command (BL/2-1) clock cycles;
  • the interval between the two operation commands in one command cycle is T: If the previous command is a write command and the current command is a read command, the interval from the previous command is T. The current command is output; if the previous command is a read command and the current command is a write command, the current command is output after the previous command interval (BL/2-T-2).
  • An output data module configured to reassemble the sub-data pieces in the read data buffer sub-module into data units for sending.
  • a fifth embodiment of the present invention an RLDRAM SIO system having the access control device of the fourth embodiment, as shown in FIG. 9, the RLDRAM SIO is connected to an output operation control module in the access control device, the access control The device includes:
  • the input operation control module is configured to parse and separately store the input read/write commands and data packets, and uniformly sort the separately read and write commands to obtain an operation command queue, and send the operation command queue to the cache module;
  • a cache module configured to separately store an operation command queue and a sub-data piece obtained by parsing the data packet
  • the output operation control module is configured to output a read/write command in the operation command queue to the RLDRAM SIO according to the RLDRAM SIO access configuration requirement.
  • the embodiment of the present invention writes the sub-data piece into the internal body address BAddr according to the number of the bank, and sequentially associates with the read command or the write command.
  • BAddr the number of the bank
  • Accessing the relationship but those skilled in the art can fully introduce the method of allocating the bank address according to the bank number from large to small or based on other bank numbering rules according to the above description, and the subsequent implementation principle and the method of matching the access address optimization method.
  • the same operation command is used to optimize the sorting process, and the technical solutions based on the principle of the present invention are all within the protection scope of the present invention.
  • Figure 10 shows the effective bandwidth utilization of the write data line in the case where only the write command is in the command cycle.
  • Figure 11 shows the effective bandwidth utilization of the read and write data lines in the case of a write command and a read command in a command cycle.

Landscapes

  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Dram (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Description

一种 RLDRAM SIO访问控制方法和装置 技术领域 本发明涉及 RLDRAM ( Reduced Latency Dynamic Random Access Memory, 低延时动态随机访问存储器 )技术, 尤其涉及一种 RLDRAM SIO (独立 I/O )访问控制方法和装置。 背景技术 当今的高速网络应用需要高带宽和高密度存储器解决方案, 不仅要求 较高的工作速度、 而且对存储器同时进行读写操作的应用也涌现出来。 这 对网络数据包动态緩存存储器的容量和存取速率也提出了更高的要求。 相 比一般的 DRAM ( Dynamic Random Access Memory, 动态随机存 4诸器), RLDRAM釆用了内部预充电和内置启动方案, 使得寻址过程可以在单周期 内完成, 所以它比一般的 DRAM具有低延迟的特点, 使其成为网络数据包 緩存的一个较佳的选择。 RLDRAM 分为 RLDRAM CIO (共用 I/O ) 和 RLDRAM SIO两种, 其中 RLDRAM SIO由于其写数据线和读数据线独立, 可以同时进行读写操作, 极大地提高了带宽利用率。 所以 RLDRAM SIO是 非常适合于网络应用的。
目前, 虽然 RLDRAM SIO具有良好的架构和性能, 但是现有的对输入 的读写命令的地址解析和緩存方式没有充分考虑到 RLDRAM SIO的访问配 置要求、 以及子数据片写入内部体 bank 最小访问间隔 tRC ( active to active/auto Refresh Command time )的限制对输出操作命令过程造成的影响, 导致在使用的过程中, RLDRAM SIO很难实现较高的带宽利用率。 例如, 如图 1所示, Clk为时钟周期线, Cmd为输出操作命令线, 在存储器配置为 BL ( Burst Length, 突发长度) =tRC=4cycle, cycle为时钟周期, 子数据片 写入内部体 bank个数 =8时,在某个时间段只有写命令的情况下,对相同的 内部体的访问间隔必须大于等于 4个时钟周期, 而每个输入的写命令均依 次访问同一个内部体地址,这样写数据线 Wdata的有效利用率只有约 50%。
又例如, 如图 2所示, 也是在 RLDRAM SIO配置为 BL=tRC=4cycle , 子数据片写入内部体 bank个数 =8时,在每个命令周期中同时具有写命令和 读命令的情况下, 按照输入命令的原有顺序执行, 写数据线 Wdata的有效 利用率和读数据线 Rdata的有效利用率均很低。
因此,如何进一步提高 RLDRAM SIO读写效率是本领域技术人员亟待 解决的问题。 发明内容 有鉴于此, 本发明要解决的技术问题是, 提供一种 RLDRAM SIO访问 控制方法和装置, 提高 RLDRAM SIO读写操作的效率。
为解决上述技术问题, 本发明的技术方案是这样实现的:
一种 RLDRAM SIO访问控制方法, 包括: 对输入的读写命令进行地址 解析和分开保存, 并对分开保存的读写命令进行统一排序得到操作命令队 列, 同时将输入的数据包解析成子数据片; 输出所述子数据片以及操作命 令队列中的读写命令到 RLDRAM SIO。
所述对输入的读写命令进行地址解析和分开保存的具体过程包括: 将 包含数据单元写入地址和子数据片写入内部体地址的二维地址信息依次分 别与写命令和读命令建立对应访问关系; 将写命令及其访问的所述二维地 址信息緩存入写命令队列, 将读命令及其访问的所述二维地址信息緩存入 读命令队列。
所述将包含数据单元写入地址和子数据片写入内部体地址的二维地址 信息依次分别与写命令和读命令建立对应访问关系, 包括:
对于写命令, 将数据单元写入地址与写命令建立对应访问关系, 在每 个数据单元写入地址中, 再将子数据片写入内部体地址按照编号从小到大 依次与写命令建立对应访问关系, 使每一个写命令具有包含数据单元写入 地址和子数据片写入内部体地址的二维地址信息;
对于读命令, 将数据单元写入地址与读命令建立对应访问关系, 在每 个数据单元写入地址中, 再将子数据片写入内部体地址按照编号从小到大 依次与读命令建立对应访问关系, 使每一个读命令具有包含数据单元写入 地址和子数据片写入内部体地址的二维地址信息。
所述对分开保存的读写命令进行统一排序得到的操作命令队列的具体 过程, 包括: 基于相同子数据片写入内部体最小访问间隔的要求, 对写命 令队列和读命令队列进行重新排序得到操作命令队列。
所述基于相同子数据片写入内部体最小访问间隔的要求, 对分开保存 的写命令和读命令进行重新排序得到的操作命令队列, 包括:
在写命令队列和读命令队列中分别按照子数据片写入内部体编号从小 到大处理读命令和写命令, 对取出的第一个命令直接存入操作命令队列, 从第二个命令开始执行下面的步骤:
步骤一、 判断前一个命令是读命令还是写命令, 若前一个命令是写命 令, 则跳转步骤二, 若前一个命令是读命令, 则跳转步骤三;
步骤二、 判断读命令队列中是否为空, 若为空, 则跳转步骤五, 若不 为空, 则跳转步骤四;
步骤三、 判断写命令队列中是否为空, 若为空, 则跳转步骤四, 若不 为空, 则, 跳转步骤五;
步骤四、 从读命令队列中取出当前读命令访问的子数据片写入内部体 编号, 判断当前读命令访问的子数据片写入内部体编号是否大于前一个写 命令访问的子数据片写入内部体编号, 或者, 前一个写命令访问的子数据 片写入内部体编号与当前读命令访问的子数据片写入内部体编号之差是否 大于等于 2(tRC-T)/BL, BL为 RLDRAM SIO的突发长度, tRC为相同子数 据片写入内部体地址最小访问间隔, T为一个命令周期内写命令和读命令之 间的间隔, 若是, 则将当前读命令存入操作命令队列, 否则将后一个写命 令存入操作命令队列, 当前读命令仍然待处理, 跳转步骤一;
步骤五、 从写命令队列中取出当前写命令访问的子数据片写入内部体 编号, 判断当前写命令访问的子数据片写入内部体编号是否大于前一个读 命令访问的子数据片写入内部体编号, 或者, 前一个读命令访问的子数据 片写入内部体编号与当前写命令访问的子数据片写入内部体编号之差是否 大于等于 2(tRC-T)/BL, 若是, 则将当前写命令存入操作命令队列, 否则将 后一个读命令存入操作命令队列, 当前写命令仍然待处理, 跳转步骤一。
所述将输入的数据包解析成子数据片的过程包括: 将输入的数据包划 分为数据单元,将每个数据单元划分为与 RLDRAM SIO内部体数量相等的 子数据片。
对于某个时间段输入的只有读命令或者只有写命令的情况, 虽然利用 上述 RLDRAM SIO访问控制方法已经可以达到提高 RLDRAM SIO读写操 作效率的发明目的, 但是, 本发明还提供一种专门针对只有读命令或者只 有写命令的简化的技术方案, 即,
一种 RLDRAM SIO访问控制方法, 包括: 对输入的读命令或者写命令 进行地址解析和緩存得到操作命令队列, 并且, 当输入的是写命令时, 将 输入的数据包解析成子数据片; 输出所述子数据片以及操作命令队列中的 读命令或者写命令到 RLDRAM SIO。
所述对输入的读命令或者写命令进行地址解析和緩存得到的操作命令 队列, 包括: 将包含数据单元写入地址和子数据片写入内部体地址的二维 地址信息依次与写命令或读命令建立对应访问关系; 将写命令及其访问的 所述二维地址信息緩存入操作命令队列, 或者, 将读命令及其访问的所述 二维地址信息緩存入操作命令队列。
一种 RLDRAM SIO访问控制装置 , 包括:
输入操作控制模块, 用于对输入的读写命令和数据包进行解析和分开 保存, 并对保存的读写命令进行统一排序得到操作命令队列, 将操作命令 队列发送到緩存模块;
緩存模块, 用于分别存储操作命令队列和由数据包解析得到的子数据 片;
输出操作控制模块, 用于输出操作命令队列中的读写命令到 RLDRAM
SIO。
所述输入操作控制模块具体包括:
写数据包解析子模块, 用于将写命令对应的输入数据包划分为数据单 元, 将每个数据单元划分为与 RLDRAM SIO内部体数量相等的子数据片; 写地址解析緩存子模块, 用于将包含数据单元写入地址和子数据片写 入内部体地址的二维地址信息依次分配给对子数据片的写命令, 存入写命 令队列;
读地址解析緩存子模块, 用于将所述二维地址信息依次分配给对子数 据片的读命令, 存入读命令队列;
读写命令排序子模块, 用于基于相同子数据片写入内部体最小访问间 隔的要求, 对读命令队列和写命令队列统一重新排序得到操作命令队列后 输出到緩存模块。
所述緩存模块具体包括:
操作命令緩存子模块, 用于保存由输入操作控制模块统一重新排序后 的操作命令队列;
写数据緩存子模块, 用于保存由输入操作控制模块划分成的所述子数 据片。
所述緩存模块还包括读出数据緩存子模块, 用于存储从 RLDRAM SIO 中读出的子数据片; 该装置进一步包括输出数据模块, 用于将读出数据緩 存子模块中的子数据片重新组合成数据单元送出。
一种具有上述访问控制装置的 RLDRAM SIO系统 , RLDRAM SIO与 所述访问控制装置中的输出操作控制模块相连 , 所述访问控制装置包括: 输入操作控制模块, 用于对输入的读写命令和数据包进行解析和分开 保存, 并对保存的读写命令进行统一排序得到操作命令队列, 将操作命令 队列发送到緩存模块;
緩存模块, 用于分别存储操作命令队列和由数据包解析得到的子数据 片;
输出操作控制模块, 用于输出操作命令队列中的读写命令到 RLDRAM
SIO。
釆用上述技术方案, 本发明至少具有下列优点:
本发明所述 RLDRAM SIO访问控制方法和装置,对输入的读写命令进 行地址解析和分开保存, 并对分开保存的读写命令进行统一排序得到操作 命令队列, 同时将输入的数据包解析成子数据片; 分别存储操作命令队列 和由数据包解析得到的子数据片; 输出子数据片以及操作命令队列中的读 写命令到 RLDRAM SIO。本发明在现有 IP核基础上对读写操作的访问地址 进行了优化, 并且合理安排读、 写命令发送顺序, 使读写操作达到带宽的 高效利用, 大幅度提高 RLDRAM SIO带宽利用率。 附图说明 图 1 为现有技术中某个时间段只有写命令的情况下访问 RLDRAM SIO 的写数据线带宽利用率示意图;
图 2 为现有技术中某个时间段的每个命令周期中同时有写命令和读命 令的情况下访问 RLDRAM SIO的写数据线带宽利用率示意图; 图 3 为本发明第一实施例中所述 RLDRAM SIO访问控制方法流程图; 图 4 为本发明第一实施例中对写命令队列和读命令队列进行重新排序 得到操作命令队列的流程图;
图 5 为本发明第二实施例中所述 RLDRAM SIO访问控制方法流程图; 图 6 为本发明第三实施例中所述 RLDRAM SIO访问控制方法流程图; 图 7 为本发明第四实施例中所述 RLDRAM SIO访问控制装置组成示 意图;
图 8 为本发明第四实施例中所述输入操作控制模块组成示意图; 图 9 为本发明第五实施例中具有第四实施例所述访问控制装置的 RLDRAM SIO系统组成示意图;
图 10 为釆用本发明技术方案后,在命令周期中只有写命令的情况下写 数据线有效带宽利用情况示意图;
图 11 为釆用本发明技术方案后,在一个命令周期中有写命令和读命令 的情况下读写数据线有效带宽利用情况示意图。 具体实施方式
下结合附图及较佳实施例, 对本发明进行详细说明如后。
首先介绍一下 RLDRAM SIO相关参数和访问限制:
突发长度 BL: 决定了 RLDRAM SIO的命令周期, 一个命令周期等于 BL/2个时钟周期。 BL的取值与存储器的器件性能有关, 通常不能小于 4, 且为 2
存储器内部体 bank:是 RLDRAM SIO的内部存储空间, 目前 MICRON 公司的大部分 RLDRAM SIO产品的 bank个数是 8或者 16。
相同体最小访问时间间隔 tRC: 连续两次访问相同 bank之间的最小间 隔。
另夕卜, RLDRAM SIO还要求发送连续两个读操作或两个写操作之间必 须经过一个命令周期, 即不能在同一个命令周期中出现两个相同性质的操 作。
本发明技术方案的主要思想是: 在网络数据包緩存的应用中, 通常将数据包切片成固定长度的数据单元进 行存储, 在数据单元写入时将其划分为多个子数据片存入子数据片写入内 部体 bank中。 本发明进一步提出将数据单元写入时将其划分为 n个子数据 片分别存入地址相同的各个子数据片写入内部体 bank中, n为存储器中 bank 的总个数。 如果数据单元写入地址为 Addr, 那么划分它所得到的 n个子数 据片对应的二维地址为 {Addr, BAddr} , BAddr表示 bank的地址, 其值从 0到 n-1轮询, 0到 n-1可以看成是 bank的编号。这样,对于一个数据单元, 在对它进行写入操作和读出操作时均需要对各个 bank进行一次轮询操作, 而二维地址中的 Addr可以相同也可以不同。
由于上面对命令操作的存取地址进行了优化设计, 使得对命令操作的 输出时序优化变得有规可循。 依据上面对写命令和读命令操作设定的二维 地址,对其进行输出操作排序,排序时主要考虑到:连续两次访问相同 bank 之间的最小间隔不得小于相同体最小访问时间间隔 tRC。
本发明第一实施例, 一种 RLDRAM SIO访问控制方法, 如图 3所示, 包括如下具体步骤:
步骤 101 , 将包含数据单元写入地址 Addr和子数据片写入内部体地址 BAddr的二维地址信息依次分别与写命令和读命令建立对应访问关系。
具体的, 对于写命令, 将数据单元写入地址 Addr与写命令建立对应访 问关系,在每个数据单元写入地址中,再将子数据片写入内部体地址 BAddr 按照 bank的编号从小到大依次与写命令建立对应访问关系, 即, 每输入一 个子数据片写命令,就为其分配一个 bank,按照 bankO~bank(n-l)循环分配, 使每一个写命令具有包含 Addr和 Bddr的二维地址信息;
同时, 将写命令对应的输入数据包划分为数据单元, 将每个数据单元 划分为与 RLDRAM SIO的 bank数量相等的子数据片, 再将该数据单元的 子数据片依次存入所有的 bank中。
对于读命令, 将数据单元写入地址 Addr与读命令建立对应访问关系, 在每个数据单元写入地址中,再将子数据片写入内部体地址 Bddr按照 bank 的编号从小到大依次与读命令建立对应访问关系, 即, 每输入一个子数据 片读命令, 就为其分配一个 bank, 按照 bankO~bank(n-l)循环分配, 使每一 个读命令具有包含 Addr和 BAddr的二维地址信息。 步骤 102, 将写命令及其访问的二维地址信息 {Addr, BAddr}緩存入写 命令队列, 将读命令及其访问的二维地址信息 {Addr, BAddr}緩存入读命令 队列。
步骤 103 ,基于相同体最小访问时间间隔 tRC的要求,对写命令队列和 读命令队列进行重新排序得到操作命令队列。
具体的, 扫描写命令队列和读命令队列, 分别按照队列先进先出的原 则, 即按照 bank的编号从小到大处理读命令和写命令, 如图 4所示:
步骤 1 ,对取出的第一个命令直接存入操作命令队列,从第二个命令开 始执行步骤 2-步骤 6:
步骤 2、判断前一个命令是读命令还是写命令,若前一个命令是写命令, 则跳转步骤 3 , 若前一个命令是读命令, 则跳转步骤 4;
步骤 3 , 判断读命令队列中是否为空, 若为空, 则跳转步骤 6, 若不为 空, 则跳转步骤 5;
步骤 4, 判断写命令队列中是否为空, 若为空, 则跳转步骤 5 , 若不为 空, 则跳转步骤 6;
步骤 5 , 从读命令队列中取出当前读命令访问的 bank编号, 判断当前 读命令访问的 bank编号是否大于前一个写命令访问的 bank编号,或者,前 一个写命令访问的 bank编号与当前读命令访问的 bank编号之差是否大于等 于 2(tRC-T)/BL, T为一个命令周期内写命令和读命令之间的间隔, 其取值 可以大于或等于 0, 若是, 则将当前读命令存入操作命令队列, 否则将后一 个写命令存入操作命令队列, 当前读命令仍然待处理。 跳转步骤 2;
步骤 6, 从写命令队列中取出当前写命令访问的 bank编号, 判断当前 写命令访问的 bank编号是否大于前一个读命令访问的 bank编号,或者,前 一个读命令访问的 bank编号与当前写命令访问的 bank编号之差是否大于等 于 2(tRC-T)/BL, 若是, 则将当前写命令存入操作命令队列, 否则将后一个 读命令存入操作命令队列, 当前写命令仍然待处理。 跳转步骤 2。
步骤 104, 按照 RLDRAM SIO访问配置要求输出子数据片以及操作命 令队列中的读写命令到 RLDRAM SIO。
这一步骤是现有技术中存储器访问控制技术已经可以完成的, 本发明 并没有对此输出过程做改进, 因此, 只介绍一下, 本步骤判断处理的原则: 对于在一个命令周期中只输入一种操作的情况: 距前一个命令 (BL/2-1) 个时钟周期后输出当前命令;
对于在一个命令周期输入两种操作的情况, 且两种操作命令在一个命 令周期中的间隔为 T时: 若前一个命令为写命令, 当前命令为读命令, 则 距前一个命令间隔 T后输出当前命令; 若前一个命令为读命令, 当前命令 为写命令, 则距前一个命令间隔 (BL/2-T-2)后输出当前命令。
步骤 105 , RLDRAM SIO执行写命令时, 将每个数据单元的子数据片 依次存入所有的 bank中; 在执行读命令时, 从所有 bank中取出子数据片。 最后将子数据片组合成数据单元输出。
对于某个时间段的命令周期中输入的只有读命令或者只有写命令的情 况, 虽然利用上述第一实施例中的所述 RLDRAM SIO访问控制方法已经可 以达到提高 RLDRAM SIO读写操作效率的发明目的, 但是, 本发明还提供 一种专门针对只有读命令或者只有写命令的简化的技术方案, 即下面记载 的第二实施例和第三实施例。
本发明第二实施例, 针对某个时间段的命令周期中输入的只有写命令 的情况, 如图 5所示, 一种 RLDRAM SIO访问控制方法, 包括:
步骤 201 , 将包含数据单元写入地址 Addr和子数据片写入内部体地址 BAddr的二维地址信息依次与写命令建立对应访问关系。
具体的, 将数据单元写入地址 Addr与写命令建立对应访问关系, 在每 个数据单元写入地址中,再将子数据片写入内部体地址 BAddr按照 bank的 编号从小到大依次与写命令建立对应访问关系, 即, 每输入一个子数据片 写命令, 就为其分配一个 bank, 按照 bankO~bank(n-l)循环分配, 使每一个 写命令具有包含 Addr和 BAddr的二维地址信息;
同时, 将写命令对应的输入数据包划分为数据单元, 将每个数据单元 划分为与 RLDRAM SIO的 bank数量相等的子数据片, 再将该数据单元的 子数据片依次存入所有的 bank中。
步骤 202, 将写命令及其访问的二维地址信息 {Addr, BAddr}緩存入操 作命令队列。
步骤 203 , 按照 RLDRAM SIO访问配置要求输出子数据片以及操作命 令队列中的写命令到 RLDRAM SI0。 这一步骤是现有技术中存储器访问控制技术已经可以完成的, 本发明 并没有对此输出过程做改进, 因此, 只介绍一下, 本步骤判断处理的原则: 距前一个写命令 (BL/2-1)个时钟周期后输出当前写命令。
步骤 204, RLDRAM SIO执行写命令时, 将每个数据单元的子数据片 依次存入所有的 bank中。
本发明第三实施例, 针对某个时间段的命令周期中输入的只有读命令 的情况, 如图 6所示, 一种 RLDRAM SIO访问控制方法, 包括:
步骤 301 , 将包含数据单元写入地址 Addr和子数据片写入内部体地址 BAddr的二维地址信息依次与读命令建立对应访问关系。
具体的, 将数据单元写入地址 Addr与读命令建立对应访问关系, 在每 个数据单元写入地址中,再将子数据片写入内部体地址 BAddr按照 bank的 编号从小到大依次与读命令建立对应访问关系, 即, 每输入一个子数据片 读命令, 就为其分配一个 bank, 按照 bankO~bank(n-l)循环分配, 使每一个 读命令具有包含 Addr和 BAddr的二维地址信息。
步骤 302, 将读命令及其访问的二维地址信息 {Addr, BAddr}緩存入操 作命令队列。
步骤 303 , 按照 RLDRAM SIO访问配置要求输出子数据片以及操作命 令队列中的读命令到 RLDRAM SIO。
这一步骤是现有技术中存储器访问控制技术已经可以完成的, 本发明 并没有对此输出过程做改进, 因此, 只介绍一下, 本步骤判断处理的原则: 距前一个读命令 (BL/2-1)个时钟周期后输出当前读命令。
步骤 304, RLDRAM SIO执行读命令时,从所有 bank中取出子数据片, 最后将子数据片组合成数据单元输出。
本发明第四实施例, 一种执行上述第一实施例中所述方法的 RLDRAM SIO访问控制装置, 如图 7所示, 包括如下组成部分:
1 )输入操作控制模块, 用于对输入的读写命令和数据包进行解析和分 开保存, 并对分开保存的读写命令进行统一排序得到操作命令队列, 将操 作命令队列发送到緩存模块。 如图 8 所示, 所述输入操作控制模块具体包 括如下子模块:
写数据包解析子模块, 用于将写命令对应的输入数据包划分为数据单 元, 将每个数据单元划分为与 RLDRAM SIO内部体数量相等的子数据片, 用于依次存入存储器的所有内部体 bank中;
写地址解析緩存子模块, 用于将包含数据单元写入地址 Addr和子数据 片写入内部体地址 BAddr 的二维地址信息依次分配给对子数据片的写命 令, 存入写命令队列。 具体过程是: 将数据单元写入地址 Addr与写命令建 立对应访问关系, 在每个数据单元写入地址中, 再将子数据片写入内部体 地址 BAddr按照 bank的编号从小到大依次与写命令建立对应访问关系,即, 每输入一个子数据片写命令, 就为其分配一个 bank, 按照 bankO~bank(n-l) 循环分配,使每一个写命令具有包含 Addr和 BAddr的二维地址信息,将写 命令及其访问的二维地址信息 {Addr, BAddr}緩存入写命令队列。
读地址解析緩存子模块, 用于将所述二维地址信息依次分配给对子数 据片的读命令, 存入读命令队列。 具体过程是: 将数据单元写入地址 Addr 与读命令建立对应访问关系, 在每个数据单元写入地址中, 再将子数据片 写入内部体地址 BAddr按照 bank的编号从小到大依次与读命令建立对应访 问关系, 即, 每输入一个子数据片读命令, 就为其分配一个 bank, 按照 bankO~bank(n-l)循环分配,使每一个读命令具有包含 Addr和 BAddr的二维 地址信息。将读命令及其访问的二维地址信息 {Addr, BAddr}緩存入读命令 队列。
读写命令排序子模块,用于基于相同体最小访问时间间隔 tRC的要求, 对读命令队列和写命令队列统一重新排序得到操作命令队列后输出到緩存 模块。 具体过程如图 4所示。
2 )緩存模块, 用于分别存储操作命令队列和由数据包解析得到的子数 据片。 所述緩存模块具体包括如下子模块:
操作命令緩存子模块, 用于保存由输入操作控制模块、 具体为读写命 令排序子模块统一重新排序后的操作命令队列;
写数据緩存子模块, 用于保存由输入操作控制模块、 具体为写数据包 解析子模块划分成的所述子数据片;
读出数据緩存子模块, 用于存储从 RLDRAM SIO中读出的子数据片。
3 )输出操作控制模块, 用于按照 RLDRAM SIO访问配置要求输出操 作命令队列中的读写命令到 RLDRAM SIO。 输出操作控制模块完成的功能 是现有技术中存储器访问控制技术已经可以实现的, 本发明并没有对此输 出功能做改进, 因此, 只介绍一下, 该模块判断处理的原则:
对于在一个命令周期中只输入一种操作的情况: 距前一个命令 (BL/2-1) 个时钟周期后输出当前命令;
对于在一个命令周期输入两种操作的情况, 且两种操作命令在一个命 令周期中的间隔为 T时: 若前一个命令为写命令, 当前命令为读命令, 则 距前一个命令间隔 T后输出当前命令; 若前一个命令为读命令, 当前命令 为写命令, 则距前一个命令间隔 (BL/2-T-2)后输出当前命令。
4 )输出数据模块, 用于将读出数据緩存子模块中的子数据片重新组合 成数据单元送出。
本发明第五实施例, 一种具有第四实施例所述访问控制装置的 RLDRAM SIO系统, 如图 9所示 , RLDRAM SIO与所述访问控制装置中的 输出操作控制模块相连, 所述访问控制装置包括:
输入操作控制模块, 用于对输入的读写命令和数据包进行解析和分开 保存, 并对分开保存的读写命令进行统一排序得到操作命令队列, 将操作 命令队列发送到緩存模块;
緩存模块, 用于分别存储操作命令队列和由数据包解析得到的子数据 片;
输出操作控制模块,用于按照 RLDRAM SIO访问配置要求输出操作命 令队列中的读写命令到 RLDRAM SIO。
需要说明的是, 本发明具体实施例对读写操作存取地址优化的过程中, 均是将子数据片写入内部体地址 BAddr按照 bank的编号从小到大依次与读 命令或者写命令建立对应访问关系, 但是本领域技术人员完全可以根据上 述记载显而易见的推出按照 bank的编号从大到小或者基于其他的 bank编号 规则分配 bank地址的方法, 以及后续配合该存取地址优化方法实施原理与 本发明技术方案相同的操作命令优化排序过程, 这些基于本发明原理思想 的技术方案均在本发明的保护范围之内。
下面通过附图说明釆用本发明所述方法和装置对 RLDRAM SIO访问控 制后, 读数据线和写数据线有效带宽利用率的情况:
图 10为命令周期中只有写命令的情况下写数据线有效带宽利用情况, 工作条件为: bank个数 =8 , BL=4, tRC为 4个时钟周期, 图中 Clk表示时 钟周期, Cmd表示输出操作模块输出的操作命令, Wdata表示写数据线的 利用情况。 由于本发明对写命令按照 bank编号从小到大分配了子数据片写 入内部体地址 BAddr, 在现有输出操作控制下完全可以达到写数据线有效 带宽利用 100%的效果。
图 11为一个命令周期中写命令和读命令的情况下读写数据线有效带宽 利用情况, 工作条件为: bank个数 =8, BL=4, tRC为 4个时钟周期。 由于 本发明对写命令和读命令的子数据片写入内部体地址 BAddr进行了优化, 并且对写命令队列和读命令队列中的操作统一进行了重新优化排序, 在现 有输出操作控制下完全可以达到写数据线和读数据线有效带宽利用 100% 的效果。
通过具体实施方式的说明, 应当可对本发明为达成预定目的所釆取的 技术手段及功效得以更加深入且具体的了解, 然而所附图示仅是提供参考 与说明之用, 并非用来对本发明加以限制。

Claims

权利要求书
1、 一种独立输入 /输出低延时动态随机访问存储器 RLDRAM SIO访问 控制方法, 其特征在于, 包括:
对输入的读写命令进行地址解析和分开保存, 并对分开保存的读写命 令进行统一排序得到操作命令队列, 同时将输入的数据包解析成子数据片; 输出所述子数据片以及操作命令队列中的读写命令到 RLDRAM SIO。
2、 根据权利要求 1所述访问控制方法, 其特征在于, 所述对输入的读 写命令进行地址解析和分开保存的具体过程包括:
将包含数据单元写入地址和子数据片写入内部体地址的二维地址信息 依次分别与写命令和读命令建立对应访问关系;
将写命令及其访问的所述二维地址信息緩存入写命令队列, 将读命令 及其访问的所述二维地址信息緩存入读命令队列。
3、 根据权利要求 2所述访问控制方法, 其特征在于, 所述将包含数据 单元写入地址和子数据片写入内部体地址的二维地址信息依次分别与写命 令和读命令建立对应访问关系, 包括:
对于写命令, 将数据单元写入地址与写命令建立对应访问关系, 在每 个数据单元写入地址中, 再将子数据片写入内部体地址按照编号从小到大 依次与写命令建立对应访问关系, 使每一个写命令具有包含数据单元写入 地址和子数据片写入内部体地址的二维地址信息;
对于读命令, 将数据单元写入地址与读命令建立对应访问关系, 在每 个数据单元写入地址中, 再将子数据片写入内部体地址按照编号从小到大 依次与读命令建立对应访问关系, 使每一个读命令具有包含数据单元写入 地址和子数据片写入内部体地址的二维地址信息。
4、 根据权利要求 1所述访问控制方法, 其特征在于, 所述对分开保存 的读写命令进行统一排序得到的操作命令队列的具体过程, 包括:
基于相同子数据片写入内部体最小访问间隔的要求, 对写命令队列和 读命令队列进行重新排序得到操作命令队列。
5、 根据权利要求 4所述访问控制方法, 其特征在于, 所述基于相同子 数据片写入内部体最小访问间隔的要求, 对分开保存的写命令和读命令进 行重新排序得到的操作命令队列, 包括:
在写命令队列和读命令队列中分别按照子数据片写入内部体编号从小 到大处理读命令和写命令, 对取出的第一个命令直接存入操作命令队列, 从第二个命令开始执行下面的步骤:
步骤一、 判断前一个命令是读命令还是写命令, 若前一个命令是写命 令, 则跳转步骤二, 若前一个命令是读命令, 则跳转步骤三;
步骤二、 判断读命令队列中是否为空, 若为空, 则跳转步骤五, 若不 为空, 则跳转步骤四;
步骤三、 判断写命令队列中是否为空, 若为空, 则跳转步骤四, 若不 为空, 则, 跳转步骤五;
步骤四、 从读命令队列中取出当前读命令访问的子数据片写入内部体 编号, 判断当前读命令访问的子数据片写入内部体编号是否大于前一个写 命令访问的子数据片写入内部体编号, 或者, 前一个写命令访问的子数据 片写入内部体编号与当前读命令访问的子数据片写入内部体编号之差是否 大于等于 2(tRC-T)/BL, BL为 RLDRAM SIO的突发长度, tRC为相同子数 据片写入内部体地址最小访问间隔, T为一个命令周期内写命令和读命令之 间的间隔, 若是, 则将当前读命令存入操作命令队列, 否则将后一个写命 令存入操作命令队列, 当前读命令仍然待处理, 跳转步骤一;
步骤五、 从写命令队列中取出当前写命令访问的子数据片写入内部体 编号, 判断当前写命令访问的子数据片写入内部体编号是否大于前一个读 命令访问的子数据片写入内部体编号, 或者, 前一个读命令访问的子数据 片写入内部体编号与当前写命令访问的子数据片写入内部体编号之差是否 大于等于 2(tRC-T)/BL, 若是, 则将当前写命令存入操作命令队列, 否则将 后一个读命令存入操作命令队列, 当前写命令仍然待处理, 跳转步骤一。
6、 根据权利要求 1所述访问控制方法, 其特征在于, 所述将输入的数 据包解析成子数据片的过程包括:
将输入的数据包划分为数据单元, 将每个数据单元划分为与 RLDRAM SIO内部体数量相等的子数据片。
7、 一种 RLDRAM SIO访问控制方法, 其特征在于, 包括:
对输入的读命令或者写命令进行地址解析和緩存得到操作命令队列, 并且, 当输入的是写命令时, 将输入的数据包解析成子数据片; 输出所述子数据片以及操作命令队列中的读命令或者写命令到
RLDRAM SIO。
8、 根据权利要求 7所述访问控制方法, 其特征在于, 所述对输入的读 命令或者写命令进行地址解析和緩存得到的操作命令队列, 包括:
将包含数据单元写入地址和子数据片写入内部体地址的二维地址信息 依次与写命令或读命令建立对应访问关系;
将写命令及其访问的所述二维地址信息緩存入操作命令队列, 或者, 将读命令及其访问的所述二维地址信息緩存入操作命令队列。
9、 一种 RLDRAM SIO访问控制装置, 其特征在于, 包括:
输入操作控制模块, 用于对输入的读写命令和数据包进行解析和分开 保存, 并对保存的读写命令进行统一排序得到操作命令队列, 将操作命令 队列发送到緩存模块;
緩存模块, 用于分别存储操作命令队列和由数据包解析得到的子数据 片;
输出操作控制模块, 用于输出操作命令队列中的读写命令到 RLDRAM
SIO。
10、 根据权利要求 9所述访问控制装置, 其特征在于, 所述输入操作 控制模块具体包括:
写数据包解析子模块, 用于将写命令对应的输入数据包划分为数据单 元, 将每个数据单元划分为与 RLDRAM SIO内部体数量相等的子数据片; 写地址解析緩存子模块, 用于将包含数据单元写入地址和子数据片写 入内部体地址的二维地址信息依次分配给对子数据片的写命令, 存入写命 令队列;
读地址解析緩存子模块, 用于将所述二维地址信息依次分配给对子数 据片的读命令, 存入读命令队列;
读写命令排序子模块, 用于基于相同子数据片写入内部体最小访问间 隔的要求, 对读命令队列和写命令队列统一重新排序得到操作命令队列后 输出到緩存模块。
11、 根据权利要求 9或 10所述访问控制装置, 其特征在于, 所述緩存 模块具体包括:
操作命令緩存子模块, 用于保存由输入操作控制模块统一重新排序后 的操作命令队列;
写数据緩存子模块, 用于保存由输入操作控制模块划分成的所述子数 据片。
12、 根据权利要求 11所述访问控制装置, 其特征在于,
所述緩存模块还包括读出数据緩存子模块, 用于存储从 RLDRAM SIO 中读出的子数据片;
该装置进一步包括输出数据模块, 用于将读出数据緩存子模块中的子 数据片重新组合成数据单元送出。
13、 一种具有权 9所述访问控制装置的 RLDRAM SIO系统, 其特征在 于, RLDRAM SIO与所述访问控制装置中的输出操作控制模块相连, 所述 访问控制装置包括:
输入操作控制模块, 用于对输入的读写命令和数据包进行解析和分开 保存, 并对保存的读写命令进行统一排序得到操作命令队列, 将操作命令 队列发送到緩存模块;
緩存模块, 用于分别存储操作命令队列和由数据包解析得到的子数据 片;
输出操作控制模块, 用于输出操作命令队列中的读写命令到 RLDRAM
SIO。
PCT/CN2011/074373 2010-08-13 2011-05-20 一种rldramsio访问控制方法和装置 WO2012019475A1 (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201010252679.5A CN101916227B (zh) 2010-08-13 2010-08-13 一种rldram sio存储器访问控制方法和装置
CN201010252679.5 2010-08-13

Publications (1)

Publication Number Publication Date
WO2012019475A1 true WO2012019475A1 (zh) 2012-02-16

Family

ID=43323744

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2011/074373 WO2012019475A1 (zh) 2010-08-13 2011-05-20 一种rldramsio访问控制方法和装置

Country Status (2)

Country Link
CN (1) CN101916227B (zh)
WO (1) WO2012019475A1 (zh)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109101185A (zh) * 2017-06-20 2018-12-28 北京忆恒创源科技有限公司 固态存储设备及其写命令和读命令处理方法
CN110321260A (zh) * 2019-06-28 2019-10-11 西安紫光国芯半导体有限公司 一种基于uvm的axi总线接口读写数据比较方法和uvm验证平台
CN113495674A (zh) * 2020-04-01 2021-10-12 长鑫存储技术有限公司 读写方法及存储器装置
US11171852B2 (en) * 2013-08-15 2021-11-09 International Business Machines Corporation Computer system productivity monitoring
US11869615B2 (en) 2020-04-01 2024-01-09 Changxin Memory Technologies, Inc. Method for reading and writing and memory device
US11881240B2 (en) 2020-04-01 2024-01-23 Changxin Memory Technologies, Inc. Systems and methods for read/write of memory devices and error correction
US11894088B2 (en) 2020-04-01 2024-02-06 Changxin Memory Technologies, Inc. Method for reading and writing and memory device
US11899971B2 (en) 2020-04-01 2024-02-13 Changxin Memory Technologies, Inc. Method for reading and writing and memory device
US11914479B2 (en) 2020-04-01 2024-02-27 Changxin Memory Technologies, Inc. Method for reading and writing and memory device

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101916227B (zh) * 2010-08-13 2015-04-01 中兴通讯股份有限公司 一种rldram sio存储器访问控制方法和装置
US9875185B2 (en) * 2014-07-09 2018-01-23 Intel Corporation Memory sequencing with coherent and non-coherent sub-systems
CN105653494B (zh) * 2014-11-12 2018-06-26 杭州华为数字技术有限公司 一体机
CN106951374B (zh) * 2016-01-06 2022-06-10 北京忆芯科技有限公司 用于检查块页地址的方法及其装置
CN109857616B (zh) * 2019-01-25 2021-05-18 山东华芯半导体有限公司 一种基于指令的dram控制器带宽效率检测方法
CN110399219B (zh) * 2019-07-18 2022-05-17 深圳云天励飞技术有限公司 内存访问方法、dmc及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1961302A (zh) * 2004-04-28 2007-05-09 英特尔公司 具有命令前瞻的存储器控制器
CN101498994A (zh) * 2009-02-16 2009-08-05 华中科技大学 一种固态硬盘控制器
CN101916227A (zh) * 2010-08-13 2010-12-15 中兴通讯股份有限公司 一种rldram sio存储器访问控制方法和装置

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7111143B2 (en) * 2003-12-30 2006-09-19 Infineon Technologies Ag Burst mode implementation in a memory device
CN100570746C (zh) * 2004-02-04 2009-12-16 华为技术有限公司 在动态存储器中实现查表控制器的方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1961302A (zh) * 2004-04-28 2007-05-09 英特尔公司 具有命令前瞻的存储器控制器
CN101498994A (zh) * 2009-02-16 2009-08-05 华中科技大学 一种固态硬盘控制器
CN101916227A (zh) * 2010-08-13 2010-12-15 中兴通讯股份有限公司 一种rldram sio存储器访问控制方法和装置

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11171852B2 (en) * 2013-08-15 2021-11-09 International Business Machines Corporation Computer system productivity monitoring
CN109101185B (zh) * 2017-06-20 2023-08-11 北京忆恒创源科技股份有限公司 固态存储设备及其写命令和读命令处理方法
CN109101185A (zh) * 2017-06-20 2018-12-28 北京忆恒创源科技有限公司 固态存储设备及其写命令和读命令处理方法
CN110321260A (zh) * 2019-06-28 2019-10-11 西安紫光国芯半导体有限公司 一种基于uvm的axi总线接口读写数据比较方法和uvm验证平台
CN110321260B (zh) * 2019-06-28 2023-03-24 西安紫光国芯半导体有限公司 一种基于uvm的axi总线接口读写数据比较方法和uvm验证平台
CN113495674B (zh) * 2020-04-01 2023-10-10 长鑫存储技术有限公司 读写方法及存储器装置
CN113495674A (zh) * 2020-04-01 2021-10-12 长鑫存储技术有限公司 读写方法及存储器装置
US11869615B2 (en) 2020-04-01 2024-01-09 Changxin Memory Technologies, Inc. Method for reading and writing and memory device
US11881240B2 (en) 2020-04-01 2024-01-23 Changxin Memory Technologies, Inc. Systems and methods for read/write of memory devices and error correction
US11894088B2 (en) 2020-04-01 2024-02-06 Changxin Memory Technologies, Inc. Method for reading and writing and memory device
US11899971B2 (en) 2020-04-01 2024-02-13 Changxin Memory Technologies, Inc. Method for reading and writing and memory device
US11914479B2 (en) 2020-04-01 2024-02-27 Changxin Memory Technologies, Inc. Method for reading and writing and memory device
US11922023B2 (en) 2020-04-01 2024-03-05 Changxin Memory Technologies, Inc. Read/write method and memory device

Also Published As

Publication number Publication date
CN101916227B (zh) 2015-04-01
CN101916227A (zh) 2010-12-15

Similar Documents

Publication Publication Date Title
WO2012019475A1 (zh) 一种rldramsio访问控制方法和装置
US8225026B2 (en) Data packet access control apparatus and method thereof
US8166237B1 (en) Configurable allocation of thread queue resources in an FPGA
US9712461B2 (en) Data caching system and method for ethernet device
US20050172091A1 (en) Method and an apparatus for interleaving read data return in a packetized interconnect to memory
CN109388590B (zh) 提升多通道dma访问性能的动态缓存块管理方法和装置
CN108366111B (zh) 一种用于交换设备的数据包低时延缓存装置与方法
US20090172318A1 (en) Memory control device
WO2009111971A1 (zh) 缓存数据写入系统及方法和缓存数据读取系统及方法
US7822915B2 (en) Memory controller for packet applications
CN112189324B (zh) 带宽匹配的调度器
CN110058816B (zh) 一种基于ddr的高速多用户队列管理器及方法
WO2012079436A1 (zh) 一种存储器接口访问控制方法及装置
US9390017B2 (en) Write and read collision avoidance in single port memory devices
CN113126911B (zh) 基于ddr3 sdram的队列管理方法、介质、设备
CN100536021C (zh) 大容量高速缓冲存储器
US8995210B1 (en) Write and read collision avoidance in single port memory devices
JP2017045491A (ja) 半導体メモリ、メモリシステム
US7451182B2 (en) Coordinating operations of network and host processors
US20150006828A1 (en) Memory architecture determining the number of replicas stored in memory banks or devices according to a packet size
CN113886287A (zh) 一种基于SoC的自适应实时缓存系统及方法
Wang et al. Design of 2D DMA Controller for Crypto-engine in Video Stream Data Encryption Card
CN113821457B (zh) 一种高性能读写链表缓存的装置及方法
WO2024001414A1 (zh) 报文的缓存方法、装置、电子设备及存储介质
CN116303159A (zh) 一种ddr4访问控制方法、装置及网络设备

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: 11816034

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: 11816034

Country of ref document: EP

Kind code of ref document: A1