專利名稱::支持要求驅(qū)動的多重并行數(shù)字數(shù)據(jù)流傳輸?shù)姆椒ê脱b置的制作方法
技術(shù)領(lǐng)域:
:本發(fā)明一般來說涉及高性能外設數(shù)據(jù)接口,特別說來涉及可應用于通用個人計算機、計算機工作站、和嵌入式通信和網(wǎng)絡數(shù)據(jù)路由選擇和變換功能的多線程、總線主控、輸入/輸出(I/O)通道控制器結(jié)構(gòu)。個人計算機和計算機工作站使用的面向典型的多媒體、網(wǎng)絡和通信的應用一直持續(xù)發(fā)展,它在根本上依賴于對大數(shù)據(jù)吞吐量的數(shù)字數(shù)據(jù)流執(zhí)行運算強化的操作。典型需要的運算強化的操作包括三維(3D)音頻產(chǎn)生和控制,基于波表(wavetable)的音頻合成,V.34協(xié)議串行數(shù)據(jù)信號生成和檢測,以及模擬話音濾波和壓縮。這些操作如果用軟件實現(xiàn)的話,在由個人計算機或工作站系統(tǒng)的主處理器執(zhí)行時通常每秒耗用2千萬到4千萬指令周期(MIPS)。另外,支持相關(guān)的高吞吐量數(shù)據(jù)流傳輸?shù)匠R?guī)外設編碼器/解碼器芯片(CODEC),每數(shù)字數(shù)據(jù)傳輸流將消耗另外1到2個MIPS。然而在個人計算機和工作站系統(tǒng)中的常用微處理器通常最高僅能支持60MIPS,更一般是20到30MIPS。描述表切換、存儲器管理和外設等待狀態(tài)的操作進一步縮小了有效的用于運算過程和傳輸數(shù)字數(shù)據(jù)流的MIPS。由于在實際中有大量主處理器MIPS必須留給與執(zhí)行多媒體功能并發(fā)的常規(guī)終端用戶應用程序,所以普遍承認在處理數(shù)字數(shù)據(jù)流時需要外圍硬件支持。在為多媒體、網(wǎng)絡和通信應用增加外圍硬件支持時,需要提到硬件和軟件的接口考慮。所用的任何外圍硬件都需要在增加運算功能方面有很好的性能價格比,而反過來不給主處理器增加硬件服務要求的負擔。任何增加的支持負擔直接損害通過增加外圍硬件獲得的凈有效MIPS增益。相似地,對外圍硬件的軟件接口需要有效地與由主處理器執(zhí)行的操作系統(tǒng)接口,以便有效地支持外圍硬件的使用。效率低下的軟件接口導致主處理器與外圍硬件通信時的額外MIPS要求。而且,任何由于管理對外圍硬件的軟件接口的復雜性而增加的處理負擔也導致直接減少通過使用該外圍硬件而獲得的實際支持的處理MIPS。為多媒體、網(wǎng)絡和通信應用提供外圍硬件支持的常規(guī)方法包括提供實現(xiàn)基本是硬連線或僅部分配置可編程的運算功能的專用集成電路(芯片)和高度軟件可編程數(shù)字信號處理器(DSP)的各種結(jié)合。專用功能芯片通常以低成本緊湊封裝形式實現(xiàn)有限的信號處理功能或少數(shù)相關(guān)功能。所支持的功能通常具有特定功能范圍,而可編程能力大多限制在初始配置選項和不過分的動態(tài)控制(如果有的話)。作為硬件外設,專用功能芯片通常對數(shù)字數(shù)據(jù)流的連續(xù)實時信號處理的管理提供很少或非直接支持,更不用說支持多數(shù)據(jù)流傳輸。這樣的芯片通常僅作為數(shù)字數(shù)據(jù)流的消費者或生產(chǎn)者(源或受點),該數(shù)字數(shù)據(jù)流以由主處理器決定的可用最大速率或某一希望的速率從該芯片拉出或被推向該芯片。結(jié)果,使用專用功能芯片的外圍硬件會出現(xiàn)常規(guī)數(shù)據(jù)流傳輸中斷和遭受傳輸速度限制,其例如由過量的主處理器中斷、描述表切換、各種存儲器管理內(nèi)核處理,以及與由主處理器同時執(zhí)行的其它應用程序爭奪主處理器CPU周期的基本競爭而產(chǎn)生。系統(tǒng)范圍的競爭或?qū)Χ噙壿嫴l(fā)直接存儲器存取(DMA)數(shù)據(jù)傳輸?shù)挠邢尴到y(tǒng)硬件支持也減少專用功能芯片支持的數(shù)據(jù)傳輸速率。另外,專用功能芯片的常規(guī)單流本質(zhì)直接需要主處理器在執(zhí)行數(shù)據(jù)流初始化、傳輸控制和任何所需要的數(shù)據(jù)流混合或多路轉(zhuǎn)換操作時大量參與。結(jié)果,盡管專用功能芯片可以顯著提高個人計算機或工作站系統(tǒng)的多媒體和數(shù)字信號處理能力,但是給主處理器留下大量而通常是極大的處理負擔。特別在需要復雜和高速信號處理運算的場合已在外圍硬件系統(tǒng)中采用了通用數(shù)字信號處理器。常規(guī)DSP芯片能夠以非常適合數(shù)據(jù)流處理的運算結(jié)構(gòu)提供最高50MIPS。一般來說,這樣的DSP芯片較貴,并需要較強的軟件開發(fā)程序來實現(xiàn)執(zhí)行其預定功能所需的軟件算法。然而,DSP芯片結(jié)構(gòu)一般不為控制擴展數(shù)據(jù)傳輸操作和存儲器管理功能優(yōu)化。反之,其結(jié)構(gòu)通常為對內(nèi)部專用存儲器和外部本地連接的存儲器或直接連接的專用功能外圍芯片的讀、處理和寫數(shù)據(jù)優(yōu)化。結(jié)果,主處理器必須再次被大量牽涉到向作為外圍硬件實現(xiàn)的DSP的存儲器空間的數(shù)據(jù)傳輸之中。不幸的是,這一般會導致DSP遭受和在專用功能芯片的場合對主處理器可獲得的和可支持的性能的同樣限制。為限制在向多媒體外圍硬件傳輸數(shù)據(jù)時的中斷,并從而改善可從主處理器獲得的可支持數(shù)據(jù)傳輸速率,由主處理器執(zhí)行的常規(guī)操作系統(tǒng)可以用一個小的、占先的實時內(nèi)核諸如SPOX擴充。該內(nèi)核可以作為一個支持多媒體外圍硬件的實時中斷和數(shù)據(jù)傳輸需求的低級設備驅(qū)動器來實現(xiàn)。雖然這樣的實時內(nèi)核的確傾向于保證向或從DSP存儲器空間進行的最大可支持的數(shù)據(jù)傳輸,但是仍給主處理器帶來了同樣的數(shù)據(jù)流傳輸管理開銷以及實時內(nèi)核自身的額外執(zhí)行開銷。結(jié)果,當前通常為個人計算機和工作站系統(tǒng)實現(xiàn)的多媒體、網(wǎng)絡和通信外圍硬件子系統(tǒng)不能通過增加外圍硬件來很好地滿足有效提供附加處理能力的需求。各種基于主處理器的信號處理結(jié)構(gòu),諸如本地信號處理(NSP)和Direct-X已被提出并在幾個目的中在很大程度上被定義來解決下述需求,即給為多媒體、網(wǎng)絡和相關(guān)通信操作的操作系統(tǒng)形成一個良好的軟件接口?;谥魈幚砥鞯男盘柼幚斫Y(jié)構(gòu)依賴至少執(zhí)行高級信號處理功能的主處理器自身的特定應用。這種結(jié)構(gòu)具有至少兩個立即的好處。第一個好處是,在最終傳輸給外圍硬件之前大量處理數(shù)據(jù)流時,這些數(shù)據(jù)流被混合、多路轉(zhuǎn)換或運算縮減以減輕在把數(shù)據(jù)傳輸?shù)酵鈬布r涉及的處理開銷。從而,個人計算機或工作站系統(tǒng)的有效處理性能可以有不同程度的改善。第二好處是,把一個可能的綜合應用編程接口(API)提交給操作系統(tǒng),從而虛擬化物理或功能外圍硬件的特定工具。多媒體、網(wǎng)絡和有關(guān)的通信應用因此可以有效地采取比由外圍硬件的任何特定工具實際所能提供的更廣泛或簡單地說不同的對希望功能的支持。在外圍硬件的一個特定例不能直接對某一特定功能提供直接支持的場合,該功能由主處理器作為基于主處理器的信號處理器在軟件中向下執(zhí)行到由外圍硬件的該特定例支持的功能級來實現(xiàn)。盡管基于主處理器的信號處理可以提高個人計算機或工作站系統(tǒng)在執(zhí)行多媒體、網(wǎng)絡和通信功能時的效率,但是許多由基于主處理器的信號處理支持的功能仍然是高強度運算型的。于是,基于主處理器的信號處理代表主處理器的最直接負擔。另外,盡管基于主處理器的信號處理的確有可能大量減少傳輸?shù)酵鈬布驈耐鈬布鬏攣淼臄?shù)據(jù)量,但是實際上,對主處理器的運算負擔將不再被顯著影響,無論怎樣,這種負擔都將保持很大。因此,本發(fā)明的一般目的是提供一個外圍I/O控制器,它支持在一個中央處理器和多個與多媒體、網(wǎng)絡和通信有關(guān)的外圍設備之間建立的一個總帶寬很大的數(shù)據(jù)傳輸路徑上的多重、并行可變帶寬的數(shù)據(jù)流。在本發(fā)明中,這是通過一個數(shù)據(jù)信道控制器來實現(xiàn)的,該數(shù)據(jù)信道控制器同包含有基本存儲器的基本計算機系統(tǒng)耦合,用于通過包括第一緩沖存儲器的基本系統(tǒng)接口、包括多個第二緩沖存儲器的存儲器池、以及每一個都包括第三緩沖存儲器的一個或多個外設設備管理多重數(shù)據(jù)流的傳輸。一與所述存儲器池耦合的判定器系統(tǒng),用于響應于第一和第二請求信號,對一預定的第一緩沖存儲器有選擇性地啟動數(shù)據(jù)的傳輸。各外設設備通過它們的第三緩沖存儲器對外設接口傳輸數(shù)據(jù),所述外設接口的特征在于其每一個都具有預定的數(shù)據(jù)傳輸速率。外設設備根據(jù)在相關(guān)第三緩沖存儲器中數(shù)據(jù)的出現(xiàn),在第一預定條件下向判定器系統(tǒng)發(fā)出第一個請求信號,以獲得在相應第二和第三緩沖存儲器間的數(shù)據(jù)傳輸。基本系統(tǒng)接口根據(jù)在第二緩沖存儲器中數(shù)據(jù)的出現(xiàn),在第二預定條件下,提供第二個請求信號,以通過第一緩沖存儲器在第二緩沖存儲器和基本存儲器間獲得相應數(shù)據(jù)的傳輸。使用本發(fā)明的多重并行數(shù)字數(shù)據(jù)流通道控制器的計算機系統(tǒng)因而可以支持多個I/O數(shù)據(jù)流向或從一個輔助數(shù)據(jù)處理單元的并發(fā)實時傳輸。該計算機系統(tǒng)可以包括一個第一處理單元,它包括用于存儲多個數(shù)據(jù)流的第一存儲器,這些數(shù)據(jù)流的特征在于,每個具有各自的數(shù)據(jù)傳輸速率。該計算機系統(tǒng)還包括第二處理單元,用于在多個數(shù)據(jù)流的數(shù)據(jù)段內(nèi)操作數(shù)據(jù),還包括一個連接在第一和第二處理單元之間的通道控制器,用于在第一和第二處理器之間傳輸多個數(shù)據(jù)流。通道控制器用于根據(jù)數(shù)據(jù)流各自的數(shù)據(jù)傳輸速率有選擇地傳輸多個數(shù)據(jù)流的數(shù)據(jù)段。這樣,本發(fā)明的一個優(yōu)點是,它給主處理器系統(tǒng)提供一個動態(tài)分配的多通道控制接口,同時又允許靈活的編程能力和對通道控制器操作的控制。本發(fā)明的另一個優(yōu)點是,它通過執(zhí)行基本自治的數(shù)據(jù)傳輸功能和動態(tài)流管理使主處理器性能的負擔減至最小。通道控制器支持內(nèi)部中斷管理,它使主處理器和DSP中斷支持負擔減至最小,從而允許和支持通過一個由綜合中斷源管理的、連接主機和輔助信號處理單元的數(shù)據(jù)流通道實現(xiàn)實時多重并行通道信號處理。本發(fā)明的再一個優(yōu)點是,它使通過通道控制器的動態(tài)大小緩沖器的速率控制的多數(shù)據(jù)流,最優(yōu)地利用最大可用外設I/O通道數(shù)據(jù)帶寬。數(shù)據(jù)流傳輸獨立于數(shù)據(jù)流的類型。通道控制器的每一數(shù)據(jù)流通道作為邏輯獨立的通道存在。這些通道可以順序組合,以提供通過另外或內(nèi)置的信號處理電路以及外部外設信號處理單元的離散數(shù)據(jù)路由選擇路徑。本發(fā)明的再一個優(yōu)點是,所提供的自治總線主控器操作不再需要對常規(guī)直接存儲器訪問操作以及主處理器對通過I/O通道控制器的數(shù)據(jù)傳輸?shù)慕槿?。?shù)據(jù)流段的交織傳輸允許數(shù)字數(shù)據(jù)流向通道控制器和通過通道控制器進行有效的并發(fā)并行傳輸。這大大緩和對主應用程序描述表的切換和大多數(shù)主用戶中斷內(nèi)核方式切換的需要,而對多重并發(fā)數(shù)據(jù)流提供實時傳輸支持。本發(fā)明還有一個優(yōu)點是,它通過保證以由每一數(shù)據(jù)傳輸通道的數(shù)據(jù)流外圍設備建立的動態(tài)數(shù)據(jù)速率在數(shù)據(jù)源和數(shù)據(jù)受點之間的有效連續(xù)數(shù)據(jù)流,提供對可變速率實時信號處理的動態(tài)支持。本發(fā)明的又一個優(yōu)點是,它對一些輔助信號處理單元提供可容易擴充的支持,這些輔助信號處理單元包括完全可編程的單元和可提供部分或完全用硬件實現(xiàn)功能的其它單元。本發(fā)明的再一個優(yōu)點是,通道控制器作為一個組合功能外圍設備是可編程的,它通過大大擴展數(shù)據(jù)強化外設子系統(tǒng)的獨立和協(xié)同的信號處理功能而有效地減少計算機系統(tǒng)的成本。通過結(jié)合附圖,參照下述對本發(fā)明的詳細說明,可以更好地理解本發(fā)明的所有優(yōu)點和特征。附圖中相同的標號在所有附圖中表示相同的部分,其中圖1a是一個方框圖,它表示實現(xiàn)根據(jù)本發(fā)明的I/O通道控制器子系統(tǒng)的第一實施例的一個個人計算機類型的系統(tǒng);圖1b是根據(jù)本發(fā)明的第二實施例的I/O通道控制器子系統(tǒng)的方框圖;圖2是與本發(fā)明的一個另外優(yōu)選實施例一致的基于專用功能嵌入式I/O通道的系統(tǒng)的方框圖;圖3表示I/O通道控制器子系統(tǒng)與操作系統(tǒng)和多重外部硬件接口相關(guān)的軟件結(jié)構(gòu)關(guān)系;圖4表示由相關(guān)于一個操作系統(tǒng)建立的根據(jù)本發(fā)明的I/O通道控制器支持的高級控制和物理數(shù)據(jù)流;圖5a是本發(fā)明的I/O通道控制器的優(yōu)選實施例的詳細方框圖;圖5b是本發(fā)明的總線傳輸控制系統(tǒng)的優(yōu)選實施例的詳細方框圖;圖5c是本發(fā)明的集成外圍接口的優(yōu)選CODEC實施例的詳細方框圖;圖5d是本發(fā)明的一個優(yōu)選實施例的集成中斷控制器的外圍設備的詳細方框圖6是根據(jù)本發(fā)明的一個優(yōu)選實施例構(gòu)造的I/O通道控制器的FIFO池子系統(tǒng)的詳細方框圖;圖7是本發(fā)明的I/O通道控制器的優(yōu)選實施例的總線傳輸單元控制器子系統(tǒng)的詳細方框圖;圖8ac是控制流程圖,說明根據(jù)本發(fā)明的優(yōu)選實施例基于I/O通道控制器的系統(tǒng)的最佳操作方式。Ⅰ.I/O控制器系統(tǒng)結(jié)構(gòu)圖1a提供優(yōu)選實現(xiàn)個人計算機結(jié)構(gòu)的計算機系統(tǒng)10的一個方框圖,它連接到一個多功能I/O外圍控制器硬件系統(tǒng)(I/O通道控制器)22。通常為IntelPentiumCPU,MotorolaPowerPCCPU等的主處理器12通過處理器總線16連接到系統(tǒng)主存儲器14。一個常規(guī)外圍部件互連(PCI)橋接口18提供在處理器總線16和一個夾層PCI總線20之間的高性能數(shù)據(jù)和控制連接。多功能外圍系統(tǒng)22通過常規(guī)PCI適配器總線連接器24連接到PCI總線20。I/O通道控制器內(nèi)核26主要負責管理相對于PCI總線20的數(shù)據(jù)和控制信號傳輸,它也連接到適配器24。I/O通道控制器內(nèi)核26用作基本自治總線主控器外圍控制器,它支持在PCI總線20和系統(tǒng)22之間的多重并發(fā)數(shù)據(jù)和控制信號傳輸。這些并發(fā)傳輸優(yōu)選作為獨立的數(shù)據(jù)流和執(zhí)行控制線程對來管理,其中每一數(shù)據(jù)流由通過I/O通道控制器26的離散塊傳輸組成,這些離散塊包括一個或多個字節(jié)數(shù)據(jù)。支持并發(fā)數(shù)據(jù)流的數(shù)據(jù)塊互相交織在一起,有效地建立并發(fā)流式數(shù)據(jù)傳輸。根據(jù)本發(fā)明,數(shù)據(jù)塊的交織由控制器子系統(tǒng)22決定,并一般來說獨立于主處理器12的執(zhí)行。由I/O通道控制器內(nèi)核26實現(xiàn)的數(shù)據(jù)塊的交織反映單個數(shù)據(jù)流的各自要求的傳輸速率,其由所傳輸?shù)臄?shù)據(jù)流的本質(zhì)決定。因此,在流式數(shù)據(jù)代表固定數(shù)據(jù)頻率音頻信號流的場合,在音頻數(shù)據(jù)流中的數(shù)據(jù)塊的交織可能變化,雖然通常維持一個反映由音頻流編碼器/解碼器(CODEC)獨立要求的數(shù)據(jù)流傳輸速率的固定吞吐率。在所要求的數(shù)據(jù)率不恒定的場合,諸如使用可變速率音頻或視頻壓縮的場合,數(shù)據(jù)塊交織可能仍要再次根據(jù)適合壓縮數(shù)據(jù)流所要求的數(shù)據(jù)傳輸速率來進一步變化。在本發(fā)明的一個優(yōu)選實施例中,I/O通道控制器內(nèi)核26支持一些直接連接的串行總線外圍設備28。這些串行總線外圍設備28優(yōu)選包括實現(xiàn)特定高速、通常面向串行的數(shù)據(jù)傳輸功能的專用功能芯片。典型的串行總線外圍設備28包括提供高速串行通用同步/異步速率傳輸(USART)功能的專用功能芯片。另一個可能的串行總線外圍設備28可能采用提供基于低成本硬件的音頻子系統(tǒng)的專用功能芯片。I/O通道控制器內(nèi)核26還優(yōu)選提供一個高速、通用數(shù)據(jù)和控制總線30以支持廣范圍的數(shù)據(jù)處理和傳輸外圍設備。一個或多個數(shù)字信號處理器(DSP)32、36和關(guān)聯(lián)的DSPRAM34可以連接到總線30,用以對間接連接的外圍設備諸如串行總線外圍設備28、并行總線外圍設備38和主處理器12提供高性能運算支持。雖然依賴于DSP32、36的特定應用,DSPRAM34還優(yōu)選存在于DSP32、36的內(nèi)部,并映射到一個可由總線30訪問的公共地址空間。DSP32、36還優(yōu)選為直接連接的外圍設備諸如串行總線外圍設備40、42提供接口控制支持。DSP32、36允許各種不同的運算和控制功能通常彼此獨立和并行執(zhí)行。這樣,例如,數(shù)字信號處理器32可以實現(xiàn)一個范圍的信號處理功能,其對支持各種遠程通信的特定串行總線設備40適合。這樣的數(shù)字信號處理器32可以采用執(zhí)行對實現(xiàn)高速傳真調(diào)制解調(diào)器、綜合服務數(shù)字網(wǎng)絡(ISDN)連接和無線數(shù)據(jù)收發(fā)兩用機系統(tǒng)必需的協(xié)議和信號處理的信號處理算法。直接連接到數(shù)字信號處理器32的串行總線外圍設備40可以適當?shù)匕ㄒ粋€常規(guī)電話系統(tǒng)(POTS)接口、一個ISDN接口和一個低功率的符合FCC的RF或IR數(shù)據(jù)收發(fā)兩用機。第二數(shù)字信號處理器36可以獨立地或者協(xié)同地提供音頻和視頻信號處理功能,如3D音頻合成、基于波表的音頻信號生成和混合、話音和音樂再現(xiàn)和語音識別。直接連接到數(shù)字信號處理器36的串行總線外圍設備42因此可包括合適的CODEC和濾波器,以執(zhí)行高速雙向數(shù)字到模擬的信號變換。并行總線外圍設備38優(yōu)選直接連接到總線30以支持高速并行功能。所支持的并行功能可以包括常規(guī)高速雙向并行數(shù)據(jù)傳輸、高速以太網(wǎng)型網(wǎng)絡接口、以及到常規(guī)磁盤驅(qū)動器、CD-ROM驅(qū)動器等的常規(guī)EIDE和SCSI接口。并行總線外圍設備30也可以包括一個通過視頻控制器到視頻顯示控制器的幀緩沖器的直接或間接接口。并行總線外圍設備的一個附加功能是通過直接連接到一個CODEC的一個或多個串行控制線41提供簡單的并行/串行變換功能,否則它作為一個直接連接的串行總線外圍設備42被支持。實際上,串行連接41允許其它DSP32或更可能是主處理器12通過對總線30的直通連接對CODEC進行相對直接的控制訪問。在實現(xiàn)I/O通道控制器26時,在各種串行和并行總線外圍設備28、38、40、42和數(shù)字信號處理器32、36之間為數(shù)據(jù)傳輸?shù)母偁幾钚 S啥喙δ芡鈬到y(tǒng)22支持的最大數(shù)據(jù)吞吐量首先由在PCI總線20和系統(tǒng)存儲器14之間的可用數(shù)據(jù)傳輸帶寬有效地限制。對外圍系統(tǒng)22可支持的數(shù)據(jù)吞吐量的另外某些實際限制來自數(shù)字信號處理器32、36的可用運算性能。然而,這種限制可以以一些不同的方式克服,這些方式包括增加連接到總線30的數(shù)字信號處理器的數(shù)目和把運算負載在并行的處理器中間分布。另外,使用高性能數(shù)字信號處理器將提供更大的運算吞吐量?,F(xiàn)在參考圖1b所示另一個優(yōu)選的外圍系統(tǒng)44。I/O通道控制器內(nèi)核46提供對數(shù)字信號處理器32加強的支持,它使數(shù)字信號處理器32避開了潛在的時間要求嚴格的要經(jīng)過串行總線外圍設備28以及可能的話并行總線外圍設備30的數(shù)據(jù)傳輸路徑。這樣,當數(shù)字信號處理器32可以處理直接通過串行總線外圍設備40連接的數(shù)據(jù)流時,使用I/O通道控制器內(nèi)核46自身來控制在串行和并行總線外圍設備28、38和DSPRAM34之間所有數(shù)據(jù)傳輸,使數(shù)字信號處理器32避免了許多(如果不是大多數(shù)的話)存儲管理和重復數(shù)據(jù)傳輸功能。反過來,允許DSP32花費更多時間在運算操作上而不是在可能不是最合適它的擴充數(shù)據(jù)傳輸操作上。結(jié)果,數(shù)字信號處理器32使用簡單的存儲器加載和存儲操作幾乎只對在RAM34和數(shù)字信號處理器32之間移動的數(shù)據(jù)進行操作。由數(shù)字信號處理器32處理的和在RAM34中存儲的數(shù)據(jù)的后繼傳輸被傳送到串行和并行總線外圍設備28、38,而不需要數(shù)字信號處理器32進行任何大量的額外處理。圖2示出本發(fā)明的一個嵌入應用。系統(tǒng)10′可以用作一個智能的、獨立的或遠程控制的數(shù)據(jù)流處理器。一個例如Intel80196的嵌入式處理器和優(yōu)選由DRAM和閃速EPROM組成的主存儲器14′由處理器總線16′互連。I/O通道控制器內(nèi)核26′支持在處理器總線16′和I/O總線30′之間的一個或多個可能重疊的數(shù)據(jù)流的傳輸。一個或多個DSP32′和任何數(shù)目的網(wǎng)絡外圍設備,諸如網(wǎng)絡控制器38′、38”優(yōu)選連接到I/O總線30′。DSP32′可以直接服務由網(wǎng)絡控制器38′、38”為支持其各自的網(wǎng)絡數(shù)據(jù)流傳輸功能而產(chǎn)生的中斷。DSP可以使用I/O通道控制器實際控制通過I/O總線30′和,如果需要,直到主存儲器14′的數(shù)據(jù)傳輸。在一個優(yōu)選的嵌入應用的實施例中,嵌入系統(tǒng)10′用作一個智能高性能網(wǎng)絡數(shù)據(jù)路由器。嵌入CPU12′執(zhí)行在主存儲器14′的閃速EPROM中提供的控制程序,其支持常規(guī)SNMP路由器管理功能、數(shù)據(jù)收集和診斷功能。DSP32′執(zhí)行來自內(nèi)部DSP存儲器的控制程序,其要么是從主存儲器14′由嵌入CPU12′下載的或者是在DSP32′內(nèi)或與之關(guān)聯(lián)的閃速EPROM中提供的。DSP控制程序提供建立和管理在DSP存儲器內(nèi)的數(shù)據(jù)路由和篩選樹。當數(shù)據(jù)包由網(wǎng)絡控制器38′接收時,源和目的包數(shù)據(jù)通過并由DSP32′相對于路由和篩選樹處理以決定是否和怎樣傳遞該包。DSP32′和嵌入CPU12′兩者都可以應用于執(zhí)行協(xié)議轉(zhuǎn)換和實現(xiàn)所需的安全協(xié)議。Ⅱ.軟件系統(tǒng)結(jié)構(gòu)在圖3的框50中示出與計算機系統(tǒng)10主要部件關(guān)聯(lián)的數(shù)據(jù)流方式的I/O通道控制器的操作。向外的數(shù)據(jù)流實際上從一個由主處理器12執(zhí)行的與操作系統(tǒng)有關(guān)的應用程序產(chǎn)生。在應用程序?qū)?2內(nèi)執(zhí)行應用程序,導致數(shù)據(jù)56傳輸?shù)街鞔鎯ζ?4內(nèi)的主存儲器存儲空間54。這一數(shù)據(jù)可以進一步通過用于基于主處理器的信號處理器的主處理器12執(zhí)行的應用程序來導向。這樣,數(shù)據(jù)流60可以反復地在存儲器空間54和主信號處理層58之間傳輸。由主處理器12實際執(zhí)行的特定信號處理基本上由各種設備驅(qū)動程序決定,這些驅(qū)動程序一起實現(xiàn)基于該特定實現(xiàn)的主處理器的信號處理器API(HBSPAPI)全部或者可用的功能。直接或間接地,HBSPAPI調(diào)用最終變成對I/O通道控制器設備驅(qū)動程序的調(diào)用,后者啟動數(shù)據(jù)傳輸控制線程把數(shù)據(jù)流64從主存儲器空間54傳輸?shù)絀/O通道控制器內(nèi)核62,來進一步傳輸和可能的處理。一旦執(zhí)行I/O通道控制器設備驅(qū)動程序的主處理器12在主存儲器空間54內(nèi)建立起決定數(shù)據(jù)流傳輸64的控制線程,則主處理器12只是簡單地允許處理I/O通道控制器62所要求的控制線程。之后,I/O通道控制器內(nèi)核62負責實際數(shù)據(jù)流傳輸?shù)膱?zhí)行。主處理器在主存儲器空間54通過構(gòu)造一個或多個鏈接的總線傳輸單元(BTU)控制塊建立控制線程,把在主存儲器空間54內(nèi)提供的流式數(shù)據(jù)與該控制線程關(guān)聯(lián)。執(zhí)行I/O通道控制器設備驅(qū)動程序的主處理器12用初始BTU控制塊初始化I/O通道控制器62,并編程I/O通道控制器62的某些配置寄存器以配置數(shù)據(jù)流通過I/O通道控制器62的特定路由選擇。之后,主處理器12不參加數(shù)據(jù)流64到I/O通道控制器內(nèi)核62的實際傳輸。數(shù)據(jù)流傳輸在I/O通道控制器內(nèi)核62的直接控制下執(zhí)行,I/O通道控制器內(nèi)核62作為仲裁主處理器12對主存儲器空間54訪問的總線主控器外圍設備。結(jié)果,向I/O控制器62的多重并行數(shù)據(jù)流傳輸?shù)膯雍屠^續(xù)執(zhí)行過程,如由各控制線程所定義的那樣實際上彼此獨立地執(zhí)行,并可能由I/O通道控制器內(nèi)核62異步啟動和完成。每一總線傳輸單元至少隱式指定一個相關(guān)數(shù)據(jù)流的目的地址。一個數(shù)據(jù)流可能指向數(shù)字信號處理器68的RAM存儲器空間或者各種直接連接的串行和并行總線外圍設備28、38的一個特定外部硬件接口74。當數(shù)據(jù)流70被數(shù)字信號處理器68處理時,結(jié)果數(shù)據(jù)72可以被傳輸?shù)酱锌偩€外圍設備40、42的一個直接連接的外部硬件接口74。另一方案為,結(jié)果數(shù)據(jù)可以存儲回DSPRAM空間。從DSPRAM,數(shù)據(jù)流72隨后可以由數(shù)字信號處理器再次傳輸?shù)饺魏沃苯舆B接的串行總線外圍設備40、42。定義傳輸DSPRAM存儲的數(shù)據(jù)流69、80的一個控制線程的總線傳輸單元控制塊既可以在系統(tǒng)主存儲器14也可以在DSP存儲器34中提供。優(yōu)選由主處理器12在系統(tǒng)存儲器14中建立DSP控制線程總線傳輸單元控制塊。主處理器12總體執(zhí)行DSPRAM32存儲器空間的管理,因而允許DSP32、36針對DSPRAM34的應用彼此獨立操作。定義DSP總線傳輸單元控制塊以控制一個或多個通過I/O通道控制器內(nèi)核62或者在其控制下一個或多個數(shù)據(jù)流向直接連接到I/O通道控制器62的串行或并行總線外圍設備28、38的外部硬件接口74的傳輸。另外的方案為,可以引導I/O通道控制器內(nèi)核62把被處理的數(shù)據(jù)流84返回到主存儲器空間54,以便可能為基于主處理器的信號處理器58繼續(xù)處理或由應用程序52使用。數(shù)字信號處理器68和I/O通道控制器內(nèi)核62接收從與其直接連接的外部硬件接口74來的輸入數(shù)據(jù)流76、82。在數(shù)字信號處理器68直接接收數(shù)據(jù)流76的場合,優(yōu)選處理該數(shù)據(jù)流并存儲到DSPRAM34。這樣存儲的數(shù)據(jù)的后繼傳輸由優(yōu)選在系統(tǒng)主存儲器14內(nèi)部提供的BTU控制塊協(xié)調(diào)。該DSPBTU控制線程引導數(shù)據(jù)流69的傳輸?shù)絀/O控制器62,以便作為對主存儲器空間54的數(shù)據(jù)流84傳輸,或作為數(shù)據(jù)流80重新引導到外部硬件接口74。從直接連接到I/O通道控制器內(nèi)核62的外部硬件接口74來的向內(nèi)的數(shù)據(jù)流82作為數(shù)據(jù)流84被重新引導到主存儲器空間54。另外的方案為,數(shù)據(jù)流82可以作為數(shù)據(jù)流70導向DSPRAM34。在后一種場合,該數(shù)據(jù)流通常由數(shù)字信號處理器68處理并作為數(shù)據(jù)流72直接提供給外部硬件接口74或者作為數(shù)據(jù)流69傳遞給I/O通道控制器62以便作為數(shù)據(jù)流80返回外部硬件接口74或作為數(shù)據(jù)流84返回到主存儲器空間54。一般來說,向內(nèi)的數(shù)據(jù)流最終導向主存儲器空間54。一旦在主存儲器空間54中出現(xiàn),數(shù)據(jù)流60可以由基于主處理器的信號處理器58繼續(xù)處理。最后,代表被完全處理的向內(nèi)數(shù)據(jù)流的數(shù)據(jù)流86可以由操作系統(tǒng)從主存儲器空間54向應用程序52返回。本發(fā)明的數(shù)據(jù)流管理系統(tǒng)50這樣提供多重數(shù)據(jù)路徑,它們可以靈活定義并重復經(jīng)過,通過基于主處理器的信號處理器58、I/O通道控制器62、數(shù)字信號處理器68和通過外部硬件接口74連接的外部硬件的有序組合或再組合,實際上能獲得多個并行數(shù)據(jù)流的最大處理量。系統(tǒng)50的另一個視圖,如圖4所示,表示根據(jù)本發(fā)明在計算機系統(tǒng)10內(nèi)建立的控制和數(shù)據(jù)流路徑。應用程序?qū)?0包括任何數(shù)目的協(xié)同執(zhí)行的應用程序92、94。這些應用程序92、94使應用編程接口(API)調(diào)用進入操作系統(tǒng)層96,操作系統(tǒng)層96包括一個基本操作系統(tǒng)98和通常包括MIDI100、TAPI102、和語音API104操作系統(tǒng)擴展的操作擴展部分。任何數(shù)目的符合例如用于Ring3操作系統(tǒng)擴展的Direct-XAPI規(guī)范的附加的或另外的API可以在操作系統(tǒng)層96內(nèi)建立。另外為方便起見還在操作系統(tǒng)層96中示出邏輯上與操作系統(tǒng)98共存的存儲器塊106。設備驅(qū)動程序接口層108包括各種為支持在操作系統(tǒng)層96和作為外圍設備層114的部分實現(xiàn)的任何部件之間通信和傳輸而需要的Ring0設備驅(qū)動程序。特別是,設備驅(qū)動程序接口層108包括通過主處理器12的執(zhí)行提供對建立在外圍設備控制器層114內(nèi)的I/O通道控制器116支持的中斷處理程序110和設備驅(qū)動程序112。最后,根據(jù)本發(fā)明,提供控制器外圍設備層118。該控制器外圍設備層118一般包括數(shù)字信號處理器120、可由DSP120訪問的存儲器122和可以由DSP120和I/O通道控制器116兩者訪問的專用功能外部硬件124。在一個典型的控制流程中,應用程序A92通過與操作系統(tǒng)層96的常規(guī)交互在存儲器106內(nèi)建立的數(shù)據(jù)流。隨著至少該數(shù)據(jù)流的初始部分在存儲器106中的建立,設備驅(qū)動程序112由操作系統(tǒng)層96調(diào)用,準備讓數(shù)據(jù)流通過I/O通道控制器116向存儲器122或控制器外圍設備層118的外部硬件124傳輸。設備驅(qū)動程序112在存儲器106內(nèi)建立一個或多個BTU控制塊,它們定義了實現(xiàn)數(shù)據(jù)流傳輸必需的控制線程。控制線程的初始BTU由設備驅(qū)動程序112編程到I/O通道控制器116,并提供許可I/O通道控制器116對編程BTU操作的信號。之后,I/O通道控制器116的操作在完成由編程到I/O通道控制器116中的BTU和任何其它在存儲器106內(nèi)作為定義數(shù)據(jù)流傳輸?shù)目刂凭€程部分的各BTU所定義的數(shù)據(jù)流傳輸時基本上是自治的。在數(shù)據(jù)流傳輸?shù)哪康牡厥谴鎯ζ?22的場合,設備驅(qū)動程序112首先在存儲器106內(nèi)建立另一系列一個或多個BTU控制塊以建立適合于管理數(shù)據(jù)流的向DSP側(cè)傳輸?shù)目刂凭€程。初始BTU由設備驅(qū)動程序112編程到I/O通道控制器116。接著,設備驅(qū)動程序112可以發(fā)布一個命令給數(shù)字信號處理器120,指定DSP的希望的功能。最好是,該命令通過使用編程到一個或多個寄存器的編程I/O(PIO)發(fā)布,這些寄存器由I/O通道控制器內(nèi)核116保持并可由數(shù)字信號處理器120響應指示已發(fā)布一個命令消息的DSP中斷讀取。在響應發(fā)布的命令時,DSP120優(yōu)選按需初始化來執(zhí)行被命令的功能,然后提供信號136給I/O通道控制器116,允許控制器對預編程的BTU操作。在響應具有兩個至少隱式連接在一起的被允許的BTU時,I/O通道控制器116啟動自治數(shù)據(jù)傳輸126直接從存儲器106檢索由主處理器側(cè)BTU定義的數(shù)據(jù)流的部分,暫存該數(shù)據(jù)到內(nèi)部FIFO池,并自治地傳輸該數(shù)據(jù)到由DSP側(cè)的BTU定義的存儲器122內(nèi)的順序位置。I/O通道控制器在訪問存儲器106的自治操作優(yōu)選作為一個總線主控器設備,它直接參加由主處理器12的硬件總線管理控制器和PCI橋接口18支持的存儲器周期仲裁。其結(jié)果,在實際執(zhí)行數(shù)據(jù)傳輸126時基本上無需使用主處理器12的執(zhí)行周期。實際上需要主處理器12的執(zhí)行周期來形成存儲器106中的數(shù)據(jù)流,并在常規(guī)執(zhí)行設備驅(qū)動程序112時初始建立和管理一個或多個主處理器側(cè)和DSP側(cè)定義數(shù)據(jù)流傳輸?shù)目刂凭€程的BTU系列。然而在由主處理器12建立和管理BTU中需要的執(zhí)行周期與在應用程序92、94的控制下初始處理然后往存儲器106存儲數(shù)據(jù)流所需要的執(zhí)行周期相比相對來說少。另外,I/O通道控制器116的操作允許在存儲器106中形成的數(shù)據(jù)流,與在I/O通道控制器116的控制下實際傳輸?shù)臄?shù)據(jù)流126松散同步。結(jié)果,主處理器12在建立和管理主處理器側(cè)BTU時對設備驅(qū)動程序的有限執(zhí)行對于通過I/O通道控制器116的數(shù)據(jù)傳輸來說無需緊密配合的實時要求。在支持I/O通道控制器116中對主處理器12執(zhí)行過程的松同步由于I/O通道控制器內(nèi)核116本身的自治命令驅(qū)動操作和FIFO池緩沖功能而更加便利。I/O通道控制器內(nèi)核116在數(shù)據(jù)流傳輸進行期間能夠自治地從存儲器106和存儲器122兩者中獲取相繼的BTU,雖然優(yōu)選只從存儲器106中取。這樣,當由BTU控制的數(shù)據(jù)流的部分完成時,I/O通道控制器內(nèi)核116可以從存儲器中獲取該控制線程中的下一個BTU,并用新取出的BTU代替完成的BTU。這樣,只要在控制線程中的后繼源和目的地控制BTU被定義以提供數(shù)據(jù)流的持續(xù)傳輸,則引向存儲器122的向外的數(shù)據(jù)流自治傳輸。DSP側(cè)BTU完成、重新加載和重新允許的速率有效地反映由數(shù)字信號處理器120對執(zhí)行每一命令的功能所要求的數(shù)據(jù)吞吐率。當數(shù)據(jù)流目的地是外部硬件124時發(fā)生簡單的操作方式。I/O通道控制器116通過數(shù)據(jù)路徑130為傳輸?shù)皆撏獠坑布?24的數(shù)據(jù)提供有限但恰當?shù)木彌_。當外部硬件124從I/O通道控制器116要求數(shù)據(jù)時,則使用當前BTU控制從存儲器106到I/O通道控制器內(nèi)核116的數(shù)據(jù)流的傳輸。當外部硬件124取出由I/O通道控制器內(nèi)核116緩沖的可用數(shù)據(jù)時,通道控制器116自治地操作從由當前BTU定義的存儲器106中的位置處重新填充緩沖器。當外部硬件124使用由當前BTU所指定的數(shù)據(jù)時,I/O通道控制器116從存儲器106自治地加載控制線程中下一順序的BTU以維持數(shù)據(jù)流126的傳輸。輸入數(shù)據(jù)流一般以類似方式由I/O通道控制器內(nèi)核116處理。由DSP120從直接連接的外部硬件接收的數(shù)據(jù)流,可以由DSP120處理并存儲到存儲器122中。主處理器12預期每一輸入數(shù)據(jù)流的接收并在存儲器106中形成一個或多個DSP側(cè)的BTU的一個相應的控制線程,其初始BTU被編程到I/O通道控制器內(nèi)核116中,隨后由DSP120允許。一個或多個主處理器側(cè)BTU的控制線程還要在存儲器106中再次建立,其初始BTU被編程到I/O通道控制器內(nèi)核116中。雖然是空的,但是這一初始主處理器側(cè)BTU優(yōu)選設定為允許狀態(tài)。然后,把指定該功能由DSP120執(zhí)行的命令消息發(fā)送給I/O通道控制器內(nèi)核116中的一個消息存儲寄存器。然后優(yōu)選該消息由DSP120應答,初始化請求的功能,并由DSP120接收并處理外部提供的數(shù)據(jù)流的一部分,存儲在存儲器122中一個已知地址塊內(nèi)。然后給I/O通道控制器內(nèi)核116提供一個允許信號136激活初始DSP側(cè)BTU并許可自治傳輸接收的數(shù)據(jù)流。當DSP側(cè)BTU指定的數(shù)據(jù)流傳輸完成后,下一DSP側(cè)BTU裝入I/O通道控制器內(nèi)核116,并處于禁止狀態(tài)。同時,接收外部提供的數(shù)據(jù)流的下一部分并處理入存儲器122內(nèi)由下一DSP側(cè)BTU指定的下一已知地址塊內(nèi)。而且,一旦該地址塊已填充了處理數(shù)據(jù),則響應允許信號136激活當前DSP側(cè)BTU。一般來說,存儲器122中的兩個地址塊為相繼交替處理單一數(shù)據(jù)流而相繼交替使用。當用處理過的輸入數(shù)據(jù)流填充由存儲器106中的當前主處理器側(cè)BTU指定的地址塊時,該BTU完成,而I/O通道控制器內(nèi)核116給中斷處理程序110發(fā)布中斷132,后者調(diào)用設備驅(qū)動程序112至少發(fā)出一個信號,指示該地址塊可由主處理使用。優(yōu)選指定存儲器106中另一地址塊的下一BTU也自治地由I/O通道控制器內(nèi)核116加載到允許狀態(tài),繼續(xù)接收處理過的到來的數(shù)據(jù)流。根據(jù)合理的假定,在I/O通道控制器內(nèi)核116和存儲器106之間的數(shù)據(jù)傳輸比DSP接收、處理和存儲數(shù)據(jù)到存儲器122的速率快很多,在I/O通道控制器116內(nèi)最小但恰當?shù)木彌_可以保證由命令驅(qū)動的數(shù)據(jù)流傳輸128不會出現(xiàn)數(shù)據(jù)過速。I/O通道控制器內(nèi)核116還為任何直接從外部硬件124接收的數(shù)據(jù)流提供數(shù)據(jù)緩沖。一般說來,激活外部硬件124使其響應主處理器執(zhí)行設備驅(qū)動程序112而操作。I/O通道控制器內(nèi)核116優(yōu)選給設備驅(qū)動程序112提供一個寄存器接口,其允許經(jīng)過外部硬件124的可編程寄存器對I/O編程。在外部硬件124初始化的同時,在存儲器106中建立BTU控制線程,并且初始BTU被編程到I/O通道控制器內(nèi)核116并激活以控制數(shù)據(jù)接收。數(shù)據(jù)流130直接以外部要求的數(shù)據(jù)傳輸速率緩沖存儲到I/O通道控制器內(nèi)核116。繼而,I/O通道控制器116在當前BTU的控制下自治操作,把接收到的數(shù)據(jù)流傳輸?shù)酱鎯ζ?06。再次合理假定I/O通道控制器內(nèi)核116可以以大于(雖然優(yōu)選遠大于)接收的數(shù)據(jù)流130的速率傳輸數(shù)據(jù)到存儲器106,數(shù)據(jù)過速再次有效排除。Ⅲ.I/O通道控制器結(jié)構(gòu)根據(jù)本發(fā)明的優(yōu)選實施例的I/O通道控制器140的一般結(jié)構(gòu)示于圖5a。I/O通道控制器140優(yōu)選使用3個主要的內(nèi)部總線,包括一個總線主控器程序總線142,一個FIFO池總線144和一個PIO總線146??偩€主控器程序總線142提供在任意數(shù)目的總線接口模塊148、150和總線傳輸控制系統(tǒng)170之間的通信通道。FIFO池總線144是一個專用總線,用于在總線接口模塊148、150、FIFO池172和任意數(shù)目的集成外圍設備和外圍設備接口174-188之間典型的高速突發(fā)數(shù)據(jù)傳輸。PIO總線146提供在總線接口模塊148、150、總線傳輸控制系統(tǒng)170和集成外圍設備和外設接口174-188之間的通用編程I/O通信路徑。PIO總線訪問控制器151用作在每一總線接口模塊148、150之間的一個PIO總線訪問仲裁器。每一總線接口模塊148、150用于連接I/O通道控制器140與各外部通信總線。主接口模塊148用于連接I/O通道控制器140到外部PCI總線20,而DSP總線接口模塊150類似地提供對外設總線30的接口,它連接到外部數(shù)字信號處理器32和DSPRAM34。主接口模塊148連接到總線20的地址、數(shù)據(jù)、和控制(A/D/C)線154,并為由I/O通道控制器內(nèi)核140內(nèi)部的中斷控制器驅(qū)動的中斷線156提供外部接口。在主接口模塊148內(nèi),地址、數(shù)據(jù)和控制線154連接到主總線受控器單元158和主總線主控器單元160。主總線受控器單元158給PIO總線146提供一個基于常規(guī)寄存器的編程I/O接口,以便使PIO總線146可由主處理器12訪問。該寄存器接口還允許對PIO總線146和通過PIO總線146的程序訪問與PIO總線146內(nèi)部連接的各種單元的可編程配置和數(shù)據(jù)寄存器。主總線受控器單元148還提供外部可訪問寄存器接口,其允許編程控制主接口模塊148。主總線主控器單元160自身優(yōu)選包括適合于支持在PCI總線20上常規(guī)總線控制訪問仲裁的控制邏輯。DSP總線接口模塊150類似地連接DSP總線30的地址、數(shù)據(jù)、和控制線。該地址、數(shù)據(jù)和控制線162既連接DSP總線受控器單元166,也連接DSP總線主控器單元168。用于由I/O通道控制器內(nèi)核140內(nèi)部的中斷控制器驅(qū)動的中斷線164的外部接口也由DSP總線接口模塊150支持。DSP總線受控器單元166提供可編程寄存器接口,它允許DSP總線主控器單元168的可編程控制,以及支持在總線30和PIO總線146之間的一般編程的I/O訪問。DSP總線主控器單元168還包括適合允許在DSP總線30上常規(guī)總線主控器訪問仲裁的控制邏輯。由主處理器和DSP接口模塊148、150對PIO總線146的協(xié)調(diào)訪問通過PIO控制器151控制。每一總線受控器單元158、166必須仲裁為對PIO總線的獨占訪問以及通過PIO總線146的途徑對可訪問的任何接口寄存器的獨占訪問。另外,主總線受控器單元158可以請求PIO控制器151建立一個PIO總線旁路。旁路數(shù)據(jù)路徑從主處理器12通過主總線受控器單元158、PIO總線146和DSP總線受控器單元166建立。這樣給主處理器12提供一個數(shù)據(jù)路徑,它允許所有通過DSP總線30可訪問的外圍設備直接由主處理器12控制。這在簡化對某些并行總線外圍設備38的操作控制很有用,例如直接設定或讀取CODEC42的控制方式??偩€傳輸控制系統(tǒng)170用于管理在主處理器和DSP總線主控器單元160、168、FIFO池172和集成外圍設備和外設接口174-183之間的突發(fā)數(shù)據(jù)傳輸?shù)闹醒肟刂葡到y(tǒng),外設接口174-183連接到FIFO池總線144上??偩€傳輸控制系統(tǒng)170保持有BTU的一個可編程表。在本發(fā)明的一個優(yōu)選實施例中,BTU表提供對48個BTU的同時存儲,每一BTU占據(jù)16個相繼的存儲字節(jié)。表Ⅰ提供優(yōu)選的BTU結(jié)構(gòu)的說明。表Ⅰ字段字節(jié)位地址4[31:0]傳輸長度2[15:0]鏈接描述符2[15:0]控制字2[15:0]狀態(tài)字2[15:0]保留4[31:0]BTU結(jié)構(gòu)的地址字段定義由主和DSP總線主控器單元160、168為在系統(tǒng)主存儲器14和I/O通道控制器26之間和在I/O通道控制器46和DSPRAM34之間傳輸數(shù)據(jù)所用的存儲器地址。當進行數(shù)據(jù)傳輸時更新BTU的地址字段值以保持作為一個適當?shù)拇鎯ζ髦羔樀牡刂分?。反之,傳輸長度值在進行傳輸時遞減,以保持由BTU說明的剩余傳輸長度的精確反映。在本發(fā)明的優(yōu)選實施例中,主地址空間作為一般的32位地址字段來對待。針對DSP總線主控器傳輸?shù)牡刂纷侄慰梢圆煌x。如表Ⅱ中說明,通過定義該地址字段的一個或多個高階位,可以容易地實現(xiàn)DSPRAM34的對稱分區(qū),以便有選擇地把多個數(shù)字信號處理器32、36或其它可能提供或使用DSPRAM34內(nèi)離散存儲區(qū)域的外圍設備38的DSPRAM映射到相對于I/O通道控制器內(nèi)核140的一個公共地址空間。表Ⅱ地址(僅指DSP)說明位DSPDSP#1或DSP#031DM數(shù)據(jù)(1)或程序(0)存儲器30保留為將來應用保留[29:15]地址字節(jié)地址[15:0]鏈接描述符字段允許存儲一個指向在當前控制線程中下一順序BTU的數(shù)組指針。優(yōu)選不駐留在I/O通道控制器26提供的BTU存儲空間中的控制線程的相繼BTU存儲在系統(tǒng)主存儲器14內(nèi)的一個表中,雖然BTU也可以存儲在DSPRAM34中。在BTU存儲在系統(tǒng)主存儲器14中的場合,一個兩字節(jié)主基連接地址值單獨存儲在I/O通道控制器內(nèi)核140的配置寄存器中。該主基鏈接地址實際是在系統(tǒng)主存儲器14中的BTU表的基地址,與當前BTU鏈接描述符值連接,以指定在系統(tǒng)主存儲器14中存儲的下一鏈接BTU的存儲器。相反,BTU鏈接描述符自己已足夠提供為訪問在DSPRAM34中存儲的連接BTU需要的完整的地址說明。當在I/O通道控制器內(nèi)核26中的當前BTU的傳輸長度遞減到0時,使用鏈接描述符字段自治加載下一鏈接的BTU。是否自治地使用鏈接描述符字段加載下一BTU,取決于存儲在配置控制字寄存器中的控制位值。表Ⅲ說明控制字寄存器的優(yōu)選定義。表Ⅲ控制字說明位總線主控器從DSP/主存儲器來的總線主控器15中斷在完成BTU時中斷[14:13]00無中斷01主中斷10DSPA中斷11DSPB中斷鏈接定義的鏈接信息可用/不可用(亦即等待)12鏈接主控器鏈接到BTU鏈接表[11:10]00無鏈接01從主機鏈接10從DSPA鏈接11從DSPB鏈接數(shù)據(jù)變換在傳輸期間選擇數(shù)據(jù)變換[9:8]突發(fā)數(shù)據(jù)長度一次突發(fā)32/非16字節(jié)7方向從/不是到FIFO傳輸6保留為內(nèi)部應用保留5FIFO號從FIFO池選擇的FIFO[4:0]在控制字字段內(nèi),總線主控器位定義BTU是相應于主處理器側(cè)還是DSP側(cè)的控制線程。中斷子字段定義在BTU傳輸長度遞減到0時一個中斷最終是否和對誰發(fā)布。中斷源矢量編碼和外部中斷信號的實際生成是由I/O通道控制器內(nèi)核140內(nèi)部的中斷控制器188控制。鏈接定義位說明鏈接描述符字段是否保持一個有效值。鏈接主控器子字段存儲BTU連接表在系統(tǒng)主存儲器14中的基地址。數(shù)據(jù)變換子字段編碼要施加給被傳輸數(shù)據(jù)的數(shù)據(jù)變換,諸如字節(jié)逆序或字節(jié)/字變換。突發(fā)數(shù)據(jù)長度位選擇16或者32字節(jié)突發(fā)數(shù)據(jù)傳輸長度,方向位指定突發(fā)數(shù)據(jù)傳輸方向。FIFO號子字段用于識別在FIFO池172中的一個特定FIFO的數(shù)字標識符,F(xiàn)IFO池172用作由當前BTU控制的數(shù)據(jù)傳輸?shù)脑椿蚰康牡?。最后,BTU的狀態(tài)字字段定義單個位,它反映一特定BTU諸如在由I/O通道控制器內(nèi)核26自治執(zhí)行的BTU更新操作期間是否忙、以及該BTU對參與總線主控器訪問仲裁是否既有效又當前有效或被允許,這在表Ⅳ中詳細列出。表Ⅳ子字段說明位忙位BTU忙于傳輸/連接(只讀)1BTU允許允許BTU仲裁總線主控器0優(yōu)選使用總線傳輸控制系統(tǒng)170實現(xiàn)多級循環(huán)優(yōu)先權(quán)仲裁器(CPA)以便連續(xù)評估當前允許的BTU。該仲裁器連接到BTU表,其連接方式允許直接識別BTU允許位置位的那些BTU。在被識別的允許的BTU的集合中,CPA運行,為每一主和DSP總線主控器單元160、168順序選擇和登臺BTU。由CPA實現(xiàn)的核心算法的操作響應于一組訪問請求進一步限制到被識別的一組允許的BTU,它們存在于一個仲裁周期中。所有可能的請求者以基本相對優(yōu)先級從左到右排序。本發(fā)明的CPA對允許的請求者的優(yōu)先級提供附加的限定。具體來說,前一個仲裁周期剛得勝的請求者實際上不具有當前周期的優(yōu)先級。在前次得勝的請求者右邊第一許可的請求者,如果有的話,被推向當前仲裁周期中的最高優(yōu)先級,該仲裁周期的優(yōu)先級向右遞減。如果沒有被許可的請求者存在于當前周期中前次得勝的請求者的右面,那么使用被許可請求者的基本上從左到右的相對優(yōu)先級來選擇一個當前得勝的請求者。CPA的決策矩陣優(yōu)選作為一個修改的逆二進制樹實現(xiàn)。提供附加控制邏輯以保持狀態(tài)信息,這些信息識別在前一個仲裁周期剛得勝的請求者。另外提供的狀態(tài)信息識別包括先前得勝的請求者的子樹,和在一子樹的最低節(jié)點先前得勝的請求者相對于該最低二進制節(jié)點是在左還是右。結(jié)果,提供了一個有效的機構(gòu)來保證在所有可能的請求者中間基本公平的仲裁。圖5b更詳細地示出總線傳輸控制系統(tǒng)170??偩€傳輸控制系統(tǒng)170包括循環(huán)優(yōu)先級仲裁器190。對訪問BTU表192的各個訪問請求通過控制線194從直接連接到總線主控器程序總線142和PIO總線146的設備接收??偩€主控器程序總線142和PIO總線146兩者的數(shù)據(jù)和BTU地址部分都連接到BTU表192以允許讀和寫B(tài)TU。總線主控器程序總線142還連接到一個BTU掃描器196,在連續(xù)請求訪問BTU表192時,它由仲裁器190控制。BTU掃描器196連續(xù)掃描存儲在BTU表192中的許可的BTU,以使BTU標識符和在內(nèi)部寄存器組198內(nèi)的主和DSP登臺寄存器中的相關(guān)數(shù)據(jù)登臺(stage)。表Ⅴ提供優(yōu)選的BTU寄存器數(shù)組定義。表Ⅴ子字段說明字節(jié)BTU控制復位,單步掃描,允許,和清除用于2編程限制的有效主基鏈接值在主存儲器中的主BTU表位移2主最佳BTU最佳BTU寄存器2主當前BTU當前BTU寄存器2主掃描BTU掃描BTU寄存器2DSP最佳BTU最佳BTU寄存器2DSP當前BTU當前BTU寄存器2DSP掃描BTU掃描BTU寄存器2對BTU表192的每次訪問通過仲裁器190的操作唯一仲裁??偩€主控器單元160、168每當它們空閑要獲得BTU存儲的數(shù)據(jù)時各自單獨請求訪問BTU表192,BTU存儲的數(shù)據(jù)被編程到總線主控器單元160、168以定義總線主控器突發(fā)數(shù)據(jù)傳輸??偩€主控器單元160、168還繼突發(fā)數(shù)據(jù)傳輸更新當前活動的BTU后請求訪問BTU表192??偩€受控器單元158、166被允許通過PIO總線146訪問BTU表192。支持這種訪問,典型地允許主處理器12和DSP32、36編程初始BTU到BTU表192并接著激活這些BTU。PIO總線142還可以用于允許主處理器12按需要檢查BTU的狀態(tài),來監(jiān)視在低水平下的數(shù)據(jù)傳輸進程和如果錯誤發(fā)生的話分析錯誤條件。所有其它的BTU表訪問周期基本上對BTU掃描器196都可用。在只考慮被許可的、從而隱式有效的那些BTU時,掃描器196的掃描速度最大化,同時使掃描器196的總復雜性減小或最小化。隨著每一有效的和被許可的BTU被掃描,掃描器196還通過FIFO標記總線171獲得由被掃描的BTU指定的FIFO的支持FIFO標記狀態(tài)信息。結(jié)果,BTU掃描器196使得所有對FIFO標記存儲器的訪問實際而高效。最后,總線傳輸控制系統(tǒng)170可能依賴于對在BTU表192中BTU的每次更新操作的編程控制產(chǎn)生中斷。一次特定更新操作是否導致中斷的發(fā)布是由該更新操作信號是否是總線主控器傳輸錯誤、BTU傳輸完成和在被更新的BTU的控制字內(nèi)的可編程中斷特定位決定。如果要產(chǎn)生一個中斷的話,則通過控制線200給I/O通道控制器內(nèi)核26內(nèi)部的中斷控制器發(fā)布。每一BTU訪問仲裁周期可以被視為從由主或DSP總線主控器單元160、168完成BTU控制的總線主控器突發(fā)脈沖傳輸時開始。相應BTU被更新,而被選擇作為先前仲裁周期結(jié)果的下一BTU被用作數(shù)據(jù)源來為下一總線主控器突發(fā)數(shù)據(jù)傳輸編程總線主控器單元160、168。由單個BTU指定的數(shù)據(jù)傳輸在完成前不處理,而是在突發(fā)數(shù)據(jù)長度范圍內(nèi)被分段或分區(qū),并且與由其它BTU指定的數(shù)據(jù)傳輸交織在一起。由于被仲裁的BTU預先登臺(pre-staging),所以為了編程總線主控器周期,下一BTU要立即跟著出現(xiàn)。這樣,當為了編程進入主或DSP總線主控器單元160、168,某個下一BTU下臺(stagedown)時,循環(huán)優(yōu)先級仲裁器的操作將在當前總線主控器突發(fā)數(shù)據(jù)傳輸完成前選擇和登臺新的下一BTU。結(jié)果可由I/O通道控制器支持的最大可能數(shù)據(jù)帶寬僅由在I/O通道控制器26和系統(tǒng)主存儲器14和RAM34之間可支持的可能總線主控器傳輸速度限制。表Ⅵ說明由主和DSP總線主控器單元160、168兩者使用的總線主控器編程地址和控制接口。表Ⅵ總線主控器地址總線說明位地址傳輸?shù)拈_始地址[31:0]總線主控器傳輸控制說明位鏈接鏈接而非傳輸18傳輸完成傳輸后發(fā)送TD到FIFO17BTU完成傳輸后發(fā)送BTUD到FIFO16FIFO字節(jié)許可FIFO字節(jié)許可(編碼)[15:14]突發(fā)數(shù)據(jù)要傳輸字節(jié)數(shù)[13:8]數(shù)據(jù)變換(從BTU)傳輸期間交換的字節(jié)[7:6]方向傳輸從/非FIFO[5]FIFO號從FIFO池來的FIFO[4:0]為數(shù)據(jù)突發(fā)傳輸而編程總線主控器160、168,用在BTU的地址字段中保持的用于數(shù)據(jù)傳輸?shù)拇鎯ζ鞯刂诽峁┛偩€主控器程序總線142的地址部分。總線主控器程序總線的傳輸控制總線部分傳輸在表Ⅴ中說明的控制信號到總線主控器單元160、168。鏈接控制位說明當前總線主控器突發(fā)數(shù)據(jù)傳輸針對的是數(shù)據(jù)而非改變的或連接到的BTU。傳輸完成和BTU完成控制信號允許數(shù)據(jù)流狀態(tài)信息實際編碼到FIFO數(shù)據(jù)流。FIFO字節(jié)許可子字段提供正在當前總線主控器突發(fā)數(shù)據(jù)中傳輸?shù)?字節(jié)字中數(shù)據(jù)的排序字節(jié)位置的一個編碼值。突發(fā)數(shù)據(jù)子字段說明要傳輸?shù)淖止?jié)數(shù),其為程序突發(fā)數(shù)據(jù)傳輸?shù)囊徊糠?。?shù)據(jù)變換子字段反映希望要施加于數(shù)據(jù)傳輸?shù)臄?shù)據(jù)變換。方向控制位標識突發(fā)數(shù)據(jù)傳輸?shù)姆较?。最后,F(xiàn)IFO號說明FIFO池內(nèi)要參加突發(fā)數(shù)據(jù)傳輸?shù)腇IFO。一旦編程后,主和DSP總線主控器單元160、168自治操作,仲裁和執(zhí)行足夠的總線訪問周期來實現(xiàn)該編程的突發(fā)數(shù)據(jù)傳輸。在突發(fā)數(shù)據(jù)傳輸?shù)絀/O通道控制器26的場合,該突發(fā)數(shù)據(jù)暫存在總線主控器單元160、168內(nèi)的FIFO中。然后由總線主控器單元160、168執(zhí)行一個單獨的、請求應答仲裁以獲得對和通過FIFO池總線144到FIFO池172的訪問。然后從內(nèi)部FIFO來的數(shù)據(jù)被傳輸?shù)紽IFO池172,特別是由當前BTU的FIFO標識符說明的FIFO。對于從I/O通道控制器26發(fā)出的數(shù)據(jù),總線主控器單元160、168初始仲裁對FIFO池172的訪問,并用從由BTU提供的FIFO標識符說明的FIFO的突發(fā)數(shù)據(jù)長度字節(jié)數(shù)目預加載其內(nèi)部FIFO。然后自治總線主控器操作進一步執(zhí)行從主或DSP總線主控器單元160、168來的內(nèi)部FIFO的突發(fā)數(shù)據(jù)傳輸。使用總線主控器單元160、168的稍微不同的編程來檢索以自治連續(xù)或至少準備為連續(xù)方式鏈接到下一BTU的主側(cè)或DSP側(cè)的控制線程。在完成BTU用一個有效和允許的鏈接描述符說明的完全數(shù)據(jù)傳輸時,該BTU通過循環(huán)優(yōu)先級仲裁器循環(huán),直到它再次被選擇來控制總線主控器突發(fā)數(shù)據(jù)傳輸。BTU的0傳輸長度使鏈接描述符通過總線主控器程序總線的低階部分傳遞到合適的主或DSP總線主控器單元160、168。在BTU存儲在系統(tǒng)主存儲器14中的場合,使用總線主控器程序總線的高階地址部分同時給主總線主控器單元160提供基于主處理器的鏈接描述符。RAM34中的BTU存儲在該鏈接描述符自身的地址范圍內(nèi)。在所有情況下,設定連接控制位,指示一個連接到的BTU突發(fā)數(shù)據(jù)傳輸正被編程。優(yōu)選主和DSP總線主控器160、168的內(nèi)部FIFO具有至少等于BTU大小的深度。于是,可以使用單一總線主控器突發(fā)數(shù)據(jù)傳輸來從系統(tǒng)主存儲器14或者DSPRAM34中檢索希望的BTU。一旦該希望的BTU存儲在一個總線主控器內(nèi)部FIFO中時,則主或DSP總線主控器單元160、168請求訪問總線主控器程序總線142來傳輸該BTU到總線傳輸控制系統(tǒng)170。由在總線主控器程序總線142上發(fā)出的請求控制信號請求訪問。由總線傳輸控制系統(tǒng)170產(chǎn)生的應答信號授予對通常和FIFO池總線144連接的字寬更新/鏈接數(shù)據(jù)總線173的單獨訪問。表ⅦFIFO更新總線說明位更新標記指示一個更新周期1FIFO號被更新的FIFO號5讀大小FIFO中的數(shù)據(jù)字節(jié)數(shù)6寫大小FIFO中的打開字節(jié)數(shù)6讀字節(jié)許可FIFO內(nèi)讀字節(jié)選擇4寫字節(jié)許可FIFO內(nèi)寫字節(jié)選擇4BTU完成標記存儲器中的BTU完成標記1傳輸完成指示傳輸完成1空間可用FIFO中空間可用1數(shù)據(jù)可用FIFO中數(shù)據(jù)可用1一個兩位總線主控器鏈接地址總線由總線傳輸控制系統(tǒng)170驅(qū)動,來協(xié)調(diào)在總線傳輸控制系統(tǒng)170內(nèi)傳輸完整BTU到BTU表所需的優(yōu)選3個更新/連接數(shù)據(jù)總線訪問周期;第4字節(jié)當前保留,不傳輸。實際鏈接起始的BTU被連接到的BTU覆蓋。當前BTU在BTU表的位置由總線傳輸控制系統(tǒng)保持,允許在每一總線主控器突發(fā)數(shù)據(jù)傳輸后對BTU執(zhí)行狀態(tài)更新操作。在當前BTU也是一個鏈接起始的BTU的場合,更新操作直接提供用連接到的BTU對鏈接起始的BTU的現(xiàn)場覆蓋。然后鏈接到的BTU循環(huán)到循環(huán)優(yōu)先級仲裁器即將進行的仲裁操作。Ⅳ.分布式狀態(tài)和控制系統(tǒng)總線傳輸控制系統(tǒng)170一般用于管理相對于FIFO池172通過總線主控器接148、150的數(shù)據(jù)傳輸。然而,F(xiàn)IFO池172自身實現(xiàn)訪問控制邏輯,其用于中心控制給FIFO池總線144授予數(shù)據(jù)訪問周期。如表ⅡⅤ中的詳細說明,F(xiàn)IFO池總線144優(yōu)選包括一個32位寬的數(shù)據(jù)總線,一個5位寬的地址總線和單獨訪問請求和授予控制線,其允許每一總線主控器接口148、150和集成外圍設備和外設接174-182單獨請求對FIFO池總線144訪問和接收單個訪問應答信號。表ⅧFIFO池總線說明位請求FIFO池訪問的請求線10請求完成該次傳輸FIFO池的最后請求10應答FIFO池訪問的應答線10FIFO數(shù)被訪問的FIFO號5字節(jié)許可FIFO內(nèi)的字節(jié)選擇4數(shù)據(jù)入從設備到FIFO池的數(shù)據(jù)32數(shù)據(jù)出從FIFO池到設備的數(shù)據(jù)32方向數(shù)據(jù)傳輸方向1BTU完成標記存儲器中BTU完成標記1數(shù)據(jù)可用FIFO中數(shù)據(jù)可用1與FIFO池總線關(guān)聯(lián)或一般為其一部分的是FIFO更新總線(表Ⅵ)。FIFO更新總線優(yōu)選包括一個5位的FIFO狀態(tài)總線,其用作在FIFO池172內(nèi)發(fā)送一個FIFO的FIFO標識符給至少所有連接到FIFO池總線144上的集成外圍設備和外設接口174-183。每當數(shù)據(jù)被加到FIFO池172中相應的FIFO或從其中取出時,F(xiàn)IFO標識符便通過更新總線發(fā)送。通過實際發(fā)送FIFO池172內(nèi)FIFO的狀態(tài)改變的通知時,F(xiàn)IFO池隱式簡化了在FIFO池172內(nèi)實現(xiàn)的循環(huán)優(yōu)先級仲裁器的必要操作以及在每一集成外圍設備和外設接口174-183內(nèi)必要的相應的控制邏輯。給每一連接到FIFO池總線144上的集成外圍設備和外設接口174-183提供分布式控制邏輯。這些集成外圍設備和外設接口174-183中的每一個優(yōu)選可用一個或多個FIFO標識符編程,這些標識符相應于為支持其各自功能所需要的FIFO池172中的FIFO號。每一FIFO支持一個單向數(shù)據(jù)流,所以為支持全雙工通信需要FIFO對。每一集成外圍設備和外設接口174-182中的分布式邏輯監(jiān)視在FIFO狀態(tài)總線上發(fā)送的FIFO標識符與其預編程的標識符是否匹配。當發(fā)現(xiàn)一個標識符匹配時,集成外圍設備或外設接口174-183可以隨后發(fā)布一個控制信號來請求在FIFO池總線144上進行數(shù)據(jù)傳輸?shù)闹芷?。FIFO池172隨之發(fā)布一個唯一的應答信號來授權(quán)訪問FIFO池總線。這樣,F(xiàn)IFO池172的循環(huán)優(yōu)先級仲裁器只需要考慮用于能進行實際數(shù)據(jù)傳輸?shù)募赏鈬O備和外設接口174-183的訪問請求。另外,由于集成外圍設備和外設接口174-183的類型有可能有任何數(shù)目和各種組合,因此,實際上應使FIFO池172的循環(huán)優(yōu)先級仲裁器從需要考慮由某一特定的集成外圍設備和外設接口174-183請求的數(shù)據(jù)傳輸周期的任何特殊方面分出來。有可能影響對FIFO池總線144的存儲器訪問周期請求的合適性的特定操作,將由每一集成外圍設備和外設接口174-182配合其特定功能內(nèi)部管理。結(jié)果,有很大部分訪問決定和仲裁控制邏輯實際上通過I/O控制器140分布。與FIFO池172的循環(huán)優(yōu)先級仲裁器關(guān)聯(lián)的控制邏輯不需根本甚至明顯修改,只要任何集成外圍設備或外設接口174-183的類型、數(shù)目或功能在I/O通道控制器內(nèi)核140的不同特定實現(xiàn)之間改變。Ⅴ.集成外圍設備和接口每一個集成外圍設備和外設接口174-188優(yōu)選經(jīng)過PIO總線146向I/O通道控制器內(nèi)核140的其余部分提供一個基于寄存器的接口。從而這些寄存器接口的每一個可以由主處理器12和數(shù)字信號處理器32、36通過主和DSP總線受控器單元158、166訪問。集成外圍設備和外設接口174-188的每一具體實現(xiàn)提供的對PIO總線的寄存器接口可能由簡單到復雜變化。一般說來,需要寄存器接口以允許編程外圍設備174-188希望的操作,允許復位外圍設備174-188,指定可能產(chǎn)生中斷的條件和中斷要發(fā)向的外部處理器,以及在外圍設備174-183還連接到FIFO池總線144的場合,為每一并發(fā)的數(shù)據(jù)流存儲由該特殊外圍設備174-188可支持的FIFO標識符。另外,每一集成外圍設備和外設接口174-183包括一個登臺數(shù)據(jù)FIFO,它為被傳輸?shù)紽IFO池總線144或從其傳輸來的數(shù)據(jù)提供臨時存儲。優(yōu)選這一內(nèi)部FIFO的深度足以防止由于集成外圍設備和外設接口174-183期望支持的數(shù)據(jù)吞吐速率和在FIFO池總線172和特定集成外圍設備或外設接口174-183之間最壞情況的總線數(shù)據(jù)傳輸?shù)臏粢鸬臄?shù)據(jù)欠速或過速。在通過一個集成外圍設備或外設接口的期望數(shù)據(jù)傳輸速率足夠低的場合,該內(nèi)部FIFO可以簡單使用單個緩沖器寄存器實現(xiàn)。然而外設內(nèi)部接口FIFO的深度通常為2或4字節(jié)。一個優(yōu)選的MIDI接口外設接口174實現(xiàn)對PIO總線146一個相對簡單的寄存器接口。由MIDI接口外設174實現(xiàn)的優(yōu)選控制寄存器包括一個發(fā)送控制寄存器和一個接收控制寄存器。寄存器接口在表Ⅸ中細化。表ⅨMIDI發(fā)送控制寄存器說明位保留未用或測試值[31:7]發(fā)送許可許可MIDI發(fā)送6復位復位MIDI發(fā)送端口5FIFO號從FIFO池來的FIFO[4:0]MIDI接收控制寄存器說明位保留未用或測試值[31:10]中斷選擇00無中斷產(chǎn)生[9:8]01中斷主CPU10中斷DSP111中斷DSP2接收許可許可MIDI接收7復位復位MIDI發(fā)送端口6FIFO號從FIFO池來的FIFO[5:0]發(fā)送控制寄存器包括一個5位FIFOID字段、一個復位位和一個發(fā)送許可位。接收控制寄存器優(yōu)選包括一個5位FIFOID字段、一個復位位、一個接收許可位和兩位中斷字段,它編碼是否響應與通過外部接口或MIDI接口外設174接收一個數(shù)據(jù)字節(jié)或數(shù)據(jù)字一致的錯誤條件而產(chǎn)生中斷以及,如果是這樣的話,該中斷打算的目的地。中斷優(yōu)選只在錯誤條件下由該外設174產(chǎn)生。優(yōu)選使用邏輯連接的立即傳輸端口以產(chǎn)生數(shù)據(jù)發(fā)送/接收中斷,其用于控制通過MIDI接口外設174的數(shù)據(jù)流。CODEC外設接口176的寄存器接口可能比MIDI接口174遠為復雜。在把一個常規(guī)的外部CODEC連接到CODEC接口176的場合,寄存器接口需要提供對外部CODEC自身的控制和數(shù)據(jù)寄存器訪問。另外的方案為,CODEC外設接口176可能自身實現(xiàn)一個常規(guī)CODEC部分或全部功能,從而將連接到CODEC外設接口176需要的外部部件限制到比較少的模擬部件。在后一種場合,CODEC接口176則是一個完全集成的外圍設備,其直接提供CODEC控制寄存器給PIO總線146。無論在哪一種情況,CODEC接口176都包括允許CODEC接口176仲裁對FIFO池總線144的訪問和監(jiān)視相應于編程到CODEC接口176的一個寄存器內(nèi)的一個FIFO標識符的FIFO池172FIFO的狀態(tài)變化所需的邏輯。圖5c表示CODEC接口176的一個優(yōu)選實現(xiàn),其用于支持一個外部CODEC,諸如一個AnalogDevices1843CODEC。基本CODEC接口數(shù)據(jù)路徑和控制邏輯180提供對多重、基本雙向數(shù)據(jù)流的支持,這些數(shù)據(jù)流要通過在各FIFO對之間的FIFO池總線144的數(shù)據(jù)部分,這些FIFO對可能布置在CODEC接口176內(nèi)部的FIFO池總線和FIFO對之內(nèi)。優(yōu)選直到4個發(fā)出的數(shù)據(jù)流通過4個內(nèi)部FIFO210-212緩沖存儲。數(shù)據(jù)多路轉(zhuǎn)換器216根據(jù)在外部CODEC中建立的控制方式提供從各個FIFO210-214來的8或16位數(shù)據(jù)選擇。字節(jié)或字數(shù)據(jù)流在寄存器接口和I/O控制單元220的控制下通過定時鎖存和一個串行化器218。時鐘和控制信號由寄存器接口和I/O控制單元220通過時鐘和控制線222提供。寄存器接口和I/O控制單元220通過交換在線224上的時鐘和控制信號協(xié)調(diào)與外部CODEC的數(shù)據(jù)傳輸。于是,經(jīng)過寄存器接口和I/O控制單元220的操作,串行化的數(shù)據(jù)在串行數(shù)據(jù)輸出線226上提供給外部CODEC。CODEC方式命令以及命令涉及的數(shù)據(jù)也在串行數(shù)據(jù)輸出線226上提供給外部CODEC。方式命令和數(shù)據(jù)優(yōu)選通過PIO總線146提供給寄存器接口和I/O控制單元220。然后,引導方式命令和數(shù)據(jù)經(jīng)由線214,通過多路轉(zhuǎn)換器216和鎖存器218,而通過線224給出命令方式事務處理的信號。從外部CODEC來的串行數(shù)據(jù)在線228上由定時去串行化器和鎖存器230接收。依賴于外部CODEC的當前命令方式,狀態(tài)信息和有關(guān)數(shù)據(jù)通過一個去多路轉(zhuǎn)換器232通過線234提供給寄存器接口和I/O控制單元220。其它字節(jié)或字寬數(shù)據(jù)在寄存器接口或I/O控制單元220的控制下從去多路轉(zhuǎn)換器232有選擇地提供給4個內(nèi)部FIFO236-238中的任一個。寄存器接口和I/O控制單元220還提供請求和應答控制邏輯以支持在FIFO池總線上144上的數(shù)據(jù)傳輸。寄存器接口和I/O控制單元220優(yōu)選提供直到8個FIFO標識符的寄存器存儲。每一FIFO標識符允許一個特定的內(nèi)部FIFO與FIFO池172中任何一個FIFO唯一關(guān)聯(lián)。PIO總線144的FIFO更新部分由寄存器接口和I/O控制單元220連續(xù)監(jiān)視以識別一個被標識的FIFO的狀態(tài)何時改變。寄存器接口和I/O控制單元220通常代表內(nèi)部FIFO發(fā)布對其FIFO標識符與在更新總線上發(fā)送的FIFO標識符匹配的FIFO池訪問請求。FIFO標識符寄存器和其它CODEC接口控制寄存器通??捎芍魈幚砥?2通過PIO總線146訪問。提供給PIO總線146的優(yōu)選CODEC寄存器接口在表Ⅹ中提供。表ⅩCODEC寄存器說明位主控器控制DAC/ADC控制15音頻命令給音頻CODEC的命令[14:9]音頻數(shù)據(jù)對音頻CODEC的方式設置數(shù)據(jù)[8:3]電話術(shù)命令對電話術(shù)CODEC的命令2電話術(shù)狀態(tài)對電話術(shù)CODEC的方式設置數(shù)據(jù)1狀態(tài)命令只讀CODEC狀態(tài)位8狀態(tài)數(shù)據(jù)只讀方式設置數(shù)據(jù)FIFO號0FIFO許可位和池號8……8FIFO號7FIFO許可位和池號8時鐘時鐘計數(shù)器控制16主屏蔽主中斷屏蔽值12DSP屏蔽DSP中斷屏蔽值12中斷控制發(fā)送完成,下/過速位12主控器控制說明位CODEC復位復位所有CODEC相關(guān)的邏輯[15]DAC方式設定DAC0,1操作方式[14:9]ADC方式設定ADC0,1操作方式[8:3]音頻許可音頻CODEC復位2電話術(shù)許可電話術(shù)CODEC復位1CODEC標識符外部CODEC類型0接口控制說明位傳輸完成FIFO0傳輸完成中斷位1傳輸完成FIFO3傳輸完成中斷位1欠速FIFO0欠速中斷位(DAC1)1欠速FIFO3欠速中斷位(DAC4)1過速FIFO4過速中斷位(ADC5)1過速FIFO7過速中斷位(ADC8)1游戲桿外圍設備和可能關(guān)聯(lián)的控制臺可以通過數(shù)字游戲桿接口178支持。外圍設備游戲桿通常提供正比于游戲桿物理位置的電阻。數(shù)字游戲桿接口178優(yōu)選實現(xiàn)一個定時器和電容器,它們與由游戲桿外設提供的電阻結(jié)合允許表示游戲桿位置的數(shù)字值由該數(shù)字游戲桿接口自治地重復產(chǎn)生。從而主處理器12不再需要設定作為定時器的功能來決定游戲桿的位置。優(yōu)選數(shù)字游戲桿接口174可以編程以發(fā)出一個中斷的信號,每當被決定的數(shù)字值改變時它傳遞到主處理器12或一個DSP32、36。甚至在不產(chǎn)生中斷的場合,該數(shù)字值也可經(jīng)由PIO總線146通過由數(shù)字游戲桿接口178提供的寄存器接口被連續(xù)訪問。為了支持各種游戲和控制應用,會出現(xiàn)對相關(guān)控制臺配置和數(shù)據(jù)的要求,因此會有數(shù)據(jù)流穿過FIFO池172和數(shù)字游戲桿接口178。在數(shù)據(jù)流傳輸速率通常低以及等待是一個問題的場合,在數(shù)據(jù)傳輸?shù)綌?shù)字游戲桿接口178或從其傳來時,優(yōu)選使用邏輯連接的立即傳輸端口以產(chǎn)生對主處理器12或DSP32、36之一的中斷。在等待不是一個大的問題或所需要的數(shù)據(jù)速率相對高的場合,可以使用通過FIFO池172的完整總線主控器數(shù)據(jù)傳輸。另一類型的集成外圍設備和外設接口由通用接口端口180代表。在一個優(yōu)選的實施例中,接口端口180可以實現(xiàn)適合于接口視頻控制器或直接接口視頻幀緩沖器的高速、特寬并行端口。從FIFO池總線144來的后繼雙字寬數(shù)據(jù)傳輸可以緩沖存儲為一個64位、128位或更大的字,以并行傳輸?shù)揭曨l控制器或幀緩沖器中。在這種情況下,一個或多個視頻字可以寄存器緩沖存儲到接口端口180內(nèi),以便允許字傳輸?shù)娇刂破骰驇彌_器的定時的最優(yōu)匹配。也可以使用接口端口180高速讀視頻控制器或幀緩沖器。一個,雖然優(yōu)選兩個或更多幀字可以以相繼的并行讀操作從視頻控制器或幀緩沖器讀入一個寬的緩沖器寄存器,后者也可作為相對于FIFO池總線144的一個內(nèi)部FIFO配置。然后,幀字的雙字寬部分可以傳輸?shù)讲⑼ㄟ^FIFO池172。提供立即傳輸端口集成外圍設備182以建立通過FIFO池172的常用于低帶寬、等待時間敏感的數(shù)據(jù)流的高速、低等待時間的連接。立即傳輸端口集成外圍設備182提供優(yōu)選6個獨立的傳輸端口。每一傳輸端口由可經(jīng)由PIO總線146訪問的一個控制寄存器和一個數(shù)據(jù)寄存器代表。表Ⅺ提供控制寄存器的定義。表Ⅺ立即傳輸端口控制說明位空間/數(shù)據(jù)可用如果空間/數(shù)據(jù)可用則置位15許可傳輸端口許可標記14復位復位傳輸端口13數(shù)據(jù)寬度8或16數(shù)據(jù)傳輸9方向相對于FIFO傳輸8中斷選擇00無中斷產(chǎn)生[7:6]01中斷主CPU10中斷DSP111中斷DSP2FIFO號池FIFO的號[4:0]立即傳輸端口數(shù)據(jù)說明位高字節(jié)字數(shù)據(jù)的高字節(jié)[15:8]低字節(jié)低字節(jié)數(shù)據(jù)或只是字節(jié)數(shù)據(jù)[7:0]用于立即傳輸端口的控制寄存器允許該端口用FIFO標識符、中斷目的地、數(shù)據(jù)傳輸方向、數(shù)據(jù)字節(jié)或字寬、復位位、許可位和空間或數(shù)據(jù)可用位來編程。立即傳輸端口的典型操作是在PIO總線146的更新總線部分上監(jiān)視一個被標識的FIFO的狀態(tài)變化,和根據(jù)編程的中斷選擇位立即給主處理器12或DSP32、36發(fā)布中斷。使用兩個立即傳輸端口和FIFO池172中的單一FIFO在兩個處理器之間建立一個數(shù)據(jù)流傳輸路徑。優(yōu)選編程一個立即傳輸端口每當在標識的FIFO中有空間可用時發(fā)布一個主中斷。編程第二立即傳輸端口每當在同一標識的FIFO中有數(shù)據(jù)可用時發(fā)布DSP中斷。為啟動數(shù)據(jù)流傳輸和隨后響應主中斷,主處理器12通過主總線受控器單元158和PIO總線146傳輸數(shù)據(jù)到與主處理器12關(guān)聯(lián)的立即傳輸端口的I/O數(shù)據(jù)寄存器。立即傳輸端口把接收的數(shù)據(jù)放在FIFO池172中標識的FIFO中。響應由FIFO池172在FIFO狀態(tài)總線上發(fā)出的FIFO識別信號,第二立即傳輸端口發(fā)布一個DSP中斷。作為響應,一個DSP32、36訪問該立即傳輸端口的I/O數(shù)據(jù)寄存器。數(shù)據(jù)從FIFO池172中的FIFO讀出并傳輸?shù)紻SP32、36被處理,并通常被寫入RAM34??梢砸耘c總線主控器接口148、150和訪問FIFO池172的其它集成外圍設備和外設接口174-183的各種結(jié)合使用立即傳輸端口。例如通過MIDI接口外圍設備174發(fā)出的數(shù)據(jù)流可以由主處理器12傳輸?shù)紽IFO池172中的一個FIFO。當在更新總線上發(fā)送的FIFO狀態(tài)變化時,MIDI接口外圍設備174提出使用FIFO池仲裁器訪問FIFO池172的請求。一旦訪問被授予,則數(shù)據(jù)從FIFO池172傳輸?shù)組IDI接口外圍設備174的內(nèi)部FIFO并迅速輸出。當數(shù)據(jù)從FIFO池172中標識的FIFO中清除時,優(yōu)選編程響應更新同一標識的FIFO的另一個立即傳輸端口不產(chǎn)生主中斷。在這一情況下,主處理器12決定寫MIDI數(shù)據(jù)到標識的FIFO的時間。當主處理器12決定寫MIDI數(shù)據(jù)時,通過主相關(guān)立即傳輸端口的數(shù)據(jù)寄存器登臺新數(shù)據(jù),將新數(shù)據(jù)寫入標識的FIFO。在數(shù)據(jù)要以最大MIDI數(shù)據(jù)速率輸出的場合,主處理器12可以寫多于單一字節(jié)或字的數(shù)據(jù)到FIFO池的FIFO中。之后,主處理器12可以根據(jù)由主處理器決定的時間計劃恢復輸出MIDI數(shù)據(jù)。結(jié)果,可以支持從主存儲器14到MIDI接口外圍設備174的傳輸數(shù)據(jù)的低的基本固定等待周期。通過MIDI接口外圍設備174輸入的數(shù)據(jù)需要與一個時間印記數(shù)據(jù)一起存儲在系統(tǒng)主存儲器14或RAM34中。該時間印記數(shù)據(jù)需要以一個從MIDI接口外圍設備174實際接收時間起計算的最小而規(guī)律的等待時間施加到輸入數(shù)據(jù)。結(jié)果一個立即傳輸端口優(yōu)選與在FIFO池172中的MIDI輸入數(shù)據(jù)FIFO關(guān)聯(lián)并被編程以在數(shù)據(jù)在被標識的FIFO中可用時發(fā)布一個中斷給主處理器12或DSP32。也可以提供一個DSP加速器集成外圍設備183作為I/O通道控制器140的部分。一般形式是,DSP加速器183優(yōu)選實現(xiàn)一個可通過PIO總線146提供的寄存器接口,它支持與來自FIFO池172的一個或多個輸入FIFO連接和一個或多個輸出FIFO通過FIFO池總線144返回數(shù)據(jù)到FIFO池172。就內(nèi)部說來,DSP加速器183可以根據(jù)可編程控制寄存器的配置采用專用硬件、微控制器、或兩者結(jié)合配置來執(zhí)行任何數(shù)目的運算強化數(shù)據(jù)處理操作,諸如數(shù)字信號濾波、混合和調(diào)制。因此,F(xiàn)IFO池172中可連接到DSP加速器183的FIFO的數(shù)目依賴于由DSP加速器183可能實現(xiàn)的特定功能。消息端口集成外圍設備184提供一個簡單的數(shù)據(jù)路徑以便在連接到I/O通道控制器140的主處理器和DSP處理器之間傳輸少量數(shù)據(jù)。在本發(fā)明的優(yōu)選實施例中,在消息端口集成外圍設備184中提供3個消息端口,每一個專門由特定主處理器12或DSP32、36源使用。每一個專用源消息端口表示為兩個可從PIO總線146訪問的16位寄存器。表Ⅻ說明消息端口組和每一消息端口的控制和數(shù)據(jù)寄存器。表Ⅻ消息端口說明端口0主消息發(fā)送端口端口1DSP1消息發(fā)送端口端口2DSP2消息發(fā)送端口端口#的消息端口控制寄存器說明位復位復位傳輸端口16中斷選擇00無中斷產(chǎn)生[14:13]01中斷主CPU10中斷DSP111中斷DSP2訪問指針消息中的字位移指針[7:0]端口#的消息端口數(shù)據(jù)寄存器說明位數(shù)據(jù)讀/寫數(shù)據(jù)寄存器[15:0]訪問指針字段用作指向在該消息端口內(nèi)部保持的一個8字(8×16位)深的消息FIFO的自動增量指針。為發(fā)送一個消息,源處理器清空該訪問指針字段,寫直到8個數(shù)據(jù)字到消息端口的數(shù)據(jù)寄存器,然后編程一個中斷以指定該消息的目的處理器。該中斷通過設定中斷選擇字段為一個非0狀態(tài)來實際發(fā)布。為響應消息中斷讀一消息,目的處理器可以讀合適的訪問指針字段以識別消息長度,設定訪問指針字段為0從頭開始讀該消息,然后從消息端口的數(shù)據(jù)寄存器讀訪問指針指定數(shù)目的數(shù)據(jù)字。一旦消息數(shù)據(jù)被讀出,則中斷選擇子字段可以簡單地復位為0。另外的方案為,該子字段可以復位為指定消息源處理器的一個值,同時以一個0長度消息作為接收該消息的應答。應答或返回消息也可以在設定中斷選擇子字段指定源處理器之前寫到消息FIFO。在所有情況下,目的處理器可以通過認出用以發(fā)送消息的特別消息端口來單獨識別源處理器,因為每一消息端口唯一與一個源處理器關(guān)聯(lián)。提供定時器集成外圍設備186來支持基于通用和特定功能定時的操作。在本發(fā)明的一個優(yōu)選實施例中,由定時器外圍設備186給PIO總線146提供3個雙字寄存器,其詳細列于表ⅩⅢ。表ⅩⅢ定時器源寄存器說明位定時器復位復位所有定時器31計數(shù)值設定源時鐘的基頻[30:16]遞減計數(shù)遞減計數(shù)寄存器[15:0]定時器0寄存器說明位允許允許定時器31方式多發(fā)/單發(fā)方式19清中斷清中斷定時器狀態(tài)18中斷選擇00無中斷產(chǎn)生[17:16]01中斷主CPU10中斷DSP111中斷DSP2定時器值定時器遞減計數(shù)值[15:0]主等待時間定時器說明位定時器值定時器遞減計數(shù)值[15:0]這些控制寄存器的第一個提供一個15位自由運行的計數(shù)器,它用作為其余定時器功能的一個可編程時基。定時器源寄存器優(yōu)選包括一個15位遞減計數(shù)字段,它記錄加在I/O控制器140上的系統(tǒng)時鐘的每一周期。15位計數(shù)值字段存儲一個靜態(tài)基時鐘計數(shù)值,其用于在遞減計數(shù)子字段每次達到0值時重新初始化遞減計數(shù)子字段。提供一個單個位作為為整個定時器外圍設備186的復位控制。提供一個通用定時器0寄存器在每次從定時器基時鐘驅(qū)動的16位遞減計數(shù)定時器到期時產(chǎn)生中斷。定時器0寄存器包括一個16位定時器值,其在定時器基時鐘的每一周期完成時遞減。提供兩位子字段指定在到達定時器0值時要中斷的處理器。還提供中斷清除和定時器允許位。最后提供一個方式控制位指定定時器0是作為多發(fā)定時器還是作為單發(fā)定時器。在多發(fā)定時器方式,定時器值期滿時產(chǎn)生一個中斷,該定時器值重新加載。第二中斷只在前一中斷被清除后才發(fā)布。在單發(fā)方式,一旦產(chǎn)生一個中斷,則定時器簡單地停止。還實現(xiàn)一個專門的主中斷等待時間定時器。該定時器是一個遞增計數(shù)定時器,它由定時器基時鐘驅(qū)動。在向主處理器發(fā)出中斷時,一個16位定時器值從0開始遞增。當主中斷等待時間定時器寄存器的定時器值子字段被讀取時主中斷等待時間定時器停止并清除定時器值。這一專門的定時器允許I/O控制器內(nèi)核140支持通常由主處理器12對在響應由I/O通道控制器140產(chǎn)生的中斷時進行的主中斷服務子例程的有效性分析。最后,提供一個中斷控制器集成外圍設備188以支持在常規(guī)操作期間由I/O通道控制器140產(chǎn)生的許多不同的中斷源的管理。為有效使用在主或DSP處理器上提供的中斷輸入,I/O控制器140優(yōu)選給每一處理器發(fā)布一個單一矢量化中斷。如圖5d所示,在優(yōu)選實施例中,中斷寄存器242產(chǎn)生線156′上的主中斷、線164′上的第一DSP中斷、和在線165′上的第二DSP中斷。對中斷寄存器246的輸入244從在I/O控制器140內(nèi)的單個中斷源、或者從組中斷寄存器246、250接收。組中斷可以從中斷寄存器242通過PIO總線讀取。表ⅩⅣ提供組中斷的優(yōu)選定義。表ⅩⅣ組中斷寄存器說明位定時器屏蔽允許中斷源12立即傳輸端口屏蔽允許中斷源11消息屏蔽允許中斷源10外圍設備屏蔽允許中斷源9BTU屏蔽允許中斷源8定時器中斷組中斷活動位4立即傳輸端口中斷組中斷活動位3消息端口中斷組中斷活動位2外圍設備中斷組中斷活動位1BTU中斷組中斷活動位0優(yōu)選中斷寄存器242允許組中斷中的每一個被屏蔽。在一個中斷組由中斷屏蔽的應用啟動而產(chǎn)生一個中斷的場合,一個特定中斷目標156′、164′、165′的選擇由組中斷信號244提供的中斷目標信息決定。結(jié)果,單個中斷源決定特定中斷目的地,雖然該中斷是通過中斷寄存器242編組的。在大量中斷可以由I/O控制器140的單一部件,諸如總線傳輸控制系統(tǒng)170產(chǎn)生的場合,或在許多相關(guān)的部件可以方便地一起編組的場合,中斷請求線248、252可以指向第二級組寄存器246、250。在本發(fā)明的優(yōu)選實施例中,一些集成外圍設備和外設接口174-186通過一個外圍設備組中斷寄存器246引導,給中斷寄存器242提供一個單一組中斷。內(nèi)部外圍設備,諸如MIDI接口174,和諸如在DSP總線30上提供的外部外圍設備,每一個都可以是一個外圍設備組中斷的源。表ⅩⅤ給出組屏蔽和通過PIO總線146可訪問的中斷狀態(tài)寄存器的優(yōu)選定義。表ⅩⅤ組中斷寄存器說明位中斷7屏蔽允許中斷源715中斷1屏蔽允許中斷源19MIDI屏蔽允許MIDI中斷源8外部中斷7外部中斷7活動位7外部中斷1外部中斷1活動位1MIDI中斷外圍設備中斷活動位0組中斷寄存器250優(yōu)選提供一個立即端口索引字段,其反映每一立即傳輸端口中斷的中斷狀態(tài)。使用一個單一位標記來標記當前可讀索引是否有效。立即傳輸端口寄存器(表ⅩⅥ)可通過PIO總線146訪問。表ⅩⅥITP中斷寄存器說明位ITP索引無效有效/無效標記,使無效的寫7ITP索引ITP數(shù)組中的ITP索引[2:0]最后,一個BTU組中斷寄存器254提供一個控制寄存器(表ⅩⅦ),它包括一個BTU索引字段,用以識別一個作為中斷信號256源的特定BTU。表ⅩⅦBTU中斷寄存器說明位BTU索引無效有效/無效標記,使無效的寫7傳輸完成BTU傳輸完成6BTU索引BTU表中的BTU索引[5:0]提供一個單獨的傳輸完成位來指示該中斷是否是數(shù)據(jù)流傳輸完成發(fā)出的中斷信號。最后,提供一個單一的控制位指示BTU索引字段在讀取時是否有效。這樣,中斷控制器集成外圍設備188提供一個簡單的寄存器系統(tǒng)240,來響應任何大量單個內(nèi)部中斷而快速中斷任何數(shù)目的不同處理器。每當處理器被中斷時,最多需要兩個通過PIO總線146的寄存器讀操作來唯一識別該中斷源。Ⅵ.多線程彈性緩沖FIFO池圖6表示FIFO池172的詳細視圖260和在FIFO池172和一些FIFO訪問請求設備2620-262n之間的控制關(guān)系。FIFO訪問請求設備2620-262n優(yōu)選包括總線主控器接口148、150和集成外圍設備和外設接口174-183。每一設備2620-n連續(xù)監(jiān)視FIFO更新總線173上指定給一個特定設備2620-n的任何FIFO狀態(tài)的變化。特別是,每一設備2620-n監(jiān)視更新總線上正被更新的FIFO號,決定在被更新的FIFO中是否有足夠的空間或數(shù)據(jù)可用以支持在設備2620-n和FIFO池存儲器284之間通過FIFO池總線144的數(shù)據(jù)傳輸。響應在指定給一個特定設備2620-n的FIFO中出現(xiàn)的一個合格狀態(tài)變化,設備2620-n經(jīng)過FIFO池總線144給FIFO仲裁器264提供一個訪問請求控制信號。在每一仲裁周期期間,F(xiàn)IFO仲裁器264實際只考慮請求訪問FIFO池284的那些設備2620-n,它們唯一地由一組此時要處理的請求控制信號表示。選擇在FIFO仲裁器264的當前仲裁周期中的下一設備,使之訪問FIFO池284。FIFO仲裁器264給選擇的設備2620-n返回一個唯一的應答信號。作為響應,設備2620-n通過FIFO池總線144提供至少包括由設備2620-n保持的FIFO標識符的控制信號,在一個FIFO標記存儲器286和包括FIFO讀/寫指針存儲數(shù)組272、274的一個FIFO控制存儲器中選擇一條數(shù)據(jù)存儲線。標記存儲和指針數(shù)組286、272、274優(yōu)選作為RAM寄存器數(shù)組實現(xiàn),其深度數(shù)目等于由FIFO池284支持的FIFO數(shù)目。在本發(fā)明的優(yōu)選實施例中,該FIFO池提供24個16字節(jié)深的FIFO存儲器。表ⅩⅧ為FIFO標記存儲器286的每一行列出標記位定義。表ⅩⅧFIFO標記說明位傳輸完成傳輸完成標記12BTU完成當前BTU完成標記11FIFO大小FIFO大小大于16字節(jié)10讀大小FIFO中的數(shù)據(jù)字節(jié)數(shù)目[9:4]讀字節(jié)允許FIFO內(nèi)讀字節(jié)選擇[3:2]寫字節(jié)允許FIFO內(nèi)寫字節(jié)選擇[1:0]從FIFO池總線144提供給線276的FIFO號用作在FIFO標記存儲器286內(nèi)選擇一個唯一的數(shù)組行的地址,以便用于更新在選擇的數(shù)組行內(nèi)存儲的控制數(shù)據(jù)。另外該FIFO號還用于在FIFO讀和寫指針數(shù)組272、274中選擇一個相應的數(shù)組行以允許對識別的FIFO使用讀或?qū)懼羔?。最后,給I/O多路轉(zhuǎn)換器282提供線276上的FIFO號以允許在FIFO池存儲器284中識別的FIFO和FIFO池總線144之間的數(shù)據(jù)傳輸。表ⅩⅨ提供組合讀和寫指針數(shù)組272、274的字段定義。表ⅩⅨFIFO讀/寫指針說明位讀指針當前FIFO讀位置[15:9]寫指針當前FIFO寫位置[8:2]FIFO大小分配的FIFO大小[1:0]大小字段定義FIFO的長度。在本發(fā)明優(yōu)選的實施例中,“00”的FIFO大小值指示一個16字節(jié)的FIFO深度。值“01”指示32字節(jié)的FIFO深度,而值“10”指示64字節(jié)的FIFO深度。讀和寫指針用以在當前選擇的FIFO中提供6位FIFO字節(jié)偏移。每一讀寫指針中的高位,具體說,對16字節(jié)FIFO的第五位,對32字節(jié)FIFO的第六位和對64字節(jié)FIFO的第七位,用以指示在通過該FIFO索引時是否存在FIFO回繞(wraparound)條件。為簡化在FIFO池284內(nèi)的FIFO的分配和管理,F(xiàn)IFO標記存儲器286和讀寫指針數(shù)組272、274中的每一數(shù)組行相應于在FIFO池284內(nèi)定義的FIFORAM塊。優(yōu)選每一FIFORAM塊是位于FIFO池284內(nèi)的16字節(jié)FIFORAM的一個16字節(jié)邊界對齊的序列。結(jié)果,F(xiàn)IFO標記存儲器286和讀寫指針數(shù)組272、274的最大互深度定義在FIFO池284內(nèi)可并發(fā)支持的FIFO的最大數(shù)目。在由讀寫指針數(shù)組272、274的大小字段定義32或64字節(jié)長的FIFO的場合,在FIFO池284內(nèi)使用兩個或4個相連的FIFORAM塊。這樣,每一32字節(jié)的FIFO或64字節(jié)FIFO的規(guī)格必須搶先獨立使用一條或三條另外的數(shù)組線。FIFO指針邏輯單元266和包括讀寫指針數(shù)組272、274的FIFO控制存儲器一起操作,實現(xiàn)一個狀態(tài)機,它由FIFO仲裁器164通過在選擇設備2620-n時在線268上的許可信號啟動以參加對FIFO池284的訪問。選擇的設備2620-n在線276上通過FIFO池總線144給FIFO指針邏輯單元266提供它的FIFO號,來選擇相應的FIFO讀寫指針、活動字節(jié)允許信息和諸如數(shù)據(jù)傳輸方向的其它控制信息。數(shù)據(jù)傳輸方向控制信號決定是否給I/O多路轉(zhuǎn)換器282提供FIFO讀或?qū)懼羔様?shù)組值。字節(jié)允許信息定義在FIFO池284和FIFO池總線144之間執(zhí)行的數(shù)據(jù)傳輸?shù)膶挾群蛯R,從而允許在共同訪問FIFO池284內(nèi)一個公共FIFO的任何設備2620-n的數(shù)據(jù)流傳輸寬度之間的獨立性。在通過I/O多路轉(zhuǎn)換器282完成每一讀或?qū)懼芷跁r,正如由選擇的設備2620-n經(jīng)由FIFO池總線144所決定的,F(xiàn)IFO指針邏輯單元266更新FIFO控制存儲器272、274中合適的讀或?qū)懼羔様?shù)組值。FIFO指針邏輯單元266還更新FIFO標記存儲器286中FIFO標記的相應行。特別是,F(xiàn)IFO指針邏輯單元266更新在訪問的FIFO中剩余的數(shù)據(jù)字節(jié)數(shù)和合格標記,諸如傳輸完成和BTU完成。一旦一個或多個數(shù)據(jù)字節(jié)被傳輸,根據(jù)立即可用于由或從被選擇的設備2620-n的內(nèi)部FIFO接收的字節(jié)數(shù)和可用于FIFO池284內(nèi)的相應FIFO中的字節(jié)數(shù),F(xiàn)IFO訪問請求由選擇的設備2620-n撤回。然后新仲裁周期開始,F(xiàn)IFO池仲裁器264通常選擇下一設備2620-n訪問FIFO池284。設備2620-n通過FIFO池總線144傳播傳輸完成信號到FIFO指針邏輯單元266來指示終止,其源于任一設備2620-n或由其接收。每當當前BTU完成時,總線主控器設備148、150也傳播一個BTU完成信號。在這兩種情況下,F(xiàn)IFO指針邏輯單元266處理當前可能留在一個參加設備2620-n的相應內(nèi)部FIFO或FIFO池284的相應FIFO中的可能的部分FIFO數(shù)據(jù)的傳輸。通常,F(xiàn)IFO標記存儲器286和FIFO控制存儲器272、274的基于主處理器12的初始化和后繼的狀態(tài)檢驗,實際上可以經(jīng)過與FIFO池仲裁器264的協(xié)調(diào)通過FIFO指針邏輯單元266來執(zhí)行。優(yōu)選給PIO總線146通過控制、FIFO索引和數(shù)據(jù)線290裝備一組可編程寄存器,它們允許與一個池FIFO關(guān)聯(lián)的當前FIFO標記由PIO總線146讀或從PIO總線146寫。按照FIFO指針邏輯單元方式的FIFO標記數(shù)組的寄存器說明示于表ⅩⅩ。表ⅩⅩFIFO標記說明位FIFO標記0FIFO0的FIFO標記16FIFO標記1FIFO1的FIFO標記16………FFIO標記23FIFO23的FIFO標記16實際按照FIFO指針邏輯單元266方式的FIFO控制存儲器272、274的寄存器說明示于表ⅩⅪ。表ⅩⅪFIFO指針說明位FIFO控制寄存器0FIFO0的FIFO讀/寫指針16FIFO控制寄存器1FIFO1的FIFO讀/寫指針16FIFO控制寄存器23FIFO23的FIFO讀/寫指針16雖然主處理器12和數(shù)字信號處理器32、36兩者都可以讀或?qū)慒IFO標記和控制存儲器286、272、274,但是包括建立和拆除在FIFO池284中定義的FIFO的初始化優(yōu)選單獨由主處理器12管理。通過定義主處理器12作為對FIFO池284內(nèi)的FIFO的唯一分配管理者,不需要在主處理器和DSP訪問FIFO標記存儲器286和FIFO讀寫指針數(shù)組272、274之間的互鎖。取而代之,可以使用消息端口184在主處理器12和DSP32、36之間傳遞短消息以請求和應答任何特定FIFO的建立和該FIFO的識別符,該特定FIFO是新近在FIFO池286內(nèi)作為主處理器12或DSP32、36實際請求的FIFO而建立的。由讀寫指針數(shù)組272、274的編程能力提供的附加特征是,F(xiàn)IFO池284內(nèi)的FIFO可以動態(tài)按需配置大小,以保證避免數(shù)據(jù)過速和欠速。FIFO池284內(nèi)的32字節(jié)和64字節(jié)FIFO兩者都可以以增量縮減到最小的16字節(jié)長,只需簡單地重編程FIFO控制存儲器272、274保持的大小字段。結(jié)果,新16字節(jié)和可能的32字節(jié)FIFO然后可以在FIFO池284內(nèi)在不再由一個縮減的FIFO使用的一個或多個FIFO存儲器塊內(nèi)分配。相反,F(xiàn)IFO長度可以從16到64字節(jié)動態(tài)增長,只要滿足基FIFORAM塊在FIFO池284內(nèi)恰當對齊,鄰近FIFORAM塊已經(jīng)不在使用和優(yōu)選FIFO被清空以簡化FIFO管理的限制。Ⅶ.總線傳輸單元掃描控制邏輯圖7表示總線傳輸控制系統(tǒng)170的詳細視圖??偩€傳輸控制系統(tǒng)170的作用是管理3個基本獨立的高優(yōu)先級過程,它們每一個都需要訪問BTU表192。BTU仲裁器190用作基本控制器以接收對BTU表訪問的訪問請求和選擇3個過程中的一個。這3個過程包括PCI接口事務處理過程、DSP接口事務處理過程、和總線受控器事務處理過程。PCI接口160產(chǎn)生對BTU仲裁器190的訪問和更新請求。訪問請求指示PCI接口160可用于編程執(zhí)行主總線主控器數(shù)據(jù)傳輸操作。PCI接口160在完成一次主總線主控器傳輸后請求更新訪問以更新BTU表192內(nèi)的相應BTU。類似地,DSP接口168給BTU仲裁器190發(fā)布訪問和更新請求以請求編程從BTU表192中的一個BTU,隨后在DSP總線主控器數(shù)據(jù)傳輸完成后更新該BTU。最后,每一總線受控器單元158、166可以請求對BTU表192的訪問,以編程一個新BTU或檢查當前BTU的內(nèi)容。BTU仲裁器190實現(xiàn)固定優(yōu)先級選擇機制,使PIO總線請求具有最高優(yōu)先級,其次是主或DSP總線主控器接口,最后是BTU掃描器。反過來,BTU掃描器保證所有BTU具有對BTU表192一般公正的訪問。在PIO控制器151操作時,主或DSP總線受控器單元158、166從BTU仲裁器190通過PIO總線146中的控制線提供一個共享訪問請求和接收一個共享許可響應。PIO控制器決定能夠向應從BTU仲裁器190來的許可響應的總線接口模塊148、150。當允許PIO信號通過控制線292提供到主或DSP總線受控器158、166時,一個BTU索引值通過PIO總線146和地址線294傳遞給地址多路轉(zhuǎn)換器296。同時,BTU仲裁器190通過控制線298提供一個選擇信號,選擇PIO提供的索引作為選擇BTU表192中一個條目的地址。然后主或DSP總線受控器158、166可以讀或?qū)態(tài)TU表192中的相應BTU。PCI總線主控器接口160和DSP總線主控器接口168只要在空閑時都產(chǎn)生對BTU仲裁器190的訪問請求。BTU仲裁器190對PCI或DSP訪問請求的授予,還取決于對由BTU掃描器196決定的一個可用或被允許的BTU定義的總線主控器接口160或168傳輸?shù)淖R別。連接BTU掃描器196和FIFO標記數(shù)組270的控制線171給標記數(shù)組270提供一個數(shù)組索引,和提供返回在相應數(shù)組線中存儲的FIFO標記的至少一個子集。優(yōu)選FIFO標記數(shù)組270作為雙端口存儲器實現(xiàn),從而當由設備2620-n訪問進行時允許BTU掃描器196連續(xù)和在很大程度上獨立地掃描FIFO數(shù)組270。FIFO標記數(shù)組270的雙端口存儲器實現(xiàn)提供適當?shù)脑L問互鎖,每當BTU掃描器196試圖讀正由標記管理器280更新處理的標記數(shù)組線時臨時停止它。一般說來,掃描器的停止稀少而簡短。BTU掃描器196運行以執(zhí)行BTU表192合格的順序掃描而識別下一可能為PCI總線主控器接口160或DSP總線主控器接口168編程的BTU。BTU掃描器196的順序掃描由在BTU表192內(nèi)每一BTU條目的許可位的狀態(tài)限定。這些許可位的狀態(tài)可以直接由BTU掃描器196通過控制線300讀取。因此BTU掃描器196的操作可以有效地限制在順序掃描僅被許可的BTU。這樣,在BTU表192內(nèi)新產(chǎn)生和建立的BTU立即被包括在BTU掃描中,而不管什么原因被禁止的BTU立即從掃描中被排除。當BTU掃描器196選擇下一合格的BTU檢查時,通過BTU地址線302給多路轉(zhuǎn)換器296提供BTU地址。多路轉(zhuǎn)換器296的缺省狀態(tài)是這樣的,BTU掃描器把提供的地址作為提供給BTU表192的缺省許可地址。至少一部分BTU從BTU表192中讀取并存儲在掃描寄存器304、306中的一個。掃描寄存器內(nèi)容通過控制線308、310提供給BTU掃描器196。表ⅩⅫ中指定由掃描寄存器304、306存儲的BTU信息。表ⅩⅫ掃描寄存器說明位FIFO死鎖死鎖/非正常傳輸長度12BTU完成當前突發(fā)數(shù)據(jù)后的最佳BTU完成11中斷允許對當前BTU的強迫中斷完成10BTU忙掃描BTU當前正在使用9超越移動掃描BTU到最佳BTU寄存器8對編程有效最佳BTU可以用于總線主控器編程7;在掃描器傳遞BTU索引值時置位有效最佳BTU具有有效BTU索引6BTU索引掃描寄存器中的BTU索引[5:0]表ⅩⅩⅢ中指定在最佳BTU寄存器312、314中存儲的BTU信息。表ⅩⅩⅢ最佳寄存器說明位FIFO字節(jié)允許FIFO內(nèi)的字節(jié)選擇器[15:14]突發(fā)數(shù)據(jù)長度要傳輸?shù)淖止?jié)數(shù)目[13:8]傳輸完成在最佳BTU突發(fā)數(shù)據(jù)后7數(shù)據(jù)流完成鏈接為BTU鏈接的程序,不傳輸6BTU索引最佳寄存器中的BTU索引[5:0]表ⅩⅩⅣ中指定存儲在當前BTU寄存器320、332中的BTU信息。表ⅩⅩⅣ當前寄存器說明位中斷選擇00無中斷產(chǎn)生[15:14]01中斷主CPU10中斷DSP111中斷DSP2突發(fā)數(shù)據(jù)長度要傳輸?shù)淖止?jié)數(shù)[13:8]傳輸完成在當前突發(fā)數(shù)據(jù)后數(shù)據(jù)流完成7鏈接BTU鏈接程序,不傳輸6BTU索引最佳寄存器內(nèi)的BTU索引[5:0]表ⅩⅩⅤ中說明BTU控制寄存器。表ⅩⅩⅤ最佳寄存器說明位復位復位整個BTU子系統(tǒng)9脈沖允許單步步進BTU掃描器8保留[7:2]總是V4PBTU為編程總可用1允許允許操作BTU掃描器0根據(jù)從掃描寄存器304、306提供的信息,BTU掃描器196決定由BTU指定的特定接口160、168和FIFO。然后通過控制線171施加FIFO索引以便從FIFO標記數(shù)組270中獲得相應的FIFO標記數(shù)據(jù)。具體說,由BTU掃描器196考慮的FIFO標記數(shù)據(jù)包括所參考的FIFO是否可以容納或當前存儲足夠的數(shù)據(jù)以支持總線突發(fā)數(shù)據(jù)傳輸?shù)男畔?。在本發(fā)明的優(yōu)選實施例中,每一突發(fā)數(shù)據(jù)傳輸具有16字節(jié)的最大長度。然而,由BTU掃描器196考慮的一個FIFO標記是傳輸完成標記,其允許BTU掃描器196恰當考慮允許少于16字節(jié)的突發(fā)數(shù)據(jù)傳輸。另外,死鎖標記在置位時用作強迫部分數(shù)據(jù)傳輸而不是最優(yōu)地等待一個完整的突發(fā)數(shù)據(jù)可用。當由于非規(guī)則的數(shù)據(jù)長度傳輸或一個可能的錯誤條件而引起的只有部分突發(fā)數(shù)據(jù)被傳輸時可能產(chǎn)生死鎖。對參加設備的最優(yōu)數(shù)據(jù)傳輸長度在FIFO中不可用,而最優(yōu)數(shù)據(jù)長度不能傳輸?shù)皆揊IFO。無論在何種情況下,使FIFO進入死鎖狀態(tài)的設備將設定死鎖標記以強迫由下一設備進行的短數(shù)據(jù)傳輸來訪問該FIFO。在BTU掃描器196決定突發(fā)數(shù)據(jù)傳輸可以通過可用總線主控器接口160、168執(zhí)行的場合,在BTU就緒時要判定被識別的BTU是否具有足夠的優(yōu)先級而登臺到最佳BTU寄存器312、314中的一個。用于登臺的BTU優(yōu)先級通常取決于在執(zhí)行突發(fā)數(shù)據(jù)傳輸中最近相對最少使用的BTU。在由掃描寄存器304識別的BTU例如比由最佳BTU寄存器312識別的BTU具有較高優(yōu)先級或者最佳BTU寄存器312為空的場合,掃描寄存器34的內(nèi)容在BTU掃描器196的控制下通過經(jīng)由控制線316提供一個合適的控制信號來復制到最佳BTU寄存器312。相反,如果由掃描寄存器306標識的BTU的登臺優(yōu)先級低于由最佳BTU寄存器314標識的BTU的優(yōu)先級時,BTU掃描器196不復制掃描寄存器306的內(nèi)容到最佳BTU寄存器314。無論何種情況,BTU掃描器196完成當前掃描周期然后為控制總線主控器突發(fā)數(shù)據(jù)傳輸而從BTU表192中選擇可能登臺的下一合格的BTU。BTU掃描器196與BTU仲裁器190互操作,指示最佳BTU寄存器312、314中的任何一個或全部是否識別到各自的可用于執(zhí)行突發(fā)數(shù)據(jù)傳輸?shù)腂TU。根據(jù)這一信息,BTU仲裁器190響應訪問請求可以決定是否提供一個允許PCI或允許DSP信號到接口160、168中的一個。當由BTU仲裁器190發(fā)布允許PCI或允許DSP信號中的一個時,BTU仲裁器190發(fā)信號給BTU掃描器196。于是BTU掃描器196可以允許位并行傳輸相應最佳BTU寄存器312、314的內(nèi)容到相應當前BTU寄存器320、322。同時,BTU掃描器196更新內(nèi)部BTU優(yōu)先級位表,該表隨后用于區(qū)別在掃描和最佳BTU寄存器304、306、312、314中標識的BTU的相對優(yōu)先級。給相應PCI或DSP接口160、168提供一個允許的最佳BTU寄存器312、314的內(nèi)容。同時,通過地址線324給多路轉(zhuǎn)換器296提供BTU標識符,用來從BTU表192中選擇最佳BTU寄存器標識的BTU。隨著BTU仲裁器發(fā)布允許控制信號,通過控制線298給多路轉(zhuǎn)換器296提供一個當前BTU地址選擇信號。這樣,完整的BTU被編址,并可用于編程PCI或DSP接口160、168以執(zhí)行突發(fā)數(shù)據(jù)方式數(shù)據(jù)傳輸。一旦編程以后,PCI和DSP接口160、168根據(jù)指定的突發(fā)數(shù)據(jù)傳輸方向,作為任一設備2620-n參加對FIFO池284的請求訪問。在數(shù)據(jù)要傳輸?shù)紽IFO池284內(nèi)的FIFO的場合,該突發(fā)數(shù)據(jù)傳輸在設備160、168請求仲裁的對FIFO池284訪問之前執(zhí)行。在數(shù)據(jù)是從FIFO池284發(fā)出的場合,設備160、168在執(zhí)行突發(fā)數(shù)據(jù)傳輸前首先仲裁以便從FIFO中獲得數(shù)據(jù)。PCI和DSP接口兩者都保持有提供足夠存儲的內(nèi)部突發(fā)數(shù)據(jù)FIFO,以緩沖存儲每一單一數(shù)據(jù)突發(fā)數(shù)據(jù)。在本發(fā)明的一個優(yōu)選實施例中,PCI內(nèi)部突發(fā)數(shù)據(jù)FIFO為32字節(jié)深,而DSP內(nèi)部FIFO是16字節(jié)。一旦PCI或DSP接口160、168完成相對于FIFO池284的一個總線主控器數(shù)據(jù)傳輸,則接口160、168請求PCI或DSP更新。對BTU仲裁器190的更新請求不受選擇新BTU的限制。反之,由當前BTU寄存器320、322的內(nèi)容標識的BTU被立即使用。結(jié)果,更新操作施加到用于編程最近的突發(fā)數(shù)據(jù)傳輸?shù)腂TU。隨著BTU仲裁器190發(fā)布一個允許PCI或允許DSP信號,PCI或DSP接口160、168被允許寫回更新的信息到由相應當前BTU寄存器320、322的內(nèi)容標識的BTU中。通過這一更新,傳輸完成標記的狀態(tài)被實際傳輸?shù)奖粎⒖嫉腂TU。FIFO標記存儲器中的相應標記也被更新,但最好是與突發(fā)數(shù)據(jù)傳輸自身相關(guān)。一旦BTU更新完成,則相應PCI或DSP接口160、168再次對BTU仲裁器190發(fā)出訪問請求,并等待BTU編程??梢跃幊蘌CI或DSP接口160、168產(chǎn)生與執(zhí)行突發(fā)數(shù)據(jù)傳輸有關(guān)和可能響應一個數(shù)據(jù)傳輸錯誤的中斷。PCI和DSP接口160、168給接口中斷控制器326提供完成和錯誤控制信號。PCI和DSP接口160、168的突發(fā)數(shù)據(jù)完成響應中斷操作編程到BTU表192中并從中提供,在最佳寄存器312、314被向下復制到當前寄存器320、322時存儲到當前寄存器320、322中。編程的中斷響應行為在每次PCI或DSP接口被允許執(zhí)行一個突發(fā)數(shù)據(jù)傳輸時相應地從任一當前寄存器320、322提供給接口中斷控制器326。在完成該突發(fā)數(shù)據(jù)傳輸或檢測到一個錯誤條件時,如果任何中斷要被產(chǎn)生的話,接口中斷控制器326在控制線328上給主中斷控制器188提供中斷定義控制信號。Ⅷ.命令驅(qū)動的數(shù)據(jù)傳輸操作圖8a到8c表示一些數(shù)據(jù)和控制路徑的例子。對CODEC接口176的一個邏輯雙向接口使用兩個FIFO和4個BTU建立。由于FIFO相對于數(shù)據(jù)傳輸是單向獨立的,因此,一個單獨的BTU與每一個FIFO關(guān)聯(lián)以建立數(shù)據(jù)傳輸路徑的管理。CODEC接口176用作FIFO1數(shù)據(jù)的使用者。因此,CODEC接口176請求以由CODEC接口176內(nèi)部操作建立的數(shù)據(jù)傳輸速率訪問FIFO池284。同時,BTU1參加BTU掃描器196的掃描操作。當數(shù)據(jù)從FIFO1由CODEC接口176取出時,F(xiàn)IFO標記被更新,直到在FIFO1中為一個突發(fā)數(shù)據(jù)傳輸存在足夠空間。然后BTU1成為合格的BTU由BTU仲裁器190選擇來編程任一PCI接口160或DSP接口166,為進行如由FIFO1編程說明的從系統(tǒng)主存儲器14或從DSPRAM34到FIFO1的突發(fā)數(shù)據(jù)傳輸。隨著BTU1的傳輸大小被用盡,可以通過PCI或DSP接口160、168之一加載下一順序BTU到BTU表192以保持數(shù)據(jù)流對CODEC接口176的連續(xù)性,從而執(zhí)行總線主控器數(shù)據(jù)傳輸。由于流數(shù)據(jù)可以分段存儲在系統(tǒng)主存儲器14或者DSPRAM34之一之中,因此各自標識數(shù)據(jù)段的BTU鏈接序列用于有效實現(xiàn)分布/收集機構(gòu)。由于為傳輸流數(shù)據(jù)以及重加載鏈接的或連接到的BTU而對BTU的處理對于主處理器12和DSP32、36說來是自治執(zhí)行的,特別是不需產(chǎn)生需要主處理器12或DSP32、36服務的中斷,因此保持有效使用主處理器12和DSP32、36基本獨立于I/O通道控制器22正在進行的操作。優(yōu)選編程控制數(shù)據(jù)流到FIFO1傳輸?shù)腂TU的鏈接序列的最后一個BTU,在完成該BTU指定的數(shù)據(jù)傳輸時啟動一個中斷。從CODEC接口176接收的數(shù)據(jù)由命令驅(qū)動進入FIFO2,用于例如向系統(tǒng)主存儲器14傳輸。當數(shù)據(jù)由CODEC接口176接收時,該接口請求訪問FIFO池以與CODEC接口176的接收數(shù)據(jù)速率一致的數(shù)據(jù)速率傳輸數(shù)據(jù)。而且,當FIFO2足夠填充能夠進行總線主控器傳輸時,選擇BTU2以編程PCI接口160執(zhí)行FIFO2中數(shù)據(jù)向系統(tǒng)主存儲器14的突發(fā)數(shù)據(jù)傳輸。當?shù)交驈腃ODEC接口176到FIFO1或FIFO2的數(shù)據(jù)流終止時,更新相應FIFO標記以反映傳輸完成狀態(tài)。這一狀態(tài)在最后鏈接到BTU1或BTU2的后繼BTU中反映。最終,傳輸完成將引起FIFO復位操作來清除FIFO。結(jié)果,在最后傳輸數(shù)據(jù)到FIFO1或從FIFO2傳輸時可以產(chǎn)生一個中斷。圖8b說明更復雜的雙向數(shù)據(jù)流傳輸,包括數(shù)據(jù)從系統(tǒng)主存儲器14通過FIFO3到DSP32傳輸?shù)街苯舆B接到DSP32的CODEC接口40。由于從系統(tǒng)主存儲器14到DSPRAM34的數(shù)據(jù)傳輸是總線主控器傳輸,因此使用兩個單獨的BTU3和4以控制通過FIFO3的數(shù)據(jù)傳輸。在此例中,BTU4由DSP32編程到BTU表192,而BTU3由主處理器12編程。因為DSP32負責管理由BTU4指向的RAM34的數(shù)據(jù)目的地部分,所以DSP32可以建立BTU4和鏈接的后繼者來指定希望大小的相應數(shù)據(jù)塊的傳輸并在傳輸每一或者只是最后的數(shù)據(jù)塊到DSPRAM34完成時使產(chǎn)生一個中斷。同時,當在FIFO3中足夠空間可為數(shù)據(jù)突發(fā)數(shù)據(jù)傳輸使用時,BTU3和鏈接的后繼BTU在總線傳輸控制系統(tǒng)170的操作中成為活動的。優(yōu)選當對FIFO3的最后的數(shù)據(jù)突發(fā)數(shù)據(jù)傳輸被執(zhí)行時,BTU3鏈接的后繼BTU將指定對主處理器12產(chǎn)生一個中斷。另一方案為,主處理器12可以通過消息端口184給DSP32發(fā)送一個簡單的消息,指示數(shù)據(jù)流傳輸在最后清空FIFO3時完成。由DSP32從CODEC接口40接收的數(shù)據(jù)可以由數(shù)字信號處理器32處理然后存儲在RAM34內(nèi)的緩沖位置。一旦在DSPRAM34內(nèi)建立起一個數(shù)據(jù)塊,就可以由DSP32編程BTU5到BTU表192。在被啟動后不久,BTU5被用于編程從DSPRAM34到FIFO4的突發(fā)數(shù)據(jù)傳輸。當FIFO4填充足夠支持一個突發(fā)數(shù)據(jù)傳輸時,由主處理器12預先建立的BTU6將有資格仲裁選擇,以編程PCI總線主控器接口160按照由BTU6或一個鏈接的后繼BTU指定的地址,執(zhí)行到系統(tǒng)主存儲器14的突發(fā)數(shù)據(jù)傳輸。為結(jié)束該數(shù)據(jù)流,DSP32可以通過消息端口184給主處理器12傳輸一個消息,指定要傳輸?shù)臄?shù)據(jù)總量。然后主處理器12可以建立最后的BTU來反映總的期望剩余數(shù)據(jù)數(shù)量并在數(shù)據(jù)一旦被傳輸?shù)较到y(tǒng)主存儲器14時產(chǎn)生一個中斷。然而,優(yōu)選DSP32代之以引導DSP總線主控器單元150傳遞與當前和最后部分數(shù)據(jù)流傳輸有關(guān)的一個傳輸完成信號。圖8c表示一個更復雜的例子。通過FIFO5連接MIDI接口174以接收從系統(tǒng)主存儲器14來的數(shù)據(jù)。主處理器12優(yōu)選使用一個立即傳輸端口1820提供數(shù)據(jù)到FIFO5。因為發(fā)出的MIDI數(shù)據(jù)傳輸流的定時由主處理器12自己管理,所以主處理器12使用該立即傳輸端口1820被動地提供數(shù)據(jù)給FIFO5。被動使用在于,響應數(shù)據(jù)放入FIFO5時不產(chǎn)生中斷。而每當數(shù)據(jù)出現(xiàn)在相應FIFO5中時建立MIDI接口174以請求FIFO池訪問。一般說來,完成從FIFO5到MIDI接口174的數(shù)據(jù)傳輸?shù)牡却龝r間最小并且從一個MIDI設備的正常數(shù)據(jù)速率的觀點看來是足夠均勻的。結(jié)果,不像命令驅(qū)動的通過本發(fā)明的I/O通道控制器內(nèi)核26管理的其它數(shù)據(jù)傳輸?shù)牟僮?,通過MIDI接口174向外提供的數(shù)據(jù)速率是源而不是命令驅(qū)動的。源于MIDI接口174或從其發(fā)出的數(shù)據(jù)實際上以由MIDI接口174建立的接收數(shù)據(jù)速率直接提供給FIFO6。當每一字節(jié)或字數(shù)據(jù)通過接口174被接收時,立即放置一個傳輸該數(shù)據(jù)到FIFO池186內(nèi)的相應FIFO的請求。而且,一般說來,完成從MIDI接口174到FIFO6的數(shù)據(jù)傳輸?shù)牡却龝r間最小并且從一個MIDI設備的正常數(shù)據(jù)速率的觀點看來是足夠均勻的。優(yōu)選建立第二立即傳輸端口1821以便每當?shù)絹淼腗IDI數(shù)據(jù)放入FIFO6時主動產(chǎn)生中斷給本例中的DSP36。響應該中斷,DSP36通過立即傳輸端口1821從FIFO6檢索該數(shù)據(jù),記錄一個相應的時間印記,并將這兩者都存儲到DSPRAM34中。結(jié)果,DSP36可以有效地接收時間印記,并以最小的、基本固定的等待時間處理從MIDI接口174接收的數(shù)據(jù)。雖然立即傳輸端口1821將產(chǎn)生相當數(shù)目的DSP中斷,但是MIDI數(shù)據(jù)傳輸?shù)淖x取速率相當?shù)?,而DSP36在服務中斷時通常非常有效。無論何種情況,與MIDI有關(guān)的這些中斷的全部處理開銷與DSP36無關(guān),也不會牽扯主處理器12和任何其它DSP32。可以選擇對DSP36的結(jié)果數(shù)據(jù)處理負載,使得任何并發(fā)的提供給或接收自相對于DSPRAM34直接連接的CODEC接口42的數(shù)據(jù)的處理在DSP36的數(shù)據(jù)處理能力之內(nèi)。最后,依據(jù)BTU8和9、或兩者的相互控制,由DSP36接收并處理的數(shù)據(jù)可以通過例如CODEC接口42傳送來進一步處理或者通過FIFO7傳輸?shù)较到y(tǒng)主存儲器14。根據(jù)本發(fā)明,上述相對于圖8a-c的處理可以是或通常是彼此相互獨立的。每一這樣的處理可以表示一個按照在主處理器12和與I/O通道控制器22關(guān)聯(lián)的數(shù)據(jù)源及受點之間一個獨立控制線程正被傳輸?shù)莫毩?shù)據(jù)流。然而本發(fā)明特別地允許這些以及可能其它的處理并發(fā)進行。另外,由于每一數(shù)據(jù)流的命令驅(qū)動操作,I/O通道控制器22的使用公平地分布在一個動態(tài)和連續(xù)的基礎上,以保證每一數(shù)據(jù)流的基本數(shù)據(jù)傳輸速率滿足外圍設備數(shù)據(jù)源或受點的需要。這樣,敘述了一個多功能I/O外圍設備支持系統(tǒng)。該外圍設備系統(tǒng)提供基本自治的操作、多線程數(shù)據(jù)流傳輸,其特別與連接到該外圍設備系統(tǒng)上的集成和外部外圍設備要求的I/O帶寬匹配。另外,該外圍設備系統(tǒng)為多重數(shù)字信號處理器提供存儲器到存儲器的數(shù)據(jù)傳輸支持,這些處理器可用于從主處理器的卸載處理或中斷密集任務,同時減少或直接支持加在主處理器上對這些數(shù)字信號處理器管理的開銷。根據(jù)本發(fā)明優(yōu)選實施例的上述說明,熟悉本
技術(shù)領(lǐng)域:
的人員容易理解,對公開的實施例可以進行各種修改和變化。因此應該理解,在所附權(quán)利要求的范圍之內(nèi)可以實施本發(fā)明而不限于上述具體實施例。權(quán)利要求1.一種可與包括基本存儲器的基本計算機系統(tǒng)相連的數(shù)據(jù)通道控制器,所述數(shù)據(jù)通道控制器包括a)包含多個第一緩沖存儲器的存儲器池;b)同所述存儲器池相連的仲裁器(arbiter)系統(tǒng),用于響應于第一和第二請求信號,有選擇地啟動對于預先確定的第一緩沖存儲器的數(shù)據(jù)傳輸;c)包含可以同所述存儲器池相連的第二緩沖存儲器的外設設備,所述外設設備用于通過所述第二緩沖存儲器向外設接口傳輸數(shù)據(jù),具有預先確定的數(shù)據(jù)傳輸速率的特點,并且在第一預定條件下,根據(jù)在所述第二緩存中數(shù)據(jù)的出現(xiàn),將所述第一請求信號提供給所述仲裁器系統(tǒng),以獲得在所述預先確定的第一緩沖存儲器和所述第二緩沖存儲器之間的數(shù)據(jù)傳輸;d)包含有可同所述存儲器池相連的第三緩沖存儲器的基本系統(tǒng)接口,所述基本系統(tǒng)接口,在第二預先確定條件下,根據(jù)在所述預先確定的第一緩沖存儲器中數(shù)據(jù)的出現(xiàn),提供所述第二請求信號,以通過所述第三緩沖存儲器獲得在所述預先確定的第一緩沖存儲器和基本存儲器之間的數(shù)據(jù)傳輸。2.按照權(quán)利要求1的數(shù)據(jù)通道控制器,其中所述基本系統(tǒng)接口包括總線主控制邏輯,用于執(zhí)行在基本存儲器和所述第三緩沖存儲器之間的基本上是自行的數(shù)據(jù)傳輸。3.按照權(quán)利要求2的數(shù)據(jù)通道控制器,包括同所述多個第一緩沖存儲器相連的多個所述外設設備,所述數(shù)據(jù)通道控制器還包括同所述基本系統(tǒng)接口相連并包含一數(shù)據(jù)表的傳輸控制器,所述數(shù)據(jù)表保存同根據(jù)所述多個第一緩沖存儲器來測定所述第二預定條件相關(guān)的信息,所述傳輸控制器同所述基本系統(tǒng)接口聯(lián)合運行,以將所述第二請求信號提供給所述第一緩沖存儲器中的任何一個。4.按照權(quán)利要求3的數(shù)據(jù)通道控制器,其中所述數(shù)據(jù)表根據(jù)在所述第一緩沖存儲器和所述第二緩沖存儲器之間數(shù)據(jù)的傳輸被不斷更新,其中所述傳輸控制器,在所述第二預先確定條件的測定中,不斷檢查所述數(shù)據(jù)表。5.一種數(shù)據(jù)傳輸控制器,允許通過在第一處理器系統(tǒng)和一些I/O外設之間提供的外設數(shù)據(jù)通道進行的多重數(shù)據(jù)流并發(fā)傳輸?shù)囊篁?qū)動(demanddriven),所述數(shù)據(jù)傳輸控制器包括a)第一接口,包括第一緩沖存儲器,可同第一處理器系統(tǒng)的系統(tǒng)總線相連,所述第一接口提供在所述系統(tǒng)總線和所述第一緩沖存儲器之間,多重數(shù)據(jù)流的第一可變段部分的總線控制數(shù)據(jù)傳輸?shù)膱?zhí)行;b)多個第二接口,每一個都包含一第二緩沖存儲器,可同多個I/O設備相連,以在所述多個I/O設備和所述多個第二接口的所述各第二緩沖存儲器之間,提供多重數(shù)據(jù)流的各自第二可變段部分的傳輸;c)連接在所述第一緩沖存儲器和所述第二緩沖存儲器的每一個之間的緩沖存儲器,所述緩沖存儲器包括允許保存多重數(shù)據(jù)流的第三可變段部分的存儲塊;以及d)流控制器,其與所述第一接口、所述第二接口的每一個、所述緩沖存儲器相連,所述控制器響應于所述第二可變段部分的相應數(shù)據(jù)長度,所述流控制器有選擇地啟動,在所述緩沖存儲器的預先確定存儲塊同預定第二緩沖存儲器之間的數(shù)據(jù)傳輸。6.按照權(quán)利要求5的數(shù)據(jù)傳輸控制器,其中所述流控制器響應于所述第三可變段部分的相應數(shù)據(jù)長度,所述流控制器有選擇地啟動,在所述第一緩沖存儲器和所述各存儲塊之間的數(shù)據(jù)傳輸,以經(jīng)過對所述預定第二緩沖存儲器的數(shù)據(jù)傳輸,支持數(shù)據(jù)存在(availability)于所述預定存儲塊中。7.按照權(quán)利要求6的數(shù)據(jù)傳輸控制器,其中所述流控制器,經(jīng)過對所述第二緩沖存儲器的數(shù)據(jù)的組合傳輸,支持數(shù)據(jù)存在于所述存儲塊的每一個中。8.按照權(quán)利要求7的數(shù)據(jù)傳輸控制器,其中所述流控制器調(diào)節(jié)(moderate)所述第一可變段部分通過所述第一緩沖存儲器的傳輸,以使得多重數(shù)據(jù)流中每一個的傳輸,都同所述第二可變段部分通過所述第二緩沖存儲器的相應數(shù)據(jù)傳輸相一致地運行。9.按照權(quán)利要求8的數(shù)據(jù)傳輸控制器,其中所述流控制器用于將一個或多個所述存儲塊設置為獨立的循環(huán)FIFO緩沖存儲器。10.按照權(quán)利要求9的數(shù)據(jù)傳輸控制器,其中所述第一和第二緩沖存儲器是FIFO緩沖存儲器。11.提供對于多個I/O數(shù)據(jù)流的并發(fā)處理的計算機系統(tǒng),所述計算機系統(tǒng)包括a)第一處理單元,其包括第一存儲器,提供對多個以每一個都具有相應的數(shù)據(jù)傳輸速率為特征的數(shù)據(jù)流的保存;b)第二處理單元,用于對在所述多個數(shù)據(jù)流的數(shù)據(jù)段中的數(shù)據(jù)的操作;c)連接于所述第一和第二處理單元之間的通道控制器,用于所述多個數(shù)據(jù)流在所述第一和第二處理器之間的傳輸,所述通道控制器用于由所述多個數(shù)據(jù)流的每一個的所述相應數(shù)據(jù)傳輸速率所決定的所述多個數(shù)據(jù)流的數(shù)據(jù)段的有選擇的傳輸。全文摘要一種數(shù)字信道控制器(116),通過包含第一緩存器的基本系統(tǒng)接口(18)、包含多個第二緩存器的存儲器池(34)、一個或多個其每個都具有第三緩存器的外設設備控制多重數(shù)據(jù)流的傳送。各外設設備的每個都以預定的數(shù)據(jù)傳輸速率經(jīng)由外設接口(28,40,42,38)通過其第三緩存器傳送數(shù)據(jù)。仲裁器系統(tǒng)(26)與所述存儲器池(34)相連,響應在預定條件下根據(jù)數(shù)據(jù)的存在所提供的來自外設設備和基本系統(tǒng)接口的請求信號,有選擇地使數(shù)據(jù)傳輸?shù)较鄳牡谌彺嫫骱偷诙彺嫫?。文檔編號G06F13/38GK1218566SQ97194593公開日1999年6月2日申請日期1997年3月6日優(yōu)先權(quán)日1996年3月13日發(fā)明者唐納德·J·斯潘塞,詹姆斯·K·吉福德,斯里德哈·貝格爾,阿德里安·劉易斯,托馬斯·E·基爾伯恩,丹尼爾·B·戈克諾爾申請人:鉆石多媒體系統(tǒng)公司