JP2017167972A - Memory controller and method for controlling the same - Google Patents

Memory controller and method for controlling the same Download PDF

Info

Publication number
JP2017167972A
JP2017167972A JP2016054463A JP2016054463A JP2017167972A JP 2017167972 A JP2017167972 A JP 2017167972A JP 2016054463 A JP2016054463 A JP 2016054463A JP 2016054463 A JP2016054463 A JP 2016054463A JP 2017167972 A JP2017167972 A JP 2017167972A
Authority
JP
Japan
Prior art keywords
command
memory
data
issuing
write
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.)
Pending
Application number
JP2016054463A
Other languages
Japanese (ja)
Inventor
藤原 誠
Makoto Fujiwara
誠 藤原
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
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 Canon Inc filed Critical Canon Inc
Priority to JP2016054463A priority Critical patent/JP2017167972A/en
Publication of JP2017167972A publication Critical patent/JP2017167972A/en
Pending legal-status Critical Current

Links

Images

Abstract

PROBLEM TO BE SOLVED: To suppress the reduction of data transfer efficiency occurring in order to obtain a preamble period.SOLUTION: In the memory controller for performing writing/reading between memories when requiring an access for performing writing from an external bus master to a memory or performing reading from the memory, a command issuing section comprises: a determination part for determining whether a second command succeeding a first command and having the same type as the first command is stored in a command queue when inputted as the first command from the command queue; and a control part for delaying the issue timing of the first command according to predetermined conditions when determining that the second command succeeding the first command in the determination part and having the same type as the first command is stored in the command queue.SELECTED DRAWING: Figure 1

Description

本発明は、DRAMを制御するメモリコントローラに関し、特に、DRAMへのリードコマンド発行タイミング、及びライトコマンド発行タイミングを制御するメモリコントローラに関する。   The present invention relates to a memory controller that controls a DRAM, and more particularly to a memory controller that controls a read command issue timing and a write command issue timing to a DRAM.

近年、従来のDDR3 SDRAMよりも高速なDDR4 SDRAMが提案されている。DDR4 SDRAMは、800MHzから1.6GHzの高速なクロックに同期して動作する。特に高速な1.3GHzから1.6GHzの速度で動作するDDR4 SDRAM では、リードデータやライトデータの同期信号であるDQS信号をデータ転送に先だって開始するプリアンブル期間を2サイクルにする機能がサポートされている。プリアンブル期間は1サイクル又は2サイクルがモードレジスタの設定によって選択される(非特許文献1参照)。   In recent years, DDR4 SDRAM has been proposed that is faster than conventional DDR3 SDRAM. The DDR4 SDRAM operates in synchronization with a high-speed clock from 800 MHz to 1.6 GHz. In particular, in the DDR4 SDRAM that operates at a high speed of 1.3 GHz to 1.6 GHz, a function of setting a preamble period that starts a DQS signal, which is a synchronization signal of read data and write data, to 2 cycles before data transfer is supported. Yes. As the preamble period, one cycle or two cycles are selected by setting the mode register (see Non-Patent Document 1).

また、低消費電力動作のDDR4 SDRAM である LPDDR4 SDRAMは、プリアンブル期間が2サイクルに固定されている(非特許文献2参照)。   In addition, the LPDDR4 SDRAM, which is a low power consumption DDR4 SDRAM, has a preamble period fixed to 2 cycles (see Non-Patent Document 2).

JEDEC STANDARD DDR4 SDRAM JESD79-4AJEDEC STANDARD DDR4 SDRAM JESD79-4A JEDEC STANDARD LPDDR4 SDRAM JESD209-4JEDEC STANDARD LPDDR4 SDRAM JESD209-4

DDR SDRAM では、リードコマンドやライトコマンドを、DRAMのバースト長の半分のクロック間隔以上で発行する。リードコマンドやライトコマンドを、DRAMのバースト長の半分のクロック間隔で発行すると、データ転送が連続し、データ転送効率が最大となる。   In the DDR SDRAM, a read command or a write command is issued at a clock interval that is half or more of the burst length of the DRAM. When a read command or a write command is issued at a clock interval that is half the burst length of the DRAM, data transfer is continuous and data transfer efficiency is maximized.

プリアンブル期間が1サイクルの DDR3 SDRAM を、バースト長8で使用する場合、リードコマンドやライトコマンドを、4サイクル間隔以上の任意の間隔で発行することが可能であった。しかし、プリアンブル期間が2サイクルのDDR4 SDRAM を、バースト長8で使用すると、リードコマンドやライトコマンドを、4サイクル間隔、又は6サイクル間隔以上で発行する必要がある。   When a DDR3 SDRAM having a preamble period of 1 cycle is used with a burst length of 8, it is possible to issue a read command or a write command at an arbitrary interval of 4 cycles or more. However, when a DDR4 SDRAM having a preamble period of 2 cycles is used with a burst length of 8, it is necessary to issue a read command or a write command at intervals of 4 cycles or 6 cycles.

プリアンブル期間が2サイクルのDDR4 DRAM は、メモリコントローラがリードコマンドやライトコマンドを、5サイクル間隔で発行出来る場合でも、6サイクル間隔で発行する必要があり、データ転送効率が低下する。   DDR4 DRAM having a preamble period of 2 cycles needs to issue read commands and write commands at intervals of 5 cycles even when the memory controller can issue read commands and write commands at intervals of 5 cycles, and data transfer efficiency decreases.

この課題を解決するため、例えば本発明のメモリコントローラは以下の構成を備える。すなわち、
メモリと間で書き込み/読み出しを行うメモリコントローラであって、
外部のバスマスタから前記メモリへの書き込み又は前記メモリからの読み出しのためのアクセス要求があった場合、当該アクセス要求から前記メモリに対するコマンドを生成し、コマンドキューに格納するコマンド生成手段と、
該コマンドキューからコマンドを入力し、前記メモリに向けてコマンドを発行するコマンド発行手段とを有し、
前記コマンド発行手段は、
前記コマンドキューから第1のコマンドとして入力した場合、前記コマンドキューに、当該第1のコマンドに後続し、当該第1のコマンドと同じ種類の第2のコマンドが格納されているか否かを判別する判別する判別手段と、
該判別手段で前記第1のコマンドに後続し、当該第1のコマンドと同じ種類の第2のコマンドが前記コマンドキューに格納されていると判別された場合、前記第1のコマンドの発行タイミングを、予め定められた条件に応じて遅延させる制御手段とを有する。
In order to solve this problem, for example, a memory controller of the present invention has the following configuration. That is,
A memory controller for writing / reading to / from a memory,
When there is an access request for writing to or reading from the memory from an external bus master, command generation means for generating a command for the memory from the access request and storing it in a command queue;
Command issuing means for inputting a command from the command queue and issuing a command toward the memory;
The command issuing means includes
When the first command is input from the command queue, it is determined whether or not a second command of the same type as the first command is stored in the command queue subsequent to the first command. Discriminating means for discriminating;
If it is determined by the determining means that the second command of the same type as the first command is stored in the command queue following the first command, the issuing timing of the first command is set. And control means for delaying according to a predetermined condition.

