JP2001043082A - 情報処理装置並びに命令コーディング方法及び命令デコーディング方法 - Google Patents

情報処理装置並びに命令コーディング方法及び命令デコーディング方法

Info

Publication number
JP2001043082A
JP2001043082A JP21823499A JP21823499A JP2001043082A JP 2001043082 A JP2001043082 A JP 2001043082A JP 21823499 A JP21823499 A JP 21823499A JP 21823499 A JP21823499 A JP 21823499A JP 2001043082 A JP2001043082 A JP 2001043082A
Authority
JP
Japan
Prior art keywords
instruction
instruction code
length
code
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.)
Pending
Application number
JP21823499A
Other languages
English (en)
Inventor
Akira Mochizuki
明 望月
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 JP21823499A priority Critical patent/JP2001043082A/ja
Publication of JP2001043082A publication Critical patent/JP2001043082A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Executing Machine-Instructions (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

(57)【要約】 【課題】 可変長命令コードを用いて、命令コードの格
納効率を向上させる。 【解決手段】 命令デコーディング装置が、命令コード
群を格納して次フェッチ命令コード群を出力する命令メ
モリ11と、未使用命令コード群と連結命令コード群と
を格納する命令レジスタ12と、命令コードとビット長
の対応関係を記憶する命令コード対応メモリ16と、命
令レジスタの最上位側の命令コードをデコードして制御
信号を生成する命令デコーダ15と、シフト量データを
出力すセレクタ17と、前命令コード群をシフトして未
使用命令コード群を出力するバレルシフタ13と、今回
の命令コード長と保持されている命令コード長の加算値
とを加算する加算器18と、加算器の出力命令コード長
を保持するコード長レジスタ19と、次フェッチ命令コ
ード群を上位側にシフトして連結命令コード群として出
力するバレルシフタ12とから構成される。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】この発明は、情報処理装置並
びに命令コーディング方法及び命令デコーディング方法
に係り、詳しくは、命令コード長をビット単位で割り当
てることによって、命令ROM(Read Only Memory)容
量の圧縮と、命令キャッシュにおけるミスヒット率の低
減を可能にした、情報処理装置並びに命令コーディング
方法及び命令デコーディング方法に関する。
【0002】
【従来の技術】情報処理装置においては、コード化され
た命令を命令メモリに格納しておき、プログラムの進行
に応じて逐次、命令コードを読み出して、これをデコー
ドすることによって、命令の実行に必要な制御信号を生
成する方法がとられている。そして、この際の命令コー
ド長としては、バイト(8ビット)単位に選ばれるのが
一般であって、命令の種類が少ない場合には、1バイト
命令が用いられる。命令の種類が多く、そのためコード
長が1バイトを超える場合でも、例えば2バイト,4バ
イト等のようにバイト単位に設定し、又は、必要に応じ
て、バイト単位で命令コード長を変更する、可変長命令
コード方式が用いられている(例えば、特開昭56−7
1141号公報,特開平8−101774号公報,特開
平11−24930号公報等参照)。
【0003】図17は、従来の命令デコード回路の構成
を示したものであって、最も単純な固定長1バイト命令
コード方式の場合を例示し、命令メモリ101と、命令
レジスタ102と、命令デコーダ103とから概略構成
されている。命令メモリ101は、1バイトの固定長命
令コードからなる命令セットを、プログラムに対応して
格納している。命令レジスタ102は、命令メモリ10
1から1バイトごとに逐次読み出される命令コードを、
一時保持する。命令デコーダ103は、プログラムにお
いて用いられる命令セットに対応する復号化ロジック回
路が組み込まれていて、入力された命令コードをデコー
ドして、制御信号を出力する。次に、図17を参照し
て、従来の命令デコード回路の動作を説明する。命令メ
モリ101は、プログラムの進行に応じて、格納されて
いる命令コードを、逐次1バイトづつ出力する。命令レ
ジスタ102は、命令メモリ101から読み出された1
バイトからなる命令コードを、一旦保持する。命令デコ
ーダ103は、命令レジスタ2から読み出された命令コ
ードをデコードして、命令の実行に必要な、プロセッサ
内部の動作を制御するための制御信号104を生成す
る。
【0004】このように、従来の命令デコーディング方
法では、例えば、固定長1バイト命令コード方式の場
合、命令コード長は、命令の種類の多少にかかわらず8
ビット一定であった。そのため、命令メモリが、命令コ
ードを固定的に記憶するROMの場合も、又は、メイン
メモリから読み出された命令コード群を保持するキャッ
シュの場合も、1命令が占有する記憶領域は一定であっ
た。
【0005】
【発明が解決しようとする課題】しかしながら、命令の
種類が少ない場合は、命令コード長として8ビット必要
としないことがあり、従って、常に1バイト固定長とし
た場合、命令ROM容量が必要以上に増大し、命令コー
ドの格納効率が低下するという問題があった。また、こ
れと同時に、プログラムメモリから命令キャッシュに命
令コードを読み出す場合に、キャッシュの容量が限られ
ているので、読み出された命令コード中に、所望の命令
コードがないため、命令キャッシュの書き替えが必要に
なることがあるが、命令コードの格納効率が低い場合に
は、このようなミスヒット率が増大するという問題があ
った。
【0006】この発明は、上述の事情に鑑みてなされた
ものであって、命令コード長をビット単位で設定し、使
用頻度の高い命令にビット長の短いコードを割り当てる
ことによって、命令ROM容量の圧縮と、命令キャッシ
ュにおけるミスヒット率の低減を可能にした、情報処理
装置並びに命令コーディング方法及び命令デコーディン
グ方法を提供することを目的としている。
【0007】
【課題を解決するための手段】上記課題を解決するた
め、請求項1記載の発明は、情報処理装置に係り、プロ
グラム中で使用される命令セットに対して、命令の使用
頻度が高いほどビット長が1ビットを単位として短くな
るような符号化を行ってビット単位からなる可変長命令
コードを生成する命令コーディング装置を備えたことを
特徴としている。
【0008】また、請求項2記載の発明は、情報処理装
置に係り、複数のビット単位からなる可変長命令コード
を命令記憶手段に格納し、命令使用時、該命令記憶手段
から対応する可変長命令コードを読み出してデコードし
て、対応する制御信号を生成する命令デコーディング装
置を備えたことを特徴としている。
【0009】また、請求項3記載の発明は、情報処理装
置に係り、プログラム中で使用される命令セットに対し
て、命令の使用頻度が高いほどビット長が1ビットを単
位として短くなるような符号化を行ってビット単位から
なる可変長命令コードを生成する命令コーディング装置
と、複数のビット単位からなる可変長命令コードを命令
記憶手段に格納し、命令使用時、該命令記憶手段から対
応する可変長命令コードを読み出してデコードして、対
応する制御信号を生成する命令デコーディング装置とを
備えたことを特徴としている。
【0010】また、請求項4記載の発明は、請求項1又
は3記載の情報処理装置に係り、上記命令コーディング
装置が、プログラムソースをコンパイルしてアセンブラ
ソースを生成するコンパイル手段と、該アセンブラソー
ス中における各命令の出現の頻度確率を検出する命令頻
度検出手段と、上記アセンブラソース中の各命令に対し
て、上記検出された頻度確率が高いほどビット長が1ビ
ットを単位として短くなるような符号化を行ってビット
単位からなる可変長命令コードを生成する符号化処理手
段とを備えてなることを特徴としている。
【0011】また、請求項5記載の発明は、請求項4記
載の情報処理装置に係り、上記符号化処理手段が、エン
トロピー符号化によって、上記可変長命令コードを生成
することを特徴としている。
【0012】また、請求項6記載の発明は、請求項5記
載の情報処理装置に係り、上記エントロピー符号化が、
ハフマン符号化であることを特徴としている。
【0013】また、請求項7記載の発明は、請求項2又
は3記載の情報処理装置に係り、上記命令デコーディン
グ装置が、複数の可変長命令コードを格納して、フェッ
チ要求に応じて所定ビット長の次フェッチ命令コード群
を出力する命令記憶手段と、未使用命令コード群と連結
命令コード群とを連結して格納する命令コード保持手段
と、各可変長命令コードにおける命令コードとビット長
との対応関係を記憶する命令コード対応記憶手段と、該
命令コードとビット長との対応関係に応じて、上記命令
コード保持手段に格納されている命令コード群の最上位
側(又は最下位側)における1個の可変長命令コードを
読み出してデコードして制御信号を生成するとともに該
デコードした命令コード長を出力する命令コードデコー
ド手段と、上記デコードされた命令が分岐命令でないと
きはデコードされた命令コード長を選択し、分岐命令で
あるときは分岐先命令位置データを選択して出力するセ
レクト手段と、上記命令コード保持手段における前命令
コード群を上記セレクト手段の出力ビット長だけ上位側
(又は下位側)にシフトして上記未使用命令コード群と
して出力する第1のシフト手段と、デコードされた命令
コード長と、コード長保持手段に保持された命令コード
長とを加算して出力し、該加算結果が所定ビット長を超
えるときはキャリを発生して上記命令記憶手段に上記フ
ェッチ要求として出力するとともに桁上げ余りの命令コ
ード長を出力する加算手段と、上記加算手段の出力命令
コード長を保持するコード長保持手段と、上記命令記憶
手段から出力された次フェッチ命令コード群を上記加算
手段の出力命令コード長だけ上位側(又は下位側)にシ
フトして上記連結命令コード群として出力する第2のシ
フト手段とを備えてなることを特徴としている。
【0014】また、請求項8記載の発明は、請求項7記
載の情報処理装置に係り、上記命令コード対応記憶手段
を複数備え、プログラムに対応してそれぞれの命令コー
ド対応記憶手段を切り替えて使用することによって、複
数のプログラムを並列処理可能にしたことを特徴として
いる。
【0015】また、請求項9記載の発明は、請求項7記
載の情報処理装置に係り、上記各可変長命令コードにお
けるコードとビット長との対応関係の情報を、上記命令
コードデコード手段内に備えることによって、上記命令
コード対応記憶手段を省いた構成としたことを特徴とし
ている。
【0016】また、請求項10記載の発明は、命令コー
ディング方法に係り、プログラムソースをコンパイルし
てアセンブラソースを生成するステップと、該アセンブ
ラソース中における各命令の出現の頻度確率を検出する
ステップと、上記アセンブラソース中の各命令に対し
て、上記検出された頻度確率が高いほどビット長が1ビ
ットを単位として短くなるような符号化を行ってビット
単位からなる可変長命令コードを生成するステップとを
備えてなることを特徴としている。
【0017】また、請求項11記載の発明は、命令デコ
ーディング方法に係り、複数の可変長命令コードを格納
した命令記憶手段からフェッチ要求に応じて所定ビット
長の次フェッチ命令コード群を出力するステップと、未
使用命令コード群と連結命令コード群とを連結した可変
長命令コード群を命令コード保持手段に格納するステッ
プと、命令コード対応記憶手段に格納されている命令コ
ードとビット長との対応関係に応じて、上記命令コード
保持手段に格納されている命令コード群の最上位側(又
は最下位側)における1個の可変長命令コードを読み出
してデコードして制御信号を生成するとともに、該デコ
ードした命令コード長を出力するステップと、セレクト
手段によって、上記デコードされた命令が分岐命令でな
いときは前回デコードされた命令コード長を選択し、分
岐命令であるときは分岐先命令位置データを選択して出
力するステップと、上記命令コード保持手段における前
命令コード群を上記セレクト手段の出力ビット長だけ上
位側(又は下位側)にシフトして上記未使用命令コード
群として出力するステップと、加算手段において、デコ
ードされた命令コード長と、コード長保持手段に保持さ
れた加算結果の命令コード長とを加算して出力し、該加
算結果が所定ビット長を超えるときキャリを発生して上
記命令記憶手段に上記フェッチ要求として出力するとと
もに桁上げ余りの命令コード長を出力するステップと、
上記命令記憶手段から出力された次フェッチ命令コード
群を上記加算手段の出力命令コード長だけ上位側(又は
下位側)にシフトして上記連結命令コード群として出力
するステップとを備えてなることを特徴としている。
【0018】
【作用】この発明の構成では、情報処理装置において、
命令コーディング装置を備えて、プログラム中で使用さ
れる命令セットに対して、命令の使用頻度が高いほどビ
ット長が1ビットを単位として短くなるような符号化を
行ってビット単位からなる可変長命令コードを生成し、
命令デコーディング装置を備えて、複数のビット単位か
らなる可変長命令コードを命令記憶手段に格納し、命令
使用時、上記命令記憶手段から対応する可変長命令コー
ドを読み出してデコードして、対応する制御信号を生成
するようにしたので、命令コード長をビット単位で設定
して、使用頻度の高い命令ほどビット長の短い命令コー
ドを割り当てるようにした可変長命令コードを用いるこ
とが可能になり、従って、プロセッサの性能を劣化させ
ることなく、命令コードの格納効率を向上させることが
できるようになる。このため、命令メモリがROMであ
る場合に、命令ROMの容量を圧縮することができ、ま
た、命令メモリが、プログラムメモリから命令を読み出
して保持する命令キャッシュである場合に、ミスヒット
によって、命令キャッシュの書き換えを行う頻度を少な
くすることができるようになる。
【0019】
【発明の実施の形態】以下、図面を参照して、この発明
の実施の形態について説明する。説明は、実施例を用い
て具体的に行う。図1は、この発明の一実施例である命
令コーディング装置の構成を示す図、図2は、この発明
の一実施例である命令デコーディング装置の構成を示す
図、図3は、命令コードのビット長の例を示す図、図4
は、次フェッチ命令コード群の例を示す図、図5は、命
令レジスタの内容の推移の例を示す図、図6は、命令フ
ォーマットの例を示す図、図7は、CPU(Central Pr
ocessing Unit )の命令セットの定義と、命令コードと
符号化対象ビットとの例を示す図、図8乃至図14は、
命令コード割り当ての例を示す図、図15は、命令コー
ドの出現頻度の例を示す図、図16は、頻度に対応した
コード変換の例を示す図である。
【0020】この例の命令コーディング装置は、図1に
示すように、コンパイル部1と、命令頻度検出部2と、
符号化処理部3とから概略構成されている。上記コンパ
イル部1は、高級言語で書かれたソースを、より低位の
アセンブラ言語に変換する。命令頻度検出部2は、プロ
グラムソースから、命令の出現頻度を検出する。符号化
処理部3は、アセンブラ言語で書かれたソースに対し
て、命令の出現頻度に応じてビット長が変化する符号化
を行って、命令コードを出力する。
【0021】次に、図1を参照して、この例の命令コー
ディング装置の動作を説明する。ソース4に格納されて
いる、高級言語からなるプログラムは、コンパイル部1
でアセンブラ言語に変換されて、アセンブラソース5に
格納される。命令頻度検出部2は、アセンブラソース5
に格納されているアセンブラ言語からなるプログラムに
おける、各命令の出現頻度を検出する。符号化処理部3
は、アセンブラソース5に格納されているアセンブラ言
語からなるプログラムに対して、ハフマン符号化等のエ
ントロピー符号化を行って、機械語プログラムからなる
オブジェクトコード6を生成するとともに、出現頻度の
高い命令ほどビット長の短いコードを割り当てた、ビッ
ト単位の可変長命令コードからなる命令コードテーブル
7を生成する。なお、エントロピー符号化時には、イミ
ディエート値(即値),ディスプレースメント値(アド
レス変位値),分岐先命令位置データを考慮するものと
する。
【0022】また、この例の命令デコーディング装置
は、図2に示すように、命令メモリ11と、バレルシフ
タ12,13と、命令レジスタ14と、命令デコーダ1
5と、命令コード対応メモリ16と、セレクタ17と、
加算器18と、コード長レジスタ19とから概略構成さ
れている。命令メモリ11は、複数の可変長命令コード
を格納している命令ROM、又はプログラムメモリから
予め読み出された所定量の可変長命令コード群を格納す
る命令キャッシュからなっていて、命令フェッチ要求が
あったとき、所定ビット長の可変長命令コード群を次フ
ェッチ命令コード群として出力する。バレルシフタ12
は、命令メモリ11から一度に読み出し可能なビット長
の幅を持つシフタからなり、命令メモリ11から読み出
された次フェッチ命令コード群を、シフト量データに応
じて上位側(又は下位側)にシフトさせて、連結命令コ
ード群として出力する。バレルシフタ13は、バレルシ
フタ12と同じビット幅を持つシフタであって、命令レ
ジスタ14に格納されていた前命令コード群を、シフト
量データに応じて上位側(又は下位側)にシフトさせ
て、未使用命令コード群として出力する。
【0023】命令レジスタ14は、命令メモリ11から
一度に読み出し可能なビット長の2倍のビット長の幅を
持つレジスタからなっていて、バレルシフタ13から出
力された未使用命令コード群と、バレルシフタ12から
出力された連結命令コード群とを連結して格納する。命
令デコーダ15は、可変長命令コードを入力とし、命令
コード対応メモリ16の内容を参照して、制御情報を生
成するとともに、今回デコードした命令コード長を出力
する。命令コード対応メモリ16は、可変長命令コード
とプロセッサ内への制御信号の生成を対応付ける情報
が、予め格納されている。セレクタ17は、命令コード
長と、分岐先命令位置データとを切り替えて、シフト量
データとして出力する。。加算器18は、命令メモリ1
1から一度に読み出し可能なビット長の幅を持ち、命令
コード長と、コード長レジスタ19の値とを加算して、
バレルシフタ12のシフト量を計算して出力するととも
に、加算器出力が所定ビット長を超えて、命令レジスタ
14が次フェッチ命令コード群を連結可能になったと
き、キャリを発生して命令フェッチ要求として命令メモ
リ11に出力し、桁上げ余りの命令コード長をバレルシ
フタ12のシフト量として出力する。コード長レジスタ
19は、命令メモリ11から一度に読み出し可能なビッ
ト長の幅を持ち、現在までのバレルシフタ12のシフト
量の加算結果を記憶する。
【0024】以下、図2を参照して、この例の命令デコ
ーディング装置の動作について説明する。命令メモリ1
1は、命令フェッチ要求20が発生したとき、次クロッ
クで、16ビットからなる次フェッチ命令コード群21
を読み出す。次フェッチ命令コード群21は、バレルシ
フタ12において、加算器18から与えられるシフト量
データ22に応じて、上位側(又は下位側)にシフトさ
れて、連結命令コード群23を生じる。ここで、シフト
量データ22は、加算器18において、今回デコードさ
れた命令コード長28と、コード長レジスタ19に保持
されていた前回までにデコードされた命令コード長の累
算値との和に相当するビット長からなっている。ただ
し、この和が16ビットを超えたときは、加算器18
は、キャリを出力するとともに、加算値として、桁上げ
余りである16ビット未満の端数値のビット長を出力す
る。このとき、加算器18から出力されたキャリは、命
令フェッチ要求20として命令メモリ11に与えられる
ことによって、読み出された次フェッチ命令コード群2
1が、バレルシフタ12において、前述の端数値のビッ
ト長シフトされて、連結命令コード群23を生じる。
【0025】一方、前回デコード時の命令レジスタ14
の内容である前命令コード群24はバレルシフタ13に
おいて、セレクタ17から与えられるシフト量データ2
5に応じて、上位側(又は下位側)にシフトされること
によって、デコードずみの前命令を削除されて、未使用
命令コード群26として出力される。この際のシフト量
としては、セレクタ17において、命令を分岐しないと
きは今回デコードされた命令コード長28が選択され、
命令を分岐するときは分岐先命令位置データ29が選択
されることによって、シフト量データ25が生成され
る。
【0026】バレルシフタ13から出力された未使用命
令コード群26に対して、バレルシフタ12から出力さ
れた連結命令コード群23が連結されて、命令レジスタ
14に格納される。この際のバレルシフタ12のシフト
量と、バレルシフタ13のシフト量とは等しいので、命
令レジスタ14の内容は、前回セットされていた前命令
コード群24のうち、デコードされなかった未使用命令
コード群の後に、連結命令コード群を、隙間なく連結し
た命令コード群からなっている。
【0027】命令コード対応メモリ16には、可変長命
令コードから、プロセッサ内への制御信号27を生成す
る際における対応付けを示す情報として、命令ごとの、
命令コードとそのビット長、及命令コードに対応する制
御信号のデータが、プログラム実行前に予め格納されて
いる。命令デコーダ15は、命令レジスタ14にセット
されている命令コード群のうちから、命令コードとその
ビット長とによって決定される、最上位側(又は最下位
側)に位置する1個の可変長命令コードを入力して、デ
コードすることによって、制御信号27を生成するとと
もに、今回デコードした命令コード長28を出力する。
【0028】以下、図3乃至図5を参照して、この例の
命令デコーディング装置における、可変長命令コードの
デコード処理の例を説明する。いま、命令メモリ11に
格納されている、命令1〜命令9からなる可変長命令コ
ード群をデコードするものとし、各命令が、それぞれ、
図3に示すようなビット長を有するものとする。最初、
命令メモリ11から、図4に示すn回目フェッチとn+
1回目フェッチとによって、16ビットずつ2回読み出
すことによって、命令レジスタ14に、図5(1)に示
すように、命令1〜命令5が格納され、命令デコーダ1
5において、命令レジスタ14の最上位側(又は最下位
側、以下省略)にある、4ビットの命令1がデコードさ
れる。 デコード終了時、命令レジスタ14における前
命令コード群24は、バレルシフタ13において、命令
コード長28に応じて、セレクタ17から出力されるビ
ット長に対応するシフト量データ25によって、命令1
のビット長に対応して上位側(又は下位側、以下省略)
に4ビットシフトされる。これによって、未使用コード
群26において命令1が削除されるとともに、シフト量
に応じて、コード長レジスタ19にビット長4が格納さ
れる。
【0029】次に、図5(2)に示すように、未使用命
令コード群26が、命令レジスタ14に格納されること
によって、命令デコーダ15において、命令レジスタ1
4の最上位側にある8ビットの命令2がデコードされ
る。デコード終了時、命令レジスタ14における前命令
コード群24は、バレルシフタ13において、セレクタ
17から出力されるシフト量データ25によって、命令
2のビット長に対応して、上位側に8ビットシフトされ
る。これによって、未使用命令コード群26において命
令2が削除されるとともに、加算器18において、今回
のシフト量と、コード長レジスタ19からの前回のシフ
ト量とが加算されて、コード長レジスタ19にビット長
12が格納される。
【0030】次に、図5(3)に示すように、未使用命
令コード群26が命令レジスタ14に格納され、命令デ
コーダ15において、命令レジスタ14の最上位側にあ
る10ビットの命令3がデコードされる。デコード終了
時、命令レジスタ14における前命令コード群24は、
バレルシフタ13において、シフト量データ25によっ
て、命令3のビット長に対応して、上位側に10ビット
シフトされる。これによって、未使用命令コード群26
におて命令3が削除されるとともに、加算器18におい
て、今回のシフト量と、コード長レジスタ19からの前
回までのシフト量とが加算される。このとき、加算器1
8は、加算結果が16ビットを超えたので、キャリを発
生するとともに、加算結果から16ビットを減じた桁上
げ余りを出力するので、コード長レジスタ19にビット
長6が格納される。この際、キャリによって、命令メモ
リ11に命令フェッチ要求20が入力されるので、図4
に示すように、n+2回目フェッチによる次フェッチ命
令コード群21が出力され、バレルシフタ12におい
て、加算器18からのシフト量データ22によって、上
位側に6ビットシフトされて、連結命令コード群23を
生じる。
【0031】次に、図5(4)に示すように、命令レジ
スタ14に、バレルシフタ13からの未使用命令コード
群26と、バレルシフタ12からの連結命令コード群2
3とが格納される。この際、バレルシフタ13における
シフト量と、バレルシフタ12におけるシフト量とは等
しいので、命令レジスタ14には、バレルシフタ13か
らの未使用命令コード群の後に、バレルシフタ12から
の連結命令コード群が、隙間なく配列されて格納され
る。命令デコーダ15において、命令レジスタ14の最
上位側にある4ビットの命令4がデコードされる。デコ
ード終了時、命令レジスタ14における前命令コード群
24は、バレルシフタ13において、シフト量データ2
5によって、命令4のビット長に対応して、上位側に4
ビットシフトされる。これによって、未使用命令コード
群26において命令4が削除されるとともに、加算器1
8において、今回のシフト量と、コード長レジスタ19
からの前回のシフト量とが加算されて、コード長レジス
タ19にビット長10が格納される。
【0032】次に、図5(5)に示すように、命令レジ
スタ14に、未使用命令コード群26が格納され、命令
デコーダ15において、命令レジスタ14の最上位側に
ある8ビットの命令5がデコードされる。デコード終了
時、命令レジスタ14における前命令コード群24は、
バレルシフタ13において、シフト量データ25によっ
て、命令5のビット長に対応して、上位側に8ビットシ
フトされる。これによって、未使用命令コード群26に
おいて、命令5が削除されるとともに、加算器18にお
いて、今回のシフト量と、コード長レジスタ19からの
前回までのシフト量とが加算される。このとき、加算器
18は、加算結果が16ビットを超えたので、キャリを
発生するとともに、加算結果から16ビットを減じた桁
上げ余りを出力するので、コード長レジスタ19にビッ
ト長2が格納される。この際、キャリによって、命令メ
モリ11に命令フェッチ要求20が入力されるので、図
4に示すように、n+3回目フェッチによる次フェッチ
命令コード群21が出力され、バレルシフタ12におい
て、加算器18からのシフト量データ22によって、上
位側に2ビットシフトされて、連結命令コード群23を
生じる。
【0033】次に、図5(6)に示すように、命令レジ
スタ14に、バレルシフタ13からの未使用命令コード
群26と、バレルシフタ12からの連結命令コード群2
3とが格納される。この際、バレルシフタ13における
シフト量と、バレルシフタ12におけるシフト量とは等
しいので、命令レジスタ14には、バレルシフタ13か
らの未使用命令コード群の後に、バレルシフタ12から
の連結命令コード群が、隙間なく配列されて格納され
る。命令デコーダ15において、命令レジスタ14の最
上位側にある16ビットの命令6がデコードされる。デ
コード終了時、命令レジスタ14における前命令コード
群24は、バレルシフタ13において、シフト量データ
25によって、命令6のビット長に対応して、上位側に
16ビットシフトされる。これによって、未使用命令コ
ード群26において命令6が削除されるとともに、加算
器18において、今回のシフト量と、コード長レジスタ
19からの前回のシフト量とが加算される。このとき、
加算器は、加算結果が16ビットを超えたので、キャリ
を発生するとともに、加算結果から16ビットを減じた
桁上げ余りを出力するので、コード長レジスタ19にビ
ット長2が格納される。この際、キャリによって、命令
メモリ11に命令フェッチ要求20が入力されるので、
図4に示すように、n+4回目フェッチによる次フェッ
チ命令コード群21が出力され、バレルシフタ12にお
いて、加算器18からのシフト量データ22によって、
上位側に2ビットシフトされて、連結命令コード群23
を生じる。
【0034】次に、図5(7)に示すように、命令レジ
スタ14に、バレルシフタ13からの未使用命令コード
群26と、バレルシフタ12とからの連結命令コード群
23とが格納される。この際、バレルシフタ13におけ
るシフト量と、バレルシフタ12におけるシフト量とは
等しいので、命令レジスタ14には、バレルシフタ13
からの未使用命令コード群の後に、バレルシフタ12か
らの連結命令コード群が、隙間なく配列されて格納され
る。命令デコーダ15において、命令レジスタ14の最
上位側にある6ビットの命令7がデコードされる。デコ
ード終了時、命令レジスタ14における前命令コード群
24は、バレルシフタ13において、シフト量データ2
5によって、命令7のビット長に対応して、上位側に6
ビットシフトされる。これによって、未使用命令コード
群26において命令7が削除されるとともに、加算器1
8において、今回のシフト量と、コード長レジスタ19
からの前回のシフト量とが加算されて、コード長レジス
タ19にビット長8が格納される。
【0035】次に、図5(8)に示すように、命令レジ
スタ14に、未使用命令コード群26が格納され、命令
デコーダ15において、命令レジスタ14の最上位側に
ある8ビットの命令8がデコードされる。デコード終了
時、命令レジスタ14における前命令コード群24は、
バレルシフタ13において、シフト量データ25によっ
て命令8のビット長に対応して、上位側に8ビットシフ
トされる。これによって、バレルシフタ13の内容から
命令8が削除されるとともに、加算器18において、今
回の命令コード長と、前回までの命令コード長と加算さ
れる。このとき、加算器18は、加算結果が16ビット
になったので、キャリを発生するが、加算結果から16
ビットを減じた桁上げ余りは0なので、コード長レジス
タ19に格納されるビット長は0である。この際、キャ
リによって、命令メモリ11に命令フェッチ要求20が
入力されるが、このとき、命令メモリ11は空になって
いるので、次フェッチ命令コード群21は出力されな
い。
【0036】次に、図5(9)に示すように、命令レジ
スタ14に、バレルシフタ13からの未使用命令コード
群26が格納される。命令デコーダ15において、命令
レジスタ14の最上位側にある10ビットの命令9がデ
コードされる。これによって、命令メモリ11に格納さ
れていた、命令1〜命令9からなる可変長命令コード群
のデコード処理がすべて終了する。
【0037】以下、図6乃至図14を参照して、この例
における命令フォーマットと、命令セットの定義及び命
令コードの割り当てについて説明する。以下の例におい
ては、命令を取り扱う対象として、8ビット固定長命令
セットを用いるCPUを想定する。また、CPUが使用
する8ビット長レジスタはreg1〜reg3の4個と
し、その名称とコードの対応は、図6(a)に示される
ようなものである。また、CPUが条件の判断に用いる
フラグは、Z(ゼロ),C(キャリ)の2種類とし、演
算命令の結果がゼロであったときはZ=1とし、そうで
ないときは、Z=0とする。また、演算命令の結果にお
いてキャリがあればC=とし、そうでないときは、C=
0とする。
【0038】命令フォーマットとしては、図6(b)に
示す、フォーマット1〜フォーマット4を仮定する。こ
れらのフォーマット中における、op3〜op0,dt
1〜dt0,sc1〜sc0,im3〜im0及びds
3〜ds0の内容は、図中に示される通りである。ま
た、以下の命令において、pcはプログラムカウンタを
示し、X←YはYの内容をXに転送することを示す。r
egAはデスティネーションレジスタ、regBはソー
スレジスタを示す。ここで、A,Bは、0〜3を表す。
#は算術論理演算子を示し、(アドレス)はアドレスの
示すメモリの内容を指す。
【0039】フォーマット1の命令は、レジスタ転送命
令、例えば、regA←regB(ソースレジスタBの
内容をデスティネーションレジスタAへ転送)と、レジ
スタ間の演算命令、例えば、regA←regA#re
gB(レジスタAの内容とレジスタBの内容とを算術演
算して、演算結果をレジスタAに格納)を表す。また、
フォーマット2の命令は、即値使用の演算命令、例え
ば、regA←regA#即値(レジスタAの内容と即
値との算術演算を行って、演算結果をレジスタAに格
納)を表す。また、フォーマット3の命令は、レジスタ
に対する即値の格納命令、例えば、reg0(上位又は
下位4ビット)←即値(レジスタ0の上位4ビット又は
下位4ビットに即値を格納)を表す。
【0040】また、フォーマット4の命令は、無条件分
岐命令、例えばpc←pc+アドレス修飾値(プログラ
ムカウンタの現在のアドレスから、現在のアドレスにア
ドレス修飾値を加算したアドレスに分岐)と、分岐命
令、例えば、if条件成立then pc←pc+アド
レス修飾値(与えられた条件成立時、プログラムカウン
タの現在のアドレスから、現在のアドレスにアドレス修
飾値を加算したアドレスに分岐)と、メモリロード命
令、例えば、reg0←(reg1+アドレス修飾値)
(メモリにおける、レジスタ1の値にアドレス修飾値を
加算したアドレスの内容を、レジスタ0に格納)と、メ
モリストア命令、例えば、(reg1+アドレス修飾
値)←reg0(レジスタ0の内容を、メモリにおけ
る、レジスタ1の値にアドレス修飾値を加算したアドレ
スにストア)を表す。
【0041】この例において想定するCPUの命令セッ
トの定義は、図7(a)によって与えられる。そして、
op3〜op0によって示される命令コードと、命令フ
ァンクションとの対応、及びそれぞれの符号化対象ビッ
トとして、図7(b)に示される通りの、16種類の命
令が定義される。なお、この場合、符号化対象となるの
は、命令コード部及びレジスタ指定部のみであって、即
値,アドレス修飾値は符号化を行わないものとする。
【0042】この例における、命令コードの割り当て
は、図8乃至図14によって示される。なお,これら各
図において、iは即値を示し、dはアドレス修飾値を示
すものとする。図8においては、16種類のレジスタ転
送命令について、その命令コードと命令ファンクション
(機能)との対応が示されている。図9においては、無
条件分岐命令と、メモリロード命令と、メモリストア命
令と、条件分岐命令(Z=1)と、条件分岐命令(Z=
0)と、条件分岐命令(C=1)と、条件分岐命令(C
=0)とについて、その命令コードと命令ファンクショ
ンとの対応が示されている。
【0043】図10においては、16種類のレジスタ間
の算術加算命令について、その命令コードと命令ファン
クションとの対応が示されている。図11においては、
16種類のレジスタ間の算術減算命令について、その命
令コードと命令ファンクションとの対応が示されてい
る。図12においては、16種類のレジスタ間の論理積
命令について、その命令コードと命令ファンクションと
の対応が示されている。図13においては、16種類の
レジスタ間の論理和命令について、その命令コードと命
令ファンクションとの対応が示されている。図14にお
いては、4種類の即値使用の算術加算命令と、4種類の
即値使用の算術減算命令と、下位4ビットに対するレジ
スタ即値格納命令と、上位4ビットに対するレジスタ即
値格納命令とについて、その命令コードと命令ファンク
ションとの対応が示されている。
【0044】図15においては、CPUに対する8ビッ
トの命令セットにおける、各命令コードの出現頻度の例
を示している。各命令コードに対する頻度確率は、図1
5に示される通りであって、これ以外の命令コードに対
する頻度確率は0であるとする。図16においては、図
15に示された命令セットにおける、それぞれ8ビット
の固定長命令コードを、頻度確率が高い命令コードほ
ど、短いビット長を割り当てるように、ビット単位の可
変長命令コードに変換したときの、可変長命令コードと
そのビット長との対応が図示のように定められていると
き、図15に示された頻度確率の場合における、全可変
長命令コードに対する平均ビット長を示している。な
お、図中、p1は、それぞれの可変長命令コードに
対する、頻度確率に応じた、ビット長の期待値を表し、
これを全可変長命令コードについて加算したものが、全
可変長命令コードに対する平均ビット長となる。図16
の場合は、平均ビット長は、6.46ビットであって、
8ビット固定長の場合と比較して、約20パーセントの
効率化が図られたことになる。
【0045】このように、この例の情報処理装置によれ
ば、命令コード長をビット単位で設定し、使用頻度の高
い命令ほどビット長の短い命令コードを割り当てるよう
にした可変長命令コードを用いるようにしたので、プロ
セッサの性能を劣化させることなく、命令コードの格納
効率を向上させることが可能となる。従って、命令メモ
リがROMである場合に、命令ROMの容量を圧縮する
ことができ、また、命令メモリが、プログラムメモリか
ら命令を読み出して保持する命令キャッシュである場合
に、ミスヒットによって、命令キャッシュの書き換えを
行う頻度を少なくすることができるようになる。
【0046】以上、この発明の実施例を図面により詳述
してきたが、具体的な構成はこの実施例に限られたもの
ではなく、この発明の要旨を逸脱しない範囲の設計の変
更等があってもこの発明に含まれる。例えば、複数のプ
ログラムが並列処理されるとき等のように、各可変長命
令コードが異なるプログラムが同時に実行される場合に
は、命令コード対応メモリ16を複数設けて、各プログ
ラムに対応したメモリに切り替えて使用するようにすれ
ばよい。また、命令コード対応メモリ16は、組み込み
用マイコン等のように、プログラムが単一であって、か
つ、命令コードが変化しない場合には、命令デコーダ1
5に、対応関係情報、すなわち本来、メモリに書き込む
べき情報を盛り込んだ回路構成とすることによって、こ
れを削除することも可能である。また、頻度確率が高い
命令ほどビット長の短い可変長命令コードを割り当てる
ための符号化方法としては、ハフマン符号化に限らず、
他のエントロピー符号化方法であってもよい。また、命
令を固定的に格納するメモリは、ROMに限らず、フラ
ッシュメモリであってもよい。また、一旦、固定長命令
コードを用いて作られたオブジェクトコードをもとに命
令頻度を検出して、頻度に応じて可変長命令コード割り
当てを行って、オブジェクトコードを作り直してもよ
い。
【0047】
【発明の効果】以上説明したように、この発明によれ
ば、情報処理装置において、命令コード長をビット単位
で設定し、使用頻度の高い命令ほどビット長の短い命令
コードを割り当てた可変長命令コードを用いるようにし
たので、プロセッサの性能を劣化させることなく、命令
コードの格納効率を向上させることが可能になり、従っ
て、命令メモリとなる命令ROMの容量を圧縮すること
ができ、又は、命令メモリとなる命令キャッシュにおけ
るミスヒット率を低減して、ミスヒットによる書き換え
を減少させることができる。
【図面の簡単な説明】
【図1】この発明の一実施例である命令コーディング装
置の構成を示す図である。
【図2】この発明の一実施例である命令デコーディング
装置の構成を示す図である。
【図3】命令コードのビット長の例を示す図である。
【図4】次フェッチ命令コード群の例を示す図である。
【図5】命令レジスタの内容の推移の例を示す図であ
る。
【図6】命令フォーマットの例を示す図である。
【図7】想定するCPUの命令セットの定義と、命令コ
ードと符号化対象ビットとの例を示す図である。
【図8】命令コード割り当ての例を示す図(1)であ
る。
【図9】命令コード割り当ての例を示す図(2)であ
る。
【図10】命令コード割り当ての例を示す図(3)であ
る。
【図11】命令コード割り当ての例を示す図(4)であ
る。
【図12】命令コード割り当ての例を示す図(5)であ
る。
【図13】命令コード割り当ての例を示す図(6)であ
る。
【図14】命令コード割り当ての例を示す図(7)であ
る。
【図15】命令コードの出現頻度の例を示す図である。
【図16】頻度に対応したコード変換の例を示す図であ
る。
【図17】従来の命令デコード回路の構成を示す図であ
る。
【符号の説明】 1 コンパイル部(コンパイル手段) 2 命令頻度検出部(命令頻度検出手段) 3 符号化処理部(符号化処理手段) 11 命令メモリ(命令記憶手段) 12 バレルシフタ(第2のシフト手段) 13 バレルシフタ(第1のシフト手段) 14 命令レジスタ(命令コード保持手段) 15 命令デコーダ(命令コードデコード手段) 16 命令コード対応メモリ(命令コード対応記憶
手段) 17 セレクタ(セレクト手段) 18 加算器(加算手段) 19 コード長レジスタ(コード長保持手段)

