JP2004534323A - マルチプロセッサシステム及びマルチプロセッサシステムの動作方法 - Google Patents

マルチプロセッサシステム及びマルチプロセッサシステムの動作方法 Download PDF

Info

Publication number
JP2004534323A
JP2004534323A JP2003511119A JP2003511119A JP2004534323A JP 2004534323 A JP2004534323 A JP 2004534323A JP 2003511119 A JP2003511119 A JP 2003511119A JP 2003511119 A JP2003511119 A JP 2003511119A JP 2004534323 A JP2004534323 A JP 2004534323A
Authority
JP
Japan
Prior art keywords
processor
synchronization
counter
buffer
multiprocessor system
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.)
Ceased
Application number
JP2003511119A
Other languages
English (en)
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.)
Koninklijke Philips NV
Original Assignee
Koninklijke Philips Electronics NV
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 Koninklijke Philips Electronics NV filed Critical Koninklijke Philips Electronics NV
Publication of JP2004534323A publication Critical patent/JP2004534323A/ja
Ceased legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F5/06Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor
    • G06F5/10Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor having a sequence of storage locations each being individually accessible for both enqueue and dequeue operations, e.g. using random access memory
    • G06F5/12Means for monitoring the fill level; Means for resolving contention, i.e. conflicts between simultaneous enqueue and dequeue operations
    • 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/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2205/00Indexing scheme relating to group G06F5/00; Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F2205/10Indexing scheme relating to groups G06F5/10 - G06F5/14
    • G06F2205/102Avoiding metastability, i.e. preventing hazards, e.g. by using Gray code counters

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Multi Processors (AREA)
  • Hardware Redundancy (AREA)
  • Communication Control (AREA)
  • Synchronisation In Digital Transmission Systems (AREA)
  • Advance Control (AREA)
  • Computer And Data Communications (AREA)

Abstract

本発明に従ったマルチプロセッサシステムは、少なくとも、専用プロセッサ1.6と、さらなるプロセッサ1.3と、プロセッサ間で共有されるメモリ1.5とを有する。共有メモリ1.5及びプロセッサ1.6、1.3は相互接続ネットワーク1.7へ接続される。これらのプロセッサは同期プロトコルに従ってバッファ2.1を介して、データを交換する。専用プロセッサ1.3は同期プロトコルに関わる情報を管理する機能を有し、この情報の少なくとも一部のコピーが共有メモリ2.1に維持される。

Description

