TWI473100B - Flash memory system and its operation method - Google Patents

Flash memory system and its operation method Download PDF

Info

Publication number
TWI473100B
TWI473100B TW97134038A TW97134038A TWI473100B TW I473100 B TWI473100 B TW I473100B TW 97134038 A TW97134038 A TW 97134038A TW 97134038 A TW97134038 A TW 97134038A TW I473100 B TWI473100 B TW I473100B
Authority
TW
Taiwan
Prior art keywords
data
flash memory
cache
block
memory
Prior art date
Application number
TW97134038A
Other languages
English (en)
Other versions
TW201011760A (en
Original Assignee
A Data Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by A Data Technology Co Ltd filed Critical A Data Technology Co Ltd
Priority to TW97134038A priority Critical patent/TWI473100B/zh
Priority to US12/382,447 priority patent/US20100064095A1/en
Publication of TW201011760A publication Critical patent/TW201011760A/zh
Application granted granted Critical
Publication of TWI473100B publication Critical patent/TWI473100B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0844Multiple simultaneous or quasi-simultaneous cache accessing
    • G06F12/0855Overlapped cache accessing, e.g. pipeline
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • G06F12/0868Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/21Employing a record carrier using a specific recording technology
    • G06F2212/214Solid state disk
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7201Logical 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)
  • Memory System Of A Hierarchy Structure (AREA)

Description

