两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

軟件刷新的存儲器設(shè)備和方法

文檔序號:6418551閱讀:294來源:國知局
專利名稱:軟件刷新的存儲器設(shè)備和方法
技術(shù)領(lǐng)域
本發(fā)明總體上涉及計算機存儲器設(shè)備,更具體而言涉及必須被周期地刷新以免丟失數(shù)據(jù)的存儲器設(shè)備。
背景技術(shù)
某些存儲器設(shè)備可以長時期地維護(hù)存儲在所述存儲器中的信息,即使當(dāng)關(guān)閉所述存儲器設(shè)備的電源時也是如此。這些存儲器設(shè)備被稱為非易失性存儲器設(shè)備。非易失性存儲器設(shè)備的一些例子包括磁隨機訪問存儲器(MRAM)、可擦可編程只讀存儲器(EPROM)及其變形。
其它存儲器設(shè)備需要電源來維護(hù)存儲在所述存儲器中的信息。必須周期地刷新這些被稱為易失性存儲器設(shè)備的存儲器設(shè)備以免丟失數(shù)據(jù)。易失性存儲器設(shè)備的一個通用的例子是動態(tài)隨機訪問存儲器(DRAM),其中存儲在電容器中的電壓表示信息的數(shù)字位。因為存儲在電容器中的電壓會隨著時間的流逝而耗散,所以必須周期地再充電DRAM的電容器,來維護(hù)存儲在所述DRAM中的信息。
常規(guī)的易失性存儲器設(shè)備包括配置在陣列中的多個獨立存儲單元,所述陣列一般包括交叉的行和列的配置。為了維護(hù)存儲在常規(guī)易失性存儲器設(shè)備中的信息,一般每秒刷新在所述陣列中的每個存儲單元至少若干次。例如,在某些常規(guī)的DRAM中,必須大約每隔64毫秒刷新每個存儲單元一次以免丟失存儲在所述DRAM中的信息。因此,常規(guī)的易失性存儲器設(shè)備一般包括刷新電路,確保以必要的頻率刷新每個存儲單元以防止丟失數(shù)據(jù),其通常為每秒至少若干次。

發(fā)明內(nèi)容
在一個實施例中,刷新存儲器設(shè)備中的一個單元的方法包括確定所述單元是處于寫入狀態(tài)還是處于擦除狀態(tài);以及如果所述單元處于所述寫入狀態(tài),那么通過向所述單元發(fā)布刷新寫入指令來刷新所述單元。
在另一實施例中,保存存儲在具有多個單元的易失性存儲器設(shè)備中的數(shù)據(jù)的方法包括對于所述多個單元中的每個,確定是否需要刷新所述單元;以及如果需要刷新所述單元,那么刷新所述單元。
在另一實施例中,保存存儲在具有多個單元的易失性存儲器設(shè)備中的數(shù)據(jù)的方法包括刷新所述多個單元;以及等待持續(xù)至少大約一秒的預(yù)先確定的時段,其中在所述預(yù)先確定的時段期間不刷新所述多個單元中的任何單元。
在另一實施例中,保存存儲在具有多個存儲單元的易失性存儲器設(shè)備中的數(shù)據(jù)的方法包括尋址第一存儲單元,從尋址所述第一存儲單元開始等待第一時段,以及確定是否需要刷新所述第一存儲單元。如果需要刷新所述第一存儲單元,那么所述方法還包括確定系統(tǒng)資源是否可以用來刷新所述第一存儲單元,以及如果需要刷新所述第一存儲單元并且如果所述系統(tǒng)資源不可用,那么監(jiān)視從尋址所述第一存儲單元開始的第二時段內(nèi)所述系統(tǒng)資源是否變?yōu)榭梢杂脕硭⑿滤龅谝淮鎯卧?。如果需要刷新所述第一存儲單元并且如果在所述第二時段內(nèi)所述系統(tǒng)資源沒有變?yōu)榭捎茫敲此龇椒ㄟ€包括強迫釋放所述資源,以使所述資源變?yōu)榭梢杂脕硭⑿滤龅谝淮鎯卧?,并且如果需要刷新所述第一存儲單元,那么使用所述可用的系統(tǒng)資源來刷新所述第一存儲單元。所述方法還包括尋址第二存儲單元。
在另一實施例中,在易失性存儲器設(shè)備中防止數(shù)據(jù)丟失的方法包括建立必須刷新所述易失性存儲器設(shè)備的最后期限,以及監(jiān)視資源是否可以用來刷新所述易失性存儲器設(shè)備。如果在所述最后期限之前的第一預(yù)先確定時段內(nèi),所述資源沒有變?yōu)榭梢杂脕硭⑿滤鲆资源鎯ζ髟O(shè)備,那么所述方法還包括強迫釋放所述資源,以使所述資源變?yōu)榭梢杂脕硭⑿滤鲆资源鎯ζ髟O(shè)備。所述方法還包括在所述最后期限之前使用所述可用資源來刷新所述易失性存儲器設(shè)備。
在另一實施例中,計算機系統(tǒng)包括處理器、與所述處理器耦合的存儲器設(shè)備,其中所述存儲器設(shè)備包括必須被周期地刷新的多個單元,所述計算機系統(tǒng)還包括軟件模塊,當(dāng)其由所述處理器執(zhí)行時,所述軟件模塊刷新所述多個單元。
在另一實施例中,一種存儲器設(shè)備包括必須被周期刷新的多個單元,其中把所述多個單元配置為響應(yīng)于從處理器所接收的寫入指令或擦除指令而被刷新,并且其中沒有把所述存儲器設(shè)備配置為產(chǎn)生或接收不同于所述寫入指令或所述擦除指令的刷新控制信號。
在另一實施例中,一種存儲器設(shè)備包括必須被周期地刷新的多個單元,其中把所述多個單元配置為響應(yīng)于從處理器所接收的寫入指令或擦除指令而被刷新,并且其中沒有把所述存儲器設(shè)備配置為產(chǎn)生或接收不同于所述寫入指令或所述擦除指令的刷新控制信號。所述多個單元中的每個包括可編程的金屬化單元,所述可編程的金屬化單元包括具有上表面的單元體,其中所述單元體包括金屬硫化物的離子玻璃(chalcogenide-metal ion glass)和置于所述上表面的兩個電極,其中所述電極彼此分開一段距離。
在另一實施例中,存儲器設(shè)備包括必須被周期地刷新的多個單元,其中把所述多個單元配置為響應(yīng)于從處理器所接收的寫入指令或擦除指令而被刷新。


