[發明專利]龍芯處理器的主核熱插拔方法有效
| 申請號: | 201410586423.6 | 申請日: | 2014-10-28 |
| 公開(公告)號: | CN104375881B | 公開(公告)日: | 2017-11-14 |
| 發明(設計)人: | 陳華才;張福新;吳少剛 | 申請(專利權)人: | 江蘇中科夢蘭電子科技有限公司 |
| 主分類號: | G06F9/46 | 分類號: | G06F9/46 |
| 代理公司: | 南京蘇高專利商標事務所(普通合伙)32204 | 代理人: | 張俊范 |
| 地址: | 215500 江蘇*** | 國省代碼: | 江蘇;32 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 處理器 主核熱插拔 方法 | ||
技術領域
本發明涉及一種處理器的主核熱拔插方法,特別是涉及一種龍芯處理器的主核熱插拔方法,屬于計算機技術領域。
背景技術
靈活性、健壯性、節能都是計算機系統設計的重要指標。CPU熱插拔(即動態開關處理器核)是達成這些目的的一種重要手段。有了CPU熱插拔,可以在不關機的情況下更改計算機配置,具有極大的靈活性;有了CPU熱插拔,可以在個別處理器核出現故障的時候將其關閉并移走正在執行的任務,增強了健壯性;有了CPU熱插拔,還可以在系統負載較輕的時候關閉一部分處理器核,因而也是一種節能方法。云計算的典型模式就是擁有大量的CPU資源,在之上運行大量的虛擬機,因而CPU熱插拔顯得尤為重要。
CPU熱插拔分為軟件層面的熱插拔和硬件層面的熱插拔,前者只是在功能上啟用或者禁用,后者是真正在物理上進行添加和移除。對于動態增加(熱插),必須先在硬件層面添加,然后在軟件層面啟用;對于動態移除(熱拔),必須現在軟件層面禁用,然后在硬件層面移除。本發明主要關注的是軟件層面上的熱插拔。
大多數操作系統都已經實現軟件層面的CPU熱插拔,但這些已有的方法都有一個缺點就是主核不能被熱插拔。在多核處理器系統里面,有一個特殊的核叫主核,或者叫啟動核,編號通常是零。主核是計算機上電以后第一個啟動的核,其他核(輔核,非啟動核)都是被主核激活以后才上線的。雖然系統啟動完成以后,所有的CPU核都基本上是對稱、等效的,但是主核還是有一些特別之處。除了啟動時候的區別之外,還有一個重要的特點就是主核不能被熱插拔(動態開關)。
運行在X86處理器上的Linux操作系統已經在嘗試實現對主核的熱插拔。但X86處理器和MIPS家族的龍芯處理器有著極大的區別:與多核有關的中斷路由、計時在兩種處理器上完全不同;而且尤為重要的是,X86有基于ACPI的BIOS,可以協助操作系統完成很多事情,龍芯則完全沒有ACPI。因此在龍芯上實現主核熱插拔會面臨更多的新問題。
主核之所以不能熱插拔,并不是因為技術上完全不可行,而是現有的操作系統對于主核有一些假定,比如:
1、啟動假定:因為計算機必須從主核啟動,因此許多CPU的特征信息都記錄在主核的數據結構里面。因此,一旦主核被關閉,相關數據結構被銷毀,則許多有用的信息都將無法獲取。
2、中斷假定:龍芯電腦使用的中斷控制器非常簡單,不像X86的APIC那樣可以動態仲裁、動態路由。在現有的操作系統中,所有的外部中斷都被路由到主核。這種配置對于輔核的熱插拔來說非常方便,因為不管怎么開關,中斷傳遞的過程都是不需要關注的。但是如果要做主核熱插拔,這種配置就反倒成為了挑戰。
3、計時假定:龍芯電腦上,計時系統的主要時鐘源是MIPS時鐘源,即Count/Compare寄存器對。在沒有CPU熱插拔的時候,所有核的Count寄存器都是同步的,但一個核被關閉后,Count寄存器就會停止遞增;當這個核重新開啟后,Count寄存器的值就會落后于其他核。因此,新啟動的核要跟其他核進行Count寄存器校準,而校準的參考對象就是主核。主核被假定永遠在線,因此是最佳參考對象。而如果要實現主核熱插拔,則這個假定不能成立。
發明內容
針對上述現有技術的不足,本發明的目的是提供一種龍芯處理器的主核熱插拔方法,解決動態關閉主核時,CPU的特征信息被銷毀,外部中斷路由過程受阻,計時系統校準失去參考對象的問題。將CPU熱插拔過程更加完善,更加靈活、健壯。
本發明的技術方案是這樣的:一種龍芯處理器的主核熱插拔方法,包括動態關閉主核,其特征在于,所述動態關閉主核包括以下步驟:
1)主核從輔助核心中選定一個核心為代理主核;
2)代理主核通知主核執行角色轉換例程并等待主核發送進入可關閉狀態通知;
3)主核執行角色轉換例程,所述角色轉換例程包括主核將CPU特征數據復制一份給代理主核,外部中斷路由設置到代理主核,代理主核成為參考時鐘源對象;
4)主核進行任務遷移,主核向代理主核發送進入可關閉狀態通知;
5)代理主核關閉主核時鐘。
進一步的,所述角色轉換例程包括主核將自身設置成離線狀態,然后通知所有在線的處理器核暫停運行;主核將CPU特征數據復制一份給代理主核,外部中斷路由設置到代理主核,代理主核成為參考時鐘源對象;最后主核通知所有在線的處理器核繼續運行。
優選的,所述主核從輔助核心中選定編號最小的一個核心為代理主核。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于江蘇中科夢蘭電子科技有限公司,未經江蘇中科夢蘭電子科技有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201410586423.6/2.html,轉載請聲明來源鉆瓜專利網。





