專利名稱:與非門快閃存儲器接口設(shè)備的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種接口設(shè)備,具體地講,涉及一種在主處理器和與非門快閃存儲器之間提供接口的與非門快閃存儲器接口設(shè)備。
背景技術(shù):
快閃存儲器是一種非易失性存儲器,其允許在線數(shù)據(jù)編程和刪除??扉W存儲器使用與電可擦可編程只讀存儲器(EEPROM)相同的方式電子地刪除數(shù)據(jù),并且該存儲器可以在一秒或者幾秒內(nèi)被整體地刪除。存儲在快閃存儲器中的數(shù)據(jù)在整個芯片中以塊為單位被刪除,但無法以字節(jié)為單位刪除數(shù)據(jù)??扉W存儲器存儲了可校正的控制程序,使用該控制程序來代替輔助存儲器。
快閃存儲器被分成與非門快閃存儲器和或非門類型快閃存儲器。或非門類型快閃存儲器使用一種接口方式來作為SRAM或者ROM,以便容易地構(gòu)造具有處理器的電路。進一步來講,與非門快閃存儲器比或非門類型快閃存儲器更加成熟地使用了這種接口方式,并具有低經(jīng)濟成本的優(yōu)點。然而,與非門快閃存儲器比或非門快閃存儲器的集成度高。
圖1示出了主處理器10和與非門快閃存儲器30的連接的方框圖。
主處理器10包括多個控制線、多個地址信號線和多個數(shù)據(jù)信號線。與非門快閃存儲器30包括多個控制線和包括從I/O0至I/O7的8比特的I/O(數(shù)據(jù)輸入與輸出)信號線。
主處理器10的控制線(即,CLE(命令鎖存允許)、ALE(地址鎖存允許)、CE(芯片允許)、RE(讀出允許)、WE(寫入允許)控制線)與與非門快閃存儲器30的相應(yīng)控制線連接。主處理器10的多個地址信號線和多個數(shù)據(jù)信號線與與非門快閃存儲器30的I/O信號線連接。與非門快閃存儲器30的R/B(就緒/忙輸出)控制線與處理器10的相應(yīng)控制線連接。
在下文,本說明書將描述上述連接狀態(tài)中的與非門快閃存儲器30的操作,例如,從與非門快閃存儲器30提取數(shù)據(jù)時。主處理器10將CLE控制線的信號設(shè)置為“高”電平,并通過I/O信號線將讀命令傳送給與非門快閃存儲器30。在傳送讀命令之后,主處理器10將ALE控制線的信號設(shè)置為“高”電平,并通過I/O信號線將地址傳送給與非門快閃存儲器30。從主處理器10送出的地址是指定到與非門快閃存儲器30的一個位置,并從該位置中提取數(shù)據(jù)的地址。當收到讀命令和地址時,與非門快閃存儲器30便從內(nèi)部存儲器單元中提取數(shù)據(jù),并將所提取的數(shù)據(jù)傳送給內(nèi)部輸入/輸出緩沖器。同時,與非門快閃存儲器30的R/B控制線的信號電平變?yōu)椤暗汀保@意味著內(nèi)部操作正在被執(zhí)行,即處于忙狀態(tài)。
當與非門快閃存儲器30的內(nèi)部操作完成時,R/B控制線的信號電平變?yōu)椤案摺保⑶覂?nèi)部輸入/輸出緩存器中存儲的數(shù)據(jù),被經(jīng)由I/O信號線,傳輸?shù)街魈幚砥?0。以與一般的SRAM中使用的接口方式相同的接口方式來操作控制線中的CE、RE和WE控制線。
如上所述,為了使用與非門快閃存儲器30,需要電路來操作除了在一般SRAM中使用的CE、RE、WE控制線之外的CLE、ALE和R/B控制線。同樣地,命令、地址和數(shù)據(jù)也必須經(jīng)由I/O信號線在主處理器10和與非門快閃存儲器30之間被傳送。因此,與非門快閃存儲器與存儲器中使用的一般接口方式不兼容。
通常,ALE、CLE和R/B控制線與GPIO端口連接,以便使用與非門快閃存儲器30。另一種方式是將CLE和ALE控制線分別與處理器的第0號地址信號線和第1號地址信號線連接,并將R/B控制線與閑置的上行數(shù)據(jù)線之一連接。
然而,上述方式對于控制與非門快閃存儲器來講過于復(fù)雜,并且整個操作的處理速度緩慢。同樣,因為與非門快閃存儲器30的I/O信號線包括8比特,所以當要求的數(shù)據(jù)寬度等于或大于16比特時,便至少需要兩個與非門快閃存儲器。因此,不得不根據(jù)處理器的類型來增加與非門快閃存儲器的數(shù)目,從而存在整體電路的尺寸擴大的問題。
當與非門快閃存儲器30存儲引導程序代碼時,還存在問題。對于引導程序代碼,當與非門快閃存儲器30以類似軟件方式支持糾錯碼(ECC)校驗功能而不使用額外電路的時候,引導速度很緩慢。因此便需要額外的電路。
發(fā)明內(nèi)容
為解決相關(guān)的技術(shù)領(lǐng)域中的上述問題而開發(fā)了本發(fā)明。因此,本發(fā)明的一個方面是提供一種接口設(shè)備,使其能夠通過僅僅使用在一般存儲器中使用的接口方式來控制與非門快閃存儲器。
本發(fā)明的另一方面是提供一種接口設(shè)備,其即使在連接到所述與非門快閃存儲器的處理器的數(shù)據(jù)寬度增加的時候,也不要求增加與非門快閃存儲器的數(shù)目。
本發(fā)明的另一方面是提供一種接口設(shè)備,其能夠快速地檢測錯誤,在數(shù)據(jù)輸入/輸出與非門快閃存儲器時,以類似硬件的方式支持檢錯功能。
本發(fā)明的其他目的和優(yōu)點,一部分將在隨后的說明書中闡述,一部分根據(jù)本說明書將是顯而易見的,或者可以通過本發(fā)明的實踐而被了解。
根據(jù)本發(fā)明的一方面,提供一種接口設(shè)備,其包括寄存器文件,用于從主處理器接收用于控制與非門快閃存儲器的操作的命令以及用于執(zhí)行該命令的信息,并存儲該命令和操作信息;內(nèi)部存儲器,用于接收和存儲來自主處理器的主數(shù)據(jù)和存儲從與非門快閃存儲器提取出的并被傳輸給所述主處理器的快閃數(shù)據(jù);快閃接口部分,用于控制用于操作所述與非門快閃存儲器的控制信號,輸出所述命令、操作信息或者主數(shù)據(jù),并控制用于通過其輸入所述快閃數(shù)據(jù)的I/O信號線;以及有限狀態(tài)時序機,用于從所述寄存器文件中提取所述命令和操作信息,并控制所述內(nèi)部存儲器和快閃接口部分以執(zhí)行該命令。
所述命令是讀命令、寫指令、擦除命令、無效檢查命令或者寫無效命令。所述操作信息包括分配給所述與非門快閃存儲器的一個位置的初始地址,在該位置中根據(jù)所述命令執(zhí)行操作。
所述控制信號包括ALE(地址鎖存允許)控制信號、CLE(命令鎖存允許)控制信號、CE(芯片允許)控制信號、RE(讀出允許)控制信號和WE(寫入允許)控制信號中的至少一個。此外,所述內(nèi)部存儲器還包括用于產(chǎn)生糾錯碼和在所述主數(shù)據(jù)和快閃存儲器輸入/輸出的時候檢測錯誤的ECC檢查器。
所述寄存器文件配具有用于存儲初始地址的地址寄存器、用于存儲命令的指令寄存器、和狀態(tài)寄存器,用于存儲所述命令的操作狀態(tài)信息以及所述命令的執(zhí)行結(jié)果信息中的至少一個。
根據(jù)本發(fā)明的一個方面,提供了主處理器和包括控制線和I/O信號線的與非門快閃存儲器之間提供接口的一種方法,該方法包括從主處理器接收用于控制所述與非門快閃存儲器的操作的命令,以及執(zhí)行所述命令的操作信息;對所述命令和所述操作信息進行解碼;以及控制所述控制線和I/O信號線以便根據(jù)解碼的命令執(zhí)行操作。
所述命令是讀命令、寫指令、擦除命令、無效檢查命令或者寫無效命令。所述操作信息包括分配給所述與非門快閃存儲器的一個位置的初始地址,在該位置中根據(jù)所述命令執(zhí)行操作。所述控制信號包括ALE控制信號、CLE控制信號、CE控制信號、RE控制信號和WE控制信號。
本發(fā)明的這些和/或其他的目的及優(yōu)點將結(jié)合下列附圖,根據(jù)下述實施例的說明而變得顯而易見,并更容易被理解,其中圖1是示出傳統(tǒng)上主處理器和與非門快閃存儲器之間彼此連接的方框圖;圖2是示出根據(jù)本發(fā)明的一個方面的接口設(shè)備、主處理器和與非門快閃存儲器的連接的方框圖;圖3是示出根據(jù)本發(fā)明的一方面的接口設(shè)備的方框圖;圖4A至4G是示出根據(jù)本發(fā)明的一方面的接口設(shè)備的操作過程的流程圖;和圖5A至5C是示出根據(jù)本發(fā)明的一方面的的主處理器相對于接口設(shè)備的操作過程的流程圖。
具體實施例方式
現(xiàn)在將詳細參考本發(fā)明的實施例,其實例在附圖中示出,其中相同的參考標號始終指得是相同元件。實施例說明如下,以便參照附圖解釋本發(fā)明。
圖2是示出根據(jù)本發(fā)明的一方面的彼此連接的接口設(shè)備20、主處理器10和與非門快閃存儲器的方框圖。如圖2中所示,接口設(shè)備20插入主處理器10和與非門快閃存儲器30之間。
主處理器10具有多個控制線、多個地址(ADDR)信號線和多個數(shù)據(jù)信號線。接口設(shè)備20具有多個控制線、多個數(shù)據(jù)信號線和包括從I/O0至I/O7的8比特的I/O(數(shù)據(jù)輸入/輸出)信號線。與非門快閃存儲器30具有多個控制線和包括I/O0至I/O7的8比特的I/O信號線。
主處理器10的CE(芯片允許)、RE(讀出允許)和WE(寫入允許)控制線與接口設(shè)備20的相應(yīng)的控制線連接。主處理器10的ADDR信號線和DATA信號線分別連接到接口設(shè)備20的ADDR信號線和DATA信號線。
接口設(shè)備20的ALE(地址鎖存允許)、CLE(命令鎖存允許)、CE(芯片允許)、RE(讀出允許)、WE(寫入允許)控制線與與非門快閃存儲器30的相應(yīng)控制線連接。接口設(shè)備20的I/O信號線與與非門快閃存儲器30的I/O信號線連接,而來自與非門快閃存儲器30的R/B(就緒/忙輸出)控制線與接口設(shè)備20的相應(yīng)控制線連接。
在上述的連接狀態(tài)下,主處理器10傳送用于控制與非門快閃存儲器30的操作的命令,并且傳送將執(zhí)行命令必需的操作信息給接口設(shè)備20。當命令涉及讀取操作時,執(zhí)行命令必需的操作信息包括分配給與非門快閃存儲器30中從其提取數(shù)據(jù)的位置的地址。當命令涉及寫操作時,操作信息包括分配給與非門快閃存儲器30中向其存儲數(shù)據(jù)的位置的地址。一旦從主處理器10收到命令,接口設(shè)備20就控制與非門快閃存儲器30以執(zhí)行命令。
例如,當接口設(shè)備20從主處理器10接收到讀命令時,接口設(shè)備20將CLE控制線的信號電平設(shè)置為“高”,并將讀命令經(jīng)由I/O信號線傳送給與非門快閃存儲器30。在傳送讀命令之后,接口設(shè)備20將ALE控制線的信號電平設(shè)置為“高””,并通過I/O信號線將地址傳送給與非門快閃存儲器30。當收到讀命令和地址時,與非門快閃存儲器30便將數(shù)據(jù)從其中的內(nèi)部存儲器單元傳輸給內(nèi)部輸入/輸出緩沖器。然后,R/B控制線的信號電平變?yōu)椤暗汀保⑶遗c非門快閃存儲器顯示為忙狀態(tài)。當與非門快閃存儲器30的操作完成時,R/B控制線的信號電平變?yōu)椤案摺?,并且在?nèi)部輸入/輸出緩沖器中存儲的數(shù)據(jù)被經(jīng)由I/O信號線傳輸?shù)浇涌谠O(shè)備20。接口設(shè)備20將數(shù)據(jù)經(jīng)由DATA信號線傳送給主處理器10。
當接口設(shè)備20從主處理器10接收到寫指令時,按照與讀命令相同的頁序執(zhí)行命令和地址的傳輸。也就是說,接口設(shè)備20將CLE控制線的信號電平設(shè)置為“高”,并經(jīng)由I/O信號線輸出寫指令。接口設(shè)備20將ALE控制線的信號電平設(shè)置為“高”,并經(jīng)由I/O信號線輸出地址。在輸出地址之后,接口設(shè)備20順序地輸入數(shù)據(jù)。
在輸入數(shù)據(jù)之后,接口設(shè)備20再次發(fā)送地址。在寫入命令的情況下,命令被兩次輸入給接口設(shè)備20,第一次命令用于指示將數(shù)據(jù)輸入給與非門快閃存儲器30的內(nèi)部緩沖區(qū),和第二次命令用于指示將數(shù)據(jù)從內(nèi)部緩沖區(qū)傳輸?shù)酱鎯卧:妥x命令一樣,當操作完成時,R/B控制線的信號電平是“高”。接口設(shè)備10通過檢查I/O信號線來確認操作是否順利地執(zhí)行。結(jié)果信息被存儲在接口設(shè)備20中,而主處理器10根據(jù)存儲的信息識別操作結(jié)果。
圖3是示出圖2中的接口設(shè)備20的方框圖。接口設(shè)備20包括寄存器文件22、有限狀態(tài)時序機24、內(nèi)部存儲器26和快閃接口部分28。
寄存器文件22從主處理器10接收命令和執(zhí)行該命令所必需的操作信息,并將其存儲。寄存器文件22配具有指令寄存器和地址寄存器。從主處理器10傳送來的命令和地址分別被存儲在指令寄存器和地址寄存器中。
寄存器文件22也配備有狀態(tài)寄存器。該狀態(tài)寄存器存儲當前執(zhí)行指令的操作狀態(tài)和命令的執(zhí)行結(jié)果等等。主處理器根據(jù)狀態(tài)寄存器識別命令執(zhí)行的結(jié)果。
有限狀態(tài)時序機24提取從主處理器10傳送來的并存儲在寄存器文件22中的命令,并控制包括內(nèi)部存儲器26和快閃接口部分28的接口設(shè)備20的操作,以執(zhí)行與該命令相對應(yīng)的操作。
當有限狀態(tài)時序機24根據(jù)所提取的命令控制操作時,有限狀態(tài)時序機24將執(zhí)行啟動信號輸出給寄存器文件22,并在寄存器文件22中存儲命令執(zhí)行的操作狀態(tài)結(jié)果。在完成根據(jù)命令進行的操作后,有限狀態(tài)時序機24檢查操作結(jié)果,并將其寫入寄存器文件22的狀態(tài)寄存器中,用于主處理器10的參考。
內(nèi)部存儲器26包括引導程序SRAM、緩存器和ECC檢查器。在內(nèi)部存儲器26中具有四個可讀和可寫緩存器。緩存器被分成頁,每一頁具有預(yù)定大小。每一頁具有保留區(qū)域,其為ECC分配字節(jié),并為有效/無效塊標記分配字節(jié)。
內(nèi)部存儲器26的緩存器存儲要從主處理器10傳送到與非門快閃存儲器30的數(shù)據(jù),以及從與非門快閃存儲器30中提取的數(shù)據(jù)。內(nèi)部存儲器26的ECC檢查器,產(chǎn)生與存儲在內(nèi)部存儲器26中的數(shù)據(jù)相對應(yīng)的糾錯碼,以便檢測錯誤。錯誤檢測的結(jié)果被傳輸?shù)郊拇嫫魑募?2,并被存儲在寄存器文件22中。主處理器10根據(jù)寄存器文件22來識別錯誤檢測的結(jié)果。
快閃接口部分28,根據(jù)有限狀態(tài)時序機24的控制來控制ALE、CLE、CE、OE、WE控制線和I/O信號線,以便符合與非門快閃存儲器30的接口標準,并從與非門快閃存儲器30接收R/B控制線的信號。經(jīng)由I/O信號線,快閃接口部分28將從主處理器10傳送來的命令、執(zhí)行命令必需的操作信息以及數(shù)據(jù)輸出到與非門快閃存儲器30。同樣,經(jīng)由I/O信號線,從與非門快閃存儲器30中提取的數(shù)據(jù)被輸入和存儲在內(nèi)部存儲器26中。如果不得不改變與非門快閃存儲器30的接口標準,那么僅僅調(diào)整接口設(shè)備20中的快閃接口29,就足以與改變的標準相符合。
表1示出接口設(shè)備20的引腳陣列。表1中的方向表示信號的流向。也就是說,I是輸入引腳,接口設(shè)備20經(jīng)由該引腳接收信號,O是輸出引腳,接口設(shè)備20經(jīng)由該引腳輸出信號,而I/O是輸入/輸出引腳,接口設(shè)備20經(jīng)由該引腳接收或者輸出信號。
表1
如表1中所示,引腳ADDR(15:0)與主處理器10的ADDR信號線連接,而引腳HOST_DATA(31:0)與主處理器10的DATA信號線連接。引腳CS、OE和WE分別連接到CE、OE和WE控制線。
FLASH_ALE、FLASH_CLE、FLASH_CE、FLASH_RE、FLASH_WE輸出引腳與快閃存儲器30的ALE、CLE、CE、RE和WE控制線連接,而引腳FLASH_BUSY與R/B控制線連接。經(jīng)由引腳CLOCK,輸入用于操作的時鐘信號,而經(jīng)由引腳RESET,從外部輸入復(fù)位信號。
經(jīng)由引腳DATA_WIDTH,輸入數(shù)據(jù)寬度配置信號。根據(jù)輸入的信號,由接口設(shè)備20處理的數(shù)據(jù)寬度發(fā)生變化。引腳FLASH_DATA_WIDTH是為數(shù)據(jù)寬度等于或者大于16比特的與非門快閃存儲器30保留的引腳。同樣,引腳ASIC_BUSY是用于輸出指示接口設(shè)備20是否處于忙狀態(tài)的信號的引腳。
表2和3示出接口設(shè)備20中的存儲映射。表2列出在具有16比特數(shù)據(jù)情況下的接口,而表3列出在具有32比特數(shù)據(jù)情況下的接口。根據(jù)經(jīng)由引腳DATA_WIDTH輸入的數(shù)據(jù)寬度配置信號作出數(shù)據(jù)寬度的變化。也就是說,當經(jīng)由引腳DATA_WIDTH輸入低信號時,接口設(shè)備20給16比特的數(shù)據(jù)提供接口,而在輸入高信號時,接口設(shè)備20給32比特的數(shù)據(jù)提供接口。
(表2)
(表3)
圖4A至4G是示出關(guān)于與非門快閃存儲器的接口設(shè)備20的操作流程的流程圖。
如圖4A中所示,在S40,復(fù)位信號被從外部源輸入到接口設(shè)備20的RESET引腳。在S42,當輸入復(fù)位信號時,寄存器文件22和有限狀態(tài)時序機24被初始化。初始化之后,在S44,命令被從主處理器10輸入接口設(shè)備20。接口設(shè)備20根據(jù)輸入命令的類型控制與非門快閃存儲器30的操作。在S46,如果輸入命令是讀命令,流程處理進行到圖4B。
圖4B示出讀命令的情況。在S56,接口設(shè)備20經(jīng)由I/O信號線輸出值“00h”。讀命令指示從與非門快閃存儲器30提取數(shù)據(jù),而值“00h”被定義為在與非門快閃存儲器30中執(zhí)行的讀操作。在輸出值“00h”之后,在S58,接口設(shè)備20輸出分配給與非門快閃存儲器30中的一個位置的初始地址,從位置經(jīng)由I/O信號線提取數(shù)據(jù)。因為與非門快閃存儲器30具有等于或者大于幾十兆字節(jié)的尺寸,因此需要數(shù)目的地址位大于或者等于20。然而,因為I/O信號線包括8比特,地址至少要被連續(xù)地輸入三次。
當輸入地址時,在S59,接口設(shè)備20檢測R/B是否等于1。如果R/B等于1,與非門快閃存儲器30完成內(nèi)部操作。因此,在S60,接口設(shè)備20順序地讀取從與非門快閃存儲器30的相應(yīng)位置輸出的數(shù)據(jù)。從與非門快閃存儲器30輸出的數(shù)據(jù)被存儲在內(nèi)部存儲器26中。同時,在S62,產(chǎn)生ECC,而在S64,接口設(shè)備20通過檢測該ECC來確定是否存在錯誤。如果確定發(fā)生了錯誤,在S68,結(jié)果T是ECC錯誤,而如果沒有錯誤,在S66,結(jié)果是OK。
參照圖4G,處理命令之后,在S138,接口設(shè)備20接受結(jié)果,而在S140將結(jié)果寫入狀態(tài)寄存器,完成讀命令的操作。
又參照圖4A,在S48,如果輸入命令是寫入命令,處理進行到圖4C。圖4C示出寫入命令的情況。寫入命令指示將數(shù)據(jù)存儲在與非門快閃存儲器30中。在該情況下,在S70,接口設(shè)備20輸出值“80h”。在S72,接口設(shè)備20輸出地址,而在S74,接口設(shè)備20通過使用與讀命令相同的方法輸出數(shù)據(jù)。然后,在S76,接口設(shè)備20輸出值“10h”。如上,寫入命令被輸出兩次。在輸出命令之后,在S78,接口設(shè)備20讀取狀態(tài)寄存器的值。在S80,如果I/O信號線的I/O6等于1或者R/B等于1,則完成內(nèi)部操作。如果不是,則在S80,內(nèi)部操作正在進行處理,即,接口設(shè)備20等待內(nèi)部操作的完成。因為信號線的值被存儲在狀態(tài)寄存器中,接口設(shè)備20,通過訪問存儲在狀態(tài)寄存器中的值來識別內(nèi)部操作的完成。
如果內(nèi)部操作已完成,在S82,接口設(shè)備20確定I/O信號線的I/O0是否等于0。如果寫入命令被成功地執(zhí)行,則I/O0等于0。如果在執(zhí)行寫入命令期間發(fā)生錯誤,則I/O0等于1。因此,確定在命令執(zhí)行期間是否存在錯誤。如果檢測到錯誤,在S86,結(jié)果是寫入錯誤,而如果沒有錯誤,在S84,結(jié)果是OK。然后,用與讀命令處理方法一樣的方法來執(zhí)行處理,如圖4G中所示。
又參照圖4A,在S50,如果輸入命令是擦除命令,處理進行到圖4D。圖4D示出擦除命令的情況。擦除命令指示刪除存儲在相應(yīng)區(qū)域中的數(shù)據(jù)。在該情況下,在S88,接口設(shè)備20輸出值“60h”。在S90,接口設(shè)備輸出地址,而在S92,它輸出“D0h”。在輸出命令之后,在S94,接口設(shè)備20讀取狀態(tài)寄存器的值。在S96,如果I/O信號線的I/O6等于1或者R/B等于1,則內(nèi)部操作完成。如果不是,則在S96,內(nèi)部操作正在處理,即,接口設(shè)備20等待內(nèi)部操作的完成。然后,在S98,接口按照與寫入命令處理相同的方法確定I/O0是否等于0。如果I/O0等于0,在S100,擦除命令被沒有任何錯誤地執(zhí)行,因此結(jié)果是OK。如果不是,在S102,在命令執(zhí)行期間發(fā)生了錯誤,因此結(jié)果是擦除錯誤。然后,以與讀命令處理方法一樣的方法執(zhí)行處理,如圖4G中所示。
回過來參照圖4A,在S52,如果輸入命令是無效檢查命令,處理進行到圖4E。圖4E示出無效檢查命令的情況。在S104,接口設(shè)備20輸出值“50h”。無效檢查命令指示搜索具有至少一個損壞比特的從而不具有可靠性的無效塊。在輸出“50h”之后,在S106,接口設(shè)備20輸出要檢查的塊的地址,而在S107,檢查R/B是否等于1。如果R/B等于1,在S108,接口設(shè)備20讀取數(shù)據(jù),并在S110和S112檢查備用區(qū)域的第6個字節(jié)是否為“FFh”。與非門快閃存儲器30具有頁,其中每一頁具有幾個設(shè)置為備用區(qū)的字節(jié)。無效塊上的信息被存儲在備用區(qū)的第6個字節(jié)中。如果備用區(qū)的第6個字節(jié)的值是“FFh”,在S114,在對應(yīng)的塊中沒有損壞比特,并且結(jié)果是合法(VALID)。如果不是,在S116,結(jié)果是非法(INVALID)。然后,以用于讀命令的處理的方法相同的方法執(zhí)行處理,如圖4G中所示。
回過來參照圖4A,在S54,如果輸入命令是寫無效命令,處理進行到圖4F。圖4F示出寫無效命令的情況。在S118,接口設(shè)備20輸出“50h”,而在S120輸出“80h”。寫無效命令使用無效的塊信息。在輸出“80h”之后,在S124和S126,接口設(shè)備20寫入與備用區(qū)的第6個字節(jié)數(shù)據(jù)的無效塊信息相對應(yīng)的值,并輸出“10h”。在S128,接口設(shè)備20讀取狀態(tài)寄存器的值。在S130,如果I/O信號線的I/O6等于1或者R/B等于1,則內(nèi)部操作完成。如果不是,在S130,內(nèi)部操作正在處理,因此接口設(shè)備等待內(nèi)部操作的完成。如果內(nèi)部操作完成,在S132,接口設(shè)備20確定I/O信號線的I/O0是否等于0。如果I/O0等于0,在S134,結(jié)果是OK。如果不是,在S136,結(jié)果是寫入錯誤。以與讀命令相同的方法執(zhí)行進一步的處理。
圖5A至5C是示出關(guān)于接口設(shè)備20的主處理器10的操作處理的流程圖。
圖5A示出擦除命令的情況。在該情況中,在S200,主處理器10寫入擦除命令,在S202,讀取接口設(shè)備20的狀態(tài),并在S204,檢查接口設(shè)備20是否處于忙狀態(tài)。主處理器通過參考從與非門快閃存儲器30輸出的、由接口設(shè)備20接收的并記錄在寄存器文件22中的R/B控制信號,來識別接口設(shè)備20處于忙狀態(tài)?;蛘撸涌谠O(shè)備20可以在檢查引腳ASCI_BUSY的信號以判斷忙狀態(tài)是否結(jié)束之后,在硬件級中斷主處理器10。如果接口設(shè)備20處于忙狀態(tài),在S202和S204,主處理器等待。當忙狀態(tài)完成時,在S206,主處理器10確定是否連續(xù)地輸出命令。如果有要輸出的命令,重復(fù)上述處理,而如果沒有命令要輸出時,完成處理。
圖5B示出寫入命令的情況。在該情況中,在S210,主處理器10寫入數(shù)據(jù),而在S212輸出寫入命令。在寫入命令之后,在S212和S214,主處理器10讀取接口設(shè)備20的狀態(tài),并檢查接口設(shè)備20是否處于忙狀態(tài)。如果接口設(shè)備20處于忙狀態(tài),在S214和S216,主處理器等待忙狀態(tài)結(jié)束。當忙狀態(tài)結(jié)束時,在S218,主處理器10確定是否連續(xù)地輸出命令。如果有要輸出的命令,重復(fù)上述處理,而如果沒有命令要輸出時,處理結(jié)束。
圖5C示出讀命令的情況。在該情況中,在S220,主處理器10寫入命令,而在S222和S224,讀取接口設(shè)備20的狀態(tài),并檢查接口設(shè)備20是否處于忙狀態(tài)。如果接口設(shè)備20處于忙狀態(tài),在S222和S224,主處理器等待。當忙狀態(tài)結(jié)束,在S226主處理器10讀取數(shù)據(jù)。如果有要輸出的命令,重復(fù)上述處理,而如果沒有命令要輸出時,處理結(jié)束。
根據(jù)上述處理,主處理器10將命令傳送給接口設(shè)備20。
如上,根據(jù)本發(fā)明的一個方面,主處理器10以與一般存儲器的方法相同的接口方法來控制與非門快閃存儲器30。同樣,盡管主處理器10的數(shù)據(jù)寬度變大,也不需要增加與非門快閃存儲器的數(shù)目。同樣,在硬件級上支持檢錯功能,從而防止降低處理速度。
盡管已經(jīng)示出和說明了本發(fā)明的一些實施例,但本領(lǐng)域的普通技術(shù)人員可以理解的是,可以在不脫離由權(quán)利要求書及其等效物定義的本發(fā)明的原理和精神的范圍內(nèi)在該實施例中進行變化。本申請要求以下優(yōu)先權(quán)在韓國知識產(chǎn)權(quán)局中的韓國專利申請2002-30691,申請日2002年5月31日,引用其公開內(nèi)容作為參考。
權(quán)利要求
1.一種用于在主處理器和與非門快閃存儲器之間提供接口的接口設(shè)備,所述接口設(shè)備包括寄存器文件,用于從所述主處理器接收用于控制與非門快閃存儲器的操作的命令以及用于執(zhí)行所述命令的操作信息,并存儲所述命令和操作信息;內(nèi)部存儲器,用于接收和存儲來自主處理器的主數(shù)據(jù),并存儲從與非門快閃存儲器中提取的和被傳輸?shù)剿鲋魈幚砥鞯目扉W數(shù)據(jù);快閃接口部分,用于控制用于操作所述與非門快閃存儲器的控制信號,輸出所述命令、操作信息或者主數(shù)據(jù),以及控制I/O信號線,所述快閃數(shù)據(jù)經(jīng)由該I/O信號線輸入給所述與非門快閃存儲器;以及有限狀態(tài)時序機,用于從所述寄存器文件提取所述命令和操作信息,并控制所述內(nèi)部存儲器和所述快閃接口部分以執(zhí)行所述命令。
2.根據(jù)權(quán)利要求1所述的接口設(shè)備,其中所述命令是讀命令、寫指令、擦除命令、無效檢查命令或者寫無效命令。
3.根據(jù)權(quán)利要求1所述的接口設(shè)備,其中所述操作信息包括分配給所述與非門快閃存儲器的一個位置的初始地址,在該位置上根據(jù)所述命令執(zhí)行操作。
4.根據(jù)權(quán)利要求1所述的接口設(shè)備,其中所述控制信號至少包括ALE(地址鎖存允許)控制信號、CLE(命令鎖存允許)控制信號、CE(芯片允許)控制信號、RE(讀出允許)控制信號和WE(寫入允許)控制信號之中的一個。
5.根據(jù)權(quán)利要求4所述的接口設(shè)備,其中所述接口設(shè)備將所述CLE控制信號的信號電平設(shè)置為預(yù)定狀態(tài),并經(jīng)由所述I/O信號線將所述讀命令傳送給所述與非門快閃存儲器,以便將所述ALE控制信號的信號電平設(shè)置為預(yù)定狀態(tài),并經(jīng)由所述I/O信號線將用于提取數(shù)據(jù)的地址傳送給所述與非門快閃存儲器,并將所述數(shù)據(jù)傳送給所述主處理器。
6.根據(jù)權(quán)利要求4所述的接口設(shè)備,其中所述接口設(shè)備將所述CLE控制信號的信號電平設(shè)置為預(yù)定狀態(tài),并經(jīng)由所述I/O信號線輸出寫入命令,將所述ALE控制信號的信號電平設(shè)置在預(yù)定狀態(tài),以及經(jīng)由所述I/O信號線將地址輸出兩次,以便將數(shù)據(jù)存儲在所述與非門快閃存儲器中的位置上。
7.根據(jù)權(quán)利要求6所述的接口設(shè)備,其中將所述命令輸入給接口設(shè)備,其中第一次命令用于指示所述接口設(shè)備將數(shù)據(jù)輸入給所述與非門快閃存儲器,而第二次命令用于指示所述接口設(shè)備將來自所述與非門快閃存儲器的數(shù)據(jù)傳輸?shù)酱鎯卧?br>
8.根據(jù)權(quán)利要求4所述的接口設(shè)備,其中所述內(nèi)部存儲器包括引導程序SRAM、緩存器和ECC檢查器。
9.根據(jù)權(quán)利要求4所述的接口設(shè)備,其中所述快閃接口部分控制ALE、CLE、CE、OE、WE控制信號和所述I/O信號線,以便與所述與非門快閃存儲器的接口標準相一致。
10.根據(jù)權(quán)利要求9所述的接口設(shè)備,其中當所述與非門快閃存儲器的接口標準改變時,僅僅調(diào)整所述快閃接口部分來與已改變的標準相符合。
11.根據(jù)權(quán)利要求1所述的接口設(shè)備,其中所述內(nèi)部存儲器包括緩存器,用于存儲所述主數(shù)據(jù)和所述快閃數(shù)據(jù),以及引導程序存儲器,用于存儲用于引導系統(tǒng)的引導程序代碼。
12.根據(jù)權(quán)利要求11所述的接口設(shè)備,其中所述內(nèi)部存儲器還包括ECC檢查器,用于產(chǎn)生糾錯碼并且在所述主數(shù)據(jù)和快閃存儲器被輸入/輸出的時候檢測錯誤。
13.根據(jù)權(quán)利要求12所述的接口設(shè)備,其中所述緩存器被分成頁,每一頁具有預(yù)定尺寸,并具有保留區(qū)域,該保留區(qū)域被分配了用于ECC的字節(jié)和用于無效/有效塊標記的字節(jié)。
14.根據(jù)權(quán)利要求1所述的接口設(shè)備,其中所述寄存器文件包括地址寄存器,用于存儲初始地址。
15.根據(jù)權(quán)利要求1所述的接口設(shè)備,其中所述寄存器文件包括命令寄存器,用于存儲命令。
16.根據(jù)權(quán)利要求1所述的接口設(shè)備,其中所述寄存器文件包括狀態(tài)寄存器,用于存儲命令操作狀態(tài)信息和命令執(zhí)行結(jié)果信息中的至少一個。
17.一種用于在主處理器和具有控制線和I/O信號線的與非門快閃存儲器之間提供接口的方法,所述方法包括從所述主處理器接收用于控制所述與非門存儲器的操作的命令,以及用于執(zhí)行所述命令的操作信息;對所述命令和所述操作信息進行解碼;以及控制所述控制線和所述I/O信號線,以便根據(jù)所述已解碼命令來執(zhí)行操作。
18.根據(jù)權(quán)利要求17所述的方法,其中對控制線的控制包括通過在數(shù)據(jù)輸入所述與非門快閃存儲器或從所述與非門快閃存儲器輸出時產(chǎn)生糾錯碼來檢測錯誤。
19.根據(jù)權(quán)利要求17所述的方法,其中所述命令是讀命令、寫指令、擦除命令、無效檢查命令或者寫無效命令。
20.根據(jù)權(quán)利要求17所述的方法,其中所述操作信息包括分配指定到所述與非門快閃存儲器一個位置的初始地址,在該位置上根據(jù)所述命令執(zhí)行操作。
21.根據(jù)權(quán)利要求17所述的方法,其中所述控制信號包括ALE(地址鎖存允許)控制信號、CLE(命令鎖存允許)控制信號、CE(芯片允許)控制信號、RE(讀出允許)控制信號或者WE(寫入允許)控制信號中的至少一個。
22.根據(jù)權(quán)利要求17所述的方法,其中當所述命令是讀命令時,所述方法還包括經(jīng)由所述I/O信號線輸出值‘00h’,以便在所述與非門快閃存儲器中執(zhí)行讀操作,其中所述讀命令指示從所述與非門快閃存儲器中提取數(shù)據(jù);經(jīng)由所述I/O信號線輸出分配給所述與非門快閃存儲器中一個位置的初始地址,從所述位置上提取數(shù)據(jù);以及從所述與非門快閃存儲器中的所述位置順序地讀取數(shù)據(jù)。
23.根據(jù)權(quán)利要求22所述的方法,還包括在所述主處理器和所述與非門快閃存儲器之間讀取接口設(shè)備的狀態(tài),通過參考從所述與非門快閃存儲器輸出的R/B控制信號來檢查所述接口設(shè)備是否處于忙狀態(tài),以及確定是否連續(xù)地輸出命令。
24.根據(jù)權(quán)利要求17所述的方法,其中當所述命令是一次寫入命令時,所述方法還包括經(jīng)由所述I/O信號線兩次輸出值‘80h’,以便在所述與非門快閃存儲器中執(zhí)行寫入操作,其中所述寫入命令指示在所述與非門快閃存儲器中的一個位置存儲數(shù)據(jù);經(jīng)由所述I/O信號線輸出分配給所述與非門快閃存儲器中從其存儲數(shù)據(jù)的一個位置的起始地址;輸出值‘10h’;以及從所述與非門快閃存儲器中的所述位置讀取狀態(tài)寄存器的值。
25.根據(jù)權(quán)利要求24所述的方法,還包括讀取在所述主處理器和所述與非門快閃存儲器之間的接口設(shè)備的狀態(tài),通過參考從所述與非門快閃存儲器輸出的R/B控制信號來檢查所述接口設(shè)備是否處于忙狀態(tài),以及確定是否連續(xù)地輸出命令。
26.根據(jù)權(quán)利要求17所述的方法,其中當所述命令是擦除命令時,所述方法還包括經(jīng)由所述I/O信號線兩次輸出值‘60h’,以便在所述與非門快閃存儲器中執(zhí)行擦除操作,其中所述擦除命令指示從所述與非門快閃存儲器中一個位置上刪除數(shù)據(jù);經(jīng)由所述I/O信號線輸出分配給所述與非門快閃存儲器中一個位置的初始地址,從所述位置刪除數(shù)據(jù);經(jīng)由所述I/O信號輸出值‘D0h’;以及從所述與非門快閃存儲器中的所述位置讀取狀態(tài)寄存器的值。
27.根據(jù)權(quán)利要求26所述的方法,還包括在所述主處理器和所述與非門快閃存儲器之間讀取接口設(shè)備的狀態(tài),通過參考從所述與非門快閃存儲器輸出的R/B控制信號來檢查所述接口設(shè)備是否處于忙狀態(tài),以及確定是否連續(xù)地輸出命令。
28.根據(jù)權(quán)利要求27所述的方法,還包括在檢查引腳ASCI_BUSY的信號以確定所述忙狀態(tài)是否結(jié)束之后,在硬件級中斷上所述主處理器。
29.根據(jù)權(quán)利要求17所述的方法,其中當所述命令是無效檢查命令時,所述方法還包括經(jīng)由所述I/O信號線輸出值‘50h’,以便執(zhí)行無效檢查操作,其中所述無效檢查命令指示搜索具有至少在所述與非門快閃存儲器中的一個位置中一個損壞比特的無效塊;輸出所述與非門快閃存儲器中要被檢查的塊的地址;讀出數(shù)據(jù),并檢查所述與非門快閃存儲器中的備用區(qū)的第6個字節(jié)是否為‘FFh’,其中無效塊的信息被存儲在所述備用區(qū)的所述第6個字節(jié)中。
30.根據(jù)權(quán)利要求17所述的方法,其中當所述備用區(qū)是‘FFh’時則沒有損壞比特。
31.根據(jù)權(quán)利要求17所述的方法,其中當所述命令是寫無效命令時,所述方法還包括經(jīng)由所述I/O信號線輸出值‘50h’和值‘80h’,以便在所述與非門快閃存儲器中執(zhí)行寫無效操作,其中所述寫無效命令使用在所述與非門快閃存儲器中的一個位置中的無效塊信息;寫入與所述與非門快閃存儲器中的備用區(qū)的第6個字節(jié)數(shù)據(jù)的無效塊信息相對應(yīng)的值;經(jīng)由所述I/O信號輸出值‘10h’;以及從所述與非門快閃存儲器中的所述位置讀取狀態(tài)寄存器的值。
全文摘要
一種用于在主處理器和與非門快閃存儲器之間提供接口的接口設(shè)備及其方法,包括寄存器文件、內(nèi)部存儲器、快閃接口部分和有限狀態(tài)時序機。寄存器文件從主處理器接收用于控制與非門快閃存儲器的操作的命令以及用于執(zhí)行命令的操作信息,并存儲該命令和該操作信息。快閃接口部分控制用于操作與非門快閃存儲器的控制信號,輸出命令、操作信息或者主數(shù)據(jù),并控制I/O信號線,快閃數(shù)據(jù)經(jīng)由該I/O信號線輸入給與非門快閃存儲器。有限狀態(tài)時序機從寄存器文件提取命令和操作信息,并控制內(nèi)部存儲器和快閃接口部分以執(zhí)行命令。
文檔編號G06F13/16GK1484129SQ0312747
公開日2004年3月24日 申請日期2003年5月31日 優(yōu)先權(quán)日2002年5月31日
發(fā)明者金鎮(zhèn)守, 金容濟, 表辰哲 申請人:三星電子株式會社