JP2001125769A - 演算装置 - Google Patents

演算装置

Info

Publication number
JP2001125769A
JP2001125769A JP30658899A JP30658899A JP2001125769A JP 2001125769 A JP2001125769 A JP 2001125769A JP 30658899 A JP30658899 A JP 30658899A JP 30658899 A JP30658899 A JP 30658899A JP 2001125769 A JP2001125769 A JP 2001125769A
Authority
JP
Japan
Prior art keywords
data
output
memory
difference value
value
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP30658899A
Other languages
English (en)
Inventor
Yasuaki Shimazu
恭明 島津
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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP30658899A priority Critical patent/JP2001125769A/ja
Publication of JP2001125769A publication Critical patent/JP2001125769A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Advance Control (AREA)

Abstract

(57)【要約】 【課題】 演算処理に影響を与えることなくメモリ容量
を削減した演算装置を得る。 【解決手段】 演算ネットワークからの出力でデータ間
の差分を計算する演算器と、出力データと差分値を格納
するメモリを有し、メモリから演算処理データを出力す
る場合には、メモリに記録されたデータと差分値から元
のデータを計算する加算器を設ける。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】この発明は連続して大量のデ
ータを高速で演算を実行する演算装置において、データ
を保持するメモリ容量を削減するために、データ間の差
分値を計算し、そのデータの差分値を保持し、出力する
際に差分値からデータを復元する様に工夫した演算装置
に関するものである。
【0002】
【従来の技術】図12は、演算を高速に実施するための
計算機の構成を示すブロック図の例で、1は計算機を制
御するCPU、2はCPU1のプログラムやデータを格
納するメモリ、3は計算機と外部とのやりとりを行う外
部インタフェース、4は演算を高速に実行する演算器、
5は演算器4のデータを格納するローカルメモリ、6は
CPU1とメモリ2と外部インタフェース3と演算器4
とローカルメモリ5との間のデータ転送を行うシステム
バス、7は演算器4とローカルメモリ5とのデータ転送
を行うローカルメモリ、8は演算器4とローカルメモリ
5とローカルバス7をまとめた演算装置である。図13
は上記演算装置8の1例であるフレキシブルな演算ネッ
トワークのブロック図の例で、図において1と5は図1
2と同じものである。9はローカルメモリ6のうちの演
算処理データを格納しておく入力データメモリ、10,
11,12,13はデータバス、14,15,16,1
7,18は上記データバス10,11,12,13の中
から特定のデータバスを選択するデータセレクタ、19
はデータセレクタ14の出力を入力とする演算器、同様
に20,21,22はそれぞれデータセレクタ15,1
6,17の出力を入力とする演算器、23は演算器1
9,20,21,22の出力を選択してデータバス10
へ出力するデータセレクタ、同様に24,25,26は
それぞれ演算器19,20,21,22の出力を選択し
てデータバス11,12,13へ出力するデータセレク
タ、27はデータセレクタ18の出力を入力とし演算結
果を格納する出力データメモリ、28は演算器19,2
0,21,22及びデータセレクタ14,15,16,
17,18,23,24,25,26を制御する制御レ
ジスタ群、29は入力データメモリ9のアドレスを制御
する第1のアドレスジェネレータ、30は出力データメ
モリ27のアドレスを制御する第2のアドレスジェネレ
ータ、31は高速に演算を行う演算ネットワーク部であ
る。また、演算器19,20,21,22はすべて同一
の機能をもった演算器でも、異なった機能を持った演算
器、例えば演算器19はALU、演算器20は乗算器の
ようなものでもよい。
【0003】高速に演算するための計算機は上記のよう
に構成され、例えば、外部インタフェース3を介して得
られた処理データをメモリ2に格納されたプログラムに
したがってCPU1はシステムバスを使用してローカル
メモリ6に転送し、演算器4はローカルバス7を介して
ローカルメモリ6のデータをアクセスして、演算処理を
実施し、結果をローカルメモリ6に書き込み、CPU1
はシステムバスを介してローカルメモリ6から最終結果
を得るものである。従来の演算装置は例えば、フレキシ
ブルな演算ネットワークで構成した場合には図13のよ
うに構成され、CPU1により制御レジスタ群28にセ
レクタ14,15,16,17,18,23,24,2
5,26及び演算器19,20,21,22の制御デー
タを設定し、初期データを入力データメモリ9に書き込
み、制御レジスタ群28により演算器19,20,2
1,22は演算モードを決定し、さらにセレクタ23,
24,25,26は演算器11,12,13,14のデ
ータをデータバス10,11,12,13のいずれに出
力するかを選択するよう演算ネットワークを構成する。
このように演算ネットワークを構成した後、第1のアド
レスジェネレータ29でアドレスを更新し入力データメ
モリ9よりデータを出力させ、演算器群で演算を行い、
第2のアドレスジェネレータ30でアドレスを更新する
ことで出力データメモリ27にデータを格納し、結果は
システムバス5を介してCPU1で読み出すようになっ
ている。
【0004】
【発明が解決しようとする課題】上記のように構成され
た演算装置では、大量のデータを処理する場合にはデー
タ量に比例してメモリの容量が大きくなるという課題が
あった。
【0005】この発明はかかる課題を解決するためにな
されたものであり、演算処理に影響を与えることなくメ
モリ容量を削減することを目的としている。
【0006】
【課題を解決するための手段】第1の発明による演算装
置は、データ間の差分を計算し、計算結果のビット幅に
より制御信号を出力する演算器と、差分値を格納するメ
モリを有し、差分値が差分値を記憶するメモリのビット
幅より大きい場合にはデータを記憶するメモリに書き込
みするように制御するアドレスジェネレータと、データ
を入力する場合には、データに符号拡張した差分値を加
算する加算器を付加したものである。
【0007】また、第2の発明による演算装置は、デー
タ間の差分を計算し、オーバフローする場合には負の最
大値を出力するよう制御する演算器と、差分値を格納す
るメモリを有し、演算器がオーバフローした場合にはデ
ータを記憶するメモリに書き込みするように制御するア
ドレスジェネレータと、データを入力する場合には、デ
ータに符号拡張した差分値を加算する加算器を付加した
ものである。
【0008】また、第3の発明による演算装置は、デー
タ間の差分を計算し、計算結果が出力メモリのビット幅
の半分以下の場合には次の計算結果と合成するよう制御
信号を出力する演算器を有し、初期データと差分値を格
納するメモリを有し、データを入力する場合には、初期
データに符号拡張した差分値を加算する加算器を付加し
たものである。
【0009】
【発明の実施の形態】実施の形態1 図1は演算装置を示すブロック図であり、図において3
1は従来の装置と同一のものなので説明を省略する。3
2は演算処理データを格納してある入力データメモリ、
33はデータ間の差分値と差分値がメモリのビット幅よ
り大きいかどうかを示すフラグとビット幅より大きい場
合は何回繰り返してビット幅より大きいかを示す数を格
納してある入力差分値メモリ、34は差分値が入力差分
値メモリ33のビット幅より大きい場合には入力差分値
メモリ33から繰り返し数を読み出し、入力データメモ
リ32に格納された演算処理データを繰り返し数の値に
従って出力し、ビット幅内の場合には入力差分値メモリ
33から入力差分値を読み出す第1のアドレスジェネレ
ータ、35は入力差分値メモリ33の符号を入力データ
メモリ32のビット幅まで拡張する符号拡張回路、36
は前回の値に差分値を加算する加算器、37は差分値が
入力差分値メモリ33のビット幅より大きい場合には入
力データメモリ32のデータを出力し、差分値が入力差
分値メモリ33のビット幅内の場合には加算器36のデ
ータを出力するセレクタ、38はセレクタ37から出力
されたデータを保持するレジスタ、39は演算ネットワ
ーク31から出力されたデータを保持するレジスタ、4
0は演算ネットワーク31から出力されたデータとレジ
スタ39から出力されたデータの差分を計算し、計算し
た差分値がメモリのビット幅より大きい場合(オーバフ
ロー)には制御信号を出力する演算器、41は演算ネッ
トワーク31からのデータを格納する出力データメモ
リ、42は演算器40から制御信号が出力された場合に
は出力データメモリ41にデータを書き込み指令を送
り、また連続してオーバフローした回数とメモリのビッ
ト幅より大きいことを示すフラグを出力する第2のアド
レスジェネレータ、43は演算器40がオーバフローし
なかった場合には演算器40のデータを出力し、オーバ
フローした場合には、第2のアドレスジェネレータ42
のデータを出力するセレクタ、44はセレクタ43から
出力されたデータを格納する出力差分値メモリである。
【0010】図2は入力差分値メモリ33と出力差分値
メモリ44の構成を示す構成図であり、45は差分値を
計算した際にデータメモリのビット幅より大きくなった
ことを示す演算オーバフローフラグ、46は差分値を計
算した際にメモリのビット幅以内である場合には差分値
データを示し、メモリのビット幅より大きい場合には何
回繰り返してオーバフローしたかを示す差分値データま
たは繰り返し数である。前記のように構成された演算装
置においては、最初に第1のアドレスジェネレータ34
は入力データメモリ32に対してデータを出力するよう
に制御するとともに、セレクタ37に入力データメモリ
32のデータを出力するように選択信号を出力し、入力
差分値メモリ33からデータを取り込む。レジスタ38
はセレクタ37から出力されたデータを保持し、演算ネ
ットワーク31と加算器36にデータを送る。2番目以
降は入力差分値メモリ33から第1のアドレスジェネレ
ータ34に入力されたデータの演算オーバフローフラグ
45がセットされていなかったら、第1のアドレスジェ
ネレータ34は入力差分値メモリ33から出力された差
分値データまたは繰り返し数46を符号拡張回路35で
入力データメモリ32のビット幅と同じだけ拡張したデ
ータとレジスタ38の出力データを加えた加算器36か
らのデータをセレクタ37が選択するように制御し、入
力差分値メモリ33のアドレスを進め、入力差分値メモ
リ33からデータを取り込む。入力差分値メモリ33か
ら第1のアドレスジェネレータ34に入力されたデータ
の演算オーバフローフラグ45がセットされていたら、
入力データメモリ32のアドレスを進め、セレクタ37
に入力データメモリ32のデータを出力するように選択
信号を出力する。この状態を出力された差分値データま
たは繰り返し数46の数分続ける。その後、入力差分値
メモリ33のアドレスを進める。
【0011】上記のデータの動作を図3を用いて説明す
る。ここでは、一例として入力データメモリ32のビッ
ト幅を12ビット、入力差分値メモリ33の差分値デー
タまたは繰り返し数46のビット幅を4ビットとする。
図3において32,33,45,46は図1、図2と同
一のものなので説明を省略する。47はレジスタ38の
出力を時系列に示したデータである。最初に第1のアド
レスジェネレータ34は入力データメモリ32にアドレ
スbを与え図3(a)に示すようにデータ000100
100011(2進数)を出力させるとともに、入力差
分値メモリ33に対してアドレスcを与え図3(b)に
示すようにデータ00111(2進数)を取り出し、セ
レクタ37に対し入力データメモリ32のデータ000
100100011(2進数)を選択するよう制御す
る。また、符号拡張回路35は入力差分値メモリ33か
ら差分値データまたは繰り返し数46を入力し、最上位
ビットを符号と見なし、入力データメモリ32と同じビ
ット幅、すなわち8ビット分拡張され00000000
0111(2進数)を出力し、加算器に送出する。ま
た、セレクタ37から出力されたデータ0001001
00011(2進数)はレジスタ38に保持され、レジ
スタ38からは図3(c)の(1)に示すようにレジス
タ38の出力を時系列に示したデータ47の00010
0100011(2進数)が出力される。
【0012】第1のアドレスジェネレータ34は入力デ
ータメモリ32のアドレスをカウントアップし、アドレ
スb+1を与える。次に第1のアドレスジェネレータ3
4は入力差分値メモリ33から取り出された演算オーバ
フローフラグ45をチェックし、セットされていないの
で、セレクタ37の出力は加算器36からの出力を選択
するように制御する。このとき加算器からは、レジスタ
38からの出力値000100100011(2進数)
と符号拡張回路35からの出力値0000000001
11(2進数)が加算された000100101010
(2進数)が出力されている。レジスタ38はセレクタ
37からのデータを保持し、レジスタ38からは図3
(c)の(2)に示すようにレジスタ38の出力を時系
列に示したデータ47の000100101010(2
進数)が出力される。
【0013】第1のアドレスジエネレータ34は入力差
分値メモリ33のアドレスをカウントアップし、入力差
分値メモリ33にアドレスc+1を与え図3(b)に示
すようにデータ01100(2進数)を取り出す。符号
拡張回路35は差分値データまたは繰り返し数46を入
力し、最上位ビットを符号と見なし、8ビット分拡張
し、111111111100(2進数)を出力する。
次に同じように第1のアドレスジェネレータ34は入力
差分値メモリ33から取り出された演算オーバフローフ
ラグ45をチェックし、セットされていないので、セレ
クタ37の出力は加算器36からの出力を選択するよう
に制御する。このとき加算器36からは、レジスタ38
からの出力値000100101010(2進数)と符
号拡張回路35からの出力値111111111100
(2進数)が加算された000100100110(2
進数)が出力される。
【0014】第1のアドレスジェネレータ34は入力差
分値メモリ33のアドレスをカウントアップし、入力差
分値メモリ33にアドレスc+2を与え図3(b)に示
すようにデータ10011(2進数)を取り出す。符号
拡張回路35は差分値データまたは繰り返し数46を入
力し、最上位ビットを符号と見なし、8ビット分拡張
し、000000000011(2進数)を出力する。
次に、第1のアドレスジェネレータ34は入力差分値メ
モリ33から取り出された演算オーバフローフラグ45
をチェックし、セットされているので、セレクタ37に
対し入力データメモリ32のデータ000100010
001(2進数)を選択するよう制御する。セレクタ3
7から出力されたデータ000100010001(2
進数)はレジスタ38に保持され、レジスタ38からは
図3(c)の(4)に示すようにレジスタ38の出力を
時系列に示したデータ47の000100010001
(2進数)が出力される。また、アドレスジェネレータ
は差分値データまたは繰り返し数20をカウントダウン
し、負でなければ負になるまで、入力データメモリ32
のアドレスをカウントアップさせつつ、データを出力さ
せる。差分値データまたは繰り返し数46をカウントダ
ウンし、負になれば、入力差分値メモリ33のアドレス
をカウントアップし、アドレスc+3を与える。以後、
これを繰り返す。
【0015】次に演算ネットワーク31の出力以後の説
明を行う。演算ネットワーク31で計算されたデータは
レジスタ39と演算器40に送られる。第2のアドレス
ジェネレータ42は最初に演算ネット31から出力され
たデータを出力データメモリ41に書き込むように制御
し、アドレスをカウントアップする。次に演算器40が
演算ネットワーク31から出力されたデータからレジス
タ39の出力データを減算し、演算結果が出力差分値メ
モリ44のビット幅を超えた場合には制御信号(オーバ
フローフラグ)を第2のアドレスジェネレータ42に出
力する。第2のアドレスジェネレータ42はオーバフロ
ーフラグがセットされていない場合にはセレクタ43に
演算器40の出力を選択するように制御し、出力差分値
メモリ44にセレクタ43からのデータを書き込むよう
に制御し、アドレスをカウントアップする。オーバフロ
ーフラグがセットされている場合には出力データメモリ
41に演算ネットワーク31からのデータを書き込むよ
うに制御し、アドレスをカウントアップするとともに、
それが何回繰り返すかをカウントし、セレクタ43に第
2のアドレスジェネレータ42の出力を選択するように
制御し、出力差分値メモリ44にデータを書き込む。こ
のとき、出力差分値メモリ44のアドレスはオーバフロ
ーフラグがセットされている間はカウントアップしな
い。
【0016】上記のデータの動作を図4を用いて説明す
る。ここでは、一例として出力データメモリ41のビッ
ト幅を12ビット、出力差分値メモリ44の差分値デー
タまたは繰り返し数46のビット幅を4ビットとする。
図4において41,44〜46は図1、図2と同一のも
のなので説明を省略する。48は演算ネットワーク31
の出力を時系列に示したデータであり、49はレジスタ
39の出力を時系列に示したデータである。最初に演算
ネットワーク31からは図4(a)の(1)に示すよう
に演算ネットワーク31の出力を時系列に示したデータ
48は000100100011(2進数)が出力され
レジスタ39と演算器40と出力データメモリ41に送
られる。このとき、レジスタ39からの出力データは図
4(b)の(1)に示すようにレジスタ39の出力を時
系列に示したデータ49は不定である。第2のアドレス
ジェネレータ42は出力データメモリ41にアドレスd
を与え、図4(c)の(1)に示すようにデータ000
100100011(2進数)を書き込み、アドレスを
カウントアップし、d+1とする。次に演算ネットワー
ク31からは図4(a)の(2)に示すように演算ネッ
トワーク31の出力を時系列に示したデータ48の00
0100101010(2進数)が出力される。
【0017】レジスタ39からは図4(b)の(2)に
示すようにレジスタ39の出力を時系列に示したデータ
49の000100100011(2進数)が出力さ
れ、演算器40で減算される。演算器40の演算結果は
000000000111(2進数)であるので、差分
値データまたは繰り返し数46のビット幅を越えていな
いので、セレクタ43への出力は差分値データまたは繰
り返し数46として下位4ビット、すなわち0111
(2進数)と演算オーバフローフラグ45として0(2
進数)が出力される。演算器40は第2のアドレスジェ
ネレータ42に制御信号(正常)を出力し、第2のアド
レスジェネレータ42はセレクタ43に演算器40のデ
ータ00111(2進数)を出力するように制御し、出
力差分値メモリ44にアドレスeを出力し、図4(d)
に示すようにデータ00111(2進数)を書き込み、
アドレスをカウントアップし、e+1とする。
【0018】次に演算ネットワーク31から00010
0100110(2進数)が出力され、レジスタ39か
らは000100101010(2進数)が出力され
る。演算器40の演算結果は111111111100
(2進数)であるので、差分値データまたは繰り返し数
46のビット幅を越えていないので、セレクタ43への
出力は差分値データまたは繰り返し数46として下位4
ビット、すなわち1100(2進数)と演算オーバフロ
ーフラグ45として0(2進数)が出力される。演算器
40は第2のアドレスジェネレータ42に対して制御信
号(正常)を出力し、第2のアドレスジェネレータ42
はセレクタ43に演算器40のデータ01100(2進
数)を出力するように制御し、出力差分値メモリ44に
図4(d)に示すようにデータ01100(2進数)を
書き込み、アドレスをカウントアップし、e+2とす
る。
【0019】次に演算ネットワーク31から00010
0010001(2進数)が出力され、レジスタ39か
らは000100100110(2進数)が出力され
る。演算器40の演算結果は111111101011
(2進数)であるので、差分値データまたは繰り返し数
46のビット幅を越えているので、演算器40は第2の
アドレスジェネレータ42に対して制御信号(オーバフ
ロー)を出力し、第2のアドレスジェネレータ42は演
算オーバフローフラグ45として1(2進数)を出力
し、差分値データまたは繰り返し数46として0000
を出力し、セレクタ43に第2のアドレスジエネレータ
42のデータ10000(2進数)を出力するように制
御し、出力差分値メモリ44に図4(d)に示すように
データ10000(2進数)を書き込む。
【0020】また、図4(c)の(2)に示すように出
力データメモリ41に演算ネットワーク31からのデー
タ000100010001(2進数)を書き込むよう
制御し、アドレスをカウントアップし、d+2とする。
次に演算ネットワーク31から00100010001
0(2進数)が出力され、レジスタ39からは0001
00010001(2進数)が出力される。演算器40
の演算結果は差分値データまたは繰り返し数46のビッ
ト幅を越えているので、第2のアドレスジェネレータ4
2に対して制御信号(オーバフロー)を出力し、第2の
アドレスジェネレータ42は演算オーバフローフラグ4
5として1(2進数)を出力し、前回の差分値データま
たは繰り返し数46の値0000(2進数)をカウント
アップし、0001(2進数)とする。これに、演算オ
ーバフローフラグ45として1(2進数)を付加し、第
2のアドレスジェネレータ42は10001(2進数)
を出力する。以下同様の動作を繰り返す。このようにし
て、入力差分値メモリ33と出力差分値メモリ44を使
用することにより、メモリを削減しつつ、元のデータを
復元することができる。
【0021】実施の形態2 図5は演算装置を示すブロック図であり、図において3
1,32,35〜39,41は実施の形態1と同一のも
のなので説明を省略する。50は差分値またはデータ間
の差分値がメモリのビット幅より大きい場合は負の最大
値を示す数を格納してある入力差分値メモリ、51は差
分値が負の最大値の場合には、入力データメモリ32に
格納された演算処理データを出力し、ビット幅内の場合
には入力差分値メモリ50から差分値を読み出す第1の
アドレスジェネレータ、52は演算ネットワーク31か
ら出力されたデータからレジスタ39に格納されたデー
タを減算するとともに値がオーバフローするかどうか判
定を行う演算器、53は負の最大値設定値、54は負の
最大設定53または演算器52のいずれかの出力を出力
するセレクタ、55は演算器52が入力差分値メモリの
ビット幅に対してオーバフローした場合には出力データ
メモリ41にデータを書き込み指令を送り、セレクタ5
4に対し、負の最大設定値53を選択するように制御
し、オーバフローしなかった場合には、セレクタ54に
演算器52の出力を選択するよう制御する第2のアドレ
スジェネレータ、56は第2のアドレスジェネレータ5
5の制御によりセレクタ54から出力されたデータを格
納する出力差分値メモリである。
【0022】前記のように構成された演算装置の動作を
説明する。ここでは、入力差分値メモリ50と出力差分
値メモリ56のビット幅を4ビットとして説明する。最
初に入力データメモリ32のデータがセレクタ37で選
択されるように第1のアドレスジェネレータ51が制御
し、最初のデータをレジスタ38に格納し、入力データ
メモリ32のアドレスをカウントアップする。また、同
時に第1のアドレスジェネレータ51は入力差分値メモ
リ50からデータを出力するように制御し、データを第
1のアドレスジェネレータ51に入力する。次に第1の
アドレスジェネレータ51は読み込んだ入力差分値メモ
リ50のデータをチェックし、負の最大値、すなわち−
3 (1000(2進数))であった場合には、第1の
アドレスジェネレータ51は入力データメモリ32から
のデータを選択するようにセレクタ37を制御し、入力
データメモリ32のアドレスと入力差分値メモリ50の
アドレスをカウントアップする。負の最大でなかった場
合には、すなわち7(0111(2進数))以下かつ−
7(1001(2進数))以上であった場合には、レジ
スタ38の出力に入力差分値メモリ50のデータを符号
拡張したものを加算器36で加算したデータを選択する
ようにセレクタ37を制御する。
【0023】レジスタ38から出力されたデータは演算
ネットワーク31で演算処理され、レジスタ39、出力
データメモリ41、演算器52に送られる。最初のデー
タは出力データメモリ41に格納されるよう第2のアド
レスジェネレータ55により制御される。次のデータは
演算ネットワーク31から出力されたデータからレジス
タ39に格納されたデータを演算器52により減算し、
データが7以下かつ−7以上かを判定し、オーバフロー
していればオーバフローフラグを第2のアドレスジェネ
レータ55に送出する。第2のアドレスジェネレータ5
5はオーバフローフラグがセットされている場合には、
負の最大設定値53の値−8(1000(2進数))を
選択するようセレクタ54を制御し、−8(1000
(2進数))を出力差分値メモリ56に格納し、演算ネ
ットワーク31からのデータを出力データメモリ41に
格納する。オーバフローフラグがセットされていない場
合には、第2のアドレスジェネレータ55は演算器52
のデータを選択するようにセレクタ54を制御し、演算
器52のデータを出力差分値メモリ56に格納する。こ
のようにして、入力差分値メモリ50と出力差分値メモ
リ56を使用することにより、メモリの容量を削減しつ
つ、元のデータを復元することができる。
【0024】実施の形態3 図6は演算装置を示すブロック図であり、図において3
1,36,38,39は実施の形態1と同一のものなの
で説明を省略する。57は初期データとデータ間の差分
値が格納された入力データメモリ、58は入力データメ
モリ57のデータを上位と下位に分けるデータ分割、5
9と60はデータ分割58から出力されたデータを保持
するレジスタ、61と62は各々レジスタ59とレジス
タ60から出力されたデータを保持するレジスタ、63
はレジスタ60とレジスタ61のデータを選択するセレ
クタ、64はレジスタ61とレジスタ62のデータを選
択するセレクタ、65はセレクタ64の最上位のビット
を符号として符号の拡張を行う符号拡張回路、66はセ
レクタ63と符号拡張回路65のデータを選択するセレ
クタ、67はセレクタ66のデータを上位、セレクタ6
4のデータを下位としてデータを合成するデータ合成、
68は演算ネットワーク31から出力されたデータから
レジスタ39のデータを減算する演算器、69は演算器
68のデータを上位と下位に分けるデータ分割、70は
データ分割69から出力された上位データを保持するレ
ジスタ、71はデータ分割69から出力された下位デー
タを保持するレジスタ、72はレジスタ70のデータと
データ分割69の下位データを選択するセレクタ、73
はレジスタ70のデータとレジスタ71のデータを選択
するセレクタ、74と75は各々セレクタ72とセレク
タ73のデータを保持するレジスタ、76はレジスタ7
4のデータを上位、レジスタ75のデータを下位として
データを合成するデータ合成、77は初期値とデータ間
の差分値を格納する出力データメモリである。
【0025】前記のように構成された演算装置の動作を
説明する。ここでは、入力データメモリ57と出力デー
タメモリ77のビット幅を10ビットとして説明する。
図7は入力データメモリ57の構成を示す構成図であ
り、78は上位側オーバフロービット、79は上位デー
タ、80は下位側オーバフロービット、81は下位デー
タである。また、図8は上位側オーバフロービット7
8、下位側オーバフロービット80とセレクタ63、セ
レクタ64、セレクタ66の関係を示す図である。ま
た、図9は演算ネットワーク31の出力データ順とレジ
スタ39の出力データ順と演算器68の出力データ順と
出力データメモリ77の構成を示す図である。図におい
て77〜81は図6、図7と同一のものなので、説明を
省略する。82は演算ネットワーク31の出力を時系列
に示したデータであり、83はレジスタ39の出力を時
系列に示したデータであり、84は演算器68の出力を
時系列に示したデータである。また、図10はデータ分
割69とレジスタ70とレジスタ71とセレクタ72と
セレクタ73とレジスタ74とレジスタ75の出力を時
系列に示す図である。図において78〜81は図6、図
7と同一のものなので、説明を省略する。85はオーバ
フローフラグ、86はデータ、87はレジスタ74とレ
ジスタ75の出力データが有効か無効かを示すデータの
有効性である。また、図11はレジスタ71の出力のオ
ーバフローフラグ、レジスタ74出力オーバフローフラ
グ、レジスタ74とレジスタ75の出力データの有効性
とセレクタ72、セレクタ73の出力の選択関係を示す
図である。
【0026】最初に入力データメモリ57からアドレス
aに格納されたデータ0001010110(2進数)
が出力される。データ分割58では上位データとして0
0010(2進数)が出力され、下位データとして10
110(2進数)が出力される。上位データはレジスタ
59に保持され、下位データはレジスタ60に保持さ
れ、さらにレジスタ61とレジスタ62に送られる。下
位側オーバフロービット80がセットされ、上位側オー
バフロービット78がリセットされている。このとき、
図8(3)に示すように、セレクタ64はレジスタ62
を選択し、セレクタ63はレジスタ61を選択し、セレ
クタ66はセレクタ63を選択する。データ合成67の
出力はセレクタ66とセレクタ64のデータを合成し、
上位側オーバフロービット78と下位側オードフロービ
ット80を削除した00100110(2進数)が出力
される。レジスタ38は最初リセット状態としておくこ
とで、加算器36の出力データは00100110(2
進数)が出力され、演算ネットワーク31に送られる。
【0027】次にアドレスa+1のデータがレジスタ6
1とレジスタ62に格納された場合には、上位側オーバ
フロービット78と下位側オーバフロービット80がリ
セットされた状態なので、このアドレスのデータは、2
回分の処理を含んでいることになる。1回目の実行で
は、図8(1)に示すように、セレクタ64はレジスタ
62のデータを選択する。セレクタ64のデータの最上
位ビット1(2進数)を符号と見なし、符号拡張回路6
5で11111(2進数)に拡張される。セレクタ66
は符号拡張回路65のデータを選択し、データ合成67
にデータを送出する。データ合成67の出力は上位側オ
ーバフロービット78と下位側オーバフロービット80
を削除した11111100(2進数)が出力される。
【0028】次に、2回目は図8(2)に示すようにセ
レクタ64はレジスタ61のデータを選択する。セレク
タ64のデータの最上位ビット0(2進数)を符号と見
なし、符号拡張回路65で00000(2進数)に拡張
される。セレクタ66は符号拡張回路65のデータを選
択し、データ合成67にデータを送出する。データ合成
67の出力は上位側オーバフロービット78と下位側オ
ーバフロービット80を削除した00000011(2
進数)が出力される。
【0029】次にアドレスがカウントアップされアドレ
スa+2のデータ0010011101(2進数)が実
行される。この場合下位側オーバフロービット80がセ
ットされているので、差分値は上位側を含めたものとな
っている。したがって、図8(3)に示すようにセレク
タ63はレジスタ61を選択し、セレクタ64はレジス
タ62を選択し、セレクタ66はセレクタ63を選択す
る。データ合成67の出力はセレクタ66とセレクタ6
4のデータを合成し、上位側オーバフロービット78と
下位側オーバフロービット80を削除した010011
01(2進数)が出力される。
【0030】次にアドレスa+3のデータを実行する。
下位側オーバフロービット80がリセットされた状態な
ので、このアドレスのデータは、2回分の処理を含んで
いることになる。1回目の実行では、図8(4)に示す
ように、セレクタ64はレジスタ62のデータを選択す
る。セレクタ64のデータの最上位ビット0(2進数)
を符号と見なし、符号拡張回路65で00000(2進
数)に拡張される。セレクタ66は符号拡張回路65の
データを選択し、データ合成67にデータを送出する。
データ合成67の出力は上位側オーバフロービット78
と下位側オーバフロービット80を削除した00000
001(2進数)が出力される。
【0031】次に、2回目は上位側オーバフロービット
78がセットされているので、図8(5)に示すよう
に、セレクタ63はレジスタ60を選択し、セレクタ6
4はレジスタ61のデータを選択し、セレクタ66はセ
レクタ63のデータを選択する。このときレジスタ60
にはアドレスa+4の下位側オーバフロービット80の
0(2進数)と下位データ81の1010(2進数)が
格納されており、セレクタ66から出力されることにな
る。データ合成67の出力はセレクタ66とセレクタ6
4のデータを合成し、上位側オーバフロービット78と
下位側オーバフロービット80を削除した101000
11(2進数)が出力される。
【0032】次にアドレスa+4のデータがレジスタ6
1とレジスタ62に格納される。このとき、下位側のデ
ータは既に使用されたので、2回目と判断し、図8
(2)に示すように、セレクタ64はレジスタ61のデ
ータを選択する。セレクタ64のデータの最上位ビット
1(2進数)を符号と見なし、符号拡張回路65で11
111(2進数)に拡張される。セレクタ66は符号拡
張回路65のデータを選択し、データ合成67にデータ
を送出する。
【0033】上記に示すようにして、上位側オーバフロ
ービット78と下位側オーバフロービット80とアクセ
ス回数によりセレクタ63、セレクタ64、セレクタ6
6の出力を決定し、データ合成67から出力させる差分
値を決定する。
【0034】次に、図9により演算ネットワーク31と
レジスタ39以降の動作を説明する。最初のデータが出
力されるまでレジスタ39はリセット状態にする。演算
器68は図9(a)の(1)に示すように演算ネットワ
ーク31の出力を時系列に示したデータ82の0010
0110(2進数)から図9(b)の(1)に示すよう
にレジスタ39の出力を時系列に示したデータ83の0
0000000(2進数)(レジスタ39は最初リセッ
トされているため00000000(2進数)となって
いる)を減算する。演算結果は図9(c)の(1)に示
すように演算器68の出力を時系列に示したデータ84
の上位データ79は0010(2進数)、下位データ8
1は0110(2進数)となる。最初のデータは必ず上
位データも有効なので、下位側オーバフラグ80は1
(2進数)とする。上位側オーバフラグ78は常に0
(2進数)固定とする。次に出力される演算ネットワー
ク31のデータは図9(a)の(2)に示すように演算
ネットワーク31の出力を時系列に示したデータ82の
00100010(2進数)であり、レジスタ39のデ
ータは図9(b)の(2)に示すようにレジスタ39の
出力を時系列に示したデータ83の00100110
(2進数)である。演算器68は同様に減算し、図9
(c)の(2)に示すように演算器68の出力を時系列
に示したデータ84の上位データ79は1111(2進
数)、下位データ81は1100(2進数)となる。こ
のとき、上位データ79はすべて同じでかつ下位データ
81の最上位ビットも同じとなる。言い換えると、下位
データ81だけで表せるので、下位側オーバフローフラ
グ80は0(2進数)とする。上位データ79と下位デ
ータ81の最上位ビットが1つでも異なっているとき
は、下位側オーバフローフラグ80は1(2進数)とす
る。以下同様に演算処理することで図9(c)に示すよ
うに演算器68の出力を時系列で示したデータ84の結
果を得る。
【0035】次に、演算器68の出力はデータ分割69
で上位データと下位データに分割される。次に、図10
によりデータ分割69の出力以降の動作を説明する。図
10(1)に示すようにデータ分割69から上位として
00010(2進数)、下位として01100(2進
数)が出力され、次に図10(2)でレジスタ70から
00010(2進数)、レジスタ71から01100
(2進数)が出力される。図11で示すようにレジスタ
71のオーバフローフラグ85が1でかつレジスタ74
とレジスタ75のデータ有効性87が無効であるので、
セレクタ72の出力はレジスタ70の出力が選択され0
0010(2進数)となり、セレクタ73の出力はレジ
スタ71が選択され10110(2進数)となる。次の
図10(3)ではレジスタ71のオーバフローフラグ8
5は0であるので、図11で示すようにセレクタ72の
出力はデータ分割69の出力が選択され00011(2
進数)となり、セレクタ73の出力はレジスタ71が選
択され01100(2進数)となる。また、図10
(7)の状況では、レジスタ74とレジスタ75のデー
タ有効性87が有効でかつレジスタ74のオーバフロー
フラグ85が1であるので、図11で示すようにセレク
タ72の出力はデータ分割69の出力が選択され010
00(2進数)となり、セレクタ73の出力はレジスタ
70が選択され01010(2進数)となる。セレクタ
72の出力とセレクタ73の出力は各々レジスタ74と
レジスタ75に保持され、レジスタ74とレジスタ75
のデータ有効性87が有効の場合に出力データメモリ7
7に書き込まれる。以下同様に動作させることで、図9
の(d)に示すように出力データメモリ77にデータを
書き込むことができる。このようにして、差分値を利用
して、データメモリを削減しつつ、元のデータを復元す
ることができる。
【0036】
【発明の効果】第1の発明によれば、入力差分値メモリ
と出力差分値メモリに差分値データまたは繰り返し数を
格納することでメモリ容量を削減できる。
【0037】また、第2の発明によれば、入力差分値メ
モリと出力差分値メモリに差分値または負の最大値を格
納することでメモリ容量を削減できる。
【0038】また、第3の発明によれば、入力データメ
モリと出力データメモリに初期値と差分値を格納するこ
とでメモリ容量を削減できる。
【図面の簡単な説明】
【図1】 この発明による演算装置の実施の形態1を示
す図である。
【図2】 この発明による入力差分値メモリ、出力差分
値メモリの実施の形態1を示す図である。
【図3】 この発明による入力データメモリ、入力差分
値メモリ、レジスタ12の出力データの形態1を示す図
である。
【図4】 この発明による演算ネットワークの出力デー
タ、レジスタ13の出力データ、出力データメモリ、出
力差分値メモリの形態1を示す図である。
【図5】 この発明による演算装置の実施の形態2を示
す図である。
【図6】 この発明による演算装置の実施の形態3を示
す図である。
【図7】 この発明による入力データメモリの実施の形
態3を示す図である。
【図8】 この発明によるセレクタ63、セレクタ6
4、セレクタ66の出力選択関係を示す実施の形態3を
示す図である。
【図9】 この発明による演算ネットワーク31の出力
データ、レジスタ39の出力データ、演算器68の出力
データ、出力データメモリ77の実施の形態3を示す図
である。
【図10】 データ分割69とレジスタ70とレジスタ
71とセレクタ72とセレクタ73とレジスタ74とレ
ジスタ75の出力を時系列に示す実施の形態3を示す図
である。
【図11】 この発明によるレジスタ71の出力のオー
バフローフラグ、レジスタ74出力オーバフローフラ
グ、レジスタ74とレジスタ75の出力データの有効性
とセレクタ72、セレクタ73の出力の選択関係を示す
実施の形態3を示す図である。
【図12】 演算を高速に実施するための計算機の構成
を示すブロック図である。
【図13】 従来の演算装置を示す図である。
【符号の説明】
31 演算ネットワーク、32 入力データメモリ、3
3 入力差分値メモリ、34 第1のアドレスジェネレ
ータ、35 符号拡張回路、36 加算器、37 セレ
クタ、38 レジスタ、39 レジスタ、40 演算
器、41 出力データメモリ、42 第2のアドレスジ
ェネレータ、43 セレクタ、44 出力差分値メモ
リ、45 演算オーバフローフラグ、46 差分値デー
タまたは繰り返し数、47 レジスタ12の出力を時系
列に示したデータ、48 演算ネットワーク2の出力を
時系列に示したデータ、49 レジスタ13の出力を時
系列に示したデータ、50 入力差分値メモリ、51
第1のアドレスジェネレータ、52 演算器、53 負
の最大設定値、54 セレクタ、55 第2のアドレス
ジェネレータ、56 出力差分値メモリ、57 入力デ
ータメモリ、58 データ分割、59 レジスタ、60
レジスタ、61 レジスタ、62 レジスタ、63
セレクタ、64 セレクタ、65 符号拡張回路、66
セレクタ、67データ合成、68 演算器、69 デ
ータ分割、70 レジスタ、71 レジスタ、72 セ
レクタ、73 セレクタ、74 レジスタ、75 レジ
スタ、76 データ合成、77 出力データメモリ、7
8 上位側オーバフロービット、79 上位データ、8
0 下位側オーバフロービット、81 下位データ、8
2演算ネットワーク2の出力を時系列に示したデータ、
83 レジスタ13の出力を時系列に示したデータ、8
4 演算器42の出力を時系列に示したデータ、85
オーバフローフラグ、86 データ、87 レジスタ7
4とレジスタ75の出力データが有効か無効かを示すデ
ータの有効性。

