?

基于DPAA網卡設備在VxWorks7.0操作系統中的驅動架構研究與實現

2021-09-22 02:14易榮武
科技研究 2021年22期
關鍵詞:數據包隊列網卡

摘要:恩智浦的QorIQ系列在網絡通信中采用高性能數據通道加速結構(Data Path Acceleration Architecture簡稱DPAA),相比傳統的網卡,DPAA網卡的結構更為復雜,主要在數據分發、隊列擁塞管理和內容加速處理方面減少CPU開銷,以提升性能。本文介紹了基于DPAA的網卡在VxWorks7.0操作系統中的驅動架構及開發流程。

關鍵詞:DPAA;驅動;VxWorks7.0

引言:VxWorks是較為常用的嵌入式硬實時操作系統,在航天航空、國防軍工、工業控制、軌道交通等領域應用廣泛,目前最新的操作系統平臺已是VxWorks7.0。傳統的網卡驅動主要采用在內核態收發包的模式,然后交給內核協議棧處理,效率低,無法滿足高速傳輸的需求。而 DPAA 提供了一套硬件加速平臺,主要包括三個模塊:BMan、QMan、FMan。通過這三個模塊能很好的決解包括處理器負載平衡、流順序維護和有效的緩存利用率等問題[1]。

1 DPAA概述

DPAA的主要目的是在片上系統的 IO 部分內提供智能處理,進行路由和管理與流量相關的處理工作,以簡化與多核相關的排序和負載平衡問題處理。主要包括三個模塊:BMan(Buffer Manager)緩存管理、QMan(Queue Manager)隊列管理、FMan(Frame Manager)幀管理。

1.1 BMan緩存管理

BMan緩沖管理模塊的主要作用是把處于空閑狀態的內存給集中的管理起來,這樣來減少空閑緩沖區對軟件的開銷。處理器核心、FMan、SEC(Security and Encryption Engine)、都可以直接從BMan中獲得緩沖區,而不需要額外的軟件干預,并且在緩沖區不使用時負責將緩存資源回收到緩沖池中。

1.2 QMan隊列管理

QMan隊列管理模塊為網絡接口硬件加速模塊,主要功能是提供多處理器內核、網絡接口和硬件加速器之間的數據排隊機制,如擁塞管理、優先級的排隊機制等。QMan操作的實體是幀描述符,幀描述符里保存了數據緩沖的地址,數據緩沖地址指向數據緩沖區的內存地址。QMan管理的對象是數據包的指針而不是數據包本身。QMan會根據內部局域優先級的調度策略自動為軟件入口選出合適的幀隊列進行出隊操作。

1.3 FMan幀管理

FMan幀管理模塊負責處理DPAA發送和接收的網絡數據包。FMan在物理網卡收發數據時,使用BMan提供的緩沖保存數據,使用QMan的隊列機制對帶有數據的幀描述符進行組織和管理。FMan在LS1046處理器的CCSR中有一定大小的配置空間,其中包括了緩沖管理模塊接口(BMI)寄存器組和幀隊列模塊接口(QMI)寄存器組,通過這些寄存器可以配置數據包在FMan內部存儲空間與外部緩沖之間的傳輸,以及幀描述符的入隊和出隊。

2 基于DPAA網卡在VxWorks7.0操作系統中的驅動架構和實現

本文以NXP的LS1046處理器上的DPAA網卡為例,闡述在VxWorks7.0操作系統中是如何實現DPAA網卡驅動的。整個驅動架構可以分為四個部分,設備樹文件配置、eEMAC控制器驅動模塊、MDIO驅動模塊以及PHY驅動模塊,其中驅動模塊采用VxWorks操作系統提供的VxBus架構,完成驅動編寫后包含對應的驅動組件,操作系統會自動調用進行網卡初始化工作。

2.1 VxWorks7.0 VxBus驅動架構概述

VxBus架構是VxWorks操作系統廠商風河公司開發的一套設備驅動程序架構,這種架構包含對BSP的支持。VxBus在總線控制器驅動程序服務的支持下,能在總線上發現設備,并執行一些初始化工作,使驅動與硬件設備之間正常的通訊[2]。

2.2 設備樹配置

在VxWorks7.0版本中,風河公司首次引入了設備樹。設備樹是一種描述硬件信息的數據結構,通過在設備樹源文件中描述整個單板硬件信息,這樣就不再需要在操作系統中進行大量的冗余編碼,簡化了板級支持包(BSP)開發流程。所以首先需要在LS1046處理器的BSP中進行設備樹配置。有三個層面的配置,分別是BMan配置、Qman配置和FMan配置,其中FMan配置又包括MDIO配置、MAC控制器配置,其中MDIO配置又包括對PHY的配置。

2.3 eEMAC控制器驅動模塊

此驅動模塊實現與CPU的MAC控制器以及網絡協議棧的MUX層對接,同時對BMan和QMan進行初始化。此驅動模塊還負責MAC控制器與PHY芯片之間通過MII(Media Independent Interface)總線進行數據收發。

2.4 MDIO驅動模塊

此驅動模塊實現對mEMAC網絡控制器上的MDIO接口進行支持,主要是用于在多個內核之間共享對MDIO端口的訪問。在驅動中會對掛載在MAC控制器上的PHY設備進行掃描和配置,并提供對PHY芯片寄存器讀寫接口。

2.5 PHY驅動模塊

此驅動模塊的主要功能是對PHY芯片進行配置,并提供初始化物理層、設置媒體模式、檢查當前媒體模式和鏈路狀態等方法。

結論:本文主要介紹了DPAA的組成模塊及基本功能,對基于DPAA的網卡在VxWorks7.0操作系統上的驅動架構進行了研究,并闡述了驅動開發的方法及步驟。完成驅動設計后,在NXP的LS1046參考板上進行可測試驗證,使用網絡分析儀連接DPAA網卡,對網口的基本功能、傳輸速率進行測試。測試結果表明,基于DPAA的網卡性能優于普通的網卡,建議進一步推廣使用。

參考文獻:

[1]高曉成,吳耀云,王樹朋,等.DPAA技術在單脈沖處理中的應用[J].電子信息對抗技術,2019,34(02):23-27.

[2]向昱丞,周加誼.淺談VxBus的設備驅動開發[J].機電產品開發與創新,2016,29(002):57-58.

作者簡介:易榮武;男;1988.3;湖南武岡;漢;碩士研究生;工程師;嵌入式軟件開發

猜你喜歡
數據包隊列網卡
滿足法規要求的車載終端數據包加密方案分析
聯網全靠它 認識筆記本的無線網卡
隊列隊形體育教案
C#串口高效可靠的接收方案設計
緩存淘汰算法研究
青春的頭屑
網絡數據包的抓取與識別
挑戰Killer網卡Realtek網游專用Dragon網卡
USB故障又一原因
如何屏蔽集成聲卡顯卡和網卡
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合