數據存取命令執行方法以及使用該方法的快閃存儲器裝置的制造方法
【技術領域】
[0001]本發明關連于一種快閃存儲器裝置,特別是一種數據存取命令執行方法以及使用該方法的快閃存儲器裝置。
【背景技術】
[0002]傳統上,為了執行存取快閃存儲器中儲存單元的數據的命令,執行于快閃存儲器中的固件需要使用一段連續的時間來寫寄存器,用以驅動控制單元完成一連串喚起(assert)、釋放(de_assert)儲存單元存取界面中的特定控制信號或者是載入關聯于存取動作的地址、參數、數據等。這通常需要連續寫入五到二十個不等的寄存器,且這段時間通常不能被中斷。在這樣的設計下,不利于固件對于多筆數據存取命令的調度最佳化,使得數據存取的效率較難提升。因此,本發明提出一種數據存取命令執行方法以及使用該方法的快閃存儲器裝置,用以降低寫入寄存器所需的連續時間,使得固件可擁有較高的彈性來最佳化多個數據存取命令的調度。
【發明內容】
[0003]本發明的實施例提出一種數據存取命令執行方法,由控制單元執行,包含下列步驟。當從寄存器中檢測到改變指令來源指示后,從隨機存取存儲器讀取一系列界面驅動指令。依據上述界面驅動指令依序操作儲存單元存取界面,用以完成對儲存單元的數據存取。
[0004]本發明的實施例提出一種快閃存儲器裝置的裝置,包含儲存單元存取界面、寄存器、隨機存取存儲器以及控制單元。控制單元耦接于寄存器、隨機存取存儲器與儲存單元存取界面之間。控制單元當從寄存器中檢測到改變指令來源指示后,從隨機存取存儲器讀取一系列的界面驅動指令;以及依據界面驅動指令依序操作儲存單元存取界面,用以完成對儲存單元的數據存取。
[0005]本發明的實施例另提出一種數據存取命令執行方法,由被載入于微處理單元中的固件執行,包含下列步驟。寫入一系列界面驅動指令至隨機存取存儲器,而非寫入至寄存器。寫入改變指令來源指示至寄存器,用以指示控制單元從隨機存取存儲器中讀取界面驅動指令并且據以依序操作儲存單元存取界面。
【附圖說明】
[0006]圖1是依據本發明實施例的快閃存儲器的系統架構示意圖。
[0007]圖2是依據本發明實施例的快閃存儲器中的儲存單元示意圖。
[0008]圖3是依據本發明實施例的使用填寫寄存器的方式寫入數據至儲存單元的時序圖。
[0009]圖4是依據本發明實施例的由固件執行的界面驅動指令產生方法的方法流程圖。
[0010]圖5是依據本發明實施例的界面驅動指令儲存示意圖。
[0011]圖6是依據本發明實施例的由控制單元執行的界面驅動指令執行方法的方法流程圖。
[0012]圖7是依據本發明實施例的使用隨機存取存儲器預存界面驅動指令的方式寫入數據至儲存單元的時序圖。
[0013]【附圖標記說明】
[0014]10快閃存儲器的系統架構;
[0015]110快閃存儲器控制器;
[0016]111處理單元存取界面;
[0017]112微處理單元;
[0018]113 寄存器;
[0019]114隨機存取存儲器;
[0020]115 多工器;
[0021]116控制單元;
[0022]117儲存單元存取界面;
[0023]120儲存單元;
[0024]121存儲器單元陣列;
[0025]122行解碼單元;
[0026]123列編碼單元;
[0027]124地址單元;
[0028]125數據緩沖器;
[0029]310a?31e界面驅動指令;
[0030]320 數據線;
[0031]320a寫入命令;
[0032]320b、320c 寫入地址;
[0033]330命令提取致能控制信號;
[0034]340地址提取致能控制信號;
[0035]350芯片致能控制信號;
[0036]360寫入致能控制信號;
[0037]360a、360b 轉態信號;
[0038]S410?S440方法步驟;
[0039]S610?S65O方法步驟;
[0040]710a,710b記錄于隨機存取存儲器中的界面驅動指令的起始地址;
[0041]710c界面驅動指令的數目;
[0042]71d改變指令來源指示。
【具體實施方式】
[0043]本發明提出一種數據存取命令執行方法以及使用該方法的快閃存儲器裝置,用以降低寫入寄存器所需的連續性時間,使得固件可擁有較高的彈性來最佳化多筆數據存取命令。快閃存儲器裝置可以是安全數字卡(secure digital SD memory card)。圖1是依據本發明實施例的快閃存儲器的系統架構示意圖。快閃存儲器的系統架構10中包含控制單元116,用以從寄存器113或隨機存取存儲器114取得指令、存取地址、參數、數據或其他相關的信息,并據以對儲存單元120進行存取。詳細來說,控制單元116通過儲存單元存取界面117寫入數據到儲存單元120中的特定地址,以及從儲存單元120中的特定地址讀取數據。系統架構10使用數個電子信號來協調控制單元116與儲存單元120間的數據與命令傳遞,包含數據線(data line)、時脈信號(clock signal)與控制信號(control signal)。數據線可用以傳遞命令、地址、讀出及寫入的數據;控制信號線可用以傳遞命令提取致能(command latch enable, CLE)、地址提取致能(address latch enable, ALE)、芯片致能(chip enable, CE)、寫入致能(write enable, WE)等控制信號。微處理單元112另可使用處理單元存取界面111通過特定通訊協定與其他電子裝置進行通訊,例如,通用序列總線(universal serial bus, USB)、先進技術附著(advanced technology attachment, ΑΤΑ)或其他界面。
[0044]圖2是依據本發明實施例的快閃存儲器中的儲存單元示意圖。儲存單元120包含由MxN個存儲器單元(memory cells)組成的陣列(array) 121,而每一個存儲器單元可以包含一或多個單一位準存儲器單元(single-level cell, SLC)或三位準存儲器單元(triple-level cell, TLC)。快閃存儲器可以是 NOR 型快閃存儲器(NOR flash memory) >NAND型快閃存儲器,或其他種類的快閃存儲器。為了正確存取信息,行解碼單元122用以選擇存儲器單元陣列121中特定的行,而列編碼單元123用以選擇特定行中一定數量的字節的數據作為輸出。地址單元124提供特定的行信息給行解碼器122,其中定義選擇存儲器單元陣列121中的特定行的信息。相似地,列解碼器123則根據地址單元124提供的列信息,選擇存儲器單元陣列121的特定行中一定數量的列進行讀取或寫入操作。從存儲器單元陣列121讀取出的數據,或欲寫入存儲器單元陣列121中的數據則儲存在數據緩沖器(data buffer)125。
[0045]于正常狀態下,多工器115會被組態為連接寄存器113至控制單元116。控制單元116會周期性地檢測寄存器113中是否存在一個新的界面驅動指令,是則據以改變儲存單元存取界面117的控制信號、起始或結束儲存單元存取界面117的時脈信號、放置數據于儲存單元存取界面117的數據線上、讀取儲存單元存取界面117的數據線上的數據,或是以上操作的任意結合。儲存單元存取界面117可采用單倍數據率(single data rate, SDR)或雙倍數據率(double data rate, DDR)通訊協定,使儲存單元中的控制器(未顯示)與控制單元116間能彼此溝通,例如,開放NAND快閃(open NAND flash interface, 0NFI)、雙倍數據率開關(DDR toggle)或其他界面。執行于微處理單元112的固件為完成一個由處理單元存取界面111所指示的數據存取指令,可寫入一系列的界面驅動指令至寄存器113中,指示控制單元116完成對儲存單元存取界面117的操作,例如,讀取儲存單元120中一段地址的數據、寫入數據到儲存單元120中的一段地址上、合并儲存單元120中的特定頁面等。圖3是依據本發明實施例的使用填寫寄存器的方式寫入數據至儲存單元120的時序圖。固件116可依序寫入特定的值310a及310b至寄存器113中,用以指示控制單元116分別讀取寫入地址與相關參數設定。接著,于寄存器113中寫入特定的值310c,指示控制單元116喚醒儲存單元存取界面117中的芯片致能(CE)控制信號350。當控制單元116檢測到寄存器113中被寫入特定的值310d后,喚起命令提取致能(CLE)控制信號330,將寫入命令(program command) 320a放置于數據線320上,以及產生寫入致能(WE)的轉態信號(toggling signal) 360a,讓儲存單元120中的控制器(未顯示)可以讀取存放在數據線320上的寫入命令320b。例如,控制單元116可于轉態信號360a的上升沿(rising edges)于數據線320上取得寫入命令320a。當控制單元116檢測到寄存器113中被寫入特定的值310e后,喚起地址提取致能(ALE)控制信號340,將寫入地址(program address) 320b與320c放置于數據線320上,接著產生寫入致能(WE)的轉態信號(toggling signal) 360b,讓儲存單元120中的控制器(未顯示)可以讀取存放在數據線320上的寫入地址320b。例如,控制單元116可于轉態信號360b的上升沿以及/或下降沿(falling edge)于數據線320上取得寫入地址320b與320c。值310a至310e是代表一系列緊接著執行的界面驅動指令。為完成一個寫入命令,固件必須安排一段足夠長的時間來完成這一系列界面驅動指令的寄存器113寫入動作。此外,為完成一個數據存取命令,界面驅動指令的數目可能多達二十個。
[0046]為了要降低寫入寄存器所需的連續性時間,本發明實施例另提出一個預先定義的指令碼,有別于如上所述的界面驅動指令,用以指示控制單元116從隨機存取存儲器114中的一個特定起始地址讀取一定數目的界面驅動指令,并據以完成一個數據存取命令。此指令碼可稱為改變指令來源指不(indicat1n for alter