JPH0319988B2 - - Google Patents

Info

Publication number
JPH0319988B2
JPH0319988B2 JP59000073A JP7384A JPH0319988B2 JP H0319988 B2 JPH0319988 B2 JP H0319988B2 JP 59000073 A JP59000073 A JP 59000073A JP 7384 A JP7384 A JP 7384A JP H0319988 B2 JPH0319988 B2 JP H0319988B2
Authority
JP
Japan
Prior art keywords
data
vector
memory
tag
working memory
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.)
Expired - Lifetime
Application number
JP59000073A
Other languages
Japanese (ja)
Other versions
JPS60144873A (en
Inventor
Akira Maeda
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.)
National Institute of Advanced Industrial Science and Technology AIST
Original Assignee
Agency of Industrial Science and Technology
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 Agency of Industrial Science and Technology filed Critical Agency of Industrial Science and Technology
Priority to JP7384A priority Critical patent/JPS60144873A/en
Publication of JPS60144873A publication Critical patent/JPS60144873A/en
Publication of JPH0319988B2 publication Critical patent/JPH0319988B2/ja
Granted legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
    • G06F15/8053Vector processors

Description

【発明の詳細な説明】 〔発明の技術分野〕 本発明は計算機システムにおいて効率の良いベ
クトル演算を可能とするメモリ装置に関する。
DETAILED DESCRIPTION OF THE INVENTION [Technical Field of the Invention] The present invention relates to a memory device that enables efficient vector operations in a computer system.

〔発明の技術的背景とその問題点〕[Technical background of the invention and its problems]

スーパーコンピユータと称される高速計算機で
は、ベクトル演算を高速に、且つ効率良く処理す
る為に種々の工夫がなされている。上記ベクトル
演算は、例えば2つの配列データA,Bの各要素
A(I),B(I)をそれぞれ加算し、 C(I)=A(I)+B(I) なる要素の配列データCを求めるものである。こ
のベクトル演算は上記各ベクトルの各要素毎に同
一の計算を施すことによつて実行され、例えば 指数部の比較 仮数部の桁合せ 仮数部の加算処理 四捨五入処理 正規化処理 等にその演算を分解し、前記各要素毎に順次パイ
プライン的に行われる。第1図はその一例をすも
ので、パイプライン段数が5段の演算を6回に亙
つて実行する様子を示している。この演算方式は
パイプライン方式と称され、上記パイプライン段
数をm、このパイプライン演算の各段における演
算時間(パイプラインピツチ)をτ、データ数を
nとしたとき、その演算に要する時間Tは T=mτ+(n−1)τ =(m−1)τ+nτ となる。この式から明らかなように、データ数n
が多いときには、そのベクトル演算(nτ)の時
間で実行できる。また前記パイプライン段数mを
大きくすると、一般に前記パイプラインピツチτ
が短くなり、その実行時間(nτ)を短縮するこ
とができるので、その総合的な演算性能の向上を
図ることが可能となる。
In high-speed computers called supercomputers, various efforts have been made to process vector operations quickly and efficiently. The above vector operation, for example, adds each element A(I) and B(I) of two array data A and B, respectively, to obtain array data C of elements such that C(I)=A(I)+B(I). It is something to seek. This vector operation is performed by performing the same calculation for each element of each of the above vectors, and the operation is broken down into, for example, comparison of exponent parts, digit alignment of mantissa parts, addition processing of mantissa parts, rounding processing, normalization processing, etc. However, the processing is performed sequentially for each element in a pipeline manner. FIG. 1 shows an example of this, and shows how an operation with five pipeline stages is executed six times. This calculation method is called a pipeline method, and when the number of pipeline stages is m, the calculation time (pipeline pitch) at each stage of this pipeline calculation is τ, and the number of data is n, the time required for the calculation is T. becomes T=mτ+(n-1)τ=(m-1)τ+nτ. As is clear from this formula, the number of data n
When there are many, it can be executed in the time of the vector operation (nτ). Furthermore, when the number m of pipeline stages is increased, the pipeline pitch τ
Since the execution time (nτ) can be shortened, the overall computational performance can be improved.

ところで、この種のパイプライン方式によつて
ベクトル演算を効率良く実行するには、その演算
に供されるデータ(配列データの各要素)を前記
パイプラインピツチτ毎に次々と与えることが必
要である。然し乍ら、回路網解析、電力潮流計算
等で用いられるベクトルは所謂スパースペクトル
(疎ベクトル)であり、そのベクトル要素の殆ん
どが零(0)であると云う性質を有している。即
ち、スパースペクトルの非零要素は、例えば第2
図に示すように高々数パーセントである。この
為、これらのデータを順に読出してパイプライン
演算に供したとしても、実質的にその演算効率の
向上を望むことができなかつた。またこのような
スパースペクトルSA,SBをそのままメモリに格
納して演算に供するには、余りにも多くのメモリ
容量を必要とし、問題があつた。
By the way, in order to efficiently execute vector operations using this type of pipeline method, it is necessary to provide the data (each element of the array data) to be used for the operations one after another at each pipeline pitch τ. be. However, vectors used in circuit network analysis, power flow calculations, etc. are so-called super spectra (sparse vectors), and have the property that most of the vector elements are zero (0). That is, the nonzero elements of the super spectrum are, for example, the second
As shown in the figure, it is at most a few percent. For this reason, even if these data are sequentially read out and subjected to pipeline calculation, it is not possible to substantially improve the calculation efficiency. Furthermore, storing such super spectra SA and SB as they are in memory and using them for calculations requires too much memory capacity, which poses a problem.

