Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP5223220B2 - Vector processing apparatus and vector processing system - Google Patents
[go: Go Back, main page]

JP5223220B2 - Vector processing apparatus and vector processing system - Google Patents

Vector processing apparatus and vector processing system Download PDF

Info

Publication number
JP5223220B2
JP5223220B2 JP2007094861A JP2007094861A JP5223220B2 JP 5223220 B2 JP5223220 B2 JP 5223220B2 JP 2007094861 A JP2007094861 A JP 2007094861A JP 2007094861 A JP2007094861 A JP 2007094861A JP 5223220 B2 JP5223220 B2 JP 5223220B2
Authority
JP
Japan
Prior art keywords
control information
vector
memory
cache
instruction
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
JP2007094861A
Other languages
Japanese (ja)
Other versions
JP2008250926A (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 JP2007094861A priority Critical patent/JP5223220B2/en
Publication of JP2008250926A publication Critical patent/JP2008250926A/en
Application granted granted Critical
Publication of JP5223220B2 publication Critical patent/JP5223220B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)
  • Complex Calculations (AREA)

Description

この発明は、ベクトル処理装置及びベクトル処理システムに係り、とくに、高速ベクトル演算処理に用いて好適なベクトル処理装置及びベクトル処理システムに関する。   The present invention relates to a vector processing device and a vector processing system, and more particularly to a vector processing device and a vector processing system suitable for use in high-speed vector arithmetic processing.

図11は、従来のマルチベクトルプロセッサシステム(以下、簡単に、ベクトル処理装置ともいう)の電気的構成を示すブロック図である。
従来のベクトル処理装置は、同図に示すように、それぞれが、パイプライン・ベクトル演算処理を行う複数(n個:nは2以上の自然数)のべクトルプロセッサ(CPU)1、1、…、1と、それぞれが、メモリアドレスによってインタリーブされた共有メモリ型の主記憶装置である、複数(m個:mは2以上の自然数)のメモリ制御部2、2、…、2とを備え、これらのべクトルプロセッサ1、1、…、1とメモリ制御部2、2、…、2とが、クロスバー網で結合されることで、全てのべクトルプロセッサ1、1、…、1が、いずれのメモリ制御部2、2、…、2へもアクセスでき、並列処理してシステム全体の処理速度の高速化を達成できる構成となっている。
FIG. 11 is a block diagram showing an electrical configuration of a conventional multi-vector processor system (hereinafter simply referred to as a vector processing device).
As shown in the figure, the conventional vector processing apparatus includes a plurality (n: n is a natural number of 2 or more) of vector processors (CPUs) 1 1 , 1 2 , each performing pipeline vector arithmetic processing. .., 1 n and a plurality (m: m is a natural number of 2 or more) of memory controllers 2 1 , 2 2 ,. a m, these base-vector processor 1 1, 1 2, ..., 1 n a memory control unit 2 1, 2 2, ..., and 2 m is, by being coupled by a crossbar network, all -vector processor 1 1, 1 2, ..., 1 n is any of the memory control unit 2 1, 2 2, ..., also accessible to 2 m, can achieve high processing speed of the entire system by parallel processing configuration It has become.

各ベクトルプロセッサ1、1、…、1は、同図に示すように、スカラ処理部11と、ベクトル処理部12と、メモリアクセス制御部13と、クロスバスイッチ14とから概略構成されている。上記スカラ処理部11は、各種命令発行制御とスカラ演算処理とを行う役割を担っている。ベクトル処理部12は、スカラ処理部11からベクトル命令を受けると、複数のベクトルパイプラインによって、ベクトルを構成する多数の要素に対する同一の繰り返し操作(ベクトル演算処理)を高速で実行する。ベクトル処理部12には、ベクトル演算を高速に実行するために、メモリ制御部2、2、…、2から読み出されたロードデータ(各種要素)や、演算結果の格納を行う、要素ごとにインタリーブされたベクトルレジスタ15が内蔵されている。上記メモリアクセス制御部13は、スカラ処理部11から発行されたメモリアクセス命令を受けると、メモリアドレスを生成してメモリアクセスパケットを生成する。また、クロスバスイッチ14は、メモリアクセス制御部13から受け取ったメモリアクセスパケットやベクトル処理部12から受け取ったメモリストアデータをアドレスによりインタリーブされた所望のメモリアクセスポートQ、Q、Q、Qにスイッチする一方、メモリ制御部2、2、…、2から読み出されたロードデータをベクトル処理部12の要素ごとにインタリーブされたベクトルレジスタ15に送るためのスイッチ操作も実行する。 Each of the vector processors 1 1 , 1 2 ,..., 1 n is roughly composed of a scalar processing unit 11, a vector processing unit 12, a memory access control unit 13, and a crossbar switch 14, as shown in FIG. Yes. The scalar processing unit 11 has a role of performing various instruction issuance control and scalar arithmetic processing. When the vector processing unit 12 receives a vector instruction from the scalar processing unit 11, the vector processing unit 12 executes the same repetitive operation (vector operation processing) on a large number of elements constituting the vector at a high speed by a plurality of vector pipelines. The vector processing unit 12 stores the load data (various elements) read from the memory control units 2 1 , 2 2 ,..., 2 m and the calculation result in order to execute the vector calculation at high speed. A vector register 15 interleaved element by element is incorporated. When the memory access control unit 13 receives a memory access command issued from the scalar processing unit 11, the memory access control unit 13 generates a memory address and generates a memory access packet. The crossbar switch 14 also has desired memory access ports Q 0 , Q 1 , Q 2 , Q interleaved by addresses with memory access packets received from the memory access control unit 13 and memory store data received from the vector processing unit 12. On the other hand, a switch operation for sending the load data read from the memory control units 2 1 , 2 2 ,..., 2 m to the vector register 15 interleaved for each element of the vector processing unit 12 is also executed. .

次に、各メモリ制御部2、2、…、2は、同図に示すように、クロスバスイッチ21と、バンク制御部22、22、…と、バンクキャッシュ23、23、…と、メモリバンク24、24、…とから構成されている。上記クロスバスイッチ21は、n個のベクトルプロセッサ1、1、…、1のいずれからでも、メモリアクセスパケットを受け取ると、アドレスによりインタリーブされた所望のメモリポートP、P、P、Pへスイッチする。ここで、同図に示すように、メモリポートP、P、P、Pごとに、バンク制御部22と、バンクキャッシュ23と、メモリバンク24とが設置されていて、バンク制御部22は、クロスバスイッチ21からのメモリアクセスパケットを受け取ると、アドレスでインタリーブされたメモリバンク24内の所望のメモリ素子にアクセスするための制御を行う。 Next, each of the memory control units 2 1 , 2 2 ,..., 2 m has a crossbar switch 21, bank control units 22, 22,. It is composed of memory banks 24, 24,. When the crossbar switch 21 receives a memory access packet from any of the n vector processors 1 1 , 1 2 ,..., 1 n , the desired memory ports P 0 , P 1 , P 2 interleaved by addresses are received. , to switch to P 3. Here, as shown in the figure, for each of the memory ports P 0 , P 1 , P 2 , P 3 , a bank control unit 22, a bank cache 23, and a memory bank 24 are installed. When 22 receives a memory access packet from the crossbar switch 21, it performs control to access a desired memory element in the memory bank 24 interleaved with the address.

バンクキャッシュ23は、メモリバンク24を構成するメモリ素子の遅延を隠蔽するための少容量のライトスルー型キャッシュメモリであり、メモリバンク24ごとに独立に設けられて、次のように動作する。バンクキャッシュ23は、バンク制御部22から受け取ったメモリアクセスパケットがロードのときは、アドレスによりヒット、ミスヒットを判定し、ヒットならば、自身にキャッシュされたデータをクロスバスイッチ21に返し、ミスヒットならば、メモリバンク24にメモリアクセスパケットを発行し、この後、メモリバンク24からロードデータが戻ってきたら、自身のキャッシュに登録すると共に、バンク制御部22及びクロスバスイッチ21を介して、メモリアクセスパケットを発行したベクトルプロセッサ1、1、…、1にロードデータを送る。一方、バンクキャッシュ23は、バンク制御部22から受け取ったメモリアクセスパケットがストアのときは、アドレスによりヒット、ミスヒットを判定し、アドレスがミスすれば、そのままメモリバンク24へ送り、ヒットすれば、自身のキャッシュを書き換えると共に、メモリバンク24にもストアパケットを送る。 The bank cache 23 is a small-capacity write-through cache memory for concealing the delay of the memory elements constituting the memory bank 24. The bank cache 23 is provided independently for each memory bank 24 and operates as follows. When the memory access packet received from the bank control unit 22 is loaded, the bank cache 23 determines a hit or a miss according to the address, and if it is a hit, returns the cached data to the crossbar switch 21 and the miss hit. Then, a memory access packet is issued to the memory bank 24. After that, when load data returns from the memory bank 24, it is registered in its own cache and is accessed via the bank control unit 22 and the crossbar switch 21. Load data is sent to the vector processors 1 1 , 1 2 ,..., 1 n that issued the packet. On the other hand, when the memory access packet received from the bank control unit 22 is a store, the bank cache 23 determines a hit or a miss according to the address. If the address is missed, the bank cache 23 sends it to the memory bank 24 as it is. While rewriting its own cache, it also sends a store packet to the memory bank 24.

