TWI465904B - 半導體記憶裝置 - Google Patents

半導體記憶裝置 Download PDF

Info

Publication number
TWI465904B
TWI465904B TW100106758A TW100106758A TWI465904B TW I465904 B TWI465904 B TW I465904B TW 100106758 A TW100106758 A TW 100106758A TW 100106758 A TW100106758 A TW 100106758A TW I465904 B TWI465904 B TW I465904B
Authority
TW
Taiwan
Prior art keywords
semiconductor memory
data
information
written
channel
Prior art date
Application number
TW100106758A
Other languages
English (en)
Other versions
TW201202933A (en
Inventor
Kenichiro Yoshii
Kazuhiro Fukutomi
Shinichi Kanno
Shigehiro Asano
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 TW201202933A publication Critical patent/TW201202933A/zh
Application granted granted Critical
Publication of TWI465904B publication Critical patent/TWI465904B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/16Protection against loss of memory contents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1048Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/38Response verification devices
    • G11C29/42Response verification devices using error correcting codes [ECC] or parity check

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Read Only Memory (AREA)
  • Memory System (AREA)

Description

半導體記憶裝置
本文中所描述之實施例大體而言係關於一種半導體記憶裝置。
本申請案係基於且主張來自2010年3月1日申請之日本專利申請案第2010-044362號之優先權的權利;該案之全部內容以引用的方式併入本文中。
已知在半導體儲存晶片中發生機率性故障。該等故障包括記憶胞之故障(諸如,由α射束所引起之軟錯誤)及更大單元中之故障(諸如,讀取電路或輸入/輸出緩衝器(I/O緩衝器)中之故障)。對於記憶胞中之故障而言,按照慣例,藉由將諸如錯誤校正碼(ECC)之冗餘資訊添加至資料,可校正一預定單元中之預定數目個錯誤內的由該故障所引起之錯誤資料。對於更大單元中之故障(諸如,讀取電路或I/O緩衝器中之故障)而言,錯誤之數目極其大,且難以藉由實際電路規模來執行錯誤校正。
在使用多個硬碟機(HDD)之系統中,HDD中之故障已變成問題。廉價磁碟冗餘陣列(RAID)被廣泛地稱為一種用於藉由使用由複數個HDD所構成之錯誤校正碼以HDD單位為基礎來解決此故障的技術(例如,參看「A Case for Redundant Arrays of Inexpensive Disks(RAID)」,UC Berkeley技術報告UCB/CSD-87-391,1987年)。在此技術中,藉由將資料寫入至複數個HDD及將藉由使用該資料所獲得之冗餘資訊儲存至HDD中之一者中,藉由該複數個HDD來構成錯誤校正碼。就一種在複數個HDD變得有錯時藉由RAID來還原資料的方法而言,亦已知使用雷德所羅門碼之方法(例如,參看「A Tutorial on Reed-Solomon Coding for Fault-Tolerance in RAID-like Systems」,James S. Plank,技術報告CS-96-332,Department of Computer Science University of Tennessee)。
然而,在將大量半導體儲存晶片用作記憶體晶片之半導體記憶裝置中,即使當存在用於修復記憶胞中之故障的錯誤校正碼(ECC)時,仍無法防止記憶體晶片中之故障。結果,其可變成半導體記憶裝置之故障。為解決記憶體晶片中之故障,考慮以類似於HDD之方式藉由複數個記憶體晶片來構成錯誤校正碼。然而,在此方法中,對於每一寫入操作而言,執行寫入至寫入有冗餘資訊之記憶體晶片以用於更新冗餘資訊。具體而言,在HDD之RAID中,例如,當藉由寫入有資料之四個HDD A、B、C及D與寫入有冗餘資訊之一個HDD P來構成錯誤校正碼時,執行寫入操作如下。若資料寫入於HDD A、B、C及D中的HDD A中,則亦執行寫入至HDD P以用於更新冗餘資訊。
同時,用於半導體記憶裝置之NAND(反及)型之半導體記憶體元件(稱為NAND記憶體)被廣泛用作固態驅動器(SSD)之半導體記憶體晶片,因為每位元之面積係小的且其為非揮發性的,但廣泛已知寫入次數受限制。因此,有必要減少寫入次數,以便增加半導體記憶裝置之設計壽命。
一般而言,由於製造處理程序或其類似者之影響,並不總是製造所有半導體記憶體晶片使得其中之所有儲存區域為可用的。舉例而言,在NAND記憶體之狀況下,實際上無法總是使用被安裝作為記憶體晶片之NAND記憶體中的所有儲存區域。不可用之儲存區域之容量在NAND記憶體當中變化。因此,在包括多個NAND記憶體之半導體記憶裝置中,需要解決NAND記憶體中之不可用之儲存區域的容量變化。
實施例之一目標係提供一種具有複數個半導體記憶體晶片之半導體記憶裝置,其能夠解決半導體記憶體晶片中之可用儲存區域之容量變化同時抑制將資料寫入至半導體記憶體元件之次數的增加,使得可處置半導體記憶體晶片中之故障且可改良可靠性。
一般而言,根據一實施例,一種半導體記憶裝置包括複數個半導體記憶體晶片,該複數個半導體記憶體晶片具有寫入有由資訊處理設備請求寫入之資料的可寫儲存區域。該資料具有在一預定單元中之第一資料之一或多個片段,且該第一資料的一或多個片段包括第二資料。該半導體記憶裝置包括:一判定單元,其經組態以判定將寫入有該第一資料之該等片段的指定數目或更少個半導體記憶體晶片;一寫入控制器,其經組態以將該第一資料之該等片段及自該第二資料計算而得且用於校正該第二資料中之一錯誤的冗餘資訊寫入至由該判定單元所判定之該等半導體記憶體晶片中之該等可寫儲存區域中;及一儲存單元,其經組態以將識別資訊與區域規定資訊儲存於其中以便使其彼此相關聯,該識別資訊使該第二資料與該冗餘資訊相關聯,且該區域規定資訊規定該等半導體記憶體晶片中將寫入有該第二資料中所包括之該第一資料之該等片段及該冗餘資訊的該等儲存區域。
根據上文所描述之半導體記憶裝置,可解決半導體記憶體晶片中之可用儲存區域之容量變化同時抑制將資料寫入至半導體記憶體元件之次數的增加,使得可處置半導體記憶體晶片中之故障且可改良可靠性。
下文將參看所附圖式來詳細描述半導體記憶裝置之例示性實施例。首先,將描述根據一實施例之半導體記憶裝置之基本組態。其後,將描述一用於解決複數個半導體儲存晶片中之可用儲存區域之容量變化的組態。
將參看圖1來描述根據該實施例之半導體記憶裝置之硬體組態。半導體記憶裝置50包括處理器51、開機唯讀記憶體(boot Read Only Memory)(ROM)52、SATA/SAS介面55、記憶體控制器53、動態隨機存取記憶體(DRAM)54、NAND控制器57A至57F、複數個半導體記憶體元件(NAND)58A至58F,及連接彼等組件之匯流排56。在不必使NAND控制器57A至57F彼此區分的狀況下,可將其簡單地描述為NAND控制器57。在不必使半導體記憶體元件58A至58F彼此區分的狀況下,可將其簡單地描述為半導體記憶體元件58。
SATA/SAS介面55在處理器51之控制下控制與作為半導體記憶裝置50之高階設備之主機的通信。開機ROM 52儲存在接通電源時所執行之程式。各種系統程式儲存於半導體記憶體元件58中。處理器51在接通電源時自開機ROM 52讀取程式、執行其、根據程式將儲存於半導體記憶體元件58中之各種系統程式傳送至DRAM 54,及執行DRAM 54上之系統程式,藉此控制整個半導體記憶裝置50以實現各種功能。具體而言,處理器51解譯經由SATA/SAS介面55自主機所發送之命令,且根據該命令來控制至半導體記憶體元件58之資料寫入及自半導體記憶體元件58之資料讀取。
記憶體控制器53控制DRAM 54。DRAM 54儲存各種資料及各種程式。在實施例中,DRAM 54儲存將在稍後描述之前向查找表及位元向量表。NAND控制器57控制半導體記憶體元件58且包括錯誤校正電路。
半導體記憶體元件58對應於一半導體晶片。舉例而言,其為用於NAND型快閃記憶體中之記憶體元件。此等半導體記憶體元件58無法隨機地進行讀取/寫入,但可以頁為單位來執行讀取/寫入。複數個頁形成一以區塊為單位之儲存區域。此處假定,一頁由4 KB組成,且一個區塊由64個頁形成。半導體記憶體元件58中之每一者由複數個區塊構成。在實施例中,如圖1中所示,半導體記憶體元件58之數目為6。將通道(CH0至CH5)分別分配至半導體記憶體元件58A至58F。將該等通道當中之通道(CH5)分配為寫入有冗餘資訊之通道,將其他通道(CH0至CH4)分配為寫入有由主機請求寫入之資料的通道。將通道CH0至CH5之頁用作一用以構成錯誤校正碼之設定。通道CH0至CH4分別對應於半導體記憶體元件58A至58E,且通道CH5對應於半導體記憶體元件58F。如將在稍後描述,在由主機請求寫入之資料大於頁之大小的狀況下,半導體記憶裝置50將資料劃分為複數個片段,且將被劃分於頁中之資料片段(稱為經劃分之資料片段)分配及寫入至各別通道CH0至CH4。亦即,在實施例之基本組態中,半導體記憶裝置50分別將被請求寫入於預定單元中之指定數目個資料片段及藉由使用該等資料片段計算而得且用於校正該等資料片段之錯誤的冗餘資訊寫入至不同的半導體記憶體元件58中,藉此藉由該等資料片段及該冗餘資訊來構成錯誤校正碼。就錯誤校正碼而言,例如,使用同位碼。在此基本組態中,將在稍後描述用於解決半導體記憶裝置50之半導體記憶體元件58A至58F中之可用儲存區域的容量變化的組態。
此處,將描述一種用於寫入至半導體記憶體元件58之寫入方法。NAND型半導體記憶體元件按照慣例使用日誌結構化方法。將資料以頁之次序順序地寫入於以頁為單位之抹除區塊中,而不管由主機所規定之邏輯區塊位址(LBA)、指示寫入有資料且儲存有邏輯區塊位址之實體儲存位置的實體位址(PA)之關聯,且使用位址之關聯來讀取資料。此系統稱為日誌結構化方法。在日誌結構化方法中,在寫入之前需要抹除區塊。區塊之抹除將使構成該區塊之所有位元設定為「1」。半導體記憶裝置50以區塊為單位來執行此抹除且以頁為單位來執行寫入至抹除區塊。因此,在NAND型半導體記憶體元件58中,可將資料順序地寫入至抹除區塊中之未寫頁,且寫入之頁無法為添加之頁。回應於來自主機之請求的資料寫入由主機中所使用之邏輯區塊位址指示。另一方面,根據半導體記憶體元件58之實體區塊位址以頁之升序來執行將資料及冗餘資訊寫入至半導體記憶體元件58,而不管邏輯區塊位址。將實體區塊位址與邏輯區塊位址之間的關聯儲存於稍後所描述的前向查找表中。當由主機請求藉由在被再次規定之先前資料請求中所規定的邏輯區塊位址來寫入新的資料時,半導體記憶裝置50將新的資料寫入至抹除區塊之未寫頁。在此狀況下,將先前對其執行對應於此邏輯區塊位址之寫入的頁設定為無效,且將寫入有新的資料之頁設定為有效。在建構上文所描述之錯誤校正碼之同時,半導體記憶裝置50寫入新的資料及冗餘資訊。
在此日誌結構化方法中,當變成無效之頁的數目藉由繼續寫入而增加時,半導體記憶體元件58中之寫入可實現容量(稱為可實現容量)變得更小。在可寫入有資訊之新的抹除區塊的數目(亦即,在抹除之後尚未寫入有資訊之區塊(稱為自由區塊)的數目)減小且無法保證構成錯誤校正碼之區塊集合(稱為邏輯區塊)時的時間點,出現寫入不可能狀態。為防止其,在半導體記憶裝置50中,在恰當之計時進行廢棄項目收集。在半導體記憶體元件58中所進行之廢棄項目收集將被特定地稱為壓縮。圖2為用於解釋壓縮之概念圖。半導體記憶裝置50收集寫入於含有變成無效之頁之區塊中的未變成無效之實體區塊位址中的資料(稱為有效資料),且新近將所收集之有效資料重寫於自由區塊中以將有效資料移至其。其後,半導體記憶裝置50抹除該等區塊,藉此產生一新的自由區塊。在半導體記憶裝置50中,不可寫之區塊藉由執行此壓縮而再次變成可寫的,從而允許保留自由區塊。此外,若在寫入有有效資料(由於移動資料)之區塊中存在一未寫頁,則可新近將資料寫入至該頁。
需要至少一自由區塊來執行此壓縮,此意謂NAND型半導體記憶體元件58中所實施之容量(稱為實施容量)大於可實際實現寫入所處之容量。在實施例中,將實施容量與可實現容量之間的差稱為備用容量。當備用容量係小的時,半導體記憶裝置50必須頻繁地執行壓縮,此對其效能具有極大影響。參看圖2,已描述以區塊單位為基礎之壓縮。在實施例中,邏輯區塊為基本單位,使得針對每一通道而保留一自由區塊以構成一邏輯區塊,且以邏輯區塊單位為基礎來執行壓縮。
接下來,將參看圖3來描述在半導體記憶裝置50中所實施之功能。半導體記憶裝置50包括主機介面單元60、緩衝器控制器61、位址轉譯單元62、CH分配單元63、壓縮侯選者偵測器64、管理表更新單元65、NAND控制器66A至66F、資料緩衝器67、壓縮讀取佇列68及管理表69。藉由由處理器51對程式之執行及SATA/SAS介面55之功能來實現主機介面單元60的功能。當處理器51執行程式時,實施位址轉譯單元62、CH分配單元63、管理表更新單元65、壓縮侯選者偵測器64及緩衝器控制器61之功能。NAND控制器66A至66F之功能分別對應於NAND控制器57A至57F,且藉由由處理器51對程式之執行及分別對應於NAND控制器66A至66F之NAND控制器57A至57F的功能來實施。NAND控制器66A至66F以一對一對應方式分別對應於指派有通道CH0至CH5之半導體記憶體元件58A至58F。在不必使NAND控制器66A至66F彼此區分的狀況下,可將其簡單地描述為NAND控制器66。資料緩衝器67、壓縮讀取佇列68及管理表69為(例如)儲存於DRAM 54上之資訊。
主機介面單元60為控制主機與半導體記憶裝置50之間的通信的介面。主機介面單元60接收自主機所傳輸之命令。當該命令請求藉由所規定之邏輯區塊位址來寫入資料時,主機介面單元60將該命令(稱為寫入命令)傳輸至將在稍後描述之位址轉譯單元62。當被請求寫入之資料之大小等於或小於頁大小時,主機介面單元60將資料傳輸至將在稍後描述之緩衝器控制器61。當資料之大小大於頁大小時,主機介面單元60將資料劃分為以頁為單位之片段,且將由此劃分之資料(稱為經劃分之資料片段)發送至緩衝器控制器61。此係因為邏輯區塊位址與實體區塊位址之間的轉譯係以頁單位為基礎來進行。舉例而言,主機介面單元60將128 KB之資料劃分為32個4-KB資料片段。出於描述之方便性,將回應於寫入命令而傳輸至緩衝器控制器61的資料或經劃分之資料片段稱為寫入目標資料。
在自主機所傳輸之命令請求藉由所規定之邏輯區塊位址來讀取資料的狀況下,若被請求讀取之資料之大小等於或小於頁大小,則主機介面單元60將該命令(稱為讀取命令)發送至位址轉譯單元62。在被請求讀取之資料之大小大於頁大小的狀況下,主機介面單元60將請求以頁單位為基礎來讀取資料的命令(讀取命令)發送至位址轉譯單元62。主機介面單元60藉由使用由自主機所傳輸之命令所規定的邏輯區塊位址來計算待讀取之資料片段中之每一者的邏輯區塊位址,且將請求藉由所計算之邏輯區塊位址來讀取資料的讀取命令發送至位址轉譯單元62。主機介面單元60讀取待讀取之資料(其藉由將在稍後描述之緩衝器控制器61而儲存於資料緩衝器67中之所指明區域中),且將其傳輸至主機。
管理表69包括前向查找表及位元向量表。前向查找表為展示寫入目標之邏輯區塊位址與指示半導體記憶體元件58中寫入有寫入目標資料之實體儲存位置的實體區塊位址之間的關聯的資訊,且包括使寫入目標資料與冗餘資訊相關聯的資訊,及規定半導體記憶體元件58中寫入有寫入目標資料及冗餘資訊之複數個儲存區域中之每一者的資訊。在判定實體區塊位址時使用此前向查找表,該實體區塊位址指示半導體記憶體元件58上儲存有與由主機所規定之邏輯區塊位址相關聯之資料的位置。圖4為展示前向查找表之資料組態之圖式。如圖4中所示,前向查找表具有LBA表及邏輯至實體轉譯表。LBA表包括作為其索引之邏輯區塊位址及包括以下各者之項目:通道號碼;給予頁之頁號碼;及給予儲存有資料之邏輯區塊的邏輯區塊號碼。以來自主機之資料寫入請求中所規定的邏輯區塊位址為基礎來計算每一寫入目標資料之邏輯區塊位址。
邏輯區塊號碼為使寫入目標資料與冗餘資訊彼此相關聯之識別資訊,且為以其所產生之順序給予區塊中之每一者的號碼。在此實施例中,通道號碼為CH0至CH4,且指示包括儲存有與邏輯區塊位址相關聯之資料之實體區塊的半導體記憶體元件58連接至哪一通道。頁號碼指示與邏輯區塊位址相關聯之資料儲存於由邏輯區塊號碼及通道號碼所識別之實體區塊之哪一頁中。舉例而言,可以實體區塊位址之順序給出頁號碼,或可將實體區塊位址自身給定作為頁號碼。
邏輯至實體轉譯表為規定半導體記憶體元件58中寫入有寫入目標資料及冗餘資訊之複數個儲存區域的區域規定資訊,且將邏輯區塊號碼及與邏輯區塊相關聯之通道之實體區塊儲存於其中以便使其對應於彼此。邏輯至實體轉譯表將作為索引之邏輯區塊號碼儲存於其中,與邏輯區塊相關聯之通道的實體區塊的位址(實體區塊位址)得以儲存。在此組態中,將儲存於對應於一個邏輯區塊位址之LBA表中之項目中的邏輯區塊號碼用作索引,藉由該索引來規定與邏輯區塊有關之在邏輯至實體轉譯表中之項目。接下來,規定來自儲存於邏輯至實體轉譯表中之項目中之實體區塊當中的在半導體記憶體元件58中之實體區塊(連接至LBA表中之項目中所記錄的通道號碼之通道)。藉由LBA表中之項目中所包括的頁號碼來規定寫入有對應於邏輯區塊位址之資料的頁。
如上文所描述,以頁單位為基礎將由主機要求寫入之資料寫入於通道CH0至CH4中,且將待添加以構成錯誤校正碼的冗餘資訊寫入於通道CH5中。因此,冗餘資訊寫入於由邏輯至實體轉譯表中之項目中之每一者所指示的通道CH5之實體區塊位址之儲存區域中。由於對應於冗餘資訊之邏輯區塊位址不存在,因此與冗餘資訊有關之項目未記錄於LBA表中。將關於冗餘資訊之資訊記錄於邏輯至實體轉譯表中之項目中。在每次將寫入目標資料及冗餘資訊寫入於半導體記憶體元件58中時更新前向查找表。將在稍後描述更新前向查找表之方式。
接下來,將參看圖5來描述位元向量表。位元向量表為一表,其以實體區塊之順序二進位地展示在與邏輯區塊相關聯之實體區塊中之通道CH0至CH4中之每一者上的實體區塊中之每一者中的哪些頁為寫入有有效資料之頁(稱為有效頁)。將每一頁之二進位指示稱為位元向量。若位元向量之值為「1」,則此意謂頁為有效頁,且若位元向量之值為「0」,則此意謂頁並非有效頁(無效)。在初始狀態下,位元向量之值全部設定為「0」。
在實施例中,寫入有寫入目標資料之通道為與邏輯區塊相關聯之實體區塊中的5個通道CH0至CH4,且若假定一實體區塊包括64個頁,則一邏輯區塊包括320個頁。因此,對應之位元向量之數目為每邏輯區塊320個。如圖5中所示,位元向量表針對每一邏輯區塊包括作為其索引之上文所描述之邏輯區塊號碼、與通道CH0至CH4(與被給予邏輯區塊號碼之邏輯區塊相關聯)之實體區塊中之每一者中所包括的每一頁相關聯的位元向量,及一計數器。在實施例中,預先配置邏輯至實體轉譯表中之項目及位元向量表中之位元向量,使得邏輯至實體轉譯表中之索引匹配位元向量表匹配中之索引。在圖5中,以自左邊通道CH0之第一頁、第二頁、......及最後頁、通道CH1之第一頁、第二頁、......及最後頁及其類似者之方式以通道CH0至CH4之實體區塊中之每一者之頁的順序配置位元向量。計數器表示值為「1」之位元向量的總數。由於對應之位元向量具有值「1」的頁為有效頁,因此計數器表示邏輯區塊中之有效頁的數目。在此組態中,在每次主機請求寫入資料時更新位元向量表。將在稍後描述更新位元向量表之方式。
描述返回參看圖3。位址轉譯單元62自主機介面單元60接收命令。當該命令為讀取命令時,位址轉譯單元62使用由讀取命令所規定之邏輯區塊位址來參考管理表69中之前向查找表,且判定寫入有由讀取命令請求讀取之資料的頁的通道及實體區塊位址。位址轉譯單元62規定通道及實體區塊位址,且經由CH分配單元63將請求讀取資料之命令發送至NAND控制器66。
對比而言,當自主機介面單元60所接收之命令為寫入命令時,位址轉譯單元62將寫入命令發送至將在稍後描述之CH分配單元63。
回應於儲存於將在稍後描述之壓縮讀取佇列68中的壓縮讀取命令,位址轉譯單元62將請求藉由由壓縮讀取命令所規定之實體區塊位址來讀取有效頁中之資料(有效資料)的命令發送至NAND控制器66,該NAND控制器66對應於連接有包括實體區塊(包括有效頁)之半導體記憶體元件58的通道。有效資料係經由NAND控制器66自半導體記憶體元件58讀取,且經由緩衝器控制器61而儲存於資料緩衝器67中。位址轉譯單元62將請求寫入有效資料之命令(稱為壓縮寫入命令)發送至CH分配單元63。
CH分配單元63自位址轉譯單元62接收該命令,且當該命令為寫入命令時判定將寫入有寫入目標資料之通道。舉例而言,CH分配單元63在不同於寫入有冗餘資訊之通道(在此狀況下為通道CH5)的通道中以循環方式(以4 KB為單位)執行寫入操作,且根據循環之次序判定寫入有資料之通道。接著,CH分配單元63將請求寫入寫入目標資料之命令發送至對應於已判定之通道的NAND控制器66。
對比而言,在由來自位址轉譯單元62之命令請求藉由所規定之通道及所規定之實體區塊位址來讀取資料的狀況下,將請求藉由所規定之實體區塊位址來讀取資料的命令傳輸至對應於所指明通道之NAND控制器66。在自位址轉譯單元62所接收之命令為壓縮寫入命令的狀況下,CH分配單元63根據循環之次序判定將寫入有資料之通道,且將請求寫入有效資料之命令發送至對應於已判定之通道的NAND控制器66。
NAND控制器66自CH分配單元63接收命令,且根據該命令來存取對應之半導體記憶體元件58。具體而言,當該命令請求寫入資料時,NAND控制器66經由緩衝器控制器61獲得寫入目標資料且將寫入目標資料寫入至半導體記憶體元件58。在寫入時,NAND控制器66設定一寫入指標以指出對應之半導體記憶體元件58之抹除區塊中的未寫頁,將寫入目標資料寫入至在由寫入指標所指出之位置的頁,且接著更新寫入指標以指出一未寫頁(其為在經受寫入之頁之後的下一頁)之位置。因此,寫入指標之值改變以順序地指出下一寫入位置。舉例而言,當藉由每一通道中之15個位元之實體區塊位址來識別區塊且該區塊包括64個頁時,寫入指標總共具有15+6=21個位元。
此處,現將描述寫入目標資料及冗餘資訊之資料組態。NAND控制器66將用於偵測及校正寫入目標資料自身之錯誤的錯誤校正碼(稱為頁ECC)及由寫入命令所規定之邏輯區塊位址添加至寫入目標資料。假定頁ECC包括諸如用於偵測資料中之錯誤的CRC碼及用以校正資料錯誤之ECC碼的碼。頁ECC亦包括CRC碼的原因為在無法藉由ECC碼來校正資料錯誤時存在假校正的可能性。圖6為說明添加有冗餘資訊之寫入目標資料的圖式。NAND控制器66將添加有此頁ECC及邏輯區塊位址之寫入目標資料寫入至如上文所描述而判定之每一通道中之半導體記憶體元件58中由寫入指標所指出之頁。寫入目標資料具有以頁為單位之大小。假定半導體記憶體元件58之頁大小等於全部資料(包括寫入目標資料及所添加之頁ECC與邏輯區塊位址)之大小。藉由每一NAND控制器66以由寫入命令所規定之邏輯區塊位址為基礎來計算經劃分之資料片段中之每一者的邏輯區塊位址。對比而言,對應於通道CH5(寫入有經計算以便構成錯誤校正碼之冗餘資訊)之NAND控制器66F將用於偵測及校正冗餘資訊自身之錯誤的頁ECC添加至冗餘資訊。NAND控制器66F將添加有頁ECC之冗餘資訊寫入至半導體記憶體元件58F中由寫入指標所指出的頁中。
接下來,將描述藉由循環處理將複數個經劃分之資料片段作為寫入目標資料而寫入至通道CH0至CH5。圖7為用於解釋藉由循環處理所執行之寫入的圖式。出於圖式之簡化,未展示添加至經劃分之資料片段的邏輯區塊位址。如圖式中所示,以一方式以自通道CH0至通道CH4之循環方式順序地寫入經劃分之資料片段,使得第一經劃分資料D1在時間T1寫入至通道CH0且下一經劃分資料D2在時間T2寫入至通道CH1。當經劃分資料D5在時間T5寫入於通道CH4中時,經劃分資料D1之同位P在時間T1寫入於通道CH0中,經劃分資料D2在時間T2寫入於通道CH1中,經劃分資料D3在時間T3寫入於通道CH2中,經劃分資料D4在時間T4寫入於通道CH3中,且將在時間T5寫入於通道CH4中的經劃分資料D5之同位P計算為冗餘資訊,且將冗餘資訊P寫入於通道CH5中。在進一步寫入經劃分之資料片段時,以循環方式自通道CH0順序地寫入資料。藉由以循環方式寫入經劃分之資料片段,通道之寫入操作得以均勻地執行。在圖式之實例中,展示隨著時間的推移以通道之次序寫入資料的狀態。然而,本發明並不限於該實例。可將資料同時寫入至兩個或兩個以上通道。
接下來,將參看圖8來描述錯誤校正碼之組態。出於解釋之方便性,在圖式中,未展示添加至待寫入於通道CH0至CH4中之每一者中的經劃分之資料片段的邏輯區塊位址。如圖8中所示,對應於通道CH5之NAND控制器66F計算在寫入於通道CH0至CH4中之資料片段中的相同偏移位置處的互斥或(以位元組為單位),且將由此所計算之值作為冗餘資訊而寫入於通道CH5之半導體記憶體元件58F中的相同偏移位置中。亦即,藉由通道CH0至CH5中之相同偏移位置處的位元組來構成錯誤校正碼。
描述返回參看圖3。當自CH分配單元63所接收之命令請求藉由所規定之實體區塊位址來讀取資料時,NAND控制器66使用實體區塊位址自半導體記憶體元件58中之對應於實體區塊位址的位置讀取資料,且將所讀取之資料發送至緩衝器控制器61。若在自半導體記憶體元件58所讀取之資料中存在錯誤,則NAND控制器66偵測錯誤並校正其。將在稍後描述一種偵測及校正資料中之錯誤的方法。當自位址轉譯單元62所接收之命令請求藉由所規定之實體區塊位址來讀取有效頁中之資料(有效資料)時,NAND控制器66藉由使用實體區塊位址來讀取寫入於半導體記憶體元件58中之對應於實體區塊位址之頁中的資料,且將所讀取之資料儲存於資料緩衝器67中。當自CH分配單元63所接收之命令請求寫入有效資料時,NAND控制器66經由緩衝器控制器61來擷取寫入目標有效資料,且將有效資料寫入至半導體記憶體元件58。
壓縮候選者偵測器64參考管理表69中所包括之位元向量表,將一邏輯區塊判定為用於壓縮之候選者,且將一規定邏輯區塊中之有效頁之實體區塊位址及請求讀取有效頁的命令(稱為壓縮讀取命令)發送至壓縮讀取佇列68。
資料緩衝器67為用於儲存寫入目標資料之緩衝器。壓縮讀取佇列68為儲存請求讀取有效頁以用於壓縮之命令的先進先出緩衝器。
緩衝器控制器61管理作為複數個區域之資料緩衝器67,且管理儲存有對應於該命令之資料的多個區域。具體而言,緩衝器控制器61將回應於寫入命令而自主機介面單元60所發送之寫入目標資料儲存至資料緩衝器67中,且將寫入目標資料發送至對應於由CH分配單元63判定為被寫入之通道的NAND控制器66。寫入目標資料經由NAND控制器66而寫入於半導體記憶體元件58中。緩衝器控制器61回應於讀取命令而將自NAND控制器66所發送之資料儲存至資料緩衝器67中之一所規定區域中,且接著將資料發送至主機介面單元60。經由主機介面單元60將資料傳輸至主機。回應於壓縮讀取命令,緩衝器控制器61將經由NAND控制器66自半導體記憶體元件58所讀取之資料儲存至資料緩衝器67中。
在自主機接收到請求藉由所規定之邏輯區塊位址來寫入資料之命令(寫入命令)的狀況下,管理表更新單元65參考前向查找表,更新位元向量表,且進一步更新前向查找表。具體而言,管理表更新單元65首先參考前向查找表以查找哪一區塊中之哪一頁寫入有與對應於邏輯區塊位址之實體區塊位址相關聯的資料(即,與邏輯位址相關聯之資料)。若與邏輯區塊位址相關聯之實體區塊位址未儲存於前向查找表中,則尚未執行與邏輯區塊位址相關聯之資料寫入。在此狀況下,管理表更新單元65將位元向量表中對應於寫入有與邏輯區塊位址相關聯之寫入目標資料的頁的位元向量值設定為「1」。藉由寫入指標來指出寫入有寫入目標資料之頁。管理表更新單元65使與實體區塊(包括該頁)相關聯之邏輯區塊中的有效頁數目之計數器值遞增1。
對比而言,若在管理表更新單元65參考前向查找表時與邏輯區塊位址相關聯之實體區塊位址存在於前向查找表中,則之前已執行與邏輯區塊位址相關聯之資料寫入。在此狀況下,有必要使之前寫入之資料無效(歸因於用於當前寫入之寫入命令)。出於此目的,管理表更新單元65將對應於儲存於前向查找表(針對由寫入命令所規定之邏輯區塊位址而參考該前向查找表)之項目中的實體區塊位址處之頁的位元向量值設定為「0」。另外,管理表更新單元65使具有實體區塊(包括該頁)之邏輯區塊中的有效頁數目之計數器值遞減1。管理表更新單元65將對應於將寫入有寫入目標資料之頁的位元向量值設定為「1」,且使與實體區塊(包括該頁)相關聯之邏輯區塊中的有效頁數目之計數器值遞增1。藉由在每次執行資料寫入時執行更新,位元向量表及有效頁數目之計數器總是指示有效頁之位置及其數目。最後,管理表更新單元65將寫入有寫入目標資料之實體區塊位址記錄於前向查找表中對應於邏輯區塊位址之項目中。
接下來,將描述根據實施例之由半導體記憶裝置50所執行之處理程序的程序。首先,將參看圖9來描述回應於來自主機之寫入命令由半導體記憶裝置50將寫入目標資料寫入於半導體記憶體元件58中之程序。在開始寫入之前,半導體記憶裝置50預先保留通道之自由區塊。當自主機接收到請求藉由所規定之邏輯區塊位址來寫入資料的寫入命令(步驟S1)時,半導體記憶裝置50選擇通道中之每一者中的一個自由區塊,且藉由使通道CH0至CH5之自由區塊相關聯來構成邏輯區塊。半導體記憶裝置50將邏輯區塊號碼給予邏輯區塊,且將作為索引之邏輯區塊號碼及通道中之實體區塊之各別實體區塊位址(其與邏輯區塊相關聯)記錄至邏輯至實體轉譯表中。此時,半導體記憶裝置50配置邏輯至實體轉譯表項目之分類次序、在邏輯至實體轉譯表項目中於通道中之實體區塊之實體區塊位址的分類次序,及位元向量表中之位元向量,使得可藉由使用邏輯至實體轉譯表中之索引來參考與邏輯區塊相關聯之每一實體區塊的位元向量。半導體記憶裝置50針對每一通道設定指示每一實體區塊中寫入有實體區塊連同實體區塊位址之頁的寫入指標,該實體區塊及該實體區塊位址與邏輯區塊相關聯。在開始寫入之前,半導體記憶裝置50設定每一通道之寫入指標,以便指出在通道之開頭的實體區塊之第一頁。
半導體記憶裝置50判定由寫入命令請求寫入之資料之大小是否等於或小於頁大小(步驟S2)。在資料之大小等於或小於頁大小(步驟S2中之是)的狀況下,半導體記憶裝置50將資料(寫入目標資料)儲存於資料緩衝器67中(步驟S4)。對比而言,在由寫入命令請求寫入之資料之大小大於頁大小(步驟S2中之否)的狀況下,半導體記憶裝置50將資料劃分為以頁為單位之片段(步驟S3)且將經劃分之資料片段(寫入目標資料)記錄至資料緩衝器67中(步驟S4)。
半導體記憶裝置50以由寫入命令所規定之邏輯區塊位址為基礎來參考前向查找表,且當對應於寫入目標資料之邏輯區塊位址的實體區塊位址業已記錄於其中時將該實體區塊位址作為舊的實體區塊位址儲存於(例如)DRAM 54中(步驟S5)。半導體記憶裝置50以循環方式判定將寫入有寫入目標資料之通道(步驟S6),且將具有添加至其之頁ECC及邏輯區塊位址的寫入目標資料寫入至已判定之通道之半導體記憶體元件58中的由寫入指標所指出之頁(步驟S7)。接著,半導體記憶裝置50更新每一通道之寫入指標以指出在寫入有寫入目標資料之頁後面的下一未寫頁(步驟S8)。
圖10為展示隨著時間的推移經劃分之資料片段作為寫入目標資料寫入於通道CH0中之狀態的圖式。首先,在時間t0,保留一自由區塊。在時間t1,將第一經劃分資料D1寫入於在時間t0所保留之自由區塊中之第一頁(在開頭或在結尾)中。在時間t2,以循環方式將新近判定之經劃分資料D6寫入於通道CH0中之第二頁中。類似地,在時間t3,將經劃分資料D11寫入於第三頁中。在時間t4,將經劃分資料D16寫入於第四頁中。以此方式,在實體區塊中以升序來判定寫入有經劃分之資料片段的頁,而不管邏輯區塊位址。在每次執行寫入時設定寫入指標,以便指出以升序寫入有資料之頁。在實施例中,以循環方式均勻地執行至通道之寫入操作,使得由每一通道中之寫入指標所指出之頁號碼之間的差最大為1。當在邏輯區塊中之最後頁上完成寫入時,由通道中之寫入指標所指出之頁號碼係相同的。
如上文所描述,不管由來自主機之寫入命令所規定的邏輯區塊位址之值,以預定次序分配寫入有寫入目標資料之頁的實體區塊位址,且將資料寫入於該等頁中。
描述返回參看圖9。隨著寫入寫入目標資料,半導體記憶裝置50將寫入目標資料之邏輯區塊位址與寫入有寫入目標資料之頁之實體區塊位址之間的關聯記錄至圖4中所說明之前向查找表中(步驟S9)。若寫入目標資料為經劃分之資料片段,則半導體記憶裝置50以由寫入命令所規定之邏輯區塊位址為基礎來計算經劃分之資料片段之實體區塊位址中的每一者。由於經劃分之資料片段係以頁為單位,因此半導體記憶裝置50將藉由將頁大小(4 KB)順序地添加至所規定之邏輯區塊位址所獲得的值計算作為經劃分之資料片段之邏輯區塊位址。接著,半導體記憶裝置50將邏輯區塊位址、與寫入有寫入目標資料之通道中之每一者的實體區塊相關聯的邏輯區塊之邏輯區塊號碼,及指示在當前處理程序中寫入有寫入目標資料之通道及頁的通道號碼與頁號碼記錄至LBA表中。在上文所描述之實例中,在更新之前藉由寫入指標之6個下位元來指示頁號碼,使得可將該值用作頁號碼。在每次執行寫入目標資料之寫入時,半導體記憶裝置50更新如上文所描述之前向查找表。
此外,半導體記憶裝置50參考位元向量表,將對應於在步驟S5中儲存於DRAM 54中的舊的實體區塊位址之頁的位元向量之值設定為「0」,且使與實體區塊(包括該頁)相關聯的邏輯區塊之有效頁數目之計數器值遞減1(步驟S10)。與由在步驟S10中所接收之寫入命令所規定的邏輯區塊位址相關聯,舊的實體區塊位址指示先前寫入有資料之頁。因此,將位元向量之值設定為「0」,且使與實體區塊(包括該頁)相關聯之邏輯區塊中的有效頁數目之計數器值遞減1。此外,半導體記憶裝置50將對應於在步驟S7中寫入有寫入目標資料之頁的位元向量之值設定為「1」,且使邏輯區塊(包括該頁)之有效頁數目之計數器值遞增1(步驟S11)。以此方式,半導體記憶裝置50隨著寫入寫入目標資料而更新位元向量表。
在步驟S7中,在完成將寫入目標資料寫入至通道CH0至CH4之後,半導體記憶裝置50計算在通道CH0至CH4中之寫入目標資料中之相同偏移位置處的互斥或(以位元組為單位),且將此值寫入於通道CH5中之相同偏移位置中,藉此寫入冗餘資訊。
在寫入指標到達所有通道(CH0至CH5)中之區塊結尾且資料變得不能新近寫入於邏輯區塊中的狀況下,半導體記憶裝置50建構一新的邏輯區塊。一種建構邏輯區塊之方法係如上文所描述。一種將經劃分之資料片段及冗餘資訊寫入至新的邏輯區塊之方法亦如上文所描述。
接下來,將參看圖11來描述根據來自主機之讀取命令藉由半導體記憶裝置50自半導體記憶體元件58讀取資料之程序。當自主機接收到請求藉由所規定之邏輯區塊位址來讀取資料的讀取命令(步驟S20)時,半導體記憶裝置50判定由讀取命令請求讀取之資料之大小是否等於或小於頁大小(步驟S21)。在資料之大小等於或小於頁大小(步驟S21中之是)的狀況下,半導體記憶裝置50藉由使用由讀取命令所規定之邏輯區塊位址來參考前向查找表之LBA表,且判定邏輯區塊號碼。接下來,半導體記憶裝置50藉由使用已判定之邏輯區塊號碼來參考邏輯至實體轉譯表,且判定將自其讀取資料的通道、實體區塊及頁(步驟S23)。半導體記憶裝置50自對應於已判定之通道的半導體記憶體元件58讀取資料(步驟S24)。
對比而言,在由讀取命令請求讀取之資料之大小大於頁大小(步驟S21中之否)的狀況下,半導體記憶裝置50劃分讀取,使得待讀取之資料變成以頁為單位之資料片段。亦即,半導體記憶裝置50藉由使用由讀取命令所規定之邏輯區塊位址來計算待讀取之資料片段的邏輯區塊位址中之每一者(步驟S22)。半導體記憶裝置50參考前向查找表之LBA表,且使用所計算之邏輯區塊位址中之每一者來判定邏輯區塊號碼中之每一者。接下來,半導體記憶裝置50參考邏輯至實體轉譯表,且使用已判定之邏輯區塊號碼中之每一者來判定將自其讀取資料之通道、實體區塊及頁中之每一者(步驟S23)。半導體記憶裝置50自對應於已判定之通道的半導體記憶體元件58讀取資料片段(步驟S24)。
藉由添加至資料之頁ECC來確保步驟S24中所讀取之資料的有效性。亦即,半導體記憶裝置50偵測資料中之錯誤且可藉由使用添加至所讀取之資料的頁ECC來校正其。然而,當可能存在無法藉由頁ECC校正之錯誤時,存在在半導體記憶體元件58中發生故障及在資料中發生異常的可能性。在此狀況下(步驟S25中之否),半導體記憶裝置50參考前向查找表,判定與已使用資料讀取中所使用之邏輯區塊位址自其讀取資料的通道之實體區塊相關聯的邏輯區塊(步驟S27)、讀取寫入於與已判定之邏輯區塊相關聯之其他通道之實體區塊中的其他資料片段及冗餘資訊,及藉由使用該等其他資料片段及該冗餘資訊來還原包括無法校正之錯誤的資料。
圖12為展示還原資料之狀態的圖式,該資料歸因於發生於通道CH3(作為一實例)之半導體記憶體元件58中的故障而變得異常。具體而言,半導體記憶裝置50讀取寫入於通道之實體區塊(不同於與步驟S27中所判定之邏輯區塊相關聯的實體區塊及自其讀取無法校正之錯誤資料的實體區塊)中之其他資料片段及冗餘資訊(寫入於通道CH0、CH1、CH2及CH4中之資料片段及寫入於通道CH5中之冗餘資訊)。半導體記憶裝置50藉由獲得該等其他資料片段及該冗餘資訊中之相同偏移處的互斥或(亦即,在相同偏移位置處之以位元組為單位的互斥或)來還原通道CH3中之資料。半導體記憶裝置50將所還原之資料儲存於資料緩衝器67中(步驟S28)且前進至步驟S29。
由於在自其讀取錯誤資料之頁中發生異常存在高的可能性,因此半導體記憶裝置50將所還原之資料新近寫入至不同頁。半導體記憶裝置50藉由使用資料讀取中所使用之邏輯區塊位址來更新位元向量表及前向查找表。更新該等表之方法係如上文所描述。由於更新,自其讀取錯誤資料之頁的位元向量更新至「0」,寫入有所還原之資料的頁的位元向量更新至「1」,且寫入有所還原之資料的頁的實體區塊位址記錄於由讀取命令所規定之邏輯區塊位址的前向查找表之項目中。
在於步驟S24中所讀取之資料中不存在錯誤的狀況下,半導體記憶裝置50將資料儲存於資料緩衝器67中之一所規定區域中且前進至步驟S29。即使在於步驟S24中所讀取之資料中存在錯誤,半導體記憶裝置50仍藉由頁ECC來校正資料(步驟S26),將所校正之資料儲存於資料緩衝器67中之一所規定區域中,且前進至步驟S29。在步驟S29中,半導體記憶裝置50將儲存於資料緩衝器67中之所指明區域中的資料傳輸至主機。
當藉由在步驟S20中所接收之讀取命令請求讀取複數個資料片段時,半導體記憶裝置50可根據由該命令所規定之邏輯區塊位址自與不同邏輯區塊相關聯之通道的實體區塊讀取資料。由於如上文所描述可在讀取資料時獨立地存取通道,因此可回應於來自主機之請求而讀取資料且快速地將該資料傳輸至主機。
接下來,將參看圖13來描述將寫入於待經受壓縮之邏輯區塊中的有效資料移至自由區塊之程序。半導體記憶裝置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(步驟S45)且返回至步驟S41。在步驟S41中,半導體記憶裝置50讀取位元向量表中尚未以K之次序讀取的邏輯區塊中之有效頁數目之計數器值。對比而言,在有效頁數目之計數器值已關於所有邏輯區塊而被讀取(步驟S44中之是)的狀況下,半導體記憶裝置50將K之值設定作為邏輯至實體轉譯表中作為待經受壓縮之候選者的邏輯區塊之索引(步驟S46)。如上文所描述,由於項目經配置使得可使用邏輯至實體轉譯表之索引來參考位元向量表,因此位元向量表中之項目之索引K可用作邏輯至實體轉譯表中的項目之索引。半導體記憶裝置50判定儲存於頁(有效頁)(在位元向量表中該頁之位元向量關於與由邏輯至實體轉譯表中之索引K所指示的項目之邏輯區塊相關聯的通道CH0至CH4中之實體區塊中之每一者指示「1」)中之資料(有效資料),且將所有有效資料讀取至資料緩衝器67。半導體記憶裝置50提取添加至有效資料之邏輯區塊位址(步驟S47)。
半導體記憶裝置50以類似於如上文所描述之回應於寫入命令所執行之資料寫入的方式來寫入步驟S47中所讀取之有效資料之每一片段。亦即,半導體記憶裝置50以循環方式判定將自通道CH0至CH4寫入有有效資料之通道,且將有效資料寫入至由通道中之半導體記憶體元件58中的抹除區塊中之寫入指標所指示的頁。其後,半導體記憶裝置50更新寫入指標,以便指出在寫入有有效資料之頁後面的下一未寫頁。以寫入於通道CH0至CH4中之資料為基礎來計算冗餘資訊,且將該冗餘資訊寫入於通道CH5中。半導體記憶裝置50將添加至所寫入之有效資料的邏輯區塊位址與寫入有有效資料之頁的實體區塊位址之間的關聯記錄至前向查找表中以更新該表(步驟S48)。更新前向查找表之方法係如上文所描述。在壓縮中,藉由更新前向查找表,資料之邏輯區塊位址與實體區塊位址之間的關聯可正常地總是得以保持。由於邏輯區塊位址添加至資料,因此邏輯區塊位址與寫入有資料之實體區塊位址之間的關聯可容易地在執行壓縮時更新。
當完成自資料緩衝器67讀取被載入至資料緩衝器67之所有有效頁中的資料(步驟S49中之是)且完成至半導體記憶體元件58之寫入時,半導體記憶裝置50對與邏輯區塊(作為將在步驟S46中經受壓縮的候選者)相關聯之通道CH0至CH5中的實體區塊執行抹除操作,且完成壓縮處理程序。
執行壓縮處理程序之計時可為(例如)在藉由對邏輯區塊之構成進行檢查所獲得的自由區塊之數目變得等於或小於指定數目時的計時。
如上文所描述,在以下組態中以頁單位為基礎來寫入資料:使用複數個半導體記憶體元件,使得即使當半導體記憶體元件中之任一者有錯時仍可存取資料。以頁為單位來劃分大於頁大小之資料。其後,將經劃分之資料片段分配至半導體記憶體元件58,且將其寫入至半導體記憶體元件58中之每一者中的頁,使得均勻地執行至半導體記憶體元件58之寫入操作。藉由將用於寫入至該複數個半導體記憶體元件中之頁之資料的冗餘資訊寫入至單一半導體記憶體元件之頁中,藉由該複數個半導體記憶體元件之頁構成錯誤校正碼。以頁單位為基礎執行資料讀取,且當在資料中發生異常時,認為在半導體記憶體元件58中之寫入有資料的頁中發生異常,藉由使用在包括異常頁及其他半導體記憶體元件的半導體記憶裝置當中所構成之錯誤校正碼來還原資料。
就此組態而言,關於將資料寫入至複數個頁(在上文所描述之實例中為5個頁),可將對應於資料之冗餘資訊之寫入抑制至一個頁。對比而言,在HDD之RAID中,關於寫入一頁之資料,對應於資料之冗餘資訊的寫入為一個頁。在實施例中,可將冗餘資訊之寫入抑制至1/N(在上文所描述之實例中為1/5)。如上文所描述,由於在NAND型之半導體記憶體元件中寫入次數受限制,因此在抑制寫入冗餘資訊之次數之同時,可改良半導體記憶裝置50之可靠性。
在HDD之RAID中,當在資料中發生異常時,認為儲存有資料之整個HDD變得有錯,拆卸HDD,且藉由在將有錯資料儲存於其中之HDD及其他HDD當中所構成的錯誤校正碼來還原資料。在實施例中,即使當資料中發生異常時,仍可將其處置為作為半導體記憶體元件之一部分的區塊或頁之故障,而非處置為整個半導體記憶體元件之故障。因此,亦可處置更小單元中之錯誤。即使當整個半導體記憶體元件變得有錯時,仍可藉由在將有錯資料儲存於其中之半導體記憶體元件及其他半導體記憶體元件當中所構成的錯誤校正碼來還原寫入於半導體記憶體元件中之資料。因此,可實現極其高的可靠性。
就此組態而言,即使當歸因於半導體記憶體元件中之故障或其類似者而在資料中出現異常時,仍可藉由錯誤校正碼來還原資料。因此,可改良半導體記憶裝置50之可靠性,且可抑制被限制之半導體記憶體元件之寫入次數的增加。
在實施例中,藉由提供位元向量表,可以高速來有效地執行壓縮。為執行壓縮,半導體記憶裝置50必須識別區塊中寫入有有效資料之有效頁,獲得對應於該有效頁之邏輯區塊位址,移動該有效資料,且執行使邏輯區塊位址與移有資料之頁之實體區塊位址相關聯的更新處理程序。可經由前向查找表來執行有效頁之識別及實體區塊位址之更新。然而,前向查找表係藉由被最佳化至將邏輯區塊位址用作索引之搜尋而構成。因此,在執行壓縮時經由前向查找表所進行的有效頁之識別及實體區塊位址之更新引起搜尋時間之懲罰增加。
經受壓縮之邏輯區塊具有合乎需要之小數目個有效頁。此原因係藉由由壓縮來移動有效頁而獲得多個自由區塊。為選擇具有小數目個有效頁的邏輯區塊,可選擇具有小數目個位元向量(具有值「1」)的項目。為對具有值「1」的位元向量之數目計數,例如,可提供群體計算(對字中具有值「1」之位元的數目進行計數)。然而,當項目之位元寬度為大(在實例中為320個位元)時,難以在一個循環中計算位元數目。因此,在實施例中,半導體記憶裝置50根據位元向量值之改變來更新圖5中所示之有效頁數目的計數器值。在擷取待經受壓縮之邏輯區塊時,藉由擷取位元向量表中具有有效頁之計數器之最小數目的項目,獲得邏輯區塊。可藉由一次讀取與所有邏輯區塊有關之項目之有效頁數目的計數器值中之每一者來擷取有效頁數目之計數器值為最小的項目。因此,在該實施例中之半導體記憶裝置50中,藉由參考位元向量表,可容易地擷取具有小數目個有效頁的邏輯區塊,且可以高速來有效地執行壓縮。
已在上文描述半導體記憶裝置50之基本組態。接下來,將描述用於解決在半導體記憶裝置50之半導體記憶體元件58A至58F中的可用儲存區域之容量變化的組態。在上文所描述之基本組態中,當自主機接收到請求寫入資料之寫入命令時,半導體記憶裝置50選擇通道中之每一者中的一自由區塊,且構成與通道CH0至CH5中之抹除區塊相關聯的邏輯區塊。然而,當在每次需要邏輯區塊時選擇可寫自由區塊(實體區塊)以構成邏輯區塊時,歸因於NAND型之半導體記憶體元件之本質而無法有效地使用實體區塊,且其可引起效能退化及可靠性降低。圖14為展示可用實體區塊之數目在通道CH0至CH5當中變化之狀態的概念圖。在該圖式中,以黑色繪出無法實體地使用之實體區塊,且藉由白色空白指示可用區塊。在NAND型之半導體記憶體元件中,即使當將規定數目(例如,4,096)個實體區塊安裝於單一記憶體晶片上時,在現實中,歸因於製造處理程序或其類似者之影響仍無法總是使用所安裝之所有實體區塊,且存在不可用之實體區塊。不可用之實體區塊之數目在半導體記憶體元件當中變化。因此,存在被展示為白色空白之可用區塊之數目在通道CH0至CH5當中變化的可能性,如圖14中所示。在此狀態下,當在每次自各別通道選擇可用實體區塊以藉由使所選區塊相關聯來構成邏輯區塊時,可構成之邏輯區塊的數目藉由具有最小數目個可用實體區塊之通道中的可用實體區塊之數目限制。在圖14之實例中,具有最小數目個可用實體區塊的通道為通道CH3。因此,半導體記憶裝置50中之可構成之邏輯區塊的數目與通道CH3之可用實體區塊的數目相同。在此狀況下,在不同於通道CH3之通道中,存在未使用之可用實體區塊。其意謂半導體記憶裝置50之可儲存容量實質上減小,且因此備用容量減小。如上文所描述,當備用容量減小時,必須頻繁地執行壓縮,且不利影響施加於效能上。因此,藉由使不同於通道CH3之通道中的可用實體區塊儘可能地有用,可抑制對效能之不利影響。
在此組態中,半導體記憶裝置50儲存使用狀態資訊,該資訊指示實體區塊中之每一者在對應於通道CH0至CH5之半導體記憶體元件58A至58F中之每一者中是否可使用。在請求資料寫入的狀況下,參考使用狀態資訊,判定半導體記憶體元件58之指定數目或更少(第一指定數目)。自已判定之數目個半導體記憶體元件58選擇實體區塊以構成邏輯區塊。藉由將預定單元中之資料及藉由使用指定數目(第二指定數目)個資料片段計算而得及用於校正第二指定數目個資料片段中之錯誤的冗餘資訊寫入於已判定之數目個半導體記憶體元件58中,藉由指定數目或更少個資料片度及冗餘資訊來構成錯誤校正碼。第二指定數目為1或更大,且等於或小於藉由自半導體記憶體元件58之已判定數目減去寫入有冗餘資訊之半導體記憶體元件58的數目所獲得的值。
將具體地描述此組態。圖15為說明半導體記憶裝置50之功能性組態的圖式。如圖15中所示,在本組態中,半導體記憶裝置50具有主機介面單元60、緩衝器控制器61、位址轉譯單元62、CH分配單元63、壓縮候選者偵測器64、管理表更新單元65、NAND控制器66A至66F、資料緩衝器67、壓縮讀取佇列68及管理表69,且另外具有NAND狀態管理單元70及邏輯區塊管理單元71。NAND狀態管理單元70之功能係藉由處理器51對程式之執行及分別對應於NAND控制器66A至66F之NAND控制器57A至57F的功能來實施。邏輯區塊管理單元71之功能係藉由處理器51對程式之執行來實施。管理表69具有前向查找表、位元向量表且另外具有實體區塊表。
本組態關於CH分配單元63及管理表更新單元65之功能與上文所描述之基本組態不同。CH分配單元63自位址轉譯單元62接收命令,且當該命令為寫入命令時請求將在稍後描述之邏輯區塊管理單元71構成邏輯區塊,且根據寫入命令將請求將寫入目標資料寫入至由邏輯區塊管理單元71所判定之通道的命令發送至對應於該通道之NAND控制器66。在更新每一通道中之寫入指標時,當寫入有寫入目標資料之頁為至少一通道中之實體區塊中的最後頁時,CH分配單元63請求邏輯區塊管理單元71構成新的邏輯區塊。
以類似於上文所描述之基本組態的方式,當自主機接收到請求藉由所規定之邏輯區塊位址來寫入資料的命令(寫入命令)時,管理表更新單元65參考前向查找表,更新位元向量表,且更新前向查找表。在本組態中,回應於來自邏輯區塊管理單元71之請求而更新前向查找表中之邏輯至實體轉譯表。管理表更新單元65根據來自將在稍後描述之NAND狀態管理單元70的請求而儲存或更新狀態資訊至實體區塊表。
NAND狀態管理單元70連接至NAND控制器66A至66F及管理表更新單元65,分別自NAND控制器66A至66F獲得半導體記憶體元件58A至58F之狀態,且請求管理表更新單元65將半導體記憶體元件58A至58F之狀態儲存至實體區塊表中。半導體記憶體元件58之狀態指示半導體記憶體元件58中之所有實體區塊中之每一者的使用狀態。實體區塊之使用狀態為可寫入資料之可用狀態(自由區塊),或資料業已被寫入且無法被寫入直至執行抹除(使用狀態)為止或寫入及使用為不可能的不可用狀態。可藉由將來自NAND狀態管理單元70之請求發送至NAND控制器66或藉由來自NAND控制器66之通知來獲得半導體記憶體元件58之狀態。較佳地,將半導體記憶體元件58之狀態獲得作為在半導體記憶裝置50實際用作記憶裝置之前的預備。
實體區塊表儲存指示半導體記憶體元件58A至58F上之實體區塊中之每一者的使用狀態的使用狀態資訊。圖16為說明實體區塊表之資料組態的圖式。如圖16中所示,實體區塊錶針對通道CH0至CH5中之每一者將通道號碼、半導體記憶體元件58中之可用實體區塊之最大數目、作為半導體記憶體元件58中之可用自由區塊的實體區塊之數目及指示半導體記憶體元件58中的所有實體區塊中之每一者之使用狀態的使用狀態資訊儲存於其中。藉由NAND狀態管理單元70來判定是否可使用實體區塊,且經由NAND狀態管理單元70及管理表更新單元65而將判定結果作為使用狀態資訊儲存於實體區塊表中。在資料寫入於處於可用狀態之實體區塊中的狀況下,藉由管理表更新單元65來相應地更新使用狀態資訊。
當CH分配單元63請求構成邏輯區塊時,邏輯區塊管理單元71參考實體區塊表來判定用於構成邏輯區塊之實體區塊的通道。具體而言,當邏輯區塊管理單元71參考實體區塊表時,且當所有通道CH0至CH5中之每一者之可用實體區塊的數目大於「0」時,邏輯區塊管理單元71以類似於上文所描述之基本組態的方式判定藉由使通道CH0至CH5之實體區塊相關聯來構成邏輯區塊。此外,邏輯區塊管理單元71判定將冗餘資訊寫入至具有最大通道號碼之通道CH5。邏輯區塊管理單元71對不同於寫入有冗餘資訊之通道CH5的通道CH0至CH4以循環方式每4 KB執行寫入操作,且根據循環處理之次序來判定待寫入有資料之通道。對比而言,在於通道CH0至CH5中之至少一者中可用實體區塊之數目為「0」的狀況下,邏輯區塊管理單元71判定藉由使通道(除具有可用實體區塊之數目為「0」的通道外)之實體區塊相關聯來構成邏輯區塊。舉例而言,在具有「0」之可用實體區塊數目的通道為通道CH3的狀況下,邏輯區塊管理單元71判定藉由使通道CH0至CH5之實體區塊相關聯來構成邏輯區塊。接著,邏輯區塊管理單元71將在構成邏輯區塊時未被排除之通道當中具有最大通道號碼之通道CH5判定為寫入有冗餘資訊的通道,在不同於寫入有冗餘資訊之通道CH5的通道CH0至CH2及CH4中以循環方式每4 KB執行寫入操作,且根據循環次序判定寫入有資料之通道。其後,在該等狀況中之任一者下,邏輯區塊管理單元71將請求將寫入目標資料寫入至已判定之通道的命令發送至CH分配單元63。邏輯區塊管理單元71請求管理表更新單元65執行以下處理程序:將規定與邏輯區塊相關聯之通道之實體區塊的資訊及規定寫入有冗餘資訊之通道的資訊記錄至邏輯至實體轉譯表中。
現將參看圖17來描述本組態中之前向查找表之資料組態。在本組態中之前向查找表中所包括的邏輯至實體轉譯表中,記錄作為索引之邏輯區塊號碼、與邏輯區塊相關聯之通道之實體區塊的位址(實體區塊位址),及寫入有冗餘資訊之通道的通道號碼。
在藉由使除通道CH5外的通道CH0至CH4中之實體區塊相關聯來構成邏輯區塊的狀況下,通道CH0至CH4中具有最大通道號碼的通道為通道CH4。因此,在冗餘資訊寫入至具有最大通道號碼之通道的本組態中,邏輯區塊中將寫入有冗餘資訊之通道為通道CH4。在此狀況下,邏輯區塊管理單元71經由管理表更新單元65而將規定寫入有冗餘資訊之通道的通道號碼CH4記錄至圖17之邏輯至實體轉譯表中。
接下來,將描述藉由本組態中之半導體記憶裝置50所執行的處理程序之程序。首先,將參看圖18來描述建構實體區塊表的處理程序之程序。半導體記憶裝置50針對每一通道藉由NAND狀態管理單元70之功能來執行步驟S60至S67中之處理程序。首先,半導體記憶裝置50將待處理之實體區塊之數目「i」設定為「0」(步驟S60)。半導體記憶裝置50經由對應於待處理之通道的NAND控制器66來檢查屬於對應於待處理之通道之半導體記憶體元件58的實體區塊中之為實體區塊號碼「i」的實體區塊是否可使用(步驟S61)。就一種檢查實體區塊是否可使用的方法而言,可使用在NAND型之半導體記憶體元件中所判定之方法。在實體區塊為可用(步驟S62中之是)的狀況下,半導體記憶裝置50藉由管理表更新單元65之功能來存取實體區塊表,且將實體區塊號碼「i」之實體區塊的使用狀態作為「可用」而記錄於對應於待處理之通道之半導體記憶體元件58的使用狀態資訊中(步驟S63)。半導體記憶裝置50使可用實體區塊之最大數目及使用狀態資訊中的可用之實體區塊與自由區塊之數目中的每一者遞增1(步驟S64)。
對比而言,在待處理之實體區塊並非可用(步驟S62中之否)的狀況下,半導體記憶裝置50藉由管理表更新單元65之功能來存取實體區塊表,且將實體區塊號碼「i」之實體區塊之使用狀態作為「不可用」而記錄於對應於待處理之通道的半導體記憶體元件58之使用狀態資訊中(步驟S66)。其後,半導體記憶裝置50藉由NAND狀態管理單元70之功能來判定實體區塊相對於屬於對應於待處理之通道之半導體記憶體元件58的所有實體區塊是否為可用的,亦即,判定實體區塊號碼「i」是否已達到「(半導體記憶體元件58之實體區塊之總數)-1」(步驟S65)。在判定結果為負(步驟S65中之否)的狀況下,半導體記憶裝置50使實體區塊號碼「i」遞增1(步驟S67),返回至步驟S61,且判定待處理之新的實體區塊是否被檢驗為可用。在屬於對應於待處理之通道之半導體記憶體元件58的所有實體區塊經檢驗為是否可用(步驟S65中之是)的狀況下,半導體記憶裝置50對待處理之新通道執行步驟S60至S67中之處理程序。在於所有通道上完成步驟S60至S67中之處理程序的狀況下,半導體記憶裝置50完成該處理程序。結果,儲存關於屬於對應於每一通道之半導體記憶體元件58之所有實體區塊的使用狀態(其為可用狀態或不可用狀態)。其後,如將在下文所描述,在資料寫入於可用實體區塊中之狀況下,藉由管理表更新單元65之功能,實體區塊之使用狀態被更新為「在使用中」。
接下來,將參看圖9來描述根據來自主機之寫入命令藉由參考如上文所描述而建構之實體區塊表由半導體記憶裝置50將寫入目標資料寫入於半導體記憶體元件58中的程序。當在步驟S1中自主機接收到寫入命令時,半導體記憶裝置50藉由邏輯區塊管理單元71之功能參考實體區塊表來判定用以構成邏輯區塊之實體區塊的通道。在於通道之使用狀態資訊中可用實體區塊及自由區塊之所有數目大於「0」的狀況下,半導體記憶裝置50以類似於上文所描述之基本組態的方式判定藉由使通道CH0至CH5之實體區塊相關聯來構成邏輯區塊及將冗餘資訊寫入於具有最大通道號碼的通道CH5中。接著,半導體記憶裝置50保留每一通道中之自由區塊。半導體記憶裝置50將邏輯區塊號碼給予邏輯區塊,且將邏輯區塊號碼用作索引而將實體區塊(作為經保留用於每一通道之自由區塊)之實體區塊位址及寫入有冗餘資訊之通道的通道號碼記錄至邏輯至實體轉譯表中,將實體區塊中之每一者之使用狀態更新為「在使用中」,且更新如可用之實體區塊及自由區塊之數目(藉由使其遞減1)。半導體記憶裝置50執行步驟S2至S11中之處理程序。在步驟S8中,在更新每一通道中之寫入指標時,在寫入有寫入目標資料之頁為實體區塊中之最後頁的狀況下,半導體記憶裝置50參考實體區塊表且構成新的邏輯區塊。
儘管此寫入處理程序被執行多次,但如可用之實體區塊及自由區塊之數目變成「0」的通道出現在其他通道之前。特定言之,在藉由使通道CH0至CH5之實體區塊相關聯來構成邏輯區塊時,出現不具有可用自由區塊的通道。在構成邏輯區塊時,當存在如可用之實體區塊及自由區塊之數目參考實體區塊表變成「0」的通道時,半導體記憶裝置50判定藉由使除該通道外之通道的實體區塊相關聯來構成邏輯區塊。舉例而言,在圖14之實例中,當對應於具有最小可用實體區塊之通道CH3的半導體記憶體元件58D之可用自由區塊之數目變成「0」時,無法在通道CH3中保留自由區塊。因此,在步驟S1中,半導體記憶裝置50判定藉由使除通道CH3外之通道CH0至CH2、CH4及CH5之實體區塊相關聯來構成邏輯區塊。在排除通道CH3之後,通道CH5具有最大通道號碼,使得判定將冗餘資訊寫入至通道CH5。在如上文所描述構成邏輯區塊之狀況下,如圖17中所示,半導體記憶裝置50將邏輯區塊號碼用作索引而將作為通道CH0至CH2、CH4及CH5中所保留之自由區塊的實體區塊之實體區塊位址記錄至邏輯至實體轉譯表中。如圖17中所示,半導體記憶裝置50將在構成邏輯區塊時未關聯之通道CH3中之實體區塊的實體區塊位址(如「-1」)記錄至邏輯至實體轉譯表中。亦即,「-1」指示實體區塊未用作邏輯區塊之通道。以類似於基本組態之方式,在還原資料之狀況下,當半導體記憶裝置50參考邏輯至實體轉譯表且自與邏輯區塊相關聯之通道的實體區塊讀取資料時,半導體記憶裝置50可判定不必自圖18中所示之實體區塊位址為「-1」的實體區塊讀取資料。
即使在藉由寫入操作來構成排除不具有可用自由區塊之通道的邏輯區塊的狀況下,半導體記憶裝置50亦在步驟S1之後執行步驟S2至S11中之處理程序。在步驟S6中,在圖17之實例中,半導體記憶裝置50藉由循環方式判定除通道CH3外的通道CH0、CH1、CH2及CH4中將寫入有寫入目標資料之通道。在步驟S8中,半導體記憶裝置50設定寫入指標以指出通道CH0、CH1、CH2、CH4及CH5中之每一者之每一實體區塊中接下來寫入有寫入目標資料的頁連同與邏輯區塊相關聯的實體區塊中之每一者之實體區塊位址。在步驟S10中,半導體記憶裝置50參考位元向量表,關於通道CH0、CH1、CH2、CH4及CH5將對應於在步驟S5中儲存於DRAM 54中之舊的實體區塊位址之頁的位元向量之值設定為「0」,且使與包括該頁之實體區塊相關聯的邏輯區塊中之有效頁數目的計數器值遞減1。
將參看圖19來描述在藉由使除通道CH3外的通道CH0、CH1、CH2、CH4及CH5之實體區塊相關聯來構成邏輯區塊的狀況下藉由循環處理而將複數個經劃分之資料片段寫入至通道CH0、CH1、CH2及CH4中之實體區塊的狀態。在圖19中,出於圖式之簡化,未展示添加至經劃分之資料片段的邏輯區塊位址(如在圖7中)。假定錯誤校正碼寫入於邏輯區塊中之通道CH5中。如圖19中所說明,第一經劃分資料D1在時間t1寫入至通道CH0,且下一經劃分資料D2在時間t2寫入至通道CH1。經劃分資料D3在時間t3寫入於通道CH2中,且經劃分資料D4在時間t4寫入於通道CH4中。當經劃分資料D4在時間t4寫入於通道CH4中時,將經劃分資料D1至D4之同位P計算作為冗餘資訊,且將冗餘資訊P寫入於通道CH5中。在進一步寫入經劃分之資料片段時,只要資料寫入於邏輯區塊中,便藉由循環方式以在排除通道CH3時自通道CH0之次序寫入資料。在圖19之實例中,展示隨著時間的推移資料順序地寫入至通道的狀態。然而,本發明並不限於該實例。可將資料同時寫入至兩個或兩個以上通道。
接下來,將參看圖20來描述在藉由使除通道CH3外的通道CH0、CH1、CH2、CH4及CH5中之實體區塊相關聯來構成邏輯區塊的狀況下錯誤校正碼之組態。出於圖式之簡化,如圖8,未展示添加至經劃分之資料片段的邏輯區塊位址。在邏輯區塊中,錯誤校正碼寫入於通道CH5中。如圖20中所示,對應於通道CH5之NAND控制器66F計算在通道CH0、CH1、CH2及CH4中之寫入目標資料中之相同偏移位置處的互斥或(以位元組為單位),且將由此計算作為冗餘資訊之值寫入於通道CH5之半導體記憶體元件58F中的相同偏移位置中。亦即,藉由通道CH0、CH1、CH2、CH4及CH5中之相同偏移位置處的位元組來構成錯誤校正碼。
接下來,將參看圖11來描述根據來自主機之讀取命令由半導體記憶裝置50自半導體記憶體元件58讀取資料的處理程序之程序。將讀取被寫入於與除通道CH3外的通道CH0、CH1、CH2、CH4及CH5之實體區塊相關聯之邏輯區塊中之資料的狀況(如圖17中所示)描述作為一實例。以類似於基本組態之方式,半導體記憶裝置50執行步驟S20至S23中之處理程序。在步驟S23中,半導體記憶裝置50參考邏輯至實體轉譯表,且將通道CH0至CH2、CH4及CH5之實體區塊判定為將自其讀取資料之通道的邏輯區塊。由於在圖17中所說明之邏輯至實體轉譯表中「-1」儲存於通道CH3中之實體區塊的實體區塊位址中,因此半導體記憶裝置50可判定通道CH3之實體區塊不與邏輯區塊相關聯,且因此不必自通道CH3讀取資料。其後,半導體記憶裝置50執行步驟S24至S28中之處理程序。在步驟28中,在讀取寫入於與已判定之邏輯區塊相關聯之其他通道之實體區塊中的其他資料片段及冗餘資訊時,半導體記憶裝置50自不同於通道CH3之通道讀取其他資料片段及冗餘資訊。在與通道CH0、CH1、CH2、CH4及CH5之實體區塊相關聯的邏輯區塊中,未藉由來自主機之讀取命令請求自通道讀取資料,因為尚未執行將資料寫入至通道CH3之實體區塊。在步驟S28中,在讀取其他資料片段及冗餘資訊之後,半導體記憶裝置50藉由使用所讀取之其他資料及冗餘資訊來還原錯誤資料。
圖21為展示在與圖20(作為一實例)中所示之通道CH0、CH1、CH2、CH4及CH5之實體區塊相關聯的邏輯區塊中還原資料之狀態的圖式,該資料歸因於發生於通道CH2之半導體記憶體元件58中的故障而變得異常。具體而言,半導體記憶裝置50讀取寫入於通道之實體區塊(不同於與步驟S27中所判定之邏輯區塊相關聯的實體區塊及自其讀取無法校正之錯誤資料的實體區塊)中的其他資料片段及冗餘資訊(寫入於通道CH0、CH1及CH4中之資料及寫入於通道CH5中之冗餘資訊)。半導體記憶裝置50藉由獲得其他資料片段及冗餘資訊中之相同偏移處的互斥或(亦即,相同偏移位置處之以位元組為單位的互斥或)來還原通道CH2中之資料。半導體記憶裝置50將所還原之資料儲存於資料緩衝器67中,且前進至步驟S29。
將參看圖13來描述將寫入於待經受壓縮之邏輯區塊中的有效資料移至自由區塊的程序。如在上文所描述之基本組態中,當半導體記憶裝置50執行步驟S40至S49中之處理程序時。當半導體記憶裝置50將與通道CH0、CH1、CH2、CH4及CH5(除圖17中所示之通道CH3外)之實體區塊相關聯之邏輯區塊設定作為待經受壓縮的候選者時,在步驟S47中,半導體記憶裝置50判定儲存於頁(有效頁)(在位元向量表中該頁之位元向量關於與邏輯至實體轉譯表中之項目之邏輯區塊相關聯的通道CH0、CH1、CH2、CH4及CH5中之實體區塊中的每一者展示「1」)中之資料(有效資料),且將所有有效資料載入至資料緩衝器67。特定言之,在與通道CH0、CH1、CH2、CH4及CH5(除圖17中所示之通道CH3外)之實體區塊相關聯的邏輯區塊中,半導體記憶裝置50可判定通道CH3之實體區塊不與邏輯區塊相關聯,且因此不必自通道CH3讀取資料,因為在邏輯至實體轉譯表中「-1」儲存於通道CH3之實體區塊的實體區塊位址中。
就上文所描述之組態而言,邏輯區塊可藉由使其與小於預定值之數目之通道的實體區塊相關聯而構成。因此,即使當半導體記憶裝置50中之通道中的可用實體區塊之數目如圖14中所示而變化時,仍可增加可構成之邏輯區塊的數目。因此,可抑制備用容量之減小。結果,可減小執行壓縮之頻率,且可抑制半導體記憶裝置50之效能的退化。
[修改]
本發明並不限於上文所呈現之實施例,而是可在不脫離本發明之精神的情況下藉由實施中之各種經修改組件來體現。此外,可藉由適當地組合實施例中所揭示之複數個組件以各種形式來體現本發明。舉例而言,可省略實施例中所呈現之組件中的一些組件。此外,可適當地組合不同實施例中之一些組件。另外,可作出如描述為下文之實例的各種修改。
在上文所描述之實施例中,在半導體記憶裝置50中所執行之各種程式可儲存於連接至諸如網際網路之網路的電腦上,且藉由經由網路下載而提供。各種程式可以可安裝或執行之檔案的形式記錄於電腦可讀記錄媒體(諸如,CD-ROM、軟性磁碟(FD)、CD-R或數位影音光碟(DVD))中,且提供作為電腦程式產品。
在上文所描述之實施例中,可藉由硬體來實施處理器51之功能之一部分。半導體記憶裝置50可具有複數個處理器51,且可藉由該複數個處理器51來實施上文所描述之功能。就此組態而言,可達成更高之處理速度。
在上文所描述之實施例中,前向查找表及位元向量表儲存於DRAM 54中,但本發明並不限於其。舉例而言,該等表可儲存於半導體記憶體元件58中,且當藉由處理器51使用該等表時在DRAM 54中快取其。
在上文所描述之實施例中,ECC碼添加至以頁為單位之每一資料作為頁ECC。然而,ECC碼可添加至小於頁之單位(例如,512個位元組之區段的單位)。就此組態而言,在無法以小於頁之單位校正資料中之錯誤的狀況下,可認為在資料中發生異常且藉由使用由複數個通道所產生之錯誤校正碼來還原資料。
在上文所描述之實施例中,將藉由複數個通道構成錯誤校正碼之單位設定為位元組,但本發明並不限於其,且可將大於或小於位元組之大小用作單位。儘管同位碼用作錯誤校正碼,但本發明並不限於同位碼。可設定複數個冗餘資訊片段且可使用雷德所羅門碼。就雷德所羅門碼而言,可還原歸因於複數個半導體記憶體元件58中之故障而發生異常的資料。
在上文所描述之實施例中,寫入有資料之通道的數目為4,寫入有資料之冗餘資訊之通道的數目為1,且構成錯誤校正碼之通道的數目為5,但本發明並不限於其。此外,在上文所描述之實施例中,將在連接有半導體記憶體元件58(其中存在與邏輯區塊相關聯之實體區塊)之通道當中的具有最大通道號碼之通道設定為寫入有構成錯誤校正碼之冗餘資訊的通道,但本發明並不限於其。可將通道分配至各自構成錯誤校正碼之單位。
在上文所描述之實施例中,通道一對一地對應於半導體記憶體元件58,但本發明並不限於其。通道可一對多地對應於半導體記憶體元件58,亦即,複數個半導體記憶體元件58可分配至一個通道。在此狀況下,用於識別各別半導體記憶體元件58之識別號碼分配至半導體記憶體元件58。記錄每一通道之每一區塊的識別號碼及實體區塊位址。舉例而言,若將8個半導體記憶體元件分配至每一通道,則將總共15個位元(包括用於識別半導體記憶體元件之3個位元及用於識別每一半導體記憶體元件中所包括之4,096個區塊的12個位元)作為每一通道之區塊中之每一者的識別號碼及實體區塊位址而記錄於邏輯至實體轉譯表中。
在此狀況下,如圖22中所示,實體區塊表可經建構,以便針對每一通道包括通道號碼、用於識別分配至通道之半導體記憶體元件58的識別號碼(晶片號碼)、半導體記憶體元件58中之可用實體區塊之最大數目、作為半導體記憶體元件58中之可用自由區塊的實體區塊之數目,及半導體記憶體元件58中之所有實體區塊的使用狀態。儘管晶片號碼及通道號碼記錄於圖22中之不同欄位中,但只要可藉由使用半導體記憶體元件58之序列號或其類似者來判定半導體記憶體元件58,便可將其記錄於單一欄位中。此外,如圖23中所示,在建構實體區塊表之處理程序中,NAND狀態管理單元70可對通道中之複數個半導體記憶體元件58中之每一者執行步驟S60至S67中之處理程序。
在前述實施例中,為簡化邏輯至實體轉譯表之安裝,合乎需要地,邏輯至實體轉譯表中之項目的數目與每一通道中之實體區塊(構成連接至該通道之半導體記憶體元件)之總數彼此相等。由於邏輯至實體轉譯表上之項目的數目與通道CH0中之實體區塊的數目彼此相等,因此可建構邏輯至實體轉譯表使得記錄有邏輯區塊之項目的位置可藉由與該邏輯區塊相關聯之通道CH0中之實體區塊的實體區塊號碼來判定。實體區塊號碼(例如)以升序給予構成連接至通道之半導體記憶體元件58的實體區塊。在此狀況下,可將與邏輯區塊相關聯之通道CH0中的實體區塊之實體區塊號碼設定為充當邏輯至實體轉譯表中之索引的邏輯區塊號碼。或者,可將邏輯至實體轉譯表中之項目記錄於清單結構中。
在上文所描述之實施例中,將與邏輯區塊相關聯之通道中的實體區塊之實體區塊位址記錄於邏輯至實體轉譯表中;然而,本發明並不限於其。可記錄實體區塊號碼。在邏輯至實體轉譯表中,在存在一通道(其實體區塊不與通道CH0至CH5中之邏輯區塊相關聯)的狀況下,將「-1」記錄於通道之實體區塊的實體區塊位址中。然而,本發明並不限於該實施例。
在上文所描述之實施例中,實體區塊表之組態並不限於上文所描述的組態。
在上文所描述之實施例中,半導體記憶裝置50將邏輯區塊位址添加至半導體記憶體元件58中之寫入目標資料。然而,半導體記憶裝置50可進一步包括實體至邏輯轉譯表(不同於邏輯至實體轉譯表),該實體至邏輯轉譯表展示寫入於半導體記憶體元件58中之資料的實體區塊位址(作為索引)與資料之邏輯區塊位址之間的關聯,而非添加邏輯區塊位址。接著,在壓縮中,半導體記憶裝置50可使用自半導體記憶體元件58所讀取之有效資料之實體區塊位址,參考實體至邏輯轉譯表以獲得對應於實體區塊位址的邏輯區塊位址,且使用所獲得之邏輯區塊位址來更新前向查找表(由於壓縮)。
在上文所描述之實施例中,當在將資料分配至通道CH0至CH3中之至少一者之後的預定時間中不存在寫入目標資料之狀態繼續的狀況下將通道分配至寫入目標資料時,通道CH1至CH4中未分配有寫入目標資料之通道中之對應頁中的虛設資料(例如,位元全部為「0」之資料)及藉由使用通道CH1至CH4中之對應頁中之資料所計算的冗餘資訊寫入於通道CH5中之對應頁中。就此組態而言,可避免以下可能性:使得在通道CH0至CH4中之對應頁中未構成用於業已寫入有資料之通道中之資料的錯誤校正碼,且當在資料中發生錯誤時無法還原資料。
在上文所描述之實施例中,NAND狀態管理單元70可不在半導體記憶裝置50實際用作記憶裝置之前而是(例如)在半導體記憶裝置50之操作期間週期性地或結合某一事件而獲得半導體記憶體元件58的狀態。舉例而言,圖1中所示之處理器51具有位於其中之計時器,在計時器中設定一恰當值,且週期性地檢查半導體記憶體元件58之狀態。在此狀況下,NAND狀態管理單元70可檢查實體區塊(其被儲存為「可用」或「在使用中」作為實體區塊表之使用狀態資訊中的使用狀態)是否實際上處於不可用狀態。就一種以類似於上文之方式檢查實體區塊之使用狀態的方法而言,可使用在NAND晶片中所判定之方法。關於由於檢查而被判定為實體區塊實際上處於不可用狀態的實體區塊,NAND狀態管理單元70更新使用狀態資訊,使得實體區塊之使用狀態為實體區塊表中之「不可用」。
此外,舉例而言,在NAND控制器66未能將資料寫入至半導體記憶體元件58中之實體區塊/自半導體記憶體元件58中之實體區塊抹除資料的狀況下,或在於讀取時未能進行藉由頁ECC之校正的狀況下,藉由將該事實自NAND控制器66通知給NAND狀態管理單元70,NAND狀態管理單元70可根據半導體記憶體元件58或實體區塊之狀態改變來獲得半導體記憶體元件58之狀態。在此狀況下,NAND狀態管理單元70檢查藉由頁ECC進行之寫入、抹除或校正已失敗的實體區塊是否實際上不可用。在結果判定實體區塊實際上不可用的狀況下,NAND狀態管理單元70可經由管理表更新單元65來更新使用狀態資訊,使得實體區塊之使用狀態被設定為實體區塊表中之「不可用」。
在由於檢查中之任一者而判定實體區塊處於不可用狀態時的時間點,存在有效資料儲存於實體區塊中之可能性。在此狀況下,半導體記憶裝置50可對與實體區塊相關聯之邏輯區塊執行壓縮。以此方式,儲存於實體區塊中之有效資料移至另一邏輯區塊。
在上文所描述之實施例中,當自主機接收到寫入命令且執行資料寫入時,半導體記憶裝置50構成邏輯區塊。然而,本發明並不限於其。例如而言,可將邏輯區塊建構為在半導體記憶裝置50實際用作記憶裝置之前的預備。在此狀況下,在建構實體區塊表之後,邏輯區塊管理單元71參考實體區塊表來建構邏輯區塊,且經由管理表更新單元65而將指示與邏輯區塊相關聯之通道中的實體區塊中之每一者的資訊記錄至邏輯至實體轉譯表中。
在上文所描述之實施例中,藉由自指定數目個通道獲得可用實體區塊且使所獲得之區塊相關聯來構成邏輯區塊。此外,僅在於對應於某一通道之半導體記憶體元件58之實體區塊當中的未寫入有資料之可用實體區塊之數目變成「0」之後,藉由使指定數目或更少個通道的實體區塊相關聯來構成邏輯區塊。然而,本發明並不限於其。舉例而言,可藉由根據可用實體區塊之數目間歇地使少於指定數目之通道的實體區塊相關聯來構成邏輯區塊。亦即,半導體記憶裝置50可藉由使指定數目個通道的實體區塊相關聯來選擇性地執行邏輯區塊之構成,或藉由根據可用實體區塊之數目使少於指定數目的通道之實體區塊相關聯來選擇性地執行邏輯區塊之構成。具體而言,例如,在於實體區塊表在半導體記憶裝置50實際用作記憶裝置之前被構成時對應於某一通道之半導體記憶體元件58的可用實體區塊之最大數目等於或大於半導體記憶體元件58之實體區塊之總數的1/3且小於一半的狀況下,在建構邏輯區塊時,使通道之實體區塊在每三次建構邏輯區塊時不關聯一次。在最大值等於或大於總數之2/3的狀況下,在構成邏輯區塊時,使通道之實體區塊總是相關聯。在最大值等於或大於總數之1/5且小於1/3的狀況下,在構成邏輯區塊時,使通道之實體區塊在每兩次構成邏輯區塊時不關聯一次。如上文所描述,選擇及關聯通道之頻率必須根據可用實體區塊之數目的增加/減少而增加/減少。此原因係在使用半導體記憶裝置50時可用實體區塊之數目歸因於半導體記憶體元件58之疲勞而減少。舉例而言,藉由亦使用一種在考慮到平衡半導體記憶裝置50之通道中的可用實體區塊之數目而不使選自具有最小數目個可用實體區塊之通道的實體區塊與選自其他通道之實體區塊每兩次相關聯一次的狀況下構成邏輯區塊的方法,必須儘可能多地組態邏輯區塊。
在上文所描述之實施例中,可調整實體區塊未用於構成邏輯區塊的通道之數目。舉例而言,在如上文所描述之具有6個通道的半導體記憶裝置50中,在使所有通道中之實體區塊相關聯的狀況下,甚至當將一個通道用於冗餘資訊時,用於冗餘資訊之通道對用於寫入目標資料之通道的比率為1:5。然而,在將邏輯區塊中之一個通道用於存在三個通道(其實體區塊未用於構成邏輯區塊)之邏輯區塊中的冗餘資訊的狀況下,寫入有寫入目標資料之通道僅為兩個通道,且用於寫入冗餘資訊之通道的相對比率增加。其意謂施加於半導體記憶裝置50上之寫入冗餘資訊的影響係大的。
因此,在判定實體區塊將與邏輯區塊相關聯之通道的數目時,邏輯區塊管理單元71藉由使用半導體記憶裝置50之效能、分配於半導體記憶裝置50中之通道的總數、對應於分配於半導體記憶裝置50中之通道中之每一者的半導體記憶體元件58中之可用實體區塊之數目的變化及其類似者來調整實體區塊將不關聯之通道的數目。舉例而言,邏輯區塊管理單元71參考實體區塊表來檢查分別對應於分配於半導體記憶裝置50中之通道的半導體記憶體元件58中之每一者中之可用實體區塊的數目。在由於檢查而使兩個通道中之可用實體區塊之數目很大程度地減少(與其他通道相比)的狀況下,以以下方式調整實體區塊未被使用之通道的數目:(例如)允許實體區塊相關聯之多達兩個通道。在此狀況下,邏輯區塊管理單元71將實體區塊不與邏輯區塊相關聯的通道之數目之下限調整至4。邏輯區塊管理單元71藉由使構成連接至4至6個通道之半導體記憶體元件58的實體區塊相關聯來構成邏輯區塊。亦即,在此狀況下,將用於計算冗餘資訊之待寫入之資料片段的數目的下限設定為3個資料片段,邏輯區塊管理單元71判定寫入有3至5個資料片段之通道,且使已判定之通道之實體區塊與用於寫入冗餘資訊的通道之實體區塊相關聯,藉此構成邏輯區塊。
此組態可藉由不使實體區塊與邏輯區塊相關聯來防止以下情形:通道之使用效率降低、冗餘資訊之相對比率增加,及半導體記憶體元件58之使用效率降低。
在上文所描述之實施例中,半導體記憶裝置50可在每次構成邏輯區塊時改變實體區塊不關聯之通道。當在不使用僅一特定通道之實體區塊的情況下構成邏輯區塊時,通道之使用效率下降,另外,其他通道上之負載增加,且恐怕半導體記憶裝置50之可靠性減小。為避免此情形,例如,邏輯區塊管理單元71在不使用某一通道之實體區塊的情況下構成邏輯區塊,且其後在構成新的邏輯區塊時,在不使用不同於該通道之通道中的實體區塊中之任一者的情況下構成新的邏輯區塊。藉由改變分配於半導體記憶裝置50中之所有通道中實體區塊在每次構成邏輯區塊時不關聯的通道,分配於半導體記憶裝置50中之所有通道的使用效率變得幾乎相同,且可靠性亦可得以維持。
在上文所描述之實施例中,當邏輯區塊管理單元71構成邏輯區塊時,藉由參考實體區塊表中可用實體區塊之數目來判定實體區塊將相關聯的通道。然而,可存在以下狀況:實體區塊可相關聯之通道的數目變成1或更少。此外,為提供半導體記憶裝置50之令人滿意的效能,考慮除邏輯區塊之外亦存在一臨限值,該臨限值為可用實體區塊之最大所需數目。在此狀況下,邏輯區塊管理單元71無法構成新的邏輯區塊。在此狀況下,邏輯區塊管理單元71可停止半導體記憶裝置50之操作。為停止半導體記憶裝置50之操作,例如,圖1中所示之處理器51向經執行以控制整個半導體記憶裝置50的程式通知無法自邏輯區塊管理單元71構成邏輯區塊的事實,且請求停止操作。在於將半導體記憶裝置50實際用作記憶裝置之前構成邏輯區塊(如修改中所描述)的狀況下,邏輯區塊管理單元71可完成在單元71變得不能構成新的邏輯區塊時的時間點構成邏輯區塊的處理程序。
根據上文所描述之至少一實施例的半導體記憶裝置,該半導體記憶裝置包括複數個半導體記憶體晶片,該複數個半導體記憶體晶片具有寫入有由資訊處理設備請求寫入之資料的可寫儲存區域。該資料具有在一預定單元中之第一資料之一或多個片段,且該第一資料的一或多個片段包括第二資料。該半導體記憶裝置包括:一判定單元,其經組態以判定將寫入有該第一資料之該等片段的指定數目或更少個半導體記憶體晶片;一寫入控制器,其經組態以將該第一資料之該等片段及自該第二資料計算而得且用於校正該第二資料中之錯誤的冗餘資訊寫入至由該判定單元所判定之半導體記憶體晶片中的可寫儲存區域中;及一儲存單元,其經組態以將識別資訊及區域規定資訊儲存於其中以便使其彼此相關聯,該識別資訊使該第二資料與該冗餘資訊相關聯,且該區域規定資訊規定該等半導體記憶體晶片中將寫入有該第二資料中所包括之該第一資料之該等片段及該冗餘資訊的儲存區域。因此,在具有複數個半導體記憶體晶片之半導體記憶裝置中,在解決半導體記憶體晶片中之可用儲存區域之容量變化且抑制將資料寫入至半導體記憶體元件之次數的增加時,可處置半導體記憶體晶片中之故障且可改良可靠性。
儘管已描述某些實施例,但已僅藉由實例來呈現此等實施例,且其不欲限制本發明之範疇。實際上,本文中所描述之新穎實施例可以多種其他形式體現;此外,可在不脫離本發明之精神的情況下作出本文中所描述之實施例之形式的各種省略、替代及改變。隨附申請專利範圍及其等效物意欲涵蓋如將屬於本發明之範疇及精神的此等形式或修改。
50...半導體記憶裝置
51...處理器
52...開機唯讀記憶體(ROM)
53...記憶體控制器
54...動態隨機存取記憶體(DRAM)
55...SATA/SAS介面
56...匯流排
57A...NAND控制器
57B...NAND控制器
57C...NAND控制器
57D...NAND控制器
57E...NAND控制器
57F...NAND控制器
58A...半導體記憶體元件
58B...半導體記憶體元件
58C...半導體記憶體元件
58D...半導體記憶體元件
58E...半導體記憶體元件
58F...半導體記憶體元件
60...主機介面單元
61...緩衝器控制器
62...位址轉譯單元
63...CH分配單元
64...壓縮侯選者偵測器
65...管理表更新單元
66A...NAND控制器
66B...NAND控制器
66C...NAND控制器
66D...NAND控制器
66E...NAND控制器
66F...NAND控制器
67...資料緩衝器
68...壓縮讀取佇列
69...管理表
70...NAND狀態管理單元
71...邏輯區塊管理單元
CH0...通道
CH1...通道
CH2...通道
CH3...通道
CH4...通道
CH5...通道
D1...第一經劃分資料
D2...經劃分資料
D3...經劃分資料
D4...經劃分資料
D5...經劃分資料
D6...經劃分資料
D11...經劃分資料
D16...經劃分資料
P...同位/冗餘資訊
t0...時間
t1...時間
t2...時間
t3...時間
t4...時間
t5...時間
圖1為說明在一實施例之基本組態中半導體記憶裝置50之硬體組態的圖式;
圖2為用於解釋壓縮之概念圖;
圖3為說明半導體記憶裝置50之功能性組態之圖式;
圖4為說明前向查找表之資料組態之圖式;
圖5為說明位元向量表之資料組態之圖式;
圖6為說明寫入目標資料之圖式;
圖7為用於解釋以循環方式執行之寫入操作的圖式;
圖8為用於解釋錯誤校正碼之組態的圖式;
圖9為展示寫入寫入目標資料之程序的流程圖;
圖10為說明隨著時間的推移寫入目標資料被寫入之狀態的圖式;
圖11為展示讀取資料之程序的流程圖;
圖12為展示發生異常之資料得以還原之狀態的圖式;
圖13為展示壓縮處理程序之程序的流程圖;
圖14為展示可用實體區塊之數目變化之狀態的概念圖;
圖15為說明半導體記憶裝置50之功能性組態的圖式;
圖16為說明實體區塊表之資料組態的圖式;
圖17為展示建構實體區塊表之處理程序之程序的流程圖;
圖18為說明儲存於邏輯至實體轉譯表中之資訊的圖式;
圖19為說明資訊寫入於實體區塊中之狀態的圖式;
圖20為用於解釋錯誤校正碼之組態之圖式;
圖21為展示發生異常之資料得以還原之狀態的圖式;
圖22為說明一修改中實體區塊表之資料組態的圖式;及
圖23為展示該修改中建構實體區塊表之程序的流程圖。
58A...半導體記憶體元件
58B...半導體記憶體元件
58C...半導體記憶體元件
58D...半導體記憶體元件
58E...半導體記憶體元件
58F...半導體記憶體元件
60...主機介面單元
61...緩衝器控制器
62...位址轉譯單元
63...CH分配單元
64...壓縮侯選者偵測器
65...管理表更新單元
66A...NAND控制器
66B...NAND控制器
66C...NAND控制器
66D...NAND控制器
66E...NAND控制器
66F...NAND控制器
67...資料緩衝器
68...壓縮讀取佇列
69...管理表
70...NAND狀態管理單元
71...邏輯區塊管理單元

Claims (11)

  1. 一種半導體記憶裝置,其包含複數個半導體記憶體晶片,該複數個半導體記憶體晶片具有寫入有由一資訊處理設備請求寫入之資料的可寫儲存區域,該資料具有在一預定單元中之第一資料之一或多個片段,且該第一資料的一或多個片段包括第二資料;該裝置包括:一判定單元,其經組態以判定將寫入有該第一資料之該等片段的指定數目或更少個半導體記憶體晶片;一寫入控制器,其經組態以將該第一資料之該等片段及自該第二資料計算而得且用於校正該第二資料中之一錯誤的冗餘資訊寫入至由該判定單元所判定之該等半導體記憶體晶片中的該等可寫儲存區域中;及一儲存單元,其經組態以將識別資訊及區域規定資訊儲存於其中以便使其彼此相關聯,該識別資訊使該第二資料與該冗餘資訊相關聯,且該區域規定資訊規定該等半導體記憶體晶片中將寫入有該第二資料中所包括之該第一資料之該等片段及該冗餘資訊的該等儲存區域;其中該儲存單元進一步將使用狀態資訊儲存於其中,該使用狀態資訊指示對於該等半導體記憶體晶片中之每一者中的該等儲存區域中之每一者而言該儲存區域是否為可寫的;且該判定單元藉由參考該使用狀態資訊而從具有該等可 寫儲存區域之該等半導體記憶體晶片判定將寫入有經由該識別資訊而與該冗餘資訊相關聯的該第二資料中所包括之該第一資料之該等片段的該指定數目或更少個該等半導體記憶體晶片。
  2. 如請求項1之裝置,其中該判定單元參考該使用狀態資訊,且當至少一可寫儲存區域存在於該指定數目個該等半導體記憶體晶片中之每一者中時,該判定單元判定將寫入有經由該識別資訊而與該冗餘資訊相關聯的該第二資料中所包括之該第一資料之該等片段的該指定數目個該等半導體記憶體晶片中之每一者中的一可寫儲存區域;且該判定單元參考該使用狀態資訊,且當在該指定數目個半導體記憶體晶片中存在一不具有可寫儲存區域之第一半導體記憶體晶片時,該判定單元判定將寫入有經由該識別資訊而與該冗餘資訊相關聯的該第二資料中所包括之該第一資料之該等片段的除該第一半導體記憶體晶片外的該指定數目或更少個該等半導體記憶體晶片中之每一者中的一可寫儲存區域。
  3. 如請求項1之裝置,其中當該判定單元藉由參考該使用狀態資訊複數次從具有該等可寫儲存區域之該等半導體記憶體晶片判定將寫入有該第二資料中所包括之該第一資料之該等片段的該等半導體記憶體晶片時,該判定單元選擇性地執行該指定數目個半導體記憶體晶片之判定及該指定數目或更少個半導體記憶體晶片之判定。
  4. 如請求項1之裝置,其中該使用狀態資訊進一步指示該複數個半導體儲存晶片中之每一者中的可寫儲存區域之一數目;該裝置進一步包括一設定單元,該設定單元經組態以藉由參考該使用狀態資訊根據該等可寫儲存區域之該數目來設定將寫入有經由該識別資訊而與該冗餘資訊相關聯的該第二資料中所包括之該第一資料之該等片段的半導體記憶體晶片之該數目的下限;且該判定單元藉由參考該使用狀態資訊從具有該等可寫儲存區域之該等半導體記憶體晶片判定等於或大於該下限及等於或小於該指定數目的該等半導體記憶體晶片。
  5. 如請求項1之裝置,其中該判定單元藉由參考該使用狀態資訊從具有該等可寫儲存區域之該等半導體記憶體晶片判定將寫入有經由該識別資訊而與該冗餘資訊相關聯的該第二資料中所包括之該第一資料之該等片段的該指定數目或更少個該等半導體記憶體晶片中之每一者中的該可寫儲存區域;該儲存單元將該識別資訊及該區域規定資訊儲存於其中以便使其彼此相關聯,該識別資訊使所判定之第二半導體記憶體晶片與將寫入有該冗餘資訊之一第三半導體記憶體晶片相關聯,且該區域規定資訊規定該等第二半導體記憶體晶片中之該等儲存區域及該第三半導體儲存晶片中的該儲存區域;且該寫入控制器藉由參考該區域規定資訊而將該第二資 料中所包括之該第一資料之該等片段寫入至該等第二半導體記憶體晶片的該等儲存區域中。
  6. 如請求項1之裝置,其進一步包含一檢查單元,該檢查單元經組態以針對該複數個半導體記憶體晶片中之每一者中的該等儲存區域中之每一者來檢查該儲存區域是否為可寫的;其中該儲存單元根據一檢查結果將該使用狀態資訊儲存於其中。
  7. 如請求項1之裝置,其進一步包含一控制器,該控制器經組態以在不存在可由該判定單元判定之至少兩個半導體記憶體晶片時停止該裝置之操作。
  8. 如請求項1之裝置,其中當該判定單元複數次判定寫入有經由該識別資訊而與該冗餘資訊相關聯的該第二資料中所包括之該第一資料之指定數目或更少個片段的該等半導體記憶體晶片時,該判定單元判定包括一第四半導體記憶體晶片之該等半導體記憶體晶片,該第四半導體記憶體晶片未包括於在一先前判定中所判定之該等半導體記憶體晶片中。
  9. 如請求項1之裝置,其中該寫入控制器將該第一資料寫入於尚未寫入有資料之該複數個該等半導體記憶體晶片中之每一者中的該可寫儲存區域中的一位置中。
  10. 如請求項1之裝置,其進一步包含:一讀取控制器,其經組態以自該等半導體記憶體晶片讀取由該資訊處理設備請 求讀取之資料;自該等半導體記憶體晶片讀取一預定單元中之第三資料,且當該第三資料中存在一錯誤時,參考該區域規定資訊來讀取與該第三資料相關聯之不同的第三資料及該冗餘資訊;及藉由使用該不同的第三資料及該冗餘資訊來還原該第三資料;及一傳輸單元,其經組態以將該第三資料傳輸至該資訊處理設備。
  11. 如請求項10之裝置,其中該寫入控制器將添加有一用於偵測該第一資料中之一錯誤的錯誤偵測碼的該第一資料寫入至該半導體儲存晶片中之一儲存區域;且該讀取控制器包括:一讀取單元,其經組態以自該半導體儲存晶片中之該儲存區域讀取該第三資料;一偵測單元,其經組態以藉由使用添加至該第三資料之一錯誤偵測碼來偵測該第三資料中的一錯誤;及一還原單元,其經組態以在偵測到該第三資料中之一錯誤時藉由參考經儲存以便使其與該識別資訊相關聯的該區域規定資訊來還原該第三資料,該識別資訊使該第三資料與該不同的第三資料及該冗餘資訊相關聯。
TW100106758A 2010-03-01 2011-03-01 半導體記憶裝置 TWI465904B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010044362A JP4901968B2 (ja) 2010-03-01 2010-03-01 半導体記憶装置

Publications (2)

Publication Number Publication Date
TW201202933A TW201202933A (en) 2012-01-16
TWI465904B true TWI465904B (zh) 2014-12-21

Family

ID=44246965

Family Applications (1)

Application Number Title Priority Date Filing Date
TW100106758A TWI465904B (zh) 2010-03-01 2011-03-01 半導體記憶裝置

Country Status (6)

Country Link
US (1) US8453033B2 (zh)
EP (1) EP2375330B1 (zh)
JP (1) JP4901968B2 (zh)
KR (1) KR101267730B1 (zh)
CN (1) CN102194527B (zh)
TW (1) TWI465904B (zh)

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5066199B2 (ja) * 2010-02-12 2012-11-07 株式会社東芝 半導体記憶装置
US8504893B1 (en) * 2010-09-30 2013-08-06 Micron Technology, Inc. Error detection or correction of a portion of a codeword in a memory device
JP2012155541A (ja) 2011-01-26 2012-08-16 Toshiba Corp データ記憶装置、メモリ制御装置及びメモリ制御方法
KR101778782B1 (ko) * 2011-04-08 2017-09-27 삼성전자주식회사 데이터 저장 장치 및 그것의 동작 방법
US8640013B2 (en) 2011-09-22 2014-01-28 Kabushiki Kaisha Toshiba Storage device
JP5674634B2 (ja) 2011-12-28 2015-02-25 株式会社東芝 コントローラ、記憶装置およびプログラム
JP2013137713A (ja) * 2011-12-28 2013-07-11 Toshiba Corp メモリコントローラ、メモリシステムおよびメモリ書込み方法
US9158578B1 (en) 2011-12-30 2015-10-13 Emc Corporation System and method for migrating virtual machines
US9009416B1 (en) 2011-12-30 2015-04-14 Emc Corporation System and method for managing cache system content directories
US9104529B1 (en) 2011-12-30 2015-08-11 Emc Corporation System and method for copying a cache system
US8930947B1 (en) 2011-12-30 2015-01-06 Emc Corporation System and method for live migration of a virtual machine with dedicated cache
US9053033B1 (en) * 2011-12-30 2015-06-09 Emc Corporation System and method for cache content sharing
US9235524B1 (en) 2011-12-30 2016-01-12 Emc Corporation System and method for improving cache performance
CN104094351A (zh) * 2012-01-31 2014-10-08 惠普发展公司,有限责任合伙企业 内存模块缓冲器数据存储
US8924636B2 (en) 2012-02-23 2014-12-30 Kabushiki Kaisha Toshiba Management information generating method, logical block constructing method, and semiconductor memory device
KR101962786B1 (ko) * 2012-03-23 2019-03-27 삼성전자주식회사 불휘발성 메모리 장치, 메모리 시스템 및 그것의 프로그램 방법
US20140013031A1 (en) * 2012-07-09 2014-01-09 Yoko Masuo Data storage apparatus, memory control method, and electronic apparatus having a data storage apparatus
KR102147988B1 (ko) * 2013-04-09 2020-08-26 삼성전자주식회사 불휘발성 저장 장치 및 그것의 데이터 저장 방법
KR102164630B1 (ko) 2013-06-28 2020-10-12 삼성전자주식회사 메모리 컨트롤러 및 상기 메모리 컨트롤러의 동작 방법
CN105260325A (zh) * 2014-07-17 2016-01-20 广明光电股份有限公司 固态硬盘搜集垃圾区块的方法
KR20160120004A (ko) * 2015-04-07 2016-10-17 삼성전자주식회사 시스템 온-칩 및 이를 포함하는 전자 기기
US10095423B2 (en) 2015-09-30 2018-10-09 Toshiba Memory Corporation Storage system that tracks mapping to a memory module to be detached therefrom
JP6485594B2 (ja) * 2016-04-14 2019-03-20 富士通株式会社 メモリ制御装置およびメモリ制御方法
WO2018051647A1 (ja) * 2016-09-16 2018-03-22 ソニー株式会社 メモリコントローラ、メモリシステム、情報システムおよびメモリ制御方法
JP7385113B2 (ja) * 2019-10-21 2023-11-22 株式会社バッファロー 半導体メモリ装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWM345345U (en) * 2008-07-16 2008-11-21 Powertech Technology Inc Semiconductor packaging structure and the used composite wire
US20090259919A1 (en) * 2008-04-15 2009-10-15 Adtron, Inc. Flash management using separate medtadata storage

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW231343B (zh) * 1992-03-17 1994-10-01 Hitachi Seisakusyo Kk
EP0917059A1 (en) * 1997-11-14 1999-05-19 Nec Corporation A semiconductor memory device having an ECC circuit
JP4110000B2 (ja) * 2003-01-28 2008-07-02 株式会社ルネサステクノロジ 記憶装置
EP1667014A4 (en) * 2003-09-18 2009-04-08 Panasonic Corp SEMICONDUCTOR CHIP CARD, SEMICONDUCTOR MEMORY CONTROL APPARATUS, AND SEMICONDUCTOR MEMORY CONTROL METHOD
JP2008204041A (ja) * 2007-02-19 2008-09-04 Hitachi Ltd ストレージ装置及びデータ配置制御方法
JP4897524B2 (ja) * 2007-03-15 2012-03-14 株式会社日立製作所 ストレージシステム及びストレージシステムのライト性能低下防止方法
CN101281788A (zh) * 2007-04-06 2008-10-08 群联电子股份有限公司 闪存系统及其控制方法
JP2008287404A (ja) * 2007-05-16 2008-11-27 Hitachi Ltd 読み出しによる非アクセスメモリセルのデータ破壊を検出及び回復する装置、及びその方法
US7873803B2 (en) * 2007-09-25 2011-01-18 Sandisk Corporation Nonvolatile memory with self recovery

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090259919A1 (en) * 2008-04-15 2009-10-15 Adtron, Inc. Flash management using separate medtadata storage
TWM345345U (en) * 2008-07-16 2008-11-21 Powertech Technology Inc Semiconductor packaging structure and the used composite wire

Also Published As

Publication number Publication date
JP2011180831A (ja) 2011-09-15
JP4901968B2 (ja) 2012-03-21
EP2375330A1 (en) 2011-10-12
KR101267730B1 (ko) 2013-05-24
CN102194527A (zh) 2011-09-21
EP2375330B1 (en) 2013-05-01
CN102194527B (zh) 2014-06-04
US8453033B2 (en) 2013-05-28
TW201202933A (en) 2012-01-16
KR20110099175A (ko) 2011-09-07
US20110214033A1 (en) 2011-09-01

Similar Documents

Publication Publication Date Title
TWI465904B (zh) 半導體記憶裝置
TWI428737B (zh) 半導體記憶體裝置
US9684468B2 (en) Recording dwell time in a non-volatile memory system
TWI459199B (zh) 半導體記憶體控制裝置
JP7147050B2 (ja) ハードディスク故障対処方法、アレイコントローラ、およびハードディスク
US9690702B2 (en) Programming non-volatile memory using a relaxed dwell time
US9952795B2 (en) Page retirement in a NAND flash memory system
US9558107B2 (en) Extending useful life of a non-volatile memory by health grading
US9390003B2 (en) Retirement of physical memory based on dwell time
JP2014052978A (ja) 不揮発性半導体メモリの制御方法及びメモリシステム
US10733069B2 (en) Page retirement in a NAND flash memory system