一種閃存接口控制方法及裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明屬于數(shù)據(jù)存儲(chǔ)領(lǐng)域,更具體地,涉及一種閃存接口控制方法及裝置。
【背景技術(shù)】
[0002]隨著固態(tài)存儲(chǔ)設(shè)備的快速發(fā)展,閃存器件也在不斷地推陳出新。20nm及以下先進(jìn)工藝的閃存器件開(kāi)始得到廣泛的應(yīng)用。新工藝的閃存不但在容量上得到大幅改善,而且能夠支持更快的接口時(shí)序以及更多的控制命令。這種狀況在有效提高了固態(tài)存儲(chǔ)設(shè)備的性能與容量的同時(shí),卻使得閃存器件的控制過(guò)程變得愈發(fā)復(fù)雜。例如,為了能夠讀取性能,閃存器件具有隨機(jī)讀取、緩存讀取(Cache Read)以及多平面讀取(Mult1-Plane Read)等多種讀取命令。這些讀取命令不僅本身復(fù)雜,而且還需要與其他命令配合來(lái)完成一些復(fù)雜的操作。
[0003]傳統(tǒng)的閃存控制器由于采用全硬件實(shí)現(xiàn)的方式,需要在設(shè)計(jì)的復(fù)雜度與靈活性之間進(jìn)行折衷。若通過(guò)硬件方式實(shí)現(xiàn)所有的命令,則設(shè)計(jì)復(fù)雜且開(kāi)銷(xiāo)較大;若僅僅實(shí)現(xiàn)有限的數(shù)條命令,則無(wú)法完全發(fā)揮閃存器件的性能。而以固態(tài)硬盤(pán)為代表的高性能固態(tài)存儲(chǔ)設(shè)備在工程實(shí)踐往往既要求能夠支持多種復(fù)雜命令,又要求實(shí)現(xiàn)的開(kāi)銷(xiāo)能夠最小化。因而,在這種矛盾中,需要為閃存器件設(shè)計(jì)一種能夠權(quán)衡控制靈活性與設(shè)計(jì)復(fù)雜度的新方案,以提高固態(tài)存儲(chǔ)設(shè)備的性能,并降低其成本。
【發(fā)明內(nèi)容】
[0004]針對(duì)現(xiàn)有技術(shù)的以上缺陷或改進(jìn)需求,本發(fā)明提供了一種閃存接口控制方法,不同于過(guò)去采用硬件直接實(shí)現(xiàn)的方法,本發(fā)明通過(guò)將軟件指令控制與底層硬件時(shí)序控制相結(jié)合的方式來(lái)實(shí)現(xiàn)對(duì)外部閃存器件的控制。相應(yīng)的可有效解決現(xiàn)有技術(shù)中硬件方式實(shí)現(xiàn)接口控制時(shí)設(shè)計(jì)復(fù)雜且開(kāi)銷(xiāo)較大的問(wèn)題,同時(shí)本發(fā)明中軟硬件協(xié)同工作機(jī)制不僅應(yīng)用靈活,而且實(shí)現(xiàn)簡(jiǎn)單、易于擴(kuò)展,因而尤其適用于固態(tài)存儲(chǔ)的嵌入式應(yīng)用場(chǎng)合。
[0005]為實(shí)現(xiàn)上述目的,按照本發(fā)明的一個(gè)方面,提出了一種閃存接口控制裝置,其特征在于,所述接口控制裝置包括控制器、微代碼存儲(chǔ)器及接口控制器三部分,所述控制器,用于完成對(duì)用戶(hù)數(shù)據(jù)請(qǐng)求的處理,根據(jù)操作類(lèi)型的不同,從所述微代碼存儲(chǔ)器中讀取對(duì)應(yīng)的微代碼序列進(jìn)行執(zhí)行;所述微代碼存儲(chǔ)器,用于保存有與操作類(lèi)型相對(duì)應(yīng)的微代碼序列;所述接口控制器,與外部的閃存器件相連,用于以硬件方式實(shí)現(xiàn)接口時(shí)序。
[0006]作為進(jìn)一步優(yōu)選的,所述控制器可同時(shí)管理多組接口控制器。
[0007]作為進(jìn)一步優(yōu)選的,所述控制器中包括寄存器組,用來(lái)與微代碼存儲(chǔ)器配合操作。
[0008]作為進(jìn)一步優(yōu)選的,所述寄存器組包括命令寄存器、地址寄存器,其中所述命令寄存器,用于存放用戶(hù)的操作命令;所述地址寄存器,用于存放用戶(hù)需要訪(fǎng)問(wèn)的閃存地址內(nèi)容或者用戶(hù)的內(nèi)存操作地址。
[0009]作為進(jìn)一步優(yōu)選的,所述操作類(lèi)型具體包括數(shù)據(jù)讀取、數(shù)據(jù)寫(xiě)入、數(shù)據(jù)擦除。
[0010]為實(shí)現(xiàn)上述目的,按照本發(fā)明的另一個(gè)方面,提出了一種閃存接口控制方法,其特征在于,所述方法包括:
[0011](1)控制器接收用戶(hù)請(qǐng)求并譯碼,判斷用戶(hù)請(qǐng)求的操作類(lèi)型;
[0012](2)控制器從微代碼存儲(chǔ)器中取指,得到操作類(lèi)型對(duì)應(yīng)的微代碼序列的存儲(chǔ)位置,并將所述微代碼序列逐一取出;
[0013](3)完成取指操作后,控制器將根據(jù)微代碼序列中每條微代碼的操作數(shù)的索引,依次鏈接寄存器組中的操作數(shù),生成與用戶(hù)操作對(duì)應(yīng)的時(shí)序與閃存命令;
[0014](4)控制器將所述時(shí)序與閃存命令送往對(duì)應(yīng)的接口控制器執(zhí)行,從而完成與外部閃存數(shù)據(jù)的交互。
[0015]作為進(jìn)一步優(yōu)選的,所述操作類(lèi)型具體包括數(shù)據(jù)讀取、數(shù)據(jù)寫(xiě)入、數(shù)據(jù)擦除。
[0016]作為進(jìn)一步優(yōu)選的,所述微代碼包括時(shí)序類(lèi)型及操作索引,其中,所述時(shí)序類(lèi)型,用于指明數(shù)據(jù)或命令傳輸時(shí)所應(yīng)使用的時(shí)序控制類(lèi)型;所述操作索引,用于指明當(dāng)前操作數(shù)的寄存器索引。
[0017]作為進(jìn)一步優(yōu)選的,所述微代碼分為命令類(lèi)型微代碼、地址類(lèi)型微代碼及數(shù)據(jù)類(lèi)型微代碼,其中所述命令類(lèi)型微代碼,用于處理閃存命令中的命令字;所述地址類(lèi)型微代碼,用于處理閃存命令中的操作地址;所述數(shù)據(jù)類(lèi)型微代碼,用于處理閃存命令中的數(shù)據(jù)傳輸。
[0018]總體而言,通過(guò)本發(fā)明所構(gòu)思的以上技術(shù)方案與現(xiàn)有技術(shù)相比,主要具備以下的技術(shù)優(yōu)點(diǎn):
[0019]1.本發(fā)明提出的一種閃存接口控制方法及裝置,通過(guò)配置微代碼方式,實(shí)現(xiàn)了對(duì)多種外部的閃存器件接口時(shí)序的靈活控制,與采用全硬件實(shí)現(xiàn)的方式相比,大大降低了設(shè)計(jì)的復(fù)雜度及成本開(kāi)銷(xiāo);
[0020]2.本發(fā)明方法中,通過(guò)各種閃存命令與相應(yīng)的時(shí)序綁定,在實(shí)現(xiàn)單一閃存命令的基礎(chǔ)上,由操作控制組合更多的閃存命令,從而實(shí)現(xiàn)用戶(hù)所期望的閃存功能;
[0021]3.通過(guò)將本發(fā)明的方法及相應(yīng)裝置應(yīng)用于固態(tài)存儲(chǔ)設(shè)備中,從而實(shí)現(xiàn)對(duì)多種閃存器件的靈活支持,顯著降低了研發(fā)周期與風(fēng)險(xiǎn)。
【附圖說(shuō)明】
[0022]圖1是本發(fā)明的閃存接口控制裝置結(jié)構(gòu)圖;
[0023]圖2是本發(fā)明的閃存接口控制方法流程圖。
[0024]圖3是本發(fā)明的閃存接口控制操作的層次框圖;
[0025]圖4是時(shí)序類(lèi)型框圖;
[0026]圖5是微代碼取指及鏈接示意圖;
[0027]圖6是讀取操作類(lèi)型格式圖。
【具體實(shí)施方式】
[0028]為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖及實(shí)施例,對(duì)本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說(shuō)明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。此外,下面所描述的本發(fā)明各個(gè)實(shí)施方式中所涉及到的技術(shù)特征只要彼此之間未構(gòu)成沖突就可以相互組合。
[0029]本發(fā)明提出了一種閃存接口控制裝置,如圖1所示,本發(fā)明的硬件實(shí)施方案由控制器、微代碼存儲(chǔ)器以及接口控制器三部分組成。其中,控制器完成對(duì)用戶(hù)數(shù)據(jù)請(qǐng)求的處理,并包括有相應(yīng)的寄存器組,用來(lái)與微代碼存儲(chǔ)器配合操作。微代碼存儲(chǔ)器則保存有諸如讀取、寫(xiě)入、擦除等操作類(lèi)型相對(duì)應(yīng)的微代碼序列,控制器將根據(jù)操作類(lèi)型的不同,從微代碼存儲(chǔ)器中讀取相對(duì)應(yīng)的微代碼序列進(jìn)行執(zhí)行。而接口控制器則以硬件方式實(shí)現(xiàn)接口時(shí)序,并于外部的閃存器件相連。根據(jù)應(yīng)用需要的不同,控制器可以同時(shí)管理多組接口控制器,從而實(shí)現(xiàn)對(duì)外部的多個(gè)閃存器件的控制。
[0030]在具體實(shí)現(xiàn)過(guò)程中,本發(fā)明在控制器中使用了包含多個(gè)命令寄存器與地址寄存器的寄存器組。其中,命令寄存器用于存放用戶(hù)填寫(xiě)的閃存操作命令;地址寄存器用于存放用戶(hù)需要訪(fǎng)問(wèn)的閃存地址內(nèi)容或者內(nèi)存操作地址。讀取操作時(shí),由兩個(gè)地址寄存器用于分別存放從閃存器件讀出數(shù)據(jù)的目標(biāo)內(nèi)存地址以及閃存地址;而寫(xiě)入操作時(shí),同樣由兩個(gè)地址寄存器用于分別存放向閃存器件寫(xiě)入數(shù)據(jù)的源內(nèi)存地址以及閃存地址。這樣,寄存器接口可以有效地配合微代碼存儲(chǔ)器可以實(shí)現(xiàn)相關(guān)的閃存操作命令。
[0031]控制器是閃存控制接口模塊的核心。在實(shí)現(xiàn)中,控制器可以采用類(lèi)似于經(jīng)典處理器的流水線(xiàn)結(jié)構(gòu)。也就是說(shuō),如圖2所示,為本發(fā)明的一種閃存接口控制方法流程圖,所述方法具體為:
[0032]當(dāng)用戶(hù)請(qǐng)求輸入到控制器后,控制器將首先進(jìn)行譯碼,判斷用戶(hù)請(qǐng)求的操作類(lèi)型,從而在下一步中能夠從微代碼存儲(chǔ)器中進(jìn)行取指,得到操作類(lèi)型對(duì)應(yīng)的微代碼序列的存儲(chǔ)位置,并將所述微代碼序列逐一取出;接下來(lái),控制器將根據(jù)微代碼中的操作索引,與寄存器中的操作數(shù)相鏈接,從而獲得完整的閃存命令。最終,時(shí)序與閃存命令被發(fā)送到相應(yīng)的接口控制器中予以處理,從而在總線(xiàn)上產(chǎn)生相關(guān)的時(shí)序與閃存命令,完成與外部閃存器件的數(shù)據(jù)交互。
[0033]根據(jù)閃存操作的實(shí)現(xiàn)過(guò)程,本發(fā)明將整個(gè)操作控制過(guò)程劃分為如圖3所示的三個(gè)層次:時(shí)序控制、命令控制以及操作控制