FC-AL系統(tǒng)中FPGA的彈性緩存設(shè)計

引 言

一個簡化的異步數(shù)據(jù)通信系統(tǒng)如圖1所示。接收機端從接收到的來自串行鏈路的比特流中提取時鐘信號Clk1,作為其工作時鐘源;而發(fā)送機端采用本地晶振和鎖相環(huán)產(chǎn)生的時鐘Clk2,作為其工作時鐘源。接收機在時鐘Clk1的上升沿把數(shù)據(jù)寫入彈性緩存,發(fā)送機在時鐘Clk2的上升沿從彈性緩存中讀出數(shù)據(jù),從而實現(xiàn)數(shù)據(jù)的同步。

雖然光纖通道仲裁環(huán)中的所有通信設(shè)備必須工作在同一頻率,但圖1中兩個不同源的時鐘信號Clk1和Clk2除了在相位上可能存在差異外,由于制造工藝的因素,晶振產(chǎn)生時鐘時其頻率也是被允許有一定誤差存在的。這個誤差范圍為±100×10-6,即在每一百萬個理想時鐘周期的時間內(nèi)容許±100個時鐘周期的偏差。兩個不同的晶振產(chǎn)生同一頻率的時鐘時,它們之間可能存在的誤差最大為200×10-6。所以,對于由不同晶振產(chǎn)生的同一頻率的2個時鐘,除了相位上的不同外,在最壞情況下,經(jīng)過106/200=5 000個周期后,它們之間將出現(xiàn)一個時鐘周期的偏移。對于連續(xù)的數(shù)據(jù)流,由于用于時鐘同步的彈性緩存的大小有限,如果不能正確處理這個時鐘周期的偏移,將會導(dǎo)致緩存溢出,損壞有效數(shù)據(jù),嚴(yán)重影響系統(tǒng)的性能。

1 FC-AL彈性緩存管理的基本原理

FC-AL通信系統(tǒng)中,也采用彈性緩存來解決數(shù)據(jù)在不同時鐘域的同步問題,并通過對彈性緩存的管理適時地向緩存中添加或刪除填充字,以控制緩存中有效傳輸字的數(shù)量(本設(shè)計中彈性緩存的存儲單位為字),從而達到對時鐘傾斜的補償。填充字是FC-AL協(xié)議中定義的一類特殊的傳輸字,它們在幀與幀的間隙,且在幀界定符之外被傳輸。所以,彈性緩存的管理對這些特殊傳輸字進行的適當(dāng)?shù)奶砑踊騽h除操作,不會損壞數(shù)據(jù)幀或影響環(huán)網(wǎng)的正常運作。何時對彈性緩存添加或刪除填充字,是由緩存的占用率來決定的。彈性緩存空間的使用狀態(tài)分為4個等級:添加填充字等待、保持狀態(tài)、低級別的刪除填充字等待以及高級別的刪除填充字等待。當(dāng)彈性緩存的寫時鐘慢于讀時鐘時(如圖1中Clk1的頻率略低于Clk2的頻率),緩存可能被讀空而出現(xiàn)誤讀,此時需要添加填充字,相當(dāng)于增加緩存中可讀的數(shù)據(jù)量,防止緩存出現(xiàn)下溢;當(dāng)彈性緩存的寫時鐘快于讀時鐘時(如圖1中Clk1的頻率略高Clk2的頻率),緩存可能出現(xiàn)被寫滿導(dǎo)致錯誤的數(shù)據(jù)覆蓋,此時需要刪除填充字,以增加緩存中的可用空間防止緩存出現(xiàn)上溢。

彈性緩存管理的基本原理如圖2所示。假設(shè)彈性緩存的深度為4,圖中被標(biāo)識為0或1的每一個小格代表彈性緩存的一個存儲空間。置1,表示相應(yīng)的存儲空間已被寫入有效數(shù)據(jù),且未被讀出;置0,表示相應(yīng)的存儲空間未被寫入,或?qū)懭氲臄?shù)據(jù)已被讀出。