Claims (11)

    【特許請求の範囲】
  1. 【請求項1】 プログラム中で使用される命令セットに
    対して、命令の使用頻度が高いほどビット長が1ビット
    を単位として短くなるような符号化を行ってビット単位
    からなる可変長命令コードを生成する命令コーディング
    装置を備えたことを特徴とする情報処理装置。
  2. 【請求項2】 複数のビット単位からなる可変長命令コ
    ードを命令記憶手段に格納し、命令使用時、該命令記憶
    手段から対応する可変長命令コードを読み出してデコー
    ドして、対応する制御信号を生成する命令デコーディン
    グ装置を備えたことを特徴とする情報処理装置。
  3. 【請求項3】 プログラム中で使用される命令セットに
    対して、命令の使用頻度が高いほどビット長が1ビット
    を単位として短くなるような符号化を行ってビット単位
    からなる可変長命令コードを生成する命令コーディング
    装置と、複数のビット単位からなる可変長命令コードを
    命令記憶手段に格納し、命令使用時、該命令記憶手段か
    ら対応する可変長命令コードを読み出してデコードし
    て、対応する制御信号を生成する命令デコーディング装
    置とを備えたことを特徴とする情報処理装置。
  4. 【請求項4】 前記命令コーディング装置が、 プログラムソースをコンパイルしてアセンブラソースを
    生成するコンパイル手段と、該アセンブラソース中にお
    ける各命令の出現の頻度確率を検出する命令頻度検出手
    段と、 前記アセンブラソース中の各命令に対して、前記検出さ
    れた頻度確率が高いほどビット長が1ビットを単位とし
    て短くなるような符号化を行ってビット単位からなる可
    変長命令コードを生成する符号化処理手段とを備えてな
    ることを特徴とする請求項1又は3記載の情報処理装
    置。
  5. 【請求項5】 前記符号化処理手段が、エントロピー符
    号化によって、前記可変長命令コードを生成することを
    特徴とする請求項4記載の情報処理装置。
  6. 【請求項6】 前記エントロピー符号化が、ハフマン符
    号化であることを特徴とする請求項5記載の情報処理装
    置。
  7. 【請求項7】 前記命令デコーディング装置が、 複数の可変長命令コードを格納して、フェッチ要求に応
    じて所定ビット長の次フェッチ命令コード群を出力する
    命令記憶手段と、未使用命令コード群と連結命令コード
    群とを連結して格納する命令コード保持手段と、 各可変長命令コードにおける命令コードとビット長との
    対応関係を記憶する命令コード対応記憶手段と、 該命令コードとビット長との対応関係に応じて、前記命
    令コード保持手段に格納されている命令コード群の最上
    位側(又は最下位側)における1個の可変長命令コード
    を読み出してデコードして制御信号を生成するとともに
    該デコードした命令コード長を出力する命令コードデコ
    ード手段と、 前記デコードされた命令が分岐命令でないときはデコー
    ドされた命令コード長を選択し、分岐命令であるときは
    分岐先命令位置データを選択して出力するセレクト手段
    と、 前記命令コード保持手段における前命令コード群を前記
    セレクト手段の出力ビット長だけ上位側(又は下位側)
    にシフトして前記未使用命令コード群として出力する第
    1のシフト手段と、 デコードされた命令コード長と、コード長保持手段に保
    持された命令コード長とを加算して出力し、該加算結果
    が所定ビット長を超えるときはキャリを発生して前記命
    令記憶手段に前記フェッチ要求として出力するとともに
    桁上げ余りの命令コード長を出力する加算手段と、 前記加算手段の出力命令コード長を保持するコード長保
    持手段と、 前記命令記憶手段から出力された次フェッチ命令コード
    群を前記加算手段の出力命令コード長だけ上位側(又は
    下位側)にシフトして前記連結命令コード群として出力
    する第2のシフト手段とを備えてなることを特徴とする
    請求項2又は3記載の情報処理装置。
  8. 【請求項8】 前記命令コード対応記憶手段を複数備
    え、プログラムに対応してそれぞれの命令コード対応記
    憶手段を切り替えて使用することによって、複数のプロ
    グラムを並列処理可能にしたことを特徴とする請求項7
    記載の情報処理装置。
  9. 【請求項9】 前記各可変長命令コードにおけるコード
    とビット長との対応関係の情報を、前記命令コードデコ
    ード手段内に備えることによって、前記命令コード対応
    記憶手段を省いた構成としたことを特徴とする請求項7
    記載の情報処理装置。
  10. 【請求項10】 プログラムソースをコンパイルしてア
    センブラソースを生成するステップと、該アセンブラソ
    ース中における各命令の出現の頻度確率を検出するステ
    ップと、前記アセンブラソース中の各命令に対して、前
    記検出された頻度確率が高いほどビット長が1ビットを
    単位として短くなるような符号化を行ってビット単位か
    らなる可変長命令コードを生成するステップとを備えて
    なることを特徴とする命令コーディング方法。
  11. 【請求項11】 複数の可変長命令コードを格納した命
    令記憶手段からフェッチ要求に応じて所定ビット長の次
    フェッチ命令コード群を出力するステップと、未使用命
    令コード群と連結命令コード群とを連結した可変長命令
    コード群を命令コード保持手段に格納するステップと、 命令コード対応記憶手段に格納されている命令コードと
    ビット長との対応関係に応じて、前記命令コード保持手
    段に格納されている命令コード群の最上位側(又は最下
    位側)における1個の可変長命令コードを読み出してデ
    コードして制御信号を生成するとともに、該デコードし
    た命令コード長を出力するステップと、セレクト手段に
    よって、前記デコードされた命令が分岐命令でないとき
    は前回デコードされた命令コード長を選択し、分岐命令
    であるときは分岐先命令位置データを選択して出力する
    ステップと、 前記命令コード保持手段における前命令コード群を前記
    セレクト手段の出力ビット長だけ上位側(又は下位側)
    にシフトして前記未使用命令コード群として出力するス
    テップと、 加算手段において、デコードされた命令コード長と、コ
    ード長保持手段に保持された加算結果の命令コード長と
    を加算して出力し、該加算結果が所定ビット長を超える
    ときキャリを発生して前記命令記憶手段に前記フェッチ
    要求として出力するとともに桁上げ余りの命令コード長
    を出力するステップと、 前記命令記憶手段から出力された次フェッチ命令コード
    群を前記加算手段の出力命令コード長だけ上位側(又は
    下位側)にシフトして前記連結命令コード群として出力
    するステップとを備えてなることを特徴とする命令デコ
    ーディング方法。
