JP3706008B2 - プロセッサ間データ通信装置、プロセッサ間データ通信方法およびデータ処理装置 - Google Patents
プロセッサ間データ通信装置、プロセッサ間データ通信方法およびデータ処理装置 Download PDFInfo
- Publication number
- JP3706008B2 JP3706008B2 JP2000233609A JP2000233609A JP3706008B2 JP 3706008 B2 JP3706008 B2 JP 3706008B2 JP 2000233609 A JP2000233609 A JP 2000233609A JP 2000233609 A JP2000233609 A JP 2000233609A JP 3706008 B2 JP3706008 B2 JP 3706008B2
- Authority
- JP
- Japan
- Prior art keywords
- processor
- data
- queue
- information
- empty
- 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.)
- Expired - Fee Related
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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/544—Buffers; Shared memory; Pipes
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multi Processors (AREA)
- Memory System (AREA)
Description
【発明の属する技術分野】
本発明は、プロセッサ間データ通信装置および方法に関し、詳細には、複数のプロセッサ間に共有メモリを設けたマルチプロセッサシステムに適用され、共有メモリ上のキューを介してプロセッサ間で通信するプロセッサ間データ通信装置、プロセッサ間データ通信方法およびデータ処理装置に関する。
【0002】
近年、大規模なマルチプロセッサシステムが実用化されるとともに、複数のプロセッサを用いるソフトウェア技術が進歩している。このマルチプロセッサシステムは、複数のプロセッサと共有メモリから構成されており、複数のプロセッサを並列に動作させることで、処理速度やスループット、信頼性を向上させ、単一プロセッサに比べて高性能の計算機システムを構成するものである。ここで、マルチプロセッサシステムにおいては、プロセッサ間でデータの一貫性を保ことが不可欠であり、共有メモリ上のキューを用いて様々な手法により上記一貫性を維持している。
【0003】
【従来の技術】
図14は、従来におけるマルチプロセッサシステムの構成を示すブロック図である。この図に示したマルチプロセッサシステムは、説明上、書き込み側と読み出し側にそれぞれ一つずつ書き込みプロセッサ1、読み出しプロセッサ2を設け、これらの書き込みプロセッサ1および読み出しプロセッサ2は、データバスBを介して共有メモリ3に共にアクセス可能に接続されている。この共有メモリ3は、書き込みプロセッサ1および読み出しプロセッサ2との間で共有される資源としてのメモリである。なお、プロセッサはシステムの規模に応じて三つ以上設けられる場合がある。
【0004】
上記書き込みプロセッサ1は、各種演算を行う演算処理部1a、データバスBを介して共有メモリ3からデータを読み出すデータ読出部1b、データバスBを介して共有メモリ3にデータを書き込むデータ書込部1cを有している。同様にして、読み出しプロセッサ2は、演算処理部2a、データ読出部2bおよびデータ書込部2cを有している。
【0005】
以下においては、データバスBおよび共有メモリ3を介して、書き込みプロセッサ1から読み出しプロセッサ2へのデータ通信を行う例について説明する。この通信は、プロセッサ間のデータの一貫性を維持すべく、図15に示したように共有メモリ3上のキュー(待ち行列)4を介して行われる。すなわち、通信データは、書き込みプロセッサ1により共有メモリ3に書き込まれた後、読み出しプロセッサ2により読み出されることで、書き込みプロセッサ1から読み出しプロセッサ2へ転送されるのである。
【0006】
ここで、書き込みプロセッサ1は、
A1.通信のためのメモリ領域の確保、
A2.上記メモリ領域への通信データ(情報)の書き込み、
A3.確保したメモリ領域をキュー4へ登録、
という操作を行う。
【0007】
具体的には、(A1.)の操作では、共有メモリ3において、読み出しプロセッサ2へ転送すべき通信データ(情報)を書き込むためのメモリ領域が確保される。(A2.)の操作では、(A1.)の操作において確保されたメモリ領域に通信データが書き込まれる。さらに、(A3.)の操作では、(A1.)の操作において確保されたメモリ領域がキュー4に登録される。ここで、メモリ領域およびキュー4は共有メモリ3上に存在し、複数のプロセッサから参照されるため、後述する排他的ロックで保護する必要がある。
【0008】
さらに、上述した(A3.)の操作は、具体的には、
A3−1.キュー4を保護している排他的ロックを取得、
A3−2.キュー4の操作、
A3−3.キュー4を保護している排他的ロックの解除、
という手順を踏む。
【0009】
また、読み出しプロセッサ2は、
B1.キュー4からメモリ領域を取得、
B2.上記メモリ領域からの通信データ(情報)の読み出し、
B3.通信完了(読み出し完了)時にメモリ領域を解放、
という操作を行う。
【0010】
具体的には、(B1.)の操作では、共有メモリ3において、読み出しプロセッサ2により通信データが書き込まれたメモリ領域が取得される。(B2.)の操作では、(B1.)の操作において取得されたメモリ領域から通信情報が読み出される。さらに、(B3.)の操作では、(B1.)の操作において取得されたメモリ領域が解放される。
【0011】
上記(B1.)の操作も、書き込みプロセッサ1と同様に、
B1−1.キュー4を保護している排他的ロックを取得、
B1−2.キュー4の操作、
B1−3.キュー4を保護している排他的ロックの解除、
の手順を踏む。
【0012】
つぎに、図16(a)〜(c)を参照して、従来のマルチプロセッサシステムにおけるキュー4(図15参照)の構造、および書き込み/読み出し動作について詳述する。図16(a)に示したキュー4は、数珠つなぎに連結された要素5a、5b、5cと、これらの要素5a、5b、5cにそれぞれ対応するメモリ領域6a、6b、6cと、登録箇所情報領域7と、取得箇所情報領域8とを有している。上記要素5aには、接続先が要素5bであることを示す接続情報が書き込まれており、同様にして、要素5bにも、接続先が要素5cであることを示す接続情報が書き込まれている。すなわち、要素5a、5b、5cにおける接続関係は、上記接続情報により定義付けられている。
【0013】
メモリ領域6a、6bおよび6cには、書き込みプロセッサ1(図15参照)により通信データがぞれぞれ登録される(書き込まれる)。さらに、メモリ領域6a、6bおよび6cに登録された各通信データは、読み出しプロセッサ2(図15参照)により取得される(読み出される)。登録箇所情報領域7には、書き込みプロセッサ1による通信データの登録箇所(要素、メモリ領域)に関する登録箇所情報が書き込まれ、さらにこの登録箇所情報により指定されるメモリ領域には、通信データが書き込まれる。取得箇所情報領域8には、読み出しプロセッサ2による通信データの取得箇所(要素、メモリ領域)に関する取得箇所情報が書き込まれる。
【0014】
図16(b)は、書き込みプロセッサ1による登録時のキュー4の操作を説明する図である。この登録時においては、前述した排他的ロックをキュー4にかけることにより、書き込みプロセッサ1のみがキュー4の操作を行う。この排他的ロックは、キュー4を書き込みプロセッサ1以外のプロセッサ(この場合、読み出しプロセッサ2)から保護するものである。この図において、書き込みプロセッサ1は、排他的ロックを取得した後、メモリ領域6d(要素5d)を確保する。つぎに、書き込みプロセッサ1は、上記メモリ領域6dに通信データを書き込んだ後、登録箇所情報領域7に書き込まれている登録箇所情報に変更を加える操作を行う。
【0015】
具体的には、この場合、登録箇所情報領域7にメモリ領域6c(要素5c)に関する登録箇所情報が書き込まれているものとすると、書き込みプロセッサ1は、上記登録箇所情報を、つぎの登録先であるメモリ領域6d(要素5d)に関する登録箇所情報に更新する。ここで、いずれのメモリ領域にも通信情報が書き込まれていない場合には、書き込みプロセッサ1は、登録箇所情報領域7の登録箇所情報に対する操作に加えて、取得箇所情報領域8の取得箇所情報に対する操作も行う。さらに、書き込みプロセッサ1は、要素5cと要素5dとの接続関係を定義付ける接続情報に対する操作を行った後、排他的ロックを解除する。
【0016】
一方、図16(c)は、読み出しプロセッサ2による取得時のキュー4の操作を説明する図である。この取得時においては、書き込みプロセッサ1と同様にして、排他的ロックをキュー4にかけることにより、書き込みプロセッサ2のみがキュー4の操作を行う。この図において、読み出しプロセッサ2は、排他的ロックを取得した後、取得箇所情報領域8の取得箇所情報に基づいて、メモリ領域6a(要素5a:図16(a)参照)を取得する。つぎに、読み出しプロセッサ2は、上記メモリ領域6aに書き込まれている通信データを読み込んだ後、このメモリ領域を解放する。そして、読み出しプロセッサ2は、取得箇所情報領域8に書き込まれている取得箇所情報に変更を加える操作を行う。
【0017】
具体的には、この場合、取得箇所情報領域8にメモリ領域6a(要素5a)に関する取得箇所情報が書き込まれているものとすると、読み出しプロセッサ2は、上記取得箇所情報を、つぎの取得先であるメモリ領域6b(要素5b)に関する取得箇所情報に更新する。ここで、いずれのメモリ領域にも通信情報が書き込まれていない場合には、読み出しプロセッサ2は、取得箇所情報領域8の取得箇所情報に対する操作に加えて、登録箇所情報領域7の登録箇所情報に対する操作も行う。さらに、読み出しプロセッサ2は、図16(a)に示した要素5aと要素5bとの接続を解除すべく、接続情報に対する操作を行った後、排他的ロックを解除する。このように、書き込みプロセッサ1および読み出しプロセッサ2は、(A)接続情報、(B)登録箇所情報、(C)取得箇所情報という三つの情報に対する操作をそれぞれ行う。
【0018】
【発明が解決しようとする課題】
上述したように従来のプロセッサシステムにおいては、たとえば(A3−1.)と(A3−3.)の排他的ロックに関する操作(取得/解除)や、(B1−1.)と(B1−3.)の排他的ロックに関する操作(取得/解除)はどちらもメモリ読み出しや書き込み等の通常のメモリ操作に比べて長い時間を必要とするので、処理速度の低下を招くという問題があった。
【0019】
実際に、書き込みプロセッサ1と読み出しプロセッサ2とは排他的ロックを介して、扱うデータを保護しながら通信を行っており、この排他的ロックに複数のプロセッサのアクセスが集中することがソフトウェアの性能を下げる原因となっている。ここで、アクセスが集中しない場合でも、排他的ロックに関する操作は通常のメモリアクセスに比べ100倍〜1000倍もの時間がかかることから、細やかなデータを扱う場合には無視できない。
【0020】
また、排他的ロックの代りにキュー4に対して書き込み操作と読み込み操作を不可分に行う操作により、同様に排他的なメモリ保護を行う方式もあるが、この場合にも排他的ロックと同様にして処理時間が長くなってしまうため、根本的な解決にはならない。
【0021】
本発明は、上述した従来例による問題を解消するため、共有メモリを介すマルチプロセッサ間でキューを介する通信において、排他的ロックに関する操作を不要にして、処理速度を高速化することが可能なプロセッサ間データ通信装置、プロセッサ間データ通信方法およびデータ処理装置を提供することを目的とする。
【0022】
【課題を解決するための手段】
上述した課題を解決し、目的を達成するため、請求項1にかかる発明は、複数のプロセッサ間に共有メモリ(後述する実施の形態1の共有メモリ3に相当)を設けたマルチプロセッサシステムに適用されるプロセッサ間データ通信装置において、前記共有メモリ上でデータを操作するためのリンク接続された複数の要素および前記複数の要素の最後尾に接続された空の要素を有したキュー(後述する実施の形態1のキュー10に相当)と、前記キューにおいてデータを登録する際に、既にある空の要素の他に新たな空の要素を確保して当該新たな空の要素を前記既にある空の要素の後方に接続した後に、前記既にある空の要素を用いてデータを登録する登録手段(後述する実施の形態1の書き込みプロセッサ1に相当)と、前記キューにおいて前記複数の要素の中からデータが登録された要素を取得し、前記取得された要素からデータを読み出す取得手段(後述する実施の形態1の読み出しプロセッサ2に相当)とを備え、前記データは、通信情報、前記要素間の接続状態を示す情報、および前記通信情報の登録有無を示す情報であり、前記要素のメモリ領域は、前記登録手段、前記取得手段における1回のアクセスで前記データを登録/取得可能なサイズであることを特徴とする。
【0023】
この請求項1にかかる発明によれば、共有メモリ上でデータを操作するためのリンク接続された複数の要素およびこの複数の要素の最後尾に接続された空の要素を有したキューにおいて、データ登録の際に、登録手段により、既にある空の要素の他に新たな空の要素を確保して新たな空の要素を既にある空の要素の後方に接続した後に、1アクセスでデータ(通信情報、前記要素間の接続状態を示す情報、および前記通信情報の登録有無を示す情報)を登録する一方、取得手段により複数の要素のうちでデータを登録した要素を取得してその取得された要素からデータ(通信情報、前記要素間の接続状態を示す情報、および前記通信情報の登録有無を示す情報)を1アクセスで読み出すようにすることで、複数のプロセッサが同時にキュー操作する領域が分離され、これにより、排他的ロックの操作が不要となって処理速度を向上させることが可能である。
【0026】
また、請求項2にかかる発明は、請求項1に記載のプロセッサ間データ通信装置において、前記通信情報は、前記共有メモリにおける可変長のメモリ領域に書き込まれるデータを指示するポインタであることを特徴とする。
【0027】
この請求項2にかかる発明によれば、通信情報としてポインタを用いることにより、排他的ロックの操作を不要として、データサイズが要素のサイズより大きいデータを扱うことができる。
【0028】
また、請求項3にかかる発明は、請求項1または2に記載のプロセッサ間データ通信装置において、前記キューは、アクセス範囲に関して、前記登録手段側(後述する実施の形態2の書き込みプロセッサ1に相当)の前記空の要素と、前記取得手段側の前記複数の要素とに分離され、前記取得手段(後述する実施の形態2の読み出しプロセッサ2に相当)は、アクセス範囲内の要素間を繋ぐ新規の要素を追加することを特徴とする。
【0029】
この請求項3にかかる発明によれば、キューにおいてアクセス範囲に関して登録手段側の空の要素と取得手段側の要素とに分離されるので、取得手段側の要素に対して登録手段がアクセスできないことから、排他的ロックの操作を伴うことなく、新規の要素を追加するための登録手段として取得手段が機能する。
【0030】
また、請求項4にかかる発明は、請求項1、2または3に記載のプロセッサ間データ通信装置において、複数の前記登録手段(後述する実施の形態3の書き込みプロセッサ1A〜1Dに相当)と一つの前記取得手段(後述する実施の形態3の読み出しプロセッサ2に相当)とを備え、前記複数の登録手段に対応させて複数の前記共有メモリをそれぞれ接続するとともに、ぞれぞれの前記共有メモリと前記取得手段との間にマルチプレクサ(後述する実施の形態3のマルチプレクサ20に相当)を一つ接続したことを特徴とする。
【0031】
この請求項4にかかる発明によれば、複数の登録手段にそれぞれ独立した共有メモリを接続するとともに、それぞれの共有メモリと前記取得手段との間にマルチプレクサを一つ接続したので、それぞれの共有メモリのキューに対して各登録手段による排他的ロックに関する操作を行うことなく、処理速度が向上した登録手段多数/取得手段1の構成とすることが可能となる。
【0032】
【発明の実施の形態】
以下に添付図面を参照して、本発明にかかるプロセッサ間データ通信装置、プロセッサ間データ通信方法およびデータ処理装置の好適な実施の形態1〜4を詳細に説明する。
【0033】
(実施の形態1)
まず、原理について説明する。この実施の形態1では、本発明にかかるプロセッサ間データ通信装置を共有メモリを持つ汎用のマルチプロセッサシステムに適用させたものである。この実施の形態1のマルチプロセッサシステムは、新規のハードウェアを追加することなく排他的ロックの必要性を排除し、プロセッサ間のキュー操作を高速に実現するものである。
【0034】
なお、この実施の形態1においては、ハードウェア構成が前述した図14に示した構成と同一であるため、その符号を用いて説明する。ただし、この実施の形態1においては、従来のものに比較して、共有メモリ3のキュー構造、書き込みプロセッサ1および読み出しプロセッサ2の各機能が異なる。このキュー構造および各機能については後に詳述する。
【0035】
ここで、前述したように、書き手プロセッサと読み手プロセッサが異なる場合は、プロセッサ間でデータの一貫性を保つために、同時にキューをアクセスできるプロセッサをただ一つに制限する必要がある。排他的ロックはこのアクセス制限のための手段であり、複数のプロセッサから操作されるキューを操作するためにはこの排他的ロックに関する操作が必要とされる。
【0036】
この実施の形態1では、キューを操作する各プロセッサについて、それぞれのプロセッサが同時にキューを操作する領域を極力分離することにより、保護の必要な領域を縮小することで、特別の装置を持たない一般的なハードウエアの場合にも、排他的ロックに関する操作の必要性を排除するものである。
【0037】
データ通信におけるキューの操作は大別して、
(1)キューの要素の登録と取得、
(2)通信情報の書き込み(登録)と読み出し(取得)、
という異なる2種の操作に分類される。
【0038】
上記(1)キューの要素の登録と取得においては、前述したように、
(A)キューの要素間の接続情報、
(B)キューへの登録箇所を示す登録箇所情報、
(C)キューからの取得箇所を示す取得箇所情報、
という三つの情報に対する操作が必要となる。
【0039】
従来のものでは、書き込みプロセッサ1および読み出しプロセッサ2が共にこれらの三つの情報を読み/書きする操作が必要があったため、排他的ロックによる保護が不可欠であった。これに対して、実施の形態1では、情報を有する通常の要素とは別に、キューの登録箇所に「空の要素」を登録することで、書き込みプロセッサ1が操作する情報は、上述した三つの情報のうち、(A)接続情報および(B)登録箇所情報という二つの情報に限られる。同様にして、読み出しプロセッサ2が操作する情報も、三つの情報のうち(A)接続情報および(C)取得箇所情報に限られる。
【0040】
このように、実施の形態1では、「空の要素」を通常の要素とは別に登録することにより、書き込みプロセッサ1と読み出しプロセッサ2とにより、共通に操作される情報は、三つの情報のうち(A)接続情報のみとなる。この段階では、上記(A)接続情報に対して排他的ロックによる保護が必要となるが、実施の形態1においては、さらに、書き込みプロセッサ1が(A)接続情報に対して書き操作のみを行う一方、読み出しプロセッサ2が(A)接続情報に対して読み操作のみを行うようにしている。
【0041】
しかも、実施の形態1においては、書き込みプロセッサ1および読み出しプロセッサ2が1回のアクセスで書き込み/読み出しが可能な最大のメモリ領域(例えば、8バイト)をキューの要素としている。ここで、上記メモリ領域の単位を1アクセス単位と称する。このように、(A)接続情報を1アクセス単位のキューの要素に組み込むことにより、書き込みプロセッサ1/読み出しプロセッサ2は、1回のアクセスで(A)接続情報の書き込み/読み出しをぞれぞれ行うことができる。従って、実施の形態1においては、(A)接続情報の操作に対して排他的ロックによる保護を行う必要がなくなる。
【0042】
さらに、実施の形態1では、書き込みプロセッサ1により、前記(2)通信情報がメモリ領域に全て書き込まれたか否かを示す書込完了情報が、上述した1アクセス単位の要素に書き込まれる。特に、データ量が少ない通信情報ならば書き込まれた上記通信情報自体が書き込み終了の情報になり得る。一方、読み出しプロセッサ2は、書込完了情報を読み取って、通信情報の読み込みが可能かどうかを判断する。この手法は、上述した(1)と同様にして排他的ロックによる保護の必要性を排除するものである。
【0043】
また、上述した接続情報、通信情報および書込完了情報という三つの情報は、1アクセス単位の要素に収まるようになっており、書き込みプロセッサ1は上記三つの情報を要素に書き込む操作を1回のアクセスですべて完了させることができる。すなわち、書き込みプロセッサ1は、接続情報の書き込み操作、通信情報の書き込み操作、および書込完了情報の書き込み操作という三つの操作を1回のアクセスで不可分に行う。
【0044】
同様にして、読み出しプロセッサ2も上記三つの情報を要素からそれぞれ読み出す三つの操作を1回のアクセスで不可分に行う。このように、実施の形態1では、前記(1)と(2)のメモリ操作に必要な領域を1アクセス単位の要素(メモリ領域)に押し込めることで、それぞれの操作を一回のメモリアクセスで同時に行えるため、結論として排他的ロックに関する操作を行うことなく、全体のキュー操作を行うことができる。
【0045】
つづいて、以下に具体例を挙げて説明する。図1は本発明の実施の形態1によるプロセッサ間データ通信装置を概略的に説明する構成図である。なお、プロセッサシステムの全体構成については、説明上、従来の図14および図15と同様に書き込みプロセッサを1、読み出しプロセッサを2とする。図1において、キュー10は、共有メモリ3(図14参照)上に存在しており、その構造は、前述したキュー4と異なる。
【0046】
すなわち、キュー10は、数珠つなぎ状の要素11a、要素11bおよび「空の」要素11cから構成されている。上記要素11aは、書き込みプロセッサ1/読み出しプロセッサ2が1回のアクセスで書き込み/読み出しが可能な最大のメモリ領域である。このメモリ領域は、前述した1アクセス単位の領域であり、例えば、8バイト分のデータ書き込み/読み出しが1回のアクセスで可能とされている。さらに、要素11aは、4バイト分の通信情報領域12a、同じく4バイト分のマーク領域13aから構成されている。
【0047】
この通信情報領域12aには、4バイト以内の通信データ、または4バイトを超える大容量の通信データが格納される可変長のメモリ領域(図示略)を示すポインタが書き込みプロセッサ1により書き込まれる。ここで、上記通信データ、ポインタを総称して通信情報と称する。従って、以下の説明においては、通信情報領域12aには、上記通信情報(図中網点で示す)が書き込まれているものとする。
【0048】
マーク領域13aには、要素11aとつぎの要素11bとの接続関係を示す接続情報(リンクポインタ:図中矢印で示す)、通信情報領域12aに通信情報が書き込まれているか否かを表す書込完了情報(2値表現フラグ)がマークとして書き込まれている。この書込完了情報(フラグ)により、通信情報が通信情報領域12aに書き込まれていない状態と、通信情報が書き込まれている状態とを表現できる。
【0049】
また、上記マークは、通信情報領域12aに通信情報が書き込まれていない初期状態では、初期化されている。これらの通信情報およびマークは、書き込みプロセッサ1における1回のアクセスで同時に、要素11aの通信情報領域12aおよびマーク領域13aにぞれぞれ書き込まれる。同様にして、通信情報およびマークは、読み出しプロセッサ2における1回のアクセスで同時に読み込まれる。
【0050】
要素11bは、1アクセス単位のメモリ領域であり、要素11aと同様にして、通信情報が書き込まれた通信情報領域12b(4バイト)、およびマークが書き込まれたマーク領域13bから構成されている。また、上記マークは、通信情報領域12aに通信情報が書き込まれているか否かの状態を示す書込完了情報、および要素11bとつぎの「空の」要素11cとの接続関係を示す接続情報とからなる。要素11cは、要素11bに接続されており、8バイトのメモリ領域である。この要素11cは、要素11aと同様にして通信情報領域12cおよびマーク領域13cを備えているが、これらの通信情報領域12cおよびマーク領域13cには、いずれの情報も書き込まれておらず、空きの状態とされている(図中、斜め線で示す)。
【0051】
また、キュー10は、「空の」要素11cを常に一つ持つことで特徴づけられる。キュー10に新たな要素単位を追加した場合にも「空の」要素単位が一つである状態が保たれる。このように、書き込みプロセッサ1と読み出しプロセッサ2の間には、書き込みプロセッサ1から読み出しプロセッサ2に通信データを転送するためのキュー10が設けられている。
【0052】
つぎに、書き込みプロセッサ1におけるキュー10への登録動作について図2〜図4を参照しつつ説明する。図2および図3はキュー10への登録時のデータの流れを説明する図であり、図4はキュー10への登録動作を説明するフローチャートである。まず、書き込みプロセッサ1はキュー10に対して通信情報を登録するために以下の手順を取る。
【0053】
前提として、キュー10は、図2に示したように、要素11aおよびこれに接続された「空の」要素11bから構成されているものとする。すなわち、この場合、「空の」要素11bの通信情報領域12bおよびマーク領域13bには、通信情報およびマークが書き込まれていない。このような状態において、まず、書き込みプロセッサ1は、図4に示したステップS101では、「空の」要素11bとは別に、「空の」要素11c(Enew)を新たに確保(図2参照)した後、ステップS102へ進む。
【0054】
つぎに、書き込みプロセッサ1は、キュー10に登録されている「空の」要素11b(Eold)に対して1回のアクセスを行うことで、ステップS102〜ステップ104からなる三つの操作を同時に行う。このように三つの操作を同時に行うことができるのは、要素11bが1アクセス単位のメモリ領域とされているからである。
【0055】
上記三つの操作において、図3に示したように書き込みプロセッサ1は、「空の」要素11b(Eold)の通信情報領域12bに通信情報を書き込む(ステップS102)と同時に、「空の」要素11b(Eold)のマーク領域13bにマークを書き込み(ステップS103)、さらに、要素11b(Eold)と新たな「空の」要素11c(Enew)との接続を実施する(ステップS104)。
【0056】
ここで、要素11bのマーク領域13bには、要素11bに通信情報が書き込まれていることを示す書込完了情報、および要素11bと「空の」要素11cとの接続関係を示す接続情報が書き込まれている。このように、以上のステップS102〜ステップS104の操作が不可分(同時)に行われるため、書き込みプロセッサ1から書き込まれた通信情報と読み出しプロセッサ2が読み取る通信情報の間では常に一貫性が保たれる。
【0057】
つぎに、読み出しプロセッサ2におけるキュー10からの取得動作について図5〜図7を参照しつつ説明する。図5はキュー10からの通信情報の取得に失敗した例を説明する図であり、図6はキュー10からの通信情報の取得に成功した例を説明する図である。また、図7は、キュー10からの取得動作を説明するフローチャートである。
【0058】
図5においては、要素11bに対して読み出しプロセッサ2がアクセスした例について図示されている。この場合、要素11bは「空の」要素であるものとし、従って、要素11bの通信情報領域12bおよびマーク領域13bには、通信情報およびマークが書き込まれていない。
【0059】
このような状態において、読み出しプロセッサ2はキュー10から通信情報を取得するために以下の手順を取る。まず、読み出しプロセッサ2は、図5に示した要素11bにアクセスすることで、図7に示したステップS201の操作を行う。すなわち、ステップS201では、読み出しプロセッサ2は、要素11bのマーク領域13bのマークに基づいて、書き込み済みの要素単位があるか否かを判断する。
【0060】
ここで、読み出しプロセッサ2は、要素11bの通信情報領域12bに通信情報が書き込まれているか否かをマークに基づいて判断する。この場合、読み出しプロセッサ2は、マークが書き込まれていないため、ステップS201の判断結果を「NO」として、「空の」要素11bに対するアクセスを終了する。すなわち、この場合、読み出しプロセッサ2は、通信情報の取得に失敗したのである。
【0061】
一方、図6に示した例では、読み出しプロセッサ2は、ステップS201においてキュー10に書き込み済みの要素があるかどうかを確認し(図6のM1)、ステップS201で書き込み済みのキュー要素があれば、ステップS202においてそのキュー要素から通信情報を読み込む(図6のM2)。さらに、読み出しプロセッサ2は、ステップS203で通信完了の手続きを行い(図6のM3)、取得動作を終了する。
【0062】
具体的には、図6に示したように、要素11bの通信情報領域12bおよびマーク領域13bにそれぞれ通信情報およびマークが書き込まれているものとする。この状態で、読み出しプロセッサ2が同図に示す要素11bにアクセスすると、図7に示したステップS201およびステップS202の操作を同時に行う。すなわち、ステップS201では、読み出しプロセッサ2は、要素11bのマーク領域13bのマークから、通信情報が通信情報領域12bに書き込まれていると認識して、判断結果を「YES」とし、ステップS202の操作を行い、その後ステップS203の操作を行う。
【0063】
すなわち、読み出しプロセッサ2は、要素11bの通信情報領域12bから通信情報を読み込み(ステップS202)、要素11bを登録からはずすことで、通信完了の手続きを行い(ステップS203)、取得動作を終了する。ここで、このようにステップS201およびステップS202の二つの操作を同時に行うことができるのは、要素11bが1アクセス単位のメモリ領域とされているからである。以上の手順により、異なる2プロセッサ間(書き込みプロセッサ1、読み出しプロセッサ2)で排他的ロックを用いないキュー10を実現することできる。
【0064】
以上説明したように、本実施の形態1によれば、共有メモリ3上でデータを操作するための複数の要素を有したキュー10において、登録の際に、複数の要素間で「空の」要素を確保して、「空の」要素を用いてデータを登録し、取得の際に、複数の要素のうちでデータを登録した要素を取得してその取得された要素からデータを読み出すようにするとともに、要素を1アクセス単位としている。これにより、複数のプロセッサが同時にキュー操作する領域が分離されるので、排他的ロックに関する操作が不要となって処理速度を向上させることができる。
【0065】
また、マルチプロセッサシステムに本実施の形態1を適用することにより、複数プロセッサ間でデータの交換を行うためのソフトウェアの性能を向上することができる。今後このようなマルチプロセッサシステムは、性能を求められるような場面で主流を占めることになるが、そのようなシステムでは、本実施の形態1のような装置が、OS(オペレーティングシステム)などの基幹ソフトウェアからアプリケーションまでの広い範囲に渡って、高速化するために必要とされる。加えて、キュー10に通信情報の登録有無や、接続情報を示すマークとを用いるようにしたので、キュー10の管理能力を向上させることが可能である。
【0066】
なお、上述した実施の形態1においては、例えば、通信情報領域12a(図1参照)に書き込まれる通信情報として、4バイト以内の通信データ、または4バイトを超えるデータ量の通信データのポインタの2種類があることを述べた。ここで、通信情報としてポインタを通信情報領域12aに書き込んだ場合にも、上述した排他的ロックの操作が不要となる。すなわち、上記ポインタを用いることにより、4バイト以上の通信データに関しても、排他的ロックの操作が不要となる。
【0067】
(実施の形態2)
さて、前述の実施の形態1では、書き込みプロセッサ1側でキュー要素単位を追加する手法を説明したが、読み出しプロセッサ2側でも同様にキュー要素単位を追加してもよい。図8は本発明の実施の形態2によるプロセッサ間データ通信装置のアクセス方法を説明する図である。本実施の形態2では、図1に示したキュー10について、読み出しプロセッサ2と書き込みプロセッサ1とのそれぞれのアクセス範囲が、同図境界線Lで分離されている。すなわち、読み出しプロセッサ2は、要素11aおよび要素11bに対してアクセスする一方、書き込みプロセッサ1は、「空の」要素11cに対してアクセスする。
【0068】
このようにアクセス範囲が分離されていることから、読み出しプロセッサ2は、前述した本来の読み出し機能の他に、書き込み機能を持たせることで、自身のアクセス範囲内において排他的ロックを必要とせずに、要素11bと「空の」要素11cとの間に新たな要素11dを追加することが可能となる。ここで、読み出しプロセッサ2に読み出し/書き込み機能の両機能を持たせるためには、図14に示したデータ読出部2bおよびデータ書込部2cをそれぞれ動作させればよい。
【0069】
ここで、上記動作について具体的に説明する。図9は本実施の形態2による登録動作を説明するフローチャートである。図9に示したステップS301では、読み出しプロセッサ2は、図8に示した新たな要素11dを確保した後、ステップS302へ進む。上記新たな要素11dは、要素11aと同様にして、通信情報領域12dおよびマーク領域13dを備えている。ステップS302では、読み出しプロセッサ2は、書き込みプロセッサ1のキュー10への登録位置の前に、上記新たな要素11dを登録する。
【0070】
すなわち、読み出しプロセッサ2は、要素11bのマーク領域13bの位置情報を、要素11bと要素11dとの接続状態を示す位置情報に更新するとともに、要素11dのマーク領域13dの位置情報を、要素11dと要素11cとの接続状態を示す位置情報に更新する。これにより、排他的ロックに関する操作が不要な書き手2(書き込みプロセッサ1および読み出しプロセッサ2)/読み手1(読み出しプロセッサ2)のキューを実現することができる。
【0071】
(実施の形態3)
さて、前述した実施の形態1、2では、書き手1(書き込みプロセッサ1)/読み手1(読み出しプロセッサ2)、書き手2(書き込みプロセッサ1および読み出しプロセッサ2)/読み手1(読み出しプロセッサ2)のキューを実現していたが、本発明はこれに限定されず、以下に説明する実施の形態3のように、書き手多数/読み手1のキューを実現してもよい。
【0072】
まず、構成について説明する。図10は本発明の実施の形態3によるプロセッサ間データ通信装置を示すブロック図である。たとえば書き手が4であれば、図10に示したように、書き込みプロセッサ1A、1B、1C、1Dは、4台用意される。本プロセッサ間データ通信装置は、これら4台の書き込みプロセッサ1A、1B、1C、1Dにそれぞれ共有メモリ3A、3B、3C、3Dをそれぞれ接続させ、マルチプレクサ20を介して1台の読み出しプロセッサ2に接続させた構成である。
【0073】
上記共有メモリ3A、3B、3Cおよび3Dは、それぞれキュー10(図1参照)と同様の構造を有するキュー10A、10B、10Cおよび10Dを備えている。また、マルチプレクサ20は、読み出しプロセッサ2と、キュー10A、10B、10C、10Dとの各接続状態を切り替えるものである。このように、図10においては、書き込みプロセッサ1A、1B、1Cおよび1Dに対応させて、キュー10A、10B、10Cおよび10Dをそれぞれ用意している。
【0074】
また、書き込みプロセッサ1A、1B、1Cおよび1Dは、キュー10A、10B、10Cおよび10Dにおける登録用の各要素にそれぞれ結合されている。さらに、キュー10A、10B、10Cおよび10Dにおける取得用の各要素には、マルチプレクサ20を介して、読み出しプロセッサ2が結合されている。このように、構成することにより全体として書き手多数/読み手1のキュー構造を構築することができる。
【0075】
つぎに、動作について説明する。図11は本実施の形態3による読み出しプロセッサ2の取得動作を説明するフローチャートである。図11に示したステップS401では、読み出しプロセッサ2は、マルチプレクサを介してキュー10A、10B、10C、10Dにおいて通信情報が書き込まれた要素があるか否かを、実施の形態1(図7:ステップS201参照)と同様にして判断し、無ければ判断結果を「NO」として取得動作を終了する。この場合、例えば、キュー10Aの要素に通信情報が書き込まれているものとすると、読み出しプロセッサ2は、ステップS401の判断結果を「YES」として、ステップS402へ進む。
【0076】
ステップS402では、マルチプレクサ20により、上記キュー10Aが選択された後、つづくステップS403においては、このキュー10Aの要素から、実施の形態1(図7:ステップS202参照)と同様にして、通信情報を読み込む。さらに、読み出しプロセッサ2は、ステップS404においてキュー10Aの要素に対して通信完了の手続きを行う(図7ステップS203参照)。
【0077】
以上の手順により、書き手多数/読み手1間で排他的ロックに関する操作を行うことなくキュー操作を実現することができる。すなわち、図1のキュー10と同一構造のキュー10A〜10Dを各書き込みプロセッサ1A〜1Dにそれぞれ対応付けることにより、任意のプロセッサ間において排他的ロックに関する操作を行うことなく、キューを介した通信を実現することができる。
【0078】
(実施の形態4)
さて、前述した実施の形態1〜3では、排他的ロックに関する操作をまったく行わずにキューを介しての通信を実現する手法を挙げていたが、本発明はこれに限定されず、以下に説明する実施の形態4のように、従来のものに比して、処理速度を減少させない範囲で、一部排他的ロックに関する操作を行うことにより、書き手多数/読み手1の構成をとるようにしてもよい。
【0079】
まず、構成について説明する。図12は本発明の実施の形態4によるプロセッサ間データ通信装置を示すブロック図である。この図において、前述した実施の形態3と本実施の形態4とを対比させるため、図10の各部に対応する部分には、同一の符号を付ける。図12に示したプロセッサ間データ通信装置は、4台の書き込みプロセッサ1A、1B、1C、1Dに1台の共有メモリ3を接続させ、さらに、この共有メモリ3に読み出しプロセッサ2を接続させた構成である。すなわち、図12においては、書き手4/読み手1の構成が図示されている。また、共有メモリ3のキュー10(図1参照)において、登録用の要素には、書き込みプロセッサ1A、1B、1C、1Dのうちいずれか一つが結合される。
【0080】
この場合、結合される書き込みプロセッサは、他の書き込みプロセッサがキュー10に対する操作を行えないようにするために、排他的ロック30をキュー10にかけた状態でキュー10に対する操作を行う。すなわち、書き込みプロセッサ1A、1B、1C、1Dにおいて、上記排他的ロック30をかける権利を取得した一つの書き込みプロセッサは、キュー10に対する登録操作を行うことができるが、その他の書き込みプロセッサは、登録操作を行うことができないのである。本構成は、図12のように書き込みプロセッサが多数存在する場合、またはその数を増減する場合に有効である。
【0081】
つぎに、動作について説明する。図13は本実施の形態4による登録動作を説明するフローチャートである。まず、ステップS501では、書き込みプロセッサ1A、1B、1Cおよび1Dのうち、いずれか一つの書き込みプロセッサが、排他的ロック30を取得する。この場合、書き込みプロセッサ1Aが排他的ロック30を取得したものとする。従って、キュー10に対しては、書き込みプロセッサ1Aのみが登録動作を行うことができる。つづいて、書き込みプロセッサ1Aは、前述したステップS101〜ステップS104(図4参照)と同様にして、ステップS502〜ステップS505の各操作を行う。
【0082】
すなわち、書き込みプロセッサ1Aは、図13に示したステップS502では、「空の」要素11bとは独立に、例えば、図2に示した「空の」要素11c(Enew)を新たに確保した後、ステップS503へ進む。つぎに、書き込みプロセッサ1Aは、「空の」要素11b(Eold)に対して1回のアクセスを行うことで、ステップS503〜ステップ505からなる三つの操作を同時に行う。
【0083】
これらの三つの操作において、書き込みプロセッサ1Aは、「空の」要素11b(Eold)の通信情報領域12bに通信情報を書き込む(ステップS503)と同時に、「空の」要素11b(Eold)のマーク領域13bにマークを書き込み(ステップS504)、さらに、要素11b(Eold)と新たな「空の」要素11c(Enew)との接続を実施する(ステップS505)。
【0084】
そして、ステップS506では、書き込みプロセッサ1Aは、キュー10に対する排他的ロック30を解放する。一方、読み出しプロセッサ2は、前述した実施の形態1において説明した取得動作(図7参照)と同様の動作を実行する。このように、以上のステップS503〜ステップS505の操作が不可分(同時)に行われるため、書き込みプロセッサ1A〜1Dのうちいずれか一つから書き込まれた通信情報と読み出しプロセッサ2が読み取る通信情報の間では常に一貫性が保たれる。
【0085】
ここで、上述した実施の形態4では、読み出しプロセッサ2が排他的ロックをキュー10にかける必要がないが、書き込みプロセッサ1Aにおいて、排他的ロックに関する操作を1回しなければならない。従って、上述した実施の形態1における排他的ロックに関する操作が0回であるのに対して、本実施の形態4は1回である。このことから、本実施の形態4では、実施の形態1に比して、汎用性が向上したのと引き替えに、排他的ロックの操作を1回行う分だけ処理速度(性能)が低下しているが、従来のものより処理速度は向上している。
【0086】
すなわち、従来のものでは、図16(b)および図16(c)を参照して説明したように、書き込みプロセッサと読み込みプロセッサの両方で計2回の排他的ロックに関する操作(取得/解放)が必要であるのに比べ、本実施の形態4では、排他的ロックに関する操作を書き込みプロセッサで1回のみ行えばよい。従って、本実施の形態4においては、従来のものに比べて、排他的ロックに関する操作回数が1回少ないため、処理速度を向上させることができる。また、本実施の形態4では、前述の実施の形態3に比べて、書き込みプロセッサ数分の共有メモリが不要で、1台の共有メモリ3だけで済む分、構成の簡略化が図れるという利点を備えている。
【0087】
以上、本発明の実施の形態1〜4を図面を参照して説明したが、本発明の主旨の範囲内で種々の変形が可能であり、これらを本発明の範囲から排除するものではない。例えば、実施の形態1〜4においては、要素11a等における1アクセス単位を8バイトとした例について説明したが、これは一例であって書き込みプロセッサ1および読み出しプロセッサ2における1アクセス時のデータ書き込み/読み込み量により適宜変更される。従って、1アクセス単位は、8バイトでも16バイトでもよい。
【0088】
また、本実施の形態1〜4においては、別個のプロセッサをそれぞれ書き込み用、読み出し用として説明しているが、マルチプロセッサシステムを構成する各プロセッサには、前述した書き込みプロセッサの処理機能と、読み出しプロセッサの処理機能を備えていることは言うまでもない。
【0089】
(付記1) 複数のプロセッサ間に共有メモリを設けたマルチプロセッサシステムに適用されるプロセッサ間データ通信装置において、
前記共有メモリ上でデータを操作するための複数の要素および空の要素を有したキューと、
前記キューにおいて前記空の要素の他に新たな空の要素を確保して、前記空の要素を用いてデータを登録する登録手段と、
前記キューにおいて前記複数の要素の中からデータが登録された要素を取得し、前記取得された要素からデータを読み出す取得手段と、
を備え、
前記要素のメモリ領域は、前記登録手段、前記取得手段における1回のアクセスで前記データを登録/取得可能なサイズであることを特徴とするプロセッサ間データ通信装置。
(付記2) 前記データは、通信情報、前記要素間の接続状態を示す接続情報、および前記通信情報の登録有無を示す情報であることを特徴とする付記1に記載のプロセッサ間データ通信装置。
(付記3) 前記通信情報は、前記共有メモリにおける可変長のメモリ領域に書き込まれるデータを指示するポインタであることを特徴とする付記2に記載のプロセッサ間データ通信装置。
(付記4) 前記キューは、アクセス範囲に関して、前記登録手段側の前記空の要素と、前記取得手段側の前記複数の要素とに分離され、前記取得手段は、アクセス範囲内の要素間を繋ぐ新規の要素を追加することを特徴とする付記1〜3のいずれか一つに記載のプロセッサ間データ通信装置。
(付記5) 複数の前記登録手段と一つの前記取得手段とを備え、前記複数の登録手段に対応させて複数の前記共有メモリをそれぞれ接続するとともに、ぞれぞれの前記共有メモリと前記取得手段との間にマルチプレクサを一つ接続したことを特徴とする付記1〜4のいずれか一つに記載のプロセッサ間データ通信装置。
(付記6) 複数の前記登録手段と一つの取得手段とを備え、前記複数の登録手段と前記登録手段との間に前記共有メモリを一つ接続し、前記複数の登録手段のうちいずれか一つの登録手段は、排他的ロックに関する操作を行うことで前記共有メモリの前記キューに対して登録を行うことを特徴とする付記1〜4のいずれか一つに記載のプロセッサ間データ通信装置。
(付記7) 複数のプロセッサ間に共有メモリを設けたマルチプロセッサシステムに適用されるプロセッサ間データ通信方法において、
前記共有メモリ上でデータを操作するための複数の要素および空の要素を有したキューにおいて前記空の要素の他に新たな空の要素を確保して、前記空の要素を用いてデータを登録する登録工程と、
前記キューにおいて前記複数の要素の中からデータが登録された要素を取得し、前記取得された要素からデータを読み出す取得工程と、
を含み、
前記要素のメモリ領域は、前記登録工程、前記取得工程における1回のアクセスで前記データを登録/取得可能なサイズであることを特徴とするプロセッサ間データ通信方法。
(付記8) 複数のプロセッサ間に共有メモリを設けたマルチプロセッサシステムに適用されるプロセッサ間データ通信装置において、
1回のアクセスで取得可能なサイズで前記共有メモリ上のキューにデータを要素として登録する登録手段と、
前記共有メモリ上のキューに登録された要素を取得し、該要素からデータを読み出す取得手段と、
を備えたことを特徴とするプロセッサ間データ通信装置。
(付記9) 共有メモリを用いてデータ通信が行われるマルチプロセッサシステムにおけるデータ処理装置において、
前記共有メモリは、データを操作するための複数の要素および空の要素からなるキューを有し、
前記キューにおいて前記空の要素の他に新たな空の要素を確保して、前記空の要素を用いてデータを登録する登録手段と、
前記キューにおいて前記複数の要素の中からデータが登録された要素を取得し、前記取得された要素からデータを読み出す取得手段と、
を備え、
前記要素のメモリ領域は、前記登録手段、前記取得手段における1回のアクセスで前記データを登録/取得可能なサイズであることを特徴とするデータ処理装置。
(付記10) 共有メモリを用いてデータ通信が行われるマルチプロセッサシステムにおけるデータ処理装置において、
1回のアクセスで取得可能なサイズで前記共有メモリ上のキューにデータを要素として登録する登録手段と、
前記共有メモリ上のキューに登録された要素を取得し、該要素からデータを読み出す取得手段と、
を備えたことを特徴とするデータ処理装置。
【0090】
【発明の効果】
以上説明したように、請求項1にかかる発明によれば、共有メモリ上でデータを操作するためのリンク接続された複数の要素およびこの複数の要素の最後尾に接続された空の要素を有したキューにおいて、データ登録の際に、登録手段により、既にある空の要素の他に新たな空の要素を確保して新たな空の要素を既にある空の要素の後方に接続した後に、1アクセスでデータ(通信情報、前記要素間の接続状態を示す情報、および前記通信情報の登録有無を示す情報)を登録する一方、取得手段により複数の要素のうちでデータを登録した要素を取得してその取得された要素からデータ(通信情報、前記要素間の接続状態を示す情報、および前記通信情報の登録有無を示す情報)を1アクセスで読み出すようにすることで、複数のプロセッサが同時にキュー操作する領域が分離され、これにより、排他的ロックの操作が不要となって処理速度を向上させることができるという効果を奏する。
【0092】
また、請求項2にかかる発明によれば、通信情報としてポインタを用いることにより、排他的ロックの操作を不要として、データサイズが要素のサイズより大きいデータを扱うことができるという効果を奏する。
【0093】
また、請求項3にかかる発明によれば、キューにおいてアクセス範囲に関して登録手段側の空の要素と取得手段側の要素とに分離されるので、取得手段側の要素に対して登録手段がアクセスできないことから、排他的ロックの操作を伴うことなく、取得手段を新規の要素を追加するための登録手段として機能させることができるという効果を奏する。
【0094】
また、請求項4にかかる発明によれば、複数の登録手段にそれぞれ独立した共有メモリを接続するとともに、それぞれの共有メモリと前記取得手段との間にマルチプレクサを一つ接続したので、それぞれの共有メモリのキューに対して各登録手段による排他的ロックに関する操作を行うことなく、処理速度が向上した登録手段多数/取得手段1の構成をとることができるという効果を奏する。
【図面の簡単な説明】
【図1】本発明の実施の形態1によるプロセッサ間データ通信装置を概略的に説明する構成図である。
【図2】同実施の形態1によるキューへの登録時のデータの流れを説明する図である。
【図3】同実施の形態1によるキューへの登録時のデータの流れを説明する図である。
【図4】同実施の形態1によるキューへの登録動作を説明するフローチャートである。
【図5】同実施の形態1によるキューからの取得時のデータの流れを説明する図である。
【図6】同実施の形態1によるキューからの取得時のデータの流れを説明する図である。
【図7】同実施の形態1によるキューからの取得動作を説明するフローチャートである。
【図8】同実施の形態2によるプロセッサ間データ通信装置のアクセス方法を説明する図である。
【図9】同実施の形態2による登録動作を説明するフローチャートである。
【図10】同実施の形態3によるプロセッサ間データ通信装置を示すブロック図である。
【図11】同実施の形態3による取得動作を説明するフローチャートである。
【図12】同実施の形態4によるプロセッサ間データ通信装置を示すブロック図である。
【図13】同実施の形態4による登録動作を説明するフローチャートである。
【図14】従来におけるマルチプロセッサシステムの構成を示すブロック図である。
【図15】従来のマルチプロセッサシステムにおける共有メモリ3の構成を示す図である。
【図16】従来におけるマルチプロセッサシステムの動作を説明する図である。
【符号の説明】
1 書き込みプロセッサ
1A、1B、1C、1D 書き込みプロセッサ
2 読み出しプロセッサ
3 共有メモリ
3A、3B、3C、3D 共有メモリ
10 キュー
11a、11b 11c、11d 要素
Claims (4)
- 複数のプロセッサ間に共有メモリを設けたマルチプロセッサシステムに適用されるプロセッサ間データ通信装置において、
前記共有メモリ上でデータを操作するためのリンク接続された複数の要素および前記複数の要素の最後尾に接続された空の要素を有したキューと、
前記キューにおいてデータを登録する際に、既にある空の要素の他に新たな空の要素を確保して当該新たな空の要素を前記既にある空の要素の後方に接続した後に、前記既にある空の要素を用いてデータを登録する登録手段と、
前記キューにおいて前記複数の要素の中からデータが登録された要素を取得し、前記取得された要素からデータを読み出す取得手段と、
を備え、
前記データは、通信情報、前記要素間の接続状態を示す情報、および前記通信情報の登録有無を示す情報であり、
前記要素のメモリ領域は、前記登録手段、前記取得手段における1回のアクセスで前記データを登録/取得可能なサイズであることを特徴とするプロセッサ間データ通信装置。 - 前記通信情報は、前記共有メモリにおける可変長のメモリ領域に書き込まれるデータを指示するポインタであることを特徴とする請求項1に記載のプロセッサ間データ通信装置。
- 前記キューは、アクセス範囲に関して、前記登録手段側の前記空の要素と、前記取得手段側の前記複数の要素とに分離され、前記取得手段は、アクセス範囲内の要素間を繋ぐ新規の要素を追加することを特徴とする請求項1または2に記載のプロセッサ間データ通信装置。
- 複数の前記登録手段と一つの前記取得手段とを備え、前記複数の登録手段に対応させて複数の前記共有メモリをそれぞれ接続するとともに、ぞれぞれの前記共有メモリと前記取得手段との間にマルチプレクサを一つ接続したことを特徴とする請求項1、2または3に記載のプロセッサ間データ通信装置。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000233609A JP3706008B2 (ja) | 2000-08-01 | 2000-08-01 | プロセッサ間データ通信装置、プロセッサ間データ通信方法およびデータ処理装置 |
US09/790,694 US6934815B2 (en) | 2000-08-01 | 2001-02-23 | Method and apparatus used for data communication between processors, and data processing apparatus |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000233609A JP3706008B2 (ja) | 2000-08-01 | 2000-08-01 | プロセッサ間データ通信装置、プロセッサ間データ通信方法およびデータ処理装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2002049604A JP2002049604A (ja) | 2002-02-15 |
JP3706008B2 true JP3706008B2 (ja) | 2005-10-12 |
Family
ID=18726106
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000233609A Expired - Fee Related JP3706008B2 (ja) | 2000-08-01 | 2000-08-01 | プロセッサ間データ通信装置、プロセッサ間データ通信方法およびデータ処理装置 |
Country Status (2)
Country | Link |
---|---|
US (1) | US6934815B2 (ja) |
JP (1) | JP3706008B2 (ja) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8399349B2 (en) | 2006-04-18 | 2013-03-19 | Air Products And Chemicals, Inc. | Materials and methods of forming controlled void |
ATE529808T1 (de) * | 2007-02-07 | 2011-11-15 | Bosch Gmbh Robert | Verwaltungsmodul, hersteller- und verbraucherrechner, anordnung davon und verfahren zur kommunikation zwischen rechnern über einen gemeinsam verwendeten speicher |
CN100451975C (zh) * | 2007-02-13 | 2009-01-14 | 杭州华三通信技术有限公司 | 实现多核cpu进行报文联合处理的系统及方法 |
KR20110072023A (ko) * | 2009-12-22 | 2011-06-29 | 삼성전자주식회사 | 휴대 단말기의 프로세서 간 데이터 통신 방법 및 장치 |
JP5777649B2 (ja) * | 2013-01-28 | 2015-09-09 | 京セラドキュメントソリューションズ株式会社 | 情報処理装置 |
US20140269690A1 (en) * | 2013-03-13 | 2014-09-18 | Qualcomm Incorporated | Network element with distributed flow tables |
US10210095B2 (en) * | 2017-07-06 | 2019-02-19 | International Business Machines Corporation | Configurable hardware queue management and address translation |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH01246656A (ja) | 1988-03-29 | 1989-10-02 | Nec Corp | プロセッサ間共有メモリ管理方式 |
JPH03245258A (ja) | 1990-02-23 | 1991-10-31 | Nec Corp | マルチプロセッサシステム |
JPH0619759B2 (ja) * | 1990-05-21 | 1994-03-16 | 富士ゼロックス株式会社 | マルチプロセッサシステムにおける相互通信方法 |
US5671446A (en) * | 1995-03-16 | 1997-09-23 | Apple Computer, Inc. | Method and apparatus for atomically accessing a queue in a memory structure where LIFO is converted to FIFO |
US6523060B1 (en) * | 1995-04-07 | 2003-02-18 | Cisco Technology, Inc. | Method and apparatus for the management of queue pointers by multiple processors in a digital communications network |
US6055618A (en) * | 1995-10-31 | 2000-04-25 | Cray Research, Inc. | Virtual maintenance network in multiprocessing system having a non-flow controlled virtual maintenance channel |
US6341301B1 (en) * | 1997-01-10 | 2002-01-22 | Lsi Logic Corporation | Exclusive multiple queue handling using a common processing algorithm |
US5922057A (en) * | 1997-01-10 | 1999-07-13 | Lsi Logic Corporation | Method for multiprocessor system of controlling a dynamically expandable shared queue in which ownership of a queue entry by a processor is indicated by a semaphore |
US6229813B1 (en) * | 1998-11-25 | 2001-05-08 | Alcatel Canada Inc. | Pointer system for queue size control in a multi-task processing application |
JP2001357022A (ja) | 2000-06-15 | 2001-12-26 | Nec Corp | 複数プロセッサ間のデータ通信装置、及び、そのデータ通信方法 |
-
2000
- 2000-08-01 JP JP2000233609A patent/JP3706008B2/ja not_active Expired - Fee Related
-
2001
- 2001-02-23 US US09/790,694 patent/US6934815B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
US20020016888A1 (en) | 2002-02-07 |
US6934815B2 (en) | 2005-08-23 |
JP2002049604A (ja) | 2002-02-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7487302B2 (en) | Service layer architecture for memory access system and method | |
JP2644780B2 (ja) | 処理依頼機能を持つ並列計算機 | |
US20070041383A1 (en) | Third party node initiated remote direct memory access | |
JP3706008B2 (ja) | プロセッサ間データ通信装置、プロセッサ間データ通信方法およびデータ処理装置 | |
JP2004054916A (ja) | プロセッサ間のハードウェア支援通信を実行する方法 | |
JP2581323B2 (ja) | 参照ビット,変更ビットの更新方法 | |
JP3431941B2 (ja) | データ処理システムにおける命令の実行順序を決定する方法および装置 | |
US7533221B1 (en) | Space-adaptive lock-free free-list using pointer-sized single-target synchronization | |
CN113239098A (zh) | 一种数据管理方法、计算机及可读存储介质 | |
CN101876952A (zh) | 一种主机端传输层与应用层软硬交互系统及方法 | |
EP1128274A2 (en) | Distributed memory type parallel computer and write data transfer end confirming method thereof | |
US6434592B1 (en) | Method for accessing a network using programmed I/O in a paged, multi-tasking computer | |
EP4318237A1 (en) | Apparatus and method for executing atomic operations | |
JP2590282B2 (ja) | システム実行履歴収集処理方式 | |
Carbunar et al. | Corelime:: A coordination model for mobile agents | |
JP3996355B2 (ja) | マルチプロセッサシステム | |
CN114153634A (zh) | 基于国产龙芯处理器的进程间通信系统及操作平台 | |
CN116225409A (zh) | 一种跨应用的对象拖拽方法、装置、终端设备及存储介质 | |
JPS62156756A (ja) | 浮動割込処理方法 | |
JPS63233437A (ja) | デ−タパケット長短縮方法およびその装置 | |
JPS6174055A (ja) | プロセツサ間のデ−タ通信装置 | |
JP2707256B2 (ja) | マイクロコンピユータ | |
JPH05257882A (ja) | データ処理装置 | |
JPH03282645A (ja) | ローカルエリアネットワークシステム | |
JPS59226956A (ja) | デ−タ制御システム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20041221 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20050118 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050322 |
|
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: 20050726 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20050727 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090805 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090805 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100805 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110805 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120805 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120805 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130805 Year of fee payment: 8 |
|
LAPS | Cancellation because of no payment of annual fees |