JP2000029826A - 多重レベルキャッシングを有する3ポ―トfifoデ―タバッファ - Google Patents

多重レベルキャッシングを有する3ポ―トfifoデ―タバッファ

Info

Publication number
JP2000029826A
JP2000029826A JP11030763A JP3076399A JP2000029826A JP 2000029826 A JP2000029826 A JP 2000029826A JP 11030763 A JP11030763 A JP 11030763A JP 3076399 A JP3076399 A JP 3076399A JP 2000029826 A JP2000029826 A JP 2000029826A
Authority
JP
Japan
Prior art keywords
fifo
ram
data
buffer
port
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
JP11030763A
Other languages
English (en)
Inventor
Gregory A Hill
グレゴリー・エイ・ヒル
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.)
HP Inc
Original Assignee
Hewlett Packard Co
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 Hewlett Packard Co filed Critical Hewlett Packard Co
Publication of JP2000029826A publication Critical patent/JP2000029826A/ja
Pending legal-status Critical Current

Links

Classifications

    • 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
    • G06F5/06Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor
    • G06F5/10Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor having a sequence of storage locations each being individually accessible for both enqueue and dequeue operations, e.g. using random access memory
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • H04L12/40052High-speed IEEE 1394 serial bus
    • H04L12/40123Interconnection of computers and peripherals

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Transfer Systems (AREA)
  • Communication Control (AREA)
  • Multi Processors (AREA)

Abstract

