JP5834145B2 - ネットワークパケットの並列処理 - Google Patents
ネットワークパケットの並列処理 Download PDFInfo
- Publication number
- JP5834145B2 JP5834145B2 JP2014535711A JP2014535711A JP5834145B2 JP 5834145 B2 JP5834145 B2 JP 5834145B2 JP 2014535711 A JP2014535711 A JP 2014535711A JP 2014535711 A JP2014535711 A JP 2014535711A JP 5834145 B2 JP5834145 B2 JP 5834145B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- header
- circuit
- packet
- extraction
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000012545 processing Methods 0.000 title claims description 58
- 238000000605 extraction Methods 0.000 claims description 222
- 239000000872 buffer Substances 0.000 claims description 25
- 238000013075 data extraction Methods 0.000 claims description 14
- 230000004044 response Effects 0.000 claims description 12
- 238000000034 method Methods 0.000 description 19
- 230000008569 process Effects 0.000 description 17
- 230000007246 mechanism Effects 0.000 description 16
- 238000004364 calculation method Methods 0.000 description 9
- 239000000284 extract Substances 0.000 description 7
- 238000001514 detection method Methods 0.000 description 5
- 238000013459 approach Methods 0.000 description 4
- 238000013461 design Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 239000007787 solid Substances 0.000 description 3
- 238000010586 diagram Methods 0.000 description 2
- 238000007781 pre-processing Methods 0.000 description 2
- 230000003139 buffering effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 239000012634 fragment Substances 0.000 description 1
- 239000002184 metal Substances 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/54—Store-and-forward switching systems
- H04L12/56—Packet switching systems
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Description
本発明の1つ以上の実施の形態は、概して通信プロトコルに関し、より具体的にはデータパケットを操作するためのパケットプロセッサに関する。
電気通信回線速度の増大に伴い、スループットを維持するためにはより広いハードウェアデータバスの使用が必要である。たとえば、FPGAの実装の場合、一般的に、100Gb/sのパケット処理には512ビットのデータバスが使用され、400Gb/sのパケット処理には2048ビットのデータバスが使用される。その1つの結果として、2つ以上のパケットが、データバスにおいて並列に伝送される1組のビットに含まれる可能性がより高くなることが挙げられる。本明細書では、データバスの全幅において並列に送信されるビットの各組をワードと呼ぶ。
概要
ある実施の形態において、パケット処理回路が提供される。このパケット処理回路は、複数のヘッダ抽出回路と、複数のヘッダ抽出回路に接続されたスケジューリング回路とを備える。スケジューリング回路は、複数のデータレーンを有するデータバスからそれぞれのパケットのヘッダデータを抽出することを要求するヘッダデータ抽出要求を1つ以上受けるように構成される。スケジューリング回路は、各要求に応じて、この要求によって指定されたそれぞれのヘッダを含む複数のデータレーンの第1のサブセットを決定し、複数のデータレーンの第1のサブセットからそれぞれのヘッダデータを抽出するために、複数のヘッダ抽出回路のうち対応する1つのヘッダ抽出回路を割当てる。
i=1の場合、ヘッダ抽出回路iは、データレーン1〜2+(S−1)からデータを排他的に受けかつS個のデータレーン上で受けた前のワードからデータを受けるように構成され、
1<i<Kの場合、ヘッダ抽出回路iは、データレーン2*i−2〜2*i+(S−1)からデータを排他的に受けるように構成され、
i=Kの場合、ヘッダ抽出回路iは、データレーン2*K、2*K−1、および2*K−2からデータを排他的に受けるように構成される。スケジューリング回路は、データレーンJ(J<K)で受信された要求を受けたことに応じて、
パケットの終端を含まない、Jが偶数であるデータレーンJの場合は、要求をヘッダ抽出回路J/2+1に割当て、
それ以外の場合は、要求をヘッダ抽出回路(J+1)/2に割当てるように、構成されてもよい。スケジューリング回路はさらに、必要なすべてのヘッダデータが現在のデータワードに存在するとは限らない場合の要求を受けたことに応じて、要求を、次のデータワードで処理するためにバッファリングするように構成してもよい。
i=1の場合、ヘッダ抽出回路iは、データレーン1〜3+Sからデータを排他的に受けかつS個のデータレーン上で受けた前のワードからデータを受けるように構成され、
1<i<Kの場合、ヘッダ抽出回路iは、データレーンL*(i−2)+2〜L*(i−1)+(S+3)からのデータしか受けないように構成され、
i=Kの場合、ヘッダ抽出回路iは、データレーンL*(K−2)+2〜N/Qからのデータしか受けないように構成される。スケジューリング回路はさらに、データレーンJ上で受信された要求を受けたことに応じて、
J mod L=2であり、J<(N/Q)であり、かつデータレーンJがパケットの始点を含む場合、要求をヘッダ抽出回路(J+3L−3)/Lに割当てるように構成されてもよく、
J mod L=3であり、かつデータレーンJがパケットの終端を含む場合、要求をヘッダ抽出回路(J+L−3)/Lに割当てるように構成されてもよい。
1つ以上の実施の形態は、パケット処理回路のためのハードウェア効率の良い並列アーキテクチャを提供する。パケット処理回路は、データバス上で受けた複数のパケットのヘッダ情報を処理するための複数のヘッダ抽出回路を含む。データバスは複数のデータレーンに分割される。各ヘッダ抽出回路は、ヘッダ情報を、データレーンのそれぞれのサブセットから受けて抽出するように構成される。各抽出回路が受けるのはデータレーンの1つのサブセットのみであるので、必要なルーティング回路はより少なく各抽出回路が行なう抽出はより小さなシフト回路を用いて実現し得る。
Claims (14)
- パケット処理回路であって、
複数のヘッダ抽出回路を備え、各ヘッダ抽出回路はデータバスの複数のデータレーンの対応するサブセットを受けるように接続され、データレーンのサブセット同士は重複しており、
前記複数のヘッダ抽出回路に接続されたスケジューリング回路を備え、
前記スケジューリング回路は、
前記複数のデータレーンからそれぞれのパケットのヘッダデータを抽出することを要求するヘッダデータ抽出要求を複数受けるように構成および配置されるとともに、
前記複数の要求の各要求に応じて、
前記要求によって指定されたそれぞれのヘッダを含む複数のデータレーンの第1のサブセットを決定するように、かつ、
前記複数のデータレーンの第1のサブセットからそれぞれのヘッダデータを抽出するために、前記複数のヘッダ抽出回路のうち対応する1つのヘッダ抽出回路を割当てるように、構成および配置され、
前記ヘッダ抽出回路はさらに、それぞれのヘッダデータを並列に抽出するように構成される、パケット処理回路。 - 前記データバスはNビットのデータバスであり、
前記複数のヘッダ抽出回路は、前記データバス上で並列に受けることが可能なパケットの最大数以上の数であるK個のヘッダ抽出回路を含む、請求項1に記載のパケット処理回路。 - 各データレーンはQビットであり、
前記Nビットのデータで受けたデータパケットの、最大ヘッダサイズのヘッダは、S個のデータレーンを占め、
前記データレーンの第1のサブセットは、L個のデータレーンを含み、L*Qは、前記データバス上で受信し得る最小サイズのデータパケットに等しい、請求項2に記載のパケット処理回路。 - L=2であり、ヘッダ抽出回路i(1≦i≦K)について、
i=1の場合、ヘッダ抽出回路iは、データレーン1〜2+(S−1)からデータを排他的に受けかつS個のデータレーン上で受けた前のワードからデータを受けるように構成され、
1<i<Kの場合、ヘッダ抽出回路iは、データレーン2*i−2〜2*i+(S−1)からデータを排他的に受けるように構成され、
i=Kの場合、ヘッダ抽出回路iは、データレーン2*K、2*K−1、および2*K−2からデータを排他的に受けるように構成される、請求項3に記載のパケット処理回路。 - 前記スケジューリング回路は、データレーンJ(J<K)で受信された要求を受けたことに応じて、
パケットの終端を含まない、Jが偶数であるデータレーンJの場合は、前記要求をヘッダ抽出回路J/2+1に割当て、
それ以外の場合は、前記要求をヘッダ抽出回路(J+1)/2に割当てるように、構成される、請求項4に記載のパケット処理回路。 - 前記スケジューリング回路はさらに、必要なすべてのヘッダデータが現在のデータワードに存在するとは限らない場合の要求を受けたことに応じて、前記要求を、次のデータワードで処理するためにバッファリングするように構成される、請求項5に記載のパケット処理回路。
- L>2であり、ヘッダ抽出回路i(1≦i≦K)について、
i=1の場合、ヘッダ抽出回路iは、データレーン1〜3+Sからデータを排他的に受けかつS個のデータレーン上で受けた前のワードからデータを受けるように構成され、
1<i<Kの場合、ヘッダ抽出回路iは、データレーンL*(i−2)+2〜L*(i−1)+(S+3)からのデータしか受けないように構成され、
i=Kの場合、ヘッダ抽出回路iは、データレーンL*(K−2)+2〜N/Qからのデータしか受けないように構成される、請求項3に記載のパケット処理回路。 - 前記スケジューリング回路はさらに、データレーンJ上で受信された要求を受けたことに応じて、
J mod L=2であり、J<(N/Q)であり、かつデータレーンJがパケットの始点を含む場合、前記要求をヘッダ抽出回路(J+3L−3)/Lに割当てるように構成され、
J mod L=3であり、かつデータレーンJがパケットの終端を含む場合、前記要求をヘッダ抽出回路(J+L−3)/Lに割当てるように構成される、請求項7に記載のパケット処理回路。 - 前記複数のデータレーンの第1のサブセットから前記ヘッダデータを抽出するために、前記スケジューリング回路が前記複数のヘッダ抽出回路のうちの1つのヘッダ抽出回路を割当てたことに応じて、データを、前記データバスのレーンの第1のサブセットから、前記複数のヘッダ抽出回路のうちの1つである前記割当てられたヘッダ抽出回路までルーティングするように構成された、ルーティング回路をさらに備える、請求項1に記載のパケット処理回路。
- 前記要求は各々、パケットヘッダタイプ、パケット識別子、およびヘッダアドレスを指定する、請求項1に記載のパケット処理回路。
- 前記パケットヘッダ抽出回路は各々、前記データレーンの第1のサブセットからヘッダデータを抽出するように割当てられたことに応じて、前記要求によって示される前記パケットヘッダタイプから、前記データレーンの第1のサブセット内におけるヘッダデータのオフセットを求め、ヘッダデータの長さを求めるように構成される、請求項10に記載のパケット処理回路。
- 前記ヘッダデータは1つ以上のヘッダフィールドのデータを含む、請求項1に記載のパケット処理回路。
- 前記ヘッダデータはそれぞれのヘッダフィールドに対する1つ以上のポインタを含む、請求項1に記載のパケット処理回路。
- 前記スケジューリング回路は、前記データバス上で受けた各ワードについて、前記データバスからそれぞれのパケットのヘッダデータを抽出ことを要求する、1組の前記要求を受けるように構成され配置される、請求項1に記載のパケット処理回路。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/274,945 US8780914B2 (en) | 2011-10-17 | 2011-10-17 | Parallel processing of network packets |
US13/274,945 | 2011-10-17 | ||
PCT/US2012/038384 WO2013058831A1 (en) | 2011-10-17 | 2012-05-17 | Parallel processing of network packets |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2014528685A JP2014528685A (ja) | 2014-10-27 |
JP5834145B2 true JP5834145B2 (ja) | 2015-12-16 |
Family
ID=46201812
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2014535711A Active JP5834145B2 (ja) | 2011-10-17 | 2012-05-17 | ネットワークパケットの並列処理 |
Country Status (7)
Country | Link |
---|---|
US (1) | US8780914B2 (ja) |
EP (1) | EP2777230B1 (ja) |
JP (1) | JP5834145B2 (ja) |
KR (1) | KR101761462B1 (ja) |
CN (1) | CN103858393B (ja) |
IN (1) | IN2014CN02636A (ja) |
WO (1) | WO2013058831A1 (ja) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104184645B (zh) | 2013-05-27 | 2018-05-04 | 华为技术有限公司 | 一种生成操作请求的方法、设备及系统 |
CN108989311A (zh) * | 2013-05-31 | 2018-12-11 | 华为技术有限公司 | 生成输入参数的方法及设备 |
CN103346974B (zh) * | 2013-06-03 | 2015-04-08 | 华为技术有限公司 | 一种业务流程的控制方法及网络设备 |
US9946676B2 (en) | 2015-03-26 | 2018-04-17 | Intel Corporation | Multichip package link |
US10911579B1 (en) * | 2016-03-01 | 2021-02-02 | Amazon Technologies, Inc. | Generating programmatically defined fields of metadata for network packets |
US11108698B2 (en) * | 2017-02-03 | 2021-08-31 | Microsoft Technology Licensing, Llc | Systems and methods for client-side throttling after server handling in a trusted client component |
US11831743B1 (en) * | 2019-01-08 | 2023-11-28 | Xilinx, Inc. | Streaming architecture for packet parsing |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5862128A (en) | 1995-12-29 | 1999-01-19 | Gte Laboratories Inc | Merged buffer signal switch |
US6275508B1 (en) * | 1998-04-21 | 2001-08-14 | Nexabit Networks, Llc | Method of and system for processing datagram headers for high speed computer network interfaces at low clock speeds, utilizing scalable algorithms for performing such network header adaptation (SAPNA) |
JP2000183995A (ja) * | 1998-12-14 | 2000-06-30 | Sony Corp | データ処理回路 |
US6956852B1 (en) * | 1999-06-25 | 2005-10-18 | Cisco Technology Inc. | Multi-function high-speed network interface |
JP3730471B2 (ja) * | 2000-02-14 | 2006-01-05 | 富士通株式会社 | パケット転送装置 |
US7305047B1 (en) * | 2003-03-12 | 2007-12-04 | Lattice Semiconductor Corporation | Automatic lane assignment for a receiver |
US20050210185A1 (en) * | 2004-03-18 | 2005-09-22 | Kirsten Renick | System and method for organizing data transfers with memory hub memory modules |
CN100387027C (zh) * | 2005-01-07 | 2008-05-07 | 清华大学 | 高速网络分流设备用线路接口卡中的包预处理电路组件 |
US7809009B2 (en) | 2006-02-21 | 2010-10-05 | Cisco Technology, Inc. | Pipelined packet switching and queuing architecture |
JP4815284B2 (ja) * | 2006-07-06 | 2011-11-16 | アラクサラネットワークス株式会社 | パケット転送装置 |
US7822066B1 (en) * | 2008-12-18 | 2010-10-26 | Xilinx, Inc. | Processing variable size fields of the packets of a communication protocol |
-
2011
- 2011-10-17 US US13/274,945 patent/US8780914B2/en active Active
-
2012
- 2012-05-17 JP JP2014535711A patent/JP5834145B2/ja active Active
- 2012-05-17 KR KR1020147013285A patent/KR101761462B1/ko active IP Right Grant
- 2012-05-17 EP EP12725199.9A patent/EP2777230B1/en active Active
- 2012-05-17 CN CN201280049622.2A patent/CN103858393B/zh active Active
- 2012-05-17 WO PCT/US2012/038384 patent/WO2013058831A1/en active Application Filing
-
2014
- 2014-04-08 IN IN2636CHN2014 patent/IN2014CN02636A/en unknown
Also Published As
Publication number | Publication date |
---|---|
US8780914B2 (en) | 2014-07-15 |
IN2014CN02636A (ja) | 2015-08-07 |
KR20140084207A (ko) | 2014-07-04 |
EP2777230A1 (en) | 2014-09-17 |
JP2014528685A (ja) | 2014-10-27 |
EP2777230B1 (en) | 2015-07-29 |
WO2013058831A1 (en) | 2013-04-25 |
CN103858393B (zh) | 2016-12-21 |
US20130094507A1 (en) | 2013-04-18 |
KR101761462B1 (ko) | 2017-08-04 |
CN103858393A (zh) | 2014-06-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5834145B2 (ja) | ネットワークパケットの並列処理 | |
US11188388B2 (en) | Concurrent program execution optimization | |
US8775685B1 (en) | Parallel processing of network packets | |
CN112543925B (zh) | 用于使用专用低延迟链路的多个硬件加速器的统一地址空间 | |
US7290075B2 (en) | Performing arbitration in a data processing apparatus | |
JP4672305B2 (ja) | デジタル・メディア・ストリームを処理するための方法及び装置 | |
CN107436855B (zh) | 用于具有可重配置多端口的pcie存储系统的qos认知io管理 | |
CN118119933A (zh) | 用于触发协作进程的提前终止的机制 | |
CN118043796A (zh) | 存储器计算系统中的基于片块的结果缓冲 | |
CN118076944A (zh) | 可重新配置计算组构中的循环执行期间的数据存储 | |
CN117795496A (zh) | 可重新配置计算组构中的并行矩阵运算 | |
CN117581200A (zh) | 在分派期间从存储器加载数据 | |
CN115729864A (zh) | 存储装置、电子装置以及电子装置的操作方法 | |
US11740800B2 (en) | Alleviating memory hotspots on systems with multiple memory controllers | |
JP2022547863A (ja) | 実行パイプ均衡をもたらす分散スケジューラ | |
EP2854042A1 (en) | Information processing apparatus, data transfer apparatus, and data transfer method | |
CN109413122B (zh) | 一种数据处理方法、网络处理器及计算机存储介质 | |
JP4836915B2 (ja) | アドレス処理 | |
JP6540141B2 (ja) | 割り当て装置、割り当て方法、割り当てプログラム、及び、通信ネットワーク装置 | |
EP3011706A1 (en) | P-select n-port round robin arbiter for scheduling requests | |
GB2508684A (en) | Directing data packets for processing in parallel processing computers | |
KR101634672B1 (ko) | 네트워크 인터페이스 가상화 장치, 방법 및 이를 실행하기 위한 컴퓨터 프로그램 | |
Shahane et al. | Performance Efficient NoC Router Implementation on FPGA | |
JP5659798B2 (ja) | データ転送制御装置及び方法並びにデータ処理装置 | |
CN117435548A (zh) | 用于硬件组件之间的通信的方法和系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20150430 |
|
A871 | Explanation of circumstances concerning accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A871 Effective date: 20150430 |
|
A975 | Report on accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A971005 Effective date: 20150520 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20150616 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20150826 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20151027 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20151030 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5834145 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |