使用與低級可編程定序器結(jié)合的通用可編程處理器的非易失性存儲器通道控制的制作方法
【專利摘要】本公開涉及使用與低級可編程定序器結(jié)合的通用可編程處理器的非易失性存儲器通道控制。系統(tǒng)包含控制處理器、非易失性存儲器設(shè)備接口和微定序器。控制處理器可以配置為通過命令接口接收命令和發(fā)送響應(yīng)。非易失性存儲器設(shè)備接口可以配置為將系統(tǒng)耦接至一個或多個非易失性存儲器設(shè)備。微定序器一般耦接至(i)控制處理器和(ii)非易失性存儲器設(shè)備接口。微定序器包含可由微定序器讀出并可由控制處理器寫入的控制存儲設(shè)備。響應(yīng)于接收一個特定命令,控制處理器能夠使微定序器根據(jù)特定命令在控制存儲設(shè)備中的位置開始執(zhí)行,微定序器能夠根據(jù)耦接至非易失性存儲器設(shè)備接口的一個或多個非易失性存儲器設(shè)備的協(xié)議,執(zhí)行特定命令的至少一部分。
【專利說明】使用與低級可編程定序器結(jié)合的通用可編程處理器的非易失性存儲器通道控制
【技術(shù)領(lǐng)域】
[0001]本發(fā)明一般涉及存儲器系統(tǒng),更具體而言,涉及用于實現(xiàn)使用與低級可編程定序器結(jié)合的通用可編程處理器的非易失性存儲器通道控制的方法和/或裝置。
【背景技術(shù)】
[0002]常規(guī)的非易失性存儲器控制系統(tǒng)嘗試使用多個不同的協(xié)議來給予可以由系統(tǒng)使用的設(shè)備的范圍靈活性。支持多個不同協(xié)議涉及用于每個預想類型的接口、以及用于每個要求的接口命令類型的專用的控制邏輯。依賴于用于每個接口協(xié)議的專用的控制邏輯不是非常靈活的方案,對于新的或者略改變的接口協(xié)議的版本需要昂貴的邏輯的重新設(shè)計?;蛘?,中央處理單元(CPU)可以被用于允許非易失性存儲器接口的一定靈活性的低級控制。然而,這對CPU施加了較高負擔,因此導致有限的性能。
[0003]理想的是實現(xiàn)使用與低級可編程定序器結(jié)合的通用可編程處理器的非易失性存儲器通道控制。
【發(fā)明內(nèi)容】
[0004]本發(fā)明涉及的系統(tǒng)包含控制處理器、非易失性存儲器設(shè)備接口和微定序器??刂铺幚砥骺梢耘渲脼橥ㄟ^命令接口接收命令以及發(fā)送響應(yīng)。非易失性存儲器設(shè)備接口可以配置為將系統(tǒng)耦接至一個或多個非易失性存儲器設(shè)備。微定序器一般耦接至(i)控制處理器和(ii)非易失性存儲器設(shè)備接口。微定序器包含可由微定序器讀出并可由控制處理器寫入的控制存儲設(shè)備。響應(yīng)于接收一個特定命令,控制處理器能夠使微定序器根據(jù)特定命令在控制存儲設(shè)備中的位置開始執(zhí)行,微定序器能夠根據(jù)耦接至非易失性存儲器設(shè)備接口的一個或多個非易失性存儲器設(shè)備的協(xié)議,執(zhí)行特定命令的至少一部分。
[0005]本發(fā)明包括的一個方面涉及一種系統(tǒng),包括控制處理器、非易失性存儲器設(shè)備接口和微定序器??刂铺幚砥髋渲脼橥ㄟ^命令接口接收命令和發(fā)送響應(yīng)。非易失性存儲器設(shè)備接口配置為將系統(tǒng)耦接至一個或多個非易失性存儲器設(shè)備。微定序器耦接至(i )控制處理器和(i i )非易失性存儲器設(shè)備接口。微定序器包括可由微定序器讀出并可由控制處理器寫入的控制存儲設(shè)備。響應(yīng)于接收命令中的特定命令,控制處理器能夠使微定序器根據(jù)特定命令在控制存儲設(shè)備中的位置開始執(zhí)行,并且微定序器能夠根據(jù)耦接至非易失性存儲器設(shè)備接口的一個或多個非易失性存儲器設(shè)備的協(xié)議,執(zhí)行特定命令的至少一部分。
[0006]在上述方面的系統(tǒng)的一些實施方式中,非易失性存儲器設(shè)備接口包括多個數(shù)據(jù)I/O引腳和多個控制I/O引腳。在實現(xiàn)控制I/O引腳和數(shù)據(jù)I/O引腳的一些實施方式中,微定序器能夠改變控制I/o引腳和數(shù)據(jù)I/O引腳的狀態(tài),以根據(jù)協(xié)議執(zhí)行特定命令。
[0007]在上述方面的系統(tǒng)的一些實施方式中,控制存儲設(shè)備被控制處理器編程為執(zhí)行與附接到非易失性存儲器設(shè)備接口的一個或多個非易失性存儲器設(shè)備關(guān)聯(lián)的一個或多個協(xié)議。在一些實施方式中,控制處理器進一步配置為:初始使能控制處理器將控制存儲設(shè)備編程為執(zhí)行與多個類型的非易失性存儲器設(shè)備兼容的低速協(xié)議;以及隨后使能控制處理器將控制存儲設(shè)備編程為執(zhí)行與一個或多個非易失性存儲器設(shè)備兼容的更高速協(xié)議。
[0008]在一些實施方式中,上述方面的系統(tǒng)還包括輸出數(shù)據(jù)接口和輸入數(shù)據(jù)接口。輸出數(shù)據(jù)接口通過微定序器耦接至非易失性存儲器設(shè)備接口,輸出數(shù)據(jù)接口包括輸出數(shù)據(jù)緩沖,輸出數(shù)據(jù)緩沖能夠接收要發(fā)送至非易失性存儲器設(shè)備接口的數(shù)據(jù)。輸入數(shù)據(jù)接口通過微定序器耦接至非易失性存儲器設(shè)備接口,輸入數(shù)據(jù)接口包括輸入數(shù)據(jù)緩沖,輸入數(shù)據(jù)緩沖能夠接收從非易失性存儲器設(shè)備接口接收的數(shù)據(jù)。在一些實施方式中,微定序器進一步能夠(i)檢測輸入數(shù)據(jù)緩沖的滿狀態(tài)(fullcondition),以及(ii)響應(yīng)于檢測滿狀態(tài),跳至控制存儲設(shè)備中的確定的位置。
[0009]在一些實施方式中,上述方面的系統(tǒng)是固態(tài)驅(qū)動器SSD設(shè)備的一部分。
[0010]在一些實施方式中,上述方面的系統(tǒng)實現(xiàn)為一個或多個集成電路。
[0011]本發(fā)明還包括的一個方面涉及一種控制非易失性存儲器通道的方法,包括如下步驟:(i)通過耦接至控制處理器的命令接口,接收命令和發(fā)送響應(yīng);以及(ii)使用耦接至控制處理器的微定序器,開始執(zhí)行在控制存儲設(shè)備中的位置處的指令,其中,位置由控制處理器根據(jù)接收的命令中的特定命令確定,其中,微定序器根據(jù)通過非易失性存儲器設(shè)備接口耦接至微定序器的一個或多個非易失性存儲器設(shè)備的協(xié)議,執(zhí)行特定命令的至少一部分。
[0012]在一些實施方式中,上述方面的方法還包括:使用控制處理器將控制存儲設(shè)備編程為執(zhí)行與附接到非易失性存儲器設(shè)備接口的一個或多個非易失性存儲器設(shè)備關(guān)聯(lián)的一個或多個協(xié)議。
[0013]在一些實施方式中,上述方面的方法還包括:初始使能控制處理器將控制存儲設(shè)備編程為執(zhí)行與多個類型的非易失性存儲器設(shè)備兼容的低速協(xié)議;以及隨后使能控制處理器將控制存儲設(shè)備編程為執(zhí)行與一個或多個非易失性存儲器設(shè)備兼容的更高速協(xié)議。
【專利附圖】
【附圖說明】
[0014]本發(fā)明的實施例可以從下面的【具體實施方式】、所附的權(quán)利要求和附圖得知,其中:
[0015]圖1是示出依據(jù)本發(fā)明的實施例的非易失性存儲器控制系統(tǒng)的圖;
[0016]圖2是示出依據(jù)本發(fā)明的實施例的接口管理處理器的圖;
[0017]圖3是示出圖2的輸出數(shù)據(jù)緩沖的示例實施方式的圖;
[0018]圖4是示出圖2的輸入數(shù)據(jù)緩沖的示例實施方式的圖;
[0019]圖5是示出圖2的控制單元的示例實施方式的圖;
[0020]圖6是示出圖2的低級(low-level)非易失性存儲器接口的示例實施方式的圖;
[0021]圖7是示出圖6的低級非易失性存儲器接口定序器單元的示例實施方式的圖;
[0022]圖8是示出圖6的DQ捕獲塊的示例實施方式的圖;
[0023]圖9是示出圖8的DQ捕獲近墊邏輯(Near pad logic,NFL)塊的示例實施方式的圖;
[0024]圖10是示出圖8的DLL塊的示例實施方式;
[0025]圖11是示出輸出接口近墊邏輯塊的示例實施方式的圖;
[0026]圖12是示出依據(jù)本發(fā)明的實施例的具有多個通道的非易失性存儲器控制系統(tǒng)的 圖。
【具體實施方式】
[0027]本發(fā)明的實施例包含用于使用與低級可編程定序器結(jié)合的通用可編程處理器來實現(xiàn)非易失性存儲器(例如閃存等)通道控制的方法和/或裝置。本發(fā)明的實施例可以(i)耦接通用中央處理單元(CPU)用于高級控制,并與可編程微定序器調(diào)度用于非易失性存儲器接口的低級控制;(ii)以由序列編程定義的方式,使用微定序器來提供由非易失性存儲器接口的時鐘周期控制的時鐘周期;(iii)能使微定序器被編程為處理任何計劃的非易失性存儲器接口 ;(iv)允許還沒有預想到的將來的非易失性存儲器接口的編程;(V)使用微定序器來提供指令,控制非易失性存儲器引腳輸出,控制數(shù)據(jù)輸出和數(shù)據(jù)捕獲,配置接口操作模式,和/或循環(huán)經(jīng)由定義的序列達配置的次數(shù)(沒有招致管線延遲);(vi )使用微定序器提供能力來以可配置的方式處理數(shù)據(jù)饑餓以及數(shù)據(jù)回壓情況;(vii)實現(xiàn)CPU與微定序器之間的共享的存儲器來允許序列參數(shù)傳遞,以及微序列控制代碼容易更改;(viii)僅當序列完成或者遇到錯誤情況時,向微定序器傳遞請求來執(zhí)行序列,并從微定序器產(chǎn)生響應(yīng);和/或(ix)釋放CPU以執(zhí)行更高級調(diào)度、管理和決策。
[0028]參考圖1,示出的圖例示依據(jù)本發(fā)明的實施例的非易失性存儲器控制系統(tǒng)100。在一些實施例中,非易失性存儲器控制系統(tǒng)100包括塊101和塊103。塊101可以實現(xiàn)存儲器通道控制器,還被稱為接口管理處理器αΜΡ)。塊103可以實現(xiàn)控制器主機。控制器101可以配置為控制一個或多個個體非易失性存儲器通道。在一些實施例中,可以實現(xiàn)控制器101的多個實例以控制多個非易失性存儲器通道??刂破?01具有配置為接收命令并發(fā)送響應(yīng)給主機103的命令接口。主機103可以包括例如后端處理單元(BEPU)。在實現(xiàn)多個非易失性存儲器通道的實施例中,主機103還包含復用電路,該復用電路將控制器101的多個實例耦接至BEPU。在一些實施例中,主機103是諸如固態(tài)盤(SSD)控制器的I/O設(shè)備控制器,BEPU是控制器提供多個非易失性存儲器設(shè)備(諸如NAND閃存非易失性存儲器芯片)的調(diào)度和/或數(shù)據(jù)管理的部分。在此外的實施例中,BEPU包括數(shù)據(jù)緩沖和直接存儲器訪問(DMA)引擎(engine)來存儲數(shù)據(jù)或者其他信息,并將數(shù)據(jù)或者其他信息在主機103和控制器101之間移動。
[0029]控制器101還具有配置為將系統(tǒng)100耦接至非易失性存儲器介質(zhì)105的非易失性存儲器接口。非易失性存儲器介質(zhì)105可以包括一個或多個非易失性存儲器設(shè)備107。在一些實施例中,非易失性存儲器設(shè)備107具有一個或多個非易失性存儲器管芯109。根據(jù)特定一個非易失性存儲器設(shè)備107的類型,特定非易失性存儲器設(shè)備107中的多個非易失性存儲器管芯109可選地和/或選擇性地并行可訪問。非易失性存儲器設(shè)備107 —般代表能夠通信地耦接至控制器101的存儲設(shè)備的一個類型。然而,在各種實施例中,可用任何類型的存儲設(shè)備,諸如SLC (單級單元)NAND閃存存儲器、MLC (多級單元)NAND閃存存儲器、TLC (三級單元)NAND閃存存儲器、NOR閃存存儲器、只讀存儲器(Rom)、靜態(tài)隨機存取存儲器(SRAM)、動態(tài)隨機存取存儲器(DRAM)、磁阻隨機存取存儲器(MRAM)、鐵磁存儲器(例如FeRAM, F-RAM FRAM等)、相變存儲器(例如PRAM、PCRAM等)、賽道(racetrack)存儲器(或者疇壁存儲器(DWM))、電阻隨機存取存儲器(RRAM或者ReRAM)、或者任何其他類型的存儲器設(shè)備或者存儲介質(zhì)。[0030]在一些實施例中,控制器101和非易失性存儲器介質(zhì)105在分離的集成電路上實現(xiàn)。當控制器101和非易失性存儲器介質(zhì)105在分離的集成電路(或者設(shè)備)上實現(xiàn)時,控制器101的非易失性存儲器接口一般能夠管理多個數(shù)據(jù)輸入/輸出(I/O)引腳和多個控制I/o引腳。數(shù)據(jù)I/O引腳和控制I/O引腳可以配置為將含有控制器101的設(shè)備連接至外部設(shè)備,該外部設(shè)備形成非易失性存儲器介質(zhì)105。
[0031]參考圖2,示出的圖例示依據(jù)本發(fā)明的實施例的控制器101的實施方式。在一些實施例中,控制器ιο?實現(xiàn)接口管理處理器αΜΡ)。在一些實施例中,控制器ιο?包括塊(或者電路)110、塊(或者電路)112、塊(或者電路)114、塊(或者電路)116、塊(或者電路)118、塊(或者電路)120、塊(或者電路)122和塊(或者電路)124。塊110 —般實現(xiàn)硅邏輯和固件,配置為以可配置、靈活和可擴展的方式控制多個非易失性存儲器設(shè)備。塊112實現(xiàn)總線接口塊(BIB)。塊114實現(xiàn)命令緩沖(CB)。塊116實現(xiàn)輸出數(shù)據(jù)緩沖(0DB)。塊118實現(xiàn)響應(yīng)緩沖(RB)。塊120實現(xiàn)輸入數(shù)據(jù)緩沖(IDB)。塊122實現(xiàn)配置/狀態(tài)寄存器(CSR)塊。塊124實現(xiàn)同步塊。
[0032]總線接口塊(BIB) 112處理向后端處理單元(例如主機103)以及來自后端處理單元的通信。BIBl 12處理通過輸出總線(例如0B)從BEPU接收的低級數(shù)據(jù)鏈接命令,將命令和數(shù)據(jù)傳遞給命令緩沖114和輸出數(shù)據(jù)緩沖116。BIB112還通過輸入總線(例如IB),將來自響應(yīng)緩沖(RB) 118的命令響應(yīng)和來自輸入數(shù)據(jù)緩沖(IDB) 120的輸入數(shù)據(jù)發(fā)送至后端處理單元。命令緩沖(CB) 114將輸出總線字積累為硬件控制端口(HCP)雙字,并將HCP雙字饋送至⑶130。術(shù)語雙字(dword, double-word)代表單個周期中的數(shù)據(jù)傳輸?shù)膯挝?例如8個字節(jié))。響應(yīng)緩沖(RB)118從⑶130獲取HCP雙字,將HCP雙字拆散為多個輸入總線字,并將多個輸入總線字發(fā)送至BIB112。在一些實施例中,HCP雙字包括在BEPU與⑶130之間發(fā)送的消息。例如,BE PU將消息發(fā)送至⑶130,以向由⑶130維持的工作的隊列增加非易失性存儲器設(shè)備訪問操作,且CU130將表明操作完成和/或操作的狀態(tài)的消息發(fā)送回BEPU。在此外的實施例中,來自BEPU的消息包括與操作的數(shù)據(jù)傳輸關(guān)聯(lián)的各個標簽,CU130能夠使用標簽來啟動抓取要寫入至非易失性存儲器設(shè)備的數(shù)據(jù),或者表明用于從非易失性存儲器設(shè)備讀出的數(shù)據(jù)的操作特定的目的地。
[0033]CSR塊122位于系統(tǒng)100的CSR環(huán)上。CSR塊122通過CSR塊122的寄存器提供對接口管理處理器αΜΡ)信息的訪問并配置MP操作。例如,CSR塊122的寄存器能使⑶130運行,提供CU130操作的狀態(tài),啟動控制器101的調(diào)試和/或診斷特性,以及其他管理訪問特性。CSR環(huán)可以使用任何多個總線規(guī)范(例如PalmBus、AMBA、AHB等)來實現(xiàn)。在各種實施例中,多個(例如2個)優(yōu)先級中斷信號和停止信號(例如HALT/INTR)可以發(fā)送給后端處理單元。后端處理單元可以配置為將優(yōu)先權(quán)中斷信號和停止信號同步至核心域。塊124可以配置為將全局停止輸入(例如HALT IN)同步至控制器101的時鐘域。同步的全局停止輸入在CSR控制下,然后可以使控制器101停止。
[0034]塊110 —般包括控制單元(⑶)130和低級非易失性存儲器接口(LFI) 132。⑶130一般包括通用中央處理單元(CPU)。LFI132包括低級可編程微定序器。CU130和LFI132的低級可編程微定序器由共享的存儲器(例如由塊134代表)緊密耦接。CU130和LFI132的低級可編程微定序器能夠控制連接至一個或多個非易失性存儲器設(shè)備(例如圖1的非易失性存儲器介質(zhì)105)的系統(tǒng)輸出和輸入(例如NVM I/O)。⑶130可以從整個系統(tǒng)控制器接收命令,負責(i)做出將什么命令發(fā)出給LFI132的低級可編程微定序器的決定;(ii)控制進/出中心系統(tǒng)數(shù)據(jù)倉庫的數(shù)據(jù)的流;(iii)處理潛在的錯誤狀況;以及(iv)發(fā)送響應(yīng)給整個系統(tǒng)控制器以表明命令的完成。
[0035]LFI132的低級可編程微定序器可以配置有程序來尋址并控制附接的特定類型的非易失性存儲器設(shè)備。LFI132的低級可編程微定序器因此可以從CU130提取有關(guān)特定非易失性存儲器接口協(xié)議的細節(jié),并向CU130提供更高級的序列調(diào)用。CU130、LFI132的低級可編程微定序器和用于它們的程序一般允許整個系統(tǒng)控制器向高級的非易失性存儲器控制器101發(fā)出命令。用于CU130的程序處理更高級命令的調(diào)度(例如對于一個或多個非易失性存儲器設(shè)備而言),將更高級命令拆散為低級命令,將低級命令發(fā)出給LFI132的低級可編程微定序器。當命令完成時,程序向BEPU控制器發(fā)出響應(yīng)。這免除了 BEPU和/或主機103的其他處理器必須處理非易失性存儲器接口的細節(jié)的操作。由于導入了新的非易失性存儲器設(shè)備,通過僅僅開發(fā)用于CU130和LFI132的低級可編程微定序器的新的程序,新的設(shè)備可使用上述靈活樣式的方案。
[0036]LFI132能夠檢測諸如由于當從非易失性存儲器介質(zhì)接收數(shù)據(jù)時的回壓導致的數(shù)據(jù)中斷,或者當發(fā)送數(shù)據(jù)給非易失性存儲器介質(zhì)時的數(shù)據(jù)缺失。LFI132的低級可編程微定序器還可以擺脫編程循環(huán)以進入例外狀態(tài)。在例外狀態(tài)下,LFI132的低級可編程微定序器可以在第一模式下,檢測數(shù)據(jù)的恢復并繼續(xù)操作;或者在第二模式下,中斷CU130以具有操作的更高級的重新開始。在第二模式下,CU130可訪問由LFI132的低級可編程微定序器傳輸?shù)臄?shù)據(jù)的量,并例如可以調(diào)節(jié)地址和/或長度,來從暫停了數(shù)據(jù)傳輸?shù)狞c重新開始數(shù)據(jù)傳輸。
[0037]⑶130解釋接口管理處理器命令并提供響應(yīng)。⑶130還可以訪問輸入數(shù)據(jù)緩沖和輸出數(shù)據(jù)緩沖并控制LFI1320LFI132訪問并控制非易失性存儲器I/O、序列命令、序列數(shù)據(jù)輸出,并捕獲數(shù)據(jù)返回。CU130的大部分功能以固件實現(xiàn),以允許靈活性并支持將來的非易失性存儲器類型。
[0038]參考圖3,示出的圖例示圖2的輸出數(shù)據(jù)緩沖(0DB)116的示例實施方式。在一些實施例中,ODBl 16包括塊(或者電路)150、塊(或者電路)152、塊(或者電路)154、塊(或者電路)156和塊(或者電路)158。塊150—般實現(xiàn)控制接口。塊152—般能夠執(zhí)行路由操作。塊154實現(xiàn)先進先出(FIFO)緩沖。塊156實現(xiàn)計數(shù)器。塊158—般能夠執(zhí)行奇偶性檢查。
[0039]在第一(例如通常)操作模式下,可以設(shè)置控制和路由來將傳入數(shù)據(jù)直接引導至LFI132。對于調(diào)試或者其他高級功能,可以設(shè)置控制和路由來將傳入數(shù)據(jù)直接引導至CU寄存器接口。對于⑶固件下載,可以設(shè)置控制和路由來將傳入數(shù)據(jù)直接引導至⑶130的命令解釋器。在一個示例中,塊154可以實現(xiàn)為8位寬、4條(entry)深的FIFO緩沖。然而,可以實現(xiàn)其他深度和寬度來滿足特定實施方式的設(shè)計標準。塊154具有可配置的Hi (高)和Lo (低)電平(例如FIFO閾值),被用作序列控制的部分。典型而言,對于深為4、雙倍數(shù)據(jù)速率(DDR)系統(tǒng)而言,Hi會被設(shè)定為2, Lo被設(shè)定為I。對于深為4、單倍數(shù)據(jù)速率系統(tǒng)而言,Hi會是1,Lo是O。塊156可以實現(xiàn)為⑶CSR可訪問的計數(shù)器,配置為對由0DB116接收的字節(jié)的數(shù)量計數(shù)。塊156還可由CU130寫入,并在調(diào)試中可以是有用的,作為從寫入數(shù)據(jù)路徑接收了正確數(shù)量的字節(jié)的檢查。塊158能夠檢查數(shù)據(jù)接口奇偶性,并將奇偶性錯誤報告給CSR塊122,對于諸如奇偶性錯誤的例外,能夠向BEPU發(fā)出中斷信號。[0040]參考圖4,示出的圖例示了圖2的輸入數(shù)據(jù)緩沖(IDB)120的示例實施方式。在一些實施例中,IDB120包括塊(或者電路)160、塊(或者電路)161、塊(或者電路)163、塊(或者電路)165、塊(或者電路)167和塊(或者電路)169。塊160 —般實現(xiàn)控制接口。塊161 —般能夠執(zhí)行路由操作。塊163實現(xiàn)先進先出(FIFO)緩沖。塊165實現(xiàn)差異計算器。塊167實現(xiàn)奇偶性發(fā)生器。塊169實現(xiàn)倒數(shù)計數(shù)器。
[0041]IDB120 一般通過塊163從LFI接收傳入數(shù)據(jù)。在一些實施例中,塊163可以實現(xiàn)為8位寬、40條的FIFO緩沖。然而,可以實現(xiàn)其他深度和寬度,從而滿足特定實施方式的設(shè)計標準。塊163具有可配置的Hi和Lo電平(例如FIFO閾值)用于在LFI132的流控制。塊163允許系統(tǒng)100中的在快速傳輸速率下可以是顯著的(例如30ns)往返延遲,并還允許當在FIFO緩沖中緩沖傳入數(shù)據(jù)時,在傳輸?shù)拈_始的時間插入來自CU130的消息頭。對于雙倍數(shù)據(jù)速率系統(tǒng),Hi和Lo電平(例如FIFO閾值)的示例設(shè)定將為:Hi為22,Lo為21。
[0042]來自LFI132的數(shù)據(jù)一般被引導至將IDB120連接至BIBl 12的傳出FIFO緩沖(未示出)。來自LFI132的數(shù)據(jù)還可以使用控制接口 160的⑶寄存器接口由⑶130讀出(例如,當數(shù)據(jù)由CU130消耗時,該特性可以用于非易失性存儲器設(shè)備寄存器讀出、狀態(tài)讀出等XCU寄存器接口還可以被用于將數(shù)據(jù)從⑶130發(fā)送至BIB112 (例如,該特性可以用于數(shù)據(jù)頭/尾)。
[0043]塊165 —般實現(xiàn)為運行差異計算器。在一些實施例中,運行差異計算器保持讀出數(shù)據(jù)流中的I位相對于O位的過量的帶符號的20位總運行。示例差異計算由下面的等式I示出:
[0044]差異=設(shè)定為I的總位-(總位/2)等式I
[0045]如果差異值到達最大正或者最大負的20位值,那么差異值飽和并固定。當從非易失性存儲器設(shè)備讀出的數(shù)據(jù)具有已知的期待的差異時,使用差異計算,至少部分確定讀出數(shù)據(jù)是否有效。在第一示例中,如果從非易失性存儲器設(shè)備讀出的數(shù)據(jù)是加密和/或加擾的,并具有O和I的已知的統(tǒng)計的50-50分布,差異會預計為接近O。在第二示例中,諸如NAND閃存的一些非易失性存儲器設(shè)備具有擦除的狀態(tài),都為I。如果差異計算表明實質(zhì)上所有的數(shù)據(jù)位讀出具有值1,那么擦除的頁面可能已被讀出。
[0046]當數(shù)據(jù)讀出已經(jīng)完成時,差異值可以由⑶130讀出,并包含在數(shù)據(jù)尾,或者作為響應(yīng)返回給BEPU。CU130應(yīng)該在數(shù)據(jù)傳輸?shù)拈_始之前通常清除差異值。傳出數(shù)據(jù)流由塊167進行奇偶性保護。
[0047]塊169 —般實現(xiàn)CSR可訪問的向下計數(shù)器。塊169對從IDB120發(fā)送的字節(jié)的數(shù)量向下計數(shù)。這可以被設(shè)定為傳輸?shù)拈L度,并將在傳輸?shù)钠诖慕K止時向下計數(shù)至零。塊169還可以由⑶130的CSR寄存器編程,以在傳輸?shù)拈_始/終止處產(chǎn)生第一 /最后指示(例如,側(cè)帶信號,提供幀信息)。第二 CSR寄存器被用于在計數(shù)器到達零水平后對塊169進行預設(shè)。
[0048]當向BIB112的傳出數(shù)據(jù)由⑶130產(chǎn)生(例如對于數(shù)據(jù)頭和尾而言)時,那么向BIB112的第一和最后輸出也由⑶130控制。在典型的讀出中,⑶130初始將IDB120置于“來自⑶”模式,在LFI132開始讀出命令,然后將頭部傳輸至BIB112,然后將IDB120置于“通?!蹦J?,使得來自LFI132并在塊163中的數(shù)據(jù)被傳送至BEPU。最終,如果需要,⑶130
會產(chǎn)生尾。[0049]參考圖5,示出的圖例示了圖2的控制單元(⑶)130的示例實施方式。⑶130 —般實現(xiàn)基于微處理器的控制器101的監(jiān)管控制單元。⑶130從輸出總線(OB)接收命令,執(zhí)行命令調(diào)度和優(yōu)先級。在一些實施例中,⑶130包括塊(或者電路)170、塊(或者電路)172、塊(或者電路)174、塊(或者電路)176、塊(或者電路)178、塊(或者電路)180、塊(或者電路)182和塊(或者電路)184。塊170 —般包括中央處理單元(CPU)核心。塊172 —般實現(xiàn)命令解釋器。塊174實現(xiàn)仲裁器。塊176實現(xiàn)用于存儲數(shù)據(jù)的隨機存取存儲器(RAM)。塊178實現(xiàn)本地配置/狀態(tài)寄存器(CSR)塊。塊180實現(xiàn)到LFI132的接口。塊182實現(xiàn)仲裁器。塊184實現(xiàn)用于存儲指令的隨機存取存儲器(RAM)。
[0050]在啟動時,CPU170由塊178中的CSR寄存器保持為重置。由BEPU發(fā)出MP命令,對指令RAM184、LFI132的序列RAM和數(shù)據(jù)RAM176的初始狀態(tài)編程。初始狀態(tài)一般來自系統(tǒng)ROM (未示出)。在初始編程之后,重置被釋放,CPU170開始執(zhí)行其初始固件。該固件允許CPU170響應(yīng)從BEPU發(fā)出的命令。在初始操作狀態(tài)期間,BEPU可以從非易失性存儲器設(shè)備將最終操作代碼帶到后端緩沖(未示出)。最終的操作代碼被用于配置CPU170以及系統(tǒng)100上的其他CPU。在一個示例中,在該階段,CU代碼可能會重新裝載以非易失性存儲器上存儲的固件的性能優(yōu)化的版本。這一般發(fā)生作為數(shù)據(jù)傳輸,MP命令被用于將傳入IDB數(shù)據(jù)引導至指令RAM184、數(shù)據(jù)狀1176和/或1^1132的序列狀11。典型而言,在加載主要操作代碼期間,⑶130會處于重置。
[0051]仲裁器182和仲裁器174可以用于CPU170的RAM接口,來允許IMP命令訪問數(shù)據(jù)RAM176、指令RAM184和LFI132的序列RAM。在一個示例中,可以使用CPU170的延遲(stall)機構(gòu),給予IMP命令解釋器172優(yōu)先權(quán)。然而,可期待的是由CPU170以外訪問數(shù)據(jù)RAM176、指令RAM184和LFI132的序列RAM僅在初始配置發(fā)生。
[0052]CPU170還可以包含輸入和輸出FIFO接口,用于從BEPU傳遞消息,并用于將響應(yīng)提供回BEPU。輸出FIFO接口還被用于將消息傳遞至(例如主機103的)直接存儲器訪問(DMA)引擎來開始數(shù)據(jù)傳輸操作。
[0053]CPU170的接口被用于訪問本地CSR,并將命令發(fā)出給LFI132。在使用TensilicaCPU的一些實施例中,接口是Tensilica指令擴展(TIE)查找接口。全局停止信號(例如在發(fā)生功率故障或者其他例外狀況時從主機103發(fā)送的信號)可以被用于觸發(fā)在CPU170核心中的不可屏蔽中斷(匪I)。
[0054]參考圖6,示出的圖例示圖2的低級非易失性存儲器接口(LFI) 132的示例實施方式。LFI132提供非易失性存儲器接口的低級控制。LFI132包括可編程序列引擎,設(shè)計為對于任何非易失性存儲器接口協(xié)議是可配置的。使用的序列由⑶130配置,進而,用由⑶130給定的命令來執(zhí)行。還存在可以由CU130編程并由序列訪問的序列數(shù)據(jù)區(qū),通過該方式,可以設(shè)置通用序列,可以給出與序列關(guān)聯(lián)的數(shù)據(jù),而不用修改序列其本身。
[0055]在一些實施例中,對于兩個以上物理接口,而非僅單個的物理接口提供支持。例如,在2個物理接口(例如A和B)的情況下,LFI132可以包括塊(或者電路)190、塊(或者電路)192a、塊(或者電路)192b、塊(或者電路)194a、塊(或者電路)194b、塊(或者電路)196和塊(或者電路)198。塊190—般包括低級非易失性存儲器接口(LFI)定序器單元(LSU)。塊192a和192b —般實現(xiàn)DQ捕獲塊。塊194a和194b分別實現(xiàn)A和B非易失性存儲器接口。塊196實現(xiàn)芯片使能(CE)接口。塊198實現(xiàn)用于在2個DQ捕獲塊192a與192b之間選擇的復用電路。
[0056]LFI定序器單元(LSU)190執(zhí)行序列并引導非易失性存儲器命令的輸出、寫入數(shù)據(jù)傳輸和讀出數(shù)據(jù)傳輸。序列RAM接口允許在序列開始之前設(shè)置LSU190的內(nèi)部序列存儲器,另外具有由CU130動態(tài)編程的序列。然后可以在LSU190的序列命令接口上發(fā)出序列命令。用于接口命令的接口選擇(例如包括信號I/F A EN和I/F B EN)被編程,并將命令引導至適當?shù)慕涌?。在一些實施例?或使用場景中,每個命令被引導至單個的接口。在其他實施例和/或使用場景中,至少一些命令(例如重置命令)被引導至多個接口。芯片使能(CE)接口(例如包括信號CEN OUTPUTS)允許CE輸出的完全控制來選擇附接至一個非易失性存儲器接口的管芯(die)。在一些實施例中,支持具有達8個CE的配置。附接的管芯可以在任何非易失性存儲器接口上。
[0057]DQ捕獲塊192a和192b提供使用DQS的高速數(shù)據(jù)捕獲,還有用于異步模式的順序延遲捕獲。DQ鏡像信號控制DQ輸出和捕獲的數(shù)據(jù)的鏡像。鏡像將位O與7、1與6、2與5,3與4互換。在一些設(shè)計中如此進行以簡化板布局問題,并必須由控制器處理。在命令發(fā)出給LFI132之前,由⑶130選擇鏡像模式。傳出鏡像在傳出接口處執(zhí)行,在DQ捕獲mux (復用器)198中接著DQ捕獲執(zhí)行傳入鏡像。
[0058]LFI132 一般包含可編程序列引擎、一組I/O引腳輸出塊和一組數(shù)據(jù)捕獲塊。序列引擎典型地由附接至V0引腳的可以執(zhí)行特定非易失性存儲器設(shè)備的非易失性存儲器協(xié)議的一組序列編程。該序列包括在序列存儲器中的多個位置開始的一組指令。例如,對于LFI132被編程執(zhí)行的每個操作,有相應(yīng)的開始位置。在一些實施例中,序列存儲器實現(xiàn)為512的32位位置。通過發(fā)出命令接口上的命令來啟動序列的執(zhí)行。命令一般包含序列RAM中要跳至的地址、以及可以由序列中的一些指令使用的命令數(shù)據(jù)的字節(jié),盡管一些序列不使用命令數(shù)據(jù)。
[0059]還提供了使用索引寄存器間接尋址的序列數(shù)據(jù)RAM。使用MODE指令來設(shè)定索引,典型被設(shè)定為由命令數(shù)據(jù)給定的值。通過該方式,與命令序列關(guān)聯(lián)的任何數(shù)據(jù)可以設(shè)定在序列數(shù)據(jù)RAM中,而序列其本身不需要被修改。示例是具有5個字節(jié)的地址的讀出命令。地址字節(jié)會置于序列數(shù)據(jù)RAM中的連續(xù)位置,將用序列RAM中的讀出命令序列的地址、以及序列數(shù)據(jù)RAM中地址的第一字節(jié)的地址發(fā)出命令。序列會設(shè)定索引寄存器,進而執(zhí)行要求的序列來發(fā)出地址,并對于地址的每個字節(jié)重復地址序列。指令使索引寄存器遞增(在存儲器終止后繞回(wrap)),盡管對于WIG指令(被用于擺動(wiggle)連接至非易失性存儲器設(shè)備的I/O引腳),遞增是可選的。
[0060]執(zhí)行序列直至其遇到導致停止(halt)的指令。該停止終止序列執(zhí)行,且LFI進入LFI等待下一命令到達的狀態(tài),并不進一步執(zhí)行動作。對非易失性存儲器設(shè)備的動作的執(zhí)行可以包括多個序列調(diào)用。例如,可以調(diào)用序列來選擇設(shè)備,然后分離的序列調(diào)用可以發(fā)出讀出,最終序列可以取消選擇設(shè)備。
[0061]參考圖7,示出的圖例示了圖6的低級非易失性存儲器接口(LFI)微定序器單元(LSU) 190的示例實施方式。在一些實施例中,LSU190可以包括塊(或者電路)200、塊(或者電路)202、塊(或者電路)204、塊(或者電路)206、塊(或者電路)208、塊(或者電路)210、塊(或者電路)212、塊(或者電路)214、塊(或者電路)216和塊(或者電路)218。塊200 —般包括序列執(zhí)行單元(SEU)。塊202 —般實現(xiàn)用于存儲序列數(shù)據(jù)(例如序列數(shù)據(jù)RAM)的隨機存取存儲器(RAM)。在一個示例中,序列數(shù)據(jù)RAM202可以實現(xiàn)為雙端口存儲器。塊204實現(xiàn)索引寄存器。塊206實現(xiàn)多個輸出寄存器。塊208實現(xiàn)零開銷循環(huán)(ZOL)寄存器。塊210一般配置為執(zhí)行下一個程序計數(shù)器(PC)計算。塊212實現(xiàn)程序計數(shù)器(PC)寄存器。塊214 一般實現(xiàn)用于存儲序列的隨機存取存儲器(RAM)(例如序列RAM)。在一個示例中,序列RAM214可以實現(xiàn)為雙端口存儲器。塊216實現(xiàn)預取寄存器。塊218實現(xiàn)命令寄存器。
[0062]在可以執(zhí)行任何命令之前,序列RAM214需要被初始化。序列RAM214的初始化典型地會在啟動執(zhí)行初始非易失性存儲器讀出時發(fā)生一次,進而,當從非易失性存儲器設(shè)備加載主要執(zhí)行代碼時發(fā)送第二次。在一些實施例中,序列RAM214可以實現(xiàn)為32位寬(加ECC位)和512字深,具有雙端口以當執(zhí)行序列時,允許從⑶130訪問。在一些實施例中,序列地址是9位。然而,可以實現(xiàn)其他存儲器規(guī)范,從而滿足特定實施方式的設(shè)計標準。
[0063]序列數(shù)據(jù)RAM202允許CU130設(shè)定可以使用索引寄存器204由命令訪問的各種命令值。各種命令值的設(shè)定可以用于作為設(shè)置命令/地址序列的此類操作。在一些實施例中,序列數(shù)據(jù)RAM202被尋址為來自CU130的32位字,但是由索引寄存器204設(shè)為單個的字節(jié)。在一些實施例中,序列數(shù)據(jù)RAM202實現(xiàn)為64字節(jié)(16字)。然而,可以實現(xiàn)其他存儲器規(guī)范,從而滿足特定實施方式的設(shè)計標準。因為數(shù)據(jù)是從序列數(shù)據(jù)RAM202預取的,所以整個序列數(shù)據(jù)RAM202應(yīng)該在使用之前被初始化,以防止?jié)撛诘奶摷貳CC錯誤。
[0064]PC寄存器212含有當前序列指針。當前序列指針通常經(jīng)過遞增器210來抓取下一序列指令。ZOL寄存器208支持單級的零開銷循環(huán)。輸出寄存器206連接至非易失性存儲器接口并控制非易失性存儲器接口的操作。
[0065]序列RAM214和序列數(shù)據(jù)RAM202兩者都被ECC保護,并存在于⑶130的存儲器映射中。ECC錯誤會使CU130中斷,然后CU130可以讀出寄存器來確定錯誤是否可校正以及哪個RAM處于錯誤中。任何可校正的錯誤通常應(yīng)該導致存儲器的讀出清除。如果不可校正的錯誤在序列RAM讀出期間發(fā)生,那么序列也將即時停止。
[0066]可以由⑶130斷言外部信號(例如HALT (停止)),以在任何時間停止序列執(zhí)行單元200的操作。一般而言,停止序列執(zhí)行單元200的執(zhí)行會在當前位置即時終止當前序列。為了開始新的序列,需要發(fā)出新的命令。序列執(zhí)行單元200的內(nèi)部狀態(tài)對CU130可用。
[0067]參考圖8,示出的圖例示了 DQ捕獲塊220的示例實施方式。DQ捕獲塊220可以被用于實現(xiàn)圖6的DQ捕獲塊109a和192b。在一些實施例中,DQ捕獲塊220包括時鐘傳輸塊222、多個DQ近墊邏輯塊224、DLL塊226、以及多個匹配單元228。近墊邏輯(near padlogic,NPL)包括硅宏塊,位置接近墊。NPL塊允許對接口邏輯的定時的緊密控制。每個NPL塊可以被置于距關(guān)聯(lián)的墊固定的距離。DQS輸入經(jīng)由DLL塊226的從模塊傳遞。DLL塊226的從模塊對DQS信號插入四分之一 DOS周期延遲。對每個DQ NPL塊224的DOS路徑延遲應(yīng)該匹配對相同的NPL塊的DQ延遲。DQ NPL塊224在接下來的DQS沿捕獲4個DQ值。4個DQ值被饋送至時鐘傳輸塊222,其中值被傳送至非易失性存儲器接口的時鐘域。
[0068]參考圖9,示出的圖例示了圖8的DQ捕獲近墊邏輯(DQ NPL)塊224的示例實施方式。在一些實施例中,DQ NPL塊224包括捕獲相位觸發(fā)器和多個DQ捕獲觸發(fā)器(例如DQ0P、DQ0N、DQ1P、DQ1N)。在開始讀出傳輸之前,信號(例如DQS EN)為L0W,這關(guān)斷了任何DQS雜訊(glitch),并將捕獲相位觸發(fā)器保持在相位O。第一上升DQS沿將在DQOP觸發(fā)器中被捕獲,第一下降沿將在DQON觸發(fā)器中被捕獲。第一下降沿還切換捕獲相位和在DQlP和DQlN觸發(fā)器中分別捕獲的接下來2個DOS沿。當數(shù)據(jù)傳輸時,周期每4個DQS沿重復。
[0069]參考圖10,示出的圖例示了圖8的DLL塊226的示例實施方式。在一些實施例中,DLL塊226包括延遲鎖定環(huán)路(DLL) 230和控制有限狀態(tài)機(FSM) 232。DLL230包括主部分和從部分。DLL230的主部分鎖定至提供的參考時鐘。DLL230的從部分由主參考時鐘的可編程部分延遲給定的信號(例如DQS)。在一些實施例中,傳入DQS信號需要被延遲四分之一DQS周期,以捕獲沿對齊的DQ數(shù)據(jù)。DLL塊226鎖定至提供的參考周期。提供的參考周期可以是控制器101的時鐘(例如CLK)或者控制器時鐘的分割的版本(例如由參考時鐘分害I]器234產(chǎn)生)。典型地,參考時鐘將被設(shè)定為與傳出DQS相同的頻率,或者2x頻率。插入的延遲應(yīng)該典型地被編程為約四分之一 DQS頻率。經(jīng)由DLL230的從部分的延遲(Delay)可以根據(jù)下面的等式2計算:
[0070]Delay=Tf+Tref* ((ADO+ADJoff)/MADJ)等式 2
[0071]其中Tf是固定的偏移延遲,Tref是參考時鐘周期,ADJ是編程的調(diào)節(jié)偏移,ADJofT是固定的代碼偏移(例如34),MADJ是主調(diào)節(jié)偏移,通常設(shè)定為160(但是可以改變?yōu)?6……255范圍內(nèi)的值)。一般而言,固定的偏移延遲Tf被用于DQ行上的匹配單元228匹配,因此可以忽略。因此,消除Tf (例如通過使用匹配單元)并求出ADJ,獲得下面的等式3:
[0072]ADJ=MADJ* (Delay/Tref-ADJoff)等式 3
[0073]在具有400MT/S操作條件的示例情況下,DQS頻率為200MHz,控制器時鐘為400MHz。在一些實施例中,400MHz時鐘可以直接饋送至DLL,信號DQS可以被延遲參考時鐘的半個周期(等同于DQS周期的四分之一)。在替代的實施例中,控制器時鐘可以被分割為200MHz,信號DQS被延遲參考時鐘周期的四分之一。
[0074]還可以以軟件實現(xiàn)訓練方案。在具有該訓練方案的實施例,在已知的模式從非易失性存儲器設(shè)備讀出時,ADJ值從低設(shè)定掃至高設(shè)定。最終ADJ會被設(shè)定為中值,結(jié)果導致讀出正確數(shù)據(jù)。參考時鐘分割器或者MADJ中的任何改變或者斷電會需要DLL被重置為最小Ius0控制FSM232將在編程數(shù)量的時鐘周期(例如,對于400MHz的Ius周期默認為400)將DLL230保持為重置。在DLL230被允許運行后,斷言鎖定的狀態(tài)500個參考時鐘(refclk),在讀出操作啟動之前,該狀態(tài)可以由固件檢查。
[0075]用于DLL塊226的控制寄存器可以通過CSR環(huán)(例如來自BEPU)或者本地從⑶130訪問并設(shè)定。本地訪問用于訓練類型功能(如果需要)或者精細斷電控制。典型而言,DLL值由配置記錄設(shè)定,并不需要在正常操作中調(diào)節(jié)。為了節(jié)省功率,可以設(shè)定與DLL控制FSM232關(guān)聯(lián)的斷電請求寄存器。DLL230僅使用作讀出操作,用于使用DQS輸入的非易失性存儲器讀出模式(例如0NFI2/3的DDR模式和切換模式)。從斷電退出之后,激活重置和鎖定序列,因此動態(tài)斷電的可能影響讀出性能。在芯片重置時DLL230 —般為斷電模式。
[0076]參考圖11,示 出的圖例示了輸出接口近墊邏輯(NPL)塊250的示例實施方式。每個傳出信號通過輸出接口 NPL塊250。NPL塊250允許傳出信號被重定時到時鐘(例如CLK),并具有可選的增加至傳出信號的上升和/或下降沿的半個周期延遲。用于每個傳出信號的延遲是CSR可配置的。每個NPL塊250應(yīng)該位于關(guān)聯(lián)的墊附近,跨來自每個控制器101實例的所有輸出,從NPL塊250到墊具有匹配的延遲。在一些實施例中,NPL250包括觸發(fā)器260、觸發(fā)器262、組合(或者合并)邏輯264、以及復用器266。在一些實施例中,觸發(fā)器260和262實現(xiàn)為D型觸發(fā)器。在一些實施例中,組合邏輯264可以包括AND (與)、OR (或)和/或NOT (非)門。在NPL250內(nèi),到復用器266的每個可能的路徑應(yīng)該盡可能密切匹配。
[0077]參考圖12,示出的圖例示了依據(jù)本發(fā)明的實施例的包括多個通道的非易失性存儲器控制系統(tǒng)。在一些實施例中,非易失性存儲器系統(tǒng)300可以包括主機202、非易失性存儲器控制器子系統(tǒng)304和多個非易失性存儲器介質(zhì)306a-306n。主機302可以通過命令接口與非易失性存儲器控制器子系統(tǒng)304通信,該命令接口配置為在主機302和非易失性存儲器控制器子系統(tǒng)304之間傳輸命令和響應(yīng)。每個非易失性存儲器介質(zhì)306a-306n可以連接至非易失性存儲器控制器子系統(tǒng)304的相應(yīng)通道。
[0078]在一些實施例中,非易失性存儲器控制器子系統(tǒng)304可以包括塊310、塊312、塊314和多個塊316a-316n。塊310可以包括后端處理單元(BEPU)和/或非易失性存儲器控制器子系統(tǒng)304的其他處理器。塊312可以包括直接存儲器訪問(DMA)引擎或者非易失性存儲器控制器子系統(tǒng)304的引擎。塊314可以實現(xiàn)非易失性存儲器控制器子系統(tǒng)304的復用子系統(tǒng)。塊314可以配置為將塊316a-316n耦接至塊310和312。塊316a_316n可以包括實現(xiàn)為類似于上述控制器101的接口管理處理器。塊316a-316n可以通過CSR環(huán)和相應(yīng)命令接口耦合至塊314。塊316a-316n還可以具有配置為將每個塊316a_316n耦接至非易失性存儲器介質(zhì)306a-306n中的相應(yīng)一個的非易失性存儲器接口。
[0079]本文中使用的術(shù)語〃可以〃和〃 一般〃與動詞結(jié)合時傳達的意圖是說明是示例性的,并且認為其足夠廣,以涵蓋本公開呈現(xiàn)的具體示例、以及可以基于本公開導出的替代示例。本文使用的術(shù)語〃可以〃和〃 一般〃不應(yīng)解釋為一定隱含省略對應(yīng)要素的愿望或者可能性。
[0080]由圖1-12的圖示出的功能可以使用一個或多個根據(jù)說明書的教導編程的常規(guī)通用處理器、數(shù)字計算機、微處理器、微控制器、RISC (精簡指令集計算機)處理器、CISC (復雜指令集計算機)處理器、SMD (單指令多數(shù)據(jù))處理器、信號處理器、中央處理單元(CPU)、算術(shù)邏輯單元(ALU)、視頻數(shù)字信號處理器(VDSP)和/或類似的計算機器實現(xiàn)(例如模擬),如相關(guān)領(lǐng)域的技術(shù)人員可以想到的那樣。適當?shù)能浖?、固件、編碼、例程、指令、操作碼、微碼和/或程序模塊可以容易由熟練的程序員基于本公開的教導準備,如相關(guān)領(lǐng)域的技術(shù)人員可以想到的那樣。軟件一般通過機器實施方式的一個或多個處理器從介質(zhì)或者若干介質(zhì)執(zhí)行。
[0081]本發(fā)明的實施例還可以由準備ASIC (特定應(yīng)用集成電路)、平臺ASIC、FPGA (現(xiàn)場可編程門陣列)、PLD (可編程邏輯設(shè)備)、CPLD (復雜可編程邏輯設(shè)備)、門海、RFIC (無線電頻率集成電路)、ASSP (特定應(yīng)用標準產(chǎn)品)、一個或多個單片集成電路、布置為倒裝芯片模塊和/或多芯片模塊的一個或多個芯片或者管芯、或者通過互連常規(guī)組件電路的適當網(wǎng)絡(luò)來實現(xiàn),如本文說明的那樣,其修改對本領(lǐng)域的技術(shù)人員而言容易想到。
[0082]因此,本發(fā)明的實施例還可以包含計算機產(chǎn)品,其可以是存儲介質(zhì)或者媒體和/或包含可以被用于程序機器執(zhí)行依據(jù)本發(fā)明的一個或多個處理或者方法的指令的傳輸介質(zhì)或者媒體。通過機器執(zhí)行含在計算機產(chǎn)品內(nèi)的指令,連同周圍電路的操作可以將輸入數(shù)據(jù)轉(zhuǎn)換為存儲介質(zhì)上的一個或多個文件和/或代表物理對象或者物質(zhì)的一個或多個輸出信號,諸如音頻和/或視覺描述。存儲介質(zhì)可以包含但是不限于任何類型的盤,包含軟盤、硬盤驅(qū)動器、磁盤、光盤、⑶R0M、DVD和磁光盤和電路,諸如ROM (只讀存儲器)、RAM (隨機存取存儲器)、EPR0M (可擦除可編程ROM)、EEPROM (電可擦除可編程ROM)、UVPROM (紫外線可擦除可編程ROM)、閃存存儲器、磁卡、光學卡和/或適于存儲電子指令的任何類型的介質(zhì)。
[0083]本發(fā)明的要素可以形成一個或多個設(shè)備、單元、組件、系統(tǒng)、機器和/或裝置的部分或者整體。設(shè)備可以包含但是不限于服務(wù)器、工作站、存儲陣列控制器、存儲系統(tǒng)、個人計算機、膝上型計算機、筆記本計算機、掌上計算機、個人數(shù)字助理、便攜電子設(shè)備、電池供電的設(shè)備、機頂盒、編碼器、解碼器、轉(zhuǎn)碼器、壓縮器、解壓縮器、預處理器、后處理器、發(fā)射器、接收器、收發(fā)器、密碼電路、蜂窩電話、數(shù)碼照相機、定位和/或?qū)Ш较到y(tǒng)、醫(yī)療裝置、頭戴式顯示器、無線設(shè)備、音頻記錄、音頻存儲和/或音頻回放設(shè)備、視頻記錄、視頻存儲和/或視頻回放設(shè)備、游戲平臺、外圍設(shè)備和/或多芯片模塊。相關(guān)領(lǐng)域的技術(shù)人員應(yīng)該理解本發(fā)明的要素可以以其他類型的設(shè)備實現(xiàn),以滿足特定應(yīng)用的標準。
[0084]盡管參考其實施例已具體示出并說明了本發(fā)明的例示,本領(lǐng)域的技術(shù)人員可以理解,可以對形式和細節(jié)做出各種改變,而不脫離本發(fā)明的范圍。
【權(quán)利要求】
1.一種系統(tǒng),包括: 控制處理器,配置為通過命令接口接收命令和發(fā)送響應(yīng); 非易失性存儲器設(shè)備接口,配置為將所述系統(tǒng)耦接至一個或多個非易失性存儲器設(shè)備;以及 微定序器,耦接至(1)所述控制處理器和(ii )所述非易失性存儲器設(shè)備接口,所述微定序器包括可由所述微定序器讀出并可由所述控制處理器寫入的控制存儲設(shè)備,其中,響應(yīng)于接收所述命令中的特定命令, 所述控制處理器能夠使所述微定序器根據(jù)所述特定命令在所述控制存儲設(shè)備中的位置開始執(zhí)行,并且 所述微定序器能夠根據(jù)耦接至所述非易失性存儲器設(shè)備接口的所述一個或多個非易失性存儲器設(shè)備的協(xié)議,執(zhí)行所述特定命令的至少一部分。
2.如權(quán)利要求1所述的系統(tǒng),其中,所述非易失性存儲器設(shè)備接口包括多個數(shù)據(jù)I/O弓丨腳和多個控制I/O引腳。
3.如權(quán)利要求2所述的系統(tǒng),其中,所述微定序器能夠改變所述控制I/O引腳和所述數(shù)據(jù)I/o引腳的狀態(tài),以根據(jù)所述協(xié)議執(zhí)行所述特定命令。
4.如權(quán)利要求1所述的系統(tǒng),其中,所述控制存儲設(shè)備被所述控制處理器編程為執(zhí)行與附接到所述非易失性存儲器設(shè)備接口的所述一個或多個非易失性存儲器設(shè)備關(guān)聯(lián)的一個或多個協(xié)議。
5.如權(quán)利要求4所述的系統(tǒng),其中所述控制處理器進一步配置為: 初始使能所述控制處理器將所述控制存儲設(shè)備編程為執(zhí)行與多個類型的非易失性存儲器設(shè)備兼容的低速協(xié)議;以及 隨后使能所述控制處理器將所述控制存儲設(shè)備編程為執(zhí)行與所述一個或多個非易失性存儲器設(shè)備兼容的更高速協(xié)議。
6.如權(quán)利要求1所述的系統(tǒng),還包括: 輸出數(shù)據(jù)接口,通過所述微定序器耦接至所述非易失性存儲器設(shè)備接口,所述輸出數(shù)據(jù)接口包括輸出數(shù)據(jù)緩沖,所述輸出數(shù)據(jù)緩沖能夠接收要發(fā)送至所述非易失性存儲器設(shè)備接口的數(shù)據(jù);以及 輸入數(shù)據(jù)接口,通過所述微定序器耦接至所述非易失性存儲器設(shè)備接口,所述輸入數(shù)據(jù)接口包括輸入數(shù)據(jù)緩沖,所述輸入數(shù)據(jù)緩沖能夠接收從所述非易失性存儲器設(shè)備接口接收的數(shù)據(jù)。
7.如權(quán)利要求6所述的系統(tǒng),其中,所述微定序器進一步能夠(i)檢測所述輸入數(shù)據(jù)緩沖的滿狀態(tài),以及(ii)響應(yīng)于檢測所述滿狀態(tài),跳至所述控制存儲設(shè)備中的確定的位置。
8.如權(quán)利要求1所述的系統(tǒng),其中,所述系統(tǒng)是固態(tài)驅(qū)動器SSD設(shè)備的一部分。
9.如權(quán)利要求1所述的系統(tǒng),其中,所述系統(tǒng)實現(xiàn)為一個或多個集成電路。
10.一種控制非易失性存儲器通道的方法,包括如下步驟: 通過耦接至控制處理器的命令接口,接收命令和發(fā)送響應(yīng);以及 使用耦接至所述控制處理器的微定序器,開始執(zhí)行在控制存儲設(shè)備中的位置處的指令,其中,所述位置由所述控制處理器根據(jù)接收的所述命令中的特定命令確定,其中,所述微定序器根據(jù)通過非易失性存儲器設(shè)備接口耦接至所述微定序器的一個或多個非易失性存儲器設(shè)備的協(xié)議,執(zhí)行所述特定命令的至少一部分。
11.如權(quán)利要求10所述的方法,還包括: 使用所述控制處理器將所述控制存儲設(shè)備編程為執(zhí)行與附接到所述非易失性存儲器設(shè)備接口的所述一個或多個非易失性存儲器設(shè)備關(guān)聯(lián)的一個或多個協(xié)議。
12.如權(quán)利要求11所述的方法,還包括: 初始使能所述控制處理器將所述控制存儲設(shè)備編程為執(zhí)行與多個類型的非易失性存儲器設(shè)備兼容的低速協(xié)議;以及 隨后使能所述控制處理器將所述控制存儲設(shè)備編程為執(zhí)行與所述一個或多個非易失性存儲器設(shè)備兼容的 更高速協(xié)議。
【文檔編號】G06F9/22GK103995686SQ201410027208
【公開日】2014年8月20日 申請日期:2014年1月21日 優(yōu)先權(quán)日:2013年2月15日
【發(fā)明者】C·布瑞維爾, E·T·科辰 申請人:Lsi公司