JPH0950695A - 行列データ記憶方法およびその装置 - Google Patents

行列データ記憶方法およびその装置

Info

Publication number
JPH0950695A
JPH0950695A JP7216646A JP21664695A JPH0950695A JP H0950695 A JPH0950695 A JP H0950695A JP 7216646 A JP7216646 A JP 7216646A JP 21664695 A JP21664695 A JP 21664695A JP H0950695 A JPH0950695 A JP H0950695A
Authority
JP
Japan
Prior art keywords
matrix
matrix data
ram
random access
data
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
JP7216646A
Other languages
English (en)
Inventor
Osamu Fujita
修 藤田
Kimihisa Aihara
公久 相原
Kuniharu Uchimura
国治 内村
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.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone 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 Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP7216646A priority Critical patent/JPH0950695A/ja
Publication of JPH0950695A publication Critical patent/JPH0950695A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Static Random-Access Memory (AREA)
  • Dram (AREA)

Abstract

(57)【要約】 【課題】 N×M行列データの読み出し時間が短く、ま
た、N×M行列データの読み出しアドレス制御装置が簡
素である行列データ記憶方法および装置を提供すること
を目的とするものである。 【解決手段】 N×M要素の行列データを分割し、この
分割された行列データを複数個のランダムアクセス記憶
装置に記憶する方法において、行列データの行番号と列
番号とをランダムアクセス記憶装置の数で均等に分割し
て複数のブロックを作り、これら複数のブロックのうち
で対角線に平行な方向に連なる複数のブロック内の行列
要素をランダムアクセス記憶装置に記憶させ、ランダム
アクセス記憶装置に記憶されている複数個の行列要素を
同時に読み出しまたは書き込みするものである。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、行列データの読み
出し、書き込みを効率よく行うことのできる行列データ
の記憶方法およびその装置に関するものである。
【0002】
【従来の技術】図10は、従来の行列データの記憶方式
の基本構成を示す図であり、図10(1)は、従来の行
列データの記憶装置S3の構成を示す図であり、図10
(2)は、従来の行列データの記憶装置S3における記
憶方法を示す図である。
【0003】図10(1)に示すように、従来の行列デ
ータの記憶装置S3は、K個のRAM(ランダムアクセ
ス記憶装置)と、アドレスデコーダADと、データバス
とで構成されている。
【0004】K個のRAMとして、RAM0 、RAM
1 、…、RAMK-1 が設けられ、RAMk (k=0、
1、…、K−1)は、チップ選択信号入力端子CEk
と、アドレス入力端子Ak と、データ出力端子Dk とを
有する。
【0005】アドレスデコーダADは、制御信号Pとア
ドレスAL、AUとを入力し、アドレスALは、RAM
0 、RAM1 、…、RAMK-1 のアドレスAk を指定す
る信号であり、Aとして出力される。アドレスAUは、
RAM0 、RAM1 、…、RAMK-1 のうちの1つを選
択指定する信号であり、P=0であるときに、端子CE
0 、CE1 、…、CEK-1 のどれか1つだけに選択信号
を出力し、P=1であるときに、端子CE0 、CE1
…、CEK-1 の全てに選択信号を出力するものである。
【0006】行列データの記憶装置S3において、制御
信号Pと、アドレスAと、端子CE0 、CE1 、…、C
K-1 の信号とによって、RAM0 、RAM1 、…、R
AMK-1 の各データの読み出しまたは書き込みが可能に
なる。また、行列データの記憶装置S3において、各R
AMのデータ入出力端子D0 、D、…、Dk-1 をそれぞ
れプロセッサPE0 、PE1 、…、PE k-1に接続すれ
ば、並列計算機を構成することができ、各プロセッサP
0 、PE1 、…、PE k-1によって、行列演算を並列
計算することができる。
【0007】この従来の記憶装置S3において、各RA
0 、RAM1 、…、RAMK-1 にN×M行列データX
ijを分散して記憶する場合、図10(1)に示すよう
に、いくつかの行をまとめて1つのRAMに記憶してい
る。
【0008】このようにすると、たとえば、N×M行列
データXijと列ベクトルYj との積XYを求めるために
積和演算ΣXijj を実行する場合(この場合、jにつ
いて累積をとる)、各プロセッサは、それぞれに接続さ
れたメモリから必要なXijのデータをアクセスできる。
【0009】しかし、N×M行列データXijと行ベクト
ルZi との積ZXを求めるためには、積和演算ΣZi
ijを実行する必要があり(この場合、iについて累積を
とる必要があり)、i行における互いに異なるデータX
ijが、RAM0 、RAM1 、…、RAMK-1 に分散して
記憶されているので、各プロセッサPE0 、PE1
…、PE k-1間でデータを転送する必要がある。ところ
が、この転送時間が長いので、実行速度が低下するとい
う欠点がある。この欠点は、いくつかの列をまとめて記
憶する場合にも生じるものである。
【0010】また、行をまとめて記憶すると同時に、列
もまとめて2重に記憶する方式も知られているが、この
方式では、単に読み出しを行う場合には問題はないが、
書き込みを行う場合、1つのデータXijが異なるRAM
に記憶されているので、RAM間でデータ転送する必要
があり、この場合も、全体の処理時間が長くなるという
欠点がある。
【0011】
【発明が解決しようとする課題】この欠点を解決するに
は、N×M行列データXijをK個のRAMに記憶させる
場合に、iが同じである行列データXijが同じRAMに
記憶されないようにし、また、jが同じである行列デー
タXijが同じRAMに記憶されないようにし、このよう
にするために、記憶すべき行列データXijのiをずらし
て行列データXijを記憶させ、また、記憶すべき行列デ
ータXijのjをずらして行列データXijを記憶する方法
が知られている。
【0012】すなわち、まず最初の列のデータを順番に
各RAMに分配して記憶させた後、1つの空白データを
次のRAMに記憶させる。そして、空白データが記憶さ
れたRAMの次のRAMから、次の列のデータを順番に
各RAMに分配して記憶させた後、同様に1つの空白デ
ータを付加し、その次の列のデータを順番に次のRAM
に記憶させる。
【0013】このように記憶させると、Kが素数である
場合に、iが異なる行列データXij同士が1つのRAM
に記憶され、また、jが異なる行列データXij同士が1
つのRAMに記憶されるので、各行または各列の行列デ
ータXijを並列に読み書きできるようになり、各行また
は各列を順番に読むようなベクトル計算機用の記憶方法
としては適している。
【0014】しかし、この上記の方法では、アドレス番
号の計算が複雑になるので、アドレスの制御装置が複雑
になるという問題がある。
【0015】また、各行または各列で隣り合うデータ
が、別々のRAMに記憶されているので、隣り合ういく
つかの行データまたは列データを並列プロセッサの1つ
に処理させる場合に、データ転送が必要になり、時間が
かかるという問題がある。
【0016】本発明は、N×M行列データの読み出し時
間が短く、また、N×M行列データを読み出すアドレス
制御装置が簡素である行列データ記憶方法および装置を
提供することを目的とするものである。
【0017】
【課題を解決するための手段】本発明は、N×M要素の
行列データを分割し、この分割された行列データを複数
個のランダムアクセス記憶装置に記憶する場合、行列デ
ータの行番号と列番号とをランダムアクセス記憶装置の
数で均等に分割して複数のブロックを作り、これら複数
のブロックのうちで、対角線に平行な方向に連なる複数
のブロック内の行列要素を同一のランダムアクセス記憶
装置に記憶させ、ランダムアクセス記憶装置に記憶され
ている複数個の行列要素を同時に読み出し、または書き
込みするものである。
【0018】
【発明の実施の形態および実施例】図1は、本発明の行
列データ記憶装置S0における記憶方法の説明図であ
り、K=4である場合を示す図である。
【0019】行列データ記憶装置S0は、N×M要素の
行列データを分割し、複数個のRAM(ランダムアクセ
ス記憶装置)に記憶する場合、行列データの行番号と列
番号とをRAMの数で均等に分割して複数のブロックを
作り、この複数のブロックのうちで、対角線に平行な方
向に連なるブロックを同一のRAMに記憶させる(分担
して記憶させる)装置である。
【0020】すなわち、行列データ記憶装置S0は、行
列データを各RAMへ割り振って記憶させるために、N
行のNとM列のMとをそれぞれメモリの数Kで均等に割
り、図1に示すA×B小行列のブロックに分割するもの
である。ここで、AはN/Kよりも大きな正の整数の中
で最小の数であり、つまり、Aは、AK≧Nを満たす最
小の正の整数であり、Bは、M/Kよりも大きな正の整
数の中で最小の数であるとし、つまり、BはBK≧Mを
満たす最小の正の整数である。
【0021】図1において、対角線と平行な方向に連な
るK個のブロック内の行列要素を1つのRAMに記憶す
る。このように記憶させているので、同じ行に属する行
列要素を、各RAMから並列に同時に読み出しまたは書
き込みすることができ、また、同じ列に属する行列要素
を、並列に同時に読み出しまたは書き込みすることもで
きる。したがって、行列データの記憶装置S0におい
て、行方向からも列方向からも、並列に行列データにア
クセスできるので、行列演算を高速で実行できる。な
お、図1に示す場合においては、1つのRAMに同じ行
の行列要素が2つ記憶され、また、1つのRAMに同じ
列の行列要素が2つ記憶されているので、たとえば同じ
行に属する行列要素を、各RAMから並列に1回で読み
出しまたは書き込みすることはできず、2回のアクセス
によって読み出しまたは書き込みすることはできるが、
全体の動作としては、従来例よりも高速処理ができる。
【0022】また、行列データ記憶装置S0では、並列
プロセッサを用いて行列データを処理するシステムにお
いて、各並列プロセッサがそれぞれ分担するブロックの
データを並列処理する場合、各行、各列がブロック分割
されているので、アドレス選択信号の一部を各RAMで
共通にすることができ(つまり、アドレスの上位ビット
を変える必要があるが、アドレスの下位ビットを変える
必要がなく)、したがって、アドレス制御が容易であ
る。
【0023】図2は、行列データの記憶装置S0の基本
構成を示す図である。
【0024】行列データの記憶装置S0は、アドレス制
御装置ACと、K個のランダムアクセス記憶装置RAM
0 、RAM1 、……、RAMK-1 と、接続切り替え装置
SWとで構成されている。K個のRAM0 、RAM1
……、RAMK-1 には、上記のように分割されたN×M
要素の行列データがそれぞれ記憶される。
【0025】アドレス制御装置ACは、行番号iと列番
号jとで構成されるC組(i0 、j0 )、(i1 、j
1 )、…、(iC-1 、jC-1 )の入力端子と、制御信号
Sを入力する端子と、切り替え制御信号SWCを出力す
る端子と、各RAMへのアドレスA0 、A1 、…、A
K-1 を出力する端子とを有し、各行番号iと各列番号j
と制御信号Sとに基づいて、各RAMのアドレスと切り
替え制御信号とを発生するものである。
【0026】RAMk (k=0、1、…、K−1)は、
アドレス制御装置ACからのアドレスAk に対応する行
列データを選択し、データ入出力端子Dk でアクセスで
きるようにするものである。
【0027】接続切り替え装置SWは、その各内部側端
子SI0 、SI1 、…、SIK-1 がRAM0 、RAM
1 、…、RAMK-1 の入出力端子D0 、D1 、…、D
K-1 に接続され、アドレス制御装置ACの切り替え制御
信号SWCに応じて、内部側端子SI0 、SI1 、…、
SIK-1 と外部側端子SO0 、SO1 、…、SOK-1
の接続を切り替えるものである。
【0028】ところで、行列計算では積和計算をするこ
とが多く、行列要素のうち一行または一列のデータをま
とめて読み出す場合がある。従来の記憶装置では常に一
要素ずつしか読み出せなかったり、並列に読み出すよう
にするために複雑なアドレス制御を行う必要がある。と
ころが、行列データの記憶装置S0では、行方向または
列方向に連なる各ブロックの中のデータを各RAMから
並列に読み出すことができるので、並列プロセッサを用
いて行列データを処理するシステムにおいて、各並列プ
ロセッサがそれぞれ分担するブロックのデータを並列処
理する場合に、比較的簡単なアドレス制御で、高速な読
み出しが可能になる。
【0029】図3は、本発明の第1の実施例である行列
データの記憶装置S1を示すブロック図であり、行列デ
ータの記憶装置S1は、行列データの記憶装置S0を具
体化したものである。
【0030】まず、行列データの記憶装置S1におい
て、記憶すべきN×M行列の第i行第j列の要素をXij
とする。また、RAMの個数をK個とし、N×M行列の
各行列要素を、K個のRAMに等分に割り当てて記憶さ
せる。すなわち、K×K行列を1つのブロックとし、N
×M行列を複数の上記ブロックに分割し、対角線と並行
に連なる複数のブロックを1つのメモリに割り当てる。
【0031】この場合、行列要素Xijを記憶するRAM
の番号k(=0、1、…、K−1)は、k=([i/
A]―[j/B])mod Kであるとする。ただし、A
は、AK≧Nを満たす最小の正の整数であり、Bは、B
K≧Nを満たす最小の正の整数であり、[i/A]は、
商i/Aを越えない最大の正の整数であり、[j/B]
は、j/Bを越えない最大の正の整数である。また、
([i/A]―[j/B])mod Kは、(i/A]―
[j/B])をKで割った場合の余りである。また、行
列要素Xijを記憶するRAMにおけるアドレスAk は、
k =jmod B+B・iである。
【0032】行列データの記憶装置S1は、アドレス制
御装置AC1と、K個のRAM(ランダムアクセス記憶
装置)と、接続切り替え装置SW1とで構成されてい
る。
【0033】図4は、行列データの記憶装置S1におけ
るアドレス制御装置AC1を具体的に示す図であり、K
=4である場合におけるアドレス制御装置AC1を示す
図である。
【0034】このアドレス制御装置AC1は、カウンタ
11と、K個のルックアップテーブルLUTと、切り替
え制御信号出力装置12とを有する。
【0035】アドレス制御装置AC1は、行番号iと、
列番号jと、制御入力としての行列選択信号Sと、並列
制御信号Pと、クロック信号CKとを入力する。
【0036】カウンタ11は、クロック信号CKに同期
して0からB−1までインクリメントし、その値を出力
するものである。k番目のLUTは、カウンタ11の出
力と入力信号P、S、i、jとを入力し、対応するk番
目のRAMのアドレスAk を出力するものである。切り
替え制御信号出力装置12は、入力信号S、i、jに基
づいて、接続切り替え装置SW1のスイッチを制御する
信号SWCを出力するものである。
【0037】k番目のLUTの内容は、k番目のRAM
のアドレスAk である。行番号iと列番号jとによって
指定した行列データXijにアクセスする場合、1つの行
iを指定し、各RAMからi行に属するB個の行列要素
をjの昇順または降順でアクセスする場合には、入力信
号P=0とし、1つの列jを指定し、各RAMからJ列
に属するA個の行列要素をiの昇順または降順でアクセ
スするには、入力信号P=1とする。また、1つの行i
を指定して並列にアクセスする場合、入力信号S=0と
し、1つの列jを指定して並列にアクセスするには、S
=1とする。
【0038】入力信号P=0、S=0の場合において、
アドレスを与える計算式は、Ak =jmod B十B・iで
あり、入力信号P=0、S=1の場合において、アドレ
スを与える計算式は、Ak =jmod B+B・imod AB
+(([j/B]+k)modK)・ABである。ただ
し、jmod Bは、jをBで割ったときの余りを示すもの
であり、[j/B]は、商j/Bの整数部分を示すもの
である。
【0039】入力信号P=0、S=0の場合に、i行j
列を指定すると、k番目のRAMでは、j行の行列要素
ihにアクセスすることができる。ただし、この場合、
h=((jmod B+[i/A]・B−Bk)mod BK)
である。
【0040】また、入力信号P=0、S=1の場合に、
i行j列を指定すると、k番目のRAMでは、j列の行
列要素Xhjにアクセスできる。ただし、この場合、h=
(imod A+[j/B]・A+Ak )mod AK)であ
る。
【0041】さらに、入力信号P=1、S=0の場合
に、i行を指定すると、k番目のRAMでは、i行の行
列要素Xi,h(q,k)にアクセスできる。ただし、この場
合、h(q,k) =((qmod B+[i/A]・B−Bk)
mod BK)である。ここで、qはカウンタ11の出力
で、CK信号に同期してq=0、1、…、B−1と順番
にインクリメントされ、k番目のRAMでは、Xi,h(0,
k)、 Xi,h(1,k)、 …、Xi,h(B-1,k)と列番号に関して、
順番にB個の行列要素にアクセスできる。
【0042】このようにして、全てのRAMのデータ入
出力を合わせると、i行に属するM個の行列要素Xi,
i,0 、Xi,1 、…、Xi,M-1 の全てについてアクセス
したことになる。
【0043】同様に、入力信号P=1、S=1でj列を
指定すると、k番目のRAMではj列の行列要素Xh(q,
k),jにアクセスできる。ただし、h(q,k) =((q mod
A+[j/B]・A+Ak )mod AK)である。ここ
で、qは、カウンタ11の出力であって、CK信号に同
期してq=0、1、…、A−1と順番にインクリメント
され、k番目のRAMでは、Xh(0,k),j、Xh(1,k),j
…、Xh(A-1,k), と行番号とに関して、順番にA個の行
列要素にアクセスできる。
【0044】このようにして、全てのRAMのデータ入
出力を合わせると、j列に属するN個の行列要素X
0,j 、X1,j 、…、XN-1,j の全てにアクセスしたこと
になる。各RAMのデータは、行番号iと列番号jと行
列選択信号Sとを指定することによって、Xijの出力順
序が変わるので、接続切り替え装置SW1によってデー
タを所望の順序に並び換える。
【0045】図5は、行列データの記憶装置S1におけ
る接続切り替え装置SW1を示す回路図であり、K=4
である場合を示す図である。
【0046】接続切り替え装置SW1は、アドレス制御
装置AC1の出力信号SWCに含まれる信号i、j、S
を入力する。
【0047】接続切り替え装置SW1は、制御回路20
とクロスバスイッチ30とで構成されている。制御回路
20は、信号i、j、Sの値に応じて、クロスバスイッ
チ30のON/OFFを制御する信号を生成するもので
あり、デコーダ21、22とマルチプレクサ(MUX)
23とを有する。デコーダ21は、信号iに応じて、選
択すべきスイッチの制御信号を生成するものであり、デ
コーダ22は、信号jに応じて、選択すべきスイッチの
制御信号を生成するものであり、マルチプレクサ23
は、デコーダ21、22の出力を、信号Sの値に応じて
選択出力するものである。
【0048】すなわち、行データを並列にアクセスする
場合には、信号S=0にセットすることによって、i用
のデコーダ21の出力信号を選択し、列データを並列に
アクセスする場合には、信号S=1にセットすることに
よって、j用のデコーダ22の出力信号を選択する。
【0049】クロスバスイッチ30は、各RAMのデー
タ入出力に対応するK組の内部側端子SI0 、SI1
SI2 、……、SIk-1 と、これらと同数のK組の外部
側端子SO0 、SI1 、SO2 、……、SOk-1 とを有
する。一組の端子の数は、RAMの入出カデータ数(デ
ータのビット数)に等しい。また、クロスバスイッチ3
0は、k番目の内部側端子とw番目の外部側端子とを、
w=([i/A]・(1―S)+[j/B]・S+k
(2S−1))mod Kになるように接続するものであ
る。
【0050】信号S=0にセットすることによってi行
の行列要素をアクセスする場合には、w=([i/A]
−k)mod Kとなるように切り替え、信号S=1にセッ
トすることによってj行の行列要素をアクセスする場合
には、w=([j/B]+k)mod Kとなるように切り
替える。ここで、たとえばK=4にすると、クロスバス
イッチ30内のスイッチングエレメントの数は16個で
ある。
【0051】図5(2)に示すように、クロスバスイッ
チ30内のスイッチングエレメントを制御する信号(マ
ルチプレクサ23の出力信号)が「0」ならば、スッチ
ングエレメントをOFFし、「1」ならば、スイッチン
グエレメントをONする。
【0052】信号S=0で、0≦iくBであるときに、
RAM0 、RAM1 、RAM2 、RAM3 の各出力は、
i,j 、Xi,j+3B、Xi,j+2B、Xi,j+B であるので、ス
イッチングエレメント00、31、22、13のみをO
Nし、他のスイッチングエレメントを全てOFFにする
と、内部側端子と外部側端子とは、SI0 とSO0 、S
I3とSI1 、SI2 とSO2 、SI1 とSO3が接続
され、接続切り替え装置SW1の外部入出力端子には、
i,j 、Xi,j+B 、Xi,j+2B、Xi,j+3Bの順で、順序よ
く並ぶ。
【0053】他の場合も、上記と同様にして接続を切り
替えると、行または列の順番が昇順または降順で並べら
れたデータに並列にアクセスできる。
【0054】図6は、本発明の第2の実施例である行列
データの記憶装置S2における記憶方法を示す図であ
る。
【0055】行列データの記憶装置S2では、AとBと
を2のべき乗数にする。このようにAとBとを2のべき
乗数にすると、行列データの記憶装置S1で述べた計算
式を簡単な回路で実行することができる。
【0056】たとえば、B=2r にすると、[j/B]
は、jの上位ビットを下位ビット方向にrビットシフト
した値であり、jmod Bは、jの下位rビットだけを取
り出した値となる。さらに、RAMの数Kもべき乗数2
q にすると、回路構成がより簡単になる。
【0057】行列データの記憶装置S2は、A=B=2
r 、N=M=2q である場合を示したものである。図6
は、r=1、q=3にセットし、したがって、A=B=
2、N=M=8になる場合を例にとって、8×8行列デ
ータを各RAMへ記憶する場合における割り振りを示す
図である。
【0058】図7は、本発明の第2の実施例である行列
データの記憶装置S2を示すブロック図であり、行列デ
ータの記憶装置S2は、行列データの記憶装置1を具体
化したものであり、アドレス制御装置AC2と、K個の
RAM(ランダムアクセス記憶装置)と、接続切り替え
装置SW2とで構成されている。
【0059】図8は、行列データの記憶装置S2におけ
るアドレス制御装置AC2を示す図である。
【0060】アドレス制御装置AC2は、行番号iと列
番号jとを入力し、制御入力信号として、行列選択信号
Sと並列制御信号Pとクロック信号CKとRAM選択信
号Eとを入力し、また、切り替え制御装置SW2のスイ
ッチを制御する信号SWCと各RAMへのアドレスAk
(k=0、1、…、K−1)とチップ選択信号CE
k(k=0、…、K−1)とを出力するものである。
【0061】この場合、iとjとの各2進符号を、上位
qビットiU 、jU と下位rビットiL 、jL とに分け
ることができる。行列要素Xijを記憶するRAMのアド
レスAk は、(q+2r)ビットの符号になる。この値
は、Ak =jmod B+Bi で示されている。Bi は、i
をrビット上位にシフトした値であり、jmod Bは、j
L に等しいので、アドレスAk の上位(q+r)ビット
はiに等しく、下位rビットはjL に等しい。
【0062】S=0を指定することによってi行の行列
要素を並列にアクセスする場合、各メモリに同じアドレ
スAk を与える。S=1を指定することによってj列を
並列に読み出す場合、Ak =jmod B+Bi mod AB+
(([j/B]+k)mod K)・ABに従って、各RA
Mに異なるアドレスを与える。
【0063】ただし、(([j/B]+k)mod K)・
ABの値は、2rビットよりも上位のビットにのみ違い
を生じ、下位2rビットの構成は、中位rビットがiL
と等しく、下位rビットがjL に等しい。これは全ての
RAMに共通である。
【0064】[j/B]はjU に等しいので、(([j
/B]+k)mod K)・ABに対する上位のqビット
は、jU +kの下位qビツト分に等しい。jU +kは、
各RAMに対応してK個のアドレス番号計算装置40
0 、…、40K-1 で計算して出力する。
【0065】また、Xijを記憶するRAMの番号は、R
AM番号計算装置41において(iU −jU )mod K)
で計算され、結果としてiU −jU の下位qビツトに等
しい値が出力される。
【0066】具体的には、P=0、S=0の場合に、マ
ルチプレクサMUX(iL)とMUX(jL)とにおいてiL
とjL とを選択し、各RAMのアドレスの下位2rビッ
トに出力し、マルチプレクサMUX(0 )とMUX(K-
1 )とにおいて、iU を選択し、各RAMのアドレスの
上位qビットに出力する。
【0067】P=0、S=1である場合には、同様に、
マルチプレクサMUX(iL)とMUX(jL)とにおいて、i
L とjL とを選択し、各RAMのアドレスの下位2rビ
ットに出力し、MUX(0 )とMUX(K-1 )とにおい
て、各アドレス番号計算装置41の出力結果jU +kの
下位qビット分を選択し、各RAMのアドレスの上位q
ビツトに出力する。
【0068】P=1である場合には、P=0の場合とほ
ぼ同様であるが、S=0のときにマルチプレクサMUX
(jL)でカウンタ42の出力を選択する点と、S=1であ
る場合に、マルチプレクサMUX(iL)でカウンタ42
の出力を選択する点とがP=0の場合とは異なる。
【0069】カウンタ42は、クロック信号CKと同期
して0からB−1までインクリメントし、その値を出力
するものである。このようにすることによって、クロッ
ク信号CKに同期してiL またはjL を0からB−1ま
で順番にアクセスすることができる。カウンタ42に
は、クロック信号CK以外に、プリセット入力やリセッ
ト信号入力または、UP/DOWN制御入力等を加えて
もよい。
【0070】アドレス制御装置AC2から接続切り替え
制御装置SW2への制御信号としては、RAM番号を指
定するのに必要なiU とjU とSとを出力する。
【0071】図9は、行列データの記憶装置S2におけ
る接続切り替え装置SW2の構成を示す図であり、K=
4である場合の構成を示す図である。
【0072】接続切り替え装置SW2は、制御回路51
と、切り替えスイッチとしてのシャッフル交換回路53
とで構成されている。シャッフル交換回路53は、2入
力2出力の交換スイッチを組み合わせたものである。交
換スイッチは、2入力a、bと2出力c、dとに対し
て、制御信号が「0」ならばaとc、bとdとを接続
し、制御信号が「1」ならばaとd、bとcとを交換す
る。
【0073】M=4である場合、交換スイッチ4個を、
図9のように配置、配線する。q=2ビットになるの
で、iU とjU との各2ビットとSの1ビットとの情報
を用いて、交換スイッチの制御を行う。制御回路51
は、S=0である場合、iU を入力とする論理回路出力
を選択し、S=1である場合、jU を入力とする論理回
路出力を選択するものである。
【0074】シャッフル交換回路53内の交換スイッチ
の制御信号は、S=0である場合、交換スイッチ00
に、iU 最上位ビットi1 を与え、交換スイッチ01と
11とに、iU の最下位ビットi0 を与え、交換スイッ
チ10に、iU の最上位ビットi1 と最下位ビットi0
のEX−OR出力とを与える。
【0075】また、S=1である場合、交換スイッチの
制御信号は、交換スイッチ00に、jU の最上位ビット
1 を与え、交換スイッチ01と11とに、jU の最下
位ビットj0 を与え、交換スイッチ10に、jU の最上
位ビットj1 と最下位ビットj0 のEX−NOR出力と
を与える。
【0076】たとえば、S=0でiU が00である場合
には、RAM0 、ROM1 、ROM2 、ROM3 の各出
力は、Xi,j 、Xi,j+3B、Xi,j+2B、Xi,j+B であるの
で、交換スイッチ00、01、10、11に制御信号と
してそれぞれ0、0、1、0を与えると、SI0 とSO
0 とが接続され、SI3とSI1 が接続され、SI2
SO2 が接続され、SI1 とSO3とが接続され、接続
切り替え装置SW2の出力は、Xi,j 、Xi,j+B 、X
i,j+2B、Xi,j+3Bの順でと順序よく並ぶ。
【0077】他の場合も、上記と同様にして接続を切り
替えると、行または列の順番が昇順または降順に並んだ
データに並列にアクセスできる。
【0078】すなわち、上記各実施例において、複数個
のRAMに記憶された行列データを読み出しまたは書き
込みのためにアクセスする場合、同じ行に属する行列要
素を各RAMから並列に同時に読み出しまたは書き込み
することができ、しかも、同じ列に属する行列要素を並
列に同時に読み出しまたは書き込みすることができる。
また、行方向からも列方向からも並列に行列データにア
クセスできるので、行列演算を高速に実行する装置の行
列データ記憶方式として応用できる。特に、各行、各列
をブロック分割しているので、並列プロセッサを用いて
行列データを処理するシステムにおいて、各並列プロセ
ッサが各々の分担するブロックのデータを並列処理する
ようにした場合に、アドレス選択信号の一部を各RAM
で共通にすることができ、アドレス制御が容易になる。
【0079】なお、行列データの記憶装置S1において
は、LUTを用いているので、制御回路が大きくなる
が、任意の大きさの行列を任意の数のRAMに無駄なく
記憶させる場合に有効である。行列データの記憶装置S
2においては、行列の大きさとRAMの数を2のべき乗
の数に限定することによって、制御回路を簡単にできる
ので、全体の回路量が少なくなる。行列の大きさが2の
べき乗に一致しない場合でも、計算に用いない余分の行
列要素を加えることによって、見かけ上、2のべき乗の
大きさに合わせて動作させることが可能である。
【0080】
【発明の効果】本発明によれば、N×M行列データの読
み出し時間が短く、また、N×M行列データを読み出す
アドレス制御装置が簡素であるという効果を奏する。
【図面の簡単な説明】
【図1】本発明の行列データ記憶装置S0における記憶
方法の説明図であり、K=4である場合を示す図であ
る。
【図2】行列データの記憶装置S0の基本構成を示す図
である。
【図3】本発明の第1の実施例である行列データの記憶
装置S1を示すブロック図である。
【図4】行列データの記憶装置S1におけるアドレス制
御装置AC1を具体的に示す図である。
【図5】行列データの記憶装置S1における接続切り替
え装置SW1を示す回路図である。
【図6】本発明の第2の実施例である行列データの記憶
装置S2における記憶方法を示す図である。
【図7】行列データの記憶装置S2の構成を示す図であ
る。
【図8】行列データの記憶装置S2のアドレス制御装置
AC2を示す図である。
【図9】行列データの記憶装置S2における接続切り替
え装置SW2の構成を示す図である。
【図10】従来の行列データの記憶方式の基本構成を示
す図である。
【符号の説明】
S0、S1、S2…行列データの記憶装置、 AC、AC1、AC2…アドレス制御装置、 SW、SW1、SW2…接続切り替え装置、 RAM0 、RAM1 、RAM2 、RAMk-1 …ランダム
アクセス記憶装置、 11…カウンタ、 12…切り替え制御信号出力装置、 20…制御回路、 21、22…デコーダ、 30…クロスバスイッチ。

