JP5437878B2 - 情報処理装置 - Google Patents

情報処理装置 Download PDF

Info

Publication number
JP5437878B2
JP5437878B2 JP2010075180A JP2010075180A JP5437878B2 JP 5437878 B2 JP5437878 B2 JP 5437878B2 JP 2010075180 A JP2010075180 A JP 2010075180A JP 2010075180 A JP2010075180 A JP 2010075180A JP 5437878 B2 JP5437878 B2 JP 5437878B2
Authority
JP
Japan
Prior art keywords
data
data read
instruction
branch
read branch
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.)
Active
Application number
JP2010075180A
Other languages
English (en)
Other versions
JP2011209859A (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.)
Renesas Electronics Corp
Original Assignee
Renesas Electronics Corp
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 Renesas Electronics Corp filed Critical Renesas Electronics Corp
Priority to JP2010075180A priority Critical patent/JP5437878B2/ja
Priority to US13/073,992 priority patent/US9619228B2/en
Publication of JP2011209859A publication Critical patent/JP2011209859A/ja
Application granted granted Critical
Publication of JP5437878B2 publication Critical patent/JP5437878B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/30098Register arrangements
    • G06F9/30101Special purpose registers
    • 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/30003Arrangements for executing specific machine instructions
    • G06F9/3005Arrangements for executing specific machine instructions to perform operations for flow control
    • G06F9/30058Conditional branch instructions
    • 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/30181Instruction operation extension or modification
    • G06F9/30192Instruction operation extension or modification according to data descriptor, e.g. dynamic data typing
    • 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/32Address formation of the next instruction, e.g. by incrementing the instruction counter
    • G06F9/322Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Executing Machine-Instructions (AREA)
  • Advance Control (AREA)

Description

