TWI831701B - 存取快閃記憶體模組的方法及相關的快閃記憶體控制器與記憶裝置 - Google Patents
存取快閃記憶體模組的方法及相關的快閃記憶體控制器與記憶裝置 Download PDFInfo
- Publication number
- TWI831701B TWI831701B TW112120346A TW112120346A TWI831701B TW I831701 B TWI831701 B TW I831701B TW 112120346 A TW112120346 A TW 112120346A TW 112120346 A TW112120346 A TW 112120346A TW I831701 B TWI831701 B TW I831701B
- Authority
- TW
- Taiwan
- Prior art keywords
- temporary check
- temporary
- check code
- buffer
- data
- Prior art date
Links
- 230000015654 memory Effects 0.000 title claims abstract description 115
- 238000000034 method Methods 0.000 title claims abstract description 24
- 238000012795 verification Methods 0.000 claims description 3
- 101001098529 Homo sapiens Proteinase-activated receptor 1 Proteins 0.000 description 27
- 101000713169 Homo sapiens Solute carrier family 52, riboflavin transporter, member 2 Proteins 0.000 description 27
- 102100037136 Proteinase-activated receptor 1 Human genes 0.000 description 27
- 101000603877 Homo sapiens Nuclear receptor subfamily 1 group I member 2 Proteins 0.000 description 12
- 101001098560 Homo sapiens Proteinase-activated receptor 2 Proteins 0.000 description 12
- 101000713170 Homo sapiens Solute carrier family 52, riboflavin transporter, member 1 Proteins 0.000 description 12
- 102100037132 Proteinase-activated receptor 2 Human genes 0.000 description 12
- 101100489581 Caenorhabditis elegans par-5 gene Proteins 0.000 description 10
- 101100407060 Caenorhabditis elegans par-6 gene Proteins 0.000 description 10
- 101000613565 Homo sapiens PRKC apoptosis WT1 regulator protein Proteins 0.000 description 10
- 101001113471 Homo sapiens Proteinase-activated receptor 4 Proteins 0.000 description 10
- 102100023710 Proteinase-activated receptor 4 Human genes 0.000 description 10
- 101001135199 Homo sapiens Partitioning defective 3 homolog Proteins 0.000 description 7
- 101001098557 Homo sapiens Proteinase-activated receptor 3 Proteins 0.000 description 7
- 102100037133 Proteinase-activated receptor 3 Human genes 0.000 description 7
- 238000010586 diagram Methods 0.000 description 6
- 238000012937 correction Methods 0.000 description 4
- 238000012545 processing Methods 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Images
Landscapes
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本發明揭露了一種存取一快閃記憶體模組的方法,其中該方法包含有:對該快閃記憶體模組進行組態以規劃出一超級區塊,其中該超級區塊包含了分別位於該多個晶粒的多個區塊;分別對M筆資料進行編碼以依序產生M個暫時性校驗碼;依序將該M個暫時性校驗碼儲存至一緩衝器的N個區域中,其中N小於M,該N個區域中每一者僅可儲存一個暫時性校驗碼,且該N個區域有一部分區域係固定儲存該M個暫時性校驗碼中一部分暫時性校驗碼及其後續的更新後暫時性校驗碼;以及根據該M個暫時性校驗碼以產生M個校驗碼,並將該M個校驗碼寫入至該超級區塊中。
Description
本發明係有關於快閃記憶體控制器。
為了讓快閃記憶體模組內的資料有更佳的保護,快閃記憶體控制器中的編碼器會使用一獨立磁碟冗餘陣列(redundant array of independent disks,RAID)編碼方式來對寫入至快閃記憶體模組內的資料進行編碼,以產生多個校驗碼(parity)。然而,由於編碼器內之RAID緩衝器的空間有限,故在進行RAID編碼的過程中,會需要將目前暫時不需要進行編碼的校驗碼先搬移到動態隨機存取記憶體(Dynamic Random Access Memory,DRAM)中,以釋放出RAID緩衝器空間供其他校驗碼進行編碼。因此,由於在進行RAID編碼的過程中校驗碼會需要反覆地在RAID緩衝器與DRAM之間進行交換/搬移,故會影響到編碼器的效率。
因此,本發明的目的之一在於提出一種快閃記憶體控制器,其可以降低校驗碼在RAID緩衝器與DRAM之間進行交換/搬移的次數,以解決先前技術中所述的問題。
在本發明的一個實施例中,揭露了一種存取一快閃記憶體模組的方法,其中該快閃記憶體模組包含多個晶粒,每一個晶粒包含多個區塊,每一個區塊包含多個資料頁,以及該控制方法包含有:對該快閃記憶體模組進行組態以規劃出一超級區塊,其中該超級區塊包含了分別位於該多個晶粒的多個區塊;分別對M筆資料進行編碼以依序產生M個暫時性校驗碼,其中M為大於2的正整數,且該M筆資料中每一筆資料係用來被寫入至該多個區塊中每一區塊的一資料頁;依序將該M個暫時性校驗碼儲存至一緩衝器的N個區域中,其中N小於M,該N個區域中每一個區域僅可儲存一個暫時性校驗碼,且該N個區域有一第一部分區域係固定儲存該M個暫時性校驗碼中一部分暫時性校驗碼及其後續的更新後暫時性校驗碼,而不會儲存該M個暫時性校驗碼中其他部分暫時性校驗碼或其後續的更新後暫時性校驗碼;根據該M個暫時性校驗碼以產生M個校驗碼,並將該M個校驗碼寫入至該超級區塊中。
在本發明的一個實施例中,揭露了一種快閃記憶體控制器,其中該快閃記憶體控制器係用來存取一快閃記憶體模組,該快閃記憶體模組包含多個晶粒,每一個晶粒包含多個區塊,每一個區塊包含多個資料頁,且該快閃記憶體控制器包含有一唯讀記憶體、一微處理器、一編碼器及一緩衝器。該微處理器對該快閃記憶體模組進行組態以規劃出一超級區塊,其中該超級區塊包含了分別位於該多個晶粒的多個區塊;該編碼器分別對M筆資料進行編碼以依序產生M個暫時性校驗碼,其中M為大於2的正整數,且該M筆資料中每一筆資料係用來被寫入至該多個區塊中每一區塊的一資料頁;該編碼器依序將該M個暫時性校驗碼儲存至該緩衝器的N個區域中,其中N小於M,該N個區域中每一個區域僅可儲存一個暫時性校驗碼,且該N個區域有一第一部分區域係固定儲存該M個暫
時性校驗碼中一部分暫時性校驗碼及其後續的更新後暫時性校驗碼,而不會儲存該M個暫時性校驗碼中其他部分暫時性校驗碼或其後續的更新後暫時性校驗碼;以及該編碼器根據該M個暫時性校驗碼以產生M個校驗碼,並將該M個校驗碼寫入至該超級區塊中。
在本發明的一個實施例中,揭露了一種記憶裝置,其包含有一快閃記憶體模組及一快閃記憶體控制器。該快閃記憶體模組其包含多個晶粒,每一個晶粒包含多個區塊,每一個區塊包含多個資料頁。該快閃記憶體控制器用以存取該快閃記憶體模組,且該快閃記憶體控制器執行以下操作:對該快閃記憶體模組進行組態以規劃出一超級區塊,其中該超級區塊包含了分別位於該多個晶粒的多個區塊;分別對M筆資料進行編碼以依序產生M個暫時性校驗碼,其中M為大於2的正整數,且該M筆資料中每一筆資料係用來被寫入至該多個區塊中每一區塊的一資料頁;以及依序將該M個暫時性校驗碼儲存至一緩衝器的N個區域中,其中N小於M,該N個區域中每一個區域僅可儲存一個暫時性校驗碼,且該N個區域有一第一部分區域係固定儲存該M個暫時性校驗碼中一部分暫時性校驗碼及其後續的更新後暫時性校驗碼,而不會儲存該M個暫時性校驗碼中其他部分暫時性校驗碼或其後續的更新後暫時性校驗碼;根據該M個暫時性校驗碼以產生M個校驗碼,並將該M個校驗碼寫入至該超級區塊中。
100:記憶裝置
110:快閃記憶體控制器
112:微處理器
112M:唯讀記憶體
112C:程式碼
114:控制邏輯
116:緩衝記憶體
118:介面邏輯
120:快閃記憶體模組
130:主裝置
132:編碼器
134:解碼器
136:RAID緩衝器
140:DRAM
200:超級區塊
202,204,206,208:區塊
700~706:步驟
D1~D1784:資料
P1~P448:資料頁
PAR1~PAR8:校驗碼
PAR1’~PAR8’:暫時性校驗碼
WL1~WL112:字元線
第1圖為依據本發明一實施例之一種記憶裝置的示意圖。
第2圖為根據本發明一實施例之將資料寫入至一超級區塊的示意圖。
第3圖為根據本發明一實施例之產生校驗碼的示意圖。
第4圖、第5圖、第6圖為根據本發明一實施例之存取RAID緩衝器及DRAM的示意圖。
第7圖為根據本發明一實施例之存取快閃記憶體模組的方法的流程圖。
第1圖為依據本發明一實施例之一種記憶裝置100的示意圖。記憶裝置100包含有一快閃記憶體(Flash Memory)模組120以及一快閃記憶體控制器110,且快閃記憶體控制器110用來存取快閃記憶體模組120。依據本實施例,快閃記憶體控制器110包含一微處理器112、一唯讀記憶體(Read Only Memory,ROM)112M、一控制邏輯114、一緩衝記憶體116、與一介面邏輯118。唯讀記憶體112M係用來儲存一程式碼112C,而微處理器112則用來執行程式碼112C以控制對快閃記憶體模組120之存取(Access)。控制邏輯114包含了一編碼器132、一解碼器134及一RAID緩衝器136,其中編碼器132用來對寫入到快閃記憶體模組120中的資料進行編碼以產生對應的校驗碼(或稱,錯誤更正碼(Error Correction Code),ECC),解碼器134用來將從快閃記憶體模組120所讀出的資料進行解碼,RAID緩衝器136係用來暫存編碼器132在對資料進行編碼時所另外產生的校驗碼。
於典型狀況下,快閃記憶體模組120包含了多個快閃記憶體晶片,而每一個快閃記憶體晶片包含複數個區塊(Block),而快閃記憶體控制器110對快閃記憶體模組120進行複製、抹除、合併資料等運作係以區塊為單位來進行複製、抹除、合併資料。另外,一區塊可記錄特定數量的資料頁(Page),其中快閃記憶體控制器110對快閃記憶體模組120進行寫入資料之運作係以資料頁為單位來進行寫入。換句話說,區塊是快閃記憶體模組120中一個最小的抹除單位,而資料
頁是快閃記憶體模組120中一個最小的寫入單位。
實作上,透過微處理器112執行程式碼112C之快閃記憶體控制器110可利用其本身內部之元件來進行諸多控制運作,例如:利用控制邏輯114來控制快閃記憶體模組120之存取運作(尤其是對至少一區塊或至少一資料頁之存取運作)、利用緩衝記憶體116及/或一DRAM 140進行所需之緩衝處理、以及利用介面邏輯118來與一主裝置(Host Device)130溝通。
在一實施例中,記憶裝置100可以是可攜式記憶裝置(例如:符合SD/MMC、CF、MS、XD標準之記憶卡),且主裝置130為一可與記憶裝置連接的電子裝置,例如手機、筆記型電腦、桌上型電腦...等等。而在另一實施例中,記憶裝置100可以是固態硬碟或符合通用快閃記憶體儲存(Universal Flash Storage,UFS)或嵌入式多媒體記憶卡(Embedded Multi Media Card,EMMC)規格之嵌入式儲存裝置,以設置在一電子裝置中,例如設置在手機、手錶、攜帶型醫療檢測裝置(例如,醫療手環)、筆記型電腦、桌上型電腦之中,而此時主裝置130可以是該電子裝置的一處理器。
第2圖為根據本發明一實施例之將資料寫入至一超級區塊的示意圖。如第2圖所示,假設快閃記憶體模組120包含了四個晶粒(晶粒1~晶粒4),且每一個晶粒包含了多個區塊,而此時微處理器112可以將快閃記憶體模組120內部之屬於不同資料面(plane)或是不同晶粒的區塊組態為一個超級區塊,以方便在資料存取上的管理。在本實施例中,係以一個晶粒內僅具有一個資料面來做為說明,但本發明並不以此為限。如第2圖所示,晶粒1~晶粒4分別包含了區塊(實體區塊)202、204、206、208,而微處理器112可以將區塊202、204、206、208
組態為一超級區塊200,而快閃記憶體控制器110在存取超級區塊200時則類似於一般區塊。舉例來說,超級區塊200本身即是一個抹除單位,亦即超級區塊200的四個區塊202、204、206、208雖然可以分開進行抹除操作,但是快閃記憶體控制器110卻一定會將四個區塊202、204、206、208一起進行抹除;此外,超級區塊200在進行資料寫入時可依序由區塊202的第一個資料頁P1、區塊204的第一個資料頁P1、區塊206的第一個資料頁P1及區塊208的第一個資料頁P1進行資料寫入,而直到區塊208的第一個資料頁P1完成資料寫入之後,再將資料依序寫入至區塊202的第二個資料頁P2、區塊204的第二個資料頁P2、...、以此類推,換言之,快閃記憶體控制器110會將超級區塊200中每個區塊202、204、206、208的第一個資料頁P1寫滿後,才接著寫超級區塊200中每個區塊202、204、206、208的第二個資料頁P2。超級區塊係快閃記憶體控制器110為了方便管理快閃記憶體模組120而在邏輯上設定之一集合區塊,並非物理上之集合區塊。此外,在進行垃圾收集、計算區塊有效頁、計算區塊寫入時間長短時,也都可以超級區塊為單位來進行計算。
在本實施例中,快閃記憶體模組120係具一立體NAND型快閃記憶體(3D NAND-type flash)模組,其中每一個區塊係由多個字元線(word line)、多個位元線(bit line)以及多個記憶單元(memory cell)所構成。由於立體NAND型快閃記憶體架構係為本領域具有通常知識者所熟知,故在說明書中不多做說明。在本實施例中,係假設每個區塊202、204、206、208均為具有112條字元線的單層式儲存(Single-Level Cell,SLC)區塊,且一個字元線對應到四個資料頁,例如字元線WL1對應到資料頁P1~P4、字元線WL2對應到資料頁P5~P8、字元線WL3對應到資料頁P9~P12、...、字元線WL111對應到資料頁P441~P444、字元線WL112對應到資料頁P445~P448。
為了讓快閃記憶體模組120內的資料有更佳的保護,編碼器132會採用一RAID編碼機制來對寫入至區塊202、204、206、208內的資料進行編碼以產生多組校驗碼(parity)。此外,由於快閃記憶體模組120中相鄰字元線上的資料容易互相影響,亦即若是在將資料寫入至對應至字元線WL2的資料頁P5~P8時發生資料寫入錯誤或是不正常斷電,則對應至字元線WL1的資料頁P1~P4上的資料也會發生錯誤,因此,編碼器132在進行RAID編碼時會跳著字元線來進行,亦即相鄰字元線上資料頁的資料不會一起進行編碼。具體來說,同時參考第2、3圖,編碼器132會依序對準備寫入至區塊202之第一個資料頁P1的資料D1、區塊204之第一個資料頁P1的資料D2、區塊206之第一個資料頁P1的資料D3、區塊208之第一個資料頁P1的資料D4、區塊202之第九個資料頁P9的資料D33、區塊204之第九個資料頁P9的資料D34、區塊206之第九個資料頁P9的資料D35、區塊208之第九個資料頁P9的資料D36、區塊202之第441個資料頁P441的資料D1761、區塊204之第441個資料頁P441的資料D1762、區塊206之第441個資料頁P441的資料D1763進行互斥或(exclusive or,XOR)運算以產生一校驗碼PAR1。類似地,編碼器132會依序對準備寫入至區塊202之第二個資料頁P2的資料D5、區塊204之第二個資料頁P2的資料D6、區塊206之第二個資料頁P2的資料D7、區塊208之第二個資料頁P2的資料D8、區塊202之第十個資料頁P10的資料D37、區塊204之第十個資料頁P10的資料D38、區塊206之第十個資料頁P10的資料D39、區塊208之第十個資料頁P10的資料D40、區塊202之第442個資料頁P442的資料D1764、區塊204之第442個資料頁P442的資料D1765、區塊206之第442個資料頁P442的資料D1766進行互斥或(XOR)運算以產生一校驗碼PAR2。類似以上運算,編碼器132產生校驗碼PAR3~PAR8。此外,校驗碼PAR1~PAR8係分別被儲存至區塊208之資料頁P441~P448中。
需注意的是,第2、3圖所示的D1~D1784中的每一者係包含了來自主裝置130的原始資料以及對應的錯誤更正碼,亦即編碼器132係對來自主裝置130的第一筆資料進行編碼以產生資料D1、對第二筆資料進行編碼以產生資料D2、...,以此類推。
由於第2、3圖所示的資料D1~D1784是依序地產生並寫入至超級區塊200中,故在產生校驗碼PAR1~PAR8的過程中會產生且持續更新暫時性校驗碼PAR1’~PAR8’,並暫存在RAID緩衝器136中。然而,由於RAID緩衝器136通常使用價格較高的靜態隨機存取記憶體來實作,故其容量有限且無法儲存所有的暫時性校驗碼PAR1’~PAR8’,其中每一個暫時性校驗碼PAR1’~PAR8’的大小等同於一個資料頁的大小。因此,在RAID緩衝器136只能儲存部分之暫時性校驗碼PAR1’~PAR8’的情形下,目前不需處理的暫時性校驗碼會先被搬移至DRAM 140中,而等到需要進行編碼時再從DRAM 140載入至RAID緩衝器136來進行處理。然而,由於暫時性校驗碼PAR1’~PAR8’需要頻繁地在DRAM 140與RAID緩衝器136之間搬移,故會影響到快閃記憶體控制器110的效能。因此,本發明提出了一種控制方法,其具有特殊的校驗碼交換機制(parity swap mechanism),以降低暫時性校驗碼在DRAM 140與RAID緩衝器136之間的搬移次數,以改善快閃記憶體控制器110的效能。
具體來說,參考第4~6圖,假設RAID緩衝器136的大小等於4個資料頁,亦即RAID緩衝器136只能夠儲存四個暫時性校驗碼。首先,編碼器132自主裝置130接收資料並進行編碼以依序產生資料D1、D2、D3、D4,且編碼器132依序對D1、D2、D3、D4進行互斥或運算以產生暫時性校驗碼PAR1’,並將暫時
性校驗碼PAR1’儲存在RAID緩衝器136的第一個區域。接著,編碼器132自主裝置130接收資料並進行編碼以依序產生資料D5、D6、D7、D8,且編碼器132依序對D5、D6、D7、D8進行互斥或運算以產生暫時性校驗碼PAR2’,並將暫時性校驗碼PAR2’儲存在RAID緩衝器136的第二個區域。編碼器132自主裝置130接收資料並進行編碼以依序產生資料D9、D10、D11、D12,且編碼器132依序對D9、D10、D11、D12進行互斥或運算以產生暫時性校驗碼PAR3’,並將暫時性校驗碼PAR3’儲存在RAID緩衝器136的第三個區域。編碼器132自主裝置130接收資料並進行編碼以依序產生資料D13、D14、D15、D16,且編碼器132依序對D13、D14、D15、D16進行互斥或運算以產生暫時性校驗碼PAR4’,並將暫時性校驗碼PAR4’儲存在RAID緩衝器136的第四個區域。
接著,編碼器132自主裝置130接收資料並進行編碼以開始依序產生資料D17、D18、D19、D20,此時由於RAID緩衝器136已經沒有可以儲存暫時性校驗碼PAR5’的空間,因此,微處理器112將暫時性校驗碼PAR1’由RAID緩衝器136的第一個區域搬移到DRAM 140中,之後編碼器132再依序對D17、D18、D19、D20進行互斥或運算以產生暫時性校驗碼PAR5’,並將暫時性校驗碼PAR5’儲存在RAID緩衝器136的第一個區域。
接著,編碼器132自主裝置130接收資料並進行編碼以開始依序產生資料D21、D22、D23、D24,此時由於RAID緩衝器136已經沒有可以儲存暫時性校驗碼PAR6’的空間,因此,微處理器112將暫時性校驗碼PAR5’由RAID緩衝器136的第一個區域搬移到DRAM 140中,之後編碼器132再依序對D21、D22、D23、D24進行互斥或運算以產生暫時性校驗碼PAR6’,並將暫時性校驗碼PAR6’儲存在RAID緩衝器136的第一個區域。
接著,編碼器132自主裝置130接收資料並進行編碼以開始依序產生資料D25、D26、D27、D28,此時由於RAID緩衝器136已經沒有可以儲存暫時性校驗碼PAR7’的空間,因此,微處理器112將暫時性校驗碼PAR6’由RAID緩衝器136的第一個區域搬移到DRAM 140中,之後編碼器132再依序對D25、D26、D27、D28進行互斥或運算以產生暫時性校驗碼PAR7’,並將暫時性校驗碼PAR7’儲存在RAID緩衝器136的第一個區域。
於第5圖,接著,編碼器132自主裝置130接收資料並進行編碼以開始依序產生資料D29、D30、D31、D32,此時由於RAID緩衝器136已經沒有可以儲存暫時性校驗碼PAR8’的空間,因此,微處理器112將暫時性校驗碼PAR7’由RAID緩衝器136的第一個區域搬移到DRAM 140中,之後編碼器132再依序對D29、D30、D31、D32進行互斥或運算以產生暫時性校驗碼PAR8’,並將暫時性校驗碼PAR8’儲存在RAID緩衝器136的第一個區域。
接著,編碼器132自主裝置130接收資料並進行編碼以開始依序產生資料D33、D34、D35、D36,此時由於RAID緩衝器136已經沒有可以儲存暫時性校驗碼PAR1’的空間,因此,微處理器112將暫時性校驗碼PAR8’由RAID緩衝器136的第一個區域搬移到DRAM 140,並將儲存在DRAM 140的暫時性校驗碼PAR1’搬移到RAID緩衝器136的第一個區域。之後,編碼器132再依序對目前暫存於RAID緩衝器136的暫時性校驗碼PAR1’、D29、D30、D31、D32進行互斥或運算以產生更新後的暫時性校驗碼PAR1’,並將更新後的暫時性校驗碼PAR1’儲存在RAID緩衝器136的第一個區域,此時更新後的暫時性校驗碼PAR1’即為依序對D1、D2、D3、D4、D33、D34、D35、D36進行互斥或運算的結果。
接著,編碼器132自主裝置130接收資料並進行編碼以開始依序產生資料D37、D38、D39、D40,此時由於RAID緩衝器136已經儲存了暫時性校驗碼PAR2’,因此,微處理器112不需要在RAID緩衝器136與DRAM 140進行資料搬移,且編碼器132可以直接依序對目前暫存於RAID緩衝器136的暫時性校驗碼PAR2’、D37、D38、D39、D40進行互斥或運算以產生更新後的暫時性校驗碼PAR2’,並將更新後的暫時性校驗碼PAR2’儲存在RAID緩衝器136的第二個區域。
接著,編碼器132自主裝置130接收資料並進行編碼以開始依序產生資料D41、D42、D43、D44,此時由於RAID緩衝器136已經儲存了暫時性校驗碼PAR3’,因此,微處理器112不需要在RAID緩衝器136與DRAM 140進行資料搬移,且編碼器132可以直接依序對目前暫存於RAID緩衝器136的暫時性校驗碼PAR3’、D41、D42、D43、D44進行互斥或運算以產生更新後的暫時性校驗碼PAR3’,並將更新後的暫時性校驗碼PAR3’儲存在RAID緩衝器136的第三個區域。
於第6圖,接著,編碼器132自主裝置130接收資料並進行編碼以開始依序產生資料D45、D46、D47、D48,此時由於RAID緩衝器136已經儲存了暫時性校驗碼PAR4’,因此,微處理器112不需要在RAID緩衝器136與DRAM 140進行資料搬移,且編碼器132可以直接依序對目前暫存於RAID緩衝器136的暫時性校驗碼PAR4’、D45、D46、D47、D48進行互斥或運算以產生更新後的暫時性校驗碼PAR4’,並將更新後的暫時性校驗碼PAR4’儲存在RAID緩衝器136的第四個區域。
接著,編碼器132自主裝置130接收資料並進行編碼以開始依序產生
資料D49、D50、D51、D52,此時由於RAID緩衝器136已經沒有可以儲存暫時性校驗碼PAR5’的空間,因此,微處理器112將暫時性校驗碼PAR1’由RAID緩衝器136的第一個區域搬移到DRAM 140,並將儲存在DRAM 140的暫時性校驗碼PAR5’搬移到RAID緩衝器136的第一個區域。之後,編碼器132再依序對目前暫存於RAID緩衝器136的暫時性校驗碼PAR5’、D49、D50、D51、D52進行互斥或運算以產生更新後的暫時性校驗碼PAR5’,並將更新後的暫時性校驗碼PAR5’儲存在RAID緩衝器136的第一個區域。
接著,編碼器132自主裝置130接收資料並進行編碼以開始依序產生資料D53、D54、D55、D56,此時由於RAID緩衝器136已經沒有可以儲存暫時性校驗碼PAR6’的空間,因此,微處理器112將暫時性校驗碼PAR5’由RAID緩衝器136的第一個區域搬移到DRAM 140,並將儲存在DRAM 140的暫時性校驗碼PAR6’搬移到RAID緩衝器136的第一個區域。之後,編碼器132再依序對目前暫存於RAID緩衝器136的暫時性校驗碼PAR6’、D53、D54、D55、D56進行互斥或運算以產生更新後的暫時性校驗碼PAR6’,並將更新後的暫時性校驗碼PAR6’儲存在RAID緩衝器136的第一個區域。
接著,編碼器132自主裝置130接收資料並進行編碼以開始依序產生資料D57、D58、D59、D60,此時由於RAID緩衝器136已經沒有可以儲存暫時性校驗碼PAR7’的空間,因此,微處理器112將暫時性校驗碼PAR6’由RAID緩衝器136的第一個區域搬移到DRAM 140,並將儲存在DRAM 140的暫時性校驗碼PAR7’搬移到RAID緩衝器136的第一個區域。之後,編碼器132再依序對目前暫存於RAID緩衝器136的暫時性校驗碼PAR7’、D57、D58、D59、D60進行互斥或運算以產生更新後的暫時性校驗碼PAR7’,並將更新後的暫時性校驗碼PAR7’儲
存在RAID緩衝器136的第一個區域。
類似以上的操作,編碼器132持續地對後續的資料進行編碼及互斥或運算,以依序且循環地產生暫時性校驗碼PAR1’~PAR8’,直到最後的資料都完成編碼以產生校驗碼PAR1~PAR8為止。
在以上的實施例中,由於暫時性校驗碼PAR2’~PAR4’可以一直暫存於RAID緩衝器136而不需要被搬移至DRAM 140,因此可以增加編碼器132在更新暫時性校驗碼PAR2’~PAR4’的速度,以改善快閃記憶體控制器110的效率。
在第4~6圖的實施例中,RAID緩衝器136的第二個區域至第四個區域係一直被暫時性校驗碼PAR2’~PAR4’所占用,而只有第一個區域用來依序暫存暫時性校驗碼PAR1’、PAR5’、PAR6’、PAR7’、PAR8’,但本發明並不以此為限。舉例來說,RAID緩衝器136可以將四個區域中的任意三個區域給特定的三個暫時性校驗碼(亦即,PAR1’~PAR8’中的任意三個)所占用,而剩餘的一個區域則用來依序暫存剩下五個暫時性校驗碼。於另一例子中,RAID緩衝器136可以將四個區域中的部分區域(例如,兩個區域)給特定數量的暫時性校驗碼(例如,PAR1’~PAR8’中的任意兩個)所占用,而剩餘的區域則用來依序暫存剩下的暫時性校驗碼,這些設計上的變化應隸屬於本發明的範疇。
在第2、3圖的實施例中,係假設超級區塊200包含了分別位於四個晶粒中的區塊202、204、206、208,每一個區塊202、204、206、208均為SLC區塊,一個字元線對應到四個資料頁,且編碼器132係對寫入至超級區塊200的資料進行編碼以產生8個由不同資料產生的校驗碼PAR1~PAR8,但本發明並不以此為
限。在其他的實施例中,超級區塊200所包含的區塊數量可以根據快閃記憶體模組120的架構以及設計者的考量而有所改變,超級區塊200所包含的區塊可以是雙層式儲存(Multi-Level Cell,MLC)區塊、三層式儲存(Triple-Level Cell,TLC)區塊、或是四層式儲存(Quad-Level Cell,QLC)區塊,且編碼器132產生之多個校驗碼的數量、以及產生每一個校驗碼所使用之資料所對應到多個資料頁之間的間隔也可根據快閃記憶體模組120的架構、區塊的型式以及設計者的考量而有所改變。詳細來說,假設產生每一個校驗碼所使用之資料所對應到多個資料頁之間的差距為M個資料頁,則編碼器132產生之多個校驗碼的數量為M,且產生第一個校驗碼PAR1所使用之資料所對應到的資料頁分別為P1、P(1+M)、P(1+2*M)、P(1+3*M)、...,產生第二個校驗碼PAR2所使用之資料所對應到的資料頁分別為P2、P(2+M)、P(2+2*M)、P(2+3*M)、...、產生第M個校驗碼所使用之資料所對應到的資料頁分別為P(M)、P(M+M)、P(M+2*M)、P(M+3*M)、...。此外,RAID緩衝器136所包含之區域的數量可以是小於M的任意正整數N,而不限定於是上述實施例所述的四個區域,其中RAID緩衝器136的每一個區域僅可以用來儲存一個資料頁的資料(亦即,每一個校驗碼或是暫時性校驗碼的資料)。
在以上實施例中,在產生任一暫時性校驗碼之前,若是RAID緩衝器136不具有用來進行編碼以產生該暫時性校驗碼的一先前暫時性校驗碼,則微處理器112可以自RAID緩衝器136的第一個區域開始搜尋所包含之資料目前未使用來進行編碼的一區域以作為一特定區域;以及將RAID緩衝器136之該特定區域的其他暫時性校驗碼搬移至DRAM 140,並將該先前暫時性校驗碼自DRAM 140搬移至RAID緩衝器136之該特定區域,以供進行編碼以產生該暫時性校驗碼。
第7圖為根據本發明一實施例之存取快閃記憶體模組120的方法的流
程圖。同時參考以上實施例所述之內容,流程如下所述。
步驟700:流程開始。
步驟702:對快閃記憶體模組進行組態以規劃出一超級區塊,其中該超級區塊包含了分別位於該多個晶粒的多個區塊。
步驟704:分別對M筆資料進行編碼以依序產生M個暫時性校驗碼,其中M為大於2的正整數,且該M筆資料中每一筆資料係用來被寫入至該多個區塊中每一區塊的一資料頁。
步驟706:依序將該M個暫時性校驗碼儲存至一緩衝器的N個區域中,其中N小於M,該N個區域中每一個區域僅可儲存一個暫時性校驗碼,且該N個區域有一第一部分區域係固定儲存該M個暫時性校驗碼中一部分暫時性校驗碼及其後續的更新後暫時性校驗碼,而不會儲存該M個暫時性校驗碼中其他部分暫時性校驗碼或其後續的更新後暫時性校驗碼。以上所述僅為本發明之較佳實施例,凡依本發明申請專利範圍所做之均等變化與修飾,皆應屬本發明之涵蓋範圍。
100:記憶裝置
110:快閃記憶體控制器
112:微處理器
112M:唯讀記憶體
112C:程式碼
114:控制邏輯
116:緩衝記憶體
118:介面邏輯
120:快閃記憶體模組
130:主裝置
132:編碼器
134:解碼器
136:RAID緩衝器
140:DRAM
Claims (15)
- 一種存取一快閃記憶體模組的方法,其中該快閃記憶體模組包含多個晶粒,每一個晶粒包含多個區塊,每一個區塊包含多個資料頁,以及該方法包含有:對該快閃記憶體模組進行組態以規劃出一超級區塊,其中該超級區塊包含了分別位於該多個晶粒的多個區塊;分別對M筆資料進行編碼以依序產生M個暫時性校驗碼,其中M為大於2的正整數,且該M筆資料中每一筆資料係用來被寫入至該多個區塊中每一區塊的一資料頁;依序將該M個暫時性校驗碼儲存至一緩衝器的N個區域中,其中N小於M,該N個區域中每一個區域僅可儲存一個暫時性校驗碼,且該N個區域有一第一部分區域係固定儲存該M個暫時性校驗碼中一部分暫時性校驗碼及其後續的更新後暫時性校驗碼,而不會儲存該M個暫時性校驗碼中其他部分暫時性校驗碼或其後續的更新後暫時性校驗碼;以及根據該M個暫時性校驗碼以產生M個校驗碼,並將該M個校驗碼寫入至該超級區塊中。
- 如申請專利範圍第1項所述之方法,其中該N個區域中的(N-1)個區域係固定儲存該M個暫時性校驗碼中該部分暫時性校驗碼及其後續的更新後暫時性校驗碼。
- 如申請專利範圍第1項所述之方法,另包含有:針對該M個暫時性校驗碼中的任一暫時性校驗碼:在產生該暫時性校驗碼之前,若是該緩衝器不具有用來進行編碼以產 生該暫時性校驗碼的一先前暫時性校驗碼,將該緩衝器之一第二部分區域的其他暫時性校驗碼搬移至一記憶體,並將該先前暫時性校驗碼自該記憶體搬移至該緩衝器之該第二部分區域,以供進行編碼以產生該暫時性校驗碼。
- 如申請專利範圍第3項所述之方法,其中該第二部分區域為該緩衝器的一特定區域。
- 如申請專利範圍第4項所述之方法,其中在產生該暫時性校驗碼之前,若是該緩衝器不具有用來進行編碼以產生該暫時性校驗碼的該先前暫時性校驗碼,將該緩衝器之該第二部分區域的其他暫時性校驗碼搬移至該記憶體,並將該先前暫時性校驗碼自該記憶體搬移至該緩衝器之該第二部分區域,以供進行編碼以產生該暫時性校驗碼的步驟包含有:若是該緩衝器不具有用來進行編碼以產生該暫時性校驗碼的該先前暫時性校驗碼,自該緩衝器的第一個區域開始搜尋所包含之資料目前未使用來進行編碼的一區域以作為該特定區域;以及將該緩衝器之該特定區域的該其他暫時性校驗碼搬移至該記憶體,並將該先前暫時性校驗碼自該記憶體搬移至該緩衝器之該特定區域,以供進行編碼以產生該暫時性校驗碼。
- 一種快閃記憶體控制器,其中該快閃記憶體控制器係用來存取一快閃記憶體模組,該快閃記憶體模組包含多個晶粒,每一個晶粒包含多個區塊,每一個區塊包含多個資料頁,且該快閃記憶體控制器包含有:一唯讀記憶體,用來儲存一程式碼; 一微處理器,用來執行該程式碼以控制對該快閃記憶體模組之存取;一編碼器;以及一緩衝器;其中該微處理器對該快閃記憶體模組進行組態以規劃出一超級區塊,其中該超級區塊包含了分別位於該多個晶粒的多個區塊;該編碼器分別對M筆資料進行編碼以依序產生M個暫時性校驗碼,其中M為大於2的正整數,且該M筆資料中每一筆資料係用來被寫入至該多個區塊中每一區塊的一資料頁;該編碼器依序將該M個暫時性校驗碼儲存至該緩衝器的N個區域中,其中N小於M,該N個區域中每一個區域僅可儲存一個暫時性校驗碼,且該N個區域有一第一部分區域係固定儲存該M個暫時性校驗碼中一部分暫時性校驗碼及其後續的更新後暫時性校驗碼,而不會儲存該M個暫時性校驗碼中其他部分暫時性校驗碼或其後續的更新後暫時性校驗碼;以及該編碼器根據該M個暫時性校驗碼以產生M個校驗碼,並將該M個校驗碼寫入至該超級區塊中。
- 如申請專利範圍第6項所述之快閃記憶體控制器,其中該N個區域中的(N-1)個區域係固定儲存該M個暫時性校驗碼中該部分暫時性校驗碼及其後續的更新後暫時性校驗碼。
- 如申請專利範圍第6項所述之快閃記憶體控制器,其中針對該M個暫時性校驗碼中的任一暫時性校驗碼:在產生該暫時性校驗碼之前,若是該緩衝器不具有用來進行編碼以產生該暫時性校驗碼的一先前暫時性校驗碼,則該微處理器將該緩衝器之一第二部分區域的其他暫時性校驗碼搬移至一記憶體,並將該先前暫時性校驗碼自該記憶體搬移至該緩衝器之該 第二部分區域,以供進行編碼以產生該暫時性校驗碼。
- 如申請專利範圍第8項所述之快閃記憶體控制器,其中該第二部分區域為該緩衝器的一特定區域。
- 如申請專利範圍第9項所述之快閃記憶體控制器,其中若是該緩衝器不具有用來進行編碼以產生該暫時性校驗碼的該先前暫時性校驗碼,該微處理器自該緩衝器的第一個區域開始搜尋所包含之資料目前未使用來進行編碼的一區域以作為該特定區域;以及該微處理器將該緩衝器之該特定區域的該其他暫時性校驗碼搬移至該記憶體,並將該先前暫時性校驗碼自該記憶體搬移至該緩衝器之該特定區域,以供進行編碼以產生該暫時性校驗碼。
- 一種記憶裝置,包含有:一快閃記憶體模組,其包含多個晶粒,每一個晶粒包含多個區塊,每一個區塊包含多個資料頁;以及一快閃記憶體控制器,用以存取該快閃記憶體模組;其中該快閃記憶體控制器執行以下操作:對該快閃記憶體模組進行組態以規劃出一超級區塊,其中該超級區塊包含了分別位於該多個晶粒的多個區塊;分別對M筆資料進行編碼以依序產生M個暫時性校驗碼,其中M為大於2的正整數,且該M筆資料中每一筆資料係用來被寫入至該多個區塊中每一區塊的一資料頁;依序將該M個暫時性校驗碼儲存至一緩衝器的N個區域中,其中N小於M, 該N個區域中每一個區域僅可儲存一個暫時性校驗碼,且該N個區域有一第一部分區域係固定儲存該M個暫時性校驗碼中一部分暫時性校驗碼及其後續的更新後暫時性校驗碼,而不會儲存該M個暫時性校驗碼中其他部分暫時性校驗碼或其後續的更新後暫時性校驗碼;以及根據該M個暫時性校驗碼以產生M個校驗碼,並將該M個校驗碼寫入至該超級區塊中。
- 如申請專利範圍第11項所述之記憶裝置,其中該N個區域中的(N-1)個區域係固定儲存該M個暫時性校驗碼中該部分暫時性校驗碼及其後續的更新後暫時性校驗碼。
- 如申請專利範圍第11項所述之記憶裝置,另包含有:針對該M個暫時性校驗碼中的任一暫時性校驗碼:在產生該暫時性校驗碼之前,若是該緩衝器不具有用來進行編碼以產生該暫時性校驗碼的一先前暫時性校驗碼,將該緩衝器之一第二部分區域的其他暫時性校驗碼搬移至一記憶體,並將該先前暫時性校驗碼自該記憶體搬移至該緩衝器之該第二部分區域,以供進行編碼以產生該暫時性校驗碼。
- 如申請專利範圍第13項所述之記憶裝置,其中該第二部分區域為該緩衝器的一特定區域。
- 如申請專利範圍第14項所述之記憶裝置,其中在產生該暫時性校驗碼之前,若是該緩衝器不具有用來進行編碼以產生該暫時性校驗碼的該 先前暫時性校驗碼,將該緩衝器之該第二部分區域的其他暫時性校驗碼搬移至該記憶體,並將該先前暫時性校驗碼自該記憶體搬移至該緩衝器之該第二部分區域,以供進行編碼以產生該暫時性校驗碼的步驟包含有:若是該緩衝器不具有用來進行編碼以產生該暫時性校驗碼的該先前暫時性校驗碼,自該緩衝器的第一個區域開始搜尋所包含之資料目前未使用來進行編碼的一區域以作為該特定區域;以及將該緩衝器之該特定區域的該其他暫時性校驗碼搬移至該記憶體,並將該先前暫時性校驗碼自該記憶體搬移至該緩衝器之該特定區域,以供進行編碼以產生該暫時性校驗碼。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW112120346A TWI831701B (zh) | 2023-05-31 | 2023-05-31 | 存取快閃記憶體模組的方法及相關的快閃記憶體控制器與記憶裝置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW112120346A TWI831701B (zh) | 2023-05-31 | 2023-05-31 | 存取快閃記憶體模組的方法及相關的快閃記憶體控制器與記憶裝置 |
Publications (1)
Publication Number | Publication Date |
---|---|
TWI831701B true TWI831701B (zh) | 2024-02-01 |
Family
ID=90824629
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW112120346A TWI831701B (zh) | 2023-05-31 | 2023-05-31 | 存取快閃記憶體模組的方法及相關的快閃記憶體控制器與記憶裝置 |
Country Status (1)
Country | Link |
---|---|
TW (1) | TWI831701B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140281145A1 (en) * | 2013-03-15 | 2014-09-18 | Western Digital Technologies, Inc. | Atomic write command support in a solid state drive |
TW201738900A (zh) * | 2016-04-27 | 2017-11-01 | 慧榮科技股份有限公司 | 存取快閃記憶體模組的方法及相關的快閃記憶體控制器與記憶裝置 |
US20170315868A1 (en) * | 2016-04-27 | 2017-11-02 | Silicon Motion Inc. | Method for accessing flash memory module and associated flash memory controller and memory device |
CN113035262A (zh) * | 2019-12-24 | 2021-06-25 | 美光科技公司 | 存储器子系统中奇偶校验数据的管理 |
US20220066876A1 (en) * | 2020-08-27 | 2022-03-03 | Micron Technology, Inc. | Reduced parity data management |
TW202249018A (zh) * | 2021-01-07 | 2022-12-16 | 慧榮科技股份有限公司 | 儲存裝置、快閃記憶體控制器及其控制方法 |
-
2023
- 2023-05-31 TW TW112120346A patent/TWI831701B/zh active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140281145A1 (en) * | 2013-03-15 | 2014-09-18 | Western Digital Technologies, Inc. | Atomic write command support in a solid state drive |
TW201738900A (zh) * | 2016-04-27 | 2017-11-01 | 慧榮科技股份有限公司 | 存取快閃記憶體模組的方法及相關的快閃記憶體控制器與記憶裝置 |
US20170315868A1 (en) * | 2016-04-27 | 2017-11-02 | Silicon Motion Inc. | Method for accessing flash memory module and associated flash memory controller and memory device |
TW201935486A (zh) * | 2016-04-27 | 2019-09-01 | 慧榮科技股份有限公司 | 存取快閃記憶體模組的方法及相關的快閃記憶體控制器與記憶裝置 |
CN113035262A (zh) * | 2019-12-24 | 2021-06-25 | 美光科技公司 | 存储器子系统中奇偶校验数据的管理 |
US20220066876A1 (en) * | 2020-08-27 | 2022-03-03 | Micron Technology, Inc. | Reduced parity data management |
TW202249018A (zh) * | 2021-01-07 | 2022-12-16 | 慧榮科技股份有限公司 | 儲存裝置、快閃記憶體控制器及其控制方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11847023B2 (en) | Flash memory apparatus and storage management method for flash memory | |
US10846173B2 (en) | Method for accessing flash memory module and associated flash memory controller and memory device | |
US10643733B2 (en) | Method, flashing memory controller, memory device for accessing 3D flash memory having multiple memory chips | |
US10324789B2 (en) | Flash memory controller and memory device for accessing flash memory module, and associated method | |
US10025662B2 (en) | Flash memory apparatus and storage management method for flash memory | |
US10348332B2 (en) | Method for accessing flash memory module and associated flash memory controller and memory device | |
CN110888825B (zh) | 在存储器系统中处理数据的设备和方法 | |
CN109857584B (zh) | 于记忆装置进行访问控制的方法、记忆装置和其控制器 | |
CN112463433A (zh) | 存取闪存模块的方法及相关的闪存控制器与记忆装置 | |
TWI698742B (zh) | 用來於一記憶裝置中進行存取控制之方法以及記憶裝置及其控制器 | |
CN113628655B (zh) | 用以存取闪存模块的方法、闪存控制器与电子装置 | |
CN111951855B (zh) | 存取闪存模块的方法及相关的闪存控制器与记忆装置 | |
TWI831701B (zh) | 存取快閃記憶體模組的方法及相關的快閃記憶體控制器與記憶裝置 | |
TWI836610B (zh) | 存取快閃記憶體模組的方法與相關的快閃記憶體控制器及記憶裝置 | |
US20240094912A1 (en) | Method for accessing flash memory module, flash memory controller, and memory device | |
TWI691967B (zh) | 解碼方法及相關的快閃記憶體控制器與電子裝置 | |
CN112214348B (zh) | 存取闪存模块的方法及相关的闪存控制器与记忆装置 |