Claims (4)

    【特許請求の範囲】
  1. 【請求項1】 N×M要素の行列データを分割し、この
    分割された上記行列データを複数個のランダムアクセス
    記憶装置に記憶する方法において、 上記行列データの行番号と列番号とを上記ランダムアク
    セス記憶装置の数で均等に分割して複数のブロックを作
    り、これら複数のブロックのうちで対角線に平行な方向
    に連なる複数のブロック内の行列要素を上記ランダムア
    クセス記憶装置に記憶させ、上記ランダムアクセス記憶
    装置に記憶されている複数個の行列要素を同時に読み出
    しまたは書き込みすることを特徴とする行列データ記憶
    方法。
  2. 【請求項2】 N×M要素の行列データを記憶する装置
    において、 上記行列データの行番号と列番号とをランダムアクセス
    記憶装置の数で均等に分割して複数のブロックを作り、
    これら複数のブロックのうちで、対角線に平行な方向に
    連なる複数のブロック内の行列要素を記憶する複数個の
    ランダムアクセス記憶装置と;1個または複数個の行列
    要素の行番号と列番号とを入力し、上記各ランダムアク
    セス記憶装置のアドレス信号を出力し、上記各ランダム
    アクセス記憶装置の複数個の行列要素を並列にアクセス
    するアドレス制御装置と;複数個の内部側端子と複数個
    の外部側端子とを具備し、上記内部側端子に上記各ラン
    ダムアクセス記憶装置のデータ入出力線が接続され、上
    記外部側端子を外部入出力端子とし、行番号と列番号と
    に応じて上記内部側端子と上記外部側端子との接続を切
    り替え、行列データを入出力する接続切り替え装置と;
    を有することを特徴とする行列データ記憶装置。
  3. 【請求項3】 請求項2において、 上記行列データの行番号を上記ランダムアクセス記憶装
    置の数で割った数が2のべき乗数であり、また、上記行
    列データの列番号を上記ランダムアクセス記憶装置の数
    で割った数が2のべき乗数であるように、上記複数のブ
    ロックに分割することを特徴とする行列データ記憶装
    置。
  4. 【請求項4】 請求項3において、 上記ランダムアクセス記憶装置の数を2のべき乗数に設
    定されていることを特徴とする行列データ記憶装置。
