JP3526773B2 - マルチプロセッサ装置およびその制御方法 - Google Patents

マルチプロセッサ装置およびその制御方法

Info

Publication number
JP3526773B2
JP3526773B2 JP05201699A JP5201699A JP3526773B2 JP 3526773 B2 JP3526773 B2 JP 3526773B2 JP 05201699 A JP05201699 A JP 05201699A JP 5201699 A JP5201699 A JP 5201699A JP 3526773 B2 JP3526773 B2 JP 3526773B2
Authority
JP
Japan
Prior art keywords
instruction
address
bank
processor
processors
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
Application number
JP05201699A
Other languages
English (en)
Other versions
JP2000250869A (ja
Inventor
雅之 山▲崎▼
勝彦 上田
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.)
Panasonic Corp
Panasonic Holdings Corp
Original Assignee
Panasonic Corp
Matsushita Electric Industrial Co Ltd
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 Panasonic Corp, Matsushita Electric Industrial Co Ltd filed Critical Panasonic Corp
Priority to JP05201699A priority Critical patent/JP3526773B2/ja
Priority to US09/514,204 priority patent/US6785799B1/en
Publication of JP2000250869A publication Critical patent/JP2000250869A/ja
Application granted granted Critical
Publication of JP3526773B2 publication Critical patent/JP3526773B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3802Instruction prefetching
    • G06F9/3814Implementation provisions of instruction buffers, e.g. prefetch buffer; banks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
    • G06F15/8007Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors single instruction multiple data [SIMD] multiprocessors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
    • G06F15/8053Vector processors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3802Instruction prefetching
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3802Instruction prefetching
    • G06F9/3804Instruction prefetching for branches, e.g. hedging, branch folding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3867Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Advance Control (AREA)
  • Multi Processors (AREA)

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、命令をパイプライ
ン処理する情報処理装置におけるマルチプロセッサの制
御方法およびその装置に関する。
【0002】
【従来の技術】マイクロコンピュータを高性能化する手
法の一つとして、従来から複数のプロセッサを同一の半
導体チップに搭載して処理を並列実行させる方法があ
る。この方法によれば、例えば1つのプロセッサでは所
望のアプリケーションを実行するための処理能力が足り
ない場合に、複数個のプロセッサに分割処理させること
によりこのアプリケーションを実行させることができ
る。この方法を適用した他の例としては、複数のプロセ
ッサがメモリを共有するメモリ共有型マルチプロセッサ
がある。メモリ共有型マルチプロセッサにおいては、複
数のプロセッサの間で命令やデータを共有することがで
きる。
【0003】
【発明が解決しようとする課題】しかしながら、上記の
メモリ共有型マルチプロセッサには命令やデータを共有
することができるという利点がある反面、各プロセッサ
が同時に共有メモリにアクセスした場合にコンフリクト
が発生するという欠点が存在する。コンフリクトが発生
した場合にはメモリアクセスの調停が必要になり、各プ
ロセッサのメモリへのアクセスが待たされる。
【0004】また、各プロセッサがメモリにアクセスす
る順序は、装置が実行するアプリケーションが処理する
データの内容に依存する。アプリケーションが処理する
データが一定でない場合には、プロセッサのメモリへの
アクセス順序を予測することは不可能である。そのた
め、メモリアクセスの調停によって各プロセッサのメモ
リへのアクセスが待たされる時間を予測することができ
ず、アプリケーションの実行時間を見積もることが困難
であった。
【0005】このように、従来のメモリ共有型マルチプ
ロセッサにおいては、コンフリクト発生時のメモリアク
セスの調停のためにアプリケーションの実行時間を予測
できないという問題があった。そのため、従来のメモリ
共有型マルチプロセッサは、リアルタイム処理が要求さ
れる通信用DSP(デジタルシグナルプロセッサ)等に
適用することが困難であった。
【0006】本発明は、以下の(1)、(2)を目的と
する。
【0007】(1)メモリ共有型マルチプロセッサにお
いて、コンフリクト発生時のメモリアクセスの調停の必
要をなくすことにより、メモリアクセスの調停のための
回路を不要にすること。
【0008】(2)アプリケーションの実行時間の予測
が容易なメモリ共有型マルチプロセッサを提供するこ
と。
【0009】
【課題を解決するための手段】本発明のマルチプロセッ
サ装置は、N個のプロセッサと、M個のバンクと、アド
レス選択部とを備え、前記N個のプロセッサのそれぞれ
は、N個の命令フェッチステージを有するパイプライン
で命令を処理するパイプラインプロセッサであり、前記
N個のプロセッサのそれぞれには、前記N個のプロセッ
サのうちの複数のプロセッサが前記M個のバンクのうち
の1つに同時にアクセスすることがないように、前記N
個の命令フェッチステージのうちどの命令フェッチステ
ージにおいて命令をフェッチするかが割り当てられてお
り、前記M個のバンクのそれぞれには、複数の命令が格
納されており、前記アドレス選択部は、前記N個のプロ
セッサから出力されたアドレスを受け取り、前記M個の
バンクのうち前記アドレスによって特定されたバンク
に、前記特定されたバンクに格納されている前記複数の
命令のうちフェッチすべき命令の番地を示すバンクアド
レスを出力し、前記特定されたバンクは、前記特定され
たバンクに格納されている前記複数の命令のうち前記バ
ンクアドレスによって示された番地の命令を出力し、前
記N個のプロセッサのうちの1つは、前記特定されたバ
ンクから出力された前記命令を前記N個の命令フェッチ
ステージのうち割り当てられた1つの命令フェッチステ
ージにおいてフェッチし、Nは2以上の整数であり、M
はN以上の整数であり、これにより上記目的が達成され
る。前記N個のプロセッサが分岐命令を処理する場合
に、前記命令をフェッチする前記命令フェッチステージ
を変更してもよい。前記N個のプロセッサは、前記命令
と、バンク選択信号と、フェッチステージ選択信号と、
NOP選択信号とが入力され、命令コードを出力する命
令レジスタ部と、前記命令コードが入力され、分岐命令
信号と、分岐アドレスとを出力するデコーダ部と、前記
分岐命令信号と、前記分岐アドレスと、命令ポインタ信
号とが入力され、前記フェッチステージ選択信号と、前
記NOP選択信号と、アドレス分岐信号とを出力する制
御部と、前記フェッチステージ選択信号と、前記アドレ
ス分岐信号と、前記分岐アドレスとが入力され、前記バ
ンク選択信号と、前記命令ポインタ信号と、前記アドレ
スとを出力する命令ポインタ部とをそれぞれ備えていて
もよい。前記N個のプロセッサのそれぞれは、前記N個
の命令フェッチステージのうちに命令のフェッチを行わ
ない命令フェッチステージを有していてもよい。本発明
のマルチプロセッサ装置の制御方法は、N個のプロセッ
サとM個のバンクとアドレス選択部とを備えたマルチプ
ロセッサ装置の制御方法であって、前記N個のプロセッ
サのそれぞれは、N個の命令フェッチステージを有する
パイプラインで命令を処理するパイプラインプロセッサ
であり、前記N個のプロセッサのそれぞれには、前記N
個のプロセッサのうちの複数のプロセッサが前記M個の
バンクのうちの1つに同時にアクセスすることがないよ
うに、前記N個の命令フェッチステージのうちどの命令
フェッチステージにおいて命令をフェッチするかが割り
当てられており、前記M個のバンクのそれぞれには、複
数の命令が格納されており、前記制御方法は、前記アド
レス選択部が、前記N個のプロセッサから出力されたア
ドレスを受け取り、前記M個のバンクのうち前記アドレ
スによって特定されたバンクに、前記特定されたバンク
に格納されている前記複数の命令のうちフェッチすべき
命令の番地を示すバンクアドレスを出力するステップ
と、前記特定されたバンクが、前記特定されたバンクに
格納されている前記複数の命令のうち前記バンクアドレ
スによって示された番地の命令を出力するステップと、
前記N個のプロセッサのうちの1つが、前記特定された
バンクから出力された前記命令を前記N個の命令フェッ
チステージのうち割り当てられた1つの命令フェッチス
テージにおいてフェッチするステップとを包含し、Nは
2以上の整数であり、MはN以上の整数であり、これに
より上記目的が達成される。前記N個のプロセッサのう
ちの1つが分岐命令を処理する場合に、前記命令をフェ
ッチする前記命令フェッチステージを変更してもよい。
前記N個のプロセッサのそれぞれは、前記N個の命令フ
ェッチステージのうちに命令のフェッチを行わない命令
フェッチステージを有していてもよい。
【0010】
【0011】
【0012】
【0013】
【0014】
【発明の実施の形態】はじめに、本発明の原理について
説明する。
【0015】図1は、本発明のマルチプロセッサ装置1
00の構成を示す。マルチプロセッサ装置100は、第
1のプロセッサ1から第Nのプロセッサ3までのN個の
プロセッサと、命令メモリ4とを備える。命令メモリ4
は、第1のバンク5から第Mのバンク7までのM個のバ
ンクと、アドレス選択回路8とを備える。ここで、Nは
2以上の整数であり、MはN以上の整数である。
【0016】第1のプロセッサ1から第Nのプロセッサ
3までのN個のプロセッサは、命令をパイプライン処理
するパイプラインプロセッサである。各プロセッサは、
N個の命令フェッチステージを含むパイプステージを有
する。N個のプロセッサのパイプライン構造の詳細につ
いては後述する。
【0017】第1のバンク5から第Mのバンク7までの
M個のバンクには、それぞれ複数の命令が格納されてい
る。M個のバンクにそれぞれ格納された複数の命令は、
全体でマルチプロセッサ装置によって実行されるアプリ
ケーションプログラムを構成している。命令が格納され
る形式には、例えば、1番地の命令が第1のバンク5に
格納され、2番地の命令が第2のバンク6に格納され、
・・・M番地の命令が第Mのバンク7に格納され、(M
+1)番地の命令が第1のバンク5に格納される、・・
・というようなインターリーブ形式等が使用される。以
下の説明においては、アプリケーションプログラムを構
成する命令は上記のインターリーブ形式でM個のバンク
に格納されているものとする。しかし、M個のバンクへ
の命令の格納形式には、インターリーブ形式以外の任意
の形式が使用され得る。
【0018】第1のプロセッサ1には、第1の命令14
から第Mの命令16までのM個の命令が入力される。第
1のプロセッサ1は、入力されたM個の命令のうちの1
つを選択してフェッチする。第1のプロセッサ1は、フ
ェッチした命令の処理結果として、第1のアドレス11
を出力する。同様に、第2のプロセッサ2には、第1の
命令14から第Mの命令16までのM個の命令が入力さ
れ、第2のプロセッサ2は、第2のアドレス12を出力
する。
【0019】このように、N個のプロセッサには、第1
の命令14から第Mの命令16までのM個の命令が入力
される。N個のプロセッサは、第1のアドレス11から
第Nのアドレス13までのN個のアドレスをそれぞれ出
力する。
【0020】命令メモリ4は、命令格納手段である。命
令メモリ4のアドレス選択回路8には、第1のアドレス
11から第Nのアドレス13までのN個のアドレスが入
力される。アドレス選択回路8は、アドレス選択手段で
あり、入力されたアドレスの最下位ビットから、アドレ
スに対応するバンクを特定する。アドレスに対応するバ
ンクを特定するための最下位ビットの数は、バンクの個
数Mに依存した1以上の数である。
【0021】アドレス選択回路8は、アドレスの最下位
ビットから特定したバンクに対し、アドレスの最下位ビ
ットを除いたものを、バンクアドレスとして出力する。
アドレス選択回路8は、M個のバンクに対して、第1の
バンクアドレス17から第Mのバンクアドレス19まで
のM個のバンクアドレスを出力する。
【0022】第1のバンク5には、第1のバンクアドレ
ス17が入力される。第1のバンク5は、第1のバンク
アドレス17上に格納された第1の命令14を出力す
る。第2のバンク6には、第2のバンクアドレス18が
入力される。第2のバンク6は、第2のバンクアドレス
18上に格納された第2の命令15を出力する。以下同
様に、第Mのバンク7には、第Mのバンクアドレス19
が入力される。第Mのバンク7は、第Mのバンクアドレ
ス19上に格納された第Mの命令16を出力する。
【0023】図2は、本発明のマルチプロセッサ装置1
00が備えるプロセッサのパイプライン構造を示す。本
発明におけるプロセッサは、F(1)、F(2)、・・
・、F(N)、DC、EXの各パイプステージを有す
る。これらのパイプステージのうち、F(1)〜F
(N)のN個のステージは、命令フェッチステージであ
る。このように、マルチプロセッサ装置100が備える
各プロセッサは、プロセッサの個数分の命令フェッチス
テージを有する。F(1)は第1の命令フェッチステー
ジであり、F(2)は第2の命令フェッチステージであ
り、F(N)は第Nの命令フェッチステージである。D
Cはデコードステージであり、EXは実行ステージであ
る。
【0024】マルチプロセッサ装置100が備えるN個
のプロセッサのそれぞれには、複数のプロセッサが1つ
のバンクに同時にアクセスすることのない様にN個の命
令フェッチステージのうちのいずれかが割り当てられ
る。各プロセッサは、割り当てられた命令フェッチステ
ージに、命令メモリ4が備えるM個のバンクにアクセス
する。
【0025】以下、図面を参照して、本発明の実施の形
態について説明する。なお、以下の実施形態の説明にお
いては、便宜上M=Nであるものとする。また、第1の
バンクアドレス17から第Mのバンクアドレス19まで
の各バンクアドレスは、第1のアドレス11から第Nの
アドレス13までの各アドレスの最下位ビットを除いた
ものであるが、便宜上、第1のアドレス11から第Nの
アドレス13までの各アドレスと同じ表現を使用する。
【0026】(実施形態1)まず、本発明の実施形態1
のマルチプロセッサの制御方法およびその装置について
説明する。実施形態1においては、N=3であるものと
する。
【0027】(命令の逐次処理)図3は、本発明の実施
形態1におけるプロセッサの逐次処理時のタイミングチ
ャートである。図3を参照して、N=3の場合につい
て、命令を逐次処理する場合のプロセッサの動作を説明
する。
【0028】
【表1】
【0029】表1は各プロセッサへの命令フェッチステ
ージの初期割り当てのパターンを示す。N=3の場合の
命令フェッチステージの初期割り当てとしては、その1
〜その6の6つのパターンが可能である。本実施形態に
おいては、命令フェッチステージの初期割り当てがその
1のパターンであるものとして説明する。すなわち、第
1のプロセッサ1には、第1の命令フェッチステージF
(1)を割り当て、第2のプロセッサ2には、第2の命
令フェッチステージF(2)を割り当て、第3のプロセ
ッサ3には、第3の命令フェッチステージF(3)を割
り当てるものとする。
【0030】<1サイクル目>第1のプロセッサ1が、
第1のバンク5から命令をフェッチする。具体的には、
マルチプロセッサ装置100は下記のように動作する。
【0031】第1のプロセッサ1は、第1の命令アドレ
ス11をアドレス選択回路8に出力する。アドレス選択
回路8は、第1の命令アドレス11を第1のバンクアド
レス17に出力する。第1のバンク5は、入力された第
1のバンクアドレス17の示す番地の命令を第1の命令
14として第1のプロセッサ1に出力する。これによ
り、第1のプロセッサ1は第1の命令14をフェッチす
る。
【0032】<2サイクル目>第1のプロセッサ1が第
2のバンク6から命令をフェッチし、第2のプロセッサ
2が第1のバンク5から命令をフェッチする。具体的に
は、マルチプロセッサ装置100は下記のように動作す
る。
【0033】第1のプロセッサ1は、第1の命令アドレ
ス11をアドレス選択回路8に出力する。アドレス選択
回路8は、第1の命令アドレス11を第2のバンクアド
レス18に出力する。第2のバンク6は、入力された第
2のバンクアドレス18の示す番地の命令を第2の命令
15として第1のプロセッサ1に出力する。これによ
り、第1のプロセッサ1は第2の命令15をフェッチす
る。
【0034】第2のプロセッサ2は、第2の命令アドレ
ス12をアドレス選択回路8に出力する。アドレス選択
回路8は、第2の命令アドレス12を第1のバンクアド
レス17に出力する。第1のバンク5は、入力された第
1のバンクアドレス17の示す番地の命令を第1の命令
14として第2のプロセッサ2に出力する。これによ
り、第2のプロセッサ2は第1の命令14をフェッチす
る。
【0035】<3サイクル目>第1のプロセッサ1が第
3のバンク7から命令をフェッチし、第2のプロセッサ
2が第2のバンク6から命令をフェッチし、第3のプロ
セッサ3が第1のバンク5から命令をフェッチする。具
体的には、マルチプロセッサ装置100は下記のように
動作する。
【0036】第1のプロセッサ1は、第1の命令アドレ
ス11をアドレス選択回路8に出力する。アドレス選択
回路8は、第1の命令アドレス11を第3のバンクアド
レス19に出力する。第3のバンク7は、入力された第
3のバンクアドレス19の示す番地の命令を第3の命令
16として第1のプロセッサ1に出力する。これによ
り、第1のプロセッサ1は第3の命令16をフェッチす
る。
【0037】第2のプロセッサ2は、第2の命令アドレ
ス12をアドレス選択回路8に出力する。アドレス選択
回路8は、第2の命令アドレス12を第2のバンクアド
レス18に出力する。第2のバンク6は、入力された第
2のバンクアドレス18の示す番地の命令を第2の命令
15として第2のプロセッサ2に出力する。これによ
り、第2のプロセッサ2は第2の命令15をフェッチす
る。
【0038】第3のプロセッサ3は、第3の命令アドレ
ス13をアドレス選択回路8に出力する。アドレス選択
回路8は、第3の命令アドレス13を第1のバンクアド
レス17に出力する。第1のバンク5は、入力された第
1のバンクアドレス17の示す番地の命令を第1の命令
14として第3のプロセッサ3に出力する。これによ
り、第3のプロセッサ3は第1の命令14をフェッチす
る。
【0039】<4サイクル目>第1のプロセッサ1が第
1のバンク5から命令をフェッチし、第2のプロセッサ
2が第3のバンク7から命令をフェッチし、第3のプロ
セッサ3が第2のバンク6から命令をフェッチする。マ
ルチプロセッサ装置100の動作のうち、第1のプロセ
ッサ1が第1のバンク5から命令をフェッチする動作
は、1サイクル目の動作と同様であるため説明を省略す
る。第2のプロセッサ2及び第3のプロセッサ3の動作
は下記の通りである。
【0040】第2のプロセッサ2は、第2の命令アドレ
ス12をアドレス選択回路8に出力する。アドレス選択
回路8は、第2の命令アドレス12を第3のバンクアド
レス19に出力する。第3のバンク7は、入力された第
3のバンクアドレス19の示す番地の命令を第3の命令
16として第2のプロセッサ2に出力する。これによ
り、第2のプロセッサ2は第3の命令16をフェッチす
る。
【0041】第3のプロセッサ3は、第3の命令アドレ
ス13をアドレス選択回路8に出力する。アドレス選択
回路8は、第3の命令アドレス13を第2のバンクアド
レス18に出力する。第2のバンク6は、入力された第
2のバンクアドレス18の示す番地の命令を第2の命令
15として第3のプロセッサ3に出力する。これによ
り、第3のプロセッサ3は第2の命令15をフェッチす
る。
【0042】<5サイクル目>第1のプロセッサ1が第
2のバンク6から命令をフェッチし、第2のプロセッサ
2が第1のバンク5から命令をフェッチし、第3のプロ
セッサ3が第3のバンク7から命令をフェッチする。マ
ルチプロセッサ装置100の動作のうち、第1のプロセ
ッサ1が第2のバンク6から命令をフェッチする動作
と、第2のプロセッサ2が第1のバンク5から命令をフ
ェッチする動作とは、2サイクル目の動作と同様である
ため説明を省略する。第3のプロセッサ3の動作は下記
の通りである。
【0043】第3のプロセッサ3は、第3の命令アドレ
ス13をアドレス選択回路8に出力する。アドレス選択
回路8は、第3の命令アドレス13を第3のバンクアド
レス19に出力する。第3のバンク7は、入力された第
3のバンクアドレス19の示す番地の命令を第3の命令
16として第3のプロセッサ3に出力する。これによ
り、第3のプロセッサ3は第3の命令16をフェッチす
る。
【0044】以上のように、第1のプロセッサ1は、第
1の命令フェッチステージF(1)を使用し、第2のプ
ロセッサ2は、第2の命令フェッチステージF(2)を
使用し、第3のプロセッサ3は、第3の命令フェッチス
テージF(3)を使用して、命令メモリ4の各バンクか
ら命令をフェッチするように制御される。その結果、各
プロセッサの各バンクへのアクセスは排他的に実行され
る。
【0045】(命令の分岐処理)図4は、本発明の実施
形態1におけるプロセッサの分岐処理時のタイミングチ
ャートである。図4を参照して、命令を分岐処理する場
合についてプロセッサの動作を説明する。なお、(命令
の逐次処理)と同様にN=3とし、第1のプロセッサ1
には、第1の命令フェッチステージF(1)を割り当
て、第2のプロセッサ2には、第2の命令フェッチステ
ージF(2)を割り当て、第3のプロセッサ3には、第
3の命令フェッチステージF(3)を割り当てるものと
する。また、2サイクル目において第1のプロセッサが
分岐命令をフェッチし、7サイクル目において分岐先の
命令フェッチを再開するものとする。
【0046】<1サイクル目>(命令の逐次処理)と同
様に、第1のプロセッサ1が第1のバンク5から命令を
フェッチする。
【0047】<2サイクル目>(命令の逐次処理)と同
様に、第1のプロセッサ1が第2のバンク6から命令を
フェッチし、第2のプロセッサ2が第1のバンク5から
命令をフェッチする。
【0048】<3サイクル目>第1のプロセッサ1は、
命令フェッチを待機する。第2のプロセッサ2は、(命
令の逐次処理)と同様に第2のバンク6から命令をフェ
ッチする。第3のプロセッサ3は、(命令の逐次処理)
と同様に第1のバンク5から命令をフェッチする。
【0049】<4サイクル目>第1のプロセッサ1は、
命令フェッチを待機する。第2のプロセッサ2は、(命
令の逐次処理)と同様に第3のバンク7から命令をフェ
ッチする。第3のプロセッサ3は、(命令の逐次処理)
と同様に第2のバンク6から命令をフェッチする。
【0050】<5サイクル目>第1のプロセッサ1は、
命令フェッチを待機する。第2のプロセッサ2は、(命
令の逐次処理)と同様に第1のバンク5から命令をフェ
ッチする。第3のプロセッサ3は、(命令の逐次処理)
と同様に第3のバンク7から命令をフェッチする。
【0051】<6サイクル目>第1のプロセッサ1は、
命令フェッチを待機する。第2のプロセッサ2は、3サ
イクル目と同様に第2のバンク6から命令をフェッチす
る。第3のプロセッサ3は、3サイクル目と同様に第1
のバンク5から命令をフェッチする。
【0052】<7サイクル目>第1のプロセッサ1は、
分岐先の命令フェッチを再開するが、第3のバンク7へ
のアクセスが第2のプロセッサ2と競合するため、命令
フェッチを待機する。第2のプロセッサ2は、4サイク
ル目と同様に第3のバンク7から命令をフェッチする。
第3のプロセッサ3は、4サイクル目と同様に第2のバ
ンク6から命令をフェッチする。
【0053】<8サイクル目>第1のプロセッサ1は、
第3のバンク7へのアクセスが第3のプロセッサ3と競
合するため、命令フェッチを待機する。第2のプロセッ
サ2は、5サイクル目と同様に第1のバンク5から命令
をフェッチする。第3のプロセッサ3は、5サイクル目
と同様に第3のバンク7から命令をフェッチする。
【0054】<9サイクル目>第1のプロセッサ1は、
(命令の逐次処理)の3サイクル目と同様に第3のバン
ク7から命令をフェッチする。第2のプロセッサ2は、
3サイクル目と同様に第2のバンク6から命令をフェッ
チする。第3のプロセッサ3は、3サイクル目と同様に
第1のバンク5から命令をフェッチする。
【0055】以上のように、第1のプロセッサ1は、使
用する命令フェッチステージを分岐先の命令フェッチ時
に第1の命令フェッチステージF(1)から第3の命令
フェッチステージF(3)に変更するように制御され
る。その結果、各プロセッサの各バンクへのアクセスは
排他的に実行される。
【0056】図5は、実施形態1におけるプロセッサの
命令フェッチステージの変更方法を示す。プロセッサ1
〜3内のバンク切り替え信号をBANKS0、BANK
S1とすると、フェッチステージF(1)〜F(3)の
切り替えは図6に示されるように行われる。すなわち、
BANKS0=0かつBANKS1=0のとき、フェッ
チステージの変更は行われない。BANKS0=0かつ
BANKS1=1のとき、F(1)→F(2)、F
(2)→F(3)、F(3)→F(1)の変更がそれぞ
れ行われる。BANKS0=1かつBANKS1=0の
とき、F(1)→F(3)、F(2)→F(1)、F
(3)→F(2)の変更がそれぞれ行われる。
【0057】分岐直前のアドレスをIP[15:0]、
分岐先のアドレスをJIP[15:0]としたとき、B
ANKS0、BANKS1の値は例えば以下のソースコ
ードによって定められる。 if ( IP[1:0] == JIP[1:0] ) then BANKS0 = 1; BANKS1 = 0; else if (IP[1:0]-1 == JIP[1:0] ) BANKS0 = 0; BANKS1 = 1; else BANKS0 = 0; BANKS1 = 0; 本実施形態によれば、マルチプロセッサ装置100の各
プロセッサが複数の命令フェッチステージを有し、命令
のフェッチに異なる命令フェッチステージを使用するこ
とにより、第1のバンク5と第2のバンク6と第3のバ
ンク7を排他的にアクセスするように制御される。ま
た、プロセッサが分岐命令をフェッチした場合に、使用
する命令フェッチステージを分岐先の命令フェッチ時に
変更することにより、各バンクへのアクセスが排他的に
実行されるように制御される。その結果、命令メモリの
共有を図ると共に、メモリのコンフリクトが発生しない
ようにすることができる。
【0058】(実施形態2)次に、本発明の実施形態2
のマルチプロセッサの制御方法およびその装置につい
て、図面を参照しながら説明する。
【0059】図6は、本発明の実施形態2のマルチプロ
セッサ装置100が備える命令メモリ4の構成を示す。
図6において、命令メモリ4は、第1のバンク5と、第
2のバンク6と、アドレス選択回路8とを備える。図6
は、図1においてN=2である場合の命令メモリ4の構
成を示している。
【0060】図7は本発明の実施形態2のマルチプロセ
ッサ装置100が備えるプロセッサ1、2の構成図であ
る。マルチプロセッサ装置100が備えるプロセッサ1
とプロセッサ2とは、同様の構成を有している。図7に
おいて、プロセッサ1、2は、命令レジスタ部101
と、デコーダ部102と、命令ポインタ部103と、制
御部104とを備える。
【0061】命令レジスタ部101には、第1の命令1
4と、第2の命令15と、NOP選択信号114と、フ
ェッチステージ選択信号115と、バンク選択信号11
8とが入力される。命令レジスタ部101は、入力され
た各信号に応じて、命令コード111を出力する。
【0062】デコーダ部102には、命令コード111
が入力される。デコーダ部102は、命令コード111
に応じて、分岐命令信号112と分岐アドレス113と
を出力する。
【0063】命令ポインタ部103には、分岐アドレス
113と、フェッチステージ選択信号115と、アドレ
ス分岐信号116とが入力される。命令ポインタ部10
3は、入力された各信号に応じて、命令ポインタ信号1
17と、バンク選択信号118と、第1のアドレス11
または第2のアドレス12とを出力する。
【0064】図8は、本発明の実施形態2におけるプロ
セッサ1、2が備える命令レジスタ部101の構成を示
す。図8において、命令レジスタ部101は、第1の命
令選択器201と、第1の命令レジスタ202と、第2
の命令選択器203と、第2の命令レジスタ204と、
第3の命令選択器205とを備える。
【0065】第1の命令選択器201には、第1の命令
14と、第2の命令15と、バンク選択信号118とが
入力される。第1の命令レジスタ202には、第1の命
令選択器201の出力が入力される。第2の命令選択器
203には、第1の命令選択器201の出力と、第1の
命令レジスタ202の出力と、フェッチステージ選択信
号115とが入力される。第2の命令レジスタ204に
は、第2の命令選択器203の出力が入力される。第3
の命令選択器205には、第2の命令レジスタ204
と、NOPコード211と、NOP選択信号114とが
入力される。第3の命令選択器205は、入力された各
信号に応じて命令コード111を出力する。
【0066】図9は、本発明の実施形態2のプロセッサ
1、2が備える命令ポインタ部103の構成を示す。図
9において、命令ポインタ部103は、第1のアドレス
選択器301と、第1の命令ポインタ302と、加算器
303と、第2の命令ポインタ304と、第2のアドレ
ス選択器305とを備える。
【0067】第1のアドレス選択器301には、分岐ア
ドレス113と、加算器303の出力と、アドレス分岐
信号116とが入力される。第1の命令ポインタ302
には、第1のアドレス選択器301の出力が入力され
る。第1の命令ポインタ302は、第1のアドレス選択
器301の出力の最下位ビットを、命令ポインタ信号1
17として出力する。加算器303には、第1の命令ポ
インタ302の出力が入力される。第2の命令ポインタ
304には、第1の命令ポインタ302の出力が入力さ
れる。第2のアドレス選択器305には、第1の命令ポ
インタ302の出力と、第2の命令ポインタ304の出
力と、フェッチステージ選択信号115とが入力され
る。第2のアドレス選択器305は、第1のアドレス1
1または第2のアドレス12と、第1のアドレス11ま
たは第2のアドレス12の最下位ビットをバンク選択信
号118として出力する。
【0068】図10は、本発明の実施形態2におけるア
ドレス選択回路8の構成を示す。図10において、アド
レス選択回路8は、第1のプロセッサ選択器401と、
第2のプロセッサ選択器402と、フリップフロップ4
03と、インバータ404とを備える。
【0069】第1のプロセッサ選択器401には、第1
のアドレス11と、第2のアドレス12と、プロセッサ
選択信号411とが入力される。第1のプロセッサ選択
器401は、入力された各信号に応じて第1のバンクア
ドレス17を出力する。第2のプロセッサ選択器402
には、第1のアドレス11と、第2のアドレス12と、
プロセッサ選択信号411とが入力される。第2のプロ
セッサ選択器402は、入力された各信号に応じて第2
のバンクアドレス18を出力する。フリップフロップ4
03は、D型フリップフロップである。フリップフロッ
プ403は、入力されるインバータ404の出力と、リ
セット信号521とに応じて、プロセッサ選択信号41
1を出力する。インバータ404は、入力されたプロセ
ッサ選択信号411を反転させる。
【0070】図11は本発明の実施形態2におけるプロ
セッサ1、2が備える制御部104の構成を示す。図1
1において、制御部104は、フリップフロップ50
1、507、508、510と、排他的論理和ゲート5
02と、論理積ゲート503、504、505、509
と、論理和ゲート506と、インバータ511、512
とを備える。
【0071】フリップフロップ501、507、50
8、510は、それぞれ、D型フリップフロップであ
る。論理積ゲート503、504、505、509は、
それぞれ、複数の入力信号の論理積を出力する。インバ
ータ511、512は、それぞれ、入力信号の位相を反
転して出力する。
【0072】フリップフロップ501は、入力された分
岐命令信号112に応じて、アドレス分岐信号116を
出力する。排他的論理和ゲート502は、分岐アドレス
113と命令ポインタ信号117との排他的論理和を出
力する。論理積ゲート503は、リセット信号521と
数値522との論理積を出力する。数値522は、プロ
セッサ毎に「1」または「0」に定められている。論理
積ゲート504は、アドレス分岐信号116と、排他的
論理和502の出力と、インバータ511の出力との論
理積を出力する。論理積505は、フェッチステージ選
択信号115と、インバータ512の出力と、インバー
タ511の出力との論理積を出力する。論理和ゲート5
06は、論理積ゲート503の出力と、論理積ゲート5
04の出力と、論理積ゲート505の出力との論理和を
出力する。フリップフロップ507は、入力された論理
和ゲート506の出力に応じて、フェッチステージ選択
信号115を出力する。フリップフロップ508は、入
力されたアドレス分岐信号116に応じた信号を論理積
ゲート509に出力する。論理積ゲート509は、アド
レス分岐信号116と、分岐命令信号112と、フリッ
プフロップ508の出力との論理積を出力する。フリッ
プフロップ510は、入力された論理積ゲート509の
出力に応じて、NOP選択信号114を出力する。イン
バータ511は、入力されたリセット信号521を反転
して出力する。インバータ512は、入力されたアドレ
ス分岐信号116を反転して出力する。
【0073】以下、図12と図13とを参照して、以上
のように構成されたマルチプロセッサ装置100の動作
を説明する。以下の説明においては、第1のバンク5に
偶数番地の命令が格納され、第2のバンク6に奇数番地
の命令が格納されているものとする。また、以下の説明
においては、便宜上、第1のバンクアドレス17および
第2のバンクアドレス18は、第1のアドレス11また
は第2のアドレス12の最下位ビットを除いたものでは
なく、第1のアドレス11または第2のアドレス12と
同じ数値であるものとする。
【0074】(命令の逐次処理)図12は、本発明の実
施形態2におけるプロセッサの逐次処理時のタイミング
チャートである。図12を参照して、プロセッサが命令
を逐次処理する場合の動作を説明する。ここで、パイプ
ラインは、第1の命令フェッチステージF(1)、第2
の命令フェッチステージF(2)、デコードステージD
C、実行ステージEXの4段パイプラインであるものと
する。また、第1のプロセッサ1には第1の命令フェッ
チステージF(1)を割り当て、第2のプロセッサ2に
は第2の命令フェッチステージF(2)を割り当てるも
のとする。さらに、第1のプロセッサ1の場合は数値5
22を「1」とし、第2のプロセッサ2の場合は数値5
22を「0」とする。
【0075】<0サイクル目>0サイクル目に、プロセ
ッサ1、2に入力されるリセット信号521の値は
「1」となるものとする。
【0076】第1のプロセッサ1の制御部104におい
て、数値522は「1」であるから、リセット信号52
1の値が「1」になることにより、論理積ゲート503
の出力値は「1」となる。これにより、論理和ゲート5
06の出力値が「1」となり、フリップフロップ507
の出力するフェッチステージ選択信号115の値も
「1」となる。
【0077】一方、第2のプロセッサ2の制御部104
において、数値522は「0」であるから、リセット信
号521の値が「1」になっても、論理積ゲート503
の出力値は「0」である。そのため、論理和ゲート50
6の出力値が「0」となり、フリップフロップ507の
出力するフェッチステージ選択信号115の値も「0」
となる。
【0078】<1サイクル目>第1のプロセッサ1の命
令ポインタ103において、第1の命令ポインタ302
の値は「0」であり、第2の命令ポインタ304の値は
「不定」である。フェッチステージ選択信号115の値
は「1」であるから、第2のアドレス選択器305は第
1の命令ポインタ302の値を第1のアドレス11とし
て出力する。その結果、第1のアドレス11として値
「0」が出力される。
【0079】第2のプロセッサ2の命令ポインタ103
において、第1の命令ポインタ302の値は「10」で
あり、第2の命令ポインタ304の値は「不定」であ
る。フェッチステージ選択信号115の値は「0」であ
るから、第2のアドレス選択器305は第2の命令ポイ
ンタ304の値を第2のアドレス12として出力する。
その結果、第2のアドレス12として値「不定」が出力
される。
【0080】命令メモリ4のアドレス選択回路8におい
て、プロセッサ選択信号411の値は「0」である。第
1のプロセッサ選択器401は、プロセッサ選択信号4
11の値が「0」であるので、第1のアドレス11を第
1のバンクアドレス17として出力する。その結果、第
1のバンクアドレス17の値は「0」となる。よって、
第1のバンク5は、第1の命令14として「0」番地の
命令を出力する。
【0081】一方、第2のプロセッサ選択器402は、
プロセッサ選択信号411の値が「0」であるので、第
2のアドレス12を第2のバンクアドレス18として出
力する。その結果、第2のバンクアドレス18の値は
「不定」となる。よって、第2のバンク6は、第2の命
令15として「不定」番地の命令を出力する。
【0082】<2サイクル目>第1のプロセッサ1の命
令ポインタ103において、第1の命令ポインタ302
の値は「1」であり、第2の命令ポインタ304の値は
「0」である。フェッチステージ選択信号115の値は
「1」であるから、第2のアドレス選択器305は第1
の命令ポインタ302の値を第1のアドレス11として
出力する。その結果、第1のアドレス11として値
「1」が出力される。1サイクル目の第1の命令14は
「0」番地の命令であるから、第1のプロセッサ1の第
1の命令レジスタ202は「0」番地の命令をフェッチ
する。
【0083】第2のプロセッサ2の命令ポインタ103
において、第1の命令ポインタ302の値は「11」で
あり、第2の命令ポインタ304の値は「10」であ
る。フェッチステージ選択信号115の値は「0」であ
るから、第2のアドレス選択器305は第2の命令ポイ
ンタ304の値を第2のアドレス12として出力する。
その結果、第2のアドレス12として値「10」が出力
される。
【0084】命令メモリ4のアドレス選択回路8におい
て、プロセッサ選択信号411の値は「1」である。第
1のプロセッサ選択器401は、プロセッサ選択信号4
11の値が「1」であるので、第2のアドレス12を第
1のバンクアドレス17として出力する。その結果、第
1のバンクアドレス17の値は「10」となる。よっ
て、第1のバンク5は、第1の命令14として「10」
番地の命令を出力する。
【0085】一方、第2のプロセッサ選択器402は、
プロセッサ選択信号411の値が「1」であるので、第
1のアドレス11を第2のバンクアドレス18として出
力する。その結果、第2のバンクアドレス18の値は
「1」となる。よって、第2のバンク6は、第2の命令
15として「1」番地の命令を出力する。
【0086】<3サイクル目>第1のプロセッサ1の命
令ポインタ103において、第1の命令ポインタ302
の値は「2」であり、第2の命令ポインタ304の値は
「1」である。フェッチステージ選択信号115の値は
「1」であるから、第2のアドレス選択器305は第1
の命令ポインタ302の値を第1のアドレス11として
出力する。その結果、第1のアドレス11として値
「2」が出力される。2サイクル目の第1の命令14は
「1」番地の命令であるから、第1のプロセッサ1の第
1の命令レジスタ202は「1」番地の命令をフェッチ
する。フェッチステージ選択信号115の値は「1」で
あるから、第2の命令選択器203は第1の命令レジス
タ202の値を出力する。第1の命令レジスタ202は
1サイクル目に「0」番地の命令をフェッチしているか
ら、第2の命令レジスタ204は「0」番地の命令をフ
ェッチする。NOP選択信号114の値は「0」である
から、第3の命令選択器205は第2の命令レジスタ2
04の値を命令コード111として出力する。その結
果、命令コード111の内容は、「0」番地の命令とな
る。
【0087】第2のプロセッサ2の命令ポインタ103
において、第1の命令ポインタ302の値は「12」で
あり、第2の命令ポインタ304の値は「11」であ
る。フェッチステージ選択信号115の値は「0」であ
るから、第2のアドレス選択器305は第2の命令ポイ
ンタ304の値を第2のアドレス12として出力する。
その結果、第2のアドレス12として値「11」が出力
される。2サイクル目の第2の命令15は「10」番地
の命令であるから、第1のプロセッサ1の第1の命令レ
ジスタ202は「10」番地の命令をフェッチする。フ
ェッチステージ選択信号115の値は「0」であるか
ら、第2の命令選択器203は第1の命令選択器201
の値を出力する。2サイクル目の第2の命令15は「1
0」番地の命令であるから、第2の命令レジスタ204
は「10」番地の命令をフェッチする。NOP選択信号
114の値は「0」であるから、第3の命令選択器20
5は第2の命令レジスタ204の値を命令コード111
として出力する。その結果、命令コード111の内容
は、「10」番地の命令となる。
【0088】命令メモリ4のアドレス選択回路8におい
て、プロセッサ選択信号411の値は「0」である。そ
のため、第1のアドレス11の値「2」が第1のバンク
アドレス17として出力される。また、第2のアドレス
12の値「11」が第2のバンクアドレス18として出
力される。よって、第1のバンク5は、第1の命令14
として「2」番地の命令を出力する。また、第2のバン
ク6は、第2の命令15として「11」番地の命令を出
力する。
【0089】<4サイクル目>第1のプロセッサ1の命
令ポインタ103において、第1の命令ポインタ302
の値は「3」であり、第2の命令ポインタ304の値は
「2」である。フェッチステージ選択信号115の値は
「1」であるから、第1の命令ポインタ302の値
「3」が第1のアドレス11として出力される。第1の
命令レジスタ202は、3サイクル目の第1の命令14
である「2」番地の命令をフェッチする。フェッチステ
ージ選択信号115の値は「1」であるから、第2の命
令レジスタ204は、第1の命令レジスタ202が出力
する「1」番地の命令をフェッチする。NOP選択信号
114の値は「0」であるから、命令コード111の内
容は、第2の命令レジスタ204が出力する「1」番地
の命令となる。
【0090】第2のプロセッサ2の命令ポインタ103
において、第1の命令ポインタ302の値は「13」で
あり、第2の命令ポインタ304の値は「12」であ
る。フェッチステージ選択信号115の値は「0」であ
るから、第1の命令ポインタ302の値「13」が第2
のアドレス12として出力される。第1の命令レジスタ
202は、3サイクル目の第2の命令15である「1
1」番地の命令をフェッチする。フェッチステージ選択
信号115の値は「0」であるから、第2の命令レジス
タ204は、第1の命令選択器201が出力する「1
1」番地の命令をフェッチする。NOP選択信号114
の値は「0」であるから、命令コード111の内容は、
第2の命令レジスタ204が出力する「11」番地の命
令となる。
【0091】命令メモリ4のアドレス選択回路8におい
て、プロセッサ選択信号411の値は「1」である。そ
のため、第2のアドレス12の値「12」が第1のバン
クアドレス17として出力される。また、第1のアドレ
ス11の値「3」が第2のバンクアドレス18として出
力される。よって、第1のバンク5は、第1の命令14
として「12」番地の命令を出力する。また、第2のバ
ンク6は、第2の命令15として「3」番地の命令を出
力する。
【0092】<5サイクル目>第1のプロセッサ1の命
令ポインタ103において、第1の命令ポインタ302
の値は「4」であり、第2の命令ポインタ304の値は
「3」である。フェッチステージ選択信号115の値は
「1」であるから、第1の命令ポインタ302の値
「4」が第1のアドレス11として出力される。第1の
命令レジスタ202は、4サイクル目の第1の命令14
である「3」番地の命令をフェッチする。フェッチステ
ージ選択信号115の値は「1」であるから、第2の命
令レジスタ204は、第1の命令レジスタ202が出力
する「2」番地の命令をフェッチする。NOP選択信号
114の値は「0」であるから、命令コード111の内
容は、第2の命令レジスタ204が出力する「2」番地
の命令となる。
【0093】第2のプロセッサ2の命令ポインタ103
において、第1の命令ポインタ302の値は「14」で
あり、第2の命令ポインタ304の値は「13」であ
る。フェッチステージ選択信号115の値は「0」であ
るから、第2の命令ポインタ304の値「13」が第2
のアドレス12として出力される。第1の命令レジスタ
202は、4サイクル目の第2の命令15である「1
2」番地の命令をフェッチする。フェッチステージ選択
信号115の値は「0」であるから、第2の命令レジス
タ204は、第1の命令選択器201が出力する「1
2」番地の命令をフェッチする。NOP選択信号114
の値は「0」であるから、命令コード111の内容は、
第2の命令レジスタ204が出力する「12」番地の命
令となる。
【0094】命令メモリ4のアドレス選択回路8におい
て、プロセッサ選択信号411の値は「0」である。そ
のため、第1のアドレス11の値「4」が第1のバンク
アドレス17として出力される。また、第2のアドレス
12の値「13」が第2のバンクアドレス18として出
力される。よって、第1のバンク5は、第1の命令14
として「4」番地の命令を出力する。また、第2のバン
ク6は、第2の命令15として「13」番地の命令を出
力する。
【0095】<6サイクル目以降>マルチプロセッサ装
置100は、1〜5サイクル目と同様に処理を実施す
る。
【0096】以上のように、第1のプロセッサ1は、第
1の命令フェッチステージF(1)を使用し、第2のプ
ロセッサ2は、第2の命令フェッチステージF(2)を
使用し、第1のバンク5と第2のバンク6を排他的にア
クセスするように制御する。
【0097】(命令の分岐処理)図13は、本発明の実
施形態2におけるプロセッサの分岐処理時のタイミング
チャートである。図13を参照して、プロセッサが命令
を分岐処理する場合の動作を説明する。なお、パイプラ
インは(命令の逐次処理)と同様の4段パイプラインで
ある。また、第1のプロセッサ1の場合は数値522を
「1」とし、第2のプロセッサ2の場合は数値522を
「0」とする。さらに、「1」番地の命令を「8」番地
への分岐を指示する分岐命令とし、実行ステージEXで
分岐処理するものとする。
【0098】<0〜4サイクル目>マルチプロセッサ装
置100は、(命令の逐次処理)の場合と同様に動作す
る。
【0099】<5サイクル目>第2のプロセッサ2およ
び命令メモリ4のアドレス選択回路8は、(命令の逐次
処理)の場合と同様に動作する。
【0100】第1のプロセッサ1において、「1」番地
の分岐命令が実行されることにより、分岐命令信号11
2の値は「1」となる。これにより、NOP選択信号1
14の値が「1」となり、アドレス分岐信号116の値
も「1」となる。
【0101】第1のプロセッサ1の命令ポインタ103
において、第1の命令ポインタ302の値は「4」であ
り、第2の命令ポインタ304の値は「3」である。フ
ェッチステージ選択信号115の値は「1」であるか
ら、第1の命令ポインタ302の値「4」が第1のアド
レス11として出力される。第1の命令レジスタ202
は、4サイクル目の第1の命令14である「3」番地の
命令をフェッチする。フェッチステージ選択信号115
の値は「1」であるから、第2の命令レジスタ204
は、第1の命令レジスタ202が出力する「2」番地の
命令をフェッチする。NOP選択信号114の値は
「1」であるから、命令コード111の内容は、NOP
コード211(NOP命令)となる。
【0102】<6サイクル目>第1のプロセッサ1にお
いて、「1」番地の分岐命令が実行されることにより、
分岐アドレス113の値は「8」となっている。分岐ア
ドレス113の最下位ビットが「0」であり、命令ポイ
ンタ信号117の値が「0」であり、アドレス分岐信号
116の値が「1」であることにより、フェッチステー
ジ選択信号115の値は「0」となる。一方、NOP選
択信号114の値は「1」となり、アドレス分岐信号1
16の値は「0」となる。
【0103】第1のプロセッサ1の命令ポインタ103
において、アドレス分岐信号116の値は「1」である
から、第1のアドレス選択器301は分岐アドレス11
3を出力する。その結果、第1の命令ポインタ302の
値は「8」となり、一方、第2の命令ポインタ304の
値は「4」である。フェッチステージ選択信号115の
値は「0」であるから、第2の命令ポインタ304の値
「4」が第1のアドレス11として出力される。第1の
命令レジスタ202は、4サイクル目の第1の命令14
である「3」番地の命令をフェッチする。フェッチステ
ージ選択信号115の値は「0」であるから、第2の命
令レジスタ204は、第1の命令選択器201が出力す
る「4」番地の命令をフェッチする。NOP選択信号1
14の値は「1」であるから、命令コード111の内容
は、NOPコード211(NOP命令)となる。
【0104】第2のプロセッサ2の命令ポインタ103
において、第1の命令ポインタ302の値は「15」で
あり、第2の命令ポインタ304の値は「14」であ
る。フェッチステージ選択信号115の値は「0」であ
るから、第2の命令ポインタ304の値「14」が第2
のアドレス12として出力される。第1の命令レジスタ
202は、5サイクル目の第2の命令15である「1
3」番地の命令をフェッチする。フェッチステージ選択
信号115の値は「0」であるから、第2の命令レジス
タ204は、第1の命令選択器201が出力する「1
3」番地の命令をフェッチする。NOP選択信号114
の値は「0」であるから、命令コード111の内容は、
第2の命令レジスタ204が出力する「13」番地の命
令となる。
【0105】命令メモリ4のアドレス選択回路8におい
て、プロセッサ選択信号411の値は「1」である。そ
のため、第2のアドレス12の値「14」が第1のバン
クアドレス17として出力される。また、第1のアドレ
ス11の値「4」が第2のバンクアドレス18として出
力される。よって、第1のバンク5は、第1の命令14
として「14」番地の命令を出力する。また、第2のバ
ンク6は、第2の命令15として「4」番地の命令を出
力する。
【0106】<7サイクル目>第1のプロセッサ1の命
令ポインタ103において、第1の命令ポインタ302
の値は「9」であり、一方、第2の命令ポインタ304
の値は「8」である。フェッチステージ選択信号115
の値は「0」であるから、第2の命令ポインタ304の
値「8」が第1のアドレス11として出力される。第1
の命令レジスタ202は、6サイクル目の第1の命令1
4である「14」番地の命令をフェッチする。フェッチ
ステージ選択信号115の値は「0」であるから、第2
の命令レジスタ204は、第1の命令選択器201が出
力する「14」番地の命令をフェッチする。NOP選択
信号114の値は「1」であるから、命令コード111
の内容は、NOPコード211(NOP命令)となる。
【0107】第2のプロセッサ2の命令ポインタ103
において、第1の命令ポインタ302の値は「16」で
あり、第2の命令ポインタ304の値は「15」であ
る。フェッチステージ選択信号115の値は「0」であ
るから、第2の命令ポインタ304の値「15」が第2
のアドレス12として出力される。第1の命令レジスタ
202は、6サイクル目の第2の命令15である「1
4」番地の命令をフェッチする。フェッチステージ選択
信号115の値は「0」であるから、第2の命令レジス
タ204は、第1の命令選択器201が出力する「1
4」番地の命令をフェッチする。NOP選択信号114
の値は「0」であるから、命令コード111の内容は、
第2の命令レジスタ204が出力する「14」番地の命
令となる。
【0108】命令メモリ4のアドレス選択回路8におい
て、プロセッサ選択信号411の値は「0」である。そ
のため、第1のアドレス11の値「8」が第1のバンク
アドレス17として出力される。また、第2のアドレス
12の値「15」が第2のバンクアドレス18として出
力される。よって、第1のバンク5は、第1の命令14
として「8」番地の命令を出力する。また、第2のバン
ク6は、第2の命令15として「15」番地の命令を出
力する。
【0109】<8サイクル目>第1のプロセッサ1の命
令ポインタ103において、第1の命令ポインタ302
の値は「10」であり、一方、第2の命令ポインタ30
4の値は「9」である。フェッチステージ選択信号11
5の値は「0」であるから、第2の命令ポインタ304
の値「9」が第1のアドレス11として出力される。第
1の命令レジスタ202は、7サイクル目の第1の命令
14である「9」番地の命令をフェッチする。フェッチ
ステージ選択信号115の値は「0」であるから、第2
の命令レジスタ204は、第1の命令選択器201が出
力する「8」番地の命令をフェッチする。NOP選択信
号114の値は「0」であるから、命令コード111の
内容は、第2の命令レジスタ204が出力する「8」番
地の命令となる。
【0110】第2のプロセッサ2の命令ポインタ103
において、第1の命令ポインタ302の値は「17」で
あり、第2の命令ポインタ304の値は「16」であ
る。フェッチステージ選択信号115の値は「0」であ
るから、第2の命令ポインタ304の値「16」が第2
のアドレス12として出力される。第1の命令レジスタ
202は、7サイクル目の第2の命令15である「1
5」番地の命令をフェッチする。フェッチステージ選択
信号115の値は「0」であるから、第2の命令レジス
タ204は、第1の命令選択器201が出力する「1
5」番地の命令をフェッチする。NOP選択信号114
の値は「0」であるから、命令コード111の内容は、
第2の命令レジスタ204が出力する「15」番地の命
令となる。
【0111】命令メモリ4のアドレス選択回路8におい
て、プロセッサ選択信号411の値は「1」である。そ
のため、第2のアドレス12の値「16」が第1のバン
クアドレス17として出力される。また、第1のアドレ
ス11の値「9」が第2のバンクアドレス18として出
力される。よって、第1のバンク5は、第1の命令14
として「16」番地の命令を出力する。また、第2のバ
ンク6は、第2の命令15として「9」番地の命令を出
力する。
【0112】<9サイクル目以降>マルチプロセッサ装
置100は、1〜8サイクル目と同様に処理を実施す
る。
【0113】以上のように、マルチプロセッサ装置10
0は、分岐先の命令フェッチ時に、第1のプロセッサ1
の命令フェッチステージを第1の命令フェッチステージ
F(1)から第2の命令フェッチステージF(2)に変
更するように制御する。
【0114】図14は、実施形態2におけるプロセッサ
の命令フェッチステージの変更方法を示す。プロセッサ
1、2内のバンク選択信号118をBANKSとする
と、フェッチステージF(1)、F(2)の切り替えは
図14に示されるように行われる。すなわち、BANK
S=0のとき、フェッチステージの変更は行われない。
BANKS=1のとき、F(1)→F(2)又はF
(2)→F(1)のフェッチステージの変更が行われ
る。
【0115】分岐直前のアドレスをIP[15:0]、
分岐先のアドレスをJIP[15:0]としたとき、B
ANKSの値は例えば以下のソースコードによって定め
られる。 if ( IP[0] == JIP[0] ) then BANKS = 1; else BANKS = 0; 以上のように本実施形態によれば、アドレス選択回路8
と第1のバンク5と第2のバンク6で構成された命令メ
モリ4と、命令レジスタ部101と命令ポインタ部10
3と制御部104とデコーダ部102で構成され、第1
の命令フェッチステージF(1)と第2の命令フェッチ
ステージF(2)の2個を有するパイプライン構成の第
1のプロセッサ1および第2のプロセッサ2を備え、第
1のプロセッサ1は、第1の命令フェッチステージF
(1)を使用し、第2のプロセッサ2は、第2の命令フ
ェッチステージF(2)を使用し、第1のバンク5と第
2のバンク6を排他的にアクセスするように制御し、分
岐先の命令フェッチ時に、第1のプロセッサ1の命令フ
ェッチステージを第1の命令フェッチステージF(1)
から第2の命令フェッチステージF(2)に変更するよ
うに制御する事で、命令メモリの共有を図ると共に、メ
モリのコンフリクトが発生しないようにする事ができ
る。
【0116】なお、実施形態1および実施形態2におい
て、命令フェッチステージ以外をデコードステージと実
行ステージとして説明したが、命令フェッチステージ以
外は任意の構造でもよいことは明らかである。また、分
岐処理のステージを実行ステージとして説明したが、任
意のステージにしてもよいことは明らかである。また、
第1のプロセッサ1が分岐処理するものとして説明した
が、その他のプロセッサが分岐処理する場合にも同様に
制御ができる事は明らかである。
【0117】
【発明の効果】本発明によれば、メモリ共有型マルチプ
ロセッサにおいて、コンフリクト発生時のメモリアクセ
スの調停が不要となる。これにより、メモリアクセスの
調停のための回路が不要となり、メモリアクセスの調停
による待ち時間が発生しなくなる。
【0118】本発明のマルチプロセッサ装置において
は、メモリアクセスの調停のための待ち時間が発生しな
いため、アプリケーションの実行時間の予測が可能であ
る。そのため、マルチプロセッサであることを意識せず
に、シングルプロセッサと同様にアプリケーションシス
テムの開発をすることができる。本発明のマルチプロセ
ッサ装置はアプリケーションの実行時間の予測が可能で
あるため、リアルタイム処理が要求される通信用DSP
等に適用することが容易である。
【0119】また、本発明によれば、プロセッサが分岐
命令を処理する場合に、プロセッサが命令をフェッチす
る命令フェッチステージを変更することにより、分岐命
令の処理後もメモリアクセスのコンフリクトが発生しな
いようにすることが可能である。
【図面の簡単な説明】
【図1】本発明のマルチプロセッサ装置の構成を示す図
である。
【図2】本発明のマルチプロセッサ装置が備えるプロセ
ッサのパイプライン構造を示す図である。
【図3】本発明の実施形態1におけるプロセッサの逐次
処理時のタイミングチャートである。
【図4】本発明の実施形態1におけるプロセッサの分岐
処理時のタイミングチャートである。
【図5】本発明の実施形態1におけるプロセッサの命令
フェッチステージの変更方法を示す図である。
【図6】本発明の実施形態2における命令メモリの構成
を示す図である。
【図7】本発明の実施形態2におけるプロセッサの構成
を示す図である。
【図8】本発明の実施形態2におけるプロセッサが備え
る命令レジスタ部の構成を示す図である。
【図9】本発明の実施形態2におけるプロセッサが備え
る命令ポインタ部の構成を示す図である。
【図10】本発明の実施形態2におけるアドレス選択回
路の構成を示す図である。
【図11】本発明の実施形態2におけるプロセッサが備
える制御部の構成を示す図である。
【図12】本発明の実施形態2におけるプロセッサの逐
次処理時のタイミングチャートである。
【図13】本発明の実施形態2におけるプロセッサの分
岐処理時のタイミングチャートである。
【図14】本発明の実施形態2におけるプロセッサの命
令フェッチステージの変更方法を示す図である。
【符号の説明】
1 第1のプロセッサ 2 第2のプロセッサ 3 第Nのプロセッサ 4 命令メモリ 5 第1のバンク 6 第2のバンク 7 第Mのバンク 8 アドレス選択回路 11 第1のアドレス 12 第2のアドレス 13 第Nのアドレス 14 第1の命令 15 第2の命令 16 第Nの命令 17 第1のバンクアドレス 18 第2のバンクアドレス 19 第Mのバンクアドレス 101 命令レジスタ部 102 デコーダ部 103 命令ポインタ部 104 制御部 111 命令コード 112 分岐命令信号 113 分岐アドレス 114 NOP選択信号 115 フェッチステージ選択信号 116 アドレス分岐信号 117 命令ポインタ信号 118 バンク選択信号 201 第1の命令選択器 202 第1の命令レジスタ 203 第2の命令選択器 204 第2の命令レジスタ 205 第3の命令選択器 211 NOPコード 301 第1のアドレス選択器 302 第1の命令ポインタ 303 加算器 304 第2の命令ポインタ 305 第2のアドレス選択器 401 第1のプロセッサ選択器 402 第2のプロセッサ選択器 403、501、507、508、510 フリップフ
ロップ 404、511、512 インバータ 411 プロセッサ選択信号 502 排他的論理和ゲート 503、504、505、509 論理積ゲート 506 論理和ゲート 521 リセット信号 522 数値「1」または「2」
───────────────────────────────────────────────────── フロントページの続き (58)調査した分野(Int.Cl.7,DB名) G06F 15/80 G06F 15/16 - 15/177

Claims (7)

    (57)【特許請求の範囲】
  1. 【請求項1】 N個のプロセッサと、 M個のバンクと、 アドレス選択部と を備え、 前記N個のプロセッサのそれぞれは、N個の命令フェッ
    チステージを有するパイプラインで命令を処理するパイ
    プラインプロセッサであり、 前記N個のプロセッサのそれぞれには、前記N個のプロ
    セッサのうちの複数のプロセッサが前記M個のバンクの
    うちの1つに同時にアクセスすることがないように、前
    記N個の命令フェッチステージのうちどの命令フェッチ
    ステージにおいて命令をフェッチするかが割り当てられ
    ており、 前記M個のバンクのそれぞれには、複数の命令が格納さ
    れており、 前記アドレス選択部は、前記N個のプロセッサから出力
    されたアドレスを受け取り、前記M個のバンクのうち前
    記アドレスによって特定されたバンクに、前記特定され
    たバンクに格納されている前記複数の命令のうちフェッ
    チすべき命令の番地を示すバンクアドレスを出力し、 前記特定されたバンクは、前記特定されたバンクに格納
    されている前記複数の命令のうち前記バンクアドレスに
    よって示された番地の命令を出力し、 前記N個のプロセッサのうちの1つは、前記特定された
    バンクから出力された前記命令を前記N個の命令フェッ
    チステージのうち割り当てられた1つの命令フェッチス
    テージにおいてフェッチし、 Nは2以上の整数であり、MはN以上の整数である、マ
    ルチプロセッサ装置。
  2. 【請求項2】 前記N個のプロセッサが分岐命令を処理
    する場合に、前記命令をフェッチする前記命令フェッチ
    ステージを変更する、請求項1に記載のマルチプロセッ
    サ装置。
  3. 【請求項3】 前記N個のプロセッサは、 前記命令と、バンク選択信号と、フェッチステージ選択
    信号と、NOP選択信号とが入力され、命令コードを出
    力する命令レジスタ部と、 前記命令コードが入力され、分岐命令信号と、分岐アド
    レスとを出力するデコーダ部と、 前記分岐命令信号と、前記分岐アドレスと、命令ポイン
    タ信号とが入力され、前記フェッチステージ選択信号
    と、前記NOP選択信号と、アドレス分岐信号とを出力
    する制御部と、 前記フェッチステージ選択信号と、前記アドレス分岐信
    号と、前記分岐アドレスとが入力され、前記バンク選択
    信号と、前記命令ポインタ信号と、前記アドレスとを出
    力する命令ポインタ部と、 をそれぞれ備えている、請求項2に記載のマルチプロセ
    ッサ装置。
  4. 【請求項4】 前記N個のプロセッサのそれぞれは、前
    記N個の命令フェッチステージのうちに命令のフェッチ
    を行わない命令フェッチステージを有している、請求項
    1に記載のマルチプロセッサ装置。
  5. 【請求項5】 N個のプロセッサとM個のバンクとアド
    レス選択部とを備えたマルチプロセッサ装置の制御方法
    であって、 前記N個のプロセッサのそれぞれは、N個の命令フェッ
    チステージを有するパイプラインで命令を処理するパイ
    プラインプロセッサであり、 前記N個のプロセッサのそれぞれには、前記N個のプロ
    セッサのうちの複数のプロセッサが前記M個のバンクの
    うちの1つに同時にアクセスすることがないように、前
    記N個の命令フェッチステージのうちどの命令フェッチ
    ステージにおいて命令をフェッチするかが割り当てられ
    ており、 前記M個のバンクのそれぞれには、複数の命令が格納さ
    れており、 前記制御方法は、 前記アドレス選択部が、前記N個のプロセッサから出力
    されたアドレスを受け取り、前記M個のバンクのうち前
    記アドレスによって特定されたバンクに、前記特定され
    たバンクに格納されている前記複数の命令のうちフェッ
    チすべき命令の番地を示すバンクアドレスを出力するス
    テップと、 前記特定されたバンクが、前記特定されたバンクに格納
    されている前記複数の命令のうち前記バンクアドレスに
    よって示された番地の命令を出力するステップと、 前記N個のプロセッサのうちの1つが、前記特定された
    バンクから出力された前記命令を前記N個の命令フェッ
    チステージのうち割り当てられた1つの命令フェッチス
    テージにおいてフェッチするステップとを包含し、 Nは2以上の整数であり、MはN以上の整数である、制
    御方法。
  6. 【請求項6】 前記N個のプロセッサのうちの1つが分
    岐命令を処理する場合に、前記命令をフェッチする前記
    命令フェッチステージを変更する、請求項に記載の制
    御方法。
  7. 【請求項7】 前記N個のプロセッサのそれぞれは、前
    記N個の命令フェッチステージのうちに命令のフェッチ
    を行わない命令フェッチステージを有している、請求項
    5に記載の制御方法。