(57)【要約】 【課題】標準規格品のスタティックRAM、及び多重レヘ゛ルキャッシンク゛
方式における専用品の浅い、例えば、16ワート゛のFIFOを使
用する3ホ゜ートFIFOハ゛ッファ回路を提供する。 【解決手段】3ホ゜ートFIFOハ゛ッファ回路は、多重で再構成可能
な、深い(例えば32Kワート゛までの)FIFOハ゛ッファを結果とし
て構成する。本発明の好ましい実施態様によれば、1ハ゛ン
クの32Kワート゛RAM(14)、6つのテ゛ュアルホ゜ート16ワート゛FIFO(23-2
8)、及び関連するシーケンスロシ゛ック(30)からなるハ゛ッファが提供
される。このシーケンスロシ゛ックは、6個のFIFOの各々に関連す
るRAMアト゛レスレシ゛スタ/カウンタ(33-38)を備え、RAMへの、及びRA
Mからのテ゛ータの移動を管理する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、異なるデータ転送
速度を有するシステム要素間の電子ネットワークにおけ
る情報転送に関するものである。より詳細には、本発明
は、多重レベルキャッシングを有する3ポートFIFO
データバッファに関するものである。
【0002】
【従来の技術】速度および量の両方に関して情報を移動
する必要性が増大するに伴って、様々なデータ転送技術
が進歩した。Firewire(ファイヤワイヤ)(IEEE 139
4)仕様は、1つの有望な技術を提供する。Firewireに
ついて提案された実際のデータ速度(すなわち、いずれ
の符号化方式にも依存しない)は、〜100メガビット
/秒の倍数である。
【0003】Firewireが〜43メガビット/秒のデータ
転送速度を持つ同期シリアルバスを提供する一方、Fire
wireを具備する一般的なシステム内に提供することがで
きる他のプロトコルは、異なるデータ転送の特性を有す
る。たとえば、VME/VXIは0〜80メガビット/
秒のデータ転送速度を持つ非同期パラレルバスを提供す
る。
【0004】一般に、前述のバスの第1バス上の装置か
らその第1バスそれ自体を通って、直接のインターフェ
ースを介して第2バスを通り、この第2バス上のターゲ
ット装置に直接データを転送することはできない。さら
に、Firewire(IEEE 1394)のパケット指向プロトコル
には、他のプロトコルと整合しない可能性のある各パケ
ットに関するCRC検査が含まれる。
【0005】
【発明が解決しようとする課題】このようなデータ転送
を提供するため、インターフェース装置は少なくとも多
少のバッファリング能力を組み込んでいなければならな
い。
【0006】バス間の高速データ転送、Firewire制御装
置とインターフェース装置制御処理装置間の構成メッセ
ージ、プロトコル転送に基づくFirewireパケットからVX
Iバスメッセージへの文字列変換、およびVME/VX
I装置からFirewire制御装置への非同期割込を取り扱う
のに十分柔軟なデータバッファを提供することは利点で
ある。
【0007】
【課題を解決するための手段】本発明は、標準規格品で
あるスタティックRAM、および多重レベルキャッシン
グ方式の、たとえば16ワードの浅い専用FIFOを使
用する、3ポートFIFOバッファ回路を提供する。こ
の回路は、結果として、多重で再構成可能な(たとえば
32kワードまでの)深いFIFOバッファを構成す
る。
【0008】本発明の好ましい実施形態は、1バンクの
32kワードRAM、6個のデュアルポート16ワード
FIFO、および関連するシーケンスロジックを備える
バッファを提供する。シーケンスロジックは、6個のF
IFOの各々に関連するRAMアドレスレジスタ/カウ
ンタを含み、RAM内への、およびRAM外へのデータ
の移動を管理する。
【0009】3個のポートのうちの1つからRAMバッ
ファ内にデータを移動するため、処理装置はまず制御ロ
ジック(制御論理回路)に、そのポートの入力FIFO
をクリア、すなわち空にし、関連するシーケンスロジッ
クを使用不能にするよう指示する。その後処理装置は、
そのFIFOのアドレスカウンタにアドレスを書き込
み、バッファ用の開始RAMアドレスを設定する。次に
処理装置は、入力FIFOに関するシーケンスロジック
(以下では、シーケンサとも称する)を使用可能にす
る。シーケンスロジックは、データをRAMに移動する
ことによってFIFOを空のまま保持しようとする。関
連する外部装置が入力FIFOにデータを書き込む時、
シーケンサはFIFOが空でないことを検出する。同期
アービタは同時RAMアクセスを解決する。各RAM書
き込み後に、シーケンサはFIFOのRAMアドレスカ
ウンタを増分する。
【0010】RAMバッファから3個のポートのうちの
1つにデータを移動するため、処理装置はまず制御ロジ
ックに、そのポートの出力FIFOをクリア(すなわち
空に)し、関連するシーケンスロジックを使用不能にす
るよう指示する。その後処理装置は、FIFOのアドレ
スカウンタにバッファの開始アドレスを書き込む。次に
処理装置は、出力FIFOに関するシーケンスロジック
を使用可能にする。次にシーケンサは、連続するRAM
バッファアドレスからのデータで出力FIFOを満た
す。次にシーケンスロジックは、データをRAMから移
動することによってFIFOをフルのまま保持しようと
する。関連する外部装置が出力FIFOからデータを読
み取る時、シーケンサはFIFOがフルでないことを検
出する。FIFOがフルでない時、シーケンサはFIF
Oが再びフルになるまでRAMから出力FIFOにデー
タを移動する。同期アービタは同時RAMアクセスを解
決する。各RAM読み取り後に、シーケンサはFIFO
のRAMアドレスカウンタを増分する。
【0011】
【発明の実施の形態】Firewireは、装置間でデータパケ
ットを転送するマルチマスタシリアルデータバスのため
のプロトコルを提供する。これらのパケットは様々なフ
ォーマットを持つ。本発明は、たとえばWrite Request
for Data Block(データブロックに対する書込要求)お
よびRead Response for Data Block(データブロックに
対する読取応答)などの、ヘッダとデータブロックのペ
イロードの両方を有する所定のパケットの取り扱いを容
易にする。本発明は、Firewireのデータヘッダを内部で
記憶し解析することができ、そのデータブロックを専用
インターフェースを介して移動することができる、Link
Layer Controller(リンクレイヤ制御装置)(LL
C)と共に動作する。本発明は、標準規格品であるスタ
ティックRAM、および多重レベルキャッシング方式
の、たとえば16ワードの浅い専用FIFOを使用す
る、3ポートFIFOバッファ回路を提供する。この回
路は、結果として、多重で再構成可能な(たとえば32
kワードまでの)深いFIFOバッファを構成する。
【0012】図1は、本発明による多重レベルキャッシ
ングを有する3ポートFIFOバッファのブロック図で
ある。図1に示すように、LLC12、VME/VXI
インターフェースハードウェア(VXI−IF)10、
状態マシンもしくは好ましくはプログラム式マイクロプ
ロセッサ処理装置(MPU)18などの処理装置、RA
M14、およびバッファ管理ロジック(BML)16を
使用して、FirewireのVME/VXIへのインターフェ
ース装置を構成することができる。
【0013】データブロックのペイロードパケットの一
つを受信するときは、LLCは着信パケットヘッダを内
部に記憶し、データパケットをBMLに送信し、MPU
に通知する。BMLはデータパケットをRAM内に記憶
する。MPUは、LLCからFirewireヘッダを読み取
る。次に、データブロックの処置を決定するため、動作
時により高いレベルのプロトコルに従って、MPUがR
AMからデータの最初の数ワードを読み取ることもでき
る。次にMPUは、データブロックの残りを読み取る
か、あるいはBMLおよびVXI−IFに、データブロ
ックをVXI装置に転送するよう指示する。いくつかの
場合において、MPUが最初にデータブロックをまった
く読み取ることを必要とせずに、VXIバス装置への転
送を開始することもできる。
【0014】データブロックのペイロードパケットの送
信時は、MPUはFirewireヘッダ情報をLLCに書き込
み、次にデータをRAMに書き込み、及び/またはVX
I−IFおよびBMLにVXI装置からRAM内へデー
タを読み取るよう指示する。その後MPUはLLCにFi
rewireパケットを送信するよう指示する。
【0015】好ましい実施形態において、本発明はFire
wire、VME/VXI、およびマイクロプロセッサのイ
ンターフェースのうちの任意の2者間でデータブロック
を移動する。まず送信元インターフェースからRAM
に、次にRAMから送信先インターフェースにデータを
移動することによってこれを実現する。RAMからの転
送の開始前にRAMへの転送が完了すると想定される。
従って、オーバーランもしくは停止状態のシナリオを防
止するため、これらの転送を連動(インタロック)させ
る対応はしない。好ましい実施形態では、ローカルマイ
クロプロセッサが全体の処理を管理する。
【0016】たとえば、LLCからVXI−IFにデー
タブロックを移動するため、まずMPUは、BMLがL
LCから受信したデータワードをRAM内の開始アドレ
スAに移動することができるようにする。Mode Control
(モード制御)ラインを操作してこれを実現する。MP
U制御の書き込みレジスタからMode Control信号が得ら
れる(技術設計者は十分に理解している)。次にMPU
は、LLCがデータ転送を開始することができるように
する。パケットの受信時、LLCはFW_Write_Clock信号
でBML内への各ワードをクロックに同期させて、FW_D
ata信号線を介してデータを送信する。転送の終わりに
LLCがMPUに通知し、次にそれによって、RAMア
ドレスAで開始するデータのVXI読み取りに対してB
MLが使用可能となる。次にMPUは、BMLからデー
タワードを読み取りそれらをVXI装置に書き込むよ
う、VXI−IFを構成する。
【0017】同様の方法で、LLCからMPUに、VX
I−IFからLLCに、VXI−IFからMPUに、M
PUからLLCに、およびMPUからVXI−IFに、
データを移動することができる。
【0018】MPUが任意のデータ移動の開始アドレス
を指定することができるという事実は、いくつかの利点
をもたらす。たとえば、失敗したトランザクションを再
試行することができ、データブロックを追加したり分割
したりすることができ、複数のデータブロックをRAM
内に保持することができ、同時に発生し、オーバーラッ
プするトランザクションを可能にする。たとえば、VX
I−IFがRAMから1ブロックを読み取っている間
に、MPUが第2のRAM領域から読み取ることがで
き、さらにLLCが第3のRAM領域に他のブロックを
書き込むこともできる。
【0019】図2は、図1の多重レベルキャッシングを
有する3ポートFIFOバッファの詳細ブロック図であ
る。本発明の好ましい実施形態は、1バンクの32kワ
ードRAM14(図1)、6個のデュアルポート16ワ
ードFIFO23〜28、および関連するシーケンスロ
ジック20、22を備えるバッファを提供する。内部的
にはBML16が、各々がインターフェースポート(L
LC、VXI−IF、もしくはMPU)の1つで、入力
データか出力データのいずれかをキャッシングする、6
個の専用FIFO(図2参照)を備える。データはこれ
らのFIFO間を流れ、単に入力FIFOを空に、出力
FIFOをフルに保持しようとするRAMControl Logic
(RAM制御ロジック、RCL)22がRAMを統制する。
【0020】Firewire Input FIFO(ファイヤワイヤ入
力FIFO)23は、RAMへ転送するためLLCから
データを受信する。Mode Control信号FW_In_FIFO_Enabl
eが偽の時、FIFO 23をリセット状態に保持し、R
CLに対してFW_In_FIFO_Empty信号を真にすることによ
ってそれが空であることを示す。Mode Control信号FW_I
n_FIFO_Enableが真の時、FIFO 23はアクティブで
ある。アクティブ状態では、FW_Write_Clockの正のエッ
ジでFIFO内にデータをクロックに同期して与える。
FIFOが少なくとも1ワードのデータを含む時は常
に、それは、FW_In_FIFO_Empty信号を偽にする。これに
よって結局、FIFOが再び空になるまでRCLがFI
FOからデータを取り除き、FW_In_FIFO_Empty信号を真
にする。
【0021】RCLがFIFOからデータを取り除く
時、それは、Output Multiplexer(出力マルチプレク
サ)20がFW_RAM_DataをRAM_Dataバス上に駆動するこ
とができるようにし、適正なアドレスをRAM_Addressバ
ス上に駆動し、パルス駆動してRAM_Write信号を真に
し、パルス駆動してRead_FW_In_FIFO信号を真にする。R
ead_FW_In_FIFOパルスのたち下がりによってデータを取
り除いてFIFOを次の出力値に進める。
【0022】好ましい実施形態において、VXIおよび
マイクロプロセッサ入力FIFO25、27は、同様の
方式で動作する。しかしながら、ワード内の異なる位置
に8ビットおよび16ビットを同時に書き込むことがで
き、これによってこのFIFOを8ビットもしくは16
ビットで同時に満たすことができるようにVXI入力F
IFO25を拡張する。各々が、VXI_Write_Clock信号
の正のエッジで32ビットワード内の4バイトの1つに
データを書くことができるようにする、4つのByte_Wri
te_Enable信号を使用してこれを実現する。各ワードに
対して最後のバイトを書き込んだ時、VXI−IFはま
た、ワードが満たされたのでFIFOが次の入力位置に
進むべきであることを示すVXI_Write_Advance信号をア
サートする。
【0023】Firewire Output FIFO(ファイヤワイヤ出
力FIFO)24は、LLCが読み取るRAMからのデ
ータを保持する。Mode Control信号FW_Out_FIFO_Enable
が偽の時、FIFOをリセット状態に保持し、RCLに
対してFW_Out_FIFO_Full信号を真にすることによってそ
れがフルであることを示す。Mode Control信号FW_Out_F
IFO_Enableが真の時、FIFOはアクティブである。ア
クティブ状態に遷移した時、空になるFIFOはフルで
ないことを直ちに示し、FW_Out_FIFO_Fullを偽にする。
これによって結局、FIFOがフルになるまでRCLが
RAMからのデータをFIFO内に書き込み、FW_Out_F
IFO_Full信号を真にする。FIFOがアクティブ状態の
時、FW_Read_Clockの正のエッジでFIFOからのデー
タをLLC内にクロックに同期して与える。FIFOが
15ワードより少ないデータを含む時は常に、FW_Out_F
IFO_Full信号を偽にし、RCLが再度それを満たすよう
にする。RCLがFIFOにデータを書き込む時、Outp
ut MultiplexerがRAM_Dataバス上にデータを駆動するこ
とができないようにし、適正なアドレスをRAM_Address
バス上に駆動し、パルス駆動してRAM_Read信号を真に
し、パルス駆動してWrite_FW_Out_FIFO信号を真にし、
データをFIFO内にクロックに同期して入力する。F
IFOからデータを読み取る間、BMLがFW_Dataバス
を駆動することができるように、LLCはFW_Output_En
able信号を真にする。
【0024】好ましい実施形態において、VXIおよび
Microprocessor(マイクロプロセッサ)出力FIFO2
6、28は、同様の方式で動作する。
【0025】図3は、図1および図2の多重レベルキャ
ッシングを有する3ポートFIFOバッファのためのシ
ーケンスロジックを示すブロック図である。シーケンス
ロジック30は、6個のFIFOの各々に関連するRA
Mアドレスレジスタ/カウンタ33〜38を含み、RA
Mに入るデータとRAMから出るデータの移動を管理す
る。内部的には、RCLはBML内の6個のFIFOに
対応する6個のアドレスカウンタ、RAM Address Multip
lexer(RAMアドレスマルチプレクサ)32、およびS
equencing Logic(シーケンスロジック)30を含む。
各カウンタは、ロード可能な14ビットアップカウンタ
である。さらに、異なるホストコンピュータのアーキテ
クチャ(ビッグエンディアン(big-endian)、リトルエ
ンディアン(little endian))のための効果的なバイト
スワッピングを容易にするため、各カウンタの最下位ビ
ットを反転させることもできる。これによって、64ビ
ットワードの半分の32ビットをオンザフライでスワッ
プすることができる。
【0026】Firewire Write Address Counter(ファイ
ヤワイヤライトアドレスカウンタ)36は、LLCがR
AMに書き込んだデータに関するRAMアドレスを生成
する。FW_Write_Load_Addr信号の正のエッジが、Start_
Addrデータをカウンタ内に、及びInvert_MSB信号をレジ
スタ内にクロックに同期して入力する。クロックに同期
したInvert_MSBが真の場合、アドレスカウンタの最下位
ビット(FW_Write_Address(0))を通常の状態から反転
させる。FW_Write_Adv_Addr信号の負のエッジによっ
て、カウンタが増分される。他のアドレスカウンタも同
様に動作する。
【0027】Sequencing Logic(シーケンスロジック)
30は、様々なFIFOのフル信号および空信号を検出
し、RAMアクセスをスケジュールし、RAMの読み取
りサイクルおよび書き込みサイクルを調整する、クロッ
ク同期の状態マシンである。このマシンは、クロックサ
イクルごとに1回のRAMアクセスを実行し、下記のル
ールに従ってアクセスをスケジュールする。
【0028】・公平を保つために、いずれのタイプのア
クセスも連続するサイクルでは実行しない。
【0029】・LLCからの書き込みに最優先順位を割
り当て、次にLLCへの読み取り、その次にVXI−I
Fからの書き込み、その後にVXI−IFへの読み取
り、その後にMPUからの書き込み、最後にMPUへの
読み取りが続く。
【0030】・対応するIn_FIFO_Empty信号上に偽を示
すことによって、インターフェースからの書き込みを要
求する。対応するOut_FIFO_Full信号上に偽を示すこと
によって、インターフェースへの読み取りを要求する。
【0031】・いずれの要求もアクティブでない場合、
RAMアドレスおよび制御信号はアドレス0の読み取り
を示す。
【0032】LLCの入力FIFOからRAMへの書き
込みは、以下のように実行される。FW_In_FIFO_Empty信
号が偽の時、シーケンスロジックは(1クロックサイク
ルの間に)、Output_Selectを「FW_Write」に、Output_
Enableを真に、RAM_Writeを真に、RAM_Readを偽に、FW_
Write_Adv_Addrを真に、Read_FW_In_FIFOを真にする。
他の書き込み動作も同様に進行する。
【0033】RAMからLLCの出力FIFOへの読み
取りは、以下のように実行される。FW_Out_FIFO_Full信
号が偽の時、シーケンスロジックは(1クロックサイク
ルの間に)、Output_Selectを「FW_Read」に、Output_E
nableを偽に、RAM_Writeを偽に、RAM_Readを真に、FW_R
ead_Adv_Addrを真に、Write_FW_Out_FIFOを真にする。
他の読み取り動作も同様に進行する。
【0034】下記に、本発明による多重レベルキャッシ
ングを有する3ポートFIFOバッファへ、およびそこ
からデータを転送するために実行される処理ステップに
ついて述べる。
【0035】3個のポートのうちの1つからRAMバッ
ファ内にデータを移動するため、処理装置はまず制御ロ
ジックにそのポートの入力FIFOをクリア、すなわち
空にし、関連するシーケンスロジックを使用不能にする
よう指示する。次に、処理装置は、そのFIFOのアド
レスカウンタにアドレスを書き込み、バッファのための
開始RAMアドレスを設定する。次に処理装置は、入力
FIFOに関するシーケンスロジックを使用可能にす
る。シーケンスロジックは、データをRAMに移動する
ことによってFIFOを空のまま保持しようとする。関
連する外部装置が入力FIFOにデータを書き込む時、
シーケンサはFIFOが空でないことを検出する。同期
アービタは同時RAMアクセスを解決する。各RAM書
き込み後に、シーケンサはFIFOのRAMアドレスカ
ウンタを増分する。
【0036】RAMバッファから3個のポートのうちの
1つにデータを移動するため、処理装置はまず制御ロジ
ックにそのポートの出力FIFOをクリア(すなわち空
に)し、関連するシーケンスロジックを使用不能にする
よう指示する。次に、処理装置は、FIFOのアドレス
カウンタにバッファの開始アドレスを書き込む。次に処
理装置は、出力FIFOに関するシーケンスロジックを
使用可能にする。次に、シーケンサは、連続するRAM
バッファアドレスからのデータで出力FIFOを満た
す。次にシーケンスロジックは、データをRAMから移
動することによってFIFOをフルのまま保持しようと
する。関連する外部装置が出力FIFOからデータを読
み取る時、シーケンサはFIFOがフルでないことを検
出する。FIFOがフルでない時、シーケンサはFIF
Oが再びフルになるまでRAMから出力FIFOにデー
タを移動する。同期アービタは同時RAMアクセスを解
決する。各RAM読み取り後に、シーケンサはFIFO
のRAMアドレスカウンタを増分する。
【0037】RAMは、3個のポートの最大データ速度
の合計よりわずかに高い帯域幅を必要とする。たとえ
ば、20メガワード/秒の能力を持つVME/VXIバ
ックプレーン、12.5メガワード/秒の能力を持つFi
rewireインターフェース、および5メガワード/秒を必
要とする処理装置に対しては、RAMの帯域幅は37.
5メガワード/秒を超えなければならない。
【0038】本発明が提供する利点には以下が含まれ
る。
【0039】・本発明は、FPGAおよび一般的な単一
ポートのスタティックRAMを使って容易に実施するこ
とができる。
【0040】・本発明が必要とするRAMの帯域幅は、
浅い専用FIFOを組み込まないバッファ実装より30
〜50%小さい。
【0041】・本発明はパイプライン化し、オーバーラ
ップした動作を可能にする。
【0042】・本発明は、失敗した伝送を簡単に再試行
することができるようにする。
【0043】ここに示す本発明の好ましい実施形態は、
32ビットデータパスを備えている。しかしながら、他
のデータパス幅を使用することもまた可能である。
【0044】本発明の好ましい実施形態は、80メガビ
ット/秒のVME速度、50メガビット/秒のFirewire
速度、および20メガビット/秒より速いMPUアクセ
スに対して十分である160メガビット/秒の帯域幅に
対しては、40MHzのクロック信号を与えられ、64
メガビット/秒のVXI速度、50メガビット/秒のFi
rewire速度、および10メガビット/秒かまたはそれよ
り速いMPUアクセスを提供する128メガビット/秒
の帯域幅に対しては、32MHzのクロック信号を与え
られる。本発明の40MHzの実施形態は10ナノ秒R
AMを使用し、本発明の32MHzの実施形態は15ナ
ノ秒RAMを使用する。
【0045】BMLは、Lucent OR2C12A-2 FPGA内に実装さ
れている。他の技術もまた可能である。本発明のカスタ
ムシリコンの実施形態においては、RAMをチップ上に
含むこともできる。
【0046】400メガビットFirewireは、2kバイト
の最大パケットサイズを持つ。32k×32のRAMは
64パケットのためのメモリ空間を持つ。400メガビ
ット/秒のFirewireに対する妥当な最小RAMサイズは
4パケット、すなわち2k×32である。
【0047】バイトスワッピングのためのRAMアドレ
ス(0)の反転を、より柔軟なスワッピングのために下
位nビットに拡張することができる。これには、n個の
反転制御ビットが必要である。
【0048】たとえば、多数のデータおよび制御信号を
レジスタに入れたり、動作をパイプライン化したりする
ことによって、性能を向上させることができる。当業者
は容易にこれらの機能拡張を本発明で実施することもで
きるが、簡素化のためにそれらについての説明は省略し
た。
【0049】本明細書において好ましい実施形態を参照
しながら本発明について述べたが、本発明の精神と範囲
を逸脱することなく、本明細書で述べたものの代わりに
他の適用例を用いることもできることを、当業者は容易
に理解するであろう。従って、本発明は特許請求の範囲
によってのみ限定されるものである。
【0050】以下においては、本発明の種々の構成要件
の組み合わせからなる例示的な実施態様を示す。
【0051】1.多重レベルキャッシングを提供するマ
ルチポートバッファであって、複数のデータポート(1
0、12、18)と、前記マルチポートバッファの前記
各データポートごとにそれぞれ少なくとも1つのFIF
Oバッファがあり、このFIFOバッファが任意の入力
バッファおよび出力バッファを備えることができる、複
数のFIFOバッファ(23〜28)と、そのためのシ
ーケンスロジック(30)とからなる、バッファ管理ロ
ジック(16)と、前記ポートを介して前記FIFOバ
ッファへ、およびそこから送信するデータをキャッシン
グするためのランダムアクセスメモリ(RAM)(1
4)とを備えるマルチポートバッファ。
【0052】2.前記シーケンスロジックが、前記各F
IFOバッファに関連するRAMアドレスレジスタ/カ
ウンタ(33〜38)と、前記RAM内への、およびR
AM外へのデータの移動を管理するための手段(32)
とを備える、上項1に記載のマルチポートバッファ。
【0053】3.前記ポートの1つから前記RAM内
へ、およびRAM外へデータを移動するための処理装置
(18)をさらに備える上項1および2のいずれかに記
載のマルチポートバッファ。
【0054】4.前記処理装置(18)が、最初に制御
論理回路(22)に、前記ポートに関連する入力FIF
Oバッファ(23、25、27)をクリアし、関連する
シーケンスロジック(30)を使用不能にするよう指示
することによって、前記ポートのうちの1つから前記R
AM(14)内にデータを移動し、次に前記処理装置
(18)が、前記FIFOバッファのアドレスカウンタ
(34、36、38)にFIFO開始アドレスを書き込
み、次に前記処理装置(18)が、前記入力FIFOバ
ッファ(23、25、27)に関する前記シーケンスロ
ジック(30)を使用可能にし、前記シーケンスロジッ
ク(30)が、データを前記RAM(14)に移動する
ことによって前記FIFOバッファを空のまま保持しよ
うとし、前記シーケンスロジック(30)が、関連する
外部装置が前記ポートを介して前記入力FIFOバッフ
ァ(23、25、27)にデータを書き込む時、前記F
IFOバッファが空でないことを検出し、同期アービタ
(30)が同時RAMアクセスを解決し、前記シーケン
スロジック(30)が、各RAM書き込み後に、前記F
IFOバッファのRAMアドレスカウンタ(34、3
6、38)を増分する、上項3に記載のマルチポートバ
ッファ。
【0055】5.前記処理装置(18)が、最初に制御
論理回路(22)に、前記ポートに関連する出力FIF
Oバッファ(24、26、28)をクリアし、関連する
シーケンスロジック(30)を使用不能にするよう指示
することによって、前記RAM(14)から前記ポート
のうちの1つにデータを移動し、次に前記処理装置(1
8)が、前記FIFOバッファのアドレスカウンタ(3
3、35、37)にFIFOバッファの開始アドレスを
書き込み、次に前記処理装置(18)が、前記出力FI
FOバッファ(24、26、28)に関する前記シーケ
ンスロジック(30)を使用可能にし、次に、前記シー
ケンスロジック(30)が、連続するRAMバッファア
ドレスからのデータで前記出力FIFOバッファ(2
4、26、28)を満たし、次に前記シーケンスロジッ
ク(30)が、データを前記RAM(14)から移動す
ることによって前記FIFOバッファをフルのまま保持
しようとし、関連する外部装置が前記出力FIFOバッ
ファ(24、26、28)から前記ポートを介して前記
データを読み取り、前記シーケンスロジック(30)が
前記FIFOバッファがフルでないことを検出した場
合、前記シーケンスロジック(30)が、前記FIFO
バッファが再びフルになるまで前記RAMから前記出力
FIFOバッファ(24、26、28)にデータを移動
し、同期アービタ(30)が同時RAMアクセスを解決
し、前記シーケンスロジック(30)が、各RAM読み
取り後に、前記FIFOバッファのRAMアドレスカウ
ンタ(33、35、37)を増分する、上項3に記載の
マルチポートバッファ。
【0056】6.処理装置(18)と、Firewireリンク
レイヤ制御装置(12)と、VME/VXIインターフ
ェース(10)とからなる、FirewireのVME/VXI
へのインターフェースを備える上項1ないし5のいずれ
かに記載のマルチポートバッファ。
【0057】7.前記リンクレイヤ制御装置(12)
が、着信パケットヘッダを内部に記憶し、データパケッ
トを前記バッファ管理ロジック(16)に送信し、デー
タパケットの受信時に前記処理装置(18)に通知し、
前記バッファ管理ロジック(16)が前記データパケッ
トを前記RAM(14)内に記憶し、前記処理装置(1
8)が前記リンクレイヤ制御装置(12)からFirewire
ヘッダを読み取り、前記処理装置(18)が、前記デー
タブロックの処置を決定するため、動作時により高いレ
ベルのプロトコルに従って、前記RAM(14)から最
初の数ワードのデータをオプションとして読み取ること
もでき、次に前記処理装置(18)が、前記データブロ
ックの残りを読み取るか、あるいは前記バッファ管理ロ
ジック(16)および前記インターフェースに対して、
前記データブロックをVXI装置に転送するよう指示す
るかのいずれかを行い、前記処理装置(18)がオプシ
ョンとして、最初に前記データブロックをまったく読み
取ることを必要とせずに、前記VXIバス装置への転送
を開始することもできる、上項6に記載のマルチポート
バッファ。
【0058】8.前記処理装置(18)が、データパケ
ットの送信時に、Firewireヘッダ情報を前記リンクレイ
ヤ制御装置(12)に書き込み、前記処理装置(18)
が、データを前記RAM(14)に書き込み、及び/ま
たは、前記インターフェースおよび前記バッファ管理ロ
ジック(16)にVXI装置から前記RAM(14)内
へデータを読み取るよう指示し、次に、前記処理装置
(18)が、前記Firewireパケットを送信するよう前記
リンクレイヤ制御装置に指示する、上項6に記載のマル
チポートバッファ。
【0059】9.前記シーケンスロジック(30)が、
様々なFIFOバッファのフル信号および空信号を検出
し、RAMアクセスをスケジュールし、前記RAMの読
み取りサイクルおよび書き込みサイクルを調整する、ク
ロック同期の状態マシンである、上項1ないし8のいず
れかに記載のマルチポートバッファ。
【0060】10.Firewire、VME/VXI、および
処理装置インターフェースのうちの任意の2者間でデー
タブロックを移動するための方法であって、まず送信元
インターフェースからランダムアクセスメモリ(RA
M)にデータを移動するステップと、前記RAMから送
信先インターフェースに前記データを移動するステップ
とを備え、RAMへの前記転送が、RAMからの前記転
送の開始前に完了することからなる方法。
【0061】
【発明の効果】本発明のマルチポートバッファは、FP
GAおよび一般的な単一ポートのスタティックRAMを
使って容易に実施することができ、それに必要とされる
RAMの帯域幅は、浅い専用FIFOを組み込まないバ
ッファ実装に比べて30〜50%小さくて済む。また、
本発明によれば、パイプライン化し、オーバーラップし
た動作が可能となる。さらに、本発明によれば、失敗し
たトランザクションを簡単に再試行することができる。
【図面の簡単な説明】
【図1】本発明による多重レベルのキャッシングを有す
る3ポートFIFOバッファのブロック図である。
【図2】図1の多重レベルのキャッシングを有する3ポ
ートFIFOバッファの詳細ブロック図である。
【図3】図1および図2の多重レベルのキャッシングを
有する3ポートFIFOバッファに関するシーケンスロ
ジックを示すブロック図である。
【符号の説明】
10 VME/VXIインターフェース 12 リンクレイヤ制御装置 14 RAM 16 バッファ管理ロジック 18 処理装置(マイクロプロセッサ)

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】多重レベルキャッシングを提供するマルチ
    ポートバッファであって、 複数のデータポート(10、12、18)と、 前記マルチポートバッファの前記各データポートごとに
    それぞれ少なく とも1つのFIFOバッファがあり、このFIFOバッ
    ファが任意の入力バッファおよび出力バッファを備える
    ことができる、複数のFIFOバッファ(23〜28)
    と、 そのためのシーケンスロジック(30)とからなるバッ
    ファ管理ロジック(16)と、 前記ポートを介して前記FIFOバッファへ、およびそ
    こから送信するデータをキャッシングするためのランダ
    ムアクセスメモリ(RAM)(14)とを備えるマルチ
    ポートバッファ。