本発明によれば、プリアンブル期間が複数サイクルのDRAMに対して、先行のコマンドの発行タイミングを遅らせて、データ転送を連続で行わせることにより、プリアンブル期間を確保するために発生するデータ転送効率の低下を抑制できる。   According to the present invention, for a DRAM having a preamble period of a plurality of cycles, the data transfer efficiency generated to secure the preamble period can be improved by delaying the timing of issuing the preceding command and continuously performing the data transfer. Reduction can be suppressed.

第1の実施形態におけるメモリコントローラの構成例を示す図。FIG. 3 is a diagram illustrating a configuration example of a memory controller according to the first embodiment. 第1の実施形態におけるコマンド発行回路の構成例を示す図。FIG. 3 is a diagram illustrating a configuration example of a command issuing circuit according to the first embodiment. 実施形態におけるリードコマンド受信時の処理の流れを示す図。The figure which shows the flow of a process at the time of the read command reception in embodiment. 実施形態におけるリードコマンド発行時の処理の流れを示す図。The figure which shows the flow of a process at the time of the read command issue in embodiment. リードコマンドが連続する場合のタイミングチャートを示す図。The figure which shows a timing chart in case a read command continues. ライトコマンドを受信した場合の処理の流れを示す図。The figure which shows the flow of a process when a write command is received. ライトコマンド発行時の処理の流れを示す図。The figure which shows the flow of a process at the time of issuing a write command. ライトコマンドが連続する場合のタイミングチャートを示す図。The figure which shows the timing chart in case a write command continues.

以下、添付図面に従って本発明に係る実施形態を詳細に説明する。   Hereinafter, embodiments according to the present invention will be described in detail with reference to the accompanying drawings.

[第1実施形態]
図1は第1実施形態におけるメモリコントローラ100の概略構成図である。メモリコントローラ100は、外部バス(ライトデータバス、リードデータバスを含む)に接続される。そして、メモリコントローラ100はDRAM110とも接続され、外部バス上のバスマスタ(例えばCPU)からの要求に応じて、DRAM110にコマンドを発行し、DRAM110との間で書き込み/読み出しを行う。たとえば、メモリコントローラ100は、外部からDRAM110への書き込み要求があった場合には、ライトコマンドをDRAM110に発行(送信)し、後続してライトデータの同期信号とライトデータをDRAM110に送信する。また、メモリコントローラ100は、外部バスから読み出し要求を受信した場合には、DRAM110に対してリードコマンドを発行する。この結果、DRAM110からは、リードデータの同期信号とリードデータが出力されてくるので、メモリコントローラ100はリードデータを受け取り、外部バス上に出力する。
[First Embodiment]
FIG. 1 is a schematic configuration diagram of a memory controller 100 according to the first embodiment. The memory controller 100 is connected to an external bus (including a write data bus and a read data bus). The memory controller 100 is also connected to the DRAM 110, issues a command to the DRAM 110 in accordance with a request from a bus master (for example, CPU) on the external bus, and performs writing / reading with the DRAM 110. For example, when there is a write request to the DRAM 110 from the outside, the memory controller 100 issues (transmits) a write command to the DRAM 110, and subsequently transmits a write data synchronization signal and write data to the DRAM 110. When the memory controller 100 receives a read request from the external bus, the memory controller 100 issues a read command to the DRAM 110. As a result, since the read data synchronization signal and read data are output from the DRAM 110, the memory controller 100 receives the read data and outputs it on the external bus.

より詳しく説明する。メモリコントローラ100は、外部バス上のバスマスタから、メモリアクセス要求を受信すると、受信したメモリアクセス要求を、コマンド生成回路101に格納する。コマンド生成回路101は、受信したメモリアクセス要求をコマンドに変換して、変換したコマンドをコマンドキュー102に送信する。コマンドキュー102は、コマンド生成回路101が生成したコマンドだけでなく、DRAMのリフレッシュや、キャリブレーションを実行する為のコマンドも格納する。そして、コマンド発行回路103は、コマンドキュー102に格納されたコマンドを順に入力し、以下に説明するタイミングに従ってDRAM110に向けて、そのコマンドを出力(発行)する。   This will be described in more detail. When the memory controller 100 receives a memory access request from the bus master on the external bus, the memory controller 100 stores the received memory access request in the command generation circuit 101. The command generation circuit 101 converts the received memory access request into a command, and transmits the converted command to the command queue 102. The command queue 102 stores not only commands generated by the command generation circuit 101 but also commands for executing DRAM refresh and calibration. The command issuing circuit 103 inputs the commands stored in the command queue 102 in order, and outputs (issues) the commands to the DRAM 110 according to the timing described below.

タイマ106は、DRAM110に発行するコマンドの発行間隔をDRAM仕様にあわせるために、コマンド発行回路103が発行するコマンドを観測し、コマンド発行からの経過時間を計測し、計測結果をコマンド発行回路103に通知する。データレート測定回路107は、外部バスのリードデータバスのデータ読み出し速度(転送レート)を観測し、観測結果をリードデータバスのデータレートとしてコマンド発行回路103に通知する。また、データレート測定回路107は、外部バスのデータ書き込み速度も観測し、観測結果をライトデータバスのデータレートとしてコマンド発行回路103に通知する。   The timer 106 observes the command issued by the command issuing circuit 103 in order to adjust the issuing interval of the command issued to the DRAM 110 to the DRAM specification, measures the elapsed time since the command issuance, and sends the measurement result to the command issuing circuit 103. Notice. The data rate measuring circuit 107 observes the data reading speed (transfer rate) of the read data bus of the external bus, and notifies the command issuing circuit 103 of the observation result as the data rate of the read data bus. The data rate measuring circuit 107 also observes the data write speed of the external bus and notifies the command issuing circuit 103 of the observation result as the data rate of the write data bus.

ライトデータバッファ104は、受信したライトデータを一時的に格納してからDRAM110に転送(書き込む)するためのバッファであり、格納しているデータ量を、コマンド発行回路103に通知する。リードデータバッファ105は、DRAM110が出力したデータを一時的に格納してからリードデータバスに送信するためのバッファであり、バッファの空き量を、コマンド発行回路103に通知する。   The write data buffer 104 is a buffer for temporarily storing received write data and then transferring (writing) to the DRAM 110, and notifies the command issuing circuit 103 of the stored data amount. The read data buffer 105 is a buffer for temporarily storing the data output from the DRAM 110 and transmitting the data to the read data bus, and notifies the command issuing circuit 103 of the buffer free space.