JP05201699A 1999-02-26 1999-02-26 マルチプロセッサ装置およびその制御方法 Expired - Fee Related JP3526773B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP05201699A JP3526773B2 (ja) 1999-02-26 1999-02-26 マルチプロセッサ装置およびその制御方法
US09/514,204 US6785799B1 (en) 1999-02-26 2000-02-25 Multiprocessor with asynchronous pipeline processing of instructions, and control method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP05201699A JP3526773B2 (ja) 1999-02-26 1999-02-26 マルチプロセッサ装置およびその制御方法

Publications (2)

Publication Number Publication Date
JP2000250869A JP2000250869A (ja) 2000-09-14
JP3526773B2 true JP3526773B2 (ja) 2004-05-17

Family

ID=12903031

Family Applications (1)

Application Number Title Priority Date Filing Date
JP05201699A Expired - Fee Related JP3526773B2 (ja) 1999-02-26 1999-02-26 マルチプロセッサ装置およびその制御方法

Country Status (2)

Country Link
US (1) US6785799B1 (ja)
JP (1) JP3526773B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8866826B2 (en) * 2011-02-10 2014-10-21 Qualcomm Innovation Center, Inc. Method and apparatus for dispatching graphics operations to multiple processing resources
US20170083336A1 (en) * 2015-09-23 2017-03-23 Mediatek Inc. Processor equipped with hybrid core architecture, and associated method

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5127098A (en) * 1989-04-12 1992-06-30 Sun Microsystems, Inc. Method and apparatus for the context switching of devices
US5499356A (en) 1989-12-29 1996-03-12 Cray Research, Inc. Method and apparatus for a multiprocessor resource lockout instruction
US5357617A (en) * 1991-11-22 1994-10-18 International Business Machines Corporation Method and apparatus for substantially concurrent multiple instruction thread processing by a single pipeline processor
US5412788A (en) * 1992-04-16 1995-05-02 Digital Equipment Corporation Memory bank management and arbitration in multiprocessor computer system
US5787488A (en) * 1993-04-22 1998-07-28 Analog Devices, Inc. Multi-phase multi-access pipeline memory system
US5574871A (en) * 1994-01-04 1996-11-12 Intel Corporation Method and apparatus for implementing a set-associative branch target buffer
US5611075A (en) * 1994-10-04 1997-03-11 Analog Devices, Inc. Bus architecture for digital signal processor allowing time multiplexed access to memory banks
JP3504355B2 (ja) * 1994-12-06 2004-03-08 松下電器産業株式会社 プロセッサ

