專利名稱:釋放被無效占用的資源的方法和存儲轉(zhuǎn)發(fā)裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及通信領(lǐng)域,尤其涉及存儲轉(zhuǎn)發(fā)技術(shù)。
背景技術(shù):
在數(shù)據(jù)通信的芯片中通常使用如圖1所示的“存儲-轉(zhuǎn)發(fā)”的結(jié)構(gòu),該結(jié)構(gòu)包括接收管理模塊、報文數(shù)據(jù)的緩存模塊、轉(zhuǎn)發(fā)處理模塊和發(fā)送管理模塊。所述接收管理模塊包括至少一個接收端口,所述發(fā)送管理模塊包括至少一個輸出端口,以及對應(yīng)所述輸出端口的輸出隊列。
在進(jìn)行數(shù)據(jù)通信時,所述接收管理模塊通過各個接收端口將報文數(shù)據(jù)完整地接收下來,然后向報文數(shù)據(jù)緩存模塊申請相應(yīng)的緩存資源,如果不能夠申請到相應(yīng)的緩存資源,則將接收到的報文數(shù)據(jù)丟棄掉;如果能夠申請到相應(yīng)的緩存資源,則所述接收管理模塊會獲得存儲接收到的報文數(shù)據(jù)的存儲地址,并按照所述存儲地址將接收到的數(shù)據(jù)存儲到報文數(shù)據(jù)緩存模塊中,同時將所述存儲地址與報文數(shù)據(jù)的部分內(nèi)容(包括位于報文數(shù)據(jù)頭部的“目的地址”信息與“源地址”信息等)作為轉(zhuǎn)發(fā)處理信息,發(fā)送給所述轉(zhuǎn)發(fā)處理模塊;所述轉(zhuǎn)發(fā)處理模塊對轉(zhuǎn)發(fā)處理信息進(jìn)行分析處理,并根據(jù)分析結(jié)果確定報文數(shù)據(jù)的轉(zhuǎn)發(fā)信息,包括報文數(shù)據(jù)是否需要丟棄,或是轉(zhuǎn)發(fā)到哪個輸出端口等。當(dāng)所述轉(zhuǎn)發(fā)處理模塊得出報文數(shù)據(jù)的轉(zhuǎn)發(fā)信息后,將根據(jù)所述轉(zhuǎn)發(fā)信息將報文數(shù)據(jù)對應(yīng)的存儲地址信息寫入到每個輸出端口對應(yīng)的“先進(jìn)先出”的輸出隊列中,然后等待發(fā)送。所述發(fā)送管理模塊根據(jù)輸出端口輸出數(shù)據(jù)的情況讀取輸出隊列中的地址信息,并根據(jù)所述地址信息從報文數(shù)據(jù)緩存模塊中讀取對應(yīng)所述地址的報文數(shù)據(jù),然后通過對應(yīng)的輸出端口發(fā)送出去。
當(dāng)報文數(shù)據(jù)從輸出端口輸出后,所述芯片釋放被所述報文數(shù)據(jù)所占用的緩存資源和隊列資源。
上述過程中,當(dāng)芯片對當(dāng)前數(shù)據(jù)報文的轉(zhuǎn)發(fā)處理信息進(jìn)行分析處理時,接收端口可能會接收到后續(xù)到達(dá)的一些數(shù)據(jù)報文,此時芯片必須分配一些緩存資源來對報文數(shù)據(jù)進(jìn)行存儲;然而這些存儲資源與隊列資源要等到報文數(shù)據(jù)從輸出端口發(fā)送出去后才能被回收再次利用。另外,在芯片進(jìn)行工作的過程中,有時會出現(xiàn)某些輸出端口突然鏈路中斷的情況,例如網(wǎng)線斷開、突然停電、用戶沒有按照規(guī)定程序關(guān)閉對接的網(wǎng)絡(luò)設(shè)備等,此時在芯片中已經(jīng)有一些緩存或隊列資源分配給該輸出端口,如果這些端口不能夠及時恢復(fù)正常,那么這些已經(jīng)被分配的緩存或隊列資源將會被長時間占用,不能再被其它端口利用,從而對芯片的性能造成影響。因此需要經(jīng)常檢測輸出端口的工作狀態(tài),以便及時判斷鏈路的連接狀態(tài),并當(dāng)鏈路中斷時,能夠及時釋放已經(jīng)被分配的緩存或隊列資源。
與本發(fā)明有關(guān)的現(xiàn)有技術(shù)一提供了一種釋放已經(jīng)被分配的緩存或隊列資源的方法,其主要思想是發(fā)送管理模塊不斷檢查輸出端口上的電路連接信號,即Link信號來獲知輸出端口的鏈路的連接狀態(tài),并將檢測到的信息主動上報給CPU;當(dāng)所述CPU根據(jù)所述上報的信息獲知輸出端口發(fā)生鏈路中斷后,控制所述發(fā)送管理模塊不斷地從相應(yīng)的隊列、緩存中將發(fā)送到該輸出端口的數(shù)據(jù)報文丟棄,直至所述CPU獲知到輸出端口的鏈路恢復(fù)連接,則停止這種丟棄處理,恢復(fù)正常的數(shù)據(jù)報文發(fā)送。
現(xiàn)有技術(shù)一需要CPU進(jìn)行處理,從而會增加CPU的負(fù)擔(dān)。
與本發(fā)明有關(guān)的現(xiàn)有技術(shù)二提供了另一種釋放已經(jīng)被分配的緩存或隊列資源的方法,其主要思想是
通過高層軟件定時地、不斷地檢查輸出端口是否在發(fā)送數(shù)據(jù)(特別是一些協(xié)議類型的數(shù)據(jù)報文),并根據(jù)檢測到的信息判斷鏈路是否一直在線;當(dāng)檢查到輸出端口發(fā)生鏈路中斷后,不斷地從相應(yīng)的隊列、緩存中將發(fā)送到該輸出端口的數(shù)據(jù)報文丟棄,從而實現(xiàn)被占用資源的回收。一旦重新檢查到端口的鏈路恢復(fù)連接,則停止這種丟棄處理,恢復(fù)正常的數(shù)據(jù)報文發(fā)送。
現(xiàn)有技術(shù)二需要高層軟件來進(jìn)行處理,會造成軟件運(yùn)行開銷,增加了運(yùn)行軟件的CPU的負(fù)擔(dān)。
發(fā)明內(nèi)容
本發(fā)明的目的是提供一種釋放被無效占用的資源的方法和存儲轉(zhuǎn)發(fā)裝置,通過本發(fā)明,解決了現(xiàn)有技術(shù)中當(dāng)輸出端口工作異常時,為實現(xiàn)被占用資源的回收,需要CPU的參與,或需要運(yùn)行高層軟件來進(jìn)行處理等弊端。
本發(fā)明的目的是通過以下技術(shù)方案實現(xiàn)的本發(fā)明提供一種釋放被無效占用的資源的方法,其包括A、當(dāng)檢測到輸出端口上沒有數(shù)據(jù)報文發(fā)送時,則啟動對應(yīng)所述輸出端口而設(shè)置的定時器開始計時;B、當(dāng)所述定時器的計時時間達(dá)到定時周期時,釋放被無效占用的資源。
其中,所述定時器的定時周期大于正常輸出時每一個數(shù)據(jù)報文發(fā)送時所需要的時間。
其中,所述步驟A具體包括發(fā)送管理模塊檢測設(shè)置在其內(nèi)的各個輸出端口上是否有數(shù)據(jù)報文發(fā)送,并當(dāng)檢測到某一輸出端口上沒有數(shù)據(jù)報文發(fā)送時,則啟動對應(yīng)所述輸出端口而設(shè)置的定時器開始計時;或,
發(fā)送管理模塊檢測設(shè)置在其外部的各個輸出端口上是否有數(shù)據(jù)報文發(fā)送,并當(dāng)檢測到某一輸出端口上沒有數(shù)據(jù)報文發(fā)送時,則對應(yīng)所述輸出端口而設(shè)置的定時器開始計時。
其中,在所述步驟B具體包括B1、在所述定時器的計時時間未到達(dá)定時周期之前,繼續(xù)檢測所述輸出端口上是否有數(shù)據(jù)報文正常發(fā)送,并且當(dāng)檢測到所述輸出端口上有數(shù)據(jù)報文發(fā)送時,則將所述定時器進(jìn)行復(fù)位,并停止計時,然后繼續(xù)步驟A;當(dāng)檢測到所述輸出端口上沒有數(shù)據(jù)報文發(fā)送時,則執(zhí)行步驟B2;B2、當(dāng)所述定時器的定時時間達(dá)到定時周期時,則讀取所述輸出端口對應(yīng)的輸出隊列中的存儲地址,并根據(jù)所述存儲地址從報文數(shù)據(jù)緩存模塊中讀取對應(yīng)所述存儲地址的報文數(shù)據(jù),然后將其丟棄掉,并釋放所述存儲地址對應(yīng)的隊列資源以及所述報文數(shù)據(jù)對應(yīng)的緩存資源;同時將所述定時器進(jìn)行復(fù)位,然后轉(zhuǎn)入步驟A。
本發(fā)明提供一種存儲轉(zhuǎn)發(fā)裝置,包括至少一個輸出端口,其中,對應(yīng)每一個輸出端口還包括一個定時器,用于當(dāng)輸出端口沒有數(shù)據(jù)報文發(fā)送時,則啟動開始計時,并當(dāng)計時時間等于定時周期時,則觸發(fā)所述存儲轉(zhuǎn)發(fā)裝置釋放被無效占用的資源。
其中,所述定時器的定時周期大于正常輸出時每一個數(shù)據(jù)報文發(fā)送時所需要的時間。
其中,所述定時器位于輸出端口內(nèi)部,或位于輸出端口的外部。
其中,所述的存儲轉(zhuǎn)發(fā)裝置,還包括報文數(shù)據(jù)緩存模塊,用于緩存報文數(shù)據(jù);發(fā)送管理模塊,用于檢測所述輸出端口是否有數(shù)據(jù)報文發(fā)送,當(dāng)沒有數(shù)據(jù)報文發(fā)送時,發(fā)送信號觸發(fā)所述定時器;并且當(dāng)定時器的計時時間到達(dá)定時周期時,被觸發(fā)對被無效占用的資源進(jìn)行釋放。
其中,所述被無效占用的資源包括已經(jīng)分配給輸出端口但不能被發(fā)送的輸出隊列中的隊列資源和對應(yīng)所述報文數(shù)據(jù)緩存模塊中緩存的報文資源。
其中,所述輸出端口位于所述發(fā)送管理模塊內(nèi)部,或位于所述發(fā)送管理模塊外部,并與所述發(fā)送管理模塊連接。
由上述本發(fā)明提供的技術(shù)方案可以看出,本發(fā)明中,當(dāng)檢測到某個輸出端口上沒有數(shù)據(jù)報文發(fā)送時,啟動對應(yīng)所述輸出端口而設(shè)置的定時器開始計時;并當(dāng)所述定時器的計時時間達(dá)到定時周期時,釋放被無效占用的資源。因此當(dāng)輸出端口工作異常時,本發(fā)明不僅能夠及時釋放已經(jīng)被分配的資源,而且不需要CPU的參與,不需要軟件的運(yùn)行。
圖1為背景技術(shù)中給出的“存儲-轉(zhuǎn)發(fā)”結(jié)構(gòu)的芯片的工作原理圖;圖2為本發(fā)明提供的第一實施例的流程圖;圖3為本發(fā)明提供的第二實施例的原理圖;圖4為本發(fā)明提供的第三實施例中當(dāng)輸出端口設(shè)置在發(fā)送管理模塊外部,并且各個定時器設(shè)置在發(fā)送管理模塊中,并與各個輸出端口對應(yīng)時的存儲轉(zhuǎn)發(fā)裝置的原理圖。
具體實施例方式
對“存儲-轉(zhuǎn)發(fā)”結(jié)構(gòu)的數(shù)據(jù)通信芯片,當(dāng)其在工作過程中出現(xiàn)某些輸出端口發(fā)生鏈路突然中斷的情況(例如網(wǎng)線斷開、突然停電、用戶沒有按照規(guī)定程序離線等)時,此時在芯片中已經(jīng)有一些緩存資源或隊列資源分配給該輸出端口,這些資源被稱為被無效占用的資源,如果這些資源得到及時的釋放,則能夠使有限的資源得到充分的利用,而且如果沒有CPU的參與或者高層軟件的參與就能夠及時釋放被無效占用的資源,則更為理想。
本發(fā)明提供了第一實施例是不需要CPU參與或者高層軟件的參與就能夠及時釋放被無效占用的資源的一種方法,其核心是對應(yīng)各個輸出端口設(shè)置一個定時器,當(dāng)所述發(fā)送管理模塊檢測到某個輸出端口上沒有數(shù)據(jù)報文發(fā)送時,則啟動對應(yīng)所述輸出端口上的定時器開始計時。當(dāng)所述定時器的計時時間達(dá)到定時周期時,則所述發(fā)送管理模塊對無效占用的資源進(jìn)行釋放。其具體實施過程如圖2所示,包括如下步驟步驟1,對應(yīng)各個輸出端口設(shè)置一個定時器,并設(shè)定所述定時器的定時周期大于正常輸出時每一個數(shù)據(jù)報文發(fā)送時所需要的時間。
所述定時器只有在對應(yīng)的輸出端口上沒有數(shù)據(jù)報文發(fā)送時,才開始計時,當(dāng)對應(yīng)的輸出端口上有數(shù)據(jù)報文正常輸出時,則所述定時器處于復(fù)位狀態(tài),不會進(jìn)行計時處理。
所述定時器的定時周期可以設(shè)置不同的數(shù)值,以適應(yīng)不同的工作情況。
步驟2,發(fā)送管理模塊檢測各個輸出端口上是否有數(shù)據(jù)報文發(fā)送,并當(dāng)檢測到某一輸出端口上沒有數(shù)據(jù)報文發(fā)送時,則執(zhí)行步驟3,即啟動設(shè)置在所述輸出端口上的定時器開始計時,然后執(zhí)行步驟5;當(dāng)檢測到各個輸出端口均有數(shù)據(jù)報文發(fā)送時,則執(zhí)行步驟4,即將所述定時器置于復(fù)位狀態(tài),然后繼續(xù)步驟2。
步驟5,在所述定時器的計時時間未到達(dá)定時周期之前,繼續(xù)檢測所述輸出端口上是否有數(shù)據(jù)報文正常發(fā)送,當(dāng)所述發(fā)送管理模塊檢測到所述輸出端口上有數(shù)據(jù)報文發(fā)送時,則執(zhí)行步驟6,即將所述定時器進(jìn)行復(fù)位,并停止計時,然后繼續(xù)步驟2;當(dāng)檢測到所述輸出端口上沒有數(shù)據(jù)報文發(fā)送時,則執(zhí)行步驟7。
步驟7,當(dāng)所述定時器的定時時間達(dá)到定時周期時,則所述發(fā)送管理模塊讀取罵所述輸出端口對應(yīng)的輸出隊列中的存儲地址信息,并根據(jù)所述存儲地址信息從報文數(shù)據(jù)緩存模塊中讀取對應(yīng)所述存儲地址的報文數(shù)據(jù),然后將其丟棄掉,釋放所述存儲地址信息對應(yīng)的隊列資源以及所述報文數(shù)據(jù)對應(yīng)的緩存資源。同時將所述定時器進(jìn)行復(fù)位,然后轉(zhuǎn)入步驟2。
一旦輸出端口的鏈路發(fā)生中斷,則輸出端口上將長時間不能發(fā)送數(shù)據(jù)保文,這時所述輸出端口上的定時器可以達(dá)到規(guī)定的定時周期。
本發(fā)明提供的第二實施例,是一種存儲轉(zhuǎn)發(fā)裝置,其工作原理如圖3所示,包括接收管理模塊、報文數(shù)據(jù)緩存模塊、轉(zhuǎn)發(fā)處理模塊和發(fā)送管理模塊;其中所述接收管理模塊包括至少一個接收端口,所述發(fā)送管理模塊包括至少一個輸出端口、對應(yīng)所述輸出端口的輸出隊列以及設(shè)置在各個輸出端口上的定時器;所述定時器的定時周期大于正常輸出時每一個數(shù)據(jù)報文發(fā)送時所需要的時間。
在進(jìn)行數(shù)據(jù)通信時,所述接收管理模塊通過所述各個接收端口將報文數(shù)據(jù)完整地接收下來,然后向所述報文數(shù)據(jù)緩存模塊申請相應(yīng)的緩存資源,如果不能夠申請到相應(yīng)的緩存資源,則將接收到的報文數(shù)據(jù)丟棄掉;如果能夠申請到相應(yīng)的緩存資源,則所述接收管理模塊會獲得存儲接收到的報文數(shù)據(jù)的存儲地址,并按照所述存儲地址將接收到的數(shù)據(jù)存儲到所述報文數(shù)據(jù)緩存模塊中,同時將所述存儲地址與報文數(shù)據(jù)中的部分內(nèi)容信息(包括位于報文數(shù)據(jù)頭部的“目的地址”信息與“源地址”信息等)作為轉(zhuǎn)發(fā)處理信息,發(fā)送給所述轉(zhuǎn)發(fā)處理模塊。
所述轉(zhuǎn)發(fā)處理模塊對轉(zhuǎn)發(fā)處理信息進(jìn)行分析處理,并根據(jù)分析結(jié)果確定報文數(shù)據(jù)的轉(zhuǎn)發(fā)信息,包括報文數(shù)據(jù)是否需要丟棄,或是轉(zhuǎn)發(fā)到哪個輸出端口等。當(dāng)轉(zhuǎn)發(fā)處理模塊得出報文數(shù)據(jù)的轉(zhuǎn)發(fā)信息后,將根據(jù)所述轉(zhuǎn)發(fā)信息將報文數(shù)據(jù)對應(yīng)的存儲地址寫入到所述發(fā)送管理模塊中的對應(yīng)的輸出端口的“先進(jìn)先出”的輸出隊列中,然后等待發(fā)送。
所述發(fā)送管理模塊檢測所述輸出端口上是否有數(shù)據(jù)報文發(fā)送,當(dāng)檢測到所述輸出端口上有數(shù)據(jù)報文正常發(fā)送時,則不斷讀取所述輸出端口對應(yīng)的輸出隊列中的存儲地址,并根據(jù)所述存儲地址從報文數(shù)據(jù)緩存模塊中讀取對應(yīng)所述存儲地址的報文數(shù)據(jù),然后通過所述輸出端口發(fā)送出去。
當(dāng)所述發(fā)送管理模塊檢測到所述輸出端口上沒有數(shù)據(jù)報文發(fā)送時,則啟動設(shè)置在所述輸出端口上的定時器開始計時;如果在所述定時器的計時時間未到達(dá)定時周期之前,并且所述發(fā)送管理模塊檢測到所述輸出端口上有數(shù)據(jù)報文發(fā)送時,則所述發(fā)送管理模塊將所述定時器進(jìn)行復(fù)位,并停止計時。如果在所述定時器的計時時間到達(dá)定時周期之前,始終沒有數(shù)據(jù)報文在所述輸出端口上發(fā)送,則所述定時器的定時時間會達(dá)到定時周期,此時所述定時器會觸發(fā)所述發(fā)送管理模塊釋放被無效占用的資源也就是說,所述發(fā)送管理模塊則讀取所述輸出端口對應(yīng)的輸出隊列中的存儲地址,并根據(jù)所述存儲地址從報文數(shù)據(jù)緩存模塊中讀取對應(yīng)所述存儲地址的報文數(shù)據(jù),然后將其丟棄掉,并釋放所述存儲地址對應(yīng)的隊列資源以及所述報文數(shù)據(jù)對應(yīng)的緩存資源。隨后將所述定時器復(fù)位,重新開始計時,這樣周而復(fù)始,每當(dāng)所述定時器的計時時間達(dá)到其定時周期時,則丟棄一個數(shù)據(jù)報文,并釋放相應(yīng)的緩存和隊列資源。當(dāng)所述發(fā)送管理模塊檢測到所述端口上有數(shù)據(jù)報文發(fā)送時,才停止丟棄。
上述實施例中,所述定時器也可以不設(shè)置在各個輸出端口上,而獨(dú)立于各個輸出端口而設(shè)置在發(fā)送管理模塊中,但此時所述各個定時器仍需要對應(yīng)各個輸出端口。
本發(fā)明提供的第三實施例,是另一種存儲轉(zhuǎn)發(fā)裝置,其與第二實施例的區(qū)別在于,所述輸出端口設(shè)置在發(fā)送管理模塊外部,并與所述發(fā)送管理模塊連接。此時各個定時器可以設(shè)置在發(fā)送管理模塊中,并且與各個輸出端口對應(yīng);各個定時器也可以設(shè)置在對應(yīng)的各個輸出端口上。如圖4所示給出了輸出端口設(shè)置在發(fā)送管理模塊外部,并且各個定時器設(shè)置在發(fā)送管理模塊中,并與各個輸出端口對應(yīng)時的存儲轉(zhuǎn)發(fā)裝置的原理圖。
第三實施例中各個模塊與定時器間的信息傳遞過程與第二實施例基本類似,這里不再詳細(xì)描述。
由上述本發(fā)明的具體實施方案可以看出,本發(fā)明中當(dāng)檢測到某個輸出端口上沒有數(shù)據(jù)報文發(fā)送時,啟動對應(yīng)所述輸出端口而設(shè)置的定時器開始計時;并當(dāng)所述定時器的計時時間達(dá)到定時周期時,釋放被無效占用的資源。因此當(dāng)輸出端口工作異常時,本發(fā)明不僅能夠及時釋放已經(jīng)被分配的資源,而且不需要CPU的參與,不需要軟件的運(yùn)行。
以上所述,僅為本發(fā)明較佳的具體實施方式
,但本發(fā)明的保護(hù)范圍并不局限于此,任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到的變化或替換,都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍之內(nèi)。因此,本發(fā)明的保護(hù)范圍應(yīng)該以權(quán)利要求的保護(hù)范圍為準(zhǔn)。
權(quán)利要求
1.一種釋放被無效占用的資源的方法,其特征在于,包括A、當(dāng)檢測到輸出端口上沒有數(shù)據(jù)報文發(fā)送時,則啟動對應(yīng)所述輸出端口而設(shè)置的定時器開始計時;B、當(dāng)所述定時器的計時時間達(dá)到定時周期時,釋放被無效占用的資源。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于所述定時器的定時周期大于正常輸出時每一個數(shù)據(jù)報文發(fā)送時所需要的時間。
3.根據(jù)權(quán)利要求1或2所述的方法,其特征在于,所述步驟A具體包括發(fā)送管理模塊檢測設(shè)置在其內(nèi)的各個輸出端口上是否有數(shù)據(jù)報文發(fā)送,并當(dāng)檢測到某一輸出端口上沒有數(shù)據(jù)報文發(fā)送時,則啟動對應(yīng)所述輸出端口而設(shè)置的定時器開始計時;或,發(fā)送管理模塊檢測設(shè)置在其外部的各個輸出端口上是否有數(shù)據(jù)報文發(fā)送,并當(dāng)檢測到某一輸出端口上沒有數(shù)據(jù)報文發(fā)送時,則對應(yīng)所述輸出端口而設(shè)置的定時器開始計時。
4.根據(jù)權(quán)利要求3所述的方法,其特征在于,在所述步驟B具體包括B1、在所述定時器的計時時間未到達(dá)定時周期之前,繼續(xù)檢測所述輸出端口上是否有數(shù)據(jù)報文正常發(fā)送,并且當(dāng)檢測到所述輸出端口上有數(shù)據(jù)報文發(fā)送時,則將所述定時器進(jìn)行復(fù)位,并停止計時,然后繼續(xù)步驟A;當(dāng)檢測到所述輸出端口上沒有數(shù)據(jù)報文發(fā)送時,則執(zhí)行步驟B2;B2、當(dāng)所述定時器的定時時間達(dá)到定時周期時,則讀取所述輸出端口對應(yīng)的輸出隊列中的存儲地址,并根據(jù)所述存儲地址從報文數(shù)據(jù)緩存模塊中讀取對應(yīng)所述存儲地址的報文數(shù)據(jù),然后將其丟棄掉,并釋放所述存儲地址對應(yīng)的隊列資源以及所述報文數(shù)據(jù)對應(yīng)的緩存資源;同時將所述定時器進(jìn)行復(fù)位,然后轉(zhuǎn)入步驟A。
5.一種存儲轉(zhuǎn)發(fā)裝置,包括至少一個輸出端口,其特征在于,對應(yīng)每一個輸出端口還包括一個定時器,用于當(dāng)輸出端口沒有數(shù)據(jù)報文發(fā)送時,則啟動開始計時,并當(dāng)計時時間等于定時周期時,則觸發(fā)所述存儲轉(zhuǎn)發(fā)裝置釋放被無效占用的資源。
6.根據(jù)權(quán)利要求5所述的存儲轉(zhuǎn)發(fā)裝置,其特征在于所述定時器的定時周期大于正常輸出時每一個數(shù)據(jù)報文發(fā)送時所需要的時間。
7.根據(jù)權(quán)利要求5所述的存儲轉(zhuǎn)發(fā)裝置,其特征在于所述定時器位于輸出端口內(nèi)部,或位于輸出端口的外部。
8.根據(jù)權(quán)利要求5所述的存儲轉(zhuǎn)發(fā)裝置,其特征在于,還包括報文數(shù)據(jù)緩存模塊,用于緩存報文數(shù)據(jù);發(fā)送管理模塊,用于檢測所述輸出端口是否有數(shù)據(jù)報文發(fā)送,當(dāng)沒有數(shù)據(jù)報文發(fā)送時,發(fā)送信號觸發(fā)所述定時器;并且當(dāng)定時器的計時時間到達(dá)定時周期時,被觸發(fā)對被無效占用的資源進(jìn)行釋放。
9.根據(jù)權(quán)利要求5、6、7或8所述的存儲轉(zhuǎn)發(fā)裝置,其特征在于,所述被無效占用的資源包括已經(jīng)分配給輸出端口但不能在定時器的定時周期內(nèi)被發(fā)送的輸出隊列中的隊列資源和對應(yīng)所述報文數(shù)據(jù)緩存模塊中緩存的報文資源。
10.根據(jù)權(quán)利要求9所述的存儲轉(zhuǎn)發(fā)裝置,其特征在于所述輸出端口位于所述發(fā)送管理模塊內(nèi)部,或位于所述發(fā)送管理模塊外部,并與所述發(fā)送管理模塊連接。
全文摘要
本發(fā)明涉及一種釋放被無效占用的資源的方法和存儲轉(zhuǎn)發(fā)裝置,其核心是當(dāng)檢測到輸出端口上沒有數(shù)據(jù)報文發(fā)送時,則啟動對應(yīng)所述輸出端口而設(shè)置的定時器開始計時;當(dāng)所述定時器的計時時間達(dá)到定時周期時,釋放被無效占用的資源。通過本發(fā)明,當(dāng)輸出端口工作異常時,本發(fā)明不僅能夠及時釋放已經(jīng)被分配的資源,而且不需要CPU的參與,不需要軟件的運(yùn)行。
文檔編號H04L12/54GK1984025SQ20061007838
公開日2007年6月20日 申請日期2006年5月17日 優(yōu)先權(quán)日2006年5月17日
發(fā)明者譚銳, 王萬萬, 付紅松, 楊瀚清 申請人:華為技術(shù)有限公司