TWI471731B - 記憶體存取方法、記憶體存取控制方法、spi快閃記憶體裝置以及spi控制器 - Google Patents
記憶體存取方法、記憶體存取控制方法、spi快閃記憶體裝置以及spi控制器 Download PDFInfo
- Publication number
- TWI471731B TWI471731B TW102111356A TW102111356A TWI471731B TW I471731 B TWI471731 B TW I471731B TW 102111356 A TW102111356 A TW 102111356A TW 102111356 A TW102111356 A TW 102111356A TW I471731 B TWI471731 B TW I471731B
- Authority
- TW
- Taiwan
- Prior art keywords
- access
- flash memory
- spi
- serial input
- output
- Prior art date
Links
Landscapes
- Read Only Memory (AREA)
Description
本發明係有關於一種快閃記憶體,且特別有關於一種串列式快閃記憶體。
隨著使用者對於處理數位資料的需求越來越大,存取或傳輸數位資料的速度以及正確性也跟著增強,尤其是處理器與相關記憶體之間的存取操作。在各式記憶體技術中,由於快閃記憶體(Flash memory)具有可重複寫入資料、無需電力來維持儲存資料、足夠的可靠度、存取速度更快、體積更小等特性,已廣泛運用於電腦系統及可攜式電子裝置中。一般來說,快閃記憶體可分為平行式(parallel)快閃記憶體以及串列式(serial)快閃記憶體。由於串列式快閃記憶體所要求的傳輸線及接腳較少,因此電路較簡單且成本較低,且在印刷電路板上所佔的面積較小,所以已成為主要發展趨勢,尤其常作為可攜式電子裝置的記憶體裝置。
以一8接腳的串列週邊介面(Serial Peripheral Interface,SPI)反及快閃記憶體(NAND Flash Memory)為例,SPI
反及快閃記憶體的接腳包括晶片選擇(Chip Select)接腳CS#、串列資料輸入/串列資料輸出入(Serial Data Input/Serial Data Input and Output)接腳SI/SO0、串列資料輸出/串列資料輸出入(Serial Data Output/Serial Data Input and Output)接腳SO/SO1、串列時脈(Serial Clock)接腳SCK、寫入保護/串列資料輸出入(Write Protect/Serial Data Input and Output)接腳WP#/SO2、保持/串列資料輸出入(Hold/Serial Data Input and Output)接腳HOLD#/SO3、電源供應接腳VCC以及接地接腳GND。為說明簡潔起見,在本揭露中,串列資料輸入/串列資料輸出入接腳SI/SO0、串列資料輸出/串列資料輸出入接腳SO/SO1、寫入保護/串列資料輸出入接腳WP#/SO2和保持/串列資料輸出入接腳HOLD#/SO3又可被稱為串列輸入/輸出接腳。記憶體裝置透過晶片選擇接腳CS#接收晶片選擇訊號,用以致能或禁能記憶體裝置。當晶片選擇訊號為低位階時,致能記憶體裝置,反之,當晶片選擇訊號為高位階時,禁能記憶體裝置。記憶體裝置透過串列時脈接腳SCK接收串列時脈訊號,串列時脈訊號提供介面時序至SPI反及快閃記憶體。位址資訊、資料和指令於串列時脈訊號的上升邊緣被擷取/鎖存,而當輸出資料時,資料於串列時脈訊號的下降邊緣被配置至串列資料輸出埠。SPI反及快閃記憶體支援標準的SPI以及二位元SPI(dual SPI)和四位元SPI(quad SPI)。也就是說,其存取操作根據資料流的頻寬可分為一位元、二位元和四位元模式。舉例而言,在一位元存取操作中,串列輸入/輸出接腳SI/SO0用來輸入指令和待寫入的串列資料而串列輸入/輸出接腳SO/SO1用來輸出所讀出
的串列資料;在二位元讀出(Dual Read)操作中,串列輸入/輸出接腳SI/SO0和SO/SO1皆用來輸出所讀出的串列資料;而在四位元讀出(Quad Read)操作中,串列輸入/輸出接腳SI/SO0、SO/SO1、WP#/SO2以及HOLD#/SO3皆用來輸出所讀出的串列資料。
第1A圖與第1B圖所示為習知SPI反及快閃記憶體的四位元讀出操作的時序圖。在四位元讀出操作中,晶片選擇訊號被致能之後,記憶體透過串列輸入/輸出接腳SI/SO0接收並擷取指示四位元讀出操作的指令CMD,並在經過3個虛擬位元(dummy bit)DBi之後,擷取面選擇(plane select)位元PS,再接著擷取位址ADD_C。經過1個虛擬位元組DBy之後,記憶體根據所擷取的位址ADD_C,從記憶體陣列讀出串列資料,然後透過串列輸入/輸出接腳SI/SO0、SO/SO1、WP#/SO2以及HOLD#/SO3輸出所讀出的串列資料,例如第1B圖中之讀出資料位元組By1~By4所示。由於記憶體同時透過4個接腳SI/SO0、SO/SO1、WP#/SO2以及HOLD#/SO3輸出所讀出的資料,因此其讀出資料流的頻寬為四位元。在虛擬位元組DBy期間,串列輸入/輸出接腳SI/SO0的訊號為高阻抗狀態High-Z,並在開始輸出串列資料(例如位元組By1之位元4)前從原本接收指令與位址資訊的輸入模式轉換為輸出模式。上述面選擇位元PS係用來指示存取記憶體時,存取位置是對應至記憶體中的哪個面。
在SPI反及快閃記憶體的操作中,當有新的存取操作插入時,根據先前技術,有可能會等原本正在進行的存取操
作結束後再進行新的存取操作,或者取消原本正在進行的存取操作而優先進行新的存取操作。若是等原本正在進行的存取操作結束後才進行新的存取操作,則較緊急的存取操作無法優先進行,尤其有些存取操作可能需要較多的時間,例如有些抹除或程式化操作可能需要百萬秒等級的存取時間,因此,為避免較緊急的存取操作無法很快地進行,在目前的作法中常會將需要較多時間的存取操作,例如與系統更新有關的存取操作,安排在存取離峰時間時進行,因此可能無法進行即時(real-time)更新等。若是取消原本正在進行的存取操作,則可能會造成原本的存取操作中存取資料不完整,而待新的存取操作進行完畢之後再繼續被取消的原本的存取操作時,由於被取消的原本的存取操作可能不完整,必須重新開始存取操作,浪費不必要的存取資源,尤其串列式反及快閃記憶體之串列匯流排的頻寬(bandwidth)有限。
有鑑於此,在本揭露中,串列式快閃記憶體的複數個串列輸入/輸出接腳被分配為至少二個存取通道,各存取通道具有各自的優先次序,使得較緊急的存取操作得以透過優先次序較高的存取通道進行,降低多餘的等待時間並減少存取資源的浪費。
本發明一實施例提供一種記憶體存取方法,適用於一串列週邊介面(Serial Peripheral Interface,SPI)快閃記憶體,該SPI快閃記憶體包括一快閃記憶體陣列以及複數個串列輸入/輸出接腳,該等串列輸入/輸出接腳被分配為至少二個存
取通道,每一該至少二個存取通道具有一優先次序,其中該記憶體存取方法包括:透過一第一存取通道之一第一串列輸入/輸出接腳接收一第一存取指令以及一第一位址;在該第一存取指令之接收結束之前,透過一第二存取通道之一第二串列輸入/輸出接腳接收一第二存取指令以及一第二位址;以及透過該第二存取通道之所有串列輸入/輸出接腳,對該快閃記憶體陣列進行對應至該第二存取指令與該第二位址的第二存取操作;其中該第二存取通道之優先次序高於該第一存取通道。
本發明另一實施例提供一種記憶體存取控制方法,用於控制串列週邊介面(Serial Peripheral Interface,SPI)快閃記憶體,該SPI快閃記憶體包括一快閃記憶體陣列以及複數個串列輸入/輸出接腳,其中該記憶體存取控制方法包括:將該等串列輸入/輸出接腳分配為至少二個存取通道,其中每一該至少二個存取通道具有一優先次序;透過一第一存取通道之一第一串列輸入/輸出接腳將一第一存取指令以及一第一位址傳送至該SPI快閃記憶體;在該第一存取指令之傳送結束之前,透過一第二存取通道之一第二串列輸入/輸出接腳將一第二存取指令以及一第二位址傳送至該SPI快閃記憶體;以及控制該SPI快閃記憶體,使該SPI快閃記憶體透過該第二存取通道之所有串列輸入/輸出接腳進行對應至該第二存取指令與該第二位址的第二存取操作。
本發明另一實施例提供一種串列週邊介面(Serial Peripheral Interface,SPI)快閃記憶體裝置,包括:一快閃記憶體核心,包括一快閃記憶體陣列;複數個串列輸入/輸出接腳,
耦接至該快閃記憶體核心,該等串列輸入/輸出接腳被分配為至少二個存取通道,每一該至少二個存取通道具有一優先次序;輸入/輸出電路,耦接至該快閃記憶體核心以及該等串列輸入/輸出接腳;以及一控制邏輯,耦接至該輸入/輸出電路以及該快閃記憶體核心,用以透過該輸入/輸出電路控制該等串列輸入/輸出接腳的輸出入,使該快閃記憶體核心透過一第一存取通道之一第一串列輸入/輸出接腳接收一第一存取指令以及一第一位址,並在該第一存取指令之接收結束之前,透過一第二存取通道之一第二串列輸入/輸出接腳接收一第二存取指令以及一第二位址,且透過該第二存取通道之所有串列輸入/輸出接腳,對該快閃記憶體陣列進行對應至該第二存取指令與該第二位址的第二存取操作;其中該第二存取通道之優先次序高於該第一存取通道。
本發明再一實施例提供一種串列週邊介面(Serial Peripheral Interface,SPI)控制器,耦接至一SPI快閃記憶體以控制該SPI快閃記憶體的存取操作,該SPI快閃記憶體包括一快閃記憶體陣列以及複數個串列輸入/輸出接腳,其中該SPI控制器包括:複數個串列輸入/輸出端,分別對應耦接至該等串列輸入/輸出接腳;一輸入/輸出電路,耦接至該等串列輸入/輸出端;以及一控制邏輯,耦接至該輸入/輸出電路,將該等串列輸入/輸出接腳分配為至少二個存取通道,其中每一該至少二個存取通道具有一優先次序,並透過該輸入/輸出電路控制該等串列輸入/輸出端的輸出入,以將一第一存取指令以及一第一位址透過一第一存取通道之一第一串列輸入/輸出接腳傳送
至該SPI快閃記憶體,並在該第一存取指令之傳送結束之前,將一第二存取指令以及一第二位址透過一第二存取通道之一第二串列輸入/輸出接腳傳送至該SPI快閃記憶體;其中該SPI控制器控制該SPI快閃記憶體,使該SPI快閃記憶體透過該第二存取通道之所有串列輸入/輸出接腳進行對應至該第二存取指令與該第二位址的第二存取操作。
30‧‧‧主處理器
31‧‧‧SPI控制器
32‧‧‧SPI反及快閃記憶體
33‧‧‧主處理器匯流排
34‧‧‧SPI匯流排
40、300‧‧‧控制邏輯
310、410‧‧‧暫存器
311、312、313、314、411、412、413、414‧‧‧指令/資料暫存器
321、322、323、324、421、422、423、424‧‧‧串列/平行轉換器
330、430‧‧‧輸入/輸出電路
341、342、343、344、441、442、443、444‧‧‧輸入輸出緩衝器
ADD_C、ADD_C1、ADD_C2‧‧‧位址
CMD、CMD1、CMD2‧‧‧指令
CS#‧‧‧晶片選擇接腳
PS、PS1、PS2‧‧‧面選擇位元
SCK‧‧‧串列時脈訊號
SI/SO[0]~SI/SO[3]‧‧‧串列輸入/輸出端
SI/SO0、SO/SO1、WP#/SO2、HOLD#/SO3‧‧‧串列輸入/輸出接腳
第1A圖與第1B圖所示為習知SPI反及快閃記憶體的四位元讀出操作的時序圖;第2A圖與第2B圖所示為根據本發明一實施例之SPI反及快閃記憶體的多存取通道讀出操作的時序圖;第3圖所示為根據本發明一實施例之SPI控制器的示意圖;第4A圖與第4B圖所示為根據本發明一實施例之SPI反及快閃記憶體的示意圖。
以下說明是本發明的實施例。其目的是要舉例說明本發明一般性的原則,不應視為本發明之限制,本發明之範圍當以申請專利範圍所界定者為準。
值得注意的是,以下所揭露的內容可提供多個用以實踐本發明之不同特點的實施例或範例。以下所述之特殊的元件範例與安排僅用以簡單扼要地闡述本發明之精神,並非用以限定本發明之範圍。此外,以下說明書可能在多個範例中重複使用相同的元件符號或文字。然而,重複使用的目的僅為了
提供簡化並清楚的說明,並非用以限定多個以下所討論之實施例以及/或配置之間的關係。此外,以下說明書所述之一個特徵連接至、耦接至以及/或形成於另一特徵之上等的描述,實際可包含多個不同的實施例,包括該等特徵直接接觸,或者包含其它額外的特徵形成於該等特徵之間等等,使得該等特徵並非直接接觸。
本發明一實施例揭露一種SPI反及快閃記憶體的記憶體存取方法,SPI反及快閃記憶體包括一快閃記憶體陣列、晶片選擇接腳CS#、串列時脈接腳SCK、電源供應接腳VCC、接地接腳GND以及串列輸入/輸出接腳SI/SO0、SO/SO1、WP#/SO2和HOLD#/SO3。SPI反及快閃記憶體透過晶片選擇接腳CS#接收晶片選擇訊號,透過串列時脈接腳SCK接收串列時脈訊號,並分別透過電源供應接腳VCC以及接地接腳GND接收電源供應電壓以及接地電壓。SPI反及快閃記憶體支援四位元SPI,因此,在四位元存取操作中,串列輸入/輸出接腳SI/SO0、SO/SO1、WP#/SO2和HOLD#/SO3可用來輸入指令和待寫入至快閃記憶體陣列的串列資料,也可用來輸出從快閃記憶體陣列讀出的串列資料。在此記憶體存取方法中,該等串列輸入/輸出接腳被分配為至少二個存取通道,每個存取通道具有其優先次序。在透過優先次序較低之第一存取通道的一第一串列輸入/輸出接腳接收第一存取指令與第一位址時,在第一存取指令被接收結束之前,可透過優先次序較第一存取通道高之第二存取通道的一第二串列輸入/輸出接腳接收較緊急之存取操作的第二存取指令與第二位址。然後,記憶體透過第二存取通道的
所有串列輸入/輸出接腳對快閃記憶體陣列進行對應第二存取指令和第二位址的存取操作。
第2A圖與第2B圖所示為根據本發明一實施例之SPI反及快閃記憶體的多存取通道讀出操作的時序圖。其中串列輸入/輸出接腳SI/SO0、SO/SO1、WP#/SO2和HOLD#/SO3之序號分別為0、1、2和3。在多存取通道讀出操作中,晶片選擇訊號CS#被致能之後,記憶體透過串列輸入/輸出接腳SI/SO0接收並擷取多位元讀出指令CMD1,而在指令CMD1接收完畢之前,記憶體還透過串列輸入/輸出接腳WP#/SO2接收多位元讀出指令CMD2,此時,串列輸入/輸出接腳SI/SO0和SO/SO1被指派為存取通道0,而串列輸入/輸出接腳WP#/SO2和HOLD#/SO3被指派為存取通道1。由於存取通道0中的最小串列輸入/輸出接腳序號(接腳SI/SO0為序號0)小於存取通道1中的最小串列輸入/輸出接腳序號(接腳WP#/SO2為序號2),因此存取通道1的優先次序高於存取通道0,也就是說,透過存取通道1進行的存取操作具有較高的優先權。
在此實施例中,SPI反及快閃記憶體支援平行存取(parallel access),因此在透過串列輸入/輸出接腳SI/SO0接收多位元讀出指令CMD1和位址ADD_C1之後,根據位址ADD_C1從快閃記憶體陣列讀出資料,並透過存取通道0的串列輸入/輸出接腳SI/SO0和SO/SO1輸出所讀出的資料。而在透過存取通道0進行讀出操作的同時,透過串列輸入/輸出接腳WP#/SO2接收多位元讀出指令CMD2和位址ADD_C2,然後根據位址ADD_C2從快閃記憶體陣列讀出資料,並透過存取通道1的串列輸入/輸出
接腳WP#/SO2和HOLD#/SO3輸出所讀出的資料。須注意的是,第2A圖與第2B圖中的虛擬位元DBi1、DBi2以及面選擇位元PS1、PS2分別和第1A圖與第1B圖中的虛擬位元DBi以及面選擇位元PS類似,因此不再複述。
在另一實施例中,SPI反及快閃記憶體不支援平行存取,此情況下和第2A圖與第2B圖之圖示的差異在於:接收完多位元讀出指令CMD1和位址ADD_C1之後會暫存多位元讀出指令CMD1和位址ADD_C1,並暫停(pending)存取通道0的讀出操作,先進行存取通道1的讀出操作。待存取通道1的讀出操作進行完畢之後,再透過存取通道0進行對應至多位元讀出指令CMD1和位址ADD_C1的讀出操作。
在第2A圖與第2B圖之實施例中,存取通道0和存取通道1的資料流頻寬比為2:2,但本發明並不局限於此,在將4個串列輸入/輸出接腳分配為2個存取通道的例子中,存取通道0和存取通道1的資料流頻寬比可以為1:3、2:2或3:1。舉例來說,若在透過串列輸入/輸出接腳SI/SO0接收的指令接收完畢之前又透過串列輸入/輸出接腳SO/SO1接收另一指令,則存取通道0包括串列輸入/輸出接腳SI/SO0,存取通道1包括串列輸入/輸出接腳SO/SO1、WP#/SO2和HOLD#/SO3,此時,存取通道0和存取通道1的資料流頻寬比為1:3。除此之外,存取通道的個數並不限於2。舉例來說,若在透過串列輸入/輸出接腳SI/SO0接收的第一指令接收完畢之前透過串列輸入/輸出接腳SO/SO1接收第二指令,並且又在第二指令接收完畢之前透過串列輸入/輸出接腳HOLD#/SO3接收第三指令,則串列輸入/輸出
接腳被劃分為存取通道0、1和2,其中存取通道0包括串列輸入/輸出接腳SI/SO0,存取通道1包括串列輸入/輸出接腳SO/SO1和WP#/SO2,而存取通道2包括串列輸入/輸出接腳HOLD#/SO3,因此,3個存取通道的資料流頻寬比為1:2:1。在此情況下,若記憶體支援平行存取,則3個存取通道的存取操作可同時進行,但若記憶體不支援平行存取,由於存取通道2之優先次序最高而存取通道1其次,因此會先暫停存取通道0和1的存取操作,待存取通道2的存取操作進行完畢後才進行存取通道1的存取操作,並在存取通道1的存取操作進行完畢後再進行存取通道0的存取操作。
此外,關於存取通道之優先次序,可採取循環策略或絕對優先次序策略。舉例來說,在不支援平行存取且採取循環策略的情況下,若串列輸入/輸出接腳分配為存取通道0和存取通道1,且存取通道1之優先次序較高,則在存取通道1的存取操作完成之後,存取通道1的下一個存取操作必須被排在被暫停的存取通道0的存取操作之後。而在不支援平行存取且採取絕對優先次序策略的情況下,若串列輸入/輸出接腳分配為存取通道0和存取通道1,且存取通道1之優先次序較高,則在存取通道1的存取操作完成之後,存取通道1的下一個存取操作還是優於被暫停的存取通道0的存取操作,因此,若存取通道1持續忙碌,則存取通道0的存取操作可能會被一直被暫停。
另外,為有效利用頻寬,若有2個存取通道閒置太久,則可以將閒置的存取通道融合成新的1個存取通道,且新的存取通道的優先次序採取被融合之存取通道中最低的優先
次序。舉例而言,假設串列輸入/輸出接腳被分為存取通道0、1和2,其中存取通道0包括串列輸入/輸出接腳SI/SO0,存取通道1包括串列輸入/輸出接腳SO/SO1和WP#/SO2,存取通道2包括串列輸入/輸出接腳HOLD#/SO3,若存取通道1為忙碌而存取通道0和存取通道2皆閒置一預設時間(例如2個時序週期)之後,則存取通道0和存取通道2融合成為新的存取通道0,且新的存取通道0的優先次序還是一樣低於存取通道1。
除此之外,關於存取資料的位元順序,最高有效位元(Most Significant Bit,MSB)被最先傳輸並被配置於存取通道中序號最高的串列輸入/輸出接腳。以第2A圖與第2B圖為例,在存取通道0(包括串列輸入/輸出接腳SI/SO0和SO/SO1)的讀出操作中,最高有效位元7被配置於串列輸入/輸出接腳SO/SO1,接著位元6被配置於串列輸入/輸出接腳SI/SO0,以此類推。而在一存取通道包括3個串列輸入/輸出接腳SI/SO0、SO/SO1和WP#/SO2的例子中,最高有效位元7被配置於串列輸入/輸出接腳WP#/SO2,位元6被配置於串列輸入/輸出接腳SO/SO1,位元5被配置於串列輸入/輸出接腳SI/SO0,位元4、3和2被分別配置於串列輸入/輸出接腳WP#/SO2、SO/SO1和SI/SO0,位元1被配置於串列輸入/輸出接腳WP#/SO2,最低有效位元0被配置於串列輸入/輸出接腳SO/SO1,並會接著在串列輸入/輸出接腳SI/SO0配置1個填充位元(padding bit),以確保資料邊界。
根據第2A圖與第2B圖,所屬技術領域中具有通常知識者可以得知SPI反及快閃記憶體的多存取通道寫入操作的
時序圖。多存取通道寫入操作與上述多存取通道讀出操作類似,因此不再復述,惟在多存取通道寫入操作中,串列輸入/輸出接腳用來輸入待寫入至記憶體陣列的寫入資料。
第3圖所示為根據本發明一實施例之SPI控制器31的示意圖。SPI控制器31透過主處理器匯流排33耦接至主處理器(host processor)30,並透過SPI匯流排34耦接至SPI反及快閃記憶體32。SPI控制器31可被整合在主處理器30中,也可以是外接至主處理器30的SPI介面的一部分。SPI控制器31從主處理器30接收存取命令,並根據存取命令產生複數個訊號至SPI反及快閃記憶體32,以控制SPI反及快閃記憶體32的存取操作,並將主處理器30所傳送的待寫入資料傳送至SPI反及快閃記憶體32,或者將從SPI反及快閃記憶體32讀出的讀出資料傳送至主處理器30。該等訊號可包括串列時脈訊號、晶片選擇訊號、寫入保護訊號、保持訊號、存取指令訊號、位址訊號以及存取資料訊號。
SPI控制器31包括控制邏輯300、暫存器310、串列/平行轉換器(Serial/Parallel Converter)321~324、輸入/輸出電路330、輸入輸出緩衝器341~344以及串列輸入/輸出端SI/SO[0]~SI/SO[3]。串列輸入/輸出端SI/SO[0]~SI/SO[3]透過SPI匯流排34分別耦接至SPI反及快閃記憶體32的4個串列輸入/輸出接腳。控制邏輯300耦接至輸入/輸出電路330以及輸入/輸出緩衝器341~344,並藉由控制輸入/輸出電路330和/或以控制訊號C5~C8控制輸入輸出緩衝器341~344,來控制串列輸入/輸出端SI/SO[0]~SI/SO[3]的輸出入,並藉由此種輸出入控制將反
及快閃記憶體32的4個串列輸入/輸出接腳分配為至少二個存取通道,其中每一該至少二個存取通道具有一優先次序。暫存器310包括指令/資料暫存器311~314,分別對應儲存透過串列輸入/輸出端SI/SO[0]~SI/SO[3]傳輸的指令和存取資料。控制邏輯300透過控制訊號C1~C4控制串列/平行轉換器321~324,串列/平行轉換器321~324(包含串列介面編解碼器與串列傳輸單元之功能)用以將指令、位址和存取資料轉換成以具有1、2或4位元之頻寬的串列資料流形式傳送或接收。也就是說,串列/平行轉換器321~324是進行平行至串列或串列至平行的資料型態轉換,以下將不再重複說明。
須注意的是,第3圖之SPI控制器31僅為示例,SPI控制器31還可包括產生各訊號的訊號產生單元,例如序列時脈訊號產生單元等。
在多存取通道存取操作中,控制邏輯300藉由串列輸入/輸出端SI/SO[0]~SI/SO[3]的輸出入控制將SPI反及快閃記憶體32的4個串列輸入/輸出接腳分配為至少二個存取通道,以將一第一存取指令以及一第一位址透過一第一存取通道之一第一串列輸入/輸出接腳傳送至SPI反及快閃記憶體32,並在該第一存取指令之傳送結束之前,將一第二存取指令以及一第二位址透過一第二存取通道之一第二串列輸入/輸出接腳傳送至SPI反及快閃記憶體32。此外,SPI控制器31控制SPI反及快閃記憶體32,使SPI反及快閃記憶體32透過該第二存取通道之所有串列輸入/輸出接腳進行對應至該第二存取指令與該第二位址的第二存取操作。其中該第二存取通道之優先次序高於
該第一存取通道。
在一實施例中,若SPI反及快閃記憶體32不支援平行存取,則在該第一存取指令與該第一位址之傳送結束之後,SPI控制器31更控制SPI反及快閃記憶體32暫存該第一存取指令與該第一位址,並暫停對應至該第一存取指令與該第一位址的第一存取操作。且在該第二存取操作結束之後,SPI控制器31控制SPI反及快閃記憶體32,使SPI反及快閃記憶體32透過該第一存取通道之所有串列輸入/輸出接腳進行該第一存取操作。在另一實施例當中,若SPI反及快閃記憶體32支援平行存取,則SPI控制器31控制SPI反及快閃記憶體32,使SPI反及快閃記憶體32在進行該第二存取操作的同時,透過該第一存取通道之所有串列輸入/輸出接腳進行對應至該第一存取指令與該第一位址的第一存取操作,如第2A圖與第2B圖所示。
當該至少二個存取通道其中二個存取通道皆閒置一預定時間之後,控制邏輯300將該二個存取通道中優先次序較高之存取通道的所有串列輸入/輸出接腳併入該二個存取通道中優先次序較低之存取通道。
第4A圖與第4B圖所示為根據本發明一實施例之SPI反及快閃記憶體32的示意圖。SPI反及快閃記憶體32包括4個串列輸入/輸出接腳、輸入/輸出緩衝器441~444、輸入/輸出電路430、串列/平行轉換器421~424、暫存器410、多工器450和460、記憶體核心400以及控制邏輯40。記憶體核心400包括快閃記憶體陣列401、列解碼器402以及行解碼器403。4個串列輸入/輸出接腳例如為前述之串列輸入/輸出接腳SI/SO0、
SO/SO1、WP#/SO2和HOLD#/SO3,分別對應連接至串列輸入/輸出端SI/SO[0]~SI/SO[3]。如上所述,4個串列輸入/輸出接腳被分配為至少二個存取通道,每一該至少二個存取通道具有一優先次序。控制邏輯40耦接至輸入/輸出電路430以及串輸入/輸出緩衝器441~444,並藉由控制輸入/輸出電路430和/或以控制訊號C9~C12控制輸入輸出緩衝器441~444,來控制各存取通道之串列輸入/輸出接腳的輸出入。控制邏輯40透過控制訊號C13~C16控制串列/平行轉換器421~424。暫存器410包括指令/資料暫存器411~414,分別對應暫存透過串列輸入/輸出接腳接收的指令、位址A[0]~A[3]和寫入資料WD[0]~WD[3],並暫存從快閃記憶體陣列401讀出的讀出資料RD。控制邏輯40透過讀出擷取訊號RE0~RE3控制指令/資料暫存器411~414根據存取通道擷取讀出資料RD。控制邏輯40更分別透過選擇訊號SEL1和SEL2控制多工器450和460,以根據存取通道選擇對應的位址和寫入資料,並傳送至記憶體核心400。
在多存取通道存取操作中,控制邏輯40控制各存取通道之串列輸入/輸出接腳的輸出入,使記憶體核心400透過一第一存取通道之一第一串列輸入/輸出接腳接收一第一存取指令以及一第一位址,並在該第一存取指令之接收結束之前,透過一第二存取通道之一第二串列輸入/輸出接腳接收一第二存取指令以及一第二位址,且透過該第二存取通道之所有串列輸入/輸出接腳,對快閃記憶體陣列401進行對應至該第二存取指令與該第二位址的第二存取操作。其中該第二存取通道之優先次序高於該第一存取通道。在一實施例中,若SPI反及快閃
記憶體32不支援平行存取,則在該第一存取指令與該第一位址之傳送結束之後,該第一存取指令與該第一位址被暫存至對應第一存取通道的指令/資料暫存器,且控制邏輯40控制記憶體核心400,使記憶體核心400暫停對應至該第一存取指令與該第一位址的第一存取操作。且在該第二存取操作結束之後,控制邏輯40控制記憶體核心400,使記憶體核心400透過該第一存取通道之所有串列輸入/輸出接腳進行該第一存取操作。在另一實施例當中,若SPI反及快閃記憶體32支援平行存取,則控制邏輯40控制記憶體核心400,使記憶體核心400在進行該第二存取操作的同時,透過該第一存取通道之所有串列輸入/輸出接腳進行對應至該第一存取指令與該第一位址的第一存取操作,如第2A圖與第2B圖所示。
當該至少二個存取通道其中二個存取通道皆閒置一預定時間之後,控制邏輯40使該二個存取通道中優先次序較高之存取通道的所有串列輸入/輸出接腳被併入至該二個存取通道中優先次序較低之存取通道。
須注意的是,本發明所揭露之串列式快閃記憶體的多存取通道存取協定可反向相容(backward compatible),也就是說,本發明之串列式快閃記憶體可從單一存取通道切換至多存取通道,也可從多存取通道切換回單一存取通道。
綜上所述,在本揭露中,串列式快閃記憶體的複數個串列輸入/輸出接腳被分配為至少二個存取通道,各存取通道具有各自的優先次序,使得較緊急的存取操作得以透過優先次序較高的存取通道進行,降低多餘的等待時間並減少存取
資源的浪費。
以上所述為實施例的概述特徵。所屬技術領域中具有通常知識者應可以輕而易舉地利用本發明為基礎設計或調整以實行相同的目的和/或達成此處介紹的實施例的相同優點。所屬技術領域中具有通常知識者也應了解相同的配置不應背離本創作的精神與範圍,在不背離本創作的精神與範圍下他們可做出各種改變、取代和交替。說明性的方法僅表示示範性的步驟,但這些步驟並不一定要以所表示的順序執行。可另外加入、取代、改變順序和/或消除步驟以視情況而作調整,並與所揭露的實施例精神和範圍一致。
ADD_C1、ADD_C2‧‧‧位址
CMD1、CMD2‧‧‧指令
CS#‧‧‧晶片選擇接腳
PS、PS1、PS2‧‧‧面選擇位元
SCK‧‧‧串列時脈訊號
SI/SO0、SO/SO1、WP#/SO2、HOLD#/SO3‧‧‧串列輸入/輸出接腳
Claims (20)
- 一種記憶體存取方法,適用於一串列週邊介面(Serial Peripheral Interface,SPI)快閃記憶體,該SPI快閃記憶體包括一快閃記憶體陣列以及複數個串列輸入/輸出接腳,該等串列輸入/輸出接腳被分配為至少二個存取通道,每一該至少二個存取通道具有一優先次序,其中該記憶體存取方法包括:透過一第一存取通道之一第一串列輸入/輸出接腳接收一第一存取指令以及一第一位址;在該第一存取指令之接收結束之前,透過一第二存取通道之一第二串列輸入/輸出接腳接收一第二存取指令以及一第二位址;以及透過該第二存取通道之所有串列輸入/輸出接腳,對該快閃記憶體陣列進行對應至該第二存取指令與該第二位址的第二存取操作;其中該第二存取通道之優先次序高於該第一存取通道。
- 如申請專利範圍第1項所述之記憶體存取方法,更包括:在該第一存取指令與該第一位址之接收結束之後,暫存該第一存取指令與該第一位址,並暫停對應至該第一存取指令與該第一位址的第一存取操作。
- 如申請專利範圍第2項所述之記憶體存取方法,更包括:在該第二存取操作結束之後,透過該第一存取通道之所有串列輸入/輸出接腳,對該快閃記憶體陣列進行該第一存取操作。
- 如申請專利範圍第1項所述之記憶體存取方法,其中該SPI快閃記憶體支援平行存取,該記憶體存取方法更包括:在對該快閃記憶體陣列進行該第二存取操作的同時,透過該第一存取通道之所有串列輸入/輸出接腳,對該快閃記憶體陣列進行對應至該第一存取指令與該第一位址的第一存取操作。
- 如申請專利範圍第1項所述之記憶體存取方法,其中當該至少二個存取通道其中二個存取通道皆閒置一預定時間之後,該二個存取通道中優先次序較高之存取通道的所有串列輸入/輸出接腳被併入至該二個存取通道中優先次序較低之存取通道。
- 一種記憶體存取控制方法,用於控制串列週邊介面(Serial Peripheral Interface,SPI)快閃記憶體,該SPI快閃記憶體包括一快閃記憶體陣列以及複數個串列輸入/輸出接腳,其中該記憶體存取控制方法包括:將該等串列輸入/輸出接腳分配為至少二個存取通道,其中每一該至少二個存取通道具有一優先次序;透過一第一存取通道之一第一串列輸入/輸出接腳將一第一存取指令以及一第一位址傳送至該SPI快閃記憶體;在該第一存取指令之傳送結束之前,透過一第二存取通道之一第二串列輸入/輸出接腳將一第二存取指令以及一第二位址傳送至該SPI快閃記憶體;以及控制該SPI快閃記憶體,使該SPI快閃記憶體透過該第二存取通道之所有串列輸入/輸出接腳進行對應至該第二存取指 令與該第二位址的第二存取操作。
- 如申請專利範圍第6項所述之記憶體存取控制方法,更包括:在該第一存取指令與該第一位址之傳送結束之後,控制該SPI快閃記憶體暫存該第一存取指令與該第一位址,並暫停對應至該第一存取指令與該第一位址的第一存取操作。
- 如申請專利範圍第6項所述之記憶體存取控制方法,更包括:在該第二存取操作結束之後,控制該SPI快閃記憶體,使該SPI快閃記憶體透過該第一存取通道之所有串列輸入/輸出接腳進行該第一存取操作。
- 如申請專利範圍第6項所述之記憶體存取控制方法,其中該SPI快閃記憶體支援平行存取,該記憶體存取控制方法更包括:控制該SPI快閃記憶體,使該SPI快閃記憶體在進行該第二存取操作的同時,透過該第一存取通道之所有串列輸入/輸出接腳進行對應至該第一存取指令與該第一位址的第一存取操作。
- 如申請專利範圍第6項所述之記憶體存取控制方法,其中當該至少二個存取通道其中二個存取通道皆閒置一預定時間之後,將該二個存取通道中優先次序較高之存取通道的所有串列輸入/輸出接腳併入該二個存取通道中優先次序較低之存取通道。
- 一種串列週邊介面(Serial Peripheral Interface,SPI)快閃記 憶體裝置,包括:一快閃記憶體核心,包括一快閃記憶體陣列;複數個串列輸入/輸出接腳,耦接至該快閃記憶體核心,該等串列輸入/輸出接腳被分配為至少二個存取通道,每一該至少二個存取通道具有一優先次序;一輸入/輸出電路,耦接至該快閃記憶體核心以及該等串列輸入/輸出接腳;以及一控制邏輯,耦接至該輸入/輸出電路以及該快閃記憶體核心,用以透過該輸入/輸出電路控制該等串列輸入/輸出接腳的輸出入,使該快閃記憶體核心透過一第一存取通道之一第一串列輸入/輸出接腳接收一第一存取指令以及一第一位址,並在該第一存取指令之接收結束之前,透過一第二存取通道之一第二串列輸入/輸出接腳接收一第二存取指令以及一第二位址,且透過該第二存取通道之所有串列輸入/輸出接腳,對該快閃記憶體陣列進行對應至該第二存取指令與該第二位址的第二存取操作;其中該第二存取通道之優先次序高於該第一存取通道。
- 如申請專利範圍第11項所述之SPI快閃記憶體裝置,更包括:一暫存器,耦接至該快閃記憶體核心、該輸入/輸出電路以及該控制邏輯,用以暫存該輸入/輸出電路透過該等串列輸入/輸出接腳接收的存取指令以及存取資料;其中在該第一存取指令與該第一位址之接收結束之後,該暫存器暫存該第一存取指令與該第一位址,該控制邏輯使 該記憶體核心暫停對應至該第一存取指令與該第一位址的第一存取操作。
- 如申請專利範圍第12項所述之SPI快閃記憶體裝置,其中在該第二存取操作結束之後,該控制邏輯使該快閃記憶體核心透過該第一存取通道之所有串列輸入/輸出接腳,對該快閃記憶體陣列進行該第一存取操作。
- 如申請專利範圍第11項所述之SPI快閃記憶體裝置,其中該SPI快閃記憶體支援平行存取,在該快閃記憶體核心對該快閃記憶體陣列進行該第二存取操作的同時,該控制邏輯使該快閃記憶體核心透過該第一存取通道之所有串列輸入/輸出接腳,對該快閃記憶體陣列進行對應至該第一存取指令與該第一位址的第一存取操作。
- 如申請專利範圍第11項所述之SPI快閃記憶體裝置,其中當該至少二個存取通道其中二個存取通道皆閒置一預定時間之後,該控制邏輯使該二個存取通道中優先次序較高之存取通道的所有串列輸入/輸出接腳被併入至該二個存取通道中優先次序較低之存取通道。
- 一種串列週邊介面(Serial Peripheral Interface,SPI)控制器,耦接至一SPI快閃記憶體以控制該SPI快閃記憶體的存取操作,該SPI快閃記憶體包括一快閃記憶體陣列以及複數個串列輸入/輸出接腳,其中該SPI控制器包括:複數個串列輸入/輸出端,分別對應耦接至該等串列輸入/輸出接腳;一輸入/輸出電路,耦接至該等串列輸入/輸出端;以及 一控制邏輯,耦接至該輸入/輸出電路,將該等串列輸入/輸出接腳分配為至少二個存取通道,其中每一該至少二個存取通道具有一優先次序,並透過該輸入/輸出電路控制該等串列輸入/輸出端的輸出入,以將一第一存取指令以及一第一位址透過一第一存取通道之一第一串列輸入/輸出接腳傳送至該SPI快閃記憶體,並在該第一存取指令之傳送結束之前,將一第二存取指令以及一第二位址透過一第二存取通道之一第二串列輸入/輸出接腳傳送至該SPI快閃記憶體;其中該SPI控制器控制該SPI快閃記憶體,使該SPI快閃記憶體透過該第二存取通道之所有串列輸入/輸出接腳進行對應至該第二存取指令與該第二位址的第二存取操作。
- 如申請專利範圍第16項所述之SPI控制器,其中在該第一存取指令與該第一位址之傳送結束之後,該SPI控制器控制該SPI快閃記憶體暫存該第一存取指令與該第一位址,並暫停對應至該第一存取指令與該第一位址的第一存取操作。
- 如申請專利範圍第17項所述之SPI控制器,其中在該第二存取操作結束之後,該SPI控制器控制該SPI快閃記憶體,使該SPI快閃記憶體透過該第一存取通道之所有串列輸入/輸出接腳進行該第一存取操作。
- 如申請專利範圍第16項所述之SPI控制器,其中該SPI快閃記憶體支援平行存取,該SPI控制器控制該SPI快閃記憶體,使該SPI快閃記憶體在進行該第二存取操作的同時,透過該第一存取通道之所有串列輸入/輸出接腳進行對應至該 第一存取指令與該第一位址的第一存取操作。
- 如申請專利範圍第16項所述之SPI控制器,其中當該至少二個存取通道其中二個存取通道皆閒置一預定時間之後,該控制邏輯將該二個存取通道中優先次序較高之存取通道的所有串列輸入/輸出接腳併入該二個存取通道中優先次序較低之存取通道。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW102111356A TWI471731B (zh) | 2013-03-29 | 2013-03-29 | 記憶體存取方法、記憶體存取控制方法、spi快閃記憶體裝置以及spi控制器 |
CN201310299476.5A CN104077080B (zh) | 2013-03-29 | 2013-07-17 | 存储器存取方法、存储器存取控制方法、spi闪存装置及其控制器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW102111356A TWI471731B (zh) | 2013-03-29 | 2013-03-29 | 記憶體存取方法、記憶體存取控制方法、spi快閃記憶體裝置以及spi控制器 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201437814A TW201437814A (zh) | 2014-10-01 |
TWI471731B true TWI471731B (zh) | 2015-02-01 |
Family
ID=51598367
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW102111356A TWI471731B (zh) | 2013-03-29 | 2013-03-29 | 記憶體存取方法、記憶體存取控制方法、spi快閃記憶體裝置以及spi控制器 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN104077080B (zh) |
TW (1) | TWI471731B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10095617B2 (en) | 2015-09-22 | 2018-10-09 | Macronix International Co., Ltd. | Memory device with flexible data transfer rate interface and method thereof |
CN107562658B (zh) * | 2017-09-06 | 2024-05-28 | 北京世通凌讯科技有限公司 | Cpu取指系统及取指方法 |
CN113312281A (zh) * | 2020-02-27 | 2021-08-27 | 瑞昱半导体股份有限公司 | 用于多个存储设备的控制方法及相关的内存系统 |
CN111506529B (zh) * | 2020-06-30 | 2020-10-16 | 深圳市芯天下技术有限公司 | 一种应用于flash的高速spi指令应答电路 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120124446A1 (en) * | 2007-10-17 | 2012-05-17 | Micron Technology, Inc. | System and method for data read of a synchronous serial interface nand |
TW201232261A (en) * | 2010-12-23 | 2012-08-01 | Samsung Electronics Co Ltd | Memory control method, memory device and memory system |
TW201241625A (en) * | 2011-04-11 | 2012-10-16 | Intel Corp | Apparatuses for configuring programmable logic devices from BIOS PROM |
US20130010517A1 (en) * | 2011-07-05 | 2013-01-10 | Chu Daniel J | Self-disabling chip enable input |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5959883A (en) * | 1998-01-09 | 1999-09-28 | Information Storage Devices, Inc. | Recording and playback integrated system for analog non-volatile flash memory |
US7558900B2 (en) * | 2004-09-27 | 2009-07-07 | Winbound Electronics Corporation | Serial flash semiconductor memory |
US7397717B2 (en) * | 2005-05-26 | 2008-07-08 | Macronix International Co., Ltd. | Serial peripheral interface memory device with an accelerated parallel mode |
CN107122323B (zh) * | 2006-06-02 | 2020-02-28 | 旺宏电子股份有限公司 | 在多模总线的多引脚传输数据的方法及装置 |
US8266369B2 (en) * | 2009-12-18 | 2012-09-11 | Nxp B.V. | Flash memory interface |
CN102193888B (zh) * | 2010-03-12 | 2013-06-05 | 新唐科技股份有限公司 | 数据传输系统与可编程串行外围设备接口控制器 |
CN102279820A (zh) * | 2011-08-24 | 2011-12-14 | 四川和芯微电子股份有限公司 | 基于spi接口的数据存储装置及控制方法 |
-
2013
- 2013-03-29 TW TW102111356A patent/TWI471731B/zh active
- 2013-07-17 CN CN201310299476.5A patent/CN104077080B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120124446A1 (en) * | 2007-10-17 | 2012-05-17 | Micron Technology, Inc. | System and method for data read of a synchronous serial interface nand |
TW201232261A (en) * | 2010-12-23 | 2012-08-01 | Samsung Electronics Co Ltd | Memory control method, memory device and memory system |
TW201241625A (en) * | 2011-04-11 | 2012-10-16 | Intel Corp | Apparatuses for configuring programmable logic devices from BIOS PROM |
US20130010517A1 (en) * | 2011-07-05 | 2013-01-10 | Chu Daniel J | Self-disabling chip enable input |
Also Published As
Publication number | Publication date |
---|---|
TW201437814A (zh) | 2014-10-01 |
CN104077080A (zh) | 2014-10-01 |
CN104077080B (zh) | 2017-11-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5420648B2 (ja) | 半導体装置 | |
KR100868393B1 (ko) | 비휘발성 메모리 제어기 및 휘발성 메모리에 액세스하는방법 및 시스템, 비휘발성 메모리 제어기 및 휘발성 메모리 | |
US6775727B2 (en) | System and method for controlling bus arbitration during cache memory burst cycles | |
US20050169061A1 (en) | Multi-port memory device for buffering between hosts and non-volatile memory devices | |
KR100847968B1 (ko) | 컴퓨팅 시스템, 전자 통신 디바이스, 컴퓨팅 시스템 운영 방법 및 정보 처리 방법 | |
EP2149842A1 (en) | Semiconductor device | |
US7725621B2 (en) | Semiconductor device and data transfer method | |
TWI534615B (zh) | 串列周邊介面控制器、串列周邊介面快閃記憶體及其存取方法和存取控制方法 | |
TWI471731B (zh) | 記憶體存取方法、記憶體存取控制方法、spi快閃記憶體裝置以及spi控制器 | |
JP2006268827A (ja) | マルチチップパッケージデバイス | |
US20240231699A9 (en) | Asynchronous arbitration across clock domains for register writes in an integrated circuit chip | |
JP2004252960A (ja) | メモリ制御装置 | |
JP2011081553A (ja) | 情報処理装置及びその制御方法 | |
US8166316B2 (en) | Single interface access to multiple bandwidth and power memory zones | |
JP2018152112A (ja) | メモリ装置及びメモリ装置の動作方法 | |
US9015272B2 (en) | Microcomputer | |
US8495268B2 (en) | Card host LSI and set device including the same | |
US20150177816A1 (en) | Semiconductor integrated circuit apparatus | |
US20110197008A1 (en) | Card host lsi and set device including the lsi | |
KR20040045446A (ko) | 버스트 모드를 지원하는 외부 메모리가 있는 인터페이싱프로세서 | |
JP2009037639A (ja) | ストリーミングidメソッドによるdmac発行メカニズム | |
KR20000035167A (ko) | 메모리, 메모리 어드레스 전송 방법 및 메모리 인터페이스 | |
JP4549073B2 (ja) | メモリ制御回路 | |
WO2016053146A1 (ru) | Компьютерная система | |
RU155208U1 (ru) | Компьютерная система |