TWI850805B - 記憶體裝置及記憶體操作方法 - Google Patents
記憶體裝置及記憶體操作方法 Download PDFInfo
- Publication number
- TWI850805B TWI850805B TW111139699A TW111139699A TWI850805B TW I850805 B TWI850805 B TW I850805B TW 111139699 A TW111139699 A TW 111139699A TW 111139699 A TW111139699 A TW 111139699A TW I850805 B TWI850805 B TW I850805B
- Authority
- TW
- Taiwan
- Prior art keywords
- memory
- block group
- data
- read
- super block
- Prior art date
Links
Images
Classifications
-
- 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
- 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
- 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/061—Improving I/O performance
-
- 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/0616—Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
-
- 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/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0653—Monitoring storage devices or systems
-
- 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
- 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/1032—Reliability improvement, data loss prevention, degraded operation etc
- G06F2212/1036—Life time enhancement
-
- 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/7208—Multiple device management, e.g. distributing data over multiple flash devices
-
- 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/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)
- Computer Security & Cryptography (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Read Only Memory (AREA)
Abstract
一種記憶體操作方法,包含:當記憶體裝置的第一超區塊組為開放區塊(或處於編程狀態)時,取得第一超區塊組中複數個第一記憶區塊之一者的第一讀取次數,其中第一讀取次數為該些第一記憶區塊之該者的資料被讀取出的次數;判斷第一讀取次數是否大於第一閾值;以及在第一讀取次數大於第一閾值時,將第一超區塊組中至少一部分的資料搬移至記憶體裝置中的安全區域,其中至少一部分資料包含第一記憶區塊之該者的資料。
Description
本揭示內容係關於非揮發性記憶體,特別是根據記憶體讀取次數,選擇性地搬移內部資料的記憶體操作方法與相關的記憶體裝置。
非揮發性記憶體(non-volatile memory)的種類繁多,包含快閃記憶體(flash memor)、磁阻隨機存取記憶體(magnetoresistive random access memory)、鐵電隨機存取記憶體(ferroelectric RAM)、可變電阻式記憶體(resistive RAM)及旋轉力矩轉移隨機存取記憶體(spin-Torque Transfer RAM;STT-RAM)等。非揮發性記憶體常被應用於資料儲存設備的儲存介質,但由於非揮發性記憶體中的資料可能會隨著多次的重複讀取而損壞,因此需要一種解決方案。
本揭示內容之一態樣為一種記憶體操作方法,包含:當記憶體裝置的第一超區塊組為開放區塊(或處於編程狀
態)時,取得第一超區塊組中複數個第一記憶區塊之任一者的第一讀取次數,其中第一讀取次數為該些第一記憶區塊之一者的資料被讀取出的次數;判斷第一讀取次數是否大於第一閾值;以及在第一讀取次數大於第一閾值時,將第一超區塊組中至少一部分的資料搬移至記憶體裝置中的安全區域,其中至少一部分資料包含該些第一記憶區塊之該者的資料。
本揭示內容之另一態樣為一種記憶體裝置,包含複數個記憶體裸晶及控制器。記憶體裸晶包含被對應於複數個超區塊組的複數個記憶區塊。控制器透過至少一記憶體通道耦接於該些記憶體裸晶。當該些超區塊組中的第一超區塊組為開放區塊(或處於編程狀態)時,控制器用以判斷第一超區塊組中對應於該些記憶體裸晶中之多者的複數個第一讀取次數是否大於第一閾值,以選擇性地搬移第一超區塊組中的資料。
本揭示內容之另一態樣為一種記憶體操作方法,包含:判斷記憶體裝置中的第一超區塊組是否處於編程狀態;在第一超區塊組處於編程狀態時,判斷第一超區塊組中的複數個第一讀取次數是否大於第一閾值,其中該些第一讀取次數係第一超區塊組中對應於複數個記憶體引腳的複數個第一記憶區塊的資料被讀取出的次數;以及根據該些第一讀取次數與第一閾值,選擇性地搬移第一超區塊組的資。
本揭示內容取得一個超區塊組中「單一個記憶區塊、
對應於同一個記憶體裸晶的一或多個記憶區塊、或對應於同一個記憶體引腳的一或多個記憶區塊」的讀取次數,再將讀取次數與閾值相比對,以選擇性地搬移超區塊組中之資料。據此,將可使控制器在必要情況時才搬移資料,從而確保運行效能。
100:控制器
200:非揮發性記憶體
300:記憶體操作方法
MD:記憶體裝置
HD:主機裝置
T:映射表格
CH-0-CH-n:記憶體通道
CE0-CEx:記憶體引腳
DIE:記憶體裸晶
BLK:記憶區塊
BLK1-BLK8:記憶區塊
BLKa-BLKh:記憶區塊
BLK-S:超區塊組
BLK-OP:開放區塊
BLK-CL:封閉區塊
S301-S307:步驟
第1圖為根據本揭示內容之部份實施例的記憶體裝置的示意圖。
第2圖為根據本揭示內容之部份實施例的記憶體裝置的示意圖。
第3圖為根據本揭示內容之部份實施例之記憶體操作方法的流程圖。
以下將以圖式揭露本發明之複數個實施方式,為明確說明起見,許多實務上的細節將在以下敘述中一併說明。然而,應瞭解到,這些實務上的細節不應用以限制本發明。也就是說,在本發明部分實施方式中,這些實務上的細節是非必要的。此外,為簡化圖式起見,一些習知慣用的結構與元件在圖式中將以簡單示意的方式繪示之。
於本文中,當一元件被稱為「連接」或「耦接」時,可指「電性連接」或「電性耦接」。「連接」或「耦接」
亦可用以表示二或多個元件間相互搭配操作或互動。此外,雖然本文中使用「第一」、「第二」、…等用語描述不同元件,該用語僅是用以區別以相同技術用語描述的元件或操作。除非上下文清楚指明,否則該用語並非特別指稱或暗示次序或順位,亦非用以限定本發明。
第1圖為根據本揭示內容之部份實施例的記憶體裝置MD示意圖。記憶體裝置MD包含控制器100及非揮發性記憶體(non-volatile memory)200。控制器100耦接於非揮發性記憶體200,用以存取(access)非揮發性記憶體200,以執行讀取、寫入(write,或稱編程program)或清除之動作。
在一實施例中,控制器100包含處理電路(如:微處理器)、儲存器(如:唯讀記憶體)、控制邏輯電路、緩衝記憶體與傳輸介面電路。這些元件可透過匯流排彼此耦接,為簡潔起見,這些元件未繪示於第1圖中。控制器100耦接於主機裝置(Host Device)HD,使記憶體裝置MD作為主機裝置HD的資料儲存媒介,例如記憶卡(memory card)、通用序列匯流排(universal serial bus;USB)介面之隨身碟、固態硬碟(solid-state drives;SSD)等。主機裝置HD可為智慧型手機(smartphone)、穿戴式裝置(wearable device)、平板電腦(tablet computer)或虛擬實境裝置(virtual reality device)等。
非揮發性記憶體200之種類包含但不限於:快閃
記憶體、磁阻隨機存取記憶體、鐵電隨機存取記憶體、可變電阻式記憶體及旋轉力矩轉移隨機存取記憶體。在一實施例中,非揮發性記憶體200包含多個記憶體元件。記憶體元件可由快閃記憶體晶片(chip)或快閃記憶體裸晶(die)實現,如第1圖所示之記憶體裸晶DIE。記憶體元件的儲存空間可被區分為多個記憶區塊BLK(block),每個記憶區塊BLK中又包含多個記憶頁面(page)。以NAND記憶體結構為例,記憶頁面為讀取或寫入資料時的最小單位,記憶區塊則為擦除(或清除)資料時的最小單位。由於本領域中具通常知識者能理解非揮發性記憶體之結構與運作方式,故在此不另贅述。
控制器100中儲存有映射表格T,例如為一種邏輯與實體位置對應表(Logical-block-address to Physical-block-address;L2P Mapping Table)。映射表格T用以紀錄非揮發性記憶體200的實體(或物理)位址(physical addresses,即記憶體裝置MD中資料儲存的實際位置)及邏輯位址(logical addresses)之間的映射關係。實體位址可由通道(channel)編號、邏輯單元編號(Logical Unit Number,LUN)、平面(Plane)編號、區塊編號、頁面編號以及偏移量(Offset)所組成。在其他部份實施例中,實體位址的實施可予以變化,例如由實體位址由通道編號、邏輯單元編號、平面編號、區塊編號、頁面編號及偏移量中之一部份組合而成。
承上,在主機裝置HD需要存取記憶體裝置MD
中的資料時,主機裝置HD傳送主機命令(Host Command)至記憶體裝置MD,控制器100將根據主機命令而對非揮發性記憶體200進行存取,以執行對應於指令的動作(如:讀取、清除或寫入資料)。具體而言,主機命令包括邏輯位址,控制器100接收主機命令後,先將主機命令分別轉譯成記憶體操作命令(簡稱操作命令),並根據映射表格T找出相對應的實體位址。接著,控制器100以操作命令控制非揮發性記憶體200讀取或寫入非揮發性記憶體200特定實體位址之記憶頁面,或者清除非揮發性記憶體200特定實體位址之記憶區塊。控制器100將動態地更新映射表格T,以紀錄每一筆資料的物理位址與邏輯位址。
為確保非揮發性記憶體200內每一筆資料的正確性,控制器100會根據非揮發性記憶體200的狀態,選擇性地將資料從原先儲存的位置搬移至其他「安全位置」(如:較少被使用的記憶區塊BLK),此一動作稱為提早刷新(early refresh),用於避免非揮發性記憶體200儲存的資料因「讀取干擾(reading interference)」而發生錯誤。控制器100可根據每個記憶區塊的寫入次數或讀取次數,判斷是否需要執行「提早刷新」。
具體而言,非揮發性記憶體200的記憶區塊或記憶頁面都包含許多以電晶體實現的記憶單元(memory cell)。電晶體之浮閘中儲存的電荷數目決定了電晶體的閾值電壓(threshold voltage),而閾值電壓決定了電
晶體中儲存的資料為位元「0」或位元「1」。當控制器100對非揮發性記憶體200進行寫入或讀取時,都會對電晶體施加電壓,從而可能會影響到浮閘中儲存的電荷數目而改變閾值電壓。雖然在進行讀取動作時,施加於電晶體上的電壓較小,不會立即大幅改變電晶體的閾值電壓,但在反覆且多次的讀取後,電晶體的閾值電壓仍可能會逐漸受到影響,從而導致電晶體中儲存的資料出現錯誤,此一現象即為前述之「讀取干擾」。
本揭示內容之記憶體裝置MD可根據非揮發性記憶體200的記憶區塊BLK被讀取的次數(read count),判斷是否該執行提早刷新,以避免「讀取干擾」效應影響記憶體裝置MD中儲存資料的正確性。
為清楚說明本揭示內容之技術,在此先進一步說明記憶體裝置MD中的細部結構。第2圖所示為根據本揭示內容之部份實施例的記憶體裝置MD示意圖。記憶體裝置MD透過一或多個記憶體通道,耦接於非揮發性記憶體200。在一實施例中,記憶體裝置MD為多通道架構(multi-channel accessing architecture)。換言之,控制器100透過多個記憶體通道CH-0~CH-n耦接至非揮發性記憶體200,且每一條記憶體通道CH-0~CH-n還包含多個記憶體引腳CE0~CEx,其中符號「n」、「x」可代表大於或等於一的正整數。如第2圖所示,一個記憶體通道會對應於四個記憶體引腳,即x等於「3」(CE0~CE3)。每個記憶體引腳CE0~CEx用以傳遞晶片賦能
(chip enable)訊號至對應的一個或多個記憶體裸晶DIE,以存取記憶體裸晶DIE。
如第2圖所示,控制器100透過多條記憶體通道CH-0~CH-n及多個記憶體引腳CE0~CE3連接至記憶體裸晶DIE,以存取記憶體裸晶DIE中的多個記憶區塊(如:第2圖所示之BLK1~BLK8、BLKa~BLKh)。在部份實施例中,實體位址相鄰的多個記憶區塊BLK1~BLK8可以對應於一或多個邏輯位址,以作為一或多個超區塊組BLK-S(Super Block)。同理,BLKa~BLKh可以對應於一或多個邏輯位址,以作為一或多個超區塊組BLK-S(Super Block)。據此,透過多通道存取技術,控制器100將可更為快速地對非揮發性記憶體200存取資料。
舉例而言,分別位於不同記憶體裸晶DIE中的四個記憶區塊BLK1~BLK4可以對應至同一邏輯位址,而作為一個超區塊組BLK-S。相似地,其他三組記憶區塊BLK5~BLK8、BLKa~BLKd及BLKe~BLKh可以分別對應至另三個邏輯位址,從而作為另三個超區塊組BLK-S。超區塊組BLK-S中包含的記憶區塊的數量可任意調整,不以第2圖所示之「四個」為限。
第3圖所示為根據本揭示內容之部份實施例的記憶體操作方法300的流程圖。在此根據第2及3圖,說明本揭示內容之部份實施例用以判斷是否對非揮發性記憶體200進行提早刷新的記憶體操作方法300如後。
在部份實施例中,控制器100可依據主機裝置HD傳來的命令執行記憶體操作方法300。在部份實施例中,當主機裝置HD欲對記憶體裝置MD寫入大量資料(如:執行檢測程式),同時一併檢測記憶體裝置MD的資料存取速度時,主機裝置HD可以同時傳遞命令給記憶體裝置MD,以控制記憶體裝置MD執行記憶體操作方法300。在一些實施例中,記憶體裝置MD可以自動執行記憶體操作方法300。例如,當記憶體裝置MD判斷主機裝置HD正執行檢測程式時,記憶體裝置MD可以自動執行記憶體操作方法300以判斷是否需要提早刷新。
在步驟S301中,控制器100先判斷非揮發性記憶體200中的一個超區塊組BLK-S是否處於編程狀態而屬於「開放區塊BLK-OP」。請參閱第2圖所示,當控制器100正寫入一個或多個超區塊組BLK-S、且寫入動作尚未完全完成時,此時正被寫入的一個或多個超區塊組BLK-S處於編程狀態,且形成開放區塊BLK-OP。相對地,並未處於編程狀態的其他超區塊組BLK-S則形成封閉區塊BLK-CL。
若步驟S301的判斷結果為是,控制器100會執行步驟S302。在步驟S302中,控制器100取得處於編程狀態的超區塊組BLK-S中一個或多個記憶區塊BLK1-BLK4各自的第一讀取次數。第一讀取次數為記憶區塊BLK1-BLK4的資料分別被讀取出的次數。舉例而言,記憶區塊BLK1-BLK4分別被讀取過22、3、7和2次,
則控制器100會取得四筆第一讀取次數:22、3、7和2。
在第2圖的實施例中,每個超區塊組BLK-S中,不同記憶區塊屬於不同記憶體裸晶DIE。每個第一讀取次數是處於編程狀態的超區塊組BLK-S的「其中一個記憶區塊」的讀取次數,但本揭示內容不以此為限。在部份實施例中,每個超區塊組BLK-S中可有多個記憶區塊屬於同一個記憶體裸晶DIE,每個第一讀取次數可以是處於編程狀態的超區塊組BLK-S中「屬於同一個記憶體裸晶DIE的一或多個記憶區塊的資料被讀取出的次數」(例如:同一個記憶體裸晶DIE中的兩個記憶區塊皆屬於同一個超區塊組BLK-S,則第一讀取次數可為該兩個記憶區塊的讀取次數之總和)。
在第2圖的實施例中,每個超區塊組BLK-S中,不同記憶區塊對應於不同的記憶體引腳CE0~CE3,但本揭示內容不以此為限。在其他實施例中,每個超區塊組BLK-S中可有多個記憶區塊屬於同一個記憶體引腳,每個第一讀取次數為處於編程狀態的超區塊組BLK-S中「對應於同一個記憶體引腳的一或多個記憶區塊的資料被讀取出的次數」。
在步驟S303中,控制器100判斷處於編程狀態的超區塊組BLK-S的第一讀取次數是否大於第一閾值,以根據第一讀取次數與第一閾值,選擇性地搬移處於編程狀態的超區塊組BLK-S的資料(即,決定是否執行提早刷新)。
若步驟S303的判斷結果為是,則控制器100執行步驟S304以將處於編程狀態的超區塊組BLK-S中至少一部分的資料搬移至記憶體裝置MD中的安全區域,其中在步驟S304結束後,控制器100可以結束記憶體操作方法300。在一些實施例中,前述「安全區域」係指非揮發記憶體200中的其他未儲存資料的一個或多個記憶區塊,且此一個或多個記憶區塊的讀取次數總和小於第一讀取次數。相對地,若第一讀取次數皆小於第一閾值(亦即步驟S303的判斷結果為否),則控制器100結束記憶體操作方法300。
具體而言,若控制器100同時取得處於編程狀態的超區塊組BLK-S的多個第一讀取次數,則控制器100會分別比對每一個第一讀取次數與第一閾值。若其中一個第一讀取次數大於第一閾值,則控制器100對處於編程狀態的超區塊組BLK-S進行提早刷新,以將超區塊組BLK-S中至少一部分資料搬移至安全區域,且搬移的資料會包含第一讀取次數大於第一閾值的該記憶區塊的資料。
舉例而言,開放區塊BLK-OP中處於編程狀態的超區塊組BLK-S中,其記憶區塊BLK1-BLK4的第一讀取次數分別為「22、3、7、2」,且第一閾值為「20」。在一實施例中,由於記憶區塊BLK1的第一讀取次數超過第一閾值,控制器100會將開放區塊BLK-OP的所有記憶區塊的資料一併搬移至安全區域,但本揭示內容並不以此為限。在其他實施例中,控制器100可以搬移記憶區塊
BLK1中的資料,以及一併搬移記憶區塊BLK2-BLK4中一或多者的資料。在另一些實施例中,控制器100亦可僅搬移記憶區塊BLK1的資料,並重新劃分超區塊組BLK-S之區域。
另一方面,在前述步驟S301中,若控制器100判斷出超區塊組BLK-S並非屬於處於編程狀態,亦即若控制器100判斷出超區塊組BLK-S屬於封閉區塊BLK-CL,控制器100將執行步驟S305。在步驟S305中,控制器100取得封閉區塊BLK-CL中非編程狀態之超區塊組BLK-S的第二讀取次數。
需特別說明者,第二讀取次數的判斷方式與第一讀取次數不同。第二讀取次數為「非編程狀態的超區塊組BLK-S中,多個記憶區塊(例如BLKa-BLKd)透過同一條記憶體通道(例如CH-0)被讀取出資料的次數總和」。換言之,控制器100累加非編程狀態的超區塊組BLK-S中對應於同一條記憶體通道的所有記憶區塊的資料被讀取出的次數,以作為第二讀取次數。舉例而言,記憶區塊BLKa-BLKd都對應於同一條記憶體通道CH-0,且分別被讀取過5、1、3、7次,則第二讀取次數為四個數值的累加,即「16」。
控制器100可根據第二讀取次數與相異於第一閾值的第二閾值,選擇性地搬移處於非編程狀態的該超區塊組BLK-S的資料。具體而言,在步驟S306中,控制器100判斷第二讀取次數是否大於第二閾值。在一實施例中,
第二閾值係小於第一閾值,例如第一閾值為「20」、第二閾值則可為「15」。
在步驟S307中,若第二讀取次數大於第二閾值,則控制器100將非編程狀態的超區塊組BLK-S中至少一部分的資料搬移至安全空間,即進行提早刷新,其中步驟S307結束後,控制器100結束記憶體操作方法300。例如:控制器100將處於非編程狀態的該超區塊組BLK-S中記憶區塊BLKa-BLKd的一或多者的資料搬移至其他的記憶區塊中,但本揭示內容並不以此為限。在一些實施例中,控制器100亦可同時搬移封閉區塊BLK-CL中的多組超區塊組BLK-S,且該多組超區塊組BLK-S包含第二讀取次數大於第二閾值的該超區塊組BLK-S。相對地,若第二讀取次數小於第二閾值,則控制器100結束記憶體操作方法300。
本揭示內容之記憶體操作方法300在判斷是否對開放區塊BLK-OP進行提早刷新時,係針對一個超區塊組BLK-S中的「單一個記憶區塊、對應於同一個記憶體裸晶的記憶區塊、或對應於同一個記憶體引腳的記憶區塊」,紀錄其第一讀取次數,以判斷是否需搬移資料。據此,將可使控制器100在必要情況時才搬移開放區塊BLK-OP中的資料,以減少控制器100在判斷資料存取速度時,同時寫入開放區塊BLK-OP時所可能產生的負面影響(如:存取速度變慢、或寫入暫時中斷等),從而確保記憶體裝置MD的運行效能。
此外,本揭示內容之記憶體操作方法可針對開放區塊BLK-OP及封閉區塊BLK-CL,分別採用不同的判斷方式。在判斷是否對封閉區塊BLK-CL進行提早刷新時,控制器100係紀錄一個超區塊組BLK-S中「對應於同一條記憶體通道的多個讀取次數的總和」,作為第二讀取次數與第二閾值相比對,以快速地確認是否須對封閉區塊BLK-CL進行提早刷新。
在部份實施例中,在主機裝置HD正執行檢測程式,以檢測記憶體裝置MD的資料存取速度的情況下,若控制器100取得的第一讀取次數皆小於第一閾值,此時,控制器100將不會對處於編程狀態中的該超區塊組BLK-S進行提早刷新。換言之,控制器100將保持超區塊組BLK-S中的資料,直到控制器100或主機裝置HD檢測出記憶體裝置MD的資料存取速度,或者直到超區塊組BLK-S不再處於編程狀態時,再進行提早刷新。
此外,在前述實施例中,控制器100係先判斷超區塊組BLK-S是否屬於編程狀態,然後才根據編程狀態或非編程狀態,取得第一讀取次數或第二讀取次數。在其他實施例中,由於非揮發性記憶體200中的大部分超區塊組BLK-S處於非編程狀態,因此,控制器100亦可提前取得超區塊組BLK-S對應於同一條記憶體通道的讀取次數總和,即第二讀取次數。換言之,步驟S305可於步驟S301之前先執行。據此,若後續判斷出該超區塊組BLK-S確實為非編程狀態,則即可直接進行步驟S306。
前述各實施例中的各項元件、方法步驟或技術特徵,係可相互結合,而不以本揭示內容中的文字描述順序或圖式呈現順序為限。
雖然本揭示內容已以實施方式揭露如上,然其並非用以限定本揭示內容,任何熟習此技藝者,在不脫離本揭示內容之精神和範圍內,當可作各種更動與潤飾,因此本揭示內容之保護範圍當視後附之申請專利範圍所界定者為準。
300:記憶體操作方法
S301-S307:步驟
Claims (15)
- 一種記憶體操作方法,包含:當一記憶體裝置的一第一超區塊組為一開放區塊時,取得該第一超區塊組中複數個第一記憶區塊之一者的一第一讀取次數,其中該第一讀取次數為該些第一記憶區塊之該者的資料被讀取出的次數;判斷該第一讀取次數是否大於一第一閾值;以及在該第一讀取次數大於該第一閾值時,將該第一超區塊組中至少一部分的資料搬移至該記憶體裝置中的一安全區域,其中該至少一部分資料包含該些第一記憶區塊之該者的資料;其中取得該第一超區塊組中該些第一記憶區塊之該者的該第一讀取次數的方法包含:取得該第一超區塊組中屬於該記憶體裝置之一記憶體裸晶的該些第一記憶區塊之一或多者的資料被讀取出的次數,或對應於該記憶體裝置中之一記憶體引腳的該些第一記憶區塊之一或多者的資料被讀取出的次數,以作為該第一讀取次數。
- 如請求項1所述之記憶體操作方法,還包含:取得一第二超區塊組中複數個第二記憶區塊的資料透過一記憶體通道被讀取的讀取次數總和,以作為一第二讀取次數;以及 根據該第二讀取次數與一第二閾值,選擇性地搬移該第二超區塊組的資料,其中該第二閾值相異於該第一閾值。
- 如請求項2所述之記憶體操作方法,其中,該第二超區塊組非處於一編程狀態。
- 如請求項2所述之記憶體操作方法,其中根據該第二讀取次數與該第二閾值選擇性地搬移該第二超區塊組的資料的方法包含:判斷該第二讀取次數是否大於該第二閾值,其中該第二閾值小於該第一閾值;以及在該第二讀取次數大於該第二閾值時,將該第二超區塊組中至少一部分的資料搬移至該記憶體裝置中的該安全空間。
- 一種記憶體裝置,包含:複數個記憶體裸晶,包含被對應於複數個超區塊組的複數個記憶區塊;以及一控制器,透過至少一記憶體通道耦接於該些記憶體裸晶,其中當該些超區塊組中的一第一超區塊組為一開放區塊時,該控制器用以判斷該第一超區塊組中對應於該些記憶體裸晶中的多者的複數個第一讀取次數是否大於一第一閾值,以選擇性地搬移該第一超區塊組中的資料;其中該些超區塊組還包含一第二超區塊組,該控制器用 以判斷該第二超區塊組對應於該至少一記憶體通道的一第二讀取次數是否大於一第二閾值,以選擇性地搬移該第二超區塊組中的資料,且該第二閾值小於該第一閾值。
- 如請求項5所述之記憶體裝置,其中當該些第一讀取次數的一者大於該第一閾值時,該控制器用以將該第一超區塊組的至少一部分資料搬移至該記憶體裝置的一安全區域。
- 如請求項5所述之記憶體裝置,其中當該些第一讀取次數皆小於該第一閾值時,該控制器用以保持該第一超區塊組的資料,直到該記憶體裝置的一資料存取速度被紀錄。
- 如請求項5所述之記憶體裝置,其中該控制器還用以判斷該第二超區塊組非處於一編程狀態。
- 如請求項5所述之記憶體裝置,其中該控制器用以累加該第二超區塊組中對應於同一條記憶體通道的該些記憶區塊的資料被讀取出的次數,以作為該第二讀取次數。
- 一種記憶體操作方法,包含: 判斷一記憶體裝置中的一第一超區塊組是否處於一編程狀態;在該第一超區塊組處於該編程狀態時,判斷該第一超區塊組中的複數個第一讀取次數是否大於一第一閾值,其中該些第一讀取次數係該第一超區塊組中對應於複數個記憶體引腳的複數個第一記憶區塊的資料被讀取出的次數;以及根據該些第一讀取次數與該第一閾值,選擇性地搬移該第一超區塊組的資料。
- 如請求項10所述之記憶體操作方法,其中根據該些第一讀取次數與該第一閾值,選擇性地搬移該第一超區塊組的資料的方法包含:在該些第一讀取次數的一者大於該第一閾值時,將該第一超區塊組中至少一部分的資料搬移至該記憶體裝置中的一安全區域。
- 如請求項10所述之記憶體操作方法,其中根據該些第一讀取次數與該第一閾值,選擇性地搬移該第一超區塊組的資料的方法包含:在該些第一讀取次數皆小於該第一閾值時,保持該第一超區塊組的資料,直到該記憶體裝置的一資料存取速度被紀錄。
- 如請求項10所述之記憶體操作方法,還包含:判斷該記憶體裝置中的一第二超區塊組對應於一記憶體通道的一第二讀取次數是否大於一第二閾值,以選擇性地搬移該第二超區塊組的資料,其中該第二閾值小於該第一閾值。
- 如請求項13所述之記憶體操作方法,其中該第二超區塊組非處於該編程狀態。
- 如請求項13所述之記憶體操作方法,還包含:累加該第二超區塊組中對應於該記憶體通道的複數個第二記憶區塊的資料被讀取出的次數,以作為該第二讀取次數。
Priority Applications (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| TW111139699A TWI850805B (zh) | 2022-10-19 | 2022-10-19 | 記憶體裝置及記憶體操作方法 |
| CN202211609477.0A CN117908762A (zh) | 2022-10-19 | 2022-12-14 | 存储器装置及存储器操作方法 |
| US18/330,349 US12282665B2 (en) | 2022-10-19 | 2023-06-06 | Memory operation method and memory device for data movement |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| TW111139699A TWI850805B (zh) | 2022-10-19 | 2022-10-19 | 記憶體裝置及記憶體操作方法 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| TW202418091A TW202418091A (zh) | 2024-05-01 |
| TWI850805B true TWI850805B (zh) | 2024-08-01 |
Family
ID=90689910
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| TW111139699A TWI850805B (zh) | 2022-10-19 | 2022-10-19 | 記憶體裝置及記憶體操作方法 |
Country Status (3)
| Country | Link |
|---|---|
| US (1) | US12282665B2 (zh) |
| CN (1) | CN117908762A (zh) |
| TW (1) | TWI850805B (zh) |
Families Citing this family (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR20240146209A (ko) * | 2023-03-29 | 2024-10-08 | 에스케이하이닉스 주식회사 | 우선 순위에 기반하여 슈퍼 메모리 블록에 저장된 데이터를 마이그레이션하는 스토리지 장치 및 그 동작 방법 |
| KR20250041750A (ko) * | 2023-09-19 | 2025-03-26 | 에스케이하이닉스 주식회사 | 메모리 컨트롤러 및 이를 포함하는 메모리 시스템 |
Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US8954650B2 (en) * | 2011-09-16 | 2015-02-10 | Intel Corporation | Apparatus, system, and method for improving read endurance for a non-volatile memory |
| US9361182B2 (en) * | 2014-05-20 | 2016-06-07 | Transcend Information, Inc. | Method for read disturbance management in non-volatile memory devices |
| US10853236B2 (en) * | 2018-03-19 | 2020-12-01 | SK Hynix Inc. | Storage device and method for operating the same |
| US20210090670A1 (en) * | 2017-08-28 | 2021-03-25 | Micron Technology, Inc. | Memory architecture for access of multiple portions of a block of memory cells |
Family Cites Families (9)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR102681181B1 (ko) * | 2019-10-01 | 2024-07-04 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그것의 동작방법 |
| KR102695175B1 (ko) * | 2019-10-11 | 2024-08-14 | 에스케이하이닉스 주식회사 | 메모리 시스템, 메모리 컨트롤러 및 동작 방법 |
| KR102835726B1 (ko) * | 2020-09-11 | 2025-07-18 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그 동작 방법 |
| TWI767584B (zh) * | 2021-02-24 | 2022-06-11 | 慧榮科技股份有限公司 | 資料儲存裝置以及非揮發式記憶體控制方法 |
| KR20220133693A (ko) * | 2021-03-25 | 2022-10-05 | 에스케이하이닉스 주식회사 | 스토리지 장치 및 그 동작 방법 |
| KR102493864B1 (ko) * | 2021-11-16 | 2023-01-31 | 삼성전자주식회사 | 스토리지 장치의 동작 방법 및 호스트 및 스토리지 장치를 포함하는 스토리지 시스템의 동작 방법 |
| KR20230072196A (ko) * | 2021-11-17 | 2023-05-24 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작 방법 |
| US12333152B2 (en) * | 2021-12-20 | 2025-06-17 | Samsung Electronics Co., Ltd. | Storage device |
| JP2023136081A (ja) * | 2022-03-16 | 2023-09-29 | キオクシア株式会社 | メモリシステムおよび制御方法 |
-
2022
- 2022-10-19 TW TW111139699A patent/TWI850805B/zh active
- 2022-12-14 CN CN202211609477.0A patent/CN117908762A/zh active Pending
-
2023
- 2023-06-06 US US18/330,349 patent/US12282665B2/en active Active
Patent Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US8954650B2 (en) * | 2011-09-16 | 2015-02-10 | Intel Corporation | Apparatus, system, and method for improving read endurance for a non-volatile memory |
| US9361182B2 (en) * | 2014-05-20 | 2016-06-07 | Transcend Information, Inc. | Method for read disturbance management in non-volatile memory devices |
| US20210090670A1 (en) * | 2017-08-28 | 2021-03-25 | Micron Technology, Inc. | Memory architecture for access of multiple portions of a block of memory cells |
| US10853236B2 (en) * | 2018-03-19 | 2020-12-01 | SK Hynix Inc. | Storage device and method for operating the same |
Also Published As
| Publication number | Publication date |
|---|---|
| TW202418091A (zh) | 2024-05-01 |
| CN117908762A (zh) | 2024-04-19 |
| US12282665B2 (en) | 2025-04-22 |
| US20240134538A1 (en) | 2024-04-25 |
| US20240231640A9 (en) | 2024-07-11 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN102187398B (zh) | 固态存储装置中的热存储器块表 | |
| TWI434286B (zh) | 具擴充模式之固態儲存元件控制器及其運作方法 | |
| KR101122485B1 (ko) | 메모리 시스템 | |
| TWI566253B (zh) | 用來管理一記憶裝置之方法以及記憶裝置與控制器 | |
| KR102321221B1 (ko) | 버퍼 상에서 메모리 동작을 제어하기 위한 장치 및 방법 | |
| TWI479502B (zh) | 固態碟片控制器及其資料處理方法 | |
| US11237732B2 (en) | Method and apparatus to improve write bandwidth of a block-based multi-level cell nonvolatile memory | |
| CN104346288B (zh) | 用来管理一记忆装置的方法以及记忆装置与控制器 | |
| TWI850805B (zh) | 記憶體裝置及記憶體操作方法 | |
| US11461238B2 (en) | Storage device, memory controller, and method for fetching write commands from submission queues to perform full page writes | |
| KR102802194B1 (ko) | 메모리 시스템 및 그 동작 방법 | |
| KR20090006920A (ko) | 캐시 메모리 장치 및 캐시 메모리 장치의 데이터 처리 방법 | |
| TWI523030B (zh) | 緩衝記憶體管理方法、記憶體控制器與記憶體儲存裝置 | |
| KR102637478B1 (ko) | 오픈 채널 솔리드 스테이트 드라이브, 이를 포함하는 비휘발성 메모리 시스템 및 오픈 채널 솔리드 스테이트 드라이브의 파워 로스 프로텍션 방법 | |
| KR20220022407A (ko) | 저장 장치 및 그 동작 방법 | |
| US20250284635A1 (en) | Memory device, operation method thereof, and memory system | |
| TW201941208A (zh) | 記憶體管理方法與儲存控制器 | |
| JP7535663B2 (ja) | メモリシステムの電力管理 | |
| TWI767584B (zh) | 資料儲存裝置以及非揮發式記憶體控制方法 | |
| KR102873594B1 (ko) | 데이터 저장 장치 및 그것의 동작 방법 | |
| WO2021247105A1 (en) | Environment-based erase voltage for improved erase time | |
| US20250348423A1 (en) | Memory devices, operation methods thereof, and memory systems | |
| TWI823649B (zh) | 快閃記憶體控制器的控制方法、快閃記憶體控制器以及電子裝置 | |
| US20250273270A1 (en) | Memory devices, memory systems, and operation methods | |
| KR20250007249A (ko) | 저장 장치 및 그 동작 방법 |