亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

動態(tài)內(nèi)存管理裝置及方法

文檔序號:8258363閱讀:373來源:國知局
動態(tài)內(nèi)存管理裝置及方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及計算機領(lǐng)域,尤其涉及動態(tài)內(nèi)存管理裝置及方法。
【背景技術(shù)】
[0002] 異構(gòu)多核,是指將不同類型的核集成在一起。為了滿足異構(gòu)多核處理器架構(gòu)中不 同內(nèi)存的需求、以及提高內(nèi)存利用效率,目前很多異構(gòu)多核處理器都采用了非一致分級內(nèi) 存體系架構(gòu)。
[0003] 異構(gòu)多核非一致分級內(nèi)存體系架構(gòu)如圖1所示。對于該異構(gòu)多核非一致分級內(nèi) 存體系,如何在軟件層面合理有效利用不同層級內(nèi)存,盡可能減少整體內(nèi)存訪問時延,是構(gòu) 建相關(guān)嵌入式系統(tǒng)性能競爭力的關(guān)鍵。目前,最常用的方法是采用主-從核軟件架構(gòu),將 其中一個核作為主核,負(fù)責(zé)全局任務(wù)的分配管理;并將其它核作為從核,負(fù)責(zé)從主核接收并 執(zhí)行任務(wù)。其中,主核在給從核分配任務(wù)的同時,將該任務(wù)的輸入數(shù)據(jù)通過直接內(nèi)存訪問 (Direct Memory Access,簡稱:DMA)搬移到從核近端動態(tài)內(nèi)存。由于從核近端動態(tài)內(nèi)存一 般較小,當(dāng)從核計算完成之后,一般需要再將輸出數(shù)據(jù)通過DMA搬移到主核近端動態(tài)內(nèi)存 或高層級遠(yuǎn)端動態(tài)內(nèi)存。這樣,減少了從核在任務(wù)處理過程中的內(nèi)存訪問時延。然而,由于 整個過程需要非常高的內(nèi)存周轉(zhuǎn)率,因此,主核對從核近端動態(tài)內(nèi)存或高層級遠(yuǎn)端動態(tài)內(nèi) 存區(qū)的動態(tài)內(nèi)存管理往往會成為整個系統(tǒng)的性能關(guān)鍵。
[0004] 現(xiàn)有技術(shù)中,存在如下兩種動態(tài)內(nèi)存管理方法:
[0005] 第一,如圖2所示,將系統(tǒng)內(nèi)所有動態(tài)數(shù)據(jù)分配區(qū)的內(nèi)存塊通過動態(tài)內(nèi)存管理區(qū) 統(tǒng)一管理。用戶在申請動態(tài)內(nèi)存時,只需指定需要申請的內(nèi)存塊大小,由內(nèi)存管理算法選擇 某一個動態(tài)數(shù)據(jù)分配區(qū)進(jìn)行分配即可。然而,由于用戶無法指定(甚至不感知)內(nèi)存塊的 具體分配位置,并且不同時刻分配的內(nèi)存塊所在的動態(tài)數(shù)據(jù)分配區(qū)不確定,因此該方法無 法保證分配的內(nèi)存塊為從核的近端動態(tài)內(nèi)存中的內(nèi)存塊。進(jìn)而,由于異構(gòu)多核非一致分級 內(nèi)存體系架構(gòu)中,不同的核之間可能無法進(jìn)行內(nèi)存訪問,因此將可能導(dǎo)致內(nèi)存分配或者訪 問失敗,從而無法保證系統(tǒng)的正常運行。
[0006] 第二,如圖3所示,將系統(tǒng)內(nèi)不同的動態(tài)內(nèi)存區(qū)作為一個單獨的分區(qū)來管理,該分 區(qū)包括管理區(qū)以及動態(tài)數(shù)據(jù)分配區(qū)。用戶在申請動態(tài)內(nèi)存時,通過指定分區(qū)號來指定從哪 個對應(yīng)動態(tài)內(nèi)存區(qū)上進(jìn)行申請。然而,一方面,由于異構(gòu)多核非一致分級內(nèi)存體系架構(gòu)中, 不同的核之間可能無法進(jìn)行內(nèi)存訪問,因此對于主核不能直接訪問的內(nèi)存,將導(dǎo)致無法進(jìn) 行遠(yuǎn)端動態(tài)內(nèi)存分配管理(如左側(cè)的核1無法在分區(qū)2上申請內(nèi)存);另一方面,由于內(nèi)存 分區(qū)的管理區(qū)與動態(tài)數(shù)據(jù)分配區(qū)位于同一個動態(tài)內(nèi)存區(qū),因此當(dāng)分區(qū)位于三級(Level 3, 簡稱:L3)內(nèi)存或L4內(nèi)存時,其申請和釋放時延非常大。

