TW202209337A - 記憶體系統及記憶體動作程式 - Google Patents
記憶體系統及記憶體動作程式 Download PDFInfo
- Publication number
- TW202209337A TW202209337A TW110125213A TW110125213A TW202209337A TW 202209337 A TW202209337 A TW 202209337A TW 110125213 A TW110125213 A TW 110125213A TW 110125213 A TW110125213 A TW 110125213A TW 202209337 A TW202209337 A TW 202209337A
- Authority
- TW
- Taiwan
- Prior art keywords
- data
- memory
- random number
- read
- soft error
- Prior art date
Links
- 238000004364 calculation method Methods 0.000 claims description 36
- 230000003446 memory effect Effects 0.000 claims description 4
- 230000007547 defect Effects 0.000 abstract description 11
- 238000012937 correction Methods 0.000 description 41
- 238000012986 modification Methods 0.000 description 35
- 230000004048 modification Effects 0.000 description 35
- 238000010586 diagram Methods 0.000 description 12
- 230000006870 function Effects 0.000 description 11
- 230000010365 information processing Effects 0.000 description 7
- 230000008859 change Effects 0.000 description 6
- 230000000694 effects Effects 0.000 description 6
- 238000000034 method Methods 0.000 description 5
- 230000001960 triggered effect Effects 0.000 description 4
- 230000005415 magnetization Effects 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 230000008034 disappearance Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/10—Test algorithms, e.g. memory scan [MScan] algorithms; Test patterns, e.g. checkerboard patterns
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/02—Detection or location of defective auxiliary circuits, e.g. defective refresh counters
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/2205—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested
- G06F11/2215—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested to test error correction or detection circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/44—Indication or identification of errors, e.g. for repair
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/52—Protection of memory contents; Detection of errors in memory contents
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C2029/0411—Online error correction
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- For Increasing The Reliability Of Semiconductor Memories (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
Abstract
本揭露的一側面所述之記憶體系統係具備:軟性錯誤產生部,係藉由使用亂數而生成有考慮到機率不良的寫入資料或讀出資料。
Description
本揭露係有關於記憶體系統及記憶體動作程式。
於非揮發性記憶胞陣列中,某個非揮發性記憶體發生斷線、或短路等情況下,從該非揮發性記憶體所讀出的資料會變成總是相同的值。如此的位址固有之不良,稱作固定不良(硬性不良)。在先前中,關於重現硬性不良的錯誤產生器之發明,係已被提出(例如參照專利文獻1~3)。
[先前技術文獻]
[專利文獻]
[專利文獻1]日本特開2008-090646號公報
[專利文獻2]日本特開2008-181609號公報
[專利文獻3]日本特開2008-217848號公報
可是,在非揮發性記憶胞陣列中,在以同一條件反覆進行寫入的情況下,極為罕見地,會有無法對電阻變化元件進行正確寫入的情況。此種不良稱作機率不良(軟性錯誤)。在上記專利文獻1~3所記載的發明中,無法重現此種軟性錯誤,而會有無法進行對軟性錯誤的訂正機能之驗證的問題。因此,提供可重現軟性錯誤的記憶體系統及記憶體動作程式,是被人們所需求。
本揭露的第1側面所述之記憶體系統係具備:軟性錯誤產生部,係藉由使用亂數而生成有考慮到機率不良的寫入資料或讀出資料。
本揭露的第2側面所述之記憶體動作程式,係令電腦執行:藉由使用亂數而生成有考慮到機率不良的寫入資料或讀出資料之步驟。
在本揭露的第1側面所述之記憶體系統、及本揭露的第2側面所述之記憶體動作程式中,係藉由使用亂數,而會生成有考慮到機率不良的寫入資料或讀出資料。此處,錯誤的發生與否,是隨著亂數而隨機變化。因此,錯誤發生會變成隨機性,而可重現軟性錯誤。
本揭露的第3側面所述之記憶體系統,具備:係第1軟性錯誤產生部、和第2軟性錯誤產生部。第1軟性錯誤產生部,係藉由使用第1亂數而生成有考慮到機率不良的寫入資料。第2軟性錯誤產生部,係藉由使用第2亂數而生成有考慮到機率不良的讀出資料。
本揭露的第4側面所述之記憶體動作程式,係令電腦執行:藉由使用第1亂數而生成有考慮到機率不良的寫入資料之步驟;和藉由使用第2亂數而生成有考慮到機率不良的讀出資料之步驟。
在本揭露的第3側面所述之記憶體系統、及本揭露的第4側面所述之記憶體動作程式中,係藉由使用第1亂數而會生成有考慮到機率不良的寫入資料,藉由使用第2亂數而會生成有考慮到機率不良的讀出資料。此處,錯誤的發生與否,是隨著亂數而隨機變化。因此,錯誤發生會變成隨機性,而可重現軟性錯誤。
以下,關於實施本揭露所需之形態,參照圖式來詳細說明本發明的實施形態。此外,於本說明書及圖式中,關於實質上具有同一機能構成的構成要素,係標示同一符號而省略重複說明。
<實施形態>
[構成]
圖1係表示一實施形態所述之資訊處理系統的機能區塊之一例。此資訊處理系統係具備主機電腦100及記憶部200。記憶部200係具備:記憶體控制器300、1或複數個記憶胞陣列單元400及電源部500。此外,圖1中係例示,1個記憶胞陣列單元400被配設的樣子。
(主機電腦100)
主機電腦100係控制記憶部200。具體而言,主機電腦100,係發行用以指定存取目的地之邏輯位址的指令,然後將該指令或資料,供給至記憶部200。主機電腦100,係將從記憶部200所輸出的資料,予以收取。此處,指令,係用來控制記憶部200所需,包含例如:用來指示資料之寫入處理的寫入指令、用來指示資料之讀出處理的讀取指令、或指示資料之抹除處理的重置指令。又,邏輯位址,係在主機電腦100所定義的位址空間中,由主機電腦100存取記憶部200之際的存取單位之每一領域所被指派的位址。
(記憶體控制器300)
記憶體控制器300係控制1或複數個記憶胞陣列單元400。記憶體控制器300,係從主機電腦100,收取用來指定邏輯位址的寫入指令。又,記憶體控制器300,係依照寫入指令,來執行資料的寫入處理。該寫入處理中,邏輯位址係被轉換成實體位址,對該實體位址寫入資料。此處,實體位址,係對記憶體控制器300存取1或複數個記憶胞陣列單元400之際的每一存取單位,於1或複數個記憶胞陣列單元400中所被指派的位址。記憶體控制器300,係一旦收取用來指定邏輯位址的讀取指令,則將該邏輯位址轉換成實體位址,從該實體位址讀出資料。然後,記憶體控制器300,係將已讀出之資料當作讀取資料而輸出至主機電腦100。又,記憶體控制器300,係一旦從主機電腦100,接收到用來指定邏輯位址的重置指令,則將該邏輯位址轉換成實體位址,將該實體位址上已被寫入之資料予以抹除。
(電源部500)
電源部500係對1或複數個記憶胞陣列單元400供給所望的電壓。電源部500,係例如對後述的字組線選擇部22,供給寫入時或讀出時所使用的電壓等。電源部500,係例如對後述的指令控制部23,供給寫入時或讀出時所使用的電壓等。
(記憶胞陣列單元400)
接著,說明記憶胞陣列單元400。圖2係表示記憶胞陣列單元400的機能區塊之一例。記憶胞陣列單元400,係由例如半導體晶片所構成。記憶胞陣列單元400係具有例如:記憶胞陣列10及驅動部20。驅動部20係例如,與記憶體控制器300之間交換指令、寫入資料及讀取資料等。驅動部20係例如,依照寫入指令,而對記憶胞陣列10將資料予以寫入,並依照讀取指令,而從記憶胞陣列10將資料予以讀出。
驅動部20係相當於本揭露的「記憶體系統」「記憶體動作程式」之一具體例。在驅動部20是相當於本揭露的「記憶體系統」之一具體例的情況下,則驅動部20係藉由實現驅動部20之機能的硬體而被構成。在驅動部20是相當於本揭露的「記憶體動作程式」之一具體例的情況下,則驅動部20係例如,被儲存在DRAM(Dynamic Random Access Memory)等之揮發性記憶體、或EEPROM (Electrically Erasable Programmable Read-Only Memory)或快閃記憶體等之非揮發性記憶體中,藉由在CPU(Central Processing Unit)中載入驅動部20,而由CPU來實現驅動部20之機能。
(記憶胞陣列10)
記憶胞陣列10係為例如,所謂的STT-MRAM(Spin Transfer Torque Magnetic Random Access Memory)。記憶胞陣列10,係具有複數個記憶胞MC。記憶胞MC係含有:電阻變化元件、和控制電阻變化元件中所流通之電流的開關元件。
電阻變化元件係為例如,含有磁穿隧接合的記憶元件。電阻變化元件係例如,具有固定層(RL)及自由層(FL),在固定層(RL)與自由層(FL)之間具有極薄的穿隧絕緣膜層。在電阻變化元件中,藉由改變自由層(FL)的磁化之方向,就可抹寫所記憶的資料(電阻值)。在電阻變化元件中,在自由層(FL)的磁化之方向改變時,自旋之方向為對齊的電子,就會被注入至磁氣電阻變化元件MTJ。注入電子的自旋係與自由層(FL)的電子自旋呈相反方向,因此注入電子的自旋所致之力矩就會成為撥動自由層(FL)之電子自旋的力矩,最終,自由層(FL)的電子自旋之方向就會被反轉(磁化反轉)。
記憶胞陣列10係具有例如:複數條字組線WL、複數條位元線BL、在字組線WL與位元線BL彼此對向之每一位置上分別被配置1個的複數個記憶胞MC、和複數條源極線SL。在記憶胞陣列10中,可對藉由來自外部之位址輸入而被指定的記憶胞MC,寫入資料。又,可將藉由位址輸入而被指定的記憶胞MC中所被記憶之資料,予以讀出。記憶胞MC中所被記憶的資料值係以電阻變化元件的電阻狀態而被區別。例如,若為高電阻狀態則被區別成「1」,若為低電阻狀態則被區別成「0」。此外,對於邏輯資料的物理狀態係不限定於上記,亦可為例如,若為高電阻狀態則被區別成「0」,若為低電阻狀態則被區別成「1」。又,對於邏輯資料的物理狀態係亦可隨著每一位址而改變。
(驅動部20)
接著,說明驅動部20。驅動部20係例如,如圖2所示,具有:位址控制部21、字組線選擇部22、指令控制部23、軟性錯誤產生器24、寫入控制部25、位元線選擇部26及讀出控制部27。
位址控制部21,係將從位址線所被輸入之行位址所相應的控制訊號,輸出至字組線選擇部22,同時,將從位址線所被輸入之列位址所相應的控制訊號,輸出至位元線選擇部26。位址控制部21,係對字組線選擇部22及位元線選擇部26輸出,用來控制變更輸出電壓之時序的訊號。字組線選擇部22係含有:在進行寫入、讀出或重置的動作之際,以寫入、讀出或重置的動作上所必須之所定之電壓來驅動各字組線WL的電路。字組線選擇部22,係被連接至記憶胞陣列10的各字組線WL,將從位址線所被輸入之行位址所相應的字組線WL,加以選擇。字組線選擇部22,係對已選擇之字組線WL,將寫入、讀出或重置的動作上所必須之所定之電壓,予以輸出。
位元線選擇部26係含有:在進行資料「0」的寫入動作之際,例如,進行將記憶胞MC的電阻變化元件之狀態從高電阻狀態或是低電阻狀態變成低電阻狀態的動作之際,將寫入資料「0」的記憶胞MC上所被連接的位元線BL以資料「0」的寫入動作上所必須之所定之電壓進行驅動的電路。位元線選擇部26係還含有:在進行資料「1」的寫入動作之際,例如,進行將記憶胞MC的電阻變化元件之狀態從高電阻狀態或是低電阻狀態變成高電阻狀態的動作之際,將寫入資料「1」的記憶胞MC上所被連接的位元線BL以資料「1」的寫入動作上所必須之所定之電壓進行驅動的電路。位元線選擇部26,係還含有:在進行資料的讀出動作之際,將讀出資料的記憶胞MC上所被連接的位元線BL以不會發生資料抹寫的所定之電壓進行驅動的電路。
位元線選擇部26,係被連接至記憶胞陣列10的各位元線BL,藉由從位址線所被輸入之列位址,而選擇對應的位元線BL。位元線選擇部26,係對已選擇之位元線BL,將寫入、讀出或重置的動作上所必須之所定之電壓,予以輸出。
指令控制部23,係隨應於所被輸入之指令,來控制字組線選擇部22、軟性錯誤產生器24、寫入控制部25及讀出控制部27。例如,在寫入指令被輸入的情況下,則指令控制部23,係對軟性錯誤產生器24,指示生成含有軟性錯誤的寫入資料Dw。軟性錯誤產生器24,係基於從記憶體控制器300所被輸入之資料(輸入資料Din),而生成含有軟性錯誤的寫入資料Dw。
指令控制部23,係還對寫入控制部25指示,將從軟性錯誤產生器24所被輸入之寫入資料Dw,在所定之時序上,輸出至位元線選擇部26,並對字組線選擇部22指示,在所定之時序上掃描記憶胞陣列10。寫入控制部25,係將從軟性錯誤產生器24所被輸入之寫入資料Dw,在所定之時序上,輸出至位元線選擇部26。指令控制部23,係還對讀出控制部27指示,將已寫入之資料,從記憶胞陣列10予以讀出。讀出控制部27,係將已讀出之資料(讀出資料Dr),當作輸出資料Dout而輸出至記憶體控制器300。
圖3係表示軟性錯誤產生器24的機能區塊之一例。軟性錯誤產生器24係例如,如圖3所示,具有:亂數產生器24a、機率不良暫存器24b、MOD演算器24c、XOR演算器24d。
亂數產生器24a,係以寫入指令WC之取得為觸發而產生亂數D1。亂數產生器24a係例如,以日本特開2001-344094所記載之方法,來產生亂數D1。機率不良暫存器24b,係為被規定了軟性錯誤生成所需之暫存器值D2的暫存器。暫存器值D2,係為機率不良暫存器24b中所被儲存的固定值。MOD演算器24c,係使用亂數產生器24a所生成的亂數D1、與從機率不良暫存器24b所讀出的暫存器值D2來進行餘數演算(D1%D2),將藉此所得之餘數D3,輸出至XOR演算器24d。XOR演算器24d,係對從MOD演算器24c所被輸入之餘數D3、與從記憶體控制器300所被輸入之資料(輸入資料Din),進行XOR演算,將藉此所得之值當作寫入資料Dw而輸出至寫入控制部25。寫入資料Dw中,係會有含軟性錯誤的情況,也會有不含軟性錯誤的情況。寫入資料Dw中不含軟性錯誤的情況下,則寫入資料Dw,係等於輸入資料Din。亦即,寫入資料Dw,係可說是有考慮到機率不良的資料。
接著說明,記憶胞陣列單元400中的寫入動作。圖4係表示,記憶胞陣列單元400中的寫入動作之一例。首先,亂數產生器24a,係一旦從記憶體控制器300 (指令控制部23)取得了寫入指令WC,就以寫入指令WC之取得為觸發而產生亂數D1(步驟S101、S102)。接著,MOD演算器24c,係使用亂數產生器24a所生成的亂數D1、與從機率不良暫存器24b所讀出的暫存器值D2,來進行餘數演算(D1%D2)(步驟S103)。其結果為,獲得餘數D3。MOD演算器24c,係將所得到的餘數D3,輸出至XOR演算器24d。
XOR演算器24d,係一旦從MOD演算器24c取得了餘數D3,就以餘數D3之取得為觸發而進行XOR演算(步驟S104)。具體而言,XOR演算器24d,係對從MOD演算器24c所被輸入之餘數D3、與從記憶體控制器300所被輸入之資料(輸入資料Din),進行XOR演算。XOR演算器24d,係將藉此所得之值,當作寫入資料Dw而輸出至寫入控制部25。
寫入控制部25,係將從軟性錯誤產生器24所被輸入之寫入資料Dw,在所定之時序上,輸出至位元線選擇部26。字組線選擇部22及位元線選擇部26,係依照位址控制部21所致之時序控制及施加電壓控制,而將寫入資料Dw,記憶在記憶胞陣列10的所定之位址(步驟S105)。其後,位元線選擇部26,係因應需要,而從記憶胞陣列10的所定之位址,讀出寫入資料Dw。讀出控制部27,係將已被位元線選擇部26所獲得的寫入資料Dw,當作輸出資料Dout而輸出至記憶體控制器300。如此一來,記憶胞陣列單元400中的寫入動作就被進行。
[效果]
接著說明,本實施形態所述之資訊處理系統的效果。
於非揮發性記憶胞陣列中,某個非揮發性記憶體發生斷線、或短路等情況下,從該非揮發性記憶體所讀出的資料會變成總是相同的值。如此的位址固有之不良,稱作固定不良(硬性不良)。在先前中,關於重現硬性不良的錯誤產生器之發明,係已在上記專利文獻1~3中被提出。
可是,在非揮發性記憶胞陣列中,在以同一條件反覆進行寫入的情況下,極為罕見地,會有無法對電阻變化元件進行正確寫入的情況。此種不良稱作機率不良(軟性錯誤)。在上記專利文獻1~3所記載的發明中,無法重現此種軟性錯誤,而會有無法驗證針對軟性錯誤之訂正機能的問題。
另一方面,在本實施形態中,係藉由使用亂數D1,而會生成有考慮到軟性錯誤的寫入資料Dw。此處,錯誤的發生與否,是隨著亂數D1而隨機變化。因此,錯誤發生會是機率性地,可重現軟性錯誤。因此,可重現對記憶胞陣列10的寫入之成功機率。此外,例如,將如此所被生成的寫入資料Dw記憶至記憶胞陣列10,其後,可再次利用從記憶胞陣列10所讀出之寫入資料Dw,來進行對軟性錯誤的訂正機能之驗證。
又,在本實施形態中,會使用亂數D1與暫存器值D2(固定值)來進行餘數演算,會使用藉此所得之餘數D3、與輸入資料Din來生成寫入資料Dw。藉此,可使錯誤發生是被機率性地產生,可重現軟性錯誤。
又,在本實施形態中,會使用餘數D3與輸入資料Din來進行XOR演算,藉此所得之值就會成為寫入資料Dw。藉此,可使錯誤發生是被機率性地產生,可重現軟性錯誤。
<變形例>
接著說明,上記實施形態所述之資訊處理系統的變形例。
[變形例A]
圖5係表示上記實施形態所述之記憶胞陣列單元400之一變形例。在本變形例中,係於上記實施形態所述之記憶胞陣列單元400中,省略了軟性錯誤產生器24,而追加了軟性錯誤產生器28及寫回控制部29。
圖6係表示軟性錯誤產生器28的機能區塊之一例。軟性錯誤產生器28係例如,如圖6所示,具有:亂數產生器28a、機率不良暫存器28b、MOD演算器28c、XOR演算器28d。
亂數產生器28a,係以讀取指令RC之取得為觸發而產生亂數D4。亂數產生器28a係例如,以日本特開2001-344094所記載之方法,來產生亂數D4。機率不良暫存器28b,係為被規定了軟性錯誤生成所需之暫存器值D5的暫存器。MOD演算器28c,係使用亂數產生器28a所生成的亂數D4、與從機率不良暫存器28b所讀出的暫存器值D5來進行餘數演算(D4%D5),將藉此所得之餘數D6,輸出至XOR演算器28d。XOR演算器28d,係對從MOD演算器28c所被輸入之餘數D6、與藉由位元線選擇部26而從記憶胞陣列10所被讀出的資料(讀出資料Dr1),進行XOR演算,將藉此所得之值當作讀出資料Dr2而輸出至讀出控制部27。讀出資料Dr2中,係會有含軟性錯誤的情況,也會有不含軟性錯誤的情況。讀出資料Dr2中不含軟性錯誤的情況下,則讀出資料Dr2,係等於讀出資料Dr1。
讀出資料Dr1,係為藉由驅動部20而被寫入至記憶胞陣列10的資料。讀出資料Dr1係為例如,從記憶體控制器300所被輸入的輸入資料Din。
在本變形例中,讀出控制部27,係將從軟性錯誤產生器28所被輸入之資料(讀出資料Dr2),當作輸出資料Dout而輸出至記憶體控制器300。寫回控制部29,係將從軟性錯誤產生器28所被輸出之資料(讀出資料Dr2),輸出至寫入控制部25。寫入控制部25,係一旦從寫回控制部29被輸入了讀出資料Dr2,就以讀出資料Dr2之取得為觸發,而將讀出資料Dr2,以覆寫至讀出資料Dr1的方式,而寫入至記憶胞陣列。
接著說明,記憶胞陣列單元400中的讀出動作。圖7係表示,記憶胞陣列單元400中的讀出動作之一例。首先,亂數產生器28a,係一旦從記憶體控制器300 (指令控制部23)取得了讀取指令RC,就以讀取指令RC之取得為觸發而產生亂數D4(步驟S201、S202)。接著,MOD演算器28c,係使用亂數產生器28a所生成的亂數D4、與從機率不良暫存器28b所讀出的暫存器值D5,來進行餘數演算(D4%D5)(步驟S203)。其結果為,獲得餘數D6。MOD演算器28c,係將所得到的餘數D4,輸出至XOR演算器28d。
XOR演算器28d,係一旦從MOD演算器28c取得了餘數D6,就以餘數D6之取得為觸發而進行XOR演算(步驟S204)。具體而言,XOR演算器28d,係對從MOD演算器28c所被輸入之餘數D6、與藉由位元線選擇部26而從記憶胞陣列10所被讀出之資料(讀出資料Dr1),進行XOR演算。XOR演算器28d,係將藉此所得之值,當作讀出資料Dr2而輸出至讀出控制部27及寫回控制部29。
讀出控制部27,係將從軟性錯誤產生器28所被輸入之資料(讀出資料Dr2),當作輸出資料Dout而輸出至記憶體控制器300(步驟S205)。寫回控制部29,係將從軟性錯誤產生器28所被輸入之資料(讀出資料Dr2),輸出至寫入控制部25。寫入控制部25,係一旦從寫回控制部29被輸入了讀出資料Dr2,就以讀出資料Dr2之取得為觸發,而將讀出資料Dr2,以覆寫至讀出資料Dr1的方式,而寫入至記憶胞陣列10。藉此,讀出資料Dr2之寫回就被進行(步驟S206)。如此一來,記憶胞陣列單元400中的讀出動作就被進行。
在本變形例中,藉由使用亂數D4而會生成有考慮到軟性錯誤的讀出資料Dr2。此處,錯誤的發生與否,是隨著亂數D4而隨機變化。因此,錯誤發生會是機率性地,可重現軟性錯誤。因此,記憶胞陣列10中的保持資料的消失機率、與從記憶胞陣列10讀出保持資料之際起因於記憶胞陣列10中所流通之讀出電流的誤寫入之機率,都可加以重現。順便一提,軟性錯誤之1者,亦即因為外部擾亂(例如外部磁場等)而導致發生資料損毀的情況下,藉由再次執行讀出動作,是無法消除軟性錯誤。另一方面,在本變形例中,錯誤已被訂正的正確之資料,會被寫入至記憶胞陣列10。藉此,可消除軟性錯誤。
又,在本變形例中,會使用亂數D4與暫存器值D5(固定值)來進行餘數演算,會使用藉此所得之餘數D6、讀出資料Dr1來生成讀出資料Dr2。藉此,可使錯誤發生是被機率性地產生,可重現軟性錯誤。
又,在本變形例中,會使用餘數D6與讀出資料Dr1來進行XOR演算,藉此所得之值會成為讀出資料Dr2。藉此,可使錯誤發生是被機率性地產生,可重現軟性錯誤。
又,在本變形例中,讀出資料Dr2,係會以覆寫至讀出資料Dr1的方式,而被寫入至記憶胞陣列10。藉此,可再次從記憶胞陣列10讀出讀出資料Dr2,利用已讀出之讀出資料Dr2,來進行對軟性錯誤的訂正機能之驗證。順便一提,軟性錯誤之1者,亦即因為外部擾亂(例如外部磁場等)而導致發生資料損毀的情況下,藉由再次執行讀出動作,是無法消除軟性錯誤。另一方面,在本變形例中,錯誤已被訂正的正確之資料,會被寫入至記憶胞陣列10。藉此,可消除軟性錯誤。
[變形例B]
圖8係表示上記變形例A所述之記憶胞陣列單元400之一變形例。在本變形例中,係於上記變形例A所述之記憶胞陣列單元400中,追加了軟性錯誤產生器24。
在本變形例中,藉由軟性錯誤產生器24,而會生成可能會含有寫入時之軟性錯誤的資料(寫入資料Dw),已被生成之寫入資料Dw,係藉由寫入控制部25及位元線選擇部26而被記憶至記憶胞陣列10。記憶胞陣列10中所被記憶的寫入資料Dw,是作為讀出資料Dr1而藉由位元線選擇部26從記憶胞陣列10而被讀出。從記憶胞陣列10所被讀出之讀出資料Dr1,係藉由軟性錯誤產生器28,而生成可能會含有讀出時之軟性錯誤的資料(讀出資料Dr2)。
藉此,對記憶胞陣列10的寫入的成功機率、記憶胞陣列10中的保持資料的消失機率、從記憶胞陣列10讀出保持資料之際起因於記憶胞陣列10中所流通之讀出電流的誤寫入之機率,都可加以重現。順便一提,軟性錯誤之1者,亦即因為外部擾亂(例如外部磁場等)而導致發生資料損毀的情況下,藉由再次執行讀出動作,是無法消除軟性錯誤。另一方面,在本變形例中,錯誤已被訂正的正確之資料,會被寫入至記憶胞陣列10。藉此,可消除軟性錯誤。
[變形例C]
圖9係表示將上記變形例A所述之記憶胞陣列單元400予以控制的記憶體控制器300之一變形例。在本變形例中,記憶體控制器300係例如,如圖9所示,具有訂正部31及寫回控制部32。
訂正部31係例如,將從記憶胞陣列單元400 (讀出控制部27)所被輸入之輸出資料Dout、與輸出至記憶胞陣列單元400(寫入控制部25)的輸入資料Din進行比對,以判斷輸出資料Dout中的錯誤之有無。訂正部31,係在判斷為輸出資料Dout中有錯誤的情況下,則例如,使用輸出資料Dout中所含之錯誤訂正碼(例如ECC(Error Correction Code)同位元),來將輸出資料Dout予以訂正。訂正部31,係將藉由訂正所得的資料(訂正資料Dc),輸出至寫回控制部32。寫回控制部32,係將從訂正部31所被輸入之訂正資料Dc,輸出至記憶胞陣列單元400(寫入控制部25)。
寫入控制部25,係一旦從記憶體控制器300而被輸入了訂正資料Dc,就將已被輸入之訂正資料Dc,當作寫入資料Dw而輸出至位元線選擇部26。位元線選擇部26,係將從寫入控制部25所被輸入之寫入資料Dw,以覆寫至讀出資料Dr1的方式而寫入至記憶胞陣列10,藉此以進行訂正寫回。
接著,說明記憶體控制器300中的訂正寫回動作。圖10係表示記憶胞陣列單元400中的讀出動作之一例、與記憶體控制器300中的訂正寫回動作之一例。首先,記憶胞陣列單元400,係執行上述的步驟S201~S206。
接下來,於記憶體控制器300中,訂正部31係例如,將從記憶胞陣列單元400(讀出控制部27)所被輸入之輸出資料Dout、與輸出至記憶胞陣列單元400(寫入控制部25)的輸入資料Din進行比對,以判斷輸出資料Dout中的錯誤之有無(步驟S207)。訂正部31,係在判斷為輸出資料Dout中沒有錯誤的情況下(步驟S207;N),則將訂正寫回動作予以結束,並且將讀出動作予以結束。
另一方面,訂正部31,係在判斷為輸出資料Dout中有錯誤的情況下(步驟S207;Y),則例如,使用輸出資料Dout中所含之錯誤訂正碼,將輸出資料Dout予以訂正,藉此以生成訂正資料Dc(步驟S208)。訂正部31,係將藉由訂正所得的訂正資料Dc,輸出至寫回控制部32。寫回控制部32,係將從訂正部31所被輸入之訂正資料Dc,輸出至記憶胞陣列單元400(寫入控制部25)。
寫入控制部25,係一旦從記憶體控制器300而被輸入了訂正資料Dc,就將已被輸入之訂正資料Dc,當作寫入資料Dw而輸出至位元線選擇部26。位元線選擇部26,係將從寫入控制部25所被輸入之寫入資料Dw,以覆寫至讀出資料Dr1的方式而寫入至記憶胞陣列10,藉此以進行訂正寫回(步驟S209)。
在本變形例中,在輸出資料Dout中有錯誤的情況下,則進行過錯誤訂正的資料(訂正資料Dc),係以覆寫至讀出資料Dr1的方式,而被寫入至記憶胞陣列10。藉此,由於可將沒有軟性錯誤的資料給予至軟性錯誤產生器28,因此例如,可進行對軟性錯誤的訂正機能之驗證。
[變形例D]
圖11係表示上記實施形態所述之記憶胞陣列單元400之一變形例。在本變形例中,係於記憶胞陣列單元400中,省略了軟性錯誤產生器24,而具有與軟性錯誤產生器24相同之機能的軟性錯誤產生器410,是有別於記憶胞陣列單元400而被另外設置。此時,驅動部20及軟性錯誤產生器410係相當於本揭露的「記憶體系統」「記憶體動作程式」之一具體例。
在如此的情況下,對使用者而言為多餘的軟性錯誤產生器410,就不需要搭載於記憶胞陣列單元400中。又,在軟性錯誤產生器410之修正(例如亂數生成演算法之變更)為必要的情況下,就不需要重新製作記憶胞陣列單元400,可降低修正成本。
又,在本變形例中,藉由把軟性錯誤產生器410是有別於記憶胞陣列單元400而另外設置,也可將軟性錯誤產生器410以軟體(程式)來加以構成,將驅動部20以硬體來加以構成。此情況下,例如,使用已被安裝有屬於軟體(程式)的軟性錯誤產生器410的資訊處理裝置,來控制記憶胞陣列單元400的動作。
[變形例E]
圖12係表示上記變形例A所述之記憶胞陣列單元400之一變形例。在本變形例中,係於記憶胞陣列單元400中,省略了軟性錯誤產生器28及寫回控制部29,而具有與軟性錯誤產生器28相同之機能的軟性錯誤產生器420、具有與寫回控制部29相同之機能的寫回控制部430,是有別於記憶胞陣列單元400而被另外設置。此時,驅動部20、軟性錯誤產生器420及寫回控制部430係相當於本揭露的「記憶體系統」「記憶體動作程式」之一具體例。
在如此的情況下,對使用者而言為多餘的軟性錯誤產生器420及寫回控制部430,就不需要搭載於記憶胞陣列單元400中。又,在軟性錯誤產生器420之修正(例如亂數生成演算法之變更)為必要的情況下,就不需要重新製作記憶胞陣列單元400,可降低修正成本。
又,在本變形例中,藉由把軟性錯誤產生器420及寫回控制部430是有別於記憶胞陣列單元400而另外設置,也可將軟性錯誤產生器420及寫回控制部430以軟體(程式)來加以構成,將驅動部20以硬體來加以構成。此情況下,例如,使用已被安裝有屬於軟體(程式)的軟性錯誤產生器420及寫回控制部430的資訊處理裝置,來控制記憶胞陣列單元400的動作。
以上雖然舉出實施形態及其變形例來說明了本揭露,但本揭露係並非限定於上記實施形態等,可作各種變形。在上記實施形態等中,記憶胞陣列10係為STT-MRAM。可是,於上記實施形態等中,記憶胞陣列10亦可為異於STT-MRAM的MRAM,亦可為異於MRAM的非揮發性記憶體。
此外,本說明書中所記載的效果,係僅止於例示。本揭露的效果,並不限定於本說明書中所記載的效果。本揭露係亦可具有,本說明書中所記載之效果以外之效果。
又,例如,本揭露係亦可採取如下之構成。
(1)
一種記憶體系統,係具備:
軟性錯誤產生部,係藉由使用亂數而生成有考慮到機率不良的寫入資料或讀出資料。
(2)
如(1)所記載之記憶體系統,其中,
前記軟性錯誤產生部,係使用亂數與固定值來進行餘數演算,使用藉此所得之餘數、與輸入資料,來生成前記寫入資料。
(3)
如(1)所記載之記憶體系統,其中,
前記軟性錯誤產生部,係使用亂數與固定值來進行餘數演算,使用藉此所得之餘數、與從記憶體所讀出的資料,來生成前記讀出資料。
(4)
如(2)所記載之記憶體系統,其中,
前記軟性錯誤產生部係含有:
亂數產生部,係產生前記亂數;和
暫存器,係被規定了前記固定值;和
第1演算部,係進行前記餘數演算;和
第2演算部,係生成前記寫入資料,
而被構成。
(5)
如(4)所記載之記憶體系統,其中,
前記第2演算部,係使用前記餘數與前記輸入資料來進行XOR演算,將藉此所得之值,當作前記寫入資料。
(6)
如(3)所記載之記憶體系統,其中,
前記軟性錯誤產生部係含有:
亂數產生部,係產生前記亂數;和
暫存器,係被規定了前記固定值;和
第1演算部,係進行前記餘數演算;和
第2演算部,係生成前記讀出資料,
而被構成。
(7)
如(6)所記載之記憶體系統,其中,
前記第2演算部,係使用前記餘數與前記輸入資料來進行XOR演算,將藉此所得之值,當作前記讀出資料。
(8)
如(3)所記載之記憶體系統,其中,
還具備:寫入部,係將前記讀出資料以覆寫至前記記憶體資料的方式而寫入至前記記憶體。
(9)
如(2)所記載之記憶體系統,其中,
還具備:
記憶體;和
寫入控制部,係將前記寫入資料,寫入至前記記憶體。
(10)
如(3)所記載之記憶體系統,其中,
還具備:
前記記憶體;和
寫入控制部,係將前記讀出資料,寫入至前記記憶體;和
讀出控制部,係將前記讀出資料,從前記記憶體予以讀出。
(11)
一種記憶體系統,係具備:
第1軟性錯誤產生部,係藉由使用第1亂數而生成有考慮到機率不良的寫入資料;和
第2軟性錯誤產生部,係藉由使用第2亂數而生成有考慮到機率不良的讀出資料。
(12)
如(11)所記載之記憶體系統,其中,
前記第1軟性錯誤產生部,係使用前記第1亂數與第1固定值來進行餘數演算,使用藉此所得之第1餘數、與輸入資料,來生成前記寫入資料;
前記第2軟性錯誤產生部,係使用前記第2亂數與第2固定值來進行餘數演算,使用藉此所得之第2餘數、與從記憶體所讀出的資料,來生成前記讀出資料。
(13)
一種記憶體動作程式,係令電腦執行:
藉由使用亂數而生成有考慮到機率不良的寫入資料或讀出資料之步驟。
(14)
一種記憶體動作程式,係令電腦執行:
藉由使用第1亂數而生成有考慮到機率不良的寫入資料之步驟;和
藉由使用第2亂數而生成有考慮到機率不良的讀出資料之步驟。
若依據本揭露的第1側面所述之記憶體系統、及本揭露的第2側面所述之記憶體動作程式,則由於是藉由使用亂數而生成有考慮到機率不良的寫入資料或讀出資料,因此錯誤發生會變成隨機性,而可重現軟性錯誤。
若依據本揭露的第3側面所述之記憶體系統、及本揭露的第4側面所述之記憶體動作程式,則由於是藉由使用第1亂數而生成有考慮到機率不良的寫入資料,藉由使用第2亂數而生成有考慮到機率不良的讀出資料,因此錯誤發生會變成隨機性,而可重現軟性錯誤。
本申請案係以在日本國特許廳2020年7月20日申請的日本專利申請號第2020-124039為基礎而主張優先權,該申請案的全部內容係因參照而沿用於本申請案。
只要是當業者,可隨著設計上之要件或其他因素,而想到各種修正、結合、次結合、及變更,但這些係被添附的申請專利範圍或其均等物之範圍所包含,這點必須理解。
10:記憶胞陣列
20:驅動部
21:位址控制部
22:字組線選擇部
23:指令控制部
24:軟性錯誤產生器
24a:亂數產生器
24b:機率不良暫存器
24c:MOD演算器
24d:XOR演算器
25:寫入控制部
26:位元線選擇部
27:讀出控制部
28:軟性錯誤產生器
28a:亂數產生器
28b:機率不良暫存器
28c:MOD演算器
28d:XOR演算器
29:寫回控制部
31:訂正部
32:寫回控制部
100:主機電腦
200:記憶部
300:記憶體控制器
400:記憶胞陣列單元
410:軟性錯誤產生器
420:軟性錯誤產生器
430:寫回控制部
500:電源部
D1:亂數
D2:暫存器值
D3:餘數
D4:亂數
D5:暫存器值
D6:餘數
Dc:訂正資料
Din:輸入資料
Dout:輸出資料
Dr:讀出資料
Dr1:讀出資料
Dr2:讀出資料
Dw:寫入資料
RC:讀取指定
WC:寫入指令
[圖1]一實施形態所述之資訊處理系統的機能區塊之一例的圖示。
[圖2]圖1的記憶胞陣列單元的機能區塊之一例的圖示。
[圖3]圖2的軟性錯誤產生器的機能區塊之一例的圖示。
[圖4]圖1的記憶胞陣列單元中的寫入動作之一例的圖示。
[圖5]圖1的記憶胞陣列單元的機能區塊之一變形例的圖示。
[圖6]圖5的軟性錯誤產生器的機能區塊之一例的圖示。
[圖7]圖5的記憶胞陣列單元中的讀出動作之一例的圖示。
[圖8]圖5的記憶胞陣列單元的機能區塊之一變形例的圖示。
[圖9]將圖5的記憶胞陣列單元予以控制的記憶體控制器之一變形例的圖示。
[圖10]圖9的記憶體控制器中的訂正寫回動作之一例的圖示。
[圖11]圖1的記憶胞陣列單元的機能區塊之一變形例的圖示。
[圖12]圖5的記憶胞陣列單元的機能區塊之一變形例的圖示。
10:記憶胞陣列
20:驅動部
21:位址控制部
22:字組線選擇部
23:指令控制部
24:軟性錯誤產生器
25:寫入控制部
26:位元線選擇部
27:讀出控制部
400:記憶胞陣列單元
Din:輸入資料
Dout:輸出資料
Dr:讀出資料
Dw:寫入資料
Claims (12)
- 一種記憶體系統,係具備: 軟性錯誤產生部,係藉由使用亂數而生成有考慮到機率不良的寫入資料或讀出資料。
- 如請求項1所記載之記憶體系統,其中, 前記軟性錯誤產生部,係使用亂數與固定值來進行餘數演算,使用藉此所得之餘數、與輸入資料,來生成前記寫入資料。
- 如請求項1所記載之記憶體系統,其中, 前記軟性錯誤產生部,係使用亂數與固定值來進行餘數演算,使用藉此所得之餘數、與從記憶體所讀出的資料,來生成前記讀出資料。
- 如請求項2所記載之記憶體系統,其中, 前記軟性錯誤產生部係含有: 亂數產生部,係產生前記亂數;和 暫存器,係被規定了前記固定值;和 第1演算部,係進行前記餘數演算;和 第2演算部,係生成前記寫入資料, 而被構成。
- 如請求項4所記載之記憶體系統,其中, 前記第2演算部,係使用前記餘數與前記輸入資料來進行XOR演算,將藉此所得之值,當作前記寫入資料。
- 如請求項3所記載之記憶體系統,其中, 前記軟性錯誤產生部係含有: 亂數產生部,係產生前記亂數;和 暫存器,係被規定了前記固定值;和 第1演算部,係進行前記餘數演算;和 第2演算部,係生成前記讀出資料, 而被構成。
- 如請求項6所記載之記憶體系統,其中, 前記第2演算部,係使用前記餘數與前記輸入資料來進行XOR演算,將藉此所得之值,當作前記讀出資料。
- 如請求項3所記載之記憶體系統,其中, 還具備:寫入部,係將前記讀出資料以覆寫至前記記憶體資料的方式而寫入至前記記憶體。
- 一種記憶體系統,係具備: 第1軟性錯誤產生部,係藉由使用第1亂數而生成有考慮到機率不良的寫入資料;和 第2軟性錯誤產生部,係藉由使用第2亂數而生成有考慮到機率不良的讀出資料。
- 如請求項9所記載之記憶體系統,其中, 前記第1軟性錯誤產生部,係使用前記第1亂數與第1固定值來進行餘數演算,使用藉此所得之第1餘數、與輸入資料,來生成前記寫入資料; 前記第2軟性錯誤產生部,係使用前記第2亂數與第2固定值來進行餘數演算,使用藉此所得之第2餘數、與從記憶體所讀出的資料,來生成前記讀出資料。
- 一種記憶體動作程式,係令電腦執行: 藉由使用亂數而生成有考慮到機率不良的寫入資料或讀出資料之步驟。
- 一種記憶體動作程式,係令電腦執行: 藉由使用第1亂數而生成有考慮到機率不良的寫入資料之步驟;和 藉由使用第2亂數而生成有考慮到機率不良的讀出資料之步驟。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2020-124039 | 2020-07-20 | ||
JP2020124039A JP2022020504A (ja) | 2020-07-20 | 2020-07-20 | メモリシステムおよびメモリ動作プログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
TW202209337A true TW202209337A (zh) | 2022-03-01 |
Family
ID=79728651
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW110125213A TW202209337A (zh) | 2020-07-20 | 2021-07-09 | 記憶體系統及記憶體動作程式 |
Country Status (5)
Country | Link |
---|---|
US (1) | US20230260587A1 (zh) |
JP (1) | JP2022020504A (zh) |
CN (1) | CN116134425A (zh) |
TW (1) | TW202209337A (zh) |
WO (1) | WO2022018950A1 (zh) |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3940713B2 (ja) * | 2003-09-01 | 2007-07-04 | 株式会社東芝 | 半導体装置 |
JP2012073678A (ja) * | 2010-09-27 | 2012-04-12 | Fujitsu Ltd | 擬似エラー発生装置 |
-
2020
- 2020-07-20 JP JP2020124039A patent/JP2022020504A/ja active Pending
-
2021
- 2021-05-20 WO PCT/JP2021/019164 patent/WO2022018950A1/ja active Application Filing
- 2021-05-20 US US18/005,046 patent/US20230260587A1/en active Pending
- 2021-05-20 CN CN202180060993.XA patent/CN116134425A/zh active Pending
- 2021-07-09 TW TW110125213A patent/TW202209337A/zh unknown
Also Published As
Publication number | Publication date |
---|---|
WO2022018950A1 (ja) | 2022-01-27 |
US20230260587A1 (en) | 2023-08-17 |
CN116134425A (zh) | 2023-05-16 |
JP2022020504A (ja) | 2022-02-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7757153B2 (en) | Multi-bit memory device and memory system | |
US8281221B2 (en) | Operation method of MRAM including correcting data for single-bit error and multi-bit error | |
KR102002925B1 (ko) | 메모리 모듈, 그것을 포함하는 메모리 시스템, 그것의 구동 방법 | |
KR101563647B1 (ko) | 메모리 시스템 및 그것의 데이터 처리 방법 | |
US9262261B2 (en) | Memory devices facilitating differing depths of error detection and/or error correction coverage | |
US7877669B2 (en) | Non-volatile memory with error detection | |
KR100842680B1 (ko) | 플래시 메모리 장치의 오류 정정 컨트롤러 및 그것을포함하는 메모리 시스템 | |
US9164830B2 (en) | Methods and devices to increase memory device data reliability | |
US7774683B2 (en) | Erasure pointer error correction | |
US7149949B2 (en) | Method for error correction decoding in a magnetoresistive solid-state storage device | |
JP5492679B2 (ja) | 記憶装置およびメモリコントローラ | |
US20120239866A1 (en) | Non-volatile memory with error correction for page copy operation and method thereof | |
TWI587297B (zh) | 半導體儲存裝置 | |
US8040713B2 (en) | Bit set modes for a resistive sense memory cell array | |
CN105144302A (zh) | 存储器装置中的错误校正操作 | |
KR20030068202A (ko) | 비휘발성 메모리의 효율적인 데이터 검증 동작을 위한구조 및 방법 | |
US7697347B2 (en) | Non-volatile memory device and method of driving the same | |
JP2014110071A (ja) | エラー訂正パリティビットによるmramスマートビット書き込みアルゴリズムの方法および装置 | |
US20210096948A1 (en) | Uncorrectable error correction code (uecc) recovery time improvement | |
TWI602055B (zh) | 半導體儲存裝置及其編程方法 | |
US7266732B2 (en) | MRAM with controller | |
CN111755060A (zh) | 失效数据修复电路和方法、非挥发性存储器、可读存储介质 | |
TW202209337A (zh) | 記憶體系統及記憶體動作程式 | |
JP2008102693A (ja) | メモリコントローラ及びフラッシュメモリシステム、並びにフラッシュメモリの制御方法 | |
US20090063792A1 (en) | Memory control circuit, semiconductor integrated circuit, and verification method of nonvolatile memory |