【技術分野】
【0001】
本発明はマルチプロセッサシステム及びマルチプロセッサの動作方法に関する。
【背景技術】
【0002】
信号処理機能は、MPEG-x, DVB, DAB, UMTSのような標準に基づく多くの製品に対する性能要件を定める。信号処理機能は、これらの製品の信号処理部を効率的に実現することを要求する。しかしながら、標準が進展し、また、市場の要求が変化するため、その実現には、柔軟性と拡張が同様に要求される。データのストリームが処理されるので、マクロパイプラインのセットアップはこれらの用途をモデル化する自然な方法である。このセットアップにおいて、機能(タスク)はステージであり、パイプラインを形成するためにステージ間にはバッファが存在する。全てのステージが並列に動作可能であるため、これはタスクレベルの並列処理(TLP)を利用する方法である。
【0003】
複数のプロセッサを含むマルチプロセッサシステムは、そのようなマクロパイプラインの実現に非常に適している。マルチプロセッサシステムは、例えばRISCプロセッサあるいはVLIWプロセッサといったプログラム可能なプロセッサのようないくつかのタイプのプロセッサ、あるいは専用ハードウェアを含み得る。あるプロセッサは、特定のタスク、あるいは時分割形式において1タスク以上を実行し得る。マルチプロセッサシステムにおける信号処理機能及びそれらの実行の複雑性が益々高まると、そのようなシステムをテスト及びデバッグすることが益々困難になる。
【発明の開示】
【発明が解決しようとする課題】
【0004】
本発明の目的は、比較的容易にデバッグを実行可能なマルチプロセッサシステム及びデバッグを容易にしたマルチプロセッサシステムの動作方法を提供することである。
【課題を解決するための手段】
【0005】
この目的に応じて、本発明に従ったマルチプロセッサは、クレーム1において請求されている。この目的に応じて、本発明に従った方法は、クレーム8において請求されている。
【0006】
マルチプロセッサシステムにおいて実行されるマクロパイプラインにおいて、データはプロセッサ間で、例えばバッファを介して、交換されなければならない。同期プロトコルは、パイプラインにおいて、第1のプロセッサのデータ生成を、第1のプロセッサに続く第2のプロセッサのデータ消費と同期させる必要がある。そのような同期プロトコルは、同期情報、例えばセマフォ(semaphore)のペアを用いる。例えば、第1のセマフォは、新しいデータを書き込むために第1のプロセッサに利用可能なバッファエレメントの数を示し、第2のセマフォは、読出しのために第2のプロセッサに利用可能なバッファエレメントの数を示す。
【0007】
専用プロセッサを含む装置において、管理情報は、最も重要なところに記憶されることが好ましい。例えば、もし専用プロセッサがバッファにデータを書き込む構成であるのならば、第1の信号は、そのプロセッサへ、例えば専用レジスタの形で、早くアクセス可能であるべきである。しかしながら、システムのデバッグが必要なとき、あるいは例えばパイプラインにおけるボトルネックを発見するためにシステムをテストしなければならないとき、この点在した情報をトレースすることは非常に困難である。それ故、本発明によれば、少なくともこの管理情報のペアが共有メモリにおいて維持される。この方法では、より関連した情報がクラスタ化された形(fashion)で利用可能なように、システム動作の解析が非常に簡易化される、また、この情報はメモリ内に存在するので、ソフトウェアデバッガによってアクセス可能である。
【0008】
米国特許第6,173,307号明細書は、複数のプロデューサと複数のコンシューマとによって共有される循環待ち行列を含むマルチプロセッサシステムを開示している。プロデューサあるいはコンシューマは、待ち行列の正確性を阻害することなく、いつでもプロデューサあるいはコンシューマよりも先に入手する(preempt)ことを許容され得る。
【0009】
さらに、米国特許第4,916,658号明細書は、動的に制御されるバッファを含む装置について述べている。そのバッファは、記憶されるべき次の記憶位置を指示する第1のインジケータと、検索されるべき次の記憶位置を示す第2のインジケータと、記憶に利用可能な位置の数及び検索に利用可能な位置の数を供給する回路とを備えた回路を伴って、いくつかの記憶位置からなるデータワードを記憶するのに好適である。
【0010】
マルチプロセッサシステムにおいて、タスクの数はプロセッサの数より大きくあり得るため、各プロセッサは1以上のタスクを実行し得る。さらに、マルチプロセッサシステムは、例えばシステムによって処理されるデータストリームのビットレートの変化に適合するために、動的に再構成され得る。そのような場合、請求項2に請求された本発明に従ったマルチプロセッサシステムの実施例は、有利である。システムを動的に再構成する場合、あるタスクの通信パートナをハードウェアタスク(例えばシェルに記憶された、分配された情報を用いる)からソフトウェアタスク(共有メモリにおける集中化された情報(centralized info)を用いる)に変更することは、両方のフォーマットが既に共存するため、非常に円滑になされ得る。マルチタスクハードウェア装置に対して、各タスクは、シェル(レジスタ)に記憶された、各タスクが使用するバッファの管理情報のプライベートコピーを有する。これは、シェルのサイズを増大する。これは、タスク間でレジスタを共有することによって避けられ得る。しかしながら、タスクがスワップアウトされるごとに、バッファの現在の状態は明白にメモリに保存されなければならず、そして、再びスケジューリングされるごとに、全ての状態が再び回復されなければならない。このことは、実行性能上、負の影響を有する。メモリにおけるバッファ管理情報の集中化されたコピーを常に保つことによって、タスク切替時にバッファ状態を保存することは、それがそこに既に存在しまた最新であるため、要求されない。
【0011】
クレーム3は同期プロトコルの第1の実現例について述べている。この実現例において、各プロセッサはそれぞれ同期カウンタを維持する。生成プロセッサ(即ちトークンを書き込む)は、第1の同期カウンタNpを維持し、消費プロセッサ(この情報を読み込む)は、第2の同期カウンタNcを維持する。情報の交換に用いられるバッファはサイズNb、を有し、第1のプロセッサに利用可能なトークンの数N1は
(1)N1=Nc-Np mod Nb
第2のプロセッサに利用可能なトークンの数N2は
(2)N2=Np-Nc mod Nb
で与えられる。
【0012】
生成プロセッサがトークンを書き込み、これを消費プロセッサに解放するごとに、それは、第1の同期カウンタNpを更新し、消費プロセッサがトークンを読み込み、それを生成プロセッサに解放するごとに、それは第2の同期カウンタNcを更新する。
【0013】
いつでもプロセッサは、第1の命令(要求)を発行することによって、使用可能なトークンの数を検査可能である。この結果、両方の同期カウンタを比較することによって、所定量のバッファスペースが利用可能であるかどうかを確認できる。検査のために、第1のプロセッサは式1を用い、第2のプロセッサは式2を用いる。
【0014】
第2の命令(解放)の結果、解放されたトークンの数で、プロセッサに割り当てられた同期カウンタが増大する。
【0015】
第1及び第2の命令は、ソフトウェアにおける関数呼び出しの形で、あるいはハードウェアにおける専用信号を用いて、実行され得る。
【0016】
詳細な具体化がクレーム4に記述されている。この具体化において、少なくとも1つのプロセッサは、例えばランダムアクセスあるいは一時的なデータの記憶のため、任意に使用できるバッファ内にゾーンを予約可能である。
【0017】
解放されたトークンの数を維持する代わりに、クレーム3の具体化のように、利用可能なトークンの数をカウンタにおいて維持することが可能である。この場合、書き込みのために利用可能なトークンの数に対するカウンタは、消費プロセッサによって増大させられ、生成プロセッサによって減少させられる。読み出しのために利用可能なトークンの数に対するカウンタは、生成プロセッサによって増大させられ、消費プロセッサによって減少させられる。この具体化はクレーム5に記載される。
【0018】
共有メモリにおけるコピーは、任意の手段によって維持され得るが、専用プロセッサがさらに共有メモリ内のコピーを更新することが好ましい。専用プロセッサは、どの瞬間に管理情報において変化が生じたかを‘知る(knows)’。
【0019】
例えば管理情報のコピーのために用いられたのと同じメモリを用いて、バッファを共有メモリ内に配置することが好ましい。
【0020】
プロセッサに結合されたシェルは、プロセッサ自身によって処理されなければならない割込みの数を減少し得る点において、マルチタスクを容易にする。これは、アイドル状態のプロセッサが不必要に活性化されなければならない回数、あるいは、処理中の別のタスクにプロセッサが割り込まなければならない回数を減少する。この方法において、プロセッサの効率が改善される。
【0021】
割込み信号のタイプとそのコード化方法とに依存する割込み信号を選択するためのそのようなシェルを実現するために、いくつかの選択が可能である。1つの実施例では、割込み信号はプロセッサのデータチャネルを示す。これを実行する実際的な方法は、プロセッサの各入力チャネルに対してレジスタ内にビットを割り当てることによる。例えば32ビットレジスタは32の入力チャネルをサポートし得、例えばチャネル0はビット0が割り当てられ、チャネル1はレジスタのビット1が割り当てられる。他のプロセッサがプロセッサのチャネルkを示す割込み信号を送ったとき、信号レジスタの対応するビットkがセットされる。受取り側のプロセッサのシェルは、マスクレジスタを用いることによって特定の割込み信号を選択でき、各ビットは、特定のチャネルに対して、プロセッサが割込みを無視するか否かを表し、例えばもしチャネル2に対応するビットがマスクされていれば、この信号はそのプロセッサに割込みを生じさせず、ウェイクアップは起こらない。この例において、プロセッサは処理でビジーであり得、そこでは、全てのビットはマスクされ、あるいは、プロセッサ/タスクはチャネル1において満たされた/空トークンを待機中であり得、その場合、チャネル2で何が生じるかには関心がない。
【0022】
その信号及びマスクレジスタは、サポートされるべきチャネルの数に依存する任意数のビットを有し得る。代替的に、番号により各チャネルをサポートすることが、また、プロセッサがそのチャネルに対して割り込まれるべきか否かを決定するためにリストあるいはルックアップテーブルを用いることが可能である。しかしながら、これは、より複雑な解決法である。
【0023】
チャネル番号によって割込み信号を識別する代わりに、割込み信号はタスク番号によって識別可能である。この実施例では、特定のタスクに対する信号を伴う全てのチャネルは、シェルの信号レジスタに同一のビットをセットする。この方法において、信号レジスタ内のビットの数に等しい多くのタスクは、独自にアドレス指定され、各タスクは1以上のチャネルを有し得る。待機状態は、独自のチャネル識別を伴った場合と比べて特定的でないが、不必要なウェイクアップの数は依然として小さく、より多くのチャネルが制限されたハードウェアでサポートされ得る。
【0024】
もちろん、関係が明確である限り、タスク番号はビット番号と同一である必要はない(その方法で実行することが実に簡易である)。さらに、タスク(のグループ)は、同じ信号割込み番号を共有可能である。
【0025】
受け取り側によって実行されるタスクを識別する代わりに、送り側のタスク識別番号が伝えられ得る(signal)。その場合、受け取り側のプロセッサは、特定のタスクに対してではなく特定のタスクからの割込み信号を選択し得る。それは、外部タスクの数や、プロセッサ自身の選択に基づくタスクの数すなわち最も有用/効率的と思われるものに依存する。
【発明を実施するための最良の形態】
【0026】
以下、図面を参照しながら、本発明の特徴について説明する。
【0027】
図1は、少なくとも第1の処理手段1.6と第2の処理手段1.3とを含むデータ処理装置を示す。
【0028】
第1の処理装置、即ち特定用途プロセッサ1.6は、メモリ1.5内に配置されたバッファ手段においてトークンを利用可能にすることによってデータを供給可能である。トークンは、さらなる処理のために、第2の処理手段1.3、即ちデジタルシグナルプロセッサによって読出し可能である。データ処理装置は、さらにRISCプロセッサ1.1、VLIWプロセッサ1.2及びASIP1.4を備える。VLIWプロセッサ1.2、DSP1.3、ASIP1.4、メモリ1.5及びASIC1.6は第1のバス1.7を介して相互に接続されている。RISCプロセッサ1.1は、第2のバス1.8と接続され、第2のバス1.8は、ブリッジ1.9を介して反対側の第1のバス1.7に接続されている。さらなるメモリ1.10及び周辺装置1.11は第2のバス1.8に接続されている。プロセッサは、補助ユニットを有し得る。例えば、RISCプロセッサ1.1は命令キャッシュ1.1.1及びデータキャッシュ1.1.2を有する。同様に、VLIWプロセッサは命令キャッシュ1.2.1及びデータキャッシュ1.2.2を有する。DSP1.3は命令キャッシュ1.3.1、ローカルメモリ1.3.2及びアドレスデコーダ1.3.3を有する。ASIP1.4はローカルメモリ1.4.1及びアドレスデコーダ1.6.2を有する。ASIC1.6はローカルメモリ1.6.1及びアドレスデコーダ1.6.2を有する。処理手段1.6、1.3にはそれぞれ同期インジケータが割当てられている。両同期インジケータは、第1の処理手段1.6及び第2の処理手段1.3によってアクセス可能である。第1の同期インジケータは少なくとも第1の処理手段1.6によって更新可能であり、第2の処理手段1.3によって読出し可能である。第2の同期インジケータは、少なくとも第2の処理手段1.3によって更新可能であり、第1の処理手段1.6によって読出し可能である。各同期インジケータはそれぞれカウンタで表される。第1の同期インジケータ(writec)を表すカウンタは第1の処理手段1.6によって書き込まれたトークンの数を表す。第2の同期インジケータ(readc)を表すカウンタは第2の処理手段1.3によって読み込まれたトークンの数を表す。
【0029】
カウンタ値の比較により各プロセッサに利用可能なトークンの数を計算可能な限り、カウンタによってトークンの数を表すいくつかの選択が当業者に可能である。例えば、カウンタ値が、トークンの数mod n(nは整数)、に等しいことがあり得る。別の方法では、カウンタの各ステップが、固定されたトークンの数を表し得る、即ち、カウンタ値によるステップの数によってトークンが表され得る。別の方法では、カウンタの各ステップがトークンの固定番号を表し得る、即ち、トークンがカウンタ値のステップ番号によって表され得る。
【0030】
実際の実施例では、カウンタは、バッファ手段が他のプロセッサに利用可能にされる最大のアドレスに対するポインタである。このことは、概略的に図2に示される。この図は、概略的に、第2の処理手段1.3にデータを供給するために第1の処理手段1.6によって用いられるメモリ1.5内のバッファスペース2.1を示す。バッファスペース2.1は循環バッファとして構成される。バッファスペース2.1は、第1のゾーン2.2と、現時点で第2の処理手段1.3に利用可能な、第1の処理手段1.6によって書き込まれたデータを含む第2のゾーン2.4とを含む。バッファスペース2.1は、さらに、第1の処理手段1.6が新たなデータを書き込むために利用可能な第3のゾーン2.3を含む。プロデューサカウンタwritecは第1のゾーン2.2の終わりを示し、コンシューマカウンタreadcは第2のゾーン2.3の終わりを示す。
【0031】
第1のゾーン2.2及び第2のゾーン2.4内の部分2.6は、同期カウンタreadcと結合された予約カウンタreadrsvcによって予約される。第3のゾーン2.3内の部分2.5は、同期カウンタwritecと結合された予約カウンタwritersvcによって予約される。図3及び図4を参照して、第1の同期カウンタwritec、第2の同期カウンタreadc及び予約カウンタreadrsvc, writersvcを含む同期情報は、専用用途装置1.6(図3において3.1として示される)に接続された同期シェルのチャネルコントローラにおける他の情報と結合して記憶される。
【0032】
図3を参照して、専用用途装置3.1は同期シェル3.2を介してバス3.3に接続されている。この方法では、専用用途装置3.1は計算タスクを請け負い、同期シェルは通信タスクを実行する。そのため、同期シェル3.2はバスアダプタ3.4と、同期シェル3.2がメッセージを受け取ったタスクの識別結果を記憶するための信号レジスタ3.5とを含む。同期シェル3.2は、さらに、チャネルコントローラ3.6、3.7を含む。これらは、プロセッサ3.1の命令をバス3.3への信号に変換する。通常、専用用途装置3.1は、プログラム可能なプロセッサ3.1の場合よりも少ないタスクをパラレルに実行する。
【0033】
図4は、同期シェルのチャネルコントローラ4.1をより詳細に示す。チャネルコントローラ4.1は、汎用バス・マスタ・スレーブ部4.2、レジスタファイル4.3及びコントロール部4.4を含む。
【0034】
バスアダプタ3.4及び汎用バス・マスタ・スレーブ部4.2は共にチャネルコントローラ4.1をバスへ接続する。バスアダプタ3.4は、特定の相互接続ネットワーク、例えばPIバスあるいはAHBバスを一般的なインターフェースに適合させる。汎用バス・マスタ・スレーブ部4.2は上記汎用インターフェースへ同期信号を適合させる。この方法では、異なるチャネルコントローラタイプと異なるバスとを、比較的少数の異なる構成要素でサポートできる。
【0035】
レジスタファイル4.3は同期情報を記憶する。
【0036】
プロセッサ3.1のデバイス同期インターフェースが、バッファ内において書込み可能あるいは読出し可能なトークンの数を要求するために、信号Claimを発行する場合、コントロール部4.4は、ローカルに記憶されたリモートカウンタ値remotecをその予約カウンタlocalsvcと比較することによってこの数が利用可能かどうかを確認する。表記(notation)remotecは入力チャネルに対してwritecを、出力チャネルに対してreadcを示す。表記(notation)localrsvcは入力チャネル対してreadrsvcを、出力チャネルに対してwritersvcを示す。
【0037】
もし確認が肯定的ならば、トークンのアドレスToken Addressが返される。さもなければ、プロセッサ3.1に対して確保されたバッファスペースの上界アドレス(upper boundary address)が返され得る。信号Token Validは、トークンに対する要求が承認されたか否かを示し、プロセッサの同期インターフェースは信号Claimを再び出すことが可能である。このようにして、トークンアドレスが各サイクルでプロセッサに供給され得る。もし第1の確認の結果が否定的であれば、チャネルコントローラ4.1は、アドレスremotecaddrによって示されるリモートカウンタを読み出し、ローカルに記憶された値remotecをそのアドレスに記憶された値によって置き換える。コントロール部4.4は、再び、要求されたトークンの数が利用可能かどうかを確認する。
【0038】
もし要求が通らなかったならば、チャネルコントローラ4.1はリモートカウンタをポーリングモードで定期的にポーリングするか、あるいは、割込モードで通信を行うプロセッサによる割込みを待つ。その間他のタスクを進めることができる。チャネルコントローラにおけるレジスタファイルは、プロセッサが通信する他方のデバイスの信号レジスタアドレスを示すポインタsgnl_reg_addrを含む。割込みプロセッサは、装置の信号レジスタ内に、割込みが生じたタスクあるいはチャネルの表示を残し得る。
【0039】
レジスタ内の変数inputchannelはチャネルコントローラに対して現在のチャネルが入力及び出力チャネルのどちらであるかを、またこれらのモードのどちらがこのチャネルに対して選択されたのかを示す。変数maxtoken及びtokensizeはそれぞれ、バッファ内において利用可能な全トークン数及びバイトによるトークンサイズを示す。
【0040】
要求が成功した後、変数localrsvcは、要求されたトークンの数に従って更新される。
【0041】
変数remotecの代わりに、レジスタファイルが、最後の確認で計算された利用可能なトークンの数を示す変数を含み得る。
【0042】
プロセッサ3.1がRelease_reqを送る場合、ローカルカウンタlocalcはこの要求に従って更新される。このローカルカウンタlocalcは入力チャネルに対するreadc及び出力チャネルに対するwritecである。選択的に、信号Release_reqは、プロセッサ3.1がいつでもトークンを解放できるように、高く保たれ得る。しかしながら、この信号は、それがほとんどバスにアクセスできないときに、コントローラが溢れるのを阻止するために用いられ得る。
【0043】
代替的に、同期プロセスは、要求及び解放関数を用いることによってソフトウェアで実行され得る。要求関数を実行することによって、プロセッサは特定のチャネルに対するトークンの数を要求し、その関数がトークンアドレスを返すまで待つ。解放関数を実行することによってそのプロセッサは特定のチャネルに対するトークンの数を解放する。別個の関数が、書込み用のトークンあるいは読出し用のトークンを要求するために存在し得る。同様に、別個の関数は解放のために用いられ得る。
【0044】
本発明に従って、少なくとも同期情報の部分のコピーが共有メモリに維持され得る。
【0045】
コピーとして維持される情報は、専用プロセッサの動作の追跡に有用な情報、例えばそのプロセッサによって維持される同期カウンタの値を含み得る。
【0046】
例を用いて、共有メモリ内のコピーが、C言語仕様の以下のデータ構造に従って構成され得る。
【0047】
Figure 2004534323
同期カウンタ値writec及びreadc、予約カウンタ値writersvc及びreadrsvcの他に、このデータ構造は以下のデータを含む。
【0048】
idは、複数のチャネルを識別する値であって、例えば、第1の処理手段から第2の処理手段にデータを転送する第1のチャネル、第2の処理手段から第1の処理手段にデータを転送する第2のチャネル、及び第2の処理手段から第3の処理手段にデータを転送する第3のチャネルを含む処理スキームを実行可能にするチャネルを識別する値である。
【0049】
maxtokensの値はバッファサイズ、即ち、バッファ内に記憶可能なトークンの数を示す。
【0050】
flagsの値は、チャネルの属性、例えば同期がポーリングあるいは割込みベースである場合、チャネルバッファが直接あるいは間接に割り当てられるかどうかを示す。代替方法として、所定のチャネル属性を与えること、例えば直接割り当てられたバッファと同期した割り込みの実行を制限することが決定され得る。その場合、flagsの値は省略され得る。
【0051】
producer及びconsumerは、第1の処理手段すなわちプロデューサのタスク、及び第2の処理手段すなわちコンシューマのタスクを記述する構造へのポインタである。
【0052】
そのタスク構造は、例えば、以下を含む。
【0053】
- タスクに対する識別子(それは誰のタスク構造であるか)
- 関数ポインタ(もしそれが組み込みプロセッサにおけるタスクであるのならば、ブートの後、ルートタスクがこの関数にジャンプし、そのアプリケーションを開始し得る。さもなければ無効にする)
- 装置タイプ:タスクがどんなタイプの装置で実行されるかを示す。これは、ブート処理に対して有用である。:DSPあるいは組み込みプロセッサにおいて実行されるタスクは、専用ハードウェアで実行されるタスクと異なった方法で初期化されなければならない。主要な装置タイプを有することによって適正なブート手順の選択が容易になる。
【0054】
- 装置番号:これは、例えば第1のハードウェアプロセッサ第2のハードウェアプロセッサを識別することを可能にする。これは、それらに固有の番号を与えることによってなされ得る。
【0055】
- チャネル数
- チャネルデータ構造に対するポインタのリスト
この方法では、例えば、UNIX(R)タスクが開始されたとき、それは、まずそのタスク構造を読み出し、次いで、そのタスクに接続された全てのチャネルについて全ての情報を読み出し得る。このことは、ブート処理を非常に容易にし、また、タスクが追加されるたびに、全てのタスクに適正なデータ構造をロードさせるために制御プロセスが変更されなければならないことを阻止する。整数token_sizeは、チャネルを介して交換されるトークンのサイズを示す。
【0056】
ポインタbufbaseaddrは、メモリにおけるバッファのベースアドレスを示す。
【0057】
ポインタCHP_channel_hwT*pchanregs及びCHP_channel_hwT*cchanregsは、ソフトウェアによるチャネルコントローラのレジスタへのアクセスを容易にする。これらは、単に、ハードウェアレジスタの物理ロケーションに対するポインタである。もし、そのフィールドのどれかが0であるならば、このことは、対応するタスクがソフトウェアタスクであることを意味する。
【0058】
完全性を期すため、我々は、さらに、2つのハードウェアタスクが通信する場合を論じる。この場合、プロデューサのsignaladdrが、コンシューマの同期シェルにおける信号レジスタのアドレスにセットされ、remotecaddrが、コンシューマチャネルコントローラのlocalcレジスタのアドレスにセットされる。別の選択は、共有メモリにおけるチャネルレコードにおけるreadcフィールドにremotecaddrを設定することである。しかし、これは、コンシューマのシェルがそのローカルレジスタを更新した後、少し遅れてメモリを更新するので、リモートカウンタの読み出し値が少し古くなり得るという不利益を有する。コンシューマに対するレジスタのセットはちょうど逆である。
【0059】
動的な再設定は、特定のアプリケーションを表すタスクグラフ(task graph)のトポロジーを変更することを伴う。このことは、例えば、タスクが停止及び除去され、そして、特定のチャネルが他のタスクに再接続され得るということを意味する。この場面において最も興味深いシナリオは、特定のチャネルが、いつ一方(プロデューサあるいはコンシューマ)において別のタスクに再接続されるかということであり、それは種々の実行からなる(it is of a different implementation)。例えば、プロデューサタスク(ハードウェア)がハードウェアコンシューマタスクに接続され、再設定の後、それはソフトウェアタスクと通信しなければならない。この場合、チャネルレコードは既に存在し且つ最新であるので、ソフトウェアタスクは即座にそのチャネルを用いることができる。ハードウェアタスクに対して、そのチャネル管理レジスタにおけるいくつかのフィールドが変更されなければならない、すなわち、signaladdrが、新しいソフトウェアタスクが実行されるCPUの信号コントロールアドレスにセットされる。
【0060】
remotecaddrは、チャネルレコードにおけるreadcフィールドのアドレスにセットされる。このステップは、たとえ2つのハードウェアが通信していたとしても、もし以前にそのケースが既に存在したのならば、必要とされないことに注意する。
【0061】
これらのレジスタが更新されている間、これらのレジスタをハードウェアタスクが用いることを回避するため、更新がなされた後、それは、まず停止され、そして再開される。
【0062】
さらに、タスクの通信パートナをハードウェアタスクから別のハードウェアタスクに切り替えることは、メモリにおけるチャネルレコードを伴って、さらに容易になされる。新たなタスクのチャネルコントローラレジスタは、開始される前に、共有メモリから簡易にアップロードされる。
【0063】
マルチタスクは、1つの単一のハードウェア装置、例えばDCTやIDCTに対応づけられ得る。両方のタスクが異なった入力及び出力チャネルを有し得、それ故、別個のチャネルコントローラ及びレジスタを必要とし得る。あるいは、両方のタスクに対するチャネルを実行するために、装置シェルにおける同じレジスタのセットを用いることができ、それによってシリコン領域を減少できる。メモリにおける管理情報のコピーなしで、これは以下のこと、すなわち、タスクがスケジュールアウトしたとき、そのチャネルの管理情報は明らかにメモリに保存されなければならず、いったんそれが再スケジュールされると、該当するチャネルの管理情報はメモリからレジスタへ復帰され得ること、を必要とする。
【0064】
提案されたアプローチを伴って、チャネルレジスタの“シャドー(shadow)状態”はいつもメモリに存在し、それ故、ハードウェア装置におけるタスク切替えは、チャネル管理情報の状態保存が必要とされないため、加速される。さらに、スケジュールアウトしたタスクと通信しているタスクは、それが依然として共有メモリチャネルレコードで動作し得るため、このタスク切替えに決して気づかない。
【0065】
本発明の保護範囲は上述した実施例に限定されない。また、本発明の一部を構成する手段は、専用ハードウェアあるいはプログラムされた一般用途プロセッサで実現され得る。本発明は新たな特徴あるいは新たな特徴の組み合わせを有する。
【図面の簡単な説明】
【0066】
【図1】データ処理装置を概略的に示す。
【図2】同期カウンタがバッファのパーティションを表す方法を示す。
【図3】プロセッサに対する同期シェルを示す。
【図4】チャネルコントローラを示す。

