在多個mac中實現ptp一步模式和兩步模式的方法及裝置的製作方法
2023-05-21 11:15:31 1
專利名稱:在多個mac中實現ptp一步模式和兩步模式的方法及裝置的製作方法
技術領域:
本發明涉及網絡通信領域,尤其涉及一種在多個MAC中實現PTP —步模式和兩步模式的方法及裝置。
背景技術:
IEEE 1588是網絡測量和控制系統的精密時鐘同步協議標準,採用精確時間同步協議(Precision Time Synchronization Protocol, PTP),精度可以達到微秒級,目前在乙太網的時間同步方案中被大量採用。通常PTP協議實現分為一步模式和兩步模式,兩步模式主要通過軟體輔助實現本·地時間與遠端主時鐘的同步,依賴於硬體記錄當前PTP事件消息的時戳,軟體讀取時戳,並把這個時戳放到下一個PTP事件消息中傳遞給對方;而一步模式不需要軟體的參與,可以直接把PTP事件消息發送時刻的時戳插入到當前的PTP事件消息中合適的位置,並更新報文的校驗值,可以不需要發送follow_Up消息。目前可見的PTP —步模式和兩步模式的實現方案有以下兩種一步模式和兩步模式在單個MAC或者PHY中實現;一步模式和兩步模式在多個MAC中通過請求時戳和響應的機制實現。然而,無論何種現有的實現方案,MAC獲取時戳均需要通過請求響應的機制來實現,且無法實現針對一個埠記錄多個時戳的功能。
發明內容
為解決上述技術問題,本發明的目的在於提供一種在多個MAC中實現PTP —步模式和兩步模式的方法,其通過集中的PTP引擎來是實現本地時間和遠端時間的同步,並通過這個集中的PTP引擎把時戳廣播到所有的MAC來實現PTP —步模式和兩步模式,通過多個MAC回送報文起始信號和序列標誌到PTP引擎中,實現兩步模式發送時刻時戳的記錄,並可以實現針對一個埠記錄多個發送時刻時戳的功能。。相應所述方法,本發明的另一目的在於提供一種在多個MAC中實現PTP —步模式和兩步模式的裝置。為實現上述發明目的之一,本發明提供的一種在多個MAC中實現PTP —步模式和兩步模式的方法,包括以下步驟
51、接收PTP事件信息的報文;
52、在所述報文的起始標誌獲取從PTP引擎廣播而來的時戳,以作為接收報文起始時刻的接收時刻時戳;
53、判斷所述報文的處理模式,根據判斷結果對所述報文進行相對應的處理;
54、發送所述報文;其中,若處理模式為一步模式,則在發送報文的起始時刻獲取從PTP引擎廣播而來的時戳,以作為報文的發送時刻時戳插入到報文的合適位置後發送報文;若處理模式為兩步模式,則通過多個MAC回送報文發送起始信號和序列標誌號給所述PTP引擎,並記錄發送時刻時戳在所述PTP引擎中。
作為本發明的進一步改進,所述「從PTP引擎廣播時戳」具體包括以下步驟
在PTP引擎內進行漂移調整和時間差調整,以得到調整後的時戳;
將所述調整後的時戳廣播到各個QM模塊中;
通過所述QM模塊將所述調整後的時戳廣播到與各個QM模塊相對應的各個MAC中。作為本發明的進一步改進,所述S2步驟具體包括
521、在所述報文的起始標誌獲取從PTP引擎廣播而來的時戳,以作為接收報文起始時刻的接收時刻時戳;
522、將所述接收時刻時戳附加在報文的尾部,跟隨報文上行至入方向包處理引擎; 523、在所述入方向包處理引擎中將所述接收時刻時戳轉移到內部的一附加報文頭中。作為本發明的進一步改進,所述S3步驟具體包括
531、判斷所述報文的處理模式為一步模式還是兩步模式;
532、若所述處理模式為一步模式,則將所述附加報文頭和報文一起轉發到適當的目的埠,在目的埠中取得報文發送起始時刻的時戳;若所述處理模式為兩步模式,則將所述附加報文頭和報文一起發送給CPU的PTP協議棧,其中,不需要額外的寄存器記錄所述接收時刻時戳。作為本發明的進一步改進,所述S4步驟中實現兩步模式的步驟具體包括
每個MAC在報文發送時刻將報文發送起始信號和序列標誌號發送給對應的QM模塊; 每個QM模塊匯聚所有與該QM模塊相對應的MAC發送的報文發送起始信號和序列標誌
號;
所述QM模塊將所有匯聚到的報文發送起始信號和序列標誌號發送給所述PTP引擎,並根據所述報文發送起始信號將發送時刻時戳和所述序列標誌號以及發送埠位圖存儲於所述PTP引擎中的FIFO存儲器中。為實現本發明的另一發明目的,本發明提供的一種在多個MAC中實現PTP —步模式和兩步模式的裝置,包括
報文接收單元,用於接收PTP事件信息的報文;
接收時刻時戳獲取單元,用於在所述報文的起始標誌獲取從PTP引擎廣播而來的時戳,以作為接收報文起始時刻的接收時刻時戳;
報文處理單元,用於判斷所述報文的處理模式,根據判斷結果對所述報文進行相對應的處理;
報文發送單元,用於發送所述報文;其中,若處理模式為一步模式,則在發送報文的起始時刻獲取從PTP引擎廣播而來的時戳,以作為報文的發送時刻時戳插入到報文的合適位置後發送報文;若處理模式為兩步模式,則通過多個MAC回送報文發送起始信號和序列標誌號給所述PTP引擎,並記錄發送時刻時戳在所述PTP引擎中。作為本發明的進一步改進,所述裝置還包括一時戳廣播單元,該單元用於
在PTP引擎內進行漂移調整和時間差調整,以得到調整後的時戳;
將所述調整後的時戳廣播到各個QM模塊中;
通過所述QM模塊將所述調整後的時戳廣播到與各個QM模塊相對應的各個MAC中。作為本發明的進一步改進,所述接收時刻時戳獲取單元還用於
在所述報文的起始標誌獲取從PTP引擎廣播而來的時戳,以作為接收報文起始時刻的接收時刻時戳;
將所述接收時刻時戳附加在報文的尾部,跟隨報文上行至入方向包處理引擎;
在所述入方向包處理引擎中將所述接收時刻時戳轉移到內部的一附加報文頭中。作為本發明的進一步改進,所述報文處理單元還用於
判斷所述報文的處理模式為一步模式還是兩步模式;
若所述處理模式為一步模式,則將所述附加報文頭和報文一起轉發到適當的目的埠,在目的埠中取得報文發送起始時刻的時戳;若所述處理模式為兩步模式,則將所述附加報文頭和報文一起發送給CPU的PTP協議棧,其中,不需要額外的寄存器記錄所述接收時刻時戳。作為本發明的進一步改進,所述報文發送單元還用於
每個MAC在報文發送時刻將報文發送起始信號和序列標誌號發送給對應的QM模塊; 每個QM模塊匯聚所有與該QM模塊相對應的MAC發送的報文發送起始信號和序列標誌
號;
所述QM模塊將所有匯聚到的報文發送起始信號和序列標誌號發送給所述PTP引擎,並根據所述報文發送起始信號將發送時刻時戳和所述序列標誌號以及發送埠位圖存儲於所述PTP引擎中的FIFO存儲器中。與現有技術相比,本發明的有益效果是本發明通過集中的PTP引擎來實現本地時間與遠端時鐘的同步,並通過這個集中的PTP引擎把時戳廣播到所有的MAC來實現一步模式和兩步模式,不需要通過請求響應的機制,也不需要在PTP引擎中區分MAC的發送和接收方向既可以實現;另外通過多個MAC回送報文起始信號和報文序列標誌到PTP引擎中,實現多個MAC發送時刻時戳的記錄,並可以實現針對一個埠連續記錄多個發送時刻時戳的功能。
圖I是本發明一實施方式中時戳廣播機制示意 圖2是本發明一實施方式中發送時刻時戳記錄機制示意 圖3是本發明一實施方式中在多個MAC中實現PTP—步模式和兩步模式的方法流程
圖4是本發明一實施方式中從PTP廣播時戳的流程 圖5是本發明一實施方式中S2具體步驟的流程 圖6是本發明一實施方式中S3具體步驟的流程 圖7是本發明一實施方式中S4步驟中實現兩步模式的具體步驟的流程 圖8是本發明一實施方式中在多個MAC中實現PTP—步模式和兩步模式的裝置示意圖 。
具體實施例方式以下將結合附圖所示的具體實施方式
對本發明進行詳細描述。但這些實施方式並不限制本發明,本領域的普通技術人員根據這些實施方式所做出的結構、方法、或功能上的變換均包含在本發明的保護範圍內。
如圖I、圖2所示,在本發明一實施方式中,以乙太網交換機晶片為例,對本發明的具體實施方案進行描述,圖中所示的乙太網交換晶片包括有48個MAC (媒體訪問控制器)和一個集中的PTP (精確時間同步協議)引擎,所示PTP引擎實現2個主要的功能一個是本地時間的調整,另一個是發送時刻時戳的記錄。其中FRC是根據輸入的參考時鐘頻率進行自由計數的一個自由計數器,Drift Adjust和Offset Adjust分別是漂移調整和時間差調整,漂移調整用於糾正本地參考晶振的頻偏,時間差調整用於補償本地時間和遠端標準時間的差值,最後得到調整後的時間值應用於接收和發送時刻時戳。如圖3所示,在本發明的一實施方式中,一種在多個MAC中實現PTP—步模式和兩步模式的方法,包括以下步驟
SI、接收PTP事件信息的報文;優選地,從網絡接收報文。S2、在所述報文的起始標誌獲取從PTP引擎廣播而來的時戳,以作為接收報文起始時刻的接收時刻時戳;ptp協議實現分為一步模式和兩步模式,兩步模式主要通過軟體·輔助實現本地時間與遠端主時鐘的同步,依賴於硬體記錄當前PTP事件消息的時戳,軟體讀取時戳,並把這個時戳放到下一個PTP事件消息中傳遞給對方;ΡΤΡ —步模式不需要軟體的參與,可以直接把PTP事件消息發送時刻的時戳插入到當前的PTP事件消息中合適的位置,並更新報文的校驗值,可以不需要發送folloW_up消息。優選地,在MAC的接收方向,實現一步模式和兩步模式是一致的,當MAC接收到所述PTP事件信息報文時,需要對當前報文打時戳,則MAC就會在報文起始標誌取得從PTP引擎廣播而來的時戳,作為接收報文起始時刻的接收時刻時戳,這個時戳有64bits位寬,關於PTP引擎廣播時戳的方式在以下內容中會加以說明。S3、判斷所述報文的處理模式,根據判斷結果對所述報文進行相對應的處理;在本實施方式中,根據所述報文的處理模式的不同(或一步模式或兩步模式),來確定怎麼樣處理附加報文頭和報文,具體地,根據所實現處理模式的不同來決定將所述附加報文頭和報文發送到適當的處理單元,比如,CPU的PTP協議棧、目的埠等等。再運用這些內部的處理單元對所述報文作處理動作。S4、發送所述報文;其中,若處理模式為一步模式,則在發送報文的起始時刻獲取從PTP引擎廣播而來的時戳,以作為報文的發送時刻時戳插入到報文的合適位置後發送報文;若處理模式為兩步模式,則通過多個MAC回送報文發送起始信號和序列標誌號給所述PTP引擎,並記錄所述發送時刻時戳在所述PTP引擎中。其中,當有對應的事件發生時,MAC發送狀態寄存器MACTXSTAT便會在每個MAC在報文發送起始時刻發送報文發送起始信號macTxSfd,所述序列標誌號是指報文中對應序列號的末兩位。如圖4所示,所述「從PTP引擎廣播時戳」具體包括以下步驟
在PTP引擎內進行漂移調整和時間差調整,以得到調整後的時戳;其中,Drift Adjust和Offset Adjust分別是漂移調整和時間差調整,漂移調整用於糾正本地參考晶振的頻偏,時間差調整用於補償本地時間和遠端標準時間的差值,最後得到調整後的時間值應用於接收和發送時刻時戳。將所述調整後的時戳廣播到各個QM模塊中;可參照圖I所示,PTP引擎將調整後的時戳廣播到所有的48個MAC,為了降低晶片後端布線的擁塞,採用逐級廣播的方式,所述PTP引擎廣播時戳的第一級動作是將所述時戳廣播到所有的QuadMac模塊(文中簡稱為QM模塊),優選地,本實施方式中,所述QM模塊共設置了 12個,每一個QM模塊對應4個獨立的MAC0通過所述QM模塊將所述調整後的時戳廣播到與各個QM模塊相對應的各個MAC中。所述PTP引擎廣播時戳的第二級動作便是再從每個QuadMac模塊廣播到屬於這個QuadMac的4個MAC中,這樣在MAC中接收和發送報文可以同時採樣這個廣播時戳。通過本實施方式的這種PTP引擎廣播時戳的機制,多個MAC在接收到外部報文的時候無需通過請求響應的機制即可實現當前時戳的獲取,且接收和發送報文可同時採樣這個廣播時戳,無需在PTP引擎中區分MAC的發送和接收方向。如圖5所示,所述S2步驟具體包括
S21、在所述報文的起始標誌獲取從PTP引擎廣播而來的時戳,以作為接收報文起始時 刻的接收時刻時戳;優選地,所述時戳無需通過請求響應機制即可獲得,當MAC接收到外部的報文之時,所述MAC便會直接從與其相對應的QM模塊獲取從PTP引擎廣播到各個QM模塊的時戳作為該報文起始時刻的接收時刻時戳。S22、將所述接收時刻時戳附加在報文的尾部,跟隨報文上行至入方向包處理引擎;在得到所述報文的接收時刻時戳後,將該接收時刻時戳附加在所述報文的尾部,並跟隨報文上行至入方向包處理引擎,其中,所述入方向包處理引擎為內部用於對所述PTP事件信息的報文作處理的裝置。S23、在所述入方向包處理引擎中將所述接收時刻時戳轉移到內部的一附加報文頭中。優選地,在所述入方向包處理引擎中,所述64bit的接收時刻時戳會被轉移到內部的一個附加報文頭中,需要說明的是,S2中所述的各步驟中,無論是實現一步模式還是兩步模式,所需要進行的動作都是一致的。如圖6所示,所述S3步驟具體包括
S31、判斷所述報文的處理模式為一步模式還是兩步模式;由於在此步驟中,對於採取PTP—步模式和兩步模式,兩種模式所採取的對於報文的處理方式是截然不同的,所以在處理之前需要判斷所述報文的處理模式。S32、若所述處理模式為一步模式,則將所述附加報文頭和報文一起轉發到適當的目的埠,在目的埠中取得報文發送起始時刻的時戳;若所述處理模式為兩步模式,則將所述附加報文頭和報文一起發送給CPU的PTP協議棧,其中,不需要額外的寄存器記錄所述接收時刻時戳。具體地,在一步模式中,報文發送起始時刻的時戳是PTP引擎廣播下來的時戳取得,把發送時刻時戳減去接收時刻時戳就可以得到晶片內部的駐留時間,可以實現一步模式的透明時鐘。如圖7所示,所述S4步驟中實現兩步模式的步驟具體包括
每個MAC在報文發送時刻將報文發送起始信號和序列標誌號發送給對應的QM模塊;可參照圖2,圖中每四個MAC對應一個QM模塊,比如MAC#0、MAC#1、MAC#2、MAC#3四個媒體訪問控制器與一個QM模塊QM#0之間進行通信,每一個MAC在報文發送時刻將報文的報文發送起始信號macTxSfd與報文中序列號的末兩位macPtpTxSeqId[l :0]發送給所述四個MAC所共用的QM模塊。每個QM模塊匯聚所有與該QM模塊相對應的MAC發送的報文發送起始信號和序列標誌號;可參照圖2,在本實施方式中,每個QM模塊匯聚了四個MAC的報文發送起始信號macTxSfd與報文中序列號的末兩位,也就是序列標誌號macPtpTxSeqId[l :0]後,再發送給集中的PTP引擎。所述QM模塊將所有匯聚到的報文發送起始信號和序列標誌號發送給所述PTP引擎,並根據所述報文發送起始信號將發送時刻時戳和所述序列標誌號以及發送埠位圖存儲於所述PTP引擎中的FIFO存儲器中。在本實施方式中,所述PTP引擎內部設有一 64深度的FIFO (先進先出的數據緩存器),其數據結構如下所示
{ macBitMap[47:0], timeStamp[63:0], sequenceld[95:0] },其中,macBitMap 表不MAC的發送埠位圖;timeStamp表 示對應報文當前發送時刻的時戳;sequenceld表示對應的報文序列標誌號;
FIFO中每個條目的記錄位寬等於208bits,由於48個MAC有可能是同時發送PTP報文,所以FIFO中記錄了 48個MAC的發送埠位圖、對應的報文序列標誌號以及當前發送時刻的時戳。通過這種實現機制,這個64深度的FIFO最多可以一次性記錄3072個(64x48)時戳供PTP協議棧實現兩步模式的PTP協議和後續處理,每個發送MAC —次性最多可以記錄4個發送PTP報文的時戳。通過多個MAC回送報文起始信號和報文序列標誌號到PTP引擎中,並通過FIFO記錄發送時刻時戳,實現多個MAC發送時戳的記錄,並可以實現針對一個埠記錄多個發送時戳的功能。如圖8所示,本發明一實施方式中一種在多個MAC中實現PTP—步模式和兩步模式的裝置包括
報文接收單元101 :用於接收PTP事件信息的報文;優選地,從網絡接收報文。接收時刻時戳獲取單元102 :用於在所述報文的起始標誌獲取從PTP引擎廣播而來的時戳,以作為接收報文起始時刻的接收時刻時戳;ptp協議實現分為一步模式和兩步模式,兩步模式主要通過軟體輔助實現本地時間與遠端主時鐘的同步,依賴於硬體記錄當前PTP事件消息的時戳,軟體讀取時戳,並把這個時戳放到下一個PTP事件消息中傳遞給對方;ΡΤΡ—步模式不需要軟體的參與,可以直接把PTP事件消息發送時刻的時戳插入到當前的PTP事件消息中合適的位置,並更新報文的校驗值,可以不需要發送f0ll0W_up消息。優選地,在MAC的接收方向,實現一步模式和兩步模式是一致的,當MAC接收到所述PTP事件信息報文時,需要對當前報文打時戳,則MAC就會在報文起始標誌取得從PTP引擎廣播而來的時戳,作為接收報文起始時刻的接收時刻時戳,這個時戳有64bits位寬,關於PTP引擎廣播時戳的方式在以下內容中會加以說明。報文處理單元103 :用於判斷所述報文的處理模式,根據判斷結果對所述報文進行相對應的處理;在本實施方式中,根據所述報文的處理模式的不同(或一步模式或兩步模式),來確定怎麼樣處理附加報文頭和報文,具體地,根據所實現處理模式的不同來決定將所述附加報文頭和報文發送到適當的處理單元,比如,CPU的PTP協議棧、目的埠等等。再運用這些內部的處理單元對所述報文作處理動作。報文發送單元104 :用於發送所述報文;其中,若處理模式為一步模式,則在發送報文的起始時刻獲取從PTP引擎廣播而來的時戳,以作為報文的發送時刻時戳插入到報文的合適位置後發送報文;若處理模式為兩步模式,則通過多個MAC回送報文發送起始信號和序列標誌號給所述PTP引擎,並記錄發送時刻時戳在所述PTP引擎中。其中,當有對應的事件發生時,MAC發送狀態寄存器MACTXSTAT便會在每個MAC在報文發送起始時刻發送報文發送起始信號macTxSfd,所述序列標誌號是指報文中對應序列號的末兩位。如圖4所示,所述一種在多個MAC中實現PTP —步模式和兩步模式的裝置還包括一時戳廣播單元,該單元用於
在PTP引擎內進行漂移調整和時間差調整,以得到調整後的時戳;其中,Drift Adjust和Offset Adjust分別是漂移調整和時間差調整,漂移調整用於糾正本地參考晶振的頻偏,時間差調整用於補償本地時間和遠端標準時間的差值,最後得到調整後的時間值應用於接收和發送時刻時戳。將所述調整後的時戳廣播到各個QM模塊中;可參照圖I所示,PTP引擎將調整後的時戳廣播到所有的48個MAC,為了降低晶片後端布線的擁塞,採用逐級廣播的方式,所述PTP引擎廣播時戳的第一級動作是將所述時戳廣播到所有的QuadMac模塊(文中簡稱為QM 模塊),優選地,本實施方式中,所述QM模塊共設置了 12個,每一個QM模塊對應4個獨立的MAC0通過所述QM模塊將所述調整後的時戳廣播到與各個QM模塊相對應的各個MAC中。所述PTP引擎廣播時戳的第二級動作便是再從每個QuadMac模塊廣播到屬於這個QuadMac的4個MAC中,這樣在MAC中接收和發送報文可以同時採樣這個廣播時戳。通過本實施方式的這種PTP引擎廣播時戳的機制,多個MAC在接收到外部報文的時候無需通過請求響應的機制即可實現當前時戳的獲取,且接收和發送報文可同時採樣這個廣播時戳,無需在PTP引擎中區分MAC的發送和接收方向。如圖5所示,所述接收時刻時戳獲取單元102還用於在所述報文的起始標誌獲取從PTP引擎廣播而來的時戳,以作為接收報文起始時刻的接收時刻時戳;優選地,所述時戳無需通過請求響應機制即可獲得,當MAC接收到外部的報文之時,所述MAC便會直接從與其相對應的QM模塊獲取從PTP引擎廣播到各個QM模塊的時戳作為該報文起始時刻的接收時刻時戳。所述接收時刻時戳獲取單元102還用於將所述接收時刻時戳附加在報文的尾部,跟隨報文上行至入方向包處理引擎;在得到所述報文的接收時刻時戳後,將該接收時刻時戳附加在所述報文的尾部,並跟隨報文上行至入方向包處理引擎,其中,所述入方向包處理引擎為內部用於對所述PTP事件信息的報文作處理的裝置。所述接收時刻時戳獲取單元102還用於在所述入方向包處理引擎中將所述接收時刻時戳轉移到內部的一附加報文頭中。優選地,在所述入方向包處理引擎中,所述64bit的接收時刻時戳會被轉移到內部的一個附加報文頭中,需要說明的是,S2中所述的各步驟中,無論是實現一步模式還是兩步模式,所需要進行的動作都是一致的。如圖6所示,所述報文處理單元103還用於判斷所述報文的處理模式為一步模式還是兩步模式;由於在此步驟中,對於採取PTP —步模式和兩步模式,兩種模式所採取的對於報文的處理方式是截然不同的,所以在處理之前需要判斷所述報文的處理模式。所述報文處理單元103還用於若為一步模式,則將所述附加報文頭和報文一起轉發到適當的目的埠,在目的埠中取得報文發送起始時刻的時戳;若為兩步模式,則將所述附加報文頭和報文一起發送給CPU的PTP協議棧,其中,不需要額外的寄存器記錄所述接收時刻時戳。具體地,在一步模式中,報文發送起始時刻的時戳是PTP引擎廣播下來的時戳取得,把發送時刻時戳減去接收時刻時戳就可以得到晶片內部的駐留時間,可以實現一步模式的透明時鐘。如圖7所示,所述報文發送單元104還用於
每個MAC在報文發送時刻將報文發送起始信號和序列標誌號發送給對應的QM模塊;可參照圖2,圖中每四個MAC對應一個QM模塊,比如MAC#0、MAC#1、MAC#2、MAC#3四個媒體訪問控制器與一個QM模塊QM#0之間進行通信,每一個MAC在報文發送時刻將報文的報文發送起始信號macTxSfd與報文中序列號的末兩位macPtpTxSeqId[l :0]發送給所述四個MAC所共用的QM模塊。每個QM模塊匯聚所有與該QM模塊相對應的MAC發送的報文發送起始信號和序列標誌號;可參照圖2,在本實施方式中,每個QM模塊匯聚了四個MAC的報文發送起始信號macTxSfd與報文中序列號的末兩位,也就是序列標誌號macPtpTxSeqId[l :0]後,再發送給·集中的PTP引擎。所述QM模塊將所有匯聚到的報文發送起始信號和序列標誌號發送給所述PTP引擎,並根據所述報文發送起始信號將發送時刻時戳和所述序列標誌號以及發送埠位圖存儲於所述PTP引擎中的FIFO存儲器中。在本實施方式中,所述PTP引擎內部設有一 64深度的FIFO (先進先出的數據緩存器),其數據結構如下所示
{ macBitMap[47:0], timeStamp[63:0], sequenceld[95:0] },其中,macBitMap 表不MAC的發送埠位圖;timeStamp表示對應報文當前發送時刻的時戳;sequenceld表示對應的報文序列標誌號;
FIFO中每個條目的記錄位寬等於208bits,由於48個MAC有可能是同時發送PTP報文,所以FIFO中記錄了 48個MAC的埠位圖、對應的報文序列標誌號以及當前發送時刻的時戳。通過這種實現機制,這個64深度的FIFO最多可以一次性記錄3072個(64x48)時戳供PTP協議棧實現兩步模式的PTP協議和後續處理,每個發送MAC —次性最多可以記錄4個發送PTP報文的時戳。通過多個MAC回送報文起始信號和報文序列標誌號到PTP引擎中,並通過FIFO記錄時戳,實現多個MAC發送時戳的記錄,並可以實現針對一個埠記錄多個發送時戳的功能。以上所描述的裝置實施方式僅僅是示意性的,其中所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位於一個地方,或者也可以分布到多個網絡單元上。可以根據實際的需要選擇其中的部分或者全部模塊來實現本實施方式方案的目的。本領域普通技術人員在不付出創造性勞動的情況下,即可以理解並實施。為了描述的方便,描述以上裝置時以功能分為各種單元分別描述。當然,在實施本申請時可以把各單元的功能在同一個或多個軟體和/或硬體中實現。通過以上的實施方式的描述可知,本領域的技術人員可以清楚地了解到本申請可藉助軟體加必需的通用硬體平臺的方式來實現。基於這樣的理解,本申請的技術方案本質上或者說對現有技術做出貢獻的部分可以以軟體產品的形式體現出來,該計算機軟體產品可以存儲在存儲介質中,如R0M/RAM、磁碟、光碟等,包括若干指令用以使得一臺計算機設備(可以是個人計算機,伺服器,或者網絡設備等)執行本申請各個實施方式或者實施方式的某些部分所述的方法。以上所描述的裝置實施方式僅僅是示意性的,其中所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位於一個地方,或者也可以分布到多個網絡單元上。可以根據實際的需要選擇其中的部分或者全部模塊來實現本實施方式方案的目的。本領域普通技術人員在不付出創造性勞動的情況下,即可以理解並實施。本申請可用於眾多通用或專用的計算系統環境或配置中。例如個人計算機、伺服器計算機、手持設備或可攜式設備、平板型設備、多處理器系統、基於微處理器的系統、置頂盒、可編程的消費電子設備、網絡PC、小型計算機、大型計算機、包括以上任何系統或設備的分布式計算環境等等。本申請可以在由計算機執行的計算機可執行指令的一般上下文中描述,例如程序模塊。一般地,程序模塊包括執行特定任務或實現特定抽象數據類型的例程、程序、對象、組件、數據結構等等。也可以在分布式計算環境中實踐本申請,在這些分布式計算環境中,由通過通信網絡而被連接的遠程處理設備來執行任務。在分布式計算環境中,程序模塊可以位於包括存儲設備在內的本地和遠程計算機存儲介質中。
應當理解,雖然本說明書按照實施方式加以描述,但並非每個實施方式僅包含一個獨立的技術方案,說明書的這種敘述方式僅僅是為清楚起見,本領域技術人員應當將說明書作為一個整體,各實施方式中的技術方案也可以經適當組合,形成本領域技術人員可以理解的其他實施方式。上文所列出的一系列的詳細說明僅僅是針對本發明的可行性實施方式的具體說明,它們並非用以限制本發明的保護範圍,凡未脫離本發明技藝精神所作的等效實施方式或變更均應包含在本發明的保護範圍之內。
權利要求
1.一種在多個MAC中實現PTP—步模式和兩步模式的方法,其特徵在於,所述方法包括以下步驟 .51、接收PTP事件信息的報文; . 52、在所述報文的起始標誌獲取從PTP引擎廣播而來的時戳,以作為接收報文起始時刻的接收時刻時戳; .53、判斷所述報文的處理模式,根據判斷結果對所述報文進行相對應的處理; .54、發送所述報文;其中,若處理模式為一步模式,則在發送報文的起始時刻獲取從PTP引擎廣播而來的時戳,以作為報文的發送時刻時戳插入到報文的合適位置後發送報文;若處理模式為兩步模式,則通過多個MAC回送報文發送起始信號和序列標誌號給所述PTP引擎,並記錄發送時刻時戳在所述PTP引擎中。
2.根據權利要求I所述的方法,其特徵在於,所述「從PTP引擎廣播時戳」具體包括以下步驟 在PTP引擎內進行漂移調整和時間差調整,以得到調整後的時戳; 將所述調整後的時戳廣播到各個QM模塊中; 通過所述QM模塊將所述調整後的時戳廣播到與各個QM模塊相對應的各個MAC中。
3.根據權利要求I所述的方法,其特徵在於,所述S2步驟具體包括 . 521、在所述報文的起始標誌獲取從PTP引擎廣播而來的時戳,以作為接收報文起始時刻的接收時刻時戳; . 522、將所述接收時刻時戳附加在報文的尾部,跟隨報文上行至入方向包處理引擎; . 523、在所述入方向包處理引擎中將所述接收時刻時戳轉移到內部的一附加報文頭中。
4.根據權利要求I或3任意一項所述的方法,其特徵在於,所述S3步驟具體包括 .531、判斷所述報文的處理模式為一步模式還是兩步模式; .532、若所述處理模式為一步模式,則將所述附加報文頭和報文一起轉發到適當的目的埠,在目的埠中取得報文發送起始時刻的時戳;若所述處理模式為兩步模式,則將所述附加報文頭和報文一起發送給CPU的PTP協議棧,其中,不需要額外的寄存器記錄所述接收時刻時戳。
5.根據權利要求2所述的方法,其特徵在於,所述S4步驟中實現兩步模式的步驟具體包括 每個MAC在報文發送時刻將報文發送起始信號和序列標誌號發送給對應的QM模塊; 每個QM模塊匯聚所有與該QM模塊相對應的MAC發送的報文發送起始信號和序列標誌號; 所述QM模塊將所有匯聚到的報文發送起始信號和序列標誌號發送給所述PTP引擎,並根據所述報文發送起始信號將發送時刻時戳和所述序列標誌號以及發送埠位圖存儲於所述PTP引擎中的FIFO存儲器中。
6.一種在多個MAC中實現PTP —步模式和兩步模式的裝置,其特徵在於,所述裝置包括 報文接收單元,用於接收PTP事件信息的報文; 接收時刻時戳獲取單元,用於在所述報文的起始標誌獲取從PTP引擎廣播而來的時戳,以作為接收報文起始時刻的接收時刻時戳;報文處理單元,用於判斷所述報文的處理模式,根據判斷結果對所述報文進行相對應的處理; 報文發送單元,用於發送所述報文;其中,若處理模式為一步模式,則在發送報文的起始時刻獲取從PTP引擎廣播而來的時戳,以作為報文的發送時刻時戳插入到報文的合適位置後發送報文;若處理模式為兩步模式,則通過多個MAC回送報文發送起始信號和序列標誌號給所述PTP引擎,並記錄發送時刻時戳在所述PTP引擎中。
7.根據權利要求6所述的裝置,其特徵在於,所述裝置還包括一時戳廣播單元,該單元用於 在PTP引擎內進行漂移調整和時間差調整,以得到調整後的時戳; 將所述調整後的時戳廣播到各個QM模塊中; 通過所述QM模塊將所述調整後的時戳廣播到與各個QM模塊相對應的各個MAC中。
8.根據權利要求6所述的裝置,其特徵在於,所述接收時刻時戳獲取單元還用於 在所述報文的起始標誌獲取從PTP引擎廣播而來的時戳,以作為接收報文起始時刻的接收時刻時戳; 將所述接收時刻時戳附加在報文的尾部,跟隨報文上行至入方向包處理引擎; 在所述入方向包處理引擎中將所述接收時刻時戳轉移到內部的一附加報文頭中。
9.根據權利要求6或8所述的裝置,其特徵在於,所述報文處理單元還用於 判斷所述報文的處理模式為一步模式還是兩步模式; 若所述處理模式為一步模式,則將所述附加報文頭和報文一起轉發到適當的目的埠,在目的埠中取得報文發送起始時刻的時戳;若所述處理模式為兩步模式,則將所述附加報文頭和報文一起發送給CPU的PTP協議棧,其中,不需要額外的寄存器記錄接收時刻時戳。
10.根據權利要求7所述的裝置,其特徵在於,所述報文發送單元還用於 每個MAC在報文發送時刻將報文發送起始信號和序列標誌號發送給對應的QM模塊; 每個QM模塊匯聚所有與該QM模塊相對應的MAC發送的報文發送起始信號和序列標誌號; 所述QM模塊將所有匯聚到的報文發送起始信號和序列標誌號發送給所述PTP引擎,並根據所述報文發送起始信號將發送時刻時戳和所述序列標誌號以及發送埠位圖存儲於所述PTP引擎中的FIFO存儲器中。
全文摘要
本發明提供一種在多個MAC中實現PTP一步模式和兩步模式的方法,包括以下步驟S1、接收PTP事件信息的報文;S2、從PTP引擎廣播獲取報文的接收時刻時戳;S3、判斷所述報文的處理模式,根據判斷結果對所述報文進行相對應的處理;S4、發送報文;若實現一步模式,從PTP引擎廣播獲取報文的發送時刻時戳插入到報文的合適位置後發送報文;若實現兩步模式,則通過多個MAC回送報文發送起始信號和序列標誌號給所述PTP引擎並記錄。通過這個集中的PTP引擎把時戳廣播到所有的MAC來實現一步模式和兩步模式,不需要通過請求響應的機制即可實現。
文檔編號H04L12/18GK102983959SQ201110260108
公開日2013年3月20日 申請日期2011年9月5日 優先權日2011年9月5日
發明者許俊 申請人:盛科網絡(蘇州)有限公司