しかしながら、上記従来のベクトル処理装置においては、昨今のテクノロジの進歩によりプロセッサ性能は向上したものの、メモリ素子のアクセス性能の進歩はそれほどではなく、メモリバンド幅の増加やメモリレイテンシ短縮による大量データの並列処理により高性能を引き出すベクトルプロセッサにとっては、メモリ素子とプロセッサとの間の性能格差が広がり、メモリ素子の性能ネックに起因して、システムの全体性能が低下してしまう、という問題があった。これは、メモリ素子のスループットが相対的に遅いため、プロセッサ−メモリ間のデータ転送遅延が大きくなり、プロセッサ側のベクトル演算処理の開始が相対的に遅れてしまうためである。
これを解消するためには、データ幅を広げることで、メモリ側のスループットの向上を図ることができるが、そうすると、メモリ側により大きなハードウエア量の追加が必要となるので、コストの増加を招き、不都合である。
However, in the above-described conventional vector processing apparatus, although the processor performance has been improved by recent technological advances, the access performance of the memory elements has not been improved so much, and a large amount of data is parallelized by increasing the memory bandwidth and shortening the memory latency. A vector processor that draws out high performance by processing has a problem that the performance gap between the memory element and the processor widens, and the overall performance of the system decreases due to the performance bottleneck of the memory element. This is because the throughput of the memory element is relatively slow, so that the data transfer delay between the processor and the memory becomes large, and the start of the vector operation processing on the processor side is relatively delayed.
In order to solve this problem, it is possible to improve the throughput on the memory side by widening the data width. However, if this is done, a large amount of hardware must be added to the memory side, resulting in an increase in cost. Inconvenient.

このような不都合を解消する手段として、命令語中に主記憶上の隣接するデータをロードするか否かを指定する動作指示フィールドを持ち、該動作指示フィールドの情報によって主記憶から読み出す読出しデータ幅が4バイトか8バイトかを決定するようにした、特許文献1に記載のベクトル処理装置が提案されている。特許文献2にも、特許文献1に類似する技術が開示されている。
特開平09−062654号公報 特開平01−292453号公報
As means for solving such inconvenience, the instruction word has an operation instruction field for designating whether or not adjacent data on the main memory is loaded, and the read data width read from the main memory by the information of the operation instruction field A vector processing device described in Japanese Patent Application Laid-Open No. H10-260260 has been proposed in which it is determined whether or not is 4 bytes or 8 bytes. Patent Document 2 also discloses a technique similar to Patent Document 1.
JP 09-062654 A Japanese Patent Laid-Open No. 01-292453

しかしながら、互いに独立して演算処理を実行する複数のベクトルプロセッサにあっては、命令語中に主記憶上の隣接するデータをロードするか否かを指定する(特許文献1に記載の)動作指示フィールドのみでは、ベクトル命令の処理の高速化を達成するには限界がある。   However, in a plurality of vector processors that execute arithmetic processing independently of each other, an operation instruction (described in Patent Document 1) that specifies whether or not to load adjacent data in the main memory into an instruction word With only the field, there is a limit to achieving high-speed processing of vector instructions.

この発明は、上述の事情に鑑みてなされたもので、プロセッサ−メモリ間のデータ転送遅延の増加を抑制すると共に、メモリアクセス命令の内容によりキャッシュ方法、メモリアクセス方法を変更することにより、キャッシュを効率的に用い、ハードウエア量の増加を抑制すると共にスループットの向上を図ることができるベクトル処理装置及びベクトル処理システムを提供することを目的としている。   The present invention has been made in view of the above circumstances, and suppresses an increase in the data transfer delay between the processor and the memory, and also changes the cache method and the memory access method according to the contents of the memory access instruction. An object of the present invention is to provide a vector processing device and a vector processing system that can be used efficiently, suppressing an increase in hardware amount and improving throughput.

上記課題を解決するために、この発明の第1の構成(請求項1記載の発明)は、ベクトルプロセッサを備えるベクトル処理装置に係り、前記ベクトルプロセッサは、制御情報手段と、メモリポート単位に搭載された複数のポートキャッシュとを有し、前記制御情報手段が、命令種別と、少なくともベースアドレス、ディスタンス、及び要素数からなる命令内容とに基づいて、キャッシュ登録に関する制御情報を生成すると共に、前記各ポートキャッシュが、前記制御情報手段によって生成された前記制御情報に基づいて、登録サイズを切り替えることを特徴としている。 In order to solve the above-described problems, a first configuration of the present invention (the invention according to claim 1) relates to a vector processing apparatus including a vector processor, and the vector processor is mounted in units of control information means and memory ports. A plurality of port caches, wherein the control information means generates control information related to cache registration based on the instruction type and at least the instruction contents including the base address, the distance, and the number of elements, and Each port cache switches the registration size based on the control information generated by the control information means.

また、この発明の第2の構成(請求項2記載の発明)は、ベクトルプロセッサとメモリ制御部とを備えるベクトル処理装置に係り、前記ベクトルプロセッサが、命令種別と、少なくともベースアドレス、ディスタンス、及び要素数からなる命令内容とに基づいて、キャッシュ登録に関する制御情報を生成する制御情報手段を有すると共に、前記メモリ制御部が、バンク単位に搭載されたバンクキャッシュを有し、前記各バンクキャッシュは、前記制御情報手段によって生成された前記制御情報に基づいて、登録サイズを切り替えることを特徴としている。 A second configuration of the present invention (the invention according to claim 2) relates to a vector processing apparatus including a vector processor and a memory control unit, wherein the vector processor includes an instruction type, at least a base address, a distance, and Control information means for generating control information related to cache registration based on the instruction content comprising the number of elements, and the memory control unit has a bank cache mounted on a bank basis, each bank cache, The registration size is switched based on the control information generated by the control information means.

また、この発明の第3の構成(請求項7記載の発明)は、複数のベクトルプロセッサと複数のメモリ制御部とが、クロスバスイッチ網によって結合されているベクトル処理システムに係り、前記ベクトルプロセッサは、制御情報手段と、メモリポート単位に搭載された複数のポートキャッシュとを有し、前記制御情報手段が、命令種別と、少なくともベースアドレス、ディスタンス、及び要素数からなる命令内容とに基づいて、キャッシュ登録に関する制御情報を生成すると共に、前記各ポートキャッシュが、前記制御情報手段によって生成された前記制御情報に基づいて、キャッシュ登録有無、又は/及び登録サイズを切り替えることを特徴としている。 A third configuration of the present invention (invention according to claim 7) relates to a vector processing system in which a plurality of vector processors and a plurality of memory control units are coupled by a crossbar switch network. The control information means and a plurality of port caches mounted on a memory port basis, the control information means is based on the instruction type and at least the instruction content comprising the base address, the distance, and the number of elements, Control information relating to cache registration is generated, and each port cache switches the presence / absence of cache registration and / or the registration size based on the control information generated by the control information means.

この発明の第4の構成(請求項8記載の発明)は、複数のベクトルプロセッサと複数のメモリ制御部とが、クロスバスイッチ網によって結合されているベクトル処理システムに係り、前記ベクトルプロセッサが、命令種別と、少なくともベースアドレス、ディスタンス、及び要素数からなる命令内容とに基づいて、キャッシュ登録に関する制御情報を生成する制御情報手段を有すると共に、前記メモリ制御部は、バンク単位に搭載されたバンクキャッシュを有し、前記各バンクキャッシュが、前記制御情報手段によって生成された前記制御情報に基づいて、キャッシュ登録有無、又は/及び登録サイズを切り替えることを特徴としている。 A fourth configuration of the present invention (invention according to claim 8) relates to a vector processing system in which a plurality of vector processors and a plurality of memory control units are coupled by a crossbar switch network, and the vector processor includes instructions. The memory control unit includes a bank cache mounted on a bank basis, and includes control information means for generating control information related to cache registration based on a type and an instruction content including at least a base address, a distance, and the number of elements. And each bank cache switches cache presence / absence and / or registration size based on the control information generated by the control information means.

