JP3157507B2 - Data processing device - Google Patents

Data processing device

Info

Publication number
JP3157507B2
JP3157507B2 JP06530690A JP6530690A JP3157507B2 JP 3157507 B2 JP3157507 B2 JP 3157507B2 JP 06530690 A JP06530690 A JP 06530690A JP 6530690 A JP6530690 A JP 6530690A JP 3157507 B2 JP3157507 B2 JP 3157507B2
Authority
JP
Japan
Prior art keywords
address
banks
bank
bit
entry
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 - Fee Related
Application number
JP06530690A
Other languages
Japanese (ja)
Other versions
JPH03263242A (en
Inventor
昌幸 田中
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.)
NEC Corp
Original Assignee
NEC 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 NEC Corp filed Critical NEC Corp
Priority to JP06530690A priority Critical patent/JP3157507B2/en
Publication of JPH03263242A publication Critical patent/JPH03263242A/en
Application granted granted Critical
Publication of JP3157507B2 publication Critical patent/JP3157507B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Complex Calculations (AREA)

Description

【発明の詳細な説明】 [産業上の利用分野] 本発明は、アレイ形データによる間接アドレッシング
に関し、特に、複数個のメモリバンクより成る主記憶装
置と、ベクトルレジスタと呼ばれるベクトルデータ(ア
レイ形データの一種,スカラー形データを一つの要素と
する複数個の要素の並び)保持用のレジスタを持ち、ベ
クトルレジスタに保持されているベクトルデータの各要
素をアドレスと見なして(リストベクトルと云う)主記
憶装置の各アドレスよりデータを読出すという、一般に
はリストベクトル処理と称される特殊なベクトルアクセ
スが行なわれるデータ処理装置に関する。
Description: BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to indirect addressing using array-type data, and more particularly, to a main storage device composed of a plurality of memory banks and a vector data called a vector register (array-type data). A list of a plurality of elements having one element of scalar data) and a register for holding, and each element of the vector data held in the vector register is regarded as an address (referred to as a list vector). The present invention relates to a data processing device for reading data from each address of a storage device and performing a special vector access generally called a list vector process.

[従来の技術] 従来、この種のデータ処理装置は、各アドレス要素を
アクセスする際、メモリアクセスの順をリストベクトル
の要素の並びの順に行っており、従って処理の過程で何
らかのアクセス続行不可要因が発生すると、その要因が
消滅するまで処理を中断していた。例えば処理の過程で
あるアドレス要素がバンクビジーに遭遇すると、ビジー
が解けるまで待ち合わせを行い、それ以降の要素の並び
の中にアクセス可能なものが在ったとしても、順を追い
越して処理をすることはしていなかった。
2. Description of the Related Art Conventionally, when accessing each address element, this type of data processing apparatus performs memory access in the order of list vector elements. When the error occurred, the processing was suspended until the cause disappeared. For example, when an address element that is in the process of processing encounters a bank busy, it waits until the busy is resolved, and even if there is an accessible element in the array of elements after that, it processes in order. I didn't do anything.

第12図は上述したデータ処理装置の構成概念図、第13
図はその制御の流れ図である。
FIG. 12 is a conceptual diagram of the configuration of the data processing device described above, and FIG.
The figure is a flowchart of the control.

主バッファ12よりアドレス情報を読出し(ステップ3
1)、バンクビジーかどうかバンクビジーチェック部14
で判断する(ステップ32)。バンクビジーであれば、退
避バッファ17が満杯かどうか判断し(ステップ33)、満
杯であればバンクフリー待ちし(ステップ34)、満杯で
なければ退避バッファ17にアドレス情報を退避し(ステ
ップ35)、ステップ32に戻る。ステップ32でバンクビジ
ーでなければ、リクエスト生成部15でリクエストを生成
し、記憶装置16に送出する(ステップ36)。次に、主バ
ッファ12が空かどうかを判断し(ステップ37)、空でな
ければステップ31に戻り、空であれば退避バッファ17が
空かどうか判断し(ステップ38)、空であれば処理を終
了する。空でなければ、退避バッファ17よりアドレス情
報を読出し(ステップ39)、バンクビジーかチェックし
(ステップ40)、ビジーであればバンクフリー待ちし
(ステップ41)、バンクビジーでなければリクエストを
送出し(ステップ42)、再び退避バッファ17が空かどう
か判定し(ステップ43)、空でなければステップ40に戻
り、空であれば処理を終了する。
Read address information from main buffer 12 (step 3
1) Bank busy check section 14
(Step 32). If the bank is busy, it is determined whether or not the save buffer 17 is full (step 33). If it is full, the bank free waits (step 34). If not, the address information is saved in the save buffer 17 (step 35). , And return to step 32. If the bank is not busy in step 32, the request generator 15 generates a request and sends it to the storage device 16 (step 36). Next, it is determined whether or not the main buffer 12 is empty (step 37). If it is not empty, the process returns to step 31. If it is empty, it is determined whether or not the evacuation buffer 17 is empty (step 38). To end. If it is not empty, the address information is read from the save buffer 17 (step 39), and it is checked whether the bank is busy (step 40). If it is busy, it waits for a bank free (step 41). (Step 42), it is again determined whether or not the save buffer 17 is empty (Step 43). If it is not empty, the process returns to Step 40, and if it is empty, the process is terminated.

[発明が解決しようとする課題] 上述した従来のメモリアクセス制御方式は、処理の過
程であるアドレス要素がバンクビジーに遭遇すると、ビ
ジーが解けるまで待ち合わせを行い、それ以降の要素の
並びの中にアクセス可能なものがあったとしても、順を
追い越して処理をすることはしていないため、そのまま
の状態でスループットを高めようとして、アクセス処理
サイクルを短縮する等して単位時間当たりのアクセス量
を増加させて行っても、しだいにバンクビジーに遭遇す
る確率が上昇し、スループットが十分高まらないうちに
スループットの上限が押さえられてしまうという欠点が
ある。また、追い越して処理を行えば、バンクビジーの
影響が軽減されスループットが向上することは容易に推
測されてはいたが、単に追い越すといってもその制御は
通常の手段(例えば追い越し用のバッファ数エントリ分
用意し、アクセス不可のアドレスを退避させておいて次
の要素のアドレスの処理に移行し、後でその退避したア
ドレスのアクセスを行う等…第12図,第13図参照)では
一般に非常に複雑、かつ困難とされ、ハードウエア,制
御論理の複雑さ等の増加量に見合った効果を得ることは
疑問視されて来た。
[Problem to be Solved by the Invention] In the conventional memory access control method described above, when an address element which is in the process of processing encounters a bank busy, the process waits until the busy is resolved, and the subsequent elements are arranged in a row. Even if there is something that can be accessed, since the processing is not overtaken, the amount of access per unit time is reduced by shortening the access processing cycle, etc. Even if it is increased, the probability of encountering a bank busy gradually increases, and there is a disadvantage that the upper limit of the throughput is suppressed before the throughput is sufficiently increased. In addition, it has been easily estimated that if the overtaking process is performed, the influence of the bank busy is reduced and the throughput is improved. However, if the overtaking process is simply performed, the control is performed by a normal means (for example, the number of overtaking buffers). The entries are prepared, the inaccessible addresses are saved, the process proceeds to the address processing of the next element, and the saved addresses are accessed later (see FIGS. 12 and 13). It has been questioned to obtain an effect commensurate with the increase in the complexity of hardware and control logic.

本発明の目的は、バンクビジーの頻発する環境下にお
いてもバンクビジーによる影響が最小限に抑えられ、結
果として高いリストベクトル処理のスループットを確保
できるデータ処理異装置を提供することである。
SUMMARY OF THE INVENTION It is an object of the present invention to provide a data processing apparatus capable of minimizing the influence of bank busy even in an environment where bank busy frequently occurs, and thereby ensuring a high throughput of list vector processing.

