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

用于獲得和使用非易失性存儲(chǔ)器健康信息的系統(tǒng)和方法

文檔序號(hào):6382850閱讀:176來源:國(guó)知局

專利名稱::用于獲得和使用非易失性存儲(chǔ)器健康信息的系統(tǒng)和方法
技術(shù)領(lǐng)域
:本文檔涉及用于獲得和使用非易失性存儲(chǔ)器健康(health)信息的系統(tǒng)和方法。
背景技術(shù)
:各種類型的非易失性存儲(chǔ)器(“NVM”),諸如閃速存儲(chǔ)器(例如,NAND閃速存儲(chǔ)器和NOR閃速存儲(chǔ)器),可被用于海量(mass)存儲(chǔ)。例如,消費(fèi)性電子產(chǎn)品(例如,便攜式媒體播放器)使用閃速存儲(chǔ)器來存儲(chǔ)數(shù)據(jù),包括音樂、視頻、圖像、以及其它媒體或類型的信肩、O在一些閃速存儲(chǔ)器系統(tǒng)中,主機(jī)系統(tǒng)請(qǐng)求對(duì)邏輯塊地址(LBA)的讀取和編程操作,所述邏輯塊地址被映射或翻譯為閃速存儲(chǔ)器的物理塊地址。該映射允許主機(jī)操作系統(tǒng)以類似于盤驅(qū)動(dòng)器(diskdrive)的方式訪問閃速存儲(chǔ)器。盡管閃速存儲(chǔ)器能夠以隨機(jī)訪問的方式一次被讀取或編程一個(gè)字節(jié)或字,但是它通常一次被擦除一個(gè)塊。以新擦除的塊開始,該塊內(nèi)的任何字節(jié)都可以被編程。一旦一個(gè)字節(jié)已被編程,則直到整個(gè)塊被擦除它通常才能被再次編程。因?yàn)殚W速存儲(chǔ)器具有有限數(shù)量的擦除-編程循環(huán),所以希望使擦除-編程循環(huán)的數(shù)量最小化以延長(zhǎng)閃速存儲(chǔ)器的壽命。由于上述的閃速存儲(chǔ)器的獨(dú)特特性,因此需要能夠有效地獲得和使用閃速存儲(chǔ)器和其它NVM的健康信息的系統(tǒng)、方法和裝置。
發(fā)明內(nèi)容用于獲得和使用非易失性存儲(chǔ)器(“NVM”)健康信息的系統(tǒng)和方法被公開。本發(fā)明的實(shí)施例可在具有主機(jī)和非易失性存儲(chǔ)器封裝件(package)的系統(tǒng)中運(yùn)用。主機(jī)可包括易失性存儲(chǔ)器并運(yùn)行非易失性存儲(chǔ)器功能,諸如維持(maintaining)邏輯至物理映射,對(duì)NVM封裝件發(fā)出編程、讀取或擦除命令,以及執(zhí)行損耗均衡(wearleveling)和垃圾收集(garbagecollection)操作。根據(jù)本發(fā)明實(shí)施例,主機(jī)還可維持健康數(shù)據(jù)庫(kù)。NVM封裝件可換地(commutatively)稱接到主機(jī)并可包括存儲(chǔ)控制器和非易失性存儲(chǔ)器(例如,Nand閃存)。在一些實(shí)施例中,NVM封裝件還可包括糾錯(cuò)碼引擎。健康數(shù)據(jù)庫(kù)可存儲(chǔ)與NVM相關(guān)的信息。即,對(duì)于NVM中的每一物理位置(例如,頁(yè)或塊),在數(shù)據(jù)庫(kù)中存儲(chǔ)對(duì)于該物理位置特定的健康信息。存儲(chǔ)在數(shù)據(jù)庫(kù)中的健康信息可以是地址特定的健康信息,所述地址特定的健康信息指定用于在該特定地址位置處訪問NVM的各種軟件和/或硬件參數(shù)。健康信息例如可包括頁(yè)正確性,閾值電壓,讀取、編程或擦除所需的時(shí)間和/或循環(huán)數(shù)量,使用的糾錯(cuò)碼等。健康信息可由存儲(chǔ)控制器生成,但存儲(chǔ)在由主機(jī)維持的數(shù)據(jù)庫(kù)中。盡管健康信息可被存儲(chǔ)在主機(jī)上,但主機(jī)并不以任何方式解釋、修改或使用健康信息以管理NVM。當(dāng)主機(jī)希望訪問NVM時(shí),它可匯編(assemble)包含訪問命令(例如,讀取或編程命令)、地址、和地址特定的健康信息的命令包,并將該命令包提供給存儲(chǔ)控制器。主機(jī)訪問健康信息數(shù)據(jù)庫(kù)以基于地址檢索(retrieve)地址特定的健康信息,用于包含到命令包中。當(dāng)存儲(chǔ)控制器接收到命令包時(shí),它可提取健康信息,并根據(jù)為NVM中正被訪問的物理位置指定的軟件和/或硬件參數(shù)執(zhí)行訪問請(qǐng)求。命令被執(zhí)行之后,存儲(chǔ)控制器然后可確定是否需要改變一個(gè)或更多個(gè)操作參數(shù),以便執(zhí)行訪問請(qǐng)求。如果需要改變,則存儲(chǔ)控制器可更新健康信息,并將更新后的健康信息和NVM地址傳送給主機(jī)裝置。主機(jī)然后可將更新后的健康信息存儲(chǔ)在數(shù)據(jù)庫(kù)中??紤]到結(jié)合附圖的以下詳細(xì)描述時(shí),本發(fā)明的以上及其它方面、其本質(zhì)和各種特征將變得更為明顯,在附圖中,同樣的附圖標(biāo)記始終指的是同樣的組件,并且其中:圖1是描繪根據(jù)本發(fā)明各種實(shí)施例的示意性系統(tǒng)的示圖,所述示意性系統(tǒng)包括主機(jī)和具有存儲(chǔ)控制器的NVM封裝件;圖2是根據(jù)本發(fā)明各種實(shí)施例的示意性系統(tǒng);圖3是根據(jù)本發(fā)明各種實(shí)施例的示意性數(shù)據(jù)結(jié)構(gòu);圖4是描繪根據(jù)本發(fā)明一些實(shí)施例的用于獲得和使用健康信息的示意性處理的流程圖;以及圖5是根據(jù)本發(fā)明各種實(shí)施例的示意性存儲(chǔ)控制器。具體實(shí)施例方式圖1是描繪系統(tǒng)100的示圖,所述系統(tǒng)100包括NVM封裝件104和主機(jī)102。主機(jī)102可被配置為將健康信息提供給NVM封裝件104,所述NVM封裝件104可包括存儲(chǔ)控制器106、主機(jī)接口110、和具有相應(yīng)的NVM128a-n的存儲(chǔ)器芯片(die)112a_n。例如,如示例系統(tǒng)100中所示,主機(jī)102可給NVM封裝件104提供健康信息,所述NVM封裝件104可使用健康信息來執(zhí)行可改善系統(tǒng)100的性能、可靠性和/或電力使用的存儲(chǔ)器管理功能(例如,損耗均衡和垃圾收集)以及訪問請(qǐng)求(例如,讀取、編程和擦除操作)。NVM封裝件104還可更新健康信息并將其傳輸回主機(jī)102,以存儲(chǔ)在健康信息數(shù)據(jù)庫(kù)中。主機(jī)102可以是各種各樣的主機(jī)裝置和/或系統(tǒng)中的任何種,諸如便攜式媒體播放器、蜂窩電話、口袋尺寸的個(gè)人計(jì)算機(jī)、個(gè)人數(shù)字助理(“PDA”)、臺(tái)式計(jì)算機(jī)、膝上計(jì)算機(jī)、和/或平板(tablet)計(jì)算裝置。NVM封裝件104可包括NVM128a_n(例如,在存儲(chǔ)器芯片112a-n中),并且可以是球柵陣列封裝件或其它適合類型的集成電路(“1C”)封裝件。NVM封裝件104可以是主機(jī)102的一部分和/或與其相分離。例如,主機(jī)102可以是板級(jí)(board-level)裝置,而NVM封裝件104可以是安裝在該板級(jí)裝置上的存儲(chǔ)器子系統(tǒng)。在其它實(shí)施例中,NVM封裝件104可以用有線(例如,SATA)或無(wú)線(例如,Bluetooth)接口被耦接到主機(jī)102。主機(jī)102可包括被配置為與NVM封裝件104交互的主機(jī)控制器114。例如,主機(jī)102可以給NVM封裝件104傳送各種訪問請(qǐng)求,諸如讀取、編程和擦除操作。主機(jī)控制器114可包括被配置為基于固件指令和/或軟件的執(zhí)行來執(zhí)行操作的一個(gè)或更多個(gè)處理器和/或微處理器。額外地和/或替換地,主機(jī)控制器114可包括被配置為執(zhí)行各種操作的基于硬件的組件,諸如專用集成電路(“ASIC”)。主機(jī)控制器114可以根據(jù)主機(jī)102和NVM封裝件104之間共享的通信協(xié)議,將傳送給NVM封裝件104的信息(例如,命令、數(shù)據(jù))格式化。主機(jī)102可包括存儲(chǔ)組件134,所述存儲(chǔ)組件134包括易失性存儲(chǔ)器108。易失性存儲(chǔ)器108可以是各種各樣的易失性存儲(chǔ)器類型中的任何種,諸如高速緩沖存儲(chǔ)器或RAM。主機(jī)102可以使用易失性存儲(chǔ)器108來執(zhí)行存儲(chǔ)器操作和/或臨時(shí)存儲(chǔ)正從NVM封裝件104被讀取的數(shù)據(jù)和/或正被寫入到NVM封裝件104的數(shù)據(jù)。例如,易失性存儲(chǔ)器108可臨時(shí)存儲(chǔ)將要發(fā)送給NVM封裝件104的存儲(chǔ)器操作的隊(duì)列,或者存儲(chǔ)從NVM封裝件104接收到的數(shù)據(jù)。另外,根據(jù)本發(fā)明的實(shí)施例,易失性存儲(chǔ)器108可以存儲(chǔ)健康信息數(shù)據(jù)庫(kù)。主機(jī)控制器114可以訪問健康信息數(shù)據(jù)庫(kù)以檢索地址特定的健康信息,用于包含到發(fā)出給存儲(chǔ)控制器106的命令中。一般需要在主機(jī)102上的易失性存儲(chǔ)器、而不是NVM封裝件104上的易失性存儲(chǔ)器中維持健康信息數(shù)據(jù)庫(kù),因?yàn)樽懔康囊资源鎯?chǔ)器太昂貴以至于不能保持在NVM封裝件104中。主機(jī)102可使用主機(jī)接口110和存儲(chǔ)控制器106經(jīng)由(over)通信信道116與NVM封裝件104通信。通信信道116可以是適合雙向通信的任何總線。通信信道116可以是固定的、可拆卸的或無(wú)線的。例如,通信信道116可以是通用串行總線(USB)、串行高級(jí)技術(shù)(SATA)總線、或者任何其它適合的總線。存儲(chǔ)控制器106可以包括被配置成基于固件指令和/或軟件的執(zhí)行來執(zhí)行操作的一個(gè)或更多個(gè)處理器和/或微處理器120。額外地和/或替換地,存儲(chǔ)控制器106可包括被配置成執(zhí)行不同操作的基于硬件的組件,諸如ASIC。存儲(chǔ)控制器106可以執(zhí)行各種各樣的操作,諸如執(zhí)行由主機(jī)102發(fā)出的命令。主機(jī)控制器114和存儲(chǔ)控制器106可以單獨(dú)地或組合地執(zhí)行各種存儲(chǔ)器管理功能,諸如垃圾收集和損耗均衡。在存儲(chǔ)控制器106被配置為執(zhí)行至少一些存儲(chǔ)器管理功能的實(shí)施中,NVM封裝件104可被稱為“被管理(managed)NVM”(或者對(duì)于NAND閃速存儲(chǔ)器被稱為“被管理NAND”)。這可以與“原始(raw)NVM”(或者對(duì)于NAND閃速存儲(chǔ)器被稱為“原始NAND”)相對(duì)照,在“原始NVM”中,在NVM封裝件104外部的主機(jī)控制器114對(duì)于NVM封裝件104執(zhí)行存儲(chǔ)器管理功能。在一些實(shí)施例中,存儲(chǔ)控制器106可與存儲(chǔ)器芯片112a_n被并入到同一封裝件中。在其它實(shí)施例中,存儲(chǔ)控制器106可以在物理上位于單獨(dú)的封裝件中或者與主機(jī)102位于同一封裝件中。在一些實(shí)施例中,可以省掉存儲(chǔ)控制器106,并且通常由存儲(chǔ)控制器106執(zhí)行的所有存儲(chǔ)器管理功能(例如,垃圾收集和損耗均衡)可以由主機(jī)控制器(例如,主機(jī)控制器114)執(zhí)行。存儲(chǔ)控制器106可包括易失性存儲(chǔ)器122。易失性存儲(chǔ)器122可以是各種各樣的易失性存儲(chǔ)器類型中的任何種,諸如高速緩沖存儲(chǔ)器或RAM。存儲(chǔ)控制器106可以使用易失性存儲(chǔ)器122來執(zhí)行訪問請(qǐng)求和/或臨時(shí)存儲(chǔ)正從存儲(chǔ)器芯片112a-n中的NVM128a_n被讀取的數(shù)據(jù)和/或正被寫入到存儲(chǔ)器芯片112a-n中的NVM128a-n的數(shù)據(jù)。例如,易失性存儲(chǔ)器122可以存儲(chǔ)固件,而存儲(chǔ)控制器106可以使用該固件來執(zhí)行對(duì)NVM封裝件104的操作(例如,讀取/編程操作)。易失性存儲(chǔ)器122還可臨時(shí)存儲(chǔ)與NVM封裝件104中的NVM相關(guān)聯(lián)的健康信息。存儲(chǔ)控制器106可以使用NVM128a-n來持久存儲(chǔ)各種各樣的信息,諸如調(diào)試日志、指令、以及NVM封裝件104用來操作的固件。存儲(chǔ)控制器106可以使用共享的內(nèi)部總線126來訪問NVMl28a_n,所述NVMl28a_n可被用于持久數(shù)據(jù)存儲(chǔ)。盡管在NVM封裝件104中只描繪了一條共享的內(nèi)部總線126,但是NVM封裝件可以包括多于一條的共享內(nèi)部總線。每條內(nèi)部總線可以連接到如關(guān)于存儲(chǔ)器芯片112a-n所示的多個(gè)(例如,2個(gè)、3個(gè)、4個(gè)、8個(gè)、32個(gè)等)存儲(chǔ)器芯片。存儲(chǔ)器芯片112a-n可以以各種各樣的配置被物理地布置,包括層疊配置,并且根據(jù)一些實(shí)施例可為集成電路(“1C”)芯片。NVM128a_n可以是各種各樣的NVM中的任何種,諸如基于浮柵或電荷俘獲技術(shù)的NAND閃速存儲(chǔ)器、NOR閃速存儲(chǔ)器、可擦除可編程只讀存儲(chǔ)器(“EPR0M”)、電可擦除可編程只讀存儲(chǔ)器(“EEPROM”)、鐵電RAM(“FRAM”)、磁阻RAM(“MRAM”)、相變存儲(chǔ)器(“PCM”)、或它們的任何組合。圖2示出電子裝置200的框圖,其能以更多細(xì)節(jié)示出根據(jù)各種實(shí)施例的系統(tǒng)100(圖1)的固件、軟件和/或硬件組件中的一些。電子裝置200可具有上面關(guān)于圖1描述的任何特征和功能性,反之亦然。如示出的那樣,虛線對(duì)層進(jìn)行了劃界。理解的是,對(duì)哪些組件落入分界線內(nèi)的描繪只是示意性的,并且一個(gè)或更多個(gè)組件可以隸屬于不同的層。電子裝置200可包括文件系統(tǒng)210、主機(jī)控制器212、NVM總線控制器216、存儲(chǔ)控制器220、和NVM230。在一些實(shí)施例中,文件系統(tǒng)210和主機(jī)控制器212可以是軟件或固件模塊,而NVM總線控制器216、存儲(chǔ)控制器220和NVM230可以是硬件模塊。相應(yīng)地,在這些實(shí)施例中,主機(jī)控制器212可代表NVM接口218的軟件或固件方面,而NVM總線控制器216可代表NVM接口218的硬件方面。文件系統(tǒng)210可包括任何適合類型的文件系統(tǒng),諸如FileAllocationTable(“FAT”)文件系統(tǒng)或者HierarchicalFileSystemPlus(“HFS+”),并且可以是電子裝置200的操作系統(tǒng)的一部分(例如,圖1的SoC控制電路系統(tǒng)(circuitry)112的一部分)。在一些實(shí)施例中,文件系統(tǒng)210可包括閃存文件系統(tǒng)(flashfilesystem),所述閃存文件系統(tǒng)提供頁(yè)的邏輯到物理的映射。在這些實(shí)施例中,文件系統(tǒng)210可以執(zhí)行以下討論的主機(jī)控制器212的一些或所有功能性,并且因此文件系統(tǒng)210和主機(jī)控制器212可以是或者可以不是分離的模塊。文件系統(tǒng)210可以管理應(yīng)用和操作系統(tǒng)的文件和文件夾結(jié)構(gòu)。文件系統(tǒng)210可以在運(yùn)行于電子裝置200上的應(yīng)用或操作系統(tǒng)的控制下操作,并可在應(yīng)用或操作系統(tǒng)請(qǐng)求從NVM230讀取信息或在NVM230中存儲(chǔ)信息時(shí)給主機(jī)控制器212提供寫入和讀取命令。隨著每個(gè)讀取或?qū)懭朊钜黄?,文件系統(tǒng)210可提供用于指示用戶數(shù)據(jù)應(yīng)當(dāng)從何處被讀取或被寫入到何處的邏輯地址,諸如邏輯頁(yè)地址或者具有頁(yè)偏移(pageoffset)的LBA。文件系統(tǒng)210可給不直接與NVM230兼容的主機(jī)控制器212提供讀取和寫入請(qǐng)求。例如,邏輯地址可以使用基于硬盤驅(qū)動(dòng)器的系統(tǒng)所典型的約定或協(xié)議。不像閃速存儲(chǔ)器,基于硬盤驅(qū)動(dòng)器的系統(tǒng)可以蓋寫存儲(chǔ)位置而不用先執(zhí)行塊擦除。此外,硬盤驅(qū)動(dòng)器可不需要損耗均衡以增加裝置的壽命。因此,NVM接口218可以執(zhí)行存儲(chǔ)器特定的、出售商特定的或它們兩者的任何功能,以便以適于NVM230的方式處理文件系統(tǒng)請(qǐng)求并執(zhí)行其它管理功能。主機(jī)控制器212可包括翻譯層214。在一些實(shí)施例中,翻譯層214可以是或包括閃存翻譯層(“FTL”)。關(guān)于寫入命令,翻譯層214可以將所提供的邏輯地址映射到NVM230上的空閑的、被擦除的物理位置。關(guān)于讀取命令,翻譯層214可以使用所提供的邏輯地址來確定存儲(chǔ)被請(qǐng)求數(shù)據(jù)的物理地址。因?yàn)槊總€(gè)NVM可取決于該NVM的大小或出售商而具有不同的布局,所以該映射操作可以是存儲(chǔ)器和/或出售商特定的。除了邏輯至物理地址映射之外,翻譯層214還可以執(zhí)行任何其它適合的功能。例如,翻譯層214可執(zhí)行可以是閃存翻譯層所典型的任何其它功能,諸如垃圾收集(“GC”)和損耗均衡。例如,翻譯層214可以執(zhí)行垃圾收集,以為了擦除使NVM230的被編程塊空閑。一旦被使得空閑和擦除,存儲(chǔ)位置就可以用來存儲(chǔ)例如新的從文件系統(tǒng)210接收到的用戶數(shù)據(jù)。在一些情況下,GC處理可涉及將有效數(shù)據(jù)從被編程塊復(fù)制到具有被擦除的存儲(chǔ)位置的另一塊,由此使被編程塊中的有效數(shù)據(jù)無(wú)效。一旦被編程塊中的所有存儲(chǔ)位置都已經(jīng)被無(wú)效,翻譯層214就可以指示NVM總線控制器216來對(duì)該被編程塊執(zhí)行擦除操作。如這里所使用的那樣,“有效數(shù)據(jù)”可指響應(yīng)于與一個(gè)或更多個(gè)邏輯地址(例如,LBA)對(duì)應(yīng)的最近寫入請(qǐng)求而已被編程的用戶數(shù)據(jù),并因此可以是對(duì)于所述一個(gè)或更多個(gè)邏輯地址的用戶數(shù)據(jù)的有效版本。主機(jī)控制器212可包括用于存儲(chǔ)地址特定的健康信息的健康數(shù)據(jù)庫(kù)215。健康數(shù)據(jù)庫(kù)215可包括與NVM230內(nèi)的物理位置相對(duì)應(yīng)的信息的查找表。當(dāng)文件系統(tǒng)210向主機(jī)控制器212發(fā)送命令和邏輯地址時(shí),翻譯層214確定NVM230中的物理位置,并且主機(jī)控制器212使用該物理位置來從健康數(shù)據(jù)庫(kù)215獲得地址特定的健康信息。在一些實(shí)施例中,主機(jī)控制器212將從健康數(shù)據(jù)庫(kù)215獲得的健康信息包含到將被提供給存儲(chǔ)控制器220的命令包中。在該實(shí)施例中,主機(jī)控制器212用作數(shù)據(jù)檢索代理(agent),并不使用健康信息來作出任何NVM管理決定。主機(jī)控制器212也可通過用從存儲(chǔ)控制器220接收到的健康信息更新健康數(shù)據(jù)庫(kù)215來用作數(shù)據(jù)填充(populating)代理。存儲(chǔ)控制器220生成存儲(chǔ)在健康數(shù)據(jù)庫(kù)215中的健康信息。結(jié)果,只有存儲(chǔ)控制器220能夠解釋和使用健康信息。雖然主機(jī)控制器212可以在數(shù)據(jù)庫(kù)215中存儲(chǔ)健康信息,但是它不能用來作出NVM管理決定。存儲(chǔ)在健康數(shù)據(jù)庫(kù)(其可駐留在圖1的易失性存儲(chǔ)器108中)中的信息可以是這樣的信息:所述信息使得NVM接口218下游的軟件和/或硬件組件或者主機(jī)接口110能夠?qū)τ贜VM230的任何特定物理位置更有效地處理命令請(qǐng)求。例如,健康信息可以指定那個(gè)糾錯(cuò)碼應(yīng)該被駐留在例如NVM封裝件104上的ECC引擎實(shí)施。作為另一個(gè)例子,健康信息可以對(duì)存儲(chǔ)控制器硬件設(shè)置進(jìn)行存儲(chǔ),諸如NVM內(nèi)的特定物理位置所需的編程電壓、編程/驗(yàn)證循環(huán)的數(shù)量、和編程分辨率。健康信息可包括指示NVM的一部分的劣化和/或故障的可能性的任何數(shù)據(jù)。一般而言,健康信息可以包含關(guān)于NVM的可被用來對(duì)其有效和可靠的使用作出決定的任何數(shù)據(jù)。通過存儲(chǔ)關(guān)鍵性能和校準(zhǔn)參數(shù),存儲(chǔ)控制器106或220可以改變其執(zhí)行命令請(qǐng)求的方式,以避免不必要的延遲(latency)和數(shù)據(jù)污損(corruption)。在一個(gè)具體例子中,健康信息可被用于預(yù)補(bǔ)償由主機(jī)發(fā)起的讀取操作。主機(jī)可以發(fā)起對(duì)NVM的特定部分(例如,塊)的讀取操作。存儲(chǔ)控制器可以接收該讀取操作并檢查與NVM的物理地址(例如,塊或頁(yè))相關(guān)聯(lián)的健康信息。健康信息可指示塊被讀取的最近(last)時(shí)間以及需要多于一個(gè)讀取循環(huán)的讀取操作。例如,讀取操作可能已花費(fèi)八個(gè)讀取循環(huán),其中每個(gè)讀取循環(huán)采用漸進(jìn)(progressively)變化的讀取條件(例如,漸進(jìn)偏移的閾值電壓值)?;诮】敌畔?,存儲(chǔ)控制器可以決定使用最近的已知的成功讀取條件來對(duì)物理位置執(zhí)行所請(qǐng)求的讀取操作。如果讀取操作成功,那么存儲(chǔ)控制器可以將關(guān)于該物理位置(例如,塊)的健康信息不改變地返回給主機(jī)。然而,如果讀取操作需要額外的讀取循環(huán),那么存儲(chǔ)控制器可以更新關(guān)于該物理位置(例如,塊)的健康信息,并將更新后的健康信息返回給主機(jī)。在另一例子中,當(dāng)主機(jī)發(fā)起編程操作時(shí),健康信息可被用于更有效地對(duì)NVM的一部分編程。NVM(例如,NAND閃速存儲(chǔ)器)趨于隨著時(shí)間、使用(例如,讀取/編程循環(huán)的數(shù)量)和操作溫度而劣化。例如,該劣化可自身表現(xiàn)為存儲(chǔ)單元的閾值電壓的偏移。因此,健康信息可以保持對(duì)NVM的各部分的這些關(guān)鍵參數(shù)的跟蹤。當(dāng)存儲(chǔ)控制器106從主機(jī)102接收到用于給NVM128a-n的特定部分編程數(shù)據(jù)的請(qǐng)求時(shí),它可參考與存儲(chǔ)器的該部分相關(guān)聯(lián)的健康信息,并確定被編程單元可能劣化多少以及可能多快劣化。例如,如果主機(jī)102發(fā)起對(duì)可能很快劣化(例如,如健康信息中的時(shí)間、溫度和循環(huán)數(shù)據(jù)所指示)的存儲(chǔ)器部分的編程操作,那么存儲(chǔ)控制器106可決定改變編程電壓以補(bǔ)償預(yù)期的閾值電壓漂移。根據(jù)一些實(shí)施例可被獲得和使用的健康信息的額外例子可包括反映NVM的一部分中的壞(bad)比特?cái)?shù)量的比特錯(cuò)誤率數(shù)據(jù)、DLL定時(shí)設(shè)置、和/或編程或讀取數(shù)據(jù)所需的時(shí)間或循環(huán)數(shù)量。健康信息還可在頁(yè)正確性方面被編譯,其可指示存儲(chǔ)裝置的用于糾正檢測(cè)到的錯(cuò)誤的能力。例如,糾正錯(cuò)誤所需的糾錯(cuò)碼(“ECC”)循環(huán)的數(shù)量或所使用的ECC技術(shù)(例如,高比特翻轉(zhuǎn)江1丨口)£0:、低比特翻轉(zhuǎn)£0:、軟件£0:等)可以指示NVM的一部分的健康。主機(jī)控制器212可與NVM總線控制器216接口(interface)以完成NVM訪問命令(例如,編程、讀取和擦除命令)。NVM總線控制器216可用作對(duì)存儲(chǔ)控制器220的硬件接口,并可使用總線協(xié)議、數(shù)據(jù)率和其它規(guī)范與存儲(chǔ)控制器220通信。NVM接口218可以基于存儲(chǔ)管理數(shù)據(jù)來管理NVM230,這里所述存儲(chǔ)管理數(shù)據(jù)有時(shí)被稱為“元數(shù)據(jù)(metadata)”。元數(shù)據(jù)可由主機(jī)控制器212生成,或者可由在主機(jī)控制器212的控制下操作的模塊生成。例如,元數(shù)據(jù)可以包括用于以下的任何信息:管理邏輯地址和物理地址之間的映射、壞塊管理、損耗均衡、用于檢測(cè)或糾正數(shù)據(jù)錯(cuò)誤的糾錯(cuò)碼(“ECC”)數(shù)據(jù)、或者它們的任何組合。元數(shù)據(jù)可包括與用戶數(shù)據(jù)一起由文件系統(tǒng)210提供的數(shù)據(jù),諸如邏輯地址。因此,一般而言,“元數(shù)據(jù)”可指關(guān)于或涉及用戶數(shù)據(jù)或者一般被用于管理非易失性存儲(chǔ)器的操作和存儲(chǔ)位置的任何信息。在一些實(shí)施例中,元數(shù)據(jù)和健康信息是互斥的。NVM接口218可配置為在NVM230中存儲(chǔ)元數(shù)據(jù)。在一些實(shí)施例中,NVM接口218可將與用戶數(shù)據(jù)相關(guān)聯(lián)的元數(shù)據(jù)存儲(chǔ)在存儲(chǔ)該用戶數(shù)據(jù)的相同存儲(chǔ)位置(例如,頁(yè))處。例如,NVM接口218可以在NVM230的一個(gè)或更多個(gè)存儲(chǔ)位置處存儲(chǔ)用戶數(shù)據(jù)、相關(guān)聯(lián)的邏輯地址、和用于該用戶數(shù)據(jù)的ECC數(shù)據(jù)。NVM接口218還可在相同存儲(chǔ)位置中存儲(chǔ)關(guān)于該用戶數(shù)據(jù)的其它類型的元數(shù)據(jù)。NVM接口218還可在NVM230中存儲(chǔ)健康信息。NVM接口218可以周期性地將健康數(shù)據(jù)庫(kù)215的內(nèi)容存儲(chǔ)在NVM230中,或者其可在掉電(powerdown)事件期間(例如,裝置被關(guān)斷時(shí))存儲(chǔ)它。如果健康信息被存儲(chǔ)在NVM230中,那么它可以在上電(powerup)期間被檢索以填充健康數(shù)據(jù)庫(kù)215。NVM接口218可以存儲(chǔ)邏輯地址,以使得在NVM230的上電時(shí)或在NVM230的操作期間電子裝置200可以確定什么數(shù)據(jù)駐留在該位置處。特別地,因?yàn)槲募到y(tǒng)210可根據(jù)其邏輯地址而不是其物理地址來參考用戶數(shù)據(jù),所以NVM接口218可將用戶數(shù)據(jù)和邏輯地址存儲(chǔ)在一起以維持它們的關(guān)聯(lián)。這樣,即使維持物理到邏輯映射的NVM230中的索引表變得過時(shí),NVM接口218也仍然可在例如電子裝置200的上電或重啟時(shí)確定適合的映射。圖3是命令包300的示意性示圖,所述命令包300可以在主機(jī)(例如,圖1的主機(jī)102)裝置和存儲(chǔ)控制器(例如,圖1的存儲(chǔ)控制器106)之間被傳輸。命令包300可包括命令訪問請(qǐng)求331、地址333、健康信息335、數(shù)據(jù)337和元數(shù)據(jù)339。命令訪問請(qǐng)求331可以是由主機(jī)裝置提供給存儲(chǔ)控制器的任何適合的指令,例如,諸如讀取、編程或擦除請(qǐng)求。地址333可以是待訪問的NVM內(nèi)的物理地址。例如,地址可以由翻譯層(例如,翻譯層214)導(dǎo)出。命令包還可包括健康信息335。健康信息335可與地址333相關(guān)聯(lián),并因此這里可被稱為地址特定的健康信息。地址特定的健康信息可由主機(jī)控制器從健康數(shù)據(jù)庫(kù)(例如,健康數(shù)據(jù)庫(kù)215)檢索到,所述主機(jī)控制器將它包含在命令包300中。當(dāng)存儲(chǔ)控制器接收到命令包300時(shí),它可提取健康信息335,對(duì)其進(jìn)行處理,并相應(yīng)地執(zhí)行命令訪問請(qǐng)求331。根據(jù)一些實(shí)施例,健康信息335可包括地址特定的NVM健康指標(biāo)(indicator),諸如頁(yè)正確性,閾值電壓,讀取、編程或擦除NVM的該部分所需的時(shí)間和/或循環(huán)數(shù)量。在其它實(shí)施例中,健康信息335可以是健康等級(jí),所述健康等級(jí)可以是從各個(gè)(individual)NVM健康指標(biāo)計(jì)算出的NVM的一般化健康指示。健康信息335對(duì)存儲(chǔ)控制器220可以是特定的,并因此可以僅由該存儲(chǔ)控制器解釋和使用。因此,不管哪個(gè)制造商制造存儲(chǔ)控制器和NVM,它都可以接收它可處理和使用的命令包300中的健康信息。并且,主機(jī)控制器對(duì)健康信息的內(nèi)容是完全不可知的(agnostic)。數(shù)據(jù)結(jié)構(gòu)330還可包括數(shù)據(jù)337和元數(shù)據(jù)339。例如,當(dāng)訪問請(qǐng)求是編程請(qǐng)求時(shí),數(shù)據(jù)337可以是正被編程到NVM的數(shù)據(jù)。數(shù)據(jù)337可以是任何適合類型的數(shù)據(jù)。在主機(jī)裝置為媒體播放器的實(shí)施例中,數(shù)據(jù)337可以代表一個(gè)或更多個(gè)媒體文件(例如,歌曲、視頻、圖像、電子書等)。元數(shù)據(jù)339可以包括用于以下的任何信息:管理邏輯地址和物理地址之間的映射、壞塊管理、損耗均衡、用于檢測(cè)或糾正數(shù)據(jù)錯(cuò)誤的糾錯(cuò)碼(“ECC”)數(shù)據(jù)、或者它們的任何組合。在示例性的命令編程請(qǐng)求中,存儲(chǔ)控制器可在第一總線循環(huán)中經(jīng)由通信信道(例如,圖1的通信信道116)從主機(jī)裝置接收編程命令包,并將其存儲(chǔ)在命令寄存器中(例如,易失性存儲(chǔ)器122中)。然后可以使用一個(gè)或更多個(gè)總線循環(huán)以將地址333輸入到該易失性存儲(chǔ)器中的地址寄存器中。接下來,數(shù)據(jù)337和元數(shù)據(jù)339可被加載到頁(yè)緩沖器中,并然后在存儲(chǔ)于該地址寄存器中的地址處被編程到NVM中。在示例性的命令讀取請(qǐng)求中,存儲(chǔ)控制器可在第一總線循環(huán)中經(jīng)由通信信道從主機(jī)裝置接收命令讀取包,并將其存儲(chǔ)在命令寄存器中??墒褂靡粋€(gè)或更多個(gè)總線循環(huán)以將地址333輸入到地址寄存器中。接下來,被存儲(chǔ)在NVM中地址333處的數(shù)據(jù)可被傳輸?shù)巾?yè)緩沖器,并在總線準(zhǔn)備好時(shí)被傳輸?shù)街鳈C(jī)。圖4是根據(jù)本發(fā)明實(shí)施例的系統(tǒng)如何使用健康信息的步驟的示意性流程圖。系統(tǒng)除了別的以外可包括主機(jī)裝置(例如,主機(jī)102)、存儲(chǔ)控制器(存儲(chǔ)控制器106)和NVM(例如,NVMl28)。在步驟410處,在至少一個(gè)存儲(chǔ)組件中維持用于NVM的健康信息數(shù)據(jù)庫(kù)。該至少一個(gè)存儲(chǔ)組件可以是與主機(jī)裝置相關(guān)聯(lián)的易失性存儲(chǔ)器。健康信息數(shù)據(jù)庫(kù)存儲(chǔ)物理地址特定的健康信息。在步驟420處,命令被提供給存儲(chǔ)控制器,并且每個(gè)命令包括命令訪問請(qǐng)求、地址、和地址特定的健康信息。主機(jī)裝置可以通過從翻譯層(例如,翻譯層214)獲得物理地址并使用該物理地址以從健康信息數(shù)據(jù)庫(kù)檢索地址特定的健康信息來對(duì)命令進(jìn)行打包。由主機(jī)組織的命令包可類似于上面關(guān)于圖3討論的命令包。在步驟430處,存儲(chǔ)控制器可從命令提取地址特定的健康信息。在步驟440處,存儲(chǔ)控制器可根據(jù)地址特定的健康信息執(zhí)行訪問請(qǐng)求。例如,存儲(chǔ)控制器在針對(duì)NVM的物理地址執(zhí)行命令時(shí),考慮地址特定的健康信息中存在的任何硬件和/或軟件參數(shù)。如果編程命令正被執(zhí)行,那么健康信息可對(duì)于給定位置指定應(yīng)如何精細(xì)地調(diào)整編程或者指定編程時(shí)間、或最終編程電壓電平應(yīng)當(dāng)是什么。使用該信息,控制器可以以最適于其預(yù)想位置的方式對(duì)數(shù)據(jù)進(jìn)行編程。在步驟450處,確定是否根據(jù)地址特定的健康信息執(zhí)行了訪問請(qǐng)求。如果根據(jù)地址特定的健康信息執(zhí)行了訪問請(qǐng)求,則處理在步驟480處結(jié)束。如果沒有根據(jù)地址特定的健康信息執(zhí)行訪問請(qǐng)求,則處理進(jìn)行到步驟460。例如,如果需要與包含于地址特定的健康信息中不同的軟件和/或硬件參數(shù)來執(zhí)行訪問請(qǐng)求,則處理可進(jìn)行到步驟460。例如,存儲(chǔ)控制器可以將所用的實(shí)際參數(shù)與健康信息建議應(yīng)該是的參數(shù)進(jìn)行比較。在步驟460處,存儲(chǔ)控制器可通過將改變的參數(shù)打包到包中來更新健康信息并將其提供給主機(jī)裝置。該包可包括地址和更新后的健康信息。在步驟470處,主機(jī)裝置可使用從存儲(chǔ)控制器接收到的改變的參數(shù)來更新健康信息數(shù)據(jù)庫(kù)中的健康信息。要理解的是,圖4中所示的步驟只是示意性的且可以修改或省略現(xiàn)有的步驟,可以添加額外的步驟,并且可以改變某些步驟的順序。圖5是根據(jù)本發(fā)明各種實(shí)施例的示意性的存儲(chǔ)控制器。該存儲(chǔ)控制器500與非易失性存儲(chǔ)器(“NVM”)通信,并包括:接收單元510,用于從主機(jī)裝置接收命令,該命令包括訪問請(qǐng)求、地址、以及與該地址相關(guān)聯(lián)的地址特定的健康信息;處理單元520,用于處理地址特定的健康信息以獲得至少一個(gè)NVM操作參數(shù);和執(zhí)行單元530,用于根據(jù)該至少一個(gè)NVM操作參數(shù)執(zhí)行訪問請(qǐng)求??蛇x地,存儲(chǔ)控制器500還包括:確定單元540,用于確定該至少一個(gè)操作參數(shù)是否需要被改變以便執(zhí)行訪問請(qǐng)求;更新單元550,用于如果確定該至少一個(gè)操作參數(shù)中的一個(gè)需要被改變以便執(zhí)行訪問請(qǐng)求,則更新健康信息以包含該至少一個(gè)操作參數(shù)的改變;和傳送單元560,用于將更新后的健康信息和該地址傳送給主機(jī)裝置??蛇x地,該至少一個(gè)NVM操作參數(shù)包括糾錯(cuò)碼(“ECC”)參數(shù)。可選地,該至少一個(gè)NVM操作參數(shù)包括讀取參數(shù)??蛇x地,該至少一個(gè)NVM操作參數(shù)包括編程參數(shù)??蛇x地,訪問請(qǐng)求為讀取請(qǐng)求或編程請(qǐng)求。要理解的是,存儲(chǔ)控制器500可以由軟件組件或硬件組件來實(shí)施。本領(lǐng)域技術(shù)人員可以對(duì)圖5中的單元進(jìn)行組合、分離、子組合。所有這樣的組合、分離和子組合均落在本發(fā)明的范圍內(nèi)。雖然已經(jīng)描述了用于獲得和使用非易失性存儲(chǔ)器健康信息的系統(tǒng)和方法,但是要理解的是,在其中可以作出很多改變而不背離本發(fā)明的精神和范圍。本領(lǐng)域普通技術(shù)人員所認(rèn)為的對(duì)所要求保護(hù)的主題的非實(shí)質(zhì)性改變,未知的或以后設(shè)計(jì)的,都被明確地預(yù)計(jì)作為等價(jià)地在權(quán)利要求的范圍內(nèi)。因此,本領(lǐng)域普通技術(shù)人員現(xiàn)在或以后所知的明顯替換被限定在所定義的要素的范圍內(nèi)。出于示意而不是限制的目的給出本發(fā)明的所述實(shí)施例。權(quán)利要求1.一種系統(tǒng),包括非易失性存儲(chǔ)器(“NVM”);存儲(chǔ)控制器,所述存儲(chǔ)控制器經(jīng)由第一總線在通信上被耦接到所述NVM;以及主機(jī)裝置,所述主機(jī)裝置具有至少一個(gè)存儲(chǔ)組件,其中所述主機(jī)裝置經(jīng)由第二總線在通信上被耦接到所述存儲(chǔ)控制器,以及其中所述主機(jī)裝置操作用于:在所述至少一個(gè)存儲(chǔ)組件中維持用于所述NVM的健康信息數(shù)據(jù)庫(kù),所述健康信息數(shù)據(jù)庫(kù)存儲(chǔ)地址特定的健康信息;以及經(jīng)由所述第二總線將命令提供給所述存儲(chǔ)控制器,每個(gè)命令包括訪問請(qǐng)求、地址和地址特定的健康信息,其中所述存儲(chǔ)控制器操作用于:從所述命令提取所述地址特定的健康信息;以及根據(jù)所述地址特定的健康信息來執(zhí)行所述訪問請(qǐng)求。2.按權(quán)利要求1所述的系統(tǒng),其中所述非易失性存儲(chǔ)器包括NAND閃速存儲(chǔ)器。3.按權(quán)利要求1所述的系統(tǒng),其中所述存儲(chǔ)控制器還操作用于:更新所述地址特定的健康信息;以及將更新后的地址特定的健康信息提供給所述主機(jī)裝置。4.按權(quán)利要求3所述的系統(tǒng),其中所述主機(jī)裝置還操作用于在所述健康信息數(shù)據(jù)庫(kù)中存儲(chǔ)所述更新后的地址特定的健康信息。5.按權(quán)利要求1所述的系統(tǒng),其中所述主機(jī)裝置獨(dú)立于存儲(chǔ)在所述健康信息數(shù)據(jù)庫(kù)中的任何地址特定的健康信息而操作。6.按權(quán)利要求1所述的系統(tǒng),其中所述主機(jī)裝置不獨(dú)立地修改所述健康信息數(shù)據(jù)庫(kù)中的任何地址特定的健康信息。7.按權(quán)利要求1所述的系統(tǒng),其中所述地址特定的健康信息包括糾錯(cuò)參數(shù)、編程參數(shù)、讀取參數(shù)、或它們的任何組合。8.按權(quán)利要求1所述的系統(tǒng),其中所述主機(jī)裝置還操作用于:從文件系統(tǒng)接收文件系統(tǒng)命令;從所述文件系統(tǒng)命令確定要訪問的物理地址;訪問所述健康信息數(shù)據(jù)庫(kù)以檢索用于所述物理地址的地址特定的健康信息;以及將檢索到的地址特定的健康信息和所述物理地址并入到被提供給NVM控制器的命令中。9.一種方法,所述方法由與非易失性存儲(chǔ)器(“NVM”)通信的存儲(chǔ)控制器實(shí)施,所述方法包括:從主機(jī)裝置接收命令,所述命令包括:訪問請(qǐng)求;地址;以及與所述地址相關(guān)聯(lián)的地址特定的健康信息;處理所述地址特定的健康信息以獲得至少一個(gè)NVM操作參數(shù);以及根據(jù)所述至少一個(gè)NVM操作參數(shù)來執(zhí)行所述訪問請(qǐng)求。10.按權(quán)利要求9所述的方法,還包括:確定所述至少一個(gè)操作參數(shù)是否需要改變以便執(zhí)行所述訪問請(qǐng)求;如果確定所述至少一個(gè)操作參數(shù)中的一個(gè)需要改變以便執(zhí)行所述訪問請(qǐng)求,則更新所述健康信息以包含所述至少一個(gè)操作參數(shù)的改變;以及將更新后的健康信息和所述地址傳送到所述主機(jī)裝置。11.按權(quán)利要求9所述的方法,其中所述至少一個(gè)NVM操作參數(shù)包括糾錯(cuò)碼(“ECC”)參數(shù)。12.按權(quán)利要求9所述的方法,其中所述至少一個(gè)NVM操作參數(shù)包括讀取參數(shù)。13.按權(quán)利要求9所述的方法,其中所述至少一個(gè)NVM操作參數(shù)包括編程參數(shù)。14.按權(quán)利要求9所述的方法,其中所述訪問請(qǐng)求為讀取請(qǐng)求或編程請(qǐng)求。15.一種非易失性存儲(chǔ)器封裝件,包括:用于與主機(jī)通信的接口;非易失性存儲(chǔ)器(“NVM”);以及控制器,所述控制器被耦接到所述接口和所述NVM,所述控制器操作用于:從所述接口接收命令,所述命令包括訪問請(qǐng)求、地址和健康信息;處理所述健康信息以獲得至少一個(gè)NVM操作參數(shù);以及根據(jù)所述至少一個(gè)NVM操作參數(shù)來執(zhí)行所述訪問請(qǐng)求。16.按權(quán)利要求15所述的NVM封裝件,其中所述控制器還操作用于:確定所述至少一個(gè)操作參數(shù)是否需要改變以便執(zhí)行所述訪問請(qǐng)求;如果確定所述至少一個(gè)操作參數(shù)中的一個(gè)需要改變以便執(zhí)行所述訪問請(qǐng)求,則更新所述健康信息以包含所述至少一個(gè)操作參數(shù)的改變;以及將更新后的健康信息和所述地址傳送到所述接口。17.按權(quán)利要求15所述的NVM封裝件,其中所述至少一個(gè)NVM操作參數(shù)包括糾錯(cuò)碼(“ECC”)參數(shù)。18.按權(quán)利要求15所述的NVM封裝件,其中所述至少一個(gè)NVM操作參數(shù)包括讀取參數(shù)。19.按權(quán)利要求15所述的NVM封裝件,其中所述至少一個(gè)NVM操作參數(shù)包括編程參數(shù)。20.按權(quán)利要求17所述的NVM封裝件,還包括被耦接到所述存儲(chǔ)控制器的糾錯(cuò)碼(“ECC”)引擎,其中所述存儲(chǔ)控制器指示所述ECC引擎使用所述ECC參數(shù)。21.一種與非易失性存儲(chǔ)器(“NVM”)通信的存儲(chǔ)控制器,包括:接收單元,用于從主機(jī)裝置接收命令,所述命令包括:訪問請(qǐng)求;地址;以及與所述地址相關(guān)聯(lián)的地址特定的健康信息;處理單元,用于處理所述地址特定的健康信息以獲得至少一個(gè)NVM操作參數(shù);以及執(zhí)行單元,用于根據(jù)所述至少一個(gè)NVM操作參數(shù)來執(zhí)行所述訪問請(qǐng)求。22.按權(quán)利要求21所述的存儲(chǔ)控制器,還包括:確定單元,用于確定所述至少一個(gè)操作參數(shù)是否需要改變以便執(zhí)行所述訪問請(qǐng)求;更新單元,用于如果確定所述至少一個(gè)操作參數(shù)中的一個(gè)需要改變以便執(zhí)行所述訪問請(qǐng)求,則更新所述健康信息以包含所述至少一個(gè)操作參數(shù)的改變;以及傳送單元,用于將更新后的健康信息和所述地址傳送到所述主機(jī)裝置。23.按權(quán)利要求21所述的存儲(chǔ)控制器,其中所述至少一個(gè)NVM操作參數(shù)包括糾錯(cuò)碼(“ECC”)參數(shù)。24.按權(quán)利要求21所述的存儲(chǔ)控制器,其中所述至少一個(gè)NVM操作參數(shù)包括讀取參數(shù)。25.按權(quán)利要求21所述的存儲(chǔ)控制器,其中所述至少一個(gè)NVM操作參數(shù)包括編程參數(shù)。26.按權(quán)利要求21所述的存儲(chǔ)控制器,其中所述訪問請(qǐng)求為讀取請(qǐng)求或編程請(qǐng)求。全文摘要用于獲得和使用非易失性存儲(chǔ)器(“NVM”)健康信息的系統(tǒng)和方法被提供。健康信息可包括與NVM裝置的各部分的性能和可靠性相關(guān)聯(lián)的各種各樣的信息,諸如NVM的一部分中檢測(cè)到的錯(cuò)誤數(shù)量或者從非易失性存儲(chǔ)器的一部分讀取或?qū)Ψ且资源鎯?chǔ)器的一部分編程所需的時(shí)間量。在操作期間,地址特定的健康信息可被動(dòng)地存儲(chǔ)在主機(jī)裝置上,并作為命令的一部分被提供給存儲(chǔ)控制器。存儲(chǔ)控制器可從命令提取健康信息,并使用該信息來執(zhí)行訪問請(qǐng)求。在訪問請(qǐng)求被完成之后,存儲(chǔ)控制器可以更新健康信息,并將該信息傳送回主機(jī)裝置。文檔編號(hào)G06F12/02GK103092764SQ20121050425公開日2013年5月8日申請(qǐng)日期2012年9月28日優(yōu)先權(quán)日2011年10月31日發(fā)明者N·瑟弗,A·費(fèi),N·J·瓦卡拉特申請(qǐng)人:蘋果公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
广德县| 刚察县| 义马市| 报价| 濮阳市| 西和县| 赣榆县| 朔州市| 舟山市| 兰溪市| 吴江市| 包头市| 安康市| 永济市| 龙山县| 东山县| 濉溪县| 三原县| 乌苏市| 新竹市| 墨脱县| 交城县| 中阳县| 万山特区| 竹北市| 四会市| 奈曼旗| 许昌县| 麻江县| 怀柔区| 蒙城县| 新沂市| 武陟县| 湾仔区| 呼图壁县| 布尔津县| 龙井市| 什邡市| 久治县| 和静县| 玛多县|