同期信号生成回路108は、DRAM110へのライト転送時にライトデータの同期信号を生成する。入出力切替回路109は、ライト転送時に、ライトデータバッファ104が転送するライトデータと、同期信号生成回路108が生成する同期信号を、DRAM110に転送する。また、リード転送時に、DRAM110が転送するリードデータと同期信号を、リードデータバッファ105に転送する。コマンド発行回路103は、コマンドキュー102からコマンドを受信し、コマンドの送信タイミングを制御して、DRAM110にそのコマンドを発行(送信)する。   The synchronization signal generation circuit 108 generates a write data synchronization signal at the time of write transfer to the DRAM 110. The input / output switching circuit 109 transfers the write data transferred by the write data buffer 104 and the synchronization signal generated by the synchronization signal generation circuit 108 to the DRAM 110 during write transfer. At the time of read transfer, the read data and synchronization signal transferred by the DRAM 110 are transferred to the read data buffer 105. The command issuing circuit 103 receives a command from the command queue 102, controls the command transmission timing, and issues (transmits) the command to the DRAM 110.

図2は、第1実施形態におけるコマンド発行回路103のブロック構成図である。コマンド発行回路103は、タイミング予測部801、及び、コマンド発行部802を含む。タイミング予測部801は、後続のコマンドがリードの場合、リードデータバッファ105から通知される空き量と、データレート測定回路107から通知されるリードデータバスのデータレートから、後続コマンドの発行タイミングを予測する。後続のコマンドがライトの場合、ライトデータバッファ104から通知されるライトデータバッファ格納量と、データレート測定回路107から通知されるライトデータバスのデータレートから、後続コマンドの発行タイミングを予測する。   FIG. 2 is a block diagram of the command issuing circuit 103 in the first embodiment. The command issuing circuit 103 includes a timing prediction unit 801 and a command issuing unit 802. When the subsequent command is a read, the timing prediction unit 801 predicts the subsequent command issuance timing from the free space notified from the read data buffer 105 and the read data bus data rate notified from the data rate measurement circuit 107. To do. When the subsequent command is a write, the issue timing of the subsequent command is predicted from the write data buffer storage amount notified from the write data buffer 104 and the data rate of the write data bus notified from the data rate measuring circuit 107.

コマンド発行部802は、コマンドキュー102に格納された次コマンド、タイマ106の計測結果、リードデータバッファ105から通知される空き量、タイミング予測部801から通知される予測結果からリードコマンド発行タイミングを決定する。また、コマンド発行部802は、コマンドキュー102に格納された次コマンド、タイマ106の計測結果、ライトデータバッファ104から通知されるデータ量、タイミング予測部801から通知される予測結果からライトコマンドの送信タイミングを決定する。   The command issuing unit 802 determines the read command issue timing from the next command stored in the command queue 102, the measurement result of the timer 106, the free space notified from the read data buffer 105, and the prediction result notified from the timing prediction unit 801. To do. The command issuing unit 802 transmits a write command from the next command stored in the command queue 102, the measurement result of the timer 106, the data amount notified from the write data buffer 104, and the prediction result notified from the timing prediction unit 801. Determine timing.

図3は、第1実施形態のコマンド発行回路103が、コマンドキュー102からリードコマンドを受信した際の処理の流れを説明するフロー図である。   FIG. 3 is a flowchart illustrating a processing flow when the command issuing circuit 103 according to the first embodiment receives a read command from the command queue 102.

コマンド発行回路103は、リードコマンドを受信すると、タイマの計測結果から、受信したリードコマンドをDRAM110に発行してもDRAMのタイミング制約に違反しないか判定する(S201)。リードコマンドを発行してもDRAM110のタイミング制約に違反しない場合は、コマンド発行回路103は、リードデータバッファ105にリードコマンド1回分のリードデータを格納する為の空きがあるかを判定する(S202)。リードデータバッファ105にリードコマンド1回分の空きがある場合は、コマンド発行回路103は、コマンドキュー102の先頭に格納されたコマンド情報から、次のコマンドも同じ種類のリードコマンドかどうかを判別する(S203)。次のコマンドがリードコマンドではない場合、または次のコマンドがコマンドキュー102に格納されていないと判別された場合、コマンド発行回路103は、DRAM110に向けて、受信したリードコマンドを発行する(S204)。また、次のコマンドもリードコマンドの場合は、コマンド発行回路103は、リードコマンドの発行タイミングの制御を行う(S205)。この発行タイミング制御処理の後、コマンド発行回路103は、DRAM110に向けて、受信したリードコマンドを発行する(S204)。   When receiving the read command, the command issuing circuit 103 determines from the timer measurement result whether or not the received read command is issued to the DRAM 110 so as not to violate the DRAM timing constraint (S201). If the read command is issued and the timing constraint of the DRAM 110 is not violated, the command issue circuit 103 determines whether or not the read data buffer 105 has a space for storing the read data for one read command (S202). . If the read data buffer 105 has a space for one read command, the command issuing circuit 103 determines from the command information stored at the head of the command queue 102 whether the next command is also the same type of read command ( S203). If the next command is not a read command, or if it is determined that the next command is not stored in the command queue 102, the command issuing circuit 103 issues the received read command to the DRAM 110 (S204). . If the next command is also a read command, the command issuing circuit 103 controls the issue timing of the read command (S205). After the issue timing control process, the command issue circuit 103 issues the received read command to the DRAM 110 (S204).

次に、上記のS205の、リードコマンド発行タイミング制御処理の流れを図4のフローチャートに従って説明する。   Next, the flow of the read command issue timing control process in S205 will be described with reference to the flowchart of FIG.

コマンド発行部802は、リードデータバスのデータレートが、DRAM110のデータレートの同等以上か判定する(S301)。リードデータバスのデータレートが、DRAM110のデータレートの同等以上である場合、コマンド発行部802は、コマンド発行タイミングを遅延させない(S302)。   The command issuing unit 802 determines whether the data rate of the read data bus is equal to or higher than the data rate of the DRAM 110 (S301). When the data rate of the read data bus is equal to or higher than the data rate of the DRAM 110, the command issuing unit 802 does not delay the command issue timing (S302).

