JP4530547B2 - 高性能通信コントローラ - Google Patents

高性能通信コントローラ Download PDF

Info

Publication number
JP4530547B2
JP4530547B2 JP2000609900A JP2000609900A JP4530547B2 JP 4530547 B2 JP4530547 B2 JP 4530547B2 JP 2000609900 A JP2000609900 A JP 2000609900A JP 2000609900 A JP2000609900 A JP 2000609900A JP 4530547 B2 JP4530547 B2 JP 4530547B2
Authority
JP
Japan
Prior art keywords
processor
request
coupled
data
task
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
JP2000609900A
Other languages
English (en)
Other versions
JP2002541693A (ja
JP2002541693A5 (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.)
NXP USA Inc
Original Assignee
NXP USA Inc
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 NXP USA Inc filed Critical NXP USA Inc
Publication of JP2002541693A publication Critical patent/JP2002541693A/ja
Publication of JP2002541693A5 publication Critical patent/JP2002541693A5/ja
Application granted granted Critical
Publication of JP4530547B2 publication Critical patent/JP4530547B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime 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
    • 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/38Information transfer, e.g. on bus
    • G06F13/382Information transfer, e.g. on bus using universal interface adapter
    • G06F13/387Information transfer, e.g. on bus using universal interface adapter for adaptation of different data processing systems to different peripheral devices, e.g. protocol converters for incompatible systems, open system

Landscapes

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

Description

【0001】
【産業上の利用分野】
本発明は一般に通信コントローラに関し、さらに詳しくは高性能通信コントローラに関する。
【0002】
【従来の技術】
通信コントローラは通常、ネットワーク製品や通信製品に見出される。通信コントローラは、種々の多層通信プロトコルに従ってデータ・ストリームを処理し、1つの通信層に関連するデータ・パケットを、別の通信層に関連するデータ・パケットに変換する。
【0003】
通信プロセッサが、種々の通信プロトコルに関連するデータ・ストリームを処理するとき、通信コントローラは、各通信プロトコルを別個のモードで処理し、種々のモード間をスキップする。
【0004】
通信コントローラは、高速データ・ストリームを処理する必要がある。通信コントローラはさらに、種々の多層通信プロトコルに従って、データ・ストリームを処理する必要がある。高速データ・ストリームを処理するため、通信コントローラは、百MIPS単位以上など、極めて大きな帯域幅を有する必要がある。種々の通信プロトコルに従って、データを特に極めて高速で受信、送信および処理するためには、通信コントローラは、種々のモード間を極めて高速にスキップする必要がある。
【0005】
図1は、先行技術に基づく旧通信チャネル1180,旧外部メモリ・バンク1100および旧通信コントローラ101の簡易概略図である。旧通信コントローラ101は、モトローラのMC68360チップと類似する。旧通信コントローラ101は、旧スケジューラ1050,旧直接メモリ・アクセス・コントローラ(旧第1DMA)1060,旧第1メモリ・バンク1070,旧第1プロセッサ1090,旧命令メモリ・バンク1130,旧第2プロセッサ1100および旧インタフェース1160からなる。旧通信コントローラ101は、旧外部メモリ・バンク1110と結合される。旧通信コントローラ101はまた、別の外部メモリ・バンク,ホスト・システムおよび他のプロセッサなど(これらに限定されない)、他の外部装置とも結合できる。旧通信コントローラ101は、複数の外部メモリ・バンクと結合できる。説明の便宜上、複数のメモリ・バンクを、旧外部メモリ1110という。
【0006】
旧スケジューラ1050は、入力1054,1056および入出力(I/O)1052を有する。旧第1DMA1060は、入力1066,出力1068およびI/O1062,1064を有する。旧第1メモリ・バンク1070は、I/O1072,1074,1076を有する。旧第1プロセッサ1090は、入力1095,出力1096およびI/O1092,1094,1098を有する。旧第2プロセッサ1100は、I/O1102を有する。旧外部メモリ・バンク1110は、I/O1116を有する。旧インタフェース1060は、I/O1162,1165を有する。
【0007】
N個の旧周辺装置PR(I)からPR(N)1141から1178は、一括して1140とされ、旧周辺バス1112と結合される。N個の旧周辺装置1140は、旧通信コントローラ101内に配置される。N個の周辺装置1140は、旧通信コントローラ101を、複数の旧通信チャネルCC(I)からCC(K)1181から1188(1180と一括表記)と結合する。旧通信チャネル1180は、I/O(1182と一括表記)を有する。旧周辺装置は、I/O(1144と一括表記)を有する。I/O1182は、I/O1144と結合される。
【0008】
旧周辺装置1140のI/O1142,旧第1メモリ・バンク1070のI/O1072および旧スケジューラ1150の入力1054は、旧周辺バス1112と結合される。旧第1DMA1060のI/O1062,旧外部メモリ・バンク1116のI/O1116,旧第2プロセッサ1110のI/O1102,および旧インタフェース1160のI/O1162は、単一バス1113と結合される。単一バス1113は、旧通信コントローラ101を種々の外部装置と結合する外部バスである。旧スケジューラ1050のI/O1052は、旧第1プロセッサ1090のI/O1092と結合される。旧第1プロセッサ1090のI/O1094は、旧命令メモリ・バンク1130のI/O1132と結合される。旧第1プロセッサ90のI/O1095は、旧インタフェース1160のI/O1165と結合される。旧第1プロセッサ90のI/O1098は、旧第1メモリ・バンク1070のI/O1076と結合される。旧第1プロセッサ90の出力1096は、旧第1DMA100の入力1066と結合される。旧第1DMA1060のI/O1064は、旧第1メモリ・バンク1070のI/O1074と結合される。
【0009】
旧インタフェース1060は、旧第1プロセッサ1090によって、および単一バス1113へのアクセスを有するいずれの装置によってもアクセス可能な1組のレジスタである。
【0010】
旧周辺装置は通常、1つまたは複数の通信プロトコルを処理するように特化される。一部の旧周辺装置は、単一通信チャネルと結合でき、一部は、複数の通信チャネルと結合できる。周辺装置の1つは、シリアル通信コントローラ(SCC)であり、これは、IEEE802.3/イーサネット(登録商標),高水準/同期データ・リンク制御(HDLC/SDLC),汎用非同期送受信機(UART)など、種々の通信プロトコルを処理する。もう1つの周辺装置は逐次管理コントローラ(SMC)であり、UARTを処理し、全体的にトランスペアレントな機能性を提供する。もう1つの周辺装置は、逐次周辺装置インタフェース(SPI)であり、旧通信コントローラ101が、他の通信コントローラ、およびISDN装置やAD変換装置などいくつかの周辺装置との間で、データを交換できるようにする。シリアル通信プロトコルを処理する周辺装置は通常、シフト・レジスタなど、並直列変換器からなり、これらの変換器は、通信チャネルから、直列データ・ビット・ストリームを受信し、当該ビット・ストリームを、複数のビット・ワードのセットに変換し、これが旧第1プロセッサ1090に送出される。これらの周辺装置はまた、シフト・レジスタなどの並直列変換器からなり、旧第1プロセッサ1090から複数のビット・ワードを受信して、各ワードを、単一ビットのストリームに変換する。適切には、旧周辺装置は、ステート・マシン(state machine)である。
【0011】
旧通信コントローラ101は、多岐にわたる通信プロトコルに従ってデータを処理できた。旧通信コントローラ101は、旧命令メモリ・バンク1130,旧第1メモリ・バンク1070,または他の任意のメモリ・バンク内に格納できるプログラム可能なルーチンに従って、種々の通信プロトコルを処理できる旧第1プロセッサ1090を有する。データを処理するとき、旧第1プロセッサ1090は、旧第1メモリ・バンク1070または旧外部メモリ・バンク1110内に格納されるパラメータのセット(要求チャネル・パラメータ,通信チャネル・パラメータ)を使用する。適切には、パラメータは、各通信プロトコル(プロトコル)の一部である。通常、パラメータは技術上周知である。例えば、イーサネット(登録商標)・プロトコルに固有のパラメータは、モトローラのMC6830ユーザーズマニュアルの7−247頁から7−248頁に、UARTプロトコルに固有のパラメータは、7−145頁に、HDLCプロトコルに固有のパラメータは7−173頁に、BISYNCプロトコルに固有のパラメータは7−203頁に、トランスペアレント・プロトコルに固有のパラメータは7−225頁に記載される。要求チャネルの状態を定義する要求チャネル・パラメータ,および1つの通信チャネルの状態を定義する通信チャネル・パラメータなど、種々のパラメータがある。例えば、SCCと類似する要求チャネルの要求チャネル・パラメータは、モトローラのMC68260のユーザーズマニュアルの7−125頁、および種々の通信プロトコルの通信チャネル・パラメータは、モトローラのユーザーズマニュアルの7−145頁,7−173頁,7−203頁,7−225頁および7−247から7−248頁に記載された。
【0012】
旧第2プロセッサ1100は、旧第1プロセッサ1090を初期化して、バイト・スワッピング(byte-swapping),フレーム生成(encapsulation)および経路設定などの高水準の管理およびプロトコル機能を処理する。旧第1プロセッサ1090は、すべてのデータ・ストリーム・トランザクションを制御する。旧第1プロセッサ1090は、旧スケジューラ1150が、かかるトランザクションの処理要求を受け取り、旧第1プロセッサに、トランザクションを処理する必要性を知らせた後、トランザクションを処理する。いくつかの旧周辺装置からの複数の要求が存在する場合には、旧スケジューラ1050は、最高優先要求を選択する。
【0013】
「タスク」は、データ・フレームの1つのトランザクションを制御するために、旧第1プロセッサ1090によって実行される命令セットとして定義される。通常、データのトランザクションは、周辺装置の1つからの受信または送信要求によって開始される。
【0014】
図2は、旧第1メモリ・バンクの一部分および旧外部メモリ・バンクの一部分の概略図である。
【0015】
通信チャネルに関連するデータ・フレームは、バッファBF(k)814内に格納され、このバッファBF(k)814のサイズはプログラムできる。データ・フレーム(各通信プロトコル内で定義)は、1つまたは複数のバッファ内に格納され、1つのバッファは、複数のデータ・フレームからのデータを格納しない。少なくとも1つのデータ・フレームは、1つの通信チャネルに関連する。1つの通信チャネルに関連するデータを格納するバッファのセットは、循環待ち行列を形成する。ほとんどのバッファは、旧外部メモリ・バンク1110内に配置される。バッファBF(k)814は、バッファ記述子BD(k)812によって参照され、バッファ記述子は288と一括表記される。バッファ記述子のほとんどは、旧第1メモリ・バンク1070内に格納され、一部は、旧外部メモリ・バンク1110内に格納される。
【0016】
適切には、バッファ記述子BD(k)812は、ポインタ・フィールド(PT(k))810,状態および制御フィールド(SW(k))806および長さフィールド(LW(k))808からなる。バッファBF(k)814の始まりは、PT(k)810によって参照される。LW(k)808は、バッファBF(k)814の長さを決定する。SW(k)806は、F/SビットFSB(k)802からなり、これは、旧第1および第2プロセッサ1090,1100のうちどちらが、バッファBF(k)812を処理できるか、および/またはこれにアクセスできるか決定する。旧第1プロセッサ1090がFSB(k)をセットするのは、BF(k)812内に格納されるすべてのデータの送信を終了したとき、またはデータ・フレームの受信を終了したとき、または被受信データがBF(k)812を満たしたときである。旧第2プロセッサ1100がFSB(k)802をリセットするのは、BF(k)814を、通信チャネルに送信されるデータで満たしたとき、またはBF(k)814内に格納されたデータの読取りを終了したときであって、当該データは、通信チャネルから受信されたものである。SW(k)806はまた、ラップ・フィールド(wrap field)(WB(k))からなり、これは、BD(k)814が、通信チャネルに関連する最後のバッファ記述子であるかどうかを示した。PT(k)810は、BF(k)814の開始を指す。バッファは、複数のメモリ・ワードからなるので、一時カウンタTMP(k)816は、CC(k)から受信された新しいデータ・ワードが格納されるアドレスか、またはCC(k)に送出されるデータ・ワードが格納されるアドレスを指す。データ・ワードが格納/送信された後、TMP(k)816は更新される。
【0017】
各バッファ記述子BD(k)814は、記述子ポインタDP(k)818によって参照される。記述子ポインタは、旧第1メモリ・バンク1070内に格納される。
【0018】
旧第1プロセッサ1090は、バッファBF(k)814の処理を終了するまでは、新しいバッファ記述子BD(k+1)を取り出さず、このバッファ記述子に関連してバッファBF(k+1)内に格納されたデータを処理しない。
【0019】
データの送受信は、要求通信パラメータ,通信チャネル・パラメータ,TMP(k)816,DP(k)818,BD(k)812,およびBF(k)814内に格納されたデータ(情報)を取り出す段階を含む。外部メモリから情報を取り出す必要がある場合には、旧第1プロセッサ1090は、旧第1DMA1060を起動し、当該情報が取り出されるまで待機する。当該情報が取り出された後、旧第1プロセッサ1090は、旧外部メモリ1100からの情報の取り出しを含んだタスクを実施し続ける。
【0020】
旧第1プロセッサ1090と旧第2プロセッサ1010は、1つの外部バスを共用し、これにより、旧通信コントローラ101の周波数および利用可能な帯域幅を制限する。
【0021】
外部メモリからの情報取り出しなど時間のかかる動作が終了する間、旧第1プロセッサ1090はアイドル状態となり、周波数を低減した。
【0022】
旧通信コントローラ101は、必要な帯域幅を持たず、タスク間のスキップができず、高速データ・ストリーム、特に、種々の通信プロトコルに関連する高速データ・ストリームを処理することができなかった。
【0023】
高速データ・ストリーム、特に種々の通信プロトコルに関連した高速データ・ストリームを処理することができる改良された高性能通信コントローラに対する必要性が存在する。
【0024】
【好適な実施例の説明】
一般に、本発明の1側面は、高速データ・ストリーム、および特に種々の通信プロトコルに関連する高速データ・ストリームを処理する能力である。
【0025】
使用された個々の語と表現、詳細な説明と添付図面に開示される個々の構造と動作面の詳細は、説明のためだけであって、いかなる方法でも添付請求の範囲に記載される本発明の範囲を制限することを意図するものではないことに注意されたい。
【0026】
図3は、本発明の好適な実施例による通信チャネル180,外部メモリ・バンク110および通信コントローラ111の概略図である。破線119に示されるように、通信コントローラ111は、スケジューラ50,第1DMA60,第2DMA160,第1メモリ・バンク70,第1プロセッサ90,命令メモリ・バンク130,第2プロセッサ100および複数の周辺装置(140と一括表記)からなる。通信コントローラ111は、2つの外部バス、すなわち第1バス113と第2バス114とに結合される。通信コントローラはまた、外部メモリ・バンク110、および複数の通信チャネル(180と一括表記)と結合される。適切には、複数の通信チャネル180は、複数の周辺装置140と結合される。通信コントローラ111はまた、別の外部メモリ・バンク,ホスト・システムおよびその他のプロセッサなど他の外部装置(これらに限定されない)と結合できる。通信コントローラはまた、ブリッジ120,インタフェース160およびブロック転送マシン(BTM)40から構成できる。通信コントローラ111は、複数の外部メモリ・バンクと結合できる。説明の便宜上、複数のメモリ・バンクは、外部メモリ・バンク110と称される。
【0027】
スケジューラ50は、入力561から568とI/O52とを有する。第1DMAは、出力67とI/O62,64,65とを有する。第2DMA160は、第1DMA60と類似し、出力167とI/O162,164,165とを有する。第1メモリ・バンクは、I/O72,74,76,78を有する。第1プロセッサ90は、I/O92,93,94,95,96,97,98(説明の便宜上、I/O97は図8に記載)を有する。第2プロセッサ100はI/O102,104を有する。外部メモリ・バンク110は、I/O116,118を有する。命令メモリ・バンク130は、I/O132を有する。BTM40は、I/O43,45,47(説明の便宜上、I/O46は図8に記載)。ブリッジ120は、I/O124,122を有する。インタフェース160は、I/O162,164を有する。M個の周辺装置PR(1)からPR(M)1401から1408(140と一括表記)は、M個のI/O(144と一括表記)と、M個のI/O(142と一括表記)を有する。M個の周辺装置140は、通信コントローラ111内に配置されるのが望ましい。複数の(M)周辺装置140は、I/O144,182を介して、通信コントローラ111を、複数の(K)通信チャネルCC(1)からCC(K)1801から1808(180と一括表記)と結合する。
【0028】
周辺装置140のI/O142,BTM40のI/O43およびスケジューラ50の入力561から568は、周辺バス112と結合される。第2DMA160のI/O162,外部メモリ・バンク110のI/O118,第2プロセッサ110のI/O104およびブリッジのI/O162は、第2バス114と結合される。第1DMA60のI/O62,外部メモリ・バンク110のI/O116およびブリッジ120のI/O122は、第1バス113と結合される。第1メモリ・バンク70のI/O72は、BTM40のI/O45と結合される。第1メモリ・バンク70のI/O74は、第2DMA160のI/O164と結合される。第1メモリ・バンク70のI/O78は、第1DMA60のI/O64と結合される。第1メモリ・バンク70のI/O76は、第1プロセッサ90のI/O98と結合される。第1プロセッサ90のI/O93は、第2DMA160のI/O165と結合される。第1プロセッサ90のI/O96は、第1DMA60のI/O65と結合される。第1プロセッサ90のI/O94は、命令メモリ・バンク130のI/O132と結合される。第1プロセッサ90のI/O95は、インタフェース160のI/O164と結合される。第1プロセッサ90のI/O92は、スケジューラ50のI/O52と結合される。第2プロセッサ100のI/O102は、ブリッジ120のI/O124と結合される。第2DMA160のI/O167および第1DMA60のI/O67は、マスキング論理(図6に示される)を介して、スケジューラの入力561から568と結合される。
【0029】
ブリッジ120は、第2プロセッサ100を第1バス113とインタフェースさせるために使用される。インタフェース160は、レジスタからなり、第1プロセッサ90を、第1バス113を介して、第2プロセッサ100など種々の装置と結合するのに使用される。インタフェース160は、第1プロセッサ90に命令を書き込むのに用いることができる。
【0030】
周辺装置140の中の一部の周辺装置は、バッファまたは待ち行列からなり、これは、通信チャネル180の中の1つまたは複数の通信チャネルと結合される。適切には、周辺装置は、より複雑化され、通常、各周辺装置は、1つまたは複数の通信プロトコルの処理に特化される。一部の周辺装置は、1つの通信チャネルと結合でき、一部は、複数の通信チャネルと結合できる。例えば、本発明の範囲を制限せずに、HDLCプロトコルを処理する周辺装置は、256の通信チャネルと結合できる。
【0031】
例えば、本発明の範囲を制限せずに、1つの周辺装置は、モトローラのMC68360 SCCと類似するが、非同期転送モード通信プロトコルも処理できる。もう1つの周辺装置は、モトローラのMC68360SMCと類似する。別の周辺装置は、モトローラのMC68360SPIと類似する。別の周辺装置は、通信コントローラ111が、ATMプロトコルを処理できるようにし、別の周辺装置は、通信コントローラ111が、高速イーサネット(登録商標)・プロトコルを処理できるようにする。シリアル通信プロトコルを処理する周辺装置は通常、シフト・レジスタなどの並直列変換器からなり、これは、通信チャネルから、直列データ・ビット・ストリームを受信し、当該ビット・ストリームを、複数のビット・ワードのセットに変換して、これが第1プロセッサ90に送られる。これらの周辺装置はさらに、シフト・レジスタなどの並直列変換器からなり、第1プロセッサ90から複数のビット・ワードを受け取って、各ワードを単一ビットのストリームに変換する。適切には、各周辺装置は、少なくとも1つの通信プロトコルに特化されるステート・マシンからなる。ステート・マシンは、生データ・ビット・ストリームを、通信プロトコルと適合性のあるビット・ストリームに変換する。
【0032】
通信コントローラ111は、多岐にわたる通信プロトコルに従ってデータを処理する。通信コントローラ111は、第1プロセッサ90を有し、これは命令メモリ・バンク130,第1メモリ・バンク70または他のメモリ・バンク内に格納できるプログラム可能ルーチンに従って、種々の通信プロトコルを処理できる。データを処理するとき、第1プロセッサ90は、第1メモリ・バンク70または外部メモリ・バンク110内に格納されるパラメータのセット(要求チャネル・パラメータ,通信チャネル・パラメータ)を使用する。適切には、パラメータは、各通信プロトコル(プロトコル)の一部である。通常、パラメータは、技術上周知である。例えば、本発明の範囲を制限せずに、イーサネット・プロトコルに固有のパラメータは、モトローラのMC68360ユーザーズマニュアルの7−247頁から7−248頁に、UARTプロトコルに固有のパラメータは7−145頁に、HDLCプロトコルに固有のパラメータは7−173頁に、BISYNCプロトコルに固有のパラメータは7−203頁に、トランスペアレント・プロトコルに固有のパラメータは7−225頁に記載された。要求チャネルの状態を定義する要求チャネル・パラメータ,および1つの通信チャネルの状態を定義する通信チャネル・パラメータなど、種々のタイプのパラメータが存在する。例えば、SCCと類似する要求チャネルの要求チャネル・パラメータは、モトローラのMC68260ユーザーズマニュアルの7−125頁に、種々の通信プロトコルの通信チャネル・パラメータは、モトローラのユーザーズマニュアルの7−145頁,7−173頁,7−203頁,7−225頁および7−247頁から7−248頁に記載された。
【0033】
第2プロセッサ100は、第1プロセッサ90を初期化し、バイト・スワッピング, フレーム生成および経路設定など、高水準の管理とプロトコル機能を処理する。適切には第2プロセッサは、モトローラのMC68360チップ(モトローラのMC68360チップのユーザーズマニュアルに記載)のCPU32+に類似する。第1プロセッサ90は、データ・ストリーム・トランザクションを制御する。
【0034】
「タスク」とは、フレームのトランザクションを制御するために、第1プロセッサ90によって実行される命令セットとして定義される。通常、フレームのトランザクションは、周辺装置の1つからの受信または送信要求によって開始される。
【0035】
適切には、周辺装置は、データを受信するか、または送信することができる。説明の便宜上、各周辺装置140は、2つの要求チャネル、すなわち、データを送信して、送信要求を送るための送信要求チャネルと、データを受信して、受信要求を送るための受信要求チャネルからなるものと見なされる。説明の便宜上、z番目のチャネルはRC(z)と表され、z555は、1から2Mの値を有する指標である。Z555は、z番目の要求チャネルが、受信または送信要求を送ったことを示す。
【0036】
適切には、通信コントローラ111によって処理されるデータは、外部メモリ・バンク110内に格納され、このプロセスは、バッファBF(k),バッファ記述子BD(k),記述子ポインタDP(k),ポインタ・フィールドPT(k),一時ポインタTMP(k),状態および制御フィールドSCW(k),長さフィールドLW(k),第1と第2のプロセッサ90,100のうちどちらがバッファBF(k)を処理できるか、および/またはアクセスできるか決定するF/SビットFSB(k)の使用を含む。これらBF(k),BD(k),DP(k),PT(k),TMP(k),SCW(k),LW(k)およびFSB(k)は、旧通信プロセッサ101のバッファBF(k),バッファ記述子BD(k),記述子ポインタDP(k),ポインタ・フィールドPT(k),状態および制御フィールドSCW(k),ラップ・フィールドWB(k),長さフィールドLW(k)およびF/SビットFSB(k)と類似する。第1プロセッサ90がFSB(k)をセットするのは、BF(k)内に格納されたすべてのデータの送信を終了したとき、またはデータ・フレームの受信を終了したとき、または被受信データがBF(k)を満たしたときである。第2プロセッサ100がFSB(k)をリセットするのは、BF(k)が通信チャネルに送信されるデータで満たされたとき、またはBK(k)内に格納されたデータの読取りを終了したときであって、当該データは、通信チャネルから受信されたものである。PT(k)は、BF(k)の始まりを指す。
【0037】
データ・ワードが格納/送信された後、TMP(k)は更新される。更新されたTMP(k)は、第1プロセッサ90がタスク・スイッチを実行するか、および/またはこれに従ってタスクの実施を開始するときに、第1メモリ・バンクに送出される、および/または第1メモリ・バンクから送出される。
【0038】
第1プロセッサ90は通常、現在バッファBF(k)全体の処理を終了するまでは、新しいバッファ記述子BD(k+1)を取り出さず、バッファBF(k+1)内に格納されたデータを処理しない。
【0039】
後に図10に関して詳細に説明されるように、データの送受信は、要求チャネル・パラメータ,通信チャネル・パラメータ,TMP(k),DP(k),BD(k)と,BF(k)内に格納されたデータの取り出しを含む。上記の取り出しの間、DMP動作を実施することが必要な場合であって、DMA要求が第1バス113もしくは第2DMA160へのアクセスを要求する場合には、第1プロセッサは第1DMA60をアクティブにし、またはDMA要求が第2バス114へのアクセスを要求する場合には、第1プロセッサ90は第2DMA60をアクティブにした。
【0040】
図4は、本発明の好適な実施例による第1DMA60の制御セクションの概略図である。第1DMA60の制御セクションは、第2DMAの制御セクションと類似する。適切には、第1DMA60の制御セクションは、DMA要求待ち行列(待ち行列)62およびイネーブル装置(enable unit1)64からなる。後に詳細に説明するように、待ち行列62は、複数のDMA要求とイネーブル装置64とを格納できる。イネーブル装置64は、要求チャネルからスケジューラ50に送られる送信要求または受信要求をマスクする。第1DMA60の制御セクションは、待ち行列62,イネーブル装置64,要求バイパス・レジスタ(バイパス・レジ)68,入力マルチプレクサ(DI_MUX),出力マルチプレクサ(DO_MUX)69からなることが望ましい。DI_MUX66は、入力662,668と出力666とを有する。待ち行列62は、入力626,出力628,および複数のN個の出力(624と一括表記)を有する。パイパス・レジ68は、入力682と出力684,686とを有する。DO_MUX69は、入力692,694,696と出力698とを有する。イネーブル装置64は、複数のN入力(646と表記),入力642、および第1DMA60の出力67と結合される2Mビット出力676を有する。DI_MUX66の入力662,668は、第1DMA60の入力65と結合される。
【0041】
待ち行列62は、N個のメモリ・ワード621から628を有する。適切には、メモリ・ワード621から628はそれぞれ、2つの部分62(1,1)から62(N,1)と、62(1,2)から62(N,2)とを有する。z555を格納するための第1部分62(1,1)から62(N,1)は、どの要求チャネルが、直接アクセス・メモリ要求(DMA要求)に関連するかを示す。第2部分62(1,2)から62(N,2)は、DMA要求を格納するためのものである。DMA60は、メモリ内の第1位置から、メモリ内の第2位置に、情報ブロックを移動する、および/またはコピーする。適切には、DMA要求は、ブロックの送信元,宛先およびサイズを含み、これらは、第1DMA60によって転送される。
【0042】
バイパス・レジ68は、2つの部分を有する。第1部分681は、z555を格納するためのもので、第2部分682は、DMA要求を格納するためのものである。
【0043】
DI_MUX66は、入力664を介して、DMA要求とz555とを受信する。DI_MUX66は、入力668を介して、BYQ信号668を受信し、この信号は、DMA要求とz555をバイパス・レジ68または待ち行列62に書き込むかどうか決定する。
【0044】
バイパス・レジ68が空でない場合には、DO_MUX69は入力692を介して、制御信号を受信し、この信号は、入力696を選択させ、バイパス・レジ68内に格納されるDMA要求を出力させる。空である場合には、DO_MUX69は、入力694を選択し、第2部分6212に格納されるDMA要求を出力する。
【0045】
送信要求はタスクを開始する。受信要求はタスクを開始する。
【0046】
第1部分62(1,1)から62(N,1)は、待ち行列62の出力624を介して、イネーブル装置64の入力646と結合される。第1プロセッサ90が、RC(z)に関連するDMA要求を第1DMA60に送出するとき、RC(z)の送信要求または受信要求は非アクティブとなる。RC(z)に関連するすべてのDMA要求が実施された後、その受信または送信要求はアクティブとなる。通常、受信または送信要求は、当該要求に関連するタスクが終了するときに、非アクティブとなる。
【0047】
イネーブル装置64は、DMA待ち行列62内に格納されるDMA要求に関連する要求チャネルの送信または受信要求をマスクする。イネーブル装置64は、出力648を介して、対応するz555を有するイネーブル信号を、スケジューラ50に送出することができる。適切には、出力648は2Mビット,すなわち2M個の要求チャネルそれぞれにつき1ビットを有し、イネーブル装置64は、1ビット信号を、RC(z)に関連する出力648のz番目のビットに送出する。
【0048】
図5は、本発明の好適な実施例による第1DMA60のバッファ・セクションの概略図である。第1DMA60のバッファ・セクションは、第2DMA160のバッファ・セクションと類似する。バッファ・セクションは、第1送信(tx)バッファ612,第2送信(tx)バッファ614,第1受信(rx)バッファ616,第2受信(rx)バッファ618,送信制御装置610,受信制御装置615からなる。
【0049】
第1txバッファ612は、入力6126,6124と出力6122とを有する。第2txバッファ614は、入力6146,6144と出力6142とを有する。送信制御装置610は、入力6108と出力6104,6102とを有する。受信制御装置615は、入力6158と出力6154,6105とを有する。第1rxバッファ616は、入力6162,6164と出力6166とを有する。第2rxバッファ618は、入力6182,6184と出力6186とを有する。
【0050】
第1txバッファ612の出力6122と第1rxバッファ616の入力6162は、第1DMA60のI/O64,62と結合される。第2txバッファ614の入力6146と第2rxバッファ618の出力6186とは、第1バス113と結合される。第1txバッファ612の入力6126は、第2txバッファ614の出力6142と結合される。第1rxバッファ616の出力6166は、第2rxバッファ618の入力6182と結合される。DO_MUX69の出力898は、受信制御装置615および送信制御装置610それぞれの入力6158,6108と結合される。送信制御装置610の出力6102は、第1txバッファ612の入力6124と結合される。受信制御装置615の出力6152は、第1rxバッファ616の入力6164と結合される。送信制御装置610の出力6104は、第2txバッファ614の入力6144と結合される。受信制御装置615の出力6154は、第2rxバッファ618の入力6184と結合される。
【0051】
送信制御装置610は、DO_MUX69から送出されるDMA命令を格納するレジスタを有し、これは、第1メモリ・バンク70のI/O78,第1プロセッサ90のI/O96のいずれかから、I/O64,96を介して、第1バス113にデータを送信する段階を含む。送信制御装置610は、第1txバッファ612を起動して、データをI/O64または96に送信し、第2txバッファ614を起動して、第1バス113からのデータを第2txバッファ614に読み出す。送信制御装置は、制御信号を第1および第2txバッファ612,614に送出して、第2txバッファ614から第1txバッファ612へとデータを送信する。送信制御装置は、z555を格納するためのフィールド6102を有する。第1および第2txバッファは、独立して動作可能であることが望ましい。
【0052】
受信制御装置615は、DO_MUX69に送られるDMA命令を格納するレジスタを有し、これは、I/O64,96を介して、第1メモリ・バンク70のI/078または第1プロセッサ90のI/O96のいずれかに、第1バス113からデータを送信する段階を含む。受信制御装置615は、第1rxバッファ616を起動して、I/O64または96からデータを送信し、第2rxバッファ618を起動して、第2rxバッファ618から第1バス113にデータを送信する。受信制御装置615は、制御信号を、第1および第2rxバッファ616,618に送出して、第1rxバッファ616から第2rxバッファ618にデータを送出する。受信制御装置615は、z555を格納するためのフィールド6502を有する。第1および第2rxバッファ616,618は、独立して動作可能であることが望ましい。
【0053】
適切には、イネーブル装置64は、待ち行列62の第1部分6211から6281と681およびバイパス・レジスタ682の内容をチェックしない。受信制御装置および送信制御装置615,610のフィールド6502と6102の内容は、第1部分6211から6281と628の内容と比較され、符合しない場合には、フィールド6502,6102の内容は、イネーブル装置64に送られる。
【0054】
図6は、イネーブル装置64,スケジューラ50およびマスキング論理80の概略図である。マスキング論理は、複数のAND論理ゲートからなる。説明の便宜上、この図は、複数のAND論理ゲート(ゲート)のうち4つの3入力論理ANDゲート81から84に関する。第1ゲート81は、入力812,814,818と出力816とを有する。第2ゲート82は、入力822,824,828と出力826とを有する。第3ゲート83は、入力832,834,838と出力836とを有する。第4ゲート84は、入力842,844,848と出力846とを有する。
【0055】
イネーブル装置64の出力671は、第1ゲート81の入力812と結合される。イネーブル装置64の出力672は、第2ゲート82の入力822と結合される。イネーブル装置64の出力673は、ゲート83の入力832と結合される。イネーブル装置64の出力674は、第4ゲート84の入力842と結合される。イネーブル装置164の出力1671は、第1ゲート81の入力818と結合される。イネーブル装置164の出力1672は、第2ゲート82の入力828と結合される。イネーブル装置164の出力1673は、ゲート83の入力838と結合される。イネーブル装置164の出力1674は、第4ゲート84の入力848と結合される。第4ゲート84の出力846は、スケジューラ50の入力564と結合される。第3ゲート83の出力836は、スケジューラ50の入力563と結合される。第2ゲート82の出力826は、スケジューラ50の入力562と結合される。第1ゲート81の出力816は、スケジューラ50の入力561と結合される。第4ゲート84の入力844は、回線1402と結合されて、要求チャネルから受信または送信要求を受け取る。第3ゲート83の入力834は、回線14022と結合されて、別の要求チャネルから、受信または送信要求を受け取る。第2ゲート82の入力824は、回線14032と結合されて、要求チャネルから受信または送信要求を受け取る。第1ゲート81の入力814は、回線14042と結合されて、要求チャネルから、受信または送信要求を受け取る。
【0056】
第1DMA60または第2DMA160が、受信チャネルに関連するDMA要求を受け取るとき、ディスエーブル信号(低水準信号)をゲートに送出し、ゲートは、当該要求チャネルから受信または送信要求を受け取り、イネーブル信号は、当該チャネルから来る要求をマスクする。第1DMA60または第2DMAが、要求チャネルに関連する要求がないときには、それらはイネーブル信号を、要求チャネルと結合されるゲートに送出する。第1および第2DMA60,160がともにイネーブル信号を送出する場合には、要求コレクタの受信または送信要求は、スケジューラ50に到達できる。
【0057】
例えば、第1ゲート81は、第1要求チャネルRZ(1)と結合される。第1要求チャネルは、回線14042を介して、送信要求(高水準信号)を送出する。第1または第2DMA60,160の場合には、第1要求チャネルRZ(1)に関連するDMA要求はない。第1および第2DMA60,160はともに、高水準信号を、第1ゲート81の入力812,818に送出する。スケジューラ50は、入力561を介して、第1要求チャネルRZ(1)から送信要求を受信し、第1プロセッサ90に、送信要求を処理するために第1タスクT(1)の実行を開始させる。第1タスクT(1)がDMA要求を必要とするとき、第1プロセッサ90は、DMA要求を、第1または第2DMA60,160のいずれかに送出する。説明の便宜上、第1プロセッサ90は、DMA要求を第1DMA60に送出すると仮定する。第1DMA60が、DMA要求の実行が終了に至らないまで、イネーブル装置64は、低水準信号を第1ゲート81の入力812に送出して、第1ゲートの出力信号を低に強制し、これにより、第1要求チャネルRZ(1)の送信要求をマスクする。
【0058】
ディスエーブル信号はさらに、第1プロセッサ90からもたらされる。ディスエーブル信号は、第1プロセッサ90がDMA要求を送るときに送出される。第1プロセッサが、フリップフロップのリセット入力と結合される間、イネーブル装置64がフリップフロップのセット入力と結合される間、第1プロセッサ90とイネーブル装置64とは、フリップフロップと結合される。フリップフロップの出力は、上述のように、AND論理ゲートの入力と結合される。第1プロセッサはまた、第2DMA160のイネーブル装置164と結合される。
【0059】
図7は、本発明の好適な実施例によるスケジューラ50の概略図である。スケジューラ50は、要求セレクタ56,スタック・ポインタ入力マルチプレクサ(sp入力mux)52,スタック・ポインタ出力マルチプレクサ(sp出力mux)58,および2M個のスタック・ポインタ・レジスタ1sp_regから2Msp_reg541から548(540と一括表記)からなる。
【0060】
スケジューラ50は、最高2M個のスタック・ポインタのセットを格納する。スタック・ポインタは、タスクT(z)の一部である命令I(z,r)のアドレスであり、zとrは整数、zは1から2Mまでの値を有する。タスクT(z)は、要求チャネルRC(z)からの1つの受信または送信要求に専用であることが望ましい。タスクT(z)は、命令メモリ・バンク130内,第1メモリ・バンク70内,または外部メモリ・バンク110内に格納できる。タスクT(z)またはその一部は、他のメモリ・バンク内にも格納できる。
【0061】
例えば、選択された送信または受信要求が、RC(c)と関連する場合には、第1プロセッサ90に対して、Dsp_regからスタック・ポインタを取り出させる。Csp_regの内容は、命令I(c,r)のアドレスである。第1プロセッサ90はついで、タスクT(c)の一部を実行する。
【0062】
通常、図13により詳細に説明されるように、第1プロセッサ90は、外部装置から情報を取り出す必要があるまで、z番目のタスクT(z)のいくつかの命令(I(z,r)からI(z,r+d),dは整数)を実行する。第1プロセッサ90は、RC(z)に関連するDMA要求を第1DMA60または第2DMA160に送出し、更新されたスタック・ポインタ(命令I(z,r+d+1)を指す)を送出し、この命令はI(z,r+d)に続く。適切には、タスクT(z)が終了する場合には、I(z,I)がZsp_regに送出され、待機して、新しく選択されたスタック・ポインタをスケジューラ50から受け取る。スケジューラが第1プロセッサ90に、x番目のタスクT(x)と関連する新しく選択されたスタック・ポインタを送出するとき、第1プロセッサ90は、タスクT(x)の中の命令の実行を開始する。
【0063】
「タスク・スイッチ」は、タスクの実行停止,被選択タスクの受け取り待機,および被選択タスクからの命令の実行開始のうち、第1プロセッサ90によって行われるプロセスとして定義される。通常、被選択タスクは、停止されたタスクとは異なるが、必ずしもそうではない。
【0064】
要求セレクタ56は、2M個の入力561から568,制御入力569および出力560を有する。Sp入力mux52は、入力520,529,2M個の出力の第1セット511から518と、2M個の出力の第2セット521から528とを有する。スタック・ポインタ・レジスタ(spレジスタ)541から548は、入力の第1セット5411から5481,入力の第2セット5412から5482および出力5413から5483を有する。Sp出力mux58は、2M個の入力581から588,入力580および出力589を有する。要求セレクタ56の出力560は、sp出力mux58の入力580と結合されて、2M個の入力581から588のなかのどの入力が、出力589と結合されるか選択する。要求セレクタの入力561から568は、2M個の要求チャネルRC(1)からRC(2)(150と一括表記)と結合される。出力648は、図4により詳しく説明されるように、イネーブル信号を受信チャネルに送出する。適切には、2M個のAND論理ゲート(図示されず)はそれぞれ2つの入力と1つの出力を有して、1つの側から、イネーブル装置64の2Mビット出力と、2M個の受信および送信チャネルに結合され、もう1つの側から、2M個入力561から568と結合される。
【0065】
送信要求は通常、要求チャネルが通信チャネルへのデータ送信を終了して、要求チャネルが新しいデータを受け取れるときに送られる。受信要求は通常、受信チャネルがデータを受信するときに送られる。
【0066】
要求セレクタ56は、1つまたは複数の要求チャネルから、送信または受信要求を受信したか否かをチェックする。答えが「イエス」である場合には、要求セレクタ56は、最高優先順位を有する要求を選択する。説明の便宜上、最高優先順位を有する要求は、z番目の要求チャネルRC(z)から来たものと仮定する。要求セレクタ56は、制御信号をSp入力mux52に送出して、Gsp_reg内に格納されたz番目のスタック・ポインタが、第1プロセッサ90に送出されるようにする。第1プロセッサ90は、命令メモリ・バンク130から、z番目のスタック・ポインタによって指し示される命令I(z,r)を取り出し、それとタスクT(z)の次の命令の実行を開始する。
【0067】
要求の優先順位は、修正または変更できる。例えば、第1入力561によって入力される要求は、最も低い優先順位を持つことができ、M番目の入力568によって入力される要求は、最も高い優先順位を持つことができる。
【0068】
図8は、本発明の好適な実施例によるブロック転送マシン(BTM)40の概略図である。BTM40は、BTMデータ・レジスタ(bdataバッファ)41,BTM制御装置(bcontrol装置)46,データ・マニピュレータ(data
manipulator)4およびCRCマシン48からなる。BTM40は、CRC REG42,第1メモリ・バンク70,および周辺装置140と結合される。CRC REG42は、第1プロセッサ90のレジスタ群の1つである。
【0069】
適切には、BTM40は、周辺装置140と第1メモリ・バンク70との間のデータ転送を処理する。通常、第1プロセッサ90は、BTM40に転送要求を送出し、転送されるデータの送信元と宛先およびデータ長を示す。例えば、BTM40が周辺装置および第1メモリ・バンク70に、32ビット・バスによって結合され、8×32=256ビットを転送する必要がある場合には、第1プロセッサ70は、長さフィールド8を有する転送命令を送出して、8×32ビット転送が実行されることを示す。通常、ATM通信プロトコルは、48×32=1536ビットなど、より大きなデータ・ブロックの転送を必要とする。適切には、BTM40は、DMAコントローラのみから構成できる。DMA40は、データ転送を処理し、転送するデータも処理できることが望ましい。周辺装置1401から1408はそれぞれ、I/O1421から1428を有する。
【0070】
Bdataバッファ41は、入力414とI/O412,416とを有する。CRCREG42は、入力424とI/O426とを有する。BRAM43は、I/O432と入力434とを有する。データ・マニピュレータ44は、入力442,444とI/O446とを有する。Bcontrol装置46は、入力462と出力464とを有する。CRCマシン48は、入力484,482とI/O486とを有する。
【0071】
周辺バス112は、BTM40lのI/O43を介して、データ・マニピュレータ44のI/O442、およびCRCマシン48の入力482と結合される。bcontrol装置46の出力464は、CRC
REG42の入力424,CRCマシンの入力484,データ・マニピュレータの入力44,BRAM43の入力344,およびbdataバッファ41の入力414と結合される。bcontrol装置46の入力462は、第1プロセッサ90のI/O97と結合される。CRC
REG42のI/O426は、CRCマシン48のI/O486と結合される。データ・マニピュレータ44のI/O446は、bdataバッファ41のI/O412と結合される。bdataバッファ41のI/O416は、I/O45を介して、第1メモリ・バンク70のI/O72と結合される。
【0072】
Bcontrol装置46は、第1プロセッサ90の出力97から送られる制御信号および/または命令オペランドによって起動される。Bcontrol装置46は、出力464を介して、制御信号をCRC reg42,CRCマシン48,データ・マニピュレータ44およびデータ・バッファ41に送出することによって、BTM40の動作を制御する。Bcontrol装置46は、制御信号を送出し、この信号はデータを、周辺バス112と第1メモリ・バンク70との間で流れさせる。Bcontrol装置は、CRCマシンに、データに関するCRCチェックを実行させ、結果をCRC REG42に格納させる。適切には、CRCマシン48は、1つのクロック・サイクルの間に、CRCチェックを実施する。CRCマシンは、1つのクロック・サイクルの間に、16ビットのデータ・ワードについて、CRCチェックを実施できることが望ましい。データ・マニピュレータ44は、I/O442を介してデータ・ワードを読み取ることができ、データ・ワードをスワップするか、または桁移動(shift)されたデータ・ワードを作成することができ、I/O446を介して、bdataバッファ41のI/O412に、新しいデータ・ワードを送出することができる。Bdataバッファ41は、新しいデータ・ワードを格納して、これをBRAM43に送出する。Bdataバッファ41はまた、BRAM43からデータ・ワードを受け取って、これをデータ・マニピュレータ44に送出することができる。データ・マニピュレータ44は、データ・ワードをスワップするか、または桁移動されたデータ・ワードを作成することができ、I/O442を介して周辺バス112に新しいデータ・ワードを送出することができる。
【0073】
図9は、本発明の好適な実施例による第1メモリ・バンク70の概略図である。メモリ・バンク70は適切には、Qセクション(メモリ・バンク)1BANKからQBANK701から708からなる。1BANKからQBANK701から708の各メモリ・バンクは、第1プロセッサ90,第1DMA60,第2DMA160およびBTM40と結合される。説明の便宜上、2つのメモリ・バンク1BANK701とQBANK708だけが描かれるが、任意の数Qのメモリ・バンクを実施できる。説明の便宜上、第2DMA160は描かれない。
【0074】
第1プロセッサ90のI/O98は、第1メモリ・バンク70のI/O78を介して、1BANK701の入力7148,QBANK708の入力7848,1BANK701のI/O7168,およびQBNAK708のI/O7868と結合される。第1DMA60のI/O64は、第1メモリ・バンク70のI/O78を介して、1BANK701の入力7148,QBANK708の入力7848,1BANK701のI/O7166およびQBANK708のI/O7866と結合される。BTM40のI/O45は、第1メモリ・バンク70のI/O72を介して、1BANK701の入力7144,QBANK708の入力7844,1BANK701のI/O7164およびQBANK708のI/O7864と結合される。図8に詳述されるように、メモリ・バンク(例えば、1BANK701)が、第1プロセッサ90のなかの複数の要素,第1DMA60およびBTM40によって同時にアクセスされる場合には、1BANK701は、どの要素が最初にサービスを受け、最初の要素がサービスを受けた後、どれがサービスを受けるか決定する。
【0075】
図10は、本発明の好適な実施例による第1メモリ・バンク70内のQメモリ・バンクのメモリ・バンク1BANK701の概略図である。1BANK701は、メモリ・アレイ718,データ・マルチプレクサ(DATA MUX)716,アドレス・マルチプレクサ(ADDRESS MUX)714およびメモリ・セレクタ712からなる。DATA MUX716は、入力7163とI/O7164,7166,7168,7169とを有する。ADDRESS MUX714は、入力7144,7146,7148,7149と出力7142とを有する。メモリ・セレクタ712は、入力7124,7126,7128と出力7123,7125とを有する。メモリ・アレイ718は、入力7182とI/O7184とを有する。DATA MUX716の入力7163は、メモリ・セレクタ712の出力7123と結合される。ADDRESS MUX714の入力7149は、メモリ・セレクタ712の出力7125と結合される。ADDRESS MUX714の出力7142は、メモリ・アレイ718の入力7182と結合される。DATA MUX716のI/O7169は、メモリ・アレイ718のI/O7184と結合される。
【0076】
BTM40,第1DMA60,第2DMA160および第1プロセッサ90は、ADDRESS MUX714の入力7144,7146,7148およびメモリ・セレクタ712の入力7124,7126,7128に、アドレス・ワードを送出することができる。アドレス・ワード・ビットのいくつかは、メモリ・セレクタ712に送られ、残りのビットは、ADDRESS MUX714に送られる。メモリ・セレクタ712に送られるアドレス・ビットは、1BANKからQBANK701から708のなかの1つのメモリ・バンクを選択するのに用いられる。
【0077】
第1プロセッサ90,第1DMA60およびBTM40のなかの1つの要素だけが、アドレス・ワードを送出する場合には、この要素が選択され、メモリ・セレクタ712は、出力7125,7163から、ADDRESS MUX714の入力7149およびDATA MUX716の入力7163に選択信号を送る。選択信号は、ADDRESS MUX714に、被選択要素から、メモリ・アレイ718の入力7182にアドレス・ワードの残りのビットを送出させる。選択信号は、DATA MUX716に、メモリ・アレイ718のI/O84を、被選択要素のI/Oと結合させる。例えば、BTM40が、BANK1のデータ・ワードを書き込むとき、アドレス・ワードをBANK701に送り、データ・ワードを、DATA MUX716のI/O7164に送る。メモリ・セレクタ712は、アドレス・ワードのいくつかのビットを受信し、BTM40が、1BANK701に(から)データ・ワードを書き込む(読み取る)ことを識別する。メモリ・セレクタ712は、選択信号をDATA MUX716に送出し、これは、I/O7164(ひいては、BTM40のI/O42)を、DATA MUX716の出力7169、従ってメモリ・アレイ718のI/O7184と結合する。
【0078】
BTM40,第1DMA60および第1プロセッサ90のなかの複数の要素が、1BANKにデータ・アドレスを送る場合には、メモリ・セレクタ712は、最高優先順位を持つ要素からの要求を選択して、選択信号をDATA MUX716に、従ってADDRESS MUX714に送出する。例えば、BTM40および第1プロセッサ90が同時にアドレス・ワードを1BANKに送出し、第1プロセッサ90がBTM40よりも高い優先順位を持つ場合には、メモリ・セレクタは、ADDRESS MUX714の入力7148を、メモリ・アレイ718の入力7182と結合させ、DATA MUX716のI/O7168を、メモリ・アレイ718のI/O7184と結合させる選択信号を送出する。
【0079】
いくつかのメモリ・バンクBANKからQBANKは、逐次アクセスのための高速を提供するためにインタリーブできる。このインタリービングは、第1メモリ・ワードが、第1データ・バンク内にあり、第2メモリ・ワードが第2メモリ・バンク内にあるようにする。インタリービングは、アドレス・ワードの最も重要度の低いビットおよび最も重要度の高いビットをスワップすることによって実施される。例えば、第1メモリ・バンクが、それぞれ2Kワードの16のメモリ・バンクからなる場合には、アドレス・ワードは、15ビット長にしなければならず、4ビットは、16メモリ・バンクの1つを選択するのに用いられ、他の11ビットは、2Kワード・メモリ・バンク内のどのデータ・ワードが選択されるかを定義する。インタリービングは、15ビットのアドレス・ワードのうち重要度の低い4つのビットを、各メモリ・セレクタ712のアドレス・バスの最も重要度の高い4つのビットに送ることによって実施でき、残りの11ビットは、ADDRESS MUX714に送られる。
【0080】
図11は、本発明の好適な実施例により、タスクを実行し、タスク・スイッチを実施するための方法900の好適な実施例を示すフローチャートである。
【0081】
方法900は、スケジューラ50が、要求チャネルから1つまたは複数の受信または送信要求を受信したか否かをチェックする段階910から始まる。段階910は、経路912によって示されるように、段階920に続く。
【0082】
段階920の間、スケジューラ50は、最高優先順位を有する受信/送信要求を選択する。説明の便宜上、当該要求はCR(z)から来たと仮定する。スケジューラ50は、被選択受信/送信要求に関連するスタック・ポインタを送出し、第1プロセッサ90に、CR(x)に関連したタスクT(z)を実行させる。タスクT(z)の実行は通常、データ,状態語,要求チャネル・パラメータ,通信チャネル・パラメータおよびポインタ(情報)の取り出しを含む。段階920の間、第1プロセッサ90は、タスクT(z)が終了するまで、または外部メモリ・バンク110または外部装置から情報を取り出す必要があるまで、タスクT(z)を実行した。
【0083】
経路934と段階960に示されるように、外部メモリ・バンク110内に記憶される情報を取り出す必要がある場合には、第1プロセッサは、DMA要求を第1DMA60に送り、更新されたスタック・ポインタSP(z)を、スケジューラ50のz番目のスタック・ポインタ・レジスタ(Zsp_reg)に格納し、ディスエーブル信号をスケジューラ50に送出し、これは、RC(z)からのいずれの送信または受信要求もマスクする。経路962に示されるように、段階960は、段階910に続く。
【0084】
経路964に示されるように、DMA要求が送られた後、第1DMA60または第2DMA160が、段階970の間に、要求を実行して情報を取り出す。情報が取り出された後、第1DMA60または第2DMA160は、イネーブル信号をスケジューラ50に送って、T(z)からの受信または送信要求のマスクを除去する。段階910,920,930,940,950,960が、タスクT(x)に従って実行される間、段階970は実行できる。
【0085】
破線の経路972に示されるように、段階970は段階910に続き、タスクT(z)に関連する情報が取り出された後、タスクT(z)は、段階910から実行できることを意味する。図4に詳述されるように、T(z)は、命令のセットからなるが、第1プロセッサは、これらの命令(I(z,r)からI(z,r+d))のいくつかを実行し、タスク・スイッチを実行することができる。第1プロセッサ90が、RC(z)からくる要求に応答するとき、I(z,r+d+1)から始まって、次の命令を取り出し、これは命令I(z,r+d)に続く。
【0086】
経路924,952および段階950に示されるように、タスクT(z)が終了する場合には、第1プロセッサ90は、更新されたスタック・ポインタをZsp_regに送り、方法900は、段階910を開始して、スケジューラ50が、送信/受信要求を受信したかどうかチェックする。
【0087】
段階960の開始時点で、第1プロセッサ90は、タスクT(z)に関連する情報を取り出すために、DMA要求を第1DMA60または第2DMA160に送出して、ディスエーブル信号をスケジューラ50に送出し、これは、CR(z)からの送信または受信要求をマスクする。第1プロセッサ90は、Zsp_regを現在スタック・ポインタに送る。ディスエーブル信号はまた、第1DMA60または第2DMA160によっても送出できる。
【0088】
図12は、本発明の好適な実施例により、受信または送信要求によって開始されるタスクを実行するための方法1000の好適な実施例を示すフローチャートである。
【0089】
段階1014,1018,1022,1030は、情報の取り出しを含む。情報が、外部メモリ・バンク110または任意の他の外部装置に格納される場合には、第1プロセッサ90は、図9により説明されるように、タスク・スイッチを実行する。段階1046は、タスク・スイッチに続けることができる。例えば、要求周辺装置が、フレーム全体ではなく、当該フレームの一部しか格納せず、第1プロセッサ90が、当該部分の処理を終了する場合には、当該フレームの残りの部分を取り出す必要があり、このため、第1プロセッサ90は、タスク・スイッチを実施して、フレームの別の部分が周辺装置内に格納される場合には、このタスクを実施するために戻すことができる。説明の便宜上、これらのタスク・スイッチは、図10には示さず、方法1000は、タスク・スイッチなしで実行されるものとして示される。
【0090】
段階1010の間、第1プロセッサ90は、T(z)の第1命令I(z,1)を取り出すことにより、被選択タスクT(z)からの命令の実行を開始する。
【0091】
経路1012に示されるように、段階1010は段階1014に続く。段階1014の間、第1プロセッサ90は、被選択チャネルRC(z)の要求チャネル・パラメータを取り出して読み取る。
【0092】
例えば、本発明の範囲を制限することなく、チャネル・パラメータは、PD(k)から構成できる。ATM通信プロトコルに従って送られるデータ・ストリームを受信するときには、第1プロセッサ90は、セルのヘッダを読み取ることができる。ヘッダは、アドレスを含み、これは、仮想接続(CV)に関連する。このアドレスは、段階1018の間に、チャネル・パラメータが読み取られるチャネルを定義する。高速イーサネット(登録商標)通信プロトコルに従ってデータ・ストリームを受信する間、第1プロセッサ90は、衝突が存在したか、予め決められた時間枠内に衝突が現れたかをチェックし、答えが「イエス」の場合には、通信コントローラ111は、第1プロセッサが、RC(z)へのデータ送信を含むタスクを実行するときに、受信した情報を無視するか、またはデータ・ストリームを再送信する。答えが「ノー」の場合には、第1プロセッサ90は、エラー信号を第2プロセッサ100に送出する。
【0093】
経路1016に示されるように、段階1014は段階1018に続く。段階1018の間、第1プロセッサは、通信チャネル・パラメータを取り出す。第1プロセッサ90は、通信コントローラ111によって受信(または送信)されるデータ・ワードが、通信フレーム内の最初のデータ・ワードであるかチェックする。答えがイエスであれば、段階1018は段階1022に続き、ノーである場合には段階1030に続く。通常、通信チャネル・パラメータは、データ・ワードがフレーム内の最初であるかどうかを示すフィールドからなる。例えば、ATM通信プロトコルに従ってセルを受信するとき、この表示が、セルのヘッダ内に見出される。
【0094】
経路1020に示されるように、段階1018は段階1022に続く。段階1022の間、第1プロセッサ90は、DP(k)に従ってBF(k)を取り出し、これは、以前に取り出されたものである。第1プロセッサ90は、CC(k)から受け取ったデータ・ワードをBF(k)の始まりに書き込むことを開始するので、TMP(k)はPT(k)の値を得る。
【0095】
経路1024に示されるように、段階1022は段階1026に続く。段階1026の間、第1プロセッサは、FSB(k)を読み取る。当該ビットが設定される場合には、第1プロセッサ90は、BF(k)にアクセスできない。適切には、第1プロセッサ90は、第2プロセッサ100がRSB(k)をリセットするまで待機し、他のバッファ記述子へのデータ書き込みを試行しないが、これは必ずしも必要ない。経路1028に示されるように、FSB(k)がリセットされるとき、第1プロセッサは、段階1030の間、TMP(k)を取り出す。TMP(k)は、被受信データ・ワードが、格納されるアドレス(または送信するデータ・ワードのアドレス)を指す。
【0096】
経路1032に示されるように、段階1030は段階1034に続く。通信コントローラ111が、周辺装置を介して、CC(k)からデータを受信する間、段階1034が実行される場合には、1つまたは複数のデータ・ワードが、CC(k)から第1メモリ・バンク70に送られ、ついで、第1メモリ・バンク70から、TMP(k)により示されるアドレスに送られる。通信コントローラ111が、周辺装置を介して、CC(k)にデータを送出する間、段階1034が実行される場合には、1つまたは複数のデータ・ワードが、TMP(k)により示されるアドレスから、第1メモリ・バンク70に送られ、ついで、第1メモリ・バンク70から、CC(k)に送られる。図8により説明されるように、BTM40は、CC(k)と第1メモリ・バンク70との間のデータの送信を処理する。
【0097】
経路1036に示されるように、段階1034は問い合せ段階1038に続く。
【0098】
問い合せ段階の間、第1プロセッサ90は、段階1034の間に、BF(k)内に格納された(BF(k)から送られた)1つまたは複数のデータ・ワードが、フレーム内の最後のデータ・ワードだったか否か、およびBF(k)が一杯(空)であるか否かをチェックする。
【0099】
経路1048に示されるように、両方の質問に対する答えが「ノー」である場合には、段階1038は段階1046に続く。段階1046の間、TMP(k)が増加し、BF(k)内の空のデータ・ワードを指すようにし(CC(k)に送信される次のデータ・ワード)、TMP(k)によって以前示されたメモリ・ワードに続く。経路1056に示されるように、段階1046は段階1034に続く。
【0100】
経路1044に示されるように、BF(k)の状態に関係なく、データ・ワードがフレームの終わりである場合には、問い合せ段階1038は段階1050に続く。段階1050の間、第1プロセッサ90は、フレーム指示の終わりを第2プロセッサ100に送出し、FSB(k)を設定することによってBD(k)をクローズし、通信チャネル・パラメータを更新する。この更新は、次の記述子ポインタDP(k+1)によって、DP(k)を置き換える段階を含むことができる。
【0101】
例えば、これは、ATM AL5通信プロトコルに従ってデータ・ストリームを受信すること(ATM通信プロトコルの部分集合)であるとき、第1プロセッサ90は、フレームの送信中、エラーがあったことをCRCチェックが示したかどうか、またその場合、第2プロセッサに割り込みを送信するかどうかをチェックしなければならない。第1プロセッサ90はまた、最後のセルの長さをチェックして、LW(k)を更新することができる。
【0102】
経路1040に示されるように、BF(k)が一杯(通信コントローラ111からの被送信データ・ワードのときには空)である場合には、段階1038は、段階1042に続く。段階1042の間、第1プロセッサ90は、FSB(k)を設定し、通信チャネル・パラメータを更新することによって、BD(k)をクローズする。この更新は、DP(k)を、次の記述子ポインタDP(k+1)と置き換える段階を含めることができる。
【0103】
図13は、本発明の好適な実施例による種々の受信/送信要求に対する第1プロセッサの応答を示すタイミング図である。
【0104】
信号PR1は、第1プロセッサ90による第1タスクT(1)の実行を表す。信号PR2は、第1プロセッサ90による第2タスクT(2)の実行を表し、信号PR3は、第1プロセッサ90による第3タスクT(3)の実行を表す。第1タスクT(1)は、第2タスクT(2)よりも優先順位が高く、第3タスクT(3)は、第2タスクT(2)よりも優先順位が低い。
【0105】
遷移1560,1561に示されるように、第1プロセッサ90は、第1タスクT(1)が、外部メモリ・バンク110から情報を取り出す必要があるまで、第1タスクT(1)を実行することを開始する。第1タスクT(1)は、優先順位が高いので、第2および第3タスクT(2)およびT(3)の前に実行される。遷移1561に示されるように、第1プロセッサ90は、DMA要求を第1DMA60に送り、タスク・スイッチを実施する。第1プロセッサ90は、タスクT(1)の実行を停止し、遷移15611570に示されるように、タスクT(2)の実行を開始する。DMA要求は、遷移1562の前に実施され、そうでなければ、第1タスクT(1)に関連する要求チャネルからの要求は非アクティブとなり、第1プロセッサは、タスクT(1)を実行しない。
【0106】
遷移1561の後、第1プロセッサ90は、第1タスクT(1)を実行したのと同じ方法で、第2タスクT(2)の実行を開始する。第2タスクT(2)は、遷移1570,1571に示されるように、外部メモリ・バンク110から情報を取り出す必要があるまで、実行される。遷移15711580に示されるように、第1プロセッサ90はついで、タスク・スイッチを実施し、すなわち、第2タスクT(2)の実行を停止し、第1および第2タスクT(1),T(2)を実行したのと同じ方法で、第3タスクT(3)の実行を開始する。遷移1580,1581に示されるように、第3タスクT(3)は、外部メモリ・バンク110から情報を取り出す必要があるまで、実行される。遷移1581の後、第1プロセッサは、要求があるかどうかをチェックし、すべての受信/送信要求が非アクティブとなるので、第1プロセッサ90は、第1タスクT(1)に関連するDMA要求が終了するまで待機し、ついで、経路1562に示されるように、第1タスクの実行を続行する。
【0107】
第1タスクT(1)は、遷移1560と1561、遷移1562と1563,遷移1564と1565および遷移1566と15687の間、実行される。遷移1561と1562、1563と1564,1565と1566の間、第1DMA60は、第1タスクT(1)に関連するDMA要求を実行した。第2タスクT(2)は、遷移1570と1571、遷移1572と1573との間で実施される。遷移1571と1572の間、第1DMA60または第2DMA160は、第2タスクT(2)に関連するDMA要求を実行した。第3タスクT(3)は、遷移1580と1581、遷移1582と1583、遷移1584と1585、1586と1587の間、実行される。遷移1581と1582、遷移1583と1584、遷移1585と1586の間、第1DMA60は、第3タスクT(3)に関連するDMA要求を実行した。
【0108】
図14は、本発明の好適な実施例による、種々の受信/送信要求に対する第1プロセッサの応答を示すタイミング図である。
【0109】
図11により詳細に説明されるように、信号PR1は、第1プロセッサ90による第1タスクT(1)の実行を表す。第1プロセッサは、遷移1560と1561,1562と1563,1564と1565,1566と1567の間で、第1タスクT(1)を実行する。遷移1561,1563,1565は、外部メモリ・バンクまたは他の外部装置から情報を取り出す必要性によって通常生じるタスク・スイッチを示す。
【0110】
信号CR1は、CR(z)から送られる受信/送信要求をあらわす。遷移1590により示されるように、第1プロセッサ90が、第1タスクT(1)の実行を終了するまで、当該要求はアクティブである。
【0111】
信号R1は、スケジューラ50に入力されるマスク信号を表す。遷移1591により示されるように、第1タスクT(1)が、外部メモリ・バンク110から情報を取り出す必要があるとき、第1プロセッサ90は、DMA要求を第1DMA60または第2DMA160に送出し、ディスエーブル信号をスケジューラ50に送出する。このディスエーブル信号は、信号R1をリセットする。図4により詳細に説明されるように、第1DMA60または第2DMA160が、RC(z)の結果生じるすべてのDMA要求を実行した後、イネーブル信号をスケジューラ50に送出する。このイネーブル信号は、遷移1592により示されるように、信号R1をセットする。遷移1592は、遷移1562の前提条件である。RC(z)に関連するDMA要求が十分実行されない限り、第1プロセッサ90は、第1タスクT(1)を処理しない。
【0112】
DMA要求は、遷移1562に先立って実施され、実施されない場合には、第1タスクT(1)に関連する要求チャネルからの要求はいずれも非アクティブとなり、第1プロセッサは、タスクT(1)からの命令の実行を再開しない。
【0113】
遷移1592,1594,1596に示されるように、R1信号は、第1DMA60が、RC(z)に関連するDMA要求の実行を終了した後、設定される。遷移1593,1595により示されるように、信号R1は、RC(z)に関連するDMA要求を実行する必要があるときにリセットされる。
【0114】
遷移1597に示されるように、第1プロセッサ90が第1タスクT(1)の実行を終了するときに、R1はリセットされる。
【0115】
このため、データ・プロセッサ命令をグループ化するための改良された方法と装置の少なくとも1つの好適な実施例と、命令システムの実施例を含む実施例が本明細書に記述された。当業者には、本発明の主題が種々の方法で変更でき、上記に特に記載された好適な形態以外にも、多くの実施例を想定できることが明らかであろう。したがって、上記に開示された本発明の主題は、説明のためのものであって制限的なものではなく、法律に認められる最大の範囲まで、添付請求の範囲は、本発明の真正の意図および範囲に属する当該すべての変更およびその他の実施例を包含することが意図される。本発明の範囲は、上述の詳細な説明ではなく、添付請求の範囲、ならびにこれと同等のものの許容できる最も広範な解釈によって判断される。
【図面の簡単な説明】
本発明は、添付請求の範囲内に詳しく示されるが、本発明の他の特徴は、添付図面とあわせて、上記の詳細な説明によって開示される。
【図1】 先行技術による旧通信チャネル,旧外部メモリおよび旧通信コントローラの簡易概略図である。
【図2】 先行技術による旧外部メモリ・バンクの一部分および旧外部メモリ・バンクの一部分の概略図である。
【図3】 本発明の好適な実施例による通信チャネル,外部メモリ・バンクおよび通信コントローラの概略図である。
【図4】 本発明の好適な実施例による第1直接メモリ・アクセス・コントローラの制御セクションの概略図である。
【図5】 本発明の好適な実施例による第1直接アクセス・メモリ・コントローラのバッファ・セクションの概略図である。
【図6】 本発明の一実施例によるイネーブル装置,スケジューラおよびマスキング論理の概略図である。
【図7】 本発明の好適な実施例によるスケジューラの概略図である。
【図8】 本発明の好適な実施例によるブロック転送マシンの概略図である。
【図9】 本発明の好適な実施例による第1メモリ・バンクの概略図である。
【図10】 本発明の好適な実施例による第1メモリ・バンク内のメモリ・バンクの1つの概略図である。
【図11】 本発明の好適な実施例によりタスクを実行し、タスク・スイッチを実施する方法の好適な実施例を示すフローチャートである。
【図12】 本発明の好適な実施例により、受信または送信要求によって起動されたタスクを実行する方法の好適な実施例を示すフローチャートである。
【図13】 本発明の好適な実施例により、種々の受信/送信要求に対する第1プロセッサの応答を示すタイミング図である。
【図14】 本発明の好適な実施例により種々の受信/送信要求に対する第1プロセッサの応答を示すタイミング図である。

Claims (17)

  1. 高速データ・ストリームを受信,送信,および処理するための高速通信コントローラ(111)であって、前記データ・ストリームはフレームからなり、前記通信コントローラは複数の通信チャネルに結合するように対応しており、前記通信コントローラは、
    データ・ストリーム・トランザクションを制御する第1プロセッサであって、前記第1プロセッサは、タスクを実行することにより、フレームのトランザクションを制御する、第1プロセッサ(90)と、
    前記第1プロセッサ(90)を初期化し、および通信プロトコル機能を処理するための第2プロセッサ(100)と、
    前記第1プロセッサに結合され、タスクを実行する必要性があるかどうかを検出するため、かつ前記第1プロセッサにより実行される被選択タスクを選択するためのスケジューラ(50)と、を含み、
    前記通信コントローラ(111)は、第1および第2外部バス(113,114)に結合されるように対応付けられ、および前記第1プロセッサ(90)を前記第2外部バス(114)を介して前記第2プロセッサ(100)に結合するためのインターフェイス(160)を有しており、かつ、
    前記第1プロセッサ(90)は、タスクの実行が前記第1または第2外部バス(113,114)に結合された外部メモリ・バンク(110)から情報をフェッチすることを含む場合、前記タスクを実行するために停止するように配置されている
    ことを特徴とする高速通信コントローラ(111)。
  2. 前記第1プロセッサに結合され、タスクを格納するための命令メモリ・バンク(130)と、
    前記第1プロセッサに結合され、前記第1プロセッサにより処理されるデータを格納するための第1メモリ・バンク(70)と、
    前記第1プロセッサおよび前記第1外部バスに結合され、前記第1外部バスに結合される外部メモリ・バンク内に格納された情報を取り出すための第1直接メモリ・アクセス・コントローラ(60)と、
    前記第1プロセッサおよび前記第2外部バスに結合され、前記第2外部バスに結合される外部メモリ・バンク内に格納された情報を取り出すための第2直接メモリ・アクセス・コントローラ(160)と、
    前記スケジューラおよび前記第1メモリ・バンクに結合され、前記複数の通信チャネルと前記第1メモリ・バンクとの間でバッファリングするための複数の周辺装置(140)と、
    をさらに含むことを特徴とする請求項1記載の通信コントローラ(111)。
  3. 前記スケジューラ(50)は、複数のスタック・ポインタを格納し、
    スタック・ポインタは、タスクと関連し、
    前記スケジューラは、前記第1プロセッサに被選択スタック・ポインタを送出し、前記被選択スタック・ポインタは、前記被選択タスクと関連し、
    タスクの実行は、前記被選択スタック・ポインタの更新を含み、
    前記第1プロセッサは、前記第1プロセッサが前記被選択タスクの実行を停止するときに、前記更新された被選択スタック・ポインタを前記スケジューラに送出する、
    ことを特徴とする請求項2記載の通信コントローラ(111)。
  4. 周辺装置(140)と、
    前記スケジューラ(50)および前記周辺装置(140)に結合された周辺バス(112)と、
    をさらに含むことを特徴とする請求項3記載の通信コントローラ(111)。
  5. 周辺装置(140)は、2つの要求チャネルを有し、
    第1要求チャネルは、前記通信コントローラから通信チャネルに送られた前記データの送信を処理し、
    第2要求チャネルは、通信チャネルから前記通信コントローラに送られる前記データの受信を処理し、
    前記第1要求チャネルが前記通信チャネルに送られるデータを受信できるとき、前記第1要求チャネルは、前記スケジューラに送信要求を送出し、
    前記第2要求チャネルが通信チャネルからデータを受信したとき、前記第2要求チャネルは、前記スケジューラに受信要求を送出する、
    ことを特徴とする請求項4記載の通信コントローラ(111)。
  6. 前記スケジューラ(50)は、
    前記周辺装置に結合され、送信要求および受信要求を受け取り、かつ被選択要求を選択するための要求セレクタ(56)と、
    複数のスタック・ポインタを格納するための複数のスタック・ポインタ・レジスタ(541−548)と、
    前記複数のスタック・ポインタ・レジスタおよび前記第1プロセッサに結合され、前記複数のスタック・ポインタ・レジスタにスタック・ポインタを書き込むためのスタック・ポインタ入力マルチプレクサ(52)と、
    前記複数のスタック・ポインタ・レジスタ,前記第1プロセッサ、および前記要求セレクタに結合され、前記被選択スタック・ポインタを前記第1プロセッサに送出するためのスタック・ポインタ出力マルチプレクサ(58)と、
    を含むことを特徴とする請求項5記載の通信コントローラ(111)。
  7. 前記第1直接メモリ・アクセス・コントローラ(60)は、
    前記第1プロセッサに結合され、複数の直接メモリ・アクセス要求を格納するための直接メモリ・アクセス要求待ち行列(62)と、
    前記第1直接メモリ・アクセス要求待ち行列および前記スケジューラに結合され、前記第1直接メモリ・アクセス・メモリ・コントローラ内に格納された前記直接メモリ・アクセス要求に関連する第1要求チャネルからの送信要求をマスクするため、かつ前記第1直接メモリ・アクセス・メモリ・コントローラ内に格納された前記直接メモリ・アクセス要求に関連する第2要求チャネルからの受信要求をマスクするためのイネーブル装置(64)と、
    を含むことを特徴とする請求項6記載の通信コントローラ(111)。
  8. 前記第1直接メモリ・アクセス・コントローラは、
    直接メモリ・アクセス要求を格納するための要求バイパス・レジスタ(68)と、
    前記直接メモリ・アクセス要求待ち行列内または前記要求バイパス・レジスタ内に、直接メモリ・アクセス要求を格納すべきか否かを決定するための入力マルチプレクサ(66)と、
    前記第1メモリ・バンク,前記直接メモリ・アクセス要求待ち行列、および前記バイパス要求レジスタに結合され、前記要求バイパス・レジスタが有効な直接メモリ・アクセス要求を格納する場合には、前記要求バイパス・レジスタ内に格納される前記直接メモリ・アクセス要求を選択するための出力マルチプレクサ(69)と、
    をさらに含むことを特徴とする請求項7記載の通信コントローラ(111)。
  9. 前記直接メモリ・アクセス要求待ち行列(62)は、複数のメモリ・ワードを有し、
    各メモリ・ワードは、第1部分と第2部分とを有し、
    前記第2部分は、直接メモリ・アクセス要求を格納するためにあり、
    前記第1部分は、ラベルを格納するためにあり、前記ラベルは、前記第2部分内に格納された前記直接メモリ・アクセス要求に関連する前記要求チャネルを示す、
    ことを特徴とする請求項8記載の通信コントローラ(111)。
  10. 第1直接メモリ・アクセス・コントローラ(60)内の前記イネーブル装置(64)が第1要求チャネルからの送信要求をマスクするとき、前記第1要求チャネルからの送信要求がマスクされ、
    前記第1直接メモリ・アクセス・コントローラ(60)内のイネーブル装置が第2要求チャネルからの受信要求をマスクするとき、前記第2要求チャネルからの受信要求がマスクされる、
    ことを特徴とする請求項7記載の通信コントローラ(111)。
  11. 前記周辺装置から前記第1メモリ・バンクに、かつ前記第1メモリ・バンクから前記周辺装置にデータを転送するためのブロック転送マシン(40)をさらに有する通信コントローラ(111)において、
    前記ブロック転送マシンは、
    前記周辺装置に結合され、データを操作するためのデータ・マニピュレータ(44)と、
    前記周辺装置に結合され、CRCチェックを実行するためのCRCマシン(48)と、
    前記CRCマシン,前記データ・マニピュレータ,および前記第1メモリ・バンクに結合され、前記第1メモリ・バンクから前記周辺装置に送られるデータを格納し、前記第1メモリ・バンクに書き込まれるデータを格納するためのブロック転送マシン・データ・レジスタ(41)と、
    前記CRCマシン,前記データ・マニピュレータ,および前記ブロック転送マシン・データ・レジスタに結合され、前記ブロック転送マシンを制御するためのブロック転送マシン制御装置(46)と、
    を含むことを特徴とする請求項10記載の通信コントローラ(111)。
  12. 前記第1メモリ・バンクは、複数のセクション(701−708)を有し、各セクションは、前記第1プロセッサ,前記第2プロセッサ,前記直接メモリ・アクセス・コントローラ,前記第2直接メモリ・アクセス・コントローラ,および前記ブロック転送マシンに結合され、各セクションは、
    情報を格納するためのメモリ・アレイと、
    前記第1プロセッサ,前記第2プロセッサ,前記直接メモリ・アクセス・コントローラ,前記第2直接メモリ・アクセス・コントローラ,および前記ブロック転送マシンから、被選択装置を選択するためのメモリ・セレクタと、
    前記被選択装置と前記メモリ・アレイとの間で前記データの送信を可能にするためのデータ・マルチプレクサと、
    前記被選択装置が前記メモリ・アレイにアドレス・ワードを送出できるようにするためのアドレス・マルチプレクサと、
    を含むことを特徴とする請求項11記載の通信コントローラ(111)。
  13. 外部メモリ・バンク内のバッファに格納されたデータを処理するためにさらに対応する通信コントローラ(111)において、
    前記通信コントローラ(111)は、ポインタ,状態および制御フィールド,および長さフィールドからなる少なくとも1つのバッファ記述子を前記外部メモリ・バンクから取り出し、かつ処理するために対応しており、
    前記ポインタは、前記外部メモリ・バンク内のバッファを指し、
    前記長さフィールドは、前記ポインタによって参照される前記バッファの長さを定義し、
    前記状態および制御ワードは、F/Sフィールドを有し、前記第1プロセッサと前記第2プロセッサのうちどちらが前記ポインタにより参照される前記バッファにアクセスできるかを示す、
    ことを特徴とする請求項5記載の通信コントローラ(111)。
  14. 前記通信コントローラ(111)は、ラップ・フィールドを有する前記バッファ記述子により参照される前記バッファが要求チャネルと関連する一組のバッファ中の最終バッファであるかどうかを示すために、前記ラップ・フィールドを取り出し、かつ循環待ち行列を形成するために対応しており、
    前記第1メモリ・バンクは、一時ポインタを格納し、
    一時ポインタは、前記第1プロセッサにより処理される次のメモリ・ワードを指し、
    バッファは、単一のデータ・フレームからのデータを格納し、
    各バッファは、複数のメモリ・ワードからなる、
    ことを特徴とする請求項13記載の通信コントローラ(111)。
  15. 前記第1プロセッサ(90)は、前記バッファ記述子により参照される前記バッファが前記第1プロセッサによって処理された後、前記F/Sフィールドを設定し、
    前記第2プロセッサ(100)は、前記バッファ記述子により参照される前記バッファが前記第2プロセッサにより処理された後、前記F/Sフィールドをリセットする、
    ことを特徴とする請求項14記載の通信コントローラ(111)。
  16. 前記第1プロセッサがタスク・スイッチを実行するとき、前記第1メモリ・バンク内に前記更新された一時ポインタを保存し、
    前記第1プロセッサがタスクからの命令の実行を開始するとき、前記第1プロセッサは、前記一時ポインタを取り出す、
    ことを特徴とする請求項14記載の通信コントローラ(111)。
  17. 通信コントローラによってデータ・ストリームのトランザクションを処理するための方法(900)において、前記データ・ストリームはフレームからなり、フレームのトランザクションはタスクの実行によって処理され、タスクの実行は外部装置から情報を取り出す段階を含み、前記方法は、
    トランザクションを処理する必要があるかどうかチェックする段階(910)と、
    トランザクションを処理する必要がある場合には、前記タスクが終了するまで、または外部装置から情報を取り出す必要があるまで、タスクを実行する段階(920)と、
    前記タスクが終了する場合には、前記トランザクションを処理する必要があるかどうかチェックする段階にジャンプする段階と、
    外部装置から情報を取り出す必要がある場合には、外部装置から情報を取り出す段階を含む前記タスクの実行を停止する段階と、前記外部装置からの前記情報を取り出し(970)、および前記トランザクションを処理する必要があるかどうかチェックする段階にジャンプするプロセスを開始する段階と、
    を含むことを特徴とする方法(900)。
JP2000609900A 1999-04-02 2000-03-14 高性能通信コントローラ Expired - Lifetime JP4530547B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US09/285,519 US6473808B1 (en) 1999-04-02 1999-04-02 High performance communication controller for processing high speed data streams wherein execution of a task can be skipped if it involves fetching information from external memory bank
US09/285,519 1999-04-02
PCT/IB2000/000698 WO2000060477A2 (en) 1999-04-02 2000-03-14 High performance communication controller

Publications (3)

Publication Number Publication Date
JP2002541693A JP2002541693A (ja) 2002-12-03
JP2002541693A5 JP2002541693A5 (ja) 2007-03-29
JP4530547B2 true JP4530547B2 (ja) 2010-08-25

Family

ID=23094597

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000609900A Expired - Lifetime JP4530547B2 (ja) 1999-04-02 2000-03-14 高性能通信コントローラ

Country Status (7)

Country Link
US (1) US6473808B1 (ja)
EP (1) EP1177504A2 (ja)
JP (1) JP4530547B2 (ja)
KR (1) KR100638067B1 (ja)
CN (1) CN1149806C (ja)
TW (1) TW478264B (ja)
WO (1) WO2000060477A2 (ja)

Families Citing this family (42)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6748466B2 (en) * 2001-06-29 2004-06-08 Intel Corporation Method and apparatus for high throughput short packet transfers with minimum memory footprint
US7216186B2 (en) * 2001-09-27 2007-05-08 Intel Corporation Controlling data flow between processor systems
US7158542B1 (en) 2002-05-03 2007-01-02 Atheros Communications, Inc. Dynamic preamble detection
JP2003331749A (ja) * 2002-05-17 2003-11-21 Hitachi Displays Ltd カラー陰極線管
US7139862B2 (en) * 2003-02-24 2006-11-21 Nokia Corporation Interleaving method and apparatus with parallel access in linear and interleaved order
KR100553348B1 (ko) * 2004-05-31 2006-02-20 한국전자통신연구원 피엠이엠 제어기를 이용한 고속 스트리밍 데이터 전송장치 및 방법
US20070094432A1 (en) * 2005-10-24 2007-04-26 Silicon Integrated Systems Corp. Request transmission mechanism and method thereof
US8768778B2 (en) 2007-06-29 2014-07-01 Boku, Inc. Effecting an electronic payment
GB0809381D0 (en) * 2008-05-23 2008-07-02 Vidicom Ltd Funds transfer electronically
GB0809386D0 (en) * 2008-05-23 2008-07-02 Vidicom Ltd Transferring funds electronically
GB0809383D0 (en) 2008-05-23 2008-07-02 Vidicom Ltd Customer to supplier funds transfer
GB0809382D0 (en) * 2008-05-23 2008-07-02 Vidicom Ltd Funds transfer electronically
JP5195408B2 (ja) * 2008-12-25 2013-05-08 富士通セミコンダクター株式会社 マルチコアシステム
US9652761B2 (en) 2009-01-23 2017-05-16 Boku, Inc. Systems and methods to facilitate electronic payments
US8041639B2 (en) * 2009-01-23 2011-10-18 Vidicom Limited Systems and methods to facilitate online transactions
US8116730B2 (en) * 2009-01-23 2012-02-14 Vidicom Limited Systems and methods to control online transactions
US8548426B2 (en) * 2009-02-20 2013-10-01 Boku, Inc. Systems and methods to approve electronic payments
US9990623B2 (en) 2009-03-02 2018-06-05 Boku, Inc. Systems and methods to provide information
US8700530B2 (en) 2009-03-10 2014-04-15 Boku, Inc. Systems and methods to process user initiated transactions
US8224727B2 (en) * 2009-05-27 2012-07-17 Boku, Inc. Systems and methods to process transactions based on social networking
US8160943B2 (en) * 2009-03-27 2012-04-17 Boku, Inc. Systems and methods to process transactions based on social networking
US8131258B2 (en) * 2009-04-20 2012-03-06 Boku, Inc. Systems and methods to process transaction requests
US20100306015A1 (en) * 2009-05-29 2010-12-02 Boku, Inc. Systems and Methods to Schedule Transactions
US9595028B2 (en) * 2009-06-08 2017-03-14 Boku, Inc. Systems and methods to add funds to an account via a mobile communication device
US9697510B2 (en) 2009-07-23 2017-07-04 Boku, Inc. Systems and methods to facilitate retail transactions
US9519892B2 (en) 2009-08-04 2016-12-13 Boku, Inc. Systems and methods to accelerate transactions
US8660911B2 (en) * 2009-09-23 2014-02-25 Boku, Inc. Systems and methods to facilitate online transactions
US8224709B2 (en) * 2009-10-01 2012-07-17 Boku, Inc. Systems and methods for pre-defined purchases on a mobile communication device
US8412626B2 (en) * 2009-12-10 2013-04-02 Boku, Inc. Systems and methods to secure transactions via mobile devices
US8566188B2 (en) 2010-01-13 2013-10-22 Boku, Inc. Systems and methods to route messages to facilitate online transactions
US8219542B2 (en) 2010-03-25 2012-07-10 Boku, Inc. Systems and methods to provide access control via mobile phones
US8583504B2 (en) * 2010-03-29 2013-11-12 Boku, Inc. Systems and methods to provide offers on mobile devices
US8355987B2 (en) 2010-05-06 2013-01-15 Boku, Inc. Systems and methods to manage information
EP2603891A4 (en) 2010-08-11 2018-01-03 Boku, Inc. Systems and methods to identify carrier information for transmission of premium messages
US8699994B2 (en) 2010-12-16 2014-04-15 Boku, Inc. Systems and methods to selectively authenticate via mobile communications
US8412155B2 (en) 2010-12-20 2013-04-02 Boku, Inc. Systems and methods to accelerate transactions based on predictions
US8583496B2 (en) 2010-12-29 2013-11-12 Boku, Inc. Systems and methods to process payments via account identifiers and phone numbers
US8700524B2 (en) 2011-01-04 2014-04-15 Boku, Inc. Systems and methods to restrict payment transactions
JPWO2012108411A1 (ja) 2011-02-10 2014-07-03 日本電気株式会社 符号化/復号化処理プロセッサ、および無線通信装置
WO2012148842A1 (en) 2011-04-26 2012-11-01 Boku, Inc. Systems and methods to facilitate repeated purchases
US9830622B1 (en) 2011-04-28 2017-11-28 Boku, Inc. Systems and methods to process donations
US9191217B2 (en) 2011-04-28 2015-11-17 Boku, Inc. Systems and methods to process donations

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4980820A (en) * 1985-02-28 1990-12-25 International Business Machines Corporation Interrupt driven prioritized queue
US5060140A (en) * 1986-01-16 1991-10-22 Jupiter Technology Inc. Universal programmable data communication connection system
US5193071A (en) * 1988-12-22 1993-03-09 Digital Equipment Corporation Memory apparatus for multiple processor systems
JPH05210481A (ja) * 1991-09-18 1993-08-20 Ncr Internatl Inc 直接アクセス式ビデオバス
US5721726A (en) * 1995-11-30 1998-02-24 Motorola, Inc. Transmission load control for multichannel HDLC TDM line

Also Published As

Publication number Publication date
WO2000060477A2 (en) 2000-10-12
TW478264B (en) 2002-03-01
JP2002541693A (ja) 2002-12-03
CN1346468A (zh) 2002-04-24
WO2000060477A3 (en) 2001-01-18
KR100638067B1 (ko) 2006-10-25
US6473808B1 (en) 2002-10-29
KR20010105407A (ko) 2001-11-28
CN1149806C (zh) 2004-05-12
EP1177504A2 (en) 2002-02-06

Similar Documents

Publication Publication Date Title
JP4530547B2 (ja) 高性能通信コントローラ
JP2539614B2 (ja) ポインタアドレスを発生するための装置および方法
US6163820A (en) Efficient data transfer mechanism for input/output devices
US8266353B2 (en) Serial advanced technology attachment (SATA ) switch
US6061687A (en) Linked lists of transfer descriptors scheduled at intervals
US6526462B1 (en) Programmable multi-tasking memory management system
US8200870B2 (en) Switching serial advanced technology attachment (SATA) to a parallel interface
US8156270B2 (en) Dual port serial advanced technology attachment (SATA) disk drive
US7502869B2 (en) Intelligent network interface system and method for accelerated protocol processing
US5043938A (en) Node controller for a local area network
US20040225779A1 (en) Programmable CPU/interface buffer structure using dual port RAM
US6691178B1 (en) Fencepost descriptor caching mechanism and method therefor
GB2349717A (en) Low latency network
US5911152A (en) Computer system and method for storing data in a buffer which crosses page boundaries utilizing beginning and ending buffer pointers
US5872962A (en) Program control system
US5961614A (en) System for data transfer through an I/O device using a memory access controller which receives and stores indication of a data status signal
US7313146B2 (en) Transparent data format within host device supporting differing transaction types
US7272151B2 (en) Centralized switching fabric scheduler supporting simultaneous updates
US6378017B1 (en) Processor interconnection
CN1234550B (zh) 一种输入/输出总线系统
JP2528879B2 (ja) 通信処理装置
JP3115801B2 (ja) 並列計算機システム
JP2002176464A (ja) ネットワークインタフェース装置
JP2009522901A (ja) 高速フレーミング方法およびフレーミング性能を有する装置
Qiao et al. Design of DMA controller for multichannel PCI bus frame engine and data link manager

Legal Events

Date Code Title Description
A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20041217

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20050411

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070123

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070123

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20091116

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100216

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: 20100517

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100608

R150 Certificate of patent or registration of utility model

Ref document number: 4530547

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20130618

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term