JPH0888666A - 通信プロトコルの並列処理のためのバッファ制御方法 - Google Patents

通信プロトコルの並列処理のためのバッファ制御方法

Info

Publication number
JPH0888666A
JPH0888666A JP6248317A JP24831794A JPH0888666A JP H0888666 A JPH0888666 A JP H0888666A JP 6248317 A JP6248317 A JP 6248317A JP 24831794 A JP24831794 A JP 24831794A JP H0888666 A JPH0888666 A JP H0888666A
Authority
JP
Japan
Prior art keywords
pdu
layer
buffer
processing
control method
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.)
Pending
Application number
JP6248317A
Other languages
English (en)
Inventor
Satohiko Kato
聰彦 加藤
Masaru Miyake
優 三宅
Kenji Suzuki
健二 鈴木
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
KDDI Corp
Original Assignee
Kokusai Denshin Denwa KK
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Kokusai Denshin Denwa KK filed Critical Kokusai Denshin Denwa KK
Priority to JP6248317A priority Critical patent/JPH0888666A/ja
Publication of JPH0888666A publication Critical patent/JPH0888666A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Multi Processors (AREA)
  • Computer And Data Communications (AREA)
  • Communication Control (AREA)

Abstract

(57)【要約】 (修正有) 【目的】 共有メモリ型のマルチプロセッサを用いて通
信プロトコルの並列処理を行う場合に、CPUの処理の
間で、送受信データを格納するバッファに対する排他制
御を極力回避できる通信プロトコルの並列処理のための
バッファ制御装置を提供する。 【構成】 送受信データ(PDU)を保持するバッファ
を、PDUバッファ本体と、複数のPDUバッファ本体
を連結させるためのPDUバッファディスクリプタPB
Dとから構成し、PDUバッファ本体は、その中のリフ
ァレンス・カウントを除いて、複数のレイヤから同時に
アクセスできるようにし、PBDは、各レイヤが必要な
場合には個別に確保できるようにし、PDUの読み書き
に対する処理を、複数のCPUが並列的に行うことを可
能にした。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】この発明は通信プロトコルの並列
処理のためのバッファ制御方法に関し、例えば、ATM
ネットワークに接続される機器の通信処理等において、
通信プロトコルを高速に処理できるようにした通信プロ
トコルの並列処理のためのバッファ制御方法に関する。
【0002】
【従来の技術】従来からも、通信プロトコルの並列処理
方式は提案されている。例えば、特開平3−16495
7号公報には、複数のCPUを用いて、受信したデータ
のうちの異なるレイヤに関する制御情報を並列に処理す
る方法を提案している。また、Proc.SIGCOMM'93 に掲載
された論文“Locking Effect in Multiprocessor Imple
mentations of Protocols ”では、1つのデータに対す
る複数レイヤの処理を並列処理の単位として、例えば、
受信したデータに対する複数レイヤのプロトコルの処理
を、データ毎に並列に処理させる方法を提案している。
【0003】
【発明が解決しようとする課題】しかしながら、前記し
た特開平3−164957号公報あるいは前記論文に開
示されている方法を、メモリを共有するタイプのマルチ
プロセッサを用いて実現する場合には、共有メモリ上の
データにアクセスする場合の競合を避ける必要がある。
【0004】例えば、上記の公開公報に開示された方法
では、共有メモリ上の受信データに複数のCPUがアク
セスする場合は、排他制御を行う必要があると考えられ
る。また、上記の論文に開示されている方法では、CP
Uの間で、コネクションの状態等を保持する状態管理テ
ーブルを供するため、そのアクセスにおいて、排他制御
を行わなければならない。このため、並列に実行可能で
あるべき各CPUが、排他制御の影響で、自由に並列処
理を行うことが不可能となる。また、上記の論文に開示
された方法では、コネクションを用いる通信プロトコル
に対しては、CPUを増やしても3倍程度の処理性能し
か得られないと報告されている。
【0005】以上のように、メモリを共有するタイプの
マルチプロセッサを用いて、通信プロトコルを並列処理
しようとすると、排他制御を行う必要が生じ、自由に並
列処理を行うことができないという問題、またこれゆえ
に通信プロトコルを高速に処理することができないとい
う問題があった。
【0006】本発明の目的は、前記した従来技術の問題
点に鑑み、共有メモリ型のマルチプロセッサを用いて通
信プロトコルの並列処理を行う場合に、CPUの処理の
間で、送受信するデータ(PDU)を格納するバッファ
に対する排他制御を極力回避できる通信プロトコルの並
列処理のためのバッファ制御方法を提供することにあ
る。
【0007】
【課題を解決するための手段】前記した目的を達成する
ために、この発明は、プロトコルデータ単位(PDU)
を保持するバッファを、PDUバッファ本体と、該PD
Uバッファ本体の中のPDUデータの位置や長さを記述
し複数のPDUバッファ本体を連結させるためのPDU
バッファディスクリプタとから構成し、前記PDUバッ
ファ本体は、その中のリファレンス・カウントを除い
て、複数のレイヤから同時にアクセスできるようにし、
前記PDUバッファディスクリプタは、各レイヤが必要
な場合には個別に確保できるようにすることにより、各
レイヤのプロトコル処理を個別のCPUに割り当てて、
あるレイヤの処理が終了した後に、作成したPDUを次
のレイヤに渡し、該レイヤは次のPDUの処理を行うと
いうふうに、PDUの読み書きに対する処理を、複数の
CPUが並列的に行うことを可能にした点にある。
【0008】
【作用】この発明によれば、各レイヤのプロトコル処理
を個別のCPUに割り当て、あるレイヤの処理が終了し
た後に、次のレイヤに作成したPDUを渡し、そのレイ
ヤは次のPDUの処理を行うという形で、パイプライン
的な並列処理を実現することができるようになる。
【0009】また、PDUバッファ本体は、リファレン
ス・カウントにアクセスする場合を除いて、複数のレイ
ヤから同時にアクセスできるようにし、PBDは各レイ
ヤが必要とする場合には個別に確保するようにしたの
で、PDUの読み書きに対する処理を、複数のCPUが
並列的に行うことができるようになる。
【0010】この結果、該複数のCPUがレイヤ間で共
有されるPDUを格納したバッファにアクセスする時の
排他制御を最小限にすることができるようになり、通信
プロトコルを高速に処理できるようになる。
【0011】
【実施例】以下に、図面を参照して、本発明を詳細に説
明する。図1は本発明が適用されるコンピュータ1の概
略のハード構成を示すブロック図である。本発明では、
階層構造をもつ通信プロトコルを実行する処理手順(ソ
フトウェア)が、図示されているようなコンピュータ1
上、すなわち、複数のCPU(中央処理装置)1a、1
bおよび1cが、内部バス1dを経由して、メモリ1e
を共有するコンピュータ1上に実装されている。
【0012】また、前記階層構造をもつ通信プロトコル
を実行する処理手順は、図2に示されているように、各
階層(レイヤ)のプロトコル毎に、個別のプログラムモ
ジュール2、3、…が、全てのモジュールからアクセス
可能な、共有データ領域4上のデータを共有しつつ処理
を行うものとする。ここに、前記プログラムモジュール
2、3、…は、図1のCPU1a、1b、…に対応させ
ることができる。
【0013】上記のような形態は、市販の共有メモリ型
マルチプロセッサを用いたワークステーション上で、各
レイヤのプロトコルモジュールを同一ユーザ空間の下で
動作するプログラムとして実装し、プロトコルモジュー
ルをオペレーティングシステムが提供するスレッドを用
いて動作させることにより実現可能である。
【0014】次に、本発明で使用する各レイヤのプロト
コルモジュールの構成について説明する。各レイヤのプ
ロトコルモジュールは、レイヤ間のユーザデータのコピ
ーを行わないように、図3に示されているような、プロ
トコルデータ単位(PDU:Protcol Data Unit )のバ
ッファを使用する。すなわち、前記共有データ領域4の
中に、PDUのデータ自身を蓄えるための、PDUバッ
ファ本体41と、PDUバッファ本体41の中のPDU
データの位置や長さを記述し、複数のPDUバッファ本
体を連結させるための、PDUバッファディスクリプタ
(以下、PBDと呼ぶ)を設ける。
【0015】前記PBDは、図示されているように、P
DUバッファ本体41の先頭を示すバッファ先頭ポイン
タ42a、PDUバッファ本体41の長さを示すバッフ
ァ長42b、PDUの作成に利用できる作業領域の先頭
ポインタ42c、実際のPDUデータ本体の先頭ポイン
タを示すPDU領域先頭ポインタ42d、その領域長4
2e、PDU全体長42fを有している。また、複数の
PDUバッファ本体を用いて、1つのPDUを構成する
ことを可能にするために、前方PBDポインタ42g
と、後方PBDポインタ42hが準備されている。複数
のPDUバッファ本体を用いて1つのPDUを構成する
場合は、PBDのPDU全体長42fに、PDUの全体
の長さ(各PDUバッファ本体におけるPDU領域長の
総和)が保持される。
【0016】一方、前記PDUバッファ本体41には、
それを指しているPBDが何個あるかを示すリファレン
ス・カウント41aと、後述するように並列に実行され
る複数のレイヤのプロトコルモジュールがリファレンス
・カウント41aにアクセスする競合を回避するために
設けられたリファレンス・カウント用ロック41bと、
PDUデータ本体41cが設けられている。
【0017】次に、図4、図5を参照して、本実施例の
動作を説明する。以下では、送信時における、レイヤ
(N+1)プロトコルモジュール12とレイヤ(N)プ
ロトコルモジュール13とを並列処理する場合の手順例
について説明する。図4のステップ1では、レイヤ(N
+1)プロトコルモジュール12は、共有データ領域上
に作成された( N+2)-PDUの送信要求を、レイヤ
(N+2)プロトコルモジュール11から通知される。
PBD1は、該( N+2)-PDUに対するPDUバッフ
ァディスクリプタである。
【0018】ステップ2では、レイヤ(N+1)プロト
コルモジュール12は、通知された( N+2)-PDUに
対して、レイヤ(N+1)プロトコル制御情報(PC
I:Protocol Control Information)である( N+1)-
PCIを付加して、( N+1)-PDUを作成する。図で
は、( N+1)-PCIを保持する新たなPDUバッファ
本体が確保され、それに対するPBD2と、上位レイヤ
から渡されたPBD1を、PBD内の前方PBDポイン
タ42gと後方PBDポインタ42hにより連結する。
【0019】図5に示されるステップ3では、レイヤ
(N+1)プロトコルモジュール12が、作成した( N
+1)-PDUを後に再送する可能性がある。本実施例で
は、再送時には、別の( N+1)-PCIを使用する。こ
のため、レイヤ(N+1)プロトコルモジュール12
は、再送時に使用するPBDを、現時点のものとは別に
作成する。図示されているように、PBD3およびPB
D4を作成する。
【0020】さらに、( N+1)-PCIについても、別
のPDUバッファ本体を割り当てて、前記PBD3はこ
の新たなPDUバッファ本体を指すようにする。また、
前記PBD4は前記上位レイヤから渡された( N+2)-
PDUを含むPDUバッファ本体を指すようにする。し
たがって、該( N+2)-PDUを含むPDUバッファ本
体のリファレンス・カウントは、1増加されることにな
る。この後、レイヤ(N+1)プロトコルモジュール1
2は、前記( N+1)-PDUの送信を、レイヤ(N)プ
ロトコルモジュール13に通知する。
【0021】ステップ4では、レイヤ(N)プロトコル
モジュール13は、通知された( N+1)-PDUに対し
て、そのレイヤのPCIである( N)-PCIを付加す
る。この処理は、新たなPDUバッファ本体と、PBD
5を用いて行われる。
【0022】また、並列に動作するレイヤ(N+1)プ
ロトコルモジュール12が、レイヤ(N)プロトコルモ
ジュール13における処理と同時に、再送用の( N+
1)-PDUの操作を行う場合がある。この場合にも、レ
イヤ(N+1)プロトコルモジュール12が書き替える
のは、PBD3の指す( N+1)-PCIだけであり、P
BD1の指す( N+2)-PDUにはアクセスする場合が
あっても、それは単にリードアクセスのみである。した
がって、この時点で、レイヤ(N)プロトコルモジュー
ル13に送信するPDUに含まれる、PBD2の指す(
N+1)-PCIと、PBD1の指す( N+2)-PDU
は、レイヤ(N+1)プロトコルモジュール12とレイ
ヤ(N)プロトコルモジュール13とが並列して処理さ
れた場合も、次の場合を除き、排他制御を行う必要がな
くなる。すなわち、PDUバッファ本体中のリファレン
ス・カウントにアクセスする場合は、それに対するロッ
クを用いて、排他制御を行う必要があるが、この場合以
外は、排他制御を行う必要がなくなる。しかしながら、
リファレンス・カウントに対する処理は、通常非常に短
い時間で済むため、この排他制御によるオーバヘッド
も、一般に、非常に小さいものとなる。
【0023】また、レイヤ(N+1)プロトコルモジュ
ール12は、レイヤ(N)プロトコルモジュール13の
処理とは独立に、レイヤ(N+2)プロトコルモジュー
ル11からPBD6で示される次の( N+2)-PDUの
送信要求を通知され、その処理を開始することも可能で
ある。
【0024】以上のように、本実施例によれば、各レイ
ヤのプロトコル処理を個別のプロトコルモジュール(C
PU)に割り当て、あるレイヤの処理が終了した後に、
次のレイヤに作成した送受信データを渡し、そのレイヤ
は次の送受信データの処理を行うという形で、パイプラ
イン的な並列処理を実現することができるようになる。
また、PDUバッファ本体は、リファレンス・カウン
トにアクセスする場合を除いて、複数のレイヤから同時
にアクセスできるようにし、PBDは各レイヤが必要と
する場合には個別に確保するようにしたので、PDUの
読み書きに対する処理を、複数のCPUが並列的に行う
ことができるようになる。
【0025】
【発明の効果】以上の説明から明らかなように、本発明
によれば、各レイヤのプロトコル処理を個別のCPUに
割り当てて全体の通信処理を並列的に行う場合、複数の
CPUがレイヤ間で共有されるPDUを格納したバッフ
ァにアクセスする時の競合を、リファレンス・カウント
にアクセスする場合を除いて、無視することができるよ
うになる。このため、該複数のCPUがレイヤ間で共有
されるPDUを格納したバッファにアクセスする時の競
合防止処理、換言すれば排他制御を最小限にすることが
できるようになり、通信プロトコルを高速に処理できる
ようになる。
【0026】また、本発明によれば、コネクション型の
通信プロトコルの並列処理における並列度を、従来より
も、増加することができるようになる。すなわち、CP
Uを増やすと、増やした個数に応じた処理性能を上げる
ことができるようになる。
【図面の簡単な説明】
【図1】 本発明が適用されるコンピュータのハード構
成を示すブロック図である。
【図2】 階層構造をもつ通信プロトコルを実行するソ
フトウェアの概念図である。
【図3】 PDUの構成の概念図である。
【図4】 送信時のCPUの並列処理の手順例を示す図
である。
【図5】 図4の続きの手順例を示す図である。
【符号の説明】
1…コンピュータ、1a〜1c…CPU、1d…内部バ
ス、1e…共有メモリ、2、12…レイヤ(N+1)プ
ロトコルモジュール、3、13…レイヤ(N)プロトコ
ルモジュール、4…共有データ領域、11…レイヤ(N
+2)プロトコルモジュール。
───────────────────────────────────────────────────── フロントページの続き (51)Int.Cl.6 識別記号 庁内整理番号 FI 技術表示箇所 H04L 29/10 9371−5K H04L 13/00 309 Z

