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

寄生個(gè)人計(jì)算機(jī)接口的制作方法

文檔序號(hào):6410380閱讀:231來源:國知局
專利名稱:寄生個(gè)人計(jì)算機(jī)接口的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及計(jì)算機(jī)接口及資源共享,且更具體地涉及一種將待由遠(yuǎn)程處理機(jī)執(zhí)行的程序存儲(chǔ)在駐留于一計(jì)算機(jī)系統(tǒng)中的存儲(chǔ)器內(nèi)的方法及裝置。
一通用本地處理器受到許多其它更專業(yè)的處理裝置的輔助在今天來說是很普通的。例如,甚至比較小的計(jì)算機(jī)(例如個(gè)人計(jì)算機(jī))有一通用本地“主”處理器執(zhí)行與計(jì)算機(jī)執(zhí)行的應(yīng)用程序有關(guān)的主要處理,例如,該主處理器讀取作為一應(yīng)用程序的一部分的指令,例如一字處理程序,并確定哪些處理器將執(zhí)行該功能。這些主處理器典型地受到至少一個(gè)視頻處理器、一數(shù)字信號(hào)處理器、一I/O控制處理器、一數(shù)學(xué)協(xié)處理器、及其它這類處理裝置的輔助。
在某些情況下,例如在膝上型計(jì)算機(jī)的情況下,一些處理由通過外部端口(例如眾所周知的在許多現(xiàn)代膝上型計(jì)算機(jī)上用的PCMCIA端口)而耦合至該膝上型計(jì)算機(jī)的遠(yuǎn)程裝置來執(zhí)行,這些外部端口使膝上型計(jì)算機(jī)可為通用、輕便且便宜的??杀获詈现烈籔CMCIA端口的外圍設(shè)備的一個(gè)例子是調(diào)制解調(diào)器。調(diào)制解調(diào)器是眾所周知的可通過電話線發(fā)送及接收信息的裝置。因此,通過將一調(diào)制解調(diào)器耦合至一膝上型計(jì)算機(jī)的PCMCIA端口,該膝上型計(jì)算機(jī)可發(fā)送信息給同樣連接至電話線另一端的任何其它裝置并接收來自其的信息。