本発明は、CPU(Central Processing Unit;中央処理装置)を含む情報処理装置に関し、例えばマイクロプロセッサに適用して有効な技術に関する。
情報処理装置の一例とされるマイクロプロセッサ等では、プログラムにおいてテーブル参照処理の実行が求められる場合がある。例えば画像符号化処理のようなアプリケーションでは、可変長符号処理等において、テーブル参照処理が行われる。この場合、参照テーブルをデータメモリ上にマッピングし、テーブルインデックスをデータメモリアドレス、テーブル参照結果データをデータメモリワード値に対応させることで処理を実現する。こうした処理では、さらに参照結果データに応じて、特殊処理を行う場合が存在する。例えば画像符号化処理であればMPEG−2(エムペグツー、ISO/IEC 13818)等におけるRUN/LEVEL(ランレベル)復号処理におけるESCAPE(エスケープ)処理や、映像ストリームの復号処理においてエラーが検出された場合のエラー処理などである。このような特殊処理のために、参照結果データを特定の値に設定する、あるいは特定のビットフィールドをアサートしておき、テーブル参照結果データをチェックし、条件分岐命令により特殊処理へ分岐する等の処理が行われる。特許文献1には、複数命令の組み合わせで前記のような処理を実現する、マイクロプロセッサ等のデータ処理装置が記載されている。かかるデータ処理装置においては、データ転送命令とビット条件分岐命令を前置命令により組み合わせることで、データリード及びリードデータのチェックと分岐処理までを、1命令での処理に見せて処理している。
特開2006−313561号公報
上記従来技術について本願発明者が検討したところ、以下のような課題が見いだされた。
すなわち、メモリからのデータリード及びリード結果データの条件判定、分岐処理という一連の処理は、処理負荷が重く、性能低下要因となり得る。また、特許文献1のようなプロセッサを用いてこの処理を行う場合、プロセッサアーキテクチャが非常に複雑な構成となり、プロセッサのコスト自体も高価になる虞れがある。さらに上記一連の処理を基本命令の組み合わせで実現する場合には、命令コードサイズが大きくなり、またひとつの参照データに対して2種以上の処理へ分岐する可能性がある場合には、2命令以上の実行が必要となり、やはり処理性能低下の要因となる。
本発明の目的は、所定の命令実行により参照したデータの条件に応じて、その後の処理の切り替えを効率良く行うための技術を提供することにある。
本発明の前記並びにその他の目的と新規な特徴は本明細書の記述及び添付図面から明らかになるであろう。
本願において開示される発明のうち代表的なもの概要を簡単に説明すれば下記の通りである。
すなわち、情報処理装置は、命令セットを構成する命令を実行可能なCPUを含む。上記命令セットには、データメモリ空間上のデータを読み込むロード命令が含まれ、上記ロード命令で読み込まれたデータには、データリード分岐発生ビット領域を有するフォーマットタイプのデータが含まれる。上記CPUは、上記データリード分岐発生ビットの有効・無効を制御するデータリード分岐制御レジスタと、上記データリード分岐アドレスを保持可能なデータリード分岐アドレスレジスタと、上記データリード分岐発生ビット領域にデータリード分岐発生を示すビット値が設定され、上記データリード分岐制御レジスタにデータリード分岐発生ビットが有効であることを示す値が設定されていることを解析するリードデータ解析部とを含む。また上記CPUは、上記リードデータ解析部での解析結果に基づいて、上記データリード分岐アドレスレジスタの記憶アドレス値をプログラムカウンタに設定し、上記プログラムカウンタの出力値に基づいて命令をフェッチする命令フェッチ部を含む。
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば下記のとおりである。
すなわち、本発明によれば、所定の命令実行により参照したデータの条件に応じて、その後の処理の切り替えを効率良く行うための技術を提供することができる。
本発明にかかる情報処理装置の一例とされるマイクロプロセッサの構成例ブロック図である。 上記マイクロプロセッサにおけるメモリリードデータのフォーマットを示す図である。 上記マイクロプロセッサにおけるデータリード分岐制御レジスタの構成例説明図である。 上記マイクロプロセッサにおけるリードデータ解析部の構成例を示すブロック図である。 上記マイクロプロセッサにおけるデータリード分岐制御信号の生成処理例を示すフローチャートである。 上記マイクロプロセッサにおけるリードデータ生成処理の流れを示すフローチャートである。 上記マイクロプロセッサにおけるプログラムカウンタの制御の流れを示すフローチャートである。 上記マイクロプロセッサにおけるメモリリードデータのフォーマットを示す図である。 上記マイクロプロセッサにおけるリードデータ解析部の別の構成例ブロック図である。 上記マイクロプロセッサにおけるデータリード分岐制御信号の別の生成処理の流れを示すフローチャートである。 上記マイクロプロセッサにおける別のリードデータ生成処理の流れを示すフローチャートである。 上記マイクロプロセッサの別の構成例を示すブロック図である。 図12に示されるマイクロプロセッサに含まれるリードデータ解析部の構成例ブロック図である。
1.実施の形態の概要
先ず、本願において開示される発明の代表的な実施の形態について概要を説明する。代表的な実施の形態についての概要説明で括弧を付して参照する図面中の参照符号はそれが付された構成要素の概念に含まれるものを例示するに過ぎない。
〔1〕本発明の代表的な実施の形態に係る情報処理装置(1)は、命令セットを構成する命令を実行可能なCPU(130)を含む。上記命令セットには、データメモリ空間上のデータを読み込むロード命令が含まれ、上記ロード命令で読み込まれたデータには、データリード分岐発生ビット領域を有するフォーマットタイプのデータが含まれる。上記CPUは、上記データリード分岐発生ビットの有効・無効を制御するデータリード分岐制御レジスタ(300,310)と、上記データリード分岐アドレスを保持可能なデータリード分岐アドレスレジスタ(320,330)とを含む。また上記CPUは、上記データリード分岐発生ビット領域にデータリード分岐発生を示すビット値が設定され、上記データリード分岐制御レジスタにデータリード分岐発生ビットが有効であることを示す値が設定されていることを解析するリードデータ解析部(60)を含む。さらに上記CPUは、上記リードデータ解析部での解析結果に基づいて、上記データリード分岐アドレスレジスタの記憶アドレス値をプログラムカウンタ(15)に設定し、上記プログラムカウンタの出力値に基づいて命令をフェッチする命令フェッチ部(10)を含む。上記の構成によれば、上記データリード分岐発生ビット領域に、データリード分岐発生を示すビット値が設定され、上記データリード分岐制御レジスタに、データリード分岐発生ビットが有効であることを示す値が設定されていることが、上記リードデータ解析部によって解析された場合に、上記データリード分岐アドレスレジスタに記憶されたアドレス値に分岐される。これにより、ロード命令実行により参照したデータの条件に応じて、その後の処理の切り替えを効率良く行うことができる。特に、データリード分岐制御レジスタや、データリード分岐アドレスレジスタに設定すべき値は、CPUで実行されるプログラム中に記述しておき、それを、レジスタ転送命令等の実行により、上記各レジスタに設定することができるので、データリード分岐アドレス等の変更も容易である。
〔2〕上記〔1〕において、上記メモリ空間に配置されたデバイスには、データメモリを含めることができる。
〔3〕上記〔2〕において、上記メモリ空間に配置されたデバイスには、メモリマップドI/O方式によって上記メモリ空間に配置されたI/Oデバイスを更に含めることができる。
〔4〕上記〔1〕において、Nを2以上の整数とするとき、上記データリード分岐発生ビット領域をNビット構成とし、上記データリード分岐制御レジスタをNビット分設け、上記データリード分岐アドレスレジスタをN本設けることができる。
かかる構成によれば、ひとつの参照データに対して2種以上の処理へ分岐する可能性がある場合において、ひとつのロード命令の実行で対応可能となる。
〔5〕上記〔2〕において、上記命令セットには、第1のロード命令と第2のロード命令とが含まれ、上記第1のロード命令によって読み込まれたデータには、データリード分岐発生ビット領域を有するフォーマットタイプのデータが含まれ、上記第2のロード命令によって読み込まれたデータには、すべてデータ領域とされるフォーマットタイプのデータが含まれるように構成することができる。
かかる構成によれば、例えばデータリード分岐の必要が無い場合には、全ビットをデータ領域として扱うフォーマットに対応するロード命令を使用するなど、必要に応じて、第1のロード命令及び第2のロード命令を使い分けることができる。
〔6〕本発明の代表的な実施の形態に係る別の情報処理装置(1)は、命令セットを構成する命令を実行可能なCPU(130)と、上記CPUによって管理されるI/O空間に配置されたI/Oデバイス(120)とを含む。上記命令セットには、上記I/Oデバイスからデータを読み込むためのI/Oリード命令が含まれ、上記I/Oリード命令で読み込まれるデータには、データリード分岐発生ビットが格納されるデータリード分岐発生ビット領域を有するフォーマットタイプのデータが含まれる。上記CPUは、上記データリード分岐発生ビットの有効・無効を制御するデータリード分岐制御レジスタ(300,310)と、データリード分岐アドレスを保持可能なデータリード分岐アドレスレジスタ(320,330)を含む。また上記CPUは、上記データリード分岐発生ビット領域にデータリード分岐発生を示すビット値が設定され、上記データリード分岐制御レジスタにデータリード分岐発生ビットが有効であることを示す値が設定されていることを解析するリードデータ解析部(60)を含む。さらに上記CPUは、上記リードデータ解析部での解析結果に基づいて、上記データリード分岐アドレスレジスタの記憶アドレス値をプログラムカウンタ(15)に設定し、上記プログラムカウンタの出力値に基づいて命令をフェッチする命令フェッチ部(10)を含む。
かかる構成においては、上記データリード分岐発生ビット領域に、データリード分岐発生を示すビット値が設定され、上記データリード分岐制御レジスタに、データリード分岐発生ビットが有効であることを示す値が設定されていることが、上記リードデータ解析部によって解析された場合には、上記〔1〕の場合と同様に、上記データリード分岐アドレスレジスタに記憶されたアドレス値に分岐される。このため、I/Oリード命令実行により参照したデータの条件に応じて、その後の処理の切り替えを効率良く行うことができる。特に、データリード分岐制御レジスタや、データリード分岐アドレスレジスタに設定すべき値は、CPUで実行されるプログラム中に記述しておき、それを、レジスタ転送命令等の実行により、上記各レジスタに設定することができるので、データリード分岐アドレス等の変更も容易である。
〔7〕上記〔6〕において、Nを2以上の整数とするとき、上記データリード分岐発生ビット領域をNビット構成とし、上記データリード分岐制御レジスタをNビット分設け、上記データリード分岐アドレスレジスタをN本設けることができる。
かかる構成によれば、上記〔4〕の場合と同様に、ひとつの参照データに対して2種以上の処理へ分岐する可能性がある場合において、ひとつのロード命令の実行で対応可能となる。
〔8〕上記〔7〕において、上記命令セットには、第1のI/Oリード命令と第2のI/Oリード命令とが含まれ、上記第1のI/Oリード命令によって読み込まれたデータには、データリード分岐発生ビット領域を有するフォーマットタイプのデータが含まれ、上記第2のI/Oリード命令によって読み込まれたデータには、すべてデータ領域とされるフォーマットタイプのデータが含まれるように構成することができる。この場合には、用途に応じて、メモリリードデータフォーマットタイプを選択することができる。
〔9〕本発明の代表的な実施の形態に係る別の情報処理装置(1)は、命令セットを構成する命令を実行可能なCPU(130)と、上記CPUによって管理されるメモリ空間に配置されたデータメモリ(110)と、上記CPUによって管理されるI/O空間に配置されたI/Oデバイス(120)とを含む。上記命令セットには、上記データメモリからデータを読み込むための第1の命令と、上記I/Oデバイスからデータを読み込むための第2の命令とが含まれ、上記第1の命令又は上記第2の命令によって読み込まれるデータには、データリード分岐発生ビットが格納されるデータリード分岐発生ビット領域を有するフォーマットタイプのデータが含まれる。上記CPUは、上記データリード分岐発生ビットの有効・無効を制御するデータリード分岐制御レジスタ(300,310)と、データリード分岐アドレスを保持可能なデータリード分岐アドレスレジスタ(320,330)を含む。また上記CPUは、上記データリード分岐発生ビット領域に、データリード分岐発生を示すビット値が設定され、上記データリード分岐制御レジスタに、データリード分岐発生ビットが有効であることを示す値が設定されていることを解析するリードデータ解析部を含む。さらに上記CPUは、上記リードデータ解析部での解析結果に基づいて、上記データリード分岐アドレスレジスタの記憶アドレス値をプログラムカウンタ(15)に設定し、上記プログラムカウンタの出力値に基づいて命令をフェッチする命令フェッチ部(10)を含む。
2.実施の形態の詳細
実施の形態について更に詳述する。
《実施の形態1》
図1には、本発明にかかる情報処理装置の一例とされるマイクロプロセッサの構成例が示される。このマイクロプロセッサ1は、特に制限されないが、公知の半導体集積回路製造技術により、単結晶シリコン基板などの一つの半導体基板に形成される。
図1に示されるマイクロプロセッサ1は、特に制限されないが、命令メモリ100、データメモリ110、及びCPU(Central Processing Unit;中央処理装置)130を含む。CPU130は、プログラムカウンタ15を備えた命令フェッチ部10、命令デコーダ部20、レジスタファイル30、ロードストアユニット40、算術論理演算ユニット50、リードデータ解析部60、及びデータリード分岐制御レジスタ70を含む。
命令メモリ100やデータメモリ110は、CPU130に接続されるデバイスであり、CPU130によって管理されるアドレス空間に配置されることによって、CPU130によるアクセスが可能とされる。CPU130によって管理されるアドレス空間のうち、メモリが配置される空間を「メモリ空間」と称する。データメモリ110のアクセスに用いられる命令の一例として、ロード命令やストア命令を挙げることができる。ロード命令は、アドレスで指定されたメモリの内容をレジスタに代入するための命令である。ストア命令は、レジスタ内のデータをメモリへ書き込むための命令である。
命令フェッチ部10は、プログラムカウンタ15の値に対応するアドレスのデータ(命令)を命令メモリ100からフェッチする。命令デコーダ部20は、命令メモリ100からリードされた命令をデコードし、その結果をロードストアユニット40と算術論理演算ユニット50に出力する。本例においては、特に制限されないが、デコードされた命令がロード命令あるいはストア命令の場合には、ロードストアユニット40が動作され、デコードされた命令がロード命令あるいはストア命令以外の場合には、算術論理演算ユニット50が起動されるようになっている。
命令デコーダ部20でデコードされた命令がストア命令の場合、ロードストアユニット40は、命令デコーダ部20から伝達されたアドレス値が示すデータメモリ110のアドレスに対して、命令デコーダ部20から入力されるデータ値を書き込む。
命令デコーダ部20でデコードされた命令がロード命令の場合、ロードストアユニット40は、命令デコーダ部20から伝達されたアドレス値が示すデータメモリ110のアドレスに対してリードアクセスを行う。またロードストアユニット40は、リードデータ解析部60に対して、メモリリードデータイネーブル信号MRDEを出力する。
リードデータ解析部60は、データリード分岐制御レジスタ70から出力されるデータリード分岐ON/OFF制御信号LIOCSに基づいて、データメモリ110からのリードデータを解析し、レジスタファイル30へのライトバック用信号FDWBの供給、及び命令フェッチ部10へのデータリード分岐信号LINの供給を行う。尚、このリードデータ解析部60については後に詳述する。
命令デコーダ部20でデコードされた命令がレジスタ転送、算術演算または論理演算命令の場合、算術論理演算ユニット50は、命令デコード結果に従い、命令デコーダ部20から入力されるソースデータに対して演算を行い、その結果OPRをレジスタファイル30またはデータリード分岐制御レジスタ70に書き込む。レジスタファイル30またはデータリード分岐制御レジスタ70のいずれに結果を書き込むかは、命令オペランドにより規定されるものとする。尚、データリード分岐制御レジスタ70については後に詳述する。
命令デコーダ部20でデコードされた命令が通常の分岐命令の場合、算術論理演算ユニット50は、命令デコーダ部20から入力されるアドレス値を分岐先アドレスとし、命令フェッチ部10に対して分岐先アドレス及び分岐イネーブル信号BESをアサートする。命令デコーダ部20でデコードされた命令が条件分岐命令の場合、算術論理演算ユニット50は、命令デコーダ部20から入力されるソースデータの値と命令オペコードによって指定される条件に従い、分岐イネーブル信号BESをアサートするか否かを決定する。例えばプロセッサ1が、brt(branch if true)の条件分岐命令をサポートしており、命令デコード結果がbrt命令であった場合、算術論理演算ユニット50は、ソースデータ値が非ゼロ値であるか否かを判別し、この比較の結果、非ゼロ値であれば分岐イネーブル信号BESをアサート、ゼロ値であれば分岐イネーブル信号BESをネゲートする。
命令フェッチ部10は、算術論理演算ユニット50からの分岐発生の有無、リードデータ解析部60からのデータリード分岐発生の有無に従い、プログラムカウンタ15を制御し、次に命令メモリ100からフェッチする命令のアドレスを決定する。命令フェッチ部10の詳細な動作については後述する。
次に図2を用いて、メモリからリードしたデータのフォーマットについて説明する。
本実施の形態では、データメモリ110のワード幅が32ビットの場合について示す。尚、これを16ビット幅や64ビット幅等、異なるビット幅へも適用可能である。図2に示されるメモリリードデータフォーマット0は、32ビットデータのうち、最上位ビット(ビット31)をタイプ0データリード分岐発生ビット領域200、最上位から2ビット目(ビット30)をタイプ1データリード分岐発生ビット領域210、残るビット29〜0の30ビットをデータ領域220として定義する。
次に、図3を用いて、データリード分岐制御レジスタ70の構成について説明する。
データリード分岐制御レジスタ70は、上記分岐イネーブル信号BESによる分岐とは異なり、ロード命令によりデータメモリ110から読み込まれたデータに基づいて行われる分岐(これを「データリード分岐」と称する)を制御するために設けられている。このデータリード分岐制御レジスタ70は、特に制限されないが、タイプ0データリード分岐ON/OFF制御レジスタ300、タイプ1データリード分岐ON/OFF制御レジスタ310、タイプ0データリード分岐アドレスレジスタ320、タイプ1データリード分岐アドレスレジスタ330を含んで成る。タイプ0データリード分岐ON/OFF制御レジスタ300、タイプ1データリード分岐ON/OFF制御レジスタ310はそれぞれ”1”または”0”の論理値を設定できるのもとし、タイプ0データリード分岐やタイプ1データリード分岐を発生させるか否かを制御するレジスタである。タイプ0データリード分岐アドレスレジスタ320、タイプ1データリード分岐アドレスレジスタ330はそれぞれ任意の命令メモリアドレス値を設定できるものとし、タイプ0データリード分岐やタイプ1データリード分岐が発生した場合の分岐先アドレスを設定するレジスタである。これらのレジスタに対する値の設定は、レジスタ転送命令等により行うことができる。つまり、データリード分岐制御レジスタ70内の各レジスタに設定すべき値は、CPU130で実行されるプログラム(命令メモリ100に格納されているもの)中に記述されており、それが、レジスタ転送命令等の実行により、データリード分岐制御レジスタ70内の各レジスタに設定される。
図4には、リードデータ解析部60の構成例が示される。
リードデータ解析部60は、データリード分岐信号生成部400とリードデータ生成部410とを含む。データリード分岐信号生成部400は、データリード分岐制御レジスタ70からのデータリード分岐ON/OFF制御信号LIOCS、ロードストアユニット40からのメモリリードデータイネーブル信号MRDE、データメモリ110からのメモリリードデータMRDが入力され、それらの信号からタイプ0データリード分岐信号TYP0−LIN及びタイプ1データリード分岐信号TYP1−LINを生成する。生成されたタイプ0データリード分岐信号TYP0−LIN及びタイプ1データリード分岐信号TYP1−LINは、命令フェッチ部10に出力される。ここで、メモリリードデータイネーブル信号MRDE及びメモリリードデータMRDは、図1におけるライトバック用信号FDWBに含まれ、タイプ0データリード分岐信号TYP0−LIN及びタイプ1データリード分岐信号TYP1−LINは、図1におけるデータリード分岐信号LINに含まれる。データリード分岐信号生成部400での処理の詳細は後述する。リードデータ生成部410は、データリード分岐制御レジスタ70からのデータリード分岐ON/OFF制御信号、ロードストアユニット40からのメモリリードデータイネーブル信号MRDE、データメモリ110からのメモリリードデータMRDが入力され、それらの信号から、ロードデータイネーブル信号及びロードデータを生成する。ロードデータ信号生成部410での処理の詳細は後述する。
次に、データリード分岐を伴うロード命令がフェッチされた場合の各部の動作について説明する。
データリード分岐を伴うロード命令は、ロード命令によりデータメモリ110からリードしたデータの値、及びデータリード分岐制御レジスタ70の設定値により動作が規定される。
図5には、ロード命令実行時のリードデータ解析部60におけるデータリード分岐信号生成処理の流れが示される。
まず、ロードストアユニット40は、ロード命令実行後、データメモリ110からのリードデータがリードデータ解析部60に入力されるタイミングでメモリリードデータイネーブル信号MRDEをアサートする。これはプロセッサのパイプライン等や利用するデータメモリ110のレイテンシに依存して一意に定まるタイミングである。メモリリードデータイネーブル信号MRDEがアサートされていないとき(ステップ510のNo)、すなわち、データメモリ110からの入力データが有効でないとき、リードデータ解析部60は、タイプ0データリード分岐信号、タイプ1データリード分岐信号ともに論理値”0”にネゲートし(ステップ520)、データリード分岐信号生成処理を終了する(ステップ590)。これに対してメモリリードデータイネーブル信号MRDEがアサートされたとき(ステップ510のYes)、すなわちロード命令が実行され、データメモリ110からの入力データが有効であるとき、リードデータ解析部60は、タイプ0データリード分岐発生の有無を判定する(ステップ530)。タイプ0データリード分岐ON/OFF制御レジスタ300の値が非ゼロ値であり、かつ、データメモリ110からのリードデータのタイプ0データリード分岐発生ビット領域200が論理値”1”のとき(ステップ530のYes)、タイプ0データリード分岐信号をアサートする(ステップ540)。タイプ0データリード分岐ON/OFF制御レジスタ300の値がゼロである、もしくはデータメモリ110からのリードデータのタイプ0データリード分岐発生ビット領域200が論理値”0”のとき(ステップ530のNo)、タイプ0データリード分岐信号をネゲートする(ステップ550)。タイプ0データリード分岐生成処理後、タイプ1データリード分岐発生の有無を判定する(ステップ560)。タイプ1データリード分岐ON/OFF制御レジスタ310の値が非ゼロ値であり、かつ、データメモリ110からのリードデータのタイプ1データリード分岐発生ビット領域210が論理値”1”のとき(ステップ560のYes)、タイプ1データリード分岐信号をアサートする(ステップ570)。タイプ1データリード分岐ON/OFF制御レジスタ310の値がゼロである、もしくはデータメモリ110からのリードデータのタイプ1データリード分岐発生ビット領域210が論理値”0”のとき(ステップ560のNo)、タイプ1データリード分岐信号をネゲートする(ステップ580)。タイプ1データリード分岐生成処理後、データリード分岐信号生成処理を終了する(ステップ590)。
図6には、ロード命令実行時のリードデータ解析部60におけるリードデータ生成処理の流れが示される。
リードデータ生成部410は、データリード分岐制御レジスタ70から入力されるタイプ0データリード分岐ON/OFF制御レジスタ300の値を判定する(ステップ710)。この判定において、タイプ0データリード分岐ON/OFF制御レジスタ300の値が非ゼロ値のとき、メモリリードデータMRDのうちタイプ0データリード分岐発生ビット領域200のビット値を論理値”0”に上書きする(ステップ720)。タイプ0データリード分岐ON/OFF制御レジスタ300の値がゼロ値のときは、メモリリードデータMRDに対する操作は行わない。次に、データリード分岐制御レジスタ70から入力されるタイプ1データリード分岐ON/OFF制御レジスタ310の値を判定する(ステップステップ730)。この判定において、タイプ1データリード分岐ON/OFF制御レジスタ310の値が非ゼロ値のとき、メモリリードデータMRDのうちタイプ0データリード分岐発生ビット領域200のビット値を論理値”0”に上書きし(ステップ740)、タイプ1データリード分岐ON/OFF制御レジスタ310の値がゼロ値のとき、メモリリードデータMRDに対する操作は行わない。以上により、リードデータ生成処理を終了する(ステップ750)。このような手順で得られたデータ値は、レジスタファイル30へ書き込む最終的なロードデータ値として出力される。
図7には、命令フェッチ部10におけるプログラムカウンタ15の制御の流れが示される。
プログラムカウンタ15の更新が必要となる各サイクルにおいて、以下の処理が行われる。まず、命令フェッチ部10はタイプ0データリード分岐が発生したか否かを判定する(ステップ810)。リードデータ解析部60から入力されるタイプ0データリード分岐信号がアサートされていた場合(ステップ810のYes)、命令フェッチ部10は、プログラムカウンタ15の値を、タイプ0データリード分岐アドレスレジスタ320に設定されている値に更新し(ステップ870)、プログラムカウンタ15の更新処理を終了する(ステップ880)。タイプ0データリード分岐信号がアサートされていない場合(ステップ810のNo)、命令フェッチ部10は、タイプ1データリード分岐が発生したか否かを判定する(ステップ820)。リードデータ解析部60から入力されるタイプ1データリード分岐信号がアサートされていた場合(ステップ820のYes)、命令フェッチ部10は、プログラムカウンタ15の値を、タイプ0データリード分岐アドレスレジスタ320に設定されている値に更新し(ステップ860)、プログラムカウンタ15の更新処理を終了する(ステップ880)。タイプ1データリード分岐信号がアサートされていない場合(ステップ820のNo)、命令フェッチ部10は、プログラムにおいて分岐が発生したか否かを判定する(ステップ830)。算術論理演算ユニット50から入力される、分岐イネーブル信号BESがアサートされていた場合(ステップ830のYes)、命令フェッチ部10は、プログラムカウンタ15の値を、算術論理演算ユニット50から入力される分岐アドレス値に更新し(ステップ850)、プログラムカウンタ15の更新処理を終了する(ステップ880)。分岐イネーブル信号BESがアサートされていない場合(ステップ830のNo)、命令フェッチ部10は、プログラムカウンタ15の値をインクリメントし(ステップ840)、プログラムカウンタ15の更新処理を終了する(ステップ880)。
このように、データリード分岐発生ビット領域200又は210に、データリード分岐発生を示すビット値が設定され、データリード分岐ON/OFF制御レジスタ300又は310に、データリード分岐発生ビットが有効であることを示す値が設定されている場合に、データリード分岐アドレスレジスタ320又は330に記憶されたアドレス値がプログラムカウンタ15に設定されるようになっている。このため、ロード命令実行により参照したデータの条件に応じて、その後の処理の切り替えを効率良く行うことができる。
以上の処理により、リードデータ解析部60での解析結果に基づいて、分岐が行われるため、ロード命令の結果を参照して分岐を行うような処理を容易に実現することができる。
《実施の形態2》
実施の形態1では、メモリリードデータフォーマットを図2の1種類で実現したが、フォーマットを複数種類設けてもよい。
図8には、2種類のメモリリードデータフォーマットを設けた場合のフォーマット例が示される。
図8に示される例では、メモリリードデータフォーマットとして、図8(A)に示されるフォーマット0に加え、図8(B)に示されるように全ビットをデータ領域230として扱うフォーマット1を備える。この場合、リードデータ解析部60においては、図9に示されるように、ロードストアユニット40からリードデータ解析部60へフォーマット指定信号FSPSがさらに入力されており、このフォーマット指定信号FSPSによって上記フォーマット0またはフォーマット1が指定される。フォーマット指定信号FSPSは、例えば命令オペランドにより指定されるものとする。この場合、命令セットには、2種類のロード命令が用意される。第1のロード命令には、図8(A)に示されるフォーマット0が対応し、第2のロード命令には、図8(B)に示されるフォーマット1が対応する。
図10には、フォーマット指定信号FSPSを追加した場合のデータリード分岐制御信号LICS生成の流れが示される。
メモリリードデータイネーブル信号MRDEがアサートされていないとき(ステップ510のNo)、すなわちデータメモリ110からの入力データが有効でないとき、リードデータ解析部60は、タイプ0データリード分岐信号、タイプ1データリード分岐信号ともにネゲートし(ステップ520)、処理を終了する(ステップ590)。メモリリードデータイネーブル信号MRDEがアサートされたとき(ステップ510)、フォーマット指定信号FSPSの解析を行う(ステップ515)。フォーマットタイプ1が指定された場合(ステップ515のNo)、リードデータ解析部60は、タイプ0データリード分岐信号、タイプ1データリード分岐信号ともにネゲートし(ステップ520)、処理を終了する(ステップ590)。フォーマットタイプ0が指定された場合(ステップ515のYes)、リードデータ解析部60は、タイプ0データリード分岐発生の有無判定(ステップ530)に移る。本ステップ以降は、図5に示されるステップ530以降と同じ処理である。
図11には、フォーマット指定信号FSPSを追加した場合のリードデータ生成の流れが示される。
リードデータ生成部410はフォーマット指定信号FSPSの解析を行い(ステップ705)、フォーマットタイプ1が指定された場合(ステップ705のNo)、メモリからのリードデータをそのまま出力して終了する(ステップ750)。フォーマットタイプ0が指定された場合(ステップ705のYes)、データリード分岐制御レジスタ70から入力されるタイプ0データリード分岐ON/OFF制御レジスタ300の値の判定(ステップ710)に移る。本ステップ以降は図6に示されるステップ710以降と同じ処理である。
上記のように第1のロード命令及び第2のロード命令に対応して、メモリリードデータフォーマット0,1が用意される場合には、データリード分岐の必要が無い場合には、図8(B)に示されるように、全ビットをデータ領域230として扱うフォーマットに対応するロード命令を使用するなど、必要に応じて、第1のロード命令及び第2のロード命令を使い分けることができる。
《実施の形態3》
図12には、上記マイクロプロセッサ1の別の構成例が示される。
図12に示されるマイクロプロセッサ1が、図1に示されるのと大きく相違するのは、データメモリ110とは別に、外部との間で各種信号のやり取りが可能なI/Oデバイス120が設けられている点である。
メモリマップドI/O方式の場合、CPU130によって管理されるメモリ空間に、データメモリ110やI/Oデバイス120が配置され、ロード命令によりI/Oデバイス120へのアクセスが可能とされる。I/Oデバイス120は、特に制限されないが、このマイクロプロセッサ1の外部に配置された装置との間で各種信号のやり取りを可能とするI/Oポートとされる。
また、CPU130によって管理されるアドレス空間に、メモリ空間とI/O空間とが別個に形成され、データメモリ110をメモリ空間に配置し、I/Oデバイス120をI/O空間に配置するようにしても良い。この場合、データメモリ110からのデータ読み込みにはロード命令を使用し、I/Oデバイス120からのデータ読み込みにはI/Oリード命令を使用することができる。そして、命令デコーダ部20によってI/Oリード命令がデコードされた場合、それに応じて、ロードストアユニット40によってI/Oデバイス120からのデータ読み込みが行われる。このときリードデータ解析部60では、I/Oデバイス120から読み込まれたデータの解析が行われる。
図13には、図12に示されるリードデータ解析部60の構成例が示される。
図13に示されるように、データリード分岐信号生成部400の前段にセレクタ420が設けられ、リードデータ生成部410の前段にセレクタ430が設けられる。セレクタ420は、I/Oデバイスリードデータイネーブル信号I/ORDEと、メモリリードデータイネーブル信号MRDEとを選択的に、後段のデータリード分岐信号生成回路400及びリードデータ生成部410に伝達する。セレクタ430は、I/OデバイスリードデータI/ORDとメモリリードデータMRDとを選択的にデータリード分岐信号生成部400及びリードデータ生成部410に伝達する。セレクタ420,430の動作は、ロードストアユニット40から出力されるセレクタ制御信号SELCによって制御される。アクセス対象がデータメモリ110の場合、セレクタ420によりメモリリードデータイネーブル信号MRDEが選択され、セレクタ430によりメモリリードデータMRDが選択される。また、アクセス対象がI/Oデバイス120の場合、セレクタ420によりI/Oデバイスリードデータイネーブル信号I/ORDEが選択され、セレクタ430によりI/OデバイスリードデータI/ORDが選択される。リードデータ解析部60におけるその他の動作については、実施の形態1の場合と同様とされる。
また、図12に示されるマイクロプロセッサ1の場合においても、実施の形態2(図8〜11)の場合と同様に、複数のデータフォーマットを設け、用途に応じて、このデータフォーマットを選択するようにしても良い。この場合、命令セットには、第1のI/Oリード命令と第2のI/Oリード命令が含まれ、第1のI/Oリード命令には、図8(A)に示されるようなデータリード分岐発生ビット領域を有するデータフォーマットが割り当てられ、第2のI/Oリード命令には、図8(B)に示されるようなデータフォーマットが割り当てられる。
以上本発明者によってなされた発明を実施形態に基づいて具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは言うまでもない。
例えば、図1や図12において、ロードストアユニット40及び算術論理演算ユニット50を含む構成を示したが、マイクロプロセッサ1がサポートする様々な命令を実行するための各種実行ユニットをさらに設けることができる。
上記実施の形態では、データリード分岐がタイプ0、タイプ1の2種類の場合について説明したが、それに限定されない。例えばメモリリードデータフォーマットにおけるデータリード分岐発生ビット領域(200,210)、及びデータリード分岐制御レジスタ70のデータリード分岐ON/OFF制御レジスタ(300,310)、データリード分岐アドレスレジスタ(320,330)の各領域を拡張することにより、3種類以上のデータリード分岐にも対応可能である。つまり、上記データリード分岐発生ビット領域(200,210)を3ビット以上で構成する場合、上記データリード分岐ON/OFF制御レジスタ(300,310)は3ビット以上で構成し、データリード分岐アドレスレジスタ(320,330)は、3個以上設けるようにする。
1 マイクロプロセッサ
10 命令フェッチ部
20 命令デコーダ部
30 レジスタファイル
40 ロードストアユニット
50 算術論理演算ユニット
60 リードデータ解析部
70 データリード分岐制御レジスタ
100 命令メモリ
110 データメモリ
120 I/Oデバイス
130 CPU
200 タイプ0データリード分岐発生ビット領域
210 タイプ1データリード分岐発生ビット領域
220 データ領域
300 タイプ0データリード分岐ON/OFF制御レジスタ
310 タイプ1データリード分岐ON/OFF制御レジスタ
320 タイプ0データリード分岐アドレスレジスタ
330 タイプ1データリード分岐アドレスレジスタ
400 データリード分岐信号生成部
410 リードデータ生成部

