JP7137588B2 - マルチコアコンピューティングプラットフォームにおける並列情報処理 - Google Patents
マルチコアコンピューティングプラットフォームにおける並列情報処理 Download PDFInfo
- Publication number
- JP7137588B2 JP7137588B2 JP2019569765A JP2019569765A JP7137588B2 JP 7137588 B2 JP7137588 B2 JP 7137588B2 JP 2019569765 A JP2019569765 A JP 2019569765A JP 2019569765 A JP2019569765 A JP 2019569765A JP 7137588 B2 JP7137588 B2 JP 7137588B2
- Authority
- JP
- Japan
- Prior art keywords
- sub
- pipelines
- pipeline
- processing
- parallel processing
- 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
- 230000010365 information processing Effects 0.000 title description 2
- 238000012545 processing Methods 0.000 claims description 97
- 238000000034 method Methods 0.000 claims description 61
- 230000008569 process Effects 0.000 claims description 39
- 230000006870 function Effects 0.000 claims description 9
- 238000004891 communication Methods 0.000 claims description 7
- 238000004590 computer program Methods 0.000 claims description 5
- 238000012546 transfer Methods 0.000 claims description 5
- 238000011022 operating instruction Methods 0.000 claims description 4
- 230000007246 mechanism Effects 0.000 description 6
- 238000007689 inspection Methods 0.000 description 3
- 238000013461 design Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000002265 prevention Effects 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
-
- 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/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3885—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
-
- 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/544—Buffers; Shared memory; Pipes
-
- 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/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3867—Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
-
- 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5066—Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multi Processors (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Description
1.これらは、開発費用が非常に高い。このようなASICを開発するには、2~4年かかり、費用は、1~3億ドルかかる。
2.柔軟性がほとんどない(機能が「ハードコード」されるので、新しい機能を追加する余地はほとんどない。)。
1)市場でプレーヤになるために必要な資金を準備できる企業はごくわずかであり、その結果、プレーヤの数が少ないことが設備の価格を更に押し上げる要因となっている。
2)ASICデバイスをベースにしたネットワークプラットフォームに変更を実装するために必要な時間が長いため、ネットワーク機能の進化は、要求より遅れている。
メモリと、
複数の処理要素と、
前記メモリに格納され、前記複数の処理要素によって実行されるように構成された少なくとも1つのプログラムと、
を備え、
前記少なくとも1つのプログラムは、
アプリケーションが実行されているランタイム中に、
前記アプリケーションからの動作命令を含む1以上のデータパケットを受信し、
サービスプロセスを実行するパイプライン要素を確立し、前記パイプライン要素は、複数のサブパイプラインを含み、各サブパイプラインは、前記サービスプロセスを実行するために必要なそれぞれのタスク又はその一部に関連付けられ、前記複数の処理要素のそれぞれは、前記パイプライン要素に含まれる前記複数のサブパイプラインに属する各サブパイプラインに関連する1以上のタスクを実行するように動作可能であり、
前記複数のサブパイプラインに関連付けられたタスクを前記複数の処理要素によって同時に実行し、前記複数の処理要素は、前記サービスプロセスを実行するために、各データパケットの並列処理を実行する。
これにより、前記プロセッサは、各キューから1以上のどのオブジェクトを除去すべきかを決定できる。
アプリケーションからの動作命令を含む1以上のデータパケットを受信することと、
サービスプロセスを実行するパイプライン要素を確立することであって、前記パイプライン要素は、複数のサブパイプラインを含み、各サブパイプラインは、前記サービスプロセスを実行するために必要なそれぞれのタスク又はその一部に関連付けられることと、
前記パイプライン要素に含まれる前記複数のサブパイプラインに属する各サブパイプラインに関連する1以上のタスクを実行するように動作する複数の処理要素を提供することと、
前記複数のサブパイプラインに関連付けられたタスクを前記複数の処理要素によって同時に実行することであって、前記複数の処理要素は、前記サービスプロセスを実行するために、各データパケットの並列処理を実行することと、を含む。
アプリケーションからの動作命令を含む1以上のデータパケットを受信することと、
サービスプロセスを実行するパイプライン要素を確立することであって、前記パイプライン要素は、複数のサブパイプラインを含み、各サブパイプラインは、前記サービスプロセスを実行するために必要なそれぞれのタスク又はその一部に関連付けられることと、
前記パイプライン要素に含まれる前記複数のサブパイプラインに属する各サブパイプラインに関連する1以上のタスクを実行するように動作する複数の処理要素を選択することと、
前記複数のサブパイプラインに関連付けられたタスクを前記複数の処理要素によって同時に実行することであって、選択された前記複数の処理要素は、前記サービスプロセスを実行するために、各データパケットの並列処理を実行することと、を含む。
1)(あるプロセスが、別のプロセスによって現在使用されているリソース又は情報を待機するため)ソフトウェアロックが生じる。
2)サービスチェインを実装する際の性能が低下する。
3)大量のCPUリソース(コア、メモリ、I/O)が必要になる。
1)実行されるメモリトランザクションが少なくなる(したがって、消費電力が小さくなり、処理が速くなり、必要なメモリが小さくなる)。
2)プロセスは、別のプロセスがそのパケットの処理を完了するまで待つことなく、全く同じパケットに並行してアクセスできる。
3)プロセッサのI/O要件が単一のトランザクションに削減される。
4)パケットを前後に循環させる必要なく、サービスチェインがネイティブに実装される。
Claims (10)
- 通信ネットワークで搬送されるデータパケットを並列処理する並列処理コンピュータシステムであって、
メモリと、
複数の処理要素と、
前記メモリに格納され、前記複数の処理要素によって実行されるように構成された少なくとも1つのプログラムと、
を備え、
前記少なくとも1つのプログラムは、
アプリケーションが実行されているランタイム中に、
前記アプリケーションからの動作命令を含む1以上のデータパケットを受信し、
サービスプロセスを実行するCPUベースのパイプライン要素を確立し、同じ処理要素が実行する機能をチェイニングすることによって前記サービスプロセスを実行し、前記CPUベースのパイプライン要素は、複数のサブパイプラインを含み、各サブパイプラインは、前記サービスプロセスを実行するために必要なそれぞれのタスク又はその一部に関連付けられ、前記複数の処理要素のそれぞれは、前記CPUベースのパイプライン要素に含まれる前記複数のサブパイプラインに属する各サブパイプラインに関連する1以上のタスクを実行するように動作可能であり、前記複数のサブパイプラインに属する全てのサブパイプラインに関連する前記1以上のタスクは単一のCPUにより実行され、
前記複数のサブパイプラインに関連付けられたタスクを前記複数の処理要素によって同時に実行し、前記複数の処理要素は、前記サービスプロセスを実行するために、各データパケットの並列処理を実行する、
ことを特徴とする並列処理コンピュータシステム。 - 選択された処理要素が、他のサブパイプラインに関連付けられたin関数を呼び出すことによって、1つのサブパイプラインから他のサブパイプラインにパケットを転送するように構成されていることを特徴とする請求項1に記載の並列処理コンピュータシステム。
- 少なくとも1つのタスクであって、各パイプライン要素に関連する全てのタスクより少ないタスクがいくつかの処理要素間で分割されることを特徴とする請求項1に記載の並列処理コンピュータシステム。
- 更に、複数のスレッドから受信した情報を適用することによってタイマを更新するように構成された複数更新ロックレスタイマを備えることを特徴とする請求項1に記載の並列処理コンピュータシステム。
- 更に、複数のスレッドを用いてオブジェクトの最終アクセス時刻を更新しながら、それらのタイマに従ってキュー間のオブジェクトのフローを決定するように構成されたプロセッサを備えることを特徴とする請求項1に記載の並列処理コンピュータシステム。
- 前記プロセッサは、タイマキューから出現するオブジェクトを、その満了タイムアウトに最も近いキューに転送するように構成されていることを特徴とする請求項5に記載の並列処理コンピュータシステム。
- 各オブジェクトには、a)ロックレスアクセスを許可する関連データ書込手段の数、及びb)キューに入った時間に応じてアクセス時間が与えられ、
これにより、前記プロセッサは、各キューから1以上のどのオブジェクトを除去すべきかを決定できることを特徴とする請求項5に記載の並列処理コンピュータシステム。 - 単一の管理エンティティがそれぞれのルックアップテーブル内のデータ要素を更新し、更新されたルックアップテーブルを複数のリアルタイムスレッドに対して読み出すことを可能にするように構成された単一のデータライタ及び複数のデータリーダを備えることを特徴とする請求項7に記載の並列処理コンピュータシステム。
- 通信ネットワークで搬送されるデータパケットの並列処理を実行する方法であって、
アプリケーションからの動作命令を含む1以上のデータパケットを受信することと、
サービスプロセスを実行するCPUベースのパイプライン要素を確立することであって、同じ処理要素が実行する機能をチェイニングすることによって前記サービスプロセスを実行し、前記CPUベースのパイプライン要素は、複数のサブパイプラインを含み、各サブパイプラインは、前記サービスプロセスを実行するために必要なそれぞれのタスク又はその一部に関連付けられることと、
前記CPUベースのパイプライン要素に含まれる前記複数のサブパイプラインに属する各サブパイプラインに関連する1以上のタスクを実行するように動作する複数の処理要素を提供することであって、前記複数のサブパイプラインに属する全てのサブパイプラインに関連する前記1以上のタスクは単一のCPUにより実行されることと、
前記複数のサブパイプラインに関連付けられたタスクを前記複数の処理要素によって同時に実行することであって、前記複数の処理要素は、前記サービスプロセスを実行するために、各データパケットの並列処理を実行することと、
を含む方法。 - 1以上のコンピュータプロセッサによって、通信ネットワークにおいて受信されたデータパケットの並列計算を実行するための方法を実行するための命令のセットを実行するための、非一時的コンピュータ可読媒体に格納されたコンピュータプログラムを符号化したコンピュータプログラム製品であって、前記方法は、
アプリケーションからの動作命令を含む1以上のデータパケットを受信することと、
サービスプロセスを実行するCPUベースのパイプライン要素を確立することであって、同じ処理要素が実行する機能をチェイニングすることによって前記サービスプロセスを実行し、前記CPUベースのパイプライン要素は、複数のサブパイプラインを含み、各サブパイプラインは、前記サービスプロセスを実行するために必要なそれぞれのタスク又はその一部に関連付けられることと、
前記CPUベースのパイプライン要素に含まれる前記複数のサブパイプラインに属する各サブパイプラインに関連する1以上のタスクを実行するように動作する複数の処理要素を選択することであって、前記複数のサブパイプラインに属する全てのサブパイプラインに関連する前記1以上のタスクは単一のCPUにより実行されることと、
前記複数のサブパイプラインに関連付けられたタスクを前記複数の処理要素によって同時に実行することであって、選択された前記複数の処理要素は、前記サービスプロセスを実行するために、各データパケットの並列処理を実行することと、
を含むコンピュータプログラム製品。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201762520624P | 2017-06-16 | 2017-06-16 | |
US62/520,624 | 2017-06-16 | ||
PCT/IL2018/050596 WO2018229745A1 (en) | 2017-06-16 | 2018-06-01 | Parallel information processing on multi-core computing platforms |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2020524445A JP2020524445A (ja) | 2020-08-13 |
JP7137588B2 true JP7137588B2 (ja) | 2022-09-14 |
Family
ID=64660677
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2019569765A Active JP7137588B2 (ja) | 2017-06-16 | 2018-06-01 | マルチコアコンピューティングプラットフォームにおける並列情報処理 |
Country Status (5)
Country | Link |
---|---|
US (1) | US11294688B2 (ja) |
EP (1) | EP3639147A4 (ja) |
JP (1) | JP7137588B2 (ja) |
IL (1) | IL271422B1 (ja) |
WO (1) | WO2018229745A1 (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
IL275859B2 (en) | 2018-01-28 | 2024-05-01 | Drivenets Ltd | Method and device for improving bandwidth utilization in a communication network |
US11809219B2 (en) | 2018-07-02 | 2023-11-07 | Drivenets Ltd. | System implementing multi-threaded applications |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050138622A1 (en) | 2003-12-18 | 2005-06-23 | Mcalpine Gary L. | Apparatus and method for parallel processing of network data on a single processing thread |
JP2013179429A (ja) | 2012-02-28 | 2013-09-09 | Nippon Telegr & Teleph Corp <Ntt> | 振分先を切り替える並列パケット処理方法および装置 |
JP2017521806A (ja) | 2014-06-26 | 2017-08-03 | グバーネット インコーポレイテッドGubernet Inc. | 多重プロセッシング環境でのスケジューリングの方法及びその装置 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7577657B2 (en) * | 2005-03-18 | 2009-08-18 | Microsoft Corporation | System and method for updating objects in a multi-threaded computing environment |
US9448856B2 (en) * | 2005-12-30 | 2016-09-20 | Level 3 Communications, Llc | Lock-free dual queue with condition synchronization and time-outs |
US8203566B2 (en) * | 2009-05-29 | 2012-06-19 | Microsoft Corporation | Fixed function pipeline application remoting through a shader pipeline conversion layer |
KR101241584B1 (ko) * | 2009-12-21 | 2013-03-11 | 한국전자통신연구원 | 데이터 플로우 병렬 처리 장치 및 방법 |
US8694994B1 (en) * | 2011-09-07 | 2014-04-08 | Amazon Technologies, Inc. | Optimization of packet processing by delaying a processor from entering an idle state |
US9430239B2 (en) * | 2013-03-12 | 2016-08-30 | Qualcomm Incorporated | Configurable multicore network processor |
US9250916B2 (en) * | 2013-03-12 | 2016-02-02 | International Business Machines Corporation | Chaining between exposed vector pipelines |
US9866502B2 (en) * | 2014-08-11 | 2018-01-09 | Centurylink Intellectual Property Llc | Programmable broadband gateway hierarchical output queueing |
US9462084B2 (en) * | 2014-12-23 | 2016-10-04 | Intel Corporation | Parallel processing of service functions in service function chains |
US10129180B2 (en) * | 2015-01-30 | 2018-11-13 | Nicira, Inc. | Transit logical switch within logical router |
CN106100991B (zh) | 2016-06-02 | 2019-03-26 | 浙江工商大学 | 一种转发与控制分离系统中数据包洪泛并行处理方法 |
US20180260255A1 (en) * | 2017-03-10 | 2018-09-13 | Futurewei Technologies, Inc. | Lock-free reference counting |
-
2018
- 2018-06-01 US US16/622,482 patent/US11294688B2/en active Active
- 2018-06-01 WO PCT/IL2018/050596 patent/WO2018229745A1/en active Application Filing
- 2018-06-01 EP EP18817726.5A patent/EP3639147A4/en not_active Withdrawn
- 2018-06-01 IL IL271422A patent/IL271422B1/en unknown
- 2018-06-01 JP JP2019569765A patent/JP7137588B2/ja active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050138622A1 (en) | 2003-12-18 | 2005-06-23 | Mcalpine Gary L. | Apparatus and method for parallel processing of network data on a single processing thread |
JP2013179429A (ja) | 2012-02-28 | 2013-09-09 | Nippon Telegr & Teleph Corp <Ntt> | 振分先を切り替える並列パケット処理方法および装置 |
JP2017521806A (ja) | 2014-06-26 | 2017-08-03 | グバーネット インコーポレイテッドGubernet Inc. | 多重プロセッシング環境でのスケジューリングの方法及びその装置 |
Non-Patent Citations (1)
Title |
---|
階層型粗粒度タスク並列処理のための多重割当てを伴うダイナミックスケジューリング手法,並列処理シンポジウムJSPP2001,2001年,351-358頁 |
Also Published As
Publication number | Publication date |
---|---|
WO2018229745A1 (en) | 2018-12-20 |
IL271422B1 (en) | 2024-07-01 |
IL271422A (en) | 2020-01-30 |
US11294688B2 (en) | 2022-04-05 |
EP3639147A1 (en) | 2020-04-22 |
US20200142708A1 (en) | 2020-05-07 |
EP3639147A4 (en) | 2020-04-22 |
JP2020524445A (ja) | 2020-08-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6338078B1 (en) | System and method for sequencing packets for multiprocessor parallelization in a computer network system | |
US10841245B2 (en) | Work unit stack data structures in multiple core processor system for stream data processing | |
JP3670160B2 (ja) | タスクに各リソースを割当てるための回路、複数のリソースを共用するための方法、命令を実行するためのプロセッサ、マルチタスクプロセッサ、コンピュータ命令を実行するための方法、マルチタスク方法、コンピュータプロセッサを含む装置、複数の所定のグループのタスクを実行するステップを含む方法、ネットワークデータを処理するステップを含む方法、複数のソフトウェアタスクを実行するための方法およびコンピュータプロセッサを含むネットワーク装置 | |
US10768989B2 (en) | Virtual vector processing | |
US6804815B1 (en) | Sequence control mechanism for enabling out of order context processing | |
US8127112B2 (en) | SIMD array operable to process different respective packet protocols simultaneously while executing a single common instruction stream | |
US8230144B1 (en) | High speed multi-threaded reduced instruction set computer (RISC) processor | |
US6631422B1 (en) | Network adapter utilizing a hashing function for distributing packets to multiple processors for parallel processing | |
US7000048B2 (en) | Apparatus and method for parallel processing of network data on a single processing thread | |
US7675928B2 (en) | Increasing cache hits in network processors using flow-based packet assignment to compute engines | |
US7415598B2 (en) | Message synchronization in network processors | |
US20180107484A1 (en) | Implementing conflict-free instructions for concurrent operation on a processor | |
US20070169001A1 (en) | Methods and apparatus for supporting agile run-time network systems via identification and execution of most efficient application code in view of changing network traffic conditions | |
US20040199916A1 (en) | Systems and methods for multi-tasking, resource sharing, and execution of computer instructions | |
Yi et al. | Gpunfv: a gpu-accelerated nfv system | |
US7290105B1 (en) | Zero overhead resource locks with attributes | |
CN111984415A (zh) | 一种基于流水线转发模型的负载均衡方法及装置 | |
JP7137588B2 (ja) | マルチコアコンピューティングプラットフォームにおける並列情報処理 | |
WO2018075811A2 (en) | Network-on-chip architecture | |
Halfhill | Intel network processor targets routers | |
Vasiliadis et al. | Design and implementation of a stateful network packet processing framework for GPUs | |
CN111290791A (zh) | 具有高性能密码操作的标量单元 | |
EP1631906B1 (en) | Maintaining entity order with gate managers | |
US20220197696A1 (en) | Condensed command packet for high throughput and low overhead kernel launch | |
Döring et al. | SmartNICs: Current trends in research and industry |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20210527 |
|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A711 Effective date: 20211222 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20220414 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20220510 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20220728 |
|
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: 20220823 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20220902 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 7137588 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |