(57)【要約】【課題】  ＤＭＡ転送におけるレイテンシーの改善を図る。【解決手段】  本発明は、バスＩＰを介してリクエスト／レスポンスに基づくバスプロトコルに従いデータ転送可能に接続された、プロセッサと、メモリと、ＤＭＡコントローラ（ＤＭＡＣ）とを含む半導体装置である。該半導体装置は、該バスＩＰと同じ挙動をするように構成されたダミーバスＩＰと、該ダミーバスＩＰに接続され、該メモリと同じ挙動をするように構成されたダミーメモリと、該ＤＭＡＣと該バスＩＰ及び該ダミーバスＩＰとの間に設けられたバス制御回路とを備える。該ダミーバスＩＰは、該ＤＭＡＣにより発行されたライトリクエストに基づく先行レスポンスを該バス制御回路に送出し、該バス制御回路は、該先行レスポンスに基づいて、該ライトリクエストに対するライトレスポンスを該ＤＭＡコントローラに送出する。【選択図】  図１
2015194900.tif 000002
【特許請求の範囲】
【請求項１】
バスＩＰを介してリクエスト／レスポンスに基づく所定のバスプロトコルに従いデータ転送可能に接続された、バスマスタとして動作する少なくとも１つのプロセッサと、バススレーブとして動作する少なくとも１つのメモリと、前記バスマスタとして動作するＤＭＡコントローラとを含む半導体装置であって、
前記少なくとも１つのプロセッサ及び前記ＤＭＡコントローラに接続され、前記バスＩＰと同じ挙動をするように構成されたダミーバスＩＰと、
前記ダミーバスＩＰに接続され、前記メモリと同じ挙動をするように構成されたダミーメモリと、
前記ＤＭＡコントローラと、前記バスＩＰ及び前記ダミーバスＩＰとの間に設けられたバス制御回路と、を備え、
前記ダミーバスＩＰは、前記ＤＭＡコントローラにより発行されたリクエストに基づく先行レスポンスを前記バス制御回路に送出し、
前記バス制御回路は、前記ダミーバスＩＰから送出された前記先行レスポンスに基づいて、前記リクエストに対するレスポンスを前記ＤＭＡコントローラに送出する、
半導体装置。
【請求項２】
前記ダミーバスＩＰは、前記バスマスタにより発行されたライトリクエストに基づいて前記先行レスポンスを前記バス制御回路に送出し、
前記バス制御回路は、前記ダミーバスＩＰから送出された前記先行レスポンスに基づいて、前記ライトリクエストに対するライトレスポンスを前記ＤＭＡコントローラに送出する、
請求項１記載の半導体装置。
【請求項３】
前記ＤＭＡコントローラは、前記ライトリクエストに対する前記ライトレスポンスを受け取った場合に、前記プロセッサに対して割り込みをかける、請求項２記載の半導体装置。
【請求項４】
前記ダミーバスＩＰは、前記バスＩＰが前記バスマスタにより発行されたリクエストに基づいて前記メモリに対して該リクエストを発行するタイミングと同一のタイミングで、前記先行レスポンスを前記バス制御回路に送出する、請求項１記載の半導体装置。
【請求項５】
前記ダミーバスＩＰは、前記バスマスタにより発行されたリクエストに従うデータ本体を無視するように構成される、請求項１記載の半導体装置。
【請求項６】
前記ダミーメモリは、前記バスマスタにより発行されたリクエストに従うデータ本体を記憶する記憶セルを有しないように構成される一方で、該リクエストに対するレスポンスを前記ダミーバスＩＰに発行するように構成される、請求項５記載の半導体装置。
【請求項７】
前記少なくとも１つのプロセッサ及び前記ＤＭＡコントローラと前記ダミーバスＩＰとの間に設けられた第１のタイミング調整回路をさらに備える、請求項１記載の半導体装置。
【請求項８】
前記バス制御回路は、前記先行レスポンスに基づく前記ライトレスポンスを前記ＤＭＡコントローラに送出した後、前記バスＩＰを介して、前記メモリにより発行された前記リクエストに対する真のライトレスポンスを受け取った場合、該真のライトレスポンスが前記ＤＭＡコントローラに送出されないように制御する、請求項２記載の半導体装置。
【請求項９】
前記バス制御回路は、前記ダミーバスＩＰから送出される前記先行レスポンスを受け取った場合に、前記ライトリクエストに先行する、前記バスマスタにより発行された他のリクエストが存在すると判断する場合には、前記先行レスポンスに基づく前記ライトリクエストに対するライトレスポンスに代えて、前記バスＩＰを介して受け取った、前記メモリにより発行された前記ライトリクエストに対する真のライトレスポンスを前記ＤＭＡコントローラに送出する、請求項８記載の半導体装置。
【請求項１０】
前記バス制御回路は、前記他のリクエストに対するレスポンスを前記バスマスタに送出した後、前記真のライトレスポンスを前記ＤＭＡコントローラに送出する、請求項９記載の半導体装置。
【請求項１１】
バス制御回路は、
前記バスマスタにより発行されたリクエストを一時的に格納するバッファと、
前記メモリにより発行され前記バスＩＰを介して受け取ったレスポンスと前記バッファに格納された前記リクエストとの対応関係に従って、前記バスマスタにより発行された前記リクエストに対する所定のレスポンスを前記バスマスタに送出するように制御するレスポンス制御部と、
を備える、請求項１記載の半導体装置。
【請求項１２】
前記バス制御回路は、前記バスマスタにより発行されたリクエストを前記バッファに格納するためのタイミングを調整する第２のタイミング調整回路をさらに備える、請求項１１記載の半導体装置。
【請求項１３】
前記少なくとも１つのプロセッサにより発行されるライトリクエストの数と、前記ダミーバスＩＰを介して受け取った前記ダミーメモリにより発行されたライトレスポンスの数とを監視する少なくとも１つのバス監視回路をさらに備え、
前記バス制御回路は、前記バス監視回路により前記少なくとも１つのプロセッサから前記メモリに対する現在処理中のライトリクエストが存在しないと判断される場合に、前記ＤＭＡコントローラにより一のライトリクエストが発行された時点で、該一のライトリクエストに対するライトレスポンスを前記ＤＭＡコントローラに送出する、請求項２記載の半導体装置。
【請求項１４】
複数の前記バス監視回路のそれぞれは、複数の前記プロセッサのうちの対応する一のプロセッサにより発行されるライトリクエストの数を監視する、請求項１３記載の半導体装置。
【請求項１５】
複数の前記メモリと、該複数のメモリのそれぞれに対応する複数のダミーメモリとを備え、
前記ダミーバスＩＰは、前記バスマスタにより発行された前記複数のダミーメモリのそれぞれに対するライトアクセスに基づいて、前記先行レスポンスを前記バス制御回路にそれぞれ送出する、
請求項１４記載の半導体装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体装置に関し、特に、バスを介したＤＭＡ転送を実行可能な半導体装置に関する。
【背景技術】
【０００２】
ＤＭＡ（Direct Memory Access）は、コンピュータシステムにおいて、プロセッサを介さずにコンポーネント間でバスを介したデータ転送を行う技術である。かかるＤＭＡによるデータ転送（以下、「ＤＭＡ転送」という。）では、プロセッサにおいてデータ転送要求が発生した場合、プロセッサは、ＤＭＡコントローラに対してデータ転送命令を与え、ＤＭＡコントローラは、該データ転送命令に基づいて、プロセッサの処理とは独立に、データの転送処理を行う。ＤＭＡコントローラは、該転送処理が完了すると、ＣＰＵに対して割り込みをかけ、該転送処理完了したことを通知する。一般に、プロセッサやＤＭＡコントローラは、バス乃至はバスＩＰを制御してメモリ等にアクセスすることから、「バスマスタ」又は「イニシエータ」と呼ばれ、該アクセスされるメモリ等は「バススレーブ」又は「ターゲット」と呼ばれる。
【０００３】
例えば、下記特許文献１は、バスを介してデータ転送を行うデータ転送装置であって、データをターゲットデバイスへ書き込むデバイスコントローラと、前記バスを介して前記デバイスコントローラへ前記データをＤＭＡ転送すると共に、前記デバイスコントローラへ転送完了通知要求信号を出力するイニシエータコア１１と、を備える該データ転送装置を開示する。そして、前記デバイスコントローラは、前記転送完了通知要求信号を受信した場合、前記ターゲットデバイスへの前記データの全てのすべての書き込みに伴い転送完了通知信号を出力する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００９−２７７００４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
バスマスタとして動作するプロセッサ又はＤＭＡコントローラが、例えば、バスＩＰを介して、ＳＲＡＭ等のメモリにアクセスする場合、バスＩＰの競合が発生し得る。すなわち、プロセッサのアクセス（例えば、リード／ライト）は、典型的には、ＤＭＡコントローラのそれよりも優先度が高く、プロセッサのアクセス中に発生したＤＭＡコントローラのアクセスは、プロセッサのアクセスの終了後に実行される。また、データの整合性を保証するため、ＤＭＡコントローラによるメモリへのライトアクセス制御が発生する場合、プロセッサは、該ライトアクセス制御が終了し、割り込みがかかるまで、ウェイト状態になる必要がある。ＤＭＡコントローラは、メモリへのデータ転送終了の通知をバスＩＰから受け取ると、プロセッサに対して割り込みをかけ、プロセッサは、これを受けて、実行を再開する。
【０００６】
しかしながら、ＤＭＡコントローラが、メモリに対するデータのライトアクセス制御を行ってから、バスＩＰからデータ転送終了の通知を受け取るまで、典型的には、数クロックを要する場合があり、プロセッサへの割り込みや次のライトアクセス制御に対してレイテンシーが発生するのが実情である。
【０００７】
また、ＤＭＡコントローラが、プロセッサとの間で競合せず、所定の時間内にアクセスが終了することがわかっている場合であっても、ＤＭＡコントローラは、バスＩＰからのデータ転送終了の通知に基づいて割り込みをかけていたため、同様に、望ましくないレイテンシーが発生していた。
【０００８】
そこで、本発明は、ＤＭＡ転送におけるレイテンシーの改善を図ることのできる半導体装置を提供することを目的とする。
【０００９】
より具体的には、本発明は、バスＩＰを介して接続されるＤＭＡコントローラとメモリとの間のＤＭＡ転送によるライトアクセス制御において、データ転送終了の通知を早期に送ることで、レイテンシーの改善を図ることのできる半導体装置を提供することを目的とする。
【課題を解決するための手段】
【００１０】
上記課題を解決するための本発明は、以下に示す発明特定事項乃至は技術的特徴を含んで構成される。
【００１１】
ある観点に従う本発明は、バスＩＰを介してリクエスト／レスポンスに基づく所定のバスプロトコルに従いデータ転送可能に接続された、バスマスタとして動作する少なくとも１つのプロセッサと、バススレーブとして動作する少なくとも１つのメモリと、前記バスマスタとして動作するＤＭＡコントローラとを含む半導体装置である。前記半導体装置は、前記少なくとも１つのプロセッサ及び前記ＤＭＡコントローラに接続され、前記バスＩＰと同じ挙動をするように構成されたダミーバスＩＰと、前記ダミーバスＩＰに接続され、前記メモリと同じ挙動をするように構成されたダミーメモリと、前記ＤＭＡコントローラと、前記バスＩＰ及び前記ダミーバスＩＰとの間に設けられたバス制御回路とを備える。前記ダミーバスＩＰは、前記ＤＭＡコントローラにより発行されたリクエストに基づく先行レスポンスを前記バス制御回路に送出する。また、前記バス制御回路は、前記ダミーバスＩＰから送出された前記先行レスポンスに基づいて、前記リクエストに対するレスポンスを前記ＤＭＡコントローラに送出する。
【００１２】
とりわけ、前記ダミーバスＩＰは、前記バスマスタにより発行されたライトリクエストに基づいて前記先行レスポンスを前記バス制御回路に送出し、前記バス制御回路は、前記ダミーバスＩＰから送出された前記先行レスポンスに基づいて、前記ライトリクエストに対するライトレスポンスを前記ＤＭＡコントローラに送出し得る。
【００１３】
これにより、前記半導体装置では、前記ＤＭＡコントローラから前記メモリに対してライトアクセスが発行された場合に、前記メモリからのライトレスポンスを待つことなく、擬似的なライトレスポンスを前記ＤＭＡコントローラに返すことができるようになる。したがって、前記ＤＭＡコントローラは、前記メモリに対するライトアクセスを直ちに終了させることができ、レイテンシーが改善されることになる。
【００１４】
前記ＤＭＡコントローラは、前記ライトリクエストに対する前記ライトレスポンスを受け取った場合に、前記プロセッサに対して割り込みをかけ得る。
【００１５】
前記ダミーバスＩＰは、前記バスＩＰが前記バスマスタにより発行されたリクエストに基づいて前記メモリに対して該リクエストを発行するタイミングと同一のタイミングで、前記先行レスポンスを前記バス制御回路に送出し得る。
【００１６】
前記ダミーバスＩＰは、前記バスマスタにより発行されたリクエストに従うデータ本体を無視するように構成され得る。また、これに伴い、前記ダミーメモリは、前記バスマスタにより発行されたリクエストに従うデータ本体を記憶する記憶セルを有しないように構成される一方で、該リクエストに対するレスポンスを前記ダミーバスＩＰに発行するように構成され得る。
【００１７】
前記半導体装置は、前記少なくとも１つのプロセッサ及び前記ＤＭＡコントローラと前記ダミーバスＩＰとの間に設けられた第１のタイミング調整回路をさらに備え得る。
【００１８】
また、前記バス制御回路は、前記先行レスポンスに基づく前記ライトレスポンスを前記ＤＭＡコントローラに送出した後、前記バスＩＰを介して、前記メモリにより発行された前記リクエストに対する真のライトレスポンスを受け取った場合、該真のライトレスポンスが前記ＤＭＡコントローラに送出されないように制御し得る。
【００１９】
さらに、前記バス制御回路は、前記ダミーバスＩＰから送出される前記先行レスポンスを受け取った場合に、前記ライトリクエストに先行する、前記バスマスタにより発行された他のリクエストが存在すると判断する場合には、前記先行レスポンスに基づく前記ライトリクエストに対するライトレスポンスに代えて、前記バスＩＰを介して受け取った、前記メモリにより発行された前記ライトリクエストに対する真のライトレスポンスを前記ＤＭＡコントローラに送出し得る。
【００２０】
さらにまた、バス制御回路は、前記他のリクエストに対するレスポンスを前記バスマスタに送出した後、前記真のライトレスポンスを前記ＤＭＡコントローラに送出し得る。
【００２１】
また、前記バス制御回路は、前記バスマスタにより発行されたリクエストを一時的に格納するバッファと、前記メモリにより発行され前記バスＩＰを介して受け取ったレスポンスと前記バッファに格納された前記リクエストとの対応関係に従って、前記バスマスタにより発行された前記リクエストに対する所定のレスポンスを前記バスマスタに送出するように制御するレスポンス制御部とを備え得る。
【００２２】
また、前記バス制御回路は、前記バスマスタにより発行されたリクエストを前記バッファに格納するためのタイミングを調整する第２のタイミング調整回路をさらに備え得る。
【００２３】
また、前記半導体装置は、前記少なくとも１つのプロセッサにより発行されるライトリクエストの数と、前記ダミーバスＩＰを介して受け取った前記ダミーメモリにより発行されたライトレスポンスの数とを監視する少なくとも１つのバス監視回路をさらに備え得る。前記バス制御回路は、前記バス監視回路により前記少なくとも１つのプロセッサから前記メモリに対する現在処理中のライトリクエストが存在しないと判断される場合に、前記ＤＭＡコントローラにより一のライトリクエストが発行された時点で、該一のライトリクエストに対するライトレスポンスを前記ＤＭＡコントローラに送出し得る。
【００２４】
また、前記半導体装置に複数のバス監視回路が設けられた場合、前記複数のバス監視回路のそれぞれは、複数の前記プロセッサのうちの対応する一のプロセッサにより発行されるライトリクエストの数を監視し得る。
【００２５】
また、前記半導体装置は、複数の前記メモリと、該複数のメモリのそれぞれに対応する複数のダミーメモリとを備え得る。前記ダミーバスＩＰは、前記バスマスタにより発行された前記複数のダミーメモリのそれぞれに対するライトアクセスに基づいて、前記先行レスポンスを前記バス制御回路にそれぞれ送出し得る。
【００２６】
また、別の観点に従う本発明は、方法の発明としても把握することができる。
【００２７】
なお、本明細書等において、手段とは、単に物理的手段を意味するものではなく、その手段が有する機能をソフトウェアによって実現する場合も含む。また、１つの手段が有する機能が２つ以上の物理的手段により実現されても、２つ以上の手段の機能が１つの物理的手段により実現されても良い。
【発明の効果】
【００２８】
本発明によれば、ＤＭＡ転送におけるレイテンシーの改善を図ることのできる半導体装置が実現される。
【００２９】
より具体的には、本発明によれば、ＤＭＡコントローラからメモリに対してライトリクエストが発行された場合に、該メモリからのライトレスポンスを待つことなく、擬似的なライトレスポンスを該ＤＭＡコントローラに返すため、該ＤＭＡコントローラは、該メモリに対するライトアクセスを直ちに終了させることができ、したがって、半導体装置におけるレイテンシーを改善することができるようになる。
【００３０】
また、本発明によれば、レイテンシー改善のために導入したダミーバスＩＰ及びダミーメモリは、本来のバスＩＰ及びメモリの回路構成を全て再現する必要はなく、したがって、回路規模の増大を回避しつつ、レイテンシーの改善を図ることのできる半導体装置が実現される。
【００３１】
本発明の他の技術的特徴、目的、及び作用効果乃至は利点は、添付した図面を参照して説明される以下の実施形態により明らかにされる。
【図面の簡単な説明】
【００３２】
【図１】本発明の一実施形態に係る半導体装置の概略構成の一例を説明するブロックダイアグラムである。
【図２】本発明の一実施形態に係る半導体装置のバスＩＰの概略構成の一例を示すブロックダイアグラムである。
【図３】本発明の一実施形態に係る半導体装置のダミーバスＩＰの概略構成の一例を示すブロックダイアグラムである。
【図４】本発明の一実施形態に係る半導体装置の概略的動作の一例を説明するためのタイミングチャートである。
【図５】本発明の一実施形態に係る半導体装置の概略的動作の他の例を説明するためのタイミングチャートである。
【図６】本発明の一実施形態に係る半導体装置のバス制御回路の概略構成の一例を示すブロックダイアグラムである。
【図７Ａ】本発明の一実施形態に係る半導体装置のバス制御回路におけるレスポンス処理を説明するためのフローチャートである。
【図７Ｂ】本発明の一実施形態に係る半導体装置のバス制御回路におけるレスポンス処理を説明するためのフローチャートである。
【図７Ｃ】本発明の一実施形態に係る半導体装置のバス制御回路におけるレスポンス処理を説明するためのフローチャートである。
【図８】本発明の一実施形態に係る半導体装置のバス制御回路の概略構成の他の例を示すブロックダイアグラムである。
【図９】本発明の一実施形態に係る半導体装置のバス制御回路の動作の一例を説明するためのタイミングチャートである。
【図１０】本発明の一実施形態に係る半導体装置のバス制御回路の動作の他の例を説明するためのタイミングチャートである。
【図１１】本発明の一実施形態に係る半導体装置の概略構成の一例を示すブロックダイアグラムである。
【図１２】本発明の一実施形態に係る半導体装置のバス制御回路の概略構成の他の例を示すブロックダイアグラムである。
【図１３】本発明の一実施形態に係る半導体装置の概略構成の一例を示すブロックダイアグラムである。
【図１４】本発明の一実施形態に係る半導体装置の概略構成の一例を示すブロックダイアグラムである。
【発明を実施するための形態】
【００３３】
以下、図面を参照して本発明の実施の形態を説明する。ただし、以下に説明する実施形態は、あくまでも例示であり、以下に明示しない種々の変形や技術の適用を排除する意図はない。本発明は、その趣旨を逸脱しない範囲で種々変形（例えば各実施形態を組み合わせる等）して実施することができる。また、以下の図面の記載において、同一又は類似の部分には同一又は類似の符号を付して表している。図面は模式的なものであり、必ずしも実際の寸法や比率等とは一致しない。図面相互間においても互いの寸法の関係や比率が異なる部分が含まれていることがある。
【００３４】
本発明は、バスＩＰを介してリクエスト／レスポンスに基づくバスプロトコルに従いデータ転送可能に接続された、プロセッサと、メモリと、ＤＭＡコントローラ（ＤＭＡＣ）とを含む半導体装置である。該半導体装置は、該バスＩＰと同じ挙動をするように構成されたダミーバスＩＰと、該ダミーバスＩＰに接続され、該メモリと同じ挙動をするように構成されたダミーメモリと、該ＤＭＡＣと該バスＩＰ及び該ダミーバスＩＰとの間に設けられたバス制御回路とをさらに備える。該ダミーバスＩＰは、該ＤＭＡＣにより発行されたライトリクエストに基づく先行レスポンスを該バス制御回路に送出し、該バス制御回路は、該先行レスポンスに基づいて、該ライトリクエストに対するライトレスポンスを該ＤＭＡコントローラに送出する。
【００３５】
［第１の実施形態］
図１は、本発明の一実施形態に係る半導体装置の概略構成の一例を説明するブロックダイアグラムである。同図に示すように、半導体装置１００は、例えば、プロセッサ１１０と、メモリ１２０と、バスＩＰ１３０と、ＤＭＡコントローラ（以下、「ＤＭＡＣ」という。）１４０とを含んで構成される。すなわち、プロセッサ１１０、メモリ１２０、及びＤＭＡＣ１４０との間は、いわゆるバスが形成されている。本実施形態ではさらに、半導体装置１００は、例えば、ダミーバスＩＰ１５０と、ダミーメモリ１６０と、タイミング調整回路１７０と、バス制御回路１８０とを含む。すなわち、ダミーパスＩＰ、ダミーメモリ、及びタイミング調整回路によりダミーブロックが形成されている。
【００３６】
プロセッサ１１０は、プログラムとして記述された命令コードを解釈することにより所定の処理を実行するコンポーネントである。ここでは、「プロセッサ」という語は、ＣＰＵやＭＰＵ、コプロセッサ、マイクロコントローラ等と同義のものとして扱われ、また、マルチコアプロセッサを意味するものであっても良い。プロセッサ１１０は、図示されていないが、例えば、演算回路と、デコーダと、各種のレジスタと、プログラムカウンタとを含んで構成される。プロセッサ１１０はまた、キャッシュメモリを含んで良い。プロセッサ１１０は、例えば、バスＩＰ１３０を介して、メモリ１２０と接続される。プロセッサ１１０は、例えば、バスマスタとして、バススレーブであるメモリ１２０にアクセスするため、所定のリクエスト（例えばライトリクエストやリードリクエスト）を発行する。リクエストは、半導体装置１００において例えば固有のアクセスＩＤによって一意に識別される。
【００３７】
メモリ１２０は、例えば、揮発性メモリ及び／又は書き換え可能な不揮発性メモリを含んで構成されるコンポーネントである。揮発性メモリの例としては、ＤＲＡＭやＳＲＡＭが挙げられ、また、書き換え可能な不揮発性メモリの例としては、フラッシュメモリが挙げられるが、これらに限られるものではない。図中、１つのメモリ１２０のみが示されているが、複数のメモリ１２０が設けられていても良い。
【００３８】
バスＩＰ１３０は、所定のバスプロトコルに従って、バスマスタとバススレーブとの間のデータ転送（バス通信）を実現するためのインターフェース回路である。バスプロトコルでは、例えば、リクエスト及びレスポンスというアクセスがそれぞれ定義される。リクエストは、バスマスタからバススレーブに対して送られるデータユニットであり、リクエストには、例えば、リードコマンドやライトコマンド等がある。レスポンスは、バススレーブからバスマスタに対して送られるデータユニットであり、リクエストには、例えば、リードデータやライト終了メッセージ等がある。本実施形態では、プロセッサ１１０及びＤＭＡＣ１４０のそれぞれがバスマスタとして動作し、メモリ１２０がバススレーブとして動作する例を示している。したがって、本例では、バスＩＰ１３０は、バスマスタと通信するための２つのイニシエータエージェント（ＩＡ）１３１と、メモリ１２０と通信するための１つのターゲットエージェント（ＴＡ）１３２とを含んで構成されている。
【００３９】
図２は、本発明の一実施形態に係る半導体装置のバスＩＰの概略構成の一例を示すブロックダイアグラムである。同図では、２つのイニシエータエージェント１３１Ａ及び１３１Ｂと、１つのターゲットエージェント１３２とを含むバスＩＰ１３０の概略構成が示されている。また、同図に示すように、バスＩＰ１３０の内部では、バスプロトコルのリクエストとレスポンスとを別々に管理するように、それぞれ異なる経路が形成されている。
【００４０】
イニシエータエージェント１３１Ａ及び１３１Ｂのそれぞれは、プロトコル変換部１３１１と、各種のバッファ１３１２ａ〜１３１２ｄと、アドレスデコーダ１３１３とを含んで構成される。プロトコル変換部１３１１は、外部から受け取ったデータを、所定のバスプロトコルに従って、順次に、内部データに変換し、対応するバッファ１３１２ａ又は１３１２ｂに送出する一方、対応するバッファ１３１２ｃ又は１３１２ｄから受け取った内部データを、所定のバスプロトコルに従って、外部のデータに変換する。リクエストバッファ１３１２ａは、データユニットとしてのリクエストを格納するＦＩＦＯ形式のバッファ回路であり、ライトデータバッファ１３１２ｂは、ライトリクエストに従うライトデータを格納するＦＩＦＯ形式のバッファ回路である。リクエストバッファ１３１２ａから送出されるリクエストは、アドレスデコーダ１３１３に入力される。また、レスポンスバッファ１３１２ｃは、ターゲットエージェント１３２から受け取ったレスポンスを格納するＦＩＦＯ形式のバッファ回路であり、リードデータバッファ１３１２ｄは、ターゲットエージェント１３２から受け取ったリードデータを格納するＦＩＦＯ形式のバッファ回路である。アドレスデコーダ１３１３は、リクエストバッファ１３１２ａから受け取ったリクエストが示すアドレスに基づいて、アクセス先のバススレーブ及びそのアドレスを特定する。
【００４１】
また、プロトコル変換部１３１１は、バスマスタから受け取ったリクエストが互いに識別可能なように、該受け取ったリクエストに対してバスマスタに固有のアクセスＩＤを付与し得る。アクセスＩＤは、リクエストに対するレスポンスに引き継がれ、これによって、バスＩＰ１３０は、バススレーブから受け取ったレスポンスがどのリクエストに対応するかを認識することができる。
【００４２】
ターゲットエージェント１３２は、プロトコル変換部１３２１と、各種のバッファ１３２２ａ〜１３２２ｄとを含んで構成される。ターゲットエージェント１３２は、アドレスレコーダを含まない点でイニシエータエージェント１３１と異なりが、その他は同じであるため、説明を省略する。
【００４３】
図１に戻り、ＤＭＡＣ１４０は、指定されたコンポーネント間で、直接的にデータを転送するためのコンポーネントである。例えば、ＤＭＡＣ１４０は、自身がバスマスタとして、バススレーブであるメモリ１２０に対してアクセスするため、リクエスト（例えばライトリクエストやリードリクエスト）を発行する。例えば、ＤＭＡＣ１４０は、プロセッサ１１０によって、内部のレジスタ（図示せず）に、転送元のアドレス、転送先のアドレス、及び転送すべきデータの長さを示すパラメータを含むデータ転送命令がセットされると、該命令に従ってデータ転送を実行する。プロセッサ１１０からデータ転送命令を受けたバスマスタであるＤＭＡＣ１４０は、バススレーブからデータ転送終了の通知を受けると、プロセッサ１１０に割り込みをかける。
【００４４】
ダミーバスＩＰ１５０は、バスＩＰ１３０と同じ挙動を示すように構成されたダミー回路である。すなわち、ダミーバスＩＰ１５０は、バスＩＰ１３０と同一の回路構成であっても良いが、リクエスト／レスポンスに関する機能を再現するために必要な最小限の回路構成によって実現され得る。したがって、ダミーバスＩＰ１５０は、必要最小限の回路のみ実装しているため、バスＩＰ１３０と比較して回路規模は非常に小さくかつシンプルなものになる。ダミーバスＩＰ１５０は、メモリ１２０に対してライトアクセスが可能になったタイミングで、先行レスポンス（先行レスポンス状態信号）ＰＲを先行レスポンス信号線Ｌを介して、バス制御回路１８０に送出する。先行レスポンスＰＲは、ＤＭＡＣ１４０がライトアクセスを行った場合に有効なレスポンスである。例えば、ダミーバスＩＰ１５０は、例えばバス上に現れるマスタＩＤに基づいて、どのバスマスタ（例えばプロセッサ１１０又はＤＭＡＣ１４０のいずれか）がライトアクセスを行ったかを判断し、ＤＭＡＣ１４０からのライトアクセスであると判断する場合に、先行レスポンスＰＲを送出する。
【００４５】
ダミーメモリ１６０は、メモリ１２０と同じ挙動を示すように構成されたダミー回路である。ダミーメモリ１６０もまた、ダミーバスＩＰ１５０からのリクエストに対してレスポンスを返すという機能を再現するために必要な最小限の回路によって構成され得る。すなわち、ダミーメモリは、個々のデータセグメントを記憶する記憶セル及び該記憶セルにアクセスするための構成を有していない。したがって、メモリ１２０と比較して回路規模は非常に小さくかつシンプルなものになる。
【００４６】
図３は、本発明の一実施形態に係る半導体装置のダミーバスＩＰの概略構成の一例を示すブロックダイアグラムである。
【００４７】
ダミーバスＩＰ１５０は、上述した通り、バスＩＰ１３０のリクエスト／レスポンス機能を再現する可能に構成された回路であり、イニシエータエージェント１５１Ａ及び１５１Ｂ並びにターゲットエージェント１５２を含んで構成される。
【００４８】
より具体的には、ダミーバスＩＰ１５０は、プロトコル変換部１５１１と、リクエストバッファ１５１２ａ及びレスポンスバッファ１５１２ｃと、アドレスデコーダ１５１３とを含んで構成される。すなわち、ダミーバスＩＰ１５０では、リクエスト及びレスポンスに従うデータ本体を無視することができるため、それらを格納するバッファが省略され得るとともに、アクセス先バススレーブ内のアドレスを特定する必要がないため、アドレスを特定するための回路が省略され得る。したがって、プロトコル変換部１５１１及びアドレスデコーダ１５１３もまた、データ本体及びアドレスに関する回路が省略されて構成され得る。これにより、ダミーバスＩＰ１５０もまた、必要最小限の回路のみ実装しているため、バスＩＰ１３０と比較して回路規模は非常に小さくかつシンプルなものになる。
【００４９】
図１に戻り、タイミング調整回路１７０は、バスマスタとバススレーブとの間のバス配線を分岐したことによる、設計上のタイミング収束（タイミングクロージャ）の問題を保証するための回路であり、例えば、フリップフロップを含んで構成される。図示されていないが、タイミング調整回路１７０は、バスプロトコルを遵守する制御回路を含む。例えば、プロセッサ１１０とダミーバスＩＰ１５０との間のアクセスは、ＦＦ１を介して行われ、また、ＤＭＡＣ１４０とダミーバスＩＰ１５０との間のアクセスは、ＦＦ２を介して行われる。なお、タイミング調整回路１７０は、タイミング収束の問題を考慮する必要がない場合、省略され得る。
【００５０】
バス制御回路１８０は、バススレーブ側から送られてくるレスポンスに基づく制御を行う回路である。具体的には、バス制御回路１８０は、バスマスタにより発行されたリクエストをバッファに一時的に格納するとともに、メモリ１２０により発行され、バスＩＰ１３０を介して受け取ったレスポンスの内容と該バッファに格納されたリクエストの内容との対応関係が維持されるように管理することによって、バスマスタに対してリクエストに対する適切なレスポンスを送出するように制御する。また、バス制御回路１８０は、複数のバスマスタによるそれぞれのアクセス（すなわち、リクエスト／レスポンス）を例えばマスタＩＤによって一意に管理する。
【００５１】
なお、本例では、バス制御回路１８０は、ダミーメモリ１６０によるレスポンスを直接的に受けるように、レスポンス信号線Ｌによりダミーメモリ１６０と接続されている。なお、実装においては、ダミーバスＩＰ１５０及びダミーメモリ１６０の回路規模は小さいため、レスポンス信号線Ｌの配線長も短くなり、したがって、この点でタイミング収束を考慮する必要はない。
【００５２】
図４は、本発明の一実施形態に係る半導体装置の概略的動作の一例を説明するためのタイミングチャートである。
【００５３】
半導体装置１００において、ＤＭＡＣ１４０がメモリ１２０に対してライトアクセスするためにライトリクエストを発行すると、該ライトアクセスは、バスＩＰ１３０のイニシエータエージェント１３１Ｂ及びダミーバスＩＰ１５０のイニシエータエージェント１５１Ｂに伝えられる。バスＩＰ１３０とダミーバスＩＰ１５０とは、同じ挙動をするため、それぞれのターゲットエージェント１３２及び１５２にも、同じタイミングでライトアクセスが現れる。そこで、バス制御回路１８０は、ダミーバスＩＰ１５０のターゲットエージェント１５２に該ライトアクセスが現れたタイミングで直ちに、該ライトリクエストに対するライトレスポンスをＤＭＡＣ１４０に返戻する。
【００５４】
すなわち、同図に示すように、例えば、ＤＭＡＣ１４０が、ｎクロック目で、ライトリクエストを発行したとする。該ライトリクエストは、バスＩＰ１３０（及びダミーバスＩＰ１５０）のレイテンシーによりｎ＋４クロック目に、ターゲットエージェント１３２及び１５２に現れるとする。メモリ１２０は、したがって、次のクロックタイミング（ｎ＋５クロック目）で、該ライトリクエストに対するライトレスポンス（ライト終了ステータス）を返戻し、これが、バスＩＰ１３０を介して、その３クロック後（ｎ＋８クロック目）に現れることになる。
【００５５】
本実施形態では、ターゲットエージェント１５２にライトリクエストが現れたタイミングで、先行レスポンスＰＲがバス制御回路１８０に発行される。バス制御回路１８０は、後述するように、該先行レスポンスＰＲを受けて、所定の条件の下、ＤＭＡＣ１４０に対して、該ライトリクエストに対するライトレスポンスを送出する。なお、リクエストとレスポンスとは、シングルリクエストによるバーストアクセスがない限り、通常は、１対１に対応する。したがって、バス制御回路１８０は、先行レスポンスに従ってライトレスポンスを送出した場合には、メモリ１２０からバスＩＰ１３０を介して真のライトレスポンスを受け取ったとしても、これを無視することで、リクエストとレスポンスとの間の整合性を保つようにしている。
【００５６】
なお、図５に示すように、バス制御回路１８０がライトリクエストに対する先行レスポンスＰＲを受け取った場合であっても、該ライトリクエストに対して先行する他のリクエストが既に存在する場合には、バス制御回路１８０は、先行レスポンスＰＲに基づくライトレスポンスを発行せず、該他のリクエストに対するレスポンスをバスマスタに送出した後、メモリ１２０から送られる該ライトリクエストに対するライトレスポンスをバスマスタに送出する。
【００５７】
以上のように、半導体装置１００は、ＤＭＡＣ１４０からメモリ１２０に対してライトアクセスが発行された場合に、メモリ１２０からのライトレスポンスを待つことなく、擬似的なライトレスポンスをＤＭＡＣ１４０に返戻するため、ＤＭＡＣ１４０は、メモリ１２０に対するライトアクセスを直ちに終了させることができ、したがって、レイテンシーを改善することができるようになる。
【００５８】
次に、バス制御回路１８０の詳細について説明する。図６は、本発明の一実施形態に係る半導体装置のバス制御回路の概略構成の一例を示すブロックダイアグラムである。同図に示すように、バス制御回路１８０は、例えば、バッファ１８１と、ＯＲゲート１８２と、レスポンス制御回路１８３とを含んで構成される。
【００５９】
バッファ１８１は、ＦＩＦＯ形式のバッファ回路であり、バスマスタ（すなわち、ＤＭＡＣ１４０）から送られてくるリクエストを一時的に格納する。バッファ１８１に格納されているリクエストの数は、図示しないカウンタによってカウントされている。バッファ１８１は、バススレーブ側からＯＲゲート１８２を介して何らかのレスポンスを受けるごとに、ＦＩＦＯ取り出しブロック１８１ａから順次にリクエストがレスポンス制御回路１８３によって取り出されるように動作する。
【００６０】
レスポンス制御回路１８３は、バススレーブ側から受け取った先行レスポンスに関する２つの値をそれぞれカウントするカウンタ１８３ａを含み、カウンタ１８３ａによるカウント値のそれぞれに従って、バススレーブ側から受け取ったレスポンスに応じた処理を行う。カウンタ１８３ａは、例えば、バススレーブ側から受け取った先行レスポンスＰＲに対してバスマスタにライトレスポンスを返した回数（以下、「レスポンス返戻回数」という。）、及びバススレーブ側から受け取った先行レスポンスＰＲの数に対してバスマスタにライトレスポンスを未だ返していない数（以下、「レスポンス残数」という。）をそれぞれカウントする。
【００６１】
具体的には、レスポンス制御回路１８３は、先行レスポンス信号線Ｌを介して先行レスポンスＰＲを受け取った場合、バッファ１８１を参照し、取り出されるべきリクエストがライトリクエストである場合に、バッファ１８１からリクエストを１つ取り出して、バスＩＰ１３０からのレスポンスとは無関係に、バスマスタに対してライトリクエストに対するレスポンスを送出し、これに伴って、カウンタ１８３ａのカウンタ値をそれぞれ更新する。その後、レスポンス制御回路１８３は、バスＩＰ１３０からライトリクエストに対する真のレスポンスを受け取った場合、レスポンス残数のカウント値が０でなければ、これをデクリメントし、バスＩＰ１３０から送られてきた該レスポンスを無視する（つまり、バスマスタ側に転送しない）。すなわち、一例では、レスポンス制御回路１８３は、バスＩＰ１３０からレスポンスを受け取っても、先行レスポンスＰＲを受け取ってバスマスタにライトレスポンスを返した回数だけ、無視するようになっている。一方、レスポンス制御回路１８３は、該レスポンス残数のカウント値が０であれば、バスＩＰ１３０から送られてきたレスポンスをそのままバスマスタに渡す。
【００６２】
図７Ａ乃至図７Ｃは、本発明の一実施形態に係る半導体装置のバス制御回路におけるレスポンス処理を説明するためのフローチャートである。なお、バス制御回路１８０は、かかるレスポンス処理とは別に、バスマスタ（すなわち、ＤＭＡＣ１４０）からリクエストを受け取るごとに、これをバッファ１８１に格納している。
【００６３】
同図に示すように、バス制御回路１８０は、バススレーブ側からレスポンスがあったか否かを監視している（Ｓ７０１）。バス制御回路１８０は、バススレーブ側からレスポンスを受けると（Ｓ７０１のＹｅｓ）、該レスポンスが先行レスポンスＰＲであるか否かを判断するとともに（Ｓ７０２）、先行レスポンスＰＲに関するレスポンス残数が０でない（≠０）か否かを判断する（Ｓ７０３及びＳ７０４）。すなわち、バス制御回路１８０は、レスポンスが先行レスポンスＰＲでなく（Ｓ７０２のＮｏ）、レスポンス残数が０であると判断する場合（Ｓ７０３のＮｏ）、通常レスポンスに関する処理を行う（Ｓ７０５）。通常レスポンスに関する処理は、図７Ｂを参照して説明される。
【００６４】
また、バス制御回路１８０は、レスポンスが先行レスポンスＰＲでなく（Ｓ７０２のＮｏ）、レスポンス残数が０でないと判断する場合（Ｓ７０３のＹｅｓ）、又はレスポンスが先行レスポンスＰＲであり（Ｓ７０２のＹｅｓ）、レスポンス残数が０であると判断する場合（Ｓ７０４のＮｏ）、先行レスポンスに関する処理を行う（Ｓ７０６）。つまり、バス制御回路１８０は、レスポンスが先行レスポンスＰＲであるか、又は先行レスポンスＰＲに関するレスポンス残数が０でなければ、通常レスポンスに関する処理に代えて、先行レスポンスＰＲに関する処理を行うことになる。先行レスポンスに関する処理は、図７Ｃを参照して説明される。
【００６５】
さらに、バス制御回路１８０は、レスポンスが先行レスポンスＰＲであり（Ｓ７０２のＹｅｓ）、先行レスポンスＰＲに対するレスポンス数が０でないと判断する場合（Ｓ７０４のＹｅｓ）、先行レスポンスに関する処理を行った後（Ｓ７０７）、通常レスポンスに関する処理を行う（Ｓ７０８）。
【００６６】
図７Ｂを参照し、通常レスポンスに関する処理では、バス制御回路１８０は、バッファ１８１を参照し、ＦＩＦＯ取り出しブロック１８１ａに格納されているリクエストがライトリクエストであるか否かを判断する（Ｓ７０５１）。バス制御回路１８０は、ＦＩＦＯ取り出しブロック１８１ａにあるデータがライトレスポンスでないと判断する場合には（Ｓ７０５１のＮｏ）、ＦＩＦＯ取り出しブロック１８１ａに格納されているリクエスト（例えばリードリクエスト）を取り出して破棄する（Ｓ７０５２）。続いて、バス制御回路１８０は、バススレーブ側から受け取ったレスポンス（例えばリードレスポンス）をバスマスタに送出し（Ｓ７０５３）、通常レスポンスに関する処理を終了する。これにより、バス制御回路１８０は、バススレーブ側からのレスポンスの監視に戻る。
【００６７】
これに対して、バス制御回路１８０は、ＦＩＦＯ取り出しブロック１８１ａにあるデータがライトレスポンスであると判断する場合（Ｓ７０５１のＹｅｓ）、続いて、先行レスポンスＰＲに関するレスポンス返戻数が０であるか否かを判断する（Ｓ７０５４）。バス制御回路１８０は、レスポンス返戻数が０でないと判断する場合（Ｓ７０５４のＹｅｓ）、カウンタ値の値を１つデクリメントし（Ｓ７０５５）、通常レスポンスに関する処理を終了する。これにより、バス制御回路１８０は、バススレーブ側からのレスポンスの監視に戻る。
【００６８】
次に、図７Ｃを参照し、先行レスポンスに関する処理では、バス制御回路１８０は、まず、先行レスポンスに関するレスポンス残数を１つインクリメントする（Ｓ７０６１）。続いて、バス制御回路１８０は、バッファ１８１を参照し、ＦＩＦＯ取り出しブロック１８１ａに格納されているリクエストがライトリクエストであるか否かを判断する（Ｓ７０６２）。バス制御回路１８０は、ＦＩＦＯ取り出しブロック１８１ａに格納されているリクエストがライトリクエストでないと判断する場合には（Ｓ７０６２のＮｏ）、先行レスポンスに関する処理を終了する。
【００６９】
一方、バス制御回路１８０は、ＦＩＦＯ取り出しブロック１８１ａに格納されているリクエストがライトリクエストであると判断する場合には（Ｓ７０６２のＹｅｓ）、ＦＩＦＯ取り出しブロック１８１ａに格納されている該ライトリクエストを取り出して（Ｓ７０６３）、該取り出したライトリクエストをバスマスタに送出する（Ｓ７０６４）。続いて、バス制御回路１８０は、レスポンス返戻数を１つインクリメントし（Ｓ７０６５）、さらに、レスポンス残数を１つデクリメントし（Ｓ７０６６）、先行レスポンスに関する処理を終了する。これにより、バス制御回路１８０は、バススレーブ側からのレスポンスの監視に戻る。
【００７０】
また、バス制御回路１８０は、レスポンスが先行レスポンスＰＲであり（Ｓ７０２のＹｅｓ）、レスポンス残数が０でないと判断する場合（Ｓ７０４のＹｅｓ）、上述した先行レスポンスに関する処理を行い（Ｓ７０７）、さらに、上述した通常レスポンスに関する処理を行う（Ｓ７０８）。
【００７１】
即ち、かかる処理は、バス制御回路１８０が先行レスポンスＰＲを受けるとともに、バスＩＰ１３０からレスポンスを受け取る場合に実行される。例えば、バス制御回路１８０が先行レスポンスＰＲ及びこれと全く独立したレスポンスを受け取る場合と、先行レスポンスＰＲ及びこれに対応する真のライトレスポンスを受け取る場合が、想定されうる。
【００７２】
前者の場合、バス制御回路１８０は、先行レスポンスに関する処理（Ｓ７０７）においては、所定の条件に合致すればライトレスポンスを返戻し、合致しなければレスポンスを返戻することはない。バス制御回路１８０は、次の通常レスポンスに関する処理においては、レスポンス返戻数が０であれば、レスポンスを返戻する。また、後者の場合、バス制御回路１８０は、先行レスポンスに関する処理（Ｓ７０７）においては、所定の条件に合致すればライトレスポンスを返戻し、合致しなければレスポンスを返戻することはない。バス制御回路１８０は、次の通常レスポンスに関する処理においては、先行レスポンスに関する処理（Ｓ７０７）によりライトレスポンスを返戻することでレスポンス返戻数が０以上になっているので、レスポンスを返戻することはない。つまり、バス制御回路１８０は、先行レスポンスに関する処理において所定の条件に合致しない場合には、何もレスポンスを返戻せず、次の通常レスポンスに関する処理においてレスポンスを返戻することになる。
【００７３】
図８は、本発明の一実施形態に係る半導体装置のバス制御回路の概略構成の他の例を示すブロックダイアグラムである。同図に示すバス制御回路１８０は、タイミング調整回路１８４をさらに含む。タイミング調整回路１８４は、バス制御回路１８０を設けたことによる設計上のタイミング収束の問題を保証するための回路である。すなわち、バス制御回路１８０自体は、レスポンス信号線Ｌを介した先行レスポンスに基づいて、バスマスタ側に所定のレスポンスを返戻する機能を有すれば良く、通常は、タイミング収束の問題は考慮する必要がないと考えられる。しかしながら、タイミング収束の問題を考慮したい場合には、同図に示すように、例えば、バッファ１８１の前段にタイミング調整回路１８４を配置しても良い。タイミング調整回路１８４は、例えば、フリップフロップを含んで構成される。
【００７４】
次に、バス制御回路１８０の動作の一例について説明する。図９乃至図１０は、本発明の一実施形態に係る半導体装置のバス制御回路の動作の一例を説明するためのタイミングチャートである。
【００７５】
図９に示すように、クロックＣＬＫに従って、バスマスタ（すなわち、ＤＭＡＣ１４０）からバス制御回路１８０に送られたリクエストは、順次に、バッファ１８１に格納される。このとき、バッファ１８１内の格納されたリクエストの数はカウントされている。同図は、ｎクロック目でライトリクエストが送られ、続いて、リードリクエスト及びリードリクエストが送られ、その２クロック後（ｎ＋５クロック目）に、ライトリクエストが送られてきたことを示している。また、ＦＩＦＯ取り出しブロック１８１ａには、次に取り出されるべきリクエストがセットされている。
【００７６】
ここでは、バス制御回路１８０は、バスマスタからリクエストを受け取ってから、該リクエストに対応する真のレスポンスをバススレーブ（すなわち、メモリ１２０）から受け取るまで、８クロック要するものとする。また、ダミーバスＩＰ１５０は、ライトリクエストに対して、５クロック後に先行レスポンスＰＲをバス制御回路１８０に送出することができるものとする。
【００７７】
したがって、バス制御回路１８０は、ｎ＋５クロック目で、先行レスポンスＰＲを受け取ると、次のクロックタイミング（ｎ＋６クロック目）でライトレスポンスをバスマスタに送出する。このとき、カウンタ１８３ａによるカウンタ値は“１”となる。したがって、図から明らかなように、本例では、バス制御回路１８０は、３クロック先行してレスポンスをバスマスタに返戻することができることになる。
【００７８】
バス制御回路１８０は、例えば、最初のライトリクエストを受け取った後、ｎ＋８クロック目で、それに対応する真のレスポンスを受け取ることになる。しかしながら、バス制御回路１８０は、該最初のライトリクエストに対するレスポンスを、先行レスポンスＰＲに基づいて、バスマスタに送出していることから、該真のレスポンスを無視し、したがって、カウンタ１８３ａによるカウンタ値は“０”となる。バス制御回路１８０は、続いて受け取ったリードリクエストについては、次のクロックタイミングでそのままバスマスタに送出する。
【００７９】
なお、ｎ＋１０クロック目において、バス制御回路１８０は、先行レスポンスＰＲを受け取ったとすると、次のクロックタイミングでは、リードレスポンスとライトレスポンスとが競合することになるが、本例では、バス制御回路１８０は、リードレスポンスを先に送出するものとしている。
【００８０】
また、別の例として、図１０に示すような順番で、バス制御回路１８０は、リードリクエスト及びライトリクエストを受け取ったとする。ｎ＋４クロック目で受け取ったライトリクエストに対して、バス制御回路１８０は、ｎ＋９クロック目で、先行レスポンスＰＲを受け取ると、次のクロックタイミングでライトレスポンスを送出するのではなく、バッファ１８１に先に格納されたリードリクエストが取り出された後に、ライトレスポンスを送出する。すなわち、バス制御回路１８０は、ｎ＋１３クロック目で、ｎ＋４クロック目で受け取ったライトリクエストに対するライトリクエストを受け取るため、これをバスマスタに送出する。
【００８１】
［第２の実施形態］
本実施形態は、メモリ１２０に対するライトリクエストの数と、ダミーバスＩＰ１５０を介して受け取ったダミーメモリにより発行されたライトレスポンス（ライト終了ステータス）の数とに基づいて、ＤＭＡＣ１４０以外のバスマスタ（すなわち、プロセッサ１１０）からメモリ１２０に対する現在処理中のライトリクエストが存在するか否かを判断し、現在処理中のライトリクエストが存在しない場合には、ＤＭＡＣ１４０からのライトリクエストが発行された時点で、直ちに、該ライトリクエストに対するライトレスポンスを返すことのできる半導体装置を開示する。
【００８２】
図１１は、本発明の一実施形態に係る半導体装置の概略構成の一例を示すブロックダイアグラムである。同図に示すように、半導体装置１１００は、バスＩＰ１３０に入力されるライトリクエストを監視するバス監視回路１１１０をさらに備える。また、半導体装置１１００では、バス制御回路１８０に代えて、バス制御回路１１２０が設けられている。なお、以下では、図１に示した半導体装置１００と同じコンポーネントについては、説明を省略する。
【００８３】
バス監視回路１１１０は、プロセッサ１１０からメモリ１２０に対するライトアクセスが入力されると、カウント値を１つインクリメントし、また、ダミーバスＩＰ１５０から該ライトアクセスに対するライトレスポンスが入力されると、カウント値を１つデクリメントするカウンタ１１１１を含む。該カウンタ１１１１は、カウント値が０になった場合に、ｏｎｇｏｉｎｇ信号の値を“Ｈ”にし、カウント値が０以外の場合に、ｏｎｇｏｉｎｇ信号の値を“Ｌ”にして送出する。
【００８４】
図１２は、本発明の一実施形態に係る半導体装置のバス制御回路の概略構成の一例を示すブロックダイアグラムである。
【００８５】
同図に示すように、本実施形態のバス制御回路１１２０は、先行レスポンス制御回路１１２１をさらに備える。先行レスポンス制御回路１１２１には、バスマスタからのリクエストが入力されるとともに、バス監視回路１１１０から送出されるｏｎｇｏｉｎｇ信号及び先行レスポンスＰＲが入力される。
【００８６】
先行レスポンス制御回路１１２１は、バスマスタからのリクエストがライトリクエストである場合に、該ライトリクエストに対してダミーバスＩＰ１５０から受け取った先行レスポンスの送出制御を行う。先行レスポンス制御回路１１２１は、図示しないカウンタを有し、該カウンタによって、先行レスポンスＰＲを送出した回数をカウントする。
【００８７】
すなわち、先行レスポンス制御回路１１２１は、バスマスタからのリクエストがライトリクエストである場合に、まず、ｏｎｇｏｉｎｇ信号の値が“Ｈ”であるか否かを判断する。先行レスポンス制御回路１１２１は、ｏｎｇｏｉｎｇ信号の値が“Ｈ”であると判断する場合、次に、カウント値が０であるか否かを判断し、該カウント値が０であると判断する場合に、受け取った先行レスポンスＰＲをＯＲゲート１８２及びレスポンス制御回路１８３に送出する。先行レスポンスＰＲを受けたレスポンス制御回路１８３は、上述した処理を行うことになる。一方、先行レスポンス制御回路１１２１は、ｏｎｇｏｉｎｇ信号の値が“Ｈ”であると判断する場合であっても、カウント値が０でないと判断する場合には、カウンタのカウント値を１つデクリメントさせ、先行レスポンスＰＲに対する処理を何も行わない。これにより、先行レスポンス制御回路１１２１は、現在処理中のライトアクセスがない場合に限り、先行レスポンスを通過させることができるようになる。
【００８８】
［第３の実施形態］
本実施形態は、第２の実施形態の変形であり、バススレーブとして動作するメモリ１２０にアクセス可能なバスマスタがＤＡＭＣ１４０に加え２つ以上存在する場合に適応された半導体装置を開示する。
【００８９】
図１３は、本発明の一実施形態に係る半導体装置の概略構成の一例を示すブロックダイアグラムである。同図に示すように、本実施形態の半導体装置１３００は、バスマスタとして、プロセッサ１１０Ａ及び１１０Ｂと、ＤＭＡＣ１４０とを備える。また、プロセッサ１１０Ｂが追加されたことに伴い、３つのフリップフロップを含むタイミング調整回路１７０’と、２つのバス監視回路１１１０Ａ及び１１１０Ｂが設けられている。バス監視回路１１１０Ａ及び１１１０Ｂの構成は、第２の実施形態に示されたものと同様である。
【００９０】
バス制御回路１１２０’もまた、これらの変更に適応するように変更されている。すなわち、バス制御回路１１２０’は、バス監視回路１１１０Ａ及び１１１０Ｂがそれぞれ送出するｏｎｇｏｉｎｇ信号の値が、ともに“Ｈ”の場合のみ、先行レスポンスＰＲを送出するように制御される。
【００９１】
このように、バススレーブであるメモリ１２０にアクセス可能なバスマスタがＤＡＭＣ１４０に加え２つ以上存在する場合であっても、メモリ１２０に対するそれぞれのバスマスタからのライトアクセスを監視することによって、適切な先行レスポンスＰＲに基づくライトレスポンスを発行することができるようになる。
【００９２】
［第４の実施形態］
本実施形態は、第２の実施形態の変形であり、複数のメモリ１２０が存在する場合に適応された半導体装置を開示する。
【００９３】
図１４は、本発明の一実施形態に係る半導体装置の概略構成の一例を示すブロックダイアグラムである。同図に示すように、本実施形態の半導体装置１４００は、バススレーブとして動作する複数のメモリ１２０Ａ及び１２０Ｂに、バスＩＰ１３０を介してアクセス可能に構成されている。したがって、半導体装置１４００は、かかる構成に対応するように、ダミーバスＩＰ１５０及び複数のダミーメモリ１６０Ａ及び１６０Ｂを備えている。
【００９４】
バス制御回路１１２０’は、ダミーバスＩＰ１５０のターゲットエージェント１５２Ａ及び１５２Ｂのいずれかにより発行される先行レスポンスを監視する。また、バス監視回路１１１０’は、バスマスタのアクセス先ごとに、発行されたライトアクセスの数及び該ライトアクセスに対するライトレスポンス（ライト終了ステータス）の数をそれぞれ管理するように構成される。
【００９５】
このように、半導体装置１００が複数のメモリ１２０を備える場合であっても、それぞれのメモリ１２０に対するアクセスのレイテンシーを改善することができるようになる。
【００９６】
上記各実施形態は、本発明を説明するための例示であり、本発明をこれらの実施形態にのみ限定する趣旨ではない。本発明は、その要旨を逸脱しない限り、さまざまな形態で実施することができる。
【００９７】
例えば、本明細書に開示される方法においては、その結果に矛盾が生じない限り、ステップ、動作又は機能を並行して又は異なる順に実施しても良い。説明されたステップ、動作及び機能は、単なる例として提供されており、ステップ、動作及び機能のうちのいくつかは、発明の要旨を逸脱しない範囲で、省略でき、また、互いに結合させることで１つのものとしても良く、また、他のステップ、動作又は機能を追加しても良い。
【００９８】
また、本明細書では、さまざまな実施形態が開示されているが、一の実施形態における特定のフィーチャ（技術的事項）を、適宜改良しながら、他の実施形態に追加し、又は該他の実施形態における特定のフィーチャと置換することができ、そのような形態も本発明の要旨に含まれる。
【産業上の利用可能性】
【００９９】
本発明は、バスを備えた半導体装置の分野に広く利用することができる。
【符号の説明】
【０１００】
１００，１１００，１３００，１４００…半導体装置
１１０…プロセッサ
１２０…メモリ
１３０…バスＩＰ
１３１…イニシエータエージェント
１３１１…プロトコル変換部
１３１２ａ〜１３１２ｄ…バッファ
１３１３…アドレスデコーダ
１３２…ターゲットエージェント
１３２１…プロトコル変換部
１３２２ａ〜１３１２ｄ…バッファ
１４０…ＤＭＡコントローラ（ＤＭＡＣ）
１５０…ダミーバスＩＰ
１５１…イニシエータエージェント
１５１１…プロトコル変換部
１５１２ａ，１５１２ｃ…バッファ
１３１３…アドレスデコーダ
１５２…ターゲットエージェント
１５２１…プロトコル変換部
１５２２ａ，１５２２ｃ…バッファ
１６０…ダミーメモリ
１７０…タイミング調整回路
１８０…バス制御回路
１８１…バッファ
１８２…ＯＲゲート
１８３…レスポンス制御回路
１１１０，１１１０’…バス監視回路
１１１１…カウンタ
１１２０，１１２０’…バス制御回路
１１２１…先行レスポンス制御回路
【図１】
2015194900.tif 000003
【図２】
2015194900.tif 000004
【図３】
2015194900.tif 000005
【図４】
2015194900.tif 000006
【図５】
2015194900.tif 000007
【図６】
2015194900.tif 000008
【図７Ａ】
2015194900.tif 000009
【図７Ｂ】
2015194900.tif 000010
【図７Ｃ】
2015194900.tif 000011
【図８】
2015194900.tif 000012
【図９】
2015194900.tif 000013
【図１０】
2015194900.tif 000014
【図１１】
2015194900.tif 000015
【図１２】
2015194900.tif 000016
【図１３】
2015194900.tif 000017
【図１４】
2015194900.tif 000018