專(zhuān)利名稱(chēng):緩沖器高速緩沖方法及其裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種文件系統(tǒng),更具體的涉及一種緩沖器高速緩沖控制方法和其裝置。
在切換系統(tǒng)中通常提供有通訊信道部分12,用于控制電話用戶(hù)10之間的電話線路,如
圖1中所示。通過(guò)諸如計(jì)算機(jī)的中央處理部分14對(duì)通訊路由部分12進(jìn)行控制。即,中央控制部分16從主存儲(chǔ)部分18和輔助存儲(chǔ)部分20讀取程序并解釋和執(zhí)行每個(gè)程序的命令。因此,通過(guò)將需要的指令和數(shù)據(jù)發(fā)送到通訊路由部分12,從而可對(duì)諸如計(jì)費(fèi)功能和呼叫處理功能等所有的功能進(jìn)行控制。
同樣,維護(hù)和操作部分(控制臺(tái))22與中央處理部分16進(jìn)行數(shù)據(jù)交換。
在此切換系統(tǒng)中,可使用各種類(lèi)型的文件。在此傳統(tǒng)的切換系統(tǒng)中,使用具有預(yù)定塊尺寸的高速緩沖存儲(chǔ)器進(jìn)行高速緩沖操作。參考圖2,將描述傳統(tǒng)切換系統(tǒng)中的通常的文件操作。假設(shè)在作為主存儲(chǔ)部分的磁盤(pán)部分18上具有一個(gè)文件aaa。在磁盤(pán)上將文件aaa進(jìn)行分解為單元塊。將文件aaa存儲(chǔ)進(jìn)塊100、101、102、205、206、255、256和300。當(dāng)文件尺寸擴(kuò)展時(shí),將新的塊與最后的一個(gè)塊相連。當(dāng)新的塊無(wú)法與最后的塊相連時(shí),將塊設(shè)置在另外一個(gè)位置。例如,如果接著塊300的塊301被用做新塊。如果已經(jīng)使用了塊301,將被釋放的塊用做新的塊。
另外,因?yàn)橐呀?jīng)占據(jù)了很大的存儲(chǔ)區(qū),所以在高速緩沖存儲(chǔ)器中無(wú)法讀出整個(gè)的文件aaa。因此,在高速緩沖存儲(chǔ)器中只讀取包含所需數(shù)據(jù)內(nèi)容的塊。例如,當(dāng)在由塊100、101、102、205、206、255、256和300構(gòu)成的文件aaa的塊101、102和205中存在所需的數(shù)據(jù)部分時(shí),在高速緩沖存儲(chǔ)器中讀取塊101、102和205中的數(shù)據(jù)。同樣,當(dāng)在文件aaa的塊102中存在所需的數(shù)據(jù)部分時(shí),只讀取高速緩沖存儲(chǔ)器中的塊102。
在使用具有預(yù)定塊尺寸的高速緩沖存儲(chǔ)器的緩沖器高速緩沖方法中,如果文件的塊尺寸小于高速緩沖存儲(chǔ)器的尺寸,可以增快讀操作的速度。然而,當(dāng)在切換系統(tǒng)的文件系統(tǒng)中連續(xù)訪問(wèn)一些塊時(shí),將讀取訪問(wèn)操作分為多個(gè)I/O過(guò)程。為此,無(wú)法獲得理想的效果。
在日本公開(kāi)專(zhuān)利申請(qǐng)(JP-A-Heisei 5-158792)中所描述的技術(shù)中,當(dāng)存取的尺寸較大時(shí),設(shè)置了一個(gè)輸入/輸出緩沖器,數(shù)據(jù)被一次存入高速緩沖存儲(chǔ)器中。
同樣,在使用具有預(yù)定塊尺寸的高速緩沖存儲(chǔ)器的高速緩沖方法中,在與文件的塊尺寸無(wú)關(guān)的情況下進(jìn)行預(yù)定長(zhǎng)度尺寸數(shù)據(jù)訪問(wèn)。因此,當(dāng)高速緩沖存儲(chǔ)器的塊尺寸較大時(shí),在處理小文件時(shí)會(huì)對(duì)塊的使用造成浪費(fèi)。
因此建議使高速緩沖存儲(chǔ)器的塊尺寸可變,以適應(yīng)此問(wèn)題。例如,在日本公開(kāi)專(zhuān)利申請(qǐng)(JP-A-Heisei 10-69429)中揭示了一種技術(shù),其中根據(jù)應(yīng)用程序的請(qǐng)求而定位存儲(chǔ)器中的緩沖存儲(chǔ)區(qū)。然而,此種的使用可變長(zhǎng)度的高速緩沖存儲(chǔ)器的方法適用于通訊控制程序,其中處理具有預(yù)定尺寸的多個(gè)數(shù)據(jù)。在切換裝置的文件系統(tǒng)中,因?yàn)樗璧臄?shù)據(jù)具有各種各樣的尺寸,因此此方法不適用。
同樣,在日本公開(kāi)專(zhuān)利申請(qǐng)(JP-A-Heisei 7-311710)中揭示了一種使用散列表的控制高速緩沖存儲(chǔ)器的方法。然而,其不適用于將散列表提供給具有可變長(zhǎng)度的高速緩沖存儲(chǔ)器的高速存取的情況。
在切換裝置的文件系統(tǒng)中,因?yàn)樾枰哂写竺娣e的數(shù)據(jù)區(qū),從實(shí)現(xiàn)高速存取的角度看,上述的傳統(tǒng)實(shí)例并不適用。為此,為了進(jìn)行高速存取,仍然需應(yīng)用使用具有預(yù)定尺寸塊的高速緩沖存儲(chǔ)器的方法。在此情況下,無(wú)法獲得高速訪問(wèn)。
結(jié)合上面的描述,在日本公開(kāi)專(zhuān)利申請(qǐng)(JP-A-Heisei 2-39343)中揭示了一種用于在主計(jì)算機(jī)和顯示器之間進(jìn)行數(shù)據(jù)傳輸?shù)膫鬏敽徒邮站彌_控制系統(tǒng)。緩沖器被提供有具有可變長(zhǎng)度的數(shù)據(jù)存儲(chǔ)區(qū)、用于存儲(chǔ)數(shù)據(jù)存儲(chǔ)區(qū)的標(biāo)題地址的指示符的標(biāo)題指示符存儲(chǔ)區(qū)和用于存儲(chǔ)數(shù)據(jù)存儲(chǔ)區(qū)的尾地址的指示符的尾指示符存儲(chǔ)區(qū)。
同樣,在日本公開(kāi)專(zhuān)利申請(qǐng)(JP-A-Heisei 7-210365)中揭示了一種諸如激光打印機(jī)的圖象生成裝置。在此文獻(xiàn)中,使用定時(shí)器檢測(cè)接收緩沖器是否無(wú)存儲(chǔ)空間。如果在預(yù)定時(shí)間后緩沖器仍然無(wú)存儲(chǔ)空間,則增大緩沖器的尺寸。
因此,本發(fā)明的第一個(gè)目的是提供一種高速緩沖存儲(chǔ)方法,其中的高速緩沖存儲(chǔ)器的尺寸可變,同時(shí)還提供使用該方法的高速緩沖存儲(chǔ)裝置。
本發(fā)明的另外的一個(gè)目的是提供一種高速緩沖存儲(chǔ)方法,其中可高速的訪問(wèn)具有可變尺寸的文件,和提供一種使用該方法的高速緩沖存儲(chǔ)裝置。
本發(fā)明的第三個(gè)目的是提供一種高速緩沖存儲(chǔ)方法,其中可根據(jù)所請(qǐng)求數(shù)據(jù)的尺寸釋放或插入緩沖器,和應(yīng)用該方法的高速緩沖存儲(chǔ)裝置。
本發(fā)明的第四個(gè)目的在于提供一種高速緩沖存儲(chǔ)方法,其中可預(yù)先設(shè)置具有可變尺寸的緩沖器,從而可選擇其中的一個(gè)緩沖器,和應(yīng)用該方法的高速緩沖存儲(chǔ)裝置。
本發(fā)明的第五個(gè)目的在于提供一種高速緩沖存儲(chǔ)方法,其中使用了平衡樹(shù),及應(yīng)用該方法的高速緩沖存儲(chǔ)裝置。
本發(fā)明的第六個(gè)目的在于提供一種高速緩沖存儲(chǔ)方法,其中可對(duì)平衡樹(shù)的非平衡進(jìn)行修正,和應(yīng)用該方法的高速緩沖存儲(chǔ)裝置。
為了實(shí)現(xiàn)本發(fā)明的一個(gè)方面,一種高速緩沖存儲(chǔ)裝置包含一個(gè)存儲(chǔ)數(shù)據(jù)的存儲(chǔ)部分、高速緩沖存儲(chǔ)器和控制部分。高速緩沖存儲(chǔ)器存儲(chǔ)平衡樹(shù)和自由表。包含在緩沖器中的數(shù)據(jù)被在平衡樹(shù)中作為節(jié)點(diǎn)分級(jí)提供,并分別提供具有不同尺寸的自由表。當(dāng)存在至少一個(gè)自由緩沖器時(shí),每個(gè)自由表包含至少一個(gè)自由緩沖器。控制部分響應(yīng)數(shù)據(jù)請(qǐng)求。當(dāng)在平衡樹(shù)中不存在被請(qǐng)求的數(shù)據(jù)時(shí),控制部分根據(jù)數(shù)據(jù)請(qǐng)求部分所請(qǐng)求的數(shù)據(jù)的尺寸搜索所需緩沖器的自由表。同樣,控制部分將所需的緩沖器加到平衡樹(shù)中將被請(qǐng)求數(shù)據(jù)從存儲(chǔ)部分存儲(chǔ)進(jìn)所需的緩沖器中。所需的緩沖器的尺寸大于被請(qǐng)求數(shù)據(jù)的尺寸并盡可能的小。
這里,當(dāng)存在至少一個(gè)自由緩沖器時(shí),每個(gè)自由表包含一個(gè)表示尺寸的標(biāo)題部分和至少一個(gè)與標(biāo)題部分相連的自由緩沖器??刂撇糠?a)根據(jù)被請(qǐng)求數(shù)據(jù)尺寸搜索自由表的標(biāo)題部分,以找出被提供給具有大于被請(qǐng)求數(shù)據(jù)尺寸的其中尺寸最小的一個(gè)自由表,(b)確定所找出的自由表是否包含至少一個(gè)自由緩沖器,(c)當(dāng)確定所發(fā)現(xiàn)的自由表不包含至少一個(gè)自由緩沖器時(shí),為另外一個(gè)作為被尋找自由表的最小尺寸的自由表設(shè)定另外一個(gè)自由表,及(d)當(dāng)通過(guò)搜索操作或重復(fù)設(shè)定操作而確定所尋找的自由表包含至少一個(gè)自由緩沖器時(shí),將被包含在所尋找的自由表中的自由緩沖器設(shè)定作為所需的緩沖器。
同樣,當(dāng)在平衡樹(shù)的包含緩沖器的數(shù)據(jù)中存在至少部分被請(qǐng)求的數(shù)據(jù)時(shí),控制部分從平衡樹(shù)釋放和刪除包含緩沖器的其中一個(gè)數(shù)據(jù)。同樣,根據(jù)被請(qǐng)求數(shù)據(jù)的尺寸控制部分搜索所需緩沖器的自由表。在此情況下,控制部分根據(jù)包含緩沖器的被刪除數(shù)據(jù)的尺寸將包含作為自由緩沖器的緩沖器的被刪除數(shù)據(jù)加入到一個(gè)自由表中。同樣,控制部分根據(jù)被請(qǐng)求數(shù)據(jù)的尺寸、自由表的尺寸和是否至少一個(gè)自由緩沖器與每個(gè)自由表相連的情況從自由表搜索所需的緩沖器。
同樣,當(dāng)在包含平衡樹(shù)的緩沖器的數(shù)據(jù)中存在至少部分被請(qǐng)求的數(shù)據(jù)時(shí),控制部分從平衡樹(shù)釋放和刪除包含緩沖器的數(shù)據(jù)。同時(shí),控制部分根據(jù)被請(qǐng)求數(shù)據(jù)的尺寸搜索所需的緩沖器的自由表。在此情況下,控制部分根據(jù)每個(gè)包含緩沖器的被刪除數(shù)據(jù)的尺寸將包含作為自由緩沖器的的緩沖器的被刪除數(shù)據(jù)加入到自由表中。同時(shí),在這種情況下,控制部分根據(jù)被請(qǐng)求數(shù)據(jù)的尺寸、自由表的尺寸和至少一個(gè)自由緩沖器是否與每個(gè)自由表相連從自由表搜索所需的緩沖器。
同時(shí),控制部分對(duì)平衡樹(shù)進(jìn)行修正,從而在平衡樹(shù)的節(jié)點(diǎn)中從根節(jié)點(diǎn)到頁(yè)節(jié)點(diǎn)的深度盡量的均勻。同時(shí),控制部分以預(yù)定的時(shí)間或在控制部分的空閑時(shí)間進(jìn)行修正操作。另外,將高速緩沖存儲(chǔ)器應(yīng)用到切換裝置中。
為了實(shí)現(xiàn)本發(fā)明的另外一個(gè)方面,通過(guò)確定在平衡樹(shù)中是否存在一個(gè)特定的數(shù)據(jù)請(qǐng)求而實(shí)現(xiàn)高速緩沖存儲(chǔ)方法,當(dāng)確定在平衡樹(shù)中不存在被請(qǐng)求的數(shù)據(jù)時(shí),根據(jù)被請(qǐng)求數(shù)據(jù)的尺寸,通過(guò)從具有不同尺寸的自由緩沖器中搜索所需的緩沖器而在平衡樹(shù)中分級(jí)設(shè)定作為節(jié)點(diǎn)的緩沖器,通過(guò)將所需的緩沖器加入到平衡樹(shù)中,然后通過(guò)將被請(qǐng)求的數(shù)據(jù)從存儲(chǔ)部分存儲(chǔ)進(jìn)所需的緩沖器中,從而所需的緩沖器的尺寸大于被請(qǐng)求數(shù)據(jù)的尺寸并盡可能的小。
在搜索中,(a)在被請(qǐng)求數(shù)據(jù)尺寸的基礎(chǔ)上尋找其中的一個(gè)自由表,其中被尋找的自由表的尺寸是大于被請(qǐng)求數(shù)據(jù)尺寸的自由表中的尺寸最小的一個(gè),(b)確定被尋找到的自由表是否包含至少一個(gè)自由緩沖器,(c)當(dāng)確定被尋找的自由表不包含至少一個(gè)自由緩沖器時(shí),設(shè)定下一個(gè)作為被尋找自由表的最小尺寸自由表,及(d)當(dāng)在尋找操作(a)之后或重復(fù)設(shè)定操作(c)之后確定所尋找的自由表包含至少一個(gè)自由緩沖器時(shí),將包含在所尋找自由表中的自由緩沖器設(shè)定作為所需的緩沖器。
同時(shí),高速緩沖存儲(chǔ)方法可包含如下步驟,當(dāng)在包含平衡樹(shù)的緩沖器的數(shù)據(jù)中存在被請(qǐng)求的數(shù)據(jù)時(shí),從平衡樹(shù)釋放或刪除其中的一個(gè)包含緩沖器的數(shù)據(jù);根據(jù)被請(qǐng)求數(shù)據(jù)的尺寸搜索所需緩沖器的自由表。在此情況下,該方法還包含根據(jù)包含緩沖器的被刪除數(shù)據(jù)的尺寸將包含作為自由緩沖器的緩沖器的被刪除數(shù)據(jù)加入到其中的一個(gè)自由表中。同時(shí),該方法還包含根據(jù)被請(qǐng)求數(shù)據(jù)的尺寸、自由表的尺寸和至少一個(gè)自由緩沖器是否與每個(gè)自由表相連從自由表搜索所需的緩沖器。
同時(shí),該方法可以還包含當(dāng)在包含平衡樹(shù)的緩沖器的數(shù)據(jù)中存在被請(qǐng)求的數(shù)據(jù)時(shí),從平衡樹(shù)釋放和刪除包含緩沖器的數(shù)據(jù);同時(shí)根據(jù)被請(qǐng)求數(shù)據(jù)的尺寸搜索所需的緩沖器的自由表。在此情況下,該方法還包含根據(jù)包含緩沖器的每個(gè)被刪除數(shù)據(jù)的尺寸將包含作為自由緩沖器的的緩沖器的被刪除數(shù)據(jù)加入到自由表中。同時(shí),該方法還包含根據(jù)被請(qǐng)求數(shù)據(jù)的尺寸、自由表的尺寸和至少一個(gè)自由緩沖器是否與每個(gè)自由表相連從自由表搜索所需的緩沖器。
同時(shí),該方法還包含對(duì)平衡樹(shù)進(jìn)行修正,從而在平衡樹(shù)的節(jié)點(diǎn)中從根節(jié)點(diǎn)到頁(yè)節(jié)點(diǎn)的深度盡量的均勻。在這種情況下,以預(yù)定的時(shí)間或在控制部分的空閑時(shí)間進(jìn)行修正操作。
為了實(shí)現(xiàn)本發(fā)明的另外一個(gè)方面,提供一種用于高速緩沖存儲(chǔ)方法的存儲(chǔ)程序的記錄媒體。該方法通過(guò)確定在平衡樹(shù)中是否存在一個(gè)特定的數(shù)據(jù)請(qǐng)求而實(shí)現(xiàn),當(dāng)確定在平衡樹(shù)中不存在被請(qǐng)求的數(shù)據(jù)時(shí),根據(jù)被請(qǐng)求數(shù)據(jù)的尺寸,通過(guò)從具有不同尺寸的自由緩沖器中搜索所需的緩沖器而在平衡樹(shù)中分級(jí)設(shè)定作為節(jié)點(diǎn)的緩沖器,通過(guò)將所需的緩沖器加入到平衡樹(shù)中,然后通過(guò)將被請(qǐng)求的數(shù)據(jù)從存儲(chǔ)部分存儲(chǔ)進(jìn)所需的緩沖器中,從而所需的緩沖器的尺寸大于被請(qǐng)求數(shù)據(jù)的尺寸并盡可能的小。
圖1為傳統(tǒng)的切換裝置的基本結(jié)構(gòu)的方框圖;圖2為通過(guò)傳統(tǒng)的切換裝置進(jìn)行的通常的文件操作的示意圖;圖3為用于描述應(yīng)用了本發(fā)明的高速緩沖存儲(chǔ)方法的切換裝置的基本結(jié)構(gòu)的示意圖;圖4為根據(jù)本發(fā)明的第一實(shí)施例的高速緩沖存儲(chǔ)器的功能方框圖;圖5為高速緩沖存儲(chǔ)器中的平衡樹(shù)的示意圖;圖6為根據(jù)本發(fā)明的第一實(shí)施例的用在高速緩沖存儲(chǔ)器中的自由表結(jié)構(gòu)的示意圖;圖7到圖10為根據(jù)本發(fā)明的第一實(shí)施例的用于描述高速緩沖存儲(chǔ)器裝置的操作的流程圖;圖11為平衡樹(shù)的初始狀態(tài)的示意圖;圖12為將緩沖器插入到平衡樹(shù)中的示意圖;圖13為刪除一個(gè)緩沖器并將一個(gè)新的緩沖器插入到平衡樹(shù)中的示意圖;圖14為用于描述刪除平衡樹(shù)中的緩沖器的操作的示意圖;圖15為用于描述將一個(gè)新的緩沖器插入到平衡樹(shù)中的操作的示意圖;圖16為用于描述平衡樹(shù)的初始狀態(tài)的示意圖;圖17為用于示出平衡樹(shù)的非平衡狀態(tài)的示意圖;及圖18為用于示出對(duì)平衡樹(shù)進(jìn)行修正的示意圖。
此后,將參考附圖對(duì)應(yīng)用本發(fā)明的高速緩沖存儲(chǔ)器裝置的切換裝置進(jìn)行詳細(xì)描述。
圖3示出本發(fā)明所使用的切換裝置的基本結(jié)構(gòu)。參考圖3,切換系統(tǒng)包含通訊路由部分12、處理器(CPU)16、包含高速緩沖存儲(chǔ)部分的高速緩沖存儲(chǔ)器裝置23,和作為主存儲(chǔ)部分的磁盤(pán)部分18及作為輔助存儲(chǔ)部分20的磁帶部分20。通訊路由部分12控制電話用戶(hù)10之間的電話線路,如圖3所述。處理器(CPU)控制通訊路由部分12。即,處理器16從作為主存儲(chǔ)部分的磁盤(pán)部分18或輔助存儲(chǔ)部分20讀取程序并解釋和執(zhí)行每個(gè)程序命令。因此,將所需的指令和數(shù)據(jù)發(fā)送到通訊路由部分12,從而可對(duì)諸如計(jì)費(fèi)功能和呼叫處理功能等所有的功能進(jìn)行管理。同時(shí),控制臺(tái)22與處理器16進(jìn)行數(shù)據(jù)交換。在高速緩沖存儲(chǔ)器裝置23上運(yùn)行本發(fā)明的用于高速緩沖存儲(chǔ)方法的程序。
圖4為根據(jù)本發(fā)明的第一實(shí)施例的高速緩沖存儲(chǔ)器裝置23的功能方框圖。參考圖4,高速緩沖存儲(chǔ)器裝置23由請(qǐng)求接收部分24、平衡樹(shù)(Btree)搜索部分26、被釋放緩沖器搜索部分28、最優(yōu)緩沖搜索部分30、緩沖插入和刪除部分32、平衡樹(shù)修正部分34、輸入和輸出控制部分36、高速緩沖存儲(chǔ)器38和緩沖器控制部分40構(gòu)成。
請(qǐng)求接收部分24接收緩沖器獲取請(qǐng)求和平衡樹(shù)修正請(qǐng)求。平衡樹(shù)搜索部分26搜索平衡樹(shù)。被釋放緩沖器搜索部分28搜索用于釋放緩沖器的自由表。最優(yōu)緩沖器搜索部分30搜索自由表的最優(yōu)尺寸。緩沖器插入和刪除部分32將緩沖器插入到平衡樹(shù)中或從平衡樹(shù)中刪除緩沖器。平衡樹(shù)修正部分34調(diào)節(jié)平衡樹(shù)的平衡。輸入和輸出控制部分36控制磁盤(pán)18的輸入/輸出的存取操作。高速緩沖存儲(chǔ)器38包含平衡樹(shù)和自由表。緩沖器控制部分40控制對(duì)高速緩沖存儲(chǔ)器38的訪問(wèn)。
此后,將參考圖5和圖6對(duì)本發(fā)明的高速緩沖存儲(chǔ)器裝置進(jìn)行描述。
圖5為高速緩沖存儲(chǔ)器38中的平衡樹(shù)和磁盤(pán)18的塊100到178的示意圖。在圖5中,平衡樹(shù)44的每個(gè)節(jié)點(diǎn)中的緩沖器的數(shù)目表示被存儲(chǔ)的塊的數(shù)目。圖5示出每個(gè)緩沖器由具有可變長(zhǎng)度(諸如2個(gè)塊或3個(gè)塊)的緩沖器塊構(gòu)成。如圖5中所示,高速緩沖存儲(chǔ)器38包含用于緩沖器搜索的平衡樹(shù)44和具有多個(gè)尺寸的釋放緩沖器的自由表46。平衡樹(shù)44的每個(gè)節(jié)點(diǎn)保存一個(gè)具有可變長(zhǎng)度的緩沖器。
平衡樹(shù)44為具有兩個(gè)分支的搜索樹(shù)。在下層中的左側(cè)分支中設(shè)置編號(hào)小于節(jié)點(diǎn)中緩沖器的編號(hào)的緩沖器。在下層右側(cè)分支中設(shè)置編號(hào)大于節(jié)點(diǎn)中緩沖器編號(hào)的緩沖器。每個(gè)緩沖器具有兩個(gè)指示符,用于表示左側(cè)緩沖器和右側(cè)緩沖器。在此情況下,從根節(jié)點(diǎn)開(kāi)始平衡樹(shù)的搜索操作。將節(jié)點(diǎn)緩沖器的編號(hào)與目標(biāo)緩沖器的編號(hào)進(jìn)行比較以確定目標(biāo)緩沖器位于兩個(gè)分支中的哪一個(gè)。因此,通過(guò)重復(fù)確認(rèn)操作而進(jìn)行搜索操作。在此情況下,平衡樹(shù)44上的每個(gè)節(jié)點(diǎn)的緩沖器可存儲(chǔ)有效的數(shù)據(jù),并選擇的存儲(chǔ)一個(gè)或多個(gè)連續(xù)的數(shù)據(jù)塊。
圖6示出了自由表46的結(jié)構(gòu)。對(duì)自由表46分別提供不同尺寸的緩沖器。自由表46-1為具有α千字節(jié)(KB)的緩沖器的表。自由表46-2為具有β千字節(jié)的表。具有一個(gè)或多個(gè)塊的釋放緩沖器被與右端的其中一個(gè)自由表A相連。在將緩沖器插入到平衡樹(shù)中時(shí),位于左側(cè)端的緩沖器被從自由表釋放并被使用。剩余的緩沖器與相連緩沖器的數(shù)據(jù)標(biāo)題部相連。
當(dāng)訪問(wèn)磁盤(pán)18上的文件時(shí),首先搜索平衡樹(shù)44以確定在平衡樹(shù)44上是否存在被請(qǐng)求的數(shù)據(jù)。當(dāng)未發(fā)現(xiàn)被請(qǐng)求的數(shù)據(jù)時(shí),在自由表46中找到緩沖器以滿(mǎn)足被請(qǐng)求數(shù)據(jù)的尺寸。此時(shí),被找到的緩沖器的尺寸大于請(qǐng)求數(shù)據(jù)的尺寸并與請(qǐng)求數(shù)據(jù)的尺寸最接近。然后,將被請(qǐng)求數(shù)據(jù)從文件存儲(chǔ)到所找到的緩沖器中。將被使用的塊的標(biāo)題地址和最后的地址存儲(chǔ)進(jìn)平衡樹(shù)44上的緩沖器中。在此情況下,可同時(shí)進(jìn)行無(wú)失緩沖器控制和高速文件存取。
下面將描述平衡樹(shù)的緩沖狀態(tài)。其工作具有三種情況。
情況1當(dāng)系統(tǒng)被運(yùn)行且文件被刪除時(shí)無(wú)需將緩沖器中的數(shù)據(jù)遺留在平衡樹(shù)上。因此,在釋放狀態(tài)在緩沖器中無(wú)有效數(shù)據(jù),而緩沖器只與其中的一個(gè)自由表相連。
情況2存在這樣的一種情況,即在該情況下平衡樹(shù)上的緩沖器中的數(shù)據(jù)被程序所使用。例如,在復(fù)制操作中緩沖器中的數(shù)據(jù)被使用。在此情況下,緩沖器只與平衡樹(shù)相連,這是因?yàn)樵诰彌_器中只使用有效數(shù)據(jù)。
情況3在該情況下,平衡樹(shù)上的緩沖器中的數(shù)據(jù)未被程序所使用。例如,與上述的情況1和2所不同的是,有效數(shù)據(jù)位于緩沖器中。在此情況下,由于在釋放狀態(tài)有效數(shù)據(jù)位于平衡樹(shù)上的緩沖器中,緩沖器被與平衡樹(shù)和自由表相連。
接著,將參考圖7到圖10對(duì)根據(jù)本發(fā)明的第一實(shí)施例的高速緩沖存儲(chǔ)器裝置進(jìn)行描述。
在高速緩沖存儲(chǔ)器中存在四個(gè)工作模式。第一個(gè)工作模式是,在平衡樹(shù)上的緩沖器中存在被請(qǐng)求的數(shù)據(jù)。第二中工作模式是,在平衡樹(shù)中不存在被請(qǐng)求數(shù)據(jù)。第三種工作模式是,在平衡樹(shù)上的其中一個(gè)緩沖器中存在部分被請(qǐng)求數(shù)據(jù)。第四中情況是,在平衡樹(shù)上的多個(gè)緩沖器中存在被請(qǐng)求數(shù)據(jù)。
在圖7的流程圖中,當(dāng)從CPU16發(fā)出數(shù)據(jù)獲取請(qǐng)求時(shí)(步驟S1),圖4的高速緩沖存儲(chǔ)器裝置23的請(qǐng)求接收部分24接收此請(qǐng)求。平衡樹(shù)搜索部分26通過(guò)緩沖器控制部分40對(duì)應(yīng)數(shù)據(jù)獲取請(qǐng)求訪問(wèn)高速緩沖存儲(chǔ)器38。因此,平衡樹(shù)搜索部分26搜索平衡樹(shù)并確定由塊的數(shù)量表示的被請(qǐng)求數(shù)據(jù)是否存在于平衡樹(shù)上的緩沖器中(步驟S2)。
當(dāng)在平衡樹(shù)上的任何一個(gè)緩沖器中存在被請(qǐng)求數(shù)據(jù)時(shí),其確定在平衡樹(shù)上的單個(gè)緩沖器中是否存在部分被請(qǐng)求數(shù)據(jù)(步驟S3)。如果在單個(gè)緩沖器中不存在部分被請(qǐng)求數(shù)據(jù),則接著確定在平衡樹(shù)上的多個(gè)緩沖器中是否存在被請(qǐng)求數(shù)據(jù)(步驟S4)。如果在平衡樹(shù)上的多個(gè)緩沖器中不存在被請(qǐng)求數(shù)據(jù),則確定上述的被請(qǐng)求數(shù)據(jù)存在于平衡樹(shù)上。因此,使用當(dāng)前現(xiàn)存的緩沖器(步驟S5)。即,從緩沖器中讀出有效數(shù)據(jù)。在此情況下,平衡樹(shù)的狀態(tài)不會(huì)發(fā)生變化。此操作等同于上述的第一工作模式。
當(dāng)在步驟S2中確定在平衡樹(shù)上的緩沖器中不存在被請(qǐng)求數(shù)據(jù)時(shí),則執(zhí)行圖8中的流程。在此流程中,最優(yōu)緩沖器搜索部分30和被釋放緩沖器搜索部分28通過(guò)緩沖器控制部分40訪問(wèn)高速緩沖存儲(chǔ)器38以開(kāi)始對(duì)自由表46的搜索操作。
在自由表搜索操作中,最優(yōu)緩沖器搜索部分30搜索自由表46以確定其中的一個(gè)自由表46。即,將自由表的緩沖器尺寸最小的一個(gè)設(shè)定為暫時(shí)緩沖器尺寸(步驟S21)。接著,最優(yōu)緩沖器搜索部分30將被請(qǐng)求數(shù)據(jù)的尺寸與暫時(shí)緩沖器尺寸進(jìn)行比較(步驟S22)。當(dāng)被請(qǐng)求數(shù)據(jù)的尺寸大于暫時(shí)緩沖器尺寸時(shí),最優(yōu)緩沖器搜索部分30搜索下一個(gè)最小緩沖器尺寸的自由表的標(biāo)題部分,并設(shè)定作為暫時(shí)緩沖器尺寸(步驟S23)。然后,再次進(jìn)行步驟S22以將暫時(shí)緩沖器尺寸與被請(qǐng)求數(shù)據(jù)尺寸進(jìn)行比較。重復(fù)進(jìn)行上述的步驟S22和S23直到找到緩沖器尺寸大于被請(qǐng)求數(shù)據(jù)尺寸的自由表為止。
當(dāng)在步驟S22中找到緩沖器尺寸大于被請(qǐng)求數(shù)據(jù)的尺寸的自由表時(shí),釋放緩沖器搜索部分28搜索被尋找的自由表以確定被釋放的緩沖器是否與被找到的自由表相連。即,釋放緩沖器搜索部分28確定是否找到釋放緩沖器(步驟S24)。當(dāng)在步驟S24中未找到釋放緩沖器時(shí),其確定是否存在一個(gè)用于緩沖器的具有更大緩沖器尺寸的自由表(步驟S26)。當(dāng)存在一個(gè)用于緩沖器的具有更大尺寸的自由表時(shí),搜索自由表(步驟S27),并確定在自由表中是否存在被釋放的緩沖器(步驟S24)。當(dāng)確定被釋放的緩沖器存在于自由表中時(shí),緩沖器插入和刪除部分32保留并插入釋放的緩沖器到平衡樹(shù)中。然后,緩沖器被用于將數(shù)據(jù)通過(guò)輸入和輸出控制部分36存儲(chǔ)到緩沖器中的磁盤(pán)中(步驟S25)。此操作等同于上述的第二工作模式。如果在步驟S26中未發(fā)現(xiàn)任何的有用的緩沖器,程序進(jìn)入到休眠狀態(tài)直到釋放了任何的有用的緩沖器時(shí)為止(步驟S28)。
接著,當(dāng)在圖7的步驟S3中確定在平衡樹(shù)上的緩沖器中存在被請(qǐng)求數(shù)據(jù)的一部分時(shí),執(zhí)行圖9中的流程。
即,釋放緩沖器搜索部分28、最優(yōu)緩沖器搜索部分30和緩沖器插入和刪除部分32通過(guò)緩沖器控制部分40訪問(wèn)高速緩沖存儲(chǔ)器38。此時(shí),最優(yōu)緩沖器搜索部分30如圖8的流程所示確定緩沖器尺寸與被請(qǐng)求數(shù)據(jù)尺寸相符合的一個(gè)自由表46。同時(shí),釋放緩沖器搜索部分28搜索與被確定的自由表相連的釋放緩沖器,如圖8中的流程所示。同時(shí),緩沖器插入和刪除部分32首先將存儲(chǔ)在緩沖器中的數(shù)據(jù)通過(guò)輸入和輸出控制部分36寫(xiě)到磁盤(pán)18上(步驟S31)。然后,緩沖器插入和刪除部分32從平衡樹(shù)釋放和刪除緩沖器,并將緩沖器與和被釋放緩沖器具有相同緩沖器尺寸的其中的一個(gè)自由表46相連。然后,緩沖器插入和刪除部分32將通過(guò)釋放緩沖器搜索部分28搜索的新的緩沖器從由最優(yōu)緩沖器搜索部分30確定的自由表的左端移走。因此,保留了新的緩沖器,而緩沖器插入和刪除部分32將新的緩沖器與平衡樹(shù)相連。即,將新的緩沖器插入到平衡樹(shù)中(步驟S33)。將被請(qǐng)求數(shù)據(jù)通過(guò)輸入和輸出控制部分36存儲(chǔ)進(jìn)新緩沖器中。此操作等同于上述的第三工作模式。
接著,當(dāng)在圖7的步驟S4中確定在平衡樹(shù)上的多個(gè)緩沖器中存在被請(qǐng)求數(shù)據(jù)時(shí),執(zhí)行圖10中的流程。
即,釋放緩沖器搜索部分28、最優(yōu)緩沖器搜索部分30和緩沖器插入和刪除部分32通過(guò)緩沖器控制部分40訪問(wèn)高速緩沖存儲(chǔ)器38。此時(shí),如圖8的流程所示,最優(yōu)緩沖器搜索部分30確定緩沖器尺寸與被請(qǐng)求數(shù)據(jù)相匹配的其中的一個(gè)自由表46。同時(shí),釋放緩沖器搜索部分28搜索與被確定的自由表相連的釋放緩沖器,如圖8中的流程所示。然后,緩沖器插入和刪除部分32首先將存儲(chǔ)在多個(gè)緩沖器中的數(shù)據(jù)通過(guò)輸入和輸出控制部分36存儲(chǔ)進(jìn)磁盤(pán)18中(步驟S41)。然后,緩沖器插入和刪除部分32釋放并刪除所有的多個(gè)緩沖器(步驟S42)。然后,緩沖器插入和刪除部分32將由釋放緩沖器搜索部分28搜索的新的緩沖器從通過(guò)最優(yōu)緩沖器搜索部分30確定的自由表的左端移走。然后保留新的緩沖器,而緩沖器插入和刪除部分32將新的緩沖器與平衡樹(shù)相連。即,將新的緩沖器插入到平衡樹(shù)中(步驟S43)。將被請(qǐng)求數(shù)據(jù)通過(guò)輸入和輸出控制部分36存儲(chǔ)進(jìn)新的緩沖器中。此操作等同于上述的第四工作模式。
接著,將詳細(xì)描述上述四個(gè)工作模式的中的平衡樹(shù)的狀態(tài)。首先,假設(shè)平衡樹(shù)44的初始狀態(tài)為圖11中所示的狀態(tài)。
在第一種工作模式中,使用在平衡樹(shù)上存在的緩沖器。因此,平衡樹(shù)的狀態(tài)不發(fā)生變化。然而,存儲(chǔ)數(shù)據(jù)的緩沖器的內(nèi)容被更新。
在第二種工作模式中,假設(shè)被請(qǐng)求數(shù)據(jù)存在于塊75到78中。因此,此數(shù)據(jù)不存在在圖11的平衡樹(shù)上。為此,從其中的一個(gè)自由表釋放并保留尺寸大于被請(qǐng)求數(shù)據(jù)尺寸并與被請(qǐng)求數(shù)據(jù)尺寸最接近的緩沖器。將被保留的緩沖器插入到平衡樹(shù)中,如圖12中所示。此時(shí),緩沖器控制部分40將被插入緩沖器的作為指示符的標(biāo)題地址寫(xiě)入到具有塊57到58的緩沖器中。
在第三種工作模式中,假設(shè)被請(qǐng)求數(shù)據(jù)在塊15到17中。此被請(qǐng)求數(shù)據(jù)存在于圖11的平衡樹(shù)上的具有塊15到18的單個(gè)緩沖器中。因此,將被存儲(chǔ)在具有塊15到18的緩沖器中的所有的數(shù)據(jù)一次存儲(chǔ)到磁盤(pán)18上然后從平衡樹(shù)釋放和刪除平衡樹(shù)。然后,保留尺寸大于被請(qǐng)求數(shù)據(jù)且盡可能小的新的緩沖器。將被保留的緩沖器插入到平衡樹(shù)中,如圖13中所示。然后,將塊15到17的數(shù)據(jù)寫(xiě)入到被插入的緩沖器中。在此情況下,另外的一個(gè)程序可使用已經(jīng)被存儲(chǔ)到磁盤(pán)上的塊18的數(shù)據(jù)。
在第四種工作模式中,假設(shè)被請(qǐng)求數(shù)據(jù)位于塊165到167中。此請(qǐng)求數(shù)據(jù)存在于圖11的平衡樹(shù)中的具有塊165和166的緩沖器中和具有塊167和168的緩沖器中。因此,這些被存儲(chǔ)進(jìn)兩個(gè)緩沖器中的數(shù)據(jù)被存儲(chǔ)在磁盤(pán)18上,然后從平衡樹(shù)釋放和刪除兩個(gè)緩沖器,如圖14中所示。然后,保留尺寸大于被請(qǐng)求數(shù)據(jù)尺寸和尺寸盡可能小的緩沖器。將被保留的緩沖器插入到平衡樹(shù)中,如圖15中所示。然后,將被請(qǐng)求數(shù)據(jù)寫(xiě)入到具有塊165和167的緩沖器中。通過(guò)上述的過(guò)程,在圖11的平衡樹(shù)中必須搜索塊165到167的被請(qǐng)求數(shù)據(jù)的兩個(gè)節(jié)點(diǎn)。然而,在圖15的平衡樹(shù)中,必須增大搜索速度。這是因?yàn)橹凰阉饕粋€(gè)節(jié)點(diǎn)。同時(shí),另外一個(gè)程序可使用已經(jīng)被存儲(chǔ)在磁盤(pán)18上的塊165到167的數(shù)據(jù)。
如上所述,通過(guò)平衡樹(shù)重復(fù)進(jìn)行緩沖器的插入和刪除操作。此時(shí),存在這樣的一種情況,即平衡樹(shù)的平衡性降低。即,從根節(jié)點(diǎn)到頁(yè)節(jié)點(diǎn)的層的深度變的不同,即不均勻。在此情況下,當(dāng)平衡樹(shù)的平衡性降低時(shí),搜索樹(shù)的搜索時(shí)間較長(zhǎng)。為此,需要在適宜的時(shí)間修正平衡樹(shù)的平衡。
接著,將描述根據(jù)本發(fā)明的第二實(shí)施例的在高速緩沖存儲(chǔ)器裝置中的平衡樹(shù)的修正操作。根據(jù)本發(fā)明的第二實(shí)施例的高速緩沖存儲(chǔ)器裝置具有圖4中所示的結(jié)構(gòu)。
現(xiàn)在假設(shè)平衡樹(shù)處于圖16中所示的狀態(tài)。同樣,假設(shè)在圖17中所示的平衡樹(shù)中保留并插入具有塊148到150的新的緩沖器。其結(jié)果,產(chǎn)生平衡樹(shù)的非平衡性。在圖17中,用虛線圍住非平衡部分。由于此種的非平衡性會(huì)增大平衡樹(shù)的搜索時(shí)間,因此不希望發(fā)生此情況。同時(shí),當(dāng)從平衡樹(shù)刪除緩沖器時(shí)也會(huì)發(fā)生平衡樹(shù)的非平衡性。在出現(xiàn)下面兩種情況中的一種情況時(shí),進(jìn)行平衡樹(shù)的非平衡的修正操作。
(1)如果在插入或刪除緩沖器時(shí)產(chǎn)生了平衡樹(shù)的非平衡性,立即對(duì)平衡樹(shù)進(jìn)行修正以消除非平衡。當(dāng)存在很少的修正部分時(shí)適合應(yīng)用此方法。
(2)當(dāng)在不同的部分上進(jìn)行插入和刪除操作時(shí),在CPU16的空閑時(shí)間進(jìn)行修正操作。當(dāng)在CPU的空閑時(shí)間進(jìn)行修正操作時(shí),根據(jù)CPU16的空閑時(shí)間的長(zhǎng)度適宜的選擇是進(jìn)行整體的修正還是進(jìn)行部分修正。
修正操作按如下的方式進(jìn)行首先,平衡樹(shù)搜索部分26搜索非平衡部分。然后,平衡樹(shù)修正部分34改變緩沖器的指示符,從而從根節(jié)點(diǎn)到葉節(jié)點(diǎn)的層數(shù)或深度變的盡可能的均勻。例如,具有塊40和41的緩沖器具有指向具有塊198到200的緩沖器的指示符。因此,指示符被改變指向具有塊100和101的緩沖器。圖16示出在對(duì)圖17的平衡樹(shù)進(jìn)行修正以消除非平衡的平衡樹(shù)。從具有塊40和41的緩沖器到具有塊9和10的緩沖器的層數(shù)為4。同樣,從具有塊40和41的緩沖器到具有塊57和58的緩沖器的層數(shù)為4。因此,層的深度變的均勻,以消除非平衡。
如上所述,根據(jù)本發(fā)明,可使高速緩沖存儲(chǔ)器的長(zhǎng)度變化且采用平衡樹(shù)。因此,可高速的訪問(wèn)具有可變尺寸的數(shù)據(jù)。
權(quán)利要求
1.一種高速緩沖存儲(chǔ)器裝置,包含一個(gè)存儲(chǔ)數(shù)據(jù)的存儲(chǔ)部分;高速緩沖存儲(chǔ)器,其存儲(chǔ)平衡樹(shù)和自由表,包含緩沖器的數(shù)據(jù)被在所述平衡樹(shù)中作為節(jié)點(diǎn)分級(jí)提供,并分別提供具有不同尺寸的所述自由表,當(dāng)存在至少一個(gè)所述自由緩沖器時(shí),每個(gè)所述自由表包含至少一個(gè)自由緩沖器;以及控制部分,其響應(yīng)數(shù)據(jù)請(qǐng)求,根據(jù)所述數(shù)據(jù)請(qǐng)求部分所請(qǐng)求的數(shù)據(jù)的尺寸搜索所需緩沖器的所述自由表,當(dāng)在所述平衡樹(shù)中不存在所述被請(qǐng)求的數(shù)據(jù)時(shí),控制部分將所述所需的緩沖器加到所述平衡樹(shù)中將所述被請(qǐng)求數(shù)據(jù)從所述存儲(chǔ)部分存儲(chǔ)進(jìn)所述所需的緩沖器中,其中所述所需的緩沖器的尺寸大于所述被請(qǐng)求數(shù)據(jù)的尺寸并盡可能的小。
2.根據(jù)權(quán)利要求1所述的高速緩沖存儲(chǔ)器裝置,其特征在于當(dāng)存在至少一個(gè)所述自由緩沖器時(shí),每個(gè)所述自由表包含一個(gè)表示所述尺寸的標(biāo)題部分和至少一個(gè)與所述標(biāo)題部分相連的自由緩沖器,其中所述控制部分(a)根據(jù)所述被請(qǐng)求數(shù)據(jù)尺寸搜索所述自由表的所述標(biāo)題部分,以找出被提供給具有大于所述被請(qǐng)求數(shù)據(jù)尺寸的其中尺寸最小的一個(gè)所述自由表,(b)確定所找出的所述自由表是否包含至少一個(gè)所述自由緩沖器,(c)當(dāng)確定所發(fā)現(xiàn)的所述自由表不包含至少一個(gè)所述自由緩沖器時(shí),為另外一個(gè)作為被尋找所述自由表的最小尺寸的所述自由表設(shè)定另外一個(gè)所述自由表,及(d)當(dāng)通過(guò)搜索操作或重復(fù)設(shè)定操作而確定所尋找的所述自由表包含至少一個(gè)所述自由緩沖器時(shí),將被包含在所尋找的所述自由表中的所述自由緩沖器設(shè)定作為所述所需的緩沖器。
3.根據(jù)權(quán)利要求1所述的高速緩沖存儲(chǔ)器裝置,其特征在于當(dāng)在所述平衡樹(shù)的包含所述緩沖器的所述數(shù)據(jù)中存在至少部分所述被請(qǐng)求的數(shù)據(jù)時(shí),所述控制部分從所述平衡樹(shù)釋放和刪除包含所述緩沖器的其中一個(gè)所述數(shù)據(jù),同樣,根據(jù)所述被請(qǐng)求數(shù)據(jù)的尺寸所述控制部分搜索所述所需緩沖器的所述自由表。
4.根據(jù)權(quán)利要求3所述的高速緩沖存儲(chǔ)器裝置,其特征在于所述控制部分根據(jù)包含所述緩沖器的被刪除數(shù)據(jù)的尺寸將包含作為所述自由緩沖器的所述緩沖器的所述被刪除數(shù)據(jù)加入到其中的一個(gè)所述自由表中。
5.根據(jù)權(quán)利要求3所述的高速緩沖存儲(chǔ)器裝置,其特征在于所述控制部分根據(jù)所述被請(qǐng)求數(shù)據(jù)的尺寸、所述自由表的尺寸和是否至少一個(gè)所述自由緩沖器與每個(gè)所述自由表相連的情況從所述自由表搜索所述所需的緩沖器。
6.根據(jù)權(quán)利要求5所述的高速緩沖存儲(chǔ)器裝置,其特征在于當(dāng)在包含所述平衡樹(shù)的所述緩沖器的數(shù)據(jù)中存在至少部分所述被請(qǐng)求的數(shù)據(jù)時(shí),所述控制部分從所述平衡樹(shù)釋放和刪除包含所述緩沖器的數(shù)據(jù),所述控制部分根據(jù)所述被請(qǐng)求數(shù)據(jù)的尺寸搜索所述所需的緩沖器的所述自由表。
7.根據(jù)權(quán)利要求6所述的高速緩沖存儲(chǔ)器裝置,其特征在于所述控制部分根據(jù)包含緩沖器的每個(gè)所述被刪除數(shù)據(jù)的尺寸將包含作為所述自由緩沖器的的所述緩沖器的被刪除數(shù)據(jù)加入到其中的一個(gè)所述自由表中。
8.根據(jù)權(quán)利要求6所述的高速緩沖存儲(chǔ)器裝置,其特征在于所述控制部分根據(jù)所述被請(qǐng)求數(shù)據(jù)的尺寸、所述自由表的尺寸和至少一個(gè)所述自由緩沖器是否與每個(gè)所述自由表相連從所述自由表搜索所述所需的緩沖器。
9.根據(jù)權(quán)利要求1到8中的任何一個(gè)權(quán)利要求所述的高速緩沖存儲(chǔ)器裝置,其特征在于所述控制部分對(duì)所述平衡樹(shù)進(jìn)行修正,從而在所述平衡樹(shù)的所述節(jié)點(diǎn)中從根節(jié)點(diǎn)到頁(yè)節(jié)點(diǎn)的深度盡量的均勻。
10.根據(jù)權(quán)利要求9所述的高速緩沖存儲(chǔ)器裝置,其特征在于所述控制部分以預(yù)定的時(shí)間或在所述控制部分的空閑時(shí)間進(jìn)行所述修正操作。
11.根據(jù)權(quán)利要求1到8中的任何一個(gè)權(quán)利要求所述的高速緩沖存儲(chǔ)器裝置,其特征在于將所述高速緩沖存儲(chǔ)器應(yīng)用到切換裝置中。
12.一種高速緩沖存儲(chǔ)方法,其特征在于包含確定在平衡樹(shù)中是否存在一個(gè)特定的數(shù)據(jù)請(qǐng)求,緩沖器被分級(jí)作為節(jié)點(diǎn)提供到所述平衡樹(shù)中;當(dāng)確定在所述平衡樹(shù)中不存在所述被請(qǐng)求的數(shù)據(jù)時(shí),根據(jù)所述被請(qǐng)求數(shù)據(jù)的尺寸,從具有不同尺寸的自由緩沖器中搜索所需的緩沖器,所述所需的緩沖器的尺寸大于所述被請(qǐng)求數(shù)據(jù)的尺寸并盡可能的?。粚⑺鏊璧木彌_器加入到所述平衡樹(shù)中;及將所述被請(qǐng)求數(shù)據(jù)從存儲(chǔ)部分存儲(chǔ)進(jìn)所述所需的緩沖器中。
13.根據(jù)權(quán)利要求12所述的高速緩沖存儲(chǔ)方法,其特征在于所述搜索包含(a)在所述被請(qǐng)求數(shù)據(jù)尺寸的基礎(chǔ)上尋找其中的一個(gè)所述自由表,其中所述被尋找的自由表的尺寸是大于所述被請(qǐng)求數(shù)據(jù)尺寸的所述自由表中的尺寸最小的一個(gè),(b)確定被尋找到的所述自由表是否包含至少一個(gè)所述自由緩沖器,(c)當(dāng)確定被尋找的所述自由表不包含至少一個(gè)所述自由緩沖器時(shí),設(shè)定下一個(gè)作為被尋找所述自由表的所述最小尺寸自由表,及(d)當(dāng)在尋找操作(a)之后或重復(fù)設(shè)定操作(c)之后確定所尋找的所述自由表包含至少一個(gè)所述自由緩沖器時(shí),將包含在所尋找所述自由表中的所述自由緩沖器設(shè)定作為所述所需的緩沖器。
14.根據(jù)權(quán)利要求12所述的高速緩沖存儲(chǔ)方法,其特征在于高速緩沖存儲(chǔ)方法可包含如下步驟當(dāng)在包含所述平衡樹(shù)的所述緩沖器的數(shù)據(jù)中存在所述被請(qǐng)求的數(shù)據(jù)時(shí),從所述平衡樹(shù)釋放和刪除其中的一個(gè)包含所述緩沖器的數(shù)據(jù);根據(jù)所述被請(qǐng)求數(shù)據(jù)的尺寸搜索所述所需緩沖器的所述自由表。
15.根據(jù)權(quán)利要求14所述的高速緩沖存儲(chǔ)方法,其特征在于該方法還包含根據(jù)包含所述緩沖器的所述被刪除數(shù)據(jù)的尺寸將包含作為所述自由緩沖器的所述緩沖器的被刪除數(shù)據(jù)加入到其中的一個(gè)所述自由表中。
16.根據(jù)權(quán)利要求14所述的高速緩沖存儲(chǔ)方法,其特征在于該方法還包含根據(jù)所述被請(qǐng)求數(shù)據(jù)的尺寸、所述自由表的尺寸和所述至少一個(gè)自由緩沖器是否與每個(gè)所述自由表相連從所述自由表搜索所述所需的緩沖器。
17.根據(jù)權(quán)利要求12所述的高速緩沖存儲(chǔ)方法,其特征在于當(dāng)在包含所述平衡樹(shù)的所述緩沖器的數(shù)據(jù)中存在所述被請(qǐng)求的數(shù)據(jù)時(shí),從所述平衡樹(shù)釋放和刪除包含所述緩沖器的數(shù)據(jù);同時(shí)根據(jù)所述被請(qǐng)求數(shù)據(jù)的尺寸搜索所述所需的緩沖器的所述自由表。
18.根據(jù)權(quán)利要求17所述的高速緩沖存儲(chǔ)方法,其特征在于該方法還包含根據(jù)包含所述緩沖器的每個(gè)被刪除數(shù)據(jù)的尺寸將包含作為所述自由緩沖器的所述緩沖器的被刪除數(shù)據(jù)加入到所述自由表中。
19.根據(jù)權(quán)利要求17所述的高速緩沖存儲(chǔ)方法,其特征在于該方法還包含根據(jù)所述被請(qǐng)求數(shù)據(jù)的尺寸、所述自由表的尺寸和至少一個(gè)所述自由緩沖器是否與每個(gè)所述自由表相連從所述自由表搜索所述所需的緩沖器。
20.根據(jù)權(quán)利要求12到19中的任何一個(gè)權(quán)利要求所述的高速緩沖存儲(chǔ)方法,其特征在于該方法還包含對(duì)所述平衡樹(shù)進(jìn)行修正,從而在所述平衡樹(shù)的節(jié)點(diǎn)中從根節(jié)點(diǎn)到頁(yè)節(jié)點(diǎn)的深度盡量的均勻。
21.根據(jù)權(quán)利要求20所述的高速緩沖存儲(chǔ)方法,其特征在于以預(yù)定的時(shí)間或在所述控制部分的空閑時(shí)間進(jìn)行所述修正操作。
22.一種存儲(chǔ)用于執(zhí)行高速緩沖存儲(chǔ)方法的程序的記錄媒體,該方法包含確定在所述平衡樹(shù)中是否存在一個(gè)特定的數(shù)據(jù)請(qǐng)求,將緩沖器分級(jí)的作為節(jié)點(diǎn)提供到所述平衡樹(shù)中;當(dāng)確定在所述平衡樹(shù)中不存在所述被請(qǐng)求的數(shù)據(jù)時(shí),根據(jù)所述被請(qǐng)求數(shù)據(jù)的尺寸,從具有不同尺寸的所述自由緩沖器中搜索所述所需的緩沖器,所述所需的緩沖器的尺寸大于所述被請(qǐng)求數(shù)據(jù)的尺寸并盡可能的??;將所述所需的緩沖器加入到所述平衡樹(shù)中;以及將所述被請(qǐng)求的數(shù)據(jù)從所述存儲(chǔ)部分存儲(chǔ)進(jìn)所述所需的緩沖器中。
23.根據(jù)權(quán)利要求22所述的記錄媒體,其特征在于所述搜索包含(a)在所述被請(qǐng)求數(shù)據(jù)尺寸的基礎(chǔ)上尋找其中的一個(gè)所述自由表,其中所述被尋找的自由表的尺寸是大于所述被請(qǐng)求數(shù)據(jù)尺寸的所述自由表中的尺寸最小的一個(gè),(b)確定被尋找到的所述自由表是否包含至少一個(gè)所述自由緩沖器,(c)當(dāng)確定被尋找的所述自由表不包含至少一個(gè)所述自由緩沖器時(shí),設(shè)定下一個(gè)作為被尋找所述自由表的所述最小尺寸自由表,及(d)當(dāng)在尋找操作(a)之后或重復(fù)設(shè)定操作(c)之后確定所尋找的所述自由表包含至少一個(gè)所述自由緩沖器時(shí),將包含在所尋找所述自由表中的所述自由緩沖器設(shè)定作為所述所需的緩沖器。
24.根據(jù)權(quán)利要求22所述的記錄媒體,其特征在于所述方法還包含當(dāng)在包含所述平衡樹(shù)的所述緩沖器的數(shù)據(jù)中存在所述被請(qǐng)求的數(shù)據(jù)時(shí),從所述平衡樹(shù)釋放和刪除其中的一個(gè)包含所述緩沖器的數(shù)據(jù);以及根據(jù)所述被請(qǐng)求數(shù)據(jù)的尺寸搜索所述所需緩沖器的所述自由表。
25.根據(jù)權(quán)利要求24所述的記錄媒體,其特征在于所述方法還包含根據(jù)包含所述緩沖器的所述被刪除數(shù)據(jù)的尺寸將包含作為所述自由緩沖器的所述緩沖器的被刪除數(shù)據(jù)加入到其中的一個(gè)所述自由表中。
26.根據(jù)權(quán)利要求24所述的記錄媒體,其特征在于所述方法還包含根據(jù)所述被請(qǐng)求數(shù)據(jù)的尺寸、所述自由表的尺寸和所述至少一個(gè)自由緩沖器是否與每個(gè)所述自由表相連從所述自由表搜索所述所需的緩沖器。
27.根據(jù)權(quán)利要求22所述的記錄媒體,其特征在于所述方法還包含當(dāng)在包含所述平衡樹(shù)的所述緩沖器的數(shù)據(jù)中存在所述被請(qǐng)求的數(shù)據(jù)時(shí),從所述平衡樹(shù)釋放和刪除包含所述緩沖器的數(shù)據(jù);以及根據(jù)所述被請(qǐng)求數(shù)據(jù)的尺寸搜索所述所需的緩沖器的所述自由表。
28.根據(jù)權(quán)利要求27所述的記錄媒體,其特征在于所述方法還包含根據(jù)包含所述緩沖器的每個(gè)被刪除數(shù)據(jù)的尺寸將包含作為所述自由緩沖器的所述緩沖器的被刪除數(shù)據(jù)加入到所述自由表中。
29.根據(jù)權(quán)利要求27所述的記錄媒體,其特征在于所述方法還包含根據(jù)所述被請(qǐng)求數(shù)據(jù)的尺寸、所述自由表的尺寸和至少一個(gè)所述自由緩沖器是否與每個(gè)所述自由表相連從所述自由表搜索所述所需的緩沖器。
30.根據(jù)權(quán)利要求22到29中的任何一個(gè)權(quán)利要求所述的記錄媒體,其特征在于所述方法還包含對(duì)所述平衡樹(shù)進(jìn)行修正,從而在所述平衡樹(shù)的節(jié)點(diǎn)中從根節(jié)點(diǎn)到頁(yè)節(jié)點(diǎn)的深度盡量的均勻。
31.根據(jù)權(quán)利要求30所述的記錄媒體,其特征在于所述方法還包含以預(yù)定的時(shí)間或在所述控制部分的空閑時(shí)間進(jìn)行所述修正操作。
全文摘要
一種高速緩沖存儲(chǔ)器裝置,其包含一個(gè)存儲(chǔ)部分、一個(gè)高速緩沖存儲(chǔ)器和一個(gè)控制部分。高速緩沖存儲(chǔ)器存儲(chǔ)平衡樹(shù)和自由表。在平衡樹(shù)中分級(jí)提供作為節(jié)點(diǎn)的包含在緩沖器中的數(shù)據(jù),并分別提供具有不同尺寸的自由表。當(dāng)存在至少一個(gè)自由表時(shí),每個(gè)自由表包含至少一個(gè)自由緩沖器。當(dāng)在平衡樹(shù)樹(shù)中不存在所請(qǐng)求的數(shù)據(jù)時(shí),控制部分根據(jù)所請(qǐng)求數(shù)據(jù)的尺寸對(duì)所需的緩沖器搜索自由表。所需緩沖器的尺寸大于被請(qǐng)求數(shù)據(jù)的尺寸并盡可能的小。
文檔編號(hào)G06F12/00GK1266229SQ0010303
公開(kāi)日2000年9月13日 申請(qǐng)日期2000年3月1日 優(yōu)先權(quán)日1999年3月5日
發(fā)明者山中亙 申請(qǐng)人:日本電氣株式會(huì)社