JP5188134B2 - メモリアクセス制御装置及びメモリアクセス制御方法 - Google Patents

メモリアクセス制御装置及びメモリアクセス制御方法 Download PDF

Info

Publication number
JP5188134B2
JP5188134B2 JP2007260357A JP2007260357A JP5188134B2 JP 5188134 B2 JP5188134 B2 JP 5188134B2 JP 2007260357 A JP2007260357 A JP 2007260357A JP 2007260357 A JP2007260357 A JP 2007260357A JP 5188134 B2 JP5188134 B2 JP 5188134B2
Authority
JP
Japan
Prior art keywords
command
memory
access
issued
interval
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.)
Expired - Fee Related
Application number
JP2007260357A
Other languages
English (en)
Other versions
JP2009093227A (ja
JP2009093227A5 (ja
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 JP2007260357A priority Critical patent/JP5188134B2/ja
Priority to US12/208,001 priority patent/US8516214B2/en
Priority to CN201210233110.3A priority patent/CN102841879A/zh
Priority to CN200810148861.9A priority patent/CN101403958A/zh
Publication of JP2009093227A publication Critical patent/JP2009093227A/ja
Publication of JP2009093227A5 publication Critical patent/JP2009093227A5/ja
Application granted granted Critical
Publication of JP5188134B2 publication Critical patent/JP5188134B2/ja
Priority to US13/939,099 priority patent/US8762676B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4234Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus
    • G06F13/4243Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus with synchronous protocol
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Dram (AREA)
  • Memory System (AREA)
  • Information Transfer Systems (AREA)

Description

本発明は、レイテンシの異なる複数のメモリデバイスへのアクセスを制御するメモリアクセス制御技術に関する。
従来、大規模集積回路(LSI)とメモリデバイス間の配線遅延はメモリの1クロックサイクルを超えないよう考慮して基板設計を行っている。しかし、動作周波数が高くなるにつれ、基板設計で配線遅延がメモリの1クロックサイクルを超えないように抑えることは難しく、メモリデバイス毎にアクセスレイテンシが異なる場合が生じている。
そこで、配線遅延を考慮して複数のメモリデバイスとのデータ受け渡しが確実に行えるメモリアクセス制御回路が必要となっている。
図1は、従来例におけるメモリアクセス制御回路の一例を示すブロック図である。図1に示すように、メモリアクセス制御回路100にはメモリデバイス191、192が接続され、メモリアクセス制御回路100はメモリデバイス191、192へのアクセスを制御する。尚、図1に示す例では、メモリデバイスとしてDDRタイプのメモリデバイスを想定している。
図1において、101はチップセレクト信号であり、メモリアクセス制御回路100がメモリデバイス191にアクセスする際にアサートされる。102はチップセレクト信号であり、メモリアクセス制御回路100がメモリデバイス192にアクセスする際にアサートされる。
103はクロック信号であり、メモリアクセス制御回路100からメモリデバイス191、192へ供給される。そして、メモリデバイス191、192はクロック信号103に同期して動作する。104はコマンド信号であり、メモリアクセス制御回路100からメモリデバイス191、192へ発行される。ここで、メモリデバイス191、192は対応するチップセレクト信号101、102がアサートされた際にコマンド信号104を受け取り、コマンドの内容に応じた処理を行う。
105は双方向のデータストローブ信号である。メモリアクセス制御回路100、メモリデバイス191、192はデータ送信に伴い、データストローブ信号105をドライブする。106は双方向のデータ信号である。書き込み動作時にはメモリアクセス制御回路100が所定のタイミングでデータ信号106をドライブし、読み出し動作時にはメモリデバイス191又はメモリデバイス192が所定のタイミングでデータ信号106をドライブする。
メモリアクセス制御回路100において、110は先行コマンド情報保持回路であり、直前に発行したコマンドの情報を保持する。内部に、直前に発行したコマンドの読み出し又は書き込み方向を保持する先行アクセス方向バッファ111を備えている。
120はコマンド情報保持回路であり、次に発行するコマンドの情報を保持する。内部に、次に発行するコマンドの読み出し又は書き込み方向を保持するアクセス方向バッファ121を備えている。
130はコマンド間隔情報保持回路であり、先行コマンド発行から次コマンド発行までの最小コマンド発行間隔の情報を保持する。内部には、コマンド間隔バッファ131a〜131dが備えられ、先行コマンドの読み出し又は書き込み方向と次コマンドの読み出し又は書き込み方向の全組み合わせにおける最小コマンド発行間隔が保持される。つまり、図1に示す例では、4組のコマンド間隔が保持される。
140はレイテンシ情報保持回路であり、メモリアクセス制御回路100に接続されるメモリデバイスの設定に応じたメモリデバイスのリードレイテンシ、ライトレイテンシを保持する。
150はコマンド発行制御回路であり、メモリデバイス191、192へのコマンド発行を制御する。コマンド発行間隔選択回路151は、上述した先行アクセス方向バッファ111とアクセス方向バッファ121に応じてコマンド間隔バッファ131a〜131dから該当するコマンド間隔を選択する。次に、コマンド発行タイミング制御回路152は、コマンド発行間隔選択回路151が選択したコマンド間隔だけ次コマンドを発行させるタイミングを遅らせる。
160はデータ発行制御回路であり、コマンド発行制御回路150がコマンドを発行してからレイテンシ情報保持回路140に保持された書き込みレイテンシだけ経過した後、データ信号106をドライブする。170はデータ受信制御回路であり、メモリデバイス191、192から読み出されたデータを受信する。
180はメモリアクセスインターフェースであり、外部回路からのメモリアクセス要求を受け、コマンド発行制御回路150にコマンドを送信し、アクセス方向バッファ121に読み出し又は書き込み情報を設定する。
ここで、コマンド間隔バッファ131a〜131dに設定されるべきコマンド発行間隔の算出方法について説明する。その算出方法は、以下の(1)〜(4)の通りである。
(1)書き込みコマンドを発行後に、書き込みコマンドを発行する場合
コマンド発行間隔=データ転送長÷2+最低データ間隔
(2)書き込みコマンドを発行後に、読み出しコマンドを発行する場合
コマンド発行間隔=先行アクセスデバイスライトレイテンシ+データ転送長÷2+最大アクセスデバイス配線遅延−次アクセスデバイスリードレイテンシ−最小アクセスデバイス配線遅延
(3)読み出しコマンドを発行後に、書き込みコマンドを発行する場合
コマンド発行間隔=最大アクセスデバイス配線遅延×2+先行アクセスデバイスリードレイテンシ+データ転送長÷2+最低データ間隔−次アクセスデバイスライトレイテンシ
(4)読み出しコマンドを発行後に、読み出しコマンドを発行する場合
コマンド発行間隔=最大アクセスデバイス配線遅延×2+データ転送長÷2+最低データ間隔−最小アクセスデバイス配線遅延×2
上述の算出方法で算出されるコマンド発行間隔を満たさないでコマンドを発行すると、メモリアクセス制御回路100とメモリデバイス191、192との間で、データ信号のドライブが衝突する危険性がある。
尚、メモリアクセス制御回路100とメモリデバイス191、192との間で読み出し又は書き込みのアクセスは共に4ビート転送を扱うものとする。
また、メモリアクセス制御回路100とメモリデバイス191との間の配線遅延は0.5クロックサイクル、メモリアクセス制御回路100とメモリデバイス192との間の配線遅延は1.5クロックサイクルとする。また、レイテンシ情報保持回路140に保持される読み出しレイテンシは3クロックサイクル、書き込みレイテンシは2クロックサイクルとする。
上述のように、アクセス長、配線遅延、レイテンシからメモリアクセス制御回路100とメモリデバイス191、192によるデータ信号106のドライブが衝突しないように最小コマンド間隔値を算出し、コマンド間隔バッファ131a〜dに設定する。
従来例で「データ転送長÷2」は4ビートのメモリアクセスのみを扱うので2クロックサイクルである。また、「最低データ間隔」は連続するアクセスのデータがデータ信号上で連続しないための間隔で通常、1クロックサイクルである。
図2は、従来例において、上述したコマンド発行間隔算出方法で算出したコマンド発行間隔を示す図である。即ち、コマンド間隔バッファ131a〜131dには、図2に示す間隔(クロックサイクル)が設定され、その間隔以上のクロックサイクルを空ける必要がある。
ここで、メモリアクセス制御回路100がメモリデバイス192へ読み出しコマンドを発行後、メモリデバイス191へ書き込みコマンドを発行した場合の動作(動作例1)を、図3を用いて説明する。
図3は、従来例におけるコマンド発行時の動作例1を示すタイミングチャートである。図3において、メモリアクセス制御回路100と記された波形は、メモリアクセス制御回路100の信号端子をサンプリングした波形である。ここで、CLK、CS0、CS1、CMDはメモリアクセス制御回路100の出力信号であり、DQS、DQはメモリアクセス制御回路100の入出力信号である。
また、メモリデバイス191、メモリデバイス192は、それぞれのメモリデバイスの信号端子をサンプリングした波形である。ここで、CLK_0、CS_0、CMD_0及びCLK_1、CS_1、CMD_1は各メモリデバイスの入力信号であり、DQS_0、DQ_0及びDQS_1、DQ_1は各メモリデバイスの入出力信号である。
まず、メモリアクセスインターフェース180によってアクセス方向バッファ121に次コマンドが読み出しである旨の情報が設定される。コマンド発行間隔選択回路151は、アクセス方向バッファ121が設定されると、先行アクセス方向バッファ111がカラであるので、コマンド発行可能となるまで0クロックサイクルであることをコマンド発行タイミング制御回路152に知らせる。
一方、コマンド発行タイミング制御回路152はコマンド発行まで0クロックサイクルであるという情報を受け取り、0クロックサイクル後にコマンド発行許可を出す。これにより、コマンド発行制御回路150はチップセレクト信号102をアサートし、読み出しコマンドを発行する(T3)。
コマンド発行制御回路150はコマンドを発行すると同時に、アクセス方向バッファ121の読み出しである情報を先行アクセス方向バッファ111に設定する。これと同時に、メモリアクセスインターフェース180によってアクセス方向バッファ121に次のコマンドが書き込みである旨の情報が設定される。
コマンド発行制御回路150が発行した読み出しコマンドは1.5クロックサイクル遅延してメモリデバイス192に受信される(B4)。メモリデバイス192は受信したコマンドが読み出しであるので、読み出しレイテンシ3クロックサイクル経過した後、データ信号106をドライブする(B7)。メモリデバイス192がドライブしたデータは1.5クロックサイクル遅延してデータ受信制御回路170に受信される(T10〜T12)。
先行コマンドが読み出しで次のコマンドが書き込みであるので、コマンド発行間隔選択回路151はコマンド間隔バッファ131cを選択する。これにより、コマンド発行可能となるまで、7クロックサイクルであることをコマンド発行タイミング制御回路152に知らせる。
コマンド発行タイミング制御回路152は、コマンド発行まで7クロックサイクルであるという情報を受け取り、先行コマンドの発行(T3)を起点に7クロックサイクル後にコマンド発行許可を出す(T10)。
これにより、コマンド発行制御回路150はチップセレクト信号101をアサートして書き込みコマンドを発行する(T10)。コマンド発行制御回路150はコマンドを発行すると同時に、アクセス方向バッファ121の情報を先行アクセス方向バッファ111に設定する。
コマンド発行制御回路150が発行した書き込みコマンドは0.5クロックサイクル遅延してメモリデバイス191に受信される(A11)。データ発行制御回路160はコマンド発行制御回路150が書き込みコマンドを発行したタイミングからレイテンシ情報保持回路140の保持する書き込みレイテンシ2クロックサイクル経過した後、データ信号106をドライブする(T13)。データ発行制御回路160が発行したデータは0.5クロックサイクル遅延してメモリデバイス191に受信される(A13〜A15)。
次に、メモリアクセス制御回路100がメモリデバイス191へ読み出しコマンドを発行後、メモリデバイス192へ書き込みコマンドを発行した場合の動作(動作例2)を、図4を用いて説明する。
図4は、従来例におけるコマンド発行時の動作例2を示すタイミングチャートである。尚、図4に示す波形のサンプリングポイントは図3と同様である。
まず、メモリアクセスインターフェース180によってアクセス方向バッファ121に次コマンドが読み出しである旨の情報が設定される。コマンド発行間隔選択回路151は、アクセス方向バッファ121が設定されると、先行アクセス方向バッファ111がカラであるので、コマンド発行可能となるまで0クロックサイクルであることをコマンド発行タイミング制御回路152に知らせる。
一方、コマンド発行タイミング制御回路152はコマンド発行まで0クロックサイクルであるという情報を受け取り、0クロックサイクル後にコマンド発行許可を出す。これにより、コマンド発行制御回路150はチップセレクト信号101をアサートし、読み出しコマンドを発行する(T3)。
コマンド発行制御回路150はコマンドを発行すると同時に、アクセス方向バッファ121の読み出しである情報を先行アクセス方向バッファ111に設定する。これと同時に、メモリアクセスインターフェース180によってアクセス方向バッファ121に次のコマンドが書き込みである旨の情報が設定される。
コマンド発行制御回路150が発行した読み出しコマンドは0.5クロックサイクル遅延してメモリデバイス191に受信される(A4)。メモリデバイス191は受信したコマンドが読み出しであるので、読み出しレイテンシ3クロックサイクル経過した後、データ信号106をドライブする(A7)。メモリデバイス192がドライブしたデータは0.5クロックサイクル遅延してデータ受信制御回路170に受信される(T8〜T10)。
先行コマンドが読み出しで次のコマンドが書き込みであるので、コマンド発行間隔選択回路151はコマンド間隔バッファ131cを選択する。これにより、コマンド発行可能となるまで、7クロックサイクルであることをコマンド発行タイミング制御回路152に知らせる。
コマンド発行タイミング制御回路152は、コマンド発行まで7クロックサイクルであるという情報を受け取り、先行コマンドの発行(T3)を起点に7クロックサイクル後にコマンド発行許可を出す(T10)。
これにより、コマンド発行制御回路150はチップセレクト信号102をアサートし、書き込みコマンドを発行する(T10)。コマンド発行制御回路150はコマンドを発行すると同時に、アクセス方向バッファ121の情報を先行アクセス方向バッファ111に設定する。
コマンド発行制御回路150が発行した書き込みコマンドは1.5クロックサイクル遅延してメモリデバイス192に受信される(B11)。データ発行制御回路160はコマンド発行制御回路150が書き込みコマンドを発行したタイミングからレイテンシ情報保持回路140の保持する書き込みレイテンシ2クロックサイクル経過した後、データ信号106をドライブする(T13)。データ発行制御回路160が発行したデータは1.5クロックサイクル遅延してメモリデバイス192に受信される(B13〜B15)。
以上、読み出しをしてから書き込みをする場合のみ詳細に動作を説明したが、書き込みをしてから書き込み、書き込みをしてから読み出し、読み出しをしてから読み出しの場合も同様である。即ち、コマンド間隔バッファ131a〜131dの情報から該当するものがコマンド発行間隔選択回路151によって選択され、選択された情報に応じてコマンド発行タイミング制御回路152が発行許可を出す。そして、コマンド発行制御回路150がコマンドを発行することで、データ信号106のドライブが衝突することなく、データ転送を行う。
特開2003-173290号公報
しかしながら、先行コマンドの読み出し/書き込み情報と次コマンドの読み出し/書き込み情報でコマンド発行間隔を制御すると、アクセスレイテンシが最大となるメモリデバイスへのアクセスに合わせてコマンド発行間隔をあける必要がある。
これにより、アクセスレイテンシが小さなメモリデバイスへのアクセスの際にも、必要以上にコマンド発行間隔があくことで、データ信号がドライブされない状態ができてしまう。例えば、上述した従来例によると、図4において、メモリアクセス制御回路100が発行する書き込みコマンドを更に2クロックサイクル前(T8)に発行してもデータ信号106のドライブが衝突することなくメモリアクセスができる。
従って、本来データ転送が可能なサイクルでも、不要な転送間隔があいてしまうため、メモリバスの使用効率が低下してしまう、という問題が生じていた。
本発明は、メモリバスの使用効率を向上させることを目的とする。
本発明は、レイテンシの異なる複数のメモリデバイスへのリードアクセス又はライトアクセスの種別のコマンドを制御するメモリアクセス制御装置であって、
前記コマンドを発行することで前記複数のメモリデバイスにアクセスするアクセス手段と、
先に発行した第1のコマンドの種別と該第1のコマンドが発行されたメモリデバイスの情報と、次に発行する第2のコマンドの種別と該第2のコマンドが発行されるメモリデバイスの情報とを保持する保持手段と、
前記第1のコマンドのコマンド種別と該第1のコマンドが発行されたメモリデバイスの情報と、次に発行する第2のコマンドのコマンド種別と該第2のコマンドを発行するメモリデバイスの情報と、に基づいて前記アクセス手段によって前記第2のコマンドを発行するまでのコマンド発行間隔を設定する設定手段と、
前記設定されたコマンド発行間隔に従って前記第2のコマンドの発行タイミングを制御する制御手段と、を有することを特徴とする。
また、本発明は、リードアクセス又はライトアクセスの種別のコマンドを発行することで複数のメモリデバイスにアクセスするアクセス手段と、先に発行した第1のコマンドの種別と該第1のコマンドが発行されたメモリデバイスの情報と、次に発行する第2のコマンドの種別と該第2のコマンドが発行されるメモリデバイスの情報とを保持する保持手段と、を備え、レイテンシの異なる前記複数のメモリデバイスへのアクセスを制御するメモリアクセス制御装置にて実行されるメモリアクセス制御方法であって、
前記第1のコマンドのコマンド種別と当該第1のコマンドが発行されたメモリデバイスの情報と、次に発行する第2のコマンドのコマンド種別と該第2のコマンドを発行するメモリデバイスの情報と、に基づいて前記アクセス手段によって前記第2のコマンドを発行するまでのコマンド発行間隔を設定する設定工程と、
前記設定されたコマンド発行間隔に従って前記第2のコマンドの発行タイミングを制御する制御工程と、を有することを特徴とする。
本発明によれば、メモリアクセス制御装置がデータ信号をドライブするタイミングと、メモリデバイスがデータ信号をドライブするタイミングが衝突することなく、メモリバスの使用効率を向上させることができる。
以下、図面を参照しながら発明を実施するための最良の形態について詳細に説明する。
[第1の実施形態]
図5は、第1の実施形態におけるメモリアクセス制御装置の一例を示すブロック図である。図1に示すように、メモリアクセス制御装置500には2つのメモリデバイス591、592が接続され、メモリアクセス制御装置500はメモリデバイス591、592へのアクセスを制御する。
第1の実施形態でも、メモリデバイスとしてDDRタイプのメモリデバイスを想定している。また、メモリアクセス制御装置500とメモリデバイス591、592の間の信号501〜506は、図1を用いて説明した信号101〜106と同じであり、その説明は省略する。
メモリアクセス制御装置500において、510は先行コマンド情報保持回路であり、直前に発行したコマンドの情報を保持する。内部に、直前に発行したコマンドの読み出し又は書き込み方向を保持する先行アクセス方向バッファ511と直前に発行したコマンドのアクセスしたデバイス情報を保持する先行アクセスデバイスバッファ512とを備えている。
520はコマンド情報保持回路であり、次に発行するコマンドの情報を保持する。内部に、次に発行するコマンドの読み出し又は書き込み方向を保持するアクセス方向バッファ521と次に発行するコマンドのアクセスするデバイス情報を保持するアクセスデバイスバッファ522とを備えている。
530はコマンド間隔情報保持回路であり、先行コマンド発行から次コマンド発行までの最小コマンド発行間隔の情報を保持する。内部には、コマンド間隔バッファ531a〜531Nが備えられ、先行コマンドのアクセスデバイス及び読み出し又は書き込み方向と、次コマンドのアクセスデバイス及び読み出し又は書き込み方向の全組み合わせにおける最小コマンド発行間隔が保持される。図5に示す例では、メモリアクセス制御装置500には2つのメモリデバイス591、592が接続されているので、16組のコマンド間隔が保持される。上述の全組み合わせ数Nは、2×(デバイス数)×2×(デバイス数)で求められる。
540はレイテンシ情報保持回路であり、メモリアクセス制御装置500に接続されるメモリデバイスの設定に応じたメモリデバイスのリードレイテンシ、ライトレイテンシを保持する。
550はコマンド発行制御回路であり、メモリデバイス591、592へのコマンド発行を制御する。コマンド発行制御回路550は、CPU(MPU)、ROM、周辺回路などで構成されても良い。コマンド発行間隔選択回路551は、先行コマンド情報保持回路510とコマンド情報保持回路520に保持された情報に応じてコマンド間隔バッファ531a〜531Nから該当するコマンド間隔を選択する。次に、コマンド発行タイミング制御回路552は、コマンド発行間隔選択回路551が選択したコマンド間隔だけ次コマンドを発行させるタイミングを遅らせる。
560はデータ発行制御回路であり、コマンド発行制御回路550がコマンドを発行してからレイテンシ情報保持回路540に保持された書き込みレイテンシだけ経過した後、データ信号506をドライブする。570はデータ受信制御回路であり、メモリデバイス591、592から読み出されたデータを受信する。
580はメモリアクセスインターフェースであり、外部回路からのメモリアクセス要求を受け、コマンド発行制御回路550にコマンドを送信し、アクセス方向バッファ521に読み出し又は書き込み情報を設定する。
ここで、コマンド間隔バッファ531a〜531Nに設定されるべきコマンド発行間隔の算出方法について説明する。その算出方法は、以下の(1)〜(4)の通りである。
(1)書き込みコマンドを発行後に、書き込みコマンドを発行する場合
コマンド発行間隔=データ転送長÷2+最低データ間隔
(2)書き込みコマンドを発行後に、読み出しコマンドを発行する場合
コマンド発行間隔=先行アクセスデバイスライトレイテンシ+データ転送長÷2+先行アクセスデバイス配線遅延−次アクセスデバイスリードレイテンシ−次アクセスデバイス配線遅延
(3)読み出しコマンドを発行後に、書き込みコマンドを発行する場合
コマンド発行間隔=先行アクセスデバイス配線遅延×2+先行アクセスデバイスリードレイテンシ+データ転送長÷2+最低データ間隔−次アクセスデバイスライトレイテンシ
(4)読み出しコマンドを発行後に、読み出しコマンドを発行する場合
コマンド発行間隔=先行アクセスデバイス配線遅延×2+データ転送長÷2+最低データ間隔−次アクセスデバイス配線遅延×2
上記の算出方法で算出されるコマンド発行間隔を満たさないでコマンドを発行すると、メモリアクセス制御装置500とメモリデバイス591、592との間で、データ信号のドライブが衝突する危険性がある。
尚、メモリアクセス制御装置500とメモリデバイス591、592との間で読み出し又は書き込みアクセスは共に4ビート転送を扱うものとする。
また、メモリアクセス制御装置500とメモリデバイス591との間の配線遅延は0.5クロックサイクル、メモリアクセス制御装置500とメモリデバイス592との間の配線遅延は1.5クロックサイクルとする。また、レイテンシ情報保持回路540に保持される読み出しレイテンシは3クロックサイクル、書き込みレイテンシは2クロックサイクルとする。
上述のように、アクセス長、配線遅延、レイテンシからメモリアクセス制御装置500とメモリデバイス591、592によるデータ信号506のドライブが衝突しないように最小コマンド間隔値を算出し、コマンド間隔バッファ531a〜Nに設定する。
ここで、「データ転送長÷2」は4ビートのメモリアクセスのみを扱うので2クロックサイクルである。また、「最低データ間隔」は連続するアクセスのデータがデータ信号上で連続しないための間隔で通常、1クロックサイクルである。
図6は、第1の実施形態におけるコマンド発行算出方法で算出したコマンド発行間隔を示す図である。即ち、コマンド間隔バッファ531a〜531N(N=16なので添え字はp)には、図6に示す間隔(クロックサイクル)が設定され、その間隔以上のクロックサイクルを空ける必要がある。
ここで、メモリアクセス制御装置500がメモリデバイス592へ読み出しコマンドを発行後、メモリデバイス591へ書き込みコマンドを発行する場合の動作(動作例1)を、図7を用いて説明する。
図7は、第1の実施形態におけるコマンド発行時の動作例1を示すタイミングチャートである。尚、メモリアクセス制御装置500と記された波形は、メモリアクセス制御装置500の信号端子をサンプリングした波形である。ここで、CLK、CS0、CS1、CMDはメモリアクセス制御装置500の出力信号であり、DQS、DQはメモリアクセス制御装置500の入出力信号である。
また、メモリデバイス591、メモリデバイス592は、それぞれのメモリデバイスの信号端子をサンプリングした波形である。ここで、CLK_0、CS_0、CMD_0及びCLK_1、CS_1、CMD_1は各メモリデバイスの入力信号であり、DQS_0、DQ_0及びDQS_1、DQ_1は各メモリデバイスの入出力信号である。
まず、メモリアクセスインターフェース580によってアクセス方向バッファ521に次コマンドが読み出しである旨の情報が設定される。コマンド発行間隔選択回路551は、アクセス方向バッファ521が設定されると、先行アクセス方向バッファ511がカラであるので、コマンド発行可能となるまで0クロックサイクルであることをコマンド発行タイミング制御回路552に知らせる。
一方、コマンド発行タイミング制御回路552はコマンド発行まで0クロックサイクルであるという情報を受け取り、0クロックサイクル後にコマンド発行許可を出す。これにより、コマンド発行制御回路550はチップセレクト信号502をアサートし、読み出しコマンドを発行する(T3)。
コマンド発行制御回路550はコマンドを発行すると同時に、アクセス方向バッファ521の読み出しである旨の情報を先行アクセス方向バッファ511に設定する。また同時に、メモリアクセスインターフェース580によってアクセス方向バッファ521に次のコマンドが書き込みである旨の情報が設定される。
コマンド発行制御回路550が発行した読み出しコマンドは1.5クロックサイクル遅延してメモリデバイス592に受信される(B4)。メモリデバイス592は受信したコマンドが読み出しであるので、読み出しレイテンシ3クロックサイクル経過した後、データ信号506をドライブする(B7)。メモリデバイス592がドライブしたデータは1.5クロックサイクル遅延してデータ受信制御回路570に受信される(T10〜T12)。
先行コマンドが読み出し、先行アクセスデバイスがメモリデバイス592、次のコマンドが書き込み、次のアクセスデバイスがメモリデバイス591であるので、コマンド発行間隔選択回路551はコマンド間隔バッファ531mを選択する。これにより、コマンド発行可能となるまで、7クロックサイクルであることをコマンド発行タイミング制御回路552に知らせる。
一方、コマンド発行タイミング制御回路552はコマンド発行まで7クロックサイクルであるという情報を受け取り、7クロックサイクル後にコマンド発行許可を出す。
これにより、コマンド発行制御回路550はチップセレクト信号501をアサートして書き込みコマンドを発行する(T10)。コマンド発行制御回路550はコマンドを発行すると同時に、アクセス方向バッファ521の情報を先行アクセス方向バッファ511に設定する。
コマンド発行制御回路550が発行した書き込みコマンドは0.5クロックサイクル遅延してメモリデバイス591に受信される(A11)。データ発行制御回路560はコマンド発行制御回路550が書き込みコマンドを発行したタイミングからレイテンシ情報保持回路540の保持する書き込みレイテンシ2クロックサイクル経過した後、データ信号506をドライブする(T13)。データ発行制御回路560が発行したデータは0.5クロックサイクル遅延してメモリデバイス591に受信される(A13〜A15)。
次に、メモリアクセス制御装置500がメモリデバイス591へ読み出しコマンドを発行後、メモリデバイス592へ書き込みコマンドを発行した場合の動作(動作例2)を、図8を用いて説明する。
図8は、第1の実施形態におけるコマンド発行時の動作例2を示すタイミングチャートである。尚、図8に示す波形のサンプリングポイントは図7と同様である。
まず、メモリアクセスインターフェース580によってアクセス方向バッファ521に次コマンドが読み出しである旨の情報が設定される。コマンド発行間隔選択回路551は、アクセス方向バッファ521が設定されると、先行アクセス方向バッファ511がカラであるので、コマンド発行可能となるまで0クロックサイクルであることをコマンド発行タイミング制御回路552に知らせる。
一方、コマンド発行タイミング制御回路552はコマンド発行まで0クロックサイクルであるという情報を受け取り、0クロックサイクル後にコマンド発行許可を出す。これにより、コマンド発行制御回路550はチップセレクト信号501をアサートし、読み出しコマンドを発行する(T3)。
コマンド発行制御回路550はコマンドを発行すると同時に、アクセス方向バッファ521の読み出しである旨の情報を先行アクセス方向バッファ511に設定する。また同時に、メモリアクセスインターフェース580によってアクセス方向バッファ521に次のコマンドが書き込みである旨の情報が設定される。
コマンド発行制御回路550が発行した読み出しコマンドは0.5クロックサイクル遅延してメモリデバイス591に受信される(A4)。メモリデバイス591は受信したコマンドが読み出しであるので、読み出しレイテンシ3クロックサイクル経過した後、データ信号506をドライブする(A7)。メモリデバイス592がドライブしたデータは0.5クロックサイクル遅延してデータ受信制御回路570に受信される(T8〜T10)。
先行コマンドが読み出し、先行アクセスデバイスがメモリデバイス591、次のコマンドが書き込み、次のアクセスデバイスがメモリデバイス592であるので、コマンド発行間隔選択回路551はコマンド間隔バッファ531gを選択する。これにより、コマンド発行可能となるまで、5クロックサイクルであることをコマンド発行タイミング制御回路552に知らせる。
コマンド発行タイミング制御回路552は、コマンド発行まで5クロックサイクルであるという情報を受け取り、5クロックサイクル後にコマンド発行許可を出す。
これにより、コマンド発行制御回路550はチップセレクト信号502をアサートし、書き込みコマンドを発行する(T8)。コマンド発行制御回路550はコマンドを発行すると同時に、アクセス方向バッファ521の情報を先行アクセス方向バッファ511に設定する。
コマンド発行制御回路550が発行した書き込みコマンドは、1.5クロックサイクル遅延してメモリデバイス592に受信される(B9)。データ発行制御回路560はコマンド発行制御回路550が書き込みコマンドを発行したタイミングからレイテンシ情報保持回路540の保持する書き込みレイテンシ2クロックサイクル経過した後、データ信号506をドライブする(T11)。データ発行制御回路560が発行したデータは1.5クロックサイクル遅延してメモリデバイス592に受信される(B11〜B13)。
以上、読み出しをしてから書き込みをする場合のみ詳細に動作を説明したが、書き込みをしてから書き込み、書き込みをしてから読み出し、読み出しをしてから読み出しの場合も同様である。即ち、コマンド間隔バッファ531a〜531Nの情報から該当するものがコマンド発行間隔選択回路551によって選択され、選択された情報に応じてコマンド発行タイミング制御回路552が発行許可を出す。そして、コマンド発行制御回路550がコマンドを発行することで、データ信号506のドライブが衝突することなく、データ信号506を最短でドライブすることができる。
第1の実施形態では、配線遅延が異なることに起因してメモリデバイス毎のアクセスレイテンシが異なる場合に対しての動作を説明した。しかし、メモリデバイス毎のレイテンシが異なる場合においても同様にコマンド発行間隔を設定することでデータ信号のドライブが衝突しないでデータ信号を最短でドライブすることができる。
また、第1の実施形態では、2つのメモリデバイスが接続された場合を示しているが、本発明はこれだけに限らず、接続されるデバイスが3デバイス以上の場合においても適用することができる。
第1の実施形態によれば、先行コマンドの読み出し又は書き込み情報と先行コマンドのアクセスデバイス情報と次コマンドの読み出し又は書き込み情報と次コマンドのアクセスデバイス情報に応じて、コマンド発行間隔を調整することが可能となる。そのため、本来データ転送が可能なサイクルに不要な転送間隔があかなくなる。
即ち、メモリアクセス制御回路がデータ信号をドライブするタイミングと、メモリデバイスがデータ信号をドライブするタイミングが衝突することなく、メモリバスの使用効率を向上させることができる。
[第2の実施形態]
次に、図面を参照しながら本発明に係る第2の実施形態を詳細に説明する。第1の実施形態では、最小コマンド間隔値をコマンド間隔バッファ531a〜Nに保持しているが、第2の実施形態では次コマンドを発行する際に算出するものである。
図9は、第2の実施形態におけるメモリアクセス制御装置の一例を示すブロック図である。図9に示すように、メモリアクセス制御装置900は、メモリデバイス991、992が接続され、メモリデバイス991、992へのアクセスを制御する。
第2の実施形態でも、メモリデバイスとしてDDRタイプのメモリデバイスを想定している。また、メモリアクセス制御装置900とメモリデバイス991、992の間の信号901〜906は、図5を用いて説明した信号501〜506と同じであり、その説明は省略する。
メモリアクセス制御装置900において、910は先行コマンド情報保持回路であり、直前に発行したコマンドの情報を保持する。内部に、直前に発行したコマンドの読み出し又は書き込み方向を保持する先行アクセス方向バッファ911と直前に発行したコマンドのアクセスしたデバイス情報を保持する先行アクセスデバイスバッファ912とを備えている。
920はコマンド情報保持回路であり、次に発行するコマンドの情報を保持する。内部に、次に発行するコマンドの読み出し又は書き込み方向を保持するアクセス方向バッファ921と次に発行するコマンドのアクセスするデバイス情報を保持するアクセスデバイスバッファ922とを備えている。
930は配線遅延情報保持回路であり、全メモリデバイスに対する配線遅延情報を保持する。内部には、配線遅延バッファ931a〜931Nが備えられ、メモリアクセス制御装置900に接続される全てのメモリデバイスに対する配線遅延量が保持される。図9に示す例では、メモリアクセス制御装置900には2つのメモリデバイス991、992が接続されているので、配線遅延バッファ931a、931bが備えられ、それぞれ2つの配線遅延量が保持される。
940はレイテンシ情報保持回路であり、メモリアクセス制御装置900に接続されるメモリデバイスの設定に応じたメモリデバイスのリードレイテンシ、ライトレイテンシを保持する。941は後述するコマンド発行制御回路950へ出力されるレイテンシ情報である。
950はコマンド発行制御回路であり、メモリデバイス191、192へのコマンド発行を制御する。コマンド発行制御回路950は、CPU(MPU)、ROM、周辺回路などで構成されても良い。コマンド発行間隔算出回路951は、先行コマンド情報保持回路910、コマンド情報保持回路920、配線遅延情報保持回路930に保持された情報とレイテンシ情報941から次のコマンドが発行可能となるまでのサイクル数を算出する。コマンド発行タイミング制御回路952は、コマンド発行間隔算出回路951が算出したコマンド間隔だけ次コマンドの発行タイミングを遅らせる。
960はデータ発行制御回路であり、コマンド発行制御回路950がコマンドを発行してからレイテンシ情報保持回路940に保持された書き込みレイテンシだけ経過した後、データ信号906をドライブする。970はデータ受信制御回路であり、メモリデバイス991、992から読み出されたデータを受信する。
980はメモリアクセスインターフェースであり、外部回路からのメモリアクセス要求を受け、コマンド発行制御回路950にコマンドを送信し、アクセス方向バッファ921に読み出し又は書き込み情報を設定する。
ここで、コマンド発行間隔算出回路951によるコマンド発行間隔の算出方法は、以下の(1)〜(4)の通りである。
(1)書き込みコマンドを発行後に、書き込みコマンドを発行する場合
コマンド発行間隔=データ転送長÷2+最低データ間隔
(2)書き込みコマンドを発行後に、読み出しコマンドを発行する場合
コマンド発行間隔=先行アクセスデバイスライトレイテンシ+データ転送長÷2+先行アクセスデバイス配線遅延−次アクセスデバイスリードレイテンシ−次アクセスデバイス配線遅延
(3)読み出しコマンドを発行後に、書き込みコマンドを発行する場合
コマンド発行間隔=先行アクセスデバイス配線遅延×2+先行アクセスデバイスリードレイテンシ+データ転送長÷2+最低データ間隔−次アクセスデバイスライトレイテンシ
(4)読み出しコマンドを発行後に、読み出しコマンドを発行する場合
コマンド発行間隔=先行アクセスデバイス配線遅延×2+データ転送長÷2+最低データ間隔−次アクセスデバイス配線遅延×2
上記の算出方法で算出されるコマンド発行間隔を満たさないでコマンドを発行すると、メモリアクセス制御装置900とメモリデバイス991、992との間で、データ信号のドライブが衝突する危険性がある。
尚、メモリアクセス制御装置900とメモリデバイス991、992との間で読み出し又は書き込みアクセスは共に4ビート転送を扱うものとする。
また、メモリアクセス制御装置900とメモリデバイス991との間の配線遅延は0.5クロックサイクル、メモリアクセス制御装置900とメモリデバイス992との間の配線遅延は1.5クロックサイクルとする。また、レイテンシ情報保持回路940に保持される読み出しレイテンシは3クロックサイクル、書き込みレイテンシは2クロックサイクルとする。
配線遅延バッファ931a〜931N(Nはデバイス数)には、メモリデバイス991とメモリデバイス992の配線遅延が設定される。
ここで、メモリアクセス制御装置900がメモリデバイス992へ読み出しコマンドを発行後、メモリデバイス991へ書き込みコマンドを発行する場合の動作(動作例1)を、第1の実施形態で用いた図7を参照して説明する。
まず、メモリアクセスインターフェース980によってアクセス方向バッファ921に次コマンドが読み出しである旨の情報が設定される。コマンド発行間隔算出回路951は、アクセス方向バッファ921が設定されると、先行アクセス方向バッファ911がカラであるので、コマンド発行可能となるまで0クロックサイクルであることをコマンド発行タイミング制御回路952に知らせる。
一方、コマンド発行タイミング制御回路952はコマンド発行まで0クロックサイクルであるという情報を受け取り、0クロックサイクル後にコマンド発行許可を出す。これにより、コマンド発行制御回路950はチップセレクト信号902をアサートし、読み出しコマンドを発行する(T3)。
コマンド発行制御回路950はコマンドを発行すると同時に、アクセス方向バッファ921の読み出しである旨の情報を先行アクセス方向バッファ911に設定する。また同時に、メモリアクセスインターフェース980によってアクセス方向バッファ921に次のコマンドが書き込みである旨の情報が設定される。
コマンド発行制御回路950が発行した読み出しコマンドは1.5クロックサイクル遅延してメモリデバイス992に受信される(B4)。メモリデバイス992は受信したコマンドが読み出しであるので、読み出しレイテンシ3クロックサイクル経過した後、データ信号906をドライブする(B7)。メモリデバイス992がドライブしたデータは1.5クロックサイクル遅延してデータ受信制御回路970に受信される(T10〜T12)。
ここで、コマンド発行間隔算出回路951は、以下の情報から上述のコマンド発行間隔算出方法にて次のコマンド発行可能となるまで7クロックサイクルであることを算出し、コマンド発行タイミング制御回路952に知らせる。
・先行コマンドが読み出しであること
・先行アクセスデバイスがメモリデバイス992であること
・次のコマンドが書き込みであること
・次のアクセスデバイスがメモリデバイス991であること
・メモリデバイス991の配線遅延が0.5クロックサイクルであること
・メモリデバイス992の配線遅延が1.5クロックサイクルであること
・メモリデバイスのリードレイテンシが3クロックサイクルであること
・メモリデバイスのライトレイテンシが2クロックサイクルであること
一方、コマンド発行タイミング制御回路952はコマンド発行まで7クロックサイクルであるという情報を受け取り、7クロックサイクル後にコマンド発行許可を出す。
これにより、コマンド発行制御回路950はチップセレクト信号901をアサートして書き込みコマンドを発行する(T10)。コマンド発行制御回路950はコマンドを発行すると同時に、アクセス方向バッファ921の情報を先行アクセス方向バッファ911に設定する。
コマンド発行制御回路950が発行した書き込みコマンドは0.5クロックサイクル遅延してメモリデバイス991に受信される(A11)。データ発行制御回路960はコマンド発行制御回路950が書き込みコマンドを発行したタイミングからレイテンシ情報保持回路940の保持する書き込みレイテンシ2クロックサイクル経過した後、データ信号906をドライブする(T13)。データ発行制御回路960が発行したデータは0.5クロックサイクル遅延してメモリデバイス991に受信される(A13〜A15)。
次に、メモリアクセス制御装置900がメモリデバイス991へ読み出しコマンドを発行後、メモリデバイス992へ書き込みコマンドを発行した場合の動作(動作例2)を、第1の実施形態で用いた図8を参照して説明する。
まず、メモリアクセスインターフェース980によってアクセス方向バッファ921に次コマンドが読み出しである旨の情報が設定される。コマンド発行間隔算出回路951は、アクセス方向バッファ921が設定されると、先行アクセス方向バッファ911がカラであるので、コマンド発行可能となるまで0クロックサイクルであることをコマンド発行タイミング制御回路952に知らせる。
一方、コマンド発行タイミング制御回路952はコマンド発行まで0クロックサイクルであるという情報を受け取り、0クロックサイクル後にコマンド発行許可を出す。これにより、コマンド発行制御回路950はチップセレクト信号902をアサートし、読み出しコマンドを発行する(T3)。
コマンド発行制御回路950はコマンドを発行すると同時に、アクセス方向バッファ921の読み出しである旨の情報を先行アクセス方向バッファ911に設定する。また同時に、メモリアクセスインターフェース980によってアクセス方向バッファ921に次のコマンドが書き込みである旨の情報が設定される。
コマンド発行制御回路950が発行した読み出しコマンドは0.5クロックサイクル遅延してメモリデバイス991に受信される(A4)。メモリデバイス991は受信したコマンドが読み出しであるので、読み出しレイテンシ3クロックサイクル経過した後、データ信号906をドライブする(A7)。メモリデバイス991がドライブしたデータは0.5クロックサイクル遅延してデータ受信制御回路970に受信される(T8〜T10)。
ここで、コマンド発行間隔算出回路951は、以下の情報から上述のコマンド発行間隔算出方法にて次のコマンド発行可能となるまで5クロックサイクルであることを算出し、コマンド発行タイミング制御回路952に知らせる。
・先行コマンドが読み出しであること
・先行アクセスデバイスがメモリデバイス991であること
・次のコマンドが書き込みであること
・次のアクセスデバイスがメモリデバイス992であること
・メモリデバイス991の配線遅延が0.5クロックサイクルであること
・メモリデバイス992の配線遅延が1.5クロックサイクルであること
・メモリデバイスのリードレイテンシが3クロックサイクルであること
・メモリデバイスのライトレイテンシが2クロックサイクルであること
一方、コマンド発行タイミング制御回路952はコマンド発行まで5クロックサイクルであるという情報を受け取り、5クロックサイクル後にコマンド発行許可を出す。
これにより、コマンド発行制御回路950はチップセレクト信号901をアサートして書き込みコマンドを発行する(T8)。コマンド発行制御回路950はコマンドを発行すると同時に、アクセス方向バッファ921の情報を先行アクセス方向バッファ911に設定する。
コマンド発行制御回路950が発行した書き込みコマンドは、1.5クロックサイクル遅延してメモリデバイス992に受信される(B9)。データ発行制御回路960はコマンド発行制御回路950が書き込みコマンドを発行したタイミングからレイテンシ情報保持回路940の保持する書き込みレイテンシ2クロックサイクル経過した後、データ信号906をドライブする(T11)。データ発行制御回路960が発行したデータは1.5クロックサイクル遅延してメモリデバイス992に受信される(B11〜B13)。
以上、読み出しをしてから書き込みをする場合のみ詳細に動作を説明したが、書き込みをしてから書き込み、書き込みをしてから読み出し、読み出しをしてから読み出しの場合も同様である。即ち、コマンド発行間隔算出回路951が上述したコマンド発行間隔算出方法により算出したコマンド発行間隔に従って、コマンド発行タイミング制御回路952が発行許可を出す。そして、コマンド発行制御回路950がコマンドを発行することで、データ信号906のドライブが衝突しないでデータ信号906を最短でドライブすることができる。
第2の実施形態では、配線遅延が異なることに起因してメモリデバイス毎のアクセスレイテンシが異なる場合に対しての動作を説明した。しかし、メモリデバイス毎のレイテンシが異なる場合においても同様にコマンド発行間隔を算出することでデータ信号のドライブが衝突しないでデータ信号を最短でドライブすることができる。
また、第2の実施形態では、2つのメモリデバイスが接続された場合を示しているが、本発明はこれだけに限らず、接続されるデバイスが3デバイス以上の場合においても適用することができる。
尚、本発明は複数の機器(例えば、ホストコンピュータ,インターフェース機器,リーダ,プリンタなど)から構成されるシステムに適用しても、1つの機器からなる装置(例えば、複写機,ファクシミリ装置など)に適用しても良い。
また、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記録媒体を、システム或いは装置に供給し、そのシステム或いは装置のコンピュータ(CPU若しくはMPU)が記録媒体に格納されたプログラムコードを読出し実行する。これによっても、本発明の目的が達成されることは言うまでもない。
この場合、コンピュータ読み取り可能な記録媒体から読出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記録媒体は本発明を構成することになる。
このプログラムコードを供給するための記録媒体として、例えばフレキシブルディスク,ハードディスク,光ディスク,光磁気ディスク,CD−ROM,CD−R,磁気テープ,不揮発性のメモリカード,ROMなどを用いることができる。
また、コンピュータが読出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、次の場合も含まれることは言うまでもない。即ち、プログラムコードの指示に基づき、コンピュータ上で稼働しているOS(オペレーティングシステム)などが実際の処理の一部又は全部を行い、その処理により前述した実施形態の機能が実現される場合である。
更に、記録媒体から読出されたプログラムコードがコンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込む。その後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部又は全部を行い、その処理により前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
従来例におけるメモリアクセス制御回路の一例を示すブロック図である。 従来例において、上述したコマンド発行間隔算出方法で算出したコマンド発行間隔を示す図である。 従来例におけるコマンド発行時の動作例1を示すタイミングチャートである。 従来例におけるコマンド発行時の動作例2を示すタイミングチャートである。 第1の実施形態におけるメモリアクセス制御装置の一例を示すブロック図である。 第1の実施形態におけるコマンド発行算出方法で算出したコマンド発行間隔を示す図である。 第1の実施形態におけるコマンド発行時の動作例1を示すタイミングチャートである。 第1の実施形態におけるコマンド発行時の動作例2を示すタイミングチャートである。 第2の実施形態におけるメモリアクセス制御装置の一例を示すブロック図である。
符号の説明
500 メモリアクセス制御装置
510 先行コマンド情報保持回路
511 先行アクセス方向バッファ
512 先行アクセスデバイスバッファ
520 コマンド情報保持回路
521 アクセス方向バッファ
522 アクセスデバイスバッファ
530 コマンド間隔情報保持回路
531 コマンド間隔バッファ
540 レイテンシ情報保持回路
550 コマンド発行制御回路
551 コマンド発行間隔選択回路
552 コマンド発行タイミング制御回路
560 データ発行制御回路
570 データ受信制御回路
580 メモリアクセスインターフェース
591 メモリデバイス
592 メモリデバイス

Claims (8)

  1. レイテンシの異なる複数のメモリデバイスへのリードアクセス又はライトアクセスの種別のコマンドを制御するメモリアクセス制御装置であって、
    前記コマンドを発行することで前記複数のメモリデバイスにアクセスするアクセス手段と、
    先に発行した第1のコマンドの種別と該第1のコマンドが発行されたメモリデバイスの情報と、次に発行する第2のコマンドの種別と該第2のコマンドが発行されるメモリデバイスの情報とを保持する保持手段と、
    前記第1のコマンドのコマンド種別と該第1のコマンドが発行されたメモリデバイスの情報と、次に発行する第2のコマンドのコマンド種別と該第2のコマンドを発行するメモリデバイスの情報と、に基づいて前記アクセス手段によって前記第2のコマンドを発行するまでのコマンド発行間隔を設定する設定手段と、
    前記設定されたコマンド発行間隔に従って前記第2のコマンドの発行タイミングを制御する制御手段と、
    を有することを特徴とするメモリアクセス制御装置。
  2. 前記設定手段は、前第1のコマンド及び第2のコマンドのレイテンシ情報、前記複数のメモリデバイスへの配線遅延の組み合わせに応じて、保持されている複数のコマンド間隔値からコマンド間隔値を選択して前記コマンド発行間隔として設定することを特徴とする請求項1に記載のメモリアクセス制御装置。
  3. 前記設定手段は、少なくとも前記第1のコマンド、前記第1のコマンド及び前記第2のコマンドのレイテンシ情報、前記複数のメモリデバイスへの配線遅延から、コマンド間隔値を算出し、前記コマンド発行間隔として設定することを特徴とする請求項1に記載のメモリアクセス制御装置。
  4. 前記制御手段は、第1のコマンドによりアクセスしたメモリデバイスと第2のコマンドによりアクセスするメモリデバイスのレイテンシに応じて、前記アクセス手段により第2のコマンドを発行するタイミングを制御することを特徴とする請求項1に記載のメモリアクセス制御装置。
  5. 前記制御手段は、第1のコマンドによりアクセスしたメモリデバイスと第2のコマンドによりアクセスするメモリデバイスの配線遅延に応じて、前記アクセス手段により第2のコマンドを発行するタイミングを制御することを特徴とする請求項1に記載のメモリアクセス制御装置。
  6. 前記複数のメモリデバイスは共通のデータ信号線で接続され、当該共通のデータ信号線に対して前記アクセス手段がコマンドに基づくドライブを制御することを特徴とする請求項1に記載のメモリアクセス制御装置。
  7. 前記メモリデバイス毎に、前記第1のコマンドがリードアクセスかライトアクセスか、前記第2のコマンドがリードアクセスかライトアクセスか、に応じた、第2のコマンドを発行する間隔を保持する間隔保持手段を更に有することを特徴とする請求項1に記載のメモリアクセス制御装置。
  8. リードアクセス又はライトアクセスの種別のコマンドを発行することで複数のメモリデバイスにアクセスするアクセス手段と、先に発行した第1のコマンドの種別と該第1のコマンドが発行されたメモリデバイスの情報と、次に発行する第2のコマンドの種別と該第2のコマンドが発行されるメモリデバイスの情報とを保持する保持手段と、を備え、レイテンシの異なる前記複数のメモリデバイスへのアクセスを制御するメモリアクセス制御装置にて実行されるメモリアクセス制御方法であって、
    前記第1のコマンドのコマンド種別と当該第1のコマンドが発行されたメモリデバイスの情報と、次に発行する第2のコマンドのコマンド種別と該第2のコマンドを発行するメモリデバイスの情報と、に基づいて前記アクセス手段によって前記第2のコマンドを発行するまでのコマンド発行間隔を設定する設定工程と、
    前記設定されたコマンド発行間隔に従って前記第2のコマンドの発行タイミングを制御する制御工程と、
    を有することを特徴とするメモリアクセス制御方法。
JP2007260357A 2007-10-03 2007-10-03 メモリアクセス制御装置及びメモリアクセス制御方法 Expired - Fee Related JP5188134B2 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP2007260357A JP5188134B2 (ja) 2007-10-03 2007-10-03 メモリアクセス制御装置及びメモリアクセス制御方法
US12/208,001 US8516214B2 (en) 2007-10-03 2008-09-10 Memory access control device, command issuing device, and method
CN201210233110.3A CN102841879A (zh) 2007-10-03 2008-09-27 存储器访问控制装置、存储器系统和存储器访问控制方法
CN200810148861.9A CN101403958A (zh) 2007-10-03 2008-09-27 存储器访问控制装置、命令发出装置和方法
US13/939,099 US8762676B2 (en) 2007-10-03 2013-07-10 Memory access control device, command issuing device, and method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007260357A JP5188134B2 (ja) 2007-10-03 2007-10-03 メモリアクセス制御装置及びメモリアクセス制御方法

Publications (3)

Publication Number Publication Date
JP2009093227A JP2009093227A (ja) 2009-04-30
JP2009093227A5 JP2009093227A5 (ja) 2010-08-26
JP5188134B2 true JP5188134B2 (ja) 2013-04-24

Family

ID=40524307

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007260357A Expired - Fee Related JP5188134B2 (ja) 2007-10-03 2007-10-03 メモリアクセス制御装置及びメモリアクセス制御方法

Country Status (3)

Country Link
US (2) US8516214B2 (ja)
JP (1) JP5188134B2 (ja)
CN (2) CN102841879A (ja)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9256384B2 (en) * 2013-02-04 2016-02-09 Avago Technologies General Ip (Singapore) Pte. Ltd. Method and system for reducing write latency in a data storage system by using a command-push model
JP6700739B2 (ja) * 2015-11-24 2020-05-27 キヤノン株式会社 コントローラおよび制御方法
US10146681B2 (en) 2015-12-24 2018-12-04 Intel Corporation Non-uniform memory access latency adaptations to achieve bandwidth quality of service
US10275352B1 (en) * 2017-12-28 2019-04-30 Advanced Micro Devices, Inc. Supporting responses for memory types with non-uniform latencies on same channel
KR102655360B1 (ko) * 2018-12-13 2024-04-05 에스케이하이닉스 주식회사 컨트롤러, 데이터 저장 장치 및 그것의 동작 방법
KR20220105890A (ko) * 2021-01-21 2022-07-28 삼성전자주식회사 커맨드가 삽입된 데이터를 공유된 채널 양방향으로 전송할 수 있는 스토리지 장치 및 그것의 동작 방법
CN117174160A (zh) * 2022-05-26 2023-12-05 长鑫存储技术有限公司 指令的测试方法、装置、测试平台及可读存储介质
US11977465B2 (en) 2022-05-26 2024-05-07 Changxin Memory Technologies, Inc. Method for testing a command, an apparatus for testing a command and a readable storage medium
JP7433571B1 (ja) 2023-08-04 2024-02-19 三菱電機株式会社 遅延装置、メモリ制御システム、遅延方法及びプログラム

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5821736B2 (ja) * 1977-08-10 1983-05-02 沖電気工業株式会社 メモリ制御方式
JP2972214B2 (ja) * 1988-10-24 1999-11-08 日本電気株式会社 情報処理装置
US6697926B2 (en) * 2001-06-06 2004-02-24 Micron Technology, Inc. Method and apparatus for determining actual write latency and accurately aligning the start of data capture with the arrival of data at a memory device
JP2003173290A (ja) * 2001-12-06 2003-06-20 Ricoh Co Ltd メモリ制御装置
US6819599B2 (en) * 2002-08-01 2004-11-16 Micron Technology, Inc. Programmable DQS preamble
JPWO2004025478A1 (ja) * 2002-09-11 2006-01-12 富士通株式会社 メモリブロック間のレイテンシ差を活用するデータ処理装置および方法
US6963516B2 (en) * 2002-11-27 2005-11-08 International Business Machines Corporation Dynamic optimization of latency and bandwidth on DRAM interfaces
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
JP2009093227A (ja) 2009-04-30
US8516214B2 (en) 2013-08-20
CN101403958A (zh) 2009-04-08
US20090094432A1 (en) 2009-04-09
US8762676B2 (en) 2014-06-24
CN102841879A (zh) 2012-12-26
US20130297896A1 (en) 2013-11-07

Similar Documents

Publication Publication Date Title
JP5188134B2 (ja) メモリアクセス制御装置及びメモリアクセス制御方法
KR101105489B1 (ko) Nand 플래시 메모리의 커맨드 기반 제어
TWI379302B (en) High speed interface for non-volatile memory
US11245397B2 (en) Apparatus for transmitting and receiving a signal, a method of operating the same, a memory device, and a method of operating the memory device
US8707002B2 (en) Control apparatus
US7725621B2 (en) Semiconductor device and data transfer method
US20240134574A1 (en) Asynchronous arbitration across clock domains for register writes in an integrated circuit chip
US20110082956A1 (en) Information processing system and control method thereof
US20070038795A1 (en) Asynchronous bus interface and processing method thereof
JP5349775B2 (ja) メモリコントローラ及びその制御方法
US6918016B1 (en) Method and apparatus for preventing data corruption during a memory access command postamble
US20060195665A1 (en) Access control device, method for changing memory addresses, and memory system
US20090235026A1 (en) Data transfer control device and data transfer control method
US6317842B1 (en) Method and circuit for receiving dual edge clocked data
KR100843199B1 (ko) 고속 아이.디.이. 인터페이스 장치 및 그 방법
US20030217218A1 (en) Interface for devices having different data bus widths and data transfer method using the interface
US7523339B2 (en) Information processing apparatus and media storage apparatus using the same
EP1988463A1 (en) Memory control apparatus and memory control method
JP2009123141A (ja) I/oデバイス、ホストコントローラおよびコンピュータシステム
US20010002481A1 (en) Data access unit and method therefor
JP2002366509A (ja) ダイレクトメモリアクセスコントローラおよびそのアクセス制御方法
JP4840963B2 (ja) バスシステム及びその制御方法
KR100690597B1 (ko) 이중모드 직접메모리접근을 지원하는 중앙처리장치를이용한 단일모드 직접메모리접근 구현 방법
JP2011048691A (ja) 情報処理装置および制御装置
JP2008242598A (ja) 外部に接続される電子機器の動作を制御するインタフェースコントローラおよび制御方法

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

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130122

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20160201

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20160201

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees