TW201926043A - 用來於一記憶裝置中進行存取控制之方法以及記憶裝置及其控制器 - Google Patents
用來於一記憶裝置中進行存取控制之方法以及記憶裝置及其控制器 Download PDFInfo
- Publication number
- TW201926043A TW201926043A TW108106296A TW108106296A TW201926043A TW 201926043 A TW201926043 A TW 201926043A TW 108106296 A TW108106296 A TW 108106296A TW 108106296 A TW108106296 A TW 108106296A TW 201926043 A TW201926043 A TW 201926043A
- Authority
- TW
- Taiwan
- Prior art keywords
- fault
- disk array
- memory
- read
- symbols
- Prior art date
Links
Landscapes
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本發明提供一種用來於一記憶裝置中進行存取控制之方法以及相關之記憶裝置及其控制器。該方法可包含:依據至少一預定排列型樣,分別將複數組符元寫入一記憶體的複數個儲存區,作為複數個容錯式磁碟陣列群組;以及利用該記憶裝置中之一容錯式磁碟陣列引擎電路進行關於資料保護之複數個運作,例如:決定對應於該至少一預定排列型樣的一系列讀取型樣;依據該系列讀取型樣中之一讀取型樣,從該複數個容錯式磁碟陣列群組中之每一容錯式磁碟陣列群組讀取複數個符元;以及對該複數個符元進行互斥或運作,以將該複數個符元轉換成至少一互斥或結果。
Description
本發明係有關於快閃記憶體(Flash memory)之存取(access),尤指一種用來於一記憶裝置中進行存取控制之方法以及相關之記憶裝置及其控制器。
近年來由於記憶體的技術不斷地發展,各種可攜式或非可攜式記憶裝置(例如:符合SD/MMC、CF、MS、XD或UFS標準之記憶卡;又例如:固態硬碟;又例如:符合UFS或EMMC規格之嵌入式(embedded)儲存裝置)被廣泛地實施於諸多應用中。因此,這些記憶裝置中之記憶體的存取控制遂成為相當熱門的議題。
以常用的NAND型快閃記憶體而言,其主要可區分為單階細胞(single level cell, SLC)與多階細胞(multiple level cell, MLC)兩大類之快閃記憶體。單階細胞快閃記憶體中之每個被當作記憶細胞(memory cell)的電晶體只有兩種電荷值,分別用來表示邏輯值0與邏輯值1。另外,多階細胞快閃記憶體中之每個被當作記憶單元的電晶體的儲存能力則被充分利用,係採用較高的電壓來驅動,以透過不同級別的電壓在一個電晶體中記錄至少兩組位元資訊(諸如00、01、11、10);理論上,多階細胞快閃記憶體的記錄密度可以達到單階細胞快閃記憶體的記錄密度之至少兩倍,這對於曾經在發展過程中遇到瓶頸的NAND型快閃記憶體之相關產業而言,是非常好的消息。
相較於單階細胞快閃記憶體,由於多階細胞快閃記憶體之價格較便宜,並且在有限的空間裡可提供較大的容量,故多階細胞快閃記憶體很快地成為市面上之記憶裝置競相採用的主流。然而,多階細胞快閃記憶體的不穩定性所導致的問題也一一浮現。為了確保記憶裝置對快閃記憶體之存取控制能符合相關規範,快閃記憶體的控制器通常備有某些管理機制以妥善地管理資料之存取。
依據相關技術,有了這些管理機制的記憶裝置還是有不足之處。例如:因應某些類型的資料保護需求,硬體架構可能變得複雜;又例如:因應某些類型的資料保護需求,大量的資料存取可導致記憶裝置的整體效能降低。因此,需要一種新穎的方法及相關架構,以在沒有副作用或較不可能帶來副作用之狀況下提昇記憶裝置之效能。
本發明之一目的在於提供一種用來於一記憶裝置中進行存取控制之方法以及相關之記憶裝置及其控制器,以解決上述問題。
本發明之另一目的在於提供一種用來於一記憶裝置中進行存取控制之方法以及相關之記憶裝置及其控制器,以在沒有副作用或較不可能帶來副作用之狀況下達到記憶裝置之最佳化(optimal)效能。
本發明之至少一實施例提供一種用來於一記憶裝置中進行存取控制之方法,其中該記憶裝置包含一非揮發性記憶體(non-volatile memory, NV memory),且該非揮發性記憶體包含至少一非揮發性記憶體元件(NV memory element)。該方法可包含:依據至少一預定排列型樣,分別將複數組符元寫入一記憶體的複數個儲存區,作為複數個容錯式磁碟陣列(Redundant Array of Independent Disks, RAID)群組,以供進行於存取(access)該非揮發性記憶體時的資料保護,其中該記憶體是揮發性記憶體(volatile memory)、且係位於該記憶裝置中;利用該記憶裝置中之一容錯式磁碟陣列引擎電路決定對應於該至少一預定排列型樣的一系列讀取型樣,其中該記憶體係用來提供儲存空間給該容錯式磁碟陣列引擎電路;利用該容錯式磁碟陣列引擎電路依據該系列讀取型樣中之一讀取型樣,從該複數個容錯式磁碟陣列群組中之每一容錯式磁碟陣列群組讀取複數個符元;以及利用該容錯式磁碟陣列引擎電路對該複數個符元進行互斥或(exclusive-OR, XOR)運作,以將該複數個符元轉換成對應於該容錯式磁碟陣列群組之至少一互斥或結果,其中該至少一互斥或結果係用來進行資料保護。
本發明之至少一實施例提供一種記憶裝置,其可包含:一非揮發性記憶體,用來儲存資訊,其中該非揮發性記憶體包含至少一非揮發性記憶體元件;以及一控制器,耦接至該非揮發性記憶體,用來控制該記憶裝置之運作。該控制器可包含一控制邏輯電路,該控制邏輯電路係耦接至該非揮發性記憶體,且可用來控制該非揮發性記憶體,其中該控制邏輯電路包含:一容錯式磁碟陣列引擎電路,用來進行資料保護;以及一記憶體,用來提供儲存空間給該容錯式磁碟陣列引擎電路,其中該記憶體是揮發性記憶體。該控制器可另包含一處理電路,而該處理電路係耦接至該控制邏輯電路,且可依據來自一主裝置的一指令控制該控制器,以容許該主裝置透過該控制器存取該非揮發性記憶體。例如,在該處理電路的控制下,該控制器可進行下列運作:依據至少一預定排列型樣,分別將複數組符元寫入該記憶體的複數個儲存區,作為複數個容錯式磁碟陣列群組,以供進行於存取該非揮發性記憶體時的資料保護;利用該容錯式磁碟陣列引擎電路決定對應於該至少一預定排列型樣的一系列讀取型樣;利用該容錯式磁碟陣列引擎電路依據該系列讀取型樣中之一讀取型樣,從該複數個容錯式磁碟陣列群組中之每一容錯式磁碟陣列群組讀取複數個符元;以及利用該容錯式磁碟陣列引擎電路對該複數個符元進行互斥或運作,以將該複數個符元轉換成對應於該容錯式磁碟陣列群組之至少一互斥或結果,其中該至少一互斥或結果係用來進行資料保護。
本發明之至少一實施例提供一種記憶裝置之控制器,其中該記憶裝置包含該控制器與一非揮發性記憶體,且該非揮發性記憶體包含至少一非揮發性記憶體元件。該控制器可包含一控制邏輯電路,該控制邏輯電路係耦接至該非揮發性記憶體,且可用來控制該非揮發性記憶體,其中該控制邏輯電路包含:一容錯式磁碟陣列引擎電路,用來進行資料保護;以及一記憶體,用來提供儲存空間給該容錯式磁碟陣列引擎電路,其中該記憶體是揮發性記憶體。該控制器可另包含一處理電路,而該處理電路係耦接至該控制邏輯電路,且可依據來自一主裝置的一指令控制該控制器,以容許該主裝置透過該控制器存取該非揮發性記憶體。例如,在該處理電路的控制下,該控制器可進行下列運作:依據至少一預定排列型樣,分別將複數組符元寫入該記憶體的複數個儲存區,作為複數個容錯式磁碟陣列群組,以供進行於存取該非揮發性記憶體時的資料保護;利用該容錯式磁碟陣列引擎電路決定對應於該至少一預定排列型樣的一系列讀取型樣;利用該容錯式磁碟陣列引擎電路依據該系列讀取型樣中之一讀取型樣,從該複數個容錯式磁碟陣列群組中之每一容錯式磁碟陣列群組讀取複數個符元;以及利用該容錯式磁碟陣列引擎電路對該複數個符元進行互斥或運作,以將該複數個符元轉換成對應於該容錯式磁碟陣列群組之至少一互斥或結果,其中該至少一互斥或結果係用來進行資料保護。
本發明的好處之一是,本發明能使該控制器於進行資料保護時妥善地進行存取控制,以在硬體資源有限的狀況下提升記憶裝置之效能。另外,依據本發明之實施例來實施並不會增加許多額外的成本。因此,相關技術的問題可被解決,且整體成本不會增加太多。相較於相關技術,本發明能在沒有副作用或較不可能帶來副作用之狀況下達到記憶裝置之最佳化效能。
I. 記憶體系統
請參考第1圖,第1圖為依據本發明一第一實施例之一種記憶裝置100與一主裝置(host device)50的示意圖,其中電子裝置10可包含主裝置50與記憶裝置100。例如:記憶裝置100可為一可攜式記憶裝置(例如:符合SD/MMC、CF、MS、或XD標準之記憶卡)或固態硬碟(solid state drive, SSD)。另外,主裝置50的例子可包含(但不限於):多功能行動電話(multifunctional mobile phone)、平板電腦(tablet)、可穿戴裝置(wearable device)、以及個人電腦(personal computer)諸如桌上型電腦與膝上型電腦。依據本實施例,記憶裝置100可包含一控制器諸如記憶體控制器110,且可另包含一非揮發性記憶體(non-volatile memory, NV memory)120,其中該控制器係用來存取(access)非揮發性記憶體120,且非揮發性記憶體120係用來儲存資訊。非揮發性記憶體120可包含複數個非揮發性記憶體元件(NV memory element)122-1、122-2、…與122-N,其中符號「N」可代表大於一的正整數。例如:非揮發性記憶體120可為一快閃記憶體(Flash memory),而非揮發性記憶體元件122-1、122-2、…與122-N可分別為複數個快閃記憶體晶片(Flash memory chip;可簡稱為快閃晶片)或複數個快閃記憶體裸晶(Flash memory die;可簡稱為快閃裸晶),但本發明並不限於此。
如第1圖所示,記憶體控制器110可包含處理電路諸如微處理器112、儲存器諸如一唯讀記憶體(read only memory, ROM)112M、控制邏輯電路114、緩衝記憶體116、與傳輸介面電路118,其中這些元件可透過一匯流排彼此耦接。緩衝記憶體116係以隨機存取記憶體(random access memory, RAM)來實施。另外,本實施例之唯讀記憶體112M係用來儲存一程式碼112C,而微處理器112則用來執行程式碼112C以控制對非揮發性記憶體120之存取。請注意,程式碼112C亦得儲存在緩衝記憶體116或任何形式之記憶體內。此外,控制邏輯電路114可用來控制非揮發性記憶體120。控制邏輯電路114可包含多個子電路,諸如一錯誤更正碼(Error Correction Code, ECC)電路114E、一容錯式磁碟陣列(Redundant Array of Independent Disks;可簡稱為「RAID」)引擎電路114R以及一記憶體114V,以同時或不同時地進行多個運作。例如:錯誤更正碼電路114E可用來進行錯誤更正碼編碼/解碼,且可包含一錯誤更正碼編碼器(ECC encoder)與一錯誤更正碼解碼器(ECC decoder),以供分別進行錯誤更正碼編碼與解碼;RAID引擎電路114R可用來進行資料保護,且可包含多個RAID引擎子電路,以供分別進行關於RAID的資料保護運作,其中該多個RAID引擎子電路中之每一者可包含多個計算單元(例如計算電路諸如加法器、乘法器等)與多個邏輯單元(例如邏輯電路諸如邏輯閘等);以及記憶體114V可提供儲存空間給RAID引擎電路114R,尤其可用來作為RAID引擎電路114R的專用記憶體,其中記憶體114V可實施為揮發性記憶體(volatile memory)諸如靜態隨機存取記憶體(Static RAM, SRAM);但本發明不限於此。傳輸介面電路118可符合一特定通訊標準(諸如串列高級技術附件(Serial Advanced Technology Attachment, SATA)標準、通用序列匯流排(Universal Serial Bus, USB)標準、快捷外設互聯(Peripheral Component Interconnect Express,PCIE)標準或非揮發性記憶體快捷(Non-Volatile Memory Express,NVME)標準)且可依據該特定通訊標準進行通訊。
於本實施例中,主裝置50可藉由傳送複數個主裝置指令(host command)與對應的邏輯位址予記憶體控制器110來間接地存取記憶裝置100中之非揮發性記憶體120。記憶體控制器110接收該複數個主裝置指令與邏輯位址,並將該複數個主裝置指令分別轉譯成記憶體操作指令(簡稱操作指令),再以操作指令控制非揮發性記憶體120讀取、寫入(write)/編程(Program)非揮發性記憶體120當中特定實體位址之記憶單位(memory unit)或資料頁(page),其中實體位址對應於邏輯位址。例如:記憶體控制器110可產生或更新至少一邏輯對實體位址映射表(logical-to-physical address mapping table)來管理實體位址與邏輯位址之間的關係。於非揮發性記憶體120中,非揮發性記憶體元件122-1、122-2、…與122-N中之任一非揮發性記憶體元件122-n(符號「n」可代表區間[1, N]中之任一整數)可包含多個區塊(block),且該多個區塊中之一區塊可包含且可記錄特定數量的頁,其中記憶體控制器110對非揮發性記憶體120進行抹除資料之運作的最小單位可為區塊,而記憶體控制器110對非揮發性記憶體120進行寫入資料之運作的最小單位可為頁,但本發明不限於此。
II. 對應於即時需求的存取控制
依據某些實施例,於寫入時,記憶體控制器110可利用該錯誤更正碼編碼器對原始資料(諸如使用者資料)進行錯誤更正碼編碼以保護該原始資料,尤其可產生對應於該原始資料之一碼字(codeword),其中該碼字包含該原始資料及其奇偶校驗碼(parity-check code);並且,於讀取時,記憶體控制器110可利用該錯誤更正碼解碼器對該碼字之讀出版本進行錯誤更正碼解碼,以產生讀出資料,其中該錯誤更正碼解碼器可偵測該讀出資料中之任何錯誤(若存在),並且可嘗試進行錯誤更正以取得該讀出資料。
第2圖為依據本發明一實施例之一種用來於一記憶裝置中進行存取控制之方法的資料保護方案的示意圖。該方法可應用於資料儲存裝置100,且可應用於該控制器諸如記憶體控制器110。包含資料202與奇偶校驗碼232的碼字200可作為該碼字之一例。為了更好的理解,資料202的多個子集合可包含資料210、220與231,且資料231與奇偶校驗碼232的組合可視為組合資料230。資料210、資料220、組合資料230中之每一者的資料量可為64 KB(kilobyte;千位元組),資料231與奇偶校驗碼232的資料量可分別為60 KB與4 KB,且互斥或(exclusive-OR;簡稱為「XOR」)結果235與240中之每一者的資料量可為64 KB,但本發明不限於此。依據本實施例,於寫入時,記憶體控制器110可利用RAID引擎電路114R(例如其內的至少一RAID引擎子電路)對資料210與220進行XOR運作以產生XOR結果235、以及對組合資料230與XOR結果235進行XOR運作以產生XOR結果240,以保護碼字200,其中這些XOR運作可為位元互斥或(bitwise XOR;簡稱為「位元XOR」)運作。
舉例來說,非揮發性記憶體120的編程失敗範圍(programing fail range)可為64 KB(或其它大小),且記憶體114V可包含一儲存區,其大小可和該編程失敗範圍的大小相同。於編程資料210的期間,RAID引擎電路114R可將資料210暫時地儲存於該儲存區。當資料210的編程失敗發生時,RAID引擎電路114R可直接將該儲存區中之資料210編程至非揮發性記憶體120。另外,於編程資料220的期間,RAID引擎電路114R可將該儲存區中之資料210逐位元地(bit by bit)更新為XOR結果235。當資料220的編程失敗發生時,RAID引擎電路114R可對資料210與XOR結果235進行XOR運作,尤其可逐位元地將資料210與XOR結果235轉換為資料220,以將資料220編程至非揮發性記憶體120。此外,於編程組合資料230的期間,RAID引擎電路114R可將該儲存區中之XOR結果235逐位元地更新為XOR結果240。當組合資料230的編程失敗發生時,RAID引擎電路114R可對資料220與XOR結果240進行XOR運作,尤其可逐位元地將資料220與XOR結果240轉換為組合資料230,以將組合資料230編程至非揮發性記憶體120。
請注意,非揮發性記憶體120的讀取失敗範圍(reading fail range)可異於該編程失敗範圍,例如可為4 KB(或其它大小)。關於透過RAID機制對碼字200進行資料保護,由於該讀取失敗範圍和該編程失敗範圍(例如分別為4 KB與64 KB)可彼此相異,故分別對應於寫入與讀取之資料保護需求(例如分別對應於64 KB與4 KB之資料保護)可彼此相異。記憶體控制器110(例如微處理器112或RAID引擎電路114R)可進行對應於即時需求的存取控制,尤其可動態地調整RAID引擎電路114R的參數設定,使RAID引擎電路114R具有對應於目前資料保護需求(例如對應於寫入之資料保護需求、或對應於讀取之資料保護需求)之合適的組態。依據某些實施例,記憶體控制器110(例如微處理器112或RAID引擎電路114R)可依據一或多個預定排列型樣(predetermined arrangement pattern)將至少一碼字(例如一或多個碼字)當中的多個符元(symbol)寫入一記憶體諸如記憶體114V,以滿足各種不同類型的需求、及/或符合各種不同類型的組態,使記憶體控制器110於進行資料保護(諸如RAID資料保護)時具備極佳的效能。
第3圖繪示該方法於一實施例中之可組態(configurable)資料群組管理方案。例如:本實施例的資料群組可包含四個RAID群組G(0)、G(1)、G(2)與G(3),且可分別儲存於記憶體114V中之相對應的資料群組儲存區,其中RAID群組G(0)、G(1)、G(2)與G(3)中之每一資料群組的資料量可為64 KB或大約64 KB,但本發明不限於此。記憶體114V可包含多個記憶體元件,諸如16個記憶體存取單位{U(0), U(1), U(2), U(3), U(4), U(5), U(6), U(7), U(8), U(9), U(10), U(11), U(12), U(13), U(14), U(15)},其可被同時地且平行地存取。為了更好的理解,假設RAID群組G(0)、G(1)、G(2)與G(3)中之每一資料群組包含四個子群組,例如RAID群組G(0)可包含子群組SG(0)、SG(1)、SG(2)與SG(3),其中該四個子群組的大小可彼此相同。基於該一或多個預定排列型樣,記憶體控制器110(例如微處理器112或RAID引擎電路114R)可因應各種不同類型的需求、及/或符合各種不同類型的組態,迅速地讀取一或多個資料群組的不同的部分,以進行資料保護。
第4至7圖分別繪示該方法於一實施例中所使用之RAID群組G(0)之子群組SG(0)、SG(1)、SG(2)與SG(3)的預定排列型樣。例如:群組大小可為64 KB或大約64 KB,記憶體114V中之儲存區可被區分為四個子區以供分別儲存RAID群組G(0)、G(1)、G(2)與G(3),且RAID群組G(1)、G(2)與G(3)中之任一者的預定排列型樣可類似或等同於RAID群組G(0)的預定排列型樣。以RAID群組G(0)為例,帶有索引i與j的符元C(i, j)可代表RAID群組G(0)之多個資料塊(data chunk)中之第i塊的第j個符元,且空白的部分可代表「不予理會」(Don't Care)。如第4至7圖所示,符元C(i, j)的例子可包含(但不限於):
{{C(0, 0), C(0, 1), …, C(0, 256)}, {C(1, 0), C(1, 1), …, C(1, 256)},
{C(2, 0), C(2, 1), …, C(2, 256)}, {C(3, 0), C(3, 1), …, C(3, 256)},
{C(4, 0), C(4, 1), …, C(4, 256)}, {C(5, 0), C(5, 1), …, C(5, 256)},
{C(6, 0), C(6, 1), …, C(6, 256)}, {C(7, 0), C(7, 1), …, C(7, 256)},
{C(8, 0), C(8, 1), …, C(8, 256)}, {C(9, 0), C(9, 1), …, C(9, 256)},
{C(10, 0), C(10, 1), …, C(10, 256)}, {C(11 0), C(11, 1), …, C(11, 256)},
{C(12, 0), C(12, 1), …, C(12, 256)}, {C(13, 0), C(13, 1), …, C(13, 256)},
{C(14, 0), C(14, 1), …, C(14, 256)}, {C(15, 0), C(15, 1), …, C(15, 256)}};
其中索引i可為區間[0, 15]中之任一整數,且索引j可為區間[0, 256]中之任一整數,但本發明不限於此。依據某些實施例,符元C(i, j)的索引i、及/或索引j的範圍可予以變化。另外,第4至7圖中之各種不同類型的陰影可指出預定排列型樣中之符元排列的趨勢,但本發明不限於此。依據某些實施例,第4至7圖所示之預定排列型樣可予以變化。
表1
{{C(0, 0), C(0, 1), …, C(0, 256)}, {C(1, 0), C(1, 1), …, C(1, 256)},
{C(2, 0), C(2, 1), …, C(2, 256)}, {C(3, 0), C(3, 1), …, C(3, 256)},
{C(4, 0), C(4, 1), …, C(4, 256)}, {C(5, 0), C(5, 1), …, C(5, 256)},
{C(6, 0), C(6, 1), …, C(6, 256)}, {C(7, 0), C(7, 1), …, C(7, 256)},
{C(8, 0), C(8, 1), …, C(8, 256)}, {C(9, 0), C(9, 1), …, C(9, 256)},
{C(10, 0), C(10, 1), …, C(10, 256)}, {C(11 0), C(11, 1), …, C(11, 256)},
{C(12, 0), C(12, 1), …, C(12, 256)}, {C(13, 0), C(13, 1), …, C(13, 256)},
{C(14, 0), C(14, 1), …, C(14, 256)}, {C(15, 0), C(15, 1), …, C(15, 256)}};
其中索引i可為區間[0, 15]中之任一整數,且索引j可為區間[0, 256]中之任一整數,但本發明不限於此。依據某些實施例,符元C(i, j)的索引i、及/或索引j的範圍可予以變化。另外,第4至7圖中之各種不同類型的陰影可指出預定排列型樣中之符元排列的趨勢,但本發明不限於此。依據某些實施例,第4至7圖所示之預定排列型樣可予以變化。
表1
表1展示RAID引擎電路114R的相關參數的例子,但本發明不限於此。記憶體控制器110可設定參數EncGrpSize(例如設定為多個預定值{D0, D1, D2, D3, D4}中之任一者)以控制RAID引擎電路114R的組態,且可透過參數EncGrpSize控制RAID引擎電路114R進行對應於參數EncGrpSize之資料保護運作。例如:當EncGrpSize = D0,一資料群組(例如RAID群組)的群組大小可等於1塊(諸如該多個資料塊中之第0塊{C(0, 0), C(0, 1), …, C(0, 256)})的大小,群組索引可為區間[0, 63]中之任一整數,且再折率(re-fold ratio)可等於1;當EncGrpSize = D1,一資料群組(例如RAID群組)的群組大小可等於2塊(諸如該多個資料塊中之第0塊{C(0, 0), C(0, 1), …, C(0, 256)}與第1塊{C(1, 0), C(1, 1), …, C(1, 256)})的大小,群組索引可為區間[0, 31]中之任一整數,且再折率可為1或2;依此類推。
依據某些實施例,一資料群組(例如RAID群組G(0)、G(2)與G(3)中之任一者,諸如RAID群組G(0))中之符元C(i, j)的索引i與j的範圍的例子可包含(但不限於):
(1a). 當EncGrpSize = D4,索引i可為區間[0, 15]中之任一整數,且索引j可為區間[0, 256]中之任一整數,如第4至7圖所示;
(1b). 當EncGrpSize = D3,索引i可為區間[0, 7]中之任一整數,且索引j可為區間[0, 256]中之任一整數,如第4至5圖所示;
(1c). 當EncGrpSize = D2,索引i可為區間[0, 3]中之任一整數,且索引j可為區間[0, 256]中之任一整數,如第4圖所示;
(1d). 當EncGrpSize = D1,索引i可為區間[0, 1]中之任一整數,且索引j可為區間[0, 256]中之任一整數,其中在第4圖中凡是索引在上列區間以外之符元可被忽略;
(1e). 當EncGrpSize = D0,索引i可等於0,且索引j可為區間[0, 256]中之任一整數,其中在第4圖中凡是索引在上列區間或範圍以外之符元可被忽略;
(2a). 當EncGrpSize = D4,索引i可為區間[0, 15]中之任一整數,且索引j可為區間[0, 255]中之任一整數,其中在第4至7圖中凡是索引在上列區間以外之符元可被忽略;
(2b). 當EncGrpSize = D3,索引i可為區間[0, 7]中之任一整數,且索引j可為區間[0, 255]中之任一整數,其中在第4至5圖中凡是索引在上列區間以外之符元可被忽略;
(2c). 當EncGrpSize = D2,索引i可為區間[0, 3]中之任一整數,且索引j可為區間[0, 255]中之任一整數,其中在第4圖中凡是索引在上列區間以外之符元可被忽略;
(2d). 當EncGrpSize = D1,索引i可為區間[0, 1]中之任一整數,且索引j可為區間[0, 255]中之任一整數,其中在第4圖中凡是索引在上列區間以外之符元可被忽略;以及
(2e). 當EncGrpSize = D0,索引i可等於0,且索引j可為區間[0, 255]中之任一整數,其中在第4圖中凡是索引在上列區間或範圍以外之符元可被忽略。
(1a). 當EncGrpSize = D4,索引i可為區間[0, 15]中之任一整數,且索引j可為區間[0, 256]中之任一整數,如第4至7圖所示;
(1b). 當EncGrpSize = D3,索引i可為區間[0, 7]中之任一整數,且索引j可為區間[0, 256]中之任一整數,如第4至5圖所示;
(1c). 當EncGrpSize = D2,索引i可為區間[0, 3]中之任一整數,且索引j可為區間[0, 256]中之任一整數,如第4圖所示;
(1d). 當EncGrpSize = D1,索引i可為區間[0, 1]中之任一整數,且索引j可為區間[0, 256]中之任一整數,其中在第4圖中凡是索引在上列區間以外之符元可被忽略;
(1e). 當EncGrpSize = D0,索引i可等於0,且索引j可為區間[0, 256]中之任一整數,其中在第4圖中凡是索引在上列區間或範圍以外之符元可被忽略;
(2a). 當EncGrpSize = D4,索引i可為區間[0, 15]中之任一整數,且索引j可為區間[0, 255]中之任一整數,其中在第4至7圖中凡是索引在上列區間以外之符元可被忽略;
(2b). 當EncGrpSize = D3,索引i可為區間[0, 7]中之任一整數,且索引j可為區間[0, 255]中之任一整數,其中在第4至5圖中凡是索引在上列區間以外之符元可被忽略;
(2c). 當EncGrpSize = D2,索引i可為區間[0, 3]中之任一整數,且索引j可為區間[0, 255]中之任一整數,其中在第4圖中凡是索引在上列區間以外之符元可被忽略;
(2d). 當EncGrpSize = D1,索引i可為區間[0, 1]中之任一整數,且索引j可為區間[0, 255]中之任一整數,其中在第4圖中凡是索引在上列區間以外之符元可被忽略;以及
(2e). 當EncGrpSize = D0,索引i可等於0,且索引j可為區間[0, 255]中之任一整數,其中在第4圖中凡是索引在上列區間或範圍以外之符元可被忽略。
第8圖繪示第2圖所示方法於一實施例中之可組態XOR控制方案,其中於採用第3圖所示之可組態資料群組管理方案時,記憶體控制器110可同時採用第8圖所示之可組態XOR控制方案。假設再折率等於16,且16個記憶體存取單位{U(0), U(1), U(2), U(3), U(4), U(5), U(6), U(7), U(8), U(9), U(10), U(11), U(12), U(13), U(14), U(15)}被同時地讀取。記憶體控制器110(例如微處理器112)可利用RAID引擎電路114R同時地讀取多個符元(諸如16個符元)作為符元{C(0), C(1), C(2), C(3), C(4), C(5), C(6), C(7), C(8), C(9), C(10), C(11), C(12), C(13), C(14), C(15)},且可立即對{C(0), C(1), C(2), C(3), C(4), C(5), C(6), C(7), C(8), C(9), C(10), C(11), C(12), C(13), C(14), C(15)}進行位元XOR運作,以進行資料保護。例如:於第0個循環(cycle),RAID引擎電路114R可讀取符元{C(0, 0), C(7, 0), C(6, 0), C(5, 0), C(4, 0), C(3, 0), C(2, 0), C(1, 0), C(8, 0), C(15, 0), C(14, 0), C(13, 0), C(12, 0), C(11, 0), C(10, 0), C(9, 0)}作為符元{C(0), C(1), C(2), C(3), C(4), C(5), C(6), C(7), C(8), C(9), C(10), C(11), C(12), C(13), C(14), C(15)};於第1個循環,RAID引擎電路114R可讀取符元{C(1, 1), C(0, 1), C(7, 1), C(6, 1), C(5, 1), C(4, 1), C(3, 1), C(2, 1), C(9, 1), C(8, 1), C(15, 1), C(14, 1), C(13, 1), C(12, 1), C(11, 1), C(10, 1)}作為符元{C(0), C(1), C(2), C(3), C(4), C(5), C(6), C(7), C(8), C(9), C(10), C(11), C(12), C(13), C(14), C(15)};依此類推。這樣,RAID引擎電路114R於一系列循環(諸如第0個循環、第1個循環等)的讀取型樣可對應於第4至7圖中之各種不同類型的陰影所指出的預定排列型樣。
依據某些實施例,該再折率可予以變化,且被同時地讀取之記憶體存取單位的個數可予以變化。例如:再折率可等於8,且8個記憶體存取單位可被同時地讀取。記憶體控制器110(例如微處理器112)可利用RAID引擎電路114R同時地讀取該多個符元(諸如8個符元)作為符元{C(0), C(1), C(2), C(3), C(4), C(5), C(6), C(7)},且可立即對{C(0), C(1), C(2), C(3), C(4), C(5), C(6), C(7)}進行位元XOR運作,以進行資料保護。
第9圖繪示該方法於另一實施例中之可組態XOR控制方案,其中於採用第3圖所示之可組態資料群組管理方案時,記憶體控制器110可同時採用第9圖所示之可組態XOR控制方案。假設再折率等於8,且8個記憶體存取單位(諸如記憶體存取單位{U(0), U(2), U(4), U(6), U(8), U(10), U(12), U(14)}或記憶體存取單位{U(1), U(3), U(5), U(7), U(9), U(11), U(13), U(15)})被同時地讀取。記憶體控制器110(例如微處理器112)可利用RAID引擎電路114R同時地讀取該多個符元(諸如8個符元)作為符元{C(0), C(1), C(2), C(3), C(4), C(5), C(6), C(7), C(8), C(9), C(10), C(11), C(12), C(13), C(14), C(15)}中之多組符元中的一組,諸如兩組符元{C(0), C(2), C(4), C(6), C(8), C(10), C(12), C(14)}與{C(1), C(3), C(5), C(7), C(9), C(11), C(13), C(15)}中的一組,且可立即對{C(0), C(1), C(2), C(3), C(4), C(5), C(6), C(7), C(8), C(9), C(10), C(11), C(12), C(13), C(14), C(15)}進行位元XOR運作,以進行資料保護。例如:於第0個循環,RAID引擎電路114R可讀取符元{C(0, 0), C(6, 0), C(4, 0), C(2, 0), C(8, 0), C(14, 0), C(12, 0), C(10, 0)}作為一第一組符元諸如符元{C(0), C(2), C(4), C(6), C(8), C(10), C(12), C(14)},其中一第二組符元諸如符元{C(1), C(3), C(5), C(7), C(9), C(11), C(13), C(15)}及其XOR結果可視為「不予理會」;於第1個循環,RAID引擎電路114R可讀取符元{C(0, 1), C(6, 1), C(4, 1), C(2, 1), C(8, 1), C(14, 1), C(12, 1), C(10, 1)}作為該第二組符元諸如符元{C(1), C(3), C(5), C(7), C(9), C(11), C(13), C(15)},其中該第一組符元諸如符元{C(0), C(2), C(4), C(6), C(8), C(10), C(12), C(14)}及其XOR結果可視為「不予理會」;依此類推。這樣,RAID引擎電路114R於一系列循環(諸如第0個循環、第1個循環等)的讀取型樣可對應於第4至7圖中之各種不同類型的陰影所指出的預定排列型樣。
第10圖繪示該方法於另一實施例中之可組態資料群組管理方案。例如:本實施例的資料群組可包含八個RAID群組G’(0)、G’(1)、G’(2)、G’(3)、G’(4)、G’(5)、G’(6)與G’(7),且可分別儲存於記憶體114V中之相對應的資料群組儲存區,其中RAID群組G’(0)、G’(1)、G’(2)、G’(3)、G’(4)、G’(5)、G’(6)與G’(7)中之每一資料群組的資料量可為32 KB或大約32 KB,但本發明不限於此。為了更好的理解,假設RAID群組G’(0)、G’(1)、G’(2)、G’(3)、G’(4)、G’(5)、G’(6)與G’(7)中之每一資料群組包含兩個子群組,例如RAID群組G’(0)可包含子群組SG’(0)與SG’(1),其中該兩個子群組的大小可彼此相同,且第10圖中之符號「X」可代表「不予理會」。基於該一或多個預定排列型樣,記憶體控制器110(例如微處理器112或RAID引擎電路114R)可因應各種不同類型的需求、及/或符合各種不同類型的組態,迅速地讀取一或多個資料群組的不同的部分,以進行資料保護。
依據某些實施例,子群組SG’(0)與SG’(1)的預定排列型樣可分別等同於子群組SG(0)與SG(1)的預定排列型樣,諸如第4圖所示的預定排列型樣與第5圖所示的預定排列型樣。為了更好的理解,假設子群組SG’(0)與SG’(1)分別等同於子群組SG(0)與SG(1)。例如:群組大小可為32 KB或大約32 KB,記憶體114V中之儲存區可被區分為八個子區以供分別儲存RAID群組G’(0)、G’(1)、G’(2)、G’(3)、G’(4)、G’(5)、G’(6)與G’(7),且RAID群組G’(1)、G’(2)、G’(3)、G’(4)、G’(5)、G’(6)與G’(7)中之任一者的預定排列型樣可類似或等同於RAID群組G’(0)的預定排列型樣。以RAID群組G’(0)為例,帶有索引i與j的符元C(i, j)可代表RAID群組G’(0)之多個資料塊中之第i塊的第j個符元。這些實施例中之符元C(i, j)的例子可包含(但不限於):
{{C(0, 0), C(0, 1), …, C(0, 256)}, {C(1, 0), C(1, 1), …, C(1, 256)},
{C(2, 0), C(2, 1), …, C(2, 256)}, {C(3, 0), C(3, 1), …, C(3, 256)},
{C(4, 0), C(4, 1), …, C(4, 256)}, {C(5, 0), C(5, 1), …, C(5, 256)},
{C(6, 0), C(6, 1), …, C(6, 256)}, {C(7, 0), C(7, 1), …, C(7, 256)}}。
這些實施例與前述實施例相仿的內容在此不重複贅述。
{{C(0, 0), C(0, 1), …, C(0, 256)}, {C(1, 0), C(1, 1), …, C(1, 256)},
{C(2, 0), C(2, 1), …, C(2, 256)}, {C(3, 0), C(3, 1), …, C(3, 256)},
{C(4, 0), C(4, 1), …, C(4, 256)}, {C(5, 0), C(5, 1), …, C(5, 256)},
{C(6, 0), C(6, 1), …, C(6, 256)}, {C(7, 0), C(7, 1), …, C(7, 256)}}。
這些實施例與前述實施例相仿的內容在此不重複贅述。
第11圖繪示該方法於另一實施例中之可組態XOR控制方案,其中於採用第10圖所示之可組態資料群組管理方案時,記憶體控制器110可同時採用第11圖所示之可組態XOR控制方案。假設再折率等於8,且8個記憶體存取單位{U(0), U(1), U(2), U(3), U(4), U(5), U(6), U(7)}被同時地讀取。記憶體控制器110(例如微處理器112)可利用RAID引擎電路114R同時地讀取該多個符元(諸如8個符元)作為符元{C(0), C(1), C(2), C(3), C(4), C(5), C(6), C(7)},且可立即對{C(0), C(1), C(2), C(3), C(4), C(5), C(6), C(7)}進行位元XOR運作,以進行資料保護。例如:於第0個循環,RAID引擎電路114R可讀取符元{C(0, 0), C(7, 0), C(6, 0), C(5, 0), C(4, 0), C(3, 0), C(2, 0), C(1, 0)}作為符元{C(0), C(1), C(2), C(3), C(4), C(5), C(6), C(7)};於第1個循環,RAID引擎電路114R可讀取符元{C(1, 1), C(0, 1), C(7, 1), C(6, 1), C(5, 1), C(4, 1), C(3, 1), C(2, 1)}作為符元{C(0), C(1), C(2), C(3), C(4), C(5), C(6), C(7)};依此類推。這樣,RAID引擎電路114R於一系列循環(諸如第0個循環、第1個循環等)的讀取型樣可對應於第4至5圖中之各種不同類型的陰影所指出的預定排列型樣。
第12圖繪示該方法於一實施例中之工作流程300。例如:在該處理電路諸如微處理器112的控制下,該控制器諸如記憶體控制器110可進行工作流程300的運作。
於步驟S30中,記憶體控制器110(例如微處理器112或RAID引擎電路114R)可依據至少一預定排列型樣(例如:該一或多個預定排列型樣;可通稱為「該預定排列型樣」),分別將複數組符元寫入該記憶體(諸如記憶體114V)的複數個儲存區(諸如上述資料群組儲存區),作為複數個RAID群組,以供進行於存取非揮發性記憶體120時的資料保護。依據本實施例,該複數個RAID群組可為表1之一特定列(row)中之一組群組索引所代表的RAID群組,其中該特定列對應於指派給參數EncGrpSize之某一預定值(諸如預定值{D0, D1, D2, D3, D4}的其中之一)。例如:EncGrpSize = D4,且該複數個RAID群組可包含上述四個RAID群組G(0)、G(1)、G(2)與G(3)。又例如:EncGrpSize = D3,且該複數個RAID群組可包含上述八個RAID群組G’(0)、G’(1)、G’(2)、G’(3)、G’(4)、G’(5)、G’(6)與G’(7)。
於步驟S32中,記憶體控制器110(例如RAID引擎電路114R)可依據目前需求(例如對應於寫入之資料保護需求、或對應於讀取之資料保護需求),決定對應於該目前需求的再摺模式,其中該再摺模式係關於RAID引擎電路114R所進行的資料保護運作。依據本實施例,該再摺模式可為表1之該特定列中之一組再折率中之一再折率。由於參數EncGrpSize已被記憶體控制器110(例如微處理器112)所預先決定且已被傳送至RAID引擎電路114R,故記憶體控制器110可利用RAID引擎電路114R決定對應於該目前需求的再摺模式,以達到最佳的存取效能。例如:EncGrpSize = D4,且該再折率可為再折率{1, 2, 4, 8, 16}的其中之一。又例如:EncGrpSize = D3,且該再折率可為再折率{1, 2, 4, 8}的其中之一。
於步驟S34中,記憶體控制器110(例如RAID引擎電路114R)可依據該再摺模式(諸如再折率),決定對應於該預定排列型樣的一系列讀取型樣。依據本實施例,記憶體控制器110可利用RAID引擎電路114R決定對應於該預定排列型樣的該系列讀取型樣。例如:EncGrpSize = D4且再折率等於16,該預定排列型樣可代表第4至7圖中之各種不同類型的陰影所指出的預定排列型樣,且該系列讀取型樣可代表RAID引擎電路114R於第8圖所示實施例中之該系列循環(諸如第0個循環、第1個循環等)的讀取型樣。又例如:EncGrpSize = D4且再折率等於8,該預定排列型樣可代表第4至7圖中之各種不同類型的陰影所指出的預定排列型樣,且該系列讀取型樣可代表RAID引擎電路114R於第9圖所示實施例中之該系列循環(諸如第0個循環、第1個循環等)的讀取型樣。又例如:EncGrpSize = D3且再折率等於8,該預定排列型樣可代表第4至5圖中之各種不同類型的陰影所指出的預定排列型樣,且該系列讀取型樣可代表RAID引擎電路114R於第11圖所示實施例中之該系列循環(諸如第0個循環、第1個循環等)的讀取型樣。
於步驟S36中,記憶體控制器110(例如RAID引擎電路114R)可依據該系列讀取型樣中之一讀取型樣,從該複數個RAID群組中之每一RAID群組讀取複數個符元。為了更好的理解,步驟S36的讀取運作的循環可視為一個讀取循環(例如:第8圖、第9圖與第11圖分別所示之實施例中之任一者的該系列循環(諸如第0個循環、第1個循環等)中之某一循環),且該讀取型樣可代表這個讀取循環之讀取型樣,但本發明不限於此。舉例來說,上述至少一預定排列型樣的符元排列可使各種不同狀況之任一狀況下的該讀取循環所讀取的符元分佈在記憶體114V的該多個記憶體元件(諸如記憶體存取單位{U(0), U(1), U(2), U(3), U(4), U(5), U(6), U(7), U(8), U(9), U(10), U(11), U(12), U(13), U(14), U(15)})中之不同的記憶體元件,且該讀取型樣可指向這些不同的記憶體元件。由於該多個記憶體元件可被同時地且平行地存取,故上述任一狀況下的該讀取循環所讀取的符元可被同時地讀取,這使得該複數個符元的讀取只需要單一個循環,尤其僅在該單一個循環(而非多個循環)中即可完成。因此,記憶體控制器110(例如RAID引擎電路114R)於進行關於RAID之資料保護時能達到極佳的效能。
於步驟S38中,記憶體控制器110(例如RAID引擎電路114R)可依據該再摺模式,對該複數個符元進行位元XOR運作,以將該複數個符元轉換成對應於該RAID群組之至少一XOR結果,其中上述至少一XOR結果可用來進行資料保護。
於步驟S40中,記憶體控制器110(例如RAID引擎電路114R)可依據分別對應於該複數個RAID群組之複數個XOR結果,進行RAID保護,以避免資料錯誤。例如:該複數個XOR結果可包含上述至少一XOR結果。
於步驟S42中,記憶體控制器110(例如微處理器112或RAID引擎電路114R)可檢查是否該RAID群組中的全部的符元均已讀取完畢,以決定是否停止或繼續讀取該RAID群組。依據本實施例,當決定繼續讀取該RAID群組時,記憶體控制器110(例如RAID引擎電路114R)可依據該系列讀取型樣中之一後續的讀取型樣,讀取該RAID群組中尚未被讀取的符元,以供進一步資料保護。當該RAID群組中的全部的符元均已讀取完畢,進入步驟S44,以停止讀取該RAID群組;否則,進入步驟S36,以繼續讀取該RAID群組。
於步驟S44中,記憶體控制器110(例如微處理器112或RAID引擎電路114R)可檢查是否處理完畢。例如:待處理的資訊包含複數個碼字,且記憶體控制器110可檢查是否該複數個碼字中之全部的碼字已被處理完畢,其中該複數個碼字的其中之一可包含步驟S30中所述之該複數組符元,但本發明不限於此。當處理完畢,結束工作流程300;否則,進入步驟S30。
依據本實施例,記憶體控制器110(例如微處理器112或RAID引擎電路114R)可依據上述至少一預定排列型樣(例如該一或多個預定排列型樣)將該複數個碼字當中的多個符元寫入該記憶體諸如記憶體114V,以滿足各種不同類型的需求、及/或符合各種不同類型的組態,使記憶體控制器110於進行資料保護(諸如RAID資料保護)時具備極佳的效能。例如:步驟S32中所述之目前需求是記憶裝置100的多個類型的需求(例如上述各種不同類型的需求,諸如對應於寫入之資料保護需求以及對應於讀取之資料保護需求)的其中之一,且記憶體控制器110(例如RAID引擎電路114R)可因應該多個類型的需求,動態地調整該再摺模式,且對應地調整該系列讀取型樣。本實施例與前述實施例相仿的內容在此不重複贅述。
依據某些實施例,記憶體控制器110(例如RAID引擎電路114R)可因應該多個類型的需求,動態地調整該系列讀取型樣,其中該系列讀取型樣對應於關於資料保護運作的再摺模式(諸如再摺率),該些資料保護運作是由RAID引擎電路114R所進行。這些實施例與前述實施例相仿的內容在此不重複贅述。
以上所述僅為本發明之較佳實施例,凡依本發明申請專利範圍所做之均等變化與修飾,皆應屬本發明之涵蓋範圍。
以上所述僅為本發明之較佳實施例,凡依本發明申請專利範圍所做之均等變化與修飾,皆應屬本發明之涵蓋範圍。
10‧‧‧電子裝置
50‧‧‧主裝置
100‧‧‧記憶裝置
110‧‧‧記憶體控制器
112‧‧‧微處理器
112C‧‧‧程式碼
112M‧‧‧唯讀記憶體
114‧‧‧控制邏輯電路
114E‧‧‧錯誤更正碼電路
114R‧‧‧RAID引擎電路
114V‧‧‧記憶體
116‧‧‧緩衝記憶體
118‧‧‧傳輸介面電路
120‧‧‧非揮發性記憶體
122-1,122-2,…,122-N‧‧‧非揮發性記憶體元件
200‧‧‧碼字
202,210,220,231‧‧‧資料
230‧‧‧組合資料
232‧‧‧奇偶校驗碼
235,240‧‧‧XOR結果
300‧‧‧工作流程
C(0),C(1),C(2),C(3),C(4),C(5),C(6),C(7),C(8),C(9),C(10),C(11),C(12),C(13),C(14),C(15),C(0,0),C(0,1),…,C(0,256),C(1,0),C(1,1),…,C(1,256),C(2,0),C(2,1),…,C(2,256),C(3,0),C(3,1),…,C(3,256),C(4,0),C(4,1),…,C(4,256),C(5,0),C(5,1),…,C(5,256),C(6,0),C(6,1),…,C(6,256),C(7,0),C(7,1),…,C(7,256),C(8,0),C(8,1),…,C(8,256),C(9,0),C(9,1),…,C(9,256),C(10,0),C(10,1),…,C(10,256),C(11 0),C(11,1),…,C(11,256),C(12,0),C(12,1),…,C(12,256),C(13,0),C(13,1),…,C(13,256),C(14,0),C(14,1),…,C(14,256),C(15,0),C(15,1),…,C(15,256)‧‧‧符元
G(0),G(1),G(2),G(3),G’(0),G’(1),G’(2),G’(3),G’(4),G’(5),G’(6),G’(7)‧‧‧RAID群組
SG(0),SG(1),SG(2),SG(3),SG’(0),SG’(1)‧‧‧子群組
S30,S32,S34,S36,S38,S40,S42,S44‧‧‧步驟
U(0),U(1),U(2),U(3),U(4),U(5),U(6),U(7),U(8),U(9),U(10),U(11),U(12),U(13),U(14),U(15)‧‧‧記憶體存取單位
第1圖為依據本發明一實施例之一種記憶裝置與一主裝置(host device)的示意圖。
第2圖為依據本發明一實施例之一種用來於一記憶裝置中進行存取控制之方法的資料保護方案的示意圖。
第3圖繪示該方法於一實施例中之可組態(configurable)資料群組管理方案,其中本實施例的資料群組可包含四個容錯式磁碟陣列(Redundant Array of Independent Disks;可簡稱為「RAID」)群組。
第4圖繪示該方法於一實施例中所使用之一RAID群組之一子群組的預定排列型樣。
第5圖繪示該RAID群組之另一子群組的預定排列型樣。
第6圖繪示該RAID群組之另一子群組的預定排列型樣。
第7圖繪示該RAID群組之另一子群組的預定排列型樣。
第8圖繪示第2圖所示方法於一實施例中之可組態互斥或(exclusive-OR;可簡稱為「XOR」)控制方案。
第9圖繪示該方法於另一實施例中之可組態XOR控制方案。
第10圖繪示該方法於另一實施例中之可組態資料群組管理方案,其中本實施例的資料群組可包含八個RAID群組。
第11圖繪示該方法於另一實施例中之可組態XOR控制方案。
第12圖繪示該方法於一實施例中之工作流程。
Claims (15)
- 一種用來於一記憶裝置中進行存取控制之方法,該記憶裝置包含一非揮發性記憶體(non-volatile memory, NV memory),該非揮發性記憶體包含至少一非揮發性記憶體元件(NV memory element),該方法包含有: 依據至少一預定排列型樣,分別將複數組符元寫入一記憶體的複數個儲存區,作為複數個容錯式磁碟陣列(Redundant Array of Independent Disks, RAID)群組,以供進行於存取(access)該非揮發性記憶體時的資料保護,其中該記憶體是揮發性記憶體(volatile memory)、且係位於該記憶裝置中; 利用該記憶裝置中之一容錯式磁碟陣列引擎電路依據對應於一目前需求的至少一參數,來決定對應於該至少一預定排列型樣的一系列讀取型樣,其中該記憶體係用來提供儲存空間給該容錯式磁碟陣列引擎電路;以及 利用該容錯式磁碟陣列引擎電路依據該系列讀取型樣中之一讀取型樣,從該複數個容錯式磁碟陣列群組中之每一容錯式磁碟陣列群組同時地讀取複數個符元、且立即對該複數個符元進行互斥或(exclusive-OR, XOR)運作以產生至少一互斥或結果,藉此加速該容錯式磁碟陣列群組之資料保護。
- 如申請專利範圍第1項所述之方法,其中利用該容錯式磁碟陣列引擎電路依據該系列讀取型樣中之該讀取型樣從該複數個容錯式磁碟陣列群組中之所述每一容錯式磁碟陣列群組同時地讀取該複數個符元且立即對該複數個符元進行該些互斥或運作以產生該至少一互斥或結果藉此加速該容錯式磁碟陣列群組之資料保護之步驟另包含: 利用該容錯式磁碟陣列引擎電路依據該系列讀取型樣中之該讀取型樣,於一相同的讀取循環(cycle)中從該複數個容錯式磁碟陣列群組中之所述每一容錯式磁碟陣列群組同時地讀取該複數個符元、且立即對該複數個符元進行該些互斥或運作以產生該至少一互斥或結果,藉此加速該容錯式磁碟陣列群組之資料保護。
- 如申請專利範圍第2項所述之方法,其中該相同的讀取循環代表一第一讀取循環,該複數個符元代表一第一群符元,該些互斥或運作代表第一互斥或運作,且該至少一互斥或結果代表至少一第一互斥或結果;以及該方法另包含: 利用該容錯式磁碟陣列引擎電路依據該系列讀取型樣中之該讀取型樣,於一第二讀取循環中從該複數個容錯式磁碟陣列群組中之所述每一容錯式磁碟陣列群組同時地讀取一第二群符元、且立即對該第二群符元進行第二互斥或運作以產生至少一第二互斥或結果,藉此加速該容錯式磁碟陣列群組之資料保護。
- 如申請專利範圍第1項所述之方法,其另包含: 利用該容錯式磁碟陣列引擎電路決定對應於該目前需求的一再摺(re-fold)模式,其中該再摺模式係關於該容錯式磁碟陣列引擎電路所進行的資料保護運作;以及 利用該容錯式磁碟陣列引擎電路依據該再摺模式,決定對應於該至少一預定排列型樣的該系列讀取型樣。
- 如申請專利範圍第4項所述之方法,其中該目前需求是該記憶裝置的多個類型的需求的其中之一;以及該方法另包含: 利用該容錯式磁碟陣列引擎電路因應該多個類型的需求,動態地調整該再摺模式,且對應地調整該系列讀取型樣。
- 一種記憶裝置,包含有: 一非揮發性記憶體(non-volatile memory, NV memory),用來儲存資訊,其中該非揮發性記憶體包含至少一非揮發性記憶體元件(NV memory element);以及 一控制器,耦接至該非揮發性記憶體,用來控制該記憶裝置之至少一運作,其中該控制器包含: 一控制邏輯電路,耦接至該非揮發性記憶體,用來控制該非揮發性記憶體,其中該控制邏輯電路包含: 一容錯式磁碟陣列(Redundant Array of Independent Disks, RAID)引擎電路,用來進行資料保護;以及 一記憶體,用來提供儲存空間給該容錯式磁碟陣列引擎電路,其中該記憶體是揮發性記憶體(volatile memory);以及 一處理電路,耦接至該控制邏輯電路,用來依據來自一主裝置(host device)的一指令控制該控制器,以容許該主裝置透過該控制器存取(access)該非揮發性記憶體,其中在該處理電路的控制下,該控制器進行下列運作: 依據至少一預定排列型樣,分別將複數組符元寫入該記憶體的複數個儲存區,作為複數個容錯式磁碟陣列群組,以供進行於存取該非揮發性記憶體時的資料保護; 利用該容錯式磁碟陣列引擎電路依據對應於一目前需求的至少一參數,來決定對應於該至少一預定排列型樣的一系列讀取型樣;以及 利用該容錯式磁碟陣列引擎電路依據該系列讀取型樣中之一讀取型樣,從該複數個容錯式磁碟陣列群組中之每一容錯式磁碟陣列群組同時地讀取複數個符元、且立即對該複數個符元進行互斥或(exclusive-OR, XOR)運作以產生至少一互斥或結果,藉此加速該容錯式磁碟陣列群組之資料保護。
- 如申請專利範圍第6項所述之記憶裝置,其中該控制器利用該容錯式磁碟陣列引擎電路依據該系列讀取型樣中之該讀取型樣,於一相同的讀取循環(cycle)中從該複數個容錯式磁碟陣列群組中之所述每一容錯式磁碟陣列群組同時地讀取該複數個符元、且立即對該複數個符元進行該些互斥或運作以產生該至少一互斥或結果,藉此加速該容錯式磁碟陣列群組之資料保護。
- 如申請專利範圍第7項所述之記憶裝置,其中該相同的讀取循環代表一第一讀取循環,該複數個符元代表一第一群符元,該些互斥或運作代表第一互斥或運作,且該至少一互斥或結果代表至少一第一互斥或結果;以及該控制器利用該容錯式磁碟陣列引擎電路依據該系列讀取型樣中之該讀取型樣,於一第二讀取循環中從該複數個容錯式磁碟陣列群組中之所述每一容錯式磁碟陣列群組同時地讀取一第二群符元、且立即對該第二群符元進行第二互斥或運作以產生至少一第二互斥或結果,藉此加速該容錯式磁碟陣列群組之資料保護。
- 如申請專利範圍第6項所述之記憶裝置,其中該控制器利用該容錯式磁碟陣列引擎電路決定對應於該目前需求的一再摺(re-fold)模式,其中該再摺模式係關於該容錯式磁碟陣列引擎電路所進行的資料保護運作;以及該控制器利用該容錯式磁碟陣列引擎電路依據該再摺模式,決定對應於該至少一預定排列型樣的該系列讀取型樣。
- 如申請專利範圍第9項所述之記憶裝置,其中該目前需求是該記憶裝置的多個類型的需求的其中之一;以及該控制器利用該容錯式磁碟陣列引擎電路因應該多個類型的需求,動態地調整該再摺模式,且對應地調整該系列讀取型樣。
- 一種記憶裝置之控制器,該記憶裝置包含該控制器與一非揮發性記憶體(non-volatile memory, NV memory),該非揮發性記憶體包含至少一非揮發性記憶體元件(NV memory element),該控制器包含有: 一控制邏輯電路,耦接至該非揮發性記憶體,用來控制該非揮發性記憶體,其中該控制邏輯電路包含: 一容錯式磁碟陣列(Redundant Array of Independent Disks, RAID)引擎電路,用來進行資料保護;以及 一記憶體,用來提供儲存空間給該容錯式磁碟陣列引擎電路,其中該記憶體是揮發性記憶體(volatile memory);以及 一處理電路,耦接至該控制邏輯電路,用來依據來自一主裝置(host device)的一指令控制該控制器,以容許該主裝置透過該控制器存取(access)該非揮發性記憶體,其中在該處理電路的控制下,該控制器進行下列運作: 依據至少一預定排列型樣,分別將複數組符元寫入該記憶體的複數個儲存區,作為複數個容錯式磁碟陣列群組,以供進行於存取該非揮發性記憶體時的資料保護; 利用該容錯式磁碟陣列引擎電路依據對應於一目前需求的至少一參數,來決定對應於該至少一預定排列型樣的一系列讀取型樣;以及 利用該容錯式磁碟陣列引擎電路依據該系列讀取型樣中之一讀取型樣,從該複數個容錯式磁碟陣列群組中之每一容錯式磁碟陣列群組同時地讀取複數個符元、且立即對該複數個符元進行互斥或(exclusive-OR, XOR)運作以產生至少一互斥或結果,藉此加速該容錯式磁碟陣列群組之資料保護。
- 如申請專利範圍第11項所述之控制器,其中該控制器利用該容錯式磁碟陣列引擎電路依據該系列讀取型樣中之該讀取型樣,於一相同的讀取循環(cycle)中從該複數個容錯式磁碟陣列群組中之所述每一容錯式磁碟陣列群組同時地讀取該複數個符元、且立即對該複數個符元進行該些互斥或運作以產生該至少一互斥或結果,藉此加速該容錯式磁碟陣列群組之資料保護。
- 如申請專利範圍第12項所述之控制器,其中該相同的讀取循環代表一第一讀取循環,該複數個符元代表一第一群符元,該些互斥或運作代表第一互斥或運作,且該至少一互斥或結果代表至少一第一互斥或結果;以及該控制器利用該容錯式磁碟陣列引擎電路依據該系列讀取型樣中之該讀取型樣,於一第二讀取循環中從該複數個容錯式磁碟陣列群組中之所述每一容錯式磁碟陣列群組同時地讀取一第二群符元、且立即對該第二群符元進行第二互斥或運作以產生至少一第二互斥或結果,藉此加速該容錯式磁碟陣列群組之資料保護。
- 如申請專利範圍第11項所述之控制器,其中該控制器利用該容錯式磁碟陣列引擎電路決定對應於該目前需求的一再摺(re-fold)模式,其中該再摺模式係關於該容錯式磁碟陣列引擎電路所進行的資料保護運作;以及該控制器利用該容錯式磁碟陣列引擎電路依據該再摺模式,決定對應於該至少一預定排列型樣的該系列讀取型樣。
- 如申請專利範圍第14項所述之控制器,其中該目前需求是該記憶裝置的多個類型的需求的其中之一;以及該控制器利用該容錯式磁碟陣列引擎電路因應該多個類型的需求,動態地調整該再摺模式,且對應地調整該系列讀取型樣。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW108106296A TWI698742B (zh) | 2017-11-30 | 2017-11-30 | 用來於一記憶裝置中進行存取控制之方法以及記憶裝置及其控制器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW108106296A TWI698742B (zh) | 2017-11-30 | 2017-11-30 | 用來於一記憶裝置中進行存取控制之方法以及記憶裝置及其控制器 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201926043A true TW201926043A (zh) | 2019-07-01 |
TWI698742B TWI698742B (zh) | 2020-07-11 |
Family
ID=68048905
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW108106296A TWI698742B (zh) | 2017-11-30 | 2017-11-30 | 用來於一記憶裝置中進行存取控制之方法以及記憶裝置及其控制器 |
Country Status (1)
Country | Link |
---|---|
TW (1) | TWI698742B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113342258A (zh) * | 2020-03-02 | 2021-09-03 | 慧荣科技股份有限公司 | 用以进行全快闪存储器阵列伺服器的数据存取管理的方法与设备 |
TWI751096B (zh) * | 2019-08-14 | 2021-12-21 | 慧榮科技股份有限公司 | 使用藉助於先算資訊輪換的資料保護的非揮發性記憶體寫入方法和設備 |
TWI797905B (zh) * | 2021-12-23 | 2023-04-01 | 慧榮科技股份有限公司 | 驅動獨立磁碟冗餘陣列引擎的裝置及方法 |
TWI845392B (zh) * | 2023-01-20 | 2024-06-11 | 日商鎧俠股份有限公司 | 資訊處理系統 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9052826B2 (en) * | 2006-07-28 | 2015-06-09 | Condusiv Technologies Corporation | Selecting storage locations for storing data based on storage location attributes and data usage statistics |
US8161353B2 (en) * | 2007-12-06 | 2012-04-17 | Fusion-Io, Inc. | Apparatus, system, and method for validating that a correct data segment is read from a data storage device |
US20090222509A1 (en) * | 2008-02-29 | 2009-09-03 | Chao King | System and Method for Sharing Storage Devices over a Network |
-
2017
- 2017-11-30 TW TW108106296A patent/TWI698742B/zh active
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI751096B (zh) * | 2019-08-14 | 2021-12-21 | 慧榮科技股份有限公司 | 使用藉助於先算資訊輪換的資料保護的非揮發性記憶體寫入方法和設備 |
CN113342258A (zh) * | 2020-03-02 | 2021-09-03 | 慧荣科技股份有限公司 | 用以进行全快闪存储器阵列伺服器的数据存取管理的方法与设备 |
CN113342258B (zh) * | 2020-03-02 | 2024-03-26 | 慧荣科技股份有限公司 | 用以进行全快闪存储器阵列伺服器的数据存取管理的方法与设备 |
TWI797905B (zh) * | 2021-12-23 | 2023-04-01 | 慧榮科技股份有限公司 | 驅動獨立磁碟冗餘陣列引擎的裝置及方法 |
TWI845392B (zh) * | 2023-01-20 | 2024-06-11 | 日商鎧俠股份有限公司 | 資訊處理系統 |
Also Published As
Publication number | Publication date |
---|---|
TWI698742B (zh) | 2020-07-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6606039B2 (ja) | メモリシステムおよび制御方法 | |
US10311920B2 (en) | Apparatus and method for controlling memory device | |
TWI455136B (zh) | 用來進行資料整形之方法以及相關之記憶裝置及其控制器 | |
CN107797882B (zh) | 存储器系统及其操作方法 | |
CN109857584B (zh) | 于记忆装置进行访问控制的方法、记忆装置和其控制器 | |
US8719491B2 (en) | Encoding flash memory data with a randomizer using different seeds for different sectors | |
TWI760363B (zh) | 控制器及其操作方法 | |
CN108268337B (zh) | 于记忆装置中进行数据管理的方法、记忆装置及其控制器 | |
TW201314449A (zh) | 儲存資料之系統及方法 | |
TWI698742B (zh) | 用來於一記憶裝置中進行存取控制之方法以及記憶裝置及其控制器 | |
KR20180087496A (ko) | 메모리 시스템 | |
TWI730661B (zh) | 用來藉助於資訊排列進行記憶裝置的存取管理的方法、記憶裝置及其控制器、以及電子裝置 | |
CN104733051A (zh) | 奇偶校验码的解码方法、存储器储存装置及控制电路单元 | |
TWI692771B (zh) | 用來控制一記憶裝置的運作之方法、記憶裝置及其控制器以及電子裝置 | |
KR20170012006A (ko) | 메모리 컨트롤러와 이를 포함하는 메모리 시스템 | |
US11036579B2 (en) | Decoder for memory system and method thereof | |
TWI798630B (zh) | 用以存取快閃記憶體模組的方法、快閃記憶體控制器與電子裝置 | |
TW201913354A (zh) | 用來於一記憶裝置中為錯誤處置進行資料處理之方法、記憶裝置及其控制器以及電子裝置 | |
TWI651730B (zh) | 用來於記憶裝置中進行資料管理之方法以及記憶裝置及其控制器 | |
US20230120696A1 (en) | Memory controller, memory system including the same, and method of operating the memory system | |
TWI836610B (zh) | 存取快閃記憶體模組的方法與相關的快閃記憶體控制器及記憶裝置 | |
CN109933454B (zh) | 存储器系统及其操作方法 | |
CN114077515A (zh) | 数据写入方法、存储器控制电路单元以及存储器存储装置 | |
CN113227979A (zh) | 用于存储器子系统的容许故障错误校正布局 | |
CN102455948A (zh) | 用来进行数据整形的方法以及相关的记忆装置及其控制器 |