JP5168143B2 - プロセッサ、および、命令制御方法 - Google Patents

プロセッサ、および、命令制御方法 Download PDF

Info

Publication number
JP5168143B2
JP5168143B2 JP2008521270A JP2008521270A JP5168143B2 JP 5168143 B2 JP5168143 B2 JP 5168143B2 JP 2008521270 A JP2008521270 A JP 2008521270A JP 2008521270 A JP2008521270 A JP 2008521270A JP 5168143 B2 JP5168143 B2 JP 5168143B2
Authority
JP
Japan
Prior art keywords
instruction
word
information
words
bit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2008521270A
Other languages
English (en)
Other versions
JPWO2007145319A1 (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.)
NEC Corp
Original Assignee
NEC 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 NEC Corp filed Critical NEC Corp
Priority to JP2008521270A priority Critical patent/JP5168143B2/ja
Publication of JPWO2007145319A1 publication Critical patent/JPWO2007145319A1/ja
Application granted granted Critical
Publication of JP5168143B2 publication Critical patent/JP5168143B2/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
    • 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/3017Runtime instruction translation, e.g. macros
    • G06F9/30178Runtime instruction translation, e.g. macros of compressed or encrypted 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
    • 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/30145Instruction analysis, e.g. decoding, instruction word fields
    • G06F9/30156Special purpose encoding of instructions, e.g. Gray coding
    • 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/30145Instruction analysis, e.g. decoding, instruction word fields
    • G06F9/3016Decoding the operand specifier, e.g. specifier format
    • G06F9/30167Decoding the operand specifier, e.g. specifier format of immediate specifier, e.g. constants
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead

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