リードデータバスのデータレートが、DRAM110のデータレートの同等以上でなかった場合、コマンド発行部802は、リードデータバスのデータレートが、DRAM110のデータレートの1/2以上かを判定する(S303)。リードデータバスのデータレートが、DRAM110のデータレートの1/2以上であったとする。この場合、コマンド発行部802は、DQS信号(データストローブ信号)による“プリアンブル期間−1”サイクル内に、リードデータバッファ105に後続のリードに対するリードデータの1/2以上を格納する空きができるかを予測する(S304)。例えば、プリアンブル期間が“3”、DRAMのバースト長が“8”の場合、2サイクルでリードデータバッファ105の空きは2増加する。そのため、判定のタイミングで、リードデータバッファに後続のリードコマンドに対するリードデータバッファ105の空きが2以上あれば、2サイクル後のリードデータバッファ105の空きは4以上になる。従って、“プリアンブル期間−1”サイクル内に、リードデータバッファに後続のリードに対するリードデータの1.2以上を格納する空きができることになる。条件が成立する場合、リードデータバッファ105に後続のリードコマンドに対するリードデータの1/2以上を格納するための空きができるまで、受信したコマンド発行を遅延させる(S305)。これにより、遅延させたリードコマンドと後続のリードコマンドに対するリードデータ転送はプリアンブル期間を挟まずに連続にて行うことが可能となる。   When the data rate of the read data bus is not equal to or higher than the data rate of the DRAM 110, the command issuing unit 802 determines whether the data rate of the read data bus is ½ or higher of the data rate of the DRAM 110 (S303). . It is assumed that the data rate of the read data bus is ½ or more of the data rate of the DRAM 110. In this case, does the command issuing unit 802 have a space for storing ½ or more of the read data for the subsequent read in the read data buffer 105 within the “preamble period−1” cycle by the DQS signal (data strobe signal)? Is predicted (S304). For example, when the preamble period is “3” and the burst length of the DRAM is “8”, the free space in the read data buffer 105 increases by 2 in two cycles. Therefore, at the determination timing, if the read data buffer has 2 or more free space in the read data buffer 105 for the subsequent read command, the free space in the read data buffer 105 after 2 cycles becomes 4 or more. Therefore, in the “preamble period−1” cycle, a space for storing 1.2 or more of the read data for the subsequent read is created in the read data buffer. If the condition is satisfied, the received command issuance is delayed until there is a free space in the read data buffer 105 for storing ½ or more of the read data for the subsequent read command (S305). As a result, the read data transfer for the delayed read command and the subsequent read command can be continuously performed without interposing the preamble period.

一方、条件が成立しない場合、コマンド発行は遅延させない(S302)。 遅延させずにリードコマンドを発行しても、後続のリードコマンドに対してリードデータ転送が開始する前までにプリアンブル期間が完了するため、プリアンブル期間によるデータ転送効率の低下は発生しないためである。   On the other hand, if the condition is not satisfied, the command issue is not delayed (S302). This is because even if the read command is issued without delay, the preamble period is completed before the read data transfer is started for the subsequent read command, so that the data transfer efficiency is not lowered due to the preamble period.

リードデータバスのデータレートが、DRAMのデータレートの1/2以上でなかった場合、コマンド発行部802は、リードデータバスのデータレートが、DRAMのデータレートの1/4以上か判定する(S306)。リードデータバスのデータレートが、DRAMのデータレートの1/4以上であったとする。この場合、コマンド発行部802は、“プリアンブル期間−1“サイクル内に、リードデータバッファ105に後続のリードに対するリードデータの3/4以上を格納する空きができるか予測する(S307)。例えば、プリアンブル期間が3、DRAMのバースト長が8の場合、2サイクルでリードデータバッファ105の空きは1増加する。そのため、判定のタイミングで、リードデータバッファ105に後続のリードコマンドに対するリードデータバッファ105の空きが5以上あれば、2サイクル後のリードデータバッファの空きは6以上になる。従って、この場合には、“プリアンブル期間−1“サイクル内に、リードデータバッファに後続のリードに対するリードデータの3/4以上を格納する空きができることになる。条件が成立する場合、コマンド発行部802は、リードデータバッファ105に後続のリードに対するリードデータの3/4以上を格納するための空きができるまで、受信したコマンド発行を遅延させる(S308)。条件が成立しない場合は、コマンド発行は遅延させない(S302)。   When the data rate of the read data bus is not ½ or more of the DRAM data rate, the command issuing unit 802 determines whether the data rate of the read data bus is ¼ or more of the DRAM data rate (S306). ). Assume that the data rate of the read data bus is ¼ or more of the data rate of the DRAM. In this case, the command issuing unit 802 predicts whether or not there is a free space in the read data buffer 105 for storing 3/4 or more of the read data for the subsequent read within the “preamble period-1” cycle (S307). For example, when the preamble period is 3 and the burst length of the DRAM is 8, the free space in the read data buffer 105 increases by 1 in 2 cycles. Therefore, at the determination timing, if the read data buffer 105 has 5 or more empty read data buffers for the subsequent read command, the read data buffer empty after 2 cycles becomes 6 or more. Therefore, in this case, in the “preamble period-1” cycle, a space for storing 3/4 or more of the read data for the subsequent read is created in the read data buffer. If the condition is satisfied, the command issuing unit 802 delays the received command issuance until there is a free space in the read data buffer 105 for storing 3/4 or more of the read data for the subsequent read (S308). If the condition is not satisfied, the command issue is not delayed (S302).

また、リードデータバスのデータレートが、DRAMのデータレートの1/4以上でない場合、コマンド発行を遅延させない(S302)。   If the data rate of the read data bus is not ¼ or higher than the data rate of the DRAM, command issue is not delayed (S302).

なお、上記のS304、S307における予測は、予測時のリードデータバスのデータレートが、予測後から後続のコマンドを発行するまで一定である仮定で行うものであるが、データレートの変動を考慮するなどしてもよい。   Note that the predictions in S304 and S307 are performed on the assumption that the data rate of the read data bus at the time of prediction is constant from the prediction until the subsequent command is issued. Etc.

次に、従来のメモリコントローラの動作と、本実施形態のメモリコントローラ100のリードコマンドが連続する場合の動作を、図5を用いて対比説明する。なお、図5は、簡単のため、DRAM110のバースト長が8、プリアンブル期間が3サイクル、リードデータバスのデータレートがDRAMのデータレートの1/2で一定である場合の動作波形を示している。   Next, the operation of the conventional memory controller and the operation when the read command of the memory controller 100 of the present embodiment continues will be described with reference to FIG. For simplicity, FIG. 5 shows operation waveforms when the burst length of the DRAM 110 is 8, the preamble period is 3 cycles, and the data rate of the read data bus is constant at 1/2 the data rate of the DRAM. .

