(57)【要約】【課題】  バスマスタデバイスのデータ転送処理負荷とバスの使用率とを低減する。【解決手段】  本発明は、バスを介してバスマスタデバイスから送出される書込要求を監視するスヌープ部と、該書込要求のバススレーブデバイスへの出力を制御するコントローラとを備えるデータ転送制御装置である。該スヌープ部は、第１の書込要求が示すターゲット領域が少なくとも一の再転送対象領域に一致する場合該第１の書込要求に従うデータを記憶し、該第１の書込要求に従うデータを記憶しており第２の書込要求が示すターゲット領域が該少くとも一の再転送対象領域に一致する場合該第１の書込要求に従うデータを該コントローラに出力する。該コントローラは、該スヌープ部から該第１の書込要求に従うデータを受けた場合該第２の書込要求に従うデータに代え該第１の書込要求に従うデータを該バススレーブデバイスに出力するよう制御する。【選択図】  図１
2015191266.tif 000002
【特許請求の範囲】
【請求項１】
バスに接続されるデータ転送制御装置であって、
前記バスを介してバスマスタデバイスから送出される書き込み要求を監視するスヌープ部と、
前記書き込み要求をバススレーブデバイスに出力するか否かを制御するコントローラと、を備え、
前記スヌープ部は、
第１の書き込み要求が示すターゲット領域が少なくとも一の再転送対象領域に一致する場合に、該第１の書き込み要求に従うデータを記憶し、
前記第１の書き込み要求に従うデータを記憶している場合において、第２の書き込み要求が示すターゲット領域が前記少なくとも一の再転送対象領域に一致する場合に、前記第１の書き込み要求に従うデータを前記コントローラに出力し、
前記コントローラは、前記スヌープ部から前記第１の書き込み要求に従うデータを受けた場合に、前記第２の書き込み要求に従うデータに代えて、該第１の書き込み要求に従うデータを前記バススレーブデバイスに出力するように制御する、
データ転送制御装置。
【請求項２】
前記スヌープ部は、
前記少なくとも一の再転送対象領域を示すアドレスを記憶するアドレステーブルと、
前記書き込み要求が示すターゲット領域のアドレスと前記アドレステーブルに記憶された前記少なくとも一の再転送対象領域を示すアドレスとが一致するか否かを判断する比較器と、を備える、
請求項１記載のデータ転送制御装置。
【請求項３】
前記スヌープ部は、前記少なくとも一の再転送対象領域に関連付けられたデータを保持するデータ記憶部をさらに備える、請求項２記載のデータ転送制御装置。
【請求項４】
前記コントローラは、前記スヌープ部から出力された前記第１の書き込み要求に従うデータを前記バススレーブデバイスに出力するように制御している間に、所定のデバイスから前記バススレーブデバイスに対して所定のアクセス要求があった場合に、前記バススレーブデバイスに代わって、前記所定のデバイスに対する応答を行う、請求項１記載のデータ転送制御装置。
【請求項５】
バスと、
前記バスに接続されたバスマスタデバイスと、
前記バスに接続されたデータ転送制御装置と、
前記データ転送制御装置を介して前記バスに接続されたバススレーブデバイスと、を備えるコンピュータシステムであって、
前記データ転送制御装置は、
前記バスマスタデバイスから送出される書き込み要求を監視するスヌープ部と、
前記書き込み要求を前記バススレーブデバイスに出力するか否かを制御するコントローラと、を備え、
前記スヌープ部は、
第１の書き込み要求が示すターゲット領域が少なくとも一の再転送対象領域に一致する場合に、該第１の書き込み要求に従うデータを記憶し、
前記第１の書き込み要求に従うデータを記憶している場合において、第２の書き込み要求が示すターゲット領域が前記少なくとも一の再転送対象領域に一致する場合に、前記第１の書き込み要求に従うデータを前記コントローラに出力し、
前記コントローラは、前記スヌープ部から前記第１の書き込み要求に従うデータを受けた場合に、前記第２の書き込み要求に従うデータに代えて、前記第１の書き込み要求に従うデータを前記バススレーブデバイスに出力するように制御する、
コンピュータシステム。
【請求項６】
前記バスに接続されたＤＭＡコントローラをさらに備え、
前記ＤＭＡコントローラは、前記データ転送制御装置を介して前記バスに接続される前記バススレーブデバイスとして機能する、
請求項５記載のコンピュータシステム。
【請求項７】
コンピュータシステムにおけるデータ転送制御方法であって、
バスを介してバスマスタデバイスから送出される書き込み要求を監視することと、
前記書き込み要求をバススレーブデバイスに出力するか否かを制御することと、を含み、
前記監視することは、
第１の書き込み要求が示すターゲット領域が少なくとも一の再転送対象領域に一致するか否かを判断することと、
前記ターゲット領域が前記少なくとも一の再転送対象領域に一致すると判断する場合に、前記第１の書き込み要求に従うデータを所定の記憶領域に記憶することと、
前記所定の記憶領域に前記第１の書き込み要求に従うデータが記憶されている場合において、第２の書き込み要求が示すターゲット領域が前記少なくとも一の再転送対象領域に一致する場合に、前記所定の記憶領域に記憶された前記第１の書き込み要求に従うデータを前記コントローラに出力することと、を含み、
前記制御することは、前記所定の記憶領域に記憶された前記第１の書き込み要求に従うデータを受けた場合に、前記第２の書き込み要求に従うデータに代えて、該第１の書き込み要求に従うデータを前記バススレーブデバイスに出力するように制御すること、を含む、
データ転送制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ転送制御装置及びデータ転送の制御方法に関する。
【背景技術】
【０００２】
情報化社会において、コンピュータシステムの存在は必要不可欠であり、コンピュータシステムはさらなる高性能化を求められている。コンピュータシステムの高性能化にとって、ＣＰＵ（Central Processer Unit）の処理負荷やバスの効率的な使用は、重要な要素である。
【０００３】
ＣＰＵの処理負荷の低減を目的としたコンピュータシステムにおけるコンポーネント間のデータ転送を行う技術として、ＣＰＵに代わってデータ転送を行うＤＭＡ（Direct Memory Access）転送技術が従来知られている。斯かるＤＭＡ転送では、ＣＰＵにおいてデータ転送要求が発生した場合、ＣＰＵは、ＤＭＡコントローラに対してデータ転送命令を与え、ＤＭＡコントローラは、該データ転送命令に基づいて、ＣＰＵの処理とは独立に、データの転送処理を行い、該転送処理が終了すると、ＣＰＵに対して転送終了を示すレスポンスを返す。一般に、一のデバイス乃至はコンポーネントがバスを制御して他のデバイス乃至はコンポーネントにアクセスする場合、該一のデバイスをバスマスタデバイスと呼び、該他のデバイスをバススレーブデバイスと呼ぶ。
【０００４】
このように、ＤＭＡ転送においては、データ転送の開始時及び終了時に、ＣＰＵの処理が発生する。ＤＭＡ転送におけるさらなるＣＰＵの処理負荷の低減を実現するために、ＣＰＵへのアクセスの回数を低減する試みがなされている。
【０００５】
例えば、下記特許文献１は、コンピュータシステム上でのＤＭＡ転送を制御するＤＭＡコントローラと、各周辺装置で所定のイベントが発生したとき、周辺装置の識別情報とイベントの内容とを含む通知信号を送信する、ＤＭＡ転送の転送元又は転送先となりＤＭＡ転送の実行を要求する一つ以上の周辺装置と、を備え、ＤＭＡ転送を許可すべき周辺装置における監視対象となるイベントの内容を登録するためのイベントレジスタと、各周辺装置から前記通知信号を受け取り、前記通知信号及び前記イベントレジスタに含まれる周辺装置の識別情報及びイベントの内容が一致するとき、前記ＤＭＡコントローラを起動して前記識別情報で特定される周辺装置に関するＤＭＡ転送を実行するイベント監視部と、を有する起動処理装置をさらに備えることを特徴とするＤＭＡ転送システムを開示する。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特許４５３０９７１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
特許文献１に開示されるような従来のＤＭＡ転送システムは、起動処理装置が保持するレジスタの内容が要求され、これを転送する際、起動処理装置がバスを使用してしまうというという課題を有していた。
【０００８】
さらに、該ＤＭＡ転送システムにおいては、起動処理装置は専用の信号線によってバスマスタデバイス及びバススレーブデバイスと接続されることから、バスマスタデバイス及びバススレーブデバイス自体の回路を新たに設計する必要があった。
【０００９】
そこで、本発明は、バスマスタデバイスのデータ転送処理負荷とバスの使用率とを低減するデータ転送制御装置を提供することを目的とする。
【００１０】
また、本発明は、バスマスタデバイス、バススレーブデバイス及びバスの回路を新たに設計する必要のないデータ転送制御装置及びデータ転送制御方法を提供することを目的とする。
【課題を解決するための手段】
【００１１】
上記課題を解決するための本発明は、以下の技術的特徴乃至は発明特定事項を含んで構成される。
【００１２】
即ち、ある観点に従う本発明は、バスに接続されるデータ転送制御装置である。前記データ制御装置は、前記バスを介してバスマスタデバイスから送出される書き込み要求を監視するスヌープ部と、前記書き込み要求をバススレーブデバイスに出力するか否かを制御するコントローラとを備える。前記スヌープ部は、第１の書き込み要求が示すターゲット領域が少なくとも一の再転送対象領域に一致する場合に、該第１の書き込み要求に従うデータを記憶し、前記第１の書き込み要求に従うデータを記憶している場合において、第２の書き込み要求が示すターゲット領域が前記少なくとも一の再転送対象領域に一致する場合に、前記第１の書き込み要求に従うデータを前記コントローラに出力する。前記コントローラは、前記スヌープ部から前記第１の書き込み要求に従うデータを受けた場合に、前記第２の書き込み要求に従うデータに代えて、該第１の書き込み要求に従うデータを前記バススレーブデバイスに出力するように制御する。
【００１３】
また、前記スヌープ部は、前記少なくとも一の再転送対象領域を示すアドレスを記憶するアドレステーブルと、前記書き込み要求が示すターゲット領域のアドレスと前記アドレステーブルに記憶された前記少なくとも一の再転送対象領域を示すアドレスとが一致するか否かを判断する比較器とを備え得る。
【００１４】
さらに、前記スヌープ部は、前記少なくとも一の再転送対象領域に関連付けられたデータを保持するデータ記憶部をさらに備え得る。
【００１５】
また、前記コントローラは、前記スヌープ部から出力された前記第１の書き込み要求に従うデータを前記バススレーブデバイスに出力するように制御している間に、所定のデバイスから前記バススレーブデバイスに対して所定のアクセス要求があった場合に、前記バススレーブデバイスに代わって、前記所定のデバイスに対する応答を行い得る。
【００１６】
また、別の観点に従う本発明は、バスと、前記バスに接続されたバスマスタデバイスと、前記バスに接続されたデータ転送制御装置と、前記データ転送制御装置を介して前記バスに接続されたバススレーブデバイスとを備えるコンピュータシステムである。前記データ転送制御装置は、前記バスマスタデバイスから送出される書き込み要求を監視するスヌープ部と、前記書き込み要求を前記バススレーブデバイスに出力するか否かを制御するコントローラとを備える。前記スヌープ部は、第１の書き込み要求が示すターゲット領域が少なくとも一の再転送対象領域に一致する場合に、該第１の書き込み要求に従うデータを記憶し、前記第１の書き込み要求に従うデータを記憶している場合において、第２の書き込み要求が示すターゲット領域が前記少なくとも一の再転送対象領域に一致する場合に、前記第１の書き込み要求に従うデータを前記コントローラに出力する。前記コントローラは、前記スヌープ部から前記第１の書き込み要求に従うデータを受けた場合に、前記第２の書き込み要求に従うデータに代えて、前記第１の書き込み要求に従うデータを前記バススレーブデバイスに出力するように制御する。
【００１７】
また、前記コンピュータシステムは、前記バスに接続されたＤＭＡコントローラをさらに備え得る。前記ＤＭＡコントローラは、前記データ転送制御装置を介して前記バスに接続される前記バススレーブデバイスとして機能し得る。
【００１８】
さらに、別の観点に従う本発明は、コンピュータシステムにおけるデータ転送制御方法である。前記データ転送制御方法は、バスを介してバスマスタデバイスから送出される書き込み要求を監視することと、前記書き込み要求をバススレーブデバイスに出力するか否かを制御することとを含む。前記監視することは、第１の書き込み要求が示すターゲット領域が少なくとも一の再転送対象領域に一致するか否かを判断することと、前記ターゲット領域が前記少なくとも一の再転送対象領域に一致すると判断する場合に、前記第１の書き込み要求に従うデータを所定の記憶領域に記憶することと、前記所定の記憶領域に前記第１の書き込み要求に従うデータが記憶されている場合において、第２の書き込み要求が示すターゲット領域が前記少なくとも一の再転送対象領域に一致する場合に、前記所定の記憶領域に記憶された前記第１の書き込み要求に従うデータを前記コントローラに出力することと、を含む。また、前記制御することは、前記所定の記憶領域に記憶された前記第１の書き込み要求に従うデータを受けた場合に、前記第２の書き込み要求に従うデータに代えて、該第１の書き込み要求に従うデータを前記バススレーブデバイスに出力するように制御することを含む。
【発明の効果】
【００１９】
本発明によれば、バスマスタデバイスを介さずにデータの再転送処理が行われるため、バスマスタデバイスにおけるデータ再転送処理の負担が低減され、また、データ再転送に伴うバスの使用率が低減されることになる。
【００２０】
また、本発明によれば、データ転送制御装置は、バスマスタデバイス、バススレーブデバイス及びバスの回路を新たに設計する必要をなくすことができるようになる。
【００２１】
本発明の他の技術的特徴、目的、及び作用効果乃至は利点は、添付した図面を参照して説明される以下の実施形態により明らかにされる。
【図面の簡単な説明】
【００２２】
【図１】本発明の一実施形態に係るコンピュータシステムの概略構成の一例を示す図である。
【図２】本発明の一実施形態に係るデータ転送制御装置の概略構成を示す図である。
【図３】本発明の一実施形態に係るデータ転送制御装置におけるスヌープ部の構成を示す図である。
【図４】本発明の一実施形態に係るデータ転送制御装置のアドレステーブル及び対象データ記憶部を説明するための図である。
【図５】本発明の一実施形態に係るデータ転送制御装置におけるコントローラの動作を説明するための状態遷移図である。
【図６】本発明の一実施形態に係るデータ転送制御装置におけるコントローラの動作を説明するためのフローチャートである。
【図７】本発明の一実施形態に係るデータ転送制御装置におけるコントローラの動作を説明するためのフローチャートである。
【図８】本発明の一実施形態に係るコンピュータシステムにおけるデータ転送処理の一例を説明するための図である。
【発明を実施するための形態】
【００２３】
次に、本発明の実施の形態について、図面を参照しつつ説明する。
【００２４】
図１は、本発明の一実施形態に係るコンピュータシステムの概略構成の一例を示す図である。同図に示すように、本実施形態に係るコンピュータシステム１は、例えば、バス１０と、プロセッサ２０と、記憶装置３０と、ＤＭＡコントローラ４０と、周辺機器５０と、データ転送制御装置７０とを含んで構成される。
【００２５】
バス１０は、コンピュータシステム１におけるプロセッサ２０等のコンポーネント間でデータを伝送するための各種の信号線を含む伝送路である。本例では、バス１０は、コンポーネントのアドレス情報を伝送するためのアドレス線ＡＤＤと、コンポーネントにデータを伝送するためのデータ線ＤＡＴＡと、コンポーネントに対する制御情報を伝送するための制御線ＣＮＴとを含んで構成される（図２参照）。バス１０は、例えば、シリアル方式であってもパラレル方式であっても良い。また、本開示では、バス１０は、コンピュータシステム１における内部バスであるものとして説明するが、これに限られるものではなく、例えば、コンピュータシステム１が外部の機器と接続するための外部バスや拡張バスであっても良い。
【００２６】
プロセッサ２０は、例えばＣＰＵやマイクロプロセッサであり、コンピュータシステム１全体の制御を行うコンポーネントである。即ち、プロセッサ２０は、典型的には、記憶装置３０にロードされたプログラムに従って、他のコンポーネントに対して制御を行うことによりコンピュータシステム１に所望の機能を実現する。プロセッサ２０は、典型的には、バス１０を制御するバスマスタデバイスとして機能し、従って、バス１０及びデータ転送制御装置７０を介してバススレーブデバイスの制御を行うバスマスタ６１を含んで構成される。本実施形態では、バスマスタ６１は、バス１０に接続される。
【００２７】
記憶装置３０は、典型的には、揮発性メモリ（例えばＲＡＭ等）、書き換え可能な不揮発性メモリ（例えばフラッシュメモリ等）又はこれらの組み合わせからなる１次記憶装置であり、プロセッサ２０の利用に供されるデータを保持する。記憶装置３０は、典型的には、バススレーブデバイスとして機能し、従って、バス１０及びデータ転送制御装置７０を介してバスマスタデバイスによって制御されるバススレーブ６２を含んで構成される。本実施形態では、バススレーブ６２は、データ転送制御装置７０を介してバス１０に接続される。
【００２８】
ＤＭＡコントローラ４０は、プロセッサ２０の制御の下、記憶装置３０や周辺機器５０といったコンポーネント間で直接的にデータの転送制御を行うコンポーネントである。ＤＭＡコントローラ４０は、典型的には、バス１０を制御するバスマスタデバイスとして機能するとともに、バスマスタデバイスであるプロセッサ２０等のバススレーブデバイスとして機能し得ることから、バスマスタ６１及びバススレーブ６２を含んで構成される。
【００２９】
周辺機器５０は、例えば、通信装置や入出力装置、二次記憶装置、外部Ｉ／Ｏインタフェース等である。本例の周辺機器５０は、バス１０を制御するバスマスタデバイスとして機能するとともに、バスマスタデバイスであるプロセッサ２０等のバススレーブデバイスとして機能し得ることから、バスマスタ６１及びバススレーブ６２を含んで構成されている。なお、周辺機器５０が、バスマスタデバイスとしてのみ機能する場合は、バススレーブ６２は設けられなくても良いし、また、バススレーブデバイスとしてのみ機能する場合は、バスマスタ６１は設けられなくても良い。
【００３０】
データ転送制御装置７０は、バスマスタデバイスによるバススレーブデバイスへのデータ伝送をさらに効率的に制御するためのコンポーネントである。本実施形態では、データ転送制御装置７０は、バス１０と各バススレーブデバイスのバススレーブ６２との間に設けられる。データ転送制御装置７０は、バスマスタデバイスが指示する例えば書き込み対象のデータのターゲット領域が、バススレーブデバイスのバススレーブ６２における特定の領域（以下、「再転送対象領域」という。）に一致するか否かを判断し、該ターゲット領域が再転送対象領域に一致すると判断する場合、該データを保持する。再転送対象領域は、例えば、コンピュータシステム内で使用頻度が高いデータ（プログラムを含む。）が格納される領域である。データ転送制御装置７０は、例えば、バススレーブデバイスのバススレーブ６２から該同一のデータに対する再転送の要求がある場合、バスマスタデバイスに代わって、保持したデータを該バススレーブ６２に出力し、データの再転送を実現する。
【００３１】
データ転送制御装置７０がデータの再転送を実行している間、バススレーブデバイスは該データの再転送の処理によって占有される。斯かる状態で、データ転送制御装置７０がバスマスタデバイスから新たな制御指示を受けた場合、データ転送制御装置７０は、該データの再転送の処理に占有されているバススレーブデバイスに代わって、例えば、バススレーブデバイスがビジー状態であることを示す応答をバスマスタデバイスに出力する。
【００３２】
なお、本例のコンピュータシステム１において、バススレーブデバイスに応じた数のデータ転送制御装置７０が設けられているが、これに限られるものではなく、必要なバススレーブデバイスに対してのみに設けられるようにして良い。また、本例において、再転送の要求は、典型的には、バススレーブ６２から出力されるが、これに限られるものではない。
【００３３】
図２は、本発明の一実施形態に係るデータ転送制御装置の概略構成を示す図である。同図に示すように、データ転送制御装置７０は、例えば、スヌープ部７１と、コントローラ７２と、選択回路７３及び７４とを含んで構成される。本例においては、プロセッサ２０と記憶装置３０との間を担うデータ転送装置７０について説明するが、他のバススレーブデバイスと他のバスマスタデバイスとの間の制御についても同様である。
【００３４】
スヌープ部７１は、バスマスタ６１からバス１０を介して伝送されるリクエスト信号ＲＥＱ０を監視し、所定の条件の下、該リクエスト信号ＲＥＱ０の内容を記憶し、また、該記憶した内容をコントローラ７２に出力する。具体的には、スヌープ部７１は、バスマスタ６１からバス１０を介して伝送されるリクエスト信号ＲＥＱ０が示すターゲット領域が再転送対象領域に一致するか否かを判断し、該ターゲット領域が該再転送対象領域に一致すると判断する場合、該リクエスト信号ＲＥＱ０に従う対象データを記憶する。また、スヌープ部７１は、再転送対象領域を示すアドレス情報と該記憶した対象データとに基づいて、再転送信号ＲＥＴＲＡＮＳを生成し、該生成した再転送信号ＲＥＴＲＡＮＳをコントローラ７２に出力する。再転送信号ＲＥＴＲＡＮＳは、例えば、再転送されるべき対象データ、対象アドレス及びコマンド等を含む。
【００３５】
コントローラ７２は、バスマスタ６１及びバススレーブ６２から受ける信号入力に基づいて、バスマスタ６１及びバススレーブ６２に対する信号出力を制御する。具体的には、コントローラ７２は、再転送を行うか否かを示す設定を有する。コントローラ７２は、該再転送が有効であると設定されている場合、バススレーブ６２に対して対象データの再転送を実行する。コントローラ７２は、該再転送の処理として、バススレーブ６２から出力される再転送要求信号ＲＥＱ＿ＲＥＴＲＡＮＳに基づいて、スヌープ部７１から出力される再転送信号ＲＥＴＲＡＮＳをリクエスト信号ＲＥＱ１として、選択回路７３に出力するとともに、選択信号ＳＥＬ１の電位を電源線の電位“即ち、Ｈ”として、該信号を選択回路７３に出力する。なお、コントローラ７２における再転送の設定は、予め所定の設定に定められていても良いし、コントローラ７２によって動的にその有効／無効が切り替えられても良い。
【００３６】
また、コントローラ７２は、該データの再転送を実行している間に、バスマスタ６１からバス１０を介して出力されるリクエスト信号ＲＥＱ０を受ける場合、バスマスタ６１に対してバススレーブ６２がビジー状態であることを知らせるために、出力レスポンス信号ＲＥＳ１を生成し、該信号を選択回路７４に出力する一方で、選択信号ＳＥＬ２の電位を“Ｈ”として該信号を選択回路７４に出力する。なお、コントローラ７２は、上述した以外の場合においては、選択信号ＳＥＬ１及びＳＥＬ２の電位を接地線の電位即ち、“Ｌ”として、該信号を選択回路７３及び７４に出力する。
【００３７】
選択回路７３は、例えば、マルチプレクサを含んで構成され、コントローラ７２から出力される選択信号ＳＥＬ１に基づいて、コントローラ７２から出力されるリクエスト信号ＲＥＱ１と、バスマスタ６１からバスを１０介して出力されるリクエスト信号ＲＥＱ０とのうち、いずれか一方を選択し、リクエスト信号ＲＥＱとして、該信号をバススレーブ６２に出力する。具体的には、選択回路７３は、選択信号ＳＥＬ１の電位が“Ｈ”である場合、リクエスト信号ＲＥＱ１を選択し、リクエスト信号ＲＥＱとして該信号をバススレーブ６２に出力する一方で、選択信号ＳＥＬ１の電位が“Ｌ”である場合、リクエスト信号ＲＥＱ０を選択し、リクエスト信号ＲＥＱとして該信号をバススレーブ６２に出力する。
【００３８】
選択回路７４は、例えば、マルチプレクサを含んで構成され、コントローラ７２から出力される選択信号ＳＥＬ２に基づいて、コントローラ７２から出力されるレスポンス信号ＲＥＳ１と、バススレーブ６２から出力されるレスポンス信号ＲＥＳ０とのうち、いずれか一方を選択し、レスポンス信号ＲＥＳとして、バス１０を介して該信号をバスマスタ６１に出力する。具体的には、選択回路７４は、選択信号ＳＥＬ２の電位が“Ｈ”である場合、レスポンス信号ＲＥＳ１を選択し、レスポンス信号ＲＥＳとしてバス１０を介して該信号をバスマスタ６１に出力する一方で、選択信号ＳＥＬ２の電位が“Ｌ”である場合、レスポンス信号ＲＥＳ０を選択し、レスポンス信号ＲＥＳとしてバス１０を介して該信号をバスマスタ６１に出力する。
【００３９】
図３は、本発明の一実施形態に係るデータ転送制御装置におけるスヌープ部の構成を示す図である。同図に示すように、本実施形態のスヌープ部７１は、例えば、アドレステーブル７１０と、比較器７１１と、データ記憶制御部７１２と、データ記憶部７１３とを含んで構成される。なお、同図において、リクエスト信号ＲＥＱ０は、制御対象を示すリクエストアドレス信号ＲＥＱ０＿ＡＤＤと、対象データを示すリクエストデータ信号ＲＥＱ０＿ＤＡＴＡと、制御内容を示すリクエスト制御信号ＲＥＱ０＿ＣＮＴとの信号の総称である。また、同図において、再転送信号ＲＥＴＲＡＮＳは、制御対象を示す再転送アドレス信号ＲＥＴＲＡＮＳ＿ＡＤＤと、対象データを示す再転送データ信号ＲＥＴＲＡＮＳ＿ＤＡＴＡとの信号の総称である。
【００４０】
アドレステーブル７１０は、再転送対象領域を示す先頭アドレスを保持するテーブルである。また、アドレステーブル７１０は、該領域を示すアドレスに基づく再転送アドレス信号ＲＥＴＲＡＮＳ＿ＡＤＤを比較器７１１、データ記憶部７１３及びコントローラ７２に出力する。アドレステーブル７１０の内容に関しては、図４を参照して説明される。
【００４１】
比較器７１１は、バスマスタ６１からバス１０を介して出力されるリクエストアドレス信号ＲＥＱ０＿ＡＤＤが示すターゲット領域と、再転送アドレス信号ＲＥＴＲＡＮＳ＿ＡＤＤが示すターゲット領域とを比較し、これらのターゲット領域が一致するか否かを判断する。比較器７１１は、該ターゲット領域が一致すると判断する場合、一致信号ＭＡＴＣＨをデータ記憶制御部７１２に出力する。
【００４２】
データ記憶制御部７１２は、比較器７１１から出力される一致信号ＭＡＴＣＨと、バスマスタ６１からバス１０を介して出力されるリクエスト制御信号ＲＥＱ０＿ＣＮＴ及びリクエストデータ信号ＲＥＱ０＿ＤＡＴＡとに基づいて、イネーブル信号ＥＮＡを生成し、該イネーブル信号ＥＮＡをデータ記憶部７１３に出力する。具体的には、データ記憶制御部７１２は、リクエスト制御信号ＲＥＱ０＿ＣＮＴが示す内容がバススレーブ６２に対する書き込み要求であるか否かを判断し、また、比較器７１１から一致信号ＭＡＴＣＨが出力されているか否かを判断し、さらに、リクエストデータ信号ＲＥＱ０＿ＤＡＴＡが示す対象データが書き込み要求に対応する有効な内容であるか否かを判断する。データ記憶制御部７１２は、リクエスト制御信号ＲＥＱ０＿ＣＮＴが示す内容がバススレーブ６２に対する書き込み要求であると判断し、かつ、比較器７１１から一致信号ＭＡＴＣＨが出力されていると判断し、かつ、リクエストデータ信号ＲＥＱ０＿ＤＡＴＡが示す対象データが書き込み要求に対応する有効な内容であると判断する場合、イネーブル信号ＥＮＡを生成し該信号をデータ記憶部７１３に出力する。
【００４３】
データ記憶部７１３は、所定の記憶領域を有し、再転送対象領域を示すアドレスに対応する対象データを該所定の記憶領域に記憶する。また、データ記憶部７１３は、データ記憶制御部７１２から出力されるイネーブル信号ＥＮＡに基づいて、アドレステーブル７１０から出力される再転送アドレス信号ＲＥＴＲＡＮＳ＿ＡＤＤが示すアドレスに対応する該記憶した対象データの状態をバスマスタ６１からバス１０を介して出力されるリクエスト信号ＲＥＱ０＿ＤＡＴＡが示す対象データの状態に更新する。具体的には、データ記憶部７１３は、データ記憶制御部７１２から出力されるイネーブル信号ＥＮＡの電位が例えば“Ｈ”の間、アドレステーブル７１０から出力される再転送アドレス信号ＲＥＴＲＡＮＳ＿ＡＤＤが示すアドレスに対応する該記憶した対象データの状態をバスマスタ６１からバス１０を介して出力されるリクエスト信号ＲＥＱ０＿ＤＡＴＡが示す対象データに更新する。さらに、データ記憶部７１３は、該更新した対象データを再転送データ信号ＲＥＴＲＡＮＳ＿ＤＡＴＡとして、該信号をコントローラ７２に出力する。
【００４４】
図４は、本発明の一実施形態に係るデータ転送制御装置のアドレステーブル及び対象データ記憶部を説明するための図である。同図に示すように、アドレステーブル７１０は、典型的には、再転送対象領域先頭アドレス欄７１０１とデータアドレス欄７１０２とを含んで構成される。再転送対象領域先頭アドレス欄７１０１は、コンピュータシステム内で使用頻度が高いデータ等が格納される記憶領域の先頭アドレスを保持する。データアドレス欄７１０２は、再転送対象領域とそこに格納されるデータエンティティとが関連付けられるように、該プログラム等のデータエンティティを格納しているデータ記憶部７１３内の対応する領域の先頭アドレスを保持する。
【００４５】
図５は、本発明の一実施形態に係るデータ転送制御装置におけるコントローラの動作を説明するための状態遷移図である。同図を参照して、まず、スタンバイ状態（Ｓ５０１）において、コントローラ７２は、再転送が有効であると設定されている場合、バススレーブ６２から出力される再転送要求信号ＲＥＱ＿ＲＥＴＲＡＮＳに基づいて再転送が要求されているか否かを判断する。
【００４６】
コントローラ７２は、バススレーブ６２に対する再転送が有効であり、かつ、バススレーブ６２から再転送が要求されていると判断する場合、バスマスタ６１からバス１０を介して出力されるリクエスト信号ＲＥＱ０と、バススレーブ６２から出力されるレスポンス信号ＲＥＳ０との状態に基づいて、バスマスタ６１がバススレーブ６２に対してアクセスしているか否かをさらに判断する。コントローラ７２は、バスマスタ６１がバススレーブ６２に対してアクセスしていないと判断する場合、コントローラ７２は、スタンバイ状態（Ｓ５０１）から再転送実行状態（Ｓ５０３）に遷移する。一方、コントローラ７２は、バスマスタ６１がバススレーブ６２に対してアクセスしていると判断する場合、コントローラ７２は、スタンバイ状態（Ｓ５０１）からバスアクセス実行状態（Ｓ５０２）に遷移する。なお、スタンバイ状態（Ｓ５０１）において、スタンバイ状態（Ｓ５０１）を維持する場合のコントローラ７２の動作の詳細に関しては後述する。
【００４７】
バスアクセス実行状態（Ｓ５０２）において、コントローラ７２は、バスマスタ６１からバス１０を介して出力されるリクエスト信号ＲＥＱ０と、バススレーブ６２から出力されるレスポンス信号ＲＥＳ０とに基づいて、バススレーブ６２に対するバスマスタ６１のアクセスが終了したか否かを判断する。コントローラ７２は、バススレーブ６２に対するバスマスタ６１のアクセスが終了していないと判断する場合、コントローラ７２の状態はバスアクセス実行状態（Ｓ５０２）を維持する。一方、コントローラ７２は、バススレーブ６２に対するバスマスタ６１のアクセスが終了したと判断する場合、コントローラ７２は、バスアクセス実行状態（Ｓ５０２）から再転送実行状態（Ｓ５０３）に遷移する。なお、バスアクセス実行状態（Ｓ５０２）において、バスアクセス実行状態（Ｓ５０２）を維持する場合のコントローラ７２の動作の詳細に関しては後述する。
【００４８】
再転送実行状態（Ｓ５０３）において、コントローラ７２は、バススレーブ６２から出力されるレスポンス信号ＲＥＳ０に基づいて、バススレーブ６２に対する再転送が終了したか否かを判断する。コントローラ７２は、バススレーブ６２に対する再転送が終了していないと判断する場合、コントローラ７２は、再転送実行状態（Ｓ５０３）を維持する。一方、コントローラ７２は、バススレーブ６２に対する再転送が終了したと判断する場合、コントローラ７２は、スタンバイ状態（Ｓ５０１）に遷移する。なお、再転送実行状態（Ｓ５０３）において、再転送実行状態（Ｓ５０３）を維持する場合のコントローラ７２の動作の詳細に関しては後述する。
【００４９】
図６は、本発明の一実施形態に係るデータ転送制御装置におけるコントローラの動作を説明するためのフローチャートである。具体的には、図６は、本発明の一実施形態に係るデータ転送制御装置のスタンバイ状態及びバスアクセス実行状態において、該状態を維持する場合のコントローラの動作を説明するためのフローチャートである。
【００５０】
同図を参照して、スタンバイ状態及びバスアクセス実行状態において、まず、コントローラ７２は、選択信号ＳＥＬの論理を“Ｌ”として、該信号を選択回路７３及び７４に出力する（Ｓ６０１）。
【００５１】
コントローラ７２は、次に、バスマスタ６１から出力されるリクエスト信号ＲＥＱ０の状態を確認し、バスマスタ６１のアクセス先（即ち、ターゲット領域）がバススレーブ６２の再転送対象領域であるか否かを判断する（Ｓ６０２）。コントローラ７２は、バスマスタ６１のアクセス先が再転送対象領域でないと判断する場合（Ｓ６０２のＮｏ）、選択回路７３を介してバスマスタ６１から出力されたリクエスト信号ＲＥＱ０をバススレーブ６２に出力する（Ｓ６０４）。
【００５２】
一方、コントローラ７２がバスマスタ６１のアクセス先が再転送対象領域であると判断する場合（Ｓ６０２のＹｅｓ）コントローラ７２は、スヌープ部７１から出力されるバスマスタ６１からバススレーブ６２への対象データと、再転送対象領域のアドレスとを示す再転送信号ＲＥＴＡＲＮＳを受け（Ｓ６０３）、続いて、バスマスタ６１から出力されたリクエスト信号ＲＥＱ０をバススレーブ６２に出力する（Ｓ６０４）。
【００５３】
そして、コントローラ７２は、選択回路７４を介して、バススレーブ６２から出力されたレスポンス信号ＲＥＳ０をバスマスタ６１に出力する（Ｓ６０５）。
【００５４】
これにより、コントローラ７２は、バスマスタ６１が出力する制御指示をバススレーブ６２に伝送するとともに、バススレーブ６２が出力する応答をバスマスタ６１に伝送することができる。また、コントローラ７２は、バスマスタ６１が出力する制御指示が示すターゲット領域が再転送対象領域であるか否かを判断し、該ターゲット領域が再転送領域であると判断する場合、コントローラ７２は、該再転送領域を示すアドレスと、該制御指示が示す対象データとを受けることによって、再転送の要求に備えることができる。
【００５５】
図７は、本発明の一実施形態に係るデータ転送制御装置におけるコントローラの動作を説明するためのフローチャートである。具体的には、本発明の一実施形態に係るデータ転送制御装置の再転送実行状態において、該状態を維持する場合のコントローラの動作を説明するためのフローチャートである。
【００５６】
同図を参照して、コントローラ７２は、再転送実行状態において、まず、選択信号ＳＥＬの論理を“Ｈ”として、該信号を選択回路７３及び７４に出力する（Ｓ７０１）。コントローラ７２は、次に、選択回路７３を介してスヌープ部７１から出力された再転送信号ＲＥＴＲＡＮＳをリクエスト信号ＲＥＱ１として、バススレーブ６２に出力する（Ｓ７０２）。
【００５７】
コントローラ７２は、バスマスタ６１から出力されるリクエスト信号ＲＥＱ０の状態を確認し、バススレーブ６２に対してバスマスタ６１がアクセスしているか否かを判断する（Ｓ７０３）。コントローラ７２は、バスマスタ６１がバススレーブ６２に対してアクセスしていないと判断する場合（Ｓ７０３のＮｏ）、バススレーブ６２から出力されるレスポンス信号ＲＥＳ０をバスマスタ６１に出力し（Ｓ７０６）、再転送の制御を完了する。一方、コントローラ７２は、バスマスタ６１がバススレーブ６２に対してアクセスしていると判断する場合（Ｓ７０３のＹｅｓ）、バススレーブ６２が出力するレスポンス信号ＲＥＳ０に代えて、選択回路７４を介してレスポンス信号ＲＥＳ１をバスマスタ６１に出力する（Ｓ７０４）。続いて、コントローラ７２は、バスマスタ６１から出力されるリクエスト信号ＲＥＱ０の状態を確認し、バススレーブ６２に対するバスマスタ６１のアクセスが終了したか否かを判断する（Ｓ７０５）。
【００５８】
コントローラ７２は、バススレーブ６２に対するバスマスタ６１のアクセスが終了していないと判断する場合（Ｓ７０５のＮｏ）、ステップＳ７０４の処理に戻る。一方、コントローラ７２は、バススレーブ６２に対するバスマスタ６１のアクセスが終了したと判断する場合（Ｓ７０５のＹｅｓ）、再転送の制御を完了する。
【００５９】
このようにして、コントローラ７２は、スヌープ部７１が出力する再転送信号ＲＥＴＲＡＮＳが示す対象データをリクエスト信号ＲＥＱ１として、バススレーブ６２の再転送領域に出力することによって、バススレーブ６２に対して再転送を実行するとともに、該再転送の処理を終えたバススレーブ６２が出力する応答をバスマスタ６１に伝送することができる。また、コントローラ７２は、該再転送の実行中に、バスマスタ６１のバススレーブ６２に対するアクセスがあるか否かを判断し、該アクセスがあると判断する場合、コントローラ７２は、バススレーブ６２に代わって、バスマスタ６１に対して応答を出力することができる。
【００６０】
以上のように構成されるコンピュータシステム１においては、データ転送制御装置７０は、バスマスタデバイスが指示する対象データのターゲット領域がバススレーブデバイスのバススレーブ６２における再転送対象領域であるか否かを判断し、該ターゲット領域が該再転送対象領域であると判断する場合、データ転送制御装置７０は該再転送対象領域に対する対象データを保存する。そして、データ転送制御装置７０は、再転送の要求を受けた場合、バスマスタデバイスに代わって該保存した対象データをバススレーブデバイスのバススレーブ６２に出力する。
【００６１】
従って、本実施形態によれば、コンピュータシステム１におけるデータ転送制御装置７０は、バス１０、バスマスタデバイス及びバススレーブデバイスの回路を新たに設計せずに、バスマスタデバイスのデータ転送処理負荷とバス１０の使用率との低減を実現することができる。また、データ転送制御装置７０は、コンピュータシステム１におけるバス１０の使用率に影響を与えずに、再転送の処理を行うことができる。
【００６２】
図８は、本発明の一実施形態に係るコンピュータシステムにおけるデータ転送処理の一例を説明するための図である。即ち、同図は、プロセッサ２０がバスマスタデバイスであり、ＤＭＡコントローラ４０がこれに対するバススレーブデバイスとなり、さらに、ＤＭＡコントローラ４０がバスマスタデバイスであり、記憶装置３０がこれに対するバススレーブデバイスであるときのデータ転送処理を説明している。なお、周辺機器５０及びデータ転送制御装置７０の構成及び動作に関しては、上述した実施形態と同じであるため、その説明を省略する。
【００６３】
プロセッサ２０は、記憶装置３０に対する制御指示としてリクエスト信号ＲＥＱ２を生成し、データ転送制御装置７０に出力する。また、プロセッサ２０は、データ転送制御装置７０から出力されるＤＭＡコントローラ４０の処理の終了を示すレスポンス信号ＲＥＳ２を受ける。なお、本例においては、プロセッサ２０は、記憶装置３０に対する制御指示を出力するが、これに限られるものではなく、例えば周辺機器５０に対する制御指示を出力しても良い。
【００６４】
記憶装置３０は、ＤＭＡコントローラ４０のバスマスタ６１から出力されるリクエスト信号ＲＥＱ３に基づいて、該信号が示す記憶装置３０のターゲット領域に、該信号が示す書き込み対象のデータを保持する。また、記憶装置３０は、ＤＭＡコントローラ４０に対する応答として、レスポンス信号ＲＥＳ３を生成し該信号をＤＭＡコントローラ４０のバスマスタ６１に出力する。
【００６５】
ＤＭＡコントローラ４０のバススレーブ６２は、データ転送制御装置７０から出力されるリクエスト信号ＲＥＱに基づいて、該信号が示すバススレーブ６２のターゲット領域に該信号が示す書き込み対象のデータを保持するとともに、プロセッサ２０から制御指示を受けたことを示す信号を信号線Ｗ＿ＳＩＧを介して、ＤＭＡコントローラ４０のバスマスタ６１に伝送する。また、ＤＭＡコントローラ４０のバススレーブ６２は、ＤＭＡコントローラ４０のバスマスタ６１から信号線Ｗ＿ＳＩＧを介して、該制御指示に関する処理の終了を示す信号を受ける。ＤＭＡコントローラ４０のバススレーブ６２は、該信号に基づいて、バススレーブ６２に保持された内容をリセットするとともに、プロセッサ２０への応答としてレスポンス信号ＲＥＳ０を生成する。そしてバススレーブ６２は、レスポンス信号ＲＥＳ０をデータ転送制御装置７０に出力するとともに、再転送要求信号ＲＥＱ＿ＲＥＴＲＡＮＳを生成し、該信号をデータ転送制御装置７０に出力し、再転送対象領域に対するデータの再転送を要求する。
【００６６】
ＤＭＡコントローラ４０のバスマスタ６１は、ＤＭＡコントローラ４０のバススレーブ６２から信号線Ｗ＿ＳＩＧを介して伝送されるプロセッサ２０から制御指示を受けたことを示す信号に基づいて、ＤＭＡコントローラ４０のバススレーブ６２に保持されたデータを参照し、記憶装置３０に対する制御指示を示すリクエスト信号ＲＥＱ３を生成し、リクエスト信号ＲＥＱ３を記憶装置３０に出力する。また、ＤＭＡコントローラ４０のバスマスタ６１は、記憶装置３０から出力されるレスポンス信号ＲＥＳ３に基づいて、プロセッサ２０から受けた制御指示に関する処理が終了したことを示す信号を信号線Ｗ＿ＳＩＧを介してＤＭＡコントローラ４０のバススレーブ６２に伝送する。なお、本例においては、ＤＭＡコントローラ４０のバスマスタ６１は、記憶装置３０に対して制御指示を出力するが、これに限られるものではなく、例えば周辺機器５０に対して制御指示を出力しても良い。
【００６７】
本実施形態によれば、データ転送制御装置７０は、プロセッサ２０が指示する対象データのターゲット領域がＤＭＡコントローラ４０のバススレーブ６２における再転送対象領域であるか否かを判断し、該ターゲット領域が該再転送対象領域であると判断する場合、データ転送制御装置７０は該再転送対象領域に対する対象データを保存する。そして、データ転送制御装置７０は、ＤＭＡコントローラ４０のバススレーブ６２から再転送の要求を受けた場合、プロセッサ２０に代わって該保存した対象データをＤＭＡコントローラ４０のバススレーブ６２に出力する。従って、本変形例によれば、コンピュータシステム１Ａにおけるデータ転送制御装置７０は、バス１０、プロセッサ２０及びＤＭＡコントローラ４０の回路を新たに設計せずに、プロセッサ２０のデータ転送処理負荷とバス１０の使用率との低減を実現することができる。また、データ転送制御装置７０は、コンピュータシステム１Ａにおけるバス１０の使用率に影響を与えずに、再転送の処理を行うことができる。さらに、本実施形態によれば、データ転送制御装置７０は、ＤＭＡコントローラ４０の処理の終了時にリセットされるＤＭＡコントローラ４０のバススレーブ６２の内容を保持し、ＤＭＡコントローラ４０の処理の終了時にプロセッサ２０に代わって、ＤＭＡコントローラ４０のバススレーブ６２に該保持した内容を再転送することによって、プロセッサ２０のデータ転送処理負荷の低減を実現することができる。
【００６８】
上記各実施形態は、本発明を説明するための例示であり、本発明をこれらの実施形態にのみ限定する趣旨ではない。本発明は、その要旨を逸脱しない限り、さまざまな形態で実施することができる。
【００６９】
例えば、本明細書に開示される方法においては、その結果に矛盾が生じない限り、ステップ、動作又は機能を並行して又は異なる順に実施しても良い。説明されたステップ、動作及び機能は、単なる例として提供されており、ステップ、動作及び機能のうちのいくつかは、発明の要旨を逸脱しない範囲で、省略でき、また、互いに結合させることで一つのものとしてもよく、また、他のステップ、動作又は機能を追加してもよい。
【００７０】
また、本明細書では、さまざまな実施形態が開示されているが、一の実施形態における特定のフィーチャ（技術的事項）を適宜改良しながら、他の実施形態に追加し、又は該他の実施形態における特定のフィーチャと置換することができ、そのような形態も本発明の要旨に含まれる。
【産業上の利用可能性】
【００７１】
本発明は、バスを介してデータ転送を行うコンピュータシステムの分野に広く利用することができる。
【符号の説明】
【００７２】
１…コンピュータシステム
１０…バス
２０…プロセッサ
３０…記憶装置
４０…ＤＭＡコントローラ
５０…周辺機器
６１…バスマスタ
６２…バススレーブ
７０…データ転送制御装置
７１…スヌープ部
７２…コントローラ
７３，７４…選択回路
７１０…アドレステーブル
７１１…比較器
７１２…データ記憶制御部
７１３…データ記憶部
７１０１…再転送対象領域先頭アドレス欄
７１０２…データアドレス欄
【図１】
2015191266.tif 000003
【図２】
2015191266.tif 000004
【図３】
2015191266.tif 000005
【図４】
2015191266.tif 000006
【図５】
2015191266.tif 000007
【図６】
2015191266.tif 000008
【図７】
2015191266.tif 000009
【図８】
2015191266.tif 000010