專利名稱:異步傳輸模式通信設(shè)備的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種ATM通信設(shè)備。具體來說,本發(fā)明涉及的這種ATM通信設(shè)備具有一個可用于各虛擬信道(以下稱為VC)的發(fā)送數(shù)據(jù)臨時存儲電路。
圖1的框圖顯示了一種傳統(tǒng)的ATM通信設(shè)備。如圖1所示,傳統(tǒng)ATM通信設(shè)備1的ATM信元形成/發(fā)送部分由以下各部分構(gòu)成發(fā)送調(diào)度部分8,它用于選擇下一個就要發(fā)送的VC;信元形成/發(fā)送控制部分6,它用于從發(fā)送調(diào)度部分8接收說明選中VC的信息并控制VC信元發(fā)送;發(fā)送參數(shù)存儲部分7,它可存儲用來控制信元發(fā)送的信息(發(fā)送參數(shù));用于形成一發(fā)送信元的發(fā)送信元形成部分9;以及用于存儲發(fā)送信元的發(fā)送數(shù)據(jù)FIFO 10。該ATM通信設(shè)備1的接收/分隔部分由下列部分構(gòu)成接收/信元分隔控制部分12,它用于斷開并對接收信元濾波以對原始信息進(jìn)行還原;接收數(shù)據(jù)FIFO 13,它可在分隔之后存儲接收信元的有效負(fù)載;主機總線接口部分5,它用于向/從含有主機CPU2、主機內(nèi)存3及主機總線4的主機系統(tǒng)發(fā)送/接收數(shù)據(jù);物理層設(shè)備接口部分11,它用于向/從物理層設(shè)備發(fā)送/接收ATM信元。
該ATM通信設(shè)備1通過主機總線4與主機內(nèi)存3和主機CPU2相連接。主機內(nèi)存3中保存著有效負(fù)載發(fā)送/接收數(shù)據(jù)。例如,主機CPU2對發(fā)送/接收有效負(fù)載進(jìn)行上層處理,輸出發(fā)送請求,并管理主機內(nèi)存。
圖2顯示了傳統(tǒng)ATM通信設(shè)備中發(fā)送參數(shù)存儲部分7(見圖1)的格式。
如圖2所示,就一個VC而言,發(fā)送參數(shù)存儲部分7中保存有信元報頭信息31,信元報尾信息32,有效負(fù)載在主機內(nèi)存3中的存儲地址33(主機內(nèi)存有效負(fù)載存儲地址說明了有效負(fù)載存儲區(qū)在主機內(nèi)存3中的起始地址),以及主機內(nèi)存有效負(fù)載容量34(它說明了在從有效負(fù)載存儲地址33開始的連續(xù)區(qū)域中保存的有效負(fù)載的字節(jié)數(shù))。盡管在圖2中僅顯示了一個VC的存儲信元(存儲部分),但類似的存儲部分存在于所有其它VC的發(fā)送參數(shù)存儲部分7之中。
如圖1所示,傳統(tǒng)ATM通信設(shè)備1包括以下信號線VC序號信號線19,發(fā)送參數(shù)信號線20,DMA開始請求信號線21,有效負(fù)載數(shù)據(jù)信號線25,報頭/報尾數(shù)據(jù)信號線26,以及信元數(shù)據(jù)信號線27。以下將參考圖1對各信號線進(jìn)行詳細(xì)說明。
發(fā)送調(diào)度部分8利用VC序號信號線19將VC序號通知給信元形成/發(fā)送控制部分6,以確定下一個將要發(fā)送的VC。發(fā)送參數(shù)信號線20用于在信元形成/發(fā)送控制部分6和發(fā)送參數(shù)存儲部分7之間交換發(fā)送參數(shù)。
信元形成/發(fā)送控制部分6利用DMA開始請求信號線21將DMA的讀入地址和DMA讀入數(shù)據(jù)的長度通知給主機總線接口部分5,以開始DMA傳送。主機總線接口部分5利用有效負(fù)載數(shù)據(jù)信號線25向發(fā)送信元形成部分9發(fā)送有效負(fù)載數(shù)據(jù)DMA一讀。
報頭/報尾數(shù)據(jù)信號線26用于向發(fā)送信元形成部分9發(fā)送信元報頭信息31和信元報尾信息32(見圖2),報頭信息31和報尾信息32是由信元形成/發(fā)送控制部分6通過發(fā)送參數(shù)信號線20從發(fā)送參數(shù)存儲部分7中讀出的。信元數(shù)據(jù)信號線27用于將由發(fā)送信元形成部分9形成的發(fā)送信元保存在發(fā)送數(shù)據(jù)FIFO 10中。
圖3的流程圖顯示了傳統(tǒng)ATM通信設(shè)備的操作流程。以下將參考圖3以及圖1和圖2對傳統(tǒng)ATM通信設(shè)備的操作流程進(jìn)行說明。
在傳統(tǒng)ATM通信設(shè)備中,當(dāng)要對下一個信元進(jìn)行發(fā)送時,發(fā)送調(diào)度部分8將通過VC序號信號線19把信元的VC序號通知給信元形成/發(fā)送控制部分6(步驟S1“VC序號通知”)。
根據(jù)接收到的VC信元序號通知,信元形成/發(fā)送控制部分6將通過DMA開始請求信號線21向主機總線接口部分5通知主機內(nèi)存的有效負(fù)載存儲地址33(它作為DMA讀入地址而保存在發(fā)送參數(shù)存儲部分7之中)和48個字節(jié)(該數(shù)值代表了上一個信元的主機內(nèi)存有效負(fù)載容量34)長度的DMA讀入數(shù)據(jù)。然后,信元形成/發(fā)送控制部分6給指導(dǎo)主機總線接口部分5提供一個指令以DMA-讀入與主機內(nèi)存3中的一個信元相對應(yīng)的發(fā)送有效負(fù)載。
根據(jù)所接收的上述指令,主機總線接口部分5將在當(dāng)與一個或多個信元相對應(yīng)的發(fā)送有效負(fù)載保存在主機內(nèi)存3中的連續(xù)地址區(qū)域時,用一個總線周期來DMA-讀入1個信元的數(shù)據(jù),并且DMA讀入可通過主機總線4的結(jié)構(gòu)而連續(xù)完成。
如果發(fā)送有效負(fù)載分布在主機內(nèi)存3中的不同地址區(qū)域,或DMA讀入不能通過主機總線4的結(jié)構(gòu)而連續(xù)完成,則一個信元數(shù)據(jù)的DMA讀入將在多個總線周期中完成。由DMA讀入的發(fā)送有效負(fù)載被送往發(fā)送信元形成部分9。在發(fā)送信元形成部分9中,有效負(fù)載、信元報頭信息31及信元報尾信息32被封裝進(jìn)一個信元。而此信元被保存在發(fā)送數(shù)據(jù)FIFO 10之中。
發(fā)送調(diào)度部分8以信元為單位對發(fā)送VC進(jìn)行選擇,而且沒有必要為兩個信元連續(xù)地選擇相同的VC。由于這個原因,使得發(fā)送有效負(fù)載的DMA讀入、發(fā)送信元的形成、以及在發(fā)送數(shù)據(jù)FIFO 10中的數(shù)據(jù)寫都以信元為單位而進(jìn)行(步驟S2“傳送一個信元”)。
進(jìn)行這種操作的原因如下。假設(shè)發(fā)送調(diào)度部分8選中了一個給定VC以作為發(fā)送VC。在這種情況下,如果與該VC相對應(yīng)的兩個或多個信元的有效負(fù)載數(shù)據(jù)被保存在發(fā)送數(shù)據(jù)FIFO 10中,則當(dāng)發(fā)送調(diào)度部分8選中另一個VC以作為下一個發(fā)送VC時,發(fā)送順序?qū)⒈淮騺y。
保存在發(fā)送數(shù)據(jù)FIFO 10之中的發(fā)送信元被通過物理層設(shè)備接口11送往物理層設(shè)備(步驟S3“發(fā)送一個信元”)。
在上述ATM通信設(shè)備(以下稱現(xiàn)有技術(shù))中存在以下問題(第一和第二問題)。
第一個問題是主機總線(見圖1中的參考序號4)的傳送效率很低。
其原因在于,在現(xiàn)有技術(shù)中,對發(fā)送數(shù)據(jù)以信元為單位的DMA讀入將產(chǎn)生一個額外開銷,該額外開銷與用于各DMA讀入所進(jìn)行的總線訪問及類似過程的判斷有關(guān)。假設(shè)該ATM通信設(shè)備通過一個PCI總線接口從主機內(nèi)存中主讀入有效負(fù)載數(shù)據(jù),在這種情況下,至少需要兩個時鐘周期的時間以使該ATM通信設(shè)備獲得總線訪問(即,將REQ#信號設(shè)定為低電平之后,再通過獲得一GNT#信號以將一FRAME#信號設(shè)定為低電平,這期間所需的時間)。另外,由于在該ATM通信設(shè)備輸出一個地址后,還至少需要兩個時鐘周期的時間以從主機內(nèi)存中接收第一個字的數(shù)據(jù),所以用于各DMA讀入的總額外開銷至少為2+2=4個時鐘周期。
實際情況中,總線訪問時間所需的時間還要更長。另外,在ATM通信設(shè)備輸出一個地址的時刻與第一個字的數(shù)據(jù)被從主機內(nèi)存中接收到的時刻之間的時間間隔內(nèi),一般還有一個等待時間。在這種情況下,隨著位于ATM通信設(shè)備與主機內(nèi)存之間的PCI總線的越發(fā)擁塞,總線訪問時間越長,或者從主機內(nèi)存中接收有效負(fù)載數(shù)據(jù)的延遲越多,第一個問題將更加明顯。
第二個問題是在信元發(fā)送確定和實際發(fā)送之間有較長的延遲。這是因為,DMA讀入必須總在信元發(fā)送確定(發(fā)送VC確定)之后才能完成,因此由DMA讀入所需額外開銷所造成的延遲將不可避免地發(fā)生在各個信元之中。
隨著位于ATM通信設(shè)備與主機內(nèi)存之間的PCI總線的越發(fā)擁塞,總線訪問時間越長,或者從主機內(nèi)存中接收有效負(fù)載數(shù)據(jù)的延遲越多,第二個問題也將更為明顯。
本發(fā)明是考慮現(xiàn)有技術(shù)中的上述情況而形成的,其目的是提供這樣一種ATM通信設(shè)備,它可通過提高主機的總線傳送效率來減少信元發(fā)送確定時刻與信元實際發(fā)送時刻之間的延遲。
一種根據(jù)本發(fā)明的ATM通信設(shè)備,它能夠在一個總線周期內(nèi)將與多個信元相對應(yīng)的發(fā)送數(shù)據(jù)DMA-讀入一個內(nèi)部緩沖器,并能通過從該緩沖器中讀出發(fā)送數(shù)據(jù)來發(fā)送ATM信元。更具體地說,這種ATM通信設(shè)備聯(lián)合使用了發(fā)送數(shù)據(jù)臨時存儲部分(它能夠以VC為單位,對與多個信元相對應(yīng)的發(fā)送數(shù)據(jù)進(jìn)行存儲/管理)和一能夠在一個總線周期內(nèi)將與多個信元相對應(yīng)的發(fā)送數(shù)據(jù)DMA讀入臨時存儲部分的裝置。
為達(dá)到上述目的,就主要方面而言,本發(fā)明提供的一種ATM通信設(shè)備包括發(fā)送調(diào)度裝置,它用于確定將要發(fā)送的虛擬信道;信元報頭存儲裝置,它用于保存發(fā)送信元的報頭信息;信元報尾存儲裝置,它用于保存發(fā)送信元的報尾信息;有效負(fù)載讀入裝置,它用于從主機內(nèi)存中讀出有效負(fù)載數(shù)據(jù);以及發(fā)送信元形成裝置,它用于將從主機內(nèi)存中讀出的有效負(fù)載數(shù)據(jù)、信元報頭信息及信元報尾信息組成一個發(fā)送信元。
此ATM通信設(shè)備能夠為一給定虛擬信道從主機內(nèi)存中讀出有效負(fù)載數(shù)據(jù),在發(fā)送調(diào)度裝置確定該給定虛擬信道發(fā)送時,將有效負(fù)載數(shù)據(jù)、信元報頭信息及信元報尾信息組成一個發(fā)送信元,并將該信元發(fā)送到物理層設(shè)備上。
這種ATM通信設(shè)備的特征在于它還包括發(fā)送有效負(fù)載存儲裝置,它用于以虛擬信道為單位來保存與多個信元相對應(yīng)的有效負(fù)載;有效負(fù)載存儲位置存儲裝置,它用于保存在發(fā)送有效負(fù)載存儲裝置中所存儲的各有效負(fù)載的位置信息;和被存儲有效負(fù)載計數(shù)存儲裝置,它用于保存說明有效負(fù)載當(dāng)前所在存儲區(qū)域的信息,而該區(qū)域則由與指定信元序號相對應(yīng)的有效負(fù)載存儲位置來表示。
當(dāng)發(fā)送調(diào)度裝置確定一個發(fā)送虛擬信道,并且如果在發(fā)送有效負(fù)載存儲裝置中沒有該虛擬信道的有效負(fù)載時,與多個信元相對應(yīng)的有效負(fù)載數(shù)據(jù)將被從主機內(nèi)存中讀出。然后,對應(yīng)于第一信元的有效負(fù)載、信元報頭及信元報尾將被組成一個發(fā)送信元。該信元被發(fā)送到物理層設(shè)備上。而與第二及其它順序信元相對應(yīng)的有效負(fù)載則被臨時保存在發(fā)送有效負(fù)載存儲裝置中。
當(dāng)發(fā)送調(diào)度裝置將虛擬信道確定為下一個發(fā)送虛擬信道,并且如果在發(fā)送有效負(fù)載存儲裝置中存有有效負(fù)載時,該有效負(fù)載將被直接從發(fā)送有效負(fù)載存儲裝置中讀出。然后,該有效負(fù)載、對應(yīng)的信元報頭及信元報尾將被組成一個發(fā)送信元。該信元被發(fā)送到物理層設(shè)備上。
根據(jù)本發(fā)明的另一個方面,在此ATM通信設(shè)備中,當(dāng)發(fā)送調(diào)度裝置確定一虛擬信道時,即使用于該發(fā)送虛擬信道的有效負(fù)載序數(shù)(保存在發(fā)送有效負(fù)載存儲裝置中)不是0但未超過一預(yù)定閾值,有效負(fù)載數(shù)據(jù)也可以被從主機內(nèi)存中重新讀出,并被加入/存儲到發(fā)送有效負(fù)載存儲裝置中。
在根據(jù)本發(fā)明所述的ATM通信設(shè)備中,用于待發(fā)送VC的對應(yīng)于多個信元的發(fā)送數(shù)據(jù)可以在一個總線周期內(nèi)被DMA讀入發(fā)送數(shù)據(jù)臨時存儲裝置。對于第二個及其后的信元來說,發(fā)送數(shù)據(jù)可從內(nèi)部緩沖器中直接讀出而不需使用主機總線。
因此,本發(fā)明具有以下效果。
第一個效果是提高了主機總線的利用率,其原因如下。
根據(jù)本發(fā)明所述,由于該ATM通信設(shè)備利用了能夠以VC為單位保存與多個信元相對應(yīng)的有效負(fù)載數(shù)據(jù)的存儲裝置,使得與多個信元相對應(yīng)的有效負(fù)載數(shù)據(jù)能夠在一個總線周期內(nèi)被讀入ATM通信設(shè)備。此舉減小了伴隨著數(shù)據(jù)傳送的額外開銷。
假設(shè)該ATM通信設(shè)備通過PCI總線接口從主機內(nèi)存中主讀入有效負(fù)載數(shù)據(jù),在這種情況下,至少需要兩個時鐘周期的時間以使該ATM通信設(shè)備獲得總線訪問(即,將REQ#設(shè)定為低電平以獲得GNT#的時刻與FRAME#信號以低電平輸出的時刻之間的時間間隔)。另外,在該ATM通信設(shè)備輸出一個地址后,還至少需要兩個時鐘周期的時間以從主機內(nèi)存中接收第一個字的數(shù)據(jù),也就是說,每個DMA讀入的總額外開銷至少為2+2=4個時鐘周周期。
假設(shè)對應(yīng)于一個信元的有效負(fù)載數(shù)據(jù)被輸出到總線上的總時間為12個時鐘周期。在現(xiàn)有技術(shù)中,以信元為單位讀出對應(yīng)于5個信元的有效負(fù)載數(shù)據(jù)所需的時間至少為(2+2+12)×5=80個時鐘周期。而在本發(fā)明中,在一個總線周期內(nèi)讀出對應(yīng)于5個信元的有效負(fù)載數(shù)據(jù)所需的時間只有2+2+(12×5)=64個時鐘周期。
實際情況中,總線訪問時間所需的時間要超過上述時間。另外,在ATM通信設(shè)備輸出一個地址的時刻與第一個字的數(shù)據(jù)被從主機內(nèi)存中接收到的時刻之間的時間間隔內(nèi),一般還有一個等待時間。在這種情況下,隨著位于ATM通信設(shè)備與主機內(nèi)存之間的PCI總線的越發(fā)擁塞,總線訪問時間越長,或者從主機內(nèi)存中接收有效負(fù)載數(shù)據(jù)的延遲越多,本發(fā)明對ATM通信設(shè)備中主機總線利用率的提高也相應(yīng)更大。
本發(fā)明的第二個效果是使得信元發(fā)送確定時刻與實際發(fā)送時刻之間的延遲較小,其原因如下。
根據(jù)本發(fā)明,該ATM通信設(shè)備利用了能夠以VC為單位保存與多個信元相對應(yīng)的有效負(fù)載數(shù)據(jù)的存儲裝置,而與第二個及其后信元相對應(yīng)的有效負(fù)載數(shù)據(jù)被臨時保存在這個存儲裝置中。在信元發(fā)送過程中,有效負(fù)載被從內(nèi)部存儲區(qū)讀出而無需使用總線,因此避免了由于使用總線而造成的讀延遲。
例如,考慮一下,當(dāng)與一個信元相對應(yīng)的有效負(fù)載數(shù)據(jù)被通過PCI總線接口主讀入時所造成的讀入延遲。至少需要兩個時鐘周期的時間以使ATM通信設(shè)備在將REQ#設(shè)定為低電平以獲得GNT#之后,以低電平輸出FRAME#信號。另外,在該ATM通信設(shè)備輸出一個地址后,還至少需要兩個時鐘周期的時間以從主機內(nèi)存中接收第一個字的數(shù)據(jù),因而至少發(fā)生了4個時鐘周期的延遲。
與之相比,在本發(fā)明中,在從ATM通信設(shè)備中的有效負(fù)載數(shù)據(jù)存儲裝置讀入1個信元的數(shù)據(jù)的過程中沒有不確定因素,即,總線訪問時間。因此,即使此設(shè)備與類似的PCI總線接口相連接,也只需考慮兩個時鐘周期的已知值。
實際情況中,總線訪問時間所需的時間要超過上述時間。另外,在ATM通信設(shè)備輸出一個地址的時刻與第一個字的數(shù)據(jù)被從主機內(nèi)存中接收到的時刻之間的時間間隔內(nèi),一般還有一個等待時間。在這種情況下,隨著位于ATM通信設(shè)備與主機內(nèi)存之間的PCI總線的越發(fā)擁塞,總線訪問時間越長,或者從主機內(nèi)存中接收有效負(fù)載數(shù)據(jù)的延遲越多,本發(fā)明所述的ATM通信設(shè)備可獲得明顯的延遲減少效果。
通過以下詳細(xì)說明并參考附圖(其中通過圖例顯示了體現(xiàn)本發(fā)明原則的實施例),本發(fā)明的其它目的、特征和優(yōu)點對熟練的技術(shù)人員來說將變得更為清楚。
圖1為傳統(tǒng)ATM通信設(shè)備的結(jié)構(gòu)示意框圖。
圖2為圖1所示現(xiàn)有技術(shù)中發(fā)送參數(shù)存儲部分的格式圖。
圖3為圖1所示現(xiàn)有技術(shù)的操作流程圖。
圖4為根據(jù)本發(fā)明第一個實施例所述ATM通信設(shè)備的結(jié)構(gòu)示意圖。
圖5為本發(fā)明第一個實施例中發(fā)送參數(shù)存儲部分的格式圖。
圖6為本發(fā)明第一個實施例的操作流程圖。
圖7為根據(jù)本發(fā)明第二個實施例所述ATM通信設(shè)備的結(jié)構(gòu)示意圖。
圖8為本發(fā)明第二個實施例中的隨機存取存儲器經(jīng)初始化后的內(nèi)容結(jié)構(gòu)圖。
圖9為本發(fā)明第二個實施例中的隨機訪問存儲器在其部分隨機存儲器被分配給發(fā)送VC時的內(nèi)容結(jié)構(gòu)圖。
圖10為本發(fā)明第二個實施例中發(fā)送參數(shù)存儲部分的格式圖。
圖11為本發(fā)明第三個實施例中發(fā)送參數(shù)存儲部分的格式圖。
圖12為本發(fā)明第三個實施例的操作流程圖。
以下將參考附圖對本發(fā)明的多個實施例進(jìn)行詳細(xì)說明。
圖4為根據(jù)本發(fā)明第一個實施例所述ATM通信設(shè)備的結(jié)構(gòu)示意圖。
如圖4所示,與參考圖1對傳統(tǒng)ATM通信設(shè)備(現(xiàn)有技術(shù))的說明相類似,一種根據(jù)本發(fā)明第一個實施例所述的ATM通信設(shè)備1具有一個ATM信元形成/發(fā)送部分,它由發(fā)送調(diào)度部分8、信元形成/發(fā)送控制部分6、發(fā)送參數(shù)存儲部分7、發(fā)送信元形成部分9以及發(fā)送數(shù)據(jù)FIFO 10構(gòu)成。該ATM通信設(shè)備1的接收/分隔部分由接收/信元分隔控制部分12、接收數(shù)據(jù)FIFO 13、用于向/從主機系統(tǒng)發(fā)送/接收數(shù)據(jù)的主機總線接口部分5、以及用于向/從物理層設(shè)備發(fā)送/接收ATM信元的物理層設(shè)備接口部分11構(gòu)成。
根據(jù)本發(fā)明第一個實施例所述的ATM通信設(shè)備1還含有一個位于發(fā)送數(shù)據(jù)FIFO 10和主機總線接口部分5之間、能為各VC保存有效負(fù)載的發(fā)送有效負(fù)載臨時存儲部分14。
如圖4所示,發(fā)送有效負(fù)載臨時存儲部分14含有多個有效負(fù)載FIFO 17。各有效負(fù)載FIFO 17被分別分配給不同的VC。發(fā)送有效負(fù)載臨時存儲部分14還含有一個FIFO控制部分18,它用于將FIFO分配給VC并管理已分配給VC的空閑有效負(fù)載FIFO 17。該部分14還含有用于控制有效負(fù)載數(shù)據(jù)流的第一和第二選擇器15和16。
圖4中的ATM通信設(shè)備1通過主機內(nèi)存4與主機CPU2和主機內(nèi)存3相連接。
圖5為本發(fā)明第一個實施例中發(fā)送參數(shù)存儲部分7的格式圖。如圖5所示,就一個VC而言,發(fā)送參數(shù)存儲部分7中保存有信元報頭信息31,信元報尾信息32,主機內(nèi)存有效負(fù)載存儲地址33以及主機內(nèi)存有效負(fù)載容量34。它與現(xiàn)有技術(shù)中的格式相同。
如圖5所示,除上述各項信息之外,本發(fā)明第一個實施例中的發(fā)送參數(shù)存儲部分7還保存多信元連續(xù)傳送允許/禁止信息35,它說明主機CPU2是否一次完成將與多個信元相對應(yīng)的發(fā)送有效負(fù)載從主機內(nèi)存3傳送到VC中;有效負(fù)載FIFO序號36,它說明是否有代表有效負(fù)載FIFO 17的指定序號被分配給VC;臨時存儲部分剩余有效負(fù)載計數(shù)37,它說明與有效負(fù)載FIFO 17(由有效負(fù)載FIFO號36表示)中當(dāng)前剩余有效負(fù)載相對應(yīng)的信元序號。
盡管在圖5中僅顯示了一個VC的存儲信元(存儲部分),但類似的存儲部分在所有其它VC的發(fā)送參數(shù)存儲部分7之中也有。
與現(xiàn)有技術(shù)相同,圖4所示的ATM通信設(shè)備1包括以下信號線VC序號信號線19,發(fā)送參數(shù)信號線20,DMA開始請求信號線21,有效負(fù)載數(shù)據(jù)信號線25,報頭/報尾數(shù)據(jù)信號線26,以及信元數(shù)據(jù)信號線27。該ATM通信設(shè)備1還包括一個FIFO控制信息信號線22,一選擇信息信號線23以及一選擇信息信號線24。
信元形成/發(fā)送控制部分6利用FIFO控制信息信號線22來請求FIFO控制部分18給VC分配一個有效負(fù)載FIFO 17,而且FIFO控制部分18還利用FIFO控制信息信號線22將分配給VC的有效負(fù)載FIFO 17的序號通知給信元形成/發(fā)送控制部分6。
信元形成/發(fā)送控制部分6利用選擇信息信號線23將用于把有效負(fù)載輸出目標(biāo)切換為另一個的命令通知給第一選擇器15。信元形成/發(fā)送控制部分6利用選擇信息信號線24將用于把有效負(fù)載輸出目標(biāo)切換為另一個的命令通知給第二選擇器16。
圖6為本發(fā)明第一個實施例的操作流程圖。以下將參考圖6和圖4及圖5對本發(fā)明第一個實施例的操作流程進(jìn)行信息說明。
在根據(jù)本發(fā)明第一個實施例所述的ATM通信設(shè)備1中,當(dāng)要對下一個信元進(jìn)行發(fā)送時,發(fā)送調(diào)度部分8將通過VC序號信號線19把信元的VC序號通知給信元形成/發(fā)送控制部分6(步驟S1“VC序號通知”)。
根據(jù)接收到的VC信元序號通知,信元形成/發(fā)送控制部分6將搜尋保存于發(fā)送參數(shù)存儲部分7之中的多信元連續(xù)傳送允許/禁止信息35,以檢查是否可以將與多個信元相對應(yīng)的有效負(fù)載連續(xù)傳送到VC(步驟S11“連續(xù)傳送VC?”)。
多信元連續(xù)傳送允許/禁止信息35由主機CPU2確定并被事先設(shè)置好。如果主機CPU2不想向VC連續(xù)傳送有效負(fù)載,則流程將轉(zhuǎn)向步驟S2,從而只用DMA-讀入對應(yīng)于一個信元的有效負(fù)載。
如果主機CPU2想要向VC連續(xù)傳送多個有效負(fù)載,信元形成/發(fā)送控制部分6將搜尋保存于發(fā)送參數(shù)存儲部分7之中的臨時存儲部分剩余有效負(fù)載計數(shù)37,以檢查用于VC的發(fā)送有效負(fù)載是否已經(jīng)被存入發(fā)送有效負(fù)載臨時存儲部分14(步驟S12“存儲了數(shù)據(jù)?”)。
如果其中存有有效負(fù)載,則流程將轉(zhuǎn)向步驟S17,以從發(fā)送有效負(fù)載臨時存儲部分14中讀出并發(fā)送對應(yīng)于一個信元的有效負(fù)載。
如果其中未保存有效負(fù)載,則信元形成/發(fā)送控制部分6將搜尋保存于發(fā)送參數(shù)存儲部分7之中的主機內(nèi)存有效負(fù)載容量34,以檢查與VC的多個信元相對應(yīng)的有效負(fù)載是否可以被一次DMA-讀入(各信元序號可被連續(xù)DMA-讀入)(步驟S13“連續(xù)數(shù)據(jù)?”)。如果確定在主機內(nèi)存3的連續(xù)地址區(qū)域中沒有保存與兩個信元(96字節(jié))或更多信元相對應(yīng)的有效負(fù)載,流程將轉(zhuǎn)向步驟S2,從而只用DMA-讀入對應(yīng)于一個信元的有效負(fù)載。
如果其中保存有與兩個或更多信元相對應(yīng)的有效負(fù)載,則信元形成/發(fā)送控制部分6將通過FIFO控制信息信號線22向FIFO控制部分18輸出一個存儲區(qū)域獲得請求,以通過將發(fā)送有效負(fù)載臨時存儲部分14中的一個有效負(fù)載FIFO 17分配給該VC來獲得一個存儲區(qū)域。根據(jù)接收到的請求,F(xiàn)IFO控制部分18通過FIFO控制信息信號線22將空閑有效負(fù)載FIFO 17序號通知給信元形成/發(fā)送控制部分6。如果沒有空閑有效負(fù)載FIFO 17,則FIFO控制部分18將把序號0通知給信元形成/發(fā)送控制部分6。
這個被通知的有效負(fù)載FIFO序號將作為有效負(fù)載FIFO序號36被保存在發(fā)送調(diào)度部分8中,以用于從發(fā)送有效負(fù)載臨時存儲部分14中讀出有效負(fù)載并發(fā)送它們(步驟S14“輸出存儲區(qū)域請求”)。
在步驟S14中,當(dāng)將有效負(fù)載FIFO 17分配給VC的工作完成時,信元形成/發(fā)送控制部分6會檢查保存在發(fā)送參數(shù)存儲部分7之中的有效負(fù)載FIFO序號36。如果此有效負(fù)載FIFO序號36不是0,則信元形成/發(fā)送控制部分6將確定與該VC相對應(yīng)的發(fā)送有效負(fù)載可以被保存在發(fā)送有效負(fù)載臨時存儲部分14中。然后流程轉(zhuǎn)向步驟S16,以進(jìn)行與多個信元相對應(yīng)的有效負(fù)載的連續(xù)DMA傳送。如果此有效負(fù)載FIFO序號36為0,并且沒有空閑有效負(fù)載FIFO 17分配給VC,則信元形成/發(fā)送控制部分6將確定該發(fā)送有效負(fù)載不能被保存在發(fā)送有效負(fù)載臨時存儲部分14中。然后流程轉(zhuǎn)向步驟S2,從而只用DMA-讀入對應(yīng)于一個信元的有效負(fù)載(步驟S15“是否保存數(shù)據(jù)?”)。
在步驟S15中,如果信元形成/發(fā)送控制部分6確定要執(zhí)行與多個信元相對應(yīng)的有效負(fù)載的連續(xù)DMA傳送。則部分6將通過DMA開始請求信號線21向主機總線接口部分5通知DMA讀入地址和DMA讀入數(shù)據(jù)長度,并輸出一個指令以從主機內(nèi)存3中用DMA-讀入發(fā)送有效負(fù)載。此時,信元形成/發(fā)送控制部分6將把保存于發(fā)送參數(shù)存儲部分7之中的主機內(nèi)存有效負(fù)載存儲地址33作為DMA讀入地址而通知給主機總線接口部分5。
在通知DMA讀入數(shù)據(jù)長度的過程中,信元形成/發(fā)送控制部分6將對可被連續(xù)DMA讀入信元(由步驟S12確定)的序號減一的信元序號和可以被保存在有效負(fù)載FIFO(有效負(fù)載FIFO的容量)之中的信元的序號進(jìn)行比較,并將上述兩信元序號中較小的一個加1,以作為可以被DMA-讀入的有效負(fù)載的信元序號通知給主機總線接口部分5。
信元形成/發(fā)送控制部分6將通過選擇信息信號線23和選擇信息信號線24,把用于說明當(dāng)前將要傳送的與多個信元相對應(yīng)的數(shù)據(jù)的信息以及作為命令的有效負(fù)載FIFO序號36通知給第一和第二選擇器15及16。第一和第二選擇器15及16利用命令解碼器將這些通知作為命令來處理。
第一和第二選擇器15及16通過選擇一條避開有效負(fù)載FIFO 17的路徑,直接將第一DMA-讀入發(fā)送有效負(fù)載中1個信元的有效負(fù)載發(fā)送到發(fā)送信元形成部分9。
對剩余的有效負(fù)載來說,第一選擇器15將其輸出切換到一條通往有效負(fù)載FIFO 17(由有效負(fù)載FIFO序號36指定)的路徑上,以將該有效負(fù)載保存在發(fā)送有效負(fù)載臨時存儲部分14中的有效負(fù)載FIFO 17內(nèi)(步驟S16“傳送有效負(fù)載至存儲區(qū)域”)。
在步驟S2中,與現(xiàn)有技術(shù)相同,與一個信元相對應(yīng)的有效負(fù)載被DMA-讀入。在這種情況下,信元形成/發(fā)送控制部分6通過選擇信息信號線23和選擇信息信號線24向發(fā)送有效負(fù)載臨時存儲部分14中的第一和第二選擇器15及16發(fā)出跳過有效負(fù)載FIFO 17的命令,并將有效負(fù)載直接送往發(fā)送信元形成部分9。
如果信元形成/發(fā)送控制部分6在步驟S12中確定從發(fā)送有效負(fù)載臨時存儲部分14中讀出并將要發(fā)送的是與一個信元相對應(yīng)的有效負(fù)載,則信元形成/發(fā)送控制部分6將發(fā)出命令以把第二選擇器16的輸入切換到由有效負(fù)載FIFO序號36指定的有效負(fù)載FIFO 17上,由此將有效負(fù)載從發(fā)送有效負(fù)載臨時存儲部分14發(fā)送到發(fā)送信元形成部分9。
在此之后,信元形成/發(fā)送控制部分6將對保存在發(fā)送參數(shù)存儲部分7之中的臨時存儲部分剩余有效負(fù)載計數(shù)37進(jìn)行減一操作(步驟S17“從存儲區(qū)域中讀出有效負(fù)載”)。
發(fā)送有效負(fù)載被送往發(fā)送信元形成部分9,與信元報頭信息31和信元報尾信息32一起組成一個發(fā)送信元。該信元被保存在發(fā)送數(shù)據(jù)FIFO 10中,然后通過物理層設(shè)備接口11被送往物理層設(shè)備(步驟S3“發(fā)送一個信元”)。
以下將對本發(fā)明第二個實施例進(jìn)行詳細(xì)說明。
圖7為根據(jù)本發(fā)明第二個實施例所述ATM通信設(shè)備的結(jié)構(gòu)框圖。
在圖4所示的第一個實施例中,發(fā)送有效負(fù)載臨時存儲部分14中的有效負(fù)載存儲區(qū)域由多個有效負(fù)載FIFO 17構(gòu)成。與之相反,在第二個實施例中使用了一個RAM41(隨機存取存儲器)來作為有效負(fù)載存儲區(qū)域。該RAM 41和用于管理RAM 41的緩沖器控制部分42一起構(gòu)成了一個發(fā)送有效負(fù)載臨時存儲部分14。第二個實施例中含有一個緩沖器控制信息信號線43,它取代了FIFO控制信息信號線22。由于剩余的其它結(jié)構(gòu)與第一個實施例中的結(jié)構(gòu)完全相同,故此略去說明。
圖8為本發(fā)明第二個實施例中的隨機存取存儲器經(jīng)初始化后的內(nèi)容結(jié)構(gòu)圖。
如圖8所示,RAM41的整個區(qū)域被劃分為多個具有相同結(jié)構(gòu)的空閑有效負(fù)載存儲塊,即,空閑有效負(fù)載存儲塊(1)51a,空閑有效負(fù)載存儲塊(2)51b,空閑有效負(fù)載存儲塊(3)51c,空閑有效負(fù)載存儲塊(4)51d,空閑有效負(fù)載存儲塊(5)51e及空閑有效負(fù)載存儲塊(6)51f。注意,以下將把具有與空閑有效負(fù)載存儲塊(1)51a相同格式的區(qū)域都稱為有效負(fù)載存儲塊。
當(dāng)具有相同長度的各有效負(fù)載存儲塊被分配給VC時,與一個信元相對應(yīng)的發(fā)送有效負(fù)載將被保存在各有效負(fù)載存儲塊中。用于相互邏輯鏈接多個有效負(fù)載存儲塊的前向鏈路地址被保存在全部有效負(fù)載存儲塊的末端。這些前向鏈路地址將作為所謂的鏈接指針來使用。
前向鏈路地址(1)52a,前向鏈路地址(2)52b,前向鏈路地址(3)52c,前向鏈路地址(4)52d,前向鏈路地址(5)52e及前向鏈路地址(6)52f分別保存在空閑有效負(fù)載存儲塊(1)51a,空閑有效負(fù)載存儲塊(2)51b,空閑有效負(fù)載存儲塊(3)51c,空閑有效負(fù)載存儲塊(4)51d,空閑有效負(fù)載存儲塊(5)51e及空閑有效負(fù)載存儲塊(6)51f之中。
前向鏈路地址(1)52a指定了空閑有效負(fù)載存儲塊(2)51b的起始地址;前向鏈路地址(2)52b指定了空閑有效負(fù)載存儲塊(3)51c的起始地址;前向鏈路地址(3)52c指定了空閑有效負(fù)載存儲塊(4)51d的起始地址;前向鏈路地址(4)52d指定了空閑有效負(fù)載存儲塊(5)51e的起始地址;前向鏈路地址(6)52f指定了空閑有效負(fù)載存儲塊(6)51f的起始地址,因此將空閑有效負(fù)載存儲塊(1)51a到空閑有效負(fù)載存儲塊(6)51f邏輯鏈接起來。其結(jié)果是形成了一個空閑有效負(fù)載存儲塊鏈53a。
作為空閑有效負(fù)載存儲塊鏈53a起始有效負(fù)載存儲塊的空閑有效負(fù)載存儲塊(1)51a,它的起始地址將作為空閑有效負(fù)載存儲塊鏈起始地址54而被保存在緩沖器控制部分42中,以用于建立一個新的鏈接。
與空閑有效負(fù)載存儲塊鏈53a的末端相鏈接的空閑有效負(fù)載存儲塊(6)51f,它的起始地址將作為空閑有效負(fù)載存儲塊鏈末端地址59而被保存在緩沖器控制部分42中,以用于建立一個新的鏈接。
初始化之后,RAM 41中的有效負(fù)載存儲塊未被分配給任何VC。
在發(fā)送一個有效負(fù)載的過程中,根據(jù)將要建立的一個新鏈接,有效負(fù)載存儲塊被從空閑有效負(fù)載存儲塊鏈53a中提取出來,并且這個提取出來的有效負(fù)載存儲塊通過利用前向鏈路地址被鏈接以形成一個更大的有效負(fù)載存儲區(qū)域(有效負(fù)載存儲塊鏈)。該區(qū)域被分配給VC以用作有效負(fù)載的臨時存儲區(qū)域。
圖9為本發(fā)明第二個實施例中的隨機隨取存儲器在其部分隨機存儲器被分配給發(fā)送VC時的內(nèi)容結(jié)構(gòu)圖。
以下將參考圖9對RAM 41在空閑有效負(fù)載存儲塊鏈53a的四個有效負(fù)載存儲塊被分配給VC 1情況下的結(jié)構(gòu)進(jìn)行詳細(xì)說明。
參考圖9,空閑有效負(fù)載存儲塊鏈53a的四個空閑有效負(fù)載存儲塊(從第一塊到第四塊)分別為空閑有效負(fù)載存儲塊(1)51a,空閑有效負(fù)載存儲塊(2)51b,空閑有效負(fù)載存儲塊(3)51c及空閑有效負(fù)載存儲塊(4)51d。它們被從空閑有效負(fù)載存儲塊鏈53a的起始處分開,并分別被分配為VC 1有效負(fù)載存儲塊(1)55a,VC 1有效負(fù)載存儲塊(2)55b,VC 1有效負(fù)載存儲塊(3)55c及VC 1有效負(fù)載存儲塊(4)55d。這些塊將用作VC 1的發(fā)送有效負(fù)載存儲區(qū)域。
在VC 1有效負(fù)載存儲塊(1)55a,VC 1有效負(fù)載存儲塊(2)55b,VC 1有效負(fù)載存儲塊(3)55c及VC 1有效負(fù)載存儲塊(4)55d中分別保存有前向鏈路地址(1)56a,前向鏈路地址(2)56b,前向鏈路地址(3)56c及前向鏈路地址(4)56d,它們被保持而無需重寫圖8所示前向鏈路地址(1)52a,前向鏈路地址(2)52b,前向鏈路地址(3)52c,前向鏈路地址(4)52d的數(shù)值。這些前向鏈路地址與VC 1有效負(fù)載存儲塊(1)55a,VC 1有效負(fù)載存儲塊(2)55b,VC 1有效負(fù)載存儲塊(3)55c及VC 1有效負(fù)載存儲塊(4)55d邏輯鏈接,并因此形成一個VC 1有效負(fù)載存儲塊鏈57。
空閑有效負(fù)載存儲塊鏈起始地址54從圖8中空閑有效負(fù)載存儲塊鏈53a開始被第五空閑有效負(fù)載存儲塊的起始地址(即空閑有效負(fù)載存儲塊(5)51e的起始地址)所替換,因此形成一個新的空閑有效負(fù)載存儲塊鏈53b。在空閑有效負(fù)載存儲塊鏈53b中,空閑有效負(fù)載存儲塊(5)51e和空閑有效負(fù)載存儲塊(6)51f相互邏輯鏈接并被保存。
在空閑有效負(fù)載存儲塊鏈起始地址54被替換之前,它先被通知給信元形成/發(fā)送控制部分6,并作為用于說明VC 1有效負(fù)載存儲塊鏈57起始地址的VC 1有效負(fù)載存儲塊鏈起始地址58而被保存進(jìn)發(fā)送參數(shù)存儲部分7之中。
參考圖9,當(dāng)一個發(fā)送有效負(fù)載被從VC 1有效負(fù)載存儲塊(1)55a中讀出,并且已不需要VC 1有效負(fù)載存儲塊(1)55a時,與空閑有效負(fù)載存儲塊鏈53b末端相鏈接的空閑有效負(fù)載存儲塊(6)51f的前向鏈路地址(6)52f將被用于指定VC 1有效負(fù)載存儲塊(1)55a起始地址的VC 1有效負(fù)載存儲塊鏈起始地址58所替換。然后,VC 1有效負(fù)載存儲塊(1)55a將被鏈接到空閑有效負(fù)載存儲塊鏈53b的末端。其結(jié)果是,VC 1有效負(fù)載存儲塊(1)55a被返回到空閑有效負(fù)載存儲塊鏈53b。
此時,空閑有效負(fù)載存儲塊鏈末端地址59將被代表VC 1有效負(fù)載存儲塊鏈起始地址58的地址所替換。
接下來,由前向鏈路地址(1)表示的地址將被作為VC 1有效負(fù)載存儲塊鏈起始地址58而通知給信元形成/發(fā)送控制部分6,并且被保存在發(fā)送參數(shù)存儲部分7中。
一般來說,當(dāng)對剩余VC進(jìn)行與對VC 1有效負(fù)載存儲塊鏈57所進(jìn)行的分配/返還相同的處理時,在RAM 41中將出現(xiàn)多個分配給各VC的有效負(fù)載存儲塊鏈。
圖10為本發(fā)明第二個實施例中發(fā)送參數(shù)存儲部分7的格式圖。
與圖5所示第一個實施例中的發(fā)送參數(shù)存儲部分7相同,就一個VC而言,發(fā)送參數(shù)存儲部分7中保存有信元報頭信息31,信元報尾信息32,主機內(nèi)存有效負(fù)載存儲地址33以及主機內(nèi)存有效負(fù)載容量34,多信元連續(xù)傳送允許/禁止信息35以及臨時存儲部分剩余有效負(fù)載計數(shù)37。
在第一個實施例中,除上述各信息之外,在發(fā)送參數(shù)存儲部分7中還保存有有效負(fù)載FIFO序號36,它代表分配給VC的有效負(fù)載FIFO17的指定序號;與此相反,在第二個實施例中,由于RAM 41中的存儲塊鏈作為存儲區(qū)域而取代了FIFO,則用于說明RAM 41中有效負(fù)載存儲塊鏈起始地址的有效負(fù)載存儲指針61將被保存(見圖10)。
更具體地說,就VC 1而言,圖9所示的VC 1有效負(fù)載存儲塊鏈起始地址58保存在有效負(fù)載存儲指針61中。盡管在圖10中僅顯示了一個VC的存儲信元(存儲部分),但類似的存儲部分在所有其它VC的發(fā)送參數(shù)存儲部分7之中也有。
以下將參考圖7到圖10以及圖6對本發(fā)明第二個實施例的操作進(jìn)行詳細(xì)說明。
除步驟S14到S17以及步驟2之外,根據(jù)本發(fā)明第二個實施例所述ATM通信設(shè)備的操作流程與圖6所示第一個實施例的操作流程完全相同。
第一個實施例中,在步驟S14中,信元形成/發(fā)送控制部分6將發(fā)送有效負(fù)載臨時存儲部分14中的有效負(fù)載FIFO 17分配給這個VC,以獲得發(fā)送有效負(fù)載的存儲區(qū)域。而在第二個實施例中,RAM 41中的部分空閑有效負(fù)載存儲塊鏈53被提取出來,以獲得發(fā)送有效負(fù)載存儲區(qū)域。
另外,在第二個實施例中,信元形成/發(fā)送控制部分6通過緩沖器控制信息信號線43將信元號(它由對可連續(xù)DMA傳送的信元號減一而獲得,并在步驟S13中得到確定)通知給緩沖器控制部分42,因此獲得了一個存儲區(qū)域。根據(jù)接收到的這個通知,緩沖器控制部分42將從空閑有效負(fù)載存儲塊鏈53的起始位置提取出一個與所請求信元號相對應(yīng)的空閑有效負(fù)載存儲塊51,并通過緩沖器控制信息信號線43將有效負(fù)載存儲塊鏈中的有效負(fù)載塊號及起始地址通知給信元形成/發(fā)送控制部分6。
如果此空閑有效負(fù)載存儲塊號小于請求號,并且不是所有塊的請求號都預(yù)備作為VC的有效負(fù)載存儲塊,則可預(yù)備作為有效負(fù)載存儲塊的塊號將被通知。如果沒有有效負(fù)載存儲塊可被預(yù)備,則“0”將被通知為該有效負(fù)載存儲塊的塊號。
被通知的有效負(fù)載存儲塊計數(shù)及空閑有效負(fù)載存儲塊鏈起始地址被分別作為臨時存儲部分剩余有效負(fù)載計數(shù)37和有效負(fù)載存儲指針61而保存在發(fā)送參數(shù)存儲部分7中。緩沖器控制部分42含有一個計數(shù)器,它對空閑有效負(fù)載存儲塊號進(jìn)行管理。
一個有效負(fù)載存儲塊鏈可以通過建立一個新的空閑有效負(fù)載存儲塊鏈的鏈接而被提取出來。
更具體地說,在圖8所示RAM 41的結(jié)構(gòu)中,當(dāng)有四個有效負(fù)載存儲塊被請求用于VC 1時,緩沖器控制部分42將通過緩沖器控制信息信號線43,把當(dāng)前空閑有效負(fù)載存儲塊鏈起始地址54作為圖9中VC 1的有效負(fù)載存儲塊鏈起始地址58而通知給信元形成/發(fā)送控制部分6。然后,信元形成/發(fā)送控制部分6將從空閑有效負(fù)載存儲塊鏈開始,把保存于第四空閑有效負(fù)載存儲塊(4)51d中的前向鏈路地址(4)52d保存在緩沖器控制部分42中,以作為新的空閑有效負(fù)載存儲塊鏈起始地址54。經(jīng)過上述操作,用于VC 1的有效負(fù)載存儲塊鏈被提取出來,而且RAM 41將具有如圖9所示的結(jié)構(gòu)(步驟S14)。
當(dāng)該有效負(fù)載存儲塊鏈在步驟S14中被分配給VC時,信元形成/發(fā)送控制部分6將搜尋臨時存儲部分剩余有效負(fù)載計數(shù)37(在步驟S14中獲得,以用于VC的有效負(fù)載存儲塊號)。如果臨時存儲部分剩余有效負(fù)載計數(shù)37不為0,信元形成/發(fā)送控制部分6將確定用于VC的有效負(fù)載數(shù)據(jù)可以被保存在發(fā)送有效負(fù)載臨時存儲部分14中。然后流程轉(zhuǎn)向步驟S16,以對與多個信元相對應(yīng)的有效負(fù)載進(jìn)行連續(xù)DMA傳送。
如果臨時存儲部分剩余有效負(fù)載計數(shù)37為0,而且沒有有效負(fù)載數(shù)據(jù)可以被保存在發(fā)送有效負(fù)載臨時存儲部分14中,則流程將轉(zhuǎn)向步驟S2,從而只用DMA讀入與一個信元相對應(yīng)的有效負(fù)載。
如果信元形成/發(fā)送控制部分6在步驟S15中確定被執(zhí)行的是與多個信元相對應(yīng)的有效負(fù)載連續(xù)DMA傳送,則部分6將通過DMA起始請求信號線21,向主機總線接口部分5通知DMA讀入地址及DMA讀入數(shù)據(jù)的長度,并從主機內(nèi)存3輸出一個指令以DMA-讀入發(fā)送有效負(fù)載。
保存在發(fā)送參數(shù)存儲部分7中的主機內(nèi)存有效負(fù)載存儲地址33將作為DMA讀入地址而被通知。作為DMA讀入數(shù)據(jù)長度的數(shù)值(由保存在臨時存儲部分剩余有效負(fù)載計數(shù)37中的數(shù)值加一而獲得)將被送至主機總線接口部分5。
另外,為了給DMA讀入有效負(fù)載指定一個存儲區(qū)域,信元形成/發(fā)送控制部分6將通過緩沖器控制信息信號線43把有效負(fù)載存儲指針通知給緩沖器控制部分42。信元形成/發(fā)送控制部分6通過選擇信息信號線23和選擇信息信號線24向第一和第二選擇器15及16通知表示與多個信元相對應(yīng)的有效負(fù)載當(dāng)前將要傳送的命令信息。
第一和第二選擇器15及16通過一條可避開緩沖器控制部分42的路徑,向發(fā)送信元形成部分9直接發(fā)送第一1-信元的DMA讀入有效負(fù)載。
對剩余的有效負(fù)載,第一選擇器15將其輸出切換到一條通往緩沖器控制部分42的路徑上,以通過緩沖器控制部分42將該有效負(fù)載保存在發(fā)送有效負(fù)載臨時存儲部分14的RAM 41中。此時,緩沖器控制部分42將從由有效負(fù)載存儲指針61指定的地址開始,把有效負(fù)載順序存入有效負(fù)載存儲塊鏈(步驟S16)。
在步驟S2中,與現(xiàn)有技術(shù)相同,一與一個信元相對應(yīng)的有效負(fù)載被DMA讀入。在這種情況下,信元形成/發(fā)送控制部分6通過選擇信息信號線23和選擇信息信號線24向發(fā)送有效負(fù)載臨時存儲部分14中的第一和第二選擇器15及16發(fā)出跳過緩沖器控制部分42的命令,并將有效負(fù)載直接送往發(fā)送信元形成部分9。
如果信元形成/發(fā)送控制部分6在步驟S12中確定從發(fā)送有效負(fù)載臨時存儲部分14中讀出并將要發(fā)送的是與一個信元相對應(yīng)的有效負(fù)載,則信元形成/發(fā)送控制部分6將向緩沖器控制部分42通知有效負(fù)載存儲指針61。
根據(jù)上述操作,緩沖器控制部分42將在有效負(fù)載存儲塊中從由有效負(fù)載存儲指針61指定的有效負(fù)載存儲塊鏈開始,讀出1個信元的有效負(fù)載。與此同時,信元形成/發(fā)送控制部分6通過選擇信息信號線24向第二選擇器16發(fā)出一個命令,以將輸入切換到緩沖器控制部分42一側(cè),進(jìn)而將1-信元的有效負(fù)載從發(fā)送有效負(fù)載臨時存儲部分14送至發(fā)送信元形成部分9中。
位于開始處的1-信元有效負(fù)載(讀入時已經(jīng)不需要)被邏輯鏈接至空閑有效負(fù)載存儲塊鏈53的末端。其結(jié)果使得該存儲塊被釋放。
接下來,信元形成/發(fā)送控制部分6將對保存于發(fā)送參數(shù)存儲部分7之中的臨時存儲部分剩余有效負(fù)載計數(shù)37減一(步驟S17)。
發(fā)送有效負(fù)載被送往發(fā)送信元形成部分9,與信元報頭31和信元報尾32一起組成一個發(fā)送信元。該信元被保存在發(fā)送數(shù)據(jù)FIFO 10中,然后通過物理層設(shè)備接口11被送往物理層設(shè)備(步驟S3)。
在第二個實施例中,只獲得了RAM 41的一個區(qū)域(它與將被要從主機內(nèi)存3中DMA讀入的有效負(fù)載相對應(yīng)),而且它在不需要時將被釋放。因此,除具有與上述第一個實施例相同的效果以外,第二個實施例還能夠有效地利用發(fā)送有效負(fù)載臨時存儲部分14的存儲區(qū)域。
以下將對本發(fā)明的第三個實施例進(jìn)行詳細(xì)說明。
本發(fā)明第三個實施例在發(fā)送參數(shù)存儲部分7的內(nèi)容結(jié)構(gòu)方面與圖7所示第二個實施例有所不同。由于第三個實施例的其它剩余結(jié)構(gòu)與第二個實施例完全相同,故此略去說明。
圖11為本發(fā)明第三個實施例中發(fā)送參數(shù)存儲部分7的內(nèi)容結(jié)構(gòu)圖。
與圖10所示第二個實施例中的發(fā)送參數(shù)存儲部分7相類似,就一個VC而言,在第三個實施例的發(fā)送參數(shù)存儲部分7中保存有信元報頭信息31,信元報尾信息32,主機內(nèi)存有效負(fù)載存儲地址33以及主機內(nèi)存有效負(fù)載容量34,多信元連續(xù)傳送允許/禁止信息35,臨時存儲剩余有效負(fù)載計數(shù)37以及有效負(fù)載存儲指針61。
除上述各信息之外,在第三個實施例的發(fā)送參數(shù)存儲部分7中還保存有一個作為參考值的有效負(fù)載讀入起始門限71。當(dāng)留在發(fā)送有效負(fù)載臨時存儲部分14中有效負(fù)載的序號等于或小于一個作為參考值的預(yù)定數(shù)值時,即使有效負(fù)載讀入起始門限71不是0,一個新的有效負(fù)載也可被從主機內(nèi)存3中用DMA讀入。該有效負(fù)載讀入起始門限71由主機CPU 2來設(shè)定。
發(fā)送參數(shù)存儲部分7還保存有一個有效負(fù)載存儲鏈末端指針72,它用于為VC保存有效負(fù)載存儲塊鏈中最末有效負(fù)載存儲塊的起始地址。
圖12為本發(fā)明第三個實施例的操作流程圖。以下將參考圖12以及圖7和圖11對本發(fā)明第三個實施例的操作流程進(jìn)行信息說明。第三個實施例在步驟S12到S17的操作上與第二個實施例有所不同。更具體地說,第三個實施例額外執(zhí)行了下列操作。
在從發(fā)送有效負(fù)載臨時存儲部分14中讀出并發(fā)送一個有效負(fù)載的過程中,即使留在發(fā)送有效負(fù)載臨時存儲部分14中的有效負(fù)載的序號不為0,有效負(fù)載也會被從主機內(nèi)存3中DMA讀入,并且如果該有效負(fù)載的序號等于或小于一個預(yù)定數(shù)值,它將被增加為一個臨時保存的有效負(fù)載。由于其它操作過程與第二個實施例中的過程完全相同,故此略去說明。
在第三個實施例中,如果信元形成/發(fā)送控制部分6搜尋保存于發(fā)送參數(shù)存儲部分7之中的臨時存儲部分剩余有效負(fù)載計數(shù)37,并在步驟S12中確定該有效負(fù)載已被保存。則信元形成/發(fā)送控制部分6將選擇一個操作,即,從發(fā)送有效負(fù)載臨時存儲部分14讀出并發(fā)送與一個信元相對應(yīng)的有效負(fù)載。然后流程轉(zhuǎn)向步驟S21。
在步驟S21中,信元形成/發(fā)送控制部分6將對保存在發(fā)送參數(shù)存儲部分7之中的有效負(fù)載讀入起始閾值71和臨時存儲部分剩余有效負(fù)載計數(shù)37進(jìn)行比較。如果信元形成/發(fā)送控制部分6確定臨時存儲部分剩余有效負(fù)載計數(shù)37大于有效負(fù)載讀入起始閾值71,流程將轉(zhuǎn)向步驟S17,進(jìn)而從發(fā)送有效負(fù)載臨時存儲部分14中讀出與一個信元相對應(yīng)的有效負(fù)載,并對其進(jìn)行發(fā)送而不另外增加任何其它的有效負(fù)載。
如果臨時存儲部分剩余有效負(fù)載計數(shù)37等于或小于有效負(fù)載讀入起始閾值71,則流程轉(zhuǎn)向步驟S22,以增加一個有效負(fù)載(步驟S21“等于或小于閾值?”)。
如果信元形成/發(fā)送控制部分6在步驟S21中確定需要增加一個有效負(fù)載,則信元形成/發(fā)送控制部分6將搜尋保存在發(fā)送有效負(fù)載存儲部分之中的主機內(nèi)存有效負(fù)載容量34,以檢查可以一起DMA讀入多少用于VC的有效負(fù)載,即,可被DMA讀入的有效負(fù)載與多少個信元相對應(yīng)。如果對應(yīng)于一個信元(48字節(jié))或多個信元的有效負(fù)載數(shù)據(jù)未被保存在主機內(nèi)存3的連續(xù)地址區(qū)域中,流程將轉(zhuǎn)向步驟S17,進(jìn)而從發(fā)送有效負(fù)載臨時存儲部分14中讀出對應(yīng)于一個信元的有效負(fù)載,并對其進(jìn)行發(fā)送而不另外增加任何其它的有效負(fù)載。
如果在主機內(nèi)存3的連續(xù)地址區(qū)域中保存有對應(yīng)于一個信元(48字節(jié))或多個信元的連續(xù)有效負(fù)載數(shù)據(jù),而且與多個信元相對應(yīng)的有效負(fù)載可以在一個總線周期內(nèi)被DMA讀入,則流程轉(zhuǎn)向步驟S23以DMA讀入有效負(fù)載,并將它們增加/保存在發(fā)送有效負(fù)載臨時存儲部分14中(步驟S22“連續(xù)數(shù)據(jù)?”)。
如果信元形成/發(fā)送控制部分6在步驟S21中確定在發(fā)送有效負(fù)載臨時存儲部分14中已經(jīng)增加/保存了有效負(fù)載,則信元形成/發(fā)送控制部分6將通過緩沖器控制信息信號線43,把信元(它與要連續(xù)DMA一讀入的有效負(fù)載相對應(yīng),并由步驟S22確定)的序號通知給緩沖器控制部分42,并輸出一個有效負(fù)載存儲塊增加請求。此外,信元形成/發(fā)送控制部分6還通過緩沖器控制信息信號線43把有效負(fù)載存儲鏈末端指針72通知給緩沖器控制部分42。
根據(jù)所接收到的請求,緩沖器控制部分42將從空閑有效負(fù)載存儲塊鏈53的起始位置提取出一個與所請求信元號相對應(yīng)的空閑有效負(fù)載存儲塊51,并將此塊鏈接到用于VC的有效負(fù)載存儲塊鏈的末端。
一旦完成鏈接工作,緩沖器控制部分42將通過緩沖器控制信息信號線43,把上述操作中提取出的存儲塊的序號以及位于有效負(fù)載存儲塊鏈末端上的有效負(fù)載存儲塊的起始地址通知給信元形成/發(fā)送控制部分6。
如果此空閑有效負(fù)載存儲塊號小于請求號,并且所有與請求號相對應(yīng)的塊都未被預(yù)備作為VC的有效負(fù)載存儲塊,則可預(yù)備作為有效負(fù)載存儲塊的塊號將被通知。如果沒有有效負(fù)載存儲塊可被預(yù)備,則“0”將被通知為該有效負(fù)載存儲塊的塊號。
信元形成/發(fā)送控制部分6向臨時存儲部分剩余有效負(fù)載計數(shù)37增加被通知了的有效負(fù)載存儲塊號,并保存位于有效負(fù)載存儲塊鏈末端上的有效負(fù)載存儲塊的起始地址,以作為有效負(fù)載存儲鏈末端指針72。
以下將參考圖9以及圖7、圖11和圖12,對圖9所示本發(fā)明第三個實施例中RAM 41的結(jié)構(gòu)進(jìn)行詳細(xì)說明。
有效負(fù)載存儲鏈末端指針72代表了VC 1有效負(fù)載存儲塊(4)55d的起始地址。緩沖器控制部分42可識別出當(dāng)前VC 1有效負(fù)載存儲塊鏈57中的末端有效負(fù)載存儲塊,并將其作為VC 1有效負(fù)載存儲塊(4)55d。其結(jié)果是,緩沖器控制部分42將VC 1有效負(fù)載存儲塊(4)55d中的前向鏈路地址(4)56d替換為當(dāng)前空閑有效負(fù)載存儲塊鏈起始地址54。
在這種情況下,如果信元形成/發(fā)送控制部分6所請求的是與一個信元相對應(yīng)的有效負(fù)載存儲塊,則緩沖器控制部分42將把當(dāng)前空閑有效負(fù)載存儲塊鏈起始地址54替換為由空閑有效負(fù)載存儲塊(5)51e中的前向鏈路地址(5)52e所代表的地址。根據(jù)這個操作,空閑有效負(fù)載存儲塊(5)51e被從空閑有效負(fù)載存儲塊鏈中提取出來,并另外鏈接至VC 1有效負(fù)載存儲塊鏈57。
最后,緩沖器控制部分42將通過緩沖器控制信息信號線43,把空閑有效負(fù)載存儲塊(5)51e(它已經(jīng)成為VC 1有效負(fù)載存儲塊鏈57末端的有效負(fù)載存儲塊)的起始地址通知給信元形成/發(fā)送控制部分6。
根據(jù)所接收到的通知,信元形成/發(fā)送控制部分6將保存空閑有效負(fù)載存儲塊(5)51e的起始地址,以作為一個新的有效負(fù)載存儲鏈末端指針72(步驟S23“輸出存儲區(qū)域請求”)。
如果在步驟S23中新獲得的有效負(fù)載存儲塊的序號為0,流程將轉(zhuǎn)向步驟S17,進(jìn)而讀出當(dāng)前保存于發(fā)送有效負(fù)載臨時存儲部分14之中有效負(fù)載的一個信元的有效負(fù)載數(shù)據(jù),并對其進(jìn)行發(fā)送而不另外增加/保存任何其它的有效負(fù)載。
當(dāng)與一個或多個信元相對應(yīng)的有效負(fù)載被獲得時,流程轉(zhuǎn)向步驟S25,以從主機內(nèi)存3中DMA讀入有效負(fù)載,并將它們增加/保存在發(fā)送有效負(fù)載臨時存儲部分14中(步驟S24“是否能夠保存有效負(fù)載?”)。
如果信元形成/發(fā)送控制部分6在步驟S24中確定要執(zhí)行有效負(fù)載的DMA傳送。則部分6將通過DMA開始請求信號線21向主機總線接口部分5通知DMA讀入地址和DMA讀入數(shù)據(jù)長度,并輸出一個指令以從主機內(nèi)存3中DMA-讀入發(fā)送有效負(fù)載。
保存在發(fā)送調(diào)度部分8中的主機內(nèi)存有效負(fù)載存儲地址33將被通知作為DMA讀入地址。作為DMA讀入數(shù)據(jù)長度的有效負(fù)載存儲塊數(shù)(在步驟S23中新近獲得)將被送至主機總線接口部分5。
信元形成/發(fā)送控制部分6通過選擇信息信號線23把作為命令的信息通知給第一選擇器15,該命令信息代表了當(dāng)前將要進(jìn)行的、向發(fā)送有效負(fù)載臨時存儲部分14增加有效負(fù)載的傳送。第一選擇器15將其輸出切換到一條通往緩沖器控制部分42的路徑上,從而通過緩沖器控制部分42將有效負(fù)載保存在發(fā)送有效負(fù)載臨時存儲部分14的RAM 41中。
此時,空閑有效負(fù)載存儲塊鏈起始地址54在步驟S23所進(jìn)行的替換之前,先被臨時保存在緩沖器控制部分42中,而且有效負(fù)載也從此地址開始,被順序保存在有效負(fù)載存儲塊鏈中(步驟S25“傳送有效負(fù)載至存儲區(qū)域”)。
參考圖12,步驟S25和S17中的處理過程是順序進(jìn)行的。但是,如果RAM 41采用可同時讀寫的雙端RAM,并且用于RAM 41的讀寫電路獨立使用于緩沖器控制部分42之中,則步驟S25和S17可被同時執(zhí)行。這種結(jié)構(gòu)也包含在本發(fā)明的范圍之內(nèi)。
根據(jù)本發(fā)明第三個實施例所述的ATM通信設(shè)備除了具有第二個實施例的效果以外,還具有以下效果由于有效負(fù)載總是保存于發(fā)送有效負(fù)載臨時存儲部分14之中,使得除用于VC的第一個信元以外的所有其它有效負(fù)載總能被內(nèi)部讀出和發(fā)送。基于這個原因,除第一個信元以外,所有其它信元的信元發(fā)送中的延遲可被減少。
權(quán)利要求
1.一種ATM通信設(shè)備,其特征在于包括發(fā)送調(diào)度裝置,它用于確定將要發(fā)送的虛擬信道;信元報頭存儲裝置,它用于保存發(fā)送信元的報頭信息;信元報尾存儲裝置,它用于保存發(fā)送信元的報尾信息;有效負(fù)載讀入裝置,它用于從主機內(nèi)存中讀出有效負(fù)載數(shù)據(jù);以及發(fā)送信元形成裝置,它用于將從主機內(nèi)存中讀出的有效負(fù)載數(shù)據(jù)、信元報頭信息及信元報尾信息組成一個發(fā)送信元。所述ATM通信設(shè)備能夠為一給定虛擬信道而從主機內(nèi)存中讀出有效負(fù)載數(shù)據(jù),在發(fā)送調(diào)度裝置確定對給定虛擬信道的發(fā)送時,它可將有效負(fù)載數(shù)據(jù)、信元報頭信息及信元報尾信息組成一個發(fā)送信元,并將該信元發(fā)送到物理層設(shè)備上。所述ATM通信設(shè)備,其特征在于還包括發(fā)送有效負(fù)載存儲裝置,它用于以虛擬信道為單位來保存與多個信元相對應(yīng)的有效負(fù)載;有效負(fù)載存儲位置存儲裝置,它用于保存在所述發(fā)送有效負(fù)載存儲裝置之中存儲的各有效負(fù)載的位置信息;被存儲有效負(fù)載計數(shù)存儲裝置,它用于保存代表有效負(fù)載當(dāng)前所在存儲區(qū)域的信息,而該區(qū)域則由與指定信元號相對應(yīng)的有效負(fù)載存儲位置來表示。其中當(dāng)所述發(fā)送調(diào)度裝置確定一個發(fā)送虛擬信道,并且如果在發(fā)送有效負(fù)載存儲裝置中沒有可用于該虛擬信道的有效負(fù)載時,與多個信元相對應(yīng)的有效負(fù)載數(shù)據(jù)將被從所述主機內(nèi)存中讀出。然后,對應(yīng)于第一信元的有效負(fù)載、相應(yīng)的信元報頭及信元報尾將被組成一個發(fā)送信元。該信元被發(fā)送到物理層設(shè)備上。而與第二及其它順序信元相對應(yīng)的有效負(fù)載則被臨時保存在上述發(fā)送有效負(fù)載存儲裝置中。當(dāng)上述發(fā)送調(diào)度裝置將虛擬信道確定為下一個發(fā)送虛擬信道,并且如果在上述發(fā)送有效負(fù)載存儲裝置中存有有效負(fù)載時,該有效負(fù)載將被從上述發(fā)送有效負(fù)載存儲裝置中讀出。然后,該有效負(fù)載、對應(yīng)的信元報頭信息及信元報尾信息將被組成一個發(fā)送信元。該信元被發(fā)送到物理層設(shè)備上。
2.如權(quán)利要求1所述的設(shè)備,其特征在于當(dāng)上述發(fā)送調(diào)度裝置確定一虛擬信道時,即使用于該發(fā)送虛擬信道的有效負(fù)載序數(shù)(保存在發(fā)送有效負(fù)載存儲裝置中)不為0但未超過一預(yù)定閾值,有效負(fù)載數(shù)據(jù)也可以被從主機內(nèi)存中新近讀出,并被增加/存儲到上述發(fā)送有效負(fù)載存儲裝置中。
全文摘要
在一種ATM通信設(shè)備中,當(dāng)發(fā)送調(diào)度部分確定一個發(fā)送虛擬信道時,如果在發(fā)送有效負(fù)載臨時存儲部分中沒有可用于該虛擬信道的有效負(fù)載,則與多個信元相對應(yīng)的有效負(fù)載數(shù)據(jù)將被從主機內(nèi)存中讀出。對應(yīng)于一第一信元的有效負(fù)載、相應(yīng)的信元報頭及信元報尾將被組成一個發(fā)送信元,然后,該信元被發(fā)送到物理層設(shè)備上。而與第二及其它順序信元相對應(yīng)的有效負(fù)載則被臨時保存在發(fā)送有效負(fù)載存儲裝置中。
文檔編號H04Q3/00GK1202774SQ9810224
公開日1998年12月23日 申請日期1998年6月9日 優(yōu)先權(quán)日1997年6月10日
發(fā)明者片柳智志 申請人:日本電氣株式會社