JP3922487B2 - メモリ制御装置および方法 - Google Patents
メモリ制御装置および方法 Download PDFInfo
- Publication number
- JP3922487B2 JP3922487B2 JP02365198A JP2365198A JP3922487B2 JP 3922487 B2 JP3922487 B2 JP 3922487B2 JP 02365198 A JP02365198 A JP 02365198A JP 2365198 A JP2365198 A JP 2365198A JP 3922487 B2 JP3922487 B2 JP 3922487B2
- Authority
- JP
- Japan
- Prior art keywords
- command
- data
- bank
- transfer
- read
- 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 - Lifetime
Links
Images
Landscapes
- Dram (AREA)
- Memory System (AREA)
Description
【発明の属する技術分野】
本発明は、メモリ制御装置および方法に関し、より特定的には、クロックに同期してデータ転送を行なうダイナミック・ランダム・アクセス・メモリ(Dynamic Random Access Memory;DRAM)、すなわち、シンクロナスDRAM(Synchronous DRAM;SDRAM)を制御する回路において、SDRAMの実質のバスバンド幅を向上させるメモリ制御装置および方法に関する。
【0002】
【従来の技術】
従来から、データを記憶する装置の一つとして、SDRAMが存在する。このSDRAMは、クロックに同期した連続的なデータ転送が可能であり、バースト転送を指定すると、指定したバイト数分のデータ転送を1クロック単位で連続して行うことができる。また、一般的に、SDRAM内の記憶領域は、図7に示すように2つの領域(バンクA,B)に分割した構成をとっている。このように、記憶領域を分割するのは、バンクごとに切り替えてこのバースト転送を行うことで異なるページにアクセスする際に必要となるプリチャージ動作を隠蔽することが可能となり、転送レートを向上することができるからである。
【0003】
なお、SDRAMの仕様に関して記載されている文献としては、例えば「NEC μPD4516421,μPD4516821,μPD4516161データ・シート」(1995,NEC)や、特開平6−76567号公報「半導体記憶装置および同期型半導体記憶装置」等が存在する。
【0004】
このような高性能のSDRAMを効率よく制御するメモリ制御装置として、従来から以下に示すような装置が用いられている。
図8は、従来のメモリ制御装置の構成の一例を示すブロック図である。図8において、従来のメモリ制御装置は、転送要求ユニット81と、アドレス生成部82と、コマンド生成部83と、データ処理部84と、SDRAM85とを備える。
【0005】
転送要求ユニット81は、SDRAM85との間でデータ転送を行なうために、開始アドレス,転送サイズ,リード/ライト等のコマンドをアドレス生成部82へ出力する。アドレス生成部82は、転送要求ユニット81から受け取ったコマンドに基づいて、開始アドレス,バースト長(1回のリードコマンドで連続的に転送可能なサイズを示す),リード/ライト等の複数の制御信号を生成し、コマンド生成部83へ出力する。コマンド生成部83は、アドレス生成部82から受け取った制御信号に基づいて、クロック(clock;CLK),ロー・アドレス・ストローブ(row address strobe;RAS),コラム・アドレス・ストローブ(column address strobe;CAS),ライト・イネーブル(write enable;WE),アドレス指定等の制御コマンドを生成し、SDRAM85およびデータ処理部84を制御する。データ処理部84は、コマンド生成部83から受ける制御コマンドに従って、SDRAM85からのリードデータを転送要求ユニット81へ転送し、ライトデータを転送要求ユニット81からSDRAM85へ転送する。
【0006】
【発明が解決しようとする課題】
しかしながら、上記従来のメモリ制御装置の構成によるSDRAM85の制御においては、データ転送の条件によってSDRAM85の性能を効率よく利用できない場合が発生する。
【0007】
例えば、記憶領域がバンクAとバンクBとに分割されているSDRAM85において、図9に示すように、バンクAに存在するデータa1〜a2とバンクBに存在するデータb1〜b8の合計10個のデータを、バンク境界を超えて連続して読み出す場合である。
【0008】
上記のような場合、バンクAのデータa2とバンクBのデータb1とは、同時にリード処理を行うことができないため、コマンド生成部83からSDRAM85へ発行されるコマンドの順序は、図10に示すようになる。
なお、図10において、バンクAに対するプリチャージコマンドを“Pa”と、バンクBに対するプリチャージコマンドを“Pb”と、バンクAに対するアクティブコマンドを“Aa”と、バンクBに対するアクティブコマンドを“Ab”と、バンクAに対するリードコマンドを“Ra”と、バンクBに対するリードコマンドを“Rb”と表している。また、CASレイテンシは「3」クロック、バースト長は「8」データとする。
【0009】
ここで、プリチャージコマンドとは、SDRAM85内のデータを一時的に待機させる場所を初期化するコマンドである。アクティブコマンドとは、上記一時待機場所にリード対象のデータを書き込むコマンドである。リードコマンドとは、上記一時待機場所に書き込まれているデータを読み出すコマンドである。
また、同一バンクに対するプリチャージコマンド,アクティブコマンドおよびリードコマンドを発行できる間隔(Pa⇒Aa⇒Ra、または、Pb⇒Ab⇒Rbの間隔)、および、バンクAとバンクBとのアクティブコマンドの発行間隔(Aa⇔Abの間隔)は、最低遷移時間であるCASレイテンシに制約されるため3クロックとなる。
【0010】
図10を参照して、コマンド生成部83は、まず、データa1,a2が存在するバンクAに対し、当該データのリードを行うべく、Paコマンドを発行する(第0サイクル)。続けて、バンクAに対してAaコマンドを発行したいのだが、CASレイテンシの制約により連続して発行できないため、この間を利用してバンクBに対してPbコマンドを発行しておく(第1サイクル)。その後、Paコマンドの発行後3クロック目に、Aaコマンドを発行する(第3サイクル)。
【0011】
次に発行可能なコマンドを考えると、バンクAに対するRaコマンド、または、バンクBに対するAbコマンドであるが、双方のコマンドともCASレイテンシに制約されるため、3クロックの経過を待たなければならない。ここで、コマンド生成部83は、アドレス生成部82から送られて来た制御信号の順に処理を実行するルールがある。従って、コマンド生成部83は、3クロックの経過を待って、まず先にRaコマンドを発行し(第6サイクル)、その後Abコマンドを発行することになる(第7サイクル)。このため、Rbコマンドは、早くても第10サイクルの発行となる。
【0012】
以上の処理により、データa1,a2は、Raコマンド発行から3クロック後の第9サイクルから、データb1〜b8は、Rbコマンド発行から3クロック後の第13サイクルから順にリードされる。従って、すべてのデータリードが終了するのは、第20サイクルとなる。
【0013】
このように、従来のメモリ制御装置では、上述した固定的なルールおよび制約があるため、バンクAのデータリードとバンクBのデータリードとが連続的に行えず(図10、第11〜第12サイクル)、すべてのデータリードの終了までに時間がかかってしまう場合が発生する。
すなわち、SDRAM85のある任意のアドレスからバンク境界を超えて連続的にデータ転送を行う場合、一義的に決定されるコマンド発行の手順に起因してデータ転送効率が悪くなるという問題が生じる。
【0014】
それ故、本発明の目的は、アクセス内容とバンク境界との関係に対応してSDRAMへのコマンド発行順序を常に最適化し、SDRAMのデータ転送性能を最大限に発揮できるメモリ制御装置を提供することである。
【0015】
【課題を解決するための手段および発明の効果】
第1の発明は、複数のバンクから構成され、クロックを使用してデータの読み書きを行う同期型メモリ(以下、SDRAMという)を、制御するメモリ制御装置であって、
データの読み書きに関するコマンドを出力する転送要求手段と、
コマンドを入力し、当該コマンドに従って予め定めた制御信号を生成して出力すると共に、リードアクセスの最初の転送バイト数を出力するアドレス生成手段と、
クロックを発生して出力すると共に、制御信号および転送バイト数を入力し、当該制御信号に従って予め定めた制御コマンドを生成して出力し、SDRAMを制御するコマンド生成手段と、
制御コマンドを入力し、当該制御コマンドに従って転送要求手段とSDRAMとの間のデータ転送を仲介するデータ処理手段とを備え、
異なるバンクに対してバンク境界を超えて連続的にデータリードを行う際、コマンド生成手段は、転送バイト数に応じて最初のバンクに関するリードコマンドと後続のバンクに関するアクティブコマンドの発行順序を制御することを特徴とする。
【0016】
上記のように、第1の発明は、コマンド生成手段がアドレス生成手段において生成した転送バイト数に基づいて、最初のバンクに関するリードコマンドと後続のバンクに関するアクティブコマンドのどちらを先に発行するかを判断してSDRAMの処理を制御する。
これにより、異なるバンクに対して連続したデータリードを行う場合に、常にデータ転送サイクルが最短で終了するようにコマンド発行を行うことができ、2つの連続したアクセスに必要なサイクル数を削減して、SDRAMの実効転送レートを向上することができる。
【0017】
第2の発明は、第1の発明において、コマンド生成手段は、
転送バイト数が各コマンド間の最低遷移クロック数より大きい場合は、最初のバンクに関するリードコマンドを後続のバンクに関するアクティブコマンドより先に発行し、転送バイト数が各コマンド間の最低遷移クロック数より小さい場合は、後続のバンクに関するアクティブコマンドを最初のバンクに関するリードコマンドより先に発行することを特徴とする。
【0018】
上記のように、第2の発明は、第1の発明におけるコマンド生成手段での典型的な制御方法を示したものである。
【0019】
第3の発明は、複数のバンクから構成され、クロックを使用してデータの読み書きを行う同期型メモリ(以下、SDRAMという)を、制御するメモリ制御装置であって、
データの読み書きに関するコマンドを出力する転送要求手段と、
コマンドを入力し、当該コマンドに従って予め定めた制御信号を生成して出力すると共に、複数のバンクのうち処理を行う一つのバンクに関するリードデータの転送サイズを出力するアドレス生成手段と、
クロックを発生して出力すると共に、制御信号を入力し、当該制御信号に従って予め定めた制御コマンドを生成して出力し、SDRAMを制御するコマンド生成手段と、
コマンド生成手段のリードコマンド発行回数をカウントすると共に、転送サイズを入力し、当該カウントごとに当該転送サイズからバースト長を減算するカウンタと、
制御コマンドを入力し、当該制御コマンドに従って転送要求手段とSDRAMとの間のデータ転送を仲介するデータ処理手段とを備え、
カウンタは、減算後の転送サイズがバースト長以下に達した場合にコマンド生成手段へその旨を通知し、コマンド生成手段は、当該通知に応じて次回のリードコマンドを、リード処理が終了すれば自動的にプリチャージが行われるプリチャージ付きリードコマンドとして発行することを特徴とする。
【0020】
上記のように、第3の発明は、カウンタがコマンド生成手段のリードコマンドの発行回数を計数することで、複数のバンクのうち処理を行う一つのバンクに対する最後のデータ転送を検出し、コマンド生成手段がこの検出結果に従ってプリチャージ付きリードコマンドを発行してSDRAMの処理を制御する。
これにより、プリチャージ付きコマンドが発行されたバンクは、一方のデータに関してリード処理が完了した後に他方のデータに関するプリチャージが自動的に実行されるため、プリチャージコマンドの発行タイミングが後続の他のコマンドの発行タイミングと一致した場合でもプリチャージ処理の開始が遅れることがなく、SDRAMの実効転送レートを向上することができる。
【0021】
第4の発明は、複数のバンクから構成され、クロックを使用してデータの読み書きを行う同期型メモリ(以下、SDRAMという)を、制御するメモリ制御方法であって、
異なるバンクに対してバンク境界を超えて連続的にデータリードを行う際、
データリードに関するコマンドを出力するステップと、
コマンドを入力し、当該コマンドに従って予め定めた制御信号を生成して出力すると共に、リードアクセスの最初の転送バイト数を出力するステップと、
制御信号および転送バイト数に基づいて制御コマンドを発行するにあたり、当該転送バイト数に応じて最初のバンクに関するリードコマンドと後続のバンクに関するアクティブコマンドの発行順序を制御するステップとを備える。
【0022】
上記のように、第4の発明は、リードアクセスの最初の転送バイト数に応じて、最初のバンクに関するリードコマンドと後続のバンクに関するアクティブコマンドのどちらを先に発行するかを判断してSDRAMの処理を制御する。
これにより、異なるバンクに対して連続したデータリードを行う場合に、常にデータ転送サイクルが最短で終了するようにコマンド発行を行うことができ、2つの連続したアクセスに必要なサイクル数を削減して、SDRAMの実効転送レートを向上することができる。
【0023】
第5の発明は、第4の発明において、制御コマンドを生成して出力するステップは、
転送バイト数が各コマンド間の最低遷移クロック数より大きい場合は、最初のバンクに関するリードコマンドを後続のバンクに関するアクティブコマンドより先に発行し、転送バイト数が各コマンド間の最低遷移クロック数より小さい場合は、後続のバンクに関するアクティブコマンドを最初のバンクに関するリードコマンドより先に発行することを特徴とする。
【0024】
上記のように、第5の発明は、第4の発明における制御コマンドを生成するステップでの典型的な制御方法を示したものである。
【0025】
第6の発明は、複数のバンクから構成され、クロックを使用してデータの読み書きを行う同期型メモリ(以下、SDRAMという)を、制御するメモリ制御方法であって、
データの読み書きに関するコマンドを出力するステップと、
コマンドに従って予め定めた制御信号を生成して出力すると共に、複数のバンクのうち処理を行う一つのバンクに関するリードデータの転送サイズを出力するステップと、
SDRAMに対するリードコマンド発行回数をカウントするステップと、
カウントごとに転送サイズからバースト長を減算し、当該減算後の転送サイズが当該バースト長以下に達した場合は、予め定めた通知を出力するステップと、
制御信号および通知に基づいて制御コマンドを発行するにあたり、当該通知があった場合は次回のリードコマンドを、リード処理が終了すれば自動的にプリチャージが行われるプリチャージ付きリードコマンドとして発行するステップとを備える。
【0026】
上記のように、第6の発明は、SDRAMに対するリードコマンドの発行回数を計数することで、複数のバンクのうち処理を行う一つのバンクに対する最後のデータ転送を検出し、この検出結果に従ってプリチャージ付きリードコマンドを発行してSDRAMの処理を制御する。
これにより、プリチャージ付きコマンドが発行されたバンクは、一方のデータに関してリード処理が完了した後に他方のデータに関するプリチャージが自動的に実行されるため、プリチャージコマンドの発行タイミングが後続の他のコマンドの発行タイミングと一致した場合でもプリチャージ処理の開始が遅れることがなく、SDRAMの実効転送レートを向上することができる。
【0027】
【発明の実施の形態】
以下、本発明の実施形態について図を参照して説明する。
(第1の実施形態)
図1は、本発明の第1の実施形態に係るメモリ制御装置の構成を示すブロック図である。図1において、本第1の実施形態のメモリ制御装置は、転送要求ユニット11と、アドレス生成部12と、コマンド生成部13と、データ処理部14と、SDRAM15とを備える。
【0028】
本発明の第1の実施形態に係るメモリ制御装置は、SDRAM15内の一方のバンク(以下、バンクAと表現する)のアドレスからバンク境界を超えて他方のバンク(以下、バンクBと表現する)のアドレスへと連続的にデータ転送を行う場合(図9を参照)、特に、最初に行うバンクAに関するデータ転送のバイト数が、バースト長以下である場合に有効である。
【0029】
転送要求ユニット11は、読み出し(または、書き込み)を行うデータに関する開始アドレス(仮想アドレス),転送サイズおよびリード(または、ライト)の各コマンドをアドレス生成部12へ出力する。
【0030】
アドレス生成部12は、転送要求ユニット11からのコマンドを受けて、複数のデータ転送命令に分割した開始アドレス(物理アドレス),バースト長およびリード(または、ライト)の各制御信号を生成し、コマンド生成部13へ出力する。また、アドレス生成部12は、リードアクセスの最初の転送バイト数がバースト長の境界に対して何バイトあるかを表す転送バイト数情報を生成し、コマンド生成部13へ出力する。
【0031】
コマンド生成部13は、クロック、およびアドレス生成部12から受けた制御信号に従ってロー/カラムアドレスを指示する制御コマンドを生成して、SDRAM15に出力する。この際、コマンド生成部13は、転送バイト数情報のバイト数を判断して、SDRAM15のデータ転送レートを向上することができる命令から実行するようにSDRAM15を制御する。すなわち、コマンド生成部13は、上述のようにSDRAM15のバンク境界を超えてデータリードを行う場合、バンクAに対するリード処理とバンクBに対するアクティブ処理のどちらを先に実行するかを判断し、SDRAM15を制御するのである。具体的には、バンクAからリードするデータの転送バイト数が、CASレイテンシのサイクル数より大きい場合は、バンクAのデータの読み出し開始を優先すべくリードコマンドを実行し、CASレイテンシのサイクル数より小さい場合は、すべてのデータの読み出しを最短クロック数で完了すべくアクティブコマンドを実行する。
また、コマンド生成部13は、データ処理部14に対し、リード(または、ライト)を指示する制御コマンドを出力する。
【0032】
データ処理部14は、コマンド生成部13からデータリードの制御コマンドを受けて、SDRAM15から上記クロックに同期してデータを読み出し、転送要求ユニット11へ転送する(または、データライトの制御コマンドを受けて、転送要求ユニット11からデータを読み出し、上記クロックに同期してSDRAM15へ転送する)。
【0033】
SDRAM15は、コマンド生成部13から出力される制御コマンドを受けて動作するシンクロナス・ダイナミック・ランダム・アクセス・メモリである。
【0034】
次に、本第1の実施形態に係るメモリ制御装置によってデータ転送効率が向上することを、具体的なデータ転送の一例を挙げて説明する。
図2〜図4は、バンク境界を超えてデータを連続して読み出す場合におけるデータリードタイミングの一例を示す図である。
【0035】
図2は、バンクAのデータa1〜a2とバンクBのデータb1〜b8の合計10個のデータを、バンク境界を超えて連続して読み出す場合における2通りのデータリードタイミングを示す図である。図3は、バンクAのデータa1〜a3とバンクBのデータb1〜b8の合計11個のデータを、バンク境界を超えて連続して読み出す場合における2通りのデータリードタイミングを示す図である。図4は、バンクAのデータa1〜a4とバンクBのデータb1〜b8の合計12個のデータを、バンク境界を超えて連続して読み出す場合における2通りのデータリードタイミングを示す図である。
また、図2〜図4のいずれについても、CASレイテンシは「3」クロックと、バースト長は「8」データとする。
【0036】
なお、図2〜図4において、バンクAに対するプリチャージコマンドを“Pa”と、バンクBに対するプリチャージコマンドを“Pb”と、バンクAに対するアクティブコマンドを“Aa”と、バンクBに対するアクティブコマンドを“Ab”と、バンクAに対するリードコマンドを“Ra”と、バンクBに対するリードコマンドを“Rb”と表している。
【0037】
まず、図2〜図4が示す内容をそれぞれ説明する。
図2(a)は、前述した図10の場合と同様であり、先にRaコマンドを発行しその後Abコマンドを発行することで、データリードがすべて終了するまでに21サイクルがかかる。一方、図2(b)は、先にAbコマンドを発行しその後Raコマンドを発行することで、最初のデータを読み出し開始するサイクルは遅れるが、データリードがすべて終了するのに20サイクルで済んでいる。
図3(a)および(b)においては、先にRaコマンドを発行しその後Abコマンドを発行する場合も、先にAbコマンドを発行しその後Raコマンドを発行する場合も何ら変わりがなく、どちらの場合であってもデータリードがすべて終了するまでに21サイクルかかる。
図4(a)は、先にRaコマンドを発行しその後Abコマンドを発行することで、データリードがすべて終了するまでに21サイクルがかかる。これに対し、図4(b)では、先にAbコマンドを発行しその後Raコマンドを発行することで、逆にデータリードがすべて終了するのに22サイクルかかっている。
【0038】
このように、ある任意のアドレスからバンク境界を超えてデータ転送を行う場合、最初に行うバンクAからのデータ転送バイト数によって、RaコマンドまたはAbコマンドのどちらを先に発行するかにより、すべてのデータリードが終了するのに要するサイクル数が異なる。上記図2〜図4の具体例においては、転送データ長がCASレイテンシ「3」より大きいか小さいかにより変化することがわかる。
【0039】
従って、従来のメモリ制御装置では、固定的なルールおよび制約により、Raコマンドを先に発行しその後Abコマンドを発行する手順しか行えないため(図2(a),図3(a)および図4(a))、場合によってはデータ転送効率が劣化するということが発生する。
【0040】
これに対し、本メモリ制御装置は、上述したように、アドレス生成部12において最初にバンクAに対して行う転送バイト数を算出し、転送バイト数情報としてコマンド生成部13に送出する。そして、コマンド生成部13は、最初にバンクAに対して行う転送バイト数情報として得た転送バイト数を判断し、予め定められたCASレイテンシと比較することにより、SDRAM15を制御する。
例えば、上記具体例の場合においては、コマンド生成部13には、予めしきい値「3」を与えておく。そして、コマンド生成部13は、入力した転送バイト数Xが、X<3であればAbコマンドを先に発行し(図2(b))、X≧3であればRaコマンドを先に発行する(図3(a)および図4(a))ようにSDRAM15を制御してやれば、SDRAM15のデータ転送効率を向上することが可能となる。
【0041】
以上のように、本発明の第1の実施形態に係るメモリ制御装置は、コマンド生成部13が、アドレス生成部12において生成した転送バイト数情報に基づいて、RaコマンドとAbコマンドのどちらを先に発行するかを判断してSDRAM15の処理を制御する。
これにより、異なるバンクに対して連続したデータリードを行う場合に、常にデータ転送サイクルが最短で終了するようにコマンド発行を行うことができ、2つの連続したアクセス(バンクAに対するアクセスとバンクBに対するアクセス)に必要なサイクル数を削減して、SDRAM15の実効転送レートを向上することができる。
【0042】
なお、上記具体的な実施例においては、条件としてCASレイテンシが「3」クロック、バースト長が「8」データである場合を述べたが、本メモリ制御装置の適用はこれに限られず、他の条件においても上記と同様の考え方でコマンドを制御することによりデータ転送サイクルを最適化することが可能である。
【0043】
(第2の実施形態)
図5は、本発明の第2の実施形態に係るメモリ制御装置の構成を示すブロック図である。図5において、本第2の実施形態のメモリ制御装置は、転送要求ユニット51と、アドレス生成部52と、コマンド生成部53と、データ処理部54と、SDRAM55と、カウンタ56とを備える。
【0044】
本発明の第2の実施形態に係るメモリ制御装置は、SDRAM55内のバンクAのアドレスからバンク境界を超えてバンクBのアドレスへと連続的にデータ転送を行い、さらに続いて、別のバンクAのアドレスからデータ転送を行う場合に有効である。
【0045】
転送要求ユニット51は、読み出し(または、書き込み)を行うデータに関する開始アドレス(仮想アドレス),転送サイズおよびリード(または、ライト)の各コマンドをアドレス生成部52に出力する。
【0046】
アドレス生成部52は、転送要求ユニット51からのコマンドを受けて、複数のデータ転送命令に分割した開始アドレス(物理アドレス),バースト長およびリード(または、ライト)の各制御信号を生成し、コマンド生成部53へ出力する。また、アドレス生成部52は、最初にバンクAに対して転送するデータ転送サイズをカウンタ56に出力する。
【0047】
カウンタ56は、コマンド生成部53におけるリード(または、ライト)の実行回数をカウントし、当該カウントごとにアドレス生成部52から与えられた転送サイズから転送したデータサイズ、すなわち、SDRAM55への一度のバースト命令で転送可能なデータサイズであるバースト長を減算する。そして、カウンタ56は、減算していった転送サイズ(すなわち、転送すべきデータの残り)がバースト長以下になった時に、コマンド生成部53へその旨を通知する。
【0048】
コマンド生成部53は、クロック、およびアドレス生成部52から受けた制御信号に従ってロー/カラムアドレスを指示する制御コマンドを生成して、SDRAM55に出力する。ここで、コマンド生成部53は、カウンタ56から通知を受けた場合には、SDRAM55へ発行するバンクAに対するリード(または、ライト)コマンドを次回のバンクAに対するプリチャージコマンドを付随させたリード(/ライト)コマンドに変換してSDRAM55へ送る。このプリチャージコマンドを付随させたリード(/ライト)コマンドとは、今現在行っているバンクAの転送処理が終了した場合、バンクBの転送処理を行っている間にプリチャージコマンドを発行することなく次回のバンクAに対する処理のプリチャージを行わせるというものである。
また、コマンド生成部53は、データ処理部54に対し、リード(または、ライト)を指示する制御コマンドを出力する。
【0049】
データ処理部54は、コマンド生成部53からデータリードの制御コマンドを受けて、SDRAM55から上記クロックに同期してデータを読み出し、転送要求ユニット51へ転送する(または、データライトの制御コマンドを受けて、転送要求ユニット51からデータを読み出し、上記クロックに同期してSDRAM55へ転送する)。
【0050】
SDRAM55は、コマンド生成部53から出力される制御コマンドを受けて動作するシンクロナス・ダイナミック・ランダム・アクセス・メモリである。
【0051】
次に、本第2の実施形態に係るメモリ制御装置によってデータ転送効率が向上することを、具体的なデータ転送の一例を挙げて、従来のメモリ制御装置でのデータ転送の場合と比較して説明する。
【0052】
図6は、バンクAのデータa1〜a8とバンクBのデータb1〜b4の合計12個のデータをバンク境界を超えて連続して読み出し、さらに続いて、バンクAのデータa9〜a12を読み出す場合における2通りのデータリードタイミングを示す図である。
図6(a)は、図8に示すような従来のメモリ制御装置におけるデータリードタイミングを示している。図6(b)は、本第2の実施形態に係るメモリ制御装置におけるデータリードタイミングを示している。
【0053】
なお、図6において、バンクAに対するプリチャージコマンドを“Pa”と、バンクBに対するプリチャージコマンドを“Pb”と、バンクAに対するアクティブコマンドを“Aa”と、バンクBに対するアクティブコマンドを“Ab”と、バンクAに対するリードコマンドを“Ra”と、バンクBに対するリードコマンドを“Rb”と、バンクAに対するプリチャージ付きリードコマンドを“RawP”と表している。また、図6においては、CASレイテンシは「2」クロックと、バースト長は「4」データとする。
【0054】
図6(a)を参照して、コマンド生成部83は、まず、データa1〜a8が存在するバンクAに対してデータリードを行うべく、Paコマンドを発行する(第0サイクル)。なお、CASレイテンシ間隔(2クロック)を利用して、バンクBに対してもPbコマンドを発行しておく(第1サイクル)。その後、Paコマンドの発行から2クロック後に、Aaコマンドを発行する(第2サイクル)。そして、さらに2クロック後に、1回目のRaコマンドを発行し(第4サイクル)、データa1〜a4の転送を行う(バースト長「4」だからである)。ここで、バンクAのデータ転送の間にAbコマンドを発行し、バンクBをいつでもアクセスできるように準備しておく(第5サイクル)。そして、データa4の転送後にすぐデータa5〜a8のデータ転送が開始できるように、第8サイクルに2回目のRaコマンドを発行する。
次に、コマンド生成部83は、データa8の転送が終了、すなわち、バンクAに関するデータ転送の終了後にバンクBに関するデータb1〜b4の転送をすぐに行えるように、第12サイクルでRbコマンドを発行する。以降、バンクAの別のアドレスに存在するデータa9〜a12の転送に関しては、CASレイテンシに従って、2クロック間隔でPa,AaおよびRaを発行する(第13,第15,第17サイクル)。
【0055】
このように、従来のメモリ制御装置においては、バンクBの転送処理終了と別のバンクAの転送処理開始との間に、データ転送が行われないブランク期間(第18サイクル)が生じる。この原因は、本来なら、第12サイクルにおいてRbコマンドとPaコマンドとを同時に発行したいのだが不可能なため、バンクBのデータリードを優先すべくRbコマンドを先に発行し、その後Paコマンドを発行しているためである。
【0056】
これに対して、本第2の実施形態に係るメモリ制御装置は、以下のような方法によりこの問題を解決している。
なお、上述のとおり、アドレス生成部52は、上記条件からカウンタ56に対して、最初のバンクAに関する転送データa1〜a8の数「8」を転送サイズとして出力する(図5を参照)。
【0057】
図6(b)を参照して、図面上は第5サイクルまでは上記と同様であるが、第4サイクルの1回目のRaコマンドが発行された際、カウンタ56は、アドレス生成部52から得た転送サイズ「8」から「4(データa1〜a4の数)」を減算する。ここで、転送すべき残りデータ、すなわち、上記減算後の転送サイズ(=4)がバースト長(=4)以下となったため、カウンタ56は、コマンド生成部53に対してその旨を通知する。
続いて、コマンド生成部53は、データa4の転送後にすぐデータa5〜a8のデータ転送が開始できるように、第8サイクルに2回目のRaコマンドを発行するのだが、この際、カウンタ56から受けた通知に従って、プリチャージ付きリードであるRawPコマンドを出力する。
【0058】
このRawPコマンドにより、SDRAM55は、データa8の転送が問題なく終了できる第13サイクルにおいて、コマンド生成部53から改めてPaコマンドを受けるまでもなく、自らの判断でプリチャージを行うことができる。
これにより、その後のAaコマンドおよびRaコマンドの発行を1サイクル早く行うことができ(第14,第16サイクル)、その結果、図6(a)の第22サイクルまでに対して第21サイクルまでにすべてのデータ転送を終了することができる。
【0059】
以上のように、本発明の第2の実施形態に係るメモリ制御装置は、カウンタ56がコマンド生成部53が発行するリードコマンドの回数を計数することで、処理を行う1つのバンクに対する最後のデータ転送を検出し、コマンド生成部53がこの検出結果に従ってプリチャージ付きリードコマンドを発行してSDRAM55の処理を制御する。
これにより、プリチャージ付きコマンドが発行されたバンクは、一方のデータに関してリード処理が完了した後に他方のデータに関するプリチャージが自動的に実行されるため、プリチャージコマンドの発行タイミングが後続の他のコマンドの発行タイミングと一致した場合でもプリチャージ処理の開始が遅れることがなく、SDRAM55の実効転送レートを向上することができる。
【0060】
なお、上記具体的な実施例においては、条件としてCASレイテンシが「2」クロック、バースト長が「4」データである場合を述べたが、本メモリ制御装置の適用はこれに限られず、他の条件においても上記と同様の考え方でコマンドを制御することによりデータ転送サイクルを最適化することが可能である。
【図面の簡単な説明】
【図1】本発明の第1の実施形態に係るメモリ制御装置の構成を示すブロック図である。
【図2】バンク境界を超えてデータを連続して読み出す場合におけるデータリードタイミングの一例を示す図である。
【図3】バンク境界を超えてデータを連続して読み出す場合におけるデータリードタイミングの一例を示す図である。
【図4】バンク境界を超えてデータを連続して読み出す場合におけるデータリードタイミングの一例を示す図である。
【図5】本発明の第2の実施形態に係るメモリ制御装置の構成を示すブロック図である。
【図6】バンク境界を超えてデータを連続して読み出す場合におけるデータリードタイミングの一例を示す図である。
【図7】従来のSDRAMの記録領域の構成を示す図である。
【図8】従来のメモリ制御装置の構成を示すブロック図である。
【図9】従来のメモリ制御装置の動作説明に用いるデータ配置を示す図である。
【図10】従来のメモリ制御装置のデータリードタイミングの一例を示す図である。
【符号の説明】
11、51、81…転送要求ユニット
12、52、82…アドレス生成部
13、53、83…コマンド生成部
14、54、84…データ処理部
15、55、85…SDRAM
56…カウンタ
Claims (6)
- 複数のバンクから構成され、クロックを使用してデータの読み書きを行う同期型メモリ(以下、SDRAMという)を、制御するメモリ制御装置であって、
データの読み書きに関するコマンドを出力する転送要求手段と、
前記コマンドを入力し、当該コマンドに従って予め定めた制御信号を生成して出力すると共に、リードアクセスの最初の転送バイト数を出力するアドレス生成手段と、
前記クロックを発生して出力すると共に、前記制御信号および前記転送バイト数を入力し、当該制御信号に従って予め定めた制御コマンドを生成して出力し、前記SDRAMを制御するコマンド生成手段と、
前記制御コマンドを入力し、当該制御コマンドに従って前記転送要求手段と前記SDRAMとの間のデータ転送を仲介するデータ処理手段とを備え、
異なる前記バンクに対してバンク境界を超えて連続的にデータリードを行う際、前記コマンド生成手段は、前記転送バイト数に応じて最初のバンクに関するリードコマンドと後続のバンクに関するアクティブコマンドの発行順序を制御することを特徴とする、メモリ制御装置。 - 前記コマンド生成手段は、
前記転送バイト数が各コマンド間の最低遷移クロック数より大きい場合は、前記最初のバンクに関するリードコマンドを前記後続のバンクに関するアクティブコマンドより先に発行し、前記転送バイト数が各コマンド間の最低遷移クロック数より小さい場合は、前記後続のバンクに関するアクティブコマンドを前記最初のバンクに関するリードコマンドより先に発行することを特徴とする、請求項1に記載のメモリ制御装置。 - 複数のバンクから構成され、クロックを使用してデータの読み書きを行う同期型メモリ(以下、SDRAMという)を、制御するメモリ制御装置であって、
データの読み書きに関するコマンドを出力する転送要求手段と、
前記コマンドを入力し、当該コマンドに従って予め定めた制御信号を生成して出力すると共に、前記複数のバンクのうち処理を行う一つのバンクに関するリードデータの転送サイズを出力するアドレス生成手段と、
前記クロックを発生して出力すると共に、前記制御信号を入力し、当該制御信号に従って予め定めた制御コマンドを生成して出力し、前記SDRAMを制御するコマンド生成手段と、
前記コマンド生成手段のリードコマンド発行回数をカウントすると共に、前記転送サイズを入力し、当該カウントごとに当該転送サイズからバースト長を減算するカウンタと、
前記制御コマンドを入力し、当該制御コマンドに従って前記転送要求手段と前記SDRAMとの間のデータ転送を仲介するデータ処理手段とを備え、
前記カウンタは、前記減算後の転送サイズが前記バースト長以下に達した場合に前記コマンド生成手段へその旨を通知し、前記コマンド生成手段は、当該通知に応じて次回のリードコマンドを、リード処理が終了すれば自動的にプリチャージが行われるプリチャージ付きリードコマンドとして発行することを特徴とする、メモリ制御装置。 - 複数のバンクから構成され、クロックを使用してデータの読み書きを行う同期型メモリ(以下、SDRAMという)を、制御するメモリ制御方法であって、
異なる前記バンクに対してバンク境界を超えて連続的にデータリードを行う際、
前記データリードに関するコマンドを出力するステップと、
前記コマンドを入力し、当該コマンドに従って予め定めた制御信号を生成して出力すると共に、リードアクセスの最初の転送バイト数を出力するステップと、
前記制御信号および前記転送バイト数に基づいて制御コマンドを発行するにあたり、当該転送バイト数に応じて最初のバンクに関するリードコマンドと後続のバンクに関するアクティブコマンドの発行順序を制御するステップとを備える、メモリ制御方法。 - 前記制御コマンドを生成して出力するステップは、
前記転送バイト数が各コマンド間の最低遷移クロック数より大きい場合は、前記最初のバンクに関するリードコマンドを前記後続のバンクに関するアクティブコマンドより先に発行し、前記転送バイト数が各コマンド間の最低遷移クロック数より小さい場合は、前記後続のバンクに関するアクティブコマンドを前記最初のバンクに関するリードコマンドより先に発行することを特徴とする、請求項4に記載のメモリ制御方法。 - 複数のバンクから構成され、クロックを使用してデータの読み書きを行う同期型メモリ(以下、SDRAMという)を、制御するメモリ制御方法であって、
データの読み書きに関するコマンドを出力するステップと、
前記コマンドに従って予め定めた制御信号を生成して出力すると共に、前記複数のバンクのうち処理を行う一つのバンクに関するリードデータの転送サイズを出力するステップと、
前記SDRAMに対するリードコマンド発行回数をカウントするステップと、
前記カウントごとに前記転送サイズからバースト長を減算し、当該減算後の転送サイズが当該バースト長以下に達した場合は、予め定めた通知を出力するステップと、
前記制御信号および前記通知に基づいて制御コマンドを発行するにあたり、当該通知があった場合は次回のリードコマンドを、リード処理が終了すれば自動的にプリチャージが行われるプリチャージ付きリードコマンドとして発行するステップとを備える、メモリ制御方法。
Priority Applications (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP02365198A JP3922487B2 (ja) | 1998-02-04 | 1998-02-04 | メモリ制御装置および方法 |
DE69943402T DE69943402D1 (de) | 1998-02-04 | 1999-02-02 | Speichersteuerungseinheit und -verfahren und Medium mit Ausführungsprogramm |
EP99101569A EP0935199B1 (en) | 1998-02-04 | 1999-02-02 | Memory control unit and memory control method and medium containing program for realizing the same |
EP11156809A EP2357564A3 (en) | 1998-02-04 | 1999-02-02 | Memory control unit and memory control method and medium containing program for realizing the same |
CNB991018729A CN1262929C (zh) | 1998-02-04 | 1999-02-04 | 存储器控制装置和存储器控制方法 |
US09/244,036 US6340973B1 (en) | 1998-02-04 | 1999-02-04 | Memory control unit and memory control method and medium containing program for realizing the same |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP02365198A JP3922487B2 (ja) | 1998-02-04 | 1998-02-04 | メモリ制御装置および方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH11224221A JPH11224221A (ja) | 1999-08-17 |
JP3922487B2 true JP3922487B2 (ja) | 2007-05-30 |
Family
ID=12116446
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP02365198A Expired - Lifetime JP3922487B2 (ja) | 1998-02-04 | 1998-02-04 | メモリ制御装置および方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3922487B2 (ja) |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100442426B1 (ko) * | 2000-12-27 | 2004-07-30 | 엘지전자 주식회사 | 메모리 제어 장치 |
JP2006011593A (ja) * | 2004-06-23 | 2006-01-12 | Sony Corp | メモリ制御装置 |
US8359187B2 (en) | 2005-06-24 | 2013-01-22 | Google Inc. | Simulating a different number of memory circuit devices |
US9171585B2 (en) | 2005-06-24 | 2015-10-27 | Google Inc. | Configurable memory circuit system and method |
US10013371B2 (en) | 2005-06-24 | 2018-07-03 | Google Llc | Configurable memory circuit system and method |
US8397013B1 (en) | 2006-10-05 | 2013-03-12 | Google Inc. | Hybrid memory module |
US20080082763A1 (en) | 2006-10-02 | 2008-04-03 | Metaram, Inc. | Apparatus and method for power management of memory circuits by a system or component thereof |
US9507739B2 (en) | 2005-06-24 | 2016-11-29 | Google Inc. | Configurable memory circuit system and method |
US7609567B2 (en) | 2005-06-24 | 2009-10-27 | Metaram, Inc. | System and method for simulating an aspect of a memory circuit |
EP2706461A1 (en) * | 2006-02-09 | 2014-03-12 | Google Inc. | Memory circuit system and method |
US20100325342A1 (en) * | 2007-07-20 | 2010-12-23 | Panasonic Corporation | Memory controller and nonvolatile storage device using same |
JP5104402B2 (ja) * | 2008-02-29 | 2012-12-19 | 横河電機株式会社 | メモリアクセス制御装置 |
JP7197998B2 (ja) * | 2018-05-02 | 2022-12-28 | キヤノン株式会社 | メモリコントローラおよびメモリコントローラで実施される方法 |
JP6883764B2 (ja) | 2018-09-28 | 2021-06-09 | パナソニックIpマネジメント株式会社 | コマンド制御システム、車両、コマンド制御方法及びプログラム |
-
1998
- 1998-02-04 JP JP02365198A patent/JP3922487B2/ja not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
JPH11224221A (ja) | 1999-08-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100387317B1 (ko) | 메모리소자를페이지모드에서제어하는방법및장치 | |
JP3922487B2 (ja) | メモリ制御装置および方法 | |
TW594785B (en) | Semiconductor memory device having external data load signal and serial-to-parallel data prefetch method thereof | |
US6477598B1 (en) | Memory controller arbitrating RAS, CAS and bank precharge signals | |
JP5428687B2 (ja) | メモリ制御装置 | |
US10725698B2 (en) | Memory controller and control method thereof | |
KR100914017B1 (ko) | 메모리 컨트롤러, 반도체 메모리의 액세스 제어 방법 및시스템 | |
JP3795689B2 (ja) | 連続ページ・モードを有するメモリ・コントローラおよびその方法 | |
JP4370063B2 (ja) | 半導体記憶装置の制御装置および半導体記憶装置の制御方法 | |
JP3728468B2 (ja) | メモリ制御装置 | |
JP2010146252A (ja) | Ddrメモリコントローラ | |
JP4266436B2 (ja) | 半導体記憶装置 | |
JP4615137B2 (ja) | 同期型メモリに対するフライバイ転送を可能にするdma制御システム | |
JP5423483B2 (ja) | データ転送制御装置 | |
JP3190856B2 (ja) | メモリコマンド制御回路 | |
JP2005301739A (ja) | メモリコントローラ及び半導体装置 | |
JP2000222879A (ja) | 半導体記憶装置 | |
JPH05334183A (ja) | メモリアクセス制御方法およびメモリ制御装置 | |
JP2001166985A (ja) | メモリ制御装置 | |
JP3136681B2 (ja) | データ処理装置 | |
JP3479281B2 (ja) | パケットバッファ制御方法および方式 | |
JP3563340B2 (ja) | メモリコントローラ | |
JP2795310B2 (ja) | メモリ制御装置およびメモリ装置 | |
JP2023068341A (ja) | メモリコントローラ、メモリコントローラの制御方法およびプログラム | |
JP2570271B2 (ja) | 半導体メモリ制御装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20050126 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20070213 |
|
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: 20070215 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20070215 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110302 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120302 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130302 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130302 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140302 Year of fee payment: 7 |
|
S533 | Written request for registration of change of name |
Free format text: JAPANESE INTERMEDIATE CODE: R313533 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313113 |
|
R360 | Written notification for declining of transfer of rights |
Free format text: JAPANESE INTERMEDIATE CODE: R360 |
|
R360 | Written notification for declining of transfer of rights |
Free format text: JAPANESE INTERMEDIATE CODE: R360 |
|
R371 | Transfer withdrawn |
Free format text: JAPANESE INTERMEDIATE CODE: R371 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313113 |
|
R371 | Transfer withdrawn |
Free format text: JAPANESE INTERMEDIATE CODE: R371 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313113 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
S131 | Request for trust registration of transfer of right |
Free format text: JAPANESE INTERMEDIATE CODE: R313135 |
|
SZ02 | Written request for trust registration |
Free format text: JAPANESE INTERMEDIATE CODE: R313Z02 |
|
S131 | Request for trust registration of transfer of right |
Free format text: JAPANESE INTERMEDIATE CODE: R313135 |
|
SZ02 | Written request for trust registration |
Free format text: JAPANESE INTERMEDIATE CODE: R313Z02 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
EXPY | Cancellation because of completion of term |