專利名稱:光驅(qū)的數(shù)據(jù)快取方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種光驅(qū)的數(shù)據(jù)快取方法,特別是涉及一種借由計算光驅(qū)中緩沖存儲器(Buffer)的最大可用的數(shù)據(jù)儲存范圍作為快取擊中(CacheHit)的數(shù)據(jù)范圍,增加數(shù)據(jù)快取擊中的比率,提高光驅(qū)的存取效率。
然而,這一數(shù)據(jù)存取速度是針對光盤循序存取的速度而言,若是該光驅(qū)是以隨機存取數(shù)據(jù)的方式計算速度,則所得的效率可能不到原本的十分之一。這是因為該光驅(qū)浪費了許多的時間在物理動作的尋軌(Seek)及芯片組(Chipset)的讀取(Read)數(shù)據(jù)及數(shù)據(jù)解譯(Decode)上,因此在一般的光驅(qū)均設(shè)計有一緩沖存儲器,用以儲放曾經(jīng)存取過的數(shù)據(jù),或者預(yù)先多存取一段數(shù)據(jù),以減少經(jīng)由光盤存取數(shù)據(jù)的時間,這就是快取擊中。
在一般光驅(qū)中數(shù)據(jù)存取的快取擊中比率與緩沖存儲器的大小有關(guān),因為若存取光盤數(shù)據(jù)時,緩沖存儲器中已有前次存取的數(shù)據(jù),則就不需再去作光盤尋軌,讀取及解譯的動作,而直接由緩沖存儲器中存取即可,故而緩沖存儲器的數(shù)據(jù)儲放范圍愈大,則快取擊中的比率自然提高。
早期光驅(qū)存取數(shù)據(jù)均是以循序的方式存取,所以只要數(shù)據(jù)解譯完成一經(jīng)傳送出去,就會被視為快取忽略(Cache miss),因此光盤緩沖存儲器的快取擊中的數(shù)據(jù)范圍只會考慮尚未傳送出去的數(shù)據(jù)范圍,如
圖1即為光驅(qū)1中緩沖存儲器11的數(shù)據(jù)存取示意圖,其中緩沖存儲器11的最大值為N,數(shù)據(jù)讀取中(Reading)的地址為R 111,數(shù)據(jù)解譯中(Decoding)的地址為D 112,數(shù)據(jù)傳輸中(Transferring)的地址為T 113,而緩沖存儲器11的邊界(Boundary)地址為B 114,因此在緩沖存儲器11中數(shù)據(jù)傳輸中的地址T 113到邊界地址B 114的范圍間,雖然仍有數(shù)據(jù)儲放在其中,但還是被視為快取忽略,而快取擊中的范圍僅為數(shù)據(jù)解譯中的地址D 112至數(shù)據(jù)傳輸中的地址T 113之間的數(shù)據(jù)范圍X1 115,若以表達(dá)式表現(xiàn)即為T<快取擊中數(shù)據(jù)范圍<T+X1。
這種方式在循序存取的光驅(qū)中不會產(chǎn)生太大問題,但是在新的光盤技術(shù),如CD-R或CD-RW光驅(qū)中使用的通用光盤格式(Universal DiscFormat,UDF),就不再是循序存取數(shù)據(jù),而是隨機存取數(shù)據(jù),也因此傳統(tǒng)的快取擊中比率會非常低,影響整個光驅(qū)的存取效率。
本發(fā)明的另一日的在于提供一種光驅(qū)的數(shù)據(jù)快取方法,是利用一表達(dá)式計算出光驅(qū)中最大可儲存數(shù)據(jù)的范圍,以作為快取擊中的范圍。
本發(fā)明的再一目的在于提供一種光驅(qū)的數(shù)據(jù)快取方法,是將光驅(qū)內(nèi)緩沖存儲器中已傳送出去的數(shù)據(jù)范圍,仍然作為快取擊中的數(shù)據(jù)范圍。
本發(fā)明的上述目的是這樣實現(xiàn)的一種光驅(qū)的數(shù)據(jù)快取方法,該光驅(qū)內(nèi)設(shè)有一緩沖存儲器,用以儲放所讀取的光盤數(shù)據(jù),以待傳送至一主機,該數(shù)據(jù)快取方法包括下列步驟a.讀取(Read)光盤數(shù)據(jù)后儲放于緩沖存儲器的第一記憶區(qū);b.解譯(Decode)第一記憶區(qū)的數(shù)據(jù)后儲放于緩沖存儲器的第二記憶區(qū);c.傳送(Transfer)第二記憶區(qū)的數(shù)據(jù)至主機后,再儲放于緩沖存儲器的第三記憶區(qū);以及d.再次讀取光盤數(shù)據(jù)前,先檢測緩沖存儲器的第二及第三記憶區(qū)中是否有要讀取的數(shù)據(jù),若有則直接傳送該數(shù)據(jù)至主機,若無則重復(fù)步驟(a)至步驟(b),直到數(shù)據(jù)讀取完畢。
本發(fā)明所述的光驅(qū)的數(shù)據(jù)快取方法,其中步驟(d)檢測緩沖存儲器的第二及第三記憶區(qū)的數(shù)據(jù),該第二及第三記憶區(qū)所形成的數(shù)據(jù)儲放范圍為快取擊中(Cache Hit)的數(shù)據(jù)范圍。
本發(fā)明所述的光驅(qū)的數(shù)據(jù)快取方法,其中該快取擊中的數(shù)據(jù)范圍是由下列的表達(dá)式所計算出T+X2+B-N<快取擊中數(shù)據(jù)范圍<T+X1;其中,T緩沖存儲器中傳送數(shù)據(jù)的地址;X2緩沖存儲器中讀取光盤數(shù)據(jù)的地址至傳送數(shù)據(jù)的地址間的范圍;B緩沖存儲器的邊界地址;N緩沖存儲器的最大值;X1緩沖存儲器中解譯數(shù)據(jù)的地址至傳送數(shù)據(jù)的地址間的范圍。
本發(fā)明所述的光驅(qū)的數(shù)據(jù)快取方法,其中步驟(a)之前還包括下列步驟先檢測緩沖存儲器的第二及第三記憶區(qū)中是否有要讀取的數(shù)據(jù),若有則直接傳送該數(shù)據(jù)至主機,若無則進行步驟(a)。
也就是說,本發(fā)明的上述目的是通過以下技術(shù)方案來實現(xiàn)的,本發(fā)明是一種光驅(qū)的數(shù)據(jù)快取方法,其步驟為首先讀取光盤數(shù)據(jù)后儲放于緩沖存儲器的第一記憶區(qū),解譯第一記憶區(qū)的數(shù)據(jù)后儲放于緩沖存儲器的第二記憶區(qū),傳送第二記憶區(qū)的數(shù)據(jù)至主機后,再儲放于緩沖存儲器的第三記憶區(qū),當(dāng)再次讀取光盤數(shù)據(jù)前,先檢測緩沖存儲器的第二及第三記憶區(qū)中是否有要讀取的數(shù)據(jù),若有則直接傳送該數(shù)據(jù)至主機,若無則再讀取光盤數(shù)據(jù)。
下面,結(jié)合實施例及其附圖對本發(fā)明作進一步詳細(xì)說明。
該光驅(qū)1包括有一光盤存取裝置12用以存取光盤數(shù)據(jù)2;一解譯芯片組13用以解譯該光盤格式的數(shù)據(jù)成一般的數(shù)字?jǐn)?shù)據(jù);一緩沖存儲器11用以暫時儲放該光盤存取裝置12所讀取的光盤數(shù)據(jù)2,及儲放該解譯芯片組13所解譯的數(shù)字?jǐn)?shù)據(jù);一數(shù)據(jù)傳送裝置14用以傳送該解譯后的數(shù)字?jǐn)?shù)據(jù)至主機3中;及一微處理器15用以控制該光盤存取裝置12、解譯芯片組13、緩沖存儲器11及數(shù)據(jù)傳送裝置14間的數(shù)據(jù)交換。
請參閱圖3所示,是為本發(fā)明光驅(qū)中緩沖存儲器的數(shù)據(jù)讀取示意圖。本發(fā)明將光驅(qū)1中的緩沖存儲器11區(qū)分成三個記憶區(qū)范圍,第一記憶區(qū)121為由讀取光盤數(shù)據(jù)2地址R 111至解譯光盤數(shù)據(jù)2地址D 112之間的數(shù)據(jù)范圍,第二記憶區(qū)122為由解譯光盤數(shù)據(jù)2地址D 112至傳送光盤數(shù)據(jù)2至主機3的地址T 113之間的數(shù)據(jù)范圍,及第三記憶區(qū)123為由傳送光盤數(shù)據(jù)2至主機3的地址T 113至緩沖存儲器11的邊界地址B 114之間的數(shù)據(jù)范圍。
本發(fā)明為將光驅(qū)1中的緩沖存儲器11盡可能最大容量均作為快取擊中的數(shù)據(jù)范圍,因此該緩沖存儲器11中唯一不可以作為快取擊中的數(shù)據(jù)范圍的區(qū)域只有第一記憶區(qū)121,其余第二及第三記憶區(qū)122、123均可作為快取擊中的數(shù)據(jù)范圍。然而除了緩沖存儲器11的最大值N及讀取光盤數(shù)據(jù)2的地址R 111可以固定之外,其余解譯光盤數(shù)據(jù)2的地址D 112及傳送光盤數(shù)據(jù)2至主機3的地址T 113均是變動的,也即快取擊中的數(shù)據(jù)范圍是不固定的。
為此本發(fā)明特以一演算式計算快取擊中的最大數(shù)據(jù)范圍,首先定義緩沖存儲器11的最大值為N,定義緩沖存儲器11中解譯數(shù)據(jù)的地址至傳送數(shù)據(jù)的地址間的范圍為X1 115,及定義緩沖存儲器11中讀取光盤數(shù)據(jù)2的地址R 111至傳送數(shù)據(jù)的地址T 113間的范圍為X2 116,該快取擊中的數(shù)據(jù)范圍為T+X2+B-N<快取擊中數(shù)據(jù)范圍<T+X1;經(jīng)由上述的演算式即可計算出快取擊中的數(shù)據(jù)范圍在緩沖存儲器11中區(qū)域范圍了。
請參閱圖4A及圖4B所示,是為本發(fā)明實施例光驅(qū)的數(shù)據(jù)快取方法的流程圖,并請一并參閱圖2,首先當(dāng)主機3第一次要求光驅(qū)1讀取光盤數(shù)據(jù)2時(步驟100),則光盤存取裝置12開始尋軌(步驟101),并讀取光盤數(shù)據(jù)2后儲放于緩沖存儲器11的第一記憶區(qū)121中(步驟102)。
接著解譯芯片組13即開始解譯第一記憶區(qū)121的數(shù)據(jù)后儲放于緩沖存儲器11的第二記憶區(qū)122中(步驟103),此時微處理器15會檢測緩沖存儲器11中是否己儲滿(步驟104),若沒有則繼續(xù)讀取光盤數(shù)據(jù)2(步驟102),直到緩沖存儲器11儲滿。
若當(dāng)緩沖存儲器11己儲滿,則光盤存取裝置12會暫時停止讀取光盤數(shù)據(jù)2,并等待數(shù)據(jù)傳送裝置14將第二記憶區(qū)122中已解譯的光盤數(shù)據(jù)2全部傳送至主機3后,再開始讀取光盤數(shù)據(jù)2(步驟102)。
當(dāng)該數(shù)據(jù)傳送裝置14傳送第二記憶區(qū)122的數(shù)據(jù)至主機3之后,會將該第二記憶區(qū)122的數(shù)據(jù)儲放于第三記憶區(qū)123(步驟105)。接著再判斷是否數(shù)據(jù)已讀取完畢(步驟106),若沒有則繼續(xù)讀取光盤數(shù)據(jù)2(步驟102),直到數(shù)據(jù)讀取完畢為止。
當(dāng)主機3第二次以后再度要求光驅(qū)1讀取光盤數(shù)據(jù)2時(步驟107),則該微處理器15會先檢測緩沖存儲器11的第二及第三記憶區(qū)123中是否有要讀取的數(shù)據(jù)(步驟108),若有則該數(shù)據(jù)傳送裝置14會直接傳送該數(shù)據(jù)至主機3(步驟109),若無則光盤存取裝置12再重復(fù)前述的光盤數(shù)據(jù)2讀取的步驟,直到數(shù)據(jù)讀取完畢為止(步驟101)。
因此,本發(fā)明光驅(qū)的數(shù)據(jù)快取方法,確實能夠通過上述所公開的技術(shù)內(nèi)容,提供一充分利用光驅(qū)中緩沖存儲器內(nèi)所有儲存的數(shù)據(jù)范圍,均盡可能作為快取擊中的數(shù)據(jù)范圍,以增加快取擊中的比率,減少光驅(qū)尋軌、讀取、解譯的動作,而提高光驅(qū)的存取效率。
但是,上述所公開的附圖、說明,僅為本發(fā)明的實施例而已,凡是本專業(yè)領(lǐng)域內(nèi)的普通技術(shù)人員當(dāng)可依據(jù)上述的說明作其它種種的改良,而這些改變?nèi)詫儆诒景l(fā)明的發(fā)明精神及所確定的專利保護范圍中。
權(quán)利要求
1.一種光驅(qū)的數(shù)據(jù)快取方法,該光驅(qū)內(nèi)設(shè)有一緩沖存儲器,用以儲放所讀取的光盤數(shù)據(jù),以待傳送至一主機,該數(shù)據(jù)快取方法包括下列步驟a.讀取光盤數(shù)據(jù)后儲放于緩沖存儲器的第一記憶區(qū);b.解譯第一記憶區(qū)的數(shù)據(jù)后儲放于緩沖存儲器的第二記憶區(qū);c.傳送第二記憶區(qū)的數(shù)據(jù)至主機后,再儲放于緩沖存儲器的第三記憶區(qū);以及d.再次讀取光盤數(shù)據(jù)前,先檢測緩沖存儲器的第二及第三記憶區(qū)中是否有要讀取的數(shù)據(jù),若有則直接傳送該數(shù)據(jù)至主機,若無則重復(fù)步驟(a)至步驟(b),直到數(shù)據(jù)讀取完畢。
2.如權(quán)利要求1所述的光驅(qū)的數(shù)據(jù)快取方法,其特征在于所述的步驟(d)檢測緩沖存儲器的第二及第三記憶區(qū)的數(shù)據(jù),該第二及第三記憶區(qū)所形成的數(shù)據(jù)儲放范圍為快取擊中的數(shù)據(jù)范圍。
3.如權(quán)利要求2所述的光驅(qū)的數(shù)據(jù)快取方法,其特征在于所述的快取擊中的數(shù)據(jù)范圍是由下列的表達(dá)式所計算出T+X2+B-N<快取擊中數(shù)據(jù)范圍<T+X1;其中,T緩沖存儲器中傳送數(shù)據(jù)的地址;X2緩沖存儲器中讀取光盤數(shù)據(jù)的地址至傳送數(shù)據(jù)的地址間的范圍;B緩沖存儲器的邊界地址;N緩沖存儲器的最大值;X1緩沖存儲器中解譯數(shù)據(jù)的地址至傳送數(shù)據(jù)的地址間的范圍。
4.如權(quán)利要求1所述的光驅(qū)的數(shù)據(jù)快取方法,其特征在于所述的步驟(a)之前還包括下列步驟先檢測緩沖存儲器的第二及第三記憶區(qū)中是否有要讀取的數(shù)據(jù),若有則直接傳送該數(shù)據(jù)至主機,若無則進行步驟(a)。
全文摘要
一種光驅(qū)的數(shù)據(jù)快取方法,其是計算光驅(qū)中緩沖存儲器的最大可用的數(shù)據(jù)儲放范圍,作為快取擊中(Cache Hit)的數(shù)據(jù)范圍,增加數(shù)據(jù)快取擊中的比率,該方法首先讀取光盤數(shù)據(jù)后儲放于緩沖存儲器的第一記憶區(qū),解譯第一記憶區(qū)的數(shù)據(jù)后儲放于緩沖存儲器的第二記憶區(qū),傳送第二記憶區(qū)的數(shù)據(jù)至主機后,再儲放于緩沖存儲器的第三記憶區(qū),當(dāng)再次讀取光盤數(shù)據(jù)前,先檢測緩沖存儲器的第二及第三記憶區(qū)中是否有要讀取的數(shù)據(jù),若有則直接傳送該數(shù)據(jù)至主機,若無則再讀取光盤數(shù)據(jù),而前述緩沖存儲器的第二及第三記憶區(qū)即為快取擊中的數(shù)據(jù)范圍。
文檔編號G06F12/06GK1420439SQ0113992
公開日2003年5月28日 申請日期2001年11月19日 優(yōu)先權(quán)日2001年11月19日
發(fā)明者張國強 申請人:建興電子科技股份有限公司