JP21823499A 1999-07-30 1999-07-30 情報処理装置並びに命令コーディング方法及び命令デコーディング方法 Pending JP2001043082A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP21823499A JP2001043082A (ja) 1999-07-30 1999-07-30 情報処理装置並びに命令コーディング方法及び命令デコーディング方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP21823499A JP2001043082A (ja) 1999-07-30 1999-07-30 情報処理装置並びに命令コーディング方法及び命令デコーディング方法

Publications (1)

Publication Number Publication Date
JP2001043082A true JP2001043082A (ja) 2001-02-16

Family

ID=16716716

Family Applications (1)

Application Number Title Priority Date Filing Date
JP21823499A Pending JP2001043082A (ja) 1999-07-30 1999-07-30 情報処理装置並びに命令コーディング方法及び命令デコーディング方法

Country Status (1)

Country Link
JP (1) JP2001043082A (ja)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002304290A (ja) * 2001-04-06 2002-10-18 Sony Corp 命令実行処理方法及び情報処理装置及び記録媒体
JP2007004475A (ja) * 2005-06-23 2007-01-11 Fujitsu Ltd プロセッサ及びプログラム実行方法
CN1299198C (zh) * 2001-06-27 2007-02-07 凌阳科技股份有限公司 由可改变的指令格式而提高程序码密集度的微控制器结构
JP2007226615A (ja) * 2006-02-24 2007-09-06 Matsushita Electric Ind Co Ltd 情報処理装置、圧縮プログラム生成方法及び情報処理システム
JP2008083873A (ja) * 2006-09-26 2008-04-10 Yamaha Corp デジタル信号処理装置
JP2009093513A (ja) * 2007-10-11 2009-04-30 Oki Semiconductor Co Ltd 命令ビット長削減方法

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002304290A (ja) * 2001-04-06 2002-10-18 Sony Corp 命令実行処理方法及び情報処理装置及び記録媒体
JP4572480B2 (ja) * 2001-04-06 2010-11-04 ソニー株式会社 情報処理装置
CN1299198C (zh) * 2001-06-27 2007-02-07 凌阳科技股份有限公司 由可改变的指令格式而提高程序码密集度的微控制器结构
JP2007004475A (ja) * 2005-06-23 2007-01-11 Fujitsu Ltd プロセッサ及びプログラム実行方法
JP2007226615A (ja) * 2006-02-24 2007-09-06 Matsushita Electric Ind Co Ltd 情報処理装置、圧縮プログラム生成方法及び情報処理システム
JP2008083873A (ja) * 2006-09-26 2008-04-10 Yamaha Corp デジタル信号処理装置
JP2009093513A (ja) * 2007-10-11 2009-04-30 Oki Semiconductor Co Ltd 命令ビット長削減方法

