JP3780776B2 - データ転送制御装置及び電子機器 - Google Patents

データ転送制御装置及び電子機器 Download PDF

Info

Publication number
JP3780776B2
JP3780776B2 JP29358899A JP29358899A JP3780776B2 JP 3780776 B2 JP3780776 B2 JP 3780776B2 JP 29358899 A JP29358899 A JP 29358899A JP 29358899 A JP29358899 A JP 29358899A JP 3780776 B2 JP3780776 B2 JP 3780776B2
Authority
JP
Japan
Prior art keywords
page table
data
page
transfer
control device
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
JP29358899A
Other languages
English (en)
Other versions
JP2001119414A (ja
Inventor
大輔 佐藤
浩 堀内
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Seiko Epson Corp
Original Assignee
Seiko Epson Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Seiko Epson Corp filed Critical Seiko Epson Corp
Priority to JP29358899A priority Critical patent/JP3780776B2/ja
Priority to US09/685,139 priority patent/US6810445B1/en
Priority to EP20000121379 priority patent/EP1093269B1/en
Priority to DE60030655T priority patent/DE60030655D1/de
Priority to AT00121379T priority patent/ATE339834T1/de
Priority to KR10-2000-0060229A priority patent/KR100381647B1/ko
Priority to TW89121481A priority patent/TW498209B/zh
Priority to CNB001306936A priority patent/CN1146801C/zh
Publication of JP2001119414A publication Critical patent/JP2001119414A/ja
Priority to US10/961,191 priority patent/US7249204B2/en
Application granted granted Critical
Publication of JP3780776B2 publication Critical patent/JP3780776B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/36Flow control; Congestion control by determining packet size, e.g. maximum transfer unit [MTU]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Transfer Systems (AREA)
  • Small-Scale Networks (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Communication Control (AREA)
  • Facsimiles In General (AREA)
  • Credit Cards Or The Like (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、データ転送制御装置及びこれを含む電子機器に関し、特に、バスに接続される複数のノード間でIEEE1394などの規格に準じたデータ転送を行うデータ転送制御装置及びこれを含む電子機器に関する。
【0002】
【背景技術及び発明が解決しようとする課題】
近年、IEEE1394と呼ばれるインターフェース規格が脚光を浴びている。このIEEE1394は、次世代のマルチメディアにも対応可能な高速シリアルバスインターフェースを規格化したものである。このIEEE1394によれば、動画像などのリアルタイム性が要求されるデータも扱うことができる。また、IEEE1394のバスには、プリンタ、スキャナ、CD−RWドライブ、ハードディスクドライブなどのコンピュータの周辺機器のみならず、ビデオカメラ、VTR、TVなどの家庭用電化製品も接続できる。このため、電子機器のデジタル化を飛躍的に促進できるものとして期待されている。
【0003】
しかしながら、このIEEE1394に準拠したデータ転送制御装置には次のような課題があることが判明した。
【0004】
即ち、現在のIEEE1394規格によれば最大で400Mbpsの転送速度が実現可能となっている。しかし、現実には、処理のオーバーヘッドの存在に起因して、システム全体の実転送速度はこれよりもかなり低くなっている。つまり、CPU上で動作するファームウェア(処理手段)が、転送データを準備したり、転送データをパケットに分割したり、転送開始コマンドを発行したりするなどの処理に多くの時間を要してしまい、バス上での転送速度が速くても、結局、高速なデータ転送を実現できない。
【0005】
特に、周辺機器に組み込まれるCPUは、パーソナルコンピュータなどのホストシステムに組み込まれるCPUに比べて処理能力が低い。このため、ファームウェア等の処理のオーバーヘッドの問題は、非常に深刻なものとなる。従って、このようなオーバーヘッドの問題を効果的に解消できる技術が望まれている。
【0006】
また、パーソナルコンピュータなどのイニシエータ(ホスト)とCD−RWドライブやプリンタなどのターゲット(デバイス)との間でデータ転送を行う場合、イニシエータ側のデータバッファ(記憶手段)の各ページ境界を越えてのデータ転送は許されないという制約がある。そして、イニシエータが、ページテーブルを用いて間接アドレス方式でアドレスを指定する場合には、このような制約についてターゲット側が特別に考慮する必要はない。しかしながら、イニシエータが、直接アドレス方式でアドレスを指定した場合には、ターゲット側がこの制約を遵守しながらデータ転送を行わなければならないという課題がある。
【0007】
本発明は、以上のような技術的課題に鑑みてなされたものであり、その目的とするところは、ページテーブルの存在、不存在に依らずに、ページ境界を越えないという制約を遵守しながら高速なデータ転送を実現できるデータ転送制御装置及びこれが用いられる電子機器を提供することにある。
【0008】
【課題を解決するための手段】
上記課題を解決するために本発明は、バスに接続される複数のノード間でのデータ転送のためのデータ転送制御装置であって、相手ノードの記憶手段にページテーブルが存在する場合には、該ページテーブルを相手ノードからフェッチするページテーブルフェッチ回路と、相手ノードの記憶手段にページテーブルが存在しない場合には、ページ境界情報に基づいて仮想的なページテーブルを生成するページテーブル生成回路と、フェッチ又は生成されたページテーブルに基づいて、転送データを各ページ境界を越えないパケットに分割して転送する処理を実行する転送実行回路とを含むことを特徴とする。
【0009】
本発明によれば、相手ノードの記憶手段にページテーブルが存在する場合には、そのページテーブルがフェッチされ、相手ノードの記憶手段にページテーブルが存在しない場合には、仮想的なページテーブルが生成される。そして、このフェッチ又は生成されたページテーブルを用いて、転送データが、各ページ境界を越えないパケットに分割されて転送される。このように本発明によれば、ページテーブルが存在しない場合にも、生成された仮想的なページテーブルを用いてデータが転送されるため、ページテーブルがフェッチ又は生成された後の転送実行処理を共通化できるようになる。即ち、ページテーブルの存在、不存在に依らずに、同一内容の転送実行処理でデータを転送できる。従って、処理の簡素化、回路の小規模化を図れる。また本発明によれば、ページテーブルが存在しない場合にも、仮想的なページテーブルを用いてデータが転送されるため、相手ノードの記憶手段の各ページ境界を越えないという制約が遵守しながら、高速なデータ転送を実現できる。
【0010】
また本発明は、処理手段が転送開始コマンドを発行した場合に、前記ページテーブルフェッチ回路又は前記ページテーブル生成回路が、ページテーブルを自動的にフェッチ又は生成し、前記転送実行回路が、ページテーブル分の転送データを一連のパケットに自動的に分割し、分割された一連のパケットを連続転送する処理を実行することを特徴とする。このようにすれば、処理手段が転送開始コマンドを発行すると、ページテーブルが自動的にフェッチ又は生成され、ページテーブル分の転送データが自動的に一連のパケットに分割されて転送されるようになる。従って、ファームウェアなどの処理手段の処理負担を格段に軽減でき、データの実転送速度を大幅に向上できる。
【0011】
また本発明は、ページテーブルが有するページテーブルエレメント情報に基づいて、ペイロードサイズのパケットに転送データを分割するペイロード分割回路を含むことを特徴とする。このようにすれば、パケットのペイロード分割もハードウェアにより自動的に行われるようになるため、ファームウェアなどの処理手段の処理負担を更に軽減できる。
【0012】
また本発明は、パケットの制御情報が格納される制御情報領域とパケットのデータが格納されるデータ領域とを有し、ランダムアクセス可能なパケット記憶手段を含み、前記パケット記憶手段の前記データ領域が、第1の層用の第1のデータが格納される第1のデータ領域と、前記転送実行回路による連続パケット転送の対象となる第2の層用の第2のデータが格納される第2のデータ領域とに分離されていることを特徴とする。本発明によれば、パケットの制御情報(例えばヘッダ、フッター)は制御情報領域に格納され、パケットの第1のデータ(例えばトランザクション層用のデータ)は第1のデータ領域に格納され、パケットの第2のデータ(例えばアプリケーション層用のデータ)は第2のデータ領域に格納される。このようにすれば、第2のデータ領域から第2のデータを連続して読み出して、第2の層に転送することができるようになる。これにより、データ転送を飛躍的に高速化できる。
【0013】
なお本発明では、前記第1のデータが、前記第1の層のプロトコルで使用されるコマンドデータであり、前記第2のデータが、アプリケーション層で使用されるデータであることが望ましい。
【0014】
また本発明は、トランザクションを開始させる要求パケットを相手ノードに対して送信する際に、前記要求パケットに含まれるトランザクション識別情報の中に、相手ノードから応答パケットを受信した際に行う処理を指示するための指示情報を含ませ、相手ノードから応答パケットを受信した場合に、応答パケットのトランザクション識別情報が含む前記指示情報に基づき、応答パケットの制御情報、第1、第2のデータを、各々、前記制御情報領域、前記第1、第2のデータ領域に書き込むことを特徴とする。このようにすれば、応答ノードから応答パケットが返信されてきた時に、ファームウェアなどの処理手段が関与することなく、指示情報により指示される領域に応答パケットの制御情報、第1、第2のデータが自動的に書き込まれるようになる。従って、処理手段の処理負担を格段に軽減できる。
【0015】
また本発明は、ランダムアクセス可能なパケット記憶手段を含み、前記パケット記憶手段が、ページテーブルがフェッチされた場合にはフェッチされたページテーブルが格納され、ページテーブルが生成された場合には生成されたページテーブルが格納されるページテーブル領域を有することを特徴とする。このようにすれば、転送実行回路は、ページテーブルがフェッチされたのか或いは生成されたのかを意識することなく、ページテーブル領域に格納されたページテーブルに基づいてデータ転送処理を実行できるようになる。
【0016】
また本発明は、ページテーブルがフェッチされた場合には、フェッチされたページテーブルのサイズを表示し、ページテーブルが生成された場合には、生成されたページテーブルのサイズを表示するページテーブルサイズレジスタを含むことを特徴とする。このようにすれば、転送実行回路は、ページテーブルがフェッチされたのか或いは生成されたのかを意識することなく、ページテーブルレジスタに格納されたページテーブルサイズを用いて所望の処理を行うことができるようになる。
【0017】
また本発明は、バスに接続される複数のノード間でのデータ転送のためのデータ転送制御装置であって、転送データの先頭アドレスが、相手ノードの記憶手段の第K−1、第Kのページ境界間又は第Kのページ境界上にあり、転送データの終了アドレスが、第L、第L+1のページ境界間又は第Lのページ境界上にある場合に、第K、第Lのページ境界間のページテーブルエレメント数が所定数となるページテーブルを生成するページテーブル生成手段と、生成されたページテーブルに基づいて、転送データを各ページ境界を越えないパケットに分割して転送する処理を実行する転送実行手段とを含むことを特徴とする。
【0018】
本発明によれば、第K、第Lのページ境界間のページテーブルエレメント数が所定数(望ましくは1)となるページテーブルが生成される。そして、生成されたページテーブルを用いて、転送データが、各ページ境界を越えないパケットに分割されて転送される。従って、ページテーブルサイズを最小限のサイズに収めることができ、ページテーブルを格納する領域の使用記憶容量を節約できる。また、各ページ境界を越えないという制約が遵守しながら、高速なデータ転送を実現できるようになる。
【0019】
また本発明は、最大ペイロードサイズがページ境界サイズの約数となるペイロードサイズのパケットに転送データを分割するペイロード分割手段を含むことを特徴とする。このように最大ペイロードサイズがページ境界サイズの約数になるようにペイロード分割すれば、第K、第Lのページ境界間のページテーブルエレメント数が所定数となるようなページテーブルを生成した場合にも、ページ境界を越えないという制約を遵守しながら高速にデータを転送できるようになる。
【0020】
また本発明は、前記ページテーブル生成手段が、転送データの先頭アドレスが第K−1、第Kのページ境界間にあり、転送データの終了アドレスが第L、第L+1のページ境界間にある場合には、先頭アドレスと第Kのページ境界間が第1のページテーブルエレメントとなり、第K、第Lのページ境界間が第2のページテーブルエレメントとなり、第Lのページ境界と終了アドレス間が第3のページテーブルエレメントとなるページテーブルを生成することを特徴とする。このようにすれば、ページテーブルエレメント数が最大で3になるため、ページテーブルサイズを最小限のサイズに収めることができる。
【0021】
また本発明は、前記ページテーブル生成手段が、転送データの先頭アドレスが第K−1、第Kのページ境界間にあり、転送データの終了アドレスが第K−1、第Kのページ境界間又は第Kのページ境界上にある場合には、先頭アドレス、終了アドレス間が第1のページテーブルエレメントとなるページテーブルを生成することを特徴とする。このようにすれば、転送データの先頭アドレスが第K−1、第Kのページ境界間にあり、転送データの終了アドレスが第K−1、第Kのページ境界間又は第Kのページ境界上にある場合に、ページテーブルエレメント数を1に収めることができるようになる。
【0022】
また本発明は、前記ページテーブル生成手段が、転送データの先頭アドレスが第K−1、第Kのページ境界間にあり、転送データの終了アドレスが第Kのページ境界よりも後ろにある場合には、先頭アドレス、第Kのページ境界間を第1のページテーブルエレメントとし、次ページテーブルエレメント以降については、転送データの先頭アドレスが第Kのページ境界上にあったものとしてページテーブルを生成することを特徴とする。このようにすれば、先頭アドレスが第Kのページ境界上にあった場合となかった場合とで、以降の処理を共通化できるようになり、処理の簡素化を図れる。
【0023】
また、本発明では、IEEE1394の規格に準拠したデータ転送を行うことが望ましい。
【0024】
また本発明に係る電子機器は、上記のいずれかのデータ転送制御装置と、前記データ転送制御装置及びバスを介して他のノードから受信したデータに所与の処理を施す装置と、処理が施されたデータを出力又は記憶するための装置とを含むことを特徴とする。また本発明に係る電子機器は、上記のいずれかのデータ転送制御装置と、前記データ転送制御装置及びバスを介して他のノードに送信するデータに所与の処理を施す装置と、処理が施されるデータを取り込むための装置とを含むことを特徴とする。
【0025】
本発明によれば、他のノードから転送されたデータを電子機器において出力したり記憶したりする処理、電子機器において取り込んだデータを他のノードに転送したりする処理を高速化することが可能になる。また、本発明によれば、データ転送制御装置を小規模化できると共に、データ転送を制御するファームウェアなどの処理負担を軽減できるため、電子機器の低コスト化、小規模化などを図ることも可能になる。
【0026】
【発明の実施の形態】
以下、本発明の好適な実施形態について図面を用いて詳細に説明する。
【0027】
1.IEEE1394
まず、IEEE1394について簡単に説明する。
【0028】
1.1 概要
IEEE1394(IEEE1394−1995、P1394.a)では100〜400Mbpsの高速なデータ転送が可能となっている(P1394.bでは800〜3200Mbps)。また、転送速度が異なるノードをバスに接続することも許される。
【0029】
各ノードはツリー状に接続されており、1つのバスに最大で63個のノードが接続可能になっている。なお、バスブリッジを利用すれば約64000個のノードを接続することも可能である。
【0030】
IEEE1394では、パケットの転送方式として非同期転送とアイソクロナス転送が用意されている。ここで非同期転送は、信頼性が要求されるデータの転送に好適な転送方式であり、アイソクロナス転送は、リアルタイム性が要求される動画像や音声などのデータの転送に好適な転送方式である。
【0031】
1.2 層構造
IEEE1394の層構造(プロトコル構成)を図1に示す。
【0032】
IEEE1394のプロトコルは、トランザクション層、リンク層、物理層により構成される。また、シリアルバスマネージメントは、トランザクション層、リンク層、物理層をモニターしたり制御したりするものであり、ノードの制御やバスのリソース管理のための種々の機能を提供する。
【0033】
トランザクション層は、上位層にトランザクション単位のインターフェース(サービス)を提供し、下層のリンク層が提供するインターフェースを通して、リードトランザクション、ライトトランザクション、ロックトランザクション等のトランザクションを実施する。
【0034】
ここで、リードトランザクションでは、応答ノードから要求ノードにデータが転送される。一方、ライトトランザクションでは、要求ノードから応答ノードにデータが転送される。またロックトランザクションでは、要求ノードから応答ノードにデータが転送され、応答ノードがそのデータに処理を施して要求ノードに返信する。
【0035】
リンク層は、アドレッシング、データチェック、パケット送受信のためのデータフレーミング、アイソクロナス転送のためのサイクル制御などを提供する。
【0036】
物理層は、リンク層により使用されるロジカルシンボルの電気信号への変換や、バスの調停や、バスの物理的インターフェースを提供する。
【0037】
1.3 SBP-2
さて、図2に示すように、IEEE1394のトランザクション層の一部の機能を含む上位のプロトコルとして、SBP-2(Serial Bus Protocol-2)と呼ばれるプロトコルが提案されている。
【0038】
ここでSBP-2は、SCSIのコマンドセットをIEEE1394のプロトコル上で利用可能にするために提案されたものである。このSBP-2を用いれば、既存のSCSI規格の電子機器で使用されていたSCSIのコマンドセットに最小限の変更を加えて、IEEE1394規格の電子機器に使用できるようになる。従って、電子機器の設計や開発を容易化できる。また、SCSIのコマンドだけではなく、デバイス固有のコマンドもカプセル化して利用できるため、非常に汎用性が高い。
【0039】
図3に示すようにSBP-2では、まず、イニシエータ(例えばパーソナルコンピュータ)により作成されたログインORB(Operation Request Block)を用いてログイン処理が行われる(ステップT1)。次に、ダミーORBを用いてフェッチエージェントの初期化が行われる(ステップT2)。そして、ノーマルコマンドORBを用いてコマンド処理が行われ(ステップT3)、最後に、ログアウトORBを用いてログアウト処理が行われる(ステップT4)。
【0040】
ステップT3のコマンド処理においては、図4のA1に示すように、イニシエータがライト要求パケットを転送して(ライト要求トランザクションを発行して)、ターゲットのドアベルレジスタをリングする。すると、A2に示すように、ターゲットがリード要求パケットを転送し、イニシエータが対応するリード応答パケットを返す。これにより、イニシエータが作成したORB(ノーマルコマンドORB)が、ターゲットのデータバッファにフェッチされる。そして、ターゲットは、フェッチされたORBに含まれるコマンドを解析する。
【0041】
そして、ORBに含まれるコマンドがSCSIのリードコマンドであった場合には、A3に示すように、ターゲットは、一連のライト要求パケットをイニシエータに転送する。これにより、例えばターゲットのメディア(CD−RW)から読み出されたデータ(ストリーム)が、イニシエータのデータバッファに転送されることになる。
【0042】
一方、ORBに含まれるコマンドがSCSIのライトコマンドであった場合には、図5のB1に示すように、ターゲットがリード要求パケットをイニシエータに転送し、イニシエータが対応するリード応答パケットを返す。これにより、イニシエータのデータバッファに格納されているデータ(ストリーム)がターゲットに転送され、ターゲットのメディアに書き込まれることになる(ターゲットがプリンタの場合には印刷される)。
【0043】
このSBP-2によれば、ターゲットは、自身が都合の良いときに要求パケットを転送して(トランザクションを発行して)、データを送受信できる。従って、イニシエータとターゲットが同期して動く必要がなくなるため、データ転送効率を高めることができる。
【0044】
なお、IEEE1394の上位プロトコルとしては、SBP-2以外にも、FCP(Function Control Protocol)と呼ばれるプロトコルなども提案されている。
【0045】
さて、ターゲット、イニシエータ間でデータ転送を行う場合、図6(A)のようにイニシエータ(相手ノード)のデータバッファ(記憶手段)にページテーブルが存在する場合と、存在しない場合がある。
【0046】
そして、ページテーブルが存在する場合には、図6(B)に示すように、イニシエータが作成したORBの中には、そのページテーブルのアドレスやエレメント数が含まれる。そして、転送データのアドレス(読み出しアドレス、書き込みアドレス)は、このページテーブルを用いて間接アドレス指定される。
【0047】
一方、ページテーブルが存在しない場合には、図6(C)に示すように、ORBの中にはアドレスとデータ長が含まれ、転送データのアドレスが直接アドレス指定される。
【0048】
2.全体構成
次に、本実施形態のデータ転送制御装置の全体構成の例について図7を用いて説明する。
【0049】
図7において、PHYインターフェース10は、PHYデバイス(物理層のデバイス)とのインターフェースを行う回路である。
【0050】
リンクコア20(リンク手段)は、リンク層のプロトコルやトランザクション層のプロトコルの一部をハードウェアにより実現する回路であり、ノード間でのパケット転送のための各種サービスを提供する。レジスタ22は、リンクコア20を制御するためのレジスタである。
【0051】
FIFO(Asynchronous Transmission Fifo)30、FIFO(Isochronous Transmission Fifo)32、FIFO(Reception Fifo)34は、各々、非同期送信用、アイソクロナス送信用、受信用のFIFOであり、例えばレジスタや半導体メモリなどのハードウェアにより構成される。本実施形態では、これらのFIFO30、32、34の段数は非常に少ない。例えば1つのFIFOの段数は、好ましくは3段以下であり、更に好ましくは2段以下となる。
【0052】
DMAC40(読み出し手段)、DMAC42(読み出し手段)、DMAC44(書き込み手段)は、各々、ATF用、ITF用、RF用のDMAコントローラである。これらのDMAC40、42、44を用いることで、CPU66に介入されることなく、RAM80とリンクコア20との間でのデータ転送が可能になる。なお、レジスタ46は、DMAC40、42、44などを制御するためのレジスタである。
【0053】
ポートインターフェース50は、アプリケーション層のデバイス(例えばプリンタの印字処理を行うデバイス)とのインターフェースを行う回路である。
【0054】
FIFO(PF)52は、アプリケーション層のデバイスとの間でのデータ転送のためのFIFOであり、DMAC54は、PF用のDMAコントローラである。レジスタ56は、ポートインターフェース50やDMAC54を制御するレジスタである。
【0055】
SBP-2コア84(転送実行回路)は、SBP-2のプロトコルの一部やトランザクション層の一部をハードウェアにより実現する回路である。このSBP-2コア84の機能により、転送データを一連のパケットに分割し、分割された一連のパケットを連続転送する処理が可能になる。なお、レジスタ88は、SBP-2コア84を制御するためのレジスタであり、DMAC(SBP-2用)86は、SBP-2コア84用のDMAコントローラである。
【0056】
RAM領域管理回路300は、RAM80の各領域を管理するための回路である。RAM領域管理回路300は、RAM80の各領域がフルになったり、エンプティになった場合に、各種のフル信号、エンプティ信号を用いてDMAC40、42、44、54、86を制御する。
【0057】
CPUインターフェース60は、データ転送制御装置をコントロールするCPU66(処理手段)とのインターフェースを行う回路である。CPUインターフェース60は、アドレスデコーダ62、データ同期化回路63、割り込みコントローラ64を含む。クロック制御回路68は、本実施形態で使用されるクロックを制御するものであり、PHYデバイス(PHYチップ)から送られてくるSCLK(データ転送制御装置のシステムクロック)や、HCLK(CPU66の動作クロック)が入力される。
【0058】
バッファマネージャ70は、RAM80とのインターフェースを管理する回路である。バッファマネージャ70は、バッファマネージャの制御のためのレジスタ72、RAM80へのバス接続を調停する調停回路74、各種の制御信号を生成するシーケンサ76を含む。
【0059】
RAM80は、ランダムアクセス可能なパケット記憶手段として機能するものであり、その機能は例えばSRAM、SDRAM、DRAMなどにより実現される。
【0060】
なおRAM80は、本実施形態のデータ転送制御装置に内蔵させることが特に望ましいが、その一部又は全部を外付けにすることも可能である。
【0061】
図8に、RAM80のメモリマップの一例を示す。図8に示すように本実施形態では、RAM80が、ヘッダ領域(AR2、AR3、AR4、AR6)とデータ領域(AR5、AR7、AR8、AR9)に分離されている。そして、パケットのヘッダ(広義には制御情報)はヘッダ領域に格納され、パケットのデータ(ORB、ストリーム)はデータ領域に格納される。
【0062】
また本実施形態では、図8に示すように、RAM80のデータ領域(AR5、AR7、AR8、AR9)が、ORB領域(AR5、AR7)とストリーム領域(AR8、AR9)に分離されている。
【0063】
更に本実施形態では、RAM80が、受信領域(AR2、AR4、AR5、AR9)と送信領域(AR3、AR6、AR7、AR8)に分離されている。
【0064】
なお、ORB(第1の層用の第1のデータ)は、上述したようにSBP-2用のデータ(コマンド)である。一方、ストリーム(第1の層より上層の第2の層用の第2のデータ)は、アプリケーション層用のデータ(プリンタの印字データ、CD−RWの読み出し・書き込みデータ、スキャナによる取り込み画像データ等)である。
【0065】
また、AR1、AR2、AR3に示すHW(ハードウェア)用ページテーブル領域、HW用受信ヘッダ領域、HW用送信ヘッダ領域は、図7に示すSBP-2コア84が、ページテーブルや受信ヘッダや送信ヘッダを書き込んだり読み出したりするための領域である。
【0066】
なお、図8においてAR4、AR5、AR8、AR9に示す領域は、いわゆるリングバッファ構造になっている。
【0067】
さて、図7のバス90(或いはバス92、94)は、アプリケーションに接続されるものである(第1のバス)。またバス95(或いはバス96)はデータ転送制御装置をコントロールし、或いはデータをリード・ライトするためのものであり、データ転送制御装置をコントロールするデバイス(例えばCPU)に電気的に接続される(第2のバス)。またバス100(或いはバス102、104、105、106、107、108、109)は、物理層のデバイス(PHYデバイス)に電気的に接続されるものである(第3のバス)。また、バス110は、ランダムアクセス可能な記憶手段であるRAM80に電気的に接続されるものである(第4のバス)。またバス99は、SBP-2コア84がハードウェアによりSBP-2を実現するためのヘッダ情報やページテーブル情報をリード・ライトするためのものである(第5のバス)。
【0068】
バッファマネージャ70の調停回路74は、DMAC40、42、44、CPUインターフェース60、DMAC86、54からのバスアクセス要求の調停を行う。そして、この調停結果に基づいて、各々、バス105、107、109、96、99、94のいずれかと、RAM80のバス110との間にデータの経路が確立される(第1、第2、第3、第5のバスのいずれかと第4のバスとの間にデータ経路が確立される)。
【0069】
本実施形態の1つの特徴は、ランダムアクセスが可能でありパケットを格納するRAM80を設けると共に、互いに分離されるバス90、95、99、100と、これらのバスをRAM80のバス110に接続するための調停回路74とを設けた点にある。
【0070】
このようにすることで図9に示すように、データ転送制御装置120、アプリケーション層のデバイス124間のバス90と、CPUバス96と、データ転送制御装置120、RAM80間のバス110とを分離できる。従って、CPUバス96をデータ転送の制御のみに使用できるようになる。また、バス90を占有して、データ転送制御装置120、アプリケーション層のデバイス124間でデータ転送を行うことができるようになる。例えば、データ転送制御装置120が組み込まれる電子機器がプリンタである場合には、バス90を占有して印字データを転送できるようになる。この結果、CPU66の処理負担を軽減でき、システム全体の実転送速度を高めることができる。またCPU66として安価なものを採用できると共に、CPUバス96として高速なバスを使用する必要性がなくなる。このため、電子機器の低コスト化、小規模化を図れるようになる。
【0071】
3.SBP-2コア(転送実行回路)の構成
図10に、図7のSBP-2コア84の構成例を示す。SBP-2コア84は、転送データを一連のパケットに自動的に分割し、分割された一連のパケットを連続転送するための回路であり、主に図4のA3、図5のB1に示すパケット転送をハードウェアにより実行する。
【0072】
メイン制御回路200は、SBP-2コア84の全体を制御するための回路であり、レジスタ202、204、206、208を含む。
【0073】
ここで、レジスタ202、204、206は、各々、データ転送(ハードウェアSBP-2処理)のスタートコマンド、ポーズコマンド、レジュームコマンドをファームウェア(CPU)が発行するためのレジスタである。即ち、ファームウェアがレジスタ202に1を書き込むと、転送データを一連のパケットに分割して連続転送する処理が開始する。そして、この転送処理中に、ファームウェアがレジスタ204に1を書き込むと、データ転送処理がポーズされ、レジスタ206に1を書き込むと、ポーズされていたデータ転送処理が再開される。
【0074】
レジスタ208は、ページテーブルの存在、不存在を設定するためのレジスタである。即ち、ファームウェアは、イニシエータからのORBを解析し、イニシエータのデータバッファにページテーブルが存在しないと判断した場合には、レジスタ208に1を書き込む。一方、存在すると判断した場合(図6(A)の場合)には、レジスタ208に0を書き込む。
【0075】
ページテーブルフェッチ回路210は、イニシエータ(相手ノード)のデータバッファ(記憶手段)にページテーブルが存在する場合に、そのページテーブルをイニシエータからフェッチするための処理を行う回路である。より具体的には、ページテーブルフェッチ回路210は、送信ヘッダ生成回路260にページテーブルのフェッチを指示し、フェッチが完了すると、ページテーブルアドレスやページテーブルサイズの更新をページテーブル生成回路220に指示する。
【0076】
ページテーブル生成回路220は、イニシエータのデータバッファにページテーブルが存在しない場合に、仮想的なページテーブルを生成する回路である。より具体的には、メイン制御回路200からページテーブルの生成が指示されると、後述するアルゴリズムにしたがってページテーブルを生成する。そして、生成されたページテーブルを、エレメント保持回路230やバッファインターフェース290を介してRAMのHW用ページテーブル領域に書き込むための処理を行う。
【0077】
なお、ページテーブルが存在するか否かは、前述のように、レジスタ208の設定値に基づき判断される。また、ページテーブルフェッチ回路210、ページテーブル生成回路220によりフェッチ又は生成されたページテーブルは、RAMのHW用ページテーブル領域(図8のAR1)に格納される。
【0078】
ページテーブル生成回路220が含むレジスタ222には、イニシエータからのORBにより指定されたページ境界サイズが設定される。またレジスタ224、226には、ページテーブルが存在する場合には、ORBにより指定されたページテーブルアドレス、ページテーブルサイズ(エレメント数)が設定される(図6(B)参照)。一方、ページテーブルが存在しない場合には、転送データの先頭アドレスとデータ長が設定される(図6(C)参照)。またエレメントカウンタ228は、ページテーブルの生成の際に、ページテーブルのエレメント数(エレメントポインタ)をカウントする処理を行う。
【0079】
なお、レジスタ226は、ページテーブルが存在し、ページテーブルがフェッチされた場合には、フェッチされたページテーブルのサイズをファームウェアのリード時にバイト単位(エレメント数×8バイト)で表示する。一方、ページテーブルが存在せず、ページテーブルが生成された場合には、生成されたページテーブルのサイズをファームウェアのリード時にバイト単位(エレメント数×8バイト)で表示する。
【0080】
このように本実施形態では、ページテーブルをフェッチした場合にもページテーブルを生成した場合にも、レジスタ226がページテーブルサイズを同じバイト単位で表示する。従って、ファームウェアや、転送実行制御回路240などの他の回路ブロックは、ページテーブルがフェッチされたのか或いは生成されたのかを意識することなく、このレジスタ226に格納されたページテーブルサイズを用いて所望の処理を行うことができるようになる。従って、処理の簡素化やハードウェアの小規模化を図れる。
【0081】
エレメント保持回路230は、SBP-2コアの処理対象となるページテーブルエレメントの情報を保持する回路であり、ページテーブルエレメントのセグメント長を保持するレジスタ232と、セグメントオフセットアドレスを保持するレジスタ234を含む。
【0082】
転送実行制御回路240は、SBP-2コアによるデータ転送(ストリーム転送)の実行を制御する回路であり、レジスタ242、244を含む。そして、レジスタ242は、現在処理中のページテーブルエレメントの番号を表示する。またレジスタ244には、データ転送を開始するページテーブルエレメントの番号が、ファームウェアにより設定される。これにより、ファームウェアは任意のページテーブルエレメントからのデータ転送を開始できるようになる。
【0083】
なお、転送実行制御回路240は、レジスタ226のページテーブルサイズを8で除算することで得られるエレメント数と、レジスタ242のカレントエレメント番号を比較することで、全てのページテーブルエレメントの処理が終了したか否かを判断する。例えば24ページのページテーブルがフェッチされた場合には、カレントエレメント番号が24になったところで処理を終了し、3ページのページテーブルが生成された場合には、カレントエレメント番号が3になったところで処理を終了する。
【0084】
ペイロード分割回路250は、転送データを、ペイロードサイズのパケットに分割する処理を行う。ペイロード分割回路250が含むレジスタ252には、ORBにより指定された最大ペイロードサイズが設定される。またレジスタ254は、実際のペイロードサイズを表示する。ペイロード分割回路250は、RAMのHWページテーブル領域(図8のAR1)から読み出されてレジスタ232に保持されるページテーブルエレメントのセグメント長と、レジスタ252に設定された最大ペイロードサイズとに基づいて、ペイロード分割処理を行うことになる。
【0085】
送信ヘッダ生成回路260は、ファームウェアにより設定されたスピードコードやデスティネーションIDなどに基づいて、図4のA3、図5のB1の各要求パケットのヘッダを生成する処理を行う。そして、生成されたヘッダは、RAMのHW用送信ヘッダ領域(図8のAR3)に格納される。このように本実施形態では、連続転送される一連の要求パケットのヘッダがハードウェアにより自動生成されるため、ファームウェアの処理負担を大幅に軽減できる。
【0086】
トランザクション制御回路270は、リンクコアなどの外部の回路ブロックからのエラー情報やステータス情報を受け、トランザクションの実行のための種々の処理を行う。そして、トランザクションの実行が完了すると、トランザクション完了信号TCompをアクティブにして、ページテーブルフェッチ回路210やペイロード分割回路250に知らせる。このように本実施形態のSBP-2コアは、パケット単位ではなく、トランザクション単位でデータ転送処理を管理している。
【0087】
スプリットタイマ280は、トランザクションの開始時にスプリットタイムをロードし、カウントダウンを開始する。そして、カウント値が0になったら、タイムアウトになったことをトランザクション制御回路270に伝える。
【0088】
バッファインターフェース290は、図7のバッファマネージャ70とのインターフェースとして機能する回路である。SBP-2コア84の各ブロックは、このバッファインターフェース290を介して、バッファマネージャ70に対してRAM80へのアクセスを要求することになる。
【0089】
3.1 メイン制御回路
次に、メイン制御回路200の動作について図11のフローチャートを用いて説明する。
【0090】
まず、HW用ページテーブル領域に既に格納されているページテーブルを使用するか否かを判断し(ステップS1)、使用する場合にはステップS5に、使用しない場合にはステップS2に移行する。既にHW用ページテーブル領域に格納されているページテーブルを使用するか否かの設定は、ファームウェアが所与のレジスタに所与の設定値を書き込むことで実現される。
【0091】
次に、図10のレジスタ208の設定値に基づき、イニシエータのデータバッファにページテーブルが存在するか否かを判断する(ステップS2)。そして、存在する場合には、ページテーブルフェッチ回路210に対して、ページテーブルのフェッチ処理の開始を指示する(ステップS3)。一方、存在しない場合には、ページテーブル生成回路220に対して、ページテーブルの生成処理の開始を指示する(ステップS4)。
【0092】
そして、ページテーブルのフェッチ又は生成処理が完了すると、転送実行制御回路240に対して、転送実行処理(ストリームデータタスク)の開始を指示する(ステップS5)。
【0093】
3.2 ページテーブルフェッチ回路
次に、ページテーブルフェッチ回路210の動作について図12のフローチャートを用いて説明する。
【0094】
まず、ページテーブルアドレスやページテーブルサイズ(エレメント数)などの、ページテーブルのフェッチに必要な引数を準備する(ステップS11)。次に、送信ヘッダ生成回路260に対してトランザクション実行の開始を指示する(ステップS12)。そして、信号TCompによりトランザクションの完了が知らされると、ページテーブル生成回路220に対して、ページテーブルアドレスの更新を指示する(ステップS13)。
【0095】
次に、メイン制御回路200からの信号Pauseに基づいて、ポーズが指示されたか否かを判断する(ステップS14)。即ち、ファームウェアがポーズコマンドを発行してレジスタ204に1を書き込むと、信号Pauseがアクティブになり、ポーズが指示される。そして、ファームウェアがレジュームコマンドを発行してレジスタ206に1を書き込むと、信号Pauseが非アクティブになり、ポーズが解除されて、データ転送処理がレジュームされる(ステップS15)。
【0096】
3.3 ページテーブル生成回路
ページテーブル生成回路220は、イニシエータのデータバッファにページテーブルが存在しない場合に、仮想的なページテーブルを生成する回路であり、生成されたページテーブルは、RAMのHW用ページテーブル領域に格納される。そして、イニシエータのデータバッファにページテーブルが存在しない場合にも、この生成された仮想的なページテーブルに基づいて、転送データを各ページ境界を越えないパケットに分割して転送する処理が行われるようになる。
【0097】
例えば図13に示すように、転送データの先頭アドレスSAがページ境界PB0、PB1間にあり、終了アドレスEAがページ境界PB4、PB5間にあったとする。この場合に、本実施形態のページテーブル生成回路220は、ページ境界PB1、PB4間(第K、第Lのページ境界間)のページテーブルのエレメント数が、1(広義には所定数)となる仮想的なページテーブルを生成する。
【0098】
より具体的には、先頭アドレスSAとページ境界PB1間がX種のページテーブルエレメント(第1のページテーブルエレメント)になり、ページ境界PB1、PB4間がY種のページテーブルエレメント(第2のページテーブルエレメント)になり、ページ境界PB4と終了アドレスEA間がZ種のページテーブルエレメント(第3のページテーブルエレメント)になる3ページのページテーブルを生成する。
【0099】
但し、図14(A)のように転送データの先頭アドレスSAがページ境界PB1(第Kのページ境界)上にある場合には、X種のページテーブルエレメントは生成されず、2ページのページテーブルになる。また、図14(B)のように転送データの終了アドレスEAがページ境界PB4(第Lのページ境界)上にある場合には、Z種のページテーブルエレメントは生成されず、2ページのページテーブルになる。更に図14(C)のように、転送データの先頭アドレスSAがページ境界PB0、PB1間にあり、終了アドレスEAがページ境界PB0、PB1間又はPB1上にある場合には、SA、EA間がX種のページテーブルエレメントとなる1ページのページテーブルが生成される。
【0100】
また本実施形態では、図10のペイロード分割回路250が、最大ペイロードサイズがページ境界サイズの約数となるペイロードサイズのパケットに、転送データを分割している。即ち図15において、最大ペイロードサイズMaxPLSがページ境界サイズPBSの約数となるようなパケット分割が行われる。
【0101】
このように、最大ペイロードサイズMaxPLSをページ境界サイズPBSの約数にすれば、例えば図15のC1やC2に示すように、ページ境界PB2やPB3においてパケットのペイロードがページ境界をまたがないようになる。従って、本実施形態のようにPB1、PB4間のページテーブルエレメント数が1となるようなページテーブルを生成した場合にも、ページ境界を越えないという制約を遵守しながらデータ転送を行えるようになる。
【0102】
次に、ページテーブル生成回路220の動作について図16、図17のフローチャートを用いて詳細に説明する。
【0103】
まず、図10のエレメントカウンタ228のカウント値(エレメントポインタ)を初期化する(ステップS21)。本実施形態では、エレメントカウンタ228のカウント値の範囲は0〜2となっており、初期化によりカウント値は0になる。
【0104】
次に、先頭アドレスがページ境界上にあるか否かを判断する(ステップS22)。より具体的には、ORBにより直接アドレス指定される転送データの先頭アドレス(図6(C)参照)の下位ビット0〜M(Mはページ境界サイズにより決まる値)が0か否かを判断する。そして、下位ビット0〜Mが全て0の場合には先頭アドレスがページ境界上にあると判断して図17のステップS30に移行する。一方、下位ビット0〜Mに0でないビットが1つでもあれば、先頭アドレスがページ境界上にないと判断してステップS23に移行する。
【0105】
先頭アドレスがページ境界上になく、ステップS23に移行した場合には、ページテーブルサイズPTSと、先頭アドレスから次のページ境界までのサイズDSとを比較する。例えば、図18(A)、(B)では、ページテーブルサイズPTSが、先頭アドレスSAから次のページ境界PB1までのサイズDSよりも大きく、この場合にはステップS24に移行してX種のページテーブルエレメントを生成する。そして、このページテーブルエレメントをRAMのHW用ページテーブル領域(図8のAR1)に書き込む処理を行う(ステップS25)。より具体的には、先頭アドレスSAからページ境界PB1までのサイズDSを図10のセグメント長のレジスタ232に書き込み、先頭アドレスSAをセグメントオフセットアドレスのレジスタ234に書き込む。そして、これらのレジスタ232、234の値をRAMのHW用ページテーブル領域に書き込むように、バッファインターフェース290に指示する。
【0106】
次に、先頭アドレスSA、ページテーブルサイズPTS、エレメントカウンタ228のカウント値を更新する(ステップS26)。即ち図18(D)、(E)に示すように、先頭アドレスSAが、ページ境界PB1上のアドレスSA’(SA’=SA+DS)に更新され、ページテーブルサイズPTSが、ページ境界PB1、終了アドレスEA間のサイズPTS’(PTS’=PTS−DS)に更新される。またエレメントカウンタ228のカウント値は+1されて1になる。そして、先頭アドレスがページ境界上にあった場合の移行先である図17のステップ30に移行する。
【0107】
以上のように本実施形態では、図18(A)、(B)のように先頭アドレスSAがページ境界PB0、PB1間にあり、終了アドレスEAがPB1よりも後ろにある場合には、SA、PB1間をX種のページテーブルエレメントにすると共に、次ページエレメント以降については、SAがPB1上にあったものとしてステップS30以降の処理を行う。このようにすることで、先頭アドレスSAがページ境界PB1上にあった場合となかった場合とで、ステップS30以降の処理を共通化できるようになる。これにより、処理の簡素化、ハードウェアの小規模化を図れる。
【0108】
ステップS23でPTS≦DSと判断され、ステップS27に移行した場合には、図18(C)に示すようにX種のページテーブルエレメントを生成する。そして、生成されたページテーブルエレメント(セグメント長、セグメントオフセットアドレス)の書き込み処理、及び、先頭アドレスSA、ページテーブルサイズPTS、エレメントカウンタ228のカウント値の更新処理が行われる(ステップS28、S29)。そして、この場合には図18(C)のように1ページのX種のページテーブルエレメントだけが生成されて、図17のステップS38に移行する。
【0109】
図17のステップS30に移行した場合には、ページテーブルサイズPTS(上位ビットM+1〜N)とページ境界サイズPBSを比較する。そして、図19(A)のようにPTS<PBSの場合にはステップS35に移行する。一方、図19(B)、(C)、(D)のようにPTS≧PBSの場合には、ステップS31に移行する。
【0110】
ステップS31に移行した場合には、図19(B)、(C)、(D)に示すようにY種のページテーブルエレメントを生成する。そして、このページテーブルエレメントをRAMのHW用ページテーブル領域に書き込む処理を行う(ステップS32)。より具体的には、ページテーブルサイズPTSの上位ビットM+1〜Nを図10のセグメント長のレジスタ232に書き込み、先頭アドレスSAをセグメントオフセットアドレスのレジスタ234に書き込む。そして、これらのレジスタ232、234の値をRAMのHW用ページテーブル領域に書き込むように、バッファインターフェース290に指示する。
【0111】
なお、セグメント長として書き込まれるページテーブルサイズPTSの上位ビットM+1〜Nは、図19(B)ではSA、PB2間のサイズ、図19(C)、(D)ではSA、PB3間のサイズに相当する。
【0112】
次に、先頭アドレスSA、ページテーブルサイズPTS、エレメントカウンタ228のカウント値を更新する(ステップS33)。即ち図19(B)の場合には、図20(A)に示すように、SAがPB2上のアドレスSA’に更新され、PTSがPB2、EA間のサイズPTS’に更新される。また図19(D)の場合には、図20(B)に示すように、SAがPB3上のアドレスSA’に更新され、PTSがPB3、EA間のサイズPTS’に更新される。またエレメントカウンタ228のカウント値は+1されて2になる。
【0113】
次に、更新後のページテーブルサイズが0になったか否かを判断する(ステップS34)。そして、例えば図19(B)、(D)の場合には、図20(A)、(B)に示すように、更新後のページテーブルサイズPTS’が0でないため、ステップS35に移行する。一方、図19(C)の場合には、更新後のページテーブルサイズが0になるため、ステップS38に移行する。
【0114】
ステップS35に移行した場合には、図20(A)、(B)に示すようにZ種のページテーブルエレメントを生成する。そして、生成されたページテーブルエレメントの書き込み処理、及び、先頭アドレスSA、ページテーブルサイズPTS、エレメントカウンタ228のカウント値の更新処理が行われる(ステップS36、S37)。
【0115】
次に、メイン制御回路200からの信号Pauseに基づいて、処理をポーズするか否かを判断し(ステップS38)、ポーズされた場合には、信号Pauseに基づいて、処理をレジュームするか否かを判断する(ステップS39)。即ち、Pauseがアクティブになると処理をポーズし、Pauseが非アクティブになると処理をレジュームする。
【0116】
3.4 転送実行(ストリームタスク)制御回路
次に、転送実行制御回路240の動作について図21のフローチャートを用いて説明する。
【0117】
まず、図10のカレントエレメント番号のレジスタ242に、レジスタ244のスタートエレメント番号をロードする(ステップS40)。そして、カレントエレメント番号のページテーブルエレメントを、RAMのHW用ページテーブル領域から読み出す処理を行う(ステップS41)。より具体的には、転送実行制御回路240は、処理対象となるページテーブルエレメントの読み出しをバッファインターフェース290に指示する。すると、バッファインターフェース290は、処理対象となるページテーブルエレメントをRAMのHW用ページテーブル領域から読み出し、ページテーブルエレメントのセグメント長をレジスタ232に、セグメントオフセットアドレスをレジスタ234に書き込む。
【0118】
次に、ペイロード分割回路250に対してペイロード分割処理の開始を指示する(ステップS42)。
【0119】
次に、現在のページテーブルエレメントの処理を終了したか否かを判断し(ステップS43)、終了していない場合にはステップS42に戻る。一方、終了した場合には、全てのページテーブルエレメントの処理を終了したか否かを判断すし(ステップS44)、終了していない場合には、カレントエレメント番号を+1して(ステップS45)、ステップS41に戻る。
【0120】
なお、全てのページテーブルエレメントの処理を終了したか否かは、レジスタ226のページテーブルサイズを8で除算することで得られるエレメント数と、カレントエレメント番号とを比較することで判断する。
【0121】
3.5 ペイロード分割回路
次に、ペイロード分割回路250の動作について図22のフローチャートを用いて説明する。ペイロード分割回路250は、図15に示すようにペイロードサイズのパケットに転送データを分割する処理を行うものである。
【0122】
まず、図10のレジスタ232に格納されるページテーブルエレメントのセグメント長の残りバイト数が、最大ペイロードサイズ以上になっているか否かを判断する(ステップS51)。そして、残りバイト数が最大ペイロードサイズ以上になっている場合には、パケットのペイロードサイズを最大ペイロードサイズに設定する(ステップS52)。一方、図15のC3やC4に示すように、残りバイト数が最大ペイロードサイズよりも小さくなっている場合には、パケットのペイロードサイズを残りバイト数に設定する(ステップS53)。
【0123】
なお、本実施形態では図15で説明したように、最大ペイロードサイズMaxPLSがページ境界サイズPBSの約数になっている。従って、図22に示す処理によってY種のページテーブルエレメントの転送データを最大ペイロードサイズMaxPLSのパケットに分割していった場合にも、図15のC1やC2に示すように、パケットのペイロードがページ境界PB2、PB3をまたがないようになる。
【0124】
ペイロードサイズの設定後、トランザクションの実行処理の開始(送信ヘッダの生成)を送信ヘッダ生成回路260に指示する(ステップS54)。そして、トランザクション制御回路270からの信号TCompによりトランザクションの完了が知らされると、エレメント保持回路230に対して、レジスタ232、234に格納されているページテーブルエレメントのセグメント長(残りバイト数)、セグメントオフセットアドレス(先頭アドレス)の更新を指示する(ステップS55)。
【0125】
次に、メイン制御回路200からの信号Pauseに基づいて、処理をポーズするか否かを判断し(ステップS56)、ポーズされた場合には、信号Pauseが非アクティブになったことを条件に、処理をレジュームする(ステップS57)。
【0126】
3.6 送信ヘッダ生成回路、トランザクション制御回路
次に、送信ヘッダ生成回路260、トランザクション制御回路270の動作について図23のフローチャートを用いて説明する。
【0127】
まず、要求パケットのヘッダを生成し、HW用送信ヘッダ領域(図8のAR3)に書き込む(ステップS61)。より具体的には、図4のA3のようにイニシエータにデータを送信する場合には、ライト要求(ブロックライト要求)パケットのヘッダをHW用送信ヘッダ領域に書き込む。一方、図5のB1のようにイニシエータからデータを受信する場合や、図12のようにページテーブルをフェッチする場合には、リード要求パケットのヘッダをHW用送信ヘッダ領域に書き込む。
【0128】
次に、転送の開始信号(HWStart)をアクティブにして転送の開始を指示し(ステップS62)、イニシエータからのACKの受信を待つ(ステップS63)。
【0129】
次に、送信パケットがリード要求パケットであった場合には、ACKペンディングか否かを判断し(ステップS65)、ACKペンディングでない場合にはステップS72に移行してエラーポーズ状態にする。一方、ACKペンディングの場合には、スプリットタイマの起動を指示して(ステップS66)、応答パケットの受信を待つ(ステップS67)。
【0130】
次に、応答パケットの受信がパーフェクトであったか否かを判断し(ステップS68)、DCEの場合には再度応答パケットが受信されるのを待ち、パーフェクトの場合にはステップS69に移行し、その他の場合にはステップS72に移行してエラーポーズ状態にする。そして、ステップS69に移行した場合にはスプリットタイマの停止を指示し、信号TCompをアクティブにして転送データのポインタを更新する(ステップS70)。
【0131】
一方、送信パケットがライト要求パケットであった場合には、まず、ACKペンディングか否かを判断する(ステップS71)。そして、ACKペンディングの場合にはステップS66に移行し、ACKコンプリートの場合にはステップS70に移行し、それ以外の場合にはステップS72に移行してエラーポーズ状態にする。
【0132】
なお、ステップS72に移行して処理がエラーポーズになった場合には、処理がレジュームされたことを条件に、ステップS62に移行する(ステップS73)。即ち、この場合には、HW用送信ヘッダ領域に既に書き込まれている送信ヘッダを再利用して、転送を再開することになる。
【0133】
以上のように本実施形態によれば、ページテーブルがイニシエータのデータバッファに存在する場合には、そのページテーブルがフェッチされ、存在しない場合には、仮想的なページテーブルが生成される。そして、このフェッチ又は生成されたページテーブルに基づきデータ転送が実行される。従って、ページテーブルがフェッチ又は生成された後の転送実行処理を共通化できるようになる。即ち、図21、図22、図23から明らかなように、ページテーブルが生成された場合とページテーブルがフェッチされた場合とで、転送実行制御回路240やペイロード分割回路250や送信ヘッダ生成回路260やトランザクション制御回路270の処理内容が同一になる。従って、これらの各回路ブロックの中に、ページテーブルフェッチ時用の回路とページテーブル生成時用の回路とを別に設ける必要がなく、処理の簡素化、回路の小規模化を図れるようになる。
【0134】
また本実施形態によれば、図13に示すように、ページ境界PB1、PB4間(第K、第Lのページ境界間)のページテーブルエレメント数が1(所定数)になるような仮想的なページテーブルが生成される。従って、ページテーブルサイズを最小限のサイズ(例えば3ページ以下)に収めることができる。これにより、ページテーブルを格納するHW用ページテーブル領域の使用記憶容量を節約できる。また、イニシエータにページテーブルが存在せず、直接アドレス方式でアドレスが指定された場合にも、図15に示すようにイニシエータ側のデータバッファの各ページ境界を越えないという制約が遵守しながら、高速なデータ転送を実現できるようになる。
【0135】
また本実施形態では、図8のAR1のHW用ページテーブル領域や、図10のページテーブルアドレス、ページテーブルサイズ用のレジスタ224、226が、ページテーブルをフェッチしたか或いは生成したかに依らずに、共通に使用される。従って、各回路ブロックの処理やファームウェアの処理の簡素化を図れる。
【0136】
また本実施形態では、図4のA3や図5のB1に示す処理がハードウェアにより自動実行される。即ち、ファームウェアがパケットの連続転送処理の開始を指示すると(図10のレジスタ202に1を書き込むと)、SBP-2コア84が、ページテーブルのフェッチ又は生成処理、ペイロード分割処理、送信ヘッダの生成処理、各パケットの転送開始処理、エラー処理などをハードウェアにより自動実行して、一連のパケットを自動転送する。従って、ファームウェアの処理負担を格段に軽減できるようになり、データ転送制御装置の実転送速度を大幅に向上できる。
【0137】
4.データ領域の分離(ORB領域とストリーム領域への分離)
本実施形態では、図7のRAM80(パケット記憶手段)を、図8に示すようにヘッダ領域(AR2、AR3、AR4、AR6)とデータ領域(AR5、AR7、AR8、AR9)に分離すると共に、データ領域を、ORB領域(AR5、AR7)とストリーム領域(AR8、AR9)に分離している。
【0138】
即ち、RAMをヘッダ領域とデータ領域に分離することで、ファームウェアは、ヘッダ領域からヘッダを連続して読み出したり、ヘッダ領域にヘッダを連続して書き込むことができるようになる。従って、ファームウェアの処理負担をある程度軽減できるという利点がある。しかしながら、データ転送の更なる高速化という観点からは、ヘッダ領域とデータ領域の分離だけでは不十分であることが判明した。
【0139】
例えば図24(A)では、パケットがヘッダとデータに分離され、ヘッダ1、2、3がヘッダ領域に格納され、データ1、2、3がデータ領域に格納されている。
【0140】
ここで、データには、前述のように、SBP-2(第1の層)用のORB(第1のデータ)と、上層であるアプリケーション層(第2の層)用のストリームとがある。従って、RAMをヘッダ領域とデータ領域に分離しただけでは、図24(A)のD1、D2、D3に示すように、データ領域においてORBとストリームとが混在するようになってしまう。
【0141】
このため、例えば、RAMからアプリケーション層のデバイスにストリームを転送する場合には、次のような処理が必要になる。即ち、まず、データポインタをD1の位置に設定してストリーム11、12、13を読み出し、次に、データポインタをD2の位置に変更してストリーム21、22、23を読み出す。その後、データポインタをD3の位置に変更してストリーム31、32、33を読み出す。
【0142】
このように、RAMを単にヘッダ領域とデータ領域に分離しただけでは、アプリケーション層のデバイスへのストリーム転送の際に、データポインタの位置を煩雑に切り替える制御が必要になり、処理の複雑化や回路の大規模化という事態を招く。また、データ領域から連続してストリームを読み出すことができないため、データ転送制御装置の実転送速度をそれほど向上できない。
【0143】
一方、図24(B)では、データ領域をORB領域とストリーム領域に分離している。このようにすれば、ファームウェアはORB領域からORB1、2、3を連続して読み出すことができるようになる。また、前述のSBP-2コア84の機能を利用して、ファームウェアを介在させることなくストリーム11〜33をRAMのストリーム領域から連続して読み出し、アプリケーション層のデバイスへ転送できるようになる。即ち、図25に示すように、相手ノード123(例えばパーソナルコンピュータ)とアプリケーション層のデバイス(例えばプリンタの印字処理を行うデバイス)との間で、ファームウェア(CPU)66の介在無しに、ストリーム(例えば印字データ)を高速に転送できるようになる。この結果、図24(A)に比べて、ファームウェアの処理負担を格段に軽減できると共に、データ転送を飛躍的に高速化できるようになる。
【0144】
なお、データ転送制御装置120がストリームを受信する場合のみならず、ストリームを送信する場合にも、データ領域を送信ORB領域(図8のAR7)と送信ストリーム領域(AR8)に分離することで、データ転送の高速化を図れる。即ち図25の方向DR1に示すように相手ノード123からアプリケーション層のデバイス124(自ノード)にストリームを転送する場合のみならず、方向DR2に示すようにアプリケーション層のデバイス124から相手ノード123にストリームを転送する場合においても、データ転送の高速化を図れる。
【0145】
5.トランザクションラベルを利用した書き込み領域の切り替え
IEEE1394においては、各トランザクションを識別するための情報として、トランザクションラベルtlと呼ばれるものが使用される。
【0146】
即ち、トランザクションの要求ノードは、要求パケットの中にトランザクションラベルtlを含ませて、応答ノードに送信する。そして、この要求パケットを受信した応答ノードは、応答パケットの中に、上記と同一のtlを含ませて、要求ノードに返信する。要求ノードは、返信された応答パケットに含まれるtlを調べることで、その応答パケットが、自身が要求したトランザクションに対応する応答であることを確認できるようになる。
【0147】
トランザクションラベルtlは、応答ノードとの関係においてユニークであれば十分である。より具体的には、例えば要求ノードND1が応答ノードND2に対してtl=TN1のトランザクションを発行した場合には、そのトランザクションが未完了の間は、要求ノードND1は応答ノードND2に対して、tl=TN1が付けられた他のトランザクションを発行することはできない。即ち、各トランザクションは、トランザクションラベルtlとソースIDとディスティネーションIDとによりユニークに特定されることになる。逆に言えば、トランザクションラベルtlは、上記の制約が守られている限り、どのような値を使うこともでき、他のノードは、どのようなtlも受け入れなければならない。
【0148】
さて、要求ノードが要求パケットを送信し、応答パケットの返信を待つ場合、応答パケットが返信されてきた際に行う処理が、既に決まっている場合がある。そこで、本実施形態は、上記のようなトランザクションラベルtlの性質に着目して、次のような手法を採用している。
【0149】
即ち、図26(A)に示すように、トランザクションを開始させる要求パケットを応答ノードに対して送信する際に、要求パケットに含まれるトランザクションラベルtl(広義にはトランザクション識別情報)の中に、応答パケットの返信時に行うべき処理を指示する指示情報を含ませる。そして、応答ノードから応答パケットを受信した際に、tlに含まれる指示情報に応じた処理を実行するようにする。
【0150】
このようにすれば、応答パケットが返送されてきた際に、ファームウェアが関与することなく、tlに含まれる指示情報に応じた処理を、SBP-2コア84などのハードウェアにより実行できるようになる。これにより、ファームウェアの処理負担を軽減できると共に、データ転送の高速化を図れる。
【0151】
より具体的には、本実施形態では、応答ノードから応答パケットを受信した場合に、tlに含まれる指示情報により指示される領域に、その応答パケットを格納するようにしている。
【0152】
即ち図26(B)に示すように、トランザクションラベルtlのビット5、4を、指示情報を表すビットとして予め予約しておく。
【0153】
そして、返信されてきた応答パケットをHW(ハードウェア)用領域に書き込む場合には、要求パケットのtlのビット5を1にセットして、応答ノードに送信する。一方、返信されてきた応答パケットをFW(ファームウェア)用領域に書き込む場合には、要求パケットのtlのビット5を0にセットして、応答ノードに送信する。
【0154】
また、返信されてきた応答パケットをストリーム領域に書き込む場合には、要求パケットのtlのビット4を1にセットして、応答ノードに送信する。一方、返信されてきた応答パケットをORB領域に書き込む場合には、要求パケットのtlのビット4を0にセットして、応答ノードに送信する。
【0155】
このようにすれば、応答パケットが返信されてきた時に、図27に示すように応答パケットのヘッダ、データがRAMの各領域に書き込まれるようになる。
【0156】
即ち、tl=1×××××(×は、ドント・ケアという意味)である場合には、応答パケットのヘッダは、HW用受信ヘッダ領域に書き込まれ、tl=0×××××である場合には、FW用受信ヘッダ領域に書き込まれる。
【0157】
また、tl=11××××である場合には、応答パケットのデータは、HW用受信ストリーム領域に書き込まれ、tl=10××××である場合には、HW用ページテーブル領域に書き込まれる。またtl=01××××である場合には、応答パケットのデータは、FW用受信ストリーム領域に書き込まれ、tl=00××××である場合には、FW用受信ORB領域に書き込まれる。
【0158】
このようにすることで、ファームウェアを介在させることなく、応答パケットのヘッダ、データを、ハードウェア(回路)によりRAMの各領域に自動的に書き込むことができるようになる。そして、RAMに応答パケットを書き込む処理を行うハードウェアの構成も簡素化でき、データ転送制御装置の小規模化を図れる。
【0159】
また、図24(B)で説明したように、パケットのヘッダをヘッダ領域に、ORBをORB領域に、ストリームをストリーム領域に自動的に書き込むことができるようになるため、ハードウェアの処理の簡素化、データ転送の高速化も図れるようになる。
【0160】
6.電子機器
次に、本実施形態のデータ転送制御装置を含む電子機器の例について説明する。
【0161】
例えば図28(A)に電子機器の1つであるプリンタの内部ブロック図を示し、図29(A)にその外観図を示す。CPU(マイクロコンピュータ)510はシステム全体の制御などを行う。操作部511はプリンタをユーザが操作するためのものである。ROM516には、制御プログラム、フォントなどが格納され、RAM518はCPU510のワーク領域として機能する。表示パネル519はプリンタの動作状態をユーザに知らせるためのものである。
【0162】
PHYデバイス502、データ転送制御装置500を介して、パーソナルコンピュータなどの他のノードから送られてきた印字データは、バス504を介して印字処理部512に直接送られる。そして、印字データは、印字処理部512にて所与の処理が施され、プリントヘッダなどからなる印字部(データを出力するための装置)514により紙に印字されて出力される。
【0163】
図28(B)に電子機器の1つであるスキャナの内部ブロック図を示し、図29(B)にその外観図を示す。CPU520はシステム全体の制御などを行う。操作部521はスキャナをユーザが操作するためのものである。ROM526には制御プログラムなどが格納され、RAM528はCPU520のワーク領域として機能する。
【0164】
光源、光電変換器などからなる画像読み取り部(データを取り込むための装置)522により原稿の画像が読み取られ、読み取られた画像のデータは画像処理部524により処理される。そして、処理後の画像データがバス505を介してデータ転送制御装置500に直接送られる。データ転送制御装置500は、この画像データにヘッダなどを付加することでパケットを生成し、PHYデバイス502を介してパーソナルコンピュータなどの他のノードに送信する。
【0165】
図28(C)に電子機器の1つであるCD−RWドライブの内部ブロック図を示し、図29(C)にその外観図を示す。CPU530はシステム全体の制御などを行う。操作部531はCD−RWをユーザが操作するためのものである。ROM536には制御プログラムなどが格納され、RAM538はCPU530のワーク領域として機能する。
【0166】
レーザ、モータ、光学系などからなる読み取り&書き込み部(データを取り込むための装置又はデータを記憶するための装置)533によりCD−RW532から読み取られたデータは、信号処理部534に入力され、エラー訂正処理などの所与の信号処理が施される。そして、信号処理が施されたデータが、バス506を介してデータ転送制御装置500に直接送られる。データ転送制御装置500は、このデータにヘッダなどを付加することでパケットを生成し、PHYデバイス502を介してパーソナルコンピュータなどの他のノードに送信する。
【0167】
一方、PHYデバイス502、データ転送制御装置500を介して、他のノードから送られてきたデータは、バス506を介して信号処理部534に直接送られる。そして、信号処理部534によりこのデータに所与の信号処理が施され、読み取り&書き込み部533によりCD−RW532に記憶される。
【0168】
なお、図28(A)、(B)、(C)において、CPU510、520、530の他に、データ転送制御装置500でのデータ転送制御のためのCPUを別に設けるようにしてもよい。
【0169】
また、図28(A)、(B)、(C)ではRAM501(図7のRAM80に相当)がデータ転送制御装置500の外部に設けられているが、RAM501をデータ転送制御装置500に内蔵させてもよい。
【0170】
本実施形態のデータ転送制御装置を電子機器に用いることで、高速なデータ転送が可能になる。従って、ユーザがパーソナルコンピュータなどによりプリントアウトの指示を行った場合に、少ないタイムラグで印字が完了するようになる。また、スキャナへの画像取り込みの指示の後に、少ないタイムラグで読み取り画像をユーザは見ることができるようになる。また、CD−RWからのデータの読み取りや、CD−RWへのデータの書き込みを高速に行うことができるようになる。更に、例えば1つのホストシステムに複数の電子機器を接続して利用したり、複数のホストシステムに複数の電子機器を接続して利用したりすることも容易になる。
【0171】
また本実施形態のデータ転送制御装置を電子機器に用いることで、CPU上で動作するファームウェアの処理負担が軽減され、安価なCPUや低速のバスを用いることが可能になる。更に、データ転送制御装置の低コスト化、小規模化を図れるため、電子機器の低コスト化、小規模化も図れるようになる。
【0172】
なお本実施形態のデータ転送制御装置を適用できる電子機器としては、上記以外にも例えば、種々の光ディスクドライブ(CD−ROM、DVD)、光磁気ディスクドライブ(MO)、ハードディスクドライブ、TV、VTR、ビデオカメラ、オーディオ機器、電話機、プロジェクタ、パーソナルコンピュータ、電子手帳、ワードプロセッサなど種々のものを考えることができる。
【0173】
なお、本発明は本実施形態に限定されず、本発明の要旨の範囲内で種々の変形実施が可能である。
【0174】
例えば、本発明のデータ転送制御装置の構成は、図7に示す構成が特に望ましいが、これに限定されるものではない。
【0175】
また、ページテーブル生成回路によるページテーブルの生成手法は、図13〜図20(B)で説明した手法が特に望ましいが、これに限定されるものではなく、少なくともページ境界情報に基づいてハードウェアにより仮想的なページテーブルを生成するものであればよい。
【0176】
また、転送実行回路(SBP-2コア)の構成も図10に示す構成が特に望ましいが、これに限定されるものではなく、少なくとも、転送データを各ページ境界を越えないパケットに分割して転送する回路であればよい。
【0177】
また、図13〜図20(B)で説明したページテーブルの生成手法は、ハードウェア(回路)により実現することが特に望ましいが、ソフトウェアにより実現することも可能である。
【0178】
また、パケットの分離手法、パケット記憶手段の各領域へのパケットの書き込み手法、読み出し手法も、図8、図24(B)で説明した手法に限定されるものではない。
【0179】
また、第1のデータはトランザクション層用のデータ、第2のデータはアプリケーション層用のデータであることが特に望ましいが、本発明の第1、第2のデータはこれに限定されるものではない。
【0180】
また、本発明は、IEEE1394規格でのデータ転送に適用されることが特に望ましいが、これに限定されるものではない。例えばIEEE1394と同様の思想に基づく規格やIEEE1394を発展させた規格におけるデータ転送にも本発明は適用できる。
【図面の簡単な説明】
【図1】IEEE1394の層構造について示す図である。
【図2】SBP-2について説明するための図である。
【図3】SBP-2のデータ転送処理の概略について説明するための図である。
【図4】データ(ストリーム)をターゲットからイニシエータに転送する場合のコマンド処理について説明するための図である。
【図5】データ(ストリーム)をイニシエータからターゲットに転送する場合のコマンド処理について説明するための図である。
【図6】図6(A)、(B)、(C)は、ページテーブルについて説明するための図である。
【図7】本実施形態のデータ転送制御装置の構成例を示す図である。
【図8】RAM(パケット記憶手段)の分離(分割)手法について説明するための図である。
【図9】本実施形態のデータ転送の手法について説明するための図である。
【図10】SBP-2コア(転送実行回路)の構成例を示す図である。
【図11】メイン制御回路の動作を説明するためのフローチャートである。
【図12】ページテーブルフェッチ回路の動作を説明するためのフローチャートである。
【図13】本実施形態のページテーブル生成手法について説明するための図である。
【図14】図14(A)、(B)、(C)も、本実施形態のページテーブル生成手法について説明するための図である。
【図15】本実施形態のペイロード分割手法について説明するための図である。
【図16】ページテーブル生成回路の動作を説明するためのフローチャートである。
【図17】ページテーブル生成回路の動作を説明するためのフローチャートである。
【図18】図18(A)、(B)、(C)、(D)、(E)は、各ページテーブルエレメントの生成手法について説明するための図である。
【図19】図19(A)、(B)、(C)、(D)も、各ページテーブルエレメントの生成手法について説明するための図である。
【図20】図20(A)、(B)も、各ページテーブルエレメントの生成手法について説明するための図である。
【図21】転送実行制御回路の動作を説明するためのフローチャートである。
【図22】ペイロード分割回路の動作を説明するためのフローチャートである。
【図23】送信ヘッダ生成回路、トランザクション制御回路の動作について説明するためのフローチャートである。
【図24】図24(A)、(B)は、データ領域をORB領域とストリーム領域に分離する手法について説明するための図である。
【図25】相手ノードとアプリケーション層のデバイスとの間のストリーム転送の様子を示す図である。
【図26】図26(A)、(B)は、トランザクションラベルについて説明するための図である。
【図27】トランザクションラベルを利用して、RAMの各領域にパケットのヘッダ、データを書き込む手法について説明するための図である。
【図28】図28(A)、(B)、(C)は、種々の電子機器の内部ブロック図の例である。
【図29】図29(A)、(B)、(C)は、種々の電子機器の外観図の例である。
【符号の説明】
10 PHYインターフェース
20 リンクコア
22 レジスタ
30 FIFO(ATF)
32 FIFO(ITF)
34 FIFO(RF)
40 DMAC(ATF用)
42 DMAC(ITF用)
44 DMAC(RF用)
46 レジスタ
50 ポートインターフェース
52 FIFO(PF)
54 DMAC(PF用)
56 レジスタ
60 CPUインターフェース
62 アドレスデコーダ
63 データ同期化回路
64 割り込みコントローラ
66 CPU
68 クロック制御回路
70 バッファマネージャ
72 レジスタ
74 調停回路
76 シーケンサ
80 RAM(パケット記憶手段)
84 SBP-2コア(転送実行回路)
86 DAMAC(SBP-2用)
90、92、94 バス(第1のバス)
95、96 バス(第2のバス)
99 バス(第5のバス)
100、102、104、105、
106、107、108、109 バス(第3のバス)
110 バス(第4のバス)
120 データ転送制御装置
122 PHYデバイス
123 相手ノード
124 アプリケーション層のデバイス
200 メイン制御回路
202、204、206、208 レジスタ
210 ページテーブルフェッチ回路
220 ページテーブル生成回路
222、224、226 レジスタ
228 エレメントカウンタ
230 エレメント保持回路
232、234 レジスタ
240 転送実行(ストリームタスク)制御回路
242、244 レジスタ
250 ペイロード分割回路
252、254 レジスタ
260 送信ヘッダ生成回路
270 トランザクション制御回路
280 スプリットタイマ
290 バッファインターフェース

Claims (15)

  1. バスに接続される複数のノード間でのデータ転送のためのデータ転送制御装置であって、
    相手ノードの記憶手段にページテーブルが存在する場合には、該ページテーブルを相手ノードからフェッチするページテーブルフェッチ回路と、
    相手ノードの記憶手段にページテーブルが存在しない場合には、ページ境界情報に基づいて仮想的なページテーブルを生成するページテーブル生成回路と、
    フェッチ又は生成されたページテーブルに基づいて、転送データを各ページ境界を越えないパケットに分割して転送する処理を実行する転送実行回路と、
    を含むことを特徴とするデータ転送制御装置。
  2. 請求項1において、
    処理手段が転送開始コマンドを発行した場合に、
    前記ページテーブルフェッチ回路又は前記ページテーブル生成回路が、ページテーブルを自動的にフェッチ又は生成し、
    前記転送実行回路が、ページテーブル分の転送データを一連のパケットに自動的に分割し、分割された一連のパケットを連続転送する処理を実行することを特徴とするデータ転送制御装置。
  3. 請求項1又は2において、
    ページテーブルが有するページテーブルエレメント情報に基づいて、ペイロードサイズのパケットに転送データを分割するペイロード分割回路を含むことを特徴とするデータ転送制御装置。
  4. 請求項1乃至3のいずれかにおいて、
    パケットの制御情報が格納される制御情報領域とパケットのデータが格納されるデータ領域とを有し、ランダムアクセス可能なパケット記憶手段を含み、
    前記パケット記憶手段の前記データ領域が、第1の層用の第1のデータが格納される第1のデータ領域と、前記転送実行回路による連続パケット転送の対象となる第2の層用の第2のデータが格納される第2のデータ領域とに分離されていることを特徴とするデータ転送制御装置。
  5. 請求項4において、
    トランザクションを開始させる要求パケットを相手ノードに対して送信する際に、前記要求パケットに含まれるトランザクション識別情報の中に、相手ノードから応答パケットを受信した際に行う処理を指示するための指示情報を含ませ、
    相手ノードから応答パケットを受信した場合に、応答パケットのトランザクション識別情報が含む前記指示情報に基づき、応答パケットの制御情報、第1、第2のデータを、各々、前記制御情報領域、前記第1、第2のデータ領域に書き込むことを特徴とするデータ転送制御装置。
  6. 請求項1乃至5のいずれかにおいて、
    ランダムアクセス可能なパケット記憶手段を含み、
    前記パケット記憶手段が、
    ページテーブルがフェッチされた場合にはフェッチされたページテーブルが格納され、ページテーブルが生成された場合には生成されたページテーブルが格納されるページテーブル領域を有することを特徴とするデータ転送制御装置。
  7. 請求項1乃至6のいずれかにおいて、
    ページテーブルがフェッチされた場合には、フェッチされたページテーブルのサイズを表示し、ページテーブルが生成された場合には、生成されたページテーブルのサイズを表示するページテーブルサイズレジスタを含むことを特徴とするデータ転送制御装置。
  8. バスに接続される複数のノード間でのデータ転送のためのデータ転送制御装置であって、
    転送データの先頭アドレスが、相手ノードの記憶手段の第K−1、第Kのページ境界間又は第Kのページ境界上にあり、転送データの終了アドレスが、第L、第L+1のページ境界間又は第Lのページ境界上にある場合に、第K、第Lのページ境界間のページテーブルエレメント数が所定数となるページテーブルを生成するページテーブル生成手段と、
    生成されたページテーブルに基づいて、転送データを各ページ境界を越えないパケットに分割して転送する処理を実行する転送実行手段と、
    を含むことを特徴とするデータ転送制御装置。
  9. 請求項8において、
    最大ペイロードサイズがページ境界サイズの約数となるペイロードサイズのパケットに転送データを分割するペイロード分割手段を含むことを特徴とするデータ転送制御装置。
  10. 請求項8又は9において、
    前記ページテーブル生成手段が、
    転送データの先頭アドレスが第K−1、第Kのページ境界間にあり、転送データの終了アドレスが第L、第L+1のページ境界間にある場合には、先頭アドレスと第Kのページ境界間が第1のページテーブルエレメントとなり、第K、第Lのページ境界間が第2のページテーブルエレメントとなり、第Lのページ境界と終了アドレス間が第3のページテーブルエレメントとなるページテーブルを生成することを特徴とするデータ転送制御装置。
  11. 請求項8乃至10のいずれかにおいて、
    前記ページテーブル生成手段が、
    転送データの先頭アドレスが第K−1、第Kのページ境界間にあり、転送データの終了アドレスが第K−1、第Kのページ境界間又は第Kのページ境界上にある場合には、先頭アドレス、終了アドレス間が第1のページテーブルエレメントとなるページテーブルを生成することを特徴とするデータ転送制御装置。
  12. 請求項8乃至11のいずれかにおいて、
    前記ページテーブル生成手段が、
    転送データの先頭アドレスが第K−1、第Kのページ境界間にあり、転送データの終了アドレスが第Kのページ境界よりも後ろにある場合には、先頭アドレス、第Kのページ境界間を第1のページテーブルエレメントとし、次ページテーブルエレメント以降については、転送データの先頭アドレスが第Kのページ境界上にあったものとしてページテーブルを生成することを特徴とするデータ転送制御装置。
  13. 請求項1乃至12のいずれかにおいて、
    IEEE1394の規格に準拠したデータ転送を行うことを特徴とするデータ転送制御装置。
  14. 請求項1乃至13のいずれかのデータ転送制御装置と、
    前記データ転送制御装置及びバスを介して他のノードから受信したデータに所与の処理を施す装置と、
    処理が施されたデータを出力又は記憶するための装置とを含むことを特徴とする電子機器。
  15. 請求項1乃至13のいずれかのデータ転送制御装置と、
    前記データ転送制御装置及びバスを介して他のノードに送信するデータに所与の処理を施す装置と、
    処理が施されるデータを取り込むための装置とを含むことを特徴とする電子機器。
JP29358899A 1999-10-15 1999-10-15 データ転送制御装置及び電子機器 Expired - Lifetime JP3780776B2 (ja)

Priority Applications (9)

Application Number Priority Date Filing Date Title
JP29358899A JP3780776B2 (ja) 1999-10-15 1999-10-15 データ転送制御装置及び電子機器
US09/685,139 US6810445B1 (en) 1999-10-15 2000-10-11 Data transfer control device and electronic equipment
DE60030655T DE60030655D1 (de) 1999-10-15 2000-10-12 Datenübertragungssteurungsvorrichtung und elektronische Vorrichtung
AT00121379T ATE339834T1 (de) 1999-10-15 2000-10-12 Datenübertragungssteurungsvorrichtung und elektronische vorrichtung
EP20000121379 EP1093269B1 (en) 1999-10-15 2000-10-12 Data transfer control device and electronic equipment
KR10-2000-0060229A KR100381647B1 (ko) 1999-10-15 2000-10-13 데이터 전송 제어 장치 및 전자 기기
TW89121481A TW498209B (en) 1999-10-15 2000-10-13 Data transfer control apparatus and electronic machine
CNB001306936A CN1146801C (zh) 1999-10-15 2000-10-16 数据传送控制装置和电子装置
US10/961,191 US7249204B2 (en) 1999-10-15 2004-10-12 Data transfer control device electronic equipment and method data transfer control

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP29358899A JP3780776B2 (ja) 1999-10-15 1999-10-15 データ転送制御装置及び電子機器

Publications (2)

Publication Number Publication Date
JP2001119414A JP2001119414A (ja) 2001-04-27
JP3780776B2 true JP3780776B2 (ja) 2006-05-31

Family

ID=17796676

Family Applications (1)

Application Number Title Priority Date Filing Date
JP29358899A Expired - Lifetime JP3780776B2 (ja) 1999-10-15 1999-10-15 データ転送制御装置及び電子機器

Country Status (8)

Country Link
US (2) US6810445B1 (ja)
EP (1) EP1093269B1 (ja)
JP (1) JP3780776B2 (ja)
KR (1) KR100381647B1 (ja)
CN (1) CN1146801C (ja)
AT (1) ATE339834T1 (ja)
DE (1) DE60030655D1 (ja)
TW (1) TW498209B (ja)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3606133B2 (ja) * 1999-10-15 2005-01-05 セイコーエプソン株式会社 データ転送制御装置及び電子機器
US20030031152A1 (en) * 2000-02-23 2003-02-13 Wataru Gohda Asynchronous transmission method
JP3740379B2 (ja) * 2000-04-19 2006-02-01 キヤノン株式会社 画像処理装置及び画像処理方法
JP4097891B2 (ja) * 2000-11-27 2008-06-11 三菱電機株式会社 Ieee1394を用いた同期システム
US7315388B2 (en) * 2001-01-24 2008-01-01 Canon Kabushiki Kaisha Image input/output control apparatus, image processing apparatus, image processing method, data communication apparatus, and data communication method
SE521753C2 (sv) * 2002-02-08 2003-12-02 Xelerated Ab Förfarande och system för att uppfylla realtidskrav för en dataprocessor
JP2003281071A (ja) 2002-03-20 2003-10-03 Seiko Epson Corp データ転送制御装置、電子機器及びデータ転送制御方法
JP3775318B2 (ja) 2002-03-20 2006-05-17 セイコーエプソン株式会社 データ転送制御装置及び電子機器
US7500047B1 (en) * 2004-12-03 2009-03-03 Crossroads Systems, Inc. System and method for processing commands
JP2007179273A (ja) * 2005-12-27 2007-07-12 Sony Corp ファイル転送システム、ファイル記憶装置、ファイル記憶方法及びプログラム
US20080034147A1 (en) * 2006-08-01 2008-02-07 Robert Stubbs Method and system for transferring packets between devices connected to a PCI-Express bus
US9747363B1 (en) * 2012-03-01 2017-08-29 Attivio, Inc. Efficient storage and retrieval of sparse arrays of identifier-value pairs
JP5867206B2 (ja) * 2012-03-16 2016-02-24 富士通株式会社 移動制御装置,プログラム及びストレージ装置
JP7270387B2 (ja) * 2019-01-15 2023-05-10 キヤノン株式会社 画像処理装置、画像処理装置の制御方法、およびプログラム
CN112560090B (zh) * 2020-12-15 2023-01-24 建信金融科技有限责任公司 一种数据检测方法和装置

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4993846A (en) * 1989-07-21 1991-02-19 Sidney Diamond Soft bag and expander
US5313582A (en) 1991-04-30 1994-05-17 Standard Microsystems Corporation Method and apparatus for buffering data within stations of a communication network
JPH0619785A (ja) * 1992-03-27 1994-01-28 Matsushita Electric Ind Co Ltd 分散共有仮想メモリーとその構成方法
EP0684719A1 (en) 1994-05-25 1995-11-29 International Business Machines Corporation Method and apparatus for transmission of high priority traffic on low speed communication links
JPH10178438A (ja) 1996-12-18 1998-06-30 Sony Corp データ通信システム、データ通信装置および方法
US6308248B1 (en) 1996-12-31 2001-10-23 Compaq Computer Corporation Method and system for allocating memory space using mapping controller, page table and frame numbers
JPH11224220A (ja) 1998-02-09 1999-08-17 Hitachi Ltd メモリ管理方式
JP3376956B2 (ja) * 1999-05-14 2003-02-17 日本電気株式会社 プロセッサ間通信装置

Also Published As

Publication number Publication date
KR20010051013A (ko) 2001-06-25
EP1093269A2 (en) 2001-04-18
US6810445B1 (en) 2004-10-26
EP1093269A3 (en) 2002-09-11
CN1293412A (zh) 2001-05-02
EP1093269B1 (en) 2006-09-13
DE60030655D1 (de) 2006-10-26
CN1146801C (zh) 2004-04-21
ATE339834T1 (de) 2006-10-15
KR100381647B1 (ko) 2003-04-26
US7249204B2 (en) 2007-07-24
US20050044291A1 (en) 2005-02-24
JP2001119414A (ja) 2001-04-27
TW498209B (en) 2002-08-11

Similar Documents

Publication Publication Date Title
JP3843667B2 (ja) データ転送制御装置及び電子機器
US7590133B2 (en) Data communication system, data communication method, and data communication apparatus
JP3780776B2 (ja) データ転送制御装置及び電子機器
JP3608441B2 (ja) データ転送制御装置及び電子機器
JP2000124931A (ja) モジュ―ル型通信制御器及び方法
EP1253520B1 (en) Apparatus for issuing command for high-speed serial interface
JP3606133B2 (ja) データ転送制御装置及び電子機器
US6978327B1 (en) Data transfer control device and electronic equipment for performing data
KR100464469B1 (ko) 데이터 전송 제어 장치 및 전자기기
JP3610982B2 (ja) データ転送制御装置及び電子機器
CN1309361A (zh) 具有存储格式信息的配置只读存储器的设备
JP2001186146A (ja) データ転送制御装置及び電子機器
JP2001177544A (ja) データ転送制御装置、情報記憶媒体及び電子機器

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20040216

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20060209

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20060214

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20060227

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090317

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100317

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100317

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110317

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120317

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120317

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130317

Year of fee payment: 7