檢測對持久存儲器寫錯的方法與裝置的製作方法
2023-07-26 09:35:21 1
專利名稱:檢測對持久存儲器寫錯的方法與裝置的製作方法
技術領域:
本發明涉及檢測對持久存儲器寫錯的方法與裝置,還涉及糾正這種寫錯結果的方法與裝置。這類技術可用於嵌入式系統,合適的應用合金包括「Java卡之類的智慧卡;智能鑰現智能盤之類的數字運行的存貯或安全設備;行動電話的SIM與USIM;數據記錄設備;記錄用戶愛好、存貯設定值或記錄用途的小型設備;運載工具的計算機系統;機頂盒;和網際網路路由器。這類技術適用於「成批一擦就寫」型的持久或「非易失」存儲器,如閃耀存儲器,也適用於「只寫」型存儲器。
背景技術:
這裡用的術語「持久數據項」(即PDI)被定義為與其隨時間變化的值關聯的數據項,尤其在被應用程式修正時,要求在這類修正之間保持其狀態,尤其在應用程式不運行而且電源被不經意除去時,在應用程式被切斷時,或偶然因電源故障或除去電源時。
電腦程式通過讀與修正變量值而運行。對RAM裡的變量,由於通常可按需要改寫諸值而且讀寫很快,故這樣做並不難。當程序不運行時,必須將其狀態存入更持久的存儲器裡。
在諸如智慧卡等小型計算機平臺上,很少有RAM,持久存儲器通常取EEPROM或閃耀存儲器的形式。這種存儲器的特點在於,某一位一旦改變,它在整段被擦除前就不能再變。在EEPROM中,段大小可能小得像單個字節(8位),可將該存儲器基本上視為極慢速的RAM。在閃耀存儲器中,段對矽區效率而言一般很大(如64KB),擦除操作緩慢,而且在若干次擦除循環後(比如優質的閃耀存儲器為100,000次),存儲器將最終就用壞了。閃耀存儲器的優點是更快速,裝入給定晶片區的數量更多,因而存貯空間更大,但比EEPROM更難有效使用。
研究一下智慧卡的應用,它在每次運行並檢查運行間隔時,要保持日期與時間的記錄(或許得自讀卡器終端),這樣可用於安全功能,如強制現金卡每天的取款極限。每次操作時,必須讀舊日期來檢查,並存貯新日期,故該日期就是PDI。若每次變化時都將日期存入同一位置,由於物理存儲器局限性,必須首先擦除全部64K塊,這要花很長時間,而且會迅速用壞閃耀存儲器。
換一種方法,每次寫新日期時,必須把它存入存儲器新區。該程序肯定要與其它程序共享閃耀存儲器,故不能有效地對這樣一種應用預定一大塊閃耀存儲器。換言之,系統內有眾多PDI,它們可能以不同的速率更新,這取決於應用程式運行。
如
圖1所示,一種已知的PDI存貯配置法對各PDI建立一聯接的值鏈,鏈的第一元位於已知地址。對上述的特定應用,鏈的各元存貯了日期記錄值並對鏈的下一項有一指針空間,最後的鏈元的指針值等於擦除的存儲器樣式(在被擦除的每位狀態為1的該模型中為16進位的FFFF,或在被擦除的每位狀態為0的互補模型中為0000)。要讀當前日期,從鏈的開頭讀起,隨指針一直讀到達到值FFFF。要加新日期,就用新值和空指針建立新的鏈元,然後在前一最後元的指針部分上存貯該地址。
塊存滿時,只要把各PDI最近值複製到新塊,然後擦除舊塊,這稱為「收集無用數據」。收集無用數據時,鏈的最後值被複製到新塊用作新鏈的開始。
若在寫操作中對閃耀存儲器去電,就存在操作未完成而且重新上電時有不一致狀態的危險。在帶閃耀存儲器的無接觸智慧卡的情況下,卡自身不帶任何電源,在向讀卡器出示時從讀卡器接收電力。若在對閃耀存儲器作寫操作期間從讀卡器裡取出卡,則在寫操作中會中斷電源,使實際存貯的數據不同於要存貯的數據。
例如在一般閃耀存儲器中,擦除的每位狀態為1,各位可在寫操作中改為0,但要實現從0到1的逆變化,只能通過一次擦除整頁或整段。而且,若寫操作中斷,則準備從1變為0的各位將不是變為0就是保持1。通常含16位的整個字平行寫到閃耀存儲器,當寫操作因失電而中斷時,雖然部分或全部請求的從1變0會出現,但是不能識別出哪些變了和哪些(有的話)不變。重新上電時,智慧卡無法說明存貯的數據是否可靠,因為在寫操作中失電了。
在圖1所示的聯接的鏈和前述場合中,或在英國專利申請No.0205573.9(其內容通過引用包括在這裡)揭示的改進結構的情況下,各數據項的當前值是聯接鏈或清單中的最後一個值。若在指向最後值的指針被寫入閃耀存儲器時電源發生故障,則在電源恢復時不能恢復該最後值。因此,依賴於這種最後值的任何應用程式將不能正常工作或根本不工作。
發明內容
按照本發明第一方面,提供一種檢測持久存儲段出錯的方法,存儲段中將至少一個數據項存入臨時連續指定的存儲單元,每個新的存儲單元加到存儲段中有第一與第二端的塊的第一端,而各新的存儲單元的指針加到塊中含至少一個數據項前一值的舊存儲單元,該法包括步驟(a)確定新加指針所指的地址;(b)把確定的地址與包括最新存儲單元的存儲塊的地址範圍作一比較;和(c)若確定的地址在該地址範圍以外,執行動作。
步驟(a)~(c)在每次對存儲段通電時都執行。
步驟(a)包括確定所有指針所指的地址,並選擇最高或最低地址。
步驟(c)包括把新加的指針的地址改為最新存儲單元的地址。
各新的存儲單元就近加到塊第一端。
各指針指向它所指的存儲單元的最高或最低的地址。
存儲段至少包括閃耀存儲器的一部分。
各存儲單元具有供至少一個數據項的單值使用的空間。
存儲段每位只可逐一從1切換成0,該動作在檢出的地址大於地址範圍中最高地址時執行。或者,存儲段每位只可逐一從0切換為1,該動作在檢出地址小於地址範圍最低地址時執行。
存儲段含至少一個寫計數器,其中在每次存值操作結束時設置各自的標誌,在每次加指針操作結束時設置另一標誌,而步驟(a)~(c)只有在設置了所述標誌和另一標誌的舊數值後才執行。該至少一個寫計數器包括一數據項。
存儲段包含至少一個寫計數器,其中在存貯一個或多個數據項值的系列時,在第一次加指針操作前先在該系統中設置各自的標誌,在最後加指針操作後在系列中設置另一標誌,而步驟(a)~(c)只有在設置了所述標誌和另一標誌的舊數值後才執行。
按照本發明第二方面,提供一種控制計算機執行本發明第一方面的方法的程序。
按照本發明第三方面,提供一種用本發明第二方面的程序編程的計算機。
按時本發明第四方面,提供一種含本發明第二方面的程序的存貯媒體。
按照本發明第五方面,提供一種裝置,它包括持久存儲段;把至少一個數據項的值存入臨時連續指定的存儲單元的部分,各新的存儲單元被加到存儲段中具有第一與第二端的塊的第一端;把指向各新存儲單元的指針加到塊中含至少一個數據項前一值的舊存儲單元的部分;確定新加指針所指地址的部分;把確定的地址與包括最新存儲單元的存儲塊地址範圍作比較的部分;和確定的地址偏出地址範圍時執行動作的部分。
確定部分、比較部分和執行部分安排成在每次對該裝置通電時受驅動。
確定部分安排成確定所有指針所指的地址,並選擇最高或最低地址。
執行部分安排成把新加指針的地址改為最新存儲單元的地址。
各新的存儲單元就近加到塊的第一端。
各指針指向它所指的存儲單元的最高或最低地址。
存儲段包括至少一部分閃耀存儲器。
各存儲單元具有供至少一個數據項的單值使用的空間。
存儲段每一位只可逐一從1切換到0,執行部分安排成在檢出的地址大於地址範圍最高地址時執行動作。或者,存儲段每一位只可逐一從0切換到1,執行部分安排成要檢出地址小於地址範圍最低地址時執行動作。
該裝置包括在存儲段中至少一個寫計數器裡在每次存貯操作開始時設置各自標誌並在每次加指針操作結束時設置另一標誌的部分;和評定設置的所述標誌和另一標誌的數值是否為奇數的部分,確定部分、比較部分和執行部分安排成能響應於設定部分受驅動。至少一個寫計數器包括一數據項。
該裝置可以包括在存儲段中至少一個寫計數器內在存貯一個或多個數據項值的系列時,在第一次加指針操作前先在系列中設置各自的標誌,而在最後加指針操作後在系列中設置另一標誌的部分;和評定設置的所述標誌和另一標誌的數值是否為奇數的部分,確定部分、比較部分和執行部分安排成響應於評定部分受驅動。
該裝置可包括智慧卡。
這樣就能提供一種可靠地檢出聯接的PDI鏈和同類結構的指針出錯的結構。該技術還可校正這類出錯,因而例如可防止依賴於存在閃耀存儲器等裡的PDI的任何應用不利地使用讀自存儲器的錯誤數據。
附圖簡介以下參照附圖舉例描述本發明,其中
圖1示出已知的聯接式PDI值鏈;圖2示出構成本發明一實施例的裝置;圖3示出圖2的裝置按構成本發明一實施例的方法的操作;和圖4是說明該方法的流程圖。
發明的較佳實施方式圖2示出「無接觸」型智慧卡,與讀卡器一起傳遞數據。卡1具有嵌入在其內的計算機2和圖示成包含若干頁或段的閃耀存儲器3。計算機2包括中央處理單元(CPU)4,配有工作隨機存取存儲器(RAM)5一輸入/輸出接口(I/O)6,可與讀卡器作無接觸通信。卡1不含內電源,依靠設置在讀卡器(未示出)裡的外電源7。因此,計算機2和存儲器3隻在卡1正確地插入讀卡器才受電。
圖2所示的閃耀存儲段配置成用作持久數據項(PDI)的非易失存儲器,因而在無電時不要求存貯的數據使用易失的工作RAM5,而在無電時必須保持其值的PDI存入閃耀存儲段。
圖2所示的閃耀存儲段配置成存貯例如指示頁在使用還是已被擦除而準備再用的頁識別符與狀態8、包含指向有存在段內PDI第一值的單元或「節點」的各PDI指針的PDI表9、臨界寫計數器10和對其已寫入PDI值的節點。該段具有自由空間11和當前已被指定的最新使用的存儲器字(LUM)12。
在起初配置卡1時,計算機2輸入頁識別符號狀態8,為PDI表9和臨界寫計數器10留出存儲器3裡的空間。當第一PDI的第一值寫到存儲器3時,在存儲段節點15的開始處為項值和下一值指針指定足夠的空間。與第一PDI關聯的指針被插入表9,指向節點15的最新字,如箭頭16所示。
閃耀存儲器3是這樣一種類型段被擦除時,其所有的位都置1。因此,計數器10所有的位起初都置1。而且,字在節點15為PDI下一值的指針保留的位全部置1,等待在下一值到來時重寫。
在圖2實例中,準備存入存儲器3的下一值是第一PDI的第二值。寫操作開始時,為存貯第二PDI值指定一新節點17。例如將繼續包含PDI後一值節點的指針的該節點最後字,其最低有效位置0。因所有指針都指向偶數地址,故與在該字內後寫的指針不相矛盾。為包容第一PDI的第二數據值,在該指針的字與前一節點15之間設置了足夠的存儲器空間。該節點指定成與節點15相鄰,例如旨在最大限度地利用存儲器空間,或者留一空隙,例如確保其指針在成奇數地定出第二數據值時處於偶數地址。不過要控制對存儲段的寫,使諸節點總是加到含前一指定節點的空間的端部,決不插在原有節點之間。
在寫操作的下一步驟中,把第一PDI的第二數據值存入可作數據存貯的節點17部分。計數器10的第一位置0,表明成功完成了寫數據操作。然後,把指向分配給後一指針的節點17最後字的地址的指針寫入字15的指針欄位,於是計數器10的第二位置零,表示寫操作完成。
在存入閃耀存儲器3該存儲段的下一值是第二PDI的第一值。寫操作開始時,指定一下有效節點18,之後將該值寫入節點18的數據值欄位。指向以後將包含指針的節點18最後字(即最高地址字)的指針存貯在PDI表9裡的第二單元。
要存入存儲器3的第四值是第二PDI的第二值。如前所述,通過將其最後或最高地址字的的最低有效位置0,指定了下一有效節點19,將該數據值寫入節點19的值欄位,計數器10的第三位置0,指向節點19最後字的指針被寫入節點18的指針欄位(最後或最高地址字),計數器10的第四位置零。
任一PDI的新值每次到來時,重複這一過程,以便寫入存儲器3的該段。具體地說,每個新值都被寫入跟在含前一次收到的存貯值的節點後面(還可與之鄰接)的節點。將該值寫入新節點後,計數器10的下一位置零,而在指向新字的指針被寫入含同一PDI前一值的節點的指針欄位時,計數器的另一位置零。
在應用英國專利申請No/0205573.9揭示技術時,指針可能不寫入含同一PDI前一值的節點,可能寫入含同一PDI更早值的節點的「遠欄位」。該專利申請還描述了一種各節點的值欄位能存貯其PDI的若干值的技術,因而只有在填滿了所有值欄位時才對該PDI指定新節點。應用這種技術時,不需要把第一值之後的值寫到節點和把刷新的指針寫入前一節點,而且也不需要臨界寫計數器10更新。因此,前述步驟只在填滿了節點的值欄位時才使用,而且必須對該PDI指定新節點。這種配置可用於存貯計數器10,更有效使用存儲器空間。
其實如上所述,對新的PDI值指定新節點時,為存貯該值和下一指針指定了足夠的字節,其方法是在新的LUM中設置一個位。若存儲段內各指針都使用兩個字節而且諸字總是存貯在偶數地址,則可將新節點指針欄位內的最低位置零。這樣就指出一存儲段內隨時被指定的最高地址,因高於LUM的地址處的所有位都將處於其復位1態。
當計算機2要查任一PDI的當前值時,它就追隨存在對該PDI臨時連續指定節點裡的指針所規定的通路,因而計算機2對含第一值的節點識別出PDI表9內的該指針,檢查該節點裡的指針是否指向有效地址。如果這樣,計算機則檢測該指針所指的節點。在計算機查出被存指針代表指定的節點但不含指針時,存在該節點的值就是PDI的當前值並為計算機使用。
若在將指針寫入存儲段中合適的欄位的同時去掉卡1的電源,存貯的指針值就會不正確。由於對存儲器3的寫涉及到位從1切換到0,未完成的寫操作導致該指針被存位模式的二進位值大於預定值,因為它比應有的具有更多的1,從而要檢測並校正指針寫錯。
圖4示出一種每次對卡1通電時執行的方法。該法或子程序在20和21開始,計算機2搜索當前LUM12的存儲段,例如計算機2從存儲段中最高地址開始工作到最低地址,依次檢查每個字,直到查出所有位非全1的一個字。該字的地址即為LUM的地址,計算機2再將該LUM的地址存入RAM5。
在步驟22,計算機4檢查臨界寫計數器10是否含偶數的設置位。每當成功地將新PDI值寫入閃耀存儲段時,計算數器10的二個位置0。反之,每當寫操作開始但在卡1去電前未完成時,就只有一個位置0,因為計數器10含奇數個設置位,故通過統計計數器10裡零的數目,能檢測是否出現可能的寫錯。
若計數器10含偶數個零,就不必再介入,圖4的子程序在23結束。若計數為奇數,則計算機2在步驟24搜索存入存儲段裡諸字中其值大於先前在步驟21存入RAM5裡的LUM地址的指針。值為FFFF或FFFE的指針均不予考慮,因為它雖然指向大於當前LUM地址的地址,但代表了還未指向指定節點的指針。另外,任一錯誤的指針,其地址必然大於當前LUM的地址。而且,任一這種指針的正確值都是LUM的地址。
在步驟25,計算機2判斷是否發現錯誤的指針,若未發現,步驟26就將計數器10的下一位置零,子程序23結束;若發現錯誤的指針值,步驟27則將指針值校正到LUM地址而校正該指針值,然後在23結束前執行步驟26,使計數器10含偶數個0,表示不再出錯。
圖3示出一特例,其中出現的錯誤被檢出後予以校正。PDI的第一值(值數據0)存貯在其最後字或指針欄位的地址為0014的PDI節點30,指向節點30最後字的指針存在PDI表9內。當PDI的下一值(值數據1)到來時,計算機2在表9內找出該PDI的指針並檢查指針欄位31,發現含PDI前一值的節點30。該下一值寫入節點32的值欄位,地址1234輸入節點30的指針欄位31(指針都用16進位表示)。計數器10按前述方法更新。
要存貯同一PDI的下一值(值數據2)時,計算機2跟隨指針軌跡,確定節點32含有該前一值。對存儲段中某一節點定出下一有用空間,在地址2200用其指針欄位指定節點。把地址2200的最低位改為0,在指針欄位裡留下FFFE,指定該節點。值數據2存入節點33的值欄位,計數器10的下一個非零位置零。指向節點33的指針開始準備寫入節點32的指針欄位,但在寫完前電源被除去,例如從讀卡器裡取出卡1,使未寫完的指針2274出現在字32的指針欄位內。具體而言,二進位值001000100000000應被寫入節點32的指針欄位,而不寫二制值0010001001110100,因在去電前,第三、第五、第六與第七位還未進行從1到0的切換。
當再對卡1通電時,就執行圖4的子程序,這樣就斷定節點33的地址欄位被存貯在LUM,而存入節點32指針欄位的指針地址的值高於LUM的地址2200。因此,通過切換該欄位內合適的位以代表正確的地址2200,完成將正確的指針寫入節點32的指針欄位。
這樣,能檢測並校正寫錯的指針。閃耀存儲器3段內所需的唯一附加空間用於臨界寫計數器10。計數器10在段內要求相當小的空間,或被存貯在不同的段內,因而在減小存儲器中存貯空間方面,能以最小的代價檢測並校正指針錯誤。
在上述一實施例中,存儲段含一臨界寫計數器,其中在每次存值操作結束就設置一標誌,並在每次加指針操作結束設置另一標誌,這樣在更新指針地址的臨界寫期間可保證臨界寫計數器指示奇數值。但在對一個或多個PDI作一組更新的情況下,在臨界寫計數器中也可能在該組更新的第一次加指針操作之前設置一標誌,並只有在該組更新的最後一次加指針操作後才設置另一標誌。若在設置該標誌與另一標誌之間電源故障,將在下次上電時作搜索。該方法的優點是設置時臨界寫計數器只被寫兩次,使系統至少在不失電的情況下更快速。
在另一實施例中,省略了臨界寫計數器10。在此情況下,當重新通電時,計算機2說不出是否出現指針錯誤,因而必須將所有存貯的指針值與LUM地址作比較。若指針值高於LUM地址,可像前述那樣檢測和校正。所以在該修正方法中,在減小存儲器容量方面並無問題,但計算機2要用更多時間搜索差錯。
在閃耀存儲器3用一個以上段存貯PDI的情況下,可對每一段應用同一技術。具體而言,每段有其自己的LUM並用於存貯PDI一子組。
還可通過劃分PDI空間把臨界寫計數器10分成幾部分,各計算器與各自的劃分相關,如在存儲器有若干頁的情況下,可對每一有效頁設置各自的計數器。而且,還可對每次劃分用一獨立的臨界寫計數器劃分每一頁。搜索和校正每次劃分的差錯更迅速,不過若干臨界寫計數器要佔用更多存儲器空間,為判斷各次劃分中是否有差錯,通電時必須檢查各計數器。
還可將臨界寫計數器指定在段中作為PDI,於是更新鏈中的未項就是該計數器的有效塊,這樣可對計算器先指定較小的存儲量,若該段被少量大的PDI以後填滿,則很少浪費空間。
臨界寫計數器可存貯在與之相關的段內或不同的段內。在前一種情況,關鍵是確保新的臨界寫計數器段不被指定在另一臨界更新的中間,否則會改變使用另一更新的LUM。為此,新的臨界寫計數器段可比要求的早幾次更新被指定,不要在作臨界更新時被指定。
該技術還適用於這樣類型的閃耀存儲器存儲器被復位成使其所有位都為0,對存儲器的寫涉及將位值由0改為1。例如,所有指針都以相反或互補的形式存貯,讀出時再反過來。或在使用這種存儲器時,要存貯的第一值被指定給最高地址的節點,後面的值被指定到下一較低地址作存貯,各節點最低地址字用作指針欄位。此時,若指針值寫錯了,它就指向比該LUM地址更低的地址,因而能檢出有錯的指針並校正其值。
這些技術還可組合應用,例如使用一種位從1寫到0的閃耀存儲器,存儲器從較高到較低地址指定,並以相反或互補形式存貯指針。
工業適用性本發明涉及一種檢測對持久存儲器寫錯的方法與裝置,還涉及一種校正這種出錯結果的方法與裝置。這些技術可用於嵌入式系統,合適的應用例子包括Java卡等智慧卡;數字有效存貯或安全設備,如智能鑰與智能盤;行動電話的SIM與USIM;數據記錄設備;記錄用戶愛好、存貯設定值或記錄用途的小型設備;運載工具中的計算機系統;機頂盒;和網際網路絡由器。這類技術適用於諸如閃耀存儲器的「成批一擦就寫」型和「只寫」型的持久或「非易失」存儲器。
權利要求
1.一種檢測持久存儲段裡出錯的方法,所述存儲段中將至少一個數據項的值存貯在臨時連續指定的存儲單元裡,各新的存儲單元被加到存儲段中具有第一與第二端的塊的第一端,而指向各新存儲單元的指針被加到塊中含至少一個數據項前一值的舊存儲單元,所述方法的特徵在於包括(a)確定最後所加指針所指的地址;(b)把確定的地址與存儲塊中包括最後新存儲單元(LUM)的地址範圍作比較;和(c)若確定的地址偏出地址範圍,就執行動作。
2.如權利要求1所述的方法,其特徵在於,每次對存儲段通電時執行步驟(a)~(c)。
3.如權利要求1所述的方法,其特徵在於,步驟(a)包括確定所有指針所指的地址,並選擇最高或最低地址。
4.如權利要求1所述的方法,其特徵在於,步驟(c)包括把最後所加指針的地址改成最新存儲單元的地址。
5.如權利要求1所述的方法,其特徵在於,各新存儲單元就近加到塊第一端。
6.如權利要求1所述的方法,其特徵在於,各指針指向它所指的存儲單元的最高或最低地址。
7.如權利要求1所述的方法,其特徵在於,存儲段包括至少一部分閃耀存儲器。
8.如權利要求1所述的方法,其特徵在於,各存儲單元具有用於至少一個數據項單值的空間。
9.如權利要求1所述的方法,其特徵在於,存儲段每位只可單獨從1切換到0,當檢出地址大於地址範圍的最高地址時執行動作。
10.如權利要求1所述的方法,其特徵在於,存儲段每位只可單獨從0切換到1,當檢出地址小於地址範圍的最低地址時執行動作。
11.如權利要求1所述的方法,其特徵在於,存儲段含至少一個寫計數器,其中在每次存值操作結束時設置各自的標誌,在每次加指針操作結束時設置各自的另一標誌,而且只有設置了奇數個標誌與另一標誌才執行步驟(a)~(c)。
12.如權利要求11所述的方法,其特徵在於,至少一個寫計數器包括一數據項。
13.如權利要求1所述的方法,其特徵在於,存儲段包含至少一個寫計數器,其中在存貯一個或多個數據項值系列時,在系列第一次加指針操作前設置各自的標誌,在系列最後一次加指針操作後設置各自的另一標誌,而且只有設置了奇數個所述標誌與另一標誌才執行步驟(a)~(c)。
14.一種控制計算機執行權利要求1所述方法的程序。
15.一種用權利要求14所述程序編程的計算機。
16.一種含權利要求14所述程序的存儲媒體。
17.一種裝置,它包括持久存儲段;把至少一個數據項值存入臨時連續指定的存儲單元的部分,每一新存儲單元被加到存儲段中具有第一與第二端的塊的第一端;把指向每一新存儲單元的指針加到塊中含至少一個數據項前一值的舊存儲單元的部分,其特徵在於確定最後所加指針所指地址的部分;把確定的地址與存儲塊中包含最新存儲單元(LUM)的地址範圍作比較的部分;和若確定的地址偏出該地址範圍就執行動作的部分。
18.如權利要求17所述的裝置,其特徵在於,確定部分、比較部分和執行部分安排成每次對裝置供電時受驅動。
19.如權利要求17所述的裝置,其特徵在於,確定部分安排成確定所有指針所指的地址,並選擇最高或最低地址。
20.如權利要求17所述的裝置,其特徵在於,執行部分安排成把新加指針的地址改變最新存儲單元地址。
21.如權利要求17所述的裝置,其特徵在於,把各新的存儲單元就近加到塊第一端。
22.如權利要求17所述的裝置,其特徵在於,各指針指向它所指的存儲單元的最高或最低地址。
23.如權利要求17所述的裝置,其特徵在於,存儲段包括至少一部分閃耀存儲器。
24.如權利要求17所述的裝置,其特徵在於,各存儲單元具有用於至少一個數據項單值的空間。
25.如權利要求17所述的裝置,其特徵在於,存儲段每一位只可單獨從1切換到0,執行部分安排成在檢出地址大於地址範圍最高地址時執行動作。
26.如權利要求17所述的裝置,其特徵在於,存儲段每一位只可單獨從0切換到1,執行部分安排成在檢出地址小於地址範圍最低地址時執行動作。
27.如權利要求17所述的裝置,其特徵在於包括在存儲段的至少一個寫計數器中在每次存值操作開始時設置各自的標誌並在每次加指針操作結束時設置各自另一標誌的部分;和評定設置的所述標誌和另一標誌的數量是否為奇數的部分,確定部分、比較部分和執行部分安排成響應於評定部分受驅動。
28.如權利要求27所述的裝置,其特徵在於,至少一個寫計數器包括一數據項。
29.如權利要求17所述的裝置,其特徵在於包括在存儲段的至少一個寫計數器中存貯一個或多個數據項值系列時,在該系列中第一次加指針操作前設置各自的標誌並在該系列中最後一次加指針操作後設置各自另一標誌的部分;和評定設置的所述標誌和另一標誌的數量是否為奇數的部分,確定部分、比較部分和執行部分安排成響應於評定部分受驅動。
30.如權利要求17所述的裝置,其特徵在於包括智慧卡。
31.一種設備,其特徵在於包括閃耀存儲段;把至少一個數據項值存入臨時連續指定的存儲單元的裝置,各新的存儲單元加到存儲段中具有第一與第二端的塊的第一端;把指向各新的存儲單元的指針加到塊中含至少一個數據項前一值的舊存儲單元的裝置;確定最後加的指針所指的地址的裝置;將確定的地址與存儲塊中包含最新存儲單元的地址範圍作比較的裝置;和在確定的地址編出地址範圍時執行動作的裝置。
全文摘要
提出一種檢測持久存儲器諸如閃耀存儲器出錯的技術,其中將數據項值存貯在連續加到已指定存儲段一端的存儲單元裡。加新單元時,在該項前一值的單元裡存貯指向新單元地址的指針。每當重新通電時,就確定最新單元的地址(21)。對任一其值大於最後一個單元地址的指針,搜索該單元的指針欄位(24)。若發現這種指針值,說明寫指針值時出錯了,例如寫指針來操作未完成就去除了電源。把指針值改為最後一個單元的地址(27),即能糾錯。
文檔編號G11C16/10GK1695206SQ0382513
公開日2005年11月9日 申請日期2003年9月16日 優先權日2002年9月20日
發明者A·凱 申請人:夏普株式會社