2021年4月1日,龍芯架構(gòu)(LoongArch)下的中斷模型被正式批準(zhǔn)寫入ACPI規(guī)范,成為繼x86、ARM64架構(gòu)之后,第三種ACPI規(guī)范支持的CPU架構(gòu)。
ACPI為何成為市場(chǎng)通用性規(guī)范
ACPI是高級(jí)配置及電源管理接口規(guī)范的英文縮寫,至今已發(fā)展到6.4版本。在原有的APM、PNP BIOS、MP等規(guī)范的基礎(chǔ)之上,ACPI統(tǒng)一形成了適用于各整機(jī)廠商、固件廠商、操作系統(tǒng)廠商的協(xié)議規(guī)范,打破了原有規(guī)范協(xié)議各自分散,互不通用的局面。通過ACPI表的配置,ACPI規(guī)范可實(shí)現(xiàn)不同硬件設(shè)計(jì)需求的靈活配置和以操作系統(tǒng)為主導(dǎo)的電源管理,操作系統(tǒng)因此可以兼容不同硬件的設(shè)計(jì),實(shí)現(xiàn)電源管理硬件與操作系統(tǒng)的獨(dú)立創(chuàng)新,極大地促進(jìn)了通用PC和服務(wù)器行業(yè)的發(fā)展。
圖1 ACPI與PC硬件、軟件之間的關(guān)系框圖
龍芯中科為加入ACPI所做的努力
為更好地服務(wù)產(chǎn)業(yè)鏈伙伴,延伸龍芯自主架構(gòu)的適用面積,擴(kuò)大自主生態(tài)建設(shè),龍芯中科決定告別原MIPS架構(gòu)下的自有標(biāo)準(zhǔn),與市場(chǎng)主流規(guī)范接軌,經(jīng)過1年多的研發(fā)攻關(guān),龍芯中科已在處理器、芯片組、外設(shè)配置及運(yùn)行時(shí)階段全面支持ACPI規(guī)范,實(shí)現(xiàn)了相關(guān)軟件的標(biāo)準(zhǔn)化配置,增強(qiáng)了整機(jī)硬件與操作系統(tǒng)的兼容性。
在適配ACPI規(guī)范的研發(fā)過程中,龍芯中科研發(fā)人員發(fā)現(xiàn)當(dāng)前的ACPI規(guī)范在中斷模型的規(guī)定上,不適用于龍芯LoongArch架構(gòu)平臺(tái)。為了解決多核枚舉和中斷控制器枚舉的問題,龍芯團(tuán)隊(duì)創(chuàng)建了獨(dú)立于x86、ARM64的第三套中斷模型,通過修改ACPI公共框架,自主定義中斷控制器結(jié)構(gòu),完成了在Linux內(nèi)核、UEFI固件、ACPICA的驗(yàn)證。
在中斷模型中龍芯中科自主定義了7種中斷控制器結(jié)構(gòu):CORE PIC(處理器核中斷控制器)結(jié)構(gòu)、LIO PIC(傳統(tǒng)IO中斷控制器)結(jié)構(gòu)、EIO PIC(擴(kuò)展IO中斷控制器)結(jié)構(gòu)、HT PIC(HT中斷控制器)結(jié)構(gòu)、BIO PIC(橋片中斷控制器)結(jié)構(gòu)、MSI PIC(MSI中斷控制器)結(jié)構(gòu)、LPC PIC(LPC中斷控制器)結(jié)構(gòu),7種中斷結(jié)構(gòu)可完整描述龍芯通用處理器中斷系統(tǒng)的拓?fù)潢P(guān)系,并兼容了龍芯下一代中斷模型。龍芯中斷模型為龍芯通用PC、服務(wù)器領(lǐng)域的整機(jī)設(shè)計(jì)過程中提供了統(tǒng)一的中斷配置方法,在遵循ACPI規(guī)范的龍芯平臺(tái)通過定義的各級(jí)中斷控制器結(jié)構(gòu)可實(shí)現(xiàn)中斷控制器的級(jí)聯(lián),從而實(shí)現(xiàn)同一操作系統(tǒng)對(duì)不同硬件平臺(tái)中斷系統(tǒng)的兼容性。
圖2 龍芯中斷控制器結(jié)構(gòu)類型表
為了將驗(yàn)證后的龍芯中斷模型在LoongArch架構(gòu)處理器上實(shí)現(xiàn)產(chǎn)品化,并推向Linux內(nèi)核社區(qū),龍芯中科向國(guó)際ACPI工作組提交了申請(qǐng),將LoongArch架構(gòu)的中斷模型寫入規(guī)范,為龍芯中斷模型在Linux內(nèi)核中的規(guī)范化奠定基礎(chǔ),為L(zhǎng)inux內(nèi)核上游社區(qū)支持規(guī)范化的龍芯中斷系統(tǒng)提供依據(jù)。后期,該中斷模型將隨LoongArch一并提交社區(qū),吸收匯集廣大開發(fā)者的智慧。
圖3 龍芯中科提交ACPI規(guī)范修改申請(qǐng)的說明
為推動(dòng)ACPI規(guī)范申請(qǐng)盡快落實(shí),龍芯團(tuán)隊(duì)負(fù)責(zé)人從春節(jié)開始,每周定期參加ACPI工作組線上評(píng)審會(huì)議,與工作組評(píng)審人員討論龍芯中斷模型的級(jí)聯(lián)原理及每種中斷控制器結(jié)構(gòu)的中定義的元素。經(jīng)過近2個(gè)月的反復(fù)溝通,以及對(duì)評(píng)審意見的及時(shí)改進(jìn),龍芯團(tuán)隊(duì)在4月1日當(dāng)天正式收到批復(fù)確認(rèn)通知“Approved as new content without changes”,ACPI規(guī)范將從6.5版本開始支持龍芯中斷模型。
圖4 評(píng)審溝通過程
從自有標(biāo)準(zhǔn)到行業(yè)標(biāo)準(zhǔn),此次入選,是龍芯平臺(tái)中斷模型發(fā)展的一小步,但更是龍芯自主生態(tài)與市場(chǎng)接軌的一大步。未來,龍芯中科還將繼續(xù)參與ACPI、UEFI等相關(guān)行業(yè)標(biāo)準(zhǔn)的制定,發(fā)揮市場(chǎng)主導(dǎo)作用,承擔(dān)企業(yè)責(zé)任,與龍芯生態(tài)伙伴一起,共筑開放的龍芯生態(tài)體系。