JP2008519373A - ハードウエアによる周辺コンポーネント・メモリー・アラインメントの方法 - Google Patents

ハードウエアによる周辺コンポーネント・メモリー・アラインメントの方法 Download PDF

Info

Publication number
JP2008519373A
JP2008519373A JP2007540365A JP2007540365A JP2008519373A JP 2008519373 A JP2008519373 A JP 2008519373A JP 2007540365 A JP2007540365 A JP 2007540365A JP 2007540365 A JP2007540365 A JP 2007540365A JP 2008519373 A JP2008519373 A JP 2008519373A
Authority
JP
Japan
Prior art keywords
data
memory
communication controller
buffer
host
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.)
Pending
Application number
JP2007540365A
Other languages
English (en)
Inventor
ウィンチェスター,ニール
チーチ,ウィリアム
ブラント,ポール
Original Assignee
スタンダード マイクロシステムズ コーポレーション
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 スタンダード マイクロシステムズ コーポレーション filed Critical スタンダード マイクロシステムズ コーポレーション
Publication of JP2008519373A publication Critical patent/JP2008519373A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Systems (AREA)
  • Computer And Data Communications (AREA)
  • Small-Scale Networks (AREA)
  • Bus Control (AREA)

Abstract

ホスト・システムに構成されたローカル・メモリと、遠隔メモリ間の、効果的なデータ転送のための、メモリ・アラインメントシステムが、ホスト・システムから受けたフォーマット情報を基に、送信、および受信データをアラインするように、ホスト・システムに設定された、データ通信コントローラ構成されている。ローカル・メモリから、イーサネット接続などを通して、データを転送する際、通信コントロールドライバ・ソフトウエアは、まず、データに関するフォーマット情報をデータ通信コントローラに書き込むことができる。データ通信コントローラは、ドライバ・ソフトウエアが、データ通信コントローラ内の設定可能なデータ・バッファに、データを移動する際、フォーマット情報に基づいて、データをアラインすることが可能である。同様に、ドライバ・ソフトウエアは、受信データについてのフォーマット情報を、受信フォーマット設定バッファに書き込むことができる。データ通信コントローラは、ホストによって、受信データが読まれている際、受信フォーマット情報に基づいて、受信データをアラインすることができる。データ通信コントローラが、すべての必要なデータアラインメントを実行するため、ホスト・プロセッサによるデータアラインメントの必要がなくなる。

Description

