Media-independent interface

ファストイーサネットの媒体アクセス制御ブロックをPHYチップに接続する目的で定義された標準インタフェース
XGMIIから転送)

Media-Independent InterfaceMII、媒体独立インタフェース)は、イーサネットにおいて、MAC (データリンク層デバイス)とPHY (物理層デバイス)とを接続するためのインタフェース。本稿では以下の拡張版を含めて記述する。

概要 編集

MIIはさまざまなタイプのPHYをMACに接続するのに使われる。MIIがあることで、MAC側の回路を再設計や交換せずとも、ツイストペアケーブル光ファイバーなどの多種多様な伝送媒体を接続するPHYを使用できる。言い換えれば、MIIとは「媒体に依存しない("media-independent")」インタフェースであり、これによって伝送媒体とは無関係に、任意のMACを任意のPHYと組み合わせて使える[1]。MIIはもともと100メガビット・イーサネットのインターフェイスとしてIEEE 802.3uで規定されたが、ギガビット・イーサネット10ギガビット・イーサネットの通信でも同様の目的のインターフェイスが用いられる。

 
1995年サン・マイクロシステムズSun Ultra 1英語版に備えられたMIIコネクタ

MACを同一基板上にあるPHYチップにMII配線で直接接続するのが現在は一般的であるが、外部PHYにMII配線したコネクタで接続することもできる。かつてはMII信号を接続するためのCNRスロット(CNRコネクタ Type B)がコンピュータのマザーボードに搭載されている場合があったが、ネットワーク機能がオンボードで実装されるようになって廃れた[2]

初期 MII 編集

IEEE 802.3uによる初期のMIIでは、送受4ビットずつの送受バスを25 MHzのクロックで動作させ、合計100 Mbpsで通信する。また、10Mbps通信との後方互換性も考慮されている。

MIIには下表の18個の信号が必要である。このうちMDCとMDIOは複数のPHYで共有できるが、それ以外の16配線はポートごとに必要である。これは特に多ポート機器では問題となり、例えば8ポートスイッチでは、8つのPHYに対して 8×16 + 2 = 130本を配線することになる。

MII信号[3]
種別 信号名 説明 方向
送信 TX_CLK 送信クロック PHY→MAC
TXD0 送信データビット0(先頭ビット) MAC→PHY
TXD1 送信データビット1 MAC→PHY
TXD2 送信データビット2 MAC→PHY
TXD3 送信データビット3 MAC→PHY
TX_EN 送信中 MAC→PHY
TX_ER 送信エラー(オプション) MAC→PHY
受信 RX_CLK 受信クロック(受信信号から復元) PHY→MAC
RXD0 受信データビット0(先頭ビット) PHY→MAC
RXD1 受信データビット1 PHY→MAC
RXD2 受信データビット2 PHY→MAC
RXD3 受信データビット3 PHY→MAC
RX_DV 受信中 PHY→MAC
RX_ER 受信エラー PHY→MAC
CRS キャリア検知(半二重通信のみ) PHY→MAC
COL 衝突検出(半二重通信のみ) PHY→MAC
管理 MDIO 管理データ (Management Data Input/Output) MAC⇔PHY
MDC 管理データ用クロック (Management Data Clock) MAC→PHY

