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