(57)【特許請求の範囲】
【請求項１】
演算装置と、
上記演算装置に接続された主記憶装置と、
上記演算装置に接続された周辺制御装置と、
上記周辺制御装置に接続され、レジスタ手段を含む周辺装置とを備えたデータ転送システムにおいて、
上記周辺装置は、上記レジスタ手段に格納されたデータを、上記主記憶装置又は上記演算装置の所定の記憶領域にＤＭＡ（Direct Memory Access）転送し、
上記演算装置は、上記周辺装置にアクセスすることなく、上記記憶領域にＤＭＡ転送されたデータを読み出し、
上記周辺装置は、上記ＤＭＡ転送を行ったことを通知するための転送通知データを上記レジスタ手段に格納した後に、上記レジスタ手段に格納されかつ上記転送通知データを含むデータを上記記憶領域にＤＭＡ転送し、
上記演算装置は、上記記憶領域にＤＭＡ転送された転送通知データを読み出し、当該読み出された転送通知データに基づいて、上記周辺装置がＤＭＡ転送を行った否かを判断し、上記周辺装置がＤＭＡ転送を行っていないときは、上記記憶領域にＤＭＡ転送された他のデータを読み出さないことを特徴とするデータ転送システム。
【請求項２】
上記演算装置は、上記記憶領域にＤＭＡ転送されたデータの読み出しを終了したとき、上記記憶領域に格納された転送通知データをリセットするように制御するとともに、上記終了を通知する終了通知信号を上記周辺装置に送信し、
上記周辺装置は、上記終了通知信号に応答して、上記レジスタ手段に格納された転送通知データをリセットすることを特徴とする請求項１記載のデータ転送システム。
【請求項３】
上記周辺装置は、上記演算装置に対して所定の割込処理の実行を要求する割込要求信号を送信する前に、上記レジスタ手段に格納されたデータを、上記記憶領域にＤＭＡ転送することを特徴とする請求項１又は２記載のデータ転送システム。
【請求項４】
上記周辺装置は、上記レジスタ手段内のデータが変更されたとき、当該変更されたデータを上記記憶領域にＤＭＡ転送することを特徴とする請求項１乃至３のうちのいずれか１つに記載のデータ転送システム。
【請求項５】
上記演算装置は、データを所定の転送単位毎に転送するためのストリング命令を繰り返して実行するための命令コード群を、上記データをＤＭＡ転送するための１つの命令コードに変換し、上記命令コードを実行することにより、上記周辺装置を、上記レジスタ手段に格納されたデータを上記記憶領域にＤＭＡ転送するように制御することを特徴とする請求項１乃至４のうちのいずれか１つに記載のデータ転送システム。
【請求項６】
演算装置と、
上記演算装置に接続された主記憶装置と、
上記演算装置に接続された周辺制御装置と、
上記周辺制御装置に接続され、レジスタ手段を含む周辺装置とを備えたデータ転送システムのためのデータ転送方法において、
上記周辺装置が、上記レジスタ手段に格納されたデータを、上記主記憶装置又は上記演算装置の所定の記憶領域にＤＭＡ（Direct Memory Access）転送する転送ステップと、
上記演算装置が、上記周辺装置にアクセスすることなく、上記記憶領域にＤＭＡ転送されたデータを読み出す読出ステップとを含み、
上記転送ステップは、上記周辺装置が、上記ＤＭＡ転送を行ったことを通知するための転送通知データを上記レジスタ手段に格納した後に、上記レジスタ手段に格納されかつ上記転送通知データを含むデータを上記記憶領域にＤＭＡ転送するステップを含み、
上記データ送信方法は、
上記演算装置が、上記記憶領域にＤＭＡ転送された転送通知データを読み出し、当該読み出された転送通知データに基づいて、上記周辺装置がＤＭＡ転送を行った否かを判断し、上記周辺装置がＤＭＡ転送を行っていないときは、上記記憶領域にＤＭＡ転送された他のデータを読み出さないステップをさらに含むことを特徴とするデータ転送方法。
【請求項７】
上記演算装置が、上記記憶領域にＤＭＡ転送されたデータの読み出しを終了したとき、上記記憶領域に格納された転送通知データをリセットするように制御するとともに、上記終了を通知する終了通知信号を上記周辺装置に送信するステップと、
上記周辺装置が、上記終了通知信号に応答して、上記レジスタ手段に格納された転送通知データをリセットするステップとをさらに含むことを特徴とする請求項６記載のデータ転送方法。
【請求項８】
上記周辺装置が、上記演算装置に対して所定の割込処理の実行を要求する割込要求信号を送信する前に、上記レジスタ手段に格納されたデータを、上記記憶領域にＤＭＡ転送するステップをさらに含むことを特徴とする請求項６又は７記載のデータ転送方法。
【請求項９】
上記周辺装置が、上記レジスタ手段内のデータが変更されたとき、当該変更されたデータを上記記憶領域にＤＭＡ転送するステップをさらに含むことを特徴とする請求項６乃至８のうちのいずれか１つに記載のデータ転送方法。
【請求項１０】
上記演算装置が、データを所定の転送単位毎に転送するためのストリング命令を繰り返して実行するための命令コード群を、上記データをＤＭＡ転送するための１つの命令コードに変換し、上記命令コードを実行することにより、上記周辺装置を、上記レジスタ手段に格納されたデータを上記記憶領域にＤＭＡ転送するように制御するステップをさらに含むことを特徴とする請求項６乃至９のうちのいずれか１つに記載のデータ転送方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ転送システム及びデータ転送方法に関する。
【背景技術】
【０００２】
図１０は、従来技術に係るデータ転送システムの構成を示すブロック図である。図１０のデータ転送システムは、例えばＣＰＵ（Central Processing Unit）である演算装置１Ｐと、演算装置１Ｐに接続された主記憶装置２Ｐと、演算装置１Ｐに接続されたノースブリッジなどの周辺制御装置３と、周辺制御装置３に接続された拡張ボードなどの周辺装置４Ｐ及び５Ｐとを備えて構成される。さらに、周辺装置４Ｐは、当該周辺装置４Ｐの状態を示すフラグ、データ転送先のアドレス、データ転送元のアドレス、及び割込要因を示す割込ステータスデータなどの周辺装置４Ｐの動作に必要とされるデータを格納するレジスタセット４Ｐｒを含む。周辺装置５Ｐも、周辺装置４Ｐと同様にレジスタセット５Ｐｒを含む。
【０００３】
図１１は、図１０のデータ転送システムの第１の動作例を示すシーケンス図である。図１１において、周辺装置４Ｐにおいて割込要因が発生したとき、周辺装置４Ｐは待機モードから動作モードに遷移し、割込要因を示す割込ステータスデータをレジスタセット４Ｐｒに格納するとともに、割込処理の実行を要求する割込要求信号を周辺制御装置３に送信する。そして、周辺装置４Ｐは待機モードに遷移する。割込要求信号に応答して、周辺制御装置３は、受信した割込要求信号を演算装置１Ｐに転送する。さらに、演算装置１Ｐは、割込要求信号に応答して、割込処理を実行することにより、レジスタセット４Ｐｒから割込ステータスデータを読み出すことを要求する読出要求信号を周辺制御装置３に送信する。
【０００４】
周辺制御装置３は、演算装置１Ｐから読出要求信号を受信すると、周辺装置４Ｐを動作モードに遷移するように制御し、受信した読出要求信号を周辺装置４Ｐに転送する。動作モードに遷移した周辺装置４Ｐは、読出要求信号に応答して、レジスタセット４Ｐｒ内のデータを読み出して読出データとして周辺制御装置３に送信し、待機モードに遷移する。周辺制御装置３は、受信した読出データを演算装置１Ｐに転送する。そして、演算装置１Ｐは、受信した読出データに基づいて割込要因を判断する。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
一般に、図１０の従来技術に係るデータ転送システムにおいて、周辺制御装置３と周辺装置４Ｐとの間のデータ転送速度は、演算装置１Ｐと主記憶装置２Ｐとの間のデータ転送速度の１００分の１程度であり、非常に遅い。さらに、図１１のシーケンス図において、周辺制御装置３が周辺装置４Ｐから読出データを受信するときのデータサイズは、周辺装置４Ｐのメモリサイズに依存し、例えば４バイトである。このため、２５６バイトの読出データを周辺装置４Ｐから制御装置３を介して演算装置１Ｐに転送するためには、周辺装置４Ｐと周辺制御装置３との間、及び周辺制御装置３と演算装置１Ｐとの間でそれぞれ６４回のデータ転送を実行する必要がある。このとき、周辺装置４Ｐにおいて、４バイトの読出データの送信毎に待機モードと動作モードとの間でのモードの切換が行われるので、消費電力が増加するという課題があった。
【０００６】
本発明の目的は以上の問題点を解決し、従来技術に比較して演算装置から周辺装置へのアクセス時間及びアクセス回数を削減し、消費電力を低減できるデータ転送システム及びデータ転送方法を提供することにある。
【課題を解決するための手段】
【０００７】
第１の発明に係るデータ転送システムは、
演算装置と、
上記演算装置に接続された主記憶装置と、
上記演算装置に接続された周辺制御装置と、
上記周辺制御装置に接続され、レジスタ手段を含む周辺装置とを備えたデータ転送システムにおいて、
上記周辺装置は、上記レジスタ手段に格納されたデータを、上記主記憶装置又は上記演算装置の所定の記憶領域にＤＭＡ（Direct Memory Access）転送し、
上記演算装置は、上記周辺装置にアクセスすることなく、上記記憶領域にＤＭＡ転送されたデータを読み出すことを特徴とする。
【０００８】
上記データ転送システムにおいて、
上記周辺装置は、上記ＤＭＡ転送を行ったことを通知するための転送通知データを上記レジスタ手段に格納した後に、上記レジスタ手段に格納されかつ上記転送通知データを含むデータを上記記憶領域にＤＭＡ転送し、
上記演算装置は、上記記憶領域にＤＭＡ転送された転送通知データを読み出し、当該読み出された転送通知データに基づいて、上記周辺装置がＤＭＡ転送を行った否かを判断し、上記周辺装置がＤＭＡ転送を行っていないときは、上記記憶領域にＤＭＡ転送された他のデータを読み出さないことを特徴とする。
【０００９】
また、上記データ転送システムにおいて、
上記演算装置は、上記記憶領域にＤＭＡ転送されたデータの読み出しを終了したとき、上記記憶領域に格納された転送通知データをリセットするように制御するとともに、上記終了を通知する終了通知信号を上記周辺装置に送信し、
上記周辺装置は、上記終了通知信号に応答して、上記レジスタ手段に格納された転送通知データをリセットすることを特徴とする。
【００１０】
さらに、上記データ転送システムにおいて、上記周辺装置は、上記演算装置に対して所定の割込処理の実行を要求する割込要求信号を送信する前に、上記レジスタ手段に格納されたデータを、上記記憶領域にＤＭＡ転送することを特徴とする。
【００１１】
またさらに、上記データ転送システムにおいて、上記周辺装置は、上記レジスタ手段内のデータが変更されたとき、当該変更されたデータを上記記憶領域にＤＭＡ転送することを特徴とする。
【００１２】
また、上記データ転送システムにおいて、上記演算装置は、データを所定の転送単位毎に転送するためのストリング命令を繰り返して実行するための命令コード群を、上記データをＤＭＡ転送するための１つの命令コードに変換し、上記命令コードを実行することにより、上記周辺装置を、上記レジスタ手段に格納されたデータを上記記憶領域にＤＭＡ転送するように制御することを特徴とする。
【００１３】
第２の発明に係るデータ転送方法は、
演算装置と、
上記演算装置に接続された主記憶装置と、
上記演算装置に接続された周辺制御装置と、
上記周辺制御装置に接続され、レジスタ手段を含む周辺装置とを備えたデータ転送システムのためのデータ転送方法において、
上記周辺装置が、上記レジスタ手段に格納されたデータを、上記主記憶装置又は上記演算装置の所定の記憶領域にＤＭＡ転送する転送ステップと、
上記演算装置が、上記周辺装置にアクセスすることなく、上記記憶領域にＤＭＡ転送されたデータを読み出す読出ステップとを含むことを特徴とする。
【００１４】
上記データ転送方法において、
上記転送ステップは、上記周辺装置が、上記ＤＭＡ転送を行ったことを通知するための転送通知データを上記レジスタ手段に格納した後に、上記レジスタ手段に格納されかつ上記転送通知データを含むデータを上記記憶領域にＤＭＡ転送するステップを含み、
上記データ送信方法は、
上記演算装置が、上記記憶領域にＤＭＡ転送された転送通知データを読み出し、当該読み出された転送通知データに基づいて、上記周辺装置がＤＭＡ転送を行った否かを判断し、上記周辺装置がＤＭＡ転送を行っていないときは、上記記憶領域にＤＭＡ転送された他のデータを読み出さないステップをさらに含むことを特徴とする。
【００１５】
また、上記データ転送方法において、
上記演算装置が、上記記憶領域にＤＭＡ転送されたデータの読み出しを終了したとき、上記記憶領域に格納された転送通知データをリセットするように制御するとともに、上記終了を通知する終了通知信号を上記周辺装置に送信するステップと、
上記周辺装置が、上記終了通知信号に応答して、上記レジスタ手段に格納された転送通知データをリセットするステップとをさらに含むことを特徴とする。
【００１６】
さらに、上記データ転送方法において、
上記周辺装置が、上記演算装置に対して所定の割込処理の実行を要求する割込要求信号を送信する前に、上記レジスタ手段に格納されたデータを、上記記憶領域にＤＭＡ転送するステップをさらに含むことを特徴とする。
【００１７】
またさらに、上記データ転送方法において、上記周辺装置が、上記レジスタ手段内のデータが変更されたとき、当該変更されたデータを上記記憶領域にＤＭＡ転送するステップをさらに含むことを特徴とする。
【００１８】
また、上記データ転送方法において、上記演算装置が、データを所定の転送単位毎に転送するためのストリング命令を繰り返して実行するための命令コード群を、上記データをＤＭＡ転送するための１つの命令コードに変換し、上記命令コードを実行することにより、上記周辺装置を、上記レジスタ手段に格納されたデータを上記記憶領域にＤＭＡ転送するように制御するステップをさらに含むことを特徴とする。
【発明の効果】
【００１９】
本発明に係るデータ転送システム及びデータ転送方法によれば、周辺装置は、レジスタ手段に格納されたデータを、主記憶装置又は演算装置の所定の記憶領域にＤＭＡ転送し、演算装置は、周辺装置にアクセスすることなく、主記憶装置にＤＭＡ転送されたデータを読み出すので、従来技術に比較して演算装置から周辺装置へのアクセス時間及びアクセス回数を削減し、消費電力を低減できる。
【図面の簡単な説明】
【００２０】
【図１】本発明の第１の実施形態に係るデータ転送システムの構成を示すブロック図である。
【図２】図１のレジスタセット４ｒの構成を示すブロック図である。
【図３】図１のデータ転送システムの第１の動作例を示すシーケンス図である。
【図４】図１のデータ転送システムの第２の動作例を示すシーケンス図である。
【図５】図１のデータ転送システムの第３の動作例を示すシーケンス図である。
【図６】本発明の第２の実施形態に係るデータ転送システムの構成を示すブロック図である。
【図７】図６のデータ転送システムの動作例を示すシーケンス図である。
【図８】本発明の第３の実施形態に係るデータ転送システムの構成を示すブロック図である。
【図９】図８のデータ転送システムの動作例を示すシーケンス図である。
【図１０】従来技術に係るデータ転送システムの構成を示すブロック図である。
【図１１】図１０のデータ転送システムの第１の動作例を示すシーケンス図である。
【図１２】図１０のデータ転送システムの第２の動作例を示すシーケンス図である。
【図１３】図１０のデータ転送システムの第３の動作例を示すシーケンス図である。
【発明を実施するための形態】
【００２１】
以下、本発明に係る実施形態について図面を参照して説明する。なお、以下の各実施形態において、同様の構成要素については同一の符号を付している。
【００２２】
第１の実施形態．
図１は、本発明の第１の実施形態に係るデータ転送システムの構成を示すブロック図である。図１のデータ転送システムは、例えばＣＰＵである演算装置１と、演算装置１に接続された主記憶装置２と、演算装置１に接続されたノースブリッジなどの周辺制御装置３と、周辺制御装置３に接続された拡張ボードなどの周辺装置４及び５Ｐとを備えて構成される。さらに、周辺装置５Ｐは、当該周辺装置５Ｐの状態を示すフラグ、データ転送先のアドレス、データ転送元のアドレス、及び割込要因を示す割込ステータスデータなどの周辺装置５Ｐの動作に必要とされるデータを格納するレジスタセット５Ｐｒを含む。
【００２３】
詳細後述するように、本実施形態に係るデータ転送システムは、周辺装置４が、レジスタセット４ｒに格納されたデータを、主記憶装置２の所定の記憶領域２ｍにＤＭＡ）転送し、演算装置１が、周辺装置４にアクセスすることなく、記憶領域２ｍにＤＭＡ転送されたデータを読み出すことを特徴としている。また、周辺装置４は、ＤＭＡ転送を行ったことを通知するための転送通知データＤｔをレジスタセット４ｒに格納した後に、レジスタセット４ｒに格納されかつ転送通知データＤｔを含むデータを記憶領域２ｍにＤＭＡ転送し、演算装置１は、記憶領域２ｍにＤＭＡ転送された転送通知データを読み出し、当該読み出された転送通知データＤｔに基づいて、周辺装置４がＤＭＡ転送を行った否かを判断し、周辺装置４がＤＭＡ転送を行っていないときは、記憶領域２ｍにＤＭＡ転送された他のデータを読み出さないことを特徴としている。さらに、演算装置１は、記憶領域２ｍにＤＭＡ転送されたデータの読み出しを終了したとき、記憶領域２ｍに格納された転送通知データＤｔをリセットするように制御するとともに、上記終了を通知する終了通知信号を周辺装置４に送信し、周辺装置４は、上記終了通知信号に応答して、レジスタセット４ｒに格納された転送通知データＤｔをリセットすることを特徴としている。
【００２４】
図１において、周辺装置４はレジスタセット４ｒを含み、レジスタセット４ｒに格納されたデータを周辺制御装置３及び演算装置１を介して主記憶装置２の所定の記憶領域２ｍにＤＭＡ転送する機能を有する。図２は、図１のレジスタセット４ｒの構成を示すブロック図である。図２において、レジスタセット４ｒは、レジスタセット４ｒに格納されたデータを記憶領域２ｍに転送したことを通知するための転送通知データＤｔと、周辺装置４において発生した割込要因を示す割込ステータスデータＤｉと、記憶領域２ｍのアドレスであるＤＭＡ転送先アドレスデータＤａとを含む周辺装置４の動作に必要とされるデータを格納して一時記憶する。なお、転送通知データＤｔは、レジスタセット４ｒの先頭に格納される。また、ＤＭＡ転送先アドレスデータＤａは、データ転送システムの起動時に予め設定されてレジスタセット４ｒに格納されている。
【００２５】
第１の動作例．
図３は、図１のデータ転送システムの第１の動作例を示すシーケンス図である。本動作例では、周辺装置４と周辺装置５Ｐに、互いに異なる所定の割込番号が割り当てられている。図３において、周辺装置４において、レジスタセット４ｒ内のデータの更新などの割込要因が発生したとき、周辺装置４Ｐは待機モードから動作モードに遷移し、レジスタセット４ｒに、レジスタセット４ｒに格納されたデータを記憶領域２ｍに転送したことを通知する転送通知データＤｔと、発生した割込要因を示す割込ステータスデータＤｉとを格納する。そして、周辺装置４は、レジスタセット４ｒ内のデータを、連続書き込みデータとして周辺制御装置３及び演算装置１を介して記憶領域２ｍにＤＭＡ転送する。次に、周辺装置４は、割込処理の実行を要求する割込要求信号を、周辺制御装置３に送信する。ここで、割込要求信号は、周辺装置４に予め割り当てられた割込番号を含む。そして、周辺装置４は待機モードに遷移する。さらに、周辺制御装置３は、割込要求信号に応答して、受信した割込要求信号を演算装置１に転送する。
【００２６】
さらに、図３において、演算装置１は、割込要求信号に応答して割込処理を実行することにより、割込要求信号に含まれる割込番号に基づいて、周辺装置４が割込要求信号を発生したことを識別し、記憶領域２ｍにＤＭＡ転送された転送通知データＤｔを読み出すことを要求する読出要求信号を主記憶装置２に送信する。これに応答して、主記憶装置２は、記憶領域２ｍに転送されている転送通知データＤｔを読み出し、読出データとして演算装置１に送信する。演算装置１は、記憶領域２ｍから読み出した読出データに含まれる転送通知データＤｔに基づいて、周辺装置４が、割込要求信号を出力する前にレジスタセット４ｒ内のデータを主記憶装置２にＤＭＡ転送したことを識別する。さらに、演算装置１は、記憶領域２ｍに転送されている割込ステータスデータＤｉを読み出すことを要求する読出要求信号を主記憶装置２に送信する。これに応答して、主記憶装置２は、記憶領域２ｍに転送されている割込ステータスデータＤｉを読み出し、読出データとして演算装置１に送信する。演算装置１は、記憶領域２ｍから読み出した読出データに含まれる割込ステータスデータＤｉに基づいて、周辺装置４において発生した割込要因を識別する。
【００２７】
次に、図３において、演算装置１は、記憶領域２ｍ内の転送通知データＤｔをリセットすることを要求する転送通知データリセット要求信号を主記憶装置２に送信する。これに応答して、主記憶装置２は、記憶領域２ｍに格納された転送通知データＤｔをリセットする。さらに、演算装置１は、割込処理が終了したことを通知する割込処理終了通知信号を、周辺制御装置３に送信する。これに応答して、周辺制御装置３は、周辺装置４を動作モードに遷移するように制御し、受信した割込処理終了通知信号を周辺装置４に転送する。割込処理終了通知信号に応答して、周辺装置４は、レジスタセット４ｒ内の割込ステータスデータＤｉ及び転送通知データＤｔをリセットする。
【００２８】
図３の動作例によれば、周辺装置４は、割込要求信号を演算装置１に送信する前に、レジスタセット４ｒ内のデータを周辺制御装置３及び演算装置１を介して主記憶装置２にＤＭＡ転送する。そして、演算装置１は、割込要求信号に応答して、周辺装置４内のレジスタセット４ｒではなく、主記憶装置２からレジスタセット４ｒ内のデータを読み出す。このとき、一回のＤＭＡ転送によって転送可能なデータサイズ（例えば、２５６バイトである。）は、周辺制御装置３が周辺装置４からデータを読み出すときのデータサイズ（例えば、４バイトである。）よりも非常に大きく、かつ演算装置１と主記憶装置２との間のデータ転送速度は周辺装置４と周辺制御装置３との間のデータ転送速度よりも大きいので、演算装置１は、従来技術（図１１参照。）に比較して短時間で、主記憶装置４からレジスタセット４ｒ内のデータを読み出すことができる。また、周辺装置４は、割込要求信号を送信してから割込処理終了通知信号を受信するまでは待機モードのままであるので、従来技術に比較して待機モードの期間を長くして、消費電力を削減できる。
【００２９】
また、演算装置１は、受信した割込要求信号に応答して割込処理を実行した後、割込要求信号の送信元の周辺装置４のレジスタセット４ｒに書込アクセスして割込ステータスデータＤｉ及び転送通知データＤｔをリセットすることにより、割込要因を解除する必要がある。図３の動作例によれば、周辺装置４は、割込処理通知信号に応答して割込ステータスデータＤｉに加えて転送通知データＤｔをリセットするので、演算装置１は、割込ステータスデータＤｉをリセットするために周辺装置４にアクセスした後に、転送通知データＤｔをリセットするために改めて周辺装置４に書込アクセスする必要がない。このため、周辺装置４へのアクセス回数を削減し、周辺装置４によるバス帯域の消費量及び消費電力を低減できる。
【００３０】
なお、図３において、レジスタセット４ｒ内のデータを、連続書き込みデータとして周辺制御装置３及び演算装置１を介して記憶領域２ｍにＤＭＡ転送したが、本発明はこれに限られない。レジスタセット４ｒ内のデータのうち、前回ＤＭＡ転送されたデータから変更されたデータなどの一部のデータを、連続書き込みデータとして周辺制御装置３及び演算装置１を介して記憶領域２ｍにＤＭＡ転送してもよい。また、図３において、周辺装置４は、割込処理通知信号に応答して転送通知データＤｔをリセットしたが、本発明はこれに限られず、読出要求信号に応答して転送通知データＤｔをリセットしてもよい。
【００３１】
第２の動作例．
図４は、図１のデータ転送システムの第２の動作例を示すシーケンス図である。図４を参照して、周辺装置４及び周辺装置５Ｐに共通の割込番号が割り当てられており、周辺装置５Ｐが割込要求信号を発生するときの図１のデータ転送システムの第２の動作例を説明する。
【００３２】
始めに、図１２を参照して、周辺装置４Ｐ及び周辺装置５Ｐに共通の割込番号が割り当てられており、周辺装置５Ｐが割込要求信号を発生するときの図１０の従来技術に係るデータ転送システムの第２の動作例を説明する。図１２において、周辺装置５Ｐにおいて割込要因が発生したとき、周辺装置５Ｐは割込要因を示す割込ステータスデータをレジスタセット５Ｐｒに格納するとともに、割込処理の実行を要求する割込要求信号を周辺制御装置３に送信する。このとき、割込要求信号は周辺装置４Ｐ及び周辺装置５Ｐに共通に割り当てられた割込番号を含む。割込要求信号に応答して、周辺制御装置３は、受信した割込要求信号を演算装置１Ｐに転送する。さらに、演算装置１Ｐは、割込要求信号に含まれる割込番号に基づいて、周辺装置４Ｐ及び５Ｐのうちの少なくとも一方が割込要求信号を発生したことを識別する。そして、演算装置１Ｐは、割込処理を実行することにより、レジスタセット５Ｐｒから割込ステータスデータを読み出すことを要求する読出要求信号を周辺制御装置３を介して周辺装置５Ｐに送信する。周辺装置５Ｐは、読出要求信号に応答して、レジスタセット５Ｐｒ内のデータを読み出して読出データとして周辺制御装置３を介して演算装置１Ｐに送信する。そして、演算装置１Ｐは、受信した読出データに基づいて、周辺制御装置５Ｐが割込要求信号を発生したか否か、及び割込要求信号を発生した場合の割込要因を判断する。
【００３３】
さらに、図１２において、演算装置１Ｐは、割込処理を実行することにより、レジスタセット４Ｐｒから割込ステータスデータを読み出すことを要求する読出要求信号を周辺制御装置３に送信する。周辺制御装置３は、演算装置１Ｐから読出要求信号を受信すると、周辺装置４Ｐを動作モードに遷移するように制御し、受信した読出要求信号を周辺装置４Ｐに転送する。動作モードに遷移した周辺装置４Ｐは、読出要求信号に応答して、レジスタセット４Ｐｒ内のデータを読み出して読出データとして周辺制御装置３に送信し、待機モードに遷移する。周辺制御装置３は、受信した読出データを演算装置１Ｐに転送する。そして、演算装置１Ｐは、受信した読出データに基づいて、周辺装置４Ｐが割込要求信号を送信しなかったと判断し、割込処理を終了する。従って、従来技術に係る図１０のデータ転送システムによれば、周辺装置４Ｐと周辺装置５Ｐが割込番号を共有しているとき、周辺装置５Ｐのみが割込要求信号を出力した場合に、周辺装置４Ｐは割込要求信号を出力していないにも関わらず待機モードから動作モードに遷移してしまい、消費電力の増加につながる。
【００３４】
次に、図４を参照して、本実施形態に係るデータ転送システムにおいて、周辺装置４と周辺装置５Ｐが割込番号を共有しているとき、周辺装置５Ｐのみが割込要求信号を出力した場合の動作を説明する。図４において、周辺装置５Ｐにおいて割込要因が発生したとき、周辺装置５Ｐは割込要因を示す割込ステータスデータをレジスタセット５Ｐｒに格納するとともに、割込処理の実行を要求する割込要求信号を周辺制御装置３に送信する。このとき、割込要求信号は周辺装置４及び周辺装置５Ｐに共通に割り当てられた割込番号を含む。割込要求信号に応答して、周辺制御装置３は、受信した割込要求信号を演算装置１に転送する。さらに、演算装置１は、割込要求信号に含まれる割込番号に基づいて、周辺装置４及び５Ｐのうちの少なくとも一方が割込要求信号を発生したことを識別する。そして、演算装置１は、割込処理を実行することにより、レジスタセット５Ｐｒから割込ステータスデータを読み出すことを要求する読出要求信号を周辺制御装置３を介して周辺装置５Ｐに送信する。周辺装置５Ｐは、読出要求信号に応答して、レジスタセット５Ｐｒ内のデータを読み出して読出データとして周辺制御装置３を介して演算装置１に送信する。そして、演算装置１は、受信した読出データに基づいて、周辺制御装置５Ｐが割込要求信号を発生したか否か、及び割込要求信号を発生した場合の割込要因を判断する。
【００３５】
さらに、図４において、演算装置１は、記憶領域２ｍに転送されたレジスタセット４ｒ内の転送通知データＤｔを読み出すことを要求する読出要求信号を主記憶装置２に送信する。これに応答して、主記憶装置２は、記憶領域２ｍに転送されている転送通知データＤｔを読み出し、演算装置１に送信する。演算装置１は、記憶領域２ｍから読み出した転送通知データＤｔに基づいて、周辺装置４が割込要求信号を出力したか否かを判断する。図４の例では、周辺装置４は割込要求信号を出力しておらず、転送通知データＤｔはリセットされているので、演算装置１は割込処理を終了する。
【００３６】
従って、本実施形態によれば、演算装置１は、周辺装置４に割り当てられた割込番号を含む割込要求信号を受信したとき、周辺装置４のレジスタセット４ｒではなく、主記憶装置２の記憶領域２ｍに転送されたレジスタセット４ｒのデータを読み出す。従って、周辺装置４は待機モードを維持することができる。このため、周辺装置４と割込番号を共有する他の周辺装置５Ｐから割込要求信号が出力し、かつ周辺装置４が割込要求信号を出力していないとき、周辺装置４は、待機モードから動作モードに遷移しない。従来技術に比較して、周辺装置４が待機モードを維持する期間を長くし、消費電力を低減できる。
【００３７】
また、周辺装置４は、レジスタセット４ｒの先頭に、レジスタセット４ｒに格納されたデータを記憶領域２ｍにＤＭＡ転送したことを通知する転送通知データＤｔを格納し、割込要求信号を演算装置１に出力する前に、転送通知データＤｔを含む連続書込データを主記憶装置２にＤＭＡ転送し（図３参照。）する。さらに、演算装置１は、割込処理の終了時に記憶領域２ｍ内の転送通知データＤｔをリセットする。従って、演算装置１は、記憶領域２ｍから転送通知データＤｔを読み出すだけで、周辺装置４が割込要求信号を出力したか否かを判断できる。このため、演算装置１から主記憶装置２へのアクセス回数を低減し、メモリ帯域の消費量及び消費電力を削減できる。
【００３８】
第３の動作例．
図５は、図１のデータ転送システムの第３の動作例を示すシーケンス図である。図５を参照して、演算装置１がレジスタセット４ｒ内の全てのデータを読み出すときの図１のデータ転送システムの第３の動作例を説明する。
【００３９】
始めに、図１３を参照して、演算装置１Ｐがレジスタセット４Ｐｒ内の全てのデータを読み出すときの図１０の従来技術に係るデータ転送システムの第３の動作例を説明する。図１３において、演算装置１Ｐは、レジスタセット４Ｐｒ内のデータを読み出すことを要求する読出要求信号を周辺制御装置３に送信する。周辺制御装置３は、演算装置１Ｐから読出要求信号を受信すると、周辺装置４Ｐを動作モードに遷移するように制御し、受信した読出要求信号を周辺装置４Ｐに転送する。動作モードに遷移した周辺装置４Ｐは、読出要求信号に応答して、レジスタセット４Ｐｒ内のデータを読み出して読出データとして周辺制御装置３に送信し、待機モードに遷移する。そして、周辺制御装置３は、受信した読出データを演算装置１Ｐに転送する。このとき、読出データのサイズは、周辺制御装置３のメモリサイズに依存し、例えば４バイトである。このため、レジスタセット４Ｐｒ内のデータサイズが例えば２５６バイトであるとき、演算装置１Ｐと周辺装置４Ｐとの間で、周辺制御装置３を経由して、読出データを６４回転送する必要がある。また、転送の度に、周辺装置４Ｐは待機モードから読み出しモードに遷移するので、消費電力につながってしまう。
【００４０】
次に、図５を参照して、演算装置１がレジスタセット４ｒ内の全てのデータを読み出すときの図１のデータ転送システムの第３の動作例を説明する。図５において、演算装置１は、レジスタセット４ｒ内の全てのデータを記憶領域２ｍにＤＭＡ転送することを要求する書込要求信号を、周辺制御装置３に送信する。これに応答して、周辺制御装置３は、周辺装置４を動作モードに遷移するように制御し、受信した書込要求信号を周辺装置４に転送する。動作モードに遷移した周辺装置４は、書込要求信号に応答して、レジスタセット４ｒ内の全てのデータを連続書込データとして、周辺制御装置３及び演算装置１を介して主記憶装置２の記憶領域２ｍにＤＭＡ転送する。そして、周辺装置４は動作モードから待機モードに遷移する。
【００４１】
さらに、図５において、演算装置１は、記憶領域２ｍに格納されたデータを読み出すことを要求する読出要求信号を主記憶装置２に送信する。これに応答して、主記憶装置２は記憶領域２ｍに格納されたデータを読み出し、読出データとして演算装置１に送信する。演算装置１と主記憶装置２とは、記憶領域２ｍに格納された全てのデータが読み出されるまで、読出要求信号と読出データとの送受信を繰り返す。そして、演算装置１は、記憶領域２ｍに格納された全てのデータの読み出しが終了すると、記憶領域２ｍ内の転送通知データＤｔをリセットすることを要求する転送通知データリセット要求信号を主記憶装置２に送信する。これに応答して、主記憶装置２は、記憶領域２ｍに格納された転送通知データＤｔをリセットする。さらに、演算装置１は、記憶領域２ｍからのデータの読み出しが終了したことを通知する読出終了通知信号を、周辺制御装置３に送信する。これに応答して、周辺制御装置３は、周辺装置４を動作モードに遷移するように制御し、受信した読出終了通知信号を周辺装置４に転送する。読出終了通知信号に応答して、周辺装置４は、レジスタセット４ｒ内の転送通知データＤｔをリセットする。従って、周辺装置４は、レジスタセット４ｒ内の転送通知データＤｔに基づいて、演算装置１による記憶領域２ｍからのデータの読み出しが終了したことを識別できる。
【００４２】
図５の動作例によれば、周辺装置４は、レジスタセット４ｒ内の全てのデータをＤＭＡ転送した後に、動作モードから待機モードに遷移する。また、演算装置１は、周辺装置４のレジスタセット４ｒにアクセスすることなく、主記憶装置２にアクセスすることにより、周辺装置４のレジスタセット４ｒ内のデータを読み出す。従って、従来技術に比較して消費電力及びバス帯域の消費量を削減できる。さらに、周辺装置４からレジスタセット４ｒ内のデータを主記憶装置２にＤＭＡ転送した後に、演算装置１は主記憶装置２からレジスタセット４ｒ内のデータを読み出すので、演算装置１は、従来技術に比較して短時間でレジスタセット４ｒ内のデータを読み出すことができる。
【００４３】
なお、図５において、周辺装置４は、レジスタセット４ｒ内の全てのデータを主記憶装置２にＤＭＡ転送したが、本発明はこれに限らず、レジスタセット４ｒ内のデータのうち、前回のＤＭＡ転送の後に更新されたレジスタ（更新レジスタ）のデータのみを主記憶装置２にＤＭＡ転送してもよい。
【００４４】
第２の実施形態．
図６は、本発明の第２の実施形態に係るデータ転送システムの構成を示すブロック図であり、図７は、図６のデータ転送システムの動作例を示すシーケンス図である。図６において、本実施形態に係るデータ転送システムは、第１の実施形態に係るデータ転送システムに比較して、主記憶装置２に代えて主記憶装置２Ａを備え、周辺制御装置３に代えて周辺制御装置３Ａを備えた点が異なる。ここで、主記憶装置２Ａは、主記憶装置２に比較して、レジスタセット４ｒ内のデータを格納するための記憶領域２ｍを含まない。また、周辺制御装置３Ａは、周辺制御装置３に比較して、レジスタセット４ｒ内のデータを格納するための副記憶装置３Ａｍを備える。また、本実施形態において、レジスタセット４ｒ内のＤＭＡ転送先アドレスデータＤａ（図２参照。）は、副記憶装置３Ａｍのアドレスデータである。
【００４５】
図７において、周辺装置４は、図３のようにレジスタセット４ｒ内のデータの更新などの割込要因が発生したとき、及び図５のように演算装置１から周辺制御装置３Ａを介して書込要求信号を受信したときなどの所定の条件において、待機モードから動作モードに遷移し、レジスタセット４ｒ内のデータを、周辺制御装置３Ａ内の副記憶装置３ＡｍにＤＭＡ転送する。そして、周辺装置４は、動作モードから待機モードに遷移する。さらに、演算装置１Ｐは、副記憶装置３ＡｍにＤＭＡ転送されたレジスタセット４ｒ内のデータを読み出すことを要求する読出要求信号を周辺制御装置３Ａに送信する。これに応答して、周辺制御装置３Ａは、副記憶装置３Ａｍに格納されたデータを読み出し、読出データとして演算装置１に送信する。周辺制御装置３Ａと演算装置１とは、副記憶装置３Ａｍに格納された全てのデータの読み出しが終了するまで、読出要求信号及び読出データの送受信を繰り返す。
【００４６】
従って、本実施形態において、演算装置１は、周辺装置４及び主記憶装置２Ａに読み出しアクセスすることなく、副記憶装置３Ａｍに転送されたレジスタセット４ｒ内のデータを読み出すことができる。これにより、周辺装置４はレジスタ読み出しによる待機モードから動作モードへの遷移を行う必要がなく待機モードを維持できるので、従来技術に比較して消費電力及びバス帯域の消費量を削減できる。さらに、演算装置１は主記憶装置２Ａにアクセスしないので、演算装置１が主記憶装置２Ａの負荷が大きい処理を実行しているときに、当該処理の速度を低下させることがない。さらに、主記憶装置２Ａのメモリ帯域の消費量を低減できる。
【００４７】
なお、本実施形態において、副記憶装置３Ａｍを周辺制御装置３Ａ内に設けたが、本発明はこれに限られず、演算装置１内又は別の装置内に設けてもよい。
【００４８】
第３の実施形態．
図８は、本発明の第３の実施形態に係るデータ転送システムの構成を示すブロック図であり、図９は、図８のデータ転送システムの動作例を示すシーケンス図である。本実施形態に係るデータ転送システムは、第１の実施形態に係るデータ転送システムに比較して、演算装置１に代えて演算装置１Ａを備え、周辺装置４に代えて図１０の周辺装置４Ａを備えた点が異なる。ここで、演算装置１Ａは、ＤＭＡコントローラ１ｃと、インテル（登録商標）社のｘ８６に準拠したリピートプリフィクス（ＲＥＰ）と、１バイトのデータを転送するためのムーブストリング命令（ＭＯＶＳＢ）などのストリング命令の組み合わせによるデータ転送のための命令コード群を、ＤＭＡ転送のための１つの命令コードに変換するＤＭＡ変換装置１ｄを備えて構成される。
【００４９】
図１０の従来技術に係るデータ転送システムの場合、演算装置１Ｐは、周辺装置４Ｐのレジスタセット４Ｐｒ内の２５６バイトのデータを読み出して主記憶装置２Ｐに転送するとき、以下の３個の命令コードを実行する。
【００５０】
ＣＬＤ
ＭＯＶ  ＣＸ，１００ｈ
ＲＥＰ  ＭＯＶＳＢ
【００５１】
ここで、「ＣＬＤ」はディレクションフラグＤＦを、アドレスを増加させることを表す１に設定するためのクリアディレクションフラグ命令であり、「ＭＯＶ  ＣＸ，１００ｈ」は、データ転送の繰り返し回数であるカウンタレジスタＣＸのデータを１００ｈ（ｈは１６進数を表す。）に設定するためのムーブ命令であり、「ＲＥＰ  ＭＯＶＳＢ」は、レジスタセット４Ｐｒのアドレス［ＤＳ：ＳＩ］に格納された１バイトのデータを、主記憶装置２Ｐのアドレス［ＥＳ：ＤＩ］に転送するムーブストリングバイト命令（ＭＯＶＳＢ）を、カウンタレジスタＣＸに格納された値の回数だけ繰り返して実行するためのデータ転送命令である。これらの命令コードを順次実行することにより、周辺装置４Ｐのレジスタセット４ｒ内のアドレス［ＤＳ：ＤＩ］以降の２５６バイトのデータは、周辺制御装置３を介して１バイトずつ主記憶装置２Ｐに転送される。このため、周辺装置４Ｐに対して、２５６回のアクセスが発生する。
【００５２】
これに対して、図８のデータ転送システムにおいて、ＤＭＡ変換装置１ｄは、ムーブストリング命令（ＭＯＶＳＢ）などのストリング命令を繰り返して実行するデータ転送のための命令コード群を、ＤＭＡ転送のための１つの命令コードに変換する。例えば、上述した命令コード群は、ＤＭＡ変換装置１ｄにより以下の１つの命令コードに変換される。
【００５３】
ＤＭＡ  １００ｈ
【００５４】
ここで、ＤＭＡ転送命令「ＤＭＡ」のオペランド（１００ｈ）は、ＤＭＡ転送されるデータのサイズである。ＤＭＡコントローラ１ｃは、変換後のＤＭＡ転送命令を周辺制御装置３を介して周辺装置４Ｐに出力する。これに応答して、周辺装置４Ｐは、周辺装置４Ｐのレジスタセット４Ｐｒ内のアドレス［ＤＳ：ＤＩ］以降の２５６バイトのデータを、周辺制御装置３を介して１回のＤＭＡ転送により主記憶装置２の記憶領域２ｍに転送する。
【００５５】
図９において、演算装置１ＡのＤＭＡ変換装置１ｄは、リピートプリフィクス（ＲＥＰ）とストリング命令との組み合わせによるデータ転送命令を含む命令コード群を、ＤＭＡ転送のための１つの命令コード（以下、ＤＭＡ転送命令コードという。）に変換してＤＭＡコントローラ１ｃに出力し、これに応答して、ＤＭＡコントローラ１ｃは変換後のＤＭＡ転送命令コードを含む連続読出要求信号を周辺制御装置３に出力する。連続読出要求信号に応答して、周辺制御装置３は、周辺装置４Ｐを動作モードに遷移するように制御し、連続読出要求信号を周辺装置４Ｐに転送する。動作モードに遷移した周辺装置４Ｐは、連続読出要求信号に応答して、レジスタセット４Ｐｒ内のデータを、連続書込データとして周辺制御装置３を介して主記憶装置２の記憶領域２ｍにＤＭＡ連続転送により転送する。そして、周辺装置４Ｐは待機モードに遷移する。さらに、図９において、演算装置１Ａは第１の実施形態に係る演算装置１と同様に、周辺装置４Ｐにアクセスすることなく、主記憶装置２の記憶領域２ｍから、レジスタ４Ｐｒ内のデータを読み出す。
【００５６】
従って、本実施形態によれば、レジスタセット４Ｐｒ内のデータを主記憶装置２に転送する場合に、周辺装置４Ｐへの読み出しアクセス回数を従来技術に比較して低減できる。このため、周辺装置４Ｐの待機モードから動作モードへの遷移回数を削減して、消費電力及びバス帯域の消費量を削減できる。また、ＤＭＡ連続転送を利用すれば、より少ないアクセス回数ですべてのデータを周辺装置４Ｐから主記憶装置２にＤＭＡ転送できる。
【００５７】
第１の実施形態及び第２の実施形態に係るデータ転送システムの場合、周辺装置４は、レジスタセット４ｒ内のデータを、所定のタイミングで主記憶装置２にＤＭＡ転送するための追加の装置及びその駆動ソフトウェアが必要となる。しかしながら、本実施形態によれば、演算装置１ＡがＤＭＡ転送命令を周辺装置４Ｐに送信するので、このような追加の装置及びその駆動ソフトウェアなしに、従来技術に係る周辺装置４Ｐから主記憶装置２にレジスタセット４Ｐｒ内のデータをＤＭＡ転送できる。
【００５８】
なお、本実施形態において、ＤＭＡ変換装置１ｄを演算装置１Ａに設けたが、本発明はこれに限られず、周辺制御装置３又はほかの装置に設けてもよい。
【産業上の利用可能性】
【００５９】
以上説明したように、本発明に係るデータ転送システム及びデータ転送方法によれば、周辺装置は、レジスタ手段に格納されたデータを、主記憶装置又は演算装置の所定の記憶領域にＤＭＡ転送し、演算装置は、周辺装置にアクセスすることなく、主記憶装置にＤＭＡ転送されたデータを読み出すので、従来技術に比較して演算装置から周辺装置へのアクセス時間及びアクセス回数を削減し、消費電力を低減できる。
【符号の説明】
【００６０】
１，１Ａ…演算装置、
１ｃ…ＤＭＡコントローラ、
１ｄ…ＤＭＡ変換装置、
２，２Ａ…主記憶装置、
２ｍ…記憶領域、
３，３Ａ…周辺制御装置、
３Ａｍ…副記憶装置、
４，４Ｐ…周辺装置、
４ｒ，４Ｐｒ…レジスタセット、
５Ｐ…周辺装置、
５Ｐｒ…レジスタセット。
【先行技術文献】
【特許文献】
【００６１】
【特許文献１】特開２００６−２２８１９４号公報。
【特許文献２】特開２００４−２０６２４１号公報。
【特許文献３】特許第２７２３９７０号公報。
【特許文献４】特開平２−３１１０５０号公報。
【図１】
0005790043.tif 000002
【図２】
0005790043.tif 000003
【図３】
0005790043.tif 000004
【図４】
0005790043.tif 000005
【図５】
0005790043.tif 000006
【図６】
0005790043.tif 000007
【図７】
0005790043.tif 000008
【図８】
0005790043.tif 000009
【図９】
0005790043.tif 000010
【図１０】
0005790043.tif 000011
【図１１】
0005790043.tif 000012
【図１２】
0005790043.tif 000013
【図１３】
0005790043.tif 000014