欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

存儲器控制器及用于管理存儲器的方法與流程

文檔序號:11233788閱讀:464來源:國知局
存儲器控制器及用于管理存儲器的方法與流程

相關(guān)申請的交叉引用

本申請要求在2016年3月3日提交的申請?zhí)枮?0-2016-0025661的韓國專利申請的優(yōu)先權(quán),通過引用將其全部內(nèi)容并入本文。

本發(fā)明的示例性實施例總體涉及一種半導體設計技術(shù),并且更特別地,涉及一種存儲器控制器和用于管理存儲器的方法。



背景技術(shù):

計算機環(huán)境范例已經(jīng)變成可以在任意時間和任意地點使用的普適計算系統(tǒng)。因此,諸如移動電話、數(shù)碼相機和筆記本電腦的便攜式電子裝置的使用持續(xù)快速增加。這些便攜式電子裝置通常使用具有用于存儲數(shù)據(jù)的一個或多個半導體存儲器裝置的存儲器系統(tǒng)(也被稱為數(shù)據(jù)存儲裝置)。存儲器系統(tǒng)可以被用作便攜式電子裝置的主存儲器裝置或輔助存儲器裝置。

由于存儲器系統(tǒng)沒有活動部件,因此它們可以提供優(yōu)異的穩(wěn)定性、耐久性、高信息訪問速度和低功耗。存儲器系統(tǒng)的示例包括通用串行總線(usb)存儲器裝置、具有各種接口的存儲卡和固態(tài)驅(qū)動器(ssd)。



技術(shù)實現(xiàn)要素:

本發(fā)明的實施例涉及用于存儲器系統(tǒng)的存儲器控制器和用于有效管理包括在存儲器系統(tǒng)中的半導體存儲器的存儲區(qū)域的方法。

根據(jù)本發(fā)明的實施例,用于管理存儲器的方法可以包括:接收來自主機的寫入請求;基于根據(jù)來自主機的寫入請求的從主機接收的數(shù)據(jù)的數(shù)據(jù)特征信息,在存儲器的多個內(nèi)部存儲區(qū)域中選擇內(nèi)部存儲區(qū)域;生成包括根據(jù)寫入請求的數(shù)據(jù)的數(shù)據(jù)特征信息的元數(shù)據(jù);以及將元數(shù)據(jù)與數(shù)據(jù)一起存儲在所選擇的內(nèi)部存儲區(qū)域中。

該方法可以進一步包括:在將數(shù)據(jù)與元數(shù)據(jù)一起存儲在所選擇的內(nèi)部存儲區(qū)域中之后,接收用于從主機接收的數(shù)據(jù)的讀取請求;基于根據(jù)讀取請求的數(shù)據(jù)的數(shù)據(jù)特征信息,在多個內(nèi)部存儲區(qū)域中選擇一個內(nèi)部存儲區(qū)域;從所選擇的內(nèi)部存儲區(qū)域中讀出對應于根據(jù)讀取請求的數(shù)據(jù)的元數(shù)據(jù),其中所選擇的內(nèi)部存儲區(qū)域基于根據(jù)讀取請求的數(shù)據(jù)的數(shù)據(jù)特征信息來選擇;確定包括在讀取元數(shù)據(jù)內(nèi)的根據(jù)寫入請求的數(shù)據(jù)的數(shù)據(jù)特征信息與根據(jù)讀取請求的數(shù)據(jù)的數(shù)據(jù)特征信息是否相同;以及當包括在讀取元數(shù)據(jù)內(nèi)的根據(jù)寫入請求的數(shù)據(jù)的數(shù)據(jù)特征信息與根據(jù)讀取請求的數(shù)據(jù)的數(shù)據(jù)特征信息相同時,從所選擇的內(nèi)部存儲區(qū)域中讀出根據(jù)讀取請求的數(shù)據(jù),其中所選擇的內(nèi)部存儲區(qū)域基于根據(jù)讀出請求的數(shù)據(jù)的數(shù)據(jù)特征信息來選擇。

該方法還可以進一步包括:當包括于讀取元數(shù)據(jù)內(nèi)的根據(jù)寫入請求的數(shù)據(jù)的數(shù)據(jù)特征信息與根據(jù)讀取請求的數(shù)據(jù)的數(shù)據(jù)特征信息不相同時,不讀取根據(jù)讀取請求的數(shù)據(jù)。

該方法還可以進一步包括:將數(shù)據(jù)特征不符(discrepancy)和讀取失敗信息傳送至主機。

將元數(shù)據(jù)與數(shù)據(jù)一起存儲在所選擇的內(nèi)部存儲區(qū)域中可以包括:檢查數(shù)據(jù)的大小和元數(shù)據(jù)的大小的總和是否大于所選擇的內(nèi)部存儲區(qū)域的空白空間的大小,其中所選擇的內(nèi)部存儲區(qū)域基于根據(jù)寫入請求的數(shù)據(jù)的數(shù)據(jù)特征信息來選擇。

檢查數(shù)據(jù)的大小和元數(shù)據(jù)的大小的總和是否大于所選擇的內(nèi)部存儲區(qū)域的空白空間的大小,其中所選擇的內(nèi)部存儲區(qū)域基于根據(jù)寫入請求的數(shù)據(jù)的數(shù)據(jù)特征信息來選擇,可以包括:計算對應于總和的地址區(qū)域的大小,并將計算的地址區(qū)域的大小與對應于所選擇的內(nèi)部存儲區(qū)域的空白空間的所選擇的地址區(qū)域的大小進行比較,其中所選擇的內(nèi)部存儲區(qū)域基于根據(jù)寫入請求的數(shù)據(jù)的數(shù)據(jù)特征信息來選擇;當計算的地址區(qū)域的大小大于所選擇的地址區(qū)域的大小時,確定總和的大小大于所選擇的內(nèi)部存儲區(qū)域的大?。灰约爱斢嬎愕牡刂穮^(qū)域的大小不大于所選擇的地址區(qū)域的大小時,確定總和的大小不大于所選擇的內(nèi)部存儲區(qū)域的大小。

將元數(shù)據(jù)與數(shù)據(jù)一起存儲在所選擇的內(nèi)部存儲區(qū)域中可以進一步包括:當數(shù)據(jù)的大小和元數(shù)據(jù)的大小的總和不大于所選擇的內(nèi)部存儲區(qū)域的空白空間的大小時,將數(shù)據(jù)和元數(shù)據(jù)存儲在所選擇的內(nèi)部存儲區(qū)域中,其中所選擇的內(nèi)部存儲區(qū)域基于根據(jù)寫入請求的數(shù)據(jù)的數(shù)據(jù)特征信息來選擇。

將元數(shù)據(jù)與數(shù)據(jù)一起存儲在所選擇的內(nèi)部存儲區(qū)域中可以進一步包括:當數(shù)據(jù)的大小和元數(shù)據(jù)的大小的總和大于所選擇的內(nèi)部存儲區(qū)域的空白空間的大小時,不將數(shù)據(jù)和元數(shù)據(jù)存儲在所選擇的內(nèi)部存儲區(qū)域中,其中所選擇的內(nèi)部存儲區(qū)域基于根據(jù)寫入請求的數(shù)據(jù)的數(shù)據(jù)特征信息來選擇。

將元數(shù)據(jù)與數(shù)據(jù)一起存儲在所選擇的內(nèi)部存儲區(qū)域中可以進一步包括:當數(shù)據(jù)的大小和元數(shù)據(jù)的大小的總和大于所選擇的內(nèi)部存儲區(qū)域的空白空間的大小時,將溢出和存儲失敗信息傳送至主機。

根據(jù)本發(fā)明的實施例,存儲器控制器可以包括:存儲器;以及處理器。處理器可以適于:將存儲器的存儲區(qū)域劃分為多個內(nèi)部存儲區(qū)域;基于根據(jù)來自主機的寫入請求的數(shù)據(jù)的數(shù)據(jù)特征信息在多個內(nèi)部存儲區(qū)域中選擇一個內(nèi)部存儲區(qū)域;生成包括根據(jù)寫入請求的數(shù)據(jù)的數(shù)據(jù)特征信息的元數(shù)據(jù);以及將元數(shù)據(jù)與數(shù)據(jù)一起存儲在所選擇的內(nèi)部存儲區(qū)域中。

處理器可以進一步適于:當在將數(shù)據(jù)與元數(shù)據(jù)一起存儲在所選擇的內(nèi)部存儲區(qū)域中之后,從主機接收用于數(shù)據(jù)的讀取請求時,基于根據(jù)讀取請求的數(shù)據(jù)的數(shù)據(jù)特征信息在多個內(nèi)部存儲區(qū)域中選擇一個內(nèi)部存儲區(qū)域;從所選擇的內(nèi)部存儲區(qū)域中讀出對應于根據(jù)讀取請求的數(shù)據(jù)的元數(shù)據(jù),其中所選擇的內(nèi)部存儲區(qū)域基于根據(jù)讀取請求的數(shù)據(jù)的數(shù)據(jù)特征信息來選擇,并確定包括在讀取元數(shù)據(jù)內(nèi)的根據(jù)寫入請求的數(shù)據(jù)的數(shù)據(jù)特征信息與根據(jù)讀取請求的數(shù)據(jù)的數(shù)據(jù)特征信息是否相同;以及當包括在讀取元數(shù)據(jù)內(nèi)的根據(jù)寫入請求的數(shù)據(jù)的數(shù)據(jù)特征信息與根據(jù)讀取請求的數(shù)據(jù)的數(shù)據(jù)特征信息相同時,從所選擇的內(nèi)部存儲區(qū)域中讀出根據(jù)讀取請求的數(shù)據(jù),其中所選擇的內(nèi)部存儲區(qū)域基于根據(jù)讀取請求的數(shù)據(jù)的數(shù)據(jù)特征信息來選擇。

