加入星計(jì)劃,您可以享受以下權(quán)益:

  • 創(chuàng)作內(nèi)容快速變現(xiàn)
  • 行業(yè)影響力擴(kuò)散
  • 作品版權(quán)保護(hù)
  • 300W+ 專業(yè)用戶
  • 1.5W+ 優(yōu)質(zhì)創(chuàng)作者
  • 5000+ 長(zhǎng)期合作伙伴
立即加入
  • 正文
    • 中斷在系統(tǒng)中的作用
    • 中斷控制器 GIC 硬件原理
  • 推薦器件
  • 相關(guān)推薦
  • 電子產(chǎn)業(yè)圖譜
申請(qǐng)入駐 產(chǎn)業(yè)圖譜

Linux BSP實(shí)戰(zhàn)課(中斷篇):中斷控制器的硬件實(shí)現(xiàn)

04/15 13:21
2006
閱讀需 4 分鐘
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論

中斷在系統(tǒng)中的作用

中斷機(jī)制在處理器中扮演著一個(gè)至關(guān)重要的角色,它是處理器異步響應(yīng)外圍設(shè)備請(qǐng)求的核心方式。從技術(shù)的深層次來看,中斷是處理器在正常運(yùn)行過程中,因外部或內(nèi)部事件(如外圍設(shè)備的輸入/輸出請(qǐng)求、異常錯(cuò)誤等)而暫時(shí)中斷當(dāng)前執(zhí)行的程序,轉(zhuǎn)而執(zhí)行特定的中斷服務(wù)程序(Interrupt Service Routine, ISR)的過程。

在操作系統(tǒng)的上下文中,中斷處理是外圍設(shè)備管理的基石。外圍設(shè)備如硬盤、鍵盤、鼠標(biāo)等,它們的工作通常是異步的,即它們不會(huì)按照處理器執(zhí)行指令的線性順序來請(qǐng)求服務(wù)。中斷機(jī)制允許處理器在這些設(shè)備需要服務(wù)時(shí),能夠立即響應(yīng),而不必等待處理器完成當(dāng)前任務(wù)。這種異步處理的能力極大地提高了系統(tǒng)的響應(yīng)性和效率。

此外,中斷機(jī)制還在系統(tǒng)調(diào)度和核間交互中發(fā)揮著不可或缺的作用。系統(tǒng)調(diào)度是操作系統(tǒng)根據(jù)一定的策略選擇下一個(gè)要執(zhí)行的進(jìn)程或線程的過程。當(dāng)中斷發(fā)生時(shí),處理器可能會(huì)根據(jù)中斷的類型和優(yōu)先級(jí)來決定是否切換當(dāng)前執(zhí)行的上下文,從而實(shí)現(xiàn)任務(wù)的快速切換和調(diào)度。而在多核或多處理器的系統(tǒng)中,中斷也是核間通信和同步的重要手段,它可以幫助不同的處理器核心之間傳遞信息、協(xié)調(diào)工作。

這里對(duì)中斷在系統(tǒng)中的介紹會(huì)包括硬件原理、中斷驅(qū)動(dòng)解析、上半部與下半部、以及softirq, tasklet, workqueue等機(jī)制。

中斷控制器 GIC 硬件原理

GIC,Generic Interrupt Controller。是ARM公司提供的一個(gè)通用的中斷控制器。主要作用為:
接受硬件中斷信號(hào),并經(jīng)過一定處理后,分發(fā)給對(duì)應(yīng)的CPU進(jìn)行處理。

當(dāng)前GIC 有四個(gè)版本,GIC v1~v4, 本文主要介紹GIC v3控制器。

GIC v3中斷類別

GICv3定義了以下中斷類型:

SGI(Software Generated Interrupt):軟件觸發(fā)的中斷。軟件可以通過寫 GICD_SGIR 寄存器來觸發(fā)一個(gè)中斷事件,一般用于核間通信,內(nèi)核中的 IPI:inter-processor interrupts 就是基于 SGI。

PPI(Private Peripheral Interrupt):私有外設(shè)中斷。這是每個(gè)核心私有的中斷。PPI會(huì)送達(dá)到指定的CPU上,應(yīng)用場(chǎng)景有CPU本地時(shí)鐘。

SPI(Shared Peripheral Interrupt):公用的外部設(shè)備中斷,也定義為共享中斷。中斷產(chǎn)生后,可以分發(fā)到某一個(gè)CPU上。比如按鍵觸發(fā)一個(gè)中斷,手機(jī)觸摸屏觸發(fā)的中斷。

LPI(Locality-specific Peripheral Interrupt):LPI 是 GICv3 中的新特性,它們?cè)诤芏喾矫媾c其他類型的中斷不同。LPI 始終是基于消息的中斷,它們的配置保存在表中而不是寄存器。比如 PCIe 的 MSI/MSI-x 中斷。

中斷類型 硬件中斷號(hào)
SGI 0-15
PPI 16-31
SPI 32-1019
reserved ......
LPI 8192-MAX

推薦器件

更多器件
器件型號(hào) 數(shù)量 器件廠商 器件描述 數(shù)據(jù)手冊(cè) ECAD模型 風(fēng)險(xiǎn)等級(jí) 參考價(jià)格 更多信息
NC7S08M5X 1 Rochester Electronics LLC HC/UH SERIES, 2-INPUT AND GATE, PDSO5, 1.60 MM, MO-178AA, SOT-23, 5 PIN
$0.3 查看
HFBR-1522 1 Avago Technologies FIBER OPTIC TRANSMITTER, 5Mbps, THROUGH HOLE MOUNT
$13.86 查看
AFBR-57G5MZ 1 Broadcom Limited Transceiver,
暫無數(shù)據(jù) 查看

相關(guān)推薦

電子產(chǎn)業(yè)圖譜

針對(duì)嵌入式人工智能,物聯(lián)網(wǎng)等專業(yè)技術(shù)分享和交流平臺(tái),內(nèi)容涉及arm,linux,android等各方面。

Arm64 棧回溯
  • 查看更多