快閃記憶體系統及其運作方法
本發明係涉及一種快閃記憶體系統,特別係指一種具有快取記憶體(Cache Memory)之快閃記憶體系統及其運作方法。
近幾年來,半導體技術的快速發展,使得各種儲存記憶體的容量得以大幅地增加。而在目前已普遍使用的非揮發性記憶體方面,又以快閃記憶體(Flash Memory)最為大眾所熟悉,由於快閃記憶體具有存取速度快、耐震性佳、省電及體積小等多項優點,因此已大量地應用於各種電子產品裝置之中(如:記憶卡、隨身碟、固態磁碟機(SSD)、個人數位助理(PDA)、數位相機及電腦等裝置),以作為儲存資料的重要媒介。
然而,快閃記憶體應用在儲存系統時,其必須面臨的便是使用壽命的問題,亦即快閃記憶體所能承受的抹除次數(Erase Cycle)之問題。我們都知道快閃記憶體在進行資料寫入運作時會先執行抹除區塊的動作,而一般而言快閃記憶體所能承受的抹除次數約在10,000次至100,000次之間,因此頻繁的存取動作將會大幅地影響快閃記憶體的壽命。
而為了解決上述問題,有不少先前技術提出平均抹除(Wear-level ing)的設計,但其主要是在存取資料的處理過程中,藉由演算法來平均使用快閃記憶體的記憶區塊,以避免因過度使用某些區塊而形成毀損區塊(Bad Block),進 而達到提升快閃記憶體壽命的目的。因為當這些毀損區塊的數目累積超過預留的備用區塊(Spare Block)的數目時,則會因為快閃記憶體無法提供有效的可用空間做置換而提早結束快閃記憶體的壽命。雖然上述之設計方法能進一步延長快閃記憶體的壽命,但反覆的抹除動作仍會影響快閃記憶體的壽命。
而為了達到減少抹除動作以進一步提升快閃記憶體的壽命,目前又有相關技術提出,先藉由一快取記憶體(Cache Memory)來暫存要寫入快閃記憶體的資料,再將該資料寫到快閃記憶體中,以減少資料在寫入快閃記憶體時所需的抹除次數。不過,由於在儲存系統中必須另外增加快取記憶體來暫存資料,將會佔掉儲存系統之處理器的部分處理時序,因而導致儲存系統的整體工作效率大幅地降低。
因此,要如何在提升快閃記憶體壽命的同時,亦能夠兼顧儲存系統的存取效能,便是目前值得進一步改善的重點。
有鑑於此,本發明所要解決的技術問題在於,不僅藉由增加一快取記憶體於快閃記憶體系統之中以作為暫存欲存儲資料之用,並避免該資料在進行暫存之動作影響到快閃記憶體系統的存取效能。藉此,以在達到延長快閃記憶體壽命的同時,更可實現提升快閃記憶體系統資料存取效能之目的。
為了達到上述目的,根據本發明所提出之一方案,提供一種快閃記憶體系統,其包括:一快取記憶體、一快取 記憶體介面、一主機介面、一快閃記憶體介面及一微處理器。其中快取記憶體介面係連接快取記憶體,並且快取記憶體介面進一步包含一分配器用以運行一分時(Time Sharing)處理來存取快取記憶體。而主機介面係接收主機端系統的一資料並將該資料暫存至快取記憶體以成為一待存資料。再者,快閃記憶體介面係連接至少一快閃記憶體,並且自該快取記憶體中讀取待存資料而儲存至快閃記憶體。最後,微處理器控制主機介面及快閃記憶體介面來存取快取記憶體。藉此,藉由快取記憶體介面透過分配器的分時處理,使主機介面、快閃記憶體介面及微處理器得以同步存取快取記憶體。
本發明所提出之另一方案,提供一種快閃記憶體系統的運作方法,其中該快閃記憶體系統係包含有一快取記憶體,而且快取記憶體係具有至少二快取區塊,該運作方法之步驟包括:首先,接收一資料,進而依據該資料所屬之邏輯區塊位址來將該資料暫存至所對應的快取區塊,並且指示該資料成為一待存資料。接著,重複進行接收資料並暫存至原快取區塊中,直到所接收的資料所屬之邏輯區塊位址轉而落於另一快取區塊所對應的邏輯區塊位址時,則將該資料暫存至另一快取區塊。並且,在將該資料暫存至另一快取區塊的同時,也一併將原快取區塊中所暫存的待存資料寫入快閃記憶體之一空的實體區塊。藉此,藉由重複上述步驟以完成快閃記憶體系統之運作,從而能達到對快閃記憶體系統中的快取記憶體進行同步存取,以同時執行資料的暫存以及資料寫入快閃記憶體的程序。
以上之概述與接下來的詳細說明及附圖,皆是為了能 進一步說明本發明為達成預定目的所採取之方式、手段及功效。而有關本發明的其他目的及優點,將在後續的說明及圖式中加以闡述。
本發明主要是在快閃記憶體系統中增加一快取記憶體,以將寫入資料在要側存到快閃記憶體之前,先在快取記憶體中作處理,以減少快閃記憶體上寫入及抹除(Erase)次數之程序。並且藉由資料匯流排頻寬的分時(Time Sharing)處理,以讓快取記憶體足以依據適當的分配而提供存取。進而再透過快取記憶體的相異快取區塊之設計,使得本發明得以控制不同的快取區塊而達到同步執行資料的暫存以及資料寫入快閃記憶體的程序。藉此,同時能有效提升快閃記憶體系統的存取效能以及記憶體的使用壽命。
第一圖及第二圖,為本發明快閃記憶體系統之實施例方塊圖及快取記憶體之架構示意圖。如第一圖所示,本發明提供一種快閃記憶體系統1以應用於資料之存取。快閃記憶體系統1中包括:一主機介面11、一快取記憶體12、一快取記憶體介面13、一快閃記憶體介面14、至少一快閃記憶體15及一微處理器16。其中,主機介面11用以連接一主機端系統2,用於接收主機端系統2所輸出之資料。
快取記憶體介面13用以連接及控制快取記憶體12,並且快取記憶體介面13中進一步包含一分配器131,用以運行一分時處理來存取快取記憶體12。當主機介面11接收到資料時,該資料便會經由快取記憶體介面13而先暫存至快取記憶體12,並且經過確認後以成為一待存資料。
而快閃記憶體介面14則是用來連接及控制快閃記憶體15。快閃記憶體介面14會經由快取記憶體介面13而自快取記憶體12中讀取已確認為待存資料的資料而儲存至快閃記憶體15。
再者,微處理器16是連接主機介面11、快取記憶體介面13及快閃記憶體介面14,控制主機介面11及快閃記憶體介面14對快取記憶體12進行讀取或寫入資料。於是,本實施例之快閃記憶體系統1即可藉由快取記憶體介面13中的分配器131所運行的分時處理以分配快取記憶體介面13與快取記憶體12之間的資料匯流排頻寬給主機介面11、快閃記憶體介面14及微處理器16。使得主機介面11、快閃記憶體介面14及微處理器16得以同步經由快取記憶體介面13而存取快取記憶體12,以大幅提升快閃記憶體系統1的存取效率。
本發明之快閃記憶體系統1中更可進一步包含:一主機端記憶頁緩衝器(Host Page Buffer)17及一快閃記憶體記憶頁緩衝器(Flash Page Buffer)18。其中主機端記憶頁緩衝器17是連接於主機介面11與快取記憶體介面13之間,用以暫存欲存儲之資料而緩衝提供給快取記憶體介面13,以避免該資料在欲暫存至快取記憶體12時,快取記憶體12尚未能提供完整的區塊來存放之情形。而相同的,快閃記憶體記憶頁緩衝器18則是連接於快取記憶體介面13與快閃記憶體介面14之間,用以作為快取記憶體12及快閃記憶體15相互之間的資料傳輸時的緩衝及暫存。
而進一步在快取記憶體12方面,可如第二圖所示,本實施例之快取記憶體12可例如是分割為二快取區塊(分 別為一第一快取區塊CB0及一第二快取區塊CB1)及一對照表空間TB。在實際應用設計上,快取記憶體12可設計分割為至少二快取區塊,本實施例並非用來加以限制。快取記憶體12中的空間TB可以根據實際應用設計需求,用以儲存邏輯/實體位址對照表。而第一快取區塊CB0及第二快取區塊CB1即是用以接收並暫存前述主機介面11所傳輸之資料,並且當該資料暫存於第一快取區塊CB0或第二快取區塊CB1後再進行確認及處理以成為待存資料,進而提供給快閃記憶體介面14。快取記憶體12中快取區塊之間的實際處理情形,將於以下做進一步的說明。
首先,第一快取區塊CB0及第二快取區塊CB1分別具有一標頭(Header)資訊H,而標頭資訊H進一步區分為一邏輯區塊位址欄位LBA、一實體區塊位址欄位PBA及一組頁旗標欄位PF0~PFn。其中,邏輯區塊位址欄位LBA及實體區塊位址欄位PBA用以指示所屬之快取區塊CB0或CB1所對應的邏輯區塊位址及實體區塊位址;而頁旗標欄位PF0~PFn則是用以指示所屬之快取區塊CB0或CB1中所暫存的分布在不同的頁的資料之有效性。
再者,第一快取區塊CB0及第二快取區塊CB1中更具有複數個頁位址P0~Pn,微處理器16係控制主機介面11以一邏輯頁(Page)為單位來將資料寫入第一快取區塊CB0或第二快取區塊CB1的頁位址P0~Pn。並且,上述之頁旗標欄位PF0~PFn即是分別對應快取區塊的頁位址P0~Pn,以指示頁位址P0~Pn中所儲存之暫存資料的有效性。換句話說,當資料暫存至快取區塊時,微處理器16便會更新相對應的頁旗標欄位PF0~PFn,以指示該資料為有效資料, 而當該資料已指示為有效資料後,即表示該筆資料為欲寫入快閃記憶體15之資料,因而形成為待存資料。其中,在本實施例中,若在頁旗標欄位PF0~PFn其中之一設為“1”即表示所對應之頁位址的暫存資料為有效資料;反之以“0”來表示無效資料。當然,亦可利用其它方式之設計來指示暫存資料的有效性。
快取記憶體12在實際設計上可例如為鐵電式隨機存取記憶體(FeRAM)、磁性隨機存取記憶體(MRAM)及相位變化隨機存取記憶體(PRAM)之任一種非揮發性記憶體,亦或者是採用靜態隨機存取記憶體(SRAM)等揮發性記憶體。快閃記憶體系統1中可進一步設計有一計時器19以產生一預設時間給微處理器16,使得微處理器16得以每隔該預設時間便控制快取記憶體12中所暫存的資料寫入快閃記憶體15中。
請再參考第三圖,為本發明的快取記憶體之存取運作實施例示意圖。如圖所示,假設主機介面11接收到主機端系統2所傳送的邏輯區塊a(LBa)之第二邏輯頁(Page 2)的資料,並將之暫存至快取記憶體12。其中,若該資料所屬之邏輯區塊位址是落於第一快取區塊CB0所對應的邏輯區塊位址,則將該資料寫入第一快取區塊CB0中第二頁位址P2中,並且設定對應之頁旗標欄位PF2為“1”以指示該暫存資料為有效資料。而若接下來的資料之邏輯位址同樣是落於邏輯區塊a(LBa),則直接在第一快取區塊CB0上更新所屬的頁位址,並將暫存的該資料指示為有效資料;若接下來的資料之邏輯位址於前一筆資料相同(如同樣位於第二邏輯頁P2),則直接進行覆蓋前一筆資料。
此外,邏輯區塊a(LBa)之位址是對應於實體區塊x(PBx)之位址,於是在圖三中實體區塊位址欄位PBA中即是儲存為PBx資訊。
以下之記憶體資料處理過程之實施例是用以進一步說明本發明於快取記憶體12與快閃記憶體15之間的資料處理流程。
第四A圖及第四B圖,為本發明記憶體資料處理過程之第一實施例示意圖。本實施例係接續上述第三圖之實施例的說明,如第四A圖中所示係在P0、P2及Pn之頁位址已暫存了資料,並且也已指示為有效資料而成為待存資料。
此時,若快閃記憶體系統1接收到另一筆為邏輯區塊b(LBb)之第零邏輯頁(Page 0)的資料。於是,微處理器16便控制主機介面11及快取記憶體介面13將資料暫存至第二快取區塊CB1的P0頁位址(如第四A圖中的(1)步驟),並且若接下來所接收到的資料同樣是落於第二快取區塊CB1所對應之邏輯區塊位址時,則直接於第二快取區塊CB1中寫入或覆蓋資料。
此外在執行(1)步驟的同時,微處理器16會依據第一快取區塊CB0的頁旗標欄位PF0~PFn來確認第一快取區塊CB0中的資料並非全部為待存資料,於是微處理器16同步執行一合併寫入程序(如第四A圖中的(2)步驟),控制快取記憶體介面13及快閃記憶體介面14而將第一快取區塊CB0中之待存資料讀出。並且再如第四B圖所示,自第一快取區塊CB0中所讀出之待存資料會與第一快取區塊CB0所對應之實體區塊(PBx)中的資料進行合併,而寫入快閃記憶體15中的一空的實體區塊(PBs)。其中,合併寫入指的 是,將第一快取區塊CB0中的待存資料寫入快閃記憶體15空的實體區塊(PBs)中,而其餘未更新到的頁位址之資料則自第一快取區塊CB0所對應之實體區塊(PBx)中進行讀取而寫入對應的實體區塊(PBs),以達到合併寫入的程序。
最後,當微處理器16控制該合併後之資料寫入至快閃記憶體15的空的實體區塊(PBs)後,則進行更新第一快取區塊CB0的頁旗標欄位PF0~PFn,以將已寫入快閃記憶體15的待存資料指示為無效資料,並且進一步再抹除第一快取區塊CB0所對應之快閃記憶體15實體區塊(PBx)之位址中的資料,以及將邏輯區塊LBa之位址對應至實體區塊PBs之位址。
請再參考第五A圖及第五B圖,為本發明記憶體資料處理過程之第二實施例示意圖。本實施例同樣是接續第三圖之實施例的說明,也就是在第一快取區塊CB0中已暫存了待存資料,如第五A圖中所示係在P0、P2及Pn之頁位址已暫存了資料,並且也已指示為有效資料而成為待存資料。
首先,同樣在接收另一筆為邏輯區塊b(LBb)之第零邏輯頁(Page 0)的資料之後,由於該資料所屬之邏輯區塊位址係由第一快取區塊CB0轉而落於第二快取區塊CB1所對應的邏輯區塊位址。於是,微處理器16便控制主機介面11將該資料暫存至第二快取區塊CB1的P0頁位址(如第五A圖中的(1)步驟)。此時,微處理器16會依據第一快取區塊CB0的頁旗標欄位PF0~PFn來確認第一快取區塊CB0中並非全部存在為待存資料,於是執行合併寫入程序(如第五A圖中的(2)步驟)以控制快取記憶體介面13及快閃記憶體 介面14,由第一快取區塊CB0所對應之快閃記憶體15實體區塊(PBx)之位址中,讀取對應第一快取區塊CB0中未寫入資料的頁位址(未指示為待存資料的頁位址)的資料,將該些頁資料複製到第一塊曲區塊CB0中對應的頁位址中。也就是除了P0、P2及Pn頁位址以外,快取區塊CB0中其他的頁資料皆由快閃記憶體15實體區塊(PBx)中對應的資料頁複製過來。隨後,更新快取區塊CB0的頁旗標欄位PF0~PFn的狀態,指示快取區塊CB0中的資料為有效資料。
進而再如第五B圖所示,將第一快取區塊CB0中所有已指示之待存資料寫入快閃記憶體15空的實體區塊(PBs)。並且進行更新第一快取區塊CB0的頁旗標欄位PF0~PFn的狀態,並抹除快閃記憶體15實體區塊(PBx)之位址中的資料,將邏輯區塊LBa之位址對應至實體區塊PBs之位址。
承上所述,在前述記憶體資料處理過程之第一及第二實施例中,微處理器16執行合併寫入程序時所需進行快取記憶體12及快閃記憶體15之間的資料傳輸或處理,即可透過快閃記憶體記憶頁緩衝器18來加以暫存及作為緩衝處理。
此外,當所接收的資料所屬之邏輯區塊位址係由原快取區塊轉而落於另一快取區塊所對應的邏輯區塊位址,且微處理器16依據原快取區塊的頁旗標欄位PF0~PFn而確認原快取區塊中已全部存在為待存資料,便讀取整個原快取區塊中的資料而直接寫入快閃記憶體15的空的實體區塊。之後,則同樣再進行更新原快取區塊的頁旗標欄位PF0~PFn以將已寫入快閃記憶體15的待存資料指示為無效 資料,並且進一步再抹除原快取區塊所對應之快閃記憶體15實體區塊之位址中的資料,以及更新邏輯/實體位址對照表的對應關係等動作。
為了再進一步詳細揭露本發明的實際運作過程,請再參考第六圖,為本發明快閃記憶體系統的運作方法之實施例流程圖。如圖所示,本發明提供一種快閃記憶體系統的運作方法,其步驟包括:首先,進行接收一資料(S601),並且判斷該資料所屬之邏輯區塊位址是否落於目前快取區塊所對應的邏輯區塊位址(S603)。
若步驟(S603)的判斷結果為是,則表示目前接收到的資料與前一筆資料是暫存在同一快取區塊中,於是便直接接收該資料並暫存至原快取區塊。然後更新原快取區塊中的頁旗標欄位,以將資料指示為有效資料而成為待存資料(S605)。而若步驟(S603)的判斷結果為否,則表示目前接收的資料所屬之邏輯區塊位址係由原快取區塊轉而落於另一記憶區塊所對應的邏輯區塊位址。也就是目前接收的資料與前一筆資料屬於不同的記憶區塊的儲存資料,所以須暫存於不同的快取區塊。於是便將目前接收的資料暫存至另一快取區塊中,並且更新該另一快取區塊中的頁旗標欄位以將該資料指示為有效資料而成為待存資料(S607)。而在步驟(S605)或步驟(S607)之後,則再繼續進行步驟(S601)接收資料的動作,以當所接收的資料是落於與前一筆資料相同的快取區塊時(屬於同一記憶區塊中的資料),得以繼續寫入所屬的快取區塊。
此外,在步驟(S603)的判斷結果為否而執行步驟(S607)的同時,更會同步進行以下之步驟。首先進行判斷 原快取區塊是否已存滿資料且皆已指示成為待存資料(S609)。若步驟(S609)的判斷結果為否,即表示原快取區塊中存在有非待存資料,於是便執行一合併寫入程序(S611),合併原快取區塊中的待存資料與原快取區塊所對應之快閃記憶體實體區塊位址中的資料,並且將合併後的資料寫入快閃記憶體一可使用的(已抹除過的)實體區塊。
反之,若步驟(S609)的判斷結果為是,即表示原快取區塊中整個區塊的資料皆已被指示為待存資料,於是便執行一直接寫入程序(S613),而不需與其他資料進行合併,以直接將原快取區塊中的待存資料寫入快閃記憶體一可使用的(已抹除過的)實體區塊。
而在步驟(S611)或步驟(S613)進行寫入程序之後,則更新原快取區塊中的頁旗標欄位,以將已寫入快閃記憶體的待存資料指示為無效資料(S615),而得以繼續接收及暫存其他的資料。此外,在步驟(S615)之後,則再進行抹除原快取區塊所對應之快閃記憶體實體區塊中的資料(S617),以及更新邏輯/實體位址對照表,以將原快取區塊屬之邏輯區塊位址對應至先前步驟S611或S613所述之資料寫入的實體區塊之位址(S619)。藉此,藉由重複本實施例所提供之步驟,以完成本發明快閃記憶體系統進行資料存取之運作。
綜上所述,本發明藉由增加一快取記憶體,在寫入資料要儲存到快閃記憶體之前,先在快取記憶體中作處理,以減少快閃記憶體上寫入及抹除(Erase)之程序,並且再透過資料匯流排頻寬的分時(Time Sharing)處理,以讓快取記憶體足以依據適當的分配而提供存取。此外,本發明再 透過控制快取記憶體中不同快取區塊之存取,使之得以達到同步執行資料的暫存以及資料寫入快閃記憶體的程序。藉此,同時能有效提升快閃記憶體系統的存取效能以及記憶體壽命。
本發明中,邏輯/實體位址對照表可以儲存在快取區塊中的對照表空間TB中,亦可儲存於其它空間,如主機的檔案系統中。
惟,以上所述,僅為本發明的具體實施例之詳細說明及圖式而已,並非用以限制本發明,本發明之所有範圍應以下述之申請專利範圍為準,任何熟悉該項技藝者在本發明之領域內,可輕易思及之變化或修飾皆可涵蓋在以下本案所界定之專利範圍。
快閃記憶體系統‧‧‧1
主機介面‧‧‧11
快取記憶體‧‧‧12
快取記憶體介面‧‧‧13
分配器‧‧‧131
快閃記憶體介面‧‧‧14
快閃記憶體‧‧‧15
微處理器‧‧‧16
主機端記憶頁緩衝器‧‧‧17
快閃記憶體記憶頁緩衝器‧‧‧18
計時器‧‧‧19
主機端系統‧‧‧2
第一快取區塊‧‧‧CB0
第二快取區塊‧‧‧CB1
對照表空間‧‧‧TB
邏輯區塊位址欄位‧‧‧LBA
實體區塊位址欄位‧‧‧PBA
頁旗標欄位‧‧‧PF0~PFn
標頭資訊‧‧‧H
頁位址‧‧‧P0~Pn
第一圖係本發明快閃記憶體系統之實施例方塊圖;第二圖係本發明的快取記憶體之架構示意圖;第三圖係本發明的快取記憶體之存取運作實施例示意圖;第四A圖及第四B圖係本發明記憶體資料處理過程的第一實施例示意圖;第五A圖及第五B圖係本發明記憶體資料處理過程的第二實施例示意圖;及第六圖係本發明快閃記憶體系統的運作方法之實施例流程圖。
快閃記憶體系統‧‧‧1
主機介面‧‧‧11
快取記憶體‧‧‧12
快取記憶體介面‧‧‧13
分配器‧‧‧131
快閃記憶體介面‧‧‧14
快閃記憶體‧‧‧15
微處理器‧‧‧16
主機端記憶頁緩衝器‧‧‧17
快閃記憶體記憶頁緩衝器‧‧‧18
計時器‧‧‧19
主機端系統‧‧‧2