處理器可以進一步適于:當包括在讀取元數(shù)據(jù)內(nèi)的根據(jù)寫入請求的數(shù)據(jù)的數(shù)據(jù)特征信息與根據(jù)讀取請求的數(shù)據(jù)的數(shù)據(jù)特征信息不相同時,不讀取根據(jù)讀取請求的數(shù)據(jù)。

處理器可以進一步適于:將數(shù)據(jù)特征不符和讀取失敗信息傳送至主機。

處理器可以進一步適于:檢查數(shù)據(jù)的大小和元數(shù)據(jù)的大小的總和是否大于所選擇的內(nèi)部存儲區(qū)域的空白空間的大小,其中所選擇的內(nèi)部存儲區(qū)域基于根據(jù)寫入請求的數(shù)據(jù)的數(shù)據(jù)特征信息來選擇。

處理器可以進一步適于通過包括:計算對應于總和的地址區(qū)域的大小,并將計算的地址區(qū)域的大小與對應于所選擇的內(nèi)部存儲區(qū)域的空白空間的選擇的地址區(qū)域的大小進行比較,其中所選擇的內(nèi)部存儲區(qū)域基于根據(jù)寫入請求的數(shù)據(jù)的數(shù)據(jù)特征信息來選擇;當計算的地址區(qū)域的大小大于所選擇的地址區(qū)域的大小時,確定總和的大小大于所選擇的內(nèi)部存儲區(qū)域的大小;以及當計算的地址區(qū)域的大小不大于所選擇的地址區(qū)域的大小時,確定總和的大小不大于所選擇的內(nèi)部存儲區(qū)域的大小,來檢查數(shù)據(jù)的大小和元數(shù)據(jù)的大小的總和是否大于所選擇的內(nèi)部存儲區(qū)域的空白空間的大小,其中所選擇的內(nèi)部存儲區(qū)域基于根據(jù)寫入請求的數(shù)據(jù)的數(shù)據(jù)特征信息來選擇。

處理器可以進一步適于:當數(shù)據(jù)的大小和元數(shù)據(jù)的大小的總和不大于所選擇的內(nèi)部存儲區(qū)域的空白空間的大小時,將數(shù)據(jù)和元數(shù)據(jù)存儲在所選擇的內(nèi)部存儲區(qū)域中,其中所選擇的內(nèi)部存儲區(qū)域基于根據(jù)寫入請求的數(shù)據(jù)的數(shù)據(jù)特征信息來選擇。

處理器可以進一步適于:當數(shù)據(jù)的大小和元數(shù)據(jù)的大小的總和大于所選擇的內(nèi)部存儲區(qū)域的空白空間的大小時,不將數(shù)據(jù)和元數(shù)據(jù)存儲在所選擇的內(nèi)部存儲區(qū)域中,其中所選擇的內(nèi)部存儲區(qū)域基于根據(jù)寫入請求的數(shù)據(jù)的數(shù)據(jù)特征信息來選擇。

處理器可以進一步適于:當數(shù)據(jù)的大小和元數(shù)據(jù)的大小的總和大于所選擇的內(nèi)部存儲區(qū)域的空白空間的大小時,將溢出和存儲失敗信息傳送至主機。

附圖說明

通過參照附圖詳細描述本發(fā)明的特定實施例,本發(fā)明的上述和其它特征和優(yōu)點對本發(fā)明所屬領(lǐng)域的技術(shù)人員將是更顯而易見的,在附圖中:

圖1為根據(jù)本發(fā)明的實施例的包括存儲器系統(tǒng)的數(shù)據(jù)處理系統(tǒng)的簡化圖。

圖2示出了圖1所示的存儲器系統(tǒng)的組成元件中的存儲器。

圖3示出了圖2的存儲器如何與主機的使用方法相關(guān)。

圖4示出了根據(jù)本發(fā)明的實施例的存儲器管理方法。

圖5a和圖5b為示出根據(jù)本發(fā)明的實施例的圖4的存儲器管理方法的操作的流程圖。

具體實施方式

下面將參照附圖更詳細地描述本發(fā)明的各種實施例。然而,本發(fā)明可以不同形式被實施,并且不應當被解釋為限定于本文所述的實施例。更確切地說,提供這些實施例以使本公開將是全面和完整的,并且將會充分傳達本發(fā)明至本領(lǐng)域內(nèi)技術(shù)人員。

應當理解的是,盡管術(shù)語“第一”、“第二”、“第三”等可以在本文中用于描述各種元件,但這些元件不被這些術(shù)語限制。這些術(shù)語用于區(qū)分一個元件與另一個元件。因此,在不脫離本發(fā)明的精神和范圍的情況下,下文所述的第一元件還可以被稱作第二元件或第三元件。

附圖不一定按比例繪制,且在一些情況下,為了更清楚地說明實施例的各種元件,比例可能已經(jīng)被放大。例如,在附圖中,為了便于說明,元件的尺寸和元件之間的間隔與實際尺寸和間隔相比可以被放大。

將進一步理解的是,當元件被稱為“連接到”或“聯(lián)接到”另一元件時,其可以直接地在其它元件上、連接到或聯(lián)接到其它元件,或可以存在一個或多個中間元件。此外,還將理解的是,當元件被稱作在兩個元件“之間”時,其可以是這兩個元件之間的唯一元件,或者還可以存在一個或多個中間元件。

本文使用的術(shù)語只是為了描述特定實施例,而并不旨在限定本發(fā)明。如本文所使用的,除非上下文另有清楚地說明,否則單數(shù)形式也旨在包括復數(shù)形式。將進一步理解的是,當用于本說明書時,術(shù)語“包括”、“包括有”、“包含”和“包含有”指定存在所陳述的元件,但并不排除一個或多個其它元件的存在或加入。如本文所使用的,術(shù)語“和/或”包括一個或多個相關(guān)的所列項目的任意以及所有組合。

在以下說明中,為了提供本發(fā)明的全面的理解,許多具體的細節(jié)被提出。本發(fā)明可以在沒有一些或所有這些具體細節(jié)的情況下被實施。在其它實例中,為了避免不必要地模糊本發(fā)明,眾所周知的進程結(jié)構(gòu)和/或進程沒有被詳細描述。

也應注意的是,在一些實例中,如對相關(guān)領(lǐng)域的技術(shù)人員明顯的是,結(jié)合一個實施例描述的特征或元件可以單獨使用或與另一個實施例的其它特征或元件組合使用,除非另有特別說明。

下文中,將參照附圖詳細描述本發(fā)明的各種實施例。在本公開全文中,本發(fā)明的各個附圖和實施例中相同的附圖標記指代相同的部件。

現(xiàn)在參照圖1,根據(jù)本發(fā)明的實施例,包括存儲器系統(tǒng)110的數(shù)據(jù)處理系統(tǒng)100被提供。數(shù)據(jù)處理系統(tǒng)100可以包括可操作地聯(lián)接到存儲器系統(tǒng)的主機102。

主機102可以包括諸如移動電話、mp3播放器和筆記本電腦的便攜式電子裝置或諸如臺式電腦、游戲機、電視機(tv)和投影機的固定的電子裝置。

存儲器系統(tǒng)110可以響應于來自主機102的請求操作。特別地,存儲器系統(tǒng)110可以存儲待被主機102訪問的數(shù)據(jù)。存儲器系統(tǒng)110可以用作主機102的主存儲器系統(tǒng)或輔助存儲器系統(tǒng)。根據(jù)待與主機102電聯(lián)接的主機接口的協(xié)議,存儲器系統(tǒng)110可以被實施為各種存儲裝置中的任何一種。例如,存儲器系統(tǒng)110可以實施為固態(tài)驅(qū)動器(ssd)、多媒體卡(mmc)、嵌入式mmc(emmc)、縮小尺寸的mmc(rs-mmc)和微型mmc、安全數(shù)字(sd)卡、迷你sd和微型sd、通用串行總線(usb)存儲裝置、通用閃速存儲(ufs)裝置、標準閃存(cf)卡、智能媒體(sm)卡、記憶棒等。

存儲器系統(tǒng)110的存儲裝置可以實施為諸如動態(tài)隨機存取存儲器(dram)和靜態(tài)隨機存取存儲器(sram)的易失性存儲器裝置,或諸如只讀存儲器(rom)、掩模型rom(mrom)、可編程rom(prom)、可擦除可編程rom(eprom)、電可擦除可編程rom(eeprom)、鐵電隨機存取存儲器(fram)、相變ram(pram)、磁阻式ram(mram)和電阻式ram(rram)的非易失性存儲器裝置可以可以可以可以。

存儲器系統(tǒng)110可以包括用于存儲待被主機102訪問的數(shù)據(jù)的存儲器裝置150和用于控制存儲器裝置150的操作及其與主機的接合的控制器130。

控制器130和存儲器裝置150可以被集成到單個半導體裝置中。例如,控制器130和存儲器裝置150可以被集成到被配置為固態(tài)驅(qū)動器(ssd)的單個半導體裝置中。當存儲器系統(tǒng)110被用作ssd時,與存儲器系統(tǒng)110電聯(lián)接的主機102的操作速度可以顯著增加。

控制器130和存儲器裝置150可以被集成到被配置為存儲卡的單個半導體裝置中??刂破?30和存儲器裝置150可以被集成到被配置為諸如個人計算機存儲卡國際協(xié)會(pcmcia)卡,標準閃存(cf)卡,智能媒體(sm)卡(smc),記憶棒,多媒體卡(mmc),rs-mmc和微型-mmc,安全數(shù)字(sd)卡,迷你-sd、微型-sd和sdhc以及通用閃速存儲(ufs)裝置的存儲卡的單個半導體裝置中標準閃存。

再如,存儲器系統(tǒng)110可以被配置為計算機、超級移動pc(umpc)、工作站、上網(wǎng)本、個人數(shù)字助理(pda)、便攜式計算機、網(wǎng)絡平板、平板電腦、無線電話、移動電話、智能電話、電子書、便攜式多媒體播放器(pmp)、便攜式游戲機、導航裝置、黑盒子、數(shù)碼相機、數(shù)字多媒體廣播(dmb)播放器、三維(3d)電視機、智能電視機、數(shù)字音頻記錄器、數(shù)字音頻播放器、數(shù)字圖片記錄器、數(shù)字圖片播放器、數(shù)字視頻記錄器、數(shù)字視頻播放器、配置數(shù)據(jù)中心的存儲器、能夠在無線環(huán)境下傳送和接收信息的裝置、配置家庭網(wǎng)絡的各種電子裝置中的一種、配置計算機網(wǎng)絡的各種電子裝置中的一種、配置遠程信息處理網(wǎng)絡的各種電子裝置中的一種、rfid裝置或配置計算系統(tǒng)的各種組成元件中的一種的存儲裝置。

在實施例中,存儲器裝置150可以是能夠甚至當電源中斷時保留存儲在其中的數(shù)據(jù)的非易失性存儲器裝置。存儲器裝置150可以在寫入操作期間存儲由主機102提供的數(shù)據(jù),并且還可以在讀取操作期間將存儲數(shù)據(jù)提供給主機102。存儲器裝置150可以包括多個存儲塊152、154和156。存儲塊152、154和156中的每個可以包括多個頁面。每個頁面可以包括多個存儲器單元。在實施例中,頁面包括被聯(lián)接到相同字線的多個存儲器單元。在實施例中,存儲器裝置150可以是具有三維(3d)堆棧結(jié)構(gòu)的閃速存儲器。

控制器130可以響應于從主機102接收的請求控制存儲器裝置150。控制器130可以控制存儲器裝置150的操作,例如包括讀取、寫入、編程和擦除操作。例如,控制器130可以響應于從主機102接收的讀取請求將從存儲器裝置150讀取的數(shù)據(jù)提供給主機102。而且,例如,控制器130可以響應于從主機102接收的編程(寫入)請求,存儲從主機102提供給存儲器裝置150的數(shù)據(jù)。

根據(jù)圖1所示的實施例,控制器130可以包括主機接口單元132、處理器134、錯誤校正碼(ecc)單元138、電源管理單元(pmu)140、nand閃速控制器(nfc)142和存儲器144。

主機接口單元132可以處理由主機102提供的命令和數(shù)據(jù),并可以通過諸如通用串行總線(usb)、多媒體卡(mmc)、高速外設組件互連(pci-e)、串列scsi(sas)、串行高級技術(shù)附件(sata)、并行高級技術(shù)附件(pata)、小型計算機系統(tǒng)接口(scsi)、增強型小型磁盤接口(esdi)和集成驅(qū)動電路(ide)的各種接口協(xié)議中的至少一種與主機102通信。

ecc單元138可以檢測和校正在讀取操作期間從存儲器裝置150讀取的數(shù)據(jù)中的錯誤。當誤碼(errorbit)的數(shù)量大于或等于可校正誤碼的閾值數(shù)量時,ecc單元138可不校正誤碼,并且ecc單元138可以輸出指示校正誤碼失敗的錯誤校正失敗信號。

ecc單元138可以基于諸如以下的編碼調(diào)制執(zhí)行錯誤校正操作:低密度奇偶校驗(ldpc)碼、博斯-查德胡里-霍昆格母(bose-chaudhuri-hocquenghem,bch)碼、turbo碼、里德-所羅門(reed-solomon,rs)碼、卷積碼、遞歸系統(tǒng)碼(rsc)、格形碼調(diào)制(tcm)、分組編碼調(diào)制(bcm)等。ecc單元138可以包括適于錯誤校正操作的所有電路、系統(tǒng)或裝置。

pmu140可以提供和管理用于控制器130的電力,即用于包括在控制器130內(nèi)的組成元件的電力。pmu在本領(lǐng)域內(nèi)是眾所周知的,因此省略了其進一步的細節(jié)。任何適合的pmu可以被采用。

nfc142是當存儲器裝置150為nand閃速存儲器裝置時,控制器130和存儲器裝置150之間適合的存儲器接口的示例。nfc142提供接口以使控制器130響應于來自主機102的請求控制存儲器裝置150。nfc142還可以在處理器134的控制下生成用于存儲器裝置150的控制信號并處理數(shù)據(jù)。當存儲器裝置150不是nand閃速存儲器裝置時,可以采用本領(lǐng)域中許多眾所周知的存儲器接口中的不同的適合的接口。

存儲器144可以作為存儲器系統(tǒng)110和控制器130的工作存儲器,并存儲用于驅(qū)動存儲器系統(tǒng)110和控制器130的數(shù)據(jù)??刂破?30可以響應于來自主機102的請求控制存儲器系統(tǒng)150。例如,控制器130可以將從存儲器裝置150讀取的數(shù)據(jù)提供給主機102,并將由主機102提供的數(shù)據(jù)存儲在存儲器裝置150中。當控制器130控制存儲器裝置150的操作時,存儲器144可以存儲被控制器130和存儲器裝置150用于諸如讀取、寫入、編程和擦除操作的操作的數(shù)據(jù)。

存儲器144可以利用易失性存儲器實施。例如,存儲器144可以利用靜態(tài)隨機存取存儲器(sram)或動態(tài)隨機存取存儲器(dram)實施。如上所述,存儲器144可以存儲被主機102和存儲器裝置150用于讀取和寫入操作的數(shù)據(jù)。為了存儲數(shù)據(jù),存儲器144可以包括程序存儲器、數(shù)據(jù)存儲器、寫入緩沖器、讀取緩沖器、映射緩沖器等。

處理器134可以控制存儲器系統(tǒng)110的操作。例如,處理器134可以響應于來自主機102的寫入請求或讀取請求,控制用于存儲器裝置150的寫入操作或讀取操作。處理器134可以驅(qū)動被稱為閃存轉(zhuǎn)換層(ftl)的固件,以控制存儲器系統(tǒng)110的操作。例如,處理器134可以利用微處理器或中央處理單元(cpu)實施。

管理單元(未示出)可以被包括在處理器134中以用于對存儲器裝置150執(zhí)行壞塊管理。例如,管理單元可以發(fā)現(xiàn)包含在存儲器裝置150內(nèi)的處于不利于進一步使用的情況中的壞存儲塊,并對壞存儲塊執(zhí)行壞塊管理。當存儲器裝置150是閃速存儲器(例如,nand閃速存儲器)時,由于nand邏輯功能的特性,在寫入操作(即,編程操作)期間可能發(fā)生編程失敗。在壞塊管理期間,可以將編程失敗的存儲塊或壞存儲塊的數(shù)據(jù)編程到新的存儲塊中。由于編程失敗導致的壞塊可以使存儲器裝置150的利用效率和存儲器系統(tǒng)110的整體可靠性嚴重惡化。因此,可以包括可靠的壞塊管理。

圖2示出了圖1所示的存儲器系統(tǒng)110的存儲器144的配置示例。更具體地,圖2示出了如何組織圖1所示的存儲器系統(tǒng)110的構(gòu)成元件中的存儲器144的存儲區(qū)域。

如參照圖1所述的,存儲器144可以用于多種目的。例如,存儲器144可以存儲在主機102和存儲器裝置150之間執(zhí)行數(shù)據(jù)寫入操作所需要的數(shù)據(jù)。對于另一個示例,存儲器144可以存儲在主機102和存儲器裝置150之間執(zhí)行數(shù)據(jù)讀取操作所需要的數(shù)據(jù)。存儲器144可以包括程序存儲器、數(shù)據(jù)存儲器、寫入緩沖器、讀取緩沖器和映射緩沖器以存儲在主機102和存儲器裝置150之間執(zhí)行數(shù)據(jù)寫入操作和數(shù)據(jù)讀取操作所需要的數(shù)據(jù)。

包括在存儲器系統(tǒng)110中的存儲器144的存儲區(qū)域可以根據(jù)主機102如何使用存儲器系統(tǒng)110,被劃分為多個內(nèi)部存儲區(qū)域。例如,如圖2所示,存儲器144的存儲區(qū)域可以根據(jù)主機102如何使用存儲器系統(tǒng)110,被劃分為五個內(nèi)部存儲區(qū)域,即第一內(nèi)部存儲區(qū)域1441、第二內(nèi)部存儲區(qū)域1442、第三內(nèi)部存儲區(qū)域1443、第四內(nèi)部存儲區(qū)域1444和第五內(nèi)部存儲區(qū)域1445。如所示出的,第一內(nèi)部存儲區(qū)域1441可以為寄存器區(qū)域register,其用于臨時存儲在存儲器系統(tǒng)110的內(nèi)部傳送的數(shù)據(jù)或信號。第二內(nèi)部存儲區(qū)域1442可以為數(shù)據(jù)存儲內(nèi)存(storagememory)區(qū)域data,其用于在主機102和存儲器裝置150之間的寫入操作和/或讀取操作期間存儲數(shù)據(jù)。第三內(nèi)部存儲區(qū)域1443可以為緩沖器區(qū)域buffer,其用于在主機102和存儲器裝置150之間的寫入操作和/或讀取操作期間緩沖數(shù)據(jù)。第四內(nèi)部存儲區(qū)域1444可以為主要存儲器區(qū)域main,其用于存儲用于控制存儲器系統(tǒng)110的內(nèi)部中的操作的固件代碼。第五內(nèi)部存儲區(qū)域1445可以為鏈接(link)區(qū)域link,其用于存儲地址映射表。

