TWI434175B - 用來進行區塊管理之方法以及記憶裝置及控制器 - Google Patents
用來進行區塊管理之方法以及記憶裝置及控制器 Download PDFInfo
- Publication number
- TWI434175B TWI434175B TW099132562A TW99132562A TWI434175B TW I434175 B TWI434175 B TW I434175B TW 099132562 A TW099132562 A TW 099132562A TW 99132562 A TW99132562 A TW 99132562A TW I434175 B TWI434175 B TW I434175B
- Authority
- TW
- Taiwan
- Prior art keywords
- address
- channel
- controller
- channels
- channel mapping
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims description 31
- 230000015654 memory Effects 0.000 claims description 129
- 238000013507 mapping Methods 0.000 claims description 69
- 238000013519 translation Methods 0.000 claims description 7
- 238000004091 panning Methods 0.000 claims 1
- 239000000463 material Substances 0.000 description 21
- 230000001413 cellular effect Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 239000007787 solid Substances 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 3
- 208000033748 Device issues Diseases 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000003139 buffering effect Effects 0.000 description 1
- 230000005465 channeling Effects 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
Classifications
-
- 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
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7201—Logical to physical mapping or translation of blocks or pages
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Read Only Memory (AREA)
- Memory System (AREA)
Description
本發明係有關於具有多通道的快閃記憶體(Flash Memory)之存取(Access),尤指一種用來進行區塊管理之方法以及相關之記憶裝置及其控制器。
近年來由於快閃記憶體的技術不斷地發展,各種可攜式記憶裝置(例如:符合SD/MMC、CF、MS、XD標準之記憶卡)或具備快閃記憶體之固態硬碟(Solid State Drive,SSD)被廣泛地實施於諸多應用中。因此,這些記憶裝置中之快閃記憶體的存取控制遂成為相當熱門的議題。
以常用的NAND型快閃記憶體而言,其主要可區分為單階細胞(Single Level Cell,SLC)與多階細胞(Multiple Level Cell,MLC)兩大類之快閃記憶體。單階細胞快閃記憶體中之每個被當作記憶單元的電晶體只有兩種電荷值,分別用來表示邏輯值0與邏輯值1。另外,多階細胞快閃記憶體中之每個被當作記憶單元的電晶體的儲存能力則被充分利用,係採用較高的電壓來驅動,以透過不同級別的電壓在一個電晶體中記錄兩組(或以上)位元資訊(00、01、11、10);理論上,多階細胞快閃記憶體的記錄密度可以達到單階細胞快閃記憶體的記錄密度之兩倍,這對於曾經在發展過程中遇到瓶頸的NAND型快閃記憶體之相關產業而言,是非常好的消息。
相較於單階細胞快閃記憶體,由於多階細胞快閃記憶體之價格較便宜,並且在有限的空間裡可提供較大的容量,故多階細胞快閃記憶體很快地成為市面上之可攜式記憶裝置競相採用的主流。然而,多階細胞快閃記憶體的不穩定性所導致的問題也一一浮現。為了確保記憶裝置對快閃記憶體之存取控制能符合相關規範,快閃記憶體的控制器通常備有某些管理機制以妥善地管理資料之存取。
依據相關技術,有了這些管理機制的記憶裝置還是有不足之處。例如:相關技術的管理機制無法保證在具有多通道的快閃記憶體中之各個通道之通道頻寬;又例如:相關技術在進行隨機寫入之後的循序讀取之效能甚差。因此,需要一種新穎的方法來進行區塊管理,以增進快閃記憶體之存取效能。
因此本發明之目的之一在於提供一種用來進行區塊管理之方法以及相關之記憶裝置及其控制器,以解決上述問題。
本發明之另一目的在於提供一種用來進行區塊管理之方法以及相關之記憶裝置及其控制器,以增進快閃記憶體(Flash Memory)之存取效能。
本發明之較佳實施例中提供一種用來進行區塊管理之方法,該方法係應用於具有多通道(Channel)的快閃記憶體之控制器,該快閃記憶體包含分別對應於該些通道之複數個區塊,該方法包含有:取得複數個位址對通道(Address-to-Channel)映射關係中之至少一部分,以供寫入運作之用;以及依據該複數個位址對通道映射關係中之至少一位址對通道映射關係,於頁模式(Page Mode)中將至少一頁的資料透過至少一通道寫入該快閃記憶體。
本發明於提供上述方法之同時,亦對應地提供一種記憶裝置,其包含有:具有多通道之一快閃記憶體,該快閃記憶體包含分別對應於該些通道之複數個區塊;以及一控制器,用來存取(Access)該快閃記憶體以及管理該複數個區塊。另外,該控制器取得複數個位址對通道映射關係中之至少一部分,以供寫入運作之用。此外,該控制器依據該複數個位址對通道映射關係中之至少一位址對通道映射關係,於頁模式中將至少一頁的資料透過至少一通道寫入該快閃記憶體。
本發明於提供上述方法之同時,亦對應地提供一種記憶裝置之控制器,該控制器係用來存取具有多通道之一快閃記憶體,該快閃記憶體包含分別對應於該些通道之複數個區塊,該控制器包含有:一唯讀記憶體(Read Only Memory,ROM),用來儲存一程式碼;以及一微處理器,用來執行該程式碼以控制對該快閃記憶體之存取以及管理該複數個區塊。另外,透過該微處理器執行該程式碼之該控制器取得複數個位址對通道映射關係中之至少一部分,以供寫入運作之用。此外,透過該微處理器執行該程式碼之該控制器依據該複數個位址對通道映射關係中之至少一位址對通道映射關係,於頁模式中將至少一頁的資料透過至少一通道寫入該快閃記憶體。
請參考第1A圖,第1A圖為依據本發明一第一實施例之一種記憶裝置100的示意圖,其中本實施例之記憶裝置100尤其係為可攜式記憶裝置(例如:符合SD/MMC、CF、MS、XD標準之記憶卡)、或固態硬碟(SSD,Solid State Drive)等。記憶裝置100包含有:一快閃記憶體(Flash Memory) 120;以及一控制器,用來存取(Access)快閃記憶體120,其中該控制器例如一記憶體控制器110。依據本實施例,記憶體控制器110包含一微處理器112、一唯讀記憶體(Read Only Memory,ROM) 112M、一控制邏輯114、至少一緩衝記憶體116、與一介面邏輯118。另外,本實施例之唯讀記憶體112M係用來儲存一程式碼112C,而微處理器112則用來執行程式碼112C以控制對快閃記憶體120之存取。請注意到,程式碼112C亦得儲存在緩衝記憶體116或任何形式之記憶體內。此外,緩衝記憶體116包含一緩衝器Buf(1)。例如:緩衝器Buf(1)可為緩衝記憶體116中之複數個緩衝區域之一緩衝區域。又例如:上述之至少一緩衝記憶體116包含複數個緩衝記憶體,該些緩衝記憶體中之一者可用來實施緩衝器Buf(1)。
如第1A圖所示,上述之快閃記憶體120包含複數個快閃記憶體晶片諸如快閃記憶體晶片120-0、120-1、...、與120-(N-1),其中快閃記憶體120具有多通道(Channel)諸如通道Ch(0)、Ch(1)、...、與Ch(N-1),而該些快閃記憶體晶片諸如快閃記憶體晶片120-0、120-1、...、與120-(N-1)分別屬於該些通道。於典型狀況下,快閃記憶體120包含分別對應於該些通道之複數個區塊,而該控制器(例如:透過微處理器112執行程式碼112C之記憶體控制器110)對每一快閃記憶體晶片進行抹除時,最小的抹除單位係以區塊為單位來進行抹除。另外,一區塊可記錄特定數量的頁(Page),其中該控制器對每一快閃記憶體晶片進行寫入時,最小的寫入單位係以頁為單位來進行寫入。而一實體頁中包含複數個區段,例如8個區段。
實作上,透過微處理器112執行程式碼112C之記憶體控制器110可利用其本身內部之元件來進行諸多控制運作,例如:利用控制邏輯114來控制每一快閃記憶體晶片之存取運作(尤其是對至少一區塊或至少一頁之存取運作)、利用緩衝記憶體116進行所需之緩衝處理、以及利用介面邏輯118來與一主裝置(Host Device)溝通。
除了能存取快閃記憶體120,該控制器還能妥善地管理上述之複數個區塊。第1B圖為第1A圖所示之記憶裝置100於一實施例中各通道上之快閃記憶體晶片之記憶區段分佈。第1C圖為第1A圖所示之記憶裝置100於一實施例中的邏輯位址與通道之映射關係。依據本實施例,該控制器可運作於「頁模式」(Page Mode)的狀況下,不論該主裝置指定記憶裝置100寫入的資料之邏輯位址(Logical Address)分佈在哪些位址,該控制器基於第1C圖所示之安排,能在進行隨機寫入之後的循序讀取時達到極佳的效能。尤其是,在該控制器運作於「頁模式」的狀況下,該控制器可將邏輯位址不連續分佈(或隨機分佈)的資料一頁一頁地寫入同一實體區塊(Physical Block),也可以將屬於同一頁之不同版本的更新資料一頁一頁地寫入於一個或多個實體區塊中之複數個實體頁,並記錄關於這些實體頁當中哪一實體頁是最新版本的更新資料之資訊。同一實體區塊之任意兩個實體頁所儲存之資料之邏輯位址可能相差很大,其邏輯位址差距可能大過於一個實體區塊所包含之實體頁數量。例如,某一實體區塊包含256個實體頁,而該實體區塊中之一實體頁的所儲存之資料其邏輯頁位址係0x0000,而該實體區塊中另一實體頁的所儲存之資料其邏輯頁位址係0x2000,兩者之邏輯位址差異大於256。如第1C圖所示,給定符號「m」代表非負數之整數,邏輯頁位址0x0000、0x0004、0x0008......0x(4m)......係映射至通道Ch(0)上之快閃記憶體晶片120-0,屬於上述邏輯位址之資料應儲存至通道Ch(0)上之快閃記憶體晶片120-0。邏輯頁位址0x0001、0x0005、0x0009......0x(4m+1)......係映射至通道Ch(1)上之快閃記憶體晶片120-1,屬於上述邏輯位址之資料應儲存至通道Ch(1)上之快閃記憶體晶片120-1。邏輯頁位址0x0002、0x0006、0x0010......0x(4m+2)......係映射至通道Ch(2)上之快閃記憶體晶片120-2,屬於上述邏輯位址之資料應儲存至通道Ch(2)上之快閃記憶體晶片120-2。邏輯頁位址0x0003、0x0007、0x0011......0x(4m+3)......係映射至通道Ch(3)上之快閃記憶體晶片120-3,屬於上述邏輯位址之資料應儲存至通道Ch(3)上之快閃記憶體晶片120-3。換言之,單一快閃記憶體晶片上,任意兩個實體頁其所映射之邏輯頁位址之差異係為該記憶裝置中通道總數之整數倍。舉例來說,主裝置向記憶裝置100發出一第一寫入指令,命其寫入邏輯頁位址0x0000之資料D0
。記憶體控制器110收到該第一寫入指令便將資料D0
寫入通道Ch(0)上的快閃記憶體晶片120-0的一實體區塊(例如第一實體區塊)上之一空白記憶頁(例如第一實體記憶頁)。隨後,主裝置向記憶裝置100發出一第二寫入指令,命其寫入邏輯頁位址0x2000之資料D2000
。記憶體控制器110收到該第二寫入指令便將資料D2000
寫入通道Ch(0)上的快閃記憶體晶片120-0的第一實體區塊上之另一空白記憶頁(例如第二實體記憶頁)。邏輯頁位址0x0000與0x2000的差異係為通道數(於此實施例中通道總數為4)的整數倍。換言之,同一通道上之邏輯頁位址之差異係與通道數有關。此外,第一實體記憶頁與第二實體記憶頁係相鄰之實體記憶頁。且在實體記憶頁位址分佈上,第二實體記憶頁係僅次於第一實體記憶頁。
於第1B圖所示之表中,每一列代表分別對應於各個通道Ch(0)、Ch(1)、...、與Ch(N-1)之一組實體頁,而第1B圖所示之數值諸如索引0、1、...、63、...等可代表區段的編號,諸如實體區段位址(Physical Sector Address)。如第1B圖所示,於本實施例中,每一實體頁包含8個實體區段。依據本實施例,具有實體區段位址{0,1,...,7}之實體區段{0,1,...,7}屬於通道Ch(0)中之一實體頁。具有實體區段位址{8,9,...,15}之實體區段{8,9,...,15}屬於通道Ch(1)中之一相對應實體頁。具有實體區段位址{16,17,...,23}之實體區段{16,17,...,23}屬於通道Ch(2)中之一相對應實體頁。具有實體區段位址{24,25,...,31}之實體區段{24,25,...,31}屬於通道Ch(3)中之一相對應實體頁。依此類推。這只是為了說明的目的而已,並非對本發明之限制。依據本實施例之某些變化例,上述之數量N可為大於1之正整數。依據本實施例之某些變化例,實體區段的編號(或實體區段位址)與通道之間的關係可以予以變化。依據本實施例之某些變化例,每一實體頁中之區段的數量可以予以變化。
基於對應於該些通道之區段安排,諸如第1B圖所示之區段安排,本發明可妥善地管理具有多通道的快閃記憶體120之各個實體區塊以提昇快閃記憶體120之存取效能。請參考第2圖,該控制器所進行之區塊管理之相關細節進一步說明如下。
第2圖為依據本發明一實施例之一種進行區塊管理之方法910的流程圖。該方法可應用於在第1A圖至第1C圖所示之各個實施例(及相關的變化例)中之任一者當中之記憶裝置100,尤其是具有多通道的快閃記憶體120之控制器諸如上述之控制器(例如:透過微處理器112執行程式碼112C之記憶體控制器110)。該方法說明如下:於步驟912中,該控制器取得複數個邏輯位址(例如邏輯區段位址或邏輯頁位址)對通道(Address-to-Channel)映射關係中之至少一部分(例如:一部分或全部),以供寫入運作之用。依據本實施例,該些邏輯位址對通道映射關可為邏輯區段位址對通道映射關係。
於步驟914中,該控制器依據該複數個邏輯位址(例如邏輯區段位址或邏輯頁位址)對通道映射關係中之至少一位址對通道映射關係,於該頁模式中將至少一頁的資料透過至少一通道寫入快閃記憶體120。例如:在該些邏輯位址對通道映射關係為複數個邏輯區段位址對通道映射關係的狀況下,該控制器依據該複數個邏輯區段位址對通道映射關係中之至少一邏輯區段位址對通道映射關係,於該頁模式中將至少一頁的資料透過至少一通道寫入快閃記憶體120。
實作上,該控制器可依據一預定規則進行計算,以取得該些邏輯位址對通道映射關係中之該至少一部分。例如,針對邏輯頁位址進行運算,將邏輯頁位址0x0000除以通道數目(於此實施例中,通道數目為4)所得之餘數為0,則可得知邏輯頁位址0x0000所對應之資料應該儲存於通道0。而將邏輯頁位址0x0001除以通道數目(於此實施例中,通道數目為4)所得之餘數為1,則可得知邏輯頁位址0x0001所對應之資料應該儲存於通道1。此即位址與通道之映射關係。熟悉此項技藝者當得在本發明之教導之下,將不同之邏輯位址(例如邏輯頁位址、邏輯區段位址)對應至不同之通道。
這只是為了說明的目的而已,並非對本發明之限制。依據本實施例之某些變化例,記憶裝置100中之某一儲存器(例如:該控制器中之某一儲存器諸如唯讀記憶體112M或緩衝記憶體116、或該控制器中任何形式之記憶體;又例如:快閃記憶體120)儲存有該些位址對通道映射關係中之該至少一部分,而該控制器可自該儲存器讀取該些位址對通道映射關係中之該至少一部分中之至少一位址對通道映射關係,諸如步驟914所述之該至少一位址對通道映射關係。
依據本實施例,給定符號「x」代表邏輯區段位址(例如:x=0、1、...等)且符號「n」代表一通道Ch(n)的索引(例如:n=0、1、...、(N-1)),則該些邏輯區段位址對通道映射關係可表示如下:
n=(x>>XPD
)%N;
其中符號「>>」代表位元平移的運算子,而符號「%」代表模運算(Modulo Operation)的運算子,且符號「XPD
」代表一預定數值。如此,於本實施例中,通道Ch(n)之索引n可藉由下列運算取得:將一特定邏輯區段位址諸如邏輯區段位址x向右位元平移一預定數量的位元,尤其是向右位元平移XPD
個位元,以產生一平移結果,其中預定數值XPD
代表該預定數量;以及計算將該平移結果除以一預定除數諸如N之餘數,作為通道Ch(n)之索引n。例如:第1C圖繪示數量N等於4且預定數值XPD
等於3的狀況。換句話說,上述之運算可視為利用邏輯區段位址換算出其所屬之邏輯頁位址,再將羅輯頁位址除以通道數,所得之餘數即為通道索引。請注意到,上述利用將邏輯區段位址平移XPD
個位元以換算出邏輯頁位址之技巧係適用於邏輯區段位址係以二進位方式表示之狀況,本發明不以此為限,熟悉此項技藝者當得推知其他表示方式所使用之運算技巧。
第3A圖至第3B圖為第2圖所示之方法910於一實施例中的實施細節。如第3A圖所示,資料310代表基於一寫入指令諸如指令CMD(k11
)所要寫入之資料,其中資料310係為屬於通道Ch(0)之一邏輯頁中之數個區段(例如:區段4、5、6、與7)的資料,且為不滿一頁的資料。基於步驟912之運作,該控制器判定資料310所涉及之邏輯區段位址x(於本實施例即邏輯區段位址4、5、6、與7)僅僅對應於通道Ch(0),故在進行資料310之寫入運作時,該控制器可於其它通道諸如通道Ch(1)、Ch(2)、與Ch(3)進行其它運作。如此,在步驟914所述之至少一通道未包含該些通道Ch(0)、Ch(1)、Ch(2)與Ch(3)中之全部的通道之狀況下,該控制器不針對該些通道中之其它通道(例如Ch(1)、Ch(2)、與Ch(3))當中之相對應邏輯頁重寫舊資料。
如第3B圖所示,由於資料310並未佔滿其所屬之邏輯頁,也就是說,此邏輯頁將被部分地更新,故該控制器尋找並取得此邏輯頁之其它部分的資料諸如資料312,尤其是未更新前之最新的資料(其以陰影繪示,較易於理解)。於是,於步驟914中,該控制器依據邏輯區段位址4、5、6、與7對應於通道Ch(0)之映射關係,於該頁模式中將這一頁的資料(即資料310與312)透過至少一通道諸如通道Ch(0)寫入快閃記憶體120。
實作上,該控制器可將資料310與312暫時地儲存於該控制器之至少一緩衝器諸如緩衝器Buf(1)。該控制器可分析指令CMD(k21
),以判斷是否進行第3B圖所示之寫入運作。於是,該控制器將緩衝器Buf(1)中所暫時地儲存之資料310與312透過通道Ch(0)寫入快閃記憶體120。請注意,暫時地儲存資料310不會花費太多時間,這是因為於典型狀況下相較於快閃記憶體120執行寫入運作該主裝置傳送資料的速度甚快。
第4A圖至第4B圖為第2圖所示之方法910於另一實施例中的實施細節。如第4A圖所示,資料310與320分別代表基於某些寫入指令諸如指令CMD(k21
)與CMD(k22
)所要寫入之資料,其中本實施例之資料310與第3A圖所示實施例之資料310相同,而資料320係為屬於通道Ch(1)之一邏輯頁中之數個區段(例如:區段12、13、14、與15)的資料,且為不滿一頁的資料。基於步驟912之運作,該控制器判定資料310所涉及之邏輯區段位址x(於本實施例即邏輯區段位址4、5、6、與7)僅僅對應於通道Ch(0),且判定資料320所涉及之邏輯區段位址x(於本實施例即邏輯區段位址12、13、14、與15)僅僅對應於通道Ch(1),故在進行資料310之寫入運作時,該控制器可於其它通道諸如通道Ch(2)與Ch(3)進行其它運作。如此,在步驟914所述之至少一通道未包含該些通道Ch(0)、Ch(1)、Ch(2)與Ch(3)中之全部的通道之狀況下,該控制器不針對該些通道中之其它通道(例如Ch(2)與Ch(3))當中之相對應邏輯頁重寫舊資料。
如前面所述,該控制器可尋找並取得資料312。相仿地,由於資料320並未佔滿其所屬之邏輯頁,故該控制器尋找並取得此邏輯頁之其它部分的資料諸如資料322。請接著參考第4B圖。於是,於步驟914中,該控制器依據邏輯區段位址4、5、6、與7對應於通道Ch(0)之映射關係以及邏輯區段位址12、13、14、與15對應於通道Ch(1)之映射關係,於該頁模式中將這兩頁的資料(即資料310與312以及資料320與322)透過至少一通道諸如通道Ch(0)與Ch(1)分別寫入快閃記憶體120。
於本實施例中,該控制器自該主裝置先接收指令CMD(k21
),其次接收指令CMD(k22
)。實作上,該控制器可將資料310、312、320、與322暫時地儲存於該控制器之至少一緩衝器諸如緩衝器Buf(1)。該控制器可分析指令CMD(k21
)與CMD(k22
),以判斷是否進行第4B圖所示之寫入運作。於是,該控制器將緩衝器Buf(1)中所暫時地儲存之資料310、312、320、與322同時透過通道Ch(0)與Ch(1)寫入快閃記憶體120。
請注意,暫時地儲存資料310與320不會花費太多時間,這是因為於典型狀況下相較於快閃記憶體120執行寫入運作該主裝置傳送資料的速度甚快。另外,由於該控制器寫入資料310與320時,資料310、312、320、與322之每一者被視為同一組資料中之部分資料(Partial Data),故本實施例可減少對快閃記憶體120之寫入運作的總次數。因此,相較於相關技術,本發明能夠節省對快閃記憶體120之寫入運作的時間。基於第1C圖所示之安排,本發明在進行隨機寫入之後的循序讀取之效能甚佳。
依據本實施例之一變化例,資料310被代換為資料310’,其中資料310’係為屬於通道Ch(1)之一邏輯頁中之全部的區段的資料。例如:資料310’包含分別屬於區段8、9、10、11、12、13、14、與15的資料D8、D9、D10、D11、D12、D13、D14、與D15,且資料320包含分別屬於區段12、13、14、與15的資料D12’、D13’、D14’、與D15’。由於該控制器自該主裝置先接收指令CMD(k21
),其次接收指令CMD(k22
),故該控制器可分析指令CMD(k21
)與CMD(k22
),並且據以判斷資料D8、D9、D10、D11、D12’、D13’、D14’、與D15’係為分別屬於區段8、9、10、11、12、13、14、與15的最新資料。實作上,該控制器可將資料D8、D9、D10、D11、D12’、D13’、D14’、與D15’暫時地儲存於該控制器之至少一緩衝器諸如緩衝器Buf(1),而不需要暫時地儲存資料D12、D13、D14、與D15。於是,該控制器將緩衝器Buf(1)中所暫時地儲存之資料D8、D9、D10、D11、D12’、D13’、D14’、與D15’透過通道Ch(1)寫入快閃記憶體120。
請注意,暫時地儲存資料D8、D9、D10、D11、D12’、D13’、D14’、與D15’不會花費太多時間,這是因為於典型狀況下相較於快閃記憶體120執行寫入運作該主裝置傳送資料的速度甚快。另外,由於該控制器只將分別屬於區段8、9、10、11、12、13、14、與15的最新資料D8、D9、D10、D11、D12’、D13’、D14’、與D15’寫入快閃記憶體120,故本變化例可減少對快閃記憶體120之寫入運作的總次數。因此,相較於相關技術,本發明能夠節省對快閃記憶體120之寫入運作的時間。
第5A圖至第5B圖為第2圖所示之方法910於另一實施例中的實施細節。如第5A圖所示,資料{310A,310B}、{320A,320B}、與{330A,330B}分別代表基於某些寫入指令諸如指令CMD(k31
)、CMD(k32
)、與CMD(k33
)所要寫入之資料。於本實施例中,資料310A係為屬於通道Ch(0)之一邏輯頁中之數個區段(例如:區段38與39)的資料,且資料310B係為屬於通道Ch(1)之一邏輯頁中之數個區段(例如:區段40與41)的資料。另外,資料320A係為屬於通道Ch(1)之一邏輯頁中之數個區段(例如:區段46與47)的資料,且資料320B係為屬於通道Ch(2)之一邏輯頁中之數個區段(例如:區段48與49)的資料。此外,資料330A係為屬於通道Ch(2)之一邏輯頁中之數個區段(例如:區段54與55)的資料,且資料330B係為屬於通道Ch(3)之一邏輯頁中之數個區段(例如:區段56與57)的資料。請注意,資料310A、310B、320A、320B、330A、與330B分別為不滿一頁的資料。基於步驟912之運作,該控制器判定資料310A所涉及之邏輯區段位址x(於本實施例即邏輯區段位址38與39)對應於通道Ch(0),且判定資料310B與320A所涉及之邏輯區段位址x(於本實施例即邏輯區段位址40、41、46、與47)對應於通道Ch(1),並判定資料320B與330A所涉及之邏輯區段位址x(於本實施例即邏輯區段位址48、49、54、與55)對應於通道Ch(2),並且判定資料330B所涉及之邏輯區段位址x(於本實施例即邏輯區段位址56與57)對應於通道Ch(3),故該控制器可同時於所有的通道諸如通道Ch(0)、Ch(1)、Ch(2)與Ch(3)進行寫入運作。
相仿地,由於資料310A、310B、320A、320B、330A、與330B並未佔滿其各自所屬之邏輯頁,故該控制器尋找並取得這些邏輯頁之其它部分的資料諸如資料312A、312B、322B、與332B。於本實施例中,由於該控制器依據指令CMD(k31
)、CMD(k32
)、與CMD(k33
)所代表的寫入運作之順序判斷資料310A、310B、320A、320B、330A、與330B沒有重疊,故於資料310A、310B、320A、320B、330A、與330B中之任一者不會代換掉另一者。請接著參考第5B圖。於是,於步驟914中,該控制器依據邏輯區段位址38與39對應於通道Ch(0)之映射關係以及邏輯區段位址40、41、46、與47對應於通道Ch(1)之映射關係,且依據邏輯區段位址48、49、54、與55對應於通道Ch(2)之映射關係以及邏輯區段位址56與57對應於通道Ch(3)之映射關係,於該頁模式中將這四頁的資料(即資料{310A,312A}、資料{310B,312B,320A}、資料{320B,322B,330A}、以及資料{330B,332B})透過至少一通道諸如所有的通道Ch(0)、Ch(1)、Ch(2)與Ch(3)分別寫入快閃記憶體120。
於本實施例中,該控制器自該主裝置先接收指令CMD(k31
),其次接收指令CMD(k32
),接著接收指令CMD(k33
)。實作上,該控制器可將資料{310A,310B}、{320A,320B}、與{330A,330B}暫時地儲存於該控制器之至少一緩衝器諸如緩衝器Buf(1)。該控制器可分析指令CMD(k31
)、CMD(k32
)、與CMD(k33
),以判斷是否進行第5B圖所示之寫入運作。
請注意,暫時地儲存資料{310A,310B}、{320A,320B}、與{330A,330B}不會花費太多時間,這是因為於典型狀況下相較於快閃記憶體120執行寫入運作該主裝置傳送資料的速度甚快。另外,由於該控制器寫入資料{310A,310B}、{320A,320B}、與{330A,330B}時,資料310A、312A、310B、312B、320A、320B、322B、330A、330B、與332B之每一者被視為同一組資料中之部分資料,故本實施例可減少對快閃記憶體120之寫入運作的總次數。因此,相較於相關技術,本發明能夠節省對快閃記憶體120之寫入運作的時間。基於第1C圖所示之安排,本發明在進行隨機寫入之後的循序讀取之效能甚佳。
本發明的好處之一是,依據本發明所實現的管理可提昇具有多通道的快閃記憶體之整體的通道頻寬。另外,基於對應於該些通道之安排,諸如第1C圖所示之安排,本發明不會有過度使用某一通道的問題。當主裝置欲在短時間內寫入連續邏輯頁位址的資料時,依據本發明,記憶體控制器會將該些資料分散至不同通道上之快閃記憶體晶片,隨後,當主裝置欲讀取該些資料時,記憶體控制器即可平行地自不同通道的快閃記憶體晶片上讀取該些資料回覆給主裝置,從而,存取速度即可顯著提昇。相較於相關技術,本發明在不大幅地增加晶片面積及相關成本的狀況下就能達到兼顧運作效能與系統資源使用控管之目標。
以上所述僅為本發明之較佳實施例,凡依本發明申請專利範圍所做之均等變化與修飾,皆應屬本發明之涵蓋範圍。
100...記憶裝置
110...記憶體控制器
112...微處理器
112C...程式碼
112M...唯讀記憶體
114...控制邏輯
116...緩衝記憶體
118...介面邏輯
120...快閃記憶體
120-0,120-1,...,120-(N-1)...快閃記憶體晶片
310,310A,310B,...資料
312,312A,312B,
320,320A,320B,
322,322B,
330A,330B,332B
910...用來進行區塊管理之方法
912,914...步驟
Buf(1)...緩衝器
Ch(0),Ch(1),Ch(2),Ch(3),...,Ch(N-1)...通道
第1A圖為依據本發明一第一實施例之一種記憶裝置的示意圖。
第1B圖為第1A圖所示之記憶裝置於一實施例中各通道上之快閃記憶體晶片之記憶區段分佈。
第1C圖為第1A圖所示之記憶裝置於一實施例中的邏輯位址與通道之映射關係。
第2圖為依據本發明一實施例之一種用來進行區塊管理之方法的流程圖。
第3A圖至第3B圖為第2圖所示之方法於一實施例中的實施細節。
第4A圖至第4B圖為第2圖所示之方法於另一實施例中的實施細節。
第5A圖至第5B圖為第2圖所示之方法於另一實施例中的實施細節。
910...用來進行區塊管理之方法
912,914...步驟
Claims (15)
- 一種用來進行區塊管理之方法,該方法係應用於具有多通道(Channel)的快閃記憶體(Flash Memory)之控制器,該快閃記憶體包含分別對應於該些通道之複數個區塊,該方法包含有:取得複數個位址對通道(Address-to-Channel)映射關係中之至少一部分,以供寫入運作之用;以及依據該複數個位址對通道映射關係中之至少一位址對通道映射關係,將至少一頁的資料透過至少一通道寫入該快閃記憶體;其中該些位址對通道映射關係為邏輯區段位址(Logical Sector Address)對通道映射關係;以及取得該複數個位址對通道映射關係中之該至少一部分以供寫入運作之用之步驟另包含:將一特定邏輯區段位址向右位元平移一預定數量的位元,以產生一平移結果;以及計算將該平移結果除以一預定除數之餘數,作為一通道之索引。
- 如申請專利範圍第1項所述之方法,其中該複數個位址對通道映射關係代表複數個邏輯區段位址分別對應於該些通道之映射關係。
- 如申請專利範圍第1項所述之方法,其中取得該複數個位址對通道映射關係中之該至少一部分以供寫入運作之用之步驟另包含:依據一預定規則進行計算,以取得該些位址對通道映射關係中之該至少一部分。
- 如申請專利範圍第1項所述之方法,其中取得該複數個位址對通道映射關係中之該至少一部分以供寫入運作之用之步驟另包含:自一儲存器讀取該些位址對通道映射關係中之該至少一部分中之至少一位址對通道映射關係。
- 如申請專利範圍第1項所述之方法,其中依據該複數個位址對通道映射關係中之該至少一位址對通道映射關係將該至少一頁的資料透過該至少一通道寫入該快閃記憶體之步驟另包含:在該至少一通道未包含該些通道中之全部的通道之狀況下,不針對該些通道中之其它通道當中之相對應邏輯頁重寫舊資料。
- 一種記憶裝置,其包含有:具有多通道(Channel)之一快閃記憶體(Flash Memory),該快閃記憶體包含分別對應於該些通道之複數個區塊;以及一控制器,用來存取(Access)該快閃記憶體以及管理該複數 個區塊,其中該控制器取得複數個位址對通道(Address-to-Channel)映射關係中之至少一部分,以供寫入運作之用,並且該控制器依據該複數個位址對通道映射關係中之至少一位址對通道映射關係,將至少一頁的資料透過至少一通道寫入該快閃記憶體;其中該些位址對通道映射關係為邏輯區段位址(Logical Sector Address)對通道映射關係;該控制器將一特定邏輯區段位址向右位元平移一預定數量的位元,以產生一平移結果;以及該控制器計算將該平移結果除以一預定除數之餘數,作為一通道之索引。
- 如申請專利範圍第6項所述之記憶裝置,其中該複數個位址對通道映射關係代表複數個邏輯區段位址分別對應於該些通道之映射關係。
- 如申請專利範圍第6項所述之記憶裝置,其中該控制器依據一預定規則進行計算,以取得該些位址對通道映射關係中之該至少一部分。
- 如申請專利範圍第6項所述之記憶裝置,其中該控制器自一儲存器讀取該些位址對通道映射關係中之該至少一部分中之至少一位址對通道映射關係。
- 如申請專利範圍第6項所述之記憶裝置,其中在該至少一通道未包含該些通道中之全部的通道之狀況下,該控制器不針對該些通道中之其它通道當中之相對應邏輯頁重寫舊資料。
- 一種記憶裝置之控制器,該控制器係用來存取(Access)具有多通道(Channel)之一快閃記憶體(Flash Memory),該快閃記憶體包含分別對應於該些通道之複數個區塊,該控制器包含有:一唯讀記憶體(Read Only Memory,ROM),用來儲存一程式碼;以及一微處理器,用來執行該程式碼以控制對該快閃記憶體之存取以及管理該複數個區塊,其中透過該微處理器執行該程式碼之該控制器取得複數個位址對通道(Address-to-Channel)映射關係中之至少一部分,以供寫入運作之用,並且透過該微處理器執行該程式碼之該控制器依據該複數個位址對通道映射關係中之至少一位址對通道映射關係,將至少一頁的資料透過至少一通道寫入該快閃記憶體;其中該些位址對通道映射關係為邏輯區段位址(Logical Sector Address)對通道映射關係;該控制器將一特定邏輯區段位址向右位元平移一預定數量的位元,以產生一平移結果;以及 該控制器計算將該平移結果除以一預定除數之餘數,作為一通道之索引。
- 如申請專利範圍第11項所述之控制器,其中該複數個位址對通道映射關係代表複數個邏輯區段位址分別對應於該些通道之映射關係。
- 如申請專利範圍第11項所述之控制器,其中該控制器依據一預定規則進行計算,以取得該些位址對通道映射關係中之該至少一部分。
- 如申請專利範圍第11項所述之控制器,其中該控制器自一儲存器讀取該些位址對通道映射關係中之該至少一部分中之至少一位址對通道映射關係。
- 如申請專利範圍第11項所述之控制器,其中在該至少一通道未包含該些通道中之全部的通道之狀況下,該控制器不針對該些通道中之其它通道當中之相對應邏輯頁重寫舊資料。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW099132562A TWI434175B (zh) | 2010-09-27 | 2010-09-27 | 用來進行區塊管理之方法以及記憶裝置及控制器 |
US13/189,588 US8656090B2 (en) | 2010-09-27 | 2011-07-25 | Method for performing block management, and associated memory device and controller thereof |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW099132562A TWI434175B (zh) | 2010-09-27 | 2010-09-27 | 用來進行區塊管理之方法以及記憶裝置及控制器 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201214112A TW201214112A (en) | 2012-04-01 |
TWI434175B true TWI434175B (zh) | 2014-04-11 |
Family
ID=45871828
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW099132562A TWI434175B (zh) | 2010-09-27 | 2010-09-27 | 用來進行區塊管理之方法以及記憶裝置及控制器 |
Country Status (2)
Country | Link |
---|---|
US (1) | US8656090B2 (zh) |
TW (1) | TWI434175B (zh) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2013038442A1 (en) * | 2011-09-13 | 2013-03-21 | Hitachi, Ltd. | Storage system comprising flash memory, and storage control method |
CN103034603B (zh) * | 2012-12-07 | 2014-06-18 | 天津瑞发科半导体技术有限公司 | 多通道闪存卡控制装置及其控制方法 |
TWI529730B (zh) * | 2013-03-01 | 2016-04-11 | 慧榮科技股份有限公司 | 資料儲存裝置與快閃記憶體控制方法 |
TWI520152B (zh) * | 2013-03-01 | 2016-02-01 | 慧榮科技股份有限公司 | 資料儲存裝置與快閃記憶體控制方法 |
KR102161448B1 (ko) | 2014-02-03 | 2020-10-05 | 삼성전자 주식회사 | 멀티 채널 메모리를 포함하는 시스템 및 그 동작 방법 |
WO2015130314A1 (en) * | 2014-02-28 | 2015-09-03 | Hewlett-Packard Development Company, L.P. | Mapping mode shift |
WO2016159930A1 (en) | 2015-03-27 | 2016-10-06 | Hewlett Packard Enterprise Development Lp | File migration to persistent memory |
CN107209720B (zh) | 2015-04-02 | 2020-10-13 | 慧与发展有限责任合伙企业 | 用于页面高速缓存的系统及方法以及存储介质 |
US20180321874A1 (en) * | 2017-05-03 | 2018-11-08 | Alibaba Group Holding Limited | Flash management optimization for data update with small block sizes for write amplification mitigation and fault tolerance enhancement |
US10423361B2 (en) * | 2017-12-21 | 2019-09-24 | Microsoft Technology Licensing, Llc | Virtualized OCSSDs spanning physical OCSSD channels |
US11442867B2 (en) * | 2018-12-20 | 2022-09-13 | Micron Technology, Inc. | Using a second content-addressable memory to manage memory burst accesses in memory sub-systems |
CN112905529A (zh) * | 2021-03-09 | 2021-06-04 | 北京中电智诚科技有限公司 | 基于飞腾芯片d2000和ft-2000/4的芯片 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7752381B2 (en) * | 2005-05-24 | 2010-07-06 | Micron Technology, Inc. | Version based non-volatile memory translation layer |
US20090172335A1 (en) * | 2007-12-31 | 2009-07-02 | Anand Krishnamurthi Kulkarni | Flash devices with raid |
US20100250826A1 (en) * | 2009-03-24 | 2010-09-30 | Micron Technology, Inc. | Memory systems with a plurality of structures and methods for operating the same |
-
2010
- 2010-09-27 TW TW099132562A patent/TWI434175B/zh active
-
2011
- 2011-07-25 US US13/189,588 patent/US8656090B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
TW201214112A (en) | 2012-04-01 |
US8656090B2 (en) | 2014-02-18 |
US20120079170A1 (en) | 2012-03-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI434175B (zh) | 用來進行區塊管理之方法以及記憶裝置及控制器 | |
US10915475B2 (en) | Methods and apparatus for variable size logical page management based on hot and cold data | |
TWI425357B (zh) | 用來進行區塊管理之方法以及記憶裝置及控制器 | |
EP3662379B1 (en) | Memory addressing | |
CN108121503B (zh) | 一种NandFlash地址映射及块管理方法 | |
TWI775122B (zh) | 用來存取至少一非揮發性記憶體元件的處理單元 | |
TWI417718B (zh) | Control Method of Logical Strip Based on Multi - channel Flash Memory Device | |
CN101727295B (zh) | 一种基于虚拟块闪存地址映射的数据写入及读出方法 | |
TWI494761B (zh) | 分割實體區塊之方法及記憶體系統 | |
CN104794070A (zh) | 基于动态非覆盖raid技术的固态闪存写缓存系统及方法 | |
US11513949B2 (en) | Storage device, and control method and recording medium thereof | |
CN103838676B (zh) | 数据存储系统、数据存储方法及pcm桥 | |
TWI698749B (zh) | 資料儲存裝置與資料處理方法 | |
KR101403922B1 (ko) | 접근 빈도에 따라 데이터를 할당하는 저장장치 및 저장방법 | |
TW201917581A (zh) | 管理快閃記憶體模組的方法及相關的快閃記憶體控制器 | |
CN111158579A (zh) | 固态硬盘及其数据存取的方法 | |
TWI435216B (zh) | 用來進行超區塊管理之方法以及記憶裝置及控制器 | |
JP5687649B2 (ja) | 半導体記憶装置の制御方法 | |
TWI453747B (zh) | 用來管理一快閃記憶體的複數個區塊之方法以及相關之記憶裝置及其控制器 | |
CN107832234B (zh) | 一种用于nand flash的日志块快速命中方法 | |
KR102719939B1 (ko) | 읽기 성능 개선을 위한 LightNVM의 데이터 저장 방법 및 그 장치 | |
TWI434284B (zh) | 主動式快閃管理之方法以及相關之記憶裝置及其控制器 | |
CN102479157B (zh) | 用来进行区块管理的方法、记忆装置及其控制器 | |
CN118778908A (zh) | 一种虚拟块的管理方法以及应用了该方法的存储设备 | |
CN117234418A (zh) | 一种提高ssd存储效率的条带化写入方法、装置及系统 |