Claims (8)

  1. 少なくとも専用プロセッサと、別のプロセッサと、両前記プロセッサにより共有されるメモリとを備え、前記メモリ及び両前記プロセッサは相互接続ネットワークに接続されたマルチプロセッサシステムであって、
    両前記プロセッサは同期プロトコルに従ってバッファを介して互いにデータ転送し、
    前記専用プロセッサは前記同期プロトコルに関連した情報を管理し、この情報の少なくとも一部のコピーが前記共有メモリに維持されることを特徴とするマルチプロセッサシステム。
  2. 前記情報は少なくとも以下の情報エレメント、
    前記バッファの位置を示すアドレス、
    前記バッファのサイズの表示、
    前記データ転送の進行に関わる同期カウンタ、
    を含み、
    この情報エレメントのそれぞれのコピーが前記共有メモリに維持されることを特徴とする請求項1に記載のマルチプロセッサシステム。
  3. 前記同期カウンタが前記別のプロセッサによって維持され、前記専用プロセッサによって読出し可能であり、前記専用プロセッサは、前記別のプロセッサによって読出し可能な別の同期カウンタを維持し、前記同期プロトコルは、
    プロセッサによって発行されたとき、両同期カウンタを比較することによって所定量のバッファスペースがプロセッサに利用可能かどうかを確認する第1の命令と、
    プロセッサによって発行されたとき、プロセッサが維持する同期カウンタを更新することによってそのバッファスペースの一部を解放する第2の命令と、
    を含むことを特徴とする請求項2に記載のマルチプロセッサシステム。
  4. 両前記プロセッサの少なくとも1つは予約カウンタをローカルに維持し、
    前記プロセッサによって発行される前記第1の命令は、その予約カウンタを、他方のプロセッサによって維持される同期カウンタと比較することによって、所定量のバッファスペースが利用可能であるかどうかを確認し、もし前記確認の結果が肯定的である場合は、前記予約カウンタを更新することを特徴とする請求項3に記載のマルチプロセッサシステム。
  5. さらなるカウンタを備え、
    両カウンタは両プロセッサによって維持され且つ読出し可能であり、これらのカウンタの1つは、前記専用プロセッサに利用可能なバッファスペース量を示し、前記さらなるカウンタは前記別のプロセッサに利用可能なバッファスペース量を示すことを特徴とする請求項2に記載のマルチプロセッサシステム。
  6. 前記専用プロセッサは、さらに共有メモリにおける前記コピーを更新することを特徴とする請求項1に記載のマルチプロセッサシステム。
  7. 前記バッファは共有メモリに配置されたことを特徴とする請求項1に記載のマルチプロセッサシステム。
  8. 少なくとも、専用プロセッサと、別のプロセッサと、両前記プロセッサ間で共有されるメモリとを備え、前記共有メモリ及び両前記プロセッサは相互接続ネットワークに接続されたマルチプロセッサシステムを動作させる方法であって、
    両前記プロセッサは同期プロトコルに従ってバッファを介して互いにデータ転送し、前記専用プロセッサは、前記同期プロトコルに関わる管理情報を含み、この管理情報の少なくとも一部のコピーを前記共有メモリにおいて維持することを特徴とする方法。
