[發明專利]一種緩存分配方法及裝置有效
| 申請號: | 201310710756.0 | 申請日: | 2013-12-19 |
| 公開(公告)號: | CN103699497B | 公開(公告)日: | 2017-01-04 |
| 發明(設計)人: | 趙劍川;賈克明;劉福元 | 申請(專利權)人: | 京信通信系統(中國)有限公司 |
| 主分類號: | G06F12/0802 | 分類號: | G06F12/0802 |
| 代理公司: | 北京同達信恒知識產權代理有限公司11291 | 代理人: | 黃志華 |
| 地址: | 510663 廣*** | 國省代碼: | 廣東;44 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 緩存 分配 方法 裝置 | ||
技術領域
本發明涉及計算機技術領域,尤其涉及一種緩存分配方法及裝置。
背景技術
緩存的管理和分配在計算機編程領域、網絡通信領域等領域中都有很廣泛的應用。因為在很多情況下都需要對一些臨時數據進行臨時存儲,例如,一個程序的運行需要為該程序分配緩存,從計算機網絡上接收到數據包需要為該數據包分配緩存。現有技術中,對緩存管理和分配的方法主要有如下幾種:
第一種,基于先進先出隊列的緩存管理方法。在該方法中,將緩存塊劃分成固定長度的子緩存塊,用一個隊列來保存各個空閑的子緩存塊的地址,當需要分配子緩存塊時,從隊列的隊列頭取出一個子緩存塊地址,將該子緩存塊進行分配,當子緩存塊被釋放之后,即該子緩存塊的狀態又變為空閑,將該子緩存塊的址插入到隊列的隊尾。
第二種,基于位圖的緩存管理方法。在該方法中,將緩存塊劃分成多個緩存區間,每個緩存區間包括多個固定長度的子緩存塊,針對每個緩存區間,使用一個一維位圖的各個比特位表征該緩存區間中各個子緩存塊的狀態,例如,當位圖的某比特位為1時,表征該比特位對應的子緩存塊的狀態為被占用,當位圖某比特位為0時,表征該比特位對應的子緩存塊的狀態為空閑。為每個緩存區間分配一塊內存,對該緩存區間中的各個子緩存塊進行管理,例如,該緩存區間中各子緩存塊的大小、地址范圍等。
以接收到網絡傳輸的數據包,為該數據包分配子緩存塊為例,當接收到數據包,為該數據包分配子緩存塊時,為該數據包分配長度相同的子緩存塊,當接收到的數據包小于子緩存塊的長度,為小數據包分配大子緩存塊,降低了緩存的利用率,當接收到的數據包大于子緩存塊的大小,將由于無子緩存塊可為數據包分配而導致數據包丟失。
發明內容
本發明實施例提供了一種緩存分配方法及裝置,用以解決現有技術中對緩存塊的劃分以及分配不合理的問題。
基于上述問題,本發明實施例提供的一種緩存分配方法,包括:
從不同預設長度中,確定長度不小于需要分配的緩存長度的預設長度,并從確定的預設長度中,確定長度最小的預設長度;
從配置的各子緩存塊中,確定所述最小的預設長度對應的且使用狀態為空閑的子緩存塊,并將確定的空閑子緩存塊進行分配,其中,所述各子緩存塊為基于所述不同預設長度,分別將同一緩存塊劃分為多個長度相等的子緩存塊。
本發明實施例提供的一種緩存分配裝置,包括:
第一確定模塊,用于從不同預設長度中,確定長度不小于需要分配的緩存長度的預設長度,并從確定的預設長度中,確定長度最小的預設長度;
第二確定模塊,用于從配置的各子緩存塊中,確定所述最小的預設長度對應的且使用狀態為空閑的子緩存塊;
分配模塊,用于將所述第二確定模塊確定的空閑子緩存塊進行分配,其中,所述各子緩存塊為基于所述不同預設長度,分別將同一緩存塊劃分為多個長度相等的子緩存塊。
本發明實施例的有益效果包括:
本發明實施例提供的一種緩存分配方法及裝置,從不同預設長度中,確定長度不小于需要分配的緩存長度的預設長度,并從確定的預設長度中,確定長度最小的預設長度;從配置的各子緩存塊中,確定最小的預設長度對應的且使用狀態為空閑的子緩存塊,并將確定的空閑子緩存塊進行分配,其中,各子緩存塊為基于所述不同預設長度,分別將同一緩存塊劃分為多個長度相等的子緩存塊。針對不同的預設長度,每種預設長度對應一種緩存劃分方式,在不同的劃分方式中,劃分的子緩存塊具有不同的長度,在接收到緩存分配請求時,可以根據需要分配的緩存長度,從所有不小于該需要分配的緩存長度的各預設長度中,確定最小的預設長度;從針對該最小的預設長度劃分的多個子緩存塊所中確定一個使用狀態為空閑的子緩存塊,并將該子緩存塊進行分配。這樣,能夠根據需要分配的緩存塊的大小選擇合適的子緩存塊進行分配,與現有技術中,無論需要分配的緩存是大還是小均分配固定大小的子緩存塊相比,提高了對緩存的利用率,使得對緩存塊的劃分和分配更加合理。
附圖說明
圖1為本發明實施例提供的一種緩存分配方法的流程圖;
圖2為本發明實施例1提供的一種緩存分配方法的流程圖;
圖3a-3f為本發明實施例提供的緩存分配示意圖;
圖4為本發明實施例2提供的一種緩存分配方法的流程圖;
圖5為本發明實施例3提供的一種緩存分配方法的流程圖;
圖6為本發明實施例4提供的一種緩存分配方法的流程圖;
圖7為本發明實施例提供的一種緩存分配裝置的結構示意圖。
具體實施方式
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于京信通信系統(中國)有限公司,未經京信通信系統(中國)有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201310710756.0/2.html,轉載請聲明來源鉆瓜專利網。





