專利名稱::用于存儲器的控制裝置及控制方法
技術領域:
:本發(fā)明涉及一種存儲器的控制裝置,特別是涉及一種具有可編程的存儲器協(xié)議的控制裝置及控制方法,其可以更有彈性地控制不同供貨商所提供的存儲器。
背景技術:
:在各種不同的儲存介質(zhì)中,由于隨身聽(pendrive)體積小、容量大及使用方便等特性,使得隨身聽的使用日益普及。隨身聽一般采用例如閃存(flashmemory)的非易失性存儲器(nonvolatilememory)來作為儲存單元。根據(jù)不同供貨商所提供的閃存,廠商通過適當?shù)拇鎯ζ鲄f(xié)議(protocol)來控制閃存。存儲器協(xié)議即是對指定的存儲器地址,配合存儲器供貨商所制定的操作(operation)下達執(zhí)行該操作所需要的命令(command),而前述的操作例如是數(shù)據(jù)的讀出、寫入或擦除。一般存儲器協(xié)議的做法有兩種一種是軟件方式,另一種是硬件方式。軟件方式即是完全由微控制器(microcontrollerunit,MCU)通過存儲器接口與閃存溝通,這種方式操作所需的每個命令都須經(jīng)由MCU下達,除了會增加MCU的耗電量,還會因為MCU執(zhí)行每個命令都需要好幾個周期(cycle)而降低整體的工作效能。硬件方式即是由MCU與一些邏輯控制電路通過存儲器接口與閃存溝通,其中所述邏輯控制電路例如是狀態(tài)機(statemachine)電路。但是,由于不同供貨商所提供的閃存在執(zhí)行操作時所需的命令及其順序或下達命令的方式并不相同,例如供貨商可能加入一些其它供貨商所不具有的操作及其命令以加快讀寫的速度,所以必須依狀況改變邏輯控制電路的設計,以滿足不同供貨商作法上的差異。這種方式需要增加邏輯門數(shù)目(gatecount)來完成存儲器協(xié)議,而且設計上不具彈性。
發(fā)明內(nèi)容有鑒于此,本發(fā)明的目的是提供一種存儲器的控制裝置及控制方法,其具有可編程的存儲器協(xié)議以更有彈性地控制不同供貨商所提供的存儲器。基于上述及其它目的,本發(fā)明提出一種存儲器的控制裝置,該控制裝置耦接至存儲器并控制存儲器執(zhí)行一操作,其中該操作包括讀出、寫入或擦除等。該控制裝置包括一微控制器、一命令序列發(fā)生器(commandsequencer)、一命令隊列器(commandqueue)及一對照表(table)。其中,微控制器根據(jù)該操作輸出一控制信號。命令序列發(fā)生器根據(jù)該控制信號依序存放執(zhí)行該操作所需的多個命令集,其中每個命令集各自包括多個命令。命令隊列器根據(jù)所述命令集的順序存放相應的多個命令集內(nèi)容。對照表存放執(zhí)行該操作所需的該存儲器的目標地址及完成該操作所需重復執(zhí)行的次數(shù)。在一實施例中,該存儲器為一非易失性存儲器。在另一實施例中,該存儲器為一閃存。基于上述及其它目的,本發(fā)明提出一種存儲器的控制方法,其中該存儲器耦接至一控制裝置,且該控制裝置包括一微控制器、一命令序列發(fā)生器、一命令隊列器及一對照表。該控制方法首先根據(jù)該存儲器的一操作,由微控制器控制命令序列發(fā)生器依序存放執(zhí)行該操作所需的多個命令集,其中每個命令集各自包括多個命令。再由命令隊列器根據(jù)所述命令集的順序存放相應的多個命令集內(nèi)容,以及由對照表存放執(zhí)行該操作所需的存儲器的目標地址及完成該操作所需重復執(zhí)行的次數(shù),其中該操作包括讀出、寫入、擦除或復制等。接著,由微控制器控制該控制裝置配合所述命令集內(nèi)容依序執(zhí)行所述命令集?;谏鲜黾捌渌康?,本發(fā)明提出一種存儲器裝置,其包括上述的控制裝置以及一存儲器。上述的控制裝置耦接至存儲器并控制存儲器執(zhí)行一操作,其中該操作包括讀出、寫入、擦除或復制等。本發(fā)明藉由微控制器、命令序列發(fā)生器、命令隊列器及對照表使得存儲器協(xié)議可編程,因此可以根據(jù)不同供貨商所提供的存儲器采用不同的協(xié)議來控制。為使本發(fā)明的上述和其它目的、特征和優(yōu)點能更明顯易懂,下文特舉較佳實施例,并結(jié)合附圖詳細說明如下。圖1為根據(jù)本發(fā)明一實施例所繪示的存儲器裝置的方塊圖。圖2為根據(jù)本發(fā)明一實施例的操作存儲器所需的命令的分類。圖3為根據(jù)本發(fā)明一實施例的執(zhí)行存儲器寫入操作時所需的命令及其順序的示意圖。圖4為根據(jù)本發(fā)明一實施例的執(zhí)行存儲器寫入操作時命令隊列器、命令序列發(fā)生器及對照表搭配的示意圖。附圖符號說明100控制裝置110微控制器(MCU)120命令隊列器130命令序列發(fā)生器140對照表150存儲器接口160存儲器addr目標地址iteration重復執(zhí)行的次數(shù)finish、success、finish命令集內(nèi)容ADDR、BUSY、CMD、DATA、STATUS命令EOT結(jié)束傳輸具體實施方式圖1為根據(jù)本發(fā)明一實施例的存儲器裝置的方塊圖。請參照圖1,存儲器裝置包括控制裝置100、存儲器接口150以及存儲器160,其中控制裝置100包括微控制器(MCU)110、命令隊列器120、命令序列發(fā)生器130以及對照表140。控制裝置100通過存儲器接口150耦接至存儲器160并控制存儲器160執(zhí)行一操作,其中該操作包括讀出、寫入、擦除或復制等。在一實施例中,存儲器160可以是非易失性存儲器,例如閃存。而對照表140可以是物理區(qū)域描述表(physicalregiondescriptortable,PRDtable)。針對上述的操作,雖然各供貨商所提供的存儲器在下達命令的方式及命令的順序并不相同,但這些命令可以初步歸納整理為如圖2所示。請參照圖2,通過存儲器接口150,控制裝置100對存儲器160下達的命令有CMD、ADDR及DATA,而存儲器160對控制裝置100下達的命令有BUSY、STATUS及DATA。除了命令DATA可以由控制裝置100對存儲器160下達或由存儲器160對控制裝置100下達以外,其余的命令僅可以單向下達。其中,每個命令可能可以再細分下去,例如ADDR可分為塊(block)地址命令及頁(page)地址命令。以執(zhí)行存儲器160的寫入操作為例,一般所需要的命令及其順序如圖3所示。請參照圖3,執(zhí)行寫入操作所需的命令依序為CMD、ADDR、DATA、CMD、WT、CMD及STATUS,其中箭頭的方向為下達命令的方向,向右則表示由控制裝置100對存儲器160下達,而向左則表示由存儲器160對控制裝置100下達。而按照命令之間的相依性還可以將上述操作所需的命令劃分成多個指令集,且每個命令集各自包括多個命令。以圖3而言,寫入操作需要三個命令集,即寫入的命令集(其包括命令CMD、ADDR及DATA)、確認寫入是否完成的命令集(其包括命令CMD及WT)以及確認寫入是否成功的命令集(其包括命令CMD及STATUS)。下面將以圖3所示的寫入操作,描述在面對不同供貨商提供的存儲器時,如何藉由MCU110、命令隊列器120、命令序列發(fā)生器130及對照表140所組成的控制裝置100對存儲器協(xié)議做適當?shù)慕M合及修改,以便可彈性的完成存儲器的控制。因此,本發(fā)明的控制裝置針對不同的存儲器不需要額外的硬件(或增加邏輯門數(shù)目),畫因為將命令通過控制裝置儲存于硬件內(nèi)部,不需每個命令都經(jīng)由MCU下達,故可以降低MCU的耗電量及增加工作效能。請參照圖4,其為執(zhí)行圖3所示的寫入操作時圖1所示的命令隊列器120、命令序列發(fā)生器130及對照表(或PRD表)140工作的示意圖。為了方便說明起見,請同時參照圖1及圖4。MCU110根據(jù)存儲器的操作來輸出控制信號,在此例該操作為寫入操作。命令序列發(fā)生器130根據(jù)MCU110的控制信號,依序存放執(zhí)行寫入操作所需的多個命令集,且每個命令集各自包括多個命令。其中,寫入操作所需的命令集有三個,即寫入的命令集(其包括命令CMD、ADDR及DATA)、確認寫入是否完成的命令集(其包括命令CMD及WT)以及確認寫入是否成功的命令集(其包括命令CMD及STATUS)。因此,執(zhí)行寫入操作所需的命令依序為CMD、ADDR、DATA、CMD、WT、CMD及STATUS。命令隊列器120根據(jù)這些命令集的順序存放相應的多個命令集內(nèi)容。例如,命令隊列器120依序存放命令集內(nèi)容write、finish及success,其分別用以指出寫入操作所需的命令CMD、ADDR、DATA、CMD、WT、CMD及STATUS中第一個CMD是一個寫入命令、第二個CMD是一個確認寫入是否完成的命令、第三個CMD是一個確認寫入是否成功的命令。對照表140則存放執(zhí)行寫入操作所需目標地址addr及完成寫入操作所需重復執(zhí)行的次數(shù)iteration。其中,目標地址addr用來指出數(shù)據(jù)寫入存儲器160的地址。再者,若存儲器每次能寫入數(shù)據(jù)的容量最大為32K位,則當要寫入容量為160K位的數(shù)據(jù)時相當于要分五次寫入,這時iteration設為5。請再參照圖1與圖4,當存儲器160進行寫入操作時,MCU110先送出控制信號使命令序列發(fā)生器130存放著寫入操作所需的且順序正確的命令,使命令隊列器120存放與命令序列發(fā)生器130內(nèi)指令集有關的指令集內(nèi)容,并使對照表140存放數(shù)據(jù)要寫入存儲器160的目標地址addr及重復執(zhí)行的次數(shù)iteration。其中,命令序列發(fā)生器130存放的命令依序為CMD、ADDR、DATA、CMD、WT、CMD及STATUS,而命令隊列器120存放的命令集內(nèi)容write、finish及success分別對應到上述命令中的命令CMDs以指示其內(nèi)容。然后,控制裝置100根據(jù)命令隊列器120、命令序列發(fā)生器130及對照表140開始執(zhí)行寫入操作所需的寫入的命令集(其包括命令CMD、ADDR及DATA)、確認寫入是否完成的命令集(其包括命令CMD及WT)以及確認寫入是否成功的命令集(其包括命令CMD及STATUS)。詳細地說,控制裝置100先送出內(nèi)容為write的命令CMD,因此存儲器裝置開始執(zhí)行寫入操作,接著配合目標地址addr送出命令ADDR,接著送出命令DATA。當數(shù)據(jù)寫完后,控制裝置100送出內(nèi)容為finish的命令CMD,之后存儲器160會送出命令BUSY直到存儲器160按目標地址addr將數(shù)據(jù)搬移至指定位置后才結(jié)束命令BUSY。這時,控制裝置100會再發(fā)出內(nèi)容為success的命令CMD,以確認寫入操作是否成功,而存儲器160在收到命令CMD后發(fā)出命令STATUS,以告知此次的寫入操作成功或失敗,最后遇到EOT(endoftransmission,結(jié)束傳輸),控制裝置100結(jié)束此次的寫入操作。事實上,命令隊列器120內(nèi)所存放的命令集內(nèi)容(如write、finish等)及命令序列發(fā)生器130內(nèi)所存放的命令(如CMD、ADDR等)都可以用特殊的代碼來表示。命令序列發(fā)生器130內(nèi)所存放的命令代碼用以觸發(fā)控制裝置100發(fā)出與命令代碼相應的一些硬件的控制信號(如ALE等),以便控制控制裝置100中執(zhí)行該命令的電路。綜上所述,本發(fā)明藉由微處理器送出的控制信號使命令序列發(fā)生器存放著有正確執(zhí)行順序的命令,并使命令隊列器存放與命令序列發(fā)生器內(nèi)指令集有關的指令集內(nèi)容,再搭配對照表描敘的目標地址及重復執(zhí)行的次數(shù),因此能產(chǎn)生適當?shù)拇鎯ζ鲄f(xié)議以符合供貨商提供的存儲器。雖然本發(fā)明已以較佳實施例披露如上,然其并非用以限定本發(fā)明,本領域的技術人員在不脫離本發(fā)明的精神和范圍的前提下可作若干的更動與潤飾,因此本發(fā)明的保護范圍以本發(fā)明的權利要求為準。權利要求1.一種存儲器的控制裝置,其中該控制裝置耦接至該存儲器并控制該存儲器執(zhí)行一操作,該控制裝置包括一微控制器,用以根據(jù)該操作輸出一控制信號;一命令序列發(fā)生器,用以根據(jù)該控制信號依序存放執(zhí)行該操作所需的多個命令集,其中每一所述命令集各自包括多個命令;一命令隊列器,用以根據(jù)所述命令集的順序存放相應的多個命令集內(nèi)容;以及一對照表,用以存放執(zhí)行該操作所需的該存儲器的目標地址。2.如權利要求1所述的控制裝置,其中該對照表用以存放完成該操作所需重復執(zhí)行的次數(shù)。3.如權利要求1所述的控制裝置,其中該存儲器包括一非易失性存儲器。4.如權利要求1所述的控制裝置,其中該操作包括讀出、寫入、擦除或復制。5.一種存儲器裝置,其包括如權利要求1所述的控制裝置以及一存儲器,其中該控制裝置耦接至該存儲器并控制該存儲器。6.一種存儲器的控制方法,其中該存儲器耦接至一控制裝置,且該控制裝置包括一微控制器、一命令序列發(fā)生器、一命令隊列器及一對照表,該控制方法包括根據(jù)該存儲器的一操作,由該微控制器控制該命令序列發(fā)生器依序存放執(zhí)行該操作所需的多個命令集,其中每一這些命令集各自包括多個命令;由該命令隊列器根據(jù)所述命令集的順序存放相應的多個命令集內(nèi)容,以及由該對照表存放執(zhí)行該操作所需的該存儲器的目標地址;由該微控制器控制該控制裝置配合所述命令集內(nèi)容依序執(zhí)行這些命令集。7.如權利要求6所述的控制方法,還包括由該對照表存放完成該操作所需重復執(zhí)行的次數(shù)。8.如權利要求6所述的控制方法,其中該操作包括讀出、寫入、擦除或復制。全文摘要一種存儲器的控制裝置,包括一微控制器、一命令序列發(fā)生器、一命令隊列器及一對照表。該控制裝置耦接至存儲器并控制存儲器執(zhí)行一操作。其中,微控制器根據(jù)該操作輸出一控制信號。命令序列發(fā)生器根據(jù)該控制信號依序存放執(zhí)行該操作所需的多個命令集,其中每個命令集各自包括多個命令。命令隊列器根據(jù)這些命令集的順序存放相應的多個命令集內(nèi)容。對照表存放執(zhí)行該操作所需的該存儲器的目標地址。文檔編號G06F3/06GK101082852SQ20061008421公開日2007年12月5日申請日期2006年5月29日優(yōu)先權日2006年5月29日發(fā)明者宋明勛,謝育霖申請人:聯(lián)陽半導體股份有限公司