JPH103378A - 演算装置および演算方法 - Google Patents
演算装置および演算方法Info
- Publication number
- JPH103378A JPH103378A JP8153936A JP15393696A JPH103378A JP H103378 A JPH103378 A JP H103378A JP 8153936 A JP8153936 A JP 8153936A JP 15393696 A JP15393696 A JP 15393696A JP H103378 A JPH103378 A JP H103378A
- Authority
- JP
- Japan
- Prior art keywords
- data
- register
- arithmetic
- output
- bus
- 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
Landscapes
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
(57)【要約】
【課題】 メモリ中心アーキテクチャをもつプロセッサ
において、連続する2項演算で1つ前の演算で用いたデ
ータの1つを必ず次の演算でも使用するような場合に、
効率良くデータの供給および演算結果の格納ができる演
算装置および演算方法を提供する。 【解決手段】 ポインタ100a,100bでアドレッ
シングされたデータがそれぞれ演算バス120,121
を経由してレジスタ140、レジスタ141にラッチさ
れる。そのデータを入力として2項演算を行い、結果を
レジスタ142に格納する(ここまでで1ステップ)。レ
ジスタ142のデータを格納する(1ステップ)。次にレ
ジスタ141でレジスタ140のデータをラッチする。
次の2項演算はポインタ100aでアドレッシングされ
たデータとレジスタ141のデータとで行い結果をレジ
スタ142に格納する。並列的にポインタ100bでア
ドレッシングされるアドレスにレジスタ142のデータ
を格納する1ステップを繰り返す。
において、連続する2項演算で1つ前の演算で用いたデ
ータの1つを必ず次の演算でも使用するような場合に、
効率良くデータの供給および演算結果の格納ができる演
算装置および演算方法を提供する。 【解決手段】 ポインタ100a,100bでアドレッ
シングされたデータがそれぞれ演算バス120,121
を経由してレジスタ140、レジスタ141にラッチさ
れる。そのデータを入力として2項演算を行い、結果を
レジスタ142に格納する(ここまでで1ステップ)。レ
ジスタ142のデータを格納する(1ステップ)。次にレ
ジスタ141でレジスタ140のデータをラッチする。
次の2項演算はポインタ100aでアドレッシングされ
たデータとレジスタ141のデータとで行い結果をレジ
スタ142に格納する。並列的にポインタ100bでア
ドレッシングされるアドレスにレジスタ142のデータ
を格納する1ステップを繰り返す。
Description
【0001】
【発明の属する技術分野】本発明はメモリ中心アーキテ
クチャを採用しているプロセッサの演算装置および演算
方法に関するものである。
クチャを採用しているプロセッサの演算装置および演算
方法に関するものである。
【0002】
【従来の技術】近年、ディジタル移動体通信システムの
技術的発展は著しく、マルチメディア通信、パーソナル
移動体通信端末をはじめとしてさまざまな技術が活発に
議論、研究されている。通信されるデータは音声、画
像、FAX、オーディオデータなど多岐に渡っているが、
これからのマルチメディア通信では画像データが主役に
なることは間違いない。画像データは膨大である為、デ
ータの圧縮伸長は必須の技術と言える。この圧縮伸長ア
ルゴリズムはMPEG1、MPEG2、H.261、そしてH.263等、そ
の用途に従って多く標準化されてきている。アルゴリズ
ム中の大部分を占めるのは動きベクトル検出処理であ
る。動きベクトル検出、動き予測は画質の向上には欠か
せない処理である。H.263等ではこれらの処理の単位と
して精度を上げる為に1/2整数画素での動きベクトル検
出、動き予測にも対応する事になった。
技術的発展は著しく、マルチメディア通信、パーソナル
移動体通信端末をはじめとしてさまざまな技術が活発に
議論、研究されている。通信されるデータは音声、画
像、FAX、オーディオデータなど多岐に渡っているが、
これからのマルチメディア通信では画像データが主役に
なることは間違いない。画像データは膨大である為、デ
ータの圧縮伸長は必須の技術と言える。この圧縮伸長ア
ルゴリズムはMPEG1、MPEG2、H.261、そしてH.263等、そ
の用途に従って多く標準化されてきている。アルゴリズ
ム中の大部分を占めるのは動きベクトル検出処理であ
る。動きベクトル検出、動き予測は画質の向上には欠か
せない処理である。H.263等ではこれらの処理の単位と
して精度を上げる為に1/2整数画素での動きベクトル検
出、動き予測にも対応する事になった。
【0003】1/2整数画素単位の検出のためにはあらか
じめ整数画素のデータから補間して1/2整数画素のデー
タを作っておく必要がある。動きベクトル検出はフルサ
ーチでなくてもアルゴリズムの工夫である程度処理を減
らす事が出来るが、1/2整数画素のデータをつくる処理
を減らす事は出来ない。
じめ整数画素のデータから補間して1/2整数画素のデー
タを作っておく必要がある。動きベクトル検出はフルサ
ーチでなくてもアルゴリズムの工夫である程度処理を減
らす事が出来るが、1/2整数画素のデータをつくる処理
を減らす事は出来ない。
【0004】1/2整数画素データの作成の様子を図5を
用いて説明する。大きめの○で描かれた所が整数画素デ
ータとすると、1/2整数画素データの作成はそれらを元
にして小さい○で描かれた部分のデータを求める事に相
当する。例えばd[1,2]は(d[1]+d[2])/2により求まり、d
[1,n+1]は(d[1]+d[n+1])/2で求まる。更にd[1,2,n+1,n+
2]は(d[1]+d[2]+d[n+1]+d[n+2])/4により求めることが
できる。従って、d[1,2],d[2,3],d[3,4],,,,d[n+1,n+
2],d[n+2,n+3],d[n+3,n+4],,と求めて行く為には{d[1],
d[2]},{d[2],d[3]},{d[3],d[4]},,,{d[n+1],d[n+2]},{d
[n+2],d[n+3]},{d[n+3],d[n+4]},,のようなデータの組
合せで2項演算およびシフトを繰り返して行けば良く、
更にd[1,n+1],d[n+1,2n+1],,,d[1,2,n+1,n+2],d[n+1,n+
2,2n+1,2n+2],,と求めて行く為には上記の演算結果に対
して{d[1],d[n+1]},d[n+1,2n+1]},,,{d[1,2],d[n+1,n+
2]},{d[n+1,n+2],d[2n+1,2n+2]},,のようなデータの組
合せで2項演算およびシフトを繰り返して行けば良いこ
とになる。
用いて説明する。大きめの○で描かれた所が整数画素デ
ータとすると、1/2整数画素データの作成はそれらを元
にして小さい○で描かれた部分のデータを求める事に相
当する。例えばd[1,2]は(d[1]+d[2])/2により求まり、d
[1,n+1]は(d[1]+d[n+1])/2で求まる。更にd[1,2,n+1,n+
2]は(d[1]+d[2]+d[n+1]+d[n+2])/4により求めることが
できる。従って、d[1,2],d[2,3],d[3,4],,,,d[n+1,n+
2],d[n+2,n+3],d[n+3,n+4],,と求めて行く為には{d[1],
d[2]},{d[2],d[3]},{d[3],d[4]},,,{d[n+1],d[n+2]},{d
[n+2],d[n+3]},{d[n+3],d[n+4]},,のようなデータの組
合せで2項演算およびシフトを繰り返して行けば良く、
更にd[1,n+1],d[n+1,2n+1],,,d[1,2,n+1,n+2],d[n+1,n+
2,2n+1,2n+2],,と求めて行く為には上記の演算結果に対
して{d[1],d[n+1]},d[n+1,2n+1]},,,{d[1,2],d[n+1,n+
2]},{d[n+1,n+2],d[2n+1,2n+2]},,のようなデータの組
合せで2項演算およびシフトを繰り返して行けば良いこ
とになる。
【0005】このように1/2整数画素データの作成は連
続する2項演算であって、1つ前の演算で用いたデータ
の1つを必ず次の演算でも使用するような演算を繰り返
し行うことに相当する。
続する2項演算であって、1つ前の演算で用いたデータ
の1つを必ず次の演算でも使用するような演算を繰り返
し行うことに相当する。
【0006】上記のような演算を実行するにあたって従
来のメモリ中心アーキテクチャを持つプロセッサ(DS
Pを含む)は以下のような手順で実現していた。
来のメモリ中心アーキテクチャを持つプロセッサ(DS
Pを含む)は以下のような手順で実現していた。
【0007】データメモリと、同時に最大2つ使用可能
なアドレスポインタ(データメモリポインタ)と、2つ
の演算バスと1つの転送バスと、2つの演算バスからの
データを入力として2項演算を行うALUと、演算結果を
格納するレジスタを備えたメモリ中心アーキテクチャを
持つプロセッサで構成(参考:松下電子工業刊 MN1901/M
N1909ユーザーズマニュアル)され、2項演算を行う為に
は2つのデータメモリポインタを用いて2データを演算
バス経由でALUに供給し、一旦レジスタに演算結果を格
納し、別命令(つまり転送命令)または2項演算中の並
列転送としてデータメモリに演算結果を格納していた。
なアドレスポインタ(データメモリポインタ)と、2つ
の演算バスと1つの転送バスと、2つの演算バスからの
データを入力として2項演算を行うALUと、演算結果を
格納するレジスタを備えたメモリ中心アーキテクチャを
持つプロセッサで構成(参考:松下電子工業刊 MN1901/M
N1909ユーザーズマニュアル)され、2項演算を行う為に
は2つのデータメモリポインタを用いて2データを演算
バス経由でALUに供給し、一旦レジスタに演算結果を格
納し、別命令(つまり転送命令)または2項演算中の並
列転送としてデータメモリに演算結果を格納していた。
【0008】すなわち上記の演算を実行する為に、 (ステップ1) 第1のデータポインタの設定 (ステップ2) 第2のデータポインタの設定 (ステップ3) 2項演算(加算)実行(第1及び第2のデ
ータポインタのインクリメント) (ステップ4) 加算結果を1ビット右シフト (ステップ5) シフト結果の格納 以後(ステップ3)から(ステップ5)の処理の繰り返しを
行うことによって実現していた。N回の2項演算に対し
て(2+3N)ステップを要していた。
ータポインタのインクリメント) (ステップ4) 加算結果を1ビット右シフト (ステップ5) シフト結果の格納 以後(ステップ3)から(ステップ5)の処理の繰り返しを
行うことによって実現していた。N回の2項演算に対し
て(2+3N)ステップを要していた。
【0009】
【発明が解決しようとする課題】ところが、これからの
マルチメディア用の携帯端末の仕様を考えると画像デー
タ転送もリアルタイムで送受信できることが望まれ、そ
のためにはプロセッサでの処理もより効率良く行わなけ
ればならない。上記のような構成、方法では連続する2
項演算に対しデータの供給、演算結果の格納で無駄があ
った。すなわち、2データのうち1データは常に次の演
算で使われるのに、改めて次演算でデータを明示的に供
給しなくてはならないこと、およびそのためにデータメ
モリをアドレッシングするポインタを同時に2つ使用し
てしまい、転送バスが使用されていないにも関わらず並
列転送で演算結果を格納できないという問題点を有して
いた。
マルチメディア用の携帯端末の仕様を考えると画像デー
タ転送もリアルタイムで送受信できることが望まれ、そ
のためにはプロセッサでの処理もより効率良く行わなけ
ればならない。上記のような構成、方法では連続する2
項演算に対しデータの供給、演算結果の格納で無駄があ
った。すなわち、2データのうち1データは常に次の演
算で使われるのに、改めて次演算でデータを明示的に供
給しなくてはならないこと、およびそのためにデータメ
モリをアドレッシングするポインタを同時に2つ使用し
てしまい、転送バスが使用されていないにも関わらず並
列転送で演算結果を格納できないという問題点を有して
いた。
【0010】本発明は以上の点に鑑み、その目的は僅か
なハードウェアの変更によって、連続する2項演算にお
いて、1つ前の演算で用いたデータの1つを必ず次の演
算でも使用するような場合に効率良くデータの供給およ
び演算結果の格納ができる演算装置および演算方法を提
供することにある。
なハードウェアの変更によって、連続する2項演算にお
いて、1つ前の演算で用いたデータの1つを必ず次の演
算でも使用するような場合に効率良くデータの供給およ
び演算結果の格納ができる演算装置および演算方法を提
供することにある。
【0011】
【課題を解決するための手段】請求項1に係る本発明の
演算装置は、メモリ中心アーキテクチャを持つプロセッ
サにおいて、読み出し、書き込み可能なデータ記憶手段
と、前記データ記憶手段に接続される第1,第2の演算
データバスと、前記データ記憶手段をアドレッシングし
て前記第1,第2の演算データバスに出力するデータを
決定、あるいは転送バス上のデータのデータ記憶手段上
の格納アドレスを指し示すデータメモリポインタ手段
と、前記第1の演算データバスからのデータをラッチす
る第1のマスタースレーブ型レジスタと、前記第1のレ
ジスタ(スレーブ)の出力と前記第2の演算データバスの
データを、モードによって切り換え出力するマルチプレ
クサと、前記マルチプレクサの出力をラッチする第2の
レジスタと、前記第1のレジスタ(マスター)のデータと
前記第2のレジスタのデータの2項演算を行う算術論理
演算回路と、前記算術演論理算回路の出力をラッチする
第3のレジスタと、前記第3のレジスタと前記データ記
憶手段に接続される転送バスとを備えた構成を採用す
る。
演算装置は、メモリ中心アーキテクチャを持つプロセッ
サにおいて、読み出し、書き込み可能なデータ記憶手段
と、前記データ記憶手段に接続される第1,第2の演算
データバスと、前記データ記憶手段をアドレッシングし
て前記第1,第2の演算データバスに出力するデータを
決定、あるいは転送バス上のデータのデータ記憶手段上
の格納アドレスを指し示すデータメモリポインタ手段
と、前記第1の演算データバスからのデータをラッチす
る第1のマスタースレーブ型レジスタと、前記第1のレ
ジスタ(スレーブ)の出力と前記第2の演算データバスの
データを、モードによって切り換え出力するマルチプレ
クサと、前記マルチプレクサの出力をラッチする第2の
レジスタと、前記第1のレジスタ(マスター)のデータと
前記第2のレジスタのデータの2項演算を行う算術論理
演算回路と、前記算術演論理算回路の出力をラッチする
第3のレジスタと、前記第3のレジスタと前記データ記
憶手段に接続される転送バスとを備えた構成を採用す
る。
【0012】請求項2に係る本発明の演算装置は、前記
データメモリポインタ手段は、前記データ記憶手段をア
ドレッシングして前記第1の演算データバスに出力する
データを決定する第1のデータメモリポインタと、前記
データ記憶手段をアドレッシングして前記第2の演算デ
ータバスに出力するデータを決定、あるいは転送バス上
のデータのデータ記憶手段上の格納アドレスを指し示す
第2のデータメモリポインタと有する構成を採用する。
データメモリポインタ手段は、前記データ記憶手段をア
ドレッシングして前記第1の演算データバスに出力する
データを決定する第1のデータメモリポインタと、前記
データ記憶手段をアドレッシングして前記第2の演算デ
ータバスに出力するデータを決定、あるいは転送バス上
のデータのデータ記憶手段上の格納アドレスを指し示す
第2のデータメモリポインタと有する構成を採用する。
【0013】請求項3に係る本発明の演算装置は、前記
算術論理演算回路と前記転送バスの間に接続され、前記
算術論理演算回路の出力をスルーまたは、少なくとも右
側に1ビットシフトするシフタを持つ構成を採用する。
算術論理演算回路と前記転送バスの間に接続され、前記
算術論理演算回路の出力をスルーまたは、少なくとも右
側に1ビットシフトするシフタを持つ構成を採用する。
【0014】前記マルチプレクサのモードは、少なくと
も命令のコードまたは所定のレジスタの値から決まるこ
とが望ましい。また前記シフタのモードは、少なくとも
命令のコードまたは所定のレジスタの値から決まること
が望ましい。
も命令のコードまたは所定のレジスタの値から決まるこ
とが望ましい。また前記シフタのモードは、少なくとも
命令のコードまたは所定のレジスタの値から決まること
が望ましい。
【0015】請求項6に係る本発明の演算方法は、第1
のレジスタ(マスター)の出力と第2のレジスタの出力を
入力とし、かつ、2データの内の一方は1つ前の2項演
算で使用したデータを使用する2項演算を行う方法であ
って、 a)第1のデータメモリポインタによりアドレッシング
されたデータを第1の演算データバスから第1のレジス
タ(マスター)にラッチするステップと、 b)第2のデータメモリポインタによりアドレッシング
されたデータを第2の演算データバスから第2のレジス
タにラッチするステップと、 c)第1のレジスタ(マスター)および第2のレジスタで
ラッチされた2つのデータの2項演算をして結果を第3
のレジスタに格納するステップと、 d)第1のデータメモリポインタによりアドレッシング
されたデータを第1の演算データバスから第1のレジス
タ(マスター)にラッチするステップと、 e)第1のレジスタ(スレーブ)のデータを第2のレジス
タにラッチするステップと、 f)第3のレジスタのデータを第2のデータメモリポイ
ンタでアドレッシングされるデータ記憶手段上のアドレ
スに格納するステップとを包合する構成を採用する。
のレジスタ(マスター)の出力と第2のレジスタの出力を
入力とし、かつ、2データの内の一方は1つ前の2項演
算で使用したデータを使用する2項演算を行う方法であ
って、 a)第1のデータメモリポインタによりアドレッシング
されたデータを第1の演算データバスから第1のレジス
タ(マスター)にラッチするステップと、 b)第2のデータメモリポインタによりアドレッシング
されたデータを第2の演算データバスから第2のレジス
タにラッチするステップと、 c)第1のレジスタ(マスター)および第2のレジスタで
ラッチされた2つのデータの2項演算をして結果を第3
のレジスタに格納するステップと、 d)第1のデータメモリポインタによりアドレッシング
されたデータを第1の演算データバスから第1のレジス
タ(マスター)にラッチするステップと、 e)第1のレジスタ(スレーブ)のデータを第2のレジス
タにラッチするステップと、 f)第3のレジスタのデータを第2のデータメモリポイ
ンタでアドレッシングされるデータ記憶手段上のアドレ
スに格納するステップとを包合する構成を採用する。
【0016】請求項7に係る本発明の演算方法は、ステ
ップa)〜c)は、プログラムの実行における1ステップ
において実行され、ステップd)〜f)は該プログラムの
実行における1ステップにおいて実行される構成を採用
する。
ップa)〜c)は、プログラムの実行における1ステップ
において実行され、ステップd)〜f)は該プログラムの
実行における1ステップにおいて実行される構成を採用
する。
【0017】請求項8に係る本発明の演算方法は、前記
第1のレジスタ(マスター)の出力と前記第2のレジスタ
の出力を入力とし、連続的に、かつ2データの内の一方
は1つ前の2項演算で使用したデータを使用する2項演
算を行う方法であって、1回のステップa)〜c)の実
行、および複数回ステップd)〜f)を繰り返す構成を採
用する。
第1のレジスタ(マスター)の出力と前記第2のレジスタ
の出力を入力とし、連続的に、かつ2データの内の一方
は1つ前の2項演算で使用したデータを使用する2項演
算を行う方法であって、1回のステップa)〜c)の実
行、および複数回ステップd)〜f)を繰り返す構成を採
用する。
【0018】また前記ステップc)で前記第3のレジス
タに2項演算結果を格納する際にシフタによりシフトし
て前記第3のレジスタに格納することが望ましい。
タに2項演算結果を格納する際にシフタによりシフトし
て前記第3のレジスタに格納することが望ましい。
【0019】
【発明の実施の形態】以下本発明に係わる一実施の形態
の演算装置について図面を参照しながら説明する。図1
に本発明に係わる演算装置の構成図を示す。図1はメモ
リ中心のアーキテクチャを持つプロセッサの内部構成の
一部である。
の演算装置について図面を参照しながら説明する。図1
に本発明に係わる演算装置の構成図を示す。図1はメモ
リ中心のアーキテクチャを持つプロセッサの内部構成の
一部である。
【0020】図1において、100は2リード1ライト
可能なデータ記憶手段であり、第1のデータメモリポイ
ンタ110a、第2のデータメモリポインタ110b各
々に対応したデータメモリ100b,100aから構成
される。
可能なデータ記憶手段であり、第1のデータメモリポイ
ンタ110a、第2のデータメモリポインタ110b各
々に対応したデータメモリ100b,100aから構成
される。
【0021】110はデータ記憶手段100をアドレッ
シングするデータメモリポインタ手段であり、データメ
モリ100b,100aを各々アドレッシングするデー
タポインタ110a,110bから構成される。
シングするデータメモリポインタ手段であり、データメ
モリ100b,100aを各々アドレッシングするデー
タポインタ110a,110bから構成される。
【0022】120はデータメモリ100bに接続され
後述の第1のレジスタ140に接続される第1の演算デ
ータバス、121はデータメモリ100aに接続され後
述のマルチプレクサ130に接続される第2の演算デー
タバスである。
後述の第1のレジスタ140に接続される第1の演算デ
ータバス、121はデータメモリ100aに接続され後
述のマルチプレクサ130に接続される第2の演算デー
タバスである。
【0023】130は後述の切替信号131に従って出
力を切り替えるマルチプレクサ、131はマルチプレク
サ130でレジスタ140のデータを選択する時に
「1」、演算データバス120のデータを選択する時に
「0」となる切替信号であり、命令の種類によって決定
される。
力を切り替えるマルチプレクサ、131はマルチプレク
サ130でレジスタ140のデータを選択する時に
「1」、演算データバス120のデータを選択する時に
「0」となる切替信号であり、命令の種類によって決定
される。
【0024】140は第1の演算データバスのデータを
ラッチするマスタースレーブ型の第1のレジスタであ
り、マスター側の出力を後述のALUへ、スレーブ側の出
力を前述のマルチプレクサ130に出力する。
ラッチするマスタースレーブ型の第1のレジスタであ
り、マスター側の出力を後述のALUへ、スレーブ側の出
力を前述のマルチプレクサ130に出力する。
【0025】141は前記マルチプレクサのデータをラ
ッチする第2のレジスタ、142は後述のシフタ160
の出力をラッチする第3のレジスタ、150は前記第1
のレジスタ140、第2のレジスタ141の出力を入力
として2項演算を行う算術論理演算回路(ALU)である。
ッチする第2のレジスタ、142は後述のシフタ160
の出力をラッチする第3のレジスタ、150は前記第1
のレジスタ140、第2のレジスタ141の出力を入力
として2項演算を行う算術論理演算回路(ALU)である。
【0026】160は算術論理演算回路150の出力を
後述のシフト指令信号161により、入力をスルーする
か1ビット右にシフトするかを判断して出力するシフ
タ、161はシフタ160の入力をシフトする時は
「1」、しない時は「0」となるシフト指令信号であ
り、命令の種類によって決定される。
後述のシフト指令信号161により、入力をスルーする
か1ビット右にシフトするかを判断して出力するシフ
タ、161はシフタ160の入力をシフトする時は
「1」、しない時は「0」となるシフト指令信号であ
り、命令の種類によって決定される。
【0027】122は第3のレジスタ142とデータメ
モリ100aに接続される転送バスである。
モリ100aに接続される転送バスである。
【0028】本実施の形態では切替信号131は命令の
種類により決定されるとしたが、あるモード設定レジス
タまたはそれらの両方により決まるとしてもよい。同様
にシフト指令信号161は命令の種類により決定される
としたが、あるモード設定レジスタまたはそれらの両方
により決まるとしても良い。
種類により決定されるとしたが、あるモード設定レジス
タまたはそれらの両方により決まるとしてもよい。同様
にシフト指令信号161は命令の種類により決定される
としたが、あるモード設定レジスタまたはそれらの両方
により決まるとしても良い。
【0029】また本実施の形態ではシフタ160を算術
論理演算回路150と第3のレジスタ142の間に接続
するとしたが、算術論理演算回路150と転送バス12
2の間に接続されておればよく、シフタ160は算術論
理演算回路150と第3のレジスタ142の間ではな
く、例えば第3のレジスタ142と転送バス122の間
に接続されていてもよい。
論理演算回路150と第3のレジスタ142の間に接続
するとしたが、算術論理演算回路150と転送バス12
2の間に接続されておればよく、シフタ160は算術論
理演算回路150と第3のレジスタ142の間ではな
く、例えば第3のレジスタ142と転送バス122の間
に接続されていてもよい。
【0030】以上のように構成された本実施の形態の演
算装置において、連続する2項演算であって2データの
うち1データは必ず一つ前の演算で用いたデータを使用
するような場合に、データメモリ100からデータが供
給され、2項演算結果がデータメモリ100に格納され
るまでの動作を図1、図2、図3、図4を用いて説明す
る。
算装置において、連続する2項演算であって2データの
うち1データは必ず一つ前の演算で用いたデータを使用
するような場合に、データメモリ100からデータが供
給され、2項演算結果がデータメモリ100に格納され
るまでの動作を図1、図2、図3、図4を用いて説明す
る。
【0031】実行したい演算は(d[1]+d[2])/2,(d[2]+d
[3])/2,(d[3]+d[4])/2,(d[4]+d[5])/2,,,である。今、
図4に示すようにd[1]はデータメモリ100aに格納さ
れ、d[2],d[3],,はデータメモリ100bの連続するア
ドレスに格納されているとする。なお、本実施の形態で
はデータは連続するアドレスに格納されているとした
が、命令実行時にポインタ修飾できる範囲のアドレスに
格納されていれば良い。
[3])/2,(d[3]+d[4])/2,(d[4]+d[5])/2,,,である。今、
図4に示すようにd[1]はデータメモリ100aに格納さ
れ、d[2],d[3],,はデータメモリ100bの連続するア
ドレスに格納されているとする。なお、本実施の形態で
はデータは連続するアドレスに格納されているとした
が、命令実行時にポインタ修飾できる範囲のアドレスに
格納されていれば良い。
【0032】以下、命令実行のステップ毎に説明する。 (ステップ1)第1のデータメモリポインタ110aにデ
ータd[2]が格納されているデータメモリ100bのアド
レスを設定する。
ータd[2]が格納されているデータメモリ100bのアド
レスを設定する。
【0033】(ステップ2)第2のデータメモリポインタ
110bにデータd[1]が格納されているデータメモリ1
00aのアドレスを設定する。
110bにデータd[1]が格納されているデータメモリ1
00aのアドレスを設定する。
【0034】(ステップ3)AVRN命令(図3参照)を用
いて演算を行う。このAVRN命令は、第1のデータメ
モリポインタ110aの更新の有無のモードを持ち、こ
のステップではその更新を行う。
いて演算を行う。このAVRN命令は、第1のデータメ
モリポインタ110aの更新の有無のモードを持ち、こ
のステップではその更新を行う。
【0035】・切替信号131が「0」となる。 ・シフト指令信号161が「1」となる。
【0036】・第1のデータメモリポインタ110aの
値が「1」インクリメントされる。 ・第1のレジスタ140にd[2]がラッチされる。
値が「1」インクリメントされる。 ・第1のレジスタ140にd[2]がラッチされる。
【0037】・第2のレジスタ141にd[1]がラッチさ
れる。 ・ALU150でd[2]+d[1]が演算される。
れる。 ・ALU150でd[2]+d[1]が演算される。
【0038】・第3のレジスタ142に(d[2]+d[1])/2
が格納される。 (ステップ4)第2のデータメモリポインタ110bに演
算結果を格納するデータメモリ100aのアドレスの先
頭アドレスを設定する。
が格納される。 (ステップ4)第2のデータメモリポインタ110bに演
算結果を格納するデータメモリ100aのアドレスの先
頭アドレスを設定する。
【0039】(ステップ5)AVR命令(図3参照)を用い
て演算を行う。このAVR命令も、第1のデータメモリ
ポインタ110aの更新の有無のモードを持ち、このス
テップではその更新を行う。
て演算を行う。このAVR命令も、第1のデータメモリ
ポインタ110aの更新の有無のモードを持ち、このス
テップではその更新を行う。
【0040】・切替信号131が「1」となる。 ・第1のデータメモリポインタ110aの値が「1」イ
ンクリメントされる。
ンクリメントされる。
【0041】・第1のレジスタ(マスタ)140にd[3]
がラッチされる。 ・第1のレジスタ(スレーブ)140から第2のレジス
タ141にd[2]がラッチされる(図2参照)。
がラッチされる。 ・第1のレジスタ(スレーブ)140から第2のレジス
タ141にd[2]がラッチされる(図2参照)。
【0042】・転送バス122経由で第3のレジスタ1
42のデータ((d[2]+d[1])/2)が第2のデータメモリポ
インタ110bがアドレッシングするデータメモリ10
0aのアドレスに格納される。
42のデータ((d[2]+d[1])/2)が第2のデータメモリポ
インタ110bがアドレッシングするデータメモリ10
0aのアドレスに格納される。
【0043】・ALU150でd[3]+d[2]が演算され
る。 ・第3のレジスタ142に(d[3]+d[2])/2が格納され
る。
る。 ・第3のレジスタ142に(d[3]+d[2])/2が格納され
る。
【0044】(ステップ6)AVR命令(図3参照)を用い
て演算を行う。このステップでも第1のデータメモリポ
インタ110aの更新を行う。
て演算を行う。このステップでも第1のデータメモリポ
インタ110aの更新を行う。
【0045】・切替信号131が「1」となる。 ・第1のデータメモリポインタ110aの値が「1」イ
ンクリメントされる。
ンクリメントされる。
【0046】・第1のレジスタ(マスタ)140にd[4]
がラッチされる。 ・第1のレジスタ(スレーブ)140から第2のレジス
タ141にd[3]がラッチされる(図2参照)。
がラッチされる。 ・第1のレジスタ(スレーブ)140から第2のレジス
タ141にd[3]がラッチされる(図2参照)。
【0047】・転送バス122経由で第3のレジスタ1
42のデータ((d[3]+d[2])/2)が第2のデータメモリポ
インタ110bがアドレッシングするデータメモリ10
0aのアドレスに格納される。
42のデータ((d[3]+d[2])/2)が第2のデータメモリポ
インタ110bがアドレッシングするデータメモリ10
0aのアドレスに格納される。
【0048】・ALU150でd[4]+d[3]が演算され
る。 ・第3のレジスタ142に(d[4]+d[3])/2が格納され
る。
る。 ・第3のレジスタ142に(d[4]+d[3])/2が格納され
る。
【0049】以下同様にAVR命令を繰り返し、最後の
AVR命令が終了した後、第3のレジスタ142のデー
タをデータメモリ100aに転送する。
AVR命令が終了した後、第3のレジスタ142のデー
タをデータメモリ100aに転送する。
【0050】以上より目的の演算および結果の格納が実
現できる。
現できる。
【0051】
【発明の効果】本発明によれば、メモリ中心アーキテク
チャをもつプロセッサにおいて、僅かなハードウェアの
変更によって、連続する2項演算で、1つ前の演算で用
いたデータの1つを必ず次の演算でも使用するような場
合に、効率良くデータの供給および演算結果の格納がで
きる演算装置および演算方法を提供できる。上記の演算
および演算結果の格納がN回連続する2項演算に対して
は(N+4)回で実現できる。
チャをもつプロセッサにおいて、僅かなハードウェアの
変更によって、連続する2項演算で、1つ前の演算で用
いたデータの1つを必ず次の演算でも使用するような場
合に、効率良くデータの供給および演算結果の格納がで
きる演算装置および演算方法を提供できる。上記の演算
および演算結果の格納がN回連続する2項演算に対して
は(N+4)回で実現できる。
【図1】本発明の一実施の形態に係わる演算装置の構成
図
図
【図2】本実施の形態に於ける各レジスタ、転送バス、
データバス動きを示すタイミング図
データバス動きを示すタイミング図
【図3】本実施の形態に於ける命令の説明図
【図4】本実施の形態に於けるデータメモリ上のデータ
格納状態を示す図
格納状態を示す図
【図5】補間データの作成手順を示す図
【符号の説明】 100 データ記憶手段 110 データメモリポインタ手段 120,121 演算データバス 122 転送バス 130 マルチプレクサ 131 切替信号 140,141,142 レジスタ 150 算術論理演算回路(ALU) 160 シフタ 161 シフト指令信号
Claims (9)
- 【請求項1】 メモリ中心アーキテクチャを持つプロセ
ッサにおいて、 読み出し、書き込み可能なデータ記憶手段と、 前記データ記憶手段に接続される第1,第2の演算デー
タバスと、 前記データ記憶手段をアドレッシングして前記第1,第
2の演算データバスに出力するデータを決定、あるいは
転送バス上のデータのデータ記憶手段上の格納アドレス
を指し示すデータメモリポインタ手段と、 前記第1の演算データバスからのデータをラッチする第
1のマスタースレーブ型レジスタと、 前記第1のレジスタ(スレーブ)の出力と前記第2の演算
データバスのデータを、モードによって切り換え出力す
るマルチプレクサと、 前記マルチプレクサの出力をラッチする第2のレジスタ
と、 前記第1のレジスタ(マスター)のデータと前記第2のレ
ジスタのデータの2項演算を行う算術論理演算回路と、 前記算術演論理算回路の出力をラッチする第3のレジス
タと、 前記第3のレジスタと前記データ記憶手段に接続される
転送バスとを備えたことを特徴とする演算装置。 - 【請求項2】 前記データメモリポインタ手段は、前記
データ記憶手段をアドレッシングして前記第1の演算デ
ータバスに出力するデータを決定する第1のデータメモ
リポインタと、前記データ記憶手段をアドレッシングし
て前記第2の演算データバスに出力するデータを決定、
あるいは転送バス上のデータのデータ記憶手段上の格納
アドレスを指し示す第2のデータメモリポインタと有す
ることを特徴とする請求項1記載の演算装置。 - 【請求項3】 前記算術論理演算回路と前記転送バスの
間に接続され、前記算術論理演算回路の出力をスルーま
たは、少なくとも右側に1ビットシフトするシフタを持
つ請求項1記載の演算装置。 - 【請求項4】 前記マルチプレクサのモードは、少なく
とも命令のコードまたは所定のレジスタの値から決まる
請求項1記載の演算装置。 - 【請求項5】 前記シフタのモードは、少なくとも命令
のコードまたは所定のレジスタの値から決まる請求項1
記載の演算装置。 - 【請求項6】 第1のレジスタ(マスター)の出力と第2
のレジスタの出力を入力とし、かつ、2データの内の一
方は1つ前の2項演算で使用したデータを使用する2項
演算を行う方法であって、 a)第1のデータメモリポインタによりアドレッシング
されたデータを第1の演算データバスから第1のレジス
タ(マスター)にラッチするステップと、 b)第2のデータメモリポインタによりアドレッシング
されたデータを第2の演算データバスから第2のレジス
タにラッチするステップと、 c)第1のレジスタ(マスター)および第2のレジスタで
ラッチされた2つのデータの2項演算をして結果を第3
のレジスタに格納するステップと、 d)第1のデータメモリポインタによりアドレッシング
されたデータを第1の演算データバスから第1のレジス
タ(マスター)にラッチするステップと、 e)第1のレジスタ(スレーブ)のデータを第2のレジス
タにラッチするステップと、 f)第3のレジスタのデータを第2のデータメモリポイ
ンタでアドレッシングされるデータ記憶手段上のアドレ
スに格納するステップとを包合する演算方法。 - 【請求項7】 ステップa)〜c)は、プログラムの実行
における1ステップにおいて実行され、ステップd)〜
f)は該プログラムの実行における1ステップにおいて
実行される請求項6に記載の演算方法。 - 【請求項8】 前記第1のレジスタ(マスター)の出力と
前記第2のレジスタの出力を入力とし、連続的に、かつ
2データの内の一方は1つ前の2項演算で使用したデー
タを使用する2項演算を行う方法であって、 1回のステップa)〜c)の実行、および複数回ステップ
d)〜f)を繰り返す請求項6又は請求項7記載の演算方
法。 - 【請求項9】 前記ステップc)で前記第3のレジスタ
に2項演算結果を格納する際にシフタによりシフトして
前記第3のレジスタに格納する請求項8記載の演算方
法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP8153936A JPH103378A (ja) | 1996-06-14 | 1996-06-14 | 演算装置および演算方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP8153936A JPH103378A (ja) | 1996-06-14 | 1996-06-14 | 演算装置および演算方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH103378A true JPH103378A (ja) | 1998-01-06 |
Family
ID=15573326
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP8153936A Pending JPH103378A (ja) | 1996-06-14 | 1996-06-14 | 演算装置および演算方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH103378A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4715917A (en) * | 1984-12-14 | 1987-12-29 | Thomson-Cgr | Process for the production of a multidetector with ionization chambers |
US6665770B2 (en) | 2001-01-31 | 2003-12-16 | Matsushita Electric Industrial Co., Ltd. | Device and method for updating a pointer value by switching between pointer values |
-
1996
- 1996-06-14 JP JP8153936A patent/JPH103378A/ja active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4715917A (en) * | 1984-12-14 | 1987-12-29 | Thomson-Cgr | Process for the production of a multidetector with ionization chambers |
US6665770B2 (en) | 2001-01-31 | 2003-12-16 | Matsushita Electric Industrial Co., Ltd. | Device and method for updating a pointer value by switching between pointer values |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US4916606A (en) | Pipelined parallel data processing apparatus for directly transferring operand data between preceding and succeeding instructions | |
JPH08241291A (ja) | プロセッサ | |
JPH05216624A (ja) | 演算装置 | |
US5630151A (en) | Data driven information processor generating multidimensional generation number identifying generation and additional attributes of data in data packet | |
JPH03286332A (ja) | デジタルデータ処理装置 | |
US6334135B2 (en) | Data processing system and register file | |
JPH08123769A (ja) | 並列プロセッサ | |
US5276822A (en) | System with enhanced execution of address-conflicting instructions using immediate data latch for holding immediate data of a preceding instruction | |
JPH103378A (ja) | 演算装置および演算方法 | |
US5053954A (en) | Microprogram process for single cycle jump instruction execution | |
JP2003005954A (ja) | データ処理装置およびその制御方法 | |
JP3745673B2 (ja) | プロセッサ | |
JP3144859B2 (ja) | 算術論理演算装置 | |
JPS619725A (ja) | マイクロプログラム制御回路 | |
JP3336986B2 (ja) | 信号処理プロセッサ及びそれに用いる丸め機能付き積和演算器 | |
JP3742745B2 (ja) | 演算処理装置 | |
JPS59229659A (ja) | デ−タ処理方式 | |
JP2573711B2 (ja) | マイクロサブルーチン制御方式 | |
KR920006970B1 (ko) | 프로그래머블 콘트롤러의 연산처리장치 | |
US5524221A (en) | Next instruction pointer calculation system for a microcomputer | |
JP2741869B2 (ja) | 座標逆変換プロセッサ | |
JPS58201138A (ja) | デイジタル信号処理回路 | |
JPH05181642A (ja) | 演算装置 | |
JPH0222417B2 (ja) | ||
JPH0877003A (ja) | Dspプログラム並列制御装置 |