そこで従来、第2図に示すスパースペクトル
SA,SBの非零要素のデータ位置に着目し、その
データ位置をインデツクスデータIA,IBとして
表わし、例えば第3図に示すように非零要素のデ
ータSAN,SBNと、そのデータが存在するベク
トル中の位置を示すインデツクスIA,IBとによ
り密ベクトルの形式で表現してベクトル演算に用
いることが考えられている。尚、第3図に示す例
の密ベクトルSAはベクトルSAの3番目の要素の
データが“4”,120番目の素データが“9”……
であることを示している。
Therefore, in the past, the super spectrum shown in Figure 2 was
Focusing on the data positions of non-zero elements of SA and SB, the data positions are expressed as index data IA and IB, and for example, as shown in Figure 3, non-zero element data SAN and SBN and their data exist. It is being considered to express it in a dense vector format using indices IA and IB that indicate the position in the vector and use it for vector calculations. In addition, in the dense vector SA shown in the example shown in Fig. 3, the data of the third element of the vector SA is "4", the 120th raw data is "9"...
It shows that.

第4図はこのような密ベクトルを用いた従来の
ベクトル演算処理の流れを示す図である。この処
理の流れについて簡単に説明すると、上記密ベク
トルの要素を順に指定する2つのパラメータI,
Jを用い、これらのパラメータI,Jに従つて前
記インデツクスデータIA(I),B(J)をデータ
X,Yとして読出す。そしてこれらのデータX,
Yが等しいとき、これらのデータX,Yを得た上
記パラメータI,Jの値から前記ベクトルSA,
SB中データ位置(番地)を求め、その番地LA,
LBに格納されたデータSAN,SBNを読出して
パイプライン演算部に与え、その演算を行わせ
る。しかるのち、前記パラメータI,Jをそれぞ
れインクリメントして、次にデータX,Yが等し
くなるときのデータ抽出処理に移る。また前記比
較においてデータX,Yが異なる場合には、その
大小関係に応じて上記データXまたはデータYを
インクリメントして、そのデータL,Yが等しく
なるものを探し出す処理を行う。以上の処理を繰
返し実行してインデツクスを同じくする非零要素
のデータだけを抽出し、これを順にパイプライン
演算部に与えることにより、そのベクトル演算の
高速化が図られる。尚、このようにして処理を実
行する場合には、前記インデツクスデータが所謂
昇べきの順に並んでいなければならないことは云
うまでもない。
FIG. 4 is a diagram showing the flow of conventional vector calculation processing using such dense vectors. To briefly explain the flow of this process, there are two parameters I, which sequentially specify the elements of the dense vector,
The index data IA (I), B (J) are read out as data X, Y according to these parameters I, J. And these data X,
When Y are equal, the vectors SA,
Find the data position (address) in SB, and set that address LA,
The data SAN and SBN stored in the LB are read out and given to the pipeline calculation unit to perform the calculation. Thereafter, the parameters I and J are each incremented, and the process moves on to data extraction processing when the data X and Y become equal. Furthermore, if the data X and Y are different in the comparison, the data X or the data Y is incremented according to the magnitude relationship, and a process is performed to find the data where the data L and Y are equal. By repeatedly performing the above processing to extract only the data of non-zero elements having the same index, and sequentially supplying this data to the pipeline calculation unit, the speed of the vector calculation can be increased. It goes without saying that when processing is executed in this manner, the index data must be arranged in ascending order.

然し乍ら、このような処理を実行する場合、一
方のベクトルの1つのインデツクスに対して他方
のベクトルの殆んどのインデツクスとの比較照合
を行うことが必要となる。特に、前記各密ベクト
ルのインデツクスがそれぞれ昇べきの順序で並ん
でいない場合には、一方のベクトルの1つのイン
デツクス毎に他方のベクトルの全てのインデツク
スに対してそれぞれ比較照合を行う必要が生じ、
その処理効率が非常に悪い。しかもそのインデツ
クスの比較処理に多くの時間が費やされることに
なるので、前記パイプラインピツチτに同期して
ベクトル演算に供するデータを順に抽出すること
が難しいと云う問題があつた。
However, when performing such processing, it is necessary to compare one index of one vector with most of the indexes of the other vector. In particular, if the indices of the dense vectors are not arranged in ascending order, it becomes necessary to compare each index of one vector with all the indices of the other vector.
Its processing efficiency is very poor. Moreover, since a lot of time is spent on the index comparison process, there is a problem in that it is difficult to sequentially extract data to be used for vector operations in synchronization with the pipeline pitch τ.

