TWI778028B - 記憶體系統及使用其的耗損均衡方法 - Google Patents
記憶體系統及使用其的耗損均衡方法 Download PDFInfo
- Publication number
- TWI778028B TWI778028B TW107107876A TW107107876A TWI778028B TW I778028 B TWI778028 B TW I778028B TW 107107876 A TW107107876 A TW 107107876A TW 107107876 A TW107107876 A TW 107107876A TW I778028 B TWI778028 B TW I778028B
- Authority
- TW
- Taiwan
- Prior art keywords
- memory
- data
- block
- wear leveling
- pages
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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; CALCULATING OR 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; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
- G06F12/0607—Interleaved addressing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/0616—Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/0629—Configuration or reconfiguration of storage systems
- G06F3/0631—Configuration or reconfiguration of storage systems by allocating resources to storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/0644—Management of space entities, e.g. partitions, extents, pools
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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
- G06—COMPUTING; CALCULATING OR 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/1032—Reliability improvement, data loss prevention, degraded operation etc
- G06F2212/1036—Life time enhancement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/20—Employing a main memory using a specific memory technology
- G06F2212/202—Non-volatile memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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; CALCULATING OR 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; CALCULATING OR 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/7205—Cleaning, compaction, garbage collection, erase control
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/7208—Multiple device management, e.g. distributing data over multiple flash devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/7211—Wear leveling
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Pharmaceuticals Containing Other Organic And Inorganic Compounds (AREA)
- Debugging And Monitoring (AREA)
- Communication Control (AREA)
- Memory System (AREA)
Abstract
一種記憶體系統,可以包括:記憶體裝置,其包括複數個記憶庫;以
及記憶體控制器,其適用於將連續邏輯位址的數據分配至對應記憶庫,並且控制數據讀取/寫入操作;其中,記憶體控制器將對應記憶庫的頁進行分組,並且基於對頁的每個組的數據的讀取/寫入操作來執行耗損均衡操作。
Description
本發明的各種示例實施例關於包括非揮發性記憶體裝置的記憶體系統,更具體地,關於對非揮發性記憶體裝置執行耗損均衡的記憶體系統及其操作方法。
記憶體裝置大致分為揮發性記憶體裝置和非揮發性記憶體裝置。
揮發性記憶體裝置具有較高的寫入/讀取速度,但是在電源被去除時易丟失儲存於其中的數據。揮發性記憶體裝置包括動態隨機存取記憶體(DRAM)、靜態RAM(SRAM)等。另一方面,非揮發性記憶體裝置具有相對較低的寫入/讀取速度,但是即使電源被去除也保留儲存於其中的數據。因此,非揮發性記憶體裝置用於儲存無論是否提供電源都必須被保留的數據。非揮發性記憶體裝置可以包括:唯讀記憶體(ROM)、掩模ROM(Mask ROM,MROM)、可編程ROM(Programmable ROM,PROM)、可擦除可編程ROM(Erasable Programmable ROM,EPROM)、電可擦除可編程ROM(Electrically Erasable Programmable ROM,EEPROM)、快閃記憶體、相變隨機存取記憶體
(Phase Change Random Access Memery,PCRAM)、磁阻式RAM(Magnetoresistive RAM,MRAM)、電阻式RAM(Resistive RAM,RRAM)和鐵電式RAM(Ferroelectric RAM,FRAM)。
在非揮發性記憶體裝置之中,RRAM和PCRAM具有有限的寫入耐久性。寫入耐久性可以定義為:在儲存媒介失去其可靠性之前可以施加至記憶體塊的寫入(即,編程)週期的數量。可以透過估算記憶體使用的頻率和整個記憶體的使用量來計算寫入耐久性。
因此,當寫入操作集中在特定的記憶體單元區域上時,記憶體裝置的壽命可能會迅速縮短。為了防止寫入操作集中在特定記憶體單元區域上,記憶體裝置執行耗損均衡操作,以便可以在記憶體裝置的整個記憶體單元區域中均勻地執行寫入操作。耗損均衡操作用於延長儲存媒介的寫入耐久性。這種技術是要將記憶體單元區域均勻地選擇為儲存媒介的寫入操作的目標區域。因此,當減少儲存媒介中的特定記憶體單元區域的重複使用時,可以均勻使用所有記憶體單元區域。
通常,耗損均衡操作由記憶體控制器執行。例如,當針對儲存媒介的寫入請求被輸入時,記憶體控制器計算與寫入請求對應的記憶體單元區域上的重寫計數。透過參考重寫計數而改變數據的邏輯位址與物理位址之間的映射關係,記憶體控制器控制儲存媒介,以對記憶體單元區域中相對較少使用的區域執行寫入操作。
在包括複數個記憶體裝置的記憶體系統中,記憶體控制器必須有效地控制複數個記憶體裝置以高速處理數據。為了有效地控制複數個記憶體裝置,記憶體控制器例如透過交錯存取方案(interleaving scheme)以平行的方
式控制記憶體裝置。即,記憶體控制器平行地控制複數個記憶體裝置以處理數據,並且使對應記憶體裝置的空閒時間最小化。
當在複數個記憶體裝置之中平行地調度上述耗損均衡操作時,可以增強包括複數個記憶體裝置的記憶體系統的性能。交錯存取方案可以透過在從主機請求的數據的邏輯位址與記憶體裝置的物理位址之間的映射(比如耗損均衡操作)來實現。因此,記憶體控制器需要將數據的邏輯位址映射至物理位址,以便可以反應這種操作。
各種實施例針對能夠在複數個記憶體區域之中平行執行耗損均衡操作的記憶體系統及其操作方法。
根據本發明的一個實施例,一種記憶體系統,包括:記憶體裝置,其包括複數個記憶庫;以及記憶體控制器,其適用於將連續邏輯位址的數據分配至對應記憶庫,控制數據的讀取/寫入操作,將對應記憶庫的頁進行分組,並且根據以頁的每個組為基礎的數據的讀取/寫入操作來執行耗損均衡操作。
根據本發明的一個實施例,一種記憶體系統的操作方法,其透過交錯存取操作來從記憶體裝置讀取數據以及將數據寫入記憶體裝置,該操作方法包括:對包括在記憶體裝置中的複數個記憶庫的對應頁進行分組;對所分組的數據的讀取/寫入操作進行檢查;根據讀取/寫入操作的檢查的結果來選擇所分組中的一個組;以及對選中的組執行耗損均衡操作。
根據本發明的一個實施例,一種記憶體系統,包括:複數個記憶庫,每個記憶庫包括複數個塊並且適用於儲存數據;以及控制器,其適用於控制複數個記憶庫逐頁地執行具有連續邏輯位址的數據的寫入操作,其中,控制器將邏輯位址依序映射至對應記憶庫中的頁的物理位址並且將對應記憶庫的頁設置為記憶體塊,以及其中,一旦寫入操作完成,控制器就對記憶體塊執行耗損均衡操作。
本申請案請求2017年5月8日提交的申請號為10-2017-0057542的韓國專利申請案的優先權,其全部內容透過引用合併於此。
100:數據處理系統
110:主機
120:記憶體系統
130:記憶體控制器
140:記憶體裝置
210:處理器
220:記憶體
310:交錯存取模組
320:位址映射表
330:耗損均衡模組
410:位址轉換單元
420:耗損均衡單元
421:塊交換單元
422:頁交換單元
430:設置單元
ADD:位址
BA:記憶庫位址
BANK0~BANK7:記憶庫
BLK0~BLK4:記憶體塊
CMD:命令
DATA:數據
LA:內部位址
LBA:邏輯塊位址
PA:內部位址
PBA:物理塊位址
R/W:讀取/寫入命令
S610~S650:步驟
圖1是示出根據本發明的一個實施例的包括記憶體系統的數據處理系統的示圖。
圖2是示出圖1的記憶體控制器的方塊圖。
圖3是示出圖2的記憶體的方塊圖。
圖4是示出圖3的耗損均衡模組的方塊圖。
圖5是描述圖4的耗損均衡模組的操作的示圖。
圖6是示出根據本發明的一個實施例的記憶體系統的耗損均衡操作的流程圖。
下面將參考圖式更詳細地描述各種示例性實施例。然而,本發明可以以不同的形式來實施,並且不應被解釋為限於本文所闡述的實施例。相反,提供這些實施例使得本發明將是全面和完整的,並且將本發明的範圍充分地傳達給本領域技術人員。貫穿本發明,在本發明的各個圖式和實施例中,相同的元件符號表示相同的部件。
圖1是示出根據本發明的一個實施例的包括記憶體系統120的數據處理系統100的示圖。參考圖1,數據處理系統100還可以包括主機110。
主機110可以包括便攜式電子設備,諸如行動電話和MP3播放器,或者其他電子設備,諸如筆記型電腦、桌上型電腦、遊戲機、電視和光束投影機。
記憶體系統120可以回應於來自主機110的請求而操作。記憶體系統120可以儲存被主機110存取的數據。即,記憶體系統120可以作為主機110的主儲存單位或輔助儲存單位。記憶體系統120可以包括記憶體控制器130和記憶體裝置140。
記憶體控制器130可以回應於來自主機110的請求而控制記憶體裝置140。例如,記憶體控制器130可以將從記憶體裝置140讀取的數據DATA提供給主機110。針對另一個示例,記憶體控制器130可以將從主機110提供的數據DATA儲存至記憶體裝置140中。對於此操作,記憶體控制器130可以將命令CMD和位址ADD以及數據DATA傳輸至記憶體裝置140,並且控制讀取操作或寫入(編程)操作。
記憶體裝置140可以包括具有複數個記憶體單元的非揮發性記憶體裝置。根據本實施例,記憶體裝置140可以包括PCRAM。儘管本實施例
不限於此,但是記憶體裝置140還可以包括可變電阻記憶體裝置,諸如MRAM、PRAM和FRAM。可選地,記憶體裝置140可以包括諸如NAND或NOR快閃記憶體的非揮發性記憶體裝置。
記憶體裝置140可以包括複數個記憶庫BANK0~BANK7。為了便於描述,圖1示出了八個記憶庫BANK0~BANK7,但是本實施例不限於此。儘管未示出,但是記憶庫BANK0~BANK7中的每個記憶庫都包括由包括在記憶體裝置140中的平面劃分的複數個頁。頁可以表示用於劃分被執行讀取操作或寫入操作的記憶體單元的單位,而平面可以表示用於劃分共享頁緩衝器的記憶體單元塊的單位。
因此,記憶體控制器130可以控制在記憶體裝置140的記憶庫BANK0~BANK7中的交錯存取操作。記憶體控制器130可以平行地存取對應記憶庫BANK0~BANK7的頁,以便處理(讀取/寫入)數據。
圖2是示出圖1的記憶體控制器130的方塊圖。參考圖2,記憶體控制器130可以包括處理器210和記憶體220。然而,記憶體控制器130的組件不限於此。例如,記憶體控制器130還可以包括:主機介面、記憶體介面、錯誤校正碼(ECC)單元等。
處理器210可以包括微處理器或者CPU。處理器210可以控制記憶體控制器130的整體操作。處理器210可以驅動韌體以控制記憶體控制器130的整體操作。韌體被載入至記憶體220,然後被驅動。
記憶體220可以作為記憶體控制器130的工作記憶體,並且儲存用於驅動記憶體系統120的數據。更具體地,記憶體220可以儲存記憶體控制
器130回應於來自主機110的請求而執行記憶體裝置140的讀取操作或寫入操作所需的韌體和數據。
記憶體220可以包括揮發性記憶體。如上所述,記憶體220不僅可以儲存執行記憶體裝置140的各種操作所需的數據,而且也可以暫時地儲存在主機110與記憶體裝置140之間所讀取/寫入的數據。為了這種儲存操作,記憶體220可以包括程式記憶體、數據記憶體、寫入緩衝器/快取、讀取緩衝器/快取、映射緩衝器/快取等。
圖3是示出圖2的記憶體220的方塊圖。參考圖3,載入至記憶體220的韌體可以包括複數個模組和管理數據。
根據本實施例,韌體可以包括交錯存取模組310、位址映射表320和耗損均衡模組330。然而,記憶體220的配置不限於此。例如,韌體還可以包括:壞塊管理模組,其用於管理包括有缺陷記憶體單元的塊;以及突發關機管理模組,其用於為意外關機做準備。
交錯存取模組310可以在記憶體裝置140的複數個記憶庫BANK0~BANK7之中執行交錯存取操作。交錯存取模組310可以透過交錯存取操作來管理要被寫入記憶體裝置140中的數據。例如,交錯存取模組310可以將要被寫入記憶體裝置140中的數據劃分成預定大小,並且混合所劃分的數據以將所劃分的數據重新配置成實際要被寫入記憶體裝置140中的交錯存取數據。交錯存取模組310可以將交錯存取數據平行地寫入到記憶體裝置140的記憶庫BANK0~BANK7中。
當主機110存取記憶體系統120時,主機110可以提供數據的邏輯位址。記憶體控制器130可以將所提供的邏輯位址轉換為記憶體裝置140的
物理位址,並且透過參考物理位址來執行所請求的操作。對於位址轉換操作,韌體可以包括位址映射表320,並且儲存或管理邏輯位址與物理位址之間的轉換(映射)關係。
透過交錯存取操作,交錯存取模組310將連續邏輯位址的數據分配至記憶體裝置140的對應記憶庫BANK0~BANK7,並且控制數據讀取/寫入操作。對於此操作,交錯存取模組310可以將數據的邏輯位址依序映射至在對應記憶庫BANK0~BANK7中的頁的物理位址,並且將映射關係儲存在映射表320中。因此,記憶體控制器130可以透過交錯存取操作在記憶體裝置140的記憶庫BANK0~BANK7之中平行地處理數據。
耗損均衡模組330可以管理構成記憶體裝置140的記憶體單元的耗損程度。當記憶體裝置140包括可變電阻記憶體裝置時,記憶體裝置140可以支持數據重寫。換言之,記憶體裝置140的記憶體單元可以因寫入操作而老化,並且老化了的記憶體單元(即,耗損的記憶體單元)可以引起缺陷(例如,物理缺陷)。
因此,耗損均衡模組330可以透過寫入操作的單位或者根據寫入操作的方案來對記憶體裝置140執行耗損均衡操作。根據一個實施例,可以在記憶體裝置140的複數個記憶庫BANK0~BANK7之中以交錯存取方式來處理數據。因而,耗損均衡模組330也可以在複數個記憶庫BANK0~BANK7之中以交錯存取方式執行耗損均衡操作。
對於此操作,耗損均衡模組330可以將對應記憶庫BANK0~BANK7中的頁進行分組。例如,當記憶庫BANK0~BANK7中的每個記憶庫包括N個頁(其中,N是自然數)時,對應記憶庫BANK0~BANK7中
的第K頁可以被分組以形成第K組(其中,K是小於N的自然數)。耗損均衡模組330可以根據對每個頁組的數據的讀取/寫入操作來執行耗損均衡操作。
圖4是示出圖3的耗損均衡模組330的方塊圖。參考圖4,耗損均衡模組330可以包括位址轉換單元410、耗損均衡單元420和設置單元430。圖4示出了耗損均衡模組330中包括位址轉換單元410。然而,本發明不限於此,並且位址轉換單元410可以被獨立地配置或者由交錯存取模組310共享。
位址轉換單元410可以將從主機110輸入的數據的邏輯位址映射至記憶體裝置140的物理位址。透過交錯存取操作,位址轉換單元410可以將數據的邏輯位址依序映射至對應記憶庫BANK0~BANK7中的頁的物理位址。此時,為了以被依序映射的頁為基礎來執行耗損均衡,位址轉換單元410可以將對應記憶庫BANK0~BANK7中的對應頁分組為使用相同物理塊位址的記憶體塊。位址轉換單元410可以將映射關係儲存在位址映射表320中,並且透過參考位址映射表320將邏輯位址轉換成物理位址。
耗損均衡單元420可以對由位址轉換單元設置的記憶體塊的寫入操作的完成進行檢查,根據檢查結果來選擇複數個記憶體塊中的一個記憶體塊,以及對選中的記憶體塊執行耗損均衡操作。耗損均衡單元420可以對記憶體塊的數據的寫入操作進行計數,並且將該計數與參考計數進行比較。
回應於讀取/寫入命令R/W,耗損均衡單元420可以在從主機110請求寫入操作時增大寫入操作的目標記憶體塊的計數。此外,耗損均衡單元420可以將增大的計數與參考計數進行比較。此時,當增大的計數等於或大於參考計數或者寫入操作的計數等於或大於參考計數時,耗損均衡單元420可以將對應的記憶體塊選擇為耗損均衡操作的目標記憶體塊。
參考圖4,耗損均衡單元420可以包括塊交換單元421和頁交換單元422。
塊交換單元421可以將選中的記憶體塊的數據與另一記憶體塊的數據進行交換,選中的記憶體塊表示計數等於或大於參考計數的記憶體塊。此時,另一個記憶體塊可以包括對其的寫入操作從未進行計數的記憶體塊或計數相對較低的記憶體塊。
此時,可以透過交錯存取操作在記憶庫BANK0~BANK7之中平行處理透過耗損均衡操作而被交換的數據。位址轉換單元410還可以透過交錯存取操作將數據的邏輯位址重新映射至物理位址。透過重新映射操作,位址轉換單元410可以改變儲存在位址映射表320中的位址映射關係。將參照圖5示出的實施例更詳細地描述透過交錯存取操作的數據交換或位址重新映射。
頁交換單元422可以對包括在選中的記憶體塊或計數等於或大於參考計數的記憶體塊中的頁的數據進行交換。頁交換單元422可以對包括在選中的記憶體塊中的全部頁或部分頁的數據進行交換。此時,頁交換單元422可以選擇選中的記憶體塊中的任意頁。塊交換單元421和頁交換單元422可以具有不同的參考計數。
設置單元430可以儲存用於決定耗損均衡操作的基礎資訊。例如,設置單元430可以設置耗損均衡操作的參考值,諸如記憶體裝置140中包括的記憶庫的數量、對應頁組中頁的數量和物理塊位址的位元的數量。設置單元430可以設置塊交換單元421的參考計數和頁交換單元422的參考計數,並且位址轉換單元410可以透過參考由設置單元430設置和儲存的資訊來將數據的邏輯位址映射至記憶體裝置140的物理位址。
圖5是描述圖4的耗損均衡模組330的操作的示圖。
位址轉換單元410可以將從主機110輸入的邏輯位址映射成記憶體裝置140的物理位址。此時,邏輯位址可以包括邏輯塊位址LBA和內部位址LA。邏輯塊位址LBA可以表示對應數據的邏輯塊,而內部位址LA可以表示邏輯塊中的邏輯頁的位置。
如上所述,可以將數據分配到記憶體裝置140中包括的對應記憶庫中,並且透過記憶體裝置140的交錯存取操作來平行處理數據。因此,記憶體裝置140的物理位址可以包括記憶庫位址,該記憶庫位址表示數據被分配到其中的記憶庫。圖5示出了記憶體裝置140包括四個記憶庫BANK0~BANK3。因而,記憶庫位址BA可以包括2-位元位址。
位址轉換單元410可以進一步地分配物理塊位址PBA和內部位址PA,以便表示儲存有數據的頁。物理塊位址PBA可以表示包括頁的記憶體塊,而內部位址PA可以表示記憶體塊中的頁的位置。圖5示出了對應記憶庫BANK0~BANK3中的每個記憶庫中的記憶體塊BLK0~BLK4中的每個記憶體塊包括四個頁。因此,內部位址PA也可以包括2-位元位址。然而,應當注意的是,本實施例不限於此,並且可以根據實施例來改變這種配置。
圖5示出了透過耗損均衡操作來將第一記憶體塊BLK0的數據與第三記憶體塊BLK2的數據進行交換。參考圖5,將更詳細地描述根據本實施例的耗損均衡操作。在圖5中,對應記憶庫BANK0~BANK3的內部方框表示頁,並且在頁中所呈現的數字可以表示儲存在對應頁中的數據的邏輯位址。即,可以將邏輯位址0至79的數據依序儲存在對應記憶庫BANK0~BANK3的對應頁中。
對於此操作,位址轉換單元410可以將數據的邏輯位址依序映射至對應記憶庫BANK0~BANK3的對應頁的物理位址。例如,位址轉換單元410可以將數據的邏輯位址0至3依序映射至對應記憶庫BANK0~BANK3的第一頁的物理位址。如圖5所示,當對應記憶庫BANK0~BANK3的第K頁被全部映射時,對應記憶庫BANK0~BANK3的第(K+1)頁可以被依序映射。
為了以被依序映射的頁為基礎來執行耗損均衡,位址轉換單元410可以將對應記憶庫BANK0~BANK3的對應頁分組為使用相同物理塊位址的記憶體塊BLK0~BLK4。例如,圖5示出了記憶庫BANK0~BANK3的前四頁被分組為具有第一記憶體塊BLK0的相同物理塊位址。同樣,圖5示出了記憶庫BANK0~BANK3的第二個四頁被分組為具有第二記憶體塊BLK1的相同物理塊位址。
然後,根據耗損均衡操作,耗損均衡單元420可以對記憶體塊BLK0~BLK4中的每個記憶體塊的寫入操作進行計數。耗損均衡單元420將該計數與參考計數進行比較,並且將記憶體塊BLK0~BLK4之中計數等於或大於參考計數的記憶體塊選擇為耗損均衡操作的目標記憶體塊。
在記憶體塊BLK0~BLK4之中,可以將選中的記憶體塊的數據與計數相對較低的另一個記憶體塊的數據進行交換。例如,可以將第一記憶體塊BLK0的數據與第三記憶體塊BLK2的數據進行交換。此時,可以透過交錯存取操作在記憶庫BANK0~BANK3之中平行處理所交換的數據。
在第一記憶庫BANK0中,可以將第一記憶體塊BLK0的邏輯位址0、4、8和12的數據與第三記憶體塊BLK2的邏輯位址32、36、40和44的數據進行交換。類似地,在第四記憶庫BANK3中,可以將第一記憶體塊
BLK0的邏輯位址3、7、11和15的數據與第三記憶體塊BLK2的邏輯位址35、39、43和47的數據進行交換。結果,可以維持內部位址PA以及所交換的數據的記憶庫位址BA。因此,位址轉換單元410可以僅將與第一記憶體塊BLK0和第三記憶體塊BLK2相對應的物理塊位址PBA進行交換,由此完成透過交錯存取操作的位址重新映射。
圖6是示出根據本實施例的記憶體系統120的耗損均衡操作的流程圖。
參考圖6,在步驟S610中,記憶體控制器130的耗損均衡模組330可以將與包括在如圖1所示例的記憶體裝置140中的對應記憶庫BANK0~BANK7相對應的頁進行分組。如上所述,記憶體系統120可以透過交錯存取操作從記憶體裝置140讀取數據以及將數據寫入記憶體裝置140。換言之,位址轉換單元410可以將數據的邏輯位址依序映射至對應記憶庫BANK0~BANK7中的對應頁的物理位址。因此,連續邏輯位址的數據可以被分配至對應記憶庫BANK0~BANK7並且被平行處理。為了以被依序映射的頁為基礎來執行耗損均衡,位址轉換單元410可以將對應記憶庫BANK0~BANK7的對應頁分組為使用相同物理塊位址的記憶體塊。
在步驟S620和步驟S630中,耗損均衡模組330可以對頁組的讀取/寫入操作的完成進行檢查。具體地,在步驟S620中,耗損均衡單元420可以對頁組或記憶體塊的寫入操作進行計數。當從主機110請求寫入操作時,耗損均衡單元420可以增大與所請求的寫入操作相對應的記憶體塊的計數。此外,在步驟S630中,耗損均衡單元420可以將該計數與參考計數進行比較。
即,當記憶體塊的計數增大時,耗損均衡單元420可以將增大的計數與參考計數進行比較。
根據在步驟S620和步驟S630中的讀取/寫入操作的檢查的結果,在步驟S640和步驟S650中,耗損均衡模組330將頁組中的一個頁組選擇為目標頁組並且對選中的頁組執行耗損均衡操作。即,當耗損均衡單元420的比較結果表示該計數等於或大於參考計數(在步驟S630中為「是」)時,在步驟S640中,耗損均衡單元420可以選擇對應的記憶體塊,並且將選中的記憶體塊的數據與記憶體塊之中計數相對較低的另一個記憶體塊的數據進行交換。此時,可以透過交錯存取操作在記憶庫BANK0~BANK7之中平行處理所交換的數據。因此,位址轉換單元410可以透過僅將所交換的數據的物理塊位址進行交換來執行重新映射。在另一個實施例中,在步驟S650中,耗損均衡單元420可以將包括在選中的記憶體塊中的頁的數據進行交換。
根據本實施例,可以在包括在記憶體系統中的複數個記憶體區域之中平行地執行耗損均衡操作。即,可以在複數個記憶體區域之中以交錯存取方式來執行用於耗損均衡操作的數據讀取/寫入操作。對於此操作,記憶體系統可以跨複數個記憶體區域設置耗損均衡操作的單位,根據所設置的操作單位來將數據的邏輯位址映射至記憶體區域的物理位址。因此,記憶體系統可以減少耗損均衡操作所需的數據處理時間,並且提高耗損均衡性能。
雖然出於說明目的已經描述了各種實施例,但是對於本領域技術人員明顯的是,在不脫離如所附申請專利範圍所限定的本發明的精神和範圍的情況下,可以進行各種改變和修改。
330:耗損均衡模組
410:位址轉換單元
420:耗損均衡單元
421:塊交換單元
422:頁交換單元
430:設置單元
R/W:讀取/寫入命令
Claims (19)
- 一種記憶體系統,包括:記憶體裝置,其包括複數個記憶庫,其中該等記憶庫的各個記憶庫包含複數個頁;以及記憶體控制器,其適用於:將連續邏輯位址的數據分配至對應的該等記憶庫,控制該數據的讀取/寫入操作,將對應的該等記憶庫的頁進行分組以藉由該等記憶庫個別的第k頁來設置使用一個物理塊位址的記憶體塊,並且基於對該等記憶庫個別被分組的第k頁的數據的讀取/寫入操作來執行耗損均衡操作,其中,k為自然數。
- 如請求項1所述的記憶體系統,其中,該記憶體控制器將該數據的邏輯位址依序映射至該等記憶庫個別被分組的第k頁的物理位址,並且透過交錯存取操作來控制該等記憶庫之中的該數據的讀取/寫入操作。
- 如請求項2所述的記憶體系統,其中,該記憶體控制器透過交錯存取操作在該等記憶庫之中平行處理數據。
- 如請求項2所述的記憶體系統,其中,該物理位址具有記憶庫位址、物理塊位址和內部位址。
- 如請求項2所述的記憶體系統,其中,該記憶體控制器包括:位址轉換單元,其適用於將邏輯位址映射至物理位址並且設置記憶體塊; 耗損均衡單元,其適用於對記憶體塊的數據的寫入操作進行檢查,根據檢查結果來選擇記憶體塊中的一個記憶體塊,並且對選中的記憶體塊執行耗損均衡操作;以及設置單元,其適用於設置耗損均衡操作的參考值。
- 如請求項5所述的記憶體系統,其中,該耗損均衡單元對每個記憶體塊的數據的寫入操作進行計數,並且選擇記憶體塊之中計數值等於或大於參考值的記憶體塊。
- 如請求項6所述的記憶體系統,其中,該耗損均衡單元包括塊交換單元,所述塊交換單元適用於將選中的記憶體塊的數據與記憶體塊之中計數相對較低的另一個記憶體塊的數據進行交換。
- 如請求項7所述的記憶體系統,其中,所交換的數據透過交錯存取操作在該等記憶庫之中被平行處理。
- 如請求項7所述的記憶體系統,其中,該位址轉換單元對所交換的數據的物理塊位址進行重新映射。
- 如請求項6所述的記憶體系統,其中,該耗損均衡單元包括頁交換單元,所述頁交換單元適用於將包括在選中的記憶體塊中的頁的數據進行交換。
- 一種記憶體系統的操作方法,其透過交錯存取操作來從記憶體裝置讀取數據以及將數據寫入記憶體裝置,該記憶體裝置包括複數個記憶庫,所述操作方法包括:對該等記憶庫的多個頁進行分組以藉由該等記憶庫個別的第k頁來設置使用一個物理塊位址的記憶體塊,其中k為自然數;對所分組的數據的讀取/寫入操作進行檢查; 根據讀取/寫入操作的檢查的結果來選擇所分組中的一個組;以及對選中的組執行耗損均衡操作。
- 如請求項11所述的操作方法,還包括:將數據的邏輯位址依序映射至該等記憶庫個別被分組的第k頁的物理位址,並且透過交錯存取操作來讀取/寫入數據。
- 如請求項11所述的操作方法,其中,對所分組的數據的讀取/寫入操作進行檢查包括:對每個記憶體塊的數據寫入操作進行計數;以及將計數值與參考值進行比較。
- 如請求項13所述的操作方法,其中,選擇所分組中的一個組並執行耗損均衡操作包括:基於比較的結果而選擇記憶體塊之中計數值等於或大於參考值的記憶體塊;以及將選中的記憶體塊的數據與記憶體塊之中計數值相對低的另一個記憶體塊的數據進行交換。
- 如請求項14所述的操作方法,其中,所交換的數據透過交錯存取操作在該等記憶庫之中被平行處理。
- 如請求項14所述的操作方法,其中,交換選中的記憶體塊的數據包括對所交換的數據的物理塊位址進行重新映射。
- 如請求項13所述的操作方法,其中,選擇所分組中的一個組並執行耗損均衡操作包括:基於比較的結果而選擇記憶體塊之中計數值等於或大於參考值的記憶體塊;以及 對包括在選中的記憶體塊中的頁的數據進行交換。
- 如請求項11所述的操作方法,其中,連續邏輯位址的數據透過交錯存取操作被分配至對應的該等記憶庫並且被平行處理。
- 一種記憶體系統,包括:複數個記憶庫,每個記憶庫包括複數個頁並且適用於儲存數據;以及控制器,其適用於控制所述複數個記憶庫逐頁地執行具有連續邏輯位址的數據的寫入操作,其中,所述控制器將所述數據的邏輯位址依序映射至對應的所述複數個記憶庫中的頁的物理位址並且對所述複數個記憶庫的頁進行分組以藉由所述複數個記憶庫個別的第k頁來設置使用一個物理塊位址的記憶體塊,其中k為自然數,以及其中,一旦寫入操作完成,所述控制器就對該等記憶庫個別被分組的第k頁執行耗損均衡操作。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2017-0057542 | 2017-05-08 | ||
KR1020170057542A KR20180123385A (ko) | 2017-05-08 | 2017-05-08 | 메모리 시스템 및 이를 이용한 웨어-레벨링 방법 |
??10-2017-0057542 | 2017-05-08 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201907288A TW201907288A (zh) | 2019-02-16 |
TWI778028B true TWI778028B (zh) | 2022-09-21 |
Family
ID=64014656
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW107107876A TWI778028B (zh) | 2017-05-08 | 2018-03-08 | 記憶體系統及使用其的耗損均衡方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US10871919B2 (zh) |
KR (1) | KR20180123385A (zh) |
CN (1) | CN108959112B (zh) |
TW (1) | TWI778028B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102500618B1 (ko) * | 2017-12-12 | 2023-02-16 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그것의 동작 방법 |
US11188461B2 (en) * | 2019-06-19 | 2021-11-30 | Micron Technology, Inc. | Garbage collection adapted to memory device life expectancy |
CN112230845B (zh) * | 2019-07-15 | 2024-06-14 | 美光科技公司 | 存储器子系统中基于子组写计数的损耗均衡 |
CN110837444B (zh) * | 2019-09-30 | 2022-10-18 | 超聚变数字技术有限公司 | 一种存储器故障处理方法及装置 |
TWI721660B (zh) * | 2019-11-22 | 2021-03-11 | 財團法人工業技術研究院 | 控制資料讀寫裝置與方法 |
KR20210121696A (ko) * | 2020-03-31 | 2021-10-08 | 에스케이하이닉스 주식회사 | 컨트롤러 및 메모리 시스템 |
JP2023066803A (ja) * | 2021-10-29 | 2023-05-16 | キオクシア株式会社 | メモリシステム |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100088461A1 (en) * | 2008-10-02 | 2010-04-08 | Yang Wun Mo | Solid state storage system using global wear leveling and method of controlling the solid state storage system |
EP2921963A1 (en) * | 2013-02-22 | 2015-09-23 | Huawei Technologies Co., Ltd. | Memory recycling method and device |
TWI506431B (zh) * | 2012-12-28 | 2015-11-01 | Infomicro Electronics Shenzhen Ltd | 虛擬記憶體設備驅動器、用於在主機上執行之虛擬記憶體設備驅動器、刷新快閃記憶體的方法、快閃記憶體刷新的方法、超級增強耐力設備硬碟固體狀態驅動機耐用轉換層之方法、超級增強耐力設備及耐力快閃記憶體檔案系統 |
US20150347292A1 (en) * | 2014-05-29 | 2015-12-03 | International Business Machines Corporation | Writing an address conversion table for nonvolatile memory wear leveling |
US9564246B2 (en) * | 2015-02-05 | 2017-02-07 | SK Hynix Inc. | Semiconductor device and operating method thereof |
US9594675B2 (en) * | 2009-12-31 | 2017-03-14 | Nvidia Corporation | Virtualization of chip enables |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3507132B2 (ja) * | 1994-06-29 | 2004-03-15 | 株式会社日立製作所 | フラッシュメモリを用いた記憶装置およびその記憶制御方法 |
US7428615B2 (en) * | 2002-10-04 | 2008-09-23 | Nxp, B.V. | System and method for maintaining coherency and tracking validity in a cache hierarchy |
KR100857761B1 (ko) * | 2007-06-14 | 2008-09-10 | 삼성전자주식회사 | 웨어 레벨링을 수행하는 메모리 시스템 및 그것의 쓰기방법 |
US9063874B2 (en) * | 2008-11-10 | 2015-06-23 | SanDisk Technologies, Inc. | Apparatus, system, and method for wear management |
US20110161553A1 (en) * | 2009-12-30 | 2011-06-30 | Nvidia Corporation | Memory device wear-leveling techniques |
TWI454916B (zh) * | 2012-05-08 | 2014-10-01 | Phison Electronics Corp | 儲存單元管理方法、記憶體控制器與記憶體儲存裝置 |
KR102042859B1 (ko) * | 2013-10-14 | 2019-11-08 | 에스케이하이닉스 주식회사 | 반도체 장치 및 그 동작 방법 |
US9465537B2 (en) * | 2014-05-16 | 2016-10-11 | Kabushiki Kaisha Toshiba | Memory system and method of controlling memory system |
US10365835B2 (en) * | 2014-05-28 | 2019-07-30 | Micron Technology, Inc. | Apparatuses and methods for performing write count threshold wear leveling operations |
-
2017
- 2017-05-08 KR KR1020170057542A patent/KR20180123385A/ko unknown
-
2018
- 2018-03-08 US US15/915,147 patent/US10871919B2/en active Active
- 2018-03-08 TW TW107107876A patent/TWI778028B/zh active
- 2018-05-04 CN CN201810419393.8A patent/CN108959112B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100088461A1 (en) * | 2008-10-02 | 2010-04-08 | Yang Wun Mo | Solid state storage system using global wear leveling and method of controlling the solid state storage system |
US9594675B2 (en) * | 2009-12-31 | 2017-03-14 | Nvidia Corporation | Virtualization of chip enables |
TWI506431B (zh) * | 2012-12-28 | 2015-11-01 | Infomicro Electronics Shenzhen Ltd | 虛擬記憶體設備驅動器、用於在主機上執行之虛擬記憶體設備驅動器、刷新快閃記憶體的方法、快閃記憶體刷新的方法、超級增強耐力設備硬碟固體狀態驅動機耐用轉換層之方法、超級增強耐力設備及耐力快閃記憶體檔案系統 |
EP2921963A1 (en) * | 2013-02-22 | 2015-09-23 | Huawei Technologies Co., Ltd. | Memory recycling method and device |
US20150347292A1 (en) * | 2014-05-29 | 2015-12-03 | International Business Machines Corporation | Writing an address conversion table for nonvolatile memory wear leveling |
US9564246B2 (en) * | 2015-02-05 | 2017-02-07 | SK Hynix Inc. | Semiconductor device and operating method thereof |
Also Published As
Publication number | Publication date |
---|---|
CN108959112A (zh) | 2018-12-07 |
KR20180123385A (ko) | 2018-11-16 |
CN108959112B (zh) | 2023-08-04 |
TW201907288A (zh) | 2019-02-16 |
US20180321878A1 (en) | 2018-11-08 |
US10871919B2 (en) | 2020-12-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI778028B (zh) | 記憶體系統及使用其的耗損均衡方法 | |
US11586357B2 (en) | Memory management | |
CN112470113B (zh) | 存储器系统中的隔离性能域 | |
US20100082917A1 (en) | Solid state storage system and method of controlling solid state storage system using a multi-plane method and an interleaving method | |
US12050809B2 (en) | Multi-pass data programming in a memory sub-system having multiple dies and planes | |
US20100088461A1 (en) | Solid state storage system using global wear leveling and method of controlling the solid state storage system | |
US11513948B2 (en) | Controller and memory system | |
US10860474B2 (en) | Multilevel addressing | |
US20200034080A1 (en) | Data storage device and control method for non-volatile memory | |
US11714752B2 (en) | Nonvolatile physical memory with DRAM cache | |
CN111913556A (zh) | 储存装置及储存装置的操作方法 | |
US8423707B2 (en) | Data access method for flash memory and storage system and controller using the same | |
US20220057938A1 (en) | Memory controller and operating method thereof | |
US11543998B2 (en) | Memory controller for controlling different numbers of memory devices and storage device including the same | |
US11782617B2 (en) | Host device, storage device, and electronic device | |
US11782788B2 (en) | Error-correction-detection coding for hybrid memory module | |
US20230036841A1 (en) | Storage devices, storage controllers, and operating methods of storage controllers | |
US10025724B1 (en) | Address mapping method of memory system | |
TWI724550B (zh) | 資料儲存裝置以及非揮發式記憶體控制方法 | |
US11210223B2 (en) | Storage device and operating method thereof | |
US20220350485A1 (en) | Memory system and method for controlling memory system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
GD4A | Issue of patent certificate for granted invention patent |