国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      報文搬移方法及裝置的制造方法

      文檔序號:10626771閱讀:491來源:國知局
      報文搬移方法及裝置的制造方法
      【專利摘要】本發(fā)明公開了一種報文搬移方法及裝置,其中,該方法包括:根據(jù)報文長度為報文分配直接內(nèi)存訪問DMA通道;根據(jù)DMA通道將報文搬移到交換機系統(tǒng)中與DMA通道對應的內(nèi)存中。通過本發(fā)明解決了相關(guān)技術(shù)中交換機系統(tǒng)中存在很大內(nèi)存資源浪費的問題,進而節(jié)省了交換機系統(tǒng)中的CPU收包內(nèi)存。
      【專利說明】
      報文搬移方法及裝置
      技術(shù)領(lǐng)域
      [0001]本發(fā)明涉及通信領(lǐng)域,具體而言,涉及一種報文搬移方法及裝置。
      【背景技術(shù)】
      [0002]隨著網(wǎng)絡(luò)技術(shù)的普及,交換機技術(shù)迅速發(fā)展。對于交換機來說,數(shù)據(jù)報文通過交換芯片進行硬件直接轉(zhuǎn)發(fā),無須中央處理器(Central Processing Unit,簡稱為CPU)干預,對于交換機需要處理的協(xié)議報文來說,則通過交換芯片把報文上送CPU,由CPU進行處理。
      [0003]如圖1所示,交換機系統(tǒng)一般包括交換芯片,CPU和內(nèi)存等,目前的交換芯片一般都會內(nèi)置直接內(nèi)存訪問(Direct Memory Access,簡稱為DMA),DMA通過物理層標識(Physical Cell Identif ier,簡稱為PCI)總線把協(xié)議報文從交換芯片的緩存里面直接搬移到內(nèi)存里面去,然后產(chǎn)生中斷通知CPU去內(nèi)存里面去獲取協(xié)議報文并且進行相應的處理。
      [0004]處理性能考慮CPU —般采用零拷貝方式處理內(nèi)存里面的報文,管理方便考慮一般一個報文就是一個緩存(buffer),一般的交換機需要幾百個甚至幾千個緩存,目前業(yè)內(nèi)的buffer 一般定義為1.5K字節(jié),如果需要支持巨幀,則buffer需要定義為9k字節(jié)。如果是Ik個緩存,每個緩存9k字節(jié)那么需要9M字節(jié)的內(nèi)存空間。但是實質(zhì)上協(xié)議報文一般都是256字節(jié)以內(nèi)的報文,256-1536字節(jié)內(nèi)的協(xié)議報文較少,1.5k_9k字節(jié)的巨幀協(xié)議報文就更少。為了極少的長包導致所有收包緩存都很大,存在很大內(nèi)存資源的浪費。
      [0005]雖然有些芯片也支持把一個長報文通過PCI總線DMA到內(nèi)存里面多個小的緩存空間里面,但是這樣后續(xù)協(xié)議處理協(xié)議報文會比較麻煩。會增加系統(tǒng)軟件處理的復雜度和耗費一定的CPU資源。目前也很少被采用。
      [0006]針對相關(guān)技術(shù)中,交換機系統(tǒng)中存在很大內(nèi)存資源浪費的問題,還未提出有效的解決方案。

      【發(fā)明內(nèi)容】

      [0007]本發(fā)明提供了一種報文搬移方法及裝置,以至少解決相關(guān)技術(shù)中交換機系統(tǒng)中存在很大內(nèi)存資源浪費的問題。
      [0008]根據(jù)本發(fā)明的一個方面,提供了一種報文搬移方法,包括:根據(jù)報文長度為所述報文分配直接內(nèi)存訪問DMA通道;根據(jù)所述DMA通道將所述報文搬移到交換機系統(tǒng)中與所述DMA通道對應的內(nèi)存中。
      [0009]進一步地,根據(jù)報文長度為所述報文分配直接內(nèi)存訪問DMA通道包括:為所述報文分配隊列;在指定隊列所包含的報文的字節(jié)均在預定范圍內(nèi)的情況下,為所述指定隊列分配指定通道。
      [0010]進一步地,根據(jù)所述DMA通道將所述報文搬移到交換機系統(tǒng)中與所述DMA通道對應的內(nèi)存中之后包括:在指定事件的觸發(fā)下,通知所述交換機系統(tǒng)中的中央處理器CPU從所述內(nèi)存中獲取所述報文。
      [0011]進一步地,所述指定事件包括:所述DMA通道發(fā)生收報中斷信息。
      [0012]進一步地,在所述報文為多個時,根據(jù)所述DMA通道將所述報文搬移到交換機系統(tǒng)中與所述DMA通道對應的內(nèi)存中包括:通過與多個所述報文分別對應的多個DMA通道輪流將多個所述報文搬移到交換機系統(tǒng)中與所述多個DMA通道對應的內(nèi)存中。
      [0013]根據(jù)本發(fā)明的另一個方面,還提供了一種報文搬移裝置,包括:分配模塊,用于根據(jù)報文長度為所述報文分配直接內(nèi)存訪問DMA通道;搬移模塊,用于根據(jù)所述DMA通道將所述報文搬移到交換機系統(tǒng)中與所述DMA通道對應的內(nèi)存中。
      [0014]進一步地,所述分配模塊包括:第一分配單元,用于為所述報文分配隊列;第二分配單元,用于在指定隊列所包含的報文的字節(jié)均在預定范圍內(nèi)的情況下,為所述指定隊列分配指定通道。
      [0015]進一步地,所述裝置還包括:通知模塊,用于在指定事件的觸發(fā)下,通知所述交換機系統(tǒng)中的中央處理器CPU從所述內(nèi)存中獲取所述報文。
      [0016]進一步地,所述指定事件包括:所述DMA通道發(fā)生收報中斷信息。
      [0017]進一步地,在所述報文為多個時,所述搬移模塊還用于通過與多個所述報文分別對應的多個DMA通道輪流將多個所述報文搬移到交換機系統(tǒng)中與所述多個DMA通道對應的內(nèi)存中。
      [0018]通過本發(fā)明,采用根據(jù)報文長度為報文分配直接內(nèi)存訪問DMA通道;根據(jù)DMA通道將報文搬移到交換機系統(tǒng)中與DMA通道對應的內(nèi)存中。解決了相關(guān)技術(shù)中交換機系統(tǒng)中存在很大內(nèi)存資源浪費的問題,進而節(jié)省了交換機系統(tǒng)中的CPU收包內(nèi)存。
      【附圖說明】
      [0019]此處所說明的附圖用來提供對本發(fā)明的進一步理解,構(gòu)成本申請的一部分,本發(fā)明的示意性實施例及其說明用于解釋本發(fā)明,并不構(gòu)成對本發(fā)明的不當限定。在附圖中:
      [0020]圖1是交換機系統(tǒng)示意圖;
      [0021]圖2是根據(jù)本發(fā)明實施例的報文搬移方法的流程圖;
      [0022]圖3是根據(jù)本發(fā)明實施例的報文搬移裝置的結(jié)構(gòu)框圖;
      [0023]圖4是根據(jù)本發(fā)明實施例的報文搬移裝置的結(jié)構(gòu)框圖(一);
      [0024]圖5是根據(jù)本發(fā)明實施例的報文搬移裝置的結(jié)構(gòu)框圖(二);
      [0025]圖6是根據(jù)本發(fā)明實施例的大量節(jié)約CPU收包內(nèi)存的交換機系統(tǒng)流程圖。
      【具體實施方式】
      [0026]下文中將參考附圖并結(jié)合實施例來詳細說明本發(fā)明。需要說明的是,在不沖突的情況下,本申請中的實施例及實施例中的特征可以相互組合。
      [0027]在本實施例中提供了一種報文搬移方法,圖2是根據(jù)本發(fā)明實施例的報文搬移方法的流程圖,如圖2所示,該流程包括如下步驟:
      [0028]步驟S202,根據(jù)報文長度為報文分配直接內(nèi)存訪問DMA通道;
      [0029]步驟S204,根據(jù)DMA通道將報文搬移到交換機系統(tǒng)中與DMA通道對應的內(nèi)存中。
      [0030]通過上述步驟,首先按照報文的長度為報文分配DMA通道,再根據(jù)DMA通道將報文搬移到交換機系統(tǒng)中與DMA通道對應的內(nèi)存中,相對于現(xiàn)有技術(shù)中,為了極少的長包導致所有收包緩存都很大的問題,上述步驟解決了相關(guān)技術(shù)中交換機系統(tǒng)中存在很大內(nèi)存資源浪費的問題,進而節(jié)省了交換機系統(tǒng)中的CPU收包內(nèi)存。
      [0031]上述步驟S204中涉及到根據(jù)報文長度為報文分配直接內(nèi)存訪問DMA通道,在一個可選實施例中,首先為報文分配隊列,在指定隊列所包含的報文的字節(jié)均在預定范圍內(nèi)的情況下,為指定隊列分配指定通道。
      [0032]對于交換機需要處理的報文來說,通過交換芯片將報文發(fā)送給CPU,由CPU處理。在一個可選實施例中,根據(jù)DMA通道將報文搬移到交換機系統(tǒng)中與DMA通道對應的內(nèi)存中之后,在指定事件的觸發(fā)下,通知交換機系統(tǒng)中的中央處理器CPU從內(nèi)存中獲取報文。
      [0033]在一個可選實施例中,上述指定事件可以包括:DMA通道發(fā)生收報中斷信息。
      [0034]在報文為多個時,在一個可選實施例中,將多個報文搬移到交換機系統(tǒng)中與DMA通道對應的內(nèi)存中時,通過與多個該報文分別對應的多個DMA通道輪流將多個報文搬移到交換機系統(tǒng)中與多個DMA通道對應的內(nèi)存中。
      [0035]在本實施例中還提供了一種報文搬移裝置,該裝置用于實現(xiàn)上述實施例及優(yōu)選實施方式,已經(jīng)進行過說明的不再贅述。如以下所使用的,術(shù)語“模塊”可以實現(xiàn)預定功能的軟件和/或硬件的組合。盡管以下實施例所描述的裝置較佳地以軟件來實現(xiàn),但是硬件,或者軟件和硬件的組合的實現(xiàn)也是可能并被構(gòu)想的。
      [0036]圖3是根據(jù)本發(fā)明實施例的報文搬移裝置的結(jié)構(gòu)框圖,如圖3所示,該裝置包括:分配模塊32,用于根據(jù)報文長度為報文分配直接內(nèi)存訪問DMA通道;搬移模塊34,用于根據(jù)DMA通道將該報文搬移到交換機系統(tǒng)中與DMA通道對應的內(nèi)存中。
      [0037]圖4是根據(jù)本發(fā)明實施例的報文搬移裝置的結(jié)構(gòu)框圖(一),如圖4所示,分配模塊32包括:第一分配單元322,用于為報文分配隊列;第二分配單元324,用于在指定隊列所包含的報文的字節(jié)均在預定范圍內(nèi)的情況下,為指定隊列分配指定通道。
      [0038]圖5是根據(jù)本發(fā)明實施例的報文搬移裝置的結(jié)構(gòu)框圖(二),如圖5所示,該裝置還包括:通知模塊52,用于在指定事件的觸發(fā)下,通知交換機系統(tǒng)中的中央處理器CPU從內(nèi)存中獲取報文。
      [0039]可選地,上述指定事件包括:DMA通道發(fā)生收報中斷信息。
      [0040]可選地,在報文為多個時,搬移模塊34還用于通過與多個該報文分別對應的多個DMA通道輪流將多個報文搬移到交換機系統(tǒng)中與該多個DMA通道對應的內(nèi)存中。
      [0041]需要說明的是,上述各個模塊是可以通過軟件或硬件來實現(xiàn)的,對于后者,可以通過以下方式實現(xiàn),但不限于此:上述各個模塊均位于同一處理器中;或者,上述各個模塊分別位于第一處理器、第二處理器和第三處理器…中。
      [0042]針對相關(guān)技術(shù)中存在的上述問題,下面結(jié)合可選實施例進行詳細說明,在下述的可選實施例中結(jié)合了上述可選實施例及其可選實施方式。
      [0043]本可選實施例提出了一種大量節(jié)約CPU收包內(nèi)存的交換機系統(tǒng)。
      [0044]圖6是根據(jù)本發(fā)明實施例的大量節(jié)約CPU收包內(nèi)存的交換機系統(tǒng)流程圖,如圖6所示,該流程包括如下步驟:
      [0045]步驟S602,協(xié)議報文進入交換機后,交換芯片入口流程把需要的協(xié)議報文上送到芯片的CPU端口,不同的協(xié)議報文指定不同的隊列0-47 ;
      [0046]步驟S604,根據(jù)隊列分配不同的DMA通道0_2,報文全部在256字節(jié)以內(nèi)的隊列分配DMA通道O,報文全部在257-1536字節(jié)之間的隊列分配DMA通道1,報文全部在1537-9216字節(jié)之間的隊列分配DMA通道2 ;
      [0047]步驟S606,不同DMA通道獨立輪流執(zhí)行,DMA根據(jù)交換芯片上面的CPU端口隊列調(diào)度結(jié)果取報文通過PCI總線搬移DMA對應的內(nèi)存空間,DMAO對應的內(nèi)存空間收報buffer為256字節(jié),DMAl對應的內(nèi)存空間收報Buffer為1536字節(jié),DMA2對應的內(nèi)存空間收報buffer為9216字節(jié);
      [0048]步驟S608,3個DMA通道都會產(chǎn)生收報中斷通知CPU去內(nèi)存里面取報文進行處理,(PU根據(jù)不同的DMA通道去不同的內(nèi)存空間獲取報文處理。
      [0049]在本可選實施例中利用交換芯片添加主機路由需要以下步驟:
      [0050]步驟A.協(xié)議報文進入交換機后,交換芯片入口流程把需要的協(xié)議報文上送到芯片的CPU端口,不同的協(xié)議報文指定不同的隊列0-47 ;
      [0051]步驟B.根據(jù)隊列分配不同的DMA通道0-2,報文全部在256字節(jié)以內(nèi)的隊列分配DMA通道0,報文全部在257-1536字節(jié)之間的隊列分配DMA通道1,報文全部在1537-9216字節(jié)之間的隊列分配DMA通道2。
      [0052]步驟A中不同DMA通道獨立輪流執(zhí)行,DMA根據(jù)交換芯片上面的CPU端口隊列調(diào)度結(jié)果取報文通過PCI總線搬移DMA對應的內(nèi)存空間,DMAO對應的內(nèi)存空間收報buffer為256字節(jié),DMAl對應的內(nèi)存空間收報Buffer為1536字節(jié),DMA2對應的內(nèi)存空間收報buffer為9216字節(jié)。
      [0053]步驟B中3個DMA通道都會產(chǎn)生收報中斷通知CPU去內(nèi)存里面取報文進行處理,(PU根據(jù)不同的DMA通道去不同的內(nèi)存空間獲取報文處理。
      [0054]下面結(jié)合附圖對本可選實施例在交換芯片上實現(xiàn)一種大量節(jié)約CPU收包內(nèi)存的交換機系統(tǒng)進行說明。
      [0055]假設(shè)端口 I進入2種協(xié)議報文,一種是arp請求報文,報文長度在256以內(nèi),一種是Ping包,由于網(wǎng)絡(luò)中有時候會ping大包,報文長度在1536之內(nèi)。系統(tǒng)在內(nèi)存里面設(shè)置1000個接收協(xié)議報文的緩存,分為3個部分:800個256字節(jié)的緩存給DMAO使用,150個1536字節(jié)的緩存給DMAl使用,50個9216字節(jié)的緩存給DMA2使用。交換芯片的CPU端口有48個隊列,arp報文分配隊列5,ping報文分配隊列10。隊列5分配DMA通道0,隊列10分配DMA通道I。
      [0056]端口 I的arp報文處理如下:
      [0057]I:arp報文從端口 I進入交換機,交換芯片入口流程把需要的協(xié)議報文上送到交換芯片的CPU端口,給arp報文分配隊列5。
      [0058]2:隊列5的報文交換芯片分配DMA通道0,內(nèi)存中對應的收包緩存的大小為256字
      -K-
      T O
      [0059]3:不同DMA通道獨立輪流執(zhí)行,DMAO根據(jù)交換芯片上面的CPU端口隊列調(diào)度結(jié)果取隊列5的報文通過PCI總線搬移DMAO對應的內(nèi)存空間,800個收包緩存環(huán)上的第一個空閑緩存,緩存對應大小256字節(jié)。
      [0060]4:DMA通道O會產(chǎn)生收報中斷通知CPU去內(nèi)存里面取報文進行處理,CPU收到中斷后會去DMAO對應的緩存空間獲取報文進行處理。
      [0061]端口 2的ping報文處理如下:
      [0062]I:arp報文從端口 I進入交換機,交換芯片入口流程把需要的協(xié)議報文上送到交換芯片的CPU端口,給arp報文分配隊列10。
      [0063]2:隊列10的報文交換芯片分配DMA通道1,內(nèi)存中對應的收包緩存的大小為1536字Tl O
      [0064]3:不同DMA通道獨立輪流執(zhí)行,DMAl根據(jù)交換芯片上面的CPU端口隊列調(diào)度結(jié)果取隊列10的報文通過PCI總線搬移DMAl對應的內(nèi)存空間,150個收包緩存環(huán)上的第一個空閑緩存,緩存對應大小1536字節(jié)。
      [0065]4:DMA通道I會產(chǎn)生收報中斷通知CPU去內(nèi)存里面取報文進行處理,CPU收到中斷后會去DMAl對應的緩存空間獲取報文進行處理。
      [0066]綜上所述,通過本發(fā)明根據(jù)協(xié)議報文長度不同,分配不同的DMA通道,通過PCI總線直接搬移到DMA通道對應的內(nèi)存里面??梢源罅抗?jié)約交換機接收協(xié)議報文所占用的內(nèi)存空間(用于接收CPU處理的協(xié)議報文的收包緩存會節(jié)省90%多),同時不增加系統(tǒng)的軟硬件復雜度。
      [0067]在另外一個實施例中,還提供了一種軟件,該軟件用于執(zhí)行上述實施例及優(yōu)選實施方式中描述的技術(shù)方案。
      [0068]在另外一個實施例中,還提供了一種存儲介質(zhì),該存儲介質(zhì)中存儲有上述軟件,該存儲介質(zhì)包括但不限于:光盤、軟盤、硬盤、可擦寫存儲器等。
      [0069]顯然,本領(lǐng)域的技術(shù)人員應該明白,上述的本發(fā)明的各模塊或各步驟可以用通用的計算裝置來實現(xiàn),它們可以集中在單個的計算裝置上,或者分布在多個計算裝置所組成的網(wǎng)絡(luò)上,可選地,它們可以用計算裝置可執(zhí)行的程序代碼來實現(xiàn),從而,可以將它們存儲在存儲裝置中由計算裝置來執(zhí)行,并且在某些情況下,可以以不同于此處的順序執(zhí)行所示出或描述的步驟,或者將它們分別制作成各個集成電路模塊,或者將它們中的多個模塊或步驟制作成單個集成電路模塊來實現(xiàn)。這樣,本發(fā)明不限制于任何特定的硬件和軟件結(jié)合。
      [0070]以上所述僅為本發(fā)明的優(yōu)選實施例而已,并不用于限制本發(fā)明,對于本領(lǐng)域的技術(shù)人員來說,本發(fā)明可以有各種更改和變化。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進等,均應包含在本發(fā)明的保護范圍之內(nèi)。
      【主權(quán)項】
      1.一種報文搬移方法,其特征在于,包括: 根據(jù)報文長度為所述報文分配直接內(nèi)存訪問DMA通道; 根據(jù)所述DMA通道將所述報文搬移到交換機系統(tǒng)中與所述DMA通道對應的內(nèi)存中。2.根據(jù)權(quán)利要求1所述的方法,其特征在于,根據(jù)報文長度為所述報文分配直接內(nèi)存訪問DMA通道包括: 為所述報文分配隊列; 在指定隊列所包含的報文的字節(jié)均在預定范圍內(nèi)的情況下,為所述指定隊列分配指定通道。3.根據(jù)權(quán)利要求1所述的方法,其特征在于,根據(jù)所述DMA通道將所述報文搬移到交換機系統(tǒng)中與所述DMA通道對應的內(nèi)存中之后包括: 在指定事件的觸發(fā)下,通知所述交換機系統(tǒng)中的中央處理器CPU從所述內(nèi)存中獲取所述報文。4.根據(jù)權(quán)利要求3所述的方法,其特征在于,所述指定事件包括: 所述DMA通道發(fā)生收報中斷信息。5.根據(jù)權(quán)利要求1所述的方法,其特征在于,在所述報文為多個時,根據(jù)所述DMA通道將所述報文搬移到交換機系統(tǒng)中與所述DMA通道對應的內(nèi)存中包括: 通過與多個所述報文分別對應的多個DMA通道輪流將多個所述報文搬移到交換機系統(tǒng)中與所述多個DMA通道對應的內(nèi)存中。6.一種報文搬移裝置,其特征在于,包括: 分配模塊,用于根據(jù)報文長度為所述報文分配直接內(nèi)存訪問DMA通道; 搬移模塊,用于根據(jù)所述DMA通道將所述報文搬移到交換機系統(tǒng)中與所述DMA通道對應的內(nèi)存中。7.根據(jù)權(quán)利要求6所述的裝置,其特征在于,所述分配模塊包括: 第一分配單元,用于為所述報文分配隊列; 第二分配單元,用于在指定隊列所包含的報文的字節(jié)均在預定范圍內(nèi)的情況下,為所述指定隊列分配指定通道。8.根據(jù)權(quán)利要求6所述的裝置,其特征在于,所述裝置還包括: 通知模塊,用于在指定事件的觸發(fā)下,通知所述交換機系統(tǒng)中的中央處理器CPU從所述內(nèi)存中獲取所述報文。9.根據(jù)權(quán)利要求8所述的裝置,其特征在于,所述指定事件包括: 所述DMA通道發(fā)生收報中斷信息。10.根據(jù)權(quán)利要求7所述的裝置,其特征在于,在所述報文為多個時,所述搬移模塊還用于通過與多個所述報文分別對應的多個DMA通道輪流將多個所述報文搬移到交換機系統(tǒng)中與所述多個DMA通道對應的內(nèi)存中。
      【文檔編號】H04L12/935GK105991472SQ201510094883
      【公開日】2016年10月5日
      【申請日】2015年3月3日
      【發(fā)明人】潘庭山
      【申請人】中興通訊股份有限公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1