工控網(wǎng)首頁
>

新聞中心

>

業(yè)界動態(tài)

>

【工控重磅】望獲實(shí)時(shí)Linux:亞微秒級系統(tǒng)響應(yīng)的實(shí)現(xiàn)方法

【工控重磅】望獲實(shí)時(shí)Linux:亞微秒級系統(tǒng)響應(yīng)的實(shí)現(xiàn)方法

在上一篇文章《最大響應(yīng)延遲480納秒,國科環(huán)宇推出全球最快的實(shí)時(shí)Linux》中,我們展示了系統(tǒng)端到端響應(yīng)達(dá)到亞微秒級的實(shí)測效果,收獲了大量關(guān)注。本文給出關(guān)鍵實(shí)現(xiàn)路徑與工程要點(diǎn),便于用戶快速復(fù)現(xiàn)與進(jìn)一步優(yōu)化。

Linux憑借強(qiáng)大生態(tài)廣泛應(yīng)用于各類場景,但在確定性要求極高的實(shí)時(shí)領(lǐng)域,仍面臨質(zhì)疑,認(rèn)為宏內(nèi)核的復(fù)雜度帶來了更多的不確定性。本質(zhì)上,問題來自兩個(gè)方面:一是內(nèi)核子系統(tǒng)耦合與多核調(diào)度引入的不確定性;二是現(xiàn)代CPU/總線層級深、共享資源多導(dǎo)致的競爭沖突。

本文以ARMv8架構(gòu)為例,從CPU執(zhí)行上下文出發(fā),給出望獲實(shí)時(shí)Linux在飛騰派平臺實(shí)現(xiàn)亞微秒級IO響應(yīng)的方法。

設(shè)計(jì)思路:在隔離核上構(gòu)建“無切換”執(zhí)行環(huán)境

核心目標(biāo)是讓指定CPU核心始終停留在單一進(jìn)程上下文,避免一切上下文切換與中斷打斷,使其行為逼近裸機(jī)環(huán)境。為此,我們實(shí)現(xiàn)了隔離器(Isolator)技術(shù),能夠在物理環(huán)境上最大程度提升確定性。

實(shí)現(xiàn)思路:隔離器 Isolator

CPU隔離 :通過isolcpus參數(shù),把隔離核從通用調(diào)度中剝離,不運(yùn)行普通用戶態(tài)進(jìn)程。

最高優(yōu)先級綁定:將目標(biāo)進(jìn)程設(shè)置最高優(yōu)先級99,調(diào)度策略為FIFO,同時(shí)設(shè)置實(shí)時(shí)任務(wù)可以無限制占用CPU。

中斷親和遷移:用irqaffinity參數(shù)把外設(shè)中斷遷到其他核心,避免影響隔離核。

凍結(jié)系統(tǒng)中斷:通過內(nèi)核改造,屏蔽時(shí)鐘中斷、核間中斷等,讓隔離核完全脫離現(xiàn)有機(jī)制。

硬件級優(yōu)化:進(jìn)一步提升實(shí)時(shí)性

避免Cache未命中:對關(guān)鍵代碼用匯編實(shí)現(xiàn),僅使用通用寄存器,盡量不訪問內(nèi)存,以規(guī)避DDR訪問帶來的數(shù)百納秒的延遲。

優(yōu)化IO地址映射方式:用ioremap_np將IO區(qū)設(shè)為MT_DEVICE_nGnRnE,禁用緩存、預(yù)取與合并,提升可預(yù)期性。

中斷輪詢:外設(shè)使能中斷,但CPU屏蔽中斷響應(yīng),通過輪詢中斷控制器主動獲取中斷信息,避免中斷上下文切換引入的數(shù)據(jù)讀寫與處理延遲。

測試 API與測試用例

API說明

int isolator_start(unsigned affinity_cpu); // 開啟隔離器

int isolator_rt_irq_pmd_run(unsigned irqnum, unsigned long flags, void (*func)(void)); // 阻塞式進(jìn)行中斷輪詢

測試用例gpio_test.ko 流程

Step1:在指定核心調(diào)用isolator_start()啟用隔離器功能

Step2:實(shí)現(xiàn)GPIO復(fù)用/方向/中斷配置

Step3:以輪詢方式運(yùn)行中斷處理函數(shù)(代碼實(shí)現(xiàn)應(yīng)盡量避免訪存與復(fù)雜邏輯)

關(guān)鍵實(shí)現(xiàn)細(xì)節(jié)

GPIO 配置

GPIO 翻轉(zhuǎn)

測試結(jié)果與提示

24小時(shí)連續(xù)測試中,最大延遲約500ns、最小約410ns、抖動約90ns。較“極限探索之一”略降,主要原因是本次實(shí)現(xiàn)更注重易用性與靈活性。

用戶在編寫測試代碼或者測試過程中,系統(tǒng)其他進(jìn)程需避免頻繁I/O操作引發(fā)總線競爭,影響實(shí)時(shí)性。

本文涉及的實(shí)時(shí)性優(yōu)化已集成在 WangHuo v2.4.0 phytium beta版本中,刷寫鏡像即可開始測試。

后續(xù)我們將持續(xù)發(fā)布“Linux極限探索”更多內(nèi)容,敬請關(guān)注。

更多信息可搜索“望獲實(shí)時(shí)Linux”


審核編輯(
黃莉
)

提交

查看更多評論
其他資訊

查看更多

【工控重磅】最大響應(yīng)延遲480納秒,國科環(huán)宇推出全球最快的實(shí)時(shí)Linux

【工控適配】國科環(huán)宇與華芯創(chuàng)輝達(dá)成產(chǎn)品兼容互認(rèn)

【工控資訊】望獲實(shí)時(shí)Linux系統(tǒng)亮相2025“工業(yè)母機(jī)+”百行萬企產(chǎn)需對接活動現(xiàn)場

北京亦莊機(jī)器人馬拉松:人機(jī)共跑背后的技術(shù)突破與產(chǎn)業(yè)啟示

【工控論壇】望獲實(shí)時(shí)Linux系統(tǒng)榮獲人形機(jī)器人技術(shù)突破獎