亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種閃存控制器及其控制方法、閃存存儲設(shè)備的制作方法

文檔序號:6371445閱讀:175來源:國知局
專利名稱:一種閃存控制器及其控制方法、閃存存儲設(shè)備的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及固態(tài)存儲技術(shù)領(lǐng)域,尤其涉及一種閃存控制器及其控制方法、閃存存儲設(shè)備。
背景技術(shù)
當(dāng)前閃存中的閃存控制器同時控制多個閃存顆粒,這些閃存顆粒共享一個數(shù)據(jù)和命令的通道,控制器通過片選信號實現(xiàn)對選定閃存顆粒的操作。為了實現(xiàn)高速傳輸?shù)哪繕?biāo),要求閃存顆粒的數(shù)據(jù)和命令通道不間斷的傳輸命令和數(shù)據(jù),閃存控制器滿負(fù)荷的在多個閃
存顆粒之間切換工作,因此,需要閃存控制能夠拿到多個閃存顆粒的命令,且能夠靈活的在命令之間切換。圖I是一種現(xiàn)有閃存控制器的原理結(jié)構(gòu)圖,該閃存控制器包括一個核心控制器、多個命令控制器以及多個閃存顆粒,核心控制器負(fù)責(zé)控制多個命令在對應(yīng)的閃存顆粒之間的切換,核心控制器之前的多個命令控制器(接口控制器)分別對應(yīng)閃存顆粒,為閃存顆粒提供命令。該方案每個閃存顆粒需要一個命令控制器,每個命令控制器負(fù)責(zé)從命令接口獲取命令、翻譯命令并發(fā)送命令到核心控制器,然后等待核心控制器執(zhí)行命令完成后執(zhí)行對應(yīng)的收集狀態(tài)和寫回狀態(tài)的操作。核心控制器需要多個命令去調(diào)度實現(xiàn)高性能,因此,在命令接口上,需要多個命令控制器,增加硬件資源的開銷,增加芯片的面積和功耗。同時,且每個命令控制器發(fā)出命令后需等待命令完成并回收完成信息,每個命令控制器維持控制一個命令的時間過長,命令切換時間長,降低命令執(zhí)行的速度。此外,命令控制器需要把命令發(fā)送給核心控制器,也需要把該命令所操作的數(shù)據(jù)地址發(fā)送給核心控制器,如果數(shù)據(jù)來源于多個地址或者數(shù)據(jù)要分散寫到多個地址,對于一個命令,命令控制器需要提供給核心控制器多個數(shù)據(jù)的地址,而由于核心控制器緩存地址的空間有限,可能會導(dǎo)致命令控制器狀態(tài)機停在某個狀態(tài),降低命令執(zhí)行的速度。綜上可知,現(xiàn)有的閃存控制器在實際使用上顯然存在不便與缺陷,所以有必要加以改進(jìn)。

發(fā)明內(nèi)容
針對上述的缺陷,本發(fā)明的目的在于提供一種閃存控制器及其控制方法、閃存存儲設(shè)備,能夠提高命令執(zhí)行的速度,保證核心控制器有足夠的命令去實現(xiàn)高性能數(shù)據(jù)傳輸,保證了閃存控制器的性能,同時提高命令的產(chǎn)生和回收的效率,減少硬件資源的開銷,降低芯片面積和功耗。為了實現(xiàn)上述目的,本發(fā)明提供一種閃存控制器的控制方法,包括命令產(chǎn)生狀態(tài)機從閃存的多個命令接口接收命令,將所述命令翻譯后轉(zhuǎn)發(fā)給核心控制器,并將命令完成狀態(tài)信息的地址預(yù)寫入緩沖寄存器;所述核心控制器執(zhí)行所述命令,數(shù)據(jù)地址狀態(tài)機根據(jù)所述核心控制器的執(zhí)行情況動態(tài)的為其提供數(shù)據(jù)地址;
所述核心控制器執(zhí)行所述命令完成后,命令回收狀態(tài)機從所述核心控制器查詢該命令對應(yīng)的命令完成狀態(tài)信息,并根據(jù)所述緩沖寄存器中的地址向內(nèi)存中寫入所述命令完成狀態(tài)信息。根 據(jù)本發(fā)明的控制方法,“命令產(chǎn)生狀態(tài)機從閃存的多個命令接口接收命令,將所述命令翻譯后轉(zhuǎn)發(fā)給核心控制器”的步驟具體為所述命令產(chǎn)生狀態(tài)機對所述多個命令接口的總線命令隊列進(jìn)行輪詢;若某個總線命令隊列不為空,則所述命令產(chǎn)生狀態(tài)機獲取其中一個命令;所述命令產(chǎn)生狀態(tài)機根據(jù)所述命令從內(nèi)存中獲取該命令的詳細(xì)信息打包后發(fā)送給所述核心控制器;所述命令產(chǎn)生狀態(tài)機繼續(xù)對所述總線命令隊列進(jìn)行輪詢,直至所述多個命令接口上沒有命令或者核心控制器不能夠再接收命令。根據(jù)本發(fā)明的控制方法,“所述命令產(chǎn)生狀態(tài)機根據(jù)所述命令從內(nèi)存中獲取該命令的詳細(xì)信息打包后發(fā)送給所述核心控制器”的步驟中,所述命令的詳細(xì)信息包括所述命令的操作類型以及所述命令的操作模式,所述命令的操作類型包括讀閃存、寫閃存以及擦除閃存;所述命令的操作模式包括對閃存的一個頁全部數(shù)據(jù)操作或者部分?jǐn)?shù)據(jù)操作。根據(jù)本發(fā)明的控制方法,“命令回收狀態(tài)機從所述核心控制器查詢該命令對應(yīng)的命令完成狀態(tài)信息”的步驟中,所述命令完成狀態(tài)信息為所述核心控制器執(zhí)行所述命令的結(jié)果,包括所述命令是否執(zhí)行成功以及所述命令執(zhí)行失敗的類型。根據(jù)本發(fā)明的控制方法,“數(shù)據(jù)地址狀態(tài)機根據(jù)核心控制器的執(zhí)行情況動態(tài)的為核心控制器提供數(shù)據(jù)地址”的步驟中,所述數(shù)據(jù)地址為數(shù)據(jù)讀出的目的地址或數(shù)據(jù)寫入的源地址。本發(fā)明相應(yīng)提供一種閃存控制器,包括命令產(chǎn)生狀態(tài)機,用于從閃存的多個命令接口接收命令,將所述命令翻譯后轉(zhuǎn)發(fā)給核心控制器,并將命令完成狀態(tài)信息的地址預(yù)寫入緩沖寄存器;核心控制器,用于接收所述命令產(chǎn)生狀態(tài)機發(fā)來的命令并根據(jù)數(shù)據(jù)地址狀態(tài)機提供的數(shù)據(jù)地址執(zhí)行所述命令,并向命令回收狀態(tài)機返回所述命令完成狀態(tài)信息;數(shù)據(jù)地址狀態(tài)機,用于根據(jù)核心控制器的執(zhí)行情況動態(tài)的為其提供數(shù)據(jù)地址;命令回收狀態(tài)機,用于所述核心控制器執(zhí)行所述命令完成后從所述核心控制器查詢該命令對應(yīng)的命令完成狀態(tài)信息,并根據(jù)所述緩沖寄存器中的地址將所述命令完成狀態(tài)信息寫入內(nèi)存。根據(jù)本發(fā)明的閃存控制器,所述命令產(chǎn)生狀態(tài)機還用于對多個命令接口的總線命令隊列進(jìn)行輪詢,若某個總線命令隊列不為空,則命令產(chǎn)生狀態(tài)機獲取其中一個命令并從內(nèi)存中獲取該命令的詳細(xì)信息打包后發(fā)送給所述核心控制器,直至所述多個命令接口上沒有命令或者核心控制器不能夠再接收命令。根據(jù)本發(fā)明的閃存控制器,所述命令的詳細(xì)信息包括所述命令的操作類型以及所述命令的操作模式,所述命令的操作類型包括讀閃存、寫閃存以及擦除閃存;所述命令的操作模式包括對閃存的一個頁全部數(shù)據(jù)操作或者部分?jǐn)?shù)據(jù)操作。根據(jù)本發(fā)明的閃存控制器,所述命令完成狀態(tài)信息為所述核心控制器執(zhí)行所述命令的結(jié)果,包括所述命令是否執(zhí)行成功以及所述命令執(zhí)行失敗的類型;所述數(shù)據(jù)地址為數(shù)據(jù)讀出的目的地址或數(shù)據(jù)寫入的源地址。本發(fā)明還提供一種閃存存儲設(shè)備,包括多個命令接口、與所述多個命令接口對應(yīng)的多個閃存顆粒以及與所述多個命令接口以及多個閃存顆粒分別連接的閃存控制器,所述閃存控制器包括命令產(chǎn)生狀態(tài)機,用于從閃存的多個命令接口接收命令,將所述命令翻譯后轉(zhuǎn)發(fā)給核心控制器,并將命令完成狀態(tài)信息的地址預(yù)寫入緩沖寄存器;核心控制器,用于接收所述命令產(chǎn)生狀態(tài)機發(fā)來的命令并根據(jù)數(shù)據(jù)地址狀態(tài)機提供的數(shù)據(jù)地址執(zhí)行所述命令,并向命令回收狀態(tài)機返回所述命令完成狀態(tài)信息;數(shù)據(jù)地址狀態(tài)機,用于根據(jù)核心控制器的執(zhí)行情況動態(tài)的為其提供數(shù)據(jù)地址;命令回收狀態(tài)機,用于所述核心控制器執(zhí)行所述命令完成后從所述核心控制器查詢該命令對應(yīng)的命令完成狀態(tài)信息,并根據(jù)所述緩沖寄存器中的地址將所述命令完成狀態(tài)信息寫入內(nèi)存。本發(fā)明通過命令產(chǎn)生狀態(tài)機不斷從命令接口獲取命令并發(fā)送到核心控制器,數(shù)據(jù)地址狀態(tài)機動態(tài)的為核心控制器提供數(shù)據(jù)地址,命令回收狀態(tài)機從核心控制器回收命令完成狀態(tài)信息并寫回該信息。本發(fā)明只需要命令產(chǎn)生狀態(tài)機、數(shù)據(jù)地址狀態(tài)機以及命令回收狀態(tài)機即可實現(xiàn)對核心控制器滿負(fù)荷運轉(zhuǎn)的控制,同時通過分離命令產(chǎn)生和數(shù)據(jù)地址產(chǎn)生機制的方式提高命令執(zhí)行的速度,命令產(chǎn)生狀態(tài)機只負(fù)責(zé)從接口獲取命令并翻譯命令發(fā)往 核心控制器,命令產(chǎn)生狀態(tài)機只需把命令發(fā)送到核心控制器就可以回復(fù)到空閑狀態(tài),去執(zhí)行發(fā)起下一個命令的操作,把數(shù)據(jù)地址的傳輸工作交給數(shù)據(jù)地址產(chǎn)生器,使得命令產(chǎn)生器可以以最快的速度完成命令執(zhí)行的操作,不影響后續(xù)命令的執(zhí)行,增加了命令執(zhí)行的靈活度,減少了命令切換的時間。同時命令的產(chǎn)生和回收由獨立的狀態(tài)機完成,命令產(chǎn)生后不必等待該命令的回收,降低芯片面積和功耗提高了命令的產(chǎn)生和回收的效率,減少硬件資源的開銷,相對于現(xiàn)有采用多個命令控制器控制特定的閃存顆粒,本方案只需要一個狀態(tài)機動態(tài)的為核心控制器提供命令去控制多個閃存顆粒,減少了硬件資源的消耗,降低芯片的面積和功耗。借此,本發(fā)明能夠提高命令執(zhí)行的速度,保證核心控制器有足夠的命令去實現(xiàn)高性能數(shù)據(jù)傳輸,保證了閃存控制器的性能,同時提高命令的產(chǎn)生和回收的效率,減少硬件資源的開銷,降低芯片面積和功耗。


