專利名稱:多處理器數(shù)據(jù)存儲器共享的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計算機體系結(jié)構(gòu)中由一個控制處理器、一個或多個協(xié)處理器及一個共享的數(shù)據(jù)存儲器構(gòu)成的一個裝置,更具體地,涉及這樣一個系統(tǒng)中的一個裝置,它允許控制處理器連續(xù)地從控制存儲器中取指令,同時允許其它協(xié)處理器存取共享的存儲器,而更進一步具體地涉及這樣一種裝置,它允許控制處理器與協(xié)處理器共享數(shù)據(jù)存儲器而基本上不妨礙控制處理器執(zhí)行控制程序。
稱作馮·諾伊曼體系結(jié)構(gòu)的類型的先有技術(shù)微處理器具有一條單一的總線用于連接所有類型的存儲器,其中包括隨機存取存儲器(RAM)、只讀存儲器(ROM)、可編程只讀存儲器(PROM)、電可編程只讀存儲器(EPROM)及電可擦除與可重新編程只讀存儲器(EEPROM)。
ROM、PROM與EPROM通常用于存儲程序指令,因為這些類型的存儲器為“非易失性的”。即當(dāng)切斷電源時,它們不會丟失程序內(nèi)容。對于能夠暫時切斷電源來節(jié)省電池能量的蓄電池操作的設(shè)備,這一點是重要的。
另一方面,RAM與EEPROM則用于存儲暫時工作變量(RAM),或者作為程序執(zhí)行的結(jié)果計算機可能要改變的但必須在斷電期間保留的數(shù)據(jù)(EEPROM)。
在馮·諾伊曼體系結(jié)構(gòu)中,所有的不同存儲器模塊都是耦合在同一條電子地址與數(shù)據(jù)總線上的,從而計算機每次只能存取程序存儲器或數(shù)據(jù)存儲器之一而不能同時存取兩者。具有一條總線還意味著固定數(shù)據(jù)變量可存儲在程序ROM中,而需要時可從數(shù)據(jù)RAM中執(zhí)行程序指令。
先有技術(shù)馮·諾伊曼體系結(jié)構(gòu)的實例為英特爾8085與IBM PC系列微處理器8088、8086、80186、286、386、486;ZILOG Z80及莫托羅拉6800、6801、6802、6803…6809及68000系列處理器。
在認(rèn)識到可使用一種存儲器來存儲程序指令而另一種存儲器來存儲動態(tài)改變的數(shù)據(jù)的情況下,先有技術(shù)中經(jīng)常采用一種哈佛(Harvard)體系結(jié)構(gòu)。哈佛體系結(jié)構(gòu)的特征在于對于程序存儲器與數(shù)據(jù)存儲器具有分開的總線,從而程序指令不能從數(shù)據(jù)存儲器中執(zhí)行,并且取決于實現(xiàn),有可能不能將數(shù)據(jù)寫入程序存儲器中。
哈佛與馮·諾伊曼這兩種體系結(jié)構(gòu)通常允許從程序存儲器中讀取常量,這是一種通常稱作直接尋址的模式,因為否則將無法初始化原本是空的數(shù)據(jù)RAM。
哈佛體系結(jié)構(gòu)在處理器正在從程序ROM中取出其下一條指令的同時通過允許操作RAM中的數(shù)據(jù),而使處理速度不受人所共知的存儲器存取瓶頸現(xiàn)象的阻礙而得以提高。這種重疊過程稱作流水線操作。然而并非所有哈佛體系結(jié)構(gòu)都采用流水線操作。
哈佛體系結(jié)構(gòu)的實例為諸如德克薩斯儀器公司的TMS320系列與模擬設(shè)備公司的ADSP2100系列等數(shù)字信號處理器芯片,它們是采用流水線操作的。
哈佛體系結(jié)構(gòu)也能實現(xiàn)在只有一條單一的總線用于在計算機與程序及數(shù)據(jù)兩種存儲器類型之間尋址與傳送數(shù)據(jù)的體系結(jié)構(gòu)中。這里,不同種類的傳送(即程序指令或數(shù)據(jù))是以對不同類型的存儲器具有獨立的讀、寫或控制信號來區(qū)別的。這些體系結(jié)構(gòu)不能采用流水線操作。這種體系結(jié)構(gòu)的實例為INTEL 8048、8049、8051系列微控制器。當(dāng)然,為了達到減少集成電路上的管腳數(shù)目,在這些部件中犧牲了哈佛體系結(jié)構(gòu)的速度優(yōu)點。然而這一情況中分開的程序與數(shù)據(jù)存儲器的優(yōu)點是一條單一的16位地址總線不僅能尋址65,536字節(jié)的數(shù)據(jù),還能尋址65,536字節(jié)的程序指令。這是與諸如Z80或8085等馮·諾伊曼體系結(jié)構(gòu)的強烈對比,后者所具有的16位地址總線總共只能尋址65,536字節(jié),這必須將程序指令與數(shù)據(jù)分開,例如56K程序與8K數(shù)據(jù),或32K程序與32K數(shù)據(jù)。
用于加快計算機系統(tǒng)的處理速度的另一種先有技術(shù)稱作直接存儲器存取(DMA)。DMA這種技術(shù)是設(shè)計成允許諸如磁盤驅(qū)動器、磁帶機、通信調(diào)制解調(diào)器等外圍設(shè)備從計算機數(shù)據(jù)存儲器中抽取數(shù)據(jù)供傳輸或?qū)?shù)據(jù)存儲在外圍媒體中,或者反過來將從存儲設(shè)備檢索到的或由通信調(diào)制解調(diào)器接收到的數(shù)據(jù)直接放入計算機存儲器而不明顯減慢使用同一存儲器的計算機的執(zhí)行速度。這當(dāng)然只是在所謂多道程序應(yīng)用中才有用的,其中在一個第一作業(yè)正在等待DMA操作的完成時,計算機能夠同時執(zhí)行其它作業(yè)。DMA是一種輸入/輸出(I/O)技術(shù),它起到替代執(zhí)行向或從存儲器輸入或輸出數(shù)據(jù)字節(jié)的計算機指令的作用。因而計算機并不被I/O操作占用,這些操作是由DMA控制電路自動執(zhí)行的。計算機只初始化一個DMA控制器從起始在一個預(yù)定單元的存儲器中取出預(yù)定數(shù)目的字節(jié)N,或?qū)⑺鼈兘邮者M存儲器中。然后計算機掛起在DMA操作完成以前不能恢復(fù)的任何任務(wù),并執(zhí)行下一最高優(yōu)先級的任務(wù)。DMA完成時,為了通知計算機該DMA操作已經(jīng)完成,DMA控制器生成一個中斷。對此作出響應(yīng),計算機掛起當(dāng)前的任務(wù)并恢復(fù)原先請求DMA的任務(wù)。在完成了恢復(fù)的任務(wù)時,便恢復(fù)被掛起的任務(wù)或一個更高優(yōu)先級的任務(wù)。
結(jié)束一次DMA或任何I/O操作的另一種方法是通過將DMA或I/O控制器編程為探測最后傳送的一個特定的數(shù)據(jù)模式,諸如文件結(jié)束(EOF)或傳送結(jié)束(EOT)字符。
雖然先有技術(shù)DMA I/O技術(shù)允許計算機在等待I/O完成的同時執(zhí)行其它任務(wù),由于對存取同一存儲器的競爭,這些其它的任務(wù)不一定能以沒有活躍的DMA操作時相同的速度繼續(xù)執(zhí)行。如果計算機與DMA控制器兩者同時試圖存取的存儲器的速度至少兩倍于單一存取所需的速度,則可在交替的DMA與計算機存取之間進行分時而使兩者都不經(jīng)歷延時。反之,如果速度受到存儲器存取時間的限制,則為了允許另一進程進行,先有技術(shù)要求保存計算或I/O之一的一個進程或另一個,這具有下述缺點,即如果DMA操作在任何時刻都能挪用RAM存取周期時,一個給定的程序的實際執(zhí)行時間便不能絕對肯定。在諸如控制時分多路存取無線電通信設(shè)備的操作定時等實時應(yīng)用中,保持精確的定時是重要的。
因此希望提供一種改進的DMA控制器,這種控制器允許外圍設(shè)備控制器或?qū)S脜f(xié)處理器以非競爭的方式存取通用微處理器的數(shù)據(jù)RAM,借此避免擾亂程序執(zhí)行的定時。
將專用協(xié)處理器與通用微處理器連接在一起也是先有技術(shù)中已知的。適合于執(zhí)行快速定點或浮點運算的某些現(xiàn)代數(shù)字信號處理器包括一個所謂的主端口。一個主端口是一組連接管腳,用于連接到協(xié)調(diào)信號處理器的活動的一個通用微處理器上。然而,這種主端口連接的本質(zhì)不允許協(xié)處理器直接存取微處理器數(shù)據(jù)存儲器,即使主機能夠反向直接存取協(xié)處理器存儲器。后者較少競爭,因為包含它們的內(nèi)部存儲器在內(nèi)的協(xié)處理器速度通常比通用主處理器要快一個數(shù)量級。因此通用主處理器不可能明顯地延遲快速的協(xié)處理器,但另一方面,協(xié)處理器卻能明顯地延遲主機的操作。
存在于先有技術(shù)中這種由協(xié)處理器對主處理器的DMA進行控制的實例是這樣一種已知的DMA類型,即通過仲裁競爭中的主處理器與協(xié)處理器允許對存儲器存取,而反過來主機對協(xié)處理器存儲器的存取是通過周期挪用達到的。因此希望提供一種允許一個或多個協(xié)處理器對主機的隨機存取存儲器非競爭存取的一種裝置。
因此,本發(fā)明的一個目的為提供一種改進的DMA控制器,該控制器允許外圍設(shè)備控制器或?qū)S脜f(xié)處理器以非競爭方式存取一個通用微處理器的數(shù)據(jù)RAM,借此避免擾亂定時。
本發(fā)明的另一目的為提供一種裝置,該裝置允許一個通用微處理器連續(xù)地從程序存儲器中取指令,與此同時允許外圍設(shè)備控制器或?qū)S脜f(xié)處理器存取通用微處理器的數(shù)據(jù)RAM。
本發(fā)明的又一目的為提供具有上述特征并與具有馮·諾伊曼體系結(jié)構(gòu)的一個通用微處理器一起工作的一種裝置。
本發(fā)明在一個系統(tǒng)中操作,其中一個控制微處理器執(zhí)行存儲在一個只讀存儲器(ROM)中的一個控制程序。該控制程序的指令經(jīng)常但并不總是從用作數(shù)據(jù)存儲器的一個隨機存取存儲器(RAM)中讀取數(shù)據(jù),或?qū)?shù)據(jù)寫入其中。從而,在從ROM中讀取指令時數(shù)據(jù)存儲器不受到控制處理器的存取,甚至在指令執(zhí)行期間對指令的某些部分也如此。然而,當(dāng)控制處理器正在從只讀存儲器中取出其下一條指令時,由于微處理器通常使用同一條地址與數(shù)據(jù)總線來連接所有的存儲器類型,無論是控制存儲器(ROM)還是數(shù)據(jù)存儲器(RAM),另一個實體對數(shù)據(jù)存儲器的同時存取通常是不可能的。然而,本發(fā)明通過利用一個開關(guān)至少在當(dāng)控制處理器正在從ROM中讀取指令時將數(shù)據(jù)存儲器與控制處理器相隔離,而為ROM與數(shù)據(jù)存儲器建立分開的總線。開關(guān)可由微處理器所提供的表明正在進行一個“取指令”操作的一個控制信號來操作。這一及其它信號是RAM總線仲裁邏輯用來確定何時RAM總線可以分配給其它處理器的。作為替代,可以設(shè)置檢測裝置來檢測控制處理器是否正在試圖存取與數(shù)據(jù)存儲器相關(guān)聯(lián)的一個地址區(qū)域不對應(yīng)的一個地址。
取決于數(shù)據(jù)存儲器與ROM的相對速度,在控制處理器執(zhí)行取指令期間,可允許一次或多次存取數(shù)據(jù)存儲器來為協(xié)處理器的需要服務(wù)。在一個直接存儲器存取調(diào)度器已服務(wù)于這一數(shù)目的數(shù)據(jù)存儲器存取之后,它便在控制處理器確立(必要時)重新將RAM總線連接到控制處理器的開關(guān)控制信號時,及時停止存取數(shù)據(jù)存儲器。因此,其它處理器的這種存取完全不會減慢控制處理器的程序執(zhí)行。
按照本發(fā)明的另一方面,一種例外是允許高優(yōu)先級的RAM總線請求優(yōu)先于控制處理器。例如,當(dāng)DMA調(diào)度器所維護的數(shù)據(jù)存儲器存取隊列已達到最大允許隊列長度時,便可確立高優(yōu)先級,在這一點上授權(quán)調(diào)度器延長使用數(shù)據(jù)存儲器直到它清空討論中的隊列為止,而這時如果控制處理器企圖存取數(shù)據(jù)存儲器則向它發(fā)布一個WAIT(等待)信號。
從而,按照本發(fā)明的一個方面,用于控制對數(shù)據(jù)存儲器的存取的一種裝置包括用于耦合到所述控制處理器上的控制處理器接口裝置;用于耦合到協(xié)處理器上的協(xié)處理器接口裝置;耦合到控制處理器接口裝置上的檢測裝置,它用于探測何時控制處理器請求存取程序存儲器并對此作出響應(yīng)而生成一個第一存取控制信號;耦合在協(xié)處理器接口裝置上的調(diào)度裝置,它用于探測協(xié)處理器何時請求存取數(shù)據(jù)存儲器,并對此作出響應(yīng)而生成一個第二存取控制信號;一個開關(guān),具有一個開關(guān)控制輸入裝置、用于耦合與控制處理器相關(guān)聯(lián)的存儲器地址、存儲器數(shù)據(jù)及存儲器控制信號的一個第一接口裝置、用于耦合與協(xié)處理器相關(guān)聯(lián)的存儲器地址、存儲器數(shù)據(jù)及存儲器控制信號的一個第二接口裝置以及用于耦合到數(shù)據(jù)存儲器的一個數(shù)據(jù)存儲器接口裝置,其中該開關(guān)響應(yīng)從所述控制輸入端接收的一個開關(guān)控制信號交替地將第一接口裝置與第二接口裝置耦合到數(shù)據(jù)存儲器接口裝置上;以及耦合在檢測裝置、調(diào)度裝置及開關(guān)上的仲裁裝置,用于響應(yīng)第一與第二存取控制信號生成一個開關(guān)控制信號。
通過結(jié)合附圖閱讀下述詳細(xì)說明將能理解本發(fā)明的上述與其它特征、目的與優(yōu)點,其中
圖1為包含本發(fā)明的特征的時分多路存取(Time DivisionMultiple Access-TDMA)數(shù)字移動蜂窩式電話的方框圖;圖2為按照本發(fā)明的DMA控制器的方框圖;圖3為按照本發(fā)明的DMA通道控制器的方框圖;圖4為按照本發(fā)明的DMA計數(shù)器的結(jié)構(gòu)的方框圖;以及圖5-9展示結(jié)合按照本發(fā)明的DMA優(yōu)先級方案的各種定時實例。
本發(fā)明涉及快速、專用的計算機體系結(jié)構(gòu),諸如可用于處理供傳輸或接收或同時進行傳輸與接收的聲音、無線電或雷達數(shù)據(jù)。這種計算機體系結(jié)構(gòu)通常包括一個諸如通用微處理器芯片之類的控制處理器,該控制處理器用來協(xié)調(diào)一塊或多塊專用信號處理器芯片的活動。本發(fā)明允許所有處理器共享一塊公共的隨機存取存儲器(RAM)芯片,以便該RAM芯片可用作通過它將已由一塊芯片以一種方式處理過的數(shù)據(jù)供給另一塊芯片利用來以另一種方式處理的媒介。
本發(fā)明的一種特征包括即使在所述處理器為只設(shè)置一條單一的數(shù)據(jù)總線的諸如Z80這樣的馮·諾伊曼類型時,也建立一條單獨的數(shù)據(jù)總線用于將主處理器連接到其數(shù)據(jù)RAM上。為了允許協(xié)處理器存取,設(shè)置了一個開關(guān),當(dāng)要求從數(shù)據(jù)RAM存取時便將該示例性Z80馮·諾伊曼計算機總線連接到該數(shù)據(jù)RAM上,否則便斷開它。與先有技術(shù)相反,當(dāng)需要對數(shù)據(jù)RAM進行存取時,從不拒絕計算機這種存取(至少在正常環(huán)境下如此),因此不會出現(xiàn)程序減速。由于對該創(chuàng)造性DMA控制器提供了允分的機會來實現(xiàn)其數(shù)據(jù)RAM存取,面不須挪用計算機周期,所以這是可能的。示例性Z80馮·諾伊曼計算機必須在定期的基礎(chǔ)上從程序存儲器(諸如ROM)中找到其下一條程序指令,并且其固有的單總線馮·諾伊曼體系結(jié)構(gòu)不能同時請求RAM存取。因此,計算機的每一個指令執(zhí)行周期形成了計算機不能存取RAM的一個時間期間,因為這時計算機正在從ROM中取指令。
按照本發(fā)明,為了控制一個將數(shù)據(jù)RAM與計算機的馮·諾伊曼總線相隔離并將其連接到DMA控制器總線的開關(guān)的操作,而探測計算機的“取指令”周期的出現(xiàn),通過DMA控制器總線諸如外圍控制器或協(xié)處理器的其它設(shè)備能夠接受訪問。許多計算機提供“取指令”指示信號,在本發(fā)明中可將它用于這一目的。例如,示例性Z80處理器提供一個指示取指令周期出現(xiàn)的稱作M1的信號。其它處理器也提供這種信號,但可能是以不同的方式,諸如8085的S0、S1模式信號。
作為替代,開關(guān)的操作也能由檢測到處理器正試圖存取位于與數(shù)據(jù)RAM相關(guān)聯(lián)的范圍內(nèi)的一個存儲器地址而導(dǎo)出的一個信號來控制。未確立這一信號表明數(shù)據(jù)RAM可從計算機的馮·諾伊曼總線上隔離而代之以連接到DMA控制器總線上。下面將對此極為詳盡地加以描述。
創(chuàng)造性DMA控制器便是這樣用來自主處理器的一個取指令控制信號進行同步而將對數(shù)據(jù)RAM的存取授權(quán)給DMA設(shè)備的。在本發(fā)明的另一方面中,DMA控制器還包括基于先到先服務(wù)形成由協(xié)處理器所請求的一個DMA存取隊列的裝置。DMA控制器還可進一步包括形成多個相同優(yōu)先級的存取請求隊列的裝置,不同的隊列具有不同的優(yōu)先級的裝置。只在所有較高優(yōu)先級的隊列都是空的情況下,一個較低優(yōu)先級的隊列才接受存取授權(quán)。作為替代,也可按照一個“循環(huán)”調(diào)度程序授予分離的等優(yōu)先級的線性隊列以存取的機會。
通??梢约俣―MA請求的平均速率容易與可利用的DMA機會的平均數(shù)相適應(yīng)。如上所述每當(dāng)計算機執(zhí)行一條指令時便出現(xiàn)一次DMA機會,而這通常至少以每秒一百萬次的速率出現(xiàn)。從而,通常的情況是存在每秒一兆字節(jié)的DMA容量不會減慢微處理器。甚至有可能在一個取指令的間隔內(nèi)容納兩次DMA存取,從而提供2兆字節(jié)/秒的DMA容量。
此外,可以知道一部分指令各包含從ROM中取出兩或三個字節(jié),從而對RAM給予了若干連續(xù)的DMA的存取時間。同時,一部分指令可能完全不尋址RAM,但代之以只包含對ROM、EEPROM、內(nèi)部寄存器或I/O端口的存取。從而,即使在全速運行時,典型的通用處理器平均起來并不使用超過可利用的RAM總線帶寬的一小部分,因此大部分RAM總線帶寬可供協(xié)處理器用本創(chuàng)造性DMA控制器來利用。平均起來,每秒2至4兆字節(jié)的DMA足以支持諸如實時話音I/O設(shè)備等許多高速外圍設(shè)備或協(xié)處理器,如包含在示例性時分多路存取(TDMA)蜂窩式移動電話實施例中的。這種協(xié)處理器通常讀取有限數(shù)目的數(shù)據(jù)字節(jié),然后將這些數(shù)據(jù)字節(jié)用在執(zhí)行大量的數(shù)學(xué)或邏輯運算中以產(chǎn)生有限數(shù)目的結(jié)果,然后通過DMA將其存儲回數(shù)據(jù)RAM中。如果通常在每一個通過DMA的字節(jié)上執(zhí)行四十次數(shù)學(xué)運算,則1兆字節(jié)/秒的DMA可支持以每秒4千萬條指令(MIPS)的速度操作的協(xié)處理器。然而,通常存在著若干協(xié)處理器在緊密相間的時間內(nèi)生成成群的DMA請求的可能性,從而填滿DMA控制器中的可利用的隊列空間。本創(chuàng)造性DMA控制器通常采用先進先出存儲器(FIFO)來實現(xiàn)隊列。FIFO存儲器大小限定了能夠不溢出地排隊的準(zhǔn)同時接收的請求的最大數(shù)目。在示例性數(shù)字TDMA蜂窩式電話中,16個字節(jié)入口的FIFO長度給出足夠流暢的DMA活動。但是,熟悉本技術(shù)的人員應(yīng)能認(rèn)識到適當(dāng)?shù)腇IFO存儲器大小的選擇是依賴于應(yīng)用的,并且因此可以與本實例不同。
為了對更高效地處理成群的DMA請求提供更大的靈活性,本創(chuàng)造性DMA控制器還可為了服務(wù)于其FIFO已填滿的一個高優(yōu)先級DMA隊列而包括違背“非競爭”規(guī)則的裝置。當(dāng)為這一隊列生成了“FIFO FULL”(FIFO滿)指示信號時,可給予DMA控制器高于計算機的數(shù)據(jù)RAM存取的優(yōu)先級。首先允許已啟動的微處理器RAM的存取運行到完成,諸如用清除從計算機至RAM的一個讀或?qū)懶盘杹碇该鬟@一完成。然后,如果計算機接著自ROM取指令,便釋放RAM總線并授予DMA控制器對RAM的存取。DMA控制器保持存取直到完成了對該隊列的服務(wù)并為該隊列生成一個FIFOEMPTY(FIFO空)信號為止。然而,如果微處理器請求另一次數(shù)據(jù)存儲器存取而不是自ROM取指令,則通過向給計算機確立一個WAIT(等待)信號而保留該請求,直到確立FIFO EMPTY(FIFO空)信號為止。如果在生成FIFO EMPTY信號時,計算機不在尋址RAM,便立即授予DMA隊列存取并保持存取直到隊列空為止。如果當(dāng)生成FIFO FULL信號時,計算機正在尋址RAM,則允許計算機的操作運行到完成,如果下面的計算機存取請求也是對RAM的,則拒絕該請求并控制住計算機,以給DMA清空隊列的時間。
作為對上述違背非競爭策略來處理一組緊急的DMA請求的手段的一種替代,可采用“交錯”策略,借此每當(dāng)兩者要求一系列相繼的存取時,分配給DMA控制器與計算機交替的RAM存取。這一交錯技術(shù)的作用是減慢計算機與DMA控制器兩者,而不是完全延遲計算機直到清空DMA隊列為止。
在生成一個FIFO滿信號時一個DMA隊列是否接受無特權(quán)的處理(具有全面超過計算機的優(yōu)先權(quán))、或者在生成FIFO滿信號時與競爭中的計算機RAM存取請求交替地具有優(yōu)先權(quán),這取決于分配給該DMA隊列的優(yōu)先級。優(yōu)先級可以是固定的(硬接線的)或者也可以是在建立時或隨后由計算機本身編程的。通過使優(yōu)先級可編程,能夠提供極大的靈活性來按照應(yīng)用或應(yīng)用內(nèi)的當(dāng)前操作模式動態(tài)地改變DMA優(yōu)先級。
在本發(fā)明的另一方面中,除了將DMA隊列的優(yōu)先級確定為高于處理器作出的請求的優(yōu)先級之外,還可將一個DMA設(shè)備的RAM存取請求的優(yōu)先級確定為高于其它DMA請求。在先有技術(shù)中允許外圍設(shè)備中斷一個正在進行的計算機程序來接受特別關(guān)注的按優(yōu)先級排列中斷的觀點中,這種分層次的優(yōu)先級是已知的。然而,永不允許按優(yōu)先級排列的中斷去中斷在執(zhí)行中的一條指令,在本創(chuàng)造性DMA控制器中就是這樣,它們也不為了接受對存儲器的直接存取而引發(fā)中斷。另一方面,先有技術(shù)中需要直接存取存儲器的設(shè)備都中斷處理器的程序執(zhí)行。這是通常這樣進行的,首先對微處理器確立一個"BUSREQUEST"(“總線請求”)信號,然后等待微處理器回答一個"BUSGRANT″(“總線授權(quán)”)信號。在這種先有技術(shù)方法中執(zhí)行的微處理器程序停止執(zhí)行直到清除了BUS REQUEST(總線請求)信號為止。
本發(fā)明的一個示例性應(yīng)用在圖1中示出為一種時分多路存取(TDMA)蜂窩式數(shù)字移動電話。然而,對于本技術(shù)中的普通技術(shù)人員而言,顯然本發(fā)明的各個方面能夠應(yīng)用在一個微處理器與一個或多個協(xié)處理器共享一個數(shù)據(jù)RAM的任何計算機體系結(jié)構(gòu)中,該微處理器為程序指令利用一個不同的存儲器源。從而,對于本發(fā)明的徹底理解面言,TDMA蜂窩式數(shù)字移動電話的操作的完整描述不是必要的。下面為了例示本發(fā)明的各種特征對如何能提供一個控制處理器、若干協(xié)處理器及一個共享的數(shù)據(jù)存儲器之間的相互作用這一主要目的而提出這種電話的操作的概貌。
參見圖1,所例示的TDMA蜂窩式數(shù)字移動電話具有兩種基本操作模式空閑與對話中。在空閑模式中,電話機監(jiān)聽蜂窩式網(wǎng)絡(luò)(未示出)的廣播呼叫或?qū)ず粜诺?,但并不發(fā)送。因此在空閑模式中信號處理活動是低的,并且每秒的DMA請求次數(shù)也是低的。
在對話模式中,電話機用天線1與接收機2接收來自蜂窩式網(wǎng)絡(luò)的攜帶有編碼的數(shù)字化話音信息的TDMA信號脈沖串,電話機必須緩沖存儲這些數(shù)字化話音信息、解調(diào)、解碼它們并將它們轉(zhuǎn)換成連續(xù)的話音波形。差不多在同時,至少在用戶覺察到時,便從話筒17輸入他的話音、加以數(shù)字化與編碼,并在一個分配的傳輸時隙(timeslot)中以數(shù)據(jù)脈沖串形式發(fā)送。傳輸時隙與接收時隙是交錯的,因此電話機不需要在同一時間發(fā)送與接收,從而有利于使用了同一天線1的。這樣,在一個TDMA幀周期內(nèi),必須執(zhí)行如下的若干操作1.用發(fā)送/接收(T/R)開關(guān)4將天線1轉(zhuǎn)換到接收機2上并啟動接收機。
2.在接收機2中接收一個模擬信號脈沖串,用模數(shù)(A/D)轉(zhuǎn)換器9數(shù)字化該脈沖信號,并通過DMA控制器6將數(shù)字化的信號傳送到數(shù)據(jù)存儲器8的一個緩沖區(qū)中,然后將天線1轉(zhuǎn)換到發(fā)送機3上并關(guān)掉接收機。
3.激活一個脈沖串解調(diào)協(xié)處理器11來解調(diào)存儲在數(shù)據(jù)存儲器8的緩沖區(qū)中的脈沖串并將解調(diào)結(jié)果返回到數(shù)據(jù)存儲器8。
4.激活一個編碼/解碼單元12順序地從數(shù)據(jù)存儲器8中檢索供傳輸?shù)南乱幻}沖串,加以編碼,并將編碼的數(shù)據(jù)存儲回存儲器8中。
5.激活發(fā)射機3來傳輸序列中的下一編碼的數(shù)據(jù)脈沖串,這一數(shù)據(jù)脈沖串的數(shù)據(jù)是從數(shù)據(jù)存儲器8中檢索的,并在發(fā)送以前用數(shù)模(D/A)轉(zhuǎn)換器10轉(zhuǎn)換成模擬形式。
6.每次執(zhí)行步驟3之后,便激活編碼/解碼協(xié)處理器12來解碼該編碼的數(shù)字話音。
7.每當(dāng)完成了步驟6的四次執(zhí)行之后,便激活一個糾錯解碼器協(xié)處理器13來解開交錯及解碼該編碼的結(jié)果以生成解碼的話音數(shù)據(jù)或控制數(shù)據(jù)。
8.每次完成步驟7之后,便激活一個話音數(shù)據(jù)解碼器14將解碼后的話音數(shù)據(jù)轉(zhuǎn)換成若干脈沖碼調(diào)制的(pulse code modulation-PCM)波形樣本,并將它們放入數(shù)據(jù)存儲器8的一個循環(huán)緩沖器中。
9.同時,每125μS從數(shù)據(jù)存儲器8中抽取一個以前存儲的PCM樣本,用D/A轉(zhuǎn)換器10將其從數(shù)字轉(zhuǎn)換成模擬形式,并以棋擬話音波形驅(qū)動耳機;也是每125μS,將來自話筒17的一個模擬波形樣本用A/D轉(zhuǎn)換器9轉(zhuǎn)換成數(shù)字形式,并將其存儲在位于數(shù)據(jù)存儲器8中的傳輸話音循環(huán)緩沖器中。
10.每20ms處理來自傳輸話音緩沖器的160個PCM樣本以生成話音數(shù)據(jù)并將其放置在存儲器中。
11.在步驟10的每次執(zhí)行之后,激活一個信道編碼器16對話音數(shù)據(jù)進行糾錯編碼并在若干TDMA脈沖串上交錯編碼數(shù)據(jù)及順序地在數(shù)據(jù)存儲器8中構(gòu)造脈沖串。
從以上所述可見,必須在不同的時間上激活若干協(xié)處理器19,并且某些進程是準(zhǔn)同步的或具有不確定的定時。由于這些不同步的進程可能對同一存儲器生成大量的存取請求,因此DMA控制器6必須根據(jù)特定的DMA通道的優(yōu)先級交錯地授權(quán)這些請求。例如,DMA控制器6必須維護一種規(guī)范,其中請求對數(shù)據(jù)存儲器8進行存取的最高優(yōu)先級的DMA通道優(yōu)先于較低優(yōu)先級的通道及控制處理器5的存取請求,并且其中優(yōu)先級相等的DMA通道的請求在分配給它們的DMA機會中在輪轉(zhuǎn)的基礎(chǔ)上交錯操作。在后一情況中,DMA機會既可以優(yōu)先于控制處理器5的請求進行授權(quán)(當(dāng)各該DMA通道具有高優(yōu)先級時),或者它們也可以與控制處理器5的請求在交替的基礎(chǔ)上授權(quán)(當(dāng)各該DMA通道具有中等優(yōu)先級時)。
某些進程只是伴隨其它進程或伴隨另一種操作的一定數(shù)目的完成次數(shù)而啟動的。這種協(xié)調(diào)是主計算機或控制處理器5的功能??刂铺幚砥?激活DMA控制器6將來自數(shù)據(jù)存儲器8的一定數(shù)目的字節(jié)發(fā)送給協(xié)處理器19之一或?qū)膮f(xié)處理器19之一接收的一定數(shù)目的字節(jié)發(fā)送給數(shù)據(jù)存儲器8,并且還激活協(xié)處理器執(zhí)行所要求的操作。在完成操作時,控制處理器5接收來自DMA控制器6的一個中斷。然后控制處理器5判定是否要觸發(fā)另一個協(xié)處理器與DMA活動。雖然DMA控制器6與協(xié)處理器是自主操作的,但控制處理器5處理諸如更新用戶顯示器及掃描用戶鍵盤這些一起稱作人機界面(MMI)(未示出)的較慢較低優(yōu)先級任務(wù)。
本發(fā)明理想地適合于實現(xiàn)上述系統(tǒng)。圖1中所示的示例性應(yīng)用將在下面進一步詳細(xì)討論。
天線1用受控制處理器5控制的T/R開關(guān)4連接到發(fā)送機3上,或者連接到接收機2上。控制處理器5還能啟動接收機2與A/D轉(zhuǎn)換器9去接收一個TDMA信號脈沖串,最好采用美國專利號5,048,059(通過引用結(jié)合在此)中所公開的logpolar技術(shù)來數(shù)字化,并啟動按照本發(fā)明所構(gòu)造的一個DMA控制器6將數(shù)字化的接收數(shù)據(jù)引導(dǎo)到隨機存取數(shù)據(jù)存儲器8中。A/D轉(zhuǎn)換器9還耦合到話筒17上用于對話筒信號進行數(shù)字化的目的,并且該信號也經(jīng)由DMA控制器6引導(dǎo)到數(shù)據(jù)存儲器8中??刂铺幚砥?也能編程DMA控制器6在采集到一定數(shù)目的接收數(shù)據(jù)樣本之后生成一個中斷,在這一時刻,控制處理器5重新激活解調(diào)協(xié)處理器11,在本創(chuàng)造性DMA控制器6的幫助下自主地從數(shù)據(jù)存儲器8中讀回所接收的數(shù)據(jù),以其本身的速度處理它,并在DMA控制器6的幫助下將處理結(jié)果存儲回數(shù)據(jù)存儲器8中??刂铺幚砥?可編程DMA控制器6在將來自解調(diào)協(xié)處理器11的所期望數(shù)目的處理結(jié)果經(jīng)DMA傳輸進存儲器之后,生成一個中斷。這時,控制處理器5便能激活編碼/解碼協(xié)處理器12從數(shù)據(jù)存儲器8中類似地讀回結(jié)果,解碼它們,并將解碼的結(jié)果返回給數(shù)據(jù)存儲器8。在一種較佳的實現(xiàn)中,為了避免過多的存儲器讀與重寫,解密操作是在解調(diào)協(xié)處理器11與DMA控制器6的輸出結(jié)果之間的傳輸中執(zhí)行的。在這種實現(xiàn)中,編碼/解碼協(xié)處理器12將是DMA控制器6的一部分,從而它便能在將來自解調(diào)協(xié)處理器11的數(shù)據(jù)存儲回數(shù)據(jù)存儲器8之前對其進行操作,這樣便能避免將數(shù)據(jù)寫入數(shù)據(jù)存儲器8,重新讀取然后再一次重新寫入。
在一個替代實施例中,控制處理器5執(zhí)行一種軟件解碼算法,直接對存儲在數(shù)據(jù)存儲器8中的結(jié)果進行運算來解碼它們。這些選擇取決于編碼算法的選擇。再者,本發(fā)明的DMA控制器6能由控制處理器5重新編程來按照上述解碼技術(shù)中任何一種確定數(shù)據(jù)的路徑,從而允許相同的硬件根據(jù)環(huán)境執(zhí)行不同的解碼模式。
解碼操作之后,可將DMA控制器6預(yù)編程以向控制處理器5生成一個表示一塊新的解碼數(shù)據(jù)已存儲在存儲器中的中斷。然后控制處理器5將已處理的塊的計數(shù)加一,并判定是否到了激活糾錯解碼協(xié)處理器13來一起執(zhí)行塊的交錯的解開及解碼的時間。如果是,便激活DMA控制器6將用于解碼的數(shù)據(jù)發(fā)送給糾錯解碼協(xié)處理器13,并從該處理器接收預(yù)期數(shù)目的解碼結(jié)果以引導(dǎo)回數(shù)據(jù)存儲器8??蓪MA控制器6設(shè)置成在處理了預(yù)期數(shù)目的結(jié)果并將它們存儲進數(shù)據(jù)存儲器8時,中斷控制處理器5。
當(dāng)有必要生成一個由該示例性TDMA蜂窩式數(shù)字移動電話傳輸?shù)男盘枙r,便執(zhí)行與上述過程反向的類似操作。然而,需要指出的是,在編碼/解碼協(xié)處理器位于DMA控制器6內(nèi)的實施例中,編碼/解碼協(xié)處理器最好從稱作“脈沖串構(gòu)成器”(burst builder)(未示出)的一個第二協(xié)處理器中得到要編碼的數(shù)據(jù),該協(xié)處理器將編碼數(shù)據(jù)與同步字及其它控制位組合成規(guī)定的傳輸格式,將組合脈沖串轉(zhuǎn)換成用一序列數(shù)字樣本表示的一個調(diào)制波形,然后將它們輸出到D/A轉(zhuǎn)換器10供以后調(diào)制發(fā)射機3。諸如正在討論的那樣的一個內(nèi)部脈沖串構(gòu)成器將包括一個DMA地址發(fā)生器,該地址發(fā)生器能從交錯格式發(fā)生器所定義的一個序列的位置中檢索數(shù)據(jù)。
操作的描述將不再繼續(xù)進行,由于現(xiàn)在應(yīng)已明了主控處理器5如何應(yīng)用DMA控制器6來協(xié)調(diào)依賴于或獨立于其它協(xié)處理器活動的協(xié)處理器活動,并通過簡單地編程要找出供處理的數(shù)據(jù)或者放置處理后的數(shù)據(jù)的存儲器起始地址便可確定任何要求的中間結(jié)果在協(xié)處理器之間的發(fā)送。
要指出的是諸如具有馮·諾伊曼型體系結(jié)構(gòu)的ZILOG Z80這樣的控制處理器5具有連接在DMA控制器6上的一條單一地址總線及雙向數(shù)據(jù)總線。創(chuàng)造性DMA控制器6包括將控制處理器總線連接在ROM7上的裝置,ROM7中包含控制處理器5所執(zhí)行的程序指令序列。DMA控制器6還包括在控制處理器5存取ROM7時將數(shù)據(jù)存儲器8的數(shù)據(jù)與地址總線連接到所述協(xié)處理器19之一或其它的裝置,以及在控制處理器5請求時將數(shù)據(jù)存儲器8的總線連接到控制處理器5的總線的裝置。如果控制處理器5的地址總線上的一個地址對應(yīng)于與數(shù)據(jù)存儲器8相關(guān)聯(lián)的地址區(qū),便指示這一請求。例如,數(shù)據(jù)存儲器地址區(qū)可以是地址范圍32,768-65,535,而地址范圍0至32,767則對應(yīng)于被ROM7占用的地址。為了允許在ROM7中存儲32K字節(jié)以上的程序,DMA控制器6中可含有一個存儲器管理單元(MMU),該單元為一個一字節(jié)存儲器地址擴充寄存器。這一寄存器具有一個8位字節(jié),它由控制處理器5執(zhí)行的一條I/O或存儲器映射的I/O指令寫入,以便選擇要映射到程序存儲器地址范圍的上一半,即范圍16,384-32,767的ROM的1個至256個可能的16K字節(jié)段,而ROM的同一16K段則總是映射到程序存儲器范圍的下一半中,即0-16,383。需要一個稱作根ROM(root ROM)的永久性映射部分的理由是其中包含電源起動例程,這樣便能獨立于MMU寄存器的任意接通內(nèi)容而操作。再者,根ROM中可包含通過操縱MMU而在16KROM段之間進行段跳轉(zhuǎn)所需的永久性代碼。這種MMU是先有技術(shù)中已知的并包括在日立銷售的稱作64180的可購得的處理器中。
下面參照圖2說明創(chuàng)造性DMA控制器的內(nèi)部細(xì)節(jié)。
地址解碼器20探測存在于16位處理器地址總線上的專用地址或地址范圍的出現(xiàn)。地址探測可用諸如“MREQ”(當(dāng)存在一個Z80微處理器時)或“ALE”(當(dāng)存在一個8085微處理器時)處理器信號同步。例如,一個專用地址是一個分配給包含在MMU21中的一個8位寄存器(未示出)的I/O地址。當(dāng)在地址總線上探測到這一I/O地址連同來自控制處理器5的表示I/O操作的一個控制信號時,便從控制處理器5向MMU寄存器傳送用于構(gòu)成ROM地址的高位的一個8位數(shù)據(jù)值。當(dāng)探測到來自控制處理器5的地址位在ROM地址范圍內(nèi)(例如,由控制處理器5的地址總線所定義的低32K地址空間)以及一個來自控制處理器5的READ(讀)控制信號時,便將控制處理器地址位(例如,在示例中,至少15個低位)與MMU21輸出的8位組合而構(gòu)成取決于實現(xiàn)的在20與24位寬度之間的一個擴充的地址,從面允許尋址至少多達一兆字節(jié)的ROM。包含在表示從MMU21連接到ROM7的20-24個針中的為諸如可能需要的CHIP ENABLE信號等控制信號。
當(dāng)探測到控制處理器5正在尋址ROM7時,至RAM總線仲裁邏輯24的RAM/ROM/IO ADDRESS RANGE信號是不活躍的。這時,RAM總線仲裁邏輯24可通過將總線開關(guān)23切換成將DMA地址與數(shù)據(jù)總線以及讀/寫控制信號(所有這些都與協(xié)處理器19之一所作出的數(shù)據(jù)存儲器存取相關(guān))連接到數(shù)據(jù)存儲器8上而授權(quán)DMA調(diào)度器25存取RAM總線36。如果探測到的處理器地址在與數(shù)據(jù)存儲器8相關(guān)聯(lián)的范圍內(nèi),并且來自處理器的控制信號表示讀或?qū)懘嫒∈瞧惹械臅r,則RAM總線仲裁邏輯24的表現(xiàn)依賴于從DMA調(diào)度器25接收的優(yōu)先級信號及依賴于操作序列的當(dāng)前狀態(tài)。即,總是允許任何已開始的控制處理器數(shù)據(jù)存儲器完成一個字節(jié)的存取,但如果DMA調(diào)度器25指明一個適當(dāng)優(yōu)先級的DMA請求正在等待,則掛起緊跟在后面的訪問??刂铺幚砥魍ǔD芙邮転榇四康亩峁┙o它們的一個等待信號。
DMA隊列(FIFO)(下面描述的)為DMA通道控制器26、27、29的一部分。各通道控制器26、27、29經(jīng)由一個實際上是一組可尋址的開關(guān)的多路轉(zhuǎn)換器28連接到RAM總線36上。多路轉(zhuǎn)換器28在DMA調(diào)度器25的控制下操作,將DMA通道控制器26、27、29中選定的一個連接到RAM總線開關(guān)23上。圖2中所示的25線接線器37通常包括一條15位地址總線、一條8位雙向數(shù)據(jù)總線及指示讀或?qū)懙目刂菩盘枴H绻c各DMA控制器相關(guān)聯(lián)的優(yōu)先級不是固定的而是從協(xié)處理器19中相關(guān)的一個接收的,則可包括優(yōu)先級信號。
為了減少管腳數(shù)及功率消耗,最好將DMA控制器6與控制處理器5實現(xiàn)在同一芯片上。ROM7與數(shù)據(jù)存儲器8通常在這一芯片外部,但為了減少外部存取,可以有選擇地將數(shù)據(jù)存儲器8中主要由DMA操作尋址的部分最好包含在同一芯片上。可以有選擇地將開關(guān)33包含在該芯片上以防止在RAM總線開關(guān)23切換微處理器總線來尋址數(shù)據(jù)存儲器8時觸發(fā)ROM數(shù)據(jù)總線??蓪⒋鎯ζ鞴芾韱卧?1設(shè)計成在控制處理器8正在尋址數(shù)據(jù)存儲器8時防止觸發(fā)ROM地址線。防止這些線的不必要觸發(fā)可以降低功耗,這是本發(fā)明將RAM與ROM總線分開所得到的一種優(yōu)點。
當(dāng)要將許多外部協(xié)處理器連接到該芯片上時,還希望用位串行接口減少管腳數(shù)目。諸如德克薩斯儀器公司的TMS320-C53或模擬設(shè)備公司的ADSP2101等許多市場上可購得的協(xié)處理器具有適當(dāng)?shù)拇薪涌?。這些接口用串行數(shù)據(jù)線將16位字傳送給本創(chuàng)造性芯片或從其上向外傳送。位傳送是與一條時鐘線同步的,而字邊界則由一條選通線指示。按照本發(fā)明構(gòu)成的芯片能適當(dāng)?shù)匕械讲⑿械霓D(zhuǎn)換接口電路(串行I/F電路)30、31、32,在這種串行接口與具有相關(guān)的DMA通道控制器26、27、29的一個16位并行字接口的協(xié)議之間轉(zhuǎn)換。通道控制器執(zhí)行16位協(xié)處理器傳送與8位DMA傳送之間的轉(zhuǎn)換,即一次16位傳送是作為兩次去往或來自數(shù)據(jù)存儲器8的一字節(jié)傳送處理的。當(dāng)然,16位的字長及8位的數(shù)據(jù)存儲器數(shù)據(jù)寬度只是示例性的而并不意味著是限制性的。
串行I/F電路30、31、32設(shè)計成實現(xiàn)輸出或輸入。在這兩種情況中,伴隨數(shù)據(jù)傳送的位時鐘可從協(xié)處理器19中對應(yīng)的一個流向串行I/F電路30、31、32中對應(yīng)的一個,或者反過來。同樣,字選通也能雙向流動。能夠適當(dāng)?shù)厥箷r鐘與選通方向可編程,從而一個串行I/F電路通常有可能用于與一批協(xié)處理器接口。圖2中的串行I/F電路30示出為一個串行輸出端,I/F電路為時鐘與選通的源。這意味著DMA控制器6控制接口去判定何時協(xié)處理19中相關(guān)的一個應(yīng)接收及接受一個串行字的傳輸。另一方面,串行I/F電路31示出為一個輸入端。然而,時鐘是由本創(chuàng)造性芯片提供給協(xié)處理器19中的對應(yīng)的一個的,但現(xiàn)在該協(xié)處理器為選通源。例如,為了表示該協(xié)處理器正在請求一次傳送,選通線從低觸發(fā)到高。如果對應(yīng)的DMA通道控制器27能接受該傳送(即FIFO不滿),它便允許串行接口發(fā)送一個時鐘信號到該協(xié)處理器,然后后者計時輸出16位數(shù)據(jù),然后將選通信號拉低。在這一情況中協(xié)處理器確定何時它結(jié)束了計算并希望要將其傳送給存儲器,但是但果存在著到數(shù)據(jù)存儲器6的瓶頸,DMA控制器6不一定非立即接受它不可。但是,本創(chuàng)造性配置的總意圖是盡可能保證不出現(xiàn)這種瓶頸,以及即使出現(xiàn)數(shù)據(jù)存儲器瓶頸,只要FIFO緩沖不滿,便沒有必要延遲處理器的活動。
串行I/F電路32示出第三種接口。這是一個輸出端,但選通方向是從協(xié)處理器到本創(chuàng)造性芯片的,而時鐘則在反方向上流動。這允許協(xié)處理器請求一次輸出,但是在不能立即利用時,允許DMA通道控制器6通過延遲將時鐘信號發(fā)送到協(xié)處理器而延遲輸出。
如果單片上包含諸如內(nèi)部協(xié)處理器34等協(xié)處理器,它可以是諸如編碼/解碼邏輯,便不需要串行接口。單片上也可設(shè)置一個并行接口,它也能允許來/去往數(shù)據(jù)存儲器8的讀與寫。
下面參照圖3與4提出適當(dāng)?shù)腄MA通道控制器的更詳細(xì)的描述與有關(guān)特征。如上所述,控制處理器5通過設(shè)定它們將從中取出供處理的數(shù)據(jù)及向之發(fā)送處理結(jié)果的數(shù)據(jù)存儲器地址,而互相協(xié)調(diào)協(xié)處理器的數(shù)據(jù)傳送。數(shù)據(jù)存儲器起始地址(即使只有15位傳遞有意義的信息,但通常作為一個16位的量對待)是由控制微處理器的兩字節(jié)I/O操作寫入一個16位計數(shù)器的。如圖4中所示,可將用于若干DMA通道控制器26、27、29的這些計數(shù)器有利地集中在一個小的單片RAM40上,由于這是一種硅面積高效解決方案。RAM40可有利地實現(xiàn)為多路轉(zhuǎn)換器28的一部分,從而使多路轉(zhuǎn)換器28與各DMA通道控制器26、27、29之間的接口可從圖2中所示的25線降低到僅僅傳遞數(shù)據(jù)的8線。最終放置在RAM總線36上的其余地址信息來自RAM40。
RAM40的計數(shù)器操作(增加或減少)可由使用修改邏輯41及用于生成適當(dāng)控制信號的定序器44的一個RAM讀/修改與重寫周期來實現(xiàn)。修改邏輯41可包含下述三種類型之一的一個計數(shù)結(jié)束檢測器(1)可將它編程為從單片RAM40上檢測某一16位地址,(2)可在寬度上擴展單片RAM40以包含預(yù)置為要傳送的字節(jié)數(shù)并總是由修改邏輯41減少的一個計數(shù)器,或者(3)它可包含對從串行接口電路31傳輸?shù)谋硎緜鬏斀Y(jié)束的一個特定數(shù)據(jù)模式的檢測。在所有情況中,當(dāng)檢測到計數(shù)結(jié)束或傳輸結(jié)束對,便將其送至DMA調(diào)度器25,將DMA通道設(shè)定為不活躍直到重新激活,并且如果選擇了這一特征,還經(jīng)由中斷控制器35(見圖2)生成一個中斷到控制處理器5。
接收到從DMA調(diào)度器25至定序器44的表示已受權(quán)對數(shù)據(jù)存儲器8的DMA存取的任何讀信號,便觸發(fā)該讀/修改/重寫序列。對本技術(shù)領(lǐng)域的普通技術(shù)人員是顯而易見并眾所周知的,復(fù)雜與快速邏輯電路的實現(xiàn)得益于采用一個主時鐘來定序與同步電路各部分中的操作。描述具有接近100,000個邏輯門的一塊芯片的每一個邏輯細(xì)節(jié)是不現(xiàn)實的,但不妨假定定序器44包羅了所有這些從一個13MHz主時鐘導(dǎo)出的定序與定時要求。
受權(quán)存取的DMA通道還將讀信號接收到其FIFO42(圖3),后者順序地輸出下一字節(jié)并檢驗它當(dāng)時是否為空。一個EMPTY(空)信號將該通道從DMA調(diào)度器25試圖服務(wù)的表中去掉,并不再接收對FIFO42的讀取,直到由于通過串行輸入電路31的進一步串行輸入而使EMPTY(空)信號消失為止。EMPTY(空)信號的出現(xiàn)還復(fù)位DMA通道通過生成滿信號而在前面得到的任何優(yōu)先級。
另一方面,DMA調(diào)度器25可利用不確立空信號作為存在總線請求的指示。
上面已提到過若干種可想象的DMA優(yōu)先級,下面在一張表中重復(fù)它們,但該表并不一定是完整的。
1)HIGH PRIORITY DMA"QUEUE FULL"(高優(yōu)先級DMA“隊列滿”)優(yōu)先控制信號使DMA控制器6得到高于控制處理器數(shù)據(jù)存儲器存取與較低優(yōu)先級DMA的絕對優(yōu)先級直到該DMA通道控制器生成"QUEUE EMPTY"(“隊列空”)優(yōu)先控制信號。
2)MEDIUM PRUORITY DMA"QUEUE FULL"(中等優(yōu)先級DMA“隊列滿”)信號得出與控制處理器總線存取或不在“隊列滿”條件下的較高優(yōu)先級DMA的交替的優(yōu)先級直到生成與接收到隊列空信號為止。必要時,控制處理器總線存取只與DMA存取交錯;否則DMA以高于除類型(1)的較高優(yōu)先級DMA之外的所有DMA的優(yōu)先級進行連續(xù)的存取。
3)LOW PRUORILTY DMA QUEUE FULL(低優(yōu)先級DMA隊列滿)接受在輪轉(zhuǎn)基礎(chǔ)上的與控制處理器總線存取或隊列不滿的較高優(yōu)先級的DMA存取交替的RAM總線36的存取。
4)LOWEST PRUORITY DMA QUEUE FULL(最低優(yōu)先級DMA隊列滿)并不接受較高優(yōu)先權(quán),但代之以將一個WAIT(等待)信號送至相關(guān)的DMA控制器,如果必要,后者將其轉(zhuǎn)發(fā)到相關(guān)協(xié)處理器來禁止再度進入隊列FIFO。
下面參照圖5-9描述與按照本發(fā)明的DMA優(yōu)先級方案相關(guān)聯(lián)的定時。圖5示出DMA具有正常優(yōu)先級的情況中授權(quán)的DMA存取,即未曾確立FIFO FULL信號的情況。在點501上,F(xiàn)IFO中包含6個等待服務(wù)的存取的一個隊列。這六個存取以成群方式剛從一個或多個協(xié)處理器中到達,或者它們是在控制處理器5正在使用數(shù)據(jù)存儲器8期間累積在FIFO中的。然而,在點501上,授權(quán)第一個DMA存取。這可能是由于一次允許的處理器與DMA存取的多路轉(zhuǎn)換,或者它可以是由于一個新的處理器取指令周期的開始。圖5中的定時圖示出DMA存取緊接在取指令信號前面啟動,表示在點501上啟動的存取是來自控制處理器5多路轉(zhuǎn)換DMA存取與前面的數(shù)據(jù)存儲器8的存取序列的結(jié)果。然而在點503上,取指令信號的確立表示如果需要,DMA可繼續(xù)存取數(shù)據(jù)存儲器8,而不與控制處理器存取多路轉(zhuǎn)換。如果允許控制處理器5從數(shù)據(jù)存儲器8中取指令(取決于體系結(jié)構(gòu)及給予程序員的限制),"RAM address detected"(“檢測到RAM地址”)信號必須也是低的,并且取指令是高的(一個“與”函數(shù)),這是為了結(jié)束多路轉(zhuǎn)換。
在圖5中所示的實例中,在點503上同時將隊列長度增加到7,這是由于DMA存取堆積得比它們能受到的服務(wù)快。然而FIFO并不滿,如FIFO FULL信號的連續(xù)低狀態(tài)所指示的。在點503上,DMA接受連續(xù)的存取授權(quán)而FIFO的隊列長度迅速地從7減至6、5、4與3。然后在點505上,檢測到處理器在指令執(zhí)行期間生成一個數(shù)據(jù)存儲器地址(注未曾確立處理器取指令信號)。由于從生成上一個EMPTY信號以來FIFO未滿過,在點505上處理器接受高于DMA存取的優(yōu)先級,而生成一個READ或WRITE信號。然后,在點507上,DMA接受一個允許的多路轉(zhuǎn)換存取。緊接在點509前面恢復(fù)取指令,借此使隊列中剩下的DMA存取得到服務(wù)。這造成出現(xiàn)在509上的FIFO空信號。即使由于正在進行取指令而在這一點上DMA可得到對數(shù)據(jù)存儲器8的存取,但此時隊列中已沒有需要存取的DMA。
圖6示出FIFO成為滿時的事件中的時序,但由于控制處理器的指令執(zhí)行并不尋址數(shù)據(jù)存儲器8,可以清空FIFO而無須將處理器暫時置于WAIT(等待)狀態(tài)中。
在點601上,9個存取正在等待而DMA開始。由于在授權(quán)了一次存取后堆積了更多的DMA,現(xiàn)在在點603上有十個請求存取等待著,而生成FIFO FULL(滿)信號。但是,由于在點605與607之間的指令執(zhí)行周期或取指周期期間,控制處理器5完全不尋址數(shù)據(jù)存儲器8,DMA接受對數(shù)據(jù)存儲器8的連續(xù)存取,借此使隊列受到完全的服務(wù)直到在點607上出現(xiàn)EMPTY(空)信號為止。在點607上的EMPTY(空)信號的確立結(jié)束DMA存取??梢钥闯鲈诖似陂g由于不存在對數(shù)據(jù)存儲器8的存取沖突而控制處理器5完全不會減慢。
圖7示出當(dāng)FIFO FULL(滿)條件導(dǎo)致的一個高優(yōu)先級DMA請求與數(shù)據(jù)存儲器8的控制處理器存取沖突時出現(xiàn)的時序。在點701上,F(xiàn)IFO成為滿的,但緊接著在點703上,由于控制處理器5立即執(zhí)行一次取指令(由確立取指令信號指示)操作而DMA開始接受存取。如果控制處理器5實際上在點703上一直在尋址數(shù)據(jù)存儲器8,則將允許完成控制處理器的存取,但隨后的控制處理器5對數(shù)據(jù)存儲器8的存取將讓位給DMA,然后在任何情況下后者將在點703上接受優(yōu)先權(quán)。授權(quán)第一次存取(即當(dāng)在FIFO中有十個請求排隊時)之后,F(xiàn)IFO不再滿但仍然不空。因此,繼續(xù)進行DMA存取。當(dāng)處理器在點705上試圖存取數(shù)據(jù)存儲器8時,DMA仍保持優(yōu)先權(quán)并向控制處理器5生成WAIT(等待)信號,導(dǎo)致其地址與控制信號(即讀或?qū)?的延長或延遲直到服務(wù)完所有DMA為止。最終,F(xiàn)IFO成為空的,并在點709上生成EMPTY(空)信號。作為應(yīng)答,復(fù)位WAIT(等待)信號,借此允許進行控制處理器的被延遲了的數(shù)據(jù)存儲器存取。
在點711上,F(xiàn)IFO在上一次清空之后已接收到許多DMA請求,因此EMPTY(空)信號清失。然而由于已將DMA的優(yōu)先級復(fù)位到正常,因此對數(shù)據(jù)存儲器的存取DMA并不比控制處理器5優(yōu)越,在完成了一次控制處理器的數(shù)據(jù)存儲器存取之后直到點713上并不授權(quán)新的DMA存取。這是一種由于數(shù)據(jù)存儲器8快得足以交替進行DMA與控制處理器請求而允許的“多路轉(zhuǎn)換”存取。如果數(shù)據(jù)存儲器8并不快得足以允許這種多路轉(zhuǎn)換,新的DMA存取必須等待處理器取指令開始。然而很快便完成了新的DMA存取而在點715上再次出現(xiàn)EMPTY(空)信號,借此結(jié)束DMA。
從圖5與6的時序圖中可見本發(fā)明提供顯著的DMA容量面從不減慢處理器,圖7中所示的時序圖示出大群的準(zhǔn)同時DMA請求如何被本發(fā)明以只是最有節(jié)制的控制處理器5的減慢(諸如單一的WAIT(等待)狀態(tài))加以處理。然而一旦DMA獲得了優(yōu)先權(quán),便保持它直到FIFO清空為止就保證了不大可能再一次使處理器等待某一時間,即直到準(zhǔn)同時及快于自然產(chǎn)生的DMA存取授權(quán)機會而再次出現(xiàn)大量的DMA請求。本發(fā)明的一個目的便是降低這種事件的可能性,從而能同時服務(wù)于DMA與處理兩者的需求而不相互減慢。
進一步考慮全部利用了數(shù)據(jù)存儲器8的速度而使得多路轉(zhuǎn)換交替的控制處理器與DMA存取不可能沒有速度損失的情況,能起到更好地展示利用存取控制與優(yōu)先級信號的作用。在這一情況中,如果FIFO隊列不空,DMA通常在檢測到處理器取指令信號時開始接受存取,如圖8中點801上所示。在點803上在處理器尋址數(shù)據(jù)存儲器8之前執(zhí)行了三次DMA。接著,控制處理器5接受優(yōu)先權(quán)并保持優(yōu)先權(quán)進行兩次或者它所需要的次數(shù)的連續(xù)的數(shù)據(jù)存儲器存取,控制處理器優(yōu)先權(quán)只受下一個取指令信號的復(fù)位,或者控制處理器優(yōu)先權(quán)只被一個FIFO FULL信號的出現(xiàn)所搶占。如果發(fā)生后一情況,便授予交替型DMA優(yōu)先權(quán),如上面所公開的。最高的DMA優(yōu)先級為接受所有的數(shù)據(jù)存儲器存取直到其FIFO EMPTY信號出現(xiàn)為止。稍低的DMA優(yōu)先級通道能夠與控制處理器5交替地接受交替的存取直到FIFOEMPTY信號出現(xiàn)為止。這一情況示出在圖9中。
在點901上,授權(quán)DMA存取服務(wù)于其九個等待中的存取請求的隊列。但是接收到了更多的DMA請求,因此在點903上生成FIFO FULL信號。盡管這樣,控制處理器5仍在點905上接受對數(shù)據(jù)存儲器8的存取,因為DMA剛輪到過一次。然面,在包含在執(zhí)行指令中的一對控制處理器存取之后,在點907上DMA接受另一次存取并生成一個WAIT(等待)信號到該處理器。即使尚未出現(xiàn)FIFOEMPTY信號而將DMA優(yōu)先級復(fù)位到正常,由于DMA剛輪到過一次而在點909上控制處理器5接受下一次對數(shù)據(jù)存儲器8的存取。這種交替的處理器/DMA行為標(biāo)志了這種DMA優(yōu)先級的特征。在點911上,DMA因另一原因而接受存取,即控制處理器5正在執(zhí)行從ROM7中取指令,因此RAM總線36是空閑的。如果在控制處理器5下一次請求存取數(shù)據(jù)存儲器8之前,這未能使DMA隊列清空,控制處理器5將再度接受與DMA存取交替的數(shù)據(jù)存儲器存取,直到FIFO EMPTY信號將DMA優(yōu)先級復(fù)位到正常為止。
已參照一個特定的實施例說明了本發(fā)明。然而對于熟悉本技術(shù)的人員而言顯然有可能在上述較佳實施例以外的特定形式中實現(xiàn)本發(fā)明。這一點可以在不脫離本發(fā)明的精神下做到。較佳實施例只是示例性的,在任何情況下都不應(yīng)視為是限制性的。本發(fā)明的范圍是由所附的權(quán)利要求書而不是由前面的說明給定的,而一切落入權(quán)利要求書的范圍內(nèi)的變化與等效物都應(yīng)視為包含在本發(fā)明中。
權(quán)利要求
1.在一個包括一個控制處理器、一個協(xié)處理器、一個程序存儲器及一個數(shù)據(jù)存儲器的系統(tǒng)中,所述控制處理器在一個取指令周期中存取所述程序存儲器而在指令執(zhí)行周期中則存取所述數(shù)據(jù)存儲器,用于控制存取所述數(shù)據(jù)存儲器的一種裝置,包括用于耦合到所述控制處理器的控制處理器接口裝置;用于耦合到所述協(xié)處理器的協(xié)處理器接口裝置;耦合到所述控制處理器接口裝置上的檢測裝置,用于檢測何時所述控制處理器請求存取所述程序存儲器并對此作出響應(yīng)生成一個第一存取控制信號;耦合到所述協(xié)處理器接口裝置上的調(diào)度裝置,用于檢測何時所述協(xié)處理器請求存取所述數(shù)據(jù)存儲器并對此作出響應(yīng)生成一個第二存取控制信號;一個開關(guān),具有一個開關(guān)控制輸入裝置、用于耦合到與所述控制處理器相關(guān)聯(lián)的存儲器地址、存儲器數(shù)據(jù)與存儲器控制信號上的一個第一接口裝置、用于耦合到與所述協(xié)處理器相關(guān)聯(lián)的存儲器地址、存儲器數(shù)據(jù)與存儲器控制信號上的一個第二接口裝置、以及用于耦合到所述數(shù)據(jù)存儲器的一個數(shù)據(jù)存儲器接口裝置,其中所述開關(guān)響應(yīng)從所述控制輸入端接收的一個開關(guān)控制信號交替地將所述第一接口裝置與所述第二接口裝置耦合到所述數(shù)據(jù)存儲器接口裝置上;以及仲裁裝置,耦合在所述檢測裝置、所述調(diào)度裝置及所述開關(guān)上,用于響應(yīng)所述第一與第二存取控制信號,生成一個開關(guān)控制信號。
2.權(quán)利要求1的裝置,其中所述控制處理器接口裝置包括一個用于由所述控制處理器生成的存儲器地址信號的接口,以及其中所述檢測裝置響應(yīng)指定不在與所述數(shù)據(jù)存儲器相關(guān)聯(lián)的存儲器地址范圍內(nèi)的一個存儲器地址的所述存儲器地址信號,生成所述第一存取信號。
3.權(quán)利要求1的裝置,其中所述控制處理器接口裝置包括一個用于由所述控制處理器生成的控制處理器狀態(tài)信號的接口,以及其中所述檢測裝置響應(yīng)指示所述控制處理器的一個取指令操作的所述控制處理器狀態(tài)信號,生成所述第一存取信號。
4.在一個包括一個控制處理器、一個協(xié)處理器、一個程序存儲器及一個數(shù)據(jù)存儲器的系統(tǒng)中,所述控制處理器在一個取指令周期中存取所述程序存儲器而在指令執(zhí)行周期中存取所述數(shù)據(jù)存儲器,用于控制存取所述數(shù)據(jù)存儲器的一種裝置包括用于耦合到所述控制處理器上的控制處理器接口裝置;用于耦合到所述協(xié)處理器上的協(xié)處理器接口裝置;耦合到所述協(xié)處理器接口裝置并包含先進先出(FIFO)存儲器裝置的通道控制裝置,所述通道控制裝置將與請求存取所述數(shù)據(jù)存儲器的一個協(xié)處理器請求相關(guān)聯(lián)的數(shù)據(jù)存儲在所述FIFO存儲器裝置中,并且響應(yīng)所述FIFO存儲器裝置是滿的,確立一個FIFO滿信號;檢測裝置,耦合在所述控制處理器接口裝置上,用于檢測何時所述控制處理器請求存取所述程序存儲器,并對此作出響應(yīng)生成一個第一存取控制信號;調(diào)度裝置,耦合在所述通道控制裝置上,用于響應(yīng)存取所述數(shù)據(jù)存儲器的一個協(xié)處理器請求,生成一個第二存取控制信號,及用于響應(yīng)確立了所述FIFO滿信號,生成一個優(yōu)先權(quán)信號;一個開關(guān),具有一個開關(guān)控制輸入裝置、用于耦合到與所述控制處理器相關(guān)聯(lián)的存儲器地址、存儲器數(shù)據(jù)與存儲器控制信號的一個第一接口裝置、用于耦合到與所述協(xié)處理器相關(guān)聯(lián)的存儲器地址、存儲器數(shù)據(jù)與存儲器控制信號的一個第二接口裝置、以及用于耦合到所述數(shù)據(jù)存儲器上的一個數(shù)據(jù)存儲器接口裝置,其中所述開關(guān)響應(yīng)從所述控制輸入端接收的一個開關(guān)控制信號,交替地將所述第一接口裝置與所述第二接口裝置耦合到所述數(shù)據(jù)存儲器接口裝置上;以及耦合在所述檢測裝置、所述調(diào)度裝置與所述開關(guān)上的仲裁裝置,用于響應(yīng)所述第一與第二存取控制信號與所述優(yōu)先權(quán)信號,生成一個開關(guān)控制信號。
5.權(quán)利要求4的裝置,其中所述控制處理器接口裝置包括一個用于由所述控制處理器所生成的存儲器地址信號的接口,以及其中所述檢測裝置響應(yīng)指定一個不在與所述數(shù)據(jù)存儲器相關(guān)聯(lián)的存儲器地址范圍內(nèi)的存儲器地址的所述存儲器地址信號,生成所述第一存取信號。
6.權(quán)利要求4的裝置,其中所述控制處理器接口裝置包括一個用于由所述控制處理器所生成的控制處理器狀態(tài)信號的接口,以及其中所述檢測裝置響應(yīng)指示所述控制處理器的一個取指令操作的所述控制處理器狀態(tài)信號,生成所述第一存取信號。
7.權(quán)利要求4的裝置,其中所述調(diào)度裝置響應(yīng)表示所述FIFO存儲器裝置不空的一個信號,生成所述第二存取控制信號。
8.權(quán)利要求4的裝置,其中所述優(yōu)先權(quán)信號指定多個優(yōu)先級之一,所述優(yōu)先級中包含一個高優(yōu)先級,以及其中所述調(diào)度裝置響應(yīng)所述FIFO滿信號的確立,生成一個指定所述高優(yōu)先級的一個優(yōu)先權(quán)信號。
9.權(quán)利要求8的裝置,其中,響應(yīng)所述優(yōu)先權(quán)信號為一個高優(yōu)先級信號,無論是否確立了所述第一存取控制信號,所述生成的開關(guān)控制信號都使所述開關(guān)將所述第二接口裝置耦合到所述數(shù)據(jù)存儲器接口裝置上。
10.權(quán)利要求8的裝置,其中所述仲裁裝置響應(yīng)所述優(yōu)先權(quán)信號為一個高優(yōu)先級信號,生成一個協(xié)處理器選擇開關(guān)控制信號,無論是否確立了所述第一存取控制信號,都使所述開關(guān)將所述第二接口裝置耦合到所述數(shù)據(jù)存儲器接口裝置上,然后繼續(xù)生成所述協(xié)處理器選擇開關(guān)控制信號直到檢測到一個表示所述FIFO存儲器裝置為空的一個信號為止。
11.在一個包括一個控制處理器、一個協(xié)處理器、一個程序存儲器及一個數(shù)據(jù)存儲器的系統(tǒng)中,所述控制處理器在一個取指令周期中存取所述程序存儲器并在一個指令執(zhí)行周期中存取所述數(shù)據(jù)存儲器,用于控制存取所述數(shù)據(jù)存儲器的一種裝置包括用于耦合到所述控制處理器的控制處理器接口裝置;用于耦合到所述協(xié)處理器的協(xié)處理器接口裝置;通道控制裝置,耦合在所述協(xié)處理器接口裝置上,并包括先進先出(FIFO)存儲器裝置,所述通道控制裝置將與請求存取所述數(shù)據(jù)存儲器的一個協(xié)處理器請求相關(guān)聯(lián)的數(shù)據(jù)存儲在所述FIFO存儲器裝置中,并響應(yīng)所述FIFO存儲器裝置是滿的,確立一個FIFO滿信號;檢測裝置,耦合在所述控制處理器接口裝置上,用于檢測所述控制處理器何時請求存取所述程序存儲器,并對此作出響應(yīng),生成一個第一存取控制信號;調(diào)度裝置,耦合在所述通道控制裝置上,用于響應(yīng)所述FIFO滿信號的確立,生成一個優(yōu)先權(quán)信號;一個開關(guān),具有一個開關(guān)控制輸入裝置、用于耦合到與所述控制處理器相關(guān)聯(lián)的存儲器地址、存儲器數(shù)據(jù)及存儲器控制信號的一個第一接口裝置、用于耦合到與所述協(xié)處理器相關(guān)聯(lián)的存儲器地址、存儲器數(shù)據(jù)與存儲器控制信號的一個第二接口裝置、以及用于耦合到所述數(shù)據(jù)存儲器的一個數(shù)據(jù)存儲器接口裝置,其中所述開關(guān)響應(yīng)從所述控制輸入端接收的一個開關(guān)控制信號,交替地將所述第一接口裝置與所述第二接口裝置耦合到所述數(shù)據(jù)存儲器接口裝置上;以及耦合在所述檢測裝置、所述調(diào)度裝置及所述開關(guān)上的仲裁裝置,用于響應(yīng)所述第一存取控制信號與所述優(yōu)先權(quán)信號生成一個開關(guān)控制信號。
12.權(quán)利要求11的裝置,其中所述控制處理器接口裝置包括一個用于由所述控制處理器所生成的存儲器地址信號的接口,以及其中所述檢測裝置響應(yīng)指示在與所述數(shù)據(jù)存儲器相關(guān)聯(lián)的存儲器地址范圍內(nèi)的一個存儲器地址的所述存儲器地址信號,生成所述第一存取信號。
13.權(quán)利要求11的裝置,其中所述控制處理器接口裝置包括一個用于由所述控制處理器所生成的控制處理器狀態(tài)信號的接口,以及其中所述檢測裝置響應(yīng)指示所述控制處理器的一個取指令操作的所述控制處理器狀態(tài)信號,生成所述第一存取信號。
14.權(quán)利要求11的裝置,其中所述調(diào)度裝置響應(yīng)表示所述FIFO存儲器裝置不空的一個信號,生成所述優(yōu)先權(quán)信號。
15.權(quán)利要求11的裝置,其中所述優(yōu)先權(quán)信號指定多個優(yōu)先級之一,所述優(yōu)先級中包括一個高優(yōu)先級,以及其中所述調(diào)度裝置響應(yīng)所述FIFO滿信號的確立,生成一個指示所述高優(yōu)先級的優(yōu)先權(quán)信號。
16.權(quán)利要求15的裝置,其中,響應(yīng)所述優(yōu)先權(quán)信號為一個高優(yōu)先級信號,無論是否確立了所述第一存取控制信號,所述生成的開關(guān)控制信號都使所述開關(guān)將所述第二接口裝置耦合到所述數(shù)據(jù)存儲器接口裝置上。
17.權(quán)利要求15的裝置,其中所述仲裁裝置響應(yīng)所述優(yōu)先權(quán)信號為一個高優(yōu)先級信號,無論是否確立了所述第一存取控制信號,都生成一個協(xié)處理器選擇開關(guān)控制信號,使所述開關(guān)將所述第二接口裝置耦合到所述數(shù)據(jù)存儲器接口裝置上,然后繼續(xù)生成所述協(xié)處理器選擇開關(guān)控制信號直到檢測到表示所述FIFO存儲器裝置為空的一個信號為止。
18.在一個包括一個控制處理器、一個第一協(xié)處理器、一個第二協(xié)處理器、一個程序存儲器及一個數(shù)據(jù)存儲器的系統(tǒng)中,所述控制處理器在一個取指令周期中存取所述程序存儲器,并在一個指令執(zhí)行周期中存取所述數(shù)據(jù)存儲器,用于控制存取所述數(shù)據(jù)存儲器的一種裝置包括用于耦合到所述控制處理器的控制處理器接口裝置;用于耦合到所述第一協(xié)處理器的第一協(xié)處理器接口裝置;用于耦合到所述第二協(xié)處理器的第二協(xié)處理器接口裝置;第一與第二通道控制裝置,分別耦合到所述第一與第二協(xié)處理器接口裝置上,并且各包括先進先出(FIFO)存儲器裝置,各所述第一與第二通道控制裝置將與來自一個對應(yīng)的協(xié)處理器的存取所述數(shù)據(jù)存儲器的一個請求相關(guān)聯(lián)的數(shù)據(jù)存儲在所述FIFO存儲器裝置中,并響應(yīng)所述FIFO存儲器裝置是滿的,確立一個FIFO滿信號;檢測裝置,耦合在所述控制處理器接口裝置上,用于檢測所述控制處理器何時請求存取所述程序存儲器,并對此作出響應(yīng),生成一個第一存取控制信號;多路轉(zhuǎn)換器裝置,具有耦合在與所述對應(yīng)的第一與第二協(xié)處理器相關(guān)聯(lián)的存儲器地址、存儲器數(shù)據(jù)及存儲器控制信號上的第一與第二輸入端;調(diào)度裝置,耦合在所述第一與第二通道控制裝置及所述多路轉(zhuǎn)換器上,用于響應(yīng)所述第一與第二通道控制裝置中至少一個所確立的所述FIFO滿信號,生成一個優(yōu)先權(quán)信號,及用于生成一個多路轉(zhuǎn)換器控制信號;一個開關(guān),具有一個開關(guān)控制輸入裝置、用于耦合到與所述控制處理器相關(guān)聯(lián)的存儲器地址、存儲器數(shù)據(jù)與存儲器控制信號的一個第一接口裝置、用于耦合到與所述多路轉(zhuǎn)換器的一個輸出相關(guān)聯(lián)的存儲器地址、存儲器數(shù)據(jù)與存儲器控制信號的一個第二接口裝置、以及用于耦合到所述數(shù)據(jù)存儲器的一個數(shù)據(jù)存儲器接口裝置,其中所述開關(guān)響應(yīng)從所述控制輸入端接收的一個開關(guān)控制信號,交替地將所述第一接口裝置與所述第二接口裝置耦合到所述數(shù)據(jù)存儲器接口裝置上;以及耦合在所述檢測裝置、所述調(diào)度裝置及所述開關(guān)上的仲裁裝置,用于響應(yīng)所述第一存取控制信號與所述優(yōu)先權(quán)信號,生成一個開關(guān)控制信號。
19.權(quán)利要求18的裝置,其中所述調(diào)度裝置響應(yīng)所述第一通道控制裝置所確立的所述FIFO滿信號,生成具有一個第一值的優(yōu)先權(quán)信號,響應(yīng)所述第二通道控制裝置所確立的所述FIFO滿信號,生成具有一個第二值的優(yōu)先權(quán)信號,以及響應(yīng)所述第一與第二通道控制裝置兩者所確立的所述FIFO滿信號,生成具有所述第一值的所述優(yōu)先權(quán)信號。
20.權(quán)利要求19的裝置,其中所述調(diào)度裝置響應(yīng)所述第一與第二通道控制裝置兩者所確立的所述FIFO滿信號,生成一個選擇所述第一多路轉(zhuǎn)換器輸入的多路轉(zhuǎn)換器控制信號。
21.權(quán)利要求20的裝置,其中所述優(yōu)先權(quán)信號指定多個優(yōu)先級之一,所述優(yōu)先級中包含一個高優(yōu)先級,以及其中所述調(diào)度裝置響應(yīng)任何一個確立的所述FIFO滿信號,生成一個指定所述高優(yōu)先級的優(yōu)先權(quán)信號。
22.權(quán)利要求21的裝置,其中,響應(yīng)所述優(yōu)先權(quán)信號為一個高優(yōu)先級信號,無論是否確立了所述第一存取控制信號,所述生成的開關(guān)控制信號都使所述開關(guān)將所述第二接口裝置耦合到所述數(shù)據(jù)存儲器接口裝置上。
23.權(quán)利要求19的裝置,其中,響應(yīng)為所述第二值的所述優(yōu)先權(quán)信號,所述生成的開關(guān)控制信號使所述開關(guān)在所述控制處理器與所述多路轉(zhuǎn)換器之間交錯數(shù)據(jù)存儲器存取。
24.權(quán)利要求18的裝置,還包括直接存儲器存取(DMA)計數(shù)器裝置,包含具有與所述第一與第二協(xié)處理器對應(yīng)的存儲單元的一個隨機存取存儲器;第一裝置,耦合在所述第一與第二通道控制裝置上,用于判定所述第一與第二協(xié)處理器中哪一個具有數(shù)據(jù)存儲器存取的最高優(yōu)先級請求,及用于生成一個總線請求信號;第二裝置,耦合在所述第一裝置與所述控制處理器接口裝置上,用于響應(yīng)依賴于來自所述控制處理器的取指令與地址信號的所述總線請求信號,生成一個總線授權(quán)信號;第三裝置,耦合在所述第一裝置、所述第二裝置及所述隨機存取存儲器上,用于響應(yīng)所述總線授權(quán)信號,從所述隨機存取存儲器中讀取一個值,所述值是從對應(yīng)于確定為具有所述最高優(yōu)先級請求的所述協(xié)處理器的一個存儲單元中讀取的;以及第四裝置,用于作為用來尋址所述數(shù)據(jù)存儲器的所述存儲器地址信號的至少一部分提供所述值,及用于在此后修改所述值并將所述修改后的值存儲在所述隨機存取存儲器中的所述存儲單元中,該單元對應(yīng)于確定為具有所述最高優(yōu)先級請求的所述協(xié)處理器。
25.在一個包括一個控制處理器、多個協(xié)處理器及一個數(shù)據(jù)存儲器的系統(tǒng)中,一個直接存儲器存取(DMA)計數(shù)器裝置包括用于耦合到所述控制處理器的控制處理器接口裝置;用于耦合到所述多個協(xié)處理中對應(yīng)的一個上的多個協(xié)處理器輸入裝置;具有與所述多個協(xié)處理器相對應(yīng)的存儲單元的一個隨機存取存儲器;第一裝置,耦合在所述多個輸入裝置上,用于判定所述多個協(xié)處理器中哪一個具有用于數(shù)據(jù)存儲器存取的最高優(yōu)先級請求,及用于生成一個總線請求信號;第二裝置,耦合在所述第一裝置與所述控制處理器接口裝置上,用于響應(yīng)依賴于來自所述控制處理器的取指令與地址信號的所述總線請求信號,生成一個總線授權(quán)信號;第三裝置,耦合在所述第一裝置、所述第二裝置及所述隨機存取存儲器上,用于響應(yīng)所述總線授權(quán)信號,從所述隨機存取存儲器中讀取一個值,所述值是從對應(yīng)于確定為具有所述最高優(yōu)先級請求的所述協(xié)處理器的一個存儲單元中讀取的;以及第四裝置,用于作為在存儲器存取期間提供給所述數(shù)據(jù)存儲器的所述存儲器地址信號的至少一部分提供所述值,及用于在此后修改所述值并將所述修改后的值存儲在所述隨機存取存儲器中的所述存儲單元中,該單元與確定為具有所述最高優(yōu)先級請求的所述協(xié)處理器相對應(yīng)。
全文摘要
在一個包含一個控制處理器(5)、一個協(xié)處理器(19)、一個程序存儲器(7)及一個數(shù)據(jù)存儲器(8)的系統(tǒng)中,控制處理器在取指令周期中存取程序存儲器,在指令執(zhí)行周期中存取數(shù)據(jù)存儲器,用于控制存取所述數(shù)據(jù)存儲器的一個裝置耦合在控制處理器接口裝置上,用于檢測控制處理器何時請求存取程序存儲器并作為響應(yīng)生成一個第一存取信號。該裝置還具有調(diào)度邏輯(25),耦合在協(xié)處理器接口上。
文檔編號G06F13/30GK1117318SQ94191073
公開日1996年2月21日 申請日期1994年11月1日 優(yōu)先權(quán)日1993年11月1日
發(fā)明者P·W·鄧特 申請人:艾利森.Ge.流動通訊有限公司