欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

減少隨機存取存儲器大小同時保持快速數(shù)據(jù)存取的方法和裝置的制作方法

文檔序號:6464756閱讀:548來源:國知局
專利名稱:減少隨機存取存儲器大小同時保持快速數(shù)據(jù)存取的方法和裝置的制作方法
發(fā)明
背景技術(shù)
領(lǐng)域本發(fā)明涉及電子線路。尤其是,本發(fā)明涉及一種新穎和改進的方法和裝置,用于在設(shè)備中減少RAM的需要而保持從較慢的非易失性存儲器中快速查找和檢索數(shù)據(jù)。
背景技術(shù)
某些類型的電子存儲器用于幾乎所有的現(xiàn)代電子設(shè)備中。電子存儲器能采取軟盤、磁帶、硬盤和集成電路(IC)的形式。存儲器的每種形式具有其優(yōu)點和缺點。軟盤使得大量數(shù)據(jù)在便攜式的介質(zhì)上更新,但具有有限的容量和相當長的讀寫存取時間。磁帶和硬盤均有大量存儲容量的能力,但卻不便于隨身可帶,需要大量的支持硬件,且有慢的存取時間。保存在軟盤、硬盤和磁帶上的數(shù)據(jù)在存入該介質(zhì)前常常先以軟件格式化為文件格式。當數(shù)據(jù)從存儲介質(zhì)中恢復(fù)時,必須運行軟件文件程序以定位并提取所需的數(shù)據(jù)。這更減慢了數(shù)據(jù)存取過程。因為它在已經(jīng)很慢的硬件存取的頂上又增加了軟件層。
IC存儲器通常使用在存儲器需要集成在便攜設(shè)備中的地方。改變IC的類型和數(shù)量就能調(diào)節(jié)存儲量。IC要求很小的支持硬件,并特別小,且能提供快速的讀寫訪問時間。某些IC存儲器能方便支持直接訪問而不需要軟件層。
可買到許多不同類型的IC存儲器,對各種設(shè)計要求提供解決方法。每種存儲器能滿足若干設(shè)計要求,但沒有一種存儲器類型能提供完全的設(shè)計解決方法。對任何特定應(yīng)用選定的存儲器類型取決于計劃的用途及性能設(shè)計之間的折衷方案。
最普通類型的IC存儲器是只讀存儲器(ROM)。如名稱的含意所示,該存儲器只能讀訪問。ROM設(shè)備一旦經(jīng)編程后就不能重寫。嵌入的軟件應(yīng)用使用ROM存儲嵌入的程序碼及數(shù)據(jù)記錄。在嵌入軟件應(yīng)用中的處理器從ROM檢索每條指令并執(zhí)行之。依據(jù)在ROM中被編程信息的易失性可以得到不同類型的ROM。如果存在ROM中的信息不希望改變,且期望的設(shè)備容量是高的,則使用掩膜編程ROM。在管芯封裝之前此類ROM已掩膜編程。要編程的信息必需是高度穩(wěn)定并不會修改的,因為編程信息的改變需要掩膜改變。使用掩膜編程ROM的好處對于高容量成熟產(chǎn)品來說在于其成本和時間的節(jié)省。對產(chǎn)品可采用其他類型的ROM,但它們不能保證產(chǎn)品容量或代碼的穩(wěn)定性,這足以證明使用掩膜編程ROM是正確的。
可編程只讀存儲器(PROM)使得設(shè)備制造者能編程嵌入的代碼。它允許對代碼修改,但仍不允許ROM在編程以后的修改和擦除。用過時的代碼修改編程的設(shè)備仍使用過時的代碼修改,或丟棄之。
可擦除可編程只讀存儲器(EPROM)提供完全擦除程序部分的能力。EPROM的擦除是通過將管芯暴露在紫外(UV)光一段預(yù)定時間來實現(xiàn)。管芯能通過在EPROM封裝上的透明窗口暴露在紫外光下。一旦擦除,該EPROM能重新編程。EPROM通常只用于工程開發(fā),在其中期望的代碼修改次數(shù)較高。與PROM相比,配置透明窗口的封裝類型的局限性是EPROM高得多的價格因素。雖然EPROM能擦除及重新編程,但對代碼的修改是完全在芯片基礎(chǔ)上做出。即使改變代碼中的一個位也需要完全擦除并重新編程。此局限性及擦除對紫外線的要求將更新EPROM的任務(wù)局限在原始設(shè)備制造商(OEM)身上。
能擦除選擇的內(nèi)容并重新編程的設(shè)備是電子可擦除可編程只讀只讀存儲器(EEPROM)。傳統(tǒng)的EEPROM使數(shù)據(jù)能適當更新。即能擦除特定數(shù)據(jù)單元并且用新的數(shù)據(jù)改寫同一單元。從EEPROM能迅速讀出數(shù)據(jù)。但傳統(tǒng)EEPROM的寫周期比讀時間長幾個數(shù)量級。使用傳統(tǒng)EEPROM的另一缺點產(chǎn)生于傳統(tǒng)EEPROM單元的內(nèi)在結(jié)構(gòu)。傳統(tǒng)EEPROM單元的結(jié)構(gòu)與標準的PROM相比需要更多的晶體管。結(jié)構(gòu)的增加導(dǎo)致存儲器容量減少且價格升高。這些缺點使得傳統(tǒng)的EEPROM不能在大多數(shù)消費電子應(yīng)用中使用。
隨機存取存儲器(RAM)代表另一種替代存儲裝置。RAM允許有選擇的數(shù)據(jù)讀和寫。讀和寫能基于字節(jié)完成。在將新的數(shù)據(jù)寫入到以前寫過的字節(jié)以前不需要擦除周期。此外,不象EEPROM,RAM的讀和寫周期的時間幾乎相等。RAM的密度及容量可與ROM相比。使用RAM的主要缺點在于存儲數(shù)據(jù)的易失性。每當RAM掉電時,儲存在RAM中的信息就會丟失。這與ROM相反,后者是非易失性存儲器,即使該IC在供電周期之后存儲器的內(nèi)容依然得以保存。為了維持RAM的內(nèi)容,在芯片上必須一直維持電源。這需要對正常供電有電池后備。在電源供應(yīng)斷開時,如果電源后備掉電,該RAM的內(nèi)容將丟失。為此,RAM不用于嵌入的代碼而只用于動態(tài)存儲器。用于嵌入代碼的RAM易受電池掉電和供電故障的影響。此外,如果RAM用于嵌入的代碼,如蜂窩電話那樣的電池驅(qū)動設(shè)備,由于RAM的恒定電源要求而具有減少的電池壽命。在RAM用于動態(tài)存儲器時,該系統(tǒng)并不關(guān)心在供電周期之后內(nèi)容是否丟失。這就減輕了對電池后備的需求。但是RAM的成本高于ROM的成本。
另一種存儲選擇是通常稱之為閃存的塊EEPROM。塊EEPROM是允許基于字節(jié)讀寫的非易失存儲設(shè)備。不象RAM,在塊EEPROM中,在改寫以前寫過的字節(jié)以前必須完成擦除操作。但是數(shù)據(jù)擦除不能按字節(jié)完成。擦除只能按塊完成,其中塊的大小由所選的特定存儲設(shè)備確定。可擦除塊的大小總是大于一個字節(jié)并能是約為64千字節(jié)。但是,擦除的次數(shù)不是無限的,而受最大周期壽命所限。對塊EEPROM通常推薦的擦除周期壽命是100,000周期。因而,對于在預(yù)期設(shè)備壽命周期中有大于100,000次的擦除周期需求的應(yīng)用,就不應(yīng)該使用塊EEPROM。在需要少于100,000次擦除和改寫周期的應(yīng)用中,與其他類型可改寫存儲器比較,塊EEPROM具有優(yōu)點。對于嵌入的代碼應(yīng)用來說,塊EEPROM優(yōu)于任何類型的ROM,因為塊EEPROM是非易失的。由于塊EEPROM能改寫電路中部分存儲器,因而,塊EEPROM更優(yōu)于EPROM。塊EEPROM也不需要紫外光作芯片擦除。由于塊EEPROM設(shè)備的低價格和高密度,因此,塊EEPROM優(yōu)于具有可比較的重寫限制的傳統(tǒng)的EEPROM。在便攜式電子設(shè)備中,塊EEPROM用于用戶可配置數(shù)據(jù)的非易失性存儲。
存在塊EEPROM的數(shù)據(jù)通常進行格式化以符合文件系統(tǒng)。文件格式規(guī)范部分地由塊尺寸的擦除周期決定。數(shù)據(jù)不是對特定單元的存儲映象,因為塊EEPROM中的數(shù)據(jù)不能在適當位置重寫。附加軟件開銷導(dǎo)致存儲器訪問時間大大增加。在多任務(wù)系統(tǒng)中,訪問時間將進一步增加。在多任務(wù)系統(tǒng)中,非易失性存儲器訪問可以由高優(yōu)先級任務(wù)優(yōu)先占有。搶占要求低優(yōu)先級任務(wù)在處理以前等待較高優(yōu)先級任務(wù)的完成。當軟件開銷包括在訪問時間的計算之中時,從塊EEPROM訪問數(shù)據(jù)的時間可能比對存在RAM設(shè)備中的數(shù)據(jù)的訪問時間要慢1000到10,000倍。
長訪問時間引起了用戶接口問題。在如無線電話那樣的便攜式電子設(shè)備中,非易失性用戶可配置的數(shù)據(jù)常常存入塊EEPROM中。如果訪問電話簿數(shù)據(jù)是即時發(fā)生的,用戶接口需加強,從塊EEPROM檢索數(shù)據(jù)導(dǎo)致在用戶輸入電話號碼與電話簿中的記錄比較時很慢的用戶響應(yīng)。這是由于在處理文件系統(tǒng)時的軟件開銷,為了從塊EEPROM檢索任何數(shù)據(jù)這是必須啟動的。長訪問時間延遲使得在數(shù)據(jù)檢索必須在某個預(yù)定的時間窗內(nèi)發(fā)生的實時系統(tǒng)中引起嚴重的問題。
對于塊EEPROM或任何其他非易失性存儲器的慢訪問時間的一個解決辦法是將所有數(shù)據(jù)從非易失數(shù)據(jù)記錄傳輸?shù)絉AM。數(shù)據(jù)記錄能在設(shè)備開啟時從非易失RAM傳輸。然后,所有數(shù)據(jù)能迅速從RAM檢索。這就大大加強了用戶接口。然而,此解決方法引起相當大的成本及空間的缺點。僅僅為了加強用戶接口就需要額外的RAM以冗余存儲非易失失性存儲器的內(nèi)容。人們需要一種方法和裝置,用于減少在訪問存儲在非易失存儲器中的數(shù)據(jù)時,為保持快速用戶接口所需的RAM的數(shù)量。

