290 likes | 628 Views
多核心 ATPA 環境 中的 適應性硬體即時 任務排程器. Class : VLSI SoC 軟硬 體共同設計 Advisor : 周哲民 Jou , Jer Min Student : 黃筱喬 X. Q. Huang Date : 2012/11/28. 目錄. 摘要 介紹 相關研究 在 ATPA 系統中的任務排程 機制 異質多核心 ATPA 模型 硬體排程器 頻率監控調整器 實驗結果 原型的多核心 ATPA 處理器 關於 執行效率的實驗 關於在 ATPA 上的實驗 分析 結論和未來 研究. 摘要.
E N D
多核心 ATPA 環境中的 適應性硬體即時任務排程器 Class : VLSI SoC軟硬體共同設計 Advisor : 周哲民 Jou, Jer Min Student : 黃筱喬 X. Q. Huang Date :2012/11/28
目錄 • 摘要 • 介紹 • 相關研究 • 在ATPA系統中的任務排程機制 • 異質多核心 ATPA 模型 • 硬體排程器 • 頻率監控調整器 • 實驗結果 • 原型的多核心ATPA處理器 • 關於執行效率的實驗 • 關於在ATPA上的實驗 • 分析 • 結論和未來研究
摘要 • 大部分的即時多任務系統中,排程是由作業系統處理的,在這類系統中,任務管理帶來的負擔是非常重要的議題,並且,即時的任務也很難達到精密的隔離。 • 提出一個硬體排程器來對付上述的問題 • 此硬體排程器能被嵌入在處理器之中。 • 一個頻率監控調整器被使用去測量並且紀錄每個由任務和處理器核心組成的組合,任務將可以被適當的安排到最有效的核心。
介紹 • 即時作業系統(Real-Time Operating Systems, RTOS ):負責主管任務排程以便全部的任務可以在終止之前得到回應。 • 可變應用處理器架構(Application-Turned Processor Architecture, ATPA ):處理器架構可以在執行其間調整去符合不同應用的需求以便任何類型的應用都可以從架構中得到增益。 • 在一個電腦中,處理器只會接收指令並且它不會知道“任務”這個東西。因此任務排程通常是由作業系統來處理,它是最靠近硬體( 處理器 )的軟體。
介紹 • 由軟體實現排程的三個缺點,如下所示: • 大量的負擔:當在交換任務時,作業系統需要頻繁切換使用者模式與核心模式,他會花費時間去儲存和恢復對應的資料在交換的過程中。另外,在排程演算法中也會有大量的負擔。尤其在動態的排程系統之中,他會花費大量的處理器週期去安排不定期的任務,這總會造成處理器在使用上有延遲且降低效用。 • 無法將各個即時的任務精密的獨立:在一個可靠的系統中,某些任務的失敗不會影響到其它獨立任務的執行,並且也不會阻礙排程中的任務。在軟體排程系統中,錯誤的行為例如程序停頓可能會使排程器錯誤並且威脅到整個系統的安全。 • 複雜的任務管理機制會造成能源消耗增加。
介紹 • 改善一個ATPA 系統的效能,降低花費在運行排程演算法和交換任務的損失是必要的。 • 針對排程演算法方面:實現一個任務排程器在一個特定的硬體內去加速排程以降低這些損失。 • 針對交換任務方面:根據它們的種類去適當的安排任務是必要的。任務的種類可以經由在對應的指令串流中特別的指令出現頻率然後利用公式表示之。 • 使用軟體去做指令的統計是無效率的。 • 使用硬體指令計數器可以幫助節省處理器的使用。
相關研究 • 硬體排程器可以被概括地分類成兩個種類: • 協處理排程器:硬體排程器像協處理器被設置在處理器的外面 • 整合排程器:硬體排程器被整合進處理器核心之中 • 協處理排程器: • 一個獨立的硬體單元,它連接到匯流排並且透過共享記憶體來與處理器核心溝通。通常是使用在加速動態排程系統以避免大量的計算負擔。 • 幫助加速排程演算法的執行和減少在核心模式與使用者模式交換時的負擔。但是仍然有花費在儲存和恢復對應的資料上面的負擔存在,所以無法幫助去加速在使用者模式與核心模式中對應的資料交換。 • 處理器內部的位元:程式計數器( Program Counter, PC ),通用目的暫存器( general purpose registers, GPRs ),算數邏輯單元的旗標暫存器和在處理器控制之下只能從記憶體中寫入或讀出的堆疊指位器。
相關研究 • 整合排程器: • 處理器的元件之一,它包含許多硬接線的暫存器檔案和對應的解碼邏輯單元 • 兩個模式的交換可以在幾個周期內完成,所以整合排程器對加速兩個模式對應的資料交換有幫助。 • 此論文提出的硬體排程器是一個整合的排程器,它對於基於多核心處理器的系統是適合的,由其是在異質多核心ATPA 系統當中。
在ATPA系統中的任務排程機制異質多核心 ATPA 模型 • 異質多核心:不同核心內硬體架構不一樣 • 相同指令,在不同核心下執行,可能會需要不同的週期 ALU為算數邏輯單元 GPR為通用目的暫存器 FR為旗標暫存器 IR為指令暫存器 ADDR為位址產生器 PC為程式計數器 SX為堆疊指標暫存器
在ATPA系統中的任務排程機制異質多核心 ATPA 模型 • TNEW和TKILL是硬體一開始的訊號,分別被使用去創造新的任務和刪除任務。 • TNEW為任務描述區塊(task description block, TDB)的入口,也就是位置的差量,就像是個參數。這個位置儲存的TDB是有關於全部TDB空間的開始位置。 • 在一個新的任務創造期間,TNEW會被執行,在TDB所儲存的資料會從記憶體讀取到專用的暫存器,這類型的暫存器叫做環境暫存器檔(Context Register Files),並且能在處理器核心之間被分享。 • 當TKILL被呼叫時,對應的環境暫存器檔將會被去除。
在ATPA系統中的任務排程機制異質多核心 ATPA 模型 • 當任務被安排時,在處理器核心的環境就會從環境暫存器檔被讀取或是儲存。 • 當在排程上時,處理器核心將會進入閒置(IDLE)的狀態並且硬體排程器將會處理環境資料交換,其中包括 GPRs、ALU旗標暫存器、PC、SX等等。環境資料交換在幾個周期就可以完成而不需要存取記憶體。 • 此架構的好處是任務可以簡單的從一個核心移動到另一個,因此在處理器之間在安排任務時的負擔會被降低,這樣的特色能夠幫助去利用ATPA的優勢。
在ATPA系統中的任務排程機制硬體排程器 • 信號決定器(Semaphore arbiter)保持著硬體信號。當信號決定器若是從處理器核心接收到STAKE或是SGIVE需求時,它將會讀取任務指標暫存器( TPR )並且拿取這個任務ID需要的信號,接著更新等待佇列和準備佇列。每個信號都有各自的等待佇列。
在ATPA系統中的任務排程機制硬體排程器 • 演算法電路保持著準備佇列,在排程時,任務的環境資料將會被儲存到環境暫存器檔,任務的ID是在TPR中。如果一個任務被阻擋,它將會從準備佇列中移除,否則它會被移動到佇列的末端。在佇列前頭的任務ID會被讀取到TPR和它的環境資料將從環境暫存器檔讀取到一個處理器核心。
在ATPA系統中的任務排程機制硬體排程器 • 演算法電路將被致能在下列4個情況中: • 由信號操作的任務阻塞或是任務活動。 • 均等的中斷。中斷是由提出的處理器中的專用硬體信號來實現。 • 初始的硬體訊號包括TNEW和TKILL。 • 由MTU初始的任務再次分配。
在ATPA系統中的任務排程機制頻率監控調整器 • 在一個異質多核心之中,讓某個任務對應到適合這個任務種類的處理器以便盡可能的改善整體的效能,這件事情是非常重要的。 • 監控調整單元( Monitor and Tuner Unit, MTU ):用於在執行期間讓任務對應到異質處理器核心上。MTU會紀錄了指令序列和每個任務對應的核心週期並且用公式將它們分類,像是一個特別的指令出現頻率的函數,並且接著每個任務可以分別對應到正確的核心之上。
在ATPA系統中的任務排程機制頻率監控調整器 • CS = {Ci | 1≦i≦k},其中P是一個k個核心的處理器,使CS為這些處理器核心的集合,Ci是P中的一個處理器核心。 • TS={Ti|1≦i≦m},TS是任務的集合,Ti是在P中被排程的一個任務。 • S(T)=(I1、I2...In),S(T)是一個T的指令序列,其中I1在S(T)中是最後的指令,In在S(T)中是最新的指令。指令的擺放方式就像記憶體的pop跟push。 • R(C,S)= ,一個指令序列S在一個處理器核心C上執行時的消耗速率,其中t(C,I)表示指令I執行在C核心的消耗,w(I)[0,1]表示t(C,I)的權重值。 • 在大多的應用之中,最一開始在序列S出現的指令I,它對於預測在未來中S的能源消耗速率是較沒有幫助的,因此較小的權重值就會被給予。通常它會滿足和w(I1)=1。
在ATPA系統中的任務排程機制頻率監控調整器 • A:TS->CS :在核心集合CS上的任務集合TS的分配動作A,其中滿足A={(Ti , Cj)|TiTS , CjCS},裡面的組合(Ti , Cj)表示任務Ti被安排在核心Cj上執行。 • MTU的函式如下所示: (A0是當前的分配動作) • Step1:計算。 • Step2:如果任務的分配A1滿足和,其中R0是已給的閥值,那麼就會引發再次分配的例行程序並且拿取A1當做當前的分配,否則會回到第一個步驟。 • Step 3:使A0=A1,回到第一個步驟。 • 每當抓取到一個新的指令,MTU將會計算全部核心當前的消耗總和,如果再排程的條件被滿足,MTU將會送出一個開始的訊號給硬體排程器並且引發一個再排程的例行程序,接著執行中的任務將會被立刻阻擋並且在全部的核心之中重新分配。
實驗結果原型的多核心ATPA處理器 • 原型異質多核心ATPA處理器(Prototype heterogeneous multi-core ATPA processor, PAMAP)實現在有100MHz XTAL的Xilinx XC4VLX15 FPGA 上。 • PAMAP是一個有精簡指令集優勢的8-bit雙核心處理器(包括核心0和核心1),指令都是使用統一的格式,只有兩個位址模式(包括直接位址跟間接位址),資料匯流排為8bits,位址匯流排為16bits,每個指令為24bits(包括8bits運算碼和16 bits運算元位址)。
實驗結果原型的多核心ATPA處理器 • 指令集包括: • 六個算術邏輯運算指令:ADD、SUB、AND、ANDN、OPA和OPB,其中OPA和OPB是用來測試MTU的特殊指令,其特性為執行在兩個核心中會花費不同週期。 • 三個跳躍指令:JZ、JI和JMP • 四個記憶體位址指令:直接位址指令(LD和STO)和間接位址指令(LDM和STOM),記憶體位元是由0x00到0xFF,用來儲存常數。 • 四個任務管理指令:TNEW、TKILL、TRUN和TSTOP。 • TNEW:TDB的入口位址,以4-byte排列著。在執行完TNEW後,硬體排程會產生新任務的ID,並放置到AX裡。 • TKILL:終止當前任務。 任務狀態指標 PC值 AX值 PC值 TDB (4-byte) TNEW
實驗結果原型的多核心ATPA處理器 • 指令集包括: • 四個任務管理指令:TNEW、TKILL、TRUN和TSTOP。 • TRUN和TSTOP是用來支援軟體排程器,用來作為硬體排程器的對照,他們對於架構的影響是可以忽略的。 • TRUN是用來載入任務的內容並執行它。 • TSTOP是用來儲存任務的內容並且終止任務。 • 兩個信號運算指令:STAKE和SGIVE。 • 兩個時間管理指令:TMSET和TMCLR。 • 系統中的時脈產生器(timer)只會被軟體使用,硬體排程器有它自己內部的時脈產生器,所以不會被時間管理指令給影響。 • 兩個針對中斷呼叫和返回的指令:INT(interruption instruction)和IRET(interruption return instruction)。 • 中斷都是被核心0處理,一旦INT被執行,ISR(interruption Service Routine)任務將會被插在準備佇列的前面,硬體排程器將會重新排程。ISR有最高的優先權。 • IRET會阻擋ISR任務,並且會讓原先的任務回到佇列的前面繼續執行。 • 一個終止指令:HLT。
實驗結果原型的多核心ATPA處理器 • 如下表為在PAMAP中每個指令花費的核心週期
實驗結果關於執行效率的實驗 • Executing_rate= • Executing_efficiency= • Simultaneous_tasks是指在此系統中同時間執行的任務數量 • 在此實驗中,使用五個測試任務,其中都包含一樣的程式碼,測試程式的資料是來自兩個依順序排列的運算元陣列(陣列0和陣列1) ,做完算術運算後,再將結果存回陣列0。在運算元陣列中所有的資料都被運算後,測試程式碼將會複製一份自己的資料當作是新的任務,並且砍了原本的自己。
實驗結果關於執行效率的實驗 • 軟體排程花1169的週期=硬體排程花9個週期,所以當排程出現越多次的任務,軟體排程器的效能就會大大的降低。 • 從兩圖比較中可以發現硬體排程器的執行效率比軟體排程器高。硬體排程系統將保持在99.96%,軟體排程系統保持在95.09%,所以可以證明說硬體排程器對於交換內容以及維持任務佇列是有幫助的。
實驗結果關於在ATPA上的實驗 • 如上述,測試程式碼將由兩個運算元陣列中取得資料,其兩個運算元陣列是依順序排列,假如陣列0的LSB是0,代表OPA將會被執行,反之,OPB會被執行,最後再將結果存回陣列0。 • P=,代表從陣列0中取得運算元的突起因素。 • P>1,在相對任務的指令序列中,OPA的數量大於OPB的數量,稱為A任務種類。當P趨近於無窮大時,相對的A任務種類特徵就會凸顯出來,因此此任務會被排程在核心0運作。 • P<1,在相對任務的指令序列中,OPB的數量大於OPA的數量,稱為BA任務種類。當P趨近於0時,相對的B任務種類特徵就會凸顯出來,因此此任務會被排程在核心1運作。
實驗結果關於在ATPA上的實驗 • 根據不同P去隨機產生五個測試任務的資料,滿足(P0,P1,P2,P3,P4)=(1,p,p,1/p,1/p),其中Pi代表第i個任務的相對突起因素。 左圖為處理兩萬個運算元 的平均週期圖,其中normal MTU是使用過去的方法, 考慮五個最近的指令去決定 是否要重新排程;aggressive MTU為使用所提出的方法, 考慮最靠近的一個指令去決定 是否要重新排程。
實驗結果關於在ATPA上的實驗 • 當P趨近於無窮大或是P趨近於0時,處理兩萬個運算元的平均時間可以節省2.58%。 • 在測試程式中有19個指令不能夠去加速,除了特徵指令外。 • 在PAMAP中,使用特徵指令的平均加速比為27%。 • 當P趨近於1時,因為內容交換的成本使得ATPA處理器的效能下降,是因為重新排程的頻率太過於頻繁。
實驗結果分析 • ATPA處理器的效能好壞會依據下面三個因素: • 應用特徵的突起因素P • 當P趨近於1時,因為內容交換的成本使得ATPA處理器的效能下降,是因為重新排程的頻率太過於頻繁。 • MTU的預測演算法 • 當應用特徵不明顯時,簡易的演算法會有缺點,所以當演算法越來越複雜時,所耗費的成本會越來越高。 • 任務的機率分配 • 假設兩個任務,屬於不同的種類,那個可以很簡單地把兩任務依據種類分配到適當的核心,但是當兩個任務是屬於同種種類時,只能夠有其中一個任務去加速,那麼ATPA架構就不能發揮其優點。
結論和未來研究 • 實驗結果顯示硬體排程器幫助減少了環境資料交換時的損耗和加速了排程演算法。 • MTU的硬體模組被提出,它監看了任務的指令序列和引發再次排程,其中根據指令的特色適當地分配任務在適合的核心上。也就是說MTU可以幫助去完整地利用ATPA的優勢並且得到高的效能表現。然而MTU不能根據處理器核心的特性,去提供任何資訊去給排程器來使任務動作。 • 事實上,硬體排程器的效能可以藉由利用MTU提供任務分類的優點做進一步的改善,因此此論文所提出動態排程任務的計畫,其中裡頭的任務是基於從MTU收集來的資訊以便能近一步的利用ATPA架構的效用。