Claims (4)

    【特許請求の範囲】
  1. 【請求項1】 送受信するプロトコルデータ単位(PD
    U)を保持するバッファを、PDUバッファ本体と、該
    PDUバッファ本体の中のPDUデータの位置や長さを
    記述し複数のPDUバッファ本体を連結させるためのP
    DUバッファディスクリプタとから構成し、 前記PDUバッファ本体は、その中のリファレンス・カ
    ウントを除いて、複数のレイヤから同時にアクセスでき
    るようにし、 前記PDUバッファディスクリプタは、各レイヤが必要
    な場合には個別に確保できるようにすることにより、 各レイヤのプロトコル処理を個別のCPUに割り当て
    て、あるレイヤの処理が終了した後に、作成したPDU
    を次のレイヤに渡し、該レイヤは次のPDUの処理を行
    うというように、PDUの読み書きに対する処理を、複
    数のCPUが並列的に行うことを可能にしたことを特徴
    とする通信プロトコルの並列処理のためのバッファ制御
    方法。
  2. 【請求項2】 請求項1の通信プロトコルの並列処理の
    ためのバッファ制御方法において、 前記PDUを渡された次のレイヤを処理するCPUは、
    渡されたPDUに自身のレイヤのプロトコル制御情報
    (PCI)を付加または除去することにより、新たなP
    DUを作成するようにしたことを特徴とする通信プロト
    コルの並列処理のためのバッファ制御方法。
  3. 【請求項3】 請求項1または2の通信プロトコルの並
    列処理のためのバッファ制御方法において、 前記PDUバッファ本体は、その中のリファレンス・カ
    ウントに対してのみ、そのアクセスにロックを用いた排
    他制御を行うようにしたことを特徴とする通信プロトコ
    ルの並列処理のためのバッファ制御方法。
  4. 【請求項4】 請求項1または2の通信プロトコルの並
    列処理のためのバッファ制御方法において、 CPUは再送用のPCIを作成し、PDUの再送時に
    は、該PCIのみを書き替え、上位レイヤから渡された
    PDUには単にリードアクセスのみをするようにしたこ
    とを特徴とする通信プロトコルの並列処理のためのバッ
    ファ制御方法。
