(57)【要約】【課題】マスタは、メモリが内蔵されたペリフェラルを使用しない場合に、その内蔵メモリを単体のメモリとして使用することができない。【解決手段】メモリ制御装置は、主メモリ（例えば、ＲＡＭ）３５−１，３５−２と、内蔵メモリ（例えば、ＲＡＭ）４３−１，４３−２を有するペリフェラル４０−１，４０−２と、主メモリ及び内蔵メモリをアクセスするためのマスタ２０と、アクセスの対象となるアクセスモードを設定するモード設定レジスタ３６とを有している。更に、設定されたアクセスモードに基づき、マスタ２０から出力されたアドレスをデコードしてデコード結果を出力するアドレスデコーダ３１と、設定されたアクセスモードに応答して、内蔵メモリに供給するためのデコード結果を含むアクセス情報を選択するセレクタ４２−１，４２−２とを有している。【選択図】図１
2008097135.tif 000002
【特許請求の範囲】
【請求項１】
データを記憶する主メモリと、
データを記憶する内蔵メモリを有する周辺装置と、
前記主メモリ及び前記内蔵メモリに対するアドレスを出力して前記主メモリ及び前記内蔵メモリをアクセスするマスタと、
前記主メモリ及び前記内蔵メモリに対するアクセスの対象となるアクセスモードを設定するモード設定手段と、
前記設定されたアクセスモードに基づき、前記マスタから出力された前記アドレスをデコードしてデコード結果を出力するデコード手段と、
前記設定されたアクセスモードに応答して、前記内蔵メモリに供給するための前記デコード結果を含むアクセス情報を選択するセレクタと、
を有することを特徴とするメモリ制御装置。
【請求項２】
請求項１記載のメモリ制御装置は、更に、
前記主メモリ及び前記内蔵メモリにおけるスタートアドレスを設定し、前記設定されたスタートアドレスを前記デコード手段に与えて、前記マスタから出力された前記アドレスと比較させて前記デコード手段にデコードさせるアドレス設定手段を有することを特徴とするメモリ制御装置。
【請求項３】
前記マスタと前記主メモリ及び前記周辺装置とは、バスを介して相互に接続されていることを特徴とする請求項１又は２記載のメモリ制御装置。
【請求項４】
前記主メモリ及び前記内蔵メモリは、随時読み書き可能なメモリであることを特徴とする請求項１〜３のいずれか１項に記載のメモリ制御装置。
【請求項５】
前記モード設定手段は、モード設定レジスタであることを特徴とする請求項１〜４のいずれか１項に記載のメモリ制御装置。
【請求項６】
前記デコード手段は、デコード回路であることを特徴とする請求項１〜５のいずれか１項に記載のメモリ制御装置。
【請求項７】
前記アドレス設定手段は、アドレス設定レジスタであることを特徴とする請求項１〜６のいずれか１項に記載のメモリ制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、大規模集積回路（以下「ＬＳＩ」という。）等の半導体集積回路等におけるメモリ制御装置に関するものである。
【背景技術】
【０００２】
従来、マスタにより複数のメモリ（例えば、随時読み書き可能なメモリ（以下「ＲＡＭ」という。）をアクセスするためのメモリ制御装置に関する技術としては、例えば、次のような文献等に記載されるものがあった。
【０００３】
【特許文献１】特開平５−１２７９８８号公報
【特許文献２】特開２００３−４４３０６号公報
【０００４】
図２は、特許文献１、２等に記載された従来のメモリ制御装置を示す概略の構成図である。
【０００５】
このメモリ制御装置は、例えば、ＬＳＩにより構成され、装置全体をプログラム制御するマスタ１と、データバス２ａ、アドレスバス２ｂ及び制御バス２ｃからなるシステムバス２と、そのマスタ１にシステムバス２を介して接続されたＲＡＭ制御回路３と、このＲＡＭ制御回路３に接続された主メモリである複数（例えば、２個）のＲＡＭ４−１，４−２と、そのマスタ１にシステムバス２を介して接続された複数（例えば、２個）の周辺装置（以下「ペリフェラル」という。）１０−１，１０−２とを有している。
【０００６】
システムバス２の内、データバス２ａは、リードデータＲＤ及びライトデータＷＤ等を伝送するもの、アドレスバス２ｂは、アクセス対象のアドレスＡＤを伝送するもの、制御バス２ｃは、リード／ライト（以下「Ｒ／Ｗ」という。）制御信号ＣＳ等を伝送するものである。ＲＡＭ制御回路３は、アドレスデコーダ３ａ、スイッチ回路３ｂ、及びセレクタ３ｃを有している。各ペリフェラル１０−１，１０−２は、メモリアクセス等を行う制御回路１１−１，１１−２、及び内蔵メモリであるＲＡＭ１２−１，１２−２等により構成されている。
【０００７】
このように構成されたメモリ制御装置の動作を説明する。
マスタ１は、アドレスＡＤ、及びＲ／Ｗ制御信号ＣＳによってＲＡＭ制御回路３又はペリフェラル１０−１，１０−２２をアクセスする。ＲＡＭ制御回路３は、マスタ１からのアドレスＡＤをアドレスデコーダ３ａによってデコードし、ＲＡＭ４−１，４−２へのアドレス、Ｒ／Ｗ制御信号ＣＳを生成して出力する。読み出し（リード）時は、ＲＡＭ４−１又は４−２からのリードデータＲＤを、アドレスデコーダ３ａによってデコードされた結果に従って選択し、マスタ１へ出力する。書き込み（ライト）時は、マスタ１からのライトデータＷＤを、アドレスデコーダ３ａによってデコードされた結果に従い、ＲＡＭ４−１又は４−２へ出力する。
【０００８】
ペリフェラル１０−１の内蔵ＲＡＭ１２−１は、ペリフェラル１０−１の制御回路１１−１によってのみアクセスされる。ペリフェラル１０−２の内蔵ＲＡＭ１２−２は、ペリフェラル１０−２の制御回路１１−２によってのみアクセスされる。
【発明の開示】
【発明が解決しようとする課題】
【０００９】
しかしながら、従来のメモリ制御装置では、ペリフェラル１０−１，１０−２がＲＡＭ１２−１，１２−２を内蔵していても、ＲＡＭ制御回路３からはアクセスできないため、ペリフェラル１０−１，１０−２を使用しない場合に、ペリフェラル内蔵ＲＡＭ１２−１，１２−２を単体のＲＡＭとして使用することができないという課題があった。
【課題を解決するための手段】
【００１０】
本発明のメモリ制御装置では、データを記憶する主メモリと、データを記憶する内蔵メモリを有するペリフェラルと、前記主メモリ及び前記内蔵メモリに対するアドレスを出力して前記主メモリ及び前記内蔵メモリをアクセスするマスタと、前記主メモリ及び前記内蔵メモリに対するアクセスの対象となるアクセスモードを設定するモード設定手段と、前記設定されたアクセスモードに基づき、前記マスタから出力された前記アドレスをデコードしてデコード結果を出力するデコード手段と、前記設定されたアクセスモードに応答して、前記内蔵メモリに供給するための前記デコード結果を含むアクセス情報を選択するセレクタとを有している。
【発明の効果】
【００１１】
本発明によれば、メモリを内蔵するペリフェラルを使用しない場合に、その内蔵メモリをマスタからアクセス可能なメモリとして使用することができ、より幅広い要求に対応することができる。
【発明を実施するための最良の形態】
【００１２】
メモリ制御装置は、主メモリ（例えば、ＲＡＭ）と、内蔵メモリ（例えば、ＲＡＭ）を有するペリフェラルと、前記主メモリ及び前記内蔵メモリに対するアドレスを出力して前記主メモリ及び前記内蔵メモリをアクセスするマスタと、前記主メモリ及び前記内蔵メモリに対するアクセスの対象となるアクセスモードを設定するモード設定レジスタと、前記設定されたアクセスモードに基づき、前記マスタから出力された前記アドレスをデコードしてデコード結果を出力するデコード回路と、前記設定されたアクセスモードに応答して、前記内蔵メモリに供給するための前記デコード結果を含むアクセス情報を選択するセレクタとを有している。
【実施例１】
【００１３】
（実施例１の構成）
図１は、本発明の実施例１を示すメモリ制御装置の概略の構成図である。
このメモリ制御装置は、例えば、ＬＳＩ等により構成されており、装置全体をプログラム制御する中央処理装置（以下「ＣＰＵ」という。）等のマスタ２０を有し、このマスタ２０がシステムバス２１に接続されている。システムバス２１は、リードデータＲＤ及びライトデータＷＤ等を伝送するデータバス２１ａと、アクセス対象のアドレスＡＤ等を伝送するアドレスバス２１ｂと、Ｒ／Ｗ制御信号ＣＳ等を伝送する制御バス２１ｃとにより構成されている。
【００１４】
システムバス２１には、ＲＡＭ制御回路３０を介して複数（任意の数、例えば２個）の主メモリ（例えば、ＲＡＭ）３５−１，３５−２が接続されると共に、内蔵メモリ（例えば、ＲＡＭ）４３−１，４３−２をそれぞれ有するＵＳＢコントローラ等の複数（任意の数、例えば２個）のペリフェラル４０−１，４０−１が接続されている。これらのＲＡＭ制御回路３０及びペリフェラル４０−１，４０−２には、モード設定手段（例えば、モード設定レジスタ）３６が接続されている。モード設定レジスタ３６は、ＲＡＭ３５−１，３５−２，４３−１，４３−２に対するアクセスの対象となるアクセスモードを設定するレジスタである。
【００１５】
ＲＡＭ制御回路３０は、システムバス２１とＲＡＭ３５−１，３５−２，４３−１，４３−２とを結ぶバスブリッジのような機能を有し、デコード手段（例えば、デコード回路であるアドレスデコーダ）３１、スイッチ回路３２、及びセレクタ３３を有している。アドレスデコーダ３１は、モード設定レジスタ３６で設定されたアクセスモードに基づき、マスタ２０から出力されたアドレスＡＤをデコードしてデコード結果を出力する回路であり、これにはスイッチ回路３２及びセレクタ３３が接続されている。
【００１６】
スイッチ回路３２は、マスタ２０から出力されるライトデータＷＤ及びＲ／Ｗ制御信号ＣＳを、デコード結果により切り替えて、ＲＡＭ３５−１，３５−２及びペリフェラル４０−１，４０−２に与える回路である。セレクタ３３は、ＲＡＭ３５−１，３５−２，４３−１，４３−２から読み出されたリードデータＲＤを、デコード結果により選択してマスタ２０へ与える回路である。
【００１７】
各ペリフェラル４０−１，４０−２は、各制御回路４１−１，４１−２、各セレクタ４２−１，４２−２、内蔵された各ＲＡＭ４３−１，４３−２、及び各スイッチ回路４４−１，４４−２等により構成されている。各制御回路４１−１，４１−２は、システムバス２１に接続され、各ペリフェラル全体の制御を行うと共に各ＲＡＭ４３−１，４３−２に対するアクセスを行う回路であり、これには各セレクタ４２−１，４２−２、各ＲＡＭ４３−１，４３−２、及び各スイッチ回路４４−１，４４−２がそれぞれ接続されている。
【００１８】
各セレクタ４２−１，４２−２は、モード設定レジスタ３６で設定されたアクセスモードに基づき、ＲＡＭ制御回路３０から与えられるデコード結果、ライトデータＷＤ及びＲ／Ｗ制御信号ＣＳと、各制御回路４１−１，４１−２から与えられるアドレスＡＤ、ライトデータＷＤ及びＲ／Ｗ制御信号ＣＳとの、いずれか一方を選択して各ＲＡＭ４３−１，４３−２に与える回路である。各スイッチ回路４４−１，４４−２は、モード設定レジスタ３６で設定されたアクセスモードに基づき、各ＲＡＭ４３−１，４３−２から読み出されたリードデータＲＤを切り替えてセレクタ３３又は各制御回路４１−１，４１−２に与える回路である。
【００１９】
（実施例１の概略の動作）
マスタ２０は、アドレスＡＤ、及びＲ／Ｗ制御信号ＣＳによってＲＡＭ制御回路３０、及びペリフェラル４０−１，４０−２をアクセスする。ＲＡＭ制御回路３０は、モード設定レジスタ３６で設定されたアクセスモード、及びマスタ２０からのアドレスＡＤを、アドレスデコーダ３１によってデコードし、デコード結果であるＲＡＭ３５−１，３５−２，４３−１，４３−２へのアドレスＡＤ、及びＲ／Ｗ制御信号ＣＳを生成して出力する。リード時は、ＲＡＭ３５−１，３５−２，４３−１又は４３−２のいずれか１つからのリードデータＲＤを、アドレスデコーダ３１のデコード結果に従って選択し、マスタ２０へ出力する。
【００２０】
ライト時は、マスタ２０からのライトデータＷＤを、アドレスデコーダ３１のデコード結果に従って、ＲＡＭ３５−１，３５−２，４３−１又は４３−２のいずれか１つへ出力する。ペリフェラル４０−１の内蔵ＲＡＭ４３−１は、制御回路４１−１又はＲＡＭ制御回路３０からのアドレスＡＤ、Ｒ／Ｗ制御信号ＣＳ、及びライトデータＷＤが、セレクタ４２−１により選択されてアクセスされる。ペリフェラル４０−２の内蔵ＲＡＭ４３−２は、ペリフェラル４０−２の制御回路４１−２又はＲＡＭ制御回路３０からのアドレスＡＤ、Ｒ／Ｗ制御信号ＣＳ、及びライトデータＷＤが、セレクタ４２−２により選択されてアクセスされる。
【００２１】
（実施例１の詳細な動作）
図３（ａ）〜（ｄ）は、図１のマスタ２０から見たＲＡＭアドレスマップを示す図である。この図３中の「予約領域」は、ＲＡＭやレジスタ等、何も割り当てられていないアクセス禁止領域であり、例えば、このアクセス禁止領域にアクセスするとエラー応答させたりする。
【００２２】
ペリフェラル４０−１，４０−２とも使用する場合、モード設定レジスタ３６に例えば‘０ｘ０’を設定する。
【００２３】
モード設定レジスタ３６の値が‘０ｘ０’の時、アドレスデコーダ３１は、ＲＡＭ３５又は３５−２へのアドレスＡＤをデコードする。ペリフェラル４０−１のセレクタ４２−１は、モード設定レジスタ３６の値に従い、制御回路４１−１からのアドレスＡＤ、Ｒ／Ｗ制御信号ＣＳ、及びライトデータＷＤを選択してＲＡＭ４３−１へ供給する。ペリフェラル４０−２のセレクタ４２−２は、モード設定レジスタ３６の値に従い、制御回路４１−２からのアドレスＡＤ、Ｒ／Ｗ制御信号ＣＳ、及びライトデータＷＤを選択してＲＡＭ４３−２へ供給する。このように、モード設定レジスタ３６に‘０ｘ０’を設定した時のマスタ２０から見たＲＡＭアドレスマップが、図３（ａ）に示されている。
【００２４】
ペリフェラル４０−１を使用しない場合、モード設定レジスタ３６に例えば‘０ｘ１’を設定する。
【００２５】
モード設定レジスタ３６の値が‘０ｘ１’の時、アドレスデコーダ３１は、ＲＡＭ３５−１，３５−２又は４３−１のいずれか１つへのアドレスＡＤをデコードする。ペリフェラル４０−１のセレクタ４２−１は、モード設定レジスタ３６の値に従い、ＲＡＭ制御回路３０からのアドレスＡＤ、Ｒ／Ｗ制御信号ＣＳ、及びライトデータＷＤを選択してＲＡＭ４３−１へ供給する。ペリフェラル４０−２のセレクタ４２−２は、モード設定レジスタ３６の値に従い、制御回路４１−２からのアドレスＡＤ、Ｒ／Ｗ制御信号ＣＳ、及びライトデータＷＤを選択してＲＡＭ４３−２へ供給する。このように、モード設定レジスタ３６に‘０ｘ１’を設定した時のマスタ２０から見たＲＡＭアドレスマップが、図３（ｂ）に示されている。
【００２６】
ペリフェラル４０−２を使用しない場合、モード設定レジスタ３６に例えば‘０ｘ２’を設定する。
【００２７】
モード設定レジスタ３６の値が‘０ｘ２’の時、アドレスデコーダ３１は、ＲＡＭ３５−１，３５−２又は４３−２のいずれか１つへのアドレスをデコードする。ペリフェラル４０−１のセレクタ４２−１は、モード設定レジスタ３６の値に従い、制御回路４１−１からのアドレスＡＤ、Ｒ／Ｗ制御信号ＣＳ、及びライトデータＷＤを選択してＲＡＭ４３−１へ供給する。ペリフェラル４０−２のセレクタ４２−２は、モード設定レジスタ３６の値に従い、ＲＡＭ制御回路３０からのアドレスＡＤ、Ｒ／Ｗ制御信号ＣＳ、及びライトデータＷＤを選択してＲＡＭ４３−２へ供給する。このように、モード設定レジスタ３６に‘０ｘ２’を設定した時のマスタ２０から見たＲＡＭアドレスマップが、図３（ｃ）に示されている。
【００２８】
ペリフェラル４０−１、２０４とも使用しない場合、モード設定レジスタ３６に例えば‘０ｘ３’を設定する。
【００２９】
モード設定レジスタ３６の値が‘０ｘ３’の時、アドレスデコーダ３１は、ＲＡＭ３５−１，３５−２，４３−１又は４３−２のいずれか１つへのアドレスＡＤをデコードする。ペリフェラル４０−１のセレクタ４２−１は、モード設定レジスタ３６の値に従い、制御回路４１−１からのアドレスＡＤ、Ｒ／Ｗ制御信号ＣＳ、及びライトデータＷＤを選択してＲＡＭ４３−１へ供給する。ペリフェラル４０−２のセレクタ４２−２は、モード設定レジスタ３６の値に従い、ＲＡＭ制御回路３０からのアドレスＡＤ、Ｒ／Ｗ制御信号ＣＳ、及びライトデータＷＤを選択してＲＡＭ４３−２へ供給する。このように、モード設定レジスタ３６に‘０ｘ３’を設定した時のマスタ２０から見たＲＡＭアドレスマップが、図３（ｄ）に示されている。
【００３０】
（実施例１の効果）
本実施例１によれば、ＲＡＭ４３−１，４３−２をそれぞれ内蔵するペリフェラル４０−１，４０−２を使用しない場合に、その内蔵ＲＡＭ４３−１，４３−２を他のマスタ２０からアクセス可能なＲＡＭとして使用することができ、より幅広い要求に対応することができる。
【実施例２】
【００３１】
（実施例２の構成）
図４は、本発明の実施例２を示すメモリ制御装置の概略の構成図であり、実施例１を示す図１中の要素と共通の要素には共通の符号が付されている。
【００３２】
本実施例２のメモリ制御装置では、実施例１のメモリ制御装置に対して新たにアドレス設定手段（例えば、アドレス設定レジスタ）３７が追加され、これに対応して実施例１のＲＡＭ制御回路３０に代えて、これとは構成の異なるＲＡＭ制御回路３０Ａが設けられている。アドレス設定レジスタ３７は、ＲＡＭ３５−１，３５−２，４３−１，４３−２におけるスタートアドレス（開始アドレス）を設定し、この設定されたスタートアドレスをＲＡＭ制御回路３０Ａに与えるレジスタである。
【００３３】
ＲＡＭ制御回路３０Ａは、実施例１のアドレスデコーダ３１とは構成の異なるアドレスデコーダ３１Ａと、実施例１と同様のスイッチ回路３２及びセレクタ３３とを有している。アドレスデコーダ３１Ａは、アドレス設定レジスタ３７により設定されたスタートアドレスと、マスタ２０からのアドレスＡＤとを比較して、ＲＡＭ３５−１，３５−２，４３−１又は４３−２のいずれか１つへのアドレスＡＤをデコードするものである。その他の構成は、実施例１と同様である。
【００３４】
（実施例２の動作）
アドレス設定レジスタ３７に、各ＲＡＭ３５−１，３５−２，４３−１，４３−２のスタートアドレスを、重複しないように設定する。例えば、アドレス０ｘ００００４０００〜０ｘ００００７ＦＦＦにＲＡＭが割り当てられていれば、スタートアドレスは０ｘ００００４０００となる。スタートアドレスを重複しないように設定するには、例えば、ＲＡＭ３５−１をアドレス０ｘ００００４０００〜０ｘ００００７ＦＦＦに割り当てたら、ＲＡＭ３５−２のスタートアドレスは０ｘ００００８０００以上に設定すればよい。
【００３５】
仮に、ＲＡＭ３５−１とＲＡＭ３５−２のスタートアドレスが重複すると、データ書き込み時は、重複したＲＡＭ３５−１，３５−２に同じデータが書き込まれ、データ読み出し時は、重複したＲＡＭ３５−１，３５−２からそれぞれデータが読み出され、あたかもＲＡＭが１つしかないように振る舞い、メモリ拡張効果等が得られなくなる。
【００３６】
アドレス設定レジスタ３７にスタートアドレスを設定した後、マスタ２０からアクセスが発生すると、アドレスデコーダ３１Ａでは、アドレス設定レジスタ３７で設定された値と、マスタ２０からのアドレスＡＤとを比較して、ＲＡＭ３５−１，３５−２，４３−１又は４３−２のいずれか１つへのアドレスＡＤをデコードする。その他の動作は、実施例１と同様である。
【００３７】
（実施例２の効果）
本実施例２によれば、アドレス設定レジスタ３７を設けたので、各ＲＡＭ３５−１，３５−２，４３−１，４３−２のスタートアドレスに任意の設定値を与えることができる。そのため、モード設定レジスタ３６毎の各ＲＡＭ３５−１，３５−２，４３−１，４３−２のスタートアドレスを装置に実装しておく必要がなく、メモリ制御装置の再利用性が高まり、ＬＳＩ等の開発期間を短縮することができる。
【００３８】
例えば、製品間で搭載ＲＡＭ３５−１，３５−２の容量やＲＡＭ内蔵のペリフェラル４０−１，４０−２が異なる場合、ＲＡＭのアドレスマップも当然異なるため、そのまま流用はできず、再度装置を設計し直すことになるが、本実施例２では、アドレス設定レジスタ３７によって、ソフトウェア上で自由にＲＡＭ割り当てのスタートアドレスを変更できるため、ハードウェア的には、全く同じ装置を使用することができる。これにより、メモリ制御装置の再利用性が高まり、ＬＳＩ等の開発期間を短縮することができる。
【図面の簡単な説明】
【００３９】
【図１】本発明の実施例１を示すメモリ制御装置の概略の構成図である。
【図２】従来のメモリ制御装置を示す概略の構成図である。
【図３】図１のマスタ２０から見たＲＡＭアドレスマップを示す図である。
【図４】本発明の実施例２を示すメモリ制御装置の概略の構成図である。
【符号の説明】
【００４０】
２０      マスタ
２１      システムバス
３０，３０Ａ      ＲＡＭ制御回路
３１，３１Ａ      アドレスデコーダ
３５−１，３５−２，４３−１，４３−２      ＲＡＭ
３６      モード設定レジスタ
３７      アドレス設定レジスタ
４０−１，４０−２      ペリフェラル
【図１】
2008097135.tif 000003
【図２】
2008097135.tif 000004
【図３】
2008097135.tif 000005
【図４】
2008097135.tif 000006