圖2所示的結(jié)構(gòu)僅是示例,并且存儲器144的存儲區(qū)域可以根據(jù)主機102如何使用存儲器系統(tǒng)110被劃分為比第一至第五內(nèi)部存儲區(qū)域1441-1445更多的內(nèi)部存儲區(qū)域或更少的內(nèi)部存儲區(qū)域,并被管理。在圖2所示的實施例中,作為示例,假設第一存儲區(qū)域1441的大小為64kb,第二存儲區(qū)域1442的大小為384kb,第三存儲區(qū)域1443的大小為32kb,第四存儲區(qū)域1444的大小為32kb,第五存儲區(qū)域1445的大小為48kb。然而,應當注意,可以根據(jù)設計改變每個內(nèi)部存儲區(qū)域的大小。

圖3示出了圖2的存儲器144如何與圖1的主機102的操作相關(guān)。

參照圖3,多個操作function<1:8>在主機102中被執(zhí)行。包括在存儲器系統(tǒng)110中的存儲器144的存儲區(qū)域被劃分為分別對應于操作function<1:8>的多個內(nèi)部存儲區(qū)域1441、1442、1443、1444和1445。

首先,為了說明的目的,假設在主機102中執(zhí)行共8個操作function<1:8>。本文中,8個操作function<1:8>可以為從/向存儲器系統(tǒng)110的存儲器裝置150的讀取/寫入/擦除數(shù)據(jù)的操作,以及測試、調(diào)試、編碼和校驗存儲器系統(tǒng)110的操作。簡言之,操作function<1:8>可以表示由主機102執(zhí)行、用于控制存儲器系統(tǒng)110的所有操作。

本文中,在主機102中執(zhí)行的多個操作function<1:8>被示為八個操作,但這是為了方便描述。應當注意,比8個操作更多或更少的操作可以在主機中被執(zhí)行。

同樣,如參照圖2所述的,包括在存儲器系統(tǒng)110中的存儲器144被假設為包括第一至第五內(nèi)部存儲區(qū)域1441、1442、1443、1444和1445。

本文中,進一步假設,在主機102中執(zhí)行的第一操作function<1>(1)期間,只有存儲器144的存儲區(qū)域的第一內(nèi)部存儲區(qū)域1441被訪問。換言之,假設在主機102中執(zhí)行的第一操作function<1>期間,數(shù)據(jù)被輸入至存儲器144的存儲區(qū)域的第一內(nèi)部存儲區(qū)域1441或從存儲器144的存儲區(qū)域的第一內(nèi)部存儲區(qū)域1441輸出,且沒有數(shù)據(jù)被輸入至其余第二至第五內(nèi)部存儲區(qū)域1442、1443、1444和1445/從其余第二至第五內(nèi)部存儲區(qū)域1442、1443、1444和1445輸出。

同樣,假設,如箭頭2-1和2-2所表示的,在主機102中執(zhí)行的第二操作function<2>期間,只有存儲器144的存儲區(qū)域的第一內(nèi)部存儲區(qū)域1441和第二內(nèi)部存儲區(qū)域1442被訪問。換言之,可以假設在主機102中執(zhí)行的第二操作function<2>期間,數(shù)據(jù)被輸入至存儲器144的存儲區(qū)域的第一內(nèi)部存儲區(qū)域1441和第二內(nèi)部存儲區(qū)域1442/從存儲器144的存儲區(qū)域的第一內(nèi)部存儲區(qū)域1441和第二內(nèi)部存儲區(qū)域1442輸出,且數(shù)據(jù)不被輸入至第三至第五內(nèi)部存儲區(qū)域1443、1444和1445/不從第三至第五內(nèi)部存儲區(qū)域1443、1444和1445輸出。

同樣,假設,如箭頭3-1和3-2所表示的,在主機102中執(zhí)行的第三操作function<3>期間,只有存儲器144的存儲區(qū)域的第二內(nèi)部存儲區(qū)域1442和第四內(nèi)部存儲區(qū)域1444被訪問。換言之,可以假設在主機102中執(zhí)行的第三操作function<3>期間,數(shù)據(jù)被輸入至存儲器144的存儲區(qū)域的第二內(nèi)部存儲區(qū)域1442和第四內(nèi)部存儲區(qū)域1444/從存儲器144的存儲區(qū)域的第二內(nèi)部存儲區(qū)域1442和第四內(nèi)部存儲區(qū)域1444輸出,且數(shù)據(jù)不被輸入至第一內(nèi)部存儲區(qū)域1441、第三內(nèi)部存儲區(qū)域1443和第五內(nèi)部存儲區(qū)域1445/不從第一內(nèi)部存儲區(qū)域1441、第三內(nèi)部存儲區(qū)域1443和第五內(nèi)部存儲區(qū)域1445輸出。

同樣,假設在主機102中執(zhí)行的第四操作function<4>(4)期間,只有存儲器144的存儲區(qū)域的第二內(nèi)部存儲區(qū)域1442被訪問。換言之,可以假設在主機102中執(zhí)行的第四操作function<4>期間,數(shù)據(jù)被輸入至存儲器144的存儲區(qū)域的第二內(nèi)部存儲區(qū)域1442/從存儲器144的存儲區(qū)域的第二內(nèi)部存儲區(qū)域1442輸出,且數(shù)據(jù)不被輸入至第一內(nèi)部存儲區(qū)域1441、第三內(nèi)部存儲區(qū)域1443、第四內(nèi)部存儲區(qū)域1444和第五內(nèi)部存儲區(qū)域1445/不從第一內(nèi)部存儲區(qū)域1441、第三內(nèi)部存儲區(qū)域1443、第四內(nèi)部存儲區(qū)域1444和第五內(nèi)部存儲區(qū)域1445輸出。

同樣,假設在主機102中執(zhí)行的第五操作function<5>(5-1和5-2)期間,只有存儲器144的存儲區(qū)域的第二內(nèi)部存儲區(qū)域1442和第五內(nèi)部存儲區(qū)域1445被訪問。換言之,可以假設在主機102中執(zhí)行的第五操作function<5>期間,數(shù)據(jù)被輸入至存儲器144的存儲區(qū)域的第二內(nèi)部存儲區(qū)域1442和第五內(nèi)部存儲區(qū)域1445/從存儲器144的存儲區(qū)域的第二內(nèi)部存儲區(qū)域1442和第五內(nèi)部存儲區(qū)域1445輸出,且數(shù)據(jù)不被輸入至第一內(nèi)部存儲區(qū)域1441、第三內(nèi)部存儲區(qū)域1443和第四內(nèi)部存儲區(qū)域1444/不從第一內(nèi)部存儲區(qū)域1441、第三內(nèi)部存儲區(qū)域1443和第四內(nèi)部存儲區(qū)域1444輸出。

同樣,假設在主機102中執(zhí)行的第六操作function<6>(6-1和6-2)期間,只有存儲器144的存儲區(qū)域的第二內(nèi)部存儲區(qū)域1442和第五內(nèi)部存儲區(qū)域1445被訪問。換言之,可以假設在主機102中執(zhí)行的第六操作function<6>期間,數(shù)據(jù)被輸入至存儲器144的存儲區(qū)域的第二內(nèi)部存儲區(qū)域1442和第五內(nèi)部存儲區(qū)域1445/從存儲器144的存儲區(qū)域的第二內(nèi)部存儲區(qū)域1442和第五內(nèi)部存儲區(qū)域1445輸出,且數(shù)據(jù)不被輸入至第一內(nèi)部存儲區(qū)域1441、第三內(nèi)部存儲區(qū)域1443和第四內(nèi)部存儲區(qū)域1444/不從第一內(nèi)部存儲區(qū)域1441、第三內(nèi)部存儲區(qū)域1443和第四內(nèi)部存儲區(qū)域1444輸出。

同樣,假設在主機102中執(zhí)行的第七操作function<7>(7)期間,只有存儲器144的存儲區(qū)域的第三內(nèi)部存儲區(qū)域1443被訪問。換言之,可以假設在主機102中執(zhí)行的第七操作function<7>期間,數(shù)據(jù)被輸入至存儲器144的存儲區(qū)域的第三內(nèi)部存儲區(qū)域1443/從存儲器144的存儲區(qū)域的第三內(nèi)部存儲區(qū)域1443輸出,且數(shù)據(jù)不被輸入至第一內(nèi)部存儲區(qū)域1441、第二內(nèi)部存儲區(qū)域1442、第四內(nèi)部存儲區(qū)域1444和第五內(nèi)部存儲區(qū)域1445/不從第一內(nèi)部存儲區(qū)域1441、第二內(nèi)部存儲區(qū)域1442、第四內(nèi)部存儲區(qū)域1444和第五內(nèi)部存儲區(qū)域1445輸出。