それぞれのピンについて概説する。

  • TX_CLK (送信クロック)はPHYからMACにクロックを与えるもので、100Mbps通信の場合は25MHz、10Mbps通信の場合は2.5MHzのクロック信号が供給される[4]。TX_CLKの立ち上がりエッジのタイミングでMACがTXD[3..0]にデータを送る。この構成により、MACはリンク速度を意識せずに動作することができる。
  • TX_EN (送信中)ピンは、フレーム送信中はハイに、アイドル状態のときはローに保持される。
  • TX_ER (送信エラー)は、フレーム送信中に発生することがある。これは、PHYにフレームを故意に破棄するよう要求して、有効なフレームとして受信されるのを防止するためのものである。これはオプションのため MAC にその機能がないこともあり、その場合はローに固定する必要がある。さらに、主信号の送信データTXD[3..0]を特殊な用途に使っていることを示すために、このTX_ERを故意に発生させる方法をとるものがある。例えばEEE対応のPHYでは、特殊シンボル0b0001を使って低電力モードに入るように要求するときに「TX_ENをロー、TX_ERをハイ」とするように規定されている[5]
  • RX_ER (受信エラー)は、オプションではなく必須ピンであり、受信信号が有効データとして復号できなかったことを示す。またTX_ERと同様、特殊シンボル0b0001(対向がEEE低電力モードにある)と0b1110(false carrier)が定義されており、これらの受信時にRX_ERをハイにする[6]
  • RX_CLK (受信クロック)は、フレーム受信中に入力信号から復元される。伝送媒体に信号が流れていないときは、PHYが代わりに自身のクロックを供給する。
  • RX_DV (受信中)は、フレーム受信中にハイを維持する。受信開始直後からハイになる必要はないが、遅くともプリアンブル後のSFDが届くまでにはハイを示す必要がある[7]
  • CRS (キャリア検知)・COL (衝突検出)は、半二重通信(CSMA/CD)でのみ用いるもので、RX_CLK とは無関係に動作する。CRSは、送受信中または他機器による伝送路占有の検出時にハイにする。COLは、衝突検出や衝突継続中にハイにする。また、MAC側はCOLに弱いプルアップを接続しており、COLハイとCRSローとの組み合わせ(PHY側がこのパターンで動作することはない)をPHYの接続検出に使っている[8]
  • MDIO (管理データI/O)・MDC (管理データ用クロック) は 2線シリアルバスで、MDIOレジスタへアクセスして状態取得や設定をするために使う。詳細は次節。

MDIO レジスタ 編集

MDIO (Management Data Input/Output)は、PHYの各種設定や状態取得が可能な管理用インタフェース。I2Cに似た2線シリアルバス(MDIO・MDC)を用いて、内蔵の16ビットレジスタにアクセスする。

100Mbps・1Gbps通信用のPHYは、下表のような32個のレジスタを備えている。前半のアドレス0~15のレジスタはその書式が規定されているが、後半のアドレス16~31のレジスタはPHY固有となっている[9]

MDIOレジスタ (Clause 22) 一覧
アドレス 内容
0 基本設定
1 基本状態 (以下は主な16ビット値)
  • 0x8000: 100BASE-T4 対応
  • 0x6000: 100BASE-TX 全二重/半二重 対応
  • 0x1800: 10BASE-T 全二重/半二重 対応
  • 0x0600: 100BASE-T2 全二重/半二重 対応
  • 0x0100: 1Gbps状態用のレジスタ(アドレス15)が存在する
  • 0x0080: 単方向通信 対応
  • 0x0040: 管理フレームのプリアンブル抑制あり
  • 0x0020: オートネゴシエーション完了
  • 0x0010: リモート障害
  • 0x0008: オートネゴシエーション可
  • 0x0004: リンク確立
  • 0x0002: ジャバー(長すぎるフレーム)の検出
  • 0x0001: 拡張レジスタ(アドレス2~14)が存在する
2-3 PHY ID
4 オートネゴシエーション 送信ベースページ設定
5 オートネゴシエーション 受信ベースページ状態
6 オートネゴシエーション 状態
7 オートネゴシエーション 送信ネクストページ設定
8 オートネゴシエーション 受信ネクストページ状態
9 マスター/スレーブ 設定
10 マスター/スレーブ 状態
11 PoE 給電設定
12 PoE 給電状態
13 MDIO設定
14 MDIO状態
15 1Gbps状態
16-31 PHY固有レジスタ

10Gbps通信および後発規格用のPHYにもMDIOレジスタが用意されているが、初期のものから大きく拡張されており、管理用に65536個の16ビットレジスタが実装可能となっている[10]

RMII 編集

RMII (Reduced MII) は、100Mbps通信用途のMIIの一種で、配線数を減らしたもの。下表の9本の配線からなる。この仕様は、1998年にRMIIコンソーシアムによるベンダ間合意によって規定された[11]

RMII信号
種別 信号名 説明 方向
送受共通 REF_CLK 50MHz クロック 外部ソース→MAC・PHY
または MAC→PHY
送信 TXD0 送信データビット0 MAC→PHY
TXD1 送信データビット1 MAC→PHY
TX_EN 送信中 MAC→PHY
受信 RXD0 受信データビット0 PHY→MAC
RXD1 受信データビット1 PHY→MAC
CRS_DV CRS(キャリア検知)・RXDV(受信中)の交互出力 PHY→MAC
RX_ER 受信エラー(スイッチではオプション) PHY→MAC
管理 MDIO 管理データ MAC⇔PHY
MDC 管理データ用クロック MAC→PHY

