在2013年,big.LITTLE 家族又增加了新的SoC實(shí)現(xiàn),有2個(gè)Cortex-A15+3個(gè)Cortex-A7核的ARM的參考測(cè)試芯片TC2,以及在三星Galaxy S4手機(jī)中應(yīng)用的Samsung-LSI的4個(gè)Cortex-A15核+4個(gè)Cortex-A7核的'Octa-core'芯片。Linaro在ARM的big.LITTLE SoCs上針對(duì)Linux和Android內(nèi)核做了很多的性能優(yōu)化(包括負(fù)載控制、針對(duì)big.LITTLE架構(gòu)的性能和電源管理),以提高多核multi-core程序的能效,增加待機(jī)時(shí)間。最新的多核多任務(wù)的調(diào)度方法包括內(nèi)核里交換器(或者說(shuō)CPU遷移算法CPU Migration/IKS In Kernel Switcher)、全局任務(wù)調(diào)度(Global Task Scheduling,或者大小核MP/ big.LITTLE MP)。
圖1. big.LITTLE SoCs的多核任務(wù)調(diào)度算法
早期的big.LITTLE軟模型才去簇遷移或者CPU遷移(cluster migration或者CPU migration)調(diào)度算法,即軟件在核間切換,但不能把所有的核同時(shí)運(yùn)行。最新的軟件模型,全局任務(wù)調(diào)度(Global Task Scheduling)能同時(shí)使能所有的核,直接控制各核間的線程分配。大小核切換是使用動(dòng)態(tài)電壓和頻率調(diào)整(dynamic voltage and frequency scaling (DVFS))方法讓任務(wù)在高電壓的大核和低電壓的小核間切換,進(jìn)而提高各種負(fù)載情況下的能效。核間任務(wù)切換時(shí)間為30微秒,而DVFS驅(qū)動(dòng)每50微秒評(píng)估OS和核。GTS算法下會(huì)根據(jù)線程的負(fù)載進(jìn)行負(fù)荷均衡。以上多核任務(wù)調(diào)度算法都是在內(nèi)核層次進(jìn)行的,因而不用對(duì)用戶應(yīng)用程序進(jìn)行任何修改。
IKS是Linaro開(kāi)發(fā)的適用于對(duì)稱的Cortex-A7和Cortex-A15核組的芯片。每一對(duì)Cortex-A7和Cortex-A15核組在Linux內(nèi)核里被視為虛擬的對(duì)稱核。線程在互斥的兩個(gè)對(duì)稱核里運(yùn)行,即要么在高性能的Cortex-A15內(nèi)運(yùn)行,要么在低功耗的Cortex-A7核內(nèi)運(yùn)行,即最高性能只取決于Cortex-A15的核。IKS算法在Linux內(nèi)核里已經(jīng)實(shí)現(xiàn),容易測(cè)試和產(chǎn)品化。
圖2. IKS(4+4)和Cortex-A7和Cortex-A15核組架構(gòu)圖
ARM開(kāi)發(fā)的GTS算法也在Linaro里被稱為big.LITTLE MP。此算法下,所有的大小核在Linxu內(nèi)核下都可見(jiàn)用于任務(wù)調(diào)度,日前的Linaro構(gòu)建里都包含了該調(diào)度算法。
圖3. GTS(4+4)和Cortex-A7和Cortex-A15核組架構(gòu)圖
相比IKS算法,GTS算法有如下的優(yōu)勢(shì):
big.LITTLE MP內(nèi)核補(bǔ)丁能創(chuàng)建一個(gè)處理當(dāng)前任務(wù)的Cortex-A15和Cortex-A7核列表,然后根據(jù)歷史負(fù)載統(tǒng)計(jì)分配并跟蹤每個(gè)任務(wù)并進(jìn)行核間任務(wù)切換。高處理能力需求的往Cortex-A15轉(zhuǎn)移,而低處理能力需求的往低功耗的Cortex-A7核遷移。
表1. big.LITTLE IKS vs big.LITTLE MP(GTS)內(nèi)核調(diào)度算法比較
big.LITTLE IKS CPU Migration | big.LITTLE MP、GTS | |
核配置 | Cortex-A15+Cortex-A7核對(duì) | 任意數(shù)量的Cortex-A15核+Cortex-A7核,并且可以同時(shí)運(yùn)行。 |
對(duì)內(nèi)核影響 | 最低限度的修改,修改只應(yīng)用于governor | 對(duì)內(nèi)核修改較多,包括調(diào)度器scheduler、流程標(biāo)注等 |
最大處理能力 | 所有的Cortex-A15 | 所有的Cortex-A15核+Cortex-A7核 |
任務(wù)切換 | 基于cpufreq框架 | 直接使用scheduler,10%性能提升; |
可用性 | 存在Linaro的每月構(gòu)建里 | 存在Linaro的每月構(gòu)建里 |
Kernel.org | 在3.11或者3.12里會(huì)存在 | 在后續(xù)的幾個(gè)季度內(nèi)會(huì)上傳 |
以上的調(diào)度算法以Cortex-A15核+Cortex-A7核的多核SoCs為例,但更多的big.LITTLE SoCs可能采用ARM更新的Cortex-A57+ Cortex-A53的架構(gòu)一樣適用。
以上的big.LITTLE架構(gòu)的任務(wù)調(diào)度算法已經(jīng)在Linaro的構(gòu)建里存在,并且有些算法在實(shí)際的系統(tǒng)中做了性能評(píng)估。如三星最新的Galaxy S4手機(jī)采用的是8核系統(tǒng),即4個(gè)Cortex-A15核加上4個(gè)Cortex-A7核的系統(tǒng)已經(jīng)采用基于簇的遷移算法。即便是采用性能最不經(jīng)濟(jì)的cluster Migration算法在高通Qualcomm的多核Snapdragon系統(tǒng)中證明其能效的優(yōu)越性。Samsung在Exynos 5中已經(jīng)用Cortex-A7的能耗帶來(lái)了類似Cortex-A15級(jí)別的性能。
http://houh-1984.blog.163.com/
Versatile Express V2P-CA15_A7 CoreTile
http://blogs.arm.com/soc-design/1009-ten-things-to-know-about-biglittle/
http://www.linaro.org/linaro-blog/2013/07/10/big-little-software-update/
在2013年,big.LITTLE 家族又增加了新的SoC實(shí)現(xiàn),有2個(gè)Cortex-A15+3個(gè)Cortex-A7核的ARM的參考測(cè)試芯片TC2,以及在三星Galaxy S4手機(jī)中應(yīng)用的Samsung-LSI的4個(gè)Cortex-A15核+4個(gè)Cortex-A7核的'Octa-core'芯片。Linaro在ARM的big.LITTLE SoCs上針對(duì)Linux和Android內(nèi)核做了很多的性能優(yōu)化(包括負(fù)載控制、針對(duì)big.LITTLE架構(gòu)的性能和電源管理),以提高多核multi-core程序的能效,增加待機(jī)時(shí)間。最新的多核多任務(wù)的調(diào)度方法包括內(nèi)核里交換器(或者說(shuō)CPU遷移算法CPU Migration/IKS In Kernel Switcher)、全局任務(wù)調(diào)度(Global Task Scheduling,或者大小核MP/ big.LITTLE MP)。
聯(lián)系客服