各實施例涉及數(shù)據(jù)存儲裝置。具體地,各實施例涉及用于從存儲片上系統(tǒng)(storage SOC,也稱為片上存儲系統(tǒng))檢索集成協(xié)議橋接固件的方法及其對應(yīng)方法。
背景技術(shù):
協(xié)議橋可以經(jīng)配置經(jīng)由例如通用串行總線(USB)接口耦合至主機。協(xié)議橋還經(jīng)配置經(jīng)由例如串行ATA(SATA)總線耦合至存儲片上系統(tǒng)(SOC)。例如,協(xié)議橋耦合至協(xié)議橋串行外圍接口(SPI)閃存。類似地,存儲SOC耦合至存儲SOC SPI閃存。在上電時,協(xié)議橋內(nèi)部的ROM被訪問并且存儲在ROM中的代碼被執(zhí)行。這個代碼在功能上有效地使協(xié)議橋訪問其協(xié)議橋SPI閃存以從其檢索代碼和數(shù)據(jù),從而使協(xié)議橋初始化到完全功能狀態(tài)。類似地,存儲SOC包括內(nèi)部ROM,其在上電時也被訪問。存儲在存儲SOC中的代碼和數(shù)據(jù)被訪問并用于使存儲SOC訪問存儲SOC SPI閃存并從其檢索代碼和數(shù)據(jù)。這個檢索的代碼和數(shù)據(jù)使存儲SOC初始化到完全功能狀態(tài)。協(xié)議橋和存儲SOC隨后可以使能總線并在其上實現(xiàn)SATA協(xié)議。SPI閃存和兩者(一個用于協(xié)議橋以及另一個用于存儲SOC)的存在是昂貴的,并且對數(shù)據(jù)存儲裝置電子裝置的大小的進一步減小以及降低功耗和散熱提供障礙。
技術(shù)實現(xiàn)要素:
附圖說明
圖1A是協(xié)議橋和存儲SOC以及輔助閃存的框圖。
圖1B是協(xié)議橋的框圖。
圖2是根據(jù)一個實施例的數(shù)據(jù)存儲裝置的一部分的框圖。
圖3是示出一個實施例的各方面的流程圖。
圖4是示出一個實施例的各方面的流程圖。
圖5是根據(jù)另一個實施例的方法的流程圖。
具體實施方式
協(xié)議橋可以包括兩個部分:即,連接至啟動器裝置的前端和連接至目標裝置的后端。后端可以經(jīng)配置使用經(jīng)設(shè)計用于目標裝置的數(shù)據(jù)協(xié)議,而前端可以經(jīng)配置使用經(jīng)設(shè)計用于啟動器裝置的協(xié)議。前端和后端需要使用相同的協(xié)議;每個系統(tǒng)部件可以使用最適合所附接的裝置的任何協(xié)議。例如,前端可以使用以太網(wǎng)光纖通道(FCoE)或通用串行總線(USB),而后端可以使用串行連接SCSI(SAS)或串行ATA(SATA)。
在功能上,橋接控制器將來自一個協(xié)議的數(shù)據(jù)流量轉(zhuǎn)換為另一個并傳送數(shù)據(jù)流量,使得使用不同協(xié)議的裝置可以有效通信。數(shù)據(jù)存儲 裝置(諸如包括旋轉(zhuǎn)存儲介質(zhì)的硬盤驅(qū)動器(HDD)以及包括旋轉(zhuǎn)存儲介質(zhì)和固態(tài)存儲介質(zhì)兩者的混合盤驅(qū)動器)可以包括協(xié)議橋,諸如USB至SATA協(xié)議橋。
圖1A是協(xié)議橋102的框圖。如圖所示,協(xié)議橋102可以包括控制器116,其可以耦合至例如USB接口112并耦合至例如SATA接口114。電源118向協(xié)議橋102提供穩(wěn)壓電力??刂破?16耦合至非易失性存儲器108,以用于下文開發(fā)目的。
圖1B是協(xié)議橋和存儲SOC以及輔助閃存的框圖。如圖所示,協(xié)議橋102可以經(jīng)配置經(jīng)由例如USB接口耦合至主機104。協(xié)議橋102還經(jīng)配置經(jīng)由例如SATA總線702耦合至存儲SOC 106。如圖1B所示,協(xié)議橋102耦合至協(xié)議橋串行外圍接口(SPI)閃存108。類似地,存儲SOC 106耦合至存儲SOC SPI閃存110。在上電時,協(xié)議橋內(nèi)部的ROM被訪問并且存儲在ROM中的代碼被執(zhí)行。這個代碼在功能上有效地使協(xié)議橋102訪問其協(xié)議橋SPI閃存108以從其檢索代碼和數(shù)據(jù),從而使協(xié)議橋102初始化到完全功能狀態(tài)。類似地,存儲SOC 106包括內(nèi)部ROM,其在上電時也被訪問。存儲在存儲SOC 106中的代碼和數(shù)據(jù)被訪問并用于使存儲SOC 106訪問存儲SOC SPI閃存110并從其檢索代碼和數(shù)據(jù)。這個檢索的代碼和數(shù)據(jù)使存儲SOC初始化到完全功能狀態(tài)。協(xié)議橋102和存儲SOC 106隨后可以使能總線114并在其上實現(xiàn)SATA協(xié)議。SPI閃存108和110兩者(一個用于協(xié)議橋102以及另一個用于存儲SOC)的存在是昂貴的并且對數(shù)據(jù)存儲裝置電子裝置的大小的進一步減小以及降低功耗和散熱提供障礙。
根據(jù)一個實施例的數(shù)據(jù)存儲裝置200和數(shù)據(jù)存儲裝置電路系統(tǒng)在圖2中示出。如圖所示,數(shù)據(jù)存儲裝置200可以包括協(xié)議橋202,其可以經(jīng)配置耦合至主機204。協(xié)議橋202可以經(jīng)配置在第一通信協(xié)議和第二通信協(xié)議之間轉(zhuǎn)換。例如,第一協(xié)議可以包括USB以及第二協(xié)議可以包括SATA。不過需要指出,雖然USB和SATA用于示例性目的,第一協(xié)議或第二協(xié)議不存在“優(yōu)選”協(xié)議。因此,協(xié)議橋202可以經(jīng)配置在其他協(xié)議之間轉(zhuǎn)換,如通過具體實施方式要求的。存儲SOC 206可以通過總線208耦合至協(xié)議橋202??偩€208可以符合例如SATA協(xié)議。其他協(xié)議可以由總線208實現(xiàn)。存儲SOC 206可以經(jīng)配置控制 數(shù)據(jù)存儲裝置200并且可以包括但不限于,配置為讀取信道的電路系統(tǒng)、硬盤控制器、微處理器、糾錯碼(ECC)、高速接口I/O和系統(tǒng)存儲器功能件,它們所有均設(shè)置在單片硅上。
第一非易失性存儲器210可以耦合至存儲SOC 206。例如,第一非易失性存儲器210可以包括閃存并且可以經(jīng)配置存儲存儲SOC數(shù)據(jù),存儲SOC數(shù)據(jù)包括,例如存儲SOC代碼、存儲SOC配置和其他數(shù)據(jù)。數(shù)據(jù)存儲裝置200進一步可以包括一個或更多個硬盤驅(qū)動器(HDD),每個HDD包括一個或更多個旋轉(zhuǎn)磁盤,如在237處所示。數(shù)據(jù)存儲裝置200可以另選地包括非易失性(例如,基于閃存的)存儲器242。另選地,數(shù)據(jù)存儲裝置200可以包括一個或更多個混合存儲裝置,每個混合存儲裝置包括磁盤237和非易失性半導(dǎo)體存儲器242兩者,如在240處建議的。數(shù)據(jù)存儲裝置200還可以包括一個或更多個網(wǎng)絡(luò)接口,其使數(shù)據(jù)存儲裝置200通過通信端口與網(wǎng)絡(luò)和/或其他外部裝置通信。
根據(jù)一個實施例,第一非易失性存儲器(“非易失性存儲器”有時候縮寫為“NV MEM”,如圖2所示)還可以經(jīng)配置存儲協(xié)議橋數(shù)據(jù),協(xié)議橋數(shù)據(jù)包括,例如協(xié)議橋代碼、協(xié)議橋配置和其他數(shù)據(jù)。在一個實施例中,存儲SOC數(shù)據(jù)可以在第一非易失性存儲器210中的第一邏輯塊地址(LBA)處開始存儲,并且協(xié)議橋數(shù)據(jù)可以遠離存儲SOC數(shù)據(jù)在第一非易失性存儲器210中的第二LBA處開始存儲。這樣,數(shù)據(jù)存儲裝置200不需要設(shè)有專用于存儲協(xié)議橋數(shù)據(jù)的非易失性存儲器。這節(jié)約電路基板面、降低成本、功耗并利于散熱。
操作時,數(shù)據(jù)存儲裝置200可以經(jīng)配置,使得在其上電時,存儲SOC 206從第一非易失性存儲器210檢索其存儲SOC代碼/數(shù)據(jù)并根據(jù)檢索的存儲SOC代碼/數(shù)據(jù)自我配置。此類配置可以包括存儲SOC 206的初始化,使得存儲SOC完全工作在其指定用途以及使總線208和協(xié)議橋202有效。類似,在操作時,數(shù)據(jù)存儲裝置200可以經(jīng)配置,使得在其上電時,協(xié)議橋202也從第一非易失性存儲器210檢索其協(xié)議橋代碼/數(shù)據(jù)并根據(jù)檢索的協(xié)議橋代碼/數(shù)據(jù)自我配置。此類配置可以包括協(xié)議橋202的初始化,使得協(xié)議橋完全工作在其預(yù)期目的以及使總線(例如,SASTA或其他協(xié)議)208和存儲SOC 206有效。
根據(jù)一個實施例并如圖2所示,存儲SOC 206可以包括第一易失性存儲器209。存儲SOC 206還可以包括第二非易失性存儲器207,所述第二非易失性存儲器可以經(jīng)配置存儲存儲SOC指令,當執(zhí)行存儲SOC指令時,使存儲SOC 206在上電時從第一非易失性存儲器210加載存儲SOC代碼/數(shù)據(jù)。即,存儲SOC 206可以經(jīng)配置,在上電時從第二非易失性存儲器207檢索存儲的代碼/數(shù)據(jù)、將它們加載到第一易失性存儲器209并促使它們執(zhí)行。當加載到第一易失性存儲器209中時,此類代碼/數(shù)據(jù)有效地使存儲SOC 206從第一非易失性存儲器210檢索存儲SOC數(shù)據(jù)并利用存儲SOC數(shù)據(jù)進行自我配置。
根據(jù)一個實施例并如圖2所示,協(xié)議橋202可以包括第二易失性存儲器207。協(xié)議橋202還可以包括第三非易失性存儲器205,其可以經(jīng)配置存儲協(xié)議橋指令,當執(zhí)行協(xié)議橋指令時,其使協(xié)議橋202在上電時經(jīng)由總線208并經(jīng)由存儲SOC 206從第一非易失性存儲器210加載協(xié)議橋代碼/數(shù)據(jù)。即,協(xié)議橋202可以經(jīng)配置在上電時從第三非易失性存儲器205檢索存儲的指令、將它們加載到第二易失性存儲器207中并促使它們執(zhí)行。當加載到第二易失性存儲器207中時,此類指令有效地使協(xié)議橋202從存儲SOC 206請求協(xié)議橋代碼/數(shù)據(jù),所述存儲SOC可以從第一非易失性存儲器210檢索所請求的協(xié)議橋代碼/數(shù)據(jù)并經(jīng)由總線208向協(xié)議橋202提供所請求的協(xié)議橋代碼/數(shù)據(jù),從而使協(xié)議橋202利用所請求的協(xié)議橋代碼/數(shù)據(jù)自我配置。第一非易失性存儲器210可以包括使用一些其他技術(shù)的閃存和/或非易失性存儲器。
第一非易失性存儲器210和非易失性存儲器242可以是分開的和不同的,如圖2所示。另選的,第一非易失性存儲器210可以形成非易失性存儲器242的部分;即,可以形成數(shù)據(jù)存儲裝置的主存儲器的部分,盡管優(yōu)選在其固定非用戶可訪問部分中。另選地,第一非易失性存儲器210自身的一部分仍然是用戶可訪問的。根據(jù)一個實施例,協(xié)議橋202可以經(jīng)配置從第一非易失性存儲器210以預(yù)定大小塊重復(fù)檢索協(xié)議橋代碼/數(shù)據(jù)的各部分。在一個實施方式中,塊大小可以是4KB的大小。可以適應(yīng)其他的塊大小。這可以通過下列步驟執(zhí)行:以一定偏移量在第一非易失性存儲器210中提取第一塊(例如,0)、驗證第一塊(檢查誤碼等)、將驗證的塊加載到第二易失性存儲器207中、 更新偏移量并以更新的偏移量提取第二塊協(xié)議橋代碼/數(shù)據(jù)等,直到協(xié)議橋代碼/數(shù)據(jù)的所有塊已從第一非易失性存儲器210被檢索、驗證并加載到第二易失性存儲器207中??梢噪S后執(zhí)行加載到第二易失性存儲器207中的整個代碼/數(shù)據(jù)序列的另外驗證,于是加載的代碼可以經(jīng)執(zhí)行以配置協(xié)議橋202。
圖3是示出根據(jù)一個實施例的加載協(xié)議數(shù)據(jù)(代碼、指令、配置信息)的協(xié)議橋的方法的流程圖。塊B31表示上電事件,諸如當數(shù)據(jù)存儲裝置首次通電或從不完全工作狀態(tài)喚醒。隨后協(xié)議橋可以檢索存儲在其非易失性存儲器或只讀存儲器(ROM)(諸如圖2中的第三非易失性存儲器205)中的代碼/數(shù)據(jù)。檢索的代碼可以隨后加載到其易失性存儲器(例如,動態(tài)隨機存取存儲器(DRAM))中,諸如在圖2中的207所示的。如在B32所示,協(xié)議橋202可以隨后執(zhí)行這個代碼。同時(例如),存儲SOC 206可以處于從其第二非易失性存儲器207檢索代碼/數(shù)據(jù)、將代碼/數(shù)據(jù)加載到其第一易失性存儲器209中的進程中。協(xié)議橋202中執(zhí)行的協(xié)議代碼的一部分和存儲SOC 206中執(zhí)行的存儲SOC代碼的一部分可以有效地激活總線208。
總線協(xié)議208現(xiàn)在有效,則協(xié)議橋202和存儲SOC 206之間的通信以及通過擴展與第一非易失性存儲器的通信現(xiàn)在是可能的。如在B34所示,協(xié)議橋現(xiàn)在可以從存儲SOC 206請求協(xié)議橋代碼/數(shù)據(jù)。存儲SOC206可以接著從第一非易失性存儲器210檢索請求的協(xié)議橋代碼/數(shù)據(jù)并在接收到請求的協(xié)議橋代碼/數(shù)據(jù)的情況下,將其發(fā)送到協(xié)議橋202,如在圖3中的B35所示。接收到的協(xié)議橋代碼/數(shù)據(jù)現(xiàn)在可以被驗證(例如,檢查誤碼)并且驗證后的協(xié)議橋代碼/數(shù)據(jù)可以存儲在協(xié)議橋202的第二易失性存儲器207中,如在B36所示。協(xié)議橋代碼/數(shù)據(jù)或其部分可以由協(xié)議橋202迭代請求、由存儲SOC 206發(fā)送并由協(xié)議橋202接收和驗證,并且直到先前存儲在第一非易失性存儲器210中的所有協(xié)議橋代碼/數(shù)據(jù)已經(jīng)存儲在第二易失性存儲器207中。如上面指出的,從存儲SOC 206數(shù)據(jù)迭代接收到的協(xié)議橋代碼/數(shù)據(jù)的部分或塊可以是例如4KB的大小,盡管也可以使用其他的大小(16KB、32KB或其他)。這種迭代在圖3中示為重復(fù)塊B34、B35和B36。雖然未示出,一旦所有的協(xié)議橋代碼/數(shù)據(jù)已存儲在第二易失性存儲器207中,可以執(zhí)行一 個或更多個附加驗證操作以確保接收到?jīng)]有誤碼的協(xié)議橋代碼/數(shù)據(jù)。最后,如在B37所示,協(xié)議橋的控制器可以隨后執(zhí)行包含在加載的協(xié)議橋代碼/數(shù)據(jù)中的代碼以將協(xié)議橋202配置至預(yù)期的工作狀態(tài)。
數(shù)據(jù)存儲裝置的制造商面臨著增加存儲容量和功能性以及降低成本的似乎相對的目標。這些競爭性目標已導(dǎo)致此類制造商使用操作有限寬度字和僅能夠?qū)ぶ酚邢薮a空間的低成本微處理器。例如,協(xié)議橋中的控制器可以配置為尋址空間僅可以跨越約64000個離散物理地址的16位控制器。不過,協(xié)議橋所使用的代碼總數(shù)可能不適合在控制器的地址空間內(nèi),尤其是在不大常見和瞬態(tài)狀況下,諸如來自主機的所選命令的接收。為了在此類不大常見和瞬態(tài)狀況下訪問所要求的功能,所謂的疊加代碼可以從第一非易失性存儲器210檢索并由存儲SOC206發(fā)送至協(xié)議橋202以加載到協(xié)議橋的第二易失性存儲器207中用于執(zhí)行。先前存儲在第二易失性存儲器207中的代碼可以被擦除或所述疊加代碼可以覆寫先前存儲在第二易失性存儲器207中的協(xié)議橋代碼。協(xié)議橋202可以隨后執(zhí)行疊加協(xié)議橋代碼以解決不大常見和/或瞬態(tài)狀況,于是疊加代碼可以被擦除或被它已經(jīng)替代的先前存儲在第二易失性存儲器207中的協(xié)議橋代碼/數(shù)據(jù)覆寫。
圖4是示出根據(jù)一個實施例將疊加代碼加載到數(shù)據(jù)存儲裝置的協(xié)議橋中的方法的流程圖。如圖所示,塊B41要求協(xié)議橋202從主機204接收命令。在B42,協(xié)議橋確定接收到的命令的執(zhí)行對于當前未駐留在第二易失性存儲器207中的疊加代碼/數(shù)據(jù)的執(zhí)行是必要的,并促使生成經(jīng)由存儲SOC 206從第一非易失性存儲器210獲取所需疊加代碼(的至少一部分)的請求。通過向存儲SOC 206發(fā)送生成的請求,塊B43要求協(xié)議橋從存儲SOC 206請求所需的疊加代碼/數(shù)據(jù)。在B44中,存儲SOC 206從第一非易失性存儲器210檢索請求的疊加代碼/數(shù)據(jù)并將其發(fā)送到協(xié)議橋202,如在B45所示。如在B46中所示的,所述協(xié)議橋可以隨后驗證接收到的協(xié)議橋疊加代碼/數(shù)據(jù)并將其存儲在第二易失性存儲器207中。疊加代碼/數(shù)據(jù)可以被迭代地逐塊請求、發(fā)送和接收,直到所有疊加代碼/數(shù)據(jù)已經(jīng)通過重復(fù)塊B43、B44、B45和B46被協(xié)議橋202接收,直到接收并存儲疊加代碼/數(shù)據(jù)的所有塊。在塊B47,協(xié)議橋202可以驗證疊加代碼/數(shù)據(jù),于是協(xié)議橋202可以開始執(zhí)行驗 證后的疊加代碼/數(shù)據(jù),從而執(zhí)行從主機204接收的命令。當不再需要疊加代碼/數(shù)據(jù)時,所述疊加代碼/數(shù)據(jù)可以以先前所述方式被其他協(xié)議橋代碼/數(shù)據(jù)替換。
圖5是根據(jù)一個實施例的方法的流程圖。如塊B51所示,存儲SOC數(shù)據(jù)(例如,存儲SOC代碼、存儲SOC配置數(shù)據(jù)和其他存儲SOC數(shù)據(jù))以及協(xié)議橋數(shù)據(jù)(例如,協(xié)議橋代碼、協(xié)議橋配置數(shù)據(jù)和其他協(xié)議橋數(shù)據(jù))可以存儲在第一非易失性存儲器中,如在圖2中的210所示。在塊B52,可以確定是否已經(jīng)發(fā)生數(shù)據(jù)存儲裝置的上電?;旧希粫l(fā)生任何事直到接通電源(B52的分支為“否”)。當接通電源時(B52的分支為“是”),塊B53要求從第一非易失性存儲器210(例如,包括SPI閃存)檢索存儲SOC代碼/數(shù)據(jù)并根據(jù)檢索的存儲SOC代碼/數(shù)據(jù)配置存儲SOC 206。為了在上電時實現(xiàn)上述動作,可以從第二非易失性存儲器207檢索代碼/數(shù)據(jù)并將其存儲在第一易失性存儲器209中以用于執(zhí)行。
在上電時,協(xié)議橋202可以類似地從其內(nèi)部第三非易失性存儲器205檢索代碼/數(shù)據(jù)并將其存儲在第二易失性存儲器207中以用于執(zhí)行。存儲在第一易失性存儲器209和第二易失性存儲器207中的代碼/數(shù)據(jù)還可以有效地使能總線協(xié)議208、使能協(xié)議橋202和存儲SOC 206之間的雙向通信。隨后,如在B54所示,協(xié)議橋202可以經(jīng)由存儲SOC 206和總線208從第一非易失性存儲器210檢索協(xié)議橋代碼/數(shù)據(jù)。協(xié)議橋202可以隨后根據(jù)檢索的協(xié)議橋代碼/數(shù)據(jù)被配置,使得協(xié)議橋202處于完全工作狀態(tài)。
根據(jù)一個實施例,協(xié)議橋代碼/數(shù)據(jù)可以存儲在第一非易失性存儲器210中。不過,協(xié)議橋代碼/數(shù)據(jù)可以不需要存儲在第一非易失性存儲器中。實際上,協(xié)議橋數(shù)據(jù)/代碼可以存儲在旋轉(zhuǎn)介質(zhì)237中。不過,在上電時在旋轉(zhuǎn)介質(zhì)中存儲協(xié)議橋代碼/數(shù)據(jù)可能導(dǎo)致無法接受的長延遲,因為包含記錄介質(zhì)的圓形磁盤旋轉(zhuǎn)至其標稱運行速度。在固態(tài)存儲器242中存儲協(xié)議橋代碼/數(shù)據(jù)的至少一部分避免此類延遲和加速旋轉(zhuǎn)問題。實際上,出于完成時間和功耗方面二者的考慮,用于檢索這個協(xié)議橋代碼/數(shù)據(jù)的命令理想情況下不會導(dǎo)致HDD圓形磁盤的加速旋轉(zhuǎn)。檢索執(zhí)行圖像的命令可以是映射到第一非易失性存儲器210的 日志頁命令。
通過消除專用于協(xié)議橋202的非易失性存儲器的需要,實施例的實施方式可以降低物料清單(BOM)成本。在相同的非易失性存儲器中存儲存儲SOC和協(xié)議橋代碼/數(shù)據(jù)可能需要相對較大的第一非易失性存儲器210。不過,此類較大的非易失性存儲器210不大可能比提供存儲存儲SOC代碼/數(shù)據(jù)的專用第一非易失性存儲器和存儲協(xié)議橋代碼/數(shù)據(jù)的專用第二非易失性存儲器更昂貴。此外,提供用于協(xié)議橋代碼/數(shù)據(jù)和存儲SOC代碼/數(shù)據(jù)兩者的一個非易失性存儲器210也減少空間需求、功耗和散熱以及相關(guān)聯(lián)的結(jié)構(gòu)。
雖然已經(jīng)描述了本公開的某些實施例,這些實施例僅通過示例的方式呈現(xiàn),但是所述實施例并不旨在限制本公開的范圍。實際上,本文所述的新穎方法、裝置和系統(tǒng)可以以各種其他形式實施。此外,在未脫離本公開的精神的情況下,可以對本文所述的方法和系統(tǒng)進行各種形式的省略、替換和改變。所附權(quán)利要求及等效要求旨在涵蓋落入本公開保護范圍和精神內(nèi)的此類形式或更改。例如,本領(lǐng)域的技術(shù)人員應(yīng)當理解,在各個實施例中,實際物理和邏輯結(jié)構(gòu)可以與附圖所示的不同。根據(jù)實施例,可以刪除上述示例中的某些步驟,也可添加其他步驟。而且,上述具體實施例的特征和屬性可以以各種方式組合,以形成附加實施例,所有這些實施例都落入本公開的范圍內(nèi)。雖然本公開提供某些優(yōu)選實施例和應(yīng)用,但是對于本領(lǐng)域的技術(shù)人員來說明顯的其他實施例(包括未提供本文所述的所有特征和優(yōu)點的實施例)也落入本公開的訪問內(nèi)。因此,本公開的范圍僅由所附權(quán)利要求限定。