本願は、2006年6月15日に出願された日本出願特願2006−166077号を基礎とする優先権を主張し、その日本出願の開示は参照によりすべてここに取り込まれる。
本発明は、プロセッサ、および、命令制御方法に関し、特に、命令実行性能を低下させずにメモリの消費量を削減できるプロセッサ、および、命令制御方法に関する。
サイクル毎に1つ以上の命令ワードをプログラムメモリからフェッチして実行するプログラマブル・プロセッサにおいて、貴重なプログラムメモリ資源の利用効率を高めるためには通常、固定した命令語長を用いる必要がある。一方、一般に個々の命令は、そのプロセッサに対する動作指定の内容に依存して必要なビット数Xは異なる。
一般的には、オペコードのビット数をA[ビット]、オペランドに指定可能なレジスタの数を表現するために必要なビット数をB[ビット]、指定が必要なレジスタ数をC、そして、命令の動作を修飾するフラグのビット数をD[ビット]、即値フィールドのビット数をE[ビット]とすると、命令の語長X=A+B×C+D+E[ビット]とした場合に、もっとも効率的にプロセッサ動作の指定が可能である。しかし、たとえば、2項演算と単項演算とでは、前者の方が、Cが1だけ大きいように、通常は、命令毎あるいは命令の種類毎に、それに最適な語長Xは異なる。
そのため、1種類の固定した命令語長Yだけでは、ある命令について、X<Yの場合は、本来不要なスペースがその命令ワード内に発生し、プログラムメモリの利用効率が悪くなる。また、ある命令について、X>Yの場合は、XをYに合わせるために、命令ビット数を削減しなければならず、プロセッサに対するその命令の動作指定効率が落ちる。そこで、所定の基本語長を設けた上、その整数倍の命令語長を複数同時に採用する形の可変語長のプログラマブル・プロセッサが、たとえば特開平8−95783号公報(文献1)に開示されている。
その場合、より多くのビット数を消費する命令には倍の語長を割り当て、そうでない命令には基本語長を割り当てる、といった形での命令セット設計が可能となる。したがって、プログラムメモリスペースに隙間が生じないという固定命令語長の利点を損なわないまま、ある程度にプログラムメモリの利用効率を改善し、かつ、個々の命令設計における自由度を上げ、高性能なプロセッサをより実現しやすくするといった利点がある。
また、語長の種類を増やすのではなく、即値フィールドの長さに対する命令毎の要求の相違が大きいことに着目して、即値フィールドの拡張を指定する専用命令を有するVLIW型プロセッサの技術が、たとえば特開平5−150979号公報(文献2)に開示されている。
文献1に開示されている関連技術のように、命令語長を、所定の基本語長Yの整数倍n×Y(n=1、2、…)に設定する場合では、命令毎あるいは命令の種類毎の最適語長Xと基本語長のある整数倍との間で違いがあることは避けられず、以下の問題点がある。
すなわち、Xより小さいn×Yのうち、Xにもっとも語長が近いi×Yを、ある種類の命令の語長として選択した場合は、Xとi×Yとの差のX−(i×Y)ビット数分だけ、Xのビット数を削減することになり、プロセッサに対する動作指定効率が低下する(すなわち、命令実行性能が低下する)。
また、Xより大きいn×Yのうち、Xにもっとも語長が近いj×Yを、上記命令の語長として選択した場合は、今度は、(j×Y)−Xビット数分だけ、余分にメモリ領域が消費されることになりプログラムメモリ利用効率が低下する(すなわち、メモリの消費量が増加する)。
また、文献2に開示されている他の関連技術のように、即値フィールドのみを同サイクルの別の1ワードの専用命令によって拡張できるようにした場合も、1倍長、および、2倍長の2種類の命令語長を有する文献1の可変長型の一種である。したがって、やはり、上記の問題点を持つ。
本発明の目的は、上記関連技術の課題である命令実行性能を低下させずにメモリの消費量を削減するプロセッサ、および、命令制御方法を提供することである。
本発明のプロセッサは、同一サイクルで実行される複数の命令ワードに属するビットフィールドの一部が集められて構成される情報ワードを実行時に分解し、各命令ワードを元の構成に復元することを特徴とする。
本発明の命令制御方法は、プロセッサで、同一サイクルで実行される複数の命令ワードに属するビットフィールドの一部が集められて構成される情報ワードを実行時に分解し、各命令ワードを元の構成に復元するステップを備えることを特徴とする。
本発明の効果は、命令実行性能の低下させずにメモリの消費量を削減できることである。
その理由は、プロセッサが、同一サイクルで実行される複数の命令ワードに属するビットフィールドの一部が集められて構成される情報ワードを実行時に分解し、各命令ワードを元の構成に復元する構成をとるからである。
図1は、本発明の第1の実施例の構成を示すブロック図である。 図2は、本発明の第2の実施例の構成を示すブロック図である。 図3は、図2の命令デコーダの構成を示すブロック図である。 図4は、図3の命令ワード復元部の構成を示すブロック図である。 図5は、元の命令ワードのフォーマットを示す説明図である。 図6A−図6Cは、情報ワードのフォーマットの例を示す説明図である。 図7は、本発明の第2の実施例の動作を示す説明図である。 図8は、本発明の第3の実施例の動作を示す説明図である。 図9は、命令ワード復元部の動作を示すフローチャートである。 図10は、本発明の第2の実施例の具体例の命令ワード復元部の一部の構成を示すブロック図である。
次に、本発明の第1の実施例について図面を参照して詳細に説明する。図1は、本発明の第1の実施例の構成を示すブロック図である。図1を参照すると、本発明の第1の実施例のプロセッサ100は、同一サイクル(たとえば、同一パイプラインステージ)で実行される複数の命令ワードに属するビットフィールドの一部が集まって構成される情報ワードを分解し、各命令ワードの元の構成を再現する命令デコーダ103を含む。
元の第1命令ワードI1の構成は、ビットフィールドL11とビットフィールドL12とである。元の第2命令ワードI2の構成は、ビットフィールドL21とビットフィールドL22とである。元の第3命令ワードI3の構成は、ビットフィールドL31とビットフィールドL32とである。
情報ワードIWの構成は、元の第1命令ワードI1に属するビットフィールドL12と、元の第2命令ワードI2に属するビットフィールドL22と、元の第3命令ワードI3に属するビットフィールドL32とである。
命令デコーダ103は、第1命令ワードとしてビットフィールドL11、第2命令ワードとしてビットフィールドL21、第3命令ワードとしてビットフィールドL31、および、情報ワードIWを同一サイクルに入力する。命令デコーダ103に入力される第1ワードL11〜第3命令ワードL31は、それぞれの元の第1ワードI1〜第3命令ワードI3から、情報ワードIWを構成するビットフィールドL12〜L32が除かれたものであり、部分命令ワードとも呼ぶ。
次に、命令デコーダ103は、情報ワードIWを、ビットフィールドL12と、ビットフィールドL22と、ビットフィールドL32とに分解する。
次に、命令デコーダ103は、ビットフィールドL11とビットフィールドL12とを結合し、元の第1命令ワードI1の構成を復元する。さらに、命令デコーダ103は、ビットフィールドL21とビットフィールドL22とを結合し、元の第2命令ワードI2の構成を復元する。さらに、命令デコーダ103は、ビットフィールドL31とビットフィールド322とを結合し、元の第3命令ワードI3の構成を復元する。
以上において、情報ワードIWに含まれるビットフィールドL12〜ビットフィールドL32は、元の第1命令ワードI1〜元の第3命令ワードI3の最後尾に存在するとは、限らない。ビットフィールドL12〜ビットフィールドL32は、先頭でも、末尾、あるいは、それぞれの命令の種類に依存して決まる所定位置でよい。したがって、復元においては、ビットフィールドL12〜ビットフィールドL32は、先頭、末尾、あるいは、それぞれの命令の種類に依存して決まる所定位置に挿入される。
以上において、3命令ワードの場合について説明したが、本発明の第1の実施例は、n(nは、2以上の整数)命令ワードについて適用可能である。
本発明の第1の実施例は、同一サイクルで実行される複数の命令ワードに属するビットフィールドの一部が集まって構成される情報ワードを分解し、各命令ワードの元の構成を再現する構成により、命令実行性能の低下させずにメモリの消費量を削減できる。
次に、本発明の第2の実施例について図面を参照して詳細に説明する。本発明の第2の実施例のプロセッサは、最大3命令を同一サイクルに実行可能であり、かつ、3種類の命令語長を持つ命令(正確には、元の命令)を実行可能である。図2は、本発明の第2の実施例の構成を示すブロック図である。
図2を参照すると、本発明の第2の実施例のプロセッサ100は、命令パス101と、命令供給部102と、命令デコーダ103と、命令パス104と、制御情報パス105と、制御情報パス106と、制御情報パス107と、実行部108と、実行部109と、実行部110とを含む。
命令供給部102は、たとえば、命令バッファであり、命令ワード、および、情報ワードを格納し、最大、3命令ワード、および、情報ワードを同一サイクルで、命令パス104を介して命令デコーダ103に出力する。たとえば、命令供給部102は、各ワードの情報ワード識別子を調べ、同一サイクルで実行される命令ワードが1または2個であり、その次に、情報ワードがある(図示しないメモリ上に)場合、1または2個の命令ワードの最後尾に情報ワードをシフトし、命令ワードと情報ワードとの間に、必要に応じてNOP命令(No operation 命令;無操作命令)を挿入して、出力する。
同一サイクルで実行される最大命令数がn(nは、1以上の整数)であり、n[個]の命令ワードの次に情報ワードがある場合には、命令供給部102は、n[個]の命令ワードの最後尾に情報ワードを配置して出力する。また、n[個]に満たないm[個](mは、1以上の整数)の命令ワードの次に情報ワードがある場合には、n−m[個]のNOP命令をm[個]の命令ワードの次に挿入する。
命令デコーダ103は、元の命令ワードの復元を行い、復元結果に基づいて、各命令対応の制御情報を制御情報パス105〜107を介して実行部108〜110に出力する。制御情報は、たとえば、オペランド同士の演算を指定する情報である。実行部108〜110は、同一サイクルで、制御情報に基づいて各命令の実行を行う。
図3は、図2の命令デコーダ103の構成を示すブロック図である。図3を参照すると、命令デコーダ103は、命令ワード復元部200、実行部108に対応する個別命令デコード部201、実行部109に対応する個別命令デコード部202、および、実行部110に対応する個別命令デコード部203を含む。
図4は、図3の命令ワード復元部200の構成を示すブロック図である。図4を参照すると、命令ワード復元部200は、分解部210、および、結合部211を含む。分解部210は、情報ワードを複数のビットフィールドに分解する。結合部211は、複数の命令ワード(命令ワードの元の構成から情報ワードを構成する部分のビットフィールドを除いたもの)と、分解部210により分解された対応するビットフィールドとを結合することにより、各命令ワードを元の構成に復元する。
図5は、元の命令ワードのフォーマットを示す説明図である。図5を参照すると、元の命令ワード300は、Y[ビット]の基本フィールドBFと、命令の種類により長さが決まる拡張フィールドEFとを含む。基本フィールドBFは、1[ビット]の情報ワード識別子303、Q[ビット]のオペコード304(オペレーションコード;命令の種類を示す)、および、Y−Q−1[ビット]のオペランドを含む。拡張フィールドEFは、命令の種類M、N、Oにより決まるA[ビット]、B[ビット]、または、C[ビット]の超過オペランドを含む。
また、さらに、拡張フィールドEFは、命令の種類M、N、O等により決まるE0[ビット]、E1[ビット]、または、E2[ビット]の即値オペランドを含むことが可能である。したがって、即値オペランドを使用する場合には、元の命令ワードの語長は、命令の種類M、N、Oに対し、それぞれ、Y+A+E0[ビット]、Y+B+E1[ビット]、Y+C+E2[ビット]である。即値オペランドを使用しない場合には、元の命令ワードの語長は、命令の種類M、N、Oに対し、それぞれ、Y+A[ビット]、Y+B[ビット]、Y+C[ビット]である。
元の命令ワード300のY[ビット]の基本フィールドBFの部分が、命令ワード301として独立する。また、拡張フィールドEFの部分は情報ワード302に含まれる。情報ワード302は、1[ビット]の情報ワード識別子303、および、フリービットフィールド(元の命令ワード300と同一サイクルで実行される複数の命令ワードの拡張フィールドEFの結合)FFを含む。
なお、個々の命令が即値オペランドを使用するかどうかは、たとえば、オペランド指定ビットフィールド内の所定オペランドのビットパタンで指定可能である。すなわち、オペランドのビットパタンの一つが例えばオール1のような特定のビットパタンである場合に、レジスタ番号指定ではなく即値オペランドを使用する命令であるという命令体系が可能である。即値オペランドを使用する命令は、自命令ワード内に即値オペランドを使用するように実行される。
次に、情報ワード302のフォーマットについて図面を参照して説明する。図6Aは、情報ワード302が、1ワードであり、かつ、即値オペランドが含まれない超過オペランドのみの場合の、フォーマットの例を示す説明図である。図6B、図6Cは、情報ワード302、情報ワード305の2つにわたって、超過オペランド、および、即値オペランドが使用される場合の、フォーマットの例を示す説明図である。
図6Aを参照すると、情報ワード302は、右詰で、命令の種類O、N、Mに対応するC[ビット]、B[ビット]、および、A[ビット]の超過オペランドを含む。なお、超過オペランドの順番は、命令供給部102から出力される命令ワードの順番にしたがって決めることができる。図6Aの例は、命令コードが、最初(左側)に種類M、次(中央)に種類N、最後(右側)に種類Oの順番に配置される場合を示している。後述する図6Bおよび図6Cの例も同様である。
図6Bを参照すると、情報ワード302、情報ワード305は、右詰めで、命令の種類Oに対応する「C[ビット]の超過オペランド、E2[ビット]の即値オペランド」、命令の種類Nに対応する「B[ビット]の超過オペランド、E1[ビット]の即値オペランド」、および、命令の種類Mに対応する「A[ビット]の超過オペランド、E1[ビット]の即値オペランド」を含む。
ここで、ある1つ元の命令の超過オペランド、または、即値オペランドが、情報ワード302、情報ワード305に分割されて含まれることが可能である。
図6Cを参照すると、情報ワード302は、右詰で、命令の種類O、N、Mに対応するC[ビット]、B[ビット]、および、A[ビット]の超過オペランドを含む。情報ワード305は、命令の種類O、N、Mに対応するE2[ビット]、E1[ビット]、E0[ビット]の即値オペランドを含む。以上は、例であり、他のフォーマットが可能である。
次に、本発明の第2の実施例の動作について図面を参照して説明する。本発明の第2の実施例は、即値を利用しない3命令以上を同一サイクルで実行する命令体系の場合である。また、説明を簡単にするために、A、B、Cの3つの合計よりも常にYは大きい場合について説明する。情報ワードは、図6Aの場合である。
図7は、本発明の第2の実施例の動作を示す説明図である。図7を参照すると、命令供給部102から同サイクルで、固定語長Yの種類Mの命令ワード400、種類Nの命令ワード401、種類Oの命令ワード402、および、情報ワード403が、命令パス104を介して出力される。説明を簡単にするために、情報ワード403は、最後尾、すなわち、命令ワード400〜命令ワード402の右側に配置される場合について説明する。
命令デコーダ103の命令ワード復元部200は、命令ワード400〜命令ワード402、情報ワード403を入力すると、各ワードの情報ワード識別子303により各ワードが、情報ワードであるのか、命令ワードであるのかを判別する。
ワードが情報ワードであれば、命令ワード復元部200は、フリービットフィールドFFの内容を元の各命令ワードの復元に使用する。ワードが命令ワードであれば、命令ワード復元部200は、そのオペコード304から命令の種類を判別する。次に、命令ワード復元部200は、必要に応じ、同一サイクルに存在する情報ワード403のフリービットフィールドFFから命令の種類に応じたビット数の超過オペランドを取り出し、当該命令ワードの適当な箇所(図7では末尾)に付加することにより元の命令ワードを復元する。
すなわち、命令ワード復元部200は、M、N、Oの3種類の命令ワード400、401、命令ワード402を、それぞれ、語長Y+A[ビット]、Y+B[ビット]、Y+C[ビット]の元の命令ワード405、元の命令ワード406、元の命令ワード407に復元する。次に、命令ワード復元部200は、復元した元の命令ワード405、元の命令ワード406、元の命令ワード407を、それぞれ、個別命令デコード部201、個別命令デコード部202、個別命令デコード部203へ出力する。
個別命令デコード部201〜個別命令デコード部203は、それぞれ、元の命令ワード405〜元の命令ワード407をデコードし、各命令を実行するための制御情報を制御情報パス105〜制御情報パス107を介して実行部108〜実行部110に出力する。
本発明の第2の実施例は、同一サイクルで実行される複数の命令ワードに属する超過オペランドが集まって構成される情報ワードを分解し、各命令ワードの元の構成を再現する構成により、プロセッサ100に対する動作指定効率を低下させずに、メモリの利用率効率を高め、メモリの消費量を削減できる。
次に、本発明の第3の実施例について図面を参照して詳細に説明する。本発明の第3の実施例のプロセッサ100は、本発明の第2の実施例とは異なり、2つの情報ワードを使用し、即値オペランドを使用する。本発明の第3の実施例の構成は、本発明の第2の実施例の図2、図3の構成と同一である。本発明の第3の実施例は、即値を利用する3命令以上を同一サイクルで実行する。
次に、本発明の第3の実施例の動作について図面を参照して説明する。説明を簡単にするために、Yは、常に、A、B、C、E0、E1、および、E2のいずれか3つの合計よりも大きく、かつ、いずれか4つの合計よりも小さい場合について説明する。情報ワードは、図6Bの場合である。
図8は、本発明の第3の実施例の動作を示す説明図である。図8を参照すると、命令供給部102から同サイクルで、固定語長Yの種類Mの命令ワード500、種類Nの命令ワード501、種類Oの命令ワード502、情報ワード503、および、情報ワード504が、命令パス104を介して出力される。説明を簡単にするために、情報ワード503、情報ワード504は、最後尾、すなわち、命令ワード500〜命令ワード502の右側に配置される場合について説明する。
命令デコーダ103の命令ワード復元部200は、命令ワード500〜命令ワード502、情報ワード503、情報ワード504を入力すると、各ワードの情報ワード識別子303により各ワードが、情報ワードであるのか、命令ワードであるのかを判別する。
ワードが情報ワードであれば、命令ワード復元部200は、フリービットフィールドFFの内容を元の各命令ワードの復元に使用する。ワードが命令ワードであれば、命令ワード復元部200は、そのオペコード304から命令の種類を判別する。次に、命令ワード復元部200は、必要に応じ、同一サイクルに存在する情報ワード503、および、情報ワード504のフリービットフィールドFFから命令の種類に応じたビット数の超過オペランド、即値オペランドを取り出し、当該命令ワードの適当な箇所(図8では末尾)に挿入することにより元の命令ワードを復元する。
すなわち、命令ワード復元部200は、M、N、Oの3種類の命令ワード500、501、命令ワード502を、それぞれ、語長Y+A+E0[ビット]、Y+B+E1[ビット]、Y+C+E2[ビット]の元の命令ワード505、元の命令ワード506、元の命令ワード507に復元する。次に、命令ワード復元部200は、復元した元の命令ワード505、元の命令ワード506、元の命令ワード507を、それぞれ、個別命令デコード部201、個別命令デコード部202、個別命令デコード部203へ出力する。
個別命令デコード部201〜個別命令デコード部203は、それぞれ、元の命令ワード505〜元の命令ワード507をデコードし、各命令を実行するための制御情報を制御情報パス105〜制御情報パス107を介して実行部108〜実行部110に出力する。
次に、本発明の第3の実施例の動作について、さらに詳細に説明する。なお、M、N、Oの各種類の命令が常に情報ワードを必要とし、情報ワードはサイクル毎に必ず一つ以上存在する場合について説明する。
たとえば、1個以上の情報ワードをサイクル毎に実行されるワード群800の最後尾(右側)に配置すれば、同一サイクルに実行される命令かどうかを区切るためにも情報ワードを利用できる。したがって、同一サイクルで、3に満たない命令数の命令ワードを実行する場合でも、別途命令ワード内に、当該サイクルでの実行命令数を表現する専用ビットフィールドを設ける必要がない。そこで、以下では、情報ワードを常にサイクル毎に実行される命令群の最後尾に配置した場合について説明する。
図9は命令ワード復元部200の動作を示すフローチャートである。図9を参照すると、命令デコーダ103の命令ワード復元部200は、同一サイクルで、ワード群800を入力する(図9ステップS1)。ワード群800は、同一サイクルで実行される命令ワード、および、必要数だけの情報ワードからなる。ここでは、ワード群800は、Y[ビット]×5[ワード]であるとする。また、説明を簡単にするためにYは定数であるとする。
次に、命令ワード復元部200は、ワード群800の最後尾に配置されている第5ワード(すなわち、情報ワード)を現ワードとする(ステップS2)。次に、命令ワード復元部200は、現ワードに対してステップS3〜ステップS6の処理を行う。
命令ワード復元部200は、次に、ステップS7〜ステップS8の処理を行い、現ワードを更新し、次々と、前の方のワードを対象にステップS3〜ステップS6の処理を行う。
命令ワード復元部200は、情報ワード識別子303により、現ワードが情報ワードであると判別すると(ステップS3/Yes)、現ワードのフリービットフィールドFFを後続する命令ワードの処理に利用できるように準備する。すなわち、命令ワード復元部200は、現ワードが最初の情報ワードならば、そのフリービットフィールドFFの最後尾に、フリービットフィールド現在位置を設定する。また、命令ワード復元部200は、現ワードが最初でない情報ワードならば、既存のフリービットフィールドFFの前に、その情報ワードのフリービットフィールドFFを追加する(ステップS10)。
命令ワード復元部200は、現ワードが情報ワードでないと判別すると(ステップS3/No)、現ワードである命令ワードの種類を判別する(ステップS4、S5、または、S6)。命令ワード復元部200は、フリービットフィールド現在位置から、命令の種類に対応するビット長のビットフィールド(超過オペランド、即値オペランド)を取り出し、命令ワード(現ワード)の末尾に追加し、命令ワード(現ワード)をその本来の語長の元の命令ワードに復元する。また、命令ワード復元部200は、フリービットフィールド現在位置を取り出したビットフィールドのビット長だけ前にシフトするように更新する(ステップS11、S12、または、S13)。これらの動作により、元の各命令ワードの命令語長が命令ワード復元部200によって復元される。
本発明の第3の実施例は、同一サイクルで実行される複数の命令ワードに属する超過オペランド、および、即値オペランドが集まって構成される情報ワードを分解し、各命令ワードの元の構成を再現する構成により、プロセッサ100に対する動作指定効率を低下させずに、メモリの利用率効率を高め、メモリの消費量を削減できる。
次に、本発明の第1、第2、または第3の実施例の具体例について説明する。本具体例のマイクロプロセッサは、2項命令(種類M)、単項命令(種類N)、および、明示的にオペランドを取らない無項命令(種類O)を含む命令体系を実行する。本具体例のマイクロプロセッサは、常時、3命令を同一サイクルで実行する。
情報ワード識別子のビット数Sが1[ビット]、オペコードのビット数OPが7[ビット]である。また、オペランドに指定可能なレジスタ数が32個であり、各レジスタを指定するレジスタ指定のビット数REGは、5[ビット]である。以下、2項命令、単項命令、無項命令の指定レジスタ数がそれぞれ3(ソース2つとデスティネーション1つ)、2(ソース1つとデスティネーション1つ)、1(デスティネーション1つ)、即値フィールドの必要ビット数IMMを1〜16とした場合について説明する。
即値オペランドを使用しないケースでは、2項命令(種類M)、単項命令(種類N)、および、無項命令(種類O)の最適命令語長は、それぞれ、S+OP+REG×3=1+7+5×3=23[ビット]、S+OP+REG×2=1+7+5×2=18[ビット]、および、S+OP+REG×1=1+7+5×1=13[ビット]である。
また、即値オペランドを使用するケースでは、2項命令(種類M)、単項命令(種類N)、および、無項命令(種類O)の最適命令語長は、それぞれ、S+OP+REG×3+IMM=1+7+5×3+16=39[ビット]、S+OP+REG×2+IMM=1+7+5×2+16=34[ビット]、および、S+OP+REG×1+IMM=1+7+5×1+16=29[ビット]である。
この条件下で、単一命令語長を用いるという一般的な手法(関連手法1と呼ぶ)で、プロセッサ性能を重視して命令語長が決定される場合には、命令語長は、最も長い最適語長の2項命令に合わせるように39[ビット]固定語長である。また、基本語長、および、その倍の語長の2種類の語長を用いるという可変語長方式に基づく関連手法(関連手法2と呼ぶ。たとえば、[文献1])で、プロセッサ性能を重視し命令語長が決定される場合には、命令語長は、基本語長の29[ビット]およびその倍の58[ビット]の2種類の語長である。
これに対し、本発明の具体例では、たとえば、固定語長Y=18[ビット]とすると、下記のようになる。即値オペランドを使用しない場合(図7に対応)では、2項命令(種類M、上記より23[ビット])の超過オペランドのビット数A、単項命令(種類N、上記より18[ビット])の超過オペランドのビット数B、および、無項命令(種類O、上記より13[ビット])の超過オペランドのビット数Cは、それぞれ、A=23−18=5[ビット]、B=18−18=0[ビット]、C=0[ビット](18>13なので)とすればよい。即値オペランドを参照する場合(図8に対応)では、A、B、Cに加え、さらに、E0、E1、E2を最大16[ビット]とすればよい。
その際、M、N、Oの3種類の命令に関する全てのあり得る命令発行パタンにおいて、A、B、Cのうちの任意の3つの合計の最大値は、A+A+A=5+5+5=15[ビット]である。この最大値15[ビット]は、固定語長Y−1=18−1=17[ビット]よりも小さいので、即値オペランドを使用しない命令の場合は、常時、1ワード分の情報ワードのみをサイクル毎に発行すればよい。
次に、即値オペランドを使用する命令と、即値オペランドを使用しない命令とが混在する(すなわち、図7と図8との状況が混在する)場合について説明する。表1は、混在の場合の命令発行パタンと1ワード目の情報ワード内で即値オペランドとして利用可能なビット数との関係を示す表である。
Figure 0005168143
混在の場合、必ずしも、2ワード目の情報ワードが必要となるわけではない。なぜならば、命令の発行パタンによっては、表1に示すように、1ワード目の情報ワード内に超過オペランドとして未使用のフリービットフィールドFFが存在し、その未使用のフリービットフィールドFFが即値オペランドに利用できるからである。
すなわち、それらの未使用のフリービットフィールドFFが、命令に必要な即値オペランドのビット数以内であれば、新たにもう1ワードの情報ワードを当該サイクル用として追加する必要がないことになる。このように、本具体例は、同一サイクルに実行される即値オペランドを使用する命令が存在する場合であっても、必ずしも情報ワードの数を増やす必要がない。
本具体例と、単一命令語長を用いる上記関連手法1、および、2種類の語長を用いる可変語長を用いる上記関連手法2とを詳細に比較すると、本具体例の効果は以下のようになる。
関連手法1の場合は、サイクル毎に、常時39×3=117[ビット]が必要である。また、関連手法2の場合は、サイクル毎に、87[ビット](短い方の語長の命令が、3ワードの場合:29×3)〜174[ビット](長い方の語長の命令が、3ワードの場合=58×3)が必要である。18[ビット]の固定語長を用いた本具体例の場合、同一サイクルにおいて3つの命令が同時に有効桁16[ビット]の即値オペランドを利用する稀なケースでは、18×(3+4)=126[ビット]を消費する。
ここで、上記の‘4’は、以下のように算出する。1命令ワードの超過オペランドは、4[ビット]であり、即値オペランドの最大値が16[ビット]なので、情報ワード全体では、(4+16)×3=63[ビット]が必要である。3<(63/17)<4なので、最大4ワードの情報ワードが1サイクルで必要である。
ほとんどのケースでは、3つの命令ワードと1〜2つの情報ワードの計4〜5ワード、すなわち、18×4=72[ビット]〜18×5=90[ビット]程度のビットが必要である。
したがって、本具体例は、関連手法1と比べると、平均的には、プログラムメモリ消費量が(117−72)/117=38[%]〜(117−90)/117=22[%]程度削減できる。また、関連手法2において、平均サイクル毎に必要なビット数が、87[ビット]と174[ビット]との平均である130[ビット]であるとすると、本具体例はそれと比べ、平均的には、プログラムメモリ消費量が、(130−72)/130=45[%]〜(130−90)/130=30[%]程度削減できる。
次に、第2の実施例の具体例の構成について図面を参照して説明する。図10は、本発明の第2の実施例の具体例の命令ワード復元部200の一部の構成を示すブロック図である。図10を参照すると、命令ワード復元部200は、デコーダ610、デコーダ611、デコーダ612、選択信号630、選択信号631、選択信号632、選択回路620、選択回路621、および、選択回路622を含む。
デコーダ612は、第3命令ワード602のオペコードをデコードし、第3命令ワード602の超過オペランドを選択するための選択信号632を出力する。デコーダ611は、第2命令ワード601、および、第3命令ワード602のオペコードをデコードし、第2命令ワード601の超過オペランドを選択するための選択信号631を出力する。デコーダ610は、第1命令ワード600、第2命令ワード601、および、第3命令ワード602のオペコードをデコードし、第1命令ワード600の超過オペランドを選択するための選択信号630を出力する。
たとえば、第3命令が種類M、種類N、種類Oであれば、デコーダ612は、それぞれ、情報ワード603の最後尾からA[ビット]、B[ビット]、C[ビット]を選択するように選択信号632を出力する。また、たとえば、第3命令が種類Oであり、第2命令が種類Nであれば、デコーダ611は、情報ワード603の最後尾からC[ビット]前にずれた位置からB[ビット]を選択するように選択信号631を出力する。また、たとえば、第3命令が種類Oであり、第2命令が種類Nであり、第1命令が種類Mであれば、デコーダ610は、情報ワード603の最後尾からB+C[ビット]前にずれた位置からA[ビット]を選択するように選択信号630を出力する。
選択回路620(18ウェイ)、選択回路621(9ウェイ)、選択回路622(3ウェイ)は、それぞれ、選択信号630、選択信号631、選択信号632にしたがって、情報ワード603から第1命令ワード600、第2命令ワード601、第3命令ワード602の超過オペランドを選択し出力する。
図示しないが、プロセッサ100は、マイクロプログラム制御方式の構成が可能である。すなわち、プロセッサ100が命令制御プログラムにしたがって動作することにより、上述した命令供給部102、命令デコーダ103、および、実行部108〜110の各機能部を実現することができる。この命令制御プログラムは、光ディスクや磁気ディスクなどの機械読み取り可能な記録媒体に記録した状態で提供することができる。
同一サイクルでn個の命令が実行される場合には、第1、…、第i、…、第nのデコーダ、第1、…、第i、…、第nの選択回路が必要になる。第iのデコーダは、第i、第i+1、…、および、第nの命令のオペコードを入力し、第iの命令ワードに対応する超過オペランド、または、即値オペランドを選択するための第iの選択信号を出力する。第iの選択回路は、第iの選択信号にしたがって情報ワードの該当する位置から第iの命令に対応する超過オペランド、または、即値オペランドを選択する。
また、18ウェイの選択回路62等の遅延時間が大であり、実行時間が、1サイクルに収まらない場合には、パイプラインステージの段数の増加により、本具体例が実現できる。
その他、他の具体例として、本発明を、関連手法2である可変語長命令方式と組み合わせて実施することが考えられる。その場合、情報ワードの語長を必要に応じて基本語長としたり、あるいは用意されている他の整数倍の語長としたりすることが可能となるため、さらにプログラムメモリ消費量が削減できる。
たとえば、最小語長がZ[ビット]で、2種類の語長を持つ可変語長方式の場合、図9において、情報ワードの語長Yのみが、サイクル毎にZ[ビット]であったり2Z[ビット]であったりする。この場合、情報ワード識別子303のビット数を増やすか、あるいは、別途語長を指定するビットフィールドを命令ワード、または、情報ワード内に追加する必要がある。
以上のように、上述した実施例のプロセッサ100は、同一サイクルで実行される複数の命令ワードに属するビットフィールドの一部が集まって構成される情報ワードを、実行時に分解し各命令ワードの元の構成を復元する命令デコーダ103を含む。具体的には、命令デコーダ103は、情報ワードからビットフィールドを取り出し、これらのビットフィールドを各命令ワードのそれぞれの所定ビット位置に挿入することにより、各命令ワードを復元する。さらに詳しく言えば、命令デコーダ103は、情報ワードからビットフィールドを取り出し、これらのビットフィールドを各命令ワードのそれぞれの先頭あるいは、末尾、あるいは、それぞれのオペコードに依存して決まる所定位置に挿入することにより、各命令ワードを復元する。
また、プロセッサ100は、複数の命令ワード、および、情報ワードを同一サイクルで出力する命令供給部102と、復元した各命令ワードをそれぞれデコードし、各命令ワードを実行するための制御情報を出力する命令デコーダ103と、制御情報に基づいて各命令を実行する1以上の実行部108〜110とを含む。
命令供給部102は、同一サイクルで実行される最大命令数がnであり、n[個]の命令ワードの次に情報ワードがあると、n[個]の命令の最後尾に情報ワードを配置して出力し、n[個]に満たないm[個]の命令ワードの次に情報ワードがあると、n−m[個]のNOP命令をn[個]の命令ワードの次に挿入するようにしてもよい。
ここで、情報ワードとして集められるビットフィールドの一部が、命令ワードの種類によって決まる長さの超過オペランド、または、即値オペランドであってもよい。この場合、命令デコーダ103は、第i、第i+1、…、および、第nの命令のオペコードを入力し、第iの命令ワードに対応する超過オペランド、または、即値オペランドを選択するための第iの選択信号を出力する第iのデコーダ610〜612と、第iの選択信号にしたがって情報ワードの該当する位置から第iの命令に対応する超過オペランド、または、即値オペランドを選択する第iの選択回路620〜622とを備えていてもよい。
以上、本発明の実施例および具体例を図面により詳述してきたが、具体的な構成は上記実施例および具体例に限られるものではなく、この発明の要旨を逸脱しない範囲の設計の変更などがあっても、この発明に含まれる。
本発明は、性能を維持したままプログラムメモリの消費ビット数を削減できる、単一サイクルに複数命令を発行可能な高性能プロセッサ、たとえば、VLIW(Very Long Instruction Word)型のプロセッサの実現に適用できる。

