新四季網

分配緩存空間的方法和裝置以及緩存控制器的製作方法

2023-05-09 10:54:51

專利名稱:分配緩存空間的方法和裝置以及緩存控制器的製作方法
技術領域:
本發明涉及數據存儲技術,特別是涉及分配緩存(Cache)空間的方法 和裝置以及援存控制器。
背景技術:
隨著信息技術的高速發展,目前出現了能夠提供數據存儲業務的網絡存 儲控制系統。圖1是網絡存儲控制系統的結構示意圖。參見圖1,網絡存儲 控制系統中主要包括用於存儲數據的磁碟陣列和執行讀寫操作的主機處理 器。另外,由於主機處理器的工作頻率遠大於磁碟陣列的工作頻率,因此, 為了提高數據讀寫的效率,網絡存儲控制系統中還包括工作頻率介於主機處 理器和磁碟陣列之間的緩存控制器和Cache。
圖2是在現有技術中Cache的空間劃分示意圖。參見圖2,為了更好地 管理Cache的存儲空間,在現有技術中,首先設定空間大小固定的Cache顆 粒,然後按照Cache顆粒劃分Cache的存儲空間,這樣,從邏輯上,Cache 的存儲空間則由多個Cache顆粒組成。比如,Cache的存儲空間為100KB, Cache顆粒為2KB,那麼,Cache的存儲空間則由5 0個Cache顆粒組成。
利用圖2所示的Cache的空間劃分方式,現有技術將外部數據寫入磁碟 陣列的過程包括主機處理器將外部發來的數據寫入指令發送給緩存控制 器;緩存控制器根據數據寫入指令中攜帶的空間申請信息,確定當前寫操作 所需的Cache空間的大小,然後根據所需的Cache空間大小確定需要佔用的 Cache顆粒的個數,比如為3個Cache顆粒,將數據寫入指令中攜帶的數據 寫入該3個Cache顆粒中;磁碟陣列掃描緩存控制器,確定有新寫入的數據 後,從上述的3個Cache顆粒中讀取該新寫入的數據,從而完成了外部數據
寫入磁碟陣列的過程。
由以上描述可以看出,在現有技術中,在將數據保存到Cache中時,是 以Cache顆粒為單位進行保存,也就是說,數據必須佔用整數個Cache顆粒。 而又由於Cache顆粒的大小是固定的,因此,在將數據保存到Cache中時, 就必然會出現部分Cache顆粒的空間有剩餘,即出現Cache碎片。參見圖3 , 比如,需保存的數據為5KB, Cache顆粒為2KB,那麼,需要佔用的Cache 顆粒的個悽t為『5/2』=3,其中,符號f』表示向上取整。而由於3個Cache 顆粒可提供6KB的存儲空間,因此,1個Cache顆粒的空間則會出現剩餘, 形成1KB的Cache碎片。這樣,參見圖4,在網絡存儲控制系統中存在大量 數據寫入操作時,則往往會導致大量Cache顆粒的空間有剩餘,形成大量的 Cache碎片,從而極大地降低了 Cache空間的利用率。

發明內容
有鑑於此,本發明的一個目的在於提供一種分配Cache空間的方法,本 發明的再一個目的在於提供一種緩存控制器,本發明的另一個目的在於提供 一種分配Cache空間的裝置,以便於提高Cache空間的利用率。
為了達到上述目的,本發明的技術方案是這樣實現的
一種分配緩存空間的方法,該方法包括
確定當前寫操作所需佔用的Cache空間大小;
為當前寫操作分配所需佔用的Cache空間大小的Cache空間;
將數據寫入所分配的Cache空間中。
一種緩存控制器,包括
Cache應用單元,用於確定當前寫操作所需佔用的Cache空間大小,向Cache 管理驅動單元申請所需佔用的Cache空間大小,根據Cache管理驅動單元發來 的Cache空間信息,將數據寫入所分配的Cache空間中;
Cache管理驅動單元,用於根據Cache應用單元的申請,為當前寫操作分 配所需佔用的Cache空間大小的Cache空間,將所分配的Cache空間信息發送
至Cache應用單元。
由此可見,在本發明中,根據當前寫操作所需佔用的Cache空間大小來 分配Cache空間,而沒有採用現有技術中分配整數個Cache顆粒的作法,從 而使得Cache中沒有剩餘的無法被分配的空間,提高了 Cache空間的利用率。
較佳地,在本發明中,可以利用空閒空間鍊表來連接指示空閒Cache 空間的各個Cache管理對象,並且,各個Cache管理對象可以動態調整,在 分配Cache空間時,直接分配對應的各個Cache管理對象,這樣,Cache管 理對象相當於本發明利用的Cache顆粒,但由於其大小能夠根據需分配的 Cache空間大小來進行動態調整,因此,很容易實現充分利用Cache空間資 源,保證沒有空閒的無法被分配的Cache空間,極大地增強了本發明的實用 性。