同樣,假設在主機102中執(zhí)行的第八操作function<8>(8)期間,只有存儲器144的存儲區(qū)域的第四內(nèi)部存儲區(qū)域1444被訪問。換言之,可以假設在主機102中執(zhí)行的第八操作function<8>期間,數(shù)據(jù)被輸入至存儲器144的存儲區(qū)域的第四內(nèi)部存儲區(qū)域1444/從存儲器144的存儲區(qū)域的第四內(nèi)部存儲區(qū)域1444輸出,且數(shù)據(jù)不被輸入至第一內(nèi)部存儲區(qū)域1441、第二內(nèi)部存儲區(qū)域1442、第三內(nèi)部存儲區(qū)域1443和第五內(nèi)部存儲區(qū)域1445/不從第一內(nèi)部存儲區(qū)域1441、第二內(nèi)部存儲區(qū)域1442、第三內(nèi)部存儲區(qū)域1443和第五內(nèi)部存儲區(qū)域1445輸出。

上述在主機102中執(zhí)行的操作function<1:8>中的每個操作可以通過根據(jù)操作的特征選擇并訪問包括在存儲器144中的多個內(nèi)部存儲區(qū)域1441、1442、1443、1444和1445中的預定的內(nèi)部存儲區(qū)域而被執(zhí)行。

因此,可以看出,可以為在主機102中執(zhí)行的操作中的至少一個訪問內(nèi)部存儲區(qū)域。

例如,如圖3所示,當在主機102中執(zhí)行第一操作function<1>或第二操作function<2>時,訪問存儲器144的存儲區(qū)域的第一內(nèi)部存儲區(qū)域1441,并將數(shù)據(jù)data<0:1>存儲在第一內(nèi)部存儲區(qū)域1441中。

同樣,當在主機102中執(zhí)行第二操作function<2>、第三操作function<3>、第四操作function<4>、第五操作function<5>或第六操作function<6>時,訪問存儲器144的存儲區(qū)域的第二內(nèi)部存儲區(qū)域1442,并將數(shù)據(jù)data<2:6>存儲在第二內(nèi)部存儲區(qū)域1442中。

同樣,當在主機102中執(zhí)行第七操作function<7>時,訪問存儲器144的存儲區(qū)域的第三內(nèi)部存儲區(qū)域1443,并將數(shù)據(jù)data<7>存儲在第三內(nèi)部存儲區(qū)域1443中。

同樣,當在主機102中執(zhí)行第三操作function<3>或第八操作function<8>時,訪問存儲器144的存儲區(qū)域的第四內(nèi)部存儲區(qū)域1444,并將數(shù)據(jù)data<8:9>存儲在第四內(nèi)部存儲區(qū)域1444中。

同樣,當在主機102中執(zhí)行第五操作function<5>或第六操作function<6>時,訪問存儲器144的存儲區(qū)域的第五內(nèi)部存儲區(qū)域1445,并將數(shù)據(jù)data<10:11>存儲在第五內(nèi)部存儲區(qū)域1445中。

如上所述,根據(jù)每個操作的特征,可以通過在主機102中執(zhí)行的多個操作function<1:8>中的一個、兩個或更多個操作訪問包括在存儲器144中的內(nèi)部存儲區(qū)域1441、1442、1443、1444和1445中的每一個。

同時,存儲器系統(tǒng)110不知道是什么操作使數(shù)據(jù)data<0:11>存儲在包括在存儲器144中的內(nèi)部存儲區(qū)域1441、1442、1443、1444和1445中。僅主機102可以知道是什么操作使數(shù)據(jù)data<0:11>存儲在包括在存儲器144中的內(nèi)部存儲區(qū)域1441、1442、1443、1444和1445中。

例如,通過可以在主機102中被執(zhí)行的多個操作function<1:8>中的第二操作function<2>、第三操作function<3>、第四操作function<4>、第五操作function<5>或第六操作function<6>,數(shù)據(jù)data<2:6>可以被存儲到包括在存儲器系統(tǒng)110中的存儲器114的存儲區(qū)域的第二內(nèi)部存儲區(qū)域1442中。在本文中,什么數(shù)據(jù)通過哪個操作被存儲在第二內(nèi)部存儲區(qū)域1442中在主機102中是已知的。然而,存儲器系統(tǒng)110不知道主機102的哪個操作使數(shù)據(jù)data<2:6>存儲在存儲器144的第二內(nèi)部存儲區(qū)域1442中。

在本文中,當在主機102中執(zhí)行的操作function<1:8>被無錯誤地正常處理時,因為主機102知道什么數(shù)據(jù)data<0:11>被存儲在存儲器144的內(nèi)部存儲區(qū)域1441、1442、1443、1444和1445中并適當?shù)毓芾頂?shù)據(jù)data<0:11>,所以存儲器系統(tǒng)110是否知道什么數(shù)據(jù)data<0:11>被存儲在存儲器144的內(nèi)部存儲區(qū)域1441、1442、1443、1444和1445中并不重要。

然而,在主機102中被無錯誤地正常處理的操作function<1:8>只是理想的情況。現(xiàn)實是由于主機102中未知的原因,操作function<1:8>中的某些可能不能被正常處理。

如果在主機102中執(zhí)行的操作function<1:8>中的某些發(fā)生失敗并且由此關(guān)于什么數(shù)據(jù)data<0:11>被存儲在存儲器144的內(nèi)部存儲區(qū)域1441、1442、1443、1444和1445中的信息丟失,則存儲在內(nèi)部存儲區(qū)域1441、1442、1443、1444和1445的某些內(nèi)部存儲區(qū)域中的數(shù)據(jù)可能被錯誤地管理,這可導致存儲器系統(tǒng)110的異常操作。

圖4示出了根據(jù)本發(fā)明的實施例的存儲器管理方法。圖4的方法可以應用于圖1-圖3的存儲器144。例如,可以通過圖1中存儲器控制器130的處理器134執(zhí)行圖4的方法。

參照圖4,如上參照圖3所述的,在主機102中執(zhí)行多個操作function<1:8>。包括在存儲器系統(tǒng)110中的存儲器144的存儲區(qū)域被劃分為對應于操作function<1:8>的多個內(nèi)部存儲區(qū)域(例如,5個內(nèi)部存儲區(qū)域1441、1442、1443、1444和1445)。

與如上參照圖3的描述相比,現(xiàn)將元數(shù)據(jù)m<1:8>與數(shù)據(jù)data<0:11>一起存儲在存儲器144的內(nèi)部存儲區(qū)域1441、1442、1443、1444和1445中。

首先,可以假設在主機102中執(zhí)行共8個操作function<1:8>。本文中,8個操作function<1:8>可以為從/向存儲器系統(tǒng)110的存儲器裝置150的讀取/寫入/擦除數(shù)據(jù)的操作,以及測試、調(diào)試、編碼和校驗存儲器系統(tǒng)110的操作。簡言之,主機102中執(zhí)行的操作function<1:8>表示由主機102執(zhí)行的用以控制存儲器系統(tǒng)110的所有操作。

本文中,主機102中執(zhí)行的多個操作function<1:8>被示為八個操作,但這是為了方便描述,并且執(zhí)行比8個操作更多的操作或更少的操作也是可能的。

如參照圖2和圖3所述的,包括在存儲器系統(tǒng)110中的存儲器144包含第一至第五內(nèi)部存儲區(qū)域1441、1442、1443、1444和1445。換言之,根據(jù)存儲器系統(tǒng)110的使用將存儲器144的存儲區(qū)域劃分為多個內(nèi)部存儲區(qū)域1441、1442、1443、1444和1445的操作在主機102中被首先執(zhí)行。

隨后,當主機102請求存儲器系統(tǒng)110將數(shù)據(jù)data<0:11>寫入存儲器系統(tǒng)110的存儲器144中時,存儲器系統(tǒng)110執(zhí)行基于根據(jù)從主機102傳送的寫入請求的數(shù)據(jù)data<0:11>的數(shù)據(jù)特征信息,在存儲器144的內(nèi)部存儲區(qū)域1441、1442、1443、1444和1445中選擇一個內(nèi)部存儲區(qū)域的操作。

在存儲器144的內(nèi)部存儲區(qū)域1441、1442、1443、1444和1445中的一個內(nèi)部存儲區(qū)域基于從主機102傳送的寫入數(shù)據(jù)data<0:11>的數(shù)據(jù)特征信息被選擇之后,生成包括寫入數(shù)據(jù)data<0:11>的數(shù)據(jù)特征信息的元數(shù)據(jù)m<1:8>,然后將生成的元數(shù)據(jù)m<1:8>與寫入數(shù)據(jù)data<0:11>一起存儲在選擇的內(nèi)部存儲區(qū)域中。

在示出的示例中,從主機102傳送的寫入數(shù)據(jù)data<0:11>的數(shù)據(jù)特征信息可以是關(guān)于當寫入數(shù)據(jù)data<0:11>被寫入存儲器裝置中時,在主機102中執(zhí)行的操作function<1:8>中的哪個操作將被執(zhí)行的信息。

例如,當?shù)谝徊僮鱢unction<1>在主機102中被執(zhí)行且主機102請求存儲器系統(tǒng)110將數(shù)據(jù)data<0:11>寫入存儲器144中時,數(shù)據(jù)data<0:11>的數(shù)據(jù)特征信息為表示第一操作function<1>在主機102中被執(zhí)行的信息。因此,對應于第一操作function<1>,選擇存儲器144的內(nèi)部存儲區(qū)域1441、1442、1443、1444和1445中的第一內(nèi)部存儲區(qū)域1441。隨后,包括指示第一操作function<1>在主機102中被執(zhí)行的信息的第一元數(shù)據(jù)m1被生成并與從主機102傳送的數(shù)據(jù)data<0:11>一起被存儲在第一內(nèi)部存儲區(qū)域1441中。