JP2003511119A 2001-06-29 2002-06-20 マルチプロセッサシステム及びマルチプロセッサシステムの動作方法 Ceased JP2004534323A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP01202517 2001-06-29
PCT/IB2002/002337 WO2003005219A2 (en) 2001-06-29 2002-06-20 Multiprocessor system and method for operating a multiprocessor system

Publications (1)

Publication Number Publication Date
JP2004534323A true JP2004534323A (ja) 2004-11-11

Family

ID=8180570

Family Applications (3)

Application Number Title Priority Date Filing Date
JP2003511119A Ceased JP2004534323A (ja) 2001-06-29 2002-06-20 マルチプロセッサシステム及びマルチプロセッサシステムの動作方法
JP2003511098A Withdrawn JP2004522233A (ja) 2001-06-29 2002-06-20 データ処理装置およびデータ処理装置の動作方法
JP2003509339A Pending JP2004531002A (ja) 2001-06-29 2002-06-20 データ処理装置及びデータ処理装置における第1及び第2の処理手段を同期させる方法

Family Applications After (2)

Application Number Title Priority Date Filing Date
JP2003511098A Withdrawn JP2004522233A (ja) 2001-06-29 2002-06-20 データ処理装置およびデータ処理装置の動作方法
JP2003509339A Pending JP2004531002A (ja) 2001-06-29 2002-06-20 データ処理装置及びデータ処理装置における第1及び第2の処理手段を同期させる方法