圖1是網絡存儲控制系統的結構示意圖。
圖2是在現有技術中Cache的空間劃分示意圖。
圖3是在現有技術中一次數據寫入後出現Cache碎片的示意圖。
圖4是在現有技術中大量數據寫入後出現大量Cache碎片的示意圖。
圖5是在本發明 一個實施例中為需要保存的數據分配Cache空間的流程圖。
圖6是在本發明一個實施例中Cache管理對象的組成示意圖。 圖7是在本發明一個實施例中空閒空間鍊表中的Cache管理對象與 Cache空閒空間的示意圖。
圖8是在本發明一個實施例中提出的緩存控制器的基本結構示意圖。 圖9是在本發明 一個實施例中提出的緩存控制器的優化結構示意圖。
具體實施例方式
為使本發明的目的、技術方案和優點更加清楚,下面結合附圖及具體實
施例對本發明作進一 步地詳細描述。
為了提高Cache空間的利用率,在每次將數據寫入Cache時,則必須使 得為數據分配的Cache空間的大小與數據實際需要佔用的空間的大小 一致。 因此,本發明提出了一種分配Cache空間的方法。在該方法中,確定當前寫 操作所需佔用的Cache空間大小;為當前寫操作分配所需佔用的Cache空間 大小的Cache空間;將數據寫入所分配的Cache空間中。
在本發明方法中,較佳地,可以利用鍊表來維護Cache中沒有被使用的 Cache空間,這樣,則可以從鍊表中隨意取出所需佔用的Cache空間大小的 空閒Cache空間。
圖5是在本發明 一個實施例中為需要保存的數據分配Cache空間的流程 圖。參見圖5,在本發明一個較佳實施例中,採用鍊表方式為需要保存的數 據分配Cache空間的過程具體包括以下步驟
步驟501:預先設置空閒空間鍊表。
步驟502:預先設置Cache管理對象。
這裡,設置Cache管理對象是為了在後續過程中,能夠通過可動態調整 的Cache管理對象來指示Cache中每一段具體的Cache空間。
並且,為了便於維護Cache管理對象,參見圖6, Cache管理對象的組 成可以包括指示空閒空間鍊表中前一個Cache管理對象的起始地址的頭指 針、Cache管理對象所指示空間的起始地址和長度、以及指示空閒空間鍊表 中後一個Cache管理對象的起始地址的尾指針。利用圖6所示的Cache管理 對象,可以4艮容易通過一個Cache管理對象找到其它Cache管理對象,這樣, 則可以方便地找到Cache中的每一段空閒空間。
步驟503:在Cache初始化狀態時,利用Cache中當前的空閒空間組成 一個Cache管理對象,將該Cache管理對象連接到空閒空間鍊表中。
這裡,在Cache初始化狀態時,Cache中的所有空間均處於空閒狀態, 因此,可以將Cache中的所有空間組成一個Cache管理對象,記為Cache管 理對象A,將Cache管理對象A連接到空閒空間鍊表中。這樣,參見圖7,
以Cache總的存儲空間為1024KB為例,由於當前的空閒空間鍊表中僅連接 了一個Cache管理對象A,因此,Cache管理對象A的頭指針和尾指針均為 空,並且,Cache管理對象A的起始地址為0X0,長度為1024KB。
步驟504:在接收到第一次寫操作請求後,根據該寫操作請求確定本次 寫操作所需佔用的Cache空間大小。
這裡,比如,第一次寫操作需要佔用1KB大小的Cache空間。 步驟505:從空閒空間鍊表中取出對應1 KB的Cache空間的Cache管理 對象。
這裡,由於空閒空間鍊表中現有的Cache管理對象A所指示的Cache 空間的大小1024KB大於所需佔用的Cache空間大小1KB,因此,在本步驟 中,不能直接將該Cache管理對象A取出,而是首先將Cache管理對象A 進行拆分,使得拆分後的一個Cache管理對象指示的Cache空間的大小對應 1KB,比如,將Cache管理對象A拆分成Cache管理對象Al以及Cache管 理對象A2。參見圖7, Cache管理對象A1的起始地址為0X0,長度為1KB, 這樣,則可以從空閒空間鍊表中取出Cache管理對象Al,相應地,空閒空 間確連表中只剩下Cache管理對象A2,其起始地址為0X400,長度為1023KB, 頭指針和尾指針均為空。
步驟506:將數據寫入所取出的Cache管理對象Al指示的Cache空間。
在業務進行的初始階段,Cache中空閒的空間較多,因此,每次從空閒 空間鍊表中取出Cache管理對象時,均按照步驟505中拆分的處理從空閒空 間鍊表中取出Cache管理對象。
比如,接收到第二次寫操作請求,該第二次寫操作需要佔用2KB大小 的Cache空間,由於空閒空間鍊表中現有的Cache管理對象A2所指示的 Cache空間的大小1023KB大於所需佔用的Cache空間大小2KB ,因此,首 先將Cache管理對象A2進行拆分,使得拆分後的一個Cache管理對象指示 的Cache空間的大小對應2KB,比如,將Cache管理對象A2拆分成Cache 管理對象A21以及Cache管理對象A22。參見圖7, Cache管理對象A21的
起始地址為0X400,長度為2KB,這樣,則可以從空閒空間鍊表中取出Cache 管理對象A21,相應地,空閒空間鍊表中只剩下Cache管理對象A22,其起 始地址為0XC00,長度為1021KB,頭指針和尾指針均為空。
再如,接收到第三次寫操作請求,該第三次寫操作需要佔用2KB大小 的Cache空間,由於空閒空間鍊表中現有的Cache管理對象A22所指示的 Cache空間的大小1021KB大於所需佔用的Cache空間大小2KB,因此,首 先將Cache管理對象A22進行拆分,使得拆分後的一個Cache管理對象指 示的Cache空間的大小對應2KB,比如,將Cache管理對象A22拆分成Cache 管理對象A221以及Cache管理對象A222。參見圖7, Cache管理對象A221 的起始地址為OXCOO,長度為2KB,這樣,則可以從空閒空間鍊表中取出 Cache管理對象A221,相應地,空閒空間鍊表中只剩下Cache管理對象A222, 其起始地址為0X1400,長度為1019KB,頭指針和尾指針均為空。
依此過程執行,參見圖7,比如,在第n次分配Cache空間後,Cache 空間中只剩餘3KB的空閒空間,那麼,空閒空間鍊表中當前僅有 一個Cache 管理對象An,其起始地址為0X0FF400,長度為3KB,頭指針和尾指針均為