本発明は全般的にはデジタル・インターフェースの領域に関し、特に、通信インターフェースの分野に関する。
過去20年間で、パソコン(PC)は、テレビ、ハイファイステレオ機器、CDプレイヤー等を含む、膨大なオフィス、家庭電子機器群に参入した。更に近年、電子機器業界では、広く用いられている記憶媒体に加え、半導体メモリを用いた電気製品や個人用電子機器が急増している。その中で広く使用されている機器には、ビデオカメラ、デジタルスチールカメラ、携帯端末、携帯音響機器がある。パソコンや関連周辺機器の急増に対応して、パソコン間のデータ共有に加え、個人電子機器とパソコンの間のデータ転送のための接続、ネットワークが重要視されている。
PCI等の内部バスの仕様に加え、単純かつ高速接続を目的とした様々なコンピュータ、外部周辺機器間のインターフェース規格が導入されている。そのような規格の例として、IEEEE 1394規格 (ファイアーワイアとも呼ばれる)や、ユニバーサル・シリアル・バス(USB)があり、双方とも高速シリアルプロトコルである。コンピュータ間のネットワーク接続のため、ローカル・エリア・ネットワーク(LAN)、ワイド・エリア・ネットワーク(WAN)双方で最も多く使用されている規格はイーサネット(登録商標)・プロトコルである。更に正確には、イーサネットは、キャリア検知多重アクセス/衝突回避 (CSMA/CD)方式に基づいたIEEE 802.3系の規格であり、2台以上のコンピュータ・ステーションが同一の配線システムを共有することを可能にする。CSM/CD方式は、1MB/sから1000Mb/sの速度に及ぶイーサネット・システムの基礎となっている。イーサネットは一般的に、資源の効率的共用を可能にし、通常再構成、保守が容易であり、多くのメーカ、システム間の互換性を低コストで提供する。
PICバス、ファイアーワイア、USB、あるいはイーサネットによるパソコン、周辺機器、ネットワーク間のいずれのデータ転送においても、データ処理には、通常、ホスト・メモリの1つの記憶場所から別の記憶場所へデータを移すことが必要となる。1つの記憶場所から他の記憶場所にデータを転送する際、様々なハードウエア方式が用いられる。プログラム式入出力(PIO)、単純な、スレーブ・ダイレクト・メモリアクセス(DMA)、ディスクリプタ・ベースのDMAや,PIOとDMAの併用がその例である。ホストメモリはプロセッサ内部に存在するか、プロセッサに関連づけられる。また、他の記憶場所は、ホストの別のメモリアドレスかホスト・システムに接続され、メモリにマップされた周辺ハードウエア機器である。この種の周辺機器は、メモリーマップト、あるいはI/Oマップト機器と呼ばれる。
ほとんどのプロセッサは、データを構成するオブジェクトや変数がシステム・メモリ上の特定のオフセットに格納されていることを要求する。一例を挙げれば、32ビットプロセッサは通常4バイト整数データが4で割り切れるメモリアドレスに格納されていることを要求する。この必要条件は一般に「メモリ・アラインメント」と呼ばれている。従って、たとえば、4バイト整数データは0x2000や0x2004のメモリアドレスには格納できるが、0x2002には格納できない。32ビットRISC CPUシステム等の多くのシステムでは、アラインされていないデータを使用しようとすると、バスエラーを起こし、ひいては全プログラムが停止する場合がある。インテル・プロセッサ等を使用する他のシステムでは、一般的にアラインされていないデータも処理できるが、多大なパーフォーマンスの低下を招く。多くの場合、データを効果的に移動させるためには、特定のメモリ・アラインメント要件を満たすことが必要となる。これは、埋め込みプロセッサのアプリケーション領域と、それに関連するシステム構成において特に顕著である。そのようなシステムでは、データ・バッファをコンピュータ・システムのある場所から別の場所にコピーする際、ソフトウエアの処理が複雑化するため、より多くの時間を要し、結果としてシステム全体のパーフォーマンスの低下を引き起こす。
メモリ・アラインメントの要件が、キャッシュ・ラインあるいはアドレス・アラインメント(それに限るとは言えないが)における制限を克服することが必要な場合がある。イーサネット・データ転送を一例に挙げると、あるネットワークのデバイス・ドライバの環境では、送信パケットが、物理的かつ仮想的に連続し、うまくアラインされた個別のバッファとしてデバイス・ドライバに送信される。このような場合には、アラインメントは問題とならない。しかし、他のネットワークのデバイス・ドライバ環境では、送信パケットが任意長のバッファ断片の連結リストとして送られる場合がある。各バッファは任意のバイト境界で始まり、終わる可能性がある。各バッファ断片は、一つ、またはそれ以上の物理ページの切れ目を含む仮想的に連続したものとなるかもしれない。大きいペイロード・データを含む送信パケットは、小さなものに比べ、物理的なシステム・メモリの切れ目を含む可能性が高い。
多くのデータ通信制御装置は、送信データがアラインされていることを要求する。データは一般的に、アラインされていない形でドライバに送られる。そのため、ドライバは、ネットワーク・インターフェース・カードにデータを書き込む前に、CPUを使って散乱した断片を収集し、データを再び再構成する。このプロセスは図1で説明されている。そこでは、不連続メモリバッファ901と902は32ビット境界でアラインされていない。バッファ901と902は、プロセッサ、あるいは、システムに設定されたマイクロ・コントローラ上で実行されているオペレーティング・システムによってシステム・メモリに書き込まれたかもしれない。囲み910aから910dで示されるデータの一部は送信されるべきデータに含まれず、通常、データ通信制御装置にとって不必要なデータを表すであろう。その制御装置は、通常、システム上、データを遠隔メモリに転送するために設定される。そのような制御装置の一例は、システムをLANに接続するNIC上のイーサネット・コントローラである。ホストのシステム・ソフトウエアとデータ通信ドライバ・ソフトウエア(CPUソフトウエア910として示されている)が二次データメモリ903にデータ・バッファをコピーするように要求される。その二次データメモリ上で、データは通常アラインされる。その後、通常、ホストのシステム・ソフトウエアは、データ通信ドライバ・ソフトウエアを用いてデータ・バッファ903を、バッファ904に示すデータ通信制御装置のメモリにコピーする。
この処理は多くの場合、コンピューティング資源の浪費につながる。一般的に、通信データフローにおけるデータのコピーを減らすと、スループットが向上し、待ち時間が減少する。さらに先に述べたように、多くのプロセッサはアラインメントの制限があり、それによりCPUはCPUの内部レジスタの大きさおよび/またはデータバスの広さに関係なく、データを1バイトごとにアクセスすることを強いられる。プロセッサや関連記憶場所から他の記憶場所、あるいはI/Oマップされた記憶場所にデータを送る際のパーフォーマンスと柔軟性を増加させることは、通常PCIバス以外のローカルバスに接続される埋め込みシステムのメモリ・アラインメント要件を満たすための重要な課題となる。
ここで特記すべきことは、PCIにおいてもメモリがアラインされていないことは問題となるが、この種のバスは「バスマスタDMA」を使用することができるということである。ある種のシステムでは、バスマスタDMAによりミスアラインメントの問題を解決することができる。バスマスタDMAが用いられると、通常、ホストのLANドライバあるいはオペレーティング・システム・ソフトウエアは、特定のデータ・バッファを特定の開始と終了アドレスに移動するようにDMAコントローラをプログラミングする。多くの場合、DMAコントローラは、ソフトウエアのデータ構造内に埋め込まれた記述子要素を用いることにより、連結リストのソフトウエア構造を通して、独立して複数のデータを移動させることができる。各記述子は全ての(たとえば、開始アドレス、終了アドレス、データ長等の)データ移動に必要なパラメータを記述する。DMAバスマスタコントローラは、通常、ある種のハードウエアバス技術を用いて、バイト、ワード、ダブル・ワードのアラインメントの問題を解決することができる。一例を挙げると、PCIバスは「Byte Enable」信号を用い、システムによるバイト、ワード、ダブル・ワードアクセスを決定する。
しかし、バスマスタ・システムとして設定されていない現在のシステムは、通常、ソフトウエアでミスアラインメントの問題を解決し、メモリ・アラインメントの要件に対処している。ソフトウエアによる解決方法は、通常、時間がかかり、多大なシステムパーフォーマンスの低下につながる。たとえば、イーサネット・コントローラの場合、効果的に送信パケットと受信パケットを処理し、イーサネットのネットワークから、また、ネットワークへの個々のデータの転送の際、必要なCPUサイクルを減らし、転送時間を短くすることが必要となるであろう。
本発明と、それ以前の技術を比べると、本分野に精通した者にとって、その他の、以前の技術に関連した問題は明白となるであろう。
本発明は、一連の実施態様で示される、プロセッサから、あるいはプロセッサへ、および、関連記憶場所から他の記憶場所あるいはI/Oマップされた記憶場所へのデータ転送のパーフォーマンスと柔軟性を著しく増加させることが可能なメモリ・アラインメント技術(MAT)を用いた装置から成り、メモリ・アラインメントの要件を満たしつつ、アラインされていないデータの転送を可能にする。
一つの実施態様では、本MAT装置がイーサネット・コントローラとしてホスト・システム上に設定され、同様にホスト・システムに設定されたローカル・システム・メモリからの発信データを受信できるPIOコントローラ等のホスト・バス・インターフェース(HBI)を含む。発信データに加え、このHBIはその発信データに対応するフォーマット情報をホスト・システムから受け取る。HBIがローカル・システム・メモリから発信データを受信する際、その発信データは、ホスト・システムに設定されているマイクロプロセッサあるいはマイクロ・コントローラ上で実行しているイーサネット・コントローラのLANドライバ・ソフトウエア等の通信ドライバ・ソフトウエアによってHBIに書き込まれる。そのLANドライバは、さらに、発信データを書き込む前に、それに対応したフォーマット情報を書き込むことができる。
一つの実施態様では、HBIが、対応したフォーマット情報を基に発信データをアラインするとともに、そのデータをMAT装置上に構成されている設定可能な発信バッファに転送する。アラインされた発信データは、その後、イーサネット物理レイヤーに結合したイーサネット媒体アクセス制御等の、物理レイヤーに結合した媒体アクセス・コントロール・モジュールを介して遠隔システムと遠隔システム・メモリに転送される。全ての必要なアラインメントがMAT装置のハードウエア処理によって行われるため、マイクロプロセッサあるいはマイクロ・コントローラ上で実行されるソフトウエアによる発信データのアラインメントは必要とされない。
一つの実施態様では、MAT装置が、物理レイヤーと媒体アクセス・コントロール・モジュールを通して遠隔システム・メモリからの着信データを受けることできる受信バッファをも含む。LANドライバ・ソフトウエアが、受信バッファが着信データを受け取る前に、着信データに対応するフォーマット情報をHBIに書き込む。マイクロプロセッサ、あるいはマイクロ・コントローラは、着信データをLANドライバ・ソフトウエアによってHBIに前もって書き込まれた対応するフォーマット情報に基づいてアラインしつつ、HBIを通して受信バッファからシステム・メモリに読み込む。
MAT装置はまた、発信データの送信と着信データの受信のための状態バッファを含み、データをアラインする際、状態バッファから得た付加的情報を用いることもできる。
このようにして、本発明の多様な実施態様は、全てのデータアラインメントをMAT装置のハードウエアで行うことにより、データアラインメントが要求される時、ホスト・システムのプロセッサ、あるいはホスト・システムコントローラ上でソフトウエアを実行してデータをアラインする必要なしに、ローカル・システムの記憶場所と遠隔システムの記憶場所間の効果的なデータ転送の方法を提供することができる。
上記の説明 、また本発明のその 他の 対象、特長、および利点は、 ここで説明する添付の図とともに以下の詳細説明を読み、参照することにより、より良く理解されるであろう。
本発明は、多様な変更の、また別の形態となる余地があるが、ここでの特定の実施形態は、例として図に示されており、またここで、その詳細が説明される。ただし、ここで了解されねばならないことは、ここで加えられる図および詳細説明は、本発明を、ここで示される特定の形に限定することを意図しておらず、逆に、その意図は、添付した請求項で定義されている本発明の精神と範囲内において、全ての変更、等価な案、および代替案を含めることである。見出しは、説明の編成のためのみに用いており、説明および請求項を制限し、あるいは、解釈するために用いることを意図していないことを留意されたい。さらに、留意すべきことは、英単語「may」は、本申請書全体にわたって、「許される」(たとえば、可能性がある、することができる)という意味で用いられており、「強制」(たとえば、しなくてはならない)の意味では用いられていない。ここで用いられている「含める(include)」という語、あるいはその派生語は、「…を含むが、それに限ることはなく」という意味である。「結合した(coupled)」という語は、「直接、あるいは間接的に接続した」と言う意味である。
ここで使用されているように、「Dワード」あるいは「ダブル・ワード」は32ビットデータ・ワードのことであり、「ローカル・システム・メモリ」あるいは「ローカル・メモリ」は、ホスト・システム上に構成され、通常、中央演算処理装置あるいは中央制御装置に組み込まれているか、直接接続されているメモリを指す。「遠隔システム・メモリ」あるいは「遠隔メモリ」は、ホスト・システム上に構成されているが、 中央制御装置に組み込まれておらず、また直接接続されていないメモリ、あるいはホスト・システムとは異なる遠隔システムに構成されているメモリを指す。ホスト・システムに構成される時、遠隔メモリは、周辺機器に組み込まれているメモリ、および、システムの専用メモリバスに直接接続されていないメモリを意味する。
一連の実施形態で、本発明は、多様なサブシステムの間、特にローカル・メモリと遠隔メモリ間のデータ移動処理を効果的に行うメモリ・アラインメント技術(MAT)を用いた装置と方法を提供する。好適な実施形態を、送信フローおよび受信フローの2つのデータ経路の流れの例を用いて説明する。更に具体的には、ここで示す送信フローと受信フローを、データ通信制御装置、ここでは、イーサネット・コントローラに設定された、MAT装置について述べる。しかし、別の実施形態は、他のデータ転送装置および方法を含めることができ、イーサネット・コントローラを用いたイーサネット接続によるデータ転送に限るものではない。詳細には説明されないが、イーサネット以外のシステム相互接続を用いた転送方法、また、イーサネット・コントローラ以外のデータ通信制御装置を用いた代替の実施形態も考慮される。
図2に典型的なシステムおよびデバイス・レベルの実施形態100を示す。図に示すように、MAT装置108は共用のローカルバス(あるいはメモりバス)122に接続される。そのバスは、組み込みプロセッサ/マイクロ・コントローラ102、システム・メモリ104,可能なシステム周辺機器106をMAT装置108に結合する。多くの組み込みプロセッサ環境では、図3に共用バス122として示されているように、メモリバスと周辺機器のバスは同じである。各々のデバイスは、固有のチップ・セレクト(CS)信号を持ち、その信号によって、周辺機器やメモリデバイスをシステムあるいはI/Oメモリにマップする。システム100における電気的タイミングとバス・タイミングはチップ・セレクトによって変化する。チップ・セレクトによるタイミングは、周辺機器とメモリデ・バイスがシステム100内のタイミング・パラメータを共用しなくても良いという利点をもたらす。
一つの実施形態では、MAT装置108が、内部クロック信号を取得また生成するために、水晶/外部発振子120に結合されている。MAT装置108は、イーサネットMACアドレスやその他の構成情報を記憶するための不揮発性メモリを含むことができる。MAT装置108は図2の磁気装置114として示される変圧器に接続される。図2では、磁気装置114は、イーサネットLAN 124に接続される。イーサネットLAN 124は、物理媒体としての銅線の配線、通常CAT−5ケーブルを通して磁気装置114に接続される。MAT装置108は、さらに、外部物理レイヤー装置112に結合され、ここでは、IEEE802.3標準インターフェース等のメディア独立型インタフェース(MII)126を通じて結合が達成される。
図3はMAT装置108の一つの実施形態のデバイス・レベル・ダイアグラムを示す。ここでは、MAT装置108がイーサネット・コントローラとして設定されている。一つの実施形態では、MAT装置108は、デジタル・シリアル・データ・ストリームを10/100 Base−T物理レイヤー符号化スキーム等の様々な符号化スキームに変換可能なアナログ・システムとなりうる10/100イーサネット物理レイヤーブロック218を備えている。さらに、変換後のデータ・ストリームを、物理LAN 124に転送することができる。IEEE802.3レイヤー2カプセル化フォーマット・データは10/100イーサネット媒体アクセス制御(MAC)ブロック212を用いて送信し、受信することができる。更に一般的には、イーサネットMAC 212は、HBI 202と結合されたネットワークの物理レイヤーとの接点となり、ここで、HBI 202はシステム100の論理リンクとしての役割を果たす。MAT装置がイーサネット・コントローラとして設定されていない代替の実施形態では、選択された通信データ・チャンネルとプロトコルに従ってイーサネットMACではないMACを含むことができる。
10/100イーサネットMAC 212は、データを受信する際、フレームの一つのスタート位置を解析し、それが見つかった時点で、イーサネット媒体アクセスのヘッダ情報と関連データ(ペイロードデータとも呼ばれる)を受信バッファ214に格納することができる。一つの実施形態群では、データのインテグリティをサイクリック・リダンダンシー(CRC)シーケンスにより確認することができる。イーサネットMAC 212 は、データを送信するとき、設定可能な送信FIFO 204からデータ・パケットを受け取ることができ、これにより、送信バッファ216を通して、シリアル・オクテット・バイト(イーサネット・パッケット)のシーケンスを開始することができる。データ検証の目的で、サイクリック・リダンダンシー(CRC)シーケンスをデータに付加してもよい。図3で示され、上に述べられたように、MAT装置108は、バッファ214、216、FIFO 204、210等の多くのメモリ・エレメントを含むことができ、それらは、データ処理の様々な段階において、イーサネットの受信パケットと送信パケットを格納する働きをする。それらのメモリ・エレメントは、ホストのハードウエアとソフトウエアに関連した待ち時間の問題のために、必要とされることがある。
一つの実施形態では、MAT装置108がホスト・バス・インターフェース(HBI)202をも含み、それは、多様な機能を実行するための専用の複数ブロックから構成される。この実施形態では、HBI 202が汎用タイマー224と割り込みコントローラー222を含み、また、MAT装置108のデータ・アラインメント機能を導入しつつ、MAT装置108が、ホスト・システム(たとえば図2のシステム・メモリ104)、代替システム・メモリ(図2の101)、さらに組み込みプロセッサ上のメモリ(図2の102)からのデータを効果的に移動させるのを可能にする。
次に、図4に示されるように、あるネットワークのデバイス・ドライバ環境では、送信パケットが、(前に図1で示したように)物理的かつ仮想的に連続しでアラインされた個別のバッファとしてではなく、送信パケットが任意長のバッファ断片の連結リストとして送られる場合がある。通常、大きいペイロード・データを含む送信パケットは、小さなものに比べ、物理的なシステム・メモリの切れ目を含む可能性が高い。そのようなパケットでは、各バッファが任意のバイト境界で始まり、終わる可能性がある。各バッファ断片は、一つ、またはそれ以上の物理ページの切れ目を含む仮想的に連続したものとなるかもしれない。図4は、32ビット境界でアラインされていないメモリバッファ301、302、303を示す。バッファ301、302、303には、埋め込みプロセッサ102等で実行しているオペレーティング・システムによって、システム・メモリ104(図2参照)に書き込まれたデータが入っている。囲み310aから310eで示されるデータの一部は送信されるべきデータに含まれず、従って、イーサネットMAC 212にとって不必要なデータを表すだろう。プロセッサ102上で実行できるLANドライバは、バッファ301、302、303のデータを、バッファ304、305、306で示されるように、HBI 202、さらに具体的にはPICコントローラ(PIOC)220に受け渡すことができ、それらのバッファは、その時点で連続したものになっている。HBI 202は、オフセットデータ(任意長のバイトオフセット310a、310d)とパディング・データ(任意長のバイト・パディング310b、310c、310e)を除去し、イーサネットMAC 212が、アラインされたデータ304、305、306にアクセスすることを可能にさせる。ここで示す実施形態では、PIOコントローラ(PIOC 220)を含むが、代替の実施形態では、スレーブDMAコントローラら等の、異なったデータ転送手段のコントローラを含むことができる。
一つの実施形態では、データ転送中、システム・メモリ104からPIOC 220にデータを受け渡す前に、LANドライバ・ソフトウエアは、各バッファごとに、関連データの処理法をPIOC 220に指示するため、転送命令情報をPIOC 220に書き込む。PIOC 220は、次に、各バッファごとに転送命令に基づいて、データをアラインすることができ、続いて、転送FIFO 204に書き込むためにデータを転送することができる。図5は、本発明の一つの実施形態にしたがって転送バッファフォーマット400を示す。ここに示すように、(TX命令AとTX命令Bとして示されている)一次送信命令402と二次送信命令404が、送信データ408の前に送られる。一つの実施形態では、TX命令A 402とTX命令B 404はともに32ビット長である。TX命令A 402とTX命令B 404は、PIOC 220内部にある専用レジスタに書き込まれる。代替の実施形態では、TX命令A 402およびTX命令B 404は、PIOC220内の、実際のパケット・データと同じバッファ内に書き込まれてもよい。さらに図5で示すように、個々のバッファは、オプションとして、最初にオフセット406と最後にアラインメント・パディング410を含むことができる。プログラム可能なオフセットを許すことにより、断片化したアラインされていないバッファは、PIOC 220にデータが引き渡される前のプロセッサ102によるアラインメントの必要なしに、改善されたバースト転送のパーフォーマンスの恩恵を受けることができる。
図6Aおよび図6Bは、一つの実施形態について、それぞれTX命令A 402、TX命令B 404のフォーマットを示す。図6Aに挙げられているように、TX命令402は、バッファ終了アラインメント、データ開始位置、開始パケット断片、終了パケット断片、バッファサイズの情報とともに、割込みイネーブルビットを含む。図6Bに挙げられているように、TX命令B 404は、サイクリック・リダンダンシー・チェック(CRC)無効ビット、イーサネット・フレーム・パディング無効ビット、パケット長情報に加え、16ビットのパケット・タグを含む。イーサネット接続を介した通信のため、パケットは、イーサネット・パケットであり、データと、一つ、あるいはそれ以上のバッファに関する情報を含む。各パケット・タグは、(LANドライバ・ソフトウエアなどの)ホスト・ソフトウエアがそのように設定されていれば、各パケットに対して固有のものとなる(インクリメント・カウント等)。関連したパケットのパケット・タグの値は、TX状態FIFO 206(図3)に戻される。パケット・タグは、ホスト・ソフトウエアが各状態ワードを特定するために用いられ、あるいは、ホスト・システム100に戻されるとき、他の多くの可能な統計的な値を送るために用いられる。
一つの実施形態では、TX命令A 402とTX命令B 404両方が一つのパケットの内の各バッファに要求されることがあり、TX命令B 404が、一つのパケット内のすべてのバッファに対し、同一であることを要求されることもある。図5を見ると、前に示したように、送信データ408の部分は、TX命令A 402とTX命令B 404に続いて、第三の32ビットワードから開始してもよい。有効な送信バッファの開始バイトの位置は、図6Aで参照されているように、TX命令A 202のデータ開始オフセット・フィールドで指定することができる。表1は、一つの実施形態について、データ開始オフセット・フィールドの最下位ビット(LSB)の値と、送信データ408の有効開始バイトの関係を示す。送信データ408は、任意の数の32ビットワードの後から開始する。以下に示す実施形態では、送信データ408は、データ開始オフセット・フィールドにおける最上位(MSB)3ビット[ビット4:2]が示すように、最大7個の追加の32ビットワードの後から開始する。
Figure 2008519373
送信データ408はバッファの終了まで、連続したものである。一つの実施形態では、TX命令A 402内のバッファ終了アラインメント・フィールドは、(図6Aで参照されているように)関連するバッファについて、維持するべきアラインメントを指定することができる。ひとつの実施形態では、バッファの終了アラインメントは、4バイト、16バイト、32バイトとして指定することができる。代替の実施形態では、バッファの終了アラインメントは、64バイトを超えて指定することができ、そこでは、アラインメントのバイトの大きさは、4バイトごとの増加で、無制限に拡大することが可能である。本分野に精通した者は、ここで述べたように、バッファ終了アラインメントを、システム用件に従って指定することができ、バッファ終了アラインメントの仕様にまったく制限されないことに、価値を見出すであろう。
送信フローと同様に、MAT装置108は、各受信バッファ、あるいは、パケットについての、プログラム可能なオフセットを提供できるように設定され、LANドライバ・ソフトウエア(あるいは、もっと一般的には、データ通信ドライバ・ソフトウエアとホスト・ソフトウエア)が、CPUの介入なしに、最適にアラインされたネットワークデータを送ることを可能にする。言葉を変えて言えば、MAT装置108は、データ・パケットがシステム100により受信された時点でのシステム・メモリ104の使用可能度と、割り当てを基にしたシステム・メモリ104(あるいは代替システム・メモリ101)の要件に従ってシステム・メモリ104に書き込まれる前に(図2参照)、受信データをアラインすることを可能にする。
一つの実施形態では、MAT装置108が、バッファのプレフィックス、ポストフィックス部分双方について、転送データを32ビットワード境界にアラインさせるため、イーサネット・パケットを受信した時点で、必要であれば、使用できるデータ・バッファ・パディングの量を決めるように設定されている。受信データ・パケットがRXデータFIFO 210から読み込まれるのと同時に、受信状態情報は、RX情報FIFO 208(図3参照)から読むことができる。システム・メモリ104および、代替メモリ101に格納できるように、データをローカルバス122(図2参照)上で使用可能にする前に、受信データ・パケットを、特定の方法で構成することができる。一つの実施形態では、データサイズ、およびエラー状態を確定するため、関連した状態情報をRX状態FIFO 208から読み込んだ後、図7に示す実施形態に従って、受信データの構成がなされる。「オフセットDワード0からオフセットDワード」606として定義されている32ビットフィールドは0から31バイトの長さとなりうる。従って、転送バッファは「n」バイトのプレフィックス・パディングで始まり、次に、実際の受信データ(言い換えれば、パケット・ペイロード)608が続くことになる。最後のデータ・バイト(バイト、16ビット、あるいは32ビット語境界でアラインされる可能性がある)の後、「パッドDワード0から任意のパッドDワードn」610ポストフィックス・パディングが続き、これは、4、16、32、あるいは64バイトの長さとなる。前に述べたように、ここで示したパディング値は、説明のために用いられており、それに限定することは全く意図されていない。別のパディング値は可能であり、考慮されている。一つの実施形態では、ポストフィックス・パディングは32ビットワード境界で終了し、従って、実際のポストフィックス・パッドバイトは、最後のデータ・バイトのアラインメントに応じて変化する。代替の実施形態では、バッファの終了アラインメントが64バイトを超えることができる。この場合には、アラインメントのバイトの大きさは、4バイトごとの増加で、無制限に拡大することが可能である。
図8は、一つの実施形態に従い、RX状態FIFO 208から読み込むことのできる状態情報を示している。図9は、一つの実施形態に従い、MAT装置108が受信バッファを構成するために使うことのできる受信設定フォーマットを示す。終了アラインメント・フィールド(RX終了アラインメント)は、バッファの、最後のデータ転送について、維持するべきアラインメントを指定することができる。MAT装置108は、図9のRX終了アラインメント項に示される表で指定されたアラインメントに至るまで、余分の32ビットワードのデータを付加する。一つの実施形態では、このメカニズムを、(図2のプロセッサ/コントローラ102のような)ホスト・プロセッサ上でのキャッシュ・ライン・アラインメントを維持するために用いることができる。RX DMAカウント・フィールドは、特定の転送のために、RXデータFIFO 210(図3参照)から何個の32ビットワードが転送されるべきかを示す。値がセットされた後、このフィールドの値は、RXデータFIFO 210から一つの32ビットデータワードが読まれるごとに、減少させられる。このフィールドは、カウント値がゼロに達する前に、新しい値で上書きすることができる。「Force RX Discard」は、すべてのデータのRXデータFIFO 210およびRX状態FIFO 208をクリアするためにセットできる、セルフ・クリーニング・ビットとすることができる。最後に、RXデータオフセット・フィールドは、受信データ・パケットの最初に付加されたオフセットバイトの数を表わすことができる。それは、図7に示す、任意のオフセットDワード606である。有効データの開始場所は、このフィールドで指定された数のバイト分だけ移動する。一つの実施形態では、有効なオフセットバイトの数をゼロから31まで変化するように指定することができる。一つの実施形態では、ドライバ・ソフトウエアが、受信設定情報を、HBI 202内にあるRXフォーマットレジスタ209に書き込む。
以上の実施形態について、かなり詳細にわたり説明したが、イーサネット以外の通信チャンネルを通した別形態のデータ転送も可能である。さらに、上記の開示を完全に理解し、評価すれば、この技術に精通した者にとっては、多数の別形態や、変更の可能性も明白となるであろう。以下の請求項は、そのようなすべての異なった形態や変更を包含することを意図している。ここで用いられている項目の見出しは、編成のためのみに用いており、個々で与えられている説明、あるいはここに添付されている請求項を制限するために用いることを意図していないことを留意されたい。
はデータ・バッファ断片が、以前の技術では、通常どのようにローカル・システムのメモリからデータ通信制御装置に受け渡されるかを説明している。 はMAT装置を組み込んだシステムの一つの実施形態を示している。 はMAT装置の一つの実施形態に関するデバイス・レベルのブロック・ダイヤグラムを示している。 は一つの実施形態について、メモリバッファ断片が、ローカル・システム・メモリから遠隔システム・メモリへ受け渡される際、MAT装置によってどのようにアラインされるかを示している。 は送信バッファ構成の一つの実施形態を示している。 は送信命令Aのフォーマットの一つの実施形態を示している。 は送信命令Bのフォーマットの一つの実施形態を示している。 は 図5は受信バッファ構成の一つの実施形態を示している。 は受信状態レジスタの構成の一つの実施形態を示している。 は受信フォーマットレジスタの構成の一つの実施形態を示している。

