一種應(yīng)用于無線通訊的存儲(chǔ)方法及讀寫存儲(chǔ)裝置制造方法
【專利摘要】本發(fā)明公開了一種應(yīng)用于無線通訊的存儲(chǔ)方法及讀寫存儲(chǔ)裝置,該方法包括:根據(jù)數(shù)據(jù)的業(yè)務(wù)類型選擇對(duì)應(yīng)指針的遷移來調(diào)整存儲(chǔ)結(jié)構(gòu),自適應(yīng)分配存儲(chǔ)空間,在寫操作情況下讀取對(duì)應(yīng)指針,根據(jù)狀態(tài)指示判斷存儲(chǔ)空間的狀態(tài)是否為非空間向上合并狀態(tài),如果是,則根據(jù)讀取的指針找到對(duì)應(yīng)的存儲(chǔ)空間并執(zhí)行數(shù)據(jù)寫操作,如果否,則進(jìn)行指針奇偶判斷。采用本發(fā)明,提高了存儲(chǔ)空間的綜合性能和存儲(chǔ)空間的利用率。
【專利說明】-種應(yīng)用于無線通訊的存儲(chǔ)方法及讀寫存儲(chǔ)裝置
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及存儲(chǔ)技術(shù),尤其涉及一種應(yīng)用于無線通訊的存儲(chǔ)方法及讀寫存儲(chǔ)裝 置。
【背景技術(shù)】
[0002] 在通信領(lǐng)域,常常有多個(gè)數(shù)據(jù)端口要發(fā)送、接收處理數(shù)據(jù)包,涉及多個(gè)操作源與存 儲(chǔ)裝置的交互。常見的處理方式是把這些操作源的讀寫操作,細(xì)分成多個(gè)讀寫隊(duì)列與存儲(chǔ) 裝置進(jìn)行交互。
[0003] 存儲(chǔ)中數(shù)據(jù)空間如何分配涉及到整個(gè)存儲(chǔ)裝置的性能,成本等多方面因素。常見 的現(xiàn)有的存儲(chǔ)分配方案有如下幾種:
[0004] -:固定分配法。對(duì)每個(gè)隊(duì)列固定分配一片存儲(chǔ)空間。每個(gè)隊(duì)列獨(dú)享所分配的存 儲(chǔ)空間,不與其它隊(duì)列的存儲(chǔ)空間交互,系統(tǒng)控制簡單,但是存儲(chǔ)空間利用率低。由于通訊 的不確定性,有可能某個(gè)隊(duì)列只有少量數(shù)據(jù),存儲(chǔ)空間大量空閑,另外一個(gè)隊(duì)列有大量的數(shù) 據(jù),存儲(chǔ)空間不夠適用,但是由于采用固定的分配方式,隊(duì)列之間的存儲(chǔ)空間不能交互,因 此存儲(chǔ)空間承載不均,導(dǎo)致存儲(chǔ)空間利用率較低。
[0005] 二:直接共享存儲(chǔ)法。所有隊(duì)列共享一片、大的存儲(chǔ)空間,所有的隊(duì)列對(duì)這片空間 都有讀寫權(quán)限。由于各個(gè)隊(duì)列,隊(duì)列的到達(dá)時(shí)間是不一樣的,每個(gè)隊(duì)列的讀取時(shí)間也是不確 定的,因此過一段時(shí)間后,整個(gè)存儲(chǔ)空間空閑空間不連續(xù),不容易找到一段連續(xù)足夠長的存 儲(chǔ)空間給新的隊(duì)列分配任務(wù),導(dǎo)致存儲(chǔ)空間利用率也不高。
[0006] 三:鏈表共享存儲(chǔ)方法。針對(duì)以上第二種方式,不容易找到一片連續(xù)足夠長的空 間,采用鏈表方式。采用鏈表方式,可以把不連續(xù)的空閑空間鏈接起來提供給大數(shù)據(jù)包進(jìn)行 使用。使用鏈表方式,經(jīng)過一段時(shí)間的數(shù)據(jù)處理后,空閑存儲(chǔ)空間碎片將變得足夠小,但是 鏈表的長度將變得足夠長,這將導(dǎo)致存儲(chǔ)裝置性能急劇下降,存儲(chǔ)空間利用率也會(huì)大幅下 降。
[0007] 四:固定基本單兀共孚法。在共孚空間內(nèi),按最大包的長度開辟基本存儲(chǔ)單兀,每 個(gè)數(shù)據(jù)包占用一個(gè)基本存儲(chǔ)單元。此種方法性能高,但是空間利用率也低。
[0008] 綜上所述,采用現(xiàn)有的存儲(chǔ)技術(shù),針對(duì)多源共享技術(shù),雖然每個(gè)方案都各有局部優(yōu) 勢,但是,綜合起來都有明顯的限制,不能兼顧各方面的優(yōu)勢,例如有的存儲(chǔ)空間利用率極 其低下,有的在存儲(chǔ)性能上很難接受。并且都只適應(yīng)指定的固定業(yè)務(wù)類型,從而一旦業(yè)務(wù)類 型發(fā)送變化,綜合性能存儲(chǔ)空間利用率就可能發(fā)生不可控的指數(shù)下降。
【發(fā)明內(nèi)容】
[0009] 有鑒于此,本發(fā)明的主要目的在于提供一種應(yīng)用于無線通訊的存儲(chǔ)方法及讀寫存 儲(chǔ)裝置,提高了存儲(chǔ)空間的綜合性能和存儲(chǔ)空間的利用率。
[0010] 為達(dá)到上述目的,本發(fā)明的技術(shù)方案是這樣實(shí)現(xiàn)的:
[0011] 一種應(yīng)用于無線通訊的存儲(chǔ)方法,該方法包括:
[0012] 根據(jù)數(shù)據(jù)的業(yè)務(wù)類型選擇對(duì)應(yīng)指針的遷移來調(diào)整存儲(chǔ)結(jié)構(gòu),自適應(yīng)分配存儲(chǔ)空 間,在寫操作情況下讀取對(duì)應(yīng)指針,根據(jù)狀態(tài)指示判斷存儲(chǔ)空間的狀態(tài)是否為非空間向上 合并狀態(tài),如果是,則根據(jù)讀取的指針找到對(duì)應(yīng)的存儲(chǔ)空間并執(zhí)行數(shù)據(jù)寫操作,如果否,則 進(jìn)行指針奇偶判斷。
[0013] 其中,所述進(jìn)行指針奇偶判斷具體包括:如果讀取的指針是奇數(shù)指針,則根據(jù)讀取 的奇數(shù)指針找到對(duì)應(yīng)的存儲(chǔ)空間并執(zhí)行數(shù)據(jù)寫操作;如果讀取的指針是偶數(shù)指針,則將讀 取的偶數(shù)指針?biāo)屯媾紶顟B(tài)空間對(duì)其進(jìn)行更新,并將偶數(shù)指針對(duì)應(yīng)的狀態(tài)標(biāo)識(shí)設(shè)置為高。
[0014] 其中,所述奇偶狀態(tài)空間中僅存儲(chǔ)偶數(shù)指針,所述偶數(shù)指針對(duì)應(yīng)的狀態(tài)標(biāo)識(shí)設(shè)置 為1?時(shí),指不所述偶數(shù)指針對(duì)應(yīng)的空間為空閑;
[0015] 每個(gè)偶數(shù)指針和與其對(duì)應(yīng)的奇數(shù)指針構(gòu)成一個(gè)奇偶對(duì)。
[0016] 一種應(yīng)用于無線通訊的存儲(chǔ)方法,該方法包括:根據(jù)數(shù)據(jù)的業(yè)務(wù)類型選擇對(duì)應(yīng)指 針的遷移來調(diào)整存儲(chǔ)結(jié)構(gòu),自適應(yīng)分配存儲(chǔ)空間,在讀操作情況下讀取對(duì)應(yīng)指針找到對(duì)應(yīng) 的存儲(chǔ)空間并執(zhí)行數(shù)據(jù)讀操作,讀取完畢后對(duì)讀取的指針對(duì)應(yīng)空間進(jìn)行釋放,如果根據(jù)狀 態(tài)指示判斷存儲(chǔ)空間的狀態(tài)為空間向上合并狀態(tài),則進(jìn)行指針奇偶判斷。
[0017] 其中,所述進(jìn)行指針奇偶判斷具體包括:如果讀取的指針是偶數(shù)指針,則對(duì)其不做 處理;如果讀取的指針是奇數(shù)指針,則在奇偶狀態(tài)空間查詢是否存在與所述奇數(shù)指針匹配 的偶數(shù)指針,如果存在匹配的偶數(shù)指針且偶數(shù)指針對(duì)應(yīng)的狀態(tài)標(biāo)識(shí)設(shè)置為高,則進(jìn)行奇偶 指針合并。
[0018] 其中,所述奇偶狀態(tài)空間中僅存儲(chǔ)偶數(shù)指針,所述偶數(shù)指針對(duì)應(yīng)的狀態(tài)標(biāo)識(shí)設(shè)置 為1?時(shí),指不所述偶數(shù)指針對(duì)應(yīng)的空間為空閑;
[0019] 每個(gè)偶數(shù)指針和與其對(duì)應(yīng)的奇數(shù)指針構(gòu)成一個(gè)奇偶對(duì)。
[0020] 其中,該方法還包括:如果釋放的是所述奇偶對(duì)中奇數(shù)指針對(duì)應(yīng)的奇空間,則所述 奇偶對(duì)中偶數(shù)指針對(duì)應(yīng)的偶空間與所述奇空間一起共同釋放,將兩個(gè)存儲(chǔ)空間同時(shí)向上合 并為一個(gè)地址連續(xù)的存儲(chǔ)空間。
[0021] 其中,進(jìn)行奇偶指針合并后,奇偶指針合并后的新指針對(duì)應(yīng)奇偶空間的大小為:奇 偶對(duì)中奇數(shù)指針對(duì)應(yīng)的原奇空間與偶數(shù)指針對(duì)應(yīng)的原偶空間之和。
[0022] 其中,該方法還包括:如果根據(jù)狀態(tài)指示判斷存儲(chǔ)空間的狀態(tài)為空間向下分解狀 態(tài),則將讀取的一個(gè)指針分解為奇數(shù)指針和與其對(duì)應(yīng)的偶數(shù)指針,實(shí)現(xiàn)空間向下分解;
[0023] 相應(yīng)的,讀取的指針對(duì)應(yīng)的原空間的大小分為兩部分,奇數(shù)指針對(duì)應(yīng)的奇空間與 偶數(shù)指針對(duì)應(yīng)的偶空間各占原空間大小的一半。
[0024] -種讀寫存儲(chǔ)裝置,該裝置包括:總控單元、多路選擇單元、奇偶判決單元;其中,
[0025] 總控單元,用于控制多路選擇單元根據(jù)數(shù)據(jù)的業(yè)務(wù)類型選擇對(duì)應(yīng)指針的遷移來調(diào) 整存儲(chǔ)空間的存儲(chǔ)結(jié)構(gòu),自適應(yīng)分配存儲(chǔ)空間;
[0026] 多路選擇單元,用于業(yè)務(wù)類型為與已有存儲(chǔ)結(jié)構(gòu)相適應(yīng)的數(shù)據(jù)包時(shí),對(duì)應(yīng)選擇原 始空閑指針隊(duì)列;業(yè)務(wù)類型為超出已有存儲(chǔ)結(jié)構(gòu)的大數(shù)據(jù)包時(shí),對(duì)應(yīng)選擇合并空閑指針隊(duì) 列;業(yè)務(wù)類型為低于已有存儲(chǔ)結(jié)構(gòu)的小數(shù)據(jù)包時(shí),指針分解后對(duì)應(yīng)選擇分解空閑指針隊(duì) 列;
[0027] 奇偶判決單元,用于在所述總控單元控制的存儲(chǔ)空間的工作狀態(tài)為空間向上合并 狀態(tài)時(shí),進(jìn)行指針奇偶判斷。
[0028] 其中,所述存儲(chǔ)空間的工作狀態(tài)具體包括:正常狀態(tài)、空間向下分解狀態(tài)或空間向 上合并狀態(tài)。
[0029] 其中,該裝置還包括:地址譯碼單元,用于所述工作狀態(tài)為空間向上合并狀態(tài)時(shí), 判斷讀取的指針?biāo)甘镜牡刂肥欠駥儆诳臻g合并的區(qū)域,屬于空間合并的區(qū)域時(shí),將讀取 的指針發(fā)往所述奇偶判決單元。
[0030] 其中,所述奇偶判決單元,進(jìn)一步用于在寫操作情況下,對(duì)從所述地址譯碼單元獲 取的指針進(jìn)行奇偶判斷時(shí),讀取的指針是奇數(shù)指針,根據(jù)讀取的奇數(shù)指針找到對(duì)應(yīng)的存儲(chǔ) 空間并執(zhí)行數(shù)據(jù)寫操作;如果讀取的指針是偶數(shù)指針,將讀取的偶數(shù)指針?biāo)屯媾紶顟B(tài)空 間對(duì)其進(jìn)行更新,并將偶數(shù)指針對(duì)應(yīng)的狀態(tài)標(biāo)識(shí)設(shè)置為高。
[0031] 其中,所述奇偶判決單元,進(jìn)一步用于在讀操作情況下,讀取的指針是偶數(shù)指針, 對(duì)其不做處理;讀取的指針是奇數(shù)指針,則在奇偶狀態(tài)空間查詢是否存在與所述奇數(shù)指針 匹配的偶數(shù)指針,如果存在匹配的偶數(shù)指針且偶數(shù)指針對(duì)應(yīng)的狀態(tài)標(biāo)識(shí)設(shè)置為高,則通知 合并指針單元進(jìn)行奇偶指針合并。
[0032] 其中,所述奇偶狀態(tài)空間中僅存儲(chǔ)偶數(shù)指針,所述偶數(shù)指針對(duì)應(yīng)的狀態(tài)標(biāo)識(shí)設(shè)置 為高時(shí),指示所述偶數(shù)指針對(duì)應(yīng)的空間為空閑;每個(gè)偶數(shù)指針和與其對(duì)應(yīng)的奇數(shù)指針構(gòu)成 一個(gè)奇偶對(duì)。
[0033] 其中,該裝置還包括:指針分解單元,用于所述工作狀態(tài)為空間向下分解狀態(tài)時(shí), 將讀取的一個(gè)指針分解為奇數(shù)指針和與其對(duì)應(yīng)的偶數(shù)指針,實(shí)現(xiàn)空間向下分解。
[0034] 本發(fā)明根據(jù)數(shù)據(jù)的業(yè)務(wù)類型選擇對(duì)應(yīng)指針的遷移來調(diào)整存儲(chǔ)結(jié)構(gòu),自適應(yīng)分配 存儲(chǔ)空間,在寫操作情況下讀取對(duì)應(yīng)指針,根據(jù)狀態(tài)指示判斷存儲(chǔ)空間的狀態(tài)是否為非空 間向上合并狀態(tài),如果是,則根據(jù)讀取的指針找到對(duì)應(yīng)的存儲(chǔ)空間并執(zhí)行數(shù)據(jù)寫操作,如果 否,則進(jìn)行指針奇偶判斷。
[0035] 現(xiàn)有技術(shù)是根據(jù)固定的數(shù)據(jù)業(yè)務(wù)類型預(yù)先設(shè)置存儲(chǔ)結(jié)構(gòu),無法后續(xù)動(dòng)態(tài)調(diào)整,而 采用本發(fā)明,由于能自適應(yīng)分配存儲(chǔ)空間,因此,對(duì)比現(xiàn)有技術(shù),提高了存儲(chǔ)空間的綜合性 能和存儲(chǔ)空間的利用率。
【專利附圖】
【附圖說明】
[0036] 圖1為本發(fā)明方法實(shí)施例在寫操作情況下的實(shí)現(xiàn)流程圖;
[0037] 圖2為本發(fā)明方法實(shí)施例在讀操作情況下的實(shí)現(xiàn)流程圖;
[0038] 圖3為本發(fā)明裝置實(shí)施例的組成結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0039] 本發(fā)明的基本思想是:根據(jù)數(shù)據(jù)的業(yè)務(wù)類型選擇對(duì)應(yīng)指針的遷移來調(diào)整存儲(chǔ)結(jié) 構(gòu),自適應(yīng)分配存儲(chǔ)空間,在寫操作情況下讀取對(duì)應(yīng)指針,根據(jù)狀態(tài)指示判斷存儲(chǔ)空間的狀 態(tài)是否為非空間向上合并狀態(tài),如果是,則根據(jù)讀取的指針找到對(duì)應(yīng)的存儲(chǔ)空間并執(zhí)行數(shù) 據(jù)寫操作,如果否,則進(jìn)行指針奇偶判斷。
[0040] 本發(fā)明是應(yīng)用于無線通訊多數(shù)據(jù)源讀寫操作的存儲(chǔ)方案,主要涉及指針分類管 理,總共指針分為三類,合并指針,原始指針,分解指針。每個(gè)空間在讀取完畢后,需要把對(duì) 應(yīng)的空間釋放,把空間對(duì)應(yīng)的指針遞交到指針管理中心。通過三類指針的遷移,實(shí)現(xiàn)存儲(chǔ)空 間的動(dòng)態(tài)調(diào)整,當(dāng)大量的指針往合并指針區(qū)域遷移時(shí),需要進(jìn)行指針合并操作,存儲(chǔ)空間基 本單元變大,大單元變多,適應(yīng)于大數(shù)據(jù)包存儲(chǔ);當(dāng)大量指針往分解指針區(qū)域遷移,需要進(jìn) 行指針分解操作,存儲(chǔ)空間基本單元變小,小單元變多,適應(yīng)小數(shù)據(jù)包存儲(chǔ);當(dāng)指針大量往 原始指針遷移,不需要額外對(duì)指針進(jìn)行處理,當(dāng)前存儲(chǔ)結(jié)構(gòu)適應(yīng)當(dāng)前數(shù)據(jù)包結(jié)構(gòu),數(shù)據(jù)存儲(chǔ) 不需要變化。
[0041] 下面結(jié)合附圖對(duì)技術(shù)方案的實(shí)施作進(jìn)一步的詳細(xì)描述。
[0042] 本發(fā)明方法的技術(shù)方案如下,主要分讀、寫兩個(gè)方面:
[0043] 一、寫操作情況下,本發(fā)明存儲(chǔ)方法的方法實(shí)施例如圖1所示,包括以下內(nèi)容: [0044] 第一步:從寫隊(duì)列里獲取寫請(qǐng)求,發(fā)起對(duì)存儲(chǔ)空間的寫請(qǐng)求申請(qǐng)。
[0045] 第二步:根據(jù)申請(qǐng)的包長,選擇一種最適應(yīng)的存儲(chǔ)單元給當(dāng)前數(shù)據(jù)包。
[0046] 這里,本步驟進(jìn)行存儲(chǔ)單元的選擇采用的是比較法,選擇跟包長最接近的的兩類 存儲(chǔ)單元,并向下取整。比如有四類存儲(chǔ)單元,大小分別,64,128, 256, 512。當(dāng)前包長為384, 則最接近的存儲(chǔ)單元為256和512,然后向下取整,最后選擇256的存儲(chǔ)單元,進(jìn)行第一次存 儲(chǔ)操作。
[0047] 第三步:如果分配的存儲(chǔ)單元沒有空閑空間,則返回第二步,重新分配存儲(chǔ)單元。 [0048] 第四步:訪問存儲(chǔ)單元對(duì)應(yīng)的空閑指針隊(duì)列,讀取對(duì)應(yīng)指針。這里,所述空閑指針 隊(duì)列包括:分解空閑地址指針隊(duì)列、合并空閑地址指針隊(duì)列及原始空閑地址指針隊(duì)列。 [0049] 第五步:根據(jù)狀態(tài)指示,判斷當(dāng)前的狀態(tài)是否為空間向上合并狀態(tài)(當(dāng)前最大的 基本存儲(chǔ)單元擴(kuò)大)。
[0050] 這里,本步驟的向上合并狀態(tài)根據(jù)包長的分布來判斷,如果大部分(可配置)最大 包比最大存儲(chǔ)單元大,則進(jìn)行最大存儲(chǔ)單元向上合并操作;或者,大部分最小包比最小存儲(chǔ) 單元大,則進(jìn)行最小存儲(chǔ)單元向上合并。
[0051] 第六步:如果為非空間向上合并狀態(tài),則根據(jù)指針找到對(duì)應(yīng)的存儲(chǔ)空間。
[0052] 第七步:如果為空間向上合并狀態(tài),則判斷指針奇偶,如果指針是奇數(shù),則根據(jù)指 針,找到對(duì)應(yīng)的存儲(chǔ)空間。如果指針是偶數(shù),則更新奇偶狀態(tài)空間,拋棄此指針。
[0053] 這里,本步驟的奇偶狀態(tài)空間,表示的是向上合并的存儲(chǔ)單元類別為所有偶指針 對(duì)應(yīng)空間的空滿狀態(tài)。如果讀取此類存儲(chǔ)單元的時(shí)候,所獲取的指針為偶數(shù),則在奇偶空間 中,把這個(gè)指針對(duì)應(yīng)的空間標(biāo)注為空閑狀態(tài)。當(dāng)在執(zhí)行讀操作的時(shí)候,如果釋放的是這個(gè)奇 偶對(duì)中的奇空間時(shí)候,可以跟偶空間一起共同釋放,同時(shí)將共同釋放的空間一起向上合并。
[0054] 第八步:在對(duì)應(yīng)存儲(chǔ)空間內(nèi)進(jìn)行數(shù)據(jù)存儲(chǔ),更新包長。
[0055] 第九步:對(duì)更新的包長進(jìn)行判斷,如果是零,則結(jié)束寫操作,否則跳轉(zhuǎn)到第二步,進(jìn) 行剩余數(shù)據(jù)包的存儲(chǔ)。
[0056] 二、讀操作情況下,本發(fā)明存儲(chǔ)方法的方法實(shí)施例如圖2所示,包括以下內(nèi)容:
[0057] 第一步:從讀隊(duì)列,獲取讀指針,發(fā)起對(duì)存儲(chǔ)空間的讀請(qǐng)求。
[0058] 第二步:根據(jù)讀指針,尋找到對(duì)應(yīng)的存儲(chǔ)空間和鏈表,進(jìn)行數(shù)據(jù)讀取。讀取數(shù)據(jù)完 畢后,進(jìn)行讀指針對(duì)應(yīng)空間的釋放管理。
[0059] 第三步:根據(jù)狀態(tài)指示,判斷當(dāng)前的狀態(tài)是否為空間向上合并狀態(tài),如果是,并且 當(dāng)前指針是奇指針,并且奇偶狀態(tài)空間中對(duì)應(yīng)的偶指針對(duì)應(yīng)空間是空閑,則進(jìn)行奇偶指針 合并。新指針對(duì)應(yīng)奇偶空間,大小為原來的兩倍,實(shí)現(xiàn)了空間向上合并。
[0060] 第四步:根據(jù)指針對(duì)應(yīng)的地址和總控狀態(tài),選擇對(duì)應(yīng)的空閑指針隊(duì)列。這里,所述 空閑指針隊(duì)列包括:分解空閑地址指針隊(duì)列、合并空閑地址指針隊(duì)列及原始空閑地址指針 隊(duì)列。
[0061] 第五步:如果選擇的當(dāng)前指針隊(duì)列是處理空間分解區(qū)域,則執(zhí)行指針分解,把一個(gè) 指針分解成奇偶指針,每個(gè)指針對(duì)應(yīng)的空間為原來空間的一半,完成空間向下分解。
[0062] 第六部:進(jìn)行指針存儲(chǔ),并根據(jù)第二步獲取的鏈表信息,判斷是否是鏈表結(jié)束,如 果為是,則結(jié)束,如果為否,還沒結(jié)束,則跳轉(zhuǎn)到第二步執(zhí)行。
[0063] 這里,上述第五步各個(gè)指針隊(duì)列有各自自己的地址空間映射。
[0064] 例如設(shè)置整體空間是1-1000。剛開始時(shí)候只有一個(gè)指針隊(duì)列,設(shè)置每個(gè)指針對(duì)應(yīng) 10個(gè)地址空間,所有指針都存儲(chǔ)到這個(gè)指針隊(duì)列。
[0065] 如果500-1000執(zhí)行空間向上合并,那么整體將變成2個(gè)指針隊(duì)列。第一個(gè)隊(duì)列對(duì) 應(yīng)指針1-500的指針,每個(gè)指針對(duì)應(yīng)空間10。第二個(gè)指針隊(duì)列對(duì)應(yīng)501-1000的指針,每個(gè) 指針對(duì)一個(gè)空間20。
[0066] 接著1-255執(zhí)行空間向下分解,那么整體將變成3個(gè)指針隊(duì)列。第一個(gè)指針隊(duì)列 對(duì)應(yīng)1-255的,沒個(gè)指針對(duì)應(yīng)空間為5。第二指針隊(duì)列為256-500,每個(gè)指針對(duì)應(yīng)空間為10。 第三個(gè)指針隊(duì)列位501-1000,每個(gè)指針對(duì)應(yīng)空間為20。
[0067] 對(duì)應(yīng)于上述讀/寫操作,本發(fā)明讀寫存儲(chǔ)裝置實(shí)施例的組成結(jié)構(gòu)示意圖如圖3所 示,包括:
[0068] 存儲(chǔ)空間101 :為存儲(chǔ)數(shù)據(jù)的主空間,可以使用雙數(shù)據(jù)速率DDR存儲(chǔ)器,也可以使 用片內(nèi)SRAM等各種存儲(chǔ)器件,其中,所述SRAM為具有靜止存取功能的內(nèi)存。
[0069] 總控單元102 :為進(jìn)行存儲(chǔ)控制的總控單元,用來進(jìn)行存儲(chǔ)空間的整體調(diào)度控制。 如用來控制存儲(chǔ)空間的工作狀態(tài)--正常狀態(tài),空間向上合并狀態(tài)(同時(shí)記錄合并前后基 本存儲(chǔ)單元的空間尺寸),空間向下分解狀態(tài)(同時(shí)記錄空間分解前后基本存儲(chǔ)單元的空 間尺寸),根據(jù)狀態(tài)指示,用于在指針釋放時(shí)候,指針合并和分解的控制;多路選通控制;存 儲(chǔ)空間分配選擇;記錄各個(gè)指針隊(duì)列的地址空間范圍,把釋放的空間指針存儲(chǔ)到對(duì)應(yīng)的隊(duì) 列里去。這里,存儲(chǔ)空間的每片存儲(chǔ)區(qū)域都有一個(gè)對(duì)應(yīng)的指針隊(duì)列,但是這片區(qū)域的地址范 圍隨著空間向上合并向下分解的進(jìn)行也是不斷變化的,因此需要總控單元記錄當(dāng)前各個(gè)指 針隊(duì)列的地址范圍,以方便空間釋放時(shí)候,指針的入隊(duì)操作。
[0070] 讀寫隊(duì)列103 :存儲(chǔ)外部操作源對(duì)存儲(chǔ)空間的讀寫請(qǐng)求隊(duì)列。
[0071] 寫控制單元104 :為存儲(chǔ)空間的寫控制單元,用于向存儲(chǔ)空間101寫入數(shù)據(jù)。
[0072] 分解空閑地址指針隊(duì)列105,合并空閑地址指針隊(duì)列107,原始空閑地址指針隊(duì)列 108,分別為各類空閑存儲(chǔ)空間對(duì)應(yīng)的指針隊(duì)列,其中隊(duì)列的個(gè)數(shù)是動(dòng)態(tài)調(diào)整的,可以增加 也可以減少。這里需要指出的是:采用分解空閑地址指針隊(duì)列105時(shí),對(duì)應(yīng)存儲(chǔ)空間的工作 狀態(tài)為空間向下分解,執(zhí)行指針分解操作,此操作適用的業(yè)務(wù)類型為小數(shù)據(jù)包存儲(chǔ);采用合 并空閑地址指針隊(duì)列107時(shí),對(duì)應(yīng)存儲(chǔ)空間的工作狀態(tài)為空間向上合并,執(zhí)行指針合并操 作,此操作適用的業(yè)務(wù)類型為大數(shù)據(jù)包存儲(chǔ);采用原始空閑地址指針隊(duì)列108時(shí),對(duì)應(yīng)存儲(chǔ) 空間的工作狀態(tài)為正常,執(zhí)行原始指針操作,此操作適用的業(yè)務(wù)類型為無需動(dòng)態(tài)調(diào)整、與當(dāng) 前存儲(chǔ)結(jié)構(gòu)適應(yīng)的當(dāng)前數(shù)據(jù)包。
[0073] 指針分解單元106 :為需執(zhí)行指針分解操作,即當(dāng)執(zhí)行空間向下分解的時(shí)候,將原 存儲(chǔ)空間對(duì)應(yīng)的指針分解成奇、偶兩個(gè)指針,分別對(duì)應(yīng)原存儲(chǔ)空間的前半部的存儲(chǔ)空間和 后半部的存儲(chǔ)空間。
[0074] 地址譯碼單元109 :為需執(zhí)行指針合并操作,即當(dāng)執(zhí)行空間向上合并的時(shí)候,原指 針隊(duì)列包含處于合并地址區(qū)域的指針和非合并地址區(qū)域的指針。如果當(dāng)前讀取的指針屬于 合并地址區(qū)域,則將讀取的當(dāng)前指針?biāo)屯媾寂袥Q單元110進(jìn)行后續(xù)空間向上合并處理, 否則直接送往寫控制單元104用于寫操作時(shí)候的地址計(jì)算。其中,采用奇偶判決單元的好 處是:將存儲(chǔ)空間中越來越多的、由于存儲(chǔ)導(dǎo)致存儲(chǔ)空間中變得越來越小的基本存儲(chǔ)單元 在進(jìn)行讀操作時(shí)先釋放,再通過奇偶判斷將釋放后地址連續(xù)符合條件的指針地址合并,即 確保存儲(chǔ)空間中指針指向的相鄰的空間基本單元地址連續(xù)才允許合并。
[0075] 奇偶判決單元110 :送到奇偶判決單元的指針都是要參與空間向上合并的。由于 系統(tǒng)經(jīng)過一段時(shí)間運(yùn)行后,由于原存儲(chǔ)空間中的空閑空間地址分別不連續(xù)的隨意性,因此 在寫操作時(shí)要完成空間向上合并寫是很困難的,因此進(jìn)一步考慮在空間讀釋放的時(shí)候?qū)崿F(xiàn) 向上合并。如果是奇指針,則將指針?biāo)屯鶎懣刂茊卧?04進(jìn)行正常寫操作,如果是偶指針, 則將指針?biāo)屯媾紶顟B(tài)空間111,控制狀態(tài)空間進(jìn)行更新。
[0076] 奇偶狀態(tài)空間111 :用來記錄對(duì)應(yīng)隊(duì)列的偶指針的空閑狀態(tài)。如果奇偶判決單元 110輸送過來一個(gè)偶指針,則此指針對(duì)應(yīng)的狀態(tài)標(biāo)識(shí)將設(shè)置為高,表示此指針對(duì)應(yīng)的空間為 空閑。其中狀態(tài)空間初始化的時(shí)候全為低。其中只有對(duì)大存儲(chǔ)單元指針隊(duì)列,及其最小存 儲(chǔ)單元指針隊(duì)列空間有對(duì)應(yīng)的奇數(shù)狀態(tài)空間。因此,不管存儲(chǔ)空間經(jīng)過分解合并后,產(chǎn)生 多少指針隊(duì)列,最終最多有兩個(gè)奇偶狀態(tài)空間,并且每個(gè)指針狀態(tài)只有一比特,總的開銷不 大,可以用寄存器搭建。
[0077] 多路選擇單元112 :根據(jù)總控單元的控制,把釋放的指針?biāo)屯鶎?duì)應(yīng)的隊(duì)列中去。
[0078] 合并指針單元113 :如果當(dāng)前釋放的空間對(duì)應(yīng)的指針處于空間向上合并對(duì)應(yīng)的地 址范圍,并且當(dāng)前指針是奇指針,則執(zhí)行指針合并操作,讀取奇偶狀態(tài)空間111對(duì)應(yīng)的偶指 針狀態(tài),如果偶指針狀態(tài)為高,則指針合并成功,合并后的指針?biāo)屯喜⒖臻e地址指針隊(duì)列 107 ;如果偶指針狀態(tài)為低,則指針合并失敗,當(dāng)前指針輸送到原始空閑地址指針隊(duì)列108。
[0079] 讀控制單元114 :為存儲(chǔ)空間的寫控制單元,用于向存儲(chǔ)空間101讀出數(shù)據(jù)。
[0080] 這里需要指出的是:上述存儲(chǔ)空間101,讀寫隊(duì)列103,寫控制單元104,讀控制單 元114,為現(xiàn)有技術(shù)中常采用的設(shè)備,其它設(shè)備為實(shí)現(xiàn)本發(fā)明而增設(shè)的設(shè)備。
[0081] 采用本發(fā)明,克服了現(xiàn)有技術(shù)中固定劃分空間利用率低,鏈表連接碎片多,性能低 的特點(diǎn),是一種自適應(yīng)的存儲(chǔ)空間分配方案,能根據(jù)實(shí)際業(yè)務(wù)類型的情況,自動(dòng)調(diào)整存儲(chǔ)結(jié) 構(gòu),極大地提高了空間利用率和存儲(chǔ)性能。并且分層進(jìn)行調(diào)整,確保不因調(diào)整而導(dǎo)致復(fù)雜 度發(fā)散。這里,所述調(diào)整指:1):只針對(duì)最大和最小存儲(chǔ)單元為存儲(chǔ)粒度向上合并和向下分 解,不考慮最大和最小存儲(chǔ)單元中間的存儲(chǔ)粒度調(diào)整,也就是說,不需要所有存儲(chǔ)粒度都自 由進(jìn)行變化,從而相對(duì)于所有存儲(chǔ)粒度都自由進(jìn)行變化而言,減少了復(fù)雜度,并且最終達(dá)到 的效果與所有存儲(chǔ)粒度都自由進(jìn)行變化一樣;2):合并分解的時(shí)候,采用以2(奇,偶)存儲(chǔ) 粒度進(jìn)行合并和分解,但不限于這種方式,也可以考慮以3,4, 5等其他值的存儲(chǔ)粒度進(jìn)行 合并和分解的情況。本發(fā)明選擇以2(奇,偶)存儲(chǔ)粒度進(jìn)行合并和分解,是一種最佳實(shí)現(xiàn) 方式,相對(duì)于以3,4,5等其他值的存儲(chǔ)粒度進(jìn)行合并和分解的情況而言,雖然在表面上調(diào) 整的速度迅速很多,但實(shí)際上復(fù)雜度指數(shù)上升,并且系統(tǒng)經(jīng)過一定時(shí)間的運(yùn)行后,空閑存儲(chǔ) 單元隨機(jī)分布后,其他粒度進(jìn)行合并分解的效率急劇降低,最終合并分解的效率及存儲(chǔ)效 果都不如本發(fā)明選用的以2(奇,偶)粒度進(jìn)行合并和分解的方式。
[0082] 本發(fā)明方法在執(zhí)行寫操作情況下的應(yīng)用實(shí)例,包括以下步驟:
[0083] 步驟201 :發(fā)出寫申請(qǐng),并在讀寫隊(duì)列中登記進(jìn)行寫申請(qǐng)。
[0084] 步驟202 :寫控制單元讀取讀寫隊(duì)列的申請(qǐng),獲取數(shù)據(jù)包的包頭信息,同時(shí)通過總 控單元讀取空間劃分信息,空閑指針隊(duì)列的種類和個(gè)數(shù),及其每類指針隊(duì)列中基本存儲(chǔ)單 元的大小,根據(jù)包長計(jì)算選擇存儲(chǔ)空間中的基本存儲(chǔ)單元。
[0085] 步驟203 :選擇與包長比較相近的指針隊(duì)列,并判斷存儲(chǔ)空間是否空閑,如果空 閑,則申請(qǐng)使用此指針隊(duì)列的指針,如果此指針隊(duì)列不空閑,則更新采用其它指針隊(duì)列,再 判斷是否空閑,如果所有指針隊(duì)列都不空閑,則寫操作暫停。
[0086] 步驟204:從原始空閑地址指針隊(duì)列中獲取空閑最久的指針,如果當(dāng)前是正常狀 態(tài),或空間向下分解狀態(tài),則此指針?biāo)屯鶎懣刂茊卧?,在寫控制單元根?jù)指針計(jì)算存儲(chǔ)地 址,執(zhí)行數(shù)據(jù)寫操作。然后把包頭長度減去當(dāng)前指針指示的存儲(chǔ)空間的大小,如果結(jié)果為正 數(shù),那么更新包頭長度,跳轉(zhuǎn)到第203步驟,直至更新的包頭長度為非正數(shù)。
[0087] 步驟205 :如果當(dāng)前為空間向上合并狀態(tài)時(shí),從原始空閑地址指針隊(duì)列獲取的指 針先經(jīng)過地址譯碼單元進(jìn)行地址譯碼,判斷當(dāng)前指針?biāo)甘镜牡刂肥欠駥儆诳臻g合并的區(qū) 域,如果不屬于,則執(zhí)行步驟204的正常操作,否則輸送到奇偶判決單元進(jìn)行奇偶判斷,指 針是奇,則送往寫控制單元進(jìn)行正常寫操作,是偶數(shù),則送往奇偶狀態(tài)空間,更新當(dāng)前指針 對(duì)應(yīng)空間的狀態(tài),狀態(tài)標(biāo)識(shí)為空閑。
[0088] 步驟206,當(dāng)一個(gè)數(shù)據(jù)包存儲(chǔ)完畢后,會(huì)在讀寫隊(duì)列103登記此數(shù)據(jù)包首地址指 針,以供后續(xù)進(jìn)行讀索引。
[0089] 步驟207,數(shù)據(jù)包存儲(chǔ)完畢后,經(jīng)過一段時(shí)間后,外部發(fā)向讀寫隊(duì)列發(fā)出讀申請(qǐng),讀 寫隊(duì)列把之間存儲(chǔ)的數(shù)據(jù)包首地址輸入到讀控制單元進(jìn)行后續(xù)處理。
[0090] 本發(fā)明方法在執(zhí)行讀操作情況下的應(yīng)用實(shí)例,包括以下步驟:
[0091] 步驟301 :讀控制單元直接通過指針,計(jì)算數(shù)據(jù)包存儲(chǔ)的數(shù)據(jù)空間,讀取對(duì)應(yīng)的包 頭數(shù)據(jù)及其鏈表信息。
[0092] 步驟302 :在步驟301讀取操作完畢后,需要把原存儲(chǔ)包數(shù)據(jù)對(duì)應(yīng)的存儲(chǔ)空間進(jìn)行 釋放,在空閑指針隊(duì)列里進(jìn)行登記,以后后續(xù)其它數(shù)據(jù)包使用。
[0093] 步驟303 :經(jīng)過一段時(shí)間后,數(shù)據(jù)包有讀需求。外部操作源,向讀寫隊(duì)列登記讀數(shù) 據(jù)報(bào)請(qǐng)求。讀寫隊(duì)列把步驟302存儲(chǔ)的指針吐出,送往讀控制單元協(xié)助進(jìn)行讀操作。
[0094] 步驟304 :讀控制單元根據(jù)獲取的指針,計(jì)算數(shù)據(jù)存儲(chǔ)的地址,并進(jìn)行讀取數(shù)據(jù)和 鏈表頭的操作。在所有數(shù)據(jù)都讀取完畢后,把當(dāng)前用的指針?biāo)屯喜⒅羔槅卧M(jìn)行后續(xù)操 作。
[0095] 步驟305 :解析步驟304獲取的鏈表頭信息,判斷數(shù)據(jù)包是否讀取完畢,如未讀取 完畢則根據(jù)鏈表頭,提起新的指針信息,重復(fù)步驟304。
[0096] 步驟306:合并指針單元接收讀控制單元送過來的待釋放空間的指針,并判斷當(dāng) 前指針是否屬于空間向上合并范圍,不屬于則指針不處理直接輸出。屬于合并范圍,根據(jù)當(dāng) 前指針對(duì)應(yīng)存儲(chǔ)空間的大小,判斷當(dāng)前指針是合并前指針,還是合并后指針,合并后指針則 直接輸出。合并前的指針則判斷指針是奇指針還是偶指針,偶指針不處理直接輸出,奇指針 則讀取奇偶狀態(tài)空間,查看匹配的偶指針狀態(tài),如果匹配的偶指針為空閑則合并指針成功, 否則不成功。
[0097] 步驟307 :接收合并指針單元輸送過來的空閑指針,根據(jù)總控單元,把指針?biāo)偷綄?duì) 應(yīng)的指針隊(duì)列。其中每個(gè)指針隊(duì)列都有各自對(duì)應(yīng)的地址范圍,除合并失敗的指針,所有的指 針按地址范圍存儲(chǔ)到各自的指針隊(duì)列。合并失敗的指針存儲(chǔ)到原始指針隊(duì)列,合并成功的 指針存儲(chǔ)到合并指針隊(duì)列。
[0098] 步驟308 :輸送往分解指針隊(duì)列的指針,根據(jù)當(dāng)前指針對(duì)應(yīng)存儲(chǔ)空間的大小,判斷 當(dāng)前指針是分解前指針,還是分解后指針。分解后的指針直接存入指針隊(duì)列,分解前的指 針,則經(jīng)過指針分解單元分解成奇偶兩個(gè)指針,再存儲(chǔ)到指針隊(duì)列里去。
[0099] 本發(fā)明屬于數(shù)字存儲(chǔ)領(lǐng)域,適應(yīng)于各種電子存儲(chǔ)裝置,尤其適用于在通信領(lǐng)域中 的數(shù)據(jù)存儲(chǔ)處理。
[0100] 綜上所述,采用本發(fā)明,具有以下有益效果:
[0101] 1、具有自適應(yīng)功能,能根據(jù)數(shù)據(jù)的業(yè)務(wù)類型,調(diào)整存儲(chǔ)空間的使用。分為針對(duì)業(yè)務(wù) 類型為大數(shù)據(jù)包、小數(shù)據(jù)包和與分配存儲(chǔ)結(jié)構(gòu)一致的當(dāng)前數(shù)據(jù)包三種情況下的動(dòng)態(tài)調(diào)整。
[0102] 2、存儲(chǔ)空間的利用率商,由于能動(dòng)態(tài)調(diào)整,因此相對(duì)現(xiàn)有的固定基本單兀的存儲(chǔ) 空間共享方案而言,如果數(shù)據(jù)流中最大包最小包相差數(shù)個(gè)量級(jí),那么采用本發(fā)明,空間利用 率相對(duì)現(xiàn)有方案就有數(shù)個(gè)量級(jí)的提升,同時(shí)性能基本保持不變。
[0103] 3、存儲(chǔ)空間的綜合存儲(chǔ)性能高,相對(duì)于現(xiàn)有鏈表共享方法,隨著處理時(shí)間的加長, 性能提升比例越高,最終性能可以提升幾十倍,同時(shí)保持空間利用率也比現(xiàn)有方案稍高。
[0104] 4、功耗低:采用本發(fā)明,在進(jìn)行存儲(chǔ)結(jié)構(gòu)調(diào)整的時(shí)候,不涉及數(shù)據(jù)搬移,不涉及指 針搬移,沒有額外操作,不影響正常的數(shù)據(jù)存儲(chǔ),基本不額外增加功耗開銷。
[0105] 以上所述,僅為本發(fā)明的較佳實(shí)施例而已,并非用于限定本發(fā)明的保護(hù)范圍。
【權(quán)利要求】
1. 一種應(yīng)用于無線通訊的存儲(chǔ)方法,其特征在于,該方法包括: 根據(jù)數(shù)據(jù)的業(yè)務(wù)類型選擇對(duì)應(yīng)指針的遷移來調(diào)整存儲(chǔ)結(jié)構(gòu),自適應(yīng)分配存儲(chǔ)空間,在 寫操作情況下讀取對(duì)應(yīng)指針,根據(jù)狀態(tài)指示判斷存儲(chǔ)空間的狀態(tài)是否為非空間向上合并狀 態(tài),如果是,則根據(jù)讀取的指針找到對(duì)應(yīng)的存儲(chǔ)空間并執(zhí)行數(shù)據(jù)寫操作,如果否,則進(jìn)行指 針奇偶判斷。
2. 根據(jù)權(quán)利要求1所述的方法,其特征在于,所述進(jìn)行指針奇偶判斷具體包括:如果讀 取的指針是奇數(shù)指針,則根據(jù)讀取的奇數(shù)指針找到對(duì)應(yīng)的存儲(chǔ)空間并執(zhí)行數(shù)據(jù)寫操作;如 果讀取的指針是偶數(shù)指針,則將讀取的偶數(shù)指針?biāo)屯媾紶顟B(tài)空間對(duì)其進(jìn)行更新,并將偶 數(shù)指針對(duì)應(yīng)的狀態(tài)標(biāo)識(shí)設(shè)置為高。
3. 根據(jù)權(quán)利要求2所述的方法,其特征在于,所述奇偶狀態(tài)空間中僅存儲(chǔ)偶數(shù)指針,所 述偶數(shù)指針對(duì)應(yīng)的狀態(tài)標(biāo)識(shí)設(shè)置為高時(shí),指示所述偶數(shù)指針對(duì)應(yīng)的空間為空閑; 每個(gè)偶數(shù)指針和與其對(duì)應(yīng)的奇數(shù)指針構(gòu)成一個(gè)奇偶對(duì)。
4. 一種應(yīng)用于無線通訊的存儲(chǔ)方法,其特征在于,該方法包括:根據(jù)數(shù)據(jù)的業(yè)務(wù)類型 選擇對(duì)應(yīng)指針的遷移來調(diào)整存儲(chǔ)結(jié)構(gòu),自適應(yīng)分配存儲(chǔ)空間,在讀操作情況下讀取對(duì)應(yīng)指 針找到對(duì)應(yīng)的存儲(chǔ)空間并執(zhí)行數(shù)據(jù)讀操作,讀取完畢后對(duì)讀取的指針對(duì)應(yīng)空間進(jìn)行釋放, 如果根據(jù)狀態(tài)指示判斷存儲(chǔ)空間的狀態(tài)為空間向上合并狀態(tài),則進(jìn)行指針奇偶判斷。
5. 根據(jù)權(quán)利要求4所述的方法,其特征在于,所述進(jìn)行指針奇偶判斷具體包括:如果讀 取的指針是偶數(shù)指針,則對(duì)其不做處理;如果讀取的指針是奇數(shù)指針,則在奇偶狀態(tài)空間查 詢是否存在與所述奇數(shù)指針匹配的偶數(shù)指針,如果存在匹配的偶數(shù)指針且偶數(shù)指針對(duì)應(yīng)的 狀態(tài)標(biāo)識(shí)設(shè)置為高,則進(jìn)行奇偶指針合并。
6. 根據(jù)權(quán)利要求5所述的方法,其特征在于,所述奇偶狀態(tài)空間中僅存儲(chǔ)偶數(shù)指針,所 述偶數(shù)指針對(duì)應(yīng)的狀態(tài)標(biāo)識(shí)設(shè)置為高時(shí),指示所述偶數(shù)指針對(duì)應(yīng)的空間為空閑; 每個(gè)偶數(shù)指針和與其對(duì)應(yīng)的奇數(shù)指針構(gòu)成一個(gè)奇偶對(duì)。
7. 根據(jù)權(quán)利要求6所述的方法,其特征在于,該方法還包括:如果釋放的是所述奇偶對(duì) 中奇數(shù)指針對(duì)應(yīng)的奇空間,則所述奇偶對(duì)中偶數(shù)指針對(duì)應(yīng)的偶空間與所述奇空間一起共同 釋放,將兩個(gè)存儲(chǔ)空間同時(shí)向上合并為一個(gè)地址連續(xù)的存儲(chǔ)空間。
8. 根據(jù)權(quán)利要求6所述的方法,其特征在于,進(jìn)行奇偶指針合并后,奇偶指針合并后的 新指針對(duì)應(yīng)奇偶空間的大小為:奇偶對(duì)中奇數(shù)指針對(duì)應(yīng)的原奇空間與偶數(shù)指針對(duì)應(yīng)的原偶 空間之和。
9. 根據(jù)權(quán)利要求4所述的方法,其特征在于,該方法還包括:如果根據(jù)狀態(tài)指示判斷存 儲(chǔ)空間的狀態(tài)為空間向下分解狀態(tài),則將讀取的一個(gè)指針分解為奇數(shù)指針和與其對(duì)應(yīng)的偶 數(shù)指針,實(shí)現(xiàn)空間向下分解; 相應(yīng)的,讀取的指針對(duì)應(yīng)的原空間的大小分為兩部分,奇數(shù)指針對(duì)應(yīng)的奇空間與偶數(shù) 指針對(duì)應(yīng)的偶空間各占原空間大小的一半。
10. -種讀寫存儲(chǔ)裝置,其特征在于,該裝置包括:總控單元、多路選擇單元、奇偶判決 單元;其中, 總控單元,用于控制多路選擇單元根據(jù)數(shù)據(jù)的業(yè)務(wù)類型選擇對(duì)應(yīng)指針的遷移來調(diào)整存 儲(chǔ)空間的存儲(chǔ)結(jié)構(gòu),自適應(yīng)分配存儲(chǔ)空間; 多路選擇單元,用于業(yè)務(wù)類型為與已有存儲(chǔ)結(jié)構(gòu)相適應(yīng)的數(shù)據(jù)包時(shí),對(duì)應(yīng)選擇原始空 閑指針隊(duì)列;業(yè)務(wù)類型為超出已有存儲(chǔ)結(jié)構(gòu)的大數(shù)據(jù)包時(shí),對(duì)應(yīng)選擇合并空閑指針隊(duì)列; 業(yè)務(wù)類型為低于已有存儲(chǔ)結(jié)構(gòu)的小數(shù)據(jù)包時(shí),指針分解后對(duì)應(yīng)選擇分解空閑指針隊(duì)列; 奇偶判決單元,用于在所述總控單元控制的存儲(chǔ)空間的工作狀態(tài)為空間向上合并狀態(tài) 時(shí),進(jìn)行指針奇偶判斷。
11. 根據(jù)權(quán)利要求10所述的裝置,其特征在于,所述存儲(chǔ)空間的工作狀態(tài)具體包括:正 常狀態(tài)、空間向下分解狀態(tài)或空間向上合并狀態(tài)。
12. 根據(jù)權(quán)利要求10所述的裝置,其特征在于,該裝置還包括:地址譯碼單元,用于所 述工作狀態(tài)為空間向上合并狀態(tài)時(shí),判斷讀取的指針?biāo)甘镜牡刂肥欠駥儆诳臻g合并的區(qū) 域,屬于空間合并的區(qū)域時(shí),將讀取的指針發(fā)往所述奇偶判決單元。
13. 根據(jù)權(quán)利要求12所述的裝置,其特征在于,所述奇偶判決單元,進(jìn)一步用于在寫操 作情況下,對(duì)從所述地址譯碼單元獲取的指針進(jìn)行奇偶判斷時(shí),讀取的指針是奇數(shù)指針,根 據(jù)讀取的奇數(shù)指針找到對(duì)應(yīng)的存儲(chǔ)空間并執(zhí)行數(shù)據(jù)寫操作;如果讀取的指針是偶數(shù)指針, 將讀取的偶數(shù)指針?biāo)屯媾紶顟B(tài)空間對(duì)其進(jìn)行更新,并將偶數(shù)指針對(duì)應(yīng)的狀態(tài)標(biāo)識(shí)設(shè)置為 商。
14. 根據(jù)權(quán)利要求12所述的裝置,其特征在于,所述奇偶判決單元,進(jìn)一步用于在讀操 作情況下,讀取的指針是偶數(shù)指針,對(duì)其不做處理;讀取的指針是奇數(shù)指針,則在奇偶狀態(tài) 空間查詢是否存在與所述奇數(shù)指針匹配的偶數(shù)指針,如果存在匹配的偶數(shù)指針且偶數(shù)指針 對(duì)應(yīng)的狀態(tài)標(biāo)識(shí)設(shè)置為高,則通知合并指針單元進(jìn)行奇偶指針合并。
15. 根據(jù)權(quán)利要求13或14所述的裝置,其特征在于,所述奇偶狀態(tài)空間中僅存儲(chǔ)偶數(shù) 指針,所述偶數(shù)指針對(duì)應(yīng)的狀態(tài)標(biāo)識(shí)設(shè)置為高時(shí),指示所述偶數(shù)指針對(duì)應(yīng)的空間為空閑;每 個(gè)偶數(shù)指針和與其對(duì)應(yīng)的奇數(shù)指針構(gòu)成一個(gè)奇偶對(duì)。
16. 根據(jù)權(quán)利要求13或14所述的裝置,其特征在于,該裝置還包括:指針分解單元,用 于所述工作狀態(tài)為空間向下分解狀態(tài)時(shí),將讀取的一個(gè)指針分解為奇數(shù)指針和與其對(duì)應(yīng)的 偶數(shù)指針,實(shí)現(xiàn)空間向下分解。
【文檔編號(hào)】G06F12/02GK104063327SQ201310092388
【公開日】2014年9月24日 申請(qǐng)日期:2013年3月21日 優(yōu)先權(quán)日:2013年3月21日
【發(fā)明者】洪思華, 馮立國, 徐心明, 鄒飛 申請(qǐng)人:中興通訊股份有限公司