Claims (9)

  1. 命令セットを構成する命令を実行可能なCPUを含む情報処理装置であって、
    上記命令セットは、上記CPUによって管理されるメモリ空間に配置されたデバイスからデータを読み込むロード命令を含み、
    上記ロード命令で読み込まれるデータは、データリード分岐発生ビットが格納されるデータリード分岐発生ビット領域を有するフォーマットタイプのデータを含み、
    上記CPUは、上記データリード分岐発生ビットの有効・無効を制御するデータリード分岐制御レジスタと、
    上記データリード分岐アドレスを保持可能なデータリード分岐アドレスレジスタと、
    上記データリード分岐発生ビット領域に、データリード分岐発生を示すビット値が設定され、上記データリード分岐制御レジスタに、データリード分岐発生ビットが有効であることを示す値が設定されていることを解析するリードデータ解析部と、
    上記リードデータ解析部での解析結果に基づいて、上記データリード分岐アドレスレジスタの記憶アドレス値をプログラムカウンタに設定し、上記プログラムカウンタの出力値に基づいて命令をフェッチする命令フェッチ部と、を含むことを特徴とする情報処理装置。
  2. 上記メモリ空間に配置されたデバイスは、データメモリを含む請求項1記載の情報処理装置。
  3. 上記メモリ空間に配置されたデバイスは、メモリマップドI/O方式によって上記メモリ空間に配置されたI/Oデバイスを更に含む請求項2記載の情報処理装置。
  4. Nを2以上の整数とするとき、
    上記データリード分岐発生ビット領域をNビット有し、
    上記データリード分岐制御レジスタをNビット分有し、
    上記データリード分岐アドレスレジスタをN本有する請求項1記載の情報処理装置。
  5. 上記命令セットには、第1のロード命令と第2のロード命令とが含まれ、
    上記第1のロード命令によって読み込まれたデータには、データリード分岐発生ビット領域を有するフォーマットタイプのデータが含まれ、
    上記第2のロード命令によって読み込まれたデータには、すべてデータ領域とされるフォーマットタイプのデータが含まれる請求項2記載の情報処理装置。
  6. 命令セットを構成する命令を実行可能なCPUと、上記CPUによって管理されるI/O空間に配置されたI/Oデバイスとを含む情報処理装置であって、
    上記命令セットは、上記I/Oデバイスからデータを読み込むためのI/Oリード命令を含み、
    上記I/Oリード命令で読み込まれるデータは、データリード分岐発生ビットが格納されるデータリード分岐発生ビット領域を有するフォーマットタイプのデータを含み、
    上記CPUは、上記データリード分岐発生ビットの有効・無効を制御するデータリード分岐制御レジスタと、
    データリード分岐アドレスを保持可能なデータリード分岐アドレスレジスタと、
    上記データリード分岐発生ビット領域に、データリード分岐発生を示すビット値が設定され、上記データリード分岐制御レジスタに、データリード分岐発生ビットが有効であることを示す値が設定されていることを解析するリードデータ解析部と、
    上記リードデータ解析部での解析結果に基づいて、上記データリード分岐アドレスレジスタの記憶アドレス値をプログラムカウンタに設定し、上記プログラムカウンタの出力値に基づいて命令をフェッチする命令フェッチ部と、を含むことを特徴とする情報処理装置。
  7. Nを2以上の整数とするとき、
    上記データリード分岐発生ビット領域をNビット有し、
    上記データリード分岐制御レジスタをNビット分有し、
    上記データリード分岐アドレスレジスタをN本有する請求項6記載の情報処理装置。
  8. 上記命令セットには、第1のI/Oリード命令と第2のI/Oリード命令とが含まれ、
    上記第1のI/Oリード命令によって読み込まれたデータには、データリード分岐発生ビット領域を有するフォーマットタイプのデータが含まれ、
    上記第2のI/Oリード命令によって読み込まれたデータには、すべてデータ領域とされるフォーマットタイプのデータが含まれる請求項7記載の情報処理装置。
  9. 命令セットを構成する命令を実行可能なCPUと、上記CPUによって管理されるメモリ空間に配置されたデータメモリと、上記CPUによって管理されるI/O空間に配置されたI/Oデバイスとを含む情報処理装置であって、
    上記命令セットは、上記データメモリからデータを読み込むための第1の命令と、上記I/Oデバイスからデータを読み込むための第2の命令とを含み、
    上記第1の命令又は上記第2の命令によって読み込まれるデータは、データリード分岐発生ビットが格納されるデータリード分岐発生ビット領域を有するフォーマットタイプのデータを含み、
    上記CPUは、上記データリード分岐発生ビットの有効・無効を制御するデータリード分岐制御レジスタと、
    データリード分岐アドレスを保持可能なデータリード分岐アドレスレジスタと、
    上記データリード分岐発生ビット領域に、データリード分岐発生を示すビット値が設定され、上記データリード分岐制御レジスタに、データリード分岐発生ビットが有効であることを示す値が設定されていることを解析するリードデータ解析部と、
    上記リードデータ解析部での解析結果に基づいて、上記データリード分岐アドレスレジスタの記憶アドレス値をプログラムカウンタに設定し、上記プログラムカウンタの出力値に基づいて命令をフェッチする命令フェッチ部と、を含むことを特徴とする情報処理装置。