Claims (12)

  1. 一種快閃記憶體系統,包括:一快取記憶體,係具有至少二快取區塊;一分配器,係耦接於該快取記憶體,透過資料匯流排頻寬之分時(Time Sharing)處理,根據資料,對不同該快取區塊進行分配存取;一主機介面,係接收一主機端系統的一資料並暫存至該快取記憶體以成為一待存資料;其中當該資料所屬之邏輯區塊位址係由其中之一該快取區塊轉而落於另一邏輯區塊位址時,則該資料暫存至該另一快取區塊,同時對該原快取區塊中的待存資料執行一合併寫入程序,該合併寫入程序是合併該原快取區塊中的該待存資料及該原快取區塊所對應之快閃記憶體實體區塊位址中的資料,並將合併後之資料寫入該快閃記憶體中的一空的實體區塊。
  2. 如申請專利範圍第1項所述之快閃記憶體系統,其中該快取記憶體可進一步包括一邏輯/實體位址對照表空間,用以儲存一邏輯/實體位址對照表。
  3. 如申請專利範圍第1項所述之快閃記憶體系統,其中該系統可進一步包含:一快閃記憶體介面,係連接至少一快閃記憶體,並且自該快取記憶體中讀取該待存資料而儲存至該快閃記憶體;及一微處理器,係控制該主機介面及該快閃記憶體介面 存取該快取記憶體。
  4. 如申請專利範圍第3項所述之快閃記憶體系統,其中該些快取區塊分別具有一標頭(Header)資訊,指示所屬之快取區塊所對應之快閃記憶體的相關信息,包括:邏輯區塊位址、實體區塊位址,以及所屬之快取區塊中所暫存的資料之有效性。
  5. 如申請專利範圍第4項所述之快閃記憶體系統,其中該標頭資訊係利用一組頁旗標(Page Flag)欄位來指示該暫存資料的有效性。
  6. 如申請專利範圍第5項所述之快閃記憶體系統,其中該微處理器係控制該主機介面以一邏輯頁(Page)為單位來將該資料寫入該快取記憶體的快取區塊,該微處理器隨後更新該組頁旗標欄位以指示該資料為有效資料而形成該待存資料。
  7. 如申請專利範圍第1項所述之快閃記憶體系統,其中當合併後之資料寫入該快閃記憶體中該空的實體區塊後,則將該已寫入快閃記憶體的該待存資料指示為無效資料,並抹除該原快取區塊所對應之該快閃記憶體實體區塊位址中的資料。
  8. 如申請專利範圍第1項所述之快閃記憶體系統,其中若該原快取區塊中已暫存寫滿該資料,並且皆指示為該待存資料,則該微處理器係執行一直接寫入程序,直接將該待存資料寫入該快閃記憶體中之一空的實體區塊。
  9. 如申請專利範圍第1項所述之快閃記憶體系統,其中該快取記憶體係為鐵電式隨機存取記憶體(FeRAM)、 磁性隨機存取記憶體(MRAM)、相位變化隨機存取記憶體(PRAM)及靜態隨機存取記憶體(SRAM)之一或組合。
  10. 如申請專利範圍第3項所述之快閃記憶體系統,進一步包含一計時器,以使該微處理器每隔一預設時間便控制該快取記憶體中所暫存之資料寫入該快閃記憶體。
  11. 如申請專利範圍第3項所述之快閃記憶體系統,進一步包含:一主機端記憶頁緩衝器(Host Page Buffer),係連接於該主機介面及該快取記憶體介面之間,用以暫存該資料而提供給該快取記憶體介面;及一快閃記憶體記憶頁緩衝器(Flash Page Buffer),係連接於該快取記憶體介面及該快閃記憶體介面之間,用以暫存該寫入快閃記憶體之資料。
  12. 一種如申請專利範圍第1項所述之快閃記憶體系統的運作方法,該運作方法之步驟包括:(a)一主機介面接收一主機端系統的一資料;(b)依據該資料所屬之邏輯區塊位址來將該資料暫存至一快取記憶體中所對應的其中之一快取區塊,進而指示該資料成為一待存資料;(c)重複執行步驟(a)至(b),直到該資料所屬之邏輯區塊位址係轉而落於另一邏輯區塊位址時,則將該資料暫存至該另一快取區塊;及(d)於步驟(c)將該資料暫存至該另一快取區塊的同 時,進行一合併寫入程序,以將該原快取區塊中所暫存的該待存資料及該原快取區塊所對應之快閃記憶體實體區塊位址中的資料合併,將合併後之資料寫入該快閃記憶體之一空的實體區塊;藉此,藉由重複上述步驟以完成該快閃記憶體系統之運作。