まず、従来のメモリコントローラの動作を説明する。メモリコントローラは、タイミングT1でリードコマンドRD0を発行する(符号400)。タイミングT5にてリードコマンドRD1に対するリードデータバッファの空きが8になる。プリアンブル期間が1であれば、メモリコントローラは、タイミングT5でリードコマンドRD1を発行できる(符号401)。しかし、プリアンブル期間の3サイクルを確保する為に、メモリコントローラは、リードコマンドRD1の発行は、タイミングT8にする(符号402)。この結果、リードコマンドRD1のリードデータ転送が完了するのは、タイミングT18になる。   First, the operation of the conventional memory controller will be described. The memory controller issues a read command RD0 at timing T1 (reference numeral 400). At timing T5, the free space in the read data buffer for the read command RD1 becomes 8. If the preamble period is 1, the memory controller can issue a read command RD1 at timing T5 (reference numeral 401). However, in order to ensure three cycles of the preamble period, the memory controller issues the read command RD1 at timing T8 (reference numeral 402). As a result, the read data transfer of the read command RD1 is completed at timing T18.

次に、本実施形態の動作を説明する。メモリコントローラ100は、タイミングT1でリードコマンドRD0を発行出来るタイミングになると、次のリードコマンドRD1のためのリードデータバッファ105の空きを確認する(符号403)。タイミングT1のサイクルでは、リードデータバッファ105の空きは2以上あるので、この段階では、メモリコントローラ100は、リードコマンドを発行しない。タイミングT2で、リードコマンドRD1に対するリードバッファ105の空きが4になり、リードコマンドRD0を発行する(符号404)。タイミングT6にて、メモリコントローラ100は、リードコマンドRD1を発行する(符号405)。その結果、リードコマンドRD0、RD1に対する、リードデータ転送は連続し、転送完了はタイミングT16となる。   Next, the operation of this embodiment will be described. When it is time to issue the read command RD0 at timing T1, the memory controller 100 confirms that the read data buffer 105 is free for the next read command RD1 (reference numeral 403). In the cycle at timing T1, there are two or more vacant spaces in the read data buffer 105, and therefore the memory controller 100 does not issue a read command at this stage. At timing T2, the free space in the read buffer 105 for the read command RD1 becomes 4, and the read command RD0 is issued (reference numeral 404). At timing T6, the memory controller 100 issues a read command RD1 (reference numeral 405). As a result, the read data transfer for the read commands RD0 and RD1 is continuous, and the transfer completion is at timing T16.

以上の如く、コマンド発行部103は、リードコマンドが連続する場合、後続するコマンドの発行タイミングを、リードデータバッファの充足度(リードデータバッファの空き量)、データストローブのプリアンブルのサイクル数、及び、1つのコマンドによるバースト長、及び、バス、メモリのデータレートに基づき、判定する。そして、コマンド発行部103は、先行するコマンドの発行タイミングを遅らせ、2つのコマンドによるリードが連続するようにさせる。この結果、従来例と比較して、2つのコマンドによるリードデータ転送の完了を2サイクル早くすることが可能になる。   As described above, when the read command continues, the command issuing unit 103 determines the subsequent command issue timing, the read data buffer fullness (read data buffer free space), the number of data strobe preamble cycles, The determination is made based on the burst length of one command and the data rate of the bus and memory. Then, the command issuing unit 103 delays the issue timing of the preceding command so that the read by the two commands is continuous. As a result, compared to the conventional example, the read data transfer by two commands can be completed two cycles earlier.

次に、第1実施形態のメモリコントローラ100のコマンド発行回路103が、コマンドキュー102からライトコマンドを受信した際の処理を、図6のフローチャートに従って説明する。   Next, processing when the command issuing circuit 103 of the memory controller 100 of the first embodiment receives a write command from the command queue 102 will be described with reference to the flowchart of FIG.

コマンド発行回路103は、コマンドキュー102からライトコマンドを受信すると、タイマ106の計測結果から、受信したライトコマンドをDRAM110に発行してもDRAMのタイミング制約に違反しないか判定する(S501)。   When receiving a write command from the command queue 102, the command issuing circuit 103 determines from the measurement result of the timer 106 whether or not the received write command is issued to the DRAM 110 so as not to violate the DRAM timing constraint (S501).

ライトコマンドを発行してもDRAM110のタイミング制約に違反しない場合、コマンド発行回路103は、ライトデータバッファ104に、ライトコマンドに対応する書き込み対象のデータ(ライトデータ)があるかを判定する(S502)。ライトデータバッファ104にライトコマンドに対応するライトデータがある場合は、コマンド発行回路103は、コマンドキュー102の先頭に格納された、着目ライトコマンドに後続する次コマンドもライトコマンドかどうかを判定する(S503)。   If the write command is issued and the timing constraint of the DRAM 110 is not violated, the command issuing circuit 103 determines whether there is data to be written (write data) corresponding to the write command in the write data buffer 104 (S502). . When there is write data corresponding to the write command in the write data buffer 104, the command issuing circuit 103 determines whether the next command subsequent to the write command of interest stored at the head of the command queue 102 is also a write command ( S503).

次コマンドがライトコマンドではない場合、または、次のコマンドがコマンドキュー102に格納されていない場合は、コマンド発行回路103は、受信した着目ライトコマンドを発行する(S504)。一方、次コマンドもライトコマンドの場合は、コマンド発行回路103は、着目ライトコマンドの発行タイミングの制御処理を行う(S505)。そして、コマンド発行回路103は、この発行タイミングの制御処理の後、受信した着目ライトコマンドを発行する(S504)。   If the next command is not a write command, or if the next command is not stored in the command queue 102, the command issuing circuit 103 issues the received write command of interest (S504). On the other hand, if the next command is also a write command, the command issuing circuit 103 performs control processing for the issue timing of the write command of interest (S505). Then, the command issue circuit 103 issues the received write command of interest after the issue timing control processing (S504).

ここで、S505のライトコマンドの発行タイミング制御の処理の流れを図7のフローチャートに従って説明する。   Here, the flow of the write command issuance timing control in S505 will be described with reference to the flowchart of FIG.

コマンド発行回路103は、ライトデータバスのデータレートが、DRAM110のデータレートの同等以上か判定する(S601)。ライトデータバスのデータレートが、DRAM110のデータレートの同等以上である場合には、コマンド発行回路103は、コマンド発行タイミングを遅延させない(S602)。   The command issuing circuit 103 determines whether the data rate of the write data bus is equal to or higher than the data rate of the DRAM 110 (S601). When the data rate of the write data bus is equal to or higher than the data rate of the DRAM 110, the command issue circuit 103 does not delay the command issue timing (S602).