この発明の構成によれば、キャッシュ制御やメモリアクセス制御を命令毎に最適に制御しているので、プロセッサとメモリ素子の性能差分を隠蔽でき、少ないハードウエア量でも、スループットの向上化を図ることができる。加えて、ベクトルプロセッサにポートキャッシュを設け、プロセッサ−メモリ間のデータ転送遅延の増加を抑制すると共に、メモリアクセス命令の内容によりキャッシュ方法、メモリアクセス方法を最適化することにより、キャッシュを効率的に用いることができるので、ハードウエア量の増加を抑制すると共にスループットの向上化を達成できる。   According to the configuration of the present invention, since cache control and memory access control are optimally controlled for each instruction, the performance difference between the processor and the memory element can be concealed, and the throughput can be improved even with a small amount of hardware. Can do. In addition, a port cache is provided in the vector processor to suppress an increase in data transfer delay between the processor and the memory, and by optimizing the cache method and the memory access method according to the contents of the memory access instruction, the cache can be efficiently Therefore, an increase in the amount of hardware can be suppressed and an improvement in throughput can be achieved.

この発明の実施形態が、上記従来のそれと大きく異なるところは、メモリアクセス制御部33に、スカラ処理部から発行される命令内容から(登録方法の切替え等の)制御情報を生成する制御情報生成回路39、及びベクトルプロセッサ3、3、…、3内部のメモリポート部に、メモリアクセスポートQ、Q、Q、Qごとに独立した複数のキャッシュ(ポートキャッシュ36、36、…)を設けるようにした点である。このような構成によれば、命令内容によって登録方法(例えば、8バイト登録/16バイト登録、キャッシュに登録する/しない等)を切り替えることができるので、効率的にキャッシュに格納でき、それゆえ、キャッシュ容量を抑えることができ、少ないハードウエア投資でもスループット性能を確保できる。 The embodiment of the present invention is greatly different from the conventional one described above. The control information generation circuit that generates control information (such as switching of the registration method) from the instruction contents issued from the scalar processing unit to the memory access control unit 33 39 and the vector processor 3 1 , 3 2 ,..., 3 n have a plurality of independent caches (port caches 36, 36, 36) for each memory access port Q 0 , Q 1 , Q 2 , Q 3 . ...) is provided. According to such a configuration, since the registration method (for example, 8-byte registration / 16-byte registration, registration / non-registration in the cache, etc.) can be switched depending on the instruction content, it can be efficiently stored in the cache. Cache capacity can be reduced, and throughput performance can be secured with a small amount of hardware investment.

図1は、この発明の第1実施例であるベクトル処理装置の電気的構成を示すブロック図である。
この例のベクトル処理装置(マルチベクトルプロセッサシステム)は、同図に示すように、それぞれが、パイプライン・ベクトル演算処理を行う複数(n個:nは2以上の自然数)のべクトルプロセッサ(CPU)3、3、…、3と、それぞれが、メモリアドレスによってインタリーブされた共有メモリ型の主記憶装置である、複数(m個:mは2以上の自然数)のメモリ制御部4、4、…、4とを備え、これらのべクトルプロセッサ3、3、…、3とメモリ制御部4、4、…、4とが、クロスバー網で結合されることで、全てのべクトルプロセッサ3、3、…、3が、いずれのメモリ制御部4、4、…、4へもアクセスでき、並列処理することで、システム全体の処理速度の高速化を達成できる構成となっている。
この例のベクトル処理装置の構成が、上記従来のそれと大きく異なるところは、ベクトルプロセッサ3、3、…、3に、メモリアクセスポートQ、Q、Q、Qごとに独立したポートキャッシュ36、36、…を複数設けるようにした点である。
FIG. 1 is a block diagram showing an electrical configuration of a vector processing apparatus according to the first embodiment of the present invention.
As shown in the figure, the vector processing apparatus (multi-vector processor system) of this example includes a plurality of (n: n is a natural number of 2 or more) vector processors (CPUs) each performing pipeline vector operation processing. ) 3 1 , 3 2 ,..., 3 n and a plurality of (m: m is a natural number of 2 or more) memory control units 4 1 , each of which is a shared memory type main storage device interleaved by memory addresses. , 4 2, ..., a 4 m, these base-vector processor 3 1, 3 2, ..., 3 n and the memory controller 4 1, 4 2, ..., and a 4 m, is coupled by the crossbar network in Rukoto, all base-vector processor 3 1, 3 2, ..., is 3 n, any of the memory control unit 4 1, 4 2, ..., can access to 4 m, by parallel processing, the entire system High processing speed Has become can be achieved structuring.
The configuration of the vector processing apparatus in this example is greatly different from that of the conventional one in that the vector processors 3 1 , 3 2 ,..., 3 n are independent for each memory access port Q 0 , Q 1 , Q 2 , Q 3 A plurality of port caches 36, 36,... Are provided.

すなわち、各ベクトルプロセッサ3、3、…、3は、同図に示すように、スカラ処理部31と、ベクトル処理部32と、メモリアクセス制御部33と、クロスバスイッチ34と、ポートキャッシュ36、36、…とから概略構成されている。上記スカラ処理部31は、各種命令発行制御とスカラ演算処理とを行う役割を担っている。ベクトル処理部32は、スカラ処理部31からベクトル命令を受けると、複数のベクトルパイプラインによって、ベクトルを構成する多数の要素に対する同一の繰り返し操作(ベクトル演算処理)を高速で実行する。 That is, each vector processor 3 1 , 3 2 ,..., 3 n includes a scalar processing unit 31, a vector processing unit 32, a memory access control unit 33, a crossbar switch 34, and a port cache, as shown in FIG. 36, 36,... The scalar processing unit 31 has a role of performing various instruction issuance control and scalar arithmetic processing. When the vector processing unit 32 receives a vector instruction from the scalar processing unit 31, the vector processing unit 32 executes the same repetitive operation (vector operation processing) on a large number of elements constituting the vector at high speed by a plurality of vector pipelines.

ベクトル処理部32には、ベクトル演算を高速に実行するために、メモリ制御部4、4、…、4から読み出されたロードデータ(各種要素)や、演算結果の格納を要素ごとに行う、要素ごとにインタリーブされたベクトルレジスタ35が内蔵されている。メモリアクセス制御部33は、スカラ処理部31から発行されたメモリアクセス命令を受けると、メモリアドレスを生成してメモリアクセスパケットを生成する。 The vector processing unit 32 stores the load data (various elements) read from the memory control units 4 1 , 4 2 ,..., 4 m and the calculation results for each element in order to execute vector calculations at high speed. The vector register 35 interleaved element by element is incorporated. When the memory access control unit 33 receives the memory access command issued from the scalar processing unit 31, the memory access control unit 33 generates a memory address and generates a memory access packet.

クロスバスイッチ34は、メモリアクセス制御部33から受け取ったメモリアクセスパケットやベクトル処理部32から受け取ったメモリストアデータをアドレスによりインタリーブされた所望のメモリポートQ、Q、Q、Qにスイッチする一方、メモリ制御部4、4、…、4又はポートキャッシュ36、36、…から読み出されたロードデータをベクトル処理部32の要素ごとにインタリーブされたベクトルレジスタ15に送るためのスイッチ操作も実行する。 The crossbar switch 34 switches the memory access packet received from the memory access control unit 33 and the memory store data received from the vector processing unit 32 to desired memory ports Q 0 , Q 1 , Q 2 , Q 3 interleaved with addresses. On the other hand, the load data read from the memory control units 4 1 , 4 2 ,..., 4 m or the port caches 36, 36, etc. are sent to the vector register 15 interleaved for each element of the vector processing unit 32. Also performs switch operations.

上記ポートキャッシュ36、36、…は、メモリアクセスの遅延を隠蔽するために、ベクトルプロセッサ3、3、…、3に設けられたライトスルー型のキャッシュメモリであり、同図に示すように、メモリポートQ、Q、Q、Qごとに独立して設置されている。 The port caches 36, 36,... Are write-through cache memories provided in the vector processors 3 1 , 3 2 ,..., 3 n in order to conceal the memory access delay, as shown in FIG. The memory ports Q 0 , Q 1 , Q 2 , and Q 3 are installed independently.