發(fā)明內(nèi)容
本發(fā)明是一種新穎的改進的方法和裝置,用于減少支持從較慢的非易失存儲器中快速數(shù)據(jù)檢索所需的RAM的數(shù)量。使用RAM代替非易失存儲器大大減少了數(shù)據(jù)搜索時間。由于每次訪問非易失存儲器時必須執(zhí)行的軟件開銷,RAM訪問比非易失存儲器訪問要快幾個數(shù)量級。
數(shù)據(jù)記錄集合能保存在非易失性存儲器。因為與非易失性存儲器訪問相關(guān)的軟件開銷,使得非易失性數(shù)據(jù)記錄的訪問緩慢。使用本發(fā)明能大大地增強對存儲在非易失性存儲器中的數(shù)據(jù)記錄的搜索。當必須搜索存儲在非易失性存儲器的數(shù)據(jù)記錄時,通常需要對非易失性存儲器的許多次訪問。本發(fā)明通過在RAM的預(yù)定位置上保存一系列計算的標簽值來減少對非易失性數(shù)據(jù)記錄的訪問次數(shù)。然后對保存在非易失性存儲器的數(shù)據(jù)記錄的搜索是通過首先搜遍預(yù)定的RAM單元尋找對應(yīng)的標簽值,若找到匹配的標簽值再查找非易失性數(shù)據(jù)記錄。搜索在RAM中匹配的標簽值將通常搜索匹配數(shù)據(jù)記錄所需的非易失性存儲訪問次數(shù)減少到1。這與在傳統(tǒng)的非易失性數(shù)據(jù)記錄的搜索中需要多次非易失性記錄的檢索和比較形成對照。
在RAM中分配預(yù)定數(shù)目的存儲器單元,對應(yīng)于保存在非易失存儲器中的數(shù)據(jù)記錄數(shù)。在RAM中分配的每個存儲器單元不需要大得能保存在非易失存儲器中存儲的數(shù)據(jù)記錄。在較佳實施例中對于在非易失存儲器中的每個數(shù)據(jù)記錄分配二個RAM字節(jié)。非易失性數(shù)據(jù)記錄可以任意長。定義標簽函數(shù)H(x),使得每個非易失性記錄映射對應(yīng)的標簽值。標簽函數(shù)H(x)不需要提供數(shù)據(jù)記錄到標簽值的1∶1映射。數(shù)據(jù)記錄到標簽值的1∶1映射將非易失性存儲器訪問數(shù)最小化到每次數(shù)據(jù)記錄搜索僅一次非易失性記錄訪問。
預(yù)定的RAM單元保存從對應(yīng)的非易失性數(shù)據(jù)記錄的內(nèi)容所確定的標簽值。當需要搜索特定數(shù)據(jù)記錄時,對被搜索的記錄計算標簽值。如果搜索到的記錄分配為y,則計算標簽值H(y)。然后,該標簽值H(y)與所有儲存在預(yù)定RAM單元中的標簽值比較。由于RAM快速的訪問能力,此步驟很快執(zhí)行。如果在RAM中找到匹配的標簽值,對應(yīng)的非易失性存儲器單元識別為對應(yīng)于特定RAM單元的單元。檢索非易失性數(shù)據(jù)記錄的內(nèi)容并與搜索到的記錄比較。如果兩者匹配,則搜索完成。如果檢索到的非易失性存儲器記錄和搜索的記錄不相同匹配,搜索RAM中余下的標簽值,尋找與搜索到的記錄而計算的標簽值的匹配。搜索繼續(xù)進行,直到找到一個相等匹配,或者到達RAM標簽值的終點。
因為主要的搜索是使用RAM標簽表執(zhí)行,因而,本發(fā)明在搜索數(shù)據(jù)記錄所占用的時間量方面大大減少。非易失性存儲器記錄只在找到標簽值匹配時才訪問。對多數(shù)搜索只需要一次非易失性存儲器訪問。時間的節(jié)省提供了增強的用戶接口,同時RAM的減少提供了硬件成本的降低。