そこで本発明者等は、第3図に示す密ベクトル
SAを、一旦スパースペクトル(疎ベクトル)の
形式に変換し、これをメモリに格納してベクトル
演算に用いることを考えた(特願昭58−50499)。
第5図はこのようなベクトル形式の変換を行つて
ベクトル演算を行う処理装置の要部概略構成図で
あり、1はベクトルデータSAN,SBNを格納し
たデータメモリ、2は上記ベクトルSA,SBに対
するインデツクスデータIA,IBを格納したイン
デツクスメモリ、3は上記ベクトルSAから疎ベ
クトルを作成する作業メモリである。4はベクト
ルSAのデータSAN,IAを前記メモリ1,2から
順に読出す為のカウンタであり、レジスタ5,6
には前記メモリ1,2におけるベクトルSAの格
納番地が初期設定されている。しかして前記カウ
ンタ4で示されるデータと前記レジスタ5,6に
初期設定されたデータとが加算器7,8によつて
それぞれ加算され、これらのデータにより前記メ
モリ1,2がアクセスされて前記データSAN,
IAが順に読出される。このとき、インデツクス
データIAは加算器9にて、レジスタ10に初期
設定された疎ベクトルの作業メモリ3における格
納開始番地データWAと加算され、その加算デー
タが前記作業メモリ3の番地指定データとして与
えられ、該番地に前記データメモリ1から読出さ
れたデータSANが書込まれる。これによつて作
業メモリ3には、スパースペクトルAの非零要素
の位置に対応して前記データメモリ1から読出さ
れたデータSANが格納されることになる。この
処理が前記ベクトルSAの全ての要素に対して行
われ、この結果前記作業メモリ3には第2図にす
形式に変換されたベクトルが得られることにな
る。
Therefore, the present inventors developed the dense vector shown in Fig. 3.
We considered converting SA into a sparse spectrum (sparse vector) format, storing it in memory, and using it for vector calculations (Japanese Patent Application No. 58-50499).
Figure 5 is a schematic diagram of the main parts of a processing device that performs vector calculations by converting vector formats, in which 1 is a data memory that stores vector data SAN and SBN, and 2 is a memory that stores vector data SAN and SBN. An index memory 3 stores index data IA and IB, and a working memory 3 creates a sparse vector from the vector SA. 4 is a counter for sequentially reading data SAN and IA of vector SA from memories 1 and 2, and registers 5 and 6
The storage address of the vector SA in the memories 1 and 2 is initially set. Then, the data indicated by the counter 4 and the data initialized in the registers 5 and 6 are added by adders 7 and 8, respectively, and the memories 1 and 2 are accessed by these data to obtain the data. SAN,
IAs are read in order. At this time, the index data IA is added to the storage start address data WA in the work memory 3 of the sparse vector initialized in the register 10 by the adder 9, and the added data is used as the address designation data of the work memory 3. The data SAN read from the data memory 1 is written to the address. As a result, the data SAN read from the data memory 1 corresponding to the position of the non-zero element of the super spectrum A is stored in the working memory 3. This processing is performed on all elements of the vector SA, and as a result, a vector converted into the format shown in FIG. 2 is obtained in the working memory 3.

しかして次に前記データメモリ1およびインデ
ツクスメモリ2からベクトルSBの要素がそれぞ
れ順に読出される。そして上記インデツクスメモ
リ2から出されたインデツクスデータIBに前記
レジスタ10に設定されたデータが加算され、そ
のデータによつて前記作業メモリ3がアクセスさ
れる。この結果、作業メモリ3からは、ベクトル
SBのインデツクスデータIBに等しいインデツク
スに存在するデータが前記ベクトルSBの各デー
タSBNと共に読出されることになる。これによ
つてパイプライン演算部11には、ベクトル演算
に供されるデータSAN,SBNが順に連続して与
えられることになる。尚、この場合、作業メモリ
3から読出されるデータがベクトルSAの非零要
素以外のものを含む場合があり、その“0”デー
タがベクトル演算にとつて無駄な処理となること
もある。然し乍ら、このような多少の無駄があつ
てもベクトル演算に必要なデータSAN,SBNを
非常に簡易に、且つ高速に連続的に得ることがで
きるので前述した第4図に示す処理に比較して遥
かにベクトル演算の処理効率が良なる。
Then, the elements of vector SB are read out from data memory 1 and index memory 2 in sequence. Then, the data set in the register 10 is added to the index data IB taken out from the index memory 2, and the working memory 3 is accessed using the data. As a result, from working memory 3, the vector
Data existing at an index equal to index data IB of SB will be read together with each data SBN of the vector SB. As a result, the data SAN and SBN to be subjected to vector calculation are successively supplied to the pipeline calculation unit 11 in order. In this case, the data read from the working memory 3 may include other than non-zero elements of the vector SA, and the "0" data may be a wasteful process for vector calculations. However, even if there is some waste like this, the data SAN and SBN required for vector calculation can be obtained very easily, rapidly and continuously, so compared to the process shown in Fig. 4 described above, The processing efficiency of vector operations is much improved.

