專利名稱:高性能通信控制器的制作方法
技術(shù)領(lǐng)域:
本發(fā)明通常涉及通信控制器,具體涉及高性能通信控制器。
通信控制器一般可見于網(wǎng)絡(luò)和電信產(chǎn)品中。通信控制器根據(jù)各種多層通信協(xié)議處理數(shù)據(jù)流,并把與一個(gè)通信層相關(guān)的數(shù)據(jù)包變換為與另一個(gè)通信層相關(guān)的數(shù)據(jù)包。
當(dāng)通信處理機(jī)處理與各種通信協(xié)議相關(guān)的數(shù)據(jù)流時(shí),通信控制器以分離模式來處理各個(gè)通信協(xié)議,并可在不同的模式之間跳轉(zhuǎn)。
通信控制器不但需要處理高速數(shù)據(jù)流,而且還需要根據(jù)各種多層通信協(xié)議來處理數(shù)據(jù)流。為了處理高速數(shù)據(jù)流,通信控制器需要有很大的帶寬,例如數(shù)百M(fèi)IPS甚至更多。為了能夠根據(jù)各種通信協(xié)議,特別是以非??焖俚哪J浇邮?,發(fā)送并處理數(shù)據(jù),通信控制器需要在它的不同模式之間很快速地跳轉(zhuǎn)。
圖1是一張根據(jù)現(xiàn)有技術(shù)的簡化的示意圖,描述了舊式通信信道1180,舊式外存儲(chǔ)體1100和舊式通信控制器101。舊式通信控制器101與摩托羅拉的MC68360芯片類似。舊式通信控制器101包括舊式調(diào)度器1050,舊式的第一直接存儲(chǔ)器存取控制器(也就是舊式的第一DMA)1060,舊式的第一存儲(chǔ)體1070,舊式的第一處理器1090,舊式的指令存儲(chǔ)體1130,舊式的第二處理器1100和舊式接口1160。舊式的通信控制器101與一個(gè)舊式的外存儲(chǔ)體1110相連。舊式的通信控制器101還可以與其他外部設(shè)備如另一個(gè)外部存儲(chǔ)體,主系統(tǒng)和其他處理器相連,但并不局限于以上三種外部設(shè)備。舊式的通信控制器101可以與多個(gè)外存儲(chǔ)體相連。為了便于解釋,把這多個(gè)存儲(chǔ)體稱之為舊式外存儲(chǔ)體1110。
舊式調(diào)度器1050具有輸入1054,1056和輸入/輸出(即I/O)1052。舊式的第一DMA1060具有輸入1066,輸出1068和輸入/輸出1062,1064。舊式的第一存儲(chǔ)體1070具有輸入/輸出1072,1074和1076。舊式的第一處理器1090具有輸入1095,輸出1096和輸入/輸出1092,1094,1098。舊式的第二處理器1100包括輸入/輸出1102。舊式的外存儲(chǔ)體1110包括輸入/輸出1116。舊式接口1160包括輸入/輸出1162和1165。
N個(gè)舊式外設(shè)PR(1)—PR(N)1141-1148,統(tǒng)一表示為1140,與舊式外設(shè)總線1112相連。N個(gè)舊式外設(shè)1140被置于舊式通信控制器101內(nèi)。這N個(gè)舊式外設(shè)1140把舊式通信控制器101與多個(gè)舊式通信信道CC(1)-CC(K)1181-1188相連,1181-1188統(tǒng)一表示為1180。舊式通信信道1180具有統(tǒng)一表示為1182的輸入/輸出。舊式外設(shè)具有統(tǒng)一表示為1144的輸入/輸出。輸入/輸出1182與輸入/輸出1144相連。
舊式外設(shè)1140的輸入/輸出1142,舊式第一存儲(chǔ)體1070的輸入/輸出1072和舊式調(diào)度器1150的輸入1054均與舊式外設(shè)總線1112相連。舊式第一DMA1060的輸入/輸出1062,舊式的外存儲(chǔ)體1110的輸入/輸出1116,舊式第二處理器1100的輸入/輸出1102,舊式接口1160的輸入/輸出1162與單總線1113相連。單總線1113是一根外部總線,它把舊式通信控制器101與不同的外部設(shè)備連接起來。舊式調(diào)度器1150的輸入/輸出1052與舊式的第一處理器1090的輸入/輸出1092相連。舊式的第一處理器1090的輸入/輸出1094與舊式的指令存儲(chǔ)體1130的輸入/輸出1132相連。舊式的第一處理器1090的輸入/輸出1095與接口1160的輸入/輸出1165相連。舊式的第一處理器90的輸入/輸出1098與舊式的第一存儲(chǔ)體1070的輸入/輸出1076相連。舊式的第一處理器90的輸出1096與舊式的第一DMA1060的輸入1066相連。舊式的第一DMA1060的輸入/輸出1064與舊式的第一存儲(chǔ)體1070的輸入/輸出1074相連。
舊式接口1060是一組寄存器,它可被舊式的第一處理器1090以及被可以訪問單總線1113的任意設(shè)備進(jìn)行存取。
通常把舊式外設(shè)制做成能夠處理一個(gè)或多個(gè)通信協(xié)議。一些舊式外設(shè)可以與單通信信道相連,另一些外設(shè)可以與多通信信道相連。有一種外設(shè)為串行通信控制器(即SCC),它可以處理各種通信協(xié)議如IEEE802.3/以太網(wǎng),高級(jí)/同步數(shù)據(jù)鏈路控制(即HDLC/SDLC),通用異步收發(fā)器(即UART)。另一種外設(shè)是串行管理控制器(SMC),它處理UART并提供全透明功能性。還有一種外設(shè)是串行外圍接口(即SPI),它使得舊式通信控制器101可以與其他通信控制器以及大量如ISDN設(shè)備這樣的外設(shè)和模數(shù)轉(zhuǎn)換器之間交換數(shù)據(jù)。處理串行通信協(xié)議的外設(shè)通常包括并行到串行轉(zhuǎn)換器,如移位寄存器,它從通信信道接收串行數(shù)據(jù)位流,把該位流轉(zhuǎn)換為一組要發(fā)送到舊式第一處理器1090去的多位字。這些外設(shè)還包括并行到串行轉(zhuǎn)換器如移位寄存器,以從舊式第一處理器1090接收多位字,并把每個(gè)字轉(zhuǎn)換為單位流。方便起見,每個(gè)舊式外設(shè)為一狀態(tài)機(jī)。
舊式通信處理器101能夠根據(jù)各種通信協(xié)議處理數(shù)據(jù)。舊式的通信控制器101具有一個(gè)能夠根據(jù)可編程的例行程序處理各種通信協(xié)議的舊式第一處理器1090,上述例行程序可存儲(chǔ)在舊式指令存儲(chǔ)體1130,舊式第一存儲(chǔ)體1070或任何其他的存儲(chǔ)體中。在處理數(shù)據(jù)時(shí),舊式第一處理器1090使用存儲(chǔ)在舊式第一存儲(chǔ)體1070或舊式外存儲(chǔ)體1110中的一組參數(shù)(請(qǐng)求信道參數(shù),通信信道參數(shù))。方便起見,這些參數(shù)可以是每個(gè)通信協(xié)議(即協(xié)議)的一部分。通常這些參數(shù)在本技術(shù)領(lǐng)域都是公知的。例如,以太網(wǎng)協(xié)議的具體參數(shù)被刊印在摩托羅拉的MC68360用戶手冊(cè)第7-247頁到7-248頁,UART協(xié)議的具體參數(shù)被刊印在第7-145頁,HDLC協(xié)議的具體參數(shù)被刊印在第7-173頁,BISYNC協(xié)議的具體參數(shù)被刊印在第7-203頁,透明協(xié)議的具體參數(shù)被刊印在第7-225頁。有各種類型的參數(shù),如請(qǐng)求信道參數(shù)用于定義請(qǐng)求信道的狀態(tài),通信信道參數(shù)用于定義單個(gè)通信信道的狀態(tài)。例如與SCC相類似的請(qǐng)求信道的請(qǐng)求信道參數(shù)被刊印在摩托羅拉MC68260用戶手冊(cè)的7-125頁,各種通信協(xié)議的通信信道參數(shù)被刊印在摩托羅拉用戶手冊(cè)的第7-145,7-173,7-203,7-225,和7-247至7-248中。
舊式的第二處理器1100初始化舊式第一處理器1090并處理高級(jí)管理和協(xié)議功能,例如字節(jié)交換,壓縮和路由選擇。舊式的第一處理器1090控制所有的數(shù)據(jù)流事務(wù)處理。在舊式的調(diào)度器1150接收到處理這樣事務(wù)的請(qǐng)求并通知舊式第一處理器需要處理該事務(wù)之后,舊式的第一處理器1090才處理該事務(wù)。如果有來自一些舊式外設(shè)處的不止一個(gè)請(qǐng)求,舊式調(diào)度器1050便選擇最高優(yōu)先級(jí)的請(qǐng)求。
“任務(wù)”被定義為一組指令,它由舊式第一處理器1090執(zhí)行以控制數(shù)據(jù)幀的單個(gè)事務(wù)。通常數(shù)據(jù)的單個(gè)事務(wù)是由從外設(shè)接收到的請(qǐng)求或發(fā)送來的請(qǐng)求來初始化的。
為便于理解,圖2為舊式第一存儲(chǔ)體的一部分和舊式外存儲(chǔ)體的一部分的示意圖。
與通信信道相關(guān)的數(shù)據(jù)幀被存儲(chǔ)在緩沖器BF(k)814中,緩沖器BF(k)814的大小可被編程。一個(gè)數(shù)據(jù)幀(如每個(gè)通信協(xié)議所定義)可以存儲(chǔ)在一個(gè)或更多個(gè)緩沖器中,單個(gè)緩沖器不會(huì)存儲(chǔ)來自多于一個(gè)數(shù)據(jù)幀的數(shù)據(jù)。至少一個(gè)數(shù)據(jù)幀與一單個(gè)通信信道相關(guān)。存儲(chǔ)與單個(gè)通信信道相關(guān)的數(shù)據(jù)的該組緩沖器形成一個(gè)循環(huán)隊(duì)列。大多數(shù)緩沖器位于舊式的外存儲(chǔ)體1110中。緩沖器BF(k)814由緩沖描述符BD(k)812定位,緩沖描述符統(tǒng)一表示為288。大多數(shù)緩沖描述符被存儲(chǔ)在舊式的第一存儲(chǔ)體1070中,另有一些被存儲(chǔ)在舊式的外存儲(chǔ)體1110中。
方便起見,緩沖描述符BD(k)812包括一個(gè)指針字段(即PT(k))810,一個(gè)狀態(tài)和控制字段(即SW(k))806和一個(gè)長度字段(即LW(k))808。緩沖器BF(k)814的起點(diǎn)由PT(k)810定位。LW(k)808確定緩沖器BF(k)814的長度。SW(k)806包括一個(gè)F/S位FSB(k)802,它確定舊式第一和舊式第二處理器1090和1100中哪一個(gè)能夠處理和/或訪問緩沖器BF(k)814。舊式第一處理器1090會(huì)在它完成發(fā)送所有存儲(chǔ)在BF(k)814中的數(shù)據(jù),或完成接收一個(gè)數(shù)據(jù)幀,或所接收的數(shù)據(jù)填充BF(k)814時(shí),設(shè)置FSB(k)。舊式第二處理器1100會(huì)在它用要發(fā)送給一個(gè)通信信道的數(shù)據(jù)填充BF(k)814,或在它完成讀取存儲(chǔ)在BF(k)814中的數(shù)據(jù)時(shí),復(fù)位FSB(k)802,其中該數(shù)據(jù)是從一個(gè)通信信道中接收到的。SW(k)806還包括一個(gè)換行字段(即WB(k))804,它用于表明BD(k)812是否為涉及通信信道的最后一個(gè)緩沖描述符。PT(k)810指向BF(k)814的起點(diǎn)。因?yàn)榫彌_器包括多個(gè)存儲(chǔ)字,因此需要一個(gè)臨時(shí)的計(jì)數(shù)器TMP(k)816指向存儲(chǔ)從CC(k)接收到新數(shù)據(jù)字,或存儲(chǔ)要發(fā)送給CC(k)數(shù)據(jù)字的地址。在存儲(chǔ)/發(fā)送了數(shù)據(jù)之后,對(duì)TMP(k)816進(jìn)行更新。
每一個(gè)緩沖描述符BD(k)812由一個(gè)描述符指針DP(k)818定位。描述符指針被存儲(chǔ)在舊式第一存儲(chǔ)體1070中。
舊式第一處理器1090在它完成對(duì)緩沖器BF(k)814處理之前不能提取新的緩沖描述符BD(k+1),也不能處理存儲(chǔ)在與此緩沖描述符相關(guān)的緩沖器BF(k+1)中存儲(chǔ)的數(shù)據(jù)。
對(duì)數(shù)據(jù)的發(fā)送和接收涉及到提取請(qǐng)求信道參數(shù),通信信道參數(shù),TMP(k)816,DP(k)818,BD(k)812以及存儲(chǔ)在BF(k)814中的數(shù)據(jù)(即信息)。如果需要從外存儲(chǔ)器中提取信息,舊式的第一處理器1090便啟動(dòng)舊式的第一DMA 1060并一直等到提取到信息。在提取到信息之后,舊式的第一處理器1090繼續(xù)執(zhí)行涉及從舊式外存儲(chǔ)器1100中提取信息的任務(wù)。
舊式的第一處理器1090和第二處理器1010共享一條外部總線,因此便限制了舊式通信控制器101的頻率和可用的帶寬。
在耗時(shí)操作例如從外存儲(chǔ)器提取信息結(jié)束時(shí),舊式的第一處理器1090為空閑狀態(tài),這樣便降低了它的頻率。
舊式的通信控制器101沒有所要求的帶寬,不能在任務(wù)之間跳轉(zhuǎn),不能處理高速數(shù)據(jù)流,特別是與各種通信協(xié)議相關(guān)的高速數(shù)據(jù)流。
因此便需要一種得到改善的高性能通信控制器,以能處理高速數(shù)據(jù)流,特別是與各種通信協(xié)議相關(guān)的高速數(shù)據(jù)流。
本發(fā)明的特性在所附的權(quán)利要求中已經(jīng)指出,其他的特征將參照附圖在下面進(jìn)行詳細(xì)描述。其中,圖1是根據(jù)現(xiàn)有技術(shù)的簡化的示意圖,描述了舊式通信信道,舊式外存儲(chǔ)體和舊式通信控制器;圖2為舊式第一存儲(chǔ)體的一部分和舊式外存儲(chǔ)體的一部分的示意圖;圖3為根據(jù)本發(fā)明的優(yōu)選實(shí)施例的簡化的示意圖,描述了通信信道,外存儲(chǔ)體和通信控制器;圖4為根據(jù)本發(fā)明的優(yōu)選實(shí)施例的第一直接存儲(chǔ)器存取控制器的控制部分的示意圖;圖5為根據(jù)本發(fā)明的優(yōu)選實(shí)施例的第一直接存儲(chǔ)器存取控制器的緩沖部分的示意圖;圖6為根據(jù)本發(fā)明的優(yōu)選實(shí)施例的使能單元,調(diào)度器和屏蔽邏輯電路的示意圖;圖7為根據(jù)本發(fā)明的優(yōu)選實(shí)施例的調(diào)度器的示意圖;圖8為根據(jù)本發(fā)明的優(yōu)選實(shí)施例的塊傳送機(jī)的示意圖9為根據(jù)本發(fā)明的優(yōu)選實(shí)施例的第一存儲(chǔ)體的示意圖;圖10為根據(jù)本發(fā)明的優(yōu)選實(shí)施例的第一存儲(chǔ)體內(nèi)的一條存儲(chǔ)體的示意圖;圖11為一流程圖,描述了根據(jù)本發(fā)明的優(yōu)選實(shí)施例用于執(zhí)行任務(wù)和任務(wù)轉(zhuǎn)換的方法的優(yōu)選實(shí)施例;圖12為一流程圖,描述了根據(jù)本發(fā)明的優(yōu)選實(shí)施例用于執(zhí)行由接收或發(fā)送的請(qǐng)求所初始化的任務(wù)的方法的優(yōu)選實(shí)施例;圖13為根據(jù)本發(fā)明的優(yōu)選實(shí)施例描述第一處理器對(duì)各種接收/發(fā)送請(qǐng)求所作出的響應(yīng)的時(shí)間關(guān)系圖;圖14為根據(jù)本發(fā)明的優(yōu)選實(shí)施例描述第一處理器對(duì)各種接收/發(fā)送請(qǐng)求所作出的響應(yīng)的時(shí)間關(guān)系圖。
通常,本發(fā)明的一個(gè)方面是處理高速數(shù)據(jù)流特別是與各種通信協(xié)議相關(guān)的高速數(shù)據(jù)流的能力。
應(yīng)當(dāng)注意,在詳細(xì)的描述和附圖中所使用的特定術(shù)語,表示方式以及所披露的特定結(jié)構(gòu)和操作細(xì)節(jié)只是用于描述性目的,并不是意于限制所附權(quán)利要求中描述的本發(fā)明的范圍。
圖3為根據(jù)本發(fā)明的優(yōu)選實(shí)施例的簡化的示意圖,描述了通信信道180,外存儲(chǔ)體110和通信控制器111。如虛線119所示,通信控制器111包括調(diào)度器50,第一DMA 60,第二DMA 160,第一存儲(chǔ)體70,第一處理器90,指令存儲(chǔ)體130,第二處理器100以及多個(gè)外設(shè),統(tǒng)一表示為140。通信控制器111與兩個(gè)外部總線-第一總線113和第二總線114相連。通信控制器還與外部存儲(chǔ)體110以及被統(tǒng)一表示為180的多個(gè)通信信道相連。方便起見,這多個(gè)通信信道180與多個(gè)外設(shè)140相連。通信控制器111還可以與其他外部設(shè)備如另一個(gè)外部存儲(chǔ)體,主系統(tǒng)和其他處理器相連,但并不局限于以上三種外部設(shè)備。通信控制器還包括橋接器120,接口160和塊傳送機(jī)(即BTM)40。通信控制器111還可以與多個(gè)外部存儲(chǔ)體相連。為了便于解釋,這多個(gè)存儲(chǔ)體被稱之為外存儲(chǔ)體110。
調(diào)度器50具有輸入561-568和輸入/輸出52。第一DMA 60具有輸出67和輸入/輸出62,64,65。第二DMA 160與第一DMA 60類似,具有輸出167和輸入/輸出162,164和165。第一存儲(chǔ)體具有輸入/輸出72,74,76和78。第一處理器90具有輸入/輸出92,93,94,95,96,97和98(為便于解釋,圖8顯示了輸入/輸出97)。第二處理器100具有輸入/輸出102,104。外存儲(chǔ)體110具有輸入/輸出116和118。指令存儲(chǔ)體130具有輸入/輸出132。BTM 40具有輸入/輸出43,45和47(為便于解釋圖8顯示了輸入/輸出46)。橋接器120具有輸入/輸出124和122。接口160具有輸入/輸出162和164。M個(gè)外設(shè)PR(1)-PR(M)1401-1408,統(tǒng)一表示為140,具有M個(gè)統(tǒng)一表示為144的輸入/輸出和M個(gè)統(tǒng)一表示為142的輸入/輸出。最好,將M個(gè)外設(shè)140放置于通信控制器111中。多(M)個(gè)外設(shè)140把通信控制器111與多(K)個(gè)通信信道CC(1)-CC(K)1801-1808(統(tǒng)一表示為180)通過輸入/輸出144和182連接起來。
外設(shè)140的輸入/輸出142,BTM 40的輸入/輸出43和調(diào)度器50的輸入561-568與外圍總線112相連。第二DMA 160的輸入/輸出162,外存儲(chǔ)體110的輸入/輸出118,第二處理器110的輸入/輸出104和橋接器的輸入/輸出162均與第二總線114相連。第一DMA 60的輸入/輸出62,外部存儲(chǔ)體110的輸入/輸出116以及橋接器120的輸入/輸出122均與第一總線113相連。第一存儲(chǔ)體70的輸入/輸出72與BTM40的輸入/輸出45相連。第一存儲(chǔ)體70的輸入/輸出74與第二DMA 160的輸入/輸出164相連。第一存儲(chǔ)體70的輸入/輸出78與第一DMA 60的輸入/輸出64相連。第一存儲(chǔ)體70的輸入/輸出76與第一處理器90的輸入/輸出98相連。第一處理器90的輸入/輸出93與第二DMA 160的輸入/輸出165相連。第一處理器90的輸入/輸出96與第一DMA 60的輸入/輸出65相連。第一處理器90的輸入/輸出94與指令存儲(chǔ)體130的輸入/輸出132相連。第一處理器90的輸入/輸出95與接口160的輸入/輸出164相連。第一處理器90的輸入/輸出92與調(diào)度器50的輸入/輸出52相連。第二處理器100的輸入/輸出102與橋接器120的輸入/輸出124相連。第二DMA 160的輸入/輸出167和第一DMA 60的輸入/輸出67通過屏蔽邏輯電路(圖6所示)與調(diào)度器的輸入561-568相連。
橋接器120用于連接第二處理器100和第一總線113。接口160包括一個(gè)寄存器,它用于把第一處理器90與不同的單元如第二處理器100通過第一總線100連接起來。接口160可用于向第一處理器90寫指令。
外設(shè)140中的一些外設(shè)包括一個(gè)緩沖器或一個(gè)隊(duì)列,該緩沖器或隊(duì)列與通信信道180中的一個(gè)或多個(gè)通信信道相連。方便起見,外設(shè)更復(fù)雜,通常把每個(gè)外設(shè)制成能夠處理一個(gè)或多個(gè)通信協(xié)議。一些外設(shè)可以與單個(gè)通信信道相連,一些外設(shè)則可以與多個(gè)通信信道相連。例如,但并不以此限制本發(fā)明的范圍,處理HDLC協(xié)議的外設(shè)可以與256個(gè)通信信道相連。
例如,但并不以此限制本發(fā)明的范圍,一種外設(shè)類似于摩托羅拉的MC68360 SCC,但也能處理異步傳輸模式的通信協(xié)議。另一種外設(shè)類似于摩托羅拉的MC68360 SMC。另一種外設(shè)類似于摩托羅拉的MC68360 SPI。還有一種外設(shè)允許通信控制器111處理ATM協(xié)議,而再一種外設(shè)則允許通信控制器111處理快以太網(wǎng)(Fast Ethernet)協(xié)議。處理串行通信協(xié)議的外設(shè)通常包括從并行到串行的轉(zhuǎn)換器,例如移位寄存器,它從通信信道接收串行數(shù)據(jù)位流,并把該數(shù)據(jù)位流轉(zhuǎn)換為一組將發(fā)送到第一處理器90去的多位字。這些外設(shè)進(jìn)一步還包括并行到串行轉(zhuǎn)換器,例如移位寄存器,用于從第一處理器90接收一個(gè)多位字,再把每個(gè)字轉(zhuǎn)換為單位流。方便起見,每個(gè)外設(shè)包括一臺(tái)狀態(tài)機(jī),該狀態(tài)機(jī)適用于至少一個(gè)通信協(xié)議。狀態(tài)機(jī)可以把原始數(shù)據(jù)位流轉(zhuǎn)換為與通信協(xié)議相容的位流。
通信處理器111根據(jù)不同的通信協(xié)議處理數(shù)據(jù)。通信控制器111具有一個(gè)能夠根據(jù)可編程的例行程序處理各種通信協(xié)議的第一處理器90,上述例行程序可被存儲(chǔ)在指令存儲(chǔ)體130,第一存儲(chǔ)體70或任何其他的存儲(chǔ)體中。在處理數(shù)據(jù)時(shí),第一處理器90使用存儲(chǔ)在第一存儲(chǔ)體70或外存儲(chǔ)體110中的一組參數(shù)(請(qǐng)求信道參數(shù),通信信道參數(shù))。方便起見,這些參數(shù)可以是每個(gè)通信協(xié)議(即協(xié)議)的一部分。通常這些參數(shù)是本技術(shù)領(lǐng)域公知的。例如,但并不以此來限制本發(fā)明的范圍,以太網(wǎng)協(xié)議的具體參數(shù)被刊印在摩托羅拉的MC68360用戶手冊(cè)第7-247頁到7-248頁,UART協(xié)議的具體參數(shù)被刊印在第7-145頁,HDLC協(xié)議的具體參數(shù)被刊印在第7-173頁,BISYNC協(xié)議的具體參數(shù)被刊印在第7-203頁,透明協(xié)議的具體參數(shù)被刊印在第7-225頁。有各種類型的參數(shù),如請(qǐng)求信道參數(shù)用于定義請(qǐng)求信道的狀態(tài),通信信道參數(shù)用于定義單個(gè)通信信道的狀態(tài)。例如與SCC相類似的請(qǐng)求信道的請(qǐng)求信道參數(shù)被刊印在摩托羅拉MC68260用戶手冊(cè)的7-125頁,各種通信協(xié)議的通信信道參數(shù)被刊印在摩托羅拉用戶手冊(cè)的第7-145,7-173,7-203,7-225,和7-247至7-248中。
第二處理器100初始化第一處理器90并處理高級(jí)管理和協(xié)議功能,例如字節(jié)交換,壓縮和路由選擇。方便起見,第二處理器類似于摩托羅拉的MC68360芯片的CPU32+(被刊印在摩托羅拉的MC68360芯片用戶手冊(cè)中)。第一處理器90控制所有的數(shù)據(jù)流事務(wù)處理。
“任務(wù)”被定義為一組指令,它由第一處理器90執(zhí)行以控制幀的事務(wù)。通常幀的事務(wù)是由從一個(gè)外設(shè)接收到的請(qǐng)求或發(fā)送來的請(qǐng)求來初始化的。
方便起見,外設(shè)可以接收數(shù)據(jù)或傳送數(shù)據(jù)。為了便于解釋,每個(gè)外設(shè)140都被認(rèn)為包括兩個(gè)請(qǐng)求信道,一個(gè)傳送請(qǐng)求信道,用于傳送數(shù)據(jù)和發(fā)送傳送請(qǐng)求,一個(gè)接收請(qǐng)求信道,用于接收數(shù)據(jù)和發(fā)送接收請(qǐng)求。為了便于解釋,把第z個(gè)請(qǐng)求信道表示為RC(z),z555是一個(gè)值為1到2M的索引。Z555表示第z個(gè)請(qǐng)求信道已經(jīng)發(fā)出接收或傳送請(qǐng)求。
方便起見,由通信控制器111所處理的數(shù)據(jù)存儲(chǔ)在外存儲(chǔ)體110中,對(duì)數(shù)據(jù)的處理涉及到使用緩沖器BF(k),緩沖描述符BD(k),描述符指針DP(k),指針字段PT(k),臨時(shí)指針TMP(k),狀態(tài)和控制字段SCW(k),長度字段LW(k),F(xiàn)/S位FSB(k)確定第一和第二處理器90和100中哪一個(gè)能夠處理和/或訪問緩沖器BF(k)。這些BF(k),BD(k),DP(k),PT(k),TMP(k),SCW(k),LW(k)和FSB(k)與舊式通信處理器101的緩沖器BF(k),緩沖描述符BD(k),描述符指針DP(k),指針字段PT(k),狀態(tài)和控制字段SCW(k),調(diào)換字段WB(k),長度字段LW(k),F(xiàn)/S位FSB(k)相類似的。第一處理器90會(huì)在它完成發(fā)送所有存儲(chǔ)在BF(k)中的數(shù)據(jù),或完成接收一個(gè)數(shù)據(jù)幀,或所接收的數(shù)據(jù)填充BF(k)時(shí)設(shè)置FSB(k)。第二處理器100會(huì)在它用要發(fā)送給一個(gè)通信信道的數(shù)據(jù)填充BF(k),或在它完成讀取存儲(chǔ)在BF(k)中的數(shù)據(jù)時(shí),復(fù)位FSB(k),其中該數(shù)據(jù)是從一個(gè)通信信道中接收到的。PT(k)指向BF(k)的起點(diǎn)。
在存儲(chǔ)/發(fā)送了數(shù)據(jù)字之后,對(duì)TMP(k)進(jìn)行更新。因而,在第一處理器90執(zhí)行了任務(wù)轉(zhuǎn)換/開始執(zhí)行一項(xiàng)任務(wù)時(shí),把更新的TMP(k)發(fā)送到/從第一存儲(chǔ)體70(發(fā)送)。
第一處理器90在它完成對(duì)整個(gè)當(dāng)前緩沖器BF(k)處理之前,通常不提取新的緩沖描述符BD(k+1),也不能處理存儲(chǔ)在與此緩沖描述符相關(guān)的緩沖器BF(k+1)中存儲(chǔ)的數(shù)據(jù)。
如參照?qǐng)D10所詳細(xì)進(jìn)行解釋的那樣,對(duì)數(shù)據(jù)的發(fā)送和接收涉及到提取請(qǐng)求信道參數(shù),通信信道參數(shù),TMP(k),DP(k),BD(k)以及存儲(chǔ)在BF(k)中的數(shù)據(jù)。如果在上述的任意提取過程中需要執(zhí)行DMA操作,并且如果DMA請(qǐng)求需要訪問第一總線113或第二DMA160,或者DMA請(qǐng)求需要訪問第二總線114,第一處理器90便啟動(dòng)第一DMA 60。
圖4為根據(jù)本發(fā)明的優(yōu)選實(shí)施例的第一DMA 60的控制部分的示意圖。第一DMA 60的控制部分類似于第二DMA 160的控制部分。方便起見,第一DMA 60的控制部分包括一個(gè)DMA請(qǐng)求隊(duì)列(即隊(duì)列)62,一個(gè)使能單元64。如以后將進(jìn)一步詳細(xì)解釋的那樣,隊(duì)列62可以存儲(chǔ)多個(gè)DMA請(qǐng)求和使能單元64。使能單元64屏蔽傳送請(qǐng)求或接收從請(qǐng)求信道發(fā)送到調(diào)度器50的請(qǐng)求。最好,第一DMA 60的控制部分包括一個(gè)隊(duì)列62,一個(gè)使能單元64,一個(gè)請(qǐng)求旁路寄存器(即旁路寄存器)68,一個(gè)使能單元64,一個(gè)輸入多路復(fù)用器(即DI_MUX)66,一個(gè)輸出多路復(fù)用器(即DO_MUX)69。DI_MUX 66具有輸入662和668,輸出666。隊(duì)列62具有輸入626,輸出628和多個(gè)統(tǒng)一表示為624的N個(gè)輸出。旁路寄存器68具有輸入682,輸出684和686。DO_MUX69包括輸入692,694,696,輸出698。使能單元64具有多個(gè)統(tǒng)一表示為646的N個(gè)輸入,輸入642和2M位輸出676,676與第一DMA 60的輸出67相連。DI_MUX 66的輸入662和668與第一DMA 60的輸入65相連。
隊(duì)列62具有N個(gè)存儲(chǔ)字621-628。方便起見,每個(gè)存儲(chǔ)字621-628具有兩個(gè)部分6211-6281和6212-6282。第一部分6211-6281用于存儲(chǔ)z555,它表示哪一個(gè)請(qǐng)求信道與直接存取存儲(chǔ)請(qǐng)求(即DMA請(qǐng)求)相關(guān)。第二部分6212-6282用于存儲(chǔ)DMA請(qǐng)求。DMA 60把一個(gè)信息塊從存儲(chǔ)體的第一個(gè)位置移動(dòng)和/或拷貝到存儲(chǔ)體的第二個(gè)位置。方便起見,DMA請(qǐng)求包括由第一DMA 60所傳送的信息塊的信源,目的地以及大小。
旁路寄存器68具有兩個(gè)部分。第一個(gè)部分681用于存儲(chǔ)z555,第二個(gè)部分682用于存儲(chǔ)DMA請(qǐng)求。
DI_MUX66通過輸入664接收一個(gè)DMA請(qǐng)求和z555。DI_MUX66通過輸入668接收一個(gè)BYQ信號(hào)668,它確定是否把DMA請(qǐng)求和z555寫入旁路寄存器68或隊(duì)列62。
如果旁路寄存器68為非空,DO_MUX 69通過輸入692接收到一個(gè)控制信號(hào),使其選擇輸入696并輸出存儲(chǔ)在旁路寄存器68中的DMA請(qǐng)求。否則,DO_MUX 69便選擇輸入694,并輸出存儲(chǔ)在第二部分6212中的DMA請(qǐng)求。
發(fā)送請(qǐng)求初始化任務(wù)。接收請(qǐng)求也初始化任務(wù)。
第一部分6211-6281通過隊(duì)列62的輸出624與使能單元64的輸入646相連。當(dāng)?shù)谝惶幚砥?0向第一DMA 60發(fā)送與RC(z)相關(guān)的DMA請(qǐng)求時(shí),RC(z)的發(fā)送或接收請(qǐng)求被禁止。在執(zhí)行了所有與RC(z)相關(guān)的DMA請(qǐng)求之后,它的接收或發(fā)送請(qǐng)求便被使能。通常在與請(qǐng)求相關(guān)的任務(wù)結(jié)束時(shí),接收或發(fā)送請(qǐng)求被禁止。
使能單元64把與存儲(chǔ)在DMA隊(duì)列62中的DMA請(qǐng)求相關(guān)的請(qǐng)求信道的發(fā)送或接收請(qǐng)求進(jìn)行屏蔽。使能單元64可以通過輸出648向調(diào)度器50發(fā)送一個(gè)具有相應(yīng)z555的使能信號(hào)。方便起見,輸出648有2M位,分別用于2M個(gè)請(qǐng)求信道,使能單元64向與RC(z)相關(guān)的其輸出648的第z位發(fā)送一個(gè)1位信號(hào)。
圖5為根據(jù)本發(fā)明的優(yōu)選實(shí)施例的第一DMA 60的緩沖部分的示意圖。第一DMA 60的緩沖部分類似于第二DMA 160的緩沖部分。緩沖部分包括第一發(fā)送(即tx)緩沖器612,第二發(fā)送(即tx)緩沖器614,第一接收(即rx)緩沖器616,第二接收(即rx)緩沖器618,發(fā)送控制單元610,和接收控制單元615。
第一tx緩沖器612具有輸入6126,6124和輸出6122。第二tx緩沖器614具有輸入6146,6144和輸出6142。發(fā)送控制單元610具有輸入6108和輸出6104,6102。接收控制單元615具有輸入6158和輸出6154,6105。第一rx緩沖器616具有輸入6162,6164和輸出6166。第二rx緩沖器618具有輸入6182,6184和輸出6186。
第一tx緩沖器612的輸出6122和第一rx緩沖器616的輸入6162與第一DMA 60的輸入/輸出64和62相連。第二tx緩沖器614的輸入6146和第二rx緩沖器618的輸出6186與第一總線113相連。第一tx緩沖器612的輸入6126與第二tx緩沖器614的輸出6142相連。第一rx緩沖器616的輸出6166與第二rx緩沖器618的輸入6182相連。DO_MUX 69的輸出898分別與接收控制單元615的輸入6158和發(fā)送控制單元610的輸入6108相連。發(fā)送控制單元610的輸出6102與第一tx緩沖器612的輸入6124相連。接收控制單元615的輸出6152與第一rx緩沖器616的輸入6164相連。發(fā)送控制單元610的輸出6104與第二tx緩沖器610的輸入6144相連。接收控制單元615的輸出6154與第二rx緩沖器618的輸入6184相連。
發(fā)送控制單元610具有一個(gè)能存儲(chǔ)從DO_MUX 69發(fā)送的DMA指令的寄存器,DO_MUX 69涉及到把數(shù)據(jù)從第一存儲(chǔ)體70的輸入/輸出78,第一處理器90的輸入/輸出96通過輸入/輸出64和96發(fā)送到第一總線113。發(fā)送控制單元610啟動(dòng)第一tx緩沖器612把數(shù)據(jù)發(fā)送到輸入/輸出64或96,啟動(dòng)第二tx緩沖器614把數(shù)據(jù)從第一總線113讀取到第二tx緩沖器614中。發(fā)送控制單元向第一和第二tx緩沖器612和614發(fā)送控制信號(hào),以把數(shù)據(jù)從第二tx緩沖器614發(fā)送到第一tx緩沖器612。發(fā)送控制單元具有一個(gè)用于存儲(chǔ)z555的字段6102。最好,第一和第二tx緩沖器可以獨(dú)立操作。
接收控制單元615具有一個(gè)能存儲(chǔ)從DO_MUX 69發(fā)送的DMA指令的寄存器,DO_MUX 69涉及到把數(shù)據(jù)從第一總線113通過輸入/輸出64和96發(fā)送到第一存儲(chǔ)體70的輸入/輸出78或第一處理器90的輸入/輸出96。接收控制單元615啟動(dòng)第一rx緩沖器616,從輸入/輸出64或96發(fā)送數(shù)據(jù),啟動(dòng)第二rx緩沖器618,把數(shù)據(jù)從第二rx緩沖器618發(fā)送到第一總線113。接收控制單元615向第一和第二rx緩沖器616和618發(fā)送控制信號(hào),以把數(shù)據(jù)從第一rx緩沖器616發(fā)送到第二rx緩沖器618。接收控制單元615具有一個(gè)用于存儲(chǔ)z555的字段6502。最好,第一和第二rx緩沖器616和618可以獨(dú)立操作。
方便起見,使能單元64不會(huì)檢查隊(duì)列62的第一部分6211-6281以及旁路寄存器682的681。把接收和發(fā)送單元615,610的字段6502和6102的內(nèi)容與第一部分6211-6281和628的內(nèi)容進(jìn)行比較,如果存在不匹配,字段6502和6102的內(nèi)容便被發(fā)送到使能單元64。
圖6為根據(jù)本發(fā)明的優(yōu)選實(shí)施例的使能單元64,調(diào)度器50和屏蔽邏輯電路80的示意圖。屏蔽邏輯電路包括多個(gè)“與”邏輯門。為了便于解釋,本說明涉及多個(gè)“與”邏輯門(即門)中的四個(gè)3-輸入端邏輯“與”門81-84。第一門81具有輸入812,814,818和輸出816。第二門82具有輸入822,824,828和輸出826。第三門83具有輸入832,834,838和輸出836。第四門84具有輸入842,844,848和輸出846。
使能單元64的輸出671與第一門81的輸入812相連。使能單元64的輸出672與第二門82的輸入822相連。使能單元64的輸出673與第三門83的輸入832相連。使能單元64的輸出674與第四門84的輸入842相連。使能單元164的輸出1671與第一門81的輸入818相連。使能單元64的輸出1672與第二門82的輸入828相連。使能單元64的輸出1673與第三門83的輸入838相連。使能單元64的輸出1674與第四門84的輸入848相連。第四門84的輸出846與調(diào)度器50的輸入564相連。第三門83的輸出836與調(diào)度器50的輸入563相連。第二門82的輸出826與調(diào)度器50的輸入562相連。第一門81的輸出816與調(diào)度器50的輸入561相連。第四門84的輸入844與線路14012相連,以從請(qǐng)求信道接收接收或發(fā)送請(qǐng)求。第三門83的輸入834與線路14022相連,以從另一個(gè)請(qǐng)求信道接收接收或發(fā)送請(qǐng)求。第二門82的輸入824與線路14032相連,以從一個(gè)請(qǐng)求信道接收接收或發(fā)送請(qǐng)求。第一門81的輸入814與線路14042相連,以從一個(gè)請(qǐng)求信道接收接收或發(fā)送請(qǐng)求。
當(dāng)?shù)谝籇MA 60或第二DMA 160接收到一個(gè)與接收信道相關(guān)的DMA請(qǐng)求時(shí),它就向從該請(qǐng)求信道接收接收或發(fā)送請(qǐng)求的邏輯門發(fā)送一個(gè)禁止信號(hào)(低電平信號(hào)),使能信號(hào)便屏蔽掉從該信道來的請(qǐng)求。當(dāng)?shù)谝籇MA 60或第二DMA 160沒有接收到與請(qǐng)求信道相關(guān)的請(qǐng)求時(shí),它們就會(huì)向與該請(qǐng)求信道相連的邏輯門發(fā)送一個(gè)使能信號(hào)。如果第一DMA 60和第二DMA 160都發(fā)送使能信號(hào),請(qǐng)求信道的接收或發(fā)送請(qǐng)求就可以抵達(dá)調(diào)度器50。
例如,第一門81與第一請(qǐng)求信道RZ(1)相連。第一請(qǐng)求信道通過線路14042發(fā)送一個(gè)發(fā)送請(qǐng)求(高電平信號(hào))。如果第一DMA 60或第二DMA 160都沒有接收到與第一請(qǐng)求信道RZ(1)相關(guān)的請(qǐng)求,第一DMA 60和第二DMA 160就會(huì)向第一邏輯門81的輸入812和818發(fā)送高電平信號(hào)。調(diào)度器50通過輸入561從第一請(qǐng)求信道RZ(1)接收到發(fā)送請(qǐng)求,然后使第一處理器90開始執(zhí)行第一項(xiàng)任務(wù)T(1)以處理發(fā)送請(qǐng)求。當(dāng)?shù)谝豁?xiàng)任務(wù)T(1)需要一個(gè)DMA請(qǐng)求時(shí),第一處理器90便向第一DMA 60或第二DMA 160發(fā)送一個(gè)DMA請(qǐng)求。為了便于解釋,這里假定第一處理器90向第一DMA 60發(fā)送了DMA請(qǐng)求。直到第一DMA 60執(zhí)行完DMA請(qǐng)求,使能單元64向第一門81的輸入812發(fā)送一個(gè)低電平信號(hào),使得第一門的輸出信號(hào)很底,這樣便屏蔽了第一請(qǐng)求信道RZ(1)的發(fā)送請(qǐng)求。
禁止信號(hào)進(jìn)一步還來自第一處理器90。當(dāng)?shù)谝惶幚砥?0發(fā)送了一個(gè)DMA信號(hào)時(shí),禁止信號(hào)也被發(fā)送。第一處理器90和使能單元64與一個(gè)觸發(fā)器相連,同時(shí)第一處理器與觸發(fā)器的復(fù)位輸入端相連,使能單元64與觸發(fā)器的置位輸入端相連。如上所述,觸發(fā)器的輸出端與“與”邏輯門的輸入端相連。第一處理器還與第二DMA 160的使能單元164相連。
圖7為根據(jù)本發(fā)明的優(yōu)選實(shí)施例的調(diào)度器50的示意圖。調(diào)度器50包括;請(qǐng)求選擇器56,棧指針輸入多路復(fù)用器(即sp input mux)52,棧指針輸出多路復(fù)用器(即sp output mux)58和2M的棧指針寄存器1sp_reg-2Msp_reg541-548,統(tǒng)一表示為540。
調(diào)度器50存儲(chǔ)了一組多達(dá)2M個(gè)棧指針。一個(gè)棧指針是一個(gè)指令I(lǐng)(z,r)的地址,指令I(lǐng)(z,r)是任務(wù)T(z)的一部分,z和r為整數(shù),z的值為1到2M。最好,任務(wù)T(z)專屬于從請(qǐng)求信道RC(z)來的單個(gè)接收或發(fā)送請(qǐng)求。任務(wù)T(z)可以存儲(chǔ)在指令存儲(chǔ)體130、第一存儲(chǔ)體70或外部存儲(chǔ)體110中。任務(wù)T(z)或其一部分還可以存儲(chǔ)在其他的存儲(chǔ)體內(nèi)。
例如,如果所選擇的發(fā)送或接收請(qǐng)求與RC(c)相關(guān),它便使第一處理器90從Dsp_reg提取一個(gè)棧指針。Csp_reg的內(nèi)容是指令I(lǐng)(c,r)的地址。第一處理器90便執(zhí)行任務(wù)T(c)的一部分。
通常,如參照?qǐng)D13將進(jìn)一步進(jìn)行詳細(xì)解釋的那樣,第一處理器90執(zhí)行第z項(xiàng)任務(wù)T(z)的一些指令(I(z,r)-I(z,r+d),d為整數(shù)),直到需要從外部單元提取信息為止。第一處理器90向第一DMA60或第二DMA 160發(fā)送一個(gè)與RC(z)相關(guān)的DMA請(qǐng)求,并向Zsp_reg發(fā)送一個(gè)更新的棧指針(指向指令I(lǐng)(z,r+d+1),該指令緊隨指令I(lǐng)(z,r+d)。方便起見,如果任務(wù)T(z)完成,I(z,1)便被發(fā)送給Zsp_reg),并等待從調(diào)度器50接收一個(gè)新選擇的棧指針。當(dāng)調(diào)度器向第一處理器90發(fā)送了一個(gè)新選擇的與第x項(xiàng)任務(wù)T(x)相關(guān)的棧指針,第一處理器90便開始執(zhí)行任務(wù)T(x)中的指令。
把“任務(wù)轉(zhuǎn)換”定義為由第一處理器90所執(zhí)行的過程,它涉及到終止一項(xiàng)任務(wù)的執(zhí)行,等待接收所選擇的任務(wù),和開始執(zhí)行所選擇任務(wù)中的指令。通常所選擇的任務(wù)不同于所終止的任務(wù),但也不是必須如此。
請(qǐng)求選擇器56具有2M個(gè)輸入561-568,一個(gè)控制輸入569和輸出560。Sp input mux 52具有輸入520和529,第一組2M個(gè)輸出511-518和第二組2M個(gè)輸出521-528。棧指針寄存器(即sp寄存器)541-548具有第一組輸入5411-5481,第二組輸入5412-5482和輸出5413-5483。Sp output mux 58具有2M個(gè)輸入581-588,輸入580和輸出589。請(qǐng)求選擇器56的輸出560與sp output mux 58的輸入580相連,用于選擇把2M個(gè)輸入581-588中的哪一個(gè)與輸出589相連。請(qǐng)求選擇器56的輸入561-568與2M個(gè)統(tǒng)一表示為150的請(qǐng)求信道RC(1)-RC(2M)相連。如參照?qǐng)D4進(jìn)一步進(jìn)行詳細(xì)解釋的那樣,輸出648向接收信道發(fā)出使能信號(hào)。方便起見,把2M個(gè)“與”邏輯門(未顯示),其中每個(gè)邏輯門具有兩個(gè)輸入和一個(gè)輸出,與使能單元64的2M位輸出648相連,連接在一邊的2M個(gè)接收和發(fā)送信道上,和另一邊的2M個(gè)輸入561-568上。
發(fā)送請(qǐng)求通常在一個(gè)請(qǐng)求信道完成向一個(gè)通信信道發(fā)送數(shù)據(jù)時(shí)發(fā)送,請(qǐng)求信道可以接收一個(gè)新數(shù)據(jù)。接收請(qǐng)求通常在一個(gè)請(qǐng)求信道接收數(shù)據(jù)時(shí)發(fā)送。
請(qǐng)求選擇器56檢查它是否從一個(gè)或多個(gè)請(qǐng)求信道接收到發(fā)送或接收請(qǐng)求。如果答案為“是”,請(qǐng)求選擇器56便選擇最高優(yōu)先級(jí)別的請(qǐng)求。為了便于解釋,假定具有最高優(yōu)先級(jí)別的請(qǐng)求來自第z個(gè)請(qǐng)求信道RC(z)。請(qǐng)求選擇器56向sp input mux 52發(fā)送一個(gè)控制信號(hào),使得存儲(chǔ)在Gsp_reg中的第z個(gè)棧指針被發(fā)送到第一處理器90。第一處理器90從指令存儲(chǔ)體130中提取由第z個(gè)棧指針?biāo)赶虻闹噶領(lǐng)(z,r),并開始執(zhí)行它以及后續(xù)的任務(wù)T(z)的指令。
請(qǐng)求的優(yōu)先級(jí)可以是固定的,也是可以更改的。例如,通過第一輸入561輸入的請(qǐng)求可以具有最低的優(yōu)先級(jí),而通過第M個(gè)輸入568輸入的請(qǐng)求則可以具有最高的優(yōu)先級(jí)。
圖8為根據(jù)本發(fā)明的優(yōu)選實(shí)施例的塊傳送機(jī)(即BTM)40的示意圖。BTM 40包括BTM數(shù)據(jù)寄存器(即bdata寄存器)41,BTM控制單元(即bcontrol單元)46,數(shù)據(jù)控制器44和CRC機(jī)48。BTM40與CRC REG 42,第一存儲(chǔ)體70以及外設(shè)140相連。CRC REG 42是第一處理器90的一個(gè)寄存器。
方便起見,BTM 40處理從(到)外設(shè)140到(從)第一存儲(chǔ)體70的數(shù)據(jù)傳送。通常,第一處理器90向BTM 40發(fā)送一個(gè)傳送請(qǐng)求,表明要傳送的數(shù)據(jù)的源點(diǎn)和目的地以及數(shù)據(jù)的長度。例如,如果BTM40通過一條32位總線與外設(shè)和第一存儲(chǔ)體70相連,就需要傳送8×32=256位,然后第一處理器70將發(fā)送一個(gè)長度字段為8的傳送指令,表明8個(gè)32位傳送將被執(zhí)行。通常,ATM通信協(xié)議需要傳送更大的數(shù)據(jù)塊,例如48×32=1536位。方便起見,BTM 40也可以單獨(dú)包括一個(gè)DMA控制器。最好,DMA 40既可以處理數(shù)據(jù)的發(fā)送還可以處理它發(fā)送的數(shù)據(jù)。每個(gè)外設(shè)1401-1408都有一個(gè)輸入/輸出1421-1428。
Bdata緩沖器41具有輸入414,輸入/輸出412和416。CRC REG 41具有輸入424和輸入/輸出426。BRAM 43包括輸入/輸出432和輸入434。數(shù)據(jù)控制器44具有輸入442,444和輸入/輸出446。Bcontrol單元46包括輸入462和輸出464。CRC機(jī)48具有輸入484,482和輸入/輸出486。
外設(shè)總線112通過BTM 40的輸入/輸出43與數(shù)據(jù)控制器44的輸入/輸出442和CRC機(jī)48的輸入482相連。Bcontrol單元46的輸出464通過BTM 40的輸入/輸出46與CRC REG 42的輸入424,CRC機(jī)48的輸入484,數(shù)據(jù)控制器44的輸入444,BRAM 43的輸入344,bdata緩沖器41的輸入414相連。Bcontrol單元46的輸入462通過BTM的輸入/輸出47與第一處理器90的輸入/輸出97相連。CRC REG 42的輸入/輸出426通過BTM 40的輸入/輸出47與CRC機(jī)48的輸入/輸出486相連。數(shù)據(jù)控制器44的輸入/輸出446與bdata緩沖器41的輸入/輸出412相連。bdata緩沖器41的輸入/輸出416通過輸入/輸出45與第一存儲(chǔ)體70的輸入/輸出72相連。
Bcontrol單元46由從第一處理器90的輸出97來的控制信號(hào)和/或操作數(shù)啟動(dòng)。Bcontrol單元46通過輸出464向CRC REG 42,CRC機(jī)48,數(shù)據(jù)控制器44,和bdata緩沖器41發(fā)送控制信號(hào)從而控制BTM40的操作。Bcontrol單元46發(fā)送控制信號(hào),使得數(shù)據(jù)從(到)外設(shè)總線112流向(從)第一存儲(chǔ)體70。Bcontrol單元會(huì)讓CRC機(jī)對(duì)數(shù)據(jù)做CRC檢查,并把結(jié)果存儲(chǔ)在CRC REG 42中。方便起見,CRC機(jī)48會(huì)在單個(gè)時(shí)鐘周期內(nèi)做CRC檢查。最好,CRC機(jī)會(huì)在單個(gè)時(shí)鐘周期內(nèi)對(duì)16位的數(shù)據(jù)字做CRC檢查。數(shù)據(jù)控制器44可以通過輸入/輸出442讀取數(shù)據(jù)字,交換數(shù)據(jù)字,或產(chǎn)生移位數(shù)據(jù)字,并通過輸入/輸出446向bdata緩沖器41的輸入/輸出412發(fā)送新的數(shù)據(jù)字。bdata緩沖器41存儲(chǔ)新的數(shù)據(jù)字并把它發(fā)送給bram 43。bdata緩沖器41還可以從bram 43接收數(shù)據(jù)字并把它發(fā)送給數(shù)據(jù)控制器44。數(shù)據(jù)控制器44可以交換數(shù)據(jù)字,或產(chǎn)生移位數(shù)據(jù)字并通過輸入/輸出442向外設(shè)總線112發(fā)送新的數(shù)據(jù)字。
圖9為根據(jù)本發(fā)明的優(yōu)選實(shí)施例的第一存儲(chǔ)體70的示意圖。存儲(chǔ)體70包括Q個(gè)部分(即存儲(chǔ)體)1BANK-QBANK 701-708。1BANK-QBANK 701-708中的每個(gè)存儲(chǔ)體都與第一處理器90,第一DMA 60,第二DMA 160和BTM 40相連。為了便于解釋,只顯示出兩個(gè)存儲(chǔ)體1BANK 701和QBANK 708,但是任意數(shù)目Q個(gè)存儲(chǔ)體都可以實(shí)現(xiàn)。為了便于解釋未顯示第二DMA 160。
第一處理器90的輸入/輸出98通過第一存儲(chǔ)體70的輸入/輸出78與1BANK 701的輸入7148,QBANK 708的輸入7848,1BANK 701的輸入/輸出7168和QBANK 708的輸入/輸出7868相連。第一DMA 60的輸入/輸出64通過第一存儲(chǔ)體70的輸入/輸出78與1BANK 701的輸入7148,QBANK 708的輸入7848,1BANK 701的輸入/輸出7166,QBANK 708的輸入/輸出7866相連。BTM 40的輸入/輸出45通過第一存儲(chǔ)體70的輸入/輸出72與1BANK 701的輸入7144,QBANK 708的輸入7844,1BANK 701的輸入/輸出7164,QBANK 708的輸入/輸出7864相連。如根據(jù)圖8所示做進(jìn)一步解釋的那樣,如果一塊存儲(chǔ)體(例如1BANK 701)同時(shí)被第一處理器90,第一DMA 60和BTM 40中的多個(gè)訪問,1BANK 701便確定首先服務(wù)哪個(gè)元件以及在服務(wù)了第一個(gè)元件之后再服務(wù)哪一個(gè)元件。
圖10為根據(jù)本發(fā)明的優(yōu)選實(shí)施例的第一存儲(chǔ)體70內(nèi)的Q個(gè)存儲(chǔ)體中的存儲(chǔ)體1BANK 701的示意圖。1BANK 701包括存儲(chǔ)器陣列718,數(shù)據(jù)多路復(fù)用器(即DATA MUX)716,地址多路復(fù)用器(即ADDRESS MUX)714和存儲(chǔ)體選擇器712。DATA MUX 716具有輸入7163和輸入/輸出7164,7166,7168,7169。ADDRESS MUX 714具有輸入7144,7146,7148,7149和輸出7142。存儲(chǔ)體選擇器712具有輸入7124,7126,7128和輸出7123,7125。存儲(chǔ)器陣列718具有輸入7182和輸入/輸出7184。DATA MUX 716的輸入7163與存儲(chǔ)體選擇器712的輸出7123相連。ADDRESS MUX 714的輸入7149與存儲(chǔ)體選擇器712的輸出7125相連。ADDRESS MUX 714的輸出7142與存儲(chǔ)器陣列718的輸入7182相連。DATA MUX 716的輸入/輸出7169與存儲(chǔ)器陣列718的輸入/輸出7184相連。
BTM 40,第一DMA 60,第二DMA 160和第一處理器90可以向ADDRESS MUX 714的輸入7144,7146,7148以及存儲(chǔ)體選擇器712的輸入7124,7126,7128發(fā)送相應(yīng)的地址字。一些地址字位被發(fā)送到存儲(chǔ)體選擇器712,其余的地址字位被發(fā)送到ADDRESS MUX714。發(fā)送到存儲(chǔ)體選擇器712去的地址字位被用于從1BANK-QBANK701-708中選擇一個(gè)存儲(chǔ)體。
如果第一處理器90,第一DMA 60和BTM 40中只有一個(gè)元件發(fā)送了地址字,那么此元件便被選中,存儲(chǔ)體選擇器712從輸出7125和7163中發(fā)送一個(gè)選擇信號(hào)給ADDRESS MUX 714的輸入7149和DATA MUX 716的輸入7163。該選擇信號(hào)會(huì)使得ADDRESS MUX 714把從所選擇的元件發(fā)送來的地址字的剩余位發(fā)送給存儲(chǔ)器陣列718的輸入7182。選擇信號(hào)會(huì)使得DATA MUX 716把存儲(chǔ)器陣列718的輸入/輸出7184與所選擇元件的輸入/輸出相連。例如,當(dāng)BTM 40向1BANK寫入數(shù)據(jù)字時(shí),它向1BANK 701發(fā)送一個(gè)地址字,向DATAMUX 716的輸入/輸出7164發(fā)送一個(gè)數(shù)據(jù)字。存儲(chǔ)體選擇器712接收到地址字的一些位,確定BTM 40向(從)1BANK 701寫入(讀取)一個(gè)數(shù)據(jù)字。存儲(chǔ)體選擇器712向DATA MUX 716發(fā)送選擇信號(hào),DATA MUX 716把輸入/輸出7164(最終是BTM 40的輸入/輸出42)與DATA MUX 716的輸出7169,進(jìn)而與存儲(chǔ)器陣列718的輸入/輸出7184連接起來。
如果BTM 40,第一DMA 60和第一處理器90中不只一個(gè)元件向1BANK發(fā)送了數(shù)據(jù)地址,存儲(chǔ)體選擇器712便選擇從具有最高優(yōu)先級(jí)的元件來的請(qǐng)求,并向DATA MUX 716,進(jìn)而向ADDRESS MUX 714發(fā)送選擇信號(hào)。例如,如果BTM 40和第一處理器90同時(shí)向1BANK發(fā)送了地址字,但第一處理器比BTM 40具有更高的優(yōu)先級(jí),存儲(chǔ)體選擇器便發(fā)送一個(gè)選擇信號(hào),使得ADDRESS MUX 714的輸入7148與存儲(chǔ)器陣列718的輸入/輸出7184相連。
可以把存儲(chǔ)體1BANK-QBANK中的一些進(jìn)行交織,以提供更高的順序存取速率。這種交織規(guī)定第一存儲(chǔ)字要在第一存儲(chǔ)體中找到,第二存儲(chǔ)字要在第二存儲(chǔ)體中找到。這種交織是通過把地址字中最低有效位與最高有效位交換而完成的。例如,如果第一存儲(chǔ)體包括16個(gè)存儲(chǔ)體,每一個(gè)有2K個(gè)字,那么地址字必須要有15位長,四個(gè)位用于從16個(gè)存儲(chǔ)體中選擇一個(gè),其余的11個(gè)位用于定義在一個(gè)2K的字存儲(chǔ)體中選擇哪個(gè)數(shù)據(jù)字。交織可以通過把一個(gè)15位的地址字中的4個(gè)最低有效位發(fā)送給每個(gè)存儲(chǔ)體選擇器712的地址總線的4個(gè)高有效位,而把剩余的11個(gè)位送到ADDRESS MUX 714。
圖11為一張流程圖,描述了根據(jù)本發(fā)明的優(yōu)選實(shí)施例用于執(zhí)行任務(wù)和任務(wù)轉(zhuǎn)換的方法900的優(yōu)選實(shí)施例。
方法900從步驟910開始,此處調(diào)度器50檢查它是否從任何一個(gè)請(qǐng)求信道接收到一個(gè)或多個(gè)接收或發(fā)送請(qǐng)求。步驟910之后為步驟920,如路徑913所示。
在步驟920,調(diào)度器50選擇具有最高優(yōu)先級(jí)的接收/發(fā)送請(qǐng)求。為了便于解釋,假定請(qǐng)求來自RC(z)。調(diào)度器50發(fā)送一個(gè)與所選擇的接收/發(fā)送請(qǐng)求相關(guān)的棧指針,使得第一處理器90執(zhí)行與RC(z)相關(guān)的任務(wù)T(z)。執(zhí)行任務(wù)T(z)通常涉及到提取數(shù)據(jù),狀態(tài)字,請(qǐng)求信道參數(shù),通信信道參數(shù)和指針(即信息)。在步驟920中,第一處理器90執(zhí)行任務(wù)T(z),直到任務(wù)T(z)結(jié)束或直到需要從外存儲(chǔ)體110或外部單元提取信息為止。
如路徑934所示,在步驟962,如果需要提取存儲(chǔ)在外存儲(chǔ)體110中的信息,第一處理器向第一DMA 60發(fā)送一個(gè)DMA請(qǐng)求,把更新的棧指針SP(z)存儲(chǔ)在調(diào)度器50的第z個(gè)棧指針寄存器(即Zsp_reg)中,并向調(diào)度器50發(fā)送一個(gè)禁止信號(hào),用于屏蔽從RC(z)來的任意發(fā)送或接收請(qǐng)求。如路徑962所示,步驟960之后為步驟910。
如路徑964所示,在發(fā)送出一個(gè)DMA請(qǐng)求之后,在步驟970,第一DMA 60或第二DMA 160執(zhí)行請(qǐng)求并提取信息。在提取了信息之后,第一DMA 60或第二DMA 160向調(diào)度器50發(fā)送一個(gè)使能信號(hào),不屏蔽從T(z)來的任意接收或發(fā)送請(qǐng)求。在根據(jù)任務(wù)T(x)執(zhí)行了步驟910,920,930,940,950和960時(shí),就可以執(zhí)行步驟970了。
如虛線路徑972所示,步驟972之后為步驟910,這意味著在提取了與任務(wù)T(z)相關(guān)的信息之后,可以從步驟910開始執(zhí)行任務(wù)T(z)。如根據(jù)圖4所詳細(xì)進(jìn)行解釋的那樣,T(z)包括一組指令,而第一處理器可以執(zhí)行這些指令中的一些I(z,r)-I(z,r+d),然后執(zhí)行任務(wù)轉(zhuǎn)換。當(dāng)?shù)谝惶幚砥?0響應(yīng)來自RC(z)的請(qǐng)求時(shí),它將提取下面的指令,從指令I(lǐng)(z,r+d)之后的指令I(lǐng)(z,r+d+1)開始。
如路徑924,952和步驟950所示,如果任務(wù)T(z)結(jié)束,第一處理器90就會(huì)發(fā)送一個(gè)更新的棧指針給Zsp_reg,方法900就會(huì)開始步驟910以檢查調(diào)度器50是否接收到了發(fā)送/接收請(qǐng)求。
在步驟960的開始,為了提取與任務(wù)T(z)相關(guān)的信息,第一處理器90向第一DMA 60或第二DMA 160發(fā)送一個(gè)DMA請(qǐng)求,并向調(diào)度器50發(fā)送一個(gè)禁止信號(hào),該信號(hào)用于屏蔽任意從CR(z)來的發(fā)送或接收信號(hào)。第一處理器90向Zsp_reg發(fā)送它當(dāng)前的棧指針。禁止信號(hào)還可以由第一DMA 60或第二DMA 160發(fā)送。
圖12為一張流程圖,描述了根據(jù)本發(fā)明的優(yōu)選實(shí)施例用于執(zhí)行由接收或發(fā)送的請(qǐng)求所初始化的任務(wù)的方法1000的優(yōu)選實(shí)施例。
步驟1014,1018,1022,1030涉及到提取信息。如果信息存儲(chǔ)在外存儲(chǔ)體110或任意其他的外部單元,第一處理器90便會(huì)執(zhí)行任務(wù)轉(zhuǎn)換,如根據(jù)圖9所解釋的那樣。步驟1046后可以跟隨一個(gè)任務(wù)轉(zhuǎn)換。例如,如果一個(gè)請(qǐng)求外設(shè)沒有存儲(chǔ)整個(gè)幀而是該幀的一部分,并且第一處理器90已經(jīng)處理完那部分,就需要提取該幀的剩余部分,這樣第一處理器90就會(huì)執(zhí)行任務(wù)轉(zhuǎn)換,并且當(dāng)該幀的另一個(gè)部分存儲(chǔ)在外設(shè)中時(shí)可返回執(zhí)行該任務(wù)。為了便于解釋,這些任務(wù)轉(zhuǎn)換沒有顯示在圖10中,而方法1000的執(zhí)行被描述為沒有進(jìn)行任務(wù)轉(zhuǎn)換。
在步驟1010中,第一處理器90通過提取T(z)的第一條指令I(lǐng)(z,1)而開始執(zhí)行來自所選擇的任務(wù)T(z)的指令。
如路徑1012所示,步驟1010之后為步驟1014。在步驟1014中,第一處理器90提取并讀取所選擇的信道RC(z)的請(qǐng)求信道參數(shù)。
舉例來說,但此例并不限制本發(fā)明的范圍,信道參數(shù)可以包括PD(k)。在接收根據(jù)ATM通信協(xié)議發(fā)送的數(shù)據(jù)流時(shí),第一處理器90可以讀取單元的頭部。頭部包括地址,該地址與虛擬連接(即CV)相關(guān)。該地址定義了在步驟1018中要讀取信道參數(shù)的信道。在根據(jù)快以太網(wǎng)通信協(xié)議接收數(shù)據(jù)流時(shí),第一處理器90檢查是否存在沖突(如果沖突出現(xiàn)在一個(gè)預(yù)定的時(shí)間窗口中),如果答案為“是”,通信控制器111就會(huì)忽略所接收到的信息,或當(dāng)?shù)谝惶幚砥鲌?zhí)行涉及到向RC(z)發(fā)送數(shù)據(jù)的任務(wù)時(shí)重新發(fā)送數(shù)據(jù)流。如果答案為“否”,第一處理器90便向第二處理器100發(fā)送一個(gè)出錯(cuò)信號(hào)。
如路徑1016所示,步驟1014之后為步驟1018。在步驟1018中,第一處理器提取通信信道參數(shù)。第一處理器90檢查通信控制器111要接收(或發(fā)送)的數(shù)據(jù)字是否為一個(gè)通信幀中的第一個(gè)數(shù)據(jù)字。如果答案為是,步驟1018之后為步驟1022,否則它之后為步驟1030。通常,通信信道參數(shù)包括一個(gè)能夠表明一個(gè)數(shù)據(jù)字是否為幀的開始的字段。例如,當(dāng)根據(jù)ATM通信協(xié)議接收單元時(shí),這種指示可以在單元的頭部找到。
如路徑1020所示,步驟1018之后為步驟1022。在步驟1022中,第一處理器90根據(jù)先前提取的DP(k)提取BF(k)。TMP(k)得到PT(k)的值,因?yàn)榈谝惶幚砥?0將開始把從CC(k)處接收到的數(shù)據(jù)字寫入BF(k)的開頭。
如路徑1024所示,步驟1022之后為步驟1026。在步驟1026中,第一處理器讀取FSB(k)。如果該位已被設(shè)置,第一處理器90便不能訪問BF(k)。方便起見,第一處理器90將會(huì)一直等到第二處理器100復(fù)位FSB(k),而不會(huì)試圖把數(shù)據(jù)寫入其他的緩沖器描述符,但這也不是必須的。如路徑1028所示,當(dāng)復(fù)位了FSB(k)時(shí),第一處理器在步驟1030中提取TMP(k)。TMP(k)指向所接收到的數(shù)據(jù)字將被存儲(chǔ)的地址(或數(shù)據(jù)字將被發(fā)送的地址)內(nèi)。
如路徑1032所示,步驟1030之后為步驟1034。如果執(zhí)行步驟1034而通信控制器111通過外設(shè)從CC(k)接收到數(shù)據(jù),那么就把一個(gè)數(shù)據(jù)字(或多個(gè)數(shù)據(jù)字)從CC(k)發(fā)送到第一存儲(chǔ)體70,然后再從第一存儲(chǔ)體70發(fā)送到由TMP(k)所指向的地址。如果執(zhí)行步驟1034,而通信控制器111通過外設(shè)向CC(k)發(fā)送數(shù)據(jù),那么就把一個(gè)數(shù)據(jù)字(或多個(gè)數(shù)據(jù)字)從由TMP(k)所指向的地址發(fā)送到第一存儲(chǔ)體70,然后再從第一存儲(chǔ)體70發(fā)送到CC(k)。如根據(jù)圖8所解釋的那樣,BTM 40處理數(shù)據(jù)從(到)CC(k)到(從)第一存儲(chǔ)體70的發(fā)送。
如路徑1036所示,步驟1034之后為步驟1038。
在查詢步驟,第一處理器90檢查在步驟1034中存儲(chǔ)在BF(k)(或從BF(k)發(fā)送)的數(shù)據(jù)字是否為一個(gè)幀中的最后的數(shù)據(jù)字或者BF(k)是否為滿(空)。
如路徑1048所示,如果兩個(gè)問題的答案都為“否”,那么步驟1038之后為步驟1046。在步驟1046中,增加TMP(k),以使得它指向BF(k)內(nèi)空的數(shù)據(jù)字(指向要發(fā)送到CC(k)的下一個(gè)數(shù)據(jù)字),該數(shù)據(jù)字在先前由TMP(k)指向的存儲(chǔ)字之后。如路徑1056所示,步驟1046之后為步驟1034。
如路徑1044所示,如果數(shù)據(jù)字為一個(gè)幀的結(jié)尾,不管BF(k)的狀態(tài)如何,查詢步驟1038之后為步驟1050。在步驟1050中,第一處理器90向第二處理器100發(fā)送一個(gè)幀的指示結(jié)尾,通過設(shè)置FSB(k)關(guān)閉BD(k),并更新通信信道參數(shù)。這種更新包括由下列描述符指針DP(k+1)代替DP(k)。
例如,當(dāng)根據(jù)ATM AL5通信協(xié)議(ATM通信協(xié)議的子協(xié)議)接收數(shù)據(jù)流時(shí),第一處理器90必須檢查CRC檢查是否表明了在發(fā)送幀時(shí)存在錯(cuò)誤,如果這樣,它就向第二處理器發(fā)送一個(gè)中斷。第一處理器90還可以檢查最后單元的長度,并以此更新LW(k)。
如路徑1040所示,如果BF(k)為“滿”(空,當(dāng)從通信控制器111發(fā)送數(shù)據(jù)字時(shí)),步驟1038之后為步驟1042。在步驟1042,第一處理器90通過設(shè)置FSB(k)關(guān)閉BD(k),并更新通信信道參數(shù)。這種更新包括由下列描述符指針DP(k+1)代替DP(k)。
圖13為根據(jù)本發(fā)明的優(yōu)選實(shí)施例描述第一處理器對(duì)各種接收/發(fā)送請(qǐng)求所作出的響應(yīng)的時(shí)序圖。
信號(hào)PR1代表由第一處理器90執(zhí)行第一任務(wù)T(1)。信號(hào)PR2代表由第一處理器90執(zhí)行第二任務(wù)T(2)。信號(hào)PR3代表由第一處理器90執(zhí)行第三任務(wù)T(3)。第一任務(wù)T(1)比第二任務(wù)T(2)具有更高的優(yōu)先級(jí),而第三任務(wù)T(3)的優(yōu)先級(jí)則比第二任務(wù)T(2)的優(yōu)先級(jí)要低。
如過渡1550和1551所示,第一處理器90開始執(zhí)行第一任務(wù)T(1),直到第一任務(wù)T(1)需要從外部存儲(chǔ)體110提取信息為止。第一任務(wù)T(1)由于其最高的優(yōu)先級(jí)而在第二和第三任務(wù)T(2)和T(3)之前執(zhí)行。如過渡1551所示,第一處理器90向第一DMA 60發(fā)送一個(gè)DMA請(qǐng)求并執(zhí)行任務(wù)轉(zhuǎn)換。如渡1551和1560所示,第一處理器90停止執(zhí)行第一任務(wù)T(1),開始執(zhí)行第二任務(wù)T(2)。DMA請(qǐng)求要在過渡1562之前執(zhí)行,否則任何從與第一任務(wù)T(1)相關(guān)的請(qǐng)求信道來的請(qǐng)求都會(huì)被禁止,第一處理器將不會(huì)執(zhí)行第一任務(wù)T(1)。
在過渡1561之后,第一處理器90開始以與它執(zhí)行第一任務(wù)T(1)相同的方式執(zhí)行第二任務(wù)T(2)。如過渡1560和1561所示,執(zhí)行第二任務(wù)T(2),直到需要從外部存儲(chǔ)體110提取信息為止。如渡1561和1570所示,第一處理器90執(zhí)行任務(wù)轉(zhuǎn)換,它停止執(zhí)行第二任務(wù)T(2),并以與它執(zhí)行第一任務(wù)T(1)和第二任務(wù)T(2)相同的方式開始執(zhí)行第三任務(wù)T(3)。如過渡1580和1581所示,執(zhí)行第三任務(wù)T(3),直到需要從外部存儲(chǔ)體110提取信息為止。在過渡1581之后,第一處理器檢查是否存在請(qǐng)求,并且因?yàn)樗械慕邮?發(fā)送請(qǐng)求都被禁止,第一處理器90一直等到與第一任務(wù)T(1)相關(guān)的DMA請(qǐng)求完成,然后開始執(zhí)行第一任務(wù)T(1),如過渡1562所示。
在過渡1560和1561,1562和1563,1564和1565,1566和1567之間執(zhí)行第一任務(wù)T(1)。在過渡1561和1562,1563和1564,1565和1566之間,第一DMA 60執(zhí)行與第一任務(wù)T(1)相關(guān)的DMA請(qǐng)求。在過渡1570和1571,1572和1573之間執(zhí)行第二任務(wù)T(2)。在過渡1571和1572之間,第一DMA 60或第二DMA 160執(zhí)行與第二任務(wù)T(2)相關(guān)的DMA請(qǐng)求。在過渡1580和1581,1582和1583,1584和1585,1586和1587之間執(zhí)行第三任務(wù)T(3)。在過渡1581和1582,1583和1584,1585和1586之間,第一DMA 60執(zhí)行與第三任務(wù)T(3)相關(guān)的DMA請(qǐng)求。
圖14為根據(jù)本發(fā)明的優(yōu)選實(shí)施例描述第一處理器對(duì)各種接收/發(fā)送請(qǐng)求所作出的響應(yīng)的時(shí)序圖。
如參照?qǐng)D11所進(jìn)一步詳細(xì)解釋的那樣,信號(hào)PR1代表由第一處理器90執(zhí)行第一任務(wù)T(1)。第一處理器在過渡1560和1561,1562和1563,1564和1565,1566和1567之間執(zhí)行第一任務(wù)T(1)。過渡1561,1563和1565表示任務(wù)轉(zhuǎn)換,它通常是由需要從外部存儲(chǔ)體或其他外部單元提取信息所導(dǎo)致的。
信號(hào)CR1代表從CR(z)所發(fā)送的一個(gè)接收/發(fā)送請(qǐng)求。如過渡1590所示,該請(qǐng)求一直到第一處理器90完成執(zhí)行第一任務(wù)T(1)前都是有效的。
信號(hào)R1代表輸入到調(diào)度器50的被屏蔽的信號(hào)。如過渡1591所示,當(dāng)?shù)谝蝗蝿?wù)T(1)需要從外存儲(chǔ)體110提取信息時(shí),第一處理器90向第一DMA 60或向第二DMA 160發(fā)送一個(gè)DMA請(qǐng)求,并向調(diào)度器50發(fā)送一個(gè)禁止信號(hào)。禁止信號(hào)使信號(hào)R1復(fù)位。如參照?qǐng)D4進(jìn)一步詳細(xì)解釋的那樣,在第一DMA 60或第二DMA 160執(zhí)行完所有由RC(z)所產(chǎn)生的DMA請(qǐng)求后,它向調(diào)度器50發(fā)送一個(gè)使能信號(hào)。如過渡1592所示,該使能信號(hào)設(shè)置信號(hào)R1。過渡1592是過渡1562的先決條件。只要與RC(z)相關(guān)的DMA請(qǐng)求沒有被充分執(zhí)行,第一處理器90就不會(huì)處理第一任務(wù)T(1)。
在過渡1562之前執(zhí)行DMA請(qǐng)求,否則從與第一任務(wù)T(1)相關(guān)的請(qǐng)求信道來的任何請(qǐng)求都被禁止,第一處理器將不會(huì)恢復(fù)執(zhí)行第一任務(wù)T(1)內(nèi)的指令。
如過渡1592,1594和1596所示,R1信號(hào)是在第一DMA 60執(zhí)行完與RC(z)相關(guān)的DMA請(qǐng)求之后被設(shè)置的。如過渡1593和1595所示,當(dāng)需要執(zhí)行與RC(z)相關(guān)的DMA請(qǐng)求時(shí),信號(hào)R1被復(fù)位。
如過渡1597所示,當(dāng)?shù)谝惶幚砥?0執(zhí)行完第一任務(wù)T(1)時(shí),R1被復(fù)位。
這樣,此處就描述了一個(gè)實(shí)施例,它包括至少一個(gè)改進(jìn)的用于對(duì)數(shù)據(jù)處理器指令進(jìn)行分類的方法和裝置的優(yōu)選實(shí)施例以及指令系統(tǒng)的實(shí)施例。很明顯,對(duì)于本技術(shù)領(lǐng)域內(nèi)的人員來講,可以用眾多的方式來修改所披露的主題,并采用很多不同于上面所描述和專門陳述的優(yōu)選形式。因此,上面所披露的主題只被認(rèn)為是描述性的,而并不是限制性的。由法律最大程度的允許,所附的權(quán)利要求意于覆蓋所有此類的修改以及本發(fā)明的真正精神和范圍內(nèi)的其它實(shí)施例。本發(fā)明的范圍將由下面的權(quán)利要求及其等效物所具有的最大許可詮釋確定,而不是前面的詳細(xì)描述所確定。
權(quán)利要求
1.一種高速通信控制器,用于接收,發(fā)送和處理高速數(shù)據(jù)流,數(shù)據(jù)流包括幀,通信控制器適合于與一組通信信道,與第一和第二外部總線相連。通信控制器包括第一處理器,用于控制數(shù)據(jù)流的事務(wù),其中第一處理器通過執(zhí)行任務(wù)控制幀的事務(wù);第二處理器,用于處理高級(jí)管理和通信協(xié)議功能;以及調(diào)度器,與第一處理器相連,用于感知是否需要執(zhí)行一項(xiàng)任務(wù),并選擇待由第一處理器執(zhí)行的選定任務(wù)。
2.權(quán)利要求1中的通信控制器,進(jìn)一步包括指令存儲(chǔ)體,與第一處理器相連,用于存儲(chǔ)任務(wù);第一存儲(chǔ)體,與第一處理器相連,用于存儲(chǔ)待由第一處理器處理的數(shù)據(jù);第一直接存儲(chǔ)器存取控制器,與第一處理器和第一外部總線相連,用于提取存儲(chǔ)在與第一外部總線相連的外存儲(chǔ)體內(nèi)的信息;第二直接存儲(chǔ)器存取控制器,與第一處理器和第二外部總線相連,用于提取存儲(chǔ)在與第二外部總線相連的外存儲(chǔ)體內(nèi)的信息;多個(gè)外設(shè),與調(diào)度器和第一存儲(chǔ)體相連,用于在多個(gè)通信信道和第一存儲(chǔ)體之間起緩沖作用。
3.權(quán)利要求2的通信控制器,其中調(diào)度器存儲(chǔ)了多個(gè)棧指針;其中一個(gè)棧指針與一項(xiàng)任務(wù)相關(guān);調(diào)度器向第一處理器發(fā)送一所選擇的棧指針,該所選擇的棧指針與所選擇的任務(wù)相關(guān);一項(xiàng)任務(wù)的執(zhí)行涉及到更新所選擇的棧指針;以及當(dāng)?shù)谝惶幚砥魍V箞?zhí)行所選任務(wù)時(shí),它向調(diào)度器發(fā)送所選的更新了的棧指針。
4.權(quán)利要求3的通信控制器,其中當(dāng)任務(wù)的執(zhí)行涉及到從外部存儲(chǔ)體中提取信息時(shí),第一處理器便停止執(zhí)行任務(wù)。
5.權(quán)利要求4的通信控制器,其中一個(gè)外設(shè)具有兩個(gè)請(qǐng)求信道;第一請(qǐng)求信道處理數(shù)據(jù)從通信控制器向一個(gè)通信信道的發(fā)送;第二請(qǐng)求信道處理數(shù)據(jù)從通信信道發(fā)送到通信控制器的接收;當(dāng)?shù)谝徽?qǐng)求信道可以接收到要發(fā)送到通信信道去的數(shù)據(jù)時(shí),它會(huì)向調(diào)度器發(fā)送一個(gè)發(fā)送請(qǐng)求;以及當(dāng)?shù)诙?qǐng)求信道接收到從通信信道來的數(shù)據(jù)時(shí),它會(huì)向調(diào)度器發(fā)送一個(gè)接收請(qǐng)求。
6.權(quán)利要求5的通信控制器,其中調(diào)度器包括請(qǐng)求選擇器,與外設(shè)相連,用于接收發(fā)送請(qǐng)求和接收請(qǐng)求并選擇所選定的請(qǐng)求;多個(gè)棧指針寄存器,用于存儲(chǔ)多個(gè)棧指針;棧指針輸入多路復(fù)用器,與多個(gè)棧指針多路復(fù)用器和第一處理器相連,用于把棧指針寫入多個(gè)棧指針寄存器中;以及棧指針輸出多路復(fù)用器,與多個(gè)棧指針寄存器,第一處理器和請(qǐng)求選擇器相連,用于把選定的棧指針發(fā)送到第一處理器。
7.權(quán)利要求6的通信控制器,其中第一直接存儲(chǔ)器存取控制器和第二直接存儲(chǔ)器存取控制器包括一個(gè)直接存儲(chǔ)器存取請(qǐng)求隊(duì)列,與第一處理器相連,用于存儲(chǔ)多個(gè)直接存儲(chǔ)器存取請(qǐng)求;和一個(gè)使能單元,與直接存儲(chǔ)器存取請(qǐng)求隊(duì)列和調(diào)度器相連,用于把與存儲(chǔ)在直接存儲(chǔ)器存取控制器中的直接存儲(chǔ)器存取請(qǐng)求相關(guān)的第一請(qǐng)求信道來的發(fā)送請(qǐng)求進(jìn)行屏蔽,并把與存儲(chǔ)在直接存儲(chǔ)器存取控制器中的直接存儲(chǔ)器存取請(qǐng)求相關(guān)的第二請(qǐng)求信道來的接收請(qǐng)求進(jìn)行屏蔽。
8.權(quán)利要求7的通信控制器,其中第一直接存儲(chǔ)器存取控制器和第二直接存儲(chǔ)器存取控制器進(jìn)一步包括一個(gè)請(qǐng)求旁路寄存器,用于存儲(chǔ)直接存儲(chǔ)器存取請(qǐng)求;一個(gè)輸入多路復(fù)用器,用于確定是把直接存儲(chǔ)器存取請(qǐng)求存儲(chǔ)在直接存儲(chǔ)器存取請(qǐng)求隊(duì)列中還是存儲(chǔ)在請(qǐng)求旁路寄存器中;以及一個(gè)輸出多路復(fù)用器,與第一存儲(chǔ)體,直接存儲(chǔ)器存取請(qǐng)求隊(duì)列和旁路請(qǐng)求寄存器相連,如果請(qǐng)求旁路寄存器存儲(chǔ)了一個(gè)有效的直接存儲(chǔ)器存取請(qǐng)求,它就用于選擇存儲(chǔ)在請(qǐng)求旁路寄存器中的直接存儲(chǔ)器存取請(qǐng)求。
9.權(quán)利要求8的通信控制器,其中直接存儲(chǔ)器存取請(qǐng)求隊(duì)列包括多個(gè)存儲(chǔ)字;每個(gè)存儲(chǔ)字都具有第一位置和第二位置;第二位置是用于存儲(chǔ)直接存儲(chǔ)器存取請(qǐng)求;以及第一位置用于存儲(chǔ)一個(gè)標(biāo)記,該標(biāo)記表明了與存儲(chǔ)在第二位置中的直接存儲(chǔ)器存取請(qǐng)求相關(guān)的請(qǐng)求信道。
10.權(quán)利要求7的通信控制器,其中當(dāng)?shù)谝恢苯哟鎯?chǔ)器存取控制器和第二直接存儲(chǔ)器存取控制器中有一個(gè)的使能單元屏蔽了來自第一請(qǐng)求信道的發(fā)送請(qǐng)求時(shí),來自第一請(qǐng)求信道的發(fā)送請(qǐng)求便被屏蔽;和當(dāng)?shù)谝恢苯哟鎯?chǔ)器存取控制器和第二直接存儲(chǔ)器存取控制器中有一個(gè)的使能單元屏蔽了自第二請(qǐng)求信道來的接收請(qǐng)求時(shí),自第二請(qǐng)求信道來的接收請(qǐng)求便被屏蔽。
11.權(quán)利要求10的通信控制器,進(jìn)一步具有一個(gè)塊傳送機(jī),用于傳送從外設(shè)到第一存儲(chǔ)體或從第一存儲(chǔ)體到外設(shè)的數(shù)據(jù);其中塊傳送機(jī)包括位字段單元,與外設(shè)相連,用于處理數(shù)據(jù);CRC機(jī),與外設(shè)相連,用于執(zhí)行CRC檢查;BTM數(shù)據(jù)寄存器,與CRC機(jī),數(shù)據(jù)處理器和第一存儲(chǔ)體相連,用于存儲(chǔ)待從第一存儲(chǔ)體發(fā)送到外設(shè)的數(shù)據(jù),并存儲(chǔ)待寫入第一存儲(chǔ)體中的數(shù)據(jù);BTM控制單元,與CRC機(jī),數(shù)據(jù)處理器和BTM數(shù)據(jù)寄存器相連,用于控制塊傳送機(jī)。
12.權(quán)利要求11的通信控制器,其中第一存儲(chǔ)體具有多個(gè)部分,每個(gè)部分都與第一處理器,第二處理器,第一直接存儲(chǔ)器存取控制器,第二直接存儲(chǔ)器存取控制器和BTM相連,其中每個(gè)部分包括一個(gè)存儲(chǔ)器陣列,用于存儲(chǔ)信息;一個(gè)存儲(chǔ)體選擇器,用于從第一處理器,第二處理器,第一直接存儲(chǔ)器存取控制器,第二直接存儲(chǔ)器存取控制器和BTM中選擇所選定的設(shè)備;數(shù)據(jù)多路復(fù)用器,用于使能所選定的設(shè)備與存儲(chǔ)器陣列之間的數(shù)據(jù)傳輸;以及地址多路復(fù)用器,用于使能所選定的設(shè)備向存儲(chǔ)器陣列發(fā)送一個(gè)地址字。
13.權(quán)利要求5的通信控制器,其中外部存儲(chǔ)體具有多個(gè)緩沖器,用于存儲(chǔ)數(shù)據(jù);外部存儲(chǔ)體進(jìn)一步具有緩沖器描述符,用于存儲(chǔ)一個(gè)指針,一個(gè)狀態(tài)和控制字段和一個(gè)長度字段;指針指向緩沖器;長度字段定義了由指針?biāo)赶虻木彌_器的長度;以及狀態(tài)和控制字具有一個(gè)F/S字段,它表示第一處理器和第二處理器中哪一個(gè)可以對(duì)指針?biāo)赶虻木彌_器進(jìn)行存取。
14.權(quán)利要求13的通信控制器,其中緩沖器存儲(chǔ)與請(qǐng)求信道相關(guān)的數(shù)據(jù);與單個(gè)請(qǐng)求信道相關(guān)的一組緩沖器形成一個(gè)循環(huán)隊(duì)列;狀態(tài)和控制字包括一個(gè)換行字段,用于表示具有換行字段的緩沖器描述符所涉及的緩沖器是否為該組中的最后一個(gè)緩沖器;一個(gè)緩沖器存儲(chǔ)從單個(gè)數(shù)據(jù)幀來的數(shù)據(jù);每個(gè)緩沖器包括多個(gè)存儲(chǔ)字;第一存儲(chǔ)體存儲(chǔ)一個(gè)臨時(shí)指針;以及臨時(shí)指針指向待由第一處理器所要處理的下一個(gè)存儲(chǔ)字。
15.權(quán)利要求14的通信處理器,其中在第一處理器處理了由緩沖器描述符所涉及的緩沖器之后,它對(duì)F/S字段進(jìn)行設(shè)置;和在第二處理器處理了由緩沖器描述符所涉及的緩沖器之后,它對(duì)F/S字段進(jìn)行復(fù)位。
16.權(quán)利要求14的通信控制器,其中當(dāng)?shù)谝惶幚砥鲌?zhí)行任務(wù)轉(zhuǎn)換時(shí),它在第一存儲(chǔ)體中保存更新的臨時(shí)指針;和當(dāng)?shù)谝惶幚砥鏖_始執(zhí)行任務(wù)中的指令時(shí),它會(huì)提取臨時(shí)指針。
17.一種用于處理數(shù)據(jù)流事務(wù)的方法,數(shù)據(jù)流包括幀,其中幀事務(wù)是通過執(zhí)行任務(wù)來處理的,其中執(zhí)行任務(wù)涉及到從外部單元提取信息,該方法包括下列步驟檢查是否需要處理事務(wù);如果需要處理一項(xiàng)事務(wù),便執(zhí)行任務(wù),直到任務(wù)結(jié)束,或直到任務(wù)的執(zhí)行涉及到從外部單元提取信息;如果任務(wù)結(jié)束,便跳到檢查是否需要處理事務(wù)那一步;以及否則,便初始化從外部單元提取信息的過程,停止執(zhí)行涉及從外部單元提取信息的任務(wù),并跳到檢查是否需要處理事務(wù)那一步。
18.權(quán)利要求17的方法,其中當(dāng)需要從通信信道接收幀的一部分時(shí),便停止任務(wù)的執(zhí)行。
19.一種操作通信控制器的方法,該通信控制器用于接收,發(fā)送和處理高速數(shù)據(jù)流,數(shù)據(jù)流由幀組成,通信控制器與多個(gè)通信信道和外部單元相連,通信控制器具有一個(gè)第一處理器,用于控制數(shù)據(jù)流事務(wù);其中第一處理器通過執(zhí)行任務(wù)控制幀的事務(wù);第二處理器,用于處理高級(jí)管理和通信協(xié)議功能;第一外部總線,與第一處理器和第二處理器相連,用于把第一處理器,第二處理器與外部單元連接起來;第二外部總線,與第一處理器和第二處理器相連,用于把第一處理器,第二處理器與外部單元連接起來;調(diào)度器,與第一處理器相連,用于感知是否需要執(zhí)行一項(xiàng)任務(wù),并選擇要執(zhí)行哪一項(xiàng)任務(wù);該方法包括下列步驟檢查是否需要處理事務(wù);如果需要處理一項(xiàng)事務(wù),便執(zhí)行任務(wù),直到任務(wù)結(jié)束,或直到任務(wù)的執(zhí)行涉及到從外部單元提取信息;以及如果任務(wù)結(jié)束,便跳到檢查是否需要處理事務(wù)那一步;否則,便初始化從外部單元提取信息的過程,停止執(zhí)行涉及從外部單元提取信息的任務(wù),并跳到檢查是否需要處理事務(wù)那一步。
20.權(quán)利要求19的方法,其中通信控制器進(jìn)一步具有一個(gè)指令存儲(chǔ)體,它與第一處理器相連,用于存儲(chǔ)任務(wù);第一存儲(chǔ)體,與第一處理器相連,用于存儲(chǔ)要由第一處理器處理的數(shù)據(jù);第一直接存儲(chǔ)器存取控制器,與第一處理器和第一外部總線相連,用于提取存儲(chǔ)在與第一外部總線相連的外部存儲(chǔ)體內(nèi)的信息;第二直接存儲(chǔ)器存取控制器,與第一處理器和第二外部總線相連,用于提取存儲(chǔ)在與第二外部總線相連的外部存儲(chǔ)體內(nèi)的信息;多個(gè)外設(shè),與調(diào)度器和第一存儲(chǔ)體相連,用于在多個(gè)通信信道和第一存儲(chǔ)體之間起緩沖作用;其中每個(gè)外設(shè)包括兩個(gè)請(qǐng)求信道;其中第一請(qǐng)求信道處理數(shù)據(jù)從通信控制器向通信信道的發(fā)送;其中第二請(qǐng)求信道處理數(shù)據(jù)從通信信道發(fā)送到通信控制器的接收;其中請(qǐng)求信道參數(shù)定義了請(qǐng)求信道的狀態(tài);其中通信信道參數(shù)定義了通信信道的狀態(tài);其中外部存儲(chǔ)體具有多個(gè)緩沖器,用于存儲(chǔ)數(shù)據(jù);其中外部存儲(chǔ)體進(jìn)一步具有緩沖器描述符,用于存儲(chǔ)指針,狀態(tài)和控制字段,和長度字段;其中指針指向緩沖器;該方法包括下列步驟開始任務(wù);讀取請(qǐng)求信道參數(shù);提取通信信道參數(shù),并檢查可以表明任務(wù)是否涉及處理幀中第一個(gè)數(shù)據(jù)字的通信信道參數(shù);如果任務(wù)涉及處理幀中第一個(gè)數(shù)據(jù)字便執(zhí)行下列步驟提取緩沖器描述符;設(shè)置臨時(shí)指針為緩沖器描述符中的指針值;檢查緩沖器描述符是否被使能,其中如果緩沖器描述符未被使能,則一直等到它被使能;提取臨時(shí)指針;否則,跳到提取臨時(shí)指針那一步;如果從外部單元接收數(shù)據(jù)和把數(shù)據(jù)移動(dòng)到通信信道,如果發(fā)送數(shù)據(jù),把數(shù)據(jù)從通信信道移動(dòng)到外部單元,;檢查數(shù)據(jù)幀是否結(jié)束,緩沖器是否結(jié)束;如果緩沖器結(jié)束,更新通信信道參數(shù),并跳到提取緩沖器描述符那一步;如果幀結(jié)束,發(fā)送幀指示的末端,關(guān)閉緩沖器描述符,更新通信信道參數(shù),并跳到開始任務(wù)那一步;以及否則,更新臨時(shí)指針,并跳到移動(dòng)數(shù)據(jù)那一步。
全文摘要
一種通信控制器,用于處理高速多協(xié)議數(shù)據(jù)流,其中數(shù)據(jù)流由幀組成。通信控制器具有兩個(gè)處理器,第二處理器初始化第一處理器并處理高級(jí)管理和協(xié)議功能,第一處理器處理數(shù)據(jù)流事務(wù)。第一和第二處理器與兩條外部總線相連。第一處理器通過執(zhí)行任務(wù)而處理幀的事務(wù)。如果第一處理器確實(shí)處理了一整個(gè)幀,或者如果需要從通信信道提取幀的一部分,當(dāng)需要從與第一或第二外部總線相連的外部單元提取信息時(shí),第一處理器便執(zhí)行任務(wù)轉(zhuǎn)換。
文檔編號(hào)H04L12/40GK1346468SQ00805899
公開日2002年4月24日 申請(qǐng)日期2000年3月14日 優(yōu)先權(quán)日1999年4月2日
發(fā)明者約倫·耶文, 埃利澤·魏茨, 莫蒂·柯尼克, 阿維·沙列夫, 阿維·黑格 申請(qǐng)人:摩托羅拉公司