根據(jù)下面給出的詳細描述結(jié)合附圖,本發(fā)明的特征、目標和優(yōu)點變得更加明白。圖中相似的參考字符在所有圖中互相對應(yīng)。其中圖1是分層存儲器實現(xiàn)的方框圖;圖2A-2B是方框圖,示出根據(jù)查找NV存儲器表的RAM的實現(xiàn);和圖3A-3B是本發(fā)明的RAM實現(xiàn)的流程圖。
具體實施例方式
在任何電子設(shè)備中的存儲器和存儲設(shè)備按照希望的需求分配。在如無線電話那樣的電子設(shè)備中的存儲器通常為非易失性存儲器和RAM形式。非易失性存儲器可以是PROM和非易失性塊EEPROM的組合。在工業(yè)中所共知的一種非易失性塊EEPROM類型是閃存。
使用閃存的優(yōu)點之一是其電可擦除和可改寫的能力。如上所述,閃存的缺點之一是它不能在適當位置更新數(shù)據(jù)。整個塊必須同時擦除。為了最有效地使用閃存空間,在閃存中保存的數(shù)據(jù)不存儲映象到特定單元,相反,它使用基于文件的存儲系統(tǒng)保存。相對比,存在RAM中的數(shù)據(jù)可以在適當位置更新且因此能分配一個存儲映象。
圖1示出如無線電話10那樣的一個電子設(shè)備的存儲器20的結(jié)構(gòu)的方框圖。所有存入存儲器20的數(shù)據(jù)在數(shù)據(jù)庫110中進行管理。本質(zhì)上易失或瞬時的數(shù)據(jù)存入RAM 120。可以分配存儲映象給RAM 120數(shù)據(jù),因為RAM 120數(shù)據(jù)能在適當?shù)胤礁隆H欢?,具有變化的長度或位置的其他數(shù)據(jù)片就使用文件系統(tǒng)130管理。文件系統(tǒng)130是軟件程序,該程序確定基于文件數(shù)據(jù)的格式、位置和大小。對其數(shù)據(jù)使用基于文件的結(jié)構(gòu)的設(shè)備之一是非易失性存儲器140。存在非易失存儲器140中的所有數(shù)據(jù)必須首先在文件系統(tǒng)130中格式化。在文件系統(tǒng)130下層的分層非易失性存儲器140在訪問存儲在非易失性存儲器140中的任何數(shù)據(jù)時產(chǎn)生進一步的延遲。在訪問存儲在非易失性存儲器140中的數(shù)據(jù)時的延遲能產(chǎn)生不希望的延遲,其中數(shù)據(jù)必須從非易失性存儲器檢索作為用戶界面的一部分。在無線電話中經(jīng)常應(yīng)用的使用數(shù)據(jù)的一個例子是搜索用戶產(chǎn)生的電話簿。
無線電話通常具有保存用戶產(chǎn)生的電話簿記錄的能力。在保存在非易失性存儲器中的電子電話簿中用戶通常能具有超過100個電話號碼及對應(yīng)的名字。記錄的實際數(shù)目只受設(shè)計者希望分配給電話簿的存儲器空間大小的限制。每個電話號及名字組成保存在非易失性存儲器中的數(shù)據(jù)記錄。每個電話號最多有32個字符長。此長度可容納區(qū)號、內(nèi)部分機、接入號和個人識別號以便對指定的號碼自動撥號。對名字可分配任意數(shù)目字符,但為方便起見,假設(shè)為32字符長。如果我們假設(shè)允許有512個電話號碼及名字組合,則必須分配16K非易失性存儲器。當用戶輸入一個電話號碼或名字并希望搜索電話簿尋找對應(yīng)的保存信息時,必須搜索存在非易失性存儲器中的數(shù)據(jù)記錄。
存在非易失性存儲器內(nèi)的數(shù)據(jù)記錄只能通過文件系統(tǒng)130讀出。文件系統(tǒng)130是在數(shù)據(jù)庫110之下的層。在非易失性存儲器訪問頂部的多層對于任何對存在非易失性存儲器的數(shù)據(jù)記錄的訪問產(chǎn)生較大延遲。在傳統(tǒng)的搜索程序期間,從非易失性存儲器檢索數(shù)據(jù)記錄并與輸入數(shù)據(jù)比較。如果兩者匹配,就找到對應(yīng)于此匹配的數(shù)據(jù)記錄。如果兩者不匹配,丟棄第一個檢索的數(shù)據(jù)記錄并從非易失性存儲器檢索下一個數(shù)據(jù)記錄。從非易失性存儲器檢索數(shù)據(jù)記錄并與輸入數(shù)據(jù)比較的步驟一直持續(xù)到找到匹配或搜索過非易失性存儲器中所有記錄為止。從非易失性存儲器檢索數(shù)據(jù)記錄之前必須經(jīng)過的多個層提供延遲。當輸入數(shù)據(jù)必須與存在非易失存儲器中的大量內(nèi)容相比較時,對用戶界面來說此延遲過長。輸入名字或電話號碼并希望檢索與此記錄有關(guān)的存儲信息的用戶不希望等待很長時間。用戶界面需要看來對用戶是無間隙且瞬時的。
增加與搜索非易失性數(shù)據(jù)記錄有關(guān)的速度的一個方法是在RAM中執(zhí)行搜索。對存在RAM中數(shù)據(jù)記錄的訪問時間比從非易失存儲器檢索相等的數(shù)據(jù)記錄的訪問時間要快幾個數(shù)量級。訪問時間的差異歸因于文件系統(tǒng)。RAM不需要數(shù)據(jù)記錄格式化以及在文件系統(tǒng)下訪問。為了實現(xiàn)在RAM而不是非易失失性存儲器中搜索,可以將所有非易失性存儲器的數(shù)據(jù)記錄傳送到RAM。隨后,當需要搜索時,所有數(shù)據(jù)記錄在RAM中都可以得到。此方法具有缺點,就是使用了大量RAM僅僅為了冗余地存儲在非易失性存儲器中可以得到數(shù)據(jù)記錄。額外的RAM的成本增加和物理尺寸的增加,使得該解決方法在如無線電話那樣的便攜式電子設(shè)備中實現(xiàn)并非理想。
在圖2A中示出一種替代實現(xiàn)方法,它改善了存儲在非易失性存儲器的數(shù)據(jù)記錄的搜索時間,而不必將整個非失性存儲器的內(nèi)容保存在RAM中。在圖2A中不使用RAM保存在非易失存儲器中存儲的數(shù)據(jù)記錄。而是在RAM中定義RAM散列箱(hash bin)220。每個原始的非易失性(NV)記錄210輸入到散列函數(shù)。指向輸入NV記錄210的指針存入對應(yīng)于輸出散列數(shù)的RAM散列箱220。散列函數(shù)不需要提供NV記錄210到RAM散列箱220的1∶1映射。但是散列函數(shù)的選擇是權(quán)衡RAM散列箱220的數(shù)目及訪問時間的因素進行折衷選擇。散列函數(shù)映射越單一,RAM散列箱220所需的空間越大。單獨的散列函數(shù)映射的優(yōu)點是當搜索NV記錄210尋找匹配時,減少對非易失性存儲器的訪問次數(shù)。
在圖2A中所示的實現(xiàn)方法如下執(zhí)行。在初始化電子設(shè)備后,每個NV記錄210輸入到散列函數(shù)。初始化可以在電子設(shè)備的任何情況引起。在無線電話中的初始化在上電時引起。散列函數(shù)的一個例子如下所示。
yN=(Σi=1N5(yi-1)+xi)/(65521)]]>在等式中xi表示輸入到散列函數(shù)的特定的NV數(shù)據(jù)記錄中第i個字節(jié)。yi表示處理在特定NV數(shù)據(jù)記錄中i個字節(jié)后散列函數(shù)的輸出。數(shù)N表示包括每個NV數(shù)據(jù)記錄輸入的字節(jié)數(shù)。在上述例子中,每個NV數(shù)據(jù)記錄是32字節(jié)長。對上述例子中數(shù)據(jù)記錄長為N=32。對實際應(yīng)用使用整數(shù)算術(shù)執(zhí)行計算。可以看到,當使用整數(shù)算術(shù)時從輸入到輸出的映射不是1∶1。
散列函數(shù)的輸出落入確定的RAM散列箱220中。指向用作到散列函數(shù)的輸入的NV記錄的指針222存入RAM散列箱220。與數(shù)據(jù)記錄相比較,指針使用較少存儲空間存儲。通常為指針分配4個字節(jié)。對具有512個輸入的非易失性數(shù)據(jù)記錄,需要2K存儲器容納所有指針。這就提供RAM存儲器空間可能的節(jié)省。
每個散列箱必須具有保存多于一個指針222的能力。因為散列函數(shù)不提供輸入到輸出1∶1的映射,因此,這是必須。在散列函數(shù)中缺少1∶1的映射產(chǎn)生了RAM存儲器分配問題。為了保證每個散列箱只有一個指針,就需要確定大量的散列箱。如果確定較少數(shù)量的散列箱,每個散列箱就可能需要存儲若干指針。
如果確定64K個散列箱,設(shè)計者能保證每個散列箱只有一個指針在其中。因為只需要2K個指針來識別所有數(shù)據(jù)記錄,很明顯大多數(shù)散列箱將含有空指針。分配64K散列箱明顯比將所有非易失性數(shù)據(jù)記錄加載到RAM中需要更大數(shù)量的RAM空間。因此,此解決方案是不可行的。為了減少RAM的需求,一個設(shè)計分配少于64K的散列箱。然而,減少散列箱的數(shù)目必然增加了任意一個散列箱將包含多于一個指針值的可能性。
為了尋找與某些輸入數(shù)據(jù)的數(shù)據(jù)記錄匹配,輸入數(shù)據(jù)首先要通過散列函數(shù)。隨后,散列函數(shù)的輸出將搜索程序?qū)蛱囟ǖ纳⒘邢?。如果分散列箱中未存入指針,則在非易失性數(shù)據(jù)記錄中找不到匹配。如果未找到匹配,這就大大減少了搜索時間。在傳統(tǒng)的搜索中,在判定不存在匹配之前必須要檢索在非易失存儲器中所有數(shù)據(jù)記錄,并與輸入比較,使用散列箱方法對非易失性存儲器的訪問在判定不存在匹配之前并不需要發(fā)生。
如果有指針存在散列箱中,從散列箱中獲得第一指針并檢索該指針指向的NV記錄。然后在輸入和檢索到的數(shù)據(jù)記錄之間執(zhí)行全面比較。如果兩者等同,則找到匹配并能得到余下的有關(guān)數(shù)據(jù)記錄。如果檢索的數(shù)據(jù)記錄不匹配,則如果存在的話,就檢索在散列箱中下一個指針。重復(fù)執(zhí)行比較和從散列箱檢索指針,直到找到匹配或已經(jīng)比較了由該散列箱指針指向的所有非易失性數(shù)據(jù)記錄為止。
在以前的實現(xiàn)中有多次訪問非易失性存儲器的可能性。對非易失性存儲器訪問的次數(shù)取決于存在每個散列箱中的指針數(shù)。所需的散列箱的數(shù)目與散列函數(shù)有關(guān)。單獨的散列箱的數(shù)目增加減少了非易失性存儲器訪問的次數(shù)。非易失性存儲器訪問次數(shù)的減少是以增加所需的RAM為代價的。
本發(fā)明使用一個實現(xiàn)方法,它減少數(shù)據(jù)記錄搜索次數(shù)并降低RAM的需求。本發(fā)明的一個方框圖示為圖2B。在本發(fā)明中,如前所述,NV記錄210包括數(shù)據(jù)記錄的集合。然而,在RAM中為標簽值230分配一個存儲器塊代替了在RAM中定義散列箱。如上例所述,存儲在非易失性存儲器中的每個數(shù)據(jù)記錄是32字符長。在非易失性存儲器內(nèi)分配512個可用的記錄。這對應(yīng)于16K的存儲器。本發(fā)明為在非易失存儲器中的每條數(shù)據(jù)記錄分配2字節(jié)RAM空間。為容納512條數(shù)據(jù)記錄,需要分配1K字節(jié)的RAM。因為分配給每個非易失性存儲器記錄的RAM的字節(jié)數(shù)是常數(shù),可指定RAM的地址單元來對應(yīng)非易失性數(shù)據(jù)記錄。作為一個例子,第一非易失性數(shù)據(jù)記錄將對應(yīng)于分配在RAM中的頭兩個字節(jié)。
分配給每個非易失性數(shù)據(jù)記錄的兩個RAM字節(jié)不足以保存整個數(shù)據(jù)記錄。而是,這兩個字節(jié)保存對應(yīng)于該數(shù)據(jù)記錄的標簽值。使用上述同樣的散列函數(shù)產(chǎn)生標簽值。計算對應(yīng)于非易失性存儲器中每個數(shù)據(jù)記錄的標簽值并存入RAM中預(yù)定的位置。因此,本發(fā)明使分配的RAM數(shù)量最小。為每條非易失性數(shù)據(jù)記錄分配在RAM中分配兩個字節(jié),并且存在512個數(shù)據(jù)記錄。因此只需分配1K RAM。
當輸入值需要與非易失性存儲器數(shù)據(jù)記錄的內(nèi)容進行比較時,該輸入值首先通過散列函數(shù)。然后,輸出散列值與存在RAM中的標簽值比較。當確定一個匹配標簽值,檢索對應(yīng)于該標簽值位置的非易失性存儲器的內(nèi)容并與原始的輸入值比較。如果兩者等同,則找到匹配。否則,繼續(xù)搜索下面的RAM標簽值,直到另一標簽值產(chǎn)生匹配的數(shù)據(jù)記錄或達到標簽值表的末端為止。以此方式,大部分的搜索在RAM中執(zhí)行,訪問非易失性存儲器的唯一時間是在計算的輸入標簽值匹配以前存入的標簽值中一個時。如果散列函數(shù)不產(chǎn)生大量的復(fù)制標簽值,對非易失性存儲器的訪問數(shù)就最小。使用前述的散列函數(shù),對非易失性存儲器的訪問數(shù)最小化到對于99%的數(shù)據(jù)搜索其訪問次數(shù)都為1次。
圖3A示出本發(fā)明的流程圖。程序從狀態(tài)301啟動。每當設(shè)備打開電源時程序都初始化。在無線電話的情況,每當用戶打開電話電源,程序啟動301。程序接著進到狀態(tài)304,在其中讀出在非易失性(NV)存儲器數(shù)據(jù)記錄中所有項。接著在狀態(tài)308,對NV存儲器項計算標簽值。使用如前述的散列函數(shù)那樣的函數(shù)對每個NV存儲器項計算標簽值。每個標簽值需兩個字節(jié)。
程序隨后進到狀態(tài)310,其中計算的標簽值存入預(yù)定RAM單元。每個RAM單元對應(yīng)于在NV存儲器數(shù)據(jù)記錄集合中的一個項。作為例子,在RAM標簽值表中的第六項是對應(yīng)于NV存儲器數(shù)據(jù)記錄中第六項的絕對地址,而不考慮在NV存儲器中實際駐留位置。
標簽值存入RAM以后,任何數(shù)據(jù)記錄的搜索主要在RAM中執(zhí)行。狀態(tài)320假設(shè)項‘y’需要與數(shù)據(jù)記錄的內(nèi)容比較。在如無線電話那樣的電子設(shè)備中,項‘y’可以對應(yīng)于用戶輸入的電話號碼。數(shù)據(jù)記錄內(nèi)容對應(yīng)于與特定電話號碼相關(guān)的名字和信息。用戶能輸入電話號碼并希望檢索與此號碼有關(guān)的所有以前存儲的信息。
搜索的第一步在狀態(tài)322完成,其中計算對應(yīng)于輸入‘y’的標簽值。在狀態(tài)324,初始化在搜索中使用的變址計數(shù)器。流程接著進到點330。點330不是流程圖的功能單元,僅僅包括用于將在圖3A的流程圖的狀態(tài)鏈接到圖3B的流程圖的狀態(tài)。
圖3B從連接圖3A的流程圖到圖3B的流程圖的點330開始。程序從點330進入到狀態(tài)340。在狀態(tài)340,程序從RAM中檢索對應(yīng)于變址計數(shù)器識別的單元上以前存入的標簽值。程序接著進入344,在那里對應(yīng)于項‘y’的標簽值與檢索到的RAM標簽值比較。檢索和比較操作非??彀l(fā)生,因為標簽值只有兩字節(jié)長且所有值均駐留在RAM中。如果程序判定兩個標簽值不匹配,程序進入狀態(tài)354以檢查在RAM中是否還有另外的標簽項要與輸入的標簽值比較。如果在狀態(tài)354,程序識別出在RAM中還有標簽值尚未比較,程序進入到狀態(tài)358,變址計數(shù)器加1。變址計數(shù)器加1以后,程序返回狀態(tài)340以檢索由變址計數(shù)器識別的下一個標簽值。
如果相反,在狀態(tài)354程序判定在RAM中沒有另外的標簽值未與項標簽值比較,程序進到狀態(tài)362,在其中程序得出結(jié)論,在存儲器中不存在與輸入項匹配的數(shù)據(jù)記錄。程序隨之結(jié)束。在沒有標簽值匹配輸入項的標簽值的情況時,必然沒有匹配該輸入項的數(shù)據(jù)記錄存儲在非易失性存儲器中。在本發(fā)明中,對此情況沒有對非易失存儲器的訪問。因此,搜索可以在甚至不必訪問非易失性存儲器的情況下,判定沒有非易失性數(shù)據(jù)記錄匹配。
如果在狀態(tài)344,程序恰恰判定檢索的標簽值匹配輸入項標簽值,程序進到狀態(tài)348。在狀態(tài)348,程序從非易失性存儲器檢索對應(yīng)于以前從RAM檢索到的匹配的標簽值的數(shù)據(jù)記錄。因此,只有在存儲在非易失性存儲器的數(shù)據(jù)記錄的標簽值匹配輸入項的標簽值時,才訪問該數(shù)據(jù)記錄。
一旦實際數(shù)據(jù)記錄從非易失性存儲器檢索出,程序進到狀態(tài)350以執(zhí)行與整個記錄的比較。整個記錄的比較是必需的,這是因為散列函數(shù)不提供從數(shù)據(jù)記錄到標簽值1∶1的映射。雖然,輸入項和非易失性數(shù)據(jù)記錄能產(chǎn)生相同的標簽值,但必須比較實際的數(shù)據(jù)記錄以便實際確認匹配。
如果檢索的非易失性存儲器數(shù)據(jù)記錄匹配輸入項,即完成成功的搜索。沒有進一步理由再繼續(xù)搜索程序,所以,終止程序并等待搜索新的輸入項。
如果在狀態(tài)350,程序判定檢索的非易失性存儲器數(shù)據(jù)記錄不匹配輸入項,如上所述,程序進到狀態(tài)354,判斷是否已經(jīng)搜索了所有RAM標簽值。
圖3A和3B中的流程圖示出如何將最小的RAM數(shù)量用于快速搜索儲存在慢非易失性存儲器內(nèi)的數(shù)據(jù)記錄。不必將非易失性存儲器數(shù)據(jù)記錄的整個內(nèi)容加載到RAM,只需加載一組標簽值到RAM。當需要對一個輸入項搜索數(shù)據(jù)記錄時,首先使用輸入項產(chǎn)生標簽值,其方法是采用與以前用于產(chǎn)生存儲在RAM中的標簽值相同的散列函數(shù)。然后,該輸入項標簽值逐個與存儲在RAM中的標簽值比較。如果找到匹配的標簽值,從非易失性存儲器檢索對應(yīng)的數(shù)據(jù)記錄。因此,僅當有較高概率檢索出匹配的數(shù)據(jù)記錄時,才訪問非易失性存儲器。然后,從非易失性存儲器檢索的數(shù)據(jù)記錄與輸出項比較。因為兩個記錄產(chǎn)生相同的標簽值,所以,有較高的可能性會獲得匹配。然而,如果檢索出的數(shù)據(jù)記錄與輸入項不匹配,就搜索余下的RAM標簽值尋找其他與輸入項標簽值匹配的標簽值。因為散列函數(shù)提供輸入到標簽值的接近1∶1的映射,通常每次搜索只訪問非易失存儲器一次。因而在使實現(xiàn)本發(fā)明所需的RAM數(shù)量最小化的同時又使非易失存儲器訪問的次數(shù)最小化。
提供了較佳實施例的前面描述,使本專業(yè)的熟練人員能作出或使用本發(fā)明。這些實施例的各種修改對本專業(yè)的熟練人員是容易明白的,此處確定的一般原則可應(yīng)用于其他實施例而不必使用創(chuàng)造性。因此本發(fā)明不是要局限在這里所示的實施例,而是依據(jù)這里揭示的原則和新穎特征相一致的最廣范圍。
權(quán)利要求
1.一種用于使快速存儲器的需要量最小的快速數(shù)據(jù)存取方法,其特征在于,所述方法包括產(chǎn)生單獨的數(shù)據(jù)記錄集合;將所述數(shù)據(jù)記錄集合存入存儲器;對該集合中的每個數(shù)據(jù)記錄產(chǎn)生標簽值;將這些標簽值存入快速存儲器的預(yù)定單元;接收請求搜索該數(shù)據(jù)記錄集合的輸入項;產(chǎn)生對應(yīng)此輸入項的輸入項標簽值;該輸入項標簽值與儲存在快速存儲器中的標簽值比較;從數(shù)據(jù)記錄集合中檢索對應(yīng)于與所述輸入項標簽值匹配的標簽值的數(shù)據(jù)記錄;和將檢索的數(shù)據(jù)記錄與輸入項進行比較。
2.如權(quán)利要求1所述的方法,其特征在于,產(chǎn)生標簽值包括輸入數(shù)據(jù)記錄到散列函數(shù)并將散列函數(shù)據(jù)的輸出指定為標簽值。
3.如權(quán)利要求2所述的方法,其特征在于,產(chǎn)生輸入項標簽值包括將輸入項輸入到散列函數(shù)并將散列函數(shù)輸出指定為輸入項的標簽值。
4.如權(quán)利要求1所述的方法,其特征在于,所述數(shù)據(jù)記錄集合存儲在非易失性存儲器中。
5.如權(quán)利要求4所述的方法,其特征在于,所述非易失性存儲器是閃存。
6.如利要求1所述的方法,其特征在于,所述快速存儲器是RAM。
7.如權(quán)利要求1所述的方法,其特征在于,還包括對所有對應(yīng)于與輸入項標簽值匹配的標簽值的數(shù)據(jù)記錄重復(fù)數(shù)據(jù)記錄檢索及比較的步驟。
8.一種用于使快速存儲器的需要量最小的快速數(shù)據(jù)存取裝置,其特征在于,所述裝置包括用于儲存確定為數(shù)據(jù)記錄集合的多個數(shù)據(jù)記錄的第一存儲器;數(shù)字處理器;和用于儲存由所述數(shù)字處理器計算出對應(yīng)于存儲在第一存儲器中的每個數(shù)據(jù)記錄的標簽值的第二存儲器;其中,數(shù)字處理器響應(yīng)為輸入項搜索所述數(shù)據(jù)記錄的請求,計算對應(yīng)于該輸入項的輸入項標簽值,將輸入項標簽值與儲存在第二存儲器的每個標簽值比較,檢索對應(yīng)于匹配該輸入項標簽值的標簽值的數(shù)據(jù)記錄,并將輸入項與檢索的數(shù)據(jù)記錄比較。
9.如權(quán)利要求8所述的裝置,其特征在于,所述第一存儲器是非易失性存儲器。
10.如權(quán)利要求8所述的裝置,其特征在于,所述第二存儲器是RAM。
11.如權(quán)利要求8所述的裝置,其特征在于,所述的數(shù)據(jù)記錄包括在電子電話簿中的項。
12.如權(quán)利要求8所述的裝置,其特征在于,所述標簽值是使用數(shù)據(jù)記錄作為散列函數(shù)的輸入而計算出的散列函數(shù)的輸出。
13.如權(quán)利要求12所述的裝置,其特征在于,所述輸入項標簽值是使用曾用于計算所述標簽值的相同的散列函數(shù)來計算。
14.如權(quán)利要求8所述的裝置,其特征在于,在所述第二存儲器中為存在所述第一存儲器的每條數(shù)據(jù)記錄分配兩個字節(jié)。
15.一種配置用于用較少的RAM需求來進行快速數(shù)據(jù)存取的電話,其特征在于,所述電話包括用于存儲確定為數(shù)據(jù)集合的多個數(shù)據(jù)記錄的第一存儲器;數(shù)字處理器;和用于儲存由數(shù)字處理器計算出對應(yīng)于存儲在第一存儲器中的每個數(shù)據(jù)記錄的標簽值的第二存儲器;其中,所述數(shù)字處理器響應(yīng)為輸入項搜索該批記錄的請求,計算對應(yīng)于所述輸入項的輸入項標簽值,將輸入項標簽值與儲存在第二存儲器的每個標簽值比較,檢索對應(yīng)于匹配該輸入項標簽值的標簽值的數(shù)據(jù)記錄,并將輸入項與檢索的數(shù)據(jù)記錄進行比較。
16.如權(quán)利要求15所述的電話,其特征在于,所述數(shù)據(jù)記錄集合是電子電話簿。
17.如權(quán)利要求15所述的電話,其特征在于,所述第一存儲器是非易失性存儲器。
18.如權(quán)利要求15所述的電話,其特征在于,所述第二存儲器是RAM。
19.如權(quán)利要求15所述的電話,其特征在于,所述標簽值是使用數(shù)據(jù)記錄作為散列函數(shù)的輸入而計算出的散列函數(shù)的輸出。
20.如權(quán)利要求19所述的電話,其特征在于,所述輸入項標簽值是使用曾用于計算所述標簽值的相同的散列函數(shù)來計算的。
全文摘要
一種用于減少所需的RAM數(shù)量同時保持快數(shù)據(jù)存取的方法與裝置。數(shù)據(jù)記錄常保存在非易失性存儲器以便即使在電路斷電時仍維持數(shù)據(jù)記錄的內(nèi)容。在本發(fā)明中,每個在數(shù)據(jù)記錄的非易失性RAM集合中的每條記錄輸入到函數(shù)H(x),后者輸出一標簽值。經(jīng)計算的標簽值存入RAM中預(yù)定的存儲器單元。每個經(jīng)計算的標簽長度上短于存儲在非易失性RAM中的記錄。因此與將整個數(shù)據(jù)記錄集合存儲在RAM中所需要的RAM相比,對每條數(shù)據(jù)記錄保存一個標簽值需要較少的RAM。當需要對應(yīng)y的數(shù)據(jù)記錄項時,計算H(y)的值。然后該H(y)值與標簽值表中所有值比較。如果找到匹配,從其在非易失性RAM中的位置檢索對應(yīng)的記錄,并與y比較。如果該值不匹配,搜索標簽值表尋找其他位置匹配H(y)。其結(jié)果是僅需要最小量的RAM,就能與非易失性RAM的內(nèi)容進行非常快速的比較。
文檔編號G06F17/30GK1496523SQ01803840
公開日2004年5月12日 申請日期2001年1月19日 優(yōu)先權(quán)日2000年1月19日
發(fā)明者梅幼松, E·J·列克文, 列克文 申請人:高通股份有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
马公市| 霍州市| 宜春市| 莎车县| 昌黎县| 大名县| 定远县| 闽侯县| 清徐县| 资溪县| 荔波县| 贞丰县| 大安市| 乾安县| 依兰县| 呼和浩特市| 六枝特区| 韶关市| 札达县| 巴东县| 西城区| 分宜县| 类乌齐县| 通化县| 桓台县| 湘西| 平邑县| 色达县| 十堰市| 拜城县| 屏山县| 巴林左旗| 揭东县| 海兴县| 镇赉县| 南靖县| 阳西县| 兴文县| 永顺县| 偃师市| 辰溪县|