(57)【要約】      （修正有）【課題】マルチプロセッサ内のプロセッサそれぞれに対して、通信効率の向上を図ったマルチプロセッサ装置及びマルチプロセッサ通信方法を提供する。【解決手段】マルチプロセッサ装置の各プロセッサへの通信プロトコルに各プロセッサと１対１に対応したビットから構成されるプロセッサ選択フィールドを設けて、各プロセッサのデバッグ部でそのプロセッサ選択フィールドの自身に対応するビットに“ＨＩＧＨ”は設定された場合にのみ、アドレスフィールドに指定されているレジスタ等のアクセスを許可する。【選択図】図４
2010015345.tif 000002
【特許請求の範囲】
【請求項１】
複数のプロセッサが設けられ、その複数のプロセッサに対して少なくともアドレスフィールド及びデータフィールドを含むシリアルデータを出力する出力手段が設けられたマルチプロセッサ装置において、
前記出力手段によって、前記アドレスフィールドとは別に前記複数のプロセッサを１つ以上選択する情報を設定したプロセッサ選択フィールドが前記シリアルデータに含めて出力され、
前記プロセッサの内部または外部に、前記プロセッサ選択フィールドから前記プロセッサを選択する情報を取り出す選択手段が設けられ、そして、
前記複数のプロセッサそれぞれに、前記選択手段が取り出した前記プロセッサを選択する情報に基づいて前記アドレスフィールド及びデータフィールドを受信する受信手段が設けられている
ことを特徴とするマルチプロセッサ装置。
【請求項２】
前記出力手段が、前記プロセッサ選択フィールドの各ビットに前記複数のプロセッサそれぞれに１対１に対応させて前記プロセッサを選択する情報を設定して出力していることを特徴とする請求項１に記載のマルチプロセッサ装置。
【請求項３】
前記選択手段に、前記複数のプロセッサのそれぞれに１対１に対応したビットが定められたプロセッサ選択レジスタが複数設けられ、
前記出力手段によって、前記プロセッサ選択フィールドに前記複数のプロセッサ選択レジスタのうち１つを指定する情報が設定されて出力される
ことを特徴とする請求項１に記載のマルチプロセッサ装置。
【請求項４】
前記選択手段が前記プロセッサの外部に１つだけ設けられて、その選択手段が取り出した前記プロセッサを選択する情報が前記複数のプロセッサそれぞれに出力されることを特徴とする請求項１乃至３のうちいずれか一項に記載のマルチプロセッサ装置。
【請求項５】
複数のプロセッサが設けられ、前記複数のプロセッサに対して少なくともアドレスフィールド及びデータフィールドを含むシリアルデータを出力する出力手段を有するマルチプロセッサ装置において、
前記プロセッサの内部または外部に、前記複数のプロセッサと１対１に対応したビットを定めたプロセッサ選択レジスタが設けられ、そして、
前記複数のプロセッサそれぞれに、前記プロセッサ選択レジスタの設定に基づいて前記アドレスフィールド及びデータフィールドを受信する受信手段が設けられている
ことを特徴とするマルチプロセッサ装置。
【請求項６】
前記プロセッサ選択レジスタが前記プロセッサの外部に１つだけ設けられて、そのプロセッサ選択レジスタの各ビットが対応する前記プロセッサに出力されていることを特徴とする請求項５に記載のマルチプロセッサ装置。
【請求項７】
複数のプロセッサに対して少なくともアドレスフィールド及びデータフィールドを含むシリアルデータを出力するマルチプロセッサ通信方法において、
前記アドレスフィールドとは別に前記複数のプロセッサを１つ以上選択する情報が設定されたプロセッサ選択フィールドを前記シリアルデータに含めて出力して、前記プロセッサ選択フィールドから前記プロセッサを選択する情報を取り出し、その取り出した前記プロセッサを選択する情報に基づいて前記アドレスフィールド及びデータフィールドを受信することを特徴とするマルチプロセッサ通信方法。
【請求項８】
前記プロセッサ選択フィールドの各ビットに前記複数のプロセッサそれぞれに１対１に対応させて前記プロセッサを選択する情報が設定されていることを特徴とする請求項７に記載のマルチプロセッサ通信方法。
【請求項９】
前記複数のプロセッサのそれぞれに１対１に対応したビットが定められたプロセッサ選択レジスタが複数設けられ、そして、
前記プロセッサ選択フィールドに前記複数のプロセッサ選択レジスタのうち１つを指定する情報が設定されている
ことを特徴とする請求項７に記載のマルチプロセッサ通信方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は複数の中央演算処理装置（ＣＰＵ：Central Processing Unit）を内蔵したマルチプロセッサ装置及び各ＣＰＵと通信するためのマルチプロセッサ通信方法に関する。
【背景技術】
【０００２】
近年、情報処理機器や機械制御機器の高機能、高性能化の要求に対して、処理システムの中核をなす中央演算処理装置（以下、プロセッサ）への性能向上要求レベルが高くなってきている。この要求に対応するためにプロセッサは単体での処理能力の向上を行ってきたが、さらに高い性能要求に対応するために、処理システムの中に複数のプロセッサを備え、必要な処理を複数のプロセッサに分散し同時処理を行うことで、全体の処理性能の向上を果たす手段を採用する場合が増えてきている。このような複数のプロセッサを備えるシステムは、マルチプロセッサ（マルチプロセッサ装置）、マルチＣＰＵ、或いはマルチコアシステムと呼ばれている（例えば、特許文献１を参照）。
【０００３】
ここで、プロセッサとＣＰＵはほぼ同義語として扱われるが、コアはプロセッサあるいはＣＰＵ機能を持つ回路をひとつの単位として、同一の半導体装置内に構成されたとき、コアと呼ばれている傾向が多い。すなわち、マルチコアは同一半導体装置内に複数のコアが存在するということになる。但し、マルチプロセッサ、マルチＣＰＵ、或いはマルチコアは、用語や構成が異なることがあるものの、それらから構成された処理システムとしては同じである。マルチプロセッサなどを使用した処理システムは、ひとつのプロセッサがすべての処理を担当するのではなく、それぞれのプロセッサがシステム全体の処理の一部を担当し、全体はその集合体として機能するものである。すなわち、それぞれのプロセッサは、それぞれの分担した処理を行うための独自のプログラムに基づいた実行を行うシステムとなる。
【０００４】
上述したマルチプロセッサを用いた処理システムにおいて、真に性能を発揮するためには、それぞれのプロセッサ間の連携が問題になり、共有メモリなど数々の技術が提案されている。
【０００５】
一方で分散処理により、マルチプロセッサシステムを開発するためのデバッグ装置に対しても対応する技術が要求されている。従来、単体プロセッサの処理システムに対するデバッグ装置は、そのひとつのプロセッサに対してデバッグする装置で対応してきた。それに対して、マルチプロセッサシステムの場合、各プロセッサそれぞれに対応するデバッグ装置を接続してデバッグを行う方法がある。この方法は、デバッグ装置が大掛かりになり、プロセッサ同士を連携させるにもデバッグ装置同士の連携を必要とするなど問題が多い。そのため、デバッグ装置はひとつとして、そのデバッグ装置が複数のプロセッサのデバッグを行うという形式が考えられた（例えば、特許文献２を参照）。
【０００６】
このデバッグ環境は、デバッグ装置とターゲットとなる複数のプロセッサを同一経路上に接続し、デバッグターゲットとするプロセッサを選択した後、デバッグ装置と選択されたプロセッサとの間の通信を行い、デバッグを行うというものである。それぞれのプロセッサにはデバッグ装置と通信を行う回路が組み込まれており、デバッグ装置と各プロセッサ間で通信するための通信プロトコルが定められている。従って、接続されるすべてプロセッサは、共通の通信プロトコルでデバッグ装置との通信を行うことになる。
【０００７】
デバッグ装置と通信を行うターゲットとなるプロセッサの選択はデバッグ装置から行うが、ターゲットの識別はそれぞれのプロセッサに固有に割り付けられた番号（以下、ＩＤ）によって行われる。デバッグ装置は通信の最初の段階で、これから行う通信の対象をＩＤによって宣言し、宣言以降の通信プロトコルは該当ＩＤを持つプロセッサ以外は無視する。この状態は対象プロセッサの変更として、ＩＤを再宣言するまで継続する。ＩＤ宣言するための通信プロトコルは、全プロセッサが対象となる。このように、デバッグ装置からプロセッサへの通信プロトコルは、対象となるひとつのプロセッサであるか、あるいはＩＤ宣言時のように全プロセッサを対象とするかが基本形態となっている。
【０００８】
図１７にプロセッサ８個を対象とするデバッグシステムを例示する。デバッグ装置（ＩＣＥ）１００は、プロセッサ８個をデバッグするデバッグ装置で、通常オペレータの操作するワークステーションあるいはパーソナルコンピュータと一体構成あるいは接続された関係にある。図１７では一体構成であることを前提にして示している。デバッグ装置１００からは１本の接続バスが延びており、この接続バスにプロセッサ０乃至プロセッサ７の８個のプロセッサが接続されている。
【０００９】
デバッグ装置１００と各プロセッサとを接続する接続バスはシリアルバスであり、図１８に示すような通信プロトコルで通信を行う。図１８に示すプロトコルによる１つの転送単位は、５つのフィールドからなる。第１のフィールドは１ビットからなるスタートビットで、これは“ＬＯＷ”であることで転送プロトコルが開始されることを表す。第２のフィールドは８ビットからなるアドレスフィールドで、これはプロセッサのどのレジスタとアクセスするかを表す。８ビットであるので２５６通りのレジスタを指定可能である。第３のフィールドは１ビットからなるＲ／Ｗビットで、これはこのプロトコルがデバッグ装置から対象プロセッサにデータを転送する“ライトサイクル”であれば“ＬＯＷ”に、対象プロセッサからデバッグ装置へデータを転送する“リードサイクル”であれば“ＨＩＧＨ”とすることで、それぞれのサイクルを表す。第４のフィールドは８ビットからなるデータフィールドであり、“ライトサイクル”時にはデバッグ装置から対象プロセッサへ転送するデータを、“リードサイクル”時には対象プロセッサからデバッグ装置へ転送するデータを表す。第５のフィールドは１ビットからなるエンドビットで、これは“ＨＩＧＨ”であることでこの転送プロトコルが終了したことを表す。図１８に示した通信プロトコルは、簡素な例であり、たとえばアドレスのビット数を増やし、より多くのレジスタを割り付けることや、データのビット数を増やし１回に１６ビット長や３２ビットのデータを転送する通信プロトコルも考えられる。また、図１８ではデータの方向が双方向になるが、方向別に信号線を分離する方法などもありうる。
【００１０】
図１７において、それぞれのプロセッサにはデバッグ装置１００と接続するインターフェースＤＩＦ１０１が備えられており、ＤＩＦ１０１は図１９に示すように、シリアル受信制御部１０２と、シフトレジスタ１０３、１０４、１０５と、デコーダ１０６と、アクセスＩＤ１０７と、プロセッサＩＤ１０８と、比較器１０９と、ＡＮＤ回路１１０と、を備えている。
【００１１】
シリアル受信制御部１０２は、入力された通信プロトコルから後述するシフトレジスタ１０３、１０４、１０５への制御信号を生成する。シフトレジスタ１０３は、通信プロトコルのうちアドレスフィールドが格納されるシフトレジスタであり、シリアル受信制御部１０２によって制御される。シフトレジスタ１０４は、通信プロトコルのうちＲ／Ｗビットが格納されるシフトレジスタであり、シリアル受信制御部１０２によって制御される。シフトレジスタ１０５は、通信プロトコルのうちデータフィールドが格納されるシフトレジスタであり、シリアル受信制御部１０２によって制御される。
【００１２】
デコーダ１０６は、シフトレジスタ１０３に格納されたアドレスフィールドをデコードし、そのデコード結果を後述するアクセスＩＤ１０７とＡＮＤ回路１１０とに出力する。アクセスＩＤ１０７は、デバッグ装置１００からの対象プロセッサＩＤを格納するレジスタであり、このアクセスＩＤ１０７には、すべてのプロセッサのアクセスＩＤ１０７に対象プロセッサＩＤが格納される。プロセッサＩＤ１０８は、各プロセッサそれぞれに固有のＩＤが設定されるレジスタである。比較器１０９は、アクセスＩＤ１０７とプロセッサＩＤ１０８とを比較する回路であり、比較結果をＡＮＤ回路１１０へ出力する。ＡＮＤ回路１１０は、論理積回路であり、デコーダ１０６のデコード結果と比較器１０９の比較結果の論理積を取って出力する。
【００１３】
次に、ＤＩＦ１０１の動作を説明する。デバッグ装置１００からの通信内容は、シリアル受信制御部１０２で分析され、通信プロトコルのアドレスフィールド、Ｒ／Ｗビット、データフィールドの各フィールドに分解され、シフトレジスタ１０３、１０４、１０５を用いてシリアルデータからパラレルデータに変換される。
【００１４】
パラレルデータに変換されたアドレスフィールドの情報は、デコーダ１０６に入力され、アドレスごとに割り付けられたレジスタへの制御信号（以下、セレクト信号）となる。この信号のうち、アクセスＩＤ１０７に導かれるセレクト信号は、途中で制約されることなくアクセスＩＤ１０７へ導かれる。すなわち、アクセスＩＤ１０７へのアクセスは、デコードされるアドレスさえ一致すれば、いかなる時にも可能であるということになる。
【００１５】
そして、アクセスＩＤ１０７とプロセッサＩＤ１０８の内容を比較器１０９に入力し、一致しているとプロセッサはデバッグ対象となるプロセッサであり、不一致のプロセッサはデバッグ対象ではない。アクセスＩＤ１０７以外のレジスタへのセレクト信号は、この比較器１０９の結果による制限がなされており、不一致のプロセッサ、すなわちデバッグ対象ではないプロセッサにおいては、ＡＮＤ回路１１０の出力がアクティブとならずアクセスＩＤ１０７以外へアクセス不能となっている。
【特許文献１】特開２００４−１６４１１３号公報
【特許文献２】特開２００７−１２２５４３号公報
【発明の開示】
【発明が解決しようとする課題】
【００１６】
しかしながら、上述した従来の構成では、対象となるプロセッサを複数個同時選択して転送したいという場合については対応できない。複数個を同時選択したい場合とは、プロセッサがいくつかのグループに分かれる場合が挙げられる。例えば、プロセッサ０とプロセッサ１は同じ型のプロセッサであり、そのほかプロセッサは別の型であるような場合、デバッグ環境としてデバッグの状態をプロセッサのレジスタに設定していく際には、プロセッサ０とプロセッサ１へのレジスタ格納内容は同一となり、その他のプロセッサへのレジスタ格納内容はプロセッサ０とプロセッサ１とは異なる格納内容となることが多い。
【００１７】
このような場合、デバッグ装置１００としては、プロセッサ０とプロセッサ１の両方に同じレジスタに対して同じデータでライトサイクルを発行することになるが、プロセッサ指定は同時に１個であるため、プロセッサ０へのライトサイクルと、プロセッサ１へのライトサイクルは別サイクルとして発行することになってしまう。
【００１８】
つまり、同じ設定であってもプロセッサを１つずつ設定していかなければならないため、通信にも無駄が多く、効率が非常に悪かった。
【００１９】
本発明はかかる問題を解決することを目的としている。
【００２０】
すなわち、本発明は、マルチプロセッサ内のプロセッサそれぞれに対して、通信効率を飛躍的に向上させたマルチプロセッサ装置及びマルチプロセッサ通信方法を低コストに提供することを目的としている。
【課題を解決するための手段】
【００２１】
請求項１に記載された発明は、複数のプロセッサが設けられ、その複数のプロセッサに対して少なくともアドレスフィールド及びデータフィールドを含むシリアルデータを出力する出力手段が設けられたマルチプロセッサ装置において、前記出力手段によって、前記アドレスフィールドとは別に前記複数のプロセッサを１つ以上選択する情報を設定したプロセッサ選択フィールドが前記シリアルデータに含めて出力され、前記プロセッサの内部または外部に、前記プロセッサ選択フィールドから前記プロセッサを選択する情報を取り出す選択手段が設けられ、そして、前記複数のプロセッサそれぞれに、前記選択手段が取り出した前記プロセッサを選択する情報に基づいて前記アドレスフィールド及びデータフィールドを受信する受信手段が設けられているマルチプロセッサ装置である。
【００２２】
請求項２に記載された発明は、請求項１に記載された発明において、前記出力手段が、前記プロセッサ選択フィールドの各ビットに前記複数のプロセッサそれぞれに１対１に対応させて前記プロセッサを選択する情報を設定して出力していることを特徴とするものである。
【００２３】
請求項３に記載された発明は、請求項１に記載された発明において、前記選択手段に、前記複数のプロセッサのそれぞれに１対１に対応したビットが定められたプロセッサ選択レジスタが複数設けられ、前記出力手段によって、前記プロセッサ選択フィールドに前記複数のプロセッサ選択レジスタのうち１つを指定する情報が設定されて出力されることを特徴とするものである。
【００２４】
請求項４に記載された発明は、請求項１乃至３のうちいずれか一項に記載の発明において、前記選択手段が前記プロセッサの外部に１つだけ設けられて、その選択手段が取り出した前記プロセッサを選択する情報が前記複数のプロセッサそれぞれに出力されることを特徴とするものである。
【００２５】
請求項５に記載された発明は、複数のプロセッサが設けられ、前記複数のプロセッサに対して少なくともアドレスフィールド及びデータフィールドを含むシリアルデータを出力する出力手段を有するマルチプロセッサ装置において、前記プロセッサの内部または外部に、前記複数のプロセッサと１対１に対応したビットを定めたプロセッサ選択レジスタが設けられ、そして、前記複数のプロセッサそれぞれに、前記プロセッサ選択レジスタの設定に基づいて前記アドレスフィールド及びデータフィールドを受信する受信手段設けられていることを特徴とするマルチプロセッサ装置である。
【００２６】
請求項６に記載された発明は、請求項５に記載された発明において、前記プロセッサ選択レジスタが前記プロセッサの外部に１つだけ設けられて、そのプロセッサ選択レジスタの各ビットが対応する前記プロセッサに出力されていることを特徴とするものである。
【００２７】
請求項７に記載された発明は、複数のプロセッサに対して少なくともアドレスフィールド及びデータフィールドを含むシリアルデータを出力するマルチプロセッサ通信方法において、前記アドレスフィールドとは別に前記複数のプロセッサを１つ以上選択する情報が設定されたプロセッサ選択フィールドを前記シリアルデータに含めて出力して、前記プロセッサ選択フィールドから前記プロセッサを選択する情報を取り出し、その取り出した前記プロセッサを選択する情報に基づいて前記アドレスフィールド及びデータフィールドを受信することを特徴とするマルチプロセッサ通信方法である。
【００２８】
請求項８に記載された発明は、請求項７に記載された発明において、前記プロセッサ選択フィールドの各ビットに前記複数のプロセッサそれぞれに１対１に対応させて前記プロセッサを選択する情報が設定されていることを特徴とするものである。
【００２９】
請求項９に記載された発明は、請求項６に記載された発明において、前記複数のプロセッサのそれぞれに１対１に対応したビットが定められたプロセッサ選択レジスタが複数設けられ、そして、前記プロセッサ選択フィールドに前記複数のプロセッサ選択レジスタのうち１つを指定する情報が設定されていることを特徴とするものである。
【発明の効果】
【００３０】
請求項１に記載の発明によれば、出力手段がプロセッサ選択フィールドを含めて出力し、選択手段が、そのプロセッサ選択フィールドからプロセッサを選択する情報を取り出して、受信手段がそのプロセッサを選択する情報に基づいてアドレスフィールドやデータフィールドを受信するので、予めプロセッサを選択してからデータ転送を行う必要が無く、プロセッサ選択フィールドで複数の通信対象を選択し、複数の通信先に対して同一データを転送することが可能となるため、同一内容の設定が一度で済むことになり通信効率を向上させることができる。
【００３１】
請求項２に記載の発明によれば、プロセッサ選択フィールドの各ビットが通信対象のプロセッサと１対１で対応しているため、１つのプロセッサに対する通信や複数のプロセッサに対する通信のどちらでも、通信対象の切替作業なしに通信プロトコルごとに異なる対象とするプロトコルを連続発行でき通信の効率を向上させることができる。
【００３２】
請求項３に記載の発明によれば、複数のプロセッサのそれぞれに１対１に対応したビットが定められたプロセッサ選択レジスタを複数設けているため、通信先の組み合わせの設定を再設定することなく再利用でき、通信全体におけるプロセッサ選択レジスタの更新頻度が下がり、通信効率が向上する。また、プロセッサ選択フィールドをプロセッサ選択レジスタを選択するフィールドとして用いているため、プロセッサ選択フィールドのビット幅より小さくすることができるので、通信プロトコルのデータ列を短縮でき、より通信の効率を向上させることができる。
【００３３】
請求項４に記載の発明によれば、選択手段をマルチプロセッサ装置に１つだけ設けたので、各プロセッサに選択手段を設ける必要が無くマルチプロセッサの回路規模を縮小することができる。これは、特にマルチプロセッサ装置をひとつの半導体集積回路で構成した場合に、回路規模を縮小することで面積なども縮小することができることから好適である。
【００３４】
請求項５に記載の発明によれば、各ビットが通信対象のプロセッサと１対１で対応しているプロセッサ選択レジスタを備え、プロセッサ選択レジスタの設定に基づいてアドレスフィールド及びデータフィールドを受信する受信手段を各プロセッサが備えているため、プロセッサ選択レジスタに予め複数の通信対象を選択することで、複数の通信先に対して同一データを転送することができるため、同一内容の設定が一度で済むことになり通信効率が向上する。また、通信プロトコルにプロセッサ選択フィールドが必要ないため、通信プロトコルのデータ列を短縮でき、より通信の効率を向上させることができる。
【００３５】
請求項６に記載の発明によれば、プロセッサ選択レジスタをマルチプロセッサ装置に１つだけ設けたので、各プロセッサにプロセッサ選択レジスタを設ける必要が無くマルチプロセッサの回路規模を縮小することができる。これは、特にマルチプロセッサ装置をひとつの半導体集積回路で構成した場合に、回路規模を縮小することで面積なども縮小することができることから好適である。
【００３６】
請求項７に記載の発明によれば、プロセッサ選択フィールドを含めて出力し、そのプロセッサ選択フィールドからプロセッサを選択する情報を取り出して、そのプロセッサを選択する情報に基づいてアドレスフィールドやデータフィールドを受信するので、予めプロセッサを選択してからデータ転送を行う必要が無く、プロセッサ選択フィールドで複数の通信対象を選択し、複数の通信先に対して同一データを転送することが可能となるため、同一内容の設定が一度で済むことになり通信効率を向上させることができる。
【００３７】
請求項８に記載の発明によれば、プロセッサ選択フィールドの各ビットが通信対象のプロセッサと１対１で対応しているため、１つのプロセッサに対する通信や複数のプロセッサに対する通信のどちらでも、通信対象の切替作業なしに通信プロトコルごとに異なる対象とするプロトコルを連続発行でき通信の効率を向上させることができる。
【００３８】
請求項９に記載の発明によれば、プロセッサ選択レジスタを複数設けているため、通信先の組み合わせの設定を再設定することなく再利用でき、通信全体におけるプロセッサ選択レジスタの更新頻度が下がり、通信効率が向上する。また、プロセッサ選択フィールドをプロセッサ選択レジスタを選択するフィールドとして用いているため、プロセッサ選択フィールドのビット幅より小さくすることができるので、通信プロトコルのデータ列を短縮でき、より通信の効率を向上させることができる。
【発明を実施するための最良の形態】
【００３９】
［第１実施形態］
以下、本発明の第１の実施形態を、図１乃至図５を参照して説明する。図１は、本発明の第１の実施形態にかかるマルチプロセッサ装置のブロック図である。図２は、図１に示したマルチプロセッサ装置のプロセッサの詳細を示したブロック図である。図３は、図２に示したプロセッサのデバッグ部の詳細を示す説明図である。図４は、図１に示したマルチプロセッサ装置における通信プロトコルを示したタイミングチャートである。図５は、本実施形態の変形例を示すブロック図である。
【００４０】
図１に示したマルチプロセッサ装置１０は、デバッグ装置１１と、マルチプロセッサ部１２と、を備えている。
【００４１】
出力手段としてのデバッグ装置１１は、通常オペレータの操作するワークステーションあるいはパーソナルコンピュータと一体に構成あるいは接続されている。図１では一体構成の場合で示している。デバッグ装置１１からはマルチプロセッサ部１２へ接続バスが設けられており、この接続バスに後述するマルチプロセッサ部１２内のプロセッサ０乃至プロセッサ７の８個のプロセッサが接続されている。そして、後述する通信プロトコルであるシリアルデータを生成してマルチプロセッサ部１２へ出力する。
【００４２】
マルチプロセッサ部１２は、プロセッサ０乃至プロセッサ７の８個のプロセッサを備えている。これら８個のプロセッサは全て同一の回路構成となっている。
【００４３】
プロセッサ０乃至プロセッサ７には、それぞれを識別するためのプロセッサＩＤが予め設定されている。このプロセッサＩＤは、例えば、プロセッサの外部端子３本をＶＤＤまたはＧＮＤの接続することの組み合わせによって０００乃至１１１までの８つのＩＤを設定する。本実施形態の場合、プロセッサ０はプロセッサＩＤを０００、プロセッサ１はプロセッサＩＤを００１、・・・、プロセッサ７はプロセッサＩＤを１１１に設定する。
【００４４】
プロセッサの内部構成について図２を参照して説明する。図２はプロセッサ０としているが、上述したようにプロセッサ１乃至プロセッサ７も同一の構成となっている。プロセッサ０は、デバッグ部２１と、制御部２２と、入出力部２３と、演算部２４と、を備えている。
【００４５】
選択手段、受信手段としてのデバッグ部２１は、デバッグ装置１１と通信するとともに、後述する制御部２２や入出力部２３と通信を行い、それらからデバッグに必要な情報を入手したり、デバッグに必要な状態にプロセッサ内部の状態を変更したりする。そのため、デバッグ装置１１はデバッグ部２１に指令を与えることで、プロセッサのデバッグを実行することができる。デバッグ部２１は図３に示すように、シリアル受信制御部３１と、シフトレジスタ３２、３３、３４、３５と、デコーダ３６と、ＡＮＤ回路３７と、を備えている。
【００４６】
シリアル受信制御部３１は、入力された通信プロトコルから後述するシフトレジスタ３２、３３、３４、３５への制御信号を生成する。
【００４７】
シフトレジスタ３２は、通信プロトコルのうちプロセッサ選択フィールドが格納されるシフトレジスタであり、シリアル受信制御部３１によって制御される。シフトレジスタ３３は、通信プロトコルのうちアドレスフィールドが格納されるシフトレジスタであり、シリアル受信制御部３１によって制御される。シフトレジスタ３４は、通信プロトコルのうちＲ／Ｗビットが格納されるシフトレジスタであり、シリアル受信制御部３１によって制御される。シフトレジスタ３５は、通信プロトコルのうちデータフィールドが格納されるシフトレジスタであり、シリアル受信制御部３１によって制御される。
【００４８】
デコーダ３６は、シフトレジスタ３３に格納されたアドレスフィールドをデコードし、そのデコード結果をＡＮＤ回路３７に出力する。
【００４９】
ＡＮＤ回路３７は、論理積回路であり、シフトレジスタ３２の所定ビットとデコーダ３６のデコード結果との論理積をとって出力する。
【００５０】
制御部２２は、命令コードの解読結果に従ってプロセッサ全体の制御を行う。
【００５１】
入出力部２３は、プロセッサ外部とデータのやり取りを行うブロックであり、命令コードを外部のプログラムメモリから読み出す。
【００５２】
演算部２４は、数値の計算を行うＡＬＵ（算術演算回路）や一時的にデータを記憶するレジスタ等を備えている。
【００５３】
また、プロセッサ外部には入出力部２３と通信を行うプログラムメモリ、データメモリなどの記憶装置、タイマー、外部ポートなどの周辺機器（回路）が備えられており、これらはプロセッサの目的に応じて構成されている。
【００５４】
次に、本実施形態におけるデバッグ装置１１とプロセッサ０乃至プロセッサ７間で行う通信のプロトコルを図４に示す。図４に示した通信プロトコルでは１つの転送単位において、６つのフィールドから構成される。
【００５５】
第１のフィールドは１ビットからなるスタートビットで、これは“ＬＯＷ”であることで転送プロトコルが開始されることを表す。第２のフィールドは８ビットからなるプロセッサ選択フィールドで、このプロトコルがどのプロセッサを対象としているかを表す。第３のフィールドは８ビットからなるアドレスフィールドで、これはプロセッサのどのレジスタとアクセスするかを表す。アドレスフィールドは８ビットであるので２５６通りのレジスタを指定可能である。第４のフィールドは１ビットからなるＲ／Ｗビットで、これはこのプロトコルがデバッグ装置１１から対象プロセッサにデータを転送する“ライトサイクル”であれば“ＬＯＷ”に、対象プロセッサからデバッグ装置１１へデータを転送する“リードサイクル”であれば“ＨＩＧＨ”とすることで、それぞれのサイクルを表す。第５のフィールドは８ビットからなるデータフィールドであり、“ライトサイクル”時にはデバッグ装置から対象プロセッサへ転送するデータを、“リードサイクル”時には対象プロセッサからデバッグ装置へ転送するデータを表す。第６のフィールドは１ビットからなるエンドビットで、これは“ＨＩＧＨ”であることでこの転送プロトコルが終了したことを表す。勿論、図４に示した通信プロトコルは、一例であり、たとえばアドレスのビット数を増やし、より多くのレジスタを割り付けることや、データのビット数を増やし１回に１６ビット長や３２ビットのデータを転送するようにしてもよい。また、図４ではデータの方向が双方向になるが、方向別に信号線を分離してもよい。
【００５６】
プロセッサ選択フィールドは、８ビットで構成されており、先頭のビットからＢｉｔ０、Ｂｉｔ１、・・・、Ｂｉｔ７とすると、それぞれがプロセッサＩＤと対応するように割り当てられている。つまり、プロセッサ０（プロセッサＩＤ０）がＢｉｔ０、プロセッサ１（プロセッサＩＤ１）がＢｉｔ１、・・・、プロセッサ７（プロセッサＩＤ７）がＢｉｔ７に対応する。すなわち、プロセッサ選択フィールドの各ビットに複数のプロセッサそれぞれに１対１に対応させてプロセッサを選択する情報が設定されている。デバッグ部２１のシフトレジスタ３２からは当該プロセッサに割り当てられたビットがＡＮＤ回路３７に出力されている。そして、プロセッサ選択フィールドのビットが“ＨＩＧＨ”である場合、対応するプロセッサがこの通信プロトコルの対象となる。反対にこのビットが“ＬＯＷ”である場合、対応するプロセッサがこの通信プロトコルの対象とならない。例えばＢｉｔ０乃至Ｂｉｔ７が、０１００１１００であった場合を考えると、Ｂｉｔ１、Ｂｉｔ４、Ｂｉｔ５が“ＨＩＧＨ”であるため、プロセッサ１、プロセッサ４、プロセッサ５が通信対象ということになる。
【００５７】
各プロセッサは上述した通信プロトコルがデバッグ装置１１から入力されると、デバッグ部２１において、送られてきたシリアルデータがシリアル受信制御部３１により各フィールドに分割される。各フィールドはそれぞれに備えられたプロセッサ選択フィールド用のシフトレジスタ３２、アドレスフィールド用のシフトレジスタ３３、Ｒ／Ｗビット用のシフトレジスタ３４、データフィールド用のシフトレジスタ３５にそれぞれ入力され、その出力はパラレルで取り出される。シリアル受信制御部３１は、スタートビットを検出すると、最初のフィールド分８ビットはプロセッサ選択フィールドとして、次の８ビットはアドレスフィールドとして、その次の１ビットはＲ／Ｗビットとして、次の８ビットはデータフィールドとして分解する。
【００５８】
プロセッサ選択フィールドからは１ビットだけが情報として取り出される。この１ビットは、プロセッサ固有のビット位置である。すなわち、プロセッサの選択情報が取り出される。つまり、プロセッサ０のデバッグ部であればＢｉｔ０、プロセッサ７のデバッグ部であればＢｉｔ７という具合である。アドレスフィールドは８ビットのパラレルデータとして取り出された後、デコーダ３６にてレジスタ選択信号に変換される。これはアドレスによって指定されたレジスタ（図示せず）に対するアクセス許可信号である。このアクセス許可信号は、さらに前述のプロセッサ選択フィールドから取り出された信号とのＡＮＤ回路３７による論理積の結果として各レジスタへ出力される。
【００５９】
各レジスタに対するアクセス許可信号は、プロセッサ選択フィールドから取り出された信号との論理積の結果であるため、プロセッサ選択フィールドから取り出された信号が“０”であった場合、アドレスのデコード結果に如何に関わらず“０”となり、レジスタアクセスが許可されない状態となる。逆にレジスタアクセスを成功させるためには、プロセッサ選択フィールドから取り出された信号が“１”である必要があり、これは通信プロトコルのプロセッサ選択フィールドで対象プロセッサに対応するビットを“ＨＩＧＨ”にする必要があるということになる。すなわち、選択手段が取り出した選択情報に基づいて前記アドレスフィールド及びデータフィールドを受信している。
【００６０】
なお、図１の形態に限らず、図５に示したようにデバッグ装置１１から２つのマルチプロセッサ部１２ａ、１２ｂに対してそれぞれ接続バスが設けられている場合においても、図１と同様に行うことができる。図５の場合、マルチプロセッサ部１２ａとマルチプロセッサ部１２ｂとの識別は、例えば、プロセッサＩＤの設定端子のうち下位２ビットを共通に００、０１、１０、１１まで設定し、上位１ビットはマルチプロセッサ部１２ａ、１２ｂの外部で設定すればよい。この場合、マルチプロセッサ部１２ａは上位１ビットを“０”に、マルチプロセッサ部１２ｂは上位１ビットを“１”に設定することでマルチプロセッサ部１２ａとマルチプロセッサ部１２ｂとの識別を行うとともに、プロセッサＩＤを０乃至７まで設定することができる。
【００６１】
本実施形態によれば、マルチプロセッサ装置１０の各プロセッサへの通信プロトコルに各プロセッサと１対１に対応したビットから構成されるプロセッサ選択フィールドを設けて、各プロセッサのデバッグ部２１でそのプロセッサ選択フィールドの自身に対応するビットに“ＨＩＧＨ”は設定された場合にのみ、アドレスフィールドに指定されているレジスタ等のアクセスを許可しているので、予めプロセッサを選択してからデータ転送を行う必要が無く、プロセッサ選択フィールドで複数の通信対象を選択し、複数の通信先に対して同一データを転送することが可能となるため、同一内容の設定が一度で済むことになり通信効率を向上させることができる。また、プロセッサ選択フィールドの各ビットが通信対象のプロセッサと１対１で対応しているため、１つのプロセッサに対する通信や複数のプロセッサに対する通信のどちらでも、通信対象の切替作業なしに通信プロトコルごとに異なる対象とするプロトコルを連続発行することができる。
【００６２】
［第２実施形態］
次に、本発明の第２の実施形態を図６乃至図８を参照して説明する。なお、前述した第１の実施形態と同一部分には、同一符号を付して説明を省略する。図６は、本発明の第１の実施形態にかかるマルチプロセッサ装置のブロック図である。図７は、図６に示されたマルチプロセッサ装置の中央エミュレーション装置の詳細を示したブロック図である。図８は、本実施形態の変形例を示すブロック図である。
【００６３】
本実施形態は、第１の実施形態に対して、マルチプロセッサ部１２に中央エミュレーション装置１３を設け、各プロセッサからはプロセッサ選択フィールドを処理する回路が削除されている点が異なる。
【００６４】
選択手段としての中央エミュレーション装置１３は、図７に示すようにシリアル受信制御部４１と、シフトレジスタ４２と、を備えている。
【００６５】
シリアル受信制御部４１は、入力された通信プロトコルからプロセッサ選択フィールドを識別し、後述するシフトレジスタ４２への制御信号を生成する。
【００６６】
シフトレジスタ４２は、通信プロトコルのうちプロセッサ選択フィールドが格納されるシフトレジスタであり、シリアル受信制御部４１によって制御される。
【００６７】
本実施形態におけるデバッグ装置１１とプロセッサ０ないしプロセッサ７間で行う通信のプロトコルは第１の実施形態に示した図４を同様である。中央エミュレーション装置１３に上述した通信プロトコルが入力されると、シリアル受信制御部３１は、スタートビットを検出して、最初のフィールド分８ビットはプロセッサ選択フィールドとして、シフトレジスタ４２へ格納する。
【００６８】
シフトレジスタ４２に格納されたプロセッサ選択フィールドはパラレルで取り出されプロセッサセレクト信号０乃至プロセッサセレクト信号７として各プロセッサに出力される。プロセッサセレクト信号０乃至プロセッサセレクト信号７は、パラレル化されたプロセッサ選択フィールドの情報そのままである。すなわち、プロセッサ選択フィールドのＢｉｔ０が“ＨＩＧＨ”（“１”）ならばプロセッサセレクト信号０は“ＨＩＧＨ” （“１”）となってプロセッサ０へ出力され、Ｂｉｔ０が“ＬＯＷ”（“０”）ならばプロセッサセレクト信号０は“ＬＯＷ” （“０”）となってプロセッサ１へ出力され、Ｂｉｔ７が“ＨＩＧＨ”（“１”）ならばプロセッサセレクト信号７は“ＨＩＧＨ” （“１”）となってプロセッサ７へ出力される。すなわち、プロセッサの外部に選択手段が１つだけ設けられ、該選択手段が取り出した選択情報が複数のプロセッサそれぞれに出力されている。
【００６９】
デバッグ装置１１から送られてきた通信プロトコルは、プロセッサ選択フィールド以降はそのままの内容で各プロセッサへ配信される。各プロセッサにおいては、プロセッサセレクト信号の“ＨＩＧＨ” （“１”）を入力されたプロセッサのみが、通信プロトコルの受信が可能となる。なお、プロセッサ選択フィールドは中央エミュレーション装置１３で除去してもよいし、各プロセッサで無視するように構成してもよい。
【００７０】
なお、本実施形態においても、図８に示したようにデバッグ装置１１から２つのマルチプロセッサ部１２ａ、１２ｂに対してそれぞれ接続バスが設けられている場合においても、図６と同様に行うことができる。
【００７１】
本実施例によれば、マルチプロセッサ装置１０に中央エミュレーション装置１３を１つだけ設けて、中央エミュレーション装置１３でプロセッサ選択フィールドを検出して各プロセッサへプロセッサセレクト信号を出力しているので、各プロセッサにプロセッサ選択フィールド処理用の回路を設ける必要が無くマルチプロセッサ部１２の回路規模を縮小することができる。特にマルチプロセッサ部１２をひとつの半導体集積回路で構成した場合に、回路規模を縮小することで面積なども縮小することができることから好適である。
【００７２】
［第３実施形態］
次に、本発明の第３の実施形態を図９乃至図１１を参照して説明する。なお、前述した第１、第２の実施形態と同一部分には、同一符号を付して説明を省略する。図９は、本発明の第３の実施形態にかかるマルチプロセッサ装置のプロセッサ内のデバッグ部のブロック図である。図１０は、図９に示されたデバッグ部のプロセッサ選択レジスタのビット割り当てを示した説明図である。図１１は、本実施形態における通信プロトコルを示したタイミングチャートである。
【００７３】
本実施形態は、第１の実施形態に対して、デバッグ部２１の構成が一部異なり、プロセッサ選択フィールド用のシフトレジスタ３２が削除され、プロセッサ選択レジスタ５１が設けられている。
【００７４】
プロセッサ選択レジスタ５１は、図１０に示すようなビット構成になっており、ｂｉｔ０がプロセッサ０（Ｐ０）、ｂｉｔ１がプロセッサ１（Ｐ１）、・・・、ｂｉｔ７がプロセッサ７（Ｐ７）を示している。つまり、プロセッサ選択フィールドと同様に複数のプロセッサと１対１に対応したビットが定められている。
【００７５】
本実施形態におけるデバッグ装置１１とプロセッサ０乃至プロセッサ７間で行う通信のプロトコルを図１１に示す。図１１に示した通信プロトコルでは１つの転送単位において、従来技術に示した通信プロトコルと同様に５つのフィールドから構成される。すなわち、第１のフィールドは１ビットからなるスタートビットで、これは“ＬＯＷ”であることで転送プロトコルが開始されることを表す。第２のフィールドは８ビットからなるアドレスフィールドで、これはプロセッサのどのレジスタとアクセスするかを表す。アドレスフィールドは８ビットであるので２５６通りのレジスタを指定可能である。第３のフィールドは１ビットからなるＲ／Ｗビットで、これはこのプロトコルがデバッグ装置から対象プロセッサにデータを転送する“ライトサイクル”であれば“ＬＯＷ”に、対象プロセッサからデバッグ装置へデータを転送する“リードサイクル”であれば“ＨＩＧＨ”とすることで、それぞれのサイクルを表す。第４のフィールドは８ビットからなるデータフィールドであり、“ライトサイクル”時にはデバッグ装置から対象プロセッサへ転送するデータを、“リードサイクル”時には対象プロセッサからデバッグ装置へ転送するデータを表す。第６のフィールドは１ビットからなるエンドビットで、これは“ＨＩＧＨ”であることでこの転送プロトコルが終了したことを表す。
【００７６】
本実施形態では、まず、図１１の通信プロトコルを用いて予めプロセッサ選択レジスタ５１に対して設定を行い、以降の通信プロトコルでどのプロセッサにアクセスするかを宣言する。プロセッサ選択レジスタ５１は、ＡＮＤ回路３７の前の段階のレジスタセレクトを使用しているため、プロセッサ選択レジスタのビット内容の如何に関わらず、アドレスさえ一致すれば常に全てのプロセッサへアクセス可能である。
【００７７】
各プロセッサは上述した通信プロトコルが入力されると、デバッグ部２１において、送られてきたシリアルデータがシリアル受信制御部３１により各フィールドに分割される。各フィールドはそれぞれに備えられたアドレスフィールド用のシフトレジスタ３３、Ｒ／Ｗビット用のシフトレジスタ３４、データフィールド用のシフトレジスタにそれぞれ入力され、その出力はパラレルで取り出される。シリアル受信制御部３１は、スタートビットを検出すると、最初のフィールド分８ビットはアドレスフィールドとして、その次の１ビットはＲ／Ｗビットとして、次の８ビットはデータフィールドとして分解する。
【００７８】
アドレスフィールドは８ビットのパラレルデータとして取り出された後、デコーダにてレジスタ選択信号に変換される。これはアドレスによって指定されたレジスタ（図示せず）に対するアクセス許可信号である。このアクセス許可信号は、さらに前述のプロセッサ選択レジスタ５１から取り出された信号との論理積回路の結果として各レジスタへ出力されるため、プロセッサ選択レジスタ５１から取り出された信号が“０”であった場合、アドレスのデコード結果如何に関わらず“０”となり、レジスタアクセスが許可されない状態となる。逆にレジスタアクセスを成功させるためには、プロセッサ選択レジスタ５１から取り出された信号が“１”である必要があり、これは目的の通信プロトコルの事前に、プロセッサ選択レジスタ５１で対象プロセッサに対応するビットを“ＨＩＧＨ”にする必要があるということになる。すなわち、プロセッサ選択レジスタの設定に基づいてアドレスフィールド及びデータフィールドを受信している。
【００７９】
本実施形態によれば、マルチプロセッサ装置１０の各プロセッサのデバッグ部２１に各プロセッサと１対１に対応したビットから構成されるプロセッサ選択レジスタ５１を設けて、そのプロセッサ選択フィールド５１の自身に対応するビットに“ＨＩＧＨ”が設定された場合にのみ、アドレスフィールドに指定されているレジスタ等のアクセスを許可しているので、従来は予めプロセッサを選択する通信プロトコルでは１つのプロセッサしか選択できなかったのが、プロセッサ選択レジスタ５１に予め複数の通信対象を設定することで、複数の通信先に対して同一データを転送することができるため、同一内容の設定が一度で済むことになり通信効率が向上する。また、通信プロトコルにプロセッサ選択フィールドが必要ないため、通信プロトコルのデータ列を短縮でき、より通信の効率を向上させることができる。
【００８０】
［第４実施形態］
次に、本発明の第４の実施形態を図１２を参照して説明する。なお、前述した第１乃至第３の実施形態と同一部分には、同一符号を付して説明を省略する。図１２は、本発明の第３の実施形態にかかるマルチプロセッサ装置の中央エミュレーション装置のブロック図である。
【００８１】
本実施形態は、第２の実施形態と第３の実施形態を組み合わせたものである。つまり、図１２に示すように、中央エミュレーション装置１３にシフトレジスタ４２に代わってプロセッサ選択レジスタ４７が設けられている。また、プロセッサ選択レジスタ４７へのアクセスのため、シフトレジスタ４３、４４、４５及びデコーダ４６が追加されている。プロセッサ選択レジスタ４７のビット割付は第３の実施形態のプロセッサ選択レジスタ５１と同様であり、プロセッサ選択レジスタ４７の出力がプロセッサセレクト信号０乃至プロセッサセレクト信号７となる。すなわち、プロセッサ選択レジスタが１つだけ設けられ、該プロセッサ選択レジスタが取り出した選択情報が複数のプロセッサそれぞれに出力されている。
【００８２】
本実施形態によれば、マルチプロセッサ装置１０に中央エミュレーション装置１３に各プロセッサと１対１に対応したビットから構成されるプロセッサ選択レジスタ４７を設けて、プロセッサ選択レジスタ４７の設定に応じて各プロセッサへプロセッサセレクト信号を出力しているので、各プロセッサにプロセッサ選択レジスタを設ける必要が無くマルチプロセッサ部１２の回路規模を縮小することができる。また、複数の通信先に対して同一データを転送することができるため、同一内容の設定が一度で済むことになり通信効率が向上する。また、通信プロトコルにプロセッサ選択フィールドが必要ないため、通信プロトコルのデータ列を短縮でき、より通信の効率を向上させることができる。
【００８３】
［第５実施形態］
次に、本発明の第５の実施形態を図１３乃至１５を参照して説明する。なお、前述した第１乃至第４の実施形態と同一部分には、同一符号を付して説明を省略する。図１３は、本発明の第４の実施形態にかかるマルチプロセッサ装置のプロセッサのデバッグ部のブロック図である。図１４は、図１３に示されたデバッグ部のプロセッサ選択レジスタのビット割り当てを示した説明図である。図１５は、本実施形態における通信プロトコルを示したタイミングチャートである。
【００８４】
本実施形態は、図３の実施形態に対して、プロセッサ選択レジスタを複数設けている点が異なる。そのために、デバッグ部２１には、シフトレジスタ３８と、セットデコーダ３９と、第１プロセッサ選択レジスタ３ａと、第２プロセッサ選択レジスタ３ｂと、第３プロセッサ選択レジスタ３ｃと、第４プロセッサ選択レジスタ３ｄと、選択器３ｅと、が追加されている。
【００８５】
シフトレジスタ３８は、後述する通信プロトコル内のセット選択フィールドが格納されるレジスタでありシリアル受信制御部３１で制御される。
【００８６】
セットデコーダ３９は、シフトレジスタ３８に格納されたセット選択フィールドをデコードするデコーダである。
【００８７】
第１プロセッサ選択レジスタ３ａ乃至第４プロセッサ選択レジスタ３ｄは、複数あるプロセッサ選択レジスタであり、それぞれ単体ではビット割付等の機能は図１４に示すように第３の実施形態と同様に複数のプロセッサのそれぞれに１対１に対応したビットが定められている。
【００８８】
選択器３ｅは、第１プロセッサ選択レジスタ３ａ乃至第４プロセッサ選択レジスタ３ｄまでの所定ビットの出力をセットデコーダ３９の出力により１つを選択してＡＮＤ回路３７に出力する。例えば、プロセッサ０の場合は、第１プロセッサ選択レジスタ３ａ乃至第４プロセッサ選択レジスタ３ｄのｂｉｔ０がそれぞれ入力されて選択される。
【００８９】
次に、本実施形態におけるデバッグ装置１１とプロセッサ０ないしプロセッサ７間で行う通信のプロトコルを図１５に示す。図１５に示した通信プロトコルでは１つの転送単位において、６つのフィールドから構成される。
【００９０】
第１のフィールドは１ビットからなるスタートビットで、これは“ＬＯＷ”であることで転送プロトコルが開始されることを表す。第２のフィールドは２ビットからなるセット選択フィールドで、このプロトコルがどのプロセッサ選択レジスタを選択しているかを表す。第３のフィールドは８ビットからなるアドレスフィールドで、これはプロセッサのどのレジスタとアクセスするかを表す。アドレスフィールドは８ビットであるので２５６通りのレジスタを指定可能である。第４のフィールドは１ビットからなるＲ／Ｗビットで、これはこのプロトコルがデバッグ装置から対象プロセッサにデータを転送する“ライトサイクル”であれば“ＬＯＷ”に、対象プロセッサからデバッグ装置へデータを転送する“リードサイクル”であれば“ＨＩＧＨ”とすることで、それぞれのサイクルを表す。第５のフィールドは８ビットからなるデータフィールドであり、“ライトサイクル”時にはデバッグ装置から対象プロセッサへ転送するデータを、“リードサイクル”時には対象プロセッサからデバッグ装置へ転送するデータを表す。第６のフィールドは１ビットからなるエンドビットで、これは“ＨＩＧＨ”であることでこの転送プロトコルが終了したことを表す。
【００９１】
セット選択フィールドは、２ビットで構成されており、先頭のビットからＢｉｔ０、Ｂｉｔ１として、この２ビットの組み合わせで第１プロセッサ選択レジスタ乃至第４プロセッサ選択レジスタを選択するように設定されている。例えば、セット選択フィールドが“００”の場合は第１プロセッサ選択レジスタ３ａ、セット選択フィールドが“０１”の場合は第２プロセッサ選択レジスタ３ｂ、セット選択フィールドが“１０”の場合は第３プロセッサ選択レジスタ３ｃ、セット選択フィールドが“１１”の場合は第４プロセッサ選択レジスタ３ｄが選択される。つまり、第３の実施形態では従来技術の通信プロトコルを用いていたが、本実施形態では、プロセッサ選択レジスタを選択するために第１の実施形態のプロトコルのうち、プロセッサ選択フィールドをセット選択フィールドに変更して、複数のプロセッサ選択レジスタのうち１つを指定する情報を設定して出力している。
【００９２】
各プロセッサは上述した通信プロトコルが入力されると、デバッグ部２１において、送られてきたシリアルデータはシリアル受信制御部３１により各フィールドに分割される。各フィールドはそれぞれに備えられたセット選択フィールド用シフトレジスタ３８、アドレスフィールド用シフトレジスタ３３、Ｒ／Ｗビット用シフトレジスタ３４、データフィールド用シフトレジスタ３５にそれぞれ入力され、その出力はパラレルで取り出される。シリアル受信制御部３１は、スタートビットを検出すると、最初のフィールド分２ビットはセット選択フィールドとして、次の８ビットはアドレスフィールド、として次の１ビットはＲ／Ｗビットとして、次の８ビットはデータフィールドとして分解する。
【００９３】
セット選択フィールドは２ビットのパラレルデータとして取り出された後、セットデコーダ４９にてセット選択信号に変換されて選択器３ｅのコントロール信号となる。アドレスフィールドは８ビットのパラレルデータとして取り出された後、デコーダ３６にてレジスタ選択信号に変換される。これはアドレスによって指定されたレジスタ（図示せず）に対するアクセス許可信号である。このアクセス許可信号は、選択器３ｅの出力信号とＡＮＤ回路３７で論理積をとって各レジスタへ出力される。
【００９４】
４本のプロセッサ選択レジスタへのレジスタセレクトは、図１３に示されているとおり、ＡＮＤ回路３７の結果ではなく、デコーダ３６直後のレジスタセレクトを使っている。プロセッサ選択レジスタのビット内容の如何、あるいはセット選択フィールドの如何に関わらず、アドレスさえ一致すれば常にアクセス可能である。第１プロセッサ選択レジスタ３ａ乃至第４プロセッサ選択レジスタ３ｄを除く各レジスタへのアクセス許可信号は、選択器３ｅの出力信号とのＡＮＤ回路の結果として出力されているため、選択器３ｅの出力信号が“０”であった場合、アドレスのデコード結果如何に関わらず“０”となり、レジスタアクセスが許可されない状態となる。逆にレジスタアクセスを成功させるためには、選択器３ｅの出力信号が“１”である必要があり、これは目的の通信プロトコルの事前に、プロセッサ選択レジスタで対象プロセッサに対応するビットを“ＨＩＧＨ”にする必要があるとともに、その設定を行ったプロセッサ選択レジスタを通信プロトコルのセット選択フィールドで指定する必要があるということになる。
【００９５】
本実施形態によれば、マルチプロセッサ装置１０の各プロセッサのデバッグ部２１に各プロセッサと１対１に対応したビットから構成される第１プロセッサ選択レジスタ３ａ乃至第４プロセッサ選択レジスタ３ｄを設けて、予め各プロセッサ選択レジスタにプロセッサ選択セットをそれぞれ設定しておき、通信プロトコルのセット選択フィールドで第１プロセッサ選択レジスタ３ａ乃至プロセッサ選択レジスタ３ｄを選択しているので、通信先の組み合わせの設定を再設定することなく再利用でき、通信全体におけるプロセッサ選択レジスタの更新頻度が下がり、通信効率が向上する。また、通信プロトコルをセット選択フィールドとしているので、プロセッサと１対１に対応させたプロセッサ選択フィールドのビット幅より小さくすることができるので、通信プロトコルのデータ列を短縮でき、より通信の効率を向上させることができる。
【００９６】
［第６の実施形態］
次に、本発明の第６の実施形態を図１６を参照して説明する。なお、前述した第１乃至第５の実施形態と同一部分には、同一符号を付して説明を省略する。図１６は、本発明の第６の実施形態にかかるマルチプロセッサ装置の中央エミュレーション装置のブロック図である。
【００９７】
本実施形態は、第２の実施形態と第４の実施形態と第５の実施形態を組み合わせたものである、つまり、中央エミュレーション装置１３に複数のプロセッサ選択レジスタである第１プロセッサ選択レジスタ４ａ乃至第４プロセッサ選択レジスタ４ｄを設けている。また、図１６に示すように第１プロセッサ選択レジスタ４ａ乃至第４プロセッサ選択レジスタ４ｄへのアクセスのため、シフトレジスタ４３、４４、４５及びデコーダ４６に加え、シフトレジスタ４８とセットデコーダ４９と、選択器４ｅ、４ｆ、４ｇ、４ｈ、４ｉ、４ｊ、４ｋ、４ｍと、が追加されている。各プロセッサ選択レジスタのビット割付は第５の実施形態と同様であり、選択器４ｅ、４ｆ、４ｇ、４ｈ、４ｉ、４ｊ、４ｋ、４ｍは各プロセッサ選択レジスタの同じビットが入力され、セットデコーダ４９のデコード結果により選択されてプロセッサセレクト信号０乃至プロセッサセレクト信号７となる。
【００９８】
本実施形態によれば、マルチプロセッサ装置１０に中央エミュレーション装置１３に各プロセッサと１対１に対応したビットから構成される第１プロセッサ選択レジスタ３ａ乃至第４プロセッサ選択レジスタ３ｄを設けて、予め各プロセッサ選択レジスタにプロセッサ選択セットをそれぞれ設定しておき、通信プロトコルのセット選択フィールドで第１プロセッサ選択レジスタ３ａ乃至プロセッサ選択レジスタ３ｄを選択しているので、各プロセッサにセット選択フィールドの処理回路を設ける必要が無くマルチプロセッサ装置１０の回路規模を縮小することができる。また、複数の通信先に対して同一データを転送することができるため、同一内容の設定が一度で済むことになり通信効率が向上する。また、通信プロトコルをセット選択フィールドとしているので、プロセッサと１対１に対応させたプロセッサ選択フィールドのビット幅より小さくすることができるので、通信プロトコルのデータ列を短縮でき、より通信の効率を向上させることができる。
【００９９】
なお、上述した実施形態では出力手段としてマルチプロセッサ部１２の外部に接続されたデバッグ装置１１としていたが、マルチプロセッサ部１２内部に通信プロトコルを発行する手段を内蔵してもよい。或いは、各プロセッサに通信プロトコルを発行する手段を備えてもよい。
【０１００】
また、上述した実施形態では、マルチプロセッサ部１２をデバッグするシステムで説明したが、それに限らず、例えば、マルチプロセッサ部１２のブートやパラメータ設定などのために上位プロセッサやシステム等からプログラムやデータ等をダウンロードする際に適用してもよい。
【０１０１】
なお、本発明は上記実施形態に限定されるものではない。即ち、本発明の骨子を逸脱しない範囲で種々変形して実施することができる。
【図面の簡単な説明】
【０１０２】
【図１】本発明の第１の実施形態にかかるマルチプロセッサ装置のブロック図である。
【図２】図１に示したマルチプロセッサ装置のプロセッサの詳細を示したブロック図である。
【図３】図２に示したプロセッサのデバッグ部の詳細を示す説明図である。
【図４】図１に示したマルチプロセッサ装置における通信プロトコルを示したタイミングチャートである。
【図５】本実施形態の変形例を示すブロック図である。
【図６】本発明の第１の実施形態にかかるマルチプロセッサ装置のブロック図である。
【図７】図６に示されたマルチプロセッサ装置の中央エミュレーション装置１３の詳細を示したブロック図である。
【図８】本実施形態の変形例を示すブロック図である。
【図９】本発明の第３の実施形態にかかるマルチプロセッサ装置のプロセッサ内のデバッグ部のブロック図である。
【図１０】図９に示されたデバッグ部のプロセッサ選択レジスタのビット割り当てを示した説明図である。
【図１１】本実施形態における通信プロトコルを示したタイミングチャートである。
【図１２】本発明の第３の実施形態にかかるマルチプロセッサ装置の中央エミュレーション装置のブロック図である。
【図１３】本発明の第４の実施形態にかかるマルチプロセッサ装置のプロセッサのデバッグ部のブロック図である。
【図１４】図１３に示されたデバッグ部のプロセッサ選択レジスタのビット割り当てを示した説明図である。
【図１５】本実施形態における通信プロトコルを示したタイミングチャートである。
【図１６】本発明の第６の実施形態にかかるマルチプロセッサ装置の中央エミュレーション装置のブロック図である。
【図１７】従来のマルチプロセッサ装置のブロック図である。
【図１８】従来のマルチプロセッサ装置における通信プロトコルを示したタイミングチャートである。
【図１９】図１７に示されたマルチプロセッサ装置のＤＩＦのブロック図である。
【符号の説明】
【０１０３】
０〜７      プロセッサ
１０        マルチプロセッサ装置
１１        デバッグ装置（出力手段）
１３        中央エミュレーション装置（選択手段）
２１        デバッグ部（選択手段、受信手段）
３ａ        第１プロセッサ選択レジスタ（プロセッサ選択レジスタ）
３ｂ        第２プロセッサ選択レジスタ（プロセッサ選択レジスタ）
３ｃ        第３プロセッサ選択レジスタ（プロセッサ選択レジスタ）
３ｄ        第４プロセッサ選択レジスタ（プロセッサ選択レジスタ）
４７        プロセッサ選択レジスタ
４ａ        第１プロセッサ選択レジスタ（プロセッサ選択レジスタ）
４ｂ        第２プロセッサ選択レジスタ（プロセッサ選択レジスタ）
４ｃ        第３プロセッサ選択レジスタ（プロセッサ選択レジスタ）
４ｄ        第４プロセッサ選択レジスタ（プロセッサ選択レジスタ）
５１        プロセッサ選択レジスタ
【図１】
2010015345.tif 000003
【図２】
2010015345.tif 000004
【図３】
2010015345.tif 000005
【図４】
2010015345.tif 000006
【図５】
2010015345.tif 000007
【図６】
2010015345.tif 000008
【図７】
2010015345.tif 000009
【図８】
2010015345.tif 000010
【図９】
2010015345.tif 000011
【図１０】
2010015345.tif 000012
【図１１】
2010015345.tif 000013
【図１２】
2010015345.tif 000014
【図１３】
2010015345.tif 000015
【図１４】
2010015345.tif 000016
【図１５】
2010015345.tif 000017
【図１６】
2010015345.tif 000018
【図１７】
2010015345.tif 000019
【図１８】
2010015345.tif 000020
【図１９】
2010015345.tif 000021