JP2007065999A - 命令コードの符号化方式及びcpu - Google Patents

命令コードの符号化方式及びcpu Download PDF

Info

Publication number
JP2007065999A
JP2007065999A JP2005251317A JP2005251317A JP2007065999A JP 2007065999 A JP2007065999 A JP 2007065999A JP 2005251317 A JP2005251317 A JP 2005251317A JP 2005251317 A JP2005251317 A JP 2005251317A JP 2007065999 A JP2007065999 A JP 2007065999A
Authority
JP
Japan
Prior art keywords
instruction
bit
code
cpu
register
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
JP2005251317A
Other languages
English (en)
Other versions
JP4645369B2 (ja
Inventor
Kenji Yamada
健二 山田
Hideaki Ishihara
秀昭 石原
Masahiro Kamiya
政裕 神谷
Tsuyoshi Yamamoto
剛志 山本
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.)
Denso Corp
Original Assignee
Denso 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 Denso Corp filed Critical Denso Corp
Priority to JP2005251317A priority Critical patent/JP4645369B2/ja
Priority to US11/330,237 priority patent/US7664933B2/en
Publication of JP2007065999A publication Critical patent/JP2007065999A/ja
Priority to US12/585,781 priority patent/US7991982B2/en
Application granted granted Critical
Publication of JP4645369B2 publication Critical patent/JP4645369B2/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/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3851Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution from multiple instruction streams, e.g. multistreaming
    • 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/30003Arrangements for executing specific machine instructions
    • G06F9/3005Arrangements for executing specific machine instructions to perform operations for flow control
    • 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/30003Arrangements for executing specific machine instructions
    • G06F9/30072Arrangements for executing specific machine instructions to perform conditional operations, e.g. using predicates or guards

Landscapes

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

Abstract

【課題】 オペコード以外のフィールドが全てパラメータとして設定される命令コードについても複数の命令を割り当てることができる命令コードの符号化方式を提供する。
【解決手段】 CPUのデコーダは、指定した汎用レジスタrn内でソースビットの内容をデスティネーションビットに転送するbmov命令を実行する際に、双方が同じビットに指定されている場合は、コンディションコードレジスタ内に配置されるキャリーフラグ[C]の内容を、レジスタrnのデスティネーションビットに転送する処理を実行する。
【選択図】 図1

Description