また、ライトデータバスのデータレートが、DRAMのデータレートの同等以上でない場合、コマンド発行回路103は、ライトデータバスのデータレートが、DRAMのデータレートの1/2以上か判定する(S603)。1/2以上であれば、コマンド発行回路103は“プリアンブル期間−1”サイクル内に、ライトデータバッファ104に後続のライトコマンドに対するライトデータの1/2以上が格納されるかを予測する(S604)。例えば、プリアンブルが3、DRAMのバースト長が8の場合、2サイクルでライトデータバッファ104にはデータが2つ格納される。そのため、判定のタイミングで、後続のライト転送のライトデータが2以上格納されていれば、2サイクル後のライトデータの格納数は4以上になる。従って、この場合、コマンド発行回路103は、“プリアンブル期間−1”サイクル内に、ライトデータバッファ104に、後続のライトコマンドに対するライトデータの1/2以上が格納されると判定する。   If the data rate of the write data bus is not equal to or higher than the data rate of the DRAM, the command issuing circuit 103 determines whether the data rate of the write data bus is ½ or higher of the data rate of the DRAM (S603). If it is ½ or more, the command issuing circuit 103 predicts whether or not ½ or more of the write data for the subsequent write command is stored in the write data buffer 104 within the “preamble period−1” cycle (S604). ). For example, when the preamble is 3 and the DRAM burst length is 8, two data are stored in the write data buffer 104 in two cycles. Therefore, if two or more pieces of write data for subsequent write transfers are stored at the determination timing, the number of write data stored after two cycles is four or more. Therefore, in this case, the command issuing circuit 103 determines that ½ or more of the write data for the subsequent write command is stored in the write data buffer 104 within the “preamble period−1” cycle.

従って、この条件が成立する場合、コマンド発行回路103は、ライトデータバッファ104に後続のライトコマンドに対するライトデータが1/2以上格納されるまで、コマンド発行タイミングを遅延させる(S605)。これにより、遅延させたライトコマンドと後続のライトコマンドに対するライトデータ転送はプリアンブル期間を挟まずに連続で行われる。   Therefore, when this condition is satisfied, the command issuing circuit 103 delays the command issuing timing until the write data for the subsequent write command is stored in the write data buffer 104 by ½ or more (S605). As a result, the write data transfer for the delayed write command and the subsequent write command is continuously performed without any preamble period.

また、上記の条件が成立しない場合は、コマンド発行回路103はコマンド発行は遅延させない(S602)。 遅延させずにライトコマンドを発行しても、後続のライトコマンドに対してライトデータ転送を開始する前までにプリアンブル期間が完了するため、プリアンブル期間によるデータ転送効率の低下は発生しないためである。   If the above condition is not satisfied, the command issuing circuit 103 does not delay the command issuing (S602). This is because even if the write command is issued without delay, the preamble period is completed before the write data transfer is started with respect to the subsequent write command, so that the data transfer efficiency is not lowered due to the preamble period.

また、ライトデータバスのデータレートが、DRAMのデータレートの11/2以上でなかった場合、コマンド発行回路103は、ライトデータバスのデータレートが、DRAM110のデータレートの1/4以上か判定する(S606)。1/4以上であれば、“プリアンブル期間−1”サイクル内に、ライトデータバッファ104に、後続のライトコマンドに対するライトデータの3/4以上が格納されるかを予測する(S607)。   When the data rate of the write data bus is not 11/2 or higher than the data rate of the DRAM, the command issuing circuit 103 determines whether the data rate of the write data bus is 1/4 or higher than the data rate of the DRAM 110. (S606). If it is 1/4 or more, it is predicted whether 3/4 or more of the write data for the subsequent write command will be stored in the write data buffer 104 within the “preamble period-1” cycle (S607).

例えば、プリアンブル期間が3、DRAMのバースト長が8の場合、2サイクルでライトデータバッファ104にはライトデータが1つ格納される。そのため、判定のタイミングで、ライトデータバッファ104に後続のライトコマンドに対するライトデータが5以上格納されていれば、2サイクル後のライトデータの格納数は6以上になる。従って、この場合、コマンド発行回路103は、“プリアンブル期間−1”サイクル内に、ライトデータバッファ104に後続のライトコマンドに対するライトデータの3/4以上が格納されると判定する。条件が成立する場合、コマンド発行回路103は、後続のライトコマンドに対するデータがライトデータバッファ104に3/4転送分格納されるまで、コマンド発行タイミングを遅延させる(S608)。また、この条件が成立しない場合、コマンド発行回路103はコマンド発行は遅延させない(S602)。
また、ライトデータバスのデータレートが、DRAMのデータレートの1/4以上でなければ、コマンド発行回路103は、コマンド発行タイミングを遅延させない(S602)。
For example, if the preamble period is 3 and the DRAM burst length is 8, one write data is stored in the write data buffer 104 in two cycles. Therefore, if five or more pieces of write data for the subsequent write command are stored in the write data buffer 104 at the determination timing, the number of write data stored after two cycles is six or more. Therefore, in this case, the command issuing circuit 103 determines that 3/4 or more of the write data for the subsequent write command is stored in the write data buffer 104 within the “preamble period−1” cycle. When the condition is satisfied, the command issuing circuit 103 delays the command issuing timing until the data for the subsequent write command is stored in the write data buffer 104 for 3/4 transfer (S608). If this condition is not satisfied, the command issuing circuit 103 does not delay command issuing (S602).
If the data rate of the write data bus is not ¼ or more of the data rate of the DRAM, the command issuing circuit 103 does not delay the command issuing timing (S602).

図7におけるS604、S607における予測は、予測時のライトデータバスのデータレートが予測後から後続のコマンドを発行するまで一定である仮定で行うものであるが、データレートの変動を考慮するなどしてもよい。   The predictions in S604 and S607 in FIG. 7 are performed on the assumption that the data rate of the write data bus at the time of prediction is constant from the prediction until the subsequent command is issued. May be.

次に、図8を参照して、従来のメモリコントローラの動作と、本実施形態のメモリコントローラのライトコマンドが連続する場合の動作を説明する。なお、図8は、DRAM110のバースト長が8、プリアンブル期間が3サイクル、ライトデータバスのデータレートがDRAM110のデータレートの1/4で一定であるものとしている。   Next, with reference to FIG. 8, the operation of the conventional memory controller and the operation in the case where the write command of the memory controller of this embodiment continues will be described. 8 assumes that the burst length of the DRAM 110 is 8, the preamble period is 3 cycles, and the data rate of the write data bus is constant at 1/4 of the data rate of the DRAM 110.

まず、従来のメモリコントローラの動作を説明する。タイミングT1にて、メモリコントローラは、ライトコマンドWR0を発行する(符号700)。そして、タイミングT5にて、ライトコマンドWR1に対するライトデータの格納数が8になる。プリアンブル期間が1であれば、メモリコントローラはタイミングT6にてライトコマンドWR1を発行出来る(符号701)。しかし、プリアンブル期間の3サイクルを確保する為に、ライトコマンドWR1の発行は、タイミングT8になる(符号702)。その結果、ライトデータ転送が完了するのは、タイミングT18になる。   First, the operation of the conventional memory controller will be described. At timing T1, the memory controller issues a write command WR0 (reference numeral 700). At timing T5, the number of write data stored for the write command WR1 becomes 8. If the preamble period is 1, the memory controller can issue a write command WR1 at timing T6 (reference numeral 701). However, in order to ensure three cycles of the preamble period, the issue of the write command WR1 is at timing T8 (reference numeral 702). As a result, the write data transfer is completed at timing T18.