[課題を解決するための手段] 本発明のデータ処理装置は、複数のバンクを有する記
憶手段と、それぞれが複数のアドレス格納部を有する複
数のエントリを有し、前記複数のバンクに対する複数の
メモリアクセス要求のアクセス先アドレスを各前記エン
トリの前記複数のアドレス格納部に保持するためのアド
レス情報保持手段と、このアドレス情報保持手段から前
記複数のエントリのうちの先頭のエントリの複数の前記
アドレス格納部に保持されている複数のアクセス先アド
レスを読み出し、読み出された各アクセス先アドレスに
より指定される各前記バンクがアクセス可能な状態にあ
るか否かを同時に検査する検査手段と、この検査手段の
検査に基づき、当該エントリの複数のアクセス先アドレ
スに係る複数のメモリアクセス要求の中から、前記複数
のバンクに送出可能な少なくとも1つの前記メモリアク
セス要求を選択し該当する該複数のバンクに送出すると
ともに、該複数のバンクへ送出不可能な少なくとも1つ
の前記メモリアクセス要求を選択し該当する該複数のバ
ンクへの送出を抑止し当該送出不可能な少なくとも1つ
のメモリアクセス要求のアクセス先アドレスを前記アド
レス情報保持手段の最後尾のエントリに保持させるよう
制御する制御手段とを含む。
[Means for Solving the Problems] A data processing apparatus according to the present invention includes a storage unit having a plurality of banks, a plurality of entries each having a plurality of address storage units, and a plurality of memories for the plurality of banks. Address information holding means for holding an access destination address of an access request in the plurality of address storage units of each of the entries, and storing the plurality of addresses of a head entry of the plurality of entries from the address information holding means Checking means for reading a plurality of access destination addresses held in the section and simultaneously checking whether or not each of the banks specified by the read access destination addresses is in an accessible state; and Out of a plurality of memory access requests related to a plurality of access Selecting at least one of the memory access requests that can be transmitted to the plurality of banks and transmitting the selected memory access request to the plurality of banks, and selecting at least one of the memory access requests that cannot be transmitted to the plurality of banks; And control means for controlling the transmission to the plurality of banks to be performed and storing the access destination address of at least one memory access request which cannot be transmitted in the last entry of the address information storage means.

[作用] 第10図は本発明のデータ処理装置の概略構成図、第11
図はその制御の流れ図である。
[Operation] FIG. 10 is a schematic configuration diagram of a data processing device of the present invention, and FIG.
The figure is a flowchart of the control.

本発明は、リストベクトルの各アドレス要素をアクセ
スする際、各要素のアドレス情報をバッファ12に保持し
た状態で、順次取り出し(ステップ21)、アドレス情報
に対応するバンクがアクセス可能状態か否かをバンクビ
ジー部14で検査し(ステップ22)、アクセス可能である
ならばリクエスト生成部15でリクエストを生成し、主記
憶装置16に送出し(ステップ24)、直ちにアクセスを行
い、アクセス可能でないならば、セレクタ11を通してそ
のアドレスをバッファ12に再書込みし(ステップ23)、
そのアクセスを後回しにして次の要素のアドレスの処理
に移行するという動作をバッファ12が空になるまで繰り
返す(ステップ25)ものである。
According to the present invention, when each address element of the list vector is accessed, the address information of each element is held in the buffer 12 and sequentially retrieved (step 21), and it is determined whether or not the bank corresponding to the address information is accessible. Inspection is performed by the bank busy section 14 (step 22). If the access is possible, the request generation section 15 generates a request and sends it to the main storage device 16 (step 24). , The address is rewritten to the buffer 12 through the selector 11 (step 23),
The operation of delaying the access and shifting to the processing of the address of the next element is repeated until the buffer 12 becomes empty (step 25).

これにより、バッファの再利用を図り、追い越し処理
時のアドレス退避用のバッファを不要とし、かつ、条件
分岐の殆ど無い制御シーケンスで、バンクビジーの頻発
する環境下においてもバンクビジーによる影響が最小限
に抑えられ、結果として高いリストベクトル処理のスル
ープットを確保することが可能となる。
This makes it possible to reuse the buffer, eliminate the need for a buffer for saving addresses during overtaking processing, and minimize the effects of bank busy even in an environment where bank busy occurs frequently in a control sequence with few conditional branches. As a result, it is possible to secure a high throughput of list vector processing.

[実施例] 次に、本発明の実施例について図面を参照して説明す
る。
Example Next, an example of the present invention will be described with reference to the drawings.

第1図は本発明の一実施例データ処理装置の構成図、
第2図は第1図のリストアドレス・バッファ120の、V
ビット部1ビット巾分を構成することができるVビット
・バッファを示す図、第3図は第2図のVビット・バッ
ファで、Vビットを記憶するのに使用されているフリッ
プ・フロップ1ビット分の制御信号を示す図、第4図は
リストアドレス・バッファ120のVビット部を第2図の
Vビット・バッファを用いて構成した図、第5図は第1
図の実行制御部900を詳細に示す図、第6図は、第1図
のリクエスト生成部140を詳細に示す図、第7図は、第
1図のライトアドレス・カウンタ930を詳細に示す図、
第8図は、第1図の書き戻し制御部910の論理構成を詳
細に示す図、第9図は本実施例の動作を示すタイムチャ
ートである。
FIG. 1 is a configuration diagram of a data processing apparatus according to one embodiment of the present invention,
FIG. 2 shows the V of the list address buffer 120 of FIG.
FIG. 3 is a view showing a V-bit buffer capable of forming one bit width of a bit portion, and FIG. 3 is a V-bit buffer shown in FIG. 2, which is a flip-flop 1 bit used for storing V bits. FIG. 4 is a diagram showing a control signal for the V. minute portion, FIG. 4 is a diagram showing the V bit portion of the list address buffer 120 constructed using the V bit buffer of FIG. 2, and FIG.
FIG. 6 shows the execution control unit 900 in detail, FIG. 6 shows the request generation unit 140 in FIG. 1 in detail, and FIG. 7 shows the write address counter 930 in FIG. 1 in detail. ,
FIG. 8 is a diagram showing in detail the logical configuration of the write-back control unit 910 of FIG. 1, and FIG. 9 is a time chart showing the operation of the present embodiment.

