TWI459199B - 半導體記憶體控制裝置 - Google Patents

半導體記憶體控制裝置 Download PDF

Info

Publication number
TWI459199B
TWI459199B TW100128401A TW100128401A TWI459199B TW I459199 B TWI459199 B TW I459199B TW 100128401 A TW100128401 A TW 100128401A TW 100128401 A TW100128401 A TW 100128401A TW I459199 B TWI459199 B TW I459199B
Authority
TW
Taiwan
Prior art keywords
data
stored
semiconductor memory
storage area
storage
Prior art date
Application number
TW100128401A
Other languages
English (en)
Other versions
TW201214117A (en
Inventor
Shigehiro Asano
Shinichi Kanno
Kenichiro Yoshii
Original Assignee
Toshiba Kk
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 Toshiba Kk filed Critical Toshiba Kk
Publication of TW201214117A publication Critical patent/TW201214117A/zh
Application granted granted Critical
Publication of TWI459199B publication Critical patent/TWI459199B/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
    • 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/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • 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/10Address translation
    • G06F12/1009Address translation using page tables, e.g. page table structures
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • 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
    • 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/7205Cleaning, compaction, garbage collection, erase control

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Description

半導體記憶體控制裝置
本文中所闡述之實施例大體而言係關於一半導體記憶體控制裝置。
本申請案基於並主張2010年9月22日提出申請之第2010-212646號日本專利申請案之優先權之權益;該日本專利申請案之全部內容以引用之方式併入本文中。
最普遍使用之非揮發性半導體記憶體晶片之一者係NAND型之一快閃記憶體(稱為NAND快閃記憶體)。在一NAND快閃記憶體中,最小記錄單位係一頁,且寫入係以一頁為單位執行。僅在已將先前儲存於一頁中之資料抹除之後,才可能將資料寫入至該頁中。不可能以一頁為單位來抹除資料。資料係按單位(稱為「區塊」)抹除,該等單位之每一者係由預定數目個(2或2個以上)頁構成。在當一主機(其係上位於一半導體記憶體晶片之一設備)請求資料之寫入時所指定之一位址(在下文中,一「邏輯位址」)與在NAND快閃記憶體內將資料寫入至之一頁(在下文中,一「實體位址」)之間的關係係一固定關係之情形下,每當該主機請求資料之寫入時,需要抹除一區塊中之資料以使得可將新資料寫入至該經抹除之區塊中。在此情況下,亦同時抹除對其未曾執行寫入之其他頁(在相同區塊中)。為避免此情況,可使用藉由其將儲存於欲抹除之頁中之資料暫時地移至另一記憶體(諸如一動態隨機存取記憶體(DRAM))之一方法,以使得在已抹除該區塊之後,將所請求寫入之資料與已移至另一記憶體之資料一起寫入至該區塊中。
如上文所闡釋,在邏輯位址與實體位址之間的關係係固定之情形下,若已執行寫入過程之次數在不同邏輯位址之間不很均衡,則已執行寫入過程之次數在不同實體位址之間亦不很均衡。因此,存在可藉助某些實體位址在一區中以一集中方式執行寫入過程之一可能性。NAND快閃記憶體具有其中當對其已執行寫入過程頗多次時元件耗損之一特性。因此,存在執行寫入過程之次數應在整個儲存區上儘可能均勻以使得系統之壽命可保持長久之一需求。為將執行寫入過程之次數配置成在整個儲存區上儘可能均勻,需要以使得將對已執行較少次數寫入過程之某些區執行寫入過程之一方式管理每一區段區中已執行寫入過程之次數且管理邏輯位址與實體位址之間的關係。
為回應於來自主機之一請求而讀取已藉由使用上文所闡述之方法寫入之資料,需要判定一NAND快閃記憶體內實際上儲存對應於由該主機指定之邏輯位址之資料之儲存位置(亦即,實體位址)。出於此目的,需要準備展示邏輯位址與實體位址之間的關聯之一轉譯表。高效地係,用於指示邏輯位址與實體位址之間的關聯之單位應較佳地匹配NAND快閃記憶體之頁大小;然而,舉例而言,該頁大小可係4千位元組且係相對小。舉例而言,在將256十億位元組之一邏輯位址空間劃分成各自4千位元組之若干區段之情形下,轉譯表需要具有64百萬個項目。在假定該轉譯表中之該等項目之每一者在大小上係4個位元組之情況下,該轉譯表將需要256百萬位元組之一容量。意味著該轉譯表之大小係非常大(舉例而言,參見「A Buffer Management Scheme for Improving Random Writes in Flash Storage」,http://www.usenix.org/events/fast08/tech/full_papers/kim/kim_html/)。
一般而言,一動態隨機存取記憶體(DRAM)或一靜態隨機存取記憶體(SRAM)(其每一者具有一高階隨機可存取性)可用於轉譯表。在一轉譯表之大小係大的之情形下,需要此一揮發性記憶體之容量之一大部分。存在使一記憶體之容量變得更大可導致一成本相關問題之一可能性。另外,在該轉譯表之全部保持在NAND快閃記憶體自身中之情形下,每當更新該轉譯表時,對該NAND快閃記憶體執行一寫入過程。因此,對NAND快閃記憶體執行寫入過程之次數增加,且存在半導體記憶體系統之可靠性可變得較低之一可能性。
各實施例之一目標係提供一種半導體記憶體控制裝置,該半導體記憶體控制裝置能夠抑制對一半導體記憶體晶片執行之寫入過程之次數同時抑制成本。
一般而言,根據一項實施例,一半導體記憶體控制裝置將經請求而以由一資訊處理設備使用之一經指定邏輯位址寫入之主機寫入資料寫入至一半導體記憶體晶片中。該主機寫入資料包含呈預定單位之第一資料之一或多個片段。一實體位址係指示該半導體記憶體晶片內之該第一資料之一儲存位置之資訊。一第一表係儲存於一第一記憶體中。一第二表係儲存於一第二記憶體中。一第三表係儲存於係一非揮發性記憶體之一第三記憶體中且包含其每一者指示該半導體記憶體晶片內之該第一資料之片段中之每一者之一儲存位置之實體位址。該第二表係該第三表之一子組且包含其每一者指示該半導體記憶體晶片內之該第一資料之片段中之每一者之該儲存位置之該等實體位址。該第一表包含指定一第二表項目之資訊或指定一第三表項目之資訊。該半導體記憶體控制裝置包含:一接收單元,其經組態以接收該主機寫入資料;一控制單元,其經組態以將該第一資料之該等片段之每一者寫入至一儲存區中尚未寫入資料之一儲存位置中,已自該儲存區將資料在該半導體記憶體晶片之一儲存區內抹除;及一記錄單元,其經組態以將該第一表記錄至該第一記憶體中且將該第二表記錄至該第二記憶體中,或將該第一表記錄至該第一記憶體中且將該第三表記錄至該第三記憶體中。
根據該半導體記憶體控制裝置,可抑制對一半導體記憶體晶片執行之寫入過程之次數,同時抑制成本。
下文中將參考隨附圖式闡述各種實施例。
首先,將參考圖1闡釋根據一實施例包含一半導體記憶體控制裝置之一半導體記憶體系統之一硬體組態。該半導體記憶體系統係藉由將一半導體記憶體控制裝置50與半導體記憶體元件(NAND)58A至58D連接在一起而組態成。半導體記憶體控制裝置50包含一處理器51、一開機唯讀記憶體(ROM)52、一串列進階技術附件/串列附接小型電腦系統介面[=SCSI](SATA/SAS介面)55、一記憶體控制器53、一靜態隨機存取記憶體(SRAM)54、NAND控制器57A至57D及將此等元件連接在一起之一匯流排56。NAND 58A至58D分別連接至NAND控制器57A至57D。在NAND控制器57A至57D並不需要彼此區分開之情況下,NAND控制器57A至57D可簡單地稱為NAND控制器57。類似地,在NAND 58A至58D並不需要彼此區分開之情況下,NAND 58A至58D可簡單地稱為NAND 58。
在處理器51之控制下,SATA/SAS介面55控制與一主機之通信,該主機係上位於半導體記憶體控制裝置50之一設備。開機ROM 52在其中儲存當導通該裝置時執行之一程式。各種類型之系統程式儲存於NAND 58中。處理器51控制半導體記憶體控制裝置50之全部且致使各種類型之功能藉由以下步驟實現:當導通該裝置時,自開機ROM 52讀取程式、執行該所讀取程式、根據該所執行程式將儲存於NAND 58中之各種類型之系統程式轉移至SRAM 54及在SRAM 54中執行該等系統程式。更具體而言,處理器51解譯自主機經由SATA/SAS介面55傳輸之一命令。處理器51根據該命令控制至NAND 58之任一者之資料之寫入或自NAND 58之任一者之資料之讀取。
記憶體控制器53控制至SRAM 54之寫入或自SRAM 54之讀取。SRAM 54在其中儲存各種類型之資料及各種類型之程式。根據本實施例,SRAM 54在其中儲存一正向查找表(稍後予以闡釋)之一部分以及一位元向量表。NAND控制器57之每一者經組態以控制NAND 58中之對應者且包含一錯誤校正電路。
NAND 58之每一者對應於一半導體記憶體晶片且(舉例而言)係一NAND快閃記憶體中所使用之一記憶體元件。不可能隨機自NAND 58之每一者讀取資料及將資料寫入至NAND 58之每一者,但可能以稱為「頁」之單位讀取及寫入資料。複數個頁一起形成稱為一「區塊」之一儲存區單位。在本實例中,一頁係由4千位元組構成,且一個區塊係由64個頁形成。NAND 58之每一者經組態有放置在一起之複數個區塊。在本實施例中,如圖1中所示,NAND 58之數目係四。將通道(CH0至CH3)分別分配至NAND 58A至58D。如稍後將闡釋,在由主機請求寫入之資料大於一頁之大小(在下文中,可稱為「頁大小」)之情形下,半導體記憶體控制裝置50將該資料劃分成複數個片段,且將按頁劃分之資料片段(在下文中,「經劃分之資料片段」)分配且寫入至各別通道CH0至CH3。
此處,將闡釋用於將資料寫入至NAND 58中之一寫入方法。一NAND半導體記憶體元件習用地採用一日誌結構方法。根據一日誌結構方法,在寫入前需要抹除一區塊。一區塊之抹除係抹除儲存於該區塊中之資料且(舉例而言)將構成該區塊之儲存區中之所有位元設定為「1」。半導體記憶體控制裝置50以一區塊為單位執行此抹除且以一頁為單位執行寫入至該經抹除區塊。因此,在NAND 58(其係一NAND型)中,可依序地將資料寫入至一經抹除區塊中之未寫入頁,且不可覆寫經寫入之頁。此外,回應於來自主機之一請求之資料之寫入係由主機中所使用之一邏輯位址(亦即,邏輯區塊位址(LBA))指定。相比而言,將資料寫入至NAND 58中係根據NAND 58之實體儲存位置(亦即,實體區塊位址(PBA))以該區塊中之頁之遞升次序而不論邏輯位址而執行。換言之,無論資料寫入請求中指定何種邏輯位址,將資料寫入至該等頁係以該區塊內之一預定次序執行。在寫入目標資料之大小小於頁大小之情形下,讀取含有寫入目標部分之頁中之資料並將其與該寫入目標部分合併以匹配頁大小,以使得寫入係以一頁為單位執行。在資料大於頁大小之情形下,將該資料區段化成複數個頁且散佈至所分配區塊,以使得寫入係以一頁為單位執行。邏輯位址與實體位址之間的關聯係儲存於正向查找表(稍後予以闡釋)中。當主機藉助再次指定先前資料請求中指定之邏輯位址而請求新資料之寫入時,半導體記憶體控制裝置50將該新資料寫入至一經抹除區塊中之一未寫入頁。在此情況下,先前執行對應於此邏輯位址之寫入至其之頁將其狀態改變成「無效」且將新資料寫入至其之頁將其狀態改變成「有效」。
在此情況下,「無效」係指一邏輯位址並不指示實體位址之位置之狀態,而「有效」係指一邏輯位址指示實體位址之位置之狀態。因此,當資料係無效時,一邏輯位址並不指示儲存該資料之一儲存區之一實體位址之位置。當資料係有效時,一邏輯位址指示儲存該資料之一儲存區之一實體位址之位置。當頁之一實體位置係無效時,一邏輯位址並不指示對應於該頁之一儲存區之實體位址之位置。當一頁係有效時,一邏輯位址指示對應於該頁之一儲存區之實體位址之位置。
根據日誌結構方法,當變得無效之頁之數目因繼續寫入而增加時,NAND 58中之寫入可實現容量(在下文中,可寫入容量)變得更小。在可將資料寫入至其之新經抹除區塊之數目(亦即,抹除後尚未將資料寫入至其之區塊(在下文中,「自由區塊」)之數目)減少且不能保留每一通道中之一自由區塊之時間點處,發生一寫入不可能狀態。為防止該狀態,在半導體記憶體控制裝置50中,以適當時序進行廢棄項目收集。NAND 58中進行之廢棄項目收集將特定稱為壓縮。圖2係用於闡釋壓縮之一概念圖。半導體記憶體控制裝置50收集在含有變得無效之頁之區塊中未變得無效之以實體位址寫入之資料(稱為有效資料)且以新方式將該所收集之有效資料重寫於自由區塊中以將該有效資料移至該自由區塊。之後,半導體記憶體控制裝置50抹除該等區塊以產生一新的自由區塊。在半導體記憶體控制裝置50中,藉由執行此壓縮,不可寫入之區塊變得再次可寫入,從而允許保留自由區塊。另外,若由於移動資料而在寫入有效資料之一區塊中存在一未經寫入之頁,則可以新方式將資料寫入至該頁。
需要至少一個自由區塊以執行此壓縮,此意味著NAND 58中所實施之容量(稱為所實施容量)大於實際可實現寫入之容量。在本實施例中,所實施容量與可寫入容量之間的差稱為「備用容量」。當該備用容量係小的時,半導體記憶體控制裝置50必須頻繁實行壓縮,此對其效能具有一重大影響。
接下來,將參考圖3闡釋半導體記憶體控制裝置50中實施之功能。半導體記憶體控制裝置50包含一主機介面單元60、一緩衝器控制單元61、一位址轉譯單元62、一通道(CH)分配單元63、一壓縮候選偵測單元64、一管理表更新單元65、NAND控制單元66A至66D、一資料緩衝器67、一壓縮讀取佇列68及一管理表69。主機介面單元60之功能係藉由處理器51執行程式及SATA/SAS介面55之功能而實現。當處理器51執行程式時,實施位址轉譯單元62、CH分配單元63、管理表更新單元65、壓縮候選偵測單元64及緩衝器控制單元61之功能。NAND控制單元66A至66D之功能分別對應於NAND控制器57A至57D且係藉由處理器51執行程式及分別對應於NAND控制單元66A至66D之NAND控制器57A至57D之功能來實施。NAND控制單元66A至66D以一對一之對應方式對應於上文所闡述之通道CH0至CH3分別分配至其之NAND 58A至58D。在NAND控制單元66A至66D並不需要彼此區分開之情況下,NAND控制單元66A至66D可簡單稱為NAND控制單元66。舉例而言,資料緩衝器67及壓縮讀取佇列68係保留於SRAM 54中之儲存區。管理表69稍後將予以詳細闡釋且其係儲存於SRAM 54中及NAND 58中之資訊。
主機介面單元60係控制主機與半導體記憶體控制裝置50之間的通信之一介面。主機介面單元60接收自主機傳輸之一命令,且當該命令請求藉助一指定邏輯位址之資料之寫入時,主機介面單元60將該命令(在下文中,「寫入命令」)傳輸至位址轉譯單元62(稍後將予以闡釋)。在彼情況下,當所請求寫入之資料之大小等於或小於頁大小時,主機介面單元60將該資料傳輸至緩衝器控制單元61(稍後將予以闡釋)。當該資料之大小大於頁大小時,主機介面單元60將該資料劃分成以一頁為單位之若干片段,且將如此劃分之資料片段(在下文中,「經劃分之資料片段」)傳輸至緩衝器控制單元61。原因乃係邏輯位址與實體位址之間的轉譯係基於頁單元進行。舉例而言,主機介面單元60將128千位元組資料劃分成32個4千位元組資料片段。為便於闡釋起見,回應於該寫入命令而傳輸至緩衝器控制單元61之資料或經劃分資料片段將稱為寫入目標資料。
在自主機傳輸之一命令請求藉助指定邏輯位址之資料之讀取之情形下,若所請求讀取之資料之大小等於或小於頁大小時,主機介面單元60將該命令(在下文中,「讀取命令」)傳輸至位址轉譯單元62。在所請求讀取之資料之大小大於頁大小之情形下,主機介面單元60將請求基於頁單元之資料之讀取之一命令(亦即,一讀取命令)傳輸至位址轉譯單元62。在此情況下,主機介面單元60藉由使用由自主機傳輸之命令指定之邏輯位址而計算欲讀取之資料片段之每一者之邏輯位址,且將請求藉助所計算之邏輯位址讀取資料之讀取命令傳輸至位址轉譯單元62。此外,主機介面單元60藉由使用緩衝器控制單元61(稍後將予以闡釋)來讀取儲存於資料緩衝器67中之一指定區中之欲讀取之資料,且將其傳輸至主機。
管理表69包含正向查找表及位元向量表。正向查找表指示資料之邏輯位址與指示NAND 58中寫入資料之一實體儲存位置之實體位址之間的一關聯。此一正向查找表係在指定指示儲存對應於由主機指定之邏輯位址之資料之NAND 58上之儲存位置之實體位址時使用。
圖4係正向查找表之一資料結構之一概念圖。如圖4中所示,正向查找表使用一邏輯位址作為一索引,且包含若干項目,該等項目包含賦予一通道之一編號(通道編號)、賦予一實體區塊之一編號(實體區塊編號)及賦予一頁之一頁編號。資料片段之每一者之邏輯位址係基於來自主機之一資料寫入請求中指定之一邏輯位址而計算。在此實施例中通道編號係CH0至CH3。通道編號指示包含儲存對應於邏輯位址之資料之實體區塊之NAND 58連接至之通道。頁編號指示將對應於邏輯位址之資料儲存於由通道編號及實體區塊編號識別之實體區塊中之哪一頁中。舉例而言,頁編號可以實體位址之次序賦予,或實體位址自身可以頁編號賦予。
正向查找表係每當讀取資料時被參考且每當回應於來自主機之一請求或回應於一壓縮而將資料寫入於NAND 58中時予以更新。稍後將闡釋如何參考及更新正向查找表。由於參考及更新正向查找表之頻率較高,因此,一般而言藉由使用一揮發性記憶體(諸如一DRAM或一SRAM)來安裝正向查找表。然而,舉例而言,在以4千位元組之一區段為單位來管理具有256十億位元組之一容量之一NAND 58之情形下,需要具有具有數目係64百萬(=256十億/4K)之項目之一正向查找表。若該正向查找表中之該等項目之每一者在大小上係4個位元組,則需要安裝具有「256百萬位元組(=64百萬*4個位元組)」之一總容量之一揮發性記憶體。此外,為實現NAND 58之每一者具有一更大容量,將存在需要安裝具有與該更大容量成比例之一容量之一揮發性記憶體之一約束。根據本實施例,可藉由藉助以組合方式使用NAND 58(其具有比揮發性記憶體低之一每容量價格)及一揮發性記憶體來減小揮發性記憶體之容量且結構化正向查找表來抑制成本。亦即,根據該實施例,依據正向查找表,指示邏輯位址與實體位址之間的關聯之資訊係部分地儲存於SRAM 54中且部分地儲存至NAND 58中。因此,可減少結構化正向查找表所需要之揮發性記憶體之容量。
更具體而言,正向查找表係由儲存於揮發性記憶體中之一第一表及一第二表及儲存於NAND 58中之一第三表構成。第一表及第二表可儲存於一揮發性記憶體(諸如DRAM或SRAM)或一非揮發性記憶體(諸如MRAM或FeRAM)中。第二表係包含其每一者指示NAND 58內之資料之一儲存位置之實體位址之資訊。第三表係包含其每一者指示NAND 58內之資料之一儲存位置之實體位址之資訊。第一表包含(i)指定一第二表項目之資訊,或(ii)指定一第三表項目之資訊。如圖6中所示之一邏輯位址之位元之一部分(自第11個位元至第28個位元)用作第一表中之一索引,且剩餘位元之一部分(自第3位元至第10位元)用作指示由第一表之一值指定之第二表或第三表之一項目中之位置之一索引。圖5係根據該實施例之正向查找表之一結構之一示意圖。在第一表中,將一儲存區以塊為單位劃分成區段。對應於一個塊之一儲存區分配為一個項目。作為一實例,在於大小上一個塊係1百萬位元組且一個項目係4個位元組之情形下,相對於一256十億位元組NAND 58之第一表之容量可經計算為「256十億位元組/1百萬位元組*4個位元組=1百萬位元組」。更具體而言,如圖6中所示,第一表中之項目之每一者展示一邏輯位址之上部18個位元,該邏輯位址係與指定其中儲存對應於其中儲存第二表之一儲存區內之該邏輯位址之一實體位址之一儲存區之指定資訊相關聯,或係與指定其中儲存對應於其中儲存第三表之一儲存區內之邏輯位址之一實體位址之一儲存區之指定資訊相關聯。該等項目之數目係256K。針對尚未存取其對應資料之一邏輯位址,依據該指定資訊賦予一值「FFFFFFFFF」。意味著在第二表或第三表中不存在對應項目。應注意,由於僅使用29個位元作為一邏輯位址,因此不存在先前已存取之一項目展示該值之可能性。
該等項目之資訊係經由下文闡釋之第二表以一頁為單位儲存於其中儲存第三表之儲存區中。圖7係第三表之一結構之一實例之一圖。藉助係第一表中之索引之一邏輯位址之上部18個位元而唯一選擇第三表中之項目之每一者。中間8個位元(自第三位元至第十位元)指定包含於一1百萬位元組塊中之256個叢集位置中之一者,以使得將對應於邏輯位址之一實體位址儲存於指定位置中。第三表之次要項目之數目係每第一表之項目256個,此乃因存在256個4千位元組叢集且一個塊在大小上係1百萬位元組(1百萬位元組/4千位元組=256)。在第一表之項目之每一者中,指定一個儲存區之指定資訊經展示對應於一邏輯位址之上部18個位元。在第三表中,256個實體位址係以此一個儲存區中之邏輯位址之次序配置。一邏輯位址中之中間8個位元(自第三位元至第十位元)用作指定次要項目之一者之一偏移,以使得一實體位址以4個位元組儲存於對應於該偏移之一儲存位置(位址)中。將第三表中之項目之資訊片段以一循環方式寫入至複數個NAND 58中。藉由組態第三表,可能減少由將資料寫入至第三表中引起且影響處理速度之附加項。第三表並不含有尚未存取之此類資料之任何實體位址。因此,第三表並不展示能夠寫入於NAND 58之容量內之所有資料之邏輯位址與實體位址之間的關聯。
第二表係第三表之一子組且充當第三表之一快取區。第二表係藉由使用一揮發性記憶體(諸如SRAM 54或一DRAM(未展示))來構成。第二表之容量係等於或少於第三表之容量。藉助係第一表中之索引之一邏輯位址之上部18個位元而唯一選擇第一表之一項目。選擇藉助第一表之所選項目指定之第二表之一項目。中間8個位元(自第三位元至第十位元)指定第二表之所選項目中之位置。舉例而言,該等中間8個位元指定包含於一1百萬位元組塊中之256個叢集之位置。將對應於邏輯位址之一實體位址儲存於該指定位置中。在第二表中,如圖7中所示,以與第三表中相同之方式,實體位址係以在由對應於第一表中之一個項目中之邏輯位址之上部18個位元之指定資訊所指定之儲存區中之邏輯位址之次序配置。一邏輯位址中之中間8個位元(自第三位元至第十位元)用作一偏移,以使得一實體位址以4個位元組儲存於對應於該偏移之一儲存位置(位址)中。每當滿足一預定條件時,將第二表中之項目之資訊片段寫入至在其中儲存第三表之儲存區中。舉例而言,該預定條件可係已寫入至其中儲存第二表之儲存區中之複數個項目之大小變得等於4千位元組(其係頁大小)或4千位元組之一倍數(例如,64千位元組)。由於將資料寫入至其中儲存第三表之儲存區中係將資料寫入至NAND 58中,因此即使半導體記憶體控制裝置50之電源關閉,仍保持邏輯位址與實體位址之間的關聯。此外,由於第二表之一個項目在大小上係1千位元組且NAND 58之頁大小係4千位元組,因此即使在一最糟情形下,四個寫入過程對應於將一個頁之資料寫入至NAND 58中。因此,與第三錶針對每一寫入過程而經更新之情況相比較,可能減少對其中儲存第三表(其儲存於NAND 58中)之儲存區執行之寫入處理之次數。
接下來,將參考圖8闡釋位元向量表。位元向量表係以二進制按頁次序展示在通道CH0至CH3之每一者上之實體區塊中之每一者中哪些頁係有效頁之一表。該有效頁意指已將有效資料寫入至其中之一頁。每一頁之二進制指示稱為一位元向量。當位元向量之值係「1」時,意味著該頁係一有效頁,且當一位元向量之值係「0」時,意味著該頁不係一有效頁(無效)。在初始狀態中,位元向量之值全部皆設定為「0」。
在本實施例中,將寫入目標資料寫入至之通道係四個通道CH0至CH3,且若假定一個實體區塊包含64個頁,則對應位元向量之數目係64。如圖8中所示,在位元向量表中,用於通道CH0至CH3之實體區塊編號用作索引。針對每一實體區塊,位元向量表包含一實體區塊編號、與包含於實體區塊中之每一者中之每一頁相關聯之位元向量及一計數器。在圖8中所示之實例中,位元向量係依通道CH0至CH3之實體區塊中之每一者之頁序列而配置,其配置方式係:自左起,通道CH0之第一頁、第二頁、...及最後頁,且在下一行中,通道CH1之第一頁、第二頁、...及最後頁,諸如此類。計數器表示其值為「1」之位元向量之總數目。由於其對應位元向量具有一值「1」之一頁係一有效頁,因此計數器表示一邏輯區塊中有效頁之數目(在下文中,「有效頁計數器」)。在此一組態中,每當主機請求資料之寫入時更新位元向量表。稍後將闡釋如何更新位元向量表。
返回至圖3之闡述,位址轉譯單元62接收來自主機介面單元60之一命令。在該命令係一讀取命令之情形下,位址轉譯單元62藉由使用由所接收讀取命令指定之邏輯位址來參考管理表69中之正向查找表,且判定寫入由該讀取命令請求讀取之資料之一頁之一通道及一實體位址。更具體而言,位址轉譯單元62藉由使用該邏輯位址之上部18個位元來參考第一表中之項目且當使用與該邏輯位址之上部18個位元相關聯之指定資訊時判定該邏輯位址與該實體位址之間的關聯是儲存於其中儲存第二表之儲存區中還是儲存於其中儲存第三表之儲存區中。端視判斷之結果,位址轉譯單元62讀取對應於來自其中儲存第二表之儲存區或來自其中儲存第三表之儲存區之邏輯位址之實體位址,且判定通道及實體位址。
隨後,位址轉譯單元62指定已經判定之一通道及一實體位址且將請求讀取資料之一命令經由CH分配單元63傳輸至對應之NAND控制單元66。相比而言,在自主機介面單元60所接收之命令係一寫入命令之情形下,位址轉譯單元62將該寫入命令傳輸至CH分配單元63(稍後將予以闡釋)。
回應於自壓縮候選偵測單元64(稍後將予以闡釋)傳輸且然後儲存於壓縮讀取佇列68(稍後將予以闡釋)中之一壓縮讀取命令,藉由參考正向查找表,位址轉譯單元62將請求藉助由該壓縮讀取命令指定之一實體位址來讀取一有效頁中之資料(有效資料)之一命令傳輸至對應於包含實體區塊(其包含該有效資料)之NAND 58連接至之通道之NAND控制單元66。該有效資料係經由NAND控制單元66自NAND 58讀取且經由緩衝器控制單元61儲存至資料緩衝器67中。位址轉譯單元62將請求寫入該有效資料之命令(稱為壓縮寫入命令)傳輸至CH分配單元63。
CH分配單元63接收來自位址轉譯單元62之該命令,且在該命令係一寫入命令之情形下,判定欲將寫入目標資料寫入至之通道。舉例而言,CH分配單元63在通道內以循環方式以4千位元組為單位執行寫入操作且根據循環次序判定資料寫入至之通道。之後,CH分配單元63將請求寫入該寫入目標資料之一命令傳輸至對應於該所判定通道之NAND控制單元66。相比而言,在由來自位址轉譯單元62之一命令藉助一指定通道及一指定實體位址而請求資料之讀取之情形下,將請求藉助指定實體位址讀取資料之一命令傳輸至對應於經指定通道之NAND控制單元66。作為另一實例,在自位址轉譯單元62接收之一命令係一壓縮寫入命令之情形下,CH分配單元63根據循環次序判定欲將資料寫入至之一通道且將請求寫入有效資料之一命令傳輸至對應於該所判定通道之NAND控制單元66。
NAND控制單元66接收來自CH分配單元63之命令且根據該所接收命令存取對應之NAND 58。更具體而言,在該命令請求寫入資料之情形下,NAND控制單元66經由緩衝器控制單元61獲得寫入目標資料且將該寫入目標資料寫入至NAND 58中。在寫入中,NAND控制單元66設定一寫入指標以依序地將一寫入儲存位置逐頁地自對應之NAND 58中之一經抹除區塊中之未寫入頁指出,將該寫入目標資料寫入至由該寫入指標指出之一儲存位置處之一頁中,且然後更新該寫入指標以指出係繼經受寫入之該頁之後的下一頁之一未寫入頁之儲存位置。因此,該寫入指標之值改變以依序指出下一寫入儲存位置。舉例而言,在一區塊係由每一通道中之一15個位元之實體位址識別且該區塊包含64個頁(6個位元)之情形下,該寫入指標總共具有15+6=21個位元。
此處,現在將闡釋寫入目標資料之資料結構。NAND控制單元66將用於偵測且校正寫入目標資料自身之一錯誤之一錯誤校正碼(稱為頁ECC)及由一寫入命令指定之一邏輯位址添加至寫入目標資料。假定頁ECC包含諸如用於偵測資料中之一錯誤之一循環冗餘檢查(CRC)碼及用以校正該資料錯誤之一錯誤校正碼(ECC)之碼。圖9係將一頁ECC添加至之寫入目標資料之一實例之一圖式。在如上文所闡述判定之通道之NAND 58中,NAND控制單元66將該寫入目標資料(將此一頁ECC及邏輯位址添加至其)寫入至由如上文所闡述判定之每一通道中之NAND 58中之寫入指標所指出之一頁。該寫入目標資料具有以頁為單位之一大小。假定NAND 58之頁大小等於該整個資料(包含該寫入目標資料及該所添加之頁ECC及該邏輯位址)之大小。基於由該寫入命令所指定之邏輯位址,藉由每一NAND控制單元66計算經劃分之資料片段中之每一者之邏輯位址。
接下來,將闡釋藉由循環處理將複數個經劃分資料片段作為寫入目標資料寫入至通道CH0至CH3。圖10係闡釋藉由循環處理執行之寫入之一圖式。為圖式之簡單化,未展示添加至該經劃分資料片段之邏輯位址。如圖10中所示,以使得第一經劃分資料D1在時間T1處寫入至通道CH0且下一經劃分資料D2在時間T2處寫入至通道CH1之一方式以自通道CH0至通道CH3之循環方式依序寫入經劃分之資料片段。在進一步寫入經劃分資料片段之一時間處,自通道CH0以循環方式依序地寫入資料。藉由以循環方式寫入經劃分之資料片段,一致地執行通道之寫入操作。在圖10中所示之實例中,展示隨時間流逝以通道次序寫入資料之一狀態。然而,本實施例並不限於此實例。可將資料同時寫入至兩個或兩個以上之通道。
返回至圖3之闡述,在自位址轉譯單元62所接收之命令請求藉助一指定實體位址來讀取一有效頁中之資料(有效資料)之情形下,NAND控制單元66藉由使用該實體位址來讀取寫入於NAND 58中對應於該實體位址之一頁中之資料,且將該所讀取資料傳輸至緩衝器控制單元61以使得將該資料儲存至資料緩衝器67中。若自NAND 58讀取之資料中存在一錯誤,則NAND控制單元66偵測該錯誤並校正其。稍後將闡釋偵測及校正資料中之一錯誤之一方法。在自CH分配單元63接收之命令請求寫入資料之情形下,NAND控制單元66經由緩衝器控制單元61擷取寫入目標資料並將該有效資料寫入至NAND 58。
壓縮候選偵測單元64參考包含於管理表69中之位元向量表,判定一邏輯區塊係一壓縮候選,然後將指定該區塊中之一有效頁之實體位址且請求讀取該有效頁之一命令(稱為壓縮讀取命令)傳輸至壓縮讀取佇列68。
資料緩衝器67係其中儲存寫入目標資料或所讀取資料之一緩衝器。壓縮讀取佇列68係其中儲存請求讀取用於壓縮之一有效頁之一命令之一先進先出緩衝器。
緩衝器控制單元61將資料緩衝器67作為複數個區來管理且管理儲存對應於該命令之資料之區。更具體而言,緩衝器控制單元61回應於一寫入命令將自主機介面單元60傳輸之寫入目標資料儲存至資料緩衝器67中,且將該寫入目標資料傳輸至對應於由CH分配單元63判定欲寫入之通道之NAND控制單元66。然後經由NAND控制單元66將寫入目標資料寫入於NAND 58中。緩衝器控制單元61回應於讀取命令將自NAND控制單元66傳輸之資料儲存至資料緩衝器67中之一指定區中,且然後將該資料傳輸至主機介面單元60。經由主機介面單元60將該資料傳輸至主機。回應於一壓縮讀取命令,緩衝器控制單元61將經由對應之NAND控制單元66自NAND 58讀取之資料儲存至資料緩衝器67中。
在自主機接收請求藉助一指定邏輯位址來寫入資料之一命令(寫入命令)之情形下,管理表更新單元65參考正向查找表,且亦更新該位元向量表,且進一步更新該正向查找表。更具體而言,管理表更新單元65首先參考正向查找表以查找將與對應於邏輯位址之實體位址相關聯之資料(亦即,與邏輯位址相關聯之資料)寫入於哪一區塊中之哪一頁中。在此情況下,管理表更新單元65藉由使用該邏輯位址之上部18個位元來參考正向查找表中之第一表之一項目且在使用與該邏輯位址之上部18個位元相關聯之指定資訊時判定該邏輯位址與該實體位址之間的關聯是儲存於其中儲存第二表之儲存區中還是儲存於其中儲存第三表之儲存區中。在對應於該邏輯位址之上部18個位元之指定資訊指示值「FFFFFFFFF」之情形下,換言之,在該邏輯位址與該實體位址之間的關聯並未儲存於其中儲存第二表之儲存區及其中儲存第三表之儲存區之任一者中之情形下,意味著在此時間之前尚未寫入該邏輯位址之資料。注意,若該指定資訊在讀取中指示值「FFFFFFFFF」,則其係一錯誤。在彼情況下,管理表更新單元65以使得第一表包含指示與指定其中儲存第二表(其儲存對應於該邏輯位址之實體位址)之儲存區之指定資訊相關聯之該邏輯位址之上部18個位元之資訊之一方式來更新第一表。此外,管理表更新單元65將對應於該邏輯位址之一項目記錄至其中儲存第二表之儲存區中。換言之,管理表更新單元65使用該邏輯位址之中間8個位元(自第三位元至第十位元)作為一偏移,且將對應於該偏移之該儲存位置(位址)中之呈4個位元之對應於該邏輯位址之實體位址寫入至其中儲存第二表之儲存區中,以將該項目記錄至其中儲存第二表之儲存區中。此外,管理表更新單元65將位元向量表中之對應於欲將寫入目標資料寫入至之頁之位元向量之值設定為「1」。欲將寫入目標資料寫入至之頁(亦即,實體位址)係由寫入指標指出。之後,管理表更新單元65使包含該頁該實體區塊中之有效頁之數目之一計數器之值遞增1。
相比而言,在第一表中之一項目中之指定資訊指示邏輯位址與相對於該邏輯位址之上部18個位元之實體位址之間的關聯係展示於第二表及第三表中之一者中之情形下,其意味著先前已將資料寫入至對應於該資料之邏輯位址之一儲存區(1百萬位元組)中。在該邏輯位址與該實體位址之間的關聯係展示於第二表中之情形下,管理表更新單元65並不更新第一表,但將寫入目標資料欲以其寫入至對應於該邏輯位址之項目中之實體位址記錄於該第二表中。在該邏輯位址與該實體位址之間的關聯係展示於第三表中之情形下,管理表更新單元65將展示對應於其中儲存第三表之儲存區內之邏輯位址之實體位址之項目記錄至其中儲存第二表之儲存區中,以將儲存於該儲存區中之每一項目自第三表移至第二表。此外,管理表更新單元65藉助寫入目標之實體位址更新第二表中之對應項目。之後,管理表更新單元65藉由以下步驟來更新第一表:在該第一表內,將對應於項目中所示之每一實體位址之一邏輯位址之上部18個位元與指示其中儲存係移動目的地之實體位址之第二表內之儲存位置之指定資訊相關聯。將寫入目標資料寫入至其中之頁(亦即,實體位址)係由寫入指標指示。
在邏輯位址與實體位址之間的關聯係展示於第二表及第三表中之一者中之情形下,由於用於當前寫入之寫入命令而需要使之前寫入之資料無效。在此情況下,管理表更新單元65將對應於儲存於針對由該寫入命令指定之邏輯位址所參考之正向查找表之項目中之實體位址處之頁之位元向量之值設定為「0」。另外,管理表更新單元65使包含該頁之實體區塊中之有效頁之數目之一計數器之值遞減1。此外,管理表更新單元65將對應於欲將寫入目標資料寫入至之頁之位元向量之值設定為「1」且使對應於包含該頁之實體區塊之有效頁之數目之一計數器之值遞增1。藉由每當執行資料之寫入時執行更新,該位元向量表及有效頁之數目之該計數器一直指示有效頁之儲存位置及其數目。
由於如上文所提及第二表充當一快取區,因此如通常使用之快取區一樣限制快取區,且因此需要將該快取區之容量保持在一預定容積範圍內。但該快取區已超過一預定位準時,需要將某些項目推出且保留一新區。將該等項目自第二表推出至第三表係由管理表更新單元65執行。用於選擇欲推出之項目之方法可係眾所周知與習用快取區一起使用之一最近最少使用(LRU)演算法或藉由其來選擇最舊項目且將其推出之一先進先出(FIFO)演算法。將該等項目自第二表推出(寫入)至第三表中係根據NAND 58之每一者之寫入大小執行。舉例而言,在將由64千位元組構成之資料(其比4千位元組頁之大小大15倍)用作執行推出之一單位之情形下,同時推出64個項目,此乃因第二表中之該等項目之每一者係由1千位元組構成。藉由使用日誌結構方法來以頁為單位將所推出之資料記錄至其中儲存第三表之儲存區中。在此實例中,同時寫入16頁。當具有欲自第二表推出之所選候選項目時,管理表更新單元65將係用於推出之候選之項目與已儲存於欲寫入至第三表中之64個項目中之記錄內容合併且將該合併之結果寫入至第三表之一新儲存區中。基於一1千位元組單位執行該合併過程。在此情況下,管理表更新單元65以使得展示已與由自第二表推出之項目指示之實體位址相關聯之邏輯位址之上部18個位元之第一表中之項目係與指定其中儲存對應於其中儲存第三表之儲存區內之邏輯位址之實體位址之儲存區之指定資訊相關聯之一方式更新第一表中之對應項目。期望第三表中之項目係儲存於NAND 58中之兩者或兩個以上者中,而非儲存於一個NAND 58中。換言之,雖然管理表更新單元65在推出同時將資料寫入至NAND 58中之一者中之一64千位元組儲存區中,但該寫入係以一循環方式對已被判定為寫入目標NAND 58之NAND 58以4千位元組為單位執行的。在此配置情形下,關於將資料寫入至第三表中,可能確保對複數個NAND 58一致地執行寫入操作。
接下來,將闡述藉由半導體記憶體控制裝置50根據本實施例執行之處理程序。首先,將參考圖11闡釋回應於來自一主機之一寫入命令而藉由半導體記憶體控制裝置50來將寫入目標資料寫入於NAND 58中之程序。在開始該寫入之前,半導體記憶體控制裝置50提前為通道中之每一者保留係一自由區塊之一實體區塊。此外,半導體記憶體控制裝置50設定每一通道之寫入指標以在通道之標頭處指出實體區塊之第一頁。當自主機接收請求藉助一指定邏輯位址寫入資料之一寫入命令(步驟S1)時,半導體記憶體控制裝置50判定由該寫入命令請求寫入之資料之大小是否等於或小於頁大小(步驟S2)。在該資料之大小係等於或小於該頁大小(在步驟S2中為是)之情形下,半導體記憶體控制裝置50將該資料(寫入目標資料)儲存於資料緩衝器67中(步驟S4)。相比而言,在由該寫入命令請求寫入之資料之大小係大於該頁大小(在步驟S2為否)之情形下,半導體記憶體控制裝置50將該資料劃分成以一頁為單位之若干片段(步驟S3)且將該等經劃分之資料片段(寫入目標資料)記錄至資料緩衝器67中(步驟S4)。
隨後,半導體記憶體控制裝置50基於由該寫入命令所指定之一邏輯位址參考正向查找表,且當其中已記錄對應於該寫入目標資料之該邏輯位址之一實體位址時,將該實體位址作為一舊實體位址儲存於(舉例而言)SRAM 54中(步驟S5)以更新該位元向量表。此外,半導體記憶體控制裝置50以循環方式判定欲將該寫入目標資料寫入至之通道(步驟S6),且將該寫入目標資料及添加至其之一頁ECC及邏輯位址寫入至由該所判定通道之NAND 58中之寫入指標所指出之一頁(步驟S7)。之後,半導體記憶體控制裝置50更新每一通道之該寫入指標以指出將該寫入目標資料寫入至之頁之後的一下一未寫入頁(步驟S8)。
圖12係圖解說明隨時間流逝寫入經劃分資料片段作為通道CH0中之寫入目標資料之一狀態之一圖式。首先,在時間t0處,保留一自由區塊。在時間t1處,將第一經劃分資料D1寫入於在時間t0處所保留之自由區塊中之第一頁(在標頭處或在末端處)中。在時間t2處,以循環方式將新判定之經劃分資料D6寫入於通道CH0中之第二頁中。類似地,在時間t3處,將經劃分資料D11寫入於第三頁中。在時間t4處,將經劃分資料D16寫入於第四頁中。以此一方式,在該實體區塊中以遞升次序判定將經劃分資料片段寫入至之頁,而不論邏輯位址。此外,每當執行寫入時設定寫入指標以按遞升次序指出將資料寫入至之一頁。在本實施例中,以循環方法一致地執行至通道之寫入操作,以使得由每一通道中之寫入指標指出之頁編號之差最大係1,如圖7中所示。此外,當在邏輯區塊中最終頁上完成寫入時,由通道中之寫入指標所指出之頁編號係相同的。
如上文所闡釋,不論由來自一主機之一寫入命令所指定之一邏輯位址之值,以一預定次序分配將寫入目標資料寫入至之頁之實體位址,且將資料寫入於該等頁中。
返回至圖11之闡述,在寫入寫入目標資料時,半導體記憶體控制裝置50將該寫入目標資料之邏輯位址與將該寫入目標資料寫入至之頁之實體位址之間的關聯寫入且記錄至正向查找表中(步驟S9)。上文已闡釋用於記錄該邏輯位址及該實體位址之具體方法。在該寫入目標資料係經劃分之資料片段之情形下,由於該等經劃分資料片段係以一頁為單位,因此半導體記憶體控制裝置50計算藉由依序地將頁大小添加至經指定之邏輯位址所獲得之值作為該等經劃分之資料片段之邏輯位址。然後,半導體記憶體控制裝置50將該邏輯位址、通道之通道編號、實體區塊之實體區塊編號及在本寫入中將寫入目標資料寫入至之頁之頁編號寫入且記錄至正向查找表中。在上文所闡述之實例中,頁編號係由更新之前之寫入指標之下部六個位元指示,以使得該值可用作該頁編號。每當執行寫入目標資料之寫入時,半導體記憶體控制裝置50更新該正向查找表。
此外,半導體記憶體控制裝置50參考該位元向量表,將對應於在步驟S5處儲存於SRAM 54中之舊實體位址之頁之該位元向量之值設定為「0」,且使包含該頁之該實體區塊之有效頁之數目之計數器之值遞減1(步驟S10)。該舊實體位址指示先前將資料寫入至之一頁係與由在步驟S1處所接收之該寫入命令指定之該邏輯位址相關聯。出於此原因,將該位元向量之值設定為「0」且使包含該頁之該實體區塊中之有效頁之數目之計數器之值遞減1。此外,半導體記憶體控制裝置50將對應於在步驟S7處將寫入目標資料寫入至之頁之位元向量之值設定為「1」,且使包含該頁之該實體區塊之有效頁之數目之計數器之值遞增1(步驟S11)。以此方式,在寫入該寫入目標資料時,半導體記憶體控制裝置50更新該位元向量表。
此外,當該寫入指標到達所有通道(CH0至CH3)中之區塊之末端且資料變得不能以新方式寫入時,半導體記憶體控制裝置50為每一新通道保留一自由區塊。將經劃分之資料片段寫入至該新自由區塊亦如上文所闡述。
接下來,將參考圖13闡釋根據來自一主機之一讀取命令藉由半導體記憶體控制裝置50自NAND 58讀取資料之程序。當自主機接收請求藉助一指定邏輯位址讀取資料之一讀取命令(步驟S20)時,半導體記憶體控制裝置50判定由該讀取命令請求讀取之資料之大小是否等於或小於頁大小(步驟S21)。在該資料之大小等於或小於頁大小(在步驟S21處為是)之情形下,半導體記憶體控制裝置50藉由使用由該讀取命令指定之邏輯位址來參考正向查找表且判定欲自其讀取該資料之一通道、一實體區塊及一頁(步驟S23)。上文已闡釋判定該通道、該實體區塊及該頁之具體方法。之後,半導體記憶體控制裝置50自對應於該所判定通道之NAND 58讀取資料(步驟S24)。
相比而言,在由該讀取命令請求讀取之資料之大小大於頁大小(在步驟S21處為否)之情形下,半導體記憶體控制裝置50劃分讀取以使得欲讀取之資料變成以頁為單位之資料片段。亦即,半導體記憶體控制裝置50藉由使用由該讀取命令指定之該邏輯位址來計算欲讀取之資料片段之邏輯位址之每一者(步驟S22)。此外,半導體記憶體控制裝置50藉由使用該等經計算邏輯位址中之每一者來參考正向查找表且判定欲自其讀取資料之通道、實體區塊及頁中之每一者(步驟S23)。隨後,半導體記憶體控制裝置50自對應於該等所判定之通道之NAND 58讀取資料片段(步驟S24)。
在步驟S24處讀取之資料之有效性係由添加至該資料之一頁ECC確保。換言之,半導體記憶體控制裝置50偵測資料中之一錯誤且可藉由使用添加至該讀取資料之頁ECC來校正該錯誤。然而,在可能存在藉助該頁ECC不能校正之一錯誤之情形下,存在NAND 58中發生一故障且資料中發生異常之可能性。在此一情形(在步驟S25處為否)中,半導體記憶體控制裝置50將指示NAND 58中發生一故障之通知資訊傳輸至主機(步驟S28)。
在於步驟S24處所讀取之資料中不存在錯誤(在步驟S25處為是)之情形下,半導體記憶體控制裝置50將該資料儲存於資料緩衝器67中之一指定區中,且行進至步驟S27。即使在於步驟S24處所讀取之資料中存在一錯誤之情形下,半導體記憶體控制裝置50藉助該頁ECC校正該資料(步驟S26),將該經校正之資料儲存於資料緩衝器67中之一指定區中,且行進至步驟S27。在步驟S27處,半導體記憶體控制裝置50將儲存於資料緩衝器67中之該指定區中之資料傳輸至主機。
當步驟S20中所接收之一讀取命令請求讀取複數個資料片段時,半導體記憶體控制裝置50可根據由該命令所指定之邏輯位址自相互不同之通道之實體區塊讀取資料。由於在如上文所闡述讀取資料時可獨立存取該等通道,因此可回應於來自主機之一請求而讀取該資料且將其傳輸至具有高響應度之主機。
接下來,將參考圖14闡釋將寫入於經受壓縮之一實體區塊中之有效資料移至一自由區塊之程序。半導體記憶體控制裝置50設定「M=4096」作為有效頁之數目之最大值,且設定「K=0」作為位元向量表中每一實體區塊之項目之一索引(步驟S40)。半導體記憶體控制裝置50藉由參考該位元向量表來逐一依序地讀取每一實體區塊之有效頁之數目之計數器之值(步驟S41)且判定該計數器之值是否小於M(步驟S42)。在有效頁之數目之該計數器之值係等於或大於M(在步驟S42處為否)之情形下,該裝置行進至步驟S44。在有效頁之數目之該計數器之值小於M(在步驟S42處為是)之情形下,半導體記憶體控制裝置50用該計數器之值替換M之值且將在步驟S41處藉助其讀取有效頁之數目之該計數器之值之項目之索引之值設定為K(步驟S43),且行進至步驟S44。
在步驟S44處,半導體記憶體控制裝置50判定是否已相對於位元向量表中之所有實體區塊讀取有效頁之數目之該計數器之值。在尚未相對於所有實體區塊讀取有效頁之數目之該計數器之值(在步驟S44處為否)之情形下,半導體記憶體控制裝置50使K之值遞增1(步驟S48),且返回至步驟S41。在步驟S41處,半導體記憶體控制裝置50讀取尚未以該位元向量表中之K之次序讀取之實體區塊中之有效頁之數目之計數器之值。相比而言,在已相對於所有實體區塊讀取有效頁之數目之該計數器之值之情形下(在步驟S44處為是),半導體記憶體控制裝置50將K之值設定為作為經受壓縮之一候選之一實體區塊之索引。之後,半導體記憶體控制裝置50判定儲存於一頁(有效頁)之資料(有效資料),該位元向量表中之該頁之位元向量相對於由索引K指示之實體區塊中之每一者指示「1」且將所有有效資料讀取至資料緩衝器67。此外,半導體記憶體控制裝置50提取添加至該有效資料之邏輯位址(步驟S45)。
隨後,半導體記憶體控制裝置50以類似於如上文所闡述之回應於寫入命令而執行之資料之寫入之一方式來寫入於步驟S45處所讀取之有效資料之每一片段(步驟S46)。換言之,半導體記憶體控制裝置50以循環方式自通道CH0至CH3判定欲將有效資料寫入至之一通道,且將該有效資料寫入至該通道中之NAND 58中之一經抹除區塊中由寫入指標指示之一頁。之後,半導體記憶體控制裝置50更新該寫入指標以指出在將該有效資料寫入至之該頁之後的一下一未寫入頁。半導體記憶體控制裝置50將經添加至該所寫入之有效資料之邏輯位址與寫入該有效資料之頁之實體位址之間的關聯寫入至該正向查找表以更新該表。更新該正向查找表之方法係如上文所闡述。在壓縮中,藉由以此方式更新正向查找表,可一直恰當保持資料之邏輯位址與實體位址之間的關聯。此外,由於將一邏輯位址添加至資料,因此可在執行該壓縮中容易地更新該邏輯位址與寫入該資料之實體位址之間的關聯。
當完成自資料緩衝器67讀取載入至資料緩衝器67之所有有效頁中之資料時(在步驟S47處為是)且完成至NAND 58之寫入時,半導體記憶體控制裝置50對已經選擇作為經受壓縮之候選之通道CH0至CH3中之實體區塊執行抹除操作,且結束該壓縮過程。
若不存在有效頁,亦即,若有效頁之數目之計數器之值係0(在步驟S42處),則半導體記憶體控制裝置50執行抹除操作而非讀取操作。
執行該壓縮過程之時序可係當藉由對一資料寫入請求之接收之一檢查所獲得之自由區塊之數目變得等於或小於一預定數目時之一時序。
如上文所闡釋,展示由主機所指定之邏輯位址與資料片段以其儲存於該半導體記憶體元片段中之實體位址之間的關聯之正向查找表係藉由以組合方式使用一非揮發性記憶體(諸如半導體記憶體元件)及一揮發性記憶體(諸如SRAM,其具有一小容量且係價格合理)而經組態成。作為一結果,可能組態半導體記憶體控制裝置50以除SRAM外不包含DRAM作為揮發性記憶體。因此可能以一低成本組態半導體記憶體控制裝置50。此外,由於儲存於SRAM 54中作為正向查找表之一部分之第二表係用作儲存於NAND 58中作為正向查找表之一部分之第三表之一快取區,因此可能抑制對NAND 58執行寫入操作之次數,同時使可能將所寫入之資料之邏輯位址與實體位址之間的關聯完全儲存至NAND 58中。因此,可能阻止所引起之對半導體記憶體系統之壽命之不良影響。
在該實施例中,藉由提供位元向量表,可以高速高效地執行壓縮。為執行壓縮,半導體記憶體控制裝置50必須識別一區塊中寫入有效資料之一有效頁,獲得對應於該有效頁之一邏輯位址,移動該有效資料,且執行使邏輯位址與將資料移至之一頁之一實體位址相關聯之一更新過程。可經由一正向查找表執行一有效頁之識別及一實體位址之更新。然而,該正向查找表係藉由經最佳化成使用一邏輯位址作為一索引之一搜尋而構成。出於此原因,在執行壓縮時經由該正向查找表進行之一有效頁之識別及一實體位址之更新導致搜尋時間中之懲罰之增加。
經受壓縮之一邏輯區塊合意地具有小數目個有效頁。此原因乃係藉由藉助壓縮而移動一有效頁,獲得若干自由區塊。為選擇具有小數目個有效頁之一邏輯區塊,可選擇具有小數目個具有一值「1」之位元向量之一項目。為計數具有一值「1」之位元向量之數目,舉例而言,可提供群計算(簡言之,計數具有一值「1」之位元之數目)。然而,當一項目之位元寬度係大的(在該實例中為320個位元)時,難以在一個循環中計算位元之數目。出於此原因,在該實例中,半導體記憶體控制裝置50根據該位元向量之值之一改變而更新圖5中所示之有效頁之數目之計數器之值。在擷取欲經受壓縮之一邏輯區塊時,藉由在該位元向量表中擷取具有最小數目個有效頁之計數器之一項目,獲得該邏輯區塊。可藉由一次讀取與所有邏輯區塊相關之項目之有效頁之數目之計數器之值之每一者來擷取有效頁之數目之計數器之值係最小之一項目。因此,在該實施例中之半導體記憶體控制裝置50中,藉由參考該位元向量表,可容易擷取具有小數目個有效頁之一邏輯區塊,且可高速高效地執行壓縮。
本發明並不限於上文所闡述之實施例,但可在實施時藉助各種經修改組件來實現而不背離本發明之精神。另外,本發明可藉由適當組合該實施例中所揭示之複數個組件以各種形式實現。舉例而言,可省略該等實施例中所闡述之某些組件。此外,可適當組合不同實施例中之某些組件。
在上文所闡述之實施例中,可將半導體記憶體控制裝置50中執行之各種程式儲存於連接至一網路(諸如網際網路)之一電腦上,且藉由經由該網路下載來提供。該等各種程式可以可安裝或執行且提供作為一電腦程式產品之一檔案之一形式記錄於諸如一光碟唯讀記憶體(CD-ROM)、一軟性磁碟(FD)、一可記錄光碟(CD-R)、一數位通用磁碟(DVD)或諸如此類之電腦可讀記錄媒體中。
在上文所闡述之實施例中,可藉由硬體來實施處理器51之功能之一部分。半導體記憶體控制裝置50可具有複數個處理器51,且上文所闡述之功能可藉由複數個處理器51來實施。藉助此一組態,可達成較高處理速度。
在上文所闡述之實施例中,將一ECC碼添加至以一頁為單位之每一資料作為一頁ECC。然而,該ECC可添加至小於一頁之一單位(舉例而言,512個位元組之一磁區之一單位)。
在上文所闡述之實施例中,連接至半導體記憶體控制裝置50之NAND 58之數目係四。然而,連接至半導體記憶體控制裝置50之NAND 58之數目並不限於此實例。
在上文所闡述之實施例中,連接至包含於半導體記憶體控制裝置50中之記憶體控制器53之記憶體係SRAM 54。然而,本發明並不限於此實例。一DRAM或一SRAM與一DRAM兩者可用作記憶體。在彼情況下,正向查找表之一部分(第一表、第二表及第三表中之至少一者)可儲存於該DRAM中。
在上文所闡述之實施例中,該等通道一對一地對應於NAND 58,但本發明並不限於此。該等通道可一對多地對應於NAND 58,亦即,可將複數個NAND 58分配至一個通道。在彼情況下,將用於識別各別NAND 58之識別編號分配至NAND 58。針對每一通道之每一區塊,將識別編號及實體位址記錄於一邏輯至實體轉譯表中。舉例而言,在將八個半導體記憶體元件分配至每一通道之情形下,將總共15個位元(包含用於識別半導體記憶體元件之3個位元及用於識別包含於每一半導體記憶體元件中之4,096個區塊之12個位元)記錄至該邏輯至實體轉譯表中,作為每一通道之區塊中之每一者之該識別編號及該實體位址。
在上文所闡述之實施例中,闡釋其中位元向量用作用於表達資料及頁之有效性/無效性之一方法之實例;然而,本發明並不限於此實例。舉例而言,另一配置係可接受的,其中,選擇某一區塊,且依序地選擇頁,以使得若存在指示該所選頁之一邏輯位址,則使該頁有效,而若不存在指示該所選頁之邏輯位址,則判定該頁係無效。為判定該邏輯位址是否存在,使用藉由其而依序地對正向查找表進行存取來檢查以瞭解該所選頁是否被指示之一方法是可接受的。另一選擇係,結構化一反向查找表以將實體位址轉譯至邏輯位址且以檢查以瞭解是否存在對應於一實體位址之一邏輯位址是可接受的。
在上文所闡釋之實施例中,期望在適當時間處對第三表執行一壓縮過程。在第三表中之該等項目當中,關於指示儲存效資料之實體位址之項目,指定其中儲存包含該等實體位址之該第三表之儲存區之指定資訊係展示於第一表中之項目中。正相反,在第三表中之該等項目當中,若指定其中儲存包含該等實體位址之第三表之儲存區之指定資訊並不展示於第一表中之項目中,則意味著以彼等實體位址儲存之資料係無效,且亦意味著該第三表中之該等項目係無效的。在藉由使用額外寫入方法來執行至第三表中之寫入過程之情形下,若該等無效項目之數量增加,則能夠實現寫入過程之NAND 58之每一者之容量(亦即,可寫入容量)變小。出於此原因,藉由在適當時間處對該第三表執行壓縮,可能將由該第三表使用之區保持在某一位準範圍內。當半導體記憶體控制裝置50對該第三表執行壓縮且移動有效項目時,半導體記憶體控制裝置50更新該第一表以使得展示指定該等項目移動之前之儲存區之指定資訊之第一表中之該等項目現在展示指定該等項目之移動之後之儲存區之指定資訊。
為增強壓縮之效率及使其可降低半導體記憶體控制裝置50之處理速度之影響更小,可期望允許由該第三表使用之區係大的以增強該壓縮過程之效率。
在上文所闡述之實施例中,第三表係儲存於NAND 58中;然而,本發明並不限於此實例。只要第三表係儲存於一非揮發性記憶體中即係可接受。
根據上文所闡述之至少一項實施例之半導體記憶體控制裝置,該半導體記憶體控制裝置將經請求而以由一資訊處理設備使用之一經指定邏輯位址寫入之主機寫入資料寫入至一半導體記憶體晶片中。該主機寫入資料包含呈預定單位之第一資料之一或多個片段。一實體位址係指示該半導體記憶體晶片內之該第一資料之一儲存位置之資訊。一第一表係儲存於一第一記憶體中。一第二表係儲存於一第二記憶體中。一第三表係儲存於係一非揮發性記憶體之一第三記憶體中且包含其每一者指示該半導體記憶體晶片內之該第一資料之片段中之每一者之一儲存位置之實體位址。該第二表係該第三表之一子組且包含其每一者指示該半導體記憶體晶片內之該第一資料之片段中之每一者之該儲存位置之該等實體位址。該第一表包含指定一第二表項目之資訊或指定一第三表項目之資訊。該半導體記憶體控制裝置包含:一接收單元,其經組態以接收該主機寫入資料;一控制單元,其經組態以將該第一資料之該等片段之每一者寫入至一儲存區中尚未寫入資料之一儲存位置中,已自該儲存區將資料在該半導體記憶體晶片之一儲存區內抹除;及一記錄單元,其經組態以將第一表記錄至該揮發性記憶體中且將該第二表記錄至該揮發性記憶體中,或將該第一表記錄至該揮發性記憶體中且將該第三表記錄至該非揮發性記憶體中。因此,可抑制對一半導體記憶體晶片執行之寫入過程之次數,同時抑制成本。
雖然已闡述了某些實施例,但僅以實例方式提供此等實施例,且並不意欲限制本發明之範疇。實際上,本文中所闡述之新穎實施例可以各種其他形式實現;此外,可在不背離本發明之精神的情形下對本文中所闡述之實施例之形式作出各種省略、替代及改變。隨附申請專利範圍及其等效物意欲涵蓋將屬於本發明範疇及精神之此等形式或修改。
50...半導體記憶體控制裝置
51...處理器
52...開機唯讀記憶體
53...記憶體控制器
54...靜態隨機存取記憶體
55...串列進階技術附件/串列附接小型電腦系統介面
56...匯流排
57A...NAND控制器
57B...NAND控制器
57C...NAND控制器
57D...NAND控制器
58A...NAND
58B...NAND
58C...NAND
58D...NAND
60...主機介面單元
61...緩衝器控制單元
62...位址轉譯單元
63...通道(CH)分配單元
64...壓縮候選偵測單元
65...管理表更新單元
66A...NAND控制單元
66B...NAND控制單元
66C...NAND控制單元
66D...NAND控制單元
67...資料緩衝器
68...壓縮讀取佇列
69...管理表
CH0...通道
CH1...通道
CH2...通道
CH3...通道
圖1係根據一實施例之一半導體記憶體系統之一實例性硬體組態之一圖式;
圖2係用於闡釋壓縮之一概念圖;
圖3係藉由一半導體記憶體控制裝置50所實現之功能之實例之一圖;
圖4係一正向查找表之一實例性資料結構之一圖式;
圖5係根據該實施例之一正向查找表之一結構之一示意圖;
圖6係用於闡釋一邏輯位址與一第一表之一資料結構之間的一關係之一圖式;
圖7係一第三表之一結構之一實例之一圖;
圖8係一位元向量表之一實例性資料結構之一圖式;
圖9係寫入目標資料之一實例之一圖式;
圖10係用於闡釋藉由循環處理所執行之寫入之一圖式;
圖11係寫入該寫入目標資料之程序之一流程圖;
圖12係圖解說明隨時間流逝寫入寫入目標資料片段之一狀態之一圖式;
圖13係讀取資料之程序之一流程圖;且
圖14係壓縮之程序之一流程圖。
50...半導體記憶體控制裝置
51...處理器
52...開機唯讀記憶體
53...記憶體控制器
54...靜態隨機存取記憶體
55...串列進階技術附件/串列附接小型電腦系統介面
56...匯流排
57A...NAND控制器
57B...NAND控制器
57C...NAND控制器
57D...NAND控制器
58A...NAND
58B...NAND
58C...NAND
58D...NAND
CH0...通道
CH1...通道
CH2...通道
CH3...通道

Claims (8)

  1. 一種半導體記憶體控制裝置,其將經請求而以由一資訊處理設備使用之一經指定邏輯位址寫入之主機寫入資料寫入至一半導體記憶體晶片中,其中該主機寫入資料包含呈預定單位之第一資料之一或多個片段,一實體位址係指示該半導體記憶體晶片內之該第一資料之一儲存位置之資訊,一第一表係儲存於一第一記憶體中,一第二表係儲存於一第二記憶體中,一第三表係儲存於係一非揮發性記憶體之一第三記憶體中且包含其每一者指示該半導體記憶體晶片內之該第一資料之片段中之每一者之一儲存位置之實體位址,該第二表係該第三表之一子組且包含其每一者指示該半導體記憶體晶片內之該第一資料之片段中之每一者之該儲存位置之該等實體位址,且該第一表包含指定一第二表項目之資訊或指定一第三表項目之資訊,且該半導體記憶體控制裝置包括:一接收單元,其經組態以接收該主機寫入資料;一控制單元,其經組態以將該第一資料之該等片段中之每一者寫入至一儲存區中尚未寫入資料之一儲存位置中,已自該儲存區將資料在該半導體記憶體晶片之一儲存區內抹除;及 一記錄單元,其經組態以將該第一表記錄至該第一記憶體中且將該第二表記錄至該第二記憶體中,或將該第一表記錄至該第一記憶體中且將該第三表記錄至該第三記憶體中;其中當該控制單元將該第一資料寫入至該半導體記憶體晶片時,該記錄單元將該實體位址記錄至其中儲存該第二表之該儲存區,且若滿足一預定條件,則該記錄單元將包含於該第二表中之該實體位址記錄至其中儲存該第三表之該儲存區中,該預定條件係:已被寫入至其中儲存該第二表之該儲存區中之複數個項目(entry)之大小為該預定單位之大小之倍數。
  2. 如請求項1之半導體記憶體控制裝置,其中若滿足該預定條件,則當該記錄單元將包含於該第二表中之該實體位址記錄至其中儲存該第三表之該儲存區中時,該記錄單元將該實體位址與已儲存於其中記錄在其中儲存該第三表之該儲存區內之該實體位址之一第一儲存區中之另一實體位址合併,以將已經合併之該等實體位址記錄至該第一儲存區中。
  3. 如請求項1之半導體記憶體控制裝置,其中該第一表包含:第一指定資訊,其指定其中儲存在其中儲存該第二表之一儲存區內之該等實體位址之儲存區之每一者;或第二指定資訊,其指定其中儲存在其中儲存該第三表之一儲存區內之該等實體位址之儲存區之每一者,且 當接收具有由該資訊處理設備指定之一第一邏輯位址之該主機寫入資料且該第一表已包含該第二指定資訊時,該記錄單元將儲存於藉由該第二指定資訊指定之該等儲存區中之該等實體位址記錄至其中儲存該第二表之該儲存區中且將指定其中儲存該等實體位址之該等儲存區之該第一指定資訊記錄至其中儲存該第一表之該儲存區中。
  4. 如請求項1之半導體記憶體控制裝置,其中該記錄單元藉由以下步驟將該等實體位址記錄至其中儲存該第三表之該儲存區中:將該等實體位址寫入至一儲存區中尚未寫入資料之儲存位置中,已自該儲存區將資料在其中儲存該第三表之該儲存區內抹除。
  5. 如請求項4之半導體記憶體控制裝置,其中該第一表包含:第一指定資訊,其指定其中儲存在其中儲存該第二表之一儲存區內之該等實體位址之儲存區之每一者;或第二指定資訊,其指定其中儲存在其中儲存該第三表之一儲存區內之該等實體位址之儲存區之每一者,且該記錄單元藉由將一第二實體位址寫入至已自其將資料在其中儲存該第三表之該儲存區內抹除之一新儲存區中來進一步執行廢棄項目收集,已將該第二實體位址儲存於非藉由與包含於該第一表中之該資訊相關聯之該第二指定資訊指定之一儲存區中。
  6. 如請求項1之半導體記憶體控制裝置,其中該第三表係 儲存於該半導體記憶體晶片中。
  7. 一種半導體記憶體控制裝置,其將經請求而以由一資訊處理設備使用之一經指定邏輯位址寫入之主機寫入資料寫入至一半導體記憶體晶片中,其中該主機寫入資料包含呈預定單位之第一資料之一或多個片段,一實體位址係指示該半導體記憶體晶片內之該第一資料之一儲存位置之資訊,一第一表係儲存於一第一記憶體中,一第二表係儲存於一第二記憶體中,一第三表係儲存於係一非揮發性記憶體之一第三記憶體中且包含其每一者指示該半導體記憶體晶片內之該第一資料之片段中之每一者之一儲存位置之實體位址,該第二表係該第三表之一子組且包含其每一者指示該半導體記憶體晶片內之該第一資料之片段中之每一者之該儲存位置之該等實體位址,且該第一表包含指定一第二表項目之資訊或指定一第三表項目之資訊,且該半導體記憶體控制裝置包括:一接收單元,其經組態以接收該主機寫入資料;一控制單元,其經組態以將該第一資料之該等片段中之每一者寫入至一儲存區中尚未寫入資料之一儲存位置中,已自該儲存區將資料在該半導體記憶體晶片之一儲存區內抹除;及 一記錄單元,其經組態以將該第一表記錄至該第一記憶體中且將該第二表記錄至該第二記憶體中,或將該第一表記錄至該第一記憶體中且將該第三表記錄至該第三記憶體中;其中該第一表包含:第一指定資訊,其指定其中儲存在其中儲存該第二表之一儲存區內之該等實體位址之儲存區之每一者;或第二指定資訊,其指定其中儲存在其中儲存該第三表之一儲存區內之該等實體位址之儲存區之每一者,且當接收具有由該資訊處理設備指定之一第一邏輯位址之該主機寫入資料且該第一表已包含該第二指定資訊時,該記錄單元將儲存於藉由該第二指定資訊指定之該等儲存區中之該等實體位址記錄至其中儲存該第二表之該儲存區中且將指定其中儲存該等實體位址之該等儲存區之該第一指定資訊記錄至其中儲存該第一表之該儲存區中。
  8. 一種半導體記憶體控制裝置,其將經請求而以由一資訊處理設備使用之一經指定邏輯位址寫入之主機寫入資料寫入至一半導體記憶體晶片中,其中該主機寫入資料包含呈預定單位之第一資料之一或多個片段,一實體位址係指示該半導體記憶體晶片內之該第一資料之一儲存位置之資訊,一第一表係儲存於一第一記憶體中, 一第二表係儲存於一第二記憶體中,一第三表係儲存於係一非揮發性記憶體之一第三記憶體中且包含其每一者指示該半導體記憶體晶片內之該第一資料之片段中之每一者之一儲存位置之實體位址,該第二表係該第三表之一子組且包含其每一者指示該半導體記憶體晶片內之該第一資料之片段中之每一者之該儲存位置之該等實體位址,且該第一表包含指定一第二表項目之資訊或指定一第三表項目之資訊,且該半導體記憶體控制裝置包括:一接收單元,其經組態以接收該主機寫入資料;一控制單元,其經組態以將該第一資料之該等片段中之每一者寫入至一儲存區中尚未寫入資料之一儲存位置中,已自該儲存區將資料在該半導體記憶體晶片之一儲存區內抹除;及一記錄單元,其經組態以將該第一表記錄至該第一記憶體中且將該第二表記錄至該第二記憶體中,或將該第一表記錄至該第一記憶體中且將該第三表記錄至該第三記憶體中;其中該記錄單元藉由以下步驟將該等實體位址記錄至其中儲存該第三表之該儲存區中:將該等實體位址寫入至一儲存區中尚未寫入資料之儲存位置中,已自該儲存區將資料在其中儲存該第三表之該儲存區內抹除;該第一表包含:第一指定資訊,其指定其中儲存在其 中儲存該第二表之一儲存區內之該等實體位址之儲存區之每一者;或第二指定資訊,其指定其中儲存在其中儲存該第三表之一儲存區內之該等實體位址之儲存區之每一者,且該記錄單元藉由將一第二實體位址寫入至已自其將資料在其中儲存該第三表之該儲存區內抹除之一新儲存區中來進一步執行廢棄項目收集,已將該第二實體位址儲存於非藉由與包含於該第一表中之該資訊相關聯之該第二指定資訊指定之一儲存區中。
TW100128401A 2010-09-22 2011-08-09 半導體記憶體控制裝置 TWI459199B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010212646A JP5010723B2 (ja) 2010-09-22 2010-09-22 半導体記憶制御装置

Publications (2)

Publication Number Publication Date
TW201214117A TW201214117A (en) 2012-04-01
TWI459199B true TWI459199B (zh) 2014-11-01

Family

ID=44719252

Family Applications (1)

Application Number Title Priority Date Filing Date
TW100128401A TWI459199B (zh) 2010-09-22 2011-08-09 半導體記憶體控制裝置

Country Status (6)

Country Link
US (1) US8612721B2 (zh)
EP (1) EP2434405A1 (zh)
JP (1) JP5010723B2 (zh)
KR (1) KR101336382B1 (zh)
CN (1) CN102436353B (zh)
TW (1) TWI459199B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI663543B (zh) * 2016-09-20 2019-06-21 東芝記憶體股份有限公司 Memory system
TWI678129B (zh) * 2018-05-25 2019-11-21 香港商艾思科有限公司 發光儲存裝置及發光控制方法
US10698617B2 (en) 2018-05-31 2020-06-30 Toshiba Memory Corporation Memory system

Families Citing this family (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5722685B2 (ja) 2011-04-12 2015-05-27 株式会社日立製作所 半導体装置、不揮発性メモリ装置の制御方法
US8806108B2 (en) * 2011-06-07 2014-08-12 Hitachi, Ltd. Semiconductor storage apparatus and method of controlling semiconductor storage apparatus
JP5687648B2 (ja) 2012-03-15 2015-03-18 株式会社東芝 半導体記憶装置およびプログラム
JP5813589B2 (ja) 2012-07-13 2015-11-17 株式会社東芝 メモリシステムおよびその制御方法
CN103886902B (zh) * 2012-12-19 2017-08-04 比亚迪股份有限公司 一种eeprom存储装置及其数据存储方法
US9189389B2 (en) * 2013-03-11 2015-11-17 Kabushiki Kaisha Toshiba Memory controller and memory system
US10642795B2 (en) * 2013-04-30 2020-05-05 Oracle International Corporation System and method for efficiently duplicating data in a storage system, eliminating the need to read the source data or write the target data
WO2014203316A1 (ja) * 2013-06-17 2014-12-24 富士通株式会社 情報処理装置、制御回路、制御プログラム、及び制御方法
JP2015001908A (ja) * 2013-06-17 2015-01-05 富士通株式会社 情報処理装置、制御回路、制御プログラム、および制御方法
JP5967307B2 (ja) * 2013-06-17 2016-08-10 富士通株式会社 情報処理装置、制御回路、制御プログラム、及び制御方法
US20150261444A1 (en) * 2014-03-12 2015-09-17 Kabushiki Kaisha Toshiba Memory system and information processing device
TWI530787B (zh) 2014-06-05 2016-04-21 宏碁股份有限公司 電子裝置以及資料寫入方法
CN105204775B (zh) * 2014-06-26 2018-08-07 宏碁股份有限公司 电子装置以及数据写入方法
KR20160075174A (ko) * 2014-12-19 2016-06-29 에스케이하이닉스 주식회사 메모리 시스템 및 그 동작방법
CN109471812B (zh) * 2015-01-19 2023-09-05 铠侠股份有限公司 存储装置及非易失性存储器的控制方法
US10223001B2 (en) 2015-03-12 2019-03-05 Toshiba Memory Corporation Memory system
JP5889462B2 (ja) * 2015-03-26 2016-03-22 株式会社日立製作所 半導体装置、不揮発性メモリ装置の制御方法
US10459846B2 (en) * 2015-09-10 2019-10-29 Toshiba Memory Corporation Memory system which uses a host memory
US9880778B2 (en) * 2015-11-09 2018-01-30 Google Inc. Memory devices and methods
US10437785B2 (en) * 2016-03-29 2019-10-08 Samsung Electronics Co., Ltd. Method and apparatus for maximized dedupable memory
US10684795B2 (en) * 2016-07-25 2020-06-16 Toshiba Memory Corporation Storage device and storage control method
TWI622881B (zh) * 2017-04-25 2018-05-01 Chunghwa Telecom Co Ltd Cache replacement system and method thereof for memory computing cluster
US11733873B2 (en) 2017-12-01 2023-08-22 Micron Technology, Inc. Wear leveling in solid state drives
JP2019194780A (ja) * 2018-05-01 2019-11-07 富士通株式会社 情報処理装置、データ管理プログラム及びデータ管理方法
US11094148B2 (en) 2018-06-18 2021-08-17 Micron Technology, Inc. Downloading system memory data in response to event detection
US10963413B2 (en) * 2018-11-02 2021-03-30 Wipro Limited Method and system for transmitting data using small computer system interface (SCSI)
US11782605B2 (en) 2018-11-29 2023-10-10 Micron Technology, Inc. Wear leveling for non-volatile memory using data write counters
CN111324307B (zh) * 2020-02-13 2023-02-21 西安微电子技术研究所 一种星载nand flash型固态存储器及分配存储空间的方法
US11507518B2 (en) * 2020-05-08 2022-11-22 Micron Technology, Inc. Logical-to-physical mapping using a flag to indicate whether a mapping entry points to [[for]] sequentially stored data

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI227493B (en) * 2002-05-23 2005-02-01 Elpida Memory Inc Semiconductor memory device and method of controlling the same
TWI280585B (en) * 2004-05-27 2007-05-01 Toshiba Corp Memory card, semiconductor device, and method of controlling semiconductor memory
US7379367B2 (en) * 2003-07-30 2008-05-27 Samsung Electronics Co., Ltd. Memory controller and semiconductor comprising the same
TWI298883B (en) * 2004-05-25 2008-07-11 Fujitsu Ltd Semiconductor memory device and method of controlling the same
US7512733B2 (en) * 2005-09-30 2009-03-31 Eastman Kodak Company Semiconductor memory and memory controller therefor
US20090198952A1 (en) * 2008-02-04 2009-08-06 Apple Inc Memory Mapping Architecture

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4972338A (en) 1985-06-13 1990-11-20 Intel Corporation Memory management for microprocessor system
GB2291990A (en) * 1995-09-27 1996-02-07 Memory Corp Plc Flash-memory management system
DE60319718D1 (de) * 2002-10-02 2008-04-24 Matsushita Electric Ind Co Ltd Steuerverfahren für eine nichtflüchtige speichereinrichtung
US8041878B2 (en) 2003-03-19 2011-10-18 Samsung Electronics Co., Ltd. Flash file system
JP2005209058A (ja) * 2004-01-26 2005-08-04 Megawin Technology Co Ltd フラッシュメモリの読み書きの制御方法
US7627733B2 (en) * 2005-08-03 2009-12-01 Sandisk Corporation Method and system for dual mode access for storage devices
US8041895B2 (en) 2008-01-28 2011-10-18 Spansion Llc Translation table coherency mecahanism using cache way and set index write buffers
JP2009211233A (ja) * 2008-03-01 2009-09-17 Toshiba Corp メモリシステム
JP4909963B2 (ja) * 2008-09-09 2012-04-04 株式会社東芝 統合メモリ管理装置

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI227493B (en) * 2002-05-23 2005-02-01 Elpida Memory Inc Semiconductor memory device and method of controlling the same
US7379367B2 (en) * 2003-07-30 2008-05-27 Samsung Electronics Co., Ltd. Memory controller and semiconductor comprising the same
TWI298883B (en) * 2004-05-25 2008-07-11 Fujitsu Ltd Semiconductor memory device and method of controlling the same
TWI280585B (en) * 2004-05-27 2007-05-01 Toshiba Corp Memory card, semiconductor device, and method of controlling semiconductor memory
US7512733B2 (en) * 2005-09-30 2009-03-31 Eastman Kodak Company Semiconductor memory and memory controller therefor
US20090198952A1 (en) * 2008-02-04 2009-08-06 Apple Inc Memory Mapping Architecture

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI663543B (zh) * 2016-09-20 2019-06-21 東芝記憶體股份有限公司 Memory system
TWI678129B (zh) * 2018-05-25 2019-11-21 香港商艾思科有限公司 發光儲存裝置及發光控制方法
US10698617B2 (en) 2018-05-31 2020-06-30 Toshiba Memory Corporation Memory system
TWI709132B (zh) * 2018-05-31 2020-11-01 日商東芝記憶體股份有限公司 記憶體系統
TWI758888B (zh) * 2018-05-31 2022-03-21 日商鎧俠股份有限公司 記憶體系統

Also Published As

Publication number Publication date
JP2012068863A (ja) 2012-04-05
CN102436353A (zh) 2012-05-02
EP2434405A1 (en) 2012-03-28
JP5010723B2 (ja) 2012-08-29
US20120072644A1 (en) 2012-03-22
KR20120031124A (ko) 2012-03-30
US8612721B2 (en) 2013-12-17
TW201214117A (en) 2012-04-01
CN102436353B (zh) 2014-08-13
KR101336382B1 (ko) 2013-12-04

Similar Documents

Publication Publication Date Title
TWI459199B (zh) 半導體記憶體控制裝置
US8392476B2 (en) Semiconductor memory device
US9165685B2 (en) Semiconductor memory device
TWI465904B (zh) 半導體記憶裝置
KR101117403B1 (ko) 메모리 시스템, 컨트롤러 및 메모리 시스템의 제어 방법
US8793429B1 (en) Solid-state drive with reduced power up time
JP5687648B2 (ja) 半導体記憶装置およびプログラム
US9026764B2 (en) Memory system performing wear leveling based on deletion request
US8661196B2 (en) Optimizing locations of data accessed by client applications interacting with a storage system

Legal Events

Date Code Title Description
MM4A Annulment or lapse of patent due to non-payment of fees