本申請要求2015年8月6日提交的法國申請第1557577號的優先權,據此將該申請通過引用包含于此。
技術領域
本發明的實施例涉及一種用于在EEPROM存儲器中進行寫入的方法和相應的存儲器。
背景技術:
目前人們致力于生產具有越來越高密度也就是說越來越可觀的存儲器容量例如若干兆比特的EEPROM存儲器。
但是這導致了數據傳送時間的增加。當讀取時,數據傳送時間由在總線上讀取的數據的傳送決定。當寫入時,數據傳送時間由待寫入數據在總線上傳送以及寫入操作的持續時間來決定。因此,需要減少這種數據傳送時間。
解決方案包括提高總線的頻率。然而,當使用I2C類型也就是說具有開漏的總線時最大頻率受到速度/消耗折衷的限制。實際上,目前1MHz的值是這種類型總線的最大值。
對于SPI類型的總線,頻率的最大值沒有任何真正的限制,但是目前20MHz的頻率是在需要5V電壓供電的集成電路的應用中使用的最大頻率。
通常,EEPROM存儲器的寫入操作或循環需要兩個步驟,即擦除步驟以及隨后的編程步驟。在擦除步驟中,擦除脈沖全局地擦除(設置為零)待寫入字節的所有存儲器單元。在編程步驟中,編程脈沖選擇性地對必須存儲邏輯1的存儲器單元進行編程(設置為1)。
這些脈沖中的每種脈沖都是毫秒的量級并且該持續時間是由能 夠提供高電壓(例如15V或16V)的制造方法的約束、存儲器的耐久性(例如4百萬個循環)和柵極氧化物的擊穿率之間的折衷得出的。
將編程電壓從16V提高到17V可以使得有可能獲得寫入操作的持續時間典型為10%的增益,但是代價是技術約束、耐久性可能減少十年以及柵極氧化物的擊穿率可能增加幾十倍。
此外,這種快速寫入模式必須由專用命令(“操作碼”)來激活并且必須激活有限次數(例如在工廠中)。
當可觀數量的數據必須被寫到N個頁面上時,一個解決方案可以是在一個單次循環中同時擦除這N個頁面并順序地對所有N個頁面進行逐個編程。然而,在此同樣地,這種編程模式需要專用命令并且用戶必須確保在接收這種命令之前有關頁面處于“已擦除”狀態,因為如若不然新的數據將通過邏輯OR函數與舊的數據結合。
技術實現要素:
本發明的實現模式和實施例涉及被稱為EEPROM存儲器的電可編程和可擦除只讀存儲器,并且更特別地涉及將數字字(digital word)寫入這種存儲器的存儲器位置的操作。
根據一種實現模式,提出了另一種解決方案,用于減少持續時間并且從而減少EEPROM存儲器寫入循環或操作的消耗,和/或用于提高存儲器的耐久性。
根據一種實現模式,提出了當可選地使用傳統的寫入命令時以及當避免對存儲器層的存儲器單元的意外的或者有意的任何過編程時,通過基于待寫入數據的值和/或基于存儲器中存在的數據的值來刪除擦除步驟和/或編程步驟,從而自動地加速寫操作和/或提高存儲器的耐久性。
此處或下文中將編程步驟的刪除(或者編程電路的禁用)理解為不生成編程脈沖(換言之,沒有編程步驟),這一點由寫入循環的加速以及存儲器的耐久性的改進所顯現,或者其他情況可理解為生成編程脈沖但是不選擇所關注的存儲器單元,這一點由在保留了擦除步驟 的情況下改進存儲器的耐久性但是不加速寫入循環所顯現。
由此,根據一個方面,提出了一種用于將至少一個數字字寫入到電可編程和可擦除只讀存儲器(EEPROM)設備的存儲器層的至少一個存儲器位置的方法。該方法包括在存儲器設備內實現的特定寫入模式,并且包括根據存儲器位置的在前內容和/或包括待寫入數字字的存儲器位置的新內容而對寫入操作或循環中的擦除步驟和/或編程步驟的可能刪除。
實際上在某些情況下,寫入操作可以僅包括擦除步驟或者僅包括編程步驟或者其他情況既不包括擦除步驟也不包括編程步驟,由此使得有可能加速寫入循環并因此減少其消耗和/或改進存儲器的耐久性。
由此,如果例如待寫入的字僅包含“0”,則只有擦除步驟是必須的。
如果此外想要僅寫入“0”的存儲器位置的在前內容已經是僅包含“0”,則也可以跳過擦除步驟。
類似地,當例如必須用字1F來替換字0F(在十六進制記法中)時,或者其他情況如果想要寫入數字字的存儲器位置的在前內容已經僅包含“0”時,則擦除步驟是不相關的。
更一般地,根據一種實現模式,這種特定寫入模式包括:如果存儲器位置的新內容按位大于或等于該存儲器位置的在前內容,則刪除擦除步驟,其中在前內容被假設為是無錯的。
在前內容可以被假設為是無錯的(也就是說,該在前內容的比特沒有哪個被考慮為是不可靠的),例如已經考慮到存儲器的使用條件或者其他情況下因為該在前內容已經被糾錯碼機制(如果存儲器配備了該機制的話)驗證以及可選地糾正過。
如果存儲器位置的新內容按位等于該存儲器位置的在前內容,則特定寫入模式還包括編程步驟的刪除。
此外,如果存儲器位置的新內容按位大于或等于在前內容并且如果新內容的至少一個比特大于假設為無錯的在前內容的相應比特,則特定模式包括僅對大于在前內容的相應比特的新內容的每個比特進 行編程。
由此避免了對相應存儲器單元的任何意外或有意的過編程的風險。
實現諸如這種的選擇性編程的一種特別簡單的方式是命令對適用于比特的新值以及該比特的舊值的邏輯反(opposite)的邏輯與函數的結果等于1的每個比特進行編程。
該特定寫入模式以對存儲器設備而言內部的方式實現。換言之,是存儲器設備本身來檢測待寫入數據的值和/或存儲器中存在的數據的值,并且是其本身基于待寫入數據的值和/或存儲器中已存在的數據的值來決定對于所考慮的寫入循環刪除擦除步驟或編程步驟中的至少一個或者其他情況下保留擦除步驟/編程步驟的傳統系列。
該決定可以由簡單的組合邏輯容易地實現。
換言之,并非存儲器設備外部的元件,例如遞送寫入命令的微控制器,例如在考慮該外部元件對待寫入數據的值和/或存儲器中存在的數據的值的分析的情況下決定命令這些可能的步驟刪除。
由此,當該特定寫入模式在存儲器中實現和激活時,存儲器的用戶并不對做決定進行控制以加速一個或多個寫入循環,由此使得有可能特別地如下文表明的那樣避免對存儲器層的存儲器單元的任何意外或有意的過編程。
所有這些特別是對于大容量的EEPROM存儲器而言是特別有利的。這種存儲器通常使用糾錯碼機制(ECC:糾錯碼)。上文述及的特定寫入模式可以適用于被配備有糾錯碼機制(不管該碼為何)的存儲器。
因為如此,當糾錯碼基于漢明碼時,后者的性質使得有可能容易地實現對寫入循環的可能加速和/或對存儲器設備內的耐久性的改進。
這一性質在于,根據該性質,當將n個字節組在一起的數字字的字節的所有比特都等于零時,與這些字節相關聯的校驗位(有時也稱為“奇偶校驗位”或者“糾錯位”)也全都等于零。
本領域普通技術人員知曉漢明碼的特征和性質。但是在此想到, 對于所有有用的目的,漢明碼是所謂的“完美”(也就是說對于給定碼長度,不存在任何其他更緊湊的碼具有相同的糾錯能力)線性糾錯碼,并且其最小距離(漢明距離)等于三。
由此,根據另一個方面,提出了一種用于將至少一個數字字寫入到包括漢明碼類型的糾錯碼機制的電可編程和可擦除只讀存儲器設備的存儲器層的至少一個存儲器位置的方法,其中數字字包括至少一個數據字節并且存儲器位置將包含多個數據字節,該數據字節的數量至少等于該數字字與校驗位一起的數據字節的數量。
傳統地,存儲器設備的存儲器層包括連接到行選擇線以及連接到位線的存儲器單元。
位線被分組為包括例如M個位線的列。
連接到同一選擇線的存儲器單元形成字線,并且存儲器位置或存儲器字包括例如連接到一列的M個位線的同一字線的存儲器單元。這種存儲器位置使得有可能例如存儲32個數據比特(4字節)和6個校驗位的數字字。
根據這一方面的一個變型的方法包括在存儲器設備內實現的第一寫入模式,其包括響應于寫入數字字的命令:讀取存儲器位置的當前內容;計算與存儲器位置的新內容的數據相關聯的新校驗位;以及如果讀取的當前內容的所有比特被設置為0則在沒有在先的擦除步驟的情況下通過編程步驟,或者如果當前內容的至少一個比特被設置為1則通過傳統的擦除步驟和編程步驟的系列,來寫入包括數字字和新校驗位的存儲器位置的新內容。
由此,當前內容的比特的簡單讀取使得可以檢測存儲器位置的當前內容(也即,在寫入之前該存儲器位置中已存在的數據)是否僅包含等于0的比特。
而且,如果存儲器位置的當前內容僅包括等于0的比特,則寫入數字字的命令將觸發在沒有在先的擦除步驟的情況下僅使用編程步驟來寫入包括數字字的新內容,由此使得可以減少寫入操作或循環的持續時間。
如果已經使用了糾錯碼(不同于漢明碼),對其而言都等于0的數據比特導致校驗位不都等于0,那么這一點將不容易是可能的,或者實際上就是不可能的。實際上在這種情況下,將有必要使存儲器位置的新內容的新校驗位在與在前內容的校驗位相同的位置具有“1”,因為編程只能將“0”變為“1”。
在此應注意,當存儲器位置能夠存儲多于一個字節時,讀取存儲器位置的當前內容的這一步驟已經實現并且因此不需要增加到根據這一方面的方法中。
根據這一方面的另一變型的方法包括在存儲器設備內實現的第二寫入模式,其包括響應于寫入數字字的命令:計算與存儲器位置的新內容的數據相關聯的新校驗位;以及如果新內容的所有數據比特被設置為0則在沒有在后的編程步驟的情況下通過擦除步驟,或者如果新內容的至少一個比特被設置為1則通過傳統的擦除步驟和編程步驟的系列,來寫入包括數字字和新校驗位的存儲器位置的新內容。
盡管有可能,但是尤其是為了簡化存儲器狀態機的目的,卻沒有必要測試新的校驗位是否設置為0,因為考慮到漢明碼的特定性質,如果新內容的所有數據比特都設置為0,則計算出來的新校驗位將被設置為0。
由此,根據該另一變型,如果存儲器位置的未來內容的所有比特設置為0,則編程步驟是不相關的,并且因此這里同樣可以減少寫入循環的持續時間和/或改進耐久性。
在此應注意,在沒有編程步驟情況下的寫入操作的觸發不是基于存儲器位置的當前內容也即在寫入之前該存儲器位置中存在的在先數據而決定的,因為擦除步驟是對于該存儲器位置的所有比特的全局步驟。
當數字字僅包含單個字節并且與4個校驗位相關聯時,在該另一變型中對存儲器位置的當前內容的讀取不是必需的。
另一方面,當數字字包括若干數據字節時,第二寫入模式還包括在計算新校驗位之前讀取存儲器位置的當前內容。
當然,第一寫入模式和第二寫入模式都可以同時在存儲器設備內實現。
根據這一方面的又一變型的方法包括在存儲器設備內實現的第三寫入模式,其包括響應于寫入數字字的命令:讀取存儲器位置的當前內容;以及如果讀取的當前內容的所有比特被設置為0并且如果包括數字字的新內容的所有數據比特被設置為0,則不進行擦除步驟和編程步驟。
換言之,根據這一可選的又一變型,如果存儲器位置的當前內容和新內容僅包含0,則寫入循環既不包括擦除步驟也不包括編程步驟。
第一寫入模式、第二寫入模式和第三寫入模式也可以三個都在存儲器設備內實現。
當存儲器將要被按頁面寫入時,根據另一方面提出了一種用于將若干數字字寫入到包括漢明碼類型的糾錯碼機制的電可編程和可擦除只讀存儲器設備的存儲器層的若干存儲器位置中的方法,若干存儲器位置形成存儲器層的至少一個頁面,每個數字字包括至少一個數據字節并且每個存儲器位置將包含多個數據字節,該數據字節的數量至少等于數字字與校驗位一起的數據字節的數量。
根據該另一方面的變型,方法包括在存儲器設備中實現的第一頁面寫入模式,其包括響應于向頁面寫入數字字的命令:讀取每個存儲器位置的當前內容;計算與每個存儲器位置的新內容的數據相關聯的新校驗位;以及如果每個讀取的當前內容的所有比特被設置為0則在沒有在先的擦除步驟的情況下通過編程步驟,或者如果至少一個讀取的當前內容的至少一個比特被設置為1則通過傳統的擦除步驟和編程步驟的系列,來寫入包括相應數字字和新相應校驗位的每個存儲器位置的新內容。
根據該另一方面的也可適用于以頁面模式寫入的另一變型,該方法包括在存儲器設備內實現的第二頁面寫入模式,其包括響應于向頁面寫入數字字的命令:計算與每個存儲器位置的新內容的數據相關聯的新校驗位;以及如果每個新內容的所有數據比特被設置為0則在沒 有在后的編程步驟的情況下通過擦除步驟,或者如果至少一個新內容的至少一個比特被設置為1則通過傳統的擦除步驟和編程步驟的系列,來寫入包括相應數字字和新相應校驗位的每個存儲器位置的新內容。
在此同樣地,當每個數字字包括若干數據字節時,第二頁面寫入模式還包括,在每次計算新校驗位之前,讀取每個存儲器位置的當前內容。
第一頁面寫入模式和第二頁面寫入模式可以同時實現,并且在這種情況下,如果至少兩個數字字的相應寫入需要不同類型的步驟(例如,一個數字字僅需要擦除步驟而另一個字僅需要編程步驟)或者如果至少一個數字字的寫入需要擦除步驟和編程步驟的系列,則頁面的數字字的寫入需要傳統的擦除步驟和編程步驟的系列。
根據該另一方面的另一變型,該方法包括在存儲器設備內實現的第三頁面寫入模式,其包括響應于向頁面寫入數字字的命令:讀取每個存儲器位置的當前內容;以及如果每個讀取的當前內容的所有比特被設置為0并且如果包括相應數字字的每個新內容的所有數據比特被設置為0,則不進行擦除步驟和編程步驟。
第一頁面寫入模式、第二頁面寫入模式和第三頁面寫入模式可以互相組合,并且如果至少一個數字字的寫入僅需要擦除步驟并且如果無其他數字字的寫入需要編程步驟,則頁面的數字字的寫入僅需要擦除步驟;如果至少一個數字字的寫入僅需要編程步驟并且如果無其他數字字的寫入需要擦除步驟,則頁面的數字字的寫入僅需要編程步驟;以及在所有其他情況下,頁面的數字字的寫入需要傳統的擦除步驟和編程步驟的系列。
正如上文述及的特定寫入模式那樣,三種寫入模式中的每一種和剛才針對配備有漢明碼類型糾錯碼的存儲器所提及的三種頁面寫入模式中的每一種都以對于存儲器設備而言內部的方式實現,并且特別地獲得與針對特定寫入模式所提及的那些好處一樣的好處。
觸發第一寫入模式和/或第二寫入模式和/或第三寫入模式和/或第 一頁面寫入模式和/或第二頁面寫入模式和/或第三頁面寫入模式的寫入命令可以是傳統的寫入命令或者其他情況下是專門的命令。
第一寫入模式和/或第二寫入模式和/或第三寫入模式和/或第一頁面寫入模式和/或第二頁面寫入模式和/或第三頁面寫入模式可以在存儲器設備內默認實現或其他情況下可激活地實現。
執行這一激活存在若干非限制可能性。
例如可以使用可由用戶編程的易失性或非易失性比特,例如存儲器的狀態寄存器中存在的狀態字的比特。
還可以使用新的專門的寫入命令。
根據另一方面,提出了一種電可編程和可擦除只讀存儲器類型的存儲器設備,包括:包含存儲器位置的存儲器層、被配置為擦除存儲器位置的內容的擦除電路、被配置為對存儲器位置中的至少一個數字字進行編程的編程電路以及被配置為響應于寫入數字字的命令而根據存儲器位置的在前內容和/或包括待寫入數字字的存儲器位置的新內容來可選地禁用擦除電路和/或編程電路的驅動器。
根據一個實施例,驅動器被配置為如果新內容按位大于或等于在前內容則禁用擦除電路,其中在前內容被假設為是無錯的。
根據一個實施例,如果存儲器位置的新內容按位等于該存儲器位置的在前內容,則驅動器還被配置為禁用編程電路。
根據一個實施例,如果存儲器位置的新內容按位大于或等于在前內容并且如果新內容的至少一個比特大于假設為無錯的在前內容的相應比特,則驅動器被配置為激活編程電路以便僅執行對大于在前內容的相應比特的新內容的每個比特的編程。
根據一個實施例,驅動器被配置為命令對適用于該比特的新值以及該比特的舊值的邏輯反的邏輯與函數的結果等于1的每個比特進行編程。
根據尤其可適用于配備有糾錯碼的EEPROM存儲器的另一方面,提出了一種電可編程和可擦除只讀存儲器類型的存儲器設備。該存儲器設備包括:包含存儲器位置的存儲器層;漢明碼類型的糾錯碼機制; 被配置為擦除存儲器位置的內容的擦除電路;讀取電路;以及被配置為對存儲器位置中的包括至少一個字節的至少一個數字字進行編程的編程電路,存儲器位置將包含多個數據字節,該數據字節的數量至少等于數字字與校驗位一起的數據字節的數量。
根據該另一方面的一個變型,該設備還包括第一控制器,該第一控制器被配置為響應于寫入數字字的命令:激活讀取電路以讀取存儲器位置的當前內容;激活糾錯碼機制以計算與存儲器位置的新內容的數據相關聯的新校驗位;以及如果讀取的當前內容的所有比特被設置為0則僅激活編程電路,或者如果讀取的當前內容的至少一個比特被設置為1則相繼激活擦除電路和編程電路,以便寫入包括數字字和新校驗位的存儲器位置的新內容。
根據該另一方面的另一變型,該存儲器設備包括第二控制器,該第二控制器被配置為響應于寫入數字字的命令:激活糾錯碼機制以計算與存儲器位置的新內容的數據相關聯的新校驗位;以及如果新內容的所有數據比特被設置為0則僅激活擦除電路,或者如果新內容的至少一個比特被設置為1則相繼激活擦除電路和編程電路,以便寫入包括數字字和新校驗位的存儲器位置的新內容。
根據一個實施例,當數字字包括若干數據字節時,第二控制器還被配置為在糾錯碼機制的激活之前激活讀取電路以讀取存儲器位置的當前內容。
該設備可以包括單獨的第一控制器和第二控制器,或者同時執行這兩種功能的單一控制器,或者用于同一目的的多于兩個的控制器,其通常被稱為控制電路。
根據該另一方面的又一變型,存儲器設備包括第三控制器,該第三控制器被配置為響應于寫入數字字的命令:激活讀取電路以讀取存儲器位置的當前內容;以及如果讀取的當前內容的所有比特被設置為0并且如果包括數字字的新內容的所有數據比特被設置為0,則既不激活擦除電路也不激活編程電路。
該設備可以包括單獨的第一控制電路、第二控制電路和第三控制 電路或者執行專門功能的更少或更多的控制器,其通常被稱為控制電路。
根據可適用于將要被按位寫入的存儲器的又一方面,提出了一種電可編程和可擦除只讀存儲器類型的存儲器設備。該存儲器設備包括:包含至少一個頁面的存儲器層,該頁面包含若干存儲器位置;漢明碼類型的糾錯碼機制;被配置為擦除頁面的內容的擦除電路;讀取電路;以及被配置為對頁面的存儲器位置中的若干數字字進行編程的編程電路。每個數字字包括至少一個字節,相應存儲器位置將包含多個數據字節,該數據字節的數量至少等于數字字與校驗位一起的數據字節的數量。該存儲器設備還包括第四控制器,該第四控制器被配置為響應于寫入數字字的命令:激活讀取電路以讀取每個存儲器位置的當前內容;激活糾錯碼機制以計算與每個存儲器位置的新內容的數據相關聯的新校驗位;以及如果每個讀取的當前內容的所有比特被設置為0則僅激活編程電路,或者如果至少一個讀取的當前內容的至少一個比特被設置為1則相繼激活陣列電路和編程電路,以便寫入包括相應數字字和新相應校驗位的每個存儲器位置的新內容。
根據該另一方面的一個變型,該設備包括第五控制器,該第五控制器被配置為響應于寫入數字字的命令:激活糾錯碼機制以計算與每個存儲器位置的新內容的數據相關聯的新校驗位;以及如果每個新內容的所有數據比特被設置為0則僅激活陣列電路,或者如果每個新內容的至少一個比特被設置為1則相繼激活陣列電路和編程電路,以便寫入包括相應數字字和新相應校驗位的每個存儲器位置的新內容。
根據一個實施例,每個數字字包括若干數據字節,并且第五控制器還被配置為在糾錯碼機制的激活之前激活讀取電路以讀取每個存儲器位置的當前內容。
根據一個實施例,該設備包括結合了第四控制器和第五控制器的控制電路,該控制電路被配置為如果至少兩個數字字的相應寫入需要不同類型的步驟則控制通過傳統的擦除步驟和編程步驟的系列向頁面寫入數字字。
根據該另一方面的又一變型,該設備包括第六控制器,該第六控制器被配置為響應于寫入數字字的命令:激活讀取電路以讀取每個存儲器位置的當前內容;以及如果每個讀取的當前內容的所有比特被設置為0并且如果包括相應數字字的每個新內容的所有數據比特被設置為0,則既不激活擦除電路也不激活編程電路。
控制電路可以結合第四控制電路、第五控制電路和第六控制電路,并且可以被配置為如果至少一個數字字的寫入僅需要擦除步驟并且如果無其他數字字的寫入需要編程步驟則控制僅通過擦除步驟向頁面寫入數字字;如果至少一個數字字的寫入僅需要編程步驟并且如果無其他數字字的寫入需要擦除步驟則控制僅通過編程步驟向頁面寫入數字字;以及在所有其他情況下,控制通過傳統的擦除步驟和編程步驟的系列來向頁面寫入數字字。
根據一個實施例,驅動器和/或第一控制電路和/或第二控制電路和/或第三控制電路和/或第四控制電路和/或第五控制電路和/或第六控制電路是可激活的。
附圖說明
在研究對完全非限制性的實現模式和實施例的詳細描述以及附圖的基礎上,本發明的其他好處和特征將變得明顯,附圖中:
圖1至圖11基本上示意性地涉及本發明的各種實現模式和實施例。
具體實施方式
在圖1中,參考標記DIS標出了根據本發明的EEPROM類型的示例性存儲器設備。
這一設備DIS包括存儲器單元CEL的存儲器層PM以及傳統的編程電路MPR和擦除電路MEFF、行解碼器DECX和列編碼器DECY以及包括鏈接到數據寄存器RDD的讀出放大器AMPL的讀取電路,該傳統的編程電路MPR和擦除電路MEFF尤其包括使得可以施加高 編程或擦除電壓的高電壓電路HV。
在這一示例性實施例中設備DIS還包括形成漢明碼類型糾錯碼機制的ECC電路MECC,就其本質而言是公知的傳統結構。
設備DIS還包括控制電路,該控制電路例如包括能夠激活編程電路MPR、陣列電路MEFF、讀取電路AMPL以及糾錯碼機制MECC的傳統結構的邏輯電路。
存儲器設備DIS在此還包括狀態寄存器SRG。然而該寄存器是可選的,通常對于連接到SPI總線的存儲器而言是存在的,而特別地對于連接到I2C總線的存儲器是不存在的。
存儲器設備DIS中存在且對理解本發明而言并非不可或缺的其他傳統電路,諸如例如地址移位寄存器等,為了簡單起見特意在圖1中沒有表示出來。
在此想到,EEPROM類型的存儲器單元CEL包括以傳統方式擁有控制柵極、浮置柵極、漏極區域和源極區域。
這種單元是通過Fowler-Nordheim效應可擦除和可編程的。
傳統地,在這種EEPROM類型的單元中寫入數據項的操作或循環包括擦除步驟和之后的編程步驟。
在擦除步驟中,陣列電路MEFF被配置為將晶體管的漏極和源極耦合至地并向控制柵極施加具有典型為15V量級的擦除值的控制電壓。
在單元編程步驟中,編程電路MPR被配置為將控制柵極鏈接到地,并施加編程電壓給漏極,典型的也是15V的量級。至于源極,編程電路MPR被配置為使源極浮置或者將源極預充電到非零預充電電壓。
更精確地說,陣列電路被配置為在控制柵極上施加擦除脈沖IMPI形式的控制電壓,而編程電路被配置為在漏極上施加編程脈沖IMP2形式的編程電壓(圖2)。
每個電壓/時間擦除或編程脈沖表現為梯形形狀,具有斜坡以及之后的高臺PLT,典型地在15V的標稱電平。
電壓斜坡驅動單元的隧道電流。斜坡和高臺具有幾乎相等的持續時間。
如上所述,陣列電路MEFF和編程電路MPR包括用于生成允許生成相應擦除脈沖和編程脈沖的高壓的高壓電路HV。
高壓電路HV傳統地包括例如一個或多個電荷泵級,其與包括例如振蕩器的電荷泵的調節相關聯。
調節使得可以驅動電荷泵的輸出電壓。當電荷泵的輸出超過高參考時振蕩器暫停。隨后電荷泵的輸出電壓由于充電而開始降低。一旦電荷泵的輸出電壓小于低參考,振蕩器就重啟。低參考和高參考之間的電壓間隙(遲滯)確保了穩定性。這種電壓差例如是100毫伏特的量級。
電荷泵調節電平例如是高臺PLT的電壓電平,例如15V。電荷斜坡例如由接收高臺電壓作為輸入的模擬積分器生成。
脈沖的持續時間(斜坡+高臺)可以由模擬或數字計時表(定時器)來控制。
借助指示,數字計時器可以包括連接到計數器的固定頻率振蕩器。當電荷泵開始時計數器啟動,并且計數的結束標記脈沖的結束。
如上所述,在擦除步驟中,擦除脈沖全局地擦除(設置為零)待寫入的字節的所有存儲器單元。
在編程步驟中,編程脈沖選擇性地對必須存儲邏輯1的存儲器單元進行編程(設置為1)。
雖然寫入操作通常包括擦除步驟和后面的編程步驟,但在某些情況下單個擦除或編程步驟可能是在存儲器中寫入字所必需的。
由此,如果待寫入的字僅包含“0”,則只有擦除步驟是必需的。
另外,如果想要僅寫入“0”的存儲器單元已經僅包含“0”,則擦除步驟也可以被刪除。
同樣,借助非限制例子,當字0F(在十六進制記法中)必需由字1F替換時,擦除步驟是不相關的。
由此,根據一個方面,提出了一種用于將至少一個數字字寫入到 電可編程和可擦除只讀存儲器(EEPROM)設備的存儲器層的至少一個存儲器位置的方法。該方法包括在存儲器設備內實現的特定寫入模式,該特定寫入模式包括:根據存儲器位置的在前內容和/或包括待寫入的數字字的存儲器位置的新內容,對寫入操作或循環的擦除步驟和/或編程步驟進行可能的刪除。
并且這種特定寫入模式以對于存儲器設備而言內部的方式實現,也就是說,是存儲器設備本身來檢測待寫入數據的值和/或存儲器中已存在的數據的值,并且是其本身基于待寫入數據的值和/或存儲器中已存在的數據的值來決定對于所考慮的寫入循環刪除擦除或編程步驟中的至少一個或者其他情況下保持傳統的擦除步驟/編程步驟的系列。
該決定可以由形成控制電路MCM內的驅動器的簡單組合邏輯容易地實現。
更精確地說,根據圖3所示的一種實現模式,驅動器在步驟300中測試存儲器位置的新內容是否按位大于或等于該存儲器位置的在前內容,在前內容被假設是無錯的。
在否定情況下,驅動器命令通過相繼激活(步驟310和320)陣列電路和編程電路來寫入新內容。
在肯定情況下,這一特定寫入模式包括如果存儲器位置的新內容按位大于或等于該存儲器位置的在前內容則刪除擦除步驟,其中在前內容被假設為是無錯的。
驅動器還在步驟301中測試存儲器位置的新內容是否按位等于該存儲器位置的在前內容。
如果是這樣,則這一特定寫入模式還包括刪除編程步驟。換言之,既沒有擦除也沒有編程(步驟302),可以理解到,禁用編程步驟被理解為不生成編程脈沖或者其他情況生成這種編程脈沖但是不選擇存儲器單元(不選擇位線)。
此外,如果存儲器位置的新內容按位大于或等于在前內容并且如果新內容的至少一個比特大于假設無錯的在前內容的相應比特,則該特定模式僅包括對大于在前內容的相應比特的新內容的每個比特進 行編程。
由此可以避免對相應存儲器單元的意外或有意的過編程的任何風險(步驟303)。
圖4的左半部示出了實現測試步驟300的特別簡單的方法。
更精確地,對在前內容CNT的每個比特的值和新內容NVC的每個相應比特的邏輯反值(用反相器INV1界定)應用邏輯與函數(步驟3000)。
接下來,對由與函數的反相器INV2反相的輸出應用邏輯與函數(步驟3001)。
隨后執行關于與函數的輸出是否設為1的測試(步驟3002)。
在肯定情況下,存儲器位置的新內容按位大于或等于在前內容。
在否定情況下時不是這樣。
諸如這種的實現選擇性編程的特別簡單的方式是如圖4的右半邊所示的那樣對于每個比特測試應用到該比特的新值和該比特的舊值的邏輯反(用反相器INV3來界定)的邏輯與函數3030的結果是否等于1(步驟3031)。
在肯定情況下,該比特將必須被編程,因為1將替換0(新的比特將大于在前的比特)。
在否定情況下,該比特將不必被編程。
如現在將更詳細描述的那樣,本發明在配備有漢明碼類型糾錯碼機制MECC的EEPROM存儲器、特別是大容量存儲器的方面是特別有利的。
非易失性存儲器尤其是EEPROM容易由于缺陷存儲器位置或存儲器單元而發生數據崩潰,本領域普通技術人員稱之為“單比特失效”。
這些缺陷可能是最初就在“原生”存儲器上存在的,或者其他情況最初不存在但是在該項的生命周期期間隨著時間推移產生的。
這些缺陷可能是例如由于制造方法中的缺點、氧化物的擊穿、絕緣存儲器單元上的自留損失的發生所造成的。
當讀取包含在這些缺陷存儲器位置中的比特時這些位置導致錯誤邏輯值。
傳統的解決方案包括使用糾錯碼或ECC(“誤碼糾正”)來糾正比特的錯誤邏輯值。更精確地,利用糾錯碼,如果校驗位(或者奇偶校驗位)被附于b個數據比特上,則可以在b+s個比特中糾正r個錯誤。
通常,在存儲器領域中使用的糾錯碼使得可以糾正b+s個比特的字中的一個錯誤(r=1)。在兩個缺陷位置對應于不位于同一組(b+s)個比特中的兩個比特的情況下,可以糾正存儲器中的兩個錯誤。
更精確地,如傳統且已知的那樣,ECC電路MECC使得可以當讀取存儲器中的字時基于數據比特b和校驗位的集合s來確定校驗子(syndrome)。
在此想到,校驗子是在糾錯過程中執行的、使得可以檢測和定位錯誤的中間計算的結果。
相反,ECC電路MECC還能夠基于數據比特的集合來計算校驗位的集合。
傳統地,存儲器的存儲器層包括連接到行選擇線和位線的存儲器單元CEL。
位線被分組為包括例如M個位線的列。
M例如可以等于38,由此對應于伴有s(s=6)個糾錯碼位或奇偶校驗位的b個有用比特(b=32,對應于n=4字節)的字。
連接到同一選擇線的存儲器單元形成字線并且連接到一列的M個位線的同一字線的存儲器單元形成存儲器位置或存儲器字,使得可以例如存儲6個校驗位和32個比特的數字字。
EEPROM存儲器可以用頁面來組織(一個頁面包括同一字線的所有存儲器字)。
在一次寫入循環中可以寫入的數據的數量可以從一個字到一整個頁面。
在配備有糾錯碼機制的EEPROM存儲器架構中,每次想要寫入 例如p個新字節到包含n字節(n大于一,p大于或等于一且小于或等于n)和s個校驗位的存儲器位置,讀取該存儲器位置的當前內容,也即在此為該存儲器位置的38個比特。
糾錯可選地由糾錯碼機制MECC執行。
因此知道4個當前(最初)字節的比特的值。
此外,基于p個新字節和其他n-p個最初字節,重新計算新的校驗位。
在此使用漢明碼類型糾錯碼的性質,根據該性質當將n個字節組在一起的存儲器位置的字節的比特都等于0時,該存儲器位置中包含的校驗位都等于0。
由此在此處描述的例子中,當包含在38個比特的存儲器位置中的4個字節的32個比特都等于0時,校驗位并且因此存儲器位置的38個比特都等于0。
圖5至圖8適用于逐個存儲器位置地寫入存儲器,并非按頁面寫入。
如圖5所示,可以定義第一寫入模式,其中響應于將數字字寫入存儲器位置的命令(步驟30),讀取電路執行對包括6個校驗位的相應存儲器位置的當前內容(38個比特)的讀取31。
隨后控制電路MCM例如在組合邏輯和/或比較器的輔助下測試是否所有讀取的比特都設置為0(步驟32)。
如果至少一個讀取的比特設置為1,則控制器第一次激活ECC電路MECC(步驟35)以便糾正(如果必要)存儲器位置的最初內容,第二次激活ECC電路MECC以便計算新校驗位(步驟36)并隨后相繼激活擦除電路MEFF和編程電路MPR使得通過傳統的擦除步驟37和編程步驟38的系列進行對包括數字字的存儲器位置的新內容的寫入。
如果對測試32的響應是肯定的,則控制器可以再次執行步驟35以便第一次激活ECC電路MECC,第二次激活ECC電路MECC以計算新校驗位(步驟39)并隨后僅激活編程電路MPR以通過在沒有在 先的擦除步驟(因為當存儲器位置的所有比特已經設置為0時它是不相關的)的情況下利用編程步驟40進行對包括數字字的存儲器位置的新內容的寫入。
應注意,在圖5的左分支之中執行的步驟35是可選的,因為所有讀取的設置為0的比特在漢明碼中對應于比特中沒有錯誤。
因為如此,執行這一步驟35使得可以簡化結合到控制電路中的狀態機的架構。
還將可以在步驟31和32之間執行步驟35。
如圖6所示,還可以定義第二寫入模式,其中響應于將數字字寫入到存儲器位置的命令(步驟40a),讀取電路執行對包括6個校驗位的存儲器位置的當前內容(存儲器位置的38個比特)的讀取41。
接下來,糾錯碼機制MECC糾正(如果必要)存儲器位置的最初內容。
控制電路MCM隨后例如在比較器的輔助下測試是否存儲器位置的新內容的所有數據比特都設置為0(步驟43)。
考慮到漢明碼的特定性質,如果新內容的所有數據比特都設置為0,則新計算的校驗位將被設置為0。
如果新內容的至少一個數據比特設置為1,則控制電路MCM激活糾錯碼機制MECC以執行對與存儲器位置的新設想的內容相關聯的新校驗位的計算44,并隨后相繼激活擦除電路MEFF和編程電路MPR,以便通過傳統的擦除步驟45和編程步驟46的系列進行對包括數字字的存儲器位置的新內容的寫入。
如果對測試43的響應是肯定的,則控制電路MCM可以再次執行計算與存儲器位置的新設想內容相關聯的新校驗位的步驟44。
在此同樣地,盡管對于簡化狀態機而言是優選的,但是由于在這種情況下新校驗位被設置為0,所以這一再次執行是可選的。
作為一個變型,步驟44可以在步驟42與43之間執行。
此后控制器僅激活擦除電路MEFF以便在沒有后續的編程步驟(因為當所有待寫入的比特都設置為0時它是不相關的)的情況下通 過擦除步驟47進行對包括數字字的這一新內容的寫入。
盡管這兩種寫入模式中只有一種可以在存儲器設備中可用,但這兩種模式可以在一起可用。
在這種情況下,如圖7所示,響應于將數字字寫入到存儲器位置(步驟50),實現類似于圖5中的步驟31和32的步驟。
如果對步驟32的詢問的響應是“是”,則實現類似于圖5中步驟35、39和40的步驟以寫入數字字。
如果對步驟32的詢問的響應是“否”,則實現類似于圖6中步驟42和43的步驟。
如果對步驟43的詢問的響應是“是”,則實現類似于圖6的步驟44和47的步驟以寫入數字字。
如果對步驟43的詢問的響應是“否”,則實現類似于圖6的步驟44、45和46的步驟以寫入數字字。
利用第一寫入模式和第二寫入模式,因此可以在某些情況下減少寫入循環的持續時間并因此將這種循環的消耗以可能兩倍的因子減少和/或改進產品的耐久性。
如圖8中左半邊所示,還可以定義第三寫入模式,其中響應于將數字字寫入到存儲器位置的命令(步驟60),實現類似于圖5中步驟31和32的步驟。
如果對步驟32的詢問的響應是“是”,則實現類似于圖5的步驟35和圖6的步驟43的步驟。
如果對步驟43的詢問的響應是“是”,則控制電路MCM在可選地實現類似于圖6的步驟44的步驟之后,禁用擦除和編程步驟,并且數字字被認為已經寫入。
實際上在第三種模式中,期望將“0”寫入到已經包含“0”的存儲器位置。
在這種情況下,如果編程步驟已經實際被禁用,從而規避了編程脈沖的生成,則寫入循環的持續時間和消耗為零或者準零。
如果在另一方面對步驟43的詢問的響應是“否”,則實現類似 于圖6的步驟44的步驟并隨后實現類似于圖6的步驟46的步驟以寫入數字字。
如圖8右半邊所示這一第三寫入模式也可以與第一寫入模式和第二寫入模式相結合。
更精確地,如果對步驟32的詢問的響應是“否”,則實現類似于圖5的步驟35和圖6的步驟43的步驟。
如果對步驟43的詢問的響應為“是”,則實現類似于圖6的步驟44和47的步驟以寫入數字字。
如果對步驟43的詢問的響應為“否”,則實現類似于圖6的步驟44、45和46的步驟以寫入數字字。
當然,功能上將分別實現第一寫入模式、第二寫入模式和第三寫入模式的第一控制器、第二控制器和第三控制器可以在控制電路MCM內以硬件方式組合在一起。
當存儲器將要被按頁面寫入時,擦除脈沖使得可以全局地擦除頁面的全部內容。
類似地,編程脈沖使得頁面的全部存儲器單元可以被選擇性地且同時地編程。
在通常的方式中,在生成擦除和/或編程脈沖之前或者在可能不生成用于寫入頁面的這種脈沖的情況下,控制電路將針對頁面的每個存儲器位置,檢測對于寫入包括新數字字和新校驗位的所考慮存儲器位置的新內容而言可能必需的一個或多個操作,并隨后針對頁面的寫入應用最差的情況。
由此,如與圖5相對照的圖9所示,提出了由結合到控制電路MCM中的第四控制器在存儲器設備內實現的第一頁面寫入模式,其提供測試90以確定對頁面的每個存儲器位置的寫入是否僅需要編程步驟。
在肯定情況下,僅通過編程步驟執行對頁面的寫入91。
在相反情況下,傳統地通過擦除和隨后的編程執行對頁面的寫入92。
如與圖6相對照的圖10所示,提出了由結合到控制電路MCM中的第五控制器在存儲器設備內實現的第二頁面寫入模式,其提供測試100以確定對頁面的每個存儲器位置的寫入是否僅需要擦除步驟。
在肯定情況下,僅通過擦除步驟101執行對頁面的寫入。
在相反情況下,傳統地通過擦除并隨后編程來執行對頁面的寫入102。
圖11的包括步驟110和111的部分是與圖8的左半邊相對照的,并且示出了結合到控制電路MCM的第六控制器在存儲器設備內實現的第三頁面寫入模式,其提供測試110以確定對頁面的每個存儲器位置的寫入是否既不需要擦除步驟也不需要編程步驟。
在肯定情況下,在沒有擦除或編程的情況下執行對頁面的寫入111。
如圖11的剩余部分所示,第一頁面寫入模式、第二頁面寫入模式和第三頁面寫入模式可以相結合。
在這種情況下,如果至少一個數字字的寫入僅需要擦除步驟并且如果沒有其他數字字的寫入需要編程步驟(測試112),則對頁面的數字字的寫入僅需要擦除步驟113;如果至少一個數字字的寫入僅需要編程步驟并且如果無其他數字字的寫入需要擦除步驟(測試115),則僅需要編程步驟116;以及在所有其他情況下,需要傳統的擦除步驟和編程步驟的系列(步驟114)。
觸發第一寫入模式和/或第二寫入模式和/或第三寫入模式和/或第一頁面寫入模式和/或第二頁面寫入模式和/或第三頁面寫入模式的寫入命令可以是傳統的寫入命令或者其他情況是專門的命令。
第一寫入模式和/或第二寫入模式和/或第三寫入模式和/或第一頁面寫入模式和/或第二頁面寫入模式和/或第三頁面寫入模式可以在存儲器設備內默認實現或其他情況下可激活地實現。
執行這一激活存在若干非限制可能性。
例如可以使用可由用戶編程的易失性或非易失性比特,例如存儲器的狀態寄存器SRG中存在并可通過SPI類型總線存取的狀態字的 比特。
還可以使用新的專門的寫入命令。
本發明在對整個存儲器層的最初寫入期間、例如當該存儲器層必須被整體寫入0時是特別有用的。
因為如此,在用戶的角度上當用戶希望存儲器層被考慮為最初寫入1時,本發明也可以適用。實際上在這種情況下,足以在讀取和編程步驟期間提供數據反置,使得用戶角度上的數據項如互補數據項那樣在存儲器設備中內部地被管理。
并且被用戶看作初始具有1(FF)的存儲器層將實際上內部地被處理為必須寫入0。
在沒有在先的擦除步驟而只執行編程步驟的情況下,已經擦除的比特不能在擦除狀態中被刷新。
然而,這種情況不是問題,因為這意味著所有比特被適當地內部讀取為0。并且如果比特有錯誤并且內部地顯示為1,則存儲器設備將隨后執行完整的寫入循環(擦除和編程),這將隨后在所考慮比特的擦除狀態中將其刷新。
并且如果用戶不管如何都期望強制刷新擦除狀態,則可以始終通過將1(或者如果內部地提供了數據反置時,0)輸入待寫入的數據并隨后再次寫入同一數字字來這樣做,這將隨后引起如上所述的完整的寫入循環(擦除和編程)。
通過構成對EEPROM存儲器單元的過編程可能會引起功能和可靠性問題(例如泄漏、耐久性)。
在傳統的EEPROM存儲器中,擦除操作是全局的,而編程操作是選擇性的并且總是跟在擦除操作之后。因此存儲器單元僅能被過擦除、但是永遠不會被過編程。
本發明也避免對存儲器單元的過編程,因為已編程的存儲器單元(包含1)的存在將在下一寫入循環期間如上所述地禁止僅利用編程步驟執行的寫入。
并且這是特別有益的,因為存儲器設備自動地內部管理在寫入循 環期間實現的一個或多個步驟的事實避免了用戶造成的任何意外的過編程。
利用本發明也不可能使存儲器字包含單個錯誤以及不能用正確內容來刷新。實際上在沒有在先擦除步驟的情況下實現編程步驟意味著存儲器字的所有比特被設置為0,并且對于漢明碼,所有比特被設置為0的事實意味著沒有單個比特有錯誤。