存儲器存取方法、存儲器存取控制方法、spi閃存裝置及其控制器的制造方法
【專利摘要】本發(fā)明提供一種存儲器存取方法、存儲器存取控制方法、串行外圍接口(SPI)閃存裝置及SPI控制器。SPI閃存包括閃存數(shù)組以及多個串行輸入/輸出引腳,多個串行輸入/輸出引腳被分配為至少二個存取信道,每個存取信道具有優(yōu)先次序,該存儲器存取方法包括通過第一存取信道的第一串行輸入/輸出引腳接收第一存取指令及第一地址;在第一存取指令接收結(jié)束前,通過第二存取信道的第二串行輸入/輸出引腳接收第二存取指令及第二地址;以及通過第二存取信道的串行輸入/輸出引腳,對閃存數(shù)組進(jìn)行對應(yīng)至第二存取指令與第二地址的第二存取操作;其中第二存取信道的優(yōu)先次序高于第一存取信道,本發(fā)明提供的存儲器存取方法可有效降低存取等待時間,減少存取資源浪費。
【專利說明】存儲器存取方法、存儲器存取控制方法、SPI閃存裝置及其控制器
【技術(shù)領(lǐng)域】
[0001]本發(fā)明有關(guān)于一種閃存(flash memory),更具體地,有關(guān)于一種串行閃存。
【背景技術(shù)】
[0002]隨著用戶對于處理數(shù)字?jǐn)?shù)據(jù)的需求越來越大,存取或傳輸數(shù)字?jǐn)?shù)據(jù)的速度以及正確性的需求也隨之增強(qiáng),尤其是對于處理器與相關(guān)存儲器之間的存取操作。在各種存儲器技術(shù)中,由于閃存(Flash memory)具有可重復(fù)寫入數(shù)據(jù)、無需電力維持存儲數(shù)據(jù)、可靠度足夠、存取速度更快、體積更小等特性,已廣泛運用于計算機(jī)系統(tǒng)及便攜式電子裝置中。一般來說,閃存可分為并行(parallel)閃存及串行(serial)閃存。由于串行閃存所要求的傳輸線及引腳(Pin)較少,因此電路較簡單且成本較低,且在印刷電路板上所占的面積較小,故而已成為主要發(fā)展趨勢,尤其常作為便攜式電子裝置的存儲器裝置。
[0003]以一個8引腳的串行外圍接口(Serial Peripheral Interface, SPI)反及閃存(NAND Flash Memory)為例,SPI NAND閃存的引腳包括芯片選擇(Chip Select)引腳CS#、串行數(shù)據(jù)輸入/ 串行數(shù)據(jù)輸入輸出(Serial Data Input/Serial Data Input and Output)引腳SI/S00、串行數(shù)據(jù)輸出/串行數(shù)據(jù)輸入輸出(Serial Data Output/Serial Data Inputand Output)引腳S0/S01、串行時鐘(Serial Clock)引腳SCK、寫入保護(hù)/串行數(shù)據(jù)輸入輸出(Write Protect/Serial Data Input and Output)弓丨腳 WP#/S02、保持 / 串行數(shù)據(jù)輸入輸出(Hold/Serial Data Input and Output)引腳 H0LD#/S03、電源供應(yīng)引腳 VCC 以及接地引腳GND。為簡潔,在本揭露中,串行數(shù)據(jù)輸入/串行數(shù)據(jù)輸入輸出引腳SI/S00、串行數(shù)據(jù)輸出/串行數(shù)據(jù)輸入輸出引腳S0/S01、寫入保護(hù)/串行數(shù)據(jù)輸入輸出引腳WP#/S02和保持/串行數(shù)據(jù)輸入輸出引腳H0LD#/S03又可被稱為串行輸入/輸出引腳。存儲器裝置通過芯片選擇引腳CS#接收芯片選擇信號,用于致能(enable)或禁能(disable)存儲器裝置。當(dāng)芯片選擇信號為低電平(level)時,致能存儲器裝置,反之,當(dāng)芯片選擇信號為高電平時,禁能存儲器裝置。存儲器裝置通過串行時鐘引腳SCK接收串行時鐘信號,串行時鐘信號提供接口時序(timing)至SPI NAND閃存。地址信息、數(shù)據(jù)和指令在串行時鐘信號的上升邊緣被擷取/鎖存,而當(dāng)輸出數(shù)據(jù)時,數(shù)據(jù)在串行時鐘信號的下降邊緣被配置至串行數(shù)據(jù)輸出端口。SPI NAND閃存支持標(biāo)準(zhǔn)的SPI以及二位SPI (dual SPI)和四位SPI (quad SPI)。也就是說,其存取操作根據(jù)數(shù)據(jù)流的帶寬可分為一位、二位和四位模式。舉例而言,在一位存取操作中,串行輸入/輸出引腳SI/S00用于輸入指令和待寫入的串行數(shù)據(jù),而串行輸入/輸出引腳S0/S01用于輸出所讀取的串行數(shù)據(jù);在二位讀取(Dual Read)操作中,串行輸入/輸出引腳SI/S00和S0/S01皆用于輸出所讀取的串行數(shù)據(jù);而在四位讀取(Quad Read)操作中,串行輸入/輸出引腳SI/S00、S0/S01、WP#/S02以及H0LD#/S03都用于輸出所讀取的串行數(shù)據(jù)。
[0004]圖1A與圖1B為傳統(tǒng)的SPI NAND閃存的四位讀取操作的時序圖。在四位讀取操作中,在致能芯片選擇信號之后,存儲器通過串行輸入/輸出引腳SI/S00接收并擷取指示四位讀取操作的指令CMD,并在經(jīng)過3個虛擬位(du_y bit) DBi之后,擷取面選擇(planeselect)位PS,之后接著擷取地址ADD_C。經(jīng)過I個虛擬字節(jié)DBy之后,存儲器根據(jù)所擷取的地址ADD_C,從存儲器數(shù)組中讀取串行數(shù)據(jù),然后通過串行輸入/輸出引腳SI/S00、S0/S01、WP#/S02以及H0LD#/S03輸出所讀取的串行數(shù)據(jù),如圖1B中的讀取數(shù)據(jù)字節(jié)Byl?By4所示。由于存儲器同時通過4個引腳SI/SOO、SO/SO1、WP#/S02以及H0LD#/S03輸出所讀取的數(shù)據(jù),因此其讀取數(shù)據(jù)流的帶寬為四位。在虛擬字節(jié)DBy期間,串行輸入/輸出引腳SI/SOO的信號為高阻抗?fàn)顟B(tài)High-z,并在開始輸出串行數(shù)據(jù)(例如字節(jié)Byl的位4)前由原來接收指令與地址信息的輸入模式轉(zhuǎn)換為輸出模式。上述面選擇位PS用于指示存取存儲器時存取位置是對應(yīng)至存儲器中的哪個面。
[0005]在SPI NAND閃存的操作中,當(dāng)有新的存取操作插入時,根據(jù)現(xiàn)有技術(shù),將等原來正在進(jìn)行的存取操作結(jié)束后再進(jìn)行新的存取操作,或者取消原來正在進(jìn)行的存取操作而優(yōu)先進(jìn)行新的存取操作。如果等原來正在進(jìn)行的存取操作結(jié)束后才進(jìn)行新的存取操作,則較緊急的存取操作無法優(yōu)先進(jìn)行,尤其當(dāng)有些存取操作可能需要較多的時間(例如有些擦除或程序化操作可能需要百萬秒等級的存取時間)時此影響更為顯著。因此,為避免較緊急的存取操作無法很快地進(jìn)行,在目前的作法中常會將需要較多時間的存取操作(例如與系統(tǒng)更新有關(guān)的存取操作)安排在存取離峰時間時進(jìn)行,因此可能無法進(jìn)行實時(real-time)更新。而如果取消原來正在進(jìn)行的存取操作,則可能會造成原來的存取操作中存取數(shù)據(jù)不完整,而等待新的存取操作進(jìn)行完畢之后再繼續(xù)被取消的原來的存取操作時,由于被取消的原來的存取操作可能不完整,必須重新開始存取操作,因此而浪費不必要的存取資源,尤其當(dāng)SPI NAND閃存串行總線的帶寬(bandwidth)有限時此影響更為顯著。
【發(fā)明內(nèi)容】
[0006]有鑒于此,本發(fā)明提供一種存儲器存取方法、存儲器存取控制方法、SPI閃存裝置及SPI控制器。
[0007]本發(fā)明提供一種存儲器存取方法,用于串行外圍接口閃存,該串行外圍接口閃存包括閃存數(shù)組以及多個串行輸入/輸出引腳,該多個串行輸入/輸出引腳被分配為至少二個存取信道,該至少二個存取信道中的每個具有優(yōu)先次序,其中該存儲器存取方法包括:通過第一存取信道的第一串行輸入/輸出引腳接收第一存取指令以及第一地址;在該第一存取指令的接收結(jié)束之前,通過第二存取信道的第二串行輸入/輸出引腳接收第二存取指令以及第二地址;以及通過該第二存取信道的所有串行輸入/輸出引腳,對該閃存數(shù)組進(jìn)行對應(yīng)至該第二存取指令與該第二地址的第二存取操作;其中該第二存取信道的優(yōu)先次序高于該第一存取信道。
[0008]本發(fā)明另提供一種存儲器存取控制方法,用于控制串行外圍接口閃存,該串行外圍接口閃存包括閃存數(shù)組以及多個串行輸入/輸出引腳,其中該存儲器存取控制方法包括:將該多個串行輸入/輸出引腳分配為至少二個存取信道,其中該至少二個存取信道中的每個具有優(yōu)先次序;通過第一存取信道的第一串行輸入/輸出引腳將第一存取指令以及第一地址傳輸至該串行外圍接口閃存;在該第一存取指令的接收結(jié)束之前,通過第二存取信道的第二串行輸入/輸出引腳將第二存取指令與第二地址傳輸至該串行外圍接口閃存;以及控制該串行外圍接口閃存,使該串行外圍接口閃存通過該第二存取信道的所有串行輸Λ/輸出引腳進(jìn)行對應(yīng)至該第二存取指令與該第二地址的第二存取操作。
[0009]本發(fā)明再提供一種串行外圍接口閃存裝置,包括:閃存核心、多個串行輸入/輸出引腳、輸入/輸出電路及控制單元,其中該閃存核心包括閃存數(shù)組;多個串行輸入/輸出引腳耦接至該閃存核心,該多個串行輸入/輸出引腳被分配為至少二個存取信道,且該至少二個存取信道中的每個具有優(yōu)先次序;輸入/輸出電路耦接至該閃存核心以及該多個串行輸入/輸出引腳;以及控制單元耦接至該輸入/輸出電路以及該閃存核心,用于通過該輸入/輸出電路控制該多個串行輸入/輸出引腳的輸入輸出,使該閃存核心通過第一存取信道的第一串行輸入/輸出引腳接收第一存取指令以及第一地址,并在該第一存取指令的接收結(jié)束之前,通過第二存取信道的第二串行輸入/輸出引腳接收第二存取指令以及第二地址,且通過該第二存取信道的所有串行輸入/輸出引腳,對該閃存數(shù)組進(jìn)行對應(yīng)至該第二存取指令與該第二地址的第二存取操作;其中該第二存取信道的優(yōu)先次序高于該第一存取信道。
[0010]本發(fā)明還提供一種串行外圍接口控制器,耦接至串行外圍接口閃存以控制該串行外圍接口閃存的存取操作,該串行外圍接口閃存包括閃存數(shù)組以及多個串行輸入/輸出引腳,其中該串行外圍接口控制器包括:多個串行輸入/輸出端、輸入/輸出電路以及控制單元,該多個串行輸入/輸出端分別對應(yīng)耦接至該多個串行輸入/輸出引腳;該輸入/輸出電路,耦接至該多個串行輸入/輸出端;以及該控制單元耦接至該輸入/輸出電路,將該多個串行輸入/輸出引腳分配為至少二個存取信道,其中該至少二個存取信道的每一個具有優(yōu)先次序,并通過該輸入/輸出電路控制該多個串行輸入/輸出端的輸出輸入,以將第一存取指令以及第一地址通過第一存取信道的第一串行輸入/輸出引腳傳輸至該串行外圍接口閃存,并在該第一存取指令的傳輸結(jié)束之前,將第二存取指令以及第二地址通過第二存取信道的第二串行輸入/輸出引腳傳輸至該串行外圍接口閃存;其中該串行外圍接口控制器控制該串行外圍接口閃存,使該串行外圍接口閃存通過該第二存取信道的所有串行輸入/輸出引腳進(jìn)行對應(yīng)至該第二存取指令與該第二地址的第二存取操作。
[0011]本發(fā)明提供的存儲器存取方法可有效降低存取等待時間,減少存取資源浪費。
【專利附圖】
【附圖說明】
[0012]圖1A為傳統(tǒng)的SPI NAND閃存的四位讀取操作的時序圖;
[0013]圖1B為傳統(tǒng)的SPI NAND閃存的四位讀取操作的時序圖;
[0014]圖2A為根據(jù)本發(fā)明一個實施例的SPI NAND閃存的多存取信道讀取操作的時序圖;
[0015]圖2B為根據(jù)本發(fā)明一個實施例的SPI NAND閃存的多存取信道讀取操作的時序圖;
[0016]圖3為根據(jù)本發(fā)明一個實施例的SPI控制器的示意圖;
[0017]圖4A為根據(jù)本發(fā)明一個實施例的SPI NAND閃存的示意圖;
[0018]圖4B為根據(jù)本發(fā)明一個實施例的SPI NAND閃存的示意圖。
【具體實施方式】
[0019]以下說明為本發(fā)明的實施例。其目的在于要舉例說明本發(fā)明的一般性原則,并不應(yīng)作為本發(fā)明的限制,本發(fā)明的范圍應(yīng)以權(quán)利要求所界定為準(zhǔn)。
[0020]值得注意的是,以下所揭露的內(nèi)容可提供多個用于實現(xiàn)本發(fā)明的不同特點的實施例或?qū)嵗?。而以下所述的特殊的元件實例與設(shè)置僅用于簡要地闡述本發(fā)明的精神,并非用于限定本發(fā)明的范圍。此外,以下說明書可能在多個實例中重復(fù)使用相同的元件符號或文字。然而重復(fù)使用的目的僅為了提供簡化并清楚的說明,并非用于限定多個以下所討論的實施例及/或配置之間的關(guān)系。此外,以下說明書所述的一個特征連接至、耦接至以及/或形成于另一特征之上等的描述,實際可包含多個不同的實施例,如包括該多個特征直接接觸,或者包含其它額外的特征形成于該多個特征之間等等,使得該多個特征并非直接接觸。
[0021]本發(fā)明的一個實施例揭露一種SPI NAND閃存的存儲器存取方法,SPINAND閃存包括閃存數(shù)組、芯片選擇引腳CS#、串行時鐘引腳SCK、電源供應(yīng)引腳VCC、接地引腳GND以及串行輸入/輸出引腳SI/SOO、S0/S0UWP#/S0及H0LD#/S03。SPI NAND閃存通過芯片選擇引腳CS#接收芯片選擇信號,通過串行時鐘引腳SCK接收串行時鐘信號,并分別通過電源供應(yīng)引腳VCC以及接地引腳GND接收電源供應(yīng)電壓以及接地電壓。SPI NAND閃存支持四位SPI,因此,在四位存取操作中,串行輸入/輸出引腳SI/S00、S0/S01、WP#/S02和H0LD#/S03可用于輸入指令和待寫入至閃存數(shù)組的串行數(shù)據(jù),也可用于輸出從閃存數(shù)組讀取的串行數(shù)據(jù)。在此存儲器存取方法中,該多個串行輸入/輸出引腳被分配為至少二個存取信道,每個存取信道具有優(yōu)先次序。在通過優(yōu)先次序較低的第一存取信道的第一串行輸入/輸出引腳接收第一存取指令與第一地址時,在第一存取指令接收結(jié)束之前,可通過優(yōu)先次序較第一存取信道高的第二存取信道的第二串行輸入/輸出引腳接收更緊急的存取操作的第二存取指令與第二地址。然后,存儲器通過第二存取信道的所有串行輸入/輸出引腳對閃存數(shù)組進(jìn)行對應(yīng)第二存取指令和第二地址的存取操作。
[0022]圖2A與圖2B為根據(jù)本發(fā)明一個實施例的SPI NAND閃存的多存取信道讀取操作的時序圖。需注意的是,SPI NAND閃存僅為本發(fā)明的一個實例,本發(fā)明所提出的SPI閃存裝置并不僅限于SPI NAND閃存,亦可為其他類型的SPI閃存裝置。其中串行輸入/輸出引腳SI/S00、S0/S01、WP#/S02和H0LD#/S03的序號分別為0、1、2和3。在多存取信道讀取操作中,當(dāng)致能芯片選擇信號CS#之后,存儲器通過串行輸入/輸出引腳SI/S00接收并擷取多位讀取指令CMD1,而在指令CMDl接收完畢之前,存儲器還通過串行輸入/輸出引腳WP#/S02接收多位讀取指令CMD2,此時,將串行輸入/輸出引腳SI/S00和S0/S01分配為存取信道0,而將串行輸入/輸出引腳WP#/S02和H0LD#/S03分配為存取信道I。由于存取信道O中的最小串行輸入/輸出引腳序號(引腳SI/S00為序號O)小于存取信道I中的最小串行輸入/輸出引腳序號(引腳WP#/S02為序號2),因此存取信道I的優(yōu)先次序高于存取信道0,也就是說,通過存取信道I進(jìn)行的存取操作具有較高的優(yōu)先權(quán)。
[0023]在此實施例中,SPI NAND閃存支持并行存取(parallel access),因此在通過串行輸入/輸出引腳SI/S00接收多位讀取指令CMDl和地址ADD_C1之后,根據(jù)地址ADD_C1從閃存數(shù)組讀取數(shù)據(jù),并通過存取信道O的串行輸入/輸出引腳SI/S00和S0/S01輸出所讀取的數(shù)據(jù)。而在通過存取信道O進(jìn)行讀取操作的同時,通過串行輸入/輸出引腳WP#/S02接收多位讀取指令CMD2和地址ADD_C2,然后根據(jù)地址ADD_C2從閃存數(shù)組讀取數(shù)據(jù),并通過存取信道I的串行輸入/輸出引腳WP#/S02和H0LD#/S03輸出所讀取的數(shù)據(jù)。須注意的是,圖2A與圖2B中的虛擬位DBil、DBi2及面選擇位PS1、PS2分別與圖1A與圖1B中的虛擬位DBi及面選擇位PS類似,因此不再復(fù)述。
[0024]在另一個實施例中,SPI NAND閃存不支持并行存取,此情況和圖2A與圖2B圖示的差異在于:接收完多位讀取指令CMDl和地址ADD_C1之后會暫存多位讀取指令CMDl和地址ADD_C1,并暫停(pending)存取信道O的讀取操作,然后先進(jìn)行存取信道I的讀取操作。待存取信道I的讀取操作進(jìn)行完畢之后,再通過存取信道O進(jìn)行對應(yīng)至多位讀取指令CMDl和地址ADD_C1的讀取操作。
[0025]在圖2A與圖2B的實施例中,存取信道O和存取信道I的數(shù)據(jù)流帶寬比為2:2,但本發(fā)明并不局限于此,在將4個串行輸入/輸出引腳分配為2個存取信道的例子中,存取信道O和存取信道I的數(shù)據(jù)流帶寬比可以為1:3、2:2或3:1。舉例來說,若在通過串行輸入/輸出引腳SI/S00接收的指令接收完畢之前又通過串行輸入/輸出引腳S0/S01接收另一指令,則存取信道O包括串行輸入/輸出引腳SI/S00,存取信道I包括串行輸入/輸出引腳S0/S01、WP#/S02和H0LD#/S03,此時,存取信道O和存取信道I的數(shù)據(jù)流帶寬比為1:3。除此之外,存取信道的個數(shù)并不限于2。舉例來說,若在通過串行輸入/輸出引腳SI/S00接收的第一指令接收完畢之前通過串行輸入/輸出引腳S0/S01接收第二指令,并且又在第二指令接收完畢之前通過串行輸入/輸出引腳H0LD#/S03接收第三指令,則串行輸入/輸出引腳被劃分為存取信道O、I和2,其中存取信道O包括串行輸入/輸出引腳SI/S00,存取信道I包括串行輸入/輸出引腳S0/S01和WP#/S02,而存取信道2包括串行輸入/輸出引腳H0LD#/S03,因此,3個存取信道的數(shù)據(jù)流帶寬比為1:2:1。在此情況下,若存儲器支持并行存取,則3個存取信道的存取操作可同時進(jìn)行,但若存儲器不支持并行存取,由于存取信道2的優(yōu)先次序最高而存取信道I其次,因此會先暫停存取信道O和I的存取操作,待存取信道2的存取操作進(jìn)行完畢后才進(jìn)行存取信道I的存取操作,然后在存取信道I的存取操作進(jìn)行完畢后再進(jìn)行存取信道O的存取操作。
[0026]此外,關(guān)于存取信道的優(yōu)先次序,可采取循環(huán)策略或絕對優(yōu)先次序策略。舉例來說,在不支持并行存取且采取循環(huán)策略的情況下,若串行輸入/輸出引腳分配為存取信道O和存取信道1,且存取信道I的優(yōu)先次序較高,則在存取信道I的存取操作完成之后,必須將存取信道I的下一個存取操作排在被暫停的存取信道O的存取操作之后。而在不支持并行存取且采取絕對優(yōu)先次序策略的情況下,若串行輸入/輸出引腳分配為存取信道O和存取信道1,且存取信道I的優(yōu)先次序較高,則在存取信道I的存取操作完成之后,存取信道I的下一個存取操作還是優(yōu)于被暫停的存取信道O的存取操作,因此,若存取信道I持續(xù)忙碌,存取信道O的存取操作可能會被一直被暫停。
[0027]另外,為有效利用帶寬,若有2個存取信道閑置太久,可將閑置的存取信道合并成新的I個存取信道,且新的存取信道的優(yōu)先次序采用被合并的存取信道中最低的優(yōu)先次序。舉例而言,假設(shè)串行輸入/輸出引腳被分為存取信道0、1和2,其中存取信道O包括串行輸入/輸出引腳SI/S00,存取信道I包括串行輸入/輸出引腳S0/S01和WP#/S02,存取信道2包括串行輸入/輸出引腳H0LD#/S03,若存取信道I為忙碌而存取信道O和存取信道2皆閑置一個預(yù)設(shè)時間(例如2個時序周期)之后,則將存取信道O和存取信道2合并成為新的存取信道O,且新的存取信道O的優(yōu)先次序還是低于存取信道I。
[0028]除此之外,關(guān)于存取數(shù)據(jù)的位順序,最高有效位(Most Significant Bit, MSB)被最先傳輸并被配置于存取信道中序號最高的串行輸入/輸出引腳。以圖2A與圖2B為例,在存取信道O (包括串行輸入/輸出引腳SI/SOO和S0/S01)的讀取操作中,最高有效位7被配置于串行輸入/輸出引腳S0/S01,接著位6被配置于串行輸入/輸出引腳SI/SOO,以此類推。而在存取信道包括3個串行輸入/輸出引腳SI/SOO、S0/S01和WP#/S02的例子中,最高有效位7被配置于串行輸入/輸出引腳WP#/S02,位6被配置于串行輸入/輸出引腳SO/S01,位5被配置于串行輸入/輸出引腳SI/S00,位4、3和2被分別配置于串行輸入/輸出引腳WP#/S02、S0/S01和SI/S00,位I被配置于串行輸入/輸出引腳WP#/S02,最低有效位O被配置于串行輸入/輸出引腳S0/S01,且會接著在串行輸入/輸出引腳SI/S00配置I個填充位(padding bit)以確保數(shù)據(jù)邊界。
[0029]根據(jù)圖2A與圖2B,所屬【技術(shù)領(lǐng)域】技術(shù)人員還可得知SPI NAND閃存的多存取信道寫入操作的時序圖。多存取信道寫入操作與上述多存取信道讀取操作類似,因此不再復(fù)述,只是在多存取信道寫入操作中,串行輸入/輸出引腳用于輸入待寫入至存儲器數(shù)組的寫入數(shù)據(jù)。
[0030]圖3為根據(jù)本發(fā)明一個實施例的SPI控制器31的示意圖。SPI控制器31通過主處理器總線33稱接至主處理器(host processor) 30,并通過SPI總線34稱接至SPI NAND閃存32。SPI控制器31可被整合在主處理器30中,也可外接至主處理器30的SPI接口的一部分。SPI控制器31從主處理器30接收存取命令,并根據(jù)存取命令產(chǎn)生多個信號至SPINAND閃存32,以控制SPI NAND閃存32的存取操作,并將主處理器30所傳輸?shù)拇龑懭霐?shù)據(jù)傳輸至SPI NAND閃存32,或者將從SPI NAND閃存32讀取的讀取數(shù)據(jù)傳輸至主處理器30。其中,該多個信號可包括串行時鐘信號、芯片選擇信號、寫入保護(hù)信號、保持信號、存取指令信號、地址信號以及存取數(shù)據(jù)信號。
[0031]SPI控制器31包括控制單元300、暫存器310、串行/并行轉(zhuǎn)換器(Serial/Parallel Converter) 321?324、輸入/輸出電路330、輸入輸出緩沖器341?344以及串行輸入/輸出端SI/S0[0]?SI/S0[3]。串行輸入/輸出端SI/S0[0]?SI/S0[3]通過SPI總線34分別耦接至SPI NAND閃存32的4個串行輸入/輸出引腳。控制單元300耦接至輸入/輸出電路330以及輸入/輸出緩沖器341?344,并通過控制輸入/輸出電路330及/或控制信號C5?C8來控制輸入輸出緩沖器341?344,從而控制串行輸入/輸出端SI/SO[0]?SI/S0[3]的輸出輸入,并通過此種輸出輸入控制將NAND閃存32的4個串行輸入/輸出引腳分配為至少二個存取信道,其中該至少二個存取信道中的每個都具有優(yōu)先次序。暫存器310包括指令/數(shù)據(jù)暫存器311?314,分別對應(yīng)存儲通過串行輸入/輸出端SI/SO[0]?SI/S0[3]傳輸?shù)闹噶詈痛嫒?shù)據(jù)??刂茊卧?00通過控制信號Cl?C4控制串行/并行轉(zhuǎn)換器321?324,其中,串行/并行轉(zhuǎn)換器321?324 (包含串行接口編譯碼器與串行傳輸單元的功能)用于將指令、地址和存取數(shù)據(jù)轉(zhuǎn)換成包括1、2或4位的帶寬的串行數(shù)據(jù)流形式傳輸或接收。也就是說,串行/并行轉(zhuǎn)換器321?324是進(jìn)行并行至串行或串行至并行的數(shù)據(jù)型態(tài)轉(zhuǎn)換,以下將不再重復(fù)說明。
[0032]須注意的是,圖3的SPI控制器31僅為實例,SPI控制器31還可包括產(chǎn)生各信號的信號產(chǎn)生單元,例如序列時鐘信號產(chǎn)生單元等。
[0033]在多存取信道存取操作中,控制單元300通過串行輸入/輸出端SI/S0[0]?SI/SO[3]的輸出輸入控制將SPI NAND閃存32的4個串行輸入/輸出引腳分配為至少二個存取信道,以將第一存取指令以及第一地址通過第一存取信道的第一串行輸入/輸出引腳傳輸至SPI NAND閃存32,并在該第一存取指令的傳輸結(jié)束之前,將第二存取指令以及第二地址通過第二存取信道的第二串行輸入/輸出引腳傳輸至SPI NAND閃存32。此外,SPI控制器31控制SPI NAND閃存32,使SPI NAND閃存32通過該第二存取信道的所有串行輸入/輸出引腳進(jìn)行對應(yīng)至該第二存取指令與該第二地址的第二存取操作,以及通過該第一存取信道的所有串行輸入/輸出引腳進(jìn)行對應(yīng)至該第一存取指令與該第一地址的第一存取操作。其中該第二存取信道的優(yōu)先次序高于該第一存取信道。
[0034]在一個實施例中,若SPI NAND閃存32不支持并行存取,則在該第一存取指令與該第一地址的傳輸結(jié)束之后,SPI控制器31更控制SPI NAND閃存32暫存該第一存取指令與該第一地址,并暫停對應(yīng)至該第一存取指令與該第一地址的第一存取操作。且在該第二存取操作結(jié)束之后,SPI控制器31控制SPI NAND閃存32,使SPI NAND閃存32通過該第一存取信道的所有串行輸入/輸出引腳進(jìn)行該第一存取操作。在另一個實施例當(dāng)中,若SPINAND閃存32支持并行存取,則SPI控制器31控制SPI NAND閃存32,使SPI NAND閃存32在進(jìn)行該第二存取操作的同時,通過該第一存取信道的所有串行輸入/輸出引腳進(jìn)行對應(yīng)至該第一存取指令與該第一地址的第一存取操作,如圖2A與圖2B所示。
[0035]當(dāng)該至少二個存取信道的其中二個存取信道皆閑置預(yù)定時間之后,控制單元300將該二個存取信道中優(yōu)先次序較高的存取信道的所有串行輸入/輸出引腳合并至該二個存取信道中優(yōu)先次序較低的存取信道。
[0036]圖4A與圖4B為根據(jù)本發(fā)明一個實施例的SPI NAND閃存32的示意圖。SPI NAND閃存32包括4個串行輸入/輸出引腳、輸入/輸出緩沖器441?444、輸入/輸出電路430、串行/并行轉(zhuǎn)換器421?424、暫存器410、多任務(wù)器450和460、存儲器核心400以及控制單元40。存儲器核心400包括閃存數(shù)組401、列譯碼器402以及行譯碼器403。舉例而言,4個串行輸入/輸出引腳可為前述的串行輸入/輸出引腳SI/S00、S0/S01、WP#/S02和HOLD#/S03,分別對應(yīng)連接至串行輸入/輸出端SI/S0[0]?SI/S0[3]。如上所述,4個串行輸入/輸出引腳被分配為至少二個存取信道,該至少二個存取信道的每一個具有一個優(yōu)先次序??刂茊卧?0耦接至輸入/輸出電路430以及串行輸入/輸出緩沖器441?444,并通過控制輸入/輸出電路430及/或控制信號C9?C12以控制輸入輸出緩沖器441?444,從而控制各存取信道的串行輸入/輸出引腳的輸出輸入??刂茊卧?0通過控制信號C13?C16控制串行/并行轉(zhuǎn)換器421?424。暫存器410包括指令/數(shù)據(jù)暫存器411?414,分別對應(yīng)暫存通過串行輸入/輸出引腳接收的指令、地址A[0]?A[3]和寫入數(shù)據(jù)WD[0]?WD[3],并暫存從閃存數(shù)組401讀取的讀取數(shù)據(jù)RD。控制單元40通過讀取擷取信號REO?RE3控制指令/數(shù)據(jù)暫存器411?414根據(jù)存取信道擷取讀取數(shù)據(jù)RD。控制單元40更分別通過選擇信號SELl和SEL2控制多任務(wù)器450和460,以根據(jù)存取信道選擇對應(yīng)的地址和寫入數(shù)據(jù),并傳輸至存儲器核心400。
[0037]在多存取信道存取操作中,控制單元40控制各存取信道的串行輸入/輸出引腳的輸出輸入,使存儲器核心400通過第一存取信道的第一串行輸入/輸出引腳接收第一存取指令以及第一地址,并在該第一存取指令的接收結(jié)束之前,通過第二存取信道的第二串行輸入/輸出引腳接收第二存取指令以及第二地址,且通過該第二存取信道的所有串行輸入/輸出引腳,對閃存數(shù)組401進(jìn)行對應(yīng)至該第二存取指令與該第二地址的第二存取操作,以及通過該第一存取信道的所有串行輸入/輸出引腳進(jìn)行對應(yīng)至該第一存取指令與該第一地址的第一存取操作。其中,該第二存取信道的優(yōu)先次序高于該第一存取信道。在一個實施例中,若SPINAND閃存32不支持并行存取,則在該第一存取指令與該第一地址的傳輸結(jié)束之后,該第一存取指令與該第一地址被暫存至對應(yīng)第一存取信道的指令/數(shù)據(jù)暫存器,且控制單元40控制存儲器核心400,使存儲器核心400暫停對應(yīng)至該第一存取指令與該第一地址的第一存取操作。且在該第二存取操作結(jié)束之后,控制單元40控制存儲器核心400,使存儲器核心400通過該第一存取信道的所有串行輸入/輸出引腳進(jìn)行該第一存取操作。在另一實施例當(dāng)中,若SPI NAND閃存32支持并行存取,則控制單元40控制存儲器核心400,使存儲器核心400在進(jìn)行該第二存取操作的同時,通過該第一存取信道的所有串行輸入/輸出引腳進(jìn)行對應(yīng)至該第一存取指令與該第一地址的第一存取操作,如圖2A與圖2B所示。
[0038]當(dāng)該至少二個存取信道其中二個存取信道皆閑置預(yù)定時間之后,控制單元40將該二個存取信道中優(yōu)先次序較高的存取信道的所有串行輸入/輸出引腳合并至該二個存取信道中優(yōu)先次序較低的存取信道。
[0039]須注意的是,本發(fā)明所揭露的串行閃存的多存取信道存取協(xié)議可反向兼容(backward compatible),也就是說,本發(fā)明的串行閃存可從單一存取信道切換至多存取信道,也可從多存取信道切換回單一存取信道。
[0040]綜上所述,在本發(fā)明的揭露中,串行閃存的多個串行輸入/輸出引腳被分配為至少二個存取信道,各存取信道具有各自的優(yōu)先次序,使得較緊急的存取操作得以通過優(yōu)先次序較高的存取信道進(jìn)行,降低多余的等待時間并減少存取資源的浪費。
[0041]本發(fā)明雖以較佳的實施例揭露如上,然其并非用于限定本發(fā)明的范圍,任何所屬【技術(shù)領(lǐng)域】的技術(shù)人員,在不脫離本發(fā)明的精神和范圍內(nèi),可做些許的替換與更改,本發(fā)明的權(quán)利范圍應(yīng)以權(quán)利要求以及其等同變形為準(zhǔn)。
【權(quán)利要求】
1.一種存儲器存取方法,用于串行外圍接口閃存,該串行外圍接口閃存包括閃存數(shù)組以及多個串行輸入/輸出引腳,該多個串行輸入/輸出引腳被分配為至少二個存取信道,該至少二個存取信道中的每個具有優(yōu)先次序,其中該存儲器存取方法包括: 通過第一存取信道的第一串行輸入/輸出引腳接收第一存取指令以及第一地址;在該第一存取指令的接收結(jié)束之前,通過第二存取信道的第二串行輸入/輸出引腳接收第二存取指令以及第二地址;以及 通過該第二存取信道的所有串行輸入/輸出引腳,對該閃存數(shù)組進(jìn)行對應(yīng)至該第二存取指令與該第二地址的第二存取操作; 其中該第二存取信道的優(yōu)先次序高于該第一存取信道。
2.如權(quán)利要求1所述的存儲器存取方法,其特征在于,該存儲器存取方法更包括: 在該第一存取指令與該第一地址接收結(jié)束之后,暫存該第一存取指令與該第一地址,并暫停對應(yīng)至該第一存取指令與該第一地址的第一存取操作。
3.如權(quán)利要求2所述的存儲器存取方法,其特征在于,該存儲器存取方法更包括: 在該第二存取操作結(jié)束之后,通過該第一存取信道的所有串行輸入/輸出引腳,對該閃存數(shù)組進(jìn)行該第一存取 操作。
4.如權(quán)利要求1所述的存儲器存取方法,其特征在于,該串行外圍接口閃存支持并行存取,該存儲器存取方法更包括: 在對該閃存數(shù)組進(jìn)行該第二存取操作的同時,通過該第一存取信道的所有串行輸入/輸出引腳,對該閃存數(shù)組進(jìn)行對應(yīng)至該第一存取指令與該第一地址的第一存取操作。
5.如權(quán)利要求1所述的存儲器存取方法,,其特征在于,當(dāng)該至少二個存取信道的其中二個存取信道皆閑置預(yù)定時間之后,該二個存取信道中優(yōu)先次序較高的存取信道的所有串行輸入/輸出引腳被合并至該二個存取信道中優(yōu)先次序較低的存取信道。
6.一種存儲器存取控制方法,用于控制串行外圍接口閃存,該串行外圍接口閃存包括閃存數(shù)組以及多個串行輸入/輸出引腳,其中該存儲器存取控制方法包括: 將該多個串行輸入/輸出引腳分配為至少二個存取信道,其中該至少二個存取信道中的每個具有優(yōu)先次序; 通過第一存取信道的第一串行輸入/輸出引腳將第一存取指令以及第一地址傳輸至該串行外圍接口閃存; 在該第一存取指令的接收結(jié)束之前,通過第二存取信道的第二串行輸入/輸出引腳將第二存取指令與第二地址傳輸至該串行外圍接口閃存;以及 控制該串行外圍接口閃存,使該串行外圍接口閃存通過該第二存取信道的所有串行輸入/輸出引腳進(jìn)行對應(yīng)至該第二存取指令與該第二地址的第二存取操作。
7.如權(quán)利要求6所述的存儲器存取控制方法,其特征在于,該存儲器存取控制方法更包括: 在該第一存取指令與該第一地址的傳輸結(jié)束之后,控制該串行外圍接口閃存暫存該第一存取指令與該第一地址,并暫停對應(yīng)至該第一存取指令與該第一地址的第一存取操作。
8.如權(quán)利要求7所述的存儲器存取控制方法,其特征在于,該存儲器存取控制方法更包括: 在該第二存取操作結(jié)束之后,控制該串行外圍接口閃存,使該串行外圍接口閃存通過該第一存取信道的所有串行輸入/輸出引腳進(jìn)行該第一存取操作。
9.如權(quán)利要求6所述的存儲器存取控制方法,其特征在于,該串行外圍接口閃存支持并行存取,該存儲器存取控制方法更包括: 控制該串行外圍接口閃存,使該串行外圍接口閃存在進(jìn)行該第二存取操作的同時,通過該第一存取信道的所有串行輸入/輸出引腳進(jìn)行對應(yīng)至該第一存取指令與該第一地址的第一存取操作。
10.如權(quán)利要求6所述的存儲器存取控制方法,其特征在于,當(dāng)該至少二個存取信道的其中二個存取信道皆閑置預(yù)定時間之后,將該二個存取信道中優(yōu)先次序較高的存取信道的所有串行輸入/輸出引腳合并至該二個存取信道中優(yōu)先次序較低的存取信道。
11.一種串行外圍接口閃存裝置,包括: 閃存核心,包括閃存數(shù)組; 多個串行輸入/輸出引腳,耦接至該閃存核心,該多個串行輸入/輸出引腳被分配為至少二個存取信道,且該至少二個存取信道中的每個具有優(yōu)先次序; 輸入/輸出電路,耦接至該閃存核心以及該多個串行輸入/輸出引腳;以及 控制單元,耦接至該輸入/輸出電路以及該閃存核心,用于通過該輸入/輸出電路控制該多個串行輸入/輸出引腳的輸入輸出,使該閃存核心通過第一存取信道的第一串行輸入/輸出引腳接收第一存取指令以及第一地址,并在該第一存取指令的接收結(jié)束之前,通過第二存取信道的第二串行輸入/輸出引腳接收第二存取指令以及第二地址,且通過該第二存取信道的所有串行輸入/輸出引腳,對該閃存數(shù)組進(jìn)行對應(yīng)至該第二存取指令與該第二地址的第二存取操作; 其中該第二存取信道的優(yōu)先次序高于該第一存取信道。
12.如權(quán)利要求11所述的串行外圍接口閃存裝置,其特征在于,該串行外圍接口閃存裝置更包括: 暫存器,耦接至該閃存核心、該輸入/輸出電路以及該控制單元,用于暫存該輸入/輸出電路通過該多個串行輸入/輸出引腳接收的存取指令以及存取數(shù)據(jù); 其中在該第一存取指令與該第一地址的接收結(jié)束之后,該暫存器暫存該第一存取指令與該第一地址,且該控制單元使該存儲器核心暫停對應(yīng)至該第一存取指令與該第一地址的第一存取操作。
13.如權(quán)利要求12所述的串行外圍接口閃存裝置,其特征在于,在該第二存取操作結(jié)束之后,該控制單元使該閃存核心通過該第一存取信道的所有串行輸入/輸出引腳,對該閃存數(shù)組進(jìn)行該第一存取操作。
14.如權(quán)利要求11所述的串行外圍接口閃存裝置,其特征在于,該串行外圍接口閃存支持并行存取,在該閃存核心對該閃存數(shù)組進(jìn)行該第二存取操作的同時,該控制單元使該閃存核心通過該第一存取信道的所有串行輸入/輸出引腳,對該閃存數(shù)組進(jìn)行對應(yīng)至該第一存取指令與該第一地址的第一存取操作。
15.如權(quán)利要求11所述的串行外圍接口閃存裝置,其特征在于,當(dāng)該至少二個存取信道的其中二個存取信道皆閑置預(yù)定時間之后,該控制單元使該二個存取信道中優(yōu)先次序較高的存取信道的所有串行輸入/輸出引腳被合并至該二個存取信道中優(yōu)先次序較低的存取信道。
16.一種串行外圍接口控制器,耦接至串行外圍接口閃存以控制該串行外圍接口閃存的存取操作,該串行外圍接口閃存包括閃存數(shù)組以及多個串行輸入/輸出引腳,其中該串行外圍接口控制器包括: 多個串行輸入/輸出端,分別對應(yīng)耦接至該多個串行輸入/輸出引腳; 輸入/輸出電路,耦接至該多個串行輸入/輸出端;以及 控制單元,耦接至該輸入/輸出電路,將該多個串行輸入/輸出引腳分配為至少二個存取信道,其中該至少二個存取信道的每一個具有優(yōu)先次序,并通過該輸入/輸出電路控制該多個串行輸入/輸 出端的輸出輸入,以將第一存取指令以及第一地址通過第一存取信道的第一串行輸入/輸出引腳傳輸至該串行外圍接口閃存,并在該第一存取指令的傳輸結(jié)束之前,將第二存取指令以及第二地址通過第二存取信道的第二串行輸入/輸出引腳傳輸至該串行外圍接口閃存; 其中該串行外圍接口控制器控制該串行外圍接口閃存,使該串行外圍接口閃存通過該第二存取信道的所有串行輸入/輸出引腳進(jìn)行對應(yīng)至該第二存取指令與該第二地址的第二存取操作。
17.如權(quán)利要求16所述的串行外圍接口控制器,其特征在于,在該第一存取指令與該第一地址的傳輸結(jié)束之后,該串行外圍接口控制器控制該串行外圍接口閃存暫存該第一存取指令與該第一地址,并暫停對應(yīng)至該第一存取指令與該第一地址的第一存取操作。
18.如權(quán)利要求17所述的串行外圍接口控制器,其特征在于,在該第二存取操作結(jié)束之后,該串行外圍接口控制器控制該串行外圍接口閃存,使該串行外圍接口閃存通過該第一存取信道的所有串行輸入/輸出引腳進(jìn)行該第一存取操作。
19.如權(quán)利要求16所述的串行外圍接口控制器,其特征在于,該串行外圍接口閃存支持并行存取,該串行外圍接口控制器控制該串行外圍接口閃存,使該串行外圍接口閃存在進(jìn)行該第二存取操作的同時,通過該第一存取信道的所有串行輸入/輸出引腳進(jìn)行對應(yīng)至該第一存取指令與該第一地址的第一存取操作。
20.如權(quán)利要求16所述的串行外圍接口控制器,其特征在于,當(dāng)該至少二個存取信道的其中二個存取信道皆閑置預(yù)定時間之后,該控制單元將該二個存取信道中優(yōu)先次序較高的存取信道的所有串行輸入/輸出引腳合并至該二個存取信道中優(yōu)先次序較低的存取信道。
【文檔編號】G06F13/16GK104077080SQ201310299476
【公開日】2014年10月1日 申請日期:2013年7月17日 優(yōu)先權(quán)日:2013年3月29日
【發(fā)明者】薛時彥 申請人:聯(lián)發(fā)科技股份有限公司