專利名稱:使用多個命令周期的閃存存儲器訪問的制作方法
技術領域:
本發(fā)明涉及閃存存儲器設備以及用于命令和控制閃存存儲器設備的方法和裝置。
背景技術:
閃存存儲器是允許用戶電編程和擦除信息的固態(tài)非易失性存儲器設備。閃存存儲器設備通常支持讀和寫周期兩者,它們分別允許從閃存存儲器讀取數(shù)據(jù)和將數(shù)據(jù)編程到其中。在最早的閃存存儲器設備中,必須由CPU或其他外部處理器小心地控制閃存存儲器之內(nèi)的數(shù)據(jù)和地址總線,以執(zhí)行即使是最簡單的任務,例如向閃存存儲器單元寫數(shù)據(jù)或從其讀數(shù)據(jù)。隨著閃存存儲器設備的成熟,通過將狀態(tài)機包含到閃存存儲器設備中已經(jīng)使外部處理器解除了這種負擔。
狀態(tài)機是這樣一種邏輯設備,其當前狀態(tài)或狀況由其先前的狀態(tài)或狀況確定。狀態(tài)機所接收的每個命令不僅確定狀態(tài)機將采取的動作(取決于其當前狀態(tài)),而且確定狀態(tài)機將擁有的下一個邏輯狀態(tài)。狀態(tài)機可以實現(xiàn)為硬連線邏輯設備,或者實現(xiàn)為被配置來執(zhí)行狀態(tài)機算法的微控制器。
在閃存存儲器設備中包含狀態(tài)機,允許閃存存儲器設備在沒有外部處理器控制的情況下,自主地執(zhí)行如編程和擦除數(shù)據(jù)的簡單任務。于是,外部處理器可以向閃存存儲器設備發(fā)出高級命令,并且該設備中的狀態(tài)機可以自主地解釋該命令,并運行執(zhí)行該命令所必需的任務。當狀態(tài)機執(zhí)行這些任務時,其可以設置狀態(tài)寄存器中的位,所述位可以由外部處理器監(jiān)控來確定該命令的執(zhí)行狀態(tài)。
當前,被包含進閃存存儲器設備的狀態(tài)機由設備設計硬連線,以自主地將預定寫周期解釋為命令,并執(zhí)行硬連線的或預定的算法來完成這些命令。于是,當前可用的閃存存儲器設備僅僅能夠解釋已經(jīng)被邏輯上設計到其狀態(tài)機中的、有限數(shù)量的預定命令。當為閃存存儲器設備開發(fā)出要求新命令的新特征時,就必須特別設計和開發(fā)新的狀態(tài)機來解釋和執(zhí)行新命令。每次開發(fā)出閃存存儲器設備的新命令就開發(fā)新的狀態(tài)機是耗時的過程,其不靈活而且易有邏輯設計錯誤。
圖1是圖示用于發(fā)出和解釋閃存存儲器命令的現(xiàn)有技術方法的圖。
圖2是圖示用于解釋閃存存儲器命令的閃存存儲器命令提取方法的圖。
圖3是能夠使用所述閃存存儲器命令提取方法來解釋命令的閃存存儲器設備的示意圖。
各個附圖中類似的標號表示類似的元件。
具體實施例方式
圖1是示出了現(xiàn)有技術方法的示圖,通過該現(xiàn)有技術方法,外部處理器可以向現(xiàn)有的閃存存儲器設備發(fā)出命令。如前所述,現(xiàn)有技術閃存存儲器設備包含狀態(tài)機,所述狀態(tài)機被硬連線來接收并解釋作為命令來自外部處理器的某些預定寫周期。當狀態(tài)機接收并解釋作為命令的預定寫周期時,其通過硬連線算法來運行執(zhí)行該命令所必需的各個子任務。運行這些子任務經(jīng)常要求執(zhí)行閃存存儲器設備中的原語功能,例如鎖存和釋放某個地址或數(shù)據(jù)線。如果該狀態(tài)機實現(xiàn)為硬連線的邏輯設備,則這些原語功能可以由狀態(tài)機自己來執(zhí)行,或者可以由被安裝到狀態(tài)機并被其控制的嵌入式微序列器來執(zhí)行。嵌入式微序列器被配置成執(zhí)行預定的、存儲在內(nèi)部的微代碼,以運行執(zhí)行外部處理器的預定命令所必需的原語功能。
圖1示出了現(xiàn)有狀態(tài)機將預定寫周期解釋為命令的現(xiàn)有技術方法的示例。如圖所示,外部處理器可以通過向閃存存儲器設備寫入擦除命令序列,來從現(xiàn)有技術閃存存儲器設備中擦除數(shù)據(jù)。該擦除命令序列由以下組成被解釋為擦除建立命令101的第一預定寫周期、以及緊接著的被解釋為擦除確認命令102的第二預定寫周期。類似地,外部處理器可以通過向閃存存儲器設備寫入編程命令序列,來將數(shù)據(jù)編程到閃存存儲器設備中。編程命令序列由以下組成被解釋為編程建立命令110的第三預定寫周期、以及緊接著的被解釋為編程確認命令111的第四預定寫周期。
圖2是公開了一種改進方法的示圖,通過該方法閃存存儲器設備命令可以以一個或多個寫周期被發(fā)送到閃存存儲器設備并被其解釋。諸如圖3中所示閃存存儲器設備300的改進閃存存儲器設備,可以被配置來接收并解釋作為通用命令220來自外部處理器的寫周期。在通用命令220之后可以是接著的一個或多個包含數(shù)據(jù)的寫周期,其由閃存存儲器設備300解釋為一個或多個具體的閃存存儲器命令。具體而言,在通用命令220的寫周期之后可以是可以被解釋為跟隨的寫周期的數(shù)量或字節(jié)數(shù)221的寫周期;可以被解釋為嵌入在通用命令220中的具體閃存存儲器命令222-224的一個或多個寫周期;以及可以被解釋為確認命令225的寫周期。確認命令225可以被用來驗證具體閃存存儲器命令222-224的傳遞,并可用來啟動對具體閃存存儲器命令222-224的解釋和執(zhí)行。具體閃存存儲器命令222-224可以包括諸如擦除命令或編程命令的命令指令或序列,以及與該命令指令或序列相關聯(lián)的任何數(shù)據(jù),例如要存儲在閃存存儲器設備300中的地址數(shù)據(jù)或原始數(shù)據(jù)。
參考圖3,閃存存儲器設備300是具有狀態(tài)機310的設備,狀態(tài)機310可以被配置來從外部處理器或控制器接收寫周期,并將該寫周期解釋為圖2中所公開的通用命令220。當識別出通用命令220時,狀態(tài)機310可以被配置來接收第二寫周期,并將第二寫周期解釋為字節(jié)數(shù)221(參見圖2),字節(jié)數(shù)221表示要存儲在緩沖器314中的后續(xù)寫周期的數(shù)量N。狀態(tài)機310還可以被配置來從外部處理器接收接著的N個寫周期并將其存儲在緩沖器314中。最后,狀態(tài)機310可以被配置來從外部處理器接收最后的寫周期。
如果狀態(tài)機310將最后的寫周期解釋為確認命令225(參見圖2),那么狀態(tài)機310可以被配置來順序地獲取、解釋并執(zhí)行作為具體閃存存儲器命令222-224存儲在緩沖器314中的數(shù)據(jù)。如前所述,閃存存儲器命令222-224可以被解釋為諸如擦除或編程命令的命令指令,以及諸如地址數(shù)據(jù)或原始數(shù)據(jù)之類的與該命令指令相關聯(lián)的數(shù)據(jù)。但是,如果狀態(tài)機310不將最后的寫周期解釋為確認命令225,那么狀態(tài)機310可以被配置來向狀態(tài)寄存器313寫入錯誤消息,并擦除或忽略緩沖器314的內(nèi)容。
閃存存儲器設備300包括多個控制線301、地址線302和數(shù)據(jù)線303,它們允許閃存存儲器設備300與外部設備控制器或處理器(未示出)傳遞和共享數(shù)據(jù)。外部處理器或控制器可以以寫周期的形式向閃存存儲器設備300發(fā)出命令,并且可以在狀態(tài)寄存器313中監(jiān)控所發(fā)出命令的狀態(tài),其中這些寫周期被狀態(tài)機310解釋為命令。
外部處理器和閃存存儲器設備300之間的數(shù)據(jù)流可以經(jīng)由輸入/輸出(“I/O”)控制邏輯312被控制。I/O控制邏輯312由控制線301控制,并可以被配置來有選擇地通過設備數(shù)據(jù)線303將輸入緩沖器320或輸出緩沖器321連接到外部處理器。取決于控制線301的狀態(tài),I/O控制邏輯312或者允許輸入緩沖器320鎖存來自數(shù)據(jù)線303的數(shù)據(jù),或者在數(shù)據(jù)線303上斷言來自輸出緩沖器321的數(shù)據(jù)。
狀態(tài)機310還部分地被控制線301控制。在某些控制狀態(tài)下,狀態(tài)機310可以被配置來通過輸入緩沖器320從外部處理器接收寫周期,并將這些寫周期解釋為命令。被解釋的命令可以是諸如擦除和編程命令的具體閃存存儲器命令指令,或者可以是圖2中所公開的通用命令220。無論如何,所接收到的寫周期和被解釋的命令可以包括最終被寫到閃存存儲器陣列330的原始數(shù)據(jù)。除了從輸入緩沖器320接收寫周期之外,在某些狀態(tài)下狀態(tài)機310還可以被配置來從地址鎖存器340接收地址數(shù)據(jù)。
狀態(tài)機310由其狀態(tài)機算法配置來將接收自外部處理器的寫周期解釋為命令,并執(zhí)行這些命令。狀態(tài)機算法允許狀態(tài)機310自主地運行執(zhí)行這些外部處理器命令所必需的各種任務。這使外部處理器擺脫了這樣的負擔,即不得不控制閃存存儲器設備300內(nèi)部的設備專用任務的負擔。例如,狀態(tài)機算法可以使外部處理器不必運行或監(jiān)視這樣的各種總線操作,這些總線操作在閃存存儲器設備300之內(nèi)并是執(zhí)行外部處理器命令所必需的。
狀態(tài)機310可以被實現(xiàn)為這樣的硬連線邏輯設備,其被配置來將來自外部處理器的預定寫周期解釋為閃存存儲器命令。該硬連線邏輯設備還可以被配置來處理所解釋的命令?;蛘?,該硬連線邏輯設備可以被可操作地耦合到微序列器,并被配置來發(fā)信號通知該微序列器處理所解釋的命令。在一個實施例中,狀態(tài)機310被配置成可操作地耦合到微序列器311的邏輯設備。在此實施例中,狀態(tài)機310可以發(fā)信號通知微序列器311取出并執(zhí)行預定的微代碼源,來處理已被狀態(tài)機310解釋為命令的寫周期。預定的微代碼源可以被存儲在閃存存儲器設備300內(nèi)的非易失存儲器中。該非易失存儲器可以是閃存存儲器陣列330的一部分,或者是獨立專用的微代碼閃存存儲器陣列335。在一個實施例中,該非易失存儲器是專用的微代碼閃存存儲器陣列335。
狀態(tài)機310與微序列器311和存儲在微代碼存儲器陣列335中的微代碼結(jié)合,可以自主地執(zhí)行處理來自外部處理器的命令所必需的各種原語操作。這些原語操作的例子包括但不限于向數(shù)據(jù)寄存器343寫入來自輸入緩沖器320的數(shù)據(jù);向地址鎖存器340寫數(shù)據(jù)以及從其接收數(shù)據(jù);遞增地址計數(shù)器323;將來自數(shù)據(jù)寄存器343的數(shù)據(jù)寫到閃存存儲器陣列330的被尋址單元;將來自閃存存儲器陣列330的被尋址單元中的數(shù)據(jù)寫到輸出緩沖器321;以及將來自狀態(tài)寄存器313的數(shù)據(jù)寫到輸出緩沖器321。
狀態(tài)機310與微序列器311和存儲在微代碼存儲器陣列335中的微代碼結(jié)合,在其內(nèi)部算法的各個狀態(tài)或階段中,可以從閃存存儲器設備的各個元件讀數(shù)據(jù)以及向其寫數(shù)據(jù)。例如,在某些狀態(tài)下,狀態(tài)機310可以發(fā)信號通知微序列器311將由輸入緩沖器320鎖存的數(shù)據(jù)寫到緩沖器314或者數(shù)據(jù)寄存器343。從數(shù)據(jù)寄存器343,狀態(tài)機310可以發(fā)信號通知微序列器311將該數(shù)據(jù)寫到感應放大器(sense amplifier)322,感應放大器322被有選擇地連接到閃存存儲器陣列330中的被尋址單元。狀態(tài)機310還可以發(fā)信號通知微序列器311將數(shù)據(jù)寫到地址計數(shù)器323或狀態(tài)寄存器313,以及從其讀數(shù)據(jù)。為了編程或擦除數(shù)據(jù),在某些狀態(tài)下狀態(tài)機310可以發(fā)信號通知微序列器311,來將編程/擦除開關觸發(fā)到開或關的位置。類似地,在某些狀態(tài)下,狀態(tài)機310可以發(fā)信號通知微序列器311,將來自狀態(tài)寄存器313、狀態(tài)標識符寄存器341或者閃存存儲器陣列330的當前被尋址單元的數(shù)據(jù)寫到輸出緩沖器321。由輸出緩沖器321鎖存的數(shù)據(jù)可以隨后經(jīng)由數(shù)據(jù)線303被外部處理器讀取。
如參考圖2所公開的,通過將狀態(tài)機310設計成如下這樣可以得到相對于現(xiàn)有技術的幾個優(yōu)點,即將一個寫周期解釋為通用命令220,接著將來自隨后的寫周期的數(shù)據(jù)存儲并在后面解釋為多個具體閃存存儲器命令222-224。具體而言,需要外部處理器在具體命令序列(例如圖1中示出的擦除命令序列和編程命令序列)中發(fā)出兩個或更多單獨命令的任何現(xiàn)有技術的閃存存儲器設備的功能,可以被合并成可被外部處理器發(fā)出的單個通用命令220。來自隨后寫周期的數(shù)據(jù)然后可以被寫到緩沖器314,并且被狀態(tài)機310解釋為諸如擦除和擦除確認命令之類的具體閃存存儲器命令并被執(zhí)行。
為了向閃存存儲器設備300增加這種功能,閃存存儲器設備300包括被配置來保存具體閃存存儲器命令和微代碼的緩沖器314,所述微代碼允許狀態(tài)機310和微序列器311進行如下操作將第一寫周期解釋為通用命令220;將第二寫周期解釋為要存儲在緩沖器314中的后續(xù)寫周期的數(shù)量;將后續(xù)寫周期存儲到緩沖器314;以及順序地獲取、解釋并執(zhí)行作為具體閃存存儲器命令存儲在緩沖器314中的寫周期。緩沖器314可以是能夠存儲數(shù)據(jù)的任何類型的存儲器,并且可以是閃存存儲器陣列330本身。在一個實施例中,緩沖器314是狀態(tài)機310內(nèi)的隨機訪問存儲器。將寫周期解釋為通用命令220,以及存儲、獲取、解釋和執(zhí)行作為具體閃存存儲器命令的后續(xù)寫周期的微代碼,可以被存儲在微代碼存儲器陣列335中。
狀態(tài)機310和微序列器311可以被硬連線來執(zhí)行預定的狀態(tài)機算法,或者可以被靈活地配置成被設計來執(zhí)行相關聯(lián)的狀態(tài)機程序的微控制器。當狀態(tài)機310和微序列器311是硬連線的時,它們總是將給定或預定的寫周期解釋為相同的閃存存儲器命令。
通過將狀態(tài)機310和微序列器311實現(xiàn)為被配置來執(zhí)行狀態(tài)機程序的微控制器,可以得到本發(fā)明的另外的優(yōu)點。具體而言,因為該狀態(tài)機程序本身可以被存儲在微代碼存儲器陣列335中,所以將狀態(tài)機310和微序列器311實現(xiàn)為微控制器,允許在閃存存儲器設備300中的設計錯誤變得明顯,或者在為閃存存儲器設備300開發(fā)出新的功能時,增加或者改變狀態(tài)機310和微序列器311。本發(fā)明的這個方面允許在閃存存儲器設備300的硅已經(jīng)被設計和開發(fā)很長時間之后,為狀態(tài)機310和微序列器311開發(fā)新功能,而不顯著地增加設計閃存存儲器設備300的時間或成本。
當狀態(tài)機310和微序列器311被實現(xiàn)為被配置來執(zhí)行狀態(tài)機程序的微控制器時,狀態(tài)機310可以被編程來將來自外部處理器的給定或預定寫周期解釋為多個閃存存儲器命令中的任何一個,這取決于被裝載到微代碼存儲器陣列335中的當前狀態(tài)機程序。從預定寫周期被解釋的閃存存儲器命令,被認為是根據(jù)存儲在微代碼存儲器陣列335中的狀態(tài)機程序而可編程地更新。
已經(jīng)描述了本發(fā)明的多個實施例。然而,將理解到可以進行各種改進而不偏離本發(fā)明的精神和范圍。
權(quán)利要求
1.一種閃存存儲器設備,包括緩沖器,所述緩沖器被配置來存儲在一個或多個寫周期中被寫到所述閃存存儲器設備的具體閃存存儲器命令或數(shù)據(jù);狀態(tài)機,所述狀態(tài)機被耦合到所述緩沖器,并且被配置來將第一寫周期解釋為通用命令并將來自一個或多個后續(xù)寫周期的數(shù)據(jù)存儲在所述緩沖器中,所述狀態(tài)機還被配置來在將最后的寫周期解釋為確認命令后,就順序地獲取、解釋并執(zhí)行所述緩沖器中作為一個或多個具體閃存存儲器命令的數(shù)據(jù);和閃存存儲器陣列,所述閃存存儲器陣列被可操作地耦合到所述狀態(tài)機,并且被配置來存儲并獲取在所述一個或多個具體閃存存儲器命令中所指出的原始數(shù)據(jù)。
2.如權(quán)利要求1所述的設備,還包括非易失存儲器;和微序列器,所述微序列器被可操作地耦合到所述狀態(tài)機,并且被配置來響應于從所述狀態(tài)機接收到的信號,而取出并執(zhí)行被存儲在所述非易失存儲器中的微代碼。
3.如權(quán)利要求2所述的設備,其中所述非易失存儲器是所述閃存存儲器陣列。
4.如權(quán)利要求2所述的設備,其中所述狀態(tài)機和所述微序列器被硬連線來總是將預定的寫周期解釋為相同的閃存存儲器命令。
5.如權(quán)利要求2所述的設備,其中所述狀態(tài)機和所述微序列器被配置成被配置來執(zhí)行狀態(tài)機程序的微控制器。
6.如權(quán)利要求5所述的設備,其中所述狀態(tài)機程序被存儲在所述非易失存儲器中。
7.如權(quán)利要求6所述的設備,其中所述狀態(tài)機程序是可更新的,并且所述狀態(tài)機被配置來將預定寫周期解釋為可編程地更新的閃存存儲器命令。
8.一種用于閃存存儲器命令提取的方法,包括將在第一寫周期中接收到的數(shù)據(jù)解釋為通用閃存存儲器命令;將在第二寫周期中接收到的數(shù)據(jù)解釋為,要作為具體閃存存儲器命令被存儲的后續(xù)寫周期的數(shù)量N;接收并在緩沖器中存儲所述N個后續(xù)寫周期;以及當接收到可以被解釋為確認命令的最后的寫周期后,就獲取、解釋并執(zhí)行被存儲在所述緩沖器中的所述N個具體閃存存儲器命令。
9.如權(quán)利要求8所述的方法,還包括當接收到不能被解釋為確認命令的最后的寫周期后,就輸出錯誤消息并擦除被存儲在所述緩沖器中的所述N個具體閃存存儲器命令。
10.如權(quán)利要求8所述的方法,還包括當接收到不能被解釋為確認命令的最后的寫周期后,就輸出錯誤消息并忽略被存儲在所述緩沖器中的所述N個具體閃存存儲器命令。
11.如權(quán)利要求8所述的方法,還包括當從所述第二寫周期所解釋的所述寫周期數(shù)量N大于可以被存儲在所述緩沖器中的閃存存儲器命令的數(shù)量時,輸出錯誤消息。
12.如權(quán)利要求8所述的方法,還包括使用執(zhí)行狀態(tài)機程序的微控制器,以根據(jù)所述當前被裝載的狀態(tài)機程序來將寫周期解釋為可編程地更新的閃存存儲器命令。
13.一種在機器可讀介質(zhì)上實現(xiàn)的計算機程序產(chǎn)品,所述計算機程序產(chǎn)品包括可操作來使可編程微控制器進行以下操作的指令將在第一寫周期中接收到的數(shù)據(jù)解釋為通用閃存存儲器命令;將在第二寫周期中接收到的數(shù)據(jù)解釋為,要作為具體閃存存儲器命令被存儲的后續(xù)寫周期的數(shù)量N;接收并在緩沖器中存儲所述N個后續(xù)寫周期;以及當接收到可以被解釋為確認命令的最后的寫周期后,就獲取、解釋并執(zhí)行被存儲在所述緩沖器中的所述N個具體閃存存儲器命令。
14.如權(quán)利要求13所述的計算機程序產(chǎn)品,還包括可操作來使所述可編程微控制器進行以下操作的指令當接收到不能被解釋為確認命令的最后的寫周期后,就輸出錯誤消息并擦除被存儲在所述緩沖器中的所述N個具體閃存存儲器命令。
15.如權(quán)利要求13所述的計算機程序產(chǎn)品,還包括可操作來使所述可編程微控制器進行以下操作的指令當接收到不能被解釋為確認命令的最后的寫周期后,就輸出錯誤消息并忽略被存儲在所述緩沖器中的所述N個具體閃存存儲器命令。
16.如權(quán)利要求13所述的計算機程序產(chǎn)品,還包括可操作來使所述可編程微控制器進行以下操作的指令當從所述第二寫周期所解釋的所述寫周期數(shù)量N大于可以被存儲在所述緩沖器中的閃存存儲器命令的數(shù)量時,輸出錯誤消息。
17.如權(quán)利要求13所述的計算機程序產(chǎn)品,還包括可操作來使所述可編程微控制器進行以下操作的指令將所接收到的寫周期解釋為可編程地更新的閃存存儲器命令。
全文摘要
本發(fā)明公開了一種閃存存儲器設備,其能夠?qū)懼芷谝约耙粋€或多個后續(xù)寫周期解釋為包括一個或多個具體閃存存儲器命令的通用命令。該閃存存儲器設備包括狀態(tài)機,所述狀態(tài)機能夠識別通用命令,將具體閃存存儲器命令寫到緩沖器,以及順序地獲取、解釋并執(zhí)行被緩沖的閃存存儲器命令。所述狀態(tài)機可以被配置成執(zhí)行狀態(tài)機算法的微控制器,并且可以被重新編程來糾正設計錯誤或者向閃存存儲器設備增加新功能。狀態(tài)機算法可以被存儲在閃存存儲器設備中,并且可以被更新來以不同的方式解釋相同的寫周期數(shù)據(jù)。因此,可以在狀態(tài)機的硅已經(jīng)被設計和開發(fā)很長時間之后,為該狀態(tài)機開發(fā)新功能。
文檔編號G11C16/06GK1613120SQ02826787
公開日2005年5月4日 申請日期2002年12月31日 優(yōu)先權(quán)日2002年1月4日
發(fā)明者蘭斯·多弗 申請人:英特爾公司