Country Status (7)

Country Link
US (2) US20040193693A1 (ja)
EP (3) EP1405175B1 (ja)
JP (3) JP2004534323A (ja)
CN (3) CN1522405A (ja)
AT (1) ATE341027T1 (ja)
DE (1) DE60215007T2 (ja)
WO (3) WO2003005219A2 (ja)

Families Citing this family (50)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7293155B2 (en) 2003-05-30 2007-11-06 Intel Corporation Management of access to data from memory
TW587374B (en) * 2003-06-03 2004-05-11 Acer Labs Inc Method and related apparatus for generating high frequency signals by a plurality of low frequency signals with multiple phases
US7714870B2 (en) 2003-06-23 2010-05-11 Intel Corporation Apparatus and method for selectable hardware accelerators in a data driven architecture
US7546423B2 (en) * 2003-09-02 2009-06-09 Sirf Technology, Inc. Signal processing system control method and apparatus
JP4148223B2 (ja) * 2005-01-28 2008-09-10 セイコーエプソン株式会社 プロセッサおよび情報処理方法
US20060253662A1 (en) * 2005-05-03 2006-11-09 Bass Brian M Retry cancellation mechanism to enhance system performance
US8817029B2 (en) * 2005-10-26 2014-08-26 Via Technologies, Inc. GPU pipeline synchronization and control system and method
US20080052527A1 (en) * 2006-08-28 2008-02-28 National Biometric Security Project method and system for authenticating and validating identities based on multi-modal biometric templates and special codes in a substantially anonymous process
US7822889B2 (en) 2007-08-27 2010-10-26 International Business Machines Corporation Direct/indirect transmission of information using a multi-tiered full-graph interconnect architecture
US8014387B2 (en) 2007-08-27 2011-09-06 International Business Machines Corporation Providing a fully non-blocking switch in a supernode of a multi-tiered full-graph interconnect architecture
US7958183B2 (en) 2007-08-27 2011-06-07 International Business Machines Corporation Performing collective operations using software setup and partial software execution at leaf nodes in a multi-tiered full-graph interconnect architecture
US8185896B2 (en) * 2007-08-27 2012-05-22 International Business Machines Corporation Method for data processing using a multi-tiered full-graph interconnect architecture
US7809970B2 (en) 2007-08-27 2010-10-05 International Business Machines Corporation System and method for providing a high-speed message passing interface for barrier operations in a multi-tiered full-graph interconnect architecture
US7840703B2 (en) 2007-08-27 2010-11-23 International Business Machines Corporation System and method for dynamically supporting indirect routing within a multi-tiered full-graph interconnect architecture
US7958182B2 (en) 2007-08-27 2011-06-07 International Business Machines Corporation Providing full hardware support of collective operations in a multi-tiered full-graph interconnect architecture
US7793158B2 (en) 2007-08-27 2010-09-07 International Business Machines Corporation Providing reliability of communication between supernodes of a multi-tiered full-graph interconnect architecture
US8108545B2 (en) 2007-08-27 2012-01-31 International Business Machines Corporation Packet coalescing in virtual channels of a data processing system in a multi-tiered full-graph interconnect architecture
US7904590B2 (en) 2007-08-27 2011-03-08 International Business Machines Corporation Routing information through a data processing system implementing a multi-tiered full-graph interconnect architecture
US8140731B2 (en) 2007-08-27 2012-03-20 International Business Machines Corporation System for data processing using a multi-tiered full-graph interconnect architecture
US7769892B2 (en) 2007-08-27 2010-08-03 International Business Machines Corporation System and method for handling indirect routing of information between supernodes of a multi-tiered full-graph interconnect architecture
US7769891B2 (en) 2007-08-27 2010-08-03 International Business Machines Corporation System and method for providing multiple redundant direct routes between supernodes of a multi-tiered full-graph interconnect architecture
US7827428B2 (en) 2007-08-31 2010-11-02 International Business Machines Corporation System for providing a cluster-wide system clock in a multi-tiered full-graph interconnect architecture
US7921316B2 (en) 2007-09-11 2011-04-05 International Business Machines Corporation Cluster-wide system clock in a multi-tiered full-graph interconnect architecture
US7779148B2 (en) 2008-02-01 2010-08-17 International Business Machines Corporation Dynamic routing based on information of not responded active source requests quantity received in broadcast heartbeat signal and stored in local data structure for other processor chips
US20090198956A1 (en) * 2008-02-01 2009-08-06 Arimilli Lakshminarayana B System and Method for Data Processing Using a Low-Cost Two-Tier Full-Graph Interconnect Architecture
US8077602B2 (en) 2008-02-01 2011-12-13 International Business Machines Corporation Performing dynamic request routing based on broadcast queue depths
DE102008018951A1 (de) 2008-04-15 2009-10-22 Carl Zeiss Microimaging Gmbh Mikroskop mit Haltefokuseinheit
US8082426B2 (en) * 2008-11-06 2011-12-20 Via Technologies, Inc. Support of a plurality of graphic processing units
US8843682B2 (en) * 2010-05-18 2014-09-23 Lsi Corporation Hybrid address mutex mechanism for memory accesses in a network processor
US8417778B2 (en) 2009-12-17 2013-04-09 International Business Machines Corporation Collective acceleration unit tree flow control and retransmit
US9037907B2 (en) 2011-06-10 2015-05-19 International Business Machines Corporation Operator message commands for testing a coupling facility
US8918797B2 (en) 2011-06-10 2014-12-23 International Business Machines Corporation Processing operator message commands
US8799522B2 (en) 2011-06-10 2014-08-05 International Business Machines Corporation Executing a start operator message command
US8560737B2 (en) 2011-06-10 2013-10-15 International Business Machines Corporation Managing operator message buffers in a coupling facility
US8689240B2 (en) 2011-06-10 2014-04-01 International Business Machines Corporation Transmitting operator message commands to a coupling facility
US8745291B2 (en) * 2011-10-04 2014-06-03 Qualcomm Incorporated Inter-processor communication apparatus and method
CN103186501A (zh) * 2011-12-29 2013-07-03 中兴通讯股份有限公司 一种多处理器共享存储方法及系统
US9304880B2 (en) * 2013-03-15 2016-04-05 Freescale Semiconductor, Inc. System and method for multicore processing
US9928117B2 (en) * 2015-12-11 2018-03-27 Vivante Corporation Hardware access counters and event generation for coordinating multithreaded processing
US10437748B1 (en) * 2015-12-29 2019-10-08 Amazon Technologies, Inc. Core-to-core communication
US10042677B2 (en) * 2016-05-25 2018-08-07 Bank Of America Corporation Maintenance conflict tool
US10963183B2 (en) * 2017-03-20 2021-03-30 Intel Corporation Technologies for fine-grained completion tracking of memory buffer accesses
CN107342853B (zh) * 2017-05-25 2019-12-06 兴唐通信科技有限公司 一种低交互开销的计数器同步方法
WO2019001418A1 (zh) 2017-06-26 2019-01-03 上海寒武纪信息科技有限公司 数据共享系统及其数据共享方法
CN109117415B (zh) * 2017-06-26 2024-05-14 上海寒武纪信息科技有限公司 数据共享系统及其数据共享方法
CN109214616B (zh) 2017-06-29 2023-04-07 上海寒武纪信息科技有限公司 一种信息处理装置、系统和方法
CN110413551B (zh) 2018-04-28 2021-12-10 上海寒武纪信息科技有限公司 信息处理装置、方法及设备
CN109426553A (zh) 2017-08-21 2019-03-05 上海寒武纪信息科技有限公司 任务切分装置及方法、任务处理装置及方法、多核处理器
JP7407653B2 (ja) 2020-04-27 2024-01-04 株式会社平和 遊技機
US11842056B2 (en) * 2021-10-25 2023-12-12 EMC IP Holding Company, LLC System and method for allocating storage system resources during write throttling

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4916658A (en) * 1987-12-18 1990-04-10 International Business Machines Corporation Dynamic buffer control
US5584037A (en) * 1994-03-01 1996-12-10 Intel Corporation Entry allocation in a circular buffer
EP0760501B1 (en) * 1995-09-04 2002-02-20 Hewlett-Packard Company, A Delaware Corporation Data handling system with circular queue formed in paged memory
US5729765A (en) * 1995-12-07 1998-03-17 Samsung Electronics Co., Ltd. Method and apparatus for determining the status of a shared resource
US5951657A (en) * 1996-06-19 1999-09-14 Wisconsin Alumni Research Foundation Cacheable interface control registers for high speed data transfer
US5915128A (en) * 1997-01-29 1999-06-22 Unisys Corporation Serial speed-matching buffer utilizing plurality of registers where each register selectively receives data from transferring units or sequentially transfers data to another register
US6173307B1 (en) * 1998-08-20 2001-01-09 Intel Corporation Multiple-reader multiple-writer queue for a computer system
US6212543B1 (en) * 1998-12-10 2001-04-03 Intel Corporation Asymmetric write-only message queuing architecture
US6389489B1 (en) * 1999-03-17 2002-05-14 Motorola, Inc. Data processing system having a fifo buffer with variable threshold value based on input and output data rates and data block size
US6606666B1 (en) * 1999-11-09 2003-08-12 International Business Machines Corporation Method and system for controlling information flow between a producer and a buffer in a high frequency digital system
DE60022186T2 (de) * 2000-08-17 2006-06-08 Texas Instruments Inc., Dallas Unterhaltung einer entfernten Warteschlange unter Benutzung von zwei Zählern in der Verschiebesteuerung mit Hubs und Ports
US6424189B1 (en) * 2000-10-13 2002-07-23 Silicon Integrated Systems Corporation Apparatus and system for multi-stage event synchronization
KR100484134B1 (ko) * 2002-02-16 2005-04-18 삼성전자주식회사 선입선출기를 이용한 비동기 데이터 인터페이스 장치