Claims (27)

  1. 非バスマスタのデータ通信コントローラを含むローカル・システム上に設定されたローカル・メモリと遠隔メモリ間のデータ転送の方法であって、
    前記ローカル・メモリから、前記データ通信コントローラ内の一つ、あるいはそれ以上のバッファへデータを書き込むステップと、
    前記データ通信コントローラへ、データに関するフォーマット情報を書き込むステップと、
    前記データ通信コントローラによって、アラインされていない任意のデータ部分を、対応するフォーマット情報に基づいてアラインさせるステップと、
    前記データ通信コントローラ内の、一つ、あるいはそれ以上のバッファから、それに対応する前記フォーマット情報と上記のアラインメントに従がって、前記遠隔メモリへデータを転送するステップと
    を有する方法
  2. 前記データに対応するフォーマット情報を書き込むステップが、前記データ通信コントローラ内の一つあるいはそれ以上のバッファのうちの一つ、あるいはそれ以上に前記フォーマット情報を書き込むことを含む請求項1記載の方法。
  3. 前記ローカル・メモリから前記データ通信コントローラ内の一つ、あるいはそれ以上のバッファにデータを書き込むステップの前に、さらに、前記ローカル・メモリ上の一つ、あるいはそれ以上のバッファにデータを書き込むステップを含む請求項1記載の方法。
  4. 前記ローカル・メモリに構成される一つ、あるいはそれ以上のバッファへデータを書き込むステップが、前記ローカル・システムに構成されたオペレーティング・システムによって実行される請求項3記載の方法。
  5. モートメモリが、
    前記ローカル・システム以外のシステムと、
    前記ローカル・システム内の周辺機器
    の一つ、あるいはそれ以上で構成されている請求項1記載の方法。。
  6. 前記アラインされていない任意のデータ部分をアラインさせるステップが、前記データ通信コントローラ内に構成される、ホスト・バス・インターフェースによって実行される請求項1記載の方法で。
  7. 前記ローカル・システムが、中央演算処理装置とデータ通信ドライバ・ソフトウエアとを備えるコンピュータ・システムであり、
    前記データ通信コントローラ内の一つ、あるいはそれ以上のバッファへデータを書き込むステップ、および、前記フォーマット情報を書き込むステップが、通信ドライバ・ソフトウエアによって実行され、
    前記通信ドライバ・ソフトウエアが、中央演算処理装置によって実行される請求項1記載の方法。
  8. 前記中法演算処理装置が、
    埋め込みマイクロプロセッサ、
    埋め込みマイクロ・コントローラ、
    汎用マイクロプロセッサ、
    汎用マイクロ・コントローラ
    のいずれか一つである請求項7記載の方法。
  9. 前記遠隔メモリへデータを転送するステップが、パケットの形態でデータを転送することを含み、前記パケットが、前記データ通信コントローラ内の一つ、あるいはそれ以上のバッファのうちの一つ、あるいはそれ以上からのデータと関連するフォーマット情報によって構成される請求項1記載の方法。
  10. 前記フォーマット情報が、
    一次転送命令情報、
    二次転送命令情報、
    オフセットデータ、
    パディングデータ
    の一つあるいはそれ以上で構成される請求項9記載の方法。
  11. 前記一次転送命令情報が、
    割込みイネーブル、
    バッファ終了アラインメント、
    データ開始オフセット、
    開始パケット断片、
    終了パケット断片、
    バッファサイズ
    の一つ、あるいはそれ以上に対応する情報で構成されている請求項10記載の方法。
  12. 前記二次転送命令情報が、
    パケット・タグ、
    CRC無効、
    イーサネットフレームパディング無効、
    パケット長
    の一つ、あるいはそれ以上に対応する情報で構成されている請求項10の方法。
  13. 前記遠隔メモリからのデータを受信するステップと、
    前記データ通信コントローラによって受信したデータをフォーマットするステップと、
    フォーマットされた受信データを、前記ローカル・システムに構成されたローカル・メモリへ配送するステップと
    をさらに含む請求項1に記載された方法。。
  14. 前記受信データをフォーマットするステップが、
    前記受信データをアラインするステップと、
    前記受信データにオフセット・データを付加するステップと、
    前記受信データにパディング・データを付加するステップ
    の一つ、あるいはそれ以上で構成されている請求項13の方法で
  15. 前記遠隔メモリからデータを受信するステップが、前記データ通信コントローラ内の、対応する受信バッファへ書き込むことを含む請求項13記載の方法。
  16. 前記ローカル・システムと前記遠隔システムがイーサネットにより接続されている請求項1記載の方法。
  17. 前記データ通信コントローラが、
    PIOコントローラ、
    スレーブDMAコントローラ
    の一つを含む請求項1記載の方法。
  18. ホスト・システムであって、
    ローカル・システム・メモリと、
    そのローカル・システム・メモリからの発信データを受信するように設定され、さらに前記ホスト・システムから前記発信データに対応するフォーマット・データを受信するように設定された、ホスト・バス・インターフェース、および、そのホスト・バス・インターフェースに結合している送信バッファによって構成される非バスマスタのデータ通信コントローラとを含み、
    前記ホスト・バス・インターフェースは、フォーマット情報に基づいて、前記発信データをアラインしつつ、そのデータを、発信バッファに送ることが可能であり、
    前記データ通信コントローラがアラインされた前記発信データを前記発信バッファから遠隔メモリへ転送する、前記ホスト・システム。
  19. 前記データ通信コントローラが、さらに、前記ホスト・バス・インターフェースに結合され、前記遠隔メモリから着信データを受け取るように設定され、
    前記ホスト・バス・インターフェースが、さらに、前記ホスト・システムから、着信データに対応した、前記フォーマット情報を受けることが可能であり、
    前記ホスト・バス・インターフェースが、さらに、前記ホスト・システムを、対応したフォーマット・データに基づいて、着信データをアラインしつつ、それを前記ローカル・システム・メモリに読み込むことを可能にさせる請求項18記載のホスト・システム。
  20. 前記データ通信コントローラがさらに、
    前記ホスト・バス・インターフェースに結合され、前記送信バッファから前記遠隔メモリへのアラインされた前記発信データの送信の状態情報を格納するように設定された送信状態バッファと、
    前記ホスト・バス・インターフェースに結合され、前記遠隔メモリからの着信データの受信の状態情報を格納するように設定された受信状態バッファと
    をさらに含む請求項19記載のホスト・システム
  21. 前記データ通信コントローラが、さらに、
    前記送信状態バッファに、前記送信の状態情報を提供する、
    前記受信状態バッファに、前記受信の状態情報を提供する、
    前記受信バッファに、前記着信データを提供する、
    前記送信バッファから、アラインされた前記発信データを転送すること
    を行うために、媒体アクセス・コントロール・モジュールを含む請求項20記載のホスト・システム
  22. 前記データ通信コントローラが、さらに、媒体メディアアクセス・コントロール・モジュールと結合した物理レイヤーを含む請求項21記載のホスト・システム。
  23. 前記物理レイヤーが、イーサネット物理レイヤーであり、前記媒体アクセス・コントロール・モジュールが、イーサネット媒体アクセス・コントロール・モジュールである請求項22記載のホスト・システム。
  24. 前記受信の状態情報が、
    アドレス認識選別不成功、
    パケット長、
    エラー状態、
    フレームブロードキャストアドレス、
    長さエラー、
    フレーム早期終了、
    フレームマルチキャストアドレス、
    フレーム長、
    フレームコリジョンの発生、
    フレームタイプ、
    受信監視タイムアウト、
    受信エラー検出、
    ドリブリングビット、
    CRCエラー
    の一つ、あるいはそれ以上に関する情報で構成されている請求項20記載のホスト・システム
  25. 前記ホスト・バス・インターフェースが。
    PIOコントローラ、
    スレーブDMAコントローラ
    の一つを含む請求項18記載のホスト・システム。
  26. 前記遠隔メモリが、
    前記ホスト・システム、
    前記ホスト・システムとははっきりと異なる遠隔システム
    の一つで構成されている請求項18記載のホスト・システム
  27. 前記遠隔メモリが、前記ホスト・システムの周辺機器に構成されている請求項18記載のホスト・システム。
