記憶體系統
本實施形態有關記憶體系統。
[關連申請案]
本申請案以日本發明專利申請案2019-153754號(申請日:2019年8月26日)為基礎申請案,並享受優先權。本申請案參照該基礎申請案,因而包含基礎申請案的所有內容。
具有非揮發性記憶體之記憶體系統中,會進行運用亂數之處理,如寫入至非揮發性記憶體的資料的加密等。此時,盼望有效率地提升亂數的隨機性。
一個實施形態,提供一種能夠有效率地提升亂數的隨機性之記憶體系統。
按照一個實施形態,提供一種具有非揮發性記憶體與控制器之記憶體系統。非揮發性記憶體,具有第1記憶區域及第2記憶區域。第1記憶區域及第2記憶區域的各者,包含複數個記憶體單元。控制器,進行第1處理、第2處理、及第3處理。第1處理,為對於第1記憶區域中包含的複數個第1記憶體單元之處理。第2處理,為對於第1記憶區域中包含的複數個第2記憶體單元之處理。第3處理,為對於第2記憶區域中包含的複數個第3記憶體單元之處理。記憶體單元,根據閾值電壓而記憶複數個值。複數個值,至少包含第1值、及於與閾值電壓之關係中和第1值鄰接之第2值。第1處理,為令複數個第1記憶體單元記憶第1值,而將複數個第1記憶體單元的閾值電壓當中最高的閾值電壓訂為第1閾值電壓之處理。第2處理,為令複數個第2記憶體單元記憶第2值,而將複數個第2記憶體單元的閾值電壓當中最低的閾值電壓訂為比第1閾值電壓還高的第2閾值電壓之處理。第3處理,為將複數個第3記憶體單元的閾值電壓當中最低的閾值電壓設為比第1閾值電壓還低,且將複數個第3記憶體單元的閾值電壓當中最高的閾值電壓設為比第2閾值電壓還高之處理。
以下參照所附圖面,詳細說明實施形態之記憶體系統。另,本發明並非藉由此實施形態而受限定。
(實施形態)
實施形態之記憶體系統,具有非揮發性記憶體。此記憶體系統中,會運用亂數進行規定之處理,如寫入至非揮發性記憶體的資料的加密等。
記憶體系統中,會生成偽亂數(pseudo random number),運用生成的偽亂數進行規定之處理。偽亂數的優點在於,不需要專用的硬體亂數生成器,因此能夠減低製造相關的成本。但,在加密處理這樣要求高隨機性之處理中,即使運用偽亂數仍有無法滿足要求的隨機性之可能性。
相對於此,為了滿足要求的隨機性,記憶體系統中,可設想生成自然亂數(真亂數),運用生成的自然亂數來進行規定之處理。為了生成自然亂數,多半會在記憶體系統追加硬體的亂數生成器。在此情形下,記憶體系統的製造成本有變高的可能性。此外,由於組裝追加零件,晶片或板的面積會增大,而有系統的成本增大之可能性。
鑑此,本實施形態中,是於記憶體系統中,令非揮發性記憶體本身動作成為自然亂數產生器,藉此謀求兼顧系統成本的抑制與亂數的隨機性的提升。
具體而言,在非揮發性記憶體內的規定的記憶區域進行會形成一橫跨特定的讀出位準的閾值電壓分布之規定的寫入處理(例如粗略寫入處理)。藉此,記憶體系統,便可於非揮發性記憶體內的規定的記憶區域產生自然亂數。亦即,記憶體系統中,閾值電壓分布可能受到資料保持能力(data retention)、讀取干擾(read disturb)、寫入干擾(program disturb)等自然現象所造成之隨機性的影響。閾值電壓分布橫跨特定的讀出位準,故若從規定的記憶區域以特定的讀出位準進行讀出處理,則讀出結果會具有自然現象所造成之隨機性而成為“0”及“1”混雜之資料。因此,該讀出結果便可用作為真亂數。也就是說,記憶體系統中,是從已搭載的非揮發性記憶體來生成真亂數,因此不需追加專用的硬體亂數生成器便可生成真亂數。
更具體而言,記憶體系統1可如圖1所示般構成。圖1為記憶體系統1的構成示意圖。
記憶體系統1,可透過通訊媒體(例如序列電纜)與主機4連接,在與主機4連接的狀態下可作用成為對於主機4之外部記憶裝置。記憶體系統1,例如可為SSD(Solid State Drive;固態硬碟)等的儲存元件,亦可為記憶卡等的可攜帶的記憶體元件。主機4,例如可為個人電腦、行動終端等的電子機器。記憶體系統1,具備記憶體控制器2與非揮發性記憶體3。
非揮發性記憶體3,為非揮發地記憶資料之記憶體,例如為NAND型快閃記憶體(以下簡稱NAND記憶體)。以下說明中,示例運用NAND記憶體作為非揮發性記憶體3之情形,惟作為非揮發性記憶體3亦可運用3維構造快閃記憶體、ReRAM(Resistive Random Access Memory;可變電阻式記憶體)、FeRAM(Ferroelectric Random Access Memory;鐵電記憶體)、MRAM(Magnetoresistive Random Access Memory;磁阻式隨機存取記憶體)等NAND記憶體以外的記憶媒體。此外,非揮發性記憶體3不必需為半導體記憶體,亦可對於半導體記憶體以外的種種記憶媒體適用本實施形態。
記憶體控制器2,例如為構成為SoC(System-On-a-Chip;系統單晶片)之半導體積體電路。記憶體控制器2,遵照來自主機4的寫入要求而控制對非揮發性記憶體3之寫入處理。此外,記憶體控制器2,遵照來自主機4的讀出要求而控制從非揮發性記憶體3之讀出處理。記憶體控制器2,具備主機介面(I/F)21、RAM(Random Access Memory)24、記憶體介面(I/F)25、控制部23、ECC(Error Check and Correct;錯誤檢查和糾正)部(編碼處理部)26及緩衝記憶體22。主機I/F21、記憶體I/F25、控制部23、RAM24、緩衝記憶體22及ECC部26,透過內部匯流排20相互連接。記憶體控制器2中的各功能,其全部可藉由專用硬體來實現,其全部亦可藉由執行韌體之處理器來實現。或者,記憶體控制器2中的各功能,亦可其部分藉由專用硬體來實現,其餘藉由執行韌體之處理器來實現。
主機I/F21,將從主機4接收的寫入要求及讀出要求或使用者資料等輸出至內部匯流排20。此外,主機I/F21,將從非揮發性記憶體3讀出的使用者資料或來自控制部23的回應等發送給主機4。
記憶體I/F25,基於控制部23的指示,執行將資料等往非揮發性記憶體3寫入之寫入處理及從非揮發性記憶體3讀出資料等之讀出處理。
ECC部26,藉由將使用者資料編碼而生成錯誤檢測訂正用的同位(parity),並且生成包含使用者資料與同位之碼字(codeword)。此外,ECC部26將從非揮發性記憶體3讀出的碼字予以解碼而復原使用者資料。
RAM24,例如為SRAM(Static RAM)這樣的半導體記憶體,被使用作為控制部23執行處理時之工作記憶體。用來管理非揮發性記憶體3的韌體或位址變換表格等的各種管理表格等視必要會被載入至RAM24。
控制部23整體性地控制記憶體系統1。控制部23,例如由CPU(Central Processing Unit)、MPU(Micro Processing Unit)所構成。
控制部23,若從主機4經由主機I/F21接收要求,便進行遵照該要求之控制。例如,控制部23當被輸入來自主機4的寫入要求的情形下,便對記憶體I/F25指示寫入使用者資料至非揮發性記憶體3。控制部23,當被輸入來自主機4的讀出要求的情形下,便對記憶體I/F25指示讀出來自非揮發性記憶體3的使用者資料之處理。
緩衝記憶體22,作用成為暫時性地存放寫入使用者資料、讀出使用者資料、內部管理資料等之記憶體區域。此緩衝記憶體22,例如能夠藉由DRAM(Dynamic RAM,包含SDRAM(Synchronous DRAM))或SRAM來構成。
非揮發性記憶體3,包含複數個區塊(block),記憶體控制器2可藉由區塊衍生的單位(例如將區塊分割成複數個而成之叢集單位)來管理資料。記憶體控制器2,可將複數個區塊當中一部分的區塊劃分給自然亂數產生區域3b及管理資訊存儲區域3c,其餘的區塊劃分給儲存區域3a而分別使用。記憶體控制器2,亦可生成示意各區塊的劃分的結果之區塊管理資訊。記憶體控制器2,亦可將區塊管理資訊3c4存放在管理資訊存儲區域3c。
區塊,為資料消除的單位。各區塊,在相互相隔距離而交叉的複數個字元線及複數個位元線之交叉位置具有記憶體單元。圖2為1個區塊的構成例示意電路圖。
區塊BLK,具有複數個字串單元SU0~SU3。複數個字串單元SU0~SU3,和複數個選擇閘線SGDL0~SGDL3相對應並且共享選擇閘線SGSL。各字串單元SU0~SU3,作用成為實體區塊BLK中的驅動單位。各字串單元SU0~SU3,可藉由複數個選擇閘線SGDL0~SGDL3當中其相對應的選擇閘線與選擇閘線SGSL而被驅動。此外,各字串單元SU0~SU3包含複數個記憶體字串MST。
各記憶體字串MST,例如包含64個記憶體單元電晶體MT(MT0~MT63)及選擇電晶體SDT,SST。記憶體單元電晶體MT,具有控制閘與電荷蓄積膜,非揮發地保持資料。又,64個記憶體單元電晶體MT(MT0~MT63)在選擇電晶體SDT的源極與選擇電晶體SST的汲極之間被串聯連接。另,記憶體字串MST內的記憶體單元電晶體MT的個數不限定於64個。
位元線BL0~BLp(當不區別各位元線的情形下,以BL表示),連接至記憶體字串MST。當選擇電晶體SDT被ON時,記憶體字串MST內的各記憶體單元電晶體MT的通道區域可被導通至位元線BL。在各位元線BL,連接有感測放大器電路SAC內的複數個感測放大器SA0~SAp當中相對應的感測放大器SA。
字元線WL0~WL63(當不區別各字元線的情形下,以WL表示),在實體區塊BLK內的各字串單元SU內的各記憶體字串MST間共通地連接記憶體單元電晶體MT的控制閘。也就是說,於實體區塊BLK內的各字串單元SU內位於同一行的記憶體單元電晶體MT的控制閘,係連接至同一字元線WL。亦即,實體區塊BLK的字串單元SU包含和複數個字元線WL相對應之複數個記憶體單元群MCG,各記憶體單元群MCG包含連接至同一字元線WL之(p+1)個記憶體單元電晶體MT。當構成為在各記憶體單元電晶體MT可保持1位元的值之情形下(以單層單元(SLC)模式動作之情形下),連接至同一字元線WL的(p+1)個記憶體單元電晶體MT(亦即記憶體群MCG)被對待成1個實體頁,對此實體頁每一者進行資料的寫入處理及資料的讀出處理。
有時會構成為在各記憶體單元電晶體MT可保持複數位元的值。例如,當各記憶體單元電晶體MT可記憶n(n≧2)位元的值之情形下,每一字元線WL的記憶容量等於n個實體頁份的尺寸。亦即,各記憶體單元群MCG被對待成n個實體頁。例如,各記憶體單元電晶體MT記憶2位元的值之多層單元(MLC)模式下,在各字元線WL會保持2個實體頁份的資料。或者,各記憶體單元電晶體MT記憶3位元的值之三層單元(TLC)模式下,在各字元線WL會保持3個實體頁份的資料。
記憶體控制器2,對於非揮發性記憶體3的儲存區域3a(參照圖1)在規定的區塊進行抹除處理後,可能於SLC模式下進行第1寫入處理。第1寫入處理,包含第1寫入條件。例如,記憶體控制器2對非揮發性記憶體3發出指示對儲存區域3a中的某一實體位址藉由第1寫入處理而寫入資料之第1指令。
非揮發性記憶體3,根據第1指令,從管理資訊存儲區域3c(參照圖1)讀出寫入控制資訊3c1,遵照寫入控制資訊3c1決定第1寫入條件。在此情形下,複數個記憶體單元的閾值電壓分布成為如圖3(a)所示。處於資料未被寫入的抹除狀態之複數個記憶體單元(複數個第1記憶體單元),示出以“E”表示之閾值電壓分布,處於資料已被寫入的寫入狀態之複數個記憶體單元(複數個第2記憶體單元),示出以“P”表示之閾值電壓分布。閾值電壓分布“P”,形成於比閾值電壓分布“E”還高電壓側。第1寫入條件,為會形成如圖3(a)所示的複數個閾值電壓分布(亦即閾值電壓分布“E”及閾值電壓分布“P”)之寫入條件。各記憶體單元,根據閾值電壓而記憶複數個值。此複數個值,包含第1值(例如和閾值電壓分布“E”相對應的1位元的值“1”)、及於與閾值電壓之關係中和第1值鄰接的第2值(例如和閾值電壓分布“P”相對應的1位元的值“0”)。將閾值電壓分布“E”中包含的複數個閾值電壓當中最高的閾值電壓訂為VtEmax,將閾值電壓分布“P”中包含的複數個閾值電壓當中最低的閾值電壓訂為VtPmin。此時,對於複數個第1記憶體單元之抹除處理,為將複數個第1記憶體單元的閾值電壓當中最高的閾值電壓訂為VtEmax之處理。對於複數個第2記憶體單元之抹除處理及遵照其後的第1寫入條件之第1寫入處理,為將複數個第1記憶體單元的閾值電壓當中最低的閾值電壓訂為VtPmin(>VtEmax)之處理。
此時,對各記憶體單元MT之第1寫入處理,可藉由ISPP(Incremental Step Pulse Program;逐步增加脈衝寫入)方式來進行,即,一面使施加至字元線的寫入電壓增加一面交互反覆寫入動作與驗證動作,直到以驗證位準Vf1通過驗證。驗證位準Vf1,為比讀出位準Vrd還高之位準,為比閾值電壓分布“P”的中心的目標位準Vpc還低了閾值電壓分布“P”的電壓範圍ΔVp的大略一半的電壓ΔVp/2份之位準。藉此,閾值電壓分布“P”可被適當地調整。此外,記憶體控制器2,亦可針對進行第1寫入處理的區塊更新區塊管理資訊3c4,而令更新後的區塊管理資訊3c4存放在管理資訊存儲區域3c。
記憶體控制器2,對於非揮發性記憶體3的儲存區域3a(參照圖1),於SLC模式下進行讀出處理。此讀出處理,包含第1讀出條件。例如,記憶體控制器2對非揮發性記憶體3發出指示從儲存區域3a中的某一實體位址藉由讀出處理而讀出資料之第2指令。
非揮發性記憶體3,根據第2指令,從管理資訊存儲區域3c(參照圖1)讀出讀出控制資訊3c2,遵照讀出控制資訊3c2決定第1讀出條件。在此情形下,記憶體控制器2運用SLC模式用的讀出位準Vrd而從儲存區域3a讀出資料。讀出位準Vrd,為複數個閾值電壓分布(亦即閾值電壓分布“E”及閾值電壓分布“P”)之間的位準。亦即,第1讀出條件為一運用圖3(a)所示複數個閾值電壓分布之間的讀出位準Vrd之讀出條件。閾值電壓分布“E”中的最高的閾值電壓VtEmax,比讀出位準Vrd還低。閾值電壓分布“P”中的最低的閾值電壓VtPmin(大略等於驗證位準Vf1),比讀出位準Vrd還高。
此時,非揮發性記憶體3中,位元線BL及相對應的感測放大器SA內的感測節點被預充電至規定的位準,對選擇字元線WL施加讀出位準Vrd。
當連接至選擇字元線WL的記憶體單元MT中寫入有資料之情形下(閾值電壓分布“P”之情形),記憶體單元MT會維持OFF,單元電流難以流至位元線BL,故感測節點的電壓會被保持。感測放大器SA,根據感測節點的電壓被保持這件事,來判定記憶體單元MT正在保持資料“0”。非揮發性記憶體3,將此判定結果輸出給記憶體控制器2作為讀出資料。
當連接至選擇字元線WL的記憶體單元MT中未寫入有資料之情形下(閾值電壓分布“E”之情形),記憶體單元MT會ON,單元電流會流至位元線BL,故感測節點的電壓會被放電。感測放大器SA,根據感測節點的電壓被放電這件事,來判定記憶體單元MT正在保持資料“1”。非揮發性記憶體3,將此判定結果輸出給記憶體控制器2作為讀出資料。
像這樣,記憶體系統1中,各記憶體單元MT可藉由其閾值電壓來表現“0”與“1”。本實施形態之記憶體系統1中,是將記憶體單元MT的閾值電壓的分布特性利用作為物理現象,而得到自然亂數。
例如,記憶體控制器2對於非揮發性記憶體3的自然亂數產生區域3b(參照圖1),可於SLC模式下進行第2寫入處理。第2寫入處理,包含第2寫入條件。例如,記憶體控制器2對非揮發性記憶體3發出指示對自然亂數產生區域3b中的某一實體位址藉由第2寫入處理而寫入自然亂數產生用的資料(例如全部“0”)之第3指令。
非揮發性記憶體3,根據第3指令,從管理資訊存儲區域3c(參照圖1)讀出寫入控制資訊3c3,遵照寫入控制資訊3c3決定第2寫入條件。在此情形下,複數個記憶體單元的閾值電壓分布可能成為如圖3(b)所示。
第2寫入條件,為一形成如圖3(b)所示般橫跨讀出位準Vrd的閾值電壓分布(例如閾值電壓分布“WP1”)之寫入條件。此外,第2寫入條件亦可為一對記憶體單元MT粗略地寫入資料之條件,第2寫入處理亦可為粗略寫入處理(Rough Write處理)。當第2寫入處理為粗略寫入處理的情形下,第2寫入條件亦可為一比第1寫入條件(施加至字元線)更容許寫入電壓的不一致之條件。亦即,藉由第2寫入條件而形成之閾值電壓分布(例如閾值電壓分布“WP1”),和藉由第1寫入條件形成之寫入狀態的閾值電壓分布(例如圖3(a)所示閾值電壓分布“P”)比較,分布的電壓範圍可能變得更廣。閾值電壓分布“WP1”中的最低的閾值電壓(大略等於驗證位準Vf2),比閾值電壓分布“E”中的最高的閾值電壓(參照圖3(a))VtEmax還低。閾值電壓分布“WP1”中的最高的閾值電壓,比閾值電壓分布“P”中的最低的閾值電壓VtPmin(大略等於驗證位準Vf1)還高。
第3指令,亦可為一指示粗略地寫入資料之Rough Write指令。記憶體控制器2,亦可根據Rough Write指令而對於自然亂數產生區域3b的所有的記憶體單元MT粗略地寫入資料。處於已被寫入資料的寫入狀態之記憶體單元,可能示出圖3(b)中“WP1”所示之閾值電壓分布。閾值電壓分布“WP1”,具有橫跨讀出位準Vrd之電壓範圍。亦即,第2寫入條件,為一形成橫跨讀出位準Vrd的閾值電壓分布(亦即閾值電壓分布“WP1”)之寫入條件。以記憶體單元的閾值電壓會成為0與1的判定閾值電壓亦即讀出位準Vrd附近之方式寫入,藉此,於讀出時便能容易使0與1之判定反轉。被Rough Write的區塊的讀出結果,為包含自然現象所造成之不一致的自然亂數。
此時,對各記憶體單元MT之第2寫入處理(例如粗略寫入處理),可遵照比第1寫入條件更容許施加至字元線的寫入電壓的不一致之第2寫入條件,而藉由ISPP方式進行,即,一面使寫入電壓增加一面交互反覆寫入動作與驗證動作,直到以驗證位準Vf2通過驗證。藉此,閾值電壓分布“WP1”可被適當地調整。驗證位準Vf2,為比讀出位準Vrd還低了藉由第2寫入條件形成的閾值電壓分布的電壓範圍的大略一半的電壓(例如閾值電壓分布“WP1”的電壓範圍ΔVwp1的大略一半的電壓ΔVwp1/2)份之位準。此外,記憶體控制器2,亦可針對進行第2寫入處理的區塊更新區塊管理資訊3c4,而令更新後的區塊管理資訊3c4存放在管理資訊存儲區域3c。
從被Rough Write的區塊讀出的資料,可能隨時間經過而每次被讀出時會變化。例如,藉由第2寫入處理而被寫入的自然亂數產生區域3b的區塊的各記憶體單元MT的閾值電壓分布“WP1”,由於環境變動(例如周圍溫度的變動及/或動作電源的變動等)之影響,而有從圖3(b)所示狀態如圖3(c)所示般朝低電壓側偏移、或從圖3(b)所示狀態如圖3(d)所示般朝高電壓側偏移之可能性。藉由將第2寫入處理訂為粗略寫入處理,如圖3(b)~圖3(d)所示,即使發生環境變動的影響所造成之閾值電壓分布的偏移,閾值電壓分布仍能維持橫跨讀出位準Vrd的狀態。
另,即使發生圖3(b)~圖3(d)所示閾值電壓分布的偏移,閾值電壓分布中包含的身為自然現象的隨機性仍會維持。亦即,圖3(b)~圖3(d)所示閾值電壓分布中,藉由讀出而得到的位元值“0”與“1”之比例雖可能相異,但針對閾值電壓分布內的哪一記憶體單元MT會取得位元值“0”或“1”之隨機性則可為均等。
記憶體控制器2,對於非揮發性記憶體3的自然亂數產生區域3b(參照圖1),亦可於SLC模式下藉由第1讀出條件進行讀出處理。例如,記憶體控制器2對非揮發性記憶體3發出指示從自然亂數產生區域3b中的某一實體位址藉由讀出處理而讀出資料之第4指令。
非揮發性記憶體3,根據第4指令,從管理資訊存儲區域3c(參照圖1)讀出讀出控制資訊3c2,遵照讀出控制資訊3c2決定第1讀出條件。在此情形下,記憶體控制器2運用SLC模式用的讀出位準Vrd而從自然亂數產生區域3b讀出資料。
此時,非揮發性記憶體3中,位元線BL及相對應的感測放大器SA內的感測節點被預充電至規定的位準,對選擇字元線WL施加讀出位準Vrd。
當連接至選擇字元線WL的記憶體單元MT為在閾值電壓分布“WP1”內朝比讀出位準Vrd還高電壓側(例如圖3(b)內比Vrd還右側)分布之記憶體單元MT的情形下,記憶體單元MT會維持OFF,單元電流難以流至位元線BL,故感測節點的電壓會被保持。感測放大器SA,根據感測節點的電壓被保持這件事,來判定記憶體單元MT正在保持資料“0”。非揮發性記憶體3,將此判定結果輸出給記憶體控制器2作為讀出資料。
當連接至選擇字元線WL的記憶體單元MT為在閾值電壓分布“WP1”內朝比讀出位準Vrd還低電壓側(例如圖3(b)內比Vrd還左側)分布之記憶體單元MT的情形下,記憶體單元MT會ON,單元電流會流至位元線BL,故感測節點的電壓會被放電。感測放大器SA,根據感測節點的電壓被放電這件事,來判定記憶體單元MT正在保持資料“1”。非揮發性記憶體3,將此判定結果輸出給記憶體控制器2作為讀出資料。
藉此,記憶體控制器2能夠將記憶體單元MT的閾值電壓的分布特性利用作為物理現象(自然現象),而從非揮發性記憶體3讀出包含自然現象的隨機性之資料,能夠得到自然亂數。
另,當能夠忽略環境變動的影響的情形下,第2寫入條件亦可如圖3(e)所示,為一藉由和第1寫入條件同樣的閾值電壓分布範圍來對記憶體單元MT寫入資料之條件,第2寫入處理除了瞄準讀出位準Vrd附近來寫入以外亦可為一和第1寫入處理同樣之寫入處理。亦即,藉由第2寫入條件而形成的閾值電壓分布(例如閾值電壓分布“P1”),會形成具有橫跨讀出位準Vrd且和第1寫入條件的閾值電壓分布範圍(例如圖3(a)所示閾值電壓分布“P”的電壓範圍ΔVp)大略相等之電壓範圍(例如圖3(e)所示閾值電壓分布“P1”的電壓範圍ΔVp1≒ΔVp)的閾值電壓分布之寫入條件。
此時,對各記憶體單元MT之第2寫入處理,可藉由ISPP方式來進行,即,一面使施加至字元線的寫入電壓增加一面交互反覆寫入動作與驗證動作,直到以驗證位準Vf3通過驗證。驗證位準Vf3,為比讀出位準Vrd還低了藉由第1寫入條件形成的閾值電壓分布的電壓範圍的大略一半的電壓份之位準。藉此,閾值電壓分布“P1”可被適當地調整。閾值電壓分布“P1”中的最低的閾值電壓(大略等於驗證位準Vf3),比閾值電壓分布“E”中的最高的閾值電壓(參照圖3(a))還低。閾值電壓分布“P1”中的最高的閾值電壓,比閾值電壓分布“P”中的最低的閾值電壓(大略等於驗證位準Vf1)還高。
另,記憶第1值的複數個記憶體單元,不限於處於抹除狀態的記憶體單元。亦可將被寫入了特定的資料的複數個記憶體單元訂為記憶第1值的複數個記憶體單元。在此情形下同樣,第2值為於與閾值電壓之關係中和第1值鄰接之值。例如,藉由多層單元(MLC)模式的寫入處理而形成的4個閾值電壓分布“E”,“A”,“B”,“C”當中,亦可對橫跨剔除處於抹除狀態的閾值電壓分布“E”之鄰接的2個閾值電壓分布的閾值電壓範圍進行粗略的寫入動作,而藉由鄰接的2個閾值電壓分布之間的讀出電壓進行讀出動作。當2個閾值電壓分布為閾值電壓分布“A”,“B”的情形下,例如第1值為“10”,第2值為“00”。當2個閾值電壓分布為閾值電壓分布“B”,“C”的情形下,例如第1值為“00”,第2值為“01”。
記憶體控制器2,如圖4所示亦可進行複數次從自然亂數產生區域3b讀出資料之讀出處理。圖4為非揮發性記憶體3的亂數生成動作示意圖,示例從被劃分給自然亂數產生區域3b的區塊A複數次讀出資料之動作。圖4中,示例對區塊A進行粗略的寫入(Rough Write)動作後進行4次的讀出動作之情形。第1次從區塊A被讀出的資料(Read data),成為「b0010111011101110…」。第2次從區塊A被讀出的資料(Read data),成為「b0001101011001111…」。第3次從區塊A被讀出的資料(Read data),成為「b1010101011101100…」。第4次從區塊A被讀出的資料(Read data),成為「b1110111001101101…」。如圖4所示,從自然亂數產生區域3b被讀出的資料,除了空間的隨機性外還包含時間的隨機性。因此,藉由將複數次的讀出結果整合,仍能夠生成自然亂數。
另,每次讀出時被讀出的資料會變化的理由,不僅是因為在0與1的判定閾值電壓(亦即讀出位準Vrd)附近寫入,還包含各記憶體單元會受到資料保持能力(data retention)與寫入干擾(program disturb)與讀取干擾(read disturb)之影響。資料保持能力,為隨時間經過而對象記憶體單元的資料變化之現象。寫入干擾,為由於對連接至寫入對象記憶體單元附近的記憶體單元之字元線或位元線施加電壓而該記憶體單元的資料變化之現象。讀取干擾,為由於對連接至讀取對象記憶體單元附近的記憶體單元之字元線施加電壓而該記憶體單元的資料變化之現象。非揮發性記憶體3中的這些特性(亦即資料保持能力、寫入干擾、讀取干擾),係包含自然現象所造成之隨機性,故能夠利用它們來生成自然亂數。
接著,運用圖5說明用來生成自然亂數之記憶體系統的動作。圖5為記憶體系統的動作示意流程圖。
記憶體控制器2,從非揮發性記憶體3的自然亂數產生區域3b選擇寫入對象的區塊(對象區塊),核對對象區塊的狀態(S1)。記憶體控制器2,亦可藉由從管理資訊存儲區域3c讀出區塊管理資訊3c4而參照區塊管理資訊3c4,來核對對象區塊的狀態。記憶體控制器2,判斷對於對象區塊是否未寫入自然亂數產生用的資料(例如全部“0”)(S2)。
記憶體控制器2,若資料未寫入至對象區塊(S2中「Yes」),則藉由第2寫入處理寫入資料至對象區塊(S3)。記憶體控制器2,若資料已被寫入至對象區塊(S2中「No」),則跳過步驟S3。記憶體控制器2,藉由運用特定的讀出位準之讀出處理從對象區塊讀出資料,保持讀出結果(S4)。記憶體控制器2,運用步驟S4中保持的讀出結果作為自然亂數而進行規定的處理(S5)。
像以上這樣,實施形態中,於記憶體系統1中是令非揮發性記憶體3本身動作成為自然亂數產生器。藉此,能夠兼顧系統成本的抑制與亂數隨機性的提升。
另,實施形態中,於記憶體系統1中作為亂數是獲得利用自然現象的隨機性之自然亂數,而非偽亂數。自然亂數的熵高,因此比起偽亂數能夠生成更沒有型態(pattern)的亂數。自然亂數適合加密處理。
例如,藉由圖5的步驟S5而進行之規定的處理,亦可為加密處理。此時,記憶體系統1中的記憶體控制器2,功能上可如圖6所示般構成。圖6為實施形態之第1變形例中用來進行運用亂數的加密處理的構成示意圖。
記憶體控制器2,具有亂數生成模組2a、區塊管理模組2b、認證模組2c、及加密模組2d。
區塊管理模組2b,能夠從管理資訊存儲區域3c讀出區塊管理資訊3c4,管理非揮發性記憶體3中的複數個區塊。區塊管理模組2b,藉由區塊管理資訊3c4,能夠掌握哪一區塊分別被劃分給儲存區域3a、自然亂數產生區域3b、管理資訊存儲區域3c。
亂數生成模組2a,詢問區塊管理模組2b,辨明被劃分給自然亂數產生區域3b的區塊。亂數生成模組2a,進行圖5所示之處理,獲得自然亂數。亂數生成模組2a,將獲得的自然亂數供給至加密模組2d。
認證模組2c,當主機4連接至記憶體系統1時或從初次從主機4往記憶體系統1送出主機4的識別資訊時等,會認證主機4。認證模組2c中,亦可設定有記錄著可連接的主機的識別資訊之主機管理資訊。認證模組2c,判斷主機管理資訊中是否包含從主機4接收到的主機4的識別資訊,若主機管理資訊中包含主機4的識別資訊則判斷主機4為可信任的主機。
認證模組2c,一旦從主機4接收主機4的識別資訊與主機寫入指令,便根據主機4的識別資訊來認證主機4。主機寫入指令,包含寫入要求與寫入資料。一旦主機4的認證成功,認證模組2c將主機寫入指令供給至加密模組2d。
加密模組2d,從亂數生成模組2a接受自然亂數,從認證模組2c接受主機寫入指令。加密模組2d,運用自然亂數生成用來加密之鍵資訊2d1。鍵資訊2d1,是運用自然亂數而生成,能夠做成隨機性高的型樣。鍵資訊2d1,包含加密鍵。加密模組2d,將主機寫入指令中包含的寫入資料藉由鍵資訊2d1加密,令被加密的資料寫入到儲存區域3a。
認證模組2c,一旦從主機4接收主機4的識別資訊與主機讀取指令,便根據主機4的識別資訊來認證主機4。一旦主機4的認證成功,認證模組2c將主機讀取指令供給至加密模組2d。
加密模組2d,根據主機讀取指令從儲存區域3a讀出被加密的資料。加密模組2d,將被加密的資料藉由鍵資訊2d1解碼,將被解碼的資料供給到認證模組2c。
認證模組2c,將被解碼的資料送給主機4。
像這樣,於記憶體系統1中,若令非揮發性記憶體3本身動作成為自然亂數產生器而生成自然亂數(真亂數),便能夠使用適合加密之真亂數,能夠提升加密的可靠性。
除加密外,還有各式各樣若使用真亂數則有助改善記憶體系統1的功能之事項。例如,當記憶體系統1為SSD(Solid State Drive)的情形下,如圖7所示,有時會藉由複數個記憶體系統1-A~1-D來組建RAID(Redundant Arrays of Inexpensive Disks;容錯式磁碟陣列)系統100。圖7為實施形態之第2變形例之包含記憶體系統1的RAID系統100中的內部讀取處理的執行時間點示意圖。
例如,藉由圖5的步驟S5而進行之規定的處理,亦可為排定內部讀取處理的時間點之處理。此時,可設想對各記憶體系統1的內部讀取處理(例如巡查讀取(patrol read)處理)的排程加上隨機性。所謂巡查讀取(patrol read)處理,為讀出記憶體系統1的非揮發性記憶體3中記錄的資料,而用來定期地檢測錯誤是否有增加之處理。當藉由相同模型的記憶體系統1來組建RAID系統100而使用的情形下,若全記憶體系統1-A~1-D同時進行巡查讀取,則對於主機指令,RAID系統100全體而言效能會變差。為避免此事,利用在各記憶體系統1生成的自然亂數來生成時間點資訊,遵照該時間點資訊來錯開進行巡查讀取處理的時間點。
此時,各記憶體系統1中的記憶體控制器2,功能上可如圖8所示般構成。圖8為實施形態之第2變形例中用來進行運用亂數的內部讀取處理的構成示意圖。
記憶體控制器2,具有亂數生成模組2a、區塊管理模組2b、內部讀取管理模組2e、及指令處理模組2f。
區塊管理模組2b,能夠從管理資訊存儲區域3c讀出區塊管理資訊3c4,管理非揮發性記憶體3中的複數個區塊。區塊管理模組2b,根據區塊管理資訊3c4,能夠掌握哪一區塊分別被劃分給儲存區域3a、自然亂數產生區域3b、管理資訊存儲區域3c。
亂數生成模組2a,詢問區塊管理模組2b,辨明被劃分給自然亂數產生區域3b的區塊。亂數生成模組2a,進行圖5所示之處理,獲得自然亂數。亂數生成模組2a,將獲得的自然亂數供給至內部讀取管理模組2e。
內部讀取管理模組2e,從亂數生成模組2a接受自然亂數。內部讀取管理模組2e,運用自然亂數生成用來決定內部讀取處理的執行時間點之時間點資訊2e1。時間點資訊2e1,是運用自然亂數而生成,能夠做成隨機性高的型態。時間點資訊2e1,例如亦可為計時器的計數目標值。
例如,RAID系統100中的各記憶體系統1的內部讀取管理模組2e同時開始計時器的計數,在計時器的計數值和時間點資訊2e1所示的計數目標值一致之時間點進行內部讀取處理(例如巡查讀取處理)。藉此,針對圖7所示般的複數個記憶體系統1-A~1-D相互便能在隨機的時間點進行內部讀取處理。圖7的情形下,複數個記憶體系統1-A~1-D於時間t1前後在相互相異的時間點執行內部讀取處理。複數個記憶體系統1-A~1-D於時間t2前後在相互相異的時間點執行內部讀取處理。複數個記憶體系統1-A~1-D於時間t3前後在相互相異的時間點執行內部讀取處理。
各記憶體系統1中,一旦內部讀取處理完成,內部讀取管理模組2e亦可將內部讀取處理的完成通知給指令處理模組2f。藉此,指令處理模組2f便成為可執行主機指令的狀態。指令處理模組2f,能夠從主機4接收主機指令,執行接收到的主機指令。
像這樣,當藉由複數個記憶體系統1組建RAID系統100的情形下,對各記憶體系統1的內部讀取處理(例如巡查讀取處理)的排程加入隨機性,藉此便能全體性地提升包含複數個記憶體系統1之RAID系統100的效能。
雖已說明了本發明的幾個實施形態,但該些實施形態僅是提出作為例子,並非意圖限定發明之範圍。該些新穎的實施形態,可以其他各種形態來實施,在不脫離發明要旨之範圍內,可進行種種省略、置換、變更。該些實施形態或其變形,均包含於發明之範圍或要旨中,且包含於申請專利範圍所記載之發明及其均等範圍內。
1,1-A~1-D:記憶體系統
2:記憶體控制器
3:非揮發性記憶體
4:主機
100:RAID系統
[圖1]為實施形態之記憶體系統的構成示意圖。
[圖2]為實施形態中的非揮發性記憶體的構成及動作示意圖。
[圖3(a)~(e)]為實施形態中的非揮發性記憶體的亂數產生動作示意圖。
[圖4]為實施形態中的非揮發性記憶體的亂數生成動作示意圖。
[圖5]為實施形態之記憶體系統的亂數生成動作示意流程圖。
[圖6]為實施形態之第1變形例中用來進行運用亂數的加密處理的構成示意圖。
[圖7]為實施形態之第2變形例之包含記憶體系統的RAID系統中的內部讀取處理的執行時間點示意圖。
[圖8]為實施形態之第2變形例中用來進行運用亂數的內部讀取處理的構成示意圖。
1:記憶體系統
2:記憶體控制器
3:非揮發性記憶體
3a:儲存區域
3b:自然亂數產生區域
3c:管理資訊存儲區域
3c1:寫入控制資訊
3c2:讀出控制資訊
3c3:寫入控制資訊
3c4:區塊管理資訊
4:主機
20:內部匯流排
21:主機介面(I/F)
22:緩衝記憶體
23:控制部
24:RAM(Random Access Memory)
25:記憶體介面(I/F)
26:ECC(Error Check and Correct;錯誤檢查和糾正)部(編碼處理部)