用以優(yōu)化分組緩沖器空間的分組處理系統(tǒng)、方法和設(shè)備的制造方法
【專利摘要】一種分組處理設(shè)備的緩沖器邏輯單元,其被配置為如果頁面上所存儲的當前分組沒有完全填滿單個頁面,則將單個的頁面分配給兩個或更多分組,以及存儲并維持用于頁面上所存儲的分組數(shù)據(jù)中的每個分組數(shù)據(jù)的特定于頁面分段的頁面狀態(tài)數(shù)據(jù)。
【專利說明】
用以優(yōu)化分組緩沖器空間的分組處理系統(tǒng)、方法和設(shè)備
技術(shù)領(lǐng)域
[0001]本發(fā)明涉及一種分組處理系統(tǒng)。更特別地,本發(fā)明涉及優(yōu)化分組處理系統(tǒng)中的分組緩沖器空間。
【背景技術(shù)】
[0002]分組處理設(shè)備(如交換機微芯片)經(jīng)常需要在該設(shè)備處理分組時將它們緩沖到具有一個或多個庫(bank)的分組存儲器(PM)中。用以將分組存儲在設(shè)備的分組存儲器中的當前解決方案是向每個分組指配分組存儲器的多個區(qū)塊(chunk,稱為頁面),而不是單個大區(qū)塊。利用這種方案,分組沒有連續(xù)地被存儲在分組存儲器的庫中,而是被分散在一個或多個頁面中,該一個或多個頁面一起形成頁面的鏈表,該鏈表貫穿分組存儲器的多個庫進行映射。進一步地,多個這些庫(和映射到它們的頁面)能夠邏輯地被歸組到(庫和相關(guān)聯(lián)的頁面的)池中。因此,特定分組在分組緩沖器中使用的所有頁面的鏈表需要被維持在交換機中(在緩沖器管理器或BM中);這一鏈表在分組從分組緩沖器中被讀取出以用于傳輸時被遍歷。每個頁面關(guān)聯(lián)了狀態(tài),該狀態(tài)包含與頁面有關(guān)的一些信息。分組處理器設(shè)備中的所有頁面的狀態(tài)被維持在交換機中。分組關(guān)聯(lián)了描述符或標記(token),該描述符或標記除了其他字段之外還包含指向第一頁面的指針。利用這一起始指針,通過對利用不同頁面狀態(tài)的下一頁面指針所構(gòu)建的鏈表進行遍歷,由分組所使用的所有頁面能夠按照它們被用來存儲傳入分組的相同順序被取回。作為結(jié)果,特定分組使用的所有頁面(并且因此,庫)的鏈表被維持在交換機中,并且然后被遍歷以從分組存儲器定位和讀取出分組來用于傳輸。
[0003]在這些基于頁面的分組處理設(shè)備中,被浪費的分組存儲器與緩沖器管理器上所施加的帶寬需求之間存在折中。頁面中的每個頁面的大小越大,用以讀取和寫入分組數(shù)據(jù)所需要的訪問就越少,并且因此緩沖器管理器的帶寬上的壓力越小。然而,頁面的大小越大意味著分組存儲器的更大的部分可能被浪費或者未使用,因為沒有填滿整個頁面的分組將導致該頁面的剩余部分未使用。另一方面,頁面大小越小,平均被浪費或未使用的分組存儲器就越少,但是歸因于用以讀取每個分組和將每個分組寫入較小頁面所要求的訪問的數(shù)目上的增加,應(yīng)用到緩沖器管理器的壓力更大。
[0004]另外,在一些分組處理設(shè)備中,如果兩個或更多分組的一部分具有分組數(shù)據(jù)的匹配(matching)部分(例如,頭部部分或者主體部分),則這些分組能夠共享存儲有分組數(shù)據(jù)的匹配部分的一個頁面或多個頁面,從而匹配數(shù)據(jù)沒有在不同的位置(例如,不同的頁面)被存儲兩次。為了保持跟蹤需要使用頁面的分組的數(shù)目,緩沖器管理器維持用于頁面中的每個頁面的參考計數(shù)值,其指示共享該頁面并且還沒有從該頁面讀取出分組數(shù)據(jù)的頁面的數(shù)目。例如,在設(shè)備確定更多分組需要使用頁面時(例如,更多分組具有與該頁面上所存儲的數(shù)據(jù)的部分相匹配的部分),該設(shè)備能夠使參考計數(shù)值遞增以說明(account for)需要使用該頁面的所添加分組。類似地,在數(shù)據(jù)從這些頁面被讀取以用于分組中的一個或多個分組時(從而該頁面不再需要被使用用于這些分組),該設(shè)備能夠使參考計數(shù)值遞減以說明需要使用該頁面的分組的較少數(shù)量。因此,當參考計數(shù)被減少到零時,該設(shè)備能夠回收該頁面用于與其他數(shù)據(jù)一起重新使用,因為不再有分組需要使用該頁面上存儲的數(shù)據(jù)。
【發(fā)明內(nèi)容】
[0005]—種分組處理設(shè)備的緩沖器邏輯單元被配置為,如果頁面上所存儲的當前分組沒有完全填滿頁面,則將單個的頁面分配給兩個或更多分組。作為結(jié)果,該緩沖器邏輯單元能夠通過減少頁面中的每個頁面上的未使用空間的量,來減少被浪費的分組存儲器空間的量。
[0006]第一方面針對一種在分組處理設(shè)備上的分組處理系統(tǒng)。該系統(tǒng)包括:包括多個物理存儲器單元的非瞬態(tài)計算機可讀分組存儲器,該多個物理存儲器單元邏輯地被劃分為多個頁面,從而頁面中的每個頁面定義物理存儲器單元的分離部分;以及至少部分地被存儲在非瞬態(tài)計算機可讀緩沖器存儲器上的緩沖器邏輯,其中該緩沖器邏輯被配置為:分配頁面中的一個頁面來存儲多個分組中的第一分組的分組數(shù)據(jù);以及如果頁面中的該頁面被確定為未充分被第一分組的分組數(shù)據(jù)占用,則分配頁面中的該頁面的未占用的剩余部分的至少一分部分來存儲該多個分組中的一個或多個另外分組的分組數(shù)據(jù),以使得頁面中的該頁面被分配給該多個分組中的兩個或更多分組。在一些實施例中,頁面中的每個頁面包括多個分段,并且如果未占用的剩余部分包括頁面中的該頁面的分段中的至少一個分段,則緩沖器存儲器邏輯確定頁面中的該頁面未充分被占用。在一些實施例中,緩沖器存儲器包括用于頁面中的每個頁面的參考計數(shù)值,該參考計數(shù)值指示該多個分組中的多少分組使用該頁面,并且另外其中緩沖器邏輯被配置為,一旦頁面中的該頁面已經(jīng)被分配來存儲第一分組的分組數(shù)據(jù),如果頁面中的該頁面在存儲第一分組的分組數(shù)據(jù)之后被確定為未充分被占用,就將頁面中的該頁面的參考計數(shù)值設(shè)置為大于一的整數(shù)。在一些實施例中,大于一的該整數(shù)是二。在一些實施例中,針對該多個分組中的其分組數(shù)據(jù)被分配給頁面中的該頁面的每個分組,緩沖器邏輯被配置為,如果頁面中的該頁面在存儲該分組的分組數(shù)據(jù)之后被確定為未充分被占用,則使頁面中的該頁面的參考計數(shù)值遞增一。在一些實施例中,針對該多個分組中的其分組數(shù)據(jù)被分配給頁面中的該頁面的每個分組,緩沖器邏輯被配置為,如果頁面中的該頁面在存儲該分組的分組數(shù)據(jù)之后被確定為不再是未充分被占用,則避免使頁面中的該頁面的參考計數(shù)值遞增一。在一些實施例中,緩沖器存儲器存儲用于頁面中的每個頁面的狀態(tài)數(shù)據(jù),其中頁面中的每個頁面的狀態(tài)數(shù)據(jù)包括用于該頁面的分段中的每個分段的單獨狀態(tài)值。在一些實施例中,用于分段中的每個分段的狀態(tài)值包括如下組中的一項或多項,該組包括:所使用數(shù)據(jù)計數(shù)值,指示該分段的多少當前正存儲有數(shù)據(jù);分組起始值,指示分組中的一個分組的起始是否被存儲在該分段中;以及分組末尾值,指示分組中的一個分組的末尾是否被存儲在該分段中。在一些實施例中,緩沖器邏輯被配置為生成用于頁面中的一個或多個頁面上所存儲的分組中的每個分組的描述符,其中描述符包括頁面指示符和分段指示符,頁面指示符指示該分組的起始被存儲在頁面中的哪個頁面上,分段指示符指示該分組的起始被存儲在所指示的頁面的分段中的哪個分段上。在一些實施例中,針對分組中的每個分組,在將分組的末尾(例如,頭部的末尾或者整個分組的末尾)存儲在這些頁面中的頁面的分段中的一個分段上之后,緩沖器邏輯保留頁面的鄰近后續(xù)分段中的一個或多個分段作為保留分段,保留分段僅能夠在該分組的數(shù)據(jù)的大小增加時存儲來自該分組的數(shù)據(jù)。在一些實施例中,在確定頁面中的該頁面是否未充分被占用時,緩沖器邏輯將保留分段考慮為被占用,以使得保留分段不是未占用的剩余部分的一部分。
[0007]第二方面針對一種被存儲在非瞬態(tài)計算機可讀緩沖器存儲器上的緩沖器邏輯單元,其中該緩沖器邏輯被配置為:分配多個頁面中的一個頁面來存儲多個分組中的第一分組的分組數(shù)據(jù);以及如果頁面中的該頁面被確定為未充分被第一分組的分組數(shù)據(jù)占用,則分配頁面中的該頁面的未占用的剩余部分的至少一分部分來存儲該多個分組中的一個或多個另外分組的分組數(shù)據(jù),以使得頁面中的該頁面被分配給該多個分組中的兩個或更多分組,其中該多個頁面中的每個頁面包括多個分段并且定義多個物理存儲器單元的分離部分。在一些實施例中,頁面中的每個頁面包括多個分段,并且如果未占用的剩余部分包括頁面中的該頁面的分段中的至少一個分段,則緩沖器存儲器邏輯確定頁面中的該頁面未充分被占用。在一些實施例中,緩沖器存儲器包括用于頁面中的每個頁面的參考計數(shù)值,該參考計數(shù)值指示該多個分組中的多少分組使用該頁面,并且另外其中緩沖器邏輯被配置為,一旦頁面中的該頁面已經(jīng)被分配來存儲第一分組的分組數(shù)據(jù),如果頁面中的該頁面在存儲第一分組的分組數(shù)據(jù)之后被確定為未充分被占用,就將頁面中的該頁面的參考計數(shù)值設(shè)置為大于一的整數(shù)。在一些實施例中,大于一的該整數(shù)是二。在一些實施例中,針對該多個分組中的其分組數(shù)據(jù)被分配給頁面中的該頁面的每個分組,緩沖器邏輯被配置為,如果頁面中的該頁面在存儲該分組的分組數(shù)據(jù)之后被確定為未充分被占用,則使頁面中的該頁面的參考計數(shù)值遞增一。在一些實施例中,針對該多個分組中的其分組數(shù)據(jù)被分配給頁面中的該頁面的每個分組,緩沖器邏輯被配置為,如果頁面中的該頁面在存儲該分組的分組數(shù)據(jù)之后被確定為不再是未充分被占用,則避免使頁面中的該頁面的參考計數(shù)值遞增一。在一些實施例中,緩沖器存儲器存儲用于頁面中的每個頁面的狀態(tài)數(shù)據(jù),其中頁面中的每個頁面的狀態(tài)數(shù)據(jù)包括用于該頁面的分段中的每個分段的單獨狀態(tài)值。在一些實施例中,用于分段中的每個分段的狀態(tài)值包括如下組中的一項或多項,該組包括:所使用數(shù)據(jù)計數(shù)值,指示該分段的多少當前正存儲有數(shù)據(jù);分組起始值,指示分組中的一個分組的起始是否被存儲在該分段中;以及分組末尾值,指示分組中的一個分組的末尾是否被存儲在該分段中。在一些實施例中,緩沖器邏輯被配置為生成用于頁面中的一個或多個頁面上所存儲的分組中的每個分組的描述符,其中描述符包括頁面指示符和分段指示符,頁面指示符指示該分組的起始被存儲在頁面中的哪個頁面上,分段指示符指示該分組的起始被存儲在所指示的頁面的分段中的哪個分段上。在一些實施例中,針對分組中的每個分組,在將分組的末尾存儲在這些頁面中的頁面的分段中的一個分段上之后,緩沖器邏輯保留頁面的鄰近后續(xù)分段中的一個或多個分段作為保留分段,保留分段僅能夠在該分組的數(shù)據(jù)的大小增加時存儲來自該分組的數(shù)據(jù)。在一些實施例中,在確定頁面中的該頁面是否未充分被占用時,緩沖器邏輯將保留分段考慮為被占用,以使得保留分段不是未占用的剩余部分的一部分。
[0008]第三方面針對一種優(yōu)化分組處理系統(tǒng)內(nèi)的分組存儲器空間的方法,該分組處理系統(tǒng)包括非瞬態(tài)計算機可讀分組存儲器,該非瞬態(tài)計算機可讀分組存儲器包括多個物理存儲器單元,該多個物理存儲器單元邏輯地被劃分為多個頁面,從而頁面中的每個頁面定義物理存儲器單元的分離部分。該方法包括:利用緩沖器邏輯來分配頁面中的一個頁面以存儲多個分組中的第一分組的分組數(shù)據(jù),其中該緩沖器邏輯至少部分地被存儲在非瞬態(tài)計算機可讀緩沖器存儲器上;利用緩沖器邏輯來確定頁面中的該頁面是否未充分被第一分組的分組數(shù)據(jù)占用;以及如果頁面中的該頁面被緩沖器邏輯確定為未充分被第一分組的分組數(shù)據(jù)占用,則利用緩沖器邏輯來分配頁面中的該頁面的未占用的剩余部分的至少一分部分以存儲該多個分組中的一個或多個另外分組的分組數(shù)據(jù),以使得頁面中的該頁面被分配給該多個分組中的兩個或更多分組。在一些實施例中,頁面中的每個頁面包括多個分段,并且如果未占用的剩余部分包括頁面中的該頁面的分段中的至少一個分段,則緩沖器存儲器邏輯確定頁面中的該頁面未充分被占用。在一些實施例中,緩沖器存儲器包括用于頁面中的每個頁面的參考計數(shù)值,該參考計數(shù)值指示該多個分組中的多少分組使用該頁面,并且該方法進一步包括:一旦頁面中的該頁面已經(jīng)被分配來存儲第一分組的分組數(shù)據(jù),如果頁面中的該頁面在存儲第一分組的分組數(shù)據(jù)之后被確定為未充分被占用,就將頁面中的該頁面的參考計數(shù)值設(shè)置為大于一的整數(shù)。在一些實施例中,大于一的該整數(shù)是二。在一些實施例中,該方法進一步包括:針對該多個分組中的其分組數(shù)據(jù)被分配給頁面中的該頁面的每個分組,如果頁面中的該頁面在存儲該分組的分組數(shù)據(jù)之后被確定為未充分被占用,則利用緩沖器邏輯來使頁面中的該頁面的參考計數(shù)值遞增一。在一些實施例中,該方法進一步包括:針對該多個分組中的其分組數(shù)據(jù)被分配給頁面中的該頁面的每個分組,如果頁面中的該頁面在存儲該分組的分組數(shù)據(jù)之后被確定為不再是未充分被占用,則利用緩沖器邏輯來避免使頁面中的該頁面的參考計數(shù)值遞增一。在一些實施例中,該方法進一步包括:利用緩沖器邏輯將用于頁面中的每個頁面的狀態(tài)數(shù)據(jù)存儲在緩沖器存儲器內(nèi),其中頁面中的每個頁面的狀態(tài)數(shù)據(jù)包括用于該頁面的分段中的每個分段的單獨狀態(tài)值。在一些實施例中,用于分段中的每個分段的狀態(tài)值包括如下組中的一項或多項,該組包括:所使用數(shù)據(jù)計數(shù)值,指示該分段的多少當前正存儲有數(shù)據(jù);分組起始值,指示分組中的一個分組的起始是否被存儲在該分段中;以及分組末尾值,指示分組中的一個分組的末尾是否被存儲在該分段中。在一些實施例中,該方法進一步包括:利用緩沖器邏輯來生成用于頁面中的一個或多個頁面上所存儲的分組中的每個分組的描述符,其中描述符包括頁面指示符和分段指示符,頁面指示符指示該分組的起始被存儲在頁面中的哪個頁面上,分段指示符指示該分組的起始被存儲在所指示的頁面的分段中的哪個分段上。在一些實施例中,該方法進一步包括:針對分組中的每個分組,在將分組的末尾存儲在這些頁面中的頁面的分段中的一個分段上之后,利用緩沖器邏輯來保留頁面的鄰近后續(xù)分段中的一個或多個分段作為保留分段,保留分段僅能夠在該分組的數(shù)據(jù)的大小增加時存儲來自該分組的數(shù)據(jù)。在一些實施例中,該方法進一步包括:在確定頁面中的該頁面是否未充分被占用時,利用緩沖器邏輯來將保留分段考慮為被占用,以使得保留分段不是未占用的剩余部分的一部分。
【附圖說明】
[0009]圖1圖示了根據(jù)一些實施例的分組處理設(shè)備上的分組處理系統(tǒng)。
[0010]圖2圖示了根據(jù)一些實施例的緩沖器管理器。
[0011]圖3圖示了根據(jù)一些實施例的示例性頁面和頁面狀態(tài)數(shù)據(jù)。
[0012]圖4圖示了根據(jù)一些實施例的示例性頁面描述符。
[0013]圖5圖示了根據(jù)一些實施例的用于兩個所接收的分組的示例性頁面狀態(tài)數(shù)據(jù)和描述符值。
[0014]圖6圖示了根據(jù)一些實施例的優(yōu)化分組處理系統(tǒng)的分組存儲器空間的方法。
【具體實施方式】
[0015]在以下描述中,為了解釋的目的闡述了許多細節(jié)。然而,本領(lǐng)域的技術(shù)人員將認識至IJ,本發(fā)明能夠無需使用這些具體細節(jié)而被實行。因此,本發(fā)明不意圖為被限制于所示出的實施例,而是將符合于與本文所描述的原理和特征相一致的最寬范圍。
[0016]實施例針對一種分組處理設(shè)備的緩沖器邏輯單元,其被配置為如果頁面上存儲的當前分組沒有完全填滿該頁面,則將單個的頁面分配給兩個或更多分組。作為結(jié)果,該緩沖器邏輯單元能夠通過減少頁面中的每個頁面上未使用空間的量,來減少被浪費的分組存儲器空間的量。進一步地,該系統(tǒng)通過在每個分組之后自動地實施保留的分段(reservedslot)而提供了如下的優(yōu)點:在處理期間負責(account for)分組數(shù)據(jù)擴充。此外,該系統(tǒng)提供了如下的優(yōu)點:存儲并更新特定于分段的頁面狀態(tài)數(shù)據(jù)以使得來自不同分組的分組數(shù)據(jù)能夠在相同頁面上被區(qū)分。最后,該系統(tǒng)提供了如下的優(yōu)點:設(shè)置并更新用于每個頁面的參考計數(shù)值以確保該頁面在它能夠完全被分配之前不被回收以免浪費未使用空間(例如,分段)O
[0017]圖1圖示了根據(jù)一些實施例的分組處理設(shè)備99上的分組處理系統(tǒng)100。如圖1中所示出的,分組處理系統(tǒng)100包括分組存儲器102、緩沖器存儲器104、讀取頁面客戶端108、以及寫入頁面客戶端110,它們都經(jīng)由網(wǎng)絡(luò)可操作地耦合在一起。分組處理設(shè)備99能夠是分組處理電路和/或微芯片。例如,設(shè)備99能夠是用于數(shù)據(jù)中心的(例如,機架交換機的頂部的)交換機微芯片、或者其他類型的分組處理電路或?qū)S眉呻娐?。在一些實施例中,設(shè)備99是軟件定義的網(wǎng)絡(luò)可編程的微芯片,其能夠被編程或者被定制為調(diào)整分組被處理的方式。替換地,設(shè)備99能夠是本領(lǐng)域中已知的其他類型的分組處理設(shè)備。分組存儲器102包括多個非瞬態(tài)計算機可讀物理存儲器單元,每個都具有一個或多個讀取端口和一個或多個寫入端口。當傳入分組的分組數(shù)據(jù)被存儲在分組存儲器102上時,它被存儲在一個或多個頁面上,該一個或多個頁面映射到分組存儲器102的存儲器單元中的一個或多個存儲器單元。作為結(jié)果,當分組數(shù)據(jù)被存儲在頁面中而不是全部依次地被存儲在分組存儲器102中的相同位置時,該分組數(shù)據(jù)跨分組存儲器的由該頁面所映射到的多個物理存儲器單元而被分布。在一些實施例中,分組存儲器102包括內(nèi)容可尋址存儲器(CAM) ο替換地,分組存儲器102能夠包括CAM、三態(tài)內(nèi)容可尋址存儲器(TCAM)、隨機訪問存儲器(RAM)、靜態(tài)隨機接入存儲器(SRAM)、本領(lǐng)域中已知的其他類型的存儲器、或者它們的組合。
[0018]圖2圖示了根據(jù)一些實施例的緩沖器管理器104。如圖2中所示出的,緩沖器管理器104包括緩沖器邏輯202、多個緩沖器存儲器單元204、一個或多個頁面狀態(tài)表格206、具有一個或多個頁面212的一個或多個頁面緩沖器208、以及一個或多個頁面計數(shù)器210。替換地,頁面計數(shù)器210能夠被省略。緩沖器邏輯202實施緩沖器管理器104的動作,包括向?qū)懭肟蛻舳?10分配頁面212以及從讀取客戶端108回收頁面212,以及實施對狀態(tài)表格206、頁面緩沖器208和頁面計數(shù)器210的對應(yīng)管理/更新。緩沖器邏輯202能夠包括被配置為執(zhí)行本文所描述的緩沖器管理器104功能的硬件、軟件、或者硬件和軟件的組合,其中該軟件被存儲在設(shè)備99的非瞬態(tài)計算機可讀介質(zhì)(例如,緩沖器存儲器)上。
[0019]頁面緩沖器208中的每個頁面緩沖器在頁面212(或者它們的表示)未被分配時存儲這些頁面的子集。當由于寫入頁面客戶端110進行請求,頁面需要被分配用以存儲傳入分組的分組數(shù)據(jù)時,緩沖器管理器104經(jīng)由緩沖器邏輯202從緩沖器208中的一個緩沖器選擇頁面212中的一個頁面(因為它們是未被分配的頁面212),將它從緩沖器208中移除并且將該頁面212分配給寫入頁面客戶端110,以用于存儲該傳入分組的分組數(shù)據(jù)的至少一部分。如圖3A中所示出的,頁面212中的每個頁面包括多個分段302(例如,分段O-分段η),每個分段構(gòu)成頁面212的一部分。如果在將該傳入分組的分組數(shù)據(jù)存儲在頁面212上之后,不是所有的分段302都已經(jīng)至少部分地被填充,則緩沖器管理器104能夠確定頁面212不是充分地滿。因此,緩沖器管理器104能夠?qū)㈨撁?12的剩余部分(包括頁面212的未使用分段302中的一個或多個分段)分配給后續(xù)傳入分組的分組數(shù)據(jù),并且重復這一模式直到頁面212被確定為充分填滿。稍后,當需要讀取該頁面上所存儲的一個或多個分組的分組數(shù)據(jù)的所有讀取頁面客戶端108都指示頁面212上所存儲的數(shù)據(jù)不再被需要從而該頁面準備好被回收時,緩沖器管理器104將頁面212添加回到相同的頁面緩沖器208中。因此,頁面緩沖器208能夠向緩沖器管理器104動態(tài)地指示每當需要頁面時就能夠被選擇的所有的當前未被分配的頁面(或者它們的部分)。以這種方式,當分組數(shù)據(jù)被緩沖器管理器104與寫入和讀取客戶端108、110協(xié)作地進行輸入、存儲、處理、以及從設(shè)備99輸出時,頁面212能夠連續(xù)地被分配和回收。
[0020]緩沖器存儲器單元204每個都是具有一個或多個讀取端口和一個或多個寫入端口(未示出)的非瞬態(tài)計算機可讀物理存儲器。作為結(jié)果,緩沖器存儲器單元204每個都能夠在每個周期獨立地使數(shù)據(jù)被寫入到它們中和/或從它們中被讀取出。頁面狀態(tài)表格206每個都被存儲在緩沖器存儲器單元204中的一個或多個緩沖器存儲器單元上并且包括多個條目,該多個條目用于存儲頁面212中的每個頁面在它們被分配給分組的分組數(shù)據(jù)時的頁面狀態(tài)數(shù)據(jù)304。如圖3Β中所示出的,用于頁面212中的每個頁面的狀態(tài)數(shù)據(jù)能夠包括頁面標識符314、參考計數(shù)值316、以及下一頁面標識符306。進一步地,對于相關(guān)聯(lián)的頁面212的分段302中的每個分段,狀態(tài)數(shù)據(jù)302能夠包括所使用的數(shù)據(jù)計數(shù)308、分組起始指示符310、以及分組末尾指示符312。頁面標識符314唯一地識別與頁面狀態(tài)數(shù)據(jù)304相關(guān)聯(lián)的頁面212,以便將頁面212與所存儲的狀態(tài)數(shù)據(jù)304相關(guān)。參考計數(shù)值316指示先前分配的頁面212何時不再處于使用中并且因此可以被回收。具體地,在頁面212已經(jīng)被緩沖器管理器104完全分配之后,參考計數(shù)值316指示具有頁面212上所存儲的不同分組數(shù)據(jù)的分組的數(shù)目,從而當參考計數(shù)值316為零時,緩沖器管理器104能夠?qū)㈨撁?12回收回到相關(guān)聯(lián)的緩沖器208中。例如,如果第一分組的分組數(shù)據(jù)被存儲在頁面212的前兩個分段302上,并且第二分組的分組數(shù)據(jù)被存儲在頁面212的分段302的剩余部分上,則用于該頁面212的參考計數(shù)值316將等于二(對于每個分組是一)。因此,僅當這兩個分組都不再是正在使用頁面212時,值306才將被遞減兩次而等于零并且頁面212被讀取以便回收。
[0021]下一頁面標識符306指示下一頁面(如果有的話),該下一頁面存儲不完全適合于在當前頁面上的分組的剩余分組數(shù)據(jù)的至少一部分。換句話說,如果頁面212的最后分段302被填滿,但是將最后分段302填滿的分組仍然有剩余分組數(shù)據(jù)要被存儲,則下一頁面標識符306指示該分組的剩余分組數(shù)據(jù)至少部分地被存儲在其中的下一頁面212。因此,下一頁面標識符306的序列能夠匹配于與大分組相對應(yīng)的頁面212的鏈表。在一些實施例中,下一頁面標識符306能夠是與下一頁面標識符306正在識別的頁面標識符314相同的值。替換地,能夠使用不同的識別值。所使用的數(shù)據(jù)計數(shù)308指示分段302的多少被分組數(shù)據(jù)占用。在一些實施例中,所使用的數(shù)據(jù)計數(shù)308能夠是當前被存儲在頁面212的分段302上的字節(jié)的數(shù)目。替換地,所使用的數(shù)據(jù)計數(shù)308能夠是指示分段302的多少被分組數(shù)據(jù)占用的其他單位(例如,千字節(jié))或者值(例如,百分比、數(shù)字)。分組起始指示符310指示是否分組的分組數(shù)據(jù)開始于頁面212的該分段302內(nèi)。類似地,分組末尾指示符312指示是否分組的分組數(shù)據(jù)結(jié)束于頁面212的該分段302內(nèi)。因此,特定于分段的狀態(tài)數(shù)據(jù)308、310、312—起指示了頁面212的分段302中的哪些分段和每個分段的多少被分組的分組數(shù)據(jù)占用,從而相同頁面212上的來自不同分組的分組數(shù)據(jù)能夠被區(qū)分。在一些實施例中,頁面狀態(tài)數(shù)據(jù)304還能夠包括分組數(shù)據(jù)內(nèi)所引發(fā)的錯誤和/或本領(lǐng)域中已知的其他類型的分組/頁面數(shù)據(jù)。在一些實施例中,緩沖器管理器104包括用于頁面緩沖器208中的每個頁面緩沖器的單獨的狀態(tài)表格206,從而每個表格206與緩沖器208中的不同的一個緩沖器成對。
[0022]在操作中,每次寫入頁面客戶端110接收到傳入分組時,它從緩沖器管理器104請求頁面212來存儲該分組的分組數(shù)據(jù)。響應(yīng)于該請求,緩沖器管理器104從緩沖器208中的一個緩沖器選擇頁面212并且分配給寫入頁面客戶端110以用于該分組的分組數(shù)據(jù)。一經(jīng)接收到所分配的頁面212,寫入頁面客戶端110就將分組數(shù)據(jù)寫入在分組存儲器102的所分配的頁面212上,并且利用緩沖器管理器104(基于所分配的頁面212和該分組)將頁面狀態(tài)數(shù)據(jù)302寫入到對應(yīng)的狀態(tài)表格206用于存儲。如果分組數(shù)據(jù)是(自從頁面212上次被回收以來)分配給頁面212的第一分組數(shù)據(jù),并且緩沖器管理器104確定頁面212在存儲這個第一分組的分組數(shù)據(jù)之后未充分被填滿,則緩沖器管理器104將頁面212的狀態(tài)數(shù)據(jù)304的參考計數(shù)316設(shè)置為大于一的整數(shù)。例如,緩沖器管理器104將參考計數(shù)316設(shè)置為二。具體地,因為頁面212被確定為未充分被填滿,所以緩沖器管理器104知道它將需要把頁面212的未使用的分段302中的一個或多個分段進一步分配給一個或多個后續(xù)分組,直到頁面212充分被填滿。因此,預期到來自至少一個后續(xù)分組的分組數(shù)據(jù)被存儲在頁面212上而使得來自至少兩個不同分組的總分組數(shù)據(jù)被存儲在頁面212上,緩沖器管理器104能夠?qū)⒖加嫈?shù)316設(shè)置為大于一的數(shù)字。對參考計數(shù)值306的這種“預期的”遞增提供了如下的益處:幫助確保頁面212在全部所存儲的分組數(shù)據(jù)已經(jīng)被取回之前(例如,在第一分組在頁面212的剩余部分已經(jīng)被指配給后續(xù)分組之前就被處理的情況中)不被回收。然而,如果這是(自從頁面212上次被回收以來)分配給頁面212的第一分組數(shù)據(jù),但是緩沖器管理器104確定頁面212在存儲這個分組的分組數(shù)據(jù)之后充分被填滿,則緩沖器管理器104將第一頁面212的狀態(tài)數(shù)據(jù)304的參考計數(shù)316設(shè)置為一,因為沒有進一步的分組數(shù)據(jù)將被存儲在頁面212上。
[0023]另外,如果分組數(shù)據(jù)不是(自從頁面212上次被回收以來)分配給頁面212的第一分組數(shù)據(jù),并且緩沖器管理器104確定頁面212在存儲這一后續(xù)分組的分組數(shù)據(jù)之后未充分被填滿,則緩沖器管理器104使頁面212的狀態(tài)數(shù)據(jù)304的參考計數(shù)316遞增一(例如,從2到3)。具體地,緩沖器管理器104已經(jīng)確保了在使用于第一分組的參考計數(shù)316遞增時頁面212不被回收,因此對于仍然沒有充分填滿頁面212的后續(xù)分組而言僅遞增一是必要的。最后,如果分組數(shù)據(jù)不是(自從頁面212上次被回收以來)分配給頁面212的第一分組數(shù)據(jù),但是緩沖器管理器104確定頁面212在存儲這個分組的分組數(shù)據(jù)之后充分被填滿,則緩沖器管理器104不改變第一頁面212的狀態(tài)數(shù)據(jù)304的參考計數(shù)316。這是因為這個分組數(shù)據(jù)將是存儲在頁面212上的最后的分組數(shù)據(jù),如上文所描述的,當參考計數(shù)值306在第一分組數(shù)據(jù)被分配了頁面212時被遞增到大于一的整數(shù)時,這已經(jīng)在參考計數(shù)值306中被說明(account for)。因此,系統(tǒng)100提供了如下的益處:使得每個頁面212能夠存儲來自多個分組的分組數(shù)據(jù),由此增加了分組存儲器102中的分組數(shù)據(jù)存儲的效率。另外,系統(tǒng)100提供了如下的益處:確保頁面212在它已經(jīng)充分被填滿之前不被回收,否則將會導致系統(tǒng)100內(nèi)的錯誤以及可能的分組數(shù)據(jù)丟失。
[0024]在一些實施例中,如果頁面212的預定數(shù)目的(例如,一個)分段302在存儲分組數(shù)據(jù)之后沒有被使用,則緩沖器管理器104確定頁面212未充分被填滿。因此,在一個或多個分段302被分配給每個分組的分組數(shù)據(jù)之后,如果該預定數(shù)目的分段302仍然沒有正在被使用,則緩沖器管理器104確定頁面212未充分被填滿并且將剩余的未使用的分段302中的一個或多個分段分配給后續(xù)分組。進一步地,在一些實施例中,當確定分段302是否被使用用于確定頁面212是否充分被填滿的目的時,緩沖器管理器104能夠把在存儲有頁面212上所存儲的最后分組數(shù)據(jù)的末尾的分段302之后的預定數(shù)目的分段302考慮為被使用。具體地,因為在設(shè)備99內(nèi)的處理期間,分組數(shù)據(jù)有時變得更大,在存儲每個分組的末尾的分段302之后的該預定數(shù)目的分段302能夠被保留,假如分組數(shù)據(jù)在處理之后需要擴充到這些保留分段302中的話。因此,當確定頁面212是否充分被填滿時,緩沖器管理器104將保留分段302考慮為是滿的或者被使用,并且如果頁面212仍然未充分被填滿,則保留分段302不被分配給來自下一分組的分組數(shù)據(jù)。作為結(jié)果,系統(tǒng)100能夠有利地以保留分段302的形式來提供存儲器102內(nèi)的緩沖器,這些保留分段302使得分組數(shù)據(jù)能夠擴充而不覆寫任何后續(xù)分組數(shù)據(jù)。
[0025]對于分組中的每個分組,緩沖器管理器104還生成如圖4中所示出的頁面描述符400 ο頁面描述符400包括分組標識符402、頁面標識符404、以及分段標識符406。分組標識符402識別分組,頁面標識符404識別存儲分組的起始的頁面212,并且分段標識符406識別所識別頁面212的存儲有分組的分組數(shù)據(jù)的起始的分段302(例如,如由分組指示符312的起始所指示)。這一頁面描述符400能夠被發(fā)送給設(shè)備99的處理引擎和/或讀取頁面客戶端108以用于按照需要地在處理和/或讀取出來自分組存儲器102的分組數(shù)據(jù)時使用。在一些實施例中,頁面標識符404能夠與狀態(tài)數(shù)據(jù)304的頁面標識符314是相同的。替換地,能夠使用不同的標識符。同時,當讀取頁面客戶端108準備好輸出傳出分組時,它們讀取與這些傳出分組相關(guān)聯(lián)的頁面狀態(tài)數(shù)據(jù)302,如分組的描述符400所指示的,其被存儲在緩沖器管理器104上?;谶@一頁面狀態(tài)數(shù)據(jù)302,讀取頁面客戶端108能夠定位并且讀取來自分組數(shù)據(jù)被存儲的分組存儲器102的頁面或多個頁面212的分組數(shù)據(jù)中的一些或全部。作為結(jié)果,讀取頁面客戶端108然后能夠輸出傳出分組的分組數(shù)據(jù)。每次讀取頁面客戶端108指示頁面上所存儲的分組數(shù)據(jù)已經(jīng)被讀取從而它不再需要被存儲用于該分組時,緩沖器管理器104把用于緩沖器存儲器內(nèi)的頁面212的參考計數(shù)值316遞減。作為結(jié)果,當參考計數(shù)值316達到零時,緩沖器管理器104能夠?qū)㈨撁?12回收回到相關(guān)聯(lián)的頁面緩沖器208中作為在需要時能夠被重新分配的當前未使用的頁面。
[0026]另外,應(yīng)當注意,當一個或多個分組具有被存儲在頁面212上的一部分匹配分組數(shù)據(jù)時,頁面212的參考計數(shù)值316也能夠被遞增。例如,這能夠針對多播或廣播分組而發(fā)生,其中替代將分組數(shù)據(jù)的匹配部分存儲兩次,參考計數(shù)值316能夠被緩沖器管理器104增加以使得頁面212不被回收,直到具有匹配數(shù)據(jù)和頁面212上的任何其他數(shù)據(jù)的所有分組已經(jīng)被處理并且不再需要該數(shù)據(jù)。進一步地,應(yīng)當注意,當存儲來自多個分組的分組數(shù)據(jù)的頁面212的狀態(tài)針對該多個分組的后續(xù)分組而被寫入時,不需要部分地寫入對于由該多個分組的先前分組的分組數(shù)據(jù)占用的先前分段而言的所使用數(shù)據(jù)計數(shù)308、分組起始指示符310、和/或分組末尾指示符312的值。這是因為表格206內(nèi)的這一頁面狀態(tài)數(shù)據(jù)302的所有寫入都由相同源(例如,寫入頁面客戶端110)來執(zhí)行,以使得后續(xù)寫入能夠包含先前寫入中包括用于新分組數(shù)據(jù)的任何附加內(nèi)容而被寫入的相同值。因此,系統(tǒng)100不要求對存儲相關(guān)聯(lián)的狀態(tài)表格206的緩沖器存儲器單元204的端口的多種訪問(讀取-修改-寫入)類型,而是單個寫入訪問。換句話說,系統(tǒng)100不要求對狀態(tài)表格的額外讀取。
[0027]圖5圖示了根據(jù)一些實施例的用于兩個所接收的分組的示例性頁面狀態(tài)數(shù)據(jù)和描述符值。如圖5中所示出的,分組A首先被接收并且存儲在頁面P的第一分段O中,并且接下來的兩個分段302是用于可能的分組數(shù)據(jù)增長的保留分段。作為結(jié)果,用于分組A的描述符具有指向頁面P的頁面標識符404、以及指向存儲有分組A的分組數(shù)據(jù)的開端的分段O的頁面分段值。進一步地,在頁面P的狀態(tài)數(shù)據(jù)304內(nèi),分段O的所使用數(shù)據(jù)計數(shù)被設(shè)置為60字節(jié),并且分段I和2被設(shè)置為O字節(jié)以反映分段0、1和2的多少被分組A填充,并且分段O的分組起始指示符和分組末尾指示符兩者都被設(shè)置為I以指示分組A開始和結(jié)束于頁面P的分段O中。然后,因為分段3未被分組A使用,所以緩沖器管理器104能夠確定頁面P未充分被填滿并且將參考計數(shù)值316設(shè)置為大于一的整數(shù)(例如,二)以反映對于將被存儲在頁面P上的進一步分組數(shù)據(jù)的需求。然后,當分組B請求頁面212時,緩沖器管理器104能夠通過將頁面P的未使用的分段3分配給分組B來開始。作為結(jié)果,用于分組B的描述符具有指向頁面P的頁面標識符404、以及指向存儲有分組B的分組數(shù)據(jù)的開端的分段3的頁面分段值。進一步地,在頁面P的狀態(tài)數(shù)據(jù)304內(nèi),分段3的所使用數(shù)據(jù)計數(shù)被設(shè)置為64字節(jié)以反映分段3的多少被分組B填充,并且分段3的分組起始指示符被設(shè)置為I以指示分組B開始于頁面P的分段3中。頁面P然后能夠被確定為充分被填滿,從而緩沖器管理器104不把用于頁面P的參考計數(shù)值316遞增(因為沒有更多的分組數(shù)據(jù)能夠被存儲在頁面P上)。此外,因為分組B的更多分組數(shù)據(jù)仍然需要被存儲,所以緩沖器管理器104能夠分配新的頁面Q以存儲分組B的更多數(shù)據(jù),并且同時設(shè)置頁面P的下一頁面標識符306以將頁面Q識別為所選擇的下一頁面212。然后,類似于在頁面P中,分組B的分組數(shù)據(jù)的剩余部分被存儲在頁面Q中,相關(guān)聯(lián)的頁面狀態(tài)數(shù)據(jù)304被添加到相關(guān)聯(lián)的狀態(tài)表格206內(nèi)的頁面Q條目,并且參考計數(shù)值316僅被遞增到I以反映頁面Q(包括保留分段)被分組B的剩余分組數(shù)據(jù)充分填滿。因此,系統(tǒng)100能夠既利用保留分段來負責分組數(shù)據(jù)擴充,并且又將單個的頁面分配給來自多個不同分組的不同/非匹配的分組數(shù)據(jù)。
[0028]圖6圖示了根據(jù)一些實施例的優(yōu)化分組處理系統(tǒng)100內(nèi)的分組存儲器空間的方法。如圖6中所示出的,在步驟602處,緩沖器管理器104(經(jīng)由緩沖器邏輯202)分配頁面212中的一個頁面來存儲第一分組的分組數(shù)據(jù)。在步驟604處,緩沖器管理器104確定頁面212中的該頁面是否未充分被第一分組的分組數(shù)據(jù)占用。在一些實施例中,如果未占用的剩余部分包括頁面212中的該頁面的分段302中的至少一個分段,則緩沖器管理器104確定頁面212中的該頁面未充分被占用。在步驟606處,如果頁面212被緩沖器管理器104確定為未充分被分組數(shù)據(jù)占用,則緩沖器管理器104分配頁面212的未占用的剩余部分(例如,分段302)的至少一部分來存儲一個或多個另外分組的分組數(shù)據(jù)。因此,該方法提供了如下的優(yōu)點:使得單個頁面能夠被分配給多個不同分組的不同分組數(shù)據(jù)。
[0029]在一些實施例中,該方法進一步包括:一旦頁面212中的該頁面已經(jīng)被分配來存儲第一分組的分組數(shù)據(jù),如果頁面中的該頁面在存儲第一分組的分組數(shù)據(jù)之后被確定為未充分被占用,就利用緩沖器管理器104將頁面中的該頁面的參考計數(shù)值316設(shè)置為大于一的整數(shù)(例如,二)。在一些實施例中,該方法進一步包括:針對該多個分組中的其分組數(shù)據(jù)被分配給頁面212中的該頁面的每個分組,如果頁面212在存儲該分組的分組數(shù)據(jù)之后被確定為未充分被占用,則使頁面212中的該頁面的參考計數(shù)值316遞增一。在一些實施例中,該方法進一步包括:針對該多個分組中的其分組數(shù)據(jù)被分配給頁面212中的該頁面的每個分組,如果頁面212在存儲該分組的分組數(shù)據(jù)之后被確定為不再是未充分被占用,則避免使頁面中的該頁面的參考計數(shù)值316遞增一。在一些實施例中,該方法進一步包括:將用于頁面212中的每個頁面的狀態(tài)數(shù)據(jù)304存儲在緩沖器存儲器204內(nèi)。在一些實施例中,該方法進一步包括:生成用于分組中的每個分組的描述符400,其中描述符400包括頁面指示符404和分段指示符406。在一些實施例中,該方法進一步包括:針對每個分組,在將分組的末尾存儲在頁面212的分段302中的一個分段上之后,保留頁面212的鄰近后續(xù)分段302中的一個或多個分段作為保留分段302,保留分段302用于如果該分組的數(shù)據(jù)的大小增加則存儲來自該分組的數(shù)據(jù)。在一些實施例中,該方法進一步包括:在確定頁面212中的該頁面是否未充分被占用時,將保留分段302考慮為被占用,以使得保留分段302不是未占用的剩余部分的一部分。替換地,在一些實施例中,上述步驟中的一個或多個步驟能夠被省略。
[0030]本文所描述的分組處理系統(tǒng)具有許多優(yōu)點。特別地,該系統(tǒng)提供了如下的優(yōu)點:通過將單個的頁面分配給來自多個不同分組的不同/非匹配的分組數(shù)據(jù),由此不浪費每個頁面的未使用部分,來優(yōu)化分組存儲器空間。進一步地,該系統(tǒng)提供了如下的優(yōu)點:通過在每個分組之后自動地實施保留分段,來負責在處理期間的分組數(shù)據(jù)擴充。此外,該系統(tǒng)提供了如下的優(yōu)點:存儲并更新特定于分段的頁面狀態(tài)數(shù)據(jù),從而來自不同分組的分組數(shù)據(jù)能夠在相同頁面上被區(qū)分。最后,該系統(tǒng)提供了如下的優(yōu)點:設(shè)置并更新用于每個頁面的參考計數(shù)值,以確保該頁面在它能夠完全被分配之前不被回收以便不浪費未使用的空間(例如,分段)O
[0031]雖然已經(jīng)參考許多具體細節(jié)描述了本發(fā)明,但是本領(lǐng)域的技術(shù)人員將認識到,不偏離本發(fā)明的精神,本發(fā)明能夠以其他的具體形式來具體化。例如,盡管本文所描述的不同方法和操作描述了特定順序的步驟,但是也設(shè)想到其他順序、以及省略步驟中的一個或多個步驟和/或添加一個或多個新的步驟。此外,盡管上述方法和操作在本文中分離地被描述,但是方法和操作中的一個或多個方法和操作能夠(以整體或部分地)被組合。因此,本領(lǐng)域的技術(shù)人員將理解,本發(fā)明將不被前述說明性的細節(jié)所限制,而是將由所附權(quán)利要求來限定。
【主權(quán)項】
1.一種在分組處理設(shè)備上的分組處理系統(tǒng),所述系統(tǒng)包括: 包括多個物理存儲器單元的非瞬態(tài)計算機可讀分組存儲器,所述多個物理存儲器單元邏輯地被劃分為多個頁面,從而所述頁面中的每個頁面定義所述物理存儲器單元的分離部分;以及 至少部分地被存儲在非瞬態(tài)計算機可讀緩沖器存儲器上的緩沖器邏輯,其中所述緩沖器邏輯被配置為: 分配所述頁面中的一個頁面來存儲多個分組中的第一分組的分組數(shù)據(jù);以及 如果所述頁面中的所述一個頁面被確定為未充分被所述第一分組的分組數(shù)據(jù)占用,則分配所述頁面中的所述一個頁面的未占用的剩余部分的至少一分部分來存儲所述多個分組中的一個或多個另外分組的分組數(shù)據(jù),以使得所述頁面中的所述一個頁面被分配給所述多個分組中的兩個或更多分組。2.根據(jù)權(quán)利要求1所述的系統(tǒng),其中所述頁面中的每個頁面包括多個分段,并且如果所述未占用的剩余部分包括所述頁面中的所述一個頁面的分段中的至少一個分段,則緩沖器存儲器邏輯確定所述頁面中的所述一個頁面未充分被占用。3.根據(jù)權(quán)利要求2所述的系統(tǒng),其中所述緩沖器存儲器包括用于所述頁面中的每個頁面的參考計數(shù)值,所述參考計數(shù)值指示所述多個分組中的多少分組使用所述頁面,并且另外其中所述緩沖器邏輯被配置為,一旦所述頁面中的所述一個頁面已經(jīng)被分配來存儲所述第一分組的分組數(shù)據(jù),如果所述頁面中的所述一個頁面在存儲所述第一分組的分組數(shù)據(jù)之后被確定為未充分被占用,就將所述頁面中的所述一個頁面的所述參考計數(shù)值設(shè)置為大于一的整數(shù)。4.根據(jù)權(quán)利要求3所述的系統(tǒng),其中大于一的所述整數(shù)是二。5.根據(jù)權(quán)利要求4所述的系統(tǒng),其中針對所述多個分組中的其分組數(shù)據(jù)被分配給所述頁面中的所述一個頁面的每個分組,所述緩沖器邏輯被配置為,如果所述頁面中的所述一個頁面在存儲所述分組的分組數(shù)據(jù)之后被確定為未充分被占用,則使所述頁面中的所述一個頁面的所述參考計數(shù)值遞增一。6.根據(jù)權(quán)利要求5所述的系統(tǒng),其中針對所述多個分組中的其分組數(shù)據(jù)被分配給所述頁面中的所述一個頁面的每個分組,所述緩沖器邏輯被配置為,如果所述頁面中的所述一個頁面在存儲所述分組的分組數(shù)據(jù)之后被確定為不再是未充分被占用,則避免使所述頁面中的所述一個頁面的所述參考計數(shù)值遞增一。7.根據(jù)權(quán)利要求6所述的系統(tǒng),其中所述緩沖器存儲器存儲用于所述頁面中的每個頁面的狀態(tài)數(shù)據(jù),其中所述頁面中的每個頁面的所述狀態(tài)數(shù)據(jù)包括用于所述頁面的分段中的每個分段的單獨狀態(tài)值。8.根據(jù)權(quán)利要求7所述的系統(tǒng),其中用于分段中的每個分段的所述狀態(tài)值包括如下組中的一項或多項,所述組包括:所使用數(shù)據(jù)計數(shù)值,指示所述分段的多少當前正存儲有數(shù)據(jù);分組起始值,指示所述分組中的一個分組的起始是否被存儲在所述分段中;以及分組末尾值,指示所述分組中的一個分組的末尾是否被存儲在所述分段中。9.根據(jù)權(quán)利要求8所述的系統(tǒng),其中所述緩沖器邏輯被配置為生成用于所述頁面中的一個或多個頁面上所存儲的所述分組中的每個分組的描述符,其中所述描述符包括頁面指示符和分段指示符,所述頁面指示符指示所述分組的起始被存儲在所述頁面中的哪個頁面上,所述分段指示符指示所述分組的起始被存儲在所指示的頁面的分段中的哪個分段上。10.根據(jù)權(quán)利要求9所述的系統(tǒng),其中針對所述分組中的每個分組,在將所述分組的末尾存儲在所述頁面中的頁面的分段中的一個分段上之后,所述緩沖器邏輯保留所述頁面的鄰近后續(xù)分段中的一個或多個分段作為保留分段,所述保留分段僅能夠在所述分組的數(shù)據(jù)的大小增加時存儲來自所述分組的數(shù)據(jù)。11.根據(jù)權(quán)利要求10所述的系統(tǒng),其中在確定所述頁面中的所述一個頁面是否未充分被占用時,所述緩沖器邏輯將所述保留分段考慮為被占用,以使得所述保留分段不是所述未占用的剩余部分的一部分。12.—種被存儲在非瞬態(tài)計算機可讀緩沖器存儲器上的緩沖器邏輯單元,其中所述緩沖器邏輯被配置為:分配多個頁面中的一個頁面來存儲多個分組中的第一分組的分組數(shù)據(jù);以及如果所述頁面中的所述一個頁面被確定為未充分被所述第一分組的分組數(shù)據(jù)占用,則分配所述頁面中的所述一個頁面的未占用的剩余部分的至少一分部分來存儲所述多個分組中的一個或多個另外分組的分組數(shù)據(jù),以使得所述頁面中的所述一個頁面被分配給所述多個分組中的兩個或更多分組,其中所述多個頁面中的每個頁面包括多個分段并且定義多個物理存儲器單元的分離部分。13.根據(jù)權(quán)利要求12所述的緩沖器邏輯單元,其中所述頁面中的每個頁面包括多個分段,并且如果所述未占用的剩余部分包括所述頁面中的所述一個頁面的分段中的至少一個分段,則所述緩沖器存儲器邏輯確定所述頁面中的所述一個頁面未充分被占用。14.根據(jù)權(quán)利要求13所述的緩沖器邏輯單元,其中所述緩沖器存儲器包括用于所述頁面中的每個頁面的參考計數(shù)值,所述參考計數(shù)值指示所述多個分組中的多少分組使用所述頁面,并且另外其中所述緩沖器邏輯被配置為,一旦所述頁面中的所述一個頁面已經(jīng)被分配來存儲所述第一分組的分組數(shù)據(jù),如果所述頁面中的所述一個頁面在存儲所述第一分組的分組數(shù)據(jù)之后被確定為未充分被占用,就將所述頁面中的所述一個頁面的所述參考計數(shù)值設(shè)置為大于一的整數(shù)。15.根據(jù)權(quán)利要求14所述的緩沖器邏輯單元,其中大于一的所述整數(shù)是二。16.根據(jù)權(quán)利要求15所述的緩沖器邏輯單元,其中針對所述多個分組中的其分組數(shù)據(jù)被分配給所述頁面中的所述一個頁面的每個分組,所述緩沖器邏輯被配置為,如果所述頁面中的所述一個頁面在存儲所述分組的分組數(shù)據(jù)之后被確定為未充分被占用,則使所述頁面中的所述一個頁面的所述參考計數(shù)值遞增一。17.根據(jù)權(quán)利要求16所述的緩沖器邏輯單元,其中針對所述多個分組中的其分組數(shù)據(jù)被分配給所述頁面中的所述一個頁面的每個分組,所述緩沖器邏輯被配置為,如果所述頁面中的所述一個頁面在存儲所述分組的分組數(shù)據(jù)之后被確定為不再是未充分被占用,則避免使所述頁面中的所述一個頁面的所述參考計數(shù)值遞增一。18.根據(jù)權(quán)利要求17所述的緩沖器邏輯單元,其中所述緩沖器存儲器存儲用于所述頁面中的每個頁面的狀態(tài)數(shù)據(jù),其中所述頁面中的每個頁面的所述狀態(tài)數(shù)據(jù)包括用于所述頁面的分段中的每個分段的單獨狀態(tài)值。19.根據(jù)權(quán)利要求18所述的緩沖器邏輯單元,其中用于分段中的每個分段的所述狀態(tài)值包括如下組中的一項或多項,所述組包括:所使用數(shù)據(jù)計數(shù)值,指示所述分段的多少當前正存儲有數(shù)據(jù);分組起始值,指示所述分組中的一個分組的起始是否被存儲在所述分段中;以及分組末尾值,指示所述分組中的一個分組的末尾是否被存儲在所述分段中。20.根據(jù)權(quán)利要求19所述的緩沖器邏輯單元,其中所述緩沖器邏輯被配置為生成用于所述頁面中的一個或多個頁面上所存儲的所述分組中的每個分組的描述符,其中所述描述符包括頁面指示符和分段指示符,所述頁面指示符指示所述分組的起始被存儲在所述頁面中的哪個頁面上,所述分段指示符指示所述分組的起始被存儲在所指示的頁面的分段中的哪個分段上。21.根據(jù)權(quán)利要求20所述的緩沖器邏輯單元,其中針對所述分組中的每個分組,在將所述分組的末尾存儲在所述頁面中的頁面的分段中的一個分段上之后,所述緩沖器邏輯保留所述頁面的鄰近后續(xù)分段中的一個或多個分段作為保留分段,所述保留分段僅能夠在所述分組的數(shù)據(jù)的大小增加時存儲來自所述分組的數(shù)據(jù)。22.根據(jù)權(quán)利要求21所述的緩沖器邏輯單元,其中在確定所述頁面中的所述一個頁面是否未充分被占用時,所述緩沖器邏輯將所述保留分段考慮為被占用,以使得所述保留分段不是所述未占用的剩余部分的一部分。23.—種優(yōu)化分組處理系統(tǒng)內(nèi)的分組存儲器空間的方法,所述分組處理系統(tǒng)包括非瞬態(tài)計算機可讀分組存儲器,所述非瞬態(tài)計算機可讀分組存儲器包括多個物理存儲器單元,所述多個物理存儲器單元邏輯地被劃分為多個頁面,從而所述頁面中的每個頁面定義所述物理存儲器單元的分離部分,所述方法包括: 利用緩沖器邏輯來分配所述頁面中的一個頁面以存儲多個分組中的第一分組的分組數(shù)據(jù),其中所述緩沖器邏輯至少部分地被存儲在非瞬態(tài)計算機可讀緩沖器存儲器上; 利用所述緩沖器邏輯來確定所述頁面中的所述一個頁面是否未充分被所述第一分組的分組數(shù)據(jù)占用;以及 如果所述頁面中的所述一個頁面被所述緩沖器邏輯確定為未充分被所述第一分組的分組數(shù)據(jù)占用,則利用所述緩沖器邏輯來分配所述頁面中的所述一個頁面的未占用的剩余部分的至少一分部分以存儲所述多個分組中的一個或多個另外分組的分組數(shù)據(jù),以使得所述頁面中的所述一個頁面被分配給所述多個分組中的兩個或更多分組。24.根據(jù)權(quán)利要求23所述的方法,其中所述頁面中的每個頁面包括多個分段,并且如果所述未占用的剩余部分包括所述頁面中的所述一個頁面的分段中的至少一個分段,則緩沖器存儲器邏輯確定所述頁面中的所述一個頁面未充分被占用。25.根據(jù)權(quán)利要求24所述的方法,其中所述緩沖器存儲器包括用于所述頁面中的每個頁面的參考計數(shù)值,所述參考計數(shù)值指示所述多個分組中的多少分組使用所述頁面,所述方法進一步包括:一旦所述頁面中的所述一個頁面已經(jīng)被分配來存儲所述第一分組的分組數(shù)據(jù),如果所述頁面中的所述一個頁面在存儲所述第一分組的分組數(shù)據(jù)之后被確定為未充分被占用,則利用所述緩沖器邏輯將所述頁面中的所述一個頁面的所述參考計數(shù)值設(shè)置為大于一的整數(shù)。26.根據(jù)權(quán)利要求25所述的方法,其中大于一的所述整數(shù)是二。27.根據(jù)權(quán)利要求26所述的方法,進一步包括:針對所述多個分組中的其分組數(shù)據(jù)被分配給所述頁面中的所述一個頁面的每個分組,如果所述頁面中的所述一個頁面在存儲所述分組的分組數(shù)據(jù)之后被確定為未充分被占用,則利用所述緩沖器邏輯來使所述頁面中的所述一個頁面的所述參考計數(shù)值遞增一。28.根據(jù)權(quán)利要求27所述的方法,進一步包括:針對所述多個分組中的其分組數(shù)據(jù)被分配給所述頁面中的所述一個頁面的每個分組,如果所述頁面中的所述一個頁面在存儲所述分組的分組數(shù)據(jù)之后被確定為不再是未充分被占用,則利用所述緩沖器邏輯來避免使所述頁面中的所述一個頁面的所述參考計數(shù)值遞增一。29.根據(jù)權(quán)利要求28所述的方法,進一步包括:利用所述緩沖器邏輯將用于所述頁面中的每個頁面的狀態(tài)數(shù)據(jù)存儲在所述緩沖器存儲器內(nèi),其中所述頁面中的每個頁面的所述狀態(tài)數(shù)據(jù)包括用于所述頁面的分段中的每個分段的單獨狀態(tài)值。30.根據(jù)權(quán)利要求29所述的方法,其中用于分段中的每個分段的所述狀態(tài)值包括如下組中的一項或多項,所述組包括:所使用數(shù)據(jù)計數(shù)值,指示所述分段的多少當前正存儲有數(shù)據(jù);分組起始值,指示所述分組中的一個分組的起始是否被存儲在所述分段中;以及分組末尾值,指示所述分組中的一個分組的末尾是否被存儲在所述分段中。31.根據(jù)權(quán)利要求30所述的方法,進一步包括:利用所述緩沖器邏輯來生成用于所述頁面中的一個或多個頁面上所存儲的所述分組中的每個分組的描述符,其中所述描述符包括頁面指示符和分段指示符,所述頁面指示符指示所述分組的起始被存儲在所述頁面中的哪個頁面上,所述分段指示符指示所述分組的起始被存儲在所指示的頁面的分段中的哪個分段上。32.根據(jù)權(quán)利要求31所述的方法,進一步包括:針對所述分組中的每個分組,在將所述分組的末尾存儲在所述頁面中的頁面的分段中的一個分段上之后,保留所述頁面的鄰近后續(xù)分段中的一個或多個分段作為保留分段,所述保留分段僅能夠在所述分組的數(shù)據(jù)的大小增加時利用所述緩沖器邏輯來存儲來自所述分組的數(shù)據(jù)。33.根據(jù)權(quán)利要求32所述的方法,進一步包括:在確定所述頁面中的所述一個頁面是否未充分被占用時,利用所述緩沖器邏輯來將所述保留分段考慮為被占用,以使得所述保留分段不是所述未占用的剩余部分的一部分。
【文檔編號】G06F12/02GK106021121SQ201610188963
【公開日】2016年10月12日
【申請日】2016年3月29日
【發(fā)明人】E·穆索爾
【申請人】凱為公司