JP2000029686A - デ―タ処理装置及び命令フォ―マット - Google Patents

デ―タ処理装置及び命令フォ―マット

Info

Publication number
JP2000029686A
JP2000029686A JP11062230A JP6223099A JP2000029686A JP 2000029686 A JP2000029686 A JP 2000029686A JP 11062230 A JP11062230 A JP 11062230A JP 6223099 A JP6223099 A JP 6223099A JP 2000029686 A JP2000029686 A JP 2000029686A
Authority
JP
Japan
Prior art keywords
instruction
register
format
instruction format
address
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
JP11062230A
Other languages
English (en)
Other versions
JP3472504B2 (ja
Inventor
Masaichi Nakajima
雅逸 中島
Takeshi Kishida
武 岸田
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.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial Co Ltd
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 Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Priority to JP06223099A priority Critical patent/JP3472504B2/ja
Publication of JP2000029686A publication Critical patent/JP2000029686A/ja
Application granted granted Critical
Publication of JP3472504B2 publication Critical patent/JP3472504B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Landscapes

  • Advance Control (AREA)
  • Executing Machine-Instructions (AREA)

Abstract

(57)【要約】 【課題】 コードサイズの縮小に適し、レジスタ数の追
加にも柔軟に対応した命令セットを備えたデータ処理装
置を提供する。 【解決手段】 データ処理装置は、第1命令フォーマッ
トで記述される命令、及び第2命令フォーマットで記述
される命令を受ける。前記第2命令フォーマットは、第
1命令フォーマットが持つレジスタ指定領域よりも広い
レジスタ指定領域を持つ。命令型判定部111は、命令
を受け、この命令自身から、受けた命令のフォーマット
の種類を判定する。第2のレジスタファイル120に
は、第1のレジスタファイル220の8個のレジスタA
0〜A3、D0〜D3に加えて、他の8個のレジスタE
0〜E7が追加拡張される。第1命令フォーマットの命
令は、第1のレジスタファイル220のデータを用いて
実行され、第2命令フォーマットの命令は、第2のレジ
スタファイル120が持つデータを用いて実行される。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明はCPU又はマイクロ
プロセッサ等と称されるデータ処理装置の改良に関し、
より詳細には、プログラムの小型化に適した命令セット
を有するデータ処理装置に関する。
【0002】
【従来の技術】近年の半導体技術とプロセッサアーキテ
クチャ技術の進展に伴い、CPUと呼ばれるプログラム
制御可能なデータ処理装置の性能は著しく向上してい
る。このCPUは、その応用分野によって、大きく2つ
に分類することができる。第1は汎用マイクロプロセッ
サであり、第2は各種制御機器や民生用途に用いられる
組み込み用マイクロコントローラーである。第1の汎用
マイクロプロセッサにおいて、最も重要視される項目は
性能の向上であり、性能の向上を図るために、様々な技
術が用いられている。これに対し、組み込み用マイクロ
コントローラーにおいては、性能向上も大きな項目の一
つであるが、それにも増して、この性能向上に低コスト
及び低消費電力を加えたこれ等3つの項目がバランスよ
く実現されることが重要である。この中で、特に重要な
項目は、民生での応用の観点から、低コストの実現であ
る。
【0003】低コストを実現するポイントは2点あり、
第1はCPU自体(CPUコア面積)の縮小であり、第
2はプログラムサイズ(ROMサイズ)の縮小である。
ここで、近年では、CPU性能の向上に伴い、同一のC
PUにおいて実現される機能が増大しており、それに応
じてアプリケーションプログラムサイズも一層増大して
いるため、プログラムを格納するROMのサイズが、C
PUコアの面積よりも、チップのコストに対して支配的
になってきている。従って、如何にプログラムサイズの
小さいCPUを提供するかが、低コスト化を実現する大
きな課題になっている。
【0004】この課題に対処する従来の技術を説明す
る。この技術は、汎用マイクロプロセッサの命令セット
アーキテクチャに追加拡張を施し、プログラムサイズを
縮小しようとするものである。
【0005】図22に、この従来の技術によるMIPSアー
キテクチャに基づくデータ処理装置の命令フォーマット
の一例を示す。同図(a)の命令フォーマットは、レジ
スタ-レジスタ間演算命令について、基本命令語長が3
2ビット固定のMIPSーII/IIIの命令フォーマットであ
り、同図(b)の命令フォーマットは、基本命令語長が
16ビット固定の命令語長のMIPS16の命令フォーマッ
トである。
【0006】MIPSアーキテクチャは、32個のレジスタ
を備えるため、MIPSーII/IIIの命令フォーマットにおい
ては、各5ビットのレジスタアドレス指定フィールドが
あり、更に、3つのオペランドを指定する命令フォーマ
ットであるため、3つのレジスタアドレス指定フィール
ドrs、rt、rdを備える。命令の動作及び機能について
は、6ビットのOPフィールド、5ビットのshamtフィー
ルド、及び6ビットのfuncフィールドを用いて定義され
ており、全体で32ビット固定長の命令となる。
【0007】これに対して、MIPS16の命令セットで
は、レジスタ-レジスタ間演算命令として、2種の命令
フォーマットが定義されている。1つは、3ビットのレ
ジスタアドレス指定フィールドrx、ryを2つ備え、
5ビットのOPフィールド及び5ビットのfuncフィールド
を用いて命令の動作及び機能を定義する2つのオペラン
ド指定型の命令フォーマットである。他の一つは、3つ
の3ビットのレジスタアドレス指定フィールドrx、r
y、rzを備え、5ビットのOPフィールド及び2ビット
のFフィールドを用いて命令の動作及び機能を定義する
3つのオペランド指定型の命令フォーマットである。
【0008】同図(b)に示したMIPS16の命令フォー
マットでは、レジスタアドレス指定フィールドが3ビッ
トしか使用できないため、元のMIPSーII/IIIのアーキテ
クチャが備える32個のレジスタセットのうち、全てで
はなく、一部のレジスタしかアクセスすることができな
い。
【0009】MIPS16の命令フォーマットの命令は、全
てMIPSーII/IIIの命令フォーマットに置き換えることが
可能であり、MIPS16の命令フォーマットの命令をMIPS
ーII/IIIの命令フォーマットに置き換えることを命令の
伸長と呼ぷ。
【0010】図23は、前記MIPS16の命令及びMIPSー
II/IIIの命令を実行するデータ処理装置の要部を示すブ
ロック図である。以下に、その動作を説明する。
【0011】命令フェッチユニット300は、命令をフ
ェッチするブロックであり、16ビット固定長のMIPS1
6の命令フォーマットによる命令列、又は、32ビット
固定長のMIPSーII/IIIの命令フォーマットによる命令列
をフェッチして、命令伸長ユニット310に出力する。
命令列がMIPS16の命令フォーマットによるものか、MI
PSーII/IIIの命令フォーマットによるものかは、モード
設定信号によって常に指定される。
【0012】命令伸長ユニット310は、モード設定信
号によって制御され、入力されたMIPS16の命令フォー
マットをMIPSーII/IIIの命令フォーマットに伸長するブ
ロックであって、入力された命令がMIPSーII/IIIの命令
フォーマットの場合には、伸長動作をせずに、そのまま
出力する。伸長動作を行うか否かは、モード設定信号に
よって制御され、命令では判断することができない。モ
ード設定信号は、プログラマブルに変更することが可能
であり、任意のタイミングでモードを切り替えることが
できる。
【0013】命令解読器320は、命令伸長ユニット3
10から出力されたMIPSーII/IIIの命令フォーマットを
解読して制御信号を生成するブロックである。この命令
解読器320で生成された制御信号により、データ処理
装置の動作が制御される。
【0014】以上のような構成を有するデータ処理装置
においては、基本命令長が16ビットのMIPS16の命令フ
ォーマットによってプログラムされたプログラムと、基
本命令長が32ビットのMIPSーII/IIIの命令フォーマッ
トによってプログラムされたプログラムとの双方が実行
可能になる。従って、コード量を優先する場合には、1
6ビット固定長のMIPS16の命令フォーマットを用いて
プログラムし、一方、性能を優先して多くのレジスタフ
ァイルをアクセスする必要がある場合には、MIPSーII/I
IIの命令フォーマットを用いてプログラムすることが可
能になり、性能とコードサイズとのトレードオフを取り
ながら、柔軟なプログラム開発が可能となる。但し、何
れの命令フォーマットを使用するのかの選択は、システ
ムによって固定か、又はタスク単位等のある程度の大き
さのプログラム単位に限定されることになる。
【0015】
【発明が解決しようとする課題】ところで、マイクロプ
ロセッサにおいて、信号処理等のように多くのレジスタ
を必要とするアプリケーションを実行する場合には、こ
の信号処理等をより一層高速に行い得る高性能化を目差
して、既存のレジスタに複数のレジスタを追加したい要
求がある。この場合、既存の命令フォーマットよりも多
数のレジスタを指定できる命令フォーマットを作成し、
この命令フォーマットを既存の命令フォーマットに代え
て使用することも考えられる。しかし、この考えはプロ
グラムサイズが著しく増大する欠点がある。
【0016】そこで、前記従来技術を利用した次の技術
が考えられる。即ち、既存の命令フォーマットに新たな
命令フォーマットを追加し、この新たな命令フォーマッ
トで多数のレジスタを指定する構成とし、この新たな命
令フォーマットと既存の命令フォーマットとを前記従来
技術のモード設定信号で切換える技術が考えられる。
【0017】しかしながら、前記従来技術のモード設定
信号を用いる場合には、やはりコード量が増大する欠点
を招く。即ち、命令フォーマットの切り換え時には、前
記モード設定信号を発生させるための切換命令が必要で
あり、このため、前記両フォーマットで記述された命令
を混在させようとすると、前記切換命令も多数必要と
し、その結果、コード量が増大する欠点が生じる。
【0018】本発明の目的は、マイクロプロセッサにお
いて、既存のレジスタに複数のレジスタを追加する場合
に、複数種類の命令フォーマットを使用すると共に、こ
れ等命令フォーマットで記述された混在する命令を前記
従来技術のモード設定信号を用いることなく切換えて、
コード量を有効に低減することにある。
【0019】
【課題を解決するための手段】前記課題を解決するため
に、本発明では、所定数のレジスタを指定可能な第1の
命令フォーマットと、前記所定数を越える多数のレジス
タを指定可能な第2の命令フォーマットとを使用し、こ
れ等命令フォーマットをその命令フォーマットで記述さ
れた自己の命令自体で識別しながら、信号処理等を多数
のレジスタを用いてより一層高速に行うこととする。
【0020】即ち、請求項1記載の発明のデータ処理装
置は、第1命令フォーマットで記述される命令、及び第
2の命令フォーマットで記述される命令を実行するデー
タ処理装置であって、前記第1の命令フォーマットは、
所定の大きさのレジスタ指定領域を有し、前記第2命令
フォーマットは、前記第1命令フォーマットが有するレ
ジスタ指定領域よりも大きいレジスタ指定領域を有し、
前記各命令を受け、この受けた命令自身から、この命令
を記述する命令フォーマットが前記第1又は第2の命令
フォーマットであることを識別する識別手段と、所定個
のレジスタを持つ第1レジスタファイルと、前記第1レ
ジスタファイルのレジスタ数よりも多い個数のレジスタ
を持つ第2レジスタファイルとを備え、前記識別手段で
識別された第1命令フォーマットで記述された命令を、
前記第1レジスタファイルに保持されたデータを用いて
実行し、前記識別手段で識別された第2命令フォーマッ
トで記述された命令を、前記第2レジスタファイルに保
持されたデータを用いて実行することを特徴とする。
【0021】請求項2記載の発明は、前記請求項1記載
のデータ処理装置において、前記第1及び第2の命令フ
ォーマットは、各々、所定個数の命令フィールドを有
し、前記識別手段は、前記第1及び第2の命令フォーマ
ットの所定番目の命令フィールドの内容に基づいて、受
けた命令のフォーマットを識別することを特徴としてい
る。
【0022】請求項3記載の発明は、前記請求項2記載
のデータ処理装置において、前記第2の命令フォーマッ
トが有する命令フィールドの個数は、前記第1の命令フ
ォーマットが有する命令フィールドの個数よりも多いこ
とを特徴とする。
【0023】請求項4記載の発明は、前記請求項2記載
のデータ処理装置において、前記識別手段での識別に供
する所定番目の命令フィールドは、第1番目の命令フィ
ールドであることを特徴とする。
【0024】請求項5記載の発明は、前記請求項2記載
のデータ処理装置において、前記識別手段での識別に供
する所定番目の命令フィールドは、第1番目及び第2番
目の命令フィールドであることを特徴とする。
【0025】請求項6記載の発明は、前記請求項2記載
のデータ処理装置において、第1及び第2命令フォーマ
ットで記述される各命令は、可変長命令であることを特
徴とする。
【0026】請求項7記載の発明は、前記請求項2記載
のデータ処理装置において、前記第1の命令フォーマッ
トは、前記識別手段での識別に供する所定番目の命令フ
ィールドにレジスタ指定領域を持ち、前記第2の命令フ
ォーマットは、前記識別手段での識別に供する所定番目
の命令フィールドにレジスタ指定領域を持たないことを
特徴とする。
【0027】請求項8記載の発明は、前記請求項2記載
のデータ処理装置において、前記第1の命令フォーマッ
トでは、第1の命令フィールドは、実行すべき命令の動
作及び命令語長、又は命令語長のみを指定し、第2番目
以後の命令フィールドは実行すべき命令の動作のみを指
定することを特徴とする。
【0028】請求項9記載の発明は、前記請求項2記載
のデータ処理装置において、前記第2の命令フォーマッ
トでは、第1番目の命令フィールドは命令語長のみを指
定し、第2番目以後の命令フィールドは実行すべき命令
の動作のみを指定することを特徴とする。
【0029】請求項10記載の発明は、前記請求項1又
は2記載のデータ処理装置において、前記第2のレジス
タファイルは、前記第1のレジスタファイルが持つ所定
個のレジスタを含んで構成されることを特徴とする。
【0030】請求項11記載の発明は、前記請求項1又
は2記載のデータ処理装置において、前記第1及び第2
命令フォーマットでは、前記第1のレジスタファイルの
レジスタを指定するアドレスが相互に異なることを特徴
とする。
【0031】請求項12記載の発明は、前記請求項11
記載のデータ処理装置において、別途、アドレス変換部
を備え、このアドレス変換部は、前記命令を受け、この
命令が指定する第1レジスタファイルのレジスタのアド
レスを、前記第2命令フォーマットで記述されるレジス
タのアドレスに変換し、前記識別手段は、識別された命
令フォーマットが前記第1命令フォーマットであると
き、前記アドレス変換部により変換されたアドレスを前
記第1のレジスタファイルに出力させることを特徴とす
る。
【0032】請求項13記載の発明は、前記請求項2記
載のデータ処理装置において、前記第1の命令フォーマ
ットは、命令の動作と第1のレジスタファイルのレジス
タのアドレスとを指定する命令フィールドを持つことを
特徴とする。
【0033】請求項14記載の発明は、前記請求項2記
載のデータ処理装置において、前記第2の命令フォーマ
ットは、命令の動作のみを指定する命令フィールドと、
第1及び第2のレジスタファイルのレジスタのアドレス
のみを指定する他の命令フィールドとを持つことを特徴
とする。
【0034】請求項15記載の発明は、前記請求項1又
は2記載のデータ処理装置において、前記第1及び第2
のレジスタファイルに保持されたデータを用いて、一連
の命令が指示する演算を並列に実行する複数の演算器を
備えることを特徴とする。
【0035】請求項16記載の発明は、前記請求項1又
は2記載のデータ処理装置において、第3命令フォーマ
ットで記述される命令をも実行するデータ処理装置であ
って、前記第3の命令フォーマットは、複数の操作を記
述すると共に、前記第1命令フォーマットが有するレジ
スタ指定領域よりも大きいレジスタ指定領域を有し、こ
のレジスタ指定領域に前記第2のレジスタファイルのレ
ジスタが指定され、前記識別手段は、前記命令を受け、
この受けた命令自身から、この命令が第3の命令フォー
マットで記述されることを識別することを特徴とする。
【0036】請求項17記載の発明は、前記請求項16
記載のデータ処理装置において、前記第3の命令フォー
マットは、複数の操作を実行する命令の動作を指定する
命令フィールドと、前記第2のレジスタファイルに対す
るアドレスを指定する他の命令フィールドとを持つこと
を特徴とする。
【0037】請求項18記載の発明は、前記請求項16
記載のデータ処理装置において、前記第3の命令フォー
マットで記述された命令が指示する複数の操作を、並列
に実行する複数の演算器を備えることを特徴とする。
【0038】請求項19記載の発明は、前記請求項16
記載のデータ処理装置において、前記第3の命令フォー
マットで記述される命令は、前記第2の命令フォーマッ
トで記述される命令のうち使用頻度の高い命令であるこ
とを特徴とする。
【0039】請求項20記載の発明は、前記請求項16
記載のデータ処理装置において、前記第3の命令フォー
マットにおいて、並列に実行すべき操作の各々の動作を
指定する動作指定フィールドの構成ビット数は、前記第
2の命令フォーマットの動作指定フィールドの構成ビッ
ト数よりも小さいことを特徴とする。
【0040】請求項21記載の発明は、前記請求項16
記載のデータ処理装置において、前記第2の命令フォー
マットと前記第3の命令フォーマットとでは、前記第2
のレジスタファイルのレジスタを指定するアドレスが一
致することを特徴とする。
【0041】請求項22記載の発明のデータ処理装置
は、第1命令フォーマットで記述される命令、及び第2
の命令フォーマットで記述される命令を実行するデータ
処理装置であって、所定個のレジスタを持ち、これ等レ
ジスタのアドレスが前記第1及び第2命令フォーマット
間で異なるレジスタファイルと、前記第1命令フォーマ
ットで記述される命令を受け、この命令が指示するレジ
スタのアドレスを前記第2命令フォーマットのアドレス
に変換するアドレス変換部と、前記各命令を受け、この
受けた命令自身から、この命令を記述する命令フォーマ
ットが前記第1又は第2の命令フォーマットであること
を識別する識別手段とを備え、前記識別手段の出力によ
り、前記アドレス変換部の出力が制御されることを特徴
とする。
【0042】請求項23記載の発明の命令フォーマット
は、前記において、データ処理装置に与える命令の構成
を示す命令フォーマットであって、所定個の命令フィー
ルドを持つ第1命令フォーマット、及び前記第1の命令
フォーマットの命令フィール数よりも多い命令フィール
ドを持つ第2命令フォーマットであって、前記両フォー
マットの特定の命令フィールドは、自己の命令フォーマ
ットの種類を識別する領域であり、前記第1命令フォー
マットは所定の大きさのレジスタ指定領域を持ち、前記
第2命令フォーマットは、前記第1の命令フォーマット
のレジスタ指定領域よりも大きいレジスタ指定領域を持
つことを特徴とする。
【0043】請求項24記載の発明は、前記請求項23
記載の命令フォーマットにおいて、データ処理装置に与
える命令の構成を示す第3命令フォーマットであって、
この第3の命令フォーマットは、前記第1の命令フォー
マットの命令フィールドの個数及びレジスタ指定領域の
大きさよりも多い個数の命令フィールド及び大きいレジ
スタ指定領域を持つと共に、特定の命令フィールドは、
自己の命令フォーマットの種類を判別する領域であり、
更に、複数の操作を記述することを特徴としている。
【0044】請求項25記載の発明は、前記請求項23
又は24記載の命令フォーマットにおいて、自己の命令
フォーマットの種類を識別する特定の命令フィールド
は、第1番目の命令フィールドであることを特徴とす
る。
【0045】請求項26記載の発明は、前記請求項23
又は24記載の命令フォーマットにおいて、自己の命令
フォーマットの種類を識別する特定の命令フィールド
は、第1番目及び第2番目の命令フィールドであること
を特徴とする。
【0046】以上の構成により、請求項1ないし請求項
26記載の発明では、命令自身が識別手段に入力され
て、その命令のフォーマットの種類が識別される。この
際、識別手段は、入力された命令自身、例えばその命令
の第1番目の命令フィールドの内容に基づいて命令フォ
ーマットの種類を識別する。従って、従来のようにモー
ド設定信号等を発生させるための特別な命令を用いる必
要がなく、コード量の無駄な増大がない。従って、異な
るフォーマットで記述された複数の命令を混在させなが
ら、プログラムサイズを有効に小さくすることが可能で
ある。
【0047】しかも、第1の命令フォーマットで記述さ
れた命令では、第1のレジスタファイル内の個数の少な
いレジスタのみを指定するのに対し、第2の命令フォー
マットで記述された命令では、第2のレジスタファイル
内の多数のレジスタを指定し、これにより、これ等多数
のレジスタを用いた演算動作を1つの命令で記述できる
ので、メモリへのアクセス頻度が少なくなって、データ
処理が高速化することになる。
【0048】以上のことから、プログラムサイズを有効
に小さくしながら、使用するレジスタの個数を増やし
て、データ処理の高速化を図ることが可能である。
【0049】更に、請求項16ないし請求項21記載の
発明では、第3の命令フォーマットには複数の操作が記
述されるので、1つの命令でこれ等複数の操作を並列に
実行でき、データ処理がより一層高速化する。
【0050】加えて、請求項12及び請求項22記載の
発明では、同一レジスタに対する命令コード上のビット
割付けが、第1及び第2命令フォーマット間で異なる場
合であっても、アドレス変換部でのアドレス変換によ
り、同一レジスタのアドレスが同一にされるので、一方
の命令フォーマットの命令セットをそのまま使用できる
上位互換性が得られる。
【0051】
【発明の実施の形態】以下、本発明の実施の形態につい
て、図1から図21を用いて説明する。先ず、データ処
理装置の構成を説明する前に、本実施の形態で使用する
3種の命令フォーマットについて説明する。
【0052】図16から図19は、本実施の形態のアー
キテクチャに基づく第1の命令フォーマットの概要を示
す。
【0053】前記第1の命令フォーマットは、最小命令
語長を1バイトとした可変長命令であり、レジスタアド
レス指定フィールド(レジスタ指定領域)としては、2
ビットのフィールドが使用される。従って、1つのレジ
スタアドレス指定フィールドで4個のレジスタが指定可
能である。本アーキテクチャでは、4個のアドレスレジ
スタと、4個のデータレジスタが定義される。命令動作
として、アドレスレジスタを使用するか、データレジス
タを使用するかを区別することにより、命令で前記合計
8個のレジスタを使用できるように構成される。
【0054】図16は、最小命令語長である1バイト目
の第1の命令フィールドが、オペレーション指定フィー
ルドと、任意の数のレジスタアドレス指定フィールドと
から構成される第1の命令フォーマット(1)のビット
割り付けを示したものである。以下、説明する。
【0055】第1の命令フォーマット(1)-(a)は、第
1の命令フィールド内に2ビットのレジスタアドレス指
定フィールドを2フィールド含み、最小命令語長である
1バイトで構成される命令フォーマットであり、2つの
オペランドが指定可能な命令フォーマットである。
【0056】第1の命令フォーマット(1)-(b)は、第
1の命令フィールド内に2ビットのレジスタアドレス指
定フィールドを2フィールド含み、更に付加情報フィー
ルドを追加して、合計2バイト以上の命令語長を持つ命
令フォーマットである。
【0057】第1の命令フォーマット(1)-(c)は、第
1の命令フィールド内に2ビットのレジスタアドレス指
定フィールドを1つ含み、最小命令語長である1バイト
で構成される命令フォーマットであり、1つのオペラン
ドが指定可能な命令フォーマットである。
【0058】第1の命令フォーマット(1)-(d)は、第
1の命令フィールド内に2ビットのレジスタアドレス指
定フィールドを1フィールド含み、更に付加情報フィー
ルドを追加した2バイト以上の命令語長を持つ命令フォ
ーマットである。
【0059】第1の命令フォーマット(1)-(e)は、第
1の命令フィールド内にレジスタアドレス指定フィール
ドを含まず、最小命令語長である1バイトで構成される
命令フォーマットであり、アドレスを用いたオペランド
指定不可能な命令フォーマットである。
【0060】第1の命令フォーマット(1)-(f)は、第
1の命令フィールド内にレジスタアドレス指定フィール
ドを含まず、更に付加情報フィールドを追加した2バイ
ト以上の命令語長を持つ命令フォーマットである。
【0061】図17は、図16で示された個々のビット
割り付けについて、具体的な命令のリストの一部を示し
たものである。左側に命令のニーモニックを、右側に命
令の動作を各々示している。
【0062】図18は、最小命令語長である1バイト目
の第1の命令フィールドが命令語長指定フィールドから
なり、第2の命令フィールドが、オペレーション指定フ
ィールドと、任意の数のレジスタアドレス指定フィール
ドとから構成される第1の命令フォーマット(2)のビ
ット割り付けを示したものである。以下、詳細に説明す
る。
【0063】第1の命令フォーマット(2)-(a)は、第
2の命令フィールド内に2ビットのレジスタアドレス指
定フィールドを2フィールド含み、2バイトで構成され
る命令フォーマットであり、2つのオペランドが指定可
能な命令フォーマットである。
【0064】第1の命令フォーマット(2)-(b)は、第
2の命令フィールド内に2ビットのレジスタアドレス指
定フィールドを2フィールド含み、更に付加情報フィー
ルドを追加して、合計3バイト以上の命令語長を持つ命
令フォーマットである。
【0065】第1の命令フォーマット(2)-(c)は、第
2の命令フィールド内に2ビットのレジスタアドレス指
定フィールドを1つ含み、2バイトで構成される命令フ
ォーマットであり、1つのオペランドが指定可能な命令
フォーマットである。
【0066】第1の命令フォーマット(2)-(d)は、第
2の命令フィールド内に2ビットのレジスタアドレス指
定フィールドを1フィールド含み、更に付加情報フィー
ルドを追加した3バイト以上の命令語長を持つ命令フォ
ーマットである。
【0067】第1の命令フォーマット(2)-(e)は、第
2の命令フィールド内にレジスタアドレス指定フィール
ドを含まず、2バイトで構成される命令フォーマットで
あり、アドレスを用いたオペランド指定が不可能な命令
フォーマットである。
【0068】第1の命令フォーマット(2)-(f)は、第
2の命令フィールド内にレジスタアドレス指定フィール
ド含まず、更に付加情報フィールドを追加した3バイト
以上の命令語長を持つ命令フォーマットである。
【0069】図19は、図18で示された個々のビット
割り付けについて、具体的な命令のリストの一部を示し
たものである。左側に命令のニーモニックを、右側に命
令の動作を各々示している。
【0070】従って、前記図16から図19に示した第
1の命令フォーマットでは、第1の命令フィールドは、
第1から第Mの命令フィールドを最長命令語長Mとし
て、N命令語長(Nは1〜M間での整数)の可変長命令
を特定するものである。また、この第1の命令フォーマ
ットは、最小命令語長が1バイトであるという他にない
特徴を備えるので、プログラムサイズの縮小に適した命
令フォーマットとなっている。
【0071】図20は、本データ処理装置に備える第1
のレジスタファイル220を示す。この第1のレジスタ
ファイル220は、4個のアドレスレジスタA0〜A3
と、4個のデータレジスタD0〜D3と、スタックポイ
ンタSP223と、内部のステータス情報及び制御情報を
保持するPSW(Processor Status Word)224と、プログ
ラムカウンタPC225とを含み、読み出しポートを2ポ
ート、書き込みポートを1ポート有する。即ち、同時に
2つのレジスタ(重複は可)の読み込みと、1つのレジ
スタの書き込みとを許す。
【0072】更に、図21は、前記第1のレジスタファ
イル220のアドレスレジスタA0〜A3及びデータレ
ジスタD0〜D3へのアクセスについて、より詳細に示
した図である。同図は、命令の中で指定されるレジスタ
名と、レジスタアドレス指定フィールドで指定される命
令コードでのビット割付と、物理的なレジスタにアクセ
スするための物理的なレジスタ番号、及びアクセスする
対象となる物理的なレジスタ名を一覧にして示したもの
である。
【0073】図21に示すように、第1の命令フォーマ
ットにおいては、4個のアドレスレジスタA0〜A3へ
アクセスするために命令内に指定される命令アドレス指
定フィールドと、4個のデータレジスタD0〜D3へア
クセスするために命令内に指定される命令アドレス指定
フィールドとは、全く同一である。即ち、レジスタのア
ドレスを指定するために2ビット命令アドレス指定フィ
ールドを使用し、命令動作そのものでアドレスレジスタ
にアクセスするか、データレジスタにアクセスするかを
区別させている。
【0074】次に、本アーキテクチャの基本命令フォー
マットである前記図16及び図18の第1の命令フォー
マットに対して、追加拡張する第2の命令フォーマット
のビット割り付けを図1に、更に追加拡張する第3の命
令フォーマットのビット割付けを図3に示す。
【0075】図1に示した第2の命令フォーマットのビ
ット割り付けは、最小命令語長である1バイト目の第1
の命令フィールドが命令語長指定フィールドからなり、
第2及び第3の命令フィールドが、オペレーション指定
フィールドと、任意の数のレジスタアドレス指定フィー
ルドとから構成される。第2の命令フォーマットにおけ
るレジスタアドレス指定フィールドは4ビットから構成
される。以下、説明する。
【0076】図1において、第2の命令フォーマット
(a)は、第3の命令フィールド内に4ビットのレジス
タアドレス指定フィールドを2フィールド含み、3バイ
トで構成される命令フォーマットであり、2つのオペラ
ンドが指定可能な命令フォーマットである。
【0077】第2の命令フォーマット(b)は、第3の
命令フィールド内に4ビットのレジスタアドレス指定フ
ィールドを2フィールド含み、更に付加情報フィールド
を追加して、合計4バイト以上の命令語長を持つ命令フ
ォーマットである。
【0078】第2の命令フォーマット(c)は、第3の
命令フィールド内に4ビットのレジスタアドレス指定フ
ィールドを1つ含み、3バイトで構成される命令フォー
マットであり、1つのオペランドが指定可能な命令フォ
ーマットである。
【0079】第2の命令フォーマット(d)は、第3の
命令フィールド内に4ビットのレジスタアドレス指定フ
ィールドを1フィールド含み、更に付加情報フィールド
を追加した4バイト以上の命令語長を持つ命令フォーマ
ットである。
【0080】従って、前記第2の命令フォーマットにお
いても、第1の命令フィールドは、第1から第Mの命令
フィールドを最長命令語長Mとして、N命令語長(Nは
1〜M間での整数)の可変長命令を特定する。
【0081】図2は、図1で示された個々のビット割り
付けについて、具体的な命令のリストの一部を示したも
のである。左側に命令のニーモニックを、右側に命令の
動作を各々示している。ニーモニックの中で、Rm、Rn、
又はRiは、レジスタアドレスの指定を表すが、指定でき
るレジスタとして、4個のアドレスレジスタA0〜A
3、4個のデータレジスタD0〜D3、及び8個の拡張
レジスタE0〜E7から構成される16個の汎用レジス
タである。詳細は、後にレジスタの構成と共に説明す
る。
【0082】図3に示した第3の命令フォーマットのビ
ット割付けは、最小命令語長である1バイト目の第1の
命令フィールドが命令語長指定フィールドから成り、第
2の命令フィールドが4ビットの第1のオペレーション
指定フィールドと4ビットの第2のオペレーション指定
フィールドとから構成される。第3及び第4の命令フィ
ールドは、4ビットのレジスタアドレス指定フィールド
が2つ、又は4ビットのレジスタアドレス指定フィール
ドと4ビットのオペレーション指定フィールドとから構
成される。第3の命令フォーマットにおけるレジスタア
ドレス指定フィールドは、4ビットから構成される。こ
の第3の命令フォーマットで記述される命令の中の第2
の命令フィールドの第1及び第2のオペレーション指定
フィールドで指定されるを、以下、「ユニット」と定義
して、詳細に説明する。
【0083】前記第3の命令フォーマットで記述される
命令を構成する各ユニットは、第2の命令フォーマット
で記述される命令のうち、特に使用頻度の高い命令で構
成される。これにより、第3の命令フォーマットでは、
第2の命令フォーマットに比べて、オペレーション指定
フィールドが8ビットから例えば4ビットへと縮小され
て、並列実行させる2つの操作を1対のオペレーション
指定フィールド内に記述することが可能になる。従っ
て、第3の命令フォーマットでは、記述できる操作の種
類は限定されるものの、そのコードサイズは、第2の命
令フォーマットで命令を記述する場合に比べて小さくな
る。
【0084】図3において、第3の命令フォーマット
(a)は、4バイトで構成される命令フォーマットであ
って、第2の命令フィールドが4ビットの第1のオペレ
ーション指定フィールドと4ビットの第2のオペレーシ
ョンフィールドとから構成され、第3の命令フィールド
及び第4の命令フィールド内に4ビットのレジスタアド
レス指定フィールドを各々2フィールド含み、4つのオ
ペランドが指定可能な命令フォーマットである。
【0085】第3の命令フォーマット(b)は、4バイ
トで構成される命令フォーマットであって、第2の命令
フィールドが4ビットの第1のオペレーション指定フィ
ールドと4ビットの第2のオペレーションフィールドと
から構成され、第3の命令フィールドは4ビットのレジ
スタアドレス指定フィールドと4ビットの第1のオペレ
ーション指定フィールドとから構成され、第4の命令フ
ィールドは4ビットのレジスタアドレス指定フィールド
2つから構成され、3つのオペランドが指定可能な命令
フォーマットである。
【0086】第3の命令フォーマット(c)は、4バイ
トで構成される命令フォーマットであって、第2の命令
フィールドは4ビットの第1のオペレーション指定フィ
ールドと4ビットの第2のオペレーションフィールドと
から構成され、第3の命令フィールドは4ビットのレジ
スタアドレス指定フィールド2つから構成され、第4の
命令フィールドは4ビットのレジスタアドレス指定フィ
ールドと4ビットの第2のオペレーション指定フィール
ドとから構成され、3つのオペランドが指定可能な命令
フォーマットである。
【0087】第3の命令フォーマット(d)は、4バイ
トで構成される命令フォーマットであって、第2の命令
フィールドは4ビットの第1のオペレーション指定フィ
ールドと4ビットの第2のオペレーションフィールドと
から構成され、第3の命令フィールドは4ビットのレジ
スタアドレス指定フィールドと4ビットの第1のオペレ
ーション指定フィールドとから構成され、第4の命令フ
ィールドは4ビットのレジスタアドレス指定フィールド
と4ビットの第2のオペレーション指定フィールドとか
ら構成され、2つのオペランドが指定可能な命令フォー
マットである。
【0088】第3の命令フォーマット(e)は、4バイ
トで構成される命令フォーマットであって、第2の命令
フィールドは4ビットの第1のオペレーション指定フィ
ールドと4ビットの第2のオペレーションフィールドと
から構成され、第3の命令フィールドは4ビットのレジ
スタアドレス指定フィールド2つから構成され、第4の
命令フィールドは4ビットの第1のオペレーション指定
フィールドと4ビットの第2のオペレーション指定フィ
ールドとから構成され、2つのオペランドが指定可能な
命令フォーマットである。
【0089】ここで、第3の命令フォーマットの第2の
命令フィールドの第1のオペレーション指定フィールド
で指定される第1のユニットと、第2のオペレーション
指定フィールドで指定される第2のユニットとは、図2
に示した第2の命令フォーマット(a)で記述される命
令、又は第2の命令フォーマット(d)で示される命令の
即値のビット幅を4ビットに限定した第2の命令フォー
マットの命令から構成される。
【0090】従って、前記第3の命令フォーマットで
は、第1の命令フィールドは、第1から第4の命令フィ
ールドの4命令語長の可変長命令を特定する。
【0091】図4は、前記図3で示された個々のビット
割り付けについて具体的な命令のリストの一部を示した
ものである。左側に命令のニーモニックを、右側に命令
の動作を各々示している。ニーモニックの中で、Rm1、R
n1、Rm2又はRn2と示されたものは、レジスタアドレスの
指定を表すが、指定できるレジスタとしては、アドレス
レジスタA0〜A3、データレジスタD0〜D3、拡張
レジスタE0〜E7から構成される16個の汎用レジス
タである。また、imm4は4ビットの即値を示している。
更に、Rm1、Rn1は第2の命令フィールドの第1のオペレ
ーション指定フィールドで指定される第1のユニットで
使用され、Rm2、Rn2は第2の命令フィールドの第2のオ
ペレーション指定フィールドで指定される第2のユニッ
トで使用される。詳細は、以下の動作説明と共に説明す
る。
【0092】図5は、本発明における実施の形態のデー
タ処理装置の全体構成を示すブロック図である。
【0093】このデータ処理装置は、命令フェッチステ
ージ(IFステージ)、解読及びレジスタ読み出しステ
ージ(DECステージ)、実行ステージ(EXステー
ジ)、メモリアクセスステージ(MEMステージ)、レ
ジスタ書き込みステージ(WBステージ)の5つのステ
ージからなる5段パイプライン構造を成している。
【0094】図5において、101はプログラムを格納
する命令メモリ、102は前記命令メモリ101から前
記第1又は第2又は第3の命令フォーマットで特定され
る可変長命令を読み出す命令フェッチ部、103は命令
フェッチ部102を介して読み出された可変長命令を格
納する命令レジスタである。
【0095】110は、前記命令レジスタ103に格納
された可変長命令を受け、この可変長命令を解読する命
令解読器であって、以下の回路部を持つ。
【0096】即ち、命令解読器110内において、11
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のレジスタアドレス抽出部である。
【0097】116は命令レジスタ103に格納された
可変長命令を受け、命令解読を行い、演算部に供給する
制御信号を生成するオペレーション解読部、117は命
令型判定部111の判定結果に従って、レジスタアドレ
ス変換部113からの出力、第2のレジスタアドレス抽
出部114からの出力、又は第3のレジスタアドレス抽
出部115からの出力を選択的に出力する第1のレジス
タアドレスセレクタ、118は前記第2のレジスタアド
レス抽出部114からの出力、又は第3のレジスタアド
レス抽出部115からの出力を選択的に出力する第2の
レジスタアドレスセレクタである。尚、本実施の形態で
は、レジスタアドレス変換部113は、抽出されたレジ
スタアドレスを命令フォーマットの種類に拘わらず変換
しているが、命令型判定部111の判定動作が早期に終
了する場合には、第1の命令フォーマットであると判定
された命令の場合にのみアドレス変換を行うように構成
してもよいのは勿論である。
【0098】レジスタファイル(第2のレジスタファイ
ル)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で共用され
る。
【0099】131、132、134、135は、各
々、レジスタファイル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
レジスタである。
【0100】図6は、前記第2のレジスタファイル12
0を取り出して示したものである。更に、そのうちの汎
用レジスタ部分へのアクセスについてより詳細に示した
ものが図7及び図8である。
【0101】図7は、第1の命令フォーマットで定義さ
れた命令を実行する際に、命令の中で指定されるレジス
タ名と、レジスタアドレス指定フィールドで指定される
命令コード上でのビット割り付けと、物理的なレジスタ
にアクセスするための物理的なレジスタ番号、及び、ア
クセスする対象となる物理的なレジスタ名を一覧にして
示したものである。第1の命令フォーマットでは、レジ
スタ指定フィールドは2ビットしかないが、汎用レジス
タは16個で4ビットのアドレスでアクセスする必要が
ある関係から、アドレスの変換をする必要がある。例え
ば、アドレスレジスタA0をアクセスする際には、物理
的なアドレス番号として“1000”が、データレジス
タD1をアクセスする際には、物理的なアドレス番号と
して、“1101”を生成し、汎用レジスタファイル1
21に出力する必要がある。
【0102】図8は、第2の命令フォーマットで定義さ
れた命令を実行する際に、命令の中で指定されるレジス
タ名と、レジスタアドレス指定フィールドで指定される
命令コード上でのビット割り付けと、物理的なレジスタ
にアクセスするための物理的なレジスタ番号、及び、ア
クセスする対象となる物理的なレジスタ名を一覧にして
示したものである。第2の命令フォーマットでは、4ビ
ットのレジスタアドレス指定フィールドを有しているの
で、その4ビットをそのまま、物理的なレジスタ番号と
して指定することになる。
【0103】以上のように構成された本実施の形態のデ
ータ処理装置について、以下、図5から図8を用いて、
その動作を説明する。
【0104】図5の命令型判定部111に供給された命
令は第1の命令フィールドの特定のビットをデコードす
ることにより、その命令が第1の命令フォーマットか第
2の命令フォーマットか第3の命令フォーマットかを判
断し、各々のフォーマットに応じて、制御信号を生成す
る。この命令フォーマットの種類の識別を以下具体的に
説明する。
【0105】図24は命令フォーマットの具体例を示
す。同図において、第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の命令フォーマットでは、比較的多
い領域を用いて記述され且つさほど使用されない命令が
割り当てられる。
【0106】図24に示した可変長命令体系では、その
種類S0〜S6、D0〜D5、T0〜T4、Q0別に、第1バイトのビ
ットコードが同図に示すように割り当てられる。従っ
て、この第1バイトのビットコードを認識することによ
り、受けた命令のフォーマットが第1、第2又は第3の
命令フォーマットかを一意に識別することができる。
尚、本実施の形態では、第1バイトのビットコードのみ
で命令フォーマットの種類を識別するが、本発明はこれ
に限定されず、例えば第1バイトに加えて第2バイトの
第4ビット(下位ニブルの最上位ビット)等をも利用し
て識別したり、第1バイトの全体ではなくその一部で識
別したり、更には第1バイトに限らず、予め決めた所定
バイト目の全体又は一部で命令フォーマットの種類を識
別してもよい。
【0107】先ず、第1の命令フォーマットにおけるMO
V A0,D0 という命令を、実行する際のタイミングを含
めて説明する。この命令は、アドレスレジスタA0の内
容を読み出してデータレジスタD0に格納するというレ
ジスタ間転送の命令である。
【0108】<IFステージ>命令フェッチ部102が
命令メモリ101から命令を読み出して、命令レジスタ
103に格納する。
【0109】<DECステージ>命令型判定部111
は、命令レジスタ103に格納された命令を解読して、
この命令が第1の命令フォーマットによる命令であるこ
とを出力する。第1のレジスタアドレス抽出部112
は、ソースのレジスタアドレスとしてアドレスレジスタ
“00”を、格納先のアドレスとしてデータレジスタの
レジスタアドレス“00”を抽出する。レジスタアドレ
ス変換部113は、アドレスレジスタのアドレス“0
0”を4ビットのアドレス“1000”に、データレジ
スタのアドレス“00”を4ビットのアドレス“110
0”に変換する。第1のレジスタアドレスセレクタ11
7は、命令型判定部111からの制御信号に応じて、レ
ジスタアドレス変換部113から出力されるアドレスを
レジスタファイル120に出力する。オペレーション解
読部116は、アドレスレジスタA0からデータレジス
タD0へのレジスタ間転送命令であることを解読し、そ
の制御信号を生成する。
【0110】レジスタファイル120からは、ソースの
オペランドとして、物理アドレス“1000”に対応し
たアドレスレジスタA0の内容が読み出され、E0レジ
スタ131に格納される。
【0111】<EXステージ>E0レジスタ131に格
納されたデータが演算器133をスルーして、M0レジ
スタ141に格納される。
【0112】<MEMステージ>M0レジスタ141に
格納されたデータがデータメモリ143をスルーして、
W0レジスタ151に格納される。
【0113】<WBステージ>W0レジスタに格納され
たデータが、物理アドレス“1100”に対応したデー
タレジスタD0に書き込まれる。
【0114】以上説明したような動作により、第1の命
令フォーマットによる命令が実行可能となる。
【0115】続いて、第2の命令フォーマットにおける
MOV A0,E7 という命令を、実行する際のタイミングを
含めて説明する。この命令は、アドレスレジスタA0の
内容を読み出して拡張レジスタE7に格納するというレ
ジスタ間転送の命令である。
【0116】<IFステージ>命令フェッチ部102が
命令メモリ101から命令を読み出して、命令レジスタ
103に格納する。
【0117】<DECステージ>命令型判定部111
は、命令レジスタ103に格納された命令を解読して、
この命令が第2の命令フォーマットによる命令であるこ
とを出力する。第2のレジスタアドレス抽出部114
は、ソースのレジスタアドレスとして“1000”を、
格納先のアドレスとしてレジスタアドレス“0111”
を抽出する。第1のレジスタアドレスセレクタ117
は、命令型判定部111からの制御信号に応じて、第2
のレジスタアドレス抽出部114から出力されるアドレ
スをレジスタファイル120に出力する。オペレーショ
ン解読部116は、アドレスレジスタA0から拡張レジ
スタE7へのレジスタ間転送命令であることを解読し、
その制御信号を生成する。
【0118】レジスタファイル120からは、ソースの
オペランドとして、物理アドレス“1000”に対応し
たアドレスレジスタA0の内容が読み出され、E0レジ
スタ131に格納される。
【0119】<EXステージ>E0レジスタ131に格
納されたデータが演算器133をスルーして、M0レジ
スタ141に格納される。
【0120】<MEMステージ>M0レジスタ141に
格納されたデータがデータメモリ143をスルーして、
W0レジスタ151に格納される。
【0121】<WBステージ>W0レジスタに格納され
たデータが、物理アドレス“0111”に対応した拡張
レジスタE7に書き込まれる。
【0122】以上説明したような動作により、第2の命
令フォーマットによる命令が実行可能となる。
【0123】更に、第3の命令フォーマットにおける
MOV#MOV E5,E6,E4,E7 という命令を実行する際のタイミ
ングを含めて説明する。この命令は、拡張レジスタE5
の内容を読み出して拡張レジスタE6に格納し、同時に
拡張レジスタE4の内容を読み出して拡張レジスタE7
に格納するという並列レジスタ間転送命令である。
【0124】<IFステージ>命令フェッチ部102が
命令メモリ101から命令を読み出して、命令レジスタ
103に格納する。
【0125】<DECステージ>命令型判定部111
は、命令レジスタ103に格納された命令を解読して、
この命令が第3の命令フォーマットによる命令であるこ
とを出力する。
【0126】第3のレジスタアドレス抽出部115は、
第1の転送命令のソースのレジスタアドレスとして“0
101”と、格納先のアドレスとしてレジスタアドレス
“0110”とを抽出する。更に、第2の転送命令のソ
ースのレジスタアドレスとして“0100”と、格納先
のアドレスとしてレジスタアドレス“0111”とを抽
出する。
【0127】第1のレジスタアドレスセレクタ117
は、命令型判定部111からの制御信号に応じて、第3
のレジスタアドレス抽出部115から出力される第1の
アドレスをレジスタファイル120に出力する。更に、
レジスタアドレスセレクタ118は命令型判定部111
からの制御信号に応じて、第3のレジスタアドレス抽出
部115から出力される第2のアドレスをレジスタファ
イル120に出力する。
【0128】オペレーション解読部116は、拡張レジ
スタE5から拡張レジスタE6及び拡張レジスタE4か
ら拡張レジスタE7への並列レジスタ間転送のVLIW
命令であることを解読し、制御信号を生成する。
【0129】レジスタファイル120からは、第1のソ
ースのオペランドとして、物理アドレス“0101”に
対応した拡張レジスタE5の内容が読み出され、E0レ
ジスタ131に格納される。同時に、第2のソースのオ
ペランドとして、物理アドレス“0100”に対応した
拡張レジスタE4の内容が読み出され、E2レジスタ1
34に格納される。
【0130】<EXステージ>E0レジスタ131に格
納されたデータが演算器133をスルーしてM0レジス
タ141に格納され、同時に、E2レジスタ131に格
納されたデータが演算器136をスルーしてM1レジス
タ142に格納される。
【0131】<MEMステージ>M0レジスタ141に
格納されたデータがデータメモリ143をスルーしてW
0レジスタ151に格納され、同時にM1レジスタ14
2に格納されたデータがデータメモリ143をスルーし
てW1レジスタ152に格納される。
【0132】<WBステージ>W0レジスタ151に格
納されたデータが、物理アドレス“0110”に対応し
た拡張レジスタE6に書き込まれ、同時にW1レジスタ
152に格納されたデータが、物理アドレス“011
1”に対応した拡張レジスタE7に書き込まれる。
【0133】以上説明したような動作により、第3の命
令フォーマットによる命令が実行される。
【0134】これ等の説明により明確なように、本実施
の形態のデータ処理装置は、第1の命令フォーマットと
第2の命令フォーマットと更に第3の命令フォーマット
とで記述された各命令を、モード等の切り替えなく、何
れも実行可能であり、コードサイズ縮小に最適化された
命令セットに対して、その上位互換性を保持しながら、
使用できるレジスタ数を大幅に拡張したデータ処理装置
となっている。
【0135】次に、第1の命令フォーマットによる命令
と第2の命令フォーマットによる命令との使い方につい
て、例を上げて説明する。
【0136】図9にC言語で書かれたプログラムの短い
例を示す。変数aの内容を変数bの内容と加算して変数
aに格納し、変数cの内容を変数dの内容と加算して変
数cに格納するという簡単なものである。
【0137】このプログラムが第1の命令フォーマット
の命令にコンパイルされた結果の例を、図10、図11
及び図12に示す。
【0138】図10は、データレジスタに全ての変数が
割り当てられた場合の命令列であり、変数aをデータレ
ジスタD0に、変数bをデータレジスタD1に、変数c
をデータレジスタD2に、変数dをデータレジスタD3
に割り付けできた場合の命令列である。この場合は、2
つの加算命令で実現可能であるが、元々4個しかデータ
レジスタが存在しないため、全てがレジスタに割り付け
られることは難しい。
【0139】図11は、データメモリ上のスタック領域
に各変数が割り付けられた場合の命令列であり、変数a
を(SP+#4)に、変数bを(SP+#8)に、変数
cを(SP+#12)に、変数dを(SP+#16)に
割り付けできた場合の命令列である。この場合は、2つ
の加算命令に加えて、メモリレジスタ間でのデータ転送
命令(命令1、命令2、命令4、命令5、命令6、命令
8)が発生し、大きく処理性能を落とすことになる。
【0140】図12は、図11の場合に、加算に使用し
ているデータレジスタD0、データレジスタD1の内容
を退避、復帰するためのデータ転送命令(命令1、命令
2、命令11、命令12)が追加されたものであり、非
破壊レジスタしか使用できない場合は、このような命令
列になる。
【0141】これに対して、図13は、第2の命令フォ
ーマットを使用して、拡張レジスタに全ての変数を割り
付けた場合の命令列を示している。変数aを拡張レジス
タE0に、変数bを拡張レジスタE1に、変数cを拡張
レジスタE2に、変数dを拡張レジスタE3に割り付け
できた場合の命令列である。この場合は、2つの加算命
令で実現可能となる。拡張レジスタにも数量的な制限が
存在するために、常に拡張レジスタで十分なレジスタを
確保できるとは限らないが、使用可能なレジスタ数が大
きく増加することにより、レジスタ数が少ないためにメ
モリアクセスが頻発して性能を落とすことが少なくな
る。従って、信号処理のように多くのレジスタを必要と
するアプリケーションプログラムを短時間で実行しよう
とする場合には、拡張レジスタE0〜E7を追加すると
共に、第2の命令フォーマットの命令を使用することに
より、メモリとのアクセス回数を少なく制限できて、処
理性能の向上を図ることができる。
【0142】しかも、本実施の形態では、同一のレジス
タに対して、第1の命令フォーマットで指定するアドレ
スと、第2の命令フォーマットで指定するアドレスとが
異なっていても、第1の命令フォーマットで指定するア
ドレスを変換して、前記第2の命令フォーマットで指定
するアドレスに一致させたので、拡張レジスタを追加し
てレジスタ数を増加させた場合であっても、第1の命令
フォーマットを使用できて、完全な上位互換性を保持し
ながら、第2の命令フォーマットを使用できて、レジス
タの追加に柔軟に対応できるという顕著な効果も得られ
る。
【0143】次に、第3の命令フォーマットによる命令
の使い方について、例を挙げて説明する。
【0144】図14に第3の命令フォーマットの命令を
使用せずに記述したソフトモデム等のメディア処理に用
いられるFIRフィルタの主要部のプログラムを示す。
オペランド部の右に各々の命令のコードサイズを示して
いる。
【0145】命令1は第1の命令フォーマットのレジス
タ-メモリ間のハーフワード転送命令(ストア)を示
し、命令2は第2の命令フォーマットのハーフワードス
ワップ(入れ換え)命令を、命令3は第2の命令フォー
マットのレジスタ-メモリ間のハーフワード転送命令
(ストア)を示し、命令4は第2の命令フォーマットの
ハーフワード並列累積積和演算命令を、命令5は第2の
命令フォーマットの減算命令、命令6及び命令7は第2
の命令フォーマットのメモリ-レジスタ間の転送命令
(ロード)、命令8は第1の命令フォーマットの条件分
岐命令を各々示している。
【0146】以下、詳細にその動作タイミングについて
述べる。
【0147】命令1 MOVH D0,(#-6,A3) は、第1の命
令フォーマットにおける命令でデータレジスタD0の値
を、アドレスレジスタA3に格納されたアドレス値から
“6”を引いたメモリアドレスに格納するというレジス
タ-メモリ間転送(ストア)の命令である。
【0148】<IFステージ>命令フェッチ部102が
命令メモリ101から命令を読み出して、命令レジスタ
103に格納する。
【0149】<DECステージ>命令型判定部111
は、命令レジスタ103に格納された命令を解読して、
この命令が第1の命令フォーマットによる命令であるこ
とを出力する。第1のレジスタアドレス抽出部112
は、ソースのデータアドレスとして、データレジスタの
アドレス“00”とアドレスレジスタのアドレス”1
1”とを抽出する。レジスタアドレス変換部113は、
データレジスタのアドレス“00”を4ビットのアドレ
ス“1100”に、アドレスレジスタのアドレス“1
1”を4ビットのアドレス“1011”に変換する。
【0150】第1のレジスタアドレスセレクタ117
は、命令型判定部111からの制御信号に応じて、レジ
スタアドレス変換部113から出力されるデータレジス
タの4ビットのアドレス“1100”と、アドレスレジ
スタの4ビットのアドレス“1011”とを、レジスタ
ファイル120に出力する。
【0151】オペレーション解読部116は、データレ
ジスタD0の値を、アドレスレジスタA3に格納された
アドレス値から“6”を引いたメモリアドレスに格納す
るというレジスタ-メモリ間転送(ストア)の命令であ
ることを解読し、その制御信号を生成する。
【0152】レジスタファイル120からは、ソースの
オペランドとして、物理アドレス“1100”に対応し
たデータレジスタD0の内容が読み出され、その内容が
E0レジスタ131に格納されると共に、物理アドレス
“1011”に対応したアドレスレジスタA3の内容が
読み出され、その内容がE1レジスタ132に格納され
る。
【0153】<EXステージ>E0レジスタ131に格
納されたデータが演算器133をスルーして、M0レジ
スタ141に格納され、E1レジスタ132に格納され
たアドレスは、オペレーション解読部116からの制御
信号によって“6”だけ減算処理され、その演算結果を
データメモリ143のアドレス入力部に出力する。
【0154】<MEMステージ>M0レジスタ141に
格納されたデータが、演算器133の演算結果で得られ
たアドレス値のデータメモリ143に格納される。
【0155】<WBステージ>オペレーションはない。
【0156】命令2 SWHW E0,E2 は、第2の命令フォ
ーマットにおける命令で拡張レジスタE0の上位ハーフ
ワードと下位ハーフワードとを入れ換えたデータを拡張
レジスタE2に格納する命令である。
【0157】<IFステージ>命令フェッチ部102が
命令メモリ101から命令を読み出して、命令レジスタ
103に格納する。
【0158】<DECステージ>命令型判定部111
は、命令レジスタ103に格納された命令を解読して、
この命令が第2の命令フォーマットによる命令であるこ
とを出力する。第2のレジスタアドレス抽出部114
は、ソースのデータアドレスとして”0000”を、格
納先のアドレスとしてレジスタアドレス“0010”を
抽出する。
【0159】第1のレジスタアドレスセレクタ117
は、命令型判定部111からの制御信号に応じて、第2
のレジスタアドレス抽出部114から出力されるアドレ
スをレジスタファイル120に出力する。オペレーショ
ン解読部116は、拡張レジスタE0の上位ハーフワー
ドと下位ハーフワードを入れ換えたデータを拡張レジス
タE2に格納する命令であることを解読し、その制御信
号を生成する。
【0160】レジスタファイル120からは、ソースの
オペランドとして、物理アドレス“0000”に対応し
た拡張レジスタE0の内容が読み出され、この内容がE
0レジスタ131に格納される。
【0161】<EXステージ>E0レジスタ131に格
納されたデータを入力とし、演算器133はオペレーシ
ョン解読部116から供給される制御信号を元に、その
上位ハーフワードと下位ハーフワードとを入れ換えたデ
ータを生成し、その結果をM0レジスタ141に格納す
る。
【0162】<MEMステージ>M0レジスタ141に
格納されたデータがデータメモリ143をスルーし、W
0レジスタ151に格納される。
【0163】<WBステージ>W0レジスタ151に格
納されたデータが読み出され、このデータが、レジスタ
ファイル120の第2のレジスタアドレス抽出部112
が出力する格納先アドレス”0010”に格納される。
【0164】命令3 MOVH E2,(#-4,A3) は、第2の命
令フォーマットにおける命令で拡張レジスタE2の値
を、アドレスレジスタA3に格納されたアドレス値から
“4”を引いたメモリアドレスに格納するというレジス
タ-メモリ間転送(ストア)の命令である。
【0165】<IFステージ>命令フェッチ部102が
命令メモリ101から命令を読み出して、命令レジスタ
103に格納する。
【0166】<DECステージ>命令型判定部111
は、命令レジスタ103に格納された命令を解読して、
この命令が第2の命令フォーマットによる命令であるこ
とを出力する。第1のレジスタアドレス抽出部112
は、ソースのデータアドレスとしてアドレスレジスタの
アドレス”11”を抽出する。第2のレジスタアドレス
抽出部114は、ソースのデータアドレスとして拡張レ
ジスタのアドレス”0010”を抽出する。レジスタア
ドレス変換部113は、アドレスレジスタのアドレス
“11”を4ビットのアドレス“1011”に変換す
る。
【0167】第1のレジスタアドレスセレクタ117
は、命令型判定部111からの制御信号に応じて、レジ
スタアドレス変換部113から出力されるアドレスレジ
スタの4ビットのアドレス“1011”と、拡張レジス
タの4ビットのアドレス“0010”とを、レジスタフ
ァイル120に出力する。
【0168】オペレーション解読部116は、拡張レジ
スタE2の値を、アドレスレジスタA3に格納されたア
ドレス値から“4”を引いたメモリアドレスに格納する
というレジスタ-メモリ間転送(ストア)の命令である
ことを解読し、その制御信号を生成する。
【0169】レジスタファイル120からは、ソースの
オペランドとして、物理アドレス“0010”に対応し
た拡張レジスタE2の内容が読み出され、その内容がE
0レジスタ131に格納されると共に、物理アドレス
“1011”に対応したアドレスレジスタA3の内容が
読み出され、その内容がE1レジスタ132に格納され
る。
【0170】<EXステージ>E0レジスタ131に格
納されたデータが演算器133をスルーして、M0レジ
スタ141に格納され、E1レジスタ132に格納され
たアドレスは、オペレーション解読部116からの制御
信号によって“4”だけ減算処理され、その演算結果を
データメモリ143のアドレス入力部に出力する。
【0171】<MEMステージ>M0レジスタ141に
格納されたデータが、演算器133の演算結果で得られ
たアドレス値のデータメモリ143に格納される。
【0172】<WBステージ>オペレーションはない。
【0173】命令4 DMACH E6,E1 は、第2の命令フ
ォーマットにおける命令で拡張レジスタE6の上位ハー
フワードと拡張レジスタE1の上位ハーフワードとの乗
算結果と、拡張レジスタE6の下位ハーフワードと拡張
レジスタE1の下位ハーフワードとの乗算結果とを加算
し、その加算結果を拡張レジスタE1に累算する演算命
令である。
【0174】<IFステージ>命令フェッチ部102が
命令メモリ101から命令を読み出して、命令レジスタ
103に格納する。
【0175】<DECステージ>命令型判定部111
は、命令レジスタ103に格納された命令を解読して、
この命令が第2の命令フォーマットによる命令であるこ
とを出力する。第2のレジスタアドレス抽出部114
は、ソースのデータアドレスとして”0110”を、格
納先のアドレスとしてレジスタアドレス“0001”を
抽出する。
【0176】第1のレジスタアドレスセレクタ117
は、命令型判定部111からの制御信号に応じて、第2
のレジスタアドレス抽出部114から出力されるアドレ
スをレジスタファイル120に出力する。オペレーショ
ン解読部116は、拡張レジスタE6の上位ハーフワー
ドと拡張レジスタE1の上位ハーフワードとの乗算結果
と、拡張レジスタE6の下位ハーフワードと拡張レジス
タE1の下位ハーフワードとの乗算結果とを加算し、そ
の加算結果を拡張レジスタE1に累算する演算命令であ
ることを解読し、その制御信号を生成する。
【0177】レジスタファイル120からは、ソースの
オペランドとして物理アドレス“0110”に対応した
拡張レジスタE6の内容が読み出され、その内容がE0
レジスタ131に格納され、ソースのオペランドとして
物理アドレス”0001”に対応した拡張レジスタE1
の内容が読み出される。
【0178】<EXステージ>演算器133において、
E0レジスタ131に格納されたデータの上位ハーフワ
ードとE1レジスタ132に格納されたデータの上位ハ
ーフワードとが抽出され、これ等の乗算が実行され、同
時に、E0レジスタ131に格納されたデータの下位ハ
ーフワードとE1レジスタ132に格納されたデータの
下位ハーフワードとが抽出され、これ等の乗算が実行さ
れ、この2つの乗算結果とE1レジスタ132に格納さ
れたデータとの加算が実行され、その加算結果がM0レ
ジスタ141に格納される。
【0179】<MEMステージ>M0レジスタ141に
格納されたデータがデータメモリ143をスルーし、W
0レジスタ151に格納される。
【0180】<WBステージ>W0レジスタ151に格
納されたデータが読み出され、このデータが、レジスタ
ファイル120の第2のレジスタアドレス抽出部114
が出力する格納先アドレス”0001”に格納される。
【0181】命令5 SUB 1,E3 は、第2の命令フォー
マットにおける命令で拡張レジスタE3に格納された値
から“1”の減算を実行し、その演算結果を拡張レジス
タE3に格納する演算命令である。
【0182】<IFステージ>命令フェッチ部102が
命令メモリ101から命令を読み出して、命令レジスタ
103に格納する。
【0183】<DECステージ>命令型判定部111
は、命令レジスタ103に格納された命令を解読して、
この命令が第2の命令フォーマットによる命令であるこ
とを出力する。第2のレジスタアドレス抽出部114
は、ソースのデータアドレスとして”0011”を、格
納先のアドレスとしてレジスタアドレス“0011”を
抽出する。
【0184】第1のレジスタアドレスセレクタ117
は、命令型判定部111からの制御信号に応じて、第2
のレジスタアドレス抽出部114から出力されるアドレ
スをレジスタファイル120に出力する。オペレーショ
ン解読部116は、拡張レジスタE3から“1”だけ減
算する演算命令であることを解読し、その制御信号を生
成する。
【0185】レジスタファイル120からは、ソースの
オペランドとして、物理アドレス“0011”に対応し
た拡張レジスタE3の内容が読み出され、その内容がE
0レジスタ131に格納される。
【0186】<EXステージ>演算器133において、
E0レジスタ131に格納されたデータが読み出され、
“1”の減算が実行され、その結果がM0レジスタ14
1に格納される。
【0187】<MEMステージ>M0レジスタ141に
格納されたデータがデータメモリ143をスルーし、W
0レジスタ151に格納される。
【0188】<WBステージ>W0レジスタ151に格
納されたデータが読み出され、このデータが、レジスタ
ファイル120の第2のレジスタアドレス抽出部114
が出力する格納先アドレス”0011”に格納される。
【0189】命令6 MOV (#4,E4+),E6 は、第2の命令
フォーマットにおける命令で拡張レジスタE4で示され
るメモリアドレスからデータを読み出し、このデータを
拡張レジスタE6に格納し、データ格納後、拡張レジス
タE4の値を“4”だけ加算するポストインクリメント
メモリ-レジスタ間転送命令である。
【0190】<IFステージ>命令フェッチ部102が
命令メモリ101から命令を読み出して、命令レジスタ
103に格納する。
【0191】<DECステージ>命令型判定部111
は、命令レジスタ103に格納された命令を解読して、
この命令が第2の命令フォーマットによる命令であるこ
とを出力する。第2のレジスタアドレス抽出部114
は、ソースのデータアドレスとして”0100”を、格
納先のアドレスとしてレジスタアドレス“0110”を
抽出する。
【0192】第1のレジスタアドレスセレクタ117
は、命令型判定部111からの制御信号に応じて、第2
のレジスタアドレス抽出部114から出力されるアドレ
スをレジスタファイル120に出力する。オペレーショ
ン解読部116は、拡張レジスタE4で示されるメモリ
アドレスからデータを読み出し、このデータを拡張レジ
スタE6に格納し、データ格納後、拡張レジスタE4の
値を“4”だけ加算するポストインクリメントメモリ-
レジスタ間転送命令であることを解読し、その制御信号
を生成する。
【0193】レジスタファイル120からは、ソースの
オペランドとして物理アドレス”0100”に対応した
拡張レジスタE4の内容が読み出され、この内容がE0
レジスタ131に格納される。
【0194】<EXステージ>演算器133において、
E0レジスタ131に格納されたデータが読み出され、
このデータをオペレーション解読部116からの制御信
号によってデータメモリ143のアドレス入力部に出力
する。また、“4”の加算を実行し、その結果がM0レ
ジスタ141に格納される。
【0195】<MEMステージ>M0レジスタ141に
格納されたデータがデータメモリ143をスルーし、W
0レジスタ151に格納される。また、オペレーション
解読部116からの制御信号により、指定されるメモリ
アドレスのデータメモリ143からデータを読み出し、
W0レジスタ151に格納する。
【0196】<WBステージ>W0レジスタ151に格
納されたデータが読み出され、このデータが、レジスタ
ファイル120の第2のレジスタアドレス抽出部114
が出力する格納先アドレス”0110”に格納される。
【0197】命令7 MOV (#4,E5+),E1 は、第2の命
令フォーマットにおける命令で拡張レジスタE5で示さ
れるメモリアドレスからデータを読み出して、拡張レジ
スタE1に格納し、データ格納後、拡張レジスタE5の
値を“4”だけ加算するポストインクリメントメモリ-
レジスタ間転送命令である。
【0198】<IFステージ>命令フェッチ部102が
命令メモリ101から命令を読み出して、命令レジスタ
103に格納する。
【0199】<DECステージ>命令型判定部111
は、命令レジスタ103に格納された命令を解読して、
この命令が第2の命令フォーマットによる命令であるこ
とを出力する。第2のレジスタアドレス抽出部114
は、ソースのデータアドレスとして”0101”を、格
納先のアドレスとしてレジスタアドレス“0001”を
抽出する。
【0200】第1のレジスタアドレスセレクタ117
は、命令型判定部111からの制御信号に応じて、第2
のレジスタアドレス抽出部114から出力されるアドレ
スをレジスタファイル120に出力する。オペレーショ
ン解読部116は、拡張レジスタE5で示されるメモリ
アドレスからデータを読み出し、このデータを拡張レジ
スタE1に格納し、このデータ格納後、拡張レジスタE
5の値を“4”だけ加算するポストインクリメントメモ
リ-レジスタ間転送命令であることを解読し、その制御
信号を生成する。
【0201】レジスタファイル120からは、ソースの
オペランドとして物理アドレス”0101”に対応した
拡張レジスタE5の内容が読み出され、この内容がE0
レジスタ131に格納される。
【0202】<EXステージ>演算器133において、
E0レジスタ131に格納されたデータが読み出され、
このデータが、オペレーション解読部116からの制御
信号によってデータメモリ143のアドレス入力部に出
力される。また、“4”の加算を実行し、その結果がM
0レジスタ141に格納される。
【0203】<MEMステージ>M0レジスタ141に
格納されたデータがデータメモリ143をスルーし、W
0レジスタ151に格納される。また、オペレーション
解読部116からの制御信号によって、指定されるメモ
リアドレスのデータメモリ143からデータを読み出
し、このデータをW0レジスタ151に格納する。
【0204】<WBステージ>W0レジスタ151に格
納されたデータが読み出され、このデータは、レジスタ
ファイル120の第2のレジスタアドレス抽出部114
が出力する格納先アドレス”0001”に格納される。
【0205】命令8 LGE は、第1の命令フォーマット
における命令で前記命令4で実行された減算命令の結果
が“0”以上の値の場合には、前記命令1の前に示され
るLOOP番地にプログラムカウンタ124の値を変更し、
ループ命令を実行する命令である。
【0206】<IFステージ>命令フェッチ部102が
命令メモリ101から命令を読み出して、命令レジスタ
103に格納する。
【0207】<DECステージ>命令型判定部111
は、命令レジスタ103に格納された命令を解読して、
この命令が第1の命令フォーマットによる命令であるこ
とを出力する。オペレーション解読部116はループ命
令であることを解読し、その制御信号を生成する。
【0208】オペレーション制御部116から出力され
る制御信号に基づいてレジスタファイル120内のプロ
グラムカウンタ124の値がE0レジスタ131に格納
される。
【0209】<EXステージ>演算器133において、
E0レジスタ131に格納されたデータが読み出され、
オペレーション解読部116から出力される制御信号に
基づいて、ループの飛び先アドレス値がM0レジスタ1
41に格納される。
【0210】<MEMステージ>M0レジスタ141に
格納されたデータがデータメモリ143をスルーし、W
0レジスタ151に格納される。
【0211】<WBステージ>W0レジスタ151に格
納されたデータが、レジスタファイル120内のプログ
ラムカウンタ124に格納される。
【0212】以上、図14で示した命令において、命令
3及び命令5は4バイト命令、命令1、命令2、命令
4、命令6及び命令7は3バイト命令、命令8は1バイ
ト命令である。図14で示した命令はトータルで24バ
イトのコードサイズとなっている。
【0213】図15は、前記図14に示した命令を第3
の命令フォーマットを用いて書き換えた命令を示してい
る。図14の命令4及び命令5をマージして命令4”DM
ACH#SUB”に、図14の命令7及び命令8をマージして
命令6”MOV#LGE”に各々置き換えている。
【0214】図15で示した命令は、各々、命令1は第
1の命令フォーマットのメモリへのハーフワード転送命
令を示し、命令2は第2の命令フォーマットのハーフワ
ードスワップ(入れ換え)命令を、命令3は第2の命令
フォーマットのメモリへのハーフワード転送命令を示
し、命令4はハーフワード並列積和演算命令及び即値減
算命令の並列実行命令を、命令5は第2の命令フォーマ
ットのメモリからの転送命令を、命令6はメモリからの
データ転送及びと条件分岐の並列実行命令を示してい
る。
【0215】以下、詳細にその動作タイミングについて
述べる。
【0216】命令1 MOVH D0,(#-6,A3) は、第1の命
令フォーマットにおける命令でデータレジスタD0の値
を、アドレスレジスタA3に格納されたアドレス値から
“6”を引いたメモリアドレスに格納するというレジス
タ-メモリ間転送(ストア)の命令である。
【0217】<IFステージ>命令フェッチ部102が
命令メモリ101から命令を読み出して、命令レジスタ
103に格納する。
【0218】<DECステージ>命令型判定部111
は、命令レジスタ103に格納された命令を解読して、
この命令が第1の命令フォーマットによる命令であるこ
とを出力する。第1のレジスタアドレス抽出部112
は、ソースのデータアドレスとしてデータレジスタのア
ドレス“00”とアドレスレジスタのアドレス”11”
とを抽出する。レジスタアドレス変換部113は、デー
タレジスタのアドレス“00”を4ビットのアドレス
“1100”に、アドレスレジスタのアドレス“11”
を4ビットのアドレス“1011”に各々変換する。
【0219】第1のレジスタアドレスセレクタ117
は、命令型判定部111からの制御信号に応じて、レジ
スタアドレス変換部113から出力されるデータレジス
タの4ビットのアドレス“1100”と、アドレスレジ
スタの4ビットのアドレス“1011”とを、レジスタ
ファイル120に出力する。
【0220】オペレーション解読部116は、データレ
ジスタD0の値を、アドレスレジスタA3に格納された
アドレス値から“6”を引いたメモリアドレスに格納す
るというレジスタ-メモリ間転送(ストア)の命令であ
ることを解読し、その制御信号を生成する。
【0221】レジスタファイル120からは、ソースの
オペランドとして、物理アドレス“1100”に対応し
たデータレジスタD0の内容が読み出され、その内容が
E0レジスタ131に格納され、物理アドレス“101
1”に対応したアドレスレジスタA3の内容が読み出さ
れ、その内容がE1レジスタ132に格納される。
【0222】<EXステージ>E0レジスタ131に格
納されたデータが演算器133をスルーして、Mレジス
タ141に格納され、E1レジスタ132に格納された
アドレスは、オペレーション解読部116からの制御信
号によって“6”だけ減算処理され、その演算結果をデ
ータメモリ143のアドレス入力部に出力する。
【0223】<MEMステージ>M0レジスタ141に
格納されたデータが、演算器133の演算結果で得られ
たアドレス値のデータメモリ143に格納される。
【0224】<WBステージ>オペレーションはない。
【0225】命令2 SWHW E0,E2 は、第2の命令フォ
ーマットにおける命令で拡張レジスタE0の上位ハーフ
ワードと下位ハーフワードとを入れ換えたデータを拡張
レジスタE2に格納する命令である。
【0226】<IFステージ>命令フェッチ部102が
命令メモリ101から命令を読み出して、命令レジスタ
103に格納する。
【0227】<DECステージ>命令型判定部111
は、命令レジスタ103に格納された命令を解読して、
この命令が第2の命令フォーマットによる命令であるこ
とを出力する。第2のレジスタアドレス抽出部114
は、ソースのデータアドレスとして”0000”を、格
納先のアドレスとしてレジスタアドレス“0010”を
抽出する。
【0228】第1のレジスタアドレスセレクタ117
は、命令型判定部111からの制御信号に応じて、第2
のレジスタアドレス抽出部114から出力されるアドレ
スをレジスタファイル120に出力する。オペレーショ
ン解読部116は、拡張レジスタE0の上位ハーフワー
ドと下位ハーフワードとを入れ換えたデータを拡張レジ
スタE2に格納する命令であることを解読し、その制御
信号を生成する。
【0229】レジスタファイル120からは、ソースの
オペランドとして、物理アドレス“0000”に対応し
た拡張レジスタE0の内容が読み出され、その内容がE
0レジスタ131に格納される。
【0230】<EXステージ>演算器133は、E0レ
ジスタ131に格納されたデータを入力とし、演算器1
33はオペレーション解読部116から供給される制御
信号を元に、その上位ハーフワードと下位ハーフワード
とを入れ換えたデータを生成し、その結果をM0レジス
タ141に格納する。
【0231】<MEMステージ>M0レジスタ141に
格納されたデータがデータメモリ143をスルーし、W
0レジスタ151に格納される。
【0232】<WBステージ>W0レジスタ151に格
納されたデータが読み出され、このデータがレジスタフ
ァイル120の第2のレジスタアドレス抽出部114が
出力する格納先アドレス”0010”に格納される。
【0233】命令3 MOVH E2,(#-4,A3) は、第2の命
令フォーマットにおける命令で拡張レジスタE2の値
を、アドレスレジスタA3に格納されたアドレス値から
“4”を引いたメモリアドレスに格納するというレジス
タ->メモリ間転送(ストア)の命令である。
【0234】<IFステージ>命令フェッチ部102が
命令メモリ101から命令を読み出して、命令レジスタ
103に格納する。
【0235】<DECステージ>命令型判定部111
は、命令レジスタ103に格納された命令を解読して、
この命令が第2の命令フォーマットによる命令であるこ
とを出力する。第1のレジスタアドレス抽出部112
は、ソースのデータアドレスとしてアドレスレジスタの
アドレス”11”を抽出する。第2のレジスタアドレス
抽出部114は、ソースのデータアドレスとして拡張レ
ジスタのアドレス”0010”を抽出する。レジスタア
ドレス変換部113は、アドレスレジスタのアドレス
“11”を4ビットのアドレス“1011”に変換す
る。
【0236】第1のレジスタアドレスセレクタ117
は、命令型判定部111からの制御信号に応じて、レジ
スタアドレス変換部113から出力されるアドレスレジ
スタの4ビットのアドレス“1011”と、拡張レジス
タの4ビットのアドレス“0010”とを、レジスタフ
ァイル120に出力する。
【0237】オペレーション解読部116は、拡張レジ
スタE2の値を、アドレスレジスタA3に格納されたア
ドレス値から“4”を引いたメモリアドレスに格納する
というレジスタ-メモリ間転送(ストア)の命令である
ことを解読し、その制御信号を生成する。
【0238】レジスタファイル120からは、ソースの
オペランドとして、物理アドレス“0010”に対応し
た拡張レジスタE2の内容が読み出され、その内容がE
0レジスタ131に格納され、物理アドレス“101
1”に対応したアドレスレジスタA3の内容が読み出さ
れ、その内容がE1レジスタ132に格納される。
【0239】<EXステージ>E0レジスタ131に格
納されたデータが演算器133をスルーして、M0レジ
スタ141に格納され、E1レジスタ132に格納され
たアドレスは、オペレーション解読部116からの制御
信号によって“4”だけ減算処理され、その演算結果を
データメモリ143のアドレス入力部に出力する。
【0240】<MEMステージ>M0レジスタ141に
格納されたデータが、演算器133の演算結果で得られ
たアドレス値のデータメモリ143に格納される。
【0241】<WBステージ>オペレーションはない。
【0242】命令4 DMACH#SUB E6,E1,1,E3 は、第3の
命令フォーマットにおける命令で拡張レジスタE6の上
位ハーフワードと拡張レジスタE1の上位ハーフワード
との乗算結果と、拡張レジスタE6の下位ハーフワード
と拡張レジスタE1の下位ハーフワードとの乗算結果と
を加算し、その加算結果を拡張レジスタE1に累算する
ユニットと、拡張レジスタE3から“1”だけ減算する
ユニットとから構成され、これ等のユニットを並列に実
行する命令である。
【0243】<IFステージ>命令フェッチ部102が
命令メモリ101から命令を読み出して、命令レジスタ
103に格納する。
【0244】<DECステージ>命令型判定部111
は、命令レジスタ103に格納された命令を解読して、
この命令が第3の命令フォーマットによる命令であるこ
とを出力する。第2のレジスタアドレス抽出部114
は、ソースのデータアドレスとして”0110”を、格
納先のアドレスとしてレジスタアドレス“0001”を
抽出する。また、第3のレジスタアドレス抽出部115
は、ソース及び格納先のデータアドレスとして、”00
11”を抽出する。
【0245】第1のレジスタアドレスセレクタ117
は、命令型判定部111からの制御信号に応じて、第2
のレジスタアドレス抽出部114から出力されるアドレ
スをレジスタファイル120に出力する。オペレーショ
ン解読部116は、拡張レジスタE0の上位ハーフワー
ドと拡張レジスタE1の上位ハーフワードとの乗算結果
と、拡張レジスタE6の下位ハーフワードと拡張レジス
タE1の下位ハーフワードとの乗算結果とを加算し、そ
の加算結果を拡張レジスタE1に累算する演算命令であ
ることを解読し、その制御信号を生成する。
【0246】レジスタファイル120からは、ソースの
オペランドとして、物理アドレス“0110”に対応し
た拡張レジスタE6の内容が読み出され、その内容がE
0レジスタ131に格納され、ソースのオペランドとし
て、物理アドレス”0001”に対応した拡張レジスタ
E1の内容がE1レジスタ132に読み出される。ま
た、並行して、レジスタファイル120からは、ソース
のオペランドとして、物理アドレス”0011”に対応
した拡張レジスタE3の値がE2レジスタ134に読み
出される。
【0247】<EXステージ>演算器133において、
E0レジスタ131に格納されたデータの上位ハーフワ
ードとE1レジスタ132に格納されたデータの上位ハ
ーフワードとが抽出され、それ等の乗算が実行され、同
時に、E0レジスタ131に格納されたデータの下位ハ
ーフワードとE1レジスタ132に格納されたデータの
下位ハーフワードとが抽出され、それ等の乗算が実行さ
れ、この2つの乗算結果と、E1レジスタ132に格納
されたデータとの加算が実行され、その結果がM0レジ
スタ141に格納される。また、並行して、E2レジス
タ134に格納されたデータから、“1”の減算を実行
し、その減算結果をM1レジスタ142に格納する。
【0248】<MEMステージ>M0レジスタ141に
格納されたデータがデータメモリ143をスルーし、W
0レジスタ151に格納されると共に、M1レジスタ1
42に格納されたデータがデータメモリ143をスルー
し、W1レジスタに格納される。
【0249】<WBステージ>W0レジスタ151に格
納されたデータが読み出され、このデータが、レジスタ
ファイル120の第2のレジスタアドレス抽出部114
が出力する格納先アドレス”0001”に格納され、こ
れに並行して、W1レジスタ152に格納されたデータ
が読み出され、このデータが、レジスタファイル120
の第3のレジスタアドレス抽出部115が出力する格納
先アドレス”0011”に格納される。
【0250】命令5 MOV (#4,E4+),E6 は、第2の命令
フォーマットにおける命令で拡張レジスタE4で示され
るメモリアドレスからデータを読み出し、このデータを
拡張レジスタE6に格納し、データ格納後、拡張レジス
タE4の値を“4”だけ加算するポストインクリメント
メモリ-レジスタ間転送命令である。
【0251】<IFステージ>命令フェッチ部102が
命令メモリ101から命令を読み出して、命令レジスタ
103に格納する。
【0252】<DECステージ>命令型判定部111
は、命令レジスタ103に格納された命令を解読して、
この命令が第2の命令フォーマットによる命令であるこ
とを出力する。第2のレジスタアドレス抽出部114
は、ソースのデータアドレスとして”0100”を、格
納先のアドレスとしてレジスタアドレス“0110”を
抽出する。
【0253】第1のレジスタアドレスセレクタ117
は、命令型判定部111からの制御信号に応じて、第2
のレジスタアドレス抽出部114から出力されるアドレ
スをレジスタファイル120に出力する。オペレーショ
ン解読部116は、拡張レジスタE4で示されるメモリ
アドレスからデータを読み出し、このデータを拡張レジ
スタE6に格納し、データ格納後、拡張レジスタE4の
値を“4”だけ加算するポストインクリメントメモリ-
レジスタ間転送命令であることを解読し、その制御信号
を生成する。
【0254】レジスタファイル120からは、ソースの
オペランドとして、物理アドレス”0100”に対応し
た拡張レジスタE4の内容が読み出され、その内容がE
0レジスタ131に格納される。
【0255】<EXステージ>演算器133において、
E0レジスタ131に格納されたデータが読み出され、
このデータを、オペレーション解読部116からの制御
信号によってデータメモリ143のアドレス入力部に出
力する。また、“4”の加算を実行し、その結果がM0
レジスタ141に格納される。
【0256】<MEMステージ>M0レジスタ141に
格納されたデータがデータメモリ143をスルーし、W
0レジスタ151に格納される。また、オペレーション
解読部116からの制御信号によって、指定されるメモ
リアドレスのデータメモリ143からデータを読み出
し、このデータをW0レジスタ151に格納する。
【0257】<WBステージ>W0レジスタ151に格
納されたデータが読み出され、レジスタファイル120
の第2のレジスタアドレス抽出部114が出力する格納
先アドレス”0110”に格納される。
【0258】命令6 MOV#LGE (#4,E5+),E1 は、第3の
命令フォーマットにおける命令で拡張レジスタE5で示
されるメモリアドレスからデータを読み出し、このデー
タを拡張レジスタE1に格納し、データ格納後、拡張レ
ジスタE5の値を“4”だけ加算するポストインクリメ
ントメモリ-レジスタ間転送命令であるユニットと、前
記命令4で実行された減算命令の結果が“0”以上の値
の場合には、前記命令1の前に示されるLOOP番地にプロ
グラムカウンタ124の値を変更するループ命令である
ユニットとを並列に実行する命令である。
【0259】<IFステージ>命令フェッチ部102が
命令メモリ101から命令を読み出して、命令レジスタ
103に格納する。
【0260】<DECステージ>命令型判定部111
は、命令レジスタ103に格納された命令を解読して、
この命令が第3の命令フォーマットによる命令であるこ
とを出力する。第2のレジスタアドレス抽出部114
は、ソースのデータアドレスとして”0101”を、格
納先のアドレスとしてレジスタアドレス“0001”を
抽出する。
【0261】第1のレジスタアドレスセレクタ117
は、命令型判定部111からの制御信号に応じて、第2
のレジスタアドレス抽出部114から出力されるアドレ
スをレジスタファイル120に出力する。オペレーショ
ン解読部116は、拡張レジスタE5で示されるメモリ
アドレスからデータを読み出し、このデータを拡張レジ
スタE1に格納し、データ格納後、拡張レジスタE5の
値を“4”だけ加算するポストインクリメントメモリ-
レジスタ間転送命令であることを解読し、その制御信号
を生成する。
【0262】レジスタファイル120からは、ソースの
オペランドとして、物理アドレス”0101”に対応し
た拡張レジスタE5の内容が読み出され、この内容がE
0レジスタ131に格納される。
【0263】更に、オペレーション解読部116は、も
う一方のユニットがループ命令であることを解読し、そ
の制御信号を生成する。
【0264】オペレーション制御部116から出力され
る制御信号に基づいて、レジスタファイル120内のプ
ログラムカウンタ124の値がE2レジスタ134に格
納される。
【0265】<EXステージ>演算器133において、
E0レジスタ131に格納されたデータが読み出され、
このデータを、オペレーション解読部116からの制御
信号によってデータメモリ143のアドレス入力部に出
力する。また、“4”の加算を実行し、その結果がM0
レジスタ141に格納される。
【0266】演算器136において、E2レジスタ13
4に格納されたデータが読み出され、オペレーション解
読部116から出力される制御信号に基づいてループの
飛び先アドレス値がM1レジスタ142に格納される。
【0267】<MEMステージ>M0レジスタ141に
格納されたデータがデータメモリ143をスルーし、W
0レジスタ151に格納される。また、オペレーション
解読部116からの制御信号によって、指定されるメモ
リアドレスのデータメモリ143からデータを読み出
し、このデータをW0レジスタ151に格納する。
【0268】M1レジスタ142に格納されたデータが
データメモリ143をスルーし、W1レジスタ152に
格納される。
【0269】<WBステージ>W0レジスタ151に格
納されたデータが読み出され、このデータが、レジスタ
ファイル120の第2のレジスタアドレス抽出部114
が出力する格納先アドレス”0001”に格納される。
【0270】W1レジスタ152に格納されたデータ
は、レジスタファイル120内のプログラムカウンタ1
24に格納される。
【0271】図15で示した命令において、命令3及び
命令5は4バイト命令、命令1及び命令2は3バイト命
令、命令4は4バイト命令、命令6は4バイト命令を示
している。図15で示した命令はトータルで22バイト
のコードサイズとなっている。
【0272】このように、本実施の形態で示した第3の
命令フォーマットを持つ命令により、コードサイズが2
4バイトから22バイトへとコードサイズの縮小を図れ
ることが示された。更には、図14から図15へ命令を
変更することにより、命令の数も8命令から6命令に削
減でき、実行性能の向上も実現されることが示されてい
る。
【0273】尚、本発明は、以上で説明した実施の形態
のデータ処理装置に限られないことは勿論である。例え
ば、本実施の形態では、アドレスレジスタ及びデータレ
ジスタを拡張したが、汎用レジスタを拡張してもよい。
また、本実施の形態では、アドレスレジスタを4個、デ
ータレジスタを4個、拡張レジスタを8個として説明し
たが、レジスタの個数は何個でもよい。更に、本実施の
形態では、第1の命令フォーマットで第1のレジスタフ
ァイル220を指定し、第2の命令フォーマットで第1
のレジスタファイル220を含んだ第2のレジスタファ
イル120を指定したが、本発明はこれに限定されず、
第2のレジスタファイルのレジスタ数を第1のレジスタ
ファイルのレジスタ数よりも多くし、第2の命令フォー
マットでこの第2のレジスタファイルのみを指定し、第
1のレジスタファイルは指定しない構成としても良い。
【0274】また、第3の命令フォーマットとして、2
つのユニットを並列実行する命令のフォーマットを採用
したが、2つのユニットに限定されず、3つ以上のユニ
ットを並列実行する命令のフォーマットとしてもよいの
は勿論である。
【0275】
【発明の効果】以上説明したように、請求項1ないし請
求項26記載の発明によれば、第1の命令フォーマット
と、この命令フォーマットよりも多数のレジスタを指定
できる第2の命令フォーマットとを使用し、これ等の命
令フォーマットを用いた命令を混在させつつ、その命令
のフォーマットの種類を自己の命令自身で識別し、解読
して、実行するので、従来のモード設定信号等を出力す
る特別の命令を用いる必要をなくして、プログラムサイ
ズを有効に小さくしつつ、1つの命令で多数のレジスタ
を用いた動作を実行できて、信号処理等のデータ処理の
処理速度を高速化できる。
【0276】更に、請求項16ないし請求項21記載の
発明によれば、複数の操作を記述する第3の命令フォー
マットを用意したので、1つの命令で複数の操作を並列
に実行でき、データ処理を一層高速化できると共に、プ
ログラムサイズの更なる縮小が実現できる。
【0277】加えて、請求項12及び請求項22記載の
発明によれば、同一レジスタに対する命令コード上のビ
ット割付けが、第1及び第2命令フォーマット間で異な
る場合であっても、アドレス変換により、同一レジスタ
のアドレスが同一にされるので、一方の命令フォーマッ
トの命令セットをそのまま使用できる上位互換性が得ら
れる。
【図面の簡単な説明】
【図1】本発明の実施の形態によるデータ処理装置の第
2の命令フォーマットを示す図である。
【図2】同データ処理装置の第2の命令フォーマットの
命令のリストの一部を示す図である。
【図3】本発明の実施の形態によるデータ処理装置の第
3の命令フォーマットを示す図である。
【図4】同データ処理装置の第3の命令フォーマットの
命令のリストの一部を示す図である。
【図5】同データ処理装置の全体構成を示すブロック図
である。
【図6】同データ処理装置のレジスタファイルの構成を
示すブロック図である。
【図7】同データ処理装置において、第1の命令フォー
マットの命令実行時のレジスタファイルのレジスタ番号
を示す図である。
【図8】同データ処理装置において、第2の命令フォー
マットの命令の実行時のレジスタファイルのレジスタ番
号を示す図である。
【図9】C言語で記載したプログラムの一例を示す図で
ある。
【図10】図9のプログラムを第1の命令フォーマット
を用いてコンパイルした第1の例を示す図である。
【図11】図9のプログラムを第1の命令フォーマット
を用いてコンパイルした第2の例を示す図である。
【図12】図9のプログラムを第1の命令フォーマット
を用いてコンパイルした第3の例を示す図である。
【図13】図9のプログラムを第2の命令フォーマット
を用いてコンパイルした例を示す図である。
【図14】本発明の実施の形態による第3の命令フォー
マットの命令を使用せず記述したFIRフィルタ処理の
プログラムを示す図である。
【図15】本発明の実施の形態による第3の命令フォー
マットの命令を使用して図14で記述したFIRフィル
タ処理プログラムを書き換えたプログラムを示す図であ
る。
【図16】本発明の実施の形態によるデータ処理装置の
第1の命令フォーマット(1)を示す図である。
【図17】同データ処理装置の第1の命令フォーマット
(1)の命令のリストの一部示す図である。
【図18】同データ処理装置の第1の命令フォーマット
(2)を示す図である。
【図19】同データ処理装置の第1の命令フォーマット
(2)の命令のリストの一部示す図である。
【図20】同データ処理装置において、第1のレジスタ
ファイルの構成を示すブロック図である。
【図21】同データ処理装置の第1の命令フォーマット
の命令の実行時のレジスタファイルのレジスタ番号を示
す図である。
【図22】従来のデータ処理装置の命令フォーマットを
示す図である。
【図23】従来のデータ処理装置の命令デコーダ周辺の
要部構成を示すブロック図である。
【図24】本発明の実施の形態で用いる第1、第2及び
第3の命令フォーマットの具体例を示す図である。
【符号の説明】
101 命令メモリ 102 命令フェッチ部 103 命令レジスタ 110 命令解読器 111 命令型判定部(識別手段) 112 第1のレジスタアドレス抽出部 113 レジスタアドレス変換部 114 第2のレジスタアドレス抽出部 115 第3のレジスタアドレス抽出部 116 オペレーション解読部 117 第1のレジスタアドレスセレクタ 120 レジスタファイル(第2のレジスタ
ファイル) 121 汎用レジスタ 122 スタックポインタ 123 Processor Status Word 124 プログラムカウンター E0〜E7 拡張レジスタ 133、136 演算器 220 第1のレジスタファイル

Claims (26)

    【特許請求の範囲】
  1. 【請求項1】 第1命令フォーマットで記述される命
    令、及び第2の命令フォーマットで記述される命令を実
    行するデータ処理装置であって、 前記第1の命令フォーマットは、所定の大きさのレジス
    タ指定領域を有し、 前記第2命令フォーマットは、前記第1命令フォーマッ
    トが有するレジスタ指定領域よりも大きいレジスタ指定
    領域を有し、 前記各命令を受け、この受けた命令自身から、この命令
    を記述する命令フォーマットが前記第1又は第2の命令
    フォーマットであることを識別する識別手段と、 所定個のレジスタを持つ第1レジスタファイルと、 前記第1レジスタファイルのレジスタ数よりも多い個数
    のレジスタを持つ第2レジスタファイルとを備え、 前記識別手段で識別された第1命令フォーマットで記述
    された命令を、前記第1レジスタファイルに保持された
    データを用いて実行し、前記識別手段で識別された第2
    命令フォーマットで記述された命令を、前記第2レジス
    タファイルに保持されたデータを用いて実行することを
    特徴とするデータ処理装置。
  2. 【請求項2】 前記第1及び第2の命令フォーマット
    は、各々、所定個数の命令フィールドを有し、 前記識別手段は、前記第1及び第2の命令フォーマット
    の所定番目の命令フィールドの内容に基づいて、受けた
    命令のフォーマットを識別することを特徴とする請求項
    1記載のデータ処理装置。
  3. 【請求項3】 前記第2の命令フォーマットが有する命
    令フィールドの個数は、前記第1の命令フォーマットが
    有する命令フィールドの個数よりも多いことを特徴とす
    る請求項2記載のデータ処理装置。
  4. 【請求項4】 前記識別手段での識別に供する所定番目
    の命令フィールドは、第1番目の命令フィールドである
    ことを特徴とする請求項2記載のデータ処理装置。
  5. 【請求項5】 前記識別手段での識別に供する所定番目
    の命令フィールドは、第1番目及び第2番目の命令フィ
    ールドであることを特徴とする請求項2記載のデータ処
    理装置。
  6. 【請求項6】 第1及び第2命令フォーマットで記述さ
    れる各命令は、可変長命令であることを特徴とする請求
    項2記載のデータ処理装置。
  7. 【請求項7】 前記第1の命令フォーマットは、前記識
    別手段での識別に供する所定番目の命令フィールドにレ
    ジスタ指定領域を持ち、 前記第2の命令フォーマットは、前記識別手段での識別
    に供する所定番目の命令フィールドにレジスタ指定領域
    を持たないことを特徴とする請求項2記載のデータ処理
    装置。
  8. 【請求項8】 前記第1の命令フォーマットでは、 第1の命令フィールドは、実行すべき命令の動作及び命
    令語長、又は命令語長のみを指定し、第2番目以後の命
    令フィールドは実行すべき命令の動作のみを指定するこ
    とを特徴とする請求項2記載のデータ処理装置。
  9. 【請求項9】 前記第2の命令フォーマットでは、 第1番目の命令フィールドは命令語長のみを指定し、第
    2番目以後の命令フィールドは実行すべき命令の動作の
    みを指定することを特徴とする請求項2記載のデータ処
    理装置。
  10. 【請求項10】 前記第2のレジスタファイルは、前記
    第1のレジスタファイルが持つ所定個のレジスタを含ん
    で構成されることを特徴とする請求項1又は2記載のデ
    ータ処理装置。
  11. 【請求項11】 前記第1及び第2命令フォーマットで
    は、 前記第1のレジスタファイルのレジスタを指定するアド
    レスが相互に異なることを特徴とする請求項1又は2記
    載のデータ処理装置。
  12. 【請求項12】 別途、アドレス変換部を備え、このア
    ドレス変換部は、 前記命令を受け、この命令が指定する第1レジスタファ
    イルのレジスタのアドレスを、前記第2命令フォーマッ
    トで記述されるレジスタのアドレスに変換し、 前記識別手段は、識別された命令フォーマットが前記第
    1命令フォーマットであるとき、前記アドレス変換部に
    より変換されたアドレスを前記第1のレジスタファイル
    に出力させることを特徴とする請求項11記載のデータ
    処理装置。
  13. 【請求項13】 前記第1の命令フォーマットは、 命令の動作と第1のレジスタファイルのレジスタのアド
    レスとを指定する命令フィールドを持つことを特徴とす
    る請求項2記載のデータ処理装置。
  14. 【請求項14】 前記第2の命令フォーマットは、 命令の動作のみを指定する命令フィールドと、第1及び
    第2のレジスタファイルのレジスタのアドレスのみを指
    定する他の命令フィールドとを持つことを特徴とする請
    求項2記載のデータ処理装置。
  15. 【請求項15】 前記第1及び第2のレジスタファイル
    に保持されたデータを用いて、一連の命令が指示する演
    算を並列に実行する複数の演算器を備えることを特徴と
    する請求項1又は2記載のデータ処理装置。
  16. 【請求項16】 第3命令フォーマットで記述される命
    令をも実行するデータ処理装置であって、 前記第3の命令フォーマットは、複数の操作を記述する
    と共に、前記第1命令フォーマットが有するレジスタ指
    定領域よりも大きいレジスタ指定領域を有し、このレジ
    スタ指定領域に前記第2のレジスタファイルのレジスタ
    が指定され、 前記識別手段は、前記命令を受け、この受けた命令自身
    から、この命令が第3の命令フォーマットで記述される
    ことを識別することを特徴とする請求項1又は2記載の
    データ処理装置。
  17. 【請求項17】 前記第3の命令フォーマットは、 複数の操作を実行する命令の動作を指定する命令フィー
    ルドと、 前記第2のレジスタファイルに対するアドレスを指定す
    る他の命令フィールドとを持つことを特徴とする請求項
    16記載のデータ処理装置。
  18. 【請求項18】 前記第3の命令フォーマットで記述さ
    れた命令が指示する複数の操作を、並列に実行する複数
    の演算器を備えることを特徴とする請求項16記載のデ
    ータ処理装置。
  19. 【請求項19】 前記第3の命令フォーマットで記述さ
    れる命令は、 前記第2の命令フォーマットで記述される命令のうち使
    用頻度の高い命令であることを特徴とする請求項16記
    載のデータ処理装置。
  20. 【請求項20】 前記第3の命令フォーマットにおい
    て、並列に実行すべき操作の各々の動作を指定する動作
    指定フィールドの構成ビット数は、 前記第2の命令フォーマットの動作指定フィールドの構
    成ビット数よりも小さいことを特徴とする請求項16記
    載のデータ処理装置。
  21. 【請求項21】 前記第2の命令フォーマットと前記第
    3の命令フォーマットとでは、 前記第2のレジスタファイルのレジスタを指定するアド
    レスが一致することを特徴とする請求項16記載のデー
    タ処理装置。
  22. 【請求項22】 第1命令フォーマットで記述される命
    令、及び第2の命令フォーマットで記述される命令を実
    行するデータ処理装置であって、 所定個のレジスタを持ち、これ等レジスタのアドレスが
    前記第1及び第2命令フォーマット間で異なるレジスタ
    ファイルと、 前記第1命令フォーマットで記述される命令を受け、こ
    の命令が指示するレジスタのアドレスを前記第2命令フ
    ォーマットのアドレスに変換するアドレス変換部と、 前記各命令を受け、この受けた命令自身から、この命令
    を記述する命令フォーマットが前記第1又は第2の命令
    フォーマットであることを識別する識別手段とを備え、 前記識別手段の出力により、前記アドレス変換部の出力
    が制御されることを特徴とするデータ処理装置。
  23. 【請求項23】 データ処理装置に与える命令の構成を
    示す命令フォーマットであって、 所定個の命令フィールドを持つ第1命令フォーマット、
    及び前記第1の命令フォーマットの命令フィール数より
    も多い命令フィールドを持つ第2命令フォーマットであ
    って、 前記両フォーマットの特定の命令フィールドは、自己の
    命令フォーマットの種類を識別する領域であり、 前記第1命令フォーマットは所定の大きさのレジスタ指
    定領域を持ち、前記第2命令フォーマットは、前記第1
    の命令フォーマットのレジスタ指定領域よりも大きいレ
    ジスタ指定領域を持つことを特徴とする命令フォーマッ
    ト。
  24. 【請求項24】 データ処理装置に与える命令の構成を
    示す第3命令フォーマットであって、この第3の命令フ
    ォーマットは、 前記第1の命令フォーマットの命令フィールドの個数及
    びレジスタ指定領域の大きさよりも多い個数の命令フィ
    ールド及び大きいレジスタ指定領域を持つと共に、 特定の命令フィールドは、自己の命令フォーマットの種
    類を判別する領域であり、 更に、複数の操作を記述することを特徴とする請求項2
    3記載の命令フォーマット。
  25. 【請求項25】 自己の命令フォーマットの種類を識別
    する特定の命令フィールドは、第1番目の命令フィール
    ドであることを特徴とする請求項23又は24記載の命
    令フォーマット。
  26. 【請求項26】 自己の命令フォーマットの種類を識別
    する特定の命令フィールドは、第1番目及び第2番目の
    命令フィールドであることを特徴とする請求項23又は
    24記載の命令フォーマット。
JP06223099A 1998-03-11 1999-03-09 命令解読方法、命令解読装置及びデータ処理装置 Expired - Lifetime JP3472504B2 (ja)

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
JP11558898 1998-04-24
JP10-115588 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 true JP2000029686A (ja) 2000-01-28
JP3472504B2 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)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006178653A (ja) * 2004-12-21 2006-07-06 Ip Flex Kk データ処理システムおよびその制御方法
JP2010526383A (ja) * 2007-05-09 2010-07-29 エックスモス リミテッド コンパクト命令セットの符号化
KR101147190B1 (ko) * 2004-05-13 2012-05-25 실리콘 하이브 비.브이. 다중-명령어 워드 프로세서에서 피드백 접속의 런타임 선택

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101147190B1 (ko) * 2004-05-13 2012-05-25 실리콘 하이브 비.브이. 다중-명령어 워드 프로세서에서 피드백 접속의 런타임 선택
JP2006178653A (ja) * 2004-12-21 2006-07-06 Ip Flex Kk データ処理システムおよびその制御方法
JP4609702B2 (ja) * 2004-12-21 2011-01-12 富士ゼロックス株式会社 データ処理システムおよびその制御方法
JP2010526383A (ja) * 2007-05-09 2010-07-29 エックスモス リミテッド コンパクト命令セットの符号化

Also Published As

Publication number Publication date
JP3472504B2 (ja) 2003-12-02

Similar Documents

Publication Publication Date Title
US7664934B2 (en) Data processor decoding instruction formats using operand data
KR100323191B1 (ko) 다중명령세트를이용한데이터프로세싱장치
EP0741358B1 (en) Microcomputer
US7676653B2 (en) Compact instruction set encoding
JP2816248B2 (ja) データプロセッサ
JPH0926878A (ja) データ処理装置
US20080082800A1 (en) Data processor for modifying and executing operation of instruction code
US20010042193A1 (en) Data processing unit with interface for sharing registers by a processor and a coprocessor
JP3781519B2 (ja) プロセッサの命令制御機構
JP2002215387A (ja) 命令トランスレータを備えたデータ処理装置およびメモリインタフェース装置
US6209080B1 (en) Constant reconstruction processor that supports reductions in code size and processing time
US6925548B2 (en) Data processor assigning the same operation code to multiple operations
JP3901670B2 (ja) データ処理装置
JP2556182B2 (ja) デ−タ処理装置
JP3472504B2 (ja) 命令解読方法、命令解読装置及びデータ処理装置
JP3727395B2 (ja) マイクロコンピュータ
JP2004005738A5 (ja)
JPH06149563A (ja) データ処理装置
JPH07110769A (ja) Vliw型計算機
JPH10105399A (ja) データ処理装置
JPH117388A (ja) プロセッサ
JP2000099329A (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