Also Published As

Publication number Publication date
US6785799B1 (en) 2004-08-31
JP2000250869A (ja) 2000-09-14

Similar Documents

Publication Publication Date Title
US5045993A (en) Digital signal processor
KR0133238B1 (ko) 컴퓨터 프로세싱 시스템 및 인스트럭션 실행방법
US20020169942A1 (en) VLIW processor
JPH0545985B2 (ja)
NZ201809A (en) Microprocessor
JPH11212786A (ja) レジスタベースデータ処理のためのデータパスおよび方法
US5710914A (en) Digital signal processing method and system implementing pipelined read and write operations
JPS62115542A (ja) 情報処理装置
JP3526773B2 (ja) マルチプロセッサ装置およびその制御方法
JPH0512751B2 (ja)
EP0136218A2 (en) Multiple port pipelined processor
JP2503984B2 (ja) 情報処理装置
JP3461887B2 (ja) 可変長パイプライン制御装置
US20050033939A1 (en) Address generation
JP2636192B2 (ja) 情報処理装置
JP2001092658A (ja) データ処理回路及びデータ処理装置
JPS60105050A (ja) パイプライン制御方式
JP2925842B2 (ja) パイプライン処理装置
JP2545798B2 (ja) デイジタル信号処理回路
JP3517139B2 (ja) 情報処理装置
JP3088956B2 (ja) 演算装置
JP2003345589A (ja) 情報処理装置
JPS5896346A (ja) 階層型演算方式
JPH01224870A (ja) 情報処理装置における主記憶アクセス命令実行制御方式
JP2001034603A (ja) 積和演算処理装置

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20031125

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040126

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: 20040217

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20040217

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: 20080227

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090227

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100227

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100227

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110227

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120227

Year of fee payment: 8

LAPS Cancellation because of no payment of annual fees