(57)【要約】      （修正有）【課題】データ転送開始までのレイテンシを削減し、優先度に応じた転送処理を行うデータ転送装置を提供する。【解決手段】データ転送装置１００は、受信したコマンドに対する処理とレスポンスの生成を制御するコマンド制御シーケンサ１０３と、データバッファ１０７へのデータ入出力を制御するデータバッファ制御部１０６と、データ送信部１０８とデータ受信部１０９とデータバッファ制御部１０６を制御するデータ制御シーケンサ１０５とを備える。コマンド制御シーケンサ１０３は、転送要求保持部１０４に保持された優先度ＩＤに基づいてリード処理かライト処理を行うかを決定するリード・ライト処理決定部１１７を有し、データ制御シーケンサ１０５は、リード・ライト処理決定部１１７から指示されたリード転送またはライト転送のシーケンス制御を実行し、データ送信部１０８は、コマンドＩＤ付加部１２３にてコマンドＩＤが付加された送信データを送信する。【選択図】図１
2009181444.tif 000002
【特許請求の範囲】
【請求項１】
データ転送先あるいはデータ転送元となる装置からリード転送要求またはライト転送要求のコマンドを受信し、当該コマンドに従ってデータ転送を行うデータ転送装置であって、
前記コマンドを受信するコマンド受信部と、
受信したコマンドに対するレスポンスを送信するレスポンス送信部と、
受信したコマンドから得られる転送要求情報を保持する転送要求保持部と、
受信したコマンドに対する処理とレスポンスの生成を制御するコマンド制御シーケンサと、
転送データを保持するデータバッファと、
前記データバッファへのデータ入出力を制御するデータバッファ制御部と、
前記リード転送要求のコマンドに対応するデータを送信するデータ送信部と、
前記ライト転送要求のコマンドに対応するデータを受信するデータ受信部と、
前記データ送信部と前記データ受信部と前記データバッファ制御部を制御するデータ制御シーケンサと、
前記コマンド受信部で受信した前記コマンドに含まれるデータ転送の優先度を示す優先度ＩＤとコマンドを識別するコマンドＩＤを前記コマンドから分離するＩＤ分離部と、
前記リード転送要求のコマンドに対応するデータに当該コマンドに対応するコマンドＩＤを付加するコマンドＩＤ付加部と、
を備え、
前記転送要求保持部は、前記優先度ＩＤと前記コマンドＩＤを保持し、
前記コマンド制御シーケンサは、受信した前記リード転送要求と前記ライト転送要求のコマンドの中から処理を実行するコマンドを前記優先度ＩＤに基づいて決定するリード・ライト処理決定部を有し、
前記データ制御シーケンサは、前記リード・ライト処理決定部から指示されたリード転送またはライト転送のシーケンス制御を実行し、
前記データ送信部は、前記コマンドＩＤ付加部で当該コマンドに対応するコマンドＩＤを付加した前記リード転送要求のコマンドに対応するデータを送信するデータ転送装置。
【請求項２】
前記データ制御シーケンサは、データ送信中断再開制御部を有し、
データ送信中に当該データ送信に係るリード転送要求の優先度より優先度の高いコマンドを受信した場合に、
前記データ送信中断再開制御部は、データ送信再開に必要な中間情報を退避して実行中のデータ送信を中断し、
前記優先度の高いコマンドに係るデータ転送の完了後に、前記中間情報を復帰して前記データ送信処理を再開する請求項１に記載のデータ転送装置。
【請求項３】
前記リード・ライト処理決定部は、前記ライト転送要求のコマンドを受信したときに、そのライト転送要求のコマンドの優先度より優先度の高いリード転送要求のコマンドの処理中である場合には、当該処理のステータスを判定し、
前記リード転送要求に対応するデータ送信の準備状態であれば、レスポンス生成部に前記ライト転送要求のコマンドの受理を示すレスポンスの生成を指示し、
前記データ送信中あるいはデータ送信の準備完了状態であれば、レスポンス生成部に前記レスポンスの生成の待機、または、前記ライト転送要求のコマンドの不受理を示すレスポンスの生成を指示する請求項１または２に記載のデータ転送装置。
【請求項４】
前記コマンドは、データの転送単位を示す情報を含み、
前記転送要求保持部は、前記転送単位を示す情報を保持し、
前記データ送信部は、前記データ送信中断再開制御部の中断制御によりデータ送信処理を中断する場合に、前記転送単位でデータ送信を中断する請求項２または３に記載のデータ転送装置。
【請求項５】
送信データの先頭を表すスタートビットを生成するスタートビット生成部をさらに備え、
前記コマンドＩＤ付加部は、前記スタートビットと前記コマンドＩＤを１サイクルのデータにパッキング処理する請求項１〜４のいずれかに記載のデータ転送装置。
【請求項６】
前記転送要求保持部に保持された優先度ＩＤに従って内部リソースに対するデータアクセスを実行する内部リソースアクセス部を備える請求項１〜５のいずれかに記載のデータ転送装置。
【請求項７】
データ転送先あるいはデータ転送元となる装置からリード転送要求またはライト転送要求のコマンドを受信し、当該コマンドに従ってデータ転送を行うデータ転送装置であって、
前記コマンドを受信するコマンド受信部と、
受信したコマンドに対するレスポンスを送信するレスポンス送信部と、
受信したコマンドから得られる転送要求情報を保持する転送要求保持部と、
受信したコマンドに対する処理とレスポンスの生成を制御するコマンド制御シーケンサと、
転送データを保持するデータバッファと、
前記データバッファへのデータ入出力を制御するデータバッファ制御部と、
前記リード転送要求のコマンドに対するデータを送信するデータ送信部と、
前記ライト転送要求のコマンドに対するデータを受信するデータ受信部と、
前記データ送信部と前記データ受信部と前記データバッファ制御部を制御するデータ制御シーケンサと、
前記コマンド受信部で受信した前記コマンドに含まれるデータ転送の優先度を示す優先度ＩＤとコマンドを識別するコマンドＩＤを前記コマンドから分離するＩＤ分離部と、
前記リード転送要求のコマンドに対応するデータに当該コマンドに対応するコマンドＩＤを付加するコマンドＩＤ付加部と、
送信データの先頭を表すスタートビットを生成するスタートビット生成部と、
を備え、
前記コマンドID付加部は、前記コマンドＩＤと前記スタートビットを１サイクルのデータにパッキング処理して付加するデータ転送装置。
【請求項８】
データ転送先あるいはデータ転送元となる装置にライト転送要求またはリード転送要求のコマンドを送信し、当該コマンドに対するレスポンスに従ってデータ転送を行うデータ転送装置であって、
前記コマンドを送信するコマンド送信部と、
前記コマンドに対するレスポンスを受信するレスポンス受信部と、
データ転送に係る転送要求情報を保持する転送要求保持部と、
前記コマンドの生成と前記レスポンスに対する処理を制御するコマンド制御シーケンサと、
転送データを保持するデータバッファと、
前記データバッファへのデータ入出力を制御するデータバッファ制御部と、
前記リード転送要求のコマンドに対応するデータを受信するデータ受信部と、
前記ライト転送要求のコマンドに対応するデータを送信するデータ送信部と、
前記データ受信部と前記データ送信部と前記データバッファを制御するデータ制御シーケンサと、
前記データ受信部で受信した受信データに付加されたコマンドＩＤを分離するＩＤ分離部と、
を備え、
前記転送要求保持部は、前記転送の優先度を示す優先度ＩＤとコマンドを識別するコマンドＩＤを保持し、
前記コマンド制御シーケンサは、前記優先度ＩＤと前記コマンドＩＤをコマンドパラメータとして付加したコマンドを生成するコマンド生成部と、前記リード転送要求と前記ライト転送要求のいずれの処理を実行するかを、送信したコマンドと受信したレスポンスに基づいて決定するリード・ライト処理決定部を有し、
前記データ制御シーケンサは、前記リード・ライト処理決定部から指示されたリード転送またはライト転送のシーケンス制御を実行し、
前記ＩＤ分離部により分離したコマンドＩＤにより受信データがどのコマンドに対応する受信データかを特定し、対応するデータバッファに受信データを格納するデータ転送装置。
【請求項９】
前記データ制御シーケンサは、データ受信中断再開制御部を備え、
前記リード・ライト処理決定部が、前記ライト転送要求のコマンドの受理を示すレスポンスを受信すると、前記データ制御シーケンサにデータ送信処理の指示を入力し、
前記リード転送要求に対応するデータ受信中に、前記データ制御シーケンサに前記データ送信処理の指示が入力された場合に、前記データ受信中断再開制御部は、データ受信再開に必要な中間情報を退避して実行中のデータ受信処理を中断し、前記データ送信処理完了後に前記中間情報を復帰して前記データ受信処理を再開する請求項８に記載のデータ転送装置。
【請求項１０】
前記転送要求保持部は、データの転送単位を示す情報を保持し、
前記コマンド生成部は、前記転送単位を示す情報をコマンドパラメータとして付加し、
前記データ受信中断再開制御部の中断制御によりデータ受信処理を中断する場合は、前記データ受信処理に対応する転送単位でデータ受信の中断を検出する請求項９に記載のデータ転送装置。
【請求項１１】
前記データ受信部は、受信データに付加されたスタートビットと前記コマンドＩＤを含むパッキングデータを検出するスタートビット検出部を備え、
前記ＩＤ分離部は、前記スタートビット検出部で検出した前記パッキングデータから前記コマンドＩＤを分離し、
分離した前記コマンドＩＤにより受信データがどのコマンドに対応する受信データかを特定し、対応するデータバッファに受信データを格納する請求項８〜１０のいずれかに記載のデータ転送装置。
【請求項１２】
前記転送要求保持部に保持した転送要求情報に従って、内部リソースに対してデータアクセスを実行する内部リソースアクセス部を備える請求項８〜１１のいずれかに記載のデータ転送装置。
【請求項１３】
データ転送先あるいはデータ転送元となる装置にライト転送要求またはリード転送要求のコマンドを送信し、当該コマンドに対するレスポンスに従ってデータ転送を行うデータ転送装置であって、
前記コマンドを送信するコマンド送信部と、
前記コマンドに対するレスポンスを受信するレスポンス受信部と、
データ転送に係る転送要求情報を保持する転送要求保持部と、
前記コマンドの生成と前記レスポンスに対する処理を制御するコマンド制御シーケンサと、
転送データを保持するデータバッファと、
前記データバッファへのデータ入出力を制御するデータバッファ制御部と、
前記リード転送要求のコマンドに対応するデータを受信するデータ受信部と、
前記ライト転送要求のコマンドに対応するデータを送信するデータ送信部と、
前記データ受信部と前記データ送信部と前記データバッファを制御するデータ制御シーケンサと、
前記データ受信部で受信した受信データに付加されたコマンドＩＤを分離するＩＤ分離部とを備え、
前記データ受信部は、受信データに付加されたスタートビットと前記コマンドＩＤを含むパッキングデータを検出するスタートビット検出部を備え、
前記ＩＤ分離部は、前記スタートビット検出部で検出した前記パッキングデータから前記コマンドＩＤを分離する、
データ転送装置。
【請求項１４】
ホスト側のデータ転送装置からデバイス側のデータ転送装置に対してリード転送要求またはライト転送要求のコマンドを送信し、当該コマンドに従ってデータ転送を行うデータ転送システムであって、
デバイス側のデータ転送装置として請求項１に記載のデータ転送装置と、
ホスト側のデータ転送装置として請求項８に記載のデータ転送装置と、
を備えるデータ転送システム。
【請求項１５】
ホスト側のデータ転送装置からデバイス側のデータ転送装置に対してリード転送要求またはライト転送要求のコマンドを送信し、当該コマンドに従って両データ転送装置間でデータ転送を行うデータ転送方法であって、
前記ホスト側のデータ転送装置が、前記デバイス側のデータ転送装置に、優先度を示す優先度ＩＤを含むコマンドを送信するステップと、
前記デバイス側のデータ転送装置が、前記ホスト側のデータ転送装置に、前記コマンドに対するレスポンスを送信するステップと、
前記デバイス側のデータ転送装置が、前記ホスト側のデータ転送装置から受信したコマンドの処理順序を、前記コマンドに含まれる優先度ＩＤに基づいて決定するステップと、
前記デバイス側のデータ転送装置が、決定された処理順序に従って、前記ホスト側のデータ転送装置にデータを転送するステップと、
を備えるデータ転送方法。
【請求項１６】
前記デバイス側のデータ転送装置が、第１のリード転送要求のコマンドに応じて前記ホスト側のデータ転送装置へのデータの転送中に、当該データ転送に係るコマンドより優先度の高い第２の転送要求のコマンドを受信したときに、
前記第１のリード転送要求のコマンドに対応するデータ転送を中断するステップと、
前記第２の転送要求のコマンドに対応するデータを転送するステップと、
前記第２の転送要求のコマンドに対応するデータ転送が完了すると、前記デバイス側のデータ転送装置が前記ホスト側のデータ転送装置に前記第１のリード転送要求コマンドに対応するデータ転送を再開するステップと、
を備える請求項１５に記載のデータ転送方法。
【請求項１７】
前記レスポンスを送信するステップでは、
前記デバイス側のデータ転送装置から前記ホスト側のデータ転送装置へのデータ転送中に、前記ホスト側のデータ転送装置がライト転送要求のコマンドを前記デバイス側のデータ転送装置に送信し、前記ライト転送要求のコマンドの優先度より優先度の高いリード転送要求のコマンドの処理中である場合には、当該処理のステータスを判定し、
前記リード転送要求に対応するデータ送信の準備状態であれば、前記ライト転送要求のコマンドの受理を示すレスポンスを送信し、
前記データ送信中あるいはデータ送信の準備完了状態であれば、前記レスポンス送信の待機、または、前記ライト転送要求のコマンドの不受理を示すレスポンスを送信する、
請求項１５または１６に記載のデータ転送方法。
【請求項１８】
前記コマンドは、データの転送単位を示す情報を含み、
前記データ転送を中断するステップでは、前記デバイス側のデータ転送装置が、前記転送単位でリードデータ転送を中断する、請求項１６または１７に記載のデータ転送方法。
【請求項１９】
前記コマンドは、コマンドを識別するコマンドＩＤを含み、
前記デバイス側のデータ転送装置が、スタートビットと前記コマンドＩＤとを１サイクルのデータにパッキングして送信データに付加するステップを備える請求項１５〜１８のいずれかに記載のデータ転送方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ転送装置間のデータ転送インタフェースを双方向バスで接続するデータ転送システムに関連し、データ転送処理の性能を向上するのに好適なデータ転送装置、データ転送システム、及びデータ転送方法に関する。
【背景技術】
【０００２】
デジタルカメラや携帯電話等の携帯端末のカードスロットに挿入して使用するカードモジュールとして、ＳＤメモリカードやminiＳＤカード等のフラッシュメモリや、Bluetooth、無線ＬＡＮ、ＧＰＳ、ワンセグチューナー等が存在する。これらのカードモジュールを接続するカードスロット部は実装面積を小さくする必要があるため、接続するインタフェースの信号線もなるべく少なくする必要がある。信号線を少なくするため、データ線を双方向端子で接続するインタフェース規格があり、その１つとして、ＳＤＩＯインタフェース規格がある。
【０００３】
現在のＳＤＩＯインタフェース規格の信号線は、電源、グランド端子以外にクロック端子１本、コマンド端子１本、データ端子４本で構成される。このうちコマンド端子とデータ端子は、双方向端子である。図１２はＳＤＩＯインタフェースで接続されたデータ転送装置の構成図、図１３はＳＤＩＯインタフェースでのライトデータ転送とリードデータ転送のタイミングチャートを示す図である。
【０００４】
図１２において、データ転送装置１１０１は転送要求を出力する側となるホスト側のデータ転送装置１１０１であり、データ転送装置１１０２はデータ転送装置１１０１からの転送要求を受けて、転送要求に対応するデータ転送を実行するデバイス側のデータ転送装置１１０２である。データ転送装置１１０１とデータ転送装置１１０２を接続するインタフェースは、同期用のクロックを供給するＣＬＫ端子と、転送要求を含む指示となるコマンドとそのレスポンスを送受信するためのＣＭＤ端子と、ライトデータとリードデータを転送するための４本のＤＡＴ端子である。ここで、ＣＬＫ端子は一方向端子であり、データ転送装置１１０１側が出力端子、データ転送装置１１０２側が入力端子である。ＣＭＤ端子とＤＡＴ端子は、双方向端子である。
【０００５】
図１３において、ＣＭＤとＤＡＴ［３：０］は図１２におけるＣＭＤ端子とＤＡＴ端子に相当する。ＤＡＴ［３：０］は、４本のＤＡＴ端子を示す。ＣＭＤ端子において、「ｃｏｍ」はデータ転送装置１１０１からデータ転送装置１１０２に送信されるコマンドであり、「ｒｅｓ」はデータ転送装置１１０２からデータ転送装置１１０１に送信される、「ｃｏｍ」に対するレスポンスである。ＤＡＴ端子において、「ｒｄａｔ」はデータ転送装置１１０２からデータ転送装置１１０１に送信されるリードデータであり、「ｗｄａｔ」はデータ転送装置１１０１からデータ転送装置１１０２に送信されるライトデータである。
【０００６】
時刻Ｔにおいて、リードコマンドｃｏｍとレスポンスｒｅｓのハンドシェイクが実行され、データ転送装置１１０２側でリードコマンドに対応するリードデータの準備期間ΔＴがあり、時刻Ｔ+１からリードデータｒｄａｔが転送される。時刻Ｔ+１から開始されたリードデータｒｄａｔの転送完了後、同様にして、時刻Ｔ+２にリードコマンドｃｏｍとレスポンスｒｅｓのハンドシェイクが実行され、時刻Ｔ+３にリードデータｒｄａｔの転送が実行される。時刻Ｔ+３から開始されたリードデータｒｄａｔの転送完了後、時刻Ｔ+４において、ライトコマンドｃｏｍとレスポンスｒｅｓのハンドシェイクが実行され、時刻Ｔ+５にライトデータｗｄａｔの転送が実行される。
【０００７】
従来の双方向バス制御方式を用いた転送システムとしては、ライト転送要求とリード転送要求を発行する装置において、ライトデータを蓄積するライトバッファを備え、一定サイズ蓄積した上で転送相手となる装置にライト要求を発行してライトデータを連続転送する転送システムがあった。この転送システムの例が、特許文献１に記載されている。
【０００８】
図１２は、特許文献１に記載された従来の双方向バス制御方式を用いた転送システムを示す図である。図１４において、装置１２００は、リード転送要求とライト転送要求の発行処理を実行するリード・ライト要求発行処理装置１２１０と、ライトデータを蓄積するライトバッファ１２２０と、双方向バスの転送方向を切り替え、データ転送を実行するバス切換え装置１２３０を備える。装置１３００は、双方向バスの転送方向を切り替え、データ転送を実行するバス切換え装置１３１０と、アクセス対象となるメモリ１３２０と、メモリ１３２０とバス切換え装置１３１０との間のデータ転送を実行するメモリアクセス装置１３３０を備える。装置１２００と装置１３００は、双方向バス１４００とリードデータ転送予告信号線１５００で接続される。リードデータ転送予告信号線１５００を流れるリード転送予告信号は、装置１３００から装置１２００へ出力される。
【０００９】
装置１２００のバス切換え装置１２３０は、リードデータによる双方向バス１４００の使用状況を監視する機能を持つ。監視方法としては、装置１２００が装置１３００にリード要求を発行してからリードデータを得るまでのリードレイテンシが一定サイクル数であることを前提とし、リード要求発行数と発行された時間を把握することによる監視方法が開示されている。あるいは、別の監視方法として、装置１３００のバス切換え装置１３１０が装置１２００へ転送する場合、その所定サイクル前にリードデータ転送予告信号１５００により装置１２００のバス切換え装置１２３０に伝達することによる監視方法が開示されている。
【特許文献１】特開２０００−０４７９７７号公報（第６頁、図１）
【発明の開示】
【発明が解決しようとする課題】
【００１０】
しかしながら、上記したＳＤＩＯインタフェースでは、転送要求のコマンドを１つ発行すると、対応するデータ転送が完了するまでは次のコマンドが発行できない。従って、毎回コマンド発行時にコマンド送信のサイクル数と、リード要求コマンドからリードデータ転送開始までのレイテンシのサイクル数のオーバーヘッドサイクルが発生し、データバスの転送効率が向上しないという課題を有していた。
【００１１】
また、ＳＤＩＯインタフェースでは、コマンドを発行すると、発行済みのコマンドよりも高優先度の転送要求が発生した場合でも、高優先度の転送要求に対応するデータ転送を優先して実行することができず、ホスト側のデータ転送装置の転送処理性能が向上しないという課題を有していた。
【００１２】
従来の双方向バス制御方式を用いた転送システムでは、双方向バスにおけるライトデータとリードデータのバス競合を避けるため、双方向バスの使用状況を監視し、リードデータの転送中に、ライトデータの転送を割り込ませる方法が開示されている。しかし、この方法は、リードデータ転送が発生していない期間のみライトデータ転送を実行するため、ライトデータ転送の優先度がリードデータ転送よりも高い場合に、ライトデータ転送を優先して実行することができていなかった。加えて、リードデータによる双方向バスの使用状況の監視方法の１つは、リード要求を発行してからリードデータを得るまでのリードレイテンシが一定サイクル数であることを前提とした方法なので、リードレイテンシが変動するシステムでは使用できなかった。また、別の監視方法では、新たにリードデータ転送予告信号が必要となり、新たに端子を追加する必要があった。
【００１３】
本発明は、上記背景に鑑み、新たな端子を追加することなく、コマンド送信のサイクル数と、リード要求コマンドからリードデータ転送開始までのレイテンシのサイクル数のオーバーヘッドサイクルを削減し、後から発生した高優先度の転送要求に対応するデータ転送を優先して実行可能な双方向バスインタフェース方式と、その双方向バスインタフェース方式を実現するデータ転送装置およびデータ転送システムを提供することを目的とする。
【課題を解決するための手段】
【００１４】
本発明のデータ転送装置は、データ転送先あるいはデータ転送元となる装置からリード転送要求またはライト転送要求のコマンドを受信し、当該コマンドに従ってデータ転送を行うデータ転送装置であって、前記コマンドを受信するコマンド受信部と、受信したコマンドに対するレスポンスを送信するレスポンス送信部と、受信したコマンドから得られる転送要求情報を保持する転送要求保持部と、受信したコマンドに対する処理とレスポンスの生成を制御するコマンド制御シーケンサと、転送データを保持するデータバッファと、前記データバッファへのデータ入出力を制御するデータバッファ制御部と、前記リード転送要求のコマンドに対応するデータを送信するデータ送信部と、前記ライト転送要求のコマンドに対応するデータを受信するデータ受信部と、前記データ送信部と前記データ受信部と前記データバッファ制御部を制御するデータ制御シーケンサと、前記コマンド受信部で受信した前記コマンドに含まれるデータ転送の優先度を示す優先度ＩＤとコマンドを識別するコマンドＩＤを前記コマンドから分離するＩＤ分離部と、前記リード転送要求のコマンドに対応するデータに当該コマンドに対応するコマンドＩＤを付加するコマンドＩＤ付加部と、を備え、前記転送要求保持部は、前記優先度ＩＤと前記コマンドＩＤを保持し、前記コマンド制御シーケンサは、受信した前記リード転送要求と前記ライト転送要求のコマンドの中から処理を実行するコマンドを前記優先度ＩＤに基づいて決定するリード・ライト処理決定部を有し、前記データ制御シーケンサは、前記リード・ライト処理決定部から指示されたリード転送またはライト転送のシーケンス制御を実行し、前記データ送信部は、前記コマンドＩＤ付加部で当該コマンドに対応するコマンドＩＤを付加した前記リード転送要求のコマンドに対応するデータを送信する。
【００１５】
本発明の別の態様に係るデータ転送装置は、データ転送先あるいはデータ転送元となる装置からリード転送要求またはライト転送要求のコマンドを受信し、当該コマンドに従ってデータ転送を行うデータ転送装置であって、前記コマンドを受信するコマンド受信部と、受信したコマンドに対するレスポンスを送信するレスポンス送信部と、受信したコマンドから得られる転送要求情報を保持する転送要求保持部と、受信したコマンドに対する処理とレスポンスの生成を制御するコマンド制御シーケンサと、転送データを保持するデータバッファと、前記データバッファへのデータ入出力を制御するデータバッファ制御部と、前記リード転送要求のコマンドに対するデータを送信するデータ送信部と、前記ライト転送要求のコマンドに対するデータを受信するデータ受信部と、前記データ送信部と前記データ受信部と前記データバッファ制御部を制御するデータ制御シーケンサと、前記コマンド受信部で受信した前記コマンドに含まれるデータ転送の優先度を示す優先度ＩＤとコマンドを識別するコマンドＩＤを前記コマンドから分離するＩＤ分離部と、前記リード転送要求のコマンドに対応するデータに当該コマンドに対応するコマンドＩＤを付加するコマンドＩＤ付加部と、送信データの先頭を表すスタートビットを生成するスタートビット生成部とを備え、前記コマンドＩＤ付加部は、前記コマンドＩＤと前記スタートビットを１サイクルのデータにパッキング処理して付加する。
【００１６】
本発明の別の態様に係るデータ転送装置は、データ転送先あるいはデータ転送元となる装置にライト転送要求またはリード転送要求のコマンドを送信し、当該コマンドに対するレスポンスに従ってデータ転送を行うデータ転送装置であって、前記コマンドを送信するコマンド送信部と、前記コマンドに対するレスポンスを受信するレスポンス受信部と、データ転送に係る転送要求情報を保持する転送要求保持部と、前記コマンドの生成と前記レスポンスに対する処理を制御するコマンド制御シーケンサと、転送データを保持するデータバッファと、前記データバッファへのデータ入出力を制御するデータバッファ制御部と、前記リード転送要求のコマンドに対応するデータを受信するデータ受信部と、前記ライト転送要求のコマンドに対応するデータを送信するデータ送信部と、前記データ受信部と前記データ送信部と前記データバッファを制御するデータ制御シーケンサと、前記データ受信部で受信した受信データに付加されたコマンドＩＤを分離するＩＤ分離部とを備え、前記転送要求保持部は、前記転送の優先度を示す優先度ＩＤとコマンドを識別するコマンドＩＤを保持し、前記コマンド制御シーケンサは、前記優先度ＩＤと前記コマンドＩＤをコマンドパラメータとして付加したコマンドを生成するコマンド生成部と、前記リード転送要求と前記ライト転送要求のいずれの処理を実行するかを、送信したコマンドと受信したレスポンスに基づいて決定するリード・ライト処理決定部を有し、前記データ制御シーケンサは、前記リード・ライト処理決定部から指示されたリード転送またはライト転送のシーケンス制御を実行し、前記ＩＤ分離部により分離したコマンドＩＤにより受信データがどのコマンドに対応する受信データかを特定し、対応するデータバッファに受信データを格納するデータ転送装置。
【００１７】
本発明の別の態様に係るデータ転送装置は、データ転送先あるいはデータ転送元となる装置にライト転送要求またはリード転送要求のコマンドを送信し、当該コマンドに対するレスポンスに従ってデータ転送を行うデータ転送装置であって、前記コマンドを送信するコマンド送信部と、前記コマンドに対するレスポンスを受信するレスポンス受信部と、データ転送に係る転送要求情報を保持する転送要求保持部と、前記コマンドの生成と前記レスポンスに対する処理を制御するコマンド制御シーケンサと、転送データを保持するデータバッファと、前記データバッファへのデータ入出力を制御するデータバッファ制御部と、前記リード転送要求のコマンドに対応するデータを受信するデータ受信部と、前記ライト転送要求のコマンドに対応するデータを送信するデータ送信部と、前記データ受信部と前記データ送信部と前記データバッファを制御するデータ制御シーケンサと、前記データ受信部で受信した受信データに付加されたコマンドＩＤを分離するＩＤ分離部とを備え、前記データ受信部は、受信データに付加されたスタートビットと前記コマンドＩＤを含むパッキングデータを検出するスタートビット検出部を備え、前記ＩＤ分離部は、前記スタートビット検出部で検出した前記パッキングデータから前記コマンドＩＤを分離する。
【００１８】
本発明のデータ転送方法は、ホスト側のデータ転送装置からデバイス側のデータ転送装置に対してリード転送要求またはライト転送要求のコマンドを送信し、当該コマンドに従って両データ転送装置間でデータ転送を行うデータ転送方法であって、前記ホスト側のデータ転送装置が、前記デバイス側のデータ転送装置に、優先度を示す優先度ＩＤを含むコマンドを送信するステップと、前記デバイス側のデータ転送装置が、前記ホスト側のデータ転送装置に、前記コマンドに対するレスポンスを送信するステップと、前記デバイス側のデータ転送装置が、前記ホスト側のデータ転送装置から受信したコマンドの処理順序を、前記コマンドに含まれる優先度ＩＤに基づいて決定するステップと、前記デバイス側のデータ転送装置が、決定された処理順序に従って、前記ホスト側のデータ転送装置にデータを転送するステップとを備える。
【発明の効果】
【００１９】
本発明によれば、受信したコマンドによるデータ転送を完了する前に、次のコマンドを先行して受信することができ、リードレイテンシを短縮して転送処理性能を高めることができると共に、コマンドを受信した順序と関わりなく、優先度の高いデータ転送を先に行うことができるというすぐれた効果を有する。
【発明を実施するための最良の形態】
【００２０】
以下、本発明の実施の形態のデータ転送装置およびデータ転送方法について説明する。
本実施の形態のデータ転送装置は、データ転送先あるいはデータ転送元となる装置からリード転送要求またはライト転送要求のコマンドを受信し、当該コマンドに従ってデータ転送を行うデータ転送装置であって、前記コマンドを受信するコマンド受信部と、受信したコマンドに対するレスポンスを送信するレスポンス送信部と、受信したコマンドから得られる転送要求情報を保持する転送要求保持部と、受信したコマンドに対する処理とレスポンスの生成を制御するコマンド制御シーケンサと、転送データを保持するデータバッファと、前記データバッファへのデータ入出力を制御するデータバッファ制御部と、前記リード転送要求のコマンドに対応するデータを送信するデータ送信部と、前記ライト転送要求のコマンドに対応するデータを受信するデータ受信部と、前記データ送信部と前記データ受信部と前記データバッファ制御部を制御するデータ制御シーケンサと、前記コマンド受信部で受信した前記コマンドに含まれるデータ転送の優先度を示す優先度ＩＤとコマンドを識別するコマンドＩＤを前記コマンドから分離するＩＤ分離部と、前記リード転送要求のコマンドに対応するデータに当該コマンドに対応するコマンドＩＤを付加するコマンドＩＤ付加部とを備え、前記転送要求保持部は、前記優先度ＩＤと前記コマンドＩＤを保持し、前記コマンド制御シーケンサは、受信した前記リード転送要求と前記ライト転送要求のコマンドの中から処理を実行するコマンドを前記優先度ＩＤに基づいて決定するリード・ライト処理決定部を有し、前記データ制御シーケンサは、前記リード・ライト処理決定部から指示されたリード転送またはライト転送のシーケンス制御を実行し、前記データ送信部は、前記コマンドＩＤ付加部で当該コマンドに対応するコマンドＩＤを付加した前記リード転送要求のコマンドに対応するデータを送信する。
【００２１】
この構成により、コマンドＩＤにより複数のコマンドを識別できるので、受信したコマンドによるデータ転送を完了する前に、次のコマンドを先行して受信することができる。これにより、例えば、次のコマンドによるリードデータ転送のためのデータをデータバッファに先行して準備することができ、リードレイテンシを短縮し、転送処理性能を高めることができる。また、優先度ＩＤに基づいて処理を実行するコマンドを決定するので、コマンドを受信した順序と関わりなく、優先度の高いデータ転送を先に行うことができる。また、コマンドＩＤを送信データに付加して送信するので、データ転送先の装置が、どのコマンドに対応した転送データであるかを識別することができる。
【００２２】
本実施の形態のデータ転送装置において、前記データ制御シーケンサは、データ送信中断再開制御部を有し、データ送信中に当該データ送信に係るリード転送要求の優先度より優先度の高いコマンドを受信した場合に、前記データ送信中断再開制御部は、データ送信再開に必要な中間情報を退避して実行中のデータ送信を中断し、前記優先度の高いコマンドに係るデータ転送の完了後に、前記中間情報を復帰して前記データ送信処理を再開してもよい。
【００２３】
この構成により、優先度の高いコマンドを受信した場合に、優先度の低いリード転送要求に対応するデータ送信を一旦中断して、優先度の高いリードデータ転送またはライトデータ転送の処理を行うので、データ転送インタフェースが双方向バスインタフェースであっても、データのバス衝突を発生させることなく、高優先度のデータ転送を低優先度のデータ転送よりも優先して実行できる。
【００２４】
本実施の形態のデータ転送装置において、前記リード・ライト処理決定部は、前記ライト転送要求のコマンドを受信したときに、そのライト転送要求のコマンドの優先度より優先度の高いリード転送要求のコマンドの処理中である場合には、当該処理のステータスを判定し、前記リード転送要求に対応するデータ送信の準備状態であれば、レスポンス生成部に前記ライト転送要求のコマンドの受理を示すレスポンスの生成を指示し、前記データ送信中あるいはデータ送信の準備完了状態であれば、レスポンス生成部に前記レスポンスの生成の待機、または、前記ライト転送要求のコマンドの不受理を示すレスポンスの生成を指示してもよい。
【００２５】
この構成により、リード転送要求のコマンドの処理中に、そのリード転送要求より優先度の低いライト転送要求のコマンドを受信したときに、ライト転送要求のコマンドを適切に処理することができる。すなわち、データ送信の準備状態であれば、ライト転送要求のコマンドの受理を示すレスポンスを返すことにより、データ送信の準備中にライトデータを受信することができる。また、リードデータの送信中あるいは送信準備完了状態の場合には、ライト転送要求のコマンドに対するレスポンスの生成を待機するかコマンドの不受理を示すレスポンスを送信する。これにより、優先度の高いリードデータ転送を継続して行える。なお、ライト転送要求のコマンドを先行して受信しないのは、ライト転送要求に対してコマンドの受理を示すレスポンスを返すと、ライトデータが送信されてきてしまい、データの衝突が発生することになる。
【００２６】
本実施の形態のデータ転送装置において、前記コマンドは、データの転送単位を示す情報を含み、前記転送要求保持部は、前記転送単位を示す情報を保持し、前記データ送信部は、前記データ送信中断再開制御部の中断制御によりデータ送信処理を中断する場合に、前記転送単位でデータ送信を中断してもよい。
【００２７】
このように転送単位でデータ送信を中断することにより、データ送信を中断した箇所を適切に検出することができる。
【００２８】
本実施の形態のデータ転送装置は、送信データの先頭を表すスタートビットを生成するスタートビット生成部をさらに備え、前記コマンドＩＤ付加部は、前記スタートビットと前記コマンドＩＤを１サイクルのデータにパッキング処理してもよい。
【００２９】
このようにスタートビットとコマンドＩＤを１つのデータにパッキング処理することにより、新たな端子を追加することなく、また、コマンドＩＤを付加する上で論理演算を必要とすることなく、スタートビットとコマンドＩＤを１回のデータ転送で転送できる。
【００３０】
本実施の形態のデータ転送装置において、前記転送要求保持部に保持された優先度ＩＤに従って内部リソースに対するデータアクセスを実行する内部リソースアクセス部を備えてもよい。
【００３１】
このように優先度ＩＤに従って内部リソースに対するデータアクセスを実行することにより、優先度の高いリード転送要求コマンドに対しては、先行して内部リソースからデータを読み出すことができるので、リードレイテンシを短縮できる。
【００３２】
本実施の形態の別の態様に係るデータ転送装置は、データ転送先あるいはデータ転送元となる装置からリード転送要求またはライト転送要求のコマンドを受信し、当該コマンドに従ってデータ転送を行うデータ転送装置であって、前記コマンドを受信するコマンド受信部と、受信したコマンドに対するレスポンスを送信するレスポンス送信部と、受信したコマンドから得られる転送要求情報を保持する転送要求保持部と、受信したコマンドに対する処理とレスポンスの生成を制御するコマンド制御シーケンサと、転送データを保持するデータバッファと、前記データバッファへのデータ入出力を制御するデータバッファ制御部と、前記リード転送要求のコマンドに対応するデータを送信するデータ送信部と、前記ライト転送要求のコマンドに対応するデータを受信するデータ受信部と、前記データ送信部と前記データ受信部と前記データバッファ制御部を制御するデータ制御シーケンサとを備え、前記データ制御シーケンサは、前記ライト転送要求を受信したときに前記リード転送要求コマンドの処理中である場合には、当該処理のステータスを判定し、前記リード転送要求に対応するデータ送信の準備状態であれば、レスポンス生成部に前記ライト転送要求のコマンドの受理を示すレスポンスの生成を指示し、前記データ送信中あるいはデータ送信の準備完了状態であれば、レスポンス生成部に前記レスポンスの生成の待機、または、前記ライト転送要求のコマンドの不受理を示すレスポンスの生成を指示する。
【００３３】
この構成により、リード転送要求のコマンドの処理中に、そのリード転送要求より優先度の低いライト転送要求のコマンドを受信したときに、リード転送要求の処理のステータスに応じて、ライト転送要求のコマンドを適切に処理することができる。
【００３４】
本実施の形態の別の態様に係るデータ転送装置は、データ転送先あるいはデータ転送元となる装置からリード転送要求またはライト転送要求のコマンドを受信し、当該コマンドに従ってデータ転送を行うデータ転送装置であって、前記コマンドを受信するコマンド受信部と、受信したコマンドに対するレスポンスを送信するレスポンス送信部と、受信したコマンドから得られる転送要求情報を保持する転送要求保持部と、受信したコマンドに対する処理とレスポンスの生成を制御するコマンド制御シーケンサと、転送データを保持するデータバッファと、前記データバッファへのデータ入出力を制御するデータバッファ制御部と、前記リード転送要求のコマンドに対するデータを送信するデータ送信部と、前記ライト転送要求のコマンドに対するデータを受信するデータ受信部と、前記データ送信部と前記データ受信部と前記データバッファ制御部を制御するデータ制御シーケンサと、前記コマンド受信部で受信した前記コマンドに含まれるデータ転送の優先度を示す優先度ＩＤとコマンドを識別するコマンドＩＤを前記コマンドから分離するＩＤ分離部と、前記リード転送要求のコマンドに対応するデータに当該コマンドに対応するコマンドＩＤを付加するコマンドＩＤ付加部と、送信データの先頭を表すスタートビットを生成するスタートビット生成部とを備え、前記コマンドＩＤ付加部は、前記コマンドＩＤと前記スタートビットを１サイクルのデータにパッキング処理して付加する。
【００３５】
このようにスタートビットとコマンドＩＤを１つのデータにパッキング処理することにより、新たな端子を追加することなく、また、コマンドＩＤを付加する上で論理演算を必要とすることなく、スタートビットとコマンドＩＤを１回のデータ転送で転送できる。
【００３６】
本実施の形態の別の態様に係るデータ転送装置は、データ転送先あるいはデータ転送元となる装置にライト転送要求またはリード転送要求のコマンドを送信し、当該コマンドに対するレスポンスに従ってデータ転送を行うデータ転送装置であって、前記コマンドを送信するコマンド送信部と、前記コマンドに対するレスポンスを受信するレスポンス受信部と、データ転送に係る転送要求情報を保持する転送要求保持部と、前記コマンドの生成と前記レスポンスに対する処理を制御するコマンド制御シーケンサと、転送データを保持するデータバッファと、前記データバッファへのデータ入出力を制御するデータバッファ制御部と、前記リード転送要求のコマンドに対応するデータを受信するデータ受信部と、前記ライト転送要求のコマンドに対応するデータを送信するデータ送信部と、前記データ受信部と前記データ送信部と前記データバッファを制御するデータ制御シーケンサと、前記データ受信部で受信した受信データに付加されたコマンドＩＤを分離するＩＤ分離部とを備え、前記転送要求保持部は、前記転送の優先度を示す優先度ＩＤとコマンドを識別するコマンドＩＤを保持し、前記コマンド制御シーケンサは、前記優先度ＩＤと前記コマンドＩＤをコマンドパラメータとして付加したコマンドを生成するコマンド生成部と、前記リード転送要求と前記ライト転送要求のいずれの処理を実行するかを、送信したコマンドと受信したレスポンスに基づいて決定するリード・ライト処理決定部を有し、前記データ制御シーケンサは、前記リード・ライト処理決定部から指示されたリード転送またはライト転送のシーケンス制御を実行し、前記ＩＤ分離部により分離したコマンドＩＤにより受信データがどのコマンドに対応する受信データかを特定し、対応するデータバッファに受信データを格納する。
【００３７】
この構成により、コマンドＩＤにより複数のコマンドを識別できるので、受信側の装置は、データ転送中に、次のコマンドを先行して受信することができる。これにより、例えば、次のコマンドによるリードデータ転送のためにデータをデータバッファに先行して準備することができ、リードレイテンシを短縮し、転送処理性能を高めることができる。また、コマンドには、受信側の装置は、優先度ＩＤに基づいていずれのコマンドを実行するかを決定するので、コマンドを受信した順序と関わりなく、優先度の高いデータ転送を先に行うことができる。
【００３８】
本実施の形態のデータ転送装置において、前記データ制御シーケンサは、データ受信中断再開制御部を備え、前記リード・ライト処理決定部が、前記ライト転送要求のコマンドの受理を示すレスポンスを受信すると、前記データ制御シーケンサにデータ送信処理の指示を入力し、前記リード転送要求に対応するデータ受信中に、前記データ制御シーケンサに前記データ送信処理の指示が入力された場合に、前記データ受信中断再開制御部は、データ受信再開に必要な中間情報を退避して実行中のデータ受信処理を中断し、前記データ送信処理完了後に前記中間情報を復帰して前記データ受信処理を再開してもよい。
【００３９】
この構成により、優先度の高いコマンドの受信を示すレスポンスを受信すると、優先度の低いリード転送要求に係るデータ受信を一旦中断して、優先度の高いリードデータ転送またはライトデータ転送の処理を行うので、データ転送インタフェースが双方向バスインタフェースであっても、データのバス衝突を発生させることなく、高優先度のデータ転送を低優先度のデータ転送よりも優先して実行できる。
【００４０】
本実施の形態のデータ転送装置において、前記転送要求保持部は、データの転送単位を示す情報を保持し、前記コマンド生成部は、前記転送単位を示す情報をコマンドパラメータとして付加し、前記データ受信中断再開制御部の中断制御によりデータ受信処理を中断する場合は、前記データ受信処理に対応する転送単位でデータ受信の中断を検出してもよい。
【００４１】
このように転送単位でデータ受信を中断した箇所を検出することにより、中断箇所を適切に検出できる。
【００４２】
本実施の形態のデータ転送装置において、前記データ受信部は受信データに付加されたスタートビットと前記コマンドＩＤを含むパッキングデータを検出するスタートビット検出部を備え、前記ＩＤ分離部は、前記スタートビット検出部で検出した前記パッキングデータから前記コマンドＩＤを分離し、離した前記コマンドＩＤにより受信データがどのコマンドに対応する受信データかを特定し、対応するデータバッファに受信データを格納してもよい。
【００４３】
この構成により、新たな端子を追加することなく、また、コマンドＩＤを付加する上で論理演算を必要とすることなく、スタートビットとコマンドＩＤを１回のデータ転送で転送できる。
【００４４】
本実施の形態のデータ転送装置は、前記転送要求保持部に保持した転送要求情報に従って、内部リソースに対してデータアクセスを実行する内部リソースアクセス部を備えてもよい。
【００４５】
この構成により、転送要求情報に応じた適切な順番で内部リソースにアクセスできる。
【００４６】
本実施の形態の別の態様のデータ転送装置は、データ転送先あるいはデータ転送元となる装置にライト転送要求またはリード転送要求のコマンドを送信し、当該コマンドに対するレスポンスに従ってデータ転送を行うデータ転送装置であって、前記コマンドを送信するコマンド送信部と、前記コマンドに対するレスポンスを受信するレスポンス受信部と、データ転送に係る転送要求情報を保持する転送要求保持部と、前記コマンドの生成と前記レスポンスに対する処理を制御するコマンド制御シーケンサと、転送データを保持するデータバッファと、前記データバッファへのデータ入出力を制御するデータバッファ制御部と、前記リード転送要求のコマンドに対応するデータを受信するデータ受信部と、前記ライト転送要求のコマンドに対応するデータを送信するデータ送信部と、前記データ受信部と前記データ送信部と前記データバッファを制御するデータ制御シーケンサとを備え、前記コマンド制御シーケンサは、コマンドを生成するコマンド生成部と、前記リード転送要求と前記ライト転送要求のいずれの処理を実行するかを、送信したコマンドと受信したレスポンスに基づいて決定するリード・ライト処理決定部を有し、前記リード・ライト処理決定部が、ライト転送要求のコマンドの受理を示すレスポンスを受信すると、前記データ制御シーケンサにデータ送信処理の指示を入力し、前記データ制御シーケンサは、データ受信中断再開制御部を備え、前記リード転送要求に対応するデータ受信中に前記データ送信処理の指示が入力された場合に、前記データ受信中断再開制御部は、データ受信再開に必要な中間情報を退避して実行中のデータ受信処理を中断し、前記データ送信処理完了後に前記中間情報を復帰して前前記データ受信処理を再開する。
【００４７】
この構成により、優先度の高いコマンドの受信を示すレスポンスを受信すると、優先度の低いリード転送要求に係るデータ受信を一旦中断して、優先度の高いリードデータ転送またはライトデータ転送の処理を行うので、データ転送インタフェースが双方向バスインタフェースであっても、データのバス衝突を発生させることなく、高優先度のデータ転送を低優先度のデータ転送よりも優先して実行できる。
【００４８】
本実施の形態の別の態様に係るデータ転送装置は、データ転送先あるいはデータ転送元となる装置にライト転送要求またはリード転送要求のコマンドを送信し、当該コマンドに対するレスポンスに従ってデータ転送を行うデータ転送装置であって、前記コマンドを送信するコマンド送信部と、前記コマンドに対するレスポンスを受信するレスポンス受信部と、データ転送に係る転送要求情報を保持する転送要求保持部と、前記コマンドの生成と前記レスポンスに対する処理を制御するコマンド制御シーケンサと、転送データを保持するデータバッファと、前記データバッファへのデータ入出力を制御するデータバッファ制御部と、前記リード転送要求のコマンドに対応するデータを受信するデータ受信部と、前記ライト転送要求のコマンドに対応するデータを送信するデータ送信部と、前記データ受信部と前記データ送信部と前記データバッファを制御するデータ制御シーケンサと、前記データ受信部で受信した受信データに付加されたコマンドＩＤを分離するＩＤ分離部とを備え、前記データ受信部は、受信データに付加されたスタートビットと前記コマンドＩＤを含むパッキングデータを検出するスタートビット検出部を備え、前記ＩＤ分離部は、前記スタートビット検出部で検出した前記パッキングデータから前記コマンドＩＤを分離する。
【００４９】
この構成により、新たな端子を追加することなく、また、コマンドＩＤを付加する上で論理演算を必要とすることなく、スタートビットとコマンドＩＤを１回のデータ転送で転送できる。
【００５０】
本実施の形態のデータ転送システムは、ホスト側のデータ転送装置からデバイス側のデータ転送装置に対してリード転送要求またはライト転送要求のコマンドを送信し、当該コマンドに従ってデータ転送を行うデータ転送システムであって、デバイス側のデータ転送装置およびホスト側のデータ転送装置として上記したデータ転送装置を備える。
【００５１】
この構成により、上記した本実施の形態のデータ転送装置と同様に、受信したコマンドによるデータ転送を完了する前に、次のコマンドを先行して受信することができる。これにより、例えば、次のコマンドによるリードデータ転送のためにデータをデータバッファに先行して準備することができ、リードレイテンシを短縮し、転送処理性能を高めることができる。また、上記した本実施の形態のデータ転送装置と同様に、コマンドを受信した順序と関わりなく、優先度の高いデータ転送を先に行うことができる。なお、上記した各種の特徴を有するデータ転送装置の様々な組合せによってデータ転送システムを構成できることは言うまでもない。
【００５２】
本実施の形態のデータ転送方法は、ホスト側のデータ転送装置からデバイス側のデータ転送装置に対してリード転送要求またはライト転送要求のコマンドを送信し、当該コマンドに従って両データ転送装置間でデータ転送を行うデータ転送方法であって、前記ホスト側のデータ転送装置が、前記デバイス側のデータ転送装置に、優先度を示す優先度ＩＤを含むコマンドを送信するステップと、前記デバイス側のデータ転送装置が、前記ホスト側のデータ転送装置に、前記コマンドに対するレスポンスを送信するステップと、前記デバイス側のデータ転送装置が、前記ホスト側のデータ転送装置から受信したコマンドの処理順序を、前記コマンドに含まれる優先度ＩＤに基づいて決定するステップと、前記デバイス側のデータ転送装置が、決定された処理順序に従って、前記ホスト側のデータ転送装置にデータを転送するステップとを備える。
【００５３】
この構成により、上記した本実施の形態のデータ転送装置と同様に、受信したコマンドによるデータ転送を完了する前に、次のコマンドを先行して受信することができる。これにより、例えば、次のコマンドによるリードデータ転送のためにデータをデータバッファに先行して準備することができ、リードレイテンシを短縮し、転送処理性能を高めることができる。また、上記した本実施の形態のデータ転送装置と同様に、コマンドを受信した順序と関わりなく、優先度の高いデータ転送を先に行うことができる。
【００５４】
本実施の形態のデータ転送方法は、前記デバイス側のデータ転送装置が、第１のリード転送要求のコマンドに応じて前記ホスト側のデータ転送装置へのデータの転送中に、当該データ転送に係るコマンドより優先度の高い第２の転送要求のコマンドを受信したときに、前記第１のリード転送要求のコマンドに対応するデータ転送を中断するステップと、前記第２の転送要求のコマンドに対応するデータを転送するステップと、前記第２の転送要求のコマンドに対応するデータ転送が完了すると、前記デバイス側のデータ転送装置が前記ホスト側のデータ転送装置に前記第１のリード転送要求コマンドに対応するデータ転送を再開するステップとを備えてもよい。
【００５５】
この構成により、優先度の高い第２のリード転送要求コマンドを受信した場合に、優先度の低い第１のリード転送要求に係るデータ送信を一旦中断して、第２のリード転送要求コマンドに基づくデータ転送処理を行うので、高優先度のデータ転送を低優先度のデータ転送よりも優先して実行できる。
【００５６】
本実施の形態のデータ転送方法は、前記レスポンスを送信するステップでは、前記デバイス側のデータ転送装置から前記ホスト側のデータ転送装置へのデータ転送中に、前記ホスト側のデータ転送装置がライト転送要求のコマンドを前記デバイス側のデータ転送装置に送信し、前記ライト転送要求のコマンドの優先度より優先度の高いリード転送要求のコマンドの処理中である場合には、当該処理のステータスを判定し、前記リード転送要求に対応するデータ送信の準備状態であれば、前記ライト転送要求のコマンドの受理を示すレスポンスを送信し、前記データ送信中あるいはデータ送信の準備完了状態であれば、前記レスポンス送信の待機、または、前記ライト転送要求のコマンドの不受理を示すレスポンスを送信してもよい。
【００５７】
この構成により、本実施の形態のデータ転送装置と同様に、リード転送要求のコマンドの処理中に、そのリード転送要求より優先度の低いライト転送要求のコマンドを受信したときに、ライト転送要求のコマンドを適切に処理することができる。
【００５８】
本実施の形態のデータ転送方法において、前記コマンドは、データの転送単位を示す情報を含み、前記データ転送を中断するステップでは、前記デバイス側のデータ転送装置が、前記転送単位でリードデータ転送を中断してもよい。
【００５９】
このように転送単位でデータ転送を中断することにより、データ転送を中断した箇所を容易に検出することができる。
【００６０】
本実施の形態のデータ転送方法において、前記コマンドは、コマンドを識別するコマンドＩＤを含み、前記デバイス側のデータ転送装置が、スタートビットと前記コマンドＩＤとを１サイクルのデータにパッキングして送信データに付加するステップを備えてもよい。
【００６１】
この構成により、新たな端子を追加することなく、また、コマンドＩＤを付加する上で論理演算を必要とすることなく、スタートビットとコマンドＩＤを１回のデータ転送で転送できる。
【００６２】
以下、本発明の実施の形態のデータ転送システムおよびデータ転送装置について、図面を参照しながら説明する。
【００６３】
（第１の実施の形態）
図１はデバイス側のデータ転送装置１００の構成を示す図、図２はホスト側のデータ転送装置２００の構成を示す図、図３はデバイス側のデータ転送装置１００とホスト側のデータ転送装置２００を組み合わせたデータ転送システム３００の構成図である。はじめに、図３を参照して、本実施の形態のデータ転送システム３００の概要について説明する。
【００６４】
［データ転送システムの構成］
図３に示すデータ転送システム３００の基本的な構成は、図１２のデータ転送システムと同じであり、デバイス側のデータ転送装置１００とホスト側のデータ転送装置２００とが、ＣＬＫ端子とＣＭＤ端子とＤＡＴ端子によって接続されている。データ転送システム３００を用いた双方向バスインタフェース方式は、データ転送装置１００，２００の間のデータ転送インタフェースを双方向バスで接続したバスインタフェース方式である。
【００６５】
双方向バスインタフェース方式において、ホスト側のデータ転送装置２００からデバイス側のデータ転送装置１００に送信される転送要求コマンドは、パラメータとして転送の優先度を表す優先度ＩＤと、コマンドを識別するコマンドＩＤを含む。ホスト側のデータ転送装置２００は、送信済みのリード転送要求コマンドに対応するリードデータの転送が完了する前に、デバイス側のデータ転送装置１００に対して、複数のリード転送要求のコマンドを送信することが可能である。
【００６６】
デバイス側のデータ転送装置１００は、ホスト側のデータ転送装置２００に、リードデータに対応するコマンドのコマンドＩＤを付加してリードデータを転送する。デバイス側のデータ転送装置１００は、受信したリード転送要求のコマンドの順序とは異なる順序でリードデータを転送することが可能である。例えば、リードデータの転送が完了していない状態において、ライト転送要求コマンドとコマンド受理を表すレスポンスのハンドシェイクが成立すると、転送が完了していないリードデータ転送を中断し、双方向バスの転送方向を切り替えて、ホスト側のデータ転送装置２００はライト転送要求コマンドに対応するライトデータ転送を実行する。そして、デバイス側のデータ転送装置１００はライトデータ転送が完了すると、ライトデータの転送のために中断したリードデータ転送を再開する。また、データ転送システム３００を用いた双方向バスインタフェース方式において、転送要求コマンドは、パラメータとしてさらに転送単位を含む。デバイス側のデータ転送装置１００が転送が完了していないリードデータ転送を中断する場合には、リードデータ転送に対応するコマンドの転送単位のデータサイズでリードデータ転送を中断する。
【００６７】
［デバイス側のデータ転送装置の構成］
図１は、本発明の第１の実施の形態におけるデバイス側のデータ転送装置の構成図である。図１において、データ転送装置１００は、レスポンス送信部１０１とコマンド受信部１０２とＩＤ分離部（ＤＭＵＸ）１１５とコマンド制御シーケンサ１０３と転送要求保持部１０４とデータ制御シーケンサ１０５とデータバッファ制御部１０６とデータバッファ１０７とデータ送信部１０８とコマンドＩＤ付加部１２３とデータ受信部１０９と内部アクセス制御部１１０とデータ転送方向切替部１１１，コマンド転送方向切替部１１２とを有する。データ送信部１０８とコマンドＩＤ付加部１２３は、データ送信ブロック１２６を構成する。
【００６８】
データ転送装置１００は、双方向端子のＣＭＤ端子およびＤＡＴ端子と、入力端子のＣＬＫ端子とによって外部と接続される。ＣＭＤ端子は１本の信号線からなり、転送要求指示を含むコマンドとコマンドに対するレスポンスの送受信を行う。ＤＡＴ端子は４本の信号線からなり、転送要求に対応するデータの送受信を行う。ＣＬＫ端子は１本の信号線からなり、ＣＭＤ端子によるコマンドおよびレスポンスの送受信やＤＡＴ端子によるデータの送受信の同期を取るためのクロック信号を受信する。
【００６９】
コマンド転送方向切替部１１２は、コマンド制御シーケンサ１０３からの指示に従い、レスポンス送信部１０１とコマンド受信部１０２のどちらかとＣＭＤ端子とを接続する。コマンド転送方向切替部１１２は、接続しているレスポンス送信部１０１またはコマンド受信部１０２からの制御により、ＣＭＤ端子に対するデータの入出力方向を切り替える。
【００７０】
レスポンス送信部１０１は、コマンド制御シーケンサ１０３からレスポンス送信の指示を受けると、コマンド制御シーケンサ１０３から入力されるレスポンスデータを受信する。レスポンス送信部１０１は、受信したレスポンスデータをパラレル・シリアル変換部（Ｐ／Ｓ）１１３によりパラレルデータからシリアルデータに変換して、コマンド転送方向切替部１１２を経てＣＭＤ端子に出力する。
【００７１】
送信するレスポンスデータには、ＣＲＣ（Cyclic Redundancy Code）データが付加されている。受信側の装置は、受信したレスポンスデータに対してチェックサムと呼ばれるエラー検出処理を実行する。これにより、受信側の装置は、伝送路上でデータが誤ることなく正しく受信できたかどうかをチェックすることが可能である。レスポンス送信部１０１は、受信側の装置からＣＲＣエラーを示すステータスを受信すると、レスポンスデータを再送する。
【００７２】
コマンド受信部１０２は、コマンド制御シーケンサ１０３からコマンド受信の指示を受けると、コマンド受信状態となる。ＣＭＤ端子からコマンドが入力されると、コマンド受信部１０２は、コマンド転送方向切替部１１２を経て入力されるコマンドを受信する。コマンド受信部１０２は、受信したコマンドデータをシリアル・パラレル変換部（Ｓ／Ｐ）１１４によりシリアルデータからパラレルデータに変換する。
【００７３】
ＩＤ分離部（ＤＭＵＸ）１１５は、コマンドデータに含まれる優先度ＩＤおよびコマンドＩＤのパラメータを分離し、分離した優先度ＩＤおよびコマンドＩＤと残りのコマンドデータをコマンド制御シーケンサ１０３に出力する。優先度ＩＤは、転送要求の転送の優先度を表すＩＤである。また、コマンド受信部１０２は、コマンドデータに付与されたＣＲＣデータエラー検出により伝送路での転送エラーを検出し、検出結果のステータスを送信側の装置に通知する機能を有する。
【００７４】
コマンド制御シーケンサ１０３は、コマンド受信とレスポンス送信を実行するための一連の制御を行うと共に、受信したコマンドに対するレスポンスの生成をどうするか、転送要求コマンドに対応するデータ転送処理をどうするかを決定する。
【００７５】
転送要求保持部１０４は、コマンド受信部１０２から入力された転送要求のコマンドのコマンドＩＤと優先度ＩＤを、転送要求に関する情報として保持する。
【００７６】
コマンド制御シーケンサ１０３は、送受信制御部１１８とレスポンス生成部１１６とリード・ライト処理決定部１１７とを有する。送受信制御部１１８は、コマンド受信またはレスポンス送信のどちらの処理を実行するかを決定し、コマンド転送方向切替部１１２とレスポンス送信部１０１とコマンド受信部１０２にコマンド受信またはレスポンス送信の指示を出力する。
【００７７】
レスポンス生成部１１６は、レスポンスデータを生成し、生成したレスポンスデータをレスポンス送信部１０１へ出力する。データ転送装置１００は、受信済みの転送要求に対応するデータ転送が完了する以前に、複数の転送要求のコマンドを受信することが可能である。転送要求のコマンドに対するレスポンスとしては、転送要求保持部１０４が保持するリソースに空きがある場合は、コマンド受理とし、空きがない場合はコマンド受理不可、あるいは、レスポンス生成を待機とする。また、別途、リード・ライト処理決定部117の決定により、コマンド受理不可とする、あるいは、レスポンス生成を待機する。あるいは、コマンド受理とする場合は、さらに別のコマンドを受理可能かどうか、または、受理可能な転送要求コマンドのコマンド数をステータスとしてレスポンス内容に加えてもよい。
【００７８】
リード・ライト処理決定部１１７は、ＤＡＴ端子を用いたデータ転送処理として、ライトデータ転送かリードデータ転送のいずれの処理を実行するかを決定し、リード転送またはライト転送のうち決定したデータ転送処理をデータ制御シーケンサ１０５に通知する。リード・ライト処理決定部１１７は、受信した転送要求のコマンドのリード・ライトの転送種別および優先度ＩＤと、転送要求保持部１０４に保持されたデータ転送実行中の転送要求の優先度ＩＤと、データバッファ制御部１０６のバッファステータスとに基づいて、ライトデータ転送かリードデータ転送かを決定する。なお、複数のリード転送要求コマンドを受信している場合、リード・ライト処理決定部１１７は、どのリード転送要求コマンドに対応するデータ転送を行うかも決定する。
【００７９】
転送要求保持部１０４は、転送要求保持部０〜転送要求保持部Ｎ（Ｎは２以上の整数）を備え、複数の転送要求情報を保持する。転送要求保持部０〜転送要求保持部Ｎのそれぞれは、リード転送かライト転送かの転送種別、内部リソースへのアクセス先アドレス、転送サイズ、転送モードのパラメータ、転送順序の優先度となる優先度ＩＤ、転送要求の識別子となるコマンドＩＤ、データの転送単位を保持している。転送モードのパラメータとしては、例えば、所定の転送サイズを１つのブロックとし、複数ブロックの転送（マルチブロック転送）を実行するかどうかのパラメータがある。
【００８０】
転送要求保持部１０４は、内部アクセス制御部１１０とデータ送信部１０８とデータ受信部１０９によるデータ転送の実行に合わせて、内部リソースへのアクセス先アドレスや転送サイズを更新したパラメータを別途保持、または保持している同パラメータを更新し、転送の実行状態を保持する。
【００８１】
内部アクセス制御部１１０は、転送要求保持部１０４に保持された各転送要求にしたがって、内部リソースへのデータアクセスを実行する。内部アクセス制御部１１０は調停部１１９を有する。調停部１１９は、データバッファ制御部１０６からのバッファステータスと、転送要求保持部１０４の各転送要求の転送種別および優先度ＩＤとに基づいて、データ転送するためのデータバッファ１０７のバッファの空き、または、内部リソースへ書き込むためのデータの確保ができたかを確認し、優先度の高い転送要求を優先して調停して、内部リソースへのデータアクセスを実行する。
【００８２】
データバッファ制御部１０６は、データバッファ１０７の制御および管理を行う。データバッファ制御部１０６は、データバッファ１０７の各バッファと転送要求との対応付け、ポインタ管理、バッファの使用状態とデータ保持量と空き容量のバッファステータスを管理、生成して出力する。データバッファ１０７は、転送要求に対応して転送されるデータを保持するバッファであり、複数の転送要求情報に対応する複数のバッファ領域を有する。
【００８３】
データ転送方向切替部１１１は、データ制御シーケンサ１０５の指示に従い、データ送信部１０８とデータ受信部１０９のどちらかとＤＡＴ端子とを接続する。データ転送方向切替部１１１は、接続しているデータ送信部１０８またはデータ受信部１０９からの制御により、ＤＡＴ端子に対するデータの入出力方向を切り替える。
【００８４】
データ送信ブロック１２６は、データ制御シーケンサ１０５のデータ送信指示により、データバッファ１０７に格納されているリードデータを読み出し、データ制御シーケンサ１０５から入力されるコマンドＩＤをリードデータに付加して、データ転送方向切替部１１１を経てＤＡＴ端子に出力する。データ制御シーケンサ１０５からのデータ送信指示には、データバッファ１０７のどのバッファ領域のデータを送信するかを示すバッファＩＤと転送するサイズ情報が含まれる。
【００８５】
具体的には、データ送信ブロック１２６に含まれるコマンドＩＤ付加部１２３が、データバッファ１０７から入力される送信データの先頭にコマンドＩＤを付加する。また、データ送信ブロック１２６に含まれるデータ送信部１０８は、送信データのデータビット幅を変換するビット幅変換部１２４を有する。ビット幅変換部１２４は、コマンドＩＤ付加部１２３から入力される送信データが３２ビット幅とすると、３２ビット幅の送信データをＤＡＴ端子の４ビット幅に変換する。
【００８６】
データ送信部１０８は、レスポンス送信部１０１と同様に、送信データへのＣＲＣデータの付与、受信側の装置からのエラー検出結果のステータス通知により、伝送路での転送エラーを検出することができる。また、データ送信部１０８は、データ制御シーケンサ１０５からデータ送信中断指示が入力されると、送信中のデータを途中で停止する。データ送信中断再開制御部１２１は、データ送信の停止処理が完了すると、再開時に必要な中間情報をデータ制御シーケンサ１０５内に退避する。データ送信の途中停止に際しては、データ制御シーケンサ１０５からデータ送信中断指示と共に入力される転送単位に基づいて送信データの停止位置を決定する。従って、受信側の装置は、転送単位を基準に適切に受信データの切れ目を検出できる。データ送信再開時には、データ送信中断再開制御部１２１は、退避した中間情報を復帰した後、再開指示に応じて、データ送信を再開する。
【００８７】
データ受信部１０９は、データ制御シーケンサ１０５からのデータ受信指示により、データ転送方向切替部１１１を経てＤＡＴ端子から入力されるライトデータとしての受信データをデータバッファ１０７に転送する。データ制御シーケンサ１０５からのデータ受信指示には、データバッファ１０７のどのバッファ領域にデータを転送するかを示すバッファＩＤと転送するサイズ情報が含まれる。データ受信部１０９は、受信データのデータビット幅を変換するビット幅変換部１２５を有する。ビット幅変換部１２５は、ＤＡＴ端子からの４ビット幅の受信データを、例えば３２ビット幅に変換してデータバッファ１０７へ転送する。
【００８８】
データ受信部１０９は、受信データに付与されたＣＲＣデータによるエラー検出により伝送路での転送エラーを検出し、検出結果のステータスを送信側の装置に通知にする。
【００８９】
データ制御シーケンサ１０５は、データ受信とデータ送信を実行するための一連の制御と、コマンド制御シーケンサ１０３から入力されるリードまたはライトのデータ転送処理の指示に従い、データ送信またはデータ受信の処理開始、あるいは、データ転送実行中のデータ送信処理の中断と再開処理を制御する。データ制御シーケンサ１０５は、送受信制御部１２０とデータ送信中断再開制御部１２１とコマンドＩＤ管理部１２２を有する。
【００９０】
送受信制御部１２０は、コマンド制御シーケンサ１０３からのライトデータ転送またはリードデータ転送のデータ転送処理の指示により、データ受信またはデータ送信のどちらの処理を実行するかを決定し、決定したデータ受信またはデータ送信の指示をデータ転送方向切替部１１１とデータ受信部１０９とデータ送信部１０８に出力する。以下、送受信制御部１２０の制御について説明する。
【００９１】
データ転送を実行していないアイドル状態でライトデータ転送の指示を受けた場合、送受信制御部１２０はライトデータ転送状態に遷移する。そして、送受信制御部１２０は、データ受信部１０９とデータ転送方向切替部１１１にデータ受信の指示を出力し、データ受信部１０９がＤＡＴ端子からライトデータを受信し、データバッファ１０７へ転送を完了すると再度アイドル状態に遷移する。
【００９２】
アイドル状態でリードデータ転送の指示を受けた場合、送受信制御部１２０はリードデータ転送状態に遷移する。リードデータ転送状態でさらにリードデータ転送の指示を受けた場合、送受信制御部１２０はリードデータ転送状態を維持する。リードデータ転送状態においては、送受信制御部１２０は、データバッファ制御部１０６からのバッファステータスにより、バッファ領域の検出を行う。データバッファ１０７にリード転送要求のリードデータが準備できた状態のバッファ領域を検出すると、送受信制御部１２０は、データ送信部１０８とデータ転送方向切替部１１１にリードデータが準備できたバッファ領域のデータを送信する指示を出力する。送受信制御部１２０は、コマンド制御シーケンサ１０３から受けたリードデータ転送の指示に対応する転送要求の全てのリードデータの転送が完了するとアイドル状態に遷移する。
【００９３】
リードデータ転送状態でライトデータ転送の指示を受けた場合、送受信制御部１２０は、データバッファ制御部１０６からのバッファステータスをマスク制御してデータ送信部１０８へ新たなデータ送信指示を出力しないようにする。ライトデータ転送の指示を受けたときに、データ送信部１０８がデータ送信中である場合は、データ送信中断再開制御部１２１は、データ送信部１０８のデータ送信を中断する。送受信制御部１２０は、データ送信の中断処理が完了した後で、ライトデータ転送状態に遷移する。指示されたライトデータ転送によるデータ送信が完了すると、送受信制御部１２０は、再度リードデータ転送状態に遷移する。中断したデータ送信があった場合には、データ送信中断再開制御部１２１は、中断したデータ送信を再開する。
【００９４】
データ送信中断再開制御部１２１は、送受信制御部１２０からの指示により、データ送信部１０８のデータ送信の中断再開処理を実行する。中断処理時には、データ送信部１０８へ中断指示を入力する。このとき、データ送信中断再開制御部１２１は、中断指示と共に、中断する送信データの単位として、転送要求保持部１０４に保持されている該転送要求の転送単位をデータ送信部１０８に入力する。データ送信部１０８は、データ送信を途中で停止し、データ送信の停止処理が完了すると、再開時に必要な中間情報をデータ送信中断再開制御部１２１に退避する。中間情報は、例えば、転送済みデータサイズや演算途中のＣＲＣコードの中間データ等である。データ送信中断再開制御部は、必要に応じて、データバッファ制御部１０６の該当バッファ領域のポインタを戻す処理を実行する。再開処理の際には、データ送信中断再開制御部１２１は、中断処理時に退避した中間情報をデータ送信部１０８に転送して復帰させ、復帰後にデータ送信を再開させる。
【００９５】
コマンドＩＤ管理部１２２は、転送要求保持部１０４に保持されている各転送要求のコマンドＩＤおよび転送要求と、データバッファ１０７の各バッファ領域の対応付けを管理する。そして、コマンドＩＤ管理部１２２は、送受信制御部１２０がデータ送信部１０８にリードデータ転送処理の指示を出力する際に、その転送要求のコマンドＩＤを共に出力する。
【００９６】
［ホスト側データの転送装置の構成］
図２は、本発明の第１の実施の形態におけるホスト側のデータ転送装置２００の構成図である。図２を参照して、本発明の第１の実施の形態におけるホスト側のデータ転送装置について説明する。
【００９７】
図２において、データ転送装置２００は、コマンド送信部２０１とレスポンス受信部２０２とコマンド制御シーケンサ２０３と転送要求保持部２０４とデータ制御シーケンサ２０５とデータバッファ制御部２０６とデータバッファ２０７とデータ送信部２０８とデータ受信部２０９とコマンドＩＤ分離部（ＤＭＵＸ）２２３とホストインタフェース部（ホストＩＦ）２１０とＤＭＡインタフェース部（ＤＭＡＩＦ）２１１とクロック生成部２１２とコマンド転送方向切替部２１３とデータ転送方向切替部２１４とを有する。データ受信部２０９とコマンドＩＤ分離部（ＤＭＵＸ）２２３は、データ受信ブロック２２５を構成する。
【００９８】
データ転送装置２００は、双方向端子のＣＭＤ端子と双方向端子のＤＡＴ端子と出力端子のＣＬＫ端子とによって外部と接続される。ＣＭＤ端子は１本の信号線からなり、転送要求指示を含むコマンドとコマンドへの応答となるレスポンスの送受信を行う。ＤＡＴ端子は４本の信号線からなり、転送要求に対応するデータの送受信を行う。ＣＬＫ端子は１本の信号線からなり、ＣＭＤ端子によるコマンドとレスポンスの送受信と、ＤＡＴ端子によるデータの送受信の同期を取るためのクロック信号を送信する。
【００９９】
コマンド転送方向切替部２１３は、コマンド制御シーケンサ２０３の指示に従い、コマンド送信部２０１とレスポンス受信部２０２のどちらかとＣＭＤ端子を接続し、さらに、接続しているコマンド送信部２０１またはレスポンス受信部２０２からの制御により、ＣＭＤ端子に対するデータの入出力方向を切り替える。
【０１００】
コマンド送信部２０１は、コマンド制御シーケンサ２０３からコマンド送信の指示を受けると、コマンド制御シーケンサ２０３から入力されるコマンドデータを受信する。コマンド送信部２０１は、受信したコマンドデータをパラレル・シリアル変換部（Ｐ／Ｓ）２１５によりパラレルデータからシリアルデータに変換して、変換したコマンドデータをコマンド転送方向切替部２１３を経てＣＭＤ端子に出力する。
【０１０１】
送信するコマンドデータには、ＣＲＣデータが付加されている。受信側の装置は、コマンドデータに対してチェックサムと呼ばれるエラー検出処理を実行することで、伝送路上でデータが誤ることなく正しく受信できたかどうかをチェックすることが可能である。コマンド送信部２０１は、受信側の装置からＣＲＣエラーとなるステータスを受信するとコマンドデータを再送する。
【０１０２】
レスポンス受信部２０２は、コマンド制御シーケンサ２０３からレスポンス受信の指示を受けると、レスポンス受信状態となり、ＣＭＤ端子からレスポンスが入力されると、コマンド転送方向切替部２１３を経て入力されるレスポンスを受信する。レスポンス受信部２０２は、受信したレスポンスデータをシリアル・パラレル変換部（Ｓ／Ｐ）２１６によりシリアルデータからパラレルデータに変換し、パラレルデータに変換したレスポンスデータをコマンド制御シーケンサ２０３に出力する。レスポンス受信部２０２は、レスポンスデータに付与されたＣＲＣデータによるエラー検出により伝送路での転送エラーを検出し、検出結果のステータスを送信側の装置に通知する。
【０１０３】
コマンド制御シーケンサ２０３は、コマンド送信とレスポンス受信を実行するための一連の制御を行うと共に、ホストＩＦ２１０経由で指示された転送要求とその他制御用のコマンド生成をどうするか、転送要求コマンドのレスポンス受信に対応するデータ転送処理の実行を決定する。コマンド制御シーケンサ２０３は、送受信制御部２１７とコマンド生成部２１８とリード・ライト処理決定部２１９を有する。
【０１０４】
送受信制御部２１７は、コマンド送信またはレスポンス受信のどちらの処理を実行するかを決定し、コマンド転送方向切替部２１３とコマンド送信部２０１とレスポンス受信部２０２にコマンド送信またはレスポンス受信の指示を出力する。
【０１０５】
コマンド生成部２１８は、コマンドデータを生成し、生成したコマンドデータをコマンド送信部２０１へ出力する。データ転送装置２００は、送信済みの転送要求に対応するデータ転送が完了する以前に、複数の転送要求のコマンドを送信することが可能である。転送要求のコマンドに対するコマンド受理を示すレスポンス受信により、転送要求は受理される。受信側の装置の都合によってコマンドが受理されない場合は、コマンド送信部２０１は、コマンドデータを再送する。
【０１０６】
なお、コマンド受理を示すレスポンスに、さらなる転送要求の受理が可能かどうかを示すステータス、あるいは、受理可能な転送要求コマンドのコマンド数を示すステータスが含まれてもよい。この場合、コマンド送信部２０１は、該ステータスより次の転送要求コマンドが受理可能かどうかでコマンド生成の可否を判断してもよい。
【０１０７】
リード・ライト処理決定部２１９は、送信した転送要求のコマンドのリード・ライトの転送種別、送信コマンドに対するレスポンスに基づいて、ＤＡＴ端子を用いたデータ転送処理として、ライトデータ転送かリードデータ転送のいずれの処理を実行するかを決定し、決定されたリード転送またはライト転送のデータ転送処理をデータ制御シーケンサ２０５に通知する。
【０１０８】
転送要求保持部２０４は、転送要求保持部０〜転送要求保持部N（Nは２以上の整数）を備え、複数の転送要求を保持する。転送要求保持部０〜転送要求保持部Ｎのそれぞれは、リード転送かライト転送かの転送種別、アクセス先リソースのアクセスアドレス、転送サイズ、また、ある転送サイズを１つのブロックとし、複数ブロックの転送（マルチブロック転送）を実行するかどうかの転送モード等のパラメータと、転送順序の優先度となる優先度ＩＤと、転送要求の識別子となるコマンドＩＤと、データの転送単位を保持している。
【０１０９】
コマンド生成部２１８は、転送要求保持部２０４に保持されたデータを設定値として転送要求コマンドを生成する。転送要求保持部２０４の各パラメータは、ホストＩＦ２１０経由で内部バスに接続されたデータ転送装置２００外部の制御マイコン等により設定される。ただし、コマンドＩＤ等の一部のパラメータはコマンド制御シーケンサ２０３により設定してもよい。
【０１１０】
転送要求保持部２０４は、コマンド送信とレスポンス受信のハンドシェイクにより、転送要求が実行状態にあるか、まだコマンド受理される以前の未実行状態かどうかの転送状態を転送要求保持部０〜転送要求保持部Ｎの各々に保持している。また、転送要求保持部２０４は、ＤＭＡＩＦ２１１とデータ送信部２０８とデータ受信部２０９によるデータ転送の実行に合わせて、転送サイズを更新したパラメータを別途保持、または保持している同パラメータを更新し、転送の実行状態を保持する。
【０１１１】
ホストＩＦ２１０は、内部バスと接続され、内部バスに接続された制御マイコン等からのパラメータ設定のインタフェースである。
【０１１２】
ＤＭＡＩＦ２１１は、内部バスと接続され、内部バスに接続されたＤＭＡコントローラとデータバッファ２０７との間のデータ転送を行うインタフェースである。転送要求保持部２０４に保持された各転送要求にしたがって、ＤＭＡコントローラと連動してデータ転送を実行する。
【０１１３】
データバッファ制御部２０６は、データバッファ２０７を制御および管理を行う。データバッファ制御部２０６は、データバッファ２０７の各バッファと転送要求との対応付け、ポインタ管理、バッファの使用状態とデータ保持量と空き容量のバッファステータスを管理、生成して出力する。
【０１１４】
データバッファ２０７は、転送要求に対応するデータ転送を保持するバッファであり、複数の転送要求に対応する複数のバッファ領域を有する。
【０１１５】
データ転送方向切替部２１４は、データ制御シーケンサ２０５からの指示に従い、データ送信部２０８とデータ受信部２０９のどちらかとＤＡＴ端子を接続し、さらに接続しているデータ送信部２０８またはデータ受信部２０９からの制御により、ＤＡＴ端子の入力か出力かの入出力方向を切り替える。
【０１１６】
データ送信部２０８は、データ制御シーケンサ２０５からのデータ送信指示により、データバッファ２０７に格納されているライトデータを読み出し、読み出したライトデータをデータ転送方向切替部２１４を経てＤＡＴ端子に出力する。データ制御シーケンサ２０５からのデータ送信指示には、データバッファ２０７のどのバッファ領域のデータを送信するかを示すバッファＩＤと転送するサイズ情報が含まれる。
【０１１７】
データ送信部２０８は、送信データのデータビット幅を変換するビット幅変換部２２２を有する。ビット幅変換部２２２は、データバッファ２０７から入力される送信データが３２ビット幅とすると、３２ビット幅の送信データをＤＡＴ端子の４ビット幅に変換する。データ送信部２０８は、コマンド送信部２０１と同様に、送信データへのＣＲＣデータの付与、および受信側の装置からの検出結果のステータス通知により、伝送路での転送エラーを検出する。
【０１１８】
データ受信部２０９は、データ制御シーケンサ２０５からのデータ受信指示により、データ転送方向切替部２１４を経てＤＡＴ端子から入力されるリードデータとなる受信データを、コマンドＩＤ分離部２２３を経てデータバッファ２０７に転送する。データ受信部２０９は、受信データのデータビット幅を変換するビット幅変換部２２４を有する。ビット変換部２２４は、ＤＡＴ端子からの４ビット幅の受信データを、例えば３２ビット幅に変換し、３２ビット幅の受信データとコマンドＩＤ分離部２２３へ転送する。
【０１１９】
コマンドＩＤ分離部２２３は、データ受信部２０９から入力される受信データに付加されているコマンドＩＤを分離し、分離したコマンドＩＤとコマンドＩＤ分離後のリードデータをデータバッファ２０７に入力する。また、分離したコマンドＩＤはデータ制御シーケンサ２０５へ通知される。データバッファ２０７は、データバッファ制御部２０６で管理する各バッファ領域とリード転送要求の対応付け情報に基づいて、対応するバッファ領域へリードデータを格納する。なお、受信データがどのリード転送要求に対応するリードデータかは、コマンドＩＤ分離部２２３から入力されるコマンドＩＤにより判別する。
【０１２０】
データ受信部２０９は、受信データに付与されたＣＲＣデータのチェックにより伝送路での転送エラーの検出を行い、検出結果のステータスを送信側の装置に通知する。
【０１２１】
また、データ受信部２０９は、データ制御シーケンサ２０５からデータ受信中断指示が入力されると、受信中のデータを途中で停止し、停止処理が完了すると、受信再開時に必要な中間情報をデータ制御シーケンサ２０５内のデータ受信中断再開制御部２２１により退避する。データ受信の途中停止に際しては、データ制御シーケンサ２０５からデータ受信中断指示と共に入力される転送単位によって受信データの停止位置が決まるため、データ受信部２０９は、転送単位を基準に受信データの切れ目を検出する。データ受信再開時には、送信中断再開制御部２２１が退避した中間情報を復帰した後、再開指示に応じて、データ受信を再開する。
【０１２２】
データ制御シーケンサ２０５は、データ受信とデータ送信を実行するための一連の制御と、コマンド制御シーケンサ２０３から入力されるリードまたはライトのデータ転送処理の指示に従い、データ送信またはデータ受信の処理開始、あるいは、データ転送実行中のデータ受信処理の中断と再開処理を制御する。
【０１２３】
データ制御シーケンサ２０５は、送受信制御部２２０とデータ受信中断再開制御部２２１を有する。送受信制御部２２０は、コマンド制御シーケンサ２０３からのライトデータ転送またはリードデータ転送のデータ転送処理の指示により、データ受信またはデータ送信のどちらの処理を実行するかを決定し、データ転送方向切替部２１４とデータ受信部２０９とデータ送信部２０８にデータ受信またはデータ送信の指示を出力する。
【０１２４】
データ転送を何も実行していないアイドル状態でライトデータ転送の指示を受けた場合は、送受信制御部２２０は、ライトデータ転送状態に遷移し、データ送信部２０８とデータ転送方向切替部２１４にデータ送信の指示を出力する。データ送信部２０８がデータバッファ２０７からライトデータを送信し、ＤＡＴ端子へ転送を完了すると、送受信部制御部２２０は、再度アイドル状態に遷移する。
【０１２５】
アイドル状態でリードデータ転送の指示を受けた場合は、送受信制御部２２０は、リードデータ転送状態に遷移し、データ受信部２０９とデータ転送方向切替部２１４にデータ受信の指示を出力する。リードデータ転送状態でさらにリードデータ転送の指示を受けた場合は、送受信制御部２２０は、リードデータ転送状態を維持する。リードデータ転送状態においては、データ受信部２０９が受信データを検出しデータ受信を開始すると、送受信制御部２２０はデータ受信部を制御し、コマンドＩＤ分離部２２３により受信データから分離したコマンドＩＤとデータ受信を開始した情報をデータ制御シーケンサ２０５に通知し、受信データとコマンドＩＤをデータバッファ２０７へ転送する。コマンド制御シーケンサ２０３から受けたリードデータ転送の指示に対応する転送要求の全てのリードデータの転送が完了すると、送受信制御部２２０はアイドル状態に遷移する。
【０１２６】
リードデータ転送状態でライトデータ転送の指示を受けたときにデータ受信部２０９がデータ送信中である場合は、データ受信中断再開制御部２２１によりデータ受信部２０９のデータ受信を中断し、中断処理が完了した上で、送受信制御部２２０はライトデータ転送状態に遷移する。データ受信部２０９がデータ送信中でない場合は、送受信制御部２２０は、リードデータを受信しないことが保証される期間を置いた後、ライトデータ転送状態に遷移する。該期間は、インタフェースプロトコルにより決めることができる。指示されたライトデータ転送によるデータ送信が完了すると、送受信制御部２２０は、再度リードデータ転送状態に遷移し、中断したデータ送信があった場合は、データ受信中断再開制御部２２１により中断したデータ送信を再開する。
【０１２７】
データ受信中断再開制御部２２１は、送受信制御部２２０からの指示により、データ受信部２０９のデータ受信の中断再開処理を実行する。中断処理時には、データ受信部２０９へ中断指示を入力する。データ受信部２０９は、中断指示が入力されると、データ受信を途中で停止し、停止処理が完了すると、再開時に必要な中間情報をデータ受信中断再開制御部２２１に退避する。中間情報は、例えば、転送済みデータサイズや演算途中のＣＲＣコードの中間データ等である。受信再開処理の際には、データ受信中断再開制御部２２１は、中断処理時に退避した中間情報をデータ受信部２０９に転送して復帰させ、復帰後に再開させる。
【０１２８】
クロック生成部２１２は、ＣＬＫ端子に出力するクロックと、コマンド送信部２０１、レスポンス受信部２０２、データ送信部２０８、データ受信部２０９がコマンド、レスポンス、データ送受信の同期を取るためのクロックを生成する。
【０１２９】
［データ転送の動作］
次に、データ転送システム３００を用いたデータ転送の動作について説明する。
図４は、コマンド、レスポンス、転送データのデータ構造を表すデータ構造図である。図４において、データ構造４００は、コマンド、レスポンス、または、転送データの構造を表す。データ４００の最初にはデータの先頭を表すスタートビットがあり、続いて、コマンド、レスポンス、または転送データの内容となるデータが続く。データの次には、データのＣＲＣコードがあり、続いて、データの最後を示すエンドビットにより構成される。
【０１３０】
図５は、図３のデータ転送システム３００を用いたデータ転送の一の動作例を示すタイミングチャートである。データ転送装置２００とデータ転送装置１００との間で、データ転送に先立つ初期化、設定処理は事前に終了している状態とする。
【０１３１】
図５において、時刻Ｔに、リードコマンドｃｏｍ（１）とレスポンスｒｅｓ（１）によりリードコマンドのハンドシェイクが成立する。リードコマンドｃｏｍ（１）の優先度ＩＤおよびコマンドＩＤは、優先度ＩＤ=２、コマンドＩＤ=０である。データ転送装置１００は、リードコマンドｃｏｍ（１）の受信後、内部リソースにアクセスし、対応するリードデータの準備を始める。
【０１３２】
時刻Ｔ＋１に、リードコマンドｃｏｍ（２）とレスポンスｒｅｓ（２）によりリードコマンドのハンドシェイクが成立する。リードコマンドｃｏｍ（２）の優先度ＩＤおよびコマンドＩＤは、優先度ＩＤ=０、コマンドＩＤ=１である。ここで、優先度ＩＤは数値が小さい程、優先度が高いとする。データ転送装置１００は、リードコマンドｃｏｍ（２）を受信すると、ｃｏｍ（１）よりもｃｏｍ（２）の優先度が高いため、ｃｏｍ（２）に対応するリードデータの準備を優先して、内部リソースにアクセスをする。
【０１３３】
時刻Ｔ＋２に、リードコマンドｃｏｍ（２）に対応するリードデータｒｄａｔ（２）が、データ転送装置１００のデータバッファ１０７に準備でき、データ転送装置１００からデータ転送装置２００に、コマンドＩＤ=１が付加されたリードデータｒｄａｔ（２）が転送される。データ転送装置２００は、ｒｄａｔ（２）に付加されたコマンドＩＤが１であることを検出し、リードコマンドｃｏｍ（２）に対応したリードデータであることを認識する。
【０１３４】
リードデータｒｄａｔ（２）の転送完了後の時刻Ｔ＋３に、リードコマンドｃｏｍ（１）に対応するリードデータｒｄａｔ（１）が転送できる状態にあったため、コマンドＩＤ=０が付加されたリードデータｒｄａｔ（１）がデータ転送装置２００へ転送される。
【０１３５】
リードデータｒｄａｔ（１）の転送中である時刻Ｔ+４に、ライトコマンドｃｏｍ（３）がデータ転送装置２００からデータ転送装置１００へ送信される。ライトコマンドｃｏｍ（３）の優先度ＩＤおよびコマンドＩＤは、優先度ＩＤ=１、コマンドＩＤ=２である。データ転送装置１００では、転送中のリードデータｒｄａｔ（１）よりもライトコマンドｃｏｍ（３）の優先度が高いため、ライトコマンドｃｏｍ（３）によるライトデータ転送を優先するため、ライトコマンドｃｏｍ（３）を受理するレスポンスｒｅｓ（３）を送信してｃｏｍ（３）とｒｅｓ（３）のハンドシェイクを成立させ、転送中のリードデータｒｄａｔ（１）を転送途中で中断する。中断に際しては、予め設定されていた転送単位のサイズ単位でリードデータを中断する。時刻Ｔ＋５にリードデータｒｄａｔ（１）が中断される。
【０１３６】
データ転送装置２００は、時刻Ｔ＋５のリードデータｒｄａｔ（１）の中断までのｒｄａｔ（１）を受信し、中断されるリードデータｒｄａｔ（１）の最後のデータを検出すると、リードデータ受信処理からライトデータ送信処理に切り替え、時刻Ｔ＋６より、ライトコマンド（３）のライトデータｗｄａｔ（３）を転送する。
【０１３７】
ライトデータｗｄａｔ（３）の転送完了後、データ転送装置２００とデータ転送装置１００は、中断されたリードデータｒｄａｔ（１）の転送再開処理に切り替え、時刻Ｔ＋７よりデータ転送を再開する。中断および再開されたｒｄａｔ（１）のＣＲＣコードによる伝送エラーチェックは、ｒｄａｔ（１）の全データ転送完了後に実行される。
【０１３８】
以上の動作により、リードコマンドｃｏｍ（１）よりも後から発行されたリードコマンドｃｏｍ（２）に対応するリードデータｒｄａｔ（２）を優先して転送し、さらにリードデータｒｄａｔ（１）の転送中に、ｒｄａｔ（１）よりも優先度が高いライトコマンドｃｏｍ（３）が発行されると、ｒｄａｔ（１）の転送を中断し、ライトデータｗｄａｔ（３）の転送を優先して実行できるため、データ転送装置２００にとって、優先度の高いデータ転送を先に実行し、データ転送装置２００の転送処理性能を向上できる。
【０１３９】
図６は、図３のデータ転送システム３００を用いたデータ転送の別の動作例を示すタイミングチャートである。図６において、時刻Ｔ、Ｔ＋１、Ｔ＋２における動作は図５で説明した動作と同じとなる。図６において、リードコマンドｃｏｍ（２）に対応するリードデータｒｄａｔ（２）が転送中の時刻Ｔ＋３に優先度ＩＤ=１のライトコマンドｃｏｍ（３）が発行されるが、転送中のリードデータｒｄａｔ（２）の優先度ＩＤが優先度ＩＤ=０とライトコマンドｃｏｍ（３）よりも高いため、データ転送装置１００は、優先度の高いリードデータｒｄａｔ（２）を優先してデータ転送を継続する。この場合、データ転送装置１００は、ライトコマンドｃｏｍ（３）に対するレスポンスの生成を保留する。
【０１４０】
ｒｄａｔ（２）の転送完了後の時刻Ｔ＋４に、リードコマンドｃｏｍ（１）よりもライトコマンドｃｏｍ（３）の優先度が高いため、ライトコマンドｃｏｍ（３）に対するレスポンスｒｅｓ（３）を送信して、時刻Ｔ＋５よりライトデータｗｄａｔ（３）を転送する。ライトデータｗｄａｔ（３）の転送完了後の時刻Ｔ+６に、リードデータｒｄａｔ（１）を転送する。
【０１４１】
図７は、図３のデータ転送システム３００を用いたデータ転送の別の動作例を示すタイミングチャートである。図７においては、時刻Ｔにライトコマンドｃｏｍ（１）とレスポンスｒｅｓ（１）のハンドシェイクが成立し、時刻Ｔ＋１より、ライトデータｗｄａｔ（１）が転送される。ライトデータｗｄａｔ（１）の転送中の時刻Ｔ＋２にリードコマンドｃｏｍ（２）とレスポンスｒｅｓ（２）のハンドシェイクが成立し、ライトデータｗＤＡＴ（１）の転送完了後の時刻Ｔ＋３よりライトデータｒｄａｔ（２）の転送が開始される。同様に、リードデータｒｄａｔ（２）の転送中の時刻Ｔ＋４にリードコマンドｃｏｍ（３）とレスポンスｒｅｓ（３）のハンドシェイクが成立し、リードデータｒｄａｔ（２）の転送完了後の時刻Ｔ＋５にリードデータｒｄａｔ（３）の転送が開始され最後まで転送される。
【０１４２】
上記した図５〜図７に示すように、本実施の形態のデータ転送システムは、リードコマンドまたはライトコマンドを受信した順番にデータ転送を行うのではなく、リードコマンドまたはライトコマンドに含まれる優先度ＩＤに応じてデータ転送を行う。
【０１４３】
なお、図５〜図７に示すデータ転送の動作例は、本実施の形態のデータ転送システムによるデータ転送制御の例を示すものであり、本実施の形態のデータ転送システムにおけるデータ転送制御を限定するものではない。例えば、リードデータ転送中に、転送中のリードデータより優先度の高いリードコマンドを受けたときには、転送中のリードデータ転送を中断し、後から受信した優先度の高いリードコマンドを実行してもよい。優先度の高いリードコマンドを受信したときには、そのリードコマンドに対応するリードデータの準備が整った後に、実行中のリードデータ転送を中断してもよい。これにより、優先度の高いリードコマンドによるリードデータの準備が整うまでの間は、実行中のリードデータ転送を継続して行うことができる。優先度の高いリードコマンドのリードデータの準備を待つだけで処理をしない時間を減らし、優先度に基づく転送データの切替えに伴って生じ得るデータ転送効率の低下を防止できる。
【０１４４】
本実施の形態のデータ転送システムは、コマンドに対するデータ転送が完了する前に次のコマンドを送信することができるので、データ転送中に、次のコマンドを送信することにより、コマンド送信からデータ転送開始までのレイテンシを小さくでき、データバスの転送効率を高めることができる。
【０１４５】
また、本実施の形態のデータ転送システムは、コマンドに含まれる優先度ＩＤに応じてデータ転送を行うので、発行済みのコマンドよりも高優先度の転送要求が発生した場合に、高優先度の転送要求に対応するデータ転送を優先して実行することができ、ホスト転送装置側の転送処理性能を向上できる。また、ライトデータのコマンドにも優先度ＩＤを含めているので、ライトデータ転送の優先度がリードデータ転送よりも高い場合には、ライトデータ転送を優先して実行することもができる。
【０１４６】
なお、本実施の形態において、ＤＡＴ端子を４本の信号線信号によって構成し、ビット幅変換部１２４、ビット幅変換部１２５、ビット幅変換部２２２、ビット幅変換部２２４のＤＡＴ端子接続側のビット幅を４ビットとしたが、データビット幅は４ビットに限定されるものではなく、１ビット、２ビット等のビット幅としてもよい。
【０１４７】
なお、本実施の形態において、ＣＭＤ端子を双方向端子とし、コマンドとレスポンスの送受信をＣＭＤ端子１本で実施するとしたが、コマンドとレスポンスを送受信する端子として２本の別々の片方向端子を用いてもよい。
【０１４８】
なお、本実施の形態において、リードデータの中断時の停止サイズ単位となる転送単位をコマンドのパラメータとしてデータ転送装置２００からデータ転送装置１００へ転送し、転送要求保持部１０４と転送要求保持部２０４に転送単位を保持すると構成について説明したが、転送単位はコマンド毎に設定するのではなく、インタフェースプロトコルとして予め決めておいてもよいし、データ転送装置２００とデータ転送装置１００の接続初期化処理において、共通の転送単位を設定しておいてもよい。
【０１４９】
なお、本実施の形態において、コマンドを識別するためのコマンドＩＤを用いたが、コマンドＩＤはシーケンスＩＤやシーケンス番号と呼ぶ場合もある。
【０１５０】
（第２の実施の形態）
図８は、本発明の第２の実施の形態におけるデバイス側のデータ転送装置８００の構成図である。図８において、図１と同じ構成要素については同じ符号を用い、説明を省略する。
【０１５１】
図８において、データ転送装置８００は、レスポンス送信部１０１とコマンド受信部１０２とＩＤ分離部（ＤＭＵＸ）１１５とコマンド制御シーケンサ１０３と転送要求保持部１０４とデータ制御シーケンサ１０５とデータバッファ制御部１０６とデータバッファ１０７とビット幅変換部１２４とスタートビット生成部８３１とパッキング処理部８３２とコマンドＩＤ付加部８３３とデータ送信部８０８とデータ受信部１０９と内部アクセス制御部１１０とデータ転送方向切替部１１１とコマンド転送方向切替部１１２とを有する。なお、ビット幅変換部１２４とスタートビット生成部８３１とパッキング処理部８３２とコマンドＩＤ付加部８３３とデータ送信部８０８は、データ送信ブロック８３４を構成する。
【０１５２】
データ転送装置８００は、双方向端子のＣＭＤ端子と双方向端子のＤＡＴ端子と入力端子のＣＬＫ端子によって外部と接続される。ＣＭＤ端子は１本の信号線からなり、転送要求指示を含むコマンドとコマンドへの応答となるレスポンスの送受信を行う。ＤＡＴ端子は４本の信号線からなり、転送要求に対応するデータの送受信を行う。ＣＬＫ端子は１本の信号線からなり、ＣＭＤ端子によるコマンドとレスポンスの送受信とＤＡＴ端子によるデータの送受信の同期を取るためのクロック信号を受信する。
【０１５３】
スタートビット生成部８３１は、送信するリードデータの先頭位置を表すスタートビットを生成する。スタートビット生成部８３１は、リードデータ転送開始のタイミングでスタートビットを出力する。
【０１５４】
パッキング処理部８３２には、送信するリードデータのコマンドＩＤとスタートビットが入力される。パッキング処理部８３２は、スタートビットとコマンドＩＤを１サイクルのデータにパッキングする。
【０１５５】
コマンドＩＤ付加部８３３は、パッキング処理部８３２から出力されるスタートビットとコマンドＩＤをパッキングしたパッキングデータを、ビット幅変換部１２４から出力されるリードデータの先頭に付加する。データ送信部８０８は、コマンドＩＤ付加部８３３でスタートビットとコマンドＩＤをパッキングしたパッキングデータを付加されたリードデータを、データ転送方向切替部１１１を経てＤＡＴ端子に出力する。
【０１５６】
図９は、本発明の第２の実施の形態におけるホスト側のデータ転送装置９００の構成図である。図９において、図２と同じ構成要素については同じ符号を用い、説明を省略する。
【０１５７】
図９において、データ転送装置９００は、コマンド送信部２０１とレスポンス受信部２０２とコマンド制御シーケンサ２０３と転送要求保持部２０４とデータ制御シーケンサ２０５とデータバッファ制御部２０６とデータバッファ２０７とデータ送信部２０８とコマンドＩＤ分離部（ＤＭＵＸ）９３３とアンパッキング処理部９３２とビット幅変換部２２４とデータ受信部９０９とホストインタフェース部（ホストＩＦ）２１０とＤＭＡインタフェース部（ＤＭＡＩＦ）２１１とクロック生成部２１２とコマンド転送方向切替部２１３とデータ転送方向切替部２１４とを有する。なお、コマンドＩＤ分離部（ＤＭＵＸ）９３３とアンパッキング処理部９３２とビット幅変換部２２４とデータ受信部９０９は、データ受信ブロック９３４を構成する。
【０１５８】
データ転送装置９００は、双方向端子のＣＭＤ端子と双方向端子のＤＡＴ端子と出力端子のＣＬＫ端子によって外部と接続される。ＣＭＤ端子は１本の信号線からなり、転送要求指示を含むコマンドとコマンドへの応答となるレスポンスの送受信を行う。ＤＡＴ端子は４本の信号線からなり、転送要求に対応するデータの送受信を行う。ＣＬＫ端子は１本の信号線からなり、ＣＭＤ端子によるコマンドとレスポンスの送受信とＤＡＴ端子によるデータの送受信の同期を取るためのクロック信号を送信する。
【０１５９】
データ受信部９０９内にあるスタートビット検出部９３１は、受信したリードデータの先頭位置を表すスタートビットとコマンドＩＤのパッキングデータを検出する。スタートビットの検出パターンはインタフェースプロトコルにより規定されている。
【０１６０】
コマンドＩＤ分離部９３３は、スタートビット検出部９３１が検出したスタートビットとコマンドＩＤのパッキングデータをリードデータから分離し、パッキングデータをアンパッキング処理部９３２に、リードデータをビット幅変換部２２４に転送する。
【０１６１】
アンパッキング処理部９３２は、入力されるスタートビットとコマンドＩＤのパッキングデータに対してアンパッキング処理し、コマンドＩＤを分離して、データバッファ２０７とデータ制御シーケンサ２０５へ出力する。
【０１６２】
図１０は、本実施の形態のデータ転送装置８００とデータ転送装置９００で扱うリードデータの構成を表す。図１０において、リードデータ１０００は、４ビット幅のデータであり、各ビットはＤＡＴ[０]〜ＤＡＴ[３]で表される。リードデータ１０００の先頭１ビットは、ＤＡＴ[０]のビット位置にスタートビットが位置し、ＤＡＴ[１]〜ＤＡＴ[３]のビット位置に３ビットのコマンドＩＤ[２:０]が位置する。スタートビットとコマンドＩＤのパッキングデータの後にリードデータｒｄａｔが続き、リードデータｒｄａｔの次にＣＲＣコードが続く。最後のビットは、リードデータの終了位置を示すエンドビットである。
【０１６３】
このように、第２の実施の形態のデータ転送システムでは、スタートビットがＤＡＴ［０］に配置され、コマンドＩＤがＤＡＴ［１］〜ＤＡＴ［３］のビット位置に配置されるので、１サイクルでスタートビットとコマンドＩＤとを送信することができデータの転送効率を高めることができる。
【０１６４】
ここで、従来のデータ転送装置と比較して、本実施の形態のデータ転送装置の効果について述べる。従来のＩＤを通知する通信方式としては、無線の電文によりデータの受け渡しを行う場合に、算術演算によってＩＤの一部をコマンド部に重ねて送出するようにして、ＩＤのビット数を増やしても電文自体が長くならないようにした無線通信機器のＩＤ通信方式があった。このようなＩＤ通信方式は、例えば、特開平１０−２８５２３７号公報に開示されている。
【０１６５】
図１１は、上記特許公報に記載された従来のＩＤを通知する通信方式を示す図である。図１１に示すように、電文フォーマット１６００は、BiT Sync１６０１、Frame Sync１６０２、ＩＤ０〜ＩＤ２ １６０３、コマンド信号１６０４、データ１６０５、チェックサム１６０６の各ビットを有する。ＩＤ０〜ＩＤ２１６０３の３ビットの機器認識用ＩＤを５ビットに拡張するため、新たなビットＩＤ３とＩＤ４を新設し、ＩＤ３とコマンド信号１６０４、ＩＤ４とデータ１６０５とでＸＯＲの算術演算を行い、ビットＩＤ３とＩＤ４をコマンド信号１６０４、データ１６０５に付加している。このように、従来のＩＤを通知する通信方式では、拡張した機器認識用ＩＤを認識するには、機器認識用ＩＤを分離するのに別途算術演算が必要であったが、本実施の形態では、算術演算を行わないで、コマンドＩＤを認識できる。また本実施の形態では、新たな端子数を増加することなく、さらには転送サイクル数の増加を招くことなく、転送データにＩＤ情報を付加できる。
【０１６６】
また、第２の実施の形態のデータ転送システムは、上記した第１の実施の形態のデータ転送システムと同様に、データ転送効率を高めると共に、優先度に応じてデータを転送できるという効果を有する。
【産業上の利用可能性】
【０１６７】
本発明によれば、リードレイテンシを短縮して転送処理性能を高めることができると共に、優先度の高いデータ転送を先に行うことができるというすぐれた効果を有し、双方向バスインタフェースを持つ半導体集積回路、あるいは、双方向バスインタフェースで接続されるカードスロットを持つ携帯電話やノートＰＣ等の携帯端末機器、フラッシュメモリ、無線ＬＡＮカード等の接続インタフェースが双方向バスインタフェースであるカードモジュール機器に搭載されるデータ転送装置、またはデータ転送システム等として有用である。
【図面の簡単な説明】
【０１６８】
【図１】第１の実施の形態のデバイス側のデータ転送装置の構成図
【図２】第１の実施の形態のホスト側のデータ転送装置の構成図
【図３】第１の実施の形態のデータ転送システムの構成図
【図４】コマンド、レスポンス、転送データのフォーマットを示す図
【図５】第１の実施の形態におけるデータ転送システムを用いたデータ転送の一例を示すタイミングチャート
【図６】第１の実施の形態におけるデータ転送システムを用いたデータ転送の別の例を示すタイミングチャート
【図７】第１の実施の形態におけるデータ転送システムを用いたデータ転送の別の例を示すタイミングチャート
【図８】第２の実施の形態のデバイス側のデータ転送装置の構成図
【図９】第２の実施の形態のホスト側のデータ転送装置の構成図
【図１０】第２の実施の形態におけるデータ転送システムで用いるリードデータのフォーマット
【図１１】従来の電文フォーマット
【図１２】従来のデータ転送システムの構成図
【図１３】従来のデータ転送システムを用いたデータ転送のタイミングチャート
【図１４】従来のデータ転送システムの構成図
【符号の説明】
【０１６９】
１００  デバイス側のデータ転送装置
１０１  レスポンス送信部
１０２  コマンド受信部
１０３  コマンド制御シーケンサ
１０４  転送要求保持部
１０５  データ制御シーケンサ
１０６  データバッファ制御部
１０７  データバッファ
１０８  データ送信部
１０９  データ受信部
１１０  内部アクセス制御部
１１１  データ転送方向切替部
１１２  コマンド転送方向切替部
１１３  パラレル・シリアル変換部
１１４  シリアル・パラレル変換部
１１５  ＩＤ分離部
１１６  レスポンス生成部
１１７  リード・ライト処理決定部
１１８  送受信制御部
１１９  調停部
１２０  送受信制御部
１２１  データ送信中断再開制御部
１２２  コマンドＩＤ管理部
１２３  コマンドＩＤ付加部
１２４  ビット幅変換部
１２５  ビット幅変換部
２００  データ転送装置
２０１  コマンド送信部
２０２  レスポンス受信部
２０３  コマンド制御シーケンサ
２０４  転送要求保持部
２０５  データ制御シーケンサ
２０６  データバッファ制御部
２０７  データバッファ
２０８  データ送信部
２０９  データ受信部
２１０  ホストＩＦ
２１１  ＤＭＡＩＦ
２１２  クロック生成部
２１３  コマンド転送方向切替部
２１４  データ転送方向切替部
２１５  パラレル・シリアル変換部
２１６  シリアル・パラレル変換部
２１７  送受信制御部
２１８  コマンド生成部
２１９  リード・ライト処理決定部
２２０  送受信制御部
２２１  データ送信中断再開制御部
２２２  ビット幅変換部
２２３  コマンドＩＤ分離部
２２４  ビット幅変換部
３００  データ転送システム
４００  データ
８００  データ転送装置
８０８  データ送信部
８３１  スタートビット生成部
８３２  パッキング処理部
８３３  コマンドＩＤ付加部
９００  データ転送装置
９０９  データ受信部
９３１  スタートビット検出部
９３２  アンパッキング処理部
９３３  コマンドＩＤ分離部
１０００  リードデータ
１１０１  データ転送装置
１１０２  データ転送装置
１２００  装置
１２１０  リード・ライト要求発行処理装置
１２２０  ライトバッファ
１２３０  バス切換え装置
１３００  装置
１３１０  バス切換え装置
１３２０  メモリ
１３３０  メモリアクセス装置
１４００  双方向バス
１５００  リードデータ転送予告信号線
１６００  電文フォーマット
１６０１  Bit Sync
１６０２  Frame Sync
１６０３  ＩＤ
１６０４  コマンド信号
１６０５  データ
１６０６  チェックサム
【図１】
2009181444.tif 000003
【図２】
2009181444.tif 000004
【図３】
2009181444.tif 000005
【図４】
2009181444.tif 000006
【図５】
2009181444.tif 000007
【図６】
2009181444.tif 000008
【図７】
2009181444.tif 000009
【図８】
2009181444.tif 000010
【図９】
2009181444.tif 000011
【図１０】
2009181444.tif 000012
【図１１】
2009181444.tif 000013
【図１２】
2009181444.tif 000014
【図１３】
2009181444.tif 000015
【図１４】
2009181444.tif 000016