Claims (6)

  1. 同一サイクルで実行される複数の命令ワードに属するビットフィールドの一部が集められて構成される情報ワードを実行時に分解し、各命令ワードを元の構成に復元する命令デコーダと、
    各命令ワードの元の構成から情報ワードを構成する部分のビットフィールドが除かれた複数の部分命令ワード、および、情報ワードを同一サイクルで前記命令デコーダに出力する命令供給部と、
    制御情報に基づいて命令を実行する少なくとも1つの実行部と
    を備え、
    前記命令デコーダは、復元された各命令ワードをデコードし、各命令ワードを実行するための制御情報を前記実行部のそれぞれに出力する個別命令デコード部を備える
    ことを特徴とするプロセッサ。
  2. 前記命令供給部は、同一サイクルで実行される最大命令数がnであり、n個の部分命令ワードの次に情報ワードがある場合、n個の部分命令ワードの最後尾に、部分命令ワードの順番にしたがってそれぞれのビットフィールドが配置された情報ワードを配置して出力し、n個に満たないm個の部分命令ワードの次に情報ワードがある場合、m個の部分命令ワードの最後尾にn−m個のNOP命令を配置し、さらにその最後尾に、部分命令ワードの順番にしたがってそれぞれのビットフィールドが配置された情報ワードを配置して出力することを特徴とする請求項記載のプロセッサ。
  3. 情報ワードを構成するビットフィールドは、命令ワードの種類によって決まる長さの超過オペランド、および、即値オペランドの少なくとも一方であることを特徴とする請求項記載のプロセッサ。
  4. 前記命令デコーダは、
    1以上n以下の整数をiとしたとき、第iから第nの部分命令ワードのオペコードを入力し、第iの部分命令ワードに対応する超過オペランド、および、即値オペランドのいずれかを選択するための第iの選択信号を各部分命令ワードの種類に基づいて生成し出力する第iのデコーダと、
    前記第iのデコーダから出力される第iの選択信号にしたがって情報ワードの該当する位置から第iの部分命令ワードに対応する超過オペランド、および、即値オペランドのいずれかを選択する第iの選択回路と
    を備えることを特徴とする請求項記載のプロセッサ。
  5. プロセッサの命令デコーダで、同一サイクルで実行される複数の命令ワードに属するビットフィールドの一部が集められて構成される情報ワードを実行時に分解し、各命令ワードを元の構成に復元するステップと、
    前記プロセッサの命令供給部から前記命令デコーダに、各命令ワードの元の構成から情報ワードを構成する部分のビットフィールドが除かれた複数の部分命令ワード、および、情報ワードを同一サイクルで出力するステップと、
    前記命令デコーダで、復元された各命令ワードをデコードし、各命令ワードを実行するための制御情報を前記プロセッサの少なくとも1つの実行部に出力するステップと、
    前記実行部で、制御情報に基づいて命令を実行するステップと
    を備えることを特徴とする命令制御方法。
  6. プロセッサに、
    同一サイクルで実行される複数の命令ワードに属するビットフィールドの一部が集められて構成される情報ワードを実行時に分解し、各命令ワードを元の構成に復元するステップと、
    各命令ワードの元の構成から情報ワードを構成する部分のビットフィールドが除かれた複数の部分命令ワード、および、情報ワードを同一サイクルで出力するステップと、
    復元された各命令ワードをデコードし、各命令ワードを実行するための制御情報を生成するステップと、
    生成された制御情報に基づいて命令を実行するステップと
    を実行させるためのプログラム。
