説明

データ転送システム及びデータ転送方法

【課題】演算装置から周辺装置へのアクセス時間及びアクセス回数を削減し、消費電力を低減できるデータ転送システムを提供する。
【解決手段】周辺装置4は、演算装置1に割込要求信号を送信する前に、周辺装置4のレジスタセット4r内のデータを主記憶装置2にDMA(Direct Memory Access)転送する。演算装置1は、割込要求信号に応答して、周辺装置4にアクセスすることなく、主記憶装置2にDMA転送されたレジスタセット4r内のデータを読み出す。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、データ転送システム及びデータ転送方法に関する。
【背景技術】
【0002】
図10は、従来技術に係るデータ転送システムの構成を示すブロック図である。図10のデータ転送システムは、例えばCPU(Central Processing Unit)である演算装置1Pと、演算装置1Pに接続された主記憶装置2Pと、演算装置1Pに接続されたノースブリッジなどの周辺制御装置3と、周辺制御装置3に接続された拡張ボードなどの周辺装置4P及び5Pとを備えて構成される。さらに、周辺装置4Pは、当該周辺装置4Pの状態を示すフラグ、データ転送先のアドレス、データ転送元のアドレス、及び割込要因を示す割込ステータスデータなどの周辺装置4Pの動作に必要とされるデータを格納するレジスタセット4Prを含む。周辺装置5Pも、周辺装置4Pと同様にレジスタセット5Prを含む。
【0003】
図11は、図10のデータ転送システムの第1の動作例を示すシーケンス図である。図11において、周辺装置4Pにおいて割込要因が発生したとき、周辺装置4Pは待機モードから動作モードに遷移し、割込要因を示す割込ステータスデータをレジスタセット4Prに格納するとともに、割込処理の実行を要求する割込要求信号を周辺制御装置3に送信する。そして、周辺装置4Pは待機モードに遷移する。割込要求信号に応答して、周辺制御装置3は、受信した割込要求信号を演算装置1Pに転送する。さらに、演算装置1Pは、割込要求信号に応答して、割込処理を実行することにより、レジスタセット4Prから割込ステータスデータを読み出すことを要求する読出要求信号を周辺制御装置3に送信する。
【0004】
周辺制御装置3は、演算装置1Pから読出要求信号を受信すると、周辺装置4Pを動作モードに遷移するように制御し、受信した読出要求信号を周辺装置4Pに転送する。動作モードに遷移した周辺装置4Pは、読出要求信号に応答して、レジスタセット4Pr内のデータを読み出して読出データとして周辺制御装置3に送信し、待機モードに遷移する。周辺制御装置3は、受信した読出データを演算装置1Pに転送する。そして、演算装置1Pは、受信した読出データに基づいて割込要因を判断する。
【発明の概要】
【発明が解決しようとする課題】
【0005】
一般に、図10の従来技術に係るデータ転送システムにおいて、周辺制御装置3と周辺装置4Pとの間のデータ転送速度は、演算装置1Pと主記憶装置2Pとの間のデータ転送速度の100分の1程度であり、非常に遅い。さらに、図11のシーケンス図において、周辺制御装置3が周辺装置4Pから読出データを受信するときのデータサイズは、周辺装置4Pのメモリサイズに依存し、例えば4バイトである。このため、256バイトの読出データを周辺装置4Pから制御装置3を介して演算装置1Pに転送するためには、周辺装置4Pと周辺制御装置3との間、及び周辺制御装置3と演算装置1Pとの間でそれぞれ64回のデータ転送を実行する必要がある。このとき、周辺装置4Pにおいて、4バイトの読出データの送信毎に待機モードと動作モードとの間でのモードの切換が行われるので、消費電力が増加するという課題があった。
【0006】
本発明の目的は以上の問題点を解決し、従来技術に比較して演算装置から周辺装置へのアクセス時間及びアクセス回数を削減し、消費電力を低減できるデータ転送システム及びデータ転送方法を提供することにある。
【課題を解決するための手段】
【0007】
第1の発明に係るデータ転送システムは、
演算装置と、
上記演算装置に接続された主記憶装置と、
上記演算装置に接続された周辺制御装置と、
上記周辺制御装置に接続され、レジスタ手段を含む周辺装置とを備えたデータ転送システムにおいて、
上記周辺装置は、上記レジスタ手段に格納されたデータを、上記主記憶装置又は上記演算装置の所定の記憶領域にDMA(Direct Memory Access)転送し、
上記演算装置は、上記周辺装置にアクセスすることなく、上記記憶領域にDMA転送されたデータを読み出すことを特徴とする。
【0008】
上記データ転送システムにおいて、
上記周辺装置は、上記DMA転送を行ったことを通知するための転送通知データを上記レジスタ手段に格納した後に、上記レジスタ手段に格納されかつ上記転送通知データを含むデータを上記記憶領域にDMA転送し、
上記演算装置は、上記記憶領域にDMA転送された転送通知データを読み出し、当該読み出された転送通知データに基づいて、上記周辺装置がDMA転送を行った否かを判断し、上記周辺装置がDMA転送を行っていないときは、上記記憶領域にDMA転送された他のデータを読み出さないことを特徴とする。
【0009】
また、上記データ転送システムにおいて、
上記演算装置は、上記記憶領域にDMA転送されたデータの読み出しを終了したとき、上記記憶領域に格納された転送通知データをリセットするように制御するとともに、上記終了を通知する終了通知信号を上記周辺装置に送信し、
上記周辺装置は、上記終了通知信号に応答して、上記レジスタ手段に格納された転送通知データをリセットすることを特徴とする。
【0010】
さらに、上記データ転送システムにおいて、上記周辺装置は、上記演算装置に対して所定の割込処理の実行を要求する割込要求信号を送信する前に、上記レジスタ手段に格納されたデータを、上記記憶領域にDMA転送することを特徴とする。
【0011】
またさらに、上記データ転送システムにおいて、上記周辺装置は、上記レジスタ手段内のデータが変更されたとき、当該変更されたデータを上記記憶領域にDMA転送することを特徴とする。
【0012】
また、上記データ転送システムにおいて、上記演算装置は、データを所定の転送単位毎に転送するためのストリング命令を繰り返して実行するための命令コード群を、上記データをDMA転送するための1つの命令コードに変換し、上記命令コードを実行することにより、上記周辺装置を、上記レジスタ手段に格納されたデータを上記記憶領域にDMA転送するように制御することを特徴とする。
【0013】
第2の発明に係るデータ転送方法は、
演算装置と、
上記演算装置に接続された主記憶装置と、
上記演算装置に接続された周辺制御装置と、
上記周辺制御装置に接続され、レジスタ手段を含む周辺装置とを備えたデータ転送システムのためのデータ転送方法において、
上記周辺装置が、上記レジスタ手段に格納されたデータを、上記主記憶装置又は上記演算装置の所定の記憶領域にDMA転送する転送ステップと、
上記演算装置が、上記周辺装置にアクセスすることなく、上記記憶領域にDMA転送されたデータを読み出す読出ステップとを含むことを特徴とする。
【0014】
上記データ転送方法において、
上記転送ステップは、上記周辺装置が、上記DMA転送を行ったことを通知するための転送通知データを上記レジスタ手段に格納した後に、上記レジスタ手段に格納されかつ上記転送通知データを含むデータを上記記憶領域にDMA転送するステップを含み、
上記データ送信方法は、
上記演算装置が、上記記憶領域にDMA転送された転送通知データを読み出し、当該読み出された転送通知データに基づいて、上記周辺装置がDMA転送を行った否かを判断し、上記周辺装置がDMA転送を行っていないときは、上記記憶領域にDMA転送された他のデータを読み出さないステップをさらに含むことを特徴とする。
【0015】
また、上記データ転送方法において、
上記演算装置が、上記記憶領域にDMA転送されたデータの読み出しを終了したとき、上記記憶領域に格納された転送通知データをリセットするように制御するとともに、上記終了を通知する終了通知信号を上記周辺装置に送信するステップと、
上記周辺装置が、上記終了通知信号に応答して、上記レジスタ手段に格納された転送通知データをリセットするステップとをさらに含むことを特徴とする。
【0016】
さらに、上記データ転送方法において、
上記周辺装置が、上記演算装置に対して所定の割込処理の実行を要求する割込要求信号を送信する前に、上記レジスタ手段に格納されたデータを、上記記憶領域にDMA転送するステップをさらに含むことを特徴とする。
【0017】
またさらに、上記データ転送方法において、上記周辺装置が、上記レジスタ手段内のデータが変更されたとき、当該変更されたデータを上記記憶領域にDMA転送するステップをさらに含むことを特徴とする。
【0018】
また、上記データ転送方法において、上記演算装置が、データを所定の転送単位毎に転送するためのストリング命令を繰り返して実行するための命令コード群を、上記データをDMA転送するための1つの命令コードに変換し、上記命令コードを実行することにより、上記周辺装置を、上記レジスタ手段に格納されたデータを上記記憶領域にDMA転送するように制御するステップをさらに含むことを特徴とする。
【発明の効果】
【0019】
本発明に係るデータ転送システム及びデータ転送方法によれば、周辺装置は、レジスタ手段に格納されたデータを、主記憶装置又は演算装置の所定の記憶領域にDMA転送し、演算装置は、周辺装置にアクセスすることなく、主記憶装置にDMA転送されたデータを読み出すので、従来技術に比較して演算装置から周辺装置へのアクセス時間及びアクセス回数を削減し、消費電力を低減できる。
【図面の簡単な説明】
【0020】
【図1】本発明の第1の実施形態に係るデータ転送システムの構成を示すブロック図である。
【図2】図1のレジスタセット4rの構成を示すブロック図である。
【図3】図1のデータ転送システムの第1の動作例を示すシーケンス図である。
【図4】図1のデータ転送システムの第2の動作例を示すシーケンス図である。
【図5】図1のデータ転送システムの第3の動作例を示すシーケンス図である。
【図6】本発明の第2の実施形態に係るデータ転送システムの構成を示すブロック図である。
【図7】図6のデータ転送システムの動作例を示すシーケンス図である。
【図8】本発明の第3の実施形態に係るデータ転送システムの構成を示すブロック図である。
【図9】図8のデータ転送システムの動作例を示すシーケンス図である。
【図10】従来技術に係るデータ転送システムの構成を示すブロック図である。
【図11】図10のデータ転送システムの第1の動作例を示すシーケンス図である。
【図12】図10のデータ転送システムの第2の動作例を示すシーケンス図である。
【図13】図10のデータ転送システムの第3の動作例を示すシーケンス図である。
【発明を実施するための形態】
【0021】
以下、本発明に係る実施形態について図面を参照して説明する。なお、以下の各実施形態において、同様の構成要素については同一の符号を付している。
【0022】
第1の実施形態.
図1は、本発明の第1の実施形態に係るデータ転送システムの構成を示すブロック図である。図1のデータ転送システムは、例えばCPUである演算装置1と、演算装置1に接続された主記憶装置2と、演算装置1に接続されたノースブリッジなどの周辺制御装置3と、周辺制御装置3に接続された拡張ボードなどの周辺装置4及び5Pとを備えて構成される。さらに、周辺装置5Pは、当該周辺装置5Pの状態を示すフラグ、データ転送先のアドレス、データ転送元のアドレス、及び割込要因を示す割込ステータスデータなどの周辺装置5Pの動作に必要とされるデータを格納するレジスタセット5Prを含む。
【0023】
詳細後述するように、本実施形態に係るデータ転送システムは、周辺装置4が、レジスタセット4rに格納されたデータを、主記憶装置2の所定の記憶領域2mにDMA)転送し、演算装置1が、周辺装置4にアクセスすることなく、記憶領域2mにDMA転送されたデータを読み出すことを特徴としている。また、周辺装置4は、DMA転送を行ったことを通知するための転送通知データDtをレジスタセット4rに格納した後に、レジスタセット4rに格納されかつ転送通知データDtを含むデータを記憶領域2mにDMA転送し、演算装置1は、記憶領域2mにDMA転送された転送通知データを読み出し、当該読み出された転送通知データDtに基づいて、周辺装置4がDMA転送を行った否かを判断し、周辺装置4がDMA転送を行っていないときは、記憶領域2mにDMA転送された他のデータを読み出さないことを特徴としている。さらに、演算装置1は、記憶領域2mにDMA転送されたデータの読み出しを終了したとき、記憶領域2mに格納された転送通知データDtをリセットするように制御するとともに、上記終了を通知する終了通知信号を周辺装置4に送信し、周辺装置4は、上記終了通知信号に応答して、レジスタセット4rに格納された転送通知データDtをリセットすることを特徴としている。
【0024】
図1において、周辺装置4はレジスタセット4rを含み、レジスタセット4rに格納されたデータを周辺制御装置3及び演算装置1を介して主記憶装置2の所定の記憶領域2mにDMA転送する機能を有する。図2は、図1のレジスタセット4rの構成を示すブロック図である。図2において、レジスタセット4rは、レジスタセット4rに格納されたデータを記憶領域2mに転送したことを通知するための転送通知データDtと、周辺装置4において発生した割込要因を示す割込ステータスデータDiと、記憶領域2mのアドレスであるDMA転送先アドレスデータDaとを含む周辺装置4の動作に必要とされるデータを格納して一時記憶する。なお、転送通知データDtは、レジスタセット4rの先頭に格納される。また、DMA転送先アドレスデータDaは、データ転送システムの起動時に予め設定されてレジスタセット4rに格納されている。
【0025】
第1の動作例.
図3は、図1のデータ転送システムの第1の動作例を示すシーケンス図である。本動作例では、周辺装置4と周辺装置5Pに、互いに異なる所定の割込番号が割り当てられている。図3において、周辺装置4において、レジスタセット4r内のデータの更新などの割込要因が発生したとき、周辺装置4Pは待機モードから動作モードに遷移し、レジスタセット4rに、レジスタセット4rに格納されたデータを記憶領域2mに転送したことを通知する転送通知データDtと、発生した割込要因を示す割込ステータスデータDiとを格納する。そして、周辺装置4は、レジスタセット4r内のデータを、連続書き込みデータとして周辺制御装置3及び演算装置1を介して記憶領域2mにDMA転送する。次に、周辺装置4は、割込処理の実行を要求する割込要求信号を、周辺制御装置3に送信する。ここで、割込要求信号は、周辺装置4に予め割り当てられた割込番号を含む。そして、周辺装置4は待機モードに遷移する。さらに、周辺制御装置3は、割込要求信号に応答して、受信した割込要求信号を演算装置1に転送する。
【0026】
さらに、図3において、演算装置1は、割込要求信号に応答して割込処理を実行することにより、割込要求信号に含まれる割込番号に基づいて、周辺装置4が割込要求信号を発生したことを識別し、記憶領域2mにDMA転送された転送通知データDtを読み出すことを要求する読出要求信号を主記憶装置2に送信する。これに応答して、主記憶装置2は、記憶領域2mに転送されている転送通知データDtを読み出し、読出データとして演算装置1に送信する。演算装置1は、記憶領域2mから読み出した読出データに含まれる転送通知データDtに基づいて、周辺装置4が、割込要求信号を出力する前にレジスタセット4r内のデータを主記憶装置2にDMA転送したことを識別する。さらに、演算装置1は、記憶領域2mに転送されている割込ステータスデータDiを読み出すことを要求する読出要求信号を主記憶装置2に送信する。これに応答して、主記憶装置2は、記憶領域2mに転送されている割込ステータスデータDiを読み出し、読出データとして演算装置1に送信する。演算装置1は、記憶領域2mから読み出した読出データに含まれる割込ステータスデータDiに基づいて、周辺装置4において発生した割込要因を識別する。
【0027】
次に、図3において、演算装置1は、記憶領域2m内の転送通知データDtをリセットすることを要求する転送通知データリセット要求信号を主記憶装置2に送信する。これに応答して、主記憶装置2は、記憶領域2mに格納された転送通知データDtをリセットする。さらに、演算装置1は、割込処理が終了したことを通知する割込処理終了通知信号を、周辺制御装置3に送信する。これに応答して、周辺制御装置3は、周辺装置4を動作モードに遷移するように制御し、受信した割込処理終了通知信号を周辺装置4に転送する。割込処理終了通知信号に応答して、周辺装置4は、レジスタセット4r内の割込ステータスデータDi及び転送通知データDtをリセットする。
【0028】
図3の動作例によれば、周辺装置4は、割込要求信号を演算装置1に送信する前に、レジスタセット4r内のデータを周辺制御装置3及び演算装置1を介して主記憶装置2にDMA転送する。そして、演算装置1は、割込要求信号に応答して、周辺装置4内のレジスタセット4rではなく、主記憶装置2からレジスタセット4r内のデータを読み出す。このとき、一回のDMA転送によって転送可能なデータサイズ(例えば、256バイトである。)は、周辺制御装置3が周辺装置4からデータを読み出すときのデータサイズ(例えば、4バイトである。)よりも非常に大きく、かつ演算装置1と主記憶装置2との間のデータ転送速度は周辺装置4と周辺制御装置3との間のデータ転送速度よりも大きいので、演算装置1は、従来技術(図11参照。)に比較して短時間で、主記憶装置4からレジスタセット4r内のデータを読み出すことができる。また、周辺装置4は、割込要求信号を送信してから割込処理終了通知信号を受信するまでは待機モードのままであるので、従来技術に比較して待機モードの期間を長くして、消費電力を削減できる。
【0029】
また、演算装置1は、受信した割込要求信号に応答して割込処理を実行した後、割込要求信号の送信元の周辺装置4のレジスタセット4rに書込アクセスして割込ステータスデータDi及び転送通知データDtをリセットすることにより、割込要因を解除する必要がある。図3の動作例によれば、周辺装置4は、割込処理通知信号に応答して割込ステータスデータDiに加えて転送通知データDtをリセットするので、演算装置1は、割込ステータスデータDiをリセットするために周辺装置4にアクセスした後に、転送通知データDtをリセットするために改めて周辺装置4に書込アクセスする必要がない。このため、周辺装置4へのアクセス回数を削減し、周辺装置4によるバス帯域の消費量及び消費電力を低減できる。
【0030】
なお、図3において、レジスタセット4r内のデータを、連続書き込みデータとして周辺制御装置3及び演算装置1を介して記憶領域2mにDMA転送したが、本発明はこれに限られない。レジスタセット4r内のデータのうち、前回DMA転送されたデータから変更されたデータなどの一部のデータを、連続書き込みデータとして周辺制御装置3及び演算装置1を介して記憶領域2mにDMA転送してもよい。また、図3において、周辺装置4は、割込処理通知信号に応答して転送通知データDtをリセットしたが、本発明はこれに限られず、読出要求信号に応答して転送通知データDtをリセットしてもよい。
【0031】
第2の動作例.
図4は、図1のデータ転送システムの第2の動作例を示すシーケンス図である。図4を参照して、周辺装置4及び周辺装置5Pに共通の割込番号が割り当てられており、周辺装置5Pが割込要求信号を発生するときの図1のデータ転送システムの第2の動作例を説明する。
【0032】
始めに、図12を参照して、周辺装置4P及び周辺装置5Pに共通の割込番号が割り当てられており、周辺装置5Pが割込要求信号を発生するときの図10の従来技術に係るデータ転送システムの第2の動作例を説明する。図12において、周辺装置5Pにおいて割込要因が発生したとき、周辺装置5Pは割込要因を示す割込ステータスデータをレジスタセット5Prに格納するとともに、割込処理の実行を要求する割込要求信号を周辺制御装置3に送信する。このとき、割込要求信号は周辺装置4P及び周辺装置5Pに共通に割り当てられた割込番号を含む。割込要求信号に応答して、周辺制御装置3は、受信した割込要求信号を演算装置1Pに転送する。さらに、演算装置1Pは、割込要求信号に含まれる割込番号に基づいて、周辺装置4P及び5Pのうちの少なくとも一方が割込要求信号を発生したことを識別する。そして、演算装置1Pは、割込処理を実行することにより、レジスタセット5Prから割込ステータスデータを読み出すことを要求する読出要求信号を周辺制御装置3を介して周辺装置5Pに送信する。周辺装置5Pは、読出要求信号に応答して、レジスタセット5Pr内のデータを読み出して読出データとして周辺制御装置3を介して演算装置1Pに送信する。そして、演算装置1Pは、受信した読出データに基づいて、周辺制御装置5Pが割込要求信号を発生したか否か、及び割込要求信号を発生した場合の割込要因を判断する。
【0033】
さらに、図12において、演算装置1Pは、割込処理を実行することにより、レジスタセット4Prから割込ステータスデータを読み出すことを要求する読出要求信号を周辺制御装置3に送信する。周辺制御装置3は、演算装置1Pから読出要求信号を受信すると、周辺装置4Pを動作モードに遷移するように制御し、受信した読出要求信号を周辺装置4Pに転送する。動作モードに遷移した周辺装置4Pは、読出要求信号に応答して、レジスタセット4Pr内のデータを読み出して読出データとして周辺制御装置3に送信し、待機モードに遷移する。周辺制御装置3は、受信した読出データを演算装置1Pに転送する。そして、演算装置1Pは、受信した読出データに基づいて、周辺装置4Pが割込要求信号を送信しなかったと判断し、割込処理を終了する。従って、従来技術に係る図10のデータ転送システムによれば、周辺装置4Pと周辺装置5Pが割込番号を共有しているとき、周辺装置5Pのみが割込要求信号を出力した場合に、周辺装置4Pは割込要求信号を出力していないにも関わらず待機モードから動作モードに遷移してしまい、消費電力の増加につながる。
【0034】
次に、図4を参照して、本実施形態に係るデータ転送システムにおいて、周辺装置4と周辺装置5Pが割込番号を共有しているとき、周辺装置5Pのみが割込要求信号を出力した場合の動作を説明する。図4において、周辺装置5Pにおいて割込要因が発生したとき、周辺装置5Pは割込要因を示す割込ステータスデータをレジスタセット5Prに格納するとともに、割込処理の実行を要求する割込要求信号を周辺制御装置3に送信する。このとき、割込要求信号は周辺装置4及び周辺装置5Pに共通に割り当てられた割込番号を含む。割込要求信号に応答して、周辺制御装置3は、受信した割込要求信号を演算装置1に転送する。さらに、演算装置1は、割込要求信号に含まれる割込番号に基づいて、周辺装置4及び5Pのうちの少なくとも一方が割込要求信号を発生したことを識別する。そして、演算装置1は、割込処理を実行することにより、レジスタセット5Prから割込ステータスデータを読み出すことを要求する読出要求信号を周辺制御装置3を介して周辺装置5Pに送信する。周辺装置5Pは、読出要求信号に応答して、レジスタセット5Pr内のデータを読み出して読出データとして周辺制御装置3を介して演算装置1に送信する。そして、演算装置1は、受信した読出データに基づいて、周辺制御装置5Pが割込要求信号を発生したか否か、及び割込要求信号を発生した場合の割込要因を判断する。
【0035】
さらに、図4において、演算装置1は、記憶領域2mに転送されたレジスタセット4r内の転送通知データDtを読み出すことを要求する読出要求信号を主記憶装置2に送信する。これに応答して、主記憶装置2は、記憶領域2mに転送されている転送通知データDtを読み出し、演算装置1に送信する。演算装置1は、記憶領域2mから読み出した転送通知データDtに基づいて、周辺装置4が割込要求信号を出力したか否かを判断する。図4の例では、周辺装置4は割込要求信号を出力しておらず、転送通知データDtはリセットされているので、演算装置1は割込処理を終了する。
【0036】
従って、本実施形態によれば、演算装置1は、周辺装置4に割り当てられた割込番号を含む割込要求信号を受信したとき、周辺装置4のレジスタセット4rではなく、主記憶装置2の記憶領域2mに転送されたレジスタセット4rのデータを読み出す。従って、周辺装置4は待機モードを維持することができる。このため、周辺装置4と割込番号を共有する他の周辺装置5Pから割込要求信号が出力し、かつ周辺装置4が割込要求信号を出力していないとき、周辺装置4は、待機モードから動作モードに遷移しない。従来技術に比較して、周辺装置4が待機モードを維持する期間を長くし、消費電力を低減できる。
【0037】
また、周辺装置4は、レジスタセット4rの先頭に、レジスタセット4rに格納されたデータを記憶領域2mにDMA転送したことを通知する転送通知データDtを格納し、割込要求信号を演算装置1に出力する前に、転送通知データDtを含む連続書込データを主記憶装置2にDMA転送し(図3参照。)する。さらに、演算装置1は、割込処理の終了時に記憶領域2m内の転送通知データDtをリセットする。従って、演算装置1は、記憶領域2mから転送通知データDtを読み出すだけで、周辺装置4が割込要求信号を出力したか否かを判断できる。このため、演算装置1から主記憶装置2へのアクセス回数を低減し、メモリ帯域の消費量及び消費電力を削減できる。
【0038】
第3の動作例.
図5は、図1のデータ転送システムの第3の動作例を示すシーケンス図である。図5を参照して、演算装置1がレジスタセット4r内の全てのデータを読み出すときの図1のデータ転送システムの第3の動作例を説明する。
【0039】
始めに、図13を参照して、演算装置1Pがレジスタセット4Pr内の全てのデータを読み出すときの図10の従来技術に係るデータ転送システムの第3の動作例を説明する。図13において、演算装置1Pは、レジスタセット4Pr内のデータを読み出すことを要求する読出要求信号を周辺制御装置3に送信する。周辺制御装置3は、演算装置1Pから読出要求信号を受信すると、周辺装置4Pを動作モードに遷移するように制御し、受信した読出要求信号を周辺装置4Pに転送する。動作モードに遷移した周辺装置4Pは、読出要求信号に応答して、レジスタセット4Pr内のデータを読み出して読出データとして周辺制御装置3に送信し、待機モードに遷移する。そして、周辺制御装置3は、受信した読出データを演算装置1Pに転送する。このとき、読出データのサイズは、周辺制御装置3のメモリサイズに依存し、例えば4バイトである。このため、レジスタセット4Pr内のデータサイズが例えば256バイトであるとき、演算装置1Pと周辺装置4Pとの間で、周辺制御装置3を経由して、読出データを64回転送する必要がある。また、転送の度に、周辺装置4Pは待機モードから読み出しモードに遷移するので、消費電力につながってしまう。
【0040】
次に、図5を参照して、演算装置1がレジスタセット4r内の全てのデータを読み出すときの図1のデータ転送システムの第3の動作例を説明する。図5において、演算装置1は、レジスタセット4r内の全てのデータを記憶領域2mにDMA転送することを要求する書込要求信号を、周辺制御装置3に送信する。これに応答して、周辺制御装置3は、周辺装置4を動作モードに遷移するように制御し、受信した書込要求信号を周辺装置4に転送する。動作モードに遷移した周辺装置4は、書込要求信号に応答して、レジスタセット4r内の全てのデータを連続書込データとして、周辺制御装置3及び演算装置1を介して主記憶装置2の記憶領域2mにDMA転送する。そして、周辺装置4は動作モードから待機モードに遷移する。
【0041】
さらに、図5において、演算装置1は、記憶領域2mに格納されたデータを読み出すことを要求する読出要求信号を主記憶装置2に送信する。これに応答して、主記憶装置2は記憶領域2mに格納されたデータを読み出し、読出データとして演算装置1に送信する。演算装置1と主記憶装置2とは、記憶領域2mに格納された全てのデータが読み出されるまで、読出要求信号と読出データとの送受信を繰り返す。そして、演算装置1は、記憶領域2mに格納された全てのデータの読み出しが終了すると、記憶領域2m内の転送通知データDtをリセットすることを要求する転送通知データリセット要求信号を主記憶装置2に送信する。これに応答して、主記憶装置2は、記憶領域2mに格納された転送通知データDtをリセットする。さらに、演算装置1は、記憶領域2mからのデータの読み出しが終了したことを通知する読出終了通知信号を、周辺制御装置3に送信する。これに応答して、周辺制御装置3は、周辺装置4を動作モードに遷移するように制御し、受信した読出終了通知信号を周辺装置4に転送する。読出終了通知信号に応答して、周辺装置4は、レジスタセット4r内の転送通知データDtをリセットする。従って、周辺装置4は、レジスタセット4r内の転送通知データDtに基づいて、演算装置1による記憶領域2mからのデータの読み出しが終了したことを識別できる。
【0042】
図5の動作例によれば、周辺装置4は、レジスタセット4r内の全てのデータをDMA転送した後に、動作モードから待機モードに遷移する。また、演算装置1は、周辺装置4のレジスタセット4rにアクセスすることなく、主記憶装置2にアクセスすることにより、周辺装置4のレジスタセット4r内のデータを読み出す。従って、従来技術に比較して消費電力及びバス帯域の消費量を削減できる。さらに、周辺装置4からレジスタセット4r内のデータを主記憶装置2にDMA転送した後に、演算装置1は主記憶装置2からレジスタセット4r内のデータを読み出すので、演算装置1は、従来技術に比較して短時間でレジスタセット4r内のデータを読み出すことができる。
【0043】
なお、図5において、周辺装置4は、レジスタセット4r内の全てのデータを主記憶装置2にDMA転送したが、本発明はこれに限らず、レジスタセット4r内のデータのうち、前回のDMA転送の後に更新されたレジスタ(更新レジスタ)のデータのみを主記憶装置2にDMA転送してもよい。
【0044】
第2の実施形態.
図6は、本発明の第2の実施形態に係るデータ転送システムの構成を示すブロック図であり、図7は、図6のデータ転送システムの動作例を示すシーケンス図である。図6において、本実施形態に係るデータ転送システムは、第1の実施形態に係るデータ転送システムに比較して、主記憶装置2に代えて主記憶装置2Aを備え、周辺制御装置3に代えて周辺制御装置3Aを備えた点が異なる。ここで、主記憶装置2Aは、主記憶装置2に比較して、レジスタセット4r内のデータを格納するための記憶領域2mを含まない。また、周辺制御装置3Aは、周辺制御装置3に比較して、レジスタセット4r内のデータを格納するための副記憶装置3Amを備える。また、本実施形態において、レジスタセット4r内のDMA転送先アドレスデータDa(図2参照。)は、副記憶装置3Amのアドレスデータである。
【0045】
図7において、周辺装置4は、図3のようにレジスタセット4r内のデータの更新などの割込要因が発生したとき、及び図5のように演算装置1から周辺制御装置3Aを介して書込要求信号を受信したときなどの所定の条件において、待機モードから動作モードに遷移し、レジスタセット4r内のデータを、周辺制御装置3A内の副記憶装置3AmにDMA転送する。そして、周辺装置4は、動作モードから待機モードに遷移する。さらに、演算装置1Pは、副記憶装置3AmにDMA転送されたレジスタセット4r内のデータを読み出すことを要求する読出要求信号を周辺制御装置3Aに送信する。これに応答して、周辺制御装置3Aは、副記憶装置3Amに格納されたデータを読み出し、読出データとして演算装置1に送信する。周辺制御装置3Aと演算装置1とは、副記憶装置3Amに格納された全てのデータの読み出しが終了するまで、読出要求信号及び読出データの送受信を繰り返す。
【0046】
従って、本実施形態において、演算装置1は、周辺装置4及び主記憶装置2Aに読み出しアクセスすることなく、副記憶装置3Amに転送されたレジスタセット4r内のデータを読み出すことができる。これにより、周辺装置4はレジスタ読み出しによる待機モードから動作モードへの遷移を行う必要がなく待機モードを維持できるので、従来技術に比較して消費電力及びバス帯域の消費量を削減できる。さらに、演算装置1は主記憶装置2Aにアクセスしないので、演算装置1が主記憶装置2Aの負荷が大きい処理を実行しているときに、当該処理の速度を低下させることがない。さらに、主記憶装置2Aのメモリ帯域の消費量を低減できる。
【0047】
なお、本実施形態において、副記憶装置3Amを周辺制御装置3A内に設けたが、本発明はこれに限られず、演算装置1内又は別の装置内に設けてもよい。
【0048】
第3の実施形態.
図8は、本発明の第3の実施形態に係るデータ転送システムの構成を示すブロック図であり、図9は、図8のデータ転送システムの動作例を示すシーケンス図である。本実施形態に係るデータ転送システムは、第1の実施形態に係るデータ転送システムに比較して、演算装置1に代えて演算装置1Aを備え、周辺装置4に代えて図10の周辺装置4Aを備えた点が異なる。ここで、演算装置1Aは、DMAコントローラ1cと、インテル(登録商標)社のx86に準拠したリピートプリフィクス(REP)と、1バイトのデータを転送するためのムーブストリング命令(MOVSB)などのストリング命令の組み合わせによるデータ転送のための命令コード群を、DMA転送のための1つの命令コードに変換するDMA変換装置1dを備えて構成される。
【0049】
図10の従来技術に係るデータ転送システムの場合、演算装置1Pは、周辺装置4Pのレジスタセット4Pr内の256バイトのデータを読み出して主記憶装置2Pに転送するとき、以下の3個の命令コードを実行する。
【0050】
CLD
MOV CX,100h
REP MOVSB
【0051】
ここで、「CLD」はディレクションフラグDFを、アドレスを増加させることを表す1に設定するためのクリアディレクションフラグ命令であり、「MOV CX,100h」は、データ転送の繰り返し回数であるカウンタレジスタCXのデータを100h(hは16進数を表す。)に設定するためのムーブ命令であり、「REP MOVSB」は、レジスタセット4Prのアドレス[DS:SI]に格納された1バイトのデータを、主記憶装置2Pのアドレス[ES:DI]に転送するムーブストリングバイト命令(MOVSB)を、カウンタレジスタCXに格納された値の回数だけ繰り返して実行するためのデータ転送命令である。これらの命令コードを順次実行することにより、周辺装置4Pのレジスタセット4r内のアドレス[DS:DI]以降の256バイトのデータは、周辺制御装置3を介して1バイトずつ主記憶装置2Pに転送される。このため、周辺装置4Pに対して、256回のアクセスが発生する。
【0052】
これに対して、図8のデータ転送システムにおいて、DMA変換装置1dは、ムーブストリング命令(MOVSB)などのストリング命令を繰り返して実行するデータ転送のための命令コード群を、DMA転送のための1つの命令コードに変換する。例えば、上述した命令コード群は、DMA変換装置1dにより以下の1つの命令コードに変換される。
【0053】
DMA 100h
【0054】
ここで、DMA転送命令「DMA」のオペランド(100h)は、DMA転送されるデータのサイズである。DMAコントローラ1cは、変換後のDMA転送命令を周辺制御装置3を介して周辺装置4Pに出力する。これに応答して、周辺装置4Pは、周辺装置4Pのレジスタセット4Pr内のアドレス[DS:DI]以降の256バイトのデータを、周辺制御装置3を介して1回のDMA転送により主記憶装置2の記憶領域2mに転送する。
【0055】
図9において、演算装置1AのDMA変換装置1dは、リピートプリフィクス(REP)とストリング命令との組み合わせによるデータ転送命令を含む命令コード群を、DMA転送のための1つの命令コード(以下、DMA転送命令コードという。)に変換してDMAコントローラ1cに出力し、これに応答して、DMAコントローラ1cは変換後のDMA転送命令コードを含む連続読出要求信号を周辺制御装置3に出力する。連続読出要求信号に応答して、周辺制御装置3は、周辺装置4Pを動作モードに遷移するように制御し、連続読出要求信号を周辺装置4Pに転送する。動作モードに遷移した周辺装置4Pは、連続読出要求信号に応答して、レジスタセット4Pr内のデータを、連続書込データとして周辺制御装置3を介して主記憶装置2の記憶領域2mにDMA連続転送により転送する。そして、周辺装置4Pは待機モードに遷移する。さらに、図9において、演算装置1Aは第1の実施形態に係る演算装置1と同様に、周辺装置4Pにアクセスすることなく、主記憶装置2の記憶領域2mから、レジスタ4Pr内のデータを読み出す。
【0056】
従って、本実施形態によれば、レジスタセット4Pr内のデータを主記憶装置2に転送する場合に、周辺装置4Pへの読み出しアクセス回数を従来技術に比較して低減できる。このため、周辺装置4Pの待機モードから動作モードへの遷移回数を削減して、消費電力及びバス帯域の消費量を削減できる。また、DMA連続転送を利用すれば、より少ないアクセス回数ですべてのデータを周辺装置4Pから主記憶装置2にDMA転送できる。
【0057】
第1の実施形態及び第2の実施形態に係るデータ転送システムの場合、周辺装置4は、レジスタセット4r内のデータを、所定のタイミングで主記憶装置2にDMA転送するための追加の装置及びその駆動ソフトウェアが必要となる。しかしながら、本実施形態によれば、演算装置1AがDMA転送命令を周辺装置4Pに送信するので、このような追加の装置及びその駆動ソフトウェアなしに、従来技術に係る周辺装置4Pから主記憶装置2にレジスタセット4Pr内のデータをDMA転送できる。
【0058】
なお、本実施形態において、DMA変換装置1dを演算装置1Aに設けたが、本発明はこれに限られず、周辺制御装置3又はほかの装置に設けてもよい。
【産業上の利用可能性】
【0059】
以上説明したように、本発明に係るデータ転送システム及びデータ転送方法によれば、周辺装置は、レジスタ手段に格納されたデータを、主記憶装置又は演算装置の所定の記憶領域にDMA転送し、演算装置は、周辺装置にアクセスすることなく、主記憶装置にDMA転送されたデータを読み出すので、従来技術に比較して演算装置から周辺装置へのアクセス時間及びアクセス回数を削減し、消費電力を低減できる。
【符号の説明】
【0060】
1,1A…演算装置、
1c…DMAコントローラ、
1d…DMA変換装置、
2,2A…主記憶装置、
2m…記憶領域、
3,3A…周辺制御装置、
3Am…副記憶装置、
4,4P…周辺装置、
4r,4Pr…レジスタセット、
5P…周辺装置、
5Pr…レジスタセット。
【先行技術文献】
【特許文献】
【0061】
【特許文献1】特開2006−228194号公報。
【特許文献2】特開2004−206241号公報。
【特許文献3】特許第2723970号公報。
【特許文献4】特開平2−311050号公報。

