本技術涉及車輛,尤其涉及分布式內存的配置方法、裝置、設備、介質及產品。
背景技術:
1、隨著多核微控制器技術的發展,隨機存取存儲器(random?access?memory,ram)的架構也發生了很大變化,從以前的集中式ram逐漸演變到分布式ram架構。分布式ram架構由中央處理器(central?processing?unit,cpu)核對應的本地ram和多核共享的全局ram組。
2、cpu對兩種類型的ram訪問時有下面特點,cpu核訪問本地ram時不經過系統總線,速度非常快,但是本地ram的容量一般較小。cpu訪問全局ram時,需要經過總線,速度稍微慢一些,但是全局ram的空間一般較大。因此,有效地管理本地ram和全局ram資源分配變得尤為重要。
3、目前,由編譯器或者人為的內存段分配方法往往不能充分利用本地ram的速度優勢,也未能有效應對全局ram的訪問延遲,從而影響整體系統的性能。
技術實現思路
1、本技術提供一種分布式內存的配置方法、裝置、設備、介質及產品,該方案用于給第一服務編譯后的至少一個中間文件的數據段進行內存分配,且考慮了每個數據段運行時的訪問信息,實現合理分配。
2、本技術采用的技術方案如下:
3、第一方面,本技術提供一種分布式內存的配置方法,方法應用于多核微控制單元mcu系統,多核mcu系統包括全局內存、多個局部內存、多個內核,一個局部內存與一個內核對應,方法包括:獲取至少一個目標數據段中每個目標數據段的訪問信息;目標數據段為第一服務編譯后的至少一個中間文件的數據段;訪問信息用于表征目標數據段運行時訪問多個內核的頻次;第一服務為mcu系統中任一待運行的服務;
4、基于至少一個目標數據段的訪問信息,在全局內存和多個局部內存中配置用于存儲每個目標數據段的目標內存。
5、基于上述手段,多核微控制單元mcu系統,多核mcu系統包括全局內存、多個局部內存、多個內核,一個局部內存與一個內核對應,相關技術的內存配置方案一般用于給內核配置內核,本技術的方案用于給第一服務編譯后的至少一個中間文件的目標數據段進行內存分配,且再給目標數據段配置內存時,考慮了每個數據段運行時的訪問信息,實現合理分配,提高了第一服務的運行效率,且提高了多核微控制單元mcu系統的運行效果。
6、在一些實現方式中,基于至少一個目標數據段的訪問信息,在全局內存和多個局部內存中配置用于存儲每個目標數據段的目標內存,包括:在每個目標數據段的訪問信息中,確定每個目標數據段的總訪問頻次;總訪問頻次用于表征目標數據段訪問多個內核中每個內核的頻次的總和;基于每個目標數據段的總訪問頻次,確定每個目標數據段的優先級;按照每個目標數據段的優先級,依次基于每個目標數據段的訪問信息,在全局內存和多個局部內存中配置用于存儲每個目標數據段的目標內存。
7、基于上述手段,在對多個目標數據段分配內存時配置了優先級,基于優先級的順序進行分配,由于優先級是基于目標數據段的總訪問頻次確定的,所以可以保證訪問頻次高的目標數據段優先分配內存,這樣可以保證經常用的目標數據段的內存配置的合理性,例如,在內存不足時,基于優先級的配置方式可以保證優先保證經常用的目標數據段的使用,對第一服務的影響較小,提高了第一服務的運行效率。
8、在一些實現方式中,基于至少一個目標數據段的訪問信息,在全局內存和多個局部內存中配置用于存儲每個目標數據段的目標內存,包括:基于每個目標數據段的訪問信息,確定每個目標數據段的分析結果;基于每個目標數據段的分析結果,在全局內存和多個局部內存中配置目標數據段的目標內存;分析結果包括以下至少一項:目標數據段的冷熱類型、親核類型、共享類型以及大小類型。
9、基于上述手段,在內存分配時,考慮了目標數據段的冷熱類型、親核類型、共享類型以及大小類型等因素,可以時內存的分配與實際需求更加符合,以使內存配置更加合理,以使第一服務的運行高效,多核微控制單元mcu系統的運行高效。
10、在一些實現方式中,基于每個目標數據段的訪問信息,確定每個目標數據段的分析結果,包括:在目標數據段的訪問信息中,確定目標數據段的總訪問頻次;若訪問訪頻次大于或等于第一閾值,則確定冷熱類型為熱;若總訪問頻次小于第一閾值,則確定冷熱類型為冷;
11、和/或,在目標數據段的訪問信息中,確定目標數據段的單核訪問頻次,將單核訪問頻次最大的內核確定為親核類型;
12、和/或,在目標數據段的訪問信息中,確定目標數據段的單核訪問頻次,若存在多個單核訪問頻次為非零值,則確定共享類型為核間共享;若僅存在一個單核訪問頻次為非零值,則確定共享類型為非核間共享;
13、和/或,在目標數據段的訪問信息中,確定目標數據段的數據量大小;若數據量大小大于或等于第二閾值,則確定大小類型為大塊;若數據量大小小于第二閾值,則確定大小類型為小塊。
14、基于上述手段,對基于每個目標數據段的訪問信息確定每個目標數據段的分析結果(目標數據段的冷熱類型、親核類型、共享類型以及大小類型)的過程進行了說明。可以看出,該實現過程具有實現便捷、可靠、選擇靈活的特點。
15、在一些實現方式中,在分析結果包括冷熱類型和親核類型的情況下,基于每個目標數據段的分析結果,在全局內存和多個局部內存中配置目標數據段的目標內存,包括:若分析結果的類熱類型為熱,則確定目標內存為多個局部內存中與親核類型指向的內核對應的局部內存;若分析結果的冷熱類型為冷,則確定目標內存為全局內存。
16、基于上述手段,對于熱型的目標數據段,由于訪問頻率高,所以配置在布局內存,由于局部內存與內核直連,在時間維度上,提高了數據響應速率;具體的,可以配置在目標數據段訪問頻率最高的內核對應的局部內存中,以保證大部分訪問的速率;對于冷型的目標數據段,由于訪問頻率低,所以配置在全局內存中,減少局部內存的占用,在空間維度,提高內存使用效率。
17、在一些實現方式中,在分析結果包括共享類型的情況下,基于每個目標數據段的分析結果,在全局內存和多個局部內存中配置目標數據段的目標內存,包括:若分析結果的共享類型為核間共享,則確定目標內存為全局內存;若分析結果的共享類型為非核間共享,則確定目標內存為多個局部內存的一個局部內存。
18、基于上述手段,對于共享類型的目標數據段,由于共享類型的目標數據段一般會訪問多個內核,所以分配到全局ram,有助于多個內核之間的交互,有助于優化內存使用效率,減少不必要的數據復制和同步;度基于非共享類型的目標數據段,則可以在多個局部內存的一個局部內存。可以看出,分配合理、高效。
19、在一些實現方式中,在分析結果包括大小類型的情況下,基于每個目標數據段的分析結果,在全局內存和多個局部內存中配置目標數據段的目標內存,包括:若分析結果的大小類型為大塊,則確定目標內存為全局內存;若分析結果的大小類型為小塊;則確定目標內存為多個局部內存中的一個局部內存。
20、基于上述手段,對于大塊的目標數據段,由于占用內存空間較大,全局內存空間容量大,所以可以配置在全局內存中,對于小塊的目標數據段,由于占用內存空間小,所以可以配置在多個局部內存中的一個局部內存中。可以看出,分配合理、高效。
21、在一些實現方式中,獲取至少一個目標數據段的訪問信息,包括:在多核mcu系統中運行第一服務;在第一時間段內采集第一服務運行過程中至少一個目標數據段中每個目標數據段訪問多個內核的頻次,得到至少一個目標數據段的訪問信息。
22、基于上述手段,通過第一服務的運行過程,實際采集每個目標數據段的訪問信息,具有準確性高、可靠性高的特點。
23、在一些實現方式中,目標數據段包括:第一數據段、第二數據段和第三數據段;其中,第一數據段包括初始化的全局變量和靜態變量;第二數據段包括:未初始化的全局變量和靜態變量;第三數據段包括:局部變量和函數調用。
24、基于上述手段,將目標數據段進行了進一步的分段,實現了對分段后的初始化的全局變量和靜態變量、未初始化的全局變量和靜態變量以及局部變量和函數調用數據的合理內存分配,提高了這些數據的使用效率。
25、第二方面,本技術提供一種分布式內存的配置裝置,裝置部署于多核微控制單元mcu系統,多核mcu系統包括全局內存、多個局部內存、多個內核,一個局部內存與一個內核對應,裝置包括:
26、獲取單元,用于獲取至少一個目標數據段中每個目標數據段的訪問信息;目標數據段為第一服務編譯后的至少一個中間文件的數據段;訪問信息用于表征目標數據段運行時訪問多個內核的頻次;第一服務為mcu系統中任一待運行的服務;
27、配置單元,用于基于至少一個目標數據段的訪問信息,在全局內存和多個局部內存中配置用于存儲每個目標數據段的目標內存。
28、第三方面,本技術提供了一種電子設備,電子設備包括存儲器和處理器,存儲器存儲有計算機程序或者指令,計算機程序或者指令被處理器執行時,實現上述第一方面提供的方法。
29、第四方面,本技術還提供了一種存儲介質,該存儲介質上存儲有計算機程序或者指令,該計算機程序或者指令被處理器執行時實現上述第一方面提供的方法。
30、第五方面,本技術還提供了一種計算機程序產品,該計算機程序產品包括計算機程序或者指令,該計算機程序或者指令被處理器執行時,實現上述第一方面提供的方法。
31、需要說明的是,第二方面至第五方面的技術效果可以參考上述第一方面的詳細描述,此處不再一一贅述。