ところで、このようにしてベクトルに対する処
理を行う場合、処理対象とするベクトルが変わる
都度、前記作業メモリ3の全てを零(0)に初期
設定したり、或いは先にデータSANが格納され
たアドレスであつて、現データ処理において新た
なデータSANによつてデータ更新されなかつた
アドレスについてはこれを零(0)にリセツトす
る必要がある。仮にこのリセツト処理が行われな
いと、前記データSBNの読出し時に、そのイン
デツクスデータIBに該当した先のベクトルSAの
データSANが作業メモリ3から読出されること
になり、ベクトル演算に悪影響を及ぼす。従つて
上記リセツト処理を省略することができない。と
ころが、前述したように作業メモリ3はベクトル
SAをスパースペクトルの形式に変換して格納す
るものであるから、そのアドレス数が非常に多
い。この為、これらの全てのアドレスのデータを
それぞれリセツトするには、そのリセツト処理に
多大な時間を必要とすると云う問題があつた。ま
た作業メモリ3の前記データSANが書込まれた
アドレスを検索して、そのアドレスに対してのみ
リセツト処理を行うには、その制御が複雑化する
ことのみならず、上記アドレスの多くの処理時間
が必要となる問題があつた。そこで、このような
問題を解消するべく、2つの作業メモリを並列的
に設け、一方のメモリを用いて前述したベクトル
処理を行つている期間に、他方のメモリをリセツ
ト処理することが考えられている。然し乍ら、こ
のように装置を構成すると前記作業メモリ3とし
て大容量のメモリが必要となり、そのハードウエ
アが大規模化すると云う問題が生じた。
By the way, when processing vectors in this way, each time the vector to be processed changes, it is necessary to initialize all of the working memory 3 to zero (0), or to use the address where the data SAN was previously stored. In some cases, it is necessary to reset addresses whose data has not been updated by new data SAN in the current data processing to zero (0). If this reset processing is not performed, when reading the data SBN, the data SAN of the previous vector SA corresponding to the index data IB will be read from the working memory 3, which will have a negative impact on vector calculations. . Therefore, the above reset process cannot be omitted. However, as mentioned above, working memory 3 is a vector
Since the SA is converted into a super spectrum format and stored, the number of addresses is extremely large. Therefore, there is a problem in that a large amount of time is required to reset the data at all of these addresses. Furthermore, searching for the address in the working memory 3 where the data SAN is written and performing reset processing only on that address not only complicates the control, but also requires a lot of processing time for the address. I have a problem that requires . Therefore, in order to solve this problem, it has been considered to provide two working memories in parallel and reset the other memory while one memory is performing the above-mentioned vector processing. There is. However, configuring the device in this manner requires a large capacity memory as the working memory 3, creating a problem in that the hardware becomes large-scale.

〔発明の目的〕[Purpose of the invention]

本発明はこのような事情を考慮してなされたも
ので、その目的とするところは、パイプライン処
理によるベクトル演算に供されるスパースペクト
ルの要素を簡易に、且つ効率良く連続的に抽出す
ることのできる実用性の高いメモリ装置を提供す
ることにある。
The present invention has been made in consideration of these circumstances, and its purpose is to easily and efficiently continuously extract elements of a super spectrum to be subjected to vector calculation by pipeline processing. The object of the present invention is to provide a highly practical memory device that can perform the following functions.

〔発明の概要〕[Summary of the invention]

本発明は、演算処理に供せられるデータを格納
するメモリに上記データと共にそのデータの種類
を示すタグ情報を一体的に登録し、このメモリか
ら上記データとタグ情報を読みだしたとき、その
タグ情報と読出し指定されたタグ情報とを比較
し、これらのタグ情報が等しいときに前記メモリ
から読出されたデータを出力し、且つ上記2つの
タグ情報が異なるときには前記メモリから読出さ
れたデータに代えて予め特定されたデータを出力
するようにしたものである。
The present invention integrally registers tag information indicating the type of data together with the data in a memory that stores data to be subjected to arithmetic processing, and when the data and tag information are read from this memory, the tag Compare the information with the tag information specified for reading, and when these tag information are equal, output the data read from the memory, and when the two tag information are different, replace it with the data read from the memory. The data specified in advance is output.

具体的には、ベクトルデータ毎に異なるタグ情
報を設定してそのタグ情報と共に上記ベクトルの
データを作業メモリに登録し、この作業メモリか
ら前記データを読出したとき、そのタグ情報が指
定されたものである場合にのみ上記データを出
し、その他の場合には上記データに代えて特定の
データ、例えば零(0)データを出力するように
したものである。
Specifically, different tag information is set for each vector data, the data of the vector is registered together with the tag information in the working memory, and when the data is read from the working memory, the tag information is specified. The above-mentioned data is output only when , and in other cases, specific data, such as zero (0) data, is output instead of the above-mentioned data.

