專利名稱:調(diào)節(jié)優(yōu)先級(jí)仲裁的裝置的制作方法
本專利申請(qǐng)與1989年1月25日提出的題為“多總線DMA控制器”的專利申請(qǐng)有關(guān),其序號(hào)為No.303,024。
本發(fā)明總的說來與數(shù)據(jù)處理系統(tǒng)有關(guān)。更具體地,它與連接多外設(shè)的數(shù)據(jù)處理系統(tǒng)有關(guān)。
數(shù)據(jù)處理系統(tǒng)一般通過通常稱為總線的標(biāo)準(zhǔn)化I/O電氣通道實(shí)現(xiàn)對(duì)不同數(shù)量的人或處理外設(shè)的支撐。它們包括顯示器,鍵盤,硬盤驅(qū)動(dòng)器或其它磁盤設(shè)備形式的外部數(shù)據(jù)存貯器。應(yīng)用外圍總線作為把外部設(shè)備或計(jì)算機(jī)外圍部件與處理器相連的一種公用裝置,提供了系統(tǒng)的機(jī)動(dòng)性,促進(jìn)了現(xiàn)有計(jì)算機(jī)對(duì)新外設(shè)和其它系統(tǒng)增強(qiáng)的適應(yīng)性。但是,當(dāng)獨(dú)立的外設(shè)數(shù)目增加和功能增強(qiáng)時(shí),這種相對(duì)簡(jiǎn)單,低成本的外圍總線沒有能力處理并行操作。從這點(diǎn)來看,集成化計(jì)算機(jī)系統(tǒng)的性能受到了限制。外圍總線過于繁忙會(huì)導(dǎo)致操作請(qǐng)求排斥,超載和系統(tǒng)故障。多個(gè)設(shè)備共享公用總線的系統(tǒng)在有多個(gè)相關(guān)外設(shè)同時(shí)請(qǐng)求存取的情況中,一般采用分配存取總線的方案。例如,在題為“具有重迭總線周期操作的數(shù)據(jù)處理系統(tǒng)”的美國(guó)專利No.4,817,037中。在現(xiàn)有技術(shù)中有許多這種優(yōu)先級(jí)仲裁方案。見1974年9月版《IBM Technical Disclosure Bulletin》卷17,第4號(hào)中的“容許提交的與/或未提交的設(shè)備分配請(qǐng)求輸入/輸出通道調(diào)度”和1983年7月版《IBM Technical Disclosure Bulletin》卷26,第2號(hào)中的“I/O中斷的選擇處理實(shí)現(xiàn)。
控制外設(shè)和分配通道優(yōu)先級(jí)的功能給系統(tǒng)提出了很高的操作要求。特別是在處理器相對(duì)外設(shè)的運(yùn)行速度大大提高的情況下,數(shù)據(jù)處理系統(tǒng)的總效率就面臨這一難題。因此,最好是把這種控制功能從主處理器分離出來,由輸入/輸出通道控制器(IOCC)控制。這種控制器為主控制接口提供了可以連接任意個(gè)不同外設(shè)的外圍總線。根據(jù)所期望的優(yōu)先級(jí)標(biāo)準(zhǔn),可按適當(dāng)?shù)膬?yōu)先級(jí)仲裁方案為IOCC編程以分配總線存取。
如果IOCC不用處理器指令就可自動(dòng)地存取存貯器,也可以大大地改進(jìn)系統(tǒng)的效率。直接存貯器存取(DMA)在外設(shè)與系統(tǒng)存貯器之間建立了一條輸入/輸出數(shù)據(jù)路徑或通道,從而使處理器能獨(dú)立地執(zhí)行指令或應(yīng)用系統(tǒng)存貯器的其它空間來進(jìn)行操作。
在一個(gè)周期內(nèi)系統(tǒng)存貯器和IOCC之間經(jīng)內(nèi)部總線可傳輸?shù)男畔⒘颗cIOCC和外設(shè)之間經(jīng)外圍總線可傳輸?shù)男畔⒘坎灰欢ㄆヅ?,因此需在IOCC中加通道即數(shù)據(jù)緩沖區(qū)以增強(qiáng)DMA的性能。例如,具有四個(gè)1字節(jié)存貯單元的IOCC數(shù)據(jù)緩沖區(qū)可一次積累1個(gè)或2個(gè)字節(jié)的經(jīng)8/16位外圍總線傳來的數(shù)據(jù)使之變成32位的數(shù)據(jù),然后通過一次DMA寫(即存貯)操作,把數(shù)據(jù)緩沖區(qū)的內(nèi)容經(jīng)較大的32位內(nèi)部總線傳送到系統(tǒng)存貯器中。在執(zhí)行從系統(tǒng)存貯器到外設(shè)的讀(即裝載)操作時(shí),一次把32位的系統(tǒng)存貯器信息經(jīng)內(nèi)部總線取到數(shù)據(jù)緩沖區(qū),然后每次只向外設(shè)傳送1或2字節(jié)的緩沖區(qū)數(shù)據(jù)。通過減少系統(tǒng)存貯器和IOCC之間在讀和寫方式下完成數(shù)據(jù)傳輸所必需的周期數(shù)或事務(wù)處理次數(shù),數(shù)據(jù)緩沖區(qū)最大限度地減少了處理器在完成事務(wù)處理時(shí)發(fā)生的封鎖,從而提高了數(shù)據(jù)處理系統(tǒng)的總效率。IOCC可以擁有多個(gè)數(shù)據(jù)緩沖區(qū),每個(gè)緩沖區(qū)都是一個(gè)獨(dú)立外設(shè)的暫存數(shù)據(jù)空間。從美國(guó)專利No.3,699,530中可大體了解多數(shù)據(jù)緩沖區(qū)的使用。
在緩沖的DMA環(huán)境下進(jìn)行多外設(shè)和系統(tǒng)存貯器間的數(shù)據(jù)傳輸存在一個(gè)問題在IOCC進(jìn)行一次事務(wù)處理時(shí),數(shù)據(jù)既要流經(jīng)外圍總線又要流經(jīng)數(shù)據(jù)據(jù)緩沖區(qū)與系統(tǒng)存貯器間的內(nèi)部總線,這個(gè)操作比只經(jīng)過外圍總線的一般外圍通道數(shù)據(jù)操作要慢。因此,任何請(qǐng)求系統(tǒng)存貯器存取的DMA事務(wù)處理將比完全不經(jīng)過數(shù)據(jù)緩沖區(qū)的處理慢。這是因?yàn)樾枰獌纱瓮ǖ乐俨醚娱L(zhǎng)了事務(wù)處理的時(shí)間第一次是獲取外圍總線控制;第二次是獲取內(nèi)部總線控制。當(dāng)DMA事務(wù)處理在數(shù)據(jù)緩沖區(qū)上進(jìn)行長(zhǎng)的系統(tǒng)存貯器操作時(shí),低優(yōu)先級(jí)外設(shè)的快速事務(wù)處理必須等待存取外圍總線,因而浪費(fèi)了寶貴的外圍總線帶寬。
本發(fā)明的一個(gè)目的是提供一種改進(jìn)的數(shù)據(jù)處理系統(tǒng)。在此系統(tǒng)中,在許多共享一條公用外圍總線的外設(shè)和一個(gè)系統(tǒng)存貯器設(shè)備之間的直接存貯器存取由一個(gè)具有數(shù)據(jù)緩沖區(qū)的輸入/輸出通道控制器(IOCC)完成。
本發(fā)明的進(jìn)一步目的是提供一種上述類型的數(shù)據(jù)處理系統(tǒng)。在此系統(tǒng)中,提供了一種方法和裝置,通過優(yōu)化外圍總線的事務(wù)處理可利用性增強(qiáng)了DMA的性能。
本發(fā)明的進(jìn)一步目的是提供一種上述類型的數(shù)據(jù)處理系統(tǒng)。在此系統(tǒng)中,將根據(jù)要存取的數(shù)據(jù)緩沖區(qū)的數(shù)據(jù)狀態(tài)調(diào)節(jié)批準(zhǔn)存取外圍總線的爭(zhēng)用中的外設(shè)的現(xiàn)有優(yōu)先級(jí)仲裁方案。
為了達(dá)到這些目的和其它目的,本發(fā)明的數(shù)據(jù)處理系統(tǒng)包括一種方法,用于修改用來批準(zhǔn)共享外圍總線的爭(zhēng)用中的外設(shè)數(shù)據(jù)傳輸請(qǐng)求的慣常IOCC優(yōu)先級(jí)仲裁。通過根據(jù)數(shù)據(jù)緩沖區(qū)的數(shù)據(jù)狀態(tài)對(duì)已建立仲裁優(yōu)先級(jí)方案進(jìn)行調(diào)節(jié),改進(jìn)了外圍總線的應(yīng)用。如果一般具有較高請(qǐng)求優(yōu)先級(jí)的外設(shè)請(qǐng)求緩沖區(qū)與系統(tǒng)存貯器間的數(shù)據(jù)傳輸,優(yōu)先權(quán)將轉(zhuǎn)給不需要相對(duì)耗時(shí)的系統(tǒng)存貯器存取操作的低優(yōu)先級(jí)設(shè)備。以這種方式,在DMA讀事務(wù)處理期間,其緩沖區(qū)內(nèi)具有有效數(shù)據(jù)的低優(yōu)先級(jí)外設(shè)或在DMA寫事務(wù)處理期間具有空緩沖區(qū)的低優(yōu)先級(jí)外設(shè)將暫時(shí)地給予優(yōu)先權(quán),先于其它沒有數(shù)據(jù)或可用緩沖空間的較高優(yōu)先級(jí)外設(shè)使用外圍總線。與經(jīng)外圍總線進(jìn)行低優(yōu)先級(jí)事務(wù)處理的同時(shí),高優(yōu)先權(quán)外設(shè)所需的系統(tǒng)存貯器存取操作也完成了。這種在完成從緩沖區(qū)到主存貯器較慢操作的同時(shí),允許較快的事務(wù)處理使用外圍總線的并行性使得系統(tǒng)好象總是不用數(shù)據(jù)緩沖區(qū)似的。
在本發(fā)明的優(yōu)選實(shí)施例中,IOCC具有一個(gè)確定將被存取的數(shù)據(jù)緩沖區(qū)是滿還是空的數(shù)字邏輯電路,用以調(diào)節(jié)在DMA寫和DMA讀事務(wù)處理期間的已建立的優(yōu)先級(jí)。
本發(fā)明的這些目的和其它目的,特性和優(yōu)點(diǎn)將會(huì)在下面如附圖所示的本發(fā)明優(yōu)選實(shí)施例的更詳細(xì)的描述中清楚明了。
本發(fā)明的認(rèn)為新穎特性的特征在所附權(quán)利要求書中給出。但是,結(jié)合附圖參照下面優(yōu)選實(shí)施例的描述將更好地理解本發(fā)明及其其它特性和優(yōu)點(diǎn)。
其中
圖1是涉及本發(fā)明數(shù)據(jù)處理系統(tǒng)的方框圖;
圖2是描繪圖1中輸入/輸出通道控制器(IOCC)的數(shù)據(jù)緩沖區(qū)和控制邏輯電路的方框圖;
圖3是圖2中控制邏輯電路的示意圖,此邏輯電路被用來修改IOCC的慣常優(yōu)先級(jí)仲裁;
圖4是描繪圖1中系統(tǒng)DMA讀操作的定時(shí)圖,此時(shí)的DMA讀需要系統(tǒng)存貯器存取但沒有進(jìn)行本發(fā)明所提供的調(diào)節(jié);
圖5是描繪圖1中系統(tǒng)DMA讀操作的定時(shí)圖,此時(shí)本發(fā)明所提供的調(diào)節(jié)授予無系統(tǒng)存貯器存取要求的外設(shè)以DMA服務(wù);
圖6是描繪圖1中系統(tǒng)DMA寫操作的定時(shí)圖,此時(shí)的DMA寫需要系統(tǒng)存貯器存取但沒有進(jìn)行本發(fā)明所提供的調(diào)節(jié);
圖7是描繪圖1中系統(tǒng)DMA寫操作的定時(shí)圖,此時(shí)本發(fā)明所提供的調(diào)節(jié)授予無系統(tǒng)存貯器存取要求的外設(shè)以DMA服務(wù);
圖8是本發(fā)明提供的調(diào)節(jié)序列流程圖,它修改了優(yōu)選級(jí)仲裁方案,以批準(zhǔn)圖1中數(shù)據(jù)處理系統(tǒng)的爭(zhēng)用外設(shè)中之一的DMA服務(wù)請(qǐng)求;
圖9是圖示線性優(yōu)先級(jí)仲裁方案的流程圖,它批準(zhǔn)圖1中數(shù)據(jù)處理系統(tǒng)的爭(zhēng)用外設(shè)之一的DMA服務(wù)請(qǐng)求;以及圖10是描繪圖1中數(shù)據(jù)處理系統(tǒng)運(yùn)行的表格,其優(yōu)先級(jí)仲裁方案不時(shí)地被修改以批準(zhǔn)一個(gè)低優(yōu)級(jí)爭(zhēng)用外設(shè)的DMA服務(wù)請(qǐng)求。
如圖1所示,數(shù)字10表示的數(shù)據(jù)處理系統(tǒng)包括一處理器組件12,一輸入/輸出通道控制器(IOCC)14以及一輸入/輸出子系統(tǒng)16。處理器18和系統(tǒng)存貯器20組成了處理器組件12。并通過內(nèi)部總線22互相連接。內(nèi)部總線22還與IOCC14相連。輸入/輸出子系統(tǒng)16包括外設(shè)24,26和28,它們按常規(guī)方式分別與在外圍總線36上的端口30,32和34相連。外圍總線36也與IOCC相連。
可以看到,處理器組件12的部件和IOCC14的一部分(至少有一部分)可以是獨(dú)立的裝在普通印刷電路板上的集成電路(沒有圖示出)。系統(tǒng)10的其余部件可以裝在IBM RTPC工作站的系統(tǒng)板(也沒圖示出)上。為了便于描述,這里只給出了外設(shè)24,26和28,當(dāng)然可以有任意個(gè)外設(shè)共享公用外圍總線36。例如,外設(shè)可包括顯示器,磁盤驅(qū)動(dòng)器,網(wǎng)絡(luò)卡以及打印機(jī)等。
內(nèi)部總線22是一高帶寬同步總線,它與處理器18,系統(tǒng)存貯器20和IOCC14互連。內(nèi)部總線22是一傳輸三十二(32)位寬量信息(多路地址和數(shù)據(jù))的包交換總線??偩€22的協(xié)議功能可以特別包括奇偶檢驗(yàn),請(qǐng)求,以及確認(rèn)序列以確保數(shù)據(jù)傳輸?shù)耐暾?。外圍總線36是一條包括地址、數(shù)據(jù)和控制線的經(jīng)濟(jì)的、低性能總線,其中數(shù)據(jù)線寬為16位??偩€36一般具有標(biāo)準(zhǔn)IBM PC-AT型的總線結(jié)構(gòu)。
由于外圍總線36的協(xié)議功能不很尖端,并且其傳輸操作的計(jì)時(shí)與內(nèi)部總線22的不同,因此IOCC14的一個(gè)重要功能是作為內(nèi)部總線和外圍總線間傳輸數(shù)據(jù)的接口。例如,在IOCC14的操作中,IOCC應(yīng)用來自內(nèi)部總線22的狀態(tài)信息和時(shí)鐘信息為外圍總線36生成適當(dāng)?shù)男盘?hào)以產(chǎn)生伴隨著地址和數(shù)據(jù)信號(hào)的讀或?qū)懶盘?hào)。外設(shè)與處理器組件12的通信可以在虛擬方式下進(jìn)行,由IOCC14翻譯經(jīng)外圍總線傳輸?shù)臄?shù)據(jù)的地址。當(dāng)然這是一個(gè)雙向過程。
IOCC14的一個(gè)重要功能是處理外設(shè)24,26和28與處理器組件12之間的直接存貯器存取(DMA)服務(wù)請(qǐng)求。比較起來,可編程的輸入/輸出(PIO)指令必須由處理器18執(zhí)行,它與外設(shè)的通信可能比所期望和慢。而且,在執(zhí)行PIO指令時(shí),處理器18不能在支持外設(shè)的同時(shí)處理其它操作。DMA事務(wù)處理的執(zhí)行不需要處理器18直接地一步一步地監(jiān)督,并且允許系統(tǒng)存貯器20與外設(shè)24,26和28之間的快速,高效的大量數(shù)據(jù)傳輸。
圖2所示的是IOCC14的一部分體系結(jié)構(gòu),它使用了硬數(shù)據(jù)緩沖區(qū)38,40和42以增強(qiáng)DMA的性能。數(shù)據(jù)緩沖區(qū)38,40和42分別用來為外設(shè)24,26和28與處理器組件12之間的傳輸積累和暫時(shí)存貯三十二(32)位寬量的數(shù)據(jù)。這里只圖示出三個(gè)數(shù)據(jù)緩沖區(qū),不用說,還可能根據(jù)共享外圍總線36的外圍設(shè)備數(shù)提供更多的數(shù)據(jù)緩沖區(qū)。數(shù)據(jù)緩沖區(qū)38,40和42的每一個(gè)都包含四個(gè)臨時(shí)存貯單元,由下標(biāo)a,b,c和d表示,每一個(gè)存貯單元可存貯8位信息,四條線44,46,48和50分別把緩沖區(qū)38,40和42的存貯單元a,b,c和d連到內(nèi)部總線22上。不言而喻,線44-50是依次相連的,每一條都具有8條信號(hào)線(無圖示),用來把三十二(32)位寬量的數(shù)據(jù)經(jīng)內(nèi)部總線22傳進(jìn)和傳出數(shù)據(jù)緩沖區(qū)38-42。另外四條線52、54、56和58把外設(shè)總線36分別與數(shù)據(jù)緩沖區(qū)38-42的a-d存貯單元相連。線52和56是依次相連的信號(hào)線,每一條都具有8條信號(hào)線(也無圖示),用來把八(8)位寬量的數(shù)據(jù)經(jīng)外圍總線36傳進(jìn)和傳出數(shù)據(jù)緩沖區(qū)38-42的存貯單元a和/或c。同樣地,線54和58也是依次相連的信號(hào)線,每一條都具有8條信號(hào)線(無圖示),用來把八(8)位寬量的數(shù)據(jù)經(jīng)外圍總線36傳進(jìn)和傳出數(shù)據(jù)緩沖區(qū)38-42的存貯單元b和/或d。根據(jù)這種方式,顯然可以在線52-58上把十六(16)位寬量的數(shù)據(jù)經(jīng)外圍總線36傳進(jìn)和傳出數(shù)據(jù)緩沖區(qū)38-42的a和b或c和c存貯單元。
因此,數(shù)據(jù)緩沖區(qū)38,40和42提供了一種接口功能,它通過減少對(duì)內(nèi)部總線22的需求改善了系統(tǒng)10的性能。例如,執(zhí)行DMA寫操作時(shí),IOCC14必須把數(shù)據(jù)從外圍設(shè)備24,26或28之一傳送到系統(tǒng)存貯器20的一個(gè)存貯單元。每次經(jīng)外圍總線36從外設(shè)傳送一或兩個(gè)字節(jié)的信息,經(jīng)過兩個(gè)或四個(gè)周期的操作后,信息在適當(dāng)?shù)臄?shù)據(jù)緩沖區(qū)38,40或42的存貯單元a-d上積累起來,只當(dāng)目標(biāo)數(shù)據(jù)緩沖區(qū)滿時(shí)(即,存貯單元a-d都含有數(shù)據(jù)),才可存取內(nèi)部總線22,這時(shí)產(chǎn)生三十二(32)位寬量的數(shù)據(jù)傳輸,只用一次寫操作就把數(shù)據(jù)從數(shù)據(jù)緩沖區(qū)經(jīng)內(nèi)部總線22寫到系統(tǒng)存貯器20上。執(zhí)行DMA讀時(shí),即從系統(tǒng)存貯器20到外設(shè)的裝載操作時(shí),用一次讀操作把三十二(32)位的信息經(jīng)內(nèi)部總線22傳輸并臨時(shí)存貯在與特定外設(shè)對(duì)應(yīng)的數(shù)據(jù)緩沖區(qū)中。然后,經(jīng)過四個(gè)或兩個(gè)操作周期,以八(8)位或十六位(16)寬量的數(shù)據(jù)從數(shù)據(jù)緩沖區(qū)的存貯單元a-d中讀出并經(jīng)外圍總線36把數(shù)據(jù)傳送到外設(shè)。當(dāng)數(shù)據(jù)從數(shù)據(jù)緩沖區(qū)的存貯單元a-d中向外設(shè)讀出時(shí),傳輸操作對(duì)內(nèi)部總線22和處理器組件12是透明的。
IOCC14的控制邏輯電路由圖2中塊60表示,它提供了對(duì)外設(shè)24,26和28與處理器組件12間經(jīng)IOCC的數(shù)據(jù)緩沖區(qū)38-42的DMA傳輸?shù)墓芾???刂七壿媺K60的電路在兩個(gè)或多個(gè)可能同時(shí)請(qǐng)求存取外圍總線36以獲得DMA服務(wù)的外設(shè)24,26或28中間進(jìn)行優(yōu)先級(jí)仲裁。
控制邏輯塊60基于數(shù)據(jù)緩沖區(qū)38,40和42的數(shù)據(jù)狀態(tài)調(diào)節(jié)或修改了慣常的優(yōu)先級(jí)仲裁,從而進(jìn)一步改進(jìn)了外圍總線36的利用。優(yōu)先級(jí)仲裁方案和控制邏輯60的調(diào)節(jié)電路以后將詳細(xì)討論。在控制邏輯塊60上接了一條控制線62,它表示從IOCC14到處理器組件12的系統(tǒng)級(jí)DMA請(qǐng)求和協(xié)議信號(hào)的傳送。在控制邏輯塊60上還接了一條控制線64,它表示IOCC14與外設(shè)24,26和28之間DMA請(qǐng)求和協(xié)議信號(hào)的傳送。線65把每個(gè)數(shù)據(jù)緩沖區(qū)38,40和42與控制邏輯塊60連接起來。
現(xiàn)在參看圖3,它更詳細(xì)地描繪了圖2中塊60的控制邏輯電路。塊68代表優(yōu)先級(jí)仲裁方案,用于確定在爭(zhēng)用中的外設(shè)24,26和28中由哪一個(gè)獲得DMA服務(wù)因而可存取外圍總線36。優(yōu)先級(jí)仲裁塊68通過線64與處理器組件12(圖1)相連,在優(yōu)選實(shí)施例中,塊68給出一線性優(yōu)先級(jí)仲裁方案,以后將參照?qǐng)D9的流程圖討論。
根據(jù)本發(fā)明,塊70,72和74組成了調(diào)節(jié)電路,用于修改用來分別批準(zhǔn)可能爭(zhēng)用DMA服務(wù)之外設(shè)24,26和28數(shù)據(jù)傳輸請(qǐng)求的慣常優(yōu)先級(jí)仲裁方案。正如將要詳細(xì)討論的,調(diào)節(jié)塊70,72和74在可分別地利用數(shù)據(jù)緩沖區(qū)38,40和42的數(shù)據(jù)狀態(tài)基礎(chǔ)上修改慣常的優(yōu)先級(jí),以最大限度的利用外圍總線36。線76,78和80分別把優(yōu)選級(jí)仲裁塊68與調(diào)節(jié)塊70,72和74相連。由于調(diào)節(jié)塊70,72和74的部件是相同的,以后只討論調(diào)節(jié)塊70。
調(diào)節(jié)塊70的邏輯電路包含一個(gè)連接其輸入端與DMA請(qǐng)求線84的“與”門82。DMA請(qǐng)求線84把來自外設(shè)24(圖1)的請(qǐng)求DMA服務(wù)信號(hào)送到塊70。在“與”門82的輸入端還連了一條緩沖區(qū)狀態(tài)線86。“或”門88的輸出端與這條緩沖區(qū)狀態(tài)線86相連。線90與92連接到“或”門88的輸入端?!芭c”門94和96的輸出端分別與線90和92相連。DMA寫信號(hào)線98和“與”門94的輸入端相連。在“與”門94的輸入端還連了一條線100。反相器102的輸出端與線100相連。來自數(shù)據(jù)緩沖區(qū)38(圖2)的緩沖區(qū)滿信號(hào)線104與這個(gè)反相器102的輸入端相連。DMA讀信號(hào)線106與“與”門96的輸入端相連。在“與”門96的輸入端還連了一條線108。反相器110的輸出端與線108相連。來自數(shù)據(jù)緩沖區(qū)38的緩沖區(qū)空信號(hào)線112與這個(gè)反相器110的輸入端相連。
在系統(tǒng)10的操作中要求共享外圍總線36的多個(gè)外設(shè)24,26和28(圖1)可能同時(shí)請(qǐng)求DMA服務(wù)。由于在給定時(shí)刻,只能有一個(gè)外設(shè)可以存取外圍總線36,接收到爭(zhēng)用DMA請(qǐng)求信號(hào)(經(jīng)線76,78和80中兩條或多條)的優(yōu)先級(jí)仲裁塊68(圖3)將批準(zhǔn)具有較高優(yōu)先級(jí)外設(shè)的DMA服務(wù)請(qǐng)求。在優(yōu)選實(shí)施例中,塊68執(zhí)行線性優(yōu)先級(jí)仲裁方案。在此方案中,外設(shè)24的優(yōu)先級(jí)最高,外設(shè)26的優(yōu)先級(jí)其次,外設(shè)28的優(yōu)先級(jí)最低。低優(yōu)先級(jí)爭(zhēng)用外設(shè)的DMA服務(wù)請(qǐng)求將被擱置直到高優(yōu)先級(jí)外設(shè)的DMA操作完畢。
如上所述,當(dāng)高優(yōu)先級(jí)爭(zhēng)用外設(shè)在經(jīng)外圍總線的操作可以開始以前需要經(jīng)內(nèi)部總線22的系統(tǒng)存貯器操作時(shí),外圍總線36的利用率就不足了。外圍總線36沒有被能完全不需數(shù)據(jù)緩沖區(qū)40或42(圖2)而進(jìn)行操作的低優(yōu)先級(jí)外設(shè)使用而是“持續(xù)等待”。在DMA寫操作期間對(duì)應(yīng)于高優(yōu)先級(jí)外設(shè)的數(shù)據(jù)緩沖區(qū)是滿的時(shí)候?qū)l(fā)生前述現(xiàn)象。因?yàn)樵跀?shù)據(jù)緩沖區(qū)存貯單元a-d能接收經(jīng)外圍總線傳來的來自外設(shè)的8或16位數(shù)據(jù)以前,必須首先一次把三十二(32)位寬量的數(shù)據(jù)經(jīng)內(nèi)部總線22傳到系統(tǒng)存貯器20(圖1)上去。同樣地,在DMA讀操作期間對(duì)應(yīng)于高優(yōu)先級(jí)外設(shè)的數(shù)據(jù)緩沖區(qū)是空的時(shí)候也將發(fā)生前述現(xiàn)象,因?yàn)槭紫缺仨毎讶?32)位寬量的數(shù)據(jù)經(jīng)內(nèi)部總線22從系統(tǒng)存貯器20傳到數(shù)據(jù)緩沖區(qū)上,才能將數(shù)據(jù)(每次一或兩字節(jié))經(jīng)外圍總線36從通道緩沖區(qū)存貯單元a-d傳到正在工作的外設(shè)上。
因此,本發(fā)明的調(diào)節(jié)系統(tǒng)使慣常優(yōu)先級(jí)仲裁適配于根據(jù)數(shù)據(jù)緩沖區(qū)38,40和42的數(shù)據(jù)狀態(tài)條件。如果高優(yōu)先級(jí)外設(shè)請(qǐng)求DMA寫操作并且其數(shù)據(jù)緩沖區(qū)是滿的,或者請(qǐng)求DMA讀操作且其數(shù)據(jù)緩沖區(qū)是空的,則此外設(shè)的調(diào)節(jié)塊70,72或74(圖3)將不向優(yōu)先級(jí)仲裁塊68發(fā)布請(qǐng)求DMA服務(wù)的激活信號(hào)。并且仲裁塊將批準(zhǔn)不需系統(tǒng)存貯器操作的下一級(jí)爭(zhēng)用外設(shè)的請(qǐng)求。
例如,現(xiàn)在參照?qǐng)D3中的調(diào)節(jié)塊70描述調(diào)節(jié)邏輯電路的操作。外設(shè)24(圖1)的DMA服務(wù)請(qǐng)求向DMA請(qǐng)求線84上的“與”門82發(fā)送一個(gè)激活信號(hào)。僅當(dāng)緩沖區(qū)狀態(tài)線86也向“與”門82發(fā)送一個(gè)激活信號(hào)時(shí),調(diào)節(jié)塊70才在線76上向優(yōu)先級(jí)仲裁塊68發(fā)送激活的DMA請(qǐng)求信號(hào)。換句話說,如果數(shù)據(jù)緩沖區(qū)狀態(tài)線86是不活躍信號(hào),則線76上的調(diào)節(jié)塊70的輸出信號(hào)也是不活躍的,外設(shè)24的DMA服務(wù)請(qǐng)求將被擱置。以這種方式修改了優(yōu)先級(jí)仲裁使得次優(yōu)先級(jí)的外設(shè)(即外設(shè)26或外設(shè)28)得到存取外圍總線36的允許。
如果外設(shè)24請(qǐng)求DMA寫操作,DMA寫信號(hào)線將給“與”門94提供一個(gè)激話信號(hào)。如果數(shù)據(jù)緩沖區(qū)38(圖2)沒有滿,具有一個(gè)或多個(gè)空存貯單元38a-d,經(jīng)過緩沖區(qū)滿信號(hào)線104到反相器102的信號(hào)是不活躍的。反相器102的輸出將在線100上向“與”門94發(fā)出激活信號(hào)。“與”門94的輸出端,從而“或”門88的輸出端,將在緩沖區(qū)狀態(tài)線86上給“與”門82提供一個(gè)激活信號(hào)。因此,自調(diào)節(jié)塊70到塊68的線76上的來自調(diào)節(jié)塊70的激活信號(hào)將導(dǎo)致執(zhí)行慣常的優(yōu)先仲裁方案。這時(shí),外設(shè)24將獲得DMA服務(wù)。
另一方面,如果外設(shè)請(qǐng)求DMA寫操作且數(shù)據(jù)緩沖區(qū)38(圖2)是滿的,將在緩沖區(qū)滿信號(hào)線104上向反相器102提供一個(gè)激活信號(hào)。反相器102然后將向“與”門94發(fā)送一個(gè)信號(hào)。“與”門94從而“或”門88的輸出端,將向緩沖區(qū)狀態(tài)線86提供一個(gè)不活躍信號(hào)。“與”門82將在線76上向優(yōu)先級(jí)仲裁塊68提供一個(gè)不活躍信號(hào)。因此,外設(shè)24將得不到DMA服務(wù),而是具有有效數(shù)據(jù)(DMA讀所需的)或可用緩沖區(qū)空間(DMA寫所需的)的請(qǐng)求DMA服務(wù)的次優(yōu)先級(jí)外設(shè)獲準(zhǔn)存取外圍總線36。在次優(yōu)先級(jí)外設(shè)使用外圍總線36的同時(shí),滿數(shù)據(jù)緩沖區(qū)38正執(zhí)行經(jīng)內(nèi)部總線22向系統(tǒng)存貯器20(圖1)的數(shù)據(jù)傳輸操作。
以同樣的方式,調(diào)節(jié)塊70的調(diào)節(jié)邏輯電路決定外設(shè)74在DMA讀操作期間是否應(yīng)該服從慣常的優(yōu)先級(jí)仲裁方案。在DMA讀操作期間,DMA讀信號(hào)線106將向“與”門96提供一個(gè)激活信號(hào)。如果數(shù)據(jù)緩沖區(qū)的存貯單元38a-d至少有一個(gè)包含數(shù)據(jù),那么緩沖區(qū)狀態(tài)空信號(hào)線112上的不活躍信號(hào)使得反相器110向“與”門96提供一個(gè)激活信號(hào),并因此也向“或”門98提供一個(gè)激活信號(hào)。線76上“與”門82的信號(hào)輸出將為激活的。按照正常的優(yōu)先級(jí)仲裁方案,外設(shè)24將獲得DMA服務(wù)。換句話說,如果數(shù)據(jù)緩沖區(qū)38是空的,那么緩沖區(qū)狀態(tài)空信號(hào)線112上的激活信號(hào)使得反相器110向“與”門96和“或”門88提供一個(gè)不活躍信號(hào)。“與”門在線76上向塊68提供一個(gè)不活躍信號(hào),因而修改了慣常的優(yōu)先級(jí)仲裁。較低優(yōu)先級(jí)的外設(shè)獲準(zhǔn)存取外圍總線36。低優(yōu)先級(jí)外設(shè)在外圍總線36上執(zhí)行其數(shù)據(jù)傳輸操作。與此同時(shí),三十二(32)位的數(shù)據(jù)也從系統(tǒng)存貯器20經(jīng)內(nèi)部總線22傳送到數(shù)據(jù)緩沖區(qū)38。
圖4-7是圖示系統(tǒng)10信息傳輸定時(shí)的定時(shí)圖,這些數(shù)據(jù)傳輸可能在外設(shè)24,26和28中的任何一個(gè),IOCC14和處理器組件12之間發(fā)生。不用說,在處理器組件12與IOCC14之間傳送信號(hào)的線對(duì)應(yīng)于圖2中的控制線62;在外設(shè)與IOCC之間傳送信號(hào)的線對(duì)應(yīng)于控制線64。其余的線傳送IOCC的內(nèi)部信號(hào)。
圖4描繪了無本發(fā)明調(diào)節(jié)邏輯電路的DMA讀操作定時(shí),這一操作把數(shù)據(jù)從系統(tǒng)存貯器20傳送到特定外設(shè),并且對(duì)應(yīng)于此外設(shè)的數(shù)據(jù)緩沖區(qū)是空的。線114在時(shí)刻116把激活的+PREQ(外圍請(qǐng)求)信號(hào)從請(qǐng)求DMA服務(wù)的外設(shè)送到IOCC14。在時(shí)刻120,線118上+SHRQ(系統(tǒng)擁有請(qǐng)求)信號(hào)被激活,IOCC14(通過相同的協(xié)議)通過這個(gè)信號(hào)請(qǐng)求對(duì)處理器組件12的DMA服務(wù),然后在時(shí)刻124激活了線122上的一SHLDA(系統(tǒng)擁有確認(rèn))信號(hào),處理器組件12由此對(duì)IOCC14確認(rèn)+SHRQ信號(hào)已到,表明它現(xiàn)在已獲得對(duì)內(nèi)部總線22的存取。線126代表-PHLDA(外圍擁有確認(rèn))信號(hào),它在時(shí)刻128被激活,并從IOCC14發(fā)往外設(shè)以確認(rèn)獲準(zhǔn)存取外圍總線36。由于外圍總線36現(xiàn)在處于可以進(jìn)行數(shù)據(jù)傳輸狀態(tài),因此IOCC14中的線130提供-PWR(外圍寫)信號(hào),它是一個(gè)外設(shè)的寫選通脈沖。-PWR信號(hào)在時(shí)刻132被激活以啟動(dòng)這個(gè)操作。
在把數(shù)據(jù)從通道緩沖區(qū)傳到外設(shè)之前,必須首先把32位信息經(jīng)內(nèi)部總線22從存貯器20送到通道緩沖區(qū)。如線134所示,在時(shí)刻136,IOCC14和處理器組件12間的-SYS MEM RD(系統(tǒng)存貯器讀)信號(hào)被激活,這表明IOCC現(xiàn)在已準(zhǔn)備好讀來自系統(tǒng)存貯器20的信息。如線138所示,根據(jù)在時(shí)刻140的SDATA(系統(tǒng)數(shù)據(jù))信號(hào),數(shù)據(jù)從系統(tǒng)存貯器20傳到數(shù)據(jù)緩沖區(qū)。線142上的-SYS DAT STB(系統(tǒng)數(shù)據(jù)選通)信號(hào)在時(shí)刻144鎖存了從系統(tǒng)存貯器20讀到通道緩沖區(qū)的數(shù)據(jù)。-SYS DAT STB信號(hào)是在IOCC14內(nèi)部生成的并且是一定時(shí)信號(hào),它允許控制邏輯電路把數(shù)據(jù)存入緩沖區(qū)。
當(dāng)上述從系統(tǒng)存貯器20到通道緩沖區(qū)的數(shù)據(jù)傳輸正在完成時(shí),從通道緩沖區(qū)經(jīng)外圍總線36到外圍設(shè)備的寫數(shù)據(jù)操作還不能開始,即使外設(shè)在時(shí)刻132,線130上的-PWR信號(hào)激活時(shí)就已經(jīng)準(zhǔn)備好了。如線146所示的+PROY(外圍就緒)信號(hào)在緊接著時(shí)刻132之后的時(shí)刻148不活躍。只要+PRBY信號(hào)是不活躍的,外設(shè)將持續(xù)等待經(jīng)外圍總線36的數(shù)據(jù)傳輸。一旦來自系統(tǒng)存貯器20的數(shù)據(jù)鎖存進(jìn)通道緩沖區(qū)(如線142所示)并且從系統(tǒng)存貯器20到數(shù)據(jù)緩沖區(qū)的數(shù)據(jù)傳輸完畢,線134上的-SYS MEM RD信號(hào)將在時(shí)刻150釋放為常態(tài)。線146上的+PRDY信號(hào)也將在時(shí)刻152釋放為常態(tài)。線154表示根據(jù)在時(shí)刻156的PDATA(外圍數(shù)據(jù))信號(hào)從通道緩沖區(qū)到外設(shè)的數(shù)據(jù)傳輸。載有SADR/PADR(系統(tǒng)地址/外圍地址)信號(hào)的線158指出一個(gè)數(shù)據(jù)傳輸所需的系統(tǒng)存貯器20或外設(shè)的適當(dāng)?shù)牡刂反尜A單元。在線130上的時(shí)刻160,-PWR信號(hào)變?yōu)椴换钴S時(shí),來自IOCC14的數(shù)據(jù)被鎖存入外設(shè)。
參看圖5,它描繪了系統(tǒng)10的定時(shí)以圖示DMA讀操作期間本發(fā)明的數(shù)據(jù)狀態(tài)調(diào)節(jié)是如何改進(jìn)外圍總線36的應(yīng)用的,此時(shí)獲得DMA服務(wù)的外設(shè)絕不需要系統(tǒng)存貯器操作。在線162上,+PREQ(外圍請(qǐng)求)信號(hào)在時(shí)刻164被激活。由于不需要到處理器組件12的存取以填滿通道緩沖區(qū),載有+SHRQ(系統(tǒng)擁有請(qǐng)求)信號(hào)和-SHLDA(系統(tǒng)擁有確認(rèn))信號(hào)保持它們的常態(tài)。在線170上,IOCC14給予外設(shè)一個(gè)在時(shí)刻172被激活的-PHLDA(外圍擁有確認(rèn))信號(hào),表明外設(shè)可以存取外圍總線36。如線174所示,IOCC14從線174上的SADR/PADR信號(hào)給出合適的地址指令。在線176上,-PWR(外圍寫)信號(hào)在時(shí)刻178被激活。由于要傳輸?shù)臄?shù)據(jù)存在數(shù)據(jù)緩沖區(qū)本地,因此在線180上,IOCC將在時(shí)刻120激活PDATA(外圍數(shù)據(jù))信號(hào)以進(jìn)行經(jīng)外圍總線36的數(shù)據(jù)傳輸。
由于傳輸操作局部地在外設(shè)與IOCC14的數(shù)據(jù)緩沖區(qū)之間發(fā)生,因此在發(fā)生經(jīng)內(nèi)部總線22到IOCC14的數(shù)據(jù)傳輸時(shí),沒有必要使線184上的+PROY(外圍準(zhǔn)備完畢)信號(hào)不活躍,在發(fā)生經(jīng)內(nèi)部總線到IOCC的數(shù)據(jù)傳輸中讓外設(shè)保持等待。由于在內(nèi)部總線22上沒有數(shù)據(jù)傳輸,線線86,188和190(分別載有-SYS MEM RO,SDATA和-SYS DAT STB信號(hào))保持常態(tài)。在線176上時(shí)刻192-PWR信號(hào)變?yōu)槌B(tài)時(shí)發(fā)生了下一個(gè)事件。它使得外設(shè)鎖存或?qū)懭霐?shù)據(jù),完成DMA周期。
參照?qǐng)D6,它是圖示DMA寫操作的定時(shí)圖。它圖示了在沒有本發(fā)明的調(diào)節(jié)邏輯電路時(shí)DMA寫操作期間發(fā)生的事件序列。這個(gè)調(diào)節(jié)邏輯電路修改其通道緩沖區(qū)為滿的外設(shè)的DMA服務(wù)優(yōu)先級(jí)。線194圖示了在時(shí)刻196一個(gè)+PREQ(外圍請(qǐng)求)信號(hào)的激活,這表明外設(shè)請(qǐng)求DMA服務(wù)的啟動(dòng)。這個(gè)事件接著在線198上時(shí)刻200時(shí)激活一個(gè)發(fā)往處理器組件12的+SHRQ(系統(tǒng)擁有請(qǐng)求)信號(hào)。在線203上,處理器組件12將在時(shí)刻204激活信號(hào)-PHLDA。IOCC然后在線206上208時(shí)刻處激活-PHLDA(外圍擁有確認(rèn))信號(hào)。外設(shè)現(xiàn)在已準(zhǔn)備好啟動(dòng)DMA周期。并且如線210所示,在時(shí)刻212提供了適當(dāng)?shù)腟ADR/PADR(系統(tǒng)地址/外圍地址)信號(hào)。在時(shí)刻216線214激活了-PRD(外圍讀信號(hào),這表明經(jīng)外圍總線的數(shù)據(jù)傳輸已準(zhǔn)備開始。同時(shí)在線218上時(shí)刻220不激活+PRDY(外圍就緒)信號(hào),因?yàn)橥庠O(shè)必須等待直到有空間可容納經(jīng)外圍總線36傳輸?shù)酵ǖ谰彌_區(qū)以前的一次經(jīng)內(nèi)部總線22的數(shù)據(jù)傳輸?shù)陌l(fā)生。在線222上,在時(shí)刻224開始發(fā)送的SDATA(系統(tǒng)數(shù)據(jù))信號(hào)表明從數(shù)據(jù)緩沖區(qū)經(jīng)內(nèi)部總線22到系統(tǒng)存貯器20的數(shù)據(jù)傳輸。于是在線226上,在時(shí)刻228激活的-SYS MEM STB(系統(tǒng)存貯器選通)信號(hào)啟動(dòng)了把信息鎖存到系統(tǒng)存貯器20的過程。一旦這個(gè)過程完成,將在時(shí)刻230激活線218上的+PRDY(外圍就緒)信號(hào)。根據(jù)時(shí)刻233的PDATA(外圍數(shù)據(jù))信號(hào)傳輸線232上的數(shù)據(jù)。在線215上的時(shí)刻234時(shí),-PRD信號(hào)不活躍在此以后數(shù)據(jù)被鎖存起來。
圖7為經(jīng)調(diào)節(jié)的外設(shè)DMA寫操作的定時(shí)圖,外設(shè)的數(shù)據(jù)緩沖永不會(huì)滿,并且不經(jīng)系統(tǒng)存貯器操作可把信息從外設(shè)讀到數(shù)據(jù)緩沖區(qū)上。在線236上,外設(shè)在時(shí)刻238發(fā)出一個(gè)激活信號(hào)+PREQ(外圍請(qǐng)求)信號(hào)請(qǐng)求DMA服務(wù)。由于這是一個(gè)從外設(shè)到IOCC14局部傳輸,不需進(jìn)行系統(tǒng)請(qǐng)求,因而線240和242(+SHRQ和-SHLDA信號(hào))保持其常態(tài)。IOCC由此確定在通道緩沖區(qū)內(nèi)有可用空間可傳輸來自外設(shè)的數(shù)據(jù)。在線244上,-PHLDA(外圍擁有確認(rèn))信號(hào)在時(shí)刻246被激活。線248根據(jù)在時(shí)刻250的SADR/PADR(系統(tǒng)地址/外圍地址)信號(hào)給出合適的地址。線252說明-PRD(外圍讀)信號(hào)隨后在時(shí)刻254被激活,指出可經(jīng)外圍總線36傳輸數(shù)據(jù)。由于不發(fā)生任何系統(tǒng)存貯器操作,分別表示SDATA,-SYS MEM STB,以及+PRDY信號(hào)的線256,258和260保持其常態(tài)。因此如線262所示,外設(shè)將開始向外圖總線36輸送數(shù)據(jù),這由在時(shí)刻264生效的PDATA信號(hào)表示。在線252上時(shí)刻266變得不活躍的-PRD信號(hào)的上升緣,來自外設(shè)的數(shù)據(jù)被鎖存進(jìn)緩沖區(qū)。
圖8是本發(fā)明用于修改或調(diào)節(jié)優(yōu)先級(jí)仲裁方案的系統(tǒng)的流程圖。在優(yōu)選實(shí)施例中,將要調(diào)節(jié)的優(yōu)先級(jí)仲裁方案是以后在圖9中描述的線性仲裁方案。由塊300,302和304表示的流程圖分支分別對(duì)應(yīng)于圖3所示硬件實(shí)施中的塊70,72和74。由于塊300,302和304的事件序列是相同的,因而只描述塊的300的細(xì)節(jié)。
在步驟306調(diào)節(jié)系統(tǒng)啟動(dòng),此時(shí)外設(shè)24的DMA服務(wù)請(qǐng)求進(jìn)入DMA READ(直接存儲(chǔ)器讀)判定框308。DMA READ判定框308確定這個(gè)請(qǐng)求是DMA讀操作還是DMA寫操作,如果是DMA讀操作,則把請(qǐng)求送到BUFFER EMPTY(緩沖區(qū)空)判定框310;反過來,如果是DMA寫操作,則把請(qǐng)求送到DUFFER FULL(緩沖區(qū)滿)判定框312。BUFFER EMPTY判定框310確定數(shù)據(jù)緩沖區(qū)38(圖2)的數(shù)據(jù)狀態(tài)如果一個(gè)或多個(gè)存貯單元含有數(shù)據(jù),則把請(qǐng)求轉(zhuǎn)到ALLOW DPR(允許數(shù)據(jù)請(qǐng)求)框314。ALLOW DPR框314把請(qǐng)求送到步驟316,由此把請(qǐng)求遞交給慣常的優(yōu)先級(jí)仲裁方案(將在圖9的流程圖中描述這個(gè)方案)。
如果BUFFER EMPTY判定框310確定數(shù)據(jù)緩沖區(qū)38中沒有數(shù)據(jù),則把請(qǐng)求轉(zhuǎn)到DISABLE DRQ(禁止數(shù)據(jù)請(qǐng)求)框318。DISABLE DRQ塊318防止請(qǐng)求轉(zhuǎn)到步驟316。BUFFER STATUS CHG(緩沖區(qū)狀態(tài)改變)判定框320接收來自DISABLE DRQ框318的請(qǐng)求并且僅當(dāng)緩沖區(qū)38的數(shù)據(jù)狀態(tài)發(fā)生變化時(shí)(這里的變化指存貯單元38a-d加入了來自系統(tǒng)存貯器20的數(shù)據(jù))才允許將請(qǐng)求轉(zhuǎn)到步驟316。
如上所述,當(dāng)DMA READ判定框308確定請(qǐng)求是DMA寫操作時(shí),將向BUFFER FULL判定框312發(fā)出DMA服務(wù)請(qǐng)求。BUFFER FULL判定框312確定數(shù)據(jù)緩沖區(qū)38的數(shù)據(jù)狀態(tài)如果并非所有存貯單元38a-d都有數(shù)據(jù),則向ALLOW DRQ框314發(fā)出一個(gè)請(qǐng)求。其后請(qǐng)求被轉(zhuǎn)到步驟316進(jìn)行慣常優(yōu)先級(jí)仲裁(以后討論)。但是,如果數(shù)據(jù)緩沖區(qū)所有存貯單元38a-d都有數(shù)據(jù),則把請(qǐng)求轉(zhuǎn)到DISABLE DRQ框318。僅當(dāng)移走存貯單元38a-d的數(shù)據(jù)使數(shù)據(jù)狀態(tài)發(fā)生變化時(shí),DATA STATUS CHG判定框320才允許將請(qǐng)求轉(zhuǎn)到步驟316。
圖9是本發(fā)明優(yōu)先級(jí)仲裁方案的流程圖,它對(duì)應(yīng)于圖3中優(yōu)先級(jí)仲裁塊68的運(yùn)行步驟。此優(yōu)先級(jí)仲裁是一線性方案,它授予爭(zhēng)用外設(shè)中最高優(yōu)先級(jí)的外設(shè)DMA服務(wù)以支配對(duì)外圍總線36的存取。在步驟316(從圖8)的DMA服務(wù)請(qǐng)求進(jìn)到DRQ1 ACTIVE(數(shù)據(jù)請(qǐng)求1激活)判定框322。如果請(qǐng)求與第一優(yōu)先級(jí)外設(shè)對(duì)應(yīng),則請(qǐng)求轉(zhuǎn)到批準(zhǔn)這個(gè)請(qǐng)求的框324。在優(yōu)選實(shí)施例中,框324對(duì)應(yīng)于批準(zhǔn)外設(shè)24的DMA服務(wù)請(qǐng)求。如果不是第一優(yōu)先級(jí)設(shè)備的請(qǐng)求,則把請(qǐng)求轉(zhuǎn)到DRQ2 ACTIVE(數(shù)據(jù)請(qǐng)求2激活)判定框326。如果請(qǐng)求與第二優(yōu)先級(jí)外設(shè)對(duì)應(yīng),則DRQ2 ACTIVE判定框326批準(zhǔn)這個(gè)請(qǐng)求,如框328所示???28批準(zhǔn)外設(shè)26的DMA服務(wù)請(qǐng)求。最后,如果不是第一優(yōu)先級(jí)或第二優(yōu)先級(jí)的請(qǐng)求,則DRQ3 ACTIVE(數(shù)據(jù)請(qǐng)求3激活)判定框330接收來自DRQ2 ACTIVE框332的請(qǐng)求。如果請(qǐng)求與第三優(yōu)先級(jí)外設(shè)(這里是指外設(shè)28)對(duì)應(yīng),則DRQ3 ACTIVE判定框330批準(zhǔn)這個(gè)請(qǐng)求???34只接收不與上述任何一個(gè)排好優(yōu)先級(jí)的外設(shè)對(duì)應(yīng)的請(qǐng)求,這表明有系統(tǒng)錯(cuò)誤。
圖10是一個(gè)描述根據(jù)本發(fā)明系統(tǒng)10的運(yùn)行情況表。在這個(gè)例子中假設(shè)外設(shè)24請(qǐng)求DMA讀操作,而外設(shè)26和28請(qǐng)求寫操作。根據(jù)行322給出的爭(zhēng)用DMA設(shè)施情況,外設(shè)24的請(qǐng)求不活躍(I),而外設(shè)26和28的請(qǐng)求激活(A)。根據(jù)慣常優(yōu)先級(jí)判別方案,外設(shè)26的請(qǐng)求被批準(zhǔn)(A),因?yàn)榫彌_區(qū)40只有三字節(jié)的數(shù)據(jù)而并沒有滿。行334給出下一輪爭(zhēng)用DMA設(shè)施的情況。這次是設(shè)備28獲得存取(A),即使它與一個(gè)來自較高優(yōu)先級(jí)設(shè)備26的激活的請(qǐng)求(A)競(jìng)爭(zhēng)。由于對(duì)應(yīng)于設(shè)備26的數(shù)據(jù)緩沖區(qū)40是滿的,(具有四字節(jié)數(shù)據(jù))因此修改了優(yōu)先級(jí)仲裁。在從設(shè)備26到數(shù)據(jù)緩沖區(qū)40的數(shù)據(jù)傳輸發(fā)生以前,首先需要經(jīng)內(nèi)部總線22的數(shù)據(jù)傳輸操作。在行336,由于在數(shù)據(jù)緩沖區(qū)38有外設(shè)24可讀的數(shù)據(jù),外設(shè)24獲得了優(yōu)先權(quán)。在行338上給出的下一輪爭(zhēng)用期間,慣常優(yōu)先級(jí)被修改了,批準(zhǔn)了設(shè)備26的請(qǐng)求(A)。高優(yōu)先級(jí)設(shè)備24沒有獲得DMA服務(wù),因?yàn)樵诎褦?shù)據(jù)從系統(tǒng)存貯器經(jīng)內(nèi)部總線22傳到緩沖區(qū)以前,其緩沖區(qū)38內(nèi)沒有能夠讀到此設(shè)備上的數(shù)據(jù)。
在上面公開的內(nèi)容和一些例子中可進(jìn)行一定范圍修改,變化和替代。在某些實(shí)例中本發(fā)明的有些特性可以被應(yīng)用而有些特性則可以不應(yīng)用。因此,以與本發(fā)明范圍一致的方式概括地解釋所附權(quán)利要求書是合適的。
權(quán)利要求
1.一種輸入/輸出通道控制裝置,它管理數(shù)據(jù)存貯設(shè)備與至少兩臺(tái)外部設(shè)備之間的數(shù)據(jù)傳輸操作。所述裝置的特征為至少有兩個(gè)數(shù)據(jù)緩沖裝置,各用來存貯正在所述數(shù)據(jù)存貯設(shè)備與一臺(tái)單獨(dú)的外設(shè)之間傳輸?shù)臄?shù)據(jù)并且提供狀態(tài)標(biāo)志;優(yōu)先級(jí)仲裁裝置,它根據(jù)所述外設(shè)的優(yōu)先級(jí)順序在爭(zhēng)用的外設(shè)中批準(zhǔn)一個(gè)外設(shè)的數(shù)據(jù)傳輸請(qǐng)求,以及優(yōu)先級(jí)調(diào)節(jié)裝置,它根據(jù)外設(shè)數(shù)居緩沖裝置的狀態(tài)標(biāo)志修改所述優(yōu)先級(jí)順序。
2.根據(jù)權(quán)利要求1的輸入/輸出通道控制裝置,其特征為提供所述狀態(tài)標(biāo)志的狀態(tài)裝置,它確定將被存取的所述數(shù)據(jù)緩沖裝置何時(shí)為滿或何時(shí)為空。
3.根據(jù)權(quán)利要求2的輸入/輸出通道控制裝置,其特征為在從所述外設(shè)到所述數(shù)據(jù)存貯設(shè)備的寫操作期間,當(dāng)將被存取的所述數(shù)據(jù)緩沖裝置是滿的時(shí),所述優(yōu)先級(jí)調(diào)節(jié)裝置修改所述優(yōu)先級(jí)順序。
4.根據(jù)權(quán)利要求2的輸入/輸出通道控制裝置,其特征為在從所述數(shù)據(jù)存貯設(shè)備到所述外設(shè)的讀操作期間,當(dāng)將被存取的所述數(shù)據(jù)緩沖裝置是空的時(shí),所述優(yōu)先級(jí)調(diào)節(jié)裝置修改所述優(yōu)先級(jí)順序。
5.一個(gè)數(shù)據(jù)處理系統(tǒng),其特征為一個(gè)中央處理器;一個(gè)系統(tǒng)存貯器;一條連接所述系統(tǒng)存貯器到所述中央處理器的數(shù)據(jù)傳輸總線;一個(gè)連到所述數(shù)據(jù)傳輸總線的輸入/輸出通道控制裝置,它管理與其相連的至少兩臺(tái)外設(shè)之一與所述中央處理器和所述系統(tǒng)存貯器之間的數(shù)據(jù)傳輸。所述輸入/輸出通道控制裝置包括多個(gè)數(shù)據(jù)緩沖裝置,各用于存貯正向唯一外設(shè)傳輸?shù)臄?shù)據(jù)并提供狀態(tài)標(biāo)志;優(yōu)先級(jí)仲裁裝置,它根據(jù)所選擇的優(yōu)先級(jí)順序在爭(zhēng)用中的外設(shè)中批準(zhǔn)一個(gè)外設(shè)的數(shù)據(jù)傳輸請(qǐng)求;以及優(yōu)先級(jí)調(diào)節(jié)裝置,它根據(jù)所述數(shù)據(jù)緩沖裝置的狀態(tài)標(biāo)志修改所述優(yōu)先級(jí)順序。
6.根據(jù)權(quán)利要求5的數(shù)據(jù)處理系統(tǒng),其進(jìn)一步的特征為提供所述狀態(tài)標(biāo)志的狀態(tài)裝置,它確定與所述外設(shè)相對(duì)應(yīng)的其數(shù)據(jù)將被傳輸?shù)乃鰯?shù)據(jù)緩沖裝置何時(shí)為滿或何時(shí)為空。
7.根據(jù)權(quán)利要求5的數(shù)據(jù)處理系統(tǒng),其特征為當(dāng)相對(duì)于高優(yōu)先級(jí)數(shù)據(jù)傳輸請(qǐng)求的所述數(shù)據(jù)緩沖裝置是滿的并且所述較高優(yōu)先級(jí)請(qǐng)求包括從外設(shè)到所述數(shù)據(jù)緩沖裝置的數(shù)據(jù)寫操作時(shí),所述優(yōu)先級(jí)調(diào)節(jié)裝置修改所述優(yōu)先級(jí)順序以批準(zhǔn)一個(gè)較低優(yōu)先級(jí)的數(shù)據(jù)傳輸請(qǐng)求。
8.根據(jù)權(quán)利要求5的數(shù)據(jù)處理系統(tǒng),其特征為當(dāng)相對(duì)于較高優(yōu)先級(jí)數(shù)據(jù)傳輸請(qǐng)求的所述數(shù)據(jù)緩沖裝置是空的并且所述較高優(yōu)先級(jí)數(shù)據(jù)傳輸請(qǐng)求包括從所述數(shù)據(jù)緩沖裝置到一個(gè)外設(shè)的數(shù)據(jù)讀操作時(shí),所述優(yōu)先級(jí)調(diào)節(jié)裝置修改所述優(yōu)先級(jí)順序以批準(zhǔn)一個(gè)較低優(yōu)先級(jí)的數(shù)據(jù)傳輸請(qǐng)求。
9.根據(jù)權(quán)利要求5的數(shù)據(jù)處理系統(tǒng),其特征為當(dāng)其數(shù)據(jù)將被傳輸?shù)乃鐾庠O(shè)請(qǐng)求對(duì)所述系統(tǒng)存貯器的存取時(shí),所述優(yōu)先級(jí)調(diào)節(jié)裝置修改所述優(yōu)先級(jí)順序。
10.根據(jù)權(quán)利要求5的數(shù)據(jù)處理系統(tǒng),其特征為一條外圍總線連接所述外設(shè)與所述數(shù)據(jù)緩沖裝置;一條內(nèi)部總線連接所述數(shù)據(jù)緩沖裝置與所述系統(tǒng)存貯器和所述中央處理器。
11.一種管理兩個(gè)或更多外設(shè)與數(shù)據(jù)處理存貯器間數(shù)據(jù)傳輸?shù)姆椒?,其特征在于下述步驟將傳輸?shù)臄?shù)據(jù)存貯在數(shù)據(jù)緩沖區(qū)中;根據(jù)已建立的優(yōu)先級(jí)順序?qū)λ鐾庠O(shè)中的爭(zhēng)用外設(shè)的數(shù)據(jù)傳輸請(qǐng)求進(jìn)行仲裁,以及根據(jù)存貯在一個(gè)外設(shè)數(shù)據(jù)緩沖區(qū)的一個(gè)數(shù)據(jù)量修改所述優(yōu)先級(jí)順序。
12.根據(jù)權(quán)利要求11的方法,其特征為下列步驟確定相對(duì)于較高優(yōu)先級(jí)數(shù)據(jù)傳輸請(qǐng)求的所述數(shù)據(jù)緩沖區(qū)是滿或是空。
13.根據(jù)權(quán)利要求12的方法,其特征為當(dāng)所述較高優(yōu)先級(jí)數(shù)據(jù)傳輸請(qǐng)求包括一個(gè)從外設(shè)到其數(shù)據(jù)緩沖區(qū)的數(shù)據(jù)寫操作并且其數(shù)據(jù)緩沖區(qū)是滿的時(shí)候,修改所述優(yōu)先級(jí)順序以批準(zhǔn)一個(gè)較低優(yōu)先級(jí)的數(shù)據(jù)傳輸請(qǐng)求。
14.根據(jù)權(quán)利要求12的方法,其特征為當(dāng)所述較高優(yōu)先級(jí)數(shù)據(jù)傳輸請(qǐng)求包括一個(gè)從所述數(shù)據(jù)緩沖區(qū)到其外設(shè)的數(shù)據(jù)讀操作并且所述數(shù)據(jù)緩沖區(qū)是空的時(shí)候,修改所述優(yōu)先級(jí)順序以批準(zhǔn)一個(gè)較低優(yōu)先級(jí)的數(shù)據(jù)傳輸請(qǐng)求。
15.一種管理兩個(gè)或更多外設(shè)與一個(gè)數(shù)據(jù)處理存貯器之間數(shù)據(jù)傳輸?shù)姆椒?,其特征為以下步驟給每個(gè)獨(dú)立外設(shè)分配一數(shù)據(jù)緩沖區(qū);將傳輸?shù)臄?shù)據(jù)存貯在數(shù)據(jù)緩沖區(qū)內(nèi);根據(jù)已建立的優(yōu)先級(jí)順序?qū)λ鐾庠O(shè)中的爭(zhēng)用外設(shè)的數(shù)據(jù)傳輸請(qǐng)求進(jìn)行仲裁;根據(jù)存貯在一個(gè)外設(shè)數(shù)據(jù)緩沖區(qū)的一個(gè)數(shù)據(jù)量修改所述優(yōu)先級(jí)順序。
16.根據(jù)權(quán)利要求15的方法,其特征為以下步驟確定相對(duì)于較高優(yōu)先級(jí)數(shù)據(jù)傳輸請(qǐng)求的所述數(shù)據(jù)緩沖區(qū)是滿或是空。
17.根據(jù)權(quán)利要求16的方法,其特征為當(dāng)所述較高優(yōu)先級(jí)的數(shù)據(jù)傳輸請(qǐng)求包括一個(gè)從外設(shè)到其數(shù)據(jù)緩沖區(qū)的數(shù)據(jù)寫操作并且其數(shù)據(jù)緩沖區(qū)是滿的時(shí)候,修改所述優(yōu)先級(jí)順序以批準(zhǔn)一個(gè)較低優(yōu)先級(jí)的數(shù)據(jù)傳輸請(qǐng)求。
18.根據(jù)權(quán)利要求16的方法,其特征為當(dāng)所述較高優(yōu)先級(jí)的數(shù)據(jù)傳輸請(qǐng)求包括一個(gè)從所述數(shù)據(jù)緩沖區(qū)到其外設(shè)的數(shù)據(jù)讀操作并且所述數(shù)據(jù)緩沖區(qū)是空的時(shí)候,修改所述優(yōu)先級(jí)順序以批準(zhǔn)一個(gè)較低優(yōu)先級(jí)的數(shù)據(jù)傳輸請(qǐng)求。
全文摘要
一個(gè)包括修改慣常的輸入/輸出通道控制器(IOCC)的優(yōu)先級(jí)仲裁方法的數(shù)據(jù)處理系統(tǒng),此仲裁方法被用來批準(zhǔn)共享一條公用外圍總線爭(zhēng)用中的外設(shè)的使用直接存貯存取(DMA)的請(qǐng)求。IOCC包含基于數(shù)據(jù)緩沖區(qū)數(shù)據(jù)狀態(tài)調(diào)節(jié)已建立的優(yōu)先級(jí)仲裁方案的邏輯電路。如果高優(yōu)先級(jí)請(qǐng)求設(shè)備在執(zhí)行IOCC與外設(shè)之間的直接操作以前請(qǐng)求系統(tǒng)存貯器與IOCC之間數(shù)據(jù)傳輸,其優(yōu)先權(quán)將轉(zhuǎn)給不請(qǐng)求系統(tǒng)存貯器存取操作的低優(yōu)先級(jí)外設(shè)。
文檔編號(hào)G06F13/30GK1052563SQ9010910
公開日1991年6月26日 申請(qǐng)日期1990年11月13日 優(yōu)先權(quán)日1989年12月15日
發(fā)明者麥克·韋恩·賴?yán)? 約翰·丹尼爾·厄普頓 申請(qǐng)人:國(guó)際商業(yè)機(jī)器公司