JP2008521270A 2006-06-15 2007-06-15 プロセッサ、および、命令制御方法 Expired - Fee Related JP5168143B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008521270A JP5168143B2 (ja) 2006-06-15 2007-06-15 プロセッサ、および、命令制御方法

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2006166077 2006-06-15
JP2006166077 2006-06-15
JP2008521270A JP5168143B2 (ja) 2006-06-15 2007-06-15 プロセッサ、および、命令制御方法
PCT/JP2007/062118 WO2007145319A1 (ja) 2006-06-15 2007-06-15 プロセッサ、および、命令制御方法

Publications (2)

Publication Number Publication Date
JPWO2007145319A1 JPWO2007145319A1 (ja) 2009-11-12
JP5168143B2 true JP5168143B2 (ja) 2013-03-21

Family

ID=38831832

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008521270A Expired - Fee Related JP5168143B2 (ja) 2006-06-15 2007-06-15 プロセッサ、および、命令制御方法

Country Status (6)

Country Link
US (1) US8131978B2 (ja)
EP (1) EP2028590A4 (ja)
JP (1) JP5168143B2 (ja)
KR (1) KR20090009981A (ja)
CN (1) CN101467128B (ja)
WO (1) WO2007145319A1 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5967582B2 (ja) * 2012-06-04 2016-08-10 パナソニックIpマネジメント株式会社 ディスク装置
US20160378480A1 (en) * 2015-06-27 2016-12-29 Pavel G. Matveyev Systems, Methods, and Apparatuses for Improving Performance of Status Dependent Computations
CN106445466B (zh) * 2015-08-13 2019-07-09 深圳市中兴微电子技术有限公司 超长指令字指令集的指令处理方法及装置
CN108256645B (zh) * 2018-01-19 2021-02-26 上海兆芯集成电路有限公司 数据位宽可调适的处理器

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09265397A (ja) * 1996-03-29 1997-10-07 Hitachi Ltd Vliw命令用プロセッサ
JPH117387A (ja) * 1997-06-16 1999-01-12 Matsushita Electric Ind Co Ltd Vliwプロセッサ
JP2002522821A (ja) * 1998-08-06 2002-07-23 トライメディア テクノロジーズ インク データプロセッサとデータ処理方法
JP2005227942A (ja) * 2004-02-12 2005-08-25 Matsushita Electric Ind Co Ltd プロセッサ及びコンパイラ

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3004108B2 (ja) 1991-11-27 2000-01-31 株式会社東芝 情報処理装置
JPH0895783A (ja) 1994-09-20 1996-04-12 Nec Corp 可変語長型マイクロコンピュータ
US5787302A (en) * 1996-05-15 1998-07-28 Philips Electronic North America Corporation Software for producing instructions in a compressed format for a VLIW processor
US5870576A (en) 1996-12-16 1999-02-09 Hewlett-Packard Company Method and apparatus for storing and expanding variable-length program instructions upon detection of a miss condition within an instruction cache containing pointers to compressed instructions for wide instruction word processor architectures
JP3327818B2 (ja) * 1997-08-29 2002-09-24 松下電器産業株式会社 プログラム変換装置及び記録媒体
EP0992892B1 (en) 1998-10-06 2015-12-02 Texas Instruments Inc. Compound memory access instructions
US20030023960A1 (en) * 2001-07-25 2003-01-30 Shoab Khan Microprocessor instruction format using combination opcodes and destination prefixes
US7002595B2 (en) * 2002-10-04 2006-02-21 Broadcom Corporation Processing of color graphics data
JP4424184B2 (ja) 2004-12-08 2010-03-03 株式会社ニコン 撮像装置
JP2009026106A (ja) * 2007-07-20 2009-02-05 Oki Electric Ind Co Ltd 命令コード圧縮方法と命令フェッチ回路

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09265397A (ja) * 1996-03-29 1997-10-07 Hitachi Ltd Vliw命令用プロセッサ
JPH117387A (ja) * 1997-06-16 1999-01-12 Matsushita Electric Ind Co Ltd Vliwプロセッサ
JP2002522821A (ja) * 1998-08-06 2002-07-23 トライメディア テクノロジーズ インク データプロセッサとデータ処理方法
JP2005227942A (ja) * 2004-02-12 2005-08-25 Matsushita Electric Ind Co Ltd プロセッサ及びコンパイラ