同樣,當?shù)诙僮鱢unction<2>在主機102中被執(zhí)行且主機102請求存儲器系統(tǒng)110將數(shù)據(jù)data<0:11>寫入存儲器144中時,數(shù)據(jù)data<0:11>的數(shù)據(jù)特征信息為表示第二操作function<2>在主機102中被執(zhí)行的信息。因此,對應于第二操作function<2>,在存儲器144的內(nèi)部存儲區(qū)域1441、1442、1443、1444和1445中選擇第一內(nèi)部存儲區(qū)域1441與第二內(nèi)部存儲區(qū)域1442之間的一個內(nèi)部存儲區(qū)域。隨后,包括指示第二操作function<2>在主機102中被執(zhí)行的信息的第二元數(shù)據(jù)m2被生成并與從主機102傳送的數(shù)據(jù)data<0:11>一起存儲在第一內(nèi)部存儲區(qū)域1441與第二內(nèi)部存儲區(qū)域1442之間選擇的內(nèi)部存儲區(qū)域中。在本文中,第二元數(shù)據(jù)m2和從主機102傳送的數(shù)據(jù)data<0:11>是存儲在第一內(nèi)部存儲區(qū)域1441中還是第二內(nèi)部存儲區(qū)域1442中基于如何在主機102中執(zhí)行第二操作function<2>來決定。

同樣,當?shù)谌僮鱢unction<3>在主機102中被執(zhí)行且主機102請求存儲器系統(tǒng)110將數(shù)據(jù)data<0:11>寫入存儲器144中時,數(shù)據(jù)data<0:11>的數(shù)據(jù)特征信息為表示在主機102中執(zhí)行第三操作function<3>的信息。因此,對應于第三操作function<3>,在存儲器144的內(nèi)部存儲區(qū)域1441、1442、1443、1444和1445中選擇第二內(nèi)部存儲區(qū)域1442與第四內(nèi)部存儲區(qū)域1444之間的一個內(nèi)部存儲區(qū)域。隨后,包括指示第三操作function<3>在主機102中被執(zhí)行的信息的第三元數(shù)據(jù)被生成并與從主機102傳送的數(shù)據(jù)data<0:11>一起被存儲在第二內(nèi)部存儲區(qū)域1442與第四內(nèi)部存儲區(qū)域1444之間選擇的內(nèi)部存儲區(qū)域中。在本文中,第三元數(shù)據(jù)m3和從主機102傳送的數(shù)據(jù)data<0:11>是存儲在第二內(nèi)部存儲區(qū)域1442中還是第四內(nèi)部存儲區(qū)域1444中基于如何在主機102中執(zhí)行第三操作function<3>來決定。。

另外,當?shù)谒牟僮鱢unction<4>在主機102中被執(zhí)行且主機102請求存儲器系統(tǒng)110將數(shù)據(jù)data<0:11>寫入存儲器144中時,數(shù)據(jù)data<0:11>的數(shù)據(jù)特征信息為表示在主機102中執(zhí)行第四操作function<4>的信息。因此,對應于第四操作function<4>,在存儲器144的內(nèi)部存儲區(qū)域1441、1442、1443、1444和1445中選擇第二內(nèi)部存儲區(qū)域1442。隨后,包括指示第四操作function<4>在主機102中被執(zhí)行的信息的第四元數(shù)據(jù)m4被生成并與從主機102傳送的數(shù)據(jù)data<0:11>一起被存儲在第二內(nèi)部存儲區(qū)域1442中。

同樣,當?shù)谖宀僮鱢unction<5>在主機102中被執(zhí)行且主機102請求存儲器系統(tǒng)110將數(shù)據(jù)data<0:11>寫入存儲器144中時,數(shù)據(jù)data<0:11>的數(shù)據(jù)特征信息為表示在主機102中執(zhí)行第五操作function<5>的信息。因此,對應于第五操作function<5>,在存儲器144的內(nèi)部存儲區(qū)域1441、1442、1443、1444和1445中選擇第二內(nèi)部存儲區(qū)域1442與第五內(nèi)部存儲區(qū)域1445之間的一個內(nèi)部存儲區(qū)域。隨后,包括指示第五操作function<5>在主機102中被執(zhí)行的信息的第五元數(shù)據(jù)m5被生成并與從主機102傳送的數(shù)據(jù)data<0:11>一起被存儲在第二內(nèi)部存儲區(qū)域1442與第五內(nèi)部存儲區(qū)域1445之間選擇的內(nèi)部存儲區(qū)域中。在本文中,第五元數(shù)據(jù)m5和從主機102傳送的數(shù)據(jù)data<0:11>是存儲在第二內(nèi)部存儲區(qū)域1442中還是第五內(nèi)部存儲區(qū)域1445中基于如何在主機102中執(zhí)行第五操作function<5>來決定。

同樣,當?shù)诹僮鱢unction<6>在主機102中被執(zhí)行且主機102請求存儲器系統(tǒng)110將數(shù)據(jù)data<0:11>寫入存儲器144中時,數(shù)據(jù)data<0:11>的數(shù)據(jù)特征信息為表示在主機102中執(zhí)行第六操作function<6>的信息。因此,對應于第六操作function<6>,在存儲器144的內(nèi)部存儲區(qū)域1441、1442、1443、1444和1445中選擇第二內(nèi)部存儲區(qū)域1442與第五內(nèi)部存儲區(qū)域1445之間的一個內(nèi)部存儲區(qū)域>。隨后,包括指示第六操作function<6>在主機102中被執(zhí)行的信息的第六元數(shù)據(jù)m6被生成并與從主機102傳送的數(shù)據(jù)data<0:11>一起被存儲在第二內(nèi)部存儲區(qū)域1442與第五內(nèi)部存儲區(qū)域1445之間選擇的內(nèi)部存儲區(qū)域中。本文中,第六元數(shù)據(jù)m6和從主機102傳送的數(shù)據(jù)data<0:11>是存儲在第二內(nèi)部存儲區(qū)域1442中還是第五內(nèi)部存儲區(qū)域1445中基于如何在主機102中執(zhí)行第六操作function<6>來決定。

同樣,當?shù)谄卟僮鱢unction<7>在主機102中被執(zhí)行且主機102請求存儲器系統(tǒng)110將數(shù)據(jù)data<0:11>寫入存儲器144中時,數(shù)據(jù)data<0:11>的數(shù)據(jù)特征信息為表示在主機102中執(zhí)行第七操作function<7>的信息。因此,對應于第七操作function<7>,在存儲器144的內(nèi)部存儲區(qū)域1441、1442、1443、1444和1445中選擇第三內(nèi)部存儲區(qū)域1443。隨后,包括指示第七操作function<7>在主機102中被執(zhí)行的信息的第七元數(shù)據(jù)m7與從主機102傳送的數(shù)據(jù)data<0:11>一起被存儲在第三內(nèi)部存儲區(qū)域1443中。

同樣,當?shù)诎瞬僮鱢unction<8>在主機102中被執(zhí)行且主機102請求存儲器系統(tǒng)110將數(shù)據(jù)data<0:11>寫入存儲器144中時,數(shù)據(jù)data<0:11>的數(shù)據(jù)特征信息為表示在主機102中執(zhí)行第八操作function<8>的信息。因此,對應于第八操作function<8>,在存儲器144的內(nèi)部存儲區(qū)域1441、1442、1443、1444和1445中選擇第四內(nèi)部存儲區(qū)域1444。隨后,包括指示第八操作function<8>在主機102中被執(zhí)行的信息的第八元數(shù)據(jù)m8被生成并與從主機102傳送的數(shù)據(jù)data<0:11>一起被存儲在第四內(nèi)部存儲區(qū)域1444中。

總之,當從主機102傳送的寫入數(shù)據(jù)data<0:11>被接收時,存儲器系統(tǒng)110生成包括從主機102傳送的寫入數(shù)據(jù)data<0:11>的數(shù)據(jù)特征信息的元數(shù)據(jù)m<1:8>,并將生成的元數(shù)據(jù)m<1:8>與從主機102傳送的寫入數(shù)據(jù)data<0:11>的數(shù)據(jù)特征信息一起存儲在存儲器144中。因此,存儲器144的內(nèi)部存儲區(qū)域1441、1442、1443、1444和1445中的每一個不僅存儲數(shù)據(jù)data<0:11>,而且還存儲表示存儲數(shù)據(jù)data<0:11>對應什么操作的元數(shù)據(jù)m<1:8>。

