專利名稱:將通道數(shù)分配給收到的數(shù)據(jù)包的方法和系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明一般涉及電子設(shè)備領(lǐng)域,尤其涉及在外圍設(shè)備與個(gè)人計(jì)算機(jī)之間進(jìn)行通信的改進(jìn)的接口機(jī)構(gòu),更涉及根據(jù)預(yù)定的優(yōu)先度將通道數(shù)分配給收到的數(shù)據(jù)包的一種方法。
對(duì)許多多媒體應(yīng)用而言,不僅處理器速度很重要,而且輸入/輸出帶寬也是限制其在個(gè)人計(jì)算機(jī)上應(yīng)用的一個(gè)決定性因素。為了克服這種限制,IEEE1394標(biāo)準(zhǔn)能使高性能多媒體與攝錄機(jī)、電視、立體聲、CD換碟機(jī)、set-top boxes、混響控制臺(tái)和音樂鍵盤以及傳統(tǒng)的個(gè)人計(jì)算機(jī)設(shè)備連接。作為公知的“FireWire””標(biāo)準(zhǔn),IEEE1394為便攜式和臺(tái)式計(jì)算機(jī)設(shè)備提供了一種總線接口標(biāo)準(zhǔn)。IEEE1394標(biāo)準(zhǔn)作為一種重要的鏈路技術(shù),將消費(fèi)者與計(jì)算機(jī)市場聯(lián)系起來,并描述了一種由先進(jìn)的通信協(xié)議所啟動(dòng)的串行總線。IEEE1394串行總線針對(duì)廉價(jià)系統(tǒng)而設(shè)計(jì),卻提供了高性能外圍總線所需的數(shù)據(jù)傳遞速率。
由電氣電子工程師協(xié)會(huì)(IEEE)及其許多計(jì)算機(jī)公司成員所開發(fā)的IEEE1394標(biāo)準(zhǔn)是一種串行總線接口,它能實(shí)現(xiàn)低成本、高速的數(shù)字?jǐn)?shù)據(jù)傳遞和通信。通過異步和同步數(shù)據(jù)傳遞兩種方式,設(shè)備之間的傳遞速度可以高達(dá)每秒400兆比特(mbps)。IEEE1394標(biāo)準(zhǔn)接口由于其運(yùn)行同步時(shí)間片系統(tǒng)而使其服從于視頻應(yīng)用。例如,如果系統(tǒng)配置成每1/15秒輸出一幀圖象,那么在發(fā)送的每個(gè)數(shù)據(jù)包內(nèi)至少有一幀圖象。這樣就產(chǎn)生了流暢的圖象。為此,IEEE1394標(biāo)準(zhǔn)接口能很好地與也在同步方式下運(yùn)行的、類似的異步傳輸模式(ATM)技術(shù)兼容。
IEEE1394標(biāo)準(zhǔn)的優(yōu)點(diǎn)在于實(shí)時(shí)傳輸數(shù)據(jù),為多媒體應(yīng)用提供理想的互連。采用小的、耐用和柔軟的電纜和電纜連接器,IEEE1394標(biāo)準(zhǔn)能節(jié)約成本并省去某些電纜設(shè)備。IEEE1394標(biāo)準(zhǔn)提供一種通用的輸入/輸出互連,將輸入/輸出通道集成在一起,使印刷電路板空間合并。再者,IEEE1394標(biāo)準(zhǔn)提供一種同級(jí)-同級(jí)通信配置,允許外圍設(shè)備相互直接通信,無需麻煩主機(jī)設(shè)備。
IEEE1394標(biāo)準(zhǔn)提供一種高速串行總線,它采用含有信頭的數(shù)據(jù)包數(shù)據(jù)。信頭包括路由信息。此外,數(shù)據(jù)包數(shù)據(jù)包含有效載荷數(shù)據(jù)。不必為長距離傳輸設(shè)計(jì)媒體的物理特性。IEEE1394標(biāo)準(zhǔn)為諸如在桌面總線上運(yùn)行的局域網(wǎng)之類的短距離傳輸而設(shè)計(jì)。該距離通常比桌面為長,但I(xiàn)EEE1394標(biāo)準(zhǔn)未打算用于局域網(wǎng)。因此,IEEE1394標(biāo)準(zhǔn)提供了一種高速互連取代串行總線和并行總線,以訪問諸如工作站、家用計(jì)算機(jī)、電視機(jī)、VCR以及攝錄機(jī),它們具有各種媒體類型,如音頻、視頻和圖文。
為了滿足接口設(shè)備按IEEE1394標(biāo)準(zhǔn)進(jìn)行通信的要求,要求識(shí)別所提供的數(shù)據(jù)包由特定的節(jié)點(diǎn)所接收。IEEE1394標(biāo)準(zhǔn)按可編程形式進(jìn)行。確定只有所需的數(shù)據(jù)包從外圍傳送到個(gè)人計(jì)算機(jī),要求只有所需的數(shù)據(jù)包才能釋放并傳送到個(gè)人計(jì)算機(jī)。現(xiàn)有技術(shù)不允許以可編程、靈活和可修改的方式選擇數(shù)據(jù)包。再者,現(xiàn)有用于1394總線的接口設(shè)備不能以可編程方式處理數(shù)據(jù)包信頭中保存的操作碼或tcodes(傳送碼)。現(xiàn)有用于IEEE1394總線的接口設(shè)備不允許從匹配數(shù)據(jù)模式的通道中選擇一條最高優(yōu)先度的通道。再者,現(xiàn)有系統(tǒng)不允許用匹配數(shù)據(jù)模式來匹配數(shù)據(jù)模式,以及將數(shù)據(jù)模式分配給特定的通道?,F(xiàn)有接口設(shè)備未提供一種方式確定多組所需模式用于匹配和將給定的數(shù)據(jù)模式分配給所提供的數(shù)據(jù)通道。
因此,需要識(shí)別所提供的數(shù)據(jù)包是由通信接口如IEEE1394標(biāo)準(zhǔn)接口中的特定節(jié)點(diǎn)所接收。
需要有一種方法和系統(tǒng)識(shí)別所提供的數(shù)據(jù)包是由按可編程形式的特定節(jié)點(diǎn)所接收。
需要有一種方法和系統(tǒng)取消某些數(shù)據(jù)包或排斥它們,允許有限選擇分配給給定的DMA通道的數(shù)據(jù)包。再者,通過一種可編程、靈活、自適應(yīng)的,尤其可適用于IEEE1394標(biāo)準(zhǔn)的方法和系統(tǒng)來滿足這種需要。
需要一種方法和系統(tǒng)來處理數(shù)據(jù)包信頭中保存的操作碼或傳送碼。
進(jìn)一步需要一種方法和系統(tǒng),它能從匹配所需信頭數(shù)據(jù)模式的通道中選擇最高優(yōu)先度的通道。需要一種方式與數(shù)據(jù)包內(nèi)的數(shù)據(jù)模式匹配,并將數(shù)據(jù)包分配到特定通道。
還需要一種方法和系統(tǒng),指定多套所需的數(shù)據(jù)模式,匹配并將給定的匹配數(shù)據(jù)模式分配給給定的數(shù)據(jù)通道。
根據(jù)本發(fā)明,提供一種將數(shù)據(jù)包分配給數(shù)據(jù)通信通道的方法和系統(tǒng),它實(shí)際上克服或減少了與以前研制的方法和系統(tǒng)有關(guān)的涉及將數(shù)據(jù)包分配給數(shù)據(jù)通信DMA通道的缺點(diǎn)和問題。
根據(jù)本發(fā)明的一個(gè)方面,提供一種將數(shù)據(jù)包分配給數(shù)據(jù)通信通道的方法和系統(tǒng),包括在一個(gè)數(shù)據(jù)包比較電路內(nèi)接收至少一部分?jǐn)?shù)據(jù)包。該方法和系統(tǒng)將至少一部分?jǐn)?shù)據(jù)包與預(yù)定的匹配數(shù)據(jù)集比較。這部分?jǐn)?shù)據(jù)包和匹配數(shù)據(jù)集包括可編程改變的數(shù)據(jù)字段,它相應(yīng)于至少一條數(shù)據(jù)通信或DMA通道。如果在部分?jǐn)?shù)據(jù)包與匹配數(shù)據(jù)集之間有預(yù)定的一致性,本方法和系統(tǒng)將直接把數(shù)據(jù)包傳送到數(shù)據(jù)通信或DMA通道。當(dāng)多于一個(gè)數(shù)據(jù)包分配給給定的通道時(shí),本方法還包括在優(yōu)先的譯碼器電路中接收該比較數(shù)據(jù)包連同其他類似比較數(shù)據(jù)包的步驟。本方法根據(jù)與每個(gè)比較數(shù)據(jù)包和比較類似數(shù)據(jù)包有關(guān)的預(yù)定優(yōu)先度的數(shù)據(jù)值,將至少一個(gè)比較數(shù)據(jù)包和比較類似數(shù)據(jù)包直接傳送到至少一條數(shù)據(jù)通信通道。
本發(fā)明的一個(gè)技術(shù)特點(diǎn)在于它提供了一種可編程、靈活的和合適的方式,來確定一個(gè)特定的數(shù)據(jù)包應(yīng)到達(dá)一條特定的DMA通信通道。
本發(fā)明的另一個(gè)技術(shù)特點(diǎn)在于它提供了一種可編程、靈活的和合適的方式,從特定的數(shù)據(jù)通道中選擇和排斥某些數(shù)據(jù)包。
本發(fā)明的另一個(gè)技術(shù)特點(diǎn)在于它提供了一種方便的機(jī)理或方法,一一種靈活和可編程的方式采用數(shù)據(jù)包信頭中的操作碼或傳送碼和其他的編碼,以確定給定的數(shù)據(jù)包的分配和優(yōu)先度。
本發(fā)明的另一個(gè)技術(shù)特點(diǎn)在于它提供了一種快速、有效和實(shí)用的方式,區(qū)分到達(dá)一條數(shù)據(jù)通信通道的一個(gè)數(shù)據(jù)包的優(yōu)先度。
本發(fā)明的另一個(gè)技術(shù)特點(diǎn)在于它提供了一種方法,以指定匹配特定匹配的數(shù)據(jù)集的數(shù)據(jù)包應(yīng)當(dāng)?shù)竭_(dá)一條特定的數(shù)據(jù)通信或DMA通道。
本發(fā)明的另一個(gè)技術(shù)特點(diǎn)在于它提供了一種方法,以指定相應(yīng)于幾個(gè)匹配數(shù)據(jù)集的幾種數(shù)據(jù)包應(yīng)當(dāng)?shù)竭_(dá)一條數(shù)據(jù)通信或DMA通道。
通過以下結(jié)合附圖的詳細(xì)描述,可以對(duì)本發(fā)明及其優(yōu)點(diǎn)獲得更完全的了解,其中,相同的標(biāo)號(hào)表示相同的特征。
圖1表示結(jié)合本發(fā)明的一個(gè)個(gè)人計(jì)算機(jī)環(huán)境的工作概圖;圖2提供一個(gè)本發(fā)明的功能邏輯的一般操作概圖;圖3表示本發(fā)明的比較器邏輯的概圖;圖4提供一個(gè)更詳細(xì)的本發(fā)明的比較器邏輯的概圖;圖5表示更詳細(xì)地表示用于本發(fā)明的數(shù)據(jù)包接收機(jī)邏輯的信頭比較器功能;圖6至圖9表示可能的數(shù)據(jù)值,用于應(yīng)用于本發(fā)明的匹配數(shù)據(jù)集字段;圖10表示本發(fā)明的可編程選擇的寫使能數(shù)據(jù)觸發(fā)器的一個(gè)實(shí)施例;圖11提供一種地址字段例子,用以實(shí)施本發(fā)明的可編程的位選擇;圖12提供一個(gè)直接存儲(chǔ)器存取、多通道的環(huán)境,它在時(shí)間上是多重的,表示本發(fā)明的DMA指令處理操作;圖13提供一張表,表示根據(jù)當(dāng)前所用的通道分配的優(yōu)先度;圖14表示本發(fā)明應(yīng)用于自動(dòng)引導(dǎo)功能的部分接口設(shè)備配置;圖15提供一張PCI主總線命令表,當(dāng)圖14所示的自動(dòng)引導(dǎo)引腳設(shè)置有效時(shí),它對(duì)應(yīng)于內(nèi)部PCI地址總線的位31和30;圖16以方框圖形式表示本發(fā)明的局部總線接口;圖17圖解表示本發(fā)明檢測水平和垂直同步信號(hào)的出現(xiàn)時(shí),接口設(shè)備的邏輯;圖18表示本發(fā)明的另一個(gè)方面,包括直接將單個(gè)數(shù)據(jù)包送到單條掃描線的操作;圖19表示本發(fā)明實(shí)施例的操作,將單個(gè)數(shù)據(jù)包映射到多條視頻掃描線;
圖20表示本發(fā)明的DMA包處理器所采用的數(shù)據(jù)包控制列表的數(shù)據(jù)配置和數(shù)據(jù)緩沖器;圖21表示DMA機(jī)的部分流程圖,它表示本發(fā)明的包處理器的操作;圖22提供DMA機(jī)的部分流程圖,它表示本發(fā)明的異步發(fā)送操作;圖23是DMA機(jī)的部分流程圖,它表示本發(fā)明的同步發(fā)送操作;圖24提供本發(fā)明一個(gè)典型的輔助功能流程圖;圖25表示DMA機(jī)的部分流程圖,它表示局部總線至/來自本發(fā)明的PCI總線操作;圖26是一個(gè)示意圖,表示本發(fā)明的FIFO電路中擁有的功能。
結(jié)合
本發(fā)明的較佳實(shí)施例,其中,相同的標(biāo)號(hào)表示各張圖中相同或相應(yīng)的部件。
圖1大致表示個(gè)人計(jì)算機(jī)環(huán)境10,它包括由虛線框12表示的個(gè)人計(jì)算機(jī)12和虛線框14表示的有關(guān)外圍設(shè)備。在個(gè)人計(jì)算機(jī)12內(nèi)有各種控制個(gè)人計(jì)算機(jī)操作的總線和節(jié)點(diǎn)。例如,接口總線16支持本發(fā)明的三端口物理層接口18與接口設(shè)備20的通信。串行EPROM22支持PCI-接口設(shè)備20的操作。PCI-接口設(shè)備20進(jìn)一步與PCI總線24和輔助端口局部總線26連接。還與PCI總線24通信的是局部總線28和PCI媒介物30和32。PCI主橋(host bridge)34完成局部總線28與PCI總線24之間的主橋功能。輔助端口局部總線26與閃爍PROM(或RPL ROM)36、直接內(nèi)存存取(DMA)通道控制靜態(tài)RAM(SRAM)38、用戶定義的功能(AUX)40以及用于視頻輸入和輸出的圖象縮放視頻(ZV)端口42連通。主機(jī)局部總線28與主機(jī)CPU44和局部存儲(chǔ)器46連通。
外圍設(shè)備14可以與物理層接口設(shè)備18連通,它包括CD ROM48、激光打印機(jī)50、臺(tái)式攝像機(jī)52以及數(shù)字盒式錄像機(jī)(VCR),后者與視頻電纜盒56連接。
圖1中,PCI接口ASIC20完成的主要功能是控制數(shù)據(jù)包在支持PCI總線24的環(huán)境下工作的設(shè)備與高速輸入/輸出外部環(huán)境(諸如IEEE1394-1995標(biāo)準(zhǔn)環(huán)境)下工作的設(shè)備之間進(jìn)行傳送。本實(shí)施例的PCI接口ASIC20符合IEEE標(biāo)準(zhǔn)1394-1995,并符合2.0修訂版PCI規(guī)格。再者,PCI接口ASIC20尤其在IEEE1394-1995環(huán)境下完成循環(huán)主控功能,并具有檢測丟失的循環(huán)起始信息的能力。PCI接口ASIC20有能力產(chǎn)生32位循環(huán)的冗余校驗(yàn)(CRC)信號(hào),以傳送IEEE1394標(biāo)準(zhǔn)數(shù)據(jù)包,以及在收到IEEE1394數(shù)據(jù)包時(shí)進(jìn)行32位CRC校驗(yàn)。PCI接口ASIC20支持PCI接口ASIC20與物理接口層18之間的同步屏障。再者,PCI接口ASIC20支持IEEE1394傳送速率為100、200和400mbps,以及提供3種規(guī)模的可編程FIFO(例如異步傳送、同步傳送和通用接收)。
如以下將要討論的,PCI接口ASIC20提供了可編程通道地址比較器邏輯,以接收進(jìn)入的數(shù)據(jù)包并將它們分配到DMA通道。本發(fā)明的至少一個(gè)實(shí)施例提供了5條分散-集中DMA通道,其中每條通道的數(shù)據(jù)包可以編程支持(1)異步數(shù)據(jù)包傳送,(2)同步數(shù)據(jù)包傳送,(3)異步數(shù)據(jù)包接收,以及(4)同步數(shù)據(jù)包接收功能。
PCI接口ASIC20還提供PCI主控總線功能以支持DMA操作,以及PEI從屬功能以對(duì)內(nèi)部寄存器進(jìn)行讀和寫訪問。為了實(shí)施一條32位PCI地址-數(shù)據(jù)通道,PCI接口ASIC20不僅提供PCI地址-數(shù)據(jù)一致校驗(yàn),而且對(duì)中斷事件進(jìn)行軟件控制。PCI接口ASIC20提供一種可編程外部邏輯總線,以建立一條專用通道至外部邏輯。此外,PCI接口ASIC20提供一種8位或16位接口至縮放視頻(ZV)端口,將視頻數(shù)據(jù)直接傳送到外部活動(dòng)視頻存儲(chǔ)器載體。
圖2提供一個(gè)方塊圖58,表示本發(fā)明的PCI接口ASIC20的功能分配。PCI接口ASIC20內(nèi)的邏輯包括PCI總線邏輯60,它包括與串行EPROM22連通的串行EPROM接口62。PCI主邏輯64和PCI從屬邏輯66以及PCI配置和控制狀態(tài)寄存器68,提供必要的邏輯用以與PCI總線24通信。局部總線接口邏輯70提供必要的控制邏輯,與輔助通道的局部總線26連接。
在PCI接口ASIC20內(nèi),DMA邏輯72包括DMA引擎74和DMA控制與狀態(tài)寄存器76,控制與PCI總線邏輯60和FIFO邏輯78的通信和操作。FIFO邏輯78包括通用接收FIFO80、異步發(fā)送FIFO82、同步發(fā)送FIFO84、指針地址映射邏輯86和FIFO控制和狀態(tài)寄存器88。
鏈路層控制邏輯90包括控制和狀態(tài)寄存器92,它控制和報(bào)告鏈路層控制邏輯90內(nèi)所有功能的狀態(tài)。包發(fā)送控制邏輯98和包接收控制邏輯102與邏輯電路以及循環(huán)計(jì)時(shí)器94和循環(huán)監(jiān)視器96一起工作。物理鏈路接口邏輯104包括并-串和串-并功能。
圖2中,PCI總線邏輯60實(shí)現(xiàn)將PCI接口ASIC20連接到PCI總線24的邏輯。PCI從屬邏輯66提供一種能力使外部PCI媒介物能讀和寫從屬接口控制邏輯,以評(píng)估所有PCI接口20的控制以及狀態(tài)寄存器68、76、88和92,它們是應(yīng)用軟件控制PCI接口ASIC20和監(jiān)視其操作狀態(tài)所需的。PCI主邏輯64向DMA邏輯72提供通過PCI總線24(作為主設(shè)備)啟動(dòng)數(shù)據(jù)傳送的能力。PCI結(jié)構(gòu)控制和狀態(tài)寄存器68可以為個(gè)人計(jì)算機(jī)系統(tǒng)12的應(yīng)用軟件用于配置和編程PCI接口ASIC20。這包括PCI所需的控制和基本寄存器,以及用于PCI接口ASIC20及各種控制和狀態(tài)寄存器的中斷控制和狀態(tài)信號(hào)。局部總線接口邏輯70包括預(yù)備端口,連接和控制RAM、ROM、預(yù)備功能、圖象縮放視頻端口和四個(gè)GPIO接口。再者,串行EEPROM接口62提供某些所需的PCI配置數(shù)據(jù),通電后恒定的系統(tǒng)控制寄存器的信息。
串行EEPROM接口62提供PCI接口ASIC20與串行EEPROM22之間的通信(圖1)。通電時(shí),串行EEPROM接口62使來自串行EEPROM22的PCI配置寄存器68的少數(shù)單元初始化。而串行EEPROM狀態(tài)機(jī)則訪問串行EEPROM22,任何進(jìn)入的PCI從屬訪問都隨著重試狀態(tài)而終止。
串行EEPROM22還包括配置數(shù)據(jù)用于PCI配置控制和狀態(tài)寄存器68。該信息由主機(jī)CPU44通過串行EEPROM22的控制寄存器讀寫,它模擬兩線串行總線協(xié)議。該兩線串行總線由主機(jī)處理器44處理,將串行EEPROM22的輸出使能位的數(shù)值設(shè)為“1”,然后訪問數(shù)據(jù)和時(shí)鐘位,模擬兩線串行總線協(xié)議。PCI配置控制和狀態(tài)寄存器68包括一個(gè)定時(shí)器位,提供一種時(shí)間基準(zhǔn)為兩線串行總線協(xié)議事件計(jì)時(shí)。
PCI主控邏輯64實(shí)現(xiàn)了PCI接口ASIC20作為主控設(shè)備運(yùn)行于PCI總線24上所需的控制。該邏輯允許存儲(chǔ)器讀、存儲(chǔ)器寫、存儲(chǔ)器讀行和存儲(chǔ)器寫行以及寫無效指令的操作。至于存儲(chǔ)器的讀功能,PCI接口ASIC20 DMA讀操作在PCI總線上形成了存儲(chǔ)器讀行命令的存儲(chǔ)器讀。至于存儲(chǔ)器的寫操作,PCI接口ASIC20DMA寫操作在PCI總線上形成了PCI存儲(chǔ)器寫、存儲(chǔ)器寫行或存儲(chǔ)器寫無效命令。
PCI從屬邏輯66執(zhí)行PCI接口ASIC20作為從屬設(shè)備運(yùn)行在PCI總線上所必需的控制邏輯。使能時(shí),PCI從屬功能66在68內(nèi)所含的基本地址寄存器所定義的PCI存儲(chǔ)器地址范圍內(nèi),響應(yīng)存儲(chǔ)器的讀或?qū)懨睢.?dāng)由混雜控制寄存器中的從屬數(shù)據(jù)串的位使能時(shí),PCI從屬邏輯66執(zhí)行從屬數(shù)據(jù)串的傳送。當(dāng)由混雜控制寄存器中的控制位使能時(shí)PCI從屬邏輯66執(zhí)行消息寫操作。
PCI配置控制和狀態(tài)寄存器68為系統(tǒng)和應(yīng)用軟件提供了對(duì)PCI接口ASIC20進(jìn)行PCI操作配置的能力。
局部總線接口邏輯70提供一組分享共用邏輯的專用的輸入/輸出端口。這些端口是PCI總線24或DMA引擎可訪問的。在這些端口上的外部設(shè)備不能用作主控設(shè)備。這些端口允許PCI接口ASIC20連接到外部設(shè)備或接口,在這類設(shè)備之間自行提供數(shù)據(jù)傳送。除了圖象縮放視頻總線接口,所有的邏輯總線接口都與局部時(shí)鐘同步,它是PCI時(shí)鐘所提供的方式。ZV端口時(shí)鐘編程是以PCI時(shí)鐘、IEEE1394時(shí)鐘或外部時(shí)鐘的方式為基礎(chǔ)。
局部總線接口邏輯70提供一種分享局部地址總線,在本實(shí)施例中它是具有可編程等待狀態(tài)和就緒條件的16位地址總線和一個(gè)分享8位或16位讀或?qū)憯?shù)據(jù)總線。局部總線地址和數(shù)據(jù)總線在ROM、RAM、AUX和ZOOM端口功能中間共享。而且,ZV輸出端口提供水平同步、垂直同步有效數(shù)據(jù)和ZV-PIXEL.CLR。局部總線接口邏輯70的其它輸入和輸出包括四個(gè)通用I/O(GPIO)引腳,以可編程方向和極性功能為特征。本實(shí)施例的局部總線接口邏輯70的混雜信號(hào)包括局部總線時(shí)鐘輸出、復(fù)位輸出、中斷輸出和外部預(yù)備輸入。PCI配置控制和狀態(tài)寄存器68為局部總線接口邏輯70的操作配置提供必需的控制指令和信息。
PCI接口ASIC20包括一種遠(yuǎn)程程序加載(RPL)只讀存儲(chǔ)器(ROM),它向個(gè)人計(jì)算機(jī)12提供從附屬的RPL ROM中讀出引導(dǎo)碼的能力。它允許系統(tǒng)從IEEE1394設(shè)備引導(dǎo),即使在電源復(fù)位時(shí)系統(tǒng)可能缺少特定的IEEE1394引導(dǎo)碼。此外,將推廣ROM接口,提供訪問RPL ROM之外的功能。局部總線接口邏輯70支持PCI從屬和內(nèi)部DMA讀/寫存取至諸如閃爍PROM36、SRAM38和其它RAM類設(shè)備,如圖1所示。ROM訪問由PCI配置控制和狀態(tài)寄存器68所控制,并通過將1寫入至ROM基地址寄存器而使能。ROM接口可以配置成8位或16位寬的數(shù)據(jù),該數(shù)由等待狀態(tài)或類似的功能所規(guī)定。ROM選項(xiàng)在電源復(fù)位時(shí)通過串行PROM22配置,并通過PCI從屬通道進(jìn)入。
RAM接口的訪問可通過PCI配置控制和狀態(tài)寄存器68內(nèi)的第二個(gè)以PCI存儲(chǔ)器為基礎(chǔ)的寄存器。該存儲(chǔ)器可以用作連接到其它功能,諸如數(shù)字信號(hào)處理器的DMA控制配置或數(shù)據(jù)緩沖器或共享存儲(chǔ)器。該RAM接口可以配置成16位或8位寬的數(shù)據(jù),該數(shù)由等待狀態(tài)或外部就緒速度所規(guī)定。
輔助接口是通用輸入/輸出端口,它可以通過PCI配置控制和狀態(tài)寄存器68內(nèi)的第三PCI存儲(chǔ)器為基礎(chǔ)的地址寄存器存取。該端口可以用來實(shí)現(xiàn)一種至外部專用資源,諸如壓縮/解壓縮邏輯或視頻處理器/幀緩沖器的高速數(shù)據(jù)通道。如果ZV端口被使能,則一部分AUX地址空間被映射到ZV端口。否則,在較佳實(shí)施例中該空間作為一部分輔助地址基。在本實(shí)施例中,備用接口可以配置成8位或16位寬的數(shù)據(jù),該數(shù)由等待狀態(tài)或外部預(yù)備速度所規(guī)定。
在本實(shí)施例中,F(xiàn)IFO邏輯圍繞一個(gè)256×33的時(shí)鐘雙端口RAM設(shè)計(jì),它劃分為3個(gè)邏輯FIFO。每個(gè)FIFO可編程長度為0至256字。對(duì)于一定組合的FIFO容量,3個(gè)FIFO的總長度應(yīng)少于或等于256字。
通用接收FIFO(GRF)80包括讀和寫一對(duì)指針,用于對(duì)FIFO雙端口RAM進(jìn)行存取。每個(gè)指針在從0至fifo_size_值(先進(jìn)先出隊(duì)列長度值)減1的范圍內(nèi)計(jì)數(shù)。每個(gè)指針的FIFO(先進(jìn)先出)RAM尋址范圍由產(chǎn)生偏移量的邏輯所設(shè)定。該偏移量將加到指針值,將其映射到單一范圍的RAM地址。讀指針將由活動(dòng)DMA通道所用,以從RAM的PCI側(cè)讀得異步或同步數(shù)據(jù)包,并將它們寫入主存儲(chǔ)器。IEEE1394接收機(jī)采用寫指針,將通過IEEE1394總線收到的異步或同步數(shù)據(jù)包寫入FIFORAM的鏈路側(cè)。由于FIFO雙端口RAM的任一側(cè)屬于不同的時(shí)鐘域,兩個(gè)指針通過同步邏輯連通到FIFO RAM的兩側(cè)。
異步發(fā)送FIFO82包括讀和寫一對(duì)指針,用于存取FIFO雙端口RAM。每個(gè)指針的計(jì)數(shù)范圍從0至其fifo_size_值減1。每個(gè)指針的FIFO RAM地址范圍由產(chǎn)生一個(gè)偏移量的邏輯所設(shè)定。該偏移量將加到指針值,將其映射到單一范圍的RAM地址?;顒?dòng)DMA通道采用寫指針,將從主存儲(chǔ)器讀得的異步數(shù)據(jù)包寫入RAM的PCI側(cè)。IEEE1394發(fā)射機(jī)將利用讀指針,從FIFO RAM的鏈路側(cè)讀得異步數(shù)據(jù)包,并通過IEEE1394總線發(fā)送它們。由于FIFO雙端口RAM的每一側(cè)屬于不同的時(shí)鐘域,兩個(gè)指針通過同步邏輯連通到FIFO RAM的兩側(cè)。
異步發(fā)送FIFO84包括讀和寫一對(duì)指針,用于存取FIFO雙端口RAM。每個(gè)指針的計(jì)數(shù)范圍從0至其fifo_size_值減1。每個(gè)指針的FIFO RAM地址范圍由產(chǎn)生一個(gè)偏移量的邏輯所設(shè)定。該偏移量將加到指針值,將其映射到單一范圍的地址。活動(dòng)DMA通道采用寫指針,將從主存儲(chǔ)器讀得的異步數(shù)據(jù)包寫入FIFO RAM的PCI側(cè)。IEEE1394發(fā)射機(jī)利用讀指針,從FIFO RAM的鏈路側(cè)讀得異步數(shù)據(jù)包。并通過IEEE1394總線發(fā)送它們。由于FIFO雙端口RAM的每一側(cè)屬于不同的時(shí)鐘域,讀和寫指針通過同步邏輯連通到FIFO RAM的兩側(cè)。
指針雙端口地址映射邏輯86采用來自FIFO長度寄存器的3個(gè)長度值,將每對(duì)FIFO讀-寫指針映射成FIFO雙端口RAM唯一的地址范圍。根據(jù)下表所示的等式,將形成指針地址映射功能FIFO控制和狀態(tài)寄存器88實(shí)現(xiàn)對(duì)FIFO邏輯78的控制和狀態(tài)寄存器設(shè)置。FIFO控制和狀態(tài)寄存器88包括FIFO長度寄存器,用以設(shè)定每個(gè)邏輯FIFO的長度。該寄存器提供3個(gè)長度參數(shù),對(duì)同步發(fā)送FIFO84、異步發(fā)送FIFO82和通用接收FIFO80的長度編程。該寄存器通過PCI-slave(從屬)66的讀或?qū)懖僮鞔嫒?。PCI-側(cè)的FIFO指針寫-讀端口提供一種PCI-slave66寫-讀端口,通過軟件取出PCI-側(cè)的FIFO指針的當(dāng)前值,或?qū)?shù)值寫入其中。鏈路側(cè)FIFO指針的寫-讀端口提供一種PCI-slave讀端口,通過軟件取出鏈路側(cè)指針的當(dāng)前值或?qū)?shù)值寫入其中。通用接收FIFO POP-PUSH端口可以接收32位從屬寫,使數(shù)據(jù)的四字節(jié)字壓入GRF80的頂部。從該端口的32位從屬讀使數(shù)據(jù)四字節(jié)字彈出GRF80。異步發(fā)送FIFOPOP-PUSH(出-入棧)端口可以接收寫入該端口的32位從屬寫,使數(shù)據(jù)四字節(jié)字被壓入異步發(fā)送FIFO的頂部。從該端口的32位從屬讀使數(shù)據(jù)四字節(jié)字彈出異步發(fā)送FIFO82的頂部。同步發(fā)送FIFO POP-PUSH端口可以接收32位從屬邏輯寫入該端口,使數(shù)據(jù)的四字節(jié)字壓入異步發(fā)送FIFO84的頂部。32位從屬邏輯從該端口的讀使數(shù)據(jù)的四字節(jié)字彈出異步發(fā)送FIFO84的頂部。FIFO控制標(biāo)志狀態(tài)讀端口提供從屬邏輯讀入,返回最后數(shù)據(jù)的四字節(jié)字的位33的數(shù)值,后者從前述的3個(gè)FIFO之一彈出。FIFO診斷試驗(yàn)和控制寄存器提供一種PCI從屬讀-寫端口,由軟件配置用于診斷試驗(yàn)的FIFO邏輯并控制其操作。而且,發(fā)送FIFO閾值寄存器提供一個(gè)PCI-從屬的讀-寫端口,由軟件為同步和異步發(fā)送FIFO設(shè)定發(fā)送閾值。
CRC邏輯100實(shí)現(xiàn)執(zhí)行該功能的邏輯,包括在發(fā)送邏輯產(chǎn)生的包數(shù)據(jù)流的包信頭部分產(chǎn)生32位的自動(dòng)DIN CRC糾錯(cuò)碼。發(fā)送器將該碼插入到包信頭以后的數(shù)據(jù)流中。至于裝載數(shù)據(jù)的包,CRC邏輯100在發(fā)送邏輯產(chǎn)生的包數(shù)據(jù)流的數(shù)據(jù)裝載部分產(chǎn)生32位自動(dòng)DIN CRC糾錯(cuò)碼。發(fā)送器將該碼插入到包數(shù)據(jù)流的末尾。CRC邏輯100在入局包數(shù)據(jù)流的包信頭部分產(chǎn)生32位自動(dòng)DIN CRC糾錯(cuò)碼。如果計(jì)算的編碼等于隨包發(fā)送的包信頭CRC,接收機(jī)認(rèn)為該包信頭正確。此外,CRC邏輯100在入局包數(shù)據(jù)流的裝載部分產(chǎn)生32位自動(dòng)DIN CRC糾錯(cuò)碼。如果該計(jì)算的編碼等于隨包發(fā)送的數(shù)據(jù)CRC編碼,接收機(jī)認(rèn)為該數(shù)據(jù)裝載正確。
1394鏈路層邏輯90按IEEE-1394-1995標(biāo)準(zhǔn)的規(guī)定實(shí)現(xiàn)IEEE1394鏈路層控制邏輯(LLC)。該功能控制IEEE1394包數(shù)據(jù)在FIFO邏輯78與IEEE1394總線上的其它設(shè)備之間傳送。
1394鏈路層控制和狀態(tài)寄存器92實(shí)現(xiàn)應(yīng)用軟件所需的控制和狀態(tài)寄存器邏輯,以控制LLC的操作并監(jiān)視其操作。1394總線數(shù)-節(jié)點(diǎn)數(shù)寄存器為應(yīng)用軟件提供界面,以對(duì)總線和節(jié)點(diǎn)數(shù)編程。1394鏈路層控制寄存器為應(yīng)用軟件提供界面,以控制LLC的操作模式。1394鏈路層中斷狀態(tài)寄存器為應(yīng)用軟件提供界面,以對(duì)LLC產(chǎn)生的中斷原因解碼,并提供一種機(jī)理清除該中斷狀態(tài)。1394鏈路層中斷使能寄存器為應(yīng)用軟件提供界面,以有選擇地使能中斷狀態(tài)寄存器中的狀態(tài)位,以產(chǎn)生一個(gè)LLC中斷,或使它們不產(chǎn)生LLC中斷。1394循環(huán)定時(shí)器寄存器為應(yīng)用軟件提供界面,用一個(gè)初始值對(duì)循環(huán)定時(shí)器編程,或讀出其當(dāng)前值。當(dāng)LLC作為循環(huán)主控時(shí),該定時(shí)器將用來為每隔125微秒循環(huán)發(fā)送起始包定時(shí)。1394物理層存取寄存器為應(yīng)用軟件提供界面,將數(shù)據(jù)寫入物理層I/F18控制和狀態(tài)寄存器或從其讀出。
1394診斷測試控制寄存器為應(yīng)用軟件提供界面,以執(zhí)行1394LLC邏輯的診斷測試。1394鏈路層控制和狀態(tài)寄存器92還包括DMA通道4-0字0接收包比較值寄存器。每個(gè)寄存器指定為DMA通道比較器的一個(gè)邏輯功能。DMA通道比較器使比較值寄存器中所選擇的一個(gè)位單元集合與進(jìn)入數(shù)據(jù)包的第一四字節(jié)字(字0)的位單元對(duì)應(yīng)。匹配的位單元由包含在字0接收包比較屏蔽寄存器中的屏蔽值確定。DMA通道4-0字0接收包比較屏蔽寄存器指定為相應(yīng)的DMA通道比較器。DMA通道比較邏輯采用該寄存器中的屏蔽值,選擇字0中的位單元,它與相對(duì)字0接收比較值寄存器中相應(yīng)的位單元匹配。DMA通道4-0字1接收包比較值寄存器指定為DMA通道比較器的一個(gè)邏輯功能。DMA通道比較器使比較值寄存器中的選擇的一位單元集合與進(jìn)入數(shù)據(jù)包的第二四字節(jié)字(字1)的相應(yīng)的位單元匹配。匹配的位單元由字1接收包比較屏蔽寄存器包含的屏蔽值指定。而且,將DMA通道4-0字1接收包比較屏蔽寄存器分配給相應(yīng)的DMA通道比較器。DMA通道比較邏輯采用該寄存器內(nèi)的屏蔽值選擇字1中的位單元,它與字1中的接收比較值寄存器中相應(yīng)的位單元匹配。
再者,1394鏈路層控制和狀態(tài)寄存器92包括占線重試計(jì)數(shù)寄存器,其內(nèi)容確定了當(dāng)從目的節(jié)點(diǎn)收到占線確認(rèn)時(shí),1394發(fā)送器應(yīng)當(dāng)重試發(fā)送異步包的次數(shù)。應(yīng)用軟件將通過PCI從屬存取讀寫該寄存器。占線重試發(fā)送時(shí)間間隔寄存器包含了時(shí)間間隔,即當(dāng)每次嘗試收到占線確認(rèn)信號(hào)時(shí),發(fā)送器必須在連續(xù)的重試嘗試之間延遲的間隔。應(yīng)用軟件通過PCI從屬存取讀寫該寄存器。而且,有一個(gè)狀態(tài)機(jī)矢量寄存器為軟件提供一種能力,以監(jiān)視LLC內(nèi)實(shí)現(xiàn)的每個(gè)狀態(tài)機(jī)的狀態(tài)矢量。此外,F(xiàn)IFO錯(cuò)誤計(jì)數(shù)器計(jì)數(shù)在包發(fā)送期間在異步和同步發(fā)送FIFO的82和84發(fā)生的欠載運(yùn)行(under-runs),以及在包接收期間在GRF80發(fā)生的超限運(yùn)行(over-runs)。
包接收控制邏輯102執(zhí)行接收進(jìn)入的IEEE1394包所需的邏輯。接收控制邏輯符合IEEE1394-1995所規(guī)定的詳細(xì)功能要求。其中包括以下的功能,利用總線和節(jié)點(diǎn)ID寄存器和/或DMA通道接收包比較器判斷進(jìn)入的異步或同步包是否收到。CRC邏輯功能通過校驗(yàn)包信頭CRC證實(shí)正確收到了入局包。如果包具有有效負(fù)荷,數(shù)據(jù)CRC將被校驗(yàn),如果包通過了地址和CRC校驗(yàn),收到的包裝入GRF80。包接收器控制邏輯102對(duì)異步接收包產(chǎn)生確認(rèn)。
循環(huán)定時(shí)器邏輯96完成進(jìn)行循環(huán)定時(shí)器的邏輯功能。循環(huán)定時(shí)器邏輯96符合IEEE1394-1995標(biāo)準(zhǔn)所規(guī)定的循環(huán)定時(shí)功能。循環(huán)定時(shí)器包含循環(huán)計(jì)數(shù)器和循環(huán)偏移量定時(shí)器。偏移量定時(shí)器的定時(shí)范圍是自由的,或根據(jù)1394LLC控制和狀態(tài)寄存器92中的主控循環(huán)和循環(huán)資源位,或按裝載在所選的引腳上信號(hào)由低至高的轉(zhuǎn)換時(shí)重新加載,或從接收機(jī)中取出重裝值重新加載。循環(huán)定時(shí)器應(yīng)當(dāng)支持同步數(shù)據(jù)傳送。循環(huán)時(shí)間將為32位寬。本實(shí)施例中,低階12位按模3072計(jì)數(shù)器計(jì)數(shù),每24.576MHZ時(shí)鐘周期或(40.69ns)增加1。接下來的13個(gè)高階位將是8khz(或125微秒)計(jì)數(shù),最高7位計(jì)數(shù)以秒計(jì)。
循環(huán)監(jiān)視邏輯94執(zhí)行完成循環(huán)監(jiān)視功能的邏輯。循環(huán)監(jiān)視邏輯94支持同步數(shù)據(jù)傳送,監(jiān)視LLC的動(dòng)作并處理同步動(dòng)作的調(diào)度。當(dāng)循環(huán)監(jiān)視邏輯94接收或發(fā)送一個(gè)循環(huán)起始包時(shí),循環(huán)監(jiān)視邏輯94通過產(chǎn)生一個(gè)循環(huán)起始或循環(huán)接收中斷,表示這些事件的發(fā)生。循環(huán)監(jiān)視邏輯94還檢測丟失的循環(huán)起始包,并產(chǎn)生一個(gè)循環(huán)失去中斷。當(dāng)完成同步循環(huán)時(shí),循環(huán)監(jiān)視邏輯94發(fā)出循環(huán)完成中斷。當(dāng)循環(huán)主控的使能位確定在1394LLC控制和狀態(tài)寄存器92時(shí),循環(huán)監(jiān)視邏輯94發(fā)出發(fā)送信號(hào),發(fā)送循環(huán)起始包。
1394包發(fā)送控制邏輯執(zhí)行的邏輯是控制IEEE1394包或者從同步發(fā)送FIFO82或者從異步發(fā)送FIFO84移到PHY-LINK接口邏輯104,通過IEEE1394總線發(fā)送。發(fā)送控制邏輯98符合IEEE1394-1995標(biāo)準(zhǔn)規(guī)定的功能要求。發(fā)送控制邏輯98使發(fā)送包的格式格式化。
1394包發(fā)送控制邏輯98從同步發(fā)送FIFO82卸下四字節(jié)字,并使它們正確地格式成32位并行的1394異步包數(shù)據(jù)流??刂七壿?8從同步發(fā)送FIFO82中卸下四字節(jié)字并正確地把它們格式化成一個(gè)32位的平行1394同步包數(shù)據(jù)流。采用CRC邏輯為包的信頭和有效負(fù)荷部分計(jì)算CRC碼,控制邏輯98在被發(fā)送包的格式所要求的時(shí)隙中將CRC碼插入包數(shù)據(jù)流。1394包發(fā)送控制邏輯98將并行包數(shù)據(jù)流輸入到PHY-LINK接口邏輯,從并行轉(zhuǎn)換為串行數(shù)據(jù)流格式,發(fā)送到PHY。
當(dāng)LLC編程作為循環(huán)主控器運(yùn)行時(shí),1394包發(fā)送控制邏輯98發(fā)出循環(huán)起始包。1394包發(fā)送控制邏輯98將1394發(fā)送總線請(qǐng)求發(fā)送到PHY。PHY層將對(duì)總線仲裁,并將指示發(fā)送到發(fā)送器,當(dāng)收到BUS許可時(shí)即開始發(fā)送。當(dāng)響應(yīng)于異步發(fā)送包返回占線確認(rèn)時(shí),1394數(shù)據(jù)包發(fā)送控制邏輯98采用按IEEE1394-1995標(biāo)準(zhǔn)規(guī)定的單相重試協(xié)議,執(zhí)行重試發(fā)送。此外,1394包數(shù)據(jù)流控制邏輯98設(shè)置包發(fā)送的速度。
PHY-LINK接口邏輯104執(zhí)行邏輯,將PCI接口ASIC20連接到物理層芯片。PHY-LINK接口邏輯104符合IEEE1394-1995標(biāo)準(zhǔn)中LINK-PHY接口規(guī)格的要求。此功能為PCI接口ASIC20配備了至物理層服務(wù)的入口。PHY-LINK接口邏輯104采用來自發(fā)送器的包速度碼,選擇待產(chǎn)生的串行數(shù)據(jù)流的數(shù)目。如果速度碼設(shè)置為100mbps,則并行數(shù)據(jù)流轉(zhuǎn)換為兩個(gè)串行數(shù)據(jù)流,每個(gè)按50mbps運(yùn)行。如果速度碼設(shè)置為200mbps,則并行數(shù)據(jù)流轉(zhuǎn)換為4個(gè)串行數(shù)據(jù)流,每個(gè)按50mbps運(yùn)行。PHY-LINK接口邏輯104采用PHY接收速度指示,將來自PHY的進(jìn)入串行數(shù)據(jù)流轉(zhuǎn)換為并行數(shù)據(jù)流,輸入到接收控制邏輯。對(duì)于任何進(jìn)入數(shù)據(jù)包,如果正在按100mbps接收數(shù)據(jù)包,PHY將產(chǎn)生兩個(gè)串行數(shù)據(jù)流至PCI接口ASIC20,如果正在按200mbps接收數(shù)據(jù)包,則產(chǎn)生四個(gè)串行數(shù)據(jù)流。串行數(shù)據(jù)流每個(gè)按50兆赫定時(shí)。PHY-LINK接口邏輯104檢測并接收來自PHY的串行狀態(tài)響應(yīng),并將它們轉(zhuǎn)換成并行格式。狀態(tài)響應(yīng)傳遞PHY中斷響應(yīng)指示并/或?qū)HY寄存器讀訪問請(qǐng)求響應(yīng)而返回?cái)?shù)據(jù)。PHY-LINK接口邏輯104檢測和接收串行確認(rèn)數(shù)據(jù)包,并將它們轉(zhuǎn)換成并行格式。此外,PHY-LINK接口邏輯104接受發(fā)送器的包發(fā)送請(qǐng)求或PHY寄存器讀-寫訪問請(qǐng)求,并將它們格式成串行請(qǐng)求數(shù)據(jù)流將它們發(fā)送到PHY。再者,PHY-LINK接口邏輯104的工作可以有選擇地在PHY和PCI-LYNX設(shè)備之間采用一種電同步屏障。
DMA邏輯74采用PCI主控邏輯64獲得PCI總線并用作主控設(shè)備。DMA邏輯72包括DMA引擎74,它包括通用狀態(tài)機(jī),是時(shí)間優(yōu)先多路復(fù)用的。DMA引擎還包含仲裁邏輯,根據(jù)分配的優(yōu)先度級(jí)別激活通道。此外,DMA控制和狀態(tài)寄存器76為每個(gè)DMA通道連同PCI從屬邏輯66數(shù)據(jù)通道控制提供服務(wù),以從PCI接口ASIC20對(duì)這些寄存器進(jìn)行存取。
DMA引擎74執(zhí)行狀態(tài)機(jī)邏輯,從PCL獲得控制參數(shù)和數(shù)據(jù)緩沖器指針。狀態(tài)機(jī)邏輯或包處理器采用這些參數(shù)控制數(shù)據(jù)進(jìn)出該數(shù)據(jù)緩沖器。
圖3表示1394包接收邏輯102中的包信頭比較邏輯,它接收來自PHY-LINK接口邏輯104的32位包數(shù)據(jù)流106。32位包數(shù)據(jù)流106到達(dá)IEEE1394接收邏輯102,并到達(dá)參照號(hào)110所示的包信頭比較邏輯。而且,PCI從屬邏輯66為參照號(hào)110中包含的比較器控制寄存器提供32位讀/寫存取。線117表示供DMA通道0的包信頭比較匹配。線119表示供DMA通道1的包信頭比較匹配。線121表示供DMA通道2的包信頭比較匹配。線123表示供通道3的包信頭比較匹配。這些輸出的每一個(gè)送到優(yōu)先度譯碼器128和邏輯或電路129。優(yōu)先度譯碼器128產(chǎn)生DMA通道輸出130,它送到1394接收器邏輯102?;蜻壿嬰娐?29在線132處提供比較器匹配至接收器控制邏輯信號(hào),0表示未匹配,或1表示匹配,它送到1394接收器邏輯102。
DMA引擎74可以被視為進(jìn)發(fā)運(yùn)行的5或多個(gè)獨(dú)立的DMA通道。實(shí)際上采用一個(gè)主控制狀態(tài)機(jī)在DMA通道之間在時(shí)間上多路復(fù)用。優(yōu)先度管理器邏輯連續(xù)檢查所有通道的當(dāng)前上下文,并將具有最高優(yōu)先度活動(dòng)掛起的通道分配給狀態(tài)機(jī)供執(zhí)行。
圖4更詳細(xì)地表示圖3所述的一般概念。圖4中,接收數(shù)據(jù)106包括具有字WD0和WD1的包信頭數(shù)據(jù)108。字WD0和WD1提供給邏輯110的每個(gè)NDMA通道包信頭比較塊(例如圖3所示的4條通道0-3)。邏輯110中每個(gè)DMA通道的DMA信頭比較寄存器在電路中包括指令,在108比較包信頭WD0的指令,匹配選擇寄存器內(nèi)容120和控制值邏輯122。同樣,在109,利用寄存器124的內(nèi)容和選擇寄存器126的內(nèi)容所表示的比較指令比較WD1。DMA信頭比較寄存器和邏輯的輸出表示為通道選擇〔0〕至通道選擇〔N-1〕。圖4進(jìn)一步表示優(yōu)先度譯碼器128接收這些通道選擇輸出,在DMA通道選擇線130和地址匹配輸出132上產(chǎn)生一個(gè)通道號(hào)。如圖3和所附文本所示,DMA通道選擇輸出130和地址匹配輸出132流向IEEE1394接收機(jī)邏輯102。
DMA信頭比較寄存器和邏輯110以及優(yōu)先度譯碼器128執(zhí)行所需的邏輯,以判斷進(jìn)入的包是否被接收和裝入GRF80。圖3表示4條DMA通道,在本發(fā)明的范圍內(nèi),也可以是5或多條DMA通道。每個(gè)DMA信頭比較寄存器和邏輯電路110被分配為DMA通道服務(wù)。比較器包括WD0字段選擇寄存器122、WD1選擇寄存器126、WD0比較值寄存器120、WD1比較值寄存器124和比較邏輯。兩個(gè)字段選擇屏蔽寄存器指定進(jìn)入包的WD0和WD1中的位字段,它將通過比較器邏輯與期望值匹配。兩個(gè)比較值寄存器指定所期望的位模式,它將與進(jìn)入包的字0和字1中所選擇的位字段匹配。優(yōu)先度譯碼器128從每個(gè)DMA信頭比較寄存器和邏輯110收集DMA通道匹配指令,并產(chǎn)生一個(gè)位碼,將進(jìn)入包映射到特定的DMA通道?;蜻壿嬰娐?29組合來自DMA信頭比較寄存器和邏輯110的選擇指令,并產(chǎn)生單個(gè)比較匹配指令至IEEE1394接收機(jī)邏輯102。IEEE1394接收機(jī)邏輯利用DMA通道號(hào)和比較器匹配指令,判斷進(jìn)入包是否接收到GRF80中。
在本實(shí)施例中,DMA包處理器可以作為各個(gè)獨(dú)立的DMA通道全部并發(fā)地運(yùn)行操作。實(shí)際的實(shí)現(xiàn)是利用一個(gè)主控制狀態(tài)機(jī),它在多條DMA通道(例如5條通道)在時(shí)間上多路復(fù)用。優(yōu)先度管理器邏輯連續(xù)檢查所有通道的當(dāng)前上下文,并將具有最高優(yōu)先度活動(dòng)掛起的通道分配給狀態(tài)機(jī)去執(zhí)行。DMA通道在復(fù)位至靜態(tài)條件后初始化,在該條件下它等待有效PCL指針寫入包控制列表起始地址寄存器,等待通道使能和鏈路位置位在DMA控制寄存器內(nèi)。有效PCL指針取決于包控制列表起始地址寄存器的位為零的狀態(tài)。1表示無效地址而0表示有效地址。然后,DMA將到達(dá)包控制列表起始地址寄存器所指明的地址,獲得新的地址,如果有效,將采用當(dāng)前PCL地址并開始執(zhí)行。
如果該地址無效,在DMA控制寄存器中清除鏈路位,產(chǎn)生DMA停止中斷,用于與中斷狀態(tài)寄存器中的狀態(tài)有關(guān)的通道,通道變成無效。該機(jī)理對(duì)PCL存儲(chǔ)器配置提供一種健全的校驗(yàn),同時(shí)也對(duì)丟失下一地址鏈路事件中為繼續(xù)通道PCL的執(zhí)行提供相對(duì)容易的方式。當(dāng)檢測有效的下一個(gè)PCL地址時(shí),DMA將在DMA控制寄存器中設(shè)置占線位,并在PCL偏移量獲得第一控制字。然后,進(jìn)行校驗(yàn)以判斷指令是否為接收、發(fā)送、PCI至/來自局部總線或輔助指令。從優(yōu)先度譯碼器128(依賴于哪一個(gè)DMA通道具有匹配),具有匹配的的最高優(yōu)先度通道識(shí)別待選擇的一條特定的DMA通道。
圖5進(jìn)一步詳細(xì)地示出了根據(jù)本實(shí)施例的一個(gè)指定DMA通道信頭比較邏輯120的操作。例如,包括字WD0和WD1的接收數(shù)據(jù)送到信頭比較邏輯120。它包括將字為WD0的代碼段送到目的ID比較邏輯136。WD0部分138送到tcode比較邏輯140。WD0部分142送到比較邏輯144,為WD0位15∶6和3∶0。此外,比較邏輯146接收WD1部分148所示的位31∶16。由指定ID比較邏輯136、tcode比較邏輯140、按WD0位3∶0和WD0位15∶6操作的比較邏輯144以及為WD1位31∶16輸出的比較邏輯146送到AND功能150。AND功能150的輸出為一種通道選擇輸出〔X〕,它可以是通道選擇〔0〕至通道選擇〔N-1〕,其優(yōu)先度譯碼器128如上所述接收產(chǎn)生DMA通道選擇信號(hào)130和地址匹配信號(hào)132。
圖6、7、8和9提供詳細(xì)的圖,表示送到DMA通道信頭比較邏輯120的接收數(shù)據(jù)位。尤其是,圖6表示tcode160包括〔7∶4〕的異步信頭162。同樣,tcode位164形成同步信頭166的位〔7∶4〕。在給定的DMA通道,匹配數(shù)據(jù)集168包括170所示W(wǎng)D0的匹配數(shù)據(jù)信頭,它對(duì)應(yīng)于162所示的信頭WD0,選擇匹配數(shù)據(jù)集172對(duì)應(yīng)于166所示的信頭WD0。如圖6所示,〔7∶4〕比較位174由172所示的比較選擇WD0的〔7∶4 〕位176修改,為接收信頭WD0,位〔7∶4〕確定匹配結(jié)果。此比較的輸出同其它部分比較的結(jié)果相與,以確定特定DMA通道的匹配值117。
圖6表示為特定字段配置的可能目標(biāo)數(shù)據(jù)值。本發(fā)明一次一個(gè)字段地取接收數(shù)據(jù),并表示用可能的方式設(shè)置比較字和選擇字以接收特定的結(jié)果。尤其是,圖6表示與tcode160字段相對(duì)的比較。tcode160或164之一提供一種操作碼,它識(shí)別接收數(shù)據(jù)總線16上的數(shù)據(jù)類型,1394串行數(shù)據(jù)〔需要一個(gè)數(shù)??〕作為同步或異步數(shù)據(jù)。在圖6所示的實(shí)例中,tcode位于相同的字段。比較按同樣的方式在異步包信頭和同步信頭上操作??梢杂貌煌姆绞綄?duì)同步和異步信頭譯碼。它們可以如圖所示或可以合并在一起。實(shí)際的譯碼可以調(diào)整,但當(dāng)我們以比較或不比較結(jié)束時(shí),其作用是相同的。
圖7重點(diǎn)突出異步信頭162的〔3∶0〕位178和〔15∶8 〕位180,以及同步信頭166的〔3∶0〕同步位182和〔15∶8〕通道位184?!?∶0 〕位信頭WD0、主位178或同步位182與170所示的WD0的〔3∶0〕位180比較,由172所示的比較選擇WD0的〔3∶0〕位188修改。再者,170所示的信頭WD0的〔15∶7〕位、異步信頭162的〔15∶7〕位180或同步信頭166的〔15∶7〕位184,與170所示的比較WD0的〔15∶7〕位190比較,由172所示的比較選擇WD0的〔15∶7〕位修改。圖7所示的這些匹配輸出對(duì)應(yīng)于電路110的比較邏輯144的WD0位〔3∶0〕和〔15∶7〕。
圖8表示對(duì)應(yīng)于DMA通道比較邏輯110的目的ID比較邏輯電路136的進(jìn)一步比較。異步信頭162包括由參照號(hào)200表示的目的ID位〔31∶15〕。這些相同的位單元,以166所示的信頭WD0的〔31∶16〕位包含了參照號(hào)202表示的數(shù)據(jù)長度位〔31∶16〕,用于同步數(shù)據(jù)包。同樣,特定鏈路層控制寄存器92的位〔31∶16〕由參照號(hào)204表示,它包含節(jié)點(diǎn)數(shù)和總線數(shù)數(shù)據(jù)。圖8表示162所示異步接收信頭WD0或166所示同步接收信頭WD0的比較,它們匹配數(shù)據(jù)集170位206的〔31∶16〕位,由數(shù)據(jù)集172位208修改。匹配數(shù)據(jù)集210包括位〔15∶11〕作為目的ID集合位212。根據(jù)圖8產(chǎn)生的比較,在邏輯框146中引導(dǎo)的DMA通道數(shù)送到DMA通道比較邏輯110的AND功能150。
由于IEEE1394標(biāo)準(zhǔn)處理目的識(shí)別器的方式,異步信頭WD0的高階位〔31∶16〕可以有特定的含義。例如,IEEE1394編碼將報(bào)文的廣播類型指定到不同的信頭。對(duì)于接收信頭,有比較字0和位選擇字0允許選擇一個(gè)規(guī)定的接收信頭字。此外,比較選擇字1〔15∶11〕212中的每位單獨(dú)選擇一個(gè)特定的目的ID比較方程。
圖9表示異步信頭162,它包括220所示的源ID位〔31∶16〕。同步信頭166中的這些位單元222是部分可變數(shù)據(jù)。在WD1比較邏輯146中,DMA通道120比較匹配數(shù)據(jù)集170的位16至31,通過比較226所示的選擇字1位〔31∶16〕與220或222所示的信頭WD1位〔31∶16〕進(jìn)行修改。
圖10表示寄存器寫電路250,用單一寄存器寫操作寫入任意個(gè)數(shù)據(jù)寄存器位。電路250表示任意個(gè)相同電路的一個(gè)。每個(gè)電路控制一個(gè)特定位輸出任意個(gè)數(shù)據(jù)位。在寄存器寫電路250中,通用I/O(GPIO)寫數(shù)據(jù)輸入252送到數(shù)據(jù)觸發(fā)器254。數(shù)據(jù)觸發(fā)器254還接收時(shí)鐘信號(hào)256和來自與門260的寫使能輸入258。與門260接收GPIO地址OK信號(hào)262、寫標(biāo)準(zhǔn)信號(hào)264和GPIO地址輸入266。與門260將與輸出258提供給數(shù)據(jù)觸發(fā)器250的寫使能位268。其特定分配的地址位266為1時(shí),觸發(fā)器250才由其各個(gè)GPIO寫數(shù)據(jù)252寫入。
寄存器寫電路250允許只寫到寄存器中必須改變的位,而保留剩余位的前值。寄存器寫電路250還允許軟件修改重要的數(shù)據(jù)位,無需在與特定動(dòng)作無關(guān)的寄存器位上恢復(fù)、指定或操作。
當(dāng)有一個(gè)寫使能位258送達(dá)的寄存器地址時(shí),1至4個(gè)GPIO可以根據(jù)地址字段寫入。〔GPIO〕地址號(hào)輸入266中的Ax表示地址位將根據(jù)該寫入判斷是否有寫入該位或無。寫選通264表明這是一個(gè)寫操作。GPIO地址OK262是整個(gè)寄存器的基本地址譯碼。至觸發(fā)器150的寫使能258是與輸出。當(dāng)寫使能動(dòng)作時(shí),輸入寫數(shù)據(jù)252寫入觸發(fā)器254,并出現(xiàn)在觸發(fā)器的輸出270上。
圖11表示地址字段272,它包括GPIO寄存器地址位274和單獨(dú)位選擇字段276地址位的A0、A1、A2和A3,對(duì)應(yīng)于地址字段272中有關(guān)位的位值0或1。地址字段272的后兩位278通常假定為0。地址272中,最高兩位假定為0。這是由于總線配置的緣故。規(guī)定為A0、A1、A2和A3的隨后四位允許單獨(dú)或采取不同的組合對(duì)該四位尋址。高階或最高位是為特定功能規(guī)定或分配的特定地址。因此,有固定的一組位組合對(duì)給定的GPIO地址值,以選擇特定的地址尋址。結(jié)果,可以尋址的整個(gè)地址陣列為0000至1111(即16種不同的可能組合)。
DMA優(yōu)先度選擇器負(fù)責(zé)啟動(dòng)最迫切需要PCI數(shù)據(jù)移動(dòng)的通道范圍。DMA作為主狀態(tài)機(jī)(dma_fsm.v),它執(zhí)行所選通道的狀態(tài)。所選通道在任何一個(gè)時(shí)間點(diǎn)上具有若干存儲(chǔ)條件。這些存儲(chǔ)條件稱為它的上下文。一個(gè)通道的上下文的一部分是由其主狀態(tài)機(jī)執(zhí)行的當(dāng)前狀態(tài)。
該狀態(tài)機(jī)具有幾個(gè)潛在的旋轉(zhuǎn)狀態(tài),其中,通道的執(zhí)行必須等待到某些條件可以繼續(xù)執(zhí)行。一個(gè)明顯的情況是當(dāng)通道為空閑并等待有效PCL地址輸入,等待通道使能位設(shè)置,等待鏈路位設(shè)置。另一種情況是當(dāng)接收通道正在等待接收FIFO中的數(shù)據(jù)時(shí)。如果一條通道正在等待接收數(shù)據(jù),另一條通道準(zhǔn)備將數(shù)據(jù)傳送到發(fā)送FIFO,這樣,我們就需要進(jìn)行傳送。這種情形可以在若干情況下產(chǎn)生。
每一種旋轉(zhuǎn)狀態(tài)都表示“機(jī)會(huì)窗口”,其中可以進(jìn)行另一條通道的執(zhí)行。優(yōu)先度選擇器注意所有這些可能的旋轉(zhuǎn)狀態(tài),并選擇哪一個(gè)狀態(tài)和通道在當(dāng)時(shí)具有最高優(yōu)先度。
圖12表示在環(huán)境300內(nèi)DMA指令處理的一個(gè)示例。圖12中,PCI寄存器寫數(shù)據(jù)302送到多路復(fù)用器304。多路復(fù)用器304還接收DMA寄存器寫數(shù)據(jù)306。根據(jù)執(zhí)行的操作,選擇合適的數(shù)據(jù)源308。在本實(shí)施例中,來自多路復(fù)用器304的輸出送到DMA寄存器310,它包括通道0至通道5六條通道。相對(duì)每條通道,DMA字段包括先前的地址或暫時(shí)字段312、當(dāng)前PCI地址字段314、數(shù)據(jù)緩沖地址316、狀態(tài)320、指令322、當(dāng)前狀態(tài)324以及就緒位326。DMA寄存器寫判斷選擇電路328還提供至DMA寄存器310的輸入,它響應(yīng)于PCI從屬信號(hào)330、PCI主信號(hào)332、DMA PCI主循環(huán)輸入334以及從屬完成輸入336。DMA通道判斷器340接收鎖存通道輸入342并向多路復(fù)用器提供輸入。從屬寄存器讀地址輸入348控制多路復(fù)用器344的操作。DMA寄存器讀數(shù)據(jù)輸出350將DMA寄存器數(shù)據(jù)返回到PCI接口。多路復(fù)用器346向DMA狀態(tài)機(jī)輸出下一個(gè)狀態(tài)邏輯。通過多路復(fù)用器304將DMA狀態(tài)機(jī)的下一個(gè)狀態(tài)值寫回到狀態(tài)寄存器和其他輸出寄存器。來自DMA指令處理環(huán)境300的輸出包括FIFO讀、寫和選擇信號(hào),以及許多信號(hào)。
DMA通道判斷器340控制哪個(gè)通道將要執(zhí)行。該判斷是以來自FIFO358的信號(hào)為基礎(chǔ)的,諸如“FIFO有效通道請(qǐng)求數(shù)據(jù)”和“FIFO有效通道”,以及哪一個(gè)FIFO準(zhǔn)備用來傳送數(shù)據(jù),那些通道被使能和激活。
DMA寄存器310執(zhí)行控制和狀態(tài)寄存器的設(shè)置用于控制和監(jiān)視每個(gè)DMA通道的狀態(tài)。DMA寄存器310支持每個(gè)具有許多功能的DMA通道。例如,先前的包控制列表起始地址/臨時(shí)寄存器312提供一個(gè)寄存器,當(dāng)它在異步發(fā)送期間處理一數(shù)據(jù)包隊(duì)列時(shí)由DMA引擎74更新。它還在輔助指令期間用作暫時(shí)保持寄存器裝入和存儲(chǔ)數(shù)據(jù)。包控制列表起始地址寄存器314由應(yīng)用軟件初始化,以指向PCL鏈中第一(虛設(shè))PCL的起始。DMA引擎74采用裝入到該P(yáng)CL中的下一個(gè)地址,鏈路到第一實(shí)際PCL。當(dāng)處理PCL時(shí),由活動(dòng)DMA通道更新包控制序列起始地址寄存器314。當(dāng)活動(dòng)DMA通道處理PCL時(shí),DMA緩沖起始地址寄存器316裝入從PCL取出的數(shù)據(jù)緩沖指針。DMA狀態(tài)寄存器320存儲(chǔ)PCI期間正進(jìn)行傳送的位數(shù)目的計(jì)數(shù),并包含該傳送的完成狀態(tài)。在完成PCI處理后,活動(dòng)DMA通道在偏移量0xC處將該寄存器的狀態(tài)信息寫回到PCL。DMA控制寄存器322包含控制位,它允許應(yīng)用軟件啟用或不啟用DMA通道的運(yùn)行,并重新取出PCL的下一個(gè)地址用于鏈路。DMA控制寄存器322存儲(chǔ)數(shù)據(jù)緩沖傳送控制,傳送位計(jì)數(shù)以及從PCL取出的指令。DMA就緒寄存器326的最低有效位可以在其繼續(xù)執(zhí)行XMT、RCV、LOAD、STORE、STORE0或STORE1指令之前,使DMA通道等待一種就緒條件。通過PCL的控制字,選擇該就緒條件。DMA就緒寄存器326的最低有效位可以在執(zhí)行BRANCH指令期間,使DMA通道至條件分支。該條件通過PCL的控制字選擇。當(dāng)前DMA狀態(tài)寄存器324為DMA通道存儲(chǔ)狀態(tài)矢量。該寄存器在DMA通道的有效期間更新,并當(dāng)該通道變成無效時(shí)保持所產(chǎn)生的最后狀態(tài)矢量。
DMA寄存器310還可以包括接收包計(jì)數(shù)寄存器(未圖示),它包含當(dāng)前收到的包計(jì)數(shù)。DMA引擎74在該寄存器內(nèi)裝入由GRF80傳遞的接收包計(jì)數(shù)。然后,當(dāng)該數(shù)據(jù)傳送到PCI總線24時(shí)進(jìn)行減計(jì)數(shù)。而且,可以包括DMA通用寄存器(未圖示),它包含狀態(tài)機(jī)所采用的狀態(tài)標(biāo)志,以跟蹤執(zhí)行異步發(fā)送包。DMA通用寄存器可以存儲(chǔ)位數(shù)下界,它與高速緩沖存儲(chǔ)器行大小寄存器結(jié)合使用,確定PCI主邏輯所需的脈沖串長度。
圖21表示在135流程段,在復(fù)位到靜態(tài)條件后,DMA通道如何初始化。每條DMA通道310等待一個(gè)有效的PCL指針寫入包控制列表起始地址寄存器314,通道使能和鏈路位設(shè)置在DMA控制寄存器內(nèi)。一個(gè)有效的PCL指針是由當(dāng)前包控制列表(PCL)地址寄存器的位0的狀態(tài)所決定。數(shù)值1表示一個(gè)無效地址,數(shù)值0表示一個(gè)有效地址。然后,DMA將找到通過當(dāng)前PCL地址寄存器起始地址寄存器所指出的地址,得到下一個(gè)PCL地址,如果有效將得到該當(dāng)前的PCL地址并開始執(zhí)行。如果該地址無效,在DMA控制寄存器中清除鏈路位,根據(jù)中斷狀態(tài)寄存器內(nèi)的有關(guān)狀態(tài)為該通道產(chǎn)生DMA停止中斷,且通道變?yōu)闊o效。該機(jī)理對(duì)PCL存儲(chǔ)器配置提供一種健全的校驗(yàn),以及提供一種相對(duì)容易的方法,在丟失下一地址鏈(即無效)的情況下,繼續(xù)執(zhí)行通道PCL。當(dāng)DMA引擎74檢測一個(gè)有效的下一PCL地址時(shí),DMA引擎74在DMA控制和狀態(tài)寄存器76中設(shè)置BSY位,并在合適的PCL得到該字。然后進(jìn)行校驗(yàn)以確定該指令是否為接受、發(fā)送、至/來自局部總線的PCI或輔助指令。
圖21在程序節(jié)137繼續(xù)說明DMA引擎74是如何對(duì)GRF80中的同步和異步數(shù)據(jù)執(zhí)行接收操作的。DMA引擎74通過校驗(yàn)查看等待條件是否存在。一旦等待條件不再存在時(shí),處理器進(jìn)入數(shù)據(jù)移動(dòng)階段。這里,DMA引擎74進(jìn)入一個(gè)循環(huán),其中,檢驗(yàn)當(dāng)前傳送計(jì)數(shù),查看它是否變?yōu)榱恪H绶?,進(jìn)行檢驗(yàn),查看是否為PCL緩沖列表的最后數(shù)據(jù)緩沖。如為最后緩沖,且通過鏈路層控制邏輯90在GRF80內(nèi)寫入的一個(gè)特定的控制標(biāo)記字未能指明包的邊界,則錯(cuò)誤發(fā)生,因?yàn)橐獋魉偷陌鼣?shù)據(jù)多于緩沖器所能容納的。在此情況下,PKT ERR位設(shè)置在DMA控制和狀態(tài)寄存器76內(nèi),DMA引擎74填滿其余數(shù)據(jù)直至包的邊界。如果當(dāng)前傳送計(jì)數(shù)遞減為零,且在PCL列表中存在另一個(gè)緩沖區(qū),則DMA引擎74采納新的緩沖地址和傳送計(jì)數(shù),并繼續(xù)該傳送。
當(dāng)來自GRF80的數(shù)據(jù)移動(dòng)到PCI接口邏輯70時(shí),DMA引擎74在要求PCI總線執(zhí)行傳送前等待GRF80有足夠的數(shù)據(jù)。無論如何,滿足兩個(gè)條件之一即可到達(dá)該傳送閾值。每當(dāng)接收FIFO中的位數(shù)達(dá)到“高位標(biāo)記”時(shí),DMA引擎74將請(qǐng)求PCI的傳送。該高位標(biāo)記等于高速緩沖存儲(chǔ)器行大小寄存器或DMA通用寄存器的下邊界字段兩者中的較大者。
當(dāng)數(shù)據(jù)包首先通過鏈路層控制邏輯90寫入GRF80時(shí),DMA從鏈路得到包的數(shù)據(jù)容量信息。它利用傳送計(jì)數(shù)判斷GRF80中的數(shù)據(jù)是否為數(shù)據(jù)包內(nèi)的其余數(shù)據(jù),如是,且其大小小于高位標(biāo)記,它將請(qǐng)求傳送傳送計(jì)數(shù)等于該剩余數(shù)的PCI主邏輯64。當(dāng)DMA引擎74正在傳送數(shù)據(jù)時(shí),更新數(shù)據(jù)緩沖起始地址寄存器和DMA控制和狀態(tài)寄存器76中的數(shù)據(jù)緩沖傳送長度位,以反映傳送的當(dāng)前狀態(tài)。
如圖21的流程段139所示,當(dāng)鏈路層控制邏輯90遇到包的末尾時(shí),它將特定的控制標(biāo)記字寫入GRF80,以標(biāo)記包的末尾。該控制字中內(nèi)含的是狀態(tài)位,它表示總線上包的完成狀態(tài)。DMA引擎74采用該包的標(biāo)記的末尾,以終止數(shù)據(jù)從GRF80傳送到PCI總線24。如果包標(biāo)記的末尾表示存在IEEE1394忙確認(rèn)信號(hào),DMA引擎74重新獲得PCL的第一緩沖器地址和傳送計(jì)數(shù),并全面啟動(dòng)包的傳送。如果未由包標(biāo)記的末尾指明忙確認(rèn)狀態(tài),則DMA控制和狀態(tài)寄存器76在包標(biāo)記末尾裝入由鏈路層控制邏輯90傳遞的確認(rèn)狀態(tài),設(shè)置包完成位。然后,以PCL狀態(tài)字將包完成狀態(tài)寫入存儲(chǔ)器,將中斷發(fā)送并鎖存在中斷狀態(tài)寄存器內(nèi)的相應(yīng)位。如果指令是接收和更新指令,則將剩余傳送計(jì)數(shù)和下一個(gè)緩沖地址寫入合適的PCL偏移量。
圖13表示一張表360,它表示DMA通道判斷電路340。表360表示,如果通道是IEEE標(biāo)準(zhǔn)1394總線上當(dāng)前有效的,該通道具有最高優(yōu)先度,預(yù)定在DMA通道中執(zhí)行。否則,通道優(yōu)先度按通道數(shù)的次序,0為最高優(yōu)先度。在362,一個(gè)“donot care”值作為值“X”分配。這意味著無論什么其他值,當(dāng)前有效通道為最高優(yōu)先度。該通道安排在最早可能的方便條件下。
可以通過以下的例子看到DMA指令處理的運(yùn)行。假定DMA當(dāng)前在通道3上運(yùn)行。因此,用于通道3的所有寄存器通過DMA內(nèi)的多路復(fù)用器346選擇。DMA選擇特定的寄存器片它將出現(xiàn),在DMA狀態(tài)機(jī)當(dāng)前狀態(tài)和下一狀態(tài)邏輯上。
圖14提供本實(shí)施例的個(gè)人計(jì)算機(jī)環(huán)境12下的簡化圖,它包括自動(dòng)引導(dǎo)功能370。PCI-接口ASIC20提供直接輸入,以自動(dòng)引導(dǎo)PCI-接口ASIC20。結(jié)果,PCI-接口ASIC20可以作為主機(jī)設(shè)備,通過PCI總線24用于參照號(hào)30所示的PCI設(shè)備#1,以及參照號(hào)31所示的PCI設(shè)備#2。PCI-接口ASIC20的自主操作指令可以采用RPL ROM36和SRAM38。此外,通過接口總線16,PCI-接口ASIC20可以與PHY接口18通信。
當(dāng)自動(dòng)引導(dǎo)引腳370為有效(即為高)時(shí),選擇本發(fā)明的自動(dòng)引導(dǎo)模式。自動(dòng)引導(dǎo)模式啟用若干特征,它允許PCI接口ASIC20自主動(dòng)作。自主操作包括在電源復(fù)位后,利用DMA通道0取得第一包控制列表的地址的特征。而且,在電源復(fù)位后,自動(dòng)引導(dǎo)模式有可能啟用DMA主機(jī)對(duì)外部RPL ROM存取。再者,在電源復(fù)位后,自動(dòng)引導(dǎo)模式啟用DMA主機(jī)對(duì)內(nèi)部鏈路寄存器存取。
一旦作為PCI總線24上的主機(jī)啟用,通過確定控制包控制列表中的合適的地址范圍,PCI接口ASIC20可以在PCI總線24上發(fā)出PCI配置、輸入/輸出以及存儲(chǔ)器讀和寫指令。在自動(dòng)引導(dǎo)操作模式中,外部PCI地址空間局限于30位。兩個(gè)最有效的地址位總是為0值。在內(nèi)部,這兩個(gè)位用于選擇PCI指令。
自動(dòng)引導(dǎo)引腳370的狀態(tài)可以從各種控制寄存器中的特定位讀出,作為診斷目的。采用所選擇的自動(dòng)引導(dǎo)模式和外部ROM,本發(fā)明可以將PCI-接口ASIC20作為局部處理器,設(shè)置各種內(nèi)部PCI-接口ASIC20寄存器,使PCI總線24上的其他設(shè)備初始化,并建立和形成其他PCL隊(duì)列??梢詥⒂酶鱾€(gè)DMA通道執(zhí)行這些PCL,通過IEEE1394總線傳送數(shù)據(jù)。
通過將外部局部總線RAM加到PCI接口設(shè)備20,為PCI總線24上的設(shè)備提供PCI從屬存儲(chǔ)器,以獲得控制信息并具有進(jìn)行數(shù)據(jù)傳送的局部存儲(chǔ)器。這樣,PCI程序可以通過IEEE1394將設(shè)備控制/數(shù)據(jù)傳送到另一系統(tǒng)。因此,利用本發(fā)明自動(dòng)引導(dǎo)模式的環(huán)境可以用于外圍設(shè)備,其中,可能會(huì)沒有合適的處理器來管理PCI接口環(huán)境。
圖14所示的電路通過外部引腳為該芯片提供另一種操作模式。結(jié)果是啟用和預(yù)先指定一部分存儲(chǔ)器映射,允許供電時(shí)有足夠的資源進(jìn)入DMA引擎74,以執(zhí)行和訪問各種所需的功能,完成有用的工作。而且,其結(jié)果是修正DMA引擎74的行為,這樣,當(dāng)DMA機(jī)采用一種特定的模式時(shí),該機(jī)需要取自專用ROM的新的指令而不是變?yōu)闊o效。
DMA引擎74變?yōu)橛行Р@得某些地址以得到指令。這允許PCI接口ASIC20以一種獨(dú)立方式運(yùn)行還允許產(chǎn)生來自PCI接口ASIC 20D輸入/輸出指令和PCI存儲(chǔ)指令。
采用自動(dòng)引導(dǎo)引腳370,本發(fā)明允許通過存取和使ROM和RAM為基礎(chǔ)的地址寄存器初始化,重新配置供電存儲(chǔ)器映射。它允許DMA機(jī)在供電后讀和寫訪問。再者,當(dāng)選擇自動(dòng)引導(dǎo)時(shí),本發(fā)明修正了DMA引擎74的行為。它允許在供電時(shí)從專用ROM地址獲得一個(gè)新的指令。在本實(shí)施例中,初始存取地址精確為0。本發(fā)明進(jìn)一步提供一種方法,產(chǎn)生一般環(huán)境中不要求的總線指令和協(xié)議。
當(dāng)選擇自動(dòng)引導(dǎo)部分時(shí),DMA引擎74可以獲得和執(zhí)行來自RPL ROM36的指令。它允許DMA引擎74產(chǎn)生所需的指令作為外部PCI總線的控制機(jī)構(gòu),用以配置、初始化和管理該外部總線上的其他PCI設(shè)備。
圖15的表380描述當(dāng)自動(dòng)引導(dǎo)輸入370有效時(shí),內(nèi)部PCI地址總線[31∶30]位映射成PCI總線上的指令。例如,在位31假定為0值,位30假定為任意值的情況下,激活PCI存儲(chǔ)指令。因此,當(dāng)?shù)刂肺?1假定為1值,地址位30假定為0值時(shí),產(chǎn)生PCI I/O指令。當(dāng)?shù)刂肺?1為1值,地址位30為1值時(shí),PCI配置指令變成PCI接口ASIC20。
圖16表示根據(jù)本發(fā)明一個(gè)方面的一個(gè)局部總線接口模塊390。局部總線接口模塊390包括局部總線配置寄存器392、圖象縮放視頻(ZV)譯碼接口模塊394,它與ZV機(jī)396通信。組合/非組合狀態(tài)機(jī)398包括地址/數(shù)據(jù)/位使能保持寄存器398。局部總線接口模塊390還包括局部總線接口狀態(tài)機(jī)400和從屬確認(rèn)中斷模塊402。
圖2的ZV端口是一種僅供輸出的端口,它設(shè)計(jì)成將來自IEEE1394標(biāo)準(zhǔn)總線的數(shù)據(jù)傳送到PCI接口ASIC20上的外部設(shè)備。當(dāng)正確編程時(shí),ZV接口邏輯提供一種方法,接收IEEE1394數(shù)字?jǐn)z像包,并將有效負(fù)載傳送到具有合適控制信號(hào)的外部ZV適應(yīng)的設(shè)備。
ZV譯碼電路394通過第三PCI存儲(chǔ)器為基礎(chǔ)的地址寄存器的子集存取。當(dāng)ZV譯碼電路394使能時(shí),0xF000和0xFFFF之間的輔助地址映射到ZV端口。當(dāng)6個(gè)有用時(shí)鐘源395之一選擇為ZV象素時(shí)鐘時(shí),使能ZV端口。如果未選擇6個(gè)時(shí)鐘時(shí),使ZV端口無效,且輔助接口要求整個(gè)地址空間。當(dāng)ZV端口無效時(shí),除了數(shù)據(jù)總線外,所有與ZV有關(guān)的輸出都處于第三狀態(tài),在輔助RAM和ROM存取期間將仍然驅(qū)動(dòng)它。
至于ZV端口,根據(jù)檢測IEEE1394同步包信頭同步字段等于0x1產(chǎn)生垂直同步信號(hào)。在本實(shí)施例中,數(shù)據(jù)位24包含有效同步字段數(shù)據(jù)。在收到該垂直同步位時(shí),產(chǎn)生一個(gè)垂直同步輸出。至于其余的幀,無論何時(shí)當(dāng)視頻數(shù)據(jù)傳送到圖象縮放端口訪問特定的地址時(shí),產(chǎn)生一個(gè)水平同步輸出。通過合適地編程包控制列表,所有IEEE1394數(shù)字?jǐn)z像包都可以通過ZV端口傳送。
圖17表示本發(fā)明的同步檢測電路405的一個(gè)實(shí)施例,它產(chǎn)生垂直同步檢測信號(hào)407和水平同步檢測信號(hào)409。當(dāng)PCI從屬地址位[15∶0]假定一個(gè)值為0XF000而從屬數(shù)據(jù)位28假定為二進(jìn)制的1,比較電路411和413將信號(hào)送到與門415。在線路407上產(chǎn)生一個(gè)垂直同步檢測信號(hào)。同樣,當(dāng)從屬地址位[15∶0]將0XF004提供給比較電路417時(shí),水平同步檢測信號(hào)出現(xiàn)在線路409上。
圖18表示根據(jù)本發(fā)明的用于包縮放端口地址映射410的一個(gè)視頻掃描線。縮放端口地址映射410包括由參照號(hào)414至424詳細(xì)所示的、在地址0XF000開始的同步包信頭412以及在地址0XF004開始、在地址0XFFFF結(jié)束的同步包數(shù)據(jù)空間,如參照號(hào)414至424所示。每個(gè)同步包傳送到圖象縮放端口地址空間,信頭四字節(jié)字傳送到地址0XF000,第一數(shù)據(jù)有效負(fù)載四字節(jié)字428傳送到地址0XF004,數(shù)據(jù)包中其余的四字節(jié)字傳送到連續(xù)的地址,直至包的有效負(fù)載數(shù)據(jù)傳送到地址(0XF000+(N-1),達(dá)到包N四字節(jié)字長。
圖18表示本發(fā)明允許自主顯示在硬件管理窗口中顯示的視頻圖象,無需任何軟件支持。本發(fā)明允許原始的數(shù)據(jù)穿過IEEE1394總線,并以兼容的格式流入圖象縮放端口,它作為輸入數(shù)據(jù)進(jìn)入視頻控制芯片。它允許自主顯示數(shù)據(jù),并維持水平和垂直幀同步。
運(yùn)行中,縮放視頻端口映射到某地址空間。信頭包含幀同步信息或信號(hào)。通過建立正確的控制配置使信頭的包數(shù)據(jù)傳送到以地址為基礎(chǔ)的特定地址,該邏輯將找到某些字段。在按照IEEE P1394數(shù)字?jǐn)z像機(jī)規(guī)格的Sony攝像機(jī)中,同步信頭同步字段中的位表示視頻幀的開始。通過譯碼該特定同步信頭同步字段位,產(chǎn)生垂直同步信號(hào)。人們可以利用該信息使圖象縮放端口數(shù)據(jù)的接收與圖象縮放端口同步。
這種實(shí)施有兩種情況,一種是水平同步,另一種是垂直同步。至于垂直同步,譯碼需要特定的地址和特定同步信頭同步位。通過譯碼另一個(gè)特定地址產(chǎn)生水平同步。
本發(fā)明的圖象縮放方面提供一種能力,從包含內(nèi)含控制信息的諸如編碼圖象的分包數(shù)據(jù)中自主提取控制信息,諸如水平或垂直同步信號(hào)。比較邏輯411和413檢測傳送到特定數(shù)據(jù)值的特定目標(biāo)地址。
本發(fā)明還提供軟件或硬件控制配置,它為不同段的包數(shù)據(jù)指定合適的目標(biāo)地址。DMA配置允許數(shù)據(jù)集中或分散,這樣,一個(gè)特定的包可以分解為具有不同長度的不同目標(biāo)地址。因此,本發(fā)明可以將信頭字段寫到特定的地址,將數(shù)據(jù)字段寫到另一地址。利用該特征,本發(fā)明控制PCI接口設(shè)備的某一部分去訪問某一地址。
本發(fā)明進(jìn)一步提供可編程計(jì)數(shù)器,它可以用于把控制信號(hào)的產(chǎn)生基于對(duì)特定地址位置和/或數(shù)據(jù)方案進(jìn)行多地址訪問上。利用計(jì)數(shù)器在每條水平線或水平同步信號(hào)之間給出多個(gè)數(shù)據(jù)包的選項(xiàng)而實(shí)現(xiàn)這點(diǎn)。因此,在垂直同步之后可以立刻產(chǎn)生水平同步信號(hào)。這允許對(duì)系統(tǒng)對(duì)經(jīng)過特定地址的次數(shù)進(jìn)行計(jì)數(shù)。例如,只有在4次反復(fù)通過該地址后,系統(tǒng)才產(chǎn)生另一個(gè)水平同步信號(hào)。這允許根據(jù)特定的攝像機(jī)、資源等等通過水平線包裝4個(gè)數(shù)據(jù)包。
圖19表示利用圖象縮放端口地址映射410,將單個(gè)圖象數(shù)據(jù)包映射到多條視頻掃描線的過程。圖象縮放端口地址映射410包括同步數(shù)據(jù)包信頭412,它鄰接同步包數(shù)據(jù)414。存儲(chǔ)空間416至424如圖17所示。圖象縮放視頻同步包440包括信頭四字節(jié)字0,它可以包含同步信頭同步字段中幀的位的起始。四字節(jié)字1是第一視頻數(shù)據(jù)有效負(fù)載四字節(jié)字,它指明視頻掃描A的開始。通過將該四字節(jié)字寫入地址0XF004,產(chǎn)生一個(gè)水平同步信號(hào)。同樣,通過產(chǎn)生一個(gè)水平同步,將數(shù)據(jù)四字節(jié)字442寫入地址0XF004,表示視頻掃描A+1的開始。數(shù)據(jù)在0XF000開始寫,繼續(xù)到
實(shí)際上將是通過圖象縮放視頻端口輸出的數(shù)據(jù),即圖象縮放數(shù)據(jù)。信頭被剝?nèi)デ也皇菙?shù)據(jù)字段部分。
因此,這種情況為水平幀中的第一個(gè)數(shù)據(jù)包產(chǎn)生一種垂直同步和水平同步。接下來的數(shù)據(jù)包表明以下的掃描線填滿剩下的視頻幀信頭,但該信頭不包含同步字段。至于所有數(shù)據(jù)包,數(shù)據(jù)流向相同的路徑,每個(gè)包在為信頭所示點(diǎn)OXF000處開始,如果信頭中沒有同步位,則將不設(shè)置垂直同步。當(dāng)寫入F004時(shí),將產(chǎn)生水平同步。它產(chǎn)生了掃描線的開頭,這樣其余的數(shù)據(jù)將作為部分掃描線流出。
進(jìn)一步還存在每個(gè)數(shù)據(jù)包有多條掃描線的情況。為了處理這種情況,采用包控制列表。
本發(fā)明的DMA引擎74由稱為包控制列表或PCL的數(shù)據(jù)配置所控制。PCL包含指令信息,DMA按需要從存儲(chǔ)器中取出該指令信息。這些指令告訴DMA數(shù)據(jù)的來源的目的地以及多少字節(jié)要傳送。某些指令在IEEE1394發(fā)送FIFO80與PCI總線24之間,或在通用接收FIFO80與PCI總線24之間移動(dòng)數(shù)據(jù)塊。另一指令在PCI總線24與輔助端口局部總線26之間移動(dòng)數(shù)據(jù)。其他指令用于次要功能并被稱為輔助指令。這些輔助指令允許DMA將特定數(shù)據(jù)的四字節(jié)字取出并存入任何PCI地址,允許某些情況下采用PCL。所需用法是允許DMA執(zhí)行特定數(shù)據(jù)移動(dòng)控制并用作獨(dú)立處理器,它可以以自動(dòng)引導(dǎo)序列建立PCL。其整個(gè)功能范圍并未系統(tǒng)化,還將發(fā)展DMA的其他應(yīng)用。
本發(fā)明的應(yīng)用軟件利用PCL數(shù)據(jù)配置為DMA通道的運(yùn)行編程,它駐留在主存儲(chǔ)器內(nèi)。應(yīng)用軟件負(fù)責(zé)構(gòu)造PCL和為其存儲(chǔ)分配存內(nèi)容。PCL可以組成為鄰接的一組存儲(chǔ)位置,它包含指令、控制參數(shù)以及DMA通道所需的數(shù)據(jù)緩沖指針,或在PCI總線24與輔助端口局部總線26之間移動(dòng)數(shù)據(jù),或執(zhí)行一或多條輔助指令。在當(dāng)前實(shí)施例2PCL所需的存儲(chǔ)器位置的總數(shù)通常是局限于32四字節(jié)字。
作為一種最小要求,PCL起始地址與四字節(jié)字邊界對(duì)齊。對(duì)于較佳的DMA性能,PCL起始地址建議作為高速緩沖行邊界的一行。數(shù)據(jù)緩沖指針可以與任意字節(jié)邊界對(duì)齊。對(duì)于最佳的DMA性能,本發(fā)明將數(shù)據(jù)緩沖指針與高速緩沖的行邊界對(duì)齊。如元可能,將下一個(gè)較佳的數(shù)據(jù)緩沖指針將與高速緩沖的行邊界對(duì)齊。由PCL所指向的數(shù)據(jù)緩沖器的總的容量大致上限于對(duì)位速率為100mbp的IEEE1394為一千比特,對(duì)位速率為200mbp的IEEE1394為2千比特。
在本發(fā)明的實(shí)施例中,活動(dòng)DMA通道從PCL獲得指令和控制參數(shù),配置通道本身去執(zhí)行傳送過程中的指令。
應(yīng)用軟件程序允許DMA通道通過將多個(gè)數(shù)據(jù)包控制列表鏈路到PCL列表隊(duì)列,傳送多個(gè)IEEE1394數(shù)據(jù)包。本發(fā)明通過將把每個(gè)PCL的下一個(gè)地址字段設(shè)置成指向下一個(gè)PCL的存儲(chǔ)器中的起始地址而構(gòu)成該隊(duì)列。隊(duì)列中的最后PCL可以編程為停止DMA過程、指回到隊(duì)列的起點(diǎn)、或指向新的隊(duì)列。含有輔助指令的PCL可以嵌入PCL隊(duì)列中的任何地方,但不是兩頭。PCL隊(duì)列可以將接收和發(fā)送以及輔助指令混合在一起;然而,由于潛在的管道性質(zhì)的傳送和數(shù)據(jù)包重試的可能性,異步發(fā)送指令必須后跟另一個(gè)異步發(fā)送指令。另一方面,在異步發(fā)送指令中設(shè)置“等待狀態(tài)”位取消了此種要求。
圖20表示根據(jù)本發(fā)明的實(shí)施例的一例包控制列表的鏈表。圖20中,PCI隊(duì)列450在起始地址452開始。從起始地址452到虛設(shè)包控制列表454。虛設(shè)包控制列表454使過程進(jìn)入發(fā)送指令包控制列表456。在發(fā)送指令包控制列表0,數(shù)據(jù)緩沖計(jì)數(shù)指令和數(shù)據(jù)緩沖地址信息送到數(shù)據(jù)緩沖器460、462,繼續(xù),例如送到數(shù)據(jù)緩沖器464,在本實(shí)施例中,它指示有14個(gè)數(shù)據(jù)緩沖在使用。參照號(hào)為456的發(fā)送指令包控制列表0包括下一個(gè)列表地址466,它進(jìn)入?yún)⒄仗?hào)為470的輔助指令包控制列表1。參照號(hào)為470的輔助指令包控制列表1包括裝入指令472、單元474的源地址以及存儲(chǔ)指令和單元476。裝入指令472進(jìn)入數(shù)據(jù)寄存器478,后者供給DMA寄存器480。存儲(chǔ)1指令476向存儲(chǔ)器單元482提供輸入。參照號(hào)為470的輔助指令包控制列表1還包括正確的目的地地址484,它有條件地將PCI過程控制送到參照號(hào)為486的發(fā)送指令包控制列表2。參照號(hào)為486的發(fā)送指令包控制列表2包括下一個(gè)列表地址488,它送到由參照號(hào)490所示的另一PCI,而數(shù)據(jù)計(jì)數(shù)和數(shù)據(jù)緩沖器地址492和類似的送到數(shù)據(jù)緩沖器494和類似的單元。如果正確目的地地址484控制過程到PCI隊(duì)列,下一個(gè)列表地址468送到參照號(hào)為486的發(fā)送指令包控制列表2。然后,該信息從下一個(gè)列表地址488送到參照號(hào)490所示的另一PCI,數(shù)據(jù)緩沖器0地址和計(jì)數(shù)指令信息送到數(shù)據(jù)緩沖器1和類似的單元。
一般,操作中,主CPU44分配存儲(chǔ)器建立包控制列表和虛設(shè)的下一個(gè)PCL地址,因?yàn)椴淮嬖谙惹暗腜CL。虛設(shè)的下一個(gè)PCL地址提供一個(gè)存儲(chǔ)單元,它是指向第一PCL即PCL0的起始的指針。然后,主處理器建立所需的PCL列表,與數(shù)據(jù)發(fā)送器或某些類型的輔助指令,諸如執(zhí)行實(shí)際處理器類指令的輔助指令一起運(yùn)行。
下一個(gè)PCL地址中的空間包括錯(cuò)誤地址、保留單元和狀態(tài)。下一對(duì)為控制狀態(tài)和發(fā)送計(jì)數(shù)。再下一個(gè)是數(shù)據(jù)緩沖器地址。該兩個(gè)長字構(gòu)成一條指令或數(shù)據(jù)發(fā)送,發(fā)送到一個(gè)數(shù)據(jù)緩沖器。該發(fā)送的例子是緩沖器地址,它指向存儲(chǔ)器中的數(shù)據(jù)緩沖器位置,數(shù)據(jù)被發(fā)送到該存儲(chǔ)器或從其輸出。如果數(shù)據(jù)被連續(xù)發(fā)送,本實(shí)施例有可能為連續(xù)數(shù)據(jù)發(fā)送形成一個(gè)大控制循環(huán)。
圖21至25和以下的討論描述了本發(fā)明接收、發(fā)送、至/自局部總線的PCI或輔助操作。如圖21所示,在接收操作中,對(duì)GRF80中的同步和異步數(shù)據(jù)而言,過程通過校驗(yàn)開始,以查看等待條件是否存在。如圖23所示,對(duì)于同步發(fā)送,如果通道使能等于1,發(fā)送功能就緒,循環(huán)起始位為OK,這時(shí)就是還等待條件。等待條件取決于數(shù)據(jù)緩沖器控制字0的等待選擇器位。一旦等待條件不再存在,處理器進(jìn)入數(shù)據(jù)移動(dòng)階段。檢驗(yàn)當(dāng)前的發(fā)送計(jì)數(shù),看看它是否為0從而進(jìn)入循環(huán)回路。如是,檢查看看這是否為PCL緩沖器列表的最后數(shù)據(jù)緩沖器。如果該數(shù)據(jù)緩沖器是最后的數(shù)據(jù)緩沖器,且包的邊界未能被將一個(gè)特定控制標(biāo)記的字寫入GRF FIFO的鏈路層控制器指示出來,則由于被傳送的數(shù)據(jù)包數(shù)據(jù)多于緩沖器能容納的,從而發(fā)生錯(cuò)誤。在此情況下,在DMA狀態(tài)寄存器中設(shè)置包錯(cuò)誤位,DMA將填滿其余的數(shù)據(jù)直至包的邊界。如果當(dāng)前發(fā)送計(jì)數(shù)減小到零,在PCL列表中有另一緩沖器,于是,DMA獲得新的緩沖器地址和發(fā)送計(jì)數(shù),并著手繼續(xù)傳送。
當(dāng)從PCI接口中的接收FIFO移動(dòng)數(shù)據(jù)時(shí),在請(qǐng)求PCI總線執(zhí)行發(fā)送之前,DMA等待FIFO有充分的數(shù)據(jù)。無論何時(shí),只要滿足兩個(gè)條件之一,即可達(dá)到該發(fā)送閾值。無論何時(shí),只要接收FIFO中的若干位達(dá)到一種“高位標(biāo)記(highwatermark)”,DMA將請(qǐng)求PCI主控的發(fā)送。該高位標(biāo)記等于高速緩沖存儲(chǔ)器行長度寄存器或DMA通用寄存器的下限字段兩者的較大者。當(dāng)包通過長度層控制器首先寫入FIFO時(shí),DMA從該鏈路得到包的數(shù)據(jù)長度信息。利用該發(fā)送計(jì)數(shù)判斷FIFO中的數(shù)據(jù)是否為包內(nèi)的剩余數(shù)據(jù),如是,且其長度小于高位標(biāo)記,它要求進(jìn)行發(fā)送計(jì)數(shù)等于該剩余數(shù)據(jù)的PCI主控的發(fā)送。當(dāng)DMA正在發(fā)送數(shù)據(jù)時(shí),則更新DMA控制寄存器中緩沖數(shù)據(jù)發(fā)送長度位的數(shù)據(jù)緩沖起始地址寄存器,以反映發(fā)送的當(dāng)前狀態(tài)。
當(dāng)鏈路層控制器遇到包的末尾時(shí),將一個(gè)特定的控制標(biāo)識(shí)字寫入FIFO以標(biāo)識(shí)一個(gè)包的末尾。嵌入該控制字中的是狀態(tài)位,它表示總線上包的完成狀態(tài)。DMA利用該包的末尾標(biāo)識(shí)確定數(shù)據(jù)從FIFO發(fā)送到PCI總線。如果包的末尾標(biāo)識(shí)表明IEEE1394忙確認(rèn),則DMA重新獲得PCI的第一緩沖器地址和發(fā)送計(jì)數(shù),并再次開始包的發(fā)送。如果由包的末尾標(biāo)識(shí)表明非忙狀態(tài),則DMA狀態(tài)寄存器裝入來自包的末尾標(biāo)識(shí)所示的鏈路層控制器的確認(rèn)狀態(tài),設(shè)定包的完成。然后,連同為該P(yáng)CI所發(fā)送的位數(shù),寫入PCI狀態(tài)字中的存儲(chǔ)器。如果設(shè)定INT位為PCL數(shù)據(jù)緩沖控制/字節(jié)計(jì)數(shù)指令,則發(fā)送一個(gè)中斷并鎖存在中斷狀態(tài)寄存器內(nèi)相應(yīng)的DMAPCL位中。如果該指令為一個(gè)接收和更新指令,則將剩余的發(fā)送計(jì)數(shù)和下一個(gè)緩沖器地址寫入PCL。然后,DMA確認(rèn),另一個(gè)PCL是否通過獲得當(dāng)前PCL的下一個(gè)列表地址字段而已經(jīng)鏈路到當(dāng)前的PCL。如果有一個(gè)鏈路的PCL,則DMA使該鏈路的PCL成為當(dāng)前的PCL并繼續(xù)執(zhí)行。如果另一個(gè)PCL未被鏈路到當(dāng)前的PCL,則在DMA控制寄存器中清除該鏈路和忙的位,對(duì)中斷狀態(tài)寄存器內(nèi)具有相關(guān)狀態(tài)的通道產(chǎn)生DMA暫停中斷,該通道變成空閑。
至于DMA異步發(fā)送操作,如圖22所示,在一個(gè)有效PCL指針已被寫入包控制列表起始地址寄存器且通道使能和鏈路位已設(shè)置后,確定異步發(fā)送。異步包處理器的最終目標(biāo)是通過鏈路層控制器將當(dāng)前包從FIFO發(fā)送到IEEE1394總線之前保留一個(gè)包。根據(jù)DMA的觀點(diǎn),總線上的包是先前的包。由鏈路層控制器報(bào)告的任何狀態(tài)是認(rèn)為用于該先前的包;然而,在PCL內(nèi)的“數(shù)據(jù)緩沖/字節(jié)計(jì)數(shù)/命令”中設(shè)置“等待狀態(tài)”位將防止該管道操作。DMA在先前包控制列表起始地址/暫時(shí)寄存器中保持先前包控制列表起始地址的地址。被稱為“先前PCL有效”的標(biāo)記,由DMA全局寄存器中的DMA保持,以留意它是否已存儲(chǔ)了有效地址。通過檢驗(yàn)看看是否有一個(gè)等待條件存在,繼續(xù)對(duì)異步通道的發(fā)送操作。等待條件取決于PCL中“數(shù)據(jù)緩沖器控制/字節(jié)計(jì)數(shù)/命令”的等待選擇位。由DMA目的地寄存器中的DMA保持稱為“重試”的標(biāo)志。DMA利用這些標(biāo)志留意何時(shí)等待條件應(yīng)當(dāng)被判斷,因?yàn)橹卦嚻陂g的這些等待條件被忽略了。
一旦等待條件不再存在,DMA將一個(gè)控制標(biāo)識(shí)寫入FIFO,指明一個(gè)包的開頭并進(jìn)入數(shù)據(jù)移動(dòng)階段。這里,檢驗(yàn)當(dāng)前的發(fā)送計(jì)數(shù),看看是否變?yōu)?從而進(jìn)入一個(gè)循環(huán)。如是,檢驗(yàn)看看是否為PCL緩沖序列的最后數(shù)據(jù)緩沖。如果PCL序列中有另一個(gè)緩沖,DMA則將獲得新的緩沖地址和發(fā)送計(jì)數(shù)并進(jìn)入發(fā)送。當(dāng)數(shù)據(jù)從PCI接口位移到異步發(fā)送FIFO時(shí),DMA將在請(qǐng)求PCI總線執(zhí)行讀傳送之前等待FIFO有足夠的空間。DMA將請(qǐng)求PCI主控的發(fā)送的位計(jì)數(shù)等于考慮DMA接收操作而定義的高位標(biāo)記。當(dāng)DMA正在發(fā)送數(shù)據(jù)時(shí),DMA控制寄存器中的數(shù)據(jù)緩沖發(fā)送鏈路位和數(shù)據(jù)緩沖起始地址寄存器被更新,以反映發(fā)送的當(dāng)前狀態(tài)。
當(dāng)來自緩沖器的最后一位數(shù)據(jù)傳送到異步發(fā)送FIFO,緩沖器為控制/字節(jié)計(jì)數(shù)PCL字中的最后緩沖器位所示的最后的PCL列表時(shí),DMA知道已經(jīng)到達(dá)了包的末尾。如果先前的包地址有效,DMA將延遲檢驗(yàn)狀態(tài),直至在發(fā)送FIFO內(nèi)形成有一個(gè)完整的數(shù)據(jù)包隊(duì)列。這樣,返回狀態(tài)總是針對(duì)先前的包,除非設(shè)置等待狀態(tài)位。如果在發(fā)送器中只有一個(gè)包,先前和當(dāng)前的包相同。如果先前的包地址為有效,DMA將注意包計(jì)數(shù)器。當(dāng)一個(gè)包通過鏈路層控制器發(fā)送到IEEE1394總線,且包的狀態(tài)為有效時(shí),鏈路層控制器將減小包的計(jì)數(shù)。DMA將等待包計(jì)數(shù)器到達(dá)零,表示先前的包為有效狀態(tài)。如果該狀態(tài)表明先前的包為重發(fā),則DMA將一個(gè)填滿FIFO請(qǐng)求設(shè)置到鏈路層控制器,然后等待該鏈路層控制器指明通過移動(dòng)重發(fā)標(biāo)識(shí)完成FIFO的填滿。然后,DMA“回復(fù)到”先前的包并全部開始發(fā)送。如果未發(fā)生重發(fā),DMA將用來自鏈路層控制器的確認(rèn)狀態(tài)更新DMA狀態(tài)寄存器,設(shè)定包的完成,然后將完成狀態(tài)連同為當(dāng)前有效PCL發(fā)送的位數(shù),寫入先前的PCL狀態(tài)字存儲(chǔ)器內(nèi),該有效PCL可與先前的PCL無關(guān)。如果PCL內(nèi)中斷位被置位,中斷被發(fā)出并鎖存在相應(yīng)的中斷狀態(tài)寄存器位內(nèi)。
當(dāng)檢驗(yàn)了狀態(tài)時(shí),DMA將一個(gè)特定的控制標(biāo)識(shí)寫入發(fā)送FIFO,以標(biāo)識(shí)包的末尾。該包計(jì)數(shù)增加1,向鏈路層控制器表明包的末尾已由DMA寫入。當(dāng)前的PCL地址作為先前的PCL地址保存,且在DMA全局寄存器內(nèi)設(shè)置先前的包控制列表起始地址寄存器和“先前有效”標(biāo)志。然后DMA判斷,是否有另一個(gè)PCL通過得到下一個(gè)列表地址值而鏈路到當(dāng)前的PCL。如為有效,則DMA將使之成為當(dāng)前的PCL地址并繼續(xù)執(zhí)行。如為無效或設(shè)置了等待狀態(tài)位,則DMA等待當(dāng)前的包通過鏈路層控制器發(fā)送。當(dāng)有效狀態(tài)存在時(shí),由包計(jì)數(shù)器減到0表示,DMA檢驗(yàn)看看包是否如IEEE1394忙狀態(tài)所示要重發(fā)。如是,如前所述那樣填滿FIFO并再次嘗試發(fā)送。
如果有發(fā)送超時(shí)、重發(fā)超限或FIFO欠載運(yùn)行,如鏈路層控制器所示,則將包錯(cuò)誤位連同確認(rèn)狀態(tài)設(shè)置在DMA狀態(tài)寄存器。然后在PCL內(nèi)更新狀態(tài)。在發(fā)送超時(shí)或重發(fā)超限的情況下,目標(biāo)節(jié)點(diǎn)可以不再響應(yīng)。DMA通過跳越整個(gè)的PCL而應(yīng)付這種情況,這些PCL形成數(shù)據(jù)流至特定的目標(biāo)節(jié)點(diǎn)。軟件可以設(shè)定PCL的下一個(gè)PCL流進(jìn)入點(diǎn)指向至下一個(gè)發(fā)送數(shù)據(jù)流(即下一個(gè)異步發(fā)送至另一個(gè)1394節(jié)點(diǎn))的第一PCL。如果下一個(gè)PCL流地址為有效,則DMA將繼續(xù)用該P(yáng)CL執(zhí)行。如果該地址為無效,則DMA通道將進(jìn)入空閑,與任何時(shí)候它遇到下一個(gè)PCL地址標(biāo)識(shí)為無效的相同。如果不采用下一個(gè)流的特征,該數(shù)值將設(shè)置成與下一個(gè)列表地址相同的數(shù)值。如果DMA暫停告知一個(gè)DMA暫停中斷狀態(tài)且下一個(gè)PCL流進(jìn)入為無效,則必須重寫一個(gè)PCL流,因?yàn)镈MA處于取得下一個(gè)流狀態(tài),該DMA忽略了下一個(gè)列表地址。因此,如果不利用下一個(gè)數(shù)據(jù)流特征來防止在任何異步發(fā)送通道中的掛起(它因出錯(cuò)而要求下一個(gè)PCL流的進(jìn)入),要求始終將“下一個(gè)列表地址”和“下一個(gè)PCL流”設(shè)置到相同的地址。
圖24表示與上述異步和同步發(fā)送操作相似的流程圖,但它應(yīng)用于DMA引擎74的輔助操作。
如圖25所示,PCI至局部總線和局部總線至PCI的發(fā)送操作,控制了數(shù)據(jù)在PCI總線與局部總線之間傳送。至于其它發(fā)送命令諸如發(fā)送,PCI地址和發(fā)送位數(shù)由PCI中的PCL數(shù)據(jù)buf ctl/bit_cnt/cmd字產(chǎn)生。區(qū)別在于發(fā)送的目的地或起源不是FIFO總線而是局部總線。該局部總線地址是由AUX_ADR寄存器產(chǎn)生的(見硬件寄存器定義)。
PCI至/自局部的操作將通過檢驗(yàn)看看等待條件是否存在而進(jìn)行。等待條件取決于PCL偏移量0×18處的數(shù)據(jù)buf0 ctl/bit_cnt/cmd的等待選擇位。當(dāng)?shù)却龡l件不再存在時(shí),DMA進(jìn)入一個(gè)循環(huán),其中檢驗(yàn)當(dāng)前的發(fā)送計(jì)數(shù),看看它是否變?yōu)?。如是,檢驗(yàn)以看看它是否為PCL緩沖列表的最后數(shù)據(jù)緩沖。如PCL列表中有另一個(gè)緩沖,則DMA將獲得新的緩沖地址和發(fā)送計(jì)數(shù),并處理該發(fā)送。當(dāng)DMA為發(fā)送數(shù)據(jù)時(shí),更新數(shù)據(jù)緩沖起始地址寄存器和DMA控制寄存器中的數(shù)據(jù)緩沖發(fā)送長度位,反映發(fā)送的當(dāng)前狀態(tài)。
當(dāng)來自緩沖器的最后數(shù)據(jù)位已經(jīng)發(fā)送至/自局部總線,且緩沖器為ctl/bit_cntPCL字的LAST BUF位所示的PCL列表的最后時(shí),DMA知道已經(jīng)到達(dá)了發(fā)送的末尾。DMA將用0×0001狀態(tài)更新DMA狀態(tài)寄存器,設(shè)置PKT CMP,然后,以PCL偏移量0×C連同被發(fā)送的字節(jié)數(shù)寫入PCL狀態(tài)字。如果INT位按PCL偏移量0×18設(shè)置在數(shù)據(jù)buf0 ctl/bit_cnt/cmd內(nèi),則中斷被發(fā)送并鎖存在中斷狀態(tài)寄存器中相應(yīng)的(DMA_PCL[x])位。
然后,DMA判斷另一個(gè)PCL是否通過獲得下一個(gè)列表地址(PCL偏移量0×00)而鏈路到當(dāng)前的PCL。如果如位0=0所示為有效,則DMA將確認(rèn)其為當(dāng)前PCL地址并繼續(xù)執(zhí)行。如果另一個(gè)PCL如位0=1所示尚未鏈路到當(dāng)前PCL,則在DMA控制寄存器中清除鏈路和BSY位,為具有中斷狀態(tài)寄存器中有關(guān)狀態(tài)(DMA_HLT[x])的該通道產(chǎn)生一個(gè)DMA暫時(shí)中斷,通道變?yōu)榭臻e。
圖26表示一個(gè)FIFO高層功能方塊圖500,它描述了GRF80的FIFO、異步發(fā)送FIFO82、以及同步發(fā)送FIFO84的操作。本發(fā)明的FIFO邏輯包括鏈路一側(cè)的時(shí)鐘區(qū)502和PCI一側(cè)的時(shí)鐘區(qū)504。在PCI一側(cè)的時(shí)鐘區(qū)504,F(xiàn)IFO控制和狀態(tài)寄存器88是實(shí)時(shí)的并由PCI總線接口邏輯寫入。而且,F(xiàn)IFO控制器狀態(tài)寄存器88向指針地址映射邏輯86提供輸入。指針地址映射邏輯86產(chǎn)生RAM地址映射偏移量至FIFO讀-寫指針對(duì)。
雙端口RAM501為GRF80、異步發(fā)送FIFO82和同步FIFO84提供數(shù)據(jù)存儲(chǔ),并跨在鏈路一側(cè)時(shí)鐘區(qū)502與PCI一側(cè)時(shí)鐘區(qū)504之間的邊界。一個(gè)PCI一側(cè)的時(shí)鐘區(qū)504,時(shí)鐘區(qū)指針轉(zhuǎn)換邏輯506產(chǎn)生一個(gè)輸入至DMA FIFO占有狀態(tài)邏輯508。DMA FIFO占有狀態(tài)邏輯508產(chǎn)生FIFO狀態(tài)至DMA邏輯信號(hào)510。在鏈路一側(cè)的時(shí)鐘區(qū)502,時(shí)鐘區(qū)指針轉(zhuǎn)換邏輯512提供輸入至1394FIFO發(fā)送器和接收占有狀態(tài)邏輯514,它產(chǎn)生一個(gè)FIFO狀態(tài)至1394發(fā)送-接收邏輯信號(hào)516。
雙端口RAM501接收來自多路復(fù)用器518和多路復(fù)用器520的地址輸入。多路復(fù)用器518接收來自通用接收寫指針522、異步發(fā)送讀指針524和同步發(fā)送讀指針526的輸入。通用接收寫指針522接收來自1394接收器和地址映射邏輯的控制。異步發(fā)送讀指針524和同步發(fā)送讀指針526接收來自1394發(fā)送器和地址映射邏輯的控制。來自通用接收寫指針522、異步發(fā)送讀指針524和同步發(fā)送讀指針526的輸出還送到發(fā)送器和接收占有狀態(tài)邏輯514、時(shí)鐘區(qū)指針轉(zhuǎn)換邏輯506和多路復(fù)用器518。
通用接收指針528、異步發(fā)送寫指針530和同步發(fā)送寫指針532都接收來自DMA邏輯和地址映射邏輯的控制。通用接收讀指針528、異步發(fā)送寫指針530和同步發(fā)送寫指針532都向DMA FIFO狀態(tài)邏輯508、時(shí)鐘區(qū)指針轉(zhuǎn)換邏輯512和多路復(fù)用器520提供輸出。
雙端口RAM501還接收沿33位數(shù)據(jù)總線534來自1394接收邏輯的數(shù)據(jù),鏈路時(shí)鐘25MHz信號(hào)536以及來自鏈路538的1394發(fā)送/接收邏輯的控制。而且,來自1394發(fā)送/接收邏輯538的控制送到鏈路一側(cè)的地址多路復(fù)用器518。字節(jié)打包邏輯540通過來自DMA邏輯的控制,接收來自主存儲(chǔ)器的DMA讀數(shù)據(jù),以在33位數(shù)據(jù)總線542上提供輸出,它送到雙端口RAM501的PCI一側(cè)的數(shù)據(jù)輸入。字節(jié)解包邏輯544接收自雙端口RAM501的PCI一側(cè)的數(shù)據(jù)輸出33位總線546輸出的數(shù)據(jù),向主存儲(chǔ)器提供DMA寫數(shù)據(jù)。而且,來自DMA邏輯的控制送到字節(jié)解包邏輯544、多路復(fù)用器520和雙端口RAM501。一個(gè)0至33兆赫的PCI時(shí)鐘信號(hào)送到雙端口RAM501。
結(jié)合圖2提供的描述,以下的描述進(jìn)一步詳細(xì)地描述了FIFO、GRF80、異步發(fā)送FIFO82和同步發(fā)送FIFO84的功能。
FIFO狀態(tài)邏輯514和516執(zhí)行為每個(gè)邏輯FIFO產(chǎn)生一個(gè)占有狀態(tài)所需的邏輯。在計(jì)算PCI一側(cè)的FIFO狀態(tài)時(shí),鏈路至PCI時(shí)鐘區(qū)轉(zhuǎn)換邏輯抽樣FIFO鏈路一側(cè)上每個(gè)指針的當(dāng)前值,并將這些抽樣從鏈路時(shí)鐘區(qū)轉(zhuǎn)換成PCI時(shí)鐘區(qū)。每個(gè)轉(zhuǎn)換的鏈路側(cè)指針與其相應(yīng)的PCI側(cè)指針比較,為每個(gè)FIFO產(chǎn)生一種占有狀態(tài)。該狀態(tài)由DMA邏輯所用以加速主存儲(chǔ)器與FIFO之間的數(shù)據(jù)傳送。同樣,在計(jì)算鏈路側(cè)FIFO狀態(tài)時(shí),PCI至鏈路時(shí)鐘區(qū)轉(zhuǎn)換邏輯對(duì)FIFO的PCI側(cè)上的每個(gè)指針的當(dāng)前值抽樣,并將這些抽樣從PCI時(shí)鐘區(qū)轉(zhuǎn)換成鏈路時(shí)鐘區(qū)。每個(gè)轉(zhuǎn)換的PCI側(cè)指針與其相應(yīng)的鏈路側(cè)指針比較,為每個(gè)指針計(jì)算一個(gè)占有狀態(tài)。該狀態(tài)由1394發(fā)送-接收邏輯所用,以協(xié)調(diào)1394總線與FIFO之間的數(shù)據(jù)傳送。
字節(jié)打包邏輯540執(zhí)行邏輯,利用通過活動(dòng)DMA通道讀按字節(jié)排列的地址上主存儲(chǔ)器的數(shù)據(jù),裝配成完整的一個(gè)四字節(jié)字。該時(shí)鐘較佳地包括4個(gè)8位寬的寄存器和4個(gè)8-1多路復(fù)用器。每個(gè)寄存器-多路復(fù)用器對(duì)相應(yīng)于一個(gè)字節(jié)通路。每個(gè)寄存器的輸入連接到一個(gè)輸入字節(jié)通路,它由活動(dòng)DMA通道切換到主存儲(chǔ)器。每個(gè)多路復(fù)用器的輸出連接到輸出字節(jié)通路,它驅(qū)動(dòng)FIFO。至于每個(gè)8-1多路復(fù)用器,4個(gè)輸入應(yīng)以一一對(duì)應(yīng)方式連接到每個(gè)寄存器的輸出。其余的4個(gè)輸入一一對(duì)應(yīng)地連接到每個(gè)寄存器輸入。這種配置允許位來自4個(gè)輸入字節(jié)通路的位排列DMA讀數(shù)據(jù),按不同的次序交叉轉(zhuǎn)換成4個(gè)輸出字節(jié)通路。通過活動(dòng)DMA讀通道來控制字節(jié)通路多路復(fù)用器。
字節(jié)解包邏輯544執(zhí)行所需的邏輯,將讀自FIFO的四字節(jié)字?jǐn)?shù)據(jù)分解成單獨(dú)可選擇的字節(jié),通過活動(dòng)DMA通道,按字節(jié)排列地址寫入主存儲(chǔ)器。該邏輯包括4個(gè)8位寬的寄存器和4個(gè)8-1多路復(fù)用器。每個(gè)寄存器-多路復(fù)用器對(duì)相應(yīng)于一個(gè)字節(jié)通路。每個(gè)寄存器的輸入連接到一條輸入字節(jié)通路,它由FIFO驅(qū)動(dòng)。每個(gè)多路復(fù)用器的輸出連接到一個(gè)輸出字節(jié)通路,它由DMA通道轉(zhuǎn)換到主存儲(chǔ)器。對(duì)于每個(gè)8-1多路復(fù)用器,4個(gè)輸入以一一對(duì)應(yīng)的方式連接到每個(gè)寄存器的輸出。其余的4個(gè)輸入一一對(duì)應(yīng)的連接到每個(gè)寄存器輸入。這一配置配置允許讀自FIFO的四字節(jié)字按不同的次序交叉切換成輸出字節(jié)通路。通過活動(dòng)DMA的寫通道來控制字節(jié)通路多路復(fù)用器。
盡管對(duì)本發(fā)明作了詳細(xì)的描述,但顯然在不脫離所附權(quán)利要求書所限定的本發(fā)明的精神和范圍下還可以對(duì)此作出各種變化、替換和變換。
權(quán)利要求
1.一種通過數(shù)據(jù)通信通道分配數(shù)據(jù)包的方法,其特征在于包括如下步驟接收數(shù)據(jù)包比較電路中的至少一部分?jǐn)?shù)據(jù)包;比較至少所述一部分?jǐn)?shù)據(jù)包與預(yù)定的匹配數(shù)據(jù)集,所述匹配數(shù)據(jù)集中的至少一部分包括對(duì)應(yīng)于至少一條數(shù)據(jù)通信通道的可編程變化的數(shù)據(jù)字段;在所述至少一部分與所述匹配數(shù)據(jù)集之間有預(yù)定對(duì)應(yīng)的情況下,將通道選擇信號(hào)引導(dǎo)到所述至少一條數(shù)據(jù)通信通道。
2.如權(quán)利要求1所述的方法,其特征在于,所述數(shù)據(jù)包與多個(gè)同樣的數(shù)據(jù)包有關(guān),所述多個(gè)數(shù)據(jù)包同樣有一部分有關(guān)的數(shù)據(jù)包與各個(gè)匹配數(shù)據(jù)集比較,用以將多個(gè)相應(yīng)通道選擇信號(hào)引導(dǎo)到至少一條數(shù)據(jù)通信通道,所述方法進(jìn)一步包括以下步驟在優(yōu)先度譯碼器電路中接收所述通道選擇信號(hào)和所述多個(gè)相應(yīng)通道選擇信號(hào);根據(jù)與所述通道選擇信號(hào)和所述多個(gè)相應(yīng)通道選擇信號(hào)的組合有關(guān)的預(yù)定的優(yōu)先度數(shù)據(jù)值,將所述通道選擇信號(hào)和所述多個(gè)相應(yīng)通道選擇信號(hào)的至少一個(gè)信號(hào)引導(dǎo)到至少一條數(shù)據(jù)通信通道。
3.如權(quán)利要求2所述的方法,其特征在于進(jìn)一步包括組合所述通道選擇信號(hào)與所述多個(gè)相應(yīng)通道選擇信號(hào),產(chǎn)生一個(gè)邏輯上為或的比較器匹配信號(hào),以接收與所述數(shù)據(jù)通信通道有關(guān)的控制邏輯的步驟。
4.如權(quán)利要求1所述的方法,其特征在于,所述比較步驟進(jìn)一步包括比較字0字段選擇寄存器內(nèi)容與字0比較值寄存器內(nèi)容的步驟。
5.如權(quán)利要求1所述的方法,其特征在于,所述比較步驟進(jìn)一步包括比較字1字段選擇寄存器內(nèi)容與字1比較值寄存器內(nèi)容的步驟。
6.如權(quán)利要求1所述的方法,其特征在于,所述比較步驟進(jìn)一步包括比較所述一部分?jǐn)?shù)據(jù)包與匹配數(shù)據(jù)集的步驟,所述一部分?jǐn)?shù)據(jù)包包括進(jìn)入數(shù)據(jù)包的字0和字1。
7.如權(quán)利要求1所述的方法,其特征在于,所述比較步驟進(jìn)一步包括比較所述一部分?jǐn)?shù)據(jù)包與匹配數(shù)據(jù)集,所述匹配數(shù)據(jù)集包括字0和字1預(yù)期值的步驟。
8.一種將數(shù)據(jù)包分配到數(shù)據(jù)通信通道的DMA通道接收包比較器電路,其特征在于包括接收比較器,接收數(shù)據(jù)包比較電路中的至少一部分?jǐn)?shù)據(jù)包;與所述接收比較器有關(guān)的比較電路,比較至少所述一部分?jǐn)?shù)據(jù)包與預(yù)定的匹配數(shù)據(jù)集,所述匹配數(shù)據(jù)集中的至少一部分包括對(duì)應(yīng)于至少一條數(shù)據(jù)通信通道的可編程變化的數(shù)據(jù)字段;以及引導(dǎo)電路,在所述至少一部分與所述匹配數(shù)據(jù)集之間進(jìn)行預(yù)定通信的情況下,將通道選擇信號(hào)引導(dǎo)到所述至少一條數(shù)據(jù)通信通道。
9.如權(quán)利要求8所述的DMA通道接收包比較器電路,其特征在于,所述數(shù)據(jù)包與多個(gè)同樣的數(shù)據(jù)包有關(guān),所述多個(gè)數(shù)據(jù)包同樣有一部分有關(guān)的數(shù)據(jù)包與各個(gè)匹配數(shù)據(jù)集比較,用以將多個(gè)相應(yīng)通道選擇信號(hào)引導(dǎo)到至少一條數(shù)據(jù)通信通道,所述DMA通道接收包比較器電路進(jìn)一步包括優(yōu)先度編碼器,用以接收所述通道選擇信號(hào)和所述多個(gè)相應(yīng)通道選擇信號(hào);與所述優(yōu)先度編碼器有關(guān)的引導(dǎo)電路,根據(jù)與所述通道選擇信號(hào)和所述多個(gè)相應(yīng)通道選擇信號(hào)的組合有關(guān)的預(yù)定的優(yōu)先度數(shù)據(jù)值,將所述通道選擇信號(hào)和所述多個(gè)相應(yīng)通道選擇信號(hào)的至少一個(gè)信號(hào)引導(dǎo)到至少一條數(shù)據(jù)通信通道。
10.如權(quán)利要求9所述的DMA通道接收包比較器電路,其特征在于進(jìn)一步包括組合所述通道選擇信號(hào)與所述多個(gè)相應(yīng)通道選擇信號(hào),產(chǎn)生一個(gè)邏輯上為或的比較器匹配信號(hào),以接收與所述數(shù)據(jù)通信通道有關(guān)的控制邏輯的電路。
11.如權(quán)利要求8所述的DMA通道接收包比較器電路,其特征在于,所述比較電路進(jìn)一步包括比較字0字段選擇寄存器內(nèi)容與字0比較值寄存器內(nèi)容的電路。
12.如權(quán)利要求9所述的DMA通道接收包比較器電路,其特征在于,所述比較電路進(jìn)一步包括比較字1字段選擇寄存器內(nèi)容與字1比較值寄存器內(nèi)容的電路。
13.如權(quán)利要求8所述的DMA通道接收包比較器電路,其特征在于,所述比較電路比較所述一部分?jǐn)?shù)據(jù)包與匹配數(shù)據(jù)集,所述一部分?jǐn)?shù)據(jù)包包括進(jìn)入數(shù)據(jù)包的字0和字1。
14.如權(quán)利要求8所述的DMA通道接收包比較器電路,其特征在于,所述比較電路進(jìn)一步包括比較所述一部分?jǐn)?shù)據(jù)包與匹配數(shù)據(jù)集,所述匹配數(shù)據(jù)集包括字0和字1預(yù)期值的電路。
15.一種個(gè)人計(jì)算機(jī)系統(tǒng),其特征在于包括采用數(shù)據(jù)包發(fā)送總線的至少一個(gè)外圍設(shè)備;一臺(tái)計(jì)算機(jī),所述計(jì)算機(jī)包括包括PCI總線的主CPU;以及在所述PCI總線與所述外圍設(shè)備之間提供接口的PCI接口設(shè)備,所述PCI接口設(shè)備包括用以將數(shù)據(jù)包分配到數(shù)據(jù)通信通道的DMA通道接收包比較器電路,它包括接收比較器,接收數(shù)據(jù)包比較電路中的至少一部分?jǐn)?shù)據(jù)包;與所述接收比較器有關(guān)的比較電路,比較至少所述一部分?jǐn)?shù)據(jù)包與預(yù)定的匹配數(shù)據(jù)集,所述匹配數(shù)據(jù)集中的至少一部分包括對(duì)應(yīng)于至少一條數(shù)據(jù)通信通道的可編程變化的數(shù)據(jù)字段;以及引導(dǎo)電路,在所述至少一部分與所述匹配數(shù)據(jù)集之間進(jìn)行預(yù)定通信的情況下,將通道選擇信號(hào)引導(dǎo)到所述至少一條數(shù)據(jù)通信通道。
16.如權(quán)利要求15所述的個(gè)人計(jì)算機(jī)系統(tǒng),其特征在于,所述DMA通道接收包比較器進(jìn)一步包括組合所述通道選擇信號(hào)與所述多個(gè)相應(yīng)通道選擇信號(hào),產(chǎn)生一個(gè)邏輯上為或的比較器匹配信號(hào),以接收與所述數(shù)據(jù)通信通道有關(guān)的控制邏輯的電路。
17.如權(quán)利要求15所述的個(gè)人計(jì)算機(jī)系統(tǒng),其特征在于,所述DMA通道接收包比較器電路進(jìn)一步包括比較字0字段選擇寄存器內(nèi)容與字0比較值寄存器內(nèi)容的電路。
18.如權(quán)利要求15所述的個(gè)人計(jì)算機(jī)系統(tǒng),其特征在于,所述DMA通道接收包比較器比較電路進(jìn)一步包括比較字1字段選擇寄存器內(nèi)容與字1比較值寄存器內(nèi)容的電路。
19.如權(quán)利要求15所述的個(gè)人計(jì)算機(jī)系統(tǒng),其特征在于,所述比較電路比較所述一部分?jǐn)?shù)據(jù)包與匹配數(shù)據(jù)集,所述一部分?jǐn)?shù)據(jù)包包括進(jìn)入數(shù)據(jù)包的字0和字1。
20.如權(quán)利要求15所述的個(gè)人計(jì)算機(jī)系統(tǒng),其特征在于,所述比較電路進(jìn)一步包括比較所述一部分?jǐn)?shù)據(jù)包與匹配數(shù)據(jù)集,所述匹配數(shù)據(jù)集包括字0和字1預(yù)期值的電路。
全文摘要
通過數(shù)據(jù)通信通道分配數(shù)據(jù)包的PCI接口ASIC(20)的DMA通道接收包比較器邏輯(74),包括接收數(shù)據(jù)包比較電路(120)中至少一部分?jǐn)?shù)據(jù)包(108)的DMA通道比較器邏輯(110)。數(shù)據(jù)包比較電路比較至少一部分?jǐn)?shù)據(jù)包與預(yù)定的匹配數(shù)據(jù)集(122)。該部分(108)和匹配數(shù)據(jù)集形成對(duì)應(yīng)于至少一條數(shù)據(jù)通信通道(117,119,121,123)的可編程變化的數(shù)據(jù)字段(WD0,WD1)。在該部分和匹配數(shù)據(jù)集有預(yù)定對(duì)應(yīng)的情況下,通道選擇信號(hào)進(jìn)入優(yōu)先度編碼器(125)。
文檔編號(hào)H04L29/10GK1177877SQ9711080
公開日1998年4月1日 申請(qǐng)日期1997年4月25日 優(yōu)先權(quán)日1997年4月25日
發(fā)明者R·T·貝克 申請(qǐng)人:德克薩斯儀器股份有限公司