TWI418980B - 記憶體控制器、用於格式化記憶體系統中之記憶體陣列和固態驅動器之方法及固態記憶體系統 - Google Patents
記憶體控制器、用於格式化記憶體系統中之記憶體陣列和固態驅動器之方法及固態記憶體系統 Download PDFInfo
- Publication number
- TWI418980B TWI418980B TW099101249A TW99101249A TWI418980B TW I418980 B TWI418980 B TW I418980B TW 099101249 A TW099101249 A TW 099101249A TW 99101249 A TW99101249 A TW 99101249A TW I418980 B TWI418980 B TW I418980B
- Authority
- TW
- Taiwan
- Prior art keywords
- memory
- data
- physical
- file allocation
- arrays
- Prior art date
Links
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/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0652—Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
-
- 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
- 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
-
- 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/0608—Saving storage space on storage 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/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/0638—Organizing or formatting or addressing of data
- G06F3/0643—Management of files
-
- 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/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 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/0683—Plurality of storage devices
- G06F3/0688—Non-volatile semiconductor memory arrays
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/10—Programming or data input circuits
-
- 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/7202—Allocation control and policies
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)
- Memory System (AREA)
- Read Only Memory (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Description
本發明一般而言係關於半導體記憶體裝置、方法及系統,且更特定而言係關於固態驅動器格式化。
通常將記憶體裝置提供為電腦或其他電子裝置中之內部半導體積體電路。存在包含揮發性及非揮發性記憶體之諸多不同類型記憶體。揮發性記憶體可需要電力來維持其資料且包含隨機存取記憶體(RAM)、動態隨機存取記憶體(DRAM)及同步動態隨機存取記憶體(SDRAM)以及其他記憶體。非揮發性記憶體可藉由在不被供電時仍保持所儲存之資訊而提供持久資料且可包含NAND快閃記憶體、NOR快閃記憶體、唯讀記憶體(ROM)、電可擦除可程式化ROM(EEPROM)、可擦除可程式化ROM(EPROM)及相變隨機存取記憶體(PCRAM)以及其他記憶體。
記憶體裝置可組合在一起以形成一固態驅動器(SSD)。一固態驅動器可包含非揮發性記憶體,例如,NAND快閃記憶體及NOR快閃記憶體,及/或可包含揮發性記憶體,例如,DRAM及SRAM,亦包含各種其他類型之非揮發性記憶體及揮發性記憶體。
可使用一SSD來替換硬碟驅動器作為一電腦之主要儲存裝置,此乃因該固態驅動器可在效能、大小、重量、耐用性、操作溫度範圍及電力消耗方面具有優於硬驅動器之優點。舉例而言,SSD在與磁碟驅動器相比時因其缺乏移動部件而可具有優越效能,此缺乏移動部件可改良與磁碟驅動器相關聯之尋覓時間、延時及其他機電延遲。SSD製造商可使用非揮發性快閃記憶體來形成可不使用一內部電池供應之快閃SSD,因此允許該驅動器更通用且更小型。
一SSD可包含若干記憶體裝置,例如,若干記憶體晶片(如本文中所使用,「若干」某物可係指此等事物中之一者或多者,例如,若干記憶體裝置可係指一或多個記憶體裝置)。如熟習此項技術者將瞭解,一記憶體晶片可包含若干晶粒。每一晶粒上可包含若干記憶體陣列及周邊電路。該等記憶體陣列可包含組織成若干實體區塊之若干記憶體胞,且該等實體區塊可組織成若干頁。
對於某些儲存應用,SSD可用作硬(碟)驅動器之一替換或補充。在此等例項中,將SSD置於經設計以容許一硬驅動器功能之一環境中。由於SSD與硬驅動器之間的最小可擦除單位之粒度或量化之差異(例如,硬驅動器之一512位元組磁區對SSD中之一128k或256k之區塊),因此在一計算裝置中用作一硬驅動器之一替換或補充之一SSD可不以峰值效能位準操作。
本發明包含用於固態驅動器程式化之方法及裝置。一種裝置實施例包含耦合至若干記憶體陣列之控制電路,其中每一記憶體陣列具有多個實體記憶體胞區塊。該等記憶體陣列可由該控制電路格式化,該控制電路經組態以:將系統資料寫入至該若干記憶體陣列,使得該系統資料在一實體區塊邊界處結束;及將使用者資料寫入至該若干記憶體陣列,使得該使用者資料在一實體區塊邊界處起始。
在本發明之以下詳細說明中,參照形成本發明之一部分且其中以圖解說明方式展示可如何實踐本發明之一或多項實施例之隨附圖式。充分詳細地闡述此等實施例以使熟習此項技術者能夠實踐本發明之該等實施例,且應理解,可利用其他實施例且可在不背離本發明之範疇之情況下作出處理程序、電、及/或結構改變。如本文中所使用,標示符「N」、「M」、「R」及「S」(尤其係關於圖式中之參考編號)指示本發明之一或多項實施例可包含如此標示之若干特定特徵。
本文中之圖遵循如下之一編號慣例,其中第一個數位或前幾個數位對應於圖式圖編號且剩餘數位識別圖式中之一元件或組件。不同圖之間的類似元件或組件可藉由使用類似數位來識別。舉例而言,130可參考圖1中之元件「130」,且在圖2中可將一類似元件稱為230。如將瞭解,可添加、更換及/或消除本文中各種實施例中所示之元件以提供本發明之若干額外實施例。另外,如將瞭解,圖中所提供之元件之比例及相對比例尺意欲圖解說明本發明之實施例且不應視為一限定意義。
圖1係可根據本發明之一或多項實施例操作之一電子記憶體系統120之一功能方塊圖。在圖1中所圖解說明之實施例中,舉例而言,記憶體系統120可係一固態驅動器
(SSD)。如圖1中所圖解說明,舉例而言,系統120可包含一記憶體控制器101、一主機介面連接器103及若干記憶體陣列130-1、...、130-N(例如,若干固態記憶體陣列(例如,若干快閃陣列))。
介面103可用於在記憶體系統120與另一裝置(例如,一主機系統102)之間傳送資訊。主機系統102可包含一記憶體存取裝置,例如一處理器。熟習此項技術者將瞭解,「一處理器」可意指一或多個處理器,例如,一並行處理系統、若干共處理器等。主機系統之實例包含膝上型電腦、個人電腦、數位相機、數位記錄及回放裝置、PDA、記憶體讀卡器、介面集線器等。對於一或多項實施例,介面103可係呈一標準化介面形式。舉例而言,主機介面連接器103可係一串列進階附接技術(SATA)、周邊組件互連express(PCIe)或一通用串列匯流排(USB),亦包含其他連接器及介面。然而,一般而言,介面103可提供用於在記憶體系統120與一主機系統102之間傳遞控制、位址、資料及其他信號之一介面,主機系統102具有用於介面103之相容接納器。
記憶體控制器101可與陣列130-1、...、130-N通信以感測、程式化及擦除資料,亦進行其他作業。記憶體控制器101可具有可係一或多個積體電路及/或離散組件之電路。對於一或多項實施例,記憶體控制器101中之電路可包含用於控制跨越若干記憶體陣列之存取及/或用於在一外部主機與記憶體系統120之間提供一轉譯層之控制電路。因此,一記憶體控制器可選擇性地耦合一記憶體陣列之一I/O連接(圖1中未展示)以在適當時間在適當I/O連接處接收適當信號。類似地,一主機102與記憶體系統120之間的通信協定可不同於存取一記憶體陣列(例如,陣列130-1至130-N)所需之通信協定。然後,記憶體控制器101可將自一主機(例如,102)接收之命令轉譯成適當命令以達成對一記憶體陣列之所期望存取。
記憶體陣列130-1、...、130-N可係非揮發性記憶體胞陣列,舉例而言,其可係具有一NAND架構之快閃記憶體胞。在一NAND架構中,一「列」記憶體胞之控制閘極可與一字線耦合,同時一「行」記憶體胞之汲極區可耦合至位元線。該等記憶體胞之源極區可耦合至源極線。如熟習此項技術者將瞭解,記憶體胞連接至位元線及源極線之方式相依於該陣列是一NAND架構、一NOR架構、一AND架構還是某一其他記憶體陣列架構。
圖1之實施例可包含額外電路,為不使本發明之實施例模糊未圖解說明該額外電路。舉例而言,記憶體系統120可包含用以鎖存經由I/O電路在I/O連接上提供之位址信號之位址電路。位址信號可由一列解碼器及一行解碼器接收並解碼以存取記憶體130-1、...、130-N。熟習此項技術者將瞭解,位址輸入連接之數目相依於記憶體130-1、...、130-N之密度及架構且位址數目隨著記憶體胞數目及記憶體區塊及陣列數目兩者之增加而增加。
圖2圖解說明根據本發明之一或多項實施例之一記憶體陣列230之一部分之一圖式。雖然在圖2中未展示,但熟習此項技術者將瞭解,記憶體陣列230可連同與其操作相關聯之各種周邊電路一起設置於一特定半導體晶粒上。
如圖2中所示,陣列230具有若干實體記憶體胞區塊240-0(區塊0)、240-1(區塊1)、...、240-M(區塊M)。在圖1中所示之實例中,指示符「M」用於指示陣列230可包含若干實體區塊。記憶體胞可係單位階胞及/或多位階胞。作為一實例,陣列230中之實體區塊之數目可係128個區塊、512個區塊或1,024個區塊,但實施例並不限於一陣列230中之128之特定倍數或任一特定數目之實體區塊。此外,實施例並不限於陣列中所使用記憶體之類型,例如非揮發性、揮發性等。在圖2中所圖解說明之實施例中,記憶體陣列230可係(舉例而言)一NAND快閃記憶體陣列230。
在此實例中,每一實體區塊240-0、240-1、...、240-M包含可作為一單位一起被擦除之記憶體胞,例如,每一實體區塊中之胞可以一大致同時之方式被擦除。舉例而言,每一實體區塊中之胞可在一單個作業中一起被擦除。每一實體區塊(例如,240-0、240-1、...、240-M)含有耦合至一存取線(例如,一字線)之若干記憶體胞實體列(例如,250-0、250-1、...、250-R)。指示符「R」用於指示一實體區塊(例如,240-0、240-1、...、240-M)可包含若干列。在某些實施例中,每一實體區塊中之列(例如,字線)之數目可係32,但實施例並不限於每一實體區塊特定數目之列250-0、250-1、...、250-R。
如熟習此項技術者將瞭解,每一列250-0、250-1、...、250-R可儲存一或多個資料頁。一頁係指一程式化及/或讀取單位,例如,一起程式化及/或讀取或者作為一功能性記憶體胞群組之若干胞。在圖1中所示之實施例中,每一列250-0、250-1、...、250-R儲存一個資料頁。然而,本發明之實施例並不限於此。舉例而言,在本發明之某些實施例中,每一列可儲存多個資料頁。舉例而言,一列中之每一胞可給一上部資料頁貢獻一位元且可給一下部資料頁貢獻一位元。在一或多項實施例中,一記憶體陣列可包含多個實體記憶體胞區塊且每一實體區塊可組織成多個頁。
在本發明之一或多項實施例中,且如圖2中所示,一列(例如,列250-0)可根據若干實體磁區252-0、252-1、...、252-S儲存資料。指示符「S」用於指示一列(例如,250-0、250-1、...、250-R)可包含若干實體磁區。每一實體磁區252-0、252-1、...、252-S可儲存對應於一邏輯磁區之資料且可包含附加項資訊(例如,錯誤校正碼(ECC)資訊及邏輯區塊位址(LBA)資訊)以及使用者資料。如熟習此項技術者將瞭解,邏輯區塊定址係通常由一主機用來識別一邏輯資訊磁區之一方案。作為一實例,一邏輯資料磁區可係若干資料位元組,例如,256個位元組、512個位元組或1,024個位元組。實施例並不限於此等實例。
注意,實體區塊240-0、240-1、...、240-M、列250-0、250-1、...、250-R、磁區252-0、252-1、...、252-S及頁之其他組態係可能的。舉例而言,實體區塊240-0、240-1、...、240-M之列250-0、250-1、...、250-R可各自儲存對應於一單個邏輯磁區之資料,該單個邏輯磁區可包含(舉例而言)多於或少於512個資料位元組。
圖3圖解說明根據本發明之一或多項實施例之用於若干記憶體陣列330之一檔案系統之一圖式。在一或多項實施例中,可使用若干實體區塊來儲存系統資料且可使用若干實體區塊來儲存使用者資料。在圖3中所圖解說明之實施例中,系統資料可包含一分割區開機記錄(PBR)364、保留資料366、一第一檔案分配表368及一第二檔案分配表370。系統資料可包含與用於若干記憶體陣列330之檔案系統之結構及作業相關之資料。作為一實例,檔案分配表(例如,368及370)可含有檔案分配資料,該檔案分配資料集中關於記憶體陣列(例如,330)之哪些區域儲存有資料、哪些區域係自由的或哪些區域可能不可用及資料儲存於該記憶體陣列中何處之資訊。在各種實施例中,可使用兩個檔案分配表,其中該等檔案分配表中之一者針對該等檔案分配表中之一者之一潛在故障情況充當一備份。舉例而言,保留資料366可包含含有關於記憶體陣列之資訊的資料且可由該等記憶體陣列用於實現該等記憶體陣列之作業。
在圖3中所圖解說明之實施例中,使用者資料可係(例如)自一主機裝置(例如,圖1中所示之主機102)接收之資料。可寫入、讀取及擦除使用者資料362若干次。
在一或多項實施例中,舉例而言,一主機裝置(例如,主機102)及/或一控制器中之控制電路(例如,控制器101)可將命令傳送至一記憶體陣列,使得以一所期望方式將資料寫入至該記憶體陣列。來自該主機裝置及/或控制電路之命令可經組態以在用於與每一命令相關聯之資料之一頁之開始處寫入該資料。此外,在一或多項實施例中,來自該主機裝置及/或控制電路之命令可經組態以在將資料寫入至一已擦除區塊時在一實體區塊之一第一頁(例如,實體區塊邊界)處寫入資料。在一或多項實施例中,一經格式化記憶體裝置可使用來自該主機裝置及/或控制電路之命令將資料寫入至一記憶體陣列之一頁之第一記憶體胞(例如,頁邊界)及/或將資料寫入至一空(例如,已擦除)頁之開始。
在一或多項實施例中,格式化該等記憶體陣列可包含寫入PBR資料,其中該PBR可為系統資料及使用者資料分配記憶體陣列中之空間。PBR資料結構可經建構及/或組態,使得使用者資料及系統資料在一實體區塊之開始處起始。當記憶體陣列接收到一寫入命令時,PBR致使該命令在該記憶體陣列中對應於一模數的下一可用位置處寫入資料,該模數經計算以確保該記憶體陣列中之每一模數遞增係在一實體區塊及/或頁之開始處。
在一或多項實施例中,格式化包含使用記憶體陣列之系統資料及/或元資料判定該系統資料及使用者資料在該等記憶體陣列中之位置。在一或多項實施例中,系統資料及/或元資料可包含實體參數,例如,記憶體陣列大小、頁大小、區塊大小、檔案系統類型、媒體類型及記憶體胞類型,亦包含其他參數。可將可用於儲存使用者資料之儲存空間(例如,磁區)量化為分配單位。一分配單位(例如,叢集)可包含若干磁區。一分配單位中之磁區數目可由記憶體陣列之系統資料及/或元資料規定。舉例而言,記憶體陣列中之一磁區可由512個位元組構成且一分配單位可具有8個磁區,從而產生具有4096個位元組之一分配單位。因此,在此實例中,主機可藉由將8加至先前分配單位之邏輯位址定址各自含有4096個位元組之連續分配單位。
在一或多項實施例中,可使用用於一寫入作業之最小磁區數量(其係一頁中之磁區數目,例如頁大小)及/或用於一擦除作業之最小頁數量(其係一區塊中之頁數目,例如區塊大小)連同由記憶體陣列元資料及/或系統資料所界定之分配單位一起判定用於記憶體陣列之模數。可使用該模數來格式化該記憶體陣列以判定系統資料及使用者資料之組件之起始位置。
舉例而言,一SSD可在一頁中具有4個、8個或16個磁區,其中一磁區可係512個位元組,且一SSD可每實體區塊具有128個、256個或512個頁,因此實體區塊大小係131072個位元組、262144個位元組及524288個位元組。本發明之實施例並不限於此實例且磁區、頁及實體區塊可由任一數目之位元組構成。
在一或多項實施例中,格式化記憶體陣列可包含使用頁大小、區塊大小及分配單位來判定欲在判定系統資料及使用者資料之組件之起始位置時使用之模數。在格式化期間,主機可使用:記憶體陣列之SSD組織的知識,尤其係影響一寫入作業或擦除作業之最小大小之彼等需求;以及主機之關於(舉例而言)用於判定記憶體陣列之格式(例如,系統資料及使用者資料之組件之位置)之所挑選檔案系統之元資料結構之知識,例如FAT1及FAT2之大小。舉例而言,可使用記憶體陣列之模數以及元資料及/或系統資料來界定PBR、保留資料、FAT1、FAT2及使用者資料之起始位置。此格式化將使此等部分中之每一者在一實體區塊之開始處對齊。
一旦已將裝置格式化,用以讀取或寫入使用者資料之主機請求將對齊於模數及分配單位。舉例而言,FAT類型檔案系統將最常見地以2的升冪方式將分配單位組織成若干群組的512個位元組磁區,以針對小容量裝置的一1:1分配單位對邏輯區塊映射起始,最高至每分配單位64個磁區。舉例而言,在每分配單位64個磁區之情況下,將看到由主機進行之存取將在為模數64之位址處,其中固定位移加至該位址,該固定位移相依於先前或交錯系統之大小,例如元資料、項目。
當SSD接收到未對齊至一頁邊界之一寫入命令時,該頁中先於由該寫入命令之起始邏輯區塊指示之磁區的彼等磁區被複製至由該寫入命令正存取之頁,從而產生附加項,及亦產生對記憶體陣列之更多寫入,此乃因彼等磁區之舊位置將亦需要被擦除。一經格式化SSD可藉由最小化由一未經對齊格式招致之額外寫入而增加該SSD之效能且延長其壽命。
在一或多項實施例中,期望在主機寫入新資料時產生最少量附加項及/或最少量裝置必須執行之額外讀取/寫入作業之一格式。
在一或多項實施例中,不知曉SSD之頁大小及/或擦除區塊大小(例如,元資料及/或系統資料)之一主機可基於記憶體陣列容量可量化為2的冪之事實格式化該等記憶體陣列。可藉由基於2的冪對齊系統資料及使用者資料(例如,分配單位)之組件之邏輯位址來格式化記憶體陣列。在基於2的冪對齊系統資料與邏輯單位之一或多項實施例中,對一主機命令中所接收之邏輯位址之記憶體陣列轉譯不能將一額外位移加至所接收之邏輯位址,或若使用一位移,則該額外位移亦必須係一2的冪。
根據本發明之實施例藉由寫入資料來格式化記憶體陣列可減少與在該等記憶體陣列上寫入新資料相關聯之操作附加項之量。附加項可係指除寫入命令所定址之記憶體胞以外由於硬驅動器與SSD之間的最小可寫入或可擦除單位之大小差異所致之寫入命令位址相對於快閃(頁或區塊)位址未對齊而必須複製或移動之若干額外記憶體胞。附加項可至少部分地基於因格式化記憶體陣列將致使資料被寫入至一空(例如,已擦除)頁之開始而不需要移動經部分寫入之頁來在一頁上寫入一新資料串而減少。
此外,當格式化記憶體陣列時,可更加有效地使用邏輯及/或實體區塊及/或頁。將分配單位及系統資料對齊至邏輯頁邊界及/或邏輯區塊(例如,擦除區塊)邊界之一格式可致使主機寫入命令之邏輯位址與實體區塊或頁之邊界重合。格式化可致使資料被寫入至一空(例如,已擦除)實體區塊之開始(例如,該實體區塊之邊界處)。在一經格式化記憶體陣列中可較不經常擦除及重新寫入實體區塊及/或頁中之資料,此乃因主機寫入命令之邏輯位址將在邏輯及/或實體頁及/或區塊之開始處起始,此不需要如在一未經對齊格式之情況下那樣移動或複製該頁及/或實體區塊中先於寫入命令中所指示之邏輯位址之彼等磁區。
在一或多項實施例中,格式化一記憶體陣列可補充平均抹寫,其可經實施以控制記憶體陣列(例如,圖1中之130-1、...、130-N)上之抹寫率。如熟習此項技術者將瞭解,平均抹寫可增加一固態記憶體陣列之壽命,此乃因一固態記憶體陣列可在若干程式化及/或擦除循環之後經歷故障。
在各種實施例中,平均抹寫可包含動態平均抹寫以最小化為回收一區塊所移動之有效區塊量。動態平均抹寫可包含稱為廢棄項目收集(garbage collection)之一技術,其中藉由擦除具有若干無效頁(亦即,具有已重新寫入至一不同頁及/或在無效頁上不再需要之資料之頁)之區塊而回收該等區塊。靜態平均抹寫包含將靜態資料寫入至具有高擦除計數之區塊以延長該區塊之壽命。
在一或多項實施例中,可將若干區塊指定為備用區塊以減少與在記憶體陣列中寫入資料相關聯之寫入放大之量。一備用區塊可係一記憶體陣列中可指定為其中可不寫入資料之一區塊的一區塊。寫入放大係當將資料寫入至固態記憶體陣列時發生之一過程。當將資料隨機地寫入於一記憶體陣列中時,該記憶體陣列掃描該陣列中之自由空間。一記憶體陣列中之自由空間可係未經程式化之個別胞、記憶體胞頁及/或記憶胞區塊。若存在足夠自由空間來寫入資料,則將該資料寫入至該記憶體陣列中之該自由空間。若一個位置中不存在足夠自由空間,則藉由將已存在於記憶體陣列中之資料擦除、移動及重新寫入至一新位置來重新配置該記憶體陣列中之資料,從而為欲寫入於該記憶體陣列中之新資料留出自由空間。舊資料在記憶體陣列中之重新配置可稱為寫入放大,此乃因必須進行以寫入新資料的寫入記憶體陣列之量係基於該記憶體陣列中自由空間之量及欲寫入於該記憶體陣列上之新資料之大小而放大的。寫入放大可藉由增加一記憶體陣列上指定為自由空間(亦即,將不寫入靜態資料的地方)之空間的量而減小,因此允許由於將必須重新配置之資料較少而較少地放大必須寫入之資料量。
在一或多項實施例中,格式化一記憶體陣列可用於減少寫入放大之量且亦可減少將寫入放大控制為所期望位準所需要的指定自由空間的量。經格式化記憶體陣列在實體區塊及頁之邊界處起始以一有效方式填充有資料,因此一經格式化記憶體陣列中之一資料串將不在一實體區塊及/或頁之中間起始,因此減小該資料串將需要被重新寫入至另一位置以在該記憶體陣列中為新資料空出空間之可能性。
圖4圖解說明根據本發明之一或多項實施例之具有在一區塊邊界處對齊之使用者資料之用於若干記憶體陣列430之一檔案系統之一圖式。在圖4中,用於若干記憶體陣列430之檔案系統包含一分割區開機記錄464、保留資料466、一第一檔案分配表468(檔案分配表1)及一第二檔案分配表470(檔案分配表2)。在圖4中所圖解說明之實施例中,保留部分466及第一檔案分配表468係由填補項472分離。填補項472可係不用於儲存系統資料或使用者資料之若干記憶體胞,例如,填補項472之胞可保持處於一已擦除狀態。填補項472可設置於記憶體陣列430內,使得第二檔案分配表470在一區塊邊界(例如,474)處結束。此外,填補項472可設置於記憶體陣列430內,使得使用者資料462在一區塊邊界(例如,474)處起始。使用者資料462可對齊於一區塊邊界且該使用者資料可在記憶體陣列430中之一實體區塊邊界處起始。
在一或多項實施例中,寫入至固態驅動器之系統資料及使用者資料可對齊於該固態驅動器之實體結構。亦即,當向一已擦除區塊寫入時在一實體區塊之開始處寫入資料且當向一已擦除頁寫入時在一頁之開始處寫入資料。此外,在某些實施例中,將不會把資料寫入至一經部分寫入之頁且將把該資料寫入至下一可用已擦除頁。
在一或多項實施例中,與一固態驅動器中之記憶體陣列相關聯之各種實體參數可儲存於該固態驅動器上之記憶體(例如,隨機存取記憶體(RAM)、此外其他記憶體類型)中且可經由該固態驅動器上之記憶體被傳送至固態驅動器中之控制電路。在一或多項實施例中,可自一主機裝置傳送各種實體參數,該主機裝置自固態驅動器上之記憶體接收該等實體參數。該等實體參數可包含記憶體陣列大小、頁大小、區塊大小、檔案系統類型、媒體類型及記憶體胞類型、亦包含其他參數。
在一或多項實施例中,一旦控制電路或主機裝置知曉該等實體參數,該控制電路或該主機裝置即可計算用於將資料寫入至記憶體陣列之一模數。該模數可係當寫入資料時所使用記憶體胞之最小遞增數目。可基於記憶體胞之總數目、區塊大小、頁大小及記憶體陣列之記憶體胞類型計算該模數。
在一或多項實施例中,固態驅動器之每一部分可對齊於該固態驅動器之實體參數。在各種實施例中,填補項(例如,填補項472)可提供於固態驅動器上之資料之每一部分中間。填補項可係保持未使用之若干胞(例如,留下處於一已擦除狀態之胞)及不用於寫入資料之若干胞。在某些實施例中,填補項可提供於固態驅動器之保留資料與檔案分配表之間。舉例而言,在圖4中所圖解說明之實施例中,填補項472提供於保留資料466與檔案分配表468之間。填補項可經設置,使得該等檔案分配表在一區塊邊界(例如,474)處結束,因此將使用者資料之起始對齊至檔案分配表結束位置處之區塊邊界之後之區塊的開始。
在一或多項實施例中,填補項可提供於保留資料與第一檔案分配表之間,從而致使該第一檔案分配表之起始對齊於一區塊邊界。在各種實施例中,填補項可提供於第一檔案分配表與第二檔案分配表之間,從而致使該第二檔案分配表對齊於一區塊邊界。在各種實施例中,填補項可提供於第二檔案分配表與使用者資料之間,從而致使該使用者資料對齊於一區塊邊界。在一或多項實施例中,填補項可用於(例如,設置於)記憶體陣列內之各種其他位置中,使得固態驅動器上之資料之一部分對齊於一區塊邊界。
圖5圖解說明可根據本發明之一或多項實施例操作之具有在一區塊邊界處對齊之檔案分配表及使用者資料之用於若干記憶體陣列530之一檔案系統之一圖式。在圖5中,用於若干記憶體陣列530之檔案系統具有一分割區開機記錄564、保留資料566、一第一檔案分配表568(檔案分配表1)及一第二檔案分配表570(檔案分配表2)。保留資料566與第一檔案分配表568係由填補項576分離。填補項576可係(例如)結合圖4所闡述之填補項472之填補項。舉例而言,填補項576可係不用於儲存資料(例如,不將資料寫入至胞或不自該等胞讀取資料)之若干記憶體胞。係填補項576之部分之記憶體胞在區塊邊界578處結束,使得第一檔案分配表568在一區塊邊界578處起始。寫入於第一檔案分配表568中之檔案分配資料可對齊於邊界578之後之區塊的開始,如圖5中所圖解說明。
在圖5中,第一檔案分配表568與第二檔案分配表570係由填補項580分離。係填補項580之部分之記憶體胞在區塊邊界582處結束,使得第二檔案分配表570在區塊邊界582處起始。
在圖5中,第二檔案分配表570與使用者資料562係由填補項584分離。係填補項584之部分之記憶體胞經設置,使得使用者資料562在區塊邊界586處起始。使用者資料562可對齊於一區塊邊界且該使用者資料可在記憶體陣列530中之一實體區塊邊界處起始。
本發明包含用於固態驅動器格式化之方法及裝置。一種裝置實施例包含耦合至若干記憶體陣列之控制電路,其中每一記憶體陣列具有多個實體記憶體胞區塊。該等記憶體陣列係由該控制電路格式化,該控制電路經組態以:將系統資料寫入至該若干記憶體陣列,其中該系統資料在一實體區塊邊界處結束;及將使用者資料寫入至該若干記憶體陣列,其中該使用者資料在一實體區塊邊界處起始。
雖然本文中已圖解說明及闡述了具體實施例,但熟習此項技術者將瞭解,可用經計算以達成相同結果之一配置來替代所示之具體實施例。本發明意欲涵蓋對本發明之一或多項實施例之修改或變化。應理解,以上說明係以一說明性方式而非一限定性方式作出。在審閱以上說明之後,熟習此項技術者將明瞭以上實施例之組合及本文中未具體闡述之其他實施例。本發明之一或多項實施例之範疇包含其中使用以上結構及方法之其他應用。因此,應參考隨附申請專利範圍連同授權此等申請專利範圍之等效內容之全部範圍來判定本發明之一或多項實施例之範疇。
在前述實施方式中,出於簡化本發明之目的,將某些特徵一起集合於一單項實施例中。不應將本發明之此方法解釋為反映本發明之所揭示實施例必須使用比明確陳述於每一技術方案中更多之特徵之一意圖。而是,如以下專利申請範圍反映:發明性標的物在於少於一單個所揭示實施例之所有特徵。因此,以下申請專利範圍特此併入至實施方式中,其中每一技術方案獨立地作為一單獨實施例。
101...記憶體控制器
102...主機系統/主機
103...主機介面連接器/介面
120...電子記憶體系統
130-1...記憶體陣列
130-N...記憶體陣列
230...記憶體陣列
240-0...實體記憶體胞區塊/實體區塊
240-1...實體記憶體胞區塊/實體區塊
240-M...實體記憶體胞區塊/實體區塊
250-0...實體記憶體胞列
250-1...實體記憶體胞列
252-0...實體磁區
252-1...實體磁區
250-R...實體記憶體胞列
252-S...實體磁區
330...記憶體陣列
362...使用者資料
364...分割區開機記錄(PBR)
366...保留資料
368...第一檔案分配表
370...第二檔案分配表
430...記憶體陣列
462...使用者資料
464...分割區開機記錄
466...保留資料
468...第一檔案分配表
470...第二檔案分配表
472...填補項
474...區塊邊界
530...記憶體陣列
562...使用者資料
564...分割區開機記錄
566...保留資料
568...第一檔案分配表
570...第二檔案分配表
576...填補項
578...區塊邊界
580...填補項
582...區塊邊界
584...填補項
586...區塊邊界
圖1係可根據本發明之一或多項實施例操作之一電子記憶體系統之一功能方塊圖。
圖2圖解說明根據本發明之一或多項實施例之一記憶體陣列之一部分之一圖式。
圖3圖解說明根據本發明之一或多項實施例之用於若干記憶體陣列之一檔案系統之一圖式。
圖4圖解說明根據本發明之一或多項實施例之具有在一區塊邊界處對齊之使用者資料之用於若干記憶體陣列之一檔案系統之一圖式。
圖5圖解說明根據本發明之一或多項實施例之具有在一區塊邊界處對齊之檔案分配表及使用者資料之用於若干記憶體陣列之一檔案系統之一圖式。
530‧‧‧記憶體陣列
562‧‧‧使用者資料
564‧‧‧分割區開機記錄
566‧‧‧保留資料
568‧‧‧第一檔案分配表
570‧‧‧第二檔案分配表
576‧‧‧填補項
578‧‧‧區塊邊界
580‧‧‧填補項
582‧‧‧區塊邊界
584‧‧‧填補項
586‧‧‧區塊邊界
Claims (30)
- 一種記憶體控制器,其包括:控制電路,其耦合至若干記憶體陣列,其中每一記憶體陣列具有多個實體記憶體胞區塊且其中每一記憶體陣列係由該控制電路格式化,該控制電路經組態以:將系統資料寫入至該若干記憶體陣列,其中該系統資料藉由包括在保留資料及檔案分配資料之間未含有資料之多個記憶體胞之一填補項在一第一區塊之一實體區塊邊界處結束,使得該系統資料在該第一區塊之該實體區塊邊界處結束;及將使用者資料寫入至該若干記憶體陣列,其中該使用者資料在一第二區塊之一實體區塊邊界處起始,其中該第一區塊為一與該第二區塊不同之區塊。
- 如請求項1之記憶體控制器,其中該若干記憶體陣列包含用於系統資料之一部分及用於使用者資料之一部分。
- 如請求項1之記憶體控制器,其中該控制電路經組態以寫入該系統資料及該使用者資料,使得該系統資料及該使用者資料係由不含有資料之一記憶體胞填補項分離。
- 如請求項3之記憶體控制器,其中該記憶體胞填補項經組態以使得該系統資料在該若干記憶體陣列中之一實體區塊邊界處結束且該使用者資料在該若干記憶體陣列中之一實體區塊邊界處起始。
- 如請求項3之記憶體控制器,其中該若干記憶體陣列之一或多個實體參數之一指示儲存於該控制電路中之記憶 體中。
- 如請求項5之記憶體控制器,其中該若干記憶體陣列之該一或多個實體參數包含陣列大小、頁大小、區塊大小及記憶體胞類型。
- 一種記憶體控制器,其包括:控制電路,其耦合至若干記憶體陣列,其中該若干記憶體陣列中之每一者具有多個實體記憶體胞區塊,其中該控制電路經組態以:將檔案分配資料寫入至該若干記憶體陣列之一第一區塊且包括在該檔案分配資料及使用者資料之間未含有資料之多個記憶體胞之一填補項,使得該使用者資料在與該第一區塊不同之該多個實體區塊中之一者之一開始處起始。
- 如請求項7之記憶體控制器,其中該控制電路經組態以寫入該檔案分配資料,使得一檔案分配表在一實體區塊邊界處結束。
- 如請求項8之記憶體控制器,其中該控制電路經組態以於保留資料與該檔案分配表之間提供一已擦除記憶體胞填補項,使得該檔案分配表在一實體區塊邊界處結束。
- 如請求項9之記憶體控制器,其中該控制電路經組態以於一第一檔案分配表與一第二檔案分配表之間提供一已擦除記憶體胞填補項。
- 如請求項7之記憶體控制器,其中一主機裝置耦合至該控制電路以致使該控制電路經組態以將該檔案分配資料 寫入至該若干記憶體陣列,使得使用者資料在該多個實體區塊中之一者之該開始處起始。
- 如請求項7之記憶體控制器,其中該控制電路具有記憶體及一處理器以致使該控制電路經組態以將該檔案分配資料寫入至該若干記憶體陣列,使得使用者資料在該多個實體區塊中之一者之該開始處起始。
- 如請求項7之記憶體控制器,其中該若干記憶體陣列係一個。
- 一種用於格式化一記憶體系統中之若干記憶體陣列之方法,該方法包括:指示與該若干記憶體陣列相關聯之實體參數;分配該若干記憶體陣列中之若干記憶體胞作為一儲存系統資料;分配該若干記憶體陣列中之一第一實體區塊中之若干記憶體胞作為儲存使用者資料;及在與該第一實體區塊不同之一第二實體區塊中寫入使用者資料,藉由包括未含有資料之多個記憶體胞之一填補項,使得該使用者資料在該若干記憶體陣列中之該若干記憶體胞之該第二實體區塊之一開始處起始。
- 如請求項14之方法,其中該系統資料包含一分割區開機記錄、保留資料、一第一檔案分配表及一第二檔案分配表。
- 如請求項14之方法,其包含於保留資料與一第一檔案分配表之間提供若干已擦除記憶體胞,使得一第二檔案分 配表在一實體區塊邊界處結束。
- 如請求項14之方法,其包含經由一查詢命令指示與該若干記憶體陣列相關聯之一或多個實體參數。
- 如請求項14之方法,其包含藉由自一記憶體控制器中之一記憶體接收與該若干記憶體陣列相關聯之一或多個實體參數指示該等實體參數。
- 如請求項14之方法,其包含基於該等所指示之實體參數計算用於該若干記憶體陣列之一模數。
- 一種用於格式化一記憶體系統中之一固態驅動器之方法,該方法包括:將資料寫入至一固態驅動器中之若干記憶體陣列中之一特定記憶體陣列之一公用開機記錄,其中該等特定記憶體陣列包含若干實體記憶體胞區塊;寫入該特定記憶體陣列之第一檔案分配資料及該特定記憶體陣列之第二檔案分配資料;及藉由不在儲存保留資料與儲存該第一檔案分配資料之彼等記憶體胞之間的若干記憶體胞中寫入資料來填補該特定記憶體陣列之一部分,使得該第二檔案分配資料在一第一區塊之一實體區塊邊界處結束且使得使用者資料在與該第一區塊不同之一第二區塊之一實體區塊邊界處起始。
- 如請求項20之方法,其包含藉由不在該第一檔案分配資料與該第二檔案分配資料之間的若干記憶體胞中寫入資料來填補該特定記憶體陣列之一部分,使得該第二檔案 分配資料在一第一區塊之一實體區塊邊界處結束且使得使用者資料在與該第一區塊不同之一第二區塊之一實體區塊邊界處起始。
- 如請求項20之方法,其包含藉由不在該第二檔案分配資料與該使用者資料之間的若干記憶體胞中寫入資料來填補該特定記憶體陣列之一部分,使得該第二檔案分配資料在一第一區塊之一實體區塊邊界處結束且使得使用者資料在與該第一區塊不同之一第二區塊之一實體區塊邊界處起始。
- 如請求項20之方法,其包含當寫入該使用者資料時將資料寫入至一頁之一開始。
- 如請求項20之方法,其包含至少部分地基於該特定記憶體陣列之一或多個實體參數及用於寫入至該特定記憶體陣列之一模數在一實體區塊邊界處起始寫入使用者資料。
- 如請求項24之方法,其中該一個或多個實體參數係選自包含記憶體陣列大小、區塊大小、頁大小及胞類型之群組。
- 一種固態記憶體系統,其包括:若干記憶體陣列,其中該若干記憶體陣列中之每一者包含形成若干實體區塊之若干記憶體胞,其中將該等實體區塊中之每一者組織成若干頁;一記憶體控制器,其中該記憶體控制器包含耦合至該若干記憶體陣列之控制電路; 一主機裝置,其耦合至該記憶體控制器且包含一記憶體存取裝置及記憶體,該記憶體存取裝置經組態以執行儲存於該記憶體上之指令以:當將資料寫入至選自該若干實體區塊之一已擦除實體區塊時,藉由包括在使用者資料及系統資料之間未含有資料之多個記憶體胞之一填補項在一實體區塊之一開始處寫入使用者資料;及當將資料寫入至一已擦除頁時,在一頁之一開始處寫入使用者資料。
- 如請求項26之固態記憶體系統,其中該若干記憶體陣列之若干實體參數係回應於一查詢命令自該記憶體控制器發送至該記憶體存取裝置。
- 如請求項27之固態記憶體系統,其中由該記憶體存取裝置使用該若干實體參數來計算用於該若干記憶體陣列之一模數。
- 如請求項27之固態記憶體系統,其中由該記憶體存取裝置使用該若干實體參數來計算用以寫入系統資料之一邏輯區塊位址。
- 如請求項26之固態記憶體系統,其中由該記憶體存取裝置使用該若干實體參數來計算用以寫入使用者資料之一邏輯區塊位址。
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US12/356,725 US8392687B2 (en) | 2009-01-21 | 2009-01-21 | Solid state memory formatting |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| TW201040719A TW201040719A (en) | 2010-11-16 |
| TWI418980B true TWI418980B (zh) | 2013-12-11 |
Family
ID=42337852
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| TW099101249A TWI418980B (zh) | 2009-01-21 | 2010-01-18 | 記憶體控制器、用於格式化記憶體系統中之記憶體陣列和固態驅動器之方法及固態記憶體系統 |
Country Status (7)
| Country | Link |
|---|---|
| US (3) | US8392687B2 (zh) |
| EP (1) | EP2389631B1 (zh) |
| JP (1) | JP5823875B2 (zh) |
| KR (3) | KR101759811B1 (zh) |
| CN (1) | CN102292711B (zh) |
| TW (1) | TWI418980B (zh) |
| WO (1) | WO2010090697A2 (zh) |
Families Citing this family (28)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US8402217B2 (en) | 2009-09-15 | 2013-03-19 | Marvell International Ltd. | Implementing RAID in solid state memory |
| US8988800B1 (en) | 2009-09-15 | 2015-03-24 | Marvell International Ltd. | Error correction for storage devices |
| US20120089765A1 (en) * | 2010-10-07 | 2012-04-12 | Huang Shih-Chia | Method for performing automatic boundary alignment and related non-volatile memory device |
| JP5395824B2 (ja) * | 2011-02-16 | 2014-01-22 | 株式会社東芝 | メモリシステム |
| KR101457451B1 (ko) * | 2011-04-29 | 2014-11-05 | 엘에스아이 코포레이션 | 암호화된 전송 고체 상태 디스크 제어기 |
| JP2013077209A (ja) * | 2011-09-30 | 2013-04-25 | Nintendo Co Ltd | プログラム、情報処理システム、情報処理装置、および情報処理方法 |
| TWI467379B (zh) * | 2012-04-23 | 2015-01-01 | Phison Electronics Corp | 系統運作方法、記憶體控制器與記憶體儲存裝置 |
| CN103383663B (zh) * | 2012-05-04 | 2016-06-29 | 群联电子股份有限公司 | 系统运作方法、存储器控制器与存储器 |
| US9645917B2 (en) * | 2012-05-22 | 2017-05-09 | Netapp, Inc. | Specializing I/O access patterns for flash storage |
| JP2015191336A (ja) * | 2014-03-27 | 2015-11-02 | キヤノン株式会社 | メモリ制御装置、情報処理装置とその制御方法、及びプログラム |
| US9431052B2 (en) | 2014-06-26 | 2016-08-30 | Marvell World Trade Ltd. | Two dimensional magnetic recording systems, devices and methods |
| US10338817B2 (en) * | 2014-12-30 | 2019-07-02 | Sandisk Technologies Llc | Systems and methods for storage recovery |
| KR102322084B1 (ko) * | 2015-04-30 | 2021-11-04 | 삼성디스플레이 주식회사 | 터치 센서 장치 및 그 제조 방법 |
| JP2017004146A (ja) * | 2015-06-08 | 2017-01-05 | 富士通株式会社 | ストレージ制御装置 |
| TWI554885B (zh) * | 2015-08-18 | 2016-10-21 | 群聯電子股份有限公司 | 記憶體管理方法、記憶體控制電路單元及記憶體儲存裝置 |
| CN106484307B (zh) * | 2015-08-25 | 2019-05-21 | 群联电子股份有限公司 | 存储器管理方法、存储器控制电路单元及存储器存储装置 |
| KR102502569B1 (ko) * | 2015-12-02 | 2023-02-23 | 삼성전자주식회사 | 시스템 리소스 관리를 위한 방법 및 장치 |
| US10261876B2 (en) * | 2016-11-08 | 2019-04-16 | Micron Technology, Inc. | Memory management |
| US10795836B2 (en) * | 2017-04-17 | 2020-10-06 | Microsoft Technology Licensing, Llc | Data processing performance enhancement for neural networks using a virtualized data iterator |
| US20190227957A1 (en) * | 2018-01-24 | 2019-07-25 | Vmware, Inc. | Method for using deallocated memory for caching in an i/o filtering framework |
| US11842046B2 (en) | 2018-06-30 | 2023-12-12 | Huawei Technologies Co., Ltd. | Storage fragment management method and terminal |
| KR102795754B1 (ko) * | 2018-11-16 | 2025-04-15 | 삼성전자주식회사 | 스토리지 장치 및 이를 포함하는 스토리지 시스템 |
| KR102732866B1 (ko) | 2018-12-07 | 2024-11-22 | 에스케이하이닉스 주식회사 | 컨트롤러, 이를 포함하는 메모리 시스템 및 이의 동작 방법 |
| KR20200086143A (ko) * | 2019-01-08 | 2020-07-16 | 삼성전자주식회사 | 저장 장치 및 그것의 데이터 처리 방법 |
| IT201900000973A1 (it) | 2019-01-23 | 2019-04-23 | Cosimo Romano | Sistema di riscaldamento a induzione |
| TWI738308B (zh) * | 2020-04-27 | 2021-09-01 | 宇瞻科技股份有限公司 | 基於分頁模式備份資料的固態硬碟以及基於分頁模式的固態硬碟資料備份方法 |
| US11581048B2 (en) * | 2020-11-30 | 2023-02-14 | Cigent Technology, Inc. | Method and system for validating erasure status of data blocks |
| CN117632040B (zh) * | 2024-01-25 | 2024-04-30 | 合肥兆芯电子有限公司 | 数据写入方法、存储器存储装置以及存储器控制电路单元 |
Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20060004969A1 (en) * | 2004-06-30 | 2006-01-05 | Takaya Suda | High-speed accessible memory featuring reduced data movement |
| TWI276109B (en) * | 2004-05-14 | 2007-03-11 | Fujitsu Ltd | Semiconductor memory |
| US20070234297A1 (en) * | 2006-03-31 | 2007-10-04 | Microsoft Corporation | Software robustness through search for robust runtime implementations |
| US20080002467A1 (en) * | 2006-06-30 | 2008-01-03 | Hidetaka Tsuji | Card controller controlling semiconductor memory including memory cell having charge accumulation layer and control gate |
| TW200847169A (en) * | 2007-01-30 | 2008-12-01 | Micron Technology Inc | Memory device architectures and operation |
Family Cites Families (25)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6125435A (en) | 1995-09-13 | 2000-09-26 | Lexar Media, Inc. | Alignment of cluster address to block addresses within a semiconductor non-volatile mass storage memory |
| US5799168A (en) * | 1996-01-05 | 1998-08-25 | M-Systems Flash Disk Pioneers Ltd. | Standardized flash controller |
| JP3588231B2 (ja) * | 1997-08-04 | 2004-11-10 | 東京エレクトロンデバイス株式会社 | データ処理システム及びブロック消去型記憶媒体 |
| JP4079506B2 (ja) | 1997-08-08 | 2008-04-23 | 株式会社東芝 | 不揮発性半導体メモリシステムの制御方法 |
| JP2007293917A (ja) * | 1997-08-08 | 2007-11-08 | Toshiba Corp | メモリシステムの制御方法 |
| WO2000050997A1 (en) * | 1999-02-22 | 2000-08-31 | Hitachi, Ltd. | Memory card, method for allotting logical address, and method for writing data |
| US6191712B1 (en) * | 1999-06-28 | 2001-02-20 | International Business Machines Corporation | Circuit for aligning logical sectors with physical sectors in a disk storage system |
| EP1145126B1 (en) * | 1999-10-21 | 2005-02-02 | Matsushita Electric Industrial Co., Ltd. | A semiconductor memory card access apparatus, a computer-readable recording medium, an initialization method, and a semiconductor memory card |
| US7085914B1 (en) * | 2000-01-27 | 2006-08-01 | International Business Machines Corporation | Methods for renaming stack references to processor registers |
| JP3942807B2 (ja) * | 2000-06-06 | 2007-07-11 | 株式会社ルネサステクノロジ | ブロックアラインメント機能付き半導体記憶装置 |
| US6745266B1 (en) * | 2001-12-21 | 2004-06-01 | Unisys Corporation | Method and apparatus for disk cache translation between systems |
| JP4238514B2 (ja) * | 2002-04-15 | 2009-03-18 | ソニー株式会社 | データ記憶装置 |
| CN100422956C (zh) * | 2003-08-06 | 2008-10-01 | 松下电器产业株式会社 | 半导体存储卡、存取装置和存取方法 |
| US20050041453A1 (en) | 2003-08-22 | 2005-02-24 | Brazis Paul W. | Method and apparatus for reading and writing to solid-state memory |
| US7383375B2 (en) * | 2003-12-30 | 2008-06-03 | Sandisk Corporation | Data run programming |
| JP4130808B2 (ja) * | 2004-01-30 | 2008-08-06 | 松下電器産業株式会社 | フォーマット方法 |
| JP4177292B2 (ja) * | 2004-05-31 | 2008-11-05 | Tdk株式会社 | メモリンコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法 |
| JP4177301B2 (ja) * | 2004-07-29 | 2008-11-05 | Tdk株式会社 | メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法 |
| US7395404B2 (en) * | 2004-12-16 | 2008-07-01 | Sandisk Corporation | Cluster auto-alignment for storing addressable data packets in a non-volatile memory array |
| US7509474B2 (en) * | 2005-06-08 | 2009-03-24 | Micron Technology, Inc. | Robust index storage for non-volatile memory |
| US20070143566A1 (en) | 2005-12-21 | 2007-06-21 | Gorobets Sergey A | Non-volatile memories with data alignment in a directly mapped file storage system |
| WO2008016081A1 (en) * | 2006-08-04 | 2008-02-07 | Panasonic Corporation | Memory controller, nonvolatile memory device, access device, and nonvolatile memory system |
| JP2008112285A (ja) * | 2006-10-30 | 2008-05-15 | Toshiba Corp | 不揮発性メモリシステム |
| US7774525B2 (en) | 2007-03-13 | 2010-08-10 | Dell Products L.P. | Zoned initialization of a solid state drive |
| TWI362667B (en) * | 2007-12-31 | 2012-04-21 | Phison Electronics Corp | Data writing method for flash memory and controller thereof |
-
2009
- 2009-01-21 US US12/356,725 patent/US8392687B2/en active Active
-
2010
- 2010-01-15 WO PCT/US2010/000099 patent/WO2010090697A2/en not_active Ceased
- 2010-01-15 EP EP10738833.2A patent/EP2389631B1/en active Active
- 2010-01-15 KR KR1020157015649A patent/KR101759811B1/ko active Active
- 2010-01-15 KR KR1020147001824A patent/KR20140016440A/ko not_active Ceased
- 2010-01-15 KR KR1020117019230A patent/KR20110107857A/ko not_active Ceased
- 2010-01-15 CN CN201080005159.2A patent/CN102292711B/zh active Active
- 2010-01-15 JP JP2011546264A patent/JP5823875B2/ja active Active
- 2010-01-18 TW TW099101249A patent/TWI418980B/zh active
-
2013
- 2013-03-04 US US13/783,971 patent/US9626287B2/en active Active
-
2017
- 2017-03-16 US US15/460,296 patent/US20170199702A1/en not_active Abandoned
Patent Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| TWI276109B (en) * | 2004-05-14 | 2007-03-11 | Fujitsu Ltd | Semiconductor memory |
| US20060004969A1 (en) * | 2004-06-30 | 2006-01-05 | Takaya Suda | High-speed accessible memory featuring reduced data movement |
| US20070234297A1 (en) * | 2006-03-31 | 2007-10-04 | Microsoft Corporation | Software robustness through search for robust runtime implementations |
| US20080002467A1 (en) * | 2006-06-30 | 2008-01-03 | Hidetaka Tsuji | Card controller controlling semiconductor memory including memory cell having charge accumulation layer and control gate |
| TW200847169A (en) * | 2007-01-30 | 2008-12-01 | Micron Technology Inc | Memory device architectures and operation |
Non-Patent Citations (1)
| Title |
|---|
| http://gnu.org/software/libc/manual/html_node/Resizing-the-Data-Segment.html網頁之日期擷取,Wayback Machine,擷取網頁:http://web.archive.org/web/20071016170902/http://gnu.org/software/libc/manual/html_node/Resizing-the-Data-Segment.html,2007/10/16。 * |
Also Published As
| Publication number | Publication date |
|---|---|
| KR101759811B1 (ko) | 2017-07-19 |
| WO2010090697A2 (en) | 2010-08-12 |
| EP2389631A2 (en) | 2011-11-30 |
| US9626287B2 (en) | 2017-04-18 |
| CN102292711B (zh) | 2016-01-27 |
| EP2389631B1 (en) | 2018-08-08 |
| US20170199702A1 (en) | 2017-07-13 |
| CN102292711A (zh) | 2011-12-21 |
| JP5823875B2 (ja) | 2015-11-25 |
| WO2010090697A3 (en) | 2010-10-28 |
| KR20150070448A (ko) | 2015-06-24 |
| KR20110107857A (ko) | 2011-10-04 |
| US20100185802A1 (en) | 2010-07-22 |
| EP2389631A4 (en) | 2012-08-22 |
| US20130254465A1 (en) | 2013-09-26 |
| US8392687B2 (en) | 2013-03-05 |
| KR20140016440A (ko) | 2014-02-07 |
| JP2012515955A (ja) | 2012-07-12 |
| TW201040719A (en) | 2010-11-16 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| TWI418980B (zh) | 記憶體控制器、用於格式化記憶體系統中之記憶體陣列和固態驅動器之方法及固態記憶體系統 | |
| US12229448B2 (en) | Memory system and method of controlling nonvolatile memory | |
| TWI432960B (zh) | 操作記憶體單元之方法,記憶體控制器以及記憶體系統 | |
| JP5728672B2 (ja) | ハイブリッドメモリ管理 | |
| CN115145478B (zh) | 快闪存储器控制器的控制方法、快闪存储器控制器以及储存装置 | |
| US20130275655A1 (en) | Memory management method and memory controller and memory storage device using the same | |
| US20150058531A1 (en) | Data writing method, memory control circuit unit and memory storage apparatus | |
| KR20200032404A (ko) | 데이터 저장 장치 및 동작 방법, 이를 포함하는 스토리지 시스템 | |
| TW202314471A (zh) | 儲存裝置及其操作方法 | |
| CN118215905A (zh) | 用于主机缓冲区管理的数据存储设备和方法 | |
| CN117435125A (zh) | 存储器控制器以及包括存储器控制器的存储器系统 | |
| KR20220159270A (ko) | 스토리지 장치 및 그 동작 방법 | |
| CN111309642A (zh) | 一种存储器及其控制方法与存储系统 | |
| US20250265185A1 (en) | Data Storage Device and Method for Using an Adaptive, Configurable Storage Indirection Unit |