本発明は、CPUによって実行される命令コードの符号化方式、及びその符号化方式を採用する命令デコーダを備えるCPUに関する。
一般に、CPUにはより多くの種類の命令を実装することが望まれており、そのためには、命令コード全体のサイズを極力圧縮する必要がある。そのような技術の1つとして、特許文献1に開示されているものがある。この技術は、図5に示すように、オペコード専用のオペランドと、アドレス計算に用いるオフセットを指定するオペランドとを含む命令コードにおいて、同一のオペコード(ope2)に対し、オフセットオペランド(offsetの下位ビット(2〜0)をオペコードフィールドとして符号拡張することで複数の命令を割り当てる、という符号化方式である。
特許第2682469号
即ち、特許文献1に開示されている技術は、符号拡張用のビットとするオフセットフィールドの下位ビットに、常に「0」が割り当てられることを前提として成立するものである。従って、それらの下位ビットに他のパラメータが設定される命令コードには、適用することができない。
本発明は上記事情に鑑みてなされたものであり、その目的は、オペコード以外のオペランドが全てパラメータとして設定される命令コードについても、複数の命令を割り当てることを可能とする命令コードの符号化方式、及びその符号化方式を採用する命令デコーダを備えるCPUを提供することにある。
請求項1記載の命令コードの符号化方式によれば、命令コード中の複数のオペランドで指定されている演算対象が、オペコードで指定される命令を実行した結果が変化しない組み合わせとなっている場合は、前記命令とは異なる命令に相当する処理を行なうように定められる。即ち、オペコードの命令内容とその命令を実行する対象との組み合わせによっては、命令の実行結果が変化せず、実質的にNOP(No OPeration)命令を実行した場合と同様になる場合がある。
従って、命令コードにおける複数のオペランドについての指定が上記の結果を招くような態様となっている場合は、実用的には使われない組み合わせのため、本来の命令とは実行形態が異なる命令を実行しても性能が劣らず問題がないから、オペコード以外のフィールドが全てパラメータとして設定される命令コードについても複数の命令を割り当てることができる。
請求項2記載の命令コードの符号化方式によれば、命令コードは2つのオペランドを有しており、オペコードで指定される命令は、それら2つのオペランドで指定される演算対象について演算を行なうものである場合に、前記2つのオペランドで指定される演算対象が同一であり、且つ、それらについて前記演算を行なうと実行結果が変化しないものは、前記演算対象と、予め指定されている他の演算対象との間で演算を行なう。
即ち、本来は、2つのオペランドで夫々指定された対象について演算を行なう命令には、それらが同じ対象であるとすれば実行結果は変化しないものがある。従って、そのような命令において2つのオペランドの指定を同一対象とした場合は、別の命令を割り当てることが可能となる。
請求項3記載のCPUによれば、命令デコーダが請求項1又は2記載の命令コードの符号化方式を採用することで、予め用意される命令セット数を増加させることなく、より多様な命令を実行させることができる。
以下、本発明の一実施例について図1乃至図4を参照して説明する。図4は、CPUの内部構成を本発明の要旨に係る部分について概略的に示す機能ブロック図である。CPU1は、制御部2、演算部(ALU)3、レジスタ部4などを備えている。制御部2は、図示しない外部のプログラムメモリよりフェッチした命令をデコードするデコーダ(命令デコーダ)5、前記デコードの結果に応じて演算部3における命令実行を制御するシーケンサ6で構成されている。
レジスタ部4は、複数のステータスレジスタや制御レジスタ,汎用レジスタ,また、これらのレジスタに対してデータの書込みや読出しを行うためのロジックなどから構成されている。そして、演算部3は、レジスタ部4のレジスタから読み出されたデータに対して演算を行なったり、演算結果をレジスタに格納するようになっている。
尚、このCPU1の構成は、外見的には一般的なCPUの構成と異なるところはないが、デコーダ5がフェッチした命令をデコードする場合の処理に特徴を有している。そのデコード処理の内容を図2にフローチャートとして示すが、このフローチャートは、あくまでもデコーダ5が内部のハードウエアロジックによって実行する内容である。
次に、本実施例の作用ついて図1乃至図3も参照して説明する。図1は、本発明の符号化方式に基づいて符号化された命令コードをCPUがデコードして実行する場合の内容を説明するものである。図1(a)は、コードサイズが16ビットであるビット転送命令:bmovを示しており、4ビット毎の4つのオペランドが以下のように割り当てられている。
ビット 内容
15〜12 オペコード :ope
11〜 8 オペランドソースビット :bit_s(演算対象)
7〜 4 オペランドレジスタ :rn
3〜 0 オペランドデスティネーションビット:bit_q(演算対象)
このbmov命令は、図1(b)に示すように、通常は、オペランドとして指定された汎用レジスタrnにおいて、ソースビット(例えば、第8ビット)の内容を、デスティネーションビット(例えば、第3ビット)に転送するという演算処理、即ち1ビット操作を行なうものである(bit_s≠bit_qである場合)。この場合、デコーダ5によるデコード動作は、図2に示すフローチャートでは、ステップS1→S2→S5に対応する。
従って、このbmov命令においてソースビットとデスティネーションビットとを同一に設定すれば(bit_s=bit_qである場合)、上記の演算処理を実行すると同じビットに同じデータを上書きすることになるので実行結果は変化しない。即ち、NOP命令を実行した場合と同様の結果となる。
そこで、本実施例では、図1(c)に示すように、bmov命令においてソースビットとデスティネーションビットとが同一に設定されている場合、CPU1のデコーダ5は、bmov命令とは異なる命令に相当する処理を実行するように構成されている。
即ち、図1(c)では、ソースビットとデスティネーションビットとを何れも第3ビットに指定している。この場合、デコーダ5は、レジスタ部4のコンディションコードレジスタ(CCレジスタ,ステータスレジスタの一部として構成される場合もある)内に配置されるキャリーフラグ[C](演算結果にキャリー又はボローがある,他の演算対象)の内容を、レジスタrnのデスティネーションビットに転送する、という処理を実行する。このデコード動作は、図2のフローチャートでは、ステップS1→S2→S3に対応する。また、デコード対象の命令がbmov命令以外である場合は、ステップS1→S6となる。
尚、CCレジスタにおける他のフラグ[N]はネガティブ(命令の実行結果により最上位ビットが「1」),フラグ[Z]はゼロ(命令の実行結果がゼロ),フラグ[V]はオーバーフロー(算術演算結果が2の補数で表現不可)を意味している。
ここで、図3は、CPU1が上記のbmov命令(bit_s=bit_q)を使用したプログラムを実行する場合の具体例を示すものであり、汎用レジスタrmの第5ビットの内容を、レジスタrnの第3ビットに転送させる場合を示す。CPU1は、命令セットの1つにbtbeq(bit test branch equal)命令を有しており、このbtbeq命令は、オペランドとして指定した任意の汎用レジスタの任意のビットの内容を、CCレジスタのキャリーフラグに転送させる命令であるものとする。
この場合、先ず、btbeq命令を実行することで、汎用レジスタrmの第5ビットの内容をCCレジスタのキャリーフラグに転送し、続いてbmov命令(bit_s=bit_q=3)を図1と同様の指定で実行させれば、キャリーフラグの内容をレジスタrnの第3ビットに転送させることができる。
以上のように本実施例によれば、CPU1のデコーダ5は、命令コード中の複数のオペランドで指定されている演算対象が、オペコードで指定される命令を実行した結果が変化しない組み合わせとなっている場合は、前記命令とは異なる命令に相当する処理を行なう。具体的には、指定した汎用レジスタrn内でソースビットの内容をデスティネーションビットに転送するbmov命令において、双方が同じビットに指定されている場合は、CCレジスタ内に配置されるキャリーフラグ[C]の内容を、レジスタrnのデスティネーションビットに転送する処理を実行するようにした。
従って、オペコード以外のオペランドが全てパラメータとして設定される命令コードについても複数の命令を割り当てることができる。そして、CPU1は、予め用意される命令セット数を増加させることなく、より多様な命令を実行させることができる。
本発明は上記し又は図面に記載した実施例にのみ限定されるものではなく、以下のような変形が可能である。
(bit_s=bit_q)である場合に本来の1ビット操作命令に替えて実行する命令の内容は、上記の実施例に限ることなく、個別のアプリケーションに必要となる命令を適宜選択して割り当てれば良い。
bmov命令に限ることなく、その他の命令について同様の符号化方式を適用しても良い。例えば、命令コードにオペランドレジスタを指定するためのオペランドは必ずしも必要ではなく、命令とオペランドレジスタとが1対1の関係となっていても良い。
命令コードのサイズは、16ビットに限ることはない。
本発明の一実施例であり、本発明の命令符号化方式に基づいて符号化された命令コードをCPUがデコードして実行する場合の内容を説明する図 CPUの命令デコーダがフェッチした命令をデコードする場合の、ハードウエアロジックによる処理内容を示すフローチャート CPUがbmov命令(bit_s=bit_q)を使用したプログラムを実行する場合の具体例を示す図 CPUの内部構成を、本発明の要旨に係る部分について概略的に示す機能ブロック図 特許文献1に開示されている従来技術を説明するもので、命令コードの構成を示す図
符号の説明
図面中、1はCPU、5は命令デコーダを示す。

Claims (3)

  1. 命令コード中に、少なくともオペコードと、命令の演算対象を指定する複数のオペランドとを有し、前記演算対象について前記オペコードで指定される命令を行なうものについて、
    前記複数のオペランドで指定されている演算対象が、前記命令を実行した結果が変化しない組み合わせとなっている場合は、前記命令とは異なる命令に相当する処理を行なうように定められていることを特徴とする命令コードの符号化方式。
  2. 前記命令コードは、2つのオペランドを有し、
    前記オペコードで指定される命令は、前記2つのオペランドで指定される演算対象について演算を行なうものである場合、
    前記2つのオペランドによって指定される演算対象が同一であり、且つ、それらについて前記演算を行なうと実行結果が変化しないものについては、前記演算対象と、予め指定されている他の演算対象との間で演算を行なうことを特徴とする請求項1記載の命令コードの符号化方式。
  3. 請求項1又は2記載の命令コードの符号化方式を採用して構成される命令デコーダを備えることを特徴とするCPU。

JP2005251317A 2005-01-17 2005-08-31 Cpu Expired - Fee Related JP4645369B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2005251317A JP4645369B2 (ja) 2005-08-31 2005-08-31 Cpu
US11/330,237 US7664933B2 (en) 2005-01-17 2006-01-12 Microcomputer and encoding system for instruction code and CPU
US12/585,781 US7991982B2 (en) 2005-01-17 2009-09-24 Microcomputer and encoding system for executing peripheral function instructions

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005251317A JP4645369B2 (ja) 2005-08-31 2005-08-31 Cpu

Publications (2)

Publication Number Publication Date
JP2007065999A true JP2007065999A (ja) 2007-03-15
JP4645369B2 JP4645369B2 (ja) 2011-03-09

Family

ID=37928132

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005251317A Expired - Fee Related JP4645369B2 (ja) 2005-01-17 2005-08-31 Cpu

Country Status (1)

Country Link
JP (1) JP4645369B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111027103A (zh) * 2019-01-31 2020-04-17 哈尔滨安天科技集团股份有限公司 基于寄存器模糊配置的芯片检测方法、装置及存储设备

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5559551A (en) * 1978-10-30 1980-05-06 Nec Corp Information processor

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5559551A (en) * 1978-10-30 1980-05-06 Nec Corp Information processor

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111027103A (zh) * 2019-01-31 2020-04-17 哈尔滨安天科技集团股份有限公司 基于寄存器模糊配置的芯片检测方法、装置及存储设备
CN111027103B (zh) * 2019-01-31 2023-11-10 安天科技集团股份有限公司 基于寄存器模糊配置的芯片检测方法、装置及存储设备

Also Published As

Publication number Publication date
JP4645369B2 (ja) 2011-03-09

Similar Documents

Publication Publication Date Title
JP6351682B2 (ja) 装置および方法
JP6227621B2 (ja) 複数の試験ソースに対するor試験及びand試験機能を提供するために命令をフュージングする方法及び装置
CN107729048B (zh) 提供向量压缩和旋转功能的指令和逻辑
JP5918287B2 (ja) 演算マスクのマスクされていない要素をコンソリデートする命令処理装置、方法、システム、及びプログラム
CN104115115B (zh) 用于多精度算术的simd整数乘法累加指令
CN107430508B (zh) 用于提供原子范围操作的指令和逻辑
CN107918546B (zh) 利用经掩码的全寄存器访问实现部分寄存器访问的处理器、方法和系统
EP1102163A2 (en) Microprocessor with improved instruction set architecture
CN108885551B (zh) 存储器复制指令、处理器、方法和系统
JP2018500657A5 (ja)
CN107533460B (zh) 紧缩有限冲激响应(fir)滤波处理器、方法、系统和指令
JP6419205B2 (ja) プロセッサ、方法、システム、コンピュータシステム、およびコンピュータ可読記憶媒体
US7546442B1 (en) Fixed length memory to memory arithmetic and architecture for direct memory access using fixed length instructions
CN105765522B (zh) 用于立即数处置和旗标处置的处理器和方法
US20030037085A1 (en) Field processing unit
JPH07120278B2 (ja) データ処理装置
JP4645369B2 (ja) Cpu
JP2002073325A (ja) データ処理装置及び方法
JP5732139B2 (ja) データ要素の条件付き選択
JPS623332A (ja) 情報処理装置
EP4300293A1 (en) Add with rotation instruction and support
JP2006302324A (ja) データ処理装置
JP5263497B2 (ja) 信号処理プロセッサ及び半導体装置
CN116339683A (zh) 零周期存储器初始化
CN112579168A (zh) 指令执行单元、处理器以及信号处理方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20071003

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20091215

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100202

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100312

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

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20101122

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131217

Year of fee payment: 3

R151 Written notification of patent or utility model registration

Ref document number: 4645369

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131217

Year of fee payment: 3

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

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