JP7216646A 1995-08-02 1995-08-02 行列データ記憶方法およびその装置 Pending JPH0950695A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP7216646A JPH0950695A (ja) 1995-08-02 1995-08-02 行列データ記憶方法およびその装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP7216646A JPH0950695A (ja) 1995-08-02 1995-08-02 行列データ記憶方法およびその装置

Publications (1)

Publication Number Publication Date
JPH0950695A true JPH0950695A (ja) 1997-02-18

Family

ID=16691708

Family Applications (1)

Application Number Title Priority Date Filing Date
JP7216646A Pending JPH0950695A (ja) 1995-08-02 1995-08-02 行列データ記憶方法およびその装置

Country Status (1)

Country Link
JP (1) JPH0950695A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108053852A (zh) * 2017-11-03 2018-05-18 华中科技大学 一种基于交叉点阵列的阻变存储器的写入方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108053852A (zh) * 2017-11-03 2018-05-18 华中科技大学 一种基于交叉点阵列的阻变存储器的写入方法
CN108053852B (zh) * 2017-11-03 2020-05-19 华中科技大学 一种基于交叉点阵列的阻变存储器的写入方法

Similar Documents

Publication Publication Date Title
US5410727A (en) Input/output system for a massively parallel, single instruction, multiple data (SIMD) computer providing for the simultaneous transfer of data between a host computer input/output system and all SIMD memory devices
US4973956A (en) Crossbar switch with distributed memory
JPH065513B2 (ja) メモリ・システム
US20030182491A1 (en) Multi-bank, fault-tolerant, high-performance memory addressing system and method
KR910002202B1 (ko) 바운더리-프리 반도체 메모리 장치
US5845123A (en) Digital processor for simulating operation of a parallel processing array
US3906458A (en) Odd-sized memory having a plurality of even-sized storage elements of the same capacity
JPH0950695A (ja) 行列データ記憶方法およびその装置
US6122702A (en) Memory cells matrix for a semiconductor integrated microcontroller
SU1499355A1 (ru) Запоминающее устройство с параллельным произвольным доступом к строкам и окнам данных
SU1345259A1 (ru) Запоминающее устройство с многоформатным доступом к данным
JPS58103063A (ja) マトリクス記憶装置
JPS63217597A (ja) 記憶装置
JPH05113928A (ja) 画像メモリ装置
JPS6014322A (ja) デジタルデ−タコンパレ−タ
JP3937418B2 (ja) 記憶装置および記憶読み出し制御方法
JPH01277946A (ja) ワード長可変記憶装置
JP3429880B2 (ja) メモリ装置およびメモリアクセス方法
JP2570294B2 (ja) 画像読取装置
JPH06275079A (ja) 半導体記憶装置
SU809379A1 (ru) Посто нное запоминающее устрой-CTBO
JPS63201780A (ja) 画像処理装置
JPH0887885A (ja) 半導体記憶回路装置
JPH05210578A (ja) 記憶装置
JPH03233648A (ja) メモリ構成方式