各ポートキャッシュ36、36、…は、メモリアクセス制御部33から受け取ったメモリアクセスパケットがロードのときは、アドレスによりヒット、ミスヒットを判定し、ヒットならば、自身にキャッシュされたデータをクロスバスイッチ34に返し、ミスヒットならば、メモリ制御部4、4、…、4にメモリアクセスパケットを発行し、この後、メモリ制御部4、4、…、4からロードデータが戻ってきたら、自身のキャッシュに登録すると共に、クロスバスイッチ34を介して、ベクトルレジスタ35にロードデータを送る。 When the memory access packet received from the memory access control unit 33 is loaded, each of the port caches 36, 36,... Judges hit / mishit based on the address. 34 returns, if miss, the memory control unit 4 1, 4 2, ..., and issues a memory access packet to 4 m, thereafter, the memory control unit 4 1, 4 2, ..., the load data from the 4 m When it returns, it registers in its own cache and sends load data to the vector register 35 via the crossbar switch 34.

一方、ポートキャッシュ36、36、…は、メモリアクセス制御部33から受け取ったメモリアクセスパケットがストアのときは、アドレスによりヒット、ミスヒットを判定し、アドレスがミスすれば、そのままメモリ制御部4、4、…、4へ送り、ヒットすれば、自身のキャッシュを書き換えると共に、メモリ制御部4、4、…、4にもストアパケットを送る。 On the other hand, port cache 36, ... may, when a memory access packet received from the memory access control unit 33 of the store, to determine a hit, the miss-hit by the address, if the address is a miss, the memory control unit 4 1 as , 4 2, ..., feed to 4 m, if a hit, rewrites its own cache, the memory control unit 4 1, 4 2, ..., and sends the store packets to 4 m.

次に、各メモリ制御部4、4、…、4は、同図に示すように、クロスバスイッチ41と、バンク制御部42と、バンクキャッシュ43と、メモリバンク44とから構成されている。上記クロスバスイッチ41は、n個のベクトルプロセッサ3、3、…、3のいずれからでも、メモリアクセスパケットを受け取ると、アドレスによりインタリーブされた所望のメモリポートP、P、P、Pへスイッチする。 Next, each of the memory control units 4 1 , 4 2 ,..., 4 m includes a crossbar switch 41, a bank control unit 42, a bank cache 43, and a memory bank 44 as shown in FIG. Yes. When the crossbar switch 41 receives a memory access packet from any of the n vector processors 3 1 , 3 2 ,..., 3 n , the desired memory ports P 0 , P 1 , P 2 interleaved by addresses are received. , to switch to P 3.

ここで、同図に示すように、メモリポートP、P、P、Pごとに、バンク制御部42と、バンクキャッシュ43と、メモリバンク44とが設置されていて、バンク制御部42は、前段のクロスバスイッチ41からのメモリアクセスパケットを受け取ると、アドレスでインタリーブされたメモリバンク44内の所望のメモリ素子にアクセスするための制御を行う。 Here, as shown in the figure, for each of the memory ports P 0 , P 1 , P 2 , and P 3 , a bank control unit 42, a bank cache 43, and a memory bank 44 are installed. When the memory access packet is received from the crossbar switch 41 in the preceding stage, 42 performs control for accessing a desired memory element in the memory bank 44 interleaved with the address.

上記バンクキャッシュ43は、メモリバンク44を構成するメモリ素子の遅延を隠蔽するための少容量のライトスルー型メモリであり、メモリバンク44ごとに独立に設けられている。バンクキャッシュ43は、バンク制御部42から受け取ったメモリアクセスパケットがロードのときは、アドレスによりヒット、ミスヒットを判定し、ヒットならば、自身にキャッシュされたデータを前段のクロスバスイッチ41に返し、ミスヒットならば、後段のメモリバンク44にメモリアクセスパケットを発行し、この後、メモリバンク44からロードデータが戻ってきたら、自身のキャッシュに登録すると共に、バンク制御部42及びクロスバスイッチ41を介して、メモリアクセスパケットを発行したベクトルプロセッサ3、3、…、3にロードデータを送る。一方、バンクキャッシュ43は、バンク制御部42から受け取ったメモリアクセスパケットがストアのときは、アドレスによりヒット、ミスヒットを判定し、アドレスがミスすれば、そのまま、後段のメモリバンク44へ送り、ヒットすれば、自身のキャッシュを書き換えると共に、メモリバンク44にもストアパケットを送る。 The bank cache 43 is a small-capacity write-through memory for concealing the delay of the memory elements constituting the memory bank 44, and is provided independently for each memory bank 44. When the memory access packet received from the bank control unit 42 is loaded, the bank cache 43 determines a hit or a miss according to the address, and if it is a hit, returns the cached data to the previous crossbar switch 41, If there is a miss hit, a memory access packet is issued to the subsequent memory bank 44. After that, when load data returns from the memory bank 44, it is registered in its own cache, and via the bank control unit 42 and the crossbar switch 41. Then, the load data is sent to the vector processors 3 1 , 3 2 ,..., 3 n that issued the memory access packet. On the other hand, when the memory access packet received from the bank control unit 42 is a store, the bank cache 43 determines a hit or a miss by the address. If the address misses, the bank cache 43 sends it to the subsequent memory bank 44 as a hit. Then, it rewrites its own cache and also sends a store packet to the memory bank 44.

図2は、この例のベクトルプロセッサ3、3、…、3を構成するメモリアクセス制御部33の詳細な電気的構成を示すブロック図、また、図3は、同メモリアクセス制御部の制御情報生成回路で生成される各種制御情報例を示す概念図である。
メモリアクセス制御部33は、図2に示すように、メモリリクエスト生成部37とメモリアドレス生成部38とから構成され、メモリリクエスト生成部37には、制御情報生成回路39が含まれている。メモリアドレス生成部38は、メモリアクセスすべきアドレスを生成する。メモリリクエスト生成部37は、スカラ処理部31から受けるメモリアクセス命令に基づいてメモリアクセスパケットを生成し、例えば、ベクトルロード命令やベクトルストア命令であれば、命令は1つで済むが、命令内容には、ベースアドレス、ディスタンス(距離)、及び要素数が含まれており、これらの情報から、要素ごと・要素数分のメモリアクセスパケットを生成する。
FIG. 2 is a block diagram showing a detailed electrical configuration of the memory access control unit 33 constituting the vector processors 3 1 , 3 2 ,..., 3 n of this example, and FIG. It is a conceptual diagram which shows the example of various control information produced | generated by a control information production | generation circuit.
As shown in FIG. 2, the memory access control unit 33 includes a memory request generation unit 37 and a memory address generation unit 38, and the memory request generation unit 37 includes a control information generation circuit 39. The memory address generation unit 38 generates an address for memory access. The memory request generation unit 37 generates a memory access packet based on the memory access instruction received from the scalar processing unit 31. For example, in the case of a vector load instruction or a vector store instruction, only one instruction is required. Includes a base address, a distance (distance), and the number of elements. From these pieces of information, memory access packets for each element and the number of elements are generated.

制御情報生成回路39では、スカラ処理部31から受けるロード/ストア命令内容から、各種制御情報が生成される。具体的には、制御情報生成回路39は、16バイトアクセスパケットにするか8バイトアクセスパケットにするか等、メモリアクセスパケットの生成に使用される他にも、この例では、各種制御情報例として図3に示すように、例えば、ポートキャッシュ36に登録するBIT[1、1]、登録しないBIT[1、0]、バンクキャッシュ43に登録するBIT[2、1]、登録しないBIT[2、0]、パケットは8バイトアクセスであるが、メモリバンク44(メモリ素子)へのアクセスやバンクキャッシュ43への登録は16バイトにするBIT[0、1](16Bリクエスト発行)、8バイトのままにするBIT[0、0](8Bリクエスト発行)、等の制御情報を生成する。生成された制御情報は、メモリアクセスパケットに付与されて、その制御情報が必要な回路まで持ちまわることになる。   In the control information generation circuit 39, various control information is generated from the contents of the load / store instruction received from the scalar processing unit 31. Specifically, the control information generation circuit 39 is used to generate a memory access packet, such as whether to use a 16-byte access packet or an 8-byte access packet. As shown in FIG. 3, for example, BIT [1,1] registered in the port cache 36, BIT [1,0] not registered, BIT [2,1] registered in the bank cache 43, BIT [2,1 not registered] 0], the packet is 8-byte access, but access to the memory bank 44 (memory element) and registration to the bank cache 43 are 16 bytes. BIT [0, 1] (16B request issuance) remains 8 bytes Control information such as BIT [0, 0] (8B request issuance) is generated. The generated control information is given to the memory access packet, and the control information is carried to the circuit that needs it.

