本發(fā)明涉及內(nèi)存資源管理技術(shù)領(lǐng)域,尤其涉及一種配置存儲(chǔ)單元的方法及裝置。
背景技術(shù):
通用串行總線(universalserialbus,usb)模塊是長(zhǎng)期演進(jìn)(longtermevolution,lte)嵌入式系統(tǒng)不可缺少的組成部分,usb模塊從lte嵌入式系統(tǒng)的內(nèi)存池中申請(qǐng)內(nèi)存單元,用于數(shù)據(jù)傳輸。而lte協(xié)議棧應(yīng)用程序也是從lte嵌入式系統(tǒng)的內(nèi)存池申請(qǐng)內(nèi)存空間。
usb模塊每次從內(nèi)存緩存區(qū)申請(qǐng)一個(gè)包含多個(gè)存儲(chǔ)單元的存儲(chǔ)單元組來(lái)用于接收數(shù)據(jù),數(shù)據(jù)接收完成之后需要申請(qǐng)新的存儲(chǔ)單元組來(lái)接收下一個(gè)數(shù)據(jù)包。在高吞吐量通信場(chǎng)景下,usb模塊的內(nèi)存申請(qǐng)釋放和lte協(xié)議棧的任務(wù)調(diào)度的頻率都會(huì)急劇增加,而usb模塊頻繁地向內(nèi)存池申請(qǐng)存儲(chǔ)單元組,大大增加了usb模塊與lte協(xié)議棧訪問(wèn)內(nèi)存池沖突的可能性。
技術(shù)實(shí)現(xiàn)要素:
基于上述現(xiàn)有技術(shù)的缺陷和不足,本發(fā)明提出一種配置存儲(chǔ)單元的方法及裝置,能夠降低usb模塊向內(nèi)存池申請(qǐng)內(nèi)存單元的頻率,降低usb模塊與lte協(xié)議棧訪問(wèn)內(nèi)存池沖突的可能性。
一種配置存儲(chǔ)單元的方法,該方法包括:
向內(nèi)存池申請(qǐng)第一數(shù)量的存儲(chǔ)單元組;其中,每一存儲(chǔ)單元組包括第二數(shù)量的存儲(chǔ)單元;
當(dāng)接收到來(lái)自u(píng)sb驅(qū)動(dòng)的數(shù)據(jù)時(shí),將所述數(shù)據(jù)存儲(chǔ)到所述第一數(shù)量的存儲(chǔ)單元組中的空閑的存儲(chǔ)單元組中;
當(dāng)所述第一數(shù)量的存儲(chǔ)單元組中的空閑的存儲(chǔ)單元組數(shù)量小于設(shè)定的數(shù)量閾值時(shí),再次向內(nèi)存池申請(qǐng)存儲(chǔ)單元組。
優(yōu)選地,在將所述數(shù)據(jù)存儲(chǔ)到所述第一數(shù)量的存儲(chǔ)單元組中的空閑的存儲(chǔ)單元組中后,該方法還包括:
檢測(cè)存儲(chǔ)所述數(shù)據(jù)的存儲(chǔ)單元組中,是否存在未被占用的存儲(chǔ)單元;
如果存儲(chǔ)所述數(shù)據(jù)的存儲(chǔ)單元組中,存在未被占用的存儲(chǔ)單元,則回收所述未被占用的存儲(chǔ)單元;
當(dāng)回收的未被占用的存儲(chǔ)單元的數(shù)量,到達(dá)所述第二數(shù)量時(shí),由回收的第二數(shù)量的未被占用的存儲(chǔ)單元組成新的存儲(chǔ)單元組。
優(yōu)選地,所述回收所述未被占用的存儲(chǔ)單元,包括:
保持所述未被占用的存儲(chǔ)單元不被釋放,并且設(shè)置所述未被占用的存儲(chǔ)單元只用于存儲(chǔ)來(lái)自所述usb驅(qū)動(dòng)的數(shù)據(jù)。
優(yōu)選地,再次向內(nèi)存池申請(qǐng)的存儲(chǔ)單元的數(shù)量,不大于所述第一數(shù)量的存儲(chǔ)單元組中已經(jīng)被使用的存儲(chǔ)單元組的數(shù)量。
一種配置存儲(chǔ)單元的裝置,包括:
第一申請(qǐng)單元,用于向內(nèi)存池申請(qǐng)第一數(shù)量的存儲(chǔ)單元組;其中,每一存儲(chǔ)單元組包括第二數(shù)量的存儲(chǔ)單元;
分配單元,用于當(dāng)接收到來(lái)自u(píng)sb驅(qū)動(dòng)的數(shù)據(jù)時(shí),將所述數(shù)據(jù)存儲(chǔ)到所述第一數(shù)量的存儲(chǔ)單元組中的空閑的存儲(chǔ)單元組中;
第二申請(qǐng)單元,用于當(dāng)所述第一數(shù)量的存儲(chǔ)單元組中的空閑的存儲(chǔ)單元組數(shù)量小于設(shè)定的數(shù)量閾值時(shí),再次向內(nèi)存池申請(qǐng)存儲(chǔ)單元組。
優(yōu)選地,該裝置還包括:
檢測(cè)處理單元,用于檢測(cè)存儲(chǔ)所述數(shù)據(jù)的存儲(chǔ)單元組中,是否存在未被占用的存儲(chǔ)單元;如果存儲(chǔ)所述數(shù)據(jù)的存儲(chǔ)單元組中,存在未被占用的存儲(chǔ)單元,則回收所述未被占用的存儲(chǔ)單元;當(dāng)回收的未被占用的存儲(chǔ)單元的數(shù)量,到達(dá)所述第二數(shù)量時(shí),由回收的第二數(shù)量的未被占用的存儲(chǔ)單元組成新的存儲(chǔ)單元組。
優(yōu)選地,所述檢測(cè)處理單元回收所述未被占用的存儲(chǔ)單元時(shí),具體用于:
保持所述未被占用的存儲(chǔ)單元不被釋放,并且設(shè)置所述未被占用的存儲(chǔ)單元只用于存儲(chǔ)來(lái)自所述usb驅(qū)動(dòng)的數(shù)據(jù)。
優(yōu)選地,所述第二申請(qǐng)單元再次向內(nèi)存池申請(qǐng)的存儲(chǔ)單元的數(shù)量,不大于所述第一數(shù)量的存儲(chǔ)單元組中已經(jīng)被使用的存儲(chǔ)單元組的數(shù)量。
一種配置存儲(chǔ)單元的裝置,包括:
存儲(chǔ)器和處理器;
其中,所述存儲(chǔ)器與所述處理器連接,用于存儲(chǔ)程序和程序運(yùn)行過(guò)程中產(chǎn)生的數(shù)據(jù);
所述處理器,用于通過(guò)運(yùn)行所述存儲(chǔ)器中的程序,實(shí)現(xiàn)以下功能:
向內(nèi)存池申請(qǐng)第一數(shù)量的存儲(chǔ)單元組;其中,每一存儲(chǔ)單元組包括第二數(shù)量的存儲(chǔ)單元;當(dāng)接收到來(lái)自u(píng)sb驅(qū)動(dòng)的數(shù)據(jù)時(shí),將所述數(shù)據(jù)存儲(chǔ)到所述第一數(shù)量的存儲(chǔ)單元組中的空閑的存儲(chǔ)單元組中;當(dāng)所述第一數(shù)量的存儲(chǔ)單元組中的空閑的存儲(chǔ)單元組數(shù)量小于設(shè)定的數(shù)量閾值時(shí),再次向內(nèi)存池申請(qǐng)存儲(chǔ)單元組。
優(yōu)選地,所述處理器還用于:
檢測(cè)存儲(chǔ)所述數(shù)據(jù)的存儲(chǔ)單元組中,是否存在未被占用的存儲(chǔ)單元;如果存儲(chǔ)所述數(shù)據(jù)的存儲(chǔ)單元組中,存在未被占用的存儲(chǔ)單元,則回收所述未被占用的存儲(chǔ)單元;當(dāng)回收的未被占用的存儲(chǔ)單元的數(shù)量,到達(dá)所述第二數(shù)量時(shí),由回收的第二數(shù)量的未被占用的存儲(chǔ)單元組成新的存儲(chǔ)單元組。
優(yōu)選地,所述處理器回收所述未被占用的存儲(chǔ)單元時(shí),具體用于:
保持所述未被占用的存儲(chǔ)單元不被釋放,并且設(shè)置所述未被占用的存儲(chǔ)單元只用于存儲(chǔ)來(lái)自所述usb驅(qū)動(dòng)的數(shù)據(jù)。
優(yōu)選地,所述處理器再次向內(nèi)存池申請(qǐng)的存儲(chǔ)單元的數(shù)量,不大于所述第一數(shù)量的存儲(chǔ)單元組中已經(jīng)被使用的存儲(chǔ)單元組的數(shù)量。
本發(fā)明提出的配置存儲(chǔ)單元的方法,向內(nèi)存池申請(qǐng)第一數(shù)量的存儲(chǔ)單元組;其中,每一存儲(chǔ)單元組包括第二數(shù)量的存儲(chǔ)單元;當(dāng)接收到來(lái)自u(píng)sb驅(qū)動(dòng)的數(shù)據(jù)時(shí),將所述數(shù)據(jù)存儲(chǔ)到所述第一數(shù)量的存儲(chǔ)單元組中的空閑的存儲(chǔ)單元組中;當(dāng)所述第一數(shù)量的存儲(chǔ)單元組中的空閑的存儲(chǔ)單元組數(shù)量小于設(shè)定的數(shù)量閾值時(shí),再次向內(nèi)存池申請(qǐng)存儲(chǔ)單元組。上述方案在向內(nèi)存池申請(qǐng)內(nèi)存單元組時(shí),一次性申請(qǐng)多個(gè)內(nèi)存單元組,供usb模塊使用,當(dāng)可用的內(nèi)存單元組數(shù)量小于設(shè)定閾值時(shí),才再次向內(nèi)存池申請(qǐng)內(nèi)存單元組,降低了usb模塊向內(nèi)存池申請(qǐng)內(nèi)存單元組的頻率,從而降低了usb模塊與lte協(xié)議棧訪問(wèn)內(nèi)存池沖突的可能性。
附圖說(shuō)明
為了更清楚地說(shuō)明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見(jiàn)地,下面描述中的附圖僅僅是本發(fā)明的實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)提供的附圖獲得其他的附圖。
圖1是本發(fā)明實(shí)施例提供的一種配置存儲(chǔ)單元的方法的流程示意圖;
圖2是本發(fā)明實(shí)施例提供的另一種配置存儲(chǔ)單元的方法的流程示意圖;
圖3是本發(fā)明實(shí)施例提供的一種配置存儲(chǔ)單元的裝置的結(jié)構(gòu)示意圖;
圖4是本發(fā)明實(shí)施例提供的另一種配置存儲(chǔ)單元的裝置的結(jié)構(gòu)示意圖;
圖5是本發(fā)明實(shí)施例提供的另一種配置存儲(chǔ)單元的裝置的結(jié)構(gòu)示意圖。
具體實(shí)施方式
下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
本發(fā)明實(shí)施例公開(kāi)了一種配置存儲(chǔ)單元的方法,參見(jiàn)圖1所示,該方法包括:
s101、向內(nèi)存池申請(qǐng)第一數(shù)量的存儲(chǔ)單元組;其中,每一存儲(chǔ)單元組包括第二數(shù)量的存儲(chǔ)單元;
具體的,本發(fā)明實(shí)施例技術(shù)方案應(yīng)用于lte嵌入式系統(tǒng)的usb模塊,當(dāng)usb模塊傳輸數(shù)據(jù)時(shí),需要先將數(shù)據(jù)緩存到由存儲(chǔ)單元組成的存儲(chǔ)單元組中,再?gòu)拇鎯?chǔ)單元組中傳輸數(shù)據(jù)。因此,usb模塊傳輸數(shù)據(jù)時(shí),需要首先向內(nèi)存池申請(qǐng)存儲(chǔ)單元組。采用在本發(fā)明實(shí)施例技術(shù)方案中,當(dāng)usb模塊向內(nèi)存池申請(qǐng)存儲(chǔ)單元組時(shí),一次性申請(qǐng)第一數(shù)量的存儲(chǔ)單元組,上述第一數(shù)量根據(jù)實(shí)際需求可靈活設(shè)定。每一個(gè)存儲(chǔ)單元組,包含第二數(shù)量的存儲(chǔ)單元,上述第二數(shù)量也可以根據(jù)實(shí)際需求靈活設(shè)定。
在申請(qǐng)第一數(shù)量的存儲(chǔ)單元組后,對(duì)于這些存儲(chǔ)單元組的管理,一種可選的方式是,設(shè)置一個(gè)專門的數(shù)組來(lái)管理這些存儲(chǔ)單元組,數(shù)組的一個(gè)元素保存著一個(gè)存儲(chǔ)單元組的首地址。剛開(kāi)始時(shí)數(shù)組里沒(méi)有有效數(shù)據(jù),那么從下標(biāo)0開(kāi)始,把新申請(qǐng)的存儲(chǔ)單元組的首地址放到這個(gè)數(shù)組元素里,數(shù)組中第一個(gè)下標(biāo)為0的元素后面的元素下標(biāo)分別是1、2、3…以此類推。
當(dāng)接收到來(lái)自u(píng)sb驅(qū)動(dòng)的數(shù)據(jù)時(shí),執(zhí)行步驟s102、將所述數(shù)據(jù)存儲(chǔ)到所述第一數(shù)量的存儲(chǔ)單元組中的空閑的存儲(chǔ)單元組中;
具體的,當(dāng)usb模塊通過(guò)usb驅(qū)動(dòng)接收數(shù)據(jù)時(shí),首先從存儲(chǔ)存儲(chǔ)單元組的數(shù)組中,讀取一個(gè)空閑的存儲(chǔ)單元組的首地址,將數(shù)據(jù)存儲(chǔ)到空閑存儲(chǔ)單元組所表示的存儲(chǔ)地址。
為了保證數(shù)據(jù)存儲(chǔ)的秩序,本發(fā)明實(shí)施例設(shè)定usb模塊從申請(qǐng)的第一數(shù)量的存儲(chǔ)單元數(shù)組的第一個(gè)存儲(chǔ)單元數(shù)組開(kāi)始存儲(chǔ)數(shù)據(jù)。即第一次讀取數(shù)組中的第一個(gè)存儲(chǔ)單元組的首地址,第二次讀取數(shù)組中的第二個(gè)存儲(chǔ)單元組的首地址,以此類推。
當(dāng)所述第一數(shù)量的存儲(chǔ)單元組中的空閑的存儲(chǔ)單元組數(shù)量小于設(shè)定的數(shù)量閾值時(shí),執(zhí)行步驟s103、再次向內(nèi)存池申請(qǐng)存儲(chǔ)單元組。
具體的,在usb模塊傳輸數(shù)據(jù),不斷地占用已申請(qǐng)的存儲(chǔ)單元組的同時(shí),還會(huì)持續(xù)監(jiān)測(cè)已申請(qǐng)的第一數(shù)量的存儲(chǔ)單元組中,所剩下的空閑存儲(chǔ)單元組的數(shù)量,當(dāng)剩下的存儲(chǔ)單元組的數(shù)量,小于設(shè)定的數(shù)量閾值時(shí),再次向內(nèi)存池申請(qǐng)內(nèi)存單元組,以保證有足夠的空閑存儲(chǔ)單元組用于存儲(chǔ)數(shù)據(jù)。步驟s103的具體執(zhí)行方法與步驟s101的執(zhí)行過(guò)程相同,只是申請(qǐng)的存儲(chǔ)單元組數(shù)量不同。例如,當(dāng)usb模塊監(jiān)測(cè)發(fā)現(xiàn)剩余的空閑存儲(chǔ)單元組的數(shù)量,已經(jīng)不足上述第一數(shù)量的一半,則usb模塊再次向內(nèi)存池申請(qǐng)內(nèi)存單元組。
需要說(shuō)明的是,本發(fā)明實(shí)施例設(shè)置數(shù)組來(lái)存放已申請(qǐng)的存儲(chǔ)單元組的首地址,當(dāng)usb模塊監(jiān)測(cè)發(fā)現(xiàn)數(shù)組中的存儲(chǔ)單元組首地址的數(shù)量少于設(shè)定的數(shù)量閾值時(shí),再次向內(nèi)存池申請(qǐng)存儲(chǔ)單元組。
本發(fā)明實(shí)施例提出的配置存儲(chǔ)單元的方法,向內(nèi)存池申請(qǐng)第一數(shù)量的存儲(chǔ)單元組;其中,每一存儲(chǔ)單元組包括第二數(shù)量的存儲(chǔ)單元;當(dāng)接收到來(lái)自u(píng)sb驅(qū)動(dòng)的數(shù)據(jù)時(shí),將所述數(shù)據(jù)存儲(chǔ)到所述第一數(shù)量的存儲(chǔ)單元組中的空閑的存儲(chǔ)單元組中;當(dāng)所述第一數(shù)量的存儲(chǔ)單元組中的空閑的存儲(chǔ)單元組數(shù)量小于設(shè)定的數(shù)量閾值時(shí),再次向內(nèi)存池申請(qǐng)存儲(chǔ)單元組。上述方案在向內(nèi)存池申請(qǐng)內(nèi)存單元組時(shí),一次性申請(qǐng)多個(gè)內(nèi)存單元組,供usb模塊使用,當(dāng)可用的內(nèi)存單元組數(shù)量小于設(shè)定閾值時(shí),才再次向內(nèi)存池申請(qǐng)內(nèi)存單元組,降低了usb模塊向內(nèi)存池申請(qǐng)內(nèi)存單元組的頻率,從而降低了usb模塊與lte協(xié)議棧訪問(wèn)內(nèi)存池沖突的可能性。
可選的,在本發(fā)明的另一個(gè)實(shí)施例中,參見(jiàn)圖2所示,在將所述數(shù)據(jù)存儲(chǔ)到所述第一數(shù)量的存儲(chǔ)單元組中的空閑的存儲(chǔ)單元組中后,該方法還包括:
s203、檢測(cè)存儲(chǔ)所述數(shù)據(jù)的存儲(chǔ)單元組中,是否存在未被占用的存儲(chǔ)單元;
具體的,在高數(shù)據(jù)量要求下,lte嵌入式系統(tǒng)采用ccdncm協(xié)議。即usb主機(jī)一次性可發(fā)送多個(gè)ip數(shù)據(jù)包來(lái)降低嵌入式系統(tǒng)處理usb中斷的頻率。主機(jī)發(fā)送數(shù)據(jù)的觸發(fā)條件有三個(gè),第一是數(shù)據(jù)包總個(gè)數(shù)達(dá)到上限;第二是數(shù)據(jù)長(zhǎng)度達(dá)到上限;第三是與上一次發(fā)送的時(shí)間間隔達(dá)到上限。只要滿足三個(gè)條件之一,主機(jī)就會(huì)發(fā)送數(shù)據(jù),所以數(shù)據(jù)的長(zhǎng)度是不固定的。
一般情況下,存儲(chǔ)單元組的長(zhǎng)度(所包含的存儲(chǔ)單元數(shù)量),要不小于usb模塊一次接收的數(shù)據(jù)的最大長(zhǎng)度,以保證一條數(shù)據(jù)可以被存儲(chǔ)進(jìn)一個(gè)存儲(chǔ)單元組。因此,通常情況下,存儲(chǔ)單元組在存儲(chǔ)數(shù)據(jù)后,都會(huì)有存儲(chǔ)單元沒(méi)有被占用。
如果存儲(chǔ)所述數(shù)據(jù)的存儲(chǔ)單元組中,存在未被占用的存儲(chǔ)單元,則執(zhí)行步驟s204、回收所述未被占用的存儲(chǔ)單元;
具體的,在現(xiàn)有的數(shù)據(jù)存儲(chǔ)處理方法中,一個(gè)存儲(chǔ)單元組在存儲(chǔ)數(shù)據(jù)后,不論所有的存儲(chǔ)單元是否都存儲(chǔ)了數(shù)據(jù),都要將整個(gè)存儲(chǔ)單元組釋放,這樣造成了存儲(chǔ)單元組中,沒(méi)有存儲(chǔ)數(shù)據(jù)的存儲(chǔ)單元的浪費(fèi)。而在本發(fā)明實(shí)施例中,將存儲(chǔ)單元組中未被占用的存儲(chǔ)單元保留下來(lái),用于存儲(chǔ)新接收的數(shù)據(jù)。這樣,提高了對(duì)存儲(chǔ)單元組的利用率,利于減少向usb模塊向內(nèi)存池申請(qǐng)內(nèi)存單元組的頻率。
當(dāng)回收的未被占用的存儲(chǔ)單元的數(shù)量,到達(dá)所述第二數(shù)量時(shí),執(zhí)行步驟s205、由回收的第二數(shù)量的未被占用的存儲(chǔ)單元組成新的存儲(chǔ)單元組。
具體的,當(dāng)回收的存儲(chǔ)單元的數(shù)量,足夠組成一個(gè)存儲(chǔ)單元組,即足夠上述第二數(shù)量時(shí),由這些回收的第二數(shù)量的存儲(chǔ)單元,組成一個(gè)新的存儲(chǔ)單元組,用于存儲(chǔ)新接收的數(shù)據(jù)。
上述方法在占用存儲(chǔ)單元組中的存儲(chǔ)單元的同時(shí),回收存儲(chǔ)單元組中沒(méi)有被使用的存儲(chǔ)單元,能夠一定程度上增加可用的存儲(chǔ)單元組的數(shù)量,減少向內(nèi)存池申請(qǐng)存儲(chǔ)單元組的頻率,從而減少usb模塊與lte協(xié)議棧訪問(wèn)內(nèi)存池沖突的可能性。
本實(shí)施例中的步驟s201、s202、s206,分別對(duì)應(yīng)圖1所示的方法實(shí)施例中的步驟s101、s102、s103,其具體內(nèi)容請(qǐng)參見(jiàn)對(duì)應(yīng)圖1所示的方法實(shí)施例的內(nèi)容,此處不再贅述。
可選的,在本發(fā)明的另一個(gè)實(shí)施例中,所述回收所述未被占用的存儲(chǔ)單元,包括:
保持所述未被占用的存儲(chǔ)單元不被釋放,并且設(shè)置所述未被占用的存儲(chǔ)單元只用于存儲(chǔ)來(lái)自所述usb驅(qū)動(dòng)的數(shù)據(jù)。
具體的,本發(fā)明實(shí)施例提出一種可行的回收存儲(chǔ)單元組中未被占用的存儲(chǔ)單元的方式。在回收未被占用的存儲(chǔ)單元時(shí),將未被占用的存儲(chǔ)單元的地址存儲(chǔ)到緩存器中,并且,設(shè)置未被占用的存儲(chǔ)單元只用于存儲(chǔ)來(lái)自u(píng)sb驅(qū)動(dòng)的數(shù)據(jù),不能被其它模塊占用。
當(dāng)緩存器中的存儲(chǔ)單元的數(shù)量,足夠組成一個(gè)新的存儲(chǔ)單元組時(shí),將存儲(chǔ)的存儲(chǔ)單元依次連接,組成一個(gè)新的存儲(chǔ)單元組,并將新的存儲(chǔ)單元組的首地址存儲(chǔ)到用于存儲(chǔ)存儲(chǔ)單元組首地址的數(shù)組中,這樣,數(shù)組中就多了一個(gè)存儲(chǔ)單元組的首地址,相當(dāng)于多了一個(gè)新的存儲(chǔ)單元組可以用于usb模塊傳輸數(shù)據(jù)使用。
可選的,在本發(fā)明的另一個(gè)實(shí)施例中,再次向內(nèi)存池申請(qǐng)的存儲(chǔ)單元的數(shù)量,不大于所述第一數(shù)量的存儲(chǔ)單元組中已經(jīng)被使用的存儲(chǔ)單元組的數(shù)量。
具體的,在本發(fā)明實(shí)施例中,設(shè)定再次向內(nèi)存池申請(qǐng)的內(nèi)存單元組的數(shù)量,不大于上述數(shù)組中能夠存儲(chǔ)的存儲(chǔ)單元組首地址的數(shù)量。一方面保證上述數(shù)組能夠存儲(chǔ)所有可用的存儲(chǔ)單元組的首地址;另一方面防止新存儲(chǔ)的存儲(chǔ)單元組首地址覆蓋原有的,尚未被讀取的存儲(chǔ)單元組首地址,造成存儲(chǔ)單元組的浪費(fèi)。
本發(fā)明實(shí)施例公開(kāi)了一種配置存儲(chǔ)單元的裝置,參見(jiàn)圖3所示,該裝置包括:
第一申請(qǐng)單元301,用于向內(nèi)存池申請(qǐng)第一數(shù)量的存儲(chǔ)單元組;其中,每一存儲(chǔ)單元組包括第二數(shù)量的存儲(chǔ)單元;
分配單元302,用于當(dāng)接收到來(lái)自u(píng)sb驅(qū)動(dòng)的數(shù)據(jù)時(shí),將所述數(shù)據(jù)存儲(chǔ)到所述第一數(shù)量的存儲(chǔ)單元組中的空閑的存儲(chǔ)單元組中;
第二申請(qǐng)單元303,用于當(dāng)所述第一數(shù)量的存儲(chǔ)單元組中的空閑的存儲(chǔ)單元組數(shù)量小于設(shè)定的數(shù)量閾值時(shí),再次向內(nèi)存池申請(qǐng)存儲(chǔ)單元組。
具體的,本實(shí)施例中的各個(gè)單元的具體工作內(nèi)容,請(qǐng)參見(jiàn)對(duì)應(yīng)的方法實(shí)施例的內(nèi)容,此處不再贅述。
本發(fā)明實(shí)施例提出的配置存儲(chǔ)單元的裝置,在為usb模塊配置存儲(chǔ)單元時(shí),第一申請(qǐng)單元301向內(nèi)存池申請(qǐng)第一數(shù)量的存儲(chǔ)單元組;其中,每一存儲(chǔ)單元組包括第二數(shù)量的存儲(chǔ)單元;當(dāng)usb模塊接收到來(lái)自u(píng)sb驅(qū)動(dòng)的數(shù)據(jù)時(shí),分配單元302將所述數(shù)據(jù)存儲(chǔ)到所述第一數(shù)量的存儲(chǔ)單元組中的空閑的存儲(chǔ)單元組中;當(dāng)所述第一數(shù)量的存儲(chǔ)單元組中的空閑的存儲(chǔ)單元組數(shù)量小于設(shè)定的數(shù)量閾值時(shí),第二申請(qǐng)單元303再次向內(nèi)存池申請(qǐng)存儲(chǔ)單元組。上述方案在向內(nèi)存池申請(qǐng)內(nèi)存單元組時(shí),一次性申請(qǐng)多個(gè)內(nèi)存單元組,供usb模塊使用,當(dāng)可用的內(nèi)存單元組數(shù)量小于設(shè)定閾值時(shí),才再次向內(nèi)存池申請(qǐng)內(nèi)存單元組,降低了usb模塊向內(nèi)存池申請(qǐng)內(nèi)存單元組的頻率,從而降低了usb模塊與lte協(xié)議棧訪問(wèn)內(nèi)存池沖突的可能性。
可選的,在本發(fā)明的另一個(gè)實(shí)施例中,參見(jiàn)圖4所示,該裝置還包括:
檢測(cè)處理單元304,用于檢測(cè)存儲(chǔ)所述數(shù)據(jù)的存儲(chǔ)單元組中,是否存在未被占用的存儲(chǔ)單元;如果存儲(chǔ)所述數(shù)據(jù)的存儲(chǔ)單元組中,存在未被占用的存儲(chǔ)單元,則回收所述未被占用的存儲(chǔ)單元;當(dāng)回收的未被占用的存儲(chǔ)單元的數(shù)量,到達(dá)所述第二數(shù)量時(shí),由回收的第二數(shù)量的未被占用的存儲(chǔ)單元組成新的存儲(chǔ)單元組。
具體的,本實(shí)施例中的檢測(cè)處理單元304的具體工作內(nèi)容,請(qǐng)參見(jiàn)對(duì)應(yīng)的方法實(shí)施例的內(nèi)容,此處不再贅述。
可選的,在本發(fā)明的另一個(gè)實(shí)施例中,檢測(cè)處理單元304回收所述未被占用的存儲(chǔ)單元時(shí),具體用于:
保持所述未被占用的存儲(chǔ)單元不被釋放,并且設(shè)置所述未被占用的存儲(chǔ)單元只用于存儲(chǔ)來(lái)自所述usb驅(qū)動(dòng)的數(shù)據(jù)。
具體的,本實(shí)施例中的檢測(cè)處理單元304的具體工作內(nèi)容,請(qǐng)參見(jiàn)對(duì)應(yīng)的方法實(shí)施例的內(nèi)容,此處不再贅述。
可選的,在本發(fā)明的另一個(gè)實(shí)施例中,第二申請(qǐng)單元303再次向內(nèi)存池申請(qǐng)的存儲(chǔ)單元的數(shù)量,不大于所述第一數(shù)量的存儲(chǔ)單元組中已經(jīng)被使用的存儲(chǔ)單元組的數(shù)量。
具體的,本實(shí)施例中的第二申請(qǐng)單元303的具體工作內(nèi)容,請(qǐng)參見(jiàn)對(duì)應(yīng)的方法實(shí)施例的內(nèi)容,此處不再贅述。
本發(fā)明實(shí)施例公開(kāi)了另一種配置存儲(chǔ)單元的裝置,參見(jiàn)圖5所示,包括:
存儲(chǔ)器501和處理器502;
其中,存儲(chǔ)器501與處理器502連接,用于存儲(chǔ)程序和程序運(yùn)行過(guò)程中產(chǎn)生的數(shù)據(jù);
處理器502,用于通過(guò)運(yùn)行存儲(chǔ)器501中的程序,實(shí)現(xiàn)以下功能:
向內(nèi)存池申請(qǐng)第一數(shù)量的存儲(chǔ)單元組;其中,每一存儲(chǔ)單元組包括第二數(shù)量的存儲(chǔ)單元;當(dāng)接收到來(lái)自u(píng)sb驅(qū)動(dòng)的數(shù)據(jù)時(shí),將所述數(shù)據(jù)存儲(chǔ)到所述第一數(shù)量的存儲(chǔ)單元組中的空閑的存儲(chǔ)單元組中;當(dāng)所述第一數(shù)量的存儲(chǔ)單元組中的空閑的存儲(chǔ)單元組數(shù)量小于設(shè)定的數(shù)量閾值時(shí),再次向內(nèi)存池申請(qǐng)存儲(chǔ)單元組。
具體的,本實(shí)施例中的各個(gè)部分的具體工作內(nèi)容,請(qǐng)參見(jiàn)對(duì)應(yīng)的方法實(shí)施例的內(nèi)容,此處不再贅述。
可選的,在本發(fā)明的另一個(gè)實(shí)施例中,處理器502還用于:
檢測(cè)存儲(chǔ)所述數(shù)據(jù)的存儲(chǔ)單元組中,是否存在未被占用的存儲(chǔ)單元;如果存儲(chǔ)所述數(shù)據(jù)的存儲(chǔ)單元組中,存在未被占用的存儲(chǔ)單元,則回收所述未被占用的存儲(chǔ)單元;當(dāng)回收的未被占用的存儲(chǔ)單元的數(shù)量,到達(dá)所述第二數(shù)量時(shí),由回收的第二數(shù)量的未被占用的存儲(chǔ)單元組成新的存儲(chǔ)單元組。
具體的,本實(shí)施例中的處理器502的具體工作內(nèi)容,請(qǐng)參見(jiàn)對(duì)應(yīng)的方法實(shí)施例的內(nèi)容,此處不再贅述。
可選的,在本發(fā)明的另一個(gè)實(shí)施例中,處理器502回收所述未被占用的存儲(chǔ)單元時(shí),具體用于:
保持所述未被占用的存儲(chǔ)單元不被釋放,并且設(shè)置所述未被占用的存儲(chǔ)單元只用于存儲(chǔ)來(lái)自所述usb驅(qū)動(dòng)的數(shù)據(jù)。
具體的,本實(shí)施例中的處理器502的具體工作內(nèi)容,請(qǐng)參見(jiàn)對(duì)應(yīng)的方法實(shí)施例的內(nèi)容,此處不再贅述。
可選的,在本發(fā)明的另一個(gè)實(shí)施例中,處理器502再次向內(nèi)存池申請(qǐng)的存儲(chǔ)單元的數(shù)量,不大于所述第一數(shù)量的存儲(chǔ)單元組中已經(jīng)被使用的存儲(chǔ)單元組的數(shù)量。
具體的,本實(shí)施例中的處理器502的具體工作內(nèi)容,請(qǐng)參見(jiàn)對(duì)應(yīng)的方法實(shí)施例的內(nèi)容,此處不再贅述。
對(duì)所公開(kāi)的實(shí)施例的上述說(shuō)明,使本領(lǐng)域?qū)I(yè)技術(shù)人員能夠?qū)崿F(xiàn)或使用本發(fā)明。對(duì)這些實(shí)施例的多種修改對(duì)本領(lǐng)域的專業(yè)技術(shù)人員來(lái)說(shuō)將是顯而易見(jiàn)的,本文中所定義的一般原理可以在不脫離本發(fā)明的精神或范圍的情況下,在其它實(shí)施例中實(shí)現(xiàn)。因此,本發(fā)明將不會(huì)被限制于本文所示的這些實(shí)施例,而是要符合與本文所公開(kāi)的原理和新穎特點(diǎn)相一致的最寬的范圍。