JP11030763A 1998-02-13 1999-02-09 多重レベルキャッシングを有する3ポ―トfifoデ―タバッファ Pending JP2000029826A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US023837 1998-02-13
US09/023,837 US6088744A (en) 1998-02-13 1998-02-13 Multiport data buffer having multi level caching wherein each data port has a FIFO buffer coupled thereto

Publications (1)

Publication Number Publication Date
JP2000029826A true JP2000029826A (ja) 2000-01-28

Family

ID=21817499

Family Applications (1)

Application Number Title Priority Date Filing Date
JP11030763A Pending JP2000029826A (ja) 1998-02-13 1999-02-09 多重レベルキャッシングを有する3ポ―トfifoデ―タバッファ

Country Status (2)

Country Link
US (1) US6088744A (ja)
JP (1) JP2000029826A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11854150B2 (en) 2013-03-15 2023-12-26 Magic Leap, Inc. Frame-by-frame rendering for augmented or virtual reality systems

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6256687B1 (en) * 1998-08-04 2001-07-03 Intel Corporation Managing data flow between a serial bus device and a parallel port
GB2348717B (en) * 1999-01-11 2003-08-06 Sgs Thomson Microelectronics Data flow control circuitry
US6681270B1 (en) * 1999-12-07 2004-01-20 Texas Instruments Incorporated Effective channel priority processing for transfer controller with hub and ports
US7114019B2 (en) * 2000-09-08 2006-09-26 Standard Microsystems Corporation System and method for data transmission
US6546461B1 (en) * 2000-11-22 2003-04-08 Integrated Device Technology, Inc. Multi-port cache memory devices and FIFO memory devices having multi-port cache memory devices therein
ES2242880T3 (es) * 2001-09-26 2005-11-16 Siemens Aktiengesellschaft Procedimiento para el procesamiento de conjuntos de datos consistentes.
US7042792B2 (en) * 2004-01-14 2006-05-09 Integrated Device Technology, Inc. Multi-port memory cells for use in FIFO applications that support data transfers between cache and supplemental memory arrays
JP2006333438A (ja) * 2005-04-28 2006-12-07 Fujitsu Ten Ltd ゲートウェイ装置及びルーティング方法
CN112491496B (zh) * 2019-09-12 2022-08-23 北京华航无线电测量研究所 一种基于fpga同步串口多级缓存接收转发方法

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5214760A (en) * 1988-08-26 1993-05-25 Tektronix, Inc. Adaptable multiple port data buffer
US5805930A (en) * 1995-05-15 1998-09-08 Nvidia Corporation System for FIFO informing the availability of stages to store commands which include data and virtual address sent directly from application programs
US5822308A (en) * 1995-07-17 1998-10-13 National Semiconductor Corporation Multi-tasking sequencer for a TDMA burst mode controller
US5699530A (en) * 1995-10-03 1997-12-16 Intel Corporation Circular RAM-based first-in/first-out buffer employing interleaved storage locations and cross pointers
IL117134A (en) * 1996-02-14 2000-01-31 Galileo Technology Ltd First-in first-out (fifo) buffer
US6018778A (en) * 1996-05-03 2000-01-25 Netcell Corporation Disk array controller for reading/writing striped data using a single address counter for synchronously transferring data between data ports and buffer memory
US5991299A (en) * 1997-09-11 1999-11-23 3Com Corporation High speed header translation processing

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11854150B2 (en) 2013-03-15 2023-12-26 Magic Leap, Inc. Frame-by-frame rendering for augmented or virtual reality systems