図4は、この例のベクトルプロセッサ3、3、…、3のポートキャッシュ36、36、…の詳細な電気的構成を示すブロック図である。
この例では、4ポート構成のポートキャッシュ36、36、…がメモリアクセスポートQ、Q、Q、Qごとに設けられていていて、各ポートキャッシュ36、36、…は、同図に示すように、ラインあたり16バイトのデータ幅を持ち、同一ライン(横方向)にはアドレスとして連続する16バイトが格納される構成となっている。ポートキャッシュ36、36、…は、互いに完全に独立しており、図示していないが、各メモリアクセスポートQ、Q、Q、Qごとにアドレスアレイを持ってキャッシュ制御する機能を有している。また、ライン数は任意であり、図示していないがウエイ数も任意に持つことができる。
Figure 4 is a vector processor 3 1 of this example, 3 2, ..., 3 n ports cache 36 is a block diagram showing ... a detailed electrical configuration of.
In this example, port caches 36, 36,... Having a 4-port configuration are provided for each of the memory access ports Q 0 , Q 1 , Q 2 , Q 3 , and the port caches 36, 36,. As shown in the figure, the data width is 16 bytes per line, and 16 bytes continuous as an address are stored in the same line (horizontal direction). The port caches 36, 36,... Are completely independent from each other, and although not shown, each of the memory access ports Q 0 , Q 1 , Q 2 , Q 3 has a cache control function with an address array. Have. Further, the number of lines is arbitrary, and although not shown, the number of ways can be arbitrarily set.

ポートキャッシュ36、36、…は、メモリアクセス制御部33から付与された制御情報に基づいて、キャッシュの制御を切り替えることができるようになっている。例えば、ポートキャッシュ36には登録しない旨の制御情報(図3)が付与されたメモリアクセスパケットが来ると、フィルされたデータは、キャッシュには登録せずに、そのままクロスバスイッチ34を介してベクトルレジスタ35に送る構成となっていて、このような構成とすることで、キャッシュが荒らされてヒット率が低下するのを防止している。   The port caches 36, 36,... Can switch cache control based on the control information given from the memory access control unit 33. For example, when a memory access packet to which control information (FIG. 3) indicating that registration is not performed is received in the port cache 36, the filled data is not registered in the cache but is directly transmitted through the crossbar switch 34 as a vector. The configuration is sent to the register 35, and this configuration prevents the cache from being damaged and the hit rate from being lowered.

図5は、この例のメモリ制御部4、4、…、4を構成するバンクキャッシュ43、43、…の詳細な電気的構成を示すブロック図である。
この例では、4バンク構成のバンクキャッシュ43、43、…がメモリポートP、P、P、Pごとに設けられていて、各バンク43、43、…は、互いに独立で、図示していないがアドレスアレイを持っており、キャッシュ制御する機能を有している。なお、ベクトル処理装置は、各ベクトルプロセッサ3、3、…、3間で依存関係がなく、ベクトルプロセッサ(CPU)3、3、…、3毎に別のプロセスが動作しているため、バンクキャッシュ43、43、…は、図5に示すように、ベクトルプロセッサ3、3、…、3毎に別々のラインとしてキャッシュする構成となっている。同図では、ラインサイズは、連続する16バイトを格納する例が示されている。
5, the memory controller of this embodiment 4 1, 4 2, ..., bank cash 43 constituting the 4 m, is a block diagram showing ... a detailed electrical configuration of.
In this example, bank caches 43, 43,... Having a 4-bank configuration are provided for each of the memory ports P 0 , P 1 , P 2 , P 3 , and the banks 43, 43,. Although not shown, it has an address array and has a cache control function. Incidentally, the vector processor, each vector processor 3 1, 3 2, ..., there is no dependency between 3 n, the vector processor (CPU) 3 1, 3 2, ..., another process operates every 3 n and for which the bank cache 43, ..., as shown in FIG. 5, the vector processor 3 1, 3 2, ... are configured to cache as separate line every 3 n. In the figure, an example is shown in which the line size stores 16 consecutive bytes.

バンクキャッシュ43、43、…においても、ポートキャッシュ36、36、…と同様にメモリアクセス制御部33にて付与された制御情報(図3)に基づいて、キャッシュの制御を切り替えることができ、バンクキャッシュ43内容の最適化を行うことができるようになっている。例えば、バンクキャッシュ43には登録しない旨の制御情報(図3)が付与されたメモリアクセスパケットが来ると、フィルされたデータは、キャッシュには登録せずに、そのまま、バンク制御部42及びクロスバスイッチ41を介して、ベクトルプロセッサ3、3、…、3(ベクトルレジスタ35)に送る構成となっていて、このような構成とすることで、キャッシュが荒らされてヒット率が低下するのを防止している。 Also in the bank caches 43, 43,..., The cache control can be switched based on the control information (FIG. 3) given by the memory access control unit 33 in the same way as the port caches 36, 36,. The contents of the cache 43 can be optimized. For example, when a memory access packet to which control information (FIG. 3) indicating that registration is not to be made is received in the bank cache 43, the filled data is not registered in the cache, and the bank control unit 42 and the crossbar are not changed. It is configured to send to the vector processors 3 1 , 3 2 ,..., 3 n (vector register 35) via the switch 41. With such a configuration, the cache is damaged and the hit rate decreases. Is preventing.

図6は、ベクトルプロセッサ(CPU)3、3、…、3と、メモリ制御部4、4、…、4との間のインタフェースの詳細例(メモリリクエストの形式例)を示す概念図である。同図には、メモリアクセス制御部33の制御情報生成回路39にて生成された制御情報(図3)をメモリアクセスパケットに付与し、持ちまわるパケット構成例が示されている。ベクトルプロセッサ(CPU)3、3、…、3からメモリアクセス制御部33方向への信号の流れ(以下、CPU→メモリ制御部方向という)では、16バイトロード、8バイトロードとも、同図に示すように、アドレスと制御情報とで1パケット幅のデータラインを使い、ストアの場合は、アドレスと制御情報とで1パケット幅のデータラインを使い、さらに、ストアデータも8バイトごとにパケットを増やして追加する構成となっている。それゆえ、この例では、16バイトストアでは、3パケット構成、8バイトストアでは、2パケット構成となる。同様に、メモリアクセス制御部33からベクトルプロセッサ(CPU)3、3、…、3方向への信号の流れ(以下、メモリ制御部→CPU方向という)でも、8バイトロードデータと制御情報とで1パケットを構成しており、8バイトロードで、1パケット構成、16バイトロードで、2パケット構成となるようにしている。 Figure 6 is a vector processor (CPU) 3 1, 3 2, ..., and 3 n, the memory controller 4 1, 4 2, ..., interfaces detailed example between 4 m (in the form of a memory request) FIG. In the figure, an example of a packet configuration is shown in which control information (FIG. 3) generated by the control information generation circuit 39 of the memory access control unit 33 is attached to the memory access packet and carried. In the signal flow from the vector processors (CPUs) 3 1 , 3 2 ,..., 3 n to the memory access control unit 33 (hereinafter referred to as “CPU → memory control unit direction”), both 16-byte load and 8-byte load are the same. As shown in the figure, a data line of 1 packet width is used for address and control information, and in the case of store, a data line of 1 packet width is used for address and control information, and store data is also stored every 8 bytes. It is configured to add more packets. Therefore, in this example, the 16-byte store has a 3-packet configuration and the 8-byte store has a 2-packet configuration. Similarly, 8-byte load data and control information can be obtained even when the signal flow from the memory access controller 33 to the vector processors (CPUs) 3 1 , 3 2 ,..., 3 n (hereinafter referred to as memory controller → CPU direction). 1 packet is configured, and an 8-byte load has a 1-packet configuration and a 16-byte load has a 2-packet configuration.

