国产精品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>

      一種數據處理方法、處理器及數據處理設備的制作方法

      文檔序號:6545456閱讀:204來源:國知局
      一種數據處理方法、處理器及數據處理設備的制作方法
      【專利摘要】本申請公開了一種數據處理方法、處理器及數據處理設備。該方法包括:仲裁器向第一處理電路發(fā)送數據D(a,1);第一處理電路通過對數據D(a,1)處理得到數據D(1,2),第一處理電路是m個處理電路中的一個處理電路;第一處理電路向第二處理電路發(fā)送數據D(1,2);第二處理電路至第m處理電路分別對接收到的數據進行處理;仲裁器接收第m處理電路發(fā)送的數據D(m,a),仲裁器及m個處理電路是處理器中的部件,處理器還包括第m+1處理電路,第一處理電路至第m+1處理電路中的每個處理電路能夠接收仲裁器發(fā)送的第一待處理數據,并對第一待處理數據進行處理。上述方案有助于提高數據處理的效率。
      【專利說明】一種數據處理方法、處理器及數據處理設備
      【技術領域】
      [0001]本申請 涉及通信【技術領域】,特別涉及一種數據處理方法、處理器及數據處理設備。【背景技術】
      [0002]現有技術中,網絡處理器可以采用流水線架構。Marvell公司的HX300系列網絡處理器采用了可編程流水線架構。這種架構可以看作是類似汽車生產過程中的流水線。HX300系列網絡處理器包括多個核(英文:COre)。多個core被分成N組,不同的組之間以流水線的方式被稱合。流水線上每個core只完成部分功能,多個core通過配合完成所有功能。例如第一個core執(zhí)行包頭解析,第二 core執(zhí)行多協議標記交換(英文multiprotocol labelswitching,簡稱:MPLS)協議,第三個core執(zhí)行查找訪問控制列表(英文:access controllist,簡稱:ACL)。這樣,每個core只執(zhí)行部分功能。每個core對應一段微碼。對多個core對應的多段微碼進行整合以得到完整的微碼。在處理器核之間可以包含多個引擎訪問點(Engine Access Point ;EAP)單元,用來完成查表操作。如圖1所示。上述技術方案中,處理器對數據進行處理的效率較低。

      【發(fā)明內容】

      [0003]本申請實施例提供數據處理方法及處理器,有助于提高處理器對數據進行處理的效率。
      [0004]第一方面,提供了一種數據處理方法,包括:
      [0005]仲裁器向第一處理電路發(fā)送數據D(“ ;所述第一處理電路通過對所述數據D(a,D進行處理得到數據D(1,2),所述第一處理電路是m個處理電路中的一個處理電路,所述m個處理電路包括所述第一處理電路至第m處理電路;所述第一處理電路向第二處理電路發(fā)送所述數據D(1,2);所述第二處理電路至所述第m處理電路分別對接收到的數據進行處理,其中,第i處理電路通過對第i_l處理電路提供的數據D(i_u)進行處理得到數據D(i,i+1)并且所述第i處理電路向第i+Ι處理電路發(fā)送所述數據D(i,i+1);所述仲裁器接收所述第m處理電路發(fā)送的數據D(m,a),m為大于I的整數,所述仲裁器以及所述第一處理電路至所述第m處理電路是處理器中的部件,所述處理器還包括第m+1處理電路,所述第一處理電路至所述第m+1處理電路中的每個處理電路能夠接收所述仲裁器發(fā)送的第一待處理數據,并且對所述第一待處理數據進行處理。
      [0006]結合第一方面,在第一方面的第一種可能的實現方式中,所述方法還包括:
      [0007]第X處理電路向所述第m+1處理電路發(fā)送數據D(x,m+1),所述數據D(x,m+1)等于數據D(x,x+1),所述數據D(x,x+1)為所述第X處理電路對第x-1處理電路提供的數據D0^x)進行處理得到的,所述第X處理電路是所述第一處理電路至第m-Ι處理電路中的一個處理電路。
      [0008]結合第一方面的第一種可能的實現方式,在第一方面的第二種可能的實現方式中,在所述第X處理電路向所述第m+1處理電路發(fā)送數據D(x,m+1)之后,所述方法還包括:所述第m+1處理電路通過對所述數據D(x,m+1)進行處理得到數據D(m+1,y);所述第m+1處理電路向第I處理電路發(fā)送所述數據D(m+1,y),所述第y處理電路為第x+2處理電路至所述第m處理電路中的一個處理電路或者所述仲裁器。
      [0009]結合第一方面的第二種可能的實現方式,在第一方面的第三種可能的實現方式中,所述方法還包括:所述第I處理電路接收所述數據D(m+1,y),所述第y處理電路為所述第x+2處理電路至所述第m處理電路中的一個處理電路;所述第y處理電路通過對所述數據D(ffl+1,y)以及數據D(y_i,y)進行整合得到整合后的數據;其中,所述數據D(y_i,y)為第y-Ι處理電路提供的數據;所述第I處理電路通過對所述整合后的數據進行處理得到第D(y,y+1)數據;所述第I處理電路向第y+Ι處理電路或者所述仲裁器發(fā)送所述數據D(y,y+1)。
      [0010]結合第一方面的第三種可能的實現方式,在第一方面的第四種可能的實現方式中,所述第y處理電路通過對所述數據D(m+1,y)以及數據D(y_i,y)進行整合得到整合后的數據,具體包括:
      [0011]所述第y處理電路僅保留所述數據D(m+1,y)和所述數據D(y_i,y)中的一個;或
      [0012]所述第y處理電路將所述數據D(m+1,y)和所述數據D(y_liy)按域對齊,在每個域,選擇所述數據D(m+1,y)或所述數據D(y_liy)在所述每個域的數據,形成所述整合后的數據。 [0013]結合第一方面或第一方面的第一種可能的實現方式至第一方面的第四種可能的實現方式中的任意一種,在第一方面的第五種可能的實現方式中,所述第一處理電路至所述第m處理電路中的每兩個處理電路第P處理電路和第q處理電路,第P處理電路的輸出端與第q處理電路的輸入端之間存在連接,第q處理電路的輸出端與第P處理電路的輸入端之間不存在連接,P小于q。
      [0014]第二方面,提供了一種處理器,包括:
      [0015]仲裁器;m個處理電路,包括第一處理電路至第m處理電路,所述m個處理電路分別與所述仲裁器耦合;m為大于I的整數;第!11+1個處理電路,與所述仲裁器耦合,所述第一處理電路至所述第m+1處理電路中的每個處理電路能夠接收所述仲裁器發(fā)送的第一待處理數據,并且對所述第一待處理數據進行處理;其中,所述仲裁器用于向所述第一處理電路發(fā)送數據0(&1);所述第一處理電路用于對所述數據Dfel)進行處理得到數據D(1,2),并向第二處理電路發(fā)送所述數據0(1,2);所述第二處理電路至所述第m處理電路分別用于對接收到的數據進行處理,其中,第i處理電路用于對第i_l處理電路提供的數據D(i_u)進行處理得到數據D(i,i+1)并且所述第i處理電路,并向第i+Ι處理電路發(fā)送所述數據D(i,i+1);所述仲裁器還用于接收所述第m處理電路發(fā)送的數據D(m,a)。
      [0016]結合第二方面,在第二方面的第一種可能的實現方式中,
      [0017]第X處理電路用于向所述第m+1處理電路發(fā)送數據D(x,m+1),所述數據D(x,m+1)等于數據D(x,x+1),所述數據D(x,x+1)為所述第X處理電路對第x-1處理電路提供的數據D0^x)進行處理得到的,所述第X處理電路是所述第一處理電路至第m-Ι處理電路中的一個處理電路。
      [0018]結合第二方面的第一種可能的實現方式,在第二方面的第二種可能的實現方式中,所述第m+1處理電路用于對所述數據D(x,m+1)進行處理得到數據D(m+1,y);并向第y處理電路發(fā)送所述數據D(m+1,y),所述第y處理電路為第x+2處理電路至所述第m處理電路中的一個處理電路或者所述仲裁器。
      [0019]結合第二方面的第二種可能的實現方式,在第二方面的第三種可能的實現方式中,當所述第y處理電路為所述第χ+2處理電路至所述第m處理電路中的一個處理電路時;所述第I處理電路還用于:接收所述數據D(m+1,y),對所述數據D(m+1,y)以及數據D^y)進行整合得到整合后的數據;其中,所述數據D(y_liy)為第y-Ι處理電路提供的數據;并對所述整合后的數據進行處理得到第D(y,y+1)數據;向第y+Ι處理電路或者所述仲裁器發(fā)送所述數據
      D(y’y+1)。
      [0020]結合第二方面的第三種可能的實現方式,在第二方面的第四種可能的實現方式中,所述第I處理電路具體用于:僅保留所述數據D(m+1,y)和所述數據D^y)中的一個;或
      [0021]將所述數據D(m+1,y)和所述數據D(y_i,y)按域對齊,在每個域,選擇所述數據D(m+1,y)或所述數據D(y_liy)在所述每個域的數據,形成所述整合后的數據。
      [0022]結合第二方面或第二方面的第一種可能的實現方式至第二方面的第四種可能的實現方式中的任意一種,在第二方面的第五種可能的實現方式中,所述第一處理電路至所述第m處理電路中的每兩個處理電路第P處理電路和第q處理電路,第P處理電路的輸出端與第q處理電路的輸入端之間存在連接,第q處理電路的輸出端與第P處理電路的輸入端之間不存在連接,P小于q。
      [0023]第三方面,提供了一種數 據處理設備,包括:
      [0024]接收器,用于接收第一數據;
      [0025]第二方面或第二方面的第一種可能的實現方式至第二方面的第五種可能的實現方式中任意一種所述的處理器,用于通過對所述第一數據進行處理得到第二數據;
      [0026]發(fā)送器,用于發(fā)送所述第二數據。
      [0027]本申請有益效果如下:
      [0028]在本申請實施例中,仲裁器向第一處理電路發(fā)送數據D(a,D。第一處理電路通過對數據Dfel)進行處理得到數據D(1,2)。第一處理電路是m個處理電路中的一個處理電路。m個處理電路包括第一處理電路至第m處理電路。第一處理電路向第二處理電路發(fā)送數據D(1,2)0第二處理電路至第m處理電路分別對接收到的數據進行處理。其中,第i處理電路通過對第i_l處理電路提供的數據D(i_u)進行處理得到數據D(i,i+1)并且第i處理電路向第i+Ι處理電路發(fā)送數據D(i,i+1)。仲裁器接收第m處理電路發(fā)送的數據D(m,a)。m為大于I的整數。仲裁器以及第一處理電路至第m處理電路是處理器中的部件。處理器還包括第m+1處理電路。第一處理電路至第m+1處理電路中的每個處理電路能夠接收仲裁器發(fā)送的第一待處理數據,并且對第一待處理數據進行處理。因此,當包含m+1個處理電路的處理器中的m個處理電路能夠完成對數據的處理時,數據的處理過程只需要包括m級流水線。也就是說,m個處理電路分別對接收到的數據進行處理后,第m個處理電路將處理后的數據輸出至仲裁器?,F有技術中,包含m+1個處理電路的處理器對數據進行處理時,數據的處理過程需要包括m+1級流水線。也就是說,現有技術中,m+1個處理電路分別對接收到的數據進行處理后,第m+1個處理電路將處理后的數據輸出至仲裁器。因此,本申請實施例中的數據處理方法可以降低數據處理的時延,提高數據處理的效率。
      【專利附圖】

      【附圖說明】
      [0029]圖1為現有技術中采用流水線架構的網絡處理器的結構示意圖;
      [0030]圖2為本申請實施例提供的處理器的結構示意圖;[0031]圖3a-圖3b為本申請實施例中的流水線的結構示意圖;
      [0032]圖4a-圖4b為本申請實施例中的整合數據的示意圖;
      [0033]圖5為本申請實施例中的處理電路的一個具體示例的結構圖;
      [0034]圖6為本申請實施例中的環(huán)回處理的示意圖;
      [0035]圖7為本申請實施例中的數據處理方法的流程圖。
      【具體實施方式】
      [0036]本申請實施例提供一種一種數據處理方法及處理器,用以解決現有技術中存在的流水線固定而導致數據處理的時延較大的問題。
      [0037]本申請實施例中的技術方案為解決上述的技術問題,總體思路如下:
      [0038]在本申請實施例中,仲裁器向第一處理電路發(fā)送數據D(a,D。第一處理電路通過對數據D(a,D進行處理得到數據D(1,2)。第一處理電路是m個處理電路中的一個處理電路。m個處理電路包括第一處理電路至第m處理電路。第一處理電路向第二處理電路發(fā)送數據D(1,2)0第二處理電路至第m處理電路分別對接收到的數據進行處理。其中,第i處理電路通過對第i_l處理電路提供的數據D(i_u)進行處理得到數據D(i,i+1)并且第i處理電路向第i+Ι處理電路發(fā)送數據D(i,i+1)。仲裁器接收第m處理電路發(fā)送的數據D(m,a)。m為大于I的整數。仲裁器以及第一處理電路至第m處理電路是處理器中的部件。處理器還包括第m+1處理電路。第一處理電路至第m+1處理電路中的每個處理電路能夠接收仲裁器發(fā)送的第一待處理數據。并且對第一待處理數據進行處理。因此,當包含m+1個處理電路的處理器中的m個處理電路能夠完成對數據的處理時,數據的處理過程只需要包括m級流水線。也就是說,m個處理電路分別對接收到的數據進行處理后,第m個處理電路將處理后的數據輸出至仲裁器。現有技術中,包含m+1個處理電路的處理器對數據進行處理時,數據的處理過程需要包括m+1級流水線。也就是說,現有技術中,m+1個處理電路分別對接收到的數據進行處理后,第m+1個處理電路將處理后的數據輸出至仲裁器。因此,本申請實施例中的數據處理方法可以降低數據處理的時延,提高數據處理的效率。
      [0039]為使本申請實施例的目的、技術方案和優(yōu)點更加清楚,下面將結合本申請實施例中的附圖,對本申請實施例中的技術方案進行清楚地描述,顯然,所描述的實施例是本申請一部分實施例,而不是全部的實施例?;诒旧暾堉械膶嵤├?,本領域普通技術人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本申請保護的范圍。
      [0040]圖2為一個處理器的結構示意圖。該處理器具體例如是網絡處理器,也可以是中央處理器(英文:central processing unit,簡稱:CPU)。該處理器包括:仲裁器、m個處理電路以及第m+1個處理電路。m個處理電路包括第一處理電路至第m處理電路。m個處理電路分別與該仲裁器耦合。m為大于I的整數。第m+1個處理電路與該仲裁器耦合。第一處理電路至第m+1處理電路中的每個處理電路能夠接收仲裁器發(fā)送的第一待處理數據,并且對第一待處理數據進行處理。
      [0041]需要說明的是,“第一待處理數據”用于泛指待處理數據。本申請并不限定第一處理電路至第m+1處理電路中的每個處理電路能夠接收到的數據必須相同。
      [0042]需要說明的是,如無相反的說明,本申請中的數據D(x1,x2)是指Xl向x2提供的數據。當xl或者x2等于a時,xl或者x2是指仲裁器(英文:arbiter,簡稱:a)。當xl或者x2等于某個數字或者用于表示數字的符號時,xl或者x2是指該數字或者該符號對應的處理電路。例如,當xl或者x2等于I時,xl或者x2是指第一處理電路。當xl或者x2等于m時,xl或者x2是指第m處理電路。
      [0043]需要指出的是,本申請中的數據D(m,m+1)不是指第m處理電路向第m+1處理電路提供的數據,而是指第m處理電路向仲裁器提供的數據。也就是說,數據D(m,m+1)是指數據0(1^)。
      [0044]其中,當仲裁器獲得數據時,例如獲得數據0(+1),仲裁器用于向第一處理電路發(fā)送數據Dy);第一處理電路用于對數據D(a,D進行處理得到數據D(1,2),并向第二處理電路發(fā)送數據D(1,2);第二處理電路至第m處理電路分別用于對接收到的數據進行處理。其中,第i處理電路用于對第i_l處理電路提供的數據D(i_u)進行處理得到數據D(i,i+1),并向第i+Ι處理電路發(fā)送數據D(i,i+1)。仲裁器還用于接收第m處理電路發(fā)送的數據D(m,a)。也就是說,i的取值范圍是2至m中的所有正整數。例如,當m等于3時,i的取值范圍是2和3。當m等于2時,i的取值為2。
      [0045]第二處理電路至第m處理電路分別用于對接收到的數據進行處理具體包括:第二處理電路對第一處理電路提供的數據0(1,2)進行處理得到D(2,3)。第二處理電路至第m處理電路分別用于對接收到的數據進行處理具體包括:第m處理電路對第m-Ι處理電路提供的數據D(m_lim)進行處理得到D(ill, m+1) O根據上文,數據D(m, m+1) 是指第m處理電路向仲裁器提供的數據。也就是說,數據D(m,m+1)是指數據0(1^)。另外,當m等于2時,第二處理電路對第一處理電路提供的數據D(1,2)進行處理得到D(2,3)的操作與第m處理電路對第m-Ι處理電路提供的數據D0^m)進行處理得到D
      (ill, m+1) 的操作是同一個操作。
      [0046]以下舉一個具體的例子來說明,請同時參考圖2和圖3a。假設處理器共有8級處理電路。如圖3a所示,從左至右的級數分別為第一級至第八級。假設m取值為5,m個處理電路中的第一處理電路至第m處理電路分別對應第一級處理電路101、第三級處理電路102、第四級處理電路103、第五級處理電路104和第七級處理電路105,在本實施例中,第m+1處理電路例如為第2級處理電路,當然,也可以是第六級處理電路,也可以是第八級處理電路。
      [0047]按照現有技術中的方法,盡管數據D(a,D只需要5個處理電路的處理,但數據D(a,D依然會被輸入到第一級處理電路101中,然后按照處理電路的級數由小到大遍歷第一級處理電路101、第二級處理電路106至第八級處理電路,才會輸出到仲裁器。然而按照本申請實施例中的處理器的結構,數據D(a,D只要經第一級處理電路101、第三級處理電路102、第四級處理電路103、第五級處理電路104和第七級處理電路105這5個處理電路處理,即可從第七級處理105電路輸出至仲裁器。而不需要經過第m+1處理電路。即第二級處理電路106的處理。類似的,也不需要經過第六級處理電路的處理。換言之,可以跳過不需要經過的處理電路。進一步,因為從第m處理電路就可以將處理結果輸出,所以也不需要再經過剩余的第八級處理電路的處理。即可以提前從處理電路組成的流水線上跳出。因此,本申請實施例中的處理器的結構可以降低數據處理的時延,提高數據處理的效率。
      [0048]可選的,第一處理電路至第m處理電路分別根據第一代碼至第m代碼對接收的數據進行處理。其中,數據D(i,i+1)中包含第i+Ι代碼的標識,第i處理電路為第一處理電路至第m-Ι處理電路。因此,通過第i+Ι代碼的標識能夠確定下一個處理電路為第i+Ι處理電路。換言之,當前處理電路能夠確定下一個處理電路具體為哪級處理電路。舉例來說,當前處理電路可以根據代碼進行查表,查表后,輸出一個stage ID,可以根據stage ID、stageID與處理電路之間的映射關系,可以確定下一個處理電路。
      [0049]可選的,對于本實施例中的第一處理電路具體為哪級處理電路,可以由仲裁器確定。在前述實施例中是以第一處理電路為第一級處理電路101為例進行說明的。但在實際運用中,第一處理電路也可能是第三級處理電路102。
      [0050]可選地,圖2所示處理器還可以包括可編程報文解析器。
      [0051]舉例來說,仲裁器可以根據如圖2中所示的可編程報文解析器提供的StageID來確定第一處理電 路,stage ID可以是第一處理電路對應的代碼的標識。而解析器可以根據入端口確定stage ID0
      [0052]可選的,第一處理電路至第m-Ι處理電路中的任一處理電路,記為第X處理電路,用于向第m+1處理電路發(fā)送數據D (X,m+1),數據D (X,m+1)
      等于數據D
      (X,X+1)數據D (X,X+1) 為第X處理電路對第x-1處理電路提供的數據D0^x)進行處理得到的。換言之,第X處理電路進行處理得到的數據D(x,x+1)被復制成兩份,分別發(fā)送給第m-Ι處理電路和第x+1處理電路,其中發(fā)送給第x+1處理電路由前述描述第一處理電路至第m處理電路的處理方式可以得到。SP,本申請實施例中的處理器的結構,支持并行處理的方式對數據進行處理,該結構通常應用于并行查找以降低時延的場景。需要說明的是,這里的數據D(x,m+1)的下標中,X表示該數據為第X處理電路提供的數據,m+1表示第m+1處理電路。
      [0053]舉例來說,假設第X處理電路為第一處理電路,第m+1電路為第二級處理電路106,如圖3b所示,即第一級處理電路101,那么第一處理電路就可以對數據Da2)進行復制從而得到數據D(1,m+1),并分別將數據D(1,2)以及D(1,m+1)發(fā)送給第二級處理電路106和第三級處理電路102。
      [0054]再假設,第X處理電路為第m-Ι處理電路,如圖3b中所示的第五級處理電路104,第m+1處理電路為第八級處理電路,那么第五級處理電路104就可以對數據D0l^m)進行復制從而得到數據D011^1),并分別發(fā)送給第七級處理電路105和第八級處理電路。
      [0055]進一步,當第m+1接收到數據D(x,m+1)時,第m+1處理電路用于對數據D(x,m+1)進行處理得到數據D(m+1,y);并向第y處理電路發(fā)送數據D(m+1,y),第y處理電路為第x+2處理電路至第m處理電路中的一個處理電路或者仲裁器。
      [0056]繼續(xù)沿用前述所舉的實例,在第一個例子中,第X處理電路為第一處理電路,那么第y處理電路就可以是第三處理電路至第m電路中的一個處理電路,如圖3b中所示,第y處理電路為第三處理電路,即第四級處理電路103。在圖3b所示的實施例中,并行處理只經過了一個處理電路,即第二處理電路,換言之,只有第二處理電路和第m+1處理電路并行處理,在第三處理電路處就匯聚了,但是在實際運用中,并行處理可以經過多個處理電路,例如可以是通過第二處理電路、第三處理電路、第四處理電路直至第m-Ι處理電路和第m+1處理電路并行處理,在第m處理電路處匯聚,此時第y處理電路為第m處理電路。
      [0057]在前述第二個例子中,第X處理電路為第m-Ι處理電路,如圖3b中所示的第五級處理電路104,第m+1處理電路為第八級處理電路,所以第m+1處理電路將數據D(m+1,y)發(fā)送給仲裁器,此時,第y處理電路即為仲裁器。
      [0058]可選的,當第J處理電路為第x+2處理電路至第m處理電路中的一個處理電路時,
      第y處理電路還用于:接收數據D(m+1,y),對數據D(m+1,y)以及數據D(y_i,y)進行整合得到整合后的數據。其中,數據D^y)為第y-Ι處理電路提供的數據。第y處理電路還用于對整合后的數據進行處理得到第D(y,y+1)數據,以及向第y+Ι處理電路或者仲裁器發(fā)送數據D(y,y+1)。其中,當第y處理電路為第m處理電路時,第y處理電路向仲裁器發(fā)送數據D(y,y+1)。
      [0059]因為數據D(m+1,y)和數據D(y_i,y)達到第y處理電路的時間可能不一致,所以將二者進行整合,便于第I處理電路對這兩個數據的處理。
      [0060]在實際運用中,對兩者進行整合的方式可以有多種。具體來說,第y處理電路具體用于:僅保留數據D(m+1,y)和數據D^y)中的一個。
      [0061]可替換地,第y處理電路具體用于:將數據D(m+1,y)和數據D(y_i,y)按域對齊,在每個域,選擇數據D(m+1,y)或數據D(y_liy)在每個域的數據,形成整合后的數據。
      [0062]具體來說,將數據D(m+1,y)和數據D(y_i,y)按域對齊可以是:數據D(m+1,y)和數據D(y_i,y)都包括多個域。將數據D(m+1,y)和數據D(y_liy)中的相同的域對齊。例如,數據D(m+1,y)和數據D^y)都可以包括目的網際協議(英文dnternet protocol,簡稱:IP)地址域以及目的媒體訪問控制(英文:media access control,簡稱:MAC)協議地址域。其中,目的IP地址域用于承載目的IP地址。目的MAC地址域用于承載目的MAC地址。 [0063]對于將數據D(m+1,y)和數據D(y_i,y)按域對齊,在每個域,選擇數據D(m+1,y)或數據D^y)在每個域的數據,形成整合后的數據的方式,請參考圖4a和圖4b所示,為兩種不同的實現方式。
      [0064]在圖4a的方式中,將數據D(m+1,y)和數據D^y)按域對齊,例如每個數據有4個域,在每個域上,可以指定一個獨占的輸入源,例如在圖4a所示的方式中,在整合后的數據的域I上,保留數據D(m+1,y)的域I上的數據AB,在整合后的數據的域2上,保留數據D(y_i,y)的域2上的數據34,在整合后的數據的域3上,保留數據D(y_i,y)的域3上的數據56,在整合后的數據的域4上,保留數據D(m+1,y)的域4上的數據,其中,黑色表示無效數據。舉例來說,無效數據可以是未賦值數據或處理電路將對應域無效化的域數據。
      [0065]在圖4b的方式中,與圖4a中的方式類似。不同的是,在每個域上,按照數據D(ni+1,y)和數據D(y_liy)的優(yōu)先級來確定保留哪個數據。在圖4b中,在域I和域3上,數據D(m+1,y)的優(yōu)先級大于數據D(y_i,y)的優(yōu)先級。在域2和域4上,數據D(m+1,y)的優(yōu)先級小于數據D(y_i,y)的優(yōu)先級。
      [0066]舉例來說,數據D(m+1,y)和數據D^y)可以攜帶用于指示各自的每個域的優(yōu)先級的信息。整合后的數據中每個域的值等于優(yōu)先級高的對應的域的值。
      [0067]例如,數據D(ni+1,y)攜帶的目的IP地址域的優(yōu)先級的信息指示數據D(ni+1,y)的目的IP地址域的優(yōu)先級為高。數據D^y)攜帶的目的IP地址域的優(yōu)先級的信息指示數據D(y_liy)的目的IP地址域的優(yōu)先級為低。數據D(m+1,y)攜帶的目的MAC地址域的優(yōu)先級的信息指示數據D(m+1,y)的目的MAC地址域的優(yōu)先級為低。數據D^y)攜帶的目的MAC地址域的優(yōu)先級的信息指示數據D^y)的目的MAC地址域的優(yōu)先級為高。因此,整合后的數據中目的IP地址域的值等于數據D(ni+1,y)中目的IP地址域的值。整合后的數據中目的MAC地址域的值等于數據D(y_1;y)中目的MAC地址域的值。
      [0068]結合以上各實施例,第一處理電路至第m處理電路中的每兩個處理電路第P處理電路和第q處理電路,第P處理電路的輸出端與第q處理電路的輸入端之間存在連接,第q處理電路的輸出端與第P處理電路的輸入端之間不存在連接,P小于q。如圖5所示。換言之,處理器的N級處理電路之間,第j級處理電路的輸出端與第j+Ι級至第N級處理電路的輸入之間存在連接,而不與第I級至第j-ι級處理電路的輸入端之間不存在連接。
      [0069]接下來將舉一個具體的例子說明本申請實施例中的處理器的一種可能的實現結構,假設處理器共有m+1級處理電路,m個處理電路分別對應至第一級處理電路至第m級處理電路,第m+1處理電路對應到第m+1級處理電路。每個處理電路包括:重組緩存器、調度器和處理單元。例如:請參考圖5所示,第一級處理電路包括:重組緩存器1、調度器I和第一處理單元(圖中未示出)。仲裁器的輸出端可以連接到所有的處理電路的輸入端;第一處理單元的輸出端可以連接到第二處理電路至第m+1級處理電路的輸入端。
      [0070]每級處理電路接收到數據之后,可以先存儲在重組緩存器中,前述數據的整合可以由重組緩存器來執(zhí)行。當重組緩存器中存儲的數據來自多個不同的輸入源時,調度器具體可以根據預定的規(guī)則對多個輸入源的輸入數據進行選擇調度至處理單元,例如:多個輸入源的輸入數據中將哪個數據先調度至處理單元進行處理。
      [0071]舉例來說,預定的規(guī)則可以是基于數據或流水線級數的優(yōu)先級進行嚴格優(yōu)先級調度規(guī)則,也可以是輪詢的調度規(guī)則。
      [0072]可選的,處理單元主要完成協議無關轉發(fā)的具體處理動作,處理單元可以包括查表單元和動作單元,實現查表和執(zhí)行轉發(fā)動作的功能。動作單元的具體實現方法,既可以使用一個或多個處理器核并行處理輸入數據,這種方式可以進行相對復雜的處理操作;也可以使用多個算數邏輯單元的串并組合進行處理,這種實現方式相對簡單。
      [0073]進一步,本實施例中的處理器還可以解決傳統(tǒng)流水線復雜處理環(huán)回性能減半的問題,方法是將環(huán)回的指令均勻部署在多個處理電路上,實現類似于負載均衡的效果,提高整條流水線的吞吐能力,所以當輸出至仲裁器的數據0(&1)不是最終的處理結果時,就表示需要環(huán)回,所以仲裁器具體還用于將需要環(huán)回的數據0(+1)對應的流量均勻分配至m個處理電路上繼續(xù)處理,此時,m個處理電路形成多段相互獨立的處理流水線,這多段相互獨立的處理流水線并行處理數據D(a,D。
      [0074]舉例來說,請參考圖6所示,假設流水線共有九級處理電路,而轉發(fā)業(yè)務需要10級處理電路才能完成處理工作。使用傳統(tǒng)流水線的環(huán)回方式,即數據遍歷兩遍九級處理電路,會將整條業(yè)務的吞吐率降為流水線吞吐率的50%??梢詫⑻幚砬谐蓛啥危耙欢握加?個處理電路,映射到第I至8級處理電路上,負責流水線吞吐率80%的數據的處理;而后一段占用2個,利用逐包負載分擔的方式,例如仲裁器接收到第一個處理結果時,就分配給第I級處理電路進行處理,當接收到第二個處理結果時,就分配給第3級處理電路進行處理,依此類推,就等效于將80%的流量均勻分布在四段短的流水線上,每段流水線處理20%的流量。這樣,總計可以實現流水線吞吐速率80%的數據處理,其性能明顯優(yōu)于傳統(tǒng)流水線架構的 50%。
      [0075]可選的,處理器還包括:報文編輯器,仲裁器將處理結果輸出給報文編輯器,報文編輯器用于對輸入的數據Dfel)根據報文轉發(fā)的需求進行相應的編輯操作,例如插入、替換或刪除某層協議頭或字段,計算校驗和等。
      [0076]在實際運用中,本申請實施例中的處理器可以應用于交換機、路由器或者其他需要進行流水線處理的數據處理設備。該數據處理設備包括:接收器,用于接收第一數據。如前述各實施例中描述的處理器,用于通過對第一數據進行處理得到第二數據。發(fā)送器,用于發(fā)送第二數據。
      [0077]基于同一發(fā)明構思,本申請實施例還提供一種數據處理方法。所述方法的執(zhí)行主體可以是處理器。圖7為所述方法的流程示意圖。圖2、圖3a和/或者圖3b所示的處理器可以用于執(zhí)行圖7所示的方法。圖7所示的方法涉及到的術語的含義以及具體實現,可以參考圖2、圖3a和/或者圖3b以及實施例的相關描述。請參考圖7所示,該方法包括以下內容:
      [0078]401:仲裁器向第一處理電路發(fā)送數據D(a,D。
      [0079]402:第一處理電路通過對數據D(a,D進行處理得到數據D(1,2)。
      [0080]403:第一處理電路向第二處理電路發(fā)送數據D(1,a。
      [0081]404:第二處理電路至第m處理電路分別對接收到的數據進行處理,其中,第i處理電路通過對第i_l處理電路提供的數據D(i_u)進行處理得到數據D(i,i+1)并且第i處理電路向第i+Ι處理電路發(fā)送數據D(i,i+1)。
      [0082]405:仲裁器接收第m處理電路發(fā)送的數據D(m,a)。
      [0083]可選的,第X處理電路向第m+1處理電路發(fā)送數據D(x,m+1),數據D(x;ffl+1)等于數據D(x,x+1),數據D(x,x+1)為第X處理電路對第x-1處理電路提供的數據D0^x)進行處理得到的,第X處理電路是第一處理電路至第m-Ι處理電路中的一個處理電路。
      [0084]進一步,在第X處理電路向第m+1處理電路發(fā)送數據D(x,m+1)之后,該方法還包括:第m+1處理電路通過對數據D(x,m+1)進行處理得到數據D(m+1,y);第m+1處理電路向第y處理電路發(fā)送數據D(m+1,y),第y處理電路為第x+2處理電路至第m處理電路中的一個處理電路或者仲裁器。
      [0085] 進一步,該方法還包括:第y處理電路接收數據D(m+1,y),第y處理電路為第x+2處理電路至第m處理電路中的一個處理電路;第y處理電路通過對數據D(m+1,y)以及數據D(y_i,y)進行整合得到整合后的數據;其中,數據D(y_i,y)為第y-Ι處理電路提供的數據;第y處理電路通過對整合后的數據進行處理得到第D(y,y+1)數據;第y處理電路向第y+Ι處理電路或者仲裁器發(fā)送數據D(y,y+1)。
      [0086]進一步,第y處理電路通過對數據D(m+1,y)以及數據D(y_liy)進行整合得到整合后的數據,具體包括--第y處理電路僅保留數據D(m+1,y)和數據D(y_i,y)中的一個;或,第y處理電路將數據D(m+1,y)和數據D(y_i,y)按域對齊,在每個域,選擇數據D(m+1,y)或數據D(y_i,y)在每個域的數據,形成整合后的數據。
      [0087]結合以上各實施例,第一處理電路至第m處理電路中的每兩個處理電路第P處理電路和第q處理電路,第P處理電路的輸出端與第q處理電路的輸入端之間存在連接,第q處理電路的輸出端與第P處理電路的輸入端之間不存在連接,P小于q。
      [0088]其中,本實施例中的數據處理方法的【具體實施方式】,在前述描述處理器及其各個元件的工作過程時已做了詳細描述,在此基礎上,本領域技術人員可以清楚的知道本實施例中數據處理方法的實施方法,所以為了說明書的簡潔,在此不再詳述。
      [0089]本領域內的技術人員應明白,本申請的實施例可提供為方法、系統(tǒng)、或計算機程序產品。因此,本申請可采用完全硬件實施例、完全軟件實施例、或結合軟件和硬件方面的實施例的形式。而且,本申請可采用在一個或多個其中包含有計算機可用程序代碼的計算機可用存儲介質(包括但不限于磁盤存儲器、CD-ROM、光學存儲器等)上實施的計算機程序產品的形式。
      [0090]本申請是參照根據本申請實施例的方法、設備(系統(tǒng))、和計算機程序產品的流程圖和/或方框圖來描述的。應理解可由計算機程序指令實現流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結合。可提供這些計算機程序指令到通用計算機、專用計算機、嵌入式處理機或其他可編程數據處理設備的處理器以產生一個機器,使得通過計算機或其他可編程數據處理設備的處理器執(zhí)行的指令產生用于實現在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的裝置。
      [0091]這些計算機程序指令也可存儲在能引導計算機或其他可編程數據處理設備以特定方式工作的計算機可讀存儲器中,使得存儲在該計算機可讀存儲器中的指令產生包括指令裝置的制造品,該指令裝置實現在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能。
      [0092]這些計算機程序指令也可裝載到計算機或其他可編程數據處理設備上,使得在計算機或其他可編程設備上執(zhí)行一系列操作步驟以產生計算機實現的處理,從而在計算機或其他可編程設備上執(zhí)行的指令提供用于實現在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的步驟。
      [0093]顯然,本領域的技術人員可以對本申請實施例進行各種改動和變型而不脫離本申請實施例的精神和范圍。這樣,倘若本申請實施例的這些修改和變型屬于本申請權利要求及其等同技術的范圍之內,則本申請也意圖包含這些改動和變型在內。
      【權利要求】
      1.一種數據處理方法,其特征在于,包括: 仲裁器向第一處理電路發(fā)送數據D(“ ; 所述第一處理電路通過對所述數據D^1)進行處理得到數據D(1,2),所述第一處理電路是m個處理電路中的一個處理電路,所述m個處理電路包括所述第一處理電路至第m處理電路; 所述第一處理電路向第二處理電路發(fā)送所述數據D(1,2); 所述第二處理電路至所述第m處理電路分別對接收到的數據進行處理,其中,第i處理電路通過對第i_l處理電路提供的數據D(i_u)進行處理得到數據D(i,i+1)并且所述第i處理電路向第i+Ι處理電路發(fā)送所述數據D(i,i+1); 所述仲裁器接收所述第m處理電路發(fā)送的數據D(m,a),m為大于I的整數,所述仲裁器以及所述第一處理電路至所述第m處理電路是處理器中的部件,所述處理器還包括第m+1處理電路,所述第一處理電路至所述第m+1處理電路中的每個處理電路能夠接收所述仲裁器發(fā)送的第一待處理數據,并且對所述第一待處理數據進行處理。
      2.如權利要求1所述的方法,其特征在于,所述方法還包括: 第X處理電路向所述第m+1處理電路發(fā)送數據D(x,m+1),所述數據D(x,m+1)等于數據D(x,x+1),所述數據D(x,x+1)為所述第X處理電路對第x-1處理電路提供的數據D0^x)進行處理得到的,所述第X處理電路是所述第一處理電路至第m-Ι處理電路中的一個處理電路。
      3.如權利要求2所述的方法,其特征在于,在所述第X處理電路向所述第m+1處理電路發(fā)送數據D
      (X,m+1) 之后,所述方法還包括: 所述第m+1處理電路通過對所述數據D(x,m+1)進行處理得到數據D(m+1,y); 所述第m+1處理電路向第y處理電路發(fā)送所述數據D(m+1,y),所述第y處理電路為第x+2處理電路至所述第m處理電路中的一個處理電路或者所述仲裁器。
      4.如權利要求3所述的方法,其特征在于,所述方法還包括: 所述第I處理電路接收所述數據D(m+1,y),所述第y處理電路為所述第x+2處理電路至所述第m處理電路中的一個處理電路; 所述第I處理電路通過對所述數據D(m+1,y)以及數據D(y_liy)進行整合得到整合后的數據;其中,所述數據D^y)為第y-Ι處理電路提供的數據; 所述第I處理電路通過對所述整合后的數據進行處理得到第D(y,y+1)數據; 所述第I處理電路向第y+Ι處理電路或者所述仲裁器發(fā)送所述數據D(y,y+1)。
      5.如權利要求4所述的方法,其特征在于,所述第y處理電路通過對所述數據D(m+1,y)以及數據D(y_liy)進行整合得到整合后的數據,具體包括: 所述第I處理電路僅保留所述數據D(m+1,y)和所述數據D(y_liy)中的一個;或所述第I處理電路將所述數據D(m+1,y)和所述數據D(y_liy)按域對齊,在每個域,選擇所述數據D(m+1,y)或所述數據D(y_liy)在所述每個域的數據,形成所述整合后的數據。
      6.如權利要求1-5任一項所述的方法,其特征在于,所述第一處理電路至所述第m處理電路中的每兩個處理電路第P處理電路和第q處理電路,第P處理電路的輸出端與第q處理電路的輸入端之間存在連接,第q處理電路的輸出端與第P處理電路的輸入端之間不存在連接,P小于q。
      7.—種處理器,其特征在于,包括:仲裁器; m個處理電路,包括第一處理電路至第m處理電路,所述m個處理電路分別與所述仲裁器耦合為大于I的整數; 第m+1個處理電路,與所述仲裁器耦合,所述第一處理電路至所述第m+1處理電路中的每個處理電路能夠接收所述仲裁器發(fā)送的第一待處理數據,并且對所述第一待處理數據進行處理; 其中,所述仲裁器用于向所述第一處理電路發(fā)送數據D(a,D ;所述第一處理電路用于對所述數據0(&1)進行處理得到數據D(1,2),并向第二處理電路發(fā)送所述數據Da2);所述第二處理電路至所述第m處理電路分別用于對接收到的數據進行處理,其中,第i處理電路用于對第1-Ι處理電路提供的數據D(i_u)進行處理得到數據D(i,i+1)并且所述第i處理電路,并向第i+Ι處理電路發(fā)送所述數據D(i,i+1);所述仲裁器還用于接收所述第m處理電路發(fā)送的數據 D(m’a)。
      8.如權利要求7所述的處理器,其特征在于, 第X處理電路用于向所述第m+1處理電路發(fā)送數據D(x,m+1),所述數據D(x,m+1)等于數據D(x,x+1),所述數據D(x,x+1)為所述第X處理電路對第x-1處理電路提供的數據D0^x)進行處理得到的,所述第X處理電路是所述第一處理電路至第m-Ι處理電路中的一個處理電路。
      9.如權利要求8所述的處理器,其特征在于, 所述第m+1處理電路用于對所述數據D(x,m+1)進行處理得到數據D(m+1,y);并向第y處理電路發(fā)送所述數據D(m+1,y),所述第J處理電路為第x+2處理電路至所述第m處理電路中的一個處理電路或者所述仲裁器。
      10.如權利要求9所述的處理器,其特征在于,當所述第I處理電路為所述第x+2處理電路至所述第m處理電路中的一個處理電路時;所述第J處理電路還用于:接收所述數據D(m+1,y),對所述數據D(m+1,y)以及數據D(y_liy)進行整合得到整合后的數據;其中,所述數據D^y)為第y-Ι處理電路提供的數據;并對所述整合后的數據進行處理得到第D(y,y+1)數據;向第y+Ι處理電路或者所述仲裁器發(fā)送所述數據D(y,y+1)。
      11.如權利要求10所述的處理器,其特征在于,所述第I處理電路具體用于:僅保留所述數據D(m+1,y)和所述數據D(y_i,y)中的一個;或 將所述數據D(m+1,y)和所述數據D(y_liy)按域對齊,在每個域,選擇所述數據D(m+1,y)或所述數據D(y_liy)在所述每個域的數據,形成所述整合后的數據。
      12.如權利要求7-11任一項所述的處理器,其特征在于,所述第一處理電路至所述第m處理電路中的每兩個處理電路第P處理電路和第q處理電路,第P處理電路的輸出端與第q處理電路的輸入端之間存在連接,第q處理電路的輸出端與第P處理電路的輸入端之間不存在連接,P小于q。
      13.一種數據處理設備,其特征在于,包括: 接收器,用于接收第一數據; 如權利要求7-12任一項所述的處理器,用于通過對所述第一數據進行處理得到第二數據; 發(fā)送器,用于發(fā)送所述第二數據。
      【文檔編號】G06F15/163GK103955445SQ201410182569
      【公開日】2014年7月30日 申請日期:2014年4月30日 優(yōu)先權日:2014年4月30日
      【發(fā)明者】李楠, 王臨春, 陳洪飛 申請人:華為技術有限公司
      網友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1