TW97134038A 2008-09-05 2008-09-05 Flash memory system and its operation method TWI473100B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
TW97134038A TWI473100B (zh) 2008-09-05 2008-09-05 Flash memory system and its operation method
US12/382,447 US20100064095A1 (en) 2008-09-05 2009-03-17 Flash memory system and operation method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW97134038A TWI473100B (zh) 2008-09-05 2008-09-05 Flash memory system and its operation method

Publications (2)

Publication Number Publication Date
TW201011760A TW201011760A (en) 2010-03-16
TWI473100B true TWI473100B (zh) 2015-02-11

Family

ID=41800150

Family Applications (1)

Application Number Title Priority Date Filing Date
TW97134038A TWI473100B (zh) 2008-09-05 2008-09-05 Flash memory system and its operation method

Country Status (2)

Country Link
US (1) US20100064095A1 (zh)
TW (1) TWI473100B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI715408B (zh) * 2019-05-28 2021-01-01 慧榮科技股份有限公司 快閃記憶體控制器、記憶體裝置以及存取快閃記憶體模組之方法

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8806144B2 (en) * 2009-05-12 2014-08-12 Stec, Inc. Flash storage device with read cache
JP2012128644A (ja) * 2010-12-15 2012-07-05 Toshiba Corp メモリシステム
TWI587136B (zh) * 2011-05-06 2017-06-11 創惟科技股份有限公司 快閃記憶體系統及其快閃記憶體無效資料頁資訊之管理方法與回收方法
US8918581B2 (en) * 2012-04-02 2014-12-23 Microsoft Corporation Enhancing the lifetime and performance of flash-based storage
TWI567554B (zh) 2014-11-06 2017-01-21 慧榮科技股份有限公司 緩存及讀取即將寫入儲存單元之資料的方法以及使用該方法的裝置
CN107210923B (zh) 2014-12-04 2020-12-15 适应性频谱和信号校正股份有限公司 用于预测成功的dsl线路优化的方法和装置
JP6860965B2 (ja) * 2015-06-12 2021-04-21 任天堂株式会社 情報処理装置、情報処理システム、情報処理プログラムおよび情報処理方法
CN106843743B (zh) * 2015-12-03 2019-10-25 群联电子股份有限公司 数据程序化方法、存储器储存装置及存储器控制电路单元
KR20180113230A (ko) * 2017-04-05 2018-10-16 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4064558A (en) * 1976-10-22 1977-12-20 General Electric Company Method and apparatus for randomizing memory site usage
US6349365B1 (en) * 1999-10-08 2002-02-19 Advanced Micro Devices, Inc. User-prioritized cache replacement
US20040083348A1 (en) * 2002-10-28 2004-04-29 Sandisk Corporation Method and apparatus for performing block caching in a non-volatile memory system
US20040186946A1 (en) * 2003-03-19 2004-09-23 Jinaeon Lee Flash file system
US20050144365A1 (en) * 2003-12-30 2005-06-30 Sergey Anatolievich Gorobets Non-volatile memory and method with control data management
US20050223154A1 (en) * 2004-04-02 2005-10-06 Hitachi Global Storage Technologies Netherlands B.V. Method for controlling disk drive
US7035277B1 (en) * 2000-08-31 2006-04-25 Cisco Technology, Inc. Priority-based arbitration system for context switching applications
US20060149902A1 (en) * 2005-01-06 2006-07-06 Samsung Electronics Co., Ltd. Apparatus and method for storing data in nonvolatile cache memory considering update ratio

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4064558A (en) * 1976-10-22 1977-12-20 General Electric Company Method and apparatus for randomizing memory site usage
US6349365B1 (en) * 1999-10-08 2002-02-19 Advanced Micro Devices, Inc. User-prioritized cache replacement
US7035277B1 (en) * 2000-08-31 2006-04-25 Cisco Technology, Inc. Priority-based arbitration system for context switching applications
US20040083348A1 (en) * 2002-10-28 2004-04-29 Sandisk Corporation Method and apparatus for performing block caching in a non-volatile memory system
US7174440B2 (en) * 2002-10-28 2007-02-06 Sandisk Corporation Method and apparatus for performing block caching in a non-volatile memory system
US20040186946A1 (en) * 2003-03-19 2004-09-23 Jinaeon Lee Flash file system
TWI265411B (en) * 2003-03-19 2006-11-01 Samsung Electronics Co Ltd A flash file system
US20050144365A1 (en) * 2003-12-30 2005-06-30 Sergey Anatolievich Gorobets Non-volatile memory and method with control data management
US20050223154A1 (en) * 2004-04-02 2005-10-06 Hitachi Global Storage Technologies Netherlands B.V. Method for controlling disk drive
US20060149902A1 (en) * 2005-01-06 2006-07-06 Samsung Electronics Co., Ltd. Apparatus and method for storing data in nonvolatile cache memory considering update ratio

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI715408B (zh) * 2019-05-28 2021-01-01 慧榮科技股份有限公司 快閃記憶體控制器、記憶體裝置以及存取快閃記憶體模組之方法

