JPH03104086A - 演算機能付きメモリ - Google Patents
演算機能付きメモリInfo
- Publication number
- JPH03104086A JPH03104086A JP1240243A JP24024389A JPH03104086A JP H03104086 A JPH03104086 A JP H03104086A JP 1240243 A JP1240243 A JP 1240243A JP 24024389 A JP24024389 A JP 24024389A JP H03104086 A JPH03104086 A JP H03104086A
- Authority
- JP
- Japan
- Prior art keywords
- data
- memory
- signal
- transfer
- unit
- 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
- Static Random-Access Memory (AREA)
- Executing Machine-Instructions (AREA)
- Complex Calculations (AREA)
- Memory System (AREA)
- Dram (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
〔産業上の利用分野]
本発明は、メモリに関し、特に演算機能を付加したメモ
リに関するものである。
リに関するものである。
計算機における処理の高速化をアーキテクチャレベルで
実現するための手法の1つとして、プロセッサとメモリ
より構成されるプロセッシングエレメントを複数個用い
た、いわゆるマルチプロセッサ型の並列処理技術が用い
られている。
実現するための手法の1つとして、プロセッサとメモリ
より構成されるプロセッシングエレメントを複数個用い
た、いわゆるマルチプロセッサ型の並列処理技術が用い
られている。
マルチプロセッサで大量のデータを処理する問題の典型
例として、共通のベクトルデータに対する複数ベクトル
との内積計算がある。さらにパターン認識処理における
具体例としては、共通ベクトルを人力パターンとし、複
数ベクトルを参照パターン群としたときの、最大の相関
を持つ参照パターンを見つける問題などがある。このと
き膨大な数の参照パターンがあった場合、これを高速処
理するためには、並列処理できるマルチプロセッサシス
テムが有効である。
例として、共通のベクトルデータに対する複数ベクトル
との内積計算がある。さらにパターン認識処理における
具体例としては、共通ベクトルを人力パターンとし、複
数ベクトルを参照パターン群としたときの、最大の相関
を持つ参照パターンを見つける問題などがある。このと
き膨大な数の参照パターンがあった場合、これを高速処
理するためには、並列処理できるマルチプロセッサシス
テムが有効である。
一般にマルチプロセッサシステムにおいては、単一プロ
セッサシステムとのアーキテクチャの違いから、それ専
用のインタフェースやモニタ等が必要である。従ってこ
のようなマルチプロセッサ特有の部分を意識しながらソ
フトウェアの作或やデバッグ等を行う必要があり、単一
プロセッサに比べて取り扱いが困難であるといった問題
があった。また、マルチプロセッサシステムにおいては
、必要な演算データが他のプロセッサにある場合に、デ
ータ転送を行う必要があり、このため処理性能が低下す
るといった問題があった。
セッサシステムとのアーキテクチャの違いから、それ専
用のインタフェースやモニタ等が必要である。従ってこ
のようなマルチプロセッサ特有の部分を意識しながらソ
フトウェアの作或やデバッグ等を行う必要があり、単一
プロセッサに比べて取り扱いが困難であるといった問題
があった。また、マルチプロセッサシステムにおいては
、必要な演算データが他のプロセッサにある場合に、デ
ータ転送を行う必要があり、このため処理性能が低下す
るといった問題があった。
本発明の目的は、このような欠点を解消し、メモリチッ
プに演算部を内蔵させることにより、各メモリ内のデー
タに対する処理をチップ毎に並列に実行することができ
、かつ通常のメモリチップと同一のインタフェースで取
り扱うことができ、さらに、演算に必要なデータが他の
チップに格納されていても、従来用いられている共有バ
スを用いた転送による処理性能の低下が生じない演算機
能付きメモリを提供することにある。
プに演算部を内蔵させることにより、各メモリ内のデー
タに対する処理をチップ毎に並列に実行することができ
、かつ通常のメモリチップと同一のインタフェースで取
り扱うことができ、さらに、演算に必要なデータが他の
チップに格納されていても、従来用いられている共有バ
スを用いた転送による処理性能の低下が生じない演算機
能付きメモリを提供することにある。
本発明の演算機能付きメモリは、
アドレス信号入力、データ信号入出力、リード/ライト
信号入力、モード信号入力、複数系統のデータ転送入出
力のためのポートと、 データを格納するメモリと、 データを転送する転送部と、 前記メモリおよび前記転送部からのデータに対して演算
を実行し、演算結果データを出力する第1の演算部と、 この第1演算部の演算結果データを被演算データとして
入力し、この被演算データに対して演算を実行し、演算
結果データを出力する第2の演算部と、 前記メモリ,前記転送部,前記第1の演算部および前記
第2の演算部を制御する制御部とを備え、前記制御部は
、前記モード信号がメモリモードであれば、前記リード
/ライト信号に従って、前記アドレス信号をアドレスと
し、前記データ信号をデータとして前記メモリの読み出
し、もしくは書き込みの制御を行い、 前記モード信号が処理モードであれば、前記リード/ラ
イト信号が書き込みである場合に、前記データ信号を解
読して、 前記アドレス信号をアドレスとして前記メモリから読み
出したデータと、前記データ転送入出力ポートから入力
したデータの前記第1演算部もしくは前記転送部への入
力の制御と、 前記第1演算部と前記第2演算部との演算の指定の制御
と、 前記アドレス信号をアドレスとし、前記第1演算部もし
くは第2演算部の演算結果データ、もしくは前記転送部
からのデータの前記メモリへの書き込みの制御と、 前記メモリから読み出したデータ、もしくは前記第1演
算部あるいは第2演算部の演算結果データの1つを選択
し、前記転送部でのデータ転送入出力ポートを介して、
外部へデータ転送する制御を行うことを特徴とする。
信号入力、モード信号入力、複数系統のデータ転送入出
力のためのポートと、 データを格納するメモリと、 データを転送する転送部と、 前記メモリおよび前記転送部からのデータに対して演算
を実行し、演算結果データを出力する第1の演算部と、 この第1演算部の演算結果データを被演算データとして
入力し、この被演算データに対して演算を実行し、演算
結果データを出力する第2の演算部と、 前記メモリ,前記転送部,前記第1の演算部および前記
第2の演算部を制御する制御部とを備え、前記制御部は
、前記モード信号がメモリモードであれば、前記リード
/ライト信号に従って、前記アドレス信号をアドレスと
し、前記データ信号をデータとして前記メモリの読み出
し、もしくは書き込みの制御を行い、 前記モード信号が処理モードであれば、前記リード/ラ
イト信号が書き込みである場合に、前記データ信号を解
読して、 前記アドレス信号をアドレスとして前記メモリから読み
出したデータと、前記データ転送入出力ポートから入力
したデータの前記第1演算部もしくは前記転送部への入
力の制御と、 前記第1演算部と前記第2演算部との演算の指定の制御
と、 前記アドレス信号をアドレスとし、前記第1演算部もし
くは第2演算部の演算結果データ、もしくは前記転送部
からのデータの前記メモリへの書き込みの制御と、 前記メモリから読み出したデータ、もしくは前記第1演
算部あるいは第2演算部の演算結果データの1つを選択
し、前記転送部でのデータ転送入出力ポートを介して、
外部へデータ転送する制御を行うことを特徴とする。
本発明の演算機能付きメモリは、通常のメモリが必要と
する入力信号、即ちアドレス信号,データ,信号,読み
出し書き込み信号に加えて、新たにモード信号を人力し
、このモード信号によりメモリモードと処理モードの2
つのうち1つを指定する。メモリモードの場合は通常の
メモリアクセスのみを行う。処理モードの場合は、デー
タ信号の部分を解読してメモリに対するリ一ド/ライト
、第1演算部.第2演算部,転送部に対する演算あるい
はデータ転送等を指定し、メモリに格納されたデータに
対する演算や、転送部と入出力ポートによるデータ転送
を実斤する。第2演算部は、第1演算部の演算結果と内
蔵されたアキュムレータレジスタの保持値との演算を第
l演算部と並列に独立に演算し、さらにその演算結果を
入出力ポートから出力する。
する入力信号、即ちアドレス信号,データ,信号,読み
出し書き込み信号に加えて、新たにモード信号を人力し
、このモード信号によりメモリモードと処理モードの2
つのうち1つを指定する。メモリモードの場合は通常の
メモリアクセスのみを行う。処理モードの場合は、デー
タ信号の部分を解読してメモリに対するリ一ド/ライト
、第1演算部.第2演算部,転送部に対する演算あるい
はデータ転送等を指定し、メモリに格納されたデータに
対する演算や、転送部と入出力ポートによるデータ転送
を実斤する。第2演算部は、第1演算部の演算結果と内
蔵されたアキュムレータレジスタの保持値との演算を第
l演算部と並列に独立に演算し、さらにその演算結果を
入出力ポートから出力する。
第1図は未発明の一実施例を示すブロック図である。
この演算機能付きメモリは、制御部2と、メモI7 4
と、第1演算部6と、第2演算部8と、転送部10とか
ら構威され、外部との入出力ポートは2系統となってい
る。
と、第1演算部6と、第2演算部8と、転送部10とか
ら構威され、外部との入出力ポートは2系統となってい
る。
制御部2は、外部からのデータ信号12.モード信号1
4,リード/ライト信号16を入力し、各部を制御する
.各部を制御するモードとしては、メモリモードと処理
モードの2つがあり、モード信号14によりこれを指定
する.この信号により、メモリモードが指定された場合
は、データ信号l2とリード/ライト信号16を、メ・
モリデータ信号20とライトイネーブル信号22に各々
接続し、アドレス信号18をアドレスとして、外部から
メモリ4に対するアクセスを行う.一方、モード信号1
4により処理モードが指定され、かつリード/ライト信
号16により書き込みが指定された場合は、メモリデー
タ信号20もしくは転送部保持データ信号34を被演算
データ信号24に接続して第1演算部6へ人力し、デー
タ信号12の値を解読してライトイネーブル信号22と
命令コード信号26と転送制御信号28の値を決定する
。
4,リード/ライト信号16を入力し、各部を制御する
.各部を制御するモードとしては、メモリモードと処理
モードの2つがあり、モード信号14によりこれを指定
する.この信号により、メモリモードが指定された場合
は、データ信号l2とリード/ライト信号16を、メ・
モリデータ信号20とライトイネーブル信号22に各々
接続し、アドレス信号18をアドレスとして、外部から
メモリ4に対するアクセスを行う.一方、モード信号1
4により処理モードが指定され、かつリード/ライト信
号16により書き込みが指定された場合は、メモリデー
タ信号20もしくは転送部保持データ信号34を被演算
データ信号24に接続して第1演算部6へ人力し、デー
タ信号12の値を解読してライトイネーブル信号22と
命令コード信号26と転送制御信号28の値を決定する
。
メモリ4は、外部からのアドレス信号18をアドレスと
して、メモリデータ信号20に対するデータのリードも
しくはライトを行う。リード/ライトの切り替えは、制
御部2からのライトイネーブル信号22により指定され
る。
して、メモリデータ信号20に対するデータのリードも
しくはライトを行う。リード/ライトの切り替えは、制
御部2からのライトイネーブル信号22により指定され
る。
第1演算部6は、メモリ4に格納されたデータおよび転
送部10の保持データに対して演算を行う.第1演算部
6は、オペランドや演算結果を保持するレジスタを内蔵
しており、制御部2から出力される被演算データ信号2
4と命令コード信号26を人力とし、被演算データ信号
24のデータに対して命令コード信号26で指定される
演算を実行し、結果を演算結果データ信号36として出
力する。このとき各命令は、リード/ライト信号16に
より与えられるライトサイクル内にその実行が終了する
。第1演算部6の演算結果データ信号36は、第2演算
部8に人力され、また制御部2を介してメモリ4へ書き
込むことができる。
送部10の保持データに対して演算を行う.第1演算部
6は、オペランドや演算結果を保持するレジスタを内蔵
しており、制御部2から出力される被演算データ信号2
4と命令コード信号26を人力とし、被演算データ信号
24のデータに対して命令コード信号26で指定される
演算を実行し、結果を演算結果データ信号36として出
力する。このとき各命令は、リード/ライト信号16に
より与えられるライトサイクル内にその実行が終了する
。第1演算部6の演算結果データ信号36は、第2演算
部8に人力され、また制御部2を介してメモリ4へ書き
込むことができる。
第2演算部8は、アキュムレータレジスタを内蔵してお
り、第1演算部6の演算結果データ信号36に対して、
命令コード信号26で指定される演算を実行し、結果を
演算結果データ信号38として制御部2へ出力する.ま
た、第2演算部8の演算結果データ信号38も、制御部
2を介してメモリ4へ書き込むことができる。
り、第1演算部6の演算結果データ信号36に対して、
命令コード信号26で指定される演算を実行し、結果を
演算結果データ信号38として制御部2へ出力する.ま
た、第2演算部8の演算結果データ信号38も、制御部
2を介してメモリ4へ書き込むことができる。
転送部10は、2系統の外部との入出力ポートにおける
入出力ポート信号30. 32を介して外部とのデータ
転送を実行する。転送部lOには、メモリ4から読み出
したメモリデータ信号20、および人出力ポート信号3
0. 32によって外部から入力したデータ信号の、い
ずれかを選択して保持するレジスタが内蔵されている。
入出力ポート信号30. 32を介して外部とのデータ
転送を実行する。転送部lOには、メモリ4から読み出
したメモリデータ信号20、および人出力ポート信号3
0. 32によって外部から入力したデータ信号の、い
ずれかを選択して保持するレジスタが内蔵されている。
転送部10は、この内蔵されたレジスタに保持したデー
タを、入出力ポート信号30あるいは32を介して外部
に出力したり、逆に入出力ポート信号30. 32から
内蔵したレジスタに、外部のデータを入力保持する動作
を行う.これらのデータの転送は、処理モードにおける
転送制御信号2Bの処理命令コードに従う。またこのレ
ジス夕に保持されたデータは、転送部保持データ信号3
4による制御部2への出力データ、あるいはメモリデー
タ信号20によるメモリ4への書き込みデータとなり、
これらのデータの転送は、転送制御信号28に従って動
作する。すなわち、転送部10は、制御部2から出力さ
れる転送制御信号28に従って、メモリデーク信号20
を介し、メモリ4からの読み出しデータを内蔵したレジ
スタに保持したり、あるいは逆にレジスタに保持したデ
ータを、メモリ4にメモリデータ信号20によって書き
込みデータとして出力したり、あるいは制御部2への保
持データを、転送部保持データ信号34により演算デー
タとして出力する動作と、レジスタに保持したデータを
、入出力ポート信号30あるいは32を介して外部に出
力したり、逆に入出力ポート信号30あるいは32から
レジスタに外部のデータを入力保持する動作を行う. 第2図は、本実施例に1モジュールとして含まれている
制御部の一例を示すブロック図であり、第1図と同じ機
能の信号には、第1図と同じ符号で示している。
タを、入出力ポート信号30あるいは32を介して外部
に出力したり、逆に入出力ポート信号30. 32から
内蔵したレジスタに、外部のデータを入力保持する動作
を行う.これらのデータの転送は、処理モードにおける
転送制御信号2Bの処理命令コードに従う。またこのレ
ジス夕に保持されたデータは、転送部保持データ信号3
4による制御部2への出力データ、あるいはメモリデー
タ信号20によるメモリ4への書き込みデータとなり、
これらのデータの転送は、転送制御信号28に従って動
作する。すなわち、転送部10は、制御部2から出力さ
れる転送制御信号28に従って、メモリデーク信号20
を介し、メモリ4からの読み出しデータを内蔵したレジ
スタに保持したり、あるいは逆にレジスタに保持したデ
ータを、メモリ4にメモリデータ信号20によって書き
込みデータとして出力したり、あるいは制御部2への保
持データを、転送部保持データ信号34により演算デー
タとして出力する動作と、レジスタに保持したデータを
、入出力ポート信号30あるいは32を介して外部に出
力したり、逆に入出力ポート信号30あるいは32から
レジスタに外部のデータを入力保持する動作を行う. 第2図は、本実施例に1モジュールとして含まれている
制御部の一例を示すブロック図であり、第1図と同じ機
能の信号には、第1図と同じ符号で示している。
この制御部は、論理回路40と、デコーダ42と、デー
タセレクタ44とを有しており、これらの各部が、第1
図で示した各信号と接続されている。
タセレクタ44とを有しており、これらの各部が、第1
図で示した各信号と接続されている。
論理回路40は、リード/ライト信号16とデコーダ4
2の出力信号46とモード信号14とを入力し、論理演
算を実行した結果をライトイネーブル信号22として出
力する。例えばリード/ライト信号16は、値“1”が
リード、値“゜0”がライト、信号46は、値“1”が
アクティブ、モード信号l4は、値゛1”が処理モード
、値“O”がメモリモードを各々表すとすると、ライト
イネーブル信号22の値は以下のようになる。
2の出力信号46とモード信号14とを入力し、論理演
算を実行した結果をライトイネーブル信号22として出
力する。例えばリード/ライト信号16は、値“1”が
リード、値“゜0”がライト、信号46は、値“1”が
アクティブ、モード信号l4は、値゛1”が処理モード
、値“O”がメモリモードを各々表すとすると、ライト
イネーブル信号22の値は以下のようになる。
信号22=(信号16 AND (1一信号14)
)OR (信号16 AND信号46 AND信
号14)デコーダ42はデータ信号12を入力し、この
データ信号を解読して信号46,命令コード信号26,
転送制御信号28として出力し、信号46は論理回路4
0に入力される。
)OR (信号16 AND信号46 AND信
号14)デコーダ42はデータ信号12を入力し、この
データ信号を解読して信号46,命令コード信号26,
転送制御信号28として出力し、信号46は論理回路4
0に入力される。
データセレクタ44は、モード信号14.データ信号l
2と、演算結果データ信号36. 38と、メモリデー
タ信号20と、転送部保持データ信号34と、被演算デ
ータ信号24との間の接続を行う。そしてメモリモード
の場合は、データ信号12をメモリ4へのメモリデータ
信号20に接続する。また処理モードの場合は、データ
信号12上の命令コードに応じて、メモリデータ信号2
0あるいは転送部保持データ信号34を、第1演算部6
への被演算データ信号24として出力し、またメモリ4
への書き込み用に、演算結果データ信号36と38の一
方を選択し、メモリデータ信号20として出力する。
2と、演算結果データ信号36. 38と、メモリデー
タ信号20と、転送部保持データ信号34と、被演算デ
ータ信号24との間の接続を行う。そしてメモリモード
の場合は、データ信号12をメモリ4へのメモリデータ
信号20に接続する。また処理モードの場合は、データ
信号12上の命令コードに応じて、メモリデータ信号2
0あるいは転送部保持データ信号34を、第1演算部6
への被演算データ信号24として出力し、またメモリ4
への書き込み用に、演算結果データ信号36と38の一
方を選択し、メモリデータ信号20として出力する。
第3図は、本実施例によるデコーダ42におけるデコー
ド表の一例を示したものであり、データ信号12が8ビ
ット、命令コード信号26が5ビット、転送制御信号2
8が3ビットの場合のデコード表である。第3図で示す
ように、最下位からの3ビットとその上の2ビットは、
最下位からの3ビット(1〜3ビット目)が第1演算部
6のノーオペレーション(nop)、加算(add)、
乗算(mul)、減算(sub)、メモリ4から第1演
算部6の内蔵レジス夕へのロード(load) 、演算
結果データ信号36をメモリデータ信号20に出力する
ことによる、演算結果の第1演算部6の内蔵レジスタか
らメモリ4へのストア(store)、その上の2ビッ
ト(4,5ビット目)は、第2演算部8での累積加算(
aCC)、ノーオペレーション(nop2) 、アキュ
ムレータレジスタのクリア(clr)、演算結果データ
信号36による演算結果のメモリ4へのストア(sto
re2)を示す命令コード信号26である。
ド表の一例を示したものであり、データ信号12が8ビ
ット、命令コード信号26が5ビット、転送制御信号2
8が3ビットの場合のデコード表である。第3図で示す
ように、最下位からの3ビットとその上の2ビットは、
最下位からの3ビット(1〜3ビット目)が第1演算部
6のノーオペレーション(nop)、加算(add)、
乗算(mul)、減算(sub)、メモリ4から第1演
算部6の内蔵レジス夕へのロード(load) 、演算
結果データ信号36をメモリデータ信号20に出力する
ことによる、演算結果の第1演算部6の内蔵レジスタか
らメモリ4へのストア(store)、その上の2ビッ
ト(4,5ビット目)は、第2演算部8での累積加算(
aCC)、ノーオペレーション(nop2) 、アキュ
ムレータレジスタのクリア(clr)、演算結果データ
信号36による演算結果のメモリ4へのストア(sto
re2)を示す命令コード信号26である。
その上の3ビット(6〜8ビット目)は、メモリデータ
信号20から転送部10の内蔵レジスタへのロード(
trload) 、転送部10の内蔵レジスタと入出力
ポート信号30 (記号aとする)および人出力ポート
信号32(記号bとする)の2系統の外部人出力ポート
との人力(in)と出力(out)の組合せに応じた4
つのデータ転送(trouta, troutb. t
rina, trinb) 、転送部10の内蔵レジス
タデー夕のメモリ4へのストア( trs tore)
、および転送部保持データ信号34への出力( tro
u t)、ノーオペレーション(nop3)を示す転送
制御信号28である。
信号20から転送部10の内蔵レジスタへのロード(
trload) 、転送部10の内蔵レジスタと入出力
ポート信号30 (記号aとする)および人出力ポート
信号32(記号bとする)の2系統の外部人出力ポート
との人力(in)と出力(out)の組合せに応じた4
つのデータ転送(trouta, troutb. t
rina, trinb) 、転送部10の内蔵レジス
タデー夕のメモリ4へのストア( trs tore)
、および転送部保持データ信号34への出力( tro
u t)、ノーオペレーション(nop3)を示す転送
制御信号28である。
第4図は本実施例の演算機能付きメモリを、4個含んだ
装置の一例のブロック図である。
装置の一例のブロック図である。
演算機能付きメモリ50, 52. 54. 56は、
データ信号12. リード/ライト信号16,アドレ
ス信号18を各々共通とし、個々にモード信号6B.
70. 72.74を入力する。ここで各モード信号は
、アドレス信号18をデコードするアドレスデコーダ6
6によって出力されている。例えば、アドレスの上位の
3ビットをデコードする場合、r ooo ,からr0
11Jまでがメモリモードであって、r ooo Jで
演算機能付きメモリ50、r001Jで演算機能付きメ
モリ52、r010,で演算機能付きメモリ54、「0
11Jで演算機能付きメモリ56がイネープルになり、
「1**」の場合には演算機能付きメモリ50. 52
, 54.56のすべてが処理モードとなるようなモー
ド信号が出力するよう用いることができる。なおここで
“1は、ドントケアの意味で使用した。信号58,60
. 62. 64は、演算機能付きメモリの転送用各入
出力ポートを接続するものであり、これらの信号により
隣接したチップ同士での転送を行える.?にこの装置の
使用例を、ベクトルAをk個のベクトルBkに対して共
通に使用し、k個の内積を計算する場合に、 Cko =Ao xBko Ck. =Ckエー1 +Ai XBk五(O≦
i≦3) (0≦k≦3) という式でベクトルAとベクトルBkから内積Ckを得
る動作で説明する。
データ信号12. リード/ライト信号16,アドレ
ス信号18を各々共通とし、個々にモード信号6B.
70. 72.74を入力する。ここで各モード信号は
、アドレス信号18をデコードするアドレスデコーダ6
6によって出力されている。例えば、アドレスの上位の
3ビットをデコードする場合、r ooo ,からr0
11Jまでがメモリモードであって、r ooo Jで
演算機能付きメモリ50、r001Jで演算機能付きメ
モリ52、r010,で演算機能付きメモリ54、「0
11Jで演算機能付きメモリ56がイネープルになり、
「1**」の場合には演算機能付きメモリ50. 52
, 54.56のすべてが処理モードとなるようなモー
ド信号が出力するよう用いることができる。なおここで
“1は、ドントケアの意味で使用した。信号58,60
. 62. 64は、演算機能付きメモリの転送用各入
出力ポートを接続するものであり、これらの信号により
隣接したチップ同士での転送を行える.?にこの装置の
使用例を、ベクトルAをk個のベクトルBkに対して共
通に使用し、k個の内積を計算する場合に、 Cko =Ao xBko Ck. =Ckエー1 +Ai XBk五(O≦
i≦3) (0≦k≦3) という式でベクトルAとベクトルBkから内積Ckを得
る動作で説明する。
まずあらかじめ、第4図で示した演算機能付きメモリの
、 モジュール50にA0、B O .. B O 3.
B O■,BO.モジュール52にA1、Bl,,Bl
。,B1s.B1gモジュール54にA2、B2■,B
2.,B2。.B2,モジュール56にA3、B 3
3. B 3■,B3.,B3。
、 モジュール50にA0、B O .. B O 3.
B O■,BO.モジュール52にA1、Bl,,Bl
。,B1s.B1gモジュール54にA2、B2■,B
2.,B2。.B2,モジュール56にA3、B 3
3. B 3■,B3.,B3。
を順に格納する。ここでは、例えばベクトルAとベクト
ルBkを順にアドレス(0)から(4)に、内積Ckを
アドレス(5)に格納するものとする。
ルBkを順にアドレス(0)から(4)に、内積Ckを
アドレス(5)に格納するものとする。
次にモード信号68. 70, 72. 74を処理モ
ード、リード/ライト信号16をライトとし、上記アド
レ?に格納されたデータに対する乗算を第1演算部6に
対してデータ信号12を用いて指定すれば、モジュール
4個の並列処理によって、 A0xBO。=TO A + X B 1 l= T I A,XB2■=T2 As X B 3 3 =7 3 の演算を実行できる。ここでTkはテンポラリな値を示
すのに用いている。このとき、各ベクトルA,を隣接す
るモジュールに転送し、隣接モジュールの転送部のレジ
スタへ保持させる。そして次に第1演算部で演算した結
果を第2演算部ではテンボラリ値と加算して、 A,xBOz +TO=TO A o X B 1 o + ’l’ l = TIA
,xB2+ +T2=T2 AzXB3■+T3=T3 の演算を実行する。同様な演算と転送で、AtxBσ.
+’ro=T’o A3 XB 1 3 +T I =T 1AoxB2。
ード、リード/ライト信号16をライトとし、上記アド
レ?に格納されたデータに対する乗算を第1演算部6に
対してデータ信号12を用いて指定すれば、モジュール
4個の並列処理によって、 A0xBO。=TO A + X B 1 l= T I A,XB2■=T2 As X B 3 3 =7 3 の演算を実行できる。ここでTkはテンポラリな値を示
すのに用いている。このとき、各ベクトルA,を隣接す
るモジュールに転送し、隣接モジュールの転送部のレジ
スタへ保持させる。そして次に第1演算部で演算した結
果を第2演算部ではテンボラリ値と加算して、 A,xBOz +TO=TO A o X B 1 o + ’l’ l = TIA
,xB2+ +T2=T2 AzXB3■+T3=T3 の演算を実行する。同様な演算と転送で、AtxBσ.
+’ro=T’o A3 XB 1 3 +T I =T 1AoxB2。
+T2=T2
At xB3+ +T3=T3
さらに、
A,XBO.+TO=CO
At XB1! +71=CI
A3 X B 2 s +T 2 = C 2A,xB
3。+T3=C3 と実行することによって、内積CO,CI,C2.C3
を求めることができる。
3。+T3=C3 と実行することによって、内積CO,CI,C2.C3
を求めることができる。
このとき、第3図のデコード表を用いた場合には、プロ
グラムは下記のようになる.ここではメモリ4のアクセ
スアドレス、第1油算部6の命令コード、第2演算部8
の命令コード、転送部1oの命令コード、そして「」内
にコメントの順で記すことにする. (0) load , nop2、trload「
ベクトルAのデータを第l演算部のレジスタと転送部の
レジスタにロード」 (1)mul、 clrStroutb「ベクトルB
kの最初のデータとの乗算、第2演算部のレジスタクリ
ア、転送部 保持データを隣接モジュールへ転送」 (−) load % accStrout「転送
部データを第1演算部へロード、乗算結果アキュムレー
ト」 (2) n+ul%nop2、trou tb「ベク
トルBkの次データとの乗算、転送部保持データを隣接
モジュールへ転 送」 (−) load Sacc, trout「転
送部データを第1演算部へロード、乗算結果アキュムレ
ート」 (3) mul, nop2、trou tb「
ベクトルBkの次データとの乗算、転送部保持データを
隣接モジュールへ転 送」 ( ) load , acc, trou
t「転送部データを第1演算部へロード、乗算結果アキ
ュムレート」 44) mul, nop2、trou tb「
ベクトルBkの次データとの乗算、転送部保持データを
隣接モジュールへ転 送」 ( ) nap, acc, nop3「乗算
結果のアキュムレート」 ( 5 ) nopXstore2、nop3「内積
結果Ckのメモリストア」 ただし、(−)は、命令コードによって無効にされるア
ドレスを示している.また、すべてのモジュールで同一
のプログラムである. なお、ベクトルAやBkの次元iが3より大きい場合に
はサフィックスが0から3までを終わったら、次に4か
ら7までというようにすればできる.また、ベクトルの
数kの値が3以上の場合にも、テンボラリ値が1つしか
保持できないなら4個ずつ順に時分割で処理を行えばよ
く、またテンボラリ値を複数保持できるならば、各ベク
トルA.を用いる処理をすべて行ってからベクトルA+
の隣接転送を行うようにすればよい。
グラムは下記のようになる.ここではメモリ4のアクセ
スアドレス、第1油算部6の命令コード、第2演算部8
の命令コード、転送部1oの命令コード、そして「」内
にコメントの順で記すことにする. (0) load , nop2、trload「
ベクトルAのデータを第l演算部のレジスタと転送部の
レジスタにロード」 (1)mul、 clrStroutb「ベクトルB
kの最初のデータとの乗算、第2演算部のレジスタクリ
ア、転送部 保持データを隣接モジュールへ転送」 (−) load % accStrout「転送
部データを第1演算部へロード、乗算結果アキュムレー
ト」 (2) n+ul%nop2、trou tb「ベク
トルBkの次データとの乗算、転送部保持データを隣接
モジュールへ転 送」 (−) load Sacc, trout「転
送部データを第1演算部へロード、乗算結果アキュムレ
ート」 (3) mul, nop2、trou tb「
ベクトルBkの次データとの乗算、転送部保持データを
隣接モジュールへ転 送」 ( ) load , acc, trou
t「転送部データを第1演算部へロード、乗算結果アキ
ュムレート」 44) mul, nop2、trou tb「
ベクトルBkの次データとの乗算、転送部保持データを
隣接モジュールへ転 送」 ( ) nap, acc, nop3「乗算
結果のアキュムレート」 ( 5 ) nopXstore2、nop3「内積
結果Ckのメモリストア」 ただし、(−)は、命令コードによって無効にされるア
ドレスを示している.また、すべてのモジュールで同一
のプログラムである. なお、ベクトルAやBkの次元iが3より大きい場合に
はサフィックスが0から3までを終わったら、次に4か
ら7までというようにすればできる.また、ベクトルの
数kの値が3以上の場合にも、テンボラリ値が1つしか
保持できないなら4個ずつ順に時分割で処理を行えばよ
く、またテンボラリ値を複数保持できるならば、各ベク
トルA.を用いる処理をすべて行ってからベクトルA+
の隣接転送を行うようにすればよい。
次に、共通のデータを使わない場合の例について動作を
説明する。4つのモジュールに、モジュールI A!
.Bi (i=o,1,2.3)モジュール2 A
i,B4 (i=4. 5, 6. 7)モジ:L
/L/3 A=,B!(i=8. 9. 10+
11)モジュール4 A=,Bt (i=12.
13. 14. 15)を格納しておき、 Ci =Ai +Bi., (0≦i≦14)の
ような演算を行いたい場合を考える。
説明する。4つのモジュールに、モジュールI A!
.Bi (i=o,1,2.3)モジュール2 A
i,B4 (i=4. 5, 6. 7)モジ:L
/L/3 A=,B!(i=8. 9. 10+
11)モジュール4 A=,Bt (i=12.
13. 14. 15)を格納しておき、 Ci =Ai +Bi., (0≦i≦14)の
ような演算を行いたい場合を考える。
この場合、i=3.7.11に対して、同一チップ内に
データが存在しなくなるが、転送命令によって、ベクト
ルB=,Be,B−zをベクトルA z. A ’t,
A.の格納されている隣のチップへ同時に転送すること
で、処理が高速にできる。この場合、i=15に対して
はサフィックスが16を法とするモジュロ数であれば、
4番地を転送する際にベクトルB0もベクトルB a,
B s. B .tとともに転送され、ベクトルAI
,との演算が行われてしまう。このような動作が望まし
くない場合には、特定のチップだけをアドレスデコーダ
66でメモリモードにできるようにすればよい。例えば
、前述したアドレスで処理モードの指定をする場合で、
前記アドレスの上位3ビットでr 100 Jのときは
4チップとも処理モード、r 101 Jではモジュー
ル110だけはメモリモードとするなどとすることで対
処できる。
データが存在しなくなるが、転送命令によって、ベクト
ルB=,Be,B−zをベクトルA z. A ’t,
A.の格納されている隣のチップへ同時に転送すること
で、処理が高速にできる。この場合、i=15に対して
はサフィックスが16を法とするモジュロ数であれば、
4番地を転送する際にベクトルB0もベクトルB a,
B s. B .tとともに転送され、ベクトルAI
,との演算が行われてしまう。このような動作が望まし
くない場合には、特定のチップだけをアドレスデコーダ
66でメモリモードにできるようにすればよい。例えば
、前述したアドレスで処理モードの指定をする場合で、
前記アドレスの上位3ビットでr 100 Jのときは
4チップとも処理モード、r 101 Jではモジュー
ル110だけはメモリモードとするなどとすることで対
処できる。
以上説明したように本発明では、メモリに対するリ一ド
/ライトや、第1演算部,第2演算部および転送部に対
する命令コードを、データ信号を用いて指定することが
できるため、従来システムのメモリと同様のインタフェ
ースを介して処理を実行することができる。また通常の
メモリと比べ、新たに用いる信号はモード信号のみであ
る。
/ライトや、第1演算部,第2演算部および転送部に対
する命令コードを、データ信号を用いて指定することが
できるため、従来システムのメモリと同様のインタフェ
ースを介して処理を実行することができる。また通常の
メモリと比べ、新たに用いる信号はモード信号のみであ
る。
さらに、このモード信号は、データ信号,リード/ライ
ト信号,転送制御信号の信号線から或るバスによって設
定できるフリップフロップの出力、あるいはアドレス信
号の一部を用いることができ、いずれの場合もバスの信
号線の構威については従来のメモリを用いるシステムの
ままで済み、本発明を用いた装置を接続する際に、その
インタフェース部に、以上に述べたモード信号を生成す
る回路を設ければよい。
ト信号,転送制御信号の信号線から或るバスによって設
定できるフリップフロップの出力、あるいはアドレス信
号の一部を用いることができ、いずれの場合もバスの信
号線の構威については従来のメモリを用いるシステムの
ままで済み、本発明を用いた装置を接続する際に、その
インタフェース部に、以上に述べたモード信号を生成す
る回路を設ければよい。
以上説明したように本発明の演算機能付きメモリは、チ
ップ間での並列データ転送ができ、単にメモリに格納さ
れたデータに対する演算を高速に実行できるだけでなく
、第1演算部に対する命令コード等をデータ信号により
指定するため、通常のメモリと同様のインタフェースを
用いることができる.このため、ソフトウェア作戒等の
際の負担を大きく削減することができると共に、容易に
既存のシステムのメモリを利用した並列処理システムへ
の変更ができる効果がある.また、演算器を2つ内蔵し
ており、共通のベクトルデータに対する複数の内積演算
を高速計算できる効果がある.
ップ間での並列データ転送ができ、単にメモリに格納さ
れたデータに対する演算を高速に実行できるだけでなく
、第1演算部に対する命令コード等をデータ信号により
指定するため、通常のメモリと同様のインタフェースを
用いることができる.このため、ソフトウェア作戒等の
際の負担を大きく削減することができると共に、容易に
既存のシステムのメモリを利用した並列処理システムへ
の変更ができる効果がある.また、演算器を2つ内蔵し
ており、共通のベクトルデータに対する複数の内積演算
を高速計算できる効果がある.
第1図は、本発明の一実施例である演算機能付きメモリ
を示すブロック図、 第2図は、第1図の実施例に含まれる制御部の一例を示
すブロック図、 第3図は、第1図の実施例に含まれるデコーダにおける
デコード表を示す図、 第4図は、第l図の演算機能付きメモリを4モジュール
含んで構或される装置の一例を示すブロック図である. 2・・・・・制御部 4・・・・・メモリ 6・・・・・第1演算部 8・・・・・第2演算部 10・・・・・転送部 40・・・・・論理回路 42・・・・・デコーダ 44・・・・・データセレクタ 66・・・・・アドレスデコーダ
を示すブロック図、 第2図は、第1図の実施例に含まれる制御部の一例を示
すブロック図、 第3図は、第1図の実施例に含まれるデコーダにおける
デコード表を示す図、 第4図は、第l図の演算機能付きメモリを4モジュール
含んで構或される装置の一例を示すブロック図である. 2・・・・・制御部 4・・・・・メモリ 6・・・・・第1演算部 8・・・・・第2演算部 10・・・・・転送部 40・・・・・論理回路 42・・・・・デコーダ 44・・・・・データセレクタ 66・・・・・アドレスデコーダ
Claims (1)
- (1)アドレス信号入力、データ信号入出力、リード/
ライト信号入力、モード信号入力、複数系統のデータ転
送入出力のためのポートと、 データを格納するメモリと、 データを転送する転送部と、 前記メモリおよび前記転送部からのデータに対して演算
を実行し、演算結果データを出力する第1の演算部と、 この第1演算部の演算結果データを被演算データとして
入力し、この被演算データに対して演算を実行し、演算
結果データを出力する第2の演算部と、 前記メモリ、前記転送部、前記第1の演算部および前記
第2の演算部を制御する制御1部とを備え、前記制御部
は、前記モード信号がメモリモードであれば、前記リー
ド/ライト信号に従って、前記アドレス信号をアドレス
とし、前記データ信号をデータとして前記メモリの読み
出し、もしくは書き込みの制御を行い、 前記モード信号が処理モードであれば、前記リード/ラ
イト信号が書き込みである場合に、前記データ信号を解
読して、 前記アドレス信号をアドレスとして前記メモリから読み
出したデータと、前記データ転送入出力ポートから入力
したデータの前記第1演算部もしくは前記転送部への入
力の制御と、 前記第1演算部と前記第2演算部との演算の指定の制御
と、 前記アドレス信号をアドレスとし、前記第1演算部もし
くは第2演算部の演算結果データ、もしくは前記転送部
からのデータの前記メモリへの書き込みの制御と、 前記メモリから読み出したデータ、もしくは前記第1演
算部あるいは第2演算部の演算結果データの1つを選択
し、前記転送部でのデータ転送入出力ポートを介して、
外部へデータ転送する制御を行うことを特徴とする演算
機能付きメモリ。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP1240243A JPH03104086A (ja) | 1989-09-18 | 1989-09-18 | 演算機能付きメモリ |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP1240243A JPH03104086A (ja) | 1989-09-18 | 1989-09-18 | 演算機能付きメモリ |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH03104086A true JPH03104086A (ja) | 1991-05-01 |
Family
ID=17056588
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP1240243A Pending JPH03104086A (ja) | 1989-09-18 | 1989-09-18 | 演算機能付きメモリ |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH03104086A (ja) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2016051491A (ja) * | 2014-08-29 | 2016-04-11 | 株式会社日立製作所 | 半導体装置 |
-
1989
- 1989-09-18 JP JP1240243A patent/JPH03104086A/ja active Pending
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2016051491A (ja) * | 2014-08-29 | 2016-04-11 | 株式会社日立製作所 | 半導体装置 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| KR960001273B1 (ko) | 단일칩 마이크로컴퓨터 | |
| CN110490311A (zh) | 基于risc-v架构的卷积神经网络加速装置及其控制方法 | |
| JPS6311697B2 (ja) | ||
| JPH07152733A (ja) | ベクトル・データを処理するコンピュータ・システムおよび方法 | |
| WO1994003860A1 (en) | Massively parallel computer including auxiliary vector processor | |
| JPH05173837A (ja) | オペランド内の情報のスタティックおよびダイナミック・マスキングを兼ね備えるデータ処理システム | |
| US8145804B2 (en) | Systems and methods for transferring data to maintain preferred slot positions in a bi-endian processor | |
| KR102900878B1 (ko) | 레지스터 데이터 소거 | |
| JPS63240664A (ja) | 高速処理計算機 | |
| JPH05100948A (ja) | 2乗演算を実行する速度改良型データ処理システム及びその方法 | |
| US3710349A (en) | Data transferring circuit arrangement for transferring data between memories of a computer system | |
| JP2006099232A (ja) | 半導体信号処理装置 | |
| EP0526911B1 (en) | A method and apparatus for coordinating execution of an instruction by a coprocessor | |
| JPH02297594A (ja) | データ処理装置、データ処理システム及びアウトラインフォントデータ発生方法 | |
| JP2568017B2 (ja) | マイクロプロセッサ及びそれを使用したデータ処理システム | |
| JPH03104087A (ja) | 演算機能付きメモリ | |
| JPH033047A (ja) | 演算機能付きメモリ | |
| JP3520372B2 (ja) | メモリ制御ユニット並びに入出力制御ユニットの動作におけるクリティカル・パスの削除 | |
| JP2011192305A (ja) | 半導体信号処理装置 | |
| JP2006515446A (ja) | 関連アプリケーションを相互参照するカルテシアンコントローラを有するデータ処理システム | |
| JPH023821A (ja) | 高速演算装置 | |
| JPS6023384B2 (ja) | アレイ・プロセツサにおける内部メモリ制御方式 | |
| JP3441847B2 (ja) | データメモリを有するプロセッサ | |
| JPH0359879A (ja) | 演算機能付きメモリ | |
| JPH01237766A (ja) | データ処理装置およびそれを用いた画像データ処理システム |