本文針對基于可配置處理器的異構多核結構,提出一種新的線程級動態(tài)調(diào)度模型。此類異構多核系統(tǒng)中每個核分別針對某一應用做指令集擴展,調(diào)度器通過線程、處理器核以及指令集間的映射關系,動態(tài)調(diào)度線程至適合的處理器核,從而在沒有大幅增加芯片面積的前提下,達到與每個核都
1.概述
多核處理器從結構上可以分為同構多核和異構多核兩類。同構多核使用多個相同的處理核,通過并行處理提高系統(tǒng)性能;異構多核使用多個不同的處理核,增加并行性的同時還可針對特定應用做硬件加速,因此具有更好的加速比。不過,由于異構多核的核間指令集存在差異,動態(tài)調(diào)度較難實現(xiàn)。
本文針對基于可配置處理器的異構多核結構,提出一種新的線程級動態(tài)調(diào)度模型。此類異構多核系統(tǒng)中每個核分別針對某一應用做指令集擴展,調(diào)度器通過線程、處理器核以及指令集間的映射關系,動態(tài)調(diào)度線程至適合的處理器核,從而在沒有大幅增加芯片面積的前提下,達到與每個核都具有全擴展指令集相近似的加速比,此外該模型還可以有效減少編程模型的復雜度。
2.新模型的數(shù)學描述
2.1 現(xiàn)有異構多核分析
同構多核核間無差異,因此動態(tài)調(diào)度容易實現(xiàn),而異構多核動態(tài)調(diào)度可行與否取決于指令集結構設計。現(xiàn)有異構多核指令集結構設計大致可分為三類:
● 指令集完全不同
此類設計中,設計者選擇不同功能導向的處理器核組成異構多核系統(tǒng),每一種核針對某一類處理都具有較強功能,核之間的指令集存在巨大差異,因此動態(tài)調(diào)度在此類設計中無法實現(xiàn),只能通過靜態(tài)調(diào)度的方式完成任務指派[3]。
● 指令集完全相同
此類設計中,設計者選取具有相同指令集但硬件配置上有所不同的處理器核,組成異構多核系統(tǒng)[2]。
● 指令集部分相同
此類設計中,處理核心是一組可配置處理器,所有的處理核心具有一個公共的指令集,每個核心都可以根據(jù)應用增加一些擴展指令,以增強對應用某一方面的處理能力[4]。
2.2. 新模型的數(shù)學描述
本文提出的調(diào)度模型即針對基于可配置處理器的異構多核。該模型成立基于以下假設,每個核的指令集配置完成于芯片設計階段,芯片一旦生產(chǎn),任意一個核的指令集配置都不可修改。實際上,動態(tài)可配置指令集對芯片面積及功耗都會帶來巨大消耗,因此現(xiàn)在市場上絕大部分可配置處理器都符合上述假設。為描述簡單起見,下文中一個處理器核被稱為core。
首先定義模型中使用的三個集合。
集合 C= {Xi|Xi是系統(tǒng)中某個core}
集合 I={Yi|Yi是系統(tǒng)中某種指令集}
集合 T={Zi|Zi是系統(tǒng)中某個線程}
對于上述集合,存在映射關系
f :C→∪Ii,Ii.I且Ii≠φ,即任意一個core必然存在一個I的非空子集Im與之對應,其實際意義表示該core可以運行集合Im所包含的指令。根據(jù)模型的成立條件,core的指令集在系統(tǒng)運行時不可修改,因此不同core對應的Im可能相同,但是每個core僅對應一個Im,故f是單射,即XIi∈C,Im.I,且Im ≠φ,f(Xi)=Im (式1)類似的。
還存在映射關系g:T→∪Ii,Ii.I且Ii≠φ,即任意一個線程必然存在一個I的非空子集In與之對應,其實際意義表示該線程必須運行在具有指令集In 的處理器上。任意一個時刻每個線程僅有一個In與之對應,此外不同的線程對應的In可能相同,故g也是單射,即Zi∈T,In.I,且In≠φ,g(Zi)=In (式2)根據(jù)上述公式,對任意的Xi,可以得到一個Im,任意的Zi,可以得到一個In,則公式(3)成立。
這是模型中的調(diào)度函數(shù),當線程所需指令集是core指令集的子集,match(Im,In)值為1,表示線程Zi可以運行在處理器核Xi上。
3. 模型實現(xiàn)
上述模型可以有多種實現(xiàn)方式,本文參考位圖的思想完成其中一種實現(xiàn)。
3.1. 三個集合的確定
考慮常用多核規(guī)模,32 種指令集已可滿足指令集種類數(shù)量要求,因此該實現(xiàn)將無符號二進制32位整數(shù)的每一位對應一種指令集,其最低有效位為20,記為ISA1,最高有效位為231,記為ISA32,若可以運行指令集ISAm,則該無符號整數(shù)的第m位為1,故集合I在基于位圖的實現(xiàn)中定義為I={ISAm無符號整數(shù)第m-1位為1,1≤m≤32}。
任意I中幾個元素,對其依次做或運算(OR)得到一個新整數(shù),該整數(shù)即可表示由這幾個元素構成的I的子集。系統(tǒng)中所有的core具有公共指令集,將此指令集記為ISA1。
系統(tǒng)中每個core具有一個唯一編號,因此集合C= {0, 1, ……, n.1},n為系統(tǒng)中core的數(shù)量。
此外,根據(jù)線程的定義,不同的線程不能具有相同的線程句柄,因此T={所有線程句柄}。
3.2. 三個公式的實現(xiàn)
定義一個二維的無符號整數(shù)數(shù)組cpu_isa_map,數(shù)組每行第一個元素為core的編號,第二個元素為I的一個非空子集,表示該core可以運行的所有指令集,最后一行用于循環(huán)結束,第一個元素為無窮大(0xFFFFFFFF),第二個元素為空集。以core的編號對該數(shù)組遍歷查詢即可實現(xiàn)公式1。圖1為該數(shù)組的一個例子。
POSIX線程標準中,每個線程具有pthread_attr_t結構體類型的屬性參數(shù),為了兼容POSIX標準,擴展該結構體,添加一個無符號整數(shù)變量runnable_isa,表示該線程可以運行的指令集集合。創(chuàng)建線程時需要顯示設置runnable_isa,如果沒有設置,該變量默認值為公共指令集ISA1,這樣就實現(xiàn)了公式2。
對于公式3,首先根據(jù)調(diào)度器當前運行的core編號查詢cpu_isa_map獲得core支持的指令集core_isa,然后遍歷線程調(diào)度器的就緒線程隊列,將每個線程的runnable_isa屬性與core_isa做與操作(AND),若結果不為0且runnable小于等于core_isa,則說明該core的指令集配置滿足線程所需的運行要求。
即match(Im,In)為1,線程可以被運行,如果所有線程均無法運行在該核上,則返回空指針。圖2為此算法實現(xiàn),其中HEAD(state)為獲得就緒線程隊列的頭指針,該隊列尾指針的next指針為空指針。至此,模型已經(jīng)全部實現(xiàn)完畢。
4. 實驗結果
本文使用基于Xtensa處理器組成的異構多核系統(tǒng),以Motion-JPEG作為測試程序對該模型進行實驗分析。
4.1. 實驗平臺簡介
Xtensa處理器是Tensilica公司推出的一種可配置處理器,該處理器除了具有一組固定的指令集之外,還可以通過TIE功能擴展指令集以加速程序運行。Tensilica公司提供了該處理器基于SystemC的仿真模型。本文的實驗平臺是由3個Xtensa處理器仿真模型組成的異構多核系統(tǒng),分別記為core0,core1,core2。
本文節(jié)選自:中國集成電路
編輯:jq
-
處理器
+關注
關注
68文章
19805瀏覽量
233537 -
仿真模型
+關注
關注
1文章
30瀏覽量
12489 -
多核處理器
+關注
關注
0文章
109瀏覽量
20220
發(fā)布評論請先 登錄
米爾瑞芯微多核異構低功耗RK3506核心板重磅發(fā)布
多核異構,智控未來!IC610重新定義工業(yè)智能化

RK3399處理器:高性能多核異構計算平臺
QorIQ?T1042多核處理器
基于IMX8MM處理器Cortex-A核和Cortex-M核的RPMsg通信方案

盛顯科技:拼接處理器是什么設備類型
基于全志T113-i多核異構處理器的全國產(chǎn)嵌入式核心板簡介
ai模型訓練需要什么配置
【米爾NXP i.MX 93開發(fā)板試用評測】1、異構核心通信的技術內(nèi)容
淺談國產(chǎn)異構雙核RISC-V+FPGA處理器AG32VF407的優(yōu)勢和應用場景
復旦微PS+PL異構多核開發(fā)案例分享,基于FMQL20SM國產(chǎn)處理器平臺
君正X2600在3D打印機上的優(yōu)勢:多核異構,遠程控制與實時控制
如何在RK3562J的AMP雙系統(tǒng)實現(xiàn)裸核中斷嵌套機制
一文解析嵌入式多核異構方案,東勝物聯(lián)RK3588多核異構核心板系列一覽

評論