• 沒有找到結果。

一、 緒 綸

2.2 資料鏈結層

在資料鏈結層中,資料封包被放到訊框(Frame)以便連續的在網路上傳輸 資料。資料鏈結層提供傳輸協定的管理,並且處理實體層的錯誤訊息以及傳輸流 量的控制,與訊框的同步化。資料鏈結層分成兩個子層:媒體存取控制子層和邏 輯鏈結控制子層。前者負責資料的存取以及傳輸的權限,後者控制訊框的一致 性、資料流量控制以及錯誤的檢查與修正。

介於媒體存取控制子層和邏輯鏈結控制子層之間的子層稱為媒體存取控制 的控制子層(MAC Control)。此子層主要功能是對媒體存取控制子層作控制的 動作。在傳統的乙太網路中,傳送的資料全部為較高層協定或應用程式所需的資 料,媒體存取控制子層並不對這些資料做任何的解讀動作,直到更高層將這些資 料讀取走為止。因此若是對方傳送的資料過快或者過多,將會造成資料溢出而發 生傳輸錯誤。媒體存取控制的控制子層可以有效的避免資料溢出的狀況發生,它 提供暫停(PAUSE)的功能的操作,此項功能是一對一,意即它是終端工作站 對終端工作站、終端工作站對交換器,或者交換器對交換器的連接。傳統的資料 傳輸是由最上層往下層一直到實體層然後傳送到目的目標,媒體存取控制的控制 子層可以產生自己的控制資料,並且只能由目標的媒體存取控制的控制子層來解 碼。

2.3 XGMII 與調解子層

XGMII 主要的目的是提供一個更容易實作而且使媒體存取控制子層與實體 層之間有明確的區隔完整定義的介面。調節子層的功能是在媒體存取控制子層與

實體層介面中將XGMII 訊號對應到實體層訊號;另外調解子層還有一個主要的 功能是鏈結錯誤(link fault)的偵測,當調節子層偵測到鏈結錯誤,它會將錯誤 訊息傳送至媒體存取控制子層與遠端的調節子層,以告知在資料鏈結的過程中發 生錯誤。XGMII 也被定義為將媒體存取子層與調節子層連接到實體層的實體外 部介面,它也可以被隱藏成為一個完全內埠介面。雖然XGMII 在 IEEE 802.3ae 標準中是選擇性的架構,但是絕大部分還是會把它加入標準設計之中。XGMII 有以下特性:

1. 支援 10Gb/s 的操作速率。

2. 資料和控制訊號與參考時脈同步。

3. 提供獨立 32 位元寬度的資料傳送接收路徑。

4. 僅提供全雙工的操作。

5. 訊號階層相容於一般的數位 IC 設計過程。

XGMII 具有獨立傳送與接收資料路徑,每個方向的資料路徑寬度為 32 位元

(TXD<31:0>,RXD<31:0>),4 個控制訊號(TXC<3:0>,RXC<3:0>),和 1 個時脈訊號(TX_CLK,RX_CLX)。圖 2–2 為 XGMII 與調解子層訊號對應結 構圖。傳輸與接收資料路徑分別分為 4 個資料通道,每個通道對應一個控制訊 號,所有的資料與控制訊號都與時脈訊號同步。表2–1 為 XGMII 訊號的對應圖。

PLS_DATA.request

PLS_CARRIER.indicate PLS_SIGNAL.indicate

PLS_DATA.indicate

PLS_DATA_VALID.indicate PLS Service Primitives

TXD<31:0>

TXC<3:0>

TX_CLK

RXD<31:0>

RXC<3:0>

RX_CLK XGMII Signals Reconciliation Sublayer

圖2–2 XGMII 與調解子層訊號對應結構圖

