JP2011503695A - プロセッサを設計するための方法と装置 - Google Patents

プロセッサを設計するための方法と装置 Download PDF

Info

Publication number
JP2011503695A
JP2011503695A JP2010531979A JP2010531979A JP2011503695A JP 2011503695 A JP2011503695 A JP 2011503695A JP 2010531979 A JP2010531979 A JP 2010531979A JP 2010531979 A JP2010531979 A JP 2010531979A JP 2011503695 A JP2011503695 A JP 2011503695A
Authority
JP
Japan
Prior art keywords
processor
resources
resource
statistical probability
initial
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.)
Granted
Application number
JP2010531979A
Other languages
English (en)
Other versions
JP5441911B2 (ja
Inventor
アレクサンデル アウフステイン,
イェルーン アントン ヨハン レイテン,
Original Assignee
シリコン ヒフェ ベー.フェー.
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 シリコン ヒフェ ベー.フェー. filed Critical シリコン ヒフェ ベー.フェー.
Publication of JP2011503695A publication Critical patent/JP2011503695A/ja
Application granted granted Critical
Publication of JP5441911B2 publication Critical patent/JP5441911B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/33Design verification, e.g. functional simulation or model checking

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

プロセッサを設計する方法であって、リソースパラメータを用いて複数のリソースを特定する、プロセッサの初期モデルを提供するステップと、選択されたアプリケーションで使用が必要なリソースを示す統計的確率を提供するステップと、この統計的確率に基づいて、少なくとも1つのリソースパラメータの緩和、および/または初期仕様で特定されたリソースの量の制限を行うステップとを含む。

Description

本発明はプロセッサの設計方法に関する。
本発明はプロセッサの設計装置に関する。
ASIP(Application specific instruction set processor)は特定のアプリケーション領域に設計されたプロセッサである。このプロセッサ設計は、複数のリソースを備え、これらのリソースは、機能的に結合することができる。リソースとは、プロセッサでタスクを実行するのに用いられる全ての装置であり、演算リソースのようなものである。例えば低レベル演算リソースは乗算器、加算器のようなものであり、高レベル演算リソースは、フィルターや変換器であり、記憶リソースは、レジスタファイルやメモリ装置のようなものであり、通信リソースはポート、バス、ポイント間リンク、ネットワークのようなものであり、これらにおけるルーティングリソースは、マルチプレクサのようなものである。
このプロセッサのリソースの量、タイプおよび大きさ(レジスタファイル、命令セット、並列度、相互接続)はそのアプリケーション領域毎に調整される。このようなASIPの開発で設計者をサポートする、ARM社のOptimodeのような自動設計ツールが提供されている。自動設計ツールについては、例えばCoWare(登録商標)社の国際出願公開公報WO2004017232に記載されている。設計者は、LISA2.0のような設計言語を用いて動作、命令セットコーディングおよびシンタックスを含むプロセッサのアーキテクチャの様々な仕様を記述できる。目標システムの全てのコンポーネントは、C/C++プログラミング言語の拡張であるシンタックスを用いた統一された方法で記述することができる。LISA2.0による記述は、プロセッサの設計者、ソフトウェア設計ツール、およびハードウェア/ソフトウェアシステムの設計者の間で交換できる、曖昧さの無い仕様である。更に、階層的モデリング様式がサポートされ、コードの構造化と容易なメンテナンスを可能としている。従って、設計者は、既存のモジュールである、加算器、乗算器および更に複雑なプロセシング素子のようなプロセシング装置、メモリ、キャッシュおよびレジスタファイルのような記憶装置、バス、ネットワークおよび他の装置とのダイレクトリンクのような相互接続装置を再利用することができる。もう1つの高級言語はターゲット・コンパイラ・テクノロジ社のnMLである。
ASIPは通常、汎用プロセッサ(general purpose processor, GPP)またはデジタルシグナルプロセッサ(DSP)が充分な性能をもたらすことができない場合、そして配線接続されたブロックが充分な柔軟性を持たない場合に、埋め込みシステムで適用される。
このような埋め込みシステムでは、ASIPは普通は、ROMにエンコードすることもできる1個のアプリケーションを実行するが、これにより設計時のプログラミング可能性が制限されている。
ROMのプログラムは、プロセッサの提供する全てのリソースを必要としなくともよい。従って、特定のプログラムでは、プロセッサは使用しないリソースを持っていてよい。使用されない場合でも、これらのリソースは、依然としてシリコン面積を占め、電力を消費するという好ましくない結果をもたらす。不使用のリソースはまた、プロセッサを低速にする。例えば、アドレスのデコーディングに必要な時間は一般的にアドレス空間に比例する。従って、プロセッサが、不使用のキャッシュのリソースを備えている場合、アドレスのデコーディング時間は、必要以上に長くなる。自動設計ツールを使用できるにも拘わらず、前記のアプリケーションでは、過剰なリソースのない新たなASIPの開発には依然としてコストがかかっている。
本発明の目的は、上記の欠点を少なくとも部分的に克服することである。
以下のステップを備えたプロセッサの設計方法が提供される。
・リソースパラメータを用いて複数のリソースを特定する、プロセッサの初期モデルを提供するステップ。
・選択されたアプリケーションで用いられる必要なリソースを示す統計的確率を提供するステップ。
・少なくとも1つのリソースパラメータの緩和、および/または初期仕様で特定されたリソースの量の、統計的確率に基づいた制限を提供するステップ。
統計的確率は各々のリソースに対し、その使用が必要かどうかを示す。これらのリソースで使用の必要がないものは、プロセッサの仕様から除去される。例えばプロセッサのレジスタファイルの仕様は、その使用が必要なレジスタまで切り詰められる。この手順では、このリソースが実際どの程度の頻度で使用されるかについては考慮されない。従って、この統計的確率は、各々のリソースに対しその使用が必要かどうかということを2値的に示す。本発明の方法の1つの実施形態では、選択されたアプリケーションで使用が必要なことを示す統計的確率は、選択されたアプリケーションで使用されるソフトウェアをコンパイルするコンパイラにより提供される。この実施形態は、コンパイラは、このコンパイラが生成しなければならない実行ファイルにおいて、リソースのスケジュールを行う必要があるということに有利さを持つ。従って、このコンパイラは、各々のリソースまたはその素子がスケジュールされるかどうかということを示す統計的情報を提供することに適している。この目的のためにはリソースがこのアプリケーションによって割り当てられるかどうかを知るということで充分であり、このリソースが使用のために実際にスケジュールされるときは知る必要がないので、全コンパイルは不要である。
この方法は、プロセッサをより効率化する。不使用のリソースの除去によりシリコン面積が削減される。この除去により、また使用電力が削減される。本発明の実施形態では、例えばデコーディング時間の短縮により、プロセッサ速度が増大する。この結果得られるプロセッサは、柔軟性が減少し、例えばそのアプリケーションがROMに保存される場合には、もはやプログラミング不可能とさえなる可能性がある。しかしながら、これは統計的確率が与えられているアプリケーションを実行するだけであるので、不利ということではない。
なお、国際出願公開公報WO2004/017232は、シミュレータで得られるチップサイズ、クロックスピードおよび電力消費を用いて目標アーキテクチャを変更することができることに言及している。しかしながら、この資料は、素子の使用が決定され、そしてこの情報が、不使用のリソースを除去することによって、アーキテクチャを自動的に変更するために用いられるということは開示していない。
なお、更にヴァーレン氏等(Wahlen et al)は、論文「アプリケーションに特定したコンパイラ/アーキテクチャのコード設計」(“Application Specific Compiler/Architecture Codesign”、SIGPLAN NOTICES ACM USA, Vol.37, No.7, July 2002, 00185-193)に、アプリケーションに特定した命令セットのプロセッサ(ASIPs, application specific instruction set processors)用のアーキテクチャ探索方法で、CコンパイラおよびVHDLモデルをこの探索ループに含むものを記載している。あるアプリケーションに対して、目標とするアーキテクチャはスケーラブルなALICE VLIWのインスタンスであることがこの論文に記載されている。ヴァーレン氏等の論文の図1は提唱された探索方法を概略的に示している。ALICEプロセッサモデルからスタートして、コンパイラが生成される。このコンパイラを用いて、シミュレータに投入されるアプリケーションソースコードからオブジェクトコードが生成され、このシミュレータは、実行サイクルの数と全ての機能ユニット(ヴァーレン氏の論文の段落6.2参照)の起動の数とをカウンティングすることを含む実行統計的確率(execution statistics)を計算する。これらの統計的確率を用いて、設計者はプロセッサモデルを変更することができ、この変更されたプロセッサモデルに基づいて、新しいコンパイラが生成される。
類似の設計方法が以下の文献に記載されている。
− ポットラパリ氏等(Potlapally et al)の論文「埋め込みプロセッサでのIPSecプロトコル実行のコンフィギュラビリティと拡張性の影響」(“Impact of configurability and extensibility on IPSec Protocol Execution on Embedded Processors”, VLSI design 2006, 5th international conference on embedded systems and designとの共催、19th international conference, Hyderabad, India, 03-07 Jan 2006, pp.299-304)。
− US出願公開公報2003/0171907A1
− ロイパース氏等(Leupers et al)の論文「埋め込みプロセッサのための目標再設定可能なコンパイラおよびアーキテクチャ探索」(IEE proceedings:computers and digital techniques, IEE, GB, Vol.152, No.2, 4 March 2005, pp.216-217)。
− ハランビ氏等(Halambi et al)の論文「EXPRESSION(登録商標):コンピュータ/シミュレータの目標再設定性によるアーキテクチャ探索のための言語」(“EXPRESSION:a language for architecture exploration through computer/simulator retargetability”, Design Automation and Test in Europe conference and exhibition 1999. Proceedings Munich, Germany 9-12, March 1999, Los Alatimos, CA, USA, IEEE Comput. Soc., US, 9 March 1999, pp.485-490)。
ポットラパリ氏等の論文は、コンフィギュラブルで拡張可能なプロセッサに基づいて設計された、アプリケーションに特定した命令セットのプロセッサを用いた埋め込みシステムにおける性能を向上するためのアプローチを記載している。この論文は最先端のコンフィギュラブルで拡張可能な埋め込みプロセッサ(テンシリカ(登録商標)社(Tensilica, Inc.)のXtensa(登録商標))におけるIPSecプロトコルの性能分析を記載している。暗号化およびプロトコル処理を含め、処理レーテンシに影響する種々の要因が分析されている。命令およびデータキャッシュサイズ、プロセッサ−メモリインタフェース幅、書き込みバッファ等の構造パラメータを相乗的に構成することによる、埋め込みプロセッサのカストマイジングの影響が研究されている。
ポットラパリ氏等の論文に記載されている探索プロセスが、ポットラパリ氏等の論文の図4に概略的に示されている。ポットラパリ氏等の論文の段落IIIBに記載されているように、彼等の方法論は3つの段階から成っている。(i)データ収集段階で、実世界IPSecのトレース(traces)を収集すること、(ii)このトレースを用いて、命令セットのシミュレーションによりXtensaプロセッサにおけるIPSecの性能を分析すること、(iii)種々の構成パラメータを設定すること、および/またはカスタム命令を選択することによって、性能が最も上がる条件(performance hotspots)を特定し、プロセッサをチューニングすること。
米国出願公開公報US2003/0171907A1には、アプリケーションの設計とプロセッサの設計とを効果的にマッチングする時に設計者を助けるコンフィギュラブルなプロセッサの最適化を目的とした方法および装置が記載されている。この方法および装置は、シミュレートされたハードウェアアーキテクチャを生成するための特定のプロセッサの1つ以上のアプリケーションをモデリングすることと、コンパイルされたプログラムの1つ以上のプログラムセクションのための1つ以上のリソースパラメータを決定するためのシミュレートされたハードウェアアーキテクチャのためのコンパイルされたプログラムを分析することとを含む。この方法および装置は、1つ以上のアプリケーションに特定されたプロセッサを変更するための1つ以上の提案と、コンパイルされたプログラムおよびハードウェアアーキテクチャの内1つまたは両方を最適化するリソースパラメータに対応したプログラムセクションとを提供する。
ロイパース氏等の論文には、埋め込みプロセッサのための目標再設定可能なコンパイラの最先端技術のレビューが記載されている。本質的なコンパイラの基本に基づいて、いくつかの代表的な、目標再設定可能なコンパイラシステムが説明されており、また反復的な、プロファイリングに基づいたアーキテクチャ探索における、これらのコンパイラの使用の概要が記載されている。LISATek Cコンパイラが詳細なケーススタディとして記載されており、将来作業の有力な領域として提案されている。ロイパース氏等の論文の図13に示されているように、従来の設計方法論は、アプリケーションコードを何回も目標アーキテクチャに再マッピングすることが必要な反復的アプローチである。各々の反復では、通常のソフトウェア開発ツールの連鎖(Cコンパイラ、アセンブラ、リンカ)はこのマッピングのために用いられる。探索は、このアーキテクチャのビジュアルなプロトタイプで行われるので、命令セットシミュレータは、プロファイラと共に、与えられた(レンジの)アプリケーションに関して、例えば性能および面積への要求の観点から、現状のアーキテクチャの効率とコストを測定するのに用いられる。これに加えて、LISATekの設計フローは、ゲートレベルのハードウェア指標のバックアノテーションを可能とする、HDLモデルを介した合成パスを含む。
ハランビ氏等の論文にはEXPRESSION(登録商標)が記載されており、これは埋め込みシステムオンチップ(SOC)のためのアーキテクチャ設計空間を探索することと、目標再設定可能なコンパイラ/シミュレータツールキットの自動生成とをサポートする言語である。この論文の図1に概略が示されているEXPRESSIONの設計フローは、探索段階を含む。この探索段階では、システム設計者が (プロセッサライブラリから選択される) 異なる基本プロセッサの候補を探索し、評価する。ここでのゴールは速やかな設計デザイン空間探索を高速なシミュレーションでサポートすることである。探索段階に続く改良段階では、このEXPRESSION表現はサイクルアキュレートなシミュレータを生成することと、システム設計者が、メモリサブシステムを階層的にチューニングすると共に、この基本プロセッサの特性をチューニングすることを可能とするILPコンパイラを最適化することに用いられる。
各々のこれらの従来技術の方法では、コンパイルされたコードはシミュレートされる。このシミュレーションから得られる統計的確率のデータは、プロセッサの設計および任意で追加のコンパイラの設計に用いられる。
本発明が提供する方法は、とりわけVLIWプロセッサでの使用に適しているが、これはここでイシュースロット(issue slot)となるスロットが他のスロットから比較的に独立して動作するからである。従って、このタイプのプロセッサでは、どのイシュースロットが用いられ、どれが用いられないかを比較的簡単に決定することができる。このアプリケーションのソフトウェアで用いられない、このようなイシュースロットは容易に確認できる。これはコンパイルされたコードにおいて、これらのスロットがNOP命令だけを含んでいるからである。他の方法では、イシュースロットのレベルでリソースを除去する代わりに、更に細かく分割したレベル、例えば特定の機能ユニットで更に多くのリソースを除去してよく、および/または特定の演算を実行する能力を除去してもよい。
プログラミング可能なプロセッサでは、2つのタイプの命令符号化、データ固定符号化(data stationary encoding)と時間固定符号化(time stationary encoding)が考えられる。データ固定符号化は最も一般的なタイプであり、ここでは1個のデータ案件の全ての処理形態(フェッチ、デコード、計算、書き込み)に関連した全ての情報が、処理が行われる実際の時刻と関係なく、同一の命令に符号化される。このため、データ固定プロセッサ(data stationary processor)は、これらの処理形態を実行するのに必要な全ての内部プロセッサリソースが適切な制御情報を適切な時間タイミングで受け取るように、自分で命令情報を遅延させなければならない。プロセッサのパイプラインは、プログラムでは直接視認することができない。これは時間固定符号化では異なっている。これらのプロセッサでは、命令は、これらの命令がプロセッサが動作を実行する時のある瞬間に必要な全ての情報を含むように、符号化される。パイプラインプロセッサの場合では、これはこのプロセッサに適用されるプログラムでこのパイプラインが視認できることを意味する。2つのタイプの符号化は、それぞれの利点と不利点を持つ。データ固定符号化は、普通はより小さなコードサイズを可能とするが、命令にエンコードされた制御信号を遅延させるのに追加のハードウェアが必要となるという負担がある。時間固定符号化は、遅延ハードウェアのオーバヘッドを削減することに用いることができるが、コードサイズが大きくなるという負担がある。このため、時間固定符号化は主にアプリケーション(領域)特定のプロセッサで用いられ、このプロセッサは比較的小さなプログラムを実行する。遅延ハードウェアを必要としないということは、時間固定符号化を、高度に並列なVLIWコアにとりわけ適合したものとする。さもなければこのVLIWはコアは大量の遅延ハードウェアを必要とする。時間固定符号化では、1個の演算に関連した情報は通常異なるサイクルで発生された数個の命令に渡って分散しており、これは1個の演算に対応したNOP情報が複数の命令に分散していることを意味する。
時間固定符合化においては命令が直接機能ユニット、レジスタファイルおよびバスマルチプレクサを制御するので、プロセッサが時間固定プロセッサ(time stationary processor)の場合は、本発明が提供する方法は更に容易に実行できる。命令によって何のリソースが制御されるか決定するプロセッサモデルが得られるならば、とにかく本方法はデータ固定プロセッサにも適用可能である。
プロセッサがマイクロコード化したプロセッサである場合、本発明が提供する方法は更に容易に実行できる。マイクロコードはどのリソースが用いられ、どのリソースが用いられないか詳細に指定する。とにかく本方法は、プロセッサがどのようにして高級命令コードをプロセッサのリソースを制御するマイクロコードにデコードするか、というモデルが得られるならば、プロセッサが高級命令コードによって制御される場合にも適用可能である。
本発明が提供する方法は、プロセッサを設計する設計システムに実装することができる。
本発明の上記および他の態様を以下の図面を参照してもっと詳細に説明する。
図1はプロセッサのアーキテクチャの例を示す。 図2は本発明による方法を概略的に示す。 図3は本方法が適用されるプロセッサアーキテクチャを説明する一部分を概略的に示す。 図4はもう1つのプロセッサアーキテクチャの例を示す。 図5は本方法が適用される前記のもう1つのプロセッサアーキテクチャを説明する一部分を概略的に示す。 図6は本発明の第1の実施形態である、プロセッサを設計する設計システムを示す。 図7は本発明の第2の実施形態である、プロセッサを設計する設計システムを示す。
以下の詳細な説明では、本発明の充分な理解のために、多くの詳細な内容が記載されている。なお、しかしながら当業者はこれらの詳細な説明無しに本発明を実施できるであろう。その他、本発明の特徴を不明瞭にしないように、良く知られた方法、手順および要素については詳細には説明されていない。
例として、本発明による方法の1つの実施形態を、図1に示すようなプロセッサアーキテクチャを参照して説明する。図1に示すプロセッサは、データをレジスタファイル(RF1、...RFn)にレジスタファイル書き込みポートを通して格納する。レジスタファイルは、レジスタファイルにおけるレジスタの数である、特定の容量を持つ。レジスタファイルにおけるデータはレジスタファイル読み込みポート(rp)を通して読み込まれ、イシュースロット入力ポート(is-ip)を経由して機能ユニット入力ポート(fu-ip)に供給される。この機能ユニットは、機能ユニット出力ポート(fu-op)における出力値を生成する前記データでの演算を実行し、この出力値はイシュースロット出力ポート(is-op)に転送される。ここから、バス入力ポート(bus-ip)を介して、この値は1つ以上のバスに送られる。次に、この値はバス出力ポート(bus-op)から1つ以上のレジスタファイル書き込みポート(wp)に送られる。
図示されているプロセッサは時間固定でエンコードされている。これらのプロセッサでは、命令は、プロセッサがこれらの命令の動作を実行するある瞬間に必要な全ての情報を含むようにエンコードされる。パイプラインプロセッサの場合、これはプロセッサに適用されたプログラムにおいて、パイプラインが確認できることを意味する。
上記に斜体で示す、プロセッサのリソースの各々はあるプログラムセットで用いられても用いられなくともよい。プログラムを解析すると、このようなリソースが明らかになり、プログラムで使用されるプロセッサリソースのリストが得られる。この解析は、時間固定エンコーディングされたプロセッサではとりわけ分かり易い。このリソースのリストは、プロセッサから全ての不使用のリソースを取り除くことに用いられる。これは各レジスタファイルのレジスタファイル容量を削減し、命令セットを制限し、特定のポートおよび特定のバスを取り除く。これはレジスタファイル、機能的ユニットまたはイシュースロットを完全に取り除くことさえ行う。
このように縮小されたプロセッサは、元々のプロセッサよりプログラムがもっと容易でないが、少なくともこのプロセッサが構成されたプログラムをサポートするであろう。また面積、速度、電力およびコードサイズに関して、元々のプロセッサよりもずっと効率的であろう。
改良されたコードサイズを採用するためには、プログラムは縮小されたプロセッサ用に再コンパイルされる必要がある。本発明による方法は、他にデータ固定符号化のプロセッサに適用してもよい。最も一般的なタイプである、データ固定符号化においては、1個のデータ案件の処理に関連した全ての情報が同一の命令にエンコードされる。例えば、データ固定形式で2つの値の加算をエンコードするには、命令コード‘add’、引数アドレス‘a’および‘b’、そして結果アドレス‘c’が同一の命令(すなわちc=add(a,b))に全てエンコードされる。この仕様は、プロセッサの可能な内部パイプライン化に拘わり無く同様である。これより、データ固定プロセッサは自分自身が、全ての内部プロセッサリソースが適切な制御情報を適切な時間タイミングで、命令情報を遅延しなければならない。プロセッサのパイプラインはプログラムにおいては直接視認可能ではない。2つのタイプの符号化は、それぞれの利点と不利点を持つ。データ固定符号化は、普通はより小さなコードサイズを可能とするが、命令にエンコードされた制御情報を遅延するのに追加のハードウェアが必要となるという負担がある。
時間固定符号化は、遅延ハードウェアのオーバヘッドを削減するために用いることができるが、コードサイズが大きくなるという負担がある。このため、時間固定符号化は主にアプリケーション(領域)特定のプロセッサで用いられ、このプロセッサは、比較的小さなプログラムを実行する。遅延ハードウェアを必要としないということは、時間固定符号化を、高度に並列なVLIWコアにとりわけ適合したものとする。さもなければこのVLIWコアは大量の遅延ハードウェアを必要とする。
時間固定符号化では、1個の演算に関連した情報は通常異なるサイクルで発生された数個の命令に渡って分散しており、これは1個の演算に対応したNOP情報が複数の命令に分散していることを意味する。更に、時間固定プロセッサの命令は、しばしば演算を最小の個体としてエンコードしない。この代わりに、これらの命令は、機能ユニット、レジスタファイルおよびバスマルチプレクサなどのリソースを直接制御する、制御情報をエンコードする。この、実際のリソース制御からの‘抽象的’演算の分離は、1個のプロセッササイクルにおける、1個の演算の結果を複数のレジスタファイルに任意に書き込みできるマルチキャスティングのような技術を可能とする。この分離の結果、時間固定命令の同一のフィールド(例えばレジスタ書き込みインデクスフィールド)は、異なるクロックサイクルで、異なるイシュースロットにおいて実行される演算に対応した情報を持つことができる。
図2は、プロセッサ設計のための、本発明による方法の1つの実施形態を概略的に示す。
最初のステップで、プロセッサの初期モデルが提供され、ここで加算器、乗算器およびもっと複雑な処理素子などの処理装置、そしてメモリ、キャッシュおよびレジスタファイルなどの記憶装置、そしてバス、ネットワークおよび他の装置とのダイレクトリンクなどの相互接続装置が指定される。このモデルは通常、LISAまたはnMLのような高級言語2の、機械読み込み可能な表現となっている。機械読み込み可能な表現とは、例えば抽象構文木(abstract syntax tree)表現の形態であり、普通は高級言語の仕様による専用のコンパイラによって自動的に(S1)生成される。米国出願公開公報US2005−0246680A1は、このような抽象構文木表現の生成を更に詳細に記載している。
例として、図3にリソースの表を示す。これらは図1のプロセッサに示されている、レジスタファイルRF1、...RFn、BUS1、...BUSkおよびイシュースロットIS1、...ISmである。この表に示されているように、いくつかのリソース、ここではイシュースロットは、機能ユニットFU1、FU2..をサブリソースとして持つ。図1および図3に示す実施形態では、第1のイシュースロットは第1の機能ユニットとして加算器を持ち、第2の機能ユニットとして乗算器を持つ。リソースの各々は、1つ以上のパラメータでパラメータ化されている。例えば、レジスタファイルは、それらのポート数、容量、幅およびレーテンシでパラメータ化され、各パラメータには値が示されている。
好ましくは、プロセッサの整合性はプロセッサモデルから検査される。このモデルで使用されたリソースはスクラッチから生成されてもよいが、好ましくは、一般的な構成ブロックとしてライブラリ3で得られる。そのような構成ブロックはリソースを一般的な方法で記述するが、これは例えばレジスタファイルに対して、容量、幅およびレーテンシが未だ決定されていないということを意味する。そのような構成ブロックのパラメータは、マシンモデル1から抽出された実際の値で埋められる。この全てのプロセスは、手書きのパラメータ化した構成ブロックによるマシン全体をモデル化することになる。
次のステップS2では、統計的確率4が提供され、これは選択されたアプリケーションによるリソースが使用を必要とすることを示唆する。好ましくは、これらの統計的確率は、使用されるアプリケーションの一部となるソフトウェア5のコンパイルにより提供される。コンパイラは、これが生成する実行ファイルでリソースをスケジュールしなければならないので、このような情報をステップS2で提供することができる。コンパイラは、どのリソースが初期プロセッサモデルでスケジュールされるかそしてどの程度スケジュールされるか、そしてどれがスケジュールされないかを決定する。コンパイラは、初期プロセッサモデル1から自動的に生成されるか、またはこの初期プロセッサモデル1を用いてテンプレートから構築されるが、他の方法として手で書いてもよい。コンパイラは、更に実行可能なコード6を提供する。コーウェア(CoWare、登録商標)社のプロセッサデザイナー(Processor Designer)は自動コンパイラ生成のための装置を提供する。自動コンパイラ生成はまた、ホーエナウアー氏等の論文「ADLプロセッサモデルによるCコンパイラ生成に適した方法論およびツール」に記載されている(論文‘A methodology and tool suite for C compiler generation from ADL processor’, by Hoheneuer, M.;Scharwaechter, H.;Karuri, K.;Wahlen,O.;Kogel, T.;Leupers, R.;Ascheid, G.;Meyr, H.;Braun, G.;van Someren, H., Design, Automation and Test in Europe Cinference and Exhibition, 2004. Proceedings Volume 2, Issue, 16-20 Feb.2004 Page(s):1276-1281 Vol.2)。
従って、このステップ以降は、図3に示す表は、目的とするアプリケーションでどの程度実際に使用されるかを示す情報で完成される。例えば、ステップS2でコンパイラは、このアプリケーションが容量UCR1のみを使用することを決定する。必要な使用を示す統計的確率を決定するために、コンパイラを用いる代わりに、これらの統計的確率は、専用のプログラムにより得られてもよい。この専用のプログラムは、単に統計的確率を提供するだけで、実行ファイルを生成しない。
次のステップS3は、リソースパラメータを緩和し、および/または統計的確率に基づいて初期仕様で特定されたリソースの量を制限することを含む。
統計的確率が、リソースが使用されないことを示す場合は、これらのリソースは、ステップS3でマシンモデルから除去される。この統計的確率がリソースの特定の量のみの使用を示す場合、例えば使用される容量UCR1が指定の幅UR1より小さい場合は、これよりこのリソースの容量は縮小され、好ましくは、使用される容量UCR1まで縮小される。統計的確率が、バスが指定のレーテンシLB1より長い、最大のレーテンシULB1をもつことのみを必要とすることを示す場合は、バスに対してはレーテンシへの必要条件がLB1以上の値に緩和され、好ましくは、ULB1とすることで満足される。
実行ファイルコード6の実行は、ステップS4でシミュレートされる。ログファイル7は結果として提供される。実行は、抽象的プロセッサモデル1に基づいて、またはRTL記述8に基づいて、またはブロックS4への点線の矢印で示されるように、ネットリスト9を用いてシミュレートされる。
得られたマシンモデルは、RTL形式8、例えばVHDLまたはVerilog(登録商標)に変換され(S5)、またはRTL記述8はこのマシンモデルおよび追加の情報から生成される。これに続いてRTL記述8はステップS6で、従来の合成ツールによってゲートレベル記述9に合成される。そのようなツールは、例えばシノプシス(Synopsys、登録商標)社とケーデンス(Cadence、登録商標)社から供給されている。
他のもう1つのマシンモデルを図4に示す。この場合プロセッサは、MIPSで設計され、http://mi.eng.cam.ac.uk/~ahg/proj1_07.htmlで公開されているような、データ固定RISCプロセッサである。このプロセッサは従来の5段のパイプライン構造を持ち、命令フェッチ段100、命令デコード/レジスタフェッチ段110、実行/アドレス計算段120、メモリアクセス段130およびライトバック段140を備える。各々の連続した2つの段の間には、それぞれレジスタ109、119、129、139があり、それぞれの段のパイプライン演算を可能としている。
図5の表は、初期プロセッサモデルのリソースをまとめたものである。命令フェッチ段100は、プログラムカウンタ101、このプログラムカウンタによりアドレス指定される命令メモリ102、およびプログラムカウンタを1つづつインクレメントするための加算器103を備える。命令フェッチ段100は、パイプラインレジスタ109を介して命令デコード/レジスタフェッチ段110に接続されている。命令デコード/レジスタフェッチ段110は、レジスタファイル111、符号拡張ユニット112、制御ユニット113、およびこの命令デコード/レジスタフェッチ段110を実行/アドレス計算段120に接続する、パイプラインレジスタを備える。実行/アドレス計算段120は、加算器121、左シフトユニット122、ALU123、このALU125の制御器、およびマルチプレクサ124と126を備える。この実行/アドレス計算段は、パイプラインレジスタ129を介してメモリアクセス段130に接続されている。メモリアクセス段130にはデータメモリ132およびゲート131が設けられている。ゲート131は、マルチプレクサ104を制御し、プログラムカウンタ値を1つづつ増加するように選択するか、または目標値にジャンプするように選択する。メモリアクセス段130は、パイプラインレジスタ139によってライトバック段140に接続されている。このライトバック段140はマルチプレクサ141を備える。
図1に示す初期プロセッサ構造の場合に類似して、リソースは1つ以上のパラメータで特徴付けられる。例として、それらのリソースのいくつかに対するパラメータが図5に示されている。例えば、プログラムカウンタ101は、カウンタのカウント範囲を示すパラメータn−pcを持つ。このカウンタ101は初期(デフォールト)範囲NPC1を持っていてもよい。このプロセッサ構造で使用されているメモリ102、132はアドレス範囲でパラメータ化される。例えば、命令メモリ102は、初期値がNIM1のアドレス範囲n−addrを持ち、データメモリ132は、初期値がNDM1のアドレス範囲n−addrを持つ。
他のリソースは所定の大きさを持つが、これらのリソースは、プロセッサ構造に存在するかどうかを示すパラメータを伴っていてよい。例えば、加算器121は、パラメータ‘n−add’を伴う。NADD1=1(default)の値はこの加算器がこのプロセッサ構造に存在することを示している。NADD1=0は、この加算器が存在しないことを示している。更に、他のリソースは、それらの機能性が存在することを示す複数のパラメータを持っていてよい。例えば、ALU123は、それが加算能力を持っているかどうかを示す第1のパラメータ‘n−add’および乗算能力をもっているかどうかを示す第2のパラメータn−mulをもっている。n−addのデフォールト値NADD2=1は、加算能力が存在することを示し、n−mulのデフォールト値NMUL1=1は、乗算能力が存在することを示す。
このプロセッサ構造では、プログラムカウンタ101をインクレメントする加算器103のように、他のリソースは必須である。この加算器の幅は、プログラムカウンタ101のサイズに合わせて自動的に伸縮されてよい。代替としてこの加算器は、固定の幅を持っていてもよい。
図1を参照して説明した初期プロセッサ構造の場合に類似して、図2を参照して説明する方法が適用される。本方法のステップS2は、初期プロセッサ構造において説明された種々のリソースの使用を示す統計的確率4を提供した。この提供された統計的確率は、例えば、図5の表の「使用/非使用」の列に示されている。そこでは、例えば、UNPC1の値はカウンタ101の実際に使用されるカウント範囲を示す。このプロセッサ構造で使用されるメモリ102、132はあるアドレス範囲でパラメータ化される。UNIM1およびUNDM2の値は、それぞれ命令メモリ102およびデータメモリ132に使用されるアドレス範囲を示す。UNADD2の値は、加算器121がこのアプリケーションで使用されるかどうかを示す。UNADD=1、0はそれぞれ、この加算器が使用されるかされないかを示す。UNADD3の値は、ALU123の加算能力がこのアプリケーションで使用されるかどうか(1=yes、0=no)を示し、UNMUL1は、ALU123の乗算能力が使用されるかどうか(1=yes、0=no)を示す。
図1のプロセッサ構造に類似して、統計的確率情報4が、リソースパラメータを緩和するため、および/またはこの統計的確率に基づいて、初期仕様1で指定されたリソースの量を制限するために、ステップS3で用いられる。プロセッサの仕様1は、このように補正され、ステップS5でRTL仕様に変換され、そしてステップS6でネットリストに合成される。
図6は、プロセッサを設計するための設計システムを示す。この設計システム10は、プロセッサの初期モデル20を受け取るための装置11を備え、この初期モデルはリソースパラメータおよびそれらの相互関係に関連して、複数のリソースを指定する。この装置11は、例えば初期モデルを格納する記憶ユニットに結合されるデータリンクである。この設計装置は、選択されたアプリケーション22で使用が必要なリソースを示す統計的確率を提供する装置12を更に備える。この装置12は、例えば、図2を参照して説明されたステップS2を実行するプロセッサである。この設計システムは、更に、統計的確率に基づいて、少なくとも1つのパラメータを緩和するための、および/または初期仕様で指定されたリソースの量を制限するための装置13を備える。この装置13は、図2を用いて説明されたステップS3のプロセスを実行するプロセッサであってもよい。装置13によってモジュールのライブラリを用いて得られた最終仕様からのRTL記述を生成するため、そしてゲートレベル記述24を合成するために、装置14が更にもうけられる。この装置14は、ステップS5およびステップS6を実行するプロセッサであってよい。装置12、13および14は、代替として1つのプロセッサに実装されてよい。これらの装置を実装するための1つ以上のプロセッサは、専用のハードウェアの形態であってよいが、他にも、適合したソフトウェアを実行する汎用プロセッサの形態であってよい。
この設計システムの全ての素子が同じ場所にある必要はない。1つの実施形態では、素子は、例えばインターネットのようなデータ接続を介して結合されてよい。この設計システムは、例えば、図7の代替実施形態に示すように、サーバおよびクライアントステーションを備えてよい。ここでは、このクライアントステーションは、選択されたアプリケーション22で使用が必要なリソースを示す統計的確率を提供する装置12と、この統計的確率に基づいて、少なくとも1つのパラメータを緩和するための、および/または初期仕様で指定されたリソースの量を制限するための装置13とを持つ。サーバステーションは、プロセッサの初期モデルを受け取るための装置11と、モジュールのライブラリ25を用いて装置13によって得られる最終仕様からのRTL記述を生成するための装置14とを持ってよい。サーバステーションは、好ましくは、初期プロセッサモデル20およびモジュールのライブラリ25を格納し、一方ではクライアントステーションは、アプリケーション22、および最終結果である、RTL記述および/またはこの記述から合成されるゲートレベル記述24、についての情報を格納する。
請求項においては、「備える(comprising)」は、他の素子またはステップを除外せず、不定冠詞“a”または“an”は複数を除外しない。単一のデバイス(element)または他のユニットは請求項で列挙された数個の機能を充足してもよい。特定の複数の方法が、互いに異なる請求項で列挙されているということは、これらの方法の組み合わせが、有利となるように用いられないということを意味しない。請求項における参照番号は本発明の範囲を限定するために解釈されるものではない。

Claims (9)

  1. プロセッサを設計する方法であって、
    リソースパラメータを用いて複数のリソースを特定する、前記プロセッサの初期モデルを提供するステップと、
    選択されたアプリケーションで使用が必要なリソースを示す統計的確率を提供するステップと、
    統計的確率に基づいて、少なくとも1つのリソースパラメータの緩和、および/または初期仕様で特定されたリソースの量の制限を行うステップとを含むことを特徴とする方法。
  2. 請求項1に記載の方法において、
    前記リソースは複数の処理リソース、複数の記憶リソースおよび複数の通信リソースの少なくとも1つを備えることを特徴とする方法。
  3. 請求項1に記載の方法において、
    前記プロセッサはVLIWプロセッサであることを特徴とする方法。
  4. 請求項1に記載の方法において、
    前記プロセッサは時間固定プロセッサであることを特徴とする方法。
  5. 請求項1に記載の方法において、
    前記プロセッサはデータ固定プロセッサであることを特徴とする方法。
  6. 請求項1乃至5のいずれか1項に記載の方法において、
    前記プロセッサはマイクロコード化したプロセッサであることを特徴とする方法。
  7. 請求項1に記載の方法において、
    選択されたアプリケーションで前記の使用が必要とされる前記リソースを示す前記統計的確率が、前記選択されたアプリケーションで用いられるソフトウェアをコンパイルするコンパイラによって提供されることを特徴とする方法。
  8. プロセッサを設計する設計システムであって、
    前記プロセッサの初期モデル(20)を受け取るための装置(11)を備え、前記初期モデルはリソースパラメータおよびそれらの相互関係に関連して、複数のリソースを指定し、
    更に、選択されたアプリケーション(22)で使用が必要な前記リソースを示す統計的確率を提供する装置(12)と、
    更に、前記統計的確率に基づいて、少なくとも1つのパラメータを緩和するための、および/または前記初期仕様で指定されたリソースの量を制限するための装置(13)とを備えることを特徴とする設計システム。
  9. 請求項8に記載の設計システムにおいて、
    サーバステーション(S)と、クライアントステーション(C)とを備え、
    前記クライアントステーション(C)は、選択されたアプリケーション22に前記使用が必要なリソースを示す統計的確率を提供する前記装置(12)と、前記統計的確率に基づいて、少なくとも1つのパラメータを緩和するための、および/または前記初期仕様で指定されたリソースの量を制限するための前記装置(13)とを有し、
    前記サーバステーション(S)は、前記プロセッサの前記初期モデルを受け取るための前記装置(11)を有することを特徴とする設計システム。
JP2010531979A 2007-11-01 2008-10-31 プロセッサの設計方法および設計システム Expired - Fee Related JP5441911B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US98459307P 2007-11-01 2007-11-01
US60/984,593 2007-11-01
PCT/NL2008/050688 WO2009058017A1 (en) 2007-11-01 2008-10-31 Application profile based asip design

Publications (2)

Publication Number Publication Date
JP2011503695A true JP2011503695A (ja) 2011-01-27
JP5441911B2 JP5441911B2 (ja) 2014-03-12

Family

ID=40261366

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010531979A Expired - Fee Related JP5441911B2 (ja) 2007-11-01 2008-10-31 プロセッサの設計方法および設計システム

Country Status (5)

Country Link
US (1) US8433553B2 (ja)
EP (1) EP2210201A1 (ja)
JP (1) JP5441911B2 (ja)
KR (2) KR20100072100A (ja)
WO (1) WO2009058017A1 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120054420A1 (en) 2010-08-31 2012-03-01 Jeonguk Kang Storage device and stream filtering method thereof
US9558247B2 (en) 2010-08-31 2017-01-31 Samsung Electronics Co., Ltd. Storage device and stream filtering method thereof

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000349159A (ja) * 1999-06-04 2000-12-15 Handotai Rikougaku Kenkyu Center:Kk システムlsiの製造方法及びその方法で製造されたシステムlsi
JP2003256487A (ja) * 2002-03-06 2003-09-12 Fujitsu Ltd 設計支援システム及び設計支援方法
JP2003288203A (ja) * 2002-03-27 2003-10-10 Asahi Kasei Corp プロセッサの開発支援装置
JP2005100188A (ja) * 2003-09-25 2005-04-14 Rohm Co Ltd 集積回路およびその回路を備える電子装置
JP2005269025A (ja) * 2004-03-17 2005-09-29 Oki Joho Systems:Kk 論理合成サーバおよびそれにより製造されたプログラマブルロジックデバイス
JP2006259805A (ja) * 2005-03-15 2006-09-28 Seiko Epson Corp プロセッサ設計装置、プロセッサ設計方法およびプロセッサ設計プログラム
JP2007233990A (ja) * 2006-02-01 2007-09-13 Denso Corp 情報処理装置およびその回路設計方法

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6199152B1 (en) * 1996-08-22 2001-03-06 Transmeta Corporation Translated memory protection apparatus for an advanced microprocessor
US7016811B2 (en) * 2001-08-15 2006-03-21 National Instruments Corporation Network-based system for configuring a programmable hardware element in a measurement system using hardware configuration programs generated based on a user specification
US6477683B1 (en) * 1999-02-05 2002-11-05 Tensilica, Inc. Automated processor generation system for designing a configurable processor and method for the same
US6453407B1 (en) * 1999-02-10 2002-09-17 Infineon Technologies Ag Configurable long instruction word architecture and instruction set
US6772106B1 (en) * 1999-08-20 2004-08-03 Hewlett-Packard Development Company, L.P. Retargetable computer design system
US6629312B1 (en) * 1999-08-20 2003-09-30 Hewlett-Packard Development Company, L.P. Programmatic synthesis of a machine description for retargeting a compiler
US6408428B1 (en) * 1999-08-20 2002-06-18 Hewlett-Packard Company Automated design of processor systems using feedback from internal measurements of candidate systems
US6385757B1 (en) * 1999-08-20 2002-05-07 Hewlett-Packard Company Auto design of VLIW processors
US6963823B1 (en) * 2000-02-10 2005-11-08 Hewlett-Packard Development Company, L.P. Programmatic design space exploration through validity filtering and quality filtering
WO2001095161A2 (en) * 2000-06-02 2001-12-13 Virtio Corporation Method and system for virtual prototyping
US20030171907A1 (en) 2002-03-06 2003-09-11 Shay Gal-On Methods and Apparatus for Optimizing Applications on Configurable Processors
CN1659540A (zh) * 2002-06-03 2005-08-24 皇家飞利浦电子股份有限公司 可重配置集成电路
WO2004012083A2 (en) 2002-07-25 2004-02-05 Koninklijke Philips Electronics N.V. Source-to-source partitioning compilation
US7373638B1 (en) 2002-08-16 2008-05-13 Coware, Inc. Automatic generation of structure and control path using hardware description language
DE10344847A1 (de) * 2003-09-26 2005-04-14 Philips Intellectual Property & Standards Gmbh Verfahren zum Compilieren eines Quellcode-Programms in ein maschinenlesbares Zielobjekt-Programm in einer Netzwerkumgebung
US7788078B1 (en) * 2004-02-27 2010-08-31 Synopsys, Inc. Processor/memory co-exploration at multiple abstraction levels
US7395419B1 (en) * 2004-04-23 2008-07-01 Apple Inc. Macroscalar processor architecture
US7617496B2 (en) * 2004-04-23 2009-11-10 Apple Inc. Macroscalar processor architecture
US7886255B2 (en) * 2007-01-22 2011-02-08 Texas Instruments Incorporated Method for design of programmable data processors

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000349159A (ja) * 1999-06-04 2000-12-15 Handotai Rikougaku Kenkyu Center:Kk システムlsiの製造方法及びその方法で製造されたシステムlsi
JP2003256487A (ja) * 2002-03-06 2003-09-12 Fujitsu Ltd 設計支援システム及び設計支援方法
JP2003288203A (ja) * 2002-03-27 2003-10-10 Asahi Kasei Corp プロセッサの開発支援装置
JP2005100188A (ja) * 2003-09-25 2005-04-14 Rohm Co Ltd 集積回路およびその回路を備える電子装置
JP2005269025A (ja) * 2004-03-17 2005-09-29 Oki Joho Systems:Kk 論理合成サーバおよびそれにより製造されたプログラマブルロジックデバイス
JP2006259805A (ja) * 2005-03-15 2006-09-28 Seiko Epson Corp プロセッサ設計装置、プロセッサ設計方法およびプロセッサ設計プログラム
JP2007233990A (ja) * 2006-02-01 2007-09-13 Denso Corp 情報処理装置およびその回路設計方法

Also Published As

Publication number Publication date
KR101528415B1 (ko) 2015-06-11
KR20100072100A (ko) 2010-06-29
KR20130124589A (ko) 2013-11-14
WO2009058017A1 (en) 2009-05-07
US20090281784A1 (en) 2009-11-12
US8433553B2 (en) 2013-04-30
EP2210201A1 (en) 2010-07-28
JP5441911B2 (ja) 2014-03-12

Similar Documents

Publication Publication Date Title
Weng et al. Dsagen: Synthesizing programmable spatial accelerators
Leupers et al. A design flow for configurable embedded processors based on optimized instruction set extension synthesis
Qin et al. A formal concurrency model based architecture description language for synthesis of software development tools
Mei et al. Adres & dresc: Architecture and compiler for coarse-grain reconfigurable processors
Chattopadhyay et al. LISA: A uniform ADL for embedded processor modeling, implementation, and software toolsuite generation
Beck et al. A transparent and adaptive reconfigurable system
Stitt et al. Binary synthesis
La Rosa et al. Implementation of a UMTS turbo decoder on a dynamically reconfigurable platform
Emami et al. Manticore: Hardware-accelerated RTL simulation with static bulk-synchronous parallelism
Mittal et al. Automatic translation of software binaries onto FPGAs
JP5441911B2 (ja) プロセッサの設計方法および設計システム
Hoang et al. Design space exploration for an embedded processor with flexible datapath interconnect
Meloni et al. Enabling Fast ASIP Design Space Exploration: An FPGA‐Based Runtime Reconfigurable Prototyper
Kornaros Application-Specific Customizable Embedded Systems
Zaretsky et al. Overview of the FREEDOM compiler for mapping DSP software to FPGAs
Bonorden et al. A holistic methodology for network processor design
Fl et al. Dynamic Reconfigurable Architectures and Transparent Optimization Techniques: Automatic Acceleration of Software Execution
Chattopadhyay et al. Language-driven exploration and implementation of partially re-configurable ASIPs
Paulino et al. A reconfigurable architecture for binary acceleration of loops with memory accesses
Boppu Code Generation for Tightly Coupled Processor Arrays
Guo et al. Automation of IP core interface generation for reconfigurable computing
Noori et al. A reconfigurable functional unit with conditional execution for multi-exit custom instructions
Huang et al. Profiling and annotation combined method for multimedia application specific MPSoC performance estimation
Lajolo et al. Scalable techniques for system-level cosimulation and coestimation
Stripf et al. A flexible approach for compiling scilab to reconfigurable multi-core embedded systems

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110420

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120521

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120529

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20120821

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20120828

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20120924

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20121001

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20121029

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20121105

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20121119

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20121119

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20121218

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20131217

R150 Certificate of patent or registration of utility model

Ref document number: 5441911

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees