(57)【要約】【課題】本発明は、効率的にメモリ装置のバンクを使用可能なメモリコントローラを提供することを目的とする。【解決手段】メモリコントローラは、バスマスタに接続されｋビットのデータを伝送するバスへの接続部と、複数ｍ個のメモリにそれぞれ接続され、各々がｋ／ｍビットの信号を伝送するｍ個の第２のバスへの接続部と、バスマスタから供給される１アクセスに対応するアドレス及びコマンドに応じてｍ個のメモリのうちの１つのメモリに対してｋ／ｍビットのデータを伝送する動作をｍ回実行するよう構成される制御回路と、少なくともｍ回の伝送動作に対応する各ｋ／ｍビットのｍ個のデータを格納するバッファを含むことを特徴とする。【選択図】図２
2008146330.tif 000002
【特許請求の範囲】
【請求項１】
バスマスタに接続されｋビットのデータを伝送するバスへの接続部と、
複数ｍ個のメモリにそれぞれ接続され、各々がｋ／ｍビットの信号を伝送するｍ個の第２のバスへの接続部と、
該バスマスタから供給される１アクセスに対応するアドレス及びコマンドに応じて該ｍ個のメモリのうちの１つのメモリに対してｋ／ｍビットのデータを伝送する動作をｍ回実行するよう構成される制御回路と、
少なくとも該ｍ回の伝送動作に対応する各ｋ／ｍビットのｍ個のデータを格納するバッファと
を含むことを特徴とするメモリコントローラ。
【請求項２】
該バスマスタから供給される１アクセスに対応するアドレス及びコマンドに応じて該ｍ個のメモリのうちの１つのメモリに対してｋ／ｍビットのデータを伝送する動作をｍ回実行する動作モードを第１の動作モードとし、該制御回路は、該バスマスタから供給される１アクセスに対応するアドレス及びコマンドに応じて該ｍ個のメモリのそれぞれに対して同時にｋ／ｍビットのデータを伝送する動作を１回実行する第２の動作モードと該第１の動作モードとで切り替え可能に構成されることを特徴とする請求項１記載のメモリコントローラ。
【請求項３】
該制御回路は、該バスマスタから供給される１アクセスに対応するアドレス及びコマンドに応じて該ｍ個のメモリのうちの１つのメモリに対してｋ／ｍビットのデータを伝送する動作を１回のアクセスによりバーストモードでｍ回実行するよう構成されることを特徴とする請求項１記載のメモリコントローラ。
【請求項４】
該制御回路は、該バスマスタから供給される１アクセスに対応するアドレスに応じて、該第１の動作モードと該第２の動作モードとの何れか一方を選択することを特徴とする請求項２記載のメモリコントローラ。
【請求項５】
該制御回路は、該ｍ個のメモリが構成するメモリ空間のアドレスを変換するアドレス変換回路を含み、該アドレス変換回路は該第１の動作モードでアクセスする少なくとも２つのアドレス領域を１つに纏めるとともに、該第２の動作モードでアクセスする少なくとも２つのアドレス領域を１つに纏めるようにアドレス変換することを特徴とする請求項４記載のメモリコントローラ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般にメモリコントローラに関し、詳しくは、複数のメモリ装置を制御するメモリコントローラに関する。
【背景技術】
【０００２】
例えば３２ビット幅のデータを記憶させるＤＲＡＭとしては、入出力８ビット構成のＤＲＡＭを４個使用する構成、入出力１６ビット構成のＤＲＡＭを２個使用する構成、入出力３２ビット構成のＤＲＡＭを１個使用する構成等が考えられる。一般には、ビット数が少ない品種のＤＲＡＭの方が安価なために、記憶データのビット幅よりも小さな入出力ビット数のＤＲＡＭを複数個用いる構成が用いられる。
【０００３】
図１は、記憶データのビット幅よりも小さな入出力ビット数のＤＲＡＭを複数個用いるシステム構成の一例である。
【０００４】
図１のシステムは、複数（ｎ個）のバスマスタ１０−１乃至１０−ｎ、２つのＤＲＡＭ１１−１及び１１−２、ＤＲＡＭコントローラ１２、アドレス／コントロールバス１３、３２ビット幅のデータバス１４、アドレス／コントロールバス１５、及び１６ビット幅のデータバス１６−１及び１６−２を含む。アドレス／コントロールバス１３及びデータバス１４は、バスマスタ１０−１乃至１０−ｎとＤＲＡＭコントローラ１２とを接続する。アドレス／コントロールバス１３は、バスマスタ１０−１乃至１０−ｎからアドレス信号及びコマンド等の制御信号をＤＲＡＭコントローラ１２に供給する。データバス１４は３２ビット幅のデータを、バスマスタ１０−１乃至１０−ｎ及びＤＲＡＭコントローラ１２間で伝送する。
【０００５】
アドレス／コントロールバス１５はＤＲＡＭ１１−１及び１１−２で共通であり、ＤＲＡＭコントローラ１２から出力される同一のアドレス及び制御信号をＤＲＡＭ１１−１及び１１−２に供給する。データバス１６−１及び１６−２はそれぞれＤＲＡＭ１１−１及び１１−２に対して別個に設けられており、各々が１６ビット幅のデータをＤＲＡＭとＤＲＡＭコントローラ１２との間で伝送する。
【０００６】
バスマスタ１０−１乃至１０−ｎのうちの１つがアドレス空間のあるアドレスにアクセスする場合、ＤＲＡＭ１１−１及び１１−２の両方の同一アドレスにアクセスして、ＤＲＡＭ１１−１のアクセス先の１６ビットのデータとＤＲＡＭ１１−２のアクセス先の１６ビットのデータとを合わせて３２ビットのデータとして扱う。
【０００７】
ＤＲＡＭ１１−１及び１１−２は、それぞれ４つのバンクを有する。説明の便宜上、ＤＲＡＭ１１−１の４つのバンクをバンク＃１、＃３、＃５、及びバンク＃７とし、ＤＲＡＭ１１−２の４つのバンクをバンク＃２、＃４、＃６、及びバンク＃８とする。各バンク毎に活性ローアドレスを記憶する手段等を設けることにより、一端各バンク毎にローアドレスを指定すると、各バンクの指定されたローアドレス上のデータについてはビット線のプリチャージ動作等を行うことなく随時コラムアドレスを選択するだけで高速にアクセスすることができる構成となっている。
【０００８】
具体的には、各バンクには複数のワード線（各ローアドレス）にそれぞれ対応した複数のページが設けられている。前回のアクセスと同一のページに存在するデータは、同一のワード線を活性化しておけばよいので、プリチャージ動作を実行することなく高速に読み出すことができる。このように同一のページにアクセスする場合をページヒットと呼ぶ。それに対して別のページにアクセスする場合には、ビット線をプリチャージし、イコライズし、更にアクセス先のページに対応したワード線を活性化するという一連の動作が必要になり、あるアクセスから次のアクセスまでに時間がかかる。このように別のページにアクセスする場合をページミスと呼ぶ。
【０００９】
一般にバスマスタからのアクセスにはアドレス参照の局所性がある。アドレス参照の局所性とは、前回のアクセスと今回のアクセスとが比較的近いアドレスを対象としたものである場合が多いということである。このアドレス参照の局所性のために、図１に示すような構成においては、最善の場合、４つのバスマスタまでは、ページミスすることなく高速にＤＲＡＭのメモリ空間を利用することができる。即ち、ＤＲＡＭ１１−１のバンク＃１とＤＲＡＭ１１−２のバンク＃２とで構成する３２ビット幅のデータ記憶領域は例えばバスマスタ１０−１が利用し、ＤＲＡＭ１１−１のバンク＃３とＤＲＡＭ１１−２のバンク＃４とで構成する３２ビット幅のデータ記憶領域は例えばバスマスタ１０−２が利用し、ＤＲＡＭ１１−１のバンク＃５とＤＲＡＭ１１−２のバンク＃６とで構成する３２ビット幅のデータ記憶領域は例えばバスマスタ１０−３が利用し、ＤＲＡＭ１１−１のバンク＃７とＤＲＡＭ１１−２のバンク＃８とで構成する３２ビット幅のデータ記憶領域は例えばバスマスタ１０−４が利用する。この場合、各バスマスタ１０−１乃至１０−４のアクセスには十分なアドレス参照の局所性があれば、各バンクにおいてページミスを起こすことなく、高速にデータアクセスを続けることができる。なおこの際、ＤＲＡＭコントローラ１２においてメモリアクセスリクエストを調停しながら、各バスマスタ１０−１乃至１０−４のアクセス動作を順次実行することになる。
【００１０】
しかし５つめのバスマスタがＤＲＡＭへのアクセスを実行すると、何れかのバンクにおいて活性ローアドレスが変えられてしまい、ページミスが発生しアクセスにかかる時間が長くなる。例えばバスマスタ１０−５が、バスマスタ１０−１により前回アクセスされたＤＲＡＭ１１−１のバンク＃１とＤＲＡＭ１１−２のバンク＃２とで構成する３２ビット幅のデータ記憶領域にアクセスする場合を考える。この場合、バンク＃１及び＃２の活性ローアドレスは、バスマスタ１０−１のアクセスのローアドレスから、バスマスタ１０−５のアクセスのローアドレスに変更される。バスマスタ１０−１のアクセス自体には十分なアドレス参照の局所性があったとしても、バスマスタ１０−１のアクセスとバスマスタ１０−５のアクセスとにはアドレス参照の局所性は無いと考えられる。従って、バンク＃１及び＃２のアクセス元がバスマスタ１０−１とバスマスタ１０−５との間で切り替わる度に、ページミスが発生することになる。
【特許文献１】特開２００５−３３２１２５号公報
【特許文献２】特開２０００−９９３９８号公報
【発明の開示】
【発明が解決しようとする課題】
【００１１】
以上を鑑みて、本発明は、効率的にメモリ装置のバンクを使用可能なメモリコントローラを提供することを目的とする。
【課題を解決するための手段】
【００１２】
メモリコントローラは、バスマスタに接続されｋビットのデータを伝送するバスへの接続部と、複数ｍ個のメモリにそれぞれ接続され、各々がｋ／ｍビットの信号を伝送するｍ個の第２のバスへの接続部と、該バスマスタから供給される１アクセスに対応するアドレス及びコマンドに応じて該ｍ個のメモリのうちの１つのメモリに対してｋ／ｍビットのデータを伝送する動作をｍ回実行するよう構成される制御回路と、少なくとも該ｍ回の伝送動作に対応する各ｋ／ｍビットのｍ個のデータを格納するバッファを含むことを特徴とする。
【発明の効果】
【００１３】
本発明の少なくとも１つの実施例によれば、複数のメモリのうち１つのメモリの連続した複数のアドレスに対応する複数個のデータを纏めて１つのデータとしてアクセスできる。従って、最善の場合、複数のメモリに存在するバンクの合計数に等しい数のバスマスタに対して、ページミスのないデータアクセス動作を提供することが可能になる。
【発明を実施するための最良の形態】
【００１４】
以下に、本発明の実施例を添付の図面を用いて詳細に説明する。
【００１５】
図２は、本発明によるＤＲＡＭコントローラを用いたシステムの第１実施例を示す図である。図２において、図１と同一の構成要素は同一の番号で参照し、その説明は必要に応じて省略する。
【００１６】
図２のシステムは、複数（ｎ個）のバスマスタ１０−１乃至１０−ｎ、２つのＤＲＡＭ１１−１及び１１−２、ＤＲＡＭコントローラ２０、アドレス／コントロールバス１３、３２ビット幅のデータバス１４、アドレス／コントロールバス１５−１及び１５−２、及び１６ビット幅のデータバス１６−１及び１６−２を含む。アドレス／コントロールバス１３及びデータバス１４は、バスマスタ１０−１乃至１０−ｎとＤＲＡＭコントローラ２０とを接続する。アドレス／コントロールバス１３は、バスマスタ１０−１乃至１０−ｎからアドレス信号及びコマンド等の制御信号をＤＲＡＭコントローラ２０に供給する。データバス１４は３２ビット幅のデータを、バスマスタ１０−１乃至１０−ｎ及びＤＲＡＭコントローラ２０間で伝送する。
【００１７】
アドレス／コントロールバス１５−１及び１５−２はそれぞれＤＲＡＭ１１−１及び１１−２に対して別個に設けられており、ＤＲＡＭコントローラ２０から出力されるそれぞれのアドレス及び制御信号をＤＲＡＭ１１−１及び１１−２に供給する。データバス１６−１及び１６−２はそれぞれＤＲＡＭ１１−１及び１１−２に対して別個に設けられており、各々が１６ビット幅のデータをＤＲＡＭとＤＲＡＭコントローラ１２との間で伝送する。
【００１８】
ＤＲＡＭ１１−１及び１１−２は、それぞれ４つのバンクを有する。説明の便宜上、ＤＲＡＭ１１−１の４つのバンクをバンク＃１、＃３、＃５、及びバンク＃７とし、ＤＲＡＭ１１−２の４つのバンクをバンク＃２、＃４、＃６、及びバンク＃８とする。なお図１の例では、３２ビット幅のデータに対して２個の１６ビット入出力構成のＤＲＡＭが設けられているが、これらの数は一例に過ぎず、他の適当な数を用いた構成でもよい。例えば、６４ビット幅のデータに対して８個の８ビット入出力構成のＤＲＡＭが設けられていてもよい。また各ＤＲＡＭのバンクの数も４に限られるものではなく、任意の数のバンクが設けられていてよい。
【００１９】
ＤＲＡＭコントローラ２０は、制御回路２１と、バッファ２２−１及び２２−２とを含む。制御回路２１は、アドレス／コントロールバス１３及びアドレス／コントロールバス１５−１及び１５−２に接続され、アドレス／コントロールバス１３から供給されるアドレス信号及び制御信号に応じて、各ＤＲＡＭ１１−１及び１１−２に対するアドレス信号及び制御信号をアドレス／コントロールバス１５−１及び１５−２に送出する。バッファ２２−１及び２２−２は、それぞれＤＲＡＭ１１−１及び１１−２に対する読み出し／書き込みデータを格納する。後述するようにバッファ２２−１及び２２−２の各々は、データバス１４のビット幅に等しい３２ビットのデータを格納するよう構成される。
【００２０】
バスマスタ１０−１乃至１０−ｎのうちの１つがアドレス空間のあるアドレスにアクセスする場合、ＤＲＡＭ１１−１及び１１−２の何れか１つのバンクにアクセスして、ＤＲＡＭ１１−１の当該アドレスの１６ビットのデータと次のアドレス(次のコラムアドレス)の１６ビットのデータとを合わせて３２ビットのデータとして扱う。即ち、バスマスタから１アクセスに対応するアドレス（アドレス信号）及びコマンド（制御信号）がアドレス／コントロールバス１３を介して供給されると、制御回路２１は、このアドレス及びコマンドに応じてＤＲＡＭ１１−１及び１１−２のうちの１つのＤＲＡＭに対して１６ビットのデータを伝送するアクセスを２回実行する。この２回のアクセスは連続アドレスに対して実行される。
【００２１】
例えばＤＲＡＭ１１−１及び１１−２のうちのＤＲＡＭ１１−１が読み出しアクセスされた場合、ＤＲＡＭ１１−１の連続する２つのアドレスから１６ビットのデータを２個読み出す。読み出された２個の１６ビット幅のデータは、バッファ２２−１に格納される。バッファ２２−１に格納された２個の１６ビット幅のデータは、１個の３２ビットのデータとしてアクセス元のバスマスタに供給される。
【００２２】
このようにして例えばバスマスタ１０−１がＤＲＡＭ１１−１のバンク＃１のみをアクセスして、３２ビットのデータ読み出し／書き込みを実行することが可能となる。この構成では、最善の場合、８つのバスマスタまでが、ページミスすることなく高速にＤＲＡＭのメモリ空間を利用することができる。即ち例えば、ＤＲＡＭ１１−１のバンク＃１をバスマスタ１０−１が利用し、ＤＲＡＭ１１−２のバンク＃２をバスマスタ１０−２が利用し、ＤＲＡＭ１１−１のバンク＃３をバスマスタ１０−３が利用し、ＤＲＡＭ１１−２のバンク＃４をバスマスタ１０−４が利用し、ＤＲＡＭ１１−１のバンク＃５をバスマスタ１０−５が利用し、ＤＲＡＭ１１−２のバンク＃６をバスマスタ１０−６が利用し、ＤＲＡＭ１１−１のバンク＃７をバスマスタ１０−７が利用し、ＤＲＡＭ１１−２のバンク＃８をバスマスタ１０−８が利用することができる。この場合、各バスマスタ１０−１乃至１０−８のアクセスに十分なアドレス参照の局所性があれば、各バンクにおいてページミスを起こすことなく、高速にデータアクセスを続けることができる。なおこの際、ＤＲＡＭコントローラ２０においてメモリアクセスリクエストを調停しながら、各バスマスタ１０−１乃至１０−８のアクセス動作を順次実行することになる。
【００２３】
図３は、図１のＤＲＡＭコントローラによるＤＲＡＭへのアクセスと図２のＤＲＡＭコントローラによるＤＲＡＭへのアクセスとを比較して示す図である。図３において（ａ）及び（ｂ）は、それぞれ図１に示す構成におけるＤＲＡＭ１１−１へ供給されるアクセス先を示すアドレス信号及びＤＲＡＭ１１−２へ供給されるアクセス先を示すアドレス信号を示す。例えばアドレス信号Ｂ１Ｃ０は、バンク＃１のコラムアドレス０のデータをアクセスすることを示し、アドレス信号Ｂ３Ｃ１０は、バンク＃３のコラムアドレス１０のデータをアクセスすることを示す。また（ｃ）及び（ｄ）は、それぞれ図２に示す構成におけるＤＲＡＭ１１−１へ供給されるアクセス先を示すアドレス信号及びＤＲＡＭ１１−２へ供給されるアクセス先を示すアドレス信号を示す。
【００２４】
図３の（ａ）及び（ｂ）に示すように、図１に示す構成の場合には、第１サイクルでバンク＃１とバンク＃２とのコラムアドレス０に同時にアクセスし、第２サイクルでバンク＃３とバンク＃４とのコラムアドレス１０に同時にアクセスし、第３サイクルでバンク＃５とバンク＃６とのコラムアドレス８に同時にアクセスし、第４サイクルでバンク＃１とバンク＃２とのコラムアドレス１に同時にアクセスし、第５サイクルでバンク＃７とバンク＃８とのコラムアドレス５に同時にアクセスしている。これにより各サイクルで３２ビット幅のデータを１つずつ伝送しながら、５サイクルで５つの３２ビットデータに対するデータ書き込み又は読み出しを実行している。
【００２５】
図３の（ｃ）及び（ｄ）に示すように、図２に示す構成の場合には、第１サイクルから第１０サイクルにおいて順番に、バンク＃１のコラムアドレス０、バンク＃１のコラムアドレス１、バンク＃３のコラムアドレス２０、バンク＃３のコラムアドレス２１、バンク＃５のコラムアドレス８、バンク＃５のコラムアドレス９、バンク＃１のコラムアドレス２、バンク＃１のコラムアドレス３、バンク＃７のコラムアドレス１０、バンク＃７のコラムアドレス１１を順番にアクセスしている。２つの連続アドレスのアクセス（例えばバンク＃１のコラムアドレス０とバンク＃１のコラムアドレス１）により合計で３２ビットのデータを１つ伝送するので、上記のように１０サイクルで５つの３２ビットデータに対するデータ書き込み又は読み出しを実行している。
【００２６】
なお図２の構成の場合には、データ転送に２倍の時間がかかっているが、これはメモリ空間において図１の場合と同一位置のバンクにアクセスする場合を比較しているからである。即ち、図１の構成においてバンク＃１、＃３、＃５、＃７にアクセスしているので、図２の構成においてもバンク＃１、＃３、＃５、＃７にアクセスする場合を比較の対象として示している。最善の場合には、以下の説明にもあるようにアドレス／コントロールバス１５−１及び１５−２によりＤＲＡＭ１１−１及び１１−２に同時にアクセスできるので、５つの３２ビットデータを６サイクルで伝送することができる。
【００２７】
図４は、図１のＤＲＡＭコントローラによるＤＲＡＭへのアクセスと図２のＤＲＡＭコントローラによるＤＲＡＭへのアクセスとを比較して示す図である。（ａ）乃至（ｄ）に示す各信号の意味は図３の場合と同一である。
【００２８】
図４の（ａ）及び（ｂ）に示すように、図１に示す構成の場合には、まず最初の５サイクルで図３に示すのと同様に５つの３２ビットデータに対するデータ書き込み又は読み出しを実行する。それに続く第６サイクルで、バンク＃１及び＃２において前回のアクセスとは異なるローアドレスにアクセスする。このとき供給するアドレス信号Ｂ１Ｒ１０は、バンク＃１のローアドレス１０がアクセス対象であることを示し、アドレス信号Ｂ２Ｒ１０は、ローアドレス１０がアクセス対象であることを示す。この際、ローアドレスの変化によりページミスが発生し、例えば図示のように計３サイクルでコラムアドレスのアクセスが実行される。その後も順番にバンク＃３及び＃４、＃１及び＃２、＃７及び＃８に対してページミスが発生している。
【００２９】
それに対して、図４の（ｃ）及び（ｄ）に示すように図２に示す構成の場合には、例えば（ｄ）に示すＤＲＡＭ１１−２のバンク＃２、バンク＃４、バンク＃８、及びバンク＃２に対するアクセスを、（ｃ）に示すＤＲＡＭ１１−１に対するアクセスと同時に実行できる。これは最善の場合であり、メモリ空間において偶数番目のバンク内のページに対応するローアドレスにアクセスが発生する状況を仮定している。この場合、（ａ）及び（ｂ）に示す図１の構成と比較して、大幅に短い時間で同一量のデータをアクセスすることができる。
【００３０】
また図２の構成において、図４の（ｃ）及び（ｄ）に示すような動作モードでの動作だけでなく、図４の（ａ）及び（ｂ）に示すような動作モードでの動作も実行可能なようにＤＲＡＭコントローラ２０の制御回路２１を構成してもよい。即ち、本発明のようにバスマスタから供給される１アクセスに対応するアドレス及びコマンドに応じて２個のメモリのうちの１つのメモリに対して１６ビットのデータを伝送するアクセスを２回実行する動作モードを第１の動作モードとし、更に、バスマスタから供給される１アクセスに対応するアドレス及びコマンドに応じて２個のメモリのそれぞれに対して同時に１６ビットのデータを伝送するアクセスを１回実行する第２の動作モードとし、第１の動作モードと第２の動作モードとで切り替え可能に制御回路２１を構成してよい。これにより、例えばバスマスタ１０−１乃至１０−ｎの数ｎが４以下の場合には、第２の動作モードでＤＲＡＭコントローラ２０を動作させてビット幅の大きい高速なデータ転送を実現し、またバスマスタ１０−１乃至１０−ｎの数ｎが４より大きい場合には、第１の動作モードでＤＲＡＭコントローラ２０を動作させてページミスの少ない効率的なデータ転送を実現することができる。
【００３１】
図５は、本発明によるＤＲＡＭコントローラを用いたシステムの第２実施例を示す図である。図５において、図２と同一の構成要素は同一の番号で参照し、その説明は必要に応じて省略する。
【００３２】
図５の構成においては、ＤＲＡＭコントローラ２０及びＤＲＡＭ１１−１及び１１−２からなるメモリユニットを２つ設け、これら２つのメモリユニット側とバスマスタ１０−１乃至１０−ｎ側との間にＤＲＡＭコントローラマルチプレクサ３０を設けたことを特徴とする。ＤＲＡＭコントローラマルチプレクサ３０は、２つのメモリユニットに対応して２つのバッファ３１及び３２を含む。バッファ３１により第１のメモリユニットとの間で伝送する３２ビットのデータをバッファリングし、バッファ３２により第２のメモリユニットとの間で伝送する３２ビットのデータをバッファリングする。２つのバッファ３１及び３２はそれぞれデータバス１４に接続されている。この場合、バッファ３１の３２ビットのデータとバッファ３２の３２ビットのデータとで１つのデータが構成され、データバス１４は６４ビット構成となる。
【００３３】
このような構成により、１６ビット入出力構成のＤＲＡＭを４つ用いて６４ビット構成のシステムを実現することができる。なお図５に示すシステムの動作は、図４に示す例と同様である。
【００３４】
図６は、本発明によるＤＲＡＭコントローラを用いたシステムの第３実施例を示す図である。図５において、図２と同一の構成要素は同一の番号で参照し、その説明は必要に応じて省略する。
【００３５】
図６の構成においては、図２の構成と比較して、ＤＲＡＭコントローラ２０、制御回路２１、及びアドレス／コントロールバス１５−１及び１５−２がそれぞれＤＲＡＭコントローラ２０Ａ、制御回路２１Ａ、アドレス／コントロールバス１５Ａに置換えられている。図２の構成では、ＤＲＡＭ１１−１及び１１−２にそれぞれ対応してアドレス／コントロールバス１５−１及び１５−２が設けられていたが、図６の構成では、ＤＲＡＭ１１−１及び１１−２に共通に１つのアドレス／コントロールバス１５Ａが設けられている。なお
正確には後述するように、アドレスバスは２つのＤＲＡＭに共通に設け、コントロールバスは２つのＤＲＡＭにそれぞれ別個に設けるが、図示の都合上、図６ではアドレス／コントロールバスを纏めて示してある。
【００３６】
図６のような構成では、ＤＲＡＭのバーストモードを利用する。ＤＲＡＭのバーストモードを利用すれば、アドレスバスが共通であっても、バンク＃１乃至＃８の各々に対して１６ビットのデータを２回連続してアクセスすることが可能となる。バーストモードは、ＤＲＡＭにおいて例えば読み出し動作の場合、１つのアクセス要求（読み出し要求）に応答して、選択されたワード線を活性化してセンスアンプに活性ローアドレスのデータを格納した後に、バースト長として指定された数のデータをセンスアンプから連続的に読み出すモードである。例えばバーストモードでバースト長２を指定すれば、１つのアクセス要求に対して２つの連続するコラムアドレスのデータを読み出すことができ、バーストモードでバースト長４を指定すれば、１つのアクセス要求に対して４つの連続するコラムアドレスのデータを読み出すことができる。また同様に書き込み動作の場合においても、１つのアクセス要求に対して、バースト長で指定した数のデータを連続して書き込むことができる。
【００３７】
図６の制御回路２１Ａは、バスマスタ１０−１乃至１０−ｎからアドレス／コントロールバス１３を介して供給される１アクセスに対応するアドレス及びコマンドに応じて、２個のＤＲＡＭ１１−１及び１１−２のうちの１つのＤＲＡＭに対して、１６ビットのデータを伝送する動作を１回のアクセスによりバーストモードで２回実行する。これにより、例えばＤＲＡＭ１１−１及び１１−２に交互にアクセス要求することで、データバス１６−１及び１６−２を用いた並列なデータ伝送を実現することができる。
【００３８】
図７は、図２のＤＲＡＭコントローラによるＤＲＡＭへのアクセスと図６のＤＲＡＭコントローラによるＤＲＡＭへのアクセスとを比較して示す図である。図７において（ａ）乃至（ｄ）は、図２に示す構成に関するものであり、それぞれＤＲＡＭ１１−１へ供給するアドレス信号、ＤＲＡＭ１１−１からの読み出しデータ、ＤＲＡＭ１１−２へ供給するアドレス信号、ＤＲＡＭ１１−２からの読み出しデータを示す。また（ｅ）乃至（ｇ）は、図６に示す構成に関するものであり、それぞれＤＲＡＭ１１−１及び１１−２へ供給するアドレス信号、ＤＲＡＭ１１−１からの読み出しデータ、ＤＲＡＭ１１−２からの読み出しデータを示す。なお図７において、［・］は括弧内のアドレスのデータを示す。即ち例えば［Ｂ１Ｃ０］は、アドレスＢ１Ｃ０の格納データを示す。
【００３９】
（ａ）及び（ｃ）に示すアドレス信号は、図４（ｃ）及び（ｄ）に示すアドレス信号と同一である。これらのアドレス信号の供給に応じて、図７（ｂ）及び（ｄ）に示すように対応した位置に格納されるデータが読み出される。
【００４０】
図７の（ｅ）乃至（ｇ）に示す図６の構成の場合には、（ｅ）に示すＢ１Ｃ０、Ｂ２Ｃ０、Ｂ３Ｃ２０、Ｂ４Ｃ６、・・・のように、ＤＲＡＭ１１−１及び１１−２に交互にアクセスする。なお実際には、アドレスバスが共通なので両方のＤＲＡＭに共通のアドレスが供給されるが、読み出しコマンド（アクセス信号）をＤＲＡＭ１１−１及び１１−２に交互に供給する構成とする。これにより実質的に（ｅ）に示すアドレスに応じたアクセスを交互に実行することができる。
【００４１】
この際、バースト長２でのバーストモードの動作をＤＲＡＭ１１−１及び１１−２に対して予め指定しておく。これにより、（ｅ）に示す各アドレス入力に応じて、（ｆ）及び（ｇ）に示すようにＤＲＡＭ１１−１及び１１−２の対応する一方からデータが２つ連続で読み出される。ＤＲＡＭ１１−１及び１１−２の各々についてのアクセスは２サイクルに１回であるが、バースト長２の指定により２つの連続アドレスからデータが連続して読み出されるので、各データバス１６−１及び１６−２において連続サイクルでのデータ転送が行われる。即ち、図２の構成の場合と比較して、略同等な効率でのデータ転送が可能となる。
【００４２】
このように図６の構成では、アドレスバスを共通なものとしながらも、ＤＲＡＭのバーストモードを利用することにより、アドレスバスを別個に設けた図２の構成と略同等な効率でのデータ転送が実現できる。図６の構成においては、ＤＲＡＭコントローラ２０Ａのアドレス／コントロールバス１５Ａの端子の数（ひいてはバスの信号線の数）をＤＲＡＭコントローラ２０の場合と比較して少なくすることができるという効果が得られる。
【００４３】
図８は、本発明によるＤＲＡＭコントローラを用いたシステムの第４実施例を示す図である。図８において、図２と同一の構成要素は同一の番号で参照し、その説明は必要に応じて省略する。
【００４４】
図８の構成においては、図２の構成と比較して、ＤＲＡＭコントローラ２０及び制御回路２１がそれぞれＤＲＡＭコントローラ２０Ｂ及び制御回路２１Ｂに置換えられている。図８の構成では、ＤＲＡＭ１１−１及び１１−２の幾つかのバンクがハイバンド領域ＨＢとローバンド領域ＬＢとに分割されている。制御回路２１Ｂは、ハイバンド領域ＨＢには上記の第２の動作モードでアクセスし、ローバンド領域ＬＢには上記の第１の動作モードでアクセスするように構成される。これは制御回路２１Ｂにおいて、アクセス先のアドレスをデコードし、デコード結果に基づいてアクセス先がハイバンド領域ＨＢであるか又はローバンド領域ＬＢであるかを判断し、この判断に基づいて第１の動作モードと第２の動作モードの何れか一方を選択すればよい。或いは、ハイバンド領域ＨＢとローバンド領域ＬＢとの境界をデータとしてレジスタに格納しておき、この境界とアクセス先のアドレスとの比較に基づいて、アクセス先がハイバンド領域ＨＢであるか又はローバンド領域ＬＢであるかを判断してもよい。
【００４５】
なお図８に示すように、８つのバンク全てにローバンド領域ＬＢを設けておくことにより、最善の場合にページミス無しで８つのバンクまで利用することができる。
【００４６】
図９は、本発明によるＤＲＡＭコントローラを用いたシステムの第５実施例を示す図である。図９において、図８と同一の構成要素は同一の番号で参照し、その説明は必要に応じて省略する。
【００４７】
図９の構成においては、図８の構成と比較して、ＤＲＡＭコントローラ２０Ｂ及び制御回路２１ＢがそれぞれＤＲＡＭコントローラ２０Ｃ及び制御回路２１Ｃに置換えられている。制御回路２１Ｃは、制御回路２１Ｂと略同一の構成及び動作であるが、アドレス変換回路２５が設けられている点で異なる。アドレス変換回路２５は、バスマスタ１０−１乃至１０−ｎからアドレス／コントロールバス１３を介して供給されたアドレスを変換する。制御回路２１Ｃは、変換後のアドレスを用いてＤＲＡＭ１１−１及び１１−２をアクセスするように構成される。このようなアドレス変換により、バスマスタ１０−１乃至１０−ｎから見たメモリマップを使いやすい形に構成することができる。
【００４８】
図１０は、アドレス変換によるメモリマップの変換を説明するための図である。図１０（ａ）に示されるように、ＤＲＡＭ１１−１及び１１−２のバンク＃１乃至＃８が、ハイバンド領域ＨＢ及びローバンド領域ＬＢに分けられているとする。なお図１０（ａ）においてＨＢ（・）及びＬＢ（・）の括弧の中は、各領域を識別するための参照符号である。
【００４９】
図１０（ｂ）は、左側にアドレス変換後のメモリマップを示し、右側にアドレス変換前のメモリマップを示す。図１０（ｂ）の右側に示すように、バンク＃１乃至バンク＃８の順番に、各バンクのハイバンド領域ＨＢとローバンド領域ＬＢとがメモリ空間に配置されている。何もアドレス変換がない場合には、バスマスタ１０−１乃至１０−ｎから見たメモリ空間はこのような配置となる。しかしこのような配置では、ハイバンド領域ＨＢとローバンド領域ＬＢとが混在しており、ソフトウェア開発者としては使いにくいアドレス配置となっている。
【００５０】
図１０（ｂ）の左側に示すメモリマップでは、ハイバンド領域ＨＢとローバンド領域ＬＢとをそれぞれひとかたまりに纏め、ハイバンド領域ＨＢのひとかたまりとローバンド領域ＬＢのひとかたまりとをメモリ空間内で分けて配置している。アドレス変換後には、バスマスタ１０−１乃至１０−ｎから見たメモリ空間はこのような配置となる。このような配置にすれば、ハイバンド領域ＨＢとローバンド領域ＬＢとが明確に分離しており、ソフトウェア開発者としては使い易いアドレス配置となる。
【００５１】
なお全てのハイバンド領域ＨＢ及び全てのローバンド領域ＬＢをそれぞれ１つに纏めなくともよい。即ち、アドレス変換回路２５は、第１の動作モードでアクセスする少なくとも２つのアドレス領域（ローバンド領域ＬＢ）を１つに纏めるとともに、第２の動作モードでアクセスする少なくとも２つのアドレス領域（ハイバンド領域ＨＢ）を１つに纏めるようにアドレス変換する構成でもよい。
【００５２】
図１１は、図２に示す第１実施例の場合の制御回路２１のうちでアドレス制御に関する回路部分を示す図である。
【００５３】
図１１に示す回路は、ＦＩＦＯバッファ４１−１及び４１−２、コンパレータ４２−１及び４２−２、活性ローアドレスレジスタ群４３−１及び４３−２、活性バンクレジスタ群４４−１及び４４−２、ＡＮＤ回路４５−１乃至４８−１及び４５−２乃至４８−２、ＡＮＤ回路４９−１及び４９−２、セレクタ５０−１及び５０−２、ＮＯＴ回路５１、及びＡＮＤ回路５２を含む。ＦＩＦＯバッファ４１−１、コンパレータ４２−１、活性ローアドレスレジスタ群４３−１、活性バンクレジスタ群４４−１、ＡＮＤ回路４５−１乃至４８−１、ＡＮＤ回路４９−１、及びセレクタ５０−１は、ＤＲＡＭ１１−１に対するアクセス用に設けられる回路である。またＦＩＦＯバッファ４１−２、コンパレータ４２−２、活性ローアドレスレジスタ群４３−２、活性バンクレジスタ群４４−２、ＡＮＤ回路４５−２乃至４８−２、ＡＮＤ回路４９−２、及びセレクタ５０−２は、ＤＲＡＭ１１−２に対するアクセス用に設けられる回路である。
【００５４】
アドレス／コントロールバス１３から供給されるアドレス有効信号が有効を示す場合、アドレス信号の第２５ビットに応じて、ＦＩＦＯバッファ４１−１及び４１−２の何れかがアドレス信号を格納する。以下においては、ＤＲＡＭ１１−１に対するアクセス用に設けられた回路部分について動作を説明する。ＤＲＡＭ１１−２に対するアクセス用に設けられた回路部分についての動作は、以下に説明する動作と同一である。
【００５５】
ＦＩＦＯバッファ４１−１に格納されたアドレスの第２３及び２４ビットは、バンクアドレスであり、格納アドレスが何れのバンクに対するものであるかを示す。このバンクアドレスに応じて、活性ローアドレスレジスタ群４３−１からアクセス対象のバンクの活性ローアドレスがコンパレータ４２−１に供給される。また上記バンクアドレスに応じて、活性バンクレジスタ群４４−１からアクセス対象のバンクが活性であるか否かを示す"１／０（活性／非活性）"信号が、ＡＮＤ回路４５−１に供給される。
【００５６】
コンパレータ４２−１により、活性ローアドレスとアクセス対象のローアドレスとが比較される。比較結果を示す信号"１／０（一致／不一致）"がＡＮＤ回路４５−１に供給される。ＡＮＤ回路４５−１は、上記"１／０（活性／非活性）"信号と比較結果を示す"１／０（一致／不一致）"信号とでＡＮＤ演算を行い、両入力が１のときに１を出力する。この出力は、現在活性化されているバンクにおいて前回のアクセスと今回のアクセスとが同一のローアドレスの場合に１となり、それ以外の場合に０となる。即ち、ページヒットの場合に１となり、それ以外の場合に０となる。
【００５７】
ページヒットの場合には、ＡＮＤ回路４６−１から、コラムアクセスを指示する信号がアドレス／コントロールバス１５−１を介してＤＲＡＭ１１−１に供給される。また同時に、コラムアドレスがセレクタ５０−１により選択され、ＤＲＡＭ１１−１に供給される。ページヒット以外の場合には、ＡＮＤ回路４７−１から、ローアクセスを指示する信号がアドレス／コントロールバス１５−１を介してＤＲＡＭ１１−１に供給される。また同時に、ローアドレスがセレクタ５０−１により選択され、ＤＲＡＭ１１−１に供給される。
【００５８】
このようにして、ページヒットの場合とそれ以外の場合とに応じて、ＤＲＡＭ１１−１及び１１−２に対してコラムアクセスとローアクセスとを切り替えることができる。
【００５９】
図１２は、図６に示す第３実施例の場合の制御回路２１Ａのうちでアドレス制御に関する回路部分を示す図である。図１２において、図１１と同一の構成要素は同一の番号で参照し、その説明は省略する。
【００６０】
図１２の回路は、図１１の回路と比較して、デコーダ６０、プライオリティーフラグ６１、及びセレクタ６２が設けられていることが異なる。その他の構成は、図１１の回路と同一である。
【００６１】
デコーダ６０は、ＦＩＦＯバッファ４１−１及び４１−２から有効格納データの存在を示す有効ビットｖａｌｉｄを入力Ｂ１及びＢ２として受け取るとともに、ＡＮＤ回路４５−１及び４５−２からページヒットか否かを示す信号を入力Ｖ１及びＶ２として受け取る。また更にプライオリティーフラグ６１の出力ビットを入力Ｐとして受け取る。デコーダ６０は、これらの入力をデコードすることにより、出力Ｒ１及びＣ１としてＤＲＡＭ１１−１に対するローアクセス指示信号及びコラムアクセス指示信号、出力Ｒ２及びＣ２としてＤＲＡＭ１１−２に対するローアクセス指示信号及びコラムアクセス指示信号、出力Ｓとしてセレクタ６２に対する選択信号を供給する。また出力ＲＹ１及びＲＹ２として、ＦＩＦＯバッファ４１−１及び４１−２に対するレディー信号を供給する。また更に、出力ＮＰとして、プライオリティーフラグ６１に格納されるフラグ値を出力する。
【００６２】
デコーダ６０が出力する選択信号Ｓに応じて、セレクタ６２は、ＦＩＦＯバッファ４１−１からのロー／コラムアドレス又はＦＩＦＯバッファ４１−２からのロー／コラムアドレスの何れか一方を選択して出力する。セレクタ６２の出力は、ＤＲＡＭ１１−１及び１１−２に対する共通のロー／コラムアドレス信号となる。
【００６３】
図１３は、デコーダ６０の入出力関係を示す図である。左側に示す入力Ｂ１、Ｖ１、Ｂ２、Ｖ２、及びＰが与えられたときに、デコーダ６０はこれらの入力をデコードして、右側に示すような出力Ｃ１、Ｒ１、Ｃ２、Ｒ２、Ｓ、ＲＹ１、ＲＹ２、及びＮＰを出力する。プライオリティーフラグ６１を用いることで、前の状態に依存した状態遷移を実現している。図１３において、"Ｘ"は、その値の１／０に関わらず出力が影響されないドントケアを示す。図１３に示すような入出力関係に従いデコーダ６０が動作することにより、図７の（ｅ）乃至（ｇ）に示すようなアクセス動作を実現することができる。
【００６４】
図１４は、図２のＤＲＡＭコントローラ２０のバッファの構成の一例を示す図である。図２のＤＲＡＭコントローラ２０に含まれる２つのバッファ２２−１及び２２−２は互いに同一の構成であり、図１４は１つのバッファの構成を示す。図１４に示すバッファは、第１のレジスタ群７１、第２のレジスタ群７２、セレクタ７３乃至７４を含む。
【００６５】
第１のレジスタ群７１は、データバス１６−１又は１６−２から１６ビットの読み出しデータを受け取り、受け取ったデータをレジスタ群のうちの１つのレジスタに格納する。何れのレジスタに格納するかの選択は制御回路２１により制御される。連続した２つのアドレスから２つのデータを読み出した場合、これら２つのデータのうち一方は奇数番目のレジスタに格納され、他方は偶数番目のレジスタに格納されてよい。
【００６６】
前記の第１の動作モードの場合、セレクタ７３により１つのレジスタを選択し、セレクタ７４により更にもう１つのレジスタを選択する。これら２つの選択レジスタに格納される２つの１６ビットデータを合わせて、３２ビットの読み出しデータとしてデータバス１４に供給する。セレクタ７３及び７４による選択動作は、制御回路２１により制御される。
【００６７】
前記の第２の動作モードの場合、セレクタ７３又は７４の何れか一方により１つのレジスタを選択し、選択したレジスタに格納される１６ビットデータを読み出しデータとしてデータバス１４に供給する。選択動作に関わらなかった方のセレクタの出力はフローティング状態としてよい。セレクタ７３及び７４の動作は、制御回路２１により制御される。図１４に示すバッファがバッファ２２−１だとすると、データバス１４に供給する３２ビットの読み出しデータのうちの他方の１６ビットデータは、他方のバッファ２２−２から供給される。
【００６８】
第２のレジスタ群７２は、データバス１４から３２ビットの書き込みデータを受け取り、受け取ったデータの例えば上位１６ビットと下位１６ビットとを分けて２つの１６ビットデータとして、レジスタ群のうちの２つのレジスタにそれぞれ格納する。何れのレジスタに格納するかの選択は制御回路２１により制御される。これら２つのデータのうち一方は奇数番目のレジスタに格納され、他方は偶数番目のレジスタに格納される。セレクタ７５により１つのレジスタを選択し、選択レジスタに格納される１６ビットのデータを書き込みデータとしてデータバス１６−１又は１６−２に供給する。セレクタ７５による選択動作は、制御回路２１により制御される。
【００６９】
図１４の構成において、第１のレジスタ群７１及び第２のレジスタ群７２の各々には、レジスタが２つだけ設けられるのではなく、２より大きい数（図の例では８つ）のレジスタが設けられている。データバス１４は、一般に、異なるアクセスに対応するデータを交互に送ることができない。従って、１つのアクセスに対応するデータの伝送が完了するまで、別のアクセスに対応するデータを保持しておく必要がある。この必要性のために、２より大きい数のレジスタが設けられている。
【００７０】
以上、本発明を実施例に基づいて説明したが、本発明は上記実施例に限定されるものではなく、特許請求の範囲に記載の範囲内で様々な変形が可能である。
【図面の簡単な説明】
【００７１】
【図１】記憶データのビット幅よりも小さな入出力ビット数のＤＲＡＭを複数個用いるシステム構成の一例を示す図である。
【図２】本発明によるＤＲＡＭコントローラを用いたシステムの第１実施例を示す図である。
【図３】図１のＤＲＡＭコントローラによるＤＲＡＭへのアクセスと図２のＤＲＡＭコントローラによるＤＲＡＭへのアクセスとを比較して示す図である。
【図４】図１のＤＲＡＭコントローラによるＤＲＡＭへのアクセスと図２のＤＲＡＭコントローラによるＤＲＡＭへのアクセスとを比較して示す図である。
【図５】本発明によるＤＲＡＭコントローラを用いたシステムの第２実施例を示す図である。
【図６】本発明によるＤＲＡＭコントローラを用いたシステムの第３実施例を示す図である。
【図７】図２のＤＲＡＭコントローラによるＤＲＡＭへのアクセスと図６のＤＲＡＭコントローラによるＤＲＡＭへのアクセスとを比較して示す図である。
【図８】本発明によるＤＲＡＭコントローラを用いたシステムの第４実施例を示す図である。
【図９】本発明によるＤＲＡＭコントローラを用いたシステムの第５実施例を示す図である。
【図１０】アドレス変換によるメモリマップの変換を説明するための図である。
【図１１】図２に示す第１実施例の場合の制御回路のうちでアドレス制御に関する回路部分を示す図である。
【図１２】図６に示す第３実施例の場合の制御回路のうちでアドレス制御に関する回路部分を示す図である。
【図１３】デコーダの入出力関係を示す図である。
【図１４】図２のＤＲＡＭコントローラのバッファの構成の一例を示す図である。
【符号の説明】
【００７２】
１０−１〜１０−ｎ  バスマスタ
１１−１、１１−２  ＤＲＡＭ
１２  ＤＲＡＭコントローラ
１３  アドレス／コントロールバス
１４  データバス
１５−１、１５−２  アドレス／コントロールバス
１６−１、１６−２  データバス
２０、２０Ａ、２０Ｂ、２０Ｃ  ＤＲＡＭコントローラ
【図１】
2008146330.tif 000003
【図２】
2008146330.tif 000004
【図３】
2008146330.tif 000005
【図４】
2008146330.tif 000006
【図５】
2008146330.tif 000007
【図６】
2008146330.tif 000008
【図７】
2008146330.tif 000009
【図８】
2008146330.tif 000010
【図９】
2008146330.tif 000011
【図１０】
2008146330.tif 000012
【図１１】
2008146330.tif 000013
【図１２】
2008146330.tif 000014
【図１３】
2008146330.tif 000015
【図１４】
2008146330.tif 000016