Also Published As

Publication number Publication date
US6088744A (en) 2000-07-11

Similar Documents

Publication Publication Date Title
US7363396B2 (en) Supercharge message exchanger
US7352763B2 (en) Device to receive, buffer, and transmit packets of data in a packet switching network
US7277449B2 (en) On chip network
KR100555394B1 (ko) Ngio/infiniband 어플리케이션용 리모트 키검증을 위한 방법 및 메커니즘
US6996651B2 (en) On chip network with memory device address decoding
US7051150B2 (en) Scalable on chip network
JP4124491B2 (ja) 異なるデータ転送速度での共用メモリへのアクセスを制御するパケット・ルーティング・スイッチ
US7200137B2 (en) On chip network that maximizes interconnect utilization between processing elements
US7139860B2 (en) On chip network with independent logical and physical layers
US5043938A (en) Node controller for a local area network
JP4447892B2 (ja) マルチコア通信モジュールを組み入れたデータ通信システム及び方法
KR20010015608A (ko) 멀티 포트 메모리를 이용하는 지능형 데이터 버스인터페이스
JPH1078934A (ja) パケット切替えコンピュータ・システムのマルチサイズ・バス結合システム
US5812774A (en) System for transmitting data packet from buffer by reading buffer descriptor from descriptor memory of network adapter without accessing buffer descriptor in shared memory
US20020184453A1 (en) Data bus system including posted reads and writes
EP0832457A1 (en) Split buffer architecture
WO2012143953A2 (en) Optimized multi-root input output virtualization aware switch
JP2000029826A (ja) 多重レベルキャッシングを有する3ポ―トfifoデ―タバッファ
EP0290172A2 (en) Bidirectional fifo with variable byte boundary and data path width change
US6487617B1 (en) Source-destination re-timed cooperative communication bus
JP5497743B2 (ja) 複数のプロセスからメモリ領域へのアクセスを制御する方法、及び、本方法を実現するためのメッセージメモリを備えた通信モジュール
GB2226739A (en) Node controller for local area network
JP2005235216A (ja) ダイレクト・メモリ・アクセス制御
JPH09185573A (ja) 入出力バスインタフェース制御方式