亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

存取控制裝置和存取方法

文檔序號:6445099閱讀:141來源:國知局
專利名稱:存取控制裝置和存取方法
技術(shù)領(lǐng)域
本發(fā)明涉及存取控制裝置和存取方法,特別是涉及由CPU(中央處理單元)對存儲器的存取進(jìn)行控制的存取控制裝置和存取方法。
圖5是表明現(xiàn)有的信息處理裝置的構(gòu)成的框圖,示出了與由CPU160或第1和第2處理電路500、510對DRAM(動態(tài)隨機(jī)存取存儲器)120進(jìn)行存取有關(guān)的構(gòu)成。
圖5所示的信息處理裝置,具備CPU160、存取口140、DRAM120、總線仲裁器130和第1及第2處理電路500、510。作成為把存取口140、DRAM120、總線仲裁器130、第1和第2處理電路制作在LSI110上邊。
CPU160控制信息處理裝置整體的動作。DRAM120是具有與寫入、保持、讀出信息處理裝置的動作有關(guān)的信息的功能的存儲器??偩€仲裁器130根據(jù)由CPU160、第1和第2處理電路500、510對DRAM120進(jìn)行存取的要求和優(yōu)先度高的要求,允許進(jìn)行存取。存取口140,具備用來寫入從CPU160輸出的與對DRAM120進(jìn)行存取有關(guān)的信息的寄存器,并把存取要求向總線仲裁器130傳送。第1和第2處理電路500、510,是任意個(gè)數(shù)的處理電路,并不限于2個(gè)。
圖6是表明存取口140的構(gòu)成的框圖。存取口140,還具備DRAM字節(jié)地址指定用寄存器141、DRAM字?jǐn)?shù)據(jù)讀寫用寄存器142、存取模式指定用寄存器143。存取模式指定用寄存器143,還具備DRAM地址可變指定位144、DRAM地址增加/減少指定位145。
DRAM字節(jié)地址指定用寄存器141,是用來寫入CPU160所要存取的DRAM的地址的寄存器。DRAM字?jǐn)?shù)據(jù)讀寫用寄存器142,保持已寫入到DRAM字節(jié)地址指定用寄存器141中的地址的數(shù)據(jù),或用來向已寫入到DRAM字節(jié)地址指定用寄存器141中的地址進(jìn)行寫入的數(shù)據(jù)。存取模式指定用寄存器143,指定對DRAM120進(jìn)行存取的方法。DRAM地址可變指定位144,用0或1指定是否使已寫入到DRAM字節(jié)地址指定用寄存器141中的地址連續(xù)地變化。DRAM地址增加/減少指定位145,用0或1,指定是使已寫入到DRAM字節(jié)地址指定用寄存器141中的地址連續(xù)地增加還是減少。
其次,用圖5和圖6對存取動作進(jìn)行說明。
在CPU160要讀出規(guī)定的地址,例如,第0x0500號地址的數(shù)據(jù)的情況下,就把0寫入到DRAM地址可變指定位144中,把第0x0500號地址寫入到DRAM地址指定用寄存器141中。此外,如果CPU160要對連續(xù)的地址,例如,對第0x0500號地址~第0x0508號地址進(jìn)行存取,則把1寫入到DRAM地址可變指定位144中,把1寫入到DRAM地址增加/減少指定位145中,把第0x0500號地址寫入到DRAM地址指定用寄存器141中。此外,如果CPU160要對象從第0x0508號地址~第0x0500號地址這樣地在減少方向上連續(xù)的地址進(jìn)行存取,則把1寫入到DRAM地址可變指定位144中,把0寫入到DRAM增加/減少指定位145中,把第0x0508號地址寫入到DRAM地址指定用寄存器141中。
CPU160經(jīng)由存取口140向總線仲裁器130提出存取要求。如果從第1和第2處理電路500、510也要求對DRAM120進(jìn)行存取,則總線仲裁器130就對CPU160和第1、第2處理電路500、510的要求進(jìn)行比較,允許優(yōu)先度高的要求對地址進(jìn)行存取。例如,在CPU160的要求優(yōu)先度高的情況下,總線仲裁器130,就使CPU160對所要求的地址進(jìn)行存取,所存取的地址的數(shù)據(jù),就被讀出到DRAM字?jǐn)?shù)據(jù)讀寫用寄存器142中。如果CPU160要對DRAM字?jǐn)?shù)據(jù)讀寫用寄存器142進(jìn)行存取,就可以讀出要求進(jìn)行存取的地址的數(shù)據(jù)。這時(shí),若把0寫入到DRAM地址可變位144中,則讀出結(jié)束。若把1寫入到DRAM地址可變位144中,則已寫入到DRAM地址指定用寄存器141中的地址,就根據(jù)DRAM地址增加/減少指定位145的指定,進(jìn)行增值或減值,并經(jīng)由總線仲裁器130,把增值或減值后的地址的數(shù)據(jù),讀出到DRAM字?jǐn)?shù)據(jù)讀寫用寄存器142內(nèi)。
此外,在CPU160要向DRAM120的規(guī)定的地址內(nèi)寫入數(shù)據(jù)的情況下,在向DRAM字節(jié)地址指定用寄存器141中寫入了地址之后,CPU160就把要寫入的數(shù)據(jù)寫入到DRAM字?jǐn)?shù)據(jù)讀寫用寄存器142中。若經(jīng)由總線仲裁器130,對CPU160所要求的地址進(jìn)行存取,則已寫入到DRAM字?jǐn)?shù)據(jù)讀寫用寄存器142中的數(shù)據(jù),就被寫入到被尋址的地址內(nèi)。在CPU160要對連續(xù)的地址寫入數(shù)據(jù)的情況下,只要用上邊所說的DRAM地址可變位144和DRAM地址增加/減少指定位145,使DRAM字節(jié)地址指定用寄存器141的地址增值或減值,而且,在每一次地址增減時(shí),就把所要寫入的數(shù)據(jù)寫入到DRAM字?jǐn)?shù)據(jù)讀寫用寄存器142內(nèi),就可以向所希望的地址內(nèi)連續(xù)地寫入數(shù)據(jù)。
另一方面,在日本專利特開平2-253440號公報(bào)中,公開了一種用固件邊切換邊執(zhí)行向多個(gè)寄存器文件中寫入的任務(wù)的時(shí)分多路執(zhí)行裝置。
在CPU160通過存取口140對DRAM120進(jìn)行存取時(shí),當(dāng)利用CPU多任務(wù)處理進(jìn)行的多任務(wù)或中斷處理,向DRAM120提出了存取要求時(shí),就要中斷迄今為止一直執(zhí)行著的存取,與由CPU多任務(wù)處理進(jìn)行的任務(wù)或中斷處理相符地,改寫保持在存取口140的各個(gè)寄存器中的信息。
但是,在上述那樣的利用現(xiàn)有技術(shù)的對DRAM120的存取系統(tǒng)中,即便是重新進(jìn)行被中斷了的存取,也會存在著下述問題在途中改寫了的地址或數(shù)據(jù)由于某種原因保留了下來,因而執(zhí)行錯(cuò)誤的處理。
例如,為了執(zhí)行讀出DRAM的第0x0500號地址的數(shù)據(jù)的任務(wù),CPU160就把0寫入到DRAM地址可變指定位144中,把0x0500寫入到DRAM地址指定用寄存器141中。在這里,在CPU160讀出DRAM字?jǐn)?shù)據(jù)讀寫用寄存器142之前,如果命令進(jìn)行中斷處理,則CPU160就中斷任務(wù),把中斷處理所要求的地址,例如0x0500寫入到DRAM字節(jié)地址指定用寄存器141內(nèi),對DRAM字?jǐn)?shù)據(jù)讀寫用寄存器142進(jìn)行讀出。當(dāng)中斷處理結(jié)束后,CPU160將執(zhí)行所中斷的任務(wù),但是由于某種原因,有時(shí)候第0x0500號地址的數(shù)據(jù),被置換成在中斷處理中進(jìn)行過讀出的第0x0508號地址的數(shù)據(jù)。
此外,作為另外的例子,為了執(zhí)行把所希望的數(shù)據(jù)寫入到從DRAM120的第0x0500號地址開始,在每次增加2地增加的方向上連續(xù)的地址(0x0500、0x0502、0x0504、…)內(nèi)的任務(wù),CPU160分別把1寫入到DRAM地址可變指定位144中,把1寫入到DRAM地址增加/減少指定位145中,把0x0500寫入到DRAM字節(jié)地址指定用寄存器141中,把所希望的數(shù)據(jù)寫入到DRAM字?jǐn)?shù)據(jù)讀寫用寄存器142中。如果在把已寫入到DRAM字?jǐn)?shù)據(jù)讀寫用寄存器142中的數(shù)據(jù),寫入到第0x0500號地址和第0x0502號地址內(nèi)之后,命令進(jìn)行中斷處理,則CPU160就中斷任務(wù),把要求進(jìn)行中斷處理的地址0x0800,寫入到DRAM字節(jié)地址指定用寄存器141中,讀出已讀出到DRAM字?jǐn)?shù)據(jù)讀寫用寄存器142中的第0x0800號地址的數(shù)據(jù)。當(dāng)CPU160再次執(zhí)行任務(wù)時(shí),即便是任務(wù)打算繼續(xù)向第0x0504號地址寫入數(shù)據(jù),有時(shí)候也會由于某種原因,卻向第0x0802號地址寫入數(shù)據(jù)。
如上所述,為了避免繼續(xù)執(zhí)行被中斷的任務(wù)時(shí)處理錯(cuò)誤的地址或數(shù)據(jù)的問題,有在控制CPU160的固件一側(cè)采取對策的手法。例如,為了執(zhí)行某一任務(wù),CPU160把0寫入到DRAM地址可變指定位144中,把0x0500寫入到DRAM地址指定用寄存器141中。在CPU160讀出DRAM字?jǐn)?shù)據(jù)讀寫用寄存器142之前,如果命令進(jìn)行中斷處理,則CPU160就把使DRAM地址指定用寄存器141、DRAM字?jǐn)?shù)據(jù)讀寫用寄存器142、存取模式指定用寄存器143的各個(gè)信息退避到CPU160屬下的存儲器等內(nèi)。其次,CPU160把要求中斷處理的地址0x0800,寫入到DRAM字節(jié)地址指定用寄存器141中,并從DRAM字?jǐn)?shù)據(jù)讀寫用寄存器142中讀出0x0800的數(shù)據(jù)。當(dāng)CPU160繼續(xù)執(zhí)行被中斷的任務(wù)時(shí),就使退避到CPU160下的存儲器等中的各個(gè)寄存器的值返回原來的寄存器內(nèi)。
如上所述,當(dāng)任務(wù)被CPU多任務(wù)處理中的多個(gè)任務(wù)或中斷處理中斷后,就使已寫入到寄存器中的信息退避到CPU160屬下的存儲器內(nèi),在繼續(xù)執(zhí)行被中斷的任務(wù)時(shí),當(dāng)使預(yù)先退避的信息返回到寄存器中后,在由CPU多任務(wù)處理執(zhí)行的任務(wù)或中斷處理中使用的地址或數(shù)據(jù),就正常地執(zhí)行任務(wù)而不殘存在寄存器中。但是,在上述方法中,控制CPU160的固件的構(gòu)造將會變得復(fù)雜起來,此外,當(dāng)頻繁地進(jìn)行任務(wù)的切換時(shí),使存取口140內(nèi)的寄存器進(jìn)行退避/返回的次數(shù)增加,存在著進(jìn)一步增大CPU處理負(fù)擔(dān)的問題。
此外,在特開平2-253440號公報(bào)所公開的時(shí)分多任務(wù)執(zhí)行裝置中,由于借助于固件自動地切換已寫入到各個(gè)寄存器中的任務(wù)的執(zhí)行,寄存器文件的使用狀況也由CPU直接管理,故將增加CPU的負(fù)擔(dān)。
本發(fā)明,就是為了解決上述問題而提出的,目的是提供具有在繼續(xù)執(zhí)行被CPU多任務(wù)處理中的多個(gè)任務(wù)或中斷處理等中斷了的任務(wù)時(shí),不對錯(cuò)誤的地址進(jìn)行存取的存取控制裝置,特別是以提供可以抑制CPU處理負(fù)擔(dān),不需要復(fù)雜的固件的記述的存取控制裝置為目的。
為實(shí)現(xiàn)上述目的,本發(fā)明的存取控制裝置,是一種由可以執(zhí)行多個(gè)任務(wù)的時(shí)分處理和中斷處理的CPU對預(yù)定的存儲器的存取進(jìn)行中繼的存取控制裝置,具備對每一次存取都存放來自CPU的關(guān)于存取的信息的多個(gè)存取口;對多個(gè)存取口的使用狀況進(jìn)行管理,并把使用狀況通知CPU的管理部分。CPU根據(jù)由管理部分提供的使用狀況,把與存取有關(guān)的信息寫入到多個(gè)存取口之內(nèi)的未使用的存取口內(nèi)。
本發(fā)明的存取控制裝置,由于具備多個(gè)存取口,故即便是用時(shí)分多路來執(zhí)行任務(wù),由于各個(gè)任務(wù)的信息會被寫入到單獨(dú)的存取口內(nèi),故可以得到這樣的效果要進(jìn)行存取的地址或時(shí)而讀入時(shí)而寫入的數(shù)據(jù)不會發(fā)生錯(cuò)誤。此外,與雖然具備退避功能但存取口只有一個(gè)的現(xiàn)有例相比,由于任務(wù)的切換次數(shù)減少,故可以以良好的效率處理任務(wù),可以得到減輕CPU處理負(fù)擔(dān)的效果。
此外,本發(fā)明的存取控制裝置,管理部分還可以具備退避區(qū)域,用來在多個(gè)存取口都已經(jīng)使用時(shí),使存放在該任意一個(gè)存取口內(nèi)的信息退避,以便在啟動別的任務(wù)或中斷處理的情況下,把與該驅(qū)動后的別的任務(wù)或中斷處理的存取要求有關(guān)的信息,存放到任意的一個(gè)存取口內(nèi);退避和返回裝置,用來使已寫入到上述任意一個(gè)存取口內(nèi)的信息退避到退避區(qū)域內(nèi),使已退避到退避區(qū)域內(nèi)的信息返回到存取口內(nèi)。
因此,由于可以用小規(guī)模的電路控制存取口的使用狀況和已寫入到存取口內(nèi)的信息的退避和返回,故可以得到這樣的有利的效果固件的記述將變得單純起來,可以減輕CPU的負(fù)擔(dān)。此外,還可以得到這樣的效果由于存儲區(qū)管理部分還具備退避區(qū)域,故在所有的存取口都在使用之中的情況下,即便是有中斷處理,也可以使正在使用中的一個(gè)存取口退避到退避區(qū)域內(nèi),執(zhí)行中斷處理。
此外,本發(fā)明的存取控制裝置,存取口分別具備指定裝置,用來指定CPU想要存取的存儲器的地址;保持裝置,用來暫時(shí)地保持從被地址指定裝置指定的地址中讀出來的數(shù)據(jù),或用來讀入到被地址指定裝置指定的地址中去的數(shù)據(jù);地址可變指定裝置,用來指定是否使被地址指定裝置指定的地址增值或減值。
此外,本發(fā)明的存取方法,是一種由可以執(zhí)行多任務(wù)的時(shí)分處理和中斷處理的CPU,通過具有多個(gè)存取口和管理部分的存取控制裝置對規(guī)定的存儲器進(jìn)行存取的存取方法,管理部分識別多個(gè)存取口的使用狀況,CPU把與存取有關(guān)的信息存放到被識別為未被管理部分使用的任意一個(gè)存取口內(nèi),管理部分,在執(zhí)行向任意一個(gè)的存取口內(nèi)進(jìn)行存放時(shí),作為任意一個(gè)存取口的使用狀況,把正在使用之中這一情況記錄到管理部分內(nèi),管理部分根據(jù)所存放的信息使之進(jìn)行對存儲器的存取,在存取結(jié)束之后,作為任意一個(gè)存取口的使用狀況,管理部分把正在等待之中這一情況記錄到管理部分內(nèi)。
本發(fā)明的存取方法,由于具備多個(gè)存取口,故即便是用時(shí)分多路來執(zhí)行任務(wù),由于各個(gè)任務(wù)的信息會被寫入到單獨(dú)的存取口內(nèi),故也可以得到這樣的效果要進(jìn)行存取的地址或時(shí)而讀入時(shí)而寫入的數(shù)據(jù)不會發(fā)生錯(cuò)誤。此外,與雖然具備退避功能但存取口只有一個(gè)的現(xiàn)有例比,由于任務(wù)的切換次數(shù)減少,故可以以良好的效率處理任務(wù),可以得到減輕CPU處理負(fù)擔(dān)的效果。
此外,本發(fā)明的存取方法,也可以是這樣的存取方法當(dāng)管理部分把多個(gè)存取口識別為全都正在使用之中時(shí),就使正存放在任意一個(gè)存取口內(nèi)的信息,退避到退避區(qū)域內(nèi),CPU就把與存取有關(guān)的信息存放到任意一個(gè)存取口內(nèi),管理部分就根據(jù)所存放到信息,對存儲器進(jìn)行存取,在結(jié)束了存取之后,管理部分就使已退避的信息返回任意一個(gè)存取口內(nèi),上述管理部分就繼續(xù)執(zhí)行以返回的信息為依據(jù)的存取。
因此,由于可以用小規(guī)模的電路控制存取口的使用狀況和已寫入到存取口內(nèi)的信息的退避和返回,故可以得到這樣的有利的效果固件的記述將變得單純起來,可以減輕CPU的負(fù)擔(dān)。此外,還可以得到這樣的效果由于存儲區(qū)管理部分還具備退避區(qū)域,故在所有的存取口都在使用之中的情況下,即便是有中斷處理,也可以使正在使用中的一個(gè)存取口退避到退避區(qū)域內(nèi),執(zhí)行中斷處理。


圖1的框圖示出了本發(fā)明的實(shí)施例的存取控制裝置的構(gòu)成的概略。
圖2的框圖示出了第1、第2、第3存取口1、2、3的每者所共通的構(gòu)成。
圖3的框圖示出了存儲區(qū)管理部分5的構(gòu)成。
圖4的流程圖概略地示出了本實(shí)施例在存取方法的動作。
圖5的框圖概略地示出了現(xiàn)有的存取控制裝置的構(gòu)成。
圖6的框圖示出了現(xiàn)有的存取口140的構(gòu)成。
優(yōu)選實(shí)施例以下,參照附圖對本發(fā)明的實(shí)施例的存取控制裝置進(jìn)行說明。
圖1的框圖概略地示出了與本實(shí)施例的存取控制裝置相應(yīng)的電路,就是說,概略地示出了具備存取控制裝置10的信息處理裝置。信息處理裝置具備CPU16、存取控制電路10、DRAM12、總線仲裁器13、第1和第2處理電路50和51。存取控制電路10、DRAM12、總線仲裁器13、第1和第2處理電路50和51都被制作在LSI11上邊。存取控制電路10,還具備第1~第3存取口1、2、3和管理部分即存儲區(qū)管理部分5。
CPU16控制信息處理裝置全體的動作。DRAM12是具有寫入、保持、讀出與信息處理裝置的動作有關(guān)的信息的功能的存儲器??偩€仲裁器13,當(dāng)從CPU16與第1和第2處理電路50、51提出了對DRAM12進(jìn)行存取的要求時(shí),就允許優(yōu)先度高的要求對地址進(jìn)行存取。第1~第3存取口1、2、3,具備用來存放從CPU16對DRAM12進(jìn)行存取所必須的信息的寄存器,并把存取要求傳送給總線仲裁器13。存儲區(qū)管理部分5,管理第1~第3存取口1、2、3的使用狀況,并把使用狀況通知CPU16。此外,還具備根據(jù)CPU16的指令,使已寫入到第1存取口21內(nèi)的信息進(jìn)行退避的退避區(qū)域;和使信息退避到退避區(qū)域內(nèi),使退避的信息返回到存取口內(nèi)的退避和返回裝置。
圖2的框圖示出了對第1~第3存取口1、2、3的每一個(gè)存取口共用的構(gòu)成。第1~第3存取口1、2、3,還具備DRAM地址指定用寄存器21、DRAM字?jǐn)?shù)據(jù)讀寫用寄存器22、存取模式指定用寄存器23。存取模式指定用寄存器23,作為指定是否使被DRAM字節(jié)地址指定用寄存器21指定的地址增值或減值的地址可變指定裝置,還具備DRAM地址可變指定位24和DRAM地址增加/減少指定位25。
DRAM字節(jié)地址指定用寄存器21是指定CPU16所要存取的DRAM地址的地址指定裝置。DRAM字?jǐn)?shù)據(jù)讀寫用寄存器22是一種保持裝置,用來暫時(shí)地保持從已存放在DRAM字節(jié)地址指定用寄存器21中的地址中讀出來的數(shù)據(jù),或用來向已存放在DRAN字節(jié)地址指定用寄存器21中的地址寫入到數(shù)據(jù)。存取模式指定用寄存器23,指定對DRAM12進(jìn)行存取的方法。DRAM地址可變指定位24,用0或1指定是否使已寫入到DRAM字節(jié)地址指定用寄存器21中的地址連續(xù)地變化。DRAM地址增加/減少指定位25,用0或1指定是使地址序號在增加的方向上變化還是使地址在序號向減少的方向變化。
例如,在CPU16要連續(xù)地對DRAM12的第0x0500~0x0508號地址進(jìn)行存取的情況下,當(dāng)把1寫入到DRAM地址可變指定位24中,把1寫入到DRAM地址增加/減少指定位25中,把0x0500寫入到DRAM字節(jié)地址指定用寄存器21中時(shí),就可以把第0x0500~0x0508號地址的數(shù)據(jù)讀入到DRAM字?jǐn)?shù)據(jù)讀寫用寄存器22中。此外,如果想要進(jìn)行存取的地址是0x0508~0x0500,則把1寫入到DRAM地址可變指定位24中,把0寫入到DRAM地址增加/減少指定位25中。此外,如果要存取的地址是0x0508號地址,則把0寫入到DRAM地址可變指定位24中,把0x0508寫入到DRAM字節(jié)地址指定用寄存器21中。另外,也可以預(yù)先作成為使得可以用存取模式指定用寄存器23來指定連續(xù)數(shù)據(jù)的個(gè)數(shù),或連續(xù)數(shù)據(jù)的最后一個(gè)數(shù)據(jù)的地址。增加或減少的值,是可以用DRAM地址增加/減少指定位25預(yù)先決定下來的數(shù)值。
圖3的框圖示出了存儲區(qū)管理部分5的構(gòu)成。存儲區(qū)管理部分5,具備DRAM字節(jié)地址退避用寄存器26、DRAM字?jǐn)?shù)據(jù)退避用寄存器27、存取模式退避用寄存器28和存儲區(qū)管理用寄存器31。
DRAM字節(jié)地址退避用寄存器26,是暫時(shí)地存放第1存取口1的DRAM字節(jié)地址指定用寄存器21的值的區(qū)域,就是說,是一種寄存器。DRAM字?jǐn)?shù)據(jù)退避用寄存器27,是暫時(shí)地存放第1存取口1的DRAM字?jǐn)?shù)據(jù)讀寫用寄存器22的值的寄存器。存取模式退避用寄存器28,是暫時(shí)地存放第1存取口1的存取模式指定用寄存器23的值的寄存器,具備DRAM地址可變指定退避用位29和DRAM地址增加/減少指定退避用位30。存儲區(qū)管理用寄存器31,管理3個(gè)存取口1、2、3的使用狀況并把使用狀況通知CPU16。
存儲區(qū)管理部分31,還具備第1存取口使用狀況標(biāo)志(位)32、第2存取口使用狀況標(biāo)志33、第3存取口使用狀況標(biāo)志34和優(yōu)先存取指定位35。例如,在第1存取口使用狀況標(biāo)志32為0時(shí),就意味著第1存取口1正在等待之中,而第1存取口使用狀況標(biāo)志為1時(shí),就意味著正在使用第1存取口。對于第2存取口使用狀況標(biāo)志33、第3存取口使用狀況標(biāo)志34,也是一樣的。優(yōu)先存取指定位35,指定位于第1存取口內(nèi)的各個(gè)寄存器的信息的退避和返回。例如,當(dāng)CPU16把1寫入到優(yōu)先存取指定位35中時(shí),就使位于第1存取口1的DRAM字節(jié)地址指定用寄存器21內(nèi)的信息,退避到DRAM字節(jié)地址退避用寄存器26中,使位于DRAM字?jǐn)?shù)據(jù)讀寫用寄存器22內(nèi)的信息,退避到DRAM字?jǐn)?shù)據(jù)退避用寄存器27內(nèi),使位于存取模式指定用寄存器23內(nèi)的信息,退避到存取模式退避用寄存器28內(nèi)。此外,若CPU16把0寫入到優(yōu)先存取指定位35中,則位于DRAM字節(jié)地址退避用寄存器26內(nèi)的信息,就返回到第1存取口1的DRAM字節(jié)地址指定用寄存器21內(nèi),位于DRAM字?jǐn)?shù)據(jù)退避用寄存器27內(nèi)的信息,就返回到DRAM字?jǐn)?shù)據(jù)讀寫用寄存器22內(nèi),位于存取模式退避用寄存器28內(nèi)的信息,就返回到存取模式指定用寄存器23內(nèi)。
圖4的流程圖概略性地示出了本實(shí)施例的存取方法的動作。用圖1和圖4,對本實(shí)施例的存取方法進(jìn)行說明。
當(dāng)產(chǎn)生了任務(wù)后,CPU16就向存儲區(qū)管理部分5詢問存取口(1、2、3)的使用狀況,識別是否是未使用的存取口(步驟S1)。
在有未使用的存取口的情況下,就向步驟S3前進(jìn),CPU16,把任務(wù)的存取信息存放到未使用的存取口內(nèi)。這時(shí),存儲區(qū)管理部分5就使已變成為正在使用中的存取口使用狀況標(biāo)志(32、33或34)變成為正在使用中。接著,CPU16通過總線仲裁器13對DRAM12的所希望的地址進(jìn)行存取(步驟S4)。
當(dāng)存取動作結(jié)束后,存儲區(qū)管理部分5,就是曾是正在使用中的存取口的使用狀況標(biāo)志變成為正在等待之中,釋放存取口(步驟S5)。
另一方面,在步驟S1中未識別到未使用的存取口的情況下,就向步驟S10前進(jìn),使任意一個(gè)存取口(在圖1中使第1存取口1)的信息,退避到存儲區(qū)管理部分中去。
接著,CPU16所產(chǎn)生的任務(wù)的存取信息,存放到因信息不得不退避而空了出來的存取口內(nèi)(步驟S11),執(zhí)行對DRAM12的存取(步驟S12)。
當(dāng)步驟12的存取結(jié)束后,在步驟S10不得不退避的信息,就返回到原來的存取口內(nèi)(步驟S13),繼續(xù)執(zhí)行被迫退避的信息的存取(S14)。當(dāng)繼續(xù)執(zhí)行的存取結(jié)束后,與步驟S5一樣,釋放存取口。
用圖1、圖2和圖3,舉出具體例進(jìn)一步說明圖4的動作。首先,控制CPU16的固件進(jìn)行多任務(wù)處理,對用時(shí)分多路執(zhí)行第1、第2、第3任務(wù)的狀況下的對DRAM12進(jìn)行存取時(shí)的例子進(jìn)行說明。
假定第1任務(wù),指示進(jìn)行位于從DRAM12的第0x0400號地址開始,每次隔開一個(gè)地址,一直到第0x040E號地址為止的地址內(nèi)的數(shù)據(jù)的讀入,第2任務(wù),指示進(jìn)行向從DRAM12的第0x0800號地址開始,每次隔開一個(gè)地址,在減去方向上一直到第0x07F6號地址為止的地址內(nèi)的數(shù)據(jù)的寫入,第3任務(wù),指示進(jìn)行向DRAM12的第0x1000、0x1002、0x1004號地址內(nèi)的數(shù)據(jù)寫入。假定任務(wù)按照第1、第2、第3的順序執(zhí)行,3個(gè)存取口按照第1、第2、第3的順序使用。此外在已向DRAM地址可變指定位24內(nèi)寫入了1的情況下,假定地址每次變化2個(gè)。
首先,第1任務(wù)讀取存儲區(qū)管理部分5的存儲區(qū)管理用寄存器31,識別所有的存取口都是可以使用的。第1任務(wù),采用把1寫入到第1存取口使用狀況標(biāo)志32內(nèi)的辦法,記錄第1存取口已變成為正在使用中的信息,其次分別把1寫入到第1存取口1的DRAM地址可變指定位24內(nèi),和DRAM地址增加/減少指定位內(nèi),把所希望的地址的數(shù)據(jù)讀出到DRAM字?jǐn)?shù)據(jù)讀寫用寄存器22內(nèi),得到所希望的數(shù)據(jù)。在第1任務(wù)讀取第0x0400號地址、第0x0402號地址、第0x0404號地址的數(shù)據(jù)時(shí),當(dāng)控制轉(zhuǎn)移到第2任務(wù)時(shí),第1任務(wù)就被暫時(shí)中斷。
第2任務(wù),讀取存儲區(qū)管理用寄存器31,把第2和第3存取口識別為是可以使用的。第2任務(wù),在把1寫入到第2存取口使用狀況標(biāo)志33中之后,當(dāng)把1寫入到第2存取口2的DRAM地址可變指定位24中,把0寫入到DRAM地址增加/減少指定位25中,把0x0800寫入到DRAM字節(jié)地址指定用寄存器21中,把數(shù)據(jù)讀入到DRAM字?jǐn)?shù)據(jù)讀寫用寄存器22中時(shí),就把已寫入到DRAM字?jǐn)?shù)據(jù)讀寫用寄存器22中的數(shù)據(jù)寫入到DRAM12的所希望的地址中去。在第2任務(wù)向第0x0800號地址和第0x07FE號地址寫入數(shù)據(jù)時(shí),若控制轉(zhuǎn)移到第3任務(wù),則第2任務(wù)將暫時(shí)被中斷。
第3任務(wù),讀取存儲區(qū)管理用寄存器31,把第3存取口識別為是可以使用的。第3任務(wù),在把1寫入到第3存取口使用狀況標(biāo)志34中之后,當(dāng)把1寫入到第3存取口3的DRAM地址可變指定位24中,把1寫入到DRAM地址增加/減少指定位25中,把0x1000寫入到DRAM字節(jié)地址指定用寄存器21中,把數(shù)據(jù)讀入到DRAM字?jǐn)?shù)據(jù)讀寫用寄存器22中時(shí),就把已寫入到DRAM字?jǐn)?shù)據(jù)讀寫用寄存器22中的數(shù)據(jù)寫入到DRAM12的所希望的地址中去。在向第0x1000號地址和第0x1002號地址寫入數(shù)據(jù)時(shí),若控制從第3任務(wù)轉(zhuǎn)移到第1任務(wù),則第3任務(wù)將暫時(shí)被中斷。
第1任務(wù),從第0x0406號地址開始繼續(xù)進(jìn)行讀出,讀取第0x0408號地址、第0x040A號地址、第0x040C號地址的數(shù)據(jù),結(jié)束數(shù)據(jù)的讀取。接著,采用把0寫入到第1存取口使用狀況標(biāo)志32中的辦法,把第1存取口已變成為正在等待的信息記錄下來,釋放第1存取口1。
其次,控制轉(zhuǎn)移到第2任務(wù),第2任務(wù)把剩下的數(shù)據(jù),即,用來向第0x07FC號地址、第0x07FA號地址、第0x07F8號地址、第0x07F6號地址寫入的數(shù)據(jù),寫入到第2存取口2的DRAM字?jǐn)?shù)據(jù)讀寫用寄存器22中。當(dāng)把已寫入到DRAM字?jǐn)?shù)據(jù)讀寫用寄存器22中的數(shù)據(jù)寫入到DRAM12的所希望地址中后,結(jié)束由第2任務(wù)進(jìn)行的數(shù)據(jù)的寫入。接著,把0寫入到第2存取口使用狀況標(biāo)志33中,釋放第2存取口2。
其次,控制轉(zhuǎn)移到第3任務(wù),第3任務(wù)把剩下的數(shù)據(jù),即,用來向第0x1004號地址寫入的數(shù)據(jù),寫入到第2存取口2的DRAM字?jǐn)?shù)據(jù)讀寫用寄存器22中。當(dāng)把已寫入到DRAM字?jǐn)?shù)據(jù)讀寫用寄存器22中的數(shù)據(jù)寫入到DRAM12的第0x1004號地址中后,結(jié)束由第3任務(wù)進(jìn)行的數(shù)據(jù)的寫入。接著,把0寫入到第3存取口使用狀況標(biāo)志34中,釋放第3存取口3。
其次,用圖1、圖2和圖3,對在控制CPU16的固件進(jìn)行多任務(wù)處理,用時(shí)分多路執(zhí)行第1、第2、第3任務(wù)的狀況下,在第1、第2、第3任務(wù)正分別使用第1、第2、第3存取口1、2、3的途中,啟動中斷處理D,企圖對DRAM12進(jìn)行存取的情況下的例子進(jìn)行說明。
中斷處理D,讀取存儲區(qū)管理用寄存器31,識別3個(gè)存取口全都正在使用,把1寫入到優(yōu)先存取指定位35中。接受優(yōu)先存取指定位35的指定后,已寫入到第1存取口1的各個(gè)寄存器21、22、23中的信息,分別退避到存儲區(qū)管理部分5的對應(yīng)的退避用寄存器26、27、28中。中斷處理D,用已空了出來的第1存取口1,對DRAM12進(jìn)行存取,當(dāng)存取結(jié)束后,就把0寫入到優(yōu)先存取指定位35中。接受到優(yōu)先存取指定位35的指定后,已退避到存儲區(qū)管理部分5的各個(gè)退避用寄存器26、27、28中的信息,就分別返回到第1存取口1的對應(yīng)的寄存器21、22、23中。
如上所述,倘采用本實(shí)施例,由于使用多個(gè)存取口,故即便是用時(shí)分多路執(zhí)行任務(wù),由于各個(gè)任務(wù)的信息已寫入到單獨(dú)的存取口內(nèi),所以可以得到這樣的效果想要存取的地址或時(shí)而讀入時(shí)而寫入的數(shù)據(jù)不會發(fā)生錯(cuò)誤。
此外,本實(shí)施例的存取控制裝置,如上所述,作為存取控制電路10,雖然設(shè)于DRAM12的某一LSI11上邊,但是存取控制裝置10,如上所述,由于不需要復(fù)雜的構(gòu)成,故可以用小規(guī)模的電路制作。
此外,存取控制電路10,由于直接管理CPU16對DRAM12的存取,故與用固件控制對DRAM的存取的特開平2-253440號公報(bào)的裝置比較,固件的記述變得單純,且可以減輕CPU處理的負(fù)擔(dān)。
此外,由于有多個(gè)存取口,故與雖然具備退避功能但存取口只有一個(gè)的現(xiàn)有例比較,減少了任務(wù)切換次數(shù),因而可以以良好的效率處理任務(wù),減輕CPU處理負(fù)擔(dān)。
再有,由于存取控制電路10具備退避用寄存器,故即便是在所有的存取口都正在使用的時(shí)候有了中斷處理,也可以使正在使用的一個(gè)存取口退避到退避用寄存器內(nèi),來執(zhí)行中斷處理。因此,與在CPU中具備退避用寄存器的現(xiàn)有例比,可以減輕CPU的負(fù)擔(dān)。
在本實(shí)施例中,雖然說明的是CPU16對DRAM12進(jìn)行存取的情況,但是,也可以是DRAM以外的存儲器,例如,SRAM或ROM。
另外,由于ROM是讀出專用存儲器,故只要使用具備讀入上述存取控制電路10的數(shù)據(jù)的功能的存取控制裝置即可。
此外,在本實(shí)施例中,雖然說明的是具備3個(gè)存取口、1個(gè)用來使存放在任意一個(gè)存取口內(nèi)的信息進(jìn)行退避的區(qū)域就是說退避用寄存器的存取控制裝置,但是存取口的個(gè)數(shù)、退避用寄存器的個(gè)數(shù),都不受限于在本實(shí)施例中說明的個(gè)數(shù),可以與存取控制裝置的用途相吻合地恰當(dāng)?shù)貨Q定。
對由CPU(Central Processing Unit,中央處理單元)對存儲器進(jìn)行存取的所有的裝置都可以應(yīng)用。
權(quán)利要求
1.一種對來自可以執(zhí)行多任務(wù)時(shí)分處理和中斷處理的CPU對預(yù)定的存儲器的存取進(jìn)行中繼控制的存取控制裝置,具備對每一次存取都存放來自上述CPU的關(guān)于存取的信息的多個(gè)存取口;對上述多個(gè)存取口的使用狀況進(jìn)行管理,并把上述使用狀況通知上述CPU的管理部分,其特征是上述CPU根據(jù)由上述管理部分提供的使用狀況,把與存取有關(guān)的信息寫入到上述多個(gè)存取口之內(nèi)的未使用的存取口內(nèi)。
2.權(quán)利要求1所述的存取控制裝置,其特征是上述管理部分還具備退避區(qū)域,用來在上述多個(gè)存取口都已經(jīng)使用時(shí),使存放在該任意一個(gè)存取口內(nèi)的信息退避,以便在啟動別的任務(wù)或中斷處理的情況下,把與該啟動后的別的任務(wù)或中斷處理的存取要求有關(guān)的信息,存放到任意的一個(gè)存取口內(nèi);退避和返回裝置,用來使已寫入到上述任意一個(gè)存取口內(nèi)的信息退避到退避區(qū)域內(nèi),使已退避到退避區(qū)域內(nèi)的信息返回到存取口內(nèi)。
3.權(quán)利要求1或2所述的存取控制裝置,其特征是每一個(gè)存取口都具備地址指定裝置,用來指定上述CPU想要存取的存儲器的地址;保持裝置,用來暫時(shí)地保持從被上述地址指定裝置指定的地址中讀出來的數(shù)據(jù),或用來讀入到被上述地址指定裝置指定的地址中去的數(shù)據(jù);地址可變指定裝置,用來指定是否使被上述地址指定裝置指定的地址增值或減值。
4.一種由可以執(zhí)行多任務(wù)的時(shí)分處理和中斷處理的CPU,通過具有多個(gè)存取口和管理部分的存取控制裝置對規(guī)定的存儲器進(jìn)行存取的存取方法,其特征是上述管理部分識別上述多個(gè)存取口的使用狀況,上述CPU把與存取有關(guān)的信息存放到被識別為未被上述管理部分使用的任意一個(gè)存取口內(nèi),上述管理部分,在向上述任意一個(gè)的存取口內(nèi)進(jìn)行存取時(shí),作為上述任意一個(gè)存取口的使用狀況,把正在使用之中這一情況記錄到上述管理部分內(nèi),上述管理部分根據(jù)所存放的信息進(jìn)行對上述存儲器的存取,上述管理部分,在上述存取結(jié)束之后,作為上述任意一個(gè)存取口的使用狀況,把正在等待之中這一情況記錄到上述管理部分內(nèi)。
5.權(quán)利要求4所示的存取方法,其特征是上述管理部分把上述多個(gè)存取口識別為全都正在使用之中時(shí),使正存放在任意一個(gè)存取口內(nèi)的信息,退避到上述管理部分內(nèi),上述CPU把與存取有關(guān)的信息存放到上述任意一個(gè)存取口內(nèi),上述管理部分根據(jù)所存放到信息,對上述存儲器進(jìn)行存取,上述管理部分,在結(jié)束了上述存取之后,使已退避到上述管理部分中的信息返回到上述任意一個(gè)存取口內(nèi),上述管理部分,繼續(xù)執(zhí)行以所返回的信息為依據(jù)的存取。
全文摘要
一種存取控制裝置,具備:對每一次存取都存放來自CPU(16)的與存取有關(guān)的信息的多個(gè)存取口(1、2、3),管理多個(gè)存取口(1、2、3)的使用狀況,并把使用狀況通知CPU(16)的存儲區(qū)管理部分(5)。CPU(16),根據(jù)存儲區(qū)管理部分(5)提供的使用狀況,把與存取有關(guān)的信息,寫入到多個(gè)存取口(1、2、3)之內(nèi)未使用的存取口內(nèi)。借助于此,可以提供具有不對錯(cuò)誤的地址進(jìn)行存取、可以抑制CPU處理負(fù)擔(dān)、不需要復(fù)雜的固件的記述的存取控制裝置。
文檔編號G06F9/46GK1293778SQ00800078
公開日2001年5月2日 申請日期2000年1月20日 優(yōu)先權(quán)日1999年1月27日
發(fā)明者井上貴生, 今村泰 申請人:松下電器產(chǎn)業(yè)株式會社
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1