次に、図2、図3、図7、図8及び図9を参照して、この例の動作(とくに、制御情報の作成方法)について説明する。
ベクトルロード/ストア命令は、ベースアドレスとディスタンス(距離)と要素数とによって決定される。
例えば、4ポート構成のポートキャッシュ36、36、…が、メモリアドレスによりインタリーブされている構成(図9)では、ベースアドレスが0、ディスタンスが8Bであると、データ(要素1、要素2、…)は、図7に示すように、VLD(Volatile Logical Destination、非蓄積型論理あて先)8バイトとびのインタリーブ配列で格納されることになる。このような格納構成では、キャッシュメモリの連続領域をロードすることになる。この場合、8バイトアクセスとしてメモリアクセスするよりも、16バイトアクセスとしてメモリアクセスした方がスループット上有利である。これは、図6のメモリリクエストの形式例で示すように、16バイトロードであれば、CPU→メモリ制御部方向のパケット構成は、16バイトあたり1パケットとなり、8バイトロードの場合の8バイト当たり1パケットに対し、2倍のスループットが確保できることになるからである。命令がストアであれば、16バイトストアで3パケットに対し、8バイトストアで2パケットであり、4/3倍のスループットが得られる。したがって、メモリアクセス制御部33は、ディスタンスが8Bを検出すると、16バイトアクセスに切り替える。さらに、このデータをポートキャッシュ36、36、…に登録した場合、連続する16バイトが常に有効なデータであるため、再利用する場合にもヒット率が向上する。
Next, the operation of this example (particularly, the method for creating control information) will be described with reference to FIG. 2, FIG. 3, FIG. 7, FIG.
The vector load / store instruction is determined by the base address, the distance (distance), and the number of elements.
For example, in a configuration in which port caches 36, 36,... Having a 4-port configuration are interleaved by memory addresses (FIG. 9), if the base address is 0 and the distance is 8B, data (element 1, element 2,. ) Is stored in a VLD (Volatile Logical Destination) 8-byte interleaved array, as shown in FIG. In such a storage configuration, a continuous area of the cache memory is loaded. In this case, it is more advantageous in terms of throughput to perform memory access as 16-byte access than to perform memory access as 8-byte access. As shown in the format example of the memory request in FIG. 6, if the load is 16 bytes, the packet configuration in the direction from the CPU to the memory control unit is 1 packet per 16 bytes, and per 8 bytes in the case of 8-byte load. This is because twice the throughput can be secured for one packet. If the instruction is a store, 3 packets in the 16-byte store and 2 packets in the 8-byte store, and 4/3 times the throughput can be obtained. Accordingly, when the distance is detected as 8B, the memory access control unit 33 switches to 16-byte access. Further, when this data is registered in the port caches 36, 36,..., The consecutive 16 bytes are always valid data, so that the hit rate is improved even when reused.

一方、ベースアドレスが0、ディスタンスが32Bであると、データ(要素1、要素2、…)は、図8に示すように、VLD32バイトとびのインタリーブ配列で格納されることになる。この格納構成では、同図から判るように、連続した16バイトに必要なデータが、16バイト分存在することは無い。この場合は、16バイトアクセスとしてメモリアクセスするよりも8バイトアクセスとしてメモリアクセスした方が、スループット上有利である。これは、図6のメモリリクエストの形式例で示すように、メモリ制御部→CPU方向のパケット構成は16バイトが2パケット、8バイトが1パケットとなるので、16バイトロードであれば、必要な8バイトを確保するために、不必要な8バイト分のデータ1パケットが存在する16バイトロードの方が、メモリスループット上不利益になる。さらに、データをキャッシュに登録した場合、16バイトラインサイズの中で有効データが8バイトしかなく、さらに、ポートキャッシュ36、36、…間で偏りができるためキャッシュを荒らすことになりヒット率が低下するため、ポートキャッシュ36、36、…に登録しないという判断も可能となる。   On the other hand, when the base address is 0 and the distance is 32B, the data (element 1, element 2,...) Is stored in an interleaved array of VLD 32 bytes as shown in FIG. In this storage configuration, as can be seen from the figure, there is no 16 bytes of data required for consecutive 16 bytes. In this case, it is more advantageous in terms of throughput to perform memory access as 8-byte access than memory access as 16-byte access. As shown in the format example of the memory request in FIG. 6, the packet structure in the memory control unit → CPU direction is 2 packets for 16 bytes and 1 packet for 8 bytes. In order to secure 8 bytes, a 16-byte load in which one unnecessary data packet for 8 bytes is present is disadvantageous in terms of memory throughput. In addition, when data is registered in the cache, there is only 8 bytes of valid data in the 16-byte line size, and furthermore, the port caches 36, 36,.. Therefore, it is possible to determine not to register in the port caches 36, 36,.

なお、4バンク構成のバンクキャッシュ43、43、…へのキャッシュ登録やメモリバンク(メモリ素子)24、24、…へのアクセス等についても、4ポート構成のポートキャッシュ36、36、…のキャッシュ動作で述べたと同様の動作であるので、その説明を省略する。これらのキャッシュやメモリバンクは、それぞれの命令によって最適な制御方法に設定されることができる。   The cache operation of the four-port port caches 36, 36,... Is also performed for the cache registration to the four-bank configuration caches 43, 43,... And the access to the memory banks (memory elements) 24, 24,. Since this is the same operation as described above, the description thereof is omitted. These caches and memory banks can be set to an optimum control method according to respective instructions.

このように、この例の構成によれば、キャッシュ制御やメモリアクセス制御を命令毎に最適に制御しているので、プロセッサとメモリ素子の性能差分を隠蔽でき、性能の向上化を図ることができる。加えて、キャッシュ制御やメモリアクセス制御を命令毎に最適に制御しているので、少ないハードウエア量でも性能を確保できる。   As described above, according to the configuration of this example, cache control and memory access control are optimally controlled for each instruction, so that the performance difference between the processor and the memory element can be concealed, and the performance can be improved. . In addition, since cache control and memory access control are optimally controlled for each instruction, performance can be secured even with a small amount of hardware.

図10は、この発明の第2実施例で適用される、ソフトウェア指示によるメモリアクセス制御例を示す概念図である。
この第2実施例の構成が、上述の第2実施例のそれと大きく異なるところは、メモリアクセス制御部33の制御情報生成回路39で生成する制御情報の内容及び生成方法に工夫を凝らして、ハードウエアでの切り替えのみならず、ソフトウエアによっても制御できるようにした点である。すなわち、この例では、図10に示すように、ロード/ストア命令に強制ポートキャッシュ登録やバンクキャッシュ登録、あるいは、強制16バイトロード、プリフェッチ指示等を指示するフラグが追加されている。
FIG. 10 is a conceptual diagram showing an example of memory access control by software instruction applied in the second embodiment of the present invention.
The configuration of the second embodiment is greatly different from that of the second embodiment described above. The contents of the control information generated by the control information generation circuit 39 of the memory access control unit 33 and the generation method are devised, and the hardware is This is the point that it can be controlled by software as well as switching by software. That is, in this example, as shown in FIG. 10, a flag indicating a forced port cache registration, a bank cache registration, a forced 16-byte load, a prefetch instruction, or the like is added to the load / store instruction.

この第2実施例の構成によれば、第1実施例の構成(制御情報)に拘わらず、ソフトウエア的に判断可能な再利用性の高いデータ(要素)に対して、強制的にキャッシュに登録できる等、容易に性能チューニングすることができる。   According to the configuration of the second embodiment, regardless of the configuration (control information) of the first embodiment, data (elements) with high reusability that can be determined by software is forced to be cached. You can easily tune performance by registering.

以上、この発明の実施例を図面を参照して詳述してきたが、具体的な構成はこの実施例に限られるものではなく、この発明の要旨を逸脱しない範囲の設計の変更等があってもこの発明に含まれる。例えば、上述の実施例では、ソフトウェア構成で、キャッシュに登録した方が良いか否かを判断して、制御情報の生成を行うようにしたが、これに限らず、jobによっては、ハードウエアモードによって制御情報の生成を切り替えるようにしても良い。また、上記以外の制御方法についても、ソフトウェア構成に限らず、ハードウェア構成によっても、最適な制御方法に設定するようにしても良い。キャッシュ制御やメモリアクセス制御をハードウエアモードやソフトウエアによって変更できるようにすれば、容易に性能のチューニングができる。   The embodiment of the present invention has been described in detail with reference to the drawings. However, the specific configuration is not limited to this embodiment, and there are design changes and the like without departing from the gist of the present invention. Are also included in the present invention. For example, in the above-described embodiment, it is determined whether or not it is better to register in the cache in the software configuration, and the control information is generated. However, not limited to this, depending on the job, the hardware mode The generation of control information may be switched by Further, control methods other than those described above are not limited to the software configuration, and may be set to an optimal control method depending on the hardware configuration. If cache control and memory access control can be changed by hardware mode and software, performance tuning can be easily performed.