由于對于緩存的讀操作必須是在有數(shù)據(jù)已寫入緩存后才能開始,假設(shè)當(dāng)緩存中有2個空間被寫入時才開始讀操作。所以,對于隨后的彈性緩存管理,當(dāng)緩存中剛好有2個空間被占用時,其處于保持狀態(tài),執(zhí)行正常的讀寫操作;當(dāng)緩存中超過2個的空間被占用時,其處于刪除填充字等待的狀態(tài),說明寫時鐘的頻率高于讀時鐘的頻率,需要進行刪除填充字的操作;當(dāng)緩存中少于2個空間被占用,其處于添加填充字等待狀態(tài),說明寫時鐘的頻率低于讀時鐘的頻率,需要進行添加填充字的操作。

2硬件電路設(shè)計

用異步FIFO實現(xiàn)彈性緩存的關(guān)鍵是監(jiān)測緩存空間的占用率,以此來判斷讀寫時鐘可能存在的微小差異,預(yù)見彈性緩存可能出現(xiàn)讀空還是寫滿,并決定在何時進行填充字的添加或刪除操作,以及何種等級的刪除操作,并保證在添加或刪除操作之后不對其后的數(shù)據(jù)讀寫產(chǎn)生任何影響。需要注意的是,這里的添加或刪除填充字的操作都必須在讀時鐘域進行。

在異步數(shù)據(jù)通信系統(tǒng)中,使用彈性緩存實現(xiàn)數(shù)據(jù)在多時鐘域之間的同步存在兩個問題——數(shù)據(jù)延時和緩存大小。數(shù)據(jù)延時指的是,數(shù)據(jù)從被寫入緩存到從緩存中讀出的時間差。假設(shè)彈性緩存的大小為N,在不出現(xiàn)數(shù)據(jù)覆蓋的前提下,當(dāng)前數(shù)據(jù)被寫入緩存的第N個存儲空間,而此時緩存中還有N-1個空間中的數(shù)據(jù)還未被讀出,至少在讀時鐘域看來是這樣的,那么當(dāng)前被寫入的數(shù)據(jù)需要至少N-1個讀時鐘周期的延時后才能被讀出。由此可見,緩存空間越大,經(jīng)過緩存的數(shù)據(jù)的延時可能越大。但是,為了防止緩存將滿或?qū)⒖斩砑踊騽h除填充字的操作不能得到及時的執(zhí)行而致使緩存溢出,須設(shè)置較大的緩存空間,給緩存管理提供較充足的時間范圍,從而減小了緩存出現(xiàn)溢出的可能性。

作者:何曉蓉,周東 來源:21ic


微信掃描分享本文到朋友圈
掃碼關(guān)注5G通信官方公眾號,免費領(lǐng)取以下5G精品資料
  • 1、回復(fù)“YD5GAI”免費領(lǐng)取《中國移動:5G網(wǎng)絡(luò)AI應(yīng)用典型場景技術(shù)解決方案白皮書
  • 2、回復(fù)“5G6G”免費領(lǐng)取《5G_6G毫米波測試技術(shù)白皮書-2022_03-21
  • 3、回復(fù)“YD6G”免費領(lǐng)取《中國移動:6G至簡無線接入網(wǎng)白皮書
  • 4、回復(fù)“LTBPS”免費領(lǐng)取《《中國聯(lián)通5G終端白皮書》
  • 5、回復(fù)“ZGDX”免費領(lǐng)取《中國電信5GNTN技術(shù)白皮書
  • 6、回復(fù)“TXSB”免費領(lǐng)取《通信設(shè)備安裝工程施工工藝圖解
  • 7、回復(fù)“YDSL”免費領(lǐng)取《中國移動算力并網(wǎng)白皮書
  • 8、回復(fù)“5GX3”免費領(lǐng)取《R1623501-g605G的系統(tǒng)架構(gòu)1
  • 本周熱點本月熱點

     

      最熱通信招聘

      最新招聘信息