重磅 | 龍芯自主架構中斷模型成為ACPI國際標準
2021年4月1日,龍芯架構(LoongArch)下的中斷模型被正式批準寫入ACPI規(guī)范,成為繼x86、ARM64架構之后,第三種ACPI規(guī)范支持的CPU架構。
ACPI為何成為市場通用性規(guī)范
ACPI是高級配置及電源管理接口規(guī)范的英文縮寫,至今已發(fā)展到6.4版本。在原有的APM、PNP BIOS、MP等規(guī)范的基礎之上,ACPI統(tǒng)一形成了適用于各整機廠商、固件廠商、操作系統(tǒng)廠商的協(xié)議規(guī)范,打破了原有規(guī)范協(xié)議各自分散,互不通用的局面。通過ACPI表的配置,ACPI規(guī)范可實現(xiàn)不同硬件設計需求的靈活配置和以操作系統(tǒng)為主導的電源管理,操作系統(tǒng)因此可以兼容不同硬件的設計,實現(xiàn)電源管理硬件與操作系統(tǒng)的獨立創(chuàng)新,極大地促進了通用PC和服務器行業(yè)的發(fā)展。

龍芯中科為加入ACPI所做的努力
為更好地服務產(chǎn)業(yè)鏈伙伴,延伸龍芯自主架構的適用面積,擴大自主生態(tài)建設,龍芯中科決定告別原MIPS架構下的自有標準,與市場主流規(guī)范接軌,經(jīng)過1年多的研發(fā)攻關,龍芯中科已在處理器、芯片組、外設配置及運行時階段全面支持ACPI規(guī)范,實現(xiàn)了相關軟件的標準化配置,增強了整機硬件與操作系統(tǒng)的兼容性。
在適配ACPI規(guī)范的研發(fā)過程中,龍芯中科研發(fā)人員發(fā)現(xiàn)當前的ACPI規(guī)范在中斷模型的規(guī)定上,不適用于龍芯LoongArch架構平臺。為了解決多核枚舉和中斷控制器枚舉的問題,龍芯團隊創(chuàng)建了獨立于x86、ARM64的第三套中斷模型,通過修改ACPI公共框架,自主定義中斷控制器結構,完成了在Linux內(nèi)核、UEFI固件、ACPICA的驗證。
在中斷模型中龍芯中科自主定義了7種中斷控制器結構:CORE PIC(處理器核中斷控制器)結構、LIO PIC(傳統(tǒng)IO中斷控制器)結構、EIO PIC(擴展IO中斷控制器)結構、HT PIC(HT中斷控制器)結構、BIO PIC(橋片中斷控制器)結構、MSI PIC(MSI中斷控制器)結構、LPC PIC(LPC中斷控制器)結構,7種中斷結構可完整描述龍芯通用處理器中斷系統(tǒng)的拓撲關系,并兼容了龍芯下一代中斷模型。龍芯中斷模型為龍芯通用PC、服務器領域的整機設計過程中提供了統(tǒng)一的中斷配置方法,在遵循ACPI規(guī)范的龍芯平臺通過定義的各級中斷控制器結構可實現(xiàn)中斷控制器的級聯(lián),從而實現(xiàn)同一操作系統(tǒng)對不同硬件平臺中斷系統(tǒng)的兼容性。
為了將驗證后的龍芯中斷模型在LoongArch架構處理器上實現(xiàn)產(chǎn)品化,并推向Linux內(nèi)核社區(qū),龍芯中科向國際ACPI工作組提交了申請,將LoongArch架構的中斷模型寫入規(guī)范,為龍芯中斷模型在Linux內(nèi)核中的規(guī)范化奠定基礎,為Linux內(nèi)核上游社區(qū)支持規(guī)范化的龍芯中斷系統(tǒng)提供依據(jù)。后期,該中斷模型將隨LoongArch一并提交社區(qū),吸收匯集廣大開發(fā)者的智慧。

為推動ACPI規(guī)范申請盡快落實,龍芯團隊負責人從春節(jié)開始,每周定期參加ACPI工作組線上評審會議,與工作組評審人員討論龍芯中斷模型的級聯(lián)原理及每種中斷控制器結構的中定義的元素。經(jīng)過近2個月的反復溝通,以及對評審意見的及時改進,龍芯團隊在4月1日當天正式收到批復確認通知“Approved as new content without changes”,ACPI規(guī)范將從6.5版本開始支持龍芯中斷模型。

從自有標準到行業(yè)標準,此次入選,是龍芯平臺中斷模型發(fā)展的一小步,但更是龍芯自主生態(tài)與市場接軌的一大步。未來,龍芯中科還將繼續(xù)參與ACPI、UEFI等相關行業(yè)標準的制定,發(fā)揮市場主導作用,承擔企業(yè)責任,與龍芯生態(tài)伙伴一起,共筑開放的龍芯生態(tài)體系。