簡體   English   中英

nop 是忙碌的等待嗎?

[英]Is nop a busy wait?

我想實現非忙等待機制,以在 linux 內核模塊中創建以納秒為單位的延遲。

現在我正在看功能

ndelay(ns);

但是https://www.kernel.org/doc/Documentation/timers/timers-howto.txt

這里提到ndelay函數是一種忙等待機制。

但我想要非忙等待延遲。 所以,我正在考慮 linux 內核模塊中的nop ,如下所示:

asm volatile ("nop");

我研究過 nop 需要一個周期來執行。 因此,我將實施嵌套 nop 以獲得所需的延遲。 我的問題是——

通過使用 nop,我是否會以非繁忙等待的方式實現納秒級的延遲? 任何人都可以確認這一點嗎? 此外,參考一些期刊和資源也會有所幫助。

顧名思義,“NOP”是不修改機器狀態的操作,但是,這並不意味着處理器在執行 NOP 時空閑或“不忙”。 像任何其他指令一樣,NOP 在執行時仍會占用處理器的一些資源。

顯然,現代超級流水線處理器很復雜,通常同時執行許多操作,因此與更復雜的操作(如分支、字符串比較或浮點操作)相比,NOP 使用的資源可能更少,但假設 NOP 是不安全的像你說的不忙。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM