(57)【要約】【課題】アドレス参照でデータ転送するプロトコルにおいて、パケットの形式を変えず、かつ、通信負荷を増すこと無く、受信確認が行えるデータ転送装置を得る。【解決手段】メモリまたはレジスタのアドレスとして複数のアドレス空間のアドレスを設定する。マスタ１０は、前回のアクセス要求に対して正常なデータアクセスが行えた場合は、次のアクセス要求で異なるアドレス空間のアドレスを使用し、正常なデータアクセスが行えなかった場合は、前回と同じアドレス空間のアドレスを使用する。スレーブ２０の受信確認手段２２は、アクセス要求が前回アクセス要求時のアドレス空間のアドレスと同じ場合は正常終了していないと判定し、異なる場合は正常終了したと判定する。【選択図】図１
2012182718.tif 000002
【特許請求の範囲】
【請求項１】
一方の装置から他方の装置のメモリまたはレジスタに対してデータアクセス要求を行う場合、前記メモリまたはレジスタをアドレスによって指定し、前記他方の装置は、指定されたアドレスに基づいて前記メモリまたはレジスタへのデータアクセスを行うデータ転送装置において、
前記メモリまたはレジスタのアドレスとして複数のアドレス空間のアドレスを設定し、
前記一方の装置は、
前回のアクセス要求に対して正常なデータアクセスが行えた場合は、次のアクセス要求で異なるアドレス空間のアドレスを使用し、前回のアクセス要求に対して正常なデータアクセスが行えなかった場合は、次のアクセス要求で前回と同じアドレス空間のアドレスを使用するアクセス要求手段を備え、
前記他方の装置は、
前記一方の装置からアクセス要求を受けた場合、当該アクセス要求が前回のアクセス要求時のアドレス空間のアドレスであるか否かを判定し、異なるアドレス空間のアドレスであった場合は前回のアクセス要求に対してデータアクセスが正常終了したと判定し、前回のアクセス要求時と同じアドレス空間のアドレスであった場合は、前回のアクセス要求に対してデータアクセスが正常終了していないと判定する受信確認手段を備えたことを特徴とするデータ転送装置。
【請求項２】
他方の装置は、レジスタとして、
前回のデータアクセス時のデータと、それ以降の新たなデータとを保持するレジスタバックアップを有し、受信確認手段が正常終了であると判定した場合は前記レジスタバックアップのデータをクリアし、正常終了していないと判定した場合は前記レジスタバックアップのデータを一方の装置への応答データとする状態レジスタを備えたことを特徴とする請求項１記載のデータ転送装置。
【請求項３】
一方の装置から他方の装置のメモリまたはレジスタに対してデータアクセス要求を行う場合、前記メモリまたはレジスタをアドレスによって指定し、前記他方の装置は、指定されたアドレスに基づいて前記メモリまたはレジスタへのデータアクセスを行うデータ転送装置において、
前記レジスタのアドレスとして複数のアドレス空間のアドレスを設定し、
前記一方の装置は、
前回のアクセス要求に対して正常なデータアクセスが行えた場合は、次のアクセス要求で異なるアドレス空間のアドレスを使用し、前回のアクセス要求に対して正常なデータアクセスが行えなかった場合は、次のアクセス要求に前回と同様のアドレス空間のアドレスを使用するアクセス要求手段を備え、
前記他方の装置は、
前記一方の装置からアクセス要求を受けた場合、当該アクセス要求が前回のアクセス要求時のアドレス空間のアドレスであるか否かを判定し、異なるアドレス空間のアドレスであった場合は前回のアクセス要求に対してデータアクセスが正常終了したと判定し、前回のアクセス要求時と同じアドレス空間のアドレスであった場合は、前回のアクセス要求に対してデータアクセスが正常終了していないと判定する受信確認手段と、
前回のデータアクセス時のデータと、それ以降の新たなデータとを保持するレジスタバックアップを有し、前記受信確認手段が正常終了であると判定した場合は前記レジスタバックアップのデータをクリアし、正常終了していないと判定した場合は前記レジスタバックアップのデータを一方の装置への応答データとする状態レジスタを前記レジスタとして備えたことを特徴とするデータ転送装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、アドレス参照でデータ転送を行い、かつ、誤り検出機能を持つ既存のプロトコルに則ってデータ転送を行うデータ転送装置に関する。
【背景技術】
【０００２】
誤り検出機能があるデータ通信では、転送パケットの誤りを検出した際、再送することで、パケットの到達性を実現する。
これに対し、例えば特許文献１に示されたデータ通信方法では、専用の信号線を設けること無く、送信側において、受信側が受信できたかどうかを確認できる手段を提供している。この文献に示されたデータ通信方法では、パケットのヘッダに再送表示フラグという情報を付加し、これを操作することで、送信側で受信側が受信できたかどうかを確認している。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平１０−１９０７７０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上記従来のデータ通信方法では、パケットのヘッダに情報を埋め込む必要があった。このため、埋め込みに対する拡張性を持つプロトコルでしか利用できないという問題があった。例えば、アドレス参照で読み書きを行うプロトコルでは、ヘッダとボディの両方の形式が規定されおり、情報を埋め込むことができず、このようなプロトコルを用いるデータ転送では適用することができない。
【０００５】
他の方法として、送信側にアドレス参照可能なフラグを用意し、受信側が受信できた際に受信側がこのフラグに書き込むことで、受信確認とする方法も考えられる。しかし、この方法では、別途データ転送を行う必要があり、通信負荷が増加するという問題点を有していた。
【０００６】
この発明は上記のような課題を解決するためになされたもので、アドレス参照でデータ転送するプロトコルにおいて、パケットの形式を変えず、かつ、通信負荷を増すこと無く、受信確認が行えるデータ転送装置を得ることを目的とする。
【課題を解決するための手段】
【０００７】
この発明に係るデータ転送装置は、一方の装置から他方の装置のメモリまたはレジスタに対してデータアクセス要求を行う場合、メモリまたはレジスタをアドレスによって指定し、他方の装置は、指定されたアドレスに基づいてメモリまたはレジスタへのデータアクセスを行うデータ転送装置において、メモリまたはレジスタのアドレスとして複数のアドレス空間のアドレスを設定し、一方の装置は、前回のアクセス要求に対して正常なデータアクセスが行えた場合は、次のアクセス要求で異なるアドレス空間のアドレスを使用し、前回のアクセス要求に対して正常なデータアクセスが行えなかった場合は、次のアクセス要求で前回と同じアドレス空間のアドレスを使用するアクセス要求手段を備え、他方の装置は、一方の装置からアクセス要求を受けた場合、アクセス要求が前回のアクセス要求時のアドレス空間のアドレスであるか否かを判定し、異なるアドレス空間のアドレスであった場合は前回のアクセス要求に対してデータアクセスが正常終了したと判定し、前回のアクセス要求時と同じアドレス空間のアドレスであった場合は、前回のアクセス要求に対してデータアクセスが正常終了していないと判定する受信確認手段を備えたものである。
【発明の効果】
【０００８】
この発明のデータ転送装置は、前回のアクセス要求に対して正常なデータアクセスが行えた場合は、次のアクセス要求で異なるアドレス空間のアドレスを使用し、前回のアクセス要求に対して正常なデータアクセスが行えなかった場合は、次のアクセス要求で前回と同じアドレス空間のアドレスを使用するようにしたので、アドレス参照でデータ転送するプロトコルにおいても、パケットの形式を変えることなく、かつ、通信負荷を増すこと無く、受信確認を行うことができる。
【図面の簡単な説明】
【０００９】
【図１】この発明の実施の形態１によるデータ転送装置を示す構成図である。
【図２】この発明の実施の形態１によるデータ転送装置のデータ転送用アドレス空間を示す説明図である。
【図３】この発明の実施の形態１によるデータ転送装置の通信例を示す説明図である。
【図４】この発明の実施の形態２によるデータ転送装置を示す構成図である。
【図５】この発明の実施の形態３によるデータ転送装置のデータ転送用アドレス空間を示す説明図である。
【発明を実施するための形態】
【００１０】
実施の形態１．
図１は、この発明の実施の形態１によるデータ転送装置を示す構成図である。
図１に示すデータ転送装置は、マスタ（一方の装置）１０とスレーブ（他方の装置）２０が信号線３０を介して接続されることで構成されている。このデータ転送装置は、マスタ１０からスレーブ２０のメモリまたはレジスタに対してデータアクセス要求を行う場合、そのメモリまたはレジスタをアドレスによって指定し、スレーブ２０は、指定されたアドレスに基づいてメモリまたはレジスタへのデータアクセスを行うよう構成されている。
【００１１】
また、実施の形態１のデータ転送装置では、スレーブ２０側でデータ転送の対象となるレジスタやメモリに転送用のアドレスを割り振る。これを「本来のアドレス」、または、「第１アドレス」と呼ぶ。その上で、転送用のアドレスとして、同じレジスタやメモリを指定できる別のアドレスを割り振る。これを「ミラーアドレス」、または、「第２アドレス」と呼ぶ。図２は、これらのアドレス空間を示す説明図である。
【００１２】
図１に戻り、マスタ１０は、データ転送でデータを参照／更新する装置であり、制御モジュール１１と送受信モジュール１２とを備えている。制御モジュール１１は、マスタ１０におけるデータ通信の制御を行うモジュールであり、アクセス要求手段１３を備えている。このアクセス要求手段１３は、前回のアクセス要求に対して正常なデータアクセスが行えた場合は、次のアクセス要求で異なるアドレス空間のアドレスを使用し、前回のアクセス要求に対して正常なデータアクセスが行えなかった場合は、次のアクセス要求で前回と同じアドレス空間のアドレスを使用する手段である。送受信モジュール１２は、制御モジュール１１からのアクセス要求を元にパケットを生成してスレーブ２０に送信すると共に、スレーブ２０からのパケットを受け取ってその誤り検出を行い、誤りを検出した場合はこれを破棄し、誤りが無ければ、パケットを分解し、読み出し結果を制御モジュール１１に渡す機能を有している。
【００１３】
スレーブ２０は、データ転送でそのデータを保有する装置であり、送受信モジュール２１と受信確認手段２２を備えている。送受信モジュール２１は、マスタ１０からのパケットを受け取ってその誤り検出を行い、誤りを検出した場合はこれを破棄し、誤りが無ければパケットに示すアクセス要求に従ってメモリまたはレジスタにアクセスを行い、その結果に基づいてパケットを生成してマスタ１０宛に送信する機能を有している。受信確認手段２２は、スレーブ２０が返信したパケットの受信状況を判定する手段である。即ち、受信確認手段２２は、マスタ１０からアクセス要求を受けた場合、そのアクセス要求が前回のアクセス要求時のアドレス空間のアドレスであるか否かを判定し、異なるアドレス空間のアドレスであった場合は前回のアクセス要求に対してデータアクセスが正常終了したと判定し、前回のアクセス要求時と同じアドレス空間のアドレスであった場合は、前回のアクセス要求に対してデータアクセスが正常終了していないと判定するよう構成されている。
【００１４】
次に、このように構成された実施の形態１のデータ転送装置の動作について説明する。
先ず、データ転送装置における基本動作として、マスタ１０がスレーブ２０のレジスタを参照する例について説明する。
●制御モジュール１１のアクセス要求手段１３は、対象レジスタを第１アドレスで指定し、送受信モジュール１２に読み出しを要求する。
●送受信モジュール１２は、読み出し要求を元にパケットを生成し、信号線３０を介してスレーブ２０へ送る。
●スレーブ２０の送受信モジュール２１は、マスタ１０からのパケットを受け取り、誤り検出を行い、誤りを検出した場合はこれを破棄する。誤りが無ければ、パケットに示す読み出し要求に従ってレジスタの値を読み出す。
●受信確認手段２２は、パケットで指定されたアドレスを記憶する。
●送受信モジュール２１は、読み出したレジスタの値を元にパケットを生成し、信号線３０を介してマスタ１０へ送る。
【００１５】
●送受信モジュール１２は、パケットを受け取り、誤り検出を行い、誤りを見つけた場合は、これを破棄する。誤りが無ければ、パケットを分解し、読み出し結果を制御モジュール１１に渡す。
尚、マスタ１０の送受信モジュール１２は、パケット送信後、一定時間以上スレーブ２０からの返信が無いと、送信したパケットを再送する。
【００１６】
以上の基本動作により、信号線の増加や、転送時のパケットの形式変更を行うこと無く、スレーブ２０側において、マスタ１０側で受信に成功したかどうかを知ることができる。
なお、ここではレジスタの読み出しを例としたが、レジスタへの書き込みも同様である。また、メモリへのデータアクセスであっても同様である。
【００１７】
次に、図３に示すように、同じレジスタを２回読み出す例を用いて、データ転送における誤り検出と再送の動作について説明する。
先ず、ケースＡは、転送時に誤りが生じないケースである。この場合、マスタ１０側がパケットを受信したのを確認するまでの流れは、次のようになる。
●マスタ１０が「第１アドレスを使用した読出要求＃１」を送信する。
●スレーブ２０が「第１アドレスを使用した読出要求＃１」を受信する。
●スレーブ２０が「読出結果＃１」を返信する。
●マスタ１０が「読出結果＃１」を受信する。
●マスタ１０が「第２アドレスを使用した読出要求＃２」を送信する。
●スレーブ２０が「読出結果＃１」をマスタ１０が受信できたことを確認する。即ち、受信確認手段２２は、指定されているアドレスが第１と第２で異なるので、受信できたと判断する。
【００１８】
次に、ケースＢは、マスタ１０が送信する際に１度誤りが生じたケースである。この場合の流れは、次のようになる。
●マスタ１０が「第１アドレスを使用した読出要求＃１」を送信する。
●スレーブ２０が「第１アドレスを使用した読出要求＃１」を受信するが、送受信モジュール２１は誤りを検出したので破棄する。
●マスタ１０がスレーブ２０からの返信が無いので「第１アドレスを使用した読出要求＃１」を再送する。
●スレーブ２０が「第１アドレスを使用した読出要求＃１」を受信する。
●スレーブ２０が「読出結果＃１」を返信する。
●マスタ１０が「読出結果＃１」を受信する。
●マスタ１０が「第２アドレスを使用した読出要求＃２」を送信する。
●スレーブ２０が「読出結果＃１」をマスタ１０が受信できたことを確認する。即ち、受信確認手段２２は指定されているアドレスが第１と第２で異なるので、受信できたと判断する。
【００１９】
最後に、ケースＣは、スレーブが返信する際に１度誤りが生じたケースである。この場合の流れは、次のようになる。
●マスタ１０が「第１アドレスを使用した読出要求＃１」を送信する。
●スレーブ２０が「第１アドレスを使用した読出要求＃１」を受信する。
●スレーブ２０が「読出結果＃１」を返信する。
●マスタ１０が「読出結果＃１」を受信するが、誤りを検出したので破棄する。
●マスタ１０がスレーブ２０からの返信が無い（受信したパケットを破棄した）ので、「第１アドレスを使用した読出要求＃１」を再送する。
●スレーブ２０が「第１アドレスを使用した読出要求＃１」を受信する。
●スレーブ２０が「読出結果＃１」をマスタ１が“受信できなかったこと”を確認する。即ち、受信確認手段２２は指定されているアドレスが共に第１アドレスで同じなので、受信できなかったと判断する。
【００２０】
●スレーブ２０が「読出結果＃１’」を返信する。ここで、読出結果＃１’とは１回目の読出要求＃１から時間が経過し、２回目の読出要求＃１を受けた時点でのレジスタの値である。例えばマスタ１０が読み出すのが、発生したエラーを保持するレジスタであるとした場合、「読出結果＃１」は１回目の読出要求時の値で、「読出結果＃１’」は２回目の読出要求時の値である。この２回の読出要求の間に新たなエラーが発生していれば、この「読出結果＃１」と「読出結果＃１’」は、発生したエラーの分、異なる値となる。新たなエラーが発生していなければ両者は同じ値となる。
●マスタ１０が「読出結果＃１’」を受信する。
●マスタ１０が「第２アドレスを使用した読出要求＃２」を送信する。
●スレーブ２０が「読出結果＃１’」をマスタ１０が“受信できたことを”確認する。即ち、受信確認手段２２は指定されているアドレスが第１と第２で異なるので、受信できたと判断する。
【００２１】
このように、スレーブ２０の受信確認手段２２は、１回目のアドレスと２回目のアドレスを比較することで、マスタ１０が１回目の受信に成功したかどうかを確認することができる。
【００２２】
以上説明したように、実施の形態１のデータ転送装置によれば、一方の装置から他方の装置のメモリまたはレジスタに対してデータアクセス要求を行う場合、メモリまたはレジスタをアドレスによって指定し、他方の装置は、指定されたアドレスに基づいてメモリまたはレジスタへのデータアクセスを行うデータ転送装置において、メモリまたはレジスタのアドレスとして複数のアドレス空間のアドレスを設定し、一方の装置は、前回のアクセス要求に対して正常なデータアクセスが行えた場合は、次のアクセス要求で異なるアドレス空間のアドレスを使用し、前回のアクセス要求に対して正常なデータアクセスが行えなかった場合は、次のアクセス要求で前回と同じアドレス空間のアドレスを使用するアクセス要求手段を備え、他方の装置は、一方の装置からアクセス要求を受けた場合、アクセス要求が前回のアクセス要求時のアドレス空間のアドレスであるか否かを判定し、異なるアドレス空間のアドレスであった場合は前回のアクセス要求に対してデータアクセスが正常終了したと判定し、前回のアクセス要求時と同じアドレス空間のアドレスであった場合は、前回のアクセス要求に対してデータアクセスが正常終了していないと判定する受信確認手段を備えたので、アドレス参照でデータ転送するプロトコルにおいても、パケットの形式を変えることなく、かつ、通信負荷を増すこと無く、受信確認を行うことができる。
【００２３】
実施の形態２．
図４は、実施の形態２のデータ転送装置を示す構成図である。
実施の形態２におけるデータ転送装置は、マスタ１０、スレーブ２０ａ及び信号線３０からなり、マスタ１０及び信号線３０の構成は実施の形態１と同様であるため、マスタ１０側の内部構成については省略している。
【００２４】
スレーブ２０ａは、送受信モジュール２１、受信確認手段２２、状態レジスタ２３を備えている。送受信モジュール２１及び受信確認手段２２は、実施の形態１と同様の構成である。状態レジスタ２３は、データ転送でマスタ１０が参照するレジスタであり、レジスタ本体２４とレジスタバックアップ２５を備えている。レジスタ本体２４は、エラー要因など、各種一過性の信号をラッチし、その要因の発生の有無を保持するレジスタである。レジスタバックアップ２５は、状態レジスタ２３としてのバックアップを行うためのレジスタである。
【００２５】
次に、実施の形態２のデータ転送装置の動作について説明する。
先ず、基本的な動作としてマスタ１０がスレーブ２０ａの状態レジスタ２３を参照する例を説明する。
●マスタ１０は、状態レジスタ２３を第１アドレスで指定し、読み出し要求を送出する。
●送受信モジュール２１は、パケットを受け取り、誤り検出を行い、誤りを見つけた場合は、これを破棄する。誤りが無ければ、パケットが示す読み出し要求に従って、状態レジスタ２３の値を読み出す。
●状態レジスタ２３は、読み出し要求があった際、以下のように動作する。
・レジスタ本体２４とレジスタバックアップ２５の論理和をレジスタバックアップ２５に代入する。
・レジスタ本体２４を０クリアする。
・このレジスタバックアップ２５の値を状態レジスタ２３の値として送受信モジュール２１に返す。
【００２６】
●送受信モジュール２１は、受け取った値を元に、パケットを生成し、マスタ１０へ読み出し結果を返す。
●マスタ１０は、読み出し結果を受け取る。
●マスタ１０は、別の読み出し要求（または書き込み要求）を出す。この時、対象を指定するアドレスとして、第２アドレスを指定する。
●送受信モジュール２１は、パケットを受け取り、誤り検出を行い、誤りを見つけた場合は、これを破棄する。誤りが無ければ、パケットが示す要求に従う。
●受信確認手段２２は、前回記憶したアドレスと、今回指定されたアドレスを比較する。
比較の結果、アドレスの第１・第２が切り替わっていれば、前回マスタ１０へ送信したパケットがマスタ１０側で受信できたと判断する。逆に、切り替わってなければ、前回マスタ１０へ送信したパケットは、受信されなかったと判断する。前回記憶したアドレスで、状態レジスタ２３が指定されており、かつ、受信できたと判断した場合は、受信確認信号を状態レジスタ２３に送る。
●状態レジスタ２３は、受信確認手段２２から受信確認信号を受け取った際、レジスタバックアップ２５の値を０クリアする。なお、マスタ１０が今回も状態レジスタ２３の読み出しを指定している場合、このレジスタクリアが最初に行われるものとする。前述の論理和によるレジスタ更新は、この後に行われるものとする。
【００２７】
図３のケースＣを例に、実施の形態２のデータ転送装置の動作について更に説明する。
●マスタ１０が、状態レジスタ２３への読出要求＃１を送信する。
●スレーブ２０ａが、状態レジスタ２３の読出要求＃１を受信する。
●スレーブ２０ａが、状態レジスタ２３の読出結果＃１を送信する。
この時、状態レジスタ２３においては、レジスタ本体２４の値は０クリアされる。また、レジスタバックアップ２５には、読出結果＃１と同じ値が保持されている。
●マスタ１０が、読出結果＃１の受信に失敗する（誤りを検出する）。
●マスタ１０が、再度、状態レジスタ２３への読出要求＃１を送信する。
●スレーブ２０ａが、状態レジスタ２３の読出要求＃１を受信する。
この時、受信確認手段２２は、マスタ１０側が受信に失敗していることを検出する。このため、受信に成功したことを示す信号は送られず、状態レジスタ２３では、レジスタバックアップ２５の０クリアは行われない。
●スレーブ２０ａが、状態レジスタ２３の読出結果＃１’を送信する。
この時、レジスタ本体２４の値は、また０クリアされる。また、レジスタバックアップ２５には、読出結果＃１’と同じ値が保持されている。この読出結果＃１’は、読出結果＃１に、読出結果＃１を送信した後、新たにレジスタ本体２４へセットされた値を加えたものになっている。もし、レジスタ本体２４の値をそのまま返すと、読出要求＃１で読み出されるはずだった値が取りこぼしとなる。
【００２８】
●マスタ１０が、状態レジスタ２３の読出結果＃１’を受信する。
●マスタ１０が、状態レジスタ２３への読出要求＃２を送信する。
●スレーブ２０ａが、状態レジスタ２３の読出要求＃２を受信する。
この時、受信確認手段２２は、マスタ１０側が受信に成功したことを検出し、状態レジスタ２３に信号を送る。これにより、レジスタバックアップ２５は、０クリアされる。
●スレーブ２０ａが、状態レジスタ２３の読出結果＃２を送信する。
この時、レジスタ本体２４の値は０クリアされる。また、レジスタバックアップ２５には、読出結果＃２と同じ値が保持されている。この読出結果＃２は、読出結果＃１’を送信した後、新たにレジスタ本体２４へセットされた値が入る。
●マスタ１０が、読出結果＃２を受信する。
【００２９】
以上の動作により、状態レジスタ２３の値は、マスタ１０側が読み出す毎にクリアされる。また、その際、値を取りこぼすことも、重複して読むことも無い。また、マスタ１０は、読み出し要求に対する返信が届かない場合、読み出し要求を必ずしも再送する必要は無い。その時の読み出しを諦め、他のアクセスを行い、状態レジスタ２３の参照を次の読み出しタイミングに先送りすることもできる。即ち、マスタ１０はスレーブ２０ａに保持されているエラーの定期的な読み出しといったアクセスを行うため、次の読み出しタイミングであっても、最初に読み出し要求を行った時点の値を必ず取得することができる。
【００３０】
実施の形態２のデータ転送装置では、読み出したレジスタの値を自動でクリアすることができるため、明示的にレジスタをクリアする書き込みをマスタ１０側から行う必要が無い。これにより、マスタ−スレーブ間でのデータ転送回数を減らすことができる。
【００３１】
以上説明したように、実施の形態２のデータ転送装置によれば、他方の装置は、レジスタとして、前回のデータアクセス時のデータと、それ以降の新たなデータとを保持するレジスタバックアップを有し、受信確認手段が正常終了であると判定した場合はレジスタバックアップのデータをクリアし、正常終了していないと判定した場合はレジスタバックアップのデータを一方の装置への応答データとする状態レジスタを備えたので、アクセス要求を行った時点の値を確実に得ることができる共に、装置間でのデータ転送回数を減らすことができる。
【００３２】
実施の形態３．
実施の形態１、２では、データ転送用のアドレスとして、全てのレジスタやメモリにミラー領域を設けていたが、アドレスのミラー領域を用意する対象をレジスタのみとする等、一部に限定することもでき、実施の形態３はこのような例である。
図５は、レジスタに対してのみミラー領域を設けた例である。
実施の形態３において、データ転送装置としての図面上の構成は実施の形態１または実施の形態２に示すものと同様であるため、各部の構成の説明は省略する。
図５におけるレジスタの領域（第１アドレス）とレジスタのミラー領域（第２アドレス）は、実施の形態２における状態レジスタ２３（参照後、自動でクリアするレジスタ）に対して割り当てるか、あるいは、状態レジスタ２３を含む一部のアドレスにのみ割り当ててもよい。
【００３３】
例えば、レジスタが５０個あり、そのうちの４個だけ状態レジスタ２３であるとする。ここで、アドレスの０〜４９番地をこの５０個のレジスタに割り当てるだけなら、ミラー領域がない、通常の割り当てと同様である。これに対し、５０〜５３番地を状態レジスタ２３にアクセスできるミラー領域として設定するというのが、第１の方法である。また、第２の方法として、状態レジスタ２３を４８〜５１番地に割り当て、その上で、４８〜５５番地のミラー領域として５６〜６３番地を割り当てることもできる。この場合、４８〜５５番地は、状態レジスタ２３を一部に含むアドレスであり、５６〜６３番地は、このミラー領域になる。この割り当てでは、アドレスの割り当てを変えずに、状態レジスタ２３を４つ追加することができる。
このように、一部だけミラー領域がある方式では、６４個の番地があればよく、アドレスは、６ｂｉｔで足りるが、全部にミラー領域を用意した場合は、１００個の番地を使うことになり、アドレスは、７ｂｉｔ必要になる。
【００３４】
以上説明したように、実施の形態３のデータ転送装置によれば、一方の装置から他方の装置のメモリまたはレジスタに対してデータアクセス要求を行う場合、メモリまたはレジスタをアドレスによって指定し、他方の装置は、指定されたアドレスに基づいてメモリまたはレジスタへのデータアクセスを行うデータ転送装置において、レジスタのアドレスとして複数のアドレス空間のアドレスを設定し、一方の装置は、前回のアクセス要求に対して正常なデータアクセスが行えた場合は、次のアクセス要求で異なるアドレス空間のアドレスを使用し、前回のアクセス要求に対して正常なデータアクセスが行えなかった場合は、次のアクセス要求に前回と同様のアドレス空間のアドレスを使用するアクセス要求手段を備え、他方の装置は、一方の装置からアクセス要求を受けた場合、アクセス要求が前回のアクセス要求時のアドレス空間のアドレスであるか否かを判定し、異なるアドレス空間のアドレスであった場合は前回のアクセス要求に対してデータアクセスが正常終了したと判定し、前回のアクセス要求時と同じアドレス空間のアドレスであった場合は、前回のアクセス要求に対してデータアクセスが正常終了していないと判定する受信確認手段と、前回のデータアクセス時のデータと、それ以降の新たなデータとを保持するレジスタバックアップを有し、受信確認手段が正常終了であると判定した場合はレジスタバックアップのデータをクリアし、正常終了していないと判定した場合はレジスタバックアップのデータを一方の装置への応答データとする状態レジスタをレジスタとして備えたので、必要とするアドレス空間を大幅に削減することができる。
【００３５】
尚、本願発明はその発明の範囲内において、各実施の形態の自由な組み合わせ、あるいは各実施の形態の任意の構成要素の変形、もしくは各実施の形態において任意の構成要素の省略が可能である。
【符号の説明】
【００３６】
１０  マスタ、１１  制御モジュール、１２，２１  送受信モジュール、１３  アクセス要求手段、２０，２０ａ  スレーブ、２２  受信確認手段、２３  状態レジスタ、２４  レジスタ本体、２５  レジスタバックアップ。
【図１】
2012182718.tif 000003
【図２】
2012182718.tif 000004
【図３】
2012182718.tif 000005
【図４】
2012182718.tif 000006
【図５】
2012182718.tif 000007