JP3472504B2 - 命令解読方法、命令解読装置及びデータ処理装置 - Google Patents
命令解読方法、命令解読装置及びデータ処理装置Info
- Publication number
- JP3472504B2 JP3472504B2 JP06223099A JP6223099A JP3472504B2 JP 3472504 B2 JP3472504 B2 JP 3472504B2 JP 06223099 A JP06223099 A JP 06223099A JP 6223099 A JP6223099 A JP 6223099A JP 3472504 B2 JP3472504 B2 JP 3472504B2
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- register
- address
- format
- register file
- 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 - Lifetime
Links
Landscapes
- Advance Control (AREA)
- Executing Machine-Instructions (AREA)
Description
プロセッサ等と称されるデータ処理装置の改良に関し、
より詳細には、プログラムの小型化に適した命令セット
を有するデータ処理装置に関する。
クチャ技術の進展に伴い、CPUと呼ばれるプログラム
制御可能なデータ処理装置の性能は著しく向上してい
る。このCPUは、その応用分野によって、大きく2つ
に分類することができる。第1は汎用マイクロプロセッ
サであり、第2は各種制御機器や民生用途に用いられる
組み込み用マイクロコントローラーである。第1の汎用
マイクロプロセッサにおいて、最も重要視される項目は
性能の向上であり、性能の向上を図るために、様々な技
術が用いられている。これに対し、組み込み用マイクロ
コントローラーにおいては、性能向上も大きな項目の一
つであるが、それにも増して、この性能向上に低コスト
及び低消費電力を加えたこれ等3つの項目がバランスよ
く実現されることが重要である。この中で、特に重要な
項目は、民生での応用の観点から、低コストの実現であ
る。
第1はCPU自体(CPUコア面積)の縮小であり、第
2はプログラムサイズ(ROMサイズ)の縮小である。
ここで、近年では、CPU性能の向上に伴い、同一のC
PUにおいて実現される機能が増大しており、それに応
じてアプリケーションプログラムサイズも一層増大して
いるため、プログラムを格納するROMのサイズが、C
PUコアの面積よりも、チップのコストに対して支配的
になってきている。従って、如何にプログラムサイズの
小さいCPUを提供するかが、低コスト化を実現する大
きな課題になっている。
る。この技術は、汎用マイクロプロセッサの命令セット
アーキテクチャに追加拡張を施し、プログラムサイズを
縮小しようとするものである。
キテクチャに基づくデータ処理装置の命令フォーマット
の一例を示す。同図(a)の命令フォーマットは、レジ
スタ-レジスタ間演算命令について、基本命令語長が3
2ビット固定のMIPSーII/IIIの命令フォーマットであ
り、同図(b)の命令フォーマットは、基本命令語長が
16ビット固定の命令語長のMIPS16の命令フォーマッ
トである。
を備えるため、MIPSーII/IIIの命令フォーマットにおい
ては、各5ビットのレジスタアドレス指定フィールドが
あり、更に、3つのオペランドを指定する命令フォーマ
ットであるため、3つのレジスタアドレス指定フィール
ドrs、rt、rdを備える。命令の動作及び機能について
は、6ビットのOPフィールド、5ビットのshamtフィー
ルド、及び6ビットのfuncフィールドを用いて定義され
ており、全体で32ビット固定長の命令となる。
は、レジスタ-レジスタ間演算命令として、2種の命令
フォーマットが定義されている。1つは、3ビットのレ
ジスタアドレス指定フィールドrx、ryを2つ備え、
5ビットのOPフィールド及び5ビットのfuncフィールド
を用いて命令の動作及び機能を定義する2つのオペラン
ド指定型の命令フォーマットである。他の一つは、3つ
の3ビットのレジスタアドレス指定フィールドrx、r
y、rzを備え、5ビットのOPフィールド及び2ビット
のFフィールドを用いて命令の動作及び機能を定義する
3つのオペランド指定型の命令フォーマットである。
マットでは、レジスタアドレス指定フィールドが3ビッ
トしか使用できないため、元のMIPSーII/IIIのアーキテ
クチャが備える32個のレジスタセットのうち、全てで
はなく、一部のレジスタしかアクセスすることができな
い。
てMIPSーII/IIIの命令フォーマットに置き換えることが
可能であり、MIPS16の命令フォーマットの命令をMIPS
ーII/IIIの命令フォーマットに置き換えることを命令の
伸長と呼ぷ。
II/IIIの命令を実行するデータ処理装置の要部を示すブ
ロック図である。以下に、その動作を説明する。
ェッチするブロックであり、16ビット固定長のMIPS1
6の命令フォーマットによる命令列、又は、32ビット
固定長のMIPSーII/IIIの命令フォーマットによる命令列
をフェッチして、命令伸長ユニット310に出力する。
命令列がMIPS16の命令フォーマットによるものか、MI
PSーII/IIIの命令フォーマットによるものかは、モード
設定信号によって常に指定される。
号によって制御され、入力されたMIPS16の命令フォー
マットをMIPSーII/IIIの命令フォーマットに伸長するブ
ロックであって、入力された命令がMIPSーII/IIIの命令
フォーマットの場合には、伸長動作をせずに、そのまま
出力する。伸長動作を行うか否かは、モード設定信号に
よって制御され、命令では判断することができない。モ
ード設定信号は、プログラマブルに変更することが可能
であり、任意のタイミングでモードを切り替えることが
できる。
10から出力されたMIPSーII/IIIの命令フォーマットを
解読して制御信号を生成するブロックである。この命令
解読器320で生成された制御信号により、データ処理
装置の動作が制御される。
においては、基本命令長が16ビットのMIPS16の命令フ
ォーマットによってプログラムされたプログラムと、基
本命令長が32ビットのMIPSーII/IIIの命令フォーマッ
トによってプログラムされたプログラムとの双方が実行
可能になる。従って、コード量を優先する場合には、1
6ビット固定長のMIPS16の命令フォーマットを用いて
プログラムし、一方、性能を優先して多くのレジスタフ
ァイルをアクセスする必要がある場合には、MIPSーII/I
IIの命令フォーマットを用いてプログラムすることが可
能になり、性能とコードサイズとのトレードオフを取り
ながら、柔軟なプログラム開発が可能となる。但し、何
れの命令フォーマットを使用するのかの選択は、システ
ムによって固定か、又はタスク単位等のある程度の大き
さのプログラム単位に限定されることになる。
ロセッサにおいて、信号処理等のように多くのレジスタ
を必要とするアプリケーションを実行する場合には、こ
の信号処理等をより一層高速に行い得る高性能化を目差
して、既存のレジスタに複数のレジスタを追加したい要
求がある。この場合、既存の命令フォーマットよりも多
数のレジスタを指定できる命令フォーマットを作成し、
この命令フォーマットを既存の命令フォーマットに代え
て使用することも考えられる。しかし、この考えはプロ
グラムサイズが著しく増大する欠点がある。
いて、既存のレジスタに複数のレジスタを追加する場合
に、複数種類の命令フォーマットを使用すると共に、こ
れ等命令フォーマットで記述された混在する命令を適切
に切換えて、コード量を有効に低減することにある。
所定数のレジスタを指定可能な第1の命令フォーマット
と、前記所定数を越える多数のレジスタを指定可能な第
2の命令フォーマットとを使用しながら、信号処理等を
多数のレジスタを用いてより一層高速に行うこととす
る。
は、第1レジスタファイルを指定領域とする第1命令フ
ォーマットで記述される命令と、前記第1レジスタファ
イルのレジスタ及び拡張レジスタから構成される第2レ
ジスタファイルを指定領域とし且つ前記第1命令フォー
マットよりも最小命令語長が長い第2命令フォーマット
で記述される命令とを解読する命令解読方法であって、
入力された命令が前記第1命令フォーマットである場合
に、前記第1レジスタファイルのレジスタアドレスを直
接的に抽出する工程と、入力された命令が前記第2命令
フォーマットである場合に、前記第2レジスタファイル
のレジスタアドレスを直接的に抽出する工程とを含むこ
とを特徴とする。
の命令解読方法において、前記第1命令フォーマットで
記述される命令には並列演算命令を含まず、前記第2命
令フォーマットで記述される命令には並列演算命令を含
むことを特徴とする。
1レジスタファイルを指定領域とし且つ並列演算命令を
含まない第1命令フォーマットで記述される命令と、前
記第1レジスタファイルのレジスタ及び拡張レジスタか
ら構成される第2レジスタファイルを指定領域とし且つ
並列演算命令を含む第2命令フォーマットで記述される
命令とを解読する命令解読方法であって、入力された命
令が前記第1命令フォーマットである場合に、前記第1
レジスタファイルのレジスタアドレスを直接的に抽出す
る工程と、入力された命令が前記第2命令フォーマット
である場合に、前記第2レジスタファイルのレジスタア
ドレスを直接的に抽出する工程とを含むことを特徴とす
る。
又は3記載の命令解読方法において、前記第1命令フォ
ーマットで記述される命令と前記第2命令フォーマット
で記述される命令とは、相互に変換しないことを特徴と
する。
1レジスタファイルを指定領域とする第1命令フォーマ
ットで記述される命令と、前記第1レジスタファイルの
レジスタ及び拡張レジスタから構成される第2レジスタ
ファイルを指定領域とし且つ前記第1命令フォーマット
よりも最小命令語長が長い第2命令フォーマットで記述
される命令とを解読する命令解読装置であって、入力さ
れた命令が前記第1命令フォーマットである場合に、前
記第1レジスタファイルのレジスタアドレスを直接的に
抽出する第1レジスタアドレス抽出手段と、入力された
命令が前記第2命令フォーマットである場合に、前記第
2レジスタファイルのレジスタアドレスを直接的に抽出
する第2レジスタアドレス抽出手段とを含むことを特徴
とする。
の命令解読装置において、前記第1命令フォーマットで
記述される命令には並列演算命令を含まず、前記第2命
令フォーマットで記述される命令には並列演算命令を含
むことを特徴とする。
1レジスタファイルを指定領域とし且つ並列演算命令を
含まない第1命令フォーマットで記述される命令と、前
記第1レジスタファイルのレジスタ及び拡張レジスタか
ら構成される第2レジスタファイルを指定領域とし且つ
並列演算命令を含む第2命令フォーマットで記述される
命令とを解読する命令解読装置であって、入力された命
令が前記第1命令フォーマットである場合に、前記第1
レジスタファイルのレジスタアドレスを直接的に抽出す
る第1レジスタアドレス抽出手段と、入力された命令が
前記第2命令フォーマットである場合に、前記第2レジ
スタファイルのレジスタアドレスを直接的に抽出する第
2レジスタアドレス抽出手段とを含むことを特徴とす
る。
又は7記載の命令解読装置において、前記第1命令フォ
ーマットで記述される命令と前記第2命令フォーマット
で記述される命令とは、相互に変換しないことを特徴と
する。
第1及び第2の命令セットを実行するデータ処理装置で
あって、所定個のレジスタを持つレジスタファイルと、
他の所定個のレジスタを持つ拡張レジスタファイルとを
備え、前記第2の命令セットは、前記レジスタファイル
及び前記拡張レジスタファイルのレジスタを指定するこ
とができ、前記第2の命令セットは、前記レジスタファ
イルのみを有する別のデータ処理装置で実行される第1
の命令セットに並列演算命令を追加拡張したものであ
り、前記第1の命令セットは、前記レジスタファイルの
レジスタのみを指定することができることを特徴とす
る。
載のデータ処理装置において、前記並列演算命令は、乗
算に関する命令であることを特徴とする。
記載のデータ処理装置において、前記レジスタファイル
及び前記拡張レジスタファイルのレジスタアドレスを直
接的に抽出するレジスタアドレス抽出手段を含むことを
特徴とする。
11記載の発明では、第1の命令フォーマットで記述さ
れた命令では、第1のレジスタファイル内の個数の少な
いレジスタのみを指定するのに対し、第2の命令フォー
マットで記述された命令では、第2のレジスタファイル
内の多数のレジスタを指定し、これにより、これ等多数
のレジスタを用いた演算動作を1つの命令で記述できる
ので、メモリへのアクセス頻度が少なくなって、データ
処理が高速化することになる。
に小さくしながら、使用するレジスタの個数を増やし
て、データ処理の高速化を図ることが可能である。
記載の発明では、並列演算命令を含まれるので、1つの
命令でこれ等複数の演算を並列に実行でき、データ処理
がより一層高速化する。
て、図1から図21を用いて説明する。先ず、データ処
理装置の構成を説明する前に、本実施の形態で使用する
3種の命令フォーマットについて説明する。
キテクチャに基づく第1の命令フォーマットの概要を示
す。
語長を1バイトとした可変長命令であり、レジスタアド
レス指定フィールド(レジスタ指定領域)としては、2
ビットのフィールドが使用される。従って、1つのレジ
スタアドレス指定フィールドで4個のレジスタが指定可
能である。本アーキテクチャでは、4個のアドレスレジ
スタと、4個のデータレジスタが定義される。命令動作
として、アドレスレジスタを使用するか、データレジス
タを使用するかを区別することにより、命令で前記合計
8個のレジスタを使用できるように構成される。
の第1の命令フィールドが、オペレーション指定フィー
ルドと、任意の数のレジスタアドレス指定フィールドと
から構成される第1の命令フォーマット(1)のビット
割り付けを示したものである。以下、説明する。
1の命令フィールド内に2ビットのレジスタアドレス指
定フィールドを2フィールド含み、最小命令語長である
1バイトで構成される命令フォーマットであり、2つの
オペランドが指定可能な命令フォーマットである。
1の命令フィールド内に2ビットのレジスタアドレス指
定フィールドを2フィールド含み、更に付加情報フィー
ルドを追加して、合計2バイト以上の命令語長を持つ命
令フォーマットである。
1の命令フィールド内に2ビットのレジスタアドレス指
定フィールドを1つ含み、最小命令語長である1バイト
で構成される命令フォーマットであり、1つのオペラン
ドが指定可能な命令フォーマットである。
1の命令フィールド内に2ビットのレジスタアドレス指
定フィールドを1フィールド含み、更に付加情報フィー
ルドを追加した2バイト以上の命令語長を持つ命令フォ
ーマットである。
1の命令フィールド内にレジスタアドレス指定フィール
ドを含まず、最小命令語長である1バイトで構成される
命令フォーマットであり、アドレスを用いたオペランド
指定不可能な命令フォーマットである。
1の命令フィールド内にレジスタアドレス指定フィール
ドを含まず、更に付加情報フィールドを追加した2バイ
ト以上の命令語長を持つ命令フォーマットである。
割り付けについて、具体的な命令のリストの一部を示し
たものである。左側に命令のニーモニックを、右側に命
令の動作を各々示している。
の第1の命令フィールドが命令語長指定フィールドから
なり、第2の命令フィールドが、オペレーション指定フ
ィールドと、任意の数のレジスタアドレス指定フィール
ドとから構成される第1の命令フォーマット(2)のビ
ット割り付けを示したものである。以下、詳細に説明す
る。
2の命令フィールド内に2ビットのレジスタアドレス指
定フィールドを2フィールド含み、2バイトで構成され
る命令フォーマットであり、2つのオペランドが指定可
能な命令フォーマットである。
2の命令フィールド内に2ビットのレジスタアドレス指
定フィールドを2フィールド含み、更に付加情報フィー
ルドを追加して、合計3バイト以上の命令語長を持つ命
令フォーマットである。
2の命令フィールド内に2ビットのレジスタアドレス指
定フィールドを1つ含み、2バイトで構成される命令フ
ォーマットであり、1つのオペランドが指定可能な命令
フォーマットである。
2の命令フィールド内に2ビットのレジスタアドレス指
定フィールドを1フィールド含み、更に付加情報フィー
ルドを追加した3バイト以上の命令語長を持つ命令フォ
ーマットである。
2の命令フィールド内にレジスタアドレス指定フィール
ドを含まず、2バイトで構成される命令フォーマットで
あり、アドレスを用いたオペランド指定が不可能な命令
フォーマットである。
2の命令フィールド内にレジスタアドレス指定フィール
ド含まず、更に付加情報フィールドを追加した3バイト
以上の命令語長を持つ命令フォーマットである。
割り付けについて、具体的な命令のリストの一部を示し
たものである。左側に命令のニーモニックを、右側に命
令の動作を各々示している。
1の命令フォーマットでは、第1の命令フィールドは、
第1から第Mの命令フィールドを最長命令語長Mとし
て、N命令語長(Nは1〜M間での整数)の可変長命令
を特定するものである。また、この第1の命令フォーマ
ットは、最小命令語長が1バイトであるという他にない
特徴を備えるので、プログラムサイズの縮小に適した命
令フォーマットとなっている。
のレジスタファイル220を示す。この第1のレジスタ
ファイル220は、4個のアドレスレジスタA0〜A3
と、4個のデータレジスタD0〜D3と、スタックポイ
ンタSP223と、内部のステータス情報及び制御情報を
保持するPSW(Processor Status Word)224と、プログ
ラムカウンタPC225とを含み、読み出しポートを2ポ
ート、書き込みポートを1ポート有する。即ち、同時に
2つのレジスタ(重複は可)の読み込みと、1つのレジ
スタの書き込みとを許す。
イル220のアドレスレジスタA0〜A3及びデータレ
ジスタD0〜D3へのアクセスについて、より詳細に示
した図である。同図は、命令の中で指定されるレジスタ
名と、レジスタアドレス指定フィールドで指定される命
令コードでのビット割付と、物理的なレジスタにアクセ
スするための物理的なレジスタ番号、及びアクセスする
対象となる物理的なレジスタ名を一覧にして示したもの
である。
ットにおいては、4個のアドレスレジスタA0〜A3へ
アクセスするために命令内に指定される命令アドレス指
定フィールドと、4個のデータレジスタD0〜D3へア
クセスするために命令内に指定される命令アドレス指定
フィールドとは、全く同一である。即ち、レジスタのア
ドレスを指定するために2ビット命令アドレス指定フィ
ールドを使用し、命令動作そのものでアドレスレジスタ
にアクセスするか、データレジスタにアクセスするかを
区別させている。
マットである前記図16及び図18の第1の命令フォー
マットに対して、追加拡張する第2の命令フォーマット
のビット割り付けを図1に、更に追加拡張する第3の命
令フォーマットのビット割付けを図3に示す。
ット割り付けは、最小命令語長である1バイト目の第1
の命令フィールドが命令語長指定フィールドからなり、
第2及び第3の命令フィールドが、オペレーション指定
フィールドと、任意の数のレジスタアドレス指定フィー
ルドとから構成される。第2の命令フォーマットにおけ
るレジスタアドレス指定フィールドは4ビットから構成
される。以下、説明する。
(a)は、第3の命令フィールド内に4ビットのレジス
タアドレス指定フィールドを2フィールド含み、3バイ
トで構成される命令フォーマットであり、2つのオペラ
ンドが指定可能な命令フォーマットである。
命令フィールド内に4ビットのレジスタアドレス指定フ
ィールドを2フィールド含み、更に付加情報フィールド
を追加して、合計4バイト以上の命令語長を持つ命令フ
ォーマットである。
命令フィールド内に4ビットのレジスタアドレス指定フ
ィールドを1つ含み、3バイトで構成される命令フォー
マットであり、1つのオペランドが指定可能な命令フォ
ーマットである。
命令フィールド内に4ビットのレジスタアドレス指定フ
ィールドを1フィールド含み、更に付加情報フィールド
を追加した4バイト以上の命令語長を持つ命令フォーマ
ットである。
いても、第1の命令フィールドは、第1から第Mの命令
フィールドを最長命令語長Mとして、N命令語長(Nは
1〜M間での整数)の可変長命令を特定する。
付けについて、具体的な命令のリストの一部を示したも
のである。左側に命令のニーモニックを、右側に命令の
動作を各々示している。ニーモニックの中で、Rm、Rn、
又はRiは、レジスタアドレスの指定を表すが、指定でき
るレジスタとして、4個のアドレスレジスタA0〜A
3、4個のデータレジスタD0〜D3、及び8個の拡張
レジスタE0〜E7から構成される16個の汎用レジス
タである。詳細は、後にレジスタの構成と共に説明す
る。
ット割付けは、最小命令語長である1バイト目の第1の
命令フィールドが命令語長指定フィールドから成り、第
2の命令フィールドが4ビットの第1のオペレーション
指定フィールドと4ビットの第2のオペレーション指定
フィールドとから構成される。第3及び第4の命令フィ
ールドは、4ビットのレジスタアドレス指定フィールド
が2つ、又は4ビットのレジスタアドレス指定フィール
ドと4ビットのオペレーション指定フィールドとから構
成される。第3の命令フォーマットにおけるレジスタア
ドレス指定フィールドは、4ビットから構成される。こ
の第3の命令フォーマットで記述される命令の中の第2
の命令フィールドの第1及び第2のオペレーション指定
フィールドで指定されるを、以下、「ユニット」と定義
して、詳細に説明する。
命令を構成する各ユニットは、第2の命令フォーマット
で記述される命令のうち、特に使用頻度の高い命令で構
成される。これにより、第3の命令フォーマットでは、
第2の命令フォーマットに比べて、オペレーション指定
フィールドが8ビットから例えば4ビットへと縮小され
て、並列実行させる2つの操作を1対のオペレーション
指定フィールド内に記述することが可能になる。従っ
て、第3の命令フォーマットでは、記述できる操作の種
類は限定されるものの、そのコードサイズは、第2の命
令フォーマットで命令を記述する場合に比べて小さくな
る。
(a)は、4バイトで構成される命令フォーマットであ
って、第2の命令フィールドが4ビットの第1のオペレ
ーション指定フィールドと4ビットの第2のオペレーシ
ョンフィールドとから構成され、第3の命令フィールド
及び第4の命令フィールド内に4ビットのレジスタアド
レス指定フィールドを各々2フィールド含み、4つのオ
ペランドが指定可能な命令フォーマットである。
トで構成される命令フォーマットであって、第2の命令
フィールドが4ビットの第1のオペレーション指定フィ
ールドと4ビットの第2のオペレーションフィールドと
から構成され、第3の命令フィールドは4ビットのレジ
スタアドレス指定フィールドと4ビットの第1のオペレ
ーション指定フィールドとから構成され、第4の命令フ
ィールドは4ビットのレジスタアドレス指定フィールド
2つから構成され、3つのオペランドが指定可能な命令
フォーマットである。
トで構成される命令フォーマットであって、第2の命令
フィールドは4ビットの第1のオペレーション指定フィ
ールドと4ビットの第2のオペレーションフィールドと
から構成され、第3の命令フィールドは4ビットのレジ
スタアドレス指定フィールド2つから構成され、第4の
命令フィールドは4ビットのレジスタアドレス指定フィ
ールドと4ビットの第2のオペレーション指定フィール
ドとから構成され、3つのオペランドが指定可能な命令
フォーマットである。
トで構成される命令フォーマットであって、第2の命令
フィールドは4ビットの第1のオペレーション指定フィ
ールドと4ビットの第2のオペレーションフィールドと
から構成され、第3の命令フィールドは4ビットのレジ
スタアドレス指定フィールドと4ビットの第1のオペレ
ーション指定フィールドとから構成され、第4の命令フ
ィールドは4ビットのレジスタアドレス指定フィールド
と4ビットの第2のオペレーション指定フィールドとか
ら構成され、2つのオペランドが指定可能な命令フォー
マットである。
トで構成される命令フォーマットであって、第2の命令
フィールドは4ビットの第1のオペレーション指定フィ
ールドと4ビットの第2のオペレーションフィールドと
から構成され、第3の命令フィールドは4ビットのレジ
スタアドレス指定フィールド2つから構成され、第4の
命令フィールドは4ビットの第1のオペレーション指定
フィールドと4ビットの第2のオペレーション指定フィ
ールドとから構成され、2つのオペランドが指定可能な
命令フォーマットである。
命令フィールドの第1のオペレーション指定フィールド
で指定される第1のユニットと、第2のオペレーション
指定フィールドで指定される第2のユニットとは、図2
に示した第2の命令フォーマット(a)で記述される命
令、又は第2の命令フォーマット(d)で示される命令の
即値のビット幅を4ビットに限定した第2の命令フォー
マットの命令から構成される。
は、第1の命令フィールドは、第1から第4の命令フィ
ールドの4命令語長の可変長命令を特定する。
割り付けについて具体的な命令のリストの一部を示した
ものである。左側に命令のニーモニックを、右側に命令
の動作を各々示している。ニーモニックの中で、Rm1、R
n1、Rm2又はRn2と示されたものは、レジスタアドレスの
指定を表すが、指定できるレジスタとしては、アドレス
レジスタA0〜A3、データレジスタD0〜D3、拡張
レジスタE0〜E7から構成される16個の汎用レジス
タである。また、imm4は4ビットの即値を示している。
更に、Rm1、Rn1は第2の命令フィールドの第1のオペレ
ーション指定フィールドで指定される第1のユニットで
使用され、Rm2、Rn2は第2の命令フィールドの第2のオ
ペレーション指定フィールドで指定される第2のユニッ
トで使用される。詳細は、以下の動作説明と共に説明す
る。
タ処理装置の全体構成を示すブロック図である。
ージ(IFステージ)、解読及びレジスタ読み出しステ
ージ(DECステージ)、実行ステージ(EXステー
ジ)、メモリアクセスステージ(MEMステージ)、レ
ジスタ書き込みステージ(WBステージ)の5つのステ
ージからなる5段パイプライン構造を成している。
する命令メモリ、102は前記命令メモリ101から前
記第1又は第2又は第3の命令フォーマットで特定され
る可変長命令を読み出す命令フェッチ部、103は命令
フェッチ部102を介して読み出された可変長命令を格
納する命令レジスタである。
された可変長命令を受け、この可変長命令を解読する命
令解読器であって、以下の回路部を持つ。
1は、命令レジスタ103に格納された可変長命令を解
読し、命令フォーマットが第1のフォーマットであるか
第2のフォーマットであるか第3のフォーマットである
かを判定する命令型判定部(識別手段)、112は命令
レジスタ103に格納された可変長命令が第1の命令フ
ォーマットであるとして、2ビットのレジスタアドレス
フィールドを抽出する第1のレジスタアドレス抽出部、
113は、第1のレジスタアドレス抽出部112により
抽出されたレジスタアドレスフィールドの値を4ビット
のレジスタファイルの番号に変換するレジスタアドレス
変換部、114は、命令レジスタ103に格納された可
変長命令が第2の命令フォーマットであるとして、4ビ
ットのレジスタアドレスフィールドを抽出する第2のレ
ジスタアドレス抽出部、115は命令レジスタ103に
格納された可変長命令が第3の命令フォーマットである
として、4ビットのレジスタアドレスフィールドを抽出
し、第1のユニットのレジスタアドレスを第1のレジス
タアドレスセレクタ117に供給し、第2のユニットの
レジスタアドレスを第2のレジスタアドレスセレクタ1
18に供給する第3のレジスタアドレス抽出部である。
可変長命令を受け、命令解読を行い、演算部に供給する
制御信号を生成するオペレーション解読部、117は命
令型判定部111の判定結果に従って、レジスタアドレ
ス変換部113からの出力、第2のレジスタアドレス抽
出部114からの出力、又は第3のレジスタアドレス抽
出部115からの出力を選択的に出力する第1のレジス
タアドレスセレクタ、118は前記第2のレジスタアド
レス抽出部114からの出力、又は第3のレジスタアド
レス抽出部115からの出力を選択的に出力する第2の
レジスタアドレスセレクタである。尚、本実施の形態で
は、レジスタアドレス変換部113は、抽出されたレジ
スタアドレスを命令フォーマットの種類に拘わらず変換
しているが、命令型判定部111の判定動作が早期に終
了する場合には、第1の命令フォーマットであると判定
された命令の場合にのみアドレス変換を行うように構成
してもよいのは勿論である。
ル)120は、前記図20に示した第1のレジスタファ
イル220を含み、更に、8個の拡張レジスタE0〜E
7を追加して、合計16個の汎用レジスタA0〜A3、
D0〜D3、E0〜E7を備える。これ等のレジスタの
アドレスは、第1の命令フォーマット又は第2の命令フ
ォーマットの命令の場合、前記命令解読器110の第1
のレジスタアドレスセレクタ117から入力され、更に
第3の命令フォーマットの命令の場合は、第2のレジス
タアドレスセレクタ118からも入力される。この第2
のレジスタファイル120は、前記図20に示した第1
のレジスタファイル220とは、8個の拡張レジスタE
0〜E7を備える点でのみ異なる。他の4個のアドレス
レジスタA0〜A3、及び4個のデータレジスタD0〜
D3は両レジスタファイル120、220で共用され
る。
々、レジスタファイル120からの出力を格納するEX
ステージのパイプラインレジスタE0レジスタ、E1レ
ジスタ、E2レジスタ、E3レジスタ、133はE0レ
ジスタ131及びE1レジスタ132の内容を用いて算
術論理演算を実行する演算器、136はE2レジスタ1
34及びE3レジスタ135の内容を用いて算術論理演
算を実行する演算器である。また、141は演算器13
3からの出力を格納するMEMステージのパイプライン
レジスタであるM0レジスタ、142は演算器136か
らの出力を格納するMEMステージのパイプラインレジ
スタであるM1レジスタ、143はM0レジスタ141
又はM1レジスタ142の内容でデータを格納するデー
タメモリ、151はデータメモリ143からの出力を格
納するWBステージのパイプラインレジスタであるW0
レジスタ、152はデータメモリ143からの出力を格
納するWBステージのパイプラインレジスタであるW1
レジスタである。
0を取り出して示したものである。更に、そのうちの汎
用レジスタ部分へのアクセスについてより詳細に示した
ものが図7及び図8である。
れた命令を実行する際に、命令の中で指定されるレジス
タ名と、レジスタアドレス指定フィールドで指定される
命令コード上でのビット割り付けと、物理的なレジスタ
にアクセスするための物理的なレジスタ番号、及び、ア
クセスする対象となる物理的なレジスタ名を一覧にして
示したものである。第1の命令フォーマットでは、レジ
スタ指定フィールドは2ビットしかないが、汎用レジス
タは16個で4ビットのアドレスでアクセスする必要が
ある関係から、アドレスの変換をする必要がある。例え
ば、アドレスレジスタA0をアクセスする際には、物理
的なアドレス番号として“1000”が、データレジス
タD1をアクセスする際には、物理的なアドレス番号と
して、“1101”を生成し、汎用レジスタファイル1
21に出力する必要がある。
れた命令を実行する際に、命令の中で指定されるレジス
タ名と、レジスタアドレス指定フィールドで指定される
命令コード上でのビット割り付けと、物理的なレジスタ
にアクセスするための物理的なレジスタ番号、及び、ア
クセスする対象となる物理的なレジスタ名を一覧にして
示したものである。第2の命令フォーマットでは、4ビ
ットのレジスタアドレス指定フィールドを有しているの
で、その4ビットをそのまま、物理的なレジスタ番号と
して指定することになる。
ータ処理装置について、以下、図5から図8を用いて、
その動作を説明する。
令は第1の命令フィールドの特定のビットをデコードす
ることにより、その命令が第1の命令フォーマットか第
2の命令フォーマットか第3の命令フォーマットかを判
断し、各々のフォーマットに応じて、制御信号を生成す
る。この命令フォーマットの種類の識別を以下具体的に
説明する。
す。同図において、第1の命令フォーマット(1)はS0、S
1、S2、S4、S6の5通りがあり、1バイトのオペレーシ
ョンコードOPのみの最小のものと、オペレーションコー
ドOPの後に8、16、32又は48の即値imm、変位d、
又は絶対absが配置される2、3、5及び7バイトのも
のとがある。第1の命令フォーマット(2)はD0、D1、D
2、D4、D5の5通りがあり、2バイトのオペレーション
コードOPのみの最小のものと、8、16、32又は40
の即値imm、変位d、又は絶対absが配置される3、4、
6及び7バイトのものとがある。更に、第2の命令フォ
ーマットはT0、T1、T3、T4の4通りがあり、3バイトの
オペレーションコードOPのみの最小のものと、8、24
又は32の即値imm、変位d、又は絶対absが配置される
4、6、及び7バイトのものとがある。第3の命令フォ
ーマットはQ0の1通りであり、4バイトのオペレーショ
ンコードOPのみである。図24に示した命令フォーマッ
トでは、オペレーションコードOPのみに着目すると、第
2の命令フォーマットT0〜T4の命令フィールドの数(3
個)は、第1の命令フォーマット(1)S0〜S6の数(1個)及
び第1の命令フォーマット(2)D0〜D5の数(2個)よりも
多い。また、第3の命令フォーマットQ0の命令フィール
ドの数(4個)は、第2の命令フォーマットT0〜T4の数よ
りも多い。第1の命令フォーマット(1)及び(2)では、少
ない領域で記述でき且つ頻繁に使用する命令が割り当て
られる。一方、第2の命令フォーマットでは、比較的多
い領域を用いて記述され且つさほど使用されない命令が
割り当てられる。
種類S0〜S6、D0〜D5、T0〜T4、Q0別に、第1バイトのビ
ットコードが同図に示すように割り当てられる。従っ
て、この第1バイトのビットコードを認識することによ
り、受けた命令のフォーマットが第1、第2又は第3の
命令フォーマットかを一意に識別することができる。
尚、本実施の形態では、第1バイトのビットコードのみ
で命令フォーマットの種類を識別するが、本発明はこれ
に限定されず、例えば第1バイトに加えて第2バイトの
第4ビット(下位ニブルの最上位ビット)等をも利用し
て識別したり、第1バイトの全体ではなくその一部で識
別したり、更には第1バイトに限らず、予め決めた所定
バイト目の全体又は一部で命令フォーマットの種類を識
別してもよい。
V A0,D0 という命令を、実行する際のタイミングを含
めて説明する。この命令は、アドレスレジスタA0の内
容を読み出してデータレジスタD0に格納するというレ
ジスタ間転送の命令である。
命令メモリ101から命令を読み出して、命令レジスタ
103に格納する。
は、命令レジスタ103に格納された命令を解読して、
この命令が第1の命令フォーマットによる命令であるこ
とを出力する。第1のレジスタアドレス抽出部112
は、ソースのレジスタアドレスとしてアドレスレジスタ
“00”を、格納先のアドレスとしてデータレジスタの
レジスタアドレス“00”を抽出する。レジスタアドレ
ス変換部113は、アドレスレジスタのアドレス“0
0”を4ビットのアドレス“1000”に、データレジ
スタのアドレス“00”を4ビットのアドレス“110
0”に変換する。第1のレジスタアドレスセレクタ11
7は、命令型判定部111からの制御信号に応じて、レ
ジスタアドレス変換部113から出力されるアドレスを
レジスタファイル120に出力する。オペレーション解
読部116は、アドレスレジスタA0からデータレジス
タD0へのレジスタ間転送命令であることを解読し、そ
の制御信号を生成する。
オペランドとして、物理アドレス“1000”に対応し
たアドレスレジスタA0の内容が読み出され、E0レジ
スタ131に格納される。
納されたデータが演算器133をスルーして、M0レジ
スタ141に格納される。
格納されたデータがデータメモリ143をスルーして、
W0レジスタ151に格納される。
たデータが、物理アドレス“1100”に対応したデー
タレジスタD0に書き込まれる。
令フォーマットによる命令が実行可能となる。
MOV A0,E7 という命令を、実行する際のタイミングを
含めて説明する。この命令は、アドレスレジスタA0の
内容を読み出して拡張レジスタE7に格納するというレ
ジスタ間転送の命令である。
命令メモリ101から命令を読み出して、命令レジスタ
103に格納する。
は、命令レジスタ103に格納された命令を解読して、
この命令が第2の命令フォーマットによる命令であるこ
とを出力する。第2のレジスタアドレス抽出部114
は、ソースのレジスタアドレスとして“1000”を、
格納先のアドレスとしてレジスタアドレス“0111”
を抽出する。第1のレジスタアドレスセレクタ117
は、命令型判定部111からの制御信号に応じて、第2
のレジスタアドレス抽出部114から出力されるアドレ
スをレジスタファイル120に出力する。オペレーショ
ン解読部116は、アドレスレジスタA0から拡張レジ
スタE7へのレジスタ間転送命令であることを解読し、
その制御信号を生成する。
オペランドとして、物理アドレス“1000”に対応し
たアドレスレジスタA0の内容が読み出され、E0レジ
スタ131に格納される。
納されたデータが演算器133をスルーして、M0レジ
スタ141に格納される。
格納されたデータがデータメモリ143をスルーして、
W0レジスタ151に格納される。
たデータが、物理アドレス“0111”に対応した拡張
レジスタE7に書き込まれる。
令フォーマットによる命令が実行可能となる。
MOV#MOV E5,E6,E4,E7 という命令を実行する際のタイミ
ングを含めて説明する。この命令は、拡張レジスタE5
の内容を読み出して拡張レジスタE6に格納し、同時に
拡張レジスタE4の内容を読み出して拡張レジスタE7
に格納するという並列レジスタ間転送命令である。
命令メモリ101から命令を読み出して、命令レジスタ
103に格納する。
は、命令レジスタ103に格納された命令を解読して、
この命令が第3の命令フォーマットによる命令であるこ
とを出力する。
第1の転送命令のソースのレジスタアドレスとして“0
101”と、格納先のアドレスとしてレジスタアドレス
“0110”とを抽出する。更に、第2の転送命令のソ
ースのレジスタアドレスとして“0100”と、格納先
のアドレスとしてレジスタアドレス“0111”とを抽
出する。
は、命令型判定部111からの制御信号に応じて、第3
のレジスタアドレス抽出部115から出力される第1の
アドレスをレジスタファイル120に出力する。更に、
レジスタアドレスセレクタ118は命令型判定部111
からの制御信号に応じて、第3のレジスタアドレス抽出
部115から出力される第2のアドレスをレジスタファ
イル120に出力する。
スタE5から拡張レジスタE6及び拡張レジスタE4か
ら拡張レジスタE7への並列レジスタ間転送のVLIW
命令であることを解読し、制御信号を生成する。
ースのオペランドとして、物理アドレス“0101”に
対応した拡張レジスタE5の内容が読み出され、E0レ
ジスタ131に格納される。同時に、第2のソースのオ
ペランドとして、物理アドレス“0100”に対応した
拡張レジスタE4の内容が読み出され、E2レジスタ1
34に格納される。
納されたデータが演算器133をスルーしてM0レジス
タ141に格納され、同時に、E2レジスタ131に格
納されたデータが演算器136をスルーしてM1レジス
タ142に格納される。
格納されたデータがデータメモリ143をスルーしてW
0レジスタ151に格納され、同時にM1レジスタ14
2に格納されたデータがデータメモリ143をスルーし
てW1レジスタ152に格納される。
納されたデータが、物理アドレス“0110”に対応し
た拡張レジスタE6に書き込まれ、同時にW1レジスタ
152に格納されたデータが、物理アドレス“011
1”に対応した拡張レジスタE7に書き込まれる。
令フォーマットによる命令が実行される。
の形態のデータ処理装置は、第1の命令フォーマットと
第2の命令フォーマットと更に第3の命令フォーマット
とで記述された各命令を、モード等の切り替えなく、何
れも実行可能であり、コードサイズ縮小に最適化された
命令セットに対して、その上位互換性を保持しながら、
使用できるレジスタ数を大幅に拡張したデータ処理装置
となっている。
と第2の命令フォーマットによる命令との使い方につい
て、例を上げて説明する。
例を示す。変数aの内容を変数bの内容と加算して変数
aに格納し、変数cの内容を変数dの内容と加算して変
数cに格納するという簡単なものである。
の命令にコンパイルされた結果の例を、図10、図11
及び図12に示す。
割り当てられた場合の命令列であり、変数aをデータレ
ジスタD0に、変数bをデータレジスタD1に、変数c
をデータレジスタD2に、変数dをデータレジスタD3
に割り付けできた場合の命令列である。この場合は、2
つの加算命令で実現可能であるが、元々4個しかデータ
レジスタが存在しないため、全てがレジスタに割り付け
られることは難しい。
に各変数が割り付けられた場合の命令列であり、変数a
を(SP+#4)に、変数bを(SP+#8)に、変数
cを(SP+#12)に、変数dを(SP+#16)に
割り付けできた場合の命令列である。この場合は、2つ
の加算命令に加えて、メモリレジスタ間でのデータ転送
命令(命令1、命令2、命令4、命令5、命令6、命令
8)が発生し、大きく処理性能を落とすことになる。
ているデータレジスタD0、データレジスタD1の内容
を退避、復帰するためのデータ転送命令(命令1、命令
2、命令11、命令12)が追加されたものであり、非
破壊レジスタしか使用できない場合は、このような命令
列になる。
ーマットを使用して、拡張レジスタに全ての変数を割り
付けた場合の命令列を示している。変数aを拡張レジス
タE0に、変数bを拡張レジスタE1に、変数cを拡張
レジスタE2に、変数dを拡張レジスタE3に割り付け
できた場合の命令列である。この場合は、2つの加算命
令で実現可能となる。拡張レジスタにも数量的な制限が
存在するために、常に拡張レジスタで十分なレジスタを
確保できるとは限らないが、使用可能なレジスタ数が大
きく増加することにより、レジスタ数が少ないためにメ
モリアクセスが頻発して性能を落とすことが少なくな
る。従って、信号処理のように多くのレジスタを必要と
するアプリケーションプログラムを短時間で実行しよう
とする場合には、拡張レジスタE0〜E7を追加すると
共に、第2の命令フォーマットの命令を使用することに
より、メモリとのアクセス回数を少なく制限できて、処
理性能の向上を図ることができる。
タに対して、第1の命令フォーマットで指定するアドレ
スと、第2の命令フォーマットで指定するアドレスとが
異なっていても、第1の命令フォーマットで指定するア
ドレスを変換して、前記第2の命令フォーマットで指定
するアドレスに一致させたので、拡張レジスタを追加し
てレジスタ数を増加させた場合であっても、第1の命令
フォーマットを使用できて、完全な上位互換性を保持し
ながら、第2の命令フォーマットを使用できて、レジス
タの追加に柔軟に対応できるという顕著な効果も得られ
る。
の使い方について、例を挙げて説明する。
使用せずに記述したソフトモデム等のメディア処理に用
いられるFIRフィルタの主要部のプログラムを示す。
オペランド部の右に各々の命令のコードサイズを示して
いる。
タ-メモリ間のハーフワード転送命令(ストア)を示
し、命令2は第2の命令フォーマットのハーフワードス
ワップ(入れ換え)命令を、命令3は第2の命令フォー
マットのレジスタ-メモリ間のハーフワード転送命令
(ストア)を示し、命令4は第2の命令フォーマットの
ハーフワード並列累積積和演算命令を、命令5は第2の
命令フォーマットの減算命令、命令6及び命令7は第2
の命令フォーマットのメモリ-レジスタ間の転送命令
(ロード)、命令8は第1の命令フォーマットの条件分
岐命令を各々示している。
述べる。
令フォーマットにおける命令でデータレジスタD0の値
を、アドレスレジスタA3に格納されたアドレス値から
“6”を引いたメモリアドレスに格納するというレジス
タ-メモリ間転送(ストア)の命令である。
命令メモリ101から命令を読み出して、命令レジスタ
103に格納する。
は、命令レジスタ103に格納された命令を解読して、
この命令が第1の命令フォーマットによる命令であるこ
とを出力する。第1のレジスタアドレス抽出部112
は、ソースのデータアドレスとして、データレジスタの
アドレス“00”とアドレスレジスタのアドレス”1
1”とを抽出する。レジスタアドレス変換部113は、
データレジスタのアドレス“00”を4ビットのアドレ
ス“1100”に、アドレスレジスタのアドレス“1
1”を4ビットのアドレス“1011”に変換する。
は、命令型判定部111からの制御信号に応じて、レジ
スタアドレス変換部113から出力されるデータレジス
タの4ビットのアドレス“1100”と、アドレスレジ
スタの4ビットのアドレス“1011”とを、レジスタ
ファイル120に出力する。
ジスタD0の値を、アドレスレジスタA3に格納された
アドレス値から“6”を引いたメモリアドレスに格納す
るというレジスタ-メモリ間転送(ストア)の命令であ
ることを解読し、その制御信号を生成する。
オペランドとして、物理アドレス“1100”に対応し
たデータレジスタD0の内容が読み出され、その内容が
E0レジスタ131に格納されると共に、物理アドレス
“1011”に対応したアドレスレジスタA3の内容が
読み出され、その内容がE1レジスタ132に格納され
る。
納されたデータが演算器133をスルーして、M0レジ
スタ141に格納され、E1レジスタ132に格納され
たアドレスは、オペレーション解読部116からの制御
信号によって“6”だけ減算処理され、その演算結果を
データメモリ143のアドレス入力部に出力する。
格納されたデータが、演算器133の演算結果で得られ
たアドレス値のデータメモリ143に格納される。
ーマットにおける命令で拡張レジスタE0の上位ハーフ
ワードと下位ハーフワードとを入れ換えたデータを拡張
レジスタE2に格納する命令である。
命令メモリ101から命令を読み出して、命令レジスタ
103に格納する。
は、命令レジスタ103に格納された命令を解読して、
この命令が第2の命令フォーマットによる命令であるこ
とを出力する。第2のレジスタアドレス抽出部114
は、ソースのデータアドレスとして”0000”を、格
納先のアドレスとしてレジスタアドレス“0010”を
抽出する。
は、命令型判定部111からの制御信号に応じて、第2
のレジスタアドレス抽出部114から出力されるアドレ
スをレジスタファイル120に出力する。オペレーショ
ン解読部116は、拡張レジスタE0の上位ハーフワー
ドと下位ハーフワードを入れ換えたデータを拡張レジス
タE2に格納する命令であることを解読し、その制御信
号を生成する。
オペランドとして、物理アドレス“0000”に対応し
た拡張レジスタE0の内容が読み出され、この内容がE
0レジスタ131に格納される。
納されたデータを入力とし、演算器133はオペレーシ
ョン解読部116から供給される制御信号を元に、その
上位ハーフワードと下位ハーフワードとを入れ換えたデ
ータを生成し、その結果をM0レジスタ141に格納す
る。
格納されたデータがデータメモリ143をスルーし、W
0レジスタ151に格納される。
納されたデータが読み出され、このデータが、レジスタ
ファイル120の第2のレジスタアドレス抽出部112
が出力する格納先アドレス”0010”に格納される。
令フォーマットにおける命令で拡張レジスタE2の値
を、アドレスレジスタA3に格納されたアドレス値から
“4”を引いたメモリアドレスに格納するというレジス
タ-メモリ間転送(ストア)の命令である。
命令メモリ101から命令を読み出して、命令レジスタ
103に格納する。
は、命令レジスタ103に格納された命令を解読して、
この命令が第2の命令フォーマットによる命令であるこ
とを出力する。第1のレジスタアドレス抽出部112
は、ソースのデータアドレスとしてアドレスレジスタの
アドレス”11”を抽出する。第2のレジスタアドレス
抽出部114は、ソースのデータアドレスとして拡張レ
ジスタのアドレス”0010”を抽出する。レジスタア
ドレス変換部113は、アドレスレジスタのアドレス
“11”を4ビットのアドレス“1011”に変換す
る。
は、命令型判定部111からの制御信号に応じて、レジ
スタアドレス変換部113から出力されるアドレスレジ
スタの4ビットのアドレス“1011”と、拡張レジス
タの4ビットのアドレス“0010”とを、レジスタフ
ァイル120に出力する。
スタE2の値を、アドレスレジスタA3に格納されたア
ドレス値から“4”を引いたメモリアドレスに格納する
というレジスタ-メモリ間転送(ストア)の命令である
ことを解読し、その制御信号を生成する。
オペランドとして、物理アドレス“0010”に対応し
た拡張レジスタE2の内容が読み出され、その内容がE
0レジスタ131に格納されると共に、物理アドレス
“1011”に対応したアドレスレジスタA3の内容が
読み出され、その内容がE1レジスタ132に格納され
る。
納されたデータが演算器133をスルーして、M0レジ
スタ141に格納され、E1レジスタ132に格納され
たアドレスは、オペレーション解読部116からの制御
信号によって“4”だけ減算処理され、その演算結果を
データメモリ143のアドレス入力部に出力する。
格納されたデータが、演算器133の演算結果で得られ
たアドレス値のデータメモリ143に格納される。
ォーマットにおける命令で拡張レジスタE6の上位ハー
フワードと拡張レジスタE1の上位ハーフワードとの乗
算結果と、拡張レジスタE6の下位ハーフワードと拡張
レジスタE1の下位ハーフワードとの乗算結果とを加算
し、その加算結果を拡張レジスタE1に累算する演算命
令である。
命令メモリ101から命令を読み出して、命令レジスタ
103に格納する。
は、命令レジスタ103に格納された命令を解読して、
この命令が第2の命令フォーマットによる命令であるこ
とを出力する。第2のレジスタアドレス抽出部114
は、ソースのデータアドレスとして”0110”を、格
納先のアドレスとしてレジスタアドレス“0001”を
抽出する。
は、命令型判定部111からの制御信号に応じて、第2
のレジスタアドレス抽出部114から出力されるアドレ
スをレジスタファイル120に出力する。オペレーショ
ン解読部116は、拡張レジスタE6の上位ハーフワー
ドと拡張レジスタE1の上位ハーフワードとの乗算結果
と、拡張レジスタE6の下位ハーフワードと拡張レジス
タE1の下位ハーフワードとの乗算結果とを加算し、そ
の加算結果を拡張レジスタE1に累算する演算命令であ
ることを解読し、その制御信号を生成する。
オペランドとして物理アドレス“0110”に対応した
拡張レジスタE6の内容が読み出され、その内容がE0
レジスタ131に格納され、ソースのオペランドとして
物理アドレス”0001”に対応した拡張レジスタE1
の内容が読み出される。
E0レジスタ131に格納されたデータの上位ハーフワ
ードとE1レジスタ132に格納されたデータの上位ハ
ーフワードとが抽出され、これ等の乗算が実行され、同
時に、E0レジスタ131に格納されたデータの下位ハ
ーフワードとE1レジスタ132に格納されたデータの
下位ハーフワードとが抽出され、これ等の乗算が実行さ
れ、この2つの乗算結果とE1レジスタ132に格納さ
れたデータとの加算が実行され、その加算結果がM0レ
ジスタ141に格納される。
格納されたデータがデータメモリ143をスルーし、W
0レジスタ151に格納される。
納されたデータが読み出され、このデータが、レジスタ
ファイル120の第2のレジスタアドレス抽出部114
が出力する格納先アドレス”0001”に格納される。
マットにおける命令で拡張レジスタE3に格納された値
から“1”の減算を実行し、その演算結果を拡張レジス
タE3に格納する演算命令である。
命令メモリ101から命令を読み出して、命令レジスタ
103に格納する。
は、命令レジスタ103に格納された命令を解読して、
この命令が第2の命令フォーマットによる命令であるこ
とを出力する。第2のレジスタアドレス抽出部114
は、ソースのデータアドレスとして”0011”を、格
納先のアドレスとしてレジスタアドレス“0011”を
抽出する。
は、命令型判定部111からの制御信号に応じて、第2
のレジスタアドレス抽出部114から出力されるアドレ
スをレジスタファイル120に出力する。オペレーショ
ン解読部116は、拡張レジスタE3から“1”だけ減
算する演算命令であることを解読し、その制御信号を生
成する。
オペランドとして、物理アドレス“0011”に対応し
た拡張レジスタE3の内容が読み出され、その内容がE
0レジスタ131に格納される。
E0レジスタ131に格納されたデータが読み出され、
“1”の減算が実行され、その結果がM0レジスタ14
1に格納される。
格納されたデータがデータメモリ143をスルーし、W
0レジスタ151に格納される。
納されたデータが読み出され、このデータが、レジスタ
ファイル120の第2のレジスタアドレス抽出部114
が出力する格納先アドレス”0011”に格納される。
フォーマットにおける命令で拡張レジスタE4で示され
るメモリアドレスからデータを読み出し、このデータを
拡張レジスタE6に格納し、データ格納後、拡張レジス
タE4の値を“4”だけ加算するポストインクリメント
メモリ-レジスタ間転送命令である。
命令メモリ101から命令を読み出して、命令レジスタ
103に格納する。
は、命令レジスタ103に格納された命令を解読して、
この命令が第2の命令フォーマットによる命令であるこ
とを出力する。第2のレジスタアドレス抽出部114
は、ソースのデータアドレスとして”0100”を、格
納先のアドレスとしてレジスタアドレス“0110”を
抽出する。
は、命令型判定部111からの制御信号に応じて、第2
のレジスタアドレス抽出部114から出力されるアドレ
スをレジスタファイル120に出力する。オペレーショ
ン解読部116は、拡張レジスタE4で示されるメモリ
アドレスからデータを読み出し、このデータを拡張レジ
スタE6に格納し、データ格納後、拡張レジスタE4の
値を“4”だけ加算するポストインクリメントメモリ-
レジスタ間転送命令であることを解読し、その制御信号
を生成する。
オペランドとして物理アドレス”0100”に対応した
拡張レジスタE4の内容が読み出され、この内容がE0
レジスタ131に格納される。
E0レジスタ131に格納されたデータが読み出され、
このデータをオペレーション解読部116からの制御信
号によってデータメモリ143のアドレス入力部に出力
する。また、“4”の加算を実行し、その結果がM0レ
ジスタ141に格納される。
格納されたデータがデータメモリ143をスルーし、W
0レジスタ151に格納される。また、オペレーション
解読部116からの制御信号により、指定されるメモリ
アドレスのデータメモリ143からデータを読み出し、
W0レジスタ151に格納する。
納されたデータが読み出され、このデータが、レジスタ
ファイル120の第2のレジスタアドレス抽出部114
が出力する格納先アドレス”0110”に格納される。
令フォーマットにおける命令で拡張レジスタE5で示さ
れるメモリアドレスからデータを読み出して、拡張レジ
スタE1に格納し、データ格納後、拡張レジスタE5の
値を“4”だけ加算するポストインクリメントメモリ-
レジスタ間転送命令である。
命令メモリ101から命令を読み出して、命令レジスタ
103に格納する。
は、命令レジスタ103に格納された命令を解読して、
この命令が第2の命令フォーマットによる命令であるこ
とを出力する。第2のレジスタアドレス抽出部114
は、ソースのデータアドレスとして”0101”を、格
納先のアドレスとしてレジスタアドレス“0001”を
抽出する。
は、命令型判定部111からの制御信号に応じて、第2
のレジスタアドレス抽出部114から出力されるアドレ
スをレジスタファイル120に出力する。オペレーショ
ン解読部116は、拡張レジスタE5で示されるメモリ
アドレスからデータを読み出し、このデータを拡張レジ
スタE1に格納し、このデータ格納後、拡張レジスタE
5の値を“4”だけ加算するポストインクリメントメモ
リ-レジスタ間転送命令であることを解読し、その制御
信号を生成する。
オペランドとして物理アドレス”0101”に対応した
拡張レジスタE5の内容が読み出され、この内容がE0
レジスタ131に格納される。
E0レジスタ131に格納されたデータが読み出され、
このデータが、オペレーション解読部116からの制御
信号によってデータメモリ143のアドレス入力部に出
力される。また、“4”の加算を実行し、その結果がM
0レジスタ141に格納される。
格納されたデータがデータメモリ143をスルーし、W
0レジスタ151に格納される。また、オペレーション
解読部116からの制御信号によって、指定されるメモ
リアドレスのデータメモリ143からデータを読み出
し、このデータをW0レジスタ151に格納する。
納されたデータが読み出され、このデータは、レジスタ
ファイル120の第2のレジスタアドレス抽出部114
が出力する格納先アドレス”0001”に格納される。
における命令で前記命令4で実行された減算命令の結果
が“0”以上の値の場合には、前記命令1の前に示され
るLOOP番地にプログラムカウンタ124の値を変更し、
ループ命令を実行する命令である。
命令メモリ101から命令を読み出して、命令レジスタ
103に格納する。
は、命令レジスタ103に格納された命令を解読して、
この命令が第1の命令フォーマットによる命令であるこ
とを出力する。オペレーション解読部116はループ命
令であることを解読し、その制御信号を生成する。
る制御信号に基づいてレジスタファイル120内のプロ
グラムカウンタ124の値がE0レジスタ131に格納
される。
E0レジスタ131に格納されたデータが読み出され、
オペレーション解読部116から出力される制御信号に
基づいて、ループの飛び先アドレス値がM0レジスタ1
41に格納される。
格納されたデータがデータメモリ143をスルーし、W
0レジスタ151に格納される。
納されたデータが、レジスタファイル120内のプログ
ラムカウンタ124に格納される。
3及び命令5は4バイト命令、命令1、命令2、命令
4、命令6及び命令7は3バイト命令、命令8は1バイ
ト命令である。図14で示した命令はトータルで24バ
イトのコードサイズとなっている。
の命令フォーマットを用いて書き換えた命令を示してい
る。図14の命令4及び命令5をマージして命令4”DM
ACH#SUB”に、図14の命令7及び命令8をマージして
命令6”MOV#LGE”に各々置き換えている。
1の命令フォーマットのメモリへのハーフワード転送命
令を示し、命令2は第2の命令フォーマットのハーフワ
ードスワップ(入れ換え)命令を、命令3は第2の命令
フォーマットのメモリへのハーフワード転送命令を示
し、命令4はハーフワード並列積和演算命令及び即値減
算命令の並列実行命令を、命令5は第2の命令フォーマ
ットのメモリからの転送命令を、命令6はメモリからの
データ転送及びと条件分岐の並列実行命令を示してい
る。
述べる。
令フォーマットにおける命令でデータレジスタD0の値
を、アドレスレジスタA3に格納されたアドレス値から
“6”を引いたメモリアドレスに格納するというレジス
タ-メモリ間転送(ストア)の命令である。
命令メモリ101から命令を読み出して、命令レジスタ
103に格納する。
は、命令レジスタ103に格納された命令を解読して、
この命令が第1の命令フォーマットによる命令であるこ
とを出力する。第1のレジスタアドレス抽出部112
は、ソースのデータアドレスとしてデータレジスタのア
ドレス“00”とアドレスレジスタのアドレス”11”
とを抽出する。レジスタアドレス変換部113は、デー
タレジスタのアドレス“00”を4ビットのアドレス
“1100”に、アドレスレジスタのアドレス“11”
を4ビットのアドレス“1011”に各々変換する。
は、命令型判定部111からの制御信号に応じて、レジ
スタアドレス変換部113から出力されるデータレジス
タの4ビットのアドレス“1100”と、アドレスレジ
スタの4ビットのアドレス“1011”とを、レジスタ
ファイル120に出力する。
ジスタD0の値を、アドレスレジスタA3に格納された
アドレス値から“6”を引いたメモリアドレスに格納す
るというレジスタ-メモリ間転送(ストア)の命令であ
ることを解読し、その制御信号を生成する。
オペランドとして、物理アドレス“1100”に対応し
たデータレジスタD0の内容が読み出され、その内容が
E0レジスタ131に格納され、物理アドレス“101
1”に対応したアドレスレジスタA3の内容が読み出さ
れ、その内容がE1レジスタ132に格納される。
納されたデータが演算器133をスルーして、Mレジス
タ141に格納され、E1レジスタ132に格納された
アドレスは、オペレーション解読部116からの制御信
号によって“6”だけ減算処理され、その演算結果をデ
ータメモリ143のアドレス入力部に出力する。
格納されたデータが、演算器133の演算結果で得られ
たアドレス値のデータメモリ143に格納される。
ーマットにおける命令で拡張レジスタE0の上位ハーフ
ワードと下位ハーフワードとを入れ換えたデータを拡張
レジスタE2に格納する命令である。
命令メモリ101から命令を読み出して、命令レジスタ
103に格納する。
は、命令レジスタ103に格納された命令を解読して、
この命令が第2の命令フォーマットによる命令であるこ
とを出力する。第2のレジスタアドレス抽出部114
は、ソースのデータアドレスとして”0000”を、格
納先のアドレスとしてレジスタアドレス“0010”を
抽出する。
は、命令型判定部111からの制御信号に応じて、第2
のレジスタアドレス抽出部114から出力されるアドレ
スをレジスタファイル120に出力する。オペレーショ
ン解読部116は、拡張レジスタE0の上位ハーフワー
ドと下位ハーフワードとを入れ換えたデータを拡張レジ
スタE2に格納する命令であることを解読し、その制御
信号を生成する。
オペランドとして、物理アドレス“0000”に対応し
た拡張レジスタE0の内容が読み出され、その内容がE
0レジスタ131に格納される。
ジスタ131に格納されたデータを入力とし、演算器1
33はオペレーション解読部116から供給される制御
信号を元に、その上位ハーフワードと下位ハーフワード
とを入れ換えたデータを生成し、その結果をM0レジス
タ141に格納する。
格納されたデータがデータメモリ143をスルーし、W
0レジスタ151に格納される。
納されたデータが読み出され、このデータがレジスタフ
ァイル120の第2のレジスタアドレス抽出部114が
出力する格納先アドレス”0010”に格納される。
令フォーマットにおける命令で拡張レジスタE2の値
を、アドレスレジスタA3に格納されたアドレス値から
“4”を引いたメモリアドレスに格納するというレジス
タ->メモリ間転送(ストア)の命令である。
命令メモリ101から命令を読み出して、命令レジスタ
103に格納する。
は、命令レジスタ103に格納された命令を解読して、
この命令が第2の命令フォーマットによる命令であるこ
とを出力する。第1のレジスタアドレス抽出部112
は、ソースのデータアドレスとしてアドレスレジスタの
アドレス”11”を抽出する。第2のレジスタアドレス
抽出部114は、ソースのデータアドレスとして拡張レ
ジスタのアドレス”0010”を抽出する。レジスタア
ドレス変換部113は、アドレスレジスタのアドレス
“11”を4ビットのアドレス“1011”に変換す
る。
は、命令型判定部111からの制御信号に応じて、レジ
スタアドレス変換部113から出力されるアドレスレジ
スタの4ビットのアドレス“1011”と、拡張レジス
タの4ビットのアドレス“0010”とを、レジスタフ
ァイル120に出力する。
スタE2の値を、アドレスレジスタA3に格納されたア
ドレス値から“4”を引いたメモリアドレスに格納する
というレジスタ-メモリ間転送(ストア)の命令である
ことを解読し、その制御信号を生成する。
オペランドとして、物理アドレス“0010”に対応し
た拡張レジスタE2の内容が読み出され、その内容がE
0レジスタ131に格納され、物理アドレス“101
1”に対応したアドレスレジスタA3の内容が読み出さ
れ、その内容がE1レジスタ132に格納される。
納されたデータが演算器133をスルーして、M0レジ
スタ141に格納され、E1レジスタ132に格納され
たアドレスは、オペレーション解読部116からの制御
信号によって“4”だけ減算処理され、その演算結果を
データメモリ143のアドレス入力部に出力する。
格納されたデータが、演算器133の演算結果で得られ
たアドレス値のデータメモリ143に格納される。
命令フォーマットにおける命令で拡張レジスタE6の上
位ハーフワードと拡張レジスタE1の上位ハーフワード
との乗算結果と、拡張レジスタE6の下位ハーフワード
と拡張レジスタE1の下位ハーフワードとの乗算結果と
を加算し、その加算結果を拡張レジスタE1に累算する
ユニットと、拡張レジスタE3から“1”だけ減算する
ユニットとから構成され、これ等のユニットを並列に実
行する命令である。
命令メモリ101から命令を読み出して、命令レジスタ
103に格納する。
は、命令レジスタ103に格納された命令を解読して、
この命令が第3の命令フォーマットによる命令であるこ
とを出力する。第2のレジスタアドレス抽出部114
は、ソースのデータアドレスとして”0110”を、格
納先のアドレスとしてレジスタアドレス“0001”を
抽出する。また、第3のレジスタアドレス抽出部115
は、ソース及び格納先のデータアドレスとして、”00
11”を抽出する。
は、命令型判定部111からの制御信号に応じて、第2
のレジスタアドレス抽出部114から出力されるアドレ
スをレジスタファイル120に出力する。オペレーショ
ン解読部116は、拡張レジスタE0の上位ハーフワー
ドと拡張レジスタE1の上位ハーフワードとの乗算結果
と、拡張レジスタE6の下位ハーフワードと拡張レジス
タE1の下位ハーフワードとの乗算結果とを加算し、そ
の加算結果を拡張レジスタE1に累算する演算命令であ
ることを解読し、その制御信号を生成する。
オペランドとして、物理アドレス“0110”に対応し
た拡張レジスタE6の内容が読み出され、その内容がE
0レジスタ131に格納され、ソースのオペランドとし
て、物理アドレス”0001”に対応した拡張レジスタ
E1の内容がE1レジスタ132に読み出される。ま
た、並行して、レジスタファイル120からは、ソース
のオペランドとして、物理アドレス”0011”に対応
した拡張レジスタE3の値がE2レジスタ134に読み
出される。
E0レジスタ131に格納されたデータの上位ハーフワ
ードとE1レジスタ132に格納されたデータの上位ハ
ーフワードとが抽出され、それ等の乗算が実行され、同
時に、E0レジスタ131に格納されたデータの下位ハ
ーフワードとE1レジスタ132に格納されたデータの
下位ハーフワードとが抽出され、それ等の乗算が実行さ
れ、この2つの乗算結果と、E1レジスタ132に格納
されたデータとの加算が実行され、その結果がM0レジ
スタ141に格納される。また、並行して、E2レジス
タ134に格納されたデータから、“1”の減算を実行
し、その減算結果をM1レジスタ142に格納する。
格納されたデータがデータメモリ143をスルーし、W
0レジスタ151に格納されると共に、M1レジスタ1
42に格納されたデータがデータメモリ143をスルー
し、W1レジスタに格納される。
納されたデータが読み出され、このデータが、レジスタ
ファイル120の第2のレジスタアドレス抽出部114
が出力する格納先アドレス”0001”に格納され、こ
れに並行して、W1レジスタ152に格納されたデータ
が読み出され、このデータが、レジスタファイル120
の第3のレジスタアドレス抽出部115が出力する格納
先アドレス”0011”に格納される。
フォーマットにおける命令で拡張レジスタE4で示され
るメモリアドレスからデータを読み出し、このデータを
拡張レジスタE6に格納し、データ格納後、拡張レジス
タE4の値を“4”だけ加算するポストインクリメント
メモリ-レジスタ間転送命令である。
命令メモリ101から命令を読み出して、命令レジスタ
103に格納する。
は、命令レジスタ103に格納された命令を解読して、
この命令が第2の命令フォーマットによる命令であるこ
とを出力する。第2のレジスタアドレス抽出部114
は、ソースのデータアドレスとして”0100”を、格
納先のアドレスとしてレジスタアドレス“0110”を
抽出する。
は、命令型判定部111からの制御信号に応じて、第2
のレジスタアドレス抽出部114から出力されるアドレ
スをレジスタファイル120に出力する。オペレーショ
ン解読部116は、拡張レジスタE4で示されるメモリ
アドレスからデータを読み出し、このデータを拡張レジ
スタE6に格納し、データ格納後、拡張レジスタE4の
値を“4”だけ加算するポストインクリメントメモリ-
レジスタ間転送命令であることを解読し、その制御信号
を生成する。
オペランドとして、物理アドレス”0100”に対応し
た拡張レジスタE4の内容が読み出され、その内容がE
0レジスタ131に格納される。
E0レジスタ131に格納されたデータが読み出され、
このデータを、オペレーション解読部116からの制御
信号によってデータメモリ143のアドレス入力部に出
力する。また、“4”の加算を実行し、その結果がM0
レジスタ141に格納される。
格納されたデータがデータメモリ143をスルーし、W
0レジスタ151に格納される。また、オペレーション
解読部116からの制御信号によって、指定されるメモ
リアドレスのデータメモリ143からデータを読み出
し、このデータをW0レジスタ151に格納する。
納されたデータが読み出され、レジスタファイル120
の第2のレジスタアドレス抽出部114が出力する格納
先アドレス”0110”に格納される。
命令フォーマットにおける命令で拡張レジスタE5で示
されるメモリアドレスからデータを読み出し、このデー
タを拡張レジスタE1に格納し、データ格納後、拡張レ
ジスタE5の値を“4”だけ加算するポストインクリメ
ントメモリ-レジスタ間転送命令であるユニットと、前
記命令4で実行された減算命令の結果が“0”以上の値
の場合には、前記命令1の前に示されるLOOP番地にプロ
グラムカウンタ124の値を変更するループ命令である
ユニットとを並列に実行する命令である。
命令メモリ101から命令を読み出して、命令レジスタ
103に格納する。
は、命令レジスタ103に格納された命令を解読して、
この命令が第3の命令フォーマットによる命令であるこ
とを出力する。第2のレジスタアドレス抽出部114
は、ソースのデータアドレスとして”0101”を、格
納先のアドレスとしてレジスタアドレス“0001”を
抽出する。
は、命令型判定部111からの制御信号に応じて、第2
のレジスタアドレス抽出部114から出力されるアドレ
スをレジスタファイル120に出力する。オペレーショ
ン解読部116は、拡張レジスタE5で示されるメモリ
アドレスからデータを読み出し、このデータを拡張レジ
スタE1に格納し、データ格納後、拡張レジスタE5の
値を“4”だけ加算するポストインクリメントメモリ-
レジスタ間転送命令であることを解読し、その制御信号
を生成する。
オペランドとして、物理アドレス”0101”に対応し
た拡張レジスタE5の内容が読み出され、この内容がE
0レジスタ131に格納される。
う一方のユニットがループ命令であることを解読し、そ
の制御信号を生成する。
る制御信号に基づいて、レジスタファイル120内のプ
ログラムカウンタ124の値がE2レジスタ134に格
納される。
E0レジスタ131に格納されたデータが読み出され、
このデータを、オペレーション解読部116からの制御
信号によってデータメモリ143のアドレス入力部に出
力する。また、“4”の加算を実行し、その結果がM0
レジスタ141に格納される。
4に格納されたデータが読み出され、オペレーション解
読部116から出力される制御信号に基づいてループの
飛び先アドレス値がM1レジスタ142に格納される。
格納されたデータがデータメモリ143をスルーし、W
0レジスタ151に格納される。また、オペレーション
解読部116からの制御信号によって、指定されるメモ
リアドレスのデータメモリ143からデータを読み出
し、このデータをW0レジスタ151に格納する。
データメモリ143をスルーし、W1レジスタ152に
格納される。
納されたデータが読み出され、このデータが、レジスタ
ファイル120の第2のレジスタアドレス抽出部114
が出力する格納先アドレス”0001”に格納される。
は、レジスタファイル120内のプログラムカウンタ1
24に格納される。
命令5は4バイト命令、命令1及び命令2は3バイト命
令、命令4は4バイト命令、命令6は4バイト命令を示
している。図15で示した命令はトータルで22バイト
のコードサイズとなっている。
命令フォーマットを持つ命令により、コードサイズが2
4バイトから22バイトへとコードサイズの縮小を図れ
ることが示された。更には、図14から図15へ命令を
変更することにより、命令の数も8命令から6命令に削
減でき、実行性能の向上も実現されることが示されてい
る。
のデータ処理装置に限られないことは勿論である。例え
ば、本実施の形態では、アドレスレジスタ及びデータレ
ジスタを拡張したが、汎用レジスタを拡張してもよい。
また、本実施の形態では、アドレスレジスタを4個、デ
ータレジスタを4個、拡張レジスタを8個として説明し
たが、レジスタの個数は何個でもよい。更に、本実施の
形態では、第1の命令フォーマットで第1のレジスタフ
ァイル220を指定し、第2の命令フォーマットで第1
のレジスタファイル220を含んだ第2のレジスタファ
イル120を指定したが、本発明はこれに限定されず、
第2のレジスタファイルのレジスタ数を第1のレジスタ
ファイルのレジスタ数よりも多くし、第2の命令フォー
マットでこの第2のレジスタファイルのみを指定し、第
1のレジスタファイルは指定しない構成としても良い。
つのユニットを並列実行する命令のフォーマットを採用
したが、2つのユニットに限定されず、3つ以上のユニ
ットを並列実行する命令のフォーマットとしてもよいの
は勿論である。
求項11記載の発明によれば、第1の命令フォーマット
と、この命令フォーマットよりも多数のレジスタを指定
できる第2の命令フォーマットとを使用し、これ等の命
令フォーマットを用いた命令を混在させつつ、解読し
て、実行するので、プログラムサイズを有効に小さくし
つつ、1つの命令で多数のレジスタを用いた動作を実行
できて、信号処理等のデータ処理の処理速度を高速化で
きる。
記載の発明によれば、並列演算命令を含ませて、1つの
命令で複数の演算を並列に実行でき、データ処理を一層
高速化できると共に、プログラムサイズの更なる縮小が
実現できる。
2の命令フォーマットを示す図である。
命令のリストの一部を示す図である。
3の命令フォーマットを示す図である。
命令のリストの一部を示す図である。
である。
示すブロック図である。
マットの命令実行時のレジスタファイルのレジスタ番号
を示す図である。
マットの命令の実行時のレジスタファイルのレジスタ番
号を示す図である。
ある。
を用いてコンパイルした第1の例を示す図である。
を用いてコンパイルした第2の例を示す図である。
を用いてコンパイルした第3の例を示す図である。
を用いてコンパイルした例を示す図である。
マットの命令を使用せず記述したFIRフィルタ処理の
プログラムを示す図である。
マットの命令を使用して図14で記述したFIRフィル
タ処理プログラムを書き換えたプログラムを示す図であ
る。
第1の命令フォーマット(1)を示す図である。
(1)の命令のリストの一部示す図である。
(2)を示す図である。
(2)の命令のリストの一部示す図である。
ファイルの構成を示すブロック図である。
の命令の実行時のレジスタファイルのレジスタ番号を示
す図である。
示す図である。
要部構成を示すブロック図である。
第3の命令フォーマットの具体例を示す図である。
ファイル) 121 汎用レジスタ 122 スタックポインタ 123 Processor Status Word 124 プログラムカウンター E0〜E7 拡張レジスタ 133、136 演算器 220 第1のレジスタファイル
Claims (11)
- 【請求項1】 第1レジスタファイルを指定領域とする
第1命令フォーマットで記述される命令と、前記第1レ
ジスタファイルのレジスタ及び拡張レジスタから構成さ
れる第2レジスタファイルを指定領域とし且つ前記第1
命令フォーマットよりも最小命令語長が長い第2命令フ
ォーマットで記述される命令とを解読する命令解読方法
であって、 入力された命令が前記第1命令フォーマットである場合
に、前記第1レジスタファイルのレジスタアドレスを直
接的に抽出する工程と、 入力された命令が前記第2命令フォーマットである場合
に、前記第2レジスタファイルのレジスタアドレスを直
接的に抽出する工程とを含むことを特徴とする命令解読
方法。 - 【請求項2】 前記第1命令フォーマットで記述される
命令には並列演算命令を含まず、 前記第2命令フォーマットで記述される命令には並列演
算命令を含むことを特徴とする請求項1記載の命令解読
方法。 - 【請求項3】 第1レジスタファイルを指定領域とし且
つ並列演算命令を含まない第1命令フォーマットで記述
される命令と、前記第1レジスタファイルのレジスタ及
び拡張レジスタから構成される第2レジスタファイルを
指定領域とし且つ並列演算命令を含む第2命令フォーマ
ットで記述される命令とを解読する命令解読方法であっ
て、 入力された命令が前記第1命令フォーマットである場合
に、前記第1レジスタファイルのレジスタアドレスを直
接的に抽出する工程と、 入力された命令が前記第2命令フォーマットである場合
に、前記第2レジスタファイルのレジスタアドレスを直
接的に抽出する工程とを含むことを特徴とする命令解読
方法。 - 【請求項4】 前記第1命令フォーマットで記述される
命令と前記第2命令フォーマットで記述される命令と
は、相互に変換しないことを特徴とする請求項1、2又
は3記載の命令解読方法。 - 【請求項5】 第1レジスタファイルを指定領域とする
第1命令フォーマットで記述される命令と、前記第1レ
ジスタファイルのレジスタ及び拡張レジスタから構成さ
れる第2レジスタファイルを指定領域とし且つ前記第1
命令フォーマットよりも最小命令語長が長い第2命令フ
ォーマットで記述される命令とを解読する命令解読装置
であって、 入力された命令が前記第1命令フォーマットである場合
に、前記第1レジスタファイルのレジスタアドレスを直
接的に抽出する第1レジスタアドレス抽出手段と、 入力された命令が前記第2命令フォーマットである場合
に、前記第2レジスタファイルのレジスタアドレスを直
接的に抽出する第2レジスタアドレス抽出手段とを含む
ことを特徴とする命令解読装置。 - 【請求項6】 前記第1命令フォーマットで記述される
命令には並列演算命令を含まず、 前記第2命令フォーマットで記述される命令には並列演
算命令を含むことを特徴とする請求項5記載の命令解読
装置。 - 【請求項7】 第1レジスタファイルを指定領域とし且
つ並列演算命令を含まない第1命令フォーマットで記述
される命令と、前記第1レジスタファイルのレジスタ及
び拡張レジスタから構成される第2レジスタファイルを
指定領域とし且つ並列演算命令を含む第2命令フォーマ
ットで記述される命令とを解読する命令解読装置であっ
て、 入力された命令が前記第1命令フォーマットである場合
に、前記第1レジスタファイルのレジスタアドレスを直
接的に抽出する第1レジスタアドレス抽出手段と、 入力された命令が前記第2命令フォーマットである場合
に、前記第2レジスタファイルのレジスタアドレスを直
接的に抽出する第2レジスタアドレス抽出手段とを含む
ことを特徴とする命令解読装置。 - 【請求項8】 前記第1命令フォーマットで記述される
命令と前記第2命令フォーマットで記述される命令と
は、相互に変換しないことを特徴とする請求項5、6又
は7記載の命令解読装置。 - 【請求項9】 第1及び第2の命令セットを実行するデ
ータ処理装置であって、 所定個のレジスタを持つレジスタファイルと、 他の所定個のレジスタを持つ拡張レジスタファイルとを
備え、 前記第2の命令セットは、前記レジスタファイル及び前
記拡張レジスタファイルのレジスタを指定することがで
き、 前記第2の命令セットは、前記レジスタファイルのみを
有する別のデータ処理装置で実行される第1の命令セッ
トに並列演算命令を追加拡張したものであり、 前記第1の命令セットは、前記レジスタファイルのレジ
スタのみを指定することができることを特徴とするデー
タ処理装置。 - 【請求項10】 前記並列演算命令は、乗算に関する命
令であることを特徴とする請求項9記載のデータ処理装
置。 - 【請求項11】 前記レジスタファイル及び前記拡張レ
ジスタファイルのレジスタアドレスを直接的に抽出する
レジスタアドレス抽出手段を含むことを特徴とする請求
項10記載のデータ処理装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP06223099A JP3472504B2 (ja) | 1998-03-11 | 1999-03-09 | 命令解読方法、命令解読装置及びデータ処理装置 |
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP5968098 | 1998-03-11 | ||
JP10-59680 | 1998-03-11 | ||
JP10-115588 | 1998-04-24 | ||
JP11558898 | 1998-04-24 | ||
JP06223099A JP3472504B2 (ja) | 1998-03-11 | 1999-03-09 | 命令解読方法、命令解読装置及びデータ処理装置 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003290766A Division JP3901670B2 (ja) | 1998-03-11 | 2003-08-08 | データ処理装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2000029686A JP2000029686A (ja) | 2000-01-28 |
JP3472504B2 true JP3472504B2 (ja) | 2003-12-02 |
Family
ID=27296967
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP06223099A Expired - Lifetime JP3472504B2 (ja) | 1998-03-11 | 1999-03-09 | 命令解読方法、命令解読装置及びデータ処理装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3472504B2 (ja) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7937572B2 (en) * | 2004-05-13 | 2011-05-03 | Silicon Hive B.V. | Run-time selection of feed-back connections in a multiple-instruction word processor |
JP4609702B2 (ja) * | 2004-12-21 | 2011-01-12 | 富士ゼロックス株式会社 | データ処理システムおよびその制御方法 |
US7676653B2 (en) * | 2007-05-09 | 2010-03-09 | Xmos Limited | Compact instruction set encoding |
-
1999
- 1999-03-09 JP JP06223099A patent/JP3472504B2/ja not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
JP2000029686A (ja) | 2000-01-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7979676B2 (en) | Method for instructing a data processor to process data | |
KR100323191B1 (ko) | 다중명령세트를이용한데이터프로세싱장치 | |
EP1734440B1 (en) | Processor for executing highly efficient VLIW instructions | |
US6490673B1 (en) | Processor, compiling apparatus, and compile program recorded on a recording medium | |
US7676653B2 (en) | Compact instruction set encoding | |
JP2816248B2 (ja) | データプロセッサ | |
JPH09311786A (ja) | データ処理装置 | |
JPH0926878A (ja) | データ処理装置 | |
US4954943A (en) | Data processing system | |
US7546442B1 (en) | Fixed length memory to memory arithmetic and architecture for direct memory access using fixed length instructions | |
JPH1165839A (ja) | プロセッサの命令制御機構 | |
US6542989B2 (en) | Single instruction having op code and stack control field | |
JP2002215387A (ja) | 命令トランスレータを備えたデータ処理装置およびメモリインタフェース装置 | |
US6209080B1 (en) | Constant reconstruction processor that supports reductions in code size and processing time | |
JP3472504B2 (ja) | 命令解読方法、命令解読装置及びデータ処理装置 | |
JP3901670B2 (ja) | データ処理装置 | |
JP2004005738A5 (ja) | ||
US6260136B1 (en) | Substitute register for use in a high speed data processor | |
US5187782A (en) | Data processing system | |
JP3915019B2 (ja) | Vliwプロセッサ、プログラム生成装置、および記録媒体 | |
JP3670801B2 (ja) | プロセッサ | |
JPH06149563A (ja) | データ処理装置 | |
JPH10105399A (ja) | データ処理装置 | |
JP2000099329A (ja) | プロセッサ | |
JPH01217633A (ja) | データ処理装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080912 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080912 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090912 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090912 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100912 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110912 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120912 Year of fee payment: 9 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130912 Year of fee payment: 10 |
|
S533 | Written request for registration of change of name |
Free format text: JAPANESE INTERMEDIATE CODE: R313533 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313111 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
EXPY | Cancellation because of completion of term |