主/從模式通信,并且主裝置(例如主機)發(fā)起數(shù)據(jù)幀。多個從裝置可具有各自的從選擇線。在使用SPI串行閃存的傳統(tǒng)系統(tǒng)中,CPU/MCU或主機可能需要重復輪詢存儲器裝置,用于確定內(nèi)部自計時操作(例如,編程或擦除操作)是否已完成。主機接著可進行下一步驟,例如,隨后的編程或擦除循環(huán)。這種連續(xù)輪詢可能非期望地用盡CPU/MCU資源與時間,由于CPU執(zhí)行此輪詢例程而導致增加的能量消耗和縮短的電池壽命。在某些電池供電的應(yīng)用中以及其它情況中,CPU/MCU可能因處理器實施這種輪詢操作而被占用,使得只有較少資源能分配給其它更重要任務(wù)或系統(tǒng)關(guān)鍵任務(wù)。這可導致較慢的總體系統(tǒng)性能和可能的資源限制。
[0053]在一個示例方式中,CPU、MCU及/或主機系統(tǒng)可實施定時器循環(huán),以允許預先定義的延遲在處理下一個循環(huán)之前超時。預先定義的延遲可被設(shè)為等于或大于串行存儲器裝置的最大內(nèi)部自計時循環(huán)。然而,當CPU實施延遲的超時或倒數(shù)時,CPU同樣可耗能并導致CPU開銷。更先進的系統(tǒng)可使用內(nèi)部可編程定時器,但當這種定時器能夠用于其它更重要的系統(tǒng)功能時,其可能可專屬于該任務(wù)。此外,這些延遲具有基于最大循環(huán)時間的固定長度,如果自計時操作僅為此最大允許時間的一部分的話,這些延遲可導致龐大的浪費時間。
[0054]在使用并行存儲器裝置接口作為串行或SPI類型接口的替代的系統(tǒng)中,可使用數(shù)據(jù)輪詢或切換位(toggle bit)輪詢技術(shù)。在數(shù)據(jù)輪詢中,每次當狀態(tài)寄存器被讀取時,給定數(shù)據(jù)位的輸出值可顯示為被寫入的原始數(shù)值的補值。當所述位回復到其真值時,內(nèi)部編程、擦除、或是其它自計時操作可被指示為完成。在切換位輪詢中,每次當狀態(tài)寄存器被讀取并且裝置仍然實施內(nèi)部自計時寫入循環(huán)時,并行存儲器裝置數(shù)據(jù)總線可在I與O之間,或是O與I之間切換。當內(nèi)部自計時循環(huán)完成時,主機可在切換位停止時讀取兩個連續(xù)真值(例如,在I與O之間或是O與I之間,沒有任何切換)。這指示裝置已經(jīng)完成執(zhí)行其內(nèi)部自計時操作。然而,在任一情況中,主機都可能需要讀取存儲器裝置的狀態(tài)寄存器,因此可能需要處理器或主機介入。
[0055]在特定實施例中,一旦主動輪詢模式被使能,可不需任何CPU或主機介入存儲器裝置來確定存儲器裝置內(nèi)的自計時操作的執(zhí)行完成。相反,存儲器裝置本身可主動告知主機或CPU其內(nèi)部自計時操作循環(huán)的執(zhí)行結(jié)束。這樣,CPU開銷可減少,能量效率可提高,并且串行存儲器裝置的軟件控制或操作可簡化。
[0056]現(xiàn)在參考圖4,示出了根據(jù)本發(fā)明實施例的示例性主機與串行存儲器裝置布置的示意性框圖400。在此示例中,主機402可經(jīng)由串行接口與串行存儲器裝置404連接。例如,主機402可以是任何適合的控制器(例如,CPU、MCU、通用處理器等),而串行存儲器裝置404可以是任何類型存儲器裝置(例如,SRAM, DRAM、EEPR0M、閃存、CBRAM、磁性RAM、ReRAM等)。串行存儲器裝置404因而能以各式各樣存儲器技術(shù)來實施,例如,非易失性。在某些情況中,串行存儲器裝置404是可被實施在更傳統(tǒng)的非易失性存儲器中或是被實施在CBRAM/ReRAM電阻式切換存儲器中的串行閃存。
[0057]為了主機402與串行存儲器裝置404之間的通信,可包括各種接口信號,例如在SPI接口中。例如,串行時鐘(SCK)可向裝置404提供時鐘,并可用來控制數(shù)據(jù)流進出所述裝置。命令、地址及輸入數(shù)據(jù)(例如,在SI管腳上)可在SCK的上升沿被鎖存,而輸出數(shù)據(jù)(例如,在SO管腳上)可在SCK的下降沿被時鐘輸出。重置管腳(RESET_)可用來終止執(zhí)行中的操作,并且用于重置串行存儲器裝置404的內(nèi)部狀態(tài)機(例如,返回空閑狀態(tài))。只要重置管腳上存在低電平,串行存儲器裝置404便可維持在重置條件中。另外,因為串行存儲器裝置404可包括加電重置電路,所以在加電序列期間在重置管腳上可以沒有任何限制。在某些其它實施方式中,存儲器裝置404可以不包括重置管腳(RESET_),并且可以包括保持管腳(HOLD_)。
[0058]芯片選擇(CS_)可被用來選擇串行存儲器裝置404,例如,從多個存儲器裝置中選擇,或者作為存取所述裝置的一種方式。當芯片選擇信號失效時(例如,在高電平),串行存儲器裝置404也可被取消選擇,并且被置于待機模式中。啟動所述芯片選擇信號(例如,經(jīng)由CS_上從高至低的轉(zhuǎn)換)可用來開始一操作,并且使芯片選擇信號返回高狀態(tài)則可以用來終止操作。對于內(nèi)部自計時操作(例如,編程或擦除循環(huán)),如果芯片選擇在特定進行中操作期間失效,在操作完成之前,串行存儲器裝置404不可進入待機模式。
[0059]寫入保護(WP_)可用來保護寄存器(例如,扇區(qū)保護寄存器)指定要保護的扇區(qū)。例如,這些扇區(qū)可以受保護而無法進行編程與擦除操作。因此,當寫入保護管腳為生效(assert)時,如果編程或擦除命令被送到串行存儲器裝置404,則裝置可忽略此命令并且不實施任何操作。
[0060]在示例性SPI接口中,數(shù)據(jù)可經(jīng)由串行輸入(SI)信號提供至串行存儲器裝置404。串行輸入可用于包括命令與地址序列的數(shù)據(jù)輸入。例如,串行輸入管腳上的數(shù)據(jù)可在SCK的上升沿被鎖存,并且如果裝置被取消選擇(當芯片選擇信號失效時),則串行輸入管腳上的數(shù)據(jù)可被忽略。數(shù)據(jù)可經(jīng)由串行輸出(SO)信號從串行存儲器裝置404輸出。例如,串行輸出上的數(shù)據(jù)可在SCK的下降沿被時鐘輸出,并且當裝置被取消選擇時(例如,當該芯片選擇信號失效時),串行輸出信號可處于高阻抗狀態(tài)。
[0061]現(xiàn)在參考圖5,示出了根據(jù)本發(fā)明實施例的示例性串行存儲器裝置404結(jié)構(gòu)的示意性框圖。例如,串行存儲器裝置404可包括閃存陣列502、緩沖器504以及I/O接口 506。在某些布置中,可提供超過一個緩沖器504,例如,一個緩沖器用于輸入路徑,而另一個緩沖器則用于輸出路徑。另選地或附加地,多個緩沖器可提供來進行多層緩沖。串行存儲器裝置404可配置成數(shù)據(jù)閃存和/或串行閃存裝置。閃存陣列502可被組織成任何適合數(shù)量頁的數(shù)據(jù)。例如,每一頁可包括256或264個字節(jié)的數(shù)據(jù)。類似地,緩沖器504可儲存一數(shù)據(jù)頁。另外,I/O接口 506可在閃存陣列502、緩沖器504以及串行數(shù)據(jù)輸入(SI)與輸出(SO)之間提供連接。例如,I/O接口 506可以是SPI或其它串行類型接口的一部分。
[0062]在一個實施例中,一種執(zhí)行主動輪詢操作的方法可以包括以下步驟:(i)檢測要在串行存儲器裝置中執(zhí)行的自計時操作;(ii)確定主動輪詢模式是否被使能;(iii)確定該自計時操作何時在該串行存儲器裝置中完成執(zhí)行;以及(iv)當自計時操作已完成執(zhí)行并且主動輪詢模式被使能時,向串行存儲器裝置外部提供完成指示。
[0063]現(xiàn)在參考圖6,示出了根據(jù)本發(fā)明實施例關(guān)于自計時內(nèi)部操作完成的通知的示例方法的流程圖600。在602,接收到針對自計時操作的命令(例如,經(jīng)由命令解碼器120)。例如,所述命令可經(jīng)由串行輸入信號提供,并且可以是要在閃存陣列502中的一個或更多個儲存單元上執(zhí)行的編程操作或擦除操作。在604,可接收到用于指示或使能針對自計時操作的主動輪詢的操作碼(例如,在模式檢測器處)。例如,操作碼可經(jīng)由串行輸入信號提供為位串(例如,每次一位)并且可以經(jīng)由SCK被時鐘輸入。例如,SO管腳可響應(yīng)于正在被使能的主動輪詢模式而進入低阻抗狀態(tài)(例如,被驅(qū)動為高或低)。
[0064]在某些情況中,602與604的順序可相反。例如,604中用于使能主動輪詢的操作碼可在提供針對自計時操作的命令之前先被提供。在一個示例中,主動輪詢模式可以被應(yīng)用于接收到的下一個自計時操作操作命令。在另一個示例中,主動輪詢模式可針對任何后續(xù)的自計時操作維持使能。在此情況中,能夠通過施加不同的操作碼來終止主動輪詢模式而重置或離開主動輪詢模式,或是通過其它方式來重置串行存儲器裝置。
[0065]在特定的實施例中,一旦主動輪詢操作被使能(例如,經(jīng)由接收特定的操作碼),串行存儲器裝置可在自計時操作完成執(zhí)行時提供指示,無需來自主機402的其它命令或周期性輪詢等。一旦操作在606完成,串行輸出信號便可在608為生效。例如,一旦編程或擦除操作已完成執(zhí)行,串行輸出信號可從高阻抗狀態(tài)變成邏輯電平(例如,I或O),或是從低阻抗狀態(tài)(例如,低電平)變成另一低阻抗狀態(tài)(例如,高電平),用于指示操作完成。此夕卜,一個或更多個寄存器(例如,狀態(tài)寄存器)也可配合串行輸出信號的啟動而將ready/busyb狀態(tài)位覆寫,以便于指示自計時操作的完成。
[0066]現(xiàn)在參考圖7,示出了根據(jù)本發(fā)明實施例的示例性寄存器與自計時內(nèi)部操作控制的示意性框圖700。例如,寄存器塊702可利用SRAM來實施。寄存器塊702可向編程操作控制706與擦除操作控制708提供算法與選項變量選擇(opt1n variable select1n)。例如,寄存器塊702也可包括具有ready/busyb狀態(tài)位的狀態(tài)寄存器,用于指示存儲器裝置正在執(zhí)行操作還是操作已經(jīng)完成??刂破?04可確定并解碼接收到的命令,并且還可控制對寄存器塊702中的寄存器位進行存取。此外,測試模式(例如,用于決定操作分配等)可用來覆蓋(override)寄存器塊702中的數(shù)據(jù)。寄存器塊702的設(shè)定可以基于各種缺省算法與選項變量或條件設(shè)定,但也可以基于逐批或逐個裝置地編程。另外,用于編程操作、擦除操作以及選項變量或相關(guān)條件設(shè)定的值可在寄存器塊702中獨立地編程。
[0067]可接收重置信號(例如,經(jīng)由RESET_管腳)的加電重置(Power-On Reset,POR)電路或狀態(tài)機716可存取指定的寄存器數(shù)據(jù)部分714,并可從存儲器陣列712的專用部分讀出數(shù)據(jù)。指定的寄存器數(shù)據(jù)部分714也能位于存儲器核712外面。在任何情況中,與存儲器核712相關(guān)的被存取數(shù)據(jù)接著可被加載至寄存器塊702中。這樣,該裝置特有的信息可被編程至存儲器核中,并且當裝置被加電(例如,被VDD電源檢測到)或重置時,此數(shù)據(jù)可被加載至寄存器702中。這是因為包括指定的寄存器數(shù)據(jù)部分714的存儲器核可包括非易失性存儲器。另外,基于不同應(yīng)用的信息可被儲存在非易失性存儲器指定寄存器數(shù)據(jù)部分714中。此外,不同的部件或存儲器核712可獨立地編程(例如,針對不同的應(yīng)用等)。在某些情況中,存儲器的這個專用部分可能不能被用戶存取。然而,某些應(yīng)用則允許對這些專用位置進行存取,例如在測試模式中。
[0068]在一個或更多個測試模式中,控制器704可覆蓋已儲存在寄存器702中的一