また、この発明は、スカラ処理部から発行されるスカラ命令のメモリアクセスについても、ベクトル命令同様、メモリアクセス制御部にて制御情報の生成ができる。とくに、スカラ処理部に持つ、命令キャッシュ、オペランドキャッシュのキャッシュミス時のフィル動作についても、ベクトル命令のディスタンス8Bと同様に連続領域のメモリアクセスであるので、16バイト処理が可能である。さらに、ポートキャッシュを2次キャッシュとしても使用できる。
この際も、ハードウエアモードのみならず、ソフトウエア制御も行うことにより、性能チューニングも可能となる。関連してポートキャッシュをベクトル用のキャッシュとしてのみ動作、あるいは、スカラ処理用の2次キャッシュとしてのみ動作、あるいは、スカラ、ベクトル両方のキャッシュとして動作させる等、ハードウエアモードやソフトウエアでの制御も可能である。
Further, according to the present invention, control information can be generated by a memory access control unit for memory access of a scalar instruction issued from a scalar processing unit as well as a vector instruction. In particular, the fill operation at the time of cache miss in the instruction cache and operand cache in the scalar processing unit is a continuous area memory access as in the case of the distance 8B of the vector instruction, and therefore 16-byte processing is possible. Furthermore, the port cache can be used as a secondary cache.
In this case, performance tuning is also possible by performing not only the hardware mode but also software control. Relatedly, the port cache operates only as a vector cache, or operates only as a secondary cache for scalar processing, or operates as both a scalar and vector cache. Is possible.

この発明は、高速演算装置(スーパコンピュータ)や高速画像処理システム(スーパCAD)等に適用できる。   The present invention can be applied to a high-speed arithmetic device (super computer), a high-speed image processing system (super CAD), and the like.

この発明の第1実施例であるベクトル処理装置(マルチベクトルプロセッサシステム)の電気的構成を示すブロック図である。1 is a block diagram showing an electrical configuration of a vector processing apparatus (multi-vector processor system) according to a first embodiment of the present invention. 同ベクトル処理装置のベクトルプロセッサを構成するメモリアクセス制御部の詳細な電気的構成を示すブロック図である。It is a block diagram which shows the detailed electrical structure of the memory access control part which comprises the vector processor of the vector processing apparatus. 同メモリアクセス制御部の制御情報生成回路で生成される各種制御情報例を示す概念図である。It is a conceptual diagram which shows the example of various control information produced | generated by the control information production | generation circuit of the memory access control part. 同ベクトル処理装置のベクトルプロセッサを構成するポートキャッシュの詳細な電気的構成を示すブロック図である。It is a block diagram which shows the detailed electrical structure of the port cache which comprises the vector processor of the vector processing apparatus. 同ベクトル処理装置のメモリ制御部を構成するバンクキャッシュの詳細な電気的構成を示すブロック図である。It is a block diagram which shows the detailed electrical structure of the bank cache which comprises the memory control part of the vector processing apparatus. 同ベクトル処理装置における、ベクトルプロセッサ(CPU)とメモリ制御部との間のインタフェースの詳細例(メモリリクエストの形式例)を示す概念図である。It is a conceptual diagram which shows the detailed example (format example of a memory request) of the interface between a vector processor (CPU) and a memory control part in the vector processing apparatus. 同ベクトル処理装置の動作(制御情報の作成方法)の説明に供される図で、データがインタリーブされて、4ポート構成のポートキャッシュに格納されている状態を示す概念図である。It is a figure used for description of the operation | movement (control information creation method) of the vector processing apparatus, and is a conceptual diagram showing a state in which data is interleaved and stored in a port cache having a 4-port configuration. 同ベクトル処理装置の動作(制御情報の作成方法)の説明に供される図で、データがインタリーブされて、4ポート構成のポートキャッシュに格納されている状態を示す概念図である。It is a figure used for description of the operation | movement (control information creation method) of the vector processing apparatus, and is a conceptual diagram showing a state in which data is interleaved and stored in a port cache having a 4-port configuration. 同ベクトル処理装置の動作(メモリインタリーブ例)の説明に供される概念図である。It is a conceptual diagram with which it uses for description of operation | movement (memory interleaving example) of the vector processing apparatus. この発明の第2実施例で適用される、ソフトウェア指示によるメモリアクセス制御例を示す概念図である。It is a conceptual diagram which shows the example of memory access control by a software instruction | indication applied in 2nd Example of this invention. 従来のベクトル処理装置の電気的構成を示すブロック図である。It is a block diagram which shows the electric constitution of the conventional vector processing apparatus.

、3、…、3 ベクトルプロセッサ(CPU)
31 スカラ処理部
32 ベクトル処理部
33 メモリアクセス制御部
37 メモリリクエスト生成部
38 メモリアドレス生成部
39 制御情報生成回路
34 クロスバスイッチ
35 ベクトルレジスタ
36 ポートキャッシュ
、4、…、4 メモリ制御部
41 クロスバスイッチ
42 バンク制御部
43 バンクキャッシュ
44 メモリバンク
、Q、Q、Q メモリアクセスポート
、P、P、P メモリポート
3 1 , 3 2 ,..., 3 n vector processor (CPU)
31 scalar processing unit 32 vector processing unit 33 memory access control unit 37 memory request generation unit 38 memory address generation unit 39 control information generation circuit 34 crossbar switch 35 vector register 36 port cache 4 1 , 4 2 ,..., 4 m memory control unit 41 Crossbar Switch 42 Bank Control Unit 43 Bank Cache 44 Memory Bank Q 0 , Q 1 , Q 2 , Q 3 Memory Access Port P 0 , P 1 , P 2 , P 3 Memory Port

Claims (12)