【特許請求の範囲】
【請求項1】
演算装置と、
上記演算装置に接続された主記憶装置と、
上記演算装置に接続された周辺制御装置と、
上記周辺制御装置に接続され、レジスタ手段を含む周辺装置とを備えたデータ転送システムにおいて、
上記周辺装置は、上記レジスタ手段に格納されたデータを、上記主記憶装置又は上記演算装置の所定の記憶領域にDMA(Direct Memory Access)転送し、
上記演算装置は、上記周辺装置にアクセスすることなく、上記記憶領域にDMA転送されたデータを読み出すことを特徴とするデータ転送システム。
【請求項2】
上記周辺装置は、上記DMA転送を行ったことを通知するための転送通知データを上記レジスタ手段に格納した後に、上記レジスタ手段に格納されかつ上記転送通知データを含むデータを上記記憶領域にDMA転送し、
上記演算装置は、上記記憶領域にDMA転送された転送通知データを読み出し、当該読み出された転送通知データに基づいて、上記周辺装置がDMA転送を行った否かを判断し、上記周辺装置がDMA転送を行っていないときは、上記記憶領域にDMA転送された他のデータを読み出さないことを特徴とする請求項1記載のデータ転送システム。
【請求項3】
上記演算装置は、上記記憶領域にDMA転送されたデータの読み出しを終了したとき、上記記憶領域に格納された転送通知データをリセットするように制御するとともに、上記終了を通知する終了通知信号を上記周辺装置に送信し、
上記周辺装置は、上記終了通知信号に応答して、上記レジスタ手段に格納された転送通知データをリセットすることを特徴とする請求項2記載のデータ転送システム。
【請求項4】
上記周辺装置は、上記演算装置に対して所定の割込処理の実行を要求する割込要求信号を送信する前に、上記レジスタ手段に格納されたデータを、上記記憶領域にDMA転送することを特徴とする請求項1乃至3のうちのいずれか1つに記載のデータ転送システム。
【請求項5】
上記周辺装置は、上記レジスタ手段内のデータが変更されたとき、当該変更されたデータを上記記憶領域にDMA転送することを特徴とする請求項1乃至4のうちのいずれか1つに記載のデータ転送システム。
【請求項6】
上記演算装置は、データを所定の転送単位毎に転送するためのストリング命令を繰り返して実行するための命令コード群を、上記データをDMA転送するための1つの命令コードに変換し、上記命令コードを実行することにより、上記周辺装置を、上記レジスタ手段に格納されたデータを上記記憶領域にDMA転送するように制御することを特徴とする請求項1乃至5のうちのいずれか1つに記載のデータ転送システム。
【請求項7】
演算装置と、
上記演算装置に接続された主記憶装置と、
上記演算装置に接続された周辺制御装置と、
上記周辺制御装置に接続され、レジスタ手段を含む周辺装置とを備えたデータ転送システムのためのデータ転送方法において、
上記周辺装置が、上記レジスタ手段に格納されたデータを、上記主記憶装置又は上記演算装置の所定の記憶領域にDMA(Direct Memory Access)転送する転送ステップと、
上記演算装置が、上記周辺装置にアクセスすることなく、上記記憶領域にDMA転送されたデータを読み出す読出ステップとを含むことを特徴とするデータ転送方法。
【請求項8】
上記転送ステップは、上記周辺装置が、上記DMA転送を行ったことを通知するための転送通知データを上記レジスタ手段に格納した後に、上記レジスタ手段に格納されかつ上記転送通知データを含むデータを上記記憶領域にDMA転送するステップを含み、
上記データ送信方法は、
上記演算装置が、上記記憶領域にDMA転送された転送通知データを読み出し、当該読み出された転送通知データに基づいて、上記周辺装置がDMA転送を行った否かを判断し、上記周辺装置がDMA転送を行っていないときは、上記記憶領域にDMA転送された他のデータを読み出さないステップをさらに含むことを特徴とする請求項7記載のデータ転送方法。
【請求項9】
上記演算装置が、上記記憶領域にDMA転送されたデータの読み出しを終了したとき、上記記憶領域に格納された転送通知データをリセットするように制御するとともに、上記終了を通知する終了通知信号を上記周辺装置に送信するステップと、
上記周辺装置が、上記終了通知信号に応答して、上記レジスタ手段に格納された転送通知データをリセットするステップとをさらに含むことを特徴とする請求項8記載のデータ転送方法。
【請求項10】
上記周辺装置が、上記演算装置に対して所定の割込処理の実行を要求する割込要求信号を送信する前に、上記レジスタ手段に格納されたデータを、上記記憶領域にDMA転送するステップをさらに含むことを特徴とする請求項7乃至9のうちのいずれか1つに記載のデータ転送方法。
【請求項11】
上記周辺装置が、上記レジスタ手段内のデータが変更されたとき、当該変更されたデータを上記記憶領域にDMA転送するステップをさらに含むことを特徴とする請求項7乃至10のうちのいずれか1つに記載のデータ転送方法。
【請求項12】
上記演算装置が、データを所定の転送単位毎に転送するためのストリング命令を繰り返して実行するための命令コード群を、上記データをDMA転送するための1つの命令コードに変換し、上記命令コードを実行することにより、上記周辺装置を、上記レジスタ手段に格納されたデータを上記記憶領域にDMA転送するように制御するステップをさらに含むことを特徴とする請求項7乃至11のうちのいずれか1つに記載のデータ転送方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate


【公開番号】特開2012−190414(P2012−190414A)
【公開日】平成24年10月4日(2012.10.4)
【国際特許分類】
【出願番号】特願2011−55651(P2011−55651)
【出願日】平成23年3月14日(2011.3.14)
【出願人】(000006747)株式会社リコー (37,907)
【Fターム(参考)】