步驟507:檢測到有Cache空間釋放其保存的數據,轉變為空閒空間後, 將釋放數據的每一段地址連續的空閒空間組成一個Cache管理對象。
比如,為第一次寫操作分配的Cache管理對象Al指示的Cache空間釋 放了其保存的數據,那麼,將該Cache空間重新組成一個Cache管理對象, 記為Cache管理對象2,其起始地址為0X0,長度為1KB;並且,為第三次 寫操作分配的Cache管理對象A221指示的Cache空間也釋放了其保存的數 據,那麼,將該Cache空間重新組成一個Cache管理對象,記為Cache管理 對象3,其起始地址為OXCOO,長度為2KB。
步驟508:將當前組成的Cache管理對象2和Cache管理對象3連接到 空閒空間鍊表中。
本步驟的一種較佳實現方式為將Cache管理對象2和Cache管理對象
3依次連接到空閒空間鍊表的尾部,這樣,參見圖7所示,此時的空閒空間 鍊表則包括3個Cache管理對象,依次為Cache管理對象An,其指示的 Cache空間的起始地址為0X0FF400,長度為3KB,頭指針為空,尾指針指 向Cache管理對象2的起始地址;Cache管理對象2,其指示的Cache空間 的起始地址為0X0,長度為1KB,頭指針指向Cache管理對象An的起始地 址,尾指針指向Cache管理對象3的起始地址;Cache管理對象3,其指示 的Cache空間的起始地址為OXCOO,長度為2KB,頭指針指向Cache管理 對象2的起始地址,尾指針為空。
當然,在本步驟中,也可以將Cache管理對象2和Cache管理對象3隨 意連接到空閒空間鍊表中的一個位置,比如,將Cache管理對象2連接到空 閒空間鍊表的頭部即Cache管理對象An之前,將Cache管理對象3連接到 空閒空間鍊表的尾部即Cache管理對象An之後,此時空閒空間鍊表中每一 個Cache管理對象的頭尾指針需要進行相應修改。
參見圖7,在利用上述步驟504至步驟508的過程進行空閒空間的分配 和回收後,Cache中的空閒空間則由多段連續的空閒空間組成,每一段連續 的空閒空間對應空閒空間鍊表中的 一個Cache管理對象。
步驟509:再次接收到一個寫操作請求,根據該寫操作請求確定本次寫 操作所需佔用的Cache空間大小,從空閒空間鍊表中取出對應所需佔用的 Cache空間大小的Cache管理對象。
比如,本步驟中所需佔用的Cache空間大小為4KB。執行到本步驟,由 於Cache空間已經被分配多次,任意一個Cache管理對象指示的空閒空間的 大小均小於本次寫操作所需佔用的Cache空間大小,因此,必須使用多個 Cache管理對象指示的空閒空間來進行分配,而參見圖7,本次寫操作所需 佔用的Cache空間大小4KB正好可以由Cache管理對象An和Cache管理對 象2這兩個Cache管理對象指示的Cache空間來提供,因此,直接從空閒空 間鍊表中取出Cache管理對象An和Cache管理對象2。
再如,本步驟中所需佔用的Cache空間大小為3.5KB。執行到本步驟,
由於Cache空間已經被分配多次,任意一個Cache管理對象指示的空閒空間 的大小均小於本次寫操作所需佔用的Cache空間大小,因此,必須使用多個 Cache管理對象指示的空閒空間來進行分配,而參見圖7,任意整數個Cache 管理對象指示的Cache空間的大小不對應所需佔用的Cache空間大小。這樣, 在本步驟中,首先需要確定滿足所需佔用的Cache空間大小3.5KB的Cache 管理對象的最小數量,從圖7中可以看出,該最小數量為2,即最少需要兩 個Cache管理對象來提供所需佔用的Cache空間,比如選用Cache管理對象 An和Cache管理對象2;其次,由於Cache管理對象An和Cache管理對象 2總共對應的Cache空間的大小為4KB大於所需佔用的3.5KB,因此,還需 對其中一個進行拆分,比如,將Cache管理對象An拆分成Cache管理對象 Anl和Cache管理對象An2,其中,Cache管理對象Anl指示的Cache空間 的長度為2.5KB, Cache管理對象An2指示的Cache空間的長度為0.5KB, 這樣,Cache管理對象Anl和Cache管理對象2共同指示的Cache空間的大 小則為3.5KB,正好對應所需佔用的Cache空間大小,此時,則從空閒空間 鍊表中取出Cache管理對象Anl以及Cache管理對象2。步驟510:將數據寫入所取出的各個Cache管理對象指示的Cache空間。 需要說明的是,在分配Cache空間的過程中,在從空閒空間鍊表中取出 Cache管理對象時,可以從空閒空間鍊表中按照從前至後的順序取出,比如, 當前所需佔用的Cache空間為2KB,空閒空間鍊表中鍊表頭位置的Cache 管理對象和鍊表尾部的Cache管理對象指示的Cache空間均為2KB,那麼, 則可以從空閒空間鍊表中取出鍊表頭位置的Cache管理對象,來作為分配的 Cache空間。當然,在從空閒空間鍊表中取出Cache管理對象時,也可以從 空閒空間鍊表中隨機取出滿足所需佔用的Cache空間的Cache管理對象。還需要說明的是,參見圖6和圖7,由於Cache管理對象包括指示空 閒空間鍊表中前一個Cache管理對象的起始地址的頭指針、Cache管理對象 對應空間的起始地址和長度、以及指示空閒空間鍊表中後 一個Cache管理對 象的起始地址的尾指針。因此,在上述圖5所示流程中,當需要根據所需佔 用的Cache空間大小分配Cache空間時,具體可以根據空閒空間鍊表中各 Cache管理對象包括的頭指針、起始地址和長度、尾指針,來逐個搜索Cache 管理對象,從而確定出一個或多個可以滿足所需佔用的Cache空間大小的 Cache管理對象。本發明還提出了一種緩存控制器。圖8是在本發明一個實施例中提出的緩 存控制器的基本結構示意圖。參見圖8,在本發明一個實施例中,緩存控制器 可以包括Cache應用單元,用於確定當前寫操作所需佔用的Cache空間大小,向Cache 管理驅動單元申請所需佔用的Cache空間大小,根據Cache管理驅動單元發來 的Cache空間信息,將數據寫入所分配的Cache空間中;Cache管理驅動單元,用於根據Cache應用單元的申請,為當前寫操作分 配所需佔用的Cache空間大小的Cache空間,將所分配的Cache空間信息發送 至Cache應用單元。較佳地,緩存控制器可以利用鍊表方式來維護Cache中沒有被使用的 Cache空間,以便從鍊表中隨意取出所需佔用的Cache空間大小的空閒Cache 空間。此時,參見圖9,緩存控制器進一步包括鍊表單元,用於保存空閒空 間鍊表;並且,所述Cache管理驅動單元進一步利用Cache中當前的空閒空間組成Cache 管理對象,將組成的Cache管理對象連接到鍊表單元保存的空閒空間鍊表中, 根據Cache應用單元的申請,從鍊表單元保存的空閒空間鍊表中取出對應所需 佔用的Cache空間大小的Cache管理對象,將取出的Cache管理對象的信息發 送至Cache應用單元;所述Cache應用單元,用於根據Cache管理對象的信息,將數據寫入該Cache 管理對象指示的Cache空間。在本發明一個實施例中,緩存控制器中的Cache管理驅動單元在組成Cache 管理對象時,具體是利用當前Cache中每一段地址連續的空閒空間組成一個 Cache管理對象。
在本發明的又一個實施例中,緩存控制器的Cache管理驅動單元中包括檢 測執行子單元、管理對象處理子單元和分配執行子單元,這三個子單元用於配 合完成根據Cache應用單元的申請從鍊表單元保存的空閒空間鍊表中取出對應 所需佔用的Cache空間大小的Cache管理對象的處理,具體實現包括檢測執行子單元,用於接收Cache應用單元的申請,根據該申請進行檢測, 在檢測出任意一個Cache管理對象指示的Cache空間的大小大於所需佔用的 Cache空間大小時,將攜帶該Cache管理對象的信息的拆分指示發送至管理對 象處理子單元,並且,在檢測出整數個Cache管理對象指示的Cache空間的大 小對應所需佔用的Cache空間大小時,將該整數個Cache管理對象的信息直4妻 發送至分配執行子單元,並且,在檢測出任意一個Cache管理對象指示的Cache 空間的大小小於所需佔用的Cache空間大小時,將合併指示發送至管理對象處 理子單元;管理對象處理子單元,用於在接收到拆分指示時,根據拆分指示中攜帶的 Cache管理對象的信息,將該Cache管理對象拆分成第一 Cache管理對象以及 其他Cache管理對象,其中,第一 Cache管理對象指示的Cache空間大小對應 所需佔用的Cache空間大小,將第一 Cache管理對象的信息發送至分配執行子 單元,並且,在接收到合併指示時,確定滿足所需佔用的Cache空間大小的Cache 管理對象的最小數量,從該最小數量中的一個Cache管理對象中拆分出第二 Cache管理對象,該第二 Cache管理對象以及所述最小數量中的其他Cache管 理對象共同指示的Cache空間的大小對應所需佔用的Cache空間大小,將第二 Cache管理對象以及所述最小數量中的其他Cache管理對象的信息發送至分配 才丸行子單元;分配執行子單元,根據接收到的Cache管理對象的信息,從鍊表單元保存 的空閒空間鍊表中取出對應的Cache管理對象,將取出的Cache管理對象的信 息作為所分配的Cache空間信息發送至Cache應用單元。參見圖9,所述鍊表單元保存的空閒空間鍊表中包括一個以上的Cache管 理對象,每一個Cache管理對象包括指示前一個Cache管理對象的起始地址的
頭指針、Cache管理對象自身的起始地址和長度、以及指示後一個Cache管理 對象的起始地址的尾指針;所述Cache管理驅動單元,用於根據Cache應用單元的申請、鍊表單元保 存的空閒空間鍊表中各Cache管理對象包括的頭指針、起始地址和長度、尾指 針,執行從空閒空間鍊表中取出Cache管理對象的處理。另外,本發明還提出了一種分配緩存空間的裝置。該裝置包括緩存控制器 和Cache,其中,緩存控制器的內部結構和功能可以利用上述本發明實施例中 描述的緩存控制器來實現。總之,以上所述僅為本發明的較佳實施例而已,並非用於限定本發明的 保護範圍。凡在本發明的精神和原則之內,所作的任何修改、等同替換、改 進等,均應包含在本發明的保護範圍之內。
權利要求
1、 一種分配緩存空間的方法,其特徵在於,該方法包括 確定當前寫操作所需佔用的緩存Cache空間大小;為當前寫操作分配所需佔用的Cache空間大小的Cache空間; 將數據寫入所分配的Cache空間中。
2、 根據權利要求1所述的方法,其特徵在於,該方法進一步包括利用 Cache中當前的空閒空間組成Cache管理對象,通過預先設置的空閒空間鍊表 連接Cache管理對象;所述為當前寫操作分配所需佔用的Cache空間大小的Cache空間的步驟包 括從空閒空間鍊表中取出對應所需佔用的Cache空間大小的Cache管理對象;所述將數據寫入所分配的Cache空間中的步驟包括將數據寫入所取出的 Cache管理對象指示的Cache空間。
3、 根據權利要求2所述的方法,其特徵在於,所述利用Cache中當前的空 閒空間組成Cache管理對象的步驟包括將當前Cache中每一段地址連續的空 閒空間組成一個Cache管理對象。
4、 根據權利要求3所述的方法,其特徵在於,所述從空閒空間鍊表中取出 對應所需佔用的Cache空間大小的Cache管理對象的步驟包括當空閒空間鍊表中任意一個Cache管理對象指示的Cache空間的大小大於 所需佔用的Cache空間大小時,將該Cache管理對象拆分成第一 Cache管理對 象以及其他Cache管理對象,其中,第一 Cache管理對象指示的Cache空間大 小對應所需佔用的Cache空間大小,從空閒空間鍊表中取出第一 Cache管理對 象;當整數個Cache管理對象指示的Cache空間的大小對應所需佔用的Cache 空間大小時,直接從空閒空間鍊表中取出該整數個Cache管理對象;當空閒空間鍊表中任意一個Cache管理對象指示的Cache空間的大小小於 所需佔用的Cache空間大小時,確定滿足所需佔用的Cache空間大小的Cache 管理對象的最小數量,從該最小數量中的一個Cache管理對象中拆分出第二 Cache管理對象,該第二 Cache管理對象以及所述最小數量中的其他Cache管 理對象共同指示的Cache空間的大小對應所需佔用的Cache空間大小,從空閒 空間鍊表中取出第二 Cache管理對象以及所述最小數量中的其他Cache管理對象。
5、 根據權利要求4所述的方法,其特徵在於,所述從空閒空間鍊表中取出 為從空閒空間鍊表中按照從前至後的順序取出;或者,從空閒空間鍊表中隨 機取出。
6、 根據權利要求2至5中任意一項所述的方法,其特徵在於,所述Cache 管理對象包括指示空閒空間鍊表中前一個Cache管理對象的起始地址的頭指 針、Cache管理對象所指示空間的起始地址和長度、以及指示空閒空間鍊表中 後一個Cache管理對象的起始地址的尾指針;根據所需佔用的Cache空間大小、空閒空間鍊表中各Cache管理對象包括 的頭指針、起始地址和長度、尾指針,執行從空閒空間鍊表中取出Cache管理對象的步驟。
7、 一種緩存控制器,其特徵在於,包括Cache應用單元,用於確定當前寫操作所需佔用的Cache空間大小,向Cache 管理驅動單元申請所需佔用的Cache空間大小,根據Cache管理驅動單元發來 的Cache空間信息,將數據寫入Cache空間中;Cache管理驅動單元,用於根據Cache應用單元的申請,為當前寫操作分 配所需佔用的Cache空間大小的Cache空間,將所分配的Cache空間信息發送 至Cache應用單元。
8、 根據權利要求7所述的緩存控制器,其特徵在於,該緩存控制器進一步 包括鍊表單元,用於保存空閒空間鍊表;並且,所述Cache管理驅動單元進一步利用Cache中當前的空閒空間組成Cache 管理對象,將組成的Cache管理對象連接到鍊表單元保存的空閒空間鍊表中, 根據Cache應用單元的申請,從鍊表單元保存的空閒空間鍊表中取出對應所需 佔用的Cache空間大小的Cache管理對象,將取出的Cache管理對象的信息作 為所分配的Cache空間信息發送至Cache應用單元;所迷Cache應用單元,用於根據Cache管理對象的信息,將數據寫入該Cache 管理對象指示的Cache空間。
9、 根據權利要求8所述的緩存控制器,其特徵在於,所述Cache管理驅動 單元利用當前Cache中每一段地址連續的空閒空間組成一個Cache管理對象。
10、 根據權利要求9所述的緩存控制器,其特徵在於,所述Cache管理驅 動單元中包括檢測執行子單元,用於接收Cache應用單元的申請,根據該申請進行檢測, 在檢測出任意一個Cache管理對象指示的Cache空間的大小大於所需佔用的 Cache空間大小時,將攜帶該Cache管理對象的信息的拆分指示發送至管理對 象處理子單元,並且,在檢測出整數個Cache管理對象指示的Cache空間的大 小對應所需佔用的Cache空間大小時,將該整數個Cache管理對象的信息直接 發送至分配執行子單元,並且,在檢測出任意一個Cache管理對象指示的Cache 空間的大小小於所需佔用的Cache空間大小時,將合併指示發送至管理對象處 理子單元;管理對象處理子單元,用於在接收到拆分指示時,根據拆分指示中攜帶的 Cache管理對象的信息,將該Cache管理對象拆分成第一 Cache管理對象以及 其他Cache管理對象,其中,第一 Cache管理對象指示的Cache空間大'J 、對應 所需佔用的Cache空間大小,將第一 Cache管理對象的信息發送至分配執行子 單元,並且,在接收到合併指示時,確定滿足所需佔用的Cache空間大小的Cache 管理對象的最小數量,從該最小數量中的一個Cache管理對象中拆分出第二 Cache管理對象,該第二 Cache管理對象以及所述最小數量中的其他Cache管 理對象共同指示的Cache空間的大小對應所需佔用的Cache空間大小,將第二 Cache管理對象以及所述最小數量中的其他Cache管理對象的信息發送至分配 執行子單元;分配執行子單元,根據接收到的Cache管理對象的信息,從鍊表單元保存 的空閒空間鍊表中取出對應的Cache管理對象,將取出的Cache管理對象的信 息作為所分配的Cache空間信息發送至Cache應用單元。
11、 根據權利要求8所述的緩存控制器,其特徵在於,所述鍊表單元保存 的空閒空間鍊表中包括一個以上的Cache管理對象,每一個Cache管理對象包 括指示前一個Cache管理對象的起始地址的頭指針、Cache管理對象所指示空 間的起始地址和長度、以及指示後一個Cache管理對象的起始地址的尾指針;所述Cache管理驅動單元,用於根據Cache應用單元的申請、各Cache管 理對象包括的頭指針、起始地址和長度、尾指針,執行從鍊表單元保存的空閒 空間鍊表中取出Cache管理對象的處理。
12、 一種分配緩存空間的裝置,其特徵在於,包括Cache以及如權利要求 7至11中任意一項所述的緩存控制器。
全文摘要
本發明公開了一種分配緩存空間的方法和裝置以及一種緩存控制器。該方法包括確定當前寫操作所需佔用的緩存(Cache)空間大小;為當前寫操作分配所需佔用的Cache空間大小的Cache空間;將數據寫入所分配的Cache空間中。緩存控制器包括Cache應用單元和Cache管理驅動單元。本發明提高了Cache空間的利用率。
文檔編號G06F12/08GK101122886SQ20071012130
公開日2008年2月13日 申請日期2007年9月3日 優先權日2007年9月3日
發明者劉介良, 輝 安, 賴守鋒 申請人:杭州華三通信技術有限公司

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