Claims (3)

    【特許請求の範囲】
  1. 【請求項1】 複数の演算器群(ALU(Arithm
    etic Logic Unit)や乗算器)で構成さ
    れたフレキシブルな演算ネットワークと、前記演算ネッ
    トワークの出力値を保持する出力データメモリと、前記
    演算ネットワークの現在の出力値と1つ前の出力値との
    差分を計算し、制御信号を出力する演算器と、前記演算
    ネットワークの現在の出力値と1つ前の出力値との差分
    値と差分値を保持するメモリのビット幅を超えていない
    ことを示すビットまたは差分値が差分値を保持するメモ
    リのビット幅を超えている場合には何回連続して越えて
    いるかの回数を保持する出力データメモリよりビット幅
    の小さい出力差分値メモリと、差分値が差分値を保持す
    るメモリのビット幅を超える場合に出力データメモリに
    データを書き込むように制御するアドレスジェネレータ
    と、差分値と差分値を保持するメモリのビット幅を超え
    ていないことを示すビットまたは差分値が差分値を保持
    するメモリのビット幅を超えている場合には何回連続し
    て越えているかの回数を保持する入力データメモリより
    ビット幅の小さい入力差分値メモリとデータを入力する
    際に入力データメモリのデータと入力差分値メモリのデ
    ータから元のデータに戻すための符号拡張回路と加算器
    とを備えたことを特徴とする演算装置。
  2. 【請求項2】 複数の演算器群(ALUや乗算器)で構
    成されたフレキシブルな演算ネットワークと、前記演算
    ネットワークの出力値を保持する出力データメモリと、
    前記演算ネットワークの現在の出力値と1つ前の出力値
    との差分を計算し、オーバフローする場合には負の最大
    値を出力するよう制御する演算器と、前記演算ネットワ
    ークの現在の出力値と1つ前の出力値との差分値を保持
    する前記出力データメモリよりビット幅の小さい出力差
    分値メモリと、前記演算器がオーバフローした場合に出
    力データメモリにデータを書き込むように制御するアド
    レスジェネレータと、差分値または差分値が差分値を保
    持するメモリのビット幅を超えている場合には負の最大
    値を出力する入力データメモリよりビット幅の小さい入
    力差分値メモリデータと入力する際に入力データメモリ
    のデータと入力差分値メモリのデータから元のデータに
    戻すための符号拡張回路と加算器とを備えたことを特徴
    とする演算装置。
  3. 【請求項3】 複数の演算器群(ALUや乗算器)で構
    成されたフレキシブルな演算ネットワークと、前記演算
    ネットワークの初期出力値および現在の出力値と1つ前
    の出力値との差分値を保持する出力データメモリと、前
    記演算ネットワークの現在の出力値と1つ前の出力値と
    の差分を計算し計算結果が出力データメモリのビット幅
    の半分で良い場合には次の計算結果と合成するよう制御
    信号を出力する演算器と、入力データメモリから出力さ
    れる初期入力データと差分値から元のデータに戻すため
    の符号拡張回路と加算回路とを備えたことを特徴とする
    演算装置。
