Ptp引擎廣播時戳的方法、芯片處理時戳的方法及裝置的制造方法
【技術領域】
[0001]本發明涉及網絡通信技術領域,尤其是涉及一種減少MAC廣播時戳的比特數的PTP引擎廣播時戳的方法,以及基于該方法實現的芯片處理時戳的方法及裝置。
【背景技術】
[0002]IEEE 1588是網絡測量和控制系統的精密時鐘同步協議標準,采用精確時間同步協議(Precis1n Time Synchronizat1n Protocol,PTP),精度可以達到微秒級,目前在以太網的時間同步方案中被大量采用。
[0003]PTP協議實現分為一步模式和兩步模式,兩步模式主要通過軟件輔助實現本地時間與遠端主時鐘的同步,依賴于硬件記錄當前PTP事件消息的時戳,軟件讀取時戳,并把這個時戳放到下一個PTP事件消息中傳遞給對方。PTP一步模式不需要軟件的參與,可以直接把PTP事件消息發送時刻的時戳插入到當前的PTP事件消息中合適的位置,并更新報文的校驗值,可以不需要發送follow_up消息。
[0004]如圖1所示,在以太網交換芯片中由于包含多個媒體訪問控制器(MAC),例如目前應用于數據中心的主流以太網交換芯片往往包含96或者128個以上的MAC。通過集中的PTP引擎來實現本地時間與遠端時鐘的同步,為了降低芯片后端布線的擁塞,采用逐級廣播的方式,第一級廣播到所有的MAC匯聚單元,第二級再從每個MAC匯聚單元廣播到下面的16個MAC中,來實現一步模式的時戳插入和糾正域的計算。
[0005]由于時戳信息包括一共62比特納秒信息數據。因此在由集中的PTP引擎將62比特時戳信息廣播到分布在芯片四周96個或者128個以上的MAC中時,會占用大量的走線資源以及MAC中存儲時戳信息的資源,從而增加芯片布局布線的難度以及芯片最終的面積與功耗。
【發明內容】
[0006]本發明的目的在于克服現有技術的缺陷,提供一種PTP引擎廣播時戳的方法,通過改進集中PTP引擎廣播時戳給MAC的方式,以減少廣播時戳信息在芯片內的走線。
[0007]為實現上述目的,本發明提出如下技術方案:一種PTP引擎廣播時戳的方法,包括:PTP引擎將調整后的低位的納秒時戳信息廣播給所有報文接收方向的MAC和報文發送方向的MAC,同時將完整的時戳信息傳送給入方向處理模塊和出方向處理模塊,所述完整的時戳信息包括完整的納秒時戳信息和調整后的秒加納秒時戳信息。
[0008]優選地,所述PTP引擎將調整后的低位的16比特納秒時戳信息廣播給所有報文接收方向的MAC和報文發送方向的MAC,所述完整的時戳信息包括62比特納秒時戳信息和調整后的62比特秒加納秒時戳信息。
[0009]優選地,從所述接收方向的MAC接收到報文,到報文傳到所述入方向處理模塊的延遲不超過216納秒,以及從所述出方向處理模塊發出報文,到報文到達所述發送方向的MAC的延遲同樣不超過216納秒。
[0010]本發明還提出一種芯片處理時戳的方法,包括以下步驟:
[0011]SI,報文接收方向的MAC收到PTP報文時,將捕捉的由PTP引擎廣播的低位的納秒時戳信息記錄下來,和所述PTP報文匯聚后傳送給入方向處理模塊;
[0012]S2,在所述入方向處理模塊內,根據所述低位的納秒時戳信息和自身收到的所述完整的納秒時戳信息,推算出報文進入所述報文接收方向的MAC時完整的時戳信息;
[0013]S3,在所述出方向處理模塊內,記錄其接收到報文時的納秒時戳信息,再根據步驟S2中推算的報文進入接收方向的MAC時完整的時戳信息,計算出報文從接收方向的MAC接收到出方向處理模塊的延遲時戳信息,所述延遲時戳信息的報文頭隨著所述PTP報文傳送給所述報文發送方向的任意一 MAC ;
[0014]S4,所述報文發送方向的MAC記錄接收所述延遲時戳信息的報文頭時的納秒時戳信息,再根據步驟3計算出的所述延遲時戳信息,推算出所述PTP報文從MAC接收到MAC發送出的完整的延遲時戳信息。
[0015]優選地,所述S2中,推算出報文進入所述報文接收方向的MAC時完整的時戳信息的過程為:對應的邏輯推算公式為:
[0016]FTS_1[61:16] = (FTS_2[15:0]彡 FTS_1[15:0]) ? FTS_2[61:16]-1:FTS_2[61:16],其中,FTS_1[61:16]表示推算出的報文進入接收方向的MAC時的高比特時戳,FTS_1 [15:0]表示報文進入接收方向MAC時,PTP引擎廣播的低16位納秒時戳,FTS_2[61:O]表示報文進入入方向處理模塊時,接收到的完整的62比特納秒時戳信息。
[0017]優選地,所述S3中,計算所述報文經接收方向的MAC接收到出方向處理模塊的延遲時戳信息的公式為:
[0018]FTS_4 [47:0] = FTS_3[61:0]-FTS_l[61:0];
[0019]其中,FTS_4[47:0]表示報文經接收方向的MAC接收到出方向處理模塊的延遲時戳;FTS_3[61:0]表示出方向處理模塊接收到PTP報文時的納秒時戳信息;FTS_1[61:0]表示報文進入接收方向的MAC時完整的時戳信息。
[0020]優選地,所述S4中,推算出報文從MAC接收到MAC發送出的完整的延遲時戳信息的邏輯推算公式為:
[0021]FTS_7[15:0] = FTS_5[15:0]-FTS_3[15:0];
[0022]FTS_6[47:0] = FTS_7[15:0]+FTS_4[47:0];
[0023]其中,FTS_7[15:0]表示報文從出方向處理模塊到發送方向MAC的納秒延遲時間,FTS_5[15:0]表示報文進入發送方向MAC時廣播的低16比特納秒時戳信息,FTS_3[15:0]表示出方向處理模塊接收到PTP報文時的低16比特納秒時戳,FTS_6[47:0]為報文從MAC接收到MAC發送的納秒延遲時間,FTS_4[47:0]為報文經接收方向的MAC接收到出方向處理模塊的納秒延遲時間。
[0024]本發明還提出一種芯片處理時戳的裝置,包括PTP引擎、復數個接收方向的MAC、入方向處理模塊、流量控制(TM)模塊、出方向處理模塊和復數個發送方向的MAC,
[0025]所述PTP引擎用于發送低位的16比特納秒時戳信息給所有所述接收方向的MAC和發送方向的MAC,同時將完整的時戳信息傳送給所述入方向處理模塊和出方向處理模塊;
[0026]所述入方向處理模塊用于根據所述低位的16比特納秒時戳信息和自身收到的所述完整的時戳信息,推算出所述PTP報文進入所述報文接收方向的MAC時完整的時戳信息;
[0027]所述TM模塊用于將所述入方向處理模塊發出的報文轉發給所述出方向處理模塊;
[0028]所述出方向處理模塊用于記錄其接收到所述PTP報文時的納秒時間戳信息,再根據所述入方向處理模塊推算的報文進入接收方向的MAC時完整的時戳信息,計算出報文經接收方向的MAC接收到出方向處理模塊的延遲時戳信息,且將所述延遲時戳信息的報文頭隨著所述PTP報文傳送給所述報文發送方向的任意一 MAC ;
[0029]所述發送方向的MAC用于記錄接收所述延遲時戳信息的報文頭時的納秒時戳信息,再根據所述出方向處理模塊推算出的所述延遲時戳信息,計算出所述PTP報文從MAC接收到MAC發送出的完整的延遲時戳信息。
[0030]優選地,所述裝置還包括報文匯聚模塊和報文分發模塊,所述報文匯聚模塊用于將復數個所述接收方向的MAC接收的報文匯聚后發送給所述入方向處理模塊;所述報文分發模塊用于將所述出方向處理模塊處理后的報文分發給所述發送方向的MAC。
[0031]優選地,所述入方向處理模塊推算出報文進入所述報文接收方向的MAC時完整的時戳信息的邏輯公式為:
[0032]FTS_1[61:16] = (FTS_2[15:0]彡 FTS_1[15:0]) ? FTS_2[61:16]-1:FTS_2[61:16],其中,FTS_1[61:16]表示推算出的報文進入接收方向的MAC時的高比特時戳,FTS_1 [15:0]表示報文進入接收方向MAC時,PTP引擎廣播的低16位納秒時戳,FTS_2[61:O]表示報文進入入方向處理模塊時,接收到的完整的62比特納秒時戳信息;
[0033]所述出方向處理模塊計算報文經接收方向的MAC接收到出方向處理模塊的延遲時戳信息的公式為:
[0034]FTS_4 [47:0] = FTS_3[61:0]-FTS_l[61:0],
[0035]其中,FTS_4[47:0]表示報文經接收方向的MAC接收到出方向處理模塊的延遲時戳;FTS_3[61:0]表示出方向處理模塊接收到PTP報文時的納秒時戳信息;FTS_1[61:0]表示報文進入接收方向的MAC時完整的時戳信息;
[0036]所述發送方向的MAC計算出報文從MAC接收到MAC發送出的完整的延遲時戳信息的邏輯公式為:
[00