(57)【要約】【課題】記憶装置に対するアクセスを適正に制御する半導体装置を提供する。【解決手段】本発明による半導体装置は、記憶装置３へのアクセス制御を行うマイクロコンピュータ１００Ａであり、第１のバス５と、第１のバス５を介して記憶装置３に接続される少なくとも１つのＣＰＵ１と、第１のバス５上のアドレスを監視する監視装置１０とを具備する。ＣＰＵ１は、監視装置１０における監視結果に基づいて、記憶装置３にアクセスする。【選択図】図１
2008040905.tif 000002
【特許請求の範囲】
【請求項１】
第１のバスと、
前記第１のバスを介して記憶装置に接続される少なくとも１つのＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）と、
前記第１のバス上のアドレスを監視する監視装置と、
を具備し、
前記ＣＰＵは、前記監視装置における前記監視結果に基づいて、前記記憶装置にアクセスする
半導体装置。
【請求項２】
請求項１に記載の半導体装置において、
前記監視装置は、前記第１のバスに監視対象のアドレスが転送されると、許可信号を発行し、
前記ＣＰＵは前記許可信号に応答して前記記憶装置にアクセスする
半導体装置。
【請求項３】
請求項２に記載の半導体装置において、
前記第１のバスを介して前記記憶装置に対しＤＭＡ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ）転送を実行する少なくとも１つのＤＭＡコントローラを更に具備し、
前記監視対象のアドレスは、前記ＤＭＡ転送の転送先の前記記憶装置におけるアドレスである
半導体装置。
【請求項４】
請求項３に記載の半導体装置において、
前記ＣＰＵは、前記監視装置からのアクセス許可と、前記ＤＭＡコントローラからのアクセス許可とのどちらか一方に応じて前記記憶装置にアクセスする
半導体装置。
【請求項５】
請求項２から４いずれか１項に記載の半導体装置において、
前記監視装置は、
前記監視対象のアドレスである対象アドレスを保持する対象アドレスレジスタと、
前記第１のバスに転送されるアドレスを取得するアドレス取得回路と、
前記取得アドレスと前記対象アドレスとを比較する比較器と、
前記取得アドレスと前記対象アドレスが一致すると前記許可信号を発行する許可信号発行回路とを備える
半導体装置。
【請求項６】
請求項５に記載の半導体装置において、
前記監視装置は、
前記比較器による比較結果を記録するチェックレジスタを更に備え、
前記比較器は、前記取得アドレスと前記対象アドレスが一致すると前記チェックレジスタを更新し、
前記許可信号発行回路は、前記チェックレジスタの更新に応答して前記許可信号を発行する
半導体装置。
【請求項７】
請求項６に記載の半導体装置において、
前記ＣＰＵは、前記チェックレジスタに記録された前記比較結果に基づき前記記録装置へのアクセス先を決定する
半導体装置。
【請求項８】
請求項５から７いずれか１項に記載の半導体装置において、
前記対象アドレスレジスタは、前記ＣＰＵに対応付けられた前記対象アドレスを保持し、
前記許可信号発行回路は、前記取得アドレスと一致する前記対象アドレスに対応する前記ＣＰＵに対し、前記許可信号を発行する
半導体装置。
【請求項９】
請求項５から８いずれか１項に記載の半導体装置において、
前記対象アドレスレジスタは、前記ＤＭＡコントローラに対応付けられた前記対象アドレスを保持する
半導体装置。
【請求項１０】
請求項１から９いずれか１項に記載の半導体装置において、
前記第１のバスに接続されるバスブリッジと、
前記バスブリッジに接続される第２のバスと、
を更に具備し、
前記監視装置は、前記第２のバス及び前記バスブリッジを介して前記記憶装置に転送されるアドレスを監視し、
前記バスブリッジは、前記第２のバスから転送されるデータを一時格納した後、前記第１のバスに転送するバッファを有する
半導体装置。
【請求項１１】
監視装置が、記憶装置に接続される第１のバス上のアドレスを監視する監視ステップと、
ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）が、前記監視ステップにおける監視結果に基づき前記記憶装置にアクセスするアクセスステップと、
を具備する
記憶装置へのアクセス方法。
【請求項１２】
請求項１１に記載の記憶装置へのアクセス方法において、
監視対象のアドレスを対象アドレスとして前記監視装置に設定する設定ステップと、
前記監視装置が、前記第１のバス上に前記対象アドレスを検出し、許可信号を発行する第１許可ステップと、
を更に具備し、
前記アクセスステップは、
前記ＣＰＵが、前記許可信号に応答して前記記憶装置にアクセスするステップを備える
記憶装置へのアクセス方法。
【請求項１３】
請求項１２に記載の記憶装置へのアクセス方法において、
ＤＭＡ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ）コントローラが、前記第１のバスを介して前記記憶装置に対しＤＭＡ転送を実行するステップを更に具備し、
前記監視対象のアドレスは、前記ＤＭＡ転送の転送先の前記記憶装置におけるアドレスである
記憶装置へのアクセス方法。
【請求項１４】
請求項１３に記載の記憶装置へのアクセス方法において、
前記ＣＰＵが、前記監視装置からのアクセス許可と、前記ＤＭＡコントローラからのアクセス許可とのどちらか一方に応じて前記記憶装置にアクセスするステップを備える
記憶装置へのアクセス方法。
【請求項１５】
請求項１２から１４いずれか１項に記載の記憶装置へのアクセス方法において、
前記監視ステップは、
アドレス取得回路が、前記第１のバスに転送されるアドレスを取得する取得ステップと、
比較器が、前記取得アドレスと前記対象アドレスとを比較する比較ステップとを備え、
前記第１許可ステップは、
許可信号発行回路が、前記取得アドレスと前記対象アドレスとが一致すると前記許可信号を発行するステップを備える
記憶装置へのアクセス方法。
【請求項１６】
請求項１５に記載の記憶装置へのアクセス方法において、
前記監視ステップは、
前記比較器が、前記取得アドレスと前記対象アドレスとが一致するとチェックレジスタを更新するステップを備え、
前記第１許可ステップは、
前記許可信号発行回路が、前記チェックレジスタの更新に応答して前記許可信号を発行するステップを備える
記憶装置へのアクセス方法。
【請求項１７】
請求項１６に記載の記憶装置へのアクセス方法において、
前記アクセスステップは、
前記ＣＰＵが、前記チェックレジスタに記録された前記比較ステップにおける比較結果に基づき前記記録装置へのアクセス先を決定するステップを更に備える
記憶装置へのアクセス方法。
【請求項１８】
請求項１６又は１７に記載の記憶装置へのアクセス方法において、
前記設定ステップは、前記ＣＰＵと対応付けて前記対象アドレスを設定するステップを備え、
前記第１許可ステップは、
前記許可信号発行回路が、前記取得アドレスと一致する前記対象アドレスに対応する前記ＣＰＵに対し、前記許可信号を出力するステップを備える
記憶装置へのアクセス方法。
【請求項１９】
請求項１６から１８いずれか１項に記載の記憶装置へのアクセス方法において、
前記設定ステップは、前記ＤＭＡコントローラと対応付けて前記対象アドレスを設定するステップを備え、
前記第１許可ステップは、
前記許可信号発行回路が、前記取得アドレスと一致する前記対象アドレスに対応する前記ＤＭＡコントローラに対し、前記許可信号を出力するステップを備える
記憶装置へのアクセス方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）による記憶装置へのアクセス制御を実行する半導体装置、及び記憶装置へのアクセス方法に関する。
【背景技術】
【０００２】
コンピュータシステム内でのデータ転送方式の１つとして、ＣＰＵを介さずに各装置（例えば、Ｉ／Ｏ装置）と記憶装置（例えば、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ））との間で直接データ転送を行うＤＭＡ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ）転送が利用されている。ここで、ＤＭＡ転送とは、各装置からデータ読み出し、そのデータをシステム内の記憶装置に書き込むまでの動作を示す。又、以下では、ＤＭＡ転送によってデータがシステム内の記憶装置に書き込まれる動作をＤＭＡライトと称す。ＤＭＡ転送は、ＤＭＡコントローラ（以下、ＤＭＡＣと称す）によって制御される。ＤＭＡ転送に使用されるバスは、バスアービタによって調停される。このため、ＤＭＡ転送が実行されている間、ＣＰＵはＤＭＡ転送で使用中の記憶領域外の領域にアクセスし、他の処理を実行することができる。例えば、ＤＭＡ転送によってＩ／Ｏ装置から転送されたデータが記憶装置に書き込まれる際、ＣＰＵは、ＤＭＡによる転送先のアドレス以外の領域にアクセスして他の処理を実行する。ＣＰＵがＤＭＡ転送されたデータをリードする場合、ＤＭＡ転送が完了したことを確認した後、ＤＭＡ転送先のアドレスにアクセスし、ＤＭＡ転送により記憶装置に書き込まれたデータを読み出す（以下、ＣＰＵリードと称す）。この際、従来技術によるＣＰＵは、ＤＭＡＣによるＣＰＵへの割り込みによって、ＤＭＡ転送の完了を確認することができる。
【０００３】
しかしながら、近年、ＣＰＵの処理速度の向上により割込み処理ルーチンが高速に実行されるようになった。一方集積回路の多機能化にともない、データ転送ユニットが行うデータ転送速度に大幅な向上は見られない。このため、ＤＭＡライトによってデータが書き込まれる前に、当該記憶装置におけるＤＭＡライト先のアドレスに、ＣＰＵがアクセスしデータの読み出しを行う場合がある。この場合、ＣＰＵは、ＤＭＡライトされる前のデータを記憶装置から読み出してしまう。
【０００４】
このような問題を解決する技術が、特開平６−２３１０２３号公報に記載されている（特許文献１参照）。特許文献１には、ＤＭＡ転送先のアドレスをバッファに一時格納し、このアドレスとＣＰＵによるアクセス時に転送されるアドレスとを比較し、その比較結果に基づいてＣＰＵリードを制御するアクセス制御装置が記載されている。
【０００５】
図８は、特許文献１に記載のアクセス制御装置２０２を用いたシステムのシステム構成とアクセス制御装置２０２の内部構成を示すブロック図である。図８を参照して、アクセス制御装置２０２はプロセッサ２０１とＩ／Ｏ装置２０５との間に設けられる。Ｉ／Ｏ装置２０５から主記憶装置２０３へのＤＭＡ転送（ライト）の際、転送先のアドレスデータはバッファ２１２に格納される。又、プロセッサ２０１が主記憶２０３にアクセス（リード）する際、読み出し先のアドレスデータがバッファ２１１に格納される。
【０００６】
アクセス制御装置２０２は、バッファ２１１内のアドレスとバッファ２１２内のアドレスとを比較する比較器２１３と、比較器２１３における比較結果に応じてＣＰＵのリード処理を制御するアクセス制御ユニット２１４とを具備する。ここで、比較器２１３は、バッファ２１２内の全てのエントリと、バッファ２１１の最前列のエントリ（次に出力されるエントリ）とを比較する。アクセス制御ユニット２１４は、比較において、両者のアドレスが一致する場合、ＣＰＵによるアクセスを停止することで、ＣＰＵのアクセスがＤＭＡを追い越すことを防止する。
【０００７】
一方、内部バスの情報取得に関する技術が、特開２００１−１３４４６７号公報に記載されている（特許文献２参照）。
【特許文献１】特開平６−２３１０２３号公報
【特許文献２】特開２００１−１３４４６７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
しかしながら、従来技術では、バスブリッジを介して階層構造を示すバスを経由したＤＭＡ転送の場合、ＣＰＵによる記憶装置へのアクセスが、ＤＭＡを追い越してしまう可能性がある。例えば、図８に示すバス２０４にバスブリッジを介して別のバスが接続される構成において、別のバスに接続されるＩ／Ｏ装置が、バスブリッジを介して主記憶装置２０３に対しＤＭＡ転送する場合について説明する。通常、伝送速度の異なるバス間でスムースなデータ転送を可能にするため、バス間を接続するバスブリッジにはバッファ（ＦＩＦＯバッファ）が設けられる。この場合、Ｉ／Ｏ装置によるＤＭＡ転送のために転送されるアドレスデータは、バスブリッジ内のバッファに保持されるため、バッファ２１２への到達が遅延する。このため、主記憶装置２０３へのＤＭＡライトのアドレスデータがバッファ２１２に到達するよりも前に、プロセッサ２０１からのリードアドレスデータの方が早くバッファ２１１に入力され、アクセス制御ユニット２１４はプロセッサ２０１のアクセスを停止できない恐れがある。このように、従来技術では、バスブリッジのようなバッファ（遅延要素）を有する構成を介して実行されるＤＭＡ転送では、ＣＰＵによるアクセスが、ＤＭＡ転送によるデータの書き込みを追い越す可能性が残る。又、通常、バスブリッジ内のバッファはＦＩＦＯ方式であり、その大きさは、取り扱うデータの入出力の速度差とタイミングを元に設定される。設定されたバッファが大きい場合、ＣＰＵリードが、ＤＭＡライトを追い越す可能性が増大する。
【課題を解決するための手段】
【０００９】
上記の課題を解決するために、本発明は、以下に述べられる手段を採用する。その手段を構成する技術的事項の記述には、［特許請求の範囲］の記載と［発明を実施するための最良の形態］の記載との対応関係を明らかにするために、［発明を実施するための最良の形態］で使用される番号・符号が付加されている。ただし、付加された番号・符号は、［特許請求の範囲］に記載されている発明の技術的範囲を限定的に解釈するために用いてはならない。
【００１０】
本発明による半導体装置は、記憶装置（３）へのアクセス制御を行うマイクロコンピュータ（１００Ａ、１００Ｂ、１００Ｃ、１００Ｄ）であり、第１のバス（５）と、第１のバス（５）を介して記憶装置（３）に接続される少なくとも１つのＣＰＵ（１）と、第１のバス（５）上のアドレスを監視する監視装置（１０）とを具備する。ＣＰＵ（１）は、監視装置（１０）における監視結果に基づいて、記憶装置（３）にアクセスする。このように本発明では、記憶装置（３）に接続する第１のバス（５）上に転送されるアドレスの監視結果に応じてＣＰＵ（１）の記憶装置（３）へのアクセスを制御する。
【００１１】
この際、監視装置（１０）は、第１のバス（５）に監視対象のアドレスが転送されると、許可信号（１０４）を発行する。ＣＰＵ（１）は許可信号（１０４）に応答して記憶装置（３）にアクセスする。又、本発明によるマイクロコンピュータ（１００Ａ、１００Ｂ、１００Ｃ、１００Ｄ）は、少なくとも１つのＤＭＡＣコントローラ（２）を更に具備することが好ましい。ＤＭＡコントローラ（２）は、第１のバス（５）を介して記憶装置（３）に対しＤＭＡを実行する。この場合、監視対象のアドレスは、ＤＭＡ先の記憶装置（３）におけるアドレスであることが好ましい。監視装置（１０）はＤＭＡ先のアドレスの第１のバス（５）への転送に応じてＣＰＵ（１）による記憶装置（３）へのアクセスを制御する。このため、ＣＰＵ（１）によるアクセスがＤＭＡを追い越すことを防止できる。
【００１２】
又、第２から第４の態様に係るＣＰＵ（１）は、監視装置（１０）からのアクセス許可と、ＤＭＡコントローラ（２）からのアクセス許可とのどちらか一方に応じて記憶装置（３）にアクセスすることが好ましい。すなわち、ＣＰＵ（３）は、ＤＭＡコントローラからのアクセス制御と、第１のバス（５）上のアドレスを監視する監視装置（１０）からのアクセス制御とを選択的に利用することができる。この場合、ＣＰＵ（１）によるアクセスがＤＭＡを追い越すことがないようなデータの転送に対しては、従来通りＤＭＡコントローラからのアクセス許可に応じることができ、柔軟にそのアクセス制御の方式を変更することが可能となる。
【００１３】
本発明による監視装置（１０）は、対象アドレスレジスタ（１１）と、アドレス取得回路（１３）と、比較器（１２）と、許可信号発行回路（１５）とを備える。対象アドレスレジスタ（１１）は、監視対象のアドレスである対象アドレス（１０１）を保持する。アドレス取得回路（１３）は、第１のバス（５）に転送されるアドレス（１０３）を取得する。比較器（１２）は、取得アドレス（１０３）と対象アドレス（１０１）とを比較する。許可信号発行回路（１５）は、取得アドレス（１０３）と対象アドレス（１０１）が一致すると許可信号（１０４）を発行する。
【００１４】
又、監視装置（１０）は、比較器（１２）による比較結果を記録するチェックレジスタ（１４）を更に備えることが好ましい。比較器（１２）は、取得アドレス（１０３）と対象アドレス（１０１）が一致するとチェックレジスタ（１４）を更新する。許可信号発行回路（１５）は、チェックレジスタ（１４）の更新に応答して許可信号（１０４）を発行する。
【００１５】
更に、ＣＰＵ（１）は、チェックレジスタ（１４）に記録された比較結果に基づき記録装置へのアクセス先を決定することが好ましい。詳細には、ＣＰＵ（１）は、許可信号（１０４）に応答してチェックレジスタ（１４）に記録された比較結果を取得する。
【００１６】
ここで、第４の態様に係るマイクロコンピュータ（１００Ｄ）は複数のＣＰＵ（１−Ａ、１−Ｂ）を備える。この場合、対象アドレスレジスタ（１１―Ａ、１１Ｂ）は、ＣＰＵ（１−Ａ、１−Ｂ）毎に対応付けられた対象アドレス（１０１−Ａ、１０１−Ｂ）を保持する。許可信号発行回路（１５−Ａ、１５−Ｂ）は、取得アドレス（１０３）と一致する対象アドレス（１０１）に対応するＣＰＵ（１）に対し、許可信号（１０４）を発行する。
【００１７】
この際、許可信号発行回路（１５）は、対応するＣＰＵ（１）との間に固有の信号線を介して１対１で接続されることが好ましい。許可信号発行回路（１５）は、許可信号（１０４）を、この信号線を介してＣＰＵ（１）に発行する。
【００１８】
又、第３の態様に係るマイクロコンピュータ（１００Ｃ）は、複数のＤＭＡコントローラ（２−１、２−２）を備える。この場合、対象アドレスレジスタ（１１−１、１１−１）は、ＤＭＡコントローラ（２―１、２−２）毎に対応付けられた対象アドレス（１０１−１、１１−２）を保持する。
【００１９】
以上のような構成により、ＤＭＡ転送終了後からＣＰＵアクセスに移行する際、ＣＰＵアクセスがＤＭＡを追い越して記憶装置（３）にアクセスすることを防ぐことができる。
【発明の効果】
【００２０】
本発明によれば、ＣＰＵが記憶装置から適正なデータを取得することができる。
【００２１】
更に、記憶装置へのデータの転送が確実に終了した時点で、ＣＰＵに対してＤＭＡ転送先の領域へのアクセス許可を与えることができる。
【発明を実施するための最良の形態】
【００２２】
以下、添付図面を参照しながら本発明の実施の形態を説明する。図面において同一、又は類似の参照符号は、同一、類似、又は等価な構成要素を示している。又、複数の同一又は類似の構成には追い番を付け、総称して説明する場合は、追い番を付けないで説明する。以下では、本発明による半導体装置として、内部バスを介して相互に接続されるＣＰＵと記憶装置（例えばＲＡＭ）が搭載されたマイクロコンピュータを一例に実施の形態を説明する。
【００２３】
１．第１の実施の形態
図１から図３Ｂを参照して本発明によるマイクロコンピュータの第１の実施の形態を説明する。第１の実施の形態におけるマイクロコンピュータ１００Ａは、バス上に転送されるアドレスを監視し、その監視結果に基づきＣＰＵ１の第１記憶装置３へのアクセスを制御する監視装置１０Ａを備える。監視装置１０Ａは、監視対象のアドレス（対象アドレス１０１）と一致するアドレスを第１バス５上に検出すると、ＣＰＵ１にアクセス許可を与える。ＣＰＵ１はこのアクセス許可に応答して、第１記憶装置３にアクセスする。
【００２４】
（構成）
以下、図１を参照して、マイクロコンピュータ１００Ａの構成の詳細を説明する。図１は、第１の実施の形態におけるマイクロコンピュータ１００Ａの構成を示すブロック図である。第１の実施の形態におけるマイクロコンピュータ１００Ａは、ＣＰＵ１、ＤＭＡコントローラ（ＤＭＡＣ）２、第１記憶装置３、第２記憶装置４、第１バス５、第２バス６、バスブリッジ７、監視装置１０Ａを具備する。
【００２５】
ＣＰＵ１は、第１バス５を介して第１記憶装置３に接続され、第１記憶装置３からデータを取得（リード）、あるいは第１記憶装置３にデータを転送する（ライト）。又、ＣＰＵ１は、第１記憶装置３内に書き込まれたプログラムを読み出して実行する。第１バス５は、バスブリッジ７を介して第２バス６に接続される。すなわち、マイクロコンピュータ１００Ａは階層構造を示す第１バス５及び第２バス６を備える。第２バス６にはＤＭＡＣ２と第２記憶装置４が接続される。マイクロコンピュータ１００Ａは、同一チップ上に搭載されたＩＣチップであることが好ましい。尚、バスブリッジ７、第２バス６、ＤＭＡＣ２、第１記憶装置３、及び第２記憶装置４のいずれかは、ＣＰＵ１が設けられるチップの外に形成されても構わない。
【００２６】
ＤＭＡＣ２は、第１記憶装置３と第２記憶装置４との間のデータの転送動作を制御する。又、ＣＰＵからのコマンドに応じてＤＭＡ転送を開始し、ＣＰＵによって示されたアドレスへの転送を終了すると、ＤＭＡ転送を停止する。ここで、ＤＭＡ転送とは第２記憶装置４内のデータを第１記憶装置３に書き込む動作を示す。従来技術によるＤＭＡＣはＤＭＡ転送終了時にＣＰＵに対し割込み信号によって転送完了通知を行うが、本実施の形態におけるＤＭＡＣ２は、このような割込み信号を発行しない。尚、本実施の形態では、第２記憶装置４と第１記憶装置３との間のＤＭＡ転送を制御するＤＭＡＣ２を一例に説明するが、ＤＭＣＡ２は、外部通信装置（例えばネットワーク、ＵＡＲＴ、ＵＳＢ）と第１記憶装置３との間におけるデータの入出力を制御するＩ／Ｏ装置であっても構わない。
【００２７】
バスブリッジ７はＦＩＦＯで転送するバッファ８を備える。第２バス６を介して転送されるデータは、バスブリッジ７内のバッファ８に一時格納されてから、第１バス５を介して第１記憶装置３に格納される。
【００２８】
第１バス５及び第２バス６は、アドレスバス、データバス、コントロールバスを含むＣＰＵ内部バスである。ＣＰＵ１、ＤＭＡＣ２は、第１バス５又は第２バス６を介してアドレスデータ１０２、転送データ（リードデータ、ライトデータ）、各種コマンド（リード、ライト）を出力する。尚、これらのバスは共通線でも互いに個別の専用線でも構わない。
【００２９】
監視装置１０Ａは、対象アドレス１０１が格納される対象アドレスレジスタ１１、比較器１２、アドレス取得回路１３、チェックレジスタ１４、許可信号発行回路１５を備える。ＣＰＵ１は、ＤＭＡＣ２に対しＤＭＡ転送を開始するためのコマンドを発行する前、又はコマンドを発行する際に、対象アドレス１０１を対象アドレスレジスタ１１に設定する。ここで、対象アドレス１０１とは、ＣＰＵ１が第１記憶装置３にアクセスする時点において、ＤＭＡ転送が完了していなければならない第１記憶装置３のアドレスである。すなわち、対象アドレス１０１は、ＣＰＵ１から指示された一連のＤＭＡ転送における転送先アドレスの最終アドレスが設定される。例えば一連のＤＭＡ転送における転送先アドレスが０番地から１００番地である場合、１００番地が対象アドレス１０１として設定される。尚、ＣＰＵ１によるアクセスがＤＭＡ転送より先んじることを防止できれば、一連のＤＭＡ転送における最終アドレス以外のアドレスが対象アドレス１０１として設定されても構わない。例えば、一連のＤＭＡ転送の転送先が０番地から１００番地であり、ＣＰＵ１が０番地から１００番地まで順にデータを読み出す場合、ＣＰＵ１が８１番地のデータを読み出すまでに、８１番地以降へのＤＭＡ転送が終了していれば、８０番地が対象アドレス１０１として設定され得る。
【００３０】
アドレス取得回路１３は、第１バス５を監視し、第１バス５におけるアドレスバスに転送されるアドレスデータ１０２を取得する。この際、アドレスバスとデータバスはそれぞれ専用バスであっても、共通バスであっても良い。ただし、共通バスの場合、アドレス取得回路１３は、所定のアドレスサイクルに応じて第１バス５からアドレスデータ１０２を取得する。ここでアドレスサイクルとは、第１バス５がアドレスバスとして使用されることを示すコードであり、アドレスサイクルが発行されている間は、第１バス５はアドレスバスとして機能する。
【００３１】
アドレス取得回路は、アドレスデータ１０２に基づくアドレスを取得アドレス１０３として比較器１２に出力する。例えば、アドレス取得回路１３は、アドレスデータ１０２を取得アドレス１０３として比較器１２に出力する。あるいは、アドレス取得回路１３は、アドレスデータ１０２を用いて取得アドレス１０３を生成し、比較器１２に出力しても良い。例えば、転送データがバーストデータである場合、アドレス取得回路１３は、アドレスデータ１０２をバースト長に応じてインクリメントし、そのアドレス値を取得アドレス１０３として比較器１２に出力する。
【００３２】
比較器１２は、対象アドレス１０１と取得アドレス１０３とを比較し、一致する場合、チェックレジスタ１４にフラグを立てる（例えば、チェックレジスタ１４に「１」を設定する）。
【００３３】
許可信号発行回路１５は、チェックレジスタ１４を監視し、チェックレジスタ１４の示す値が「０」から「１」に更新されると、許可信号１０４をＣＰＵ１に発行する。許可信号１０４によって、第１記憶装置３におけるＤＭＡ転送先の領域へのＣＰＵ１によるアクセスが許可される。尚、許可信号１０４は割込み信号として設定されていても構わない。この場合、ＣＰＵ１は、許可信号１０４に応答して割込み処理を実行し、現在実行中の処理を中断して第１記憶装置３のＤＭＡ転送に係る領域にアクセスする。
【００３４】
以上のような構成により、本発明によるマイクロコンピュータ１００Ａでは、監視装置１０ＡによってＤＭＡ転送による第１記憶装置３へのデータの書き込み完了を確認できるため、ＣＰＵ１リードがＤＭＡライトを追い越すことなく実行できる。又、バスが遅延要素を介して階層構造を示すような構成であっても、ＣＰＵ１はＤＭＡ転送によるデータの書き込み完了後に、当該データを読み出すことができる。すなわち、ＤＭＡ転送によるデータが遅延して第１記憶装置３に転送されるような構成であっても、ＤＭＡ転送からＣＰＵ１によるアクセスへの移行が適正に実行され、ＣＰＵ１は不正データを読み出すことなく各処理を実行できる。尚、第２バス６が接続するブリッジ７は、第１バス５に接続されているが、この限りではなく、第２バス６が第１バス５に対して階層構造を示す、又は第２バス６が何らかの遅延要因を介して第１バス５に接続されるバスであれば、これに限定されない。
【００３５】
（動作）
図１から図３Ｂを参照して、本発明によるマイクロコンピュータ１００Ａの動作の詳細を説明する。図２は、本発明によるマイクロコンピュータ１００ＡにおけるＤＭＡ転送からＣＰＵ１による第１記憶装置３へのアクセスまでの動作を示すフロー図である。図３Ａ及び図３Ｂは、本発明によるマイクロコンピュータ１００ＡにおけるＤＭＡ転送動作、及び対象アドレス監視動作を示すタイミングチャートである。図３Ａは、一連のＤＭＡ転送における最初のデータＤ０〜Ｄ４が第２バス６から第１バス５に転送されるまでのＤＭＡ転送動作、ＤＭＡ転送開始時における対象アドレス１０１の設定、及び対象アドレス監視動作を示すタイミングチャートである。又、図３Ｂは、一連のＤＭＡ転送における最後のデータＤｎ０〜Ｄｎ４が第２バス６から第１バス５に転送されるまでのＤＭＡ転送動作、及び対象アドレス監視動作から対象アドレス検出までのタイミングチャートである。ここでは、ＤＭＡ転送により第２の記憶装置４から第１記憶装置３へＤＭＡ転送によりデータＤ０〜Ｄｎ４が書き込まれ、その後、ＣＰＵ１によって、第１記憶装置３に書き込まれたデータＤ０〜Ｄｎ４が読み出される場合について、その動作を説明する。
【００３６】
ＣＰＵ１は、ＤＭＡ転送を指示するのに先立ち、対象アドレス１０１を第１バス５を介して対象アドレスレジスタ１１に設定する（ステップＳ１）。ここでは、対象アドレス１０１として、ＤＭＡ転送における最終転送先アドレスであるアドレス（Ａｄｄｒ１＿ｎ）が設定されるものとする（図３Ａ参照）。対象アドレス１０１が設定された監視装置１０Ａは、第１バス５上のアドレスデータ１０２の監視を開始する（ステップＳ２）。ステップＳ２において、アドレス取得回路１３は、所定のタイミングで第１バス５上のアドレスデータ１０２を取得し、アドレスデータ１０２に基づく取得アドレス１０３を比較器１２に出力する。比較器１２は、対象アドレスレジスタ１１内の対象アドレス１０１と取得アドレス１０３とを比較し、比較結果に基づきチェックレジスタ１４を更新する。尚、比較器１２は、対象アドレス１０１が設定される前から、常時取得アドレス１０３と設定前の対象アドレス１０１とを比較していても良い。
【００３７】
ＣＰＵ１は、対象アドレス１０１を設定する際、ＤＭＡ転送を開始するためのＤＭＡ転送コマンドをＤＭＡＣ２に発行する。ＤＭＡＣ２は転送開始コマンドに応答してＤＭＡ転送を開始する（ステップＳ３）。図３Ａ及び図３Ｂを参照して、マイクロコンピュータ１００ＡにおけるＤＭＡ転送、及び対象アドレス監視動作の詳細を説明する。ここで、ＤＭＡＣ２は、第２記憶装置４におけるアドレスＡｄｄｒ２＿１〜Ａｄｄｒ２＿ｎに格納されたデータＤを、第１記憶装置３におけるアドレスＡｄｄｒ１＿１〜Ａｄｄｒ１＿ｎにＤＭＡ転送するものとする。本実施の形態では、１つのアドレスに対して４つのデータの読み出し、書き込みが行われるＤＭＡ転送を一例に説明する。
【００３８】
ＤＭＡＣ２は第２バス６を介してリードコマンドとともにリード対象のアドレス（Ａｄｄｒ２＿１）を第２記憶装置４に発行し、第２記憶装置４におけるアドレス（Ａｄｄｒ２＿１）に対応する領域からデータＤ０〜Ｄ３を取得する。次に、ＤＭＡＣ２は、第２バス６を介してライトコマンドとともに書き込み先のアドレス（Ａｄｄｒ１＿１）を転送し、データＤ０〜Ｄ３を転送する。ライトコマンド及び書き込み先の第１記憶装置３のアドレス（Ａｄｄｒ１＿１）は、バスブリッジ７を介して第１バス５に転送される。この際、ライトコマンド及びアドレス（Ａｄｄｒ１＿１）は、それぞれバスブリッジ７内の図示しないバッファ（コマンドバス、アドレスバスにそれぞれ接続するバッファ）を介して第１バスに転送される。又、データＤ０〜Ｄ３はＦＩＦＯでバスブリッジ７におけるバッファ８を介して第１バス５に転送される。
【００３９】
アドレス取得回路１３は、第１バス５に転送されたアドレス（Ａｄｄｒ１＿１）をアドレスデータ１０２として読み出し、取得アドレス１０３として比較器１２に出力する。比較器１２は、対象アドレス１０１（Ａｄｄｒ１＿ｎ）と取得アドレス１０３（Ａｄｄｒ１＿１）とを比較し、不一致であるため、チェックレジスタ１４を更新せず「０」を維持する。
【００４０】
ＤＭＡＣ２は、データＤ０〜Ｄ３の転送に引き続き、同様にして、第２記憶装置４におけるアドレス（Ａｄｄｒ２＿２〜Ａｄｄｒ２＿ｎ−１）から第１記憶装置３におけるアドレス（Ａｄｄｒ１＿２〜Ａｄｄｒ１＿ｎ−１）にデータをＤＭＡ転送する。この間、比較器１２は、同様に対象アドレス１０１（Ａｄｄｒ１＿ｎ）と取得アドレス１０３（Ａｄｄｒ１＿２〜Ａｄｄｒ１＿ｎ−１）を比較し、比較結果（不一致）に基づきチェックレジスタ１４を更新せず「０」を維持する。
【００４１】
ＤＭＡＣ２は、引き続き、ＣＰＵ１からのＤＭＡ転送コマンドに基づく一連のＤＭＡ転送における最後のＤＭＡ転送を実行する。すなわち、ＤＭＡＣ２は、同様にして、第２記憶装置４におけるアドレス（Ａｄｄｒ２＿ｎ）から第１記憶装置３におけるアドレス（Ａｄｄｒ１＿ｎ）にデータＤｎ０〜Ｄｎ３をＤＭＡ転送する。この際、比較器１２は、同様に対象アドレス１０１（Ａｄｄｒ１＿ｎ）と取得アドレス１０３（Ａｄｄｒ１＿ｎ）を比較し、両者が一致するため、チェックレジスタ１４を「１」に更新する。すなわち、監視装置１０Ａは、第１バス５上に対象アドレス１０１に一致するアドレスを検出する（ステップＳ４）。
【００４２】
監視装置１０Ａは、第１バス５上に対象アドレス１０１を検出すると、ＣＰＵ１に対し、パルス信号である許可信号１０４を発行する（ステップＳ５）。ＣＰＵ１は、許可信号１０４によって第１記憶装置３におけるアドレスＡｄｄｒ１＿１〜Ａｄｄｒ１＿ｎに対応する領域へのアクセス権を得る。本実施の形態では、許可信号１０４に応答するCPU１は、エッジトリガによってアクセス許可を得るが、レベルトリガでも良いことは言うまでもない。許可信号１０４が割込み信号としてシステムに設定されている場合、ＣＰＵ１は、許可信号１０４に応答して現在実施中の処理を中断し、第１記憶装置３のアドレスＡｄｄｒ１＿１〜Ａｄｄｒ１＿ｎにアクセスし、ＤＭＡ転送によって格納されたデータＤ０〜Ｄｎ４を読み出す（ステップＳ６）。
【００４３】
以上のように、本発明によるマイクロコンピュータ１００Ａでは、第１記憶装置３とＣＰＵ１との間の第１バス５上のアドレスを監視し、ＤＭＡ転送終了時の転送先アドレス（対象アドレス１０１）に書き込みがある場合、チェックレジスタ１４にフラグを立てる（チェックレジスタ１４に「１」を設定する）。ＣＰＵ１は、チェックレジスタ１４の更新に応じた許可信号１０４を受信することで、データの転送（ＤＭＡ転送）が確実に終了したことを確認できる。このため、ＣＰＵ１は、ＤＭＡ転送（ＤＭＡライト）を追い越さずに、第１記憶装置３にアクセス（ＣＰＵリード）することができる。
【００４４】
尚、本発明では、チェックレジスタ１４に第１バス５の監視結果が記録される。あるいは、許可信号１０４を発行したことを保持するレジスタが監視装置１０Aに設けられても良い。あるいは、許可信号１０４が発行されずチェックレジスタ１４の更新のみが実行されても良い。このため、ＣＰＵ１は、チェックレジスタ１４（あるいは、許可信号１０４の発行済みが記録されるレジスタ）を参照してＤＭＡ転送が完了しているか否かを確認することができる。例えば、ＣＰＵ１は、許可信号１０４に応答してチェックレジスタ１４の更新状況を確認する。あるいは、ＤＭＡ転送終了後にＤＭＡＣから発行される割込みコマンドに応答して、チェックレジスタ１４の更新状況を確認し、この更新状況に応じて第１記憶装置３のＤＭＡ転送に係る領域にアクセスすることも可能である。この場合、ＣＰＵ１はＤＭＡＣ２から発行される割込みコマンドに応答して、第１バス経由でチェックレジスタ１４の値を読み出し、ＤＭＡ転送の完了を確認するまで第１記憶装置３へのアクセスを待機する。詳細には、ＣＰＵ１は、割込みコマンドを受けてからＤＭＡ転送の完了を確認するまで、所定の回数、所定のタイミングでチェックレジスタ１４の値を読み出すことで、許可信号１０４を受け付けなくてもDMA転送の終了を確認することができる。すなわち、本発明に係るＤＭＡＣ２としてＤＭＡ転送終了後に割込みコマンドを発行する従来のＤＭＡＣが使用できる。本実施の形態におけるチェックレジスタ１４は、ＣＰＵ１による該当レジスタのリード、又は書き込みによりリセットされる。又、本実施の形態のように設定される対象レジスタ１０１が１つの場合、監視装置１０Aにチェックレジスタクリアレジスタが設けられ、該当レジスタへの書き込みでリセットさせても良い。
【００４５】
図３Ｂを参照して、従来技術によれば、第２バス６にデータＤｎ０〜Ｄｎ３が転送された時にＤＭＡＣから発行される割込みコマンド応答して、ＣＰＵは記憶装置に書き込まれる予定のデータＤ０〜Ｄｎ３の読み出し処理を開始する。このとき、例えばＣＰＵが第１記憶装置３におけるアドレスＡｄｄｒ１＿ｎ上のデータを読み出す場合、バスブリッジ７（バッファ８）内にデータＤｎ０〜Ｄｎ３が存在する。このため、ＣＰＵは所望のデータＤｎ０〜Ｄｎ３とは異なるデータを記憶装置から読み出してしまう。しかし、本発明によれば、第１バス５上に対象アドレス１０１（ここではＡｄｄｒ１＿ｎ）が転送されてから、ＣＰＵ１は、第１記憶装置３におけるアドレスＡｄｄｒ１＿１〜ｎにアクセスする。このため、ＣＰＵ１は、データＤｎ０〜Ｄｎ３が書き込まれた後の第１記憶装置３にアクセスが可能となる。すなわち、ＣＰＵ１は、ＤＭＡ転送後のデータを確実に読み出すことができる。
【００４６】
２．第２の実施の形態
図２から図４を参照して、本発明によるマイクロコンピュータの第２の実施の形態を説明する。第２の実施の形態におけるマイクロコンピュータ１００Ｂでは、ＤＭＡＣ２と監視装置１０Ａのどちらか一方の制御によって、ＣＰＵ１の第１記憶装置３へのアクセスタイミングが決定される。
【００４７】
（構成）
以下、図４を参照して、マイクロコンピュータ１００Ｂの構成の詳細を説明する。図４は、第２の実施の形態におけるマイクロコンピュータ１００Ｂの構成を示すブロック図である。第２の実施の形態におけるマイクロコンピュータ１００Ｂは、第１の実施の形態におけるマイクロコンピュータ１００Ａの構成に加え、割込み選択ユニット９を更に具備する。又、本実施の形態におけるＤＭＡＣ２は、ＤＭＡ転送終了時に、ＣＰＵ１に第１記憶装置３に対するアクセスを許可するための許可信号１０５を発行する。許可信号１０５は、割込みコマンドとして設定されても良い。この場合、許可信号１０５を受け付けたＣＰＵ１は、割込み処理を実行して、第１記憶装置３におけるＤＭＡ転送に係る領域にアクセスし、そこからＤＭＡ転送によって書き込まれたデータを読み出す。割込み選択ユニット９には、許可信号発行回路１５から発行された許可信号１０４と、ＤＭＡＣ２から発行された許可信号１０５が入力され、どちらか一方をＣＰＵ１に出力する。割込み選択ユニット９から入力された許可信号に基づいて、第１記憶装置３におけるＤＭＡ転送に係る領域へのＣＰＵ１によるアクセス（ＣＰＵリード）が許可される。ここで、割込み選択ユニット９が許可信号１０４及び１０５のどちらを選択するかについては、予めＣＰＵ１によって設定される。詳細には、割込み選択ユニット９が許可信号１０５を選択するように設定される場合、監視装置１０Ａから許可信号１０４が発行されないように設定される。監視装置１０Ａから許可信号１０４を発行させない方法としては、ＣＰＵ１が、対象アドレスレジスタ１１に対象アドレスレジスタ１０１を設定しない方法や、チェックレジスタ１４をディセーブルに設定して許可信号１０４を発行させない方法がある。又、割込み選択ユニット９が許可信号１０４を選択するように設定される場合、割込み選択ユニット９はＤＭＡＣ２からの許可信号１０５をＣＰＵ１に転送しないように設定される。
【００４８】
（動作）
図２から図４を参照して、第２記憶装置４から第１記憶装置３へＤＭＡ転送によりデータが書き込まれ、その後、ＣＰＵ１によって、第１記憶装置３に書き込まれたデータが読み出される場合について、その動作を説明する。
【００４９】
ステップＳ１からステップＳ３までは、第１の実施の形態と同様な動作なので説明を省略する。ステップＳ３において、ＤＭＡＣ２が一連のＤＭＡ転送における最終データＤｎ０〜Ｄｎ３を第２バス６に転送すると、ＤＭＡＣ２は、許可信号１０５を割込み選択ユニット９に出力する。ここで、割込み選択ユニット９が許可信号１０４を選択するように設定されている場合、割込み選択ユニット９は、許可信号１０５が入力されてもその信号を受け付けず、許可信号１０４が入力されるまで待機する。ステップＳ５において、監視装置１０Ａによって第１バス５上に対象アドレスが検出され、許可信号１０４が発行されると、割込み選択ユニット９は、入力される許可信号１０４をＣＰＵ１に出力する。ステップＳ６において、ＣＰＵ１は許可信号１０４に応答して第１記憶装置３におけるＤＭＡ転送先のアドレスＡｄｄｒ１＿１〜Ａｄｄｒ１＿ｎへのアクセスが許可される。一方、割込み選択ユニット９が許可信号１０５を選択するように設定されている場合、許可信号１０５が入力されるとすぐに、許可信号１０５をＣＰＵ１に入力する。ステップＳ６において、ＣＰＵ１は許可信号１０５に応答して第１記憶装置３におけるＤＭＡ転送先のアドレスＡｄｄｒ１＿１〜Ａｄｄｒ１＿ｎへのアクセスが許可される。ここでは、許可信号１０５を選択するように設定された場合、ステップＳ１における対象アドレス１０１の設定は省略される。
【００５０】
例えば、ＣＰＵ１が複数のデータから構成される画像データを読み出す際、通常、複数のデータの先頭アドレスから順に読み出していく。ＣＰＵは、ＤＭＡＣ２からの許可信号１０５に基づいて第１記憶装置３へのアクセスを開始しても、既にＤＭＡ転送が完了しているはずの最初のデータから読み出していく。このため、画像データのような大きなデータ量を転送するようなＤＭＡ転送では、バッファ８による遅延があっても、第１記憶装置３に対するＣＰＵ１リードがＤＭＡライトを追い越す可能性は非常に低くなる。このような場合、許可信号１０５によるアクセス許可を選択することで、対象アドレス１０１の設定処理を省略することができる。又、このようなデータのＤＭＡ転送が実行される場合、ＣＰＵ１は、許可信号１０４に応じて第１記憶装置３にアクセスするよりも、許可信号１０５に応じてアクセスする方が、対象アドレスの第１バス５への転送を待たずにＣＰＵリードが実行できるため、早くデータを読み出すことができる。例えば、許可信号１０４、１０５がＣＰＵリードを実行させる割込みコマンドとして設定されている場合、許可信号１０５に応答してＣＰＵリードする方が、許可信号１０４に応答するよりも短時間にＤＭＡ転送されたデータを読み出すことができる。更に、許可信号１０４と許可信号１０５を選択利用できることから、ＤＭＡＣ２として、ＤＭＡ転送終了後に割込み信号をＣＰＵ１に発行する従来技術によるＤＭＡＣを用いることが可能となる。すなわち、従来技術によるＤＭＡＣをそのまま利用できるため、本発明によるマイクロコンピュータ１００Ｂを従来システムに導入することが容易となる。
【００５１】
尚、割込み選択ユニット９の機能がＣＰＵ１の内部に組み込まれても構わない。この際、許可信号１０４及び許可信号１０５は、ＣＰＵ１において判別可能な信号として直接入力され、ＣＰＵ１によって選択される。ＣＰＵ１が、許可信号１０４及び許可信号１０５を判別する構成としては、例えば、許可信号１０４及び許可信号１０５が、それぞれが専用線でＣＰＵ１に入力される構成や、許可信号１０４及び許可信号１０５のそれぞれに自身を特定する識別情報が付加され、共通線を介してＣＰＵに入力される構成がある。
【００５２】
３．第３の実施の形態
図５から図６Ｂを参照して、本発明によるマイクロコンピュータの第３の実施の形態を説明する。第１及び第２の実施の形態では、ＤＭＡ転送が１つの場合について説明したが、第３の実施の形態では、複数のＤＭＡ転送に対してＣＰＵアクセスが逆転しないマイクロコンピュータ１００Ｃについて説明する。本実施の形態におけるマイクロコンピュータ１００Ｃは、第１の実施の形態におけるマイクロコンピュータ１００Ａにおいて、ＤＭＡＣ２を複数備える構成である。
【００５３】
（構成）
以下、図５を参照して、マイクロコンピュータ１００Ｃの構成の詳細を説明する。図５は、第３の実施の形態におけるマイクロコンピュータ１００Ｃの構成を示すブロック図である。第３の実施の形態におけるマイクロコンピュータ１００Ｃは、それぞれ異なるＤＭＡ転送を制御する２つのＤＭＡＣ２−１、２−２が設けられる。以下では、ＤＭＡＣ２−１、２−２のそれぞれに対応する構成及び信号の符号に同じ追い番１、２を付して説明する。又、第１及び第２の実施の形態における構成と同一符号（追い番を付さない符号を含む）の構成は同様な動作を示すのでその説明を省略する。
【００５４】
マイクロコンピュータ１００Ｃは、ＣＰＵ１、複数のＤＭＡＣ２−１、２−２、第１記憶装置３、第２記憶装置４、第１バス５、第２バス６−１、第３バス６−２、バスブリッジ７−１、７−２、監視装置１０Ｂを具備する。第１バス５は、バスブリッジ７−１を介して第２バス６−１に接続される。第２バス６−１にはＤＭＡＣ２−１と第２記憶装置４が接続される。又、第２バス６−１にはバスブリッジ７−２を介して第３バス６−２が接続される。第３バス６−２にはＤＭＡＣ２−２が接続される。ＤＭＡＣ２−１は第２記憶装置４と第１記憶装置３との間のＤＭＡ転送を制御し、ＤＭＡＣ２−２はマイクロコンピュータ１００Ｃの外部に設けられた外部通信装置１７（例えばネットワーク、ＵＡＲＴ、ＵＳＢ）と第１記憶装置３との間におけるＤＭＡ転送を制御する。バスブリッジ７−１、７−２はそれぞれバッファ８−１、８−２を備えている。
【００５５】
本実施の形態における監視装置１０Ｂは、複数の対象アドレスレジスタ１１−１、１１−２と、対象アドレスレジスタ１１−１、１１−２のそれぞれに対応して接続される比較器１２−１、１２−２とを備える。アドレス取得回路１３は、比較器１２−１及び１２−２に共通接続され、それぞれに同一の取得アドレス１０３を出力する。対象アドレスレジスタ１１−１、１−２にはそれぞれ、ＤＭＡＣ２−１、２−２に対応する対象アドレス１０１−１、１０１−２が設定される。比較器１２−１、１２−２は対応する対象アドレスレジスタ１１−１、１１−２内の対象アドレス１０１−１、１０１−２と取得アドレス１０３とを比較し、チェックレジスタ１４にフラグを立てる（チェックレジスタ１４に「１」を設定する）。
【００５６】
ここで、図６Ａを参照して、チェックレジスタ１４は、対象アドレス１０１及び比較器１２毎に対応付けられた領域（ビット番号２１及びステータス２２）を有している。図６Ａには、一例として８つの比較器１２の比較結果を記録可能なチェックレジスタ１４の構成例が示されている。比較器１２は、それぞれの比較結果に応じて、対応するステータス２２を更新する。比較器１２は、対象アドレス１０１と取得アドレス１０３が一致すると、自身に対応するビット番号２１のステータス２２を「１」に設定し、一致しない場合「０」を維持する。尚、チェックレジスタ１４のステータス２２は、通常、オール「０」に設定されている。
【００５７】
ここで、比較器１２−１、１２−２はそれぞれビット番号２１「０」、「１」に対応付けられて設定される。例えば、比較器１２−１は、対象アドレス１０１と取得アドレス１０３を比較し、両者が一致するとビット番号２１「０」に対応するステータス２２を「１」に更新する。
【００５８】
許可信号発行回路１５は、チェックレジスタ１４のステータス２２を個々に監視し、ステータス２２のうち、少なくとも１つの値が「１」に更新されると、許可信号１０４をＣＰＵ１に発行する。ここでは、比較器１２−１及び１２−２のそれぞれに対応するビット番号２１「０」、「１」のどちらか一方、又は両方のステータス２２が「１」に更新されると、許可信号１０４が発行される。
【００５９】
ＣＰＵ１は許可信号１０４に応答して第１バスを介してチェックレジスタ１４内のビット番号２１及びステータス２２を取得する。この際、ビット番号２１（比較器１２）とＤＭＡ転送（ＤＭＡＣ２）は対応付けられて設定されているため、ＣＰＵ１は、取得したビット番号２２及びステータス２２によって、どのＤＭＡ転送が終了したかを確認することができる。例えば、ＣＰＵ１は、取得したステータス２２が「１」であるビット番号２１が「０」である場合、ＤＭＡＣ２によるＤＭＡ転送に係る第１記憶装置３の領域へのアクセスが許可される。又、第１の実施の形態のチェックレジスタ１４と同様にステータス２２は該当レジスタのリード、又は書き込みによりオール「０」にリセットされる。その他の実施の形態についても同様である。
【００６０】
以上のような構成により、本発明によるマイクロコンピュータ１００Ｃでは、複数のＤＭＡ転送に対応する複数の対象アドレス１０１を監視し、その監視結果に基づき、ＤＭＡ転送毎の終了を確認して、ＣＰＵ１による第１記憶装置３へのアクセスを開始できる。
【００６１】
本実施の形態では、許可信号１０４はＤＭＡ転送毎に対応付けられていないため、ＣＰＵ１は、許可信号１０４に応答して、チェックレジスタ１４の内容を確認してアクセス可能な領域を特定している。しかし、許可信号１０４は、ＤＭＡＣ２（対象アドレス１０１）毎に対応づけられていても構わない。この場合、ＣＰＵ１は、許可信号１０４によってどのＤＭＡ転送が終了したかを知ることができるため、チェックレジスタ１４の確認処理を省略することができる。許可信号１０４とＤＭＡＣ２を対応付ける方法としては、ビット数２１に対応付けられた専用線を介して許可信号１０４を発行する方法や、ビット番号等の識別情報を許可信号１０４に付加して発行する方法等がある。
【００６２】
又、本実施の形態では、ＣＰＵ１は、許可信号１０４に応答してチェックレジスタ１４の値を取得しているが、ＤＭＡＣ２から発行される許可信号（例えばＤＭＡ転送終了時にＣＰＵに発行される割込みコマンド）に応答してチェックレジスタ１４の値を取得しても構わない。この際、ＣＰＵ１はＤＭＡＣから発行される許可信号に応答して、第１バス経由でチェックレジスタ１４の値を読み出し、ＤＭＡ転送の完了を確認するまで第１記憶装置３へのアクセスを待機する。例えば、ＣＰＵ１は、ＤＭＡＣからの割込みコマンドに応答して所定の回数、所定のタイミングでチェックレジスタ１４の値を読み出す。ＣＰＵ１がステータス２２「１」を確認すると、これに対応するビット番号２１に対応付けられたＤＭＡ転送に係る領域へのＣＰＵ１によるアクセスが許可される。この場合、許可信号発行回路１５は不要となるが、ＤＭＡＣ２からの許可信号の取得直後では、まだチェックレジスタ１４のステータス２２が更新されていない場合もあるため、ステータス２２が更新されるまで、チェックレジスタ１４にアクセスする必要性が生じる。
【００６３】
更に、本実施の形態は第２の実施の形態と組み合わせても構わない。すなわち、割込み選択ユニット９が設けられても良い。この場合、ＤＭＡＣ２−１、２−２は、第２の実施の形態と同様に、ＤＭＡ転送が終了すると、それぞれＣＰＵ１に許可信号１０５を発行する。割込み処理ユニット９には、ＤＭＡ転送毎に選択する許可信号が設定され、この設定に基づきＣＰＵ１へ入力する許可信号が選択される。
【００６４】
本実施の形態では、チェックレジスタ１４にイネーブルフラグ２３を用いることで使用しない比較器１２を設定することができる。図６Ｂは、イネーブルフラグ２３が追加されたチェックレジスタ１４の構成を示す図である。この場合、使用する比較器１２に対応するビット番号２１のイネーブルフラグ２３は「１」に設定され、使用しない比較器１２に対応するイネーブルフラグ２３は「０」に設定されるものとする。許可信号発行回路１５は、ステータス２２の代わりにステータス２２とイネーブルフラグ２３との論理積２４を監視し、この論理積２４の更新（「１」に更新）に基づき許可信号１０４を発行する。又、この場合、ＣＰＵ１は、許可信号１０４に応じて論理積２４とビット番号２１を取得し、この論理積に対応するアクセス処理を実行する。例えば、第２の実施の形態のようにＤＭＡＣ２からの許可信号１０５を選択したい場合、イネーブルフラグ２３「０」によって当該ＤＭＡ転送に係る比較器１２をディセーブルに設定し、許可信号１０４の発行を禁止することができる。又、許可信号１０４又は１０５に基づくＣＰＵ１のアクセスが開始された後、イネーブルフラグ２３を「０」にセットすることで、当該ＤＭＡ転送に対応する対象アドレスレジスタ１１をリセットすることなく、許可信号１０４の発行を禁止することができる。
【００６５】
以上のように、イネーブフラグ２３を設定することで、許可信号１０４の発行を制御し、事前に設定された複数の対象アドレス１０１の使用・不使用を決定することができる。設定された対象アドレス１０１を不使用にするためには、対象アドレス１０１を他のアドレスに書き換えたり、リセットする必要があるが、イネーブルフラグ２３による使用制限により、その必要がなくなる。このため、対象アドレス１０１の書き換えに要する時間や消費電力を抑制することができる。
【００６６】
本実施の形態における動作の説明は、許可信号１０４（又は１０５）が入力されたＣＰＵ１による、チェックレジスタ１４の確認処理、及び、割込み選択ユニット９における許可信号の選択処理以外、第１及び第２の実施の形態と同様なので、説明を省略する。尚、本実施の形態では、ＤＭＡＣ２が２つの場合について説明したが、その数に限らないのは言うまでもない。尚、第３バス６−２が接続するブリッジ７−２は、第２バス６−２に接続されているが、この限りではなく、第３バスが第１バスに対して階層構造を示す、又は第３バス６−２が何らかの遅延要因を介して第１バス５に接続されるバスであれば、これに限定されない。
【００６７】
４．第４の実施の形態
図７を参照して、本発明によるマイクロコンピュータの第４の実施の形態を説明する。第１から第３の実施の形態では、ＣＰＵが１つの場合について説明したが、第４の実施の形態では、複数のＣＰＵを有するマイクロコンピュータ１００Ｄについて説明する。マイクロコンピュータ１００Ｄは、第１の実施の形態におけるマイクロコンピュータ１００Ａにおいて、複数のＣＰＵ１−Ａ、１−Ｂを複数備える構成である。
【００６８】
（構成）
以下、図７を参照して、マイクロコンピュータ１００Ｄの構成の詳細を説明する。図７は、第４の実施の形態におけるマイクロコンピュータ１００Ｄの構成を示すブロック図である。第４の実施の形態におけるマイクロコンピュータ１００Ｄは、それぞれ異なる処理を実行する２つのＣＰＵ１−Ａ、１−Ｂが設けられる。以下では、ＣＰＵ１−Ａ、１−Ｂのそれぞれに対応する構成の符号に同じ追い番Ａ、Ｂを付して説明する。又、第１及び第２の実施の形態における構成と同一符号（追い番を付さない符号を含む）の構成は同様な動作を示すので、その説明を省略する。
【００６９】
本実施の形態に係るＣＰＵ１−Ａ、１−Ｂは共通の第１バス５を介して第１記憶装置３に接続される。本実施の形態における監視装置１０Ｃは、ＣＰＵ１−Ａに対応する対象アドレスレジスタ１１−Ａ、比較器１２−Ａ、チェックレジスタ１４Ａ、許可信号発行回路１５−Ａと、ＣＰＵ１−Ｂに対応する対象アドレスレジスタ１１−Ｂ、比較器１２−Ｂ、チェックレジスタ１４Ａ、許可信号発行回路１５−Ｂとを備える。許可信号発行回路１５−Ａ、１５−Ｂはそれぞれ個別の信号線を介して、許可信号１０４−Ａ及び１０４−ＢをＣＰＵ１−Ａ、ＣＰＵ１−Ｂにに発行する。すなわち、本実施の形態における監視装置１０Ｃは、ＣＰＵ１毎に対象アドレス１０１を監視し、監視結果に基づきＣＰＵ１毎に許可信号１０４を発行する。ただし、回路構成を縮小するため、許可信号発生回路１５−Ａ及び１５−Ｂは共通の信号線を介して許可信号１０４−Ａ及び１０４Ｂを発行しても良い。この場合、許可信号１０４−Ａ、１０４−Ｂは発行元の許可信号発生回路１５を識別する情報を含む。上記のＣＰＵ１毎に構成される回路の個々の動作は、第１及び第２の実施の形態と同じであるので説明を省略する。
【００７０】
本実施の形態は第２の実施の形態と組み合わせても構わない。すなわち、割込み選択ユニット９が設けられても良い。この場合、ＣＰＵ１−Ａ、１−Ｂはそれぞれ割込み選択ユニット９に接続される。許可信号発生回路１５−Ａ及び１５−Ｂはそれぞれ個別の信号線を介して許可信号１０４−Ａ、１０４−Ｂを割込み選択ユニット９に発行する。ただし、回路構成を縮小するため、許可信号発生回路１５−Ａ及び１５−Ｂは共通の信号線を介して許可信号１０４−Ａ及び１０４Ｂを発行しても良い。この場合、許可信号１０４−Ａ、１０４−Ｂは発行元の許可信号発生回路１５を識別する情報を含む。ＤＭＡＣ２は、割込み選択ユニット９経由でＣＰＵ１−Ａ及び１−Ｂに対し、それぞれ個別の許可信号１０５を発行する。又、本実施の形態は第３の実施の形態と組み合わせても構わない。すなわち、複数のＤＭＡＣ２が設けられても良い。
【００７１】
以上のように、ＣＰＵ１が複数設けられる構成においても、ＣＰＵ１毎に設定された対象アドレス１０１を第１バス５上で監視することで、ＣＰＵアクセスがＤＭＡを追い越さないように、ＣＰＵ１毎のＣＰＵアクセスを制御することができる。尚、本実施の形態では、説明を簡略化するためにＤＭＡＣ２が１つの場合を一例に示したが、第３の実施の形態と組み合わせても良い。すなわち、ＣＰＵ１−Ａ、１−Ｂのそれぞれに対応する対象アドレスレジスタ１１及び比較器１２を複数備える構成でも構わない。本実施の形態によれば、マルチＣＰＵ構成にも本発明を適用可能となる。
【００７２】
以上、本発明の実施の形態を詳述してきたが、具体的な構成は上記実施の形態に限られるものではなく、本発明の要旨を逸脱しない範囲の変更があっても本発明に含まれる。本実施の形態では、チェックレジスタ１４（ステータス２２）が「１」のときに許可信号１０４が発行され、「０」のときは発行されない設定であるが、これに限らず、「０」のときに許可信号１０４が発行され、「１」のときに発行されない設定でも構わない。
【図面の簡単な説明】
【００７３】
【図１】図１は、本発明によるマイクロコンピュータの第１の実施の形態における構成を示すブロック図である。
【図２】図２は、本発明によるマイクロコンピュータの実施の形態におけるアクセス制御動作を示すフロー図である。
【図３Ａ】図３Ａは、本発明よるマイクロコンピュータにおけるＤＭＡ転送動作、及び対象アドレス監視動作を示すタイミングチャートである。
【図３Ｂ】図３Ｂは、本発明よるマイクロコンピュータにおけるＤＭＡ転送動作、及び対象アドレス監視動作を示すタイミングチャートである。
【図４】図４は、本発明によるマイクロコンピュータの第２の実施の形態における構成を示すブロック図である。
【図５】図５は、本発明によるマイクロコンピュータの第３の実施の形態における構成を示すブロック図である。
【図６Ａ】図６Ａは、本発明に係るチェックレジスタの構成を示す図である。
【図６Ｂ】図６Ｂは、本発明に係るチェックレジスタのイネーブルフラグが適用された場合の構成を示す図である。
【図７】図７は、本発明によるマイクロコンピュータの第４の実施の形態における構成を示すブロック図である。
【図８】図８は、従来技術によるアクセス制御装置を用いたシステムのシステム構成とアクセス制御装置の内部構成を示すブロック図である。
【符号の説明】
【００７４】
１、１−Ａ、１−Ｂ：ＣＰＵ
２、２−１、２−２：ＤＭＣＡ
３：第１記憶装置
４：第２記憶装置
５：第１バス
６：第２バス
７、７−１、７−２：バスブリッジ
８、８−１、８−２：バッファ
９、９−Ａ、９−Ｂ：割込み選択ユニット
１０Ａ、１０Ｂ、１０Ｃ：監視装置
１１、１１−１、１１−２：対象アドレスレジスタ
１２、１２−１、１２−２：比較器
１３：アドレス取得回路
１４：チェックレジスタ
１５：許可信号発行回路
１０１、１０１−１、１０１−２、１０１−Ａ、１０１−Ｂ：対象アドレス
１０２：アドレスデータ
１０３：取得アドレス
１０４、１０４−Ａ、１０４−Ｂ：許可信号
１０５：割込み信号
２０１：プロセッサ
２０２：アクセス制御装置
２０３：主記憶装置
２０４：バス
２０５：Ｉ／Ｏ装置
２１１、２１２：バッファ
２１３：比較器
２１４：アクセス制御ユニット
【図１】
2008040905.tif 000003
【図２】
2008040905.tif 000004
【図３Ａ】
2008040905.tif 000005
【図３Ｂ】
2008040905.tif 000006
【図４】
2008040905.tif 000007
【図５】
2008040905.tif 000008
【図６Ａ】
2008040905.tif 000009
【図６Ｂ】
2008040905.tif 000010
【図７】
2008040905.tif 000011
【図８】
2008040905.tif 000012