次に、本実施形態におけるメモリコントローラ100の動作を説明する。タイミングT1でライトコマンドQR0を発行出来るタイミングになると、メモリコントローラ100は、次ライトコマンドWR1のためのライトデータの格納数を確認する(符号703)。タイミングT1のサイクルでは、ライトコマンドWR1に対するライトデータは5以上あるので、ライトコマンドを発行しない。タイミングT5で、メモリコントローラ100は、ライトコマンドWR1に対するライトデータが6になったことを受けて、ライトコマンドWR0を発行する(符号704)。そして、タイミングT6にて、メモリコントローラ100はライトコマンドWR1を発行する(符号705)。この結果、2つのライトコマンドによるライトデータ転送は連続し、転送完了は、タイミングT16となる。   Next, the operation of the memory controller 100 in this embodiment will be described. When the timing at which the write command QR0 can be issued at the timing T1, the memory controller 100 checks the number of write data stored for the next write command WR1 (reference numeral 703). In the cycle at the timing T1, there are five or more write data for the write command WR1, and therefore no write command is issued. At timing T5, the memory controller 100 issues the write command WR0 in response to the fact that the write data for the write command WR1 has become 6 (reference numeral 704). At timing T6, the memory controller 100 issues a write command WR1 (reference numeral 705). As a result, the write data transfer by the two write commands is continuous, and the transfer completion is at timing T16.

このように、コマンド発行部301はライトコマンドが連続する場合、後続するコマンドの発行タイミングを、ライトデータバッファの充足度(ライトデータバッファの格納量)、データストローブのプリアンブルのサイクル数、1つのコマンドによるバースト長、及び、バス、メモリのデータレートに基づき、判定する。そして、コマンド発行部103は、先行するコマンドの発行タイミングを遅らせ、2つのコマンドによるライトが連続するようにさせる。この結果、従来例と比較して、2つのコマンドによるライトデータ転送の完了が“2”サイクル分早くなる。   As described above, when the write command continues, the command issuing unit 301 determines the issue timing of the subsequent command, the write data buffer fullness (write data buffer storage amount), the number of data strobe preamble cycles, and one command. Judgment is made based on the burst length and the data rate of the bus and memory. Then, the command issuing unit 103 delays the issuing timing of the preceding command so that the writing by the two commands is continuous. As a result, compared with the conventional example, the completion of the write data transfer by two commands is accelerated by “2” cycles.

本実施形態では、リードコマンドまたはライトコマンドが連続する場合に、先行のコマンド発行を遅らせることで、プリアンブル期間を確保するために、後続のコマンド発行が遅れることを防止するメモリコントローラを説明してきた。   In the present embodiment, the memory controller has been described in which the subsequent command issue is prevented from being delayed in order to secure the preamble period by delaying the previous command issue when the read command or the write command continues.

先行のコマンド発行を遅らせるため、先行のコマンドに対応するデータ転送は従来例よりも遅くなる。このため、例えば、先行のコマンドが優先度の高い転送のコマンドの場合は、本実施形態を適応しないことで、優先度の高い転送が遅れることを防止することも可能である。また、転送の優先度は、例えば、転送要求の属性情報で判定することも可能である。   Since the preceding command issuance is delayed, the data transfer corresponding to the preceding command is slower than the conventional example. For this reason, for example, when the preceding command is a transfer command with a high priority, it is possible to prevent a transfer with a high priority from being delayed by not applying this embodiment. In addition, the transfer priority can be determined by, for example, attribute information of the transfer request.

100…メモリコントローラ、101…コマンド生成回路、102…コマンドキュー、103…コマンド発行回路、104…ライトデータバッファ、105…リードデータバッファ、106…タイマ、107…データレート測定回路、108…同期信号生成回路、109…入出力切替回路、110…DRAM DESCRIPTION OF SYMBOLS 100 ... Memory controller, 101 ... Command generation circuit, 102 ... Command queue, 103 ... Command issue circuit, 104 ... Write data buffer, 105 ... Read data buffer, 106 ... Timer, 107 ... Data rate measurement circuit, 108 ... Synchronization signal generation Circuit 109 ... Input / output switching circuit 110 ... DRAM

Claims (6)