Similar Documents

Publication Publication Date Title
US7956776B2 (en) Arithmetic decoding apparatus
US5390307A (en) Apparatus for a multi-data store or load instruction for transferring multiple contiguous storage locations in one transfer operation
KR100328162B1 (ko) 정보처리회로와마이크로컴퓨터와전자기기
US6205534B1 (en) Apparatus and method for processing data with a plurality of flag groups
US5682531A (en) Central processing unit
US8954941B2 (en) Method and apparatus and record carrier
JP3414209B2 (ja) プロセッサ
US5459847A (en) Program counter mechanism having selector for selecting up-to-date instruction prefetch address based upon carry signal of adder which adds instruction size and LSB portion of address register
US20020002665A1 (en) "stack oriented data processing device "
JPH1049369A (ja) データ処理装置
JP3201716B2 (ja) コンピュータ装置
US5421029A (en) Multiprocessor including system for pipeline processing of multi-functional instructions
US5966514A (en) Microprocessor for supporting reduction of program codes in size
JP2001043082A (ja) 情報処理装置並びに命令コーディング方法及び命令デコーディング方法
JPH0778080A (ja) 信号プロセッサ
JP2004527824A (ja) データプロセッサ及び処理方法
US20090261995A1 (en) Variable-length code decoding apparatus, variable-length code decoding method, and program
KR920001142B1 (ko) 마이크로프로세서
JP3504355B2 (ja) プロセッサ
US5072372A (en) Indirect literal expansion for computer instruction sets
US6763449B1 (en) Operation-processing apparatus
JP3732233B2 (ja) スーパースカラマイクロプロセッサ内で可変バイト長命令をプリデコードするための方法および装置
JP3453938B2 (ja) 演算回路および演算方法
JP2001505340A (ja) 相対飛び越し命令を伴うデータ処理装置
JPH06149563A (ja) データ処理装置