【發(fā)明內(nèi)容】

[0007] 本發(fā)明的實施例提供動態(tài)內(nèi)存管理裝置及方法,以至少解決現(xiàn)有技術(shù)中的動態(tài)內(nèi) 存管理方法無法保證異構(gòu)多核非一致分級內(nèi)存體系正常運行、無法在異構(gòu)多核非一致分級 內(nèi)存體系下進(jìn)行遠(yuǎn)端動態(tài)內(nèi)存分配管理或效率低下的問題,能夠在保證異構(gòu)多核非一致分 級內(nèi)存體系正常運行的前提下,提高遠(yuǎn)端動態(tài)內(nèi)存管理的效率。
[0008]為達(dá)到上述目的,本發(fā)明的實施例采用如下技術(shù)方案:
[0009]第一方面,提供一種動態(tài)內(nèi)存管理裝置,所述動態(tài)內(nèi)存管理裝置部署在具有 主-從結(jié)構(gòu)的異構(gòu)多核的主核子系統(tǒng)中,包括:至少一個第一分區(qū)管理單元;其中,
[0010] 所述至少一個第一分區(qū)管理單元中的每個第一分區(qū)管理單元中存儲該第一分區(qū) 管理單元對應(yīng)的所述主核的遠(yuǎn)端動態(tài)內(nèi)存的管理信息,所述主核的遠(yuǎn)端動態(tài)內(nèi)存的管理信 息用于對所述主核的遠(yuǎn)端動態(tài)內(nèi)存進(jìn)行申請與釋放管理。
[0011] 在第一方面第一種可能的實現(xiàn)方式中,結(jié)合第一方面,所述主核的遠(yuǎn)端動態(tài)內(nèi)存 的管理信息包含:至少一個資源池的管理信息;
[0012] 其中,所述至少一個資源池的管理信息中每個資源池的管理信息包含該資源池中 至少一個內(nèi)存塊的信息,所述至少一個內(nèi)存塊的大小相等,并且所述至少一個內(nèi)存塊位于 該第一分區(qū)管理單元對應(yīng)的所述主核的遠(yuǎn)端動態(tài)內(nèi)存的連續(xù)內(nèi)存區(qū)上。
[0013] 在第一方面第二種可能的實現(xiàn)方式中,結(jié)合第一方面第一種可能的實現(xiàn)方式,所 述至少一個資源池的管理信息還包含:第一對應(yīng)關(guān)系,所述第一對應(yīng)關(guān)系為所述至少一個 資源池中每個資源池的首地址與該資源池標(biāo)識的對應(yīng)關(guān)系。
[0014] 在第一方面第三種可能的實現(xiàn)方式中,結(jié)合第一方面第一種可能的實現(xiàn)方式或第 一方面第二種可能的實現(xiàn)方式,所述至少一個內(nèi)存塊的信息包含比特位表,所述比特位表 中的每個比特位分別用于表征所述至少一個內(nèi)存塊中每個內(nèi)存塊的使用狀態(tài),其中,所述 使用狀態(tài)包含:占用狀態(tài)、或空閑狀態(tài)。
[0015] 在第一方面第四種可能的實現(xiàn)方式中,結(jié)合第一方面第一種可能的實現(xiàn)方式至第 一方面第三種可能的實現(xiàn)方式,所述至少一個資源池中每個資源池關(guān)聯(lián)的動態(tài)內(nèi)存的大小 =該資源池中的內(nèi)存塊的總數(shù)X該資源池中每個內(nèi)存塊的大小。
[0016] 在第一方面第五種可能的實現(xiàn)方式中,結(jié)合第一方面至第一方面第四種可能的實 現(xiàn)方式,所述動態(tài)內(nèi)存管理裝置還包括:第二分區(qū)管理單元;
[0017] 所述第二分區(qū)管理單元中存儲所述主核的近端動態(tài)內(nèi)存的管理信息,所述主核的 近端動態(tài)內(nèi)存的管理信息用于對所述主核的近端動態(tài)內(nèi)存進(jìn)行申請與釋放管理。
[0018] 第二方面,提供一種動態(tài)內(nèi)存管理方法,所述動態(tài)內(nèi)存管理方法應(yīng)用于動態(tài)內(nèi)存 管理裝置,所述動態(tài)內(nèi)存管理裝置部署在具有主-從結(jié)構(gòu)的異構(gòu)多核的主核子系統(tǒng)中,包 括:至少一個第一分區(qū)管理單元;其中,所述至少一個第一分區(qū)管理單元中的每個第一分 區(qū)管理單元中存儲該第一分區(qū)管理單元對應(yīng)的所述主核的遠(yuǎn)端動態(tài)內(nèi)存的管理信息,所述 主核的遠(yuǎn)端動態(tài)內(nèi)存的管理信息用于對所述主核的遠(yuǎn)端動態(tài)內(nèi)存進(jìn)行申請與釋放管理;所 述方法包括;
[0019] 獲取第一內(nèi)存塊申請信息,所述第一內(nèi)存塊申請信息包括:所述第一內(nèi)存塊所在 的動態(tài)內(nèi)存對應(yīng)的第一分區(qū)管理單元的分區(qū)標(biāo)識、以及所述第一內(nèi)存塊的大小;
[0020] 根據(jù)所述第一內(nèi)存塊所在的動態(tài)內(nèi)存對應(yīng)的第一分區(qū)管理單元的分區(qū)標(biāo)識,確定 所述第一內(nèi)存塊所在的動態(tài)內(nèi)存對應(yīng)的第一分區(qū)管理單元;
[0021] 根據(jù)所述第一內(nèi)存塊所在的動態(tài)內(nèi)存對應(yīng)的第一分區(qū)管理單元中存儲的該第一 分區(qū)管理單元對應(yīng)的所述主核的遠(yuǎn)端動態(tài)內(nèi)存的管理信息、以及所述第一內(nèi)存塊的大小, 從所述第一內(nèi)存塊所在的動態(tài)內(nèi)存中分配所述第一內(nèi)存塊。
[0022] 在第二方面第一種可能的實現(xiàn)方式中,結(jié)合第二方面,所述主核的遠(yuǎn)端動態(tài)內(nèi)存 的管理信息包含:至少一個資源池的管理信息;
[0023] 其中,所述至少一個資源池的管理信息中每個資源池的管理信息包含該資源池中 至少一個內(nèi)存塊的信息,所述至少一個內(nèi)存塊的大小相等,并且所述至少一個內(nèi)存塊位于 該第一分區(qū)管理單元對應(yīng)的所述主核的遠(yuǎn)端動態(tài)內(nèi)存的連續(xù)內(nèi)存區(qū)上;
[0024] 所述根據(jù)所述第一內(nèi)存塊所在的動態(tài)內(nèi)存對應(yīng)的第一分區(qū)管理單元中存儲的該 第一分區(qū)管理單元對應(yīng)的所述主核的遠(yuǎn)端動態(tài)內(nèi)存的管理信息、以及所述第一內(nèi)存塊的大 小,從所述第一內(nèi)存塊所在的動態(tài)內(nèi)存中分配所述第一內(nèi)存塊,包括:
[0025] 根據(jù)所述第一內(nèi)存塊所在的動態(tài)內(nèi)存對應(yīng)的第一分區(qū)管理單元中存儲的至少一 個資源池的管理信息,查找滿足預(yù)設(shè)條件的資源池,所述預(yù)設(shè)條件包括:該資源池中內(nèi)存塊 的大小不小于所述第一內(nèi)存塊的大小,并且該資源池中內(nèi)存塊的大小在第一資源池集合包 含的資源池中內(nèi)存塊的大小中最小,所述第一資源池集合為所述至少一個資源池中內(nèi)存塊 的大小不小于所述第一內(nèi)存塊的大小的資源池的集合;
[0026] 若存在滿足所述預(yù)設(shè)條件的資源池,在所述滿足所述預(yù)設(shè)條件的資源池上分配所 述第一內(nèi)存塊。
[0027] 在第二方面第二種可能的實現(xiàn)方式中,結(jié)合第二方面第一種可能的實現(xiàn)方式,所 述至少一個內(nèi)存塊的信息包含比特位表,所述比特位表中的每個比特位分別用于表征所述 至少一個內(nèi)存塊中每個內(nèi)存塊的使用狀態(tài),其中,所述使用狀態(tài)包含:占用狀態(tài)、或空閑狀 態(tài);
[0028] 所述若存在滿足所述預(yù)設(shè)條件的資源池,在所述滿足所述預(yù)設(shè)條件的資源池上分 配所述第一內(nèi)存塊,包括:
[0029] 若存在滿足所述預(yù)設(shè)條件的資源池,根據(jù)所述比特位表確定所述滿足預(yù)設(shè)條件的 資源池中的至少一個內(nèi)存塊中是否存在空閑內(nèi)存塊;
[0030] 若所述滿足預(yù)設(shè)條件的資源池中的至少一個內(nèi)存塊中存在空閑內(nèi)存塊,將所述空 閑內(nèi)存塊對應(yīng)的比特位置為占用狀態(tài)。
[0031] 在第二方面第
當(dāng)前第1頁1 2 3 4 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1