專利名稱:非易失性存儲器的數(shù)據(jù)寫入的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及非易失性存儲器的數(shù)據(jù)寫入。所謂非易失性存儲器是一種無需維持電源而能保持?jǐn)?shù)據(jù)的存儲器。具體地說,本發(fā)明涉及把數(shù)據(jù)寫入到便攜式集成電路裝置內(nèi)的存儲器中,此時(shí),所述集成電路裝置通過與其配接的終端設(shè)行臨時(shí)相連來輸入和輸出數(shù)據(jù)。這種便攜式集成電路的一個(gè)例子是稱之為“靈巧插卡”的集成電路卡(ICC)。
靈巧插卡經(jīng)接口與終端設(shè)備相連,由此將電源、時(shí)鐘信號、復(fù)位信號及串行數(shù)據(jù)信號加到靈巧插卡上。通常,該接口與一組電觸點(diǎn)相結(jié)合,以實(shí)現(xiàn)臨時(shí)電連接。然而,現(xiàn)已有人建議采用電磁感應(yīng)技術(shù)來施加電源。按照這種方案,可通過電磁或紅外,或超聲技術(shù)來實(shí)行的時(shí)鐘、復(fù)位和數(shù)據(jù)信號的耦合。便攜式集成電路裝置并非一定做成卡片形的。不管其形狀如何,我們均稱這種裝置為集成電路卡(ICCs)。使用ICCs遇到的困難之處是在寫數(shù)據(jù)的過程中,由于電源的瞬態(tài)響應(yīng)或失效而影響接口工作,從而會干擾對ICC的數(shù)據(jù)寫入操作,而復(fù)位或時(shí)鐘信號可能造成錯(cuò)誤的寫入。
特別適合于本發(fā)明的靈巧插卡的應(yīng)用場合是財(cái)務(wù)金額或“電子現(xiàn)款”轉(zhuǎn)帳系統(tǒng)。此時(shí),靈巧插卡中的數(shù)據(jù)代表了可以與銀行聯(lián)機(jī)和在插卡之間脫機(jī)進(jìn)行轉(zhuǎn)帳的金額。這種系統(tǒng)在專利Wo 91/16691和Wo 93/08545中曾有介紹。此時(shí),至為重要的是不會由于是意外的或人為撥動電源線或數(shù)據(jù)線而發(fā)生錯(cuò)誤的數(shù)據(jù)寫入。本發(fā)明可提供對這問題的解決方案。
本發(fā)明提出了一種向在集成電路裝置中的非易失性存儲器寫入數(shù)據(jù)的方法。該電路裝置有一個(gè)用于與終端單元,微處理機(jī),隨機(jī)存儲器和非易失性存儲器臨時(shí)連接的接口;該方法包括分配一個(gè)非易失性存儲器第一區(qū)域,用以寫入數(shù)據(jù);分配一個(gè)非易失性存儲器第二區(qū)域,用于寫入寫狀態(tài)信息;實(shí)行把數(shù)據(jù)寫到所述第一區(qū)域的數(shù)據(jù)寫入操作;及如果且只是如果數(shù)據(jù)寫入操作在滿意實(shí)行時(shí)向所述第二區(qū)域?qū)懭氡砻饔行?shù)據(jù)寫入的寫狀態(tài)信息。
在微處理機(jī)環(huán)境下,例如在RAM的各區(qū)之間及從RAM至EEPROM有許多用于傳送數(shù)據(jù)和程序信息的復(fù)制和寫步驟。在操作系統(tǒng)級別或更高級別的情況下,通常用到可用來驗(yàn)證復(fù)制或?qū)懖僮魇欠裼行У尿?yàn)證技術(shù)。這可能包含將復(fù)制的或?qū)懭氲牟牧吓c原來的材料自動進(jìn)行比較,或者更為常見的是,配有一個(gè)校驗(yàn)和例行程序,該程序在數(shù)據(jù)上加上一個(gè)或多個(gè)校驗(yàn)和比特,按照特定的算法,與數(shù)據(jù)建立一種關(guān)聯(lián),可以證實(shí)確沒有發(fā)生過寫或復(fù)制訛誤。如果被檢查出之化誤,則重復(fù)操作,直至運(yùn)行滿意為止。本發(fā)明并不在乎有無這種技術(shù),如果使用了這種技術(shù),本發(fā)明也可其一起應(yīng)用。但是,這種自備的技術(shù)可以用作為判別寫操作是否被滿意進(jìn)行的基礎(chǔ),以便在所述存儲器的第二區(qū)域?qū)懭脒m當(dāng)?shù)男畔?。于是,例如,如果利用提供的已自備的寫?yàn)證技術(shù)成功地將數(shù)據(jù)寫入到了ICC中,那未寫過程的結(jié)論可看作代表了可允許把適當(dāng)?shù)臄?shù)據(jù)寫入到存儲器的第二區(qū)域的滿意寫入。
近來用于大多數(shù)靈巧插卡的非易性存儲器是一種電可擦可編程只讀存儲器(EEPROM),本發(fā)明特別適用于它但不限于它。就讀寫步驟而言,EEPROM通常被分成頁,而讀或?qū)懨看沃辉谝豁撋线M(jìn)行??梢灶A(yù)料,瞬態(tài)寫錯(cuò)誤可能會污損某一頁上的內(nèi)容,但不會污損其它頁的內(nèi)容。因此,所述第一和第二區(qū)域最好是在不同的頁面上。
本發(fā)明可使非易失性存儲器記錄是否在裝置上有顯著的寫錯(cuò)誤并當(dāng)裝置再次使用時(shí)對一個(gè)復(fù)位信號作出反應(yīng)。通常,采用ISO 7816協(xié)議來支配復(fù)位的性質(zhì),對請求的答復(fù),電源與時(shí)鐘信號寫。如果錯(cuò)誤是瞬時(shí)的,則可以立刻施加復(fù)位信號,以使中斷的事務(wù)處理再繼續(xù)。如果不是那樣,下次施加復(fù)位信號,以試圖使用該裝置。根據(jù)本發(fā)明的一個(gè)優(yōu)選實(shí)施例,提供了一種應(yīng)用數(shù)據(jù)已如前所述被寫入的集成電路裝置的方法,在該裝置的非易失性存儲器中包括一個(gè)用來控制微處理機(jī)在正常環(huán)境下運(yùn)行一個(gè)特定應(yīng)用程序,該應(yīng)用方法包括如下步驟起動讀非易失性存儲器的所述第二部分以從中取出寫狀態(tài)信息,且如果寫狀態(tài)信息表明為一個(gè)不完整的寫操作,則繞過該應(yīng)用程序。
于是,當(dāng)在靈巧插上學(xué)(例如)發(fā)生顯著的寫錯(cuò)誤時(shí),相應(yīng)的措施可以是通過不運(yùn)行該應(yīng)用程序而使插卡無效,這稱為插卡的軟件無效法,還可能采用硬件無效法,即向插卡的熔絲鏈路提供一過載電流而熔斷熔絲而使插卡無效。然而,使插卡無效是很浪費(fèi)的,比較好的方法是當(dāng)檢測出不完整寫操作時(shí),實(shí)行數(shù)據(jù)恢復(fù)步驟以使裝置復(fù)原到如存儲器的第二區(qū)域所反映的最后數(shù)據(jù)寫入是正確的狀況。如果數(shù)據(jù)恢復(fù)步驟失敗,則再實(shí)行如前所述的軟件或硬件至效步驟。
作為一個(gè)實(shí)現(xiàn)本發(fā)明非局限性的例子,下面提出三種具體的方法。方法1根據(jù)本方法,給非易失性存儲器配置如下的各獨(dú)立的區(qū)域(a)一個(gè)序列寄存器,即上述的存儲器的第二區(qū)域;(b)一個(gè)數(shù)據(jù)復(fù)制緩沖器;(c)一個(gè)長度寄存器;及(d)一個(gè)地址寄存器。
并且把RAM或非易失存儲器的一個(gè)區(qū)域分配為數(shù)據(jù)增量緩沖區(qū),所述非易失存儲器的第一區(qū)域是用來寫入存儲器區(qū)域(c)和(d)的數(shù)據(jù)的長度和地址標(biāo)識的,所述寫的方法包括1.保證緩沖區(qū)(e)包含一個(gè)有效數(shù)據(jù)增量;
2.把待修改的數(shù)據(jù)的副本放入緩沖器(b);3.增量寄存器(a);4.以緩沖區(qū)(e)的數(shù)量增量在存儲器第一區(qū)的數(shù)據(jù),并把該增量寫入到存儲器的第一區(qū);及5.增量序列寄存器(a)。
用此方法,當(dāng)寄存器(a)表明恢復(fù)是必要時(shí),其恢復(fù)的步驟包括由緩沖器(b)將原來的(未修改的)的數(shù)據(jù)復(fù)制到存儲器的第一區(qū)域。這將狀態(tài)復(fù)原到錯(cuò)誤操作發(fā)生前的狀態(tài)。方法2本方法將非易失性存儲器的各個(gè)區(qū)域作如下分配。
(f)一個(gè)寫當(dāng)前標(biāo)志寄存器,它是存儲器的所述第二區(qū)域;(g)一個(gè)工作空間指示字寄存器;(h)一個(gè)長度寄存器;及(i)一個(gè)數(shù)據(jù)指示字寄存器。
還有將RAM或非易失存儲器的一個(gè)區(qū)域分配為(j)一個(gè)新數(shù)據(jù)指示字寄存器,所述非易失性存儲器的第一區(qū)域是以寫入到存儲器(g)和(h)的數(shù)據(jù)的長度和位置來進(jìn)行識別,所述寫的方法包括(1)將寄存器(g)的工作空間指示字設(shè)定到足以容納相應(yīng)于寄存器(h)中的長度組的一組鄰接的數(shù)據(jù)組的非易失存儲器工作空間的地址;(2)給工作空間復(fù)制由在(j)的新數(shù)據(jù)指示字所指地址和由在(h)的長度數(shù)據(jù)的長度標(biāo)識的新數(shù)據(jù)副本;(3)在(f)設(shè)定寫進(jìn)行標(biāo)態(tài);(4)工作空間地址設(shè)定數(shù)據(jù)指示字寄存器地址;(5)清除寄存器(f)的寫進(jìn)行標(biāo)志。
這里,恢復(fù)步驟包括重復(fù)最后兩個(gè)步驟(4與5),因?yàn)橐粋€(gè)錯(cuò)誤表示了數(shù)據(jù)指示字寄存器已被適當(dāng)?shù)貙懭肓恕?br>
方法3該方法以下列方式分配非易失性寄存器的各個(gè)區(qū)域(k)一狀態(tài)標(biāo)志寄存器,即所述存儲器的第二區(qū)域;(l)一長度寄存器;(m)一個(gè)地址寄存器;及(n)一個(gè)更新復(fù)制緩沖器。
所述的非易失存儲器的第一區(qū)域是以寫在寄存器(l)和(m)的長度和位置來標(biāo)識的,所述寫的方法包括1.把要寫入的數(shù)據(jù)復(fù)制到緩沖器(n)中;2.在寄存器中設(shè)定狀態(tài)數(shù)據(jù);3.把要寫入的新數(shù)據(jù)寫入到所述非易失性存儲器的第一區(qū)域;4.清除寄存器(k)的狀態(tài)標(biāo)態(tài)。
這里,新數(shù)據(jù)通常是直接由RAM寫入的,并給更新復(fù)制緩沖器取得副本。如果要求恢復(fù),則因?yàn)樗窃?n)保存的新數(shù)據(jù),所以恢復(fù)步驟給在EEPROM(例如)中的所要求的地址復(fù)制此新地址。
下面參考附圖對本發(fā)明作進(jìn)一步描述。
圖1是具有用以實(shí)現(xiàn)本發(fā)明的數(shù)據(jù)寫和恢復(fù)的第一方法的EEPROM的靈巧插卡的示意圖;圖2是用于圖1的插卡的方法的流程圖;圖3是類似于圖1但對應(yīng)于本發(fā)明的數(shù)據(jù)寫和恢復(fù)的第二方法的示意圖;圖4是一個(gè)對應(yīng)于第二方法的流程圖;圖5是類似于圖1和3但對應(yīng)于本發(fā)明的第三方法的數(shù)據(jù)寫與恢復(fù)的示意圖;及圖6是相應(yīng)于第三方法的流程圖。
參閱圖1,它示出了一個(gè)具有包括一組用來與終端4相觸連的觸點(diǎn)的接口2的靈巧插卡1。按照ISO 7816協(xié)議,由終端單元向插卡提供電源,時(shí)鐘信號,復(fù)位信號及串行數(shù)據(jù),插卡是一個(gè)包括一個(gè)微處理機(jī)5,RAM 6及EEPROM 7的ICC裝置。
EEPROM 7分成一頁面組8,并裝有操作系統(tǒng)程序US,應(yīng)用程序AP和有一個(gè)容納可能被讀寫的數(shù)據(jù)的數(shù)據(jù)寄存器DR。
所稱的方法1是本發(fā)明的第一實(shí)施例,它用于EEPROM中進(jìn)行數(shù)據(jù)的增量更新。按該方法,數(shù)據(jù)區(qū)DR的相應(yīng)各區(qū)如下分配(a)一個(gè)序列寄存器;(b)一個(gè)數(shù)據(jù)復(fù)制緩沖器;(c)一個(gè)長度寄存器;及(d)一個(gè)地址寄存器。
RAM的一個(gè)區(qū)域e分配為數(shù)據(jù)增量緩沖區(qū),雖然此區(qū)亦可放在EEPROM中。
現(xiàn)參閱圖2(a),它示出了一個(gè)用于按方法1,進(jìn)行數(shù)據(jù)寫的流程圖。其步驟包括1.確保緩沖器(e)包含有效數(shù)據(jù)增量(在框9);2.根據(jù)長度和地址寄存器(c),(d)識別要更新(原數(shù)據(jù))的EEPROM的數(shù)據(jù),給出原位置(在框10);3.給緩沖器(b)復(fù)制原數(shù)據(jù)(在框11);4.增量序列寄存器(a)(在框12);5.參考原數(shù)據(jù)和在數(shù)據(jù)增量緩沖器(e)中的數(shù)據(jù)計(jì)算RAM的的新數(shù)據(jù),并將新的數(shù)據(jù)寫回到EEPROM的原位置中(在框13);及6.增量寄存器(a)(在框14)。
EEPROM是這樣一種存儲器,如果在EEPROM內(nèi)容被修改的同時(shí),電源線,或時(shí)鐘信號受被中斷,則其所存儲的數(shù)據(jù)會被污損。采用上述的方案,利用數(shù)據(jù)復(fù)制緩沖器與序列寄存器可以提供數(shù)據(jù)的安全性。利用內(nèi)部寫確證步驟,可以確定如果操作系統(tǒng)指示完成寫步驟13,則寫信是正常的,而序列寄存器(a)可作適當(dāng)?shù)男薷?,如果寫操作被例如電源線或時(shí)鐘信號中斷而中斷時(shí),則順序寄存器保持其前先的對所嘗試寫是不合適的狀態(tài)。
根據(jù)本發(fā)明的一個(gè)方面,當(dāng)插卡在任何時(shí)候接收到復(fù)位信號時(shí),可提供一個(gè)校驗(yàn)恢復(fù)規(guī)程。圖2(b)示出了這些規(guī)程。當(dāng)在框15復(fù)位后,在框16檢驗(yàn)順序寄存器以確定是否指示一個(gè)寫失敗。若否,則在框17實(shí)施應(yīng)用程序Ap(圖1)。如果指示寫失敗,則將在數(shù)據(jù)復(fù)制緩沖器(b)中的在最后所嘗試寫的原數(shù)據(jù)復(fù)制到原數(shù)據(jù)地址(c),(d)。該步如框18所示。如此恢復(fù)了所嘗試的寫操作前的局面。
此方法適用于多級操作規(guī)程,而實(shí)踐中,用一個(gè)串行接口來回傳送數(shù)據(jù)。序列寄存器依次保持發(fā)生中斷的級的信息。如果原與終端的原來的互連相稱且操作順序可恢復(fù),則在框19作一個(gè)檢驗(yàn),以確定是否已成功地進(jìn)行了復(fù)制/再同步。如果是,則運(yùn)行應(yīng)用程序AP。如果不是,則必須由軟件根據(jù)序列寄存器的狀態(tài)確定如何再同步插卡應(yīng)用軟件及通過串行線與靈巧插卡通信的軟件。如果不能從數(shù)據(jù)復(fù)制緩沖器檢索到數(shù)據(jù),且序列寄存器指示無該數(shù)據(jù)可提供,則如在框20所示,該靈巧插卡不能使用。
這可使其連續(xù)失敗去執(zhí)行應(yīng)用程序來達(dá)到,或可采取積極步驟,例如燒毀內(nèi)裝熔絲,來報(bào)廢該插卡。
數(shù)據(jù)復(fù)制緩沖器(b)和數(shù)據(jù)增量緩沖器(e)必須都有足夠的容量來容納用此方法寫到EEPROM的最大可能的數(shù)據(jù)塊。也需要額外與字節(jié)(長度=2字節(jié),地址=2字節(jié),序列寄存器=1字節(jié)[至少])如果長度決不能比255大,則它可被以單字節(jié)儲。
因?yàn)椴蹇看螌懼辉谝粋€(gè)頁面8(圖1)操作,因此其安全性由于確保各個(gè)EEPROM頁(總共3頁)用于數(shù)據(jù)復(fù)制緩沖器,數(shù)據(jù)增量緩沖器及其余的附加數(shù)據(jù)而得到加強(qiáng)。
用該方法來寫EEPROM,其實(shí)際寫到EEPROM的字節(jié)數(shù)增加了一倍,即使沒有實(shí)行恢復(fù)也如此(因?yàn)樵瓉頂?shù)據(jù)的副本在EEPROM寫進(jìn)行以前必須存在數(shù)據(jù)復(fù)制緩沖器??偟拈_鎖實(shí)際要比此稍大,因長度地址,及序列寄存器信息也必須寫到EEPROM中。
現(xiàn)在來參閱圖3。該圖示出了用于采用本發(fā)明方法2的一個(gè)靈巧插卡(類似于圖1)的EEPROM構(gòu)型。EEPROM的多相應(yīng)區(qū)域(在相應(yīng)頁8上)分配如下(f)一個(gè)寫進(jìn)行標(biāo)志寄存器;(g)一個(gè)工作空間指示字寄存器;(h)一個(gè)長度寄存器;及(i)一個(gè)數(shù)據(jù)指針寄存器。
在RAM中,把一個(gè)區(qū)域(j)分配為新數(shù)據(jù)指針寄存器。也可以分配給EEPROM。
方法2中的寫規(guī)程的流程圖如圖4(a)所示。該流程包括如下步驟1.將寄存器(a)的工作空間指針設(shè)定到EEPROM中工作空間的地址上,EEPROM的長度要是以容納相應(yīng)于寄存器(h)的長度組的相鄰數(shù)據(jù)組(在框21);2.給該工作空間復(fù)制在RAM或EEPROM中由寄存器(h)以長度識別和由寄存器(i)以位置識別的一個(gè)新數(shù)據(jù)副本(在框22);3.設(shè)置寫進(jìn)行標(biāo)志(j)(在框23);4.在寄存器(i)中給工作空間地址設(shè)置地址(在框24);及5.在寄存器(f)中清除寫進(jìn)行標(biāo)志;圖4(b)示出了方法2的校驗(yàn)和恢復(fù)規(guī)程。在框25插卡復(fù)位后,在框26立即檢查寫進(jìn)行標(biāo)志。如已清除,則在框27運(yùn)行應(yīng)用程序。如果沒有,則重復(fù)寫規(guī)程的最后兩步(4與5)。于是,在框28將數(shù)據(jù)指示字(i)置到工作空間指針(g)并將 進(jìn)行標(biāo)志(f)清除掉。如果該寫規(guī)程成功(在框30檢驗(yàn)),則執(zhí)行程序AP。如果不成功,則是23插卡被廢棄(在框31)。
如果發(fā)現(xiàn)到EEPROM寫不能完成的一個(gè)EEPROM區(qū)域,則該方法便立即讓靈巧插卡應(yīng)用軟件給此區(qū)域打上永久廢棄不用的標(biāo)專,并選擇另一區(qū)域用作數(shù)據(jù)存貯。這樣可大大延長靈巧插卡的壽命(插卡壽命很可能被插卡能執(zhí)行的EEPROM寫的最大可能數(shù)限制),然而,其代價(jià)是要給存儲在EEPROM的每個(gè)數(shù)據(jù)結(jié)構(gòu)維持一個(gè)指示字(2字節(jié)開銷)。
在正常條件下,寫進(jìn)行標(biāo)態(tài)僅僅在需要修改EEPROM中的指示字時(shí)才設(shè)立。這是最小可能的理論修改時(shí)間,它有助于保證只稀罕地實(shí)行恢復(fù)機(jī)制。這樣可使對EEPROM作嘗試的數(shù)量減主最低,從而延長了插卡的壽命。
用該方法要求每個(gè)寫到EEPROM的數(shù)據(jù)結(jié)構(gòu)擴(kuò)增兩字節(jié),因?yàn)閷?shù)據(jù)的指示字必須連續(xù)保持。對每次EEPROM的讀多了一個(gè)小的開銷,因?yàn)槭褂迷摲椒ㄒ髮λ袛?shù)據(jù)必須經(jīng)過一個(gè)指示字才能取得。
由工作空間指示字所指向的EEPROM必須有足夠的容量去容納利用本方法要寫入到EEPROM的最大可能的數(shù)據(jù)結(jié)構(gòu)。此空間只要求EEPROM寫已成功地完成為止,在此點(diǎn)上,將一個(gè)寫效的EEPROM存貯長度(用于包容原數(shù)據(jù))予以釋放。還需要額外的7個(gè)存儲字節(jié)(寫進(jìn)行標(biāo)志=1字節(jié),新數(shù)據(jù)指示字=2字節(jié),工作空間指示字=2字節(jié),長度=2字節(jié))。如果長度比255大,則它應(yīng)以單字節(jié)存儲。
用此方法寫EEPROM,寫入EEPROM的數(shù)據(jù)結(jié)構(gòu)只一次,但是必須以下寫次序修改三個(gè)指示字新數(shù)據(jù)指示字,工作空間指示字及數(shù)據(jù)指示字。同時(shí),地址和序列寄存器信息也必須寫入到EEPROM。
現(xiàn)來參閱圖5。圖中示出了實(shí)施本發(fā)明的方法3所實(shí)行的EEPROM分配。應(yīng)該指出,圖5的EEPROM是被結(jié)合到類似于圖1的靈巧插卡中。在圖5中,各EEPROM區(qū)域如下分配(k)一個(gè)狀態(tài)標(biāo)志寄存器;(l)一個(gè)長度寄存器;(m)一個(gè)地址寄存器;及(n)一個(gè)更新復(fù)制緩沖器。
圖6示出了方法3的寫規(guī)程。其步驟包括1.復(fù)制新數(shù)據(jù)到緩沖器(n)(在框32);2.設(shè)立狀態(tài)標(biāo)志(k)(在框33);3.將新數(shù)據(jù)復(fù)制到由長度(L)和地址(m)標(biāo)識的EEPROM區(qū)域(在框34);及4.清除狀態(tài)標(biāo)志(k)(在框35)。
在圖6(b)中所示的校驗(yàn)和恢復(fù)規(guī)程在框36中復(fù)位,在框37復(fù)位一個(gè)對狀態(tài)標(biāo)志(k)的設(shè)定的檢驗(yàn)。如果標(biāo)志未設(shè)定,則在框38運(yùn)行應(yīng)用程序AP。否則,在框39將在緩沖器(n)中寄存的新數(shù)據(jù)耦到區(qū)域(L),(m),并在框40清除狀態(tài)標(biāo)志(k)。如果成功,運(yùn)行應(yīng)用程序。否則在框(41)認(rèn)為插卡是廢棄的。
附加數(shù)據(jù)區(qū)(緩沖器n)必須大到足以存儲寫到EEPROM中的數(shù)據(jù)外加5字節(jié)(長度=2字節(jié),地址=2字節(jié),狀態(tài)標(biāo)志=1字節(jié))的容量。如果長度不能大于255,則它以單字節(jié)存儲。
用該方法寫EEPROM,實(shí)際寫到EEPROM中的字節(jié)數(shù)是擴(kuò)大了一倍,即使不實(shí)行一個(gè)恢復(fù)規(guī)程(因?yàn)閿?shù)據(jù)的副本必須寫到EEPROM)??傞_銷則實(shí)際比此大一點(diǎn),因?yàn)殚L度,地址也須寫入到EEPROM。
為了能告知數(shù)據(jù)未被改變,必須實(shí)寫錯(cuò)誤檢測技術(shù)。錯(cuò)誤檢測通常包括每當(dāng)數(shù)據(jù)被修改時(shí)計(jì)算校驗(yàn)和,存儲該校驗(yàn)和,并證實(shí)在每次連續(xù)的數(shù)據(jù)該出期間定是正確的。用于實(shí)際計(jì)算此錯(cuò)誤檢測較驗(yàn)和的實(shí)際方法與本文目的無關(guān),事實(shí)上有些靈巧插卡已將錯(cuò)誤檢測程序制成EEPROM硬件,而其具體的操作方法也不得而知。
只有當(dāng)錯(cuò)誤檢測系統(tǒng)已經(jīng)過適當(dāng)修改并被證實(shí)為正確時(shí),EEPROM寫才被認(rèn)為已完成。
EEPROM在終止正常功能以前只能修改有限次數(shù),通常為10到10寫周期。因此,在EEPROM中的數(shù)據(jù)有一有限的機(jī)會被修改,而如果錯(cuò)誤檢測系統(tǒng)證實(shí)數(shù)據(jù)已被修改,則EEPROM讀 必須接受為有效。如果在EEPROM讀期間檢測到錯(cuò)誤,則可能意味著,在靈巧插卡中的一個(gè)或更多字節(jié)已達(dá)到其活動壽命的末了。
采用如上所述的寫EEPROM的方法保證錯(cuò)誤校正(與錯(cuò)誤檢測相反)不再需要,無論EEPROM操作是否成功進(jìn)行,或者是巧插卡是不能再使用的。沒有需要錯(cuò)誤糾正的情形。這就簡化了軟件和減少了數(shù)據(jù)存貯的要求。因?yàn)榧m錯(cuò)需要深入計(jì)算,因而需要比錯(cuò)誤檢測更多的專用的存貯的字節(jié)。
前面所述寫數(shù)據(jù)到EEPROM的方法之一要直接保持一個(gè)計(jì)數(shù)器(序列寄存器),該計(jì)數(shù)器存貯著在寫EEPROM期間所執(zhí)行的一系列操作的最后成功的操作的知識。但方法2和3則可不直接要求此種類型的計(jì)數(shù)器,因?yàn)樗鼈兏鶕?jù)標(biāo)志作答覆,而標(biāo)志中已包含顯示對EEPROM的寫是否成功的信息。
即使寫EEPROM的方法不總是要求一個(gè)數(shù)字計(jì)數(shù)器,但因注意到在許多系統(tǒng)中,仍然要求必須保留這樣一個(gè)計(jì)數(shù)器,以便任何類型的中斷的過程可重新開始當(dāng)然,此時(shí),至為重要的是將此計(jì)數(shù)器安全地寫到EEPROM中,因?yàn)槿绻遣徽_的話,我們不能信賴靈巧插卡的應(yīng)用程序來嘗試重新開始被中斷的過程。
權(quán)利要求
1.一種把數(shù)據(jù)寫入到在集成電路裝置中的非易失性存儲器的方法,該裝置具有一個(gè)用來臨時(shí)與終端相連的接口;一個(gè)微處理機(jī);一個(gè)隨機(jī)存儲器及非易失性存儲器,該方法包括給寫寫數(shù)據(jù)分配一個(gè)非易失性存儲器的第一區(qū)域,分配民用于寫狀態(tài)信息的非易失性存儲器的第二區(qū)域,實(shí)行一個(gè)數(shù)據(jù)寫操作,把數(shù)據(jù)寫到所述第一區(qū)域,而且,只在如果數(shù)據(jù)寫操作是滿意地執(zhí)行時(shí),寫信息到所述第二區(qū)域作為一個(gè)有效數(shù)據(jù)。
2.一種如權(quán)利要求1所述的把數(shù)據(jù)寫到非易失性存儲的方法,其中非易失性存儲器被分為頁,寫操作每次只在一頁上進(jìn)行,而所述存儲器的第一和第二區(qū)域是在不同的頁上。
3.一種如權(quán)利要求1或2所述的把數(shù)據(jù)寫到非易失存儲器的方法,其中非易失性存儲器是電可擦可編程只讀存儲器(EEPROM)。
4.一種利用其間數(shù)據(jù)已按權(quán)利要求1至3中任一權(quán)利要求所這的方法寫入的集成電路裝置的方法,該裝置的非易失性存儲器中有一個(gè)用來控制微處理機(jī)在正常環(huán)境下運(yùn)行一個(gè)特定的程序,該利用方法包括初次讀該非易失存儲器的所述第二部分以從中獲取寫狀態(tài)信息,并且如果寫狀態(tài)信息指示一個(gè)未不完整的寫操作,則繞過此應(yīng)用程序。
5.一種如權(quán)利要求4所述的利用集成電路的方法,還包括當(dāng)檢測到一個(gè)不完整的寫操作時(shí),實(shí)行數(shù)據(jù)恢復(fù)規(guī)程,使裝置恢復(fù)到最后數(shù)據(jù)是正確且在存儲器的第二區(qū)域反映該時(shí)狀態(tài)。
6.一種如權(quán)利要求5所述的利用集成電路的方法,還包括這一步驟監(jiān)視數(shù)據(jù)恢復(fù)規(guī)程,并當(dāng)數(shù)據(jù)恢復(fù)規(guī)程失敗時(shí)使應(yīng)用程序不可能運(yùn)行。
7.一種如權(quán)利要求6所述的應(yīng)用集成電路的方法,還包括步驟如果數(shù)據(jù)恢復(fù)步驟失敗,則永久廢棄應(yīng)用程序。
8.如權(quán)利要求5-7中任一權(quán)利要求之一所述的一種應(yīng)用集成電路的一種應(yīng)用集成電路的方法,其中所述存儲器的第二區(qū)是一個(gè)狀態(tài)寄存器,所述狀態(tài)信息代表了多步操作序列的最后滿意地進(jìn)行的那步操作,并且如狀態(tài)寄存器指示的由其失敗的那步開始實(shí)行所述數(shù)據(jù)恢復(fù)規(guī)程。
9.一種如權(quán)利要求8所述的應(yīng)用集成電路的方法,其中非易失存儲器的各個(gè)區(qū)域分配如下a)一個(gè)序列寄存器,即所述存儲器的第二區(qū)域;b)一個(gè)數(shù)據(jù)復(fù)制緩沖器;c)一個(gè)長度寄存器;及d)一個(gè)地址寄存器;并指定RAM或非易失性存儲器的一個(gè)區(qū)域作為(e)一個(gè)數(shù)據(jù)增量緩沖區(qū),所述非易失存儲器的第一區(qū)域以長度和以由寫入存儲器(c)和(d)的數(shù)據(jù)的地址識別,所述寫方法包括1.確保緩沖器(e)包含一有效數(shù)據(jù)增量;2.把要修改的數(shù)據(jù)副本置于緩沖器(b)中;3.增量寄存器(a);4.以在緩沖器(e)的量增益存儲器第一區(qū)域的數(shù)據(jù)并將此增量寫入到存儲器的第一區(qū)域;及5.增量序列寄存器(a)。
10.一種如權(quán)利要求9所述的應(yīng)用集成電路裝置的方法,恢復(fù)規(guī)程包括將數(shù)據(jù)緩沖器(b)的數(shù)據(jù)復(fù)制到存儲器的所述第一區(qū)域。
11.一種如權(quán)利要求5至7的任一權(quán)利要求中所述的應(yīng)用集成電路裝置的方法,其中所述存儲器是一個(gè)標(biāo)志區(qū),而所述狀態(tài)信息是一個(gè)當(dāng)寫操作被證實(shí)為滿意時(shí)設(shè)置而不滿意時(shí)不設(shè)置的標(biāo)態(tài)。
12.一種如權(quán)利要求所述的應(yīng)用集成電路的方法,其中所述非易失性存儲器的各區(qū)域如下指定(f)一個(gè)寫進(jìn)行標(biāo)志寄存器,它是所述存儲器的第二區(qū)域;(g)一個(gè)工作空間的指示字寄存器;(h)一個(gè)長度寄存器;及(i)一個(gè)數(shù)據(jù)指示寄存器;并將RAM或非易失寄存器指定為新數(shù)據(jù)指示字寄存器,非易失性存儲器的所述第一區(qū)域是以長度和寫入到存儲器區(qū)域(g)和(h)的數(shù)據(jù)的位置標(biāo)識的,所述寫方法包括1.將寄存器(g)的工作空間指示設(shè)到非易失性存儲器的地址上,而存儲器的工作空間足以容納相應(yīng)于設(shè)在寄存器(h)的長度的相鄰數(shù)據(jù);2.將以由新數(shù)據(jù)指示字在(j)所指的地址和以由在(h)的長度數(shù)據(jù)識別的新數(shù)據(jù)的副本復(fù)制到工作空間;3.在(h)設(shè)立寫進(jìn)行標(biāo)志;4.將在數(shù)據(jù)指示字寄存器(i)的地址設(shè)定到工作空間的地址;及5.在寄存器(f)中清除寫進(jìn)行標(biāo)專。
13.如權(quán)利要求12所述的應(yīng)用集成電路裝置的方法,其中恢復(fù)步驟包括步驟將在數(shù)據(jù)指示字寄存器(i)的地址設(shè)立到工作空間地址并清除在寄存器(f)中的寫進(jìn)行標(biāo)志。
14.如權(quán)利要求11所述的應(yīng)用集成電路裝置的方法,其中非易失性存儲器的指定如下各區(qū)域(k)一個(gè)狀態(tài)標(biāo)志寄存器,它是存儲器的第二區(qū)域;(l)一個(gè)地址寄存器;及(n)一個(gè)修改復(fù)制緩沖器,所述非易失性存儲器第一區(qū)域是長度和以寫在寄存器(l)和(m)的數(shù)據(jù)標(biāo)識的,所述寫方法包括1.把待寫入的數(shù)據(jù)復(fù)制到緩沖器(n)中;2.在寄存器(k)中設(shè)立狀態(tài)標(biāo)成;3.將使寫入的數(shù)據(jù)寫入到非易失性存儲器的所述第一區(qū)域;及4.清除在寄存器(k)中的狀態(tài)標(biāo)志。
15.如權(quán)利要求14所述的應(yīng)用集成電路裝置的方法,其中恢復(fù)規(guī)程包括步驟把修改復(fù)制緩沖器(n)的內(nèi)容復(fù)制到由寄存器(l)和(m)的內(nèi)容標(biāo)識的非易失性存儲器的所述第一區(qū)域,并清除在寄存器(k)中的狀態(tài)。
16.一種集成電路裝置具有用來臨時(shí)與一個(gè)終端單元,相連的接口;一個(gè)隨機(jī)存取存儲器及非易失性存儲器;非易失性存儲器包括一個(gè)用于控制微處理機(jī)用來實(shí)行任何數(shù)據(jù)寫入或?qū)嵭腥缜笆鋈我粰?quán)利要求所述的應(yīng)用方法。
全文摘要
一種把數(shù)據(jù)寫到諸如在一靈巧插卡的EEPROM的非易失性存儲器的方法,該方法提供一個(gè)EEPROM的寫狀態(tài)區(qū)域,該區(qū)域在插卡的每次復(fù)位時(shí)被測試。如果產(chǎn)面的寫操作是成功的,也許因插卡操作不慎而實(shí)施一介恢復(fù)規(guī)程。如果恢復(fù)是成功的,則插卡的操作可以運(yùn)行,否則插卡被廢棄。
文檔編號G06F7/10GK1110488SQ9419033
公開日1995年10月18日 申請日期1994年4月13日 優(yōu)先權(quán)日1993年4月13日
發(fā)明者D·B·艾弗列特, K·M·杰克遜, I·米勒 申請人:瓊希格有限公司