同時,以上描述的是假設從主機102向存儲器系統(tǒng)110的存儲器144傳送并存儲在存儲器系統(tǒng)110的存儲器144中的數(shù)據(jù)data<0:11>的數(shù)量為12個數(shù)據(jù)data<0:11>,并且第零數(shù)據(jù)data0對應于主機102中的第一操作function<1>;第一數(shù)據(jù)data1和第二數(shù)據(jù)data2對應于主機102中的第二操作function<2>;第三數(shù)據(jù)data3和第八數(shù)據(jù)data8對應于主機102中的第三操作function<3>;第四數(shù)據(jù)data4對應于主機102中的第四操作function<4>;第五數(shù)據(jù)data5和第十數(shù)據(jù)data10對應于主機102中的第五操作function<5>;第六數(shù)據(jù)data6和第十一數(shù)據(jù)data11對應于主機102中的第六操作function<6>;第七數(shù)據(jù)data7對應于主機102中的第七操作function<7>;以及第九數(shù)據(jù)data9對應于主機102中的第八操作function<8>。然而,以上描述只不過是示例。實際上難以預測從主機102傳送給存儲器144的數(shù)據(jù)data<0:11>對應于主機102的操作function<1:8>中的什么操作。當數(shù)據(jù)data<0:11>的數(shù)據(jù)特征信息與數(shù)據(jù)data<0:11>一起從主機102傳送給存儲器系統(tǒng)110時,存儲器系統(tǒng)110僅將數(shù)據(jù)data<0:11>的數(shù)據(jù)特征信息包括在元數(shù)據(jù)m<1:8>中,并將包括數(shù)據(jù)特征信息的元數(shù)據(jù)m<1:8>存儲在存儲器144中??梢酝ㄟ^圖1中的存儲器控制器130的處理器134執(zhí)行圖4的方法。

參照圖5a,根據(jù)本發(fā)明的實施例,在圖4的存儲器管理方法中,當用于數(shù)據(jù)data<0:11>的寫入請求從主機102被傳送時執(zhí)行的操作被詳細描述。

首先,在步驟s10中,存儲器系統(tǒng)110的存儲器144的存儲區(qū)域被劃分為多個內(nèi)部存儲區(qū)域,例如圖4中所示的5個內(nèi)部存儲區(qū)域1441、1442、1443、1444和1445。

在步驟s20中,當在步驟s10之后主機102請求存儲器系統(tǒng)110將數(shù)據(jù)data<0:11>寫入存儲器系統(tǒng)110的存儲器144中時,基于從主機102傳送的寫入數(shù)據(jù)data<0:11>的數(shù)據(jù)特征信息在存儲器144的多個內(nèi)部存儲區(qū)域1441、1442、1443、1444和1445中選擇一個內(nèi)部存儲區(qū)域。

在步驟s30中,包括寫入數(shù)據(jù)data<0:11>的數(shù)據(jù)特征信息的元數(shù)據(jù)m<1:8>被生成,并且生成的元數(shù)據(jù)m<1:8>與寫入數(shù)據(jù)data<0:11>一起被存儲在選擇的內(nèi)部存儲區(qū)域中。

下文中,更詳細地描述步驟s30中的操作。步驟s30包含步驟s31、s32、s33和s34。

步驟s31中,包括從主機102傳送的寫入數(shù)據(jù)data<0:11>的數(shù)據(jù)特征信息的元數(shù)據(jù)m<1:8>被生成。由于上面已經(jīng)參照圖4描述了寫入數(shù)據(jù)data<0:11>的數(shù)據(jù)特征信息,因此這里省略了對其的進一步描述。

步驟s32中,將寫入數(shù)據(jù)data<0:11>的大小和步驟s31中生成的元數(shù)據(jù)m<1:8>的大小的總和與在步驟s20中被選擇的所選擇的內(nèi)部存儲區(qū)域1441、1442、1443、1444或1445的空白空間的大小進行比較。

當步驟s32中的結(jié)果是,寫入數(shù)據(jù)data<0:11>的大小和步驟s31中生成的元數(shù)據(jù)m<1:8>的大小的總和不大于所選擇的內(nèi)部存儲區(qū)域1441、1442、1443、1444或1445的空白空間的大小時,在步驟s33中將寫入數(shù)據(jù)data<0:11>和步驟s31的操作中生成的元數(shù)據(jù)m<1:8>存儲在步驟s20中選擇的所選擇的內(nèi)部存儲區(qū)域1441、1442、1443、1444或1445的空白空間中。

當步驟s32中的結(jié)果是,寫入數(shù)據(jù)data<0:11>的大小和步驟s31中生成的元數(shù)據(jù)m<1:8>的大小的總和大于所選擇的內(nèi)部存儲區(qū)域的空白空間的大小時,寫入數(shù)據(jù)data<0:11>和在步驟s31的操作中生成的元數(shù)據(jù)m<1:8>不被存儲在所選擇的內(nèi)部存儲區(qū)域(其在步驟s20中被選擇)的空白空間中。因此,在步驟s34中將溢出和存儲失敗信息傳送給主機102。

返回參照圖4,現(xiàn)在將描述步驟s31-s34的操作的示例。

首先,可以假設在主機102中執(zhí)行第三操作function<3>并且請求將第三數(shù)據(jù)data3寫入存儲器144的第二內(nèi)部存儲區(qū)域1442中。在步驟s31中,第三數(shù)據(jù)data3的數(shù)據(jù)特征信息被生成為第三元數(shù)據(jù)m3。第三數(shù)據(jù)data3的數(shù)據(jù)特征信息為表示將請求被寫入存儲器144的第二內(nèi)部存儲區(qū)域1442中的第三數(shù)據(jù)data3通過在主機102中執(zhí)行的第三操作function<3>傳送至存儲器系統(tǒng)110的信息。

在第三數(shù)據(jù)data3的數(shù)據(jù)特征信息被生成為第三元數(shù)據(jù)m3之后,在步驟s32中確定第三數(shù)據(jù)data3的大小和第三元數(shù)據(jù)m3的大小的總和是否大于第二內(nèi)部存儲區(qū)域1442的空白空間的大小。

當?shù)谌龜?shù)據(jù)data3的大小和第三元數(shù)據(jù)m3的大小的總和不大于第二內(nèi)部存儲區(qū)域1442的空白空間的大小時,在步驟s33中將第三數(shù)據(jù)data3和第三元數(shù)據(jù)m3存儲在第二內(nèi)部存儲區(qū)域1442中。

當?shù)谌龜?shù)據(jù)data3的大小和第三元數(shù)據(jù)m3的大小的總和大于第二內(nèi)部存儲區(qū)域1442的空白空間的大小時,在步驟s34中不將第三數(shù)據(jù)data3和第三元數(shù)據(jù)m3存儲在第二內(nèi)部存儲區(qū)域1442中,而是將溢出和存儲失敗信息傳送至主機102。

本文中,傳送至主機102的溢出和存儲失敗信息表示第三數(shù)據(jù)data3因為在主機102中執(zhí)行的第三操作function<3>中出現(xiàn)了不可預知的錯誤而不能被存儲在存儲器144中。換言之,可以通知主機102,在主機102中執(zhí)行的第三操作function<3>的寫入操作中已經(jīng)出現(xiàn)問題,因此,主機102可以適當?shù)靥幚碓搯栴}。

在下文中,詳細描述步驟s32的操作。步驟s32包括步驟s321、s322、s323和s324。

在步驟s321中,計算對應于寫入數(shù)據(jù)data<0:11>和在步驟s31的操作中生成的元數(shù)據(jù)m<1:8>的總和的地址區(qū)域的大小。

在步驟s322中,將步驟s321中計算的地址區(qū)域的大小與對應于步驟s20中選擇的所選擇的內(nèi)部存儲區(qū)域1441、1442、1443、1444或1445的空白空間的地址區(qū)域的大小進行比較。

當在步驟s323中,步驟s321中計算的地址區(qū)域的大小小于對應于步驟s20中選擇的所選擇的內(nèi)部存儲區(qū)域1441、1442、1443、1444或1445的空白空間的地址區(qū)域的大小時,在步驟s33中將第三數(shù)據(jù)data3和第三元數(shù)據(jù)m3寫入第二內(nèi)部存儲區(qū)域1442中。

當結(jié)果是在步驟s324中,步驟s321中計算的地址區(qū)域的大小大于對應于步驟s20中選擇的所選擇的內(nèi)部存儲區(qū)域1441、1442、1443、1444或1445的空白空間的地址區(qū)域的大小時,在步驟s34中,不將第三數(shù)據(jù)data3和第三元數(shù)據(jù)m3寫入第二內(nèi)部存儲區(qū)域1442中,而是將溢出和存儲失敗信息傳送至主機102。

參照圖5b,根據(jù)本發(fā)明的實施例,在圖4的存儲器管理方法中,當用于數(shù)據(jù)data<0:11>的讀取請求從主機102被傳送時執(zhí)行的操作被詳細描述。

首先,如上參照圖4和圖5a所述的,在步驟s10中,根據(jù)主機102的操作將存儲器系統(tǒng)110的存儲器144的存儲區(qū)域劃分為多個內(nèi)部存儲區(qū)域,例如五個內(nèi)部存儲區(qū)域1441、1442、1443、1444和1445。

當在步驟s10之后,主機102請求存儲器系統(tǒng)110從存儲器系統(tǒng)110的存儲器144中讀取數(shù)據(jù)data<0:11>時,在步驟s40中基于根據(jù)從主機102傳送的讀取請求的數(shù)據(jù)data<0:11>的數(shù)據(jù)特征信息,在存儲器144的內(nèi)部存儲區(qū)域1441、1442、1443、1444和1445中選擇一個內(nèi)部存儲區(qū)域。

在步驟s50中,從在步驟s40中選擇的所選擇的內(nèi)部存儲區(qū)域中讀取對應于請求讀取的數(shù)據(jù)data<0:11>的元數(shù)據(jù)m<1:8>。換言之,步驟s50的操作是,在將根據(jù)從主機102傳送的讀取請求的數(shù)據(jù)data<0:11>從所選擇的內(nèi)部存儲區(qū)域1441、1442、1443、1444或1445中讀出之前,從在步驟s40中選擇的所選擇的內(nèi)部存儲區(qū)域1441、1442、1443、1444或1445中讀出對應于請求讀取的數(shù)據(jù)data<0:11>的元數(shù)據(jù)m<1:8>。