PLS_DATA.request 是傳送資料訊號,調節子層接收到此訊號時會將資料轉 換成XGMII 訊號格式然後傳送出去。PLS_DATA.indicate 為接收資料訊號,調解 子層會將XGMII 傳送過來的資料與控制訊號轉換程成序列的資料串流訊號,然 後傳送至媒體存取控制子層。PLS_DATA_VALID.indicate 主要功能是告知媒體存 取 控 制 子 層 所 接 收 到 的 資 料 訊 號 是 否 正 確 無 誤 。PLS_SIGNAL.indicate 與 PLS_CARRIER.indicate,因為 10Gb/s 僅提供全雙工操作模式,所以這兩個訊號 在此處是完全沒有作用,並且也不會產生任何控制訊息。

TXD RXD

TXC RXC

Lane

<7:0> <0> 0

<15:8> <1> 1

<23:16> <2> 2

<31:24> <3> 3 表2–1 XGMII 訊號對應圖[4]

由媒體存取控制子層傳送過來的序列串流資料必須在 XGMII 之中轉換成適 當的資料格式。在XGMII 中,資料傳輸是以位元組為單位,然後分別透過四條 資料傳輸路徑與四條控制訊號來完成完整的資料傳輸接受過程。圖2–3 為 XGMII 的資料流。

<inter-frame> <preamble> <sfd> <data> <efd>

圖2–3 XGMII 資料流

<inter-frame>在 XGMII 的傳輸或接收上代表沒有資料需要傳輸,也可以視 為在傳輸接收的路徑上正在傳送控制字元。,意即傳輸與接收路徑正處於閒置的 狀態。<inter-frame>的長度取決於媒體存取控制子層或者更高層的模組來決定,

它的功能除了閒至狀態之外,另外還有XGMII 傳輸接收路徑的資料同步、參考 時脈的補償、資料傳輸接收速率的調適等等功能。透過改變<inter-frame>的長度 來完成上述的功能。在此處最小的<inter-frame>長度為五個位元組。

資料傳輸之前,媒體存取控制子層會先送出<preamble>,<preamble>是由七 個位元組所組成,格式如下所示︰

10101010 10101010 10101010 10101010 10101010 10101010 10101010

傳送的時候,第一個位元組會被轉換成<Start>控制字元,當接收端收到<Start>

控制字元之後會將<Start>控制字元轉換為原來的位元組格式。

接在<preamble>之後的為<sfd>,訊框起始字元,其位元格式為︰

10101011

它代表接下來傳送接收的位元組資料為正式資料或控制字元。當資料接收完之 後,會跟隨一個訊框結束字元,<efd>,它代表一整個訊框資料的傳輸結束。表 2–2 會將 XGMII 所有的資料和控制字元格式表示出來,如果不符合表中所示的 資料格式都將視為不合法的傳輸結果。

TXC TXD Description 0 00 through FF Normal data transmission 1 00 through 06 Reserved

1 07 Idle

1 08 through 9B Reserved

1 9C Sequence(only valid in lane 0) 1 9D through FA Reserved

1 FB Start(only valid in lane 0)

1 FC Reserved

1 FD Terminate

1 FE Transmit error propagation

1 FF Reserved

表2–2 合法的 XGMII 編碼表[4]

2.4 實體編碼子層

實體編碼子層主要功能是將接收到的資料經過編碼或解碼的程序,然後傳 送到其他的介面,而它所採用的資料編解碼方式為 64B/66B 編解碼。實體編碼 子層從XGMII 接收到 64 位元的資料,經過同步、編碼、scramble 與加入同步標 頭位元等等處理程序,然後將66 位元的資料以每筆 16 位元的方式傳送到實體媒 體連接子層;或是從實體媒體連接子層接收到資料然後經過同步化、錯誤監視、

descramble 和解碼之後透過 XGMII 與調解子層傳送至資料鏈結層。圖 2–4 為實 體編碼子層的功能架構圖︰

BER & SYNC HEADER

MONITOR BLOCK SYNC

ENCODE

SCRAMBLE

GEAR BOX

DECODE

DESCRAMBLE

PCS PCS TRANSMIT PCS RECEIVE

XGMII

PMA Sublayer

tx_data-group<15:0> PMA_SIGNAL.indicate rx_data-group<15:0>

