一種多處理器片上系統的性能良品率優化方法和裝置與流程
2023-10-08 12:55:49
本申請涉及半導體領域,更具體地說,涉及一種多處理器片上系統的性能良品率優化方法和裝置。
背景技術:
隨著電晶體特徵尺寸的不斷減小,晶片製造過程中引入的工藝偏差也日益嚴重,給多處理器片上系統(multi-processorsystem-on-chip,mpsoc,mpsoc)設計帶來嚴峻挑戰。在工藝偏差影響下,製造後mpsoc晶片上處理芯核的性能參數(如頻率、功耗)常常偏離設計階段所指定的額定值且應被看作是隨機變量。因而,對於量產mpsoc晶片而言,處理芯核的性能參數表現為統計分布。相應的,mpsoc所執行任務的執行時間等參數同樣具有了概率特徵。這種執行時間的不確定性無法保證程序的執行在各種工藝拐點處都能滿足系統的實時性約束。從統計觀點來看,這將大大降低批量生產的mpsoc晶片中能夠滿足系統實時性約束的晶片所佔的比例,即降低了多處理器片上系統的性能良品率。
技術實現要素:
有鑑於此,本申請提供一種多處理器片上系統的性能良品率優化方法和裝置,以實現多處理器片上系統性能良品率的最優化。
為了實現上述目的,現提出的方案如下:
一種多處理器片上系統的性能良品率優化方法,包括:
步驟a:獲取當前調度時間節點;
步驟b:識別在所述當前調度時間節點下的多個就緒任務和多個就緒處理芯核;
步驟c:確定所有就緒任務的任務優先級;
步驟d:按照任務優先級從到高到低的順序,確定每個就緒任務對應的最優處理芯核,所述就緒任務與所述最優處理芯核為一一對應關係。
優選的,所述按照任務優先級從到高到低的順序,確定每個就緒任務對應的最優處理芯核,之後還包括:
步驟e:判斷所有任務是否均已調度,若否則更新調度時間節點,循環執行步驟a、步驟b、步驟c和步驟d;
若是,則輸出任務調度方案。
優選的,所述確定所有就緒任務的任務優先級,包括:
識別所述就緒任務中的關鍵任務;
基於預設公式計算所有就緒任務的任務優先級;
其中,k為大於1的常量;ctask為一個二進位變量,表示任務是否是關鍵任務,對於關鍵任務,ctask取值為1,反之,取值為0;vlatency表示任務在所有處理芯核上執行延遲的方差;alatency表示任務在所有處理芯核上執行延遲的均值。
優選的,所述按照任務優先級從到高到低的順序,確定每個就緒任務對應的最優處理芯核,包括:
步驟d1:確定所有就緒任務中的最高優先級任務;
步驟d2:計算所述最高優先級任務調度到所有處理芯核上的性能良品率;
步驟d3:將性能良品率最大的處理芯核作為所述最高優先級任務對應的最優處理芯核;
步驟d4:從就緒任務和就緒處理芯核中剔除所述最高優先級任務以及最優處理芯核,以更新所述就緒任務和所述處理芯核;
步驟d5:循環執行步驟d1至步驟d4,直至完成所有就緒任務的調度。
一種多處理器器片上系統的性能良品率優化裝置,包括:
時間節點獲取單元,用於獲取當前調度時間節點;
識別單元,用於識別在所述當前調度時間節點下的多個就緒任務和多個就緒處理芯核;
優先級確定單元,用於確定所有就緒任務的任務優先級;
調度單元,用於按照任務優先級從到高到低的順序,確定每個就緒任務對應的最優處理芯核,所述就緒任務與所述最優處理芯核為一一對應關係。
優選的,還包括:
判斷單元,用於判斷所有任務是否均已調度,若否則更新調度時間節點,以對剩餘的任務進行調度,若是,則輸出任務調度方案。
優選的,所述優先級確定單元包括:
關鍵任務識別模塊,用於識別所述就緒任務中的關鍵任務;
第一計算模塊,用於基於預設公式ptask=(1+k·ctask)·vlatency·alatency計算所有就緒任務的任務優先級;
其中,k為大於1的常量;ctask為一個二進位變量,表示任務是否是關鍵任務,對於關鍵任務,ctask取值為1,反之,取值為0;vlatency表示任務在所有處理芯核上執行延遲的方差;alatency表示任務在所有處理芯核上執行延遲的均值。
優選的,所述調度單元包括:
最高優先級任務確定模塊,用於確定所有就緒任務中的最高優先級任務;
第二計算模塊,用於計算所述最高優先級任務調度到所有處理芯核上的性能良品率;
處理芯核選取模塊,用於將性能良品率最大的處理芯核作為所述最高優先級任務對應的最優處理芯核;
數據更新模塊,用於從就緒任務和就緒處理芯核中剔除所述最高優先級任務以及最優處理芯核,以更新所述就緒任務和所述處理芯核。
經由上述技術方案可知,本申請公開了一種多處理器片上系統的性能良品率優化方法和裝置。該方法首先識別當前調度時間節點下的就緒任務和就緒處理芯核,進而確定所有就緒任務的任務優先級,並按照優先級從高到低的順序,基於性能良品率確定每個就緒任務對應的最優芯核。與現有技術相比,本發明按照任務優先級的高低對就緒任務進行調度,從而確定每個任務對應的最優芯核,提高了多處理器片上系統性能良品率。
附圖說明
為了更清楚地說明本發明實施例或現有技術中的技術方案,下面將對實施例或現有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發明的實施例,對於本領域普通技術人員來講,在不付出創造性勞動的前提下,還可以根據提供的附圖獲得其他的附圖。
圖1示出了本發明一個實施例公開的一種多處理器片上系統的性能良品率優化方法的流程示意圖;
圖2示出了本發明公開的一種就緒任務調度方法的流程示意圖;
圖3示出了本發明另一個實施例公開的一種多處理器片上系統的性能良品率優化裝置的結構。
具體實施方式
下面將結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅是本發明一部分實施例,而不是全部的實施例。基於本發明中的實施例,本領域普通技術人員在沒有做出創造性勞動前提下所獲得的所有其他實施例,都屬於本發明保護的範圍。
參見圖1示出了本發明一個實施例公開的一種多處理器片上系統的性能良品率優化方法的流程示意圖。
在本實施例中,該方法包括:
步驟a:獲取當前調度時間節點。
步驟b:識別在所述當前調度時間節點下的多個就緒任務和多個就緒處理芯核。
所述就緒任務指的是當前調度時間節點該任務的所有前繼任務已經完成調度且執行完成。就緒處理芯核指當前調度時間節點該處理芯核處於空閒狀態,沒有待執行的任務。
步驟c:確定所有就緒任務的任務優先級。
為了實現上述目的,首先識別任務圖中的關鍵任務。所謂關鍵任務是指將這些任務調度到不同的處理芯核上將會對性能良品率產生較大的影響。由於電路拓撲結構與通信任務圖本質上都可以抽象成有向非循環圖,因此可應用電路統計時序分析理論進行任務圖分析,識別關鍵任務。對任務圖進行統計時序分析以識別統計關鍵通路,而位於統計關鍵通路上的任務則可以看成是關鍵任務。
在此基礎上,採用如下公式表示任務優先級:
ptask=(1+k·ctask)·vlatency·alatency
公式中,k為大於1的常量。ctask為一個二進位變量,表示任務是否是關鍵任務。對於關鍵任務,ctask取值為1;反之,取值為0。vlatency表示任務在所有處理芯核上執行延遲的方差。該參數取值越大,表示任務在不同處理芯核上的執行延遲差異越大,應該優先調度。alatency表示任務在所有處理芯核上執行延遲的均值。該參數取值越大,表示任務的執行時間餘量(slack)越小,則對於性能良品率的影響越大,應優先調度。
步驟d:按照任務優先級從到高到低的順序,基於性能良品率確定每個就緒任務對應的最優處理芯核系。
具體的,參見圖2示出了本發明公開的一種就緒任務調度方法的流程示意圖。該方法包括:
步驟d1:確定所有就緒任務中的最高優先級任務。
步驟d2:計算所述最高優先級任務調度到所有處理芯核上的性能良品率。
步驟d3:將性能良品率最大的處理芯核作為所述最高優先級任務對應的最優處理芯核。
步驟d4:從就緒任務和就緒處理芯核中剔除所述最高優先級任務以及最優處理芯核,以更新所述就緒任務和所述處理芯核。
步驟d5:循環執行步驟d1至步驟d4,直至完成所有就緒任務的調度。
步驟e:判斷所有任務是否均已調度,若否則更新調度時間節點,循環執行步驟a、步驟b、步驟c和步驟d,直至所有任務均已被調度,並輸出調度方案。
由以上實施例可知,本實施例公開了本申請公開了本申請公開了一種多處理器片上系統的性能良品率優化方法。該方法首先識別當前調度時間節點下的就緒任務和就緒處理芯核,進而確定所有就緒任務的任務優先級,並按照優先級從高到低的順序,基於性能良品率確定每個就緒任務對應的最優芯核。與現有技術相比,本發明按照任務優先級的高低對就緒任務進行調度,從而確定每個任務對應的最優芯核,提高了多處理器片上系統性能良品率。需要說明的是,在實際應用中駕駛員需要基於跟航車輛的運行對領航車輛的運行進行調整,以保證物流運輸中的安全性。因而在本發明公開的其他實施例中,領航車輛還需要接收跟航車輛的跟航報文(跟航報文包括所述跟航車輛的位置信息、行進狀態信息以及車輛輪廓信息),以輔助駕駛員對領航車輛進行控制。
參見圖3示出了本發明另一個實施例公開的一種多處理器片上系統的性能良品率優化裝置的結構。
在本實施例中,該裝置包括:時間節點獲取單元1、識別單元2、優先級確定單元3、調度單元4以及判斷單元5。
其中,時間節點獲取單元1用於獲取當前調度時間節點。
識別單元2基於時間節點獲取單元獲得的調度時間節點,識別在當前調度時間節點下的多個就緒任務和多個就緒處理芯核。
需要說明的是,所述就緒任務指的是當前調度時間節點該任務的所有前繼任務已經完成調度且執行完成。就緒處理芯核指當前調度時間節點該處理芯核處於空閒狀態,沒有待執行的任務。
優先級確定單元3用於確定所有就緒任務的任務優先級。
具體的,該優先級確定單元3包括:關鍵任務識別模塊31和第一計算模塊32。
關鍵任務識別模塊31用於識別所述就緒任務中的關鍵任務。
所謂關鍵任務是指將這些任務調度到不同的處理芯核上將會對性能良品率產生較大的影響。由於電路拓撲結構與通信任務圖本質上都可以抽象成有向非循環圖,因此可應用電路統計時序分析理論進行任務圖分析,識別關鍵任務。對任務圖進行統計時序分析以識別統計關鍵通路,而位於統計關鍵通路上的任務則可以看成是關鍵任務。
第一計算模塊32,用於基於預設公式ptask=(1+k·ctask)·vlatency·alatency計算所有就緒任務的任務優先級。
其中,k為大於1的常量;ctask為一個二進位變量,表示任務是否是關鍵任務,對於關鍵任務,ctask取值為1,反之,取值為0;vlatency表示任務在所有處理芯核上執行延遲的方差;alatency表示任務在所有處理芯核上執行延遲的均值。
調度單元4,用於按照任務優先級從到高到低的順序,基於性能良品率確定每個就緒任務對應的最優處理芯核。
具體的,該調度單元4包括:最高優先級任務確定模塊41、第二計算模塊42、處理芯核選取模塊43以及數據更新模塊44。
其中,最高優先級任務確定模塊41用於確定所有就緒任務中的最高優先級任務。
第二計算模塊42用於計算所述最高優先級任務調度到所有處理芯核上的性能良品率。
處理芯核選取模塊43用於將性能良品率最大的處理芯核作為所述最高優先級任務對應的最優處理芯核;
數據更新模塊43用於從就緒任務和就緒處理芯核中剔除所述最高優先級任務以及最優處理芯核,以更新所述就緒任務和所述處理芯核。進而,最高優先級任務確定模塊41從剩餘的就緒任務中從新選擇任務優先級最高的任務,直至所有就緒任務均已實現調度。
判斷單元5用於判斷所有任務是否均已調度,若否則更新調度時間節點,以對剩餘的任務進行調度,若是,則輸出任務調度方案。
需要說明的是該系統實施例與方法實施例相對應,其執行過程和執行原理相同,在此不作贅述。
最後,還需要說明的是,在本文中,諸如第一和第二等之類的關係術語僅僅用來將一個實體或者操作與另一個實體或操作區分開來,而不一定要求或者暗示這些實體或操作之間存在任何這種實際的關係或者順序。而且,術語「包括」、「包含」或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者設備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者設備所固有的要素。在沒有更多限制的情況下,由語句「包括一個……」限定的要素,並不排除在包括所述要素的過程、方法、物品或者設備中還存在另外的相同要素。
本說明書中各個實施例採用遞進的方式描述,每個實施例重點說明的都是與其他實施例的不同之處,各個實施例之間相同相似部分互相參見即可。
對所公開的實施例的上述說明,使本領域專業技術人員能夠實現或使用本發明。對這些實施例的多種修改對本領域的專業技術人員來說將是顯而易見的,本文中所定義的一般原理可以在不脫離本發明的精神或範圍的情況下,在其它實施例中實現。因此,本發明將不會被限制於本文所示的這些實施例,而是要符合與本文所公開的原理和新穎特點相一致的最寬的範圍。