特開2015-191266(P2015-191266A)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社メガチップスの特許一覧

特開2015-191266データ転送制御装置及びデータ転送の制御方法
<>
  • 特開2015191266-データ転送制御装置及びデータ転送の制御方法 図000003
  • 特開2015191266-データ転送制御装置及びデータ転送の制御方法 図000004
  • 特開2015191266-データ転送制御装置及びデータ転送の制御方法 図000005
  • 特開2015191266-データ転送制御装置及びデータ転送の制御方法 図000006
  • 特開2015191266-データ転送制御装置及びデータ転送の制御方法 図000007
  • 特開2015191266-データ転送制御装置及びデータ転送の制御方法 図000008
  • 特開2015191266-データ転送制御装置及びデータ転送の制御方法 図000009
  • 特開2015191266-データ転送制御装置及びデータ転送の制御方法 図000010
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】特開2015-191266(P2015-191266A)
(43)【公開日】2015年11月2日
(54)【発明の名称】データ転送制御装置及びデータ転送の制御方法
(51)【国際特許分類】
   G06F 13/36 20060101AFI20151006BHJP
【FI】
   G06F13/36 310E
【審査請求】未請求
【請求項の数】7
【出願形態】OL
【全頁数】22
(21)【出願番号】特願2014-65988(P2014-65988)
(22)【出願日】2014年3月27日
(71)【出願人】
【識別番号】591128453
【氏名又は名称】株式会社メガチップス
(74)【代理人】
【識別番号】110001690
【氏名又は名称】特許業務法人M&Sパートナーズ
(74)【代理人】
【識別番号】100109715
【弁理士】
【氏名又は名称】塩谷 英明
(74)【代理人】
【識別番号】100114753
【弁理士】
【氏名又は名称】宮崎 昭彦
(72)【発明者】
【氏名】内田 裕之
【テーマコード(参考)】
5B061
【Fターム(参考)】
5B061DD09
(57)【要約】
【課題】 バスマスタデバイスのデータ転送処理負荷とバスの使用率とを低減する。
【解決手段】 本発明は、バスを介してバスマスタデバイスから送出される書込要求を監視するスヌープ部と、該書込要求のバススレーブデバイスへの出力を制御するコントローラとを備えるデータ転送制御装置である。該スヌープ部は、第1の書込要求が示すターゲット領域が少なくとも一の再転送対象領域に一致する場合該第1の書込要求に従うデータを記憶し、該第1の書込要求に従うデータを記憶しており第2の書込要求が示すターゲット領域が該少くとも一の再転送対象領域に一致する場合該第1の書込要求に従うデータを該コントローラに出力する。該コントローラは、該スヌープ部から該第1の書込要求に従うデータを受けた場合該第2の書込要求に従うデータに代え該第1の書込要求に従うデータを該バススレーブデバイスに出力するよう制御する。
【選択図】 図1
【特許請求の範囲】
【請求項1】
バスに接続されるデータ転送制御装置であって、
前記バスを介してバスマスタデバイスから送出される書き込み要求を監視するスヌープ部と、
前記書き込み要求をバススレーブデバイスに出力するか否かを制御するコントローラと、を備え、
前記スヌープ部は、
第1の書き込み要求が示すターゲット領域が少なくとも一の再転送対象領域に一致する場合に、該第1の書き込み要求に従うデータを記憶し、
前記第1の書き込み要求に従うデータを記憶している場合において、第2の書き込み要求が示すターゲット領域が前記少なくとも一の再転送対象領域に一致する場合に、前記第1の書き込み要求に従うデータを前記コントローラに出力し、
前記コントローラは、前記スヌープ部から前記第1の書き込み要求に従うデータを受けた場合に、前記第2の書き込み要求に従うデータに代えて、該第1の書き込み要求に従うデータを前記バススレーブデバイスに出力するように制御する、
データ転送制御装置。
【請求項2】
前記スヌープ部は、
前記少なくとも一の再転送対象領域を示すアドレスを記憶するアドレステーブルと、
前記書き込み要求が示すターゲット領域のアドレスと前記アドレステーブルに記憶された前記少なくとも一の再転送対象領域を示すアドレスとが一致するか否かを判断する比較器と、を備える、
請求項1記載のデータ転送制御装置。
【請求項3】
前記スヌープ部は、前記少なくとも一の再転送対象領域に関連付けられたデータを保持するデータ記憶部をさらに備える、請求項2記載のデータ転送制御装置。
【請求項4】
前記コントローラは、前記スヌープ部から出力された前記第1の書き込み要求に従うデータを前記バススレーブデバイスに出力するように制御している間に、所定のデバイスから前記バススレーブデバイスに対して所定のアクセス要求があった場合に、前記バススレーブデバイスに代わって、前記所定のデバイスに対する応答を行う、請求項1記載のデータ転送制御装置。
【請求項5】
バスと、
前記バスに接続されたバスマスタデバイスと、
前記バスに接続されたデータ転送制御装置と、
前記データ転送制御装置を介して前記バスに接続されたバススレーブデバイスと、を備えるコンピュータシステムであって、
前記データ転送制御装置は、
前記バスマスタデバイスから送出される書き込み要求を監視するスヌープ部と、
前記書き込み要求を前記バススレーブデバイスに出力するか否かを制御するコントローラと、を備え、
前記スヌープ部は、
第1の書き込み要求が示すターゲット領域が少なくとも一の再転送対象領域に一致する場合に、該第1の書き込み要求に従うデータを記憶し、
前記第1の書き込み要求に従うデータを記憶している場合において、第2の書き込み要求が示すターゲット領域が前記少なくとも一の再転送対象領域に一致する場合に、前記第1の書き込み要求に従うデータを前記コントローラに出力し、
前記コントローラは、前記スヌープ部から前記第1の書き込み要求に従うデータを受けた場合に、前記第2の書き込み要求に従うデータに代えて、前記第1の書き込み要求に従うデータを前記バススレーブデバイスに出力するように制御する、
コンピュータシステム。
【請求項6】
前記バスに接続されたDMAコントローラをさらに備え、
前記DMAコントローラは、前記データ転送制御装置を介して前記バスに接続される前記バススレーブデバイスとして機能する、
請求項5記載のコンピュータシステム。
【請求項7】
コンピュータシステムにおけるデータ転送制御方法であって、
バスを介してバスマスタデバイスから送出される書き込み要求を監視することと、
前記書き込み要求をバススレーブデバイスに出力するか否かを制御することと、を含み、
前記監視することは、
第1の書き込み要求が示すターゲット領域が少なくとも一の再転送対象領域に一致するか否かを判断することと、
前記ターゲット領域が前記少なくとも一の再転送対象領域に一致すると判断する場合に、前記第1の書き込み要求に従うデータを所定の記憶領域に記憶することと、
前記所定の記憶領域に前記第1の書き込み要求に従うデータが記憶されている場合において、第2の書き込み要求が示すターゲット領域が前記少なくとも一の再転送対象領域に一致する場合に、前記所定の記憶領域に記憶された前記第1の書き込み要求に従うデータを前記コントローラに出力することと、を含み、
前記制御することは、前記所定の記憶領域に記憶された前記第1の書き込み要求に従うデータを受けた場合に、前記第2の書き込み要求に従うデータに代えて、該第1の書き込み要求に従うデータを前記バススレーブデバイスに出力するように制御すること、を含む、
データ転送制御方法。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、データ転送制御装置及びデータ転送の制御方法に関する。
【背景技術】
【0002】
情報化社会において、コンピュータシステムの存在は必要不可欠であり、コンピュータシステムはさらなる高性能化を求められている。コンピュータシステムの高性能化にとって、CPU(Central Processer Unit)の処理負荷やバスの効率的な使用は、重要な要素である。
【0003】
CPUの処理負荷の低減を目的としたコンピュータシステムにおけるコンポーネント間のデータ転送を行う技術として、CPUに代わってデータ転送を行うDMA(Direct Memory Access)転送技術が従来知られている。斯かるDMA転送では、CPUにおいてデータ転送要求が発生した場合、CPUは、DMAコントローラに対してデータ転送命令を与え、DMAコントローラは、該データ転送命令に基づいて、CPUの処理とは独立に、データの転送処理を行い、該転送処理が終了すると、CPUに対して転送終了を示すレスポンスを返す。一般に、一のデバイス乃至はコンポーネントがバスを制御して他のデバイス乃至はコンポーネントにアクセスする場合、該一のデバイスをバスマスタデバイスと呼び、該他のデバイスをバススレーブデバイスと呼ぶ。
【0004】
このように、DMA転送においては、データ転送の開始時及び終了時に、CPUの処理が発生する。DMA転送におけるさらなるCPUの処理負荷の低減を実現するために、CPUへのアクセスの回数を低減する試みがなされている。
【0005】
例えば、下記特許文献1は、コンピュータシステム上でのDMA転送を制御するDMAコントローラと、各周辺装置で所定のイベントが発生したとき、周辺装置の識別情報とイベントの内容とを含む通知信号を送信する、DMA転送の転送元又は転送先となりDMA転送の実行を要求する一つ以上の周辺装置と、を備え、DMA転送を許可すべき周辺装置における監視対象となるイベントの内容を登録するためのイベントレジスタと、各周辺装置から前記通知信号を受け取り、前記通知信号及び前記イベントレジスタに含まれる周辺装置の識別情報及びイベントの内容が一致するとき、前記DMAコントローラを起動して前記識別情報で特定される周辺装置に関するDMA転送を実行するイベント監視部と、を有する起動処理装置をさらに備えることを特徴とするDMA転送システムを開示する。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特許4530971号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
特許文献1に開示されるような従来のDMA転送システムは、起動処理装置が保持するレジスタの内容が要求され、これを転送する際、起動処理装置がバスを使用してしまうというという課題を有していた。
【0008】
さらに、該DMA転送システムにおいては、起動処理装置は専用の信号線によってバスマスタデバイス及びバススレーブデバイスと接続されることから、バスマスタデバイス及びバススレーブデバイス自体の回路を新たに設計する必要があった。
【0009】
そこで、本発明は、バスマスタデバイスのデータ転送処理負荷とバスの使用率とを低減するデータ転送制御装置を提供することを目的とする。
【0010】
また、本発明は、バスマスタデバイス、バススレーブデバイス及びバスの回路を新たに設計する必要のないデータ転送制御装置及びデータ転送制御方法を提供することを目的とする。
【課題を解決するための手段】
【0011】
上記課題を解決するための本発明は、以下の技術的特徴乃至は発明特定事項を含んで構成される。
【0012】
即ち、ある観点に従う本発明は、バスに接続されるデータ転送制御装置である。前記データ制御装置は、前記バスを介してバスマスタデバイスから送出される書き込み要求を監視するスヌープ部と、前記書き込み要求をバススレーブデバイスに出力するか否かを制御するコントローラとを備える。前記スヌープ部は、第1の書き込み要求が示すターゲット領域が少なくとも一の再転送対象領域に一致する場合に、該第1の書き込み要求に従うデータを記憶し、前記第1の書き込み要求に従うデータを記憶している場合において、第2の書き込み要求が示すターゲット領域が前記少なくとも一の再転送対象領域に一致する場合に、前記第1の書き込み要求に従うデータを前記コントローラに出力する。前記コントローラは、前記スヌープ部から前記第1の書き込み要求に従うデータを受けた場合に、前記第2の書き込み要求に従うデータに代えて、該第1の書き込み要求に従うデータを前記バススレーブデバイスに出力するように制御する。
【0013】
また、前記スヌープ部は、前記少なくとも一の再転送対象領域を示すアドレスを記憶するアドレステーブルと、前記書き込み要求が示すターゲット領域のアドレスと前記アドレステーブルに記憶された前記少なくとも一の再転送対象領域を示すアドレスとが一致するか否かを判断する比較器とを備え得る。
【0014】
さらに、前記スヌープ部は、前記少なくとも一の再転送対象領域に関連付けられたデータを保持するデータ記憶部をさらに備え得る。
【0015】
また、前記コントローラは、前記スヌープ部から出力された前記第1の書き込み要求に従うデータを前記バススレーブデバイスに出力するように制御している間に、所定のデバイスから前記バススレーブデバイスに対して所定のアクセス要求があった場合に、前記バススレーブデバイスに代わって、前記所定のデバイスに対する応答を行い得る。
【0016】
また、別の観点に従う本発明は、バスと、前記バスに接続されたバスマスタデバイスと、前記バスに接続されたデータ転送制御装置と、前記データ転送制御装置を介して前記バスに接続されたバススレーブデバイスとを備えるコンピュータシステムである。前記データ転送制御装置は、前記バスマスタデバイスから送出される書き込み要求を監視するスヌープ部と、前記書き込み要求を前記バススレーブデバイスに出力するか否かを制御するコントローラとを備える。前記スヌープ部は、第1の書き込み要求が示すターゲット領域が少なくとも一の再転送対象領域に一致する場合に、該第1の書き込み要求に従うデータを記憶し、前記第1の書き込み要求に従うデータを記憶している場合において、第2の書き込み要求が示すターゲット領域が前記少なくとも一の再転送対象領域に一致する場合に、前記第1の書き込み要求に従うデータを前記コントローラに出力する。前記コントローラは、前記スヌープ部から前記第1の書き込み要求に従うデータを受けた場合に、前記第2の書き込み要求に従うデータに代えて、前記第1の書き込み要求に従うデータを前記バススレーブデバイスに出力するように制御する。
【0017】
また、前記コンピュータシステムは、前記バスに接続されたDMAコントローラをさらに備え得る。前記DMAコントローラは、前記データ転送制御装置を介して前記バスに接続される前記バススレーブデバイスとして機能し得る。
【0018】
さらに、別の観点に従う本発明は、コンピュータシステムにおけるデータ転送制御方法である。前記データ転送制御方法は、バスを介してバスマスタデバイスから送出される書き込み要求を監視することと、前記書き込み要求をバススレーブデバイスに出力するか否かを制御することとを含む。前記監視することは、第1の書き込み要求が示すターゲット領域が少なくとも一の再転送対象領域に一致するか否かを判断することと、前記ターゲット領域が前記少なくとも一の再転送対象領域に一致すると判断する場合に、前記第1の書き込み要求に従うデータを所定の記憶領域に記憶することと、前記所定の記憶領域に前記第1の書き込み要求に従うデータが記憶されている場合において、第2の書き込み要求が示すターゲット領域が前記少なくとも一の再転送対象領域に一致する場合に、前記所定の記憶領域に記憶された前記第1の書き込み要求に従うデータを前記コントローラに出力することと、を含む。また、前記制御することは、前記所定の記憶領域に記憶された前記第1の書き込み要求に従うデータを受けた場合に、前記第2の書き込み要求に従うデータに代えて、該第1の書き込み要求に従うデータを前記バススレーブデバイスに出力するように制御することを含む。
【発明の効果】
【0019】
本発明によれば、バスマスタデバイスを介さずにデータの再転送処理が行われるため、バスマスタデバイスにおけるデータ再転送処理の負担が低減され、また、データ再転送に伴うバスの使用率が低減されることになる。
【0020】
また、本発明によれば、データ転送制御装置は、バスマスタデバイス、バススレーブデバイス及びバスの回路を新たに設計する必要をなくすことができるようになる。
【0021】
本発明の他の技術的特徴、目的、及び作用効果乃至は利点は、添付した図面を参照して説明される以下の実施形態により明らかにされる。
【図面の簡単な説明】
【0022】
図1】本発明の一実施形態に係るコンピュータシステムの概略構成の一例を示す図である。
図2】本発明の一実施形態に係るデータ転送制御装置の概略構成を示す図である。
図3】本発明の一実施形態に係るデータ転送制御装置におけるスヌープ部の構成を示す図である。
図4】本発明の一実施形態に係るデータ転送制御装置のアドレステーブル及び対象データ記憶部を説明するための図である。
図5】本発明の一実施形態に係るデータ転送制御装置におけるコントローラの動作を説明するための状態遷移図である。
図6】本発明の一実施形態に係るデータ転送制御装置におけるコントローラの動作を説明するためのフローチャートである。
図7】本発明の一実施形態に係るデータ転送制御装置におけるコントローラの動作を説明するためのフローチャートである。
図8】本発明の一実施形態に係るコンピュータシステムにおけるデータ転送処理の一例を説明するための図である。
【発明を実施するための形態】
【0023】
次に、本発明の実施の形態について、図面を参照しつつ説明する。
【0024】
図1は、本発明の一実施形態に係るコンピュータシステムの概略構成の一例を示す図である。同図に示すように、本実施形態に係るコンピュータシステム1は、例えば、バス10と、プロセッサ20と、記憶装置30と、DMAコントローラ40と、周辺機器50と、データ転送制御装置70とを含んで構成される。
【0025】
バス10は、コンピュータシステム1におけるプロセッサ20等のコンポーネント間でデータを伝送するための各種の信号線を含む伝送路である。本例では、バス10は、コンポーネントのアドレス情報を伝送するためのアドレス線ADDと、コンポーネントにデータを伝送するためのデータ線DATAと、コンポーネントに対する制御情報を伝送するための制御線CNTとを含んで構成される(図2参照)。バス10は、例えば、シリアル方式であってもパラレル方式であっても良い。また、本開示では、バス10は、コンピュータシステム1における内部バスであるものとして説明するが、これに限られるものではなく、例えば、コンピュータシステム1が外部の機器と接続するための外部バスや拡張バスであっても良い。
【0026】
プロセッサ20は、例えばCPUやマイクロプロセッサであり、コンピュータシステム1全体の制御を行うコンポーネントである。即ち、プロセッサ20は、典型的には、記憶装置30にロードされたプログラムに従って、他のコンポーネントに対して制御を行うことによりコンピュータシステム1に所望の機能を実現する。プロセッサ20は、典型的には、バス10を制御するバスマスタデバイスとして機能し、従って、バス10及びデータ転送制御装置70を介してバススレーブデバイスの制御を行うバスマスタ61を含んで構成される。本実施形態では、バスマスタ61は、バス10に接続される。
【0027】
記憶装置30は、典型的には、揮発性メモリ(例えばRAM等)、書き換え可能な不揮発性メモリ(例えばフラッシュメモリ等)又はこれらの組み合わせからなる1次記憶装置であり、プロセッサ20の利用に供されるデータを保持する。記憶装置30は、典型的には、バススレーブデバイスとして機能し、従って、バス10及びデータ転送制御装置70を介してバスマスタデバイスによって制御されるバススレーブ62を含んで構成される。本実施形態では、バススレーブ62は、データ転送制御装置70を介してバス10に接続される。
【0028】
DMAコントローラ40は、プロセッサ20の制御の下、記憶装置30や周辺機器50といったコンポーネント間で直接的にデータの転送制御を行うコンポーネントである。DMAコントローラ40は、典型的には、バス10を制御するバスマスタデバイスとして機能するとともに、バスマスタデバイスであるプロセッサ20等のバススレーブデバイスとして機能し得ることから、バスマスタ61及びバススレーブ62を含んで構成される。
【0029】
周辺機器50は、例えば、通信装置や入出力装置、二次記憶装置、外部I/Oインタフェース等である。本例の周辺機器50は、バス10を制御するバスマスタデバイスとして機能するとともに、バスマスタデバイスであるプロセッサ20等のバススレーブデバイスとして機能し得ることから、バスマスタ61及びバススレーブ62を含んで構成されている。なお、周辺機器50が、バスマスタデバイスとしてのみ機能する場合は、バススレーブ62は設けられなくても良いし、また、バススレーブデバイスとしてのみ機能する場合は、バスマスタ61は設けられなくても良い。
【0030】
データ転送制御装置70は、バスマスタデバイスによるバススレーブデバイスへのデータ伝送をさらに効率的に制御するためのコンポーネントである。本実施形態では、データ転送制御装置70は、バス10と各バススレーブデバイスのバススレーブ62との間に設けられる。データ転送制御装置70は、バスマスタデバイスが指示する例えば書き込み対象のデータのターゲット領域が、バススレーブデバイスのバススレーブ62における特定の領域(以下、「再転送対象領域」という。)に一致するか否かを判断し、該ターゲット領域が再転送対象領域に一致すると判断する場合、該データを保持する。再転送対象領域は、例えば、コンピュータシステム内で使用頻度が高いデータ(プログラムを含む。)が格納される領域である。データ転送制御装置70は、例えば、バススレーブデバイスのバススレーブ62から該同一のデータに対する再転送の要求がある場合、バスマスタデバイスに代わって、保持したデータを該バススレーブ62に出力し、データの再転送を実現する。
【0031】
データ転送制御装置70がデータの再転送を実行している間、バススレーブデバイスは該データの再転送の処理によって占有される。斯かる状態で、データ転送制御装置70がバスマスタデバイスから新たな制御指示を受けた場合、データ転送制御装置70は、該データの再転送の処理に占有されているバススレーブデバイスに代わって、例えば、バススレーブデバイスがビジー状態であることを示す応答をバスマスタデバイスに出力する。
【0032】
なお、本例のコンピュータシステム1において、バススレーブデバイスに応じた数のデータ転送制御装置70が設けられているが、これに限られるものではなく、必要なバススレーブデバイスに対してのみに設けられるようにして良い。また、本例において、再転送の要求は、典型的には、バススレーブ62から出力されるが、これに限られるものではない。
【0033】
図2は、本発明の一実施形態に係るデータ転送制御装置の概略構成を示す図である。同図に示すように、データ転送制御装置70は、例えば、スヌープ部71と、コントローラ72と、選択回路73及び74とを含んで構成される。本例においては、プロセッサ20と記憶装置30との間を担うデータ転送装置70について説明するが、他のバススレーブデバイスと他のバスマスタデバイスとの間の制御についても同様である。
【0034】
スヌープ部71は、バスマスタ61からバス10を介して伝送されるリクエスト信号REQ0を監視し、所定の条件の下、該リクエスト信号REQ0の内容を記憶し、また、該記憶した内容をコントローラ72に出力する。具体的には、スヌープ部71は、バスマスタ61からバス10を介して伝送されるリクエスト信号REQ0が示すターゲット領域が再転送対象領域に一致するか否かを判断し、該ターゲット領域が該再転送対象領域に一致すると判断する場合、該リクエスト信号REQ0に従う対象データを記憶する。また、スヌープ部71は、再転送対象領域を示すアドレス情報と該記憶した対象データとに基づいて、再転送信号RETRANSを生成し、該生成した再転送信号RETRANSをコントローラ72に出力する。再転送信号RETRANSは、例えば、再転送されるべき対象データ、対象アドレス及びコマンド等を含む。
【0035】
コントローラ72は、バスマスタ61及びバススレーブ62から受ける信号入力に基づいて、バスマスタ61及びバススレーブ62に対する信号出力を制御する。具体的には、コントローラ72は、再転送を行うか否かを示す設定を有する。コントローラ72は、該再転送が有効であると設定されている場合、バススレーブ62に対して対象データの再転送を実行する。コントローラ72は、該再転送の処理として、バススレーブ62から出力される再転送要求信号REQ_RETRANSに基づいて、スヌープ部71から出力される再転送信号RETRANSをリクエスト信号REQ1として、選択回路73に出力するとともに、選択信号SEL1の電位を電源線の電位“即ち、H”として、該信号を選択回路73に出力する。なお、コントローラ72における再転送の設定は、予め所定の設定に定められていても良いし、コントローラ72によって動的にその有効/無効が切り替えられても良い。
【0036】
また、コントローラ72は、該データの再転送を実行している間に、バスマスタ61からバス10を介して出力されるリクエスト信号REQ0を受ける場合、バスマスタ61に対してバススレーブ62がビジー状態であることを知らせるために、出力レスポンス信号RES1を生成し、該信号を選択回路74に出力する一方で、選択信号SEL2の電位を“H”として該信号を選択回路74に出力する。なお、コントローラ72は、上述した以外の場合においては、選択信号SEL1及びSEL2の電位を接地線の電位即ち、“L”として、該信号を選択回路73及び74に出力する。
【0037】
選択回路73は、例えば、マルチプレクサを含んで構成され、コントローラ72から出力される選択信号SEL1に基づいて、コントローラ72から出力されるリクエスト信号REQ1と、バスマスタ61からバスを10介して出力されるリクエスト信号REQ0とのうち、いずれか一方を選択し、リクエスト信号REQとして、該信号をバススレーブ62に出力する。具体的には、選択回路73は、選択信号SEL1の電位が“H”である場合、リクエスト信号REQ1を選択し、リクエスト信号REQとして該信号をバススレーブ62に出力する一方で、選択信号SEL1の電位が“L”である場合、リクエスト信号REQ0を選択し、リクエスト信号REQとして該信号をバススレーブ62に出力する。
【0038】
選択回路74は、例えば、マルチプレクサを含んで構成され、コントローラ72から出力される選択信号SEL2に基づいて、コントローラ72から出力されるレスポンス信号RES1と、バススレーブ62から出力されるレスポンス信号RES0とのうち、いずれか一方を選択し、レスポンス信号RESとして、バス10を介して該信号をバスマスタ61に出力する。具体的には、選択回路74は、選択信号SEL2の電位が“H”である場合、レスポンス信号RES1を選択し、レスポンス信号RESとしてバス10を介して該信号をバスマスタ61に出力する一方で、選択信号SEL2の電位が“L”である場合、レスポンス信号RES0を選択し、レスポンス信号RESとしてバス10を介して該信号をバスマスタ61に出力する。
【0039】
図3は、本発明の一実施形態に係るデータ転送制御装置におけるスヌープ部の構成を示す図である。同図に示すように、本実施形態のスヌープ部71は、例えば、アドレステーブル710と、比較器711と、データ記憶制御部712と、データ記憶部713とを含んで構成される。なお、同図において、リクエスト信号REQ0は、制御対象を示すリクエストアドレス信号REQ0_ADDと、対象データを示すリクエストデータ信号REQ0_DATAと、制御内容を示すリクエスト制御信号REQ0_CNTとの信号の総称である。また、同図において、再転送信号RETRANSは、制御対象を示す再転送アドレス信号RETRANS_ADDと、対象データを示す再転送データ信号RETRANS_DATAとの信号の総称である。
【0040】
アドレステーブル710は、再転送対象領域を示す先頭アドレスを保持するテーブルである。また、アドレステーブル710は、該領域を示すアドレスに基づく再転送アドレス信号RETRANS_ADDを比較器711、データ記憶部713及びコントローラ72に出力する。アドレステーブル710の内容に関しては、図4を参照して説明される。
【0041】
比較器711は、バスマスタ61からバス10を介して出力されるリクエストアドレス信号REQ0_ADDが示すターゲット領域と、再転送アドレス信号RETRANS_ADDが示すターゲット領域とを比較し、これらのターゲット領域が一致するか否かを判断する。比較器711は、該ターゲット領域が一致すると判断する場合、一致信号MATCHをデータ記憶制御部712に出力する。
【0042】
データ記憶制御部712は、比較器711から出力される一致信号MATCHと、バスマスタ61からバス10を介して出力されるリクエスト制御信号REQ0_CNT及びリクエストデータ信号REQ0_DATAとに基づいて、イネーブル信号ENAを生成し、該イネーブル信号ENAをデータ記憶部713に出力する。具体的には、データ記憶制御部712は、リクエスト制御信号REQ0_CNTが示す内容がバススレーブ62に対する書き込み要求であるか否かを判断し、また、比較器711から一致信号MATCHが出力されているか否かを判断し、さらに、リクエストデータ信号REQ0_DATAが示す対象データが書き込み要求に対応する有効な内容であるか否かを判断する。データ記憶制御部712は、リクエスト制御信号REQ0_CNTが示す内容がバススレーブ62に対する書き込み要求であると判断し、かつ、比較器711から一致信号MATCHが出力されていると判断し、かつ、リクエストデータ信号REQ0_DATAが示す対象データが書き込み要求に対応する有効な内容であると判断する場合、イネーブル信号ENAを生成し該信号をデータ記憶部713に出力する。
【0043】
データ記憶部713は、所定の記憶領域を有し、再転送対象領域を示すアドレスに対応する対象データを該所定の記憶領域に記憶する。また、データ記憶部713は、データ記憶制御部712から出力されるイネーブル信号ENAに基づいて、アドレステーブル710から出力される再転送アドレス信号RETRANS_ADDが示すアドレスに対応する該記憶した対象データの状態をバスマスタ61からバス10を介して出力されるリクエスト信号REQ0_DATAが示す対象データの状態に更新する。具体的には、データ記憶部713は、データ記憶制御部712から出力されるイネーブル信号ENAの電位が例えば“H”の間、アドレステーブル710から出力される再転送アドレス信号RETRANS_ADDが示すアドレスに対応する該記憶した対象データの状態をバスマスタ61からバス10を介して出力されるリクエスト信号REQ0_DATAが示す対象データに更新する。さらに、データ記憶部713は、該更新した対象データを再転送データ信号RETRANS_DATAとして、該信号をコントローラ72に出力する。
【0044】
図4は、本発明の一実施形態に係るデータ転送制御装置のアドレステーブル及び対象データ記憶部を説明するための図である。同図に示すように、アドレステーブル710は、典型的には、再転送対象領域先頭アドレス欄7101とデータアドレス欄7102とを含んで構成される。再転送対象領域先頭アドレス欄7101は、コンピュータシステム内で使用頻度が高いデータ等が格納される記憶領域の先頭アドレスを保持する。データアドレス欄7102は、再転送対象領域とそこに格納されるデータエンティティとが関連付けられるように、該プログラム等のデータエンティティを格納しているデータ記憶部713内の対応する領域の先頭アドレスを保持する。
【0045】
図5は、本発明の一実施形態に係るデータ転送制御装置におけるコントローラの動作を説明するための状態遷移図である。同図を参照して、まず、スタンバイ状態(S501)において、コントローラ72は、再転送が有効であると設定されている場合、バススレーブ62から出力される再転送要求信号REQ_RETRANSに基づいて再転送が要求されているか否かを判断する。
【0046】
コントローラ72は、バススレーブ62に対する再転送が有効であり、かつ、バススレーブ62から再転送が要求されていると判断する場合、バスマスタ61からバス10を介して出力されるリクエスト信号REQ0と、バススレーブ62から出力されるレスポンス信号RES0との状態に基づいて、バスマスタ61がバススレーブ62に対してアクセスしているか否かをさらに判断する。コントローラ72は、バスマスタ61がバススレーブ62に対してアクセスしていないと判断する場合、コントローラ72は、スタンバイ状態(S501)から再転送実行状態(S503)に遷移する。一方、コントローラ72は、バスマスタ61がバススレーブ62に対してアクセスしていると判断する場合、コントローラ72は、スタンバイ状態(S501)からバスアクセス実行状態(S502)に遷移する。なお、スタンバイ状態(S501)において、スタンバイ状態(S501)を維持する場合のコントローラ72の動作の詳細に関しては後述する。
【0047】
バスアクセス実行状態(S502)において、コントローラ72は、バスマスタ61からバス10を介して出力されるリクエスト信号REQ0と、バススレーブ62から出力されるレスポンス信号RES0とに基づいて、バススレーブ62に対するバスマスタ61のアクセスが終了したか否かを判断する。コントローラ72は、バススレーブ62に対するバスマスタ61のアクセスが終了していないと判断する場合、コントローラ72の状態はバスアクセス実行状態(S502)を維持する。一方、コントローラ72は、バススレーブ62に対するバスマスタ61のアクセスが終了したと判断する場合、コントローラ72は、バスアクセス実行状態(S502)から再転送実行状態(S503)に遷移する。なお、バスアクセス実行状態(S502)において、バスアクセス実行状態(S502)を維持する場合のコントローラ72の動作の詳細に関しては後述する。
【0048】
再転送実行状態(S503)において、コントローラ72は、バススレーブ62から出力されるレスポンス信号RES0に基づいて、バススレーブ62に対する再転送が終了したか否かを判断する。コントローラ72は、バススレーブ62に対する再転送が終了していないと判断する場合、コントローラ72は、再転送実行状態(S503)を維持する。一方、コントローラ72は、バススレーブ62に対する再転送が終了したと判断する場合、コントローラ72は、スタンバイ状態(S501)に遷移する。なお、再転送実行状態(S503)において、再転送実行状態(S503)を維持する場合のコントローラ72の動作の詳細に関しては後述する。
【0049】
図6は、本発明の一実施形態に係るデータ転送制御装置におけるコントローラの動作を説明するためのフローチャートである。具体的には、図6は、本発明の一実施形態に係るデータ転送制御装置のスタンバイ状態及びバスアクセス実行状態において、該状態を維持する場合のコントローラの動作を説明するためのフローチャートである。
【0050】
同図を参照して、スタンバイ状態及びバスアクセス実行状態において、まず、コントローラ72は、選択信号SELの論理を“L”として、該信号を選択回路73及び74に出力する(S601)。
【0051】
コントローラ72は、次に、バスマスタ61から出力されるリクエスト信号REQ0の状態を確認し、バスマスタ61のアクセス先(即ち、ターゲット領域)がバススレーブ62の再転送対象領域であるか否かを判断する(S602)。コントローラ72は、バスマスタ61のアクセス先が再転送対象領域でないと判断する場合(S602のNo)、選択回路73を介してバスマスタ61から出力されたリクエスト信号REQ0をバススレーブ62に出力する(S604)。
【0052】
一方、コントローラ72がバスマスタ61のアクセス先が再転送対象領域であると判断する場合(S602のYes)コントローラ72は、スヌープ部71から出力されるバスマスタ61からバススレーブ62への対象データと、再転送対象領域のアドレスとを示す再転送信号RETARNSを受け(S603)、続いて、バスマスタ61から出力されたリクエスト信号REQ0をバススレーブ62に出力する(S604)。
【0053】
そして、コントローラ72は、選択回路74を介して、バススレーブ62から出力されたレスポンス信号RES0をバスマスタ61に出力する(S605)。
【0054】
これにより、コントローラ72は、バスマスタ61が出力する制御指示をバススレーブ62に伝送するとともに、バススレーブ62が出力する応答をバスマスタ61に伝送することができる。また、コントローラ72は、バスマスタ61が出力する制御指示が示すターゲット領域が再転送対象領域であるか否かを判断し、該ターゲット領域が再転送領域であると判断する場合、コントローラ72は、該再転送領域を示すアドレスと、該制御指示が示す対象データとを受けることによって、再転送の要求に備えることができる。
【0055】
図7は、本発明の一実施形態に係るデータ転送制御装置におけるコントローラの動作を説明するためのフローチャートである。具体的には、本発明の一実施形態に係るデータ転送制御装置の再転送実行状態において、該状態を維持する場合のコントローラの動作を説明するためのフローチャートである。
【0056】
同図を参照して、コントローラ72は、再転送実行状態において、まず、選択信号SELの論理を“H”として、該信号を選択回路73及び74に出力する(S701)。コントローラ72は、次に、選択回路73を介してスヌープ部71から出力された再転送信号RETRANSをリクエスト信号REQ1として、バススレーブ62に出力する(S702)。
【0057】
コントローラ72は、バスマスタ61から出力されるリクエスト信号REQ0の状態を確認し、バススレーブ62に対してバスマスタ61がアクセスしているか否かを判断する(S703)。コントローラ72は、バスマスタ61がバススレーブ62に対してアクセスしていないと判断する場合(S703のNo)、バススレーブ62から出力されるレスポンス信号RES0をバスマスタ61に出力し(S706)、再転送の制御を完了する。一方、コントローラ72は、バスマスタ61がバススレーブ62に対してアクセスしていると判断する場合(S703のYes)、バススレーブ62が出力するレスポンス信号RES0に代えて、選択回路74を介してレスポンス信号RES1をバスマスタ61に出力する(S704)。続いて、コントローラ72は、バスマスタ61から出力されるリクエスト信号REQ0の状態を確認し、バススレーブ62に対するバスマスタ61のアクセスが終了したか否かを判断する(S705)。
【0058】
コントローラ72は、バススレーブ62に対するバスマスタ61のアクセスが終了していないと判断する場合(S705のNo)、ステップS704の処理に戻る。一方、コントローラ72は、バススレーブ62に対するバスマスタ61のアクセスが終了したと判断する場合(S705のYes)、再転送の制御を完了する。
【0059】
このようにして、コントローラ72は、スヌープ部71が出力する再転送信号RETRANSが示す対象データをリクエスト信号REQ1として、バススレーブ62の再転送領域に出力することによって、バススレーブ62に対して再転送を実行するとともに、該再転送の処理を終えたバススレーブ62が出力する応答をバスマスタ61に伝送することができる。また、コントローラ72は、該再転送の実行中に、バスマスタ61のバススレーブ62に対するアクセスがあるか否かを判断し、該アクセスがあると判断する場合、コントローラ72は、バススレーブ62に代わって、バスマスタ61に対して応答を出力することができる。
【0060】
以上のように構成されるコンピュータシステム1においては、データ転送制御装置70は、バスマスタデバイスが指示する対象データのターゲット領域がバススレーブデバイスのバススレーブ62における再転送対象領域であるか否かを判断し、該ターゲット領域が該再転送対象領域であると判断する場合、データ転送制御装置70は該再転送対象領域に対する対象データを保存する。そして、データ転送制御装置70は、再転送の要求を受けた場合、バスマスタデバイスに代わって該保存した対象データをバススレーブデバイスのバススレーブ62に出力する。
【0061】
従って、本実施形態によれば、コンピュータシステム1におけるデータ転送制御装置70は、バス10、バスマスタデバイス及びバススレーブデバイスの回路を新たに設計せずに、バスマスタデバイスのデータ転送処理負荷とバス10の使用率との低減を実現することができる。また、データ転送制御装置70は、コンピュータシステム1におけるバス10の使用率に影響を与えずに、再転送の処理を行うことができる。
【0062】
図8は、本発明の一実施形態に係るコンピュータシステムにおけるデータ転送処理の一例を説明するための図である。即ち、同図は、プロセッサ20がバスマスタデバイスであり、DMAコントローラ40がこれに対するバススレーブデバイスとなり、さらに、DMAコントローラ40がバスマスタデバイスであり、記憶装置30がこれに対するバススレーブデバイスであるときのデータ転送処理を説明している。なお、周辺機器50及びデータ転送制御装置70の構成及び動作に関しては、上述した実施形態と同じであるため、その説明を省略する。
【0063】
プロセッサ20は、記憶装置30に対する制御指示としてリクエスト信号REQ2を生成し、データ転送制御装置70に出力する。また、プロセッサ20は、データ転送制御装置70から出力されるDMAコントローラ40の処理の終了を示すレスポンス信号RES2を受ける。なお、本例においては、プロセッサ20は、記憶装置30に対する制御指示を出力するが、これに限られるものではなく、例えば周辺機器50に対する制御指示を出力しても良い。
【0064】
記憶装置30は、DMAコントローラ40のバスマスタ61から出力されるリクエスト信号REQ3に基づいて、該信号が示す記憶装置30のターゲット領域に、該信号が示す書き込み対象のデータを保持する。また、記憶装置30は、DMAコントローラ40に対する応答として、レスポンス信号RES3を生成し該信号をDMAコントローラ40のバスマスタ61に出力する。
【0065】
DMAコントローラ40のバススレーブ62は、データ転送制御装置70から出力されるリクエスト信号REQに基づいて、該信号が示すバススレーブ62のターゲット領域に該信号が示す書き込み対象のデータを保持するとともに、プロセッサ20から制御指示を受けたことを示す信号を信号線W_SIGを介して、DMAコントローラ40のバスマスタ61に伝送する。また、DMAコントローラ40のバススレーブ62は、DMAコントローラ40のバスマスタ61から信号線W_SIGを介して、該制御指示に関する処理の終了を示す信号を受ける。DMAコントローラ40のバススレーブ62は、該信号に基づいて、バススレーブ62に保持された内容をリセットするとともに、プロセッサ20への応答としてレスポンス信号RES0を生成する。そしてバススレーブ62は、レスポンス信号RES0をデータ転送制御装置70に出力するとともに、再転送要求信号REQ_RETRANSを生成し、該信号をデータ転送制御装置70に出力し、再転送対象領域に対するデータの再転送を要求する。
【0066】
DMAコントローラ40のバスマスタ61は、DMAコントローラ40のバススレーブ62から信号線W_SIGを介して伝送されるプロセッサ20から制御指示を受けたことを示す信号に基づいて、DMAコントローラ40のバススレーブ62に保持されたデータを参照し、記憶装置30に対する制御指示を示すリクエスト信号REQ3を生成し、リクエスト信号REQ3を記憶装置30に出力する。また、DMAコントローラ40のバスマスタ61は、記憶装置30から出力されるレスポンス信号RES3に基づいて、プロセッサ20から受けた制御指示に関する処理が終了したことを示す信号を信号線W_SIGを介してDMAコントローラ40のバススレーブ62に伝送する。なお、本例においては、DMAコントローラ40のバスマスタ61は、記憶装置30に対して制御指示を出力するが、これに限られるものではなく、例えば周辺機器50に対して制御指示を出力しても良い。
【0067】
本実施形態によれば、データ転送制御装置70は、プロセッサ20が指示する対象データのターゲット領域がDMAコントローラ40のバススレーブ62における再転送対象領域であるか否かを判断し、該ターゲット領域が該再転送対象領域であると判断する場合、データ転送制御装置70は該再転送対象領域に対する対象データを保存する。そして、データ転送制御装置70は、DMAコントローラ40のバススレーブ62から再転送の要求を受けた場合、プロセッサ20に代わって該保存した対象データをDMAコントローラ40のバススレーブ62に出力する。従って、本変形例によれば、コンピュータシステム1Aにおけるデータ転送制御装置70は、バス10、プロセッサ20及びDMAコントローラ40の回路を新たに設計せずに、プロセッサ20のデータ転送処理負荷とバス10の使用率との低減を実現することができる。また、データ転送制御装置70は、コンピュータシステム1Aにおけるバス10の使用率に影響を与えずに、再転送の処理を行うことができる。さらに、本実施形態によれば、データ転送制御装置70は、DMAコントローラ40の処理の終了時にリセットされるDMAコントローラ40のバススレーブ62の内容を保持し、DMAコントローラ40の処理の終了時にプロセッサ20に代わって、DMAコントローラ40のバススレーブ62に該保持した内容を再転送することによって、プロセッサ20のデータ転送処理負荷の低減を実現することができる。
【0068】
上記各実施形態は、本発明を説明するための例示であり、本発明をこれらの実施形態にのみ限定する趣旨ではない。本発明は、その要旨を逸脱しない限り、さまざまな形態で実施することができる。
【0069】
例えば、本明細書に開示される方法においては、その結果に矛盾が生じない限り、ステップ、動作又は機能を並行して又は異なる順に実施しても良い。説明されたステップ、動作及び機能は、単なる例として提供されており、ステップ、動作及び機能のうちのいくつかは、発明の要旨を逸脱しない範囲で、省略でき、また、互いに結合させることで一つのものとしてもよく、また、他のステップ、動作又は機能を追加してもよい。
【0070】
また、本明細書では、さまざまな実施形態が開示されているが、一の実施形態における特定のフィーチャ(技術的事項)を適宜改良しながら、他の実施形態に追加し、又は該他の実施形態における特定のフィーチャと置換することができ、そのような形態も本発明の要旨に含まれる。
【産業上の利用可能性】
【0071】
本発明は、バスを介してデータ転送を行うコンピュータシステムの分野に広く利用することができる。
【符号の説明】
【0072】
1…コンピュータシステム
10…バス
20…プロセッサ
30…記憶装置
40…DMAコントローラ
50…周辺機器
61…バスマスタ
62…バススレーブ
70…データ転送制御装置
71…スヌープ部
72…コントローラ
73,74…選択回路
710…アドレステーブル
711…比較器
712…データ記憶制御部
713…データ記憶部
7101…再転送対象領域先頭アドレス欄
7102…データアドレス欄
図1
図2
図3
図4
図5
図6
図7
図8