隨后,在步驟s60中,確定根據(jù)從主機102傳送的寫入請求通過步驟s30的操作被存儲并包括在于步驟s50中讀取的元數(shù)據(jù)m<1:8>內(nèi)的數(shù)據(jù)data<0:11>的數(shù)據(jù)特征信息與根據(jù)從主機102傳送的讀取請求的數(shù)據(jù)data<0:11>的數(shù)據(jù)特征信息是否相同。

當根據(jù)從主機102傳送的寫入請求通過步驟s30的操作被存儲并且包括在于步驟s50中讀取的元數(shù)據(jù)m<1:8>內(nèi)的數(shù)據(jù)data<0:11>的數(shù)據(jù)特征信息與根據(jù)從主機102傳送的讀取請求的數(shù)據(jù)data<0:11>的數(shù)據(jù)特征信息相同(步驟s60,是)時,在步驟s80中從所選擇的內(nèi)部存儲區(qū)域1441、1442、1443、1444或1445中讀出根據(jù)從主機102傳送的讀取請求的數(shù)據(jù)data<0:11>。

當根據(jù)從主機102傳送的寫入請求通過步驟s30的操作被存儲并且包括在于步驟s50中讀取的元數(shù)據(jù)m<1:8>中的數(shù)據(jù)data<0:11>的數(shù)據(jù)特征信息與根據(jù)從主機102傳送的讀取請求的數(shù)據(jù)data<0:11>的數(shù)據(jù)特征信息不相同(步驟s60,否)時,在步驟s70中不從所選擇的內(nèi)部存儲區(qū)域1441、1442、1443、1444或1445中讀出根據(jù)從主機102傳送的讀取請求的數(shù)據(jù)data<0:11>并將數(shù)據(jù)特征不符和讀取失敗信息傳送至主機102。

再次參照圖4,以下借助于示例描述步驟s40-s80的操作。

首先,可以假設數(shù)據(jù)data<0:11>如圖4中所示被存儲在存儲器144的多個內(nèi)部存儲區(qū)域1441、1442、1443、1444和1445中。而且,可以假設正常情況為當在主機102中執(zhí)行第三操作function<3>時請求從存儲器144中讀出第三數(shù)據(jù)data3,異常情況為當在主機102中執(zhí)行第三操作function<3>時請求從存儲器144中讀出第四數(shù)據(jù)data4。

由于根據(jù)從主機102傳送的讀取請求的第三數(shù)據(jù)data3和第四數(shù)據(jù)data4兩者均存儲在存儲器144的內(nèi)部存儲區(qū)域1441、1442、1443、1444和1445中的第二內(nèi)部存儲區(qū)域1442中,因此在步驟s40中選擇第二內(nèi)部存儲區(qū)域1442。

在步驟s40中選擇第二內(nèi)部存儲區(qū)域1442之后,在步驟s50中從第二內(nèi)部存儲區(qū)域1442中讀出對應于第三數(shù)據(jù)data3的第三元數(shù)據(jù)m3和對應于第四數(shù)據(jù)data4的第四元數(shù)據(jù)m4。本文中,由主機102請求讀取的第三數(shù)據(jù)data3和第四數(shù)據(jù)data4在步驟s50中不被讀取。

在步驟s50中讀取第三元數(shù)據(jù)m3之后,作為第一操作,在步驟s60中確定根據(jù)從主機102傳送的寫入請求通過步驟s30的操作存儲并且包括在第三元數(shù)據(jù)m3內(nèi)的第三數(shù)據(jù)data3的數(shù)據(jù)特征信息與根據(jù)從主機102傳送的讀取請求的第三數(shù)據(jù)data3的數(shù)據(jù)特征信息是否相同。同樣地,在步驟s50中讀取第四元數(shù)據(jù)m4之后,作為第二操作,在步驟s60中確定根據(jù)從主機102傳送的寫入請求通過步驟s30的操作存儲并包括在第四元數(shù)據(jù)m4內(nèi)的第四數(shù)據(jù)data4的數(shù)據(jù)特征信息與根據(jù)從主機102傳送的讀取請求的第四數(shù)據(jù)data4的數(shù)據(jù)特征信息是否相同。

在下文中,描述步驟s60的第一操作。

首先,包括在對應于存儲在存儲器144的第二內(nèi)部存儲區(qū)域1442中的第三數(shù)據(jù)data3的第三元數(shù)據(jù)m3內(nèi)的根據(jù)從主機102傳送的寫入請求的第三數(shù)據(jù)data3的數(shù)據(jù)特征信息表示在主機102中執(zhí)行第三操作function<3>。

同樣,由于當主機102執(zhí)行第三操作function<3>時第三數(shù)據(jù)data3被請求讀取,因此根據(jù)從主機102傳送的讀取請求的第三數(shù)據(jù)data3的數(shù)據(jù)特征信息表示在主機102中執(zhí)行第三操作function<3>。

這表明,根據(jù)從主機102傳送的寫入請求并包括在對應于存儲在存儲器144的第二內(nèi)部存儲區(qū)域1442中的第三數(shù)據(jù)data3的第三元數(shù)據(jù)m3內(nèi)的第三數(shù)據(jù)data3的數(shù)據(jù)特征信息與根據(jù)從主機102傳送的讀取請求的第三數(shù)據(jù)data3的數(shù)據(jù)特征信息相同(步驟s60,是)。因此,在步驟s80中,從步驟s40中選擇的所選擇的第二內(nèi)部存儲區(qū)域1442中讀出根據(jù)從主機102傳送的讀取請求的第三數(shù)據(jù)data3。

在下文中,描述步驟s60的第二操作。

首先,包括在對應于存儲在存儲器144的第二內(nèi)部存儲區(qū)域1442中的第四數(shù)據(jù)data4的第四元數(shù)據(jù)m4內(nèi)的根據(jù)從主機102傳送的寫入請求的第四數(shù)據(jù)data4的數(shù)據(jù)特征信息表示在主機102中執(zhí)行第四操作function<4>。

同樣,由于當主機102執(zhí)行第三操作function<3>時第四數(shù)據(jù)data4被請求讀取,因此根據(jù)從主機102傳送的讀取請求的第四數(shù)據(jù)data4的數(shù)據(jù)特征信息表示在主機102中執(zhí)行第三操作function<3>。

這表明,根據(jù)從主機102傳送的寫入請求并且包括在對應于存儲在存儲器144的第二內(nèi)部存儲區(qū)域1442中的第四數(shù)據(jù)data4的第四元數(shù)據(jù)m4內(nèi)的第四數(shù)據(jù)data4的數(shù)據(jù)特征信息與根據(jù)從主機102傳送的讀取請求的第四數(shù)據(jù)data4的數(shù)據(jù)特征信息不相同(步驟s60,否)。因此,在步驟s70中,不從步驟s40中選擇的所選擇的第二內(nèi)部存儲區(qū)域1442中讀出根據(jù)從主機102傳送的讀取請求的第四數(shù)據(jù)data4,并將數(shù)據(jù)特征不符和讀取失敗信息傳送至主機102。

本文中,在步驟s70中傳送至主機102的數(shù)據(jù)特征不符和讀取失敗信息通知主機102:在主機102中執(zhí)行的第三操作function<3>中出現(xiàn)不可預知的錯誤,并且不能通過第三操作function<3>讀取的第四數(shù)據(jù)data4試圖被讀取。換言之,通過步驟s70的操作,主機102可以被通知:問題已經(jīng)出現(xiàn)在主機102中執(zhí)行的第三操作function<3>的讀取操作中,且主機102可以適當?shù)靥幚碓搯栴}。

根據(jù)本發(fā)明的實施例,當主機請求存儲器系統(tǒng)將數(shù)據(jù)寫入存儲器系統(tǒng)的存儲器中時,將根據(jù)來自主機的寫入請求而待被存儲的數(shù)據(jù)的數(shù)據(jù)特征信息作為元數(shù)據(jù)與寫入數(shù)據(jù)一起被存儲。

當根據(jù)來自主機的寫入請求存儲的數(shù)據(jù)被請求讀取時,可以將根據(jù)讀取請求所存儲的數(shù)據(jù)的數(shù)據(jù)特征信息與包括在元數(shù)據(jù)內(nèi)的根據(jù)寫入請求的存儲數(shù)據(jù)的數(shù)據(jù)特征信息進行比較。通過數(shù)據(jù)特征信息的比較,由此可以檢測錯誤的讀取請求。

雖然已經(jīng)參照特定的實施例描述了本發(fā)明,但對本領(lǐng)域技術(shù)人員顯而易見的是,在不脫離如所附權(quán)利要求書限定的本發(fā)明的精神和范圍的情況下可以做出各種改變和變型。

當前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
宜昌市| 密山市| 准格尔旗| 德惠市| 彭州市| 汝州市| 双江| 阳山县| 横山县| 玛沁县| 安国市| 洱源县| 秦安县| 枣阳市| 潼关县| 内黄县| 莱阳市| 甘洛县| 仁化县| 太白县| 兴和县| 洞口县| 屏山县| 神木县| 黔江区| 政和县| 芜湖市| 湘西| 普陀区| 微博| 洛南县| 和平县| 盐池县| 安福县| 辛集市| 镇江市| 永丰县| 大宁县| 巍山| 鹤峰县| 石楼县|