專利名稱:管理快閃存儲器中掛起請求的方法及系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種快閃存儲設(shè)備以及類似的非易失性電子設(shè)備,尤其涉及一 種快閃存儲設(shè)備中的掛起請求。
背景技術(shù):
快閃存儲設(shè)備是應(yīng)用廣泛的便捷的電子存儲設(shè)備??扉W存儲設(shè)備提供數(shù)據(jù) 的非易失性存儲,且亦允許將該數(shù)據(jù)編程到該存儲器中及從該存儲器擦除多 次,因此有大量的靈活應(yīng)用及使用。
現(xiàn)今的快閃存儲器設(shè)備包括執(zhí)行該快閃存儲器所有的修改操作的嵌入方 法或算法,其是通過存儲于只讀存儲器(ROM)中的代碼實現(xiàn)且由微控制器執(zhí) 行。該修改操作包括諸如以數(shù)據(jù)對該快閃存儲器進(jìn)行編程、從該快閃存儲器擦 除數(shù)據(jù)等操作。由于該快閃存儲單元的物理結(jié)構(gòu)及該單元陣列的排列, 一些修 改操作需要較長的執(zhí)行時間。由于這些原因,快閃存儲器須具有這樣一種特性, 即可對諸如編程或擦除的較長修改操作掛起一段時間以允許用戶立即存取該 快閃存儲器。例如,當(dāng)該用戶需讀取該快閃存儲器中的一些陣列位置而其中之 一的較長修改操作正在運行時,該用戶可通過如該快閃存儲器的輸入/輸出 (I/O)焊盤之類的命令接口向該快閃存儲器發(fā)出掛起請求(命令)。
該命令接口 (微控制器)對該掛起命令進(jìn)行解碼,且當(dāng)該修改操作的掛起 在預(yù)定時間內(nèi)完成,容許該用戶所需的讀取操作(或其他的用戶執(zhí)行的修改操 作)存取該快閃存儲器。該用戶的操作完成后,恢復(fù)命令使該中斷的修改操作 在該掛起點恢復(fù)運行,并且正確終止,如同該操作所應(yīng)當(dāng)終止的那樣。
一般的快閃存儲器中,以軟件模式管理用戶的掛起請求,即利用可實現(xiàn)該 嵌入方法或算法的軟件代碼。大多數(shù)快閃存儲器的實現(xiàn)中,當(dāng)修改操作期間發(fā) 生掛起請求時,在寄存器中設(shè)置標(biāo)志。該嵌入軟件代碼使用查詢指令通過檢查或測試該寄存器來檢查該用戶是否發(fā)出掛起請求。查詢后,若該寄存器標(biāo)志指 示掛起請求已發(fā)出,該嵌入軟件代碼請求跳轉(zhuǎn)至某個為掛起序列的代碼序列。 該掛起序列通過關(guān)斷所有用于運行該修改操作的電荷泵及高電壓且保存恢復(fù) 該修改操作時使用的配置(如狀態(tài)變量及時間安排參數(shù))。
必須定期地執(zhí)行上述該標(biāo)志的軟件查詢來檢査該寄存器及判定掛起請求 是否發(fā)生??筛鶕?jù)該快閃存儲器的預(yù)定義的時間特征,稱為"掛起時間",來 判定査詢的數(shù)量,即査詢之間的時間量。這是從掛起請求至該掛起完成之間(該 修改操作的中斷)所允許的最大時間量,其后允許用戶存取。為了滿足該掛起 時間,所執(zhí)行的查詢需在軟件代碼占最小比例。這要求該嵌入代碼中所包括的 查詢代碼指令(比較指令)的數(shù)量最小,以及需要相等數(shù)量的跳轉(zhuǎn)指令(或類 似指令),所述跳轉(zhuǎn)指令在發(fā)現(xiàn)該寄存器標(biāo)志已設(shè)置時使該代碼跳轉(zhuǎn)至存儲該 掛起序列的代碼分枝。
由此,任意兩條査詢之間的時間安排期間必須保證滿足該掛起時間,就需 要相對大量的査詢指令。此外,該指令數(shù)量的增加使得復(fù)雜性及該嵌入軟件代 碼的長度增加?,F(xiàn)有快閃存儲器較復(fù)雜,其中的嵌入代碼必須執(zhí)行幾種類型的 操作及特征,包括工廠程序、增強工廠程序、扇區(qū)的非易失性保護(hù)等;并且多 級快閃存儲設(shè)備需要附加的復(fù)雜算法。重要的是,在不額外增加該嵌入代碼的 長度且遵守該設(shè)備所需的時間安排的情況下能夠?qū)崿F(xiàn)該些特征。由此,盡可能 地優(yōu)化及減少該存儲于該快閃設(shè)備ROM或SRAM嵌入代碼的長度以改進(jìn)區(qū)域效 率是重要的,并且,更重要的是,減少執(zhí)行代碼所需持續(xù)時間以遵守該時間條 件。例如,若該嵌入代碼在修改操作期間執(zhí)行1000次査詢指令,且執(zhí)行該指 令的該微控制器時鐘為100納秒,則單單用于執(zhí)行這些査詢就多花了 IO微妙。 該缺陷在各存儲單元中可存儲多位(bit)的多級快閃設(shè)備中尤為明顯,所述 多級快閃設(shè)備中該嵌入代碼重復(fù)執(zhí)行極多次的指令序列。由于必須遵守査詢之 間的時間為該設(shè)備的掛起時間,向該嵌入代碼加入新的代碼行及特征必然會增 加代碼指令的數(shù)量。
因此,需要一種管理快閃存儲設(shè)備中掛起請求的裝置或方法,其不增加執(zhí) 行該嵌入代碼所需的持續(xù)時間也不減少該代碼的長度以及存儲該代碼的空間。本發(fā)明解決了該需求。
發(fā)明內(nèi)容
本發(fā)明涉及快閃存儲設(shè)備中的掛起請求管理。本發(fā)明之一方面, 一種管理 快閃存儲器中掛起請求的系統(tǒng),包括執(zhí)行快閃存儲陣列修改操作的微控制器; 耦合至所述微控制器且存儲掛起序列代碼的存儲器,所述掛起序列代碼由所述 微控制器執(zhí)行時用于實現(xiàn)掛起序列以使所述修改操作掛起;及耦合至所述微控
制器及所述存儲器的掛起電路,其中所述掛起電路從用戶處接收掛起請求以掛 起所述修改操作,并且其中所述掛起電路開始執(zhí)行所述掛起序列代碼。 本發(fā)明之另一方面, 一種管理快閃存儲器中掛起請求的方法,包括從用戶
處接收掛起請求信號以掛起快閃存儲陣列的修改操作;鎖存所述掛起請求信號 直至所述修改操作可被掛起而不會造成所述修改操作的錯誤;及通過執(zhí)行存儲 于存儲器的掛起序列代碼以掛起所述修改操作。
本發(fā)明之再一方面, 一種管理快閃存儲器中掛起請求的方法,包括執(zhí)行所 述快閃存儲器中的嵌入軟件代碼指令一實現(xiàn)快閃存儲陣列的修改操作;從用戶 處接收掛起請求信號以掛起所述修改操作;及不執(zhí)行檢査所述掛起請求是否己 收到的軟件代碼指令而使用硬件掛起電路掛起所述修改操作。
本發(fā)明提供了不必使用由該微控制器執(zhí)行的嵌入代碼中的軟件查詢而可 正確及有效管理修改操作中快閃存儲設(shè)備的掛起管理。這使得該代碼更為緊 湊,藉此節(jié)省了存儲區(qū)域及成本。此外,由于執(zhí)行該更緊湊代碼所需的持續(xù)時 間減少,本發(fā)明在修改操作的時間安排上具有優(yōu)點,使得更容易滿足快閃存儲 設(shè)備的該掛起時間安排條件。
圖1為說明本發(fā)明的硬件快閃存儲系統(tǒng)的方塊圖2為說明圖1的快閃存儲系統(tǒng)所使用的邏輯電路及一些元件的實例的示 意圖3為說明本發(fā)明的管理快閃存儲設(shè)備中掛起請求的方法的流程圖。
具體實施例方式
本發(fā)明涉及快閃存儲設(shè)備及類似的非易失性電子設(shè)備,尤其涉及快閃存儲 設(shè)備中的掛起請求。以下作為專利申請及其要件而提供的描述使得本領(lǐng)域的技 術(shù)人員能夠制造及利用本發(fā)明。較佳實施例的多種修改以及本文中所描述的普 遍原理及特征對于本領(lǐng)域的技術(shù)人員來說是清楚明了的。由此,本發(fā)明并不意 欲限制為所示的實施例,而應(yīng)具有與本文所描述的原理及特征相一致的最大范 圍。
本發(fā)明主要根據(jù)某些實現(xiàn)中的某些系統(tǒng)來描述。然而,本領(lǐng)域的技術(shù)人員 可容易地認(rèn)識到此方法及系統(tǒng)可在其他實現(xiàn)中有效運行。例如,可用于本發(fā)明 的處理元件及存儲器可有多種其他形式。本發(fā)明亦以具有特定步驟的某些方法 為背景描述。然而,對于其他具有與本發(fā)明不一致的不同及/或附加步驟,該 方法及系統(tǒng)亦可有效運行。
本發(fā)明描述了一種可以正確及有效地管理在修改操作期間用戶發(fā)出的掛 起請求的構(gòu)架,其不使用嵌入代碼中由微控制器執(zhí)行的軟件査詢,由此達(dá)成修 改操作中在時間安排上的優(yōu)點以及更短、更緊湊的代碼從而節(jié)省快閃設(shè)備代碼
存儲存儲器,如ROM中的存儲區(qū)域。
為了更具體地描述本發(fā)明的特征,敬請結(jié)合下文的描述并參見圖1至3。
圖1為本發(fā)明的不使用軟件査詢來管理掛起請求的快閃存儲系統(tǒng)10的方 塊圖。系統(tǒng)10可被包含在電子設(shè)備、計算機,或者其他使用快閃存儲器來存 儲數(shù)據(jù)的設(shè)備或裝置。公知地,該裝置可包括一或多種處理器(微處理器、專 用集成電路等)、各種類型的存儲器及輸入/輸出(I/O)元件(網(wǎng)絡(luò)接口,諸 如鍵盤或按鈕的設(shè)備、顯示屏、打印機、鼠標(biāo)、麥克風(fēng)及掃描儀等)。更具體 地,本發(fā)明的快閃存儲系統(tǒng)10包括微控制器12、只讀存儲器(ROM) 14及快 閃存儲陣列16,以及多種下文所述的其他元件。
微控制器12用于控制快閃存儲系統(tǒng)10的操作,包括從R0M14獲取代碼并 執(zhí)行之,以及將數(shù)據(jù)存儲至快閃存儲陣列16或從快閃存儲陣列16中獲取。微 控制器12可為任意一種合適的控制器設(shè)備,包括微控制器、專用集成電路(ASICs)或其他控制器。微控制器12可包括多個寄存器13,所述寄存器在數(shù) 字信息載入及存儲于其中時,控制快閃存儲系統(tǒng)10的操作參數(shù)。
只讀存儲器(ROM) 14存儲程序指令(即嵌入代碼),其用于實現(xiàn)對快閃 存儲系統(tǒng)10進(jìn)行修改或操縱的操作。R0M14儲存由微控制器12獲取并且為操 作該快閃存儲系統(tǒng)而執(zhí)行的指令。盡管本說明書中將存儲器14稱為"ROM", 但其他實施例中可使用其他類型的存儲器作為存儲器14來存儲該嵌入代碼, 如靜態(tài)隨機存取存儲器(SRAM)或其他公知的類型。
快閃存儲陣列16為存儲單元陣列,且為可存儲數(shù)據(jù)且容許擦除數(shù)據(jù)及/或 以其他數(shù)據(jù)改寫多次的系統(tǒng)10中的非易失性存儲器存儲。典型的快閃存儲單 元可一次將該存儲器內(nèi)的所有內(nèi)容快速擦除,這與需要單獨擦除各存儲單元的 通用電可擦除可編程只讀存儲器(EEPR0M)不同。陣列16根據(jù)實施例的需要 可包括單級單元或多級單元。單級單元存儲兩個不同的電荷值(0或1),而 多級單元可存儲四個或更多不同的電荷值,由此每單元可存儲更多數(shù)據(jù),但需 更長的執(zhí)行操作時間。
如圖1所示,快閃存儲系統(tǒng)10剩余的硬件元件在本發(fā)明中用來管理用戶 的掛起請求。其他在圖1中未示出的快閃存儲系統(tǒng)通常包括的元件與本發(fā)明關(guān) 系不大。
觸發(fā)器20能夠接收用戶的掛起請求22,所述掛起請求要求中斷及暫停執(zhí) 行當(dāng)前修改操作以使該用戶的其他操作可存取該快閃存儲器,如讀取操作。該 用戶的操作一旦完成,恢復(fù)執(zhí)行該己掛起修改操作。
例如,該用戶可使用諸如I/O焊盤的命令用戶接口 (CUI)輸入掛起請求 命令。圖1中示為D觸發(fā)器的觸發(fā)器20,以電壓VDD作為D輸入端,且以掛起 請求22作為其時鐘輸入。當(dāng)該掛起請求上升為高電平時,觸發(fā)器20鎖存該掛 起請求。該觸發(fā)器產(chǎn)生該高電平輸出信號SUSP—REQ。當(dāng)該修改操作結(jié)束時或者 下一操作或掛起開始時,由邏輯電路(未示)發(fā)出重置觸發(fā)器20的 RESET—MICRO—N信號。
.多路復(fù)用器24、邏輯電路26及觸發(fā)器28組成邏輯開關(guān)30以在適當(dāng)之時 應(yīng)答該用戶的掛起請求。邏輯電路26檢査該掛起請求信號SUSP—REQ是否允許通過,即是否應(yīng)答及執(zhí)行修改操作的掛起。僅當(dāng)該修改操作(及嵌入代碼)處 于可被中斷的點或狀態(tài)之時,即"真條件",該掛起請求被應(yīng)答且成為可執(zhí)行 的。邏輯電路26根據(jù)當(dāng)前運行的修改操作的類型(程序、擦除)以及根據(jù)微 控制器12當(dāng)前執(zhí)行的指令在適當(dāng)?shù)臅r間提供真條件。
一般地,該真條件根據(jù)
狀態(tài)變量及微處理器輸出而引發(fā)。參考圖2描述邏輯電路26的一個實例。
在檢測到該真條件為止,多路復(fù)用器24選擇該多路復(fù)用器24的接地的 FALSE輸入。 一旦邏輯電路26檢測到允許應(yīng)答該掛起請求的真條件,邏輯電路 26向多路復(fù)用器24發(fā)送該適當(dāng)信號,且該多路復(fù)用器24從FALSE輸入轉(zhuǎn)換為 連接該觸發(fā)器20的SUSP—REQ信號的TRUE輸入。該SUSP—REQ信號由多路復(fù)用 器24輸出,且輸入至觸發(fā)器28的時鐘輸入端。觸發(fā)器28將SUSP一REQ信號鎖 存為SUSP—REQ—ACC,且在其輸出端以高電平輸出該信號。由此,包括多路復(fù)用 器24、邏輯電路26及觸發(fā)器28的邏輯開關(guān)30在該掛起請求被應(yīng)答且將實現(xiàn) 該修改操作的掛起之時,即掛起序列開始,提供高電平的該SUSP一REQ—ACC信 號。
觸發(fā)器32為D型且在其D輸入端接收該SUSP—REQ一ACC信號。微控制器12 發(fā)出的時鐘信號輸入該觸發(fā)器32的時鐘輸入端,且該觸發(fā)器32的Q輸出端輸 出FORCE—SUSP—INSTR信號。如前所述的該用戶接口發(fā)出的RESET—MICRO—N信 號重置觸發(fā)器32。該FORCE一SUSP一INSTR信號與該微控制器時鐘信號同步。該 同步確保該FORCE—SUSP—INSTR信號的正確功能性,其包括兩種功能。第一功 能為重置觸發(fā)器28,其通過將該F0RCE一SUSP—INSTR信號反饋至觸發(fā)器28的重 置端(且在反相器29處反相)而達(dá)成。當(dāng)該FORCE一SUSP一INSTR信號上升為高 電平時,該掛起請求已被應(yīng)答,這使得在該微控制器的下一活動時鐘跳變時關(guān) 斷該F0RCE—SUSP—INSTR,以使從R0M14讀取該正確的掛起代碼指令(參加下文)。
FORCE一SUSP一INST的第二功能為將多路復(fù)用器(或開關(guān))36的輸入轉(zhuǎn)換為 存儲于R0M14中已知儲存位置的固定指令SUSP—INSTR。該SUSP—INSTR指令為 轉(zhuǎn)移至ROM14中第一地址的一個跳轉(zhuǎn)(JMP),所述地址中存儲用于掛起序列 的該代碼指令。由此,在FORCE一SUSP一INSTR上升為高電平的時鐘周期內(nèi),多 路復(fù)用器36的輸出(CURR一INSTR)為SUSP一INSTR。微控制器12接收該輸出(SUSP一INSTR),其中該微控制器邏輯電路將該輸出解碼并執(zhí)行之以使指向下 一代碼的指針移動(跳轉(zhuǎn))至該由SUS一INST指示的R0M14中的地址。微控制 器12的算術(shù)邏輯單元(ALU)載入位于ROM地址邏輯電路38的第一計數(shù)器地 址,該邏輯電路向R0M14輸出該地址以讀取該位于該地址的指令,該指令為該 掛起序列的第一指令。由此該SUSP_INST輸入指示該微控制器載入該掛起序列 代碼的第一指令。由于該下一微處理器時鐘周期將FORCE一SUSP一INSTR設(shè)置為 低電平(在上述的觸發(fā)器28處),然后多路復(fù)用器36轉(zhuǎn)換為其另一輸入 NEXT—INSTR以將該R0M14中的掛起序列的下一條指令輸入多路復(fù)用器36,然 后從該多路復(fù)用器將該指令輸出至微控制器12。 ROM地址邏輯電路38總是提 供該掛起序列的下一條指令的地址以供執(zhí)行。
該掛起序列的順序指令類似地連續(xù)提供至微控制器12直至該掛起序列位 于該ROM中的所有指令已被微控制器12載入及執(zhí)行。該掛起序列關(guān)斷所有用 于運行該已掛起修改操作的電荷泵(未示)以及高電壓,且在恢復(fù)該修改操作 時,保存所使用的配置變量及值,如狀態(tài)變量及時間安排值。該些配置變量及 值可存儲于方便的存儲位置,例如未示邏輯元件的寄存器。
一旦該掛起序列完成,該快閃設(shè)備10的修改操作已完全掛起,且向觸發(fā) 器20提供該RESET一MICRO一N信號以關(guān)斷該觸發(fā)器。然后該用戶通過該快閃存 儲設(shè)備執(zhí)行所需操作,如在該快閃系統(tǒng)10的讀取陣列模式下從陣列16的讀取 操作。
某些點上,當(dāng)該用戶的讀取操作(及/或其他操作)完成,該快閃存儲設(shè) 備恢復(fù)該中斷的修改操作。微控制器12讀取該由掛起序列保存的配置變量及 值,接通必需的電荷泵及電壓,且恢復(fù)該中斷的修改操作。
圖2為電路50的實例的示意圖,所述電路50實現(xiàn)了圖1的該快閃存儲設(shè) 備10的邏輯電路26,以及實現(xiàn)了圖1所示的一些其他元件。當(dāng)條件適于應(yīng)答 該掛起請求及啟動該掛起序列時,邏輯電路26向多路復(fù)用器24生成"真條件"。 該真條件的生成及該掛起序列的啟動根據(jù)任何實施例中的該特定中斷修改操 作及其特性與必要條件決定,并且可根據(jù)特定實現(xiàn)所需的該修改操作,如快閃 儲存器是單級或多級的等決定。電路50是用于多級快閃存儲設(shè)備的電路實例,例如來自加利福尼亞州圣何塞的愛特梅爾股份有限公司(AtmelCorp.)多級快 閃存儲設(shè)備。
電路50將邏輯電路26實現(xiàn)為若干個處理狀態(tài)變量及微控制器輸出52的 邏輯門。通過該微控制器或通過內(nèi)部邏輯電路來設(shè)置諸如ERASE一STAT、 SOFTP—STAT、 PROG—COMM及PGM_ALL0_STAT的狀態(tài)變量。例如, ERASE_STAT為由該微控制器設(shè)置的向電路指示擦除操作正在進(jìn)行的狀態(tài)變 量。SOFTP—STAT為由該微控制器設(shè)置的指示恢復(fù)相正在進(jìn)行的狀態(tài)變量。 PGM_ALL0—STAT為由該微控制器設(shè)置的指示程序相正在進(jìn)行的狀態(tài)變量。 PROGj:OMM為當(dāng)該用戶提供緩沖程序命令時由該用戶命令接口設(shè)置的信號。 諸如VERIFY、 INC—DAC、 CAN_SUSPEND及MODIFY的微控制器輸出為該 微控制器根據(jù)該嵌入代碼生成的輸出信號。例如,VERIFY為激活及指示校驗 操作的微控制器輸出,所述校驗操作用于校驗已完成操作,而INC—DAC可為 另一微控制器輸出;例如,在所示實現(xiàn)中,INC—DAC為一微控制器輸出,其 累加該"DAC"輸出值以增加在對快閃存儲陣列16中的單元進(jìn)行編程或擦除 時由獨立的數(shù)字-模擬控制器(DAC)所生成的電壓。CAN—SUSPEND為指示 可在該當(dāng)前操作期間接收掛起請求的微控制器輸出,及MODIFY為指示修改操 作已開始的命令用戶接口輸出。
邏輯電路26包括接收該SOFTP—STAT及ERASE—STAT信號且向NAND 門56輸出的OR門54,所述NAND門56亦接收該VERIFY信號作為輸入。 該NAND門56的輸出作為3輸入NAND門58的輸入之一。類似地,OR門 60接收該PROG—COMM及PGM—ALL0—STAT信號且向NAND門62輸出,所 述NAND門62亦接收信號INC—DAC作為輸入。NAND門62的輸出作為NAND 門58的輸入之一。最后,AND門64接收CAN—SUSPEND及MODIFY信號作 為輸入,且其輸出為NAND門58的輸入之一。NAND門58的輸出傳送至多路 復(fù)用器24以指示該真條件(當(dāng)該輸出為高電平)。
多路復(fù)用器24在圖2的實例中示為包括從觸發(fā)器20 (圖1)接收該 SUSP—REQ信號及接收RP—REQ信號(例如來自該用戶輸入板的重置請求)的 OR門70。 OR門70的輸出為AND門72的輸入之一,所述AND門72亦從邏輯電路26的NAND門58接收該真條件信號作為其另一輸入。AND門72的輸 出為多路復(fù)用器24的輸出,其由觸發(fā)器28作為時鐘輸入而接收,如先前參考 圖1所作的描述。觸發(fā)器28亦從AND門74接收CDN輸入,所述AND門74 的輸入為該經(jīng)反相器反相的FORCE—SUSP—INSTR信號以及該MODIFY信號, 因為該邏輯電路74僅需在修改操作期間起作用。如上述參考圖1所述,觸發(fā) 器28輸出為該SUSP—REQ—ACC信號,經(jīng)觸發(fā)器28輸出端的緩沖器后輸出。
應(yīng)注意,在本發(fā)明的代替實施例中可提供邏輯電路26、多路復(fù)用器24及/ 或電路50中所示的其他邏輯電路的其他實現(xiàn)。
圖3為說明本發(fā)明管理快閃存儲器的掛起請求的方法100的流程圖。方法 100最好使用硬件以及可由微控制器12 (或其他合適的處理器或計算機系統(tǒng)) 執(zhí)行的程序指令或代碼來實現(xiàn),并且存儲于計算機可讀介質(zhì),如存儲器(R0M14 或其他存儲器)、硬盤驅(qū)動器、光盤(CD-R0M、 DVD-ROM等)、磁盤等。較佳 實施例中,某些特定的方法步驟以硬件(邏輯門等)實現(xiàn),而諸如實現(xiàn)該掛起 序列的其他步驟最好使用R0M14中的由微控制器12獲取以執(zhí)行的軟件指令來 實現(xiàn)。
該方法開始于步驟102,在步驟104中,啟動并且處理修改操作。如上所 述,該修改操作可為對該快閃儲存陣列16進(jìn)行修改或添加新值的程序操作、 從該陣列16擦除值的擦除操作,或者其他修改該陣列內(nèi)容的操作。
步驟106中,在該步驟104的修改操作繼續(xù)運行且還未結(jié)束之時從該用戶 (或者其他來源,在此亦稱為用戶,如應(yīng)用程序)接收掛起請求22。如前所述, 可通過該用戶使用與該快閃儲存系統(tǒng)相適應(yīng)的用戶接口將該掛起請求輸入快 閃存儲系統(tǒng)10。 一般地,該用戶輸入該掛起請求作為執(zhí)行讀取該快閃存儲系統(tǒng) 操作的需求的一部分,如讀取快閃存儲陣列16中的存儲器。
步驟108中,該方法檢査該狀態(tài)是否適于掛起該步驟104的修改操作。本 發(fā)明中,當(dāng)邏輯電路26根據(jù)狀態(tài)變量及微控制器輸出生成"真條件"時,該 狀態(tài)適于掛起,這些變量及輸出本身基于該當(dāng)前修改操作中的當(dāng)前執(zhí)行指令是 否是可掛起的或可中斷的。例如,該修改操作的當(dāng)前指令可能無法中斷而不造 成功能性錯誤或問題(在此俱簡略為錯誤);例如, 一些類型的該修改操作指令被中斷后可能難以正確地恢復(fù)該修改操作。該當(dāng)前指令是否可被中斷是根據(jù) 狀態(tài)變量及微控制器輸出來判定的,如上述的邏輯電路26所執(zhí)行的。由此,
若該當(dāng)前執(zhí)行指令不應(yīng)被執(zhí)行,邏輯電路26不會生成真條件。
應(yīng)注意,步驟108并非是在寄存器執(zhí)行或者標(biāo)志或其他數(shù)據(jù)的實際比較操 作;而是該步驟僅僅表示只有在該狀態(tài)適當(dāng)時才執(zhí)行步驟112。由于本發(fā)明無 需執(zhí)行特定的比較操作來檢査寄存器標(biāo)志以判定何時掛起該修改操作,由此該 代碼指令緊湊得多,因此,本發(fā)明較之現(xiàn)有實現(xiàn)優(yōu)勢明顯。
步驟108中,若該條件不適于掛起,則在步驟108中執(zhí)行該修改操作的下 一條指令,并且該處理返回步驟108以再次判定該條件是否適于掛起。例如, 典型的快閃存儲器嵌入代碼中,有大量不可中斷的指令,但那些不可中斷的指 令一般在該代碼中是不連續(xù),藉此使得可在跟隨該不可中斷指令之后的可中斷 指令執(zhí)行期間進(jìn)行掛起操作。
一旦狀態(tài)適于掛起該修改操作,步驟112中,該用戶掛起請求發(fā)出的掛起 信號與該微控制器時鐘同步。如參考圖1所描述的,可使用觸發(fā)器32來執(zhí)行 之。下一步驟114中,通過跳轉(zhuǎn)至存儲于R0M14中的適當(dāng)代碼指令序列來啟動 該掛起序列。圖1的實例中,這是通過使用多路復(fù)用器36來達(dá)成的,所述多 路復(fù)用器由該FORCE—SUSP_INSTR信號轉(zhuǎn)換以允許該微控制器跳轉(zhuǎn)至R0M14中 的該適當(dāng)掛起序列。
步驟116中,執(zhí)行該掛起序列直至其完成且該修改操作被掛起。如上所述, 這可以通過執(zhí)行R0M14中的所有該掛起代碼指令來實現(xiàn)???在寄存器中)保 存任何狀態(tài)變量及其他特征從而在稍后正確地恢復(fù)該修改操作。
隨著該修改操作被掛起,可在步驟118執(zhí)行該用戶對快閃存儲設(shè)備10的 讀取操作(及/或其他所需的操作)。 一旦該用戶的操作完成,在步驟120恢 復(fù)該掛起的修改操作,該步驟中可獲取任何保存的狀態(tài)變量及其他數(shù)據(jù)以正確 恢復(fù)該修改操作。由此,該處理在步驟122完成。
由于本發(fā)明的處理使用的是掛起請求及修改操作掛起的自動檢測(如使用 硬件),其不需使用現(xiàn)有的每隔幾行代碼就執(zhí)行一次查詢以判定是否已接收到 掛起請求軟件方法,即使無掛起請求?,F(xiàn)有技術(shù)中,查詢指令須在最短時間段內(nèi)執(zhí)行以滿足掛起該操作所需的該快閃存儲器10的時間安排條件。本發(fā)明中, 由于無需執(zhí)行這些比較指令,因此更易滿足該時間安排條件。此外,由于去除 了該比較指令,本發(fā)明的嵌入代碼極其緊湊,由此節(jié)省了存儲該代碼的成本。
盡管已根據(jù)所示的實施例描述了本發(fā)明,本技術(shù)領(lǐng)域的技術(shù)人員可容易地 認(rèn)識到可在本發(fā)明的精神及范圍之內(nèi)對這些實施例作出修改。因此,本技術(shù)領(lǐng) 域的技術(shù)人員可在不脫離所附的權(quán)利要求書的精神及范圍的情況下作出許多 修改。
權(quán)利要求
1、一種管理快閃存儲器中掛起請求的系統(tǒng),所述系統(tǒng)包括執(zhí)行快閃存儲陣列修改操作的微控制器;耦合至所述微控制器且存儲掛起序列代碼的存儲器,所述掛起序列代碼由所述微控制器執(zhí)行時用于實現(xiàn)掛起序列以使所述修改操作掛起;及耦合至所述微控制器及所述存儲器的掛起電路,其中所述掛起電路從用戶處接收掛起請求以掛起所述修改操作,并且其中所述掛起電路開始執(zhí)行所述掛起序列代碼。
2、 如權(quán)利要求1所述的系統(tǒng),其中當(dāng)所述修改操作可被掛起而不會 造成所述修改操作的錯誤之時,所述掛起電路開始執(zhí)行所述掛起序列 代碼。
3、 如權(quán)利要求2所述的系統(tǒng),其中當(dāng)所述修改操作的當(dāng)前執(zhí)行指令 可被掛起而不會造成所述修改操作的錯誤之時,所述掛起電路開始執(zhí) 行所述掛起序列代碼。
4、 如權(quán)利要求1所述的系統(tǒng),其中所述掛起電路包括鎖存所述掛起 請求直至所述掛起請求可被實現(xiàn)而不發(fā)生錯誤的觸發(fā)器。
5、 如權(quán)利要求1所述的系統(tǒng),其中所述掛起電路包括開關(guān)及邏輯電 路,其中所述邏輯電路判定所述掛起序列何時可以開始。
6、 如權(quán)利要求5所述的系統(tǒng),其中所述邏輯電路接收狀態(tài)變量并且 接收所述微控制器輸出以判定所述掛起序列何時可以開始。
7、 如權(quán)利要求1所述的系統(tǒng),其中所述掛起電路包括至少一個用于 提供信號的觸發(fā)器,所述信號用于依照所述微控制器的時鐘啟動所述 掛起序列。
8、 如權(quán)利要求1所述的系統(tǒng),其中所述掛起電路包括多路復(fù)用器, 所述多路復(fù)用器用于當(dāng)所述掛起序列開始之時選擇所述掛起序列的開 始代碼地址,其中所述開始代碼地址引用所述存儲器中的存儲位置。
9、 如權(quán)利要求8所述的系統(tǒng),其中所述多路復(fù)用器在所述微控制器 開始所述掛起序列后選擇所述掛起序列中的下一條指令。
10、 如權(quán)利要求9所述的系統(tǒng),其中來自觸發(fā)器的信號設(shè)置所述多路復(fù)用器去選擇開始代碼地址,并且其中所述觸發(fā)器關(guān)斷所述信號以設(shè) 置所述多路復(fù)用器以選擇所述掛起序列中的下一條指令。
11、 如權(quán)利要求1所述的系統(tǒng),其中所述存儲器為只讀存儲器(ROM)。
12、 一種管理快閃存儲器中掛起請求的方法,所述方法包括 從用戶處接收掛起請求信號以掛起快閃存儲陣列的修改操作;鎖存所述掛起請求信號直至所述修改操作可被掛起而不會造成所述修改操作的錯誤;及通過執(zhí)行存儲于存儲器的掛起序列代碼以掛起所述修改操作。
13、 如權(quán)利要求12所述的方法,其中所述掛起請求的鎖存由觸發(fā)器 執(zhí)行。
14、 如權(quán)利要求12所述的方法,其中當(dāng)所述修改操作執(zhí)行可中斷指 令時,可掛起所述修改操作。
15、 如權(quán)利要求12所述的方法,其中硬件邏輯電路根據(jù)狀態(tài)變量及 微控制器輸出來判定所述修改操作何時可被掛起。
16、 如權(quán)利要求15所述的方法,其中當(dāng)所述修改操作可被掛起時, 允許所述掛起請求信號通過開關(guān)輸入掛起請求電路,其中所述開關(guān)由 所述硬件邏輯電路控制。
17、 如權(quán)利要求12所述的方法,其中掛起所述修改操作包括向開關(guān) 提供所述掛起請求信號,來向微控制器指示所述存儲于所述存儲器的 掛起序列代碼的開始地址。
18、 如權(quán)利要求17所述的方法,其中所述開關(guān)在所述微控制器開始 掛起序列后選擇所述掛起序列中的下一條指令。
19、 如權(quán)利要求18所述的方法,其中來自觸發(fā)器的信號設(shè)置所述開 關(guān)以選擇開始代碼地址,并且其中所述觸發(fā)器設(shè)置所述信號以使所述 開關(guān)選擇所述掛起序列中的所述下一條指令。
20、 如權(quán)利要求12所述的方法,進(jìn)一步包括,當(dāng)所述修改操作掛起時,從所述用戶接收實現(xiàn)至少一項用戶操作的信號。
21、 如權(quán)利要求20所述的方法,其中所述用戶操作為從所述快閃存 儲單元讀取數(shù)據(jù)的讀取操作。
22、 如權(quán)利要求21所述的方法,進(jìn)一步包括在所述至少一項用戶操 作完成后恢復(fù)所述修改操作。
23、 如權(quán)利要求12所述的方法,其中利用至少一個觸發(fā)器依照所述 微控制器的時鐘開始所述掛起序列。
24、 一種管理快閃存儲器中掛起請求的方法,所述方法包括 執(zhí)行來自所述快閃存儲器的儲存器中的嵌入軟件代碼指令以實現(xiàn)快閃存儲陣列的修改操作;從用戶處接收掛起請求信號以掛起所述修改操作;及 使用硬件掛起電路掛起所述修改操作,而不執(zhí)行檢査所述掛起請 求是否已收到的軟件代碼指令。
25、 如權(quán)利要求24所述的方法,其中掛起所述修改操作包括當(dāng)該指 令可被中斷而不會導(dǎo)致所述修改操作的錯誤之時,中斷運行所述修改 操作的指令。
26、 如權(quán)利要求25所述的方法,其中當(dāng)中斷所述當(dāng)前運行指令無法 避免造成所述修改操作的錯誤之時,掛起所述修改操作包括等待并中 斷所述修改操作的下一條可被中斷而不會造成所述修改操作錯誤的指 令。
27、 如權(quán)利要求26所述的方法,其中硬件邏輯電路根據(jù)狀態(tài)變量及 微控制器輸出來判定所述修改操作何時可被中斷及掛起。
28、 如權(quán)利要求24所述的方法,進(jìn)一步包括鎖存掛起請求信號直至 所述修改操作可被中斷。
29、 如權(quán)利要求24所述的方法,其中掛起所述修改操作包括執(zhí)行存 儲于所述存儲器的掛起序列代碼。
30、 如權(quán)利要求29所述的方法,其中掛起所述修改操作包括向開關(guān)提供掛起請求信號,來向微控制器指示所述存儲于所述存儲器的掛起 序列代碼的開始地址。
31、 如權(quán)利要求30所述的方法,其中所述開關(guān)在所述微處理器開始掛起序列后選擇所述掛起序列中的下一條指令。
32、 如權(quán)利要求24所述的方法,進(jìn)一步包括,當(dāng)所述修改操作掛起 時,從所述用戶接收實現(xiàn)至少一項用戶操作的信號。
33、 如權(quán)利要求32所述的方法,進(jìn)一步包括在所述至少一項用戶操 作完成后恢復(fù)所述修改操作。
全文摘要
管理快閃存儲設(shè)備中掛起請求的系統(tǒng)及方法。該系統(tǒng)包括執(zhí)行快閃存儲陣列修改操作的微控制器,耦合至所述微控制器且存儲掛起序列代碼的存儲器,所述掛起序列代碼由所述微控制器執(zhí)行時掛起所述修改操作,以及從用戶處接收掛起請求以掛起所述修改操作并且開始執(zhí)行所述掛起序列代碼的掛起電路。
文檔編號G06F12/00GK101553789SQ200680002539
公開日2009年10月7日 申請日期2006年1月19日 優(yōu)先權(quán)日2005年1月20日
發(fā)明者盧卡·菲吉尼, 斯蒂芬諾·蘇里克, 莫尼卡·馬茲阿尼, 西蒙娜·巴托麗 申請人:愛特梅爾公司