JP30658899A 1999-10-28 1999-10-28 演算装置 Pending JP2001125769A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP30658899A JP2001125769A (ja) 1999-10-28 1999-10-28 演算装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP30658899A JP2001125769A (ja) 1999-10-28 1999-10-28 演算装置

Publications (1)

Publication Number Publication Date
JP2001125769A true JP2001125769A (ja) 2001-05-11

Family

ID=17958885

Family Applications (1)

Application Number Title Priority Date Filing Date
JP30658899A Pending JP2001125769A (ja) 1999-10-28 1999-10-28 演算装置

Country Status (1)

Country Link
JP (1) JP2001125769A (ja)

Similar Documents

Publication Publication Date Title
EP1058185A1 (en) A multiply and accumulate apparatus and a method thereof
JPH05216624A (ja) 演算装置
JPH0155499B2 (ja)
JP3458518B2 (ja) 並列プロセッサ
JP4002151B2 (ja) 情報処理装置
JP2001125769A (ja) 演算装置
US4707783A (en) Ancillary execution unit for a pipelined data processing system
JP3305406B2 (ja) プログラム制御のプロセッサ
JP3745673B2 (ja) プロセッサ
CN114510217A (zh) 处理数据的方法、装置和设备
CN111861920A (zh) 一种中值滤波方法以及系统
JP2001216136A (ja) 加算回路およびプロセッサ
JP3336986B2 (ja) 信号処理プロセッサ及びそれに用いる丸め機能付き積和演算器
JPH0616287B2 (ja) マスク付きベクトル演算処理装置
JP2003271542A (ja) ダイレクトアクセスコントローラ
US20240069868A1 (en) Mac operator related to correcting a computational error
JP3511529B2 (ja) 複合演算処理装置
JP3164445B2 (ja) 10進演算命令処理装置
JP2005338929A (ja) 半導体装置
JP3451640B2 (ja) Simd計算機
JP3109816B2 (ja) アドレス生成装置
JP3693873B2 (ja) マスクビット数演算装置、ベクトル処理装置、情報処理装置
CN115586921A (zh) 实现多比特寄存器原子操作的方法及电路、芯片、电子设备
JPH0683618A (ja) フラグ制御回路
JPH0721760B2 (ja) ディジタル演算回路

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees