TWI432960B - 操作記憶體單元之方法,記憶體控制器以及記憶體系統 - Google Patents
操作記憶體單元之方法,記憶體控制器以及記憶體系統 Download PDFInfo
- Publication number
- TWI432960B TWI432960B TW099101251A TW99101251A TWI432960B TW I432960 B TWI432960 B TW I432960B TW 099101251 A TW099101251 A TW 099101251A TW 99101251 A TW99101251 A TW 99101251A TW I432960 B TWI432960 B TW I432960B
- Authority
- TW
- Taiwan
- Prior art keywords
- memory
- logical address
- memory unit
- user data
- host
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims description 44
- 238000006073 displacement reaction Methods 0.000 claims description 45
- 239000007787 solid Substances 0.000 claims description 22
- 230000004044 response Effects 0.000 claims description 7
- 238000003491 array Methods 0.000 claims description 6
- 230000008569 process Effects 0.000 claims description 2
- 230000003321 amplification Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 6
- 238000003199 nucleic acid amplification method Methods 0.000 description 6
- 101000824318 Homo sapiens Protocadherin Fat 1 Proteins 0.000 description 4
- 102100022095 Protocadherin Fat 1 Human genes 0.000 description 4
- 238000012935 Averaging Methods 0.000 description 3
- 238000013500 data storage Methods 0.000 description 3
- 230000002093 peripheral effect Effects 0.000 description 3
- 239000004065 semiconductor Substances 0.000 description 3
- 230000003068 static effect Effects 0.000 description 3
- 101000824299 Homo sapiens Protocadherin Fat 2 Proteins 0.000 description 2
- 102100022093 Protocadherin Fat 2 Human genes 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000012937 correction Methods 0.000 description 2
- 230000001934 delay Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000013403 standard screening design Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000007717 exclusion Effects 0.000 description 1
- 125000000524 functional group Chemical group 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 229920001690 polydopamine Polymers 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
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/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; 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
-
- 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
-
- 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
- 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
-
- 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/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)
- Techniques For Improving Reliability Of Storages (AREA)
- Read Only Memory (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時,可將記憶體單元劃分成若干區域,每一區域皆具有可或可不對應於一實體邊界(例如,一記憶體胞頁或一記憶體胞區塊)之一起始邏輯位址。舉例而言,該檔案系統之一使用者資料區域可具有可映射至一記憶體胞頁或一記憶體胞區塊之中間之一起始邏輯區塊位址。
本發明包含用於一邏輯位址位移之方法、裝置及系統。一種方法實施例包含偵測一記憶體單元格式化作業。隨後,回應於偵測該格式化作業,該方法包含檢驗該記憶體單元上之格式資訊、計算一邏輯位址位移及應用該位移至一主機邏輯位址。
在本發明之以下詳細說明中,參照形成本發明之一部分且其中以圖解說明方式顯示可如何實踐本發明之一或多項實施例之隨附圖式。充分詳細地闡述此等實施例以使熟習此項技術者能夠實踐本發明之該等實施例,且應理解,可利用其他實施例且可在不背離本發明之範疇之情況下作出處理程序、電、及/或結構改變。如本文中所使用,標示符「N」、「M」、「R」及「S」(尤其係關於圖式中之參考編號)指示指示本發明之一或多項實施例可包含如此標示之若干特定特徵。
本文中之圖遵循如下之一編號慣例,其中第一個數位或前幾個數位對應於圖式圖編號且剩餘數位識別圖式中之一元件或組件。不同圖之間的類似元件或組件可藉由使用類似數位來識別。舉例而言,101可參考圖1中之元件「01」,且在圖2中可將一類似元件稱為「201」。如將瞭解,可添加、更換及/或消除本文中各種實施例中所示之元件以提供本發明之若干額外實施例。另外,如將瞭解,圖中所提供之元件之比例及相對比例尺意欲圖解說明本發明之實施例且不應視為一限定意義。
圖1係根據本發明之一或多項實施例之包含一記憶體系統120之一計算系統100之一功能方塊圖。在圖1中所圖解說明之實施例中,記憶體系統120(例如,一固態驅動器(SSD))可包含一記憶體控制器101、一主機介面連接器103及一或多個固態記憶體裝置130-1、...、130-N。固態記憶體裝置130-1、...、130-N在本文中統稱為一記憶體單元132。可將一檔案系統格式化至記憶體單元132,使得記憶體單元132可提供用於資料儲存之一存放磁碟區(storage volume)。在一或多項實施例中,包含主機介面連接器103、記憶體單元132及記憶體控制器101之記憶體系統120可係一離散記憶體模組(例如,一印刷電路板)之部分。
如圖1中所圖解說明,記憶體控制器101可耦合至記憶體介面連接器103且耦合至固態記憶體裝置130-1、...、130-N。主機介面連接器103可用於在記憶體系統120與另一裝置(例如,一主機系統102)之間傳送資訊。主機系統102可包含一記憶體存取裝置,例如一處理器。熟習此項技術者將瞭解,「一處理器」可意指一或多個處理器,例如,一平行處理系統、若干共處理器等。主機系統之實例包含膝上型電腦、個人電腦、數位相機、數位記錄及回放裝置、行動電話、PDA、記憶體讀卡器、介面集線器等。對於一或多項實施例,主機介面連接器103可係呈一標準化介面形式。舉例而言,當記憶體系統120用於一計算系統100中之資料儲存時,主機介面連接器103可係一串列進階附接技術(SATA)、周邊組件互連express(PCIe)或一通用串列匯流排(USB),亦包含其他連接器及介面。然而,一般而言,主機介面連接器103可提供用於在記憶體系統120與一主機系統102之間傳遞控制、位址、資料及其他信號之一介面,主機系統102具有用於主機介面連接器103之相容接納器。
記憶體控制器101可與固態記憶體裝置130-1、...、130-N通信以讀取、寫入及擦除資料,亦進行其他作業。記憶體控制器101可具有可係一或多個積體電路及/或離散組件之電路。對於一或多項實施例,記憶體控制器101中之電路可包含用於控制跨越固態記憶體裝置130-1、...、130-N之存取之控制電路及用於在一主機系統102與記憶體系統120之間提供一轉譯層之電路。因此,一記憶體控制器可選擇性地耦合一固態記憶體裝置130-1、...、130-N之一I/O連接(圖1中未顯示)以在適當時間在適當I/O連接處接收適當信號。類似地,一主機系統102與記憶體系統120之間的通信協定可不同於存取一固態記憶體裝置130-1、...、130-N所需之通信協定。然後,記憶體控制器101可將自一主機接收之命令轉譯成適當命令以達成對一固態記憶體裝置130-1、...、130-N之所期望存取。
一固態記憶體裝置130-1、...、130-N可包含一或多個記憶體胞(例如,非揮發性記憶體胞)陣列。舉例而言,該等陣列可係具有一NAND架構之快閃陣列。在一NAND架構中,一「列」之記憶體胞之控制閘極可與一字線耦合,同時該等記憶體胞可以一「串」形式源極至汲極地串聯耦合於一選擇閘源極電晶體與一選擇閘汲極電晶體之間。該串可藉由選擇閘汲極電晶體連接至一位元線。術語「列」及「串」之使用既不暗示一線性記憶體胞配置亦不暗示一正交記憶體胞配置。如熟習此項技術者將瞭解,記憶體胞連接至位元線及源極線之方式相依於該陣列是一NAND架構、一NOR架構還是某一其他記憶體陣列架構。
圖1之實施例可包含額外電路,為不使本發明之實施例模糊未圖解說明該額外電路。舉例而言,記憶體系統120可包含用以鎖存經由I/O電路在I/O連接上提供之位址信號之位址電路。位址信號可由一列解碼器及一行解碼器接收並解碼以存取固態記憶體裝置130-1、...、130-N。熟習此項技術者將瞭解,位址輸入連接之數目可相依於固態記憶體裝置130-1、...、130-N之密度及架構。
圖2係根據本發明之一或多項實施例之一記憶體控制器201之一功能方塊圖。記憶體控制器201可類似於圖1中所圖解說明之記憶體控制器101。記憶體控制器201可包含一主機介面(I/F)204,其可(例如)經由圖1中所圖解說明之一主機介面連接器103與一主機系統介接。主機介面耦合至記憶體控制器201之控制電路208及控制器記憶體210。控制電路208可耦合至控制器記憶體210且耦合至一比較器214。控制器記憶體210可耦合至一加法器212。比較器214及加法器212可耦合在一起且耦合至一記憶體單元介面(I/F)206。該記憶體控制器可經由記憶體單元介面206耦合至一記憶體單元,例如,圖1中所圖解說明之記憶體單元132。
記憶體控制器201可包含額外組件,此處未圖解說明該等額外組件以不使本發明之實施例模糊。此外,記憶體控制器201在不背離本發明之範疇之情況下可具有所圖解說明之組件之不同配置。記憶體控制器201可採取一積體電路之形式,其中圖2中所圖解說明之組件表示積體電路之功能性,或記憶體控制器201可係離散組件之一組合。
主機介面204可將信號發送至一主機系統(例如,圖1中之主機系統102)及/或自該主機系統接收信號。記憶體單元介面206可將信號發送至一記憶體單元(例如,圖1中之記憶體單元132)及/或自該記憶體單元接收信號。控制電路208可解碼經由主機介面204自一主機系統提供之信號。此等信號可包含用於記憶體單元之各種讀取、寫入、擦除或其他操作信號。控制器記憶體210可係控制器201本端之記憶體且可係揮發性記憶體或非揮發性記憶體,例如,DRAM、EPROM、EEPROM、快閃等。控制器記憶體210可經組態以儲存如本文中所闡述之一或多個邏輯位址位移。熟習此項技術者將瞭解,可提供額外電路及控制信號,且已減少圖2之裝置細節以促進圖解說明。
比較器214可包含一或多個邏輯位址範圍比較器,其經組態以比較一主機邏輯位址與對應於一記憶體單元上之一經格式化檔案系統之若干區域之一邏輯位址範圍。舉例而言,如本文中所詳細闡述,比較器214可用於判定一主機邏輯位址是否在對應於一使用者資料區域之一邏輯位址範圍內。如將瞭解,一主機邏輯位址可係本文中更詳細闡述之一主機邏輯區塊位址(LBA)。為便於提及,將在本文中使用術語「主機LBA」但其並不排除其他類型之主機邏輯位址與本發明之一或多項實施例一起使用。
加法器212可經組態以將一位移(例如,儲存於控制器記憶體210中之一位移)加至經由主機介面204接收之一邏輯位址。在一或多項實施例中,加法器212可在跨越記憶體單元介面206發送主機LBA之前將該位移加至主機LBA。
控制器201可經組態以使得控制電路208可計算一邏輯位址位移且將該位移儲存於控制器記憶體210中。舉例而言,一或多個邏輯位址位移可儲存於記憶體210中直至控制電路208偵測到一格式化作業為止。控制器201可(例如)回應於一主機系統嘗試存取一記憶體單元之與主機LBA相關聯之一部分而自主機介面204接收該等主機LBA。當比較器214偵測到一特定位址範圍(例如,對應於一檔案系統之一使用者資料區域之一範圍)內之一主機LBA時,加法器212可將位移加至主機LBA且可跨越記憶體單元介面206傳遞位移主機LBA。由控制器201執行之此等作業對主機系統可係透明的且在本文中更加詳細地論述。
在一或多項實施例中,與記憶體單元相關聯之各種實體參數(例如,根據所檢驗格式資訊)可儲存於控制器記憶體210中且可被傳送至控制電路208。實體參數之實例包含記憶體單元大小、頁大小、區塊大小、檔案系統類型、媒體類型及記憶體胞類型,亦包含其他參數。
圖3圖解說明根據本發明之一或多項實施例之一記憶體裝置330之一部分之一圖示。雖然在圖3中未顯示,但熟習此項技術者將瞭解,記憶體裝置330可連同與其操作相關聯之各種周邊電路一起設置於一半導體晶粒上。記憶體裝置330可包含一或多個記憶體胞陣列。
如圖3中所示,記憶體裝置330可包含若干記憶體胞實體區塊340-0(區塊0)、340-1(區塊1)、...、340-M(區塊M)。在圖3中所示之實例中,指示符「M」用於指示記憶體裝置330可包含若干實體區塊。作為一實例,記憶體裝置330中之實體區塊之數目可係128個區塊、4,096個區塊或32,768個區塊,然而,實施例並不限於一記憶體裝置中之特定數目或多個記憶體區塊。此外,實施例並不限於陣列中所使用記憶體之類型,例如非揮發性、揮發性等。在圖3中所圖解說明之實施例中,記憶體裝置330可係(舉例而言)一NAND快閃記憶體裝置330,使得(舉例而言)每一實體區塊340-0、340-1、...、340-M中之記憶體胞可作為一單位一起被擦除,例如,每一實體區塊中之胞可以一大致同時之方式被擦除。舉例而言,每一實體區塊中之胞可在一單個擦除作業中一起被擦除。
指示符「R」用於指示一實體區塊(例如,340-0、340-1、...、340-M)可包含若干列。在某些實施例中,每一實體區塊中之列(例如,字線)之數目可係32,但實施例並不限於每一實體區塊特定數目之列350-0、350-1、...、350-R。如熟習此項技術者將瞭解,每一列350-0、350-1、...、350-R可包含一或多個實體頁,例如,一偶數頁及一奇數頁。一實體頁係指一寫入及/或讀取單位,例如,一起寫入及/或讀取或者作為一記憶體胞功能群組之若干胞。因此,可藉助單獨寫入及/或讀取作業寫入及/或讀取一偶數頁及一奇數頁。對於包含多位階胞(MLC)之實施例,可將一實體頁在邏輯上劃分成一上部資料頁及一下部資料頁。舉例而言,一個記憶體胞可將一或多個位元貢獻給一上部資料頁且將一或多個位元貢獻給一下部資料頁。因此,可作為一個寫入及/或讀取作業之部分來寫入及/或讀取一上部資料頁及一下部資料頁,此乃因邏輯上部頁及邏輯下部頁兩者係相同實體頁之部分。為便於圖解說明,圖3中之每一列350-0、350-1、...、350-R僅包含一個實體及邏輯頁,然而,實施例並不限於此。
在本發明之一或多項實施例中且如圖3中所示,一頁可將資料儲存於若干磁區352-0、352-1、...、352-S中。指示符「S」用於指示一頁可包含若干磁區。每一磁區352-0、352-1、...、352-S可儲存系統及/或使用者資料且可包含附加項資訊,例如,錯誤校正碼(ECC)資訊及邏輯區塊位址(LBA)資訊。如熟習此項技術者將瞭解,邏輯區塊定址係可由一主機用來識別一資訊磁區之一方案,例如,每一磁區可對應於一唯一LBA。在一或多項實施例中,一磁區係一存放磁碟區之最小可定址部分。作為一實例,一資料磁區可係若干資料位元組,例如,256個位元組、512個位元組或1,024個位元組。舉例而言,一SSD可在一頁中具有4個、8個或16個磁區,其中一磁區可係512個位元組,且一SSD可每實體區塊具有128個、256個或512個頁,因此實體區塊大小係131072個位元組、262144個位元組及524288個位元組。實施例並不限於此等實例。
注意,實體區塊340-0、340-1、...、340-M、列350-0、350-1、...、350-R、磁區352-0、352-1、...、352-S及頁之其他組態係可能的。舉例而言,實體區塊340-0、340-1、...、340-M之列350-0、350-1、...、350-R可各自儲存對應於一單個磁區之資料,該單個磁區可包含(舉例而言)多於或少於512個資料位元組。
圖4圖解說明根據本發明之一或多項實施例之以一檔案系統460格式化之一記憶體單元之一方塊圖。如本文中所闡述,經格式化記憶體單元可提供一存放磁碟區。雖然圖4中所圖解說明之實施例包含一檔案分配表(FAT)檔案系統,但本發明之實施例並不限於一特定類型之檔案系統。舉例而言,本發明之一或多項實施例可與(例如)新技術檔案系統(NTFS)、Unix檔案系統(UFS)、通用磁碟格式(UDF)等其他檔案系統一起使用。在一或多項實施例中,以檔案系統460格式化之記憶體單元可包含一系統資料區域461及一使用者資料區域462。系統資料區域461可包含與檔案系統460之結構及作業相關之格式資訊,例如,「元資料」465。在圖4中所圖解說明之實施例中,系統資料區域461包含若干區段,例如,一分割區開機記錄464、一保留區域466、一第一檔案分配表468、一第二檔案分配表470及一根目錄472。
分割區開機記錄(PBR)464被圖解說明為檔案系統460中之第一區域。PBR 464可包含一主開機記錄及一磁碟區開機記錄中之任一者或兩者。舉例而言,PBR 464可包含用於開機一作業系統之程式碼或儲存於存放磁碟區之其他區域中之其他程式。PBR 464可包含格式資訊,例如,檔案系統元資料465。格式資訊(例如,檔案系統元資料465)可包含實體參數,例如,記憶體大小、頁大小、區塊大小、檔案系統類型、媒體類型、記憶體胞類型以及檔案系統之若干區段之大小及/或起始位址,亦可包含其他參數。雖然將元資料465圖解說明為係在PBR 464內,但實施例並不限於此。舉例而言,元資料465可設置於系統資料區域461之一或多個其他區段中。檔案系統元資料465可包含可允許識別含有該元資料之檔案系統之類型的資訊。
保留區域466通常可保持為空。可使用保留區域466之某些應用程式包含多開機載入器、安全應用程式等。
檔案分配表468及470可含有映射至使用者資料區域462之每一經定址部分之項目之一列表。此等經定址部分可稱為分配單位,例如,叢集。由於用於計算裝置之某些作業系統可經設計以與硬碟驅動器上之存放磁碟區一起工作,因此此等作業系統可使用叢集作為分配單位,其中該叢集係磁碟上之若干順序磁軌磁區。然而,使用一叢集作為一固態記憶體裝置之一分配單位不需要該叢集之部分(例如,若干磁區)係連續的。檔案分配表468及470可含有關於使用者資料區域462之哪些部分儲存有資料、哪些部分自由、哪些部分可能係不可使用的及資料儲存於記憶體單元中何處之資訊。在各種實施例中,兩個檔案分配表皆可儲存冗餘資訊,以使得一個檔案分配表可針對另一檔案分配表之一潛在故障而充當一備份,例如,檔案分配表2可係檔案分配表1之一冗餘複製。
根目錄472可含有檔案及/或目錄資訊(例如,檔案及/或目錄之第一部分之名稱、類型、創建資訊、大小、位址)及其他資訊。如圖4中所圖解說明之一專用根目錄472通常可與FAT12及FAT16檔案系統一起使用。其他檔案系統(舉例而言,FAT32)可將與根目錄472相關聯之資訊儲存於使用者資料區域462中。
在圖4中所圖解說明之實施例中,使用者資料可係自一主機系統(例如,圖1中所示之主機系統102)接收之資料。可多次將使用者資料寫入至使用者資料區域462、可多次自使用者資料區域462讀取該使用者資料且可多次自使用者資料區域462擦除該使用者資料。在一或多項實施例中,系統資料區域461之結束476及/或使用者資料區域462之開始476可因邏輯位址而彼此毗鄰。舉例而言,若系統資料區域461之結束邏輯位址係0020,則使用者資料區域462之開始邏輯位址係0021。因此,如圖4中所圖解說明,位移474可在使用者資料區域462內。本文中更加詳細地闡述位移474。
在供資料儲存使用之前,一記憶體單元可經格式化以使得將資料結構裝設成既組織該記憶體單元且亦向主機提供一抽象層。藉由格式化提供之抽象層允許不同容量裝置、不同媒體類型及不同介面類型給主機提供存取記憶體單元之一共同方法。格式化記憶體單元可包含寫入包含檔案系統元資料465之PBR資料,其中PBR 464可為系統資料及使用者資料分配記憶體單元中之空間。
一記憶體控制器(例如,圖1中之記憶體控制器101)可偵測記憶體單元格式化作業且檢驗與格式化至記憶體單元之檔案系統460相關聯之元資料465。隨後,回應於偵測該格式化作業,該記憶體控制器可根據檔案系統元資料465判定該記憶體單元之一使用者資料區域462之一起始邏輯位址476。該控制器可計算一邏輯位址位移474,該邏輯位址位移在應用至使用者資料區域462之起始邏輯位址時對應於一實體記憶體胞頁(例如,一實體頁邊界)及一實體記憶體胞區塊(例如,一實體區塊邊界)中之一者或多者之一開始。在一或多項實施例中,邏輯位址位移474可等於系統資料區域461之一結束476與一實體記憶體胞頁及一實體記憶體胞區塊中之後續一者或多者之一開始478之間的邏輯位址之差。舉例而言,若與系統資料區域461相關聯之最後一個邏輯位址係0030且與下一區塊之開始相關聯之邏輯位址係0032,則邏輯位址位移474係0002。所計算之邏輯位址位移474可保存在控制器之一記憶體(例如,一非揮發性記憶體)中以供後續使用。
控制器可應用邏輯位址位移474至等於或大於使用者資料區域462之起始位址之一主機LBA。在一或多項實施例中,該控制器可應用邏輯位址位移474至等於或大於使用者資料區域462之起始位址之所有主機LBA。如此,主機嘗試在使用者資料區域462內存取(例如,寫入、讀取或擦除)之一位址可具有應用至其的位移。主機可能不知曉所正應用之位移但可相應地操作。然而,控制器可應用該位移至使用者資料邏輯位址,使得使用者資料區域462之有效開始位移至一實體記憶體胞頁及一實體記憶體胞區塊中之一者或多者之一開始(例如,一頁及/或區塊邊界)。應用邏輯位址位移474至主機LBA可包含將位移474加至使用者資料區域462中由主機存取之邏輯位址。
在一或多項實施例中,控制器可使用頁大小、區塊大小及/或檔案系統元資料465來計算一位移474。該控制器可使用記憶體單元之組織之知識(特定而言,寫入或擦除大小、一頁中之磁區數目、一區塊中之頁數目、元資料465、檔案系統460之區段位置及檔案系統460類型)來計算位移474。使用位移474可將使用者資料462區段之起始對齊於一頁及/或區塊邊界。在一或多項實施例中,如本文中所闡述,可針對檔案系統460之其他區段(例如,PBR 464、保留區段466、FAT1 468、FAT2 470、根目錄472等)計算位移。如此,檔案系統460之該等區段中之一者或多者之開始可對齊於一頁及/或區塊邊界。
可將使用者資料區域462量化為「分配單位」,其中若干邏輯區塊由稱為一分配單位之一單個邏輯項目表示或分配。一分配單位可係可經分配以儲存一單個檔案之最小空間量。一分配單位可包含一或多個磁區。舉例而言,FAT類型檔案系統可以2的升冪方式將分配單位組織成若干群組的512個位元組磁區,以針對較小容量裝置的一1:1分配單位對邏輯區塊映射開始,最高至每分配單位64個磁區或更多。由於每一磁區皆具有一唯一LBA,因此用於分配單位之定址可採用一模數。舉例而言,在每分配單位64個磁區之情況下,由主機進行之存取將在具有一模數64之位址處發生。根據本發明之一或多項實施例,邏輯位址位移474可用於將使用者資料之起始位址(例如,使用者資料之開始478)對齊於檔案系統460之一分配單位邊界。在一或多項實施例中,分配單位邊界可係一叢集邊界。
一記憶體系統之一實體磁區可對應於一邏輯磁區且可包含附加項資訊(例如,錯誤校正碼(ECC)資訊及邏輯區塊位址(LBA)資訊)以及使用者資料。如熟習此項技術者將瞭解,邏輯區塊定址係通常由一主機用來識別一邏輯資訊磁區之一方案。作為一實例,每一實體磁區可存儲表示資料位元組之數目之資訊,例如,256個位元組、512個位元組或1,024個位元組以及其他數目之位元組。然而,本發明之實施例並不限於儲存於一實體磁區或與一邏輯磁區相關聯之特定數目之資料位元組。
在某些例項中,根據本發明之一或多項實施例應用一邏輯位址位移至使用者資料區域內之主機LBA可減少操作與寫入及/或擦除資料相關聯之附加項之量。關於寫入,附加項可係指除寫入至由一寫入命令定址之記憶體胞之資料以外與複製或移動之若干額外記憶體胞相關聯之資料。關於擦除,附加項可係指與複製或移動以保留不意欲擦除之資料之若干記憶體胞相關聯之資料。舉例而言,若系統資料區域461之結束476與使用者資料之開始478重合(此可係某些先前途徑中之情況),例如,若未使用一邏輯位址位移,則可將系統資料與使用者資料寫入至相同頁及/或區塊。對於此一區塊,對該區塊中之系統資料或使用者資料之一擦除作業將包含擦除系統資料及使用者資料兩者。對於此一頁,對系統資料或使用者資料之一寫入作業將包含移動或複製未寫入之系統資料或使用者資料。根據本發明之一或多項實施例附加項之減少可至少部分地基於在系統資料與使用者資料之間提供一頁及/或區塊邊界間隔以使得對接近該邊界之系統資料或使用者資料執行之寫入及/或擦除作業將僅影響目標系統資料或使用者資料。
在一或多項實施例中,應用一邏輯位址位移至存取使用者資料區域462之主機LBA可補充平均抹寫,該平均抹寫可經實施以控制一記憶體單元(例如,圖1中之記憶體單元132)之抹寫速率。在各種實施例中,平均抹寫可包含動態平均抹寫以最小化為回收一區塊所移動之有效區塊量。動態平均抹寫可包含稱為廢棄項目收集(garbage collection)之一技術,其中藉由擦除具有若干無效頁(亦即,具有已重新寫入至一不同頁及/或在無效頁上不再需要之資料之頁)之區塊而回收該等區塊。靜態平均抹寫包含將靜態資料寫入至具有高擦除計數之區塊以延長該區塊之壽命。如熟習此項技術者將瞭解,平均抹寫可增加固態記憶體之壽命,此乃因固態記憶體可在若干寫入及/或擦除循環之後經歷故障。應用一邏輯位址位移至存取使用者資料區域462之主機LBA可幫助減少如本文中所闡述之附加項,且藉此減少接近系統資料區域461之結束476及使用者資料之開始478之寫入及/或擦除作業之總數目。
在一或多項實施例中,控制器可檢驗元資料465、判定使用者資料區域462之起始邏輯位址並在一格式化作業期間及/或回應於一格式化作業且在將任何使用者資料寫入至使用者資料區域462之前計算邏輯位址位移474。在其中在計算邏輯位址位移474之前已將使用者資料寫入至使用者資料區域462之例項中,此等實施例可用於幫助防止應用邏輯位址位移474至主機LBA。在此等例項中,計算一邏輯位址位移474並應用其至主機LBA可導致不能夠在計算該位移之前恢復所寫入之使用者資料。亦即,嘗試存取先前所寫入之使用者資料之一主機LBA可具有應用至其的位移且可產生不同於先前所寫入之使用者資料之起始邏輯位址之一起始邏輯位址。舉例而言,若先前所寫入之使用者資料在邏輯位址0050處開始,且隨後計算出一邏輯位址位移0008,則主機系統將來對0050處之先前所寫入之使用者資料之存取之嘗試將因應用位移而導致對邏輯位址0058之存取。
其中可出現此等情況之一情形之一實例係其中未監視或偵測格式化作業且在通電時計算一邏輯位址位移之一記憶體單元之實例。在此一實例中,裝置將在應用一新格式之同時使用在通電時所計算之邏輯位址位移。在未動態地監視及偵測格式化作業之情況下,在下一電力循環時,裝置將計算一新邏輯位址位移,且若該新計算之位移不同於在該格式化作業期間係作用之邏輯位址位移,則該檔案系統將受破壞。
根據本發明之一或多項實施例,在偵測一格式化作業之後計算並應用邏輯位址位移以幫助防止此等情況發生。同樣,根據本發明之一或多項實施例,可在偵測一格式化作業之前在不使用一邏輯位址位移474之情況下操作記憶體單元。在其中根據本發明之一控制器操作先前在不使用一邏輯位址位移之情況下格式化及控制之一記憶體單元之實例中,此等實施例可尤其有用。
在一或多項實施例中,一記憶體控制器可經組態以回應於與一記憶體單元耦合而偵測是否已將使用者資料寫入至該記憶體單元之一使用者資料區域462中。在此等實施例中,該控制器可經組態以回應於偵測到先前已將使用者資料寫入至使用者資料區域462而使用一預設邏輯位址位移及/或一現有所保存邏輯位址位移474來操作記憶體單元。舉例而言,一預設邏輯位址位移可係0,以使得在應用至主機LBA時該預設邏輯位址位移不更改主機LBA。此等實施例可如以上所闡述有益於幫助防止資料存取錯誤,亦具有其他益處。
可將邏輯位址位移474保存於控制器之記憶體(例如,非揮發性記憶體)中,舉例而言,保存於圖2中之控制器201之記憶體210中。因此,可應用相同邏輯位址位移474至使用者資料區域462內由主機存取之邏輯位址直至偵測一後續格式化作業為止。如本文中所闡述,此等實施例可有益於幫助確保可正確地存取資料。舉例而言,若將一邏輯位址位移474用於一使用者資料區域462內之主機LBA,則可在對記憶體單元之整個作業期間將相同位移用於檔案系統460。若在未重新格式化記憶體單元之存放磁碟區之情況下使用一不同位移,則資料存取錯誤可由於主機系統可能不知曉位移而發生。
在一或多項實施例中,系統資料區域461之若干區段(例如,PBR 464、保留區域466、FAT1 468、FAT2 470及/或根目錄472)可對齊於一實體頁及/或實體區塊邊界。因此,雖然在圖4中未圖解說明,但可在偵測一格式化作業之後由控制器使用檔案系統460元資料465計算系統資料區域461之若干區段之若干額外邏輯位址位移。如本文中所使用,一「額外」邏輯位址位移係除使用者資料區域462之邏輯位址位移474以外的一邏輯位址位移。可將由控制器計算之一額外邏輯位址位移保存於控制器之記憶體(例如,非揮發性記憶體)中,此與使用者資料區域462之邏輯位址位移474之情況一樣。亦即,在一或多項實施例中,控制器記憶體可儲存多於一個邏輯位址位移。控制器可判定系統資料區域461之若干區段之一起始位址。可應用系統資料區域461之一特定區段之一額外邏輯位址位移至存取該特定區段之一主機LBA,使得與該特定區段相關聯之資料在一實體頁及/或實體區塊邊界處開始。舉例而言,控制器可應用FAT1 468之一邏輯位址位移至FAT1 468內之一主機LBA。
在一或多項實施例中,舉例而言,一控制器(例如,控制器101)中之控制電路可將命令傳送至一記憶體單元,以使得將資料以一特定方式寫入至該記憶體單元。來自控制器中之控制電路之命令可經組態以藉由計算並應用一位移至主機LBA而在與一特定命令相關聯之資料之一頁之開始處寫入該資料。此外,在一或多項實施例中,來自控制器中之控制電路之命令可經組態以藉由計算並應用一位移至主機LBA而在將資料寫入至一已擦除區塊時在一實體區塊之一第一頁(例如,實體區塊邊界)處寫入資料。在一或多項實施例中,來自控制器之命令可藉由計算並應用一位移至主機LBA而將資料寫入至一記憶體陣列之一頁之第一記憶體胞(例如,頁邊界)及/或將資料寫入至一空(例如,已擦除)頁之開始。此等實例可減少資料擦除及重新寫入之例項,此乃因主機LBA將經位移以在一實體頁及/或實體區域之開始處開始,此並不需要如可在某些先前途徑中發生的那樣移動或複製一在前實體頁及/或實體區塊中之磁區。
在一或多項實施例中,可將若干區塊指定為備用區塊以減少與在記憶體陣列中寫入資料相關聯之寫入放大之量。一備用區塊不可被映射至主機邏輯位址且因此不可由一主機系統存取。一控制器可在擦除不同區塊之前將資料(例如,自該不同區塊更新之資料)寫入至一備用區塊。當擦除該不同區塊時,其可變為新備用區塊。舉例而言,若一裝置具有100,000個LBA,則其可向一主機報告少於100,000個LBA且將差用於內部使用,例如,一控制器之內部使用。寫入放大係當將資料寫入至固態記憶體陣列時發生之一過程。當將資料隨機地寫入於一記憶體陣列中時,該記憶體陣列掃描該陣列中之自由空間。一記憶體陣列中之自由空間可係未經程式化之個別胞、記憶體胞頁及/或記憶胞區塊。若存在足夠自由空間來寫入資料,則將該資料寫入至該記憶體陣列中之該自由空間。若一個位置中不存在足夠自由空間,則藉由將已存在於記憶體陣列中之資料擦除、移動及重新寫入至一新位置來重新配置該記憶體陣列中之資料,從而為欲寫入於該記憶體陣列中之新資料留出自由空間。舊資料在記憶體陣列中之重新配置可稱為寫入放大,此乃因必須進行以寫入新資料而寫入記憶體陣列之量係基於該記憶體陣列中自由空間之量及欲寫入於該記憶體陣列上之新資料之大小而放大的。寫入放大可藉由增加一記憶體陣列上指定為自由空間(亦即,將不寫入靜態資料的地方)之空間的量而減小,因此允許由於將必須重新配置之資料較少而較少地放大必須寫入之資料量。
在一或多項實施例中,計算並應用一位移至主機LBA可用於減少寫入放大之量且亦減少將寫入放大控制為所期望位準所需要的指定自由空間的量。應用一位移至主機LBA可致使在實體區塊及頁之邊界處開始以一有效方式用資料填充一記憶體陣列,因此一經格式化記憶體陣列中之一資料串將不在一實體區塊及/或頁之中間開始,因此減小該資料串將需要被重新寫入至另一位置以在該記憶體陣列中為新資料空出空間之可能性。
在一或多項實施例中,寫入至記憶體單元之系統資料及使用者資料可對齊於記憶體單元之實體結構。亦即,當向一已擦除區塊寫入時在一實體區塊之開始處寫入資料且當向一已擦除頁寫入時在一實體頁之開始處寫入資料。此外,在某些實施例中,將不會把資料寫入至一經部分寫入之頁且將把該資料寫入至下一可用已擦除頁。
本發明包含用於一邏輯位址位移之方法、裝置及系統。一種方法實施例包含偵測一記憶體單元格式化作業。隨後,回應於偵測該格式化作業,該方法包含檢驗該記憶體單元上之格式資訊、計算一邏輯位址位移及應用該位移至一主機邏輯位址。
將理解,當一元件稱為「在另一元件上」、「連接至另一元件」或「與另一元件耦合」時,其可直接在其他元件上、連接至其他元件或與其他元件耦合或可存在中間元件。相比之下,當一元件稱為「直接在另一元件上」、「直接連接至另一元件」或「直接與另一元件耦合」時,不存在中間元件或層。如本文中所使用,術語「及/或」包含所列舉相關聯物項中之一者或多者之任一及所有組合。如本文中所使用,除非另有說明,否則術語「或」意指在邏輯上包含或。亦即,「A或B」可包含(僅A)、(僅B)或(A及B兩者)。換言之,「A或B」可意指「A及/或B」或「A及B中之一者或多者」。
將理解,雖然本文中可使用術語第一、第二等來闡述各種元件,但此等元件不應受此等術語限制。此等術語僅用於區別一個元件與另一元件。因此,在不背離本發明之教示內容之情況下可將一第一元件稱為一第二元件。
雖然本文中已圖解說明及闡述了具體實施例,但熟習此項技術者將瞭解,可用適合達成相同結果之一配置來替代所示之具體實施例。本發明意欲涵蓋對本發明之一或多項實施例之修改或變化。應理解,以上說明係以一說明性方式而非一限定性方式作出。在審閱以上說明之後,熟習此項技術者將明瞭以上實施例之組合及本文中未具體闡述之其他實施例。本發明之一或多項實施例之範疇包含其中使用以上結構及方法之其他應用。因此,應參考隨附申請專利範圍連同授權此等申請專利範圍之等效內容之全部範圍來判定本發明之一或多項實施例之範疇。
在前述實施方式中,出於簡化本發明之目的,將某些特徵一起集合於一單項實施例中。不應將本發明之此方法解釋為反映本發明之所揭示實施例必須使用比明確陳述於每一技術方案中更多之特徵之一意圖。而是,如以下專利申請範圍反映:發明性標的物在於少於一單個所揭示實施例之所有特徵。因此,以下申請專利範圍特此併入至實施方式中,其中每一技術方案獨立地作為一單獨實施例。
100...計算系統
101...記憶體控制器
102...主機系統
103...主機介面連接器
120...記憶體系統
130-1...固態記憶體裝置
130-N...固態記憶體裝置
132...記憶體單元
201...記憶體控制器
204...主機介面
206...記憶體單元介面
208...控制電路
210...控制器記憶體
212...加法器
214...比較器
330...記憶體裝置
340-0...實體區塊
340-1...實體區塊
340-M...實體區塊
350-0...列
350-1...列
350-R...列
352-0...磁區
352-1...磁區
352-S...磁區
460...檔案系統
461...系統資料區域
462...使用者資料區域
464...分割區開機記錄
465...元資料
466...保留區域/保留區段
468...第一檔案分配表
470...第二檔案分配表
472...根目錄
474...邏輯位址位移
476...系統資料區域之結束
478...使用者資料之開始/實體記憶體胞頁及實體記憶體胞區塊之開始
圖1係可根據本發明之一或多項實施例操作之一電子記憶體系統之一功能方塊圖;
圖2係根據本發明之一或多項實施例之一記憶體控制器之一功能方塊圖;
圖3圖解說明根據本發明之一或多項實施例之一記憶體裝置之一部分之一圖示;及
圖4圖解說明根據本發明之一或多項實施例之以一檔案系統格式化之一記憶體單元之一方塊圖。
460‧‧‧檔案系統
461‧‧‧系統資料區域
462‧‧‧使用者資料區域
464‧‧‧分割區開機記錄
465‧‧‧元資料
466‧‧‧保留區域/保留區段
468‧‧‧第一檔案分配表
470‧‧‧第二檔案分配表
472‧‧‧根目錄
474‧‧‧邏輯位址位移
476‧‧‧系統資料區域之結束
478‧‧‧使用者資料之開始/實體記憶體胞頁及實體記憶體胞區塊之開始
Claims (40)
- 一種用於操作一記憶體單元之方法,其包括:偵測一記憶體單元格式化作業;及回應於偵測該格式化作業:檢驗該記憶體單元上之格式資訊;計算一邏輯位址位移;及應用該位移至一主機邏輯位址。
- 如請求項1之方法,其中該方法包含:根據該格式資訊判定該記憶體單元之一使用者資料區域之一起始邏輯位址。
- 如請求項2之方法,其中該方法包含:應用該位移至等於或大於該使用者資料區域之該起始位址之一主機邏輯位址。
- 如請求項3之方法,其中應用該位移至該主機邏輯位址包含:將該位移加至該邏輯位址。
- 如請求項3之方法,其中該方法包含:使用一相同位移直至偵測一後續記憶體單元格式化作業為止。
- 如請求項2之方法,其中該方法包含:應用該位移至等於或大於該使用者資料區域之該起始位址之所有主機邏輯位址。
- 如請求項1之方法,其中應用該位移至該主機邏輯位址包含:應用該位移至一使用者資料區域之一起始邏輯位址;且其中該位移起始邏輯位址對應於一實體記憶體胞頁之一開始或一實體記憶體胞區塊之一開始。
- 如請求項1之方法,其中該方法包含:在將使用者資料寫入至該記憶體單元之一使用者資料區域之前檢驗格式資訊且計算並應用該位移。
- 如請求項1之方法,其中由該記憶體單元之一控制器執行該方法。
- 如請求項9之方法,其中該方法包含將該位移保存於該控制器之非揮發性記憶體中。
- 一種用於操作一記憶體單元之方法,其包括:偵測一記憶體單元格式化作業;及回應於偵測該格式化作業:檢驗該記憶體單元上之格式資訊;根據該格式資訊判定該記憶體單元之一使用者資料區域之一起始邏輯位址;計算一邏輯位址位移,其中該位移等於系統資料區域之一結束與一後續實體記憶體胞頁之一開始或一後續實體記憶體胞區塊之一開始之間的邏輯位址之一差;及應用該位移至該使用者資料區域內之主機邏輯位址。
- 如請求項11之方法,其中該方法包含:應用該位移至該使用者資料區域之該起始邏輯位址;及將該使用者資料區域之該位移起始邏輯位址對齊於檔案系統之一分配單位邊界。
- 如請求項12之方法,其中該檔案系統之該分配單位邊界包括一叢集邊界。
- 如請求項11之方法,其中該方法包含:根據該格式資訊判定該記憶體單元之一系統資料區域之一起始位址;及計算欲應用至該系統資料區域內之主機邏輯位址之一第二位移;其中該第二位移在應用至該系統資料區域之該起始位址時對應於一實體記憶體胞頁之一開始或一實體記憶體胞區塊之一開始。
- 如請求項14之方法,其中自包含一檔案分配表及一根目錄之系統資料區域群組選擇系統資料區域。
- 如請求項11之方法,其中該方法包含:偵測一主機對該使用者資料區域之存取。
- 如請求項16之方法,其中偵測對該使用者資料區域之存取包含:比較該使用者資料區域之一邏輯位址範圍與一或多個主機邏輯位址。
- 如請求項11之方法,其中該方法包含:在偵測該記憶體單元格式化作業之前藉助一預設邏輯位址位移操作該記憶體單元。
- 如請求項18之方法,其中該預設邏輯位址位移係0。
- 一種記憶體控制器,其包括:一主機介面;一記憶體單元介面;及控制電路,其經組態以執行以下操作:偵測一記憶體單元格式化作業;及回應於偵測該格式化作業:檢驗該記憶體單元上之格式資訊;計算一邏輯位址位移;及應用該位移至一主機邏輯位址。
- 如請求項20之記憶體控制器,其中該控制電路經組態以根據該格式資訊判定該記憶體單元之一使用者資料區域之一起始邏輯位址。
- 如請求項20之記憶體控制器,其中該位移在應用至該記憶體單元之一使用者資料區域之一起始邏輯位址時對應於一實體記憶體胞頁之一開始或一實體記憶體胞區塊之一開始。
- 如請求項20之記憶體控制器,其包含若干邏輯位址範圍比較器,該若干邏輯位址範圍比較器經組態以比較一主機邏輯位址與對應於該記憶體單元之一使用者資料區域之一邏輯位址範圍,以判定該主機邏輯位址是否在該使用者資料區域內。
- 如請求項20之記憶體控制器,其包含經組態以儲存該位移之一非揮發性記憶體。
- 如請求項24之記憶體控制器,其包含耦合至該非揮發性記憶體且耦合至該記憶體單元介面之一加法器,其中該加法器經組態以在跨越該記憶體單元介面發送該主機邏輯位址之前將該位移加至該主機邏輯位址。
- 一種記憶體控制器,其包括:一主機介面;一記憶體單元介面;及控制電路,其經組態以執行以下操作:偵測一記憶體單元格式化作業且隨後回應於偵測該格式化作業:檢驗該記憶體單元上之格式資訊;根據該格式資訊判定該記憶體單元之一使用者資料區域之一起始邏輯位址;計算一邏輯位址位移,其中該位移等於系統資料區域之一結束與一後續實體記憶體胞頁之一開始或一後續實體記憶體胞區塊之一開始之間的邏輯位址之一差;及應用該位移至該使用者資料區域內之主機邏輯位址。
- 如請求項26之記憶體控制器,其中該控制器包含記憶體且該控制電路經組態以將該位移儲存於該控制器記憶體中。
- 如請求項27之記憶體控制器,其中該控制電路經組態以儲存該位移直至該控制電路偵測一後續格式化作業為止。
- 如請求項26之記憶體控制器,其中該控制電路經組態以應用該位移至對應於該使用者資料區域之一開始之一主機邏輯位址,使得該使用者資料區域在一實體區塊邊界處開始。
- 一種記憶體系統,其包括:一主機介面連接器;一記憶體單元;及一記憶體控制器,其耦合至該主機介面連接器且耦合至該記憶體單元,其中該記憶體控制器經組態以執行以下操作:偵測一記憶體單元格式化作業且隨後回應於偵測該格式化作業:檢驗該記憶體單元上之格式資訊;計算一邏輯位址位移;及應用該位移至一主機邏輯位址。
- 如請求項30之記憶體系統,其中:該記憶體控制器經組態以根據該格式資訊判定該記憶體單元之一使用者資料區域之一起始邏輯位址;且該位移在應用至該記憶體單元之一使用者資料區域之一起始邏輯位址時對應於一實體記憶體胞頁之一開始或一實體記憶體胞區塊之一開始。
- 如請求項30之記憶體系統,其中該記憶體控制器經組態以檢驗來自該記憶體單元之一系統資料區域之該格式資訊。
- 如請求項30之記憶體系統,其中:該記憶體單元包括若干快閃記憶體陣列;且該主機介面連接器、該記憶體單元及該記憶體控制器係一離散模組之部分。
- 如請求項30之記憶體系統,其中該記憶體系統包括一固態驅動器。
- 如請求項30之記憶體系統,其中該記憶體控制器經組態以在該記憶體控制器偵測一記憶體單元格式化作業之前藉助一預設邏輯位址位移操作該記憶體單元。
- 一種記憶體系統,其包括:一主機介面連接器;一記憶體單元;及一記憶體控制器,其耦合至該主機介面連接器且耦合至該記憶體單元,其中該記憶體控制器經組態以執行以下操作:偵測一記憶體單元格式化作業且隨後回應於偵測該格式化作業:檢驗該記憶體單元上之格式資訊;根據該格式資訊判定該記憶體單元之一使用者資料區域之一起始邏輯位址;計算一邏輯位址位移,其中該位移等於該系統資料區域之一結束與一後續實體記憶體胞頁之一開始或一後續實體記憶體胞區塊之一開始之間的邏輯位址之一差;及應用該位移至該使用者資料區域內之主機邏輯位址。
- 如請求項36之記憶體系統,其中該記憶體控制器經組態以檢驗來自該記憶體單元之一系統資料區域之一分割區開機記錄之該格式資訊。
- 如請求項36之記憶體系統,其中該控制器經組態以應用該位移至對應於該使用者資料區域之一開始之一主機邏輯位址,使得該使用者資料區域在一實體區塊邊界處開始。
- 如請求項38之記憶體系統,其中該使用者資料區域之該開始對齊於該檔案系統之一分配單位邊界。
- 如請求項39之記憶體系統,其中該檔案系統之該分配單位邊界包括一叢集邊界。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/356,765 US8180995B2 (en) | 2009-01-21 | 2009-01-21 | Logical address offset in response to detecting a memory formatting operation |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201040720A TW201040720A (en) | 2010-11-16 |
TWI432960B true TWI432960B (zh) | 2014-04-01 |
Family
ID=42337870
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW099101251A TWI432960B (zh) | 2009-01-21 | 2010-01-18 | 操作記憶體單元之方法,記憶體控制器以及記憶體系統 |
Country Status (7)
Country | Link |
---|---|
US (3) | US8180995B2 (zh) |
EP (1) | EP2382547B1 (zh) |
JP (1) | JP2012515954A (zh) |
KR (2) | KR101528714B1 (zh) |
CN (2) | CN107273058B (zh) |
TW (1) | TWI432960B (zh) |
WO (1) | WO2010090696A2 (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI637264B (zh) * | 2016-05-20 | 2018-10-01 | 慧榮科技股份有限公司 | 資料儲存裝置之資料頁對齊方法及其查找表的製作方法 |
TWI806276B (zh) * | 2021-12-08 | 2023-06-21 | 慧榮科技股份有限公司 | 資料儲存裝置與資料儲存系統 |
TWI806262B (zh) * | 2021-11-29 | 2023-06-21 | 慧榮科技股份有限公司 | 橋接裝置與資料儲存系統 |
Families Citing this family (48)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101637481B1 (ko) * | 2009-04-10 | 2016-07-07 | 삼성전자주식회사 | 솔리드 스테이트 드라이브, 솔리드 스테이트 드라이브 장착 장치 및 컴퓨팅 시스템 |
US8612718B2 (en) * | 2009-08-19 | 2013-12-17 | Seagate Technology Llc | Mapping alignment |
US8578126B1 (en) * | 2009-10-29 | 2013-11-05 | Netapp, Inc. | Mapping of logical start addresses to physical start addresses in a system having misalignment between logical and physical data blocks |
US8677203B1 (en) * | 2010-01-11 | 2014-03-18 | Apple Inc. | Redundant data storage schemes for multi-die memory systems |
CN101963891A (zh) * | 2010-09-25 | 2011-02-02 | 成都市华为赛门铁克科技有限公司 | 数据存储处理方法与装置、固态硬盘系统与数据处理系统 |
US8732431B2 (en) * | 2011-03-06 | 2014-05-20 | Micron Technology, Inc. | Logical address translation |
TWI451250B (zh) * | 2011-03-28 | 2014-09-01 | Phison Electronics Corp | 記憶體組態方法、記憶體控制器與記憶體儲存裝置 |
JP6016137B2 (ja) | 2011-05-24 | 2016-10-26 | マーベル ワールド トレード リミテッド | ソリッドステートドライブおよびその動作方法 |
CN102831072B (zh) * | 2012-08-10 | 2016-03-02 | 深圳市江波龙电子有限公司 | 闪存设备及其管理方法、数据读写方法及读写装置 |
US9030903B2 (en) * | 2012-09-24 | 2015-05-12 | Intel Corporation | Method, apparatus and system for providing a memory refresh |
US9336090B2 (en) * | 2012-10-10 | 2016-05-10 | Hitachi, Ltd. | Storage apparatus comprising snapshot function, and storage control method |
US9430376B2 (en) * | 2012-12-26 | 2016-08-30 | Western Digital Technologies, Inc. | Priority-based garbage collection for data storage systems |
JP2014142748A (ja) * | 2013-01-23 | 2014-08-07 | Sony Corp | 記憶装置およびその制御方法 |
US20150363346A1 (en) * | 2013-04-02 | 2015-12-17 | Hewlett-Packard Development Company, L.P. | Sata initiator addressing and storage device slicing |
JP5996497B2 (ja) * | 2013-08-22 | 2016-09-21 | 株式会社東芝 | ストレージ装置 |
US9846698B1 (en) | 2013-12-16 | 2017-12-19 | Emc Corporation | Maintaining point-in-time granularity for backup snapshots |
US10031690B1 (en) | 2013-12-16 | 2018-07-24 | EMC IP Holding Company LLC | Initializing backup snapshots on deduplicated storage |
US9720618B1 (en) | 2013-12-16 | 2017-08-01 | EMC IP Holding Company LLC | Maintaining backup snapshots using continuous replication from multiple sources |
US10255137B1 (en) | 2013-12-16 | 2019-04-09 | EMC IP Holding Company LLC | Point-in-time recovery on deduplicated storage |
US9875162B1 (en) | 2013-12-16 | 2018-01-23 | Emc Corporation | Recovering corrupt storage systems |
US10157014B1 (en) | 2013-12-16 | 2018-12-18 | EMC IP Holding Company LLC | Maintaining backup snapshots on deduplicated storage using continuous replication |
US9852066B2 (en) * | 2013-12-20 | 2017-12-26 | Sandisk Technologies Llc | Systems and methods of address-aware garbage collection |
US9977737B2 (en) * | 2013-12-25 | 2018-05-22 | Cavium, Inc. | Method and an apparatus for memory address allignment |
US9588847B1 (en) | 2014-03-25 | 2017-03-07 | EMC IP Holding Company LLC | Recovering corrupt virtual machine disks |
US10229056B1 (en) * | 2014-03-25 | 2019-03-12 | EMC IP Holding Company LLC | Alignment fixing on a storage system during continuous data replication to deduplicated storage |
US9772789B1 (en) | 2014-03-25 | 2017-09-26 | EMC IP Holding Company LLC | Alignment fixing on a data protection system during continuous data replication to deduplicated storage |
US9389800B1 (en) | 2014-03-27 | 2016-07-12 | Emc Corporation | Synthesizing virtual machine disk backups |
WO2015162745A1 (ja) * | 2014-04-24 | 2015-10-29 | 株式会社日立製作所 | ストレージシステム |
JP6318073B2 (ja) * | 2014-10-23 | 2018-04-25 | アルパイン株式会社 | 電子機器 |
US10338817B2 (en) * | 2014-12-30 | 2019-07-02 | Sandisk Technologies Llc | Systems and methods for storage recovery |
TWI560608B (en) * | 2016-01-22 | 2016-12-01 | Qisda Corp | Disk access method |
CN107924405B (zh) * | 2016-01-29 | 2022-03-08 | 慧与发展有限责任合伙企业 | 用于存储数据的系统和方法、以及计算机可读介质 |
GB2547893B (en) * | 2016-02-25 | 2018-06-06 | Advanced Risc Mach Ltd | Combining part of an offset with a corresponding part of a base address and comparing with a reference address |
US10390114B2 (en) * | 2016-07-22 | 2019-08-20 | Intel Corporation | Memory sharing for physical accelerator resources in a data center |
CN108334276B (zh) * | 2017-01-20 | 2021-01-29 | 宇瞻科技股份有限公司 | 快闪记忆体的动态对齐数据方法 |
TWI612421B (zh) * | 2017-01-20 | 2018-01-21 | 宇瞻科技股份有限公司 | 快閃記憶體的動態對齊資料方法 |
EP3625686B1 (en) * | 2017-05-18 | 2025-02-19 | The Silk Technologies Ilc Ltd. | Garbage collection in a distributed storage system |
US10810116B2 (en) * | 2017-06-29 | 2020-10-20 | Sap Se | In-memory database with page size adaptation during loading |
US11113205B2 (en) * | 2017-07-31 | 2021-09-07 | Micron Technology, Inc. | Die addressing using a reduced size translation table entry |
CN107678980B (zh) * | 2017-10-19 | 2021-04-16 | 歌尔科技有限公司 | 数据存储方法、装置及可穿戴设备 |
US10860474B2 (en) * | 2017-12-14 | 2020-12-08 | Micron Technology, Inc. | Multilevel addressing |
KR102563760B1 (ko) * | 2018-02-22 | 2023-08-07 | 에스케이하이닉스 주식회사 | 인터페이스 유닛 및 그것의 동작방법 |
TWI669610B (zh) | 2018-06-13 | 2019-08-21 | 慧榮科技股份有限公司 | 資料儲存裝置以及非揮發式記憶體控制方法 |
US11281574B2 (en) * | 2019-04-18 | 2022-03-22 | SK Hynix Inc. | Apparatus and method for processing different types of data in memory system |
EP4042283A4 (en) * | 2019-10-09 | 2023-07-12 | Micron Technology, Inc. | SELF-ADAPTING WEAR COMPENSATION METHOD AND ALGORITHM |
WO2022011683A1 (en) | 2020-07-17 | 2022-01-20 | Micron Technology, Inc. | Storage of video data and file system metadata |
US12182406B2 (en) | 2020-11-26 | 2024-12-31 | Micron Technology, Inc. | Programming video data to different portions of memory |
US12189967B2 (en) | 2022-08-24 | 2025-01-07 | Micron Technology, Inc. | Partitioning system data from user data in memory |
Family Cites Families (33)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5930815A (en) | 1995-07-31 | 1999-07-27 | Lexar Media, Inc. | Moving sequential sectors within a block of information in a flash memory mass storage architecture |
US5907856A (en) | 1995-07-31 | 1999-05-25 | Lexar Media, Inc. | Moving sectors within a block of information in a flash memory mass storage architecture |
US6728851B1 (en) * | 1995-07-31 | 2004-04-27 | Lexar Media, Inc. | Increasing the memory performance of flash memory devices by writing sectors simultaneously to multiple flash memory devices |
US5845313A (en) | 1995-07-31 | 1998-12-01 | Lexar | Direct logical block addressing flash memory mass storage architecture |
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 |
JPH1069420A (ja) * | 1996-08-29 | 1998-03-10 | Sony Corp | 情報記録装置、情報記録再生装置、情報記録方法および情報再生方法 |
US6389503B1 (en) * | 1997-08-04 | 2002-05-14 | Exabyte Corporation | Tape drive emulation by removable disk drive and media formatted therefor |
JP3588231B2 (ja) * | 1997-08-04 | 2004-11-10 | 東京エレクトロンデバイス株式会社 | データ処理システム及びブロック消去型記憶媒体 |
GB9814960D0 (en) * | 1998-07-10 | 1998-09-09 | Koninkl Philips Electronics Nv | Coding device and communication system using the same |
EP1209568A1 (en) * | 1999-02-22 | 2002-05-29 | Hitachi, Ltd. | Memory card, method for allotting logical address, and method for writing data |
US6535995B1 (en) * | 1999-03-10 | 2003-03-18 | International Business Machines Corporation | Prototype-based virtual in-line sparing |
US6141249A (en) | 1999-04-01 | 2000-10-31 | Lexar Media, Inc. | Organization of blocks within a nonvolatile memory unit to effectively decrease sector write operation time |
US6405295B1 (en) * | 1999-09-07 | 2002-06-11 | Oki Electric Industry, Co., Ltd. | Data storage apparatus for efficient utilization of limited cycle memory material |
JP3942807B2 (ja) * | 2000-06-06 | 2007-07-11 | 株式会社ルネサステクノロジ | ブロックアラインメント機能付き半導体記憶装置 |
US7162619B2 (en) * | 2001-07-03 | 2007-01-09 | Ip-First, Llc | Apparatus and method for densely packing a branch instruction predicted by a branch target address cache and associated target instructions into a byte-wide instruction buffer |
JP4238514B2 (ja) * | 2002-04-15 | 2009-03-18 | ソニー株式会社 | データ記憶装置 |
US8289984B2 (en) | 2003-01-13 | 2012-10-16 | Emlilex Design & Manufacturing Corporation | Allocation-unit-based virtual formatting methods and devices employing allocation-unit-based virtual formatting methods |
US20050041453A1 (en) * | 2003-08-22 | 2005-02-24 | Brazis Paul W. | Method and apparatus for reading and writing to solid-state memory |
JP4130808B2 (ja) * | 2004-01-30 | 2008-08-06 | 松下電器産業株式会社 | フォーマット方法 |
JP4177292B2 (ja) * | 2004-05-31 | 2008-11-05 | Tdk株式会社 | メモリンコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法 |
WO2005124530A2 (en) * | 2004-06-21 | 2005-12-29 | Kabushiki Kaisha Toshiba | Method for controlling memory card and method for controlling nonvolatile semiconductor memory |
JP4177301B2 (ja) * | 2004-07-29 | 2008-11-05 | Tdk株式会社 | メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法 |
US7836247B2 (en) * | 2004-12-17 | 2010-11-16 | International Business Machines Corporation | Method, apparatus, and computer program product for permitting access to a storage drive while the drive is being formatted |
US7461197B2 (en) * | 2005-12-19 | 2008-12-02 | Broadcom Corporation | Disk formatter and methods for use therewith |
US20070143566A1 (en) * | 2005-12-21 | 2007-06-21 | Gorobets Sergey A | Non-volatile memories with data alignment in a directly mapped file storage system |
JP2008123473A (ja) * | 2006-10-20 | 2008-05-29 | Toshiba Corp | 記憶装置及びその制御方法 |
US8046522B2 (en) * | 2006-12-26 | 2011-10-25 | SanDisk Technologies, Inc. | Use of a direct data file system with a continuous logical address space interface and control of file address storage in logical blocks |
KR101464199B1 (ko) | 2006-12-26 | 2014-11-21 | 샌디스크 테크놀로지스, 인코포레이티드 | 연속 논리 주소 공간 인터페이스를 구비한 다이렉트 데이터 파일 시스템을 사용하는 방법 |
JP4991320B2 (ja) * | 2007-01-12 | 2012-08-01 | 株式会社東芝 | ホスト装置およびメモリシステム |
TW200841762A (en) | 2007-04-14 | 2008-10-16 | kun-di Huang | Wireless headphone of a digital music walkman |
KR101270777B1 (ko) | 2007-06-20 | 2013-05-31 | 삼성전자주식회사 | 블록 단위 입출력 디바이스에서 피램을 이용한 데이터 기록시스템 및 방법 |
KR100982700B1 (ko) * | 2008-04-22 | 2010-09-17 | 웅진코웨이주식회사 | 두 개의 물받이를 구비하는 얼음 정수기 |
WO2010030996A1 (en) * | 2008-09-15 | 2010-03-18 | Virsto Software | Storage management system for virtual machines |
-
2009
- 2009-01-21 US US12/356,765 patent/US8180995B2/en active Active
-
2010
- 2010-01-15 CN CN201710540513.5A patent/CN107273058B/zh active Active
- 2010-01-15 JP JP2011546262A patent/JP2012515954A/ja active Pending
- 2010-01-15 WO PCT/US2010/000095 patent/WO2010090696A2/en active Application Filing
- 2010-01-15 CN CN2010800051605A patent/CN102292712A/zh active Pending
- 2010-01-15 KR KR1020147000924A patent/KR101528714B1/ko active Active
- 2010-01-15 EP EP10738832.4A patent/EP2382547B1/en active Active
- 2010-01-15 KR KR1020117019228A patent/KR20110107856A/ko not_active Ceased
- 2010-01-18 TW TW099101251A patent/TWI432960B/zh active
-
2012
- 2012-04-30 US US13/459,923 patent/US8683173B2/en active Active
-
2014
- 2014-02-20 US US14/184,876 patent/US8930671B2/en active Active
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI637264B (zh) * | 2016-05-20 | 2018-10-01 | 慧榮科技股份有限公司 | 資料儲存裝置之資料頁對齊方法及其查找表的製作方法 |
TWI806262B (zh) * | 2021-11-29 | 2023-06-21 | 慧榮科技股份有限公司 | 橋接裝置與資料儲存系統 |
TWI806276B (zh) * | 2021-12-08 | 2023-06-21 | 慧榮科技股份有限公司 | 資料儲存裝置與資料儲存系統 |
US12067235B2 (en) | 2021-12-08 | 2024-08-20 | Silicon Motion, Inc. | Data storage device and data storage system |
Also Published As
Publication number | Publication date |
---|---|
KR20110107856A (ko) | 2011-10-04 |
CN107273058A (zh) | 2017-10-20 |
CN102292712A (zh) | 2011-12-21 |
WO2010090696A3 (en) | 2010-10-21 |
JP2012515954A (ja) | 2012-07-12 |
CN107273058B (zh) | 2019-06-18 |
US20140229660A1 (en) | 2014-08-14 |
US8683173B2 (en) | 2014-03-25 |
US20120215972A1 (en) | 2012-08-23 |
EP2382547A2 (en) | 2011-11-02 |
US20100185830A1 (en) | 2010-07-22 |
TW201040720A (en) | 2010-11-16 |
KR20140016430A (ko) | 2014-02-07 |
EP2382547A4 (en) | 2012-08-22 |
EP2382547B1 (en) | 2018-10-10 |
US8180995B2 (en) | 2012-05-15 |
WO2010090696A2 (en) | 2010-08-12 |
US8930671B2 (en) | 2015-01-06 |
KR101528714B1 (ko) | 2015-06-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI432960B (zh) | 操作記憶體單元之方法,記憶體控制器以及記憶體系統 | |
TWI418980B (zh) | 記憶體控制器、用於格式化記憶體系統中之記憶體陣列和固態驅動器之方法及固態記憶體系統 | |
US8788876B2 (en) | Stripe-based memory operation | |
US8166258B2 (en) | Skip operations for solid state disks | |
US8166233B2 (en) | Garbage collection for solid state disks | |
EP2483782B1 (en) | Power interrupt management |