專利名稱:閃速存儲器控制裝置、存儲器管理方法、及存儲器芯片的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種用于在串行閃速存儲器中XIP(本地執(zhí)行)的基于優(yōu)先級的閃速存儲器控制裝置、使用其的存儲器管理方法、及其存儲器芯片。更具體地講,本發(fā)明涉及一種通過將優(yōu)先級分配到串行閃速存儲器的各個頁,并且根據(jù)它們的優(yōu)先級將從串行閃速存儲器檢索的頁存儲在系統(tǒng)存儲器或高速緩存存儲器中的有效的存儲器管理而致使的系統(tǒng)性能的改進。
背景技術(shù):
通常,閃速存儲器是非易失性存儲器器件,從其數(shù)據(jù)能夠被再次電刪除,或在其數(shù)據(jù)能夠被再次寫入。閃速存儲器具有比基于磁盤存儲器的存儲器件的功耗和尺寸要低的功耗和要小的尺寸。由于這個原因,閃速存儲器已經(jīng)被活躍地研究和開發(fā)作為磁盤存儲器的替代品。
具體地講,期待著閃速存儲器將廣泛地應用作為用于移動計算器件,如數(shù)碼相機、移動電話、和個人數(shù)字助手(PDA)的存儲器件。
根據(jù)制造方法,閃速存儲器能夠粗略地分類為具有在其中單元并行地置于位線和地線之間的結(jié)構(gòu)的并行閃速存儲器、和具有在其中單元串行地置于位線和地線之間的結(jié)構(gòu)的串行閃速存儲器。
其中,與并行閃速存儲器相比,串行閃速存儲器具有優(yōu)點具有高寫入率,并且相對便宜;和能夠被容易地制造成具有高容量。因此,串行閃速存儲器已經(jīng)被廣泛地用于存儲大容量的數(shù)據(jù)。
與將數(shù)據(jù)從其自由地讀取、或?qū)?shù)據(jù)自由地寫入到其的磁盤存儲器不同,由于刪除和讀/寫操作的執(zhí)行基礎(chǔ)彼此不一致,所以在串行閃速存儲器中,基于塊來執(zhí)行刪除操作,基于頁來執(zhí)行讀/寫操作。
因此,串行閃速存儲器具有缺點其沒有提供不需要將數(shù)據(jù)轉(zhuǎn)移到系統(tǒng)存儲器而直接地執(zhí)行寫入的數(shù)據(jù)的本地執(zhí)行功能(以下,稱為“XIP”)。
然而,近來,通過使用預定的控制器串行閃速存儲器已經(jīng)適用于支持XIP功能。
具體地講,如果將電施加到系統(tǒng),則控制器從串行閃速存儲器讀取包含用于系統(tǒng)的初始引導的引導代碼的頁,然后將讀取的頁存儲在緩存器中。如果系統(tǒng)的主控制單元請求引導代碼,則控制器僅僅讀取引導代碼,然后將其提供到主控制單元。
此外,控制器響應于從主控制單元接收到控制命令來讀取包含需求的數(shù)據(jù)的頁,從讀取的頁提取需求的數(shù)據(jù),然后將提取的數(shù)據(jù)發(fā)送到主控制單元??刂破鬟€將讀取的頁存儲在高速緩存存儲器中,從而能夠有效地訪問讀取的頁的數(shù)據(jù)。
在以這種方式支持串行閃速存儲器的XIP功能時,響應于由主控制單元的請求,控制器重復地執(zhí)行將需求的數(shù)據(jù)發(fā)送到主控制單元并將從串行閃速存儲器讀取的頁存儲在高速緩存存儲器中的處理。因此,在重復的處理期間,讀取的頁被連續(xù)地積累在高速緩存存儲器中。
在這些處理中,高速緩存存儲器根據(jù)預定的置換算法(例如,最近最少使用(LRU)、先進先出(FIFO)、或隨機)來執(zhí)行頁置換。在這種情況下,直接映射技術(shù)被廣泛地使用作為用于頁置換的映射方法。
直接映射類型高速緩存存儲器用相應于讀取的頁的存儲器地址的高速緩存存儲器的標記來存儲讀取的頁。如果在將讀取的頁存儲在高速緩存存儲器期間,讀取的頁的數(shù)據(jù)和先前寫入的頁的數(shù)據(jù)存在沖突,則根據(jù)置換算法先前寫入的頁被刪除,并且新讀取的頁被存儲。
在這種情況下,如果系統(tǒng)的主控制單元請求刪除的頁的數(shù)據(jù),則產(chǎn)生表示由主控制單元請求的數(shù)據(jù)不存在于高速緩存存儲器的事實的高速緩存遺漏。因此,控制器應該再次訪問串行閃速存儲器,然后提交需求的數(shù)據(jù),導致大量循環(huán)的浪費。
換言之,由于這樣低效的存儲器管理,導致包括在系統(tǒng)中頻繁地發(fā)生的定時器中斷、用于處理通信的時間關(guān)鍵中斷、被頻繁地檢索的系統(tǒng)庫、和必須在預定的時間周期中執(zhí)行的實時請求(application)的數(shù)據(jù)與其他一般代碼頁被平等地對待。因此,存在問題這樣的處理降低了系統(tǒng)的全部性能,并且限制了系統(tǒng)的實時特性。
因此,需要一種根據(jù)各個頁的數(shù)據(jù)的重要性來管理從串行閃速存儲器讀取的頁的有效的存儲器管理方法。
發(fā)明內(nèi)容
構(gòu)思本發(fā)明以解決上述問題。本發(fā)明的基本目的在于經(jīng)通過對串行閃速存儲器中的各個頁分配優(yōu)先級,并且根據(jù)它們的優(yōu)先級將從存儲器讀取的頁存儲在系統(tǒng)存儲器中或高速緩存存儲器中的有效的存儲器管理來改善系統(tǒng)的性能。
本發(fā)明的另一個目的在于通過經(jīng)根據(jù)優(yōu)先級的數(shù)據(jù)處理來防止在高速緩存存儲器中發(fā)生高速緩存遺漏來降低高速緩存存儲器中的遺漏率。
本發(fā)明的另一個目的在于通過降低在高速緩存存儲器中的遺漏率以防止循環(huán)的浪費來保持系統(tǒng)的實時特性。
根據(jù)本發(fā)明,優(yōu)先級分配到串行閃速存儲器中的各個頁。如果主控制單元請求給定邏輯地址的數(shù)據(jù),則閃速存儲器控制裝置通過參考由系統(tǒng)存儲器的映射信息組成的地址轉(zhuǎn)換表來搜索需求的數(shù)據(jù)。
根據(jù)搜索的結(jié)果,閃速存儲器控制裝置讀取在系統(tǒng)存儲器或高速緩存存儲器中有關(guān)的邏輯地址的數(shù)據(jù),然后將讀取的數(shù)據(jù)發(fā)送到主控制單元,或者從串行閃速存儲器讀取包含相應的數(shù)據(jù)的頁,然后將請求的數(shù)據(jù)發(fā)送到主控制單元。
此外,閃速存儲器控制裝置根據(jù)它們的優(yōu)先級將已經(jīng)從串行閃速存儲器讀取的頁存儲在系統(tǒng)存儲器或高速緩存存儲器中,并且將改變的映射信息寫入有關(guān)的地址轉(zhuǎn)換表中。
在本發(fā)明中,由系統(tǒng)存儲器的映射信息組成的地址轉(zhuǎn)換表被限定為頁地址轉(zhuǎn)換表(以下,稱為“第一PAT”),其中寫入關(guān)于根據(jù)優(yōu)先級從高速緩存存儲器或串行閃速存儲器轉(zhuǎn)移到系統(tǒng)存儲器,以在其中存儲的頁的映射信息。由高速緩存存儲器的映射信息組成的地址轉(zhuǎn)換表被限定為頁地址轉(zhuǎn)換表(以下,稱為“第二PAT”),其中寫入關(guān)于根據(jù)優(yōu)先級從串行閃速存儲器轉(zhuǎn)移到高速緩存存儲器,以在其中存儲的頁的映射信息。
此外,根據(jù)本發(fā)明,基于對頁的主要數(shù)據(jù)的訪問率、重要性等確定優(yōu)先級,并且根據(jù)預定的優(yōu)先級的級別由預定的等級來表示。
根據(jù)本發(fā)明的一方面,提供了一種串行閃速存儲器,包括扇區(qū),表示由多個頁組成并且數(shù)據(jù)在其中存儲的數(shù)據(jù)區(qū)域;和扇區(qū),表示具有關(guān)于數(shù)據(jù)區(qū)域的邏輯地址的信息的備用區(qū)域。每個頁由具有在其中寫入的主要數(shù)據(jù)的數(shù)據(jù)部分和在其中寫入分配到主要數(shù)據(jù)的優(yōu)先級的備用部分組成。
根據(jù)本發(fā)明的另一方面,提供了一種用于在串行閃速存儲器中XIP的基于優(yōu)先級的閃速存儲器控制裝置,其中,當主控制單元請求給定邏輯地址的數(shù)據(jù)時,通過參考預定的地址轉(zhuǎn)換表來搜索需求的數(shù)據(jù),并且根據(jù)搜索的結(jié)果,從系統(tǒng)存儲器或高速緩存存儲器讀取相應的數(shù)據(jù),然后將其發(fā)送到主控制單元,或者從串行閃速存儲器讀取包含相應的數(shù)據(jù)的頁,然后將其發(fā)送到主控制單元。
在閃速存儲器控制裝置中,根據(jù)它們的優(yōu)先級從串行閃速存儲器讀取的頁可以存儲在系統(tǒng)存儲器或高速緩存存儲器中,并且將改變的映射信息寫入地址轉(zhuǎn)換表中。
根據(jù)本發(fā)明的另一方面,提供了一種用于在串行閃速存儲器中XIP的基于優(yōu)先級的閃速存儲器管理方法,包括步驟如果從主控制單元接收用于讀取給定邏輯地址的數(shù)據(jù)的請求,則通過參考預定的地址轉(zhuǎn)換表來搜索相應的邏輯地址的數(shù)據(jù);和根據(jù)搜索的結(jié)果從系統(tǒng)存儲器或高速緩存存儲器讀取相應的邏輯地址的數(shù)據(jù),并且將讀取的數(shù)據(jù)發(fā)送到主控制單元。
該方法還可包括步驟根據(jù)搜索的結(jié)果從串行閃速存儲器讀取包含相應的數(shù)據(jù)的頁,并且將請求的數(shù)據(jù)發(fā)送到主控制單元。此外,該方法還可包括步驟根據(jù)它們的優(yōu)先級將從串行閃速存儲器讀取的頁存儲在系統(tǒng)存儲器或高速緩存存儲器中,并且將改變的映射信息寫入地址轉(zhuǎn)換表中。
根據(jù)本發(fā)明的另一方面,提供了一種閃速存儲器芯片,包括串行單元類型串行閃速存儲器,由每個具有在其中寫入主要數(shù)據(jù)的數(shù)據(jù)部分和在其中寫入分配到主要數(shù)據(jù)的優(yōu)先級的備用部分的頁組成;和閃速存儲器控制裝置,用于根據(jù)它們的優(yōu)先級將從串行閃速存儲器讀取的頁存儲在系統(tǒng)存儲器或高速緩存存儲器中,并且將改變的映射信息寫入預定的地址轉(zhuǎn)換表中。
通過結(jié)合附圖對優(yōu)選的實施例進行下面的描述,本發(fā)明的以上和其他目的、特性及優(yōu)點將會變得更清楚,其中圖1示意性地示出根據(jù)本發(fā)明的一個實施例的串行閃速存儲器的頁結(jié)構(gòu);圖2是示意性地示出根據(jù)本發(fā)明的一個實施例的串行閃速訪問系統(tǒng)的結(jié)構(gòu)的方框圖;圖3是示意性地示出圖2所示的閃速存儲器控制裝置的方框圖;圖4示意性地示出在控制器中的讀的命令處理結(jié)構(gòu);圖5示意性地示出在控制器中的根據(jù)優(yōu)先級的頁處理結(jié)構(gòu);圖6是示意性地示出使用根據(jù)本發(fā)明的一個實施例的用于在串行閃速存儲器中XIP的基于優(yōu)先級的閃速存儲器控制裝置的存儲器管理方法的流程圖;圖7是示意性地示出使用根據(jù)本發(fā)明的另一個實施例的用于在串行閃速存儲器中XIP的基于優(yōu)先級的閃速存儲器控制裝置的存儲器管理結(jié)構(gòu)的方框圖;和圖8是示意性地示出使用根據(jù)本發(fā)明的另一個實施例的用于在串行閃速存儲器中XIP的基于優(yōu)先級的閃速存儲器控制裝置的存儲器管理結(jié)構(gòu)的方框圖。
具體實施例方式
以下,將參考附圖來詳細地描述根據(jù)本發(fā)明的用于在串行閃速存儲器中XIP的基于優(yōu)先級的閃速存儲器控制裝置、使用其的存儲器管理方法、及其存儲器芯片。
盡管如使用包括預定地址轉(zhuǎn)換表的閃速存儲器控制裝置而實現(xiàn),以下將描述用于在串行閃速存儲器中XIP的基于優(yōu)先級的閃速存儲器控制裝置、使用其的存儲器管理方法、及其存儲器芯片,但是這僅僅是示例性的。本領(lǐng)域的技術(shù)人員應該明白可以對根據(jù)先前分配的優(yōu)先級將從串行閃速存儲器讀取的頁存儲在系統(tǒng)存儲器中,并且將改變的映射信息寫入用于系統(tǒng)存儲器的地址轉(zhuǎn)換表的存儲器管理方法作出各種修改和等同物,由此,當響應于由主控制單元的請求而執(zhí)行讀取操作時,通過參考用于系統(tǒng)存儲器的地址轉(zhuǎn)換表能夠搜索需求的數(shù)據(jù)。
串行閃速存儲器主要分割成表示數(shù)據(jù)區(qū)域的扇區(qū)、和表示備用區(qū)域的扇區(qū)。數(shù)據(jù)寫入數(shù)據(jù)區(qū)域中。關(guān)于串行閃速存儲器的一般信息,如閃速存儲器和存儲器容量的模型、及寫入數(shù)據(jù)區(qū)域中的數(shù)據(jù)的物理地址和與其相應的邏輯地址之間的映射信息被寫入備用區(qū)域中。
寫入數(shù)據(jù)區(qū)域中的數(shù)據(jù)可包括用于引導操作系統(tǒng)(OS)的引導代碼、OS/應用程序、用于執(zhí)行寫入OS區(qū)域中的程序的數(shù)據(jù)、和由用戶輸入的數(shù)據(jù)或當OS操作時產(chǎn)生的信號。
這樣數(shù)據(jù)區(qū)域包括多個以預定大小分割的塊。每個塊包括多個頁。
圖1示意性地示出根據(jù)本發(fā)明一個實施例的串行閃速存儲器的頁結(jié)構(gòu)。
如圖1所示,串行閃速存儲器100的頁主要分割成其中寫入主要數(shù)據(jù)的數(shù)據(jù)部分、和其中寫入分配到主要數(shù)據(jù)的優(yōu)先級的備用部分。
根據(jù)對頁的主要數(shù)據(jù)的訪問率、及其重要性來確定優(yōu)先級,并且根據(jù)確定的優(yōu)先級的級別由預定等級來表示該優(yōu)先級。
即,如果確定優(yōu)先級具有兩個級別,則由高(H)或低(L)來表示。
例如,在當串行閃速存儲器100是由528個字節(jié)組成的與非(NAND)閃速存儲器時的情況下,該串行閃速存儲器100的數(shù)據(jù)區(qū)域包括多個每個具有32頁的塊。
每頁包括512字節(jié)的數(shù)據(jù)部分和16字節(jié)的備用部分。
圖2是示意性地示出根據(jù)本發(fā)明的一個實施例的串行閃速存儲器訪問系統(tǒng)的結(jié)構(gòu)的方框圖。
如圖2所示,串行閃速存儲器訪問系統(tǒng)包括主控制單元300,其對串行閃速存儲器100產(chǎn)生寫或刪除命令;閃速存儲器控制裝置500,其執(zhí)行用于在串行閃速存儲器100中支持XIP的操作控制,并且響應于主控制單元300的控制命令來直接訪問串行閃速存儲器100;和系統(tǒng)存儲器700。
如果將電施加到閃速存儲器控制裝置500,則閃速存儲器控制裝置500掃描串行閃速存儲器100的備用區(qū)域,產(chǎn)生在其上反映串行閃速存儲器100的當前已寫狀態(tài)的映射表,然后將該表存儲在高速緩存存儲器中,以當訪問串行閃速存儲器100時來參考該表。
此外,當主控制單元300請求給定邏輯地址的數(shù)據(jù)時,閃速存儲器控制裝置500通過參考第一PAT來搜索需求的數(shù)據(jù)。
根據(jù)搜索結(jié)果,閃速存儲器控制裝置500從系統(tǒng)存儲器700或高速緩存存儲器讀取相應的邏輯地址的數(shù)據(jù),并且將讀取的數(shù)據(jù)發(fā)送到主控制單元300,或者從串行閃速存儲器100讀取包含相應數(shù)據(jù)的頁,并且將請求的數(shù)據(jù)發(fā)送到主控制單元300。
此外,閃速存儲器控制裝置500根據(jù)它們的優(yōu)先級將從串行閃速存儲器100讀取的頁存儲在系統(tǒng)存儲器中或高速緩存存儲器中,并且將改變的映射信息寫入第一PAT或第二PAT中。
例如,如果閃速存儲器控制裝置500從主控制單元300接收指示主控制單元300意圖讀取給定邏輯地址的數(shù)據(jù)的控制命令,則閃速存儲器控制裝置500通過參考第一PAT和第二PAT來搜索請求的邏輯地址。
作為搜索的結(jié)果,如果從第一PAT和第二PAT沒有發(fā)現(xiàn)關(guān)于相應的邏輯地址的信息,則閃速存儲器控制裝置500從串行閃速存儲器100讀取包含需求的數(shù)據(jù)的頁,然后通過讀取的頁將相應的數(shù)據(jù)發(fā)送到主控制單元300。
閃速存儲器控制裝置500然后將讀取的頁存儲在閃速存儲器中。此時,如果由于在與讀取頁的存儲器地址相應的閃速存儲器的標記處的存在頁,導致發(fā)生標記沖突,則裝置500將先前頁和讀取頁的優(yōu)先級互相比較。
作為比較的結(jié)果,如果先前頁的優(yōu)先級比讀取頁的優(yōu)先級要高,則閃速存儲器控制裝置500將讀取頁存儲在系統(tǒng)存儲器700中,并且將映射信息寫入第一PAT中。
相反,如果先前頁的優(yōu)先級比讀取頁的優(yōu)先級要低,則閃速存儲器控制裝置500將存儲在高速緩存存儲器中的先前頁轉(zhuǎn)移到系統(tǒng)存儲器700,以在那里存儲,然后將改變的映射信息寫入第一PAT中。此時,裝置500將讀取頁存儲在高速緩存存儲器中,然后將改變的映射信息寫入第二PAT中。
通常,系統(tǒng)存儲器700可以是RAM,如DRAM、SDRAM、SRAM、或UtRAM。
圖3是示意性地示出圖2所示的閃速存儲器控制裝置的方框圖。
如圖3所示,閃速存儲器控制裝置500包括系統(tǒng)接口單元510、高速緩存模塊520、訪問模塊530、閃速存儲器接口單元540、和控制器550。
系統(tǒng)接口單元510接收從主控制單元300產(chǎn)生的控制命令,并且響應于接收的控制命令來處理用于對主控制單元300提供操作的結(jié)果的信號的發(fā)送/接收。
高速緩存模塊520包括第一PAT 521、第二PAT 522、和高速緩存存儲器523。
第一PAT 521指示系統(tǒng)存儲器700的已寫狀態(tài)。從高速緩存存儲器523或串行閃速存儲器100轉(zhuǎn)移到系統(tǒng)存儲器700以在其中存儲的頁的邏輯地址和物理地址之間的映射信息被寫入第一PAT 521中。
從串行閃速存儲器100轉(zhuǎn)移到高速緩存存儲器523以在其中存儲的頁的邏輯地址和物理地址之間的映射信息被寫入第二PAT 522中。
高速緩存存儲器523包括主高速緩存(沒有顯示)、和為減少高速緩存遺漏的發(fā)生而服務作為用于將數(shù)據(jù)從高速緩存存儲器轉(zhuǎn)移到主存儲器件的緩存器的受損高速緩存(victim cache)(沒有顯示)。高速緩存存儲器523通常由作為獨立靜態(tài)隨機訪問存儲器(SRAM)芯片的L2-Cache實現(xiàn)。
當發(fā)生標記沖突時,根據(jù)本發(fā)明的受損高速緩存器將根據(jù)頁置換算法輸出的先前已寫的頁存儲,從而減少了在高速緩存存儲器中高速緩存遺漏的發(fā)生。
訪問模塊530讀取包含用于初始引導在串行閃速存儲器100中XIP的系統(tǒng)的引導代碼的頁,存儲該讀取頁,然后將需求的引導代碼發(fā)送到主控制單元300。訪問模塊530包括引導加載器531、預取532、和錯誤檢測代碼/錯誤糾正代碼(以下,稱為“EDC/ECC”)533、和分解(Decomp)534。
引導加載器531使得有效的系統(tǒng)引導方便。如果加電,則引導加載器531檢索OS程序和初始化代碼,如寫入串行閃速存儲器100的引導區(qū)域中的用于系統(tǒng)引導的映像,然后將其存儲在緩沖器中。當主控制單元300開始第一代碼取循環(huán),以請求讀取引導代碼時,引導加載器531將存儲的初始化代碼發(fā)送到主控制單元300,從而能夠開始引導。
提供預取532、EDC/ECC 533、和分解534以增強閃速存儲器控制裝置500的性能。預取532預先從串行閃速存儲器100檢索被期待由主控制單元300請求的數(shù)據(jù),然后將該數(shù)據(jù)存儲在緩沖器中。EDC/ECC 533檢測/糾正在發(fā)送/接收的數(shù)據(jù)中的錯誤。分解534對根據(jù)系統(tǒng)需求而需求的數(shù)據(jù)壓縮和解壓縮負責。
由于分解534是根據(jù)系統(tǒng)需求而提供的,所以如果必要可以將其省略。
閃速存儲器接口單元540響應于主控制單元300的控制命令,執(zhí)行將數(shù)據(jù)發(fā)送到串行閃速存儲器100,或執(zhí)行從串行閃速存儲器100接收數(shù)據(jù)。
控制器550執(zhí)行全部操作控制,從而通過各個部件能夠?qū)崿F(xiàn)串行閃速存儲器100中XIP??刂破?50通過參考第一和第二PAT 521和522來將需求的數(shù)據(jù)發(fā)送到主控制單元330,并且根據(jù)它們的優(yōu)先級將從串行閃速存儲器100讀取的頁存儲在高速緩存存儲器523或系統(tǒng)存儲器700中。
圖4示意性地示出了在控制器中讀的命令處理結(jié)構(gòu)。
如圖4所示,如果從主控制單元300接收到通過其將讀取寫在串行閃速存儲器100中的數(shù)據(jù)的控制命令,則為了訪問數(shù)據(jù),閃速存儲器控制裝置500的控制器550將請求數(shù)據(jù)的邏輯地址轉(zhuǎn)換成物理地址。
因此,當控制器550從主控制單元300接收請求的邏輯地址時,控制器550從接收到的邏輯地址讀取邏輯塊號(LBN)。
然后,控制器550通過使用讀取的LBN來在初始化處理中訪問存儲在高速緩存存儲器523中的映射表,并且確定該LBN是否是映射表中的有效塊。如果確定該LBN是有效塊,則控制器550通過映射表來檢測與LBN相應的物理塊號(PBN)。
相反,如果確定該LBN不是映射表中的有效塊,則控制器550檢測另外的有效PBN。
此后,控制器550從接收的邏輯地址檢測邏輯頁號(LPN),組合檢測的LPN和PBN,然后搜索第一PAT 521,以確定相應的LPN是否在其中存在。
作為搜索的結(jié)果,如果相應的LPN存在于第一PAT 521,則控制器550檢測與其相應的物理頁號(PPN)。
然后,控制器550組合檢測的PPN和頁偏移,以訪問系統(tǒng)存儲器700,然后確定寫入與PPN相應的系統(tǒng)存儲器700的物理地址的數(shù)據(jù)是否是有效值。
如果確定該數(shù)據(jù)是有效值,則控制器550讀取寫入系統(tǒng)存儲器700的相應物理地址的數(shù)據(jù),然后將讀取的數(shù)據(jù)發(fā)送到主控制單元300。如果確定該數(shù)據(jù)不是有效值,則控制器550確定由主控制單元300請求的頁沒有存在于系統(tǒng)存儲器700中。
如上所述,如果由主控制單元300請求的頁沒有存在于系統(tǒng)存儲器700中,則控制器550通過參考第二PAT 522來確定由主控制單元300請求的數(shù)據(jù)的物理頁號(PPN)是否存在于高速緩存存儲器523中。
如果確定PPN存在于高速緩存存儲器523中,則控制器550讀取寫入高速緩存存儲器523的相應物理地址的數(shù)據(jù),然后將讀取的數(shù)據(jù)發(fā)送到主控制單元300。如果確定PPN沒有存在于高速存儲器523中,則控制器550使用物理地址(PBN和PPN)來訪問串行閃速存儲器100。
通過以上過程,由于需求的數(shù)據(jù)沒有存儲在高速緩存存儲器523中,所以控制器550能夠防止由高速緩存遺漏發(fā)生導致的系統(tǒng)存儲器700的重復搜索所產(chǎn)生的循環(huán)的浪費。
此外,由于通過高速緩存存儲器523的受損高速緩存,減少了高速緩存遺漏的機會,所以在控制器550中提高了高速緩存成功率。因此,可以提供系統(tǒng)的實時特性。
圖5示意性地示出在控制器中根據(jù)優(yōu)先級的頁處理結(jié)構(gòu)。
如圖5所示,當響應于主控制單元300的請求,在讀取操作中,從串行閃速存儲器100讀取包括預定數(shù)據(jù)的頁時,閃速存儲器控制裝置500的控制器550根據(jù)其優(yōu)先級來處理讀取的頁。
換言之,基于直接映射技術(shù)控制器550在與串行閃速存儲器100中的物理地址相應的標記地址將讀取的頁存儲在高速緩存存儲器523中。
控制器550然后確定在將讀取的頁存儲在高速緩存存儲器523的處理期間是否發(fā)生標記沖突。如果發(fā)生標記沖突,則控制器550將沖突頁的優(yōu)先級彼此比較,并且將讀取的頁存儲在高速緩存存儲器523中或系統(tǒng)存儲器700中。
例如,將存儲器地址為#00000的頁(A)存儲在高速緩存存儲器523中與其相應的標記地址#000處。
在該處理期間,控制器550確定是否發(fā)生標記沖突。
如果確定沒有發(fā)生標記沖突,則完成頁(A)在高速存儲器523中的存儲(①)。
此后,如果主控制單元300連續(xù)地請求寫入串行閃速存儲器100中的數(shù)據(jù),則將存儲器地址為#01000的頁(F)存儲在高速緩存存儲器523中與其相應的標記地址#000處(②)。
在該處理中,控制器550確定是否發(fā)生標記沖突。這里,頁(F)與通過寫操作而先前寫入的頁(A)沖突。
如果發(fā)生這樣的沖突,則控制器550將頁(A)和頁(F)的優(yōu)先級彼此比較。
作為比較的結(jié)果,由于要被存儲的頁(F)優(yōu)先級(L)低于頁(A)的優(yōu)先級(H),所以控制器550根據(jù)其優(yōu)先級將頁(F)存儲在系統(tǒng)存儲器700中。
此后,響應于由主控制單元300的連續(xù)的數(shù)據(jù)請求,控制器550從串行閃速存儲器100讀取有關(guān)的數(shù)據(jù)。在這種情況下,控制器550將存儲器地址為#02000的頁(M)存儲在高速緩存存儲器523中與其相應的標記地址#000處(③)。
在該過程中,控制器550確定是否發(fā)生標記沖突。這里,頁(M)與通過寫操作而先前寫入的頁(A)再次沖突。
與以上情況相同,如果發(fā)生這樣的沖突,則控制器550將頁(A)和頁(M)的優(yōu)先級彼此比較。
作為比較的結(jié)果,由于要被存儲的頁(M)的優(yōu)先級(H)與頁(A)的優(yōu)先級(H)相同,所以控制器550根據(jù)頁置換算法將先前寫入的頁(A)轉(zhuǎn)移到受損高速緩存,以存儲(④),并且將讀取的頁(M)存儲在高速緩存存儲器523的標記地址#000處。
在如上構(gòu)造的根據(jù)本發(fā)明的用于在串行閃速存儲器中XIP的基于優(yōu)先級的閃速存儲器控制裝置500中,串行閃速存儲器100和閃速存儲器控制裝置500可以集成為單一串行閃速存儲器芯片。
由于其支持XIP功能,所以這樣的串行閃速存儲器芯片能夠替代ROM或NOR閃速存儲器。此外,該存儲器芯片通過基于優(yōu)先級的存儲器管理方法能夠更有效地執(zhí)行XIP功能。
例如,在如上所述的根據(jù)本發(fā)明實施例的用于在串行閃速存儲器中XIP的基于優(yōu)先級的閃速存儲器控制裝置中,所有模塊可用硬件或軟件實現(xiàn),或者其中一些可用軟件實現(xiàn)。
因此,用硬件或軟件實現(xiàn)根據(jù)本發(fā)明實施例的用于在串行閃速存儲器中XIP的基于優(yōu)先級的閃速存儲器控制裝置的事實并沒有脫離本發(fā)明的精神和范圍。這將是清楚的,即在不脫離本發(fā)明的精神和范圍的情況下,可以對其作出包括在用硬件和/或軟件實現(xiàn)中的改變和修改。
以下,將參考附圖詳細地描述使用如上構(gòu)造的用于在串行閃速存儲器中XIP的基于優(yōu)先級的閃速存儲器控制裝置的存儲器管理方法。
在使用用于在串行閃速存儲器中XIP的基于優(yōu)先級的閃速存儲器控制裝置的存儲器管理方法中,如果施加電,則包含用于引導系統(tǒng)的引導代碼的頁被從串行閃速存儲器100中讀取,然后被緩沖。當主控制單元300請求引導代碼時,該引導代碼然后被發(fā)送到主控制單元300。以這種方式,在串行閃速存儲器中支持XIP的初始化處理完成后,在從主控制單元300接收的控制命令的處理期間,執(zhí)行存儲器管理方法。
換言之,如果在系統(tǒng)通過初始化處理而被引導后,主控制單元300請求寫入串行閃速存儲器100中給定邏輯地址的數(shù)據(jù),則執(zhí)行從串行閃速存儲器100讀取的頁的處理。
因此,在描述使用用于在串行閃速存儲器中XIP的基于優(yōu)先級的閃速存儲器控制裝置的存儲器管理方法時,對認為脫離本發(fā)明的范圍的初始化處理和與寫/刪除操作有關(guān)的處理的詳細描述將被省略。
圖6是示意性地示出使用根據(jù)本發(fā)明的一個實施例的用于在串行閃速存儲器中XIP的基于優(yōu)先級的閃速存儲器控制裝置的存儲器管理方法的流程圖。
如圖6所示,如果閃速存儲器控制裝置500的控制器550從主控制單元300接收用于讀取給定邏輯地址的數(shù)據(jù)的請求(S1),則其通過參考從串行閃速存儲器100和第一PAT 521獲得的映射表來將請求的邏輯地址轉(zhuǎn)換成物理地址(S2)。
控制器550然后通過使用轉(zhuǎn)換的物理地址來確定主控制單元300請求讀取的數(shù)據(jù)的物理頁地址(PPN)是否存在于第一PAT 521中(S3)。
如果確定該物理地址存在于第一PAT 521中,則控制器550訪問系統(tǒng)存儲器700,并且從系統(tǒng)存儲器700的相應的物理地址讀取頁(S4)。
如果確定該物理地址沒有存在于第一PAT 521中,則控制器550通過參考第二PAT 522來確定主控制單元300請求讀取的數(shù)據(jù)的物理地址是否存在于高速緩存存儲器523的主高速緩存中(S5)。
如果確定該相應的物理地址存在于主高速緩存中,則控制器550通過使用物理地址來訪問主高速緩存,并且從主高速緩存的相應的物理地址讀取頁(S6)。
相反,如果確定相應的物理地址沒有存在于主高速緩存中,則控制器550確定主控制單元300請求讀取的數(shù)據(jù)的物理地址是否存在于高速緩存存儲器523的受損高速緩存中(S7)。
如果確定相應的物理地址存在于受損高速緩存中,則控制器550通過使用物理地址來訪問受損高速緩存,并且從受損高速緩存的相應的物理地址讀取頁(S8)。
如果相應的物理地址沒有存在于受損高速緩存中,則控制器550訪問串行閃速存儲器100,并且從串行閃速存儲器100的相應的物理地址讀取頁(S9)。
控制器550然后根據(jù)直接映射技術(shù),在與串行閃速存儲器100中的物理地址相應的標記地址,將讀取的頁存儲于高速緩存存儲器523的主高速緩存中(S10)。
此后,控制器550確定在要被寫的頁和先前存儲在主高速緩存中相應的標記地址的頁之間是否發(fā)生標記沖突(S11)。
如果確定沒有標記沖突,則控制器550完成頁在主高速緩存中的存儲,并且將改變的映射信息寫入第二PAT 522(S12)。
如果確定存在標記沖突,則控制器550將先前存儲的頁和讀取的頁的優(yōu)先級彼此比較(S13)?;诒容^的結(jié)果,控制器550確定先前存儲的頁的優(yōu)先級是否高于讀取的頁的優(yōu)先級(S14)。
如果確定先前存儲的頁的優(yōu)先級高于讀取的頁的優(yōu)先級,則控制器550將讀取的頁存儲在系統(tǒng)存儲器700中,并且將改變的映射信息寫入第一PAT521中(S15)。
相反,如果先前存儲的頁的優(yōu)先級低于讀取的頁的優(yōu)先級,則控制器550將先前存儲的頁轉(zhuǎn)移到高速緩存存儲器523的受損高速緩存中,以在其中存儲,然后將讀取的頁存儲在高速緩存存儲器523的主高速緩存中。
另外,控制器550將改變的映射信息寫入第二PAT 522(S16)。
將參考圖7示例性地詳細描述根據(jù)本發(fā)明實施例的使用用于在串行閃速存儲器中XIP的基于優(yōu)先級的閃速存儲器控制裝置的存儲器管理方法。
圖7是示意性地示出使用根據(jù)本發(fā)明實施例的用于在串行閃速存儲器中XIP的基于優(yōu)先級的閃速存儲器控制裝置的存儲器管理結(jié)構(gòu)的方框圖。
如圖7所示,如果閃速存儲器控制裝置500的控制器550從主控制單元300接收通過其將讀取寫入串行閃速存儲器100中的預定數(shù)據(jù)的控制命令(①),則其搜索系統(tǒng)存儲器700,以通過參考第一PAT 521來確定請求的數(shù)據(jù)的物理地址是否存在于系統(tǒng)存儲器700中(②)。
作為搜索的結(jié)果,如果相應的物理地址存在于系統(tǒng)存儲器700中,則控制器550通過使用請求的數(shù)據(jù)的物理地址來訪問系統(tǒng)存儲器700(③),在相應的物理地址從系統(tǒng)存儲器700讀取數(shù)據(jù),然后將該讀取的數(shù)據(jù)發(fā)送到主控制單元300(④)。
相反,如果相應的物理地址沒有存在于系統(tǒng)存儲器700中,則控制器550搜索高速緩存存儲器523的主高速緩存,以通過參考第二PAT 522確定請求的數(shù)據(jù)的物理地址是否存在于高速緩存存儲器523的主高速緩存中(⑤)。
作為搜索的結(jié)果,如果相應的物理地址存在于主高速緩存中,則控制器550通過使用請求數(shù)據(jù)的物理地址來訪問主高速緩存(⑥),在相應的物理地址從主高速緩存讀取數(shù)據(jù),并且然后將讀取的數(shù)據(jù)發(fā)送到主控制單元300(⑦)。
相反,如果相應的物理地址沒有存在于主高速緩存中,則控制器550通過使用請求的數(shù)據(jù)的物理地址來訪問受損高速緩存(⑧)。
此后,控制器550確定相應的物理地址是否存在于受損高速緩存中。如果相應的物理地址存在于受損高速緩存中,則控制器550在相應的物理地址從受損高速緩存讀取數(shù)據(jù),然后將讀取的數(shù)據(jù)發(fā)送到主控制單元300(⑨)。如果相應的物理地址沒有存在于受損高速緩存中,則控制器550通過使用物理地址來訪問串行閃速存儲器100(⑩)。
然后,控制器550讀取包含從串行閃速存儲器100請求的數(shù)據(jù)的頁,并且將請求的數(shù)據(jù)發(fā)送到主控制單元300。此外,控制器550根據(jù)它們優(yōu)先級將從串行閃速存儲器100讀取的頁存儲在高速緩存存儲器523中或系統(tǒng)存儲器700中。
此外,控制器550將改變的映射信息寫入第一PAT 521或第二PAT 522。
盡管根據(jù)本發(fā)明的用于串行閃速存儲器中XIP的基于優(yōu)先級的閃速存儲器控制裝置500、使用其的存儲器管理方法、和其存儲器芯片已經(jīng)被描述,如使用包括第一PAT 521的閃速存儲器控制裝置500實現(xiàn),但是第一PAT 521可以實現(xiàn)于系統(tǒng)上的給定存儲器空間如系統(tǒng)存儲器700而不是閃速存儲器控制裝置500。
圖8是示意性地示出使用根據(jù)本發(fā)明的另一個實施例的用于在串行閃速存儲器中XIP的基于優(yōu)先級的閃速存儲器控制裝置的存儲器管理結(jié)構(gòu)的方框圖。
如圖8所示,即使在第一PAT 521與高速緩存模塊520分離,并且獨立地位于系統(tǒng)存儲器中的情況下,執(zhí)行與參考圖7描述的相同的基于優(yōu)先級閃速存儲器管理處理。
根據(jù)以上描述的本發(fā)明,從串行閃速存儲器讀取的頁根據(jù)預先分配到它們的優(yōu)先級被存儲在系統(tǒng)存儲器中或高速緩存存儲器中。因此,本發(fā)明提供了通過防止非需求的數(shù)據(jù)積累在高速緩存存儲器中來有效地管理存儲器的方法。
此外,根據(jù)本發(fā)明,數(shù)據(jù)以最大長度積累在高速緩存存儲器中,以防止在高速緩存存儲器中的高速緩存遺漏的發(fā)生。因此,存在優(yōu)點控制器的代碼執(zhí)行的性能能夠被最大化,并且高速緩存存儲器的遺漏率能夠被降低。
根據(jù)本發(fā)明,由于高速緩存存儲器的遺漏率被降低,所以循環(huán)的浪費能夠被防止。因此,存在優(yōu)點系統(tǒng)的實時特性能夠被保持。
此外,根據(jù)本發(fā)明,具有比具有相同性能的高速緩存存儲器的容量要小的容量的存儲器被需求。因此,本發(fā)明具有優(yōu)點可降低用于設計系統(tǒng)的成本,并且改善系統(tǒng)的性能。
盡管,結(jié)合在附圖中示出的實施例描述了本發(fā)明,但是該實施例僅僅為示例性的。本領(lǐng)域的技術(shù)人員應該明白可以對其作出各種修改和改變。
因此,本發(fā)明的技術(shù)精髓和范圍應該由所附的權(quán)利要求限定。
權(quán)利要求
1.一種串行閃速存儲器,包括扇區(qū),表示由多個頁組成并且數(shù)據(jù)存儲在其中的數(shù)據(jù)區(qū)域;和扇區(qū),表示具有關(guān)于數(shù)據(jù)區(qū)域的邏輯地址的信息的備用區(qū)域,其中,每個頁由具有在其中寫入主要數(shù)據(jù)的數(shù)據(jù)部分、和在其中寫入分配到主要數(shù)據(jù)的優(yōu)先級的備用部分組成。
2.如權(quán)利要求1所述的串行閃速存儲器,其中,基于對每頁的主要數(shù)據(jù)的訪問率、及頁的主要數(shù)據(jù)的重要性中的至少一個來確定優(yōu)先級。
3.一種用于在串行閃速存儲器中XIP的基于優(yōu)先級的閃速存儲器控制裝置,其中當主控制單元請求給定邏輯地址的數(shù)據(jù)時,通過參考預定的地址轉(zhuǎn)換表來搜索請求的數(shù)據(jù),并且根據(jù)搜索的結(jié)果,從系統(tǒng)存儲器或高速緩存存儲器讀取相應的數(shù)據(jù),然后將其發(fā)送到主控制單元,或者從串行閃速存儲器讀取包含相應的數(shù)據(jù)的頁,然后將其發(fā)送到主控制單元。
4.如權(quán)利要求3所述的裝置,其中,根據(jù)它們的優(yōu)先級從串行閃速存儲器讀取的頁存儲在系統(tǒng)存儲器或高速緩存存儲器中,并且將改變的映射信息寫入地址轉(zhuǎn)換表中。
5.如權(quán)利要求4所述的裝置,其中,如果在將讀取的頁寫入閃速存儲器的處理期間發(fā)生標記沖突,則通過比較先前存儲的頁和讀取的頁的優(yōu)先級,并且如果先前存儲的頁的優(yōu)先級高于讀取的頁的優(yōu)先級則通過將讀取的頁存儲在系統(tǒng)存儲器中,或者如果先前存儲的頁的優(yōu)先級不高于讀取的頁的優(yōu)先級則通過將先前存儲的頁轉(zhuǎn)移到受損高速緩存并將讀取的頁存儲在主高速緩存中,來根據(jù)它們的優(yōu)先級將讀取的頁存儲在系統(tǒng)存儲器或高速緩存存儲器中。
6.如權(quán)利要求3所述的裝置,其中,地址轉(zhuǎn)換表包括第一PAT,其中寫入關(guān)于存儲在系統(tǒng)存儲器中的頁的映射信息;和第二PAT,其中寫入關(guān)于存儲在高速緩存存儲器中的頁的映射信息。
7.如權(quán)利要求6所述的裝置,其中,第一PAT位于系統(tǒng)存儲器中。
8.如權(quán)利要求6所述的裝置,其中,第二PAT位于高速緩存模塊中。
9.如權(quán)利要求3所述的裝置,還包括高速緩存模塊,其將從串行閃速存儲器讀取的頁存儲在高速緩存存儲器中,并且具有其中寫入關(guān)于讀取的頁的映射信息的地址轉(zhuǎn)換表;和控制器,其通過參考地址轉(zhuǎn)換表來發(fā)送由主控制單元請求的數(shù)據(jù),并且根據(jù)它們的優(yōu)先級將從串行閃速存儲器讀取的頁存儲在高速緩存存儲器或系統(tǒng)存儲器中。
10.如權(quán)利要求9所述的裝置,還包括系統(tǒng)接口單元,其可操作以從主控制單元接收控制命令,并且響應于接收到的控制命令發(fā)送操作的結(jié)果;訪問模塊,其可操作以讀取寫入串行閃速存儲器中的引導代碼,并且將讀取的引導代碼存儲在緩沖器中,所述的訪問模塊包括代碼加載器,其當主控制單元請求引導代碼時,可操作以發(fā)送引導代碼,從而在串行閃速存儲器中實現(xiàn)XIP;和閃速存儲器接口,其響應于主控制單元的控制命令,可操作以分別執(zhí)行將數(shù)據(jù)發(fā)送到串行閃速存儲器,或執(zhí)行從串行閃速存儲器接收數(shù)據(jù)。
11.如權(quán)利要求3所述的裝置,其中,基于對每頁的主要數(shù)據(jù)的訪問率、及頁的主要數(shù)據(jù)的重要性中的至少一個來確定優(yōu)先級。
12.一種閃速存儲器芯片,包括串行單元類型串行閃速存儲器,其由每個具有在其中寫入主要數(shù)據(jù)的數(shù)據(jù)部分和在其中寫入分配到主要數(shù)據(jù)的優(yōu)先級的備用部分的頁組成;和閃速存儲器控制裝置,其可操作以根據(jù)它們的優(yōu)先級將從串行閃速存儲器讀取的頁存儲在系統(tǒng)存儲器或高速緩存存儲器中,并且將改變的映射信息寫入預定的地址轉(zhuǎn)換表中。
13.如權(quán)利要求12所述的閃速存儲器芯片,其中,閃速存儲器控制裝置可操作以通過參考地址轉(zhuǎn)換表來搜索由主控制單元請求的給定邏輯地址的數(shù)據(jù),并且根據(jù)搜索的結(jié)果,從系統(tǒng)存儲器或高速緩存存儲器讀取相應的數(shù)據(jù)并將該數(shù)據(jù)發(fā)送到主控制單元,或者從串行閃速存儲器讀取包含相應的數(shù)據(jù)的頁并將該頁發(fā)送到主控制單元。
14.一種用于在串行閃速存儲器中XIP的基于優(yōu)先級的閃速存儲器管理方法,包括如果從主控制單元接收用于讀取給定邏輯地址的數(shù)據(jù)的請求,則通過參考預定的地址轉(zhuǎn)換表來搜索相應的邏輯地址的數(shù)據(jù);和根據(jù)搜索的結(jié)果從系統(tǒng)存儲器或高速緩存存儲器讀取相應的邏輯地址的數(shù)據(jù),并且將讀取的數(shù)據(jù)發(fā)送到主控制單元。
15.如權(quán)利要求14所述的方法,還包括根據(jù)搜索的結(jié)果從串行閃速存儲器讀取包含相應的數(shù)據(jù)的頁,并且將請求的數(shù)據(jù)發(fā)送到主控制單元。
16.如權(quán)利要求15所述的方法,還包括根據(jù)它們的優(yōu)先級將從串行閃速存儲器讀取的頁存儲在系統(tǒng)存儲器或高速緩存存儲器中,并且將改變的映射信息寫入地址轉(zhuǎn)換表中。
17.如權(quán)利要求14所述的方法,其中,地址轉(zhuǎn)換表包括第一PAT,其中寫入關(guān)于存儲在系統(tǒng)存儲器中的頁的映射信息;和第二PAT,其中寫入關(guān)于存儲在高速緩存存儲器中的頁的映射信息。
18.如權(quán)利要求16所述的方法,其中,根據(jù)它們的優(yōu)先級將讀取的頁存儲在系統(tǒng)存儲器或高速緩存存儲器中的步驟,包括確定在將讀取的頁寫入閃速存儲器的處理期間是否發(fā)生標記沖突;如果確定沒有發(fā)生標記沖突,則將讀取的頁存儲在閃速存儲器中,或如果發(fā)生標記沖突,則將先前存儲的頁和讀取的頁的優(yōu)先級彼此比較;和如果確定先前存儲的頁的優(yōu)先級高于讀取的頁的優(yōu)先級,則將讀取的頁存儲在系統(tǒng)存儲器中,或如果先前存儲的頁的優(yōu)先級不高于讀取的頁的優(yōu)先級,則將先前存儲的頁轉(zhuǎn)移到受損高速緩存中并將讀取的頁存儲在主高速緩存中。
19.如權(quán)利要求16所述的方法,其中,基于對每頁的主要數(shù)據(jù)的訪問率、及頁的主要數(shù)據(jù)的重要性中的至少一個來確定優(yōu)先級。
全文摘要
一種用于在串行閃速存儲器中XIP的基于優(yōu)先級的閃速存儲器控制裝置、使用其的存儲器管理方法、及其存儲器芯片。通過將優(yōu)先級分配到串行閃速存儲器的各個頁,并且根據(jù)它們的優(yōu)先級將從串行閃速存儲器檢索的頁存儲在系統(tǒng)存儲器或高速緩存存儲器來提供有效的存儲器管理。使用根據(jù)本發(fā)明的閃速存儲器控制裝置的存儲器管理方法,包括如果從主控制單元接收用于讀取給定邏輯地址的數(shù)據(jù)的請求,則通過參考預定的地址轉(zhuǎn)換表來搜索相應的邏輯地址的數(shù)據(jù);和根據(jù)搜索的結(jié)果從系統(tǒng)存儲器或高速緩存存儲器讀取相應的邏輯地址的數(shù)據(jù),并且將讀取的數(shù)據(jù)發(fā)送到主控制單元。
文檔編號G06F12/08GK1606097SQ200410080579
公開日2005年4月13日 申請日期2004年10月8日 優(yōu)先權(quán)日2003年10月8日
發(fā)明者樸贊益 申請人:三星電子株式會社