JPH1091432A - プログラム実行方法およびプログラム実行装置 - Google Patents
プログラム実行方法およびプログラム実行装置Info
- Publication number
- JPH1091432A JPH1091432A JP8243886A JP24388696A JPH1091432A JP H1091432 A JPH1091432 A JP H1091432A JP 8243886 A JP8243886 A JP 8243886A JP 24388696 A JP24388696 A JP 24388696A JP H1091432 A JPH1091432 A JP H1091432A
- Authority
- JP
- Japan
- Prior art keywords
- general
- register
- purpose register
- data
- instruction
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/22—Microcontrol or microprogram arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/3001—Arithmetic instructions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30145—Instruction analysis, e.g. decoding, instruction word fields
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Executing Machine-Instructions (AREA)
- Advance Control (AREA)
Abstract
(57)【要約】
【課題】 演算を小さなハードウエアと小さなプログラ
ムサイズで高速に行い、かつ将来の機能拡張性を考慮し
たプログラム実行装置を実現したい。 【解決手段】 汎用レジスタR0〜4は仮想的なレジス
タで、それぞれに対するリード/ライトが特定の演算に
関連づけられている。命令デコード部3が命令を解読し
たとき、データ転送命令によるR0〜4に対するアクセ
スであることが判明すると、そのレジスタに関連する演
算を実行する。拡張すべき演算種は異なる汎用レジスタ
に関連づける。
ムサイズで高速に行い、かつ将来の機能拡張性を考慮し
たプログラム実行装置を実現したい。 【解決手段】 汎用レジスタR0〜4は仮想的なレジス
タで、それぞれに対するリード/ライトが特定の演算に
関連づけられている。命令デコード部3が命令を解読し
たとき、データ転送命令によるR0〜4に対するアクセ
スであることが判明すると、そのレジスタに関連する演
算を実行する。拡張すべき演算種は異なる汎用レジスタ
に関連づける。
Description
【0001】
【発明の属する技術分野】本発明は、各種命令を実行す
るプログラム実行方法およびその方法を用いたプログラ
ム実行装置に関する。この発明は特に、プログラムの実
行に汎用レジスタを用いる方法および装置に関する。
るプログラム実行方法およびその方法を用いたプログラ
ム実行装置に関する。この発明は特に、プログラムの実
行に汎用レジスタを用いる方法および装置に関する。
【0002】
【従来の技術】マイクロプロセッサを代表とするプログ
ラム実行装置として、メモリに格納された命令を順次フ
ェッチ、デコードして実行する制御駆動型の装置が数多
く存在する。
ラム実行装置として、メモリに格納された命令を順次フ
ェッチ、デコードして実行する制御駆動型の装置が数多
く存在する。
【0003】図4は従来一般的なRISC(reduced in
struction set computer)方式のプロセッサの構成図で
ある。このプロセッサは、メモリ1、命令フェッチ部
2、命令デコード部3、レジスタ群4、演算部5、デー
タアクセス部6を持つ。この構成において、メモリ1か
ら順次フェッチされる演算命令、データ転送(ロード/
ストア)命令などがデコードされ、演算部5において、
命令コードで指示される演算が実施される。
struction set computer)方式のプロセッサの構成図で
ある。このプロセッサは、メモリ1、命令フェッチ部
2、命令デコード部3、レジスタ群4、演算部5、デー
タアクセス部6を持つ。この構成において、メモリ1か
ら順次フェッチされる演算命令、データ転送(ロード/
ストア)命令などがデコードされ、演算部5において、
命令コードで指示される演算が実施される。
【0004】従来、図4の演算部5の中に、加算、減
算、論理和、論理積などの演算を実行する基本的な算術
論理演算部(ALU)と別に、例えば乗算を高速に実行
するための乗算器を並列的に備えるものが存在した。ま
た、整数演算用のALUと浮動小数点演算用のALUが
並設されたものもあった。演算部5を構成する各種演算
器を利用してデータ処理を行う場合、演算器による演算
処理に対応する演算命令を設け、これをプログラム中に
記述してプロセッサに読み込む方法が一般的だった。す
なわち、例えばADD(整数加算)、OR(論理積)な
どの基本的な演算命令に加え、MUL(乗算)、MAC
(積和演算)、FSUB(浮動小数点減算)などの拡張
された演算命令を設け、これらをプログラム中に記述し
て実行させるのである。
算、論理和、論理積などの演算を実行する基本的な算術
論理演算部(ALU)と別に、例えば乗算を高速に実行
するための乗算器を並列的に備えるものが存在した。ま
た、整数演算用のALUと浮動小数点演算用のALUが
並設されたものもあった。演算部5を構成する各種演算
器を利用してデータ処理を行う場合、演算器による演算
処理に対応する演算命令を設け、これをプログラム中に
記述してプロセッサに読み込む方法が一般的だった。す
なわち、例えばADD(整数加算)、OR(論理積)な
どの基本的な演算命令に加え、MUL(乗算)、MAC
(積和演算)、FSUB(浮動小数点減算)などの拡張
された演算命令を設け、これらをプログラム中に記述し
て実行させるのである。
【0005】しかしこうしたプロセッサでは、演算に必
要なデータを演算用データ記憶箇所、例えばレジスタに
準備する命令と、実際に演算を起動・実行する命令の双
方を実行しなければ、所定の処理を遂行することができ
なかった。例えばRISCプロセッサによってメモリに
格納されたオペランドデータに対する繰り返し乗算を行
うとき、つぎに示すプログラムが考えられるが、ここで
は2つのレジスタ(R2、R3)にデータを転送する2
つのロード命令および乗算命令が必須であり、1回の乗
算に最低3命令の実行が必要であった。
要なデータを演算用データ記憶箇所、例えばレジスタに
準備する命令と、実際に演算を起動・実行する命令の双
方を実行しなければ、所定の処理を遂行することができ
なかった。例えばRISCプロセッサによってメモリに
格納されたオペランドデータに対する繰り返し乗算を行
うとき、つぎに示すプログラムが考えられるが、ここで
は2つのレジスタ(R2、R3)にデータを転送する2
つのロード命令および乗算命令が必須であり、1回の乗
算に最低3命令の実行が必要であった。
【0006】 LD R2,(R0) ( R2 ← mem(R0) ) LD R3,(R1) ( R3 ← mem(R1) ) MUL R2, R3 ( R2 ← R2×R3 ) この結果、仮に1命令サイクルで演算を実行する高速の
演算器を搭載しても、全体の処理レートとしては3命令
サイクルでようやく1回の演算にとどまり、これが性能
向上の足かせとなった。
演算器を搭載しても、全体の処理レートとしては3命令
サイクルでようやく1回の演算にとどまり、これが性能
向上の足かせとなった。
【0007】この課題を解決する技術として、日本電気
(株)のDSPであるμPD77240(商標)を挙げ
ることができる。「ユーザーズ・マニュアル μPD7
7240」(1991年9月版)の66ページの記載に
よれば、このDSPの特徴は以下の通りである。
(株)のDSPであるμPD77240(商標)を挙げ
ることができる。「ユーザーズ・マニュアル μPD7
7240」(1991年9月版)の66ページの記載に
よれば、このDSPの特徴は以下の通りである。
【0008】1.通常のALUの他に浮動小数点乗算専
用の回路(FMPY)を持つ。前者は明示的な演算命令
(ADD、SUBなど)によって演算を起動し、後者は
データ転送命令によって、転送されたデータに対する演
算を自動的に起動する。
用の回路(FMPY)を持つ。前者は明示的な演算命令
(ADD、SUBなど)によって演算を起動し、後者は
データ転送命令によって、転送されたデータに対する演
算を自動的に起動する。
【0009】2.FMPYでは、乗算入力用レジスタ
K、Lの2つのレジスタに転送されるデータが命令サイ
クルごとに掛け合わされ、乗算結果が1命令サイクル後
にFMPYの出力バスに出力され、2命令サイクル後に
乗算出力用レジスタMに書き込まれる。
K、Lの2つのレジスタに転送されるデータが命令サイ
クルごとに掛け合わされ、乗算結果が1命令サイクル後
にFMPYの出力バスに出力され、2命令サイクル後に
乗算出力用レジスタMに書き込まれる。
【0010】このDSPではデータ転送命令のみの記述
で乗算が起動され、上記課題の解決を図られる。
で乗算が起動され、上記課題の解決を図られる。
【0011】
【発明が解決しようとする課題】しかしこのDSPの場
合、FMPYで可能な演算は浮動小数点乗算に限られ
る。これ以外、例えば除算を同様に高速実施したい場
合、FMPY同様の構成をもつ専用除算回路を設ける必
要がある。この除算回路にも2つの入力用レジスタと1
つの出力用レジスタが必要なため、全体のハードウエア
量が増える。RICSプロセッサでは、例えば画像処理
やCGなどの科学技術計算を実施するために、加減乗
除、三角関数等各種演算が必要であり、演算ごとに32
ビットレジスタのセットを増設していくとすればハード
ウエアの大規模化を招く。
合、FMPYで可能な演算は浮動小数点乗算に限られ
る。これ以外、例えば除算を同様に高速実施したい場
合、FMPY同様の構成をもつ専用除算回路を設ける必
要がある。この除算回路にも2つの入力用レジスタと1
つの出力用レジスタが必要なため、全体のハードウエア
量が増える。RICSプロセッサでは、例えば画像処理
やCGなどの科学技術計算を実施するために、加減乗
除、三角関数等各種演算が必要であり、演算ごとに32
ビットレジスタのセットを増設していくとすればハード
ウエアの大規模化を招く。
【0012】ひとつの方法として、入力用レジスタK、
Lを複数の演算で共用すればレジスタの合計数を減らす
ことができる。しかしその場合、入力されたデータに対
していずれの演算を実施するかの指定が新たに必要とな
る。こうした指定は通常のデータ転送命令だけでは不可
能であるし、演算を明示すること自体、FMPY導入の
設計思想に反する。
Lを複数の演算で共用すればレジスタの合計数を減らす
ことができる。しかしその場合、入力されたデータに対
していずれの演算を実施するかの指定が新たに必要とな
る。こうした指定は通常のデータ転送命令だけでは不可
能であるし、演算を明示すること自体、FMPY導入の
設計思想に反する。
【0013】本発明はこうした課題に鑑みてなされたも
のであり、その目的は、少ないハードウエア量で異なる
演算をそれぞれ高速に実行可能なプログラム実行装置を
提供することにある。このとき本発明は、後の演算の追
加、拡張を柔軟に実行することの可能な装置を提供する
ことを目的とする。本発明はさらに、異なる演算をユー
ザが容易にプログラミングすることの可能な装置を提供
することも目的とする。
のであり、その目的は、少ないハードウエア量で異なる
演算をそれぞれ高速に実行可能なプログラム実行装置を
提供することにある。このとき本発明は、後の演算の追
加、拡張を柔軟に実行することの可能な装置を提供する
ことを目的とする。本発明はさらに、異なる演算をユー
ザが容易にプログラミングすることの可能な装置を提供
することも目的とする。
【0014】
(1)本発明のプログラム実行方法は、予め特定の汎用
レジスタと演算を関連づけておき、プログラムを読み込
んだときにその汎用レジスタが記述されていれば、その
汎用レジスタに関連する演算を実行する。ここで「汎用
レジスタ」とは、複数の用途または演算に利用可能なレ
ジスタをいい、目的とする演算がひとつに限定される専
用レジスタ、例えば従来の技術として説明したDSPの
K、Lレジスタのような専用レジスタと区別する趣旨で
ある。なお、特許請求の範囲に記載される「演算」と
は、乗算、浮動小数点計算、ユーザが設計する特定の計
算、論理演算など、ふつうの意味で演算と呼びうるすべ
てを含むほか、それらの処理に必要なデータのロードや
ストアなどの関連処理も含む一連の演算処理を含むもの
としてここに定義する。
レジスタと演算を関連づけておき、プログラムを読み込
んだときにその汎用レジスタが記述されていれば、その
汎用レジスタに関連する演算を実行する。ここで「汎用
レジスタ」とは、複数の用途または演算に利用可能なレ
ジスタをいい、目的とする演算がひとつに限定される専
用レジスタ、例えば従来の技術として説明したDSPの
K、Lレジスタのような専用レジスタと区別する趣旨で
ある。なお、特許請求の範囲に記載される「演算」と
は、乗算、浮動小数点計算、ユーザが設計する特定の計
算、論理演算など、ふつうの意味で演算と呼びうるすべ
てを含むほか、それらの処理に必要なデータのロードや
ストアなどの関連処理も含む一連の演算処理を含むもの
としてここに定義する。
【0015】この態様によれば、汎用レジスタごとに異
なる演算を割り当てられているため、演算の種類を明示
する必要がない。したがって少ない命令ステップ数で所
望の演算を実行することができ、演算の高速化が実現す
る。また、新たな演算が追加された場合、これを異なる
汎用レジスタと関連づければよいため、アップワードの
互換性を保ちながら容易に機能拡張を行うことができ
る。この際、命令フォーマットのOPコード部分を変更
しなくてよい点も好都合である。また本態様では、ユー
ザは通常どおり汎用レジスタを用いたプログラミングを
行えばよい。従って、ユーザになじみのない、新たなプ
ログラミング技法を必要としない。
なる演算を割り当てられているため、演算の種類を明示
する必要がない。したがって少ない命令ステップ数で所
望の演算を実行することができ、演算の高速化が実現す
る。また、新たな演算が追加された場合、これを異なる
汎用レジスタと関連づければよいため、アップワードの
互換性を保ちながら容易に機能拡張を行うことができ
る。この際、命令フォーマットのOPコード部分を変更
しなくてよい点も好都合である。また本態様では、ユー
ザは通常どおり汎用レジスタを用いたプログラミングを
行えばよい。従って、ユーザになじみのない、新たなプ
ログラミング技法を必要としない。
【0016】(2)本発明のプログラム実行方法のある
態様では、前記汎用レジスタに関連する演算を実行する
際、その汎用レジスタに格納されるデータに対して該演
算を実行する。例えば、ある汎用レジスタAが演算の一
種である「加算」に関連づけられていれば、その汎用レ
ジスタAにデータを転送することにより、そのデータを
用いた加算処理が実現する。すなわち、この態様では汎
用レジスタが演算種を示すだけでなく、同時にその演算
のソースレジスタとなる。この結果、自然かつ効率のよ
いプログラミングが可能となる。
態様では、前記汎用レジスタに関連する演算を実行する
際、その汎用レジスタに格納されるデータに対して該演
算を実行する。例えば、ある汎用レジスタAが演算の一
種である「加算」に関連づけられていれば、その汎用レ
ジスタAにデータを転送することにより、そのデータを
用いた加算処理が実現する。すなわち、この態様では汎
用レジスタが演算種を示すだけでなく、同時にその演算
のソースレジスタとなる。この結果、自然かつ効率のよ
いプログラミングが可能となる。
【0017】(3)本発明のプログラム実行方法のある
態様では、前記汎用レジスタに関連する演算を実行する
際、その汎用レジスタに対するアクセス形態も考慮した
うえで、実行すべき演算を特定する。通常汎用レジスタ
に対しては、リードおよびライトの2つのアクセス態様
がある。したがって、この2通りの区別を活用すること
により、さらに多くの演算を指定することができる。
態様では、前記汎用レジスタに関連する演算を実行する
際、その汎用レジスタに対するアクセス形態も考慮した
うえで、実行すべき演算を特定する。通常汎用レジスタ
に対しては、リードおよびライトの2つのアクセス態様
がある。したがって、この2通りの区別を活用すること
により、さらに多くの演算を指定することができる。
【0018】(4)一方、本発明のプログラム実行装置
は、演算の対象となるデータを格納するための汎用レジ
スタと、プログラム中に汎用レジスタが記述されている
とき、予めその汎用レジスタに関連づけられている演算
を特定する解読手段と、特定された演算を前記汎用レジ
スタに格納されたデータに対して行う演算手段とを含
む。
は、演算の対象となるデータを格納するための汎用レジ
スタと、プログラム中に汎用レジスタが記述されている
とき、予めその汎用レジスタに関連づけられている演算
を特定する解読手段と、特定された演算を前記汎用レジ
スタに格納されたデータに対して行う演算手段とを含
む。
【0019】この構成において、解読手段は読み込まれ
たプログラムを解読する。このとき汎用レジスタが記述
されている箇所にきたら、その汎用レジスタに関連づけ
られている演算を特定する。例えば「汎用レジスタAな
ら加算」などである。つづいて、演算手段によって特定
された演算が実行される。このとき、その演算は汎用レ
ジスタに格納されたデータに対して行われる。
たプログラムを解読する。このとき汎用レジスタが記述
されている箇所にきたら、その汎用レジスタに関連づけ
られている演算を特定する。例えば「汎用レジスタAな
ら加算」などである。つづいて、演算手段によって特定
された演算が実行される。このとき、その演算は汎用レ
ジスタに格納されたデータに対して行われる。
【0020】この態様によれば、例えば汎用レジスタに
対してデータをロードするデータ転送命令で演算を指定
することができる。このことによる効果は(1)で述べ
たとおりである。
対してデータをロードするデータ転送命令で演算を指定
することができる。このことによる効果は(1)で述べ
たとおりである。
【0021】(5)本発明のある態様では、前記解読手
段はさらに、汎用レジスタに対するアクセス形態も考慮
したうえで演算を特定する。(3)同様の趣旨であり、
(3)同様の効果をもつ。
段はさらに、汎用レジスタに対するアクセス形態も考慮
したうえで演算を特定する。(3)同様の趣旨であり、
(3)同様の効果をもつ。
【0022】(6)(4)または(5)の場合、本発明
のある態様では、前記汎用レジスタは自身に関連づけら
れた演算を指示する仮想的なレジスタである。このと
き、汎用レジスタは、データの送り先とそのデータに対
する処理を同時に指定する機能付アドレッシング手段と
みなすことができる。したがって、送り先にデータの格
納箇所がある限り、この汎用レジスタ自身がデータを格
納する必要はなく、仮想的に存在すれば足る。
のある態様では、前記汎用レジスタは自身に関連づけら
れた演算を指示する仮想的なレジスタである。このと
き、汎用レジスタは、データの送り先とそのデータに対
する処理を同時に指定する機能付アドレッシング手段と
みなすことができる。したがって、送り先にデータの格
納箇所がある限り、この汎用レジスタ自身がデータを格
納する必要はなく、仮想的に存在すれば足る。
【0023】この態様によれば、演算種ごとに汎用レジ
スタの組を設ける場合に比べ、ハードウエア量を大幅に
削減することができる。
スタの組を設ける場合に比べ、ハードウエア量を大幅に
削減することができる。
【0024】(7)本発明のプログラム実行装置のある
態様では、前記演算手段は、データ転送命令の実行によ
って前記汎用レジスタに対するデータ転送が行われたこ
とを契機としてそのデータに対して前記汎用レジスタに
関連づけられた演算処理を起動する。この構成によれ
ば、2つのロード命令で自動的に2つのオペランドに対
する演算を開始することができ、少ないステップ数によ
る高速な演算を担保することができる。
態様では、前記演算手段は、データ転送命令の実行によ
って前記汎用レジスタに対するデータ転送が行われたこ
とを契機としてそのデータに対して前記汎用レジスタに
関連づけられた演算処理を起動する。この構成によれ
ば、2つのロード命令で自動的に2つのオペランドに対
する演算を開始することができ、少ないステップ数によ
る高速な演算を担保することができる。
【0025】
【発明の実施の形態】以下、本発明の好適な実施形態を
適宜図面を参照しながら説明する。本実施形態では、特
定の汎用レジスタに対するデータ転送命令によって自動
的に演算を起動する機能をもつプログラム実行装置を説
明する。この装置では、図4同様の演算部における演算
が通常どおり明示的な演算命令によって起動される一
方、新たな演算部(以下、第2演算部という)における
演算処理が特定の汎用レジスタに対するデータ転送命令
のみによって起動される。
適宜図面を参照しながら説明する。本実施形態では、特
定の汎用レジスタに対するデータ転送命令によって自動
的に演算を起動する機能をもつプログラム実行装置を説
明する。この装置では、図4同様の演算部における演算
が通常どおり明示的な演算命令によって起動される一
方、新たな演算部(以下、第2演算部という)における
演算処理が特定の汎用レジスタに対するデータ転送命令
のみによって起動される。
【0026】この装置は、一例として合計16の汎用レ
ジスタR0〜15をもつとする。このうちレジスタ群4
(後述)に実在するのはR5〜15の11個であり、R
0〜4の5個は本実施形態に特徴的な仮想レジスタであ
る。
ジスタR0〜15をもつとする。このうちレジスタ群4
(後述)に実在するのはR5〜15の11個であり、R
0〜4の5個は本実施形態に特徴的な仮想レジスタであ
る。
【0027】図1は本実施形態に係るプログラム実行装
置の全体構成図である。同図において、メモリ1には命
令およびデータが格納される。命令は命令バス1A、デ
ータはデータバス1Bを介してアクセスされる。命令フ
ェッチ部2はメモリ1からデータ転送命令や演算命令な
どの命令を順次フェッチし、信号線2Aを介してこれを
命令デコード部3に渡す。
置の全体構成図である。同図において、メモリ1には命
令およびデータが格納される。命令は命令バス1A、デ
ータはデータバス1Bを介してアクセスされる。命令フ
ェッチ部2はメモリ1からデータ転送命令や演算命令な
どの命令を順次フェッチし、信号線2Aを介してこれを
命令デコード部3に渡す。
【0028】命令デコード部3では命令の種類に従って
命令コードを所定のフィールドに分割し、処理すべき演
算種を示すオペレーション、命令コード内に埋め込まれ
た即値オペランド、ソースおよびディスティネーション
レジスタ番号などを抽出する。このときレジスタ番号が
0〜4かどうか、つまり仮想レジスタであるか否かによ
り、第2演算部7を用いる演算であるか否かが判明す
る。
命令コードを所定のフィールドに分割し、処理すべき演
算種を示すオペレーション、命令コード内に埋め込まれ
た即値オペランド、ソースおよびディスティネーション
レジスタ番号などを抽出する。このときレジスタ番号が
0〜4かどうか、つまり仮想レジスタであるか否かによ
り、第2演算部7を用いる演算であるか否かが判明す
る。
【0029】オペレーションが通常の演算命令を示して
いれば、ソースオペランドに対し、演算部5で通常の演
算が行われる。演算結果は信号線5Aを介してデータア
クセス部6へ送られ、信号線6Aを介してレジスタ群4
中のディスティネーションレジスタ番号で示されるレジ
スタに書き戻される。
いれば、ソースオペランドに対し、演算部5で通常の演
算が行われる。演算結果は信号線5Aを介してデータア
クセス部6へ送られ、信号線6Aを介してレジスタ群4
中のディスティネーションレジスタ番号で示されるレジ
スタに書き戻される。
【0030】一方、オペレーションがデータ転送命令の
場合、その命令中に記述される汎用レジスタがR0〜4
のいずれかであれば、第2演算部7による演算が行われ
る。この場合、オペランドデータは命令デコード部3か
ら、レジスタ群4ではなく、信号線3Aを介して第2演
算部7へ直接送られる。以降、本装置に特徴的な演算を
経て、その結果が信号線7Aを介してデータアクセス部
6へ送られる。
場合、その命令中に記述される汎用レジスタがR0〜4
のいずれかであれば、第2演算部7による演算が行われ
る。この場合、オペランドデータは命令デコード部3か
ら、レジスタ群4ではなく、信号線3Aを介して第2演
算部7へ直接送られる。以降、本装置に特徴的な演算を
経て、その結果が信号線7Aを介してデータアクセス部
6へ送られる。
【0031】図2は第2演算部7の内部構成図である。
本実施形態では、第2演算部7で通常の乗算と、乗算お
よび加算の複合計算である積和計算が行われるものとす
る。積和計算は音声処理や画像処理などで頻繁に利用さ
れる。
本実施形態では、第2演算部7で通常の乗算と、乗算お
よび加算の複合計算である積和計算が行われるものとす
る。積和計算は音声処理や画像処理などで頻繁に利用さ
れる。
【0032】同図において、Xレジスタ71およびYレ
ジスタ72はともに実体のあるレジスタで、演算のオペ
ランドデータが格納される。このデータは命令デコード
部3から送られてくる。X、Yレジスタ71、72はそ
れぞれ、データが格納されたときにセットされ、演算が
進行してつぎのデータを受け付けることができる状態に
なったときにリセットされるデータ存在フラグ(図示せ
ず)をもつ。これら2つのフラグがともにセット状態に
なるたびに、乗算または積和計算が自動的に開始され
る。
ジスタ72はともに実体のあるレジスタで、演算のオペ
ランドデータが格納される。このデータは命令デコード
部3から送られてくる。X、Yレジスタ71、72はそ
れぞれ、データが格納されたときにセットされ、演算が
進行してつぎのデータを受け付けることができる状態に
なったときにリセットされるデータ存在フラグ(図示せ
ず)をもつ。これら2つのフラグがともにセット状態に
なるたびに、乗算または積和計算が自動的に開始され
る。
【0033】積和計算、乗算の結果は、それぞれ積和結
果保持部73、乗算結果保持部74に格納される。図中
「×」「+」と表記される乗算器75および加算器76
は、それぞれ2つの入力に対して乗算、加算を行い、そ
の結果を出力する。乗算器75にはXレジスタ71、Y
レジスタ72の出力が与えられ、出力は乗算結果保持部
74と加算器76に与えられる。加算器76には積和結
果保持部73の出力と、乗算器75の出力が与えられ
る。加算器76の出力は積和結果保持部73に入力され
ている。積和結果保持部73および乗算結果保持部74
から読み出されたデータはデータアクセス部6に送られ
る。
果保持部73、乗算結果保持部74に格納される。図中
「×」「+」と表記される乗算器75および加算器76
は、それぞれ2つの入力に対して乗算、加算を行い、そ
の結果を出力する。乗算器75にはXレジスタ71、Y
レジスタ72の出力が与えられ、出力は乗算結果保持部
74と加算器76に与えられる。加算器76には積和結
果保持部73の出力と、乗算器75の出力が与えられ
る。加算器76の出力は積和結果保持部73に入力され
ている。積和結果保持部73および乗算結果保持部74
から読み出されたデータはデータアクセス部6に送られ
る。
【0034】一方、図3は仮想レジスタR0〜4とそれ
らに対するアクセス形態、および指定される演算種の関
係を示す図である。同図で、アクセス形態「リード」は
汎用レジスタからデータが読み出されることを指し、例
えばメモリへのストア命令、他の汎用レジスタへのムー
ブ(コピー)命令に相当する。一方、「ライト」は、例
えばメモリからレジスタへのロード命令、他の汎用レジ
スタからのムーブ(コピー)命令、その汎用レジスタへ
の即値のムーブ(書込)命令に当たる。
らに対するアクセス形態、および指定される演算種の関
係を示す図である。同図で、アクセス形態「リード」は
汎用レジスタからデータが読み出されることを指し、例
えばメモリへのストア命令、他の汎用レジスタへのムー
ブ(コピー)命令に相当する。一方、「ライト」は、例
えばメモリからレジスタへのロード命令、他の汎用レジ
スタからのムーブ(コピー)命令、その汎用レジスタへ
の即値のムーブ(書込)命令に当たる。
【0035】1.各レジスタへのライト動作 レジスタR0に対してライトを行うと、その命令に含ま
れる即値データ(d0とする)がそのままXレジスタ7
1に書き込まれる。
れる即値データ(d0とする)がそのままXレジスタ7
1に書き込まれる。
【0036】レジスタR1へのライトはYレジスタ72
への即値データ(d1とする)の書き込みと同時に、d
0とd1を用いた符号なしの積和計算を指示する。すな
わち、d0とd1に対して乗算器75で符号なしの乗算
が行われ、その結果と以前の積和計算の結果が加算器7
6で加算され、その結果が新たな積和計算結果として積
和結果保持部73に格納される。レジスタR2へのライ
トはR1の場合と同様だが、演算が符号を考慮して行わ
れる。
への即値データ(d1とする)の書き込みと同時に、d
0とd1を用いた符号なしの積和計算を指示する。すな
わち、d0とd1に対して乗算器75で符号なしの乗算
が行われ、その結果と以前の積和計算の結果が加算器7
6で加算され、その結果が新たな積和計算結果として積
和結果保持部73に格納される。レジスタR2へのライ
トはR1の場合と同様だが、演算が符号を考慮して行わ
れる。
【0037】レジスタR3へのライトはYレジスタ72
への即値データ(d2とする)の書き込みと同時に、d
0とd2を用いた符号なしの乗算を指示する。すなわ
ち、d0とd2に対して乗算器75で符号なしの乗算が
行われ、その結果が乗算結果保持部74に格納される。
レジスタR4へのライトはR3の場合と同様だが、符号
を考慮する。
への即値データ(d2とする)の書き込みと同時に、d
0とd2を用いた符号なしの乗算を指示する。すなわ
ち、d0とd2に対して乗算器75で符号なしの乗算が
行われ、その結果が乗算結果保持部74に格納される。
レジスタR4へのライトはR3の場合と同様だが、符号
を考慮する。
【0038】2.各レジスタからのリード動作 レジスタR0に対するリードを行うと、積和結果保持部
73および乗算結果保持部74の内容がクリアされる。
新たな積和計算の開始などに用いられる。
73および乗算結果保持部74の内容がクリアされる。
新たな積和計算の開始などに用いられる。
【0039】レジスタR1をリードすると、積和結果保
持部73に格納されたデータを読み出すことができる。
レジスタR2も同様だが、読み出しの後に積和結果保持
部73のクリアを伴う。レジスタR3をリードすると、
乗算結果保持部74に格納されたデータが読み出され
る。
持部73に格納されたデータを読み出すことができる。
レジスタR2も同様だが、読み出しの後に積和結果保持
部73のクリアを伴う。レジスタR3をリードすると、
乗算結果保持部74に格納されたデータが読み出され
る。
【0040】以上の構成により、例えば、レジスタR
5、R6で示されるメモリアドレスに格納されたオペラ
ンドデータに対して符号なしの乗算を行う場合、つぎの
プログラムを用いればよい。ここでは2命令しか必要と
しない。
5、R6で示されるメモリアドレスに格納されたオペラ
ンドデータに対して符号なしの乗算を行う場合、つぎの
プログラムを用いればよい。ここでは2命令しか必要と
しない。
【0041】 LD R0,(R5) ( R0 ← men(R5) ) LD R3,(R6) ( R3 ← men(R6) ) 別の処理として、メモリに格納された一次元配列データ
どうしの積を計算し、その結果の一次元配列をメモリ格
納する符号つき積和計算を考える。
どうしの積を計算し、その結果の一次元配列をメモリ格
納する符号つき積和計算を考える。
【0042】 MOV R5,R0 (積和結果保持部73のクリア) L1: LD R0,(R6++) ( R0 ← men(R6), R6 ← R6+1 ) LD R2,(R7++) ( R2 ← men(R7), R7 ← R7+1 ) CB R9,L1 (R9が非ゼロ時L1に分岐。判定後 R9 ← R9-1) NOP (分岐命令のための遅延スロット) MOV R8,R1 (結果を R8 に格納) ここでは、レジスタR6、R7で示されるメモリアドレ
スに格納されたオペランドデータに対して符号つき積和
計算が行われ、結果がレジスタR8に格納される。レジ
スタR9はカウンタに利用される。
スに格納されたオペランドデータに対して符号つき積和
計算が行われ、結果がレジスタR8に格納される。レジ
スタR9はカウンタに利用される。
【0043】以上が本実施形態の内容である。本実施形
態では、レジスタR0〜4が実在しないためハードウエ
ア量が少なくて済む。それにも拘らず、レジスタ番号と
アクセス形態を利用して多種の演算を効率的に指定し、
かつ高速に実行することができる。また、演算種を追加
する際に命令を追加しなくてよいため、後の拡張性に富
む。プログラミングも極めて容易である。なお、本実施
形態については以下のような変形技術も考えられる。
態では、レジスタR0〜4が実在しないためハードウエ
ア量が少なくて済む。それにも拘らず、レジスタ番号と
アクセス形態を利用して多種の演算を効率的に指定し、
かつ高速に実行することができる。また、演算種を追加
する際に命令を追加しなくてよいため、後の拡張性に富
む。プログラミングも極めて容易である。なお、本実施
形態については以下のような変形技術も考えられる。
【0044】(1)本実施形態では、特定の汎用レジス
タによって特定の演算種を指定し、演算の起動はデータ
存在フラグを監視して行われた。しかし、特定の汎用レ
ジスタに、演算種の指定だけでなくその演算の起動の役
割も与えれば、データ存在フラグも必須ではなくなる。
本実施形態の場合、Yレジスタ72に対するライトを指
示するR1〜4にそうした機能を付加することができ
る。
タによって特定の演算種を指定し、演算の起動はデータ
存在フラグを監視して行われた。しかし、特定の汎用レ
ジスタに、演算種の指定だけでなくその演算の起動の役
割も与えれば、データ存在フラグも必須ではなくなる。
本実施形態の場合、Yレジスタ72に対するライトを指
示するR1〜4にそうした機能を付加することができ
る。
【0045】(2)本実施形態では、データ転送命令に
よって第2演算部7による演算が自動的に起動された
が、本発明は明示的な演算命令で演算を起動する従来一
般的なプログラム実行装置のアーキテクチャに適用する
ことも可能である。その場合、汎用レジスタの番号と明
示的な演算命令の組合せで数多くの演算を指定できる効
果がある。
よって第2演算部7による演算が自動的に起動された
が、本発明は明示的な演算命令で演算を起動する従来一
般的なプログラム実行装置のアーキテクチャに適用する
ことも可能である。その場合、汎用レジスタの番号と明
示的な演算命令の組合せで数多くの演算を指定できる効
果がある。
【図1】 実施形態に係るプログラム実行装置の全体構
成図である。
成図である。
【図2】 図1の第2演算部7の内部構成を示す図であ
る。
る。
【図3】 仮想レジスタR0〜4とそれらに対するアク
セス形態、および指定される演算種の関係を示す図であ
る。
セス形態、および指定される演算種の関係を示す図であ
る。
【図4】 従来一般的なRISC方式のプロセッサの構
成図である。
成図である。
1 メモリ、2 命令フェッチ部、3 命令デコード
部、4 レジスタ群、5演算部、6 データアクセス
部、7 第2演算部、71 Xレジスタ、72Yレジス
タ、73 積和結果保持部、74 乗算結果保持部、7
5 乗算器、76 加算器、R0〜4 汎用レジスタ。
部、4 レジスタ群、5演算部、6 データアクセス
部、7 第2演算部、71 Xレジスタ、72Yレジス
タ、73 積和結果保持部、74 乗算結果保持部、7
5 乗算器、76 加算器、R0〜4 汎用レジスタ。
Claims (7)
- 【請求項1】 演算を含むプログラムを実行する方法で
あって、 予め特定の汎用レジスタと演算を関連づけておき、プロ
グラムを読み込んだときにその汎用レジスタが記述され
ていれば、その汎用レジスタに関連する演算を実行する
ことを特徴とするプログラム実行方法。 - 【請求項2】 前記汎用レジスタに関連する演算を実行
する際、その汎用レジスタに格納されるデータに対して
該演算を実行する請求項1に記載のプログラム実行方
法。 - 【請求項3】 前記汎用レジスタに関連する演算を実行
する際、その汎用レジスタに対するアクセス形態を考慮
したうえで、実行すべき演算を特定する請求項1、2の
いずれかに記載のプログラム実行方法。 - 【請求項4】 演算を含むプログラムを実行する装置で
あって、 演算の対象となるデータを格納するための汎用レジスタ
と、 プログラム中に汎用レジスタが記述されているとき、予
めその汎用レジスタに関連づけられている演算を特定す
る解読手段と、 特定された演算を前記汎用レジスタに格納されたデータ
に対して行う演算手段と、 を含むことを特徴とするプログラム実行装置。 - 【請求項5】 前記解読手段はさらに、汎用レジスタに
対するアクセス形態も考慮したうえで演算を特定する請
求項4に記載のプログラム実行装置。 - 【請求項6】 前記汎用レジスタは自身に関連づけられ
た演算を指示する仮想的なレジスタである請求項4、5
のいずれかに記載のプログラム実行装置。 - 【請求項7】 前記演算手段は、データ転送命令の実行
によって前記汎用レジスタに対するデータ転送が行われ
たことを契機としてそのデータに対して前記汎用レジス
タに関連づけられた演算処理を起動する請求項4〜6の
いずれかに記載のプログラム実行装置。
Priority Applications (7)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP8243886A JPH1091432A (ja) | 1996-09-13 | 1996-09-13 | プログラム実行方法およびプログラム実行装置 |
US08/926,927 US6275925B1 (en) | 1996-09-13 | 1997-09-10 | Program execution method and program execution device |
SG9703362A SG83671A1 (en) | 1996-09-13 | 1997-09-12 | Program execution method and program executive device |
CNB971164304A CN1154919C (zh) | 1996-09-13 | 1997-09-12 | 程序执行方法和程序执行装置 |
TW086113264A TW364979B (en) | 1996-09-13 | 1997-09-12 | Program execution method and program execution device |
KR1019970047108A KR19980024623A (ko) | 1996-09-13 | 1997-09-12 | 프로그램 실행 방법 및 프로그램 실행 장치 |
HK98110563A HK1009862A1 (en) | 1996-09-13 | 1998-09-10 | Program execution method and program execution device. |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP8243886A JPH1091432A (ja) | 1996-09-13 | 1996-09-13 | プログラム実行方法およびプログラム実行装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH1091432A true JPH1091432A (ja) | 1998-04-10 |
Family
ID=17110459
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP8243886A Pending JPH1091432A (ja) | 1996-09-13 | 1996-09-13 | プログラム実行方法およびプログラム実行装置 |
Country Status (7)
Country | Link |
---|---|
US (1) | US6275925B1 (ja) |
JP (1) | JPH1091432A (ja) |
KR (1) | KR19980024623A (ja) |
CN (1) | CN1154919C (ja) |
HK (1) | HK1009862A1 (ja) |
SG (1) | SG83671A1 (ja) |
TW (1) | TW364979B (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001109376A (ja) * | 1999-10-04 | 2001-04-20 | Toyo Commun Equip Co Ltd | 演算回路および演算プロセッサ |
JP2021166010A (ja) * | 2020-04-08 | 2021-10-14 | 富士通株式会社 | 演算処理装置 |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6704787B1 (en) * | 1999-12-03 | 2004-03-09 | Intercard Payments, Inc. | Date of birth authentication system and method using demographic and/or geographic data supplied by a subscriber that is verified by a third party |
US7529912B2 (en) * | 2002-02-12 | 2009-05-05 | Via Technologies, Inc. | Apparatus and method for instruction-level specification of floating point format |
US7680990B2 (en) * | 2003-05-30 | 2010-03-16 | Hewlett-Packard Development Company, L.P. | Superword memory-access instructions for data processor |
US20160026486A1 (en) * | 2014-07-25 | 2016-01-28 | Soft Machines, Inc. | An allocation and issue stage for reordering a microinstruction sequence into an optimized microinstruction sequence to implement an instruction set agnostic runtime architecture |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4003033A (en) * | 1975-12-22 | 1977-01-11 | Honeywell Information Systems, Inc. | Architecture for a microprogrammed device controller |
US4112490A (en) * | 1976-11-24 | 1978-09-05 | Intel Corporation | Data transfer control apparatus and method |
US4354228A (en) * | 1979-12-20 | 1982-10-12 | International Business Machines Corporation | Flexible processor on a single semiconductor substrate using a plurality of arrays |
US4450519A (en) * | 1980-11-24 | 1984-05-22 | Texas Instruments Incorporated | Psuedo-microprogramming in microprocessor in single-chip microprocessor with alternate IR loading from internal or external program memories |
JPS6261125A (ja) * | 1985-09-12 | 1987-03-17 | Matsushita Electric Ind Co Ltd | デ−タ処理装置 |
JPS6298434A (ja) * | 1985-10-25 | 1987-05-07 | Hitachi Ltd | デ−タ処理システム |
FR2639737B1 (fr) * | 1988-11-30 | 1991-01-11 | Bull Sa | Circuit integre de programmation dynamique |
JP2553200B2 (ja) * | 1989-08-19 | 1996-11-13 | 富士通株式会社 | 情報処理装置 |
JPH03276226A (ja) * | 1990-03-26 | 1991-12-06 | Toshiba Corp | 高周波プロセッサ |
JP3164915B2 (ja) * | 1992-09-21 | 2001-05-14 | 株式会社日立製作所 | データ処理装置及びそのデータ処理方法 |
EP0594240B1 (en) * | 1992-10-19 | 2000-01-05 | Koninklijke Philips Electronics N.V. | Data processor with operation units sharing groups of register files |
JPH07302191A (ja) * | 1994-05-02 | 1995-11-14 | Hitachi Ltd | マイクロプロセッサおよびそのデータ変換方法 |
US5887183A (en) * | 1995-01-04 | 1999-03-23 | International Business Machines Corporation | Method and system in a data processing system for loading and storing vectors in a plurality of modes |
JPH08212075A (ja) * | 1995-01-31 | 1996-08-20 | Nec Corp | 情報処理装置 |
-
1996
- 1996-09-13 JP JP8243886A patent/JPH1091432A/ja active Pending
-
1997
- 1997-09-10 US US08/926,927 patent/US6275925B1/en not_active Expired - Lifetime
- 1997-09-12 CN CNB971164304A patent/CN1154919C/zh not_active Expired - Fee Related
- 1997-09-12 SG SG9703362A patent/SG83671A1/en unknown
- 1997-09-12 KR KR1019970047108A patent/KR19980024623A/ko not_active Application Discontinuation
- 1997-09-12 TW TW086113264A patent/TW364979B/zh not_active IP Right Cessation
-
1998
- 1998-09-10 HK HK98110563A patent/HK1009862A1/xx not_active IP Right Cessation
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001109376A (ja) * | 1999-10-04 | 2001-04-20 | Toyo Commun Equip Co Ltd | 演算回路および演算プロセッサ |
JP2021166010A (ja) * | 2020-04-08 | 2021-10-14 | 富士通株式会社 | 演算処理装置 |
Also Published As
Publication number | Publication date |
---|---|
SG83671A1 (en) | 2001-10-16 |
KR19980024623A (ko) | 1998-07-06 |
CN1177138A (zh) | 1998-03-25 |
CN1154919C (zh) | 2004-06-23 |
HK1009862A1 (en) | 1999-06-11 |
TW364979B (en) | 1999-07-21 |
US6275925B1 (en) | 2001-08-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6058465A (en) | Single-instruction-multiple-data processing in a multimedia signal processor | |
US5838984A (en) | Single-instruction-multiple-data processing using multiple banks of vector registers | |
US5001662A (en) | Method and apparatus for multi-gauge computation | |
JPH09311786A (ja) | データ処理装置 | |
US5764943A (en) | Data path circuitry for processor having multiple instruction pipelines | |
JP2001501330A (ja) | デジタル信号処理集積回路アーキテクチャ | |
US5969975A (en) | Data processing apparatus registers | |
JP2003523573A (ja) | プロセッサにおける書き込みトラヒックを減少するシステム及び方法 | |
JPH02226420A (ja) | 浮動小数点演算実行装置 | |
GB2317467A (en) | Input operand control in data processing systems | |
EP3340037B1 (en) | A data processing apparatus and method for controlling vector memory accesses | |
JP3578883B2 (ja) | データ処理装置 | |
US6055628A (en) | Microprocessor with a nestable delayed branch instruction without branch related pipeline interlocks | |
JP3510729B2 (ja) | 命令実行方法および命令実行装置 | |
US4631672A (en) | Arithmetic control apparatus for a pipeline processing system | |
US6078940A (en) | Microprocessor with an instruction for multiply and left shift with saturate | |
US20040015677A1 (en) | Digital signal processor with SIMD organization and flexible data manipulation | |
JPH1091432A (ja) | プログラム実行方法およびプログラム実行装置 | |
US5768553A (en) | Microprocessor using an instruction field to define DSP instructions | |
JP2001084141A (ja) | プロセッサ | |
JPH096614A (ja) | データ処理装置 | |
JPH0345420B2 (ja) | ||
USRE41012E1 (en) | Register file indexing methods and apparatus for providing indirect control of register addressing in a VLIW processor | |
JP2856784B2 (ja) | 電子計算機 | |
JP2878250B2 (ja) | データ処理装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20040427 |