本装置においては、同時に最大4個までのアドレス要
素の処理が可能であり、しかも、A,B,Cの各ステージを
持つパイプライン処理を行っている。ただし、特許請求
範囲中の、アドレス情報保持手段に相当するバッファに
保持されるアドレス要素は生のアドレスそのものであ
り、従って、特許請求範囲におけるアドレス生成手段は
単なるレジスタで構成されている。また、本装置は全体
に渡り、全ての記憶要素(フリップ・フロップ,メモリ
等)が唯一つのクロックに同期して更新される、いわゆ
る単相の順序回路により構成されている。まず各部の説
明をする。主記憶装置110は、同時に1個のメモリリク
エストを受け付けることが可能な#0〜#7の8個のメ
モリポート800〜807と、内部に#0〜#15の16個のバン
ク810〜825を持っており、バンクサイクルタイム(ある
バンクが一旦アクセスされてから、次に同一のバンクが
アクセス可能となるまでの時間)は、4Tで、#xのメモ
リポートはmod8がx(8で除した剰余がx)であるアド
レスのデータ転送を受け持ち、#xのバンクはmod16が
x(16で除した剰余がx)のアドレスが割り当てられて
いるものとする。リストアドレス・バッファ120はアド
レス要素部とVビット部から構成されており、アドレス
要素部は#0〜#3のアドレス要素4個分の記憶ワード
(以後、アドレス要素ワードと呼ぶ)16エントリ、Vビ
ット部はそのアドレス要素ワード内のアドレス要素#そ
れぞれに対応した有効ビット(以下、Vビットと呼ぶ)
4ビットV0〜V3を含むワード(以後、Vビット・ワード
と呼ぶ)16エントリよりなり、両方ともリードおよびラ
イトの同時動作が可能で、アドレスはリード,ライト共
両方に共通である。また、アドレス要素部は各アドレス
要素個別にストローブ可能で、アドレス要素ワード内で
あればアドレス要素単位で部分書込み可能であり、Vビ
ット部は、一旦リードされるとそのアドレスの4ビット
は全てリセットされ、ライトに関しては4ビット個別に
セット指定可能であるものとする。なお、アドレス要素
部はレジスタ・ファイル、Vビット部は通常のランダム
・ロジック等により容易に構成可能である。リードアド
レス・カウンタ830は、リストアドレス・バッファ120に
対し読出しアドレスを指定し、値0〜15を巡回的にカウ
ントするように機能するが、メモリポート競合(後述)
時にはアドレス要素ワード内の各アドレス要素を複数回
に分けて処理するので、これを待ち合わせるためにホー
ルド状態となる。ライトアドレス・カウンタ930は、リ
ストアドレス・バッファ120に対し書込みアドレスの指
定し、値0〜15を巡回的にカウントする様に機能する
が、カウントアップのタイミングは線631からのメモリ
リクエストの不許可履歴信号(後述)と、線551からの
アドレス要素ワード内処理終了信号(後述)により指示
を受ける。レジスタ840はリストアドレス・バッファ120
のアドレス要素部より読出されたアドレス要素をAステ
ージで保持するレジスタであり、メモリポート競合(後
述)時には保持しているアドレス要素を複数回に分けて
処理するためにホールド状態となる。レジスタ850,860
はレジスタ840にて保持されているAステージのアドレ
ス要素をそれぞれ線841および線851を介してB,Cスデー
ジにて順次受けるレジスタである。セレクタ920は、リ
ストベクトル処理開始前に、初期アドレス要素データを
リストアドレス・バッファ120のアドレス要素部にロー
ドするためのパス921と、リストベクトル処理開始後、
リストアドレス・バッファ120のアドレス要素部より読
出されたアドレス要素をレジスタ840,850を経て再びリ
ストアドレス・バッファ120のアドレス要素部に保持し
直させるためのパス851のどちらかを選択し、リストア
ドレス・バッファ120のライトデータ入力線へ接続する
セレクタである。セレクタ・アレイ870はレジスタ860に
保持されている#0〜#3の4個のアドレス要素の内の
何れか1個を選択できる、それぞれ独立動作可能な8個
の4ウェイのセレクタを内部に有する。バンクビジー・
チェック部130は、過去にアクセスされたバンクアドレ
スを登録してバンクサイクルタイム分の期間保持し、ア
ドレス要素を線121より、Vビットを線122より受け、ア
クセスしようとしている(Vビットが‘1'のアドレス要
素の)アドレスのバンクがビジーであるか否かをチェッ
クするもので、同時に最大4個までのアドレスについて
バンクビジーか否かのチェックが可能で、かつ同時に最
大4個までのバンクアドレスの登録が可能である。バン
クフリー・インジケータ880はバンクビジー・チェック
部130のチェック結果をBステージで保持するもので、
4ビットのレジスタにより構成され、各ビットはアドレ
ス要素ワード内の4個のアドレス要素に対応している。
リクエスト生成部140は、バンクフリー・インジケータ8
80からのバンクビジー・チェック結果と、実行制御部90
0(後述)からの処理対象アドレス要素情報と、レジス
タ850からの各アドレス要素のポートアドレス情報を受
け、各メモリポート800〜807対応のメモリリクエストを
生成する。リクエストレジスタ890は、リクエスト生成
部140で生成されたメモリリクエストを線621を介して受
け、メモリポート800〜807に対し、それぞれビットRQ0
〜RQ7によりCステージのメモリリクエストを保持す
る。書き戻し制御部910は、リクエスト生成部140からの
メモリリクエスト抑止情報と、実行制御部900(後述)
からの処理対象アドレス要素情報を受け、メモリリクエ
ストの抑止されたアドレス要素をリストアドレス・バッ
ファ120のアドレス要素部へ書き戻すべく、アドレス要
素部のストローブとVビット部のセット信号を制御す
る。実行制御部900はリストアドレス・バッファ120のア
ドレス要素部よりも各アドレス要素のメモリポート・ア
ドレスを、Vビット部よりVビットを受け、メモリポー
トの競合を加味し、処理対象アドレス要素を選定し、リ
クエスト生成部140と書き戻し制御部910に通知し、ま
た、アドレス要素ワード内のアドレス要素全ての処理
(メモリリクエストもしくは書き戻し)が終了するタイ
ミングをA,B両ステージにて検出し、前者はリードアド
レス・カウンタ830,レジスタ840にホールド指示,後者
はライトアドレス・カウンタ930にカウントアップタイ
ミングとして通知する。以上が各部の概略説明である
が、以下の動作説明の都合上、さらに必要に応じ詳細に
説明する。リストアドレス・バッファ120のVビット部
は、その16エントリ×1ビット分を分担するVビット・
バッファ4個で構成されている。Vビット・バッファ
は、第2図に示すように、内部に16個のフリップフロッ
プ210〜225と、デコーダ230,240(230はイネーブル入力
付き)と、16ウエイのセレクタ250を有している。フリ
ップフロップ210〜225は第3図の制御信号を持つ形式の
ものであり、リード動作については線201よりリードア
ドレスを受け、デコーダ240によりデコードし、セレク
タ250を制御してそのアドレスに割り当てられたフリッ
プフロップの出力を選択すると同時に、そのフリップフ
ロップをリセットするように動作し、ライト動作につい
ては線202よりライトアドレスを、線203よりセット指示
信号を受け、デコーダ230によりライトアドレスをデコ
ードし、セット指示信号が有効となった時点でデコーダ
230にデコード結果を出力し、そのアドレスに割り当て
られたフリップフロップをセットする様に動作するもの
である。リストアドレス・バッファ120のVビット部は
上記のVビット・バッファ4個を第4図のように接続し
て構成されている。なお、リード動作とライト動作の同
時動作が可能である。実行制御部900は、第5図に示す
ように、Aステージのアドレス要素ワード(レジスタ84
0に保持されている)内の未処理アドレス要素を示し、
4ビットのVビットVA0〜VA3(アドレス要素#0〜#3
に対応する)より成るAステージのVビットレジスタで
あるVAR510と、Aステージのアドレス要素間において、
同一メモリポートからメモリアクセスを行うアドレス要
素に対し優先制御(アドレス要素#の若い順に処理す
る)をし、次に処理するアドレス要素を決定して線521
に出力する優先ロジック520と、その出力をBステージ
でそのまま受けるVPBR540と、アドレス要素ワード内処
理の終了を検出し、線531に出力する比較器530と、その
検出情報をBステージで保持する1ビットのフリップフ
ロップよりなるエンド・インジケータ550を内部に有し
ている。ここで、優先ロジック520の出力はアドレス要
素ワード内で次に処理するアドレス要素を示す、4ビッ
トのVビットVPA0〜VPA3(アドレス要素#0〜#3に対
応する)であり、VPBR540はそれを内部の4VビットVPB0
〜VPB3に受けるBステージのVビットレジスタである。
表1〜表4は優先ロジック520の論理機能を示してい
る。同一アドレス要素ワード内では、メモリポートが競
合した場合は最若番のアドレス要素が優先されるように
構成されている。表1〜表4はそれぞれのアドレス要素
(#0〜3)につき、自分より若番のアドレス要素が自
分と同一のメモリポートを持っているかどうか調べ、持
っていないときに線521の対応ビットを真とすることを
示している。
This apparatus can process up to four address elements at the same time, and performs pipeline processing having A, B, and C stages. However, the address element held in the buffer corresponding to the address information holding means in the claims is the raw address itself, and therefore, the address generation means in the claims is constituted by a simple register. Further, the present apparatus is constituted by a so-called single-phase sequential circuit in which all storage elements (flip-flops, memories, etc.) are updated in synchronization with a single clock. First, each part will be described. The main storage device 110 includes eight memory ports 800 to 807 # 0 to # 7 that can simultaneously receive one memory request, and 16 banks 810 to 825 # 0 to # 15 inside. The bank cycle time (the time from when a certain bank is accessed once until the same bank becomes accessible) is 4T, and the memory port of #x is mod8 x (divided by 8) It is assumed that data transfer of an address having a remainder of x) is performed, and the bank of #x is assigned an address of mod16 x (the remainder divided by 16 is x). The list address buffer 120 includes an address element part and a V bit part. The address element part has 16 entries of storage words (hereinafter, referred to as address element words) for four address elements # 0 to # 3, and V address. The bit portion is a valid bit (hereinafter, referred to as a V bit) corresponding to each address element # in the address element word.
The word (hereinafter, referred to as a V bit word) including 4 bits V0 to V3 consists of 16 entries, both of which can perform simultaneous read and write operations, and the address is common to both read and write. The address element section can be strobed individually for each address element, and can be partially written in address element units within the address element word. Once read, the V bit section resets all four bits of the address. It is assumed that write can be set and specified individually for each 4 bits. The address element portion can be easily formed by a register file, and the V bit portion can be easily formed by ordinary random logic or the like. The read address counter 830 functions to specify a read address to the list address buffer 120 and to count the values 0 to 15 cyclically.
Since each address element in the address element word is sometimes processed a plurality of times, it is put into a hold state to wait for this. The write address counter 930 functions to specify a write address to the list address buffer 120 and to count the values 0 to 15 cyclically, but the count-up timing is such that the memory request from the line 631 is not permitted. It is instructed by a history signal (described later) and an end-of-address-element-word processing end signal (described later) from the line 551. Register 840 is the list address buffer 120
This is a register for holding the address element read from the address element portion of A in the A stage, and is in a hold state in order to process the held address element in a plurality of times in the event of a memory port conflict (described later). Register 850,860
Is a register for sequentially receiving the address elements of the A stage held in the register 840 in the B and C stages via the lines 841 and 851 respectively. The selector 920 includes a path 921 for loading the initial address element data into the address element part of the list address buffer 120 before the start of the list vector processing, and a path 921 for starting the list vector processing.
A path 851 for re-holding the address element read from the address element part of the list address buffer 120 to the address element part of the list address buffer 120 again via the registers 840 and 850 is selected, and the list address buffer is selected. A selector connected to 120 write data input lines. The selector array 870 has eight independently operable 4-way selectors which can select any one of the four address elements # 0 to # 3 held in the register 860. . Bank Busy
The check unit 130 registers a bank address accessed in the past, holds the bank address for a bank cycle time, receives an address element from the line 121 and a V bit from the line 122, and attempts to access (the V bit is '1'). Checks whether the bank of the address (of the address element ') is busy. It is possible to check whether the bank is busy for up to four addresses at the same time, and up to four bank addresses at the same time. Can be registered. The bank free indicator 880 holds the check result of the bank busy check unit 130 at the B stage.
It consists of a 4-bit register, each bit corresponding to four address elements in the address element word.
The request generation unit 140 outputs the bank free indicator 8
Bank busy check result from 80 and execution control unit 90
It receives the processing target address element information from 0 (described later) and the port address information of each address element from the register 850, and generates a memory request corresponding to each of the memory ports 800 to 807. The request register 890 receives the memory request generated by the request generation unit 140 via a line 621, and sends a bit RQ0 to each of the memory ports 800 to 807.
RQ7 holds the memory request of the C stage. The write-back control unit 910 includes the memory request suppression information from the request generation unit 140 and the execution control unit 900 (described later).
, And controls the strobe of the address element part and the set signal of the V bit part so that the address element in which the memory request is suppressed is written back to the address element part of the list address buffer 120. The execution control unit 900 receives the memory port address of each address element from the address element part of the list address buffer 120 and the V bit from the V bit part, and selects a processing target address element in consideration of memory port contention. The request generation unit 140 and the write-back control unit 910 are notified, and the timing at which the processing (memory request or write-back) of all the address elements in the address element word ends is detected in both the A and B stages. Indicates a hold instruction to the read address counter 830 and the register 840, and the latter notifies the write address counter 930 as count-up timing. The above is a brief description of each part, but for convenience of the following operation description, further detailed description will be given as necessary. The V bit portion of the list address buffer 120 has a V bit
It is composed of four buffers. As shown in FIG. 2, the V-bit buffer has 16 flip-flops 210 to 225 therein, decoders 230 and 240 (230 has an enable input), and a 16-way selector 250. The flip-flops 210 to 225 are of the type having the control signal shown in FIG. 3. For the read operation, the read address is received from the line 201, decoded by the decoder 240, and controlled by the selector 250 to be assigned to the address. At the same time as selecting the output of the flip-flop, it operates to reset the flip-flop. For the write operation, the write address is received from the line 202, the set instruction signal is received from the line 203, the write address is decoded by the decoder 230, and the set address is decoded. Decoder when the indication signal becomes valid
It operates to output the decoding result to 230 and set the flip-flop assigned to that address. The V bit portion of the list address buffer 120 is constructed by connecting the four V bit buffers described above as shown in FIG. Note that a read operation and a write operation can be performed simultaneously. The execution control unit 900, as shown in FIG.
(Held at 0)
4-bit V bits VA0 to VA3 (address elements # 0 to # 3)
VAR510, which is a V-bit register of the A stage consisting of
Priority control (processing is performed in ascending order of address element #) for address elements that perform memory access from the same memory port, and the next address element to be processed is determined.
, A VPBR 540 that receives the output as it is at the B stage, a comparator 530 that detects the end of the processing within the address element word and outputs it to a line 531, and holds the detection information at the B stage 1 An end indicator 550 comprising a bit flip-flop is internally provided. Here, the output of the priority logic 520 is a 4-bit V bit VPA0 to VPA3 (corresponding to address elements # 0 to # 3) indicating the address element to be processed next in the address element word, and the VPBR 540 outputs it. Internal 4V bit VPB0
VPB3 is a V-bit register of the B stage.
Tables 1 to 4 show the logical functions of the priority logic 520. In the same address element word, when memory ports conflict, the lowest address element is given priority. Tables 1 to 4 check whether each address element (# 0 to 3) has the same memory port as its own address element. If it does not, the corresponding bit of the line 521 is determined. Indicates that it is true.

比較器530は、優先ロジック520が出力している次に処
理するアドレス要素と、VAR510に保持されている未処理
アドレス要素が一致したことを検出することによりアド
レス要素ワード内処理の終了を検出して線531に出力す
るが、VAR510はこれを受けて次のアドレス要素ワードの
Vビットをリストアドレス・バッファ120のVビットよ
り取り込むように動作する。一方、比較器530で終了が
検出されないケースは、Aステージのアドレス要素ワー
ド中に処理して、なお未処理のアドレス要素が残ること
を意味し、その場合、VAR510中の次に処理するアドレス
要素に対応したVビットを、線521上に優先ロジック520
の出力を用いて個別にリセットする。リクエスト生成部
140は第6図に示すように、メモリリクエスト許可ロジ
ック610とメモリリクエスト生成ロジック620とリクエス
ト・サプレス履歴インジケータ630を内部に有してい
る。メモリリクエスト許可ロジック610はバンクチェッ
ク結果を線601より、VPBR540の出力(今から処理しよう
としているアドレス要素ワード中のアドレス要素を示す
Vビット)を線602より受け、全ての処理対象アドレス
要素についてバンクフリーか否かを検出し、もし全部が
バンクフリーならば線611を真(線612を偽)とし、線61
3〜616の処理対象アドレス要素位置(アドレス要素#0
〜#3の順に対応)を真とする様動作し、もし1個でも
バンクフリーでない(即ち、バンクビジー)アドレス要
素が有れば、線611を偽(線612を真)とし、線613〜616
を全て偽とする様動作する。つまり線611上の信号は代
表メモリリクエスト許可信号であり、線613〜616上の信
号はアドレス要素単位のメモリリクエスト許可信号とい
うことになる。メモリリクエスト生成ロジック260は、
線603より今から処理しようとしている各要素アドレス
(#0〜#3)の下位3ビット(メモリポート・アドレ
ス)を受け、それぞれをイネーブル入力付きデコーダ64
0〜670にてデコードし、それらの4組のデコード結果各
8ビット間で対応する4ビット同士で論理和をとり、線
621を介してそれぞれ各メモリポートへメモリリクエス
トとして送出するが、各デコーダ共メモリリクエスト許
可ロジック610から、アドレス要素単位のメモリリクエ
スト許可信号を線613〜616よりそれぞれのイネーブル入
力に受けており、許可されたアドレス要素のメモリリク
エストのみ真となるものである。最終的には各メモリポ
ートへのリクエストは4つのデコーダの対応出力の論理
和をとったものとして出力しているが、メモリポートが
競合した時は老番のアドレス要素のデコーダのイネーブ
ルが偽となり、論理和入力は高々1個のみ真とならな
い。リクエスト・サプレス履歴インジケータ630は線612
上の信号が真という条件でセット、線604上の信号が真
という条件でリセット(リセット優先)されるが、線60
4にはエンド・インジケータ550の出力が入力される。つ
まりリクエスト・サプレス履歴インジケータ550は、一
旦メモリリクエストの送出が不許可(書き戻しが発生)
にされた時点で点灯し、アドレス要素ワード内のアドレ
ス要素全ての処理が終了した時点で消灯するものであ
る。線631は線612上の信号とリクエスト・サプレス履歴
インジケータ550の出力の論理和をとった信号が出力さ
れているが、これは現在処理中のアドレス要素・ワード
内でメモリリクエストの不許可の履歴の有無を示す信号
である。ライトアドレス・カウンタ930は、第7図に示
すように、線703によりストローブ可能なカウンタであ
るが、ストローブのタイミングは線701上のリクエスト
・サプレス履歴インジケータ630の点灯時(書き戻し発
生)、線702上のエンド・インジケータ550が点灯したタ
イミングでカウントアップされる(リクエスト・サプレ
ス履歴インジケータ630はこの時点で消灯する)。書き
戻し制御部910は第8図に示すように単純なロジックで
構成され、リストアドレス・バッファ120のアドレス要
素対応のストロープ(アドレス要素部,Vビット部共通)
を生成するが、線801よりVPBR540の出力(Bステージの
処理対象アドレス要素のVビット)を受け、線802から
のメモリリクエスト不許可報告(書き戻し指示)により
VPBR出力を有効とし、線803に送出する様に論理が構成
されている。以上、必要に応じ各部を詳細に説明した
が、装置は上記説明の他、リストアドレス・バッファ12
0に初期アドレス要素をロードする制御機能、およびア
ドレス要素処理開始時に各制御部をイニシャライズして
スタートさせる機能と全アドレス要素処理の両を検出
し、各制御部を停止させる機能を持つが、本発明とは何
等関係をもたず、また、構成するに際しても全く困難さ
を伴わないので省略した。
The comparator 530 detects the end of the processing within the address element word by detecting that the next processing address element output by the priority logic 520 matches the unprocessed address element held in the VAR 510. Then, the VAR 510 operates to take in the V bit of the next address element word from the V bit of the list address buffer 120. On the other hand, the case where the end is not detected by the comparator 530 means that the address element to be processed in the address element word of the A stage and the unprocessed address element remains, and in this case, the address element to be processed next in the VAR 510 The V bit corresponding to
Reset individually using the output of Request generator
As shown in FIG. 6, reference numeral 140 includes a memory request permission logic 610, a memory request generation logic 620, and a request suppression history indicator 630. The memory request permission logic 610 receives the bank check result from the line 601 and the output of the VPBR 540 (V bit indicating the address element in the address element word to be processed now) from the line 602, and performs bank processing for all the processing target address elements. It is detected whether or not the line is free. If all the lines are bank-free, the line 611 is set to true (the line 612 is false), and the line 61
3 to 616 processing target address element positions (address element # 0
To # 3), and if there is at least one non-bank-free (ie, bank-busy) address element, the line 611 is false (the line 612 is true) and the line 613- 616
Works as false. That is, the signal on line 611 is a representative memory request permission signal, and the signals on lines 613 to 616 are memory request permission signals in units of address elements. The memory request generation logic 260
The lower three bits (memory port address) of each element address (# 0 to # 3) to be processed from now on are received from the line 603, and each is supplied to the decoder 64 with an enable input.
Decode at 0 to 670, and OR the 4 bits corresponding to each of the 8 bits of the decoded result of each of the 4 sets.
Each memory port is sent as a memory request to each memory port via 621, and each decoder receives a memory request permission signal for each address element from the memory request permission logic 610 on each enable input from lines 613 to 616. Only the memory request of the specified address element is true. Eventually, the request to each memory port is output as the logical OR of the corresponding outputs of the four decoders, but when memory ports conflict, the enable of the decoder of the oldest address element becomes false. , At most one OR input is not true. Request suppression history indicator 630 is line 612
The signal is set on condition that the above signal is true, and reset on the condition that the signal on line 604 is true (reset priority).
4 receives the output of the end indicator 550. In other words, the request suppression history indicator 550 temporarily disables sending of memory requests (writeback occurs).
Is turned on at the time when the processing is completed, and is turned off when the processing of all the address elements in the address element word is completed. The line 631 outputs a signal obtained by ORing the signal on the line 612 and the output of the request suppression history indicator 550. This is the history of the disapproval of the memory request in the address element / word currently being processed. Is a signal that indicates the presence or absence of As shown in FIG. 7, the write address counter 930 is a counter that can be strobed by a line 703. The strobe timing is determined when the request suppression history indicator 630 on the line 701 is turned on (writeback occurs). The count is incremented when the end indicator 550 on the 702 turns on (the request suppression history indicator 630 turns off at this point). The write-back control unit 910 is composed of simple logic as shown in FIG. 8, and has a strobe corresponding to the address element of the list address buffer 120 (common to the address element unit and the V bit unit).
Is received, the output of VPBR 540 (V bit of the processing target address element of the B stage) is received from the line 801, and a memory request non-permission report (write back instruction) from the line 802 is received.
The logic is configured to enable the VPBR output and send it out on line 803. In the above, each part has been described in detail as necessary.
It has a control function to load the initial address element to 0, a function to initialize and start each control unit at the start of address element processing, and a function to detect both address element processing and stop each control unit. It has nothing to do with the invention, and it has been omitted because it does not involve any difficulty in its construction.

次に、本実施例の動作を説明する。 Next, the operation of this embodiment will be described.

まず、セレクタ920で線921の側を選択し、適当な制御
によりリストアドレス・バッファ120のアドレス要素部
に初期アドレス要素をロードし、Vビット部に初期Vビ
ート・ワードを設定し、各種をイニシャライズする(84
0,850860,880,890,510,540,550,630,830,930を全てクリ
アする)。ここで、ロードされたアドレス要素を表5に
示す。
First, the selector 920 selects the line 921 side, loads an initial address element into the address element section of the list address buffer 120 by appropriate control, sets an initial V beat word in the V bit section, and initializes various types. Yes (84
0,850860,880,890,510,540,550,630,830,930 are all cleared). Here, the loaded address elements are shown in Table 5.

次に、アドレス要素の処理に移行するが、バンク810
〜825(#0〜#15のバンク)は全てフリー状態にある
ものとする。本装置は先に説明した通り、パイプライン
動作するが、分かり易さのため、アドレス要素ワード単
位の処理を先頭から順に説明する。まず、リードアドレ
ス・カウンタ830は番地0をアドレス指定し、リストア
ドレス・バッファ120のアドレス要素部よりアドレス要
素をレジスタ840へ、Vビット部よりVビットをVAR510
へ読出す(この時番地0のVビットはリセットされ
る)。ここで、VA0〜VA3=‘1111'で、#0〜#3のア
ドレス要素メモリポート・アドレスはそれぞれ#1,#3,
#4,#6で、何れも異るので、優先ロッジ520の出力521
は‘1111'となり、比較器530の出力531は真となる。一
方、バンクビジー・チェック部130でそれぞれのアドレ
ス要素に対応するバンクの状態をチェックするが、バン
クは全てフリー状態なので当然バンクフリー・インジケ
ータ880へは‘1111'が出力される。リクエスト生成部14
0ではこれらを受け、処理対象アドレス要素が#0〜#
3でバンクフリー・インジケータ880が‘1111'であるの
を見てメモリリクエスト許可ロジック610は線611を真と
し、バンクビジー・チェック部130に#0〜#3のアド
レス要素に対応したバンクアドレスを登録させ、セレク
タ・アレイ870はCステージのアドレス要素を保持して
いるレジスタ860より各アドレス要素を受け取り、該当
するメモリポート(即ち、要素#0〜#3に対応し、#
1,#3,#4,#6)を接続する。これにて、まず最初のア
ドレス要素ワードの処理が終了した。
Next, the processing shifts to address element processing.
825 (banks # 0 to # 15) are all in the free state. Although the present apparatus operates in a pipeline as described above, processing for each address element word will be sequentially described from the top for simplicity. First, the read address counter 830 addresses the address 0, the address element of the list address buffer 120 is sent to the register 840 from the address element part, and the V bit is VAR510 from the V bit part.
(At this time, the V bit at address 0 is reset). Here, VA0 to VA3 = '1111', and the address element memory port addresses of # 0 to # 3 are # 1, # 3,
Since both # 4 and # 6 are different, the output 521 of the priority lodge 520
Becomes '1111', and the output 531 of the comparator 530 becomes true. On the other hand, the state of the bank corresponding to each address element is checked by the bank busy check unit 130. Since all the banks are in the free state, '1111' is naturally output to the bank free indicator 880. Request generator 14
At 0, these are received and the processing target address elements are # 0 to #
3, the memory request permission logic 610 sets the line 611 to true upon seeing that the bank free indicator 880 is '1111', and sends the bank address corresponding to the address elements # 0 to # 3 to the bank busy check unit 130. The selector array 870 receives each address element from the register 860 holding the address element of the C stage, and receives the corresponding memory port (ie, corresponding to elements # 0 to # 3, #
1, # 3, # 4, # 6) are connected. Thus, the processing of the first address element word has been completed.

次に、二番目のアドレス要素ワードの処理の説明をす
る。まずリードアドレス・カウンタ830(前アドレス要
素ワードの読出しの直後にカウントアップされてい
る。)は番地1をアドレス指定し、リストアドレス・バ
ッファ120のアドレス要素部よりアドレス要素をレジス
タ840へ、Vビット部よりVビットをVAR510へ読出す
(この時番地1のVビットは全てリセットされる)。こ
こで、VA0〜VA3=‘1111'で、#0〜#3のアドレス要
素のメモリポート・アドレスはそれぞれ#2,#2,#6,#
6で#0と#1および#2と#3が一致しているので、
優先ロッジ520の出力521は‘1010'となり、比較器530の
出力531は偽となり次タイミングでVAR510のVA0,VA2をリ
セットし、リードアドレス・カウンタ830とレジスタ840
をホールド状態とする。一方、バンクビジー・チェック
部130でそれぞれのアドレス要素に対応するバンクの状
態をチェックするが、ビジーのバンクは#1,#11,#4,
#6であり(この時点では未登録だがバンク登録される
可能性が有るのでビジー扱いする)、バンクフリー・イ
ンジケータ880へは‘1111'が出力される。リクエスト生
成部140ではこれらを受け、処理対象アドレス要素が#
0,#2でバンクフリー・インジケータ880が‘1111'であ
るのを見てメモリリクエスト許可ロジック610は線611を
真とし、バンクビジー・チェック部130に#0,#2のア
ドレス要素に対応したバンクアドレスを登録させ、セレ
クタ・アレイ870はCステージのアドレス要素を保持し
ているレジスタ860より各アドレス要素を受け取り、該
当するメモリポート(即ち、要素#0,#2に対応し、#
2,#6)を接続する。次に、同一アドレス要素内の残り
のアドレス要素について、VA0〜VA3=‘0101'であり、
#1と#3のアドレス要素のメモリポート・アドレスは
異るので、優先ロジック520の出力521は‘0101'とな
り、比較器530の出力531は真となりリードアドレス・カ
ウンタ830とレジスタ840のホールドを解除すると共に、
次タイミングでエンド・インジケータ550を点灯させ
る。一方、バンクビジー・チェック部130でそれぞれの
アドレス要素に対応するバンクの状態をチェックする
が、#1,#3のバンクが両方共ビジーであり、バンクフ
リー・インジケータ880へは‘0000'が出力される。リク
エスト生成部140ではこれらを受け、処理対象アドレス
要素が#1,#3でバンクフリー・インジケータ880が‘0
100'であるのを見てメモリリクエスト許可ロジックは線
611を偽(612を真)とし、バンクビジー・チェック部13
0には何れのバンクアドレスの登録も指示しない。一
方、書き戻し制御部910では線612によりメモリリクエス
トが不許可になったという報告を受けるとパターン‘01
01'のストローブを発生させ、リストアドレス・バッフ
ァ120のライトアドレス・カウンタ930の指示しているア
ドレスである番地0のアドレス要素部に#1,#3のアド
レス要素を書込み、Vビット部のV1,V3をセットする。
さらに、ライトアドレス・カウンタ930は線631が真(現
在のアドレス要素ワード内処理において書き戻し処理が
あった)で、かつ、エンド・インジケータ550の出力551
が真(現在のアドレス要素ワード処理が終了した)であ
ることを受け、次の書き戻し処理に備え次のタイミング
でカウントアップされる。以上で二番目のアドレス要素
ワードの処理が終了した。
Next, the processing of the second address element word will be described. First, the read address counter 830 (counted up immediately after the reading of the previous address element word) designates the address 1 and the address element from the address element section of the list address buffer 120 to the register 840, and the V bit The V bit is read out to the VAR 510 from this section (at this time, all V bits at address 1 are reset). Here, VA0-VA3 = '1111', and the memory port addresses of the address elements # 0- # 3 are # 2, # 2, # 6, #
In # 6, since # 0 and # 1 and # 2 and # 3 match,
The output 521 of the priority lodge 520 becomes '1010', the output 531 of the comparator 530 becomes false and the VA0 and VA2 of the VAR510 are reset at the next timing, and the read address counter 830 and the register 840 are reset.
Is set to the hold state. On the other hand, the bank busy check unit 130 checks the status of the bank corresponding to each address element, and the busy banks # 1, # 11, # 4,
# 6 (at this point, it is unregistered but is likely to be registered in the bank, so it is treated as busy), and '1111' is output to the bank free indicator 880. The request generation unit 140 receives these, and the address element to be processed is #
When the bank free indicator 880 is '1111' at 0 and # 2, the memory request permission logic 610 sets the line 611 to true, and the bank busy check unit 130 responds to the address elements of # 0 and # 2. When the bank address is registered, the selector array 870 receives each address element from the register 860 holding the address element of the C stage, and receives the corresponding memory port (that is, # corresponding to elements # 0 and # 2,
2, # 6) are connected. Next, for the remaining address elements in the same address element, VA0 to VA3 = '0101',
Since the memory port addresses of the address elements # 1 and # 3 are different, the output 521 of the priority logic 520 becomes '0101', the output 531 of the comparator 530 becomes true, and the read address counter 830 and the register 840 are held. Release it,
The end indicator 550 is turned on at the next timing. On the other hand, the bank busy checker 130 checks the status of the bank corresponding to each address element. Both the banks # 1 and # 3 are busy, and '0000' is output to the bank free indicator 880. Is done. The request generation unit 140 receives these, and the address elements to be processed are # 1 and # 3, and the bank free indicator 880 is '0'.
Seeing 100 ', the memory request grant logic is line
611 is false (612 is true), and the bank busy check unit 13
0 does not instruct registration of any bank address. On the other hand, when the write-back control unit 910 receives a report indicating that the memory request has been rejected via the line 612, the pattern '01
A strobe of 01 'is generated, and address elements # 1 and # 3 are written in the address element of address 0 which is the address indicated by the write address counter 930 of the list address buffer 120, and V1 of the V bit section is written. , V3 is set.
Further, the write address counter 930 indicates that the line 631 is true (the write-back processing has been performed in the processing in the current address element word), and the output 551 of the end indicator 550 is output.
Is true (the current address element word processing has been completed), and is counted up at the next timing in preparation for the next write-back processing. This completes the processing of the second address element word.

次に、三番目のアドレス要素ワードの処理の説明をす
る。まず、リードアドレス・カウンタ830(前アドレス
要素ワードの読出しの直後にカウントアップされてい
る。)は番地2をアドレス指定し、リストアドレス・バ
ッファ120のアドレス要素部よりアドレス要素をレジス
タ840へ、Vビット部よりVビットをVAR510へ読出す
(この時番地1のVビットは全てリセットされる)。こ
こでVA0〜VA3=‘1111'で、#0〜#3のアドレス要素
のメモリポート・アドレスはそれぞれ#6,#0,#0,#6
で、#0と#3および#1と#2が一致しているので、
優先ロッジ520の出力521は‘1100'となり、比較器530の
出力531は偽となり次タイミングでVAR510のVA0,VA1をリ
セットし、リードアドレス・カウンタ830とレジスタ840
をホールド状態とする。一方、バンクビジー・チェック
部130でそれぞれのアドレス要素に対応するバンクの状
態をチェックするが、ビジーのバンクは#1,#11,#4,
#6,#2,#14,#10であり(#10はこの時点では未登録
だがバンク登録される可能性が有るのでビジー扱いす
る)バンクフリー・インジケータ880へは‘0100'が出力
される。リクエスト生成部140ではこれらを受け、処理
対象アドレス要素が#0,#1でバンクフリー・インジケ
ータ880が‘0100'であるのを見てメモリリクエスト許可
ロジック610は線611を偽(線612を真)とし、バンクビ
ジー・チェック部130には何れのバンクアドレスの登録
も指示しない。一方、書き戻し制御部910では線612によ
りメモリリクエストが不許可になったという報告を受け
るとパターン‘1100'のストローブを発生させ、リスト
アドレス・バッファ120のライトアドレス・カウンタ930
の指示しているアドレスである番地1のアドレス要素部
に#0,#1のアドレス要素を書込み、Vビット部のV0,V
1をセットする。次に、同一アドレス要素内の残りのア
ドレス要素について、VA0〜VA3=‘0011'であり、#2
と#3のアドレス要素のメモリポート・アドレスは異る
ので、優先ロジック520の出力521は‘0011'となり、比
較器530の出力531は真となりリードアドレス・カウンタ
830とレジスタ840をホールドを解除すると共に、次タイ
ミングでエンド・インジケータ550を点灯させる。一
方、バンクビジー・チェック部130でそれぞれのアドレ
ス要素に対応するバンクの状態をチェックするが、#2,
#3のバンクが両方共ビジーであり、バンクフリー・イ
ンジケータ880へは‘0000'が出力される。リクエスト生
成部140ではこれらを受け、処理対象アドレス要素が#
2,#3でバンクフリー・インジケータ880が‘0000'であ
るのを見てメモリリクエスト許可ロジック610は線611を
偽(612を真)とし、バンクビジー・チェック部130には
何れのバンクアドレスの登録も指示しない。一方、書き
戻し制御部910では線612によりメモリリクエストが不許
可になったという報告を受けるとパターン‘0011'のス
トローブを発生させ、リストアドレス・バッファ120の
ライトアドレス・カウンタ930の指示しているアドレス
である番地1のアドレス要素部に#2,#3のアドレス要
素を書込み、Vビット部のV2,V3をセットする。さら
に、ライトアドレス・カウンタ930はリクエスト・サプ
レス履歴インジケータ630の出力631が真(現在のアドレ
ス要素ワード内処理において書き戻し処理があった)
で、かつエンド・インジケータ550の出力551が真(現在
のアドレス要素ワード処理が終了した)であることを受
け、次の書き戻し処理に備え次のタイミングでカウント
アップされる。以上で二番目のアドレス要素ワードの処
理が終了した。
Next, the processing of the third address element word will be described. First, the read address counter 830 (counted up immediately after the reading of the previous address element word) addresses the address 2, and the address element from the address element section of the list address buffer 120 is sent to the register 840, and V The V bit is read from the bit portion to VAR510 (at this time, all V bits at address 1 are reset). Here, VA0-VA3 = '1111', and the memory port addresses of the address elements # 0- # 3 are # 6, # 0, # 0, # 6, respectively.
Since # 0 and # 3 and # 1 and # 2 match,
The output 521 of the priority lodge 520 becomes '1100', the output 531 of the comparator 530 becomes false and the VA0 and VA1 of the VAR 510 are reset at the next timing, and the read address counter 830 and the register 840 are reset.
Is set to the hold state. On the other hand, the bank busy check unit 130 checks the status of the bank corresponding to each address element, and the busy banks # 1, # 11, # 4,
# 6, # 2, # 14, # 10 (# 10 is unregistered at this point but is likely to be registered as a bank, so it is treated as busy) "0100" is output to the bank free indicator 880 . In response to the request, the request generation unit 140 sees that the address elements to be processed are # 0 and # 1 and the bank free indicator 880 is “0100”, and the memory request permission logic 610 sets the line 611 to false (the line 612 to true). ), And does not instruct the bank busy check unit 130 to register any bank address. On the other hand, when the write-back control unit 910 receives a report indicating that the memory request has been rejected by the line 612, it generates a strobe of pattern '1100', and the write address counter 930 of the list address buffer 120.
The address elements # 0 and # 1 are written to the address element part of address 1 which is the address designated by V.
Set 1. Next, for the remaining address elements in the same address element, VA0 to VA3 = '0011' and # 2
Since the memory port addresses of the address elements # 3 and # 3 are different, the output 521 of the priority logic 520 becomes "0011", the output 531 of the comparator 530 becomes true and the read address counter
The hold of the register 830 and the register 840 is released, and the end indicator 550 is turned on at the next timing. On the other hand, the bank busy checker 130 checks the status of the bank corresponding to each address element.
Both banks # 3 are busy, and '0000' is output to the bank free indicator 880. The request generation unit 140 receives these, and the address element to be processed is #
When the bank free indicator 880 is '0000' in # 2 and # 3, the memory request permission logic 610 sets the line 611 to false (612 to true), and the bank busy check unit 130 indicates to any bank address No registration is given. On the other hand, when the write-back control unit 910 receives a report indicating that the memory request has been rejected via the line 612, it generates a strobe of the pattern '0011' and instructs the write address counter 930 of the list address buffer 120. The address elements # 2 and # 3 are written in the address element part of address 1 which is an address, and V2 and V3 of the V bit part are set. Further, the write address counter 930 sets the output 631 of the request suppression history indicator 630 to true (there was a write-back process in the current address element word processing).
In addition, in response to the fact that the output 551 of the end indicator 550 is true (the current address element word processing has been completed), the count is incremented at the next timing in preparation for the next write-back processing. This completes the processing of the second address element word.

以上、最初から三番目までのアドレス要素ワードの処
理を示したが、これらはパイプライン処理され時間的に
オーバラップして処理される。以後同様にこれ以降のア
ドレス要素ワードも処理されるが、リードアドレス・カ
ウンタ830とライトアドレス・カウンタ930は番地15から
番地0へ巡回し、全てのアドレス要素についてメモリリ
クエストさせるまで処理は続けられる。この様子を第9
図に示す。また、この時点でのリストアドレス・バッフ
ァ120の内容を表6に示す。
The processing of the first to third address element words has been described above, but these are pipelined and processed with time overlap. Thereafter, the subsequent address element words are processed in the same manner, but the read address counter 830 and the write address counter 930 circulate from address 15 to address 0, and the processing is continued until a memory request is made for all address elements. This situation is ninth
Shown in the figure. Table 6 shows the contents of the list address buffer 120 at this time.

[発明の効果] 以上説明したように本発明は、リストベクトルの各ア
ドレス要素をアクセスする際、各要素のアドレス情報を
バッファに保持した状態で、順次取り出し、アドレス情
報に対応するバンクがアクセス可能状態か否かを検査
し、アクセス可能であるなら直ちにアクセスを行い、ア
クセス可能でないならば、そのアドレスをバッファに再
書込みし、そのアクセスを後回しにして次の要素のアド
レスの処理に移行するという動作を繰り返すことによ
り、バッファの再利用を図り、追い越し処理時のアドレ
ス退避用のバッファを不要とし、かつ、条件分岐の殆ど
無い制御シーケンスで、バンクビジーの頻発する環境下
においてもバンクビジーによる影響が最小限に抑えら
れ、結果として高いリストベクトル処理のスループット
を確保することが可能となるという効果が有り、また、
アドレス要素読出し…バンクビジー検査…メモリリクエ
スト(バンクビジーの場合は再書込み)という各動作を
パイプライン処理することが非常に簡単に実現でき、経
過としてリストベクトル処理のスループット向上が一段
と容易となる効果がある。
[Effect of the Invention] As described above, according to the present invention, when accessing each address element of a list vector, the address information of each element is sequentially retrieved while being held in a buffer, and a bank corresponding to the address information can be accessed. It checks whether it is in the state, and if it is accessible, immediately accesses it; if it is not accessible, rewrites the address to the buffer, delays the access and moves to the processing of the address of the next element By repeating the operation, the buffer is reused, the buffer for saving the address at the time of the overtaking process becomes unnecessary, and the control sequence has almost no conditional branching. Is minimized, resulting in high list vector processing throughput Has the effect of being able to
Each element operation of address element reading, bank busy check, memory request (rewriting in the case of bank busy) can be pipelined very easily, and the throughput of list vector processing can be further improved over time. There is.

【図面の簡単な説明】[Brief description of the drawings]

第1図は本発明の一実施例のデータ処理装置の構成図、
第2図は第1図のリストアドレス・バッファ120の、V
ビット部1ビット巾分を構成することができるVビット
・バッファを示す図、第3図は第2図のVビット・バッ
ファで、Vビットを記憶するのに使用されているフリッ
プ・フロップ1ビット分の制御信号を示す図、第4図は
リストアドレス・バッファ120のVビット部を第2図の
Vビット・バッファを用いて構成した図、第5図は第1
図の実行制御部900を詳細に示す図、第6図は、第1図
のリクエスト生成部140を詳細に示す図、第7図は、第
1図のライトアドレス・カウンタ930を詳細に示す図、
第8図は、第1図の書き戻し制御部910の論理構成を詳
細に示す図、第9図は本実施例の動作を示すタイムチャ
ート、第10図は本発明のデータ処理装置の概略構成図、
第11図は、その制御の流れ図、第12図は従来のデータ処
理装置の概略構成図、第13図はその制御の流れ図であ
る。 110……主記憶装置 120……リストアドレス・バッファ 130……バンクビジー・チェック部 140……リクエスト生成部 210〜225……フリップ・フロップ 230,240……デコータ 250……セレクタ 510……AステージのVビットレジスタVAR 520……優先ロジック 530……比較器 540……優先ロジック520の出力をBステージでそのまま
受けたレジスタ、 550……エンド・インジケータ 610……メモリリクエスト許可ロジック 620……メモリリクエスト生成ロジック 630……リクエスト・サプレス履歴インジケータ 800〜807……メモリポート 810〜825……バンク 830……リードアドレス・カウンタ 840,850,860……レジスタ 870……セレクタ・アレイ 880……バンクフリー・インジケータ 890……リクエストレジスタ 900……実行制御部 920……セレクタ 930……ライトアドレス・カウンタ
FIG. 1 is a configuration diagram of a data processing device according to an embodiment of the present invention,
FIG. 2 shows the V of the list address buffer 120 of FIG.
FIG. 3 is a view showing a V-bit buffer capable of forming one bit width of a bit portion, and FIG. 3 is a V-bit buffer shown in FIG. 2, which is a flip-flop 1 bit used for storing V bits. FIG. 4 is a diagram showing a control signal for the V. minute portion, FIG. 4 is a diagram showing the V bit portion of the list address buffer 120 constructed using the V bit buffer of FIG. 2, and FIG.
FIG. 6 shows the execution control unit 900 in detail, FIG. 6 shows the request generation unit 140 in FIG. 1 in detail, and FIG. 7 shows the write address counter 930 in FIG. 1 in detail. ,
FIG. 8 is a diagram showing in detail the logical configuration of the write-back control unit 910 in FIG. 1, FIG. 9 is a time chart showing the operation of the present embodiment, and FIG. 10 is a schematic configuration of the data processing device of the present invention. Figure,
FIG. 11 is a flowchart of the control, FIG. 12 is a schematic configuration diagram of a conventional data processing apparatus, and FIG. 13 is a flowchart of the control. 110 Main memory 120 List address buffer 130 Bank busy checker 140 Request generator 210-225 Flip flop 230,240 Decoder 250 Selector 510 A stage V Bit register VAR 520: Priority logic 530: Comparator 540: Register receiving the output of priority logic 520 as it is at B stage 550: End indicator 610: Memory request permission logic 620: Memory request generation logic 630: Request suppress history indicator 800 to 807 Memory port 810 to 825 Bank 830 Read address counter 840,850,860 Register 870 Selector array 880 Bank free indicator 890 Request register 900 execution control unit 920 selector 930 write address counter

Claims (2)

(57)【特許請求の範囲】(57) [Claims] 【請求項1】複数のバンクを有する記憶手段と、 それぞれが複数のアドレス格納部を有する複数のエント
リを有し、前記複数のバンクに対する複数のメモリアク
セス要求のアクセス先アドレスを各前記エントリの前記
複数のアドレス格納部に保持するためのアドレス情報保
持手段と、 このアドレス情報保持手段から前記複数のエントリのう
ちの先頭のエントリの複数の前記アドレス格納部に保持
されている複数のアクセス先アドレスを読み出し、読み
出された各アクセス先アドレスにより指定される各前記
バンクがアクセス可能な状態にあるか否かを同時に検査
する検査手段と、 この検査手段の検査に基づき、当該エントリの複数のア
クセス先アドレスに係る複数のメモリアクセス要求の中
から、前記複数のバンクに送出可能な少なくとも1つの
前記メモリアクセス要求を選択し該当する該複数のバン
クに送出するとともに、該複数のバンクへ送出不可能な
少なくとも1つの前記メモリアクセス要求を選択し該当
する該複数のバンクへの送出を抑止し当該送出不可能な
少なくとも1つのメモリアクセス要求のアクセス先アド
レスを前記アドレス情報保持手段の最後尾のエントリに
保持させるよう制御する制御手段とを含むことを特徴と
するデータ処理装置。
1. A storage means having a plurality of banks, and a plurality of entries each having a plurality of address storage units, wherein an access destination address of a plurality of memory access requests for the plurality of banks is stored in the entry of each of the entries. Address information holding means for holding in a plurality of address storage units; and a plurality of access destination addresses held in the plurality of address storage units of a first entry among the plurality of entries from the address information holding means. Checking means for simultaneously checking whether or not each of the banks specified by the read and read access destination addresses is accessible; and a plurality of access destinations of the entry based on the checking by the checking means. At least one of a plurality of memory access requests related to an address that can be transmitted to the plurality of banks. Selecting one of the memory access requests and sending the selected memory access request to the plurality of banks; and selecting at least one of the memory access requests that cannot be sent to the plurality of banks and suppressing transmission to the corresponding plurality of banks. Control means for controlling an access destination address of said at least one memory access request that cannot be transmitted to be held in a last entry of said address information holding means.
【請求項2】前記アドレス情報保持手段は、各前記エン
トリの各アドレス格納部に対応して設けられ当該エント
リの各アドレス格納部に保持されている各アクセス先ア
ドレスが有効か否かを示す有効ビットを格納する有効ビ
ット格納部を有し、 前記制御手段は、少なくとも1つのメモリアクセス要求
の前記複数のバンクへの送出を抑止した場合に、当該エ
ントリの内容を最後尾のエントリに転送し、当該最後尾
のエントリに転送された複数のアクセス先アドレスのう
ち前記複数のバンクへの送出が抑止されたものが有効と
なるよう前記有効ビットを生成し対応する前記有効ビッ
ト格納部に格納し、 前記検査手段は前記アドレス情報格納手段から読み出し
たエントリの各アドレス格納部に対応する有効ビット格
納部の内容に基づいて検査を行うことを特徴とする請求
項1記載のデータ処理装置。
2. The address information holding means is provided in correspondence with each address storage section of each entry, and indicates whether each access destination address held in each address storage section of the entry is valid or not. A valid bit storage unit for storing a bit, wherein the control unit, when suppressing transmission of at least one memory access request to the plurality of banks, transfers the content of the entry to the last entry; Of the plurality of access destination addresses transferred to the last entry, the one whose transmission to the plurality of banks is suppressed is generated so that the valid bit is valid and stored in the corresponding valid bit storage unit, The inspection means performs an inspection based on the contents of a valid bit storage corresponding to each address storage of the entry read from the address information storage. The data processing apparatus according to claim 1, wherein a.
JP06530690A 1990-03-14 1990-03-14 Data processing device Expired - Fee Related JP3157507B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP06530690A JP3157507B2 (en) 1990-03-14 1990-03-14 Data processing device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP06530690A JP3157507B2 (en) 1990-03-14 1990-03-14 Data processing device

Publications (2)

Publication Number Publication Date
JPH03263242A JPH03263242A (en) 1991-11-22
JP3157507B2 true JP3157507B2 (en) 2001-04-16

Family

ID=13283093

Family Applications (1)

Application Number Title Priority Date Filing Date
JP06530690A Expired - Fee Related JP3157507B2 (en) 1990-03-14 1990-03-14 Data processing device

Country Status (1)

Country Link
JP (1) JP3157507B2 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016123929A (en) * 2014-12-26 2016-07-11 株式会社クオン Water quality improvement method and apparatus

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7149857B2 (en) * 2002-05-14 2006-12-12 Micron Technology, Inc. Out of order DRAM sequencer

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5621174B2 (en) * 1974-12-12 1981-05-18
JPS58137182A (en) * 1982-02-10 1983-08-15 Nec Corp Controlling system of memory access
JPS6191740A (en) * 1984-10-12 1986-05-09 Fujitsu Ltd Memory access control method

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016123929A (en) * 2014-12-26 2016-07-11 株式会社クオン Water quality improvement method and apparatus

Also Published As

Publication number Publication date
JPH03263242A (en) 1991-11-22

Similar Documents

Publication Publication Date Title
US4142234A (en) Bias filter memory for filtering out unnecessary interrogations of cache directories in a multiprocessor system
US4214304A (en) Multiprogrammed data processing system with improved interlock control
US5142638A (en) Apparatus for sharing memory in a multiprocessor system
GB1579061A (en) Random access memory modules for digital data processing systems
EP0125855B1 (en) Buffer-storage control system
US8954681B1 (en) Multi-stage command processing pipeline and method for shared cache access
US6223260B1 (en) Multi-bus data processing system in which all data words in high level cache memories have any one of four states and all data words in low level cache memories have any one of three states
US20040098540A1 (en) Cache system and cache memory control device controlling cache memory having two access modes
JPH0195346A (en) Bus master
US6370617B1 (en) Non-stalling pipeline tag controller
US6507899B1 (en) Interface for a memory unit
US6782463B2 (en) Shared memory array
US5157776A (en) High speed memory for microcomputer systems
JPS5938620B2 (en) Priority designation device for memory controller
US5202970A (en) Method for sharing memory in a multiprocessor system
WO1998013763A2 (en) Multiport cache memory with address conflict detection
JP2561261B2 (en) Buffer storage access method
JP3157507B2 (en) Data processing device
US5359557A (en) Dual-port array with storage redundancy having a cross-write operation
US6446170B1 (en) Efficient store machine in cache based microprocessor
JPH07175713A (en) Multi-port semiconductor storage
US5978897A (en) Sequence operation processor employing multi-port RAMs for simultaneously reading and writing
US6829692B2 (en) System and method for providing data to multi-function memory
US6484238B1 (en) Apparatus and method for detecting snoop hits on victim lines issued to a higher level cache
US6279082B1 (en) System and method for efficient use of cache to improve access to memory of page type

Legal Events

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