Also Published As

Publication number Publication date
US20100064095A1 (en) 2010-03-11
TW201011760A (en) 2010-03-16

Similar Documents

Publication Publication Date Title
TWI473100B (zh) Flash memory system and its operation method
US8510500B2 (en) Device driver including a flash memory file system and method thereof and a flash memory device and method thereof
US8046526B2 (en) Wear leveling method and controller using the same
TWI474324B (zh) 平均讀寫記憶元件的方法及記憶體系統
KR100630980B1 (ko) 메모리 카드 및 반도체 장치
US8621139B2 (en) Data writing method for writing data into block of multi-level cell NAND flash memory by skipping a portion of upper page addresses and storage system and controller using the same
TWI537728B (zh) 緩衝記憶體管理方法、記憶體控制電路單元及記憶體儲存裝置
US20050021904A1 (en) Mass memory device based on a flash memory with multiple buffers
JP5808854B2 (ja) ストレージシステム及びストレージ方法
US20100011154A1 (en) Data accessing method for flash memory and storage system and controller using the same
US20100042774A1 (en) Block management method for flash memory, and storage system and controller using the same
JP2005301591A (ja) 不揮発性メモリを備えた装置及びメモリコントロ−ラ
WO2011047563A1 (zh) 非易失性存储器数据的读写控制方法及系统、存储设备
CN110955384A (zh) 数据储存装置以及非挥发式存储器控制方法
CN106557432B (zh) 缓冲存储器管理方法、存储器控制电路单元及存储装置
TWI498899B (zh) 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置
KR101403922B1 (ko) 접근 빈도에 따라 데이터를 할당하는 저장장치 및 저장방법
US8892816B1 (en) System and method for writing data to a memory
US8074128B2 (en) Block management and replacement method, flash memory storage system and controller using the same
TWI718710B (zh) 資料儲存裝置以及非揮發式記憶體控制方法
KR20100115090A (ko) 버퍼를 고려한 가비지 컬렉션 기법
JP2011070365A (ja) メモリシステム
US8423707B2 (en) Data access method for flash memory and storage system and controller using the same
JP2012113343A (ja) 記憶装置
CN107861884B (zh) 一种提高nand闪存中跨页存储地址映射效率的方法