圖I是現(xiàn)有閃存控制器的原理結(jié)構(gòu)圖;圖2是本發(fā)明的閃存控制器的原理結(jié)構(gòu)圖;圖3是本發(fā)明閃存控制器的控制方法的流程圖;圖4是本發(fā)明閃存控制器中命令產(chǎn)生狀態(tài)機的運行流程圖;圖5是本發(fā)明閃存存儲設(shè)備的原理結(jié)構(gòu)圖。
具體實施例方式為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點更加清楚明白,以下結(jié)合附圖及實施例,對本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述的具體實施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。如圖2所示,本發(fā)明一種閃存控制器100,用于對非易失性閃存的多個閃存顆粒200進(jìn)行控制,其主要包括命令產(chǎn)生狀態(tài)機10、核心控制器20、命令回收狀態(tài)機30以及數(shù)據(jù)地址狀態(tài)機40,其中命令產(chǎn)生狀態(tài)機10、命令回收狀態(tài)機30以及數(shù)據(jù)地址狀態(tài)機40分別通過同步FIFO (先入先出)緩沖器50與核心控制器20連接耦合。命令產(chǎn)生狀態(tài)機10,用于從閃存的多個命令接口接收命令,將該命令并翻譯后轉(zhuǎn)發(fā)給核心控制器20 ,并將命令完成狀態(tài)信息的地址預(yù)寫入緩沖寄存器11。在閃存中,通常設(shè)置一個命令接口(該命令接口為總線接口)對應(yīng)一個閃存顆粒,一般來說一個閃存會包括多個閃存顆粒200,從而閃存具有多個命令接口,每個命令接口可以存放多個命令組成的總線命令隊列。命令產(chǎn)生狀態(tài)機10對多個命令接口進(jìn)行輪詢,如果某個總線命令隊列不為空,則命令產(chǎn)生狀態(tài)機10啟動,從總線命令隊列中獲取一個命令,并根據(jù)該命令從內(nèi)存中獲取該命令對應(yīng)的詳細(xì)信息。該詳細(xì)信息主要包括命令的操作類型以及命令的操作模式,命令的操作類型包括讀閃存、寫閃存以及擦除閃存等;命令的操作模式包括對閃存的一個頁全部數(shù)據(jù)操作或者部分?jǐn)?shù)據(jù)操作等。命令產(chǎn)生狀態(tài)機10獲取了該命令的詳細(xì)信息后,將該詳細(xì)信息進(jìn)行打包發(fā)送給核心控制器20進(jìn)行處理。為便于命令的回收,命令產(chǎn)生狀態(tài)機10還在內(nèi)存中預(yù)先開辟空間用于存儲命令完成狀態(tài)信息,同時將該命令完成狀態(tài)信息的存儲地址緩存到命令狀態(tài)機10內(nèi)部的緩沖寄存器11,以便于命令回收狀態(tài)機30調(diào)用。命令完成狀態(tài)信息包括命令是否執(zhí)行成功以及命令執(zhí)行失敗的類型。其中,閃存的多個命令接口與緩沖寄存器綁定,每個命令接口分別與一個緩沖寄存器對應(yīng)。數(shù)據(jù)地址狀態(tài)機40,用于根據(jù)核心控制器20的執(zhí)行情況動態(tài)的為核心控制器20提供數(shù)據(jù)地址。核心控制器20和數(shù)據(jù)地址狀態(tài)機40之間通過同步FIFO緩沖器50互連,核心控制器執(zhí)行到某個命令開始消耗數(shù)據(jù)地址,動態(tài)數(shù)據(jù)狀態(tài)機檢測同步FIFO緩沖器50的狀態(tài),動態(tài)的提供數(shù)據(jù)地址。該數(shù)據(jù)地址為數(shù)據(jù)讀出的目的地址或數(shù)據(jù)寫入的源地址。核心控制器20,用于接收命令產(chǎn)生狀態(tài)機10發(fā)來的命令并根據(jù)數(shù)據(jù)地址狀態(tài)機40提供的數(shù)據(jù)地址執(zhí)行命令,并向命令回收狀態(tài)機30返回命令完成狀態(tài)信息。在命令中包括了閃存顆粒200的編號,核心控制器20接收一個命令則在對應(yīng)的閃存顆粒200上執(zhí)行該命令。為了讓閃存接口滿負(fù)荷工作達(dá)到高性能數(shù)據(jù)傳輸?shù)哪康?,核心控制?0通常能夠控制多個閃存顆粒200,即核心控制器20能夠接收多個命令,并根據(jù)閃存顆粒200的狀態(tài)調(diào)度命令的執(zhí)行;同時核心控制器20內(nèi)能夠緩存命令,通常緩存的是不同閃存顆粒200不同邏輯單元的命令,以方便核心控制器20動態(tài)調(diào)度這些命令在空閑的閃存顆粒上執(zhí)行。當(dāng)核心控制器20能夠接收命令(即未處于滿負(fù)荷),且命令接口有新的命令到來,命令產(chǎn)生狀態(tài)機10啟動,核心控制器20接收從命令產(chǎn)生狀態(tài)機10發(fā)來的命令,并根據(jù)命令執(zhí)行相應(yīng)的操作(讀閃存、寫閃存以及擦除閃存等);當(dāng)核心控制器20完成了某個命令的執(zhí)行,則觸發(fā)命令回收狀態(tài)機30接收命令完成狀態(tài)信息。命令回收狀態(tài)機30,用于核心控制器20執(zhí)行命令完成后從核心控制器20查詢該命令的對應(yīng)的命令完成狀態(tài)信息,并根據(jù)緩沖寄存器11中的地址將該命令完成狀態(tài)信息寫入內(nèi)存。具體的,當(dāng)核心控制器20執(zhí)行某個命令結(jié)束,命令回收狀態(tài)機30觸發(fā),并從核心控制器20中查詢該命令對應(yīng)的命令完成狀態(tài)信息,并根據(jù)該命令內(nèi)的閃存顆粒編號與命令產(chǎn)生狀態(tài)機10內(nèi)的緩沖寄存器的對應(yīng)關(guān)系,將相應(yīng)的緩沖寄存器中獲取該命令的命令完成狀態(tài)信息的存儲地址,并根據(jù)該地址將該命令的命令完成狀態(tài)信息存入內(nèi)存。根據(jù)本發(fā)明的一個實施例,核心控制器20控制4個閃存顆粒,總線上有4個slave(從設(shè)備)作為命令接口,命令產(chǎn)生狀態(tài)機10會對4個salve 口輪詢并接收命令進(jìn)行翻譯后發(fā)送給核心控制器20,4個slave 口和命令產(chǎn)生狀態(tài)機10內(nèi)部的BF (緩沖寄存器11)綁定,一個slave 口對應(yīng)一個BF。Slave 口和閃存顆粒200之間沒有綁定的關(guān)系,驅(qū)動程序可以選擇任意一個slave去控制特定的閃存顆粒200。由于命令中包含了閃存顆粒200的編號,因此命令產(chǎn)生狀態(tài)機10只要把編號緩存在BF中,使不同閃存顆粒200返回狀態(tài)的位置不同,命令回收狀態(tài)機30根據(jù)返回狀態(tài)位置和命令匹配。如果驅(qū)動程序以固定的關(guān)系控制閃存顆粒20,即BR)對于顆粒0,BFl對于顆粒1,則不需要在BF中緩存編號。核心控制器20接收了來自命令狀態(tài)機10命令,并根據(jù)該命令中的閃存顆粒編號以及數(shù)據(jù)地址狀態(tài)機40提供的數(shù)據(jù)地址對相應(yīng)的閃存顆粒200進(jìn)行操作。操作結(jié)束后,命令回收狀態(tài)機30觸發(fā),從核心控制器20中查詢該命令的命令完成狀態(tài)信息,并根據(jù)該命令內(nèi)的閃存顆粒編號與命令產(chǎn)生狀態(tài)機10內(nèi)的緩沖寄存器11的對應(yīng)關(guān)系,將相應(yīng)的緩沖寄存器11中獲取該命令的命令完成狀態(tài)信息的存儲地址,并根據(jù)該地址將命令完成狀態(tài)信息存入內(nèi)存。在本發(fā)明中,在命令產(chǎn)生端和命令回收端(即命令控制器端),沒有不同閃存控制器的概念,命令產(chǎn)生狀態(tài)機100看到的是不同的命令接口,并循環(huán)的從這些接口中接收命令。命令的產(chǎn)生、命令的回收和閃存顆粒200之間不需要通過特定的ID( IDentity,身份標(biāo) 識號碼)來固定,命令接口和緩沖寄存器11建立了固定的關(guān)系,閃存顆粒200和命令接口的對應(yīng)關(guān)系由驅(qū)動程序確定?,F(xiàn)有的閃存控制器中有多個命令控制器,每個命令控制器一個閃存顆粒,并且命令控制器需要長時間維持對一個閃存顆粒的控制器,從命令接口獲得命令開始,到把命令和數(shù)據(jù)發(fā)到核心控制器,到從核心控制器獲得完成狀態(tài),命令控制器都需要維持在該顆粒上,需要多個命令控制器實現(xiàn)核心控制器的滿負(fù)荷運轉(zhuǎn)。同時,在現(xiàn)有閃存控制器中,命令控制器需要把命令發(fā)送給核心控制器,也需要把該命令所操作的數(shù)據(jù)地址發(fā)送給核心控制器,如果數(shù)據(jù)來源于多個地址或者數(shù)據(jù)要分散寫到多個地址,對于一個命令,命令控制器需要提供給核心控制器多個數(shù)據(jù)的地址,如果核心控制器正在執(zhí)行某個命令,而命令控制器正在下發(fā)另外的一個命令,且該命令所操作的數(shù)據(jù)來自很多地址,因此,命令控制器在發(fā)送命令到核心控制器后,需要發(fā)送多個數(shù)據(jù)地址到核心控制器,如果數(shù)據(jù)地址的個數(shù)超過了核心控制器為每個命令保留的數(shù)據(jù)地址空間,命令控制器需要等核心控制器執(zhí)行到該命令,把數(shù)據(jù)地址消耗并釋放出空間后,才能把剩下的數(shù)據(jù)地址發(fā)送到核心控制器,導(dǎo)致命令控制器的狀態(tài)機停留,影響后續(xù)命令的繼續(xù)執(zhí)行。假如核心控制器需要8個命令去調(diào)度實現(xiàn)高性能的數(shù)據(jù)傳輸,如果出現(xiàn)上述情況,導(dǎo)致核心控制器無法拿到足夠的命令去調(diào)度,降低閃存控制器的性能。而本發(fā)明中,命令產(chǎn)生狀態(tài)機10動態(tài)的提供命令,命令回收狀態(tài)機30動態(tài)回收狀態(tài),只需要一個命令產(chǎn)生狀態(tài)機10和命令回收狀態(tài)機30即可實現(xiàn)對核心控制器20滿負(fù)荷運轉(zhuǎn)的控制。且命令產(chǎn)生狀態(tài)機10不提供數(shù)據(jù)地址功能,使得命令產(chǎn)生狀態(tài)機10專職于命令的產(chǎn)生,而把數(shù)據(jù)地址的提供交給了數(shù)據(jù)地址狀態(tài)機40,由數(shù)據(jù)地址狀態(tài)機40動態(tài)完成。本發(fā)明有效的避免了命令堵住的缺點,提高了命令執(zhí)行的速度,保證核心控制器20有足夠的命令去實現(xiàn)高性能數(shù)據(jù)傳輸,保證了閃存控制器100的性能。本發(fā)明通過命令產(chǎn)生狀態(tài)機10不斷從命令接口獲取命令并發(fā)送到核心控制器20,數(shù)據(jù)地址狀態(tài)機40動態(tài)的為核心控制器20提供數(shù)據(jù)地址,命令回收狀態(tài)機30從核心控制器20回收命令完成狀態(tài)信息并寫回該信息。本發(fā)明只需要命令產(chǎn)生狀態(tài)機10、數(shù)據(jù)地址狀態(tài)機40以及命令回收狀態(tài)機30即可實現(xiàn)對核心控制器20滿負(fù)荷運轉(zhuǎn)的控制,同時通過分離命令產(chǎn)生和數(shù)據(jù)地址產(chǎn)生機制的方式提高命令執(zhí)行的速度,命令產(chǎn)生狀態(tài)機10只負(fù)責(zé)從接口獲取命令并翻譯命令發(fā)往核心控制器20,命令產(chǎn)生狀態(tài)機10只需把命令發(fā)送到核心控制器20就可以回復(fù)到空閑狀態(tài),去執(zhí)行發(fā)起下一個命令的操作,把數(shù)據(jù)地址的傳輸工作交給數(shù)據(jù)地址產(chǎn)生器40,使得命令產(chǎn)生器10可以以最快的速度完成命令執(zhí)行的操作,不影響后續(xù)命令的執(zhí)行,增加了命令執(zhí)行的靈活度,減少了命令切換的時間。同時命令的產(chǎn)生和回收由獨立的狀態(tài)機完成,命令產(chǎn)生后不必等待該命令的回收,降低芯片面積和功耗提高了命令的產(chǎn)生和回收的效率,減少硬件資源的開銷,相對于現(xiàn)有采用多個命令控制器控制特定的閃存顆粒,本方案只需要一個狀態(tài)機動態(tài)的為核心控制器提供命令去控制多個閃存顆粒,減少了硬件資源的消耗,降低芯片的面積和功耗。借此,本發(fā)明能夠提高命令執(zhí)行的速度,保證核心控制器有足夠的命令去實現(xiàn)高性能數(shù)據(jù)傳輸,保證了閃存控制器的性能,同時提高命令的產(chǎn)生和回收的效率,減少硬件資源的開銷,降低芯片面積和功耗。如圖3所示,本發(fā)明還提供一種閃存控制器的控制方法,該方法通過圖2中的閃存控制器完成,該控制方法的主要流程包括如下步驟
步驟S301,命令產(chǎn)生狀態(tài)機從閃存的多個命令接口接收命令,將命令翻譯后轉(zhuǎn)發(fā)給核心控制器,并將命令完成狀態(tài)信息的地址預(yù)寫入緩沖寄存器。本步驟由圖2中的命令產(chǎn)生狀態(tài)機10完成。步驟S302,核心控制器執(zhí)行命令,數(shù)據(jù)地址狀態(tài)機根據(jù)核心控制器的執(zhí)行情況動態(tài)的為核心控制器提供數(shù)據(jù)地址。該數(shù)據(jù)地址為數(shù)據(jù)讀出的目的地址或數(shù)據(jù)寫入的源地址。本步驟由圖2中的核心控制器20以及數(shù)據(jù)地址狀態(tài)機40完成。步驟S303,核心控制器執(zhí)行命令完成后,命令回收狀態(tài)機從核心控制器查詢該命令對應(yīng)的命令完成狀態(tài)信息,并根據(jù)緩沖寄存器中的地址向內(nèi)存中寫入命令完成狀態(tài)信息。命令完成狀態(tài)信息為核心控制器執(zhí)行命令的結(jié)果,包括命令是否執(zhí)行成功以及命令執(zhí)行失敗的類型等信息。本步驟由圖2中的命令回收狀態(tài)機30完成。優(yōu)選的是,在步驟S301中,命令產(chǎn)生狀態(tài)機從閃存的多個命令接口接收命令,將命令翻譯后轉(zhuǎn)發(fā)給核心控制器具體為命令產(chǎn)生狀態(tài)機對所述多個命令接口的總線命令隊列進(jìn)行輪詢;若某個總線命令隊列不為空,則命令產(chǎn)生狀態(tài)機獲取其中一個命令;命令產(chǎn)生狀態(tài)機根據(jù)命令從內(nèi)存中獲取該命令的詳細(xì)信息打包后發(fā)送給核心控制器,命令的詳細(xì)信息包括命令的操作類型以及命令的操作模式,命令的操作類型主要包括讀閃存、寫閃存以及擦除閃存等,命令的操作模式包括對閃存的一個頁全部數(shù)據(jù)操作或者部分?jǐn)?shù)據(jù)操作等;命令產(chǎn)生狀態(tài)機繼續(xù)對總線命令隊列進(jìn)行輪詢,直至多個命令接口上沒有命令或者核心控制器不能夠再接收命令。圖4是本發(fā)明閃存控制器中命令產(chǎn)生狀態(tài)機的運行流程圖,主要流程包括如下步驟步驟S401,命令產(chǎn)生狀態(tài)機對多個命令接口的總線命令隊列進(jìn)行輪詢。步驟S402,若某個總線命令隊列不為空,則命令產(chǎn)生狀態(tài)機獲取其中一個命令。步驟S403,命令產(chǎn)生狀態(tài)機將命令進(jìn)行翻譯后發(fā)送給核心控制器。步驟S404,判斷核心控制器是否為滿負(fù)荷狀態(tài),若是則進(jìn)入步驟S405,否則進(jìn)入步驟S406。步驟S405,命令產(chǎn)生狀態(tài)機暫停向核心控制器發(fā)送命令,并回到步驟S404。
步驟S406,命令產(chǎn)生狀態(tài)機向核心控制器發(fā)送命令,并回到步驟S402。本發(fā)明的將命令產(chǎn)生和命令回收分別通過兩個狀態(tài)機實現(xiàn),一旦核心控制器能夠接收命令,且命令接口有新的命令到來,命令產(chǎn)生狀態(tài)機啟動對應(yīng)的操作。本發(fā)明將命令產(chǎn)生和命令回收兩個狀態(tài)機彼此獨立,增加了命令執(zhí)行的靈活度,減少了命令切換的時間。同時通過分離命令產(chǎn)生和數(shù)據(jù)地址產(chǎn)生機制的方式提高命令執(zhí)行的速度,命令產(chǎn)生狀態(tài)機只負(fù)責(zé)從接口獲取命令并翻譯命令發(fā)往核心控制器,命令產(chǎn)生狀態(tài)機只需把命令發(fā)送到核心控制器就可以回復(fù)到空閑狀態(tài),去執(zhí)行發(fā)起下一個命令的操作,把數(shù)據(jù)地址的傳輸工作交給數(shù)據(jù)地址產(chǎn)生器,使得命令產(chǎn)生器可以以最快的速度完成命令執(zhí)行的操作,不影響后續(xù)命令的執(zhí)行,進(jìn)一步增加了命令執(zhí)行的靈活度,減少了命令切換的時間。如圖5所示,本發(fā)明還提供一種閃存存儲設(shè)備300,包括多個命令接口 301、與多個命令接口 301對應(yīng)的多個閃存顆粒200以及與多個命令接口 301以及多個閃存顆粒200分別連接的閃存控制器100,閃存控制器100包括命令產(chǎn)生狀態(tài)機,用于從閃存的多個命令接口接收命令,將命令翻譯后轉(zhuǎn)發(fā)給核心控制器,并將命令完成狀態(tài)信息的地址預(yù)寫入緩沖寄存器;核心控制器,用于接收命令產(chǎn)生狀態(tài)機發(fā)來的命令并根據(jù)數(shù)據(jù)地址狀態(tài)機提供 的數(shù)據(jù)地址執(zhí)行命令,并向命令回收狀態(tài)機返回命令完成狀態(tài)信息;數(shù)據(jù)地址狀態(tài)機,用于根據(jù)核心控制器的執(zhí)行情況動態(tài)的為核心控制器提供數(shù)據(jù)地址;命令回收狀態(tài)機,用于核心控制器執(zhí)行命令完成后從核心控制器查詢該命令對應(yīng)的命令完成狀態(tài)信息,并根據(jù)緩沖寄存器中的地址將命令完成狀態(tài)信息寫入內(nèi)存。綜上所述,本發(fā)明通過命令產(chǎn)生狀態(tài)機不斷從命令接口獲取命令并發(fā)送到核心控制器,數(shù)據(jù)地址狀態(tài)機動態(tài)的為核心控制器提供數(shù)據(jù)地址,命令回收狀態(tài)機從核心控制器回收命令完成狀態(tài)信息并寫回該信息。只需要命令產(chǎn)生狀態(tài)機、數(shù)據(jù)地址狀態(tài)機以及命令回收狀態(tài)機即可實現(xiàn)對核心控制器滿負(fù)荷運轉(zhuǎn)的控制,同時通過分離命令產(chǎn)生和數(shù)據(jù)地址產(chǎn)生機制的方式提高命令執(zhí)行的速度,命令產(chǎn)生狀態(tài)機只負(fù)責(zé)從接口獲取命令并翻譯命令發(fā)往核心控制器,命令產(chǎn)生狀態(tài)機只需把命令發(fā)送到核心控制器就可以回復(fù)到空閑狀態(tài),去執(zhí)行發(fā)起下一個命令的操作,把數(shù)據(jù)地址的傳輸工作交給數(shù)據(jù)地址產(chǎn)生器,使得命令產(chǎn)生器可以以最快的速度完成命令執(zhí)行的操作,不影響后續(xù)命令的執(zhí)行,增加了命令執(zhí)行的靈活度,減少了命令切換的時間。同時命令的產(chǎn)生和回收由獨立的狀態(tài)機完成,命令產(chǎn)生后不必等待該命令的回收,降低芯片面積和功耗提高了命令的產(chǎn)生和回收的效率,減少硬件資源的開銷,相對于現(xiàn)有采用多個命令控制器控制特定的閃存顆粒,本方案只需要一個狀態(tài)機動態(tài)的為核心控制器提供命令去控制多個閃存顆粒,減少了硬件資源的消耗,降低芯片的面積和功耗。借此,本發(fā)明能夠提高命令執(zhí)行的速度,保證核心控制器有足夠的命令去實現(xiàn)高性能數(shù)據(jù)傳輸,保證了閃存控制器的性能,同時提高命令的產(chǎn)生和回收的效率,減少硬件資源的開銷,降低芯片面積和功耗。當(dāng)然,本發(fā)明還可有其它多種實施例,在不背離本發(fā)明精神及其實質(zhì)的情況下,熟悉本領(lǐng)域的技術(shù)人員當(dāng)可根據(jù)本發(fā)明作出各種相應(yīng)的改變和變形,但這些相應(yīng)的改變和變形都應(yīng)屬于本發(fā)明所附的權(quán)利要求的保護(hù)范圍。
權(quán)利要求
1.一種閃存控制器的控制方法,其特征在于,包括 命令產(chǎn)生狀態(tài)機從閃存的多個命令接口接收命令,將所述命令翻譯后轉(zhuǎn)發(fā)給核心控制器,并將命令完成狀態(tài)信息的地址預(yù)寫入緩沖寄存器; 所述核心控制器執(zhí)行所述命令,數(shù)據(jù)地址狀態(tài)機根據(jù)所述核心控制器的執(zhí)行情況動態(tài)的為其提供數(shù)據(jù)地址; 所述核心控制器執(zhí)行所述命令完成后,命令回收狀態(tài)機從所述核心控制器查詢該命令對應(yīng)的命令完成狀態(tài)信息,并根據(jù)所述緩沖寄存器中的地址向內(nèi)存中寫入所述命令完成狀態(tài)息。
2.根據(jù)權(quán)利要求I所述的控制方法,其特征在于,“命令產(chǎn)生狀態(tài)機從閃存的多個命令接口接收命令,將所述命令翻譯后轉(zhuǎn)發(fā)給核心控制器”的步驟具體為 所述命令產(chǎn)生狀態(tài)機對所述多個命令接口的總線命令隊列進(jìn)行輪詢; 若某個總線命令隊列不為空,則所述命令產(chǎn)生狀態(tài)機獲取其中一個命令; 所述命令產(chǎn)生狀態(tài)機根據(jù)所述命令從內(nèi)存中獲取該命令的詳細(xì)信息打包后發(fā)送給所述核心控制器; 所述命令產(chǎn)生狀態(tài)機繼續(xù)對所述總線命令隊列進(jìn)行輪詢,直至所述多個命令接口上沒有命令或者核心控制器不能夠再接收命令。
3.根據(jù)權(quán)利要求2所述的控制方法,其特征在于,“所述命令產(chǎn)生狀態(tài)機根據(jù)所述命令從內(nèi)存中獲取該命令的詳細(xì)信息打包后發(fā)送給所述核心控制器”的步驟中,所述命令的詳細(xì)信息包括所述命令的操作類型以及所述命令的操作模式,所述命令的操作類型包括讀閃存、寫閃存以及擦除閃存;所述命令的操作模式包括對閃存的一個頁全部數(shù)據(jù)操作或者部分?jǐn)?shù)據(jù)操作。
4.根據(jù)權(quán)利要求I所述的控制方法,其特征在于,“命令回收狀態(tài)機從所述核心控制器查詢該命令對應(yīng)的命令完成狀態(tài)信息”的步驟中,所述命令完成狀態(tài)信息為所述核心控制器執(zhí)行所述命令的結(jié)果,包括所述命令是否執(zhí)行成功以及所述命令執(zhí)行失敗的類型。
5.根據(jù)權(quán)利要求I所述的控制方法,其特征在于,“數(shù)據(jù)地址狀態(tài)機根據(jù)核心控制器的執(zhí)行情況動態(tài)的為核心控制器提供數(shù)據(jù)地址”的步驟中,所述數(shù)據(jù)地址為數(shù)據(jù)讀出的目的地址或數(shù)據(jù)寫入的源地址。
6.一種閃存控制器,其特征在于,包括 命令產(chǎn)生狀態(tài)機,用于從閃存的多個命令接口接收命令,將所述命令翻譯后轉(zhuǎn)發(fā)給核心控制器,并將命令完成狀態(tài)信息的地址預(yù)寫入緩沖寄存器; 核心控制器,用于接收所述命令產(chǎn)生狀態(tài)機發(fā)來的命令并根據(jù)數(shù)據(jù)地址狀態(tài)機提供的數(shù)據(jù)地址執(zhí)行所述命令,并向命令回收狀態(tài)機返回所述命令完成狀態(tài)信息; 數(shù)據(jù)地址狀態(tài)機,用于根據(jù)核心控制器的執(zhí)行情況動態(tài)的為其提供數(shù)據(jù)地址; 命令回收狀態(tài)機,用于所述核心控制器執(zhí)行所述命令完成后從所述核心控制器查詢該命令對應(yīng)的命令完成狀態(tài)信息,并根據(jù)所述緩沖寄存器中的地址將所述命令完成狀態(tài)信息寫入內(nèi)存。
7.根據(jù)權(quán)利要求6所述的閃存控制器,其特征在于,所述命令產(chǎn)生狀態(tài)機還用于對多個命令接口的總線命令隊列進(jìn)行輪詢,若某個總線命令隊列不為空,則命令產(chǎn)生狀態(tài)機獲取其中一個命令并從內(nèi)存中獲取該命令的詳細(xì)信息打包后發(fā)送給所述核心控制器,直至所述多個命令接口上沒有命令或者核心控制器不能夠再接收命令。
8.根據(jù)權(quán)利要求7所述的閃存控制器,其特征在于,所述命令的詳細(xì)信息包括所述命令的操作類型以及所述命令的操作模式,所述命令的操作類型包括讀閃存、寫閃存以及擦除閃存;所述命令的操作模式包括對閃存的一個頁全部數(shù)據(jù)操作或者部分?jǐn)?shù)據(jù)操作。
9.根據(jù)權(quán)利要求6所述的閃存控制器,其特征在于,所述命令完成狀態(tài)信息為所述核心控制器執(zhí)行所述命令的結(jié)果,包括所述命令是否執(zhí)行成功以及所述命令執(zhí)行失敗的類型;所述數(shù)據(jù)地址為數(shù)據(jù)讀出的目的地址或數(shù)據(jù)寫入的源地址。
10.一種閃存存儲設(shè)備,包括多個命令接口、與所述多個命令接口對應(yīng)的多個閃存顆粒以及與所述多個命令接口以及多個閃存顆粒分別連接的閃存控制器,其特征在于,所述閃存控制器包括 命令產(chǎn)生狀態(tài)機,用于從閃存的多個命令接口接收命令,將所述命令翻譯后轉(zhuǎn)發(fā)給核心控制器,并將命令完成狀態(tài)信息的地址預(yù)寫入緩沖寄存器; 核心控制器,用于接收所述命令產(chǎn)生狀態(tài)機發(fā)來的命令并根據(jù)數(shù)據(jù)地址狀態(tài)機提供的數(shù)據(jù)地址執(zhí)行所述命令,并向命令回收狀態(tài)機返回所述命令完成狀態(tài)信息; 數(shù)據(jù)地址狀態(tài)機,用于根據(jù)核心控制器的執(zhí)行情況動態(tài)的為其提供數(shù)據(jù)地址; 命令回收狀態(tài)機,用于所述核心控制器執(zhí)行所述命令完成后從所述核心控制器查詢該命令對應(yīng)的命令完成狀態(tài)信息,并根據(jù)所述緩沖寄存器中的地址將所述命令完成狀態(tài)信息寫入內(nèi)存。
全文摘要
本發(fā)明適用于固態(tài)存儲技術(shù)領(lǐng)域,提供了一種閃存控制器及其控制方法、閃存存儲設(shè)備,閃存控制器的控制方法包括命令產(chǎn)生狀態(tài)機從閃存的多個命令接口接收命令,將命令翻譯后轉(zhuǎn)發(fā)給核心控制器,并將命令完成狀態(tài)信息的地址預(yù)寫入緩沖寄存器;核心控制器執(zhí)行命令,數(shù)據(jù)地址狀態(tài)機根據(jù)核心控制器的執(zhí)行情況動態(tài)的為其提供數(shù)據(jù)地址;核心控制器執(zhí)行命令完成后,命令回收狀態(tài)機從核心控制器查詢該命令對應(yīng)的命令完成狀態(tài)信息,并根據(jù)緩沖寄存器中的地址向內(nèi)存中寫入命令完成狀態(tài)信息。借此,本發(fā)明能夠提高命令執(zhí)行的速度,保證核心控制器有足夠的命令去實現(xiàn)高性能數(shù)據(jù)傳輸,保證了閃存控制器的性能,同時提高命令的產(chǎn)生和回收的效率。
文檔編號G06F13/16GK102768647SQ201210195868
公開日2012年11月7日 申請日期2012年6月14日 優(yōu)先權(quán)日2012年6月14日
發(fā)明者莫海鋒 申請人:記憶科技(深圳)有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1