〔発明の効果〕〔Effect of the invention〕

かくして本発明によれば、ベクトルSBのイン
デツクスデータIBに従つて作業メモリから読出
したデータが、目的とするベクトルA(ベクトル
SAをスパースペクトルに変換したベクトル)の
データSAN以外のものであつても、前記タグ情
報の比較処理によつて例えば零(0)データに変
換されて出力されるので、結局ベクトル演算に有
効な前記ベクトルSAのデータSANだけを出力す
ることが可能となる。しかも作業メモリにベクト
ルデータを書込むとき、そのベクトルを識別する
タグ情報を同時書込んでおくだけで上記タグ情報
によつてデータの出力が制御されるので、煩わし
いリセツト処理が一切不要となり、そのデータ処
理効率の大幅な向上を図り得る。即ち、作業メモ
リに書込みベクトルデータ以外の、上記作業メモ
リに既に書込まれているデータを等価的に零
(0)にリセツトすることができ、スパースペク
トルに対する処理を極めて効率良く実行すること
が可能となる。またパイプライン処理に対してデ
ータを効率良く、且つ連続に与えることができ実
用上多大な効果が奏せられる。
Thus, according to the present invention, the data read from the working memory according to the index data IB of the vector SB is the target vector A (vector
Even if it is data other than SAN (a vector obtained by converting SA into a super spectrum), it is converted to, for example, zero (0) data and output by the tag information comparison process, so it is ultimately not effective for vector calculation. It becomes possible to output only the data SAN of the vector SA. Moreover, when writing vector data to the working memory, simply write the tag information that identifies the vector at the same time, and the data output will be controlled by the tag information, eliminating the need for any troublesome reset processing. Data processing efficiency can be significantly improved. That is, it is possible to equivalently reset the data already written in the working memory other than the vector data written in the working memory to zero (0), and it is possible to execute processing on the super spectrum extremely efficiently. becomes. Further, data can be efficiently and continuously provided to pipeline processing, and a great practical effect can be achieved.

〔発明の実施例〕[Embodiments of the invention]

以下、図面を参照して本発明の実施例につき説
明する。
Embodiments of the present invention will be described below with reference to the drawings.

第6図は実施例装置の要部概略構成を示すもの
であり、図中3は前記第5図に示す作業メモリに
相当するものである。この作業メモリ3はインデ
ツクスデータによつてアドレス指定されるもの
で、メモリ領域をデータ部3aとタグ部3bとに
分けている。上記タグ部3bは前記データ部3a
に登録されるベクトルデータSANが属するベク
トルSA毎に設定されるタグ情報を、上記データ
SANに対応して登録するものである。しかして
このタグ情報は、上述したように作業メモリ3に
書込むベクトルに対応してタグレジスタ12設定
され、このタグレジスタ12から作業メモリ3に
与えられる。この作業メモリ3へのデータの書込
みは、前述したようにして行われる。即ち、前記
第3図に示すような密ベクトルSAのデータSAN
をそのインデツクスデータIA従つて作業メモリ
3の該当アドレスにそれぞれ書込むことによつて
行われる。この際、タグレジスタ12に設定され
たタグデータを、上記作業メモリ3のタグ部3b
の前記インデツクスデータIAによつて示される
アドレスにそれぞれ同時に書込む。これによつて
作業メモリ3にはベクトルSAがスパースペクト
ルの形式に展開され、且つその非零要素のデータ
にそれぞれタグデータが付された形式として書込
まれることになる。尚、この作業メモリ3に新た
な別のベクトルのデータを書込むときには、前記
タグデータの値を変更した上で、その書込みが行
われることは云までもない。
FIG. 6 shows a schematic configuration of the main parts of the apparatus according to the embodiment, and numeral 3 in the figure corresponds to the working memory shown in FIG. 5. This working memory 3 is addressed by index data, and the memory area is divided into a data section 3a and a tag section 3b. The tag section 3b is the data section 3a.
The tag information set for each vector SA to which the vector data SAN registered in
It is registered in correspondence with the SAN. As described above, this tag information is set in the tag register 12 corresponding to the vector to be written into the working memory 3, and is given to the working memory 3 from the tag register 12. Writing of data into the working memory 3 is performed as described above. That is, the data SAN of the dense vector SA as shown in FIG.
This is done by writing the index data IA to the corresponding address of the working memory 3, respectively. At this time, the tag data set in the tag register 12 is transferred to the tag section 3b of the working memory 3.
are simultaneously written to the addresses indicated by the index data IA. As a result, the vector SA is developed in the form of a super spectrum in the working memory 3, and is written in a form in which tag data is attached to each non-zero element data. It goes without saying that when data of another new vector is written into the working memory 3, the value of the tag data is changed before the writing is performed.

即ち、例えば第7図に作業メモリ3の構成を示
すように、1つのベクトルに対してタグデータ
“1”を設定して作業メモリ3にデータを書込み、
その処理を終了して前記作業メモリ3に次のベク
トルのデータを書込むとき、前述したようにタグ
データの値が例えば“2”に変更される。そして
ベクトルのインデツクスに従つて作業メモリ3の
該当アドレスに上記タグデータと共にベクトルデ
ータが書込まれる。このとき、そのインデツクス
データによつて指定されるアドレスに、既に先の
ベクトルデータが書込まれていたとしても、今回
新たに書込まれるデータによつてそのアドレスに
既に登録されていたデータが更新されることにな
る。そして、このようにしてデータ更新が行われ
たアドレスを含めて、作業メモリ3の新たなベク
トルのデータが書込まれたアドレスには、今まで
とは全く異なるタグデータ“2”がそれぞれ付さ
れることになる。
That is, for example, as shown in the configuration of the working memory 3 in FIG. 7, tag data "1" is set for one vector and the data is written in the working memory 3.
When the processing is finished and the data of the next vector is written into the working memory 3, the value of the tag data is changed to, for example, "2" as described above. Then, vector data is written along with the tag data to the corresponding address in the working memory 3 according to the vector index. At this time, even if the previous vector data has already been written to the address specified by the index data, the data that has already been registered at that address will be replaced by the newly written data. It will be updated. Then, tag data "2", which is completely different from before, is attached to the addresses in the working memory 3 to which new vector data is written, including the addresses where the data has been updated in this way. That will happen.

しかして、このようにして作業メモリ3に登録
されたベクトルデータを続出す場合には、前記タ
グレジスタ12にそのベクトルを示すタグデータ
をセツトした上で、つまりデータ書込み時に用い
たタグデータを変更することなしに行われる。そ
して、ベクトル演算に供するベクトルSBのイン
デツクスデータIB従つて、作業メモリ3から前
記ベクトルSAのデータSANと共にそのタグデー
タを読出す。このとき、作業メモリ3のタグ部3
Bから読出されたタグデータは比較器13により
前記タグレジスタ12に設定されたタグデータと
比較される。比較器13は上記2つのタグデータ
が等しいとき、ゲート回路14に対してゲート開
成信号を出力してそのゲートを開き、上記タグデ
ータと共に前記作業メモリ3のデータ部3aから
読出されたデータを出力して、これをパイプライ
ン演算部11に与えている。また前記比較器13
は前記2つのタグデータが異なるとき、前記ゲー
ト回路14に対してゲート開成信号を発生し、前
記データ部3aから読出したデータのパイプライ
ン演算部11への出力を阻止している。この結
果、パイプライン演算部11には前記作業メモリ
から読出されたデータに代えて、零(0)データ
が出力されることになる。このようにしてベクト
ルSBのインデツクスデータIBに従つて作業メモ
リ3からベクトルSAの該当データの全てを読出
したのち、次のベクトル演算を行うべく、作業メ
モリ3に次のベクトルのデータ書込みが行われ
る。この場合、そのベクトルが異なることから前
述したように値の異なるタグデータが用いられる
ことは云までもない。
Therefore, when the vector data registered in the working memory 3 in this manner is to be output one after another, the tag data indicating the vector is set in the tag register 12, and in other words, the tag data used when writing the data is changed. done without doing anything. Then, the index data IB of the vector SB to be used in the vector calculation is read out from the working memory 3 together with the data SAN of the vector SA. At this time, the tag part 3 of the working memory 3
The tag data read from B is compared with the tag data set in the tag register 12 by a comparator 13. When the two tag data are equal, the comparator 13 outputs a gate open signal to the gate circuit 14 to open the gate, and outputs the data read from the data section 3a of the working memory 3 together with the tag data. Then, this is given to the pipeline calculation section 11. In addition, the comparator 13
generates a gate open signal to the gate circuit 14 when the two tag data are different, and prevents output of the data read from the data section 3a to the pipeline calculation section 11. As a result, zero (0) data is output to the pipeline calculation unit 11 instead of the data read from the working memory. After all of the corresponding data of the vector SA is read from the working memory 3 in accordance with the index data IB of the vector SB in this way, the data of the next vector is written to the working memory 3 in order to perform the next vector operation. be exposed. In this case, since the vectors are different, it goes without saying that tag data with different values are used as described above.

かくして上記の如く構成された装置によれば、
作業メモリ3から前記インデツクスデータIBに
従つてベクトルSAの要素以外のデータが読出さ
れたとしても、前記タグ情報の比較結果に基くゲ
ート回路14の制御によつて、そのデータ出力が
阻止されるので前記ベクトルSA以外のデータが
出力されることがない。換言すれば、ベクトル
SA以外のデータは自動的に零(0)データに変
換されて出力され、ここにその等価的なリセツト
が行われることになる。従つて、従来問題となつ
ていたリセツト処理が不要となり、その処理効率
の大幅な向上を図ることが可能となる。
According to the device configured as described above,
Even if data other than the elements of the vector SA are read from the working memory 3 according to the index data IB, the data output is prevented by the control of the gate circuit 14 based on the comparison result of the tag information. Therefore, data other than the vector SA is not output. In other words, the vector
Data other than SA is automatically converted to zero (0) data and output, and an equivalent reset is performed here. Therefore, there is no need for reset processing, which has been a problem in the past, and it is possible to significantly improve the processing efficiency.

尚、予め準備されたタグデータの全てを使用し
た場合、そのタグデータを再び用いることが必要
となる。この時、先に使用されたタグデータに対
応するベクトルデータと、再使用されるタグデー
タに対応するベクトルとの識別ができなくなると
云う不具合が発生する。従つて、このような場合
には、前記作業メモリ3を全て零(0)リセツト
することが必要となるが、そのリセツト処理の頻
度は極めて少ない。具体的に前記タグ情報として
8ビツトのデータを用いるものとすると、前記第
5図に示す装置において1つのベクトルを処理す
る都度、作業メモリ3のリセツトを行う場合に比
較して、そのリセツト処理の回数が256分の1に
減少する。従つて上記リセツト処理を含むベクト
ル演算処理を極めて効率良く実行することが可能
となり、その実用的利点が絶大である。またこの
ようにしてベクトルに対するメモリ処理を行つて
も、前述した第5図に示すようにベクトル演算に
供するデータを連続的に出力できることは云うま
でもない。
Note that when all of the tag data prepared in advance is used, it is necessary to use the tag data again. At this time, a problem arises in that vector data corresponding to previously used tag data and vectors corresponding to reused tag data cannot be distinguished. Therefore, in such a case, it is necessary to reset all of the working memory 3 to zero (0), but the frequency of this reset process is extremely low. Specifically, if 8-bit data is used as the tag information, the reset process will be faster than when the working memory 3 is reset each time one vector is processed in the apparatus shown in FIG. The number of times will be reduced to 1/256. Therefore, vector calculation processing including the above-mentioned reset processing can be executed extremely efficiently, and its practical advantages are enormous. It goes without saying that even if memory processing is performed on vectors in this manner, data to be used in vector calculations can be continuously output as shown in FIG. 5 described above.

尚、本発明は上記実施例に限定されるものでは
ない。例えば、上記実施例では作業メモリから読
出されたタグデータが指定されたタグデータと異
なる場合、予め特定されたデータとして零(0)
データを出力するようにしたが、上記予め特定さ
れたデータとしてオール“1”なるデータを出力
するようにしてもよい。つまり、ベクトル演算に
必要な固定的データを予め設定しておき、前記タ
グデータが異なる場合に、これを出力するように
すればよい。このようにしても、パイプライン演
算部から見れば前記作業メモリが等的にリセツト
されたと看做することができる。またこの処理で
用いられるタグ情報のビツト数や、処理対象とす
るベクトルの要素数等は装置の演算仕様に応じて
定めれば良いものである。その他、本明はその要
旨を逸脱しない範囲で種々変形して実施すること
ができることは云うまでもない。
Note that the present invention is not limited to the above embodiments. For example, in the above embodiment, if the tag data read from the working memory is different from the specified tag data, zero (0) is set as the prespecified data.
Although the data is output, all "1" data may be output as the previously specified data. In other words, fixed data necessary for vector calculation may be set in advance, and when the tag data differs, this may be output. Even in this case, from the perspective of the pipeline calculation section, it can be considered that the working memory has been equally reset. Further, the number of bits of tag information used in this process, the number of elements of the vector to be processed, etc. may be determined according to the calculation specifications of the device. It goes without saying that the present invention can be modified and implemented in various ways without departing from the spirit thereof.

【図面の簡単な説明】[Brief explanation of the drawing]

第1図はベクトル演算のパイプライン処理を模
式的に示す図、第2図はスパースペクトルのデー
タ構造を示す図、第3図は構造変換した密ベクト
ルのデータ構造を示す図、第4図は従来のベクト
ルデータ処理の流れを示す図、第5図は先に提唱
したベクトル処理装置の構成図、第6図は本発明
の一実施例に係るメモリ装置の概略構成図、第7
図は同実施例における作業メモリの構造を示す図
である。 3……作業メモリ、3a……データ部、3b…
…タグ部、11……パイプライン演算部、12…
…タグレジスタ、13……比較器、14……ゲー
ト回路。
Figure 1 is a diagram schematically showing pipeline processing of vector operations, Figure 2 is a diagram showing the data structure of a super spectrum, Figure 3 is a diagram showing the data structure of a dense vector whose structure has been transformed, and Figure 4 is a diagram showing the data structure of a dense vector that has been structurally transformed. FIG. 5 is a diagram showing the flow of conventional vector data processing; FIG. 5 is a block diagram of the previously proposed vector processing device; FIG. 6 is a schematic diagram of the memory device according to an embodiment of the present invention;
The figure is a diagram showing the structure of the working memory in the same embodiment. 3... Working memory, 3a... Data section, 3b...
...Tag section, 11...Pipeline operation section, 12...
...Tag register, 13...Comparator, 14...Gate circuit.

Claims (1)

【特許請求の範囲】 1 非零要素からなる演算すべき一方のベクトル
データをそのベクトルを識別するタグ情報と共に
該当アドレスに登録するメモリと、非零要素から
なる演算すべき他方のベクトルデータのアドレス
に従つて上記メモリからデータと共にダク情報を
読出す手段と、上記メモリから読出されたダク情
報と上記演算すべき一方のベクトルのダク情報と
を比較して、これらのダク情報が等しいときに上
記メモリから読出されたデータを出力し、且つ上
記2つのダク情報が異なるときに上記メモリから
読出されたデータに代えて零データを出力して、
演算に供する手段とを具備したことを特徴とする
メモリ装置。 2 上記非零要素からなる演算すべき一方のベク
トルデータ及び他方のベクトルデータは、疎ベク
トルを密ベクトルの形式に変換したものである特
許請求の範囲第1項記載のメモリ装置。 3 上記メモリに異なるベクトルデータが登録さ
れるとき、そのダク情報も変更して登録されるも
のである特許請求の範囲第1項記載のメモリ装
置。
[Scope of Claims] 1. A memory for registering one vector data to be operated on consisting of non-zero elements together with tag information for identifying the vector, and an address for the other vector data to be operated on consisting of non-zero elements. Accordingly, a means for reading the duct information together with the data from the memory, and a means for comparing the duct information read from the memory with the duct information of one of the vectors to be calculated, and when these duct information are equal, the above-mentioned duct information is calculated. outputting data read from the memory, and outputting zero data in place of the data read from the memory when the two pieces of data are different;
What is claimed is: 1. A memory device characterized by comprising means for performing calculations. 2. The memory device according to claim 1, wherein the one vector data and the other vector data to be operated on, which are composed of non-zero elements, are obtained by converting a sparse vector into a dense vector format. 3. The memory device according to claim 1, wherein when different vector data is registered in the memory, its vector information is also changed and registered.
JP7384A 1984-01-05 1984-01-05 Memory device Granted JPS60144873A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP7384A JPS60144873A (en) 1984-01-05 1984-01-05 Memory device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP7384A JPS60144873A (en) 1984-01-05 1984-01-05 Memory device

Publications (2)

Publication Number Publication Date
JPS60144873A JPS60144873A (en) 1985-07-31
JPH0319988B2 true JPH0319988B2 (en) 1991-03-18

Family

ID=11463995

Family Applications (1)

Application Number Title Priority Date Filing Date
JP7384A Granted JPS60144873A (en) 1984-01-05 1984-01-05 Memory device

Country Status (1)

Country Link
JP (1) JPS60144873A (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02277753A (en) * 1989-04-20 1990-11-14 Senju Metal Ind Co Ltd Method and device for solder plating

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS51138346A (en) * 1975-05-26 1976-11-29 Toshiba Corp Buffer memory device
JPS54145441A (en) * 1978-04-03 1979-11-13 Nec Corp Converter
JPS54146932A (en) * 1978-05-10 1979-11-16 Nec Corp Address converter

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS51138346A (en) * 1975-05-26 1976-11-29 Toshiba Corp Buffer memory device
JPS54145441A (en) * 1978-04-03 1979-11-13 Nec Corp Converter
JPS54146932A (en) * 1978-05-10 1979-11-16 Nec Corp Address converter

Also Published As

Publication number Publication date
JPS60144873A (en) 1985-07-31

Similar Documents

Publication Publication Date Title
RU2273044C2 (en) Method and device for parallel conjunction of data with shift to the right
US4578750A (en) Code determination using half-adder based operand comparator
US4792897A (en) Address translation unit for translation of virtual address to real address using translation tables of multi-level hierarchical structure
JPS6097435A (en) Arithmetic processor
US3510847A (en) Address manipulation circuitry for a digital computer
US3825895A (en) Operand comparator
WO2022068328A1 (en) Data migration method and apparatus, and processor and calculation device
JP2013214832A (en) Compression and decompression system, compression device, decompression device, compression and decompression method, and compression program and decompression program
JPH0820951B2 (en) How to speed up your processor
JP2006518060A (en) Method and computer program for single command multiple data management
JPH0786875B2 (en) Vector processor
JPH0319988B2 (en)
RU2066067C1 (en) Central processor for multiple-processor computer system
Greniewski et al. The external language KLIPA for the URAL-2 digital computer
JPH02126321A (en) Decoder for instruction code
JPS5925264B2 (en) Vector instruction processing method
JP2895892B2 (en) Data processing device
JP2624738B2 (en) Rounding method
JPH0155506B2 (en)
JPS61109149A (en) Data processor
JPS59188900A (en) Data processor
Muth et al. A Memory Organization for an Elementary List-Processing Computer
JPH06250711A (en) Programmable controller
JPS63282527A (en) Addressing circuit for information processor
JPH0130168B2 (en)

Legal Events

Date Code Title Description
EXPY Cancellation because of completion of term