JP2007540365A 2004-11-02 2005-11-01 ハードウエアによる周辺コンポーネント・メモリー・アラインメントの方法 Pending JP2008519373A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/979,924 US8190796B2 (en) 2004-11-02 2004-11-02 Hardware supported peripheral component memory alignment method
PCT/US2005/039360 WO2006050311A2 (en) 2004-11-02 2005-11-01 Hardware supported peripheral component memory alignment method

Publications (1)

Publication Number Publication Date
JP2008519373A true JP2008519373A (ja) 2008-06-05

Family

ID=36237378

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007540365A Pending JP2008519373A (ja) 2004-11-02 2005-11-01 ハードウエアによる周辺コンポーネント・メモリー・アラインメントの方法

Country Status (6)

Country Link
US (1) US8190796B2 (ja)
EP (1) EP1820108A2 (ja)
JP (1) JP2008519373A (ja)
KR (1) KR20070083913A (ja)
TW (1) TW200632666A (ja)
WO (1) WO2006050311A2 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010097252A (ja) * 2008-10-14 2010-04-30 Canon Inc プロセッサ間通信方法、マルチプロセッサシステム及びプロセッサ。
JP2011150666A (ja) * 2010-01-25 2011-08-04 Fujitsu Ltd 通信装置、情報処理装置、通信装置の制御方法及び制御プログラム
JP2017503237A (ja) * 2013-12-23 2017-01-26 インテル コーポレイション 入出力データアライメント

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7610415B2 (en) * 2005-07-28 2009-10-27 Digi International System and method for processing data streams
JP4343923B2 (ja) * 2006-06-02 2009-10-14 富士通株式会社 Dma回路およびデータ転送方法
KR101401616B1 (ko) * 2008-05-15 2014-06-02 주식회사 서보산전 이더캣통신 기반의 슬레이브 제어 시스템
US8321639B2 (en) * 2009-12-30 2012-11-27 Lsi Corporation Command tracking for direct access block storage devices
US20100306451A1 (en) * 2009-06-01 2010-12-02 Joshua Johnson Architecture for nand flash constraint enforcement
US8166258B2 (en) * 2009-07-24 2012-04-24 Lsi Corporation Skip operations for solid state disks
US9063561B2 (en) * 2009-05-06 2015-06-23 Avago Technologies General Ip (Singapore) Pte. Ltd. Direct memory access for loopback transfers in a media controller architecture
US8219776B2 (en) * 2009-09-23 2012-07-10 Lsi Corporation Logical-to-physical address translation for solid state disks
US8245112B2 (en) * 2009-06-04 2012-08-14 Lsi Corporation Flash memory organization
US8555141B2 (en) * 2009-06-04 2013-10-08 Lsi Corporation Flash memory organization
US8286004B2 (en) * 2009-10-09 2012-10-09 Lsi Corporation Saving encryption keys in one-time programmable memory
US8527677B1 (en) * 2010-06-25 2013-09-03 Altera Corporation Serial communications links with bonded first-in-first-out buffer circuitry
TW201324168A (zh) * 2011-12-05 2013-06-16 Asix Electronics Corp 高效率傳輸機制之通用序列匯流排裝置
CN104205050B (zh) * 2012-03-30 2019-02-15 英特尔公司 访问远程机器上的设备
JP5695126B2 (ja) 2013-05-14 2015-04-01 株式会社日立製作所 計算機システム、サーバモジュール及びストレージモジュール
US9478000B2 (en) 2013-09-27 2016-10-25 Intel Corporation Sharing non-page aligned memory
US10375168B2 (en) * 2016-05-31 2019-08-06 Veritas Technologies Llc Throughput in openfabrics environments
US10795836B2 (en) * 2017-04-17 2020-10-06 Microsoft Technology Licensing, Llc Data processing performance enhancement for neural networks using a virtualized data iterator
TWI757609B (zh) * 2018-08-03 2022-03-11 日商索尼股份有限公司 用於通訊的傳輸設備和方法、接收設備和方法
US11113219B2 (en) * 2020-02-10 2021-09-07 Nxp Usa, Inc. Protocol data unit end handling with fractional data alignment and arbitration fairness

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5313582A (en) 1991-04-30 1994-05-17 Standard Microsystems Corporation Method and apparatus for buffering data within stations of a communication network
EP0574140A1 (en) 1992-05-29 1993-12-15 Hewlett-Packard Company Network adapter which places a network header and data in separate memory buffers
US5412782A (en) 1992-07-02 1995-05-02 3Com Corporation Programmed I/O ethernet adapter with early interrupts for accelerating data transfer
US5499341A (en) 1994-07-25 1996-03-12 Loral Aerospace Corp. High performance image storage and distribution apparatus having computer bus, high speed bus, ethernet interface, FDDI interface, I/O card, distribution card, and storage units
US5818844A (en) 1996-06-06 1998-10-06 Advanced Micro Devices, Inc. Address generation and data path arbitration to and from SRAM to accommodate multiple transmitted packets
US6067300A (en) 1998-06-11 2000-05-23 Cabletron Systems, Inc. Method and apparatus for optimizing the transfer of data packets between local area networks
US6567859B1 (en) * 1999-04-27 2003-05-20 3Com Corporation Device for translating medium access control dependent descriptors for a high performance network
US7412584B2 (en) * 2004-05-03 2008-08-12 Intel Corporation Data alignment micro-architecture systems and methods

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010097252A (ja) * 2008-10-14 2010-04-30 Canon Inc プロセッサ間通信方法、マルチプロセッサシステム及びプロセッサ。
JP2011150666A (ja) * 2010-01-25 2011-08-04 Fujitsu Ltd 通信装置、情報処理装置、通信装置の制御方法及び制御プログラム
JP2017503237A (ja) * 2013-12-23 2017-01-26 インテル コーポレイション 入出力データアライメント

