TWI769279B - 記憶體控制器、包括其的半導體記憶系統以及驅動方法 - Google Patents
記憶體控制器、包括其的半導體記憶系統以及驅動方法 Download PDFInfo
- Publication number
- TWI769279B TWI769279B TW107124490A TW107124490A TWI769279B TW I769279 B TWI769279 B TW I769279B TW 107124490 A TW107124490 A TW 107124490A TW 107124490 A TW107124490 A TW 107124490A TW I769279 B TWI769279 B TW I769279B
- Authority
- TW
- Taiwan
- Prior art keywords
- data
- address
- memory
- read
- target address
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1068—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1048—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/0292—User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1009—Address translation using page tables, e.g. page table structures
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C13/00—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
- G11C13/0002—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C8/00—Arrangements for selecting an address in a digital store
- G11C8/06—Address interface arrangements, e.g. address buffers
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1008—Correctness of operation, e.g. memory ordering
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/65—Details of virtual memory and virtual address translation
- G06F2212/657—Virtual address space management
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7201—Logical to physical mapping or translation of blocks or pages
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7207—Details relating to flash memory management management of metadata or control data
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Human Computer Interaction (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Computer Security & Cryptography (AREA)
- For Increasing The Reliability Of Semiconductor Memories (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Read Only Memory (AREA)
Abstract
本發明涉及一種記憶體控制器、包括其的半導體記憶系統以及驅動所述半導體記憶系統的方法。所述記憶體控制器可以包括位址控制塊。位址控制塊可以被配置為:當具有第一邏輯位準的寫入資料的數量在可校正範圍之內時、並且當與寫入目標位址相對應的資料的位準具有第一邏輯位準時,重新映射寫入目標位址。
Description
本公開的各種實施例可以總體而言涉及記憶體控制器,包括其的半導體記憶系統,以及驅動該半導體記憶系統的方法。更具體地,本公開的實施例涉及一種被配置為控制阻變記憶體裝置的記憶體控制器,包括該記憶體控制器的半導體記憶系統,以及驅動該半導體記憶系統的方法。
隨著對具有高容量和低功耗的記憶體裝置的需求不斷上升,已經進行對下一代記憶體裝置的研究。這些下一代記憶體裝置可以是可不需要刷新操作的非揮發性裝置。
下一代記憶體裝置可能具有多種要求。例如,下一代記憶體裝置可能需要動態隨機存取記憶體(DRAM)的高容量特性、快閃記憶體的非揮發性特性、以及靜態隨機存取記憶體(SRAM)的高速度。
下一代記憶體裝置的示例包括相變RAM(PCRAM)裝置、奈米浮柵記憶體(NFGM)裝置、聚合物RAM(PoRAM)裝置、磁性RAM
(MRAM)裝置、鐵電RAM(FeRAM)裝置、電阻式RAM(ReRAM)裝置等。具體地,下一代記憶體裝置可以包括阻變記憶體裝置。
在一個具體示例中,與DRAM裝置類似,下一代記憶體裝置可以包括多個記憶單元。記憶單元可以被佈置到多個組中,使得記憶體裝置可以包括記憶單元組。每個記憶單元組可以稱為單元陣列或MAT。此外,記憶體裝置可以包括控制電路,該控制電路被配置為單獨驅動每個單元陣列。
然而,當讀取與控制電路相鄰的記憶單元(下文稱為“相鄰記憶單元”)中的資料時,可能因讀取干擾而發生讀取錯誤。
本專利申請請求於2017年11月10日向韓國智慧財產權局提交的申請號為10-2017-0149743的韓國專利申請的優先權,其全部內容透過引用合併於此。
本公開的示例性實施例提供一種記憶體控制器,其能夠防止與控制電路相鄰的記憶單元的讀取干擾。
示例性實施例還提供一種包括上述記憶體控制器的半導體記憶系統。
示例性實施例還提供一種驅動上述半導體記憶系統的方法。
在本公開的示例性實施例中,一種記憶體控制器可以包括位址控制塊。所述位址控制塊可以被配置為:當具有第一邏輯位準的寫入資料的數量在可校正範圍之內時、並且與寫入目標位址相對應的資料的位準具有所述第
一邏輯位準時,重新映射所述寫入目標位址。此時,所述記憶體控制器將所述寫入資料儲存在記憶體裝置中。
在本公開的示例性實施例中,一種半導體記憶系統可以包括記憶體裝置和記憶體控制器。所述記憶體裝置可以包括記憶單元陣列和控制電路塊,所述記憶單元陣列包括多個記憶單元,所述多個記憶單元被佈置成具有n列和m行的矩陣形狀,m和n為正整數,所述控制電路塊被佈置在所述記憶單元陣列的邊緣部分處。所述記憶體控制器可以被配置為將寫入資料、讀取命令、寫入命令和位址提供給所述記憶體裝置,所述位址提供所述寫入資料在所述記憶體裝置中被寫入的位置。所述記憶體控制器可以包括錯誤校正碼(error correction code,ECC)塊,其被配置為對讀取資料進行校正。
所述記憶體控制器可以包括資料判定塊和位址控制塊。所述資料判定塊可以被配置為:當具有第一邏輯位準的所述寫入資料的數量在所述ECC電路的可校正範圍之內時,產生位址改變信號。所述位址控制塊可以被配置為:當與寫入目標位址相對應的資料具有所述第一邏輯位準、並且當與所述控制電路塊相鄰的記憶單元為空時,在寫入操作中利用所述相鄰的記憶單元的位址來重新映射所述寫入目標位址,並且在讀取操作中基於所述讀取目標位址的重新映射資訊來選擇讀取目標位址和重新映射位址中的一個。
在本公開的示例性實施例中,可以提供一種驅動半導體記憶系統的方法,所述半導體記憶系統可以包括記憶體裝置和記憶體控制器。所述記憶體裝置可以包括記憶單元陣列和控制電路塊。所述記憶單元陣列可以包括多個記憶單元。所述控制電路塊可以被佈置在所述記憶單元陣列的邊緣部分處,所述記憶體控制器可以被配置為控制所述記憶體裝置的操作。所述驅動半導體
記憶系統的方法包括:對具有第一邏輯位準的寫入資料的數量進行計數;判定具有所述第一邏輯位準的寫入資料的數量是否在可校正範圍之內;當具有所述第一邏輯位準的寫入資料的數量被判定為在可校正範圍之內、並且與寫入目標位址相對應的資料具有所述第一邏輯位準時,將所述寫入目標位址重新映射到與所述控制電路塊相鄰的記憶單元中的一個的位址上;以及將所述寫入目標位址的資料儲存在與重新映射的位址相對應的所述相鄰的記憶單元中。
100:半導體記憶系統
200:記憶體控制器
210:儲存塊
220:控制塊
230:位址控制塊
235:映射表
240:錯誤校正碼(ECC)塊
250:資料判定塊
250-1:資料判定塊
250-2:資料判定塊
251:反相處理單元
252:資料位準計數電路
255:比較電路
260:主機介面
270:記憶體介面
280:匯流排
300:記憶體裝置
310:記憶單元陣列
320:控制電路塊
330:控制邏輯
340:電壓發生單元
350:列解碼器
360:行解碼器
400:讀取/寫入電路
410:主機設備
S1:步驟
S2:步驟
S3:步驟
S4:步驟
S5:步驟
S31:步驟
S32:步驟
S33:步驟
S34:步驟
S35:步驟
S11:步驟
S12:步驟
S13:步驟
S14:步驟
S15:步驟
ACS:位址改變信號
ADD:地址
BL:位元線
C:行表
CMD:命令
CTRL:控制信號
CTRL_op:操作控制信號
CTRL_vol:電壓控制信號
DATA:資料
DATA_ta:資料
Db:雙向二極體
MC:記憶單元
MC1:記憶單元
MC2:記憶單元
MC3:記憶單元
Ne:相鄰單元
PAGE:頁面
R:列表
Ra:可變電阻器
Rb:可變電阻器
Rc:可變電阻器
Rv:可變電阻器
Ref_code:參考碼
S:選擇元件
SW:三相開關
SL:源極線
Ta:目標位址
VBL:位元線驅動電壓
VWL:字元線驅動電壓
WL:字元線
X_ADDR:列地址
Y_ADDR:行位址
從以下結合所附圖式的詳細描述中,將能更清楚地理解本公開主題的以上和其他方面、特徵和優點,其中:〔圖1〕是示出根據本公開的實施例的半導體記憶系統的方塊圖;〔圖2〕是示出根據本公開的實施例的圖1的半導體記憶系統中的記憶體裝置的詳細方塊圖;〔圖3〕是示出根據本公開的實施例的圖2的記憶體裝置中的記憶單元陣列的詳細電路圖;〔圖4至圖6〕是示出根據本公開的實施例的圖3的記憶單元的修改示例的電路圖;〔圖7〕是示出根據本公開的實施例的記憶體控制器的方塊圖;〔圖8〕是根據本公開的實施例的映射表;〔圖9〕是示出根據本公開的實施例的資料判定塊的詳細方塊圖;〔圖10〕是示出根據本公開的實施例的資料判定塊的詳細方塊圖;〔圖11〕是示出根據本公開的實施例的阻變記憶體裝置的寫入操作的流程圖;
〔圖12〕示出根據本公開的實施例的阻變記憶體裝置的讀取操作;〔圖13〕是示出根據本公開的實施例的用於重新映射位址的操作的映射表;〔圖14〕是示出根據本公開的實施例的在圖11示出的流程圖中執行的操作的流程圖;以及〔圖15〕是示出根據本公開的實施例的阻變記憶體裝置的讀取操作的流程圖。
以下參考所附圖式來更詳細地描述本公開的各種實施例。所附圖式是根據本公開的各種實施例的各種結構的示意性圖式,並且還包括中間結構的圖式。照此,由例如製造技術和/或公差(tolerance)而導致的所述圖式在配置和形狀方面的變化在預期之中。因此,所描述的實施例不應該被解釋為限於本文示出的具體配置和形狀,而是可以包括不脫離所附請求項的各種實施例的精神和範圍的在配置和形狀上的偏差。
本文參考剖面和/或平面圖式來描述本公開的實施例,其可以是本公開的理想化的實施例。然而,本公開的實施例不應該被解釋為對該公開的發明構思進行限制。儘管將示出和描述本公開的一些實施例,但是本發明所屬技術領域中具有通常知識者將理解,在不脫離本公開的各種實施例的原理和精神的情況下,可以在這些實施例中作出改變。
圖1是示出根據本公開的實施例的半導體記憶系統100的示意性方塊圖。
參考圖1,半導體記憶系統100可以包括記憶體控制器200和至少一個半導體記憶體裝置300。
記憶體控制器200可以從應用程式(application)、作業系統(operating system,OS)或它們兩者接收讀取請求、寫入請求或它們兩者。記憶體控制器200可以將位址ADD、命令CMD、資料DATA和至少一個控制信號CTRL提供給半導體記憶體裝置300。例如,記憶體控制器200可以分別通過命令匯流排、資料通道和位址匯流排來傳輸位址ADD、命令CMD、資料DATA和控制信號CTRL。命令匯流排、資料通道和位址匯流排可以共用至少一條電信號線。
記憶體控制器200可以與半導體記憶體裝置300介面。記憶體控制器200可以分別回應於讀取請求和寫入請求,從記憶體裝置300接收資料DATA以及將資料DATA發送至記憶體裝置300。
圖2是示出根據本公開的實施例的圖1的半導體記憶系統100中包括的記憶體裝置300的詳細方塊圖。
參考圖2,半導體記憶體裝置300可以是單個裝置,或者可以是多個半導體記憶體裝置中的一個。半導體記憶體裝置300可以包括記憶單元陣列310和控制電路塊320。
記憶單元陣列310可以包括多條第一信號線、多條第二信號線以及耦接在所述多條第一信號線和所述多條第二信號線之間的多個記憶單元。記憶單元陣列310可以是交叉點型的記憶單元陣列。例如,第一信號線可以是位元線,而第二信號線可以是字元線。在另一示例中,第一信號線可以是字元線,而第二信號線可以是位元線。
圖3是示出根據本公開的實施例的圖2的記憶單元陣列的詳細電路圖。
參考圖3,記憶單元陣列310可以包括多條字元線WL0至WLm、多條位元線BL0至BLn、以及多個記憶單元MC<0,0>至MC<m,n>,m和n為正整數。在各種實施例中,字元線、位元線和記憶單元的數量可以根據包括記憶單元陣列310的記憶體裝置的集成度而變化。記憶單元陣列310可以以2D形式或3D形式來實現。
每個記憶單元MC可以包括選擇元件S和可變電阻器Rv。
選擇元件S可以耦接在多條字元線WL0至WLm中的任意一條字元線與對應於該一條字元線的可變電阻器Rv之間。選擇元件S可以根據施加到字元線WL和多條位元線BL0至BLn中的耦接至該選擇元件S的任意一條位元線的電壓,來控制供應給可變電阻器Rv的電流。例如,實施例中的選擇元件S可以是二極體或MOS電晶體。在另一示例中,包括相變記憶層的雙向閾值開關(OTS)可以用作選擇元件S。
可變電阻器Rv可以耦接至選擇元件S以及耦接至多條位元線BL0至BLn中的一條。然而,實施例不限於此。在一個實施例中,選擇元件S可以耦接至多條位元線BL0至BLn中的一條,可變電阻器Rv可以耦接至多條字元線WL0至WLm中的一條。
可變電阻器Rv可以回應於施加到位元線BL的電脈衝而具有多個電阻狀態之中的一個。電脈衝可以例如是電壓或電流。可變電阻器Rv可以包括相變材料層或阻變材料層,該相變材料層或阻變材料層具有根據施加的電流量而改變的晶態。相變材料層可以包括合成各種類型元素的各種化合物中的任意一種,例如,包括合成的兩種元素的化合物,例如GaSb、InSb、InSe、Sb2Te3或GeTe;包括合成的三種元素的化合物,例如GeSbTe、GaSeTe、InSbTe、
SnSb2Te4或InSbGe;包括合成的四種元素的化合物,例如AgInSbTe、(GeSn)SbTe、GeSb(SeTe)或Te81Ge15Sb2S2,等等。
相變材料層可以具有非晶態和結晶態。非晶態可以具有相對高的電阻,結晶態可以具有相對低的電阻。換言之,相變材料層可以在非晶態下具有比在結晶態下更大的電阻。相變材料層的相可以根據焦耳熱和冷卻時間而被改變,該焦耳熱由施加到相變材料層的電流量產生。
例如,每個記憶單元可以是單級單元,並且可以儲存1位元的資料或一個1位元資料。例如,每個記憶單元可以具有兩個可能的電阻狀態,所述兩個可能的電阻狀態與能夠儲存在記憶單元中的兩個可能的資料位準相對應。換言之,記憶單元可以在記憶單元處於低電阻狀態時儲存資料“0”,並且可以在記憶單元處於高電阻狀態時儲存資料“1”。在另一示例中,每個記憶單元可以是多級單元,該多級單元儲存2位元的資料或多於2位元的資料。在該示例中,記憶單元可以具有四個到八個可能的電阻狀態,所述四個到八個可能的電阻狀態與能夠儲存在記憶單元中的可能的資料位準相對應。
在實施例中,記憶單元陣列310中的記憶單元MC<0,0>至MC<m,n>之中的與控制電路塊320相鄰的記憶單元(MC<0,0~n>,MC<0~m,0>)可以稱為“相鄰記憶單元”,或稱為“鄰近單元區域”中的單元。
圖4至圖6是示出根據本公開的實施例的圖3的記憶單元MC的修改示例的電路圖。
參考圖4,記憶單元MC1可以包括耦接在字元線WL和位元線BL之間的可變電阻器Ra。可變電阻器Ra可以根據字元線WL和位元線BL之間的電壓差而被選擇性地操作。
參考圖5,記憶單元MC2可以包括可變電阻器Rb和雙向二極體Db。雙向二極體Db可以是選擇元件。雙向二極體Db可以耦接在位元線BL和可變電阻器Rb之間。可變電阻器Rb可以耦接至字元線WL。雙向二極體Db和可變電阻器Rb相對於彼此的位置可以改變。當記憶單元MC2是未被選擇的電阻式記憶單元時,流經記憶單元MC2的洩漏電流可以被雙向二極體Db阻斷。
參考圖6,記憶單元MC3可以包括可變電阻器Rc和三相開關SW。三相開關SW可以被配置為根據字元線WL的電壓來供給和阻斷源極線SL和可變電阻器Rc之間的電流。可變電阻器Rc可以耦接至位元線BL。三相開關SW可以包括電晶體或OTS開關。當將三相開關SW用作選擇元件時,源極線SL可以進一步連接至三相開關SW,並且可以控制可變電阻器Rc兩端的電壓位準。三相開關SW和可變電阻器Rc相對於彼此的佈置位置可以改變。
返回參考圖3,記憶單元陣列310可以包括多個頁面PAGE。頁面PAGE可以是指如下記憶單元MC的集合,所述記憶單元MC可以經由一個列位址來訪問,並耦接至相同的信號線,例如相同的字元線。例如,一個頁面PAGE可以包括連接至字元線WL0的記憶單元MC<0,0>到MC<0,n>的集合。每個頁面PAGE可以包括多個記憶單元。每個頁面PAGE中包括的記憶單元的數量可以根據各種實施例進行各種設置。
返回參考圖2,控制電路塊320可以包括控制邏輯330、電壓發生單元340、列解碼器350、行解碼器360和讀取/寫入電路400。
控制邏輯330可以產生用於將資料DATA寫入記憶單元陣列310、用於從記憶單元陣列310讀取資料DATA或者以上二者的各種控制信號。控制信號可以基於由控制邏輯330從記憶體控制器、例如圖1中示出的記憶體控制器
200接收的命令CMD、位址ADD和控制信號CTRL而生成。各種控制信號可以被提供給讀取/寫入電路400、電壓發生單元340、列解碼器350和行解碼器360。因此,控制邏輯330可以控制記憶體裝置300的整體操作。
控制邏輯330可以通過向讀取/寫入電路400提供操作控制信號CTRL_op來控制讀取/寫入電路400。例如,操作控制信號CTRL_op可以包括寫入致能信號、讀取致能信號、感測致能信號、放電致能信號、預充電致能信號等之中的任何。控制邏輯330可以產生電壓控制信號CTRL_vol,並且可以將產生的電壓控制信號CTRL_vol提供給電壓發生單元340。控制邏輯330可以將列位址X_ADDR提供給列解碼器350,以及可以將行位址Y_ADDR提供給行解碼器360。
電壓發生單元340可以基於電壓控制信號CTRL_vol而產生各種類型的電壓,並將產生的電壓提供給記憶單元陣列310。產生的電壓可以初始化和/或控制寫入操作、讀取操作、擦除操作,驗證操作或其組合。例如,電壓發生單元340可以產生用於驅動多個字元線WL的字元線驅動電壓VWL到列解碼器350,並且可以產生用於驅動多個位元線BL的位元線驅動電壓VBL到行解碼器360。字元線驅動電壓VWL和/或位元線驅動電壓VBL可以包括重置寫入電壓、設置寫入電壓、禁止電壓、讀取電壓、驗證電壓等之中的任何。
列解碼器350可以被配置為從控制邏輯330接收列位址X_ADDR,並且響應於列位址X_ADDR而啟動多個字元線WL之中選中的字元線。
行解碼器360可以被配置為從控制邏輯330接收行位址Y_ADDR,並且響應於行位址Y_ADDR而啟動多個位元線BL之中選中的位元線。
圖7是示出根據本公開的實施例的記憶體控制器200的方塊圖。
參見圖7,記憶體控制器200可以被配置為控制記憶體裝置、例如圖2中示出的記憶體裝置300中的資料的讀取操作和寫入操作。例如,記憶體控制器200可以回應於來自主機設備410的請求而控制記憶體裝置300。記憶體控制器200可以向主機設備410提供從記憶體裝置300讀取的資料。記憶體控制器200可以將從主機設備410提供的資料儲存在記憶體裝置300中。
記憶體控制器200可以包括儲存塊210、控制塊220、錯誤校正碼(ECC)塊240、資料判定塊250、主機介面260和記憶體介面270。儲存塊210、控制塊220、ECC塊240、資料判定塊250、主機介面260和記憶體介面270可以通過匯流排280彼此耦接。
儲存塊210可以用作記憶系統、例如圖1中示出的記憶系統100以及記憶系統100中包括的記憶體控制器200的工作記憶體。儲存塊210可以被配置為儲存用於驅動記憶系統100和記憶體控制器200的資料。當記憶體控制器200可以控制記憶體裝置300的操作時,儲存塊210可以儲存由記憶體控制器200和記憶體裝置300使用的資料,用於讀取操作、寫入操作、編程操作、擦除操作或其組合。
儲存塊210可以包括非揮發性記憶體。儲存塊210可以包括SRAM或DRAM。儲存塊210可以暫時儲存資料,該資料可以是在寫入操作期間從主機設備410接收並且要被寫入到記憶體裝置300中的寫入資料,也可以是從記憶
體裝置300讀取的讀取資料,或者是二者的組合。為了儲存該資料,儲存塊210可以包括程式記憶體、資料記憶體、寫入緩衝器、讀取緩衝器、映射緩衝器等。
控制塊220可以被配置為控制記憶系統100的一般操作,以及回應於來自主機設備410的寫入請求或讀取請求而控制記憶體裝置300的讀取操作和寫入操作。控制塊220可以驅動韌體作為快閃記憶體轉換層(FTL),用於控制記憶系統100的一般操作。例如,FTL可以執行邏輯到物理映射(L2P)操作、損耗平衡(wear leveling)操作、垃圾收集(garbage collection)操作、壞塊處理操作等。L2P映射操作可以被稱為邏輯塊定址(LBA)。
控制塊220可以包括位址控制塊230。位址控制塊230可以被配置為回應於從資料判定塊250提供的位址改變信號ACS而利用相鄰單元位址來重新映射(或改變)寫入目標位址。
具體地,當寫入目標位址的資料位準對應於具有高錯誤發生概率的特定資料位準時、並且當沒有資料儲存在相鄰記憶單元中時,位址控制塊230可以回應於位址改變信號ACS,在寫入操作中利用相鄰記憶單元的相鄰單元位址來重新映射寫入目標位址。如在本文中使用的,當記憶單元未儲存任何資料時,記憶單元為“空”。
位址控制塊230可以基於讀取目標位址的重新映射資訊,在讀取操作中選擇讀取目標位址或重新映射位址。
位址控制塊230可以包括映射表。映射表可以示出相鄰記憶單元的位址重新映射資訊。
圖8是根據本公開的實施例的映射表235。
參見圖8,映射表235可以包括列表R和行表C。例如,當記憶單元陣列、例如圖3中示出的記憶單元陣列310包括m列記憶單元和n行記憶單元、例如m×n記憶單元矩陣時,列表R可以包括m個頁面,行表C可以包括n個頁面。
列表R可以儲存位於第0行處的每列記憶單元的位址資訊。行表C可以儲存位於第0列處的每行記憶單元的位址資訊。
返回參考圖7,ECC塊240可以在讀取操作中檢測並校正由記憶體裝置300讀取的資料中的錯誤。當資料中的錯誤位元的數量等於或低於可校正錯誤位元的臨界數量N時,ECC塊240可以校正資料中的錯誤。與此相反,當錯誤位元的數量大於或等於可校正錯誤位元的臨界數量N時,ECC塊240可能不能校正資料中的錯誤。當ECC塊240未校正資料中的錯誤時,ECC塊240可以輸出錯誤校正失敗信號,該錯誤校正失敗信號表示錯誤位元的錯誤校正失敗。
在實施例中,ECC塊240可以通過利用如下的碼的類型對資料進行調製來執行錯誤校正操作,所述碼例如是低密度同位檢查(low density parity check,LDPC)碼、BCH(Bose-Chaudhuri-Hocquenghem)碼、渦輪(Turbo)碼、渦輪乘積碼(turbo product code,TPC)、RS(Reed-Solomon)碼、卷積碼、遞迴系統碼(recursive systematic code,RSC)、網格編碼調製(trellis-coded modulation,TCM)、塊編碼調製(block coded modulation,BCM)等。ECC塊240可以包括用於執行錯誤校正操作的電路、系統、設備或其組合。
當具有特定位準的資料的數量等於或低於與ECC塊240相對應的可校正錯誤位元的臨界數量N時,資料判定塊250可以將位址改變信號ACS傳輸至控制塊220的位址控制塊230。
圖9是示出根據本公開的實施例的資料判定塊250-1的詳細方塊圖。
參考圖9,資料判定塊250-1可以包括資料位準計數電路252和比較電路255。
資料位準計數電路252可以接收要被輸入到記憶體裝置、例如圖2中示出的記憶體裝置300中的資料DATA。例如,資料位準計數電路252可以對輸入的資料DATA之中的具有特定資料位準、例如“0”位準的位元的數量進行計數。資料位準計數電路252可以輸出表示計數數量的輸出碼,輸出碼可以是碼信號。
比較電路255可以接收參考碼Ref_code和資料位準計數電路252的輸出碼。比較電路255可以將輸出碼與參考碼Ref_code進行比較。參考碼Ref_code對應於ECC塊的可校正錯誤位元的臨界數量N、例如ECC塊可校正的錯誤位元的最大數量。因此,當輸出碼與參考碼Ref_code之間的比較表明輸入的資料DATA中的具有0位準的位元的數量等於或低於可校正錯誤位元的臨界數量N時,比較電路255可以輸出位址改變信號ACS。
替選地,如圖10所示,資料判定塊250-2還可以包括反相處理單元251,該反相處理單元251安裝在資料位準計數電路252的前端。反相處理單元251可以對輸入的資料DATA中的具有位準“1”的位元的數量進行計數。換言之,當輸入的資料DATA中的具有1位準的位元的數量等於或低於可校正錯誤位元的臨界數量N時,比較電路255可以輸出位址改變信號ACS。
返回參考圖7,主機介面260可以經由根據各種協定來操作的各種介面中的至少一種與主機設備410通信,所述各種介面諸如通用序列匯流排
(USB)、多媒體卡(MMC)、快速周邊元件連接(PCI-E),小型電腦系統介面(SCSI)、串列附接SCSI(SAS)、串列高級技術附件(SATA)、並列高級技術附件(PATA)、增強小型磁碟介面(ESDI)、集成驅動電子設備(IDE)等之中的任何。
記憶體介面270可以被配置為回應於來自主機設備410的請求在記憶體控制器200和記憶體裝置之間作為介面。記憶體介面270可以產生關於記憶體裝置的控制信號。記憶體介面270可以在控制塊220的控制下處理資料。
圖11是示出根據本公開的實施例的阻變記憶體裝置的寫入操作的流程圖。
參考圖11,在步驟S1中,記憶體控制器可以產生用於將資料寫入記憶體裝置的寫入命令。在一個示例中,記憶體控制器為圖7中示出的記憶體控制器200,寫入命令為圖1和圖2中示出的命令CMD,記憶體裝置為圖2中示出的記憶體裝置300。寫入命令可以由記憶體控制器發出。
在步驟S2中,資料判定塊可以在記憶體控制器200發出寫入命令時接收資料、例如要寫入記憶體裝置300的記憶單元陣列310中的寫入資料,並且可以判定具有特定邏輯位準的資料的數量是否小於臨界數量N。在一個示例中,資料判定塊是圖9或圖10中示出的資料判定塊250-1或250-2,所述資料是參考圖9或圖10描述的資料DATA。資料判定塊可以判定資料中的具有特定邏輯位準的位元的數量,以及判定具有所述特定邏輯位準的位元的數量是否等於或低於可校正錯誤位元的臨界數量N。可校正錯誤位元的臨界數量N可以是連接至資料判定塊的ECC塊的可校正錯誤位元的最大數量。在一個示例中,ECC塊是圖7中示出的ECC電路240。
例如,當特定邏輯位準為“0”位準且資料中的具有0位準的位元的數量等於或低於臨界數量N時,資料判定塊可以將位址改變信號輸出至位址控制塊。在另一示例中,當特定邏輯位準為“1”位準並且資料中的具有1位準的位元的數量等於或低於臨界數量N時,資料判定塊可以將位址改變信號輸出至位址控制塊。在具體示例中,當資料判定塊為圖9或圖10中示出的資料判定塊250-1或250-2時,位址改變信號為圖9或圖10中示出的位址改變信號ACS,位址控制塊為圖7中示出的位址控制塊230。
在步驟S3中,位址控制塊可以回應於由資料判定塊輸出的位址改變信號,將記憶單元的寫入目標位址重新映射到相鄰記憶單元的位址(下文稱為“相鄰位址”)上。
在步驟S4中,可以在寫入操作期間將資料之中的原來要儲存在寫入目標位址中的資料儲存在重新映射的位址、即相鄰位址中。
在步驟S5中,當資料中的具有特定邏輯位準的位元的數量高於臨界數量N時,可以將資料儲存在原始的寫入目標位址中。即,不執行位址重新映射操作。
在下文中,可以根據本公開的實施例參考圖12至圖14來詳細示出用於重新映射位址和儲存資料的操作。
圖12示出了根據本公開的實施例的阻變記憶體裝置的讀取操作。如圖12所示,記憶單元陣列310可以包括8列記憶單元和4行記憶單元。列解碼器350和行解碼器360可以提供在記憶單元陣列310的邊緣部分上。例如,與記憶單元陣列310的外側的行相鄰地提供列解碼器350,以及與記憶單元陣列310的外側的列相鄰地提供行解碼器360。
圖13是示出根據本公開的實施例的用於重新映射位址的操作的映射表。
圖14是更詳細地示出根據本公開的具體實施例的在圖11的步驟S3至S5中執行的操作的流程圖。
參考圖12至圖14,在圖14的步驟S31中,當資料中的具有特定邏輯位準的位元的數量等於或低於臨界數量N時,位址改變信號由資料判定塊致能,並且可以被輸出至位址控制塊。所述特定邏輯位準可以是具有相對高的錯誤發生概率的邏輯位準。例如,當資料可以每個具有“0”位準或“1”位準、並且特定邏輯位準是0位準時,具有0位準的資料相比於具有“1”位準的資料更有可能被錯誤地寫入,或者更有可能被錯誤地讀取。
在步驟S32中,資料判定塊可以識別要寫入到寫入目標位址Ta中的資料DATA_ta的位準是否對應於特定邏輯位準,例如0位準。
當寫入目標位址Ta的資料DATA_ta具有0位準時,在步驟S33中,可以判定相鄰單元Ne是否為空。相鄰單元Ne可以是與寫入目標位址Ta在相同列或相同行中的單元。即,可以判定相鄰單元Ne是否儲存有資料。
當對應於與寫入目標位址Ta相同列或相同行的相鄰單元Ne為空時,即,沒有資料儲存在相鄰單元Ne中,在步驟S34將寫入目標位址的資料DATA_ta寫入相鄰單元Ne。
例如,當寫入目標位址Ta為<4,2>、且要被寫入到寫入目標位址Ta中的資料DATA_ta具有特定邏輯位準0時,可以判定是否可以將資料DATA_ta儲存在相鄰單元位址<4,0>和<0,2>之中的一個中。通過使用一個或更多個映射表,例如圖13示出的列表R和行表C中的一個或兩個,判定相鄰單元位
址<4,0>和<0,2>為空。當列表R表明相鄰列單元<4,0>為空時,寫入目標位址Ta的資料DATA_ta可以被寫入相鄰列單元<4,0>中。
也就是說,列表R能夠用於跟蹤最初目的地為<4,2>的寫入目標位址Ta的資料DATA_ta已被寫入<4,0>的相鄰列單元中。例如,當寫入目標位址Ta被重新映射到相鄰列單元<4,0>的位址時,可以將2寫入列表R的第四頁面4P中。列表R和行表C的每個頁面可以以一種類型的碼儲存重新寫入的位址的位置。例如,將2寫入列表R的第四頁面4P中表明最初目的地為與寫入目標位址Ta相對應的目標記憶單元<4,2>的資料DATA_ta已被寫入相鄰列單元<4,0>中。替選地,可以在列表R和行表C中儲存用於表示重新映射位址的各種類型的碼。
在一個實施例中,在將2寫入第四頁面4P之前,列表R的第四頁面4P為空。然而,當列表R的第四頁面4P不為空時,可以判定資料是否已儲存在行表C的對應於寫入目標位址Ta的頁面、例如行表C的第二頁面2P中。當沒有資料儲存在行表C的第二頁面2P中時,可以將寫入目標位址Ta重新映射到相鄰行單元<0,2>的位址。換言之,可以將4寫入行表C的第二頁面2P中,這表明資料DATA_ta已被寫入相鄰行單元<0,2>中。
當寫入目標位址Ta的資料DATA_ta的位準不是特定邏輯位準、例如不是0時,在步驟S35中,可以不進行位址重新映射操作而將資料儲存在寫入目標位址Ta中。例如,當特定邏輯位準為0時,邏輯位準1與所述特定邏輯位準0相比可以對應於更低的錯誤發生概率。因此,在一個實施例中,當資料DATA_Ta的位準為1時,可以不重新映射寫入目標位址Ta,因為資料DATA_Ta的錯誤發生概率可相對低。
此外,當相鄰單元Ne不為空時,在步驟S35中,可以不進行位址重新映射操作而將資料DATA_Ta儲存在寫入目標位址Ta中,不管寫入目標位址Ta的資料DATA_ta的位準是否為0。
通常,阻變記憶體裝置,特別是相可變記憶體裝置,可以具有在寫入電壓施加到裝置時改變的電阻特性、例如電阻性。相反,相可變記憶體裝置的電阻特性在讀取電壓施加到裝置時不應改變。
然而,與其他記憶單元相比,相對高的讀取電壓可能被施加到與控制電路塊320、例如列解碼器350和行解碼器360相鄰的相鄰單元Ne上。因此,與其他記憶單元相比,每個相鄰單元Ne可能更易遭受讀取干擾。例如,與其他記憶單元相比,每個相鄰單元Ne更有可能接收高於相鄰單元Ne的閾值電壓Vth的讀取電壓,這可能在讀取操作期間錯誤地改變相鄰單元Ne的電阻狀態。
在一個實施例中,當大於閾值電壓Vth的電壓施加到相鄰單元Ne時,每個相鄰單元Ne中的相變層可能從結晶態改變為非晶態。例如,當相鄰單元Ne在結晶態下儲存具有0位準的資料時,相對高的讀取電壓可能將該所述資料改變為與非晶態相對應的1位準。因此,當具有0位準的資料被輸入到相鄰單元Ne中時,錯誤發生概率可能會增大。
根據實施例,當具有與相對高的錯誤發生概率相對應的0位準的資料的數量不大於ECC電路、例如ECC塊240可校正的位元的臨界數量N時,即使在具有0位準的資料主要佈置在相鄰單元Ne中時,ECC電路也可以校正資料中的錯誤。由ECC電路執行的錯誤校正的結果是,讀取干擾導致的錯誤可以被防止。
圖15是示出根據本公開的實施例的阻變記憶體裝置的讀取操作的流程圖。
參考圖15,在步驟S11中,記憶體控制器可以產生用於讀取記憶體裝置中的資料的讀取命令READ CMD。讀取命令READ CMD可以指定要讀取資料的記憶單元的讀取目標位址。在一個實施例中,記憶體控制器和記憶體裝置分別為圖1、圖2和圖7中示出的記憶體控制器200和記憶體裝置300。
在步驟S12中,當產生讀取命令READ CMD時,可以基於記錄在位址控制塊的映射表中的資訊來判定讀取目標位址是否對應於重新映射資訊,例如重新映射記錄。在一個實施例中,重新映射資訊為寫入映射表中的碼,其表明讀取目標位址已被重新映射到相鄰記憶單元的位址,以及原來本應儲存在與讀取目標位址相對應的記憶單元中的資料實際儲存在相鄰記憶單元中。根據一個實施例,映射表為圖13中示出的映射表235,位址控制塊為圖7中示出的位址控制塊230。
例如,返回參考圖12和圖13,當讀取目標位址對應於記憶單元<4,2>時,可以判定重新映射資訊是否已被記錄在映射表235中的列表R和行表C的與記憶單元<4,2>相對應的至少一個頁面中。當判定2已被記錄在列表的頁面4P中時,可意識到目標位址<4,2>被重新映射到相鄰列單元<4,0>上,以及要讀取的資料儲存在相鄰列單元<4,0>中。
在步驟S13中,當讀取目標位址<4,2>被輸入並被判定為已重新映射時,位址控制塊可以選擇重新映射的位址,以便讀取儲存在重新映射的相鄰單元位址<4,0>中的資料。
在步驟S14中,當未識別到重新映射資訊、例如映射表235的對應頁面中不存在與讀取目標位址相對應的碼時,讀取儲存在與讀取目標位址相對應的記憶單元中的資料。
在步驟S15中,可以對讀取的資料執行ECC操作。
根據各種實施例,當將具有特定邏輯位準、例如0位準的寫入資料寫入到存儲陣列中時,資料可以優先地佈置在存儲陣列的相鄰單元區域中,直到具有0位準的資料的數量高於可校正錯誤位元的臨界數量N為止。因為特定邏輯位準與相對高的錯誤發生概率相關聯,以及相鄰單元區域與相對高的錯誤發生概率相關聯,所以可以解決讀取干擾,並可以完全校正資料中的錯誤。
根據各種實施例,當具有0位準的資料的數量等於或低於ECC電路可校正錯誤位元的臨界數量N時,可以通過執行重新映射操作,將具有0位準的資料寫入具有高錯誤發生概率的相鄰單元中。當在讀取操作中發出錯誤時,ECC電路可以校正該錯誤以降低讀取干擾。
此外,當具有0位準的資料的數量不大於臨界數量N時,可以應用各種實施例。替選地,如上面參考圖10所述,當具有1位準的資料的數量不大於臨界數量N時,可以通過利用反相處理器和DBI技術來執行反相操作,從而解決讀取干擾。
本公開的上述實施例旨在說明而非限制本公開,可以有各種替代和等同。本公開不限於本文描述的實施方案,也不限於任何特定類型的半導體裝置。根據本公開內容的其他添加、刪減或修改是顯而易見的,並且旨在落入所附申請專利範圍的範圍之內。
200:記憶體控制器
210:儲存塊
220:控制塊
230:位址控制塊
240:錯誤校正碼(ECC)塊
250:資料判定塊
260:主機介面
270:記憶體介面
280:匯流排
410:主機設備
Claims (17)
- 一種記憶體控制器,包括:位址控制塊,其被配置為:當具有第一邏輯位準的寫入資料的數量在可校正範圍之內時、並且當與寫入目標位址相對應的資料的位準具有所述第一邏輯位準時,重新映射所述寫入目標位址至重新映射位址,其中,所述第一邏輯位準與和第一邏輯位準相反之第二邏輯位準相比,有更高的錯誤發生概率,以及資料判定塊,其被配置為:接收所述寫入資料,並且通過將具有所述第一邏輯位準的寫入資料的所述數量與所述可校正範圍進行比較來產生位址改變信號,其中,所述記憶體控制器將所述寫入資料儲存在記憶體裝置中,其中,所述寫入目標位址表明位於具有第一讀取錯誤的區域中的記憶單元並且所述重新映射位址表明位於具有高於所述第一讀取錯誤的第二讀取錯誤的區域中的記憶單元,以及其中,所述位址控制塊基於所述位址改變信號來重新映射所述寫入目標位址。
- 如請求項1所述的記憶體控制器,其中,所述記憶體裝置包括:記憶單元陣列,其包括多個記憶單元;以及控制電路塊,其被佈置在所述記憶單元陣列的邊緣部分處,其中,所述重新映射位址為與所述控制電路塊相鄰的記憶單元的位址。
- 如請求項1所述的記憶體控制器,其中,所述位址控制塊包括映射表,所述映射表被配置為儲存所述寫入目標位址的重新映射資訊。
- 如請求項3所述的記憶體控制器,其中,所述記憶體裝置包括:記憶單元陣列,其包括多個記憶單元,所述多個記憶單元被佈置成具有n列和m行的矩陣形狀,m和n為正整數,其中,所述映射表包括列表和行表,所述列表包括n個頁面,所述行表包括m個頁面,以及其中,所述寫入目標位址的重新映射資訊儲存在所述列表和所述行表的頁面之中的選中的一個頁面中。
- 如請求項1所述的記憶體控制器,還包括:錯誤校正碼電路(ECC),其被配置為:在讀取操作期間對從所述記憶體裝置接收的讀取資料進行檢測和校正。
- 如請求項5所述的記憶體控制器,其中,所述可校正範圍對應於所述錯誤校正碼電路的錯誤校正位元的臨界數量。
- 如請求項6所述的記憶體控制器,其中,所述資料判定塊包括:資料位準計數電路,其被配置為:接收所述寫入資料,並且通過對具有所述第一邏輯位準的所述寫入資料的數量進行計數來產生輸出碼;以及比較電路,其被配置為:將所述資料位準計數電路的所述輸出碼與參考碼進行比較,並且在所述資料位準計數電路的所述輸出碼低於所述參考 碼時輸出所述位址改變信號,所述參考碼以所述錯誤校正碼電路的錯誤校正位元的臨界數量來編碼。
- 一種半導體記憶系統,包括:記憶體裝置,其包括記憶單元陣列和控制電路塊,所述記憶單元陣列包括多個記憶單元,所述多個記憶單元被佈置成具有n列和m行的矩陣形狀,m和n為正整數,所述控制電路塊被佈置在所述記憶單元陣列的邊緣部分處,其中,所述多個記憶單元包括與所述控制電路塊相鄰的多個第一記憶單元和位於距離所述控制電路塊比所述多個第一記憶單元更遠的多個第二記憶單元;以及記憶體控制器,其被配置為將寫入資料、讀取命令、寫入命令和位址提供給所述記憶體裝置,所述位址提供所述寫入資料在所述記憶體裝置中被寫入的位置;其中,所述記憶體控制器包括:錯誤校正碼電路,其被配置為對讀取資料進行校正;資料判定塊,其被配置為:當具有第一邏輯位準的所述寫入資料的數量在所述錯誤校正碼電路的可校正範圍之內時,產生位址改變信號;以及位址控制塊,其被配置為:當具有第一邏輯位準的寫入資料的數量在可校正範圍之內以及當與寫入目標位址相對應的資料的位準具有所述第一邏輯位準時,重新映射所述寫入目標位址至重新映射位址,其中所述第一邏輯位準與和第一邏輯位準相反之第二邏輯位準相比,有更高的錯誤發生概率,所述寫入目標位址表明位於具有第一讀取錯誤的區域中的記憶單元並且所述重新映射位址表明位於具有高於所述第一讀取錯誤的第二讀取錯 誤的區域中的記憶單元,並且所述位址控制塊基於所述位址改變信號來重新映射所述寫入目標位址。
- 如請求項8所述的半導體記憶系統,其中,所述位址控制塊包括映射表,所述映射表被配置為儲存所述寫入目標位址的重新映射資訊。
- 如請求項8所述的半導體記憶系統,還包括:列表,其包括n個頁面;以及行表,其包括m個頁面,其中,所述寫入目標位址的所述重新映射資訊儲存在所述列表和所述行表的頁面之中的選中的一個頁面中。
- 如請求項8所述的半導體記憶系統,其中,所述資料判定塊包括:資料位準計數電路,其被配置為:接收所述寫入資料,並且通過對具有所述第一邏輯位準的所述寫入資料的數量進行計數來產生輸出碼;以及比較電路,其被配置為:將所述資料位準計數電路的所述輸出碼與參考碼進行比較,並且在所述資料位準計數電路的所述輸出碼低於所述參考碼時輸出位址改變信號,所述參考碼被編碼有所述錯誤校正碼電路的可校正錯誤位元的臨界數量,其中,所述位址控制塊基於所述位址改變信號來重新映射所述寫入目標位址。
- 如請求項8所述的半導體記憶系統,其中,所述記憶單元的每個包括可變電阻器,所述可變電阻器的電阻狀態由電脈衝改變。
- 一種驅動半導體記憶系統的方法,所述半導體記憶系統包括記憶體裝置和記憶體控制器,所述記憶體裝置包括記憶單元陣列和控制電路塊,所述記憶單元陣列包括多個記憶單元,所述控制電路塊被佈置在所述記憶單元陣列的邊緣部分處,所述記憶體控制器被配置為控制所述記憶體裝置的操作,所述方法包括:對具有第一邏輯位準的寫入資料的數量進行計數;判定具有所述第一邏輯位準的所述寫入資料的數量是否在可校正範圍之內;當具有所述第一邏輯位準的所述寫入資料的數量被判定為在所述可校正範圍之內、並且與寫入目標位址相對應的資料具有所述第一邏輯位準時,將所述寫入目標位址重新映射到與所述控制電路塊相鄰的記憶單元中的一個的位址上;將所述寫入目標位址的資料儲存在與重新映射的所述位址相對應的所述相鄰的記憶單元中;當讀取命令被發出時,通過判定重新映射資訊是否儲存在與讀取目標位址相對應的列表中或與所述讀取目標位址相對應的行表中,來識別所述重新映射資訊是否對應於所述讀取目標位址;當所述重新映射資訊對應於所述讀取目標位址時,基於所述重新映射資訊來讀取所述相鄰的記憶單元中的資料;以及當所述重新映射資訊與所述讀取目標位址不對應時,讀取與所述讀取目標位址相對應的目標記憶單元中的資料, 其中,所述方法還包括:當所述記憶體控制器發出寫入命令時,將所述寫入資料登錄到所述記憶體裝置中。
- 如請求項13所述的方法,其中,將所述寫入目標位址重新映射到所述相鄰記憶單元的位址上還包括:當所述寫入目標位址的資料具有所述第一邏輯位準時,判定所述相鄰的記憶單元是否為空;當所述相鄰的記憶單元被判定為空時,將所述寫入目標位址的資料儲存在所述相鄰的記憶單元中;當所述寫入目標位址的資料具有與所述第一邏輯位準不同的第二邏輯位準時、當所述相鄰的記憶單元不為空時、或當以上二者同時發生時,將所述寫入目標位址的資料儲存在與所述寫入目標位址相對應的目標記憶單元中。
- 如請求項13所述的方法,其中,將所述寫入目標位址重新映射到所述相鄰的記憶單元的位址上還包括:將所述重新映射資訊儲存在所述記憶體控制器中。
- 如請求項15所述的方法,其中,儲存所述重新映射資訊包括:對所述寫入目標位址的列資訊或所述寫入目標位址的行資訊進行編碼;以及將編碼的資訊儲存在列表的頁面和行表的頁面之中的一個頁面中,所述列表的頁面分別對應於所述記憶單元陣列的多個列,所述行表的頁面分別對應於所述記憶單元陣列的多個行。
- 如請求項13所述的方法,還包括:執行錯誤校正碼操作,所述錯誤校正碼操作用於對在所述相鄰的記憶單元中或所述目標記憶單元中的讀取錯誤進行檢測和校正。
Applications Claiming Priority (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| KR1020170149743A KR20190053646A (ko) | 2017-11-10 | 2017-11-10 | 메모리 콘트롤러, 이를 포함하는 반도체 메모리 시스템 및 그 구동 방법 |
| KR10-2017-0149743 | 2017-11-10 | ||
| ??10-2017-0149743 | 2017-11-10 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| TW201919064A TW201919064A (zh) | 2019-05-16 |
| TWI769279B true TWI769279B (zh) | 2022-07-01 |
Family
ID=66433373
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| TW107124490A TWI769279B (zh) | 2017-11-10 | 2018-07-16 | 記憶體控制器、包括其的半導體記憶系統以及驅動方法 |
Country Status (4)
| Country | Link |
|---|---|
| US (1) | US10853169B2 (zh) |
| KR (1) | KR20190053646A (zh) |
| CN (1) | CN109767801B (zh) |
| TW (1) | TWI769279B (zh) |
Families Citing this family (10)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR20190047451A (ko) * | 2017-10-27 | 2019-05-08 | 에스케이하이닉스 주식회사 | 저항 변화 메모리 장치를 구비한 반도체 메모리 시스템 및 그 구동 방법 |
| KR102388615B1 (ko) | 2017-11-13 | 2022-04-21 | 에스케이하이닉스 주식회사 | 메모리 시스템 |
| KR102579824B1 (ko) * | 2018-02-27 | 2023-09-19 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작방법 |
| US11146289B2 (en) * | 2019-03-29 | 2021-10-12 | Intel Corporation | Techniques to use intrinsic information for a bit-flipping error correction control decoder |
| KR102733317B1 (ko) * | 2019-04-15 | 2024-11-25 | 에스케이하이닉스 주식회사 | 간섭 보상을 위한 메모리 시스템 및 메모리 시스템의 동작 방법 |
| KR102680521B1 (ko) * | 2019-06-18 | 2024-07-04 | 에스케이하이닉스 주식회사 | 메모리 컨트롤러 및 그 동작 방법 |
| KR102778101B1 (ko) * | 2019-08-21 | 2025-03-11 | 에스케이하이닉스 주식회사 | 반도체 메모리 장치, 이를 포함하는 반도체 메모리 시스템, 및 반도체 메모리 시스템의 구동방법 |
| KR102819155B1 (ko) * | 2020-02-25 | 2025-06-10 | 에스케이하이닉스 주식회사 | 저항 변화 메모리 장치 및 그 구동방법 |
| KR20220058127A (ko) * | 2020-10-30 | 2022-05-09 | 에스케이하이닉스 주식회사 | 컴퓨팅 시스템 및 그 동작 방법 |
| US11630590B1 (en) | 2022-01-11 | 2023-04-18 | Silicon Motion, Inc. | Method and apparatus for performing access control of memory device with aid of aggressor bit information |
Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20100332950A1 (en) * | 2009-06-30 | 2010-12-30 | Gurkirat Billing | Bit error threshold and content addressable memory to address a remapped memory device |
| US9502129B1 (en) * | 2015-09-10 | 2016-11-22 | Kabushiki Kaisha Toshiba | Memory system and method of controlling nonvolatile memory |
| US9715919B1 (en) * | 2016-06-21 | 2017-07-25 | Micron Technology, Inc. | Array data bit inversion |
Family Cites Families (15)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP3691113B2 (ja) * | 1995-06-07 | 2005-08-31 | 株式会社ルネサステクノロジ | メモリ回路、メモリ回路のデータ制御回路、およびメモリ回路のアドレス指定回路 |
| US7352621B2 (en) * | 2005-06-23 | 2008-04-01 | Intel Corporation | Method for enhanced block management |
| US8412987B2 (en) * | 2009-06-30 | 2013-04-02 | Micron Technology, Inc. | Non-volatile memory to store memory remap information |
| JP5740296B2 (ja) * | 2011-12-16 | 2015-06-24 | 株式会社東芝 | 半導体記憶装置、半導体記憶装置の制御方法、制御プログラム |
| KR20140025164A (ko) * | 2012-08-21 | 2014-03-04 | 삼성전자주식회사 | 불휘발성 메모리 장치 및 그것의 데이터 처리 방법 |
| US9442838B2 (en) * | 2012-10-22 | 2016-09-13 | Rambus Inc. | Remapping memory cells based on future endurance measurements |
| US9721656B2 (en) * | 2014-01-31 | 2017-08-01 | Hewlett Packard Enterprise Development Lp | Encoded cross-point array |
| US10014060B2 (en) | 2015-01-30 | 2018-07-03 | Sandisk Technologies Llc | Memory system and method for reducing read disturb errors |
| KR20160117222A (ko) * | 2015-03-30 | 2016-10-10 | 가부시키가이샤 한도오따이 에네루기 켄큐쇼 | 반도체 장치의 검사 방법 |
| JP2017022241A (ja) * | 2015-07-09 | 2017-01-26 | 株式会社東芝 | 半導体装置及び電子機器 |
| DE102015215401B4 (de) * | 2015-08-12 | 2020-10-01 | Infineon Technologies Ag | Speichervorrichtung und Verfahren zum Korrigieren einer gespeicherten Bitfolge |
| KR20170075355A (ko) | 2015-12-23 | 2017-07-03 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작 방법 |
| TWI595492B (zh) * | 2016-03-02 | 2017-08-11 | 群聯電子股份有限公司 | 資料傳輸方法、記憶體控制電路單元與記憶體儲存裝置 |
| KR20180057028A (ko) | 2016-11-21 | 2018-05-30 | 에스케이하이닉스 주식회사 | 데이터 반전 회로 |
| KR102791654B1 (ko) * | 2017-01-11 | 2025-04-09 | 에스케이하이닉스 주식회사 | 메모리 시스템의 어드레스 맵핑 방법 |
-
2017
- 2017-11-10 KR KR1020170149743A patent/KR20190053646A/ko not_active Withdrawn
-
2018
- 2018-07-06 US US16/029,083 patent/US10853169B2/en active Active
- 2018-07-16 TW TW107124490A patent/TWI769279B/zh active
- 2018-08-13 CN CN201810915858.9A patent/CN109767801B/zh active Active
Patent Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20100332950A1 (en) * | 2009-06-30 | 2010-12-30 | Gurkirat Billing | Bit error threshold and content addressable memory to address a remapped memory device |
| KR20110001883A (ko) * | 2009-06-30 | 2011-01-06 | 뉴모닉스 비.브이. 액팅 쓰루 잇츠 스위스 브랜치 | 리맵핑된 메모리 장치를 어드레스하기 위한 비트 에러 임계값 및 콘텐트 어드레서블 메모리 |
| US9502129B1 (en) * | 2015-09-10 | 2016-11-22 | Kabushiki Kaisha Toshiba | Memory system and method of controlling nonvolatile memory |
| US9715919B1 (en) * | 2016-06-21 | 2017-07-25 | Micron Technology, Inc. | Array data bit inversion |
Also Published As
| Publication number | Publication date |
|---|---|
| TW201919064A (zh) | 2019-05-16 |
| CN109767801A (zh) | 2019-05-17 |
| KR20190053646A (ko) | 2019-05-20 |
| US20190146871A1 (en) | 2019-05-16 |
| US10853169B2 (en) | 2020-12-01 |
| CN109767801B (zh) | 2023-02-24 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| TWI769279B (zh) | 記憶體控制器、包括其的半導體記憶系統以及驅動方法 | |
| US11126497B2 (en) | Method of equalizing bit error rates of memory device | |
| CN110473574B (zh) | 包括计数电路块的半导体系统 | |
| USRE50519E1 (en) | Cross-point memory device and method for converting and storing write data and associated parity to achieve uniform bit error rates | |
| US10937519B2 (en) | Memory devices, memory systems and methods of operating memory devices | |
| US10090044B2 (en) | System and method for burst programming directly to MLC memory | |
| US12105585B2 (en) | Method of equalizing bit error rates of memory device | |
| CN112349324B (zh) | 使用退化信息计算最优读取电压的存储设备 | |
| US9691477B2 (en) | Resistive memory system and method of operating the resistive memory system | |
| KR102800486B1 (ko) | Ecc 회로를 포함하는 메모리 컨트롤러, 이를 포함하는 메모리 시스템 및 메모리 시스템의 에러 정정 방법 | |
| US9881671B2 (en) | Resistive memory device, resistive memory system, and method of operating the resistive memory system | |
| US11847024B2 (en) | Memory controller, memory system including the same, and method of operating the memory controller | |
| US20190332322A1 (en) | Memory system including resistive variable memory device and operating method thereof | |
| KR102292167B1 (ko) | 배드 블록 관리 방법 및 메모리 시스템 |