ベクトルプロセッサを備えるベクトル処理装置であって、
前記ベクトルプロセッサは、制御情報手段と、メモリポート単位に搭載された複数のポートキャッシュとを有し、
前記制御情報手段は、命令種別と、少なくともベースアドレス、ディスタンス、及び要素数からなる命令内容とに基づいて、キャッシュ登録に関する制御情報を生成すると共に、前記各ポートキャッシュは、前記制御情報手段によって生成された前記制御情報に基づいて、登録サイズを切り替えることを特徴とするベクトル処理装置。
A vector processing device comprising a vector processor,
The vector processor has control information means and a plurality of port caches mounted on a memory port basis,
The control information means generates control information related to cache registration based on an instruction type and an instruction content including at least a base address, a distance, and the number of elements, and each port cache is generated by the control information means. A vector processing apparatus that switches a registered size based on the control information.
ベクトルプロセッサとメモリ制御部とを備えるベクトル処理装置であって、
前記ベクトルプロセッサは、命令種別と、少なくともベースアドレス、ディスタンス、及び要素数からなる命令内容とに基づいて、キャッシュ登録に関する制御情報を生成する制御情報手段を有すると共に、前記メモリ制御部は、バンク単位に搭載されたバンクキャッシュを有し、
前記各バンクキャッシュは、前記制御情報手段によって生成された前記制御情報に基づいて、登録サイズを切り替えることを特徴とするベクトル処理装置。
A vector processing device comprising a vector processor and a memory control unit,
The vector processor has control information means for generating control information related to cache registration based on an instruction type and an instruction content including at least a base address, a distance, and the number of elements, and the memory control unit includes a bank unit Has a bank cash installed in
Each of the bank caches switches a registered size based on the control information generated by the control information means.
前記制御情報手段は、命令種別と、少なくともベースアドレス、ディスタンス、及び要素数からなる命令内容とに基づいて、指示フラグを用いてキャッシュ登録に関する制御情報を生成することを特徴とする請求項記載のベクトル処理装置。 The control information unit includes an instruction type, at least the base address, distance, and based on the contents of a command consisting of number of elements, according to claim 1, wherein the generating control information about the cache register with the indication flag Vector processing equipment. 前記制御情報手段は、命令種別と、少なくともベースアドレス、ディスタンス、及び要素数からなる命令内容とに基づいて、指示フラグを用いてキャッシュ登録に関する制御情報を生成することを特徴とする請求項記載のベクトル処理装置。 The control information unit includes an instruction type, at least the base address, distance, and based on the contents of a command consisting of number of elements, according to claim 2, wherein the generating control information about the cache register with the indication flag Vector processing equipment. ハードウエアモードにより、前記制御情報の有効、無効を切り替える機能を備えてなることを特徴とする請求項1乃至の何れか1つに記載のベクトル処理装置。 By hardware mode, vector processing apparatus according to valid, any one of claims 1 to 4, characterized in that it comprises a function of switching disabling of the control information. ソフトウエア指示又はハードウエアモードにより、前記制御情報をベクトル命令のみ、スカラ命令のみ、及びベクトル命令/スカラ命令両方のうちの何れかに切り替える手段を有してなることを特徴とする請求項1乃至の何れか1つに記載のベクトル処理装置。 2. The apparatus according to claim 1, further comprising means for switching the control information to only one of a vector instruction, only a scalar instruction, and both a vector instruction / scalar instruction in accordance with a software instruction or a hardware mode. 5. The vector processing device according to any one of 4 . 複数のベクトルプロセッサと複数のメモリ制御部とが、クロスバスイッチ網によって結合されているベクトル処理システムであって、
前記ベクトルプロセッサは、制御情報手段と、メモリポート単位に搭載された複数のポートキャッシュとを有し、
前記制御情報手段は、命令種別と、少なくともベースアドレス、ディスタンス、及び要素数からなる命令内容とに基づいて、キャッシュ登録に関する制御情報を生成すると共に、前記各ポートキャッシュは、前記制御情報手段によって生成された前記制御情報に基づいて、キャッシュ登録有無、又は/及び登録サイズを切り替えることを特徴とするベクトル処理システム。
A vector processing system in which a plurality of vector processors and a plurality of memory control units are coupled by a crossbar switch network,
The vector processor has control information means and a plurality of port caches mounted on a memory port basis,
The control information means generates control information related to cache registration based on an instruction type and an instruction content including at least a base address, a distance, and the number of elements, and each port cache is generated by the control information means. A vector processing system characterized by switching cache presence / absence or / and registration size based on the control information.
複数のベクトルプロセッサと複数のメモリ制御部とが、クロスバスイッチ網によって結合されているベクトル処理システムであって、
前記ベクトルプロセッサは、命令種別と、少なくともベースアドレス、ディスタンス、及び要素数からなる命令内容とに基づいて、キャッシュ登録に関する制御情報を生成する制御情報手段を有すると共に、前記メモリ制御部は、バンク単位に搭載されたバンクキャッシュを有し、
前記各バンクキャッシュは、前記制御情報手段によって生成された前記制御情報に基づいて、キャッシュ登録有無、又は/及び登録サイズを切り替えることを特徴とするベクトル処理システム。
A vector processing system in which a plurality of vector processors and a plurality of memory control units are coupled by a crossbar switch network,
The vector processor has control information means for generating control information related to cache registration based on an instruction type and an instruction content including at least a base address, a distance, and the number of elements, and the memory control unit includes a bank unit Has a bank cash installed in
Each of the bank caches switches between the presence / absence of cache registration and / or the registration size based on the control information generated by the control information means.
前記制御情報手段は、命令種別と、少なくともベースアドレス、ディスタンス、及び要素数からなる命令内容とに基づいて、指示フラグを用いてキャッシュ登録に関する制御情報を生成することを特徴とする請求項記載のベクトル処理システム。 The control information unit includes an instruction type, at least the base address, distance, and based on the contents of a command consisting of number of elements, according to claim 7, wherein the generating control information about the cache register with the indication flag Vector processing system. 前記制御情報手段は、命令種別と、少なくともベースアドレス、ディスタンス、及び要素数からなる命令内容とに基づいて、指示フラグを用いてキャッシュ登録に関する制御情報を生成することを特徴とする請求項記載のベクトルシステム。 The control information unit includes an instruction type, at least the base address, distance, and based on the contents of a command consisting of number of elements, according to claim 8, wherein the generating control information about the cache register with the indication flag Vector system. ハードウエアモードにより、前記制御情報の有効、無効を切り替える機能を備えてなることを特徴とする請求項乃至10の何れか1つに記載のベクトル処理システム。 The vector processing system according to any one of claims 7 to 10 , further comprising a function of switching between valid and invalid of the control information according to a hardware mode. ソフトウエア指示又はハードウエアモードにより、前記制御情報をベクトル命令のみ、スカラ命令のみ、及びベクトル命令/スカラ命令両方のうちの何れかに切り替える手段を有してなることを特徴とする請求項乃至10の何れか1つに記載のベクトル処理システム。 By software instructions or a hardware mode, the control information only vector instruction, the scalar instruction only, and to claim 7, characterized by comprising a means for switching to one of both vector instruction / scalar instructions The vector processing system according to any one of 10 .
JP2007094861A 2007-03-30 2007-03-30 Vector processing apparatus and vector processing system Expired - Fee Related JP5223220B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007094861A JP5223220B2 (en) 2007-03-30 2007-03-30 Vector processing apparatus and vector processing system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007094861A JP5223220B2 (en) 2007-03-30 2007-03-30 Vector processing apparatus and vector processing system

Publications (2)

Publication Number Publication Date
JP2008250926A JP2008250926A (en) 2008-10-16
JP5223220B2 true JP5223220B2 (en) 2013-06-26

Family

ID=39975747

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007094861A Expired - Fee Related JP5223220B2 (en) 2007-03-30 2007-03-30 Vector processing apparatus and vector processing system

Country Status (1)

Country Link
JP (1) JP5223220B2 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011033862A1 (en) * 2009-09-15 2011-03-24 日本電気株式会社 Information processing device and data transfer method
JP5477267B2 (en) * 2010-12-01 2014-04-23 日本電気株式会社 Information processing apparatus and information processing method

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2311882B (en) * 1996-04-04 2000-08-09 Videologic Ltd A data processing management system
JP3770091B2 (en) * 2001-02-09 2006-04-26 日本電気株式会社 Cache control method and cache control circuit
JP3789316B2 (en) * 2001-05-15 2006-06-21 エヌイーシーコンピュータテクノ株式会社 Routing address generation method for vector processor
JP4068828B2 (en) * 2001-10-25 2008-03-26 株式会社ルネサステクノロジ Integrated separation-type switching cache memory and processor system having the cache memory

Also Published As

Publication number Publication date
JP2008250926A (en) 2008-10-16

Similar Documents

Publication Publication Date Title
US12072812B2 (en) Highly integrated scalable, flexible DSP megamodule architecture
EP3885918B1 (en) System, apparatus and method for performing a remote atomic operation via an interface
US10365930B2 (en) Instructions for managing a parallel cache hierarchy
JP3717212B2 (en) Information processing apparatus and information processing unit
US7941585B2 (en) Local scratchpad and data caching system
US9239791B2 (en) Cache swizzle with inline transposition
US7908439B2 (en) Method and apparatus for efficient replacement algorithm for pre-fetcher oriented data cache
JP4451717B2 (en) Information processing apparatus and information processing method
JP3425158B2 (en) Computer system with multi-buffer data cache
EP3695318B1 (en) Servicing cpu demand requests with inflight prefetches
JP2010507160A (en) Processing of write access request to shared memory of data processor
JPH06266616A (en) Memory access controller
KR101639943B1 (en) Shared memory control method for facilitating shared memory of general purpose graphic processor as cache and general purpose graphic processor using same
US20090259813A1 (en) Multi-processor system and method of controlling the multi-processor system
US9557936B2 (en) Protection of memories, datapath and pipeline registers, and other storage elements by distributed delayed detection and correction of soft errors
JP2014115851A (en) Data processing device and method of controlling the same
JP2005536798A (en) Processor prefetching that matches the memory bus protocol characteristics
JP5223220B2 (en) Vector processing apparatus and vector processing system
JP5630568B2 (en) Arithmetic processing apparatus, information processing apparatus, and control method for arithmetic processing apparatus
JP5071977B2 (en) System and method for managing cache memory
JP3718667B2 (en) Information processing apparatus and information processing unit
US9201655B2 (en) Method, computer program product, and hardware product for eliminating or reducing operand line crossing penalty
JP2014048829A (en) Arithmetic processing device and method of controlling arithmetic processing device
JP5724981B2 (en) Memory access control device, memory access control system, and memory access control method
JP2008305082A (en) Memory system

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100302

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120920

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20121002

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20121129

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20130212

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130225

R150 Certificate of patent or registration of utility model

Ref document number: 5223220

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20160322

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees