專(zhuān)利名稱(chēng):減少隨機(jī)存取存儲(chǔ)器大小同時(shí)保持快速數(shù)據(jù)存取的方法和裝置的制作方法
發(fā)明
背景技術(shù):
領(lǐng)域本發(fā)明涉及電子線路。尤其是,本發(fā)明涉及一種新穎和改進(jìn)的方法和裝置,用于在設(shè)備中減少RAM的需要而保持從較慢的非易失性存儲(chǔ)器中快速查找和檢索數(shù)據(jù)。
背景技術(shù):
某些類(lèi)型的電子存儲(chǔ)器用于幾乎所有的現(xiàn)代電子設(shè)備中。電子存儲(chǔ)器能采取軟盤(pán)、磁帶、硬盤(pán)和集成電路(IC)的形式。存儲(chǔ)器的每種形式具有其優(yōu)點(diǎn)和缺點(diǎn)。軟盤(pán)使得大量數(shù)據(jù)在便攜式的介質(zhì)上更新,但具有有限的容量和相當(dāng)長(zhǎng)的讀寫(xiě)存取時(shí)間。磁帶和硬盤(pán)均有大量存儲(chǔ)容量的能力,但卻不便于隨身可帶,需要大量的支持硬件,且有慢的存取時(shí)間。保存在軟盤(pán)、硬盤(pán)和磁帶上的數(shù)據(jù)在存入該介質(zhì)前常常先以軟件格式化為文件格式。當(dāng)數(shù)據(jù)從存儲(chǔ)介質(zhì)中恢復(fù)時(shí),必須運(yùn)行軟件文件程序以定位并提取所需的數(shù)據(jù)。這更減慢了數(shù)據(jù)存取過(guò)程。因?yàn)樗谝呀?jīng)很慢的硬件存取的頂上又增加了軟件層。
IC存儲(chǔ)器通常使用在存儲(chǔ)器需要集成在便攜設(shè)備中的地方。改變IC的類(lèi)型和數(shù)量就能調(diào)節(jié)存儲(chǔ)量。IC要求很小的支持硬件,并特別小,且能提供快速的讀寫(xiě)訪問(wèn)時(shí)間。某些IC存儲(chǔ)器能方便支持直接訪問(wèn)而不需要軟件層。
可買(mǎi)到許多不同類(lèi)型的IC存儲(chǔ)器,對(duì)各種設(shè)計(jì)要求提供解決方法。每種存儲(chǔ)器能滿足若干設(shè)計(jì)要求,但沒(méi)有一種存儲(chǔ)器類(lèi)型能提供完全的設(shè)計(jì)解決方法。對(duì)任何特定應(yīng)用選定的存儲(chǔ)器類(lèi)型取決于計(jì)劃的用途及性能設(shè)計(jì)之間的折衷方案。
最普通類(lèi)型的IC存儲(chǔ)器是只讀存儲(chǔ)器(ROM)。如名稱(chēng)的含意所示,該存儲(chǔ)器只能讀訪問(wèn)。ROM設(shè)備一旦經(jīng)編程后就不能重寫(xiě)。嵌入的軟件應(yīng)用使用ROM存儲(chǔ)嵌入的程序碼及數(shù)據(jù)記錄。在嵌入軟件應(yīng)用中的處理器從ROM檢索每條指令并執(zhí)行之。依據(jù)在ROM中被編程信息的易失性可以得到不同類(lèi)型的ROM。如果存在ROM中的信息不希望改變,且期望的設(shè)備容量是高的,則使用掩膜編程ROM。在管芯封裝之前此類(lèi)ROM已掩膜編程。要編程的信息必需是高度穩(wěn)定并不會(huì)修改的,因?yàn)榫幊绦畔⒌母淖冃枰谀じ淖?。使用掩膜編程ROM的好處對(duì)于高容量成熟產(chǎn)品來(lái)說(shuō)在于其成本和時(shí)間的節(jié)省。對(duì)產(chǎn)品可采用其他類(lèi)型的ROM,但它們不能保證產(chǎn)品容量或代碼的穩(wěn)定性,這足以證明使用掩膜編程ROM是正確的。
可編程只讀存儲(chǔ)器(PROM)使得設(shè)備制造者能編程嵌入的代碼。它允許對(duì)代碼修改,但仍不允許ROM在編程以后的修改和擦除。用過(guò)時(shí)的代碼修改編程的設(shè)備仍使用過(guò)時(shí)的代碼修改,或丟棄之。
可擦除可編程只讀存儲(chǔ)器(EPROM)提供完全擦除程序部分的能力。EPROM的擦除是通過(guò)將管芯暴露在紫外(UV)光一段預(yù)定時(shí)間來(lái)實(shí)現(xiàn)。管芯能通過(guò)在EPROM封裝上的透明窗口暴露在紫外光下。一旦擦除,該EPROM能重新編程。EPROM通常只用于工程開(kāi)發(fā),在其中期望的代碼修改次數(shù)較高。與PROM相比,配置透明窗口的封裝類(lèi)型的局限性是EPROM高得多的價(jià)格因素。雖然EPROM能擦除及重新編程,但對(duì)代碼的修改是完全在芯片基礎(chǔ)上做出。即使改變代碼中的一個(gè)位也需要完全擦除并重新編程。此局限性及擦除對(duì)紫外線的要求將更新EPROM的任務(wù)局限在原始設(shè)備制造商(OEM)身上。
能擦除選擇的內(nèi)容并重新編程的設(shè)備是電子可擦除可編程只讀只讀存儲(chǔ)器(EEPROM)。傳統(tǒng)的EEPROM使數(shù)據(jù)能適當(dāng)更新。即能擦除特定數(shù)據(jù)單元并且用新的數(shù)據(jù)改寫(xiě)同一單元。從EEPROM能迅速讀出數(shù)據(jù)。但傳統(tǒng)EEPROM的寫(xiě)周期比讀時(shí)間長(zhǎng)幾個(gè)數(shù)量級(jí)。使用傳統(tǒng)EEPROM的另一缺點(diǎn)產(chǎn)生于傳統(tǒng)EEPROM單元的內(nèi)在結(jié)構(gòu)。傳統(tǒng)EEPROM單元的結(jié)構(gòu)與標(biāo)準(zhǔn)的PROM相比需要更多的晶體管。結(jié)構(gòu)的增加導(dǎo)致存儲(chǔ)器容量減少且價(jià)格升高。這些缺點(diǎn)使得傳統(tǒng)的EEPROM不能在大多數(shù)消費(fèi)電子應(yīng)用中使用。
隨機(jī)存取存儲(chǔ)器(RAM)代表另一種替代存儲(chǔ)裝置。RAM允許有選擇的數(shù)據(jù)讀和寫(xiě)。讀和寫(xiě)能基于字節(jié)完成。在將新的數(shù)據(jù)寫(xiě)入到以前寫(xiě)過(guò)的字節(jié)以前不需要擦除周期。此外,不象EEPROM,RAM的讀和寫(xiě)周期的時(shí)間幾乎相等。RAM的密度及容量可與ROM相比。使用RAM的主要缺點(diǎn)在于存儲(chǔ)數(shù)據(jù)的易失性。每當(dāng)RAM掉電時(shí),儲(chǔ)存在RAM中的信息就會(huì)丟失。這與ROM相反,后者是非易失性存儲(chǔ)器,即使該IC在供電周期之后存儲(chǔ)器的內(nèi)容依然得以保存。為了維持RAM的內(nèi)容,在芯片上必須一直維持電源。這需要對(duì)正常供電有電池后備。在電源供應(yīng)斷開(kāi)時(shí),如果電源后備掉電,該RAM的內(nèi)容將丟失。為此,RAM不用于嵌入的代碼而只用于動(dòng)態(tài)存儲(chǔ)器。用于嵌入代碼的RAM易受電池掉電和供電故障的影響。此外,如果RAM用于嵌入的代碼,如蜂窩電話那樣的電池驅(qū)動(dòng)設(shè)備,由于RAM的恒定電源要求而具有減少的電池壽命。在RAM用于動(dòng)態(tài)存儲(chǔ)器時(shí),該系統(tǒng)并不關(guān)心在供電周期之后內(nèi)容是否丟失。這就減輕了對(duì)電池后備的需求。但是RAM的成本高于ROM的成本。
另一種存儲(chǔ)選擇是通常稱(chēng)之為閃存的塊EEPROM。塊EEPROM是允許基于字節(jié)讀寫(xiě)的非易失存儲(chǔ)設(shè)備。不象RAM,在塊EEPROM中,在改寫(xiě)以前寫(xiě)過(guò)的字節(jié)以前必須完成擦除操作。但是數(shù)據(jù)擦除不能按字節(jié)完成。擦除只能按塊完成,其中塊的大小由所選的特定存儲(chǔ)設(shè)備確定??刹脸龎K的大小總是大于一個(gè)字節(jié)并能是約為64千字節(jié)。但是,擦除的次數(shù)不是無(wú)限的,而受最大周期壽命所限。對(duì)塊EEPROM通常推薦的擦除周期壽命是100,000周期。因而,對(duì)于在預(yù)期設(shè)備壽命周期中有大于100,000次的擦除周期需求的應(yīng)用,就不應(yīng)該使用塊EEPROM。在需要少于100,000次擦除和改寫(xiě)周期的應(yīng)用中,與其他類(lèi)型可改寫(xiě)存儲(chǔ)器比較,塊EEPROM具有優(yōu)點(diǎn)。對(duì)于嵌入的代碼應(yīng)用來(lái)說(shuō),塊EEPROM優(yōu)于任何類(lèi)型的ROM,因?yàn)閴KEEPROM是非易失的。由于塊EEPROM能改寫(xiě)電路中部分存儲(chǔ)器,因而,塊EEPROM更優(yōu)于EPROM。塊EEPROM也不需要紫外光作芯片擦除。由于塊EEPROM設(shè)備的低價(jià)格和高密度,因此,塊EEPROM優(yōu)于具有可比較的重寫(xiě)限制的傳統(tǒng)的EEPROM。在便攜式電子設(shè)備中,塊EEPROM用于用戶(hù)可配置數(shù)據(jù)的非易失性存儲(chǔ)。
存在塊EEPROM的數(shù)據(jù)通常進(jìn)行格式化以符合文件系統(tǒng)。文件格式規(guī)范部分地由塊尺寸的擦除周期決定。數(shù)據(jù)不是對(duì)特定單元的存儲(chǔ)映象,因?yàn)閴KEEPROM中的數(shù)據(jù)不能在適當(dāng)位置重寫(xiě)。附加軟件開(kāi)銷(xiāo)導(dǎo)致存儲(chǔ)器訪問(wèn)時(shí)間大大增加。在多任務(wù)系統(tǒng)中,訪問(wèn)時(shí)間將進(jìn)一步增加。在多任務(wù)系統(tǒng)中,非易失性存儲(chǔ)器訪問(wèn)可以由高優(yōu)先級(jí)任務(wù)優(yōu)先占有。搶占要求低優(yōu)先級(jí)任務(wù)在處理以前等待較高優(yōu)先級(jí)任務(wù)的完成。當(dāng)軟件開(kāi)銷(xiāo)包括在訪問(wèn)時(shí)間的計(jì)算之中時(shí),從塊EEPROM訪問(wèn)數(shù)據(jù)的時(shí)間可能比對(duì)存在RAM設(shè)備中的數(shù)據(jù)的訪問(wèn)時(shí)間要慢1000到10,000倍。
長(zhǎng)訪問(wèn)時(shí)間引起了用戶(hù)接口問(wèn)題。在如無(wú)線電話那樣的便攜式電子設(shè)備中,非易失性用戶(hù)可配置的數(shù)據(jù)常常存入塊EEPROM中。如果訪問(wèn)電話簿數(shù)據(jù)是即時(shí)發(fā)生的,用戶(hù)接口需加強(qiáng),從塊EEPROM檢索數(shù)據(jù)導(dǎo)致在用戶(hù)輸入電話號(hào)碼與電話簿中的記錄比較時(shí)很慢的用戶(hù)響應(yīng)。這是由于在處理文件系統(tǒng)時(shí)的軟件開(kāi)銷(xiāo),為了從塊EEPROM檢索任何數(shù)據(jù)這是必須啟動(dòng)的。長(zhǎng)訪問(wèn)時(shí)間延遲使得在數(shù)據(jù)檢索必須在某個(gè)預(yù)定的時(shí)間窗內(nèi)發(fā)生的實(shí)時(shí)系統(tǒng)中引起嚴(yán)重的問(wèn)題。
對(duì)于塊EEPROM或任何其他非易失性存儲(chǔ)器的慢訪問(wèn)時(shí)間的一個(gè)解決辦法是將所有數(shù)據(jù)從非易失數(shù)據(jù)記錄傳輸?shù)絉AM。數(shù)據(jù)記錄能在設(shè)備開(kāi)啟時(shí)從非易失RAM傳輸。然后,所有數(shù)據(jù)能迅速?gòu)腞AM檢索。這就大大加強(qiáng)了用戶(hù)接口。然而,此解決方法引起相當(dāng)大的成本及空間的缺點(diǎn)。僅僅為了加強(qiáng)用戶(hù)接口就需要額外的RAM以冗余存儲(chǔ)非易失失性存儲(chǔ)器的內(nèi)容。人們需要一種方法和裝置,用于減少在訪問(wèn)存儲(chǔ)在非易失存儲(chǔ)器中的數(shù)據(jù)時(shí),為保持快速用戶(hù)接口所需的RAM的數(shù)量。
發(fā)明內(nèi)容
本發(fā)明是一種新穎的改進(jìn)的方法和裝置,用于減少支持從較慢的非易失存儲(chǔ)器中快速數(shù)據(jù)檢索所需的RAM的數(shù)量。使用RAM代替非易失存儲(chǔ)器大大減少了數(shù)據(jù)搜索時(shí)間。由于每次訪問(wèn)非易失存儲(chǔ)器時(shí)必須執(zhí)行的軟件開(kāi)銷(xiāo),RAM訪問(wèn)比非易失存儲(chǔ)器訪問(wèn)要快幾個(gè)數(shù)量級(jí)。
數(shù)據(jù)記錄集合能保存在非易失性存儲(chǔ)器。因?yàn)榕c非易失性存儲(chǔ)器訪問(wèn)相關(guān)的軟件開(kāi)銷(xiāo),使得非易失性數(shù)據(jù)記錄的訪問(wèn)緩慢。使用本發(fā)明能大大地增強(qiáng)對(duì)存儲(chǔ)在非易失性存儲(chǔ)器中的數(shù)據(jù)記錄的搜索。當(dāng)必須搜索存儲(chǔ)在非易失性存儲(chǔ)器的數(shù)據(jù)記錄時(shí),通常需要對(duì)非易失性存儲(chǔ)器的許多次訪問(wèn)。本發(fā)明通過(guò)在RAM的預(yù)定位置上保存一系列計(jì)算的標(biāo)簽值來(lái)減少對(duì)非易失性數(shù)據(jù)記錄的訪問(wèn)次數(shù)。然后對(duì)保存在非易失性存儲(chǔ)器的數(shù)據(jù)記錄的搜索是通過(guò)首先搜遍預(yù)定的RAM單元尋找對(duì)應(yīng)的標(biāo)簽值,若找到匹配的標(biāo)簽值再查找非易失性數(shù)據(jù)記錄。搜索在RAM中匹配的標(biāo)簽值將通常搜索匹配數(shù)據(jù)記錄所需的非易失性存儲(chǔ)訪問(wèn)次數(shù)減少到1。這與在傳統(tǒng)的非易失性數(shù)據(jù)記錄的搜索中需要多次非易失性記錄的檢索和比較形成對(duì)照。
在RAM中分配預(yù)定數(shù)目的存儲(chǔ)器單元,對(duì)應(yīng)于保存在非易失存儲(chǔ)器中的數(shù)據(jù)記錄數(shù)。在RAM中分配的每個(gè)存儲(chǔ)器單元不需要大得能保存在非易失存儲(chǔ)器中存儲(chǔ)的數(shù)據(jù)記錄。在較佳實(shí)施例中對(duì)于在非易失存儲(chǔ)器中的每個(gè)數(shù)據(jù)記錄分配二個(gè)RAM字節(jié)。非易失性數(shù)據(jù)記錄可以任意長(zhǎng)。定義標(biāo)簽函數(shù)H(x),使得每個(gè)非易失性記錄映射對(duì)應(yīng)的標(biāo)簽值。標(biāo)簽函數(shù)H(x)不需要提供數(shù)據(jù)記錄到標(biāo)簽值的1∶1映射。數(shù)據(jù)記錄到標(biāo)簽值的1∶1映射將非易失性存儲(chǔ)器訪問(wèn)數(shù)最小化到每次數(shù)據(jù)記錄搜索僅一次非易失性記錄訪問(wèn)。
預(yù)定的RAM單元保存從對(duì)應(yīng)的非易失性數(shù)據(jù)記錄的內(nèi)容所確定的標(biāo)簽值。當(dāng)需要搜索特定數(shù)據(jù)記錄時(shí),對(duì)被搜索的記錄計(jì)算標(biāo)簽值。如果搜索到的記錄分配為y,則計(jì)算標(biāo)簽值H(y)。然后,該標(biāo)簽值H(y)與所有儲(chǔ)存在預(yù)定RAM單元中的標(biāo)簽值比較。由于RAM快速的訪問(wèn)能力,此步驟很快執(zhí)行。如果在RAM中找到匹配的標(biāo)簽值,對(duì)應(yīng)的非易失性存儲(chǔ)器單元識(shí)別為對(duì)應(yīng)于特定RAM單元的單元。檢索非易失性數(shù)據(jù)記錄的內(nèi)容并與搜索到的記錄比較。如果兩者匹配,則搜索完成。如果檢索到的非易失性存儲(chǔ)器記錄和搜索的記錄不相同匹配,搜索RAM中余下的標(biāo)簽值,尋找與搜索到的記錄而計(jì)算的標(biāo)簽值的匹配。搜索繼續(xù)進(jìn)行,直到找到一個(gè)相等匹配,或者到達(dá)RAM標(biāo)簽值的終點(diǎn)。
因?yàn)橹饕乃阉魇鞘褂肦AM標(biāo)簽表執(zhí)行,因而,本發(fā)明在搜索數(shù)據(jù)記錄所占用的時(shí)間量方面大大減少。非易失性存儲(chǔ)器記錄只在找到標(biāo)簽值匹配時(shí)才訪問(wèn)。對(duì)多數(shù)搜索只需要一次非易失性存儲(chǔ)器訪問(wèn)。時(shí)間的節(jié)省提供了增強(qiáng)的用戶(hù)接口,同時(shí)RAM的減少提供了硬件成本的降低。
根據(jù)下面給出的詳細(xì)描述結(jié)合附圖,本發(fā)明的特征、目標(biāo)和優(yōu)點(diǎn)變得更加明白。圖中相似的參考字符在所有圖中互相對(duì)應(yīng)。其中圖1是分層存儲(chǔ)器實(shí)現(xiàn)的方框圖;圖2A-2B是方框圖,示出根據(jù)查找NV存儲(chǔ)器表的RAM的實(shí)現(xiàn);和圖3A-3B是本發(fā)明的RAM實(shí)現(xiàn)的流程圖。
具體實(shí)施例方式
在任何電子設(shè)備中的存儲(chǔ)器和存儲(chǔ)設(shè)備按照希望的需求分配。在如無(wú)線電話那樣的電子設(shè)備中的存儲(chǔ)器通常為非易失性存儲(chǔ)器和RAM形式。非易失性存儲(chǔ)器可以是PROM和非易失性塊EEPROM的組合。在工業(yè)中所共知的一種非易失性塊EEPROM類(lèi)型是閃存。
使用閃存的優(yōu)點(diǎn)之一是其電可擦除和可改寫(xiě)的能力。如上所述,閃存的缺點(diǎn)之一是它不能在適當(dāng)位置更新數(shù)據(jù)。整個(gè)塊必須同時(shí)擦除。為了最有效地使用閃存空間,在閃存中保存的數(shù)據(jù)不存儲(chǔ)映象到特定單元,相反,它使用基于文件的存儲(chǔ)系統(tǒng)保存。相對(duì)比,存在RAM中的數(shù)據(jù)可以在適當(dāng)位置更新且因此能分配一個(gè)存儲(chǔ)映象。
圖1示出如無(wú)線電話10那樣的一個(gè)電子設(shè)備的存儲(chǔ)器20的結(jié)構(gòu)的方框圖。所有存入存儲(chǔ)器20的數(shù)據(jù)在數(shù)據(jù)庫(kù)110中進(jìn)行管理。本質(zhì)上易失或瞬時(shí)的數(shù)據(jù)存入RAM 120??梢苑峙浯鎯?chǔ)映象給RAM 120數(shù)據(jù),因?yàn)镽AM 120數(shù)據(jù)能在適當(dāng)?shù)胤礁?。然而,具有變化的長(zhǎng)度或位置的其他數(shù)據(jù)片就使用文件系統(tǒng)130管理。文件系統(tǒng)130是軟件程序,該程序確定基于文件數(shù)據(jù)的格式、位置和大小。對(duì)其數(shù)據(jù)使用基于文件的結(jié)構(gòu)的設(shè)備之一是非易失性存儲(chǔ)器140。存在非易失存儲(chǔ)器140中的所有數(shù)據(jù)必須首先在文件系統(tǒng)130中格式化。在文件系統(tǒng)130下層的分層非易失性存儲(chǔ)器140在訪問(wèn)存儲(chǔ)在非易失性存儲(chǔ)器140中的任何數(shù)據(jù)時(shí)產(chǎn)生進(jìn)一步的延遲。在訪問(wèn)存儲(chǔ)在非易失性存儲(chǔ)器140中的數(shù)據(jù)時(shí)的延遲能產(chǎn)生不希望的延遲,其中數(shù)據(jù)必須從非易失性存儲(chǔ)器檢索作為用戶(hù)界面的一部分。在無(wú)線電話中經(jīng)常應(yīng)用的使用數(shù)據(jù)的一個(gè)例子是搜索用戶(hù)產(chǎn)生的電話簿。
無(wú)線電話通常具有保存用戶(hù)產(chǎn)生的電話簿記錄的能力。在保存在非易失性存儲(chǔ)器中的電子電話簿中用戶(hù)通常能具有超過(guò)100個(gè)電話號(hào)碼及對(duì)應(yīng)的名字。記錄的實(shí)際數(shù)目只受設(shè)計(jì)者希望分配給電話簿的存儲(chǔ)器空間大小的限制。每個(gè)電話號(hào)及名字組成保存在非易失性存儲(chǔ)器中的數(shù)據(jù)記錄。每個(gè)電話號(hào)最多有32個(gè)字符長(zhǎng)。此長(zhǎng)度可容納區(qū)號(hào)、內(nèi)部分機(jī)、接入號(hào)和個(gè)人識(shí)別號(hào)以便對(duì)指定的號(hào)碼自動(dòng)撥號(hào)。對(duì)名字可分配任意數(shù)目字符,但為方便起見(jiàn),假設(shè)為32字符長(zhǎng)。如果我們假設(shè)允許有512個(gè)電話號(hào)碼及名字組合,則必須分配16K非易失性存儲(chǔ)器。當(dāng)用戶(hù)輸入一個(gè)電話號(hào)碼或名字并希望搜索電話簿尋找對(duì)應(yīng)的保存信息時(shí),必須搜索存在非易失性存儲(chǔ)器中的數(shù)據(jù)記錄。
存在非易失性存儲(chǔ)器內(nèi)的數(shù)據(jù)記錄只能通過(guò)文件系統(tǒng)130讀出。文件系統(tǒng)130是在數(shù)據(jù)庫(kù)110之下的層。在非易失性存儲(chǔ)器訪問(wèn)頂部的多層對(duì)于任何對(duì)存在非易失性存儲(chǔ)器的數(shù)據(jù)記錄的訪問(wèn)產(chǎn)生較大延遲。在傳統(tǒng)的搜索程序期間,從非易失性存儲(chǔ)器檢索數(shù)據(jù)記錄并與輸入數(shù)據(jù)比較。如果兩者匹配,就找到對(duì)應(yīng)于此匹配的數(shù)據(jù)記錄。如果兩者不匹配,丟棄第一個(gè)檢索的數(shù)據(jù)記錄并從非易失性存儲(chǔ)器檢索下一個(gè)數(shù)據(jù)記錄。從非易失性存儲(chǔ)器檢索數(shù)據(jù)記錄并與輸入數(shù)據(jù)比較的步驟一直持續(xù)到找到匹配或搜索過(guò)非易失性存儲(chǔ)器中所有記錄為止。從非易失性存儲(chǔ)器檢索數(shù)據(jù)記錄之前必須經(jīng)過(guò)的多個(gè)層提供延遲。當(dāng)輸入數(shù)據(jù)必須與存在非易失存儲(chǔ)器中的大量?jī)?nèi)容相比較時(shí),對(duì)用戶(hù)界面來(lái)說(shuō)此延遲過(guò)長(zhǎng)。輸入名字或電話號(hào)碼并希望檢索與此記錄有關(guān)的存儲(chǔ)信息的用戶(hù)不希望等待很長(zhǎng)時(shí)間。用戶(hù)界面需要看來(lái)對(duì)用戶(hù)是無(wú)間隙且瞬時(shí)的。
增加與搜索非易失性數(shù)據(jù)記錄有關(guān)的速度的一個(gè)方法是在RAM中執(zhí)行搜索。對(duì)存在RAM中數(shù)據(jù)記錄的訪問(wèn)時(shí)間比從非易失存儲(chǔ)器檢索相等的數(shù)據(jù)記錄的訪問(wèn)時(shí)間要快幾個(gè)數(shù)量級(jí)。訪問(wèn)時(shí)間的差異歸因于文件系統(tǒng)。RAM不需要數(shù)據(jù)記錄格式化以及在文件系統(tǒng)下訪問(wèn)。為了實(shí)現(xiàn)在RAM而不是非易失失性存儲(chǔ)器中搜索,可以將所有非易失性存儲(chǔ)器的數(shù)據(jù)記錄傳送到RAM。隨后,當(dāng)需要搜索時(shí),所有數(shù)據(jù)記錄在RAM中都可以得到。此方法具有缺點(diǎn),就是使用了大量RAM僅僅為了冗余地存儲(chǔ)在非易失性存儲(chǔ)器中可以得到數(shù)據(jù)記錄。額外的RAM的成本增加和物理尺寸的增加,使得該解決方法在如無(wú)線電話那樣的便攜式電子設(shè)備中實(shí)現(xiàn)并非理想。
在圖2A中示出一種替代實(shí)現(xiàn)方法,它改善了存儲(chǔ)在非易失性存儲(chǔ)器的數(shù)據(jù)記錄的搜索時(shí)間,而不必將整個(gè)非失性存儲(chǔ)器的內(nèi)容保存在RAM中。在圖2A中不使用RAM保存在非易失存儲(chǔ)器中存儲(chǔ)的數(shù)據(jù)記錄。而是在RAM中定義RAM散列箱(hash bin)220。每個(gè)原始的非易失性(NV)記錄210輸入到散列函數(shù)。指向輸入NV記錄210的指針存入對(duì)應(yīng)于輸出散列數(shù)的RAM散列箱220。散列函數(shù)不需要提供NV記錄210到RAM散列箱220的1∶1映射。但是散列函數(shù)的選擇是權(quán)衡RAM散列箱220的數(shù)目及訪問(wèn)時(shí)間的因素進(jìn)行折衷選擇。散列函數(shù)映射越單一,RAM散列箱220所需的空間越大。單獨(dú)的散列函數(shù)映射的優(yōu)點(diǎn)是當(dāng)搜索NV記錄210尋找匹配時(shí),減少對(duì)非易失性存儲(chǔ)器的訪問(wèn)次數(shù)。
在圖2A中所示的實(shí)現(xiàn)方法如下執(zhí)行。在初始化電子設(shè)備后,每個(gè)NV記錄210輸入到散列函數(shù)。初始化可以在電子設(shè)備的任何情況引起。在無(wú)線電話中的初始化在上電時(shí)引起。散列函數(shù)的一個(gè)例子如下所示。
yN=(Σi=1N5(yi-1)+xi)/(65521)]]>在等式中xi表示輸入到散列函數(shù)的特定的NV數(shù)據(jù)記錄中第i個(gè)字節(jié)。yi表示處理在特定NV數(shù)據(jù)記錄中i個(gè)字節(jié)后散列函數(shù)的輸出。數(shù)N表示包括每個(gè)NV數(shù)據(jù)記錄輸入的字節(jié)數(shù)。在上述例子中,每個(gè)NV數(shù)據(jù)記錄是32字節(jié)長(zhǎng)。對(duì)上述例子中數(shù)據(jù)記錄長(zhǎng)為N=32。對(duì)實(shí)際應(yīng)用使用整數(shù)算術(shù)執(zhí)行計(jì)算??梢钥吹?,當(dāng)使用整數(shù)算術(shù)時(shí)從輸入到輸出的映射不是1∶1。
散列函數(shù)的輸出落入確定的RAM散列箱220中。指向用作到散列函數(shù)的輸入的NV記錄的指針222存入RAM散列箱220。與數(shù)據(jù)記錄相比較,指針使用較少存儲(chǔ)空間存儲(chǔ)。通常為指針?lè)峙?個(gè)字節(jié)。對(duì)具有512個(gè)輸入的非易失性數(shù)據(jù)記錄,需要2K存儲(chǔ)器容納所有指針。這就提供RAM存儲(chǔ)器空間可能的節(jié)省。
每個(gè)散列箱必須具有保存多于一個(gè)指針222的能力。因?yàn)樯⒘泻瘮?shù)不提供輸入到輸出1∶1的映射,因此,這是必須。在散列函數(shù)中缺少1∶1的映射產(chǎn)生了RAM存儲(chǔ)器分配問(wèn)題。為了保證每個(gè)散列箱只有一個(gè)指針,就需要確定大量的散列箱。如果確定較少數(shù)量的散列箱,每個(gè)散列箱就可能需要存儲(chǔ)若干指針。
如果確定64K個(gè)散列箱,設(shè)計(jì)者能保證每個(gè)散列箱只有一個(gè)指針在其中。因?yàn)橹恍枰?K個(gè)指針來(lái)識(shí)別所有數(shù)據(jù)記錄,很明顯大多數(shù)散列箱將含有空指針。分配64K散列箱明顯比將所有非易失性數(shù)據(jù)記錄加載到RAM中需要更大數(shù)量的RAM空間。因此,此解決方案是不可行的。為了減少RAM的需求,一個(gè)設(shè)計(jì)分配少于64K的散列箱。然而,減少散列箱的數(shù)目必然增加了任意一個(gè)散列箱將包含多于一個(gè)指針值的可能性。
為了尋找與某些輸入數(shù)據(jù)的數(shù)據(jù)記錄匹配,輸入數(shù)據(jù)首先要通過(guò)散列函數(shù)。隨后,散列函數(shù)的輸出將搜索程序?qū)蛱囟ǖ纳⒘邢?。如果分散列箱中未存入指針,則在非易失性數(shù)據(jù)記錄中找不到匹配。如果未找到匹配,這就大大減少了搜索時(shí)間。在傳統(tǒng)的搜索中,在判定不存在匹配之前必須要檢索在非易失存儲(chǔ)器中所有數(shù)據(jù)記錄,并與輸入比較,使用散列箱方法對(duì)非易失性存儲(chǔ)器的訪問(wèn)在判定不存在匹配之前并不需要發(fā)生。
如果有指針存在散列箱中,從散列箱中獲得第一指針并檢索該指針指向的NV記錄。然后在輸入和檢索到的數(shù)據(jù)記錄之間執(zhí)行全面比較。如果兩者等同,則找到匹配并能得到余下的有關(guān)數(shù)據(jù)記錄。如果檢索的數(shù)據(jù)記錄不匹配,則如果存在的話,就檢索在散列箱中下一個(gè)指針。重復(fù)執(zhí)行比較和從散列箱檢索指針,直到找到匹配或已經(jīng)比較了由該散列箱指針指向的所有非易失性數(shù)據(jù)記錄為止。
在以前的實(shí)現(xiàn)中有多次訪問(wèn)非易失性存儲(chǔ)器的可能性。對(duì)非易失性存儲(chǔ)器訪問(wèn)的次數(shù)取決于存在每個(gè)散列箱中的指針數(shù)。所需的散列箱的數(shù)目與散列函數(shù)有關(guān)。單獨(dú)的散列箱的數(shù)目增加減少了非易失性存儲(chǔ)器訪問(wèn)的次數(shù)。非易失性存儲(chǔ)器訪問(wèn)次數(shù)的減少是以增加所需的RAM為代價(jià)的。
本發(fā)明使用一個(gè)實(shí)現(xiàn)方法,它減少數(shù)據(jù)記錄搜索次數(shù)并降低RAM的需求。本發(fā)明的一個(gè)方框圖示為圖2B。在本發(fā)明中,如前所述,NV記錄210包括數(shù)據(jù)記錄的集合。然而,在RAM中為標(biāo)簽值230分配一個(gè)存儲(chǔ)器塊代替了在RAM中定義散列箱。如上例所述,存儲(chǔ)在非易失性存儲(chǔ)器中的每個(gè)數(shù)據(jù)記錄是32字符長(zhǎng)。在非易失性存儲(chǔ)器內(nèi)分配512個(gè)可用的記錄。這對(duì)應(yīng)于16K的存儲(chǔ)器。本發(fā)明為在非易失存儲(chǔ)器中的每條數(shù)據(jù)記錄分配2字節(jié)RAM空間。為容納512條數(shù)據(jù)記錄,需要分配1K字節(jié)的RAM。因?yàn)榉峙浣o每個(gè)非易失性存儲(chǔ)器記錄的RAM的字節(jié)數(shù)是常數(shù),可指定RAM的地址單元來(lái)對(duì)應(yīng)非易失性數(shù)據(jù)記錄。作為一個(gè)例子,第一非易失性數(shù)據(jù)記錄將對(duì)應(yīng)于分配在RAM中的頭兩個(gè)字節(jié)。
分配給每個(gè)非易失性數(shù)據(jù)記錄的兩個(gè)RAM字節(jié)不足以保存整個(gè)數(shù)據(jù)記錄。而是,這兩個(gè)字節(jié)保存對(duì)應(yīng)于該數(shù)據(jù)記錄的標(biāo)簽值。使用上述同樣的散列函數(shù)產(chǎn)生標(biāo)簽值。計(jì)算對(duì)應(yīng)于非易失性存儲(chǔ)器中每個(gè)數(shù)據(jù)記錄的標(biāo)簽值并存入RAM中預(yù)定的位置。因此,本發(fā)明使分配的RAM數(shù)量最小。為每條非易失性數(shù)據(jù)記錄分配在RAM中分配兩個(gè)字節(jié),并且存在512個(gè)數(shù)據(jù)記錄。因此只需分配1K RAM。
當(dāng)輸入值需要與非易失性存儲(chǔ)器數(shù)據(jù)記錄的內(nèi)容進(jìn)行比較時(shí),該輸入值首先通過(guò)散列函數(shù)。然后,輸出散列值與存在RAM中的標(biāo)簽值比較。當(dāng)確定一個(gè)匹配標(biāo)簽值,檢索對(duì)應(yīng)于該標(biāo)簽值位置的非易失性存儲(chǔ)器的內(nèi)容并與原始的輸入值比較。如果兩者等同,則找到匹配。否則,繼續(xù)搜索下面的RAM標(biāo)簽值,直到另一標(biāo)簽值產(chǎn)生匹配的數(shù)據(jù)記錄或達(dá)到標(biāo)簽值表的末端為止。以此方式,大部分的搜索在RAM中執(zhí)行,訪問(wèn)非易失性存儲(chǔ)器的唯一時(shí)間是在計(jì)算的輸入標(biāo)簽值匹配以前存入的標(biāo)簽值中一個(gè)時(shí)。如果散列函數(shù)不產(chǎn)生大量的復(fù)制標(biāo)簽值,對(duì)非易失性存儲(chǔ)器的訪問(wèn)數(shù)就最小。使用前述的散列函數(shù),對(duì)非易失性存儲(chǔ)器的訪問(wèn)數(shù)最小化到對(duì)于99%的數(shù)據(jù)搜索其訪問(wèn)次數(shù)都為1次。
圖3A示出本發(fā)明的流程圖。程序從狀態(tài)301啟動(dòng)。每當(dāng)設(shè)備打開(kāi)電源時(shí)程序都初始化。在無(wú)線電話的情況,每當(dāng)用戶(hù)打開(kāi)電話電源,程序啟動(dòng)301。程序接著進(jìn)到狀態(tài)304,在其中讀出在非易失性(NV)存儲(chǔ)器數(shù)據(jù)記錄中所有項(xiàng)。接著在狀態(tài)308,對(duì)NV存儲(chǔ)器項(xiàng)計(jì)算標(biāo)簽值。使用如前述的散列函數(shù)那樣的函數(shù)對(duì)每個(gè)NV存儲(chǔ)器項(xiàng)計(jì)算標(biāo)簽值。每個(gè)標(biāo)簽值需兩個(gè)字節(jié)。
程序隨后進(jìn)到狀態(tài)310,其中計(jì)算的標(biāo)簽值存入預(yù)定RAM單元。每個(gè)RAM單元對(duì)應(yīng)于在NV存儲(chǔ)器數(shù)據(jù)記錄集合中的一個(gè)項(xiàng)。作為例子,在RAM標(biāo)簽值表中的第六項(xiàng)是對(duì)應(yīng)于NV存儲(chǔ)器數(shù)據(jù)記錄中第六項(xiàng)的絕對(duì)地址,而不考慮在NV存儲(chǔ)器中實(shí)際駐留位置。
標(biāo)簽值存入RAM以后,任何數(shù)據(jù)記錄的搜索主要在RAM中執(zhí)行。狀態(tài)320假設(shè)項(xiàng)‘y’需要與數(shù)據(jù)記錄的內(nèi)容比較。在如無(wú)線電話那樣的電子設(shè)備中,項(xiàng)‘y’可以對(duì)應(yīng)于用戶(hù)輸入的電話號(hào)碼。數(shù)據(jù)記錄內(nèi)容對(duì)應(yīng)于與特定電話號(hào)碼相關(guān)的名字和信息。用戶(hù)能輸入電話號(hào)碼并希望檢索與此號(hào)碼有關(guān)的所有以前存儲(chǔ)的信息。
搜索的第一步在狀態(tài)322完成,其中計(jì)算對(duì)應(yīng)于輸入‘y’的標(biāo)簽值。在狀態(tài)324,初始化在搜索中使用的變址計(jì)數(shù)器。流程接著進(jìn)到點(diǎn)330。點(diǎn)330不是流程圖的功能單元,僅僅包括用于將在圖3A的流程圖的狀態(tài)鏈接到圖3B的流程圖的狀態(tài)。
圖3B從連接圖3A的流程圖到圖3B的流程圖的點(diǎn)330開(kāi)始。程序從點(diǎn)330進(jìn)入到狀態(tài)340。在狀態(tài)340,程序從RAM中檢索對(duì)應(yīng)于變址計(jì)數(shù)器識(shí)別的單元上以前存入的標(biāo)簽值。程序接著進(jìn)入344,在那里對(duì)應(yīng)于項(xiàng)‘y’的標(biāo)簽值與檢索到的RAM標(biāo)簽值比較。檢索和比較操作非??彀l(fā)生,因?yàn)闃?biāo)簽值只有兩字節(jié)長(zhǎng)且所有值均駐留在RAM中。如果程序判定兩個(gè)標(biāo)簽值不匹配,程序進(jìn)入狀態(tài)354以檢查在RAM中是否還有另外的標(biāo)簽項(xiàng)要與輸入的標(biāo)簽值比較。如果在狀態(tài)354,程序識(shí)別出在RAM中還有標(biāo)簽值尚未比較,程序進(jìn)入到狀態(tài)358,變址計(jì)數(shù)器加1。變址計(jì)數(shù)器加1以后,程序返回狀態(tài)340以檢索由變址計(jì)數(shù)器識(shí)別的下一個(gè)標(biāo)簽值。
如果相反,在狀態(tài)354程序判定在RAM中沒(méi)有另外的標(biāo)簽值未與項(xiàng)標(biāo)簽值比較,程序進(jìn)到狀態(tài)362,在其中程序得出結(jié)論,在存儲(chǔ)器中不存在與輸入項(xiàng)匹配的數(shù)據(jù)記錄。程序隨之結(jié)束。在沒(méi)有標(biāo)簽值匹配輸入項(xiàng)的標(biāo)簽值的情況時(shí),必然沒(méi)有匹配該輸入項(xiàng)的數(shù)據(jù)記錄存儲(chǔ)在非易失性存儲(chǔ)器中。在本發(fā)明中,對(duì)此情況沒(méi)有對(duì)非易失存儲(chǔ)器的訪問(wèn)。因此,搜索可以在甚至不必訪問(wèn)非易失性存儲(chǔ)器的情況下,判定沒(méi)有非易失性數(shù)據(jù)記錄匹配。
如果在狀態(tài)344,程序恰恰判定檢索的標(biāo)簽值匹配輸入項(xiàng)標(biāo)簽值,程序進(jìn)到狀態(tài)348。在狀態(tài)348,程序從非易失性存儲(chǔ)器檢索對(duì)應(yīng)于以前從RAM檢索到的匹配的標(biāo)簽值的數(shù)據(jù)記錄。因此,只有在存儲(chǔ)在非易失性存儲(chǔ)器的數(shù)據(jù)記錄的標(biāo)簽值匹配輸入項(xiàng)的標(biāo)簽值時(shí),才訪問(wèn)該數(shù)據(jù)記錄。
一旦實(shí)際數(shù)據(jù)記錄從非易失性存儲(chǔ)器檢索出,程序進(jìn)到狀態(tài)350以執(zhí)行與整個(gè)記錄的比較。整個(gè)記錄的比較是必需的,這是因?yàn)樯⒘泻瘮?shù)不提供從數(shù)據(jù)記錄到標(biāo)簽值1∶1的映射。雖然,輸入項(xiàng)和非易失性數(shù)據(jù)記錄能產(chǎn)生相同的標(biāo)簽值,但必須比較實(shí)際的數(shù)據(jù)記錄以便實(shí)際確認(rèn)匹配。
如果檢索的非易失性存儲(chǔ)器數(shù)據(jù)記錄匹配輸入項(xiàng),即完成成功的搜索。沒(méi)有進(jìn)一步理由再繼續(xù)搜索程序,所以,終止程序并等待搜索新的輸入項(xiàng)。
如果在狀態(tài)350,程序判定檢索的非易失性存儲(chǔ)器數(shù)據(jù)記錄不匹配輸入項(xiàng),如上所述,程序進(jìn)到狀態(tài)354,判斷是否已經(jīng)搜索了所有RAM標(biāo)簽值。
圖3A和3B中的流程圖示出如何將最小的RAM數(shù)量用于快速搜索儲(chǔ)存在慢非易失性存儲(chǔ)器內(nèi)的數(shù)據(jù)記錄。不必將非易失性存儲(chǔ)器數(shù)據(jù)記錄的整個(gè)內(nèi)容加載到RAM,只需加載一組標(biāo)簽值到RAM。當(dāng)需要對(duì)一個(gè)輸入項(xiàng)搜索數(shù)據(jù)記錄時(shí),首先使用輸入項(xiàng)產(chǎn)生標(biāo)簽值,其方法是采用與以前用于產(chǎn)生存儲(chǔ)在RAM中的標(biāo)簽值相同的散列函數(shù)。然后,該輸入項(xiàng)標(biāo)簽值逐個(gè)與存儲(chǔ)在RAM中的標(biāo)簽值比較。如果找到匹配的標(biāo)簽值,從非易失性存儲(chǔ)器檢索對(duì)應(yīng)的數(shù)據(jù)記錄。因此,僅當(dāng)有較高概率檢索出匹配的數(shù)據(jù)記錄時(shí),才訪問(wèn)非易失性存儲(chǔ)器。然后,從非易失性存儲(chǔ)器檢索的數(shù)據(jù)記錄與輸出項(xiàng)比較。因?yàn)閮蓚€(gè)記錄產(chǎn)生相同的標(biāo)簽值,所以,有較高的可能性會(huì)獲得匹配。然而,如果檢索出的數(shù)據(jù)記錄與輸入項(xiàng)不匹配,就搜索余下的RAM標(biāo)簽值尋找其他與輸入項(xiàng)標(biāo)簽值匹配的標(biāo)簽值。因?yàn)樯⒘泻瘮?shù)提供輸入到標(biāo)簽值的接近1∶1的映射,通常每次搜索只訪問(wèn)非易失存儲(chǔ)器一次。因而在使實(shí)現(xiàn)本發(fā)明所需的RAM數(shù)量最小化的同時(shí)又使非易失存儲(chǔ)器訪問(wèn)的次數(shù)最小化。
提供了較佳實(shí)施例的前面描述,使本專(zhuān)業(yè)的熟練人員能作出或使用本發(fā)明。這些實(shí)施例的各種修改對(duì)本專(zhuān)業(yè)的熟練人員是容易明白的,此處確定的一般原則可應(yīng)用于其他實(shí)施例而不必使用創(chuàng)造性。因此本發(fā)明不是要局限在這里所示的實(shí)施例,而是依據(jù)這里揭示的原則和新穎特征相一致的最廣范圍。
權(quán)利要求
1.一種用于使快速存儲(chǔ)器的需要量最小的快速數(shù)據(jù)存取方法,其特征在于,所述方法包括產(chǎn)生單獨(dú)的數(shù)據(jù)記錄集合;將所述數(shù)據(jù)記錄集合存入存儲(chǔ)器;對(duì)該集合中的每個(gè)數(shù)據(jù)記錄產(chǎn)生標(biāo)簽值;將這些標(biāo)簽值存入快速存儲(chǔ)器的預(yù)定單元;接收請(qǐng)求搜索該數(shù)據(jù)記錄集合的輸入項(xiàng);產(chǎn)生對(duì)應(yīng)此輸入項(xiàng)的輸入項(xiàng)標(biāo)簽值;該輸入項(xiàng)標(biāo)簽值與儲(chǔ)存在快速存儲(chǔ)器中的標(biāo)簽值比較;從數(shù)據(jù)記錄集合中檢索對(duì)應(yīng)于與所述輸入項(xiàng)標(biāo)簽值匹配的標(biāo)簽值的數(shù)據(jù)記錄;和將檢索的數(shù)據(jù)記錄與輸入項(xiàng)進(jìn)行比較。
2.如權(quán)利要求1所述的方法,其特征在于,產(chǎn)生標(biāo)簽值包括輸入數(shù)據(jù)記錄到散列函數(shù)并將散列函數(shù)據(jù)的輸出指定為標(biāo)簽值。
3.如權(quán)利要求2所述的方法,其特征在于,產(chǎn)生輸入項(xiàng)標(biāo)簽值包括將輸入項(xiàng)輸入到散列函數(shù)并將散列函數(shù)輸出指定為輸入項(xiàng)的標(biāo)簽值。
4.如權(quán)利要求1所述的方法,其特征在于,所述數(shù)據(jù)記錄集合存儲(chǔ)在非易失性存儲(chǔ)器中。
5.如權(quán)利要求4所述的方法,其特征在于,所述非易失性存儲(chǔ)器是閃存。
6.如利要求1所述的方法,其特征在于,所述快速存儲(chǔ)器是RAM。
7.如權(quán)利要求1所述的方法,其特征在于,還包括對(duì)所有對(duì)應(yīng)于與輸入項(xiàng)標(biāo)簽值匹配的標(biāo)簽值的數(shù)據(jù)記錄重復(fù)數(shù)據(jù)記錄檢索及比較的步驟。
8.一種用于使快速存儲(chǔ)器的需要量最小的快速數(shù)據(jù)存取裝置,其特征在于,所述裝置包括用于儲(chǔ)存確定為數(shù)據(jù)記錄集合的多個(gè)數(shù)據(jù)記錄的第一存儲(chǔ)器;數(shù)字處理器;和用于儲(chǔ)存由所述數(shù)字處理器計(jì)算出對(duì)應(yīng)于存儲(chǔ)在第一存儲(chǔ)器中的每個(gè)數(shù)據(jù)記錄的標(biāo)簽值的第二存儲(chǔ)器;其中,數(shù)字處理器響應(yīng)為輸入項(xiàng)搜索所述數(shù)據(jù)記錄的請(qǐng)求,計(jì)算對(duì)應(yīng)于該輸入項(xiàng)的輸入項(xiàng)標(biāo)簽值,將輸入項(xiàng)標(biāo)簽值與儲(chǔ)存在第二存儲(chǔ)器的每個(gè)標(biāo)簽值比較,檢索對(duì)應(yīng)于匹配該輸入項(xiàng)標(biāo)簽值的標(biāo)簽值的數(shù)據(jù)記錄,并將輸入項(xiàng)與檢索的數(shù)據(jù)記錄比較。
9.如權(quán)利要求8所述的裝置,其特征在于,所述第一存儲(chǔ)器是非易失性存儲(chǔ)器。
10.如權(quán)利要求8所述的裝置,其特征在于,所述第二存儲(chǔ)器是RAM。
11.如權(quán)利要求8所述的裝置,其特征在于,所述的數(shù)據(jù)記錄包括在電子電話簿中的項(xiàng)。
12.如權(quán)利要求8所述的裝置,其特征在于,所述標(biāo)簽值是使用數(shù)據(jù)記錄作為散列函數(shù)的輸入而計(jì)算出的散列函數(shù)的輸出。
13.如權(quán)利要求12所述的裝置,其特征在于,所述輸入項(xiàng)標(biāo)簽值是使用曾用于計(jì)算所述標(biāo)簽值的相同的散列函數(shù)來(lái)計(jì)算。
14.如權(quán)利要求8所述的裝置,其特征在于,在所述第二存儲(chǔ)器中為存在所述第一存儲(chǔ)器的每條數(shù)據(jù)記錄分配兩個(gè)字節(jié)。
15.一種配置用于用較少的RAM需求來(lái)進(jìn)行快速數(shù)據(jù)存取的電話,其特征在于,所述電話包括用于存儲(chǔ)確定為數(shù)據(jù)集合的多個(gè)數(shù)據(jù)記錄的第一存儲(chǔ)器;數(shù)字處理器;和用于儲(chǔ)存由數(shù)字處理器計(jì)算出對(duì)應(yīng)于存儲(chǔ)在第一存儲(chǔ)器中的每個(gè)數(shù)據(jù)記錄的標(biāo)簽值的第二存儲(chǔ)器;其中,所述數(shù)字處理器響應(yīng)為輸入項(xiàng)搜索該批記錄的請(qǐng)求,計(jì)算對(duì)應(yīng)于所述輸入項(xiàng)的輸入項(xiàng)標(biāo)簽值,將輸入項(xiàng)標(biāo)簽值與儲(chǔ)存在第二存儲(chǔ)器的每個(gè)標(biāo)簽值比較,檢索對(duì)應(yīng)于匹配該輸入項(xiàng)標(biāo)簽值的標(biāo)簽值的數(shù)據(jù)記錄,并將輸入項(xiàng)與檢索的數(shù)據(jù)記錄進(jìn)行比較。
16.如權(quán)利要求15所述的電話,其特征在于,所述數(shù)據(jù)記錄集合是電子電話簿。
17.如權(quán)利要求15所述的電話,其特征在于,所述第一存儲(chǔ)器是非易失性存儲(chǔ)器。
18.如權(quán)利要求15所述的電話,其特征在于,所述第二存儲(chǔ)器是RAM。
19.如權(quán)利要求15所述的電話,其特征在于,所述標(biāo)簽值是使用數(shù)據(jù)記錄作為散列函數(shù)的輸入而計(jì)算出的散列函數(shù)的輸出。
20.如權(quán)利要求19所述的電話,其特征在于,所述輸入項(xiàng)標(biāo)簽值是使用曾用于計(jì)算所述標(biāo)簽值的相同的散列函數(shù)來(lái)計(jì)算的。
全文摘要
一種用于減少所需的RAM數(shù)量同時(shí)保持快數(shù)據(jù)存取的方法與裝置。數(shù)據(jù)記錄常保存在非易失性存儲(chǔ)器以便即使在電路斷電時(shí)仍維持?jǐn)?shù)據(jù)記錄的內(nèi)容。在本發(fā)明中,每個(gè)在數(shù)據(jù)記錄的非易失性RAM集合中的每條記錄輸入到函數(shù)H(x),后者輸出一標(biāo)簽值。經(jīng)計(jì)算的標(biāo)簽值存入RAM中預(yù)定的存儲(chǔ)器單元。每個(gè)經(jīng)計(jì)算的標(biāo)簽長(zhǎng)度上短于存儲(chǔ)在非易失性RAM中的記錄。因此與將整個(gè)數(shù)據(jù)記錄集合存儲(chǔ)在RAM中所需要的RAM相比,對(duì)每條數(shù)據(jù)記錄保存一個(gè)標(biāo)簽值需要較少的RAM。當(dāng)需要對(duì)應(yīng)y的數(shù)據(jù)記錄項(xiàng)時(shí),計(jì)算H(y)的值。然后該H(y)值與標(biāo)簽值表中所有值比較。如果找到匹配,從其在非易失性RAM中的位置檢索對(duì)應(yīng)的記錄,并與y比較。如果該值不匹配,搜索標(biāo)簽值表尋找其他位置匹配H(y)。其結(jié)果是僅需要最小量的RAM,就能與非易失性RAM的內(nèi)容進(jìn)行非常快速的比較。
文檔編號(hào)G06F17/30GK1496523SQ01803840
公開(kāi)日2004年5月12日 申請(qǐng)日期2001年1月19日 優(yōu)先權(quán)日2000年1月19日
發(fā)明者梅幼松, E·J·列克文, 列克文 申請(qǐng)人:高通股份有限公司