專利名稱:讀取數(shù)據(jù)的裝置及方法
技術(shù)領(lǐng)域:
本發(fā)明是關(guān)于一種數(shù)據(jù)處理的裝置及方法,特別是一種節(jié)省微處理器讀取寄存器中的數(shù)據(jù)時所耗費時間的方法及裝置。
背景技術(shù):
近年來,全球邁入信息化的時代,特別是計算機(jī)技術(shù)的成熟與快速發(fā)展,使得數(shù)字科技與人類生活密不可分,幾乎每個人都擁有一臺屬于自己的個人計算機(jī)用以處理許多工作上以及生活上的事務(wù),例如以計算機(jī)處理文書方面的事務(wù),而在休閑方面則是以計算機(jī)上網(wǎng)或是播放影音媒體等等。
計算機(jī)的組成較為重要的組件不外乎就是微處理器、儲存單元以及寄存單元。以計算機(jī)的角度而言,就僅僅只是處理數(shù)字?jǐn)?shù)據(jù)而已;舉例而言,由硬盤讀取出影音媒體文檔并且顯示于屏幕上,或是由外在的儲存媒體讀取數(shù)據(jù)并且將該數(shù)據(jù)處理之后,再儲存于硬盤中。而不管是硬盤中的數(shù)據(jù)或是由外在儲存媒體的數(shù)據(jù),都會經(jīng)由寄存單元來暫時存放以等待微處理器的讀取并且處理。
一個具有多任務(wù)操作系統(tǒng)的微處理器有調(diào)度多個程序的能力,當(dāng)某個程序向數(shù)據(jù)處理裝置的寄存單元要求數(shù)據(jù)時,若數(shù)據(jù)尚未準(zhǔn)備完成,則必須有方法以解決上述的情況。
在公知技術(shù)中,解決寄存單元中的數(shù)據(jù)尚未準(zhǔn)備完成的情況有兩種方法,一種方法步驟請參考圖1,另一種請參考圖2。圖1中,步驟S10表示所欲被處理的數(shù)據(jù)已存于寄存器中,而微處理器正在讀取寄存器中的數(shù)據(jù)。步驟S12表示有兩種情況會發(fā)生,一是當(dāng)寄存器中的數(shù)據(jù)皆被微處理器讀取,而無新進(jìn)數(shù)據(jù)時,為數(shù)據(jù)無效,步驟進(jìn)行至S14;另一種是當(dāng)寄存器中的數(shù)據(jù)仍足夠微處理器讀取,則為數(shù)據(jù)有效,步驟回到S10。步驟S14表示微處理器處于詢問狀態(tài),即時時刻刻注意該寄存器是否有新進(jìn)數(shù)據(jù)以供讀取。簡言之,微處理器會一直等待寄存器中的新進(jìn)數(shù)據(jù),直至寄存器有新進(jìn)數(shù)據(jù),步驟便會回到S10。從上所述,第一公知技術(shù)的問題在于,在多任務(wù)操作系統(tǒng)環(huán)境下,一個讀取寄存器的程序,若發(fā)現(xiàn)寄存器的數(shù)據(jù)無效后,還會一直詢問狀態(tài)情況下,占據(jù)了太多微處理器的時間,相對地,減少了其它程序使用微處理器的時間。
圖2中,步驟S20表示所欲被處理的數(shù)據(jù)已存于寄存器中,而微處理器正在讀取寄存器中的數(shù)據(jù),假設(shè)寄存器的容量為32字節(jié)(bytes)數(shù)據(jù),當(dāng)微處理器將32字節(jié)的數(shù)據(jù)讀取完后,便進(jìn)行至步驟S22,即切換處理其它程序。直至寄存器中又存滿32字節(jié)的數(shù)據(jù)后,便送出中斷信號至微處理器。流程進(jìn)行至步驟S24,微處理器接收中斷信號后,便暫停目前處理的程序,回到步驟S20讀取寄存器中32字節(jié)的數(shù)據(jù)。綜上所述,雖然微處理器不像第一公知技術(shù)中經(jīng)常分時分工詢問寄存器狀態(tài);但是在第二公知技術(shù)中,只要微處理器將寄存器中的32字節(jié)數(shù)據(jù)讀取完畢后,便會切換至其它程序,一方面處理其它程序,另一方面等待中斷信號。如此一來,每讀取32字節(jié),則微處理器便需要處理一個中斷信號。
更進(jìn)一步說明公知技術(shù)的問題,請參考圖3以及圖4。圖3為圖1流程缺點的示意圖,圖3中區(qū)塊30代表微處理器為了執(zhí)行程序A而由寄存器中讀取數(shù)據(jù)所耗費的時間,以及區(qū)塊32代表微處理器讀不到寄存器中的數(shù)據(jù)(即讀不到有效數(shù)據(jù))而不斷地詢問并等待寄存器所耗費的時間。由圖得知,寄存器中一旦具有數(shù)據(jù)時,微處理器便馬上進(jìn)行讀取的動作,而在讀取之后又繼續(xù)詢問并且等待寄存器,因此,耗費了許多詢問及等待的時間。換句話說,微處理器完成程序A所花費的總時間中,區(qū)塊32占了相當(dāng)多的部分。
圖4為圖2流程缺點的示意圖,圖4中區(qū)塊40代表微處理器為了執(zhí)行程序A而由寄存器中讀取數(shù)據(jù)所耗費的時間,區(qū)塊42代表微處理器讀不到寄存器中的數(shù)據(jù)(即讀不到有效數(shù)據(jù))而切換至程序B所耗費的時間,以及區(qū)塊44代表微處理器執(zhí)行程序B所耗費的時間。由圖得知,因為微處理器讀不到寄存器中的有效數(shù)據(jù),而切換至程序B,但微處理器只要接收到中斷信號告知寄存器中具有程序A所需要的數(shù)據(jù)時,便又會由程序B切換回程序A,并且讀取寄存器中的數(shù)據(jù)。因此,耗費了許多程序切換的時間,換句話說,微處理器完成程序A所花費的總時間中,區(qū)塊42占了相當(dāng)多的部份。
發(fā)明內(nèi)容
本發(fā)明提供一種數(shù)據(jù)處理的方法,用以節(jié)省微處理器讀取寄存器中的數(shù)據(jù)時所耗費的時間,該方法包含有下列步驟由一微處理器讀取一寄存器中的數(shù)據(jù);若該寄存器中的數(shù)據(jù)為有效,則由該微處理器持續(xù)讀取數(shù)據(jù);若該寄存器中的數(shù)據(jù)為無效,則由該微處理器啟用一指示器而微處理器便可以執(zhí)行其它程序;當(dāng)寄存器再度被新進(jìn)數(shù)據(jù)充填至一固定比例時并且該指示器為啟用狀態(tài),則傳送一中斷信號至該微處理器;由該微處理器禁用該指示器;以及由該微處理器繼續(xù)讀取該寄存器中的數(shù)據(jù)。
本發(fā)明亦提供一種數(shù)據(jù)處理的裝置,用以節(jié)省微處理器讀取寄存器中的數(shù)據(jù)時所耗費的時間,該裝置包含一寄存器,用以暫時存放數(shù)據(jù);一微處理器,可以存取該寄存器中的數(shù)據(jù);一指示器,用以指示是否發(fā)送一中斷信號至該微處理器;以及一監(jiān)視單元,用以監(jiān)視該寄存器中是否填滿新進(jìn)數(shù)據(jù)至一固定比例;其中,當(dāng)該微處理器于寄存器中讀取的數(shù)據(jù)為無效數(shù)據(jù)時,將該指示器的內(nèi)容設(shè)定為1;當(dāng)該寄存器中填滿新進(jìn)數(shù)據(jù)至該固定比例且該指示器的內(nèi)容為1時,傳送該中斷信號至該微處理器;當(dāng)該微處理器接收該中斷信號時,設(shè)定該指示器內(nèi)容為0,并且讀取該寄存器中的數(shù)據(jù)。
當(dāng)微處理器讀取到無效數(shù)據(jù)時,便設(shè)定指示器為1,代表當(dāng)數(shù)據(jù)處理裝置填滿數(shù)據(jù)至固定比例時,微處理器便會去等待一中斷信號,此等待時間,微處理器可以去處理其它事情,若是以第一個公知方法,便會花費很多微處理器詢問數(shù)據(jù)有效或無效的時間。
微處理器并不是一直跟數(shù)據(jù)處理裝置要數(shù)據(jù),假設(shè)在要一筆數(shù)據(jù)后,數(shù)據(jù)處理裝置已經(jīng)沒有數(shù)據(jù)了,此時,數(shù)據(jù)處理裝置會趕緊做充填的動作,也很幸運地,微處理器再要下一筆數(shù)據(jù)時,數(shù)據(jù)裝置已經(jīng)完成充填,所以微處理器也拿到有效的數(shù)據(jù),這個過程中,指示器一直為0,所以數(shù)據(jù)裝置完成充填,也不會產(chǎn)生中斷信號給微處理器。也就不會有第二個公知技術(shù)產(chǎn)生太多中斷信號的缺點。
關(guān)于本發(fā)明的優(yōu)點與精神可以藉由以下的發(fā)明詳述及所附圖式得到進(jìn)一步的了解。
圖1為第一公知技術(shù)的流程圖;圖2為第二公知技術(shù)的流程圖;圖3為圖1流程缺點的示意圖;圖4為圖2流程缺點的示意圖;圖5為根據(jù)本發(fā)明的數(shù)據(jù)處理方法的流程圖;圖6為根據(jù)本發(fā)明一實施例中微處理器處理程序的示意圖;以及圖7為根據(jù)本發(fā)明的數(shù)據(jù)處理裝置的示意圖。
組件符號說明30微處理器為了執(zhí)行程序A而由寄存器中讀取數(shù)據(jù)所耗費的時間區(qū)塊。
32微處理器讀不到有效數(shù)據(jù)而不斷地詢問并等待寄存器所耗費的時間區(qū)塊。
40微處理器為了執(zhí)行程序A而由寄存器中讀取數(shù)據(jù)所耗費的時間區(qū)塊。
42微處理器讀不到有效數(shù)據(jù)而切換至程序B所耗費的時間區(qū)塊。
44微處理器執(zhí)行程序B所耗費的時間區(qū)塊。
60微處理器為了執(zhí)行程序A而由寄存器中讀取數(shù)據(jù)所耗費的時間區(qū)塊。
62微處理器讀不到寄存器中的數(shù)據(jù)(即讀不到有效數(shù)據(jù))而切換至程序B所耗費的時間區(qū)塊。
64微處理器執(zhí)行程序B所耗費的時間區(qū)塊。
102寄存器。
104微處理器。
106指示器。
108監(jiān)視單元。
100本發(fā)明的數(shù)據(jù)處理裝置S10~S14公知讀取數(shù)據(jù)的方法的流程
S20~S24另一公知讀取數(shù)據(jù)的方法的流程S30~S38依本發(fā)明的數(shù)據(jù)處理方法的流程具體實施方式
本發(fā)明提供一種數(shù)據(jù)處理的方法,用以節(jié)省微處理器讀取寄存器中的數(shù)據(jù)時所耗費的時間,達(dá)到有效率地處理數(shù)據(jù)的目的。
請參閱圖5,圖5為本發(fā)明的數(shù)據(jù)處理方法流程圖。步驟S30至步驟S32的說明與公知技術(shù)類似,因此不再贅述。而于步驟S34中,微處理器啟用一指示器用以表明欲處理的數(shù)據(jù)乃是緊急,因此一旦接收到這一類數(shù)據(jù)時便要發(fā)送一中斷信號至該微處理器;緊接著于步驟S36,微處理器便可以暫時執(zhí)行其它程序并且等待中斷信號;若是寄存器再度充填新進(jìn)數(shù)據(jù)至寄存器容量的一固定比例并且指示器為啟用狀態(tài),則微處理器將會接收到中斷信號,用以通知停止目前執(zhí)行的程序,先行禁用指示器然后讀取寄存器的數(shù)據(jù),如步驟S38所示。
請參閱圖6,圖6為根據(jù)本發(fā)明一實施例中微處理器處理程序的示意圖,圖6中區(qū)塊60代表微處理器為了執(zhí)行程序A而由寄存器中讀取數(shù)據(jù)所耗費的時間,區(qū)塊62代表微處理器讀不到寄存器中的數(shù)據(jù)(即無效數(shù)據(jù))而切換至程序B所耗費的時間,以及區(qū)塊64代表微處理器執(zhí)行程序B所耗費的時間。由圖得知,因為微處理器讀不到寄存器中的有效數(shù)據(jù),而切換至程序B,此時寄存器正在充填程序A所需要的數(shù)據(jù),直到時間T1時寄存器中程序A所需數(shù)據(jù)已達(dá)到一固定比例,舉例而言,此固定比例為寄存器容量的50%,送出中斷信號至微處理器告知寄存器中已具有程序A所需要的大量數(shù)據(jù),此時便又會由程序B切換回程序A,并且讀取寄存器中的數(shù)據(jù)。因此,減少了許多耗費在程序切換的時間,換句話說,微處理器完成程序A所花費的總時間中,區(qū)塊62占了相當(dāng)少的部分,此外還能處理其它程序,例如程序B,大大提升微處理器的效率。在此所提及“無效數(shù)據(jù)”即指在寄存器中已無程序A所需要的數(shù)據(jù),或是指寄存器中無數(shù)據(jù);同理,讀不到有效數(shù)據(jù)亦是相同的意思。
請參閱圖7,圖7為本發(fā)明的數(shù)據(jù)處理裝置示意圖。本發(fā)明的數(shù)據(jù)處理裝置100包含寄存器102,用以暫時存放數(shù)據(jù);微處理器104與寄存器102相連,可以存取寄存器102中的數(shù)據(jù);指示器106,與微處理器104相連,當(dāng)寄存器102中的數(shù)據(jù)為無效時,微處理器104便會啟用指示器106,當(dāng)微處理器104接收中斷信號時,便會禁用指示器106;以及監(jiān)視單元108,用以監(jiān)視寄存器102中是否充填新進(jìn)數(shù)據(jù)至一固定比例,當(dāng)寄存器102中填滿新進(jìn)數(shù)據(jù)至該固定比例,監(jiān)視單元108則會送出中斷信號至微處理器104告知寄存器中已具有大量所需的數(shù)據(jù),此時微處理器會先暫停正在處理的程序,轉(zhuǎn)而處理先前待處理的程序。
通過以上較佳具體實施例的詳述,希望能更加清楚描述本發(fā)明的特征與精神,而并非以上述所揭露的較佳具體實施例來對本發(fā)明的范疇加以限制。相反地,其目的是希望能涵蓋各種改變及具相等性的安排于本發(fā)明所欲申請的權(quán)利要求的范疇內(nèi)。
權(quán)利要求
1.一種微處理器讀取數(shù)據(jù)的方法,包含下列步驟由一微處理器讀取一寄存器中的數(shù)據(jù);若該寄存器中的數(shù)據(jù)為有效,則由該微處理器持續(xù)讀取數(shù)據(jù);若該寄存器中的數(shù)據(jù)為無效,則由該微處理器啟用一指示器;當(dāng)該寄存器再度被新進(jìn)數(shù)據(jù)充填至一固定比例時,傳送一中斷信號至該微處理器;由該微處理器禁用該指示器;以及由該微處理器讀取該寄存器中的數(shù)據(jù)。
2.如權(quán)利要求1所述的方法,其中當(dāng)該寄存器再度被新進(jìn)數(shù)據(jù)充填至一固定比例時并且該指示器為啟用狀態(tài),便傳送一中斷信號至該微處理器。
3.如權(quán)利要求1所述的方法,其中該寄存器為一先進(jìn)先出寄存器。
4.如權(quán)利要求1所述的方法,其中啟用該指示器是將該指示器的內(nèi)容設(shè)為1,而禁用該指示器是將該指示器的內(nèi)容設(shè)為0。
5.如權(quán)利要求1所述的方法,其中該固定比例為大于該寄存器容量的50%。
6.如權(quán)利要求1所述的方法,其中該寄存器中的數(shù)據(jù)為有效是指該寄存器中仍存有數(shù)據(jù),而該寄存器中的數(shù)據(jù)為無效是指該寄存器中已無數(shù)據(jù)供以讀取。
7.一種數(shù)據(jù)處理裝置,該裝置包含一寄存器,用以暫時存放數(shù)據(jù);一微處理器,可以存取該寄存器中的數(shù)據(jù);一指示器,用以指示是否發(fā)送一中斷信號至該微處理器;以及一監(jiān)視單元,用以監(jiān)視該寄存器中是否填滿新進(jìn)數(shù)據(jù)至一固定比例;其中,當(dāng)該微處理器于寄存器中讀取的數(shù)據(jù)為無效數(shù)據(jù)時,將該指示器的內(nèi)容設(shè)定為1;當(dāng)該寄存器中填滿新進(jìn)數(shù)據(jù)至該固定比例時,傳送該中斷信號至該微處理器;當(dāng)該微處理器接收該中斷信號時,設(shè)定該指示器內(nèi)容為0,并且讀取該寄存器中的數(shù)據(jù)。
8.如權(quán)利要求7所述的數(shù)據(jù)處理裝置,其中當(dāng)該寄存器中填滿新進(jìn)數(shù)據(jù)至該固定比例且該指示器的內(nèi)容為1時,傳送該中斷信號至該微處理器。
9.如權(quán)利要求7所述的數(shù)據(jù)處理裝置,其中該寄存器為一先進(jìn)先出寄存器。
10.如權(quán)利要求7所述的數(shù)據(jù)處理裝置,其中該固定比例為大于該寄存器容量的50%。
全文摘要
一種微處理器讀取數(shù)據(jù)的方法,用以節(jié)省微處理器讀取寄存器中的數(shù)據(jù)時所耗費的時間,該方法包含下列步驟由一微處理器讀取一寄存器中的數(shù)據(jù);若該寄存器中的數(shù)據(jù)為有效,則由該微處理器持續(xù)讀取數(shù)據(jù);若該寄存器中的數(shù)據(jù)為無效,則由該微處理器啟用一指示器;該微處理器接收該寄存器所傳送的一中斷信號;由該微處理器禁用該指示器;以及由該微處理器繼續(xù)讀取該寄存器中的數(shù)據(jù)。
文檔編號G06F15/78GK1694087SQ20051007706
公開日2005年11月9日 申請日期2005年6月15日 優(yōu)先權(quán)日2005年6月15日
發(fā)明者蘇胤合, 王家仁 申請人:威盛電子股份有限公司