TWI808167B - 固態驅動機及其記憶體分配方法 - Google Patents
固態驅動機及其記憶體分配方法 Download PDFInfo
- Publication number
- TWI808167B TWI808167B TW108114880A TW108114880A TWI808167B TW I808167 B TWI808167 B TW I808167B TW 108114880 A TW108114880 A TW 108114880A TW 108114880 A TW108114880 A TW 108114880A TW I808167 B TWI808167 B TW I808167B
- Authority
- TW
- Taiwan
- Prior art keywords
- stream
- state drive
- solid
- streams
- group
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0631—Configuration or reconfiguration of storage systems by allocating resources to storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- 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/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
- 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/0253—Garbage collection, i.e. reclamation of unreferenced memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/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
- 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/0604—Improving or facilitating administration, e.g. storage management
-
- 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
- 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/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; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7205—Cleaning, compaction, garbage collection, erase control
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)
- Read Only Memory (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Oscillators With Electromechanical Resonators (AREA)
- Credit Cards Or The Like (AREA)
Abstract
一種固態驅動機包括:多個非揮發性記憶體,所述非揮發性記憶體中的每一者包括通道,所述通道包括連接至晶粒的至少一條通路;主機介面,自主機接收串流資料及串流資訊;以及資源分配器,基於所述串流資訊將所述串流資料分配給所述多個非揮發性記憶體的超級區塊,其中第一超級區塊包括第一單元超級區塊,且所述第一單元超級區塊包括第一晶粒的區塊,所述第一晶粒對應於第一通道且連接至所述第一通道中所包括的多條通路。
Description
本發明概念是有關於一種固態驅動機及其記憶體分配方法。
傳統上,磁碟是主要電腦資料儲存裝置。然而,使用非揮發性記憶體而非磁碟來進行儲存的固態驅動機(solid state drive,SSD)裝置越來越多地用於電腦系統及可攜式裝置中。
固態驅動機裝置的非揮發性記憶體可為快閃記憶體,且可包括各種設計考慮。此類考慮可包括高效地利用儲存容量的策略。舉例而言,當先前儲存的資料值被更新至快閃記憶體時,當前儲存所述資料值的頁面被內部標記為無效的,且更新的資料值被儲存在新的頁面中。
當資料被刪除時,儲存所述資料的頁面類似地標記為無效的。無效的頁面可經由稱為垃圾收集的過程來恢復。垃圾收集是以包括多個頁面的區塊層階(block level)來操作。若垃圾收集等待直至一個區塊完全為空(例如,直至所述區塊中的所有頁面皆被標記為無效的),則固態驅動機可能不具有用於寫入資料的自由頁面。因此,垃圾收集的執行需要將有效的頁面自刪除目標區塊移動至其他區塊。
由於此種垃圾收集技術會消耗大量資源,因此其可降低固態驅動機的速度及效能。
根據本發明概念的示例性實施例,提供一種固態驅動機,所述固態驅動機包括:多個非揮發性記憶體,所述非揮發性記憶體中的每一者包括通道,所述通道包括連接至晶粒的至少一條通路;主機介面,自主機接收串流資料及串流資訊;以及資源分配器,基於所述串流資訊將所述串流資料分配給所述多個非揮發性記憶體的超級區塊,其中第一超級區塊包括第一單元超級區塊,且所述第一單元超級區塊包括第一晶粒的區塊,所述第一晶粒對應於第一通道且連接至所述第一通道中所包括的多條通路。
根據本發明概念的示例性實施例,提供一種固態驅動機,所述固態驅動機包括:多個非揮發性記憶體;以及固態驅動機控制器,自主機接收多個串流及串流資訊,根據所述串流資訊界定其中將儲存所述非揮發性記憶體中的所述串流中的每一者的超級區塊的位置及大小,並將所述串流中的每一者分配給其對應的超級區塊。
根據本發明概念的示例性實施例,提供一種固態驅動機的記憶體分配方法,所述方法包括:自主機接收串流資料及串流資訊;基於所述串流資訊對非揮發性記憶體中的超級區塊進行界定,所述超級區塊包括單元超級區塊,所述單元超級區塊對應於通道且包括連接至所述通道中所包括的多條通路的晶粒的區塊;以及將所述串流資料分配給所述超級區塊。
根據本發明概念的示例性實施例,提供一種固態驅動機,所述固態驅動機包括:多個非揮發性記憶體,所述非揮發性記憶體中的每一者包括通道,所述通道包括連接至晶粒的至少一條通路;主機介面,自主機接收串流資料及串流資訊;以及資源分配器,根據所述串流資訊將所述串流資料分配給所述多個非揮發性記憶體的區塊,其中所述區塊中的一者包括串流組,所述串流組包括被分配給第一通道的第一列的第一串流、被分配給第二通道的第一列的第二串流、被分配給第三通道的第一列的第三串流以及被分配給第四通道的第一列的第四串流,其中所述第一通道、所述第二通道、所述第三通道及所述第四通道中的每一者的第一列鄰近彼此。
以下,將參照圖1至圖13闡述根據本發明概念示例性實施例的固態驅動機。
圖1是示出根據本發明概念示例性實施例的固態驅動機系統的方塊圖。
參照圖1,固態驅動機系統包括主機1100及固態驅動機(SSD)1200。
固態驅動機1200可包括多個非揮發性記憶體(non-volatile memory,NVM)裝置10、11、12及13以及固態驅動機控制器20。
所述多個非揮發性記憶體裝置10、11、12及13可用作固態驅動機1200的儲存媒體。所述多個非揮發性記憶體裝置10、11、12及13中的每一者可包括快閃記憶體裝置。
固態驅動機控制器20可經由多個通道CH1、CH2、CH3及CH4連接至所述多個非揮發性記憶體裝置10、11、12及13中的每一者。在圖1中,通道的數目可為四個;然而,本發明概念並非僅限於此。舉例而言,根據本發明概念示例性實施例的固態驅動機可具有三或更少的通道或者五或更多個通道。
多個非揮發性記憶體裝置可連接至一個通道,且連接至一個通道的所述多個非揮發性記憶體可被稱為庫(bank)或通路。每一通路可連接至單個晶粒或晶片。
舉例而言,第一通道CH1可包括第一通路W1、第二通路W2、第三通路W3及第四通路W4。第一通路W1連接至第一晶粒10_1,且第二通路W2可連接至第二晶粒10_2。第三通路W3連接至第三晶粒10_3,且第四通路W4可連接至第四晶粒10_4。換言之,第一非揮發性記憶體10可包括為第一晶粒10_1、第二晶粒10_2、第三晶粒10_3及第四晶粒10_4的四個晶粒。
第二通道CH2亦連接至四條通路,例如第一通路W1、第二通路W2、第三通路W3及第四通路W4,且各通路可分別連接至四個晶粒11_1、11_2、11_3及11_4。第二非揮發性記憶體11可包括為第一晶粒11_1、第二晶粒11_2、第三晶粒11_3及第四晶粒11_4的四個晶粒。
第三通道CH3亦連接至四條通路,例如第一通路W1、第二通路W2、第三通路W3及第四通路W4,且各通路可分別連接至四個晶粒12_1、12_2、12_3及12_4。第三非揮發性記憶體12可包括為第一晶粒12_1、第二晶粒12_2、第三晶粒12_3及第四晶粒12_4的四個晶粒。
第四通道CH4亦連接至四條通路,例如第一通路W1、第二通路W2、第三通路W3及第四通路W4,且各通路可分別連接至四個晶粒13_1、13_2、13_3及13_4。第四非揮發性記憶體13可包括為第一晶粒13_1、第二晶粒13_2、第三晶粒13_3及第四晶粒13_4的四個晶粒。
儘管連接至一個通道的晶粒的數目被示出為四個,然而本發明概念並非僅限於此。舉例而言,連接至一個通道的所述多個非揮發性記憶體的數目可為八個。
固態驅動機控制器20可經由訊號連接件SC向主機1100傳送訊號SGL以及自主機1100接收訊號SGL。此處,訊號SGL可包括命令、位址、資料等。固態驅動機控制器20可根據主機1100的命令向所述多個非揮發性記憶體裝置10、11、12及13寫入資料,或者根據主機1100的命令自所述多個非揮發性記憶體裝置10、11、12及13讀取資料。
固態驅動機1200可更包括輔助電源裝置30。輔助電源裝置30可經由電源連接件PC自主機1100接收電源PWR的輸入,且可將電力供應至固態驅動機控制器20。
輔助電源裝置30可位於固態驅動機1200的內部及外部。舉例而言,輔助電源裝置30可位於主板上,且可為固態驅動機1200提供輔助電源。
固態驅動機1200可更包括揮發性記憶體裝置40。揮發性記憶體裝置40用作固態驅動機控制器20的輸入/輸出緩衝器。舉例而言,在寫入模式中,固態驅動機控制器20可將自主機1100接收的資料儲存於揮發性記憶體裝置40中,且可將儲存於揮發性記憶體裝置40中的資料寫入至所述多個非揮發性記憶體裝置10、11、12及13。此外,在讀取模式中,固態驅動機控制器20可將自所述多個非揮發性記憶體裝置10、11、12及13讀取的資料儲存於揮發性記憶體裝置40中,且可將儲存於揮發性記憶體裝置40中的資料提供至主機1100。
揮發性記憶體裝置40可包括動態隨機存取記憶體(Dynamic Random Access Memory,DRAM)裝置。然而,本發明概念並非僅限於此。
所述多個非揮發性記憶體裝置10、11、12及13中的每一者可包括多個記憶體區塊BLK1、BLK2、BLK3及BLK4。
所述多個非揮發性記憶體裝置10、11、12及13的記憶體區塊BLK1、BLK2、BLK3及BLK4可形成單個超級區塊SBL。超級區塊SBL可為一組區塊BLK1、BLK2、BLK3及BLK4,其為特定非揮發性記憶體裝置的抹除單元。舉例而言,超級區塊SBL可為連接至彼此不同的通道CH1、CH2、CH3及CH4的一組區塊。
固態驅動機控制器20對串流與超級區塊SBL進行映射。當支援多串流時,固態驅動機控制器20可針對每一串流映射不同的超級區塊SBL。串流與超級區塊SBL可一對一地映射。作為另一選擇,串流與超級區塊SBL可以一對多或多對一關係來映射。
此外,固態驅動機控制器20可在單層階單元(single level cell,SLC)模式、多層階單元(multi-level cell,MLC)模式或三層階單元(triple level cell,TLC)模式中操作所述多個非揮發性記憶體裝置10、11、12及13中所包括的所述多個記憶體區塊BLK1、BLK2、BLK3及BLK4中的每一者。
當所述多個非揮發性記憶體裝置10、11、12及13中的每一者中所包括的記憶體區塊BLK1、BLK2、BLK3及BLK4在SLC模式中操作時,特定記憶體區塊中所包括的記憶體單元可儲存一個位元的資料。
當所述多個非揮發性記憶體裝置10、11、12及13中的每一者中所包括的記憶體區塊BLK1、BLK2、BLK3及BLK4在MLC模式中操作時,特定記憶體區塊中所包括的記憶體單元可儲存兩個位元的資料。
當所述多個非揮發性記憶體裝置10、11、12及13中的每一者中所包括的記憶體區塊BLK1、BLK2、BLK3及BLK4在TLC模式中操作時,特定記憶體區塊中所包括的記憶體單元可儲存三個位元的資料。
固態驅動機控制器20可基於儲存於所述多個非揮發性記憶體裝置10、11、12及13中的多個資料的存取模式將所述多個資料分別儲存於在SLC模式中操作的記憶體區塊、在MLC模式中操作的記憶體區塊或在TLC模式中操作的記憶體區塊中。
隨後將闡述固態驅動機控制器20的詳細操作。
圖2是詳細示出圖1所示非揮發性記憶體的方塊圖。
參照圖2,圖1所示第一非揮發性記憶體10、第二非揮發性記憶體11、第三非揮發性記憶體12及第四非揮發性記憶體13可分別如同圖2所示第一非揮發性記憶體10那樣實施。
第一非揮發性記憶體10可包括記憶體單元陣列100、位址解碼器200、頁面緩衝電路300、資料輸入/輸出(input/output,I/O)電路400及控制電路500。
記憶體單元陣列100可經由串選擇線SSL、多條字元線WLs及接地選擇線GSL連接至位址解碼器200。此外,記憶體單元陣列100可經由多條位元線BLs連接至頁面緩衝電路300。
記憶體單元陣列100可包括所述多個記憶體區塊BLK1、BLK2、BLK3及BLK4,且所述多個記憶體區塊BLK1、BLK2、BLK3及BLK4中的每一者可包括連接至多條字元線WLs及多條位元線BLs的多個記憶體單元。
在本發明概念的示例性實施例中,記憶體單元陣列100可為在基板上形成為三維(或垂直)結構的三維記憶體單元陣列。在此種情形中,記憶體單元陣列100可包括垂直記憶體單元串,所述垂直記憶體單元串包括堆疊在彼此上的多個記憶體單元。
在本發明概念的另一示例性實施例中,記憶體單元陣列100可為在基板上形成為二維(或水平)結構的二維記憶體單元陣列。
圖3是詳細示出圖2所示記憶體單元陣列的示例性等效電路圖。
圖3所示記憶體單元陣列100a可對應於圖2所示記憶體單元陣列100。圖3所示記憶體單元陣列100a是在基板上形成為三維結構的三維記憶體單元陣列。舉例而言,記憶體單元陣列100a中所包括的多個記憶體單元串可在垂直於基板的方向上形成。
參照圖3,記憶體單元陣列100a可包括連接在位元線BL1、BL2及BL3與共用源極線(common source line,CSL)之間的多個記憶體單元串NS11、NS12、NS13、NS21、NS22、NS23、NS31、NS32及NS33。所述多個記憶體單元串NS11至NS33中的每一者可包括串選擇電晶體(string selection transistor,SST)、多個記憶體單元(MC1、MC2、MC3、MC4、MC5、MC6、MC7及MC8)以及接地選擇電晶體(ground selection transistor,GST)。
儘管圖3示出所述多個記憶體單元串NS11至NS33中的每一者包括八個記憶體單元(MC1、MC2、...、MC8),然而本發明概念並非僅限於此。
串選擇電晶體(SST)可連接至對應的串選擇線SSL1、SSL2及SSL3。所述多個記憶體單元(MC1、MC2、...、MC8)可分別連接至對應的字元線(WL1、WL2、WL3、WL4、WL5、WL6、WL7及WL8)。接地選擇電晶體(GST)可連接至對應的接地選擇線(GSL1、GSL2及GSL3)。串選擇電晶體(SST)可連接至對應的位元線(BL1、BL2及BL3),且接地選擇電晶體(GST)可連接至共用源極線(CSL)。
相同高度的字元線(例如,WL1)共同連接,且接地選擇線(GSL1、GSL2及GSL3)以及串選擇線(SSL1、SSL2及SSL3)可分別為分開的。
儘管圖3示出記憶體單元陣列100a連接至八條字元線(WL1、WL2、...、WL8)及三條位元線(BL1、BL2及BL3),然而本發明概念並非僅限於此。
圖4是詳細示出圖2所示記憶體單元陣列的示例性等效電路圖。
圖4所示記憶體單元陣列100b可對應於圖2所示記憶體單元陣列100。圖4所示記憶體單元陣列100b是在基板上形成為二維結構的二維記憶體單元陣列。舉例而言,記憶體單元陣列100b中所包括的多個記憶體單元串可在與基板水平的方向上形成。
參照圖4,記憶體單元陣列100b可包括多個記憶體單元串(NS1、NS2、NS3、...、NSm)。
所述多個記憶體單元串(NS1、NS2、NS3、...、NSm)中的每一者可包括串聯連接的串選擇電晶體(SST)、多個記憶體單元(MC)及接地選擇電晶體(GST)。
所述多個記憶體單元串(NS1、NS2、NS3、...、NSm)中所包括的串選擇電晶體(SST)可共同連接至串選擇線SSL。所述多個記憶體單元串(NS1、NS2、NS3、...、NSm)中所包括的多個記憶體單元(MC)中的在同一列中形成的記憶體單元可共同連接至對應的字元線(WL1、WL2、WL3、WL4、...、WL(n-1)、WLn)。所述多個記憶體單元串(NS1、NS2、NS3、...、NSm)中所包括的接地選擇電晶體(GST)可共同連接至接地選擇線GSL。
所述多個記憶體單元串(NS1、NS2、NS3、...、NSm)中所包括的接地選擇電晶體(GST)可共同連接至共用源極線(CSL)。
所述多個記憶體單元串(NS1、NS2、NS3、...、NSm)中所包括的串選擇電晶體(SST)可連接至對應的位元線(BL1、BL2、BL3、...、BLm)。
此處,n及m分別表示正整數。
再次參照圖2,控制電路500自固態驅動機控制器20接收命令訊號CMD及位址訊號ADDR,且可基於命令訊號CMD及位址訊號ADDR來控制非揮發性記憶體裝置10的寫入操作、讀取操作或抹除操作。
舉例而言,控制電路500可基於命令訊號CMD產生控制訊號CONs,且可基於位址訊號ADDR產生列位址R_ADDR及行位址C_ADDR。控制電路500可將控制訊號CONs及列位址R_ADDR提供至位址解碼器200,且可將行位址C_ADDR提供至資料輸入/輸出電路400。
位址解碼器200可經由串選擇線SSL、所述多條字元線WLs及接地選擇線GSL連接至記憶體單元陣列100。
在進行寫入操作或讀取操作時,位址解碼器200可基於自控制電路500提供的列位址R_ADDR將所述多條字元線WLs中的一者確定為選擇字元線,且可將除所述選擇字元線之外的其餘字元線確定為非選擇字元線。
位址解碼器200可自佈置在非揮發性記憶體裝置10內部或外部的電壓產生單元接收用於操作非揮發性記憶體裝置10的字元線電壓VWLs。字元線電壓VWLs可經由位址解碼器200施加至所述多條字元線WLs。
頁面緩衝電路300可經由多條位元線BLs連接至記憶體單元陣列100。
頁面緩衝電路300可包括多個頁面緩衝器。在本發明概念的示例性實施例中,一條位元線可連接至一個頁面緩衝器。在本發明概念的另一示例性實施例中,二或更多條位元線可連接至一個頁面緩衝器。
頁面緩衝電路300可在進行寫入操作時暫時儲存將寫入至所選擇頁面的資料,且可在進行讀取操作時暫時儲存自所選擇頁面讀取的資料。
資料輸入/輸出電路400可經由資料線DL連接至頁面緩衝電路300。
在進行寫入操作時,資料輸入/輸出電路400自固態驅動機控制器20接收寫入資料(DATA),且可基於自控制電路500提供的行位址C_ADDR將寫入資料(DATA)提供至頁面緩衝電路300。
在進行讀取操作時,資料輸入/輸出電路400可基於自控制電路500提供的行位址C_ADDR將儲存於頁面緩衝電路300中的讀取資料(DATA)提供至固態驅動機控制器20。
以上已參照圖2至圖4闡述了固態驅動機1200中所包括的所述多個非揮發性記憶體裝置10、11、12及13的實例,但本發明概念並非僅限於此。舉例而言,所述多個非揮發性記憶體裝置10、11、12及13中的每一者可實施為各種形式。
圖5是詳細示出圖1所示固態驅動機控制器的方塊圖。
參照圖5,固態驅動機控制器20包括記憶體介面(interface,I/F)21、主機介面22、錯誤校正電路(error correction circuit,ECC)23、中央處理單元(central processing unit,CPU)24、緩衝記憶體25及資源分配器26。
記憶體介面21可將自緩衝記憶體25傳送的資料(DATA)分散至多個通道CH1、CH2、CH3及CH4。此外,記憶體介面21可將自所述多個非揮發性記憶體裝置10、11、12及13讀取的資料(DATA)傳輸至緩衝記憶體25。
在本發明概念的示例性實施例中,記憶體介面21可使用快閃記憶體介面技術。在此種情形中,固態驅動機控制器20可根據快閃記憶體介面技術執行寫入操作、讀取操作或抹除操作。
主機介面22可容許固態驅動機1200的介接對應於主機1100的協定。舉例而言,主機介面22可使用以下者與主機1100進行命令訊號CMD、位址訊號ADDR及資料(DATA)通訊:通用串列匯流排(Universal Serial Bus,USB)、小型電腦系統介面(Small Computer System Interface,SCSI)、快速周邊組件互連(peripheral component interconnect,PCI)、先進技術附接(advanced technology attachment,ATA)、並行ATA(Parallel ATA,PATA)、串列ATA(Serial ATA,SATA)、串列附接的SCS(Serial Attached SCS,SAS)等。此外,主機介面22可執行碟仿真功能,所述碟仿真功能使得主機1100能夠將固態驅動機1200辨識為硬碟驅動機(hard disk drive,HDD)。
主機介面22可自主機1100接收包括串流的資料(DATA)及串流資訊。此將在隨後進行更詳細地闡釋。
緩衝記憶體25可暫時儲存自主機1100提供的資料(DATA)及自所述多個非揮發性記憶體裝置10、11、12及13讀取的資料(DATA)。在本發明概念的示例性實施例中,緩衝記憶體25可包括例如DRAM及靜態隨機存取記憶體(Static Random Access Memory,SRAM)等揮發性記憶體。在本發明概念的示例性實施例中,緩衝記憶體25可為緊密耦合記憶體(Tightly-Coupled Memory,TCM)。
錯誤校正電路23可使用寫入至所述多個非揮發性記憶體裝置10、11、12及13的資料(DATA)產生錯誤校正碼。錯誤校正碼可儲存於所述多個非揮發性記憶體裝置10、11、12及13的備用區域中。然後,錯誤校正電路23使用錯誤校正碼偵測自所述多個非揮發性記憶體裝置10、11、12及13讀取的資料(DATA)的錯誤,且可對偵測到的錯誤進行校正。
中央處理單元24可分析並處理自主機1100提供的命令訊號CMD及位址訊號ADDR。中央處理單元24可經由主機介面22與主機1100進行通訊,且可經由記憶體介面21控制所述多個非揮發性記憶體裝置10、11、12及13。中央處理單元24可基於用於驅動固態驅動機1200的韌體來控制所述多個非揮發性記憶體裝置10、11、12及13的操作。
資源分配器26基於由主機介面22接收的串流及串流資訊來調整固態驅動機1200的資源。固態驅動機1200的資源可為固態驅動機控制器20向非揮發性記憶體裝置10、11、12及13寫入資料(DATA)所需要的資源。
資源分配器26可基於串流及串流資訊來控制被分配給串流的緩衝記憶體25的大小。
資源分配器26可基於串流及串流資訊來控制被分配給串流的揮發性記憶體裝置40的大小。揮發性記憶體裝置40位於固態驅動機控制器20外部,且可連接至固態驅動機控制器20。
圖6是示出圖5所示資源分配器的記憶體分配操作的圖。
參照圖1、圖5及圖6,資源分配器26判斷串流位於非揮發性記憶體的哪一區域,且將每一串流分配至相應的位置。
在主機視圖中,可經由主機介面22將第一串流(串流1)傳送至固態驅動機1200。此時,與傳統多串流裝置不同,第一串流(串流1)可具有小的大小。
舉例而言,第一串流(串流1)可為與單元超級區塊USBL相同的大小。此將在隨後進行闡述。
固態驅動機視圖示出非揮發性記憶體裝置10、11、12及13的儲存區域。非揮發性記憶體裝置10、11、12及13的儲存區域可包括第一通道CH1、第二通道CH2、第三通道CH3及第四通道CH4。通道CH1至CH4中的每一者是由多個列及多個行的區塊BLK構成。在圖6中,區塊BLK可為與圖1所示所述多個記憶體區塊BLK1、BLK2及BLK3以及BLK4中的每一者對應的一部分。
固態驅動機視圖的非揮發性記憶體裝置10、11、12及13的儲存區域的一個行可意指一個晶粒。換言之,對於每一通道存在四個列可意味著圖1所示每一通道排列四個晶粒。
在圖6中,示出其中每一晶粒具有七個區塊BLK的配置,但此僅為示例性的,且本發明概念並非僅限於此。
單元超級區塊USBL可僅設置於一個通道中。換言之,單元超級區塊USBL可僅設置於第一通道CH1、第二通道CH2、第三通道CH3及第四通道CH4中的一者中。單元超級區塊USBL可包括所定位的通道中的所述多個晶粒的區塊BLK。換言之,由於四個晶粒位於第四通道CH4中,因此形成一列的四個區塊BLK的最大值可為單元超級區塊USBL的實例。以下,為方便起見,四個區塊BLK將被闡述為包括在單元超級區塊USBL中。
超級區塊SBL可包括至少一個單元超級區塊USBL。超級區塊SBL可包括至少一個單元鄰近超級區塊USBL。換言之,超級區塊SBL可包括位於鄰近通道中的同一列的單元超級區塊USBL。在此種情形中,只要超級區塊鄰近彼此,在四個通道CH1至CH4之上鄰近彼此的四個單元超級區塊USBL即可形成超級區塊SBL。
另外,位於同一通道中且位於彼此正下方或正上方的單元超級區塊USBL可形成超級區塊SBL。舉例而言,所述多個單元超級區塊USBL可在水平方向及垂直方向上在兩個通道中形成超級區塊SBL。
超級區塊SBL包括位於鄰近區中的單元超級區塊USBL,此乃因被分配給超級區塊SBL的串流具有相似的屬性,例如相似的生存時間(存留時間(Time-To-Live,TTL))。因此,可提高垃圾收集過程的集中度。
再次,就主機視圖而言,第一串流(串流1)的大小可相同於單元超級區塊USBL的大小。因此,第一串流(串流1)可被分配給多個單元超級區塊USBL中的一者。然而,由於此不是由主機1100來選擇,而是由固態驅動機1200來確定,因此第一串流(串流1)可不被分配至具有良好寫入效率的位置。
圖7是示出圖5所示資源分配器的記憶體分配操作的示例性圖。
參照圖6及圖7,如在主機視圖中所示,可以資料交錯方式或資料條串化方式將資料(DATA)分成多個串流(串流1、串流2、串流3及串流4)。在四個串流的情形中,若將每一串流寫入至四個通道CH1至CH4中的每一者,則可達成最佳效率。
然而,如圖6所示,由於並未判斷出第一串流(串流1)被分配到哪一通道及哪一位置,因此圖7所示低效率的佈置亦為可能的。
舉例而言,當將第一串流(串流1)分配給第二通道CH2的第一列,將第二串流(串流2)分配給第一通道CH1的第二列,將第三串流(串流3)分配給第二通道CH2的第三列,且將第四串流(串流4)分配給第四通道CH4的第一列時,由於第一串流(串流1)及第三串流(串流3)需要同時寫入至第二通道CH2,因此寫入效能可能無法最大化。然而,圖5所示根據本發明概念實施例的固態驅動機可操作以使寫入效能最大化。此將在下文進行闡釋。
圖8是詳細示出圖1所示固態驅動機控制器的方塊圖,且圖9是示出圖8所示對映表的示例性表。圖10是示出圖8所示分組表的示例性表。
圖8是示出圖5所示固態驅動機控制器20的內部操作的方塊圖。圖8所示對映表29、串流組管理器31、串流池27、物理區塊池28等可為由圖5所示中央處理單元(CPU)24、記憶體介面21及緩衝記憶體25實施的功能區塊。
參照圖1以及圖8至圖10,固態驅動機控制器20可包括主機介面22、串流組管理器31、串流池27、物理區塊池28、資源分配器26及對映表29。
主機1100可對具有相似屬性的串流進行分組。在此種情形中,慮及每一串流的熱/冷屬性、生存時間等,根據相似屬性進行的分組可基於需要哪一效能因數來確定。換言之,在頻繁地執行寫入及更新的串流的情形中,由於快速寫入是必不可少的,因此需要具有高效能因數。然而,在需要長的生存時間的串流的情形中,效能因數可能為相對低的。
主機介面22可自主機1100接收串流資料及串流資訊。串流資料可為串流組的形式。串流資訊可包括串流組屬性。串流組屬性可為串流組中所包括的串流的數目及效能因數。
當非揮發性記憶體裝置10、11、12及13的通道為四個時,可被分配給不同晶粒中的具有相同數目的區塊的串流的最大數目可為四個。換言之,由於一個串流對應於一個單元超級區塊,因此串流的數目可選自一個至四個。效能因數可不大於串流的數目。換言之,若串流組中包括四個串流,則所述四個串流可具有四個效能因數的最大值,且自然地具有更低的效能因數。
效能因數可能是一種寫入速度。換言之,在具有效能因數為4的串流組的情形中,四個串流寫入至四個通道,且此可具有最高效率。當效能因數為2時,若串流的數目為4,則串流被寫入至兩個通道,且所述寫入的執行可能較效能因數為4的情形更慢。
串流組管理器31可經由自主機1100接收的串流資訊記錄分組表。圖10示出分組表的實例。換言之,可能知道特定串流所屬的組。舉例而言,在圖10中,組1可包括串流1、2、3及4,組2可包括串流5、6、7及8,組3可包括串流9及串流10,且組4可包括串流11。
串流池27可包括由主機介面22接收的串流資料。在串流池27中,分配給記憶體的串流被排除,且僅尚未被分配的串流可存留。在本發明概念的此實施例中,由於串流是以串流組的形式存在,因此串流可以串流組為單位添加至串流池27中以及自串流池27排除。
物理區塊池28可包括非揮發性記憶體裝置10、11、12及13中剩餘的自由區塊。若資源分配器26將串流池27中的串流分配給物理區塊池28,則物理區塊池28內的自由區塊可自物理區塊池28排除。
資源分配器26可參照來自串流組管理器31的串流的組資訊對物理區塊池28中的物理區塊的超級區塊進行界定。資源分配器26可將存在於串流池27中的串流組分配給超級區塊SBL。
舉例而言,資源分配器26可依據效能因數確定超級區塊SBL的大小。效能因數可決定超級區塊SBL所對應的通道數目或者超級區塊SBL所包括的單元超級區塊USBL的數目。換言之,當效能因數為4時,超級區塊SBL對應於四個通道,且可包括四個單元超級區塊USBL。
隨後,資源分配器26可根據串流組中所包括的串流的數目確定超級區塊SBL的位置。藉由考量多少通道對應於超級區塊SBL,可將超級區塊SBL的位置確定為處於空的自由區塊中。通道的數目可藉由超級區塊SBL的大小來確定。
隨後,資源分配器26可將串流組分配給所確定的超級區塊SBL。
資源分配器26可將自串流組管理器31接收的分組的當前狀況傳輸至主機介面22,且主機介面22可將串流組資訊傳送至主機1100。
對映表29可記錄當對串流進行分配時,所述串流被分配給哪一物理區塊。可藉由串流分配的更新來更新對映表29。圖9是對映表29的示例性圖。舉例而言,如圖9所示,第一串流對應於物理區塊0、4、8、12、…,且第二串流對應於物理區塊1、2、9、10、…。
圖11是示出圖5所示資源分配器的分組操作的圖。
參照圖8及圖11,在主機視圖中,主機1100可對多個串流進行分組及傳送。
舉例而言,第一串流至第四串流(串流1、2、3及4)可屬於第一串流組(串流組1)。第一串流組(串流組1)包括四個串流作為串流資訊,且可具有為4的效能因數。
第五串流至第八串流(串流5、6、7及8)可屬於第二串流組(串流組2)。第二串流組(串流組2)包括四個串流作為串流資訊,且可具有為2的效能因數。
第九串流及第十串流(串流9至10)可屬於第三串流組(串流組3)。第三串流組(串流組3)包括兩個串流作為串流資訊,且可具有為2的效能因數。
第十一串流(串流11)可不屬於第四串流組或任何組(沒有分組)。在此種情形中,可能不單獨地需要其串流資訊。
由於第一串流組(串流組1)包括四個串流且效能因數為4,因此資源分配器26可將第一串流組分配給與四個通道CH1至CH4對應的第一超級區塊SBL1。
由於第二串流組(串流組2)包括四個串流但具有為2的效能因數,因此資源分配器26可將第二串流組分配給與兩個通道CH1及CH2對應的第二超級區塊SBL2。
由於第三串流組(串流組3)包括兩個串流但具有為2的效能因數,因此資源分配器26可將第三串流組分配給與兩個通道CH3及CH4對應的第三超級區塊SBL3。
由於第十一串流(串流11)不構成組,因此資源分配器26可將第十一串流分配給與一個通道(例如,CH1)對應的第四超級區塊SBL4。第四超級區塊SBL4可包括僅單個單元超級區塊。
圖12是示出圖5所示資源分配器的效能的示例性圖。
參照圖8及圖12,第一串流至第四串流(串流1、2、3及4)可被規定為單個串流組。在此種情形中,資源分配器26辨識出所述組包括四個串流且效能因數為4。因此,資源分配器26可將串流組寫入至四個相應的通道。此可為其中最高效及快速地寫入四個串流的方法。
在傳統多串流應用的情形中,儘管主機所請求的串流的大小不同,然而由於分配含有所有通道的所有晶粒的超級區塊,因此記憶體管理的效率可能為低。另外,由於其不對串流被分配給哪一通道區進行管理,因此串流可被分配給具有相同超級區塊的通道,且因此寫入效能降低。
相比之下,無論依據串流的數目而變化的串流組的大小如何,根據本發明概念示例性實施例的固態驅動機亦可一直以高的效率執行記憶體分配操作。另外,對於可能以相對低的效能寫入的串流,可藉由將速度調整為低的來實施最佳化的資源分配。
圖13是示出圖1所示固態驅動機與主機之間的命令流的圖。
參照圖1及圖13,主機1100首先關於串流狀況詢問固態驅動機1200(①)。
隨後,固態驅動機1200關於所述串流的當前狀況對主機1100作出回答(②)。此時,串流的當前狀況可包括關於當前串流的組以及是否可分配串流組的記憶體的資訊。
隨後,主機1100傳送串流組的串流資訊(③)。此時,串流資訊可包括效能因數、串流組中所包括的串流的數目、每一串流的ID等。
隨後,多個串流的資料可由同一組構成,且可將多個串流的資料傳輸至固態驅動機1200(④)。
接下來,主機1100可視需要對串流組進行重建(⑤)。
根據剛才闡述的實施例的固態驅動機可藉由基於串流的屬性執行分組來執行高效的輕操作(light operation)。換言之,在具有高效能因數的串流組的情形中,可藉由每一通道的並行寫入操作以高速執行寫入操作。然而,在具有低效能因數的串流組的情形中,僅一些通道可用於寫入操作以藉此高效地利用資源。因此,固態驅動機1200的寫入操作的效能可以最佳速度進行操作。
以下,將參照圖1、圖8及圖14闡述根據本發明概念示例性實施例的固態驅動機。以上參照圖闡述的元件及/或功能可被省略。
圖14是示出根據本發明概念示例性實施例的固態驅動機的操作的圖。
參照圖1、圖8及圖14,主機1100可對包括在分組的同時已界定的組的上組(upper group)進行界定。
舉例而言,在主機視圖中,第四串流組(串流組4)可為包括第二串流組(串流組2)及第三串流組(串流組3)的上組。在此種情形中,資源分配器26將第二串流組(串流組2)分配給與兩個通道CH1及CH2對應的第二超級區塊SBL2,且將第三串流組(串流組3)分配給與兩個通道CH3及CH4對應的第三超級區塊SBL3。此種情形的發生可能是由於第二串流組(串流組2)及第三串流組(串流組3)的效能因數為2。
因此,第四串流組(串流組4)可包括兩個串流(串流組2及3),且可具有為2的效能因數。因此,作為第四串流組(串流組4)的元素的第二串流組(串流組2)及第三串流組(串流組3)被分配給彼此不同的通道。因此,第四超級區塊SBL4可包括與第一通道CH1及第二通道CH2對應的第二超級區塊SBL2以及與第三通道CH3及第四通道CH4對應的第三超級區塊SBL3,第三超級區塊SBL3不同於第二超級區塊SBL2。
在此實施例中,可藉由高效的資源分配將各組中的固態驅動機的寫入操作的效能最大化。
以下,將參照圖1以及圖15至圖17闡述根據本發明概念示例性實施例的固態驅動機。以上參照圖闡述的元件及/或功能可被省略。
圖15是示出根據本發明概念示例性實施例的固態驅動機的方塊圖,且圖16是示出圖15中的資源分配器的操作的圖。
參照圖1以及圖15至圖17,主機1100可不對串流進行分組。在此種情形中,串流被確定為不具有相同的大小,且可被確定為具有不同的大小。串流的範圍大小(extent size)可為例如單元超級區塊的整數倍數。
主機介面22可自主機1100接收串流資訊,換言之,串流屬性。此時,串流屬性可包括串流的範圍大小及效能因數。
資源分配器26可依據效能因數確定超級區塊的大小。資源分配器26可依據串流的範圍大小確定超級區塊SBL的位置。
由於第一串流(串流1)具有是單元超級區塊的四倍的為4的範圍大小以及為4的效能因數,因此資源分配器26可將第一串流(串流1)分配給與四個通道CH1至CH4對應的第一超級區塊SBL1。由於第二串流(串流2)具有是單元超級區塊的四倍的為4的範圍大小以及為2的效能因數,因此資源分配器26可將第二串流(串流2)分配給與兩個通道CH1及CH2對應的第二超級區塊SBL2。
由於第三串流(串流3)具有是單元超級區塊的兩倍的為2的範圍大小以及為2的效能因數,因此資源分配器26可將第三串流(串流3)分配給與兩個通道CH3及CH4對應的第三超級區塊SBL3。由於第四串流(串流4)具有與單元超級區塊相等的為1的範圍大小以及為1的效能因數,因此資源分配器26可將第四串流(串流4)分配給與一個通道CH1對應的第四超級區塊SBL4。
圖17是示出圖15所示包括固態驅動機控制器的固態驅動機與主機之間的命令流的圖。
參照圖1及圖17,主機1100關於串流屬性詢問固態驅動機1200(①)。
隨後,固態驅動機1200關於所述串流的當前狀況對主機1100作出回答(②)。在此種情形中,串流屬性可包括關於表示當前串流的屬性的列表以及記憶體是否可依據串流屬性來分配的資訊。
隨後,主機1100傳送關於串流屬性的串流資訊(③)。串流資訊可包括效能因數、串流的範圍大小、每一串流的ID等。
隨後,可將串流的資料作為單一串流傳輸至固態驅動機1200(④)。
接下來,主機1100可視需要對串流屬性進行重設(⑤)。
根據本實施例的固態驅動機可依據單一屬性的串流的大小及效能因數將其分配給記憶體並寫入至記憶體。換言之,由於串流大小不同,因此可在依據效能因數維持具有最大效率的寫入效能的同時防止多餘的動作。
此外,在本實施例中,由於主機1100不需要執行分組,因此可降低主機1100的計算量。舉例而言,由於固態驅動機控制20的資源分配器26處理此種計算,因此可降低主機1100上的負擔。
以下,將參照圖1、圖15及圖18闡述根據本發明概念示例性實施例的固態驅動機。以上參照圖闡述的元件及/或功能可被省略。
圖18是示出根據本發明概念示例性實施例的固態驅動機的操作的圖。
參照圖1、圖15及圖18,根據本發明概念示例性實施例的固態驅動機1200可在主機1100處完全規定物理區塊的位址。
換言之,主機1100可直接規定每一串流的物理區塊的位址並將每一串流的物理區塊的位址作為串流資訊來傳送。舉例而言,第一串流(串流1)可寫入至第一超級區塊SBL1,且第二串流(串流2)可寫入至第二超級區塊SBL2。第三串流(串流3)可寫入至第三超級區塊SBL3,且第四串流(串流4)可寫入至第四超級區塊SBL4。該些第一超級區塊至第四超級區塊(SBL1至SBL4)可為由主機1100規定的區塊。
為達成此點,主機1100預先知道固態驅動機1200的關於物理區塊的所有種類的資訊。舉例而言,主機1100知道第一串流(串流1)的物理區塊位址為1、8、15、…。
因此,在本實施例中,由於固態驅動機1200完全不需要干預記憶體分配,因此固態驅動機1200的寫入速度可變得非常快。
以下,將參照圖1、圖15及圖19闡述根據本發明概念示例性實施例的固態驅動機。以上參照圖闡述的元件及/或功能可被省略。
圖19是示出根據本發明概念示例性實施例的固態驅動機的操作的圖。
參照圖1、圖15及圖19,根據本發明概念示例性實施例的固態驅動機1200在主機1100處完全規定物理區塊的位址,且每一串流的範圍大小可為相同的。
換言之,主機1100可直接規定每一串流的物理區塊的位址並將每一串流的物理區塊的位址作為串流資訊來傳送。舉例而言,第一串流(串流1)可寫入至第一超級區塊SBL1,且第二串流(串流2)可寫入至第二超級區塊SBL2。第三串流(串流3)可寫入至第三超級區塊SBL3,且第四串流(串流4)可寫入至第四超級區塊SBL4。該些第一超級區塊SBL1至第四超級區塊SBL4可為由主機1100規定的區塊。
在此實施例中,由於每一串流的大小為相同的,因此相似的串流可被分配至鄰近位置。舉例而言,當第一串流(串流1)與第三串流(串流3)具有相似的屬性時,第一超級區塊SBL1與第三超級區塊SBL3可排列成鄰近彼此。此可具有與由主機1100執行的分組實質上相同的效果。
為達成此點,主機1100可預先知道固態驅動機1200的關於物理區塊的所有種類的資訊。
在本實施例中,由於固態驅動機1200完全不需要干預記憶體分配,因此固態驅動機1200的寫入速度可變得非常快。
以下,參照圖1、圖8以及圖11至圖21,將闡述根據本發明概念示例性實施例的固態驅動機的記憶體分配方法。以上參照圖闡述的元件及/或功能可被省略。
圖20是示出根據本發明概念示例性實施例的固態驅動機的記憶體分配方法的流程圖,且圖21是詳細示出圖20所示超級區塊界定步驟的流程圖。
首先,參照圖20,接收串流組及串流資訊(S100)。
舉例而言,參照圖1、圖8及圖11,主機介面22可自主機1100接收串流資料及串流資訊。此處,串流資料可包括串流組。串流資訊可包括串流組屬性。串流組屬性可為串流組中所包括的串流的數目及效能因數。
再次參照圖20,對超級區塊SBL進行界定(S200)。
參照圖21,首先,慮及串流的數目及效能因數來確定超級區塊SBL的大小(S210)。
舉例而言,參照圖1、圖8及11,資源分配器26可依據效能因數確定超級區塊SBL的大小。效能因數可決定超級區塊SBL所對應的通道數目或者超級區塊SBL所包括的單元超級區塊USBL的數目。換言之,當效能因數為4時,超級區塊SBL對應於四個通道,且可包括四個單元超級區塊USBL。
再次參照圖21,確定超級區塊SBL的位置(S220)。
舉例而言,參照圖1、圖8及11,資源分配器26可依據串流組中所包括的串流的數目確定超級區塊SBL的位置。藉由考量超級區塊SBL的大小所對應的通道數目,可將超級區塊SBL的位置確定為處於空的自由區塊中。
再次參照圖20,將串流組分配給超級區塊(S300)。
舉例而言,參照圖1、圖8及圖11,資源分配器26可將串流組分配給所確定的超級區塊SBL。
以下,參照圖1、圖15、圖16、圖22及圖23,將闡述根據本發明概念示例性實施例的固態驅動機的記憶體分配方法。以上參照圖闡述的元件及/或功能可被省略。
圖22是示出根據本發明概念示例性實施例的固態驅動機的記憶體分配方法的流程圖,且圖23是詳細示出圖22所示超級區塊界定步驟的流程圖。
首先,參照圖22,接收串流及串流資訊(S101)。
舉例而言,參照圖1及圖16,主機介面22可自主機1100接收串流資訊,換言之,串流屬性。此時,串流屬性可包括串流的範圍大小及效能因數。
再次參照圖22,對超級區塊SBL進行界定(S200)。
參照圖23,首先,慮及串流的範圍大小及效能因數來首先確定超級區塊SBL的大小(S211)。
舉例而言,參照圖1、圖15及圖16,資源分配器26可依據效能因數確定超級區塊SBL的大小。
再次參照圖23,確定超級區塊SBL的位置(S221)。
舉例而言,參照圖1、圖15及圖16,資源分配器26可依據串流的範圍大小確定超級區塊SBL的位置。
再次參照圖22,將串流分配給超級區塊SBL(S301)。
舉例而言,參照圖1、圖15及圖16,資源分配器26可將串流分配給所確定的超級區塊SBL。
儘管已參照本發明概念的示例性實施例具體示出並闡述了本發明概念,然而此項技術中具有通常知識者應理解,在不背離由以下申請專利範圍所界定的本發明概念的精神及範圍的條件下,可作出各種形式及細節上的改變。
10‧‧‧非揮發性記憶體(NVM)裝置/第一非揮發性記憶體
11‧‧‧非揮發性記憶體(NVM)裝置/第二非揮發性記憶體
12‧‧‧非揮發性記憶體(NVM)裝置/第三非揮發性記憶體
13‧‧‧非揮發性記憶體(NVM)裝置/第四非揮發性記憶體
10_1、11_1、12_1、13_1‧‧‧第一晶粒/晶粒
10_2、11_2、12_2、13_2‧‧‧第二晶粒/晶粒
10_3、11_3、12_3、13_3‧‧‧第三晶粒/晶粒
10_4、11_4、12_4、13_4‧‧‧第四晶粒/晶粒
20‧‧‧固態驅動機(SSD)控制器
21‧‧‧記憶體介面(I/F)
22‧‧‧主機介面(I/F)
23‧‧‧錯誤校正電路(ECC)
24‧‧‧中央處理單元(CPU)
25‧‧‧緩衝記憶體
26‧‧‧資源分配器
27‧‧‧串流池
28‧‧‧物理區塊池
29‧‧‧對映表
30‧‧‧輔助電源裝置
31‧‧‧串流組管理器
40‧‧‧揮發性記憶體裝置
100、100a、100b‧‧‧記憶體單元陣列
200‧‧‧位址解碼器
300‧‧‧頁面緩衝電路
400‧‧‧資料輸入/輸出(I/O)電路
500‧‧‧控制電路
1100‧‧‧主機
1200‧‧‧固態驅動機(SSD)
ADDR‧‧‧位址訊號
BL1、BL2、BL3、BLm、BLs‧‧‧位元線
BLK‧‧‧區塊
BLK1、BLK2、BLK3、BLK4‧‧‧記憶體區塊/區塊
C_ADDR‧‧‧行位址
CH1‧‧‧通道/第一通道
CH2‧‧‧通道/第二通道
CH3‧‧‧通道/第三通道
CH4‧‧‧通道/第四通道
CMD‧‧‧命令訊號
CONs‧‧‧控制訊號
CSL‧‧‧共用源極線
DATA‧‧‧資料
DL‧‧‧資料線
GSL、GSL1、GSL2、GSL3‧‧‧接地選擇線
GST‧‧‧接地選擇電晶體
MC、MC1、MC2、MC3、MC4、MC5、MC6、MC7、MC8‧‧‧記憶體單元
NS1、NS11、NS12、NS13、NS2、NS21、NS22、NS23、NS3、NS31、NS32、NS33、NSm‧‧‧記憶體單元串
PC‧‧‧電源連接件
PWR‧‧‧電源
R_ADDR‧‧‧列位址
S100、S101、S200、S210、S211、S220、S221、S300、S301‧‧‧步驟
SBL‧‧‧超級區塊
SBL1‧‧‧第一超級區塊
SBL2‧‧‧第二超級區塊
SBL3‧‧‧第三超級區塊
SBL4‧‧‧第四超級區塊
SC‧‧‧訊號連接件
SGL‧‧‧訊號
SSL、SSL1、SSL2、SSL3‧‧‧串選擇線
SST‧‧‧串選擇電晶體
USBL‧‧‧單元超級區塊/單元鄰近超級區塊
VWLs‧‧‧字元線電壓
W1‧‧‧第一通路
W2‧‧‧第二通路
W3‧‧‧第三通路
W4‧‧‧第四通路
WLs、WL1、WL2、WL3、WL4、WL5、WL6、WL7、WL8、WL(n-1)、WLn‧‧‧字元線
①、②、③、④、⑤‧‧‧命令流
藉由參照附圖來詳細闡述本發明概念的示例性實施例,本發明概念的以上及其他特徵將變得更顯而易見,在附圖中:
圖1是示出根據本發明概念示例性實施例的固態驅動機系統的方塊圖。
圖2是詳細示出圖1所示非揮發性記憶體的方塊圖。
圖3是詳細示出圖2所示記憶體單元陣列的等效電路圖。
圖4是詳細示出圖2所示記憶體單元陣列的等效電路圖。
圖5是詳細示出圖1所示固態驅動機控制器的方塊圖。
圖6是示出圖5所示資源分配器的記憶體分配操作的圖。
圖7是示出圖5所示資源分配器的記憶體分配操作的圖。
圖8是詳細示出圖1所示固態驅動機控制器的方塊圖。
圖9是示出圖8所示對映表的示例性表。
圖10是示出圖8所示分組表的示例性表。
圖11是示出圖5所示資源分配器的分組操作的圖。
圖12是示出圖5所示資源分配器的效能的示例性圖。
圖13是示出圖1所示固態驅動機與主機之間的命令流的圖。
圖14是示出根據本發明概念示例性實施例的固態驅動機的操作的圖。
圖15是示出根據本發明概念示例性實施例的固態驅動機的方塊圖。
圖16是示出圖15所示資源分配器的操作的圖。
圖17是示出圖15所示包括固態驅動機控制器的固態驅動機與主機之間的命令流的圖。
圖18是示出根據本發明概念示例性實施例的固態驅動機的操作的圖。
圖19是示出根據本發明概念示例性實施例的固態驅動機的操作的圖。
圖20是示出根據本發明概念示例性實施例的固態驅動機的記憶體分配方法的流程圖。
圖21是詳細示出圖20所示超級區塊界定步驟的流程圖。
圖22是示出根據本發明概念示例性實施例的固態驅動機的記憶體分配方法的流程圖。
圖23是詳細示出圖22所示超級區塊界定步驟的流程圖。
CH1‧‧‧通道/第一通道
CH2‧‧‧通道/第二通道
CH3‧‧‧通道/第三通道
CH4‧‧‧通道/第四通道
SBL1‧‧‧第一超級區塊
SBL2‧‧‧第二超級區塊
SBL3‧‧‧第三超級區塊
SBL4‧‧‧第四超級區塊
Claims (18)
- 一種固態驅動機,包括:多個非揮發性記憶體,所述非揮發性記憶體中的每一者連接至通道,所述通道連接至至少一條通路,所述至少一條通路連接至晶粒;主機介面,被配置以自主機接收包括第一串流組及第二串流組的串流資料及對應於所述第一串流組及所述第二串流組的串流資訊,所述第一串流組包括具有第一大小的第一串流,所述第二串流組包括具有不同於所述第一大小的第二大小的第二串流;以及資源分配器,被配置以基於所述串流資訊將所述串流資料分配給所述多個非揮發性記憶體的超級區塊,其中所述超級區塊包括第一超級區塊及第二超級區塊,所述第一超級區塊包括第一數目的單元超級區塊,所述第二超級區塊包括第二數目的單元超級區塊,所述第一數目不同於所述第二數目,所述單元超級區塊包括對應於第一通道並連接至多條通路的第一晶粒的區塊,所述多條通路連接至所述第一通道,所述資源分配器基於所述串流資訊將所述第一串流組分配給所述第一超級區塊,基於所述串流資訊將所述第二串流組分配給所述第二超級區塊。
- 如申請專利範圍第1項所述的固態驅動機,其中所述第 一超級區塊中所包括的所述單元超級區塊鄰近彼此。
- 如申請專利範圍第1項所述的固態驅動機,其中所述串流資訊包括所述第一串流組中所包括的串流的數目以及所述第一串流組的效能因數。
- 如申請專利範圍第3項所述的固態驅動機,其中所述資源分配器基於所述串流的所述數目及所述效能因數來確定所述第一超級區塊所包括的單元超級區塊的數目。
- 如申請專利範圍第3項所述的固態驅動機,其中所述串流的所述數目大於或等於所述效能因數。
- 如申請專利範圍第1項所述的固態驅動機,更包括:串流組管理器,其儲存關於所述第一串流所屬的所述第一串流組的資訊。
- 如申請專利範圍第1項所述的固態驅動機,其中所述第一串流包括單個串流,且所述資源分配器將所述第一串流分配給所述第一超級區塊。
- 如申請專利範圍第7項所述的固態驅動機,其中所述串流資訊包括所述第一串流的範圍大小及所述第一串流的效能因數。
- 如申請專利範圍第8項所述的固態驅動機,其中所述資源分配器基於所述第一串流的所述範圍大小及所述第一串流的所述效能因數來確定所述第一超級區塊所包括的單元超級區塊的數目。
- 如申請專利範圍第1項所述的固態驅動機,其中所述第一串流包括單個串流,且所述資源分配器確定所述第一串流的分配位置。
- 一種固態驅動機,包括:多個非揮發性記憶體;以及固態驅動機控制器,自主機接收多個串流及串流資訊,根據所述串流資訊界定其中將所述串流中的每一者的超級區塊的位置及大小儲存至所述非揮發性記憶體中,並將所述串流中的每一者分配給其超級區塊,其中所述固態驅動機控制器包括:主機介面,自所述主機接收所述串流及所述串流資訊,資源分配器,根據所述串流資訊將所述串流中的每一者分配給其超級區塊,串流池,僅包括未被分配的串流,以及物理區塊池,包括所述非揮發性記憶體裝置中剩餘的自由區塊。
- 如申請專利範圍第11項所述的固態驅動機,其中所述固態驅動機控制器包括對映表,所述對映表記錄分配有所述串流中的每一者的所述超級區塊。
- 如申請專利範圍第11項所述的固態驅動機,其中所述串流資訊包括串流組,所述串流組包括串流,且所述固態驅動機控制器更包括將所述串流組與所述串流相關聯的串流組管理器。
- 一種固態驅動機的記憶體分配方法,所述記憶體分配方法包括:在所述固態驅動機上自主機接收串流資料及串流資訊;基於所述串流資訊對所述固態驅動機的非揮發性記憶體中的超級區塊進行界定,所述超級區塊包括單元超級區塊,所述單元超級區塊對應於通道且包括連接至多條通路的晶粒的區塊,所述多條通路連接至所述通道,並且所述單元超級區塊與多個不同串流中的每一者的大小相同;以及將所述串流資料分配給所述超級區塊。
- 如申請專利範圍第14項所述的記憶體分配方法,其中所述串流資料包括多個串流組,所述串流組中的每一者包括多個串流,且所述串流資訊包括所述串流組中所包括的串流的數目及每一串流組的效能因數。
- 如申請專利範圍第14項所述的記憶體分配方法,其中所述串流資料包括第一串流,以及所述串流資訊包括所述第一串流的範圍大小及所述第一串流的效能因數。
- 如申請專利範圍第14項所述的記憶體分配方法,其中所述串流資料包括第一串流,且所述串流資訊包括所述第一串流的分配位置。
- 如申請專利範圍第14項所述的記憶體分配方法,更包 括:在自所述主機接收所述串流資訊之前,自所述主機接收關於串流的當前狀況的詢問;以及關於所述串流的所述當前狀況對所述主機作出回答。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2018-0078729 | 2018-07-06 | ||
KR1020180078729A KR102611566B1 (ko) | 2018-07-06 | 2018-07-06 | 솔리드 스테이트 드라이브 및 그의 메모리 할당 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW202006549A TW202006549A (zh) | 2020-02-01 |
TWI808167B true TWI808167B (zh) | 2023-07-11 |
Family
ID=69102061
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW108114880A TWI808167B (zh) | 2018-07-06 | 2019-04-29 | 固態驅動機及其記憶體分配方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US11010071B2 (zh) |
KR (1) | KR102611566B1 (zh) |
CN (1) | CN110688324B (zh) |
SG (1) | SG10201901589RA (zh) |
TW (1) | TWI808167B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11336303B2 (en) * | 2010-06-04 | 2022-05-17 | Micron Technology, Inc. | Advanced bitwise operations and apparatus in a multi-level system with nonvolatile memory |
CN111522507B (zh) * | 2020-04-14 | 2021-10-01 | 中山大学 | 一种低延迟的文件系统地址空间管理方法、系统及介质 |
US11537510B2 (en) * | 2020-04-24 | 2022-12-27 | Western Digital Technologies, Inc. | Storage devices having minimum write sizes of data |
US11294598B2 (en) | 2020-04-24 | 2022-04-05 | Western Digital Technologies, Inc. | Storage devices having minimum write sizes of data |
KR20220049329A (ko) | 2020-10-14 | 2022-04-21 | 삼성전자주식회사 | 스토리지 컨트롤러, 스토리지 장치, 및 스토리지 장치의 동작 방법 |
US11853565B2 (en) * | 2021-10-01 | 2023-12-26 | Western Digital Technologies, Inc. | Support higher number of active zones in ZNS SSD |
KR20230097866A (ko) * | 2021-12-24 | 2023-07-03 | 삼성전자주식회사 | 메모리 컨트롤러를 포함하는 스토리지 장치 및 스토리지 장치의 동작 방법 |
US11966605B2 (en) * | 2022-03-09 | 2024-04-23 | Kioxia Corporation | Superblock-based write management in non-volatile memory devices |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104461391A (zh) * | 2014-12-05 | 2015-03-25 | 上海宝存信息科技有限公司 | 一种存储设备元数据管理处理方法及系统 |
US20170272494A1 (en) * | 2016-03-16 | 2017-09-21 | Samsung Electronics Co., Ltd. | Multi-stream ssd qos management |
US20180129453A1 (en) * | 2016-11-10 | 2018-05-10 | Samsung Electronics Co., Ltd. | Solid state drive device and storage system having the same |
TW201818401A (zh) * | 2016-09-14 | 2018-05-16 | 阿里巴巴集團服務有限公司 | 在基於快閃記憶體的儲存媒體中寫入儲存資料的方法和裝置 |
US20180136865A1 (en) * | 2016-11-15 | 2018-05-17 | Samsung Electronics Co., Ltd. | Method of operating memory device, memory device using the same and memory system including the device |
Family Cites Families (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2124754C (en) | 1993-06-30 | 2005-06-28 | Mark Zbikowski | Storage of file data on disk in multiple representations |
US7657572B2 (en) | 2007-03-06 | 2010-02-02 | Microsoft Corporation | Selectively utilizing a plurality of disparate solid state storage locations |
US8239614B2 (en) * | 2009-03-04 | 2012-08-07 | Micron Technology, Inc. | Memory super block allocation |
US8095765B2 (en) * | 2009-03-04 | 2012-01-10 | Micron Technology, Inc. | Memory block management |
KR101600951B1 (ko) | 2009-05-18 | 2016-03-08 | 삼성전자주식회사 | 고체 상태 드라이브 장치 |
US8954690B2 (en) | 2011-02-12 | 2015-02-10 | Andy Vincent Lawrence | Systems and methods for managing unstructured data |
KR20130060791A (ko) * | 2011-11-30 | 2013-06-10 | 삼성전자주식회사 | 마모도 제어 로직을 포함하는 메모리 시스템, 데이터 저장 장치, 메모리 카드, 그리고 솔리드 스테이트 드라이브 |
KR101962786B1 (ko) * | 2012-03-23 | 2019-03-27 | 삼성전자주식회사 | 불휘발성 메모리 장치, 메모리 시스템 및 그것의 프로그램 방법 |
KR102053953B1 (ko) * | 2013-02-04 | 2019-12-11 | 삼성전자주식회사 | 불휘발성 메모리 장치를 포함하는 메모리 시스템 및 그것의 프로그램 방법 |
US9170941B2 (en) * | 2013-04-05 | 2015-10-27 | Sandisk Enterprises IP LLC | Data hardening in a storage system |
US20150378884A1 (en) | 2013-04-08 | 2015-12-31 | Avalanche Technology, Inc. | Storage system controlling addressing of solid storage disks (ssd) |
US9448924B2 (en) | 2014-01-08 | 2016-09-20 | Netapp, Inc. | Flash optimized, log-structured layer of a file system |
JP2016170583A (ja) * | 2015-03-12 | 2016-09-23 | 株式会社東芝 | メモリシステムおよび情報処理システム |
US9996302B2 (en) | 2015-04-03 | 2018-06-12 | Toshiba Memory Corporation | Storage device writing data on the basis of stream |
US10282324B2 (en) | 2015-07-13 | 2019-05-07 | Samsung Electronics Co., Ltd. | Smart I/O stream detection based on multiple attributes |
US9898200B2 (en) | 2016-02-18 | 2018-02-20 | Samsung Electronics Co., Ltd | Memory device having a translation layer with multiple associative sectors |
US10540274B2 (en) | 2016-03-29 | 2020-01-21 | Micron Technology, Inc. | Memory devices including dynamic superblocks, and related methods and electronic systems |
KR102653401B1 (ko) * | 2016-07-18 | 2024-04-03 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그의 동작방법 |
KR102682253B1 (ko) * | 2016-11-29 | 2024-07-08 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작방법 |
KR102680418B1 (ko) * | 2016-11-29 | 2024-07-03 | 삼성전자주식회사 | 컨트롤러 및 컨트롤러와 불휘발성 메모리 장치들을 포함하는 스토리지 장치 |
KR20180062247A (ko) * | 2016-11-30 | 2018-06-08 | 삼성전자주식회사 | 효율적인 버퍼 할당을 수행하는 컨트롤러, 스토리지 장치 및 스토리지 장치의 동작 방법 |
KR20180079584A (ko) * | 2016-12-30 | 2018-07-11 | 에스케이하이닉스 주식회사 | 컨트롤러 및 컨트롤러의 동작 방법 |
CN109656834B (zh) * | 2017-10-12 | 2022-11-11 | 慧荣科技股份有限公司 | 数据管理方法以及数据储存系统 |
CN107783734B (zh) | 2017-11-17 | 2021-03-16 | 北京联想超融合科技有限公司 | 一种基于超融合存储系统的资源分配方法、装置及终端 |
-
2018
- 2018-07-06 KR KR1020180078729A patent/KR102611566B1/ko active IP Right Grant
-
2019
- 2019-02-04 US US16/266,187 patent/US11010071B2/en active Active
- 2019-02-25 SG SG10201901589RA patent/SG10201901589RA/en unknown
- 2019-04-24 CN CN201910338020.2A patent/CN110688324B/zh active Active
- 2019-04-29 TW TW108114880A patent/TWI808167B/zh active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104461391A (zh) * | 2014-12-05 | 2015-03-25 | 上海宝存信息科技有限公司 | 一种存储设备元数据管理处理方法及系统 |
US20170272494A1 (en) * | 2016-03-16 | 2017-09-21 | Samsung Electronics Co., Ltd. | Multi-stream ssd qos management |
TW201818401A (zh) * | 2016-09-14 | 2018-05-16 | 阿里巴巴集團服務有限公司 | 在基於快閃記憶體的儲存媒體中寫入儲存資料的方法和裝置 |
US20180129453A1 (en) * | 2016-11-10 | 2018-05-10 | Samsung Electronics Co., Ltd. | Solid state drive device and storage system having the same |
US20180136865A1 (en) * | 2016-11-15 | 2018-05-17 | Samsung Electronics Co., Ltd. | Method of operating memory device, memory device using the same and memory system including the device |
Also Published As
Publication number | Publication date |
---|---|
CN110688324B (zh) | 2024-06-04 |
CN110688324A (zh) | 2020-01-14 |
KR20200005240A (ko) | 2020-01-15 |
US20200012444A1 (en) | 2020-01-09 |
TW202006549A (zh) | 2020-02-01 |
US11010071B2 (en) | 2021-05-18 |
SG10201901589RA (en) | 2020-02-27 |
KR102611566B1 (ko) | 2023-12-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI808167B (zh) | 固態驅動機及其記憶體分配方法 | |
KR102610537B1 (ko) | 솔리드 스테이트 드라이브 장치 및 이를 포함하는 저장 시스템 | |
US9405679B2 (en) | Determining a location of a memory device in a solid state device | |
US9418017B2 (en) | Hot memory block table in a solid state storage device | |
US8677058B2 (en) | Memory system selecting write mode of data block and data write method thereof | |
CN108121673B (zh) | 控制器以及包括控制器和非易失性存储器件的存储设备 | |
US20210382864A1 (en) | Key-value storage device and operating method thereof | |
US11226895B2 (en) | Controller and operation method thereof | |
KR102711283B1 (ko) | 저장 장치, 컨트롤러 및 컨트롤러의 동작 방법 | |
US20220261171A1 (en) | Storage devices, data storage systems and methods of operating storage devices | |
US20180211707A1 (en) | Semiconductor memory device and method of controlling semiconductor memory device | |
KR102637478B1 (ko) | 오픈 채널 솔리드 스테이트 드라이브, 이를 포함하는 비휘발성 메모리 시스템 및 오픈 채널 솔리드 스테이트 드라이브의 파워 로스 프로텍션 방법 | |
KR20200072139A (ko) | 메모리 시스템 및 그것의 동작방법 | |
KR20220055717A (ko) | 메모리 시스템 및 메모리 시스템의 동작 방법 | |
KR102306853B1 (ko) | 호스트 장치가 스토리지 장치를 제어하는 방법 및 호스트 장치와 스토리지 장치를 포함하는 메모리 시스템 | |
US11474726B2 (en) | Memory system, memory controller, and operation method thereof | |
KR102530327B1 (ko) | 비휘발성 메모리 장치 및 그 동작 방법 | |
US20240143187A1 (en) | Storage device, controller and method for performing global wear-leveling | |
KR20160144546A (ko) | 스토리지 장치 | |
KR20240124737A (ko) | 스토리지 컨트롤러, 스토리지 컨트롤러의 동작 방법, 및 스토리지 시스템 | |
KR20230082377A (ko) | 메모리 컨트롤러 및 메모리 시스템 | |
KR20240008590A (ko) | 저장 장치 및 그 동작 방법 |