[go: up one dir, main page]

JP5349775B2 - Memory controller and control method thereof - Google Patents

Memory controller and control method thereof Download PDF

Info

Publication number
JP5349775B2
JP5349775B2 JP2007233377A JP2007233377A JP5349775B2 JP 5349775 B2 JP5349775 B2 JP 5349775B2 JP 2007233377 A JP2007233377 A JP 2007233377A JP 2007233377 A JP2007233377 A JP 2007233377A JP 5349775 B2 JP5349775 B2 JP 5349775B2
Authority
JP
Japan
Prior art keywords
memory
request
access request
wiring delay
register
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2007233377A
Other languages
Japanese (ja)
Other versions
JP2009064360A5 (en
JP2009064360A (en
Inventor
浩市 上田
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 JP2007233377A priority Critical patent/JP5349775B2/en
Publication of JP2009064360A publication Critical patent/JP2009064360A/en
Publication of JP2009064360A5 publication Critical patent/JP2009064360A5/ja
Application granted granted Critical
Publication of JP5349775B2 publication Critical patent/JP5349775B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Memory System (AREA)

Description

本発明は、アクセスサイクルの異なる複数のメモリデバイスにデータの読み書きを行うメモリコントローラ及びその制御方法に関する。   The present invention relates to a memory controller that reads / writes data from / to a plurality of memory devices having different access cycles, and a control method therefor.

図1は、従来のメモリシステムにおける構成の一例を示す図である。図1に示す100はメモリコントローラを含むASIC(Application Specific Integrated Circuit)である。101はASIC100に含まれるメモリコントローラである。102はASIC100内でメモリコントローラ101と不図示の機能モジュールとを接続するチップ内部バスである。103はメモリコントローラ101と接続されるデバイスの条件を保存するレジスタである。   FIG. 1 is a diagram showing an example of a configuration in a conventional memory system. 1 is an ASIC (Application Specific Integrated Circuit) including a memory controller. Reference numeral 101 denotes a memory controller included in the ASIC 100. Reference numeral 102 denotes a chip internal bus that connects the memory controller 101 and a functional module (not shown) in the ASIC 100. Reference numeral 103 denotes a register that stores conditions of devices connected to the memory controller 101.

104はメモリコントローラ101に接続されるメモリデバイスへアクセスコマンドを発行するコマンド発行回路である。105はメモリコントローラ101に接続されるメモリデバイスとの間でデータの送受信を行うデータ発行/受信回路である。106〜109はメモリコントローラ101に接続されるメモリデバイスである。   A command issuing circuit 104 issues an access command to a memory device connected to the memory controller 101. Reference numeral 105 denotes a data issue / reception circuit that transmits / receives data to / from a memory device connected to the memory controller 101. Reference numerals 106 to 109 denote memory devices connected to the memory controller 101.

次に、図1を用いて、従来のASIC100内部のメモリコントローラ101の動作を説明する。まず、ASIC100内の不図示の機能モジュールからメモリデバイス106〜109へのアクセス要求はチップ内部バス102を経由してメモリコントローラ101に伝えられる。一方、メモリコントローラ101は、受け取ったアクセス要求を解析し、該当する何れかのメモリデバイス106〜109に対して、要求されたアクセスを満たすためのコマンドをコマンド発行回路104にて生成する。そして、そのコマンドをチップ外部への接続信号(RAS、CAS、ADDR、CS0〜CS3)を用いて該当するメモリデバイスに発行し、データの送受信をデータ発行/受信回路105にて行う。   Next, the operation of the memory controller 101 in the conventional ASIC 100 will be described with reference to FIG. First, an access request from a functional module (not shown) in the ASIC 100 to the memory devices 106 to 109 is transmitted to the memory controller 101 via the chip internal bus 102. On the other hand, the memory controller 101 analyzes the received access request, and the command issuing circuit 104 generates a command for satisfying the requested access to any of the corresponding memory devices 106 to 109. Then, the command is issued to the corresponding memory device using a connection signal (RAS, CAS, ADDR, CS0 to CS3) to the outside of the chip, and data transmission / reception is performed by the data issuing / receiving circuit 105.

このときのチップ外部における信号の様子を図2に示す。図2では、RAS、CAS、ADDRは1つのコマンドに纏められている。また、メモリコントローラ101は、チップ内部バス102経由でメモリデバイス106〜109への読み出し要求を順番に受け取り、メモリデバイス106〜109に順に読み出しコマンドを発行する。   The state of signals outside the chip at this time is shown in FIG. In FIG. 2, RAS, CAS, and ADDR are combined into one command. Further, the memory controller 101 sequentially receives read requests to the memory devices 106 to 109 via the chip internal bus 102 and issues read commands to the memory devices 106 to 109 in order.

通常、メモリデバイス106〜109はバンクと呼ばれる複数の領域に分割され、各々の領域内の一部分をアクセス可能とし、それ以外の部分に対しては所定の手続きを行った後にアクセスが可能となる。この所定の手続きには、多くのクロックサイクルを必要とするが、各デバイスのバンク毎にアクセスできる部分は独立に設定できる。そこで、メモリコントローラ101内では要求されたコマンドを分析し、アクセスに際して所定の手続きが必要か否かを判断し、アクセスの順番を変更するといった操作が行われる場合が多い。これらの操作が行われている場合でも、図2に示すように、読み出しコマンドが連続し、該当するデバイスが異なれば、読み出しデータ(DQ及びDQS)が衝突しないように読み出しコマンドの発行タイミングを制御する必要がある。
特開2003−271445号公報
Normally, the memory devices 106 to 109 are divided into a plurality of areas called banks, and a part of each area can be accessed, and the other parts can be accessed after a predetermined procedure is performed. This predetermined procedure requires many clock cycles, but the accessible portion for each bank of each device can be set independently. Therefore, in many cases, the memory controller 101 analyzes the requested command, determines whether or not a predetermined procedure is necessary for access, and changes the access order. Even when these operations are performed, as shown in Fig. 2, if read commands are continuous and the corresponding devices are different, the read command issue timing is controlled so that read data (DQ and DQS) do not collide. There is a need to.
JP 2003-271445 A

しかしながら、昨今のメモリデバイスにおける動作周波数の向上に伴い、従来のメモリコントローラでは無視されていた基板上の配線遅延が無視できない状況となりつつある。この状況を図3及び図4を用いて説明する。   However, with the recent improvement in the operating frequency of memory devices, the wiring delay on the board, which has been ignored by conventional memory controllers, is becoming a situation that cannot be ignored. This situation will be described with reference to FIGS.

図3は、メモリコントローラとメモリデバイスとの関係を基板上のレイアウトイメージ的に書き直した図である。尚、図3に示す番号は、図1と同じものを用いている。図3に示すように、複数のメモリデバイス106〜109を接続した場合、各メモリデバイスのメモリコントローラ101からの距離はそれぞれ異なり、メモリデバイス106から順にメモリデバイス109まで徐々に遠くに置かれることとなる。   FIG. 3 is a diagram in which the relationship between the memory controller and the memory device is rewritten in a layout image on the substrate. The numbers shown in FIG. 3 are the same as those in FIG. As shown in FIG. 3, when a plurality of memory devices 106 to 109 are connected, the distances from the memory controller 101 of each memory device are different from each other, and the memory devices 109 are arranged gradually away from the memory device 106 in order. Become.

このような配置において、メモリコントローラ101が各メモリデバイスに読み出しを行った場合、各メモリデバイスとの距離の違いにより、読み出しデータの受け取りタイミングがメモリデバイスによって異なってくる。特に、クロック周期が短くなった場合には、クロックサイクルを超えたタイミングで読み出しデータがメモリコントローラ101に戻ってくる場合が考えられる。   In such an arrangement, when the memory controller 101 performs reading to each memory device, read data reception timing differs depending on the memory device due to a difference in distance from each memory device. In particular, when the clock cycle is shortened, the read data may be returned to the memory controller 101 at a timing exceeding the clock cycle.

図4は、メモリデバイスがメモリコントローラから遠くなるに従って読み出しデータが1サイクルずつ遅く取り込まれるレイアウトになった場合のメモリデバイス間の待ちサイクル数を示す図である。ここで、メモリデバイスが異なる場合には最大待ちサイクル数分の待ちサイクルを与えなければデータの衝突が起こるため、メモリコントローラ101のデータバス上の動作タイミングは図5に示すように効率の悪い状況となる。   FIG. 4 is a diagram showing the number of wait cycles between memory devices when the layout is such that read data is fetched later by one cycle as the memory device becomes farther from the memory controller. Here, when the memory devices are different, data collision occurs unless the waiting cycles corresponding to the maximum number of waiting cycles are given, so that the operation timing on the data bus of the memory controller 101 is inefficient as shown in FIG. It becomes.

本発明は、メモリデータバス上の効率を改善することを目的とする。   The present invention aims to improve the efficiency on the memory data bus.

本発明は、アクセスサイクルの異なる複数のメモリデバイスにデータの読み書きを行うメモリコントローラにおいて、前記複数のメモリデバイスに対するメモリアクセス要求を保持する保持手段と、前記複数のメモリデバイス毎のレイテンシを示すレイテンシ情報を格納する第1レジスタと、前記複数のメモリデバイス毎の配線遅延を示す配線遅延情報を格納する第2レジスタと、前記保持手段に保持されたメモリアクセス要求をメモリデバイスに発行する際に、前記第1レジスタに格納しているレイテンシ情報と前記第2レジスタに格納している配線遅延情報とに基づいて、前記メモリアクセス要求を発行する順序を変更するように制御する制御手段とを有し、前記制御手段は、前記保持手段に保持した先頭のメモリアクセス要求に対する配線遅延情報と、前記保持手段に保持した2番目のメモリアクセス要求に対する配線遅延情報とにより、前記先頭のメモリアクセス要求が前記2番目のメモリアクセス要求よりもアクセス待ち時間が多い場合、前記2番目のメモリアクセス要求を発行するように順番を変更することを特徴とする。
The present invention provides a memory controller that reads / writes data from / to a plurality of memory devices having different access cycles, a holding unit that holds a memory access request to the plurality of memory devices, and latency information indicating latency for each of the plurality of memory devices A first register for storing wiring, a second register for storing wiring delay information indicating a wiring delay for each of the plurality of memory devices, and when issuing a memory access request held in the holding means to the memory device, based on the wiring delay information stored in the second register and latency information stored in the first register, it has a control means for controlling to change the order in which issues the memory access request, The control means responds to the top memory access request held in the holding means. When the first memory access request has a longer access waiting time than the second memory access request, the second delay is caused by the line delay information and the wiring delay information for the second memory access request held in the holding means. The memory access request is issued and the order is changed .

本発明によれば、複数のメモリデバイスとの間の配線遅延を示す情報と複数のメモリデバイスの各々のレイテンシ情報とに基づき、各メモリデバイスに対するメモリアクセス要求を発行する順序を変更するように制御することで、メモリデータバス上の効率を改善することが可能となる。
According to the present invention, control is performed so as to change the order of issuing memory access requests to each memory device based on the information indicating the wiring delay between the plurality of memory devices and the latency information of each of the plurality of memory devices. As a result, the efficiency on the memory data bus can be improved.

以下、図面を参照しながら発明を実施するための最良の形態について詳細に説明する。   The best mode for carrying out the invention will be described below in detail with reference to the drawings.

[第1の実施形態]
メモリコントローラがメモリデバイスへコマンドを発行する際に、デバイスレイテンシ情報と基板上の配線遅延情報に基づき、メモリデバイスへコマンドを発行する順序を制御する処理を、図6〜図9を用いて説明する。
[First Embodiment]
Processing for controlling the order in which commands are issued to the memory device based on the device latency information and the wiring delay information on the board when the memory controller issues a command to the memory device will be described with reference to FIGS. .

まず、第1の実施形態におけるメモリコントローラの構成及び動作を、図6及び図7を用いて説明する。   First, the configuration and operation of the memory controller in the first embodiment will be described with reference to FIGS.

図6は、第1の実施形態におけるメモリシステムの構成の一例を示す図である。図6に示す600はメモリコントローラを含むASICである。601は第1の実施形態におけるメモリコントローラである。602はASIC600内でメモリコントローラ601と不図示の機能モジュールとを接続するチップ内部バスである。不図示の機能モジュールとメモリコントローラの間のトランザクションはチップ内部バスを介して送受信される。   FIG. 6 is a diagram illustrating an example of the configuration of the memory system according to the first embodiment. Reference numeral 600 shown in FIG. 6 denotes an ASIC including a memory controller. Reference numeral 601 denotes a memory controller in the first embodiment. Reference numeral 602 denotes a chip internal bus that connects the memory controller 601 and a functional module (not shown) in the ASIC 600. Transactions between a functional module (not shown) and the memory controller are transmitted / received via a chip internal bus.

603はメモリコントローラ601と接続されるデバイスのレイテンシ条件を保持するレジスタである。604はメモリコントローラ601と接続されるデバイスの配線遅延情報を保持するレジスタである。   Reference numeral 603 denotes a register that holds a latency condition of a device connected to the memory controller 601. A register 604 holds wiring delay information of a device connected to the memory controller 601.

605はメモリコントローラ601に接続されるメモリデバイスへアクセスコマンドを発行するコマンド発行回路である。606はメモリコントローラ601に接続されるメモリデバイスとの間でデータの送受信を行うデータ発行/受信回路である。607〜610はメモリコントローラ601に接続されるメモリデバイスである。これ以降、メモリデバイスを単に「デバイス」と称す。   A command issue circuit 605 issues an access command to a memory device connected to the memory controller 601. Reference numeral 606 denotes a data issuing / receiving circuit that transmits and receives data to and from a memory device connected to the memory controller 601. Reference numerals 607 to 610 denote memory devices connected to the memory controller 601. Hereinafter, the memory device is simply referred to as “device”.

図7は、図6に示すコマンド発行回路605の構成の一例を示す図である。図7に示す701はバッファであり、チップ内部バス602から受け取ったメモリアクセスの要求を一時的に溜め込む。702は判断回路であり、バッファ701に溜められた複数の要求をデバイスに発行する際に、レイテンシ情報及び配線遅延情報に基づき、効率の良い順序に変更するように制御する。   FIG. 7 is a diagram showing an example of the configuration of the command issuing circuit 605 shown in FIG. A buffer 701 shown in FIG. 7 temporarily stores a memory access request received from the chip internal bus 602. Reference numeral 702 denotes a determination circuit, which controls to change to an efficient order based on latency information and wiring delay information when a plurality of requests stored in the buffer 701 are issued to the device.

まず、不図示の機能モジュールからチップ内部バス602を介してメモリアクセス要求がメモリコントローラ601へ伝達されると、その要求はコマンド発行回路605に伝えられる。これにより、コマンド発行回路605の内部では図7に示すように、伝えられたメモリアクセス要求は一旦バッファ701に蓄えられる。そして、判断回路702が、バッファ701が空でない場合に、バッファ701からその要求を取り出し、デバイスにコマンドとして発行し、かつ図6に示すデータ発行/受信回路606へ発行コマンドの情報を伝達する。   First, when a memory access request is transmitted from a function module (not shown) to the memory controller 601 via the chip internal bus 602, the request is transmitted to the command issuing circuit 605. As a result, the transmitted memory access request is temporarily stored in the buffer 701 in the command issuing circuit 605 as shown in FIG. Then, when the buffer 701 is not empty, the determination circuit 702 extracts the request from the buffer 701, issues it as a command to the device, and transmits the information of the issue command to the data issue / reception circuit 606 shown in FIG.

一方、データ発行/受信回路606は判断回路702から受け取った発行コマンド情報に基づき、デバイスへのデータの発行、メモリデバイスから受け取るデータのタイミング、チップ内部の受け取り機能モジュールの選択信号の生成を行う。   On the other hand, the data issue / reception circuit 606 generates data to the device, the timing of data received from the memory device, and the selection signal for the reception function module in the chip based on the issue command information received from the determination circuit 702.

ここで、判断回路702が要求0を取り出した場合には、バッファ701は全ての要求を1つシフトする。つまり、現時点(シフト前)の要求1は判断回路702から要求0が取り出された場合には、新たに要求0の位置へと移動し、現時点での要求2は新たに要求1の位置へ移動する。また、判断回路702が要求1を取り出した場合には、要求0は変更無く、現時点での要求2は新たに要求1の位置へ移動する。   Here, when the determination circuit 702 extracts the request 0, the buffer 701 shifts all the requests by one. That is, request 1 at the present time (before the shift) is moved to the position of request 0 when request 0 is extracted from determination circuit 702, and request 2 at the current time is newly moved to the position of request 1. To do. Further, when the determination circuit 702 extracts the request 1, the request 0 is not changed, and the current request 2 is newly moved to the position of the request 1.

図8は、判断回路702で実行される判断処理を示すフローチャートである。図9は、バッファ701から取り出す要求を決定するときのタイミングを示す図である。尚、ここでは説明を簡単にするため、全ての要求は読み出し要求であるとし、各要求対象の領域は全てアクセス可能な状態になっているものとする。   FIG. 8 is a flowchart showing the determination process executed by the determination circuit 702. FIG. 9 is a diagram illustrating timing when a request to be extracted from the buffer 701 is determined. Here, for the sake of simplicity of explanation, it is assumed that all requests are read requests, and all the areas to be requested are accessible.

また、要求は、要求0(デバイス607)→要求1(デバイス610)→要求2(デバイス608)→要求3(デバイス609)→要求4(デバイス610)の順番にバッファ701に格納されているものとする。そして、デバイス607への要求より先に発行したコマンドからは十分に間隔が取れているものとする。   Requests are stored in the buffer 701 in the order of request 0 (device 607) → request 1 (device 610) → request 2 (device 608) → request 3 (device 609) → request 4 (device 610). And It is assumed that the command issued before the request to the device 607 is sufficiently spaced.

まず、ステップS801で、判断回路702は、バッファ701内の要求が1つだけか否かを判定し、1つだけであればステップS805で、その要求のコマンド発行を行う。しかし、ステップS801で、前提のように、バッファ701内の要求が1つだけでなければステップS802で、先に発行したコマンドからの間隔が十分か否かを判断する。   First, in step S801, the determination circuit 702 determines whether there is only one request in the buffer 701, and if there is only one, issues a command for that request in step S805. However, in step S801, if there is not only one request in the buffer 701 as assumed, it is determined in step S802 whether the interval from the previously issued command is sufficient.

ここでは、上述の前提からコマンド間隔が十分であるので、図9に示すt0でバッファ701内の先頭のコマンド発行(デバイス607への読み出し)を行う。また、バッファ701では、上述したシフトが全ての要求に対して行われる。このシフトにより、要求は、要求0(デバイス610)、要求1(デバイス608)、要求2(デバイス609)、要求3(デバイス610)の順番となる。   Here, since the command interval is sufficient from the above-mentioned assumption, the first command in the buffer 701 is issued (reading to the device 607) at t0 shown in FIG. In the buffer 701, the above-described shift is performed for all requests. With this shift, the requests are in the order of request 0 (device 610), request 1 (device 608), request 2 (device 609), and request 3 (device 610).

次に、バッファ701の内部が空でないことから、判断回路702は、次の要求の判断を開始する。そして、ステップS803で、判断回路702は、バッファ701の要求0(デバイス610)と要求1(デバイス608)のアクセス待ち時間を判定する。ここで、要求アクセス待ち時間は、レイテンシ情報を保持するレジスタ603と、配線遅延情報を保持するレジスタ604から得られるそれぞれのデバイス毎の読み出し要求発行後に、次のコマンド発行まで待たなければならない時間を示すものである。   Next, since the inside of the buffer 701 is not empty, the determination circuit 702 starts determining the next request. In step S803, the determination circuit 702 determines the access waiting time of the request 0 (device 610) and the request 1 (device 608) in the buffer 701. Here, the request access waiting time is the time that must be waited until the next command issuance after issuing the read request for each device obtained from the register 603 holding the latency information and the register 604 holding the wiring delay information. It is shown.

いま、デバイスのレイテンシが全て同一であるとすると、要求アクセス待ち時間の差は配線遅延情報に依存する。このように、メモリコントローラ601は、アクセスサイクルの異なる複数のメモリデバイスにデータの読み書きを行う。しかし、デバイス間の必要待ち時間が図4に示したテーブルで与えられるとすると、要求0のデバイス610へのアクセスには3サイクルの待ち時間を必要とする。一方、要求1のデバイス608へのアクセスには待ち時間が1サイクルしか必要とされない。従って、先頭の要求アクセス待ち時間は2番目のアクセス待ち時間より多いため、判断回路702はステップS803で、Noと判定し、図9に示すt3でバッファ701内の2番目(要求1)のコマンド発行を行う。   Now, assuming that the latencies of the devices are all the same, the difference in request access waiting time depends on the wiring delay information. As described above, the memory controller 601 reads / writes data from / to a plurality of memory devices having different access cycles. However, if the required waiting time between the devices is given by the table shown in FIG. 4, the access to the device 610 of the request 0 requires a waiting time of 3 cycles. On the other hand, only one cycle of waiting time is required for accessing the device 608 of the request 1. Accordingly, since the first request access waiting time is longer than the second access waiting time, the determination circuit 702 determines No in step S803, and the second (request 1) command in the buffer 701 at t3 shown in FIG. Issue.

また、バッファ701では、上述したシフトが全ての要求に対して行われる。その結果、要求は、要求0(デバイス610)はそのままで、要求2(デバイス609)が新たに要求1の位置に移動され、要求3(デバイス610)が新たに要求2の位置に移動される。   In the buffer 701, the above-described shift is performed for all requests. As a result, request 0 (device 610) remains unchanged, request 2 (device 609) is newly moved to the position of request 1, and request 3 (device 610) is newly moved to the position of request 2. .

次に、バッファ701の内部が空でないことから、判断回路702は、次の要求の判断を開始する。そして、ステップS803で、判断回路702は、バッファ701の要求0(デバイス610)と要求1(デバイス609)のアクセス待ち時間を判定する。上述の結果と同様に、判断回路702は、Noと判定し、図9に示すt6でバッファ701内の2番目(要求1)のコマンド発行を行う。   Next, since the inside of the buffer 701 is not empty, the determination circuit 702 starts determining the next request. In step S803, the determination circuit 702 determines the access waiting time of the request 0 (device 610) and the request 1 (device 609) in the buffer 701. Similar to the above result, the determination circuit 702 determines No, and issues the second (request 1) command in the buffer 701 at t6 shown in FIG.

また、バッファ701では、上述したシフトが全ての要求に対して行われる。その結果、要求は、要求0(デバイス610)はそのままで、要求2(デバイス610)が新たに要求1の位置に移動される。   In the buffer 701, the above-described shift is performed for all requests. As a result, the request 2 (device 610) is newly moved to the position of request 1 while the request 0 (device 610) remains unchanged.

次に、バッファ701の内部が空でないことから、判断回路702は、次の要求の判断を開始する。そして、ステップS803で、判断回路702は、バッファ701の要求0(デバイス610)と要求1(デバイス610)のアクセス待ち時間を判定する。ここで、アクセス対象が同一のデバイスであるため、判断回路702は、Yesと判定し、図9に示すt9でバッファ701内の先頭の要求を実行する。   Next, since the inside of the buffer 701 is not empty, the determination circuit 702 starts determining the next request. In step S803, the determination circuit 702 determines the access waiting time of the request 0 (device 610) and the request 1 (device 610) in the buffer 701. Here, since the devices to be accessed are the same device, the determination circuit 702 determines Yes and executes the first request in the buffer 701 at t9 shown in FIG.

また、バッファ701では、上述したシフトが全ての要求に対して行われ、その結果、要求は、要求1(デバイス610)が新たに要求0の位置に移動される。   In the buffer 701, the above-described shift is performed for all requests, and as a result, the request 1 (device 610) is newly moved to the position of the request 0.

次に、バッファ701の内部が空でないことから、判断回路702は、次の要求の判断を開始する。この場合、バッファ701の内部の要求は要求0にあるデバイス610への要求のみであるので、判断回路702は、ステップS801でYesと判断し、ステップS805で、図9に示すt11でバッファ701の先頭の要求を実行する。この際、直前のコマンド発行対象デバイスと今回のコマンド発行対象デバイスが同一であることから、メモリデータバス上の空きサイクル無しとなるようにコマンドが発行されることは従来と同様である。   Next, since the inside of the buffer 701 is not empty, the determination circuit 702 starts determining the next request. In this case, since the request inside the buffer 701 is only the request to the device 610 in the request 0, the determination circuit 702 determines Yes in step S801, and in step S805, the buffer 701 stores the request at t11 shown in FIG. Execute the first request. At this time, since the immediately preceding command issue target device and the current command issue target device are the same, the command is issued so that there is no empty cycle on the memory data bus.

以上、基板における配線遅延情報に基づく動作について説明を行ってきたが、本発明は接続される各メモリデバイスに読み出しレイテンシが異なるデバイスを接続した場合にも上記説明と同様な効果を有する。その場合、上述した配線遅延情報をメモリデバイス間のレイテンシの差分情報と読み替えれば良い。   As described above, the operation based on the wiring delay information in the substrate has been described. However, the present invention has the same effect as the above description even when a device having a different read latency is connected to each memory device to be connected. In such a case, the above-described wiring delay information may be read as latency difference information between memory devices.

[第2の実施形態]
次に、図面を参照しながら本発明に係る第2の実施形態を詳細に説明する。第1の実施形態では、各メモリデバイスの配線遅延情報をメモリコントローラ内の保持手段にて保持していた。しかし、各メモリデバイスの配線遅延情報をメモリコントローラ外部から端子にて供給するように構成しても良い。
[Second Embodiment]
Next, a second embodiment according to the present invention will be described in detail with reference to the drawings. In the first embodiment, the wiring delay information of each memory device is held by the holding means in the memory controller. However, the wiring delay information of each memory device may be supplied from the outside of the memory controller at a terminal.

図10は、第2の実施形態におけるメモリシステムの構成の一例を示す図である。尚、図10に示す1000〜1010は、第1の実施形態の図6に示す600〜610に相当するものである。しかし、第1の実施形態では、各メモリデバイスの配線遅延情報を図6に示すレジスタ604に保持していたが、第2の実施形態では、外部から供給されるように外部端子を備えるものである。   FIG. 10 is a diagram illustrating an example of the configuration of the memory system according to the second embodiment. Note that 1000 to 1010 shown in FIG. 10 correspond to 600 to 610 shown in FIG. 6 of the first embodiment. However, in the first embodiment, the wiring delay information of each memory device is held in the register 604 shown in FIG. 6, but in the second embodiment, an external terminal is provided so as to be supplied from the outside. is there.

また、上述した各メモリデバイスの配線遅延情報を各メモリデバイスの読み出しレイテンシの差分情報に変えた場合にも第1の実施形態と同様な効果を得ることができる。   Further, when the wiring delay information of each memory device described above is changed to the difference information of the read latency of each memory device, the same effect as that of the first embodiment can be obtained.

[第3の実施形態]
次に、図面を参照しながら本発明に係る第3の実施形態を詳細に説明する。第1の実施形態では、各メモリデバイスの共通なレイテンシ情報と、個別のデバイスの配線遅延情報とをそれぞれレジスタに保持する構成としていた。しかし、第2の実施形態では、共通なレイテンシ情報を含めた個別のデバイス毎の遅延情報を格納する格納手段を備えるものである。
[Third Embodiment]
Next, a third embodiment according to the present invention will be described in detail with reference to the drawings. In the first embodiment, the latency information common to the memory devices and the wiring delay information of the individual devices are respectively held in the registers. However, the second embodiment includes storage means for storing delay information for each individual device including common latency information.

図11は、第3の実施形態におけるメモリシステムの構成の一例を示す図である。尚、図11に示す1000〜1002、1005〜1010は、第1の実施形態の図6に示す600〜602、605〜610に相当するものである。   FIG. 11 is a diagram illustrating an example of a configuration of a memory system according to the third embodiment. Note that 1000 to 1002 and 1005 to 1010 shown in FIG. 11 correspond to 600 to 602 and 605 to 610 shown in FIG. 6 of the first embodiment.

図11に示す1111〜1114は、デバイスのレイテンシ情報とデバイスの配線遅延情報とをそれぞれ保持するレジスタである。   Reference numerals 1111 to 1114 shown in FIG. 11 are registers for holding device latency information and device wiring delay information, respectively.

第3の実施形態によれば、第1の実施形態と同様な効果を得ることができる。   According to the third embodiment, an effect similar to that of the first embodiment can be obtained.

尚、本発明は複数の機器(例えば、ホストコンピュータ,インターフェース機器,リーダ,プリンタなど)から構成されるシステムに適用しても、1つの機器からなる装置(例えば、複写機,ファクシミリ装置など)に適用しても良い。   Even if the present invention is applied to a system composed of a plurality of devices (for example, a host computer, an interface device, a reader, a printer, etc.), it is applied to an apparatus (for example, a copier, a facsimile machine, etc.) composed of a single device. It may be applied.

また、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記録媒体を、システム或いは装置に供給し、そのシステム或いは装置のコンピュータ(CPU若しくはMPU)が記録媒体に格納されたプログラムコードを読出し実行する。これによっても、本発明の目的が達成されることは言うまでもない。   In addition, a recording medium in which a program code of software for realizing the functions of the above-described embodiments is recorded is supplied to the system or apparatus, and the computer (CPU or MPU) of the system or apparatus stores the program code stored in the recording medium. Read and execute. It goes without saying that the object of the present invention can also be achieved by this.

この場合、コンピュータ読み取り可能な記録媒体から読出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記録媒体は本発明を構成することになる。   In this case, the program code itself read from the computer-readable recording medium realizes the functions of the above-described embodiments, and the recording medium storing the program code constitutes the present invention.

このプログラムコードを供給するための記録媒体として、例えばフレキシブルディスク,ハードディスク,光ディスク,光磁気ディスク,CD−ROM,CD−R,磁気テープ,不揮発性のメモリカード,ROMなどを用いることができる。   As a recording medium for supplying the program code, for example, a flexible disk, a hard disk, an optical disk, a magneto-optical disk, a CD-ROM, a CD-R, a magnetic tape, a nonvolatile memory card, a ROM, or the like can be used.

また、コンピュータが読出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、次の場合も含まれることは言うまでもない。即ち、プログラムコードの指示に基づき、コンピュータ上で稼働しているOS(オペレーティングシステム)などが実際の処理の一部又は全部を行い、その処理により前述した実施形態の機能が実現される場合である。   In addition, by executing the program code read by the computer, not only the functions of the above-described embodiments are realized, but also the following cases are included. That is, based on the instruction of the program code, an OS (operating system) running on the computer performs part or all of the actual processing, and the functions of the above-described embodiments are realized by the processing. .

更に、記録媒体から読出されたプログラムコードがコンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込む。その後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部又は全部を行い、その処理により前述した実施形態の機能が実現される場合も含まれることは言うまでもない。   Further, the program code read from the recording medium is written in a memory provided in a function expansion board inserted into the computer or a function expansion unit connected to the computer. After that, based on the instruction of the program code, the CPU of the function expansion board or function expansion unit performs part or all of the actual processing, and the function of the above-described embodiment is realized by the processing. Needless to say.

従来のメモリシステムにおける構成の一例を示す図である。It is a figure which shows an example of a structure in the conventional memory system. チップ外部における信号の様子を示す図である。It is a figure which shows the mode of the signal in the chip exterior. メモリコントローラとメモリデバイスとの関係を基板上のレイアウトイメージ的に書き直した図である。It is the figure which rewrote the relationship between a memory controller and a memory device like the layout image on a board | substrate. メモリデバイスがメモリコントローラから遠くなるに従って読み出しデータが1サイクルずつ遅く取り込まれるレイアウトになった場合のメモリデバイス間の待ちサイクル数を示す図である。It is a figure which shows the number of waiting cycles between memory devices in the case where the layout is such that read data is fetched later by one cycle as the memory device becomes farther from the memory controller. メモリコントローラ101のデータバス上の動作タイミングを示す図である。FIG. 4 is a diagram illustrating operation timing on a data bus of the memory controller 101. 第1の実施形態におけるメモリシステムの構成の一例を示す図である。It is a figure which shows an example of a structure of the memory system in 1st Embodiment. 図6に示すコマンド発行回路605の構成の一例を示す図である。FIG. 7 is a diagram illustrating an example of a configuration of a command issuing circuit 605 illustrated in FIG. 6. 判断回路702で実行される判断処理を示すフローチャートである。5 is a flowchart illustrating a determination process executed by a determination circuit 702. バッファ701から取り出す要求を決定するときのタイミングを示す図である。It is a figure which shows the timing when the request | requirement taken out from the buffer 701 is determined. 第2の実施形態におけるメモリシステムの構成の一例を示す図である。It is a figure which shows an example of a structure of the memory system in 2nd Embodiment. 第3の実施形態におけるメモリシステムの構成の一例を示す図である。It is a figure which shows an example of a structure of the memory system in 3rd Embodiment.

符号の説明Explanation of symbols

600 メモリコントローラを含むASIC
601 メモリコントローラ
602 チップ内部バス
603 デバイスのレイテンシ条件を保持するレジスタ
604 デバイスの配線遅延情報を保持するレジスタ
605 コマンド発行回路
606 データ発行/受信回路
607 メモリデバイス(Dev 0)
608 メモリデバイス(Dev 1)
609 メモリデバイス(Dev 2)
610 メモリデバイス(Dev 3)
701 バッファ
702 判断回路
600 ASIC with memory controller
601 Memory controller 602 Chip internal bus 603 Register holding device latency condition 604 Register holding device wiring delay information 605 Command issuing circuit 606 Data issuing / receiving circuit 607 Memory device (Dev 0)
608 Memory device (Dev 1)
609 Memory device (Dev 2)
610 Memory Device (Dev 3)
701 Buffer 702 decision circuit

Claims (2)

アクセスサイクルの異なる複数のメモリデバイスにデータの読み書きを行うメモリコントローラにおいて、
前記複数のメモリデバイスに対するメモリアクセス要求を保持する保持手段と、
前記複数のメモリデバイス毎のレイテンシを示すレイテンシ情報を格納する第1レジスタと、
前記複数のメモリデバイス毎の配線遅延を示す配線遅延情報を格納する第2レジスタと、
前記保持手段に保持されたメモリアクセス要求をメモリデバイスに発行する際に、前記第1レジスタに格納しているレイテンシ情報と前記第2レジスタに格納している配線遅延情報とに基づいて、前記メモリアクセス要求を発行する順序を変更するように制御する制御手段とを有し、
前記制御手段は、前記保持手段に保持した先頭のメモリアクセス要求に対する配線遅延情報と、前記保持手段に保持した2番目のメモリアクセス要求に対する配線遅延情報とにより、前記先頭のメモリアクセス要求が前記2番目のメモリアクセス要求よりもアクセス待ち時間が多い場合、前記2番目のメモリアクセス要求を発行するように順番を変更することを特徴とするメモリコントローラ。
In a memory controller that reads and writes data to multiple memory devices with different access cycles,
Holding means for holding memory access requests for the plurality of memory devices;
A first register storing latency information indicating latency for each of the plurality of memory devices;
A second register for storing wiring delay information indicating a wiring delay for each of the plurality of memory devices;
When issuing the memory access request held in the holding means to the memory device, the memory is based on the latency information stored in the first register and the wiring delay information stored in the second register. have a control means for controlling to change the order in which issues an access request,
The control means uses the wiring delay information for the first memory access request held in the holding means and the wiring delay information for the second memory access request held in the holding means to determine whether the first memory access request is the 2 A memory controller , wherein when the access waiting time is longer than that of the second memory access request, the order is changed so that the second memory access request is issued .
複数のメモリデバイスに対するメモリアクセス要求を保持する保持手段と、前記複数のメモリデバイス毎のレイテンシを示すレイテンシ情報を格納する第1レジスタと、前記複数のメモリデバイス毎の配線遅延を示す配線遅延情報を格納する第2レジスタと、を備え、アクセスサイクルの異なる複数のメモリデバイスにデータの読み書きを行うメモリコントローラの制御方法であって、
前記保持手段に保持されたメモリアクセス要求をメモリデバイスに発行する際に、前記第1レジスタに格納しているレイテンシ情報と前記第2レジスタに格納している配線遅延情報とに基づいて、前記メモリアクセス要求を発行する順序を変更するように制御する制御工程を有し、
前記制御工程では、前記保持手段に保持した先頭のメモリアクセス要求に対する配線遅延情報と、前記保持手段に保持した2番目のメモリアクセス要求に対する配線遅延情報とにより、前記先頭のメモリアクセス要求が前記2番目のメモリアクセス要求よりもアクセス待ち時間が多い場合、前記2番目のメモリアクセス要求を発行するように順番を変更することを特徴とするメモリコントローラの制御方法。
Holding means for holding memory access requests for a plurality of memory devices; a first register for storing latency information indicating the latency for each of the plurality of memory devices; and wiring delay information indicating a wiring delay for each of the plurality of memory devices. A memory controller control method for reading and writing data to and from a plurality of memory devices having different access cycles.
When issuing the memory access request held in the holding means to the memory device, the memory is based on the latency information stored in the first register and the wiring delay information stored in the second register. have a control step for controlling to change the order in which issues an access request,
In the control step, the first memory access request is generated by the wiring delay information for the first memory access request held in the holding unit and the wiring delay information for the second memory access request held in the holding unit. A method for controlling a memory controller, comprising: changing an order so that the second memory access request is issued when an access waiting time is longer than a second memory access request .
JP2007233377A 2007-09-07 2007-09-07 Memory controller and control method thereof Active JP5349775B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007233377A JP5349775B2 (en) 2007-09-07 2007-09-07 Memory controller and control method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007233377A JP5349775B2 (en) 2007-09-07 2007-09-07 Memory controller and control method thereof

Publications (3)

Publication Number Publication Date
JP2009064360A JP2009064360A (en) 2009-03-26
JP2009064360A5 JP2009064360A5 (en) 2010-08-26
JP5349775B2 true JP5349775B2 (en) 2013-11-20

Family

ID=40558878

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007233377A Active JP5349775B2 (en) 2007-09-07 2007-09-07 Memory controller and control method thereof

Country Status (1)

Country Link
JP (1) JP5349775B2 (en)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5393289B2 (en) * 2009-06-24 2014-01-22 キヤノン株式会社 Memory control circuit, memory system, and control method
JP5393270B2 (en) * 2009-06-09 2014-01-22 キヤノン株式会社 Memory control circuit, memory system, and control method
JP5448595B2 (en) * 2009-06-18 2014-03-19 キヤノン株式会社 Control apparatus and control method
US8707002B2 (en) 2009-06-09 2014-04-22 Canon Kabushiki Kaisha Control apparatus
JP7197998B2 (en) 2018-05-02 2022-12-28 キヤノン株式会社 Memory controllers and methods implemented in memory controllers

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4019056B2 (en) * 2004-02-25 2007-12-05 エヌイーシーコンピュータテクノ株式会社 Read request arbitration control system and method
US7222224B2 (en) * 2004-05-21 2007-05-22 Rambus Inc. System and method for improving performance in computer memory systems supporting multiple memory access latencies

Also Published As

Publication number Publication date
JP2009064360A (en) 2009-03-26

Similar Documents

Publication Publication Date Title
US7743202B2 (en) Command controller, prefetch buffer and methods for accessing a serial flash in an embedded system
US20120239885A1 (en) Memory hub with internal cache and/or memory access prediction
US8707002B2 (en) Control apparatus
JP5188134B2 (en) Memory access control device and memory access control method
JP2003150574A (en) Microcomputer
JP5349775B2 (en) Memory controller and control method thereof
US20140344512A1 (en) Data Processing Apparatus and Memory Apparatus
JP2011081553A (en) Information processing system and control method thereof
US20090235026A1 (en) Data transfer control device and data transfer control method
JP3505728B2 (en) Storage controller
US20060195665A1 (en) Access control device, method for changing memory addresses, and memory system
US20120310621A1 (en) Processor, data processing method thereof, and memory system including the processor
US5235694A (en) Multi i/o device system using temporary store of ram data when associated communicating i/o devices are operating at various clocking phases
JP2002288117A (en) DMA control system enabling fly-by transfer to synchronous memory
US20050174857A1 (en) Nonvolatile memory controlling method and nonvolatile memory controlling apparatus
US6356976B1 (en) LSI system capable of reading and writing at high speed
US20090276553A1 (en) Controller, hard disk drive and control method
US6269430B1 (en) Method for controlling a process of writing data sent by a central processing unit to a memory by using a central processing unit interface
US6629262B1 (en) Multiplexed storage controlling device
JP2000227895A (en) Device and method for transferring image data
US7395399B2 (en) Control circuit to enable high data rate access to a DRAM with a plurality of areas
JP5448595B2 (en) Control apparatus and control method
JP2006146817A (en) Memory control system and memory control device
US20070073961A1 (en) Memory controller
WO2005101219A1 (en) Memory controller and semiconductor device

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100709

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100709

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120925

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20121009

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20121207

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130507

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130704

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20130722

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130821

R151 Written notification of patent or utility model registration

Ref document number: 5349775

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151