JP6248317A 1994-09-19 1994-09-19 通信プロトコルの並列処理のためのバッファ制御方法 Pending JPH0888666A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP6248317A JPH0888666A (ja) 1994-09-19 1994-09-19 通信プロトコルの並列処理のためのバッファ制御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP6248317A JPH0888666A (ja) 1994-09-19 1994-09-19 通信プロトコルの並列処理のためのバッファ制御方法

Publications (1)

Publication Number Publication Date
JPH0888666A true JPH0888666A (ja) 1996-04-02

Family

ID=17176288

Family Applications (1)

Application Number Title Priority Date Filing Date
JP6248317A Pending JPH0888666A (ja) 1994-09-19 1994-09-19 通信プロトコルの並列処理のためのバッファ制御方法

Country Status (1)

Country Link
JP (1) JPH0888666A (ja)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2003075537A1 (fr) * 2002-03-05 2003-09-12 Fujitsu Limited Appareil de communication
KR100623169B1 (ko) * 2003-08-25 2006-09-19 아스텍 컴퓨터 인코퍼레이티드 재구성된 전송창과 재구성된 수신창의 외부에 있는 데이터단위를 요약하기 위해 무선 통신 시스템에서의 데이터전달을 제어하는 방법 및 장치
JP2008146486A (ja) * 2006-12-12 2008-06-26 Canon Inc 通信装置、通信装置の制御方法及びプログラム
JP2009219065A (ja) * 2008-03-12 2009-09-24 Nec Corp プロトコル処理装置及び処理方法
WO2011114477A1 (ja) * 2010-03-17 2011-09-22 富士通株式会社 階層型マルチコアプロセッサ、マルチコアプロセッサシステム、および制御プログラム
KR101340590B1 (ko) * 2009-11-05 2014-01-02 한국전자통신연구원 다계층 병렬 처리 장치 및 방법
KR101440122B1 (ko) * 2010-11-17 2014-09-12 한국전자통신연구원 다계층 데이터 처리 장치 및 방법

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2003075537A1 (fr) * 2002-03-05 2003-09-12 Fujitsu Limited Appareil de communication
US7542480B2 (en) 2002-03-05 2009-06-02 Fujitsu Microelectronics Limited Communication device
KR100623169B1 (ko) * 2003-08-25 2006-09-19 아스텍 컴퓨터 인코퍼레이티드 재구성된 전송창과 재구성된 수신창의 외부에 있는 데이터단위를 요약하기 위해 무선 통신 시스템에서의 데이터전달을 제어하는 방법 및 장치
JP2008146486A (ja) * 2006-12-12 2008-06-26 Canon Inc 通信装置、通信装置の制御方法及びプログラム
JP2009219065A (ja) * 2008-03-12 2009-09-24 Nec Corp プロトコル処理装置及び処理方法
KR101340590B1 (ko) * 2009-11-05 2014-01-02 한국전자통신연구원 다계층 병렬 처리 장치 및 방법
WO2011114477A1 (ja) * 2010-03-17 2011-09-22 富士通株式会社 階層型マルチコアプロセッサ、マルチコアプロセッサシステム、および制御プログラム
CN102812445A (zh) * 2010-03-17 2012-12-05 富士通株式会社 分层型多核处理器、多核处理器系统、以及控制程序
JPWO2011114477A1 (ja) * 2010-03-17 2013-06-27 富士通株式会社 階層型マルチコアプロセッサ、マルチコアプロセッサシステム、および制御プログラム
KR101440122B1 (ko) * 2010-11-17 2014-09-12 한국전자통신연구원 다계층 데이터 처리 장치 및 방법