圖1為一系統(tǒng)方框圖,該系統(tǒng)是根據(jù)一種用于將一外部處理裝置104耦合至一主計(jì)算機(jī)100的方法構(gòu)成的。該外部處理裝置104與一數(shù)據(jù)緩沖器118、一I/o緩沖器108、一程序存儲(chǔ)器110、及一數(shù)據(jù)存儲(chǔ)器112組裝在一起。外部設(shè)備102內(nèi)的該外部處理裝置104通過耦合在主計(jì)算機(jī)100與I/o緩沖器108之間的一I/o總線106接收來自主計(jì)算機(jī)100的命令。該外部處理裝置104讀取來自I/o緩沖器108的命令并執(zhí)行來自程序存儲(chǔ)器110的程序。當(dāng)接收到一命令時(shí),該外部處理裝置104設(shè)置一程序計(jì)數(shù)器(PC)120的起始地址。該起始地址指示哪個(gè)程序指令將從程序存儲(chǔ)器110取出以由外部處理裝置104執(zhí)行。
外部處理裝置104可或者直接從外部設(shè)備102內(nèi)的一數(shù)據(jù)存儲(chǔ)器112或從主計(jì)算機(jī)100內(nèi)的一主數(shù)據(jù)存儲(chǔ)器114獲得數(shù)據(jù)。例如,如果外部設(shè)備執(zhí)行視頻壓縮,未壓縮的視頻數(shù)據(jù)可從主數(shù)據(jù)存儲(chǔ)器114讀取而壓縮的視頻數(shù)據(jù)可存儲(chǔ)回主數(shù)據(jù)存儲(chǔ)器114。而后,從主數(shù)據(jù)存儲(chǔ)器114讀取該視頻數(shù)據(jù)并進(jìn)行解壓。當(dāng)將從該主數(shù)據(jù)存儲(chǔ)器114讀取數(shù)據(jù)時(shí),執(zhí)行一直接存儲(chǔ)器存取(DMA)操作。這些DMA操作在現(xiàn)有技術(shù)中是眾所周知的。典型地,連同一起始地址及塊大小一起對(duì)待被讀取或?qū)懼链鎯?chǔ)器的數(shù)據(jù)作出一請(qǐng)求。然后在寫該數(shù)據(jù)至一DMA緩沖存儲(chǔ)器118(或從該DMA緩沖存儲(chǔ)器118讀取該數(shù)據(jù))的DMA裝置116的控制下,從該主數(shù)據(jù)存儲(chǔ)器114讀取該數(shù)據(jù)(或?qū)⒃摂?shù)據(jù)寫至該主數(shù)據(jù)存儲(chǔ)器114)。DMA操作允許不包含主處理器122或外部處理裝置104而進(jìn)行數(shù)據(jù)傳送。該體系結(jié)構(gòu)存在的問題之一是在某些情況下,例如在調(diào)制解調(diào)器、語音識(shí)別、音頻處理、及視頻處理應(yīng)用中,外部處理器104必須作的工作量大于可利用的處理資源。
在這些情況下,如圖2中所示,一些外部設(shè)備,例如調(diào)制解調(diào)器,包括卸載一些在外部處理器204中需被執(zhí)行的附加功能的一控制處理器(CP)201,該外部處理器204例如在一調(diào)制解調(diào)器中典型地為一數(shù)字信號(hào)處理器(DSP)。經(jīng)I/o總線106自主計(jì)算機(jī)100發(fā)送的命令在命令緩沖存儲(chǔ)器208中被緩沖。CP201對(duì)這些來自主計(jì)算機(jī)100的命令進(jìn)行解碼并將命令及控制功能提供給DSP204。因此,該CP201執(zhí)行不要求DSP204的特殊運(yùn)算能力的功能。這樣該CP201從DSP204卸載接口任務(wù)、附加任務(wù)、及其它的DSP204未被具體指定及適合的功能,以使DSP204在執(zhí)行調(diào)制及解調(diào)任務(wù)中所需的特殊運(yùn)算功能(例如計(jì)算傅里葉變換)時(shí)可使用更多的處理資源。
然而,在圖2所示的體系結(jié)構(gòu)中,由于CP201的尺寸及由CP201執(zhí)行的CP功能的復(fù)雜性,還有存儲(chǔ)DSP程序及數(shù)據(jù)所需的存儲(chǔ)器212、210,要求有相對(duì)大及昂貴的存儲(chǔ)裝置211、213來存儲(chǔ)CP功能程序指令和CP數(shù)據(jù)。為了減小調(diào)制解調(diào)器的成本及尺寸,一些調(diào)制解調(diào)器生產(chǎn)廠家已實(shí)行一“宿主”系統(tǒng)。宿主系統(tǒng)將CP功能從調(diào)制解調(diào)器202移入主計(jì)算機(jī)100。圖3是一配置成一宿主調(diào)制解調(diào)器系統(tǒng)的調(diào)制解調(diào)器302及主計(jì)算機(jī)300的方框圖。如圖所示,用于CP功能的程序指令(即“CP功能程序”碼304)駐留于主存儲(chǔ)器306內(nèi)。主計(jì)算機(jī)300內(nèi)的一中央處理單元(CPU)308執(zhí)行CP功能程序304。因此,外部設(shè)備302是較小且不太昂貴的,并沒有實(shí)際的增加主計(jì)算機(jī)300的尺寸及其負(fù)擔(dān)。然而,該CP功能必須用可由主計(jì)算機(jī)300執(zhí)行的程序語言來寫。并且,CPU308必須按照由主計(jì)算機(jī)操作系統(tǒng)設(shè)置的規(guī)則來執(zhí)行該CP功能。因此,在宿主系統(tǒng)中遇到一些附加的負(fù)擔(dān),例如,事實(shí)上該CP功能程序碼必須與主計(jì)算機(jī)的操作系統(tǒng)相兼容,這意味著對(duì)于外部設(shè)備試圖共用使用的各種類型的操作系統(tǒng),必須寫不同的CP功能程序碼。更具體地,如果一調(diào)制解調(diào)器的制造商希望售出該調(diào)制解調(diào)器用于一基于窗口的系統(tǒng),則必須寫基于窗的CP功能程序碼。如果制造商還希售出該調(diào)制解調(diào)器用于基于DOS的系統(tǒng),必須寫一另外的用于DOS操作系統(tǒng)的CP功能程序碼。由于現(xiàn)在的主機(jī)中使用有幾種操作系統(tǒng),且這些操作系統(tǒng)偶爾被升級(jí)至或?yàn)椴幌蛳录嫒?,或?yàn)闀?huì)引起用戶對(duì)為操作系統(tǒng)新版本所具體設(shè)計(jì)程序的需求的操作系統(tǒng),寫并調(diào)試該CP功能程序碼所需要的調(diào)試時(shí)間量會(huì)很繁重。
所以,希望提供一種方法和裝置,用于將一外部處理裝置耦合至一主計(jì)算機(jī)而該外部設(shè)備不需要包括一大的、昂貴的存儲(chǔ)器,并只需寫一種CP功能程序碼來適應(yīng)所有可能會(huì)與該外部設(shè)備共用使用的主計(jì)算機(jī)。本發(fā)明提供了這樣一種方法及裝置。
本發(fā)明給出了一種方法及裝置,用于將一外部設(shè)備耦合至一主計(jì)算機(jī),以使待由外部設(shè)備執(zhí)行的程序碼可存儲(chǔ)在主計(jì)算機(jī)存儲(chǔ)器中但與主計(jì)算機(jī)基本無關(guān)。
根據(jù)本發(fā)明,其硬件及軟件使一程序及地址總線的邏輯位移能跨接處理器間接口。一外部設(shè)備最好通過一普通的DMA功能提供對(duì)存儲(chǔ)于主計(jì)算機(jī)存儲(chǔ)器內(nèi)的程序碼的直接存取。待由該外部設(shè)備內(nèi)的外部處理器執(zhí)行的程序碼被從主存儲(chǔ)器傳送至該外部設(shè)備內(nèi)的指令緩沖存儲(chǔ)器。在本發(fā)明的一實(shí)施例中,該外部處理器在一定時(shí)中斷基礎(chǔ)上確定何時(shí)要求通過DMA信道自主存儲(chǔ)器來的附加指令。該中斷致使該外部處理器請(qǐng)求將來自主存儲(chǔ)器的附加指令傳送至該外部設(shè)備內(nèi)的指令緩沖存儲(chǔ)器。在本發(fā)明的另一個(gè)實(shí)施例中,每次當(dāng)該外部處理器被中斷時(shí),該外部處理器核查有多少指令仍留在指令緩沖器中。如果在該指令緩沖器中有不夠量的指令,則該外部處理器請(qǐng)求自主存儲(chǔ)器傳送附加指令。
在本發(fā)明的另一實(shí)施例中,該指令緩沖器被配置為一指令超高速緩存器。也就是說,經(jīng)常使用的指令保留在該超高速緩存器中。當(dāng)需要一當(dāng)前不在該超高速緩存器中的指令時(shí),該外部處理器命令該DMA裝置傳送來自主存儲(chǔ)器的包括該所需指令的一批指令。該批指令包括其它可能需要的指令,其由在執(zhí)行完該所需指令后在一很短時(shí)間內(nèi)將執(zhí)行這些其它指令的可能性來確定。
在本發(fā)明的再一個(gè)實(shí)施例中,程序碼本身內(nèi)的“取”指令指示該外部處理器請(qǐng)求附加指令。這些取指令可能會(huì)關(guān)鍵地位于該碼內(nèi)的由該程序碼的程序員所選取為主要點(diǎn)的點(diǎn)上,以請(qǐng)求附加指令以確保該指令緩沖器一直含有待由外部處理器執(zhí)行的下一個(gè)指令。
在本發(fā)明的各實(shí)施例中,該外部處理器最好要求一當(dāng)前不在緩沖器中的指令。然后該緩沖器返回一指令給該外部處理器,使該外部處理器請(qǐng)求來自主存儲(chǔ)器的包括該所需指令的附加指令。在一實(shí)施例中,該外部處理器然后將保持空閑而該DMA裝置傳送這些來自主存儲(chǔ)器的所請(qǐng)求的指令。
在本發(fā)明的優(yōu)選實(shí)施例中,提供有一多路復(fù)用器,其允許將來自一其內(nèi)存儲(chǔ)有用于特殊用途功能的指令的特殊用途程序存儲(chǔ)器的指令提供給外部處理器。例如,在其內(nèi)的外部處理器為一數(shù)字信號(hào)處理器(DSP)的調(diào)制解調(diào)器中,這些特殊用途功能包括用于執(zhí)行在物理層上調(diào)制及解調(diào)信號(hào)(被發(fā)送至電話線上的信號(hào))的算術(shù)運(yùn)算的指令。典型地,這些特殊用途指令被很經(jīng)常地重復(fù),因此,這些特殊用途指令不需要一大存儲(chǔ)器。
在本發(fā)明的另一實(shí)施例中,在該外部處理器中有一控制處理器(CP)。該CP通過執(zhí)行自主存儲(chǔ)器接收的程序碼來執(zhí)CP功能。所以,該CP擔(dān)負(fù)著請(qǐng)求將附加指令自主存儲(chǔ)器傳送至指令緩沖器的責(zé)任。該外部處理器最好耦合至該CP。該外部處理器最好接收來自CP的命令并僅執(zhí)行存于該特殊用途存儲(chǔ)器中的指令。
在本發(fā)明的各實(shí)施例中,包括在存儲(chǔ)于主存儲(chǔ)器中的程序碼內(nèi)的功能(或任務(wù))(即“CP”功能)最好不是實(shí)時(shí)功能。因此,存儲(chǔ)在主存儲(chǔ)器中并待由外部裝置內(nèi)的一處理器執(zhí)行的程序碼被表示為一“CP功能程序碼”。待由外部裝置的處理器執(zhí)行的實(shí)時(shí)功能最好不通過該CP功能程序碼來執(zhí)行,而通過本地存儲(chǔ)的執(zhí)行程序碼(即“外部程序碼”)來執(zhí)行。如果在該功能未在特定的時(shí)間量內(nèi)被執(zhí)行的情況下,不利于外部設(shè)備的操作,在本發(fā)明的優(yōu)選實(shí)施例中,該功能將不被包括在該CP功能程序碼內(nèi)。相反地,這些功能被包括在該外部程序碼內(nèi),該外部程序碼以這樣一種方式被本地存儲(chǔ)于外部設(shè)備內(nèi)一相對(duì)小的本地外部處理器存儲(chǔ)器中,即允許它們?cè)谝唤?jīng)請(qǐng)求時(shí)便毫不延遲地由外部處理器容易地進(jìn)行存取。
本發(fā)明優(yōu)選實(shí)施例的細(xì)節(jié)將在附圖及以下的描述中給出,在了解本發(fā)明的細(xì)節(jié)后,熟悉本領(lǐng)域的技術(shù)人員顯而易見地可作出多項(xiàng)附加的改進(jìn)及變化。
圖1為根據(jù)一方法構(gòu)成的用于將一外部處理裝置耦合至一主計(jì)算機(jī)的系統(tǒng)的方框圖;圖2為其內(nèi)一調(diào)制解調(diào)器被耦合至一主計(jì)算機(jī)的系統(tǒng)的方框圖。
圖3為一被配置為一宿主調(diào)制解調(diào)器系統(tǒng)的調(diào)制解調(diào)器及主計(jì)算機(jī)的方框圖。
圖4為一根據(jù)本發(fā)明的其內(nèi)一計(jì)算機(jī)被耦合至一外部設(shè)備的系統(tǒng)的方框圖。
圖5為本發(fā)明的另一實(shí)施例的方框圖。
圖6為本發(fā)明的一實(shí)施例的方框圖,其中外部設(shè)備包括一離散控制處理器及DMA硬件。
不同的附圖中類似的參考數(shù)字及標(biāo)記表示相類似的元件。
在整個(gè)描述中,這些優(yōu)選的實(shí)施例及例子應(yīng)理解為示例性說明,而不是對(duì)本發(fā)明的限制。
本發(fā)明給出了一種用于在一主存儲(chǔ)器內(nèi)存儲(chǔ)由一外部處理器執(zhí)行的程序碼的方法和裝置。例如,在許多情況下,一計(jì)算機(jī)有一相對(duì)大的存儲(chǔ)器,該存儲(chǔ)器內(nèi)存有由該主計(jì)算機(jī)內(nèi)一主處理器執(zhí)行的程序。并且,該主存儲(chǔ)器內(nèi)可以存有數(shù)據(jù)。圖4為一系統(tǒng)的方框圖,其中一主計(jì)算機(jī)400包括一主處理器(即一CPU)308、一主存儲(chǔ)器306、一程序直接存儲(chǔ)器存取(DMA)裝置401、及一數(shù)據(jù)DMA裝置403。在圖4的實(shí)施例中,一外部設(shè)備402包括一數(shù)據(jù)緩沖器405、一命令緩沖器407、一外部處理器409、DMA硬件411、一指令多路復(fù)用器413、一外部程序存儲(chǔ)器415及一外部數(shù)據(jù)存儲(chǔ)器417。
該外部設(shè)備402可以是需要程序碼以進(jìn)行操作的任何裝置。在圖4所示的實(shí)施例中,該外部設(shè)備402通過一I/o通道408接收來自主計(jì)算機(jī)400的命令。這些命令在命令緩沖器407中被緩沖。這些自主處理器接收的命令最好為請(qǐng)求外部設(shè)備執(zhí)行一功能的高級(jí)命令。例如,該外部設(shè)備可以是調(diào)制解調(diào)器、語音識(shí)別系統(tǒng)、緊致磁盤播放機(jī)、視頻處理器、音頻處理器、外圍存儲(chǔ)裝置、或任何其它需要程序碼的各種裝置。因此,在外部設(shè)備為調(diào)制解調(diào)器的情況下,主計(jì)算機(jī)400可請(qǐng)求外部設(shè)備經(jīng)一電話連接接收或發(fā)送一數(shù)據(jù)文件??蓪?zhí)行該功能所需的信息存儲(chǔ)在該外部數(shù)據(jù)存儲(chǔ)器417中。根據(jù)需要,該信息由外部處理器409讀取。
在本發(fā)明的一個(gè)實(shí)施例中,外部設(shè)備402具體為一類其中由外部處理器409執(zhí)行的功能可被劃分為實(shí)時(shí)功能及非實(shí)時(shí)功能的裝置。實(shí)時(shí)功能為在確定該任務(wù)被需求后,在預(yù)定的且相對(duì)短的一段時(shí)間內(nèi)應(yīng)被執(zhí)行的功能。例如,在調(diào)制解調(diào)器中,輸入信號(hào)最好被實(shí)時(shí)(即,當(dāng)輸入信號(hào)被接收時(shí))解調(diào)并解碼。為了實(shí)時(shí)解調(diào)并解碼該輸入信號(hào),必須相對(duì)迅速地執(zhí)行多項(xiàng)算術(shù)運(yùn)算。典型地,這些算術(shù)運(yùn)算由稱之為一數(shù)字信號(hào)處理器(DSP)的專門的外部處理器來執(zhí)行。
除實(shí)時(shí)功能,例如解調(diào)及解碼輸入信號(hào)以外,還有許多必須被執(zhí)行的其它功能。然而,這些功能是非實(shí)時(shí)的。也就是說,如果這些其它功能在一較低的優(yōu)先級(jí)并在一延遲后被執(zhí)行,將不影響該外部設(shè)備的操作。例如,主機(jī)與外部設(shè)備之間的通信功能可以不需要一經(jīng)請(qǐng)求即被迅速執(zhí)行。自主計(jì)算機(jī)接收的命令可在外部裝置402響應(yīng)之前保存一段時(shí)間。并且,例如用戶接口/命令分析、自動(dòng)撥號(hào)、及自動(dòng)應(yīng)答的功能被考慮為非實(shí)時(shí)的。在本發(fā)明的一實(shí)施例中,例如這些非實(shí)時(shí)程序由DSP來執(zhí)行,因?yàn)镈SP支持相關(guān)的功能。另外,DSP執(zhí)行這些功能是因?yàn)檫@些程序指導(dǎo)更多實(shí)時(shí)信號(hào)處理任務(wù)的排序執(zhí)行。
在本發(fā)明的實(shí)施例中,其中實(shí)時(shí)及非實(shí)時(shí)功能都必須被執(zhí)行,非實(shí)時(shí)功能是指控制處理(“CP”)功能。本領(lǐng)域的熟練技術(shù)人員將可理解,雖然CP功能被考慮為非實(shí)時(shí)的,它們應(yīng)在一相對(duì)短的時(shí)間內(nèi)被執(zhí)行以防止延遲對(duì)外部設(shè)備操作的打擊。實(shí)時(shí)功能是指“外部程序”功能。根據(jù)本發(fā)明的一實(shí)施例,外部程序功能及CP功能都由外部處理器409執(zhí)行。因此,外部設(shè)備耦合至的主處理器的具體類型與本發(fā)明的外部設(shè)備的內(nèi)部功能無關(guān)。并且,由于主處理器通過I/o通道408與外部處理器直接通信,該外部設(shè)備對(duì)主計(jì)算機(jī)表現(xiàn)為一真實(shí)的外部裝置。表現(xiàn)為真實(shí)的外部設(shè)備(與虛擬裝置相對(duì)來說)是有利的,因?yàn)樵谥饔?jì)算機(jī)中運(yùn)行的一些操作系統(tǒng)(例如所熟知的“DOS”操作系統(tǒng))不支持虛擬的裝置(即,不能與虛擬裝置進(jìn)行通信)。
進(jìn)而,為了減少外部設(shè)備402中所需的存儲(chǔ)裝置,只在外部設(shè)備402中存儲(chǔ)“外部程序碼”(即由外部處理器409執(zhí)行以完成外部程序功能的碼)。典型地需要比外部程序碼更多存儲(chǔ)器的CP功能程序碼(即,由外部處理器409執(zhí)行以完成CP功能的碼)被存儲(chǔ)在主存儲(chǔ)器306中。
在圖4所示的本發(fā)明的一實(shí)施例中,這些CP功能最好能包括所有的非實(shí)時(shí)功能。例如,在本發(fā)明的一實(shí)施例中,其中外部設(shè)備為一調(diào)制解調(diào)器,這些CP功能包括用戶接口命令分析、自動(dòng)撥號(hào)、及自動(dòng)應(yīng)答。在本發(fā)明的一實(shí)施例中,該CP程序通過一普通的主外圍裝置404(例如軟盤驅(qū)動(dòng)器)被裝入主存儲(chǔ)器306。許多主計(jì)算機(jī)(例如膝上型計(jì)算機(jī))包括一外圍裝置,該外圍裝置可從一可拆除的媒體接收程序信息并將該信息傳送給主存儲(chǔ)器306。然而,本領(lǐng)域的普通技術(shù)人員將可理解根據(jù)本發(fā)明將CP程序裝入主存儲(chǔ)器306的任何裝置都可使用,例如從主計(jì)算機(jī)的一串聯(lián)或并聯(lián)端口下載。
當(dāng)CP程序已被存入主存儲(chǔ)器306中時(shí),該CP程序可由外部處理器409存取。在本發(fā)明的一實(shí)施例中,當(dāng)初始地對(duì)外部處理器409通電時(shí),外部處理器409內(nèi)的一程序計(jì)數(shù)器421被初始化至初始地址,在此待由外部處理器409執(zhí)行的一“引導(dǎo)程序”被存入外部程序存儲(chǔ)器415。該“引導(dǎo)程序”是現(xiàn)有技術(shù)中眾所周知的。然而,與現(xiàn)有技術(shù)的外部設(shè)備不同,根據(jù)本發(fā)明,該引導(dǎo)程序使外部處理器409請(qǐng)求經(jīng)主計(jì)算機(jī)及外部設(shè)備間的DMA程序通道423自主存儲(chǔ)器306傳送第一批CP程序碼。該地址是一預(yù)定地址,在此CP程序碼駐留于主存儲(chǔ)器306內(nèi)。在本發(fā)明的另一個(gè)實(shí)施例中,經(jīng)初始化后,主處理器寫一“引導(dǎo)地址”至一輸入鎖存器,由外部處理器409讀取。這樣,引導(dǎo)程序被自帶有入口點(diǎn)的宿主碼解耦至另一宿主碼,后者經(jīng)一I/o通道自通電的主機(jī)被寫至固定的外部處理器存儲(chǔ)器-映象位置。通電后,外部處理器409請(qǐng)求在主機(jī)初始化位置的初始程序塊。其后被請(qǐng)求塊的地址是基于宿主程序的內(nèi)部邏輯。
請(qǐng)求數(shù)據(jù)自一存儲(chǔ)器被讀取的普通的DMA操作是眾所周知的。然而,根據(jù)本發(fā)明,正被請(qǐng)求來自主存儲(chǔ)器306的信息是程序碼而非數(shù)據(jù)。因此,本發(fā)明提供了用于傳送程序碼的創(chuàng)造性的設(shè)備。也就是說,由于外部處理器409將執(zhí)行自主計(jì)算機(jī)被傳送至DMA硬件411的程序碼(例如,CP功能程序碼),CP功能程序碼的各部分在外部處理器409需要該碼時(shí)必須存在。本發(fā)明的DMA硬件411包括一能提供總線所有權(quán)給外部設(shè)備(即,確保該外部設(shè)備具有優(yōu)先使用DMA程序通道423的權(quán)利)的本質(zhì)上普通的DMA總線主控器。本發(fā)明的創(chuàng)造性的DMA硬件411還包括一指令緩沖器425。該指令緩沖器425接收CP功能程序碼并最好保留該碼的各指令直至外部處理器409已讀取該指令。該指令緩沖器425可以以允許指令被保留很長一段時(shí)間以許可外部處理器409執(zhí)行這些指令的任何方式來實(shí)現(xiàn)。指令緩沖器425必須能保留一指令的精確時(shí)間量將依據(jù)于實(shí)現(xiàn)的細(xì)節(jié),例如外部處理器409的速度、DMA程序通道423的速度、CP功能程序碼執(zhí)行的優(yōu)先權(quán)、及在執(zhí)行CP功能程序碼中可被遇到的延遲量。在優(yōu)選實(shí)施例中,指令緩沖器425通過一隨機(jī)存取存儲(chǔ)器(RAM)來實(shí)現(xiàn)。
在本發(fā)明的一實(shí)施例中,確保CP功能程序碼的及時(shí)傳送所需的規(guī)定被提供于該CP功能程序碼本身內(nèi)。例如,在本發(fā)明的一實(shí)施例中,初始碼包括有使由外部處理器409生成一命令給DMA硬件411的指令。該命令請(qǐng)求第一批CP功能程序碼自主存儲(chǔ)器306被傳送至指令緩沖器425。一旦該第一批CP功能程序碼自主存儲(chǔ)器306被傳送,該CP功能程序碼本身將提供指令經(jīng)信號(hào)線410給外部處理器409,命令DMA硬件411請(qǐng)求來自主存儲(chǔ)器306的下一批CP功能程序碼。
在本發(fā)明的一實(shí)施例中,這些“取”指令被裝于該批CP功能程序碼內(nèi)的關(guān)鍵位置以確保在外部處理器409需要下一批中的任何指令之前,及時(shí)地傳送該批CP功能程序碼以由外部處理器409讀取。這需要建立CP功能程序碼的程序員設(shè)計(jì)通過CP功能程序碼的執(zhí)行路徑。在相對(duì)小的CP功能程序中,這可以是優(yōu)選實(shí)施例。然而在較大的CP功能程序中,擇一流程路徑的數(shù)量可使其得繁重及低效地具有置于CP功能程序碼本身內(nèi)的指令。
在本發(fā)明的另一實(shí)施例中,以規(guī)則的定時(shí)間隔由一緩沖器內(nèi)容檢測(cè)裝置(BCDD)429產(chǎn)生中斷。該時(shí)間間隔非常短以確保外部處理器409不能執(zhí)行在一DMA傳送單元中所傳送的所有碼。另一方面,確定正被執(zhí)行的具體指令及存在于指令緩沖器425中的附加指令的量。該時(shí)間間隔非常短以確保外部處理器409不能執(zhí)行在下一中斷產(chǎn)生之前留在指令緩沖器425中的所有指令。在本發(fā)明的一實(shí)施例中,BCDD429被完善得足以基于外部處理器409讀取來自指令緩沖器425的一指令的次數(shù)對(duì)該時(shí)間間隔進(jìn)行調(diào)整。也就是說,通過監(jiān)視正由外部處理器409執(zhí)行的指令的地址,中斷定時(shí)器確定何時(shí)產(chǎn)生下一個(gè)中斷。
在另一個(gè)可替換的實(shí)施例中,以與上述實(shí)施例相似的方式,初始的一批CP功能程序碼自主存儲(chǔ)器306被傳送給DMA硬件411中的指令緩沖器425。不過,DMA硬件411內(nèi)的BCDD429根據(jù)自從上一中斷產(chǎn)生后已執(zhí)行的指令的數(shù)量使在信號(hào)線433上對(duì)外部處理器409產(chǎn)生一中斷。在本發(fā)明的一實(shí)施例中,BCDD429是一計(jì)數(shù)器,當(dāng)一批指令被寫至指令緩沖器425時(shí),該計(jì)數(shù)器被遞增。當(dāng)各指令被執(zhí)行時(shí)(由外部處理器409自指令緩沖器425讀取),該BCDD被遞減。這樣,該BCDD始終監(jiān)視在任何具體時(shí)刻的指令數(shù)或保留在緩沖器中的信息字節(jié)數(shù)。BCDD429在每次指令緩沖器425中的指令數(shù)減至低于一預(yù)定數(shù)量時(shí)中斷外部處理器409。必須存在于指令緩沖器425中的指令的具體數(shù)將依據(jù)DMA程序通道423的速度及外部處理器409的速度。在本發(fā)明的優(yōu)選實(shí)施例中,必須存在于指令緩沖器425中的指令數(shù)應(yīng)該是非常大的以確保在下一批指令到達(dá)之前外部處理器409將不需要指令緩沖器425中的最后一個(gè)指令。
在本發(fā)明的再另一個(gè)實(shí)施例,指令緩沖器425被控制作為一指令高速緩存器。也就是說,最后使用的上批指令被保存在指令緩沖器425中直至要求當(dāng)前不存在于指令緩沖器425中的一指令。在此時(shí),DMA硬件請(qǐng)求進(jìn)行包括該被請(qǐng)求指令的一批CP功能程序碼的DMA傳送。
在以上所述的各種情況中,一經(jīng)接收到通過信號(hào)線433來自DMA硬件411至外部處理器409的中斷,外部處理器409執(zhí)行一中斷程序,確定待被自主存儲(chǔ)器306讀取的下一批地址以將下一批CP功能程序碼傳送入指令緩沖器425。在本發(fā)明的一實(shí)施例中,從一保存被傳送的最后批的最后字節(jié)的地址的DMA硬件411內(nèi)的一寄存器412取得用于自主存儲(chǔ)器306傳送的起始地址。另一方面,從通過一“程序計(jì)數(shù)器”信號(hào)線427自程序計(jì)數(shù)器421耦合至DMA硬件411的一值(即,一地址)導(dǎo)出待被傳送的下一批的起始地址。該程序計(jì)數(shù)器421的值被耦合至DMA硬件411以指出哪一個(gè)指令待被下次執(zhí)行。
根據(jù)本發(fā)明的一實(shí)施例,作出由外部處理器409請(qǐng)求的各指令是一CP功能程序碼指令還是一外部程序碼指令的確定。該確定是根據(jù)由程序計(jì)數(shù)器21提供的指令地址值作出的。如果該地址是在第一預(yù)定范圍內(nèi),則該被請(qǐng)求的指令是一CP功能程序碼指令。如果該地址不在該第一預(yù)定范圍內(nèi),則該指令是一待自外部程序存儲(chǔ)器415讀取的外部程序碼指令。在本發(fā)明的一實(shí)施例中,可作出一第二項(xiàng)確定以確定是否該程序計(jì)數(shù)器值落入值的第二個(gè)范圍內(nèi),以檢驗(yàn)該計(jì)數(shù)器值是否為一有效地址。程序計(jì)數(shù)器信號(hào)線427也被耦合至外部程序存儲(chǔ)器415。根據(jù)本發(fā)明的一實(shí)施例,由外部程序存儲(chǔ)器415作出一類似的確定。如果該程序計(jì)數(shù)器值在該第二預(yù)定范圍內(nèi),外部程序存儲(chǔ)器415將提供指令給外部處理器409。
在本發(fā)明的一實(shí)施例中,指令多路復(fù)用器413選擇或是DMA硬件411或是外部程序存儲(chǔ)器415將被耦合至外部處理器409。在本發(fā)明的一實(shí)施例中,指令多路復(fù)用器413經(jīng)程序計(jì)數(shù)器信號(hào)線427被耦合至程序計(jì)數(shù)器421。指令多路復(fù)用器413根據(jù)程序計(jì)數(shù)器421的值選擇裝置411、415中哪一個(gè)將提供下一個(gè)指令給外部處理器409。
在本發(fā)明的一實(shí)施例中,至少一些與CP功能有關(guān)的數(shù)據(jù)(即“CP功能”數(shù)據(jù))被存儲(chǔ)在主存儲(chǔ)器306中。數(shù)據(jù)緩沖器405提供一緩沖器,用于經(jīng)一DMA數(shù)據(jù)通道431自主緩沖器讀取的CP功能數(shù)據(jù)。外部處理器409通過請(qǐng)求一待由數(shù)據(jù)DMA裝置403執(zhí)行的DMA數(shù)據(jù)傳送操作來請(qǐng)求CP功能數(shù)據(jù)。該DMA數(shù)據(jù)傳送操作基本上是一普通的DMA操作。也就是說,不需要用于數(shù)據(jù)傳送的特殊規(guī)定,因?yàn)樵摂?shù)據(jù)傳送不象指令傳送那樣是實(shí)時(shí)的。而且,外部裝置不需要具有擁有用于DMA數(shù)據(jù)傳送的總線的功能。因此,在本發(fā)明的優(yōu)選實(shí)施例中,DMA數(shù)據(jù)傳送請(qǐng)求最好不通過駐留于外部設(shè)備402內(nèi)的DMA裝置作出。
在大多數(shù)程序中,指令不是按序列的次序被執(zhí)行的。例如,典型地發(fā)生分支及轉(zhuǎn)移而致使被執(zhí)行的該碼的序列依賴數(shù)據(jù)值或外部情況。因此,很可能當(dāng)外部處理器409需要時(shí),指令可能不存在于指令緩沖425中,盡管努力預(yù)測(cè)哪個(gè)指令將在下一步被需要。根據(jù)本發(fā)明的一實(shí)施例,當(dāng)一指令被需要但不存在于指令緩沖器425中時(shí),指令緩沖器425返回一NOP(非操作碼)給外部處理器409直至所需要的指令自主存儲(chǔ)器306被傳送。因此,外部處理器409將空閑直至產(chǎn)生一中斷而致使外部處理器執(zhí)行其它碼,或被需要的指令在指令緩沖器425中變?yōu)榭捎谩?br> 圖5是本發(fā)明另一實(shí)施例的方框圖。在圖5的實(shí)施例中,外部設(shè)備402包括一控制處理器501。圖4中所示的DMA硬件411所執(zhí)行的功能最好由圖5的控制處理器501來完成。另一方面,離散DMA硬件也包括在外部設(shè)備402中。在圖5所示的本發(fā)明的優(yōu)選實(shí)施例中,控制處理器501擔(dān)負(fù)控制DMA操作并執(zhí)行自主計(jì)算機(jī)400檢索的碼的責(zé)任。一指令緩沖器425被包括在控制處理器511中。另一方面,不包括在控制處理器501中的離散指令緩沖器425被提供,而數(shù)據(jù)緩沖器405被包括在外部設(shè)備402中。在本發(fā)明的一實(shí)施例中,數(shù)據(jù)緩沖器405被包括在控制處理器501內(nèi)。
根據(jù)圖5中所示的本發(fā)明的實(shí)施例中,控制處理器501基本上以與上述相同的方式工作。也就是說,在初始化后,控制處理器501自外部設(shè)備402內(nèi)一相對(duì)小的控制處理器程序存儲(chǔ)器503讀取一初始程序。該初始程序提供指令以致使控制處理器501執(zhí)行一進(jìn)入主存儲(chǔ)器306的DMA操作。該DMA操作使來自存儲(chǔ)于主存儲(chǔ)器306中的CP功能程序碼的一批碼被傳送入指令緩沖器425中。然后控制處理器開始執(zhí)行來自指令緩沖器425的CP功能程序碼。包括離散控制處理器501給外部處理器409卸載以允許外部處理器409執(zhí)行實(shí)時(shí)功能而不需要與CP功能共享處理器資源。
圖6為本發(fā)明的一實(shí)施例的方框圖。其中外部設(shè)備602包括一離散控制處理器603及DMA硬件601??刂铺幚砥?03的工作與上述外部處理器409基本相同。不過,控制處理器603僅執(zhí)行CP功能程序碼指令。外部設(shè)備602包括一指令多路復(fù)用器413,其在控制處理器程序存儲(chǔ)器503及來自DMA硬件601的輸出之間進(jìn)行選擇。然而,在圖6的實(shí)施例中,控制處理器603只接收來自控制處理器程序存儲(chǔ)器503的初始指令。在本發(fā)明的一實(shí)施例中,控制處理器程序存儲(chǔ)器503被包括在外部程序存儲(chǔ)器415中。因此,提供一多路復(fù)用器414用于將程序計(jì)數(shù)器421的值耦合至外部程序存儲(chǔ)器415。并且多路復(fù)用器414將來自外部程序存儲(chǔ)器415的輸出耦合至控制處理器603。在一實(shí)施例中,多路復(fù)用器將優(yōu)先權(quán)給予外部處理器409,通過將優(yōu)先權(quán)給予外部處理器409,外部程序存儲(chǔ)器415可被共享而不會(huì)對(duì)外部處理器409的速度及外部處理器409對(duì)來自外部程序存儲(chǔ)器415的指令進(jìn)行存取的能力產(chǎn)生不利影響。另一方面,由于在初始化時(shí),控制處理器603只訪問控制處理程序存儲(chǔ)器503,控制處理器603被給予優(yōu)先權(quán)優(yōu)先于外部處理器409。
已對(duì)本發(fā)明的多個(gè)實(shí)施例進(jìn)行了描述,不過,可以理解在不超出本發(fā)明的精神及范圍的前提下可作出各種修改。例如,本發(fā)明被描述為使用一現(xiàn)有技術(shù)中眾所周知的DMA操作以將程序碼從主存儲(chǔ)器傳送至外部設(shè)備。然而,任何用于從主存儲(chǔ)器讀取程序指令并將其傳送至外部設(shè)備而不妨礙主處理器的裝置都在本發(fā)明公開的范圍內(nèi)。并且,任何具體類型的根據(jù)以程序形式提供的指令進(jìn)行工作的處理器、狀態(tài)機(jī)器,或其它類型的可編程硬件可被用來實(shí)現(xiàn)主處理器、外部處理器、控制處理器、或其它包括在DMA硬件內(nèi)的處理器。而且,在CP功能程序、外部程序碼中可包括任何具體的功能。還有,可用任何編程語言實(shí)現(xiàn)CP功能程序碼及外部程序碼。因此,可以理解本發(fā)明并不限于具體說明的實(shí)施例,而由所附的權(quán)利要求限定。
權(quán)利要求
1.一種與具有一主存儲(chǔ)器的主計(jì)算機(jī)一起使用的外部設(shè)備,其中,該主存儲(chǔ)器用于存儲(chǔ)由該主計(jì)算機(jī)使用的程序和數(shù)據(jù),該外部設(shè)備包括(a)耦合至該主存儲(chǔ)器用于請(qǐng)求一直接存儲(chǔ)器存取的裝置,用于啟動(dòng)一直接存儲(chǔ)器存取操作以對(duì)存儲(chǔ)在主存儲(chǔ)器內(nèi)的包括程序指令的信息進(jìn)行存?。?b)耦合至直接存儲(chǔ)器存取控制器的輔助計(jì)算機(jī),用于發(fā)送及接收來自直接存儲(chǔ)器存取控制器的信息,包括待由輔助計(jì)算機(jī)執(zhí)行的程序指令。
2.根據(jù)權(quán)利要求1所述的外部設(shè)備,其中該輔助計(jì)算機(jī)被封裝在一脫離主存儲(chǔ)器的外殼內(nèi),該外殼被配置成與第一外殼的一接口端口相連接。
3.根據(jù)權(quán)利要求2所述的外部設(shè)備,其中該接口端口是一PCMCIA端口。
4.根據(jù)權(quán)利要求3所述的外部設(shè)備,其中該主計(jì)算機(jī)是一膝上型計(jì)算機(jī)內(nèi)的微處理器,及該輔助計(jì)算機(jī)是一外圍設(shè)備。
5.根據(jù)權(quán)利要求4所述的外部設(shè)備,其中該外圍設(shè)備是一調(diào)制解調(diào)器。
6.根據(jù)權(quán)利要求1所述的外部設(shè)備,還包括一耦合至輔助計(jì)算機(jī)的特殊用途計(jì)算機(jī),用于執(zhí)行實(shí)時(shí)功能,其中(a)該主計(jì)算機(jī)是一通用微處理器;及(b)該輔助計(jì)算機(jī)是一用于執(zhí)行非實(shí)時(shí)功能的控制處理器。
7.根據(jù)權(quán)利要求1所述的外部設(shè)備,還包括(a)耦合至輔計(jì)算機(jī)的一特殊功能程序存儲(chǔ)器,用于存儲(chǔ)特殊功能程序;及(b)耦合至輔助計(jì)算機(jī)、特殊功能程序存儲(chǔ)器、及直接存取存儲(chǔ)器裝置的多路復(fù)用器,用于選擇地將指令或是自直接存儲(chǔ)器存取裝置或是自本地特殊功能程序存儲(chǔ)器耦合至輔助計(jì)算機(jī)。
8.根據(jù)權(quán)利要求7所述的外部設(shè)備,還包括一耦合至主存儲(chǔ)器及耦合至直接存儲(chǔ)器存取裝置的指令緩沖器,用于緩沖自主存儲(chǔ)器接收的指令,并使所接收的指令可為輔助計(jì)算機(jī)所采用。
9.根據(jù)權(quán)利要求1所述的外部設(shè)備,其中(a)該主計(jì)算機(jī)是一通用微處理器;及(b)該輔計(jì)算機(jī)是一數(shù)字信號(hào)處理器。
10.一種用于在第一及第二終端站之間進(jìn)行通信的調(diào)制解調(diào)器,該第一終端站有一具有一主存儲(chǔ)器的通用主計(jì)算機(jī),該調(diào)制解調(diào)器包括(a)用于對(duì)存儲(chǔ)在主存儲(chǔ)器內(nèi)的信息進(jìn)行存取的一直接存儲(chǔ)器存取控制器;(b)耦合至該直接存儲(chǔ)器存取控制器的數(shù)字信號(hào)處理器,用于接收來自該直接存儲(chǔ)器存取控制器的,由該直接存儲(chǔ)器存取控制器從主存儲(chǔ)器讀取的待由輔助計(jì)算機(jī)執(zhí)行的程序指令;其中這些程序指令控制數(shù)字信號(hào)處理器的操作以對(duì)在該第一及第二終端站之間被通信的信息進(jìn)行調(diào)制和解調(diào)。
11.根據(jù)權(quán)利要求10所述的調(diào)制解調(diào)器,其中該數(shù)字信號(hào)處理器對(duì)主計(jì)算機(jī)表現(xiàn)為一外部設(shè)備。
12.根據(jù)權(quán)利要求10所述的外部設(shè)備,其中由數(shù)字信號(hào)處理器自直接存儲(chǔ)器存取控制器接收的信息包括待由該數(shù)字信號(hào)處理器調(diào)制或解調(diào)的數(shù)據(jù)。
全文摘要
一種將一外部設(shè)備耦合至一主計(jì)算機(jī)的方法和裝置,使待由外部設(shè)備執(zhí)行的程序碼可存儲(chǔ)在主計(jì)算機(jī)存儲(chǔ)器內(nèi)而基本與主計(jì)算機(jī)無關(guān)。硬件及軟件使一程序及地址總線的邏輯位移跨接處理器間接口。一外部設(shè)備最好對(duì)存儲(chǔ)在主計(jì)算機(jī)存儲(chǔ)器的程序碼進(jìn)行直接存取。待由外部設(shè)備內(nèi)的外部處理器執(zhí)行的程序碼被自該主存儲(chǔ)器傳送至該外部設(shè)備內(nèi)的指令緩沖器存儲(chǔ)器。該外部處理器在一定時(shí)中斷的基礎(chǔ)上確定何時(shí)請(qǐng)求來自主存儲(chǔ)器的附加指令。
文檔編號(hào)G06F3/00GK1163428SQ9610907
公開日1997年10月29日 申請(qǐng)日期1996年8月9日 優(yōu)先權(quán)日1996年8月9日
發(fā)明者史密斯H·韋斯利 申請(qǐng)人:太平洋通訊科學(xué)有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1