SC802TXスイッチング回路
SC802TX概要
図8にEtherFormationシリーズSC802TXのハードウェア構成のブロック図を示します。
SC802TXはスイッチングLSIにGT-48002Aを採用したスイッチングLANアダプタです。
GT-48002A単体そのままではLANアダプタとして使用することができませんので、制御用I/OポートやMACアドレス格納用EEPROM等を付加する必要があります。
SC802TXは以下の主要回路で構成されています。
◆スイッチング回路
・GT-48002A
・EDO-DRAM (2MByte)
◆10/100M PHY回路
・LXT970
◆クロック回路
・25MHz OSC
◆コンフィギュレーション回路
・制御用I/Oポート
・MACアドレス格納用EEPROM
・設定用スイッチ
◆LED表示回路
・LED (緑:4個, 赤:2個)
では各構成回路の詳細を見て行きましょう。
GT-48002AのEDO-DRAM ADD・MAP
SC802TXのスイッチング回路は、GT-48002AとEDO-DRAMで構成されています。
EDO-DRAMは他の追加回路を必要とせずに直接GT-48002Aに接続することができ、リフレッシュもCAS-before-RAS方式で自動的に行われます。
EDO-DRAMは1MByteが2プレーン分サポートされており、1MByteでも2MByteのどちらでも動作可能です。
このメモリ容量の差は、パケットの受信バッファ容量の差として現れ、1MByte時の受信バッファ総数は320パケット分、2MByte時の受信バッファ総数は1008パケット分となります。なお、受信バッファは1536Byteの固定長で管理されています。
SC802TXでは2MByteのEDO-DRAMを搭載しており、256K*16構成の4Mbitチップを採用しています。
GT-48002Aの基本動作クロックは33MHzですが、これはPCIバスの33MHzクロックがそのまま利用されます。
また、GT-48002AはPCIバスコネクタからできるだけ近い位置に配置し、PCIバス関連の信号の引き回しが長くならないように配慮する必要があります。
GT-48002Aが占有する4MByte連続メモリ空間の後半2MByteの領域にEDO-DRAMはマッピングされます。
そのEDO-DRAM領域のアドレスマップを図9に示します。
GT-48002AのADD・テーブル
GT-48002AはEDO-DRAM内に384KByteの大きさのアドレステーブルを構築し、それに基づいたスイッチング処理を実行します。このアドレステーブルの操作はGalNetプロトコルのNEW_ADDRESSメッセージを介して行ないますが、直接EDO-DRAM領域にアクセスしてその内容を変更することも可能です。
アドレステーブルはガリレオ社独自のハッシュ手法で管理されています。その技術情報は機密事項として一般には非公開となっていますので残念ながらここで説明することはできませんが、ガリレオ社と機密保持契約を締結すれば情報の入手が可能です。
GT-48002Aは受信パケットの送信元アドレス部の情報を元にアドレステーブルの内容を更新します。
また、受信パケットの送信先アドレス部の情報でアドレステーブルを検索してパケットの転送先を決定します。
その最大登録アドレス数は公称8,000となっていますが、ハッシュ管理ですのでそれ8,000以上登録できる場合もありますし、8,000以下となる場合もあります。
最大登録アドレスを越えた場合は新規のアドレス登録がでなくなるだけで動作に支障をきたすわけではありません。
GT-48002A自体はアドレステーブルのエージング処理機能を持っていませんので、エージング処理にはCPUが介入してアドレステーブルを操作する必要があります。
GT-48002Aの制御レジスタのADD・MAP
GT-48002Aが占有する4MByte連続メモリ空間の前半2MByteの領域には制御レジスタ類がマッピングされています。そのアドレスマップを図10に示します。
各レジスタの詳細説明はページの都合上省略せざるを得ませんので詳細に関してはGT-48002Aのデータシートを参照願いますが、CPUインタフェース関連レジスタに関しては次に概説しておきます。
CPU I/F関連レジスタ
テムメモリとのデータ交換が可能です。
個々のデバイスが持つアドレステーブルにLANアダプタとしてのMACアドレスを登録し、その転送先としてCPUのデバイスID(通常0をアサインする)を指定しておくと、そのMACアドレス宛のパケットはCPUの指定システムメモリ領域へ転送されます。
CPUがGalNetファミリーデバイスとインタフェースするためには、個々のGalNetファミリーデバイス毎に所定のメモリ領域をCPU側のシステムメモリ上に確保し、以下の制御レジスタにそれらのアドレスを設定しておかなければなりません。また、ネットワーク管理サポート用のレジスタについても触れておきますので併せて参考にして下さい。
CPU Buffer Base Addressレジスタ
CPU宛てのパケットの受信領域として32KByteのアドレス境界(アドレスの下位15Bitが全部"0")から始まる物理メモリを連続32KByte確保し、その先頭アドレスをこのレジスタにセットします。
このパケット受信領域は2KByteの固定長で管理されていて16パケット分のデータが受信可能です。16個のパケット受信毎に割り込みが発生しますので、それに対応してCPUパケット受信領域のアドレスを更新する必要があります。このレジスタはシャドウレジスタと呼ばれるダブルバッファ構造になっているためアクセスには注意が必要です。なお、初期化時には連続2回書き込みます。
内部構造としては16パケット毎にレジスタ内容をアドレスカウンタの初期値として取り込む方式ですので、このレジスタの更新が遅れると受信バッファ領域が上書きされてしまいます。
CPU START_OF_PACKET Base Addressレジスタ
CPU発行のBUFFER_REQUESTメッセージに対して応答されるSTART_OF_PACKETメッセージを格納するためのメモリ領域を指定します。256Byteのアドレス境界(アドレスの下位8Bitが全部"0")から始まる物理メモリを連続256Byte確保し、その先頭アドレスをこのレジスタにセットします。
CPUへのSTART_OF_PACKETメッセージは、1メッセージで8Byteのデータ構成ですので、32メッセージ分となります。また、この領域は固定利用され、リングバッファとして管理されます。
CPU NEW_ADDRESS Base Addressレジスタ
CPUに対するNEW_ADDRESSメッセージを格納するためのメモリ領域を指定します。256Byteのアドレス境界(アドレスの下位8Bitが全部"0")から始まる物理メモリを連続256Byte確保し、その先頭アドレスをこのレジスタにセットします。
CPUへのNEW_ADDRESSメッセージは、1メッセージで8Byteのデータ構成ですので、32メッセージ分となります。この領域も固定利用され、リングバッファとして管理されます。
CPU Intervention Base Addressレジスタ
Interventionモードは、CPUがパケットの転送先の決定に介入するために用意されたモードです。アドレステーブルに登録されているそれぞれのMACアドレスに対して、パケットの送信先アドレスとして検出時にInterventionを行なうか、パケットの送信元アドレスとして検出時にInterventionを行なうかが指定できます。また、Interventionの設定はアドレステーブル情報の一部です。
Intervention設定が検出されたパケットはすぐには転送されずに、先ずCPUに対してBUFFER_REQUESTメッセージが発行されますので、CPUの判断によってそのパケットの廃棄もしくは所定のGalNetファミリーデバイスへの転送が可能になります。
このレジスタは、そのBUFFER_REQUESTメッセージを格納するためのメモリ領域を指定するために用意されています。2KByteのアドレス境界(アドレスの下位11Bitが全部"0")から始まる物理メモリを連続2KByte確保し、その先頭アドレスをこのレジスタにセットします。
CPUに対してのBUFFER_REQUESTメッセージは、1メッセージで8Byteのデータ構成ですので、256メッセージ分となります。このレジスタはCPU Buffer Base Addressと同様にシャドウレジスタ形式になっていますので、そのアクセスには同様の注意が必要です。
Device Tableレジスタ
このレジスタにはGalNetシステムが占有する128MByteのメモリ空間にどのデバイスIDをもったGalNetファミリーデバイスが存在するかを指定します。
32Bitの各ビットがそれぞれのデバイスIDに対応しています。通常はCPUから初期設定しますが、CPU無しの動作モードでは各GalNetファミリーデバイスが他のデバイスの存在を自動検出してこのレジスタの内容を自動更新します。デバイスの存在の有無は、GalNetメッセージに対する応答の有無で判断されます。
また、CPUが存在する場合には、CPUのデバイスIDに相当するビットを"1"にしておく必要があります。
リピータMIBカウンタレジスタ
ネットワーク管理サポート用に以下のMIBカウンタが各ポート毎に用意されています。
Bytes Received
Bytes Sent
Frames Received
Total Bytes Received
Total Frames Received
Broadcast Frames Received
Multicast Frames Received
CRC Error
Oversize Frames
Fragments
Jabber
Collision
Late Collision
Frames 64 Bytes
Frames 65-127 Bytes
Frames 128-255 Bytes
Frames 256-511 Bytes
Frames 512-1023 Bytes
Frames 1024-1522 Bytes
MAC Rx Error
Dropped Frames
HP_EASEレジスタ
HP社が提唱している簡易ネットワークモニタ手法で、カウンタによる定期的なパケットサンプリングやエラーパケット検出時の送信元アドレスのレポート機能がサポートされています。