(57)【要約】【課題】従来のメモリインタフェースはメモリ側のアドレッシング機能を考慮していない。またメモリ側もシステム側のアドレッシング機能を考慮していない。この場合、内部アドレスのインクリメント動作のみを実行させることができるメモリとバスマスタ間のバースト転送の場合や、逆に、内部アドレスのラッピング動作のみを実行させることができるメモリとバスマスタ間のバースト転送の場合には、システム側とメモリ側とでアドレッシング機能の不整合が生じる場合がある。【解決手段】バスマスタからのバースト転送命令を受け、対応するメモリにバースト転送命令に基づく転送命令を発効するメモリインタフェースであって、バスマスタのアドレッシングモードとメモリのアドレッシングモードが異なっている場合に、アドレッシングモードの違いとバースト転送命令とに基づき第１の転送命令を生成してメモリに供給することを特徴とするメモリインタフェース。【選択図】図１
2008059565.tif 000002
【特許請求の範囲】
【請求項１】
バスマスタからのバースト転送命令を受け、対応するメモリに前記バースト転送命令に基づく転送命令を発効するメモリインタフェースであって、
前記バスマスタのアドレッシングモードと前記メモリのアドレッシングモードが異なっている場合に、アドレッシングモードの違いと前記バースト転送命令とに基づき第１の転送命令を生成して前記メモリに供給することを特徴とするメモリインタフェース。
【請求項２】
前記第１の転送命令のバースト開始アドレスとバースト転送回数とを、前記アドレッシングモードの違いと前記バースト転送命令とに基づいて設定することを特徴とする請求項１記載のメモリインタフェース。
【請求項３】
前記バースト転送命令を前記第１の転送命令として複数の転送命令に分割することを特徴とする請求項１記載のメモリインタフェース。
【請求項４】
前記複数の転送命令の一つの実行が完了したことによって前記メモリから出力される制御信号に応答して前記複数の転送命令のうち次に実行されるべき転送命令を前記メモリに供給することを特徴とする請求項３記載のメモリインタフェース。
【請求項５】
前記バースト転送命令を、前記バスマスタと前記メモリのデータ幅の違い、前記バスマスタと前記メモリのバースト回数の違い、及び前記バースト転送命令の転送開始アドレスがメモリの所定のワード境界に有るか否かの、少なくとも一つと前記アドレッシングモードの違いとに基づいて前記第１の転送命令として複数の転送命令に分割することを特徴とする請求項３記載のメモリインタフェース。
【請求項６】
前記メモリのアドレッシングモードを示す情報を保持するレジスタを備えることを特徴とする請求項１乃至６記載のメモリインタフェース。
【請求項７】
前記複数の転送命令の転送開始アドレスが異なっていることを特徴とする請求項３乃至６記載のメモリインタフェース。
【請求項８】
前記１乃至６に記載されたメモリインタフェースと、前記バスマスタとを備えることを特徴とするデータプロセッサ。
【請求項９】
前記１乃至６に記載されたメモリインタフェースと、前記バスマスタ、及び前記メモリを備えることを特徴とするデータ処理システム。
【請求項１０】
バスマスタから出力されたバースト転送命令をメモリに供給するメモリ制御方法であって、
前記バスマスタと前記メモリのアドレッシングモードとが異なっているか否かを判定する判定ステップと、
異なっている場合に前記バースト転送命令を複数の転送命令に分割する分割ステップと、
前記分割された複数の転送命令を順次前記メモリに出力する出力ステップと、を備えることを特徴とするメモリ制御方法。
【請求項１１】
前記出力ステップは、前記メモリに出力された複数の転送命令の内の一つの転送命令の実行が完了したことに応答して、前記一つの転送命令に後続する前記複数の転送命令の内の転送命令を前記メモリに出力するステップを備えることを特徴とする請求項１０記載のメモリ制御方法。
【請求項１２】
前記分割ステップは、前記バスマスタと前記メモリのデータ幅の違い、前記バスマスタと前記メモリのバースト回数の違い、及び、前記バースト転送命令の転送開始アドレスが前記メモリの所定のワード境界に有るか否か、少なくとも一つと前記アドレッシングモードの違いとに基づいて前記バースト転送命令を分割するステップを備えることを特徴とする請求項１０記載のメモリ制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリインタフェース装置及びその制御方法に関し、特に、バーストメモリアクセスを制御するメモリインターフェース装置及びその制御方法に関する。
【背景技術】
【０００２】
近年のＣＰＵを含む半導体装置において、ＣＰＵの高速化、複雑化に呼応して、大容量で、より高速なバースト・アクセスを行えるメモリが要求されており、その種類も多種多様に開発されてきている。
【０００３】
図１は、一般的なコンピュータシステムの構成の典型例を示す図である。通常、図１のデータプロセッサ１は、ＣＰＵ（中央処理装置）１３とその他の機能ブロックで構成され、ＤＭＡ転送を制御するＤＭＡＣ（ＤＭＡコントローラ）１４や、メモリインターフェース回路１２等を備えている。
【０００４】
メモリインターフェース回路１２は、ＣＰＵ１３と内部バス（内部アドレスバス及び内部データバス）を介して接続されると共に、アクセスサイクルを制御するステートマシン１０と、バスインターフェース１１などで構成されるのが一般的である。なお、後述される本発明のステートマシンも、図１のメモリインターフェース回路１２内に実装される。
【０００５】
図２は、特許文献１に開示されているメモリインターフェース回路の構成を示す図である。このメモリインターフェース回路は、図１に示す一般的なコンピュータシステム構成に用いられる。図２の構成の特徴は、ステートマシン１０にある。
【０００６】
図２のステートマシン１０は、メモリインターフェースに内蔵されるシステム内部レジスタ（不図示）から、
ポートサイズ、
Ｉ−ＴＹＰＥ（バースト転送条件）、
ＡＣＫ＿ＥＮ（後述するＴＡ及びＡＡＣＫのイネーブル）、
の情報を受け取る。
【０００７】
図２のステートマシン１０は、
ＡＡＣＫ（アドレスアクノリッジ）信号、及び、
ＴＡ（転送アクノリッジ）信号、
を外部メモリ（図１のメモリ２１、２２等）から受け取る。
【０００８】
更に、このステートマシン１０は、ＣＰＵ（図１の１３）から、キャッシュ充填要求信号を含めて制御信号を受け取る。
【０００９】
また、ステートマシン１０は、ＤＭＡコントローラ（図１の１４）から、
ＤＭＡ要求信号、及び、
ＢＤＩＰＤ信号（ＤＭＡバーストデータ進行中）、
を含む制御信号を受け取る。
【００１０】
また、ステートマシン１０は、
ＴＳ（転送開始）、
ＢＵＲＳＴ（バーストサイクル）、
ＦＩＸ（固定バースト・アクセス）、及び、
ＢＤＩＰ（バーストデータ進行中）／ＬＡＳＴ（バーストの最後のビートを示す）、  なる出力信号を有する。
【００１１】
図２のステートマシン１０は、伝統的な直列的論理状態マシンであり、図３（固定バーストモード）や図４（可変バーストモード）のタイミング図において示されるように、ステートマシン１０により、信号ＴＳ、ＢＵＲＳＴ、ＦＩＸ、及びＢＤＩＰ／ＬＡＳＴ等が制御されている。なお、図３、図４は、特許文献１の図２、図３に対応しており、詳細は、特許文献１の関連説明に記載されているため、説明を省略する。
【００１２】
図５は、図２に示した従来のステートマシンの動作を説明するための図である。従来のステートマシンは、バスマスタ（ＣＰＵやＤＭＡＣなど）から、バースト転送命令、アドレスデータを受取り、さらに、システム内部レジスタに格納されたメモリ情報、バスサイズ、バースト可／不可などの情報を受取る。なお、バースト転送命令には、バースト命令の種類、開始（先頭）アドレス、バスビットサイズの情報が含まれる。
【００１３】
このステートマシンは、伝統的な直列的論理状態マシンであることから、非転送時は、アイドルステートに遷移している。
【００１４】
バスマスタより発行された転送命令が、シングル転送であれば、図５のシングルステートへ遷移する。
【００１５】
また、バスマスタより発行された転送命令はバースト転送であるが、アクセスするメモリがバースト禁止の場合にも、シングルステートへ遷移し、バースト転送を、複数のシングル転送として分割処理する。
【００１６】
一方、アクセスするメモリがバースト可能な場合で、メモリのポートサイズが３２ｂｉｔであれば、図５の３２ｂｉｔバスバースト・ステートへ遷移する。この場合、要求されたワード数分のバースト転送を行う。
【００１７】
アクセスするメモリがバースト可能な場合で、メモリのポートサイズが１６ｂｉｔであれば、図５の１６ｂｉｔバスバースト・ステートへ遷移する。この場合、まずバースト分割判定ステートで、スタートアドレスがダブルワード境界か、あるいはワード境界かを判定する。例えば、ワード単位のアドレッシングの場合、スタートアドレスの最下位ビットが”０”である場合、ダブルワード境界となる。バイト単位のアドレッシングの場合、スタートアドレスの最下位２ビットが”００”である場合、ダブルワード境界となる。
【００１８】
ダブルワード境界アドレスであれば、図５のバースト４ステート（１６ｂｉｔ×４）へ遷移し、２ｎ（ｎ＝１以上の整数）回の転送を繰り返す。
【００１９】
一方、ワード境界アドレスの場合、まず、１ワード分の転送を行うため、図５のバースト２ステート（１６ｂｉｔ×２）へ遷移し、その後、バースト４へ遷移し、ダブルワード境界にある転送を、複数回行う。最後に、残りの１ワード分を端数処理するため、再度、バースト２ステートへ遷移し、１ワード転送し一連の転送が終了する。
【００２０】
整理すると、４ワード転送の場合の転送ビート（サイクル）内訳は次のようになる。
【００２１】
３２ｂｉｔバスであれば、４ビート×１回、
１６ｂｉｔバスで、ダブルワード境界アドレスであれば、４ビート×２回、
１６ｂｉｔバスで、ワード境界アドレスであれば、２ビート×１回、４ビート×１回、
２ビート×１回となる。
【００２２】
周知のごとく、近年の半導体装置に使用されるメモリには、多種多様なものが存在している。例えばバーストメモリの内部アドレッシング機能に着目すると、インクリメンタル・アドレッシング又はラッピング・アドレッシングの、いずれか一方の状態でしか対応できないものもある。
【００２３】
インクリメンタル・アドレッシングとは、メモリ内部アドレス・カウンタが常に昇順で動作することをいう。
【００２４】
ラッピング・アドレッシングとは、メモリ内部アドレス・カウンタが設定最大値までカウントすると、再び０アドレスに戻るような巡回動作（ラップ）になることをいう。
【００２５】
システムにおけるバースト転送命令では、システムに依存してどちらのアドレッシング命令も発行される可能性がある。
【００２６】
なお、特許文献２には、複数ビットの任意の値をプリセット値とし、内部アクセスサイクルに同期してラップアラウンド計数動作を行い、プリセット値を順次更新して出力するラップアラウンドカウンタ回路（ＲＡＳ＊とＣＡＳ＊の双方がＬＯＷレベルのときの期間、ＬＯＷレベルのクロックＣＫを入力）を備え、ラップアラウンドカウンタ回路から出力されるアドレスビットを、アドレスラッチからのアドレスビットに置き換えてカラムアドレスデコーダに供給し、連続する複数のアドレスのメモリセルを任意の位置からラップアラウンドに選択させるラップアラウンドアクセスモードを有する構成が開示されている。
また、特許文献３には、ラップ・ビットが設定されていた場合、バースト読み取り装置は、データの現在ページをラッチし、データの次のワードを示すワード・ポインタを調整し非シーケンシャル・バースト読み取り順でラッチ、調整する構成が開示されている。
【００２７】
【特許文献１】特開平８−７７０９８号公報
【特許文献２】特開平５−１０１６４４号公報
【特許文献３】特開２００３−５０９８０３号公報
【発明の開示】
【発明が解決しようとする課題】
【００２８】
メモリインタフェース１２に設けられている従来のステートマシン１０は、メモリ側のアドレッシング機能を、考慮していない。また、メモリ側も、例えばラッピング動作することを前提にしており、システム側のアドレッシング機能について考慮していない。すなわち、アドレスラッピングできないインクリメントのみのメモリへの固定長バースト転送の場合や、逆に、アドレスラッピングしか出来ないメモリへの固定長バースト転送時に生じる問題が考慮されていない。そのため、システム側とメモリ側とでアドレッシング機能の不整合が起きる。
【００２９】
ここで、従来例のステートマシンに起こり得る転送時の問題について、その理由を説明する（以下は、本発明者の検討結果による）。
【００３０】
まず、アドレスラッピングできないメモリ（インクリメントのみ）に対して、３２ｂｉｔの４ワード固定長バースト転送で、スタートアドレスがダブルワード境界にアラインされていない場合、図７（Ａ）のように、システムアドレス（データプロセッサ側で期待してるアドレス）は、Ａ２→Ａ３→Ａ０→Ａ１（データプロセッサ側のアドレッシング機能がラッピングのため）のように遷移するが、メモリ内部アドレスは、Ａ２→Ａ３→Ａ４→Ａ５（メモリ側のアドレッシング機能がインクリメントのため）のようにインクリメントしてしまい、２ワード分、無効なデータ（無効なデータＤ４、Ｄ５）が読み出されてしまう。
【００３１】
更に、８ワード固定長バースト転送の場合だと、図７（Ｂ）のように、６ワード分、無効なデータ（無効なデータＤ８−Ｄ１３）を読み出してしまう。
【００３２】
一方、アドレスインクリメントできないメモリ（ラッピングのみ）に対して、３２ｂｉｔの４ワード固定長バースト転送で、スタートアドレスがダブルワード境界にアラインされていない場合、図８（Ａ）のように、システムアドレスは、Ａ２→Ａ３→Ａ４→Ａ５（システム側のアドレッシング機能がインクリメントのため）のようになるが、メモリ内部アドレスは、Ａ２→Ａ３→Ａ０→Ａ１のようにラッピングしてしまい、２ワード分、無効なデータが読み出されてしまう。
【００３３】
同様に、８ワード固定長バースト転送の場合、図８（Ｂ）のように、６ワード分、無効なデータを読み出してしまう。
【００３４】
システムとして予め無効な読み出しデータがあることがわかっていれば、ソフトウェア的に、再度、無効になったアドレスから、２回目のアクセスを行うことで対応可能であるが、最初の無効データを読み出した分の転送サイクルは無駄になっている。
【００３５】
この場合、ソフトウェアで適切な対処が施されなければ、最悪、システムのアボートを招く可能性もある。
【課題を解決するための手段】
【００３６】
本発明において、メモリインターフェースは、メモリのアドレッシング機能についての条件判断も行うようにしている。
【００３７】
本発明に係るメモリインターフェースは、バスマスタからのバースト転送命令を受け、対応するメモリにバースト転送命令に基づく転送命令を発効するメモリインタフェースであって、
バスマスタのアドレッシングモードとメモリのアドレッシングモードが異なっている場合に、アドレッシングモードの違いと前記バースト転送命令とに基づき第１の転送命令を生成してメモリに供給することを特徴とするメモリインタフェースである。  
【発明の効果】
【００３８】
本発明によれば、メモリ側とシステム側とでアドレッシング機能の異なるバーストメモリでも、システム側で発行したバーストアクセス命令をメモリコントローラが分割してメモリに供給しているため、冗長なバスサイクルの無いアクセスを可能にできる。この結果、効率的なバースト転送を実現することが可能となる。
【００３９】
また、システム側とメモリ側とでアドレッシング機能が異なっていても、冗長なバスサイクルを排除できるため、ＣＰＵを含んだ半導体装置で使用できるバーストメモリとしてアドレッシングを気にすることが必要無くなり、メモリ又はデータプロセッサの選択肢が広がり、より製品の汎用性を高めることができる。
【発明を実施するための最良の形態】
【００４０】
上記した本発明についてさらに詳細に説明すべく、添付図面を参照して以下に説明する。本発明に係る方法は、メモリインターフェース（図１の１２）による、バスマスタ（ＣＰＵ１３又はＤＭＡＣ１４等）とメモリ２１，２２間のバースト・メモリアクセス制御方法であって、インクリメンタル・アドレス方式でメモリ内部アドレスを生成するメモリに対して、バスマスタからラッピング・アドレス方式によるシステムアドレスでバースト・アクセスが行われた場合、アドレス方式の相違によりメモリ内部アドレスとシステムアドレスとの間に不一致が生じるアドレスの遷移位置で、一旦、バースト・アクセスを終了させた上で、システムアドレスとメモリ内部アドレス間でアドレスを整合させ（例えば図９（Ａ）、図９（Ｂ）のメモリ内部アドレスＡ０参照）、整合がなされたアドレスから、バースト転送を再開して、残りのワード分のアクセスを行うように制御する。  
【００４１】
本発明に係る方法は、メモリインターフェース（図１の１２）による、バスマスタ（ＣＰＵ又はＤＭＡＣ等）とメモリ間のバースト・メモリアクセス制御方法であって、ラッピング・アドレス方式でメモリ内部アドレスを生成するメモリに対して、バスマスタからインクリメンタル・アドレス方式によるシステムアドレスでバースト・アクセスが行われた場合、アドレス方式の相違によりメモリ内部アドレスとシステムアドレスとの間に不一致が生じるアドレスの遷移位置で、一旦、バースト・アクセスを終了させた上で、システムアドレスとメモリ内部アドレス間でアドレスを整合させ（例えば図１０（Ａ）のメモリ内部アドレスＡ４、図１０（Ｂ）のメモリ内部アドレスＡ８参照）、整合がなさ
れたアドレスから、バースト転送を再開し、残りのワード分のアクセスを行うように制御する。すなわち、メモリインタフェース１２は、バスマスタ（ＣＰＵ１３又はＤＭＡＣ１４）から受け取ったバーストアクセス命令を、メモリのアドレッシング方式及びバスマスタのアドレッシング方式によるアドレス遷移の不一致を検出する場所で分割し、バスマスタからのバーストアクセス命令を複数のバーストアクセス命令に分割することによって、アドレッシング方式の違いを吸収している。以下、実施例に即して詳細に説明する。
【００４２】
図６は、本発明の一実施例のステートマシンを説明するための図である。なお、特に制限されないが、以下では、本発明のステートマシンを、図１に示したメモリインターフェース１２に実装した例に即して説明する。
【００４３】
本実施例のステートマシンは、前記した従来例とは相違して、システム内部レジスタから、メモリ側のアドレッシング・モード情報（ラッピングかインクリメンタル）を取得する。
【００４４】
最初に、ステートマシンの状態はアイドルステートにあり、バスマスタからのバーストアクセス命令待ちの状態にあるものとする。アイドルステートにあるとき、バスマスタより発行されたバーストアクセス命令（バースト転送命令）がシングル転送であれば、図６のシングルステート（シングル16bit/32bit）へ遷移する。また、バスマスタより発行された転送命令はバースト転送であるが、アクセスするメモリがバースト禁止の場合にも、シングルステートへ遷移し、バースト転送を、複数のシングル転送として分割処理する。
【００４５】
バースト可能な場合であり、バースト転送の場合、システム内部レジスタの情報から、バスサイズを読み取り、アイドルステートから３２ｂｉｔバスバーストか１６ｂｉｔバスバーストのステートへ遷移する。
【００４６】
次に、システム内部レジスタの情報から、メモリ側のアドレッシング・モード（アドレッシング方式）を読み取り、システム側のアドレッシング・モードと異なる場合、バースト分割判定ステートへ遷移する。
【００４７】
ここで、
スタートアドレスのアライン位置と、
転送命令の種類（ラッピングバーストか、インクリメンタルバーストか）と、
メモリ側のアドレッシング・モードの種類、
によって、転送の分割の回数と割合、例えば８ワードの場合、２−６（２ワードと６ワードに２分割）であるか、あるいは、１−６−１（１ワード、６ワード、１ワードに３分割）であるかなどを決める。
【００４８】
具体的な条件については、使用するバーストメモリの仕様に合わせて適宜最適化するものとする。一例として、３２ｂｉｔバスの場合、ｎ＋ｍ＋ｋ・・・（ただしｎ、ｍ、ｋは整数）のように分割する。
【００４９】
１６ｂｉｔバスの場合も同様に、ｒ＋ｓ＋ｔ・・（ただし、ｒ、ｓ、ｔは２のべき乗）のように分割するが、バス幅は、３２ｂｉｔバスの１／２であることから、転送回数は、単純に、３２ｂｉｔの２倍になる。
【００５０】
図９、図１０は、本実施例におけるバースト転送リード動作例１、２をそれぞれ示す図であり、インクリメンタル・アドレッシング対応のメモリとラッピング・アドレッシング対応のメモリに対して、バスマスタからバースト・リード転送命令が発行された場合の動作を説明するための図である。
【００５１】
図９には、インクリメンタル・アドレッシングのメモリに対して、バスマスタからラッピング・アドレスでバースト・リード・アクセスを行った場合のタイミング動作の一例を示す。
【００５２】
図９（Ａ）に示すように、４ワード・バースト転送で、Ａ２→Ａ３→Ａ０→Ａ１のアドレスの場合、従来のステートマシンでは図７（Ａ）に示すように不一致が起こるが、本実施例では、Ａ２、Ａ３で２ワード読み出した後、Ａ３→Ａ０のアドレス遷移位置で一度、バースト・リードアクセスを終了し、再度、Ａ０アドレスから、バースト転送を再開後、残り２ワード分（Ａ０及びＡ１）を読み出すようにしている。すなわち、ステートマシン１０を含むメモリインターフェース１２は、バスマスタから出力されたＡ２から始まる４ワードのバースト転送命令を、Ａ２から始まる２ワードのバースト転送命令とＡ０から始まる２ワードのバースト転送命令とに分割し、メモリに供給している。具体的には、Ａ３→Ａ０のアドレス遷移位置で、メモリインターフェース（図１の１２）は、メモリからアクノリッジ信号ＴＡを受け、Ａ２から始まる４ワードのバースト・アクセスを終了させる。メモリインターフェース（図１の１２）は、このアクノリッジを受け取ると、バースト・リード長と、すでにリードしたワード長から、アドレスＡ３で転送を中断したことを認識し、アドレスＡ０から、残りの２ワード分のバースト・リードアクセスを再開する（Ａ０から始まる２ワードのバースト転送命令を発行する）。また、メモリ側のメモリ内部アドレスは、システムアドレスＡ０と整合が行われる。
【００５３】
メモリ側では、図９（Ａ）において、メモリ内部アドレスＡ３と、システムアドレスＡ０とアドレス整合がなされたアドレスＡ０の間の１クロックサイクルにおいては、リード・オペレーションは行われない。
【００５４】
システムアドレスは、アドレスＡ３のあと、見かけ上、アドレスＡ０にて２サイクル分、リードオペレーションを行ったことになり、あとのサイクルでアドレスＡ０に対するデータＤ０が読み出される。なお、アドレス遷移位置のサイクルにて、バースト・アクセスを終了させるために、メモリインターフェースが、メモリから受け取る信号は、転送完了を示すレディ信号等であってもよい。
【００５５】
また、同様に、８ワード・バースト転送では、Ａ６→Ａ７→Ａ０→Ａ１→Ａ２→Ａ３→Ａ４→Ａ５のアドレスの場合、従来のステートマシンでは図７（Ｂ）に示すようにＡ７→Ａ０のアドレス遷移位置不一致が起こるが、本実施例では２ワード（Ａ６，Ａ７）読み出した後、メモリがメモリインタフェースにアクノリッジ信号ＴＡを送って、一旦、バースト・アクセスを終了し（バスマスタには、ウェイトに見える）、再度、Ａ０アドレスから、バースト転送を再開後、残り６ワード分を読み出す。すなわち、メモリインタフェースは、バスマスタから出力されたＡ６から始まる８ワードのバースト転送命令を、Ａ６から始まる２ワードのバースト転送命令と、Ａ０から始まる６ワードのバースト転送命令とに分割して出力する。
【００５６】
これにより、バスマスタが要求するアドレスの有効データが、バスマスタからの１回のバースト転送命令ですべて読み出せる。なお、図１２は図７（A）に示したタイミングチャートをより詳細に示したものであり、図１３は図９（A）に示したタイミングチャートをより詳細に示したものである。図１３を参照すると、本実施の形態では、バスマスタが発行する一回のバースト転送命令に対して、外部アドレスバスに２度、バースト開始アドレスが出力される。例えば図１３の例では、最初にまずバースト開始アドレスA２が外部アドレスバスに出力され、次にバースト開始アドレスA０が外部アドレスバスに出力される。
【００５７】
次に、ラッピング・アドレッシングのメモリに対して、バスマスタからインクリメンタル・アドレスでバースト・リードアクセスを行った場合の動作を説明する。
【００５８】
図１０（Ａ）を参照すると、Ａ２から始まる４ワード・バースト転送で、Ａ２→Ａ３→Ａ４→Ａ５のアドレスの場合、従来例ではＡ３→Ａ４のアドレス遷移位置でアドレスの不一致が起こるが、本実施例では２ワード（Ａ２，Ａ３）読み出した後、一度、バースト・アクセスを終了（バスマスタにはウェイトに見える）し、再度、Ａ４アドレスからバースト転送を再開後、残り２ワード分を読み出すようにしている。Ａ３→Ａ４のアドレス遷移位置で、メモリインターフェース（図１の１２）は、メモリからアクノリッジ信号ＴＡを受け最初のバースト・アクセスを終了させる。メモリインターフェース（図１の１２）は、メモリから、このアクノリッジＴＡを受け取ると、バースト・リード長と、すでにリードしたワード長とに基づき、アドレスＡ４から、残りの２ワード分のバースト・リードアクセスを再開する。すなわち、バスマスタから出力されたＡ２から始まる４ワードのバースト転送命令は、メモリインタフェースによって、Ａ２から始まる２ワードのバースト転送命令と、Ａ４から始まる２ワードのバースト転送命令とに分割されてメモリに出力される。なお、メモリ側では、図１０（Ａ）において、メモリ内部アドレスのＡ３とＡ４の間の１クロックサイクルにおいては、リード・オペレーションは行われない。システムアドレスは、アドレスＡ３のあと、見かけ上、アドレスＡ４にて２サイクル分、リー
ドオペレーションを行ったことになり、あとのサイクルでアドレスＡ４に対するデータＤ４が読み出される。
【００５９】
同様に、図１０（Ｂ）を参照すると、８ワード・バースト転送ではＡ６→Ａ７→Ａ８→Ａ９→Ａ１０→Ａ１１→Ａ１２→Ａ１３のアドレスの場合、Ａ７→Ａ８のアドレス遷移位置で不一致が発生するが、２ワード（Ａ６，Ａ７）読み出した後、一旦、バースト・アクセスを終了し、再度、Ａ８アドレスからバースト転送を再開後、残り６ワード分を読み出す。すなわち、バスマスタから出力されたＡ６を開始アドレスとする８ワードのバースト転送命令は、メモリインタフェースによって、Ａ６を開始アドレスとする２ワードのバースト転送命令と、Ａ８を開始アドレスとする６ワードのバースト転送命令とに分割され、メモリに供給される。これにより、バスマスタが要求するアドレスの有効データが、バスマスタから出力された１回のバースト転送命令ですべて読み出せる。
【００６０】
以上の転送動作における、転送制御信号は、本発明が適用される、システムの仕様により、任意に設定される。
【００６１】
一般的なバーストメモリアクセスを行うデータシステムにおいて、バスマスタの要求アドレスにメモリ側が機能的に対応できないような場合でも、本発明のステートマシンを備えるメモリインタフェースであれば、バースト・スタートアドレス値とメモリ側のアドレッシング機能に応じて、バースト・アクセスサイクルを分割処理できるので、冗長な転送サイクル無しでアクセスすることができる。
【００６２】
本発明のステートマシンにおいて、アドレッシング・モード判定を、常に、固定に設定するような内部レジスタを設ければ、従来例と同じステートマシンとしても機能できる。これにより、アドレッシング・モード判定を必要としないようなバーストメモリでも、システムとして接続対応できる。
【００６３】
図１１は、本発明のステートマシンの一実施例の構成を示す図である。ステートマシンは、条件判別デコード回路１０１と、ステートカウンタ１０２と、サイクルカウンタ１０３と、３２ｂｉｔバス転送回路１０４と、１６ｂｉｔバス転送回路１０５と、転送制御信号出力回路１０６と、を備えている。これらの要素は概略以下のように動作する。
【００６４】
条件判別デコード回路１０１は、図２を参照して説明したように、システム内部レジスタ（不図示）から各レジスタ情報（メモリのアドレッシング・モード）、ＣＰＵ又はＤＭＡＣ等のバスマスタから転送要求内容、メモリから転送アクノリッジ（ＴＡ）を受け取り、デコードして、転送情報デコード信号を生成し、ステートカウンタ１０２、サイクルカウンタ１０３に供給する。なお、特に制限されないが、条件判別デコード回路１０１は、図６のアイドルステートにおいて転送情報デコード信号を生成し、生成された転送情報デコード信号が、ステートカウンタ１０２、サイクルカウンタ１０３に入力される。
【００６５】
ステートカウンタ１０２では、ステートマシンにおいて遷移するステート情報（図６のステート遷移図参照）を、カウンタ値に変換して出力する。サイクルカウンタ１０３では、転送サイクル数をカウントする。
【００６６】
ステートカウンタ１０２とサイクルカウンタ１０３の双方の値に基づき、３２ｂｉｔバス転送回路１０４又は１６ｂｉｔバス転送回路１０５で、制御信号のイネーブル／ディセーブルタイミングを決定する。３２ｂｉｔバス転送回路１０４又は１６ｂｉｔバス転送回路１０５からの、制御信号のイネーブル／ディセーブルに基づき、転送制御信号出力回路１０６は、制御信号（転送開始、転送一時停止等）を出力する。
【００６７】
なお、条件判別デコード回路１０１は、システム内部レジスタの情報から、メモリ側のアドレッシング・モードを読み取り、システム側のアドレッシング・モードと異なる場合、バースト分割判定ステートへ遷移し、バースト分割判定ステートへ移行する制御を行う。ステートカウンタ１０２、サイクルカウンタ１０３、３２ｂｉｔバス転送回路１０４又は１６ｂｉｔバス転送回路１０５は、３２ｂｉｔ×ｋ、３２ｂｉｔ×ｍ、３２ｂｉｔ×ｎ等の分割の回数と割合（図６（Ａ）参照）、１６ｂｉｔ×ｒ、１６ｂｉｔ×ｓ、１６ｂｉｔ×ｔ等の分割の回数と割合（図６（Ｂ）参照）を制御する。
【００６８】
本発明において、バーストメモリアクセス時の冗長なバスサイクルを排除でき、更にＣＰＵを含んだ半導体装置で使用できるバーストメモリの選択肢が広がり、より製品の汎用性を高める効果がある。
【００６９】
なお、上記実施例では、リードバースト動作を例に説明したが、ライトバースト動作についても同様である。また、上記実施例では、システム内部レジスタにアドレッシング方式に関する情報が予め書き込まれているとして説明したが、メモリを接続する際に、ユーザがメモリのアドレッシング方式に基づく情報をシステム内部レジスタに書き込むようにしても良く、また、メモリを接続した際、メモリにアドレッシング方式を示すデータが書き込まれているのであれば、当該データを読み出して、システム内部レジスタに書き込む又は書き込まずに当該データに基づいてアドレッシング方式を判定するように構成しても良い。
【００７０】
以上、本発明を上記実施例に即して説明したが、本発明は上記実施例の構成にのみ制限されるものでなく、本発明の範囲内で当業者であればなし得るであろう各種変形、修正を含むことは勿論である。
【図面の簡単な説明】
【００７１】
【図１】一般的なコンピュータシステムの構成を示す図である。
【図２】従来例のメモリインターフェース回路の構成を示す図である。
【図３】従来例における固定長バースト・アクセスのタイミング動作を示す図である    。
【図４】従来例における可変バースト・アクセスのタイミング動作を示す図である。
【図５】従来例のステートマシンを説明する図である。
【図６】本発明のステートマシンを説明する図である。
【図７】従来例におけるバースト転送リード動作例１を示す図である（インクリメンタル・アドレッシングのメモリに対してＣＰＵからラッピング・アドレッシングアクセスした場合）。
【図８】従来例におけるバースト転送リード動作例２を示す図である（ラッピング・アドレッシングのメモリに対してＣＰＵからインクリメンタル・アドレッシングアクセスした場合）。
【図９】本実施例におけるバースト転送リード動作例１を示す図である（インクリメンタル・アドレッシングのメモリに対してＣＰＵからラッピング・アドレッシングアクセスした場合）。
【図１０】本実施例におけるバースト転送リード動作例２である（ラッピング・アドレッシングのメモリに対してＣＰＵからインクリメンタル・アドレッシングアクセスした場合）。
【図１１】本発明のステートマシンの一実施例の構成を示す図である。
【図１２】図７（A）のタイミングチャートを詳細に説明した図である。
【図１３】図９（A）のタイミングチャートを詳細に説明した図である。
【符号の説明】
【００７２】
１  データプロセッサ
２１  メモリ１
２２  メモリ２
１０  ステートマシン
１１  バスインターフェース
１２  メモリインターフェース
１３  ＣＰＵ
１４  ＤＭＡＣ  
１０１  条件判別デコード回路
１０２  ステートカウンタ
１０３  サイクルカウンタ
１０４  ３２ｂｉｔバス転送回路
１０５  １６ｂｉｔバス転送回路
１０６  転送制御信号出力回
【図１】
2008059565.tif 000003
【図２】
2008059565.tif 000004
【図３】
2008059565.tif 000005
【図４】
2008059565.tif 000006
【図５】
2008059565.tif 000007
【図６】
2008059565.tif 000008
【図７】
2008059565.tif 000009
【図８】
2008059565.tif 000010
【図９】
2008059565.tif 000011
【図１０】
2008059565.tif 000012
【図１１】
2008059565.tif 000013
【図１２】
2008059565.tif 000014
【図１３】
2008059565.tif 000015