初版 MII から以下の4点が変更された。

  • TXCLKとRXCLKを共通のクロックREF_CLKに置き換える。このクロックはPHYへの入力になるため、スイッチなどの多ポート機器内の全てのPHYでクロック信号を共有できる。
  • クロックを25MHzから50MHzと倍速にし、主信号を4本から2本に減らす。
  • RXDVとCRSを1ピンにまとめる。100Mbps通信では1クロックごと、10Mbps通信では10クロックごとに交互にCRS_DVピンに出力する。
  • COLを削除する。

これにより、MIIの18本に対してRMIIでは9本となったが、多ポート機器ではさらに MDIO, MDC, REF_CLKの3本を各PHYで共有できるので、PHYごとに必要なのは6~7本となる。

RMIIでは50MHzのクロックを必要とし、データは1クロックに対し2ビットずつ出力される(MIIでは25MHzで4ビット)。入力信号は立ち上がりエッジでのみ読み取る。

100M・10Mbpsのいずれの通信でも REF_CLK は 50MHz で動作する。そのため10Mbps通信では、送受の出力信号の値を10クロック分維持しておき、入力信号は10クロックに1度だけ読み取る。

制限事項 編集

通信が全二重・半二重のいずれか、また10M・100Mbpsの速度のいずれかを示す信号がなく、これらはMDIO/MDCで設定する必要がある。RMIIの第1.2版では MDIO/MDCはIEEE 802.3u-1995の仕様と同一のものと規定しているが、後のIEEE 802.3改版時にMDIOによるオートネゴシエーション設定が追加されており、旧版規格に基づいた古い設計のPHYには速度と二重通信モードを独自の方法で設定しているものがある。

RX_ER信号をサポートしないMACと接続する場合は、MAC側で受信データのCRCをしないようにエラー時にPHYがデータを置き換えて対処するものがある。

RMIIには COL (衝突検出)がないが、CRS_DV信号からCRS (キャリア検知)だけを取り出して、論理和 COL = CRS and TX_ENによって求められる。ただし、この方法では MIIと動作が若干異なり、MIIでは送受両方でキャリア検知ができるが、RMIIでは受信のみとなる。その結果、RMIIでは「キャリアなし」「キャリア損失」の2つのエラーを検出できず、10BASE210BASE5などのバス共有型の規格に対応できない。

RMIIでは CRS_DVが交互出力である一方で、TX_ENは交互出力ではなく対称的ではないため、2つのPHYをRMIIで背中合わせに直接接続してリピータにすることはできない。National DP83848を使えば、RX_DVだけを取り出して補助信号として出力できる[12]

信号レベル 編集

TTL信号レベルは5Vまたは3.3Vロジックが使用され、入力の0/1しきい値は0.8V・2.0Vである。入力に5V耐性の規定があるが、実際は5V耐性がないチップがほとんどであり、MAC実装に必要なFPGAにも一般的に5V耐性がない。5V駆動は主に古いMII専用デバイスにのみ見られ、半導体業界のトレンドや、PHYとMACが通常同一基板上にある点を考えると、チップでの対応はおそらく稀である。新しいものでは2.5Vと1.8Vの両方のロジックに対応するチップもある。

RMIIでは、少なくとも規格上は主信号配線を伝送線路ではなく集中定数回路として扱っており、終端処理やインピーダンスの制御は不要である。しかし、初期 MIIでは 68Ωの特性インピーダンスが規定されている[13]ナショナルセミコンダクタは、MII・RMIIのいずれでもインピーダンス50Ωと直列抵抗33Ωを設けるよう推奨しており、さらにスキューの低減のために配線長は150cm未満、配線長の差を50cm未満に収めたほう良いとしている[14]

GMII 編集

GMII (gigabit MII) は MII の一種で、1Gbps通信用途のもの。下表の27本の配線からなる。送受それぞれ8本の配線が125MHzで動作し、合計1Gbpsで通信する。10M/100Mbps通信も可能である。 この仕様は、IEEE 802.3z-1998 (1000BASE-X) の Clause 35 で初めて規定された[15]