圖1舉例說明了包括易失性存儲器設(shè)備的計算機系統(tǒng)。
圖2舉例說明了依照本發(fā)明一個實施例、具有軟件刷新的存儲器設(shè)備的計算機系統(tǒng)。
圖3舉例說明了依照本發(fā)明一個實施例刷新一個存儲單元的方法。
圖4舉例說明了依照本發(fā)明一個實施例刷新多個存儲單元的方法。
圖5舉例說明了依照本發(fā)明一個實施例刷新多個存儲單元的方法。
具體實施例方式
圖1舉例說明了包括常規(guī)的易失性存儲器設(shè)備110的計算機系統(tǒng)100。所述計算機系統(tǒng)100還包括經(jīng)由總線130與所述存儲器設(shè)備110耦合的處理器120。所述存儲器設(shè)備110包括地址/數(shù)據(jù)/控制模塊140和存儲器刷新電路150,二者都經(jīng)由總線130與所述處理器120耦合。所述存儲器設(shè)備110還包括經(jīng)由線200與所述地址/數(shù)據(jù)/控制模塊140耦合并且經(jīng)由線210與所述存儲器刷新電路150耦合的存儲器陣列160。本領(lǐng)域內(nèi)普通技術(shù)人員將理解在所述存儲器設(shè)備110中可以把線200和210實現(xiàn)為單條物理總線的一部分。所述存儲器陣列160包括多個存儲單元170;所述存儲單元170通過多個交叉的行180和列190來互連。
為了在存儲器設(shè)備110中執(zhí)行操作,所述處理器120經(jīng)由總線130向所述存儲器設(shè)備110發(fā)送確定的信號。例如,為了讀取存儲在特定存儲器地址的數(shù)據(jù),所述處理器120向總線130連同所述存儲器地址一起發(fā)布讀取命令。所述地址/數(shù)據(jù)/控制模塊140通過經(jīng)由線200訪問存儲器陣列160來接收所述讀取命令并處理所述讀取命令。特別地,地址/數(shù)據(jù)/控制模塊140通過激活適當(dāng)?shù)男?80和列190來在線200上產(chǎn)生讀取控制信號并且尋址所期望的存儲單元170。然后地址/數(shù)據(jù)/控制模塊140經(jīng)由線200接收存儲在所尋址的存儲單元170的數(shù)據(jù),并且經(jīng)由總線130向處理器120傳送所述數(shù)據(jù)。
另外,為了把數(shù)據(jù)寫入特定的存儲器地址,處理器120向總線130連同所述存儲器地址和要存儲的數(shù)據(jù)一起發(fā)布寫入命令。如上所述,地址/數(shù)據(jù)/控制模塊140通過在線200上產(chǎn)生寫入控制信號并且尋址所期望的存儲單元170來接收并處理所述寫入命令。然后地址/數(shù)據(jù)/控制模塊140經(jīng)由線200把要存儲的數(shù)據(jù)傳送到所尋址的存儲單元170。
因為存儲在所述存儲單元170中的數(shù)據(jù)隨著時間的流逝而耗散,所以必須周期地刷新所述存儲單元170以免丟失存儲在所述存儲器設(shè)備110中的數(shù)據(jù)。存儲器刷新電路150的主要功能是執(zhí)行這些周期的存儲器刷新操作。當(dāng)所述存儲器刷新電路150確定有必要執(zhí)行存儲器刷新操作時,使存儲器設(shè)備110不能被處理器120用來執(zhí)行其它操作,諸如讀取操作或?qū)懭氩僮鳌?br> 為了執(zhí)行存儲器刷新操作,所述存儲器刷新電路150一般順序地尋址存儲器陣列160的行180。當(dāng)尋址所述陣列160的給定行180時,所述存儲器刷新電路在線210上產(chǎn)生刷新控制信號,其使在所尋址的行180中的所有存儲單元170同時被刷新。通過同時刷新大量的存儲單元170,所述存儲器刷新電路150有益地降低了執(zhí)行存儲器刷新操作所需要的時間量,借此降低了存儲器設(shè)備110不能被處理器120用來執(zhí)行其它操作的時間量。
因為在存儲器刷新操作期間不能使用所述存儲器設(shè)備110來執(zhí)行其它操作,所以希望定時存儲器刷新操作,以使這些操作發(fā)生在不會與來自處理器120的請求沖突的時刻。因此,常常把所述存儲器刷新電路150配置為識別處理器120不可能對所述存儲器設(shè)備110發(fā)布請求的時段,并且在這些被識別的時段期間執(zhí)行存儲器刷新操作。另一方面,因為需要電源來執(zhí)行存儲器刷新操作,所以希望最小化所執(zhí)行的存儲器刷新操作數(shù)目。從而,還常常把所述存儲器刷新電路150配置為在保持在所述存儲器設(shè)備110中存儲的數(shù)據(jù)的同時盡可能少地執(zhí)行存儲器刷新操作。
然而,為了防止丟失存儲在常規(guī)的易失性存儲器設(shè)備110中的數(shù)據(jù),所述存儲器刷新電路150必須頻繁地執(zhí)行存儲器刷新操作,常常是每秒多次。例如在一些實施例中,必須每隔64毫秒刷新每個存儲單元170至少大約一次以免丟失數(shù)據(jù)。在這些實施例中,為了防止丟失存儲在所述存儲器設(shè)備110中的信息,存儲器刷新電路150必須確保每個存儲單元170每秒被刷新的次數(shù)至少多于大約15次。
圖2舉例說明了依照本發(fā)明一個實施例、具有軟件刷新存儲器設(shè)備260的計算機系統(tǒng)250。所述計算機系統(tǒng)250還包括經(jīng)由總線280與存儲器設(shè)備260耦合的處理器270。所述計算機系統(tǒng)250還包括一組存儲器刷新指令290,其采用可以由所述處理器270執(zhí)行的軟件實現(xiàn)。存儲器設(shè)備260包括經(jīng)由總線280與處理器270耦合的地址/數(shù)據(jù)/控制模塊300。所述存儲器設(shè)備260還包括經(jīng)由線350與地址/數(shù)據(jù)/控制模塊300耦合的存儲器陣列310。所述存儲器陣列310包括多個存儲單元320,其通過多個交叉的行330和列340互連。
結(jié)合圖1,使用上述相同的方法在圖2中舉例說明的計算機系統(tǒng)250可以執(zhí)行存儲器讀取和寫入操作。然而除這些方法之外,所述計算機系統(tǒng)250可以采用為本領(lǐng)域內(nèi)普通技術(shù)人員所公知的各種其它方法來執(zhí)行存儲器讀取和寫入操作。
在一些實施例中,所述軟件刷新存儲器設(shè)備260的存儲單元320包括易失性存儲單元,其優(yōu)選比常規(guī)的DRAM存儲單元更穩(wěn)定。例如在一個實施例中,即便在連續(xù)的存儲器刷新操作之間的時間間隔大約是0.1秒,所述存儲單元320也可以避免丟失數(shù)據(jù)。在另一實施例中,在連續(xù)的存儲器刷新操作之間的時間間隔可以大約是一秒。在又一實施例中,在連續(xù)的存儲器刷新操作之間的時間間隔可以大約是一小時。在又一實施例中,在連續(xù)的存儲器刷新操作之間的時間間隔可以大約是一天到一星期。
在一些實施例中,所述軟件刷新存儲器設(shè)備260的存儲單元320包括可編程導(dǎo)體隨機訪問存儲器(PCRAM)單元,其在下列專利文獻(xiàn)中得到描述,Kozicki等人的美國專利號5,761,115、5,896,312、5,914,893、6,084,796(“Kozicki專利”),Moore等人的美國專利號6,348,365(“Moore專利”),以及下面的共同待決的美國專利申請于2002年4月10日提交的美國專利申請序號10/121,792、題目為“Method of Manufacture of Programmable ConductorMemory”,于2002年4月10日提交的序號10/121,790、題目為“Programmable Conductor Memory Cell Structure and MethodTherefor”,于2002年4月10日提交的序號10/121,794、題目為“Thin Film Diode Integrated with Chalcogenide Memory Cell”。在此將Kozicki專利、Moore專利及這些共同待決的專利申請一并引入以供參考。如在這些參考中所更詳細(xì)地描述那樣,PCRAM單元包括一對電極并且可以處于兩種可能的狀態(tài)之一。在第一狀態(tài)中,在所述PCRAM單元的電極之間存在電短路。在第二狀態(tài)中,在所述PCRAM單元的電極之間存在開路。
PCRAM單元的某些實施例包括諸如金屬硫化物的離子玻璃之類的玻璃離子導(dǎo)體,以及放置在所述玻璃離子導(dǎo)體表面上并且彼此分開一段距離的兩個電極。在一個實施例中,PCRAM單元包括鍺硒化物,其具有在其中溶解的IV族金屬(例如銀),所述鍺硒化物為諸如Ag/Ge3Se7。優(yōu)選地是,所述電極之一包括IV族金屬,并且所述PCRAM單元的玻璃元件包含相同的金屬。
操作中,當(dāng)把具有第一極性的電壓加到PCRAM單元的電極上時,在所述電極之間沿著通孔的側(cè)壁創(chuàng)建導(dǎo)電通路,在所述通孔中形成玻璃元件。當(dāng)把具有反向極性的電壓應(yīng)用到所述電極上時,金屬離子重新溶解到所述單元體中,借此使所述導(dǎo)電通路消失??梢酝ㄟ^測量在所述電極之間的電阻來檢測在PCRAM單元內(nèi)導(dǎo)電通路的存在或不存在。當(dāng)存在導(dǎo)電通路時,在所述電極之間存在電短路,并且在所述電極之間的電阻比較低(例如,數(shù)量級為毫歐)。另一方面,當(dāng)不存在導(dǎo)電通路時,在所述電極之間存在開路,并且在所述電極之間的電阻比較高(例如,數(shù)量級為兆歐)。
在以下論述的操作過程中參考圖2的特征。
一般地,存儲器設(shè)備260的存儲單元320能夠處于兩種狀態(tài)之一,即“寫入”狀態(tài)或“擦除”狀態(tài)。例如,如果存儲單元320包括一個能保持電荷的電容器,在所述電容器中存在電荷往往對應(yīng)于所述寫入狀態(tài),而在所述電容器中不存在電荷往往對應(yīng)于所述擦除狀態(tài)。類似地,如果PCRAM單元充當(dāng)存儲單元320,那么在所述電極之間存在導(dǎo)電通路往往對應(yīng)于寫入狀態(tài),而在所述電極之間不存在導(dǎo)電通路往往對應(yīng)于擦除狀態(tài)。本領(lǐng)域內(nèi)普通技術(shù)人員將理解,大體上,在存儲單元320內(nèi)存在感興趣的元件將對應(yīng)于寫入狀態(tài),而不存在感興趣的元件將對應(yīng)于擦除狀態(tài)。
結(jié)合圖1如上所述,當(dāng)常規(guī)的易失性存儲器設(shè)備110的存儲單元170處于特定狀態(tài)時,所述存儲單元170在給定狀態(tài)中保持相對較短的時段,例如大約64毫秒。因為這種常規(guī)的存儲單元170只能在這樣一個短時段內(nèi)保持它們的賦值狀態(tài),所以必須常常刷新每個存儲單元170,例如每秒至少要多于15次。
相反,當(dāng)在圖2中舉例說明的軟件刷新存儲器設(shè)備260的存儲單元320處于特定狀態(tài)時,所述存儲單元320有益地在給定狀態(tài)中保持相對較長的時段。例如,在一些實施例中,每個存儲單元320可以維持給定狀態(tài)數(shù)秒、數(shù)分鐘、數(shù)小時、數(shù)天、數(shù)星期或更長。因此,可以保持存儲在存儲器設(shè)備260中的數(shù)據(jù),而較不頻繁地執(zhí)行存儲器刷新操作,例如大約每隔幾星期一次,而不是每秒若干次。
因為存儲器刷新操作可以較不頻繁地發(fā)生,所以所述計算機系統(tǒng)250可以通過執(zhí)行采用軟件而不是采用硬件實現(xiàn)的一組存儲器刷新指令290來有益地執(zhí)行這些存儲器刷新操作。例如,在一些實施例中,所述存儲器刷新指令290構(gòu)成所述計算機系統(tǒng)250的操作系統(tǒng)的一部分。
通過采用軟件而不是采用硬件來實現(xiàn)所述存儲器刷新指令290,可以有益地簡化所述存儲器設(shè)備260。例如,有益地消除了對存儲器刷新電路150以及在線210上唯一的刷新控制信號的需要,如在圖1中舉例說明。采用軟件而不是采用硬件來實現(xiàn)所述存儲器刷新指令290的另一個優(yōu)點是所述處理器270(圖2)與存儲器刷新電路150(圖1)相比可以執(zhí)行更高級的算法,以便確定何時執(zhí)行存儲器刷新操作。
圖3依照本發(fā)明一個實施例舉例說明了刷新存儲單元320(圖2)的方法。在第一步驟400,所述過程開始。在下一步驟402,所述處理器270讀取存儲單元320的狀態(tài)。給存儲單元320的狀態(tài)分配一個邏輯值,其對應(yīng)于數(shù)據(jù)的一個數(shù)字位。例如在一些實施例中,存儲單元320的寫入狀態(tài)可以對應(yīng)于邏輯“1”,而存儲單元320的擦除狀態(tài)對應(yīng)于邏輯“0”。另一方面在一些可選擇的實施例中,存儲單元320的寫入狀態(tài)可以對應(yīng)于邏輯“0”,而存儲單元320的擦除狀態(tài)對應(yīng)于邏輯“1”。
在步驟404,處理器270確定存儲在所述存儲單元320中的數(shù)據(jù)位是“1”還是“0”。如果所述數(shù)據(jù)位是“1”,那么在步驟406,所述處理器270把“1”寫入存儲單元320。例如,如果“1”對應(yīng)于寫入狀態(tài),那么在步驟406期間,所述處理器270向所述存儲單元發(fā)布“寫入指令”,即發(fā)布寫入命令,并且所述存儲單元320被置于寫入狀態(tài)。如果在步驟404期間,所述處理器270確定存儲在所述存儲單元320中的數(shù)據(jù)位是“0”,那么在步驟408,所述處理器270把“0”寫入所述存儲單元320。例如,如果“0”對應(yīng)于擦除狀態(tài),那么在步驟408期間,所述處理器270向所述存儲單元發(fā)布“擦除指令”,即發(fā)布寫入命令,并且所述存儲單元320被置于所述擦除狀態(tài)。
在存儲器刷新操作期間發(fā)布的寫入指令可以和對所述存儲器設(shè)備260進(jìn)行標(biāo)準(zhǔn)寫入操作期間發(fā)布的寫入指令相同。類似地,在存儲器刷新操作期間發(fā)布的擦除指令可以與對所述存儲器設(shè)備260進(jìn)行標(biāo)準(zhǔn)寫入操作期間發(fā)布的擦除指令相同。因此如上所述,有益地消除的了對唯一的刷新控制信號的需要,其只是用在存儲器刷新操作期間。在處理器270完成步驟406或步驟408之后,然后在最終步驟410,所述過程結(jié)束。
在圖3舉例說明的方法中,假定除非通過向存儲單元320(圖2)發(fā)布寫入指令或擦除指令(適當(dāng)?shù)囊粋€)來周期地刷新所述存儲單元320,否則所述存儲單元320不會無限期地保持在寫入狀態(tài)或擦除狀態(tài)中。然而在一些實施例中,所述存儲單元320趨向于隨著時間的流逝回到一個特定的狀態(tài)。例如在一些實施例中,所述存儲單元320趨向于隨著時間的流逝回到擦除狀態(tài)。在這些實施例中,當(dāng)存儲單元320處于寫入狀態(tài)時,除非通過對所述存儲單元320執(zhí)行寫入操作來周期地刷新所述存儲單元320,否則其不會無限期地保持在寫入狀態(tài)中。另一方面,由于所述存儲單元320的自然趨勢是回到所述擦除狀態(tài),所以置于擦除狀態(tài)中的存儲單元320將長時期地保持在該狀態(tài)中,而不需要被刷新。在這些實施例中,通過取消步驟406或步驟408(其對應(yīng)于擦除狀態(tài)),可以有益地簡化在圖3中舉例說明的方法。
此外,依照在圖3中舉例說明的方法,假定每個存儲單元320(圖2)只能夠處于兩種狀態(tài)之一中。然而,根據(jù)本公開內(nèi)容,本領(lǐng)域內(nèi)普通技術(shù)人員將理解如果所述存儲單元320存在兩種以上的狀態(tài),可以如何來修改在圖3中舉例說明的方法。
如果存儲器刷新操作包括在圖3中舉例說明的方法,單個地刷新每個存儲單元320(圖2),而不是同時刷新大量的存儲單元320,如以上結(jié)合圖1所述。通過單個地評估每個存儲單元320,所述處理器270可以確定是否需要刷新每個單個的存儲單元320,借此有益地防止對那些不必刷新的存儲單元320執(zhí)行不必要的刷新操作。
圖4舉例說明了依照本發(fā)明一個實施例刷新多個存儲單元320(圖2)的方法。為了執(zhí)行該方法,所述計算機系統(tǒng)250維護(hù)具有以下值的計數(shù)器,所述值對應(yīng)于存儲器陣列190中的特定地址。在第一步驟450,使用在圖3中舉例說明的方法或另一適當(dāng)?shù)姆椒?,來刷新在對?yīng)于所述計數(shù)器當(dāng)前值的地址的上存儲單元320。在下一步驟452,增量所述計數(shù)器的值,并且在下一步驟454,復(fù)位并啟動計時器。
在步驟456,所述處理器270確定所述計時器是否超出預(yù)先確定的最小等待時間??梢酝ㄟ^考慮許多因素來確定所述最小等待時間的適當(dāng)值,所述因素諸如存儲單元320可以保持其賦值狀態(tài)的最大時間,刷新存儲單元320所需要的時間,要加以刷新的存儲單元320的數(shù)目等等。如上所述,有益地是,該預(yù)先確定的最小等待時間可以是相對長的時間,諸如數(shù)秒、數(shù)分鐘、數(shù)小時、數(shù)天或更長。在一個實施例中,所述預(yù)先確定的最小等待時間是大約為一分鐘的時段。在另一實施例中,所述最小等待時間是大約為一小時的時段。在又一實施例中,所述最小等待時間大是約為一天到一星期的時段。
如果還沒有到達(dá)所述最小等待時間,那么在步驟458,所述處理器270確定是否需要刷新在對應(yīng)于所述計數(shù)器當(dāng)前值的地址上的存儲單元320。許多不同的狀況可以表明不必刷新在當(dāng)前地址上的存儲單元320。例如如上所述,在一些實施例中,當(dāng)存儲單元320處于擦除狀態(tài)時,不必刷新所述存儲單元320。此外,如果在步驟454期間所述處理器270在復(fù)位并啟動所述計時器之后,對所述存儲單元320執(zhí)行寫入操作,那么在下一個存儲器刷新周期之前都不需要刷新所述存儲單元320。
如果在等待所述計時器到達(dá)最小等待時間時,處理器270確定不必刷新在當(dāng)前地址的存儲單元320,那么所述過程回到步驟452,在那里增量對應(yīng)于當(dāng)前存儲器地址的計數(shù)器的值,并且如上所述繼續(xù)所述過程。另一方面,如果一旦所述計時器到達(dá)最小等待時間,還需要刷新在當(dāng)前地址的存儲單元320,那么所述過程繼續(xù)至步驟460,在那里所述處理器270確定系統(tǒng)資源是否可以用來刷新所述存儲單元320。在進(jìn)行該確定時,所述處理器270可以計算多種因素,諸如對處理器270的需要,以及對存儲器設(shè)備260或在所述計算機系統(tǒng)250中的其它設(shè)備的需要等等。
如果系統(tǒng)資源是可用的,那么所述過程回到步驟450,在那里刷新在當(dāng)前地址的存儲單元320,并且所述過程繼續(xù),如上所述。另一方面,如果系統(tǒng)資源不可用來刷新所述存儲單元320,那么在步驟462,所述處理器270確定所述計時器是否已經(jīng)超出預(yù)先確定的最大等待時間。就像所述最小等待時間,可以通過考慮許多因素來確定所述最大等待時間適當(dāng)?shù)闹?,所述因素為諸如存儲單元320可以保持其賦值狀態(tài)的最大時間,刷新存儲單元320所需要的時間,要刷新的存儲單元320的數(shù)目等等。如上所述,有益地,該預(yù)先確定的最大等待時間可以是相對長的時段,諸如數(shù)秒、數(shù)分鐘、數(shù)小時、數(shù)天、數(shù)星期或更長。在一個實施例中,所述最大等待時間是大約一小時的時段。在另一實施例中,所述最大等待時間是大約一星期的時段。在又一實施例中,所述最大等待時間是大約一個月的時段。
如果還沒有到達(dá)所述最大等待時間,那么在步驟464,所述處理器270確定是否需要刷新在對應(yīng)于所述計數(shù)器當(dāng)前值的所述地址上的存儲單元320。如以上結(jié)合步驟458所述,許多不同的狀況可以表明不必刷新在當(dāng)前地址的存儲單元320。
如果不必刷新在當(dāng)前地址的存儲單元320,那么所述過程回到步驟452,在那里增量對應(yīng)于當(dāng)前存儲器地址的計數(shù)器值,并且所述過程繼續(xù),如上所述。另一方面,如果需要刷新在當(dāng)前地址的存儲單元320,那么所述處理器270繼續(xù)監(jiān)視系統(tǒng)資源是否已經(jīng)變?yōu)榭梢杂脕硭⑿滤龃鎯卧?20。
一旦所述計時器到達(dá)預(yù)先確定的最大等待時間,如果系統(tǒng)資源還沒有變?yōu)榭捎貌⑶胰匀恍枰⑿略诋?dāng)前地址的存儲單元320,那么所述過程繼續(xù)至步驟466,在那里所述處理器270會強迫某些系統(tǒng)資源由其它過程釋放,以使必要的資源變?yōu)榭梢杂脕硭⑿滤龃鎯卧?20。然后所述過程回到步驟450,在那里刷新在當(dāng)前地址的存儲單元320,并且所述過程繼續(xù),如上所述。
在一個實施例中,由處理器270不中斷地重復(fù)執(zhí)行在圖4中舉例說明的過程。在該實施例中,所述存儲器刷新操作是一個不間斷過程(ongoing process),其不斷地發(fā)生在由處理器270執(zhí)行的其它過程的后臺。有益地是,可以選擇并調(diào)整最小等待時間和最大等待時間,以便盡可能少地刷新存儲單元320,同時保持存儲在存儲器設(shè)備310中的信息。
圖5舉例說明了依照本發(fā)明一個實施例刷新多個存儲單元320的另一方法。在第一步驟500,所述過程開始,并且在下一步驟502,復(fù)位并啟動計時器。就像在圖4中舉例說明的方法,圖2的計算機系統(tǒng)250維護(hù)計數(shù)器以便執(zhí)行在圖5中舉例說明的方法,所述計數(shù)器具有對應(yīng)于所述存儲器陣列310中的特定地址的值。在步驟504,使用在圖3中舉例說明的方法或另一適當(dāng)?shù)姆椒?,來刷新在對?yīng)于所述計數(shù)器當(dāng)前值的所述地址上的存儲單元320。在下一步驟506,增量所述計數(shù)器值。
在步驟508,處理器270確定是否完成存儲器刷新操作。許多狀況可以表明完成了存儲器刷新操作。例如,當(dāng)已經(jīng)刷新在存儲器陣列310中的每個存儲單元320時,或當(dāng)已經(jīng)刷新了在特定存儲塊中的每個存儲單元320時可以認(rèn)為完成了存儲器刷新操作。
如果還沒有完成所述存儲器刷新操作,那么在步驟510,處理器270確定系統(tǒng)資源是否可以用來刷新在對應(yīng)于所述計數(shù)器當(dāng)前值的地址上的存儲單元320。如果系統(tǒng)資源是可用的,那么所述過程回到步驟504,在那里刷新在當(dāng)前地址處的存儲單元320,并且所述過程繼續(xù),如上所述。
另一方面,如果系統(tǒng)資源不可用來刷新所述存儲單元320,那么在步驟512,所述處理器270確定所述計時器是否已經(jīng)超出預(yù)先確定的最大等待時間。如以上結(jié)合圖4所述,可以通過考慮許多因素來確定所述最大等待時間的適當(dāng)值,所述因素為諸如存儲單元320可以保持其賦值狀態(tài)的最大時間,刷新存儲單元320所需要的時間,要刷新的存儲單元320的數(shù)目等等。此外如上所述,有益地是,該預(yù)先確定的最大等待時間可以是相對長的時間,諸如數(shù)秒、數(shù)分鐘、數(shù)小時、數(shù)天、數(shù)星期或更長。
在一個實施例中,以上結(jié)合圖4所述的最大等待時間對應(yīng)于在處理器270強迫系統(tǒng)資源變?yōu)榭梢杂脕硭⑿陋毩⒋鎯卧?20之前可以等待的最大時間。在圖5舉例說明的過程中,另一方面,最大等待時間對應(yīng)于在處理器270強迫系統(tǒng)資源變?yōu)榭梢杂脕硭⑿略诖鎯ζ麝嚵?10中或在正在刷新的存儲塊中剩余的所有存儲單元320之前,所述處理器270可以等待的最大時間。從而,在一個實施例中,所述最大等待時間是大約一天的時段。在另一實施例中,所述最大等待時間是大約一星期的時段。在又一實施例中,所述最大等待時間是大約一個月到兩個月的時段。
如果還沒有到達(dá)最大等待時間,那么過程回到步驟510,在那里如上所述,處理器270繼續(xù)監(jiān)視系統(tǒng)資源是否已經(jīng)變?yōu)榭梢杂脕硭⑿麓鎯卧?20。一旦所述計時器到達(dá)預(yù)先確定的最大等待時間,如果系統(tǒng)資源還沒有變?yōu)榭捎茫敲此鲞^程繼續(xù)至步驟514,在那里處理器270強迫某些系統(tǒng)資源由其它過程釋放,以使必要的資源變?yōu)榭梢杂脕硭⑿滤龃鎯卧?20。然后所述過程回到步驟504,在那里刷新在當(dāng)前地址處的存儲單元320,并且所述過程繼續(xù),如上所述。
重復(fù)該過程直到在步驟508期間,所述處理器270確定完成了存儲器刷新操作。一旦作出該確定,那么所述過程繼續(xù)至步驟516,在那里復(fù)位存儲器地址計數(shù)器。在最終步驟518,所述過程結(jié)束。
在一個實施例中,由處理器270周期地重復(fù)在圖5中舉例說明的過程。在該實施例中,周期地執(zhí)行存儲器刷新操作,而不是一個恒定的不間斷過程,結(jié)合圖4如上所述。有益地是,處理器270可以根據(jù)計算機系統(tǒng)250的要求并且根據(jù)存儲在存儲單元320中數(shù)據(jù)的持久性,采用規(guī)則的時間間隔或不規(guī)則的時間間隔來調(diào)用并執(zhí)行該過程。
在圖3、4和5中舉例說明的過程僅僅是可以采用存儲器刷新指令290實現(xiàn)的算法的例子。本領(lǐng)域內(nèi)普通技術(shù)人員將理解通過增加、刪除或改變某些步驟可以容易地修改這些示例性的算法。此外,根據(jù)本公開內(nèi)容,本領(lǐng)域內(nèi)普通技術(shù)人員將理解怎樣開發(fā)多種可替換的算法。
權(quán)利要求
1.一種刷新存儲器設(shè)備中的單元的方法,包括確定所述單元是處于寫入狀態(tài)還是處于擦除狀態(tài);以及如果所述單元處于所述寫入狀態(tài),那么通過向所述單元發(fā)布刷新寫入指令來刷新所述單元。
2.如權(quán)利要求1所述的方法,還包括如果所述單元處于所述擦除狀態(tài),那么通過向所述單元發(fā)布刷新擦除指令來刷新所述單元。
3.一種保持在具有多個單元的易失性存儲器設(shè)備中存儲的數(shù)據(jù)的方法,包括對于所述多個單元中的每一個,確定是否需要刷新所述單元;以及如果需要刷新所述單元,那么刷新所述單元。
4.一種保持在具有多個單元的易失性存儲器設(shè)備中存儲的數(shù)據(jù)的方法,包括刷新所述多個單元;以及等待一個持續(xù)至少大約64毫秒的預(yù)先確定的時段,其中在所述預(yù)先確定的時段期間不刷新所述多個單元中的任何單元。
5.如權(quán)利要求4所述的方法,其中所述預(yù)先確定的時段持續(xù)至少大約一秒。
6.如權(quán)利要求4所述的方法,其中所述預(yù)先確定的時段持續(xù)至少大約一星期。
7.一種保持在具有多個存儲單元的易失性存儲器設(shè)備中存儲的數(shù)據(jù)的方法,包括尋址第一存儲單元;等待從尋址所述第一存儲單元開始的第一時段;確定是否需要刷新所述第一存儲單元;如果需要刷新所述第一存儲單元,那么確定系統(tǒng)資源是否可以用來刷新所述第一存儲單元;如果需要刷新所述第一存儲單元并且如果所述系統(tǒng)資源不可用,那么在從尋址所述第一存儲單元開始的第二時段內(nèi),監(jiān)視所述系統(tǒng)資源是否變?yōu)榭梢杂脕硭⑿滤龅谝淮鎯卧?;如果需要刷新所述第一存儲單元并且如果所述系統(tǒng)資源在所述第二時段內(nèi)沒有變?yōu)榭捎茫敲磸娖柔尫潘鲑Y源,以使所述資源變?yōu)榭梢杂脕硭⑿滤龅谝淮鎯卧?;如果需要刷新所述第一存儲單元,那么使用所述可用的系統(tǒng)資源來刷新所述第一存儲單元;以及尋址第二存儲單元。
8.如權(quán)利要求6所述的方法,其中所述第一時段在大約一秒到大約一星期的范圍內(nèi)。
9.如權(quán)利要求6所述的方法,其中所述第二時段在大約一星期到大約兩個月的范圍內(nèi)。
10.一種防止丟失易失性存儲器設(shè)備中的數(shù)據(jù)的方法,包括建立一個必須刷新所述易失性存儲器設(shè)備的最后期限;監(jiān)視資源是否可以用來刷新所述易失性存儲器設(shè)備;如果在所述最后期限之前的第一預(yù)先確定時段內(nèi),所述資源沒有變?yōu)榭梢杂脕硭⑿滤鲆资源鎯ζ髟O(shè)備,那么強迫釋放所述資源,以使所述資源變?yōu)榭梢杂脕硭⑿滤鲆资源鎯ζ髟O(shè)備;以及在所述最后期限之前使用所述可用資源來刷新所述易失性存儲器設(shè)備。
11.一種計算機系統(tǒng),包括處理器;與所述處理器耦合的存儲器設(shè)備,其中所述存儲器設(shè)備包括必須被周期地刷新的多個單元;和軟件模塊,當(dāng)其由所述處理器執(zhí)行時,刷新所述多個單元。
12.如權(quán)利要求11所述的計算機系統(tǒng),還包括操作系統(tǒng),其被配置為由所述處理器來執(zhí)行,其中所述操作系統(tǒng)包括所述軟件模塊。
13.如權(quán)利要求11所述的計算機系統(tǒng),其中所述存儲器設(shè)備包括可編程導(dǎo)體隨機訪問存儲器。
14.如權(quán)利要求11所述的計算機系統(tǒng),其中所述多個單元中的每一個包括可編程的金屬化單元。
15.如權(quán)利要求14所述的計算機系統(tǒng),其中所述可編程的金屬化單元包括具有上表面的單元體,其中所述單元體含有金屬硫化物的離子玻璃;和放置在所述上表面的二個電極,其中所述電極彼此分開一段距離。
16.如權(quán)利要求15所述的計算機系統(tǒng),其中所述金屬硫化物的離子玻璃包括鍺硒化物,其具有在其中溶解的IV族金屬。
17.如權(quán)利要求16所述的計算機系統(tǒng),其中所述金屬硫化物的離子玻璃包括Ag/Ge3Se7。
18.一種包括必須被周期地刷新的多個單元的存儲器設(shè)備,其中把所述多個單元配置為響應(yīng)于從處理器接收的寫入指令或擦除指令而被刷新,并且其中沒有把所述存儲器設(shè)備配置為產(chǎn)生或接收不同于所述寫入指令或所述擦除指令的刷新控制信號。
19.如權(quán)利要求18所述的存儲器設(shè)備,其中所述存儲器設(shè)備包括可編程導(dǎo)體隨機訪問存儲器。
20.如權(quán)利要求18所述的存儲器設(shè)備,其中所述多個單元中的每一個包括可編程的金屬化單元。
21.如權(quán)利要求20所述的存儲器設(shè)備,其中所述可編程的金屬化單元包括具有上表面的單元體,其中所述單元體包括金屬硫化物的離子玻璃;和放置在所述上表面的兩個電極,其中所述電極彼此相互之間分開一段距離。
22.如權(quán)利要求21所述的存儲器設(shè)備,其中所述金屬硫化物的離子玻璃包括鍺硒化物,其具有在其中溶解的IV族金屬。
23.如權(quán)利要求22所述的存儲器設(shè)備,其中所述金屬硫化物的離子玻璃包括Ag/Ge3Se7。
全文摘要
一種軟件刷新的存儲器設(shè)備包括多個存儲單元,所述多個存儲單元必須被周期地刷新以免丟失數(shù)據(jù)。優(yōu)選地是,與在常規(guī)的、諸如DRAM之類的易失性存儲器設(shè)備中連續(xù)的存儲器刷新操作之間的時間間隔相比,所述存儲單元即使在連續(xù)的存儲器刷新操作之間的時間間隔相對較長時,也可以防止丟失數(shù)據(jù)。處理器可以通過執(zhí)行采用軟件而不是采用硬件實現(xiàn)的一組存儲器刷新指令來執(zhí)行周期的存儲器刷新操作。因此,由于有益地消除了對存儲器刷新電路和唯一的刷新控制信號的需要,所以可以有益地簡化所述存儲器設(shè)備。此外,與采用硬件實現(xiàn)的存儲器刷新電路相比,執(zhí)行所述存儲器刷新指令的處理器可以典型地執(zhí)行更高級的算法,以便確定何時執(zhí)行存儲器刷新操作。例如,所述處理器可以確定是否需要刷新每個單個的存儲單元,借此有益地防止對那些不必刷新的存儲單元執(zhí)行不必要的刷新操作。
文檔編號G06F12/00GK1689111SQ03824507
公開日2005年10月26日 申請日期2003年8月28日 優(yōu)先權(quán)日2002年8月29日
發(fā)明者T·L·吉爾頓 申請人:微米技術(shù)有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
天镇县| 丹江口市| 夹江县| 边坝县| 临颍县| 叙永县| 定州市| 安徽省| 蓝山县| 稷山县| 红河县| 隆子县| 镇宁| 久治县| 册亨县| 康定县| 新邵县| 寻乌县| 九台市| 阳泉市| 永修县| 武宁县| 虹口区| 泗阳县| 许昌县| 额尔古纳市| 宝兴县| 洪湖市| 伊金霍洛旗| 宝鸡市| 大石桥市| 建昌县| 邵东县| 渭南市| 南靖县| 灵寿县| 诸暨市| 黔江区| 渭源县| 扎兰屯市| 亳州市|