JP2010075180A 2010-03-29 2010-03-29 情報処理装置 Active JP5437878B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2010075180A JP5437878B2 (ja) 2010-03-29 2010-03-29 情報処理装置
US13/073,992 US9619228B2 (en) 2010-03-29 2011-03-28 Data processor with a load instruction that branches based on a control register value and a bit or bits read from memory

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010075180A JP5437878B2 (ja) 2010-03-29 2010-03-29 情報処理装置

Publications (2)

Publication Number Publication Date
JP2011209859A JP2011209859A (ja) 2011-10-20
JP5437878B2 true JP5437878B2 (ja) 2014-03-12

Family

ID=44657684

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010075180A Active JP5437878B2 (ja) 2010-03-29 2010-03-29 情報処理装置

Country Status (2)

Country Link
US (1) US9619228B2 (ja)
JP (1) JP5437878B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102495724A (zh) * 2011-11-04 2012-06-13 杭州中天微系统有限公司 一种加快存储指令执行效率的数据处理器
US9632787B2 (en) * 2012-10-23 2017-04-25 Ca, Inc. Data processing system with data characteristic based identification of corresponding instructions

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4933847A (en) * 1987-11-17 1990-06-12 International Business Machines Corporation Microcode branch based upon operand length and alignment
JPH06309163A (ja) * 1993-04-23 1994-11-04 Matsushita Electric Ind Co Ltd プロセッサおよびプロセッサのメモリアクセス方法
US6282633B1 (en) * 1998-11-13 2001-08-28 Tensilica, Inc. High data density RISC processor
JP2006313561A (ja) 1999-04-30 2006-11-16 Renesas Technology Corp データ処理装置
JP2001202243A (ja) 1999-04-30 2001-07-27 Hitachi Ltd データ処理装置
US8307197B2 (en) * 2001-02-14 2012-11-06 University Of North Carolina At Charlotte Short-circuit evaluation of Boolean expression by rolling up sub-expression result in registers storing default value
US6791898B1 (en) * 2002-10-11 2004-09-14 Cypress Semiconductor Corporation Memory device providing asynchronous and synchronous data transfer
US7590830B2 (en) * 2004-05-28 2009-09-15 Sun Microsystems, Inc. Method and structure for concurrent branch prediction in a processor
US7370243B1 (en) * 2004-06-30 2008-05-06 Sun Microsystems, Inc. Precise error handling in a fine grain multithreaded multicore processor
JP2008262437A (ja) * 2007-04-13 2008-10-30 Renesas Technology Corp プロセッサシステムおよび例外処理方法

