JP6537823B2 - ソフトウェア・デファインド・ネットワーク処理エンジンにおける並行かつ条件付きのデータ操作の方法および装置 - Google Patents
ソフトウェア・デファインド・ネットワーク処理エンジンにおける並行かつ条件付きのデータ操作の方法および装置 Download PDFInfo
- Publication number
- JP6537823B2 JP6537823B2 JP2014267000A JP2014267000A JP6537823B2 JP 6537823 B2 JP6537823 B2 JP 6537823B2 JP 2014267000 A JP2014267000 A JP 2014267000A JP 2014267000 A JP2014267000 A JP 2014267000A JP 6537823 B2 JP6537823 B2 JP 6537823B2
- Authority
- JP
- Japan
- Prior art keywords
- bits
- processing engine
- instruction
- mux
- instructions
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30145—Instruction analysis, e.g. decoding, instruction word fields
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/10—Architectures or entities
- H04L65/1013—Network architectures, gateways, control or user entities
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/12—Protocol engines
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Devices For Executing Special Programs (AREA)
- Logic Circuits (AREA)
Description
Claims (34)
- ソフトウェア・デファインド・ネットワーク(SDN)処理エンジンを含む装置であって、
前記SDN処理エンジンは、
N個の入力のワードを比較するワード比較コーンを含む、プログラム可能な命令の条件付き生成用のコントロールパスであって、前記ワード比較コーンが、K個の構成変更可能なMUX/CMP論理セルを含む、コントロールパスと、
前記コントロールパスによって生成される前記命令の実行用のデータパスとを備え、 前記SDN処理エンジンは、並行に、N個の入力を受信してM個の出力を生成する、装置。 - 請求項1に記載の装置において、前記M個の出力の各コンテンツは、修正された入力コンテンツの1つまたは新たに生成されたコンテンツである、装置。
- 請求項1に記載の装置において、
前記コントロールパスは、
前記N個の入力から制御ビットを抽出する制御ビット抽出器と、
前記制御ビットおよび前記ワード比較コーンの結果ビットに、複合された、式および条件を実行する多段マルチプレクサ/ルックアップテーブル(MUX/LUT)論理コーンと、
データ操作のための命令を含む複数の命令テーブルとを備えた、装置。 - 請求項3に記載の装置において、前記制御ビット抽出器、前記ワード比較コーン、前記多段MUX/LUT論理コーン、および前記複数の命令テーブルのうちの少なくとも1つが、ネットワーク機能およびプロトコルに基づいて、再構成およびプログラム可能である、装置。
- 請求項3に記載の装置において、前記制御ビット抽出器が、予め定められた入力フォーマットに基づいて前記N個の入力から前記制御ビットを抽出する、装置。
- 請求項1に記載の装置において、前記MUX/CMP論理セルが、それぞれ、互いに前記N個の入力からのWバイトの2つのワードを比較するためのものである、装置。
- 請求項6に記載の装置において、前記WバイトのワードそれぞれにおけるWバイトのうちの特定のビットのみが比較される、装置。
- 請求項1に記載の装置において、前記MUX/CMP論理セルが、それぞれ、前記入力のうちの1つからの1つのWバイトのワードを、一定値と比較する、装置。
- 請求項1に記載の装置において、前記MUX/CMP論理セルが、それぞれ、少なくとも3つの演算をサポートし、当該3つの演算が、等しい(==)、より大きい(>)、およびより小さい(<)である、装置。
- 請求項3に記載の装置において、
前記多段MUX/LUT論理コーンはS個のステージを含み、
前記S個のステージの最初のステージは、前記SDN処理エンジンへの前記N個の入力の前記制御ビットと、前記ワード比較コーンの結果ビットとを含む入力ビットを有し、
ステージiの出力ビットは全て、ステージi+1への入力ビットであり、
前記S個のステージの最後のステージの出力ビットは、前記複数の命令テーブルを読み取るためのインデックスを形成する、装置。 - 請求項10に記載の装置において、前記ステージiはが、Pi個の構成変更可能なMUX/LUTセルを含む、装置。
- 請求項11に記載の装置において、前記MUX/LUTセルが、それぞれ、そのMUX/LUTセルへの入力ビットからL個の任意のビットを選択するL個のマルチプレクサを備えた、装置。
- 請求項12に記載の装置において、前記L個の選択されたビットが、2Lビットのルックアップテーブルcfg_LUTに対するポインタとして構成され、前記ルックアップテーブルcfg_LUTの出力が1ビットである、装置。
- 請求項13に記載の装置において、前記ルックアップテーブルcfg_LUTがフロップから構成される、装置。
- 請求項3に記載の装置において、合成ツールを使用して、複合された、論理式および条件を前記多段MUX/LUT論理コーンにマッピングする、装置。
- 請求項3に記載の装置において、
前記複数の命令テーブルが、T個のプログラム可能な命令テーブルを含み、
前記多段MUX/LUT論理コーンの出力が、前記T個のプログラム可能な命令テーブルの読み出しアドレスであるインデックスを構成し、
前記M個の出力それぞれが前記T個のプログラム可能な命令テーブルの少なくとも1つと関連づけられるように、前記Tが、前記SDN処理エンジンの前記M個の出力と少なくとも等しい、装置。 - 請求項16に記載の装置において、前記T個のプログラム可能な命令テーブルのテーブルiが、Aiビットのアドレスを有し、前記テーブルiが、最大で2Aiのエントリを有する、装置。
- 請求項17に記載の装置において、テーブルiの各エントリが、Qi個の命令を含む、装置。
- 請求項16に記載の装置において、前記T個のプログラム可能な命令テーブルのそれぞれが、SRAMまたはフロップのアレイから構成される、装置。
- 請求項1に記載の装置において、前記SDN処理エンジンが、コピー命令およびALU命令を含む少なくとも2種類の命令をサポートする、装置。
- 請求項20に記載の装置において、前記コピー命令が、1つの入力からの最大Cバイトを1つの出力にコピーする、装置。
- 請求項20に記載の装置において、前記コピー命令が、一定値を1つの出力にコピーする、装置。
- 請求項20に記載の装置において、前記ALU命令は、入力からの各Wバイトの2つのワードのALU演算の結果を、1つの出力にコピーする、装置。
- 請求項23に記載の装置において、前記ALU演算への入力が一定値である、装置。
- 請求項24に記載の装置において、前記ALU演算が、加算(+)、減算(−)、ビット単位のAND(&)、ビット単位のOR(|)、ビット単位のXOR(^)、ビット単位の左シフト(<<)、およびビット単位の右シフト(>>)のうちの1つである、装置。
- 請求項20に記載の装置において、前記コピー命令または前記ALU命令それぞれが、その命令のビットマスクフィールドを用いることでビットまたはバイト操作をサポートする、装置。
- 請求項1に記載の装置において、
前記データパスが、
データが適切な時間に処理されるように、前記データパスの遅延を前記コントロールパスの遅延に整合させる遅延整合キューと、
特定の入力を修正するか、または新しい出力を生成するために、前記コントロールパスが生成する命令の全てを実行する命令実行ブロックとを備えた、装置。 - 請求項27に記載の装置において、前記遅延整合キューが、前記SDN処理エンジンがバックツーバックのデータ処理で最大限のスループットを達成するように、前記コントロールパスの遅延に等しい深さを有する、FIFOおよびシフトレジスタのうちの1つである、装置。
- 請求項27に記載の装置において、前記命令実行ブロックが、並行に、前記コントロールパスが生成する命令の全てを実行するハードウェアモジュールを備え、当該ハードウェアモジュールそれぞれが、前記命令のうちの1つを実行する、装置。
- 請求項27に記載の装置において、全ての命令が実行される前において出力の最初のコンテンツが特定の入力のコンテンツである場合、前記出力は前記特定の入力を修正したものであり、全ての命令が実行される前において出力の最初のコンテンツが全てゼロである場合、前記出力は新たに生成される、装置。
- ソフトウェア・デファインド・ネットワーク(SDN)処理エンジンにおける並行かつ条件付きのデータ操作方法であって、
N個の入力であって、Nは1よりも大きい、入力を受信することと、
前記N個の入力を、コントロールパスおよびデータパスを通して前記SDN処理エンジンで処理させることと、
複数の前記N個の入力から制御ビットを同時に抽出し、互いに前記N個の入力のワードを比較することと、
前記制御ビットおよび前記比較からの結果ビットに、複合された、式および条件を実行することで、インデックスを返すことと、
前記インデックスに基づいて、前記N個の入力をどのように修正するか、かつ、M個の出力をどのように生成するかを導く命令を検索することと、
並行に前記N個の入力についての前記命令を実行することで、前記M個の出力を生成することとを備えた、方法。 - 請求項31に記載の方法において、前記抽出、前記比較、前記複合された、式および条件、ならびに命令テーブルが、前記SDN処理エンジンの前記コントロールパスにおいて実現され、遅延キューおよび命令の前記実行が、前記SDN処理エンジンの前記データパスにおいて実施される、方法。
- 請求項31に記載の方法において、前記M個の出力それぞれのコンテンツが、新たに生成されたコンテンツと、前記N個の入力のうちの1つの修正されたコンテンツのいずれか一方または両方である、方法。
- 請求項31に記載の方法において、
前記SDN処理エンジンの前記N個の入力および前記M個の出力のそれぞれのデータフォーマットが、
データサイズを特定する「Length」フィールドと、
ペイロードの最初のバイトの位置を特定する「Offset」フィールドと、
データの種類を特定する「Control」フィールドと
前記ペイロードを含む「Body」フィールドとを含む、方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/144,260 | 2013-12-30 | ||
US14/144,260 US9880844B2 (en) | 2013-12-30 | 2013-12-30 | Method and apparatus for parallel and conditional data manipulation in a software-defined network processing engine |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2015165649A JP2015165649A (ja) | 2015-09-17 |
JP6537823B2 true JP6537823B2 (ja) | 2019-07-03 |
Family
ID=53481841
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2014267000A Active JP6537823B2 (ja) | 2013-12-30 | 2014-12-29 | ソフトウェア・デファインド・ネットワーク処理エンジンにおける並行かつ条件付きのデータ操作の方法および装置 |
Country Status (6)
Country | Link |
---|---|
US (1) | US9880844B2 (ja) |
JP (1) | JP6537823B2 (ja) |
KR (1) | KR20150079475A (ja) |
CN (1) | CN104866284B (ja) |
HK (1) | HK1208943A1 (ja) |
TW (1) | TW201543359A (ja) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11308114B1 (en) * | 2013-12-23 | 2022-04-19 | Cazena, Inc. | Platform for provisioning a data analytics environment |
US10003676B2 (en) * | 2015-02-20 | 2018-06-19 | Cavium, Inc. | Method and apparatus for generating parallel lookup requests utilizing a super key |
CN106095360B (zh) * | 2016-05-31 | 2018-11-27 | 福州瑞芯微电子股份有限公司 | 基于调色板的图像处理方法和图像处理装置 |
CN109818762B (zh) * | 2017-11-20 | 2022-03-08 | 中国电信股份有限公司 | 用于实现sdn控制器自动注册的方法、适配器和系统 |
KR101858957B1 (ko) * | 2017-12-12 | 2018-05-17 | 주식회사 위더스플래닛 | Sdn 기반 중앙 집중식 wlan 네트워크 구축을 위한 제어 시스템 |
US10805164B2 (en) | 2018-12-14 | 2020-10-13 | At&T Intellectual Property I, L.P. | Controlling parallel data processing for service function chains |
US11146506B2 (en) | 2018-12-14 | 2021-10-12 | At&T Intellectual Property I, L.P. | Parallel data processing for service function chains spanning multiple servers |
Family Cites Families (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4929939A (en) * | 1988-10-31 | 1990-05-29 | International Business Machines Corporation | High-speed switching system with flexible protocol capability |
US5319347A (en) * | 1992-04-30 | 1994-06-07 | Sgs-Thomson Microelectronics, Inc. | Parallelized magnitude comparator for comparing a binary number to a fixed value |
US6667984B1 (en) | 1998-05-15 | 2003-12-23 | Polytechnic University | Methods and apparatus for arbitrating output port contention in a switch having virtual output queuing |
ATE319249T1 (de) | 2000-01-27 | 2006-03-15 | Ibm | Verfahren und vorrichtung für klassifizierung von datenpaketen |
US6831917B1 (en) | 2000-05-10 | 2004-12-14 | Cisco Technology, Inc. | Network address translation for multicast virtual sourcing |
US7075926B2 (en) * | 2000-05-24 | 2006-07-11 | Alcatel Internetworking, Inc. (Pe) | Programmable packet processor with flow resolution logic |
US7461167B1 (en) | 2002-11-22 | 2008-12-02 | Silicon Image, Inc. | Method for multicast service in a crossbar switch |
US7685436B2 (en) | 2003-10-02 | 2010-03-23 | Itt Manufacturing Enterprises, Inc. | System and method for a secure I/O interface |
EP1553738A1 (en) * | 2004-01-12 | 2005-07-13 | Thomson Licensing S.A. | Method and apparatus for generating data packets |
US7275069B2 (en) * | 2004-04-26 | 2007-09-25 | Tarari, Inc. | System and method for tokening documents |
KR100603567B1 (ko) | 2004-09-02 | 2006-07-24 | 삼성전자주식회사 | 스위치에서의 대역폭 예약을 통한 QoS 보장 방법 및 그시스템 |
US20060059269A1 (en) | 2004-09-13 | 2006-03-16 | Chien Chen | Transparent recovery of switch device |
US7787463B2 (en) * | 2006-01-26 | 2010-08-31 | Broadcom Corporation | Content aware apparatus and method |
US8112622B2 (en) | 2006-12-08 | 2012-02-07 | Broadcom Corporation | Chaining port scheme for network security |
US7961489B2 (en) * | 2007-04-23 | 2011-06-14 | Marvell Israel (MISL)Ltd. | Comparing data representations to stored patterns |
US8259715B2 (en) | 2007-07-25 | 2012-09-04 | Hewlett-Packard Development Company, L.P. | System and method for traffic load balancing to multiple processors |
US8054744B1 (en) | 2007-10-25 | 2011-11-08 | Marvell International Ltd. | Methods and apparatus for flow classification and flow measurement |
GB2481819B (en) * | 2010-07-07 | 2018-03-07 | Advanced Risc Mach Ltd | Switching between dedicated function hardware and use of a software routine to generate result data |
US8627057B2 (en) * | 2010-12-22 | 2014-01-07 | Intel Corporation | Reconfigurable sensing platform for software-defined instrumentation |
CN102724101B (zh) | 2011-03-29 | 2015-01-21 | 华为技术有限公司 | 报文转发方法及系统与中继代理设备 |
US9159420B1 (en) | 2011-08-16 | 2015-10-13 | Marvell Israel (M.I.S.L) Ltd. | Method and apparatus for content addressable memory parallel lookup |
US8711860B2 (en) | 2011-12-22 | 2014-04-29 | Telefonaktiebolaget L M Ericsson (Publ) | Controller for flexible and extensible flow processing in software-defined networks |
US20140153443A1 (en) | 2012-11-30 | 2014-06-05 | International Business Machines Corporation | Per-Address Spanning Tree Networks |
CN104022960B (zh) * | 2013-02-28 | 2017-05-31 | 新华三技术有限公司 | 基于OpenFlow协议实现PVLAN的方法和装置 |
US9590914B2 (en) | 2013-11-05 | 2017-03-07 | Cisco Technology, Inc. | Randomized per-packet port channel load balancing |
US9973599B2 (en) * | 2013-12-04 | 2018-05-15 | Mediatek Inc. | Parser for parsing header in packet and related packet processing apparatus |
US9825884B2 (en) | 2013-12-30 | 2017-11-21 | Cavium, Inc. | Protocol independent programmable switch (PIPS) software defined data center networks |
-
2013
- 2013-12-30 US US14/144,260 patent/US9880844B2/en active Active
-
2014
- 2014-12-26 TW TW103145665A patent/TW201543359A/zh unknown
- 2014-12-29 JP JP2014267000A patent/JP6537823B2/ja active Active
- 2014-12-30 CN CN201410843199.4A patent/CN104866284B/zh active Active
- 2014-12-30 KR KR1020140194027A patent/KR20150079475A/ko not_active Application Discontinuation
-
2015
- 2015-09-30 HK HK15109646.2A patent/HK1208943A1/xx unknown
Also Published As
Publication number | Publication date |
---|---|
CN104866284B (zh) | 2019-05-28 |
CN104866284A (zh) | 2015-08-26 |
US9880844B2 (en) | 2018-01-30 |
HK1208943A1 (en) | 2016-03-18 |
US20150186143A1 (en) | 2015-07-02 |
JP2015165649A (ja) | 2015-09-17 |
TW201543359A (zh) | 2015-11-16 |
KR20150079475A (ko) | 2015-07-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6537823B2 (ja) | ソフトウェア・デファインド・ネットワーク処理エンジンにおける並行かつ条件付きのデータ操作の方法および装置 | |
KR102402176B1 (ko) | 소프트웨어-규정된 네트워크 엔진에서 패킷 수정 및 포워딩을 위해서 룩업들을 생성하고 결정들을 수행하기 위한 장치 및 방법 | |
US8819217B2 (en) | Intelligent graph walking | |
US10516626B1 (en) | Generating configuration data and API for programming a forwarding element | |
US10764176B1 (en) | Compiler and hardware interactions to reuse register fields in the data plane of a network forwarding element | |
US11294841B1 (en) | Dynamically configurable pipeline | |
US11258707B1 (en) | Systems for building data structures with highly scalable algorithms for a distributed LPM implementation | |
US10003676B2 (en) | Method and apparatus for generating parallel lookup requests utilizing a super key | |
US11095760B1 (en) | Implementing configurable packet parsers for field-programmable gate arrays using hardened resources | |
Luinaud et al. | Bridging the gap: Fpgas as programmable switches | |
US9270517B1 (en) | Tuple construction from data packets | |
US11425036B1 (en) | Pipelined match-action circuitry | |
BR102019009234A2 (pt) | dispositivo de rede e método para processar o tráfego de rede com estrutura sdn de modo dinâmico e independente de protocolo | |
US10484304B2 (en) | Determining actions to be immediately performed on a network packet with an application specific integrated circuit | |
JP7220814B1 (ja) | データ取得装置及びデータ取得方法 | |
Ibrahim | HP4 High-Performance Programmable Packet Parser |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20171222 |
|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A711 Effective date: 20171222 Free format text: JAPANESE INTERMEDIATE CODE: A712 Effective date: 20171222 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20181109 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20181119 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20190219 |
|
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: 20190507 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20190605 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6537823 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313113 |
|
R360 | Written notification for declining of transfer of rights |
Free format text: JAPANESE INTERMEDIATE CODE: R360 |
|
R360 | Written notification for declining of transfer of rights |
Free format text: JAPANESE INTERMEDIATE CODE: R360 |
|
R371 | Transfer withdrawn |
Free format text: JAPANESE INTERMEDIATE CODE: R371 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313113 |
|
S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313531 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313113 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |