0731-84728105
15116127200
ZYNQ RTOS解決方案

一(yī)、 引言

    支持 FAST 開(kāi)源架構的 OpenBox-S4 平台的核心器件采用的是 Xilinx 公司的 ZYNQ 系列芯片的産品,該平台目前是 FAST 開(kāi)源社區的主要适配平台,支持所有的 FAST 開(kāi)源項目,如 SDN、TSN 等。時間敏感網絡(TSN:Time Sensitive Networking)是以以太網
    爲基礎的新一(yī)代網絡标準,具有時間同步、延時保證等确保實時性的功能。
    FAST 開(kāi)源社區目前已經完善了在真實物(wù)理網絡傳輸環境下(xià)的 TSN 功能适配,湖南(nán)新實也推出了一(yī)體(tǐ)化的 TSN 綜合演示方案。随着我(wǒ)(wǒ)們對 TSN 技術的不斷深耕,支持 TSN功能、适配 TSN 業務軟件的綜合系統應用環境也将逐步推出。
    ZYNQ RTOS 顧名思義就是在 ZYNQ 平台上運行 RTOS(Real Time Operating System,簡稱 RTOS),更準确的說就是在 OpenBox-S4 上運行實時操作系統,更好的支持 TSN技術。

二、 RTOS 背景

    How fast is fast enough? 實時是一(yī)種相對概念。根據應用場景與用戶需求不同,實時的響應時間要求不同,其實現方法也各有差異。支持 ZYNQ 的實時解決方案分(fēn)爲如下(xià)幾種:
1. SMP 的親和
    SMP(對應多處理器)的親和是指将業務處理邏輯親近在某些或某個特定的 CPU核上進行處理,減少 CACHE 失效帶來不确定的查表延時。CPU 的親和包括軟件邏輯的親和與中(zhōng)斷的親和。中(zhōng)斷的親和其實也是爲了讓軟件邏輯親和在指定的核上工(gōng)作。通過親和的方式可以對邏輯的性能帶來一(yī)定的提升,處理延時也會得到一(yī)些改善。但親和改善的主要關鍵在于 CACHE 的失效,故隻對一(yī)些數據 IO 密集形業務有改善,延時的穩定性也與數據分(fēn)布相關。
2. PREEMPT_RT
    PREEMPT_RT 是 Linux 内核的一(yī)個實時補丁。主要目的是爲了提高 Linux 的延時響應時間。補丁代碼需要替換内核中(zhōng)成千上萬行的代碼,需要适配不同的支持設備,而且爲了保證實時,也犧牲了系統整體(tǐ)的吞吐量。由于這些不盡理想的代價權衡,至今爲止,該補丁仍未融入到 Linux 内核的主線版本中(zhōng)來。
3. Enea LWRT
    Enea LWRT 是一(yī)種商(shāng)業解決方案,主要是在用戶空間提供無中(zhōng)斷(上下(xià)文切換)的代碼執行環境。整個系統分(fēn)爲兩部分(fēn),一(yī)部分(fēn)爲實時分(fēn)區,另一(yī)部分(fēn)爲非實時分(fēn)區。其中(zhōng)實時部分(fēn)既可以使用部分(fēn)系統屏蔽的的 CPU 核來運行,也可以在内核中(zhōng)嵌入實時模塊來支持。實時的用戶空間提供了一(yī)些輕量級的線程 API 和管理模塊。
4. 裸機 AMP
    AMP(非對稱多處理器)的最直接方案就是 Xilinx 提供的裸機 APP 應用。Linux 系統運行在一(yī)個專門的 CPU 核上,通常是 CPU0,然後通過 FSBL 将裸機 APP 或可執行代碼加載到 CPU1 上運行。由于操作系統運行在 CPU0 上,在 CPU1 上僅運行業務邏輯代碼,不存在上下(xià)文切換,調度等任何其他帶來的延時開(kāi)銷,故該方法可以較好的保證業務邏輯處理的實時性
5. FreeRTOS
    FreeRTOS 主要由 Amazon 開(kāi)發與維護,屬于 AMP 架構。Linux 系統運行在 CPU0上,在 CPU1 上運行支持整個實時應用環境的操作系統。實時任務與非實時任務均隻在自己的核上運行,但兩者之間可以相互訪問。實時訪問非實時要根據 MMU 的地址定義來決定,而非實時訪問實時可以像訪問其他設備存儲一(yī)樣讀寫。
6. Xenomai
    Xenomai 是一(yī)種采用雙内核機制的 Linux 内核的強實時擴展。他與 Linux 共享硬件資(zī)源,優先級高于 Linux 内核,負責處理系統的實時任務。其運行方式更像一(yī)個勾子系統,系統支持的内部或外(wài)部中(zhōng)斷觸發後,先由 Xenomai 執行,屬于實時操作的任務在 Xenomai 環境下(xià)全部執行完成,由于該環境的最高優先級,處理過程不會被 Linux 中(zhōng)斷。隻有非實時處理任務會被分(fēn)派到 Linux 系統執行。這樣就可以完全保證 Xenomai 環境任務的實時要求不受 Linux 的影響,提供系統的實時可确定性。

三、 我(wǒ)(wǒ)們的選擇

    FAST 開(kāi)源架構主要面向網絡通信領域,TSN 技術更是爲了支持确定性的網絡通信傳輸。通過上述的幾種對實時處理的解決方案對比,裸機 AMP、FreeRTOS 和 Xenomai 各有優勢與不足。結合目前我(wǒ)(wǒ)們在 FAST 架構上的應用與開(kāi)發,我(wǒ)(wǒ)們傾向選擇 Xenomai。一(yī)方面由于該方案更适合網絡應用環境,包含了從驅動、協議棧到用戶應用的完整的網絡應用開(kāi)發示例。另一(yī)方面該方案仍然支持并使用 SMP 架構的通用 Linux 系統,對用戶原有系統架構和 FAST 原有支持系統與架構均不會帶來任何影響。

四、 測試與驗證

    目前系統正在測試過程中(zhōng)
    關于 RTOS 上的實時應用開(kāi)發,敬請關注 FAST 開(kāi)源社區的推出的技術文章
下(xià)載該文檔