Also Published As

Publication number Publication date
US8131978B2 (en) 2012-03-06
CN101467128A (zh) 2009-06-24
KR20090009981A (ko) 2009-01-23
JPWO2007145319A1 (ja) 2009-11-12
US20100161944A1 (en) 2010-06-24
EP2028590A4 (en) 2009-07-08
EP2028590A1 (en) 2009-02-25
CN101467128B (zh) 2012-09-26
WO2007145319A1 (ja) 2007-12-21

Similar Documents

Publication Publication Date Title
US6490673B1 (en) Processor, compiling apparatus, and compile program recorded on a recording medium
US6360312B1 (en) Processor for making more efficient use of idling components and program conversion apparatus for the same
US6986025B2 (en) Conditional execution per lane
US6438676B1 (en) Distance controlled concatenation of selected portions of elements of packed data
JP2009026106A (ja) 命令コード圧縮方法と命令フェッチ回路
US7017032B2 (en) Setting execution conditions
WO1996029646A1 (fr) Processeur
KR100991700B1 (ko) 처리 장치, 처리 방법 및 컴퓨터로 판독가능한 기록 매체
US9965275B2 (en) Element size increasing instruction
JPH0728761A (ja) 非対称ベクトルマルチプロセッサ
US6195740B1 (en) Constant reconstructing processor that execute an instruction using an operand divided between instructions
JP5168143B2 (ja) プロセッサ、および、命令制御方法
JP3905552B2 (ja) 複数の命令セットを有するデータ処理装置内における命令エンコード
GB2411978A (en) Using multiple registers to shift and insert data into a packed format
US20030037085A1 (en) Field processing unit
EP1267255A2 (en) Conditional branch execution in a processor with multiple data paths
US6209080B1 (en) Constant reconstruction processor that supports reductions in code size and processing time
WO2004114127A1 (en) Result partitioning within simd data processing systems
JP3835764B2 (ja) プロセッサおよび記録媒体
JP5122277B2 (ja) データ処理方法、処理装置、多重命令ワードセット生成方法、コンパイラプログラム
WO2005036384A2 (en) Instruction encoding for vliw processors
JP3419268B2 (ja) プロセッサ
US7085989B2 (en) Optimized testing of bit fields
JP3603895B2 (ja) コンパイラ、および命令生成方法
WO2011086808A1 (ja) 情報処理装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100512

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120828

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20121029

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20121127

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20121210

LAPS Cancellation because of no payment of annual fees