相關(guān)申請的交叉引用
本申請要求于2016年2月1日向韓國知識產(chǎn)權(quán)局提交的申請?zhí)枮?0-2016-0012343的韓國申請的優(yōu)先權(quán),其通過引用以其整體并入本文。
各個實施例總體涉及一種半導(dǎo)體裝置,且更特別地,涉及一種數(shù)據(jù)存儲裝置及其操作方法。
背景技術(shù):
數(shù)據(jù)存儲裝置可以響應(yīng)于來自外部裝置的寫入請求存儲由外部裝置提供的數(shù)據(jù),并且響應(yīng)于來自外部裝置的讀取請求將存儲的數(shù)據(jù)提供至外部裝置。外部裝置可以是能夠處理數(shù)據(jù)的電子裝置,且可包括例如計算機(jī)、數(shù)碼相機(jī)或移動電話。數(shù)據(jù)存儲裝置可被構(gòu)造為外部裝置的組成部分,或者可以分離的形式制造,其之后可以被聯(lián)接至外部裝置。
數(shù)據(jù)存儲裝置可以包括例如個人計算機(jī)存儲卡國際協(xié)會(pcmcia)卡,標(biāo)準(zhǔn)閃存(cf)卡,智能媒介卡,記憶棒,mmc、emmc、rs-mmc和微型mmc形式的多媒體卡,sd、迷你sd和微型sd形式的安全數(shù)字卡、通用閃存(ufs)或固態(tài)驅(qū)動器(ssd)。
數(shù)據(jù)存儲裝置可以包括用于存儲數(shù)據(jù)的非易失性存儲器裝置。甚至在電源未被連接至非易失性存儲器裝置時,該裝置仍可以保留所存儲的數(shù)據(jù)。非易失性存儲器裝置可以包括諸如nand閃存或nor閃存的閃速存儲器裝置、feram(鐵電隨機(jī)存取存儲器)、pcram(相變隨機(jī)存取存儲器)、mram(磁性隨機(jī)存取存儲器)或reram(電阻隨機(jī)存取存儲器)。
技術(shù)實現(xiàn)要素:
各個實施例涉及能夠縮短映射表恢復(fù)時間的數(shù)據(jù)存儲裝置及其操作方法。
在一個實施例中,數(shù)據(jù)存儲裝置可以包括:非易失性存儲器裝置,其包括存儲塊,由于數(shù)據(jù)存儲裝置至少發(fā)生一次突然斷電(spo)而使對存儲塊的寫入操作中斷并且沒有完成,其中存儲塊包括在中斷前產(chǎn)生的包含一個或多個有效頁面的至少一個第一有效頁面組和由中斷引起的具有一個或多個無效頁面的至少一個無效頁面組;以及控制器,其適于在數(shù)據(jù)存儲裝置在spo后被通電之后將第一有效頁面組的至少一個物理地址-邏輯地址(p2l)列表寫入到無效頁面組中,并在完成對存儲塊的寫入操作后基于p2l列表恢復(fù)存儲塊的地址映射表。
在一個實施例中,提供了一種操作包括非易失性存儲器裝置的數(shù)據(jù)存儲裝置的方法,該非易失性存儲器裝置包括存儲塊,由于數(shù)據(jù)存儲裝置至少發(fā)生一次突然斷電(spo)而使對存儲塊的寫入操作中斷并且沒有完成,其中存儲塊包括在中斷前產(chǎn)生的包含一個或多個有效頁面的至少一個第一有效頁面組和由中斷引起的具有一個或多個無效頁面的至少一個無效頁面組;該方法包括:在數(shù)據(jù)存儲裝置在spo后被通電之后將第一有效頁面組的至少一個物理地址-邏輯地址(p2l)列表寫入到無效頁面組中,以及在完成對存儲塊的寫入操作后基于p2l列表恢復(fù)存儲塊的地址映射表。
根據(jù)實施例,當(dāng)突然斷電(spo)發(fā)生在對開放塊的寫入操作期間時,可以檢測由于spo發(fā)生導(dǎo)致的存儲異常數(shù)據(jù)的無效頁面,并且可以將spo發(fā)生之前存儲正常數(shù)據(jù)的有效頁面的p2l列表存儲在檢測到的無效頁面中。
因此,當(dāng)生成完成寫入操作的封閉塊的p2l列表時,可參考存儲在無效頁面中的有效頁面的p2l列表。因此,沒有必要額外掃描封閉塊中的有效頁面,因此可以縮短用于封閉塊的p2l表恢復(fù)時間。
附圖說明
圖1是示出根據(jù)本發(fā)明的一個實施例的數(shù)據(jù)存儲裝置的框圖。
圖2是示出包括在圖1的非易失性存儲器裝置中的存儲塊的一個實例的簡圖。
圖3a是示出包括無效頁面的開放塊的一個實例的簡圖。
圖3b是示出在圖3a的開放塊的無效頁面中生成虛擬頁面的一個實例的簡圖。
圖3c是示出完成寫入操作的封閉塊的一個實例的簡圖。
圖4是生成多個連續(xù)的虛擬頁面的一個實例的簡圖。
圖5是示出包括多個無效頁面的開放塊的一個實例的簡圖。
圖6是示出生成多個不連續(xù)的虛擬頁面的一個實例的簡圖。
圖7是根據(jù)本發(fā)明的一個實施例在用于操作數(shù)據(jù)存儲裝置的方法中虛擬頁面生成方法的流程圖。
圖8是根據(jù)本發(fā)明的一個實施例在用于操作數(shù)據(jù)存儲裝置的方法中映射表管理方法的流程圖。
圖9是示出根據(jù)本發(fā)明的一個實施例的固態(tài)驅(qū)動器(ssd)的框圖。
圖10是示出根據(jù)本發(fā)明的一個實施例的包括數(shù)據(jù)存儲裝置的數(shù)據(jù)處理系統(tǒng)的框圖。
具體實施方式
下文中,將參照附圖描述包括數(shù)據(jù)存儲裝置及其操作方法的本發(fā)明的各個實施例。
然而,應(yīng)注意本發(fā)明可體現(xiàn)為多種不同的形式,而不應(yīng)解釋為限于本文示出的實施例。相反,提供這些實施例作為實例,使得本發(fā)明將是全面且完整的,并將本發(fā)明的各個方面和特征充分傳達(dá)給本領(lǐng)域技術(shù)人員。
還應(yīng)理解,雖然術(shù)語“第一”、“第二”、“第三”等在本文中可用于描述各個元件,但是這些元件并不受這些術(shù)語的限制。這些術(shù)語用于將一個元件與另一個元件區(qū)分開來。因此,在不背離本發(fā)明的精神和范圍的情況下,下文描述的第一元件也可以稱為第二或第三元件。
還應(yīng)理解,當(dāng)一個元件被稱為“連接至”或“聯(lián)接至”與另一個元件時,它可以直接在另一個元件上、直接連接至或聯(lián)接至另一元件,或者可以存在一個或多個中間元件。此外,還應(yīng)理解,當(dāng)一個元件被稱為位于兩個元件之間時,其可以是兩個元件之間僅有的元件,或者還可以存在一個或多個中間元件。
本文所用的術(shù)語僅用于描述特定實施例的目的,并不意在限制本發(fā)明。如本文所用,單數(shù)還意在包括復(fù)數(shù)形式,除非上下文中另有明確說明。
還應(yīng)理解,當(dāng)說明書中使用術(shù)語“包含”、“包含有”、“包括”和“包括有”時,指的是存在闡明的元件但不排除一個或多個其它元件的存在或添加。
而且,當(dāng)在本文中使用時,術(shù)語“和/或”包括一個或多個關(guān)聯(lián)的列舉項的任何和所有組合。
除非另外限定,否則本文所用的包括技術(shù)和科學(xué)術(shù)語的所有術(shù)語具有與本發(fā)明構(gòu)思所屬領(lǐng)域的技術(shù)人員通常理解的含義相同的含義。還應(yīng)理解,諸如常用字典中定義的那些術(shù)語的術(shù)語應(yīng)解釋為具有與它們在相關(guān)領(lǐng)域的上下文中的含義一致的含義,且不應(yīng)以理想的或者過于正式的含義進(jìn)行解釋,除非本文另外明確限定。
在以下描述中,闡述許多具體細(xì)節(jié)以提供對本發(fā)明的全面理解??梢栽跊]有一些或所有這些具體細(xì)節(jié)的情況下實施本發(fā)明。在其它情況下,并未詳細(xì)描述公知的處理結(jié)構(gòu)和/或過程,以不使本發(fā)明不必要的模糊。
下文中,將參照附圖詳細(xì)描述本發(fā)明的各個實施例。
現(xiàn)參照圖1,根據(jù)本發(fā)明的一個實施例,提供了數(shù)據(jù)存儲裝置10的實例。
根據(jù)圖1的實施例,數(shù)據(jù)存儲裝置10可以包括至少一個非易失性存儲器裝置100、隨機(jī)存取存儲器200和用于控制至少一個非易失性存儲器裝置100和隨機(jī)存取存儲器200的控制器300。
非易失性存儲器裝置100可以作為數(shù)據(jù)存儲裝置10的存儲介質(zhì)操作。非易失性存儲器裝置100可被配置為例如nand快速存儲器裝置。然而,本發(fā)明可不限于僅nand快速存儲器裝置。例如,根據(jù)構(gòu)建存儲器單元區(qū)域(未示出)的存儲器單元,非易失性存儲器裝置100可被配置為諸如以下的其它各種類型的非易失性存儲器裝置的任一種:例如,nor快速存儲器裝置、使用鐵電電容器的鐵電隨機(jī)存取存儲器(fram)、使用隧穿磁阻(tmr)層的磁性隨機(jī)存取存儲器(mram)、使用硫族化物合金的相變隨機(jī)存取存儲器(pram)和使用過渡金屬氧化物的電阻式隨機(jī)存取存儲器(reram)。
非易失性存儲器裝置100可以包括多個存儲塊blk1至blkn,其中n是等于或大于2的整數(shù)。
圖2是包括在圖1的非易失性存儲器裝置100中的多個存儲塊blk1至blkn之中的存儲塊blk1的實例的簡圖。
參照圖2,存儲塊blk1可以包括分別對應(yīng)于多個字線wl1至wlm的多個頁面p1至pm。雖然圖2示出一個頁面對應(yīng)單個字線,但應(yīng)注意在該實施例中,對應(yīng)于單個字線的頁面的數(shù)量并不以此方式限制。例如,對應(yīng)于單個字線的頁面的數(shù)量可以變化,例如根據(jù)聯(lián)接至單個字線的每個存儲器單元中可以存儲多少位數(shù)據(jù)而變化。例如,對應(yīng)于單個字線的頁面的數(shù)量可以根據(jù)聯(lián)接至單個字線的存儲器單元是slc(單層單元)、mlc(多層單元)還是tlc(三層單元)而變化。
頁面可以是非易失性存儲器裝置100執(zhí)行寫入操作和/讀取操作的單位。非易失性存儲器裝置100可以通過驅(qū)動對應(yīng)的字線而訪問每個頁面,并且對訪問的頁面執(zhí)行寫入操作和/或讀取操作。例如,參照圖2,非易失性存儲器裝置100可以通過驅(qū)動聯(lián)接至第一頁面p1的第一字線wl1而訪問第一頁面p1,并且對訪問的第一頁面p1執(zhí)行寫入操作和/或讀取操作。如圖2所示,非易失性存儲器裝置100可以在由箭頭指示的方向上順序地對存儲塊的頁面執(zhí)行寫入操作,即從第一頁面p1開始,接著是第二頁面、第三頁面……,并以最后頁面pm結(jié)束。
隨機(jī)存取存儲器200可以存儲將由控制器300驅(qū)動的固件或軟件。而且,隨機(jī)存取存儲器200可以存儲驅(qū)動固件或軟件所需的數(shù)據(jù),例如元數(shù)據(jù)。也就是說,隨機(jī)存取存儲器200可以作為控制器300的工作存儲器操作。
隨機(jī)存取存儲器200可以暫時地存儲將從主機(jī)裝置(未示出)傳輸?shù)椒且资源鎯ζ餮b置100或從非易失性存儲器裝置100傳輸?shù)街鳈C(jī)裝置的數(shù)據(jù)。隨機(jī)存取存儲器200可以作為數(shù)據(jù)緩沖存儲器或數(shù)據(jù)高速緩沖存儲器操作。
控制器300可以執(zhí)行數(shù)據(jù)存儲裝置10的一般操作。例如,控制器300可以響應(yīng)于從主機(jī)裝置傳輸?shù)膶懭胝埱?,控制非易失性存儲器裝置100的寫入操作以將數(shù)據(jù)存儲在非易失性存儲器裝置100中。而且,作為實例,控制器300可以響應(yīng)于從主機(jī)裝置傳輸?shù)淖x取請求,控制非易失性存儲器裝置100的讀取操作,以讀取存儲在非易失性存儲器裝置100中的數(shù)據(jù)并將讀取數(shù)據(jù)輸出至主機(jī)裝置。例如,控制器300可以生成用于從主機(jī)裝置傳輸?shù)膶懭胝埱蠛?讀取請求的寫入命令和/或讀取命令,并且可以將生成的寫入命令和/或讀取命令提供至非易失性存儲器裝置100。然后,非易失性存儲器裝置100可以執(zhí)行與從控制器300提供的寫入命令和/或讀取命令相應(yīng)的寫入操作和/或讀取操作。
包括在非易失性存儲器裝置100中的多個存儲塊blk1至blkn可以分為:完成寫入操作的存儲塊、正在執(zhí)行寫入操作的存儲塊和未開始寫入操作的存儲塊。而且,已經(jīng)完成對所有頁面的寫入操作的存儲塊將被成為封閉存儲塊(或封閉塊),而未完成對所有頁面的寫入操作的存儲塊將被成為開放存儲塊(或開放塊)。
一般而言,控制器300可以生成非易失性存儲器裝置100的存儲塊blk1至blkn之中的封閉塊的物理地址至邏輯地址(p2l)列表,并將生成的p2l列表存儲在隨機(jī)存取存儲器200的地址映射表中。而且,控制器300不生成已經(jīng)開始對開放頁面的寫入操作的開放塊的p2l列表,直至寫入操作完成。
控制器300可以通過從最后頁面至第一頁面順序地掃描封閉塊以及將存儲在每個頁面中的邏輯塊地址(lba)和每個頁面的物理地址匹配,來生成封閉塊的p2l列表。
突然斷電(spo)是意外的供電中斷,其可以發(fā)生在對存儲塊blk1的寫入操作中間,因此對存儲塊blk1的寫入操作可能由于spo而沒有完成。spo可導(dǎo)致存儲塊blk1的一個或多個頁面存儲異常數(shù)據(jù)。由于spo而存儲異常數(shù)據(jù)的頁面在下文可被稱為無效頁面。
當(dāng)數(shù)據(jù)存儲裝置10在spo后恢復(fù)為通電狀態(tài)時,控制器300可以通過順序地掃描開放塊來檢測開放塊的無效頁面,可以生成有效頁面的p2l列表,并且可以將生成的有效頁面的p2l列表寫入由于spo導(dǎo)致的無效頁面中。
圖3a示出包括一個無效頁面p7的開放塊oblk的實例,圖3b示出在無效頁面p7中生成虛擬頁面的實例,圖3c示出完成寫入操作的封閉塊cblk的實例。
例如,參照圖3a,當(dāng)spo發(fā)生在對開放塊oblk的第七頁面p7的寫入操作的中間且然后數(shù)據(jù)存儲裝置10變?yōu)橥姞顟B(tài)時,控制器300可以從第m個頁面至第一頁面p1順序地掃描開放塊oblk。作為掃描的結(jié)果,控制器300可以檢測開放快oblk中的空白頁面、存儲異常數(shù)據(jù)的無效頁面和存儲正常數(shù)據(jù)的有效頁面。開放塊oblk的第七頁面p7可以被檢測為無效頁面。
控制器300可以通過分別存儲在第一頁面p1至第六頁面p6中的lba生成有效頁面(即第一頁面p1至第六頁面p6)的p2l列表,并且可以將生成的p2l列表寫入無效頁面(即第七頁面p7)中。存儲有效頁面的p2l列表的無效頁面將被稱為虛擬頁面d。存儲有效頁面的p2l列表的虛擬頁面d不再是無效頁面。生成虛擬頁面d的實例示于圖3b中。在一個實施例中,控制器300可以將用于調(diào)試的信息例如固件(fw)寄存器值、計數(shù)器值、指示器值和指示對應(yīng)頁面是虛擬頁面的識別信息以及有效頁面的p2l列表存儲在虛擬頁面d中。
參照圖3c,在生成虛擬頁面d后,控制器300可以從第八頁面p8至第m頁面pm順序地繼續(xù)對開放塊oblk的寫入操作,其中第八頁面p8至第m頁面pm是虛擬頁面d之后的頁面)。當(dāng)完成對最后頁面或第m頁面pm的寫入操作時,開放塊oblk變?yōu)榉忾]塊cblk,且控制器300可以通過從第m頁面pm至虛擬頁面d順序地執(zhí)行掃描封閉塊cblk來生成封閉塊cblk的p2l列表。也就是說,由于有效頁面(即第一頁面p1至第六頁面p6)的p2l列表被存儲在虛擬頁面d中,因此沒有必要掃描第一頁面p1至第六頁面p6。因此,可以縮短生成封閉塊cblk的p2l列表所需的時間。在掃描封閉塊cblk的p2l列表期間,虛擬頁面d可以通過存儲在其中的識別信息來識別。
在一個實施例中,在掃描虛擬頁面d后,控制器300可以確定存儲在虛擬頁面d中的有效頁面的p2l列表是否正常。如果存儲在虛擬頁面d中的有效頁面的p2l列表正常,則控制器300可以通過使用存儲在虛擬頁面d中的有效頁面的p2l列表生成封閉塊cblk的p2l列表。如果存儲在虛擬頁面d中的有效頁面的p2l列表異常,則控制器300可以不使用存儲在虛擬頁面d中的有效頁面的p2l列表,并且可以通過從第六頁面p6至第一頁面p1順序地掃描再次生成有效頁面(即第一頁面p1至第六頁面p6)的p2l列表。
在一個實施例中,控制器300可以為開放塊oblk中的單個無效頁面生成多個虛擬頁面。例如,參照圖3a和圖4,控制器300可以將有效頁面(即第一頁面p1至第六頁面p6)的p2l列表寫入無效的第七頁面p7中以作為第一虛擬頁面d1并將有效頁面(即第一頁面p1至第六頁面p6)的p2l列表寫入第八頁面p8中以作為第二虛擬頁面d2,其中第八頁面p8是與無效的第七頁面p7連續(xù)的空白頁面。換言之,有效頁面的相同p2l列表可被寫入第一虛擬頁面d1和第二虛擬頁面d2兩者中。
在一個實施例中,控制器300可以將指示存儲相同p2l列表的虛擬頁面的總數(shù)量的信息寫入多個虛擬頁面的每個(例如,第一虛擬頁面d1和第二虛擬頁面d2中的每個)中。因此,在多個虛擬頁面之一異常的情況下,控制器300可以使用存儲在多個虛擬頁面的另一個中的有效頁面的p2l列表。雖然圖4示出其中生成兩個虛擬頁面d1和d2的實例,但應(yīng)注意該實施例不限于這個實例。在不同的實例中,可以生成至少三個虛擬頁面。
如上所述,spo可以導(dǎo)致存儲塊blk1的一個或多個頁面存儲異常數(shù)據(jù),這意味著由于spo可能在開放塊oblk中存在多個無效頁面。
根據(jù)圖5的實例,假設(shè)第七頁面p7和第八頁面p8均是無效頁面。在這種情況下,控制器300可以將有效頁面(即第一頁面p1至第六頁面p6)的p2l列表寫入無效的第七頁面p7和無效的第八頁面p8中以分別作為第一虛擬頁面d1和第二虛擬頁面d2。有效頁面的相同p2l列表可被寫入第一虛擬頁面d1和第二虛擬頁面d2兩者中。
同時,數(shù)次spo可以發(fā)生在對單個開放塊oblk的寫入操作的中間。圖6作為一個實例,示出其中在寫入操作期間發(fā)生2次spo并生成2個虛擬頁面的封閉塊。
例如,參照圖6,由于在對開放塊oblk的第四頁面p4的寫入操作的中間的第一次突然斷電spo1,控制器300可以生成作為無效的第四頁面p4之前的第一組有效頁面的第一頁面p1至第三頁面p3的p2l列表,并將生成的第一組有效頁面的p2l列表寫入第四頁面p4中,這將是第一虛擬頁面d1。
此后,控制器300可以從第五頁面p5開始繼續(xù)對開放塊oblk的寫入操作。由于當(dāng)數(shù)據(jù)存儲裝置10恢復(fù)為通電狀態(tài)時在對開放塊oblk的第(m-2)頁面pm-2的寫入操作的中間的第二次突然斷電spo2,控制器300可以生成作為無效的第(m-2)頁面pm-2之前的第二組有效頁面的第五頁面p5至第(m-3)頁面pm-3(未示出)的p2l列表,并將生成的第二組有效頁面的p2l列表寫入無效的第(m-2)頁面pm-2中,這將是第二虛擬頁面d2??刂破?00可以將第一虛擬頁面d1的位置信息寫入第二虛擬頁面d2中。此處,位置信息可以是數(shù)據(jù)頭(header)信息。
此后,控制器300可以從第(m-1)頁面pm-1至第m頁面pm繼續(xù)對開放塊oblk的寫入操作。當(dāng)完成對最后頁面或第m頁面pm的寫入操作時,對應(yīng)的開放塊oblk變?yōu)榉忾]塊cblk。然后,控制器300可以通過掃描第m頁面pm至第(m-1)頁面pm-1、第二虛擬頁面d2和第一虛擬頁面d1而生成封閉塊cblk的p2l列表。即,由于第二組有效頁面(即第五頁面p5至第(m-3)頁面pm-3)的p2l列表和第一虛擬頁面d1的數(shù)據(jù)頭信息存儲在第二虛擬頁面d2中且第一組有效頁面(即第一頁面p1至第三頁面p3)的p2l列表存儲在第一虛擬頁面d1中,控制器300不需要掃描第一組有效頁面和第二組有效頁面。
圖7是根據(jù)本發(fā)明的實施例的在用于操作數(shù)據(jù)存儲裝置的方法中的虛擬頁面生成方法的流程圖。
參照圖1至圖7,根據(jù)一個實施例的虛擬頁面生成方法包括下列步驟。在步驟s710中,數(shù)據(jù)存儲裝置10從由于spo導(dǎo)致的斷電狀態(tài)接通電源。在步驟s720中,控制器300可以掃描開放塊oblk的所有頁面。例如,控制器300可以從第m頁面pm至第一頁面p1順序地掃描開放塊oblk。
在步驟s730中,控制器300可以通過掃描步驟s720檢測開放塊oblk中的無效頁面。而且,控制器300可以確定開放塊oblk中的有效頁面和空白頁面。在步驟s740中,控制器300可以生成開放塊oblk中的有效頁面(即按寫入操作的順序位于無效頁面之前的有效頁面)的p2l列表(s740)。
在步驟s750中,控制器300可以通過將有效頁面的p2l列表存儲在無效頁面中而生成虛擬頁面d(s750)。存儲有效頁面的p2l列表的虛擬頁面d不再是無效頁面。
參照圖4至圖6描述了用于生成虛擬頁面d的各個實施例。
生成虛擬頁面d之后,控制器300可以從與虛擬頁面d連續(xù)的第一空白頁面開始繼續(xù)對開放塊oblk的寫入操作。開放塊oblk可以在完成對其中所有頁面的寫入操作時變?yōu)榉忾]塊cblk。
圖8是根據(jù)本發(fā)明的一個實施例的在用于操作數(shù)據(jù)存儲裝置的方法中的映射表管理方法的流程圖。
參照圖1至圖6和圖8,根據(jù)本實施例的映射表管理方法如下。
在步驟s810中,在數(shù)據(jù)存儲裝置10在spo后被通電之后,控制器300可以檢測封閉塊cblk。
在步驟s820中,控制器300可以開始掃描封閉塊的每個頁面。
對于每個掃描的頁面,在步驟s830中,控制器300可以通過存儲在掃描的頁面中的識別信息確定掃描的頁面是否為虛擬頁面。在當(dāng)前掃描的頁面不是虛擬頁面的情況下,作為步驟s830的確定結(jié)果,在步驟s840中,控制器300可連續(xù)地掃描下一頁面。下一頁面可以是按寫入操作的順序位于當(dāng)前掃描的頁面之前的頁面。步驟s830和s840可以迭代地執(zhí)行直至當(dāng)前掃描的當(dāng)前頁面是虛擬頁面。
在掃描的當(dāng)前頁面是虛擬頁面的情況下,在步驟s850中,控制器300可以讀取存儲在當(dāng)前虛擬頁面中的有效頁面的p2l列表。此處,p2l列表可以是按寫入操作的順序位于當(dāng)前虛擬頁面之前的有效頁面的p2l列表。在步驟s860中,控制器300可以確定按寫入操作的順序位于當(dāng)前虛擬頁面之前的在先虛擬頁面是否存在。如上參照圖6例示,其中在對單個開放塊oblk的寫入操作的中間發(fā)生數(shù)次spo,控制器300可以將在先虛擬頁面(即第一虛擬頁面d1)的位置信息作為數(shù)據(jù)頭信息寫入當(dāng)前虛擬頁面(即第二虛擬頁面d2)中。因此,控制器300可以根據(jù)存儲在當(dāng)前虛擬頁面中的數(shù)據(jù)頭信息識別在先虛擬頁面的存在和位置。
當(dāng)作為步驟s860的確定結(jié)果在先虛擬頁面存在時,控制器300可以從當(dāng)前虛擬頁面跳到在先虛擬頁面,在步驟s870中掃描在先虛擬頁面,并對在先虛擬頁面重復(fù)步驟s850。換言之,不掃描當(dāng)前虛擬頁面和在先虛擬頁面之間的有效頁面??梢詫Πㄔ诜忾]塊中的全部虛擬頁面迭代地執(zhí)行上述步驟s850至s870。
當(dāng)作為步驟s860的確定結(jié)果在先虛擬頁面不存在時,控制器300可以通過使用存儲在全部虛擬頁面中的有效頁面的p2l列表而生成整個封閉塊的p2l列表,并且可以通過使用生成的封閉塊的p2l列表恢復(fù)隨機(jī)存取存儲器200的地址映射表。
現(xiàn)在參照圖9,根據(jù)本發(fā)明的一個實施例,提供了固態(tài)驅(qū)動器(ssd)1000。
ssd1000可以包括ssd控制器1100和存儲介質(zhì)1200。
ssd控制器1100可以控制主機(jī)裝置1500和存儲介質(zhì)1200之間的數(shù)據(jù)交換。ssd控制器1100可以包括處理器1110、ram1120、rom1130、ecc單元1140、主機(jī)接口單元1150和存儲接口單元1160。
ssd控制器1100可以與圖1的控制器300大體上類似的方式操作。
處理器1110可以控制ssd控制器1100的一般操作。例如,處理器1110可以根據(jù)來自主機(jī)裝置1500的請求將數(shù)據(jù)寫入存儲介質(zhì)1200中并從存儲介質(zhì)1200讀取存儲的數(shù)據(jù)。為了有效地管理存儲介質(zhì)1200,處理器1110可以控制ssd1000的一個或多個內(nèi)部操作,諸如,例如合并操作、平均讀寫操作等。
ram1120可以存儲將被處理器1110使用的程序和程序數(shù)據(jù)。ram1120可以在將從主機(jī)接口單元1150傳輸?shù)臄?shù)據(jù)轉(zhuǎn)移至存儲介質(zhì)1200之前暫時地存儲該數(shù)據(jù)。ram1120可以在將從存儲介質(zhì)1200傳輸?shù)臄?shù)據(jù)轉(zhuǎn)移至主機(jī)裝置1500之前暫時地存儲該數(shù)據(jù)。
rom1130可以存儲將被處理器1110讀取的程序代碼。程序代碼可以包括將被處理器1110處理以用于處理器1110控制ssd控制器1100的內(nèi)部單元的指令。
ecc單元1140可以編碼將被存儲在存儲介質(zhì)1200中的數(shù)據(jù),并且可以解碼從存儲介質(zhì)1200讀取的數(shù)據(jù)。ecc單元1140可以根據(jù)ecc算法檢測和糾正數(shù)據(jù)中出現(xiàn)的錯誤。
主機(jī)接口單元1150可以與主機(jī)裝置1500交換請求、數(shù)據(jù)等。
存儲接口單元1160可以將控制信號和數(shù)據(jù)傳輸?shù)酱鎯橘|(zhì)1200。存儲接口單元1160可以傳輸來自存儲介質(zhì)1200的數(shù)據(jù)。存儲接口單元1160可以通過多個通道ch0至chn(n是等于或大于2的整數(shù))與存儲介質(zhì)1200電聯(lián)接。
存儲介質(zhì)1200可以包括多個非易失性存儲器裝置nvm0至nvmn。多個非易失性存儲器裝置nvm0至nvmn的每個可以根據(jù)ssd控制器1100的控制而執(zhí)行寫入操作和讀取操作。多個非易失性存儲器裝置nvm0至nvmn的每個可以與圖1的非易失性存儲器裝置100大體上類似的方式配置和操作。
圖10是示出根據(jù)應(yīng)用的實施例的包括數(shù)據(jù)存儲裝置10的數(shù)據(jù)處理系統(tǒng)2000的框圖。
參照圖10,根據(jù)一個實施例的數(shù)據(jù)處理系統(tǒng)2000可以是或包括計算機(jī)、筆記本電腦、上網(wǎng)本、智能電話、數(shù)字tv、數(shù)碼相機(jī)、導(dǎo)航器等。根據(jù)圖10示出的實施例,數(shù)據(jù)處理系統(tǒng)2000可以包括主處理器2100、主存儲器裝置2200、存儲器裝置2300和輸入/輸出裝置2400。數(shù)據(jù)處理系統(tǒng)2000的內(nèi)部單元可以通過系統(tǒng)總線2500交換數(shù)據(jù)、控制信號等。
主處理器2100可以控制數(shù)據(jù)處理系統(tǒng)2000的一般操作。主處理器2100可以是中央處理單元,例如,諸如微處理器。主處理器2100可以執(zhí)行主存儲器裝置2200上的軟件,諸如操作系統(tǒng)、應(yīng)用、設(shè)備驅(qū)動程序等。
主存儲器裝置2200可以存儲將被主處理器2100使用的程序和程序數(shù)據(jù)。主存儲器裝置2200可以暫時地存儲將被傳輸?shù)酱鎯ζ餮b置2300和輸入/輸出裝置2400的數(shù)據(jù)。
存儲器裝置2300可以包括存儲器控制器2310和存儲介質(zhì)2320。存儲器裝置2300可以與圖1的數(shù)據(jù)存儲裝置10大體上類似的方式配置和操作。
輸入/輸出裝置2400可以是或包括鍵盤、掃描儀、觸摸屏、鼠標(biāo)等,其能夠與用戶交換數(shù)據(jù),諸如從用戶接收用于控制數(shù)據(jù)處理系統(tǒng)2000的命令或提供處理的結(jié)果至用戶。
根據(jù)一個實施例,數(shù)據(jù)處理系統(tǒng)2000可以通過諸如lan(局域網(wǎng))、wan(廣域網(wǎng))、無線網(wǎng)等網(wǎng)絡(luò)2600與至少一個服務(wù)器2700通信。數(shù)據(jù)處理系統(tǒng)2000可以包括網(wǎng)絡(luò)接口單元(未示出)以訪問網(wǎng)絡(luò)2600。
雖然以上已經(jīng)描述了包括數(shù)據(jù)存儲裝置及其操作方法的各個實施例,但本領(lǐng)域技術(shù)人員應(yīng)理解所描述的實施例僅是實例且相關(guān)領(lǐng)域技術(shù)人員在不背離如權(quán)利要求所限定的本發(fā)明的精神和/或范圍的情況下可以設(shè)想到許多其它的實施例或其變型。