Also Published As

Publication number Publication date
CN1522405A (zh) 2004-08-18
JP2004531002A (ja) 2004-10-07
US20040193693A1 (en) 2004-09-30
CN1522402A (zh) 2004-08-18
DE60215007T2 (de) 2007-05-03
EP1405184A2 (en) 2004-04-07
DE60215007D1 (de) 2006-11-09
JP2004522233A (ja) 2004-07-22
CN1531684A (zh) 2004-09-22
WO2003003232A3 (en) 2004-03-18
EP1405175A2 (en) 2004-04-07
US20040153524A1 (en) 2004-08-05
WO2003003232A2 (en) 2003-01-09
ATE341027T1 (de) 2006-10-15
WO2003005196A2 (en) 2003-01-16
WO2003005219A2 (en) 2003-01-16
CN100533370C (zh) 2009-08-26
EP1421506A2 (en) 2004-05-26
WO2003005219A3 (en) 2003-06-05
WO2003005196A3 (en) 2004-01-15
EP1405175B1 (en) 2006-09-27

Similar Documents

Publication Publication Date Title
JP2004534323A (ja) マルチプロセッサシステム及びマルチプロセッサシステムの動作方法
JP4259751B2 (ja) リアルタイムで動的に帯域幅を割り当てる完全パイプライン式固定待ち時間通信システム
TWI407373B (zh) 用於管理多核心架構之資源的方法和設備
CN1991768B (zh) 与不同种类的资源通信的基于指令系统结构的内定序器
US4229790A (en) Concurrent task and instruction processor and method
Dinan et al. Dynamic load balancing of unbalanced computations using message passing
JP2644780B2 (ja) 処理依頼機能を持つ並列計算機
EP0364849A2 (en) Bus for a data processing system
JP2001142842A (ja) Dmaハンドシェークプロトコル
JP2004326462A (ja) マルチプロセサシステム
CN113849433B (zh) 一种总线控制器的执行方法、装置、总线控制器、计算机设备和存储介质
CN111290983A (zh) Usb传输设备及传输方法
US6581089B1 (en) Parallel processing apparatus and method of the same
JP7346649B2 (ja) 同期制御システムおよび同期制御方法
CN108958904B (zh) 嵌入式多核中央处理器的轻量级操作系统的驱动程序框架
CN108958905B (zh) 嵌入式多核中央处理器的轻量级操作系统
JP2007048019A (ja) エミュレーション方法、エミュレータ、コンピュータ組込型デバイスおよびエミュレータ用プログラム
JP2002342295A (ja) マルチプロセッサシステム
JPH11306149A (ja) 並列演算処理装置およびその方法
CN117149471B (zh) 通信方法、装置、嵌入式系统、存储介质以及电子设备
JP2004013356A (ja) バス調停システム
US9753765B1 (en) Multi-processor integrated circuits
JPH1185673A (ja) 共有バスの制御方法とその装置
JPH11306037A (ja) 並列演算処理装置およびその方法
JP2004110742A (ja) Dmaコントローラ

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050620

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070921

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20071206

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20071213

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20080612

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20080819

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20081112

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20081219

A912 Re-examination (zenchi) completed and case transferred to appeal board

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20090123

A045 Written measure of dismissal of application [lapsed due to lack of payment]

Free format text: JAPANESE INTERMEDIATE CODE: A045

Effective date: 20110624