メモリと間で書き込み/読み出しを行うメモリコントローラであって、
外部のバスマスタから前記メモリへの書き込み又は前記メモリからの読み出しのためのアクセス要求があった場合、当該アクセス要求から前記メモリに対するコマンドを生成し、コマンドキューに格納するコマンド生成手段と、
該コマンドキューからコマンドを入力し、前記メモリに向けてコマンドを発行するコマンド発行手段とを有し、
前記コマンド発行手段は、
前記コマンドキューから第1のコマンドとして入力した場合、前記コマンドキューに、当該第1のコマンドに後続し、当該第1のコマンドと同じ種類の第2のコマンドが格納されているか否かを判別する判別する判別手段と、
該判別手段で前記第1のコマンドに後続し、当該第1のコマンドと同じ種類の第2のコマンドが前記コマンドキューに格納されていると判別された場合、前記第1のコマンドの発行タイミングを、予め定められた条件に応じて遅延させる制御手段とを有する
ことを特徴とするメモリコントローラ。
A memory controller for writing / reading to / from a memory,
When there is an access request for writing to or reading from the memory from an external bus master, command generation means for generating a command for the memory from the access request and storing it in a command queue;
Command issuing means for inputting a command from the command queue and issuing a command toward the memory;
The command issuing means includes
When the first command is input from the command queue, it is determined whether or not a second command of the same type as the first command is stored in the command queue subsequent to the first command. Discriminating means for discriminating;
If it is determined by the determining means that the second command of the same type as the first command is stored in the command queue following the first command, the issuing timing of the first command is set. And a control means for delaying according to a predetermined condition.
前記メモリは、DDR4 SDRAMであることを特徴とする請求項1に記載のメモリコントローラ。   The memory controller according to claim 1, wherein the memory is a DDR4 SDRAM. 前記第1のコマンド、前記第2のコマンドが共に前記メモリからの読み出しコマンドである場合、前記制御手段は、
前記メモリより出力されてきたデータを外部バスに出力するためのリードデータバッファの空き量と、データストローブのプリアンブルのサイクル数、及び、1つのコマンドによるバースト長に基づき、前記第2のコマンドの発行タイミングを判定する第1の判定手段と、
該第1の判定手段の判定の結果に基づき、前記第2のコマンドの発行により前記メモリからデータの出力が開始されるサイクルの1つ前のサイクルで、前記第1のコマンドによる前記メモリからデータの読み出しが完了するように、前記第1のコマンドの発行タイミングを判定する第2の判定手段と
を有することを特徴とする請求項2に記載のメモリコントローラ。
When both the first command and the second command are read commands from the memory, the control means
Issuing the second command based on the free space of the read data buffer for outputting the data output from the memory to the external bus, the number of data strobe preamble cycles, and the burst length of one command First determination means for determining timing;
Based on the result of the determination by the first determination means, data is output from the memory by the first command in the cycle immediately before the cycle in which data output from the memory is started by issuing the second command. 3. The memory controller according to claim 2, further comprising: a second determination unit configured to determine the issuance timing of the first command so that reading of the first command is completed.
前記第1のコマンド、前記第2のコマンドが共に前記メモリへの書き込みコマンドである場合、前記制御手段は、
前記外部バスから前記メモリへ書き込むデータを格納するライトデータバッファの格納量と、データストローブのプリアンブルのサイクル数、及び、1つのコマンドによるバースト長に基づき、前記第2のコマンドの発行タイミングを判定する第1の判定手段と、
該第1の判定手段の判定の結果に基づき、前記第2のコマンドの発行により、前記ライトデータバッファに格納されたデータの前記メモリへの出力が開始されるサイクルの1つ前のサイクルで、前記第1のコマンドによる前記メモリへのデータの読み出しが完了するように、前記第1のコマンドの発行タイミングを判定する第2の判定手段と
を有することを特徴とする請求項2に記載のメモリコントローラ。
When both the first command and the second command are write commands to the memory, the control means
The issuance timing of the second command is determined based on the storage amount of the write data buffer for storing data to be written from the external bus to the memory, the number of data strobe preamble cycles, and the burst length of one command. First determination means;
Based on the determination result of the first determination means, in the cycle immediately before the cycle in which the output of the data stored in the write data buffer to the memory is started by issuing the second command, 3. The memory according to claim 2, further comprising: a second determination unit configured to determine an issue timing of the first command so that reading of data to the memory by the first command is completed. controller.
前記第2の判定手段は、前記外部バスとの間の転送レートと、前記メモリとの間の転送レートを更に参照して、前記第1のコマンドの発行タイミングを判定することを特徴とする請求項3又は4に記載のメモリコントローラ。   The second determination means determines the issuance timing of the first command by further referring to a transfer rate with the external bus and a transfer rate with the memory. Item 5. The memory controller according to Item 3 or 4. メモリと間で書き込み/読み出しを行うメモリコントローラの制御方法であって、
コマンド生成手段が、外部のバスマスタから前記メモリへの書き込み又は前記メモリからの読み出しのためのアクセス要求があった場合、当該アクセス要求から前記メモリに対するコマンドを生成し、コマンドキューに格納するコマンド生成工程と、
コマンド発行手段が、該コマンドキューからコマンドを入力し、前記メモリに向けてコマンドを発行するコマンド発行工程とを有し、
前記コマンド発行工程は、
前記コマンドキューから第1のコマンドとして入力した場合、前記コマンドキューに、当該第1のコマンドに後続し、当該第1のコマンドと同じ種類の第2のコマンドが格納されているか否かを判別する判別する判別工程と、
該判別工程で前記第1のコマンドに後続し、当該第1のコマンドと同じ種類の第2のコマンドが前記コマンドキューに格納されていると判別された場合、前記第1のコマンドの発行タイミングを、予め定められた条件に応じて遅延させる制御工程とを有する
ことを特徴とするメモリコントローラの制御方法。
A method for controlling a memory controller for writing / reading to / from a memory,
A command generation step of generating a command for the memory from the access request and storing the command in the command queue when the command generation means has an access request for writing to or reading from the memory from an external bus master When,
A command issuing means for inputting a command from the command queue and issuing a command toward the memory;
The command issuing step includes
When the first command is input from the command queue, it is determined whether or not a second command of the same type as the first command is stored in the command queue subsequent to the first command. A discriminating step for discriminating;
If it is determined that the second command of the same type as the first command is stored in the command queue after the first command in the determination step, the issue timing of the first command is determined. And a control step of delaying according to a predetermined condition. A method for controlling a memory controller.
JP2016054463A 2016-03-17 2016-03-17 Memory controller and method for controlling the same Pending JP2017167972A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2016054463A JP2017167972A (en) 2016-03-17 2016-03-17 Memory controller and method for controlling the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016054463A JP2017167972A (en) 2016-03-17 2016-03-17 Memory controller and method for controlling the same

Publications (1)

Publication Number Publication Date
JP2017167972A true JP2017167972A (en) 2017-09-21

Family

ID=59913379

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016054463A Pending JP2017167972A (en) 2016-03-17 2016-03-17 Memory controller and method for controlling the same

Country Status (1)

Country Link
JP (1) JP2017167972A (en)

Similar Documents

Publication Publication Date Title
US7496777B2 (en) Power throttling in a memory system
US8151065B2 (en) Memory control device and semiconductor processing apparatus
US9531363B2 (en) Methods and apparatuses including command latency control circuit
JP6476325B1 (en) Pseudo SRAM and control method thereof
US8799565B2 (en) Memory controlling device
JP5414350B2 (en) Memory control circuit and control method thereof
JP4615461B2 (en) Memory controller
JP2009237678A (en) Memory controller device, control method for memory controller device and data reception device
JP2011081553A (en) Information processing system and control method thereof
US20170024146A1 (en) Memory controller, information processing device, and control method
US8169851B2 (en) Memory device with pseudo double clock signals and the method using the same
US7791963B2 (en) Semiconductor memory device and operation method thereof
US8947956B2 (en) Delay circuit and latency control circuit of memory, and signal delay method thereof
US8482995B2 (en) Circuit for transmitting and receiving data and control method thereof
JP2015103262A (en) Semiconductor device
JP2017167972A (en) Memory controller and method for controlling the same
US6504767B1 (en) Double data rate memory device having output data path with different number of latches
US20120105914A1 (en) Memory control circuit, control method therefor, and image processing apparatus
US7941594B2 (en) SDRAM sharing using a control surrogate
JP2013089030A (en) Information processing system, control system, and semiconductor device
US20230197130A1 (en) Apparatus and methods employing asynchronous fifo buffer with read prediction
US20150380070A1 (en) Latch circuit and input/output device including the same
KR101907071B1 (en) Clock delivery circuit and semiconductor device including the same
US9129705B2 (en) Semiconductor devices
US20140002164A1 (en) Delay circuit and delay method using the same