Also Published As

Publication number Publication date
WO2006050311A2 (en) 2006-05-11
TW200632666A (en) 2006-09-16
EP1820108A2 (en) 2007-08-22
WO2006050311A3 (en) 2006-07-20
KR20070083913A (ko) 2007-08-24
US20060095611A1 (en) 2006-05-04
US8190796B2 (en) 2012-05-29

Similar Documents

Publication Publication Date Title
JP2008519373A (ja) ハードウエアによる周辺コンポーネント・メモリー・アラインメントの方法
US7551638B2 (en) Network interface with transmit frame descriptor reuse
US6651107B1 (en) Reduced hardware network adapter and communication
EP2063604B1 (en) Communicating message request transaction types between agents in a computer system using multiple message groups
US8386666B2 (en) System and method for peripheral device communications
US20090003335A1 (en) Device, System and Method of Fragmentation of PCI Express Packets
EP1897333B1 (en) Method for parallel data integrity checking of pci express devices
TWI274497B (en) Output apparatus, and input apparatus of a data processing system and transceiving system
US20100131681A1 (en) Bus Based Communications Between A Processor And A Peripheral Controller In A Digital Processing System
US7283549B2 (en) Method for increasing the transmit and receive efficiency of an embedded ethernet controller
US5978865A (en) System for performing DMA transfers where an interrupt request signal is generated based on the value of the last of a plurality of data bits transmitted
KR100728521B1 (ko) 통신 버스를 통해 수신된 버스 인터페이스 유닛 내의 데이터 패킷을 미리 처리하기 위한 방법 및 상기 방법에서 사용하기 위한 버스 인터페이스 유닛
US8051222B2 (en) Concatenating secure digital input output (SDIO) interface
JP2006325054A (ja) Tcp/ip受信処理回路及びそれを具備する半導体集積回路
US7664898B2 (en) Method and system for efficient framing on addressed buses
EP1461712A2 (en) Method for handling unexpected completion packets and completion packets with a non-successful completion status
US6693905B1 (en) Data exchange unit
JP2003050788A (ja) 高レベル・データ・リンク・コントローラから多数個のディジタル信号プロセッサ・コアに信号を分配するための装置と方法
US8131890B1 (en) Circuit and method for increasing universal serial bus (USB) device endpoints
JP4505985B2 (ja) データ転送方法、データ転送装置、通信インターフェース方法および通信インターフェース装置
JP2004054419A (ja) ノード間トランザクション処理装置
JP2002281039A (ja) パケット送受信装置