Similar Documents

Publication Publication Date Title
US5140685A (en) Record lock processing for multiprocessing data system with majority voting
US4720784A (en) Multicomputer network
EP1016957B1 (en) Method of managing resources shared by multiple processing units
US5488694A (en) Broadcasting headers to configure physical devices interfacing a data bus with a logical assignment and to effect block data transfers between the configured logical devices
EP0712076A2 (en) System for distributed multiprocessor communication
US20070260909A1 (en) Computer Hardware Fault Administration
JPH0570177B2 (ja)
JPH0550021B2 (ja)
US6321308B1 (en) Method and apparatus for managing access requests from a plurality of devices using dual level queue locking scheme and a doubly-linked circular queue
CN112131176B (zh) 一种基于pcie的fpga快速局部重构方法
JP3690295B2 (ja) ディスクアレイ制御装置
JPH02288927A (ja) 共有メモリ管理方式
JPH0888666A (ja) 通信プロトコルの並列処理のためのバッファ制御方法
JP2591502B2 (ja) 情報処理システムおよびそのバス調停方式
US8117626B2 (en) Asynchronous remote procedure calling method and computer product in shared-memory multiprocessor
JP3255759B2 (ja) マルチプロセッサシステム
CN115756767A (zh) 一种用于多核cpu原子操作内存的装置及方法
JPH08212178A (ja) 並列計算機
JPH08278953A (ja) 計算機システムにおける排他制御方式
US20080288967A1 (en) Procedure calling method, procedure calling program, and computer product
JP2576934B2 (ja) メモリ−マップド割込み方式
JPH0944438A (ja) 同期タイプ入出力命令の多重処理方法
JP2002175287A (ja) 排他制御装置及び排他制御方法
JPS61206064A (ja) マルチコンピユ−タシステムにおける共通入出力装置制御方式
JPS62209635A (ja) 非同期通信におけるシステム管理フアイルアクセス方式