[導讀]作者簡介???王柏生??資深技術(shù)專家,先后就職于中科院軟件所、紅旗Linux和百度,現(xiàn)任百度主任架構(gòu)師。在操作系統(tǒng)、虛擬化技術(shù)、分布式系統(tǒng)、云計算、自動駕駛等相關(guān)領(lǐng)域耕耘多年,有著豐富的實踐經(jīng)驗。著有暢銷書《深度探索Linux操作系統(tǒng)》(2013年出版)。謝廣軍??計算機專業(yè)博士...
作者簡介? ? ?
王柏生??資深技術(shù)專家,先后就職于中科院軟件所、紅旗Linux和百度,現(xiàn)任百度主任架構(gòu)師。在操作系統(tǒng)、虛擬化技術(shù)、分布式系統(tǒng)、云計算、自動駕駛等相關(guān)領(lǐng)域耕耘多年,有著豐富的實踐經(jīng)驗。著有暢銷書《深度探索Linux操作系統(tǒng)》(2013年出版)。謝廣軍??計算機專業(yè)博士,畢業(yè)于南開大學計算機系。資深技術(shù)專家,多年的IT行業(yè)工作經(jīng)驗。現(xiàn)擔任百度智能云副總經(jīng)理,負責云計算相關(guān)產(chǎn)品的研發(fā)。多年來一直從事操作系統(tǒng)、虛擬化技術(shù)、分布式系統(tǒng)、大數(shù)據(jù)、云計算等相關(guān)領(lǐng)域的研發(fā)工作,實踐經(jīng)驗豐富。?本文內(nèi)容節(jié)選自《深度探索Linux虛擬化技術(shù)》,已獲得機械工業(yè)出版社華章公司授權(quán)。歡迎讀者文末留言,閱碼場和機械工業(yè)出版社華章公司將為每位精彩留言獲獎用戶奉送該書一本。PIC虛擬化計算機系統(tǒng)有很多的外設(shè)需要服務(wù),顯然,CPU采用輪詢的方式逐個詢問外設(shè)是否需要服務(wù),是非常浪費CPU的計算的,尤其是對那些并不是頻繁需要服務(wù)的設(shè)備。因此,計算機科學家們設(shè)計了外設(shè)主動向CPU發(fā)起服務(wù)請求的方式,這種方式就是中斷。采用中斷方式后,在沒有外設(shè)請求時,CPU就可以繼續(xù)其他計算任務(wù),而不是進行很多不必要的輪詢,極大地提高了系統(tǒng)的吞吐[1]?在每個指令周期結(jié)束后,如果CPU關(guān)中斷標識(IF)沒有被設(shè)置,那么其會去檢查是否有中斷請求,如果有中斷請求,則運行對應(yīng)的中斷服務(wù)程序,然后返回被中斷的計算任務(wù)繼續(xù)執(zhí)行。CPU不可能為每個硬件都設(shè)計專門的管腳接收中斷,管腳數(shù)量的限制、電路的復雜度、靈活度等方方面面都不現(xiàn)實,因此,需要設(shè)計一個專門管理中斷的單元。由中斷管理單元接受來自外圍設(shè)備的請求,確定請求的優(yōu)先級,并向CPU發(fā)出中斷。1981年IBM推出的第1代個人電腦PC/XT使用了一個獨立的8259A作為中斷控制器,自此,8259A就成為了單核時代中斷芯片事實上的標準。因為可以通過軟件編程對其進行控制,比如當管腳收到設(shè)備信號時,可以編程控制其發(fā)出的中斷向量號,因此,中斷控制器又稱為可編程中斷控制器(programmable interrupt controller),簡稱PIC。單片8259A可以連接8個外設(shè)的中斷信號線,可以多片級聯(lián)支持更多外設(shè)。8259A和CPU的連接如圖5所示。圖5 8259A和CPU連接片選和地址譯碼器相連,當CPU準備訪問8259A前,需要向地址總線發(fā)送8259A對應(yīng)的地址,經(jīng)過譯碼器后,譯碼器發(fā)現(xiàn)是8259A對應(yīng)的地址,因此會拉低與8259A的CS連接的管腳的電平,從而選中8259A,通知8259A,CPU準備與其交換數(shù)據(jù)了。8259A的D0~7管腳與CPU的數(shù)據(jù)總線相連。從CPU向8259A發(fā)送ICW和OCW,從8259A向CPU傳送8259A的狀態(tài)以及中斷向量號,都是通過數(shù)據(jù)總線傳遞的。當CPU向8259A發(fā)送ICW、OCW時,當把數(shù)據(jù)送上數(shù)據(jù)總線后,需要通知8259A讀數(shù)據(jù),CPU通過拉低WR管腳的電平的方式通知8259A,當8259A的WR管腳收到低電平后,讀取數(shù)據(jù)總線的數(shù)據(jù)。類似的,CPU準備好讀取8259A的狀態(tài)時,拉低RD管腳通知8259A。8259A和CPU之間的中斷信號的通知使用專用的連線,8259A的管腳INTR(interrupt request)和INTA(interrupt acknowledge)分別與處理器的INTR和INTA管腳相連。8259A通過管腳INTR向CPU發(fā)送中斷請求,CPU通過管腳INTA向PIC發(fā)送中斷確認,告訴PIC其收到中斷并且開始處理了。8259A與CPU之間的具體中斷過程如下:1)8259A的IR0~7管腳高電平有效,所以當中斷源請求服務(wù)時,拉高連接IR0~7的管腳,產(chǎn)生中斷請求。2)8259A需要將這些信號記錄下來,因此其內(nèi)部有個寄存器IRR(Interrupt Request Register),負責記錄這個中斷請求,針對這個例子,IRR的bit 0將被設(shè)置為1。3)有的時候,我們會屏蔽掉某個設(shè)備的中斷。換句話說,就是的當這個中斷源向8259A發(fā)送信號后,8259A并不將這個中斷信號發(fā)送給CPU。讀者不要將屏蔽和CPU通過cli命令關(guān)中斷混淆,CPU關(guān)中斷時,中斷還會發(fā)送給CPU,只是在關(guān)中斷期間CPU不處理中斷。8259A中的寄存器IMR(Interrupt Mask Register)負責記錄某個中斷源是否被屏蔽,比如0號中斷源被設(shè)備了屏蔽,那么IMR的bit 0將被設(shè)置。那么這個IMR是誰設(shè)置的呢?當然是CPU中的操作系統(tǒng)。因此這一步,8259A將會檢查收到的中斷請求是否被屏蔽。4)在某一個時刻,可能有多個中斷請求,或者是之前存在IRR中的中斷并沒有被處理,8259A中積累了一些中斷。某一個時刻,8259A只能向CPU發(fā)送一個中斷請求,因此,當存在多個中斷請求時,8259A需要判斷一下中斷優(yōu)先級,這個單元叫做priority resolver,priority resolver將在IRR中選出優(yōu)先級最高的中斷。5)選出最高優(yōu)先級的中斷后,8259A拉高管腳INTR的電平,向CPU發(fā)出信號。6)當CPU執(zhí)行完當前指令周期后,其將檢查寄存器FLAGS的中斷使能位IF(Interrupt enable flag),如果允許中斷,那么將檢查INTR是否有中斷,如果有中斷,那么將通過管腳INTR通知8259A處理器將開始處理中斷。7)8259A收到CPU發(fā)來的INTA信號后,將置位最高優(yōu)先級的中斷在ISR(In-Service Register)中對應(yīng)的位,并清空IRR中對應(yīng)的位。8)通常,x86 CPU會發(fā)送第2次INTA,在收到第2次INTA后,8259A會將中斷向量號(vector)送上數(shù)據(jù)總線D0~D7。9)如果8259A設(shè)置為AEOI(Automatic End Of Interrupt)模式,那么8259A復位ISR中對應(yīng)的bit,否則ISR中對應(yīng)的bit一直保持到收到系統(tǒng)的中斷服務(wù)程序發(fā)來的EOI命令。我們知道,中斷服務(wù)程序保存在一個數(shù)組中,數(shù)組中的每一項對應(yīng)一個中斷服務(wù)程序。在實模式下,這個數(shù)組稱為IVT(interrupt vector table);在保護模式下,這個數(shù)組稱為IDT(Interrupt descriptor table)。這個數(shù)組中保存的服務(wù)程序,并不是全部都是外部中斷,還有處理CPU內(nèi)部異常的以及軟中斷服務(wù)程序。x86CPU前32個中斷號(0-31)留給處理器異常的,比如第0個中斷號,是處理器出現(xiàn)除0(Divide by Zero)異常的,不能被占用。因此,假設(shè)我們計劃IVT數(shù)組中第32個元素存放管腳IR0對應(yīng)的ISR,那么我們初始化8259A時,通過ICW,設(shè)置起始的irq base為32,那么當8259A發(fā)出管腳IR0的中斷請求時,則發(fā)出的值是32,管腳IR1對應(yīng)的是33,依此類推。這個32、33就是所謂的中斷向量(vector)。換句話說,中斷向量就是中斷服務(wù)程序在IVT/IDT中的索引。下面就是設(shè)置irq_base的代碼,在初始化時,通過第2個初始化命令字(ICW2)設(shè)置:?commit 85f455f7ddbed403b34b4d54b1eaf0e14126a126KVM: Add support for in-kernel PIC emulation?linux.git/drivers/kvm/i8259.c?static void pic_ioport_write(void *opaque, u32addr, u32 val){??…???? switch(s->init_state) {??? …??? case 1:????? s->irq_base = val
本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
智能時代的嵌入式系統(tǒng)離不開高性能、高效的軟件和先進的軟件開發(fā)方式。本文介紹了近期嵌入式軟件開發(fā)的三個趨勢:1)邊緣計算作為一種在本地處理和分析數(shù)據(jù)的方式正在快速發(fā)展,邊緣計算與人工智能的結(jié)合正將智能計算從以云為中心的模型...
關(guān)鍵字:
嵌入式系統(tǒng)
邊緣計算
人工智能
虛擬化
軟件開發(fā)
全面升級后的服務(wù)器搭載全新Intel® Xeon®6900系列性能核(P-core)架構(gòu)處理器,并已開始量產(chǎn)供貨。這些服務(wù)器采用優(yōu)化高性能設(shè)計,支持新一代世代...
關(guān)鍵字:
MICRO
SUPER
虛擬化
高性能計算
北京2024年11月20日 /美通社/ -- 日前,開放計算標準工作委員會(OCTC)與OCP中國社區(qū)共同主辦了"面向應(yīng)用的服務(wù)器算效標準與評估"開放計算技術(shù)沙龍。浪潮信息出席會議。會上,為推動算力產(chǎn)...
關(guān)鍵字:
數(shù)據(jù)庫
OCT
TC
虛擬化
北京2024年11月14日 /美通社/ -- 在電子產(chǎn)品高密度化、信號傳輸高頻化與高速智能化的發(fā)展趨勢下,PCB行業(yè)朝著高精度、高密度、高速、高可靠性的方向發(fā)展,對生產(chǎn)制造能力提出了全新要求。以精益化管理為核心提升PCB...
關(guān)鍵字:
PCB
電路
數(shù)字化
虛擬化
北京2023年8月9日 /美通社/ -- 浪潮云海經(jīng)過13年的發(fā)展,到今天形成了以服務(wù)器虛擬化、超融合、InCloudOS 為代表的云海產(chǎn)品家族,憑借領(lǐng)先的產(chǎn)品技術(shù)能力和豐富的行業(yè)實踐,滿足不同行業(yè)、場景下客戶的上云需求...
關(guān)鍵字:
DMA
虛擬化
軟硬件
CPU
北京2023年2月6日 /美通社/ -- 近日,浪潮正式推出G7系列超融合一體機。該新品基于面向智慧計算場景優(yōu)化的新一代G7服務(wù)器平臺和功能豐富的云軟件棧,通過雙擎驅(qū)動一體化底座整合了更多的生態(tài)解決方案。同時,豐富的硬件...
關(guān)鍵字:
虛擬機
虛擬化
數(shù)字化
接口
北京2022年12月21日 /美通社/ -- 近日,浪潮信息正式發(fā)布服務(wù)器操作系統(tǒng)KOS,為智慧時代數(shù)據(jù)中心軟硬件協(xié)同設(shè)計與優(yōu)化,提供了穩(wěn)定可靠、高效協(xié)同、廣泛兼容、全天候運維的基礎(chǔ)軟件平臺支撐。伴隨KOS的發(fā)...
關(guān)鍵字:
操作系統(tǒng)
OS
芯片
虛擬化
北京2022年11月28日 /美通社/ -- 近日,國際數(shù)據(jù)公司(IDC)發(fā)布《2022Q2中國軟件定義存儲及超融合市場研究報告》數(shù)據(jù)顯示,2022上半年浪潮超融合以47.65%市場占有率在能源行業(yè)市場份額持續(xù)領(lǐng)跑,排名...
關(guān)鍵字:
虛擬化
云計算
數(shù)據(jù)中心
IDC
今天,小編將在這篇文章中為大家?guī)碓朴嬎愕挠嘘P(guān)報道,通過閱讀這篇文章,大家可以對云計算具備清晰的認識,主要內(nèi)容如下。
關(guān)鍵字:
云計算
虛擬化
分布式
近日,中國ICT產(chǎn)業(yè)權(quán)威的市場研究和咨詢機構(gòu)計世資訊(CCW Research)發(fā)布《2021-2022年中國服務(wù)器虛擬化市場及技術(shù)發(fā)展趨勢研究報告》。根據(jù)報告顯示,紫光股份旗下新華三集團以25.5%的市場份額,位居20...
關(guān)鍵字:
新華三
服務(wù)器
虛擬化
北京2022年11月10日 /美通社/ -- 日前,思享無限旗下紅人直播發(fā)布新版本,升級虛擬人形象及元宇宙生態(tài),增強用戶虛擬形象在思享無限元宇宙空間中的具象表達,提升用戶與主播間的交互體驗。 近期,虛擬人火爆...
關(guān)鍵字:
虛擬化
BSP
MEDIA
RESEARCH
北京2022年11月10日 /美通社/ -- 隨著互聯(lián)網(wǎng)和云計算經(jīng)濟規(guī)模的快速發(fā)展,各行各業(yè)的數(shù)據(jù)中心規(guī)模日益變大,服務(wù)器需求的膨脹、高密度數(shù)據(jù)中心的發(fā)展、IT架構(gòu)的變更等因素促進了國內(nèi)外客戶對多核數(shù)的雙路服務(wù)...
關(guān)鍵字:
AMD
數(shù)據(jù)中心
大規(guī)模數(shù)據(jù)
虛擬化
BeFootball推出了SuperPlayer,在Meta Quest商店向公眾免費提供,這是該公司正在開發(fā)的沉浸式足球元宇宙的第一步。SuperPlayer是一款虛擬現(xiàn)實足球游戲,提供在虛擬化真實足球體育場進行的兩種...
關(guān)鍵字:
虛擬現(xiàn)實
PLAYER
SUPER
虛擬化
(全球TMT2022年11月2日訊)近日,VMmark發(fā)布了最新的性能測試結(jié)果,浪潮信息inMerge1100超融合產(chǎn)品以25.74分的成績,刷新了vSAN架構(gòu)(Intel雙路平臺)的虛擬化性能測試記錄。...
關(guān)鍵字:
MARK
GE
虛擬化
Intel
蘇州2022年10月17日 /美通社/ -- 如今,數(shù)字中國的發(fā)展浪潮正在向千行百業(yè)推進,數(shù)字技術(shù)與實體經(jīng)濟的融合越來越緊密。為更好地實現(xiàn)數(shù)字技術(shù)與千行百業(yè)的深度融合,近年來,互聯(lián)網(wǎng)行業(yè)創(chuàng)新多種技術(shù)手段以促進千...
關(guān)鍵字:
機器人
數(shù)字化
虛擬化
儀表盤
北京2022年8月29日 /美通社/ -- 伴隨著云、大數(shù)據(jù)、AI等創(chuàng)新技術(shù)的發(fā)展普及,企業(yè)信息化應(yīng)用系統(tǒng)以及應(yīng)用環(huán)境都變得越來越復雜,但縱觀全球市場,大型機、小型機的市場持續(xù)萎縮,越來越多的企業(yè)選擇高性價比、...
關(guān)鍵字:
SCALE
虛擬化
AN
JAVA
北京2022年8月22日 /美通社/ -- 前言: 在企業(yè)數(shù)字化轉(zhuǎn)型的今天,數(shù)據(jù)已經(jīng)成為企業(yè)賴以生存的基礎(chǔ)。數(shù)據(jù)的丟失或者損壞將會給企業(yè)帶來無法估量的損失。因此如何進行數(shù)據(jù)保護與保障數(shù)據(jù)一致性成為必須面對的挑戰(zhàn)...
關(guān)鍵字:
內(nèi)存
虛擬化
OPENSTACK
OS
(全球TMT2022年8月2日訊)近日,國家工業(yè)信息安全發(fā)展研究中心主辦的《工業(yè)信息安全》2022年第3期產(chǎn)業(yè)觀察版塊刊發(fā)了北京安帝科技有限公司(以下簡稱"安帝科技")研究團隊撰寫的論文《工業(yè)網(wǎng)絡(luò)靶場的主要挑戰(zhàn)及發(fā)展趨...
關(guān)鍵字:
信息安全
網(wǎng)絡(luò)安全
虛擬化
工業(yè)互聯(lián)網(wǎng)
北京2022年6月27日 /美通社/ -- 近日,國際數(shù)據(jù)公司(IDC)發(fā)布《2021Q4中國軟件定義存儲及超融合市場研究報告》,數(shù)據(jù)顯示,2021全年浪潮云海超融合以40.84%的市場占有率在能源行業(yè)市場份額排名第一。...
關(guān)鍵字:
IDC
虛擬化
云平臺
數(shù)字化