TXD<31:0> 在資料的起始加入同步標頭(sync header)位元。同步標頭位元是為了接收資料 時同步之用。同步標頭是由兩個位元所組成,並且根據傳送資料的內容,同步標

經過 scrambler 功能模組的資料會被傳送至 Gearbox 功能模組。由於實體編 碼子層與實體媒體連接子層的資料路徑寬度為 16 位元,所以 Gearbox 會將 66 位元的資料分解成16 位元寬度,以符合實體媒體連接子層的介面規格。

在接收路徑上,資料由實體媒體連接子層傳送過來,實體編碼子層接收資料 的第一個動作就是確定資料的同步。當接收到66 位元的資料後,實體編碼子層 會先檢查同步標頭位元,如果同步標頭位元符合規格則此時接收資料狀態就會進 入資料區塊鎖定(block lock)的階段,代表資料的邊界正確的被找到。若是同 步標頭位元發生錯誤,實體編碼子層會繼續在接收資料中尋找正確的同步標頭位 元,直到找到正確的標頭位元或是位元錯誤率超過規定數值為止。位元錯誤率監 視模組在監視傳輸中資料位元錯誤率是否超過規定數值。位元錯誤率監視器有一 個125 微秒的計時器,當傳輸開始計時器開始計時,若是在 125 微秒之中,同步 標頭位元錯誤低於16 個以下,則位元錯誤率在規定範圍之內;反之同步標頭位 元錯誤等於或大於16 個,則位元錯誤率監視器會送出高位元錯誤率訊息並傳送 至上層功能模組,由上層的功能模組做適當的處理。

接收的資料完成同步動作之後便送到descrambler 功能,將資料轉換回原來 的格式。最後經過descrambler 功能模組的資料會送到解碼功能模組,在這裡接 收的資料會根據同步標頭檔來確定是為一般資料或者是控制位元,依照資料的內 容分別轉換成適當的資料與控制字元格式然後傳送至XGMII。圖 2–5、2–6 為資 料傳送接收時的位元排列圖。

Scrambler

Gearbox

TXD<0> First transfer TXD<31> TXD<0> Second transfer TXD<31>

Sync header

Sync header

tx_data-group<0> tx_data-group<15>

XGMII

Output of encoder function

Output of scrambler function

Transmit block

PMA service interface

TxB<0> TxB<65>

圖2–5 傳送位元排列圖[4]

Descrambler

Block Sync

RXD<0> First transfer RXD<31> RXD<0> Second transfer RXD<31>

Sync header

Sync header

rx_data-group<0> rx_data-group<15>

XGMII

Input of decoder function

Input of descrambler function

Receiver block

PMA service interface

RxB<0> RxB<65>

7 0

圖2–6 接收位元排列圖[4]

2.5 實體媒介連接子層

在資料傳輸過程中,實體媒介連接子層會將 16 位元的 tx_data-group 訊號加 以序列化成tx_bits,並將它們原封不動地傳送到實體媒介相依子層,然後在通道 上進行資料傳輸。同樣地,在資料接收過程中,實體媒介連接子層會復原接收的 時脈訊號,並將接收的串流訊號,rx_bit,解序列化為 16 位元的 rx_data-group,

然後將資料上傳至實體編碼子層中。同時實體媒體連接子層也要負責檢查傳入封 包的第一組位元訊號,並調整起始邊碼區塊的界限以確保編碼區塊排列適當。總 結來說,實體媒介連接子層具有以下功能:

1. 在資料傳送方向

(1) 提供來源時脈訊號給接收端。

(2) 將 16 位元寬的傳送資料序列化。

(3) 傳送已序列化的資料至實體媒介相依子層。

2. 在接收資料方向

(1) 復原串列資料的時脈訊號。

(2) 提供接收時脈訊號給實體編碼子層。

(3) 解序列化 16 位元的串列資料。

(4) 將 16 位元寬的資料傳送至實體編碼子層。

(5) 提供鏈結狀態的資訊。

圖 2–7 為實體媒介連接子層與實體媒介相依子層介面訊號結構圖。