專利名稱:讀取連續(xù)型內(nèi)存的裝置及方法
技術(shù)領(lǐng)域:
本發(fā)明是有關(guān)于一種讀取內(nèi)存的裝置及方法,且特別是有關(guān)于一種讀取連續(xù)型只讀存儲器(Sequential ROM)的裝置及方法。
背景技術(shù):
連續(xù)型內(nèi)存是低成本高密度的內(nèi)存,其接收地址的管腳與輸出數(shù)據(jù)的管腳是共享的,以降低生產(chǎn)成本。連續(xù)型內(nèi)存例如是連續(xù)型只讀存儲器(Sequential ROM)、NAND只讀存儲器及NAND閃存。連續(xù)型內(nèi)存的傳統(tǒng)讀取方法為先輸入地址,待鎖定地址后,再讀出數(shù)據(jù)。在鎖定地址及讀出數(shù)據(jù)需要一段比較長的時間,比如是1000ns,因此其讀取速度不快。除了鎖定地址的讀取方法,連續(xù)型內(nèi)存還利用計數(shù)器循序讀取。只要先鎖定地址,就可以用爆發(fā)式讀取(burst read)的方式讀取其后的連續(xù)地址的數(shù)據(jù)。爆發(fā)式讀取是說,連續(xù)型內(nèi)存內(nèi)部有計數(shù)器,只要鎖定一地址后,計數(shù)器就可以每次將地址增1而循序的輸出下個地址的數(shù)據(jù),不必每次皆執(zhí)行鎖定地址的動作,以加快讀取速度。因此連續(xù)型內(nèi)存相當(dāng)適合于存儲數(shù)據(jù),因數(shù)據(jù)大部分為連續(xù)形態(tài),以爆發(fā)式讀取可彌補其速度慢的缺點。
然而,如要將連續(xù)型內(nèi)存用于存儲程序,其速度慢的缺點就是一個必須克服的課題。程序執(zhí)行時會有許多跳躍的指令,例如是執(zhí)行一個子程序,就必須跳到此子程序的地址,這樣就必須重新鎖定地址以進行讀取。重新鎖定地址再進行讀取耗費相當(dāng)多的時間,尤其程序執(zhí)行中的跳躍指令頗頻繁,因此改進連續(xù)型內(nèi)存的讀取速度是改進的目標。
發(fā)明內(nèi)容
有鑒于此,本發(fā)明的目的就是在提供一種改進讀取速度的讀取連續(xù)型內(nèi)存的裝置及方法。
根據(jù)本發(fā)明的目的,提出一種讀取連續(xù)型內(nèi)存的方法。首先,接收讀取地址。接著,決定讀取地址是否已登錄于高速緩存。若是,則從高速緩存輸出讀取地址指定的數(shù)據(jù);若否,則從連續(xù)型內(nèi)存輸出讀取地址指定的數(shù)據(jù)。
根據(jù)本發(fā)明的另一目的,提出一種讀取連續(xù)型內(nèi)存的裝置,用以依據(jù)一讀取地址從連續(xù)型內(nèi)存讀取數(shù)據(jù)。讀取裝置包括高速緩存、快取決定單元、快取讀取單元、內(nèi)存讀取單元??烊Q定單元用以接收讀取地址,并決定讀取地址是否已登錄于高速緩存。若讀取地址已登錄于高速緩存,則快取讀取單元從高速緩存讀出讀取地址指定的數(shù)據(jù)并輸出。若讀取地址未登錄于高速緩存,則內(nèi)存讀取單元從連續(xù)型內(nèi)存讀出讀取地址指定的數(shù)據(jù)并輸出。
本發(fā)明利用高速緩存以增進連續(xù)型內(nèi)存的讀取速度,并且還利用循序讀取的方法以增進直接讀取連續(xù)型內(nèi)存的速度。
為讓本發(fā)明的上述目的、特征、和優(yōu)點能更明顯易懂,下文特舉一優(yōu)選實施例,并配合附圖,作詳細說明如下。
圖1繪示依照本發(fā)明一優(yōu)選實施例的一種讀取連續(xù)型內(nèi)存的方法的流程圖。
圖2繪示為從連續(xù)型內(nèi)存讀取數(shù)據(jù)的流程圖。
圖3繪示為依照本發(fā)明的一種讀取連續(xù)型內(nèi)存的裝置。
具體實施例方式
本發(fā)明的精神在于利用高速緩存加速連續(xù)型內(nèi)存的讀取速度。請參照圖1,其繪示依照本發(fā)明一優(yōu)選實施例的一種讀取連續(xù)型內(nèi)存的方法的流程圖。本方法用于一處理系統(tǒng),包括一中央處理單元及一連續(xù)型內(nèi)存。處理系統(tǒng)還可能包括其它種類的內(nèi)存,如動態(tài)隨機存取內(nèi)存(DRAM)、EEPROM等。連續(xù)型內(nèi)存從中央處理單元接收到一地址后,首先判斷此地址是否屬于此連續(xù)型內(nèi)存,如步驟110所示若否,表示此地址屬于其它內(nèi)存,則結(jié)束本方法;若此地址屬于此連續(xù)型內(nèi)存,則決定此地址的內(nèi)容是否已經(jīng)存于高速緩存(cache memory),如步驟120所示。決定此地址的內(nèi)容是否已經(jīng)存于高速緩存的方法是比較此地址與高速緩存的標記地址(TAG address)。若有任一標記地址與此地址符合,表示此地址所欲讀取的數(shù)據(jù)已存于高速緩存,所以可以直接從高速緩存輸出數(shù)據(jù),如步驟130所示。若沒有標記地址與此地址符合,則必須從連續(xù)型內(nèi)存讀取數(shù)據(jù),如步驟140所示,然后更新高速緩存,如步驟150,以加快下次的讀取。高速緩存可為直接映像式(direct mapped)或為集合關(guān)系式(set associative)。
圖2繪示為步驟140的從連續(xù)型內(nèi)存讀取數(shù)據(jù)的流程圖。首先,決定此地址是否與上次讀取的地址屬于同一頁(page hit),如步驟21O所示。若非為同一頁,則開始鎖定地址的周期(address latch cycle),如步驟240所示。一段時間后,如約1000ns,即可輸出數(shù)據(jù),如步驟250所示。若為同一頁,則再決定此地址與上次讀取的地址的差距是否小于等于7,如步驟220所示。若是,依上次讀取的地址循序讀到此地址的數(shù)據(jù)而輸出,如步驟230所示;若否,則執(zhí)行步驟240。在步驟230中,循序讀取數(shù)據(jù)的方法只利用內(nèi)存內(nèi)部的計數(shù)器從上次地址開始計數(shù)到此次地址才輸出數(shù)據(jù)。鎖定地址的方式需等1000ns后才能開始讀取,每次讀取需200ns,因此在地址差距在7之內(nèi)使用循序讀取的方式會比鎖定地址的方式來的快,超過7的話就使用傳統(tǒng)的鎖定地址的方式讀取。
圖3繪示為依照本發(fā)明的一種讀取連續(xù)型內(nèi)存的裝置300,用以依據(jù)一讀取地址A從連續(xù)型內(nèi)存100讀取數(shù)據(jù)D。讀取裝置300包括高速緩存310、快取決定單元320、快取讀取單元330、內(nèi)存讀取單元340??烊Q定單元320用以接收讀取地址A,并決定讀取地址A是否已登錄于高速緩存310。若讀取地址A已登錄于高速緩存310,則快取讀取單元330從高速緩存310讀出讀取地址A指定的數(shù)據(jù)D并輸出。若讀取地址A未登錄于高速緩存310,則內(nèi)存讀取單元340從連續(xù)型內(nèi)存100讀出讀取地址A指定的數(shù)據(jù)D并輸出。
讀取裝置300還可包括一快取更新單元(未繪于附圖),用以將內(nèi)存讀取單元340輸出的該數(shù)據(jù)更新于該高速緩存。內(nèi)存讀取單元340包括頁次決定單元、差距決定單元、與循序讀取單元(未繪于附圖)。頁次決定單元用以決定讀取地址A與上次讀取的一前次地址是否屬于同一頁。若讀取地址A與前次地址屬于同一頁,則差距決定單元再決定讀取地址A與前次地址之差距是否小于一默認值,例如為7。若讀取地址A與前次地址的差距小于默認值,則循序讀取單元即循序地從前次地址開始讀取連續(xù)型內(nèi)存100,依序讀到讀取地址A后輸出讀取地址指定的數(shù)據(jù)D。若讀取地址A與前次地址不屬于同頁或其差距大于默認值,則鎖定單元開始鎖定(latch)讀取地址A。然后,輸出單元依據(jù)鎖定的讀取地址A從連續(xù)型內(nèi)存100輸出該數(shù)據(jù)D。
綜上所述,本發(fā)明利用高速緩存以增進連續(xù)型內(nèi)存的讀取速度,并且還利用循序讀取的方法以增進直接讀取連續(xù)型內(nèi)存的速度。
本發(fā)明上述實施例所揭露的讀取連續(xù)型內(nèi)存的裝置及方法利用高速緩存及循序讀取的方法以增進連續(xù)型內(nèi)存的讀取速度。
綜上所述,雖然本發(fā)明已以一優(yōu)選實施例揭露如上,然其并非用以限定本發(fā)明,任何本領(lǐng)域技術(shù)人員,在不脫離本發(fā)明的實質(zhì)和范圍內(nèi),當(dāng)可作各種改動與潤飾,因此本發(fā)明的保護范圍當(dāng)視后附的權(quán)利要求書所限定范圍為準。
權(quán)利要求
1.一種讀取連續(xù)型內(nèi)存的方法,用以依據(jù)一讀取地址從該連續(xù)型內(nèi)存讀取一數(shù)據(jù),包括步驟a.接收該讀取地址;b.決定該讀取地址是否已登錄于一高速緩存,若是,則執(zhí)行步驟c,若否,則執(zhí)行步驟d;c.從該高速緩存輸出該讀取地址指定的該數(shù)據(jù),并結(jié)束本方法;以及d.從該連續(xù)型內(nèi)存輸出該讀取地址指定的該數(shù)據(jù)。
2.如權(quán)利要求1所述的讀取連續(xù)型內(nèi)存的方法,其中步驟d包括d1.決定該讀取地址與上次讀取的一前次地址是否屬于同一頁,若是則執(zhí)行步驟d2,若否則執(zhí)行步驟d4;d2.決定該讀取地址與該前次地址的差距是否小于一默認值,若是則執(zhí)行步驟d3,若否則執(zhí)行步驟d4;d3.循序地從該前次地址開始讀取,讀到該讀取地址后輸出該讀取地址指定的該數(shù)據(jù),并結(jié)束本方法;d4.鎖定(latch)該讀取地址;以及d5.輸出該讀取地址指定的該數(shù)據(jù)。
3.如權(quán)利要求1所述的讀取連續(xù)型內(nèi)存的方法,其中步驟d還包括以該數(shù)據(jù)更新該高速緩存。
4.如權(quán)利要求1所述的讀取連續(xù)型內(nèi)存的方法,其中該高速緩存是直接映像(direct mapped)的。
5.如權(quán)利要求1所述的讀取連續(xù)型內(nèi)存的方法,其中該高速緩存是集合關(guān)系型(set associative)的。
6.一種讀取連續(xù)型內(nèi)存的裝置,用以依據(jù)一讀取地址從該連續(xù)型內(nèi)存讀取一數(shù)據(jù),包括一高速緩存;一快取決定單元,用以接收該讀取地址,并決定該讀取地址是否已登錄于該高速緩存;一快取讀取單元,若該讀取地址已登錄于該高速緩存,則從該高速緩存讀取該讀取地址指定的該數(shù)據(jù)并輸出;以及一內(nèi)存讀取單元,若該讀取地址未登錄于該高速緩存,則從該連續(xù)型內(nèi)存讀取該讀取地址指定之該數(shù)據(jù)并輸出。
7.如權(quán)利要求6所述的讀取連續(xù)型內(nèi)存的裝置,該裝置還包括一快取更新單元,以內(nèi)存讀取單元輸出的該數(shù)據(jù)更新于該高速緩存。
8.如權(quán)利要求6所述的讀取連續(xù)型內(nèi)存的裝置,其中該內(nèi)存讀取單元包括一頁次決定單元,決定該讀取地址與上次讀取的一前次地址是否屬于同一頁;一差距決定單元,若該讀取地址與該前次地址屬于同一頁,則決定該讀取地址與該前次地址的差距是否小于一默認值;一循序讀取單元,若該讀取地址與該前次地址的差距小于該默認值,則循序地從該前次地址開始讀取該連續(xù)型內(nèi)存,依序讀到該讀取地址后輸出該讀取地址指定的該數(shù)據(jù);一鎖定單元,若該讀取地址與該前次地址不屬于同頁或其差距大于該默認值,則該鎖定單元開始鎖定該讀取地址;以及一輸出單元,依據(jù)鎖定的該讀取地址從該連續(xù)型內(nèi)存輸出該數(shù)據(jù)。
9.如權(quán)利要求6所述的讀取連續(xù)型內(nèi)存的裝置,其中該高速緩存是直接映像(direct mapped)的。
10.如權(quán)利要求6所述的讀取連續(xù)型內(nèi)存的裝置,其中該高速緩存是集合關(guān)系型(set associative)的。
全文摘要
一種讀取連續(xù)型內(nèi)存的裝置及方法。所述方法用以依據(jù)一讀取地址從該連續(xù)型內(nèi)存讀取一數(shù)據(jù),包括步驟首先,接收讀取地址;接著,決定讀取地址是否已登錄于高速緩存;若是,則從高速緩存輸出讀取地址指定的數(shù)據(jù);若否,則從連續(xù)型內(nèi)存輸出讀取地址指定的數(shù)據(jù)。
文檔編號G06F12/00GK1532705SQ03107259
公開日2004年9月29日 申請日期2003年3月19日 優(yōu)先權(quán)日2003年3月19日
發(fā)明者劉明恒, 張擇亞 申請人:旺宏電子股份有限公司