專利名稱:從主機(jī)引導(dǎo)存儲(chǔ)設(shè)備的制作方法
技術(shù)領(lǐng)域:
本文涉及從主機(jī)引導(dǎo)存儲(chǔ)設(shè)備,諸如帶有閃存的設(shè)備。
背景技術(shù):
各種類型的非易失性存儲(chǔ)器(NVM),諸如閃存存儲(chǔ)(例如,NAND閃存、NOR閃存),可以用于大容量存儲(chǔ)。例如,消費(fèi)電子產(chǎn)品(例如,便攜式媒體播放器)使用閃存來存儲(chǔ)數(shù)據(jù),包括音樂、視頻、圖像和其他的媒體或類型的信息。存儲(chǔ)設(shè)備已被配置用于從本地存儲(chǔ)在設(shè)備上的信息引導(dǎo)。例如,包括存儲(chǔ)控制器(帶有ー個(gè)或多個(gè)處理器/微處理器)的存儲(chǔ)設(shè)備可以使用存儲(chǔ)于存儲(chǔ)設(shè)備的NW中的固件引導(dǎo)。在另ー個(gè)例子中,“原始”(“raw”)存儲(chǔ)設(shè)備(不包括存儲(chǔ)控制器的存儲(chǔ)設(shè)備)可以使用存儲(chǔ)于存儲(chǔ)設(shè)備的NVM中的調(diào)節(jié)值(trim value)引導(dǎo)。調(diào)節(jié)值可以被加載到原始存儲(chǔ)設(shè)備的寄存器中,并可以由原始存儲(chǔ)設(shè)備上的電路使用來控制原始存儲(chǔ)設(shè)備的各種操作,諸如定時(shí)、脈沖計(jì)數(shù)和/或施加電壓電平。
發(fā)明內(nèi)容
本文一般性地描述了從主機(jī)設(shè)備引導(dǎo)存儲(chǔ)設(shè)備的相關(guān)技木。主機(jī)設(shè)備可以存儲(chǔ)用于ー個(gè)或者多個(gè)存儲(chǔ)設(shè)備的引導(dǎo)信息(例如,固件、調(diào)節(jié)值),并且可以通過在所述主機(jī)和所述存儲(chǔ)設(shè)備之間的ー個(gè)或者多個(gè)通信通道(例如,總線)提供這樣的引導(dǎo)信息給所述存儲(chǔ)設(shè)備。響應(yīng)于指示或者與指示一起,引導(dǎo)信息可以由主機(jī)設(shè)備提供給存儲(chǔ)設(shè)備來引導(dǎo)所述存儲(chǔ)設(shè)備。例如,主機(jī)設(shè)備可以提供引導(dǎo)命令給存儲(chǔ)設(shè)備,并且可以響應(yīng)于來自所述存儲(chǔ)設(shè)備的指示所述存儲(chǔ)設(shè)備準(zhǔn)備好接收所述引導(dǎo)信息的信號(hào),隨后提供引導(dǎo)信息給所他述存儲(chǔ)設(shè)備。在另ー個(gè)例子中,關(guān)閉電源的存儲(chǔ)設(shè)備可以接收提示所述存儲(chǔ)設(shè)備開啟電源并引導(dǎo)的信號(hào)。響應(yīng)于這樣的指示,所述存偏設(shè)備可以從所述主機(jī)設(shè)備請(qǐng)求并接收弓I導(dǎo)信息。在一個(gè)實(shí)施方式中,ー種方法包括在存儲(chǔ)設(shè)備接收用于引導(dǎo)所述存儲(chǔ)設(shè)備的指令,其中所述存儲(chǔ)設(shè)備包括所述存儲(chǔ)設(shè)備的控制器可訪問的非易失性存儲(chǔ)器;以及,響應(yīng)于接收用于引導(dǎo)所述存儲(chǔ)設(shè)備的所述指令,通過所述存儲(chǔ)設(shè)備獲取來自主機(jī)設(shè)備的固件,其中所述主機(jī)設(shè)備與所述存儲(chǔ)設(shè)備分開并與所述存儲(chǔ)設(shè)備通信耦合。所述方法還可以包括使用來自所述主機(jī)設(shè)備的所述固件引導(dǎo)所述存儲(chǔ)設(shè)備,其中所述存儲(chǔ)設(shè)備與所述主機(jī)分開引導(dǎo),并且所述主機(jī)設(shè)備使用存儲(chǔ)于所述非易失性存儲(chǔ)器并且通過與所述存儲(chǔ)設(shè)備的存儲(chǔ)控制器的通信獲得的數(shù)據(jù)或者指令執(zhí)行操作。在另ー個(gè)實(shí)施方式中,ー種方法包括由主機(jī)設(shè)備提供引導(dǎo)命令給存儲(chǔ)設(shè)備,其指示所述存斷設(shè)備使用固件從所述主機(jī)設(shè)備引導(dǎo),其中所述主機(jī)設(shè)備與所述存儲(chǔ)設(shè)備分開并與所述存儲(chǔ)設(shè)備通信耦合,并且所述存儲(chǔ)設(shè)備包括非易失性存儲(chǔ)器。所述方法還包括在主機(jī)設(shè)備接收存儲(chǔ)設(shè)備準(zhǔn)備好接收來自所述主機(jī)設(shè)備固件的指示;以及,響應(yīng)于接收所述指示,所述主機(jī)設(shè)備傳輸所述固件到所述存儲(chǔ)設(shè)備,其中到所述存儲(chǔ)設(shè)備的所述固件的傳輸使得所述存儲(chǔ)設(shè)備使用所述固件引導(dǎo),其中所述存儲(chǔ)設(shè)備與所述主機(jī)設(shè)備分開引導(dǎo)。
在另ー個(gè)實(shí)施方式中,ー種存儲(chǔ)設(shè)備包括非易失性存儲(chǔ)器,適合于將所述存儲(chǔ)設(shè)備通信耦合到主機(jī)設(shè)備的主機(jī)接ロ,以及存儲(chǔ)控制器,被配置為執(zhí)行在所述非易失性存儲(chǔ)器上的存儲(chǔ)操作并且適用于通過所述主機(jī)接ロ與所述主機(jī)設(shè)備通信。所述存儲(chǔ)控制器還可以被配置通過所述主機(jī)接ロ接收用于從所述主機(jī)設(shè)備引導(dǎo)所述存儲(chǔ)設(shè)備的指令;響應(yīng)于接收所述指令,獲取來自所述主機(jī)設(shè)備的固件;以及使用來自所述主機(jī)設(shè)備的固件引導(dǎo)所述存儲(chǔ)設(shè)備,其中所述存儲(chǔ)設(shè)備與所述主機(jī)設(shè)備分開引導(dǎo),并且所述主機(jī)設(shè)備使用存儲(chǔ)于所述非易失性存儲(chǔ)器并且經(jīng)由通過所述主機(jī)接ロ與所述存儲(chǔ)設(shè)備的存儲(chǔ)控制器的通信獲得的數(shù)據(jù)或者指令執(zhí)行操作。在另ー令實(shí)施方式中,一個(gè)系統(tǒng)包括非易失性存儲(chǔ)器,以及存儲(chǔ)控制器,所述存儲(chǔ)控制器被配置為在所述非易失性存儲(chǔ)器上執(zhí)行操作并且通過主機(jī)接ロ與主機(jī)設(shè)備通信。所述存儲(chǔ)控制器還可以被配置為通過所述主機(jī)接ロ接收用于從所述主機(jī)設(shè)備引導(dǎo)所述存儲(chǔ)設(shè)備的指令;響應(yīng)于接收所述指令,獲取來自所述主機(jī)設(shè)備的固件;以及使用來自所述主機(jī)設(shè)備的固件引導(dǎo)所述存儲(chǔ)設(shè)備,其中所述存儲(chǔ)設(shè)備與所述主機(jī)設(shè)備分開引導(dǎo),并且所述主機(jī)設(shè)備使用存儲(chǔ)于所述非易失性存儲(chǔ)器并且經(jīng)由通過所述主機(jī)接ロ與所述存儲(chǔ)設(shè)備的存儲(chǔ)控制器的通信獲得的數(shù)據(jù)或者指令執(zhí)行操作。可以實(shí)方施本文所述的主題的特定實(shí)施例以實(shí)現(xiàn)ー個(gè)或者多個(gè)以下優(yōu)點(diǎn)。可以減少存儲(chǔ)設(shè)備的NVM的磨損。例如,存儲(chǔ)設(shè)備可以高頻率地切換開啟和關(guān)閉以減少耗電量(例如,在設(shè)有使用時(shí)切換為關(guān)閉),其可以使得毎次所述設(shè)備啟動(dòng)時(shí),存儲(chǔ)用于所述存儲(chǔ)設(shè)備的引導(dǎo)信息的NVM部分被訪問以引導(dǎo)所述設(shè)備。這樣頻率的訪問會(huì)磨損所述NVM并且縮短所述NVM的壽命。通過從主機(jī)設(shè)備而不是從存儲(chǔ)設(shè)備的NVM獲取引導(dǎo)信息,可以減少所述存儲(chǔ)設(shè)備的NVM的磨損并且可以延長(zhǎng)所述存儲(chǔ)設(shè)備的NVM的壽命??梢蕴岣叽鎯?chǔ)設(shè)備引導(dǎo)的速度,其可以最小化訪問所述存斷設(shè)備所存儲(chǔ)的數(shù)據(jù)的延遲。例如,用于所述存儲(chǔ)設(shè)備的引導(dǎo)信息可以存儲(chǔ)在主機(jī)設(shè)備的NVM中,并且當(dāng)所述主機(jī)設(shè)備引導(dǎo)(例如,使用自身的引導(dǎo)信息)時(shí)被加載到所述主機(jī)設(shè)備的易失性存儲(chǔ)器(例如,隨機(jī)訪問存儲(chǔ)器(RAM))。當(dāng)存儲(chǔ)設(shè)備被切換啟動(dòng)和關(guān)閉時(shí),所述主機(jī)設(shè)備可以在其中維持所述引導(dǎo)信息,并且從它的易失性存儲(chǔ)器提供所述引導(dǎo)信息給所述存儲(chǔ)設(shè)備。從所述主機(jī)設(shè)備的易失性存儲(chǔ)器轉(zhuǎn)移引導(dǎo)信息到所述存儲(chǔ)設(shè)備可以比所述存儲(chǔ)設(shè)備從所述存儲(chǔ)設(shè)備本地的NVM讀取引導(dǎo)信息更快。可以增加存儲(chǔ)設(shè)備的可用存儲(chǔ)容量,并且可以增加包括主機(jī)設(shè)備和多個(gè)存儲(chǔ)設(shè)備的系統(tǒng)的總存儲(chǔ)容量。例如。通過從存儲(chǔ)設(shè)備的NVM移動(dòng)引導(dǎo)信息到主機(jī)設(shè)備,本來存儲(chǔ)所述引導(dǎo)信息的所述存儲(chǔ)設(shè)備的NVM上的存儲(chǔ)空間可以用來存儲(chǔ)其他信息(例如,數(shù)據(jù))。在另ー個(gè)例子中,主機(jī)設(shè)備可以存儲(chǔ)通用于多個(gè)存儲(chǔ)設(shè)備的引導(dǎo)信息的単一拷貝,而不是所述多個(gè)存儲(chǔ)設(shè)備的每一個(gè)都存儲(chǔ)所述引導(dǎo)信息的本地拷貝。有多個(gè)存儲(chǔ)設(shè)備的系統(tǒng)通過避免在所述多個(gè)存儲(chǔ)設(shè)備上的引導(dǎo)信息的冗余存儲(chǔ)可以增加總消儲(chǔ)容量。通過更新/改變由主機(jī)設(shè)備提供給存儲(chǔ)設(shè)備的引導(dǎo)信息可以容易更新和改變存儲(chǔ)設(shè)備進(jìn)行操作的方式。例如,如果遇到存儲(chǔ)設(shè)備的錯(cuò)誤,主機(jī)設(shè)備可以使得所述存儲(chǔ)設(shè)備使用診斷固件(由所述主機(jī)提供給所述存儲(chǔ)設(shè)備)重新引導(dǎo)而不是用當(dāng)遇到所述錯(cuò)誤時(shí)所使用的操作固件。診斷固件可以使得存儲(chǔ)設(shè)備執(zhí)行備種診斷操作(例如,產(chǎn)生錯(cuò)誤日志、識(shí)別錯(cuò)誤源)并且提供所獲得的診斷信息給主機(jī)設(shè)備。主機(jī)設(shè)備可以存儲(chǔ)各種類型的固件(例如,操作固件、診斷固件、生產(chǎn)固件(manufacturing firmware))并且可以依據(jù)所述存儲(chǔ)設(shè)備的狀態(tài)(例如,遇到錯(cuò)誤、新硬件剛安裝、正常操作)在提供給存儲(chǔ)設(shè)備的固件中切換。下面的附圖和說明書闡明了一個(gè)或者多個(gè)實(shí)施例的細(xì)節(jié)。根據(jù)所述說明書和附圖以及權(quán)利要求,本發(fā)明的其他的特征、對(duì)象和優(yōu)點(diǎn)將是很明白。
圖IA為描述包括被配置為提供固件形式的引導(dǎo)信息給包括存儲(chǔ)控制器的NVM封裝的主機(jī)設(shè)備的示例系統(tǒng)的框圖。圖IB為描述包括被配置為提供固件形式的引導(dǎo)信息給不包括存儲(chǔ)控制器的NVM封裝的主機(jī)設(shè)備的示例系統(tǒng)的框圖。圖2為描述包括帶有被配置為提供引導(dǎo)信息給各種NVM封裝的主機(jī)控制器的存儲(chǔ)設(shè)備的示例系統(tǒng)的框圖。圖3為描述用于從主機(jī)引導(dǎo)存儲(chǔ)設(shè)備的示例過程的流程圖。圖4為描述用于從主機(jī)引導(dǎo)存儲(chǔ)設(shè)備的示例過程的流程圖。在所述各種附圖中相似的參考標(biāo)記指示相似的元件。
具體實(shí)施例方式主機(jī)設(shè)備可以存儲(chǔ)引導(dǎo)信息(例如,固件或者調(diào)節(jié)值)以及提供所述引導(dǎo)信息給與所述主機(jī)設(shè)備通過通信通道(例如,總線)連接的一個(gè)或者多個(gè)存儲(chǔ)設(shè)備。存儲(chǔ)設(shè)備引導(dǎo)信息可以與指令或請(qǐng)求一起,或者響應(yīng)于指令或請(qǐng)求,被提供給存儲(chǔ)設(shè)備以引導(dǎo)存儲(chǔ)設(shè)備,可以響應(yīng)于所述存儲(chǔ)設(shè)備啟動(dòng)和/或接收到來自所述主機(jī)設(shè)備的引導(dǎo)命令而產(chǎn)生所述指令或請(qǐng)求。在所述存儲(chǔ)設(shè)備操作期間,主機(jī)設(shè)備可以在易失性存儲(chǔ)器中為存儲(chǔ)設(shè)備維持引導(dǎo)信息(例如,當(dāng)所述主機(jī)設(shè)備引導(dǎo)時(shí)通過從NVM加載所述引導(dǎo)信息至易失性存儲(chǔ)器)并且可以從所述易失性存儲(chǔ)器提供所述弓I導(dǎo)信息給所述存儲(chǔ)設(shè)備。弓I導(dǎo)信息可以提供給源始存儲(chǔ)設(shè)備(例如,設(shè)有存儲(chǔ)控制器的存儲(chǔ)設(shè)備)和/或包括存儲(chǔ)控制器的存儲(chǔ)設(shè)備。主機(jī)設(shè)備可以存儲(chǔ)并且提供各種類型的引導(dǎo)信息給存儲(chǔ)設(shè)備,包括操作引導(dǎo)信息(例如,用于執(zhí)行讀、寫和擦除操作)、診斷引導(dǎo)信息(例如,用于執(zhí)行診斷操作)和或生產(chǎn)引導(dǎo)信息(例如,用于存儲(chǔ)設(shè)備的組件的測(cè)試安裝和操作)。圖IA為描述包括被配置為提供固件形式的引導(dǎo)信息給包括存儲(chǔ)控制器的NVM封裝104的主機(jī)設(shè)備102的示例系統(tǒng)100的框圖。例如,如在所述示例系統(tǒng)100中所描述的,所述主機(jī)設(shè)備102可以為所述NVM封裝104提供固件106。在接收到所述固件106之前、期間和/或響應(yīng)于接收所述固件106,所述NVM封裝104可以發(fā)送狀態(tài)消息108給所述主機(jī)設(shè)備102。例如,所述NVM封裝104可以在所述狀態(tài)消息108中指示其正在引導(dǎo),并且作為響應(yīng)接收所述固件106。在另ー個(gè)例子中,在接收到從所述主機(jī)設(shè)備102引導(dǎo)的命令之后,所述NVM封裝104可以指示其準(zhǔn)備好接收所述固件106。在另外的例子中,NVM封裝104可以通過所述狀態(tài)消息108指示所述固件106的各個(gè)部分被接收。所述主機(jī)設(shè)備102可以是各種主機(jī)設(shè)備和/或系統(tǒng)中的任意ー個(gè),諸如可攜帯式媒體播放器、蜂窩電話、袖珍個(gè)人電腦、個(gè)人數(shù)字助手(PDA)、桌面電腦、膝上電腦和/或平板計(jì)算設(shè)備。所述NVM封裝104包括NVM并且可以是球柵陣列封裝或者其他合適類型的集成電路(IC)封裝。所述NVM封裝104可以通過與所述主機(jī)設(shè)備102的連接110 (例如,總線)提供從所述主機(jī)設(shè)備102獲得固件。所述NVM封裝104可以是所述主機(jī)設(shè)備102的一部分或者與所述主機(jī)設(shè)備102分開。所述主機(jī)設(shè)備102可以包括主機(jī)控制器112,其被配置為與所述NVM封裝104交互以從所述NVM封裝104獲得診斷信息。所述主機(jī)控制器112可以包括被配置為基于軟件和/或固件指令的執(zhí)行而執(zhí)行操作的一個(gè)或者多個(gè)處理器和/或微處理器。此外和/或可選地,所述主機(jī)控制器112可以包括基于硬件的組件,諸如專用集成電路(ASIC),其被配置為執(zhí)行各種操作。由所述主機(jī)控制器112所執(zhí)行的操作可以包括確定何時(shí)啟動(dòng)和關(guān)閉所述NVM封裝104、何時(shí)引導(dǎo)所述NVM封裝、提供一種固件給所述NVM封裝以及提供所述固件106給所述NVM封裝104。例如,所述主機(jī)控制器112可以提供引導(dǎo)命令給所述NVM封裝104以及,響應(yīng)于指示所述NVM封裝104準(zhǔn)備好接收所述固件106的狀態(tài)消息,提供所述固件106給所述NVM封裝104。所述主機(jī)控制器112可以格式化根據(jù)在所述主機(jī)設(shè)備102和所述NVM封裝104之間使用的通信協(xié)議傳輸給所述NVM封裝104的信息(例如,命令、所述固件106)。所述NVM封裝104包括存儲(chǔ)器114 (易失性存儲(chǔ)器和/或NVM),其存儲(chǔ)可以被提供給所述NVM封裝104的各種類型的固件116-120( S卩,作為固件106)。例如,當(dāng)所述主機(jī)設(shè)備102引導(dǎo)時(shí),所述主機(jī)設(shè)備102可以從所述主機(jī)設(shè)備102的NVM加載所述固件116-120到易失性存儲(chǔ)器。在所述主機(jī)設(shè)備102和所述NVM封裝104操作期間,所述主機(jī)設(shè)備102可以在所述易失性存儲(chǔ)器中維持所述固件116-120。所述主機(jī)設(shè)備102可以從所述易失性存儲(chǔ)器提供所述固件116-120給所述NVM封裝104。在其他的實(shí)施方式中,所述固件116-120可以被存儲(chǔ)于所述主機(jī)設(shè)備102的NVM中,并且按需讀出所述主機(jī)設(shè)備102的NVM以引導(dǎo)所述NVM封裝104。所述固件116-120可以由所述NVM封裝104運(yùn)行以執(zhí)行引導(dǎo)操作(例如,機(jī)始化存儲(chǔ)芯片(die)、加載用于操作所述NVM封裝的指令到易失性存儲(chǔ)器中)和/或引導(dǎo)后操作(例如,讀/寫/擦除操作、診斷操作)。例如,由所述主機(jī)設(shè)備102轉(zhuǎn)移到所述NVM封裝104的所述固件106可以包括帶有指令的引導(dǎo)加載器,其被執(zhí)行時(shí)使得用于操作所述NVM封裝104的指令被加載到易失性存儲(chǔ)器中以用于由所述NVM封裝104執(zhí)行。在另一例子中,由所述主機(jī)設(shè)備102轉(zhuǎn)移到所述NVM封裝104的所述固件106可以包括用于操作所述NVM封裝104的指令,并且可以被加載到易失性存儲(chǔ)器中(例如,由引導(dǎo)加載器操作)作為所述NVM封裝104的引導(dǎo)過程的一部分。圖IA描述了包括可操作固件116、診斷固件118和生產(chǎn)固件120的示例固件116-120??刹僮鞴碳?16使得所述NVM封裝104執(zhí)行“正?!贝鎯?chǔ)操作,諸如由所述主機(jī)設(shè)備102請(qǐng)求的執(zhí)行讀、寫和擦除操作。操作固件116還可以使得所述NVM封裝104執(zhí)行存儲(chǔ)管理操作,諸如損耗均衡或者錯(cuò)誤校正。所述診斷固件118使得所述NVM封裝執(zhí)行診斷操作,諸如跟蹤數(shù)據(jù)錯(cuò)誤源和產(chǎn)生錯(cuò)誤日志。所述生產(chǎn)固件120檢測(cè)所述NVM封裝104的各種組件的操作和安裝,諸如存儲(chǔ)芯片、I/O信號(hào)和傳感器(例如,溫度傳感器)。其他類型的固件也是可能的。例如,相同固件的不同版本可以由所述主機(jī)設(shè)備102存儲(chǔ)并提供給所述NVM封裝104 (例如,固件版本I. I和固件版本1.2)。
所述主機(jī)設(shè)備102可以經(jīng)由所述連接110與所述NVM封裝104通信。在所述主機(jī)設(shè)備102和所述NVM封裝104之間的所述連接110可以是固定的(例如,固定通信通道)和/或可分開的(例如,通用串行總線(USB)端ロ)。與所述NVM封裝104交互可以包括提供命令(例如,引導(dǎo)命令、讀命令、寫命令)和傳輸引導(dǎo)信息,例如所述固件106,給所述NVM封裝104。所述NVM封裝104可以經(jīng)由所述連接110使用主機(jī)接ロ 122和存儲(chǔ)控制器124與所述主機(jī)設(shè)備102交互。與所述主機(jī)控制器112相擬,所述存儲(chǔ)控制器124可以包括被配置為基于軟件和/或固件指令的運(yùn)行而執(zhí)行操作的一個(gè)或者多個(gè)處理器和/或微處理器126。此外和/或可選地,所述存儲(chǔ)控制器124可以包括基于硬件的組件,諸如ASIC,其被配置為執(zhí)行各種操作。所述存儲(chǔ)控制器124可以執(zhí)行各種操作,諸如使用來自所述主機(jī)設(shè)備102的所述固件來引導(dǎo)所述NVM封裝104。各種存儲(chǔ)管理功能,諸如錯(cuò)誤校正和損耗均衡,可以由所述主機(jī)控制器112和所述存儲(chǔ)控制器124単獨(dú)地或者結(jié)合地執(zhí)行。在其中所述存儲(chǔ)控制器124被配置為執(zhí)行至少某些存儲(chǔ)管理功能的實(shí)施方式中,所述NVM封裝104可以稱為“托管(managed)NVM” (或?qū)τ贜AND閃存為“托管NAMD”)。這可以與“原始NVM” (或?qū)τ贜AND閃存為“原始NAND”)相比,其中在所述NVM封裝104之外的所述主機(jī)控制器112為所述NVM封裝104執(zhí)行存儲(chǔ)管理功能。所述存儲(chǔ)控制器124包括易失性存儲(chǔ)器128和NVMl32。所述易失性存儲(chǔ)器128可以是各種易失性存儲(chǔ)器類型中的任意ー種,包括緩存和/或RAM。所述易失性存儲(chǔ)器128可以由所述存儲(chǔ)控制器124使用以執(zhí)行存儲(chǔ)操作和/或臨時(shí)存儲(chǔ)從NWM讀出或者寫到NVM的數(shù)據(jù)。例如,所述易失性存儲(chǔ)器128可以存儲(chǔ)固件130,諸如經(jīng)由所述連接110所接收的所述固件106,到所述主機(jī)設(shè)備102,并且可以使用所述固件130來執(zhí)行在所述NVM封裝104上的操作(例如,讀/寫操作、診斷操作)。所述NVM132為系統(tǒng)存儲(chǔ)器,其可以被所述存儲(chǔ)控制器124使用以持久地存儲(chǔ)系統(tǒng)信息(例如,診斷日志)和/或臨時(shí)地存儲(chǔ)信息,諸如固件,其可能無(wú)法配合于所述易失性存儲(chǔ)器128中。所述NVM132可以如此受限制地讀、寫和/或擦除使得只有具有適當(dāng)權(quán)限的特定系統(tǒng)操作可以訪問所述NVM132。例如,所述NVM132可以包括存儲(chǔ)特定物理地址的指令,該指令被加載到所述易失性存儲(chǔ)器128中并且響應(yīng)于由所述存儲(chǔ)控制器124所接收的引導(dǎo)信號(hào)(例如,來自所述主機(jī)設(shè)備102的引導(dǎo)命令、從之前的未啟動(dòng)狀態(tài)接收動(dòng)力)由處理器/微處理器126執(zhí)行。相反,可能不允許與作為從所述主機(jī)設(shè)備102所接收的寫命令的一部分來執(zhí)行的操作一起訪問所述NVM132。在另ー示例中,從所述主機(jī)設(shè)備102所接收的所述固件106的ー些部分可以被存儲(chǔ)于所述NVM132中,并且按需被加載到所述易失性存儲(chǔ)器128中。所述NVMl 32可以是各種NVM (例如,NAND閃存、NOR閃存)中的任意ー種。在一些實(shí)施方式中,所述NVM132還本地并且持久地存儲(chǔ)用于所述NVM封裝104的固件。在這樣的實(shí)施方式中,所述NVM封裝104可以默認(rèn)使用本地存儲(chǔ)的固件并且所述主機(jī)設(shè)備102可以通過為所述NVM104提供的“從主機(jī)引導(dǎo)”命令覆寫(override)這種默認(rèn)設(shè)置。所述存儲(chǔ)控制器124使用共享的內(nèi)部總線134來訪問用于持久數(shù)據(jù)存儲(chǔ)的NVM。在所述示例系統(tǒng)100中,如此NVM被描述為包括多個(gè)存儲(chǔ)芯片136a-n,其包括NVM138a-n。所述存儲(chǔ)芯片可以是各種存儲(chǔ)芯片,諸如集成電路(IC)芯片。盡管關(guān)于所述NVM封裝104只描述了單一共享總線134,但NVM封裝可以包括多于ー個(gè)的共享內(nèi)部總線。每個(gè)內(nèi)部總線可以與多個(gè)存儲(chǔ)芯片(例如,2、3、4、8、32等)連接,如關(guān)于所述多個(gè)存儲(chǔ)芯片136a-n所描述的。所述存儲(chǔ)芯片136a_n可以以各種配置物理排列,諸如被堆積(stacked)。所述NVM138a-n可以是各種NVM中的任意ー種,諸如基于浮置柵極或者電荷捕捉技術(shù)的NAND閃存、NOR閃存、可察可編程只讀存儲(chǔ)器(EPROM)、電可擦可編程只讀存儲(chǔ)器(EEPROM)、鐵電隨機(jī)存取存儲(chǔ)器(FRAM)、磁隨機(jī)存儲(chǔ)器(MRAM)、相變存儲(chǔ)器(PCM),或者其任意組合。存儲(chǔ)控制器124可以在所述NVM138a-n上使用由所述主機(jī)設(shè)備102提供的所述固件130執(zhí)行各種操作(例如,讀/寫操作、診斷操作、生產(chǎn)測(cè)試操作)來引導(dǎo)所述NVM封裝104。圖IB為描述包括被配置為提供固件形式的引導(dǎo)信息給不包括存儲(chǔ)控制器的NVM封裝的主機(jī)設(shè)備的示例系統(tǒng)的框圖。例如,如在所述示例系統(tǒng)150中所描述的,所述主機(jī)設(shè)備152可以為所述NVM封裝154提供調(diào)節(jié)值156。在接收到所述調(diào)節(jié)值156之前、期間和/或響應(yīng)于接收所述調(diào)節(jié)值156,所述NVM封裝154可以發(fā)送狀態(tài)消息158給所述主機(jī)設(shè)備152。例如,所述NVM封裝154可以在所述狀態(tài)消息158中指示其正在引導(dǎo),并且作為響應(yīng)接收所述調(diào)節(jié)值156。在另ー個(gè)例子中,在接收到從所述主機(jī)設(shè)備152引導(dǎo)的命令之后,所述NVM封裝154可以指示其準(zhǔn)備好接收所述調(diào)節(jié)值156。在另外的例子中,NVM封裝154可以通過所述狀態(tài)消息158指示所述調(diào)節(jié)值156的各個(gè)部分被接收。所述主機(jī)設(shè)備152可以是各種主機(jī)設(shè)備和/或系統(tǒng)中的任意ー個(gè),諸如可攜帯式媒體播放器、蜂窩電話、袖珍個(gè)人電腦、個(gè)人數(shù)字助手(PDA)、桌面電腦、膝上電腦和/或平板計(jì)算設(shè)備。所述NVM封裝154包括NVM并且可以是球柵陣列封裝或者其他適合類型的集成電路(IC)封裝。所述NVM封裝154可以通過與所述主機(jī)設(shè)備152的連接160 (例如,總線),提供從所述主機(jī)設(shè)備152獲得固件。所述NVM封裝154可以是所述主機(jī)設(shè)備152的一部分或者與所述主機(jī)設(shè)務(wù)152分開。所述主機(jī)設(shè)備152可以包括主機(jī)控制器162,其被配置為與所述NVM封裝154交互以從所述NVM封裝154獲得診斷信息。所述主機(jī)控制器162可以包括被配置為基于軟件和/或固件指令的運(yùn)行而執(zhí)行操作的一個(gè)或者多個(gè)處理器和/或微處理器。此外和/或可選地,所述主機(jī)控制器162可以包括基于硬件的組件,諸如ASIC,其被配置為執(zhí)行各種操作。由所述主機(jī)控制器162所執(zhí)行的操作可以包括確定何時(shí)啟動(dòng)和關(guān)閉所述NVM封裝154、何時(shí)引導(dǎo)所述NVM封裝154、提供一種固件給所述NVM封裝154以及提供所述調(diào)節(jié)值156給所述NVM封裝154。例如,所述主機(jī)控制器162可以提供引導(dǎo)命令給所述NVM封裝154以及,響應(yīng)于指示所述NVM封裝154準(zhǔn)備好接收所述調(diào)節(jié)值156的狀態(tài)158,提供所述調(diào)節(jié)值156給所述NVM封裝154。所述主機(jī)控制器162可以格式化根據(jù)在所述主機(jī)設(shè)備152和所述NVM封裝154之間使用的通信協(xié)議傳輸給所述NVM封裝154的信息(例如,命令、調(diào)節(jié)值156)。所述主機(jī)設(shè)備152包括存儲(chǔ)器164 (例如,易失性存儲(chǔ)器和/或NVM),其存儲(chǔ)可以被提供給所述NVM封裝154的調(diào)節(jié)值166。例如,當(dāng)所述主機(jī)設(shè)備152引導(dǎo)時(shí),所述主機(jī)設(shè)備152可以從所述主機(jī)設(shè)備152的NVM加載調(diào)節(jié)值166到易失性存儲(chǔ)器。在所述主機(jī)設(shè)備152和所述NVM封裝154操作期間,所述主機(jī)設(shè)備152可以在所述易失性存儲(chǔ)器中維持所述調(diào)節(jié)值164。所述主機(jī)設(shè)備152可以從所述易失性存儲(chǔ)器提供所述調(diào)節(jié)隨166給所述NVM封裝154。在其他的實(shí)施方式中,所述調(diào)節(jié)值166可以被存儲(chǔ)于所述主機(jī)設(shè)備152的NVM中,并且按需讀出所述主機(jī)設(shè)備152的NVM以引導(dǎo)所述NVM封裝154。
9
所述調(diào)節(jié)值166可以包括用于配置所述NVM封裝154以執(zhí)行存儲(chǔ)操作(例如,讀、寫、擦除)和與所述主機(jī)設(shè)備152交互的各種值。例如,所述調(diào)節(jié)值166可以包括值,所述值校準(zhǔn)由所述NVM封裝154使用的用于執(zhí)行存儲(chǔ)操作和與所述主機(jī)設(shè)備152通信的時(shí)序和電壓電平。例如,調(diào)節(jié)值166可以是預(yù)定的數(shù)據(jù)值,當(dāng)其被加載到易失性存儲(chǔ)器中吋,由所述NVM封裝154的組件使用以執(zhí)行操作,諸如讀和/或編程N(yùn)VM。例如,所述調(diào)節(jié)值166可以定義編程電壓電平和/或編程脈沖寬度,其用于所述NVM封裝154中的NVM的數(shù)據(jù)采樣。在引導(dǎo)期間,所述調(diào)節(jié)值166可以被用于初始化所述NVM封裝154的各種組件,包括所述NVM封裝154的NVM,以便所述NVM封裝154能夠可靠地讀和/或?qū)憯?shù)據(jù)到所述NVM。所述主機(jī)設(shè)備152可以經(jīng)由所述連接160與所述NVM封裝154通信。在所述主機(jī)設(shè)備152和所述NVM封裝154之間的所述連接160可以是固定的(例如,固定通信通道)和/或可分開的(例如,通用串行總線(USB)端ロ)。與所述NVM封裝154交互可以包括提供命令(例如,引導(dǎo)命令、讀命令、寫命令)和傳輸引導(dǎo)信息,例如所述調(diào)節(jié)值156,給所述NVM封裝154。所述NVM封裝154可以經(jīng)由所述連接160,使用主機(jī)接ロ 168和控制電路170與所述主機(jī)設(shè)備152交互。所述控制電路170可以被配置為至少執(zhí)行經(jīng)由所述主機(jī)接ロ 168從所述主機(jī)設(shè)備152接收到的命令(例如,讀、寫)。所述控制電路170可以通過各和哽件組件,諸如IC和ASIC,來實(shí)現(xiàn)。所述控制電路170包括被配置為執(zhí)行從所述主機(jī)設(shè)備152接收到的命令(例如,控制信號(hào))的命令執(zhí)行邏輯172。所述命令執(zhí)行邏輯172可以至少部分地基于寄存器174的內(nèi)容執(zhí)行所述命令。所述寄存器174可以加載從所述主機(jī)設(shè)備152接收到的調(diào)節(jié)值176。調(diào)節(jié)值156還可以和/或可線地被NVM封裝154的NVM使用。例如,所述調(diào)節(jié)值156可以被存儲(chǔ)于所述控制電路170中并且被發(fā)送給所述NVM,諸如原始NAND芯片。所述調(diào)節(jié)值156可以被用于控制所述NVM的數(shù)據(jù)采樣,諸如用于所述NVM的控制電壓和時(shí)序。所述寄存器174可以由所述命令執(zhí)行邏輯172訪問(作為所述命令執(zhí)行邏輯172的一部分和/或與其分開),并且可以被用于各種能力,諸如存儲(chǔ)數(shù)據(jù)、地址、指令、條件和狀態(tài)信息。在所述NVM封裝154正在引導(dǎo)時(shí),所述寄存器174可以加載所述調(diào)節(jié)值176 (從所述主機(jī)設(shè)備152所接收的)。所述主機(jī)控制器162可以執(zhí)行用于所述NVM封裝154的各種操作,如上所述的關(guān)于圖IA的所述存儲(chǔ)控制器124可以執(zhí)行的關(guān)于所述NVM封裝104的操作。例如,所述主機(jī)控制器162可以執(zhí)行用于所述NVM封裝154的存儲(chǔ)管理操作,諸如損耗平衡。所述系統(tǒng)150可以稱為“原始NVM” (或?qū)τ贜AND閃存為“原始NAND” )。所述控制電路172使用共享的內(nèi)部總線178來訪問被使用于持久數(shù)據(jù)存儲(chǔ)的NVM。在所述示例系統(tǒng)150中,這種NVM被描述為包括NVM182a-n的多個(gè)存儲(chǔ)芯片180a_n。所述存儲(chǔ)芯片可以是各種存儲(chǔ)芯片,諸如集成電路(IC)芯片。盡管關(guān)于所述NVM封裝154只描述了單一共享總線178,但NVM封裝可以包括多于ー個(gè)的共享內(nèi)部總線。每個(gè)內(nèi)部總線可以與多個(gè)存儲(chǔ)芯片(例如,2、3、4、8、32等)連接,如關(guān)于所述多個(gè)存儲(chǔ)芯片180a-n所描述的。所述存儲(chǔ)芯片180a-n可以以各種配置物理排列,諸如被堆積。所述NVM182a_n可以是各種NVM中的任意ー種,諸如基于浮置柵極或者電荷捕捉技術(shù)的NAND閃存、NOR閃存、EPR0M、EEPROM、FRAM、MRAM、PCM,或者其任意組合??刂齐娐?70可以在所述NVM182a_n上使用由
10所述主機(jī)設(shè)備152提供的所述調(diào)節(jié)值176執(zhí)行操作(例如,讀/寫操作)來引導(dǎo)所述NVM封裝154。盡管所述系統(tǒng)100和150被分開地討論,但組合來自這兩個(gè)系統(tǒng)的特征的其他系統(tǒng)也是可能的。例如,除了提供所述固件106給包括所述存儲(chǔ)控制器124的所述NVM封裝104之外,所述主機(jī)設(shè)備102還可以被配置為提供調(diào)節(jié)值(例如,所述調(diào)節(jié)值156)給所述NVM封裝154用于所述NVM封裝154的各種組件的配置。圖2為描述包括帶有被配置為提供引導(dǎo)信息給各種NVM封裝的主機(jī)控制器204的存儲(chǔ)設(shè)備202的示例系統(tǒng)200的框圖。所述存儲(chǔ)設(shè)備202可以是各種存儲(chǔ)設(shè)備中的任意一種,諸如可攜帯式媒體播放器、蜂窩電話、袖珍個(gè)人電腦、個(gè)人數(shù)字助手(PDA)、桌面電腦、膝上電腦和/或平板計(jì)算設(shè)備,和/或可移除/可攜帯的存儲(chǔ)設(shè)備(例如,閃存卡、USB閃存驅(qū)動(dòng))。示例存儲(chǔ)設(shè)備202包括主機(jī)控制器204和NVM206。所述主機(jī)設(shè)備204可以與如上所述的關(guān)于圖IA-B的所述主機(jī)設(shè)備112和/或所述主機(jī)設(shè)備162相似。所述主機(jī)控制器204包括一個(gè)或者多個(gè)處理器208、易失性存儲(chǔ)器210和NVM212。所述處理器208可以是任意種類的處理器,諸如微處理器、中央處理器(CPU)、圖形處理器(GPU)或者其中的任意組合。所述易失性存儲(chǔ)器210可以是各種易失性存儲(chǔ)器的任意ー種,諸如RAM和緩存。所述易失性存儲(chǔ)器210可以由所述處理器208使用以執(zhí)行各種操作,諸如檢索和處理存儲(chǔ)于所述NVM206中的數(shù)據(jù)。所述NVM212可以是各種NVM的任意ー種,諸如閃存(例如,NAND閃存、NOR閃存)中的任意ー種。所述NVM212可以持久地存儲(chǔ)引導(dǎo)信息,諸如固件214和/或調(diào)節(jié)值216。所述固件214可以與如上關(guān)于圖IA所描述的固件116-120相似,并且所述調(diào)節(jié)值216可以與如上關(guān)于圖IB所描述的所述調(diào)節(jié)值166相似。所述固件214和/或調(diào)節(jié)值216可以被加載到所述易失性存儲(chǔ)器210中(例如,當(dāng)所述主機(jī)控制器204引導(dǎo)時(shí)),并按需從所述易失性存儲(chǔ)器210被傳輸給所述NVM206。所述NVM206可以包括ー個(gè)或多個(gè)NVM封裝218a_b。所述NVM封裝218a_b中的每ー個(gè)都可以與所述NVM封裝104和/或上述關(guān)于圖IA-B所描述NVM封裝154相似。例如,所述NVM封裝218a-b每ー個(gè)可以包括多個(gè)帶有NVM(例如,存儲(chǔ)芯片136a_n和NVM138a_n)的存儲(chǔ)芯片、一個(gè)或者多個(gè)存儲(chǔ)控制器(例如,存儲(chǔ)控制器124)和/或使用所述固件214和/或所述調(diào)節(jié)值216引導(dǎo)的控制電路(例如,所述控制電路170)。所述NVM206可以包括任意數(shù)量的NVM封裝(例如,2、3、4、8、16等)。如上關(guān)于圖IA-B所描述的,所述NVM管理可以由所述主機(jī)控制器204和/或所述NVM封裝218a-b的控制器執(zhí)行。例如,所述主機(jī)控制器204可以被配置為通過提供不同的固件和/或調(diào)節(jié)值給所述NVM封裝218a-b來調(diào)整所述NVM封裝218a_b的操作。在所述NVM封裝218a-b的控制器控制所述存儲(chǔ)管理操作(例如,錯(cuò)誤校正、損耗平衡等)的至少ー部分的實(shí)施方式中,所述NVM封裝218a-b可以被認(rèn)為是“托管的”NVM。所述系統(tǒng)200被描述為還包括可以與所述存儲(chǔ)設(shè)備202通信連接(直接和/或間接地)的外部設(shè)備220。在所述外部設(shè)備220和所述存儲(chǔ)設(shè)備202間的通信可以包括在所述兩個(gè)設(shè)備之間的數(shù)據(jù)和/或指令的傳輸。所述外部設(shè)備220可以是各種電子設(shè)備中的任意ー種,包括桌面電腦、膝上電腦、服務(wù)器系統(tǒng)和媒體計(jì)算設(shè)備(例如,媒體服務(wù)器、電視、立體聲系統(tǒng))。所述存儲(chǔ)設(shè)備202可以通過物理的和/或無(wú)線的連接,使用外部設(shè)備接ロ222 (例如,無(wú)線芯片(chip)、USB接ロ等)與所述外部設(shè)備220通信。例如,在一些實(shí)施方式中,所述存儲(chǔ)設(shè)備202可以是便攜式媒體播放器和所述外部設(shè)備220可以是桌面電腦,所述桌面電腦可以經(jīng)由物理連接(例如,USB線)相互傳輸媒體文件(例如,聲音文件、視頻文件等)。所述外部設(shè)備220可以為所述NVM206提供更新的和/或新的固件和/或調(diào)節(jié)值給所述存儲(chǔ)設(shè)備202。例如,所述存儲(chǔ)設(shè)備202可以被配置為周期性地檢查來自所述外部設(shè)備220的固件214和/或調(diào)節(jié)值216的更新版本是否可用(和/或所述部設(shè)備220可以檢查所述固件214和/或調(diào)節(jié)值216的版本,并且在可用的情況下提供已經(jīng)更新的引導(dǎo)信息給所述存儲(chǔ)設(shè)備)。所述固件214和/或調(diào)節(jié)值216可以由所述NVM封裝218a_b中的每ー個(gè)使用。例如,所述固件214和/或調(diào)節(jié)值216的單ー拷貝可以被消儲(chǔ)在所述NVM212中,并且被用于到多個(gè)NVM封裝,諸如所述NVM封裝218a-b。圖3為描述用于從主機(jī)引導(dǎo)存儲(chǔ)設(shè)備的示例過程300的流程圖。所述過程300可以由多種存儲(chǔ)設(shè)備執(zhí)行,包括如上關(guān)于圖IA所描述的NVM封裝104、如上關(guān)于圖IB所描述的NVM封裝154和/或如上關(guān)于圖2所描述的存儲(chǔ)設(shè)備202。所述過程300包括在存儲(chǔ)設(shè)備接收引導(dǎo)存儲(chǔ)設(shè)備的指示(在302)。這種指示包括存儲(chǔ)設(shè)備(例如所述NVM封裝104和/或所述NVM封裝154)可以接收的各種信號(hào)和/或命令。例如從主機(jī)設(shè)備(例如,所述主機(jī)設(shè)備102和/或所述主機(jī)設(shè)備152)所接收的芯片使能斷言(assertion)信號(hào)可以是引導(dǎo)的指示。在另一例子中,從未啟動(dòng)狀態(tài)啟動(dòng)的存儲(chǔ)設(shè)備可以充當(dāng)引導(dǎo)所述存儲(chǔ)設(shè)備的指示。在另一例子中,從主機(jī)(例如,所述主機(jī)設(shè)備102和/或所述主機(jī)設(shè)備152)所接收的引導(dǎo)命令可以是引導(dǎo)存儲(chǔ)設(shè)備的指示。在一些實(shí)施方式中,存儲(chǔ)設(shè)備可以確定其是否重啟。例如,所述NVM封裝104的所述存儲(chǔ)控制器124可以確定其在遇到特定類型錯(cuò)誤時(shí)要重啟并且給自身提供引導(dǎo)的指示。響應(yīng)于接收到所述引導(dǎo)的指示,所述存儲(chǔ)設(shè)備可以從主機(jī)設(shè)備獲得引導(dǎo)信息(在304)。引導(dǎo)信息可以包括用于引導(dǎo)和操作存儲(chǔ)設(shè)備的各種信息,包括固件(例如,所述固件106)和/或調(diào)節(jié)值(例如,所述調(diào)節(jié)值156)。獲取引導(dǎo)信息可以包括提供給主機(jī)設(shè)備的存儲(chǔ)設(shè)備準(zhǔn)備好接收引導(dǎo)信息的指示(例如,所述狀態(tài)指示器108),以多部分(例如,多個(gè)數(shù)據(jù)塊)地從所述主機(jī)設(shè)備接收所述引導(dǎo)信息,并且提供每個(gè)部分已經(jīng)成功由所述存儲(chǔ)設(shè)備接收的確認(rèn)(例如,所述狀態(tài)指示器108)給所述主機(jī)設(shè)備。所述存儲(chǔ)設(shè)備可以使用從所述主機(jī)設(shè)備所接收的所述引導(dǎo)信息引導(dǎo)(在306)。例如,所述存儲(chǔ)控制器124可以通過加載從所述主機(jī)設(shè)備102所接收的所述固件130到所述易失性存儲(chǔ)器128中并且使用固件130進(jìn)行引導(dǎo)所述NVM封裝104來引導(dǎo)所述NVM封裝104。在另一例子中,從所述主機(jī)設(shè)備152所接收的所述調(diào)節(jié)值176可以被加載到所述寄存器174中并且所述NVM封裝154可以被引導(dǎo)。在引導(dǎo)所述存儲(chǔ)設(shè)備后,可以使用來自所述主機(jī)設(shè)備的所述引導(dǎo)信息來執(zhí)行ー個(gè)或多個(gè)存儲(chǔ)操作(在308)。例如,如所述固件130所提供的和/或所述主機(jī)設(shè)備102所命令的,所述存儲(chǔ)控制器124可以執(zhí)行存儲(chǔ)操作。例如,如果所述操作固件116被提供給所述NVM封裝104,所述存儲(chǔ)控制器124可以執(zhí)行標(biāo)準(zhǔn)存儲(chǔ)操作(例如,讀、寫、擦除),并且,在一些實(shí)施方式中,可以執(zhí)行存儲(chǔ)管理操作,諸如損耗均衡和錯(cuò)誤校正。在另一例子中,如果所述診斷固件118被提供給所述NVM封裝104,所述存儲(chǔ)控制器可以執(zhí)行類似于產(chǎn)生和存儲(chǔ)診斷日志的診斷操作。在叉一例子中,如果生產(chǎn)固件120被提供給所述NVM封裝104,所述存儲(chǔ)控制器124可以執(zhí)行測(cè)試操作以確定是否所述NVM封裝104的各種組件(例如,所述NVM138a-n、所述主機(jī)接口 122、所述處理器/微處理器126)已經(jīng)恰當(dāng)?shù)匕惭b和依照它們的相應(yīng)技術(shù)規(guī)范操作。在另一例子中,所述控制電路170可以使用包含在所述寄存器174中的所述調(diào)節(jié)值176執(zhí)行由所述主機(jī)設(shè)備152傳輸給所述NVM封裝154的命令。一旦所述存儲(chǔ)操作完成,所述存儲(chǔ)設(shè)備可以關(guān)閉(power off)(在310)。例如,主機(jī)設(shè)備(例如,所述主機(jī)設(shè)備102和/或152)可以通過提供芯片使能去斷言(deassertion)信號(hào)給所述存儲(chǔ)設(shè)備和/或關(guān)閉為所述存儲(chǔ)設(shè)備供電的電源使得存儲(chǔ)設(shè)備(例如,所述NVM封裝104和/或154)關(guān)閉。在另一例子中,存儲(chǔ)設(shè)備(例如,所述NVM封裝104)可以確定在以所述設(shè)備空閑狀態(tài)過去閾值量的時(shí)間后,所述存儲(chǔ)設(shè) 備將關(guān)閉。所述過程300可以連續(xù)地重復(fù)-意味著當(dāng)存儲(chǔ)設(shè)備在各種電源和/或操作狀態(tài)之間連續(xù)地轉(zhuǎn)換時(shí),存儲(chǔ)設(shè)備可以使用來自主機(jī)設(shè)備的引導(dǎo)信息重啟。例如,為了減少存儲(chǔ)設(shè)備的耗電量(以及盡可能延長(zhǎng)電池壽命),存儲(chǔ)設(shè)備可以在不使用時(shí)關(guān)閉。存儲(chǔ)設(shè)備可以頻繁地關(guān)閉和開啟。這些從關(guān)閉狀態(tài)到開啟狀態(tài)的轉(zhuǎn)換中的每一個(gè)可以使得所述存儲(chǔ)設(shè)備使用從所述主機(jī)獲得的所述弓I導(dǎo)信息進(jìn)行引導(dǎo)。圖4為描述用于從主機(jī)引導(dǎo)存儲(chǔ)設(shè)備的示例過程400的流程圖。所述過程400可以由各種主機(jī)設(shè)備執(zhí)行,諸如如上關(guān)于圖IA所描述的主機(jī)設(shè)備102,如上關(guān)于圖IB所描述的主機(jī)設(shè)備152,和/或如上關(guān)于圖2所描述的存儲(chǔ)設(shè)備202。在一些實(shí)施方式中,所述過程400通過接收來自存儲(chǔ)設(shè)備的對(duì)弓I導(dǎo)信息的請(qǐng)求開始(在402)。例如,所述NVM封裝104可以提供以固件形式的對(duì)引導(dǎo)信息的請(qǐng)求給所述主機(jī)設(shè)備102。在一些實(shí)施方式中,所述過程400通過判斷需要訪問存儲(chǔ)設(shè)備和所述存儲(chǔ)設(shè)備關(guān)閉開始(在404)。例如,所述主機(jī)設(shè)備102可以接收與一個(gè)范圍的邏輯地址有關(guān)的讀請(qǐng)求(或確定讀數(shù)據(jù)的需要),判斷相應(yīng)于所述NVM封裝104的邏輯地址的范圍,并且判斷所述NVM封裝104關(guān)閉。基于這種判斷,可以提供引導(dǎo)命令給所述存儲(chǔ)設(shè)備(在406)。例如,所述主機(jī)設(shè)備102可以提供“從主機(jī)引導(dǎo)”的命令給所述NVM封裝104。響應(yīng)于提供這種命令,主機(jī)設(shè)備可以等待以提供引導(dǎo)信息給所述存儲(chǔ)設(shè)備,直到接收到所述存儲(chǔ)設(shè)備準(zhǔn)備好接收所述引導(dǎo)信息的指令(在408)。引導(dǎo)信息可以被傳輸?shù)剿龃鎯?chǔ)設(shè)備(在410)。例如,所述主機(jī)設(shè)備102可以傳輸所述固件116-120中的一個(gè)或多個(gè)給所述NVM封裝104。在另一例子中,所述主機(jī)設(shè)備152可以傳輸所述調(diào)節(jié)值166給所述NVM封裝154??梢詮乃鲋鳈C(jī)設(shè)備的易失性存儲(chǔ)器傳輸所述引導(dǎo)信息。一旦所述引導(dǎo)信息已經(jīng)被傳輸給存儲(chǔ)設(shè)備,所述主機(jī)可以提供一個(gè)或者多個(gè)命令給所述存儲(chǔ)設(shè)備和/或等待來自所述存儲(chǔ)設(shè)備的響應(yīng)(在412)。例如,如果所述主機(jī)設(shè)備102傳輸所述診斷固件118給所述NVM封裝104,那么所述主機(jī)設(shè)備102可以為所述NVM封裝104發(fā)出一個(gè)或者多個(gè)命令來收集和提供特定診斷信息給所述主機(jī)設(shè)備102,并且可以等待被提供給所述主機(jī)設(shè)備102的診斷信息。在另一例子中,在所述NVM封裝154已經(jīng)成功地使用所傳輸?shù)恼{(diào)節(jié)值156引導(dǎo)后,所述主機(jī)設(shè)備152可以提供讀命令給所述NVM封裝154,并且等待來自所述NVM封裝154的被請(qǐng)求的數(shù)據(jù)。如果沒有更多的命令以提供給存儲(chǔ)設(shè)備和/或以接收來自所述存儲(chǔ)設(shè)備的被請(qǐng)求的信息,主機(jī)可以使得所述存儲(chǔ)設(shè)備關(guān)閉(在414)。例如,所述主機(jī)設(shè)備102可以通過提供芯片使能去斷言(deassertion)信號(hào)給所述NVM封裝104,其可以使得所述NVM封裝104關(guān)閉??梢杂芍鳈C(jī)設(shè)備,諸如所述主機(jī)設(shè)備102和/或所述主機(jī)設(shè)備152重復(fù)所述過程400。例如,當(dāng)所述主機(jī)設(shè)備102需要所述NVM封裝104執(zhí)行一些任務(wù)(例如,讀數(shù)據(jù)、存儲(chǔ)數(shù)據(jù)、測(cè)試組件、確定診斷信息)時(shí),所述主機(jī)設(shè)備102可以使得所述NVM封裝104使用來自所述主機(jī)設(shè)備102的引導(dǎo)信息引導(dǎo),并且可以在不需要時(shí),使得所述NVM封裝104關(guān)閉,以便減少耗電量。 本文所述的主題和操作的實(shí)施例以數(shù)字電子電路實(shí)現(xiàn),或者以計(jì)算為機(jī)軟件、固件、或者硬件,包括在本文所公開的結(jié)構(gòu)和它們的等價(jià)結(jié)構(gòu),或者以它們中的一個(gè)或者多個(gè)的組合實(shí)現(xiàn)。本文所述的主題可以實(shí)現(xiàn)為一個(gè)或者多個(gè)計(jì)算機(jī)程序,即,一個(gè)或者多個(gè)計(jì)算機(jī)程序指令的模塊,其在計(jì)算機(jī)存儲(chǔ)介質(zhì)上編碼,用于由數(shù)據(jù)處理裝置執(zhí)行或者用于控制數(shù)據(jù)處理裝置的操作??蛇x地或者此外,所述程序指令可以在人工產(chǎn)生的傳播信號(hào)上編碼,例如,機(jī)器產(chǎn)生的電、光或電嗞信號(hào),其被產(chǎn)生用于編碼信息用于傳輸給合適的接收設(shè)備用于通過數(shù)據(jù)處理裝置執(zhí)行。計(jì)算機(jī)存儲(chǔ)介質(zhì)可以是,或者電含其中,計(jì)算機(jī)可讀存儲(chǔ)設(shè)備、計(jì)算機(jī)可讀存儲(chǔ)基底、隨機(jī)或串行訪問存儲(chǔ)陣列或設(shè)備,或者它們中的一個(gè)或者多個(gè)的組合。而且,當(dāng)計(jì)算機(jī)存儲(chǔ)介質(zhì)不是傳播信號(hào)時(shí),計(jì)算機(jī)存儲(chǔ)介質(zhì)可以是在人工產(chǎn)生的傳播信號(hào)上編碼的計(jì)算機(jī)程序指令的來源或目標(biāo)。所述計(jì)算機(jī)存儲(chǔ)介質(zhì)還可以是,或者電含其中,一個(gè)或者多個(gè)分開的物理組件或者介質(zhì)(例如,多個(gè)CD、磁盤或者其他存儲(chǔ)設(shè)備)。本文中所述的操作可以實(shí)現(xiàn)為由數(shù)據(jù)處理裝置在存儲(chǔ)于一個(gè)或者多個(gè)計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)或從其他來源所接收的數(shù)據(jù)上執(zhí)行的操作。術(shù)語(yǔ)“數(shù)據(jù)處理裝置”包含所有類型的用于處理數(shù)據(jù)的裝置、設(shè)備和機(jī)器,包括示例性的可編程處理器、計(jì)算機(jī)、芯片上系統(tǒng),或者前述的多個(gè)或組合。所述裝置可以包括專用邏輯電路,例如,F(xiàn)PGA(現(xiàn)場(chǎng)可編程門陣列)或者ASIC(專用集成電路)。除了硬件以外,所述裝置還可以包括,產(chǎn)生用于討論中的計(jì)算機(jī)程序的執(zhí)行環(huán)境的代碼,例如,構(gòu)成處理器固件、協(xié)議棧、數(shù)據(jù)庫(kù)管理系統(tǒng)、操作系統(tǒng)、跨平臺(tái)運(yùn)行時(shí)環(huán)境、虛擬機(jī),或者它們中一個(gè)或者多個(gè)的組合的代碼。所述裝置和執(zhí)行環(huán)境可以實(shí)現(xiàn)各種不同的計(jì)算模型架構(gòu),諸如網(wǎng)絡(luò)服務(wù)(web service)、分布式計(jì)算和網(wǎng)格計(jì)算架構(gòu)。計(jì)算機(jī)程序(也被稱為程序、軟件、軟件應(yīng)用、腳本或者代碼)可以以程序語(yǔ)言的任意形式編寫,包括編譯或者解釋語(yǔ)言、說明或程序語(yǔ)言,并且可以以任意形式部署,包括作為獨(dú)立的程序或者作為模塊、組件、子程序、對(duì)象或者其他適合用于計(jì)算環(huán)境中的單元。計(jì)算機(jī)程序可以,但不必,對(duì)應(yīng)于文件系統(tǒng)中的文件。程序可以被存儲(chǔ)在持有其他程序或者數(shù)據(jù)的文件的一部分中(例如,保存在標(biāo)記語(yǔ)言文檔的一個(gè)或者多個(gè)腳本),在專用于討論中的程序的一個(gè)文件中,或者在多個(gè)協(xié)同文件(例如,保存一個(gè)或者多個(gè)模塊、子程序或者代碼部分的文件)中。計(jì)算機(jī)程序可以被部署以在位于一個(gè)位置的或通過通信網(wǎng)絡(luò)相互連接的多個(gè)位置上分布的一個(gè)計(jì)算機(jī)或者多個(gè)計(jì)算機(jī)上執(zhí)行。在本文中所述的過程和邏輯流程可以由執(zhí)行一個(gè)或者多個(gè)計(jì)算機(jī)程序通過對(duì)輸入數(shù)據(jù)操作和產(chǎn)生輸出來執(zhí)行動(dòng)作的一個(gè)或者多個(gè)可編程處理器執(zhí)行。所述過程和邏輯流程可以通過專用邏輯電路執(zhí)行,并且裝置也用以實(shí)現(xiàn)為專用邏輯電路,例如,F(xiàn)PGA(現(xiàn)場(chǎng)可編程門陣列)或者ASIC(專用集成電路)。適合于計(jì)算機(jī)程序執(zhí)行的處理器包括,以示例方式,通用和專用微處理器,以及任意類型的數(shù)字計(jì)算機(jī)的一個(gè)或者多個(gè)處理器。一般地,處理器將從只讀存儲(chǔ)器或者隨機(jī)存取存儲(chǔ)器或者二者接收指令和數(shù)據(jù)。計(jì)算機(jī)的必需元件是用于根據(jù)指令執(zhí)行動(dòng)作的處理器和用于存儲(chǔ)指令和數(shù)據(jù)的一個(gè)或者多個(gè)存儲(chǔ)設(shè)備。一般地,計(jì)算機(jī)將還包括用于存儲(chǔ)數(shù)據(jù)的一個(gè)或者多個(gè)大容量存儲(chǔ)設(shè)備或者與其操作性地耦合以接收數(shù)據(jù)或者發(fā)送數(shù)據(jù),或者二者,例如,磁盤、磁光盤或者光盤。但是,計(jì)算機(jī)不必具有這些設(shè)備。此外,計(jì)算機(jī)可以被嵌入到另一設(shè)備中,例如,移動(dòng)電話、個(gè)人數(shù)字助手(PDA)、移動(dòng)音頻或者視頻播放器、游戲機(jī)、全球定位系統(tǒng)(GPS)接收機(jī)或者可攜帶存儲(chǔ)設(shè)備(例如,通用串行總線(USB)閃存驅(qū)動(dòng)),僅舉幾例。適合于存儲(chǔ)計(jì)第機(jī)程序指令和數(shù)據(jù)的設(shè)備包括各種形式的非易失性存儲(chǔ)器、介質(zhì)和存儲(chǔ)設(shè)備,包括以示例方式的半導(dǎo)體存儲(chǔ)設(shè)備,例如,EPROM、EEPROM和閃存設(shè)備;磁盤,例如內(nèi)部硬盤或者可移除磁盤;磁光盤;以及⑶ROM和DVD-ROM磁盤。處理器和存儲(chǔ)器可·以附加有或者合并于專用邏輯電路中。類似地,盡管操作以特定次序在附圖中描述,但這不能理解為要求這些操作以所示的特定次序或者以順序次序執(zhí)行,或者執(zhí)行所有的所示操作,以實(shí)現(xiàn)所期望的結(jié)果。在某些環(huán)境中,多任務(wù)和并行處理可以是有利的。此外,在上述實(shí)施例中的各種系統(tǒng)組件的分開不應(yīng)被理解為在所有實(shí)施例中需要這樣的分開,而是應(yīng)當(dāng)理解為所述的程序組件和系統(tǒng)可以一般地在單一軟件產(chǎn)品中集成在一起或者封裝到多個(gè)軟件產(chǎn)品中。因此,已經(jīng)描述了所述主題的特定實(shí)施例。其他實(shí)施例落入如下的權(quán)利要求的范圍內(nèi)。此外,可以使用用于從主機(jī)引導(dǎo)的其他機(jī)構(gòu)。在一些情況中,在權(quán)利要求中所引用的動(dòng)作可以以不同次序?qū)崿F(xiàn)并且仍然能夠?qū)崿F(xiàn)所期望的結(jié)果。此外,為實(shí)現(xiàn)所期望的結(jié)果,在附圖中所描述的過程不必要求所示的特定次序,或者順序次序。在一些實(shí)現(xiàn)中,多任務(wù)和并行處理是有利的。
權(quán)利要求
1.一種系統(tǒng),包括 用于在存儲(chǔ)設(shè)備接收用于引導(dǎo)存儲(chǔ)設(shè)備的指令的裝置,其中所述存儲(chǔ)設(shè)備包括所述存儲(chǔ)設(shè)備的控制器可訪問的非易失性存儲(chǔ)器; 用于響應(yīng)于接收所述用于引導(dǎo)存儲(chǔ)設(shè)備的指令,通過所述存儲(chǔ)設(shè)備從主機(jī)設(shè)備獲取固件的裝置,其中所述主機(jī)設(shè)備與所述存儲(chǔ)設(shè)備分開并與所述存儲(chǔ)設(shè)備通作耦合;以及 用于使用來自所述主機(jī)設(shè)備的固件引導(dǎo)所述存儲(chǔ)設(shè)備的裝置,其中所述存儲(chǔ)設(shè)備與所述主機(jī)設(shè)備分開引導(dǎo),以及所述主機(jī)設(shè)備使用存儲(chǔ)于所述非易失性存儲(chǔ)器并且通過與所述存儲(chǔ)設(shè)備的存儲(chǔ)控制器通信獲得的數(shù)據(jù)或者指令來執(zhí)行操作。
2.根據(jù)權(quán)利要求I的系統(tǒng),其中用于引導(dǎo)所述存儲(chǔ)設(shè)備的指令被所述主機(jī)設(shè)備接收并且指示所述存儲(chǔ)設(shè)備使用來自所述主機(jī)設(shè)備的固件引導(dǎo)以及覆寫所述存儲(chǔ)設(shè)備的非易失性儲(chǔ)器所存儲(chǔ)的從固件引導(dǎo)的指令。
3.根據(jù)權(quán)利要求I的系統(tǒng),進(jìn)一歩包括,在所述存儲(chǔ)設(shè)備已經(jīng)使用來自所述主機(jī)設(shè)備的固件引導(dǎo)后,使用所述固件在所述存儲(chǔ)設(shè)備上執(zhí)行ー個(gè)或者多個(gè)操作。
4.根據(jù)權(quán)利要求3的系統(tǒng),其中所述固件包括操作固件,其具有使得所述控制器在所述非易失性存儲(chǔ)器上執(zhí)行讀、寫和擦除操作的指令,并且在所述存儲(chǔ)設(shè)備上執(zhí)行的所述ー個(gè)或者多個(gè)操作包括ー個(gè)或者多個(gè)所述讀、寫和擦除操作。
5.根據(jù)權(quán)利要求4的系統(tǒng),其中所述操作固件進(jìn)ー步包括使得所述控制器在所述非易失性存儲(chǔ)器上執(zhí)行存儲(chǔ)管理操作的指令。
6.根據(jù)權(quán)利要求5的系統(tǒng),其中所述ー個(gè)或者多個(gè)所述存儲(chǔ)管理操作包括損耗均衡操作。
7.根據(jù)權(quán)利要求3的系統(tǒng),其中所述固件包括診斷固件,其具有使得所述控制器在所述存儲(chǔ)設(shè)備上制行診斷操作的指令;以及 其中在所述存儲(chǔ)設(shè)備上執(zhí)行的所述ー個(gè)或者多個(gè)操作包括一個(gè)或者多個(gè)診斷操作。
8.根據(jù)權(quán)利要求3的系統(tǒng),其中所述固件包括生產(chǎn)固件,其具有使得所述控制器測(cè)試所述存儲(chǔ)設(shè)備的組件的安裝和操作的指令,所述組件至少包括所述非易失性存儲(chǔ)器,以及在所述存儲(chǔ)設(shè)備上執(zhí)行的所述ー個(gè)或者多個(gè)操作包括用于測(cè)試所述存儲(chǔ)設(shè)備的一個(gè)或者多個(gè)組件的安裝和操作的ー個(gè)或者多個(gè)操作。
9.根據(jù)權(quán)利要求I的系統(tǒng),其中所述非易失性存儲(chǔ)器包括閃存。
10.ー種方法,包括 由主機(jī)設(shè)備提供引導(dǎo)命令給存儲(chǔ)設(shè)備,指示所述存儲(chǔ)設(shè)備使用來自所述主機(jī)設(shè)備的固件引導(dǎo),其中所述主機(jī)設(shè)備與所述存儲(chǔ)設(shè)備分開并與所述存儲(chǔ)設(shè)備通信耦合,并且所述存儲(chǔ)設(shè)備包括非易失性存儲(chǔ)器; 在主機(jī)設(shè)備接收存設(shè)備難備好從所述主機(jī)設(shè)備接收固件的指示;以及 響應(yīng)于接收所述指示,所述主機(jī)設(shè)備傳輸所述固件到所述存儲(chǔ)設(shè)備,其中到所述存儲(chǔ)設(shè)備的所述固件的傳輸使得所述存儲(chǔ)設(shè)備使用所述固件引導(dǎo),其中所述存儲(chǔ)設(shè)備與所述主機(jī)設(shè)備分開引導(dǎo)。
11.根據(jù)權(quán)利要求10的方法,其中所述固件包括操作固件,其具有使得所述存儲(chǔ)設(shè)備的控制器在所述存儲(chǔ)設(shè)備的所述非易失性存儲(chǔ)器上執(zhí)行讀、寫和擦除操作的指令。
12.根據(jù)權(quán)利要求10的方法,其中所述固件包括診斷固件,其具有使得所述存儲(chǔ)設(shè)備的控制器在所述存儲(chǔ)設(shè)備上執(zhí)行診斷操作的指令。
13.根據(jù)權(quán)利要求10的方法,其中所述固件包括生產(chǎn)固件,其具有使得所述存儲(chǔ)設(shè)備的控制器測(cè)試所述存儲(chǔ)設(shè)備的組件的安裝和操作的指令,所述組件至少包括所述非易失性存儲(chǔ)器。
14.根據(jù)權(quán)利要求10的方法,其中所述固件被存儲(chǔ)于所述主機(jī)設(shè)備的易失性存儲(chǔ)器中并且從所述主機(jī)設(shè)備的易失性存儲(chǔ)器提供給所述存儲(chǔ)設(shè)備。
15.根據(jù)權(quán)利利要求10的方法,進(jìn)ー步包括,響應(yīng)于訪問存儲(chǔ)于所述主機(jī)設(shè)備可訪問的多個(gè)存儲(chǔ)設(shè)備的一個(gè)中的數(shù)據(jù)的請(qǐng)求,決定所述請(qǐng)求數(shù)據(jù)由存儲(chǔ)設(shè)備存儲(chǔ);以及 其中響應(yīng)于決定所述請(qǐng)求數(shù)據(jù)由所述存儲(chǔ)設(shè)備存儲(chǔ),提供所述引導(dǎo)命令給所述存儲(chǔ)設(shè)備。
16.ー種存儲(chǔ)設(shè)備,包括 非易失性存儲(chǔ)器; 主機(jī)接ロ,適用于將所述存儲(chǔ)設(shè)備通信耦接到主機(jī)設(shè)備;以及 存儲(chǔ)控制器,被配置為在所述非易失性存儲(chǔ)器上執(zhí)行存儲(chǔ)操作并且適用于通過所述主機(jī)接ロ與所述主機(jī)設(shè)備通信,其中所述存儲(chǔ)控制器還可以被配置為 通過所述主機(jī)接ロ接收用于從所述主機(jī)設(shè)備引導(dǎo)所述存儲(chǔ)設(shè)備的指令; 響應(yīng)于接收所述指令,從所述主機(jī)設(shè)備獲取固件;以及 使用來自所述主機(jī)設(shè)備的固件引導(dǎo)所述存儲(chǔ)設(shè)備,其中所述存儲(chǔ)設(shè)備與所述主機(jī)設(shè)備分開引導(dǎo),并且所述主機(jī)設(shè)備使用存儲(chǔ)于所述非易失性存儲(chǔ)器并且經(jīng)由通過所述主機(jī)接ロ與所述存儲(chǔ)設(shè)備的存儲(chǔ)控制器的通信獲得的數(shù)據(jù)或者指令執(zhí)行操作。
17.根據(jù)權(quán)利要求16的存儲(chǔ)設(shè)備,其中所述固件包括操作固件,其具有使得所述存儲(chǔ)控制器在所述非易失性存儲(chǔ)器上執(zhí)行讀、寫和擦除操作的指令。
18.根據(jù)權(quán)利要求17的存儲(chǔ)設(shè)備,其中所述操作固件進(jìn)ー步具有使得所述存儲(chǔ)控制器在所述非易失性存儲(chǔ)器上執(zhí)行存儲(chǔ)管理操作的指令。
19.根據(jù)權(quán)利要求16的存儲(chǔ)設(shè)備,其中所述固件包括診斷固件,其具有使得所述存儲(chǔ)控制器在所述存儲(chǔ)設(shè)備上執(zhí)行診斷操作的指令。
20.根據(jù)權(quán)利要求16的存儲(chǔ)設(shè)備,其中所述固件包括生產(chǎn)固件,其具有使得所述存儲(chǔ)控制器測(cè)試所述存儲(chǔ)設(shè)備的組件的安裝和操作的指令,所述組件至少包括所述非易失性存儲(chǔ)器。
全文摘要
本發(fā)明涉及從主機(jī)引導(dǎo)存儲(chǔ)設(shè)備。在一個(gè)實(shí)施方式中,一種方法包括在存儲(chǔ)設(shè)備接收用于引導(dǎo)所述存儲(chǔ)設(shè)備的指令,其中所述存儲(chǔ)設(shè)備包括所述存儲(chǔ)設(shè)備的控制器可訪問的非易失性存儲(chǔ)器;以及,響應(yīng)于接收用于引導(dǎo)所述存儲(chǔ)設(shè)備的所述指令,通過所述存儲(chǔ)設(shè)備獲取來自主機(jī)設(shè)備的固件,其中所述主機(jī)設(shè)備與所述存儲(chǔ)設(shè)備分開并與所述存儲(chǔ)設(shè)備通信耦合。所述方法還可以包括使用來自所述主機(jī)設(shè)備的所述固件引導(dǎo)所述存儲(chǔ)設(shè)備,其中所述存儲(chǔ)設(shè)備與所述主機(jī)設(shè)備分開引導(dǎo),并且所述主機(jī)設(shè)備使用存儲(chǔ)于所述非易失性存儲(chǔ)器中并且通過與所述存儲(chǔ)設(shè)備的存儲(chǔ)控制器的通信獲得的數(shù)據(jù)或者指令執(zhí)行操作。
文檔編號(hào)G06F9/30GK102915210SQ201210319478
公開日2013年2月6日 申請(qǐng)日期2012年6月29日 優(yōu)先權(quán)日2011年7月1日
發(fā)明者A·費(fèi), N·J·瓦卡拉特, N·瑟弗 申請(qǐng)人:蘋果公司