Also Published As

Publication number Publication date
JP2011209859A (ja) 2011-10-20
US20110238964A1 (en) 2011-09-29
US9619228B2 (en) 2017-04-11

Similar Documents

Publication Publication Date Title
JP6408524B2 (ja) 書込マスクを用いて2つのソースオペランドを単一のデスティネーションに融合するシステム、装置及び方法
JP6274672B2 (ja) 装置および方法
JP5764257B2 (ja) レジスタをアライメントするためのシステム、装置、および方法
KR101597774B1 (ko) 마스킹된 전체 레지스터 액세스들을 이용한 부분적 레지스터 액세스들을 구현하기 위한 프로세서들, 방법들 및 시스템들
JP6466388B2 (ja) 方法及び装置
CN107908427B (zh) 用于多维数组中的元素偏移量计算的指令
KR102592056B1 (ko) 패킹된 데이터 정렬 플러스 계산 명령어, 프로세서,방법, 및 시스템
JP5947879B2 (ja) マスクレジスタを用いてジャンプを行うシステム、装置、および方法
US9785436B2 (en) Apparatus and method for efficient gather and scatter operations
KR101966713B1 (ko) 마스크 레지스터에서의 비트들을 반전 및 치환하기 위한 장치 및 방법
JP2017538213A (ja) アウトオブオーダーハードウェアソフトウェア協調設計プロセッサにおいてスタック同期命令を用いてプレディケート値のスタックを実装し維持する方法および装置
US20160328233A1 (en) Packed finite impulse response (fir) filter processors, methods, systems, and instructions
KR20130064797A (ko) 범용 논리 연산 방법 및 장치
CN107193537B (zh) 经改进的插入指令的装置和方法
JP5437878B2 (ja) 情報処理装置
US20140189322A1 (en) Systems, Apparatuses, and Methods for Masking Usage Counting
TWI497411B (zh) 用於決定一值是否在一範圍內之指令的裝置及方法
JP5753603B2 (ja) データ要素内のビットをゼロ化するためのシステム、装置、および方法
JP2004288203A (ja) プロセッサコア及びこれを用いたプロセッサ
JP2008129667A (ja) プログラマブルコントローラ
JP2005134987A (ja) パイプライン演算処理装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120821

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20131120

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20131212

R150 Certificate of patent or registration of utility model

Ref document number: 5437878

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350