GMII信号
種別 信号名 説明 方向
送信 GTXCLK 1Gbps通信用のクロック(125MHz) MAC→PHY
TXCLK 10Mbps or 100Mbps通信用のクロック (2.5 MHz or 25 MHz) PHY→MAC
TXD[7..0] 送信データ MAC→PHY
TXEN 送信中 MAC→PHY
TXER 送信エラー MAC→PHY
受信 RXCLK 受信クロック(受信信号から復元) PHY→MAC
RXD[7..0] 受信データ PHY→MAC
RXDV 受信中 PHY→MAC
RXER 受信データエラー PHY→MAC
COL 衝突検出(半二重通信のみ) PHY→MAC
CS キャリア検知(半二重通信のみ) PHY→MAC
管理 MDIO 管理データ PHY⇔MAC
MDC 管理データ用クロック MAC→PHY

送信クロックは2種類の方式がある。1Gbps通信では、GTXCLKがMACからPHYに供給され、TXD, TXEN, TXER信号はこれに同期する[16]。10M/100Mbps通信の場合は、TXCLK がPHYからMACに供給され、100 Mbps接続では25 MHz、10 Mbps接続では2.5 MHzで動作する。一方で受信クロックはシンプルであり、受信データから復元した RXCLK のみである。その結果として、GTXCLK と RXCLKとが同じタイミングをとるとは限らない。

RGMII 編集

RGMII (reduced gigabit MII)は、1Gbps通信用途の MIIの1つで、配線数を減らしたもの。下表の12本の配線からなる。この仕様は2000年にヒューレット・パッカードが中心となってまとめた規定に基づいている[17]

RGMII信号
種別 信号名 説明 方向
送信 TXC クロック信号 MAC→PHY
TXD[3..0] 送信データ MAC→PHY
TX_CTL 送信中(TXEN)・送信エラー(TXER) MAC→PHY
受信 RXC 受信クロック(受信信号から復元) PHY→MAC
RXD[3..0] 受信データ PHY→MAC
RX_CTL 受信中(RXDV)・受信エラー(RXER) PHY→MAC
管理 MDIO 管理データ MAC⇔PHY
MDC 管理データ用クロック MAC→PHY

GMIIと比べると、送受の主信号配線を半減させ、さらに半二重通信用の不要なCSとCOLを削除している。

RGMIIによるイーサネット通信速度対応
通信速度
[bps]
RGMII速度
[MHz]
符号化効率
[bit/Hz]
10M 2.5 4 (4対×1エッジ)
100M 25 4 (4対×1エッジ)
1G 125 8 (4対×2エッジ)

主信号は、1Gbps通信では立ち上がり・立ち下がりの両方のエッジで読み取ることで実現している。10M・100Mbps通信では従来どおり立ち上がりエッジのみで入力信号を読み取る[18]

TXC (送信クロック信号)は、GMIIとは異なり常にMAC側から供給される。データとクロックを同時に出力しているため、初期仕様ではこれを読み取る側のセットアップ時間とホールド時間を確保するために、基板配線の引き回しでクロック信号を1.5~2ナノ秒ほど遅延させる必要があった。RGMII 第2.0版では内部遅延(RGMII-ID)のオプションが追加されたため、基板設計でこれを考慮する必要がなくなった。

RX_CTL (受信中・受信エラー)は、立ち上がりエッジでRXDVを、立ち下がりエッジでRXDV xor RXER を示す。TX_CTL (送信中・送信エラー)も同様に、立ち上がりエッジでTXENを、立ち下がりエッジでTXEN xor TXERを示す。これらは1G・100M・10Mbps通信で共通仕様である。

電圧レベルは、RGMII 第1.3版[17]は2.5V CMOSを使用し[19]、RGMII第2版では1.5V HSTL英語版を使用する[20]

SGMII 編集

SGMII (serial gigabit MII)は、1Gbps通信用途の MIIの1つ。低消費電力な差動シリアルバス(LVDS)を利用して信号数を10に減らしている。この仕様は、1999年にシスコ・システムズが規定したものに基づく[21]。主にSFPトランシーバとの接続において使われる。

データ・クロックとしてそれぞれ1対ずつ差動配線を使うため4配線となり、これが送受で8配線、さらにMDIO/MDCを加えた10配線で構成される。

データ用の差動配線バスは一般にSerDesと呼ばれ、主信号に8b/10b符号を用い、クロック周波数625MHz、データレート1.25Gbpsで動作する。これは1000BASE-Xの伝送路符号と同じものをそのまま基板上に流してMACに引き渡す形になる。GMIIに備えられているTXEN, TXER, RXDV, RXER, COL, CSはPHYの機能の一部をMACが受け持って処理する。クロックは常に625MHzであるため、10M・100Mbps用途では16ビットデータをそれぞれ100回・10回反復して送る。

クロックは出力側で生成する必要があるが、入力のオプションもある。また、CDRによる受信信号からの復元クロックを使うこともできる。

QSGMII 編集

QSGMII (quad serial gigabit MII)は、5 Gbps通信用途のMII。2005年にシスコ・システムズが規定したものに基づく[22]

SGMIIを4つ組み合わせたものであるが、配線数はSGMIIバス4つ分よりもはるかに少なく、4対のLVDS送受信号と1対のLVDSクロック信号のみで済む。

XGMII 編集

XGMII (10 gigabit MII, "X"はローマ数字で10を意味する) は、10Gbps通信用途の MII。2002年に IEEE 802.3ae で規定された。

72本の配線からなり、156.25MHz (2エッジで312.5 Mbps)で動作する主信号 TXD/RXD 各32本と、制御フロー RXC/TXC 各4本が送受方向にそれぞれ用意されている[23]。配線数の多さから、ほとんどXAUIに置き換えられている。

関連項目 編集

脚注 編集

  1. ^ 論理層と物理層をつなぐインターフェースRMII”. 2019年3月5日閲覧。
  2. ^ CompTIA A+ 220-701 and 220-702 Cert Guide”. 2019年3月5日閲覧。
  3. ^ IEEE 802.3-2018, Clause 22.2.2 MII signal functional specifications
  4. ^ IEEE 802.3-2018, Clause 22.2.2.1 TX_CLK (transmit clock)
  5. ^ IEEE 802.3-2018, Table 22–1, Permissible encodings of TXD<3:0>, TX_EN, and TX_ER
  6. ^ IEEE 802.3-2018, Table 22–2, Permissible encoding of RXD<3:0>, RX_ER, and RX_DV
  7. ^ IEEE 802.3-2018, Clause 22.2.2.7 RX_DV (Receive Data Valid)
  8. ^ IEEE 802.3-2018, NOTE at Figure 22–11—Transmission with collision
  9. ^ IEEE 802.3-2018, Clause 22.2.4 Management Functions
  10. ^ IEEE 802.3-2018, Clause 45 Management Data Input/Output (MDIO) Interface
  11. ^ RMII™ Specification” (1998年3月20日). 2023年11月1日閲覧。
  12. ^ AN-1405 schematic.
  13. ^ IEEE 802.3-2018, Clause 22.4.2 Signal paths
  14. ^ AN-1469 datasheet
  15. ^ IEEE Standard for Ethernet - Section 3”. ieeexplore.ieee.org. IEEE 802.3 (2015年). 2018年4月20日閲覧。
  16. ^ IEEE 802.3-2018, Clause 35.2.2.1, GTX_CLK (1000 Mb/s transmit clock)
  17. ^ a b Reduced Gigabit Media Independent Interface (RGMII) Version 1.3” (2000年12月10日). 2016年3月3日時点のオリジナルよりアーカイブ。2019年2月12日閲覧。
  18. ^ Reduced Gigabit Media Independent Interface (RGMII) Version 2.0” (2002年4月1日). 2016年3月3日時点のオリジナルよりアーカイブ。2019年2月12日閲覧。
  19. ^ 2.5 V ± 0.2 V (Normal Range) and 1.8 V – 2.7 V (Wide Range) Power Supply Voltage and Interface Standard for Nonterminated Digital Integrated Circuits, JESD8-5A.01” (2006年6月1日). 2019年2月12日閲覧。
  20. ^ High Speed Transceiver Logic (HSTL). A 1.5V Output Buffer Supply Voltage Based Interface Standard for Digital Integrated Circuits, JESD8-6” (1995年8月1日). 2019年2月12日閲覧。
  21. ^ Serial-GMII Specification” (2005年4月27日). 2023年11月1日閲覧。
  22. ^ QSGMII Specification” (2009年7月20日). 2023年11月1日閲覧。
  23. ^ IEEE 802.3-2018, Clause 46.1.6 XGMII structure

外部リンク 編集