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
JP5477267B2 - Information processing apparatus and information processing method - Google Patents
[go: Go Back, main page]

JP5477267B2 - Information processing apparatus and information processing method - Google Patents

Information processing apparatus and information processing method Download PDF

Info

Publication number
JP5477267B2
JP5477267B2 JP2010268337A JP2010268337A JP5477267B2 JP 5477267 B2 JP5477267 B2 JP 5477267B2 JP 2010268337 A JP2010268337 A JP 2010268337A JP 2010268337 A JP2010268337 A JP 2010268337A JP 5477267 B2 JP5477267 B2 JP 5477267B2
Authority
JP
Japan
Prior art keywords
memory
instruction
memory access
information processing
access
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
JP2010268337A
Other languages
Japanese (ja)
Other versions
JP2012118786A (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 JP2010268337A priority Critical patent/JP5477267B2/en
Publication of JP2012118786A publication Critical patent/JP2012118786A/en
Application granted granted Critical
Publication of JP5477267B2 publication Critical patent/JP5477267B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)

Description

本発明は、情報処理装置及び情報処理方法に関する。   The present invention relates to an information processing apparatus and an information processing method.

情報処理装置の一種に、キャッシュメモリを有するプロセッサと、1以上のメモリバンクで構成された主記憶と、プロセッサと主記憶とを接続するネットワークと、を備え、メモリアクセス命令として、ベクトルロード命令やベクトルギャザー命令などのベクトル命令を命令セットに含むものがある。   A type of information processing apparatus includes a processor having a cache memory, a main memory composed of one or more memory banks, and a network connecting the processor and the main memory. Some include vector instructions such as vector gather instructions in the instruction set.

ベクトルロード命令は、命令コードと、書き込みベクトルレジスタと、開始アドレスと、ディスタンス(要素間距離)と、を備えて構成され、キャッシュメモリ又は主記憶に記憶された要素データのうち、要素間距離で指定したアドレス間隔で記憶された複数の要素データを、1命令でロードできるようになっている。   The vector load instruction includes an instruction code, a write vector register, a start address, and a distance (inter-element distance). The inter-element distance of the element data stored in the cache memory or the main memory. A plurality of element data stored at specified address intervals can be loaded with one instruction.

ベクトルギャザー命令は、命令コードと、書き込みベクトルレジスタと、各要素のアドレスと、を備えて構成され、キャッシュメモリ又は主記憶に記憶された要素データのうち、各要素のアドレスに記憶された複数の要素データを、1命令でロードできるようになっている。   The vector gather instruction includes an instruction code, a write vector register, and an address of each element. Among the element data stored in the cache memory or the main memory, a plurality of element data stored in the address of each element. Element data can be loaded with one instruction.

プロセッサの命令発行制御部がベクトル命令をデコードすると、アクセス対象となる要素データごとに1つのメモリアクセスリクエストを生成し、発行する。その際、複数のポートから同時に発行することでバンド幅を稼ぐ方法が知られているが、同一メモリバンクへと向かう複数のメモリアクセスリクエストが競合して、性能が低下する可能性がある。こういった同一メモリバンクへ向かうメモリアクセスリクエストの競合を回避するために、同一バンクへ向かうメモリアクセスリクエストを圧縮して発行する方法がとられている(例えば特許文献1参照)。   When the instruction issue control unit of the processor decodes the vector instruction, one memory access request is generated and issued for each element data to be accessed. At this time, there is known a method of increasing the bandwidth by issuing simultaneously from a plurality of ports. However, there is a possibility that a plurality of memory access requests directed to the same memory bank compete with each other and the performance is deteriorated. In order to avoid such competition of memory access requests directed to the same memory bank, a method of compressing and issuing a memory access request directed to the same bank is used (see, for example, Patent Document 1).

また、通常、キャッシュメモリを備えた情報処理装置では、キャッシュライン単位でメモリバンクごとにメモリインターリーブされており、一般的に、キャッシュライン単位でロードを行うメモリアクセスリクエストを発行する。なぜなら、局所性の原理のために、必要なデータの近傍のデータをまとめてロードしキャッシュメモリに記憶することで、次の命令を処理する際のキャッシュヒットを期待するからである。   In general, an information processing apparatus including a cache memory is memory interleaved for each memory bank in units of cache lines, and generally issues a memory access request for loading in units of cache lines. This is because, due to the principle of locality, data in the vicinity of necessary data is loaded together and stored in the cache memory, thereby expecting a cache hit when the next instruction is processed.

この仕組みはキャッシュヒット率を向上させるメリットが得られる一方で、キャッシュメモリに記憶しない命令を発行する際には、不要なデータまで読み出すデメリットを抱えている。この問題を解決するために、キャッシュメモリが無効なときには、ワード単位のキャッシュバイパスリクエストを発行する方法がとられている(例えば特許文献2参照)。   While this mechanism has the advantage of improving the cache hit rate, it has the disadvantage of reading even unnecessary data when issuing instructions that are not stored in the cache memory. In order to solve this problem, when the cache memory is invalid, a method of issuing a cache bypass request in units of words is used (see, for example, Patent Document 2).

特開2010−218350号公報JP 2010-218350 A 特開2001−154914号公報JP 2001-154914 A

上述した特許文献1に例示されるように、キャッシュライン中の複数の要素データをアクセスする命令の実行性能を向上する方法として、同一メモリバンクをアクセスするメモリアクセスリクエストを圧縮して、キャッシュライン単位のメモリアクセスリクエストを発行する方法がある。   As exemplified in Patent Document 1 described above, as a method for improving the execution performance of an instruction for accessing a plurality of element data in a cache line, a memory access request for accessing the same memory bank is compressed and cache line units are compressed. There is a method of issuing a memory access request.

しかしながら、この方法では、キャッシュメモリが無効な状態でキャッシュライン中の有効要素数が少ないときには、多くの不要なデータを読み出してしまい、ロード実行性能を圧迫する。   However, in this method, when the cache memory is invalid and the number of valid elements in the cache line is small, a lot of unnecessary data is read, and the load execution performance is reduced.

一方で、上述した特許文献2に例示されるように、キャッシュメモリが無効なときの不要なデータの読み出しを避けるために、ワード単位のキャッシュバイパスリクエストを発行する方法がある。   On the other hand, as exemplified in Patent Document 2 described above, there is a method of issuing a cache bypass request in units of words in order to avoid reading unnecessary data when the cache memory is invalid.

しかしながら、この方法では同一メモリバンクへのアクセスが競合し、効率的ではない。   However, this method is not efficient because access to the same memory bank competes.

そこで本発明の目的は、これらの問題を解決し、キャッシュメモリが無効な状態でキャッシュライン中の複数の要素データをアクセスするロード命令に関して、その実行性能を向上できる情報処理装置及び情報処理方法を提供することである。   Accordingly, an object of the present invention is to provide an information processing apparatus and information processing method that can solve these problems and improve the execution performance of a load instruction that accesses a plurality of element data in a cache line while the cache memory is invalid. Is to provide.

本発明の第一の態様に係る情報処理装置は、キャッシュメモリを有するプロセッサと、1以上のメモリバンクで構成された主記憶と、前記プロセッサと前記主記憶とを接続するネットワークとを備え、前記主記憶に記憶された要素データのうち、命令で指定された複数の要素データを1命令でアクセスできるメモリアクセス命令を命令セットに含み、前記プロセッサは、前記メモリアクセス命令に従って前記主記憶にアクセスする場合に、前記メモリアクセス命令ごとに指定されたキャッシュラインの有効/無効と、当該キャッシュライン中における要素データの有効な数又は位置の少なくとも1つと、に基づいてアクセス対象バンクへの最適なアクセス単位を判定し、当該判定したアクセス単位でメモリアクセスリクエストを生成し、発行するメモリアクセスリクエスト生成発行手段を備えることを特徴とするものである。   An information processing apparatus according to a first aspect of the present invention includes a processor having a cache memory, a main memory composed of one or more memory banks, and a network connecting the processor and the main memory, Among the element data stored in the main memory, the instruction set includes a memory access instruction that can access a plurality of element data specified by the instruction with one instruction, and the processor accesses the main memory according to the memory access instruction. In this case, the optimum access unit to the bank to be accessed based on the validity / invalidity of the cache line designated for each memory access instruction and at least one of the valid number or position of the element data in the cache line Generate a memory access request for the determined access unit and issue it Is characterized in further comprising a memory access request generating issuing means that.

これにより、最適なメモリアクセス単位を判定し、メモリアクセス単位を切り替えてメモリアクセスリクエストを生成・発行することで、キャッシュメモリが無効な状態でキャッシュライン中の複数の要素データをアクセスするロード命令に関して、その実行性能を向上できる。   As a result, the optimum memory access unit is determined, the memory access unit is switched, and a memory access request is generated / issued, whereby the load instruction for accessing a plurality of element data in the cache line in a state where the cache memory is invalid The execution performance can be improved.

本発明の第二の態様に係る情報処理方法は、情報処理装置における情報処理方法であって、前記情報処理装置は、キャッシュメモリを有するプロセッサと、1以上のメモリバンクで構成された主記憶と、前記プロセッサと前記主記憶とを接続するネットワークとを備え、前記主記憶に記憶された要素データのうち、命令で指定された複数の要素データを1命令でアクセスできるメモリアクセス命令を命令セットに含み、前記プロセッサは、前記メモリアクセス命令に従って前記主記憶にアクセスする場合に、前記メモリアクセス命令ごとに指定されたキャッシュラインの有効/無効を判定するステップと、前記キャッシュライン中における要素データの有効な数又は位置の少なくとも1つと、に基づいてアクセス対象バンクへの最適なアクセス単位を判定するステップと、前記判定したアクセス単位でメモリアクセスリクエストを生成し、発行するステップと、を有することを特徴とするものである。   An information processing method according to a second aspect of the present invention is an information processing method in an information processing apparatus, wherein the information processing apparatus includes a processor having a cache memory, and a main memory including one or more memory banks. And a network connecting the processor and the main memory, and among the element data stored in the main memory, a memory access instruction that can access a plurality of element data designated by the instruction with one instruction in an instruction set The processor determines whether the cache line specified for each memory access instruction is valid / invalid when accessing the main memory according to the memory access instruction; and the validity of element data in the cache line Access to the bank to be accessed based on at least one of Determining a unit, the generating a memory access request with the determined access unit, it is characterized in that it has the steps of: issuing.

これにより、最適なメモリアクセス単位を判定し、メモリアクセス単位を切り替えてメモリアクセスリクエストを生成・発行することで、キャッシュメモリが無効な状態でキャッシュライン中の複数の要素データをアクセスするロード命令に関して、その実行性能を向上できる。   As a result, the optimum memory access unit is determined, the memory access unit is switched, and a memory access request is generated / issued, whereby the load instruction for accessing a plurality of element data in the cache line in a state where the cache memory is invalid The execution performance can be improved.

本発明によれば、キャッシュメモリが無効な状態でキャッシュライン中の複数の要素データをアクセスするロード命令に関して、その実行性能を向上できる情報処理装置及び情報処理方法を提供することができる。   According to the present invention, it is possible to provide an information processing apparatus and an information processing method capable of improving the execution performance of a load instruction that accesses a plurality of element data in a cache line when the cache memory is invalid.

実施の形態1に係る情報処理装置の構成図である。1 is a configuration diagram of an information processing apparatus according to Embodiment 1. FIG. 実施の形態1に係る命令発行制御部の動作を示すフローチャートである。3 is a flowchart showing an operation of an instruction issuance control unit according to the first embodiment. 実施の形態1に係るメモリアクセス単位判定部の動作を示すフローチャートである。4 is a flowchart showing an operation of a memory access unit determination unit according to the first embodiment. 実施の形態1に係るメモリアクセス単位の判定方法の具体例を示す図である。6 is a diagram showing a specific example of a method for determining a memory access unit according to the first embodiment. FIG. 実施の形態1に係るメモリアクセス単位判定部の動作を示すフローチャートである。4 is a flowchart showing an operation of a memory access unit determination unit according to the first embodiment. 実施の形態1に係るメモリアクセス単位の判定方法の具体例を示す図である。6 is a diagram showing a specific example of a method for determining a memory access unit according to the first embodiment. FIG. 本発明の原理を説明するための図である。It is a figure for demonstrating the principle of this invention.

本発明の実施の形態について説明するのに先立ち、図7を参照して本発明の原理について説明する。   Prior to describing the embodiment of the present invention, the principle of the present invention will be described with reference to FIG.

図に示すように、情報処理装置400は、キャッシュメモリを有するプロセッサ410と、1以上のメモリバンクで構成された主記憶420と、プロセッサ410と主記憶420とを接続するネットワーク430とを備える。また、情報処理装置400は、主記憶420に記憶された要素データのうち、命令で指定された複数の要素データを1命令でアクセスできるメモリアクセス命令を命令セットに含む。   As shown in the figure, the information processing apparatus 400 includes a processor 410 having a cache memory, a main memory 420 composed of one or more memory banks, and a network 430 connecting the processor 410 and the main memory 420. In addition, the information processing apparatus 400 includes, in the instruction set, a memory access instruction that can access a plurality of element data designated by the instruction with one instruction among the element data stored in the main memory 420.

プロセッサ410は、メモリアクセス命令に従って主記憶420にアクセスする場合に、メモリアクセス命令ごとに指定されたキャッシュラインの有効/無効と、そのキャッシュライン中における要素データの有効な数又は位置の少なくとも1つと、に基づいてアクセス対象バンクへの最適なアクセス単位を判定し、その判定したアクセス単位でメモリアクセスリクエストを生成し、発行するメモリアクセスリクエスト生成発行手段440を備えることを特徴とする。   When the processor 410 accesses the main memory 420 according to the memory access instruction, the valid / invalid of the cache line specified for each memory access instruction and at least one of the valid number or position of the element data in the cache line The memory access request generating / issuing means 440 is provided for determining an optimal access unit to the access target bank based on the above, generating a memory access request in the determined access unit, and issuing the memory access request.

これにより、最適なメモリアクセス単位を判定し、メモリアクセス単位を切り替えてメモリアクセスリクエストを生成・発行することで、キャッシュメモリが無効な状態でキャッシュライン中の複数の要素データをアクセスするロード命令に関して、その実行性能を向上できる。   As a result, the optimum memory access unit is determined, the memory access unit is switched, and a memory access request is generated / issued, whereby the load instruction for accessing a plurality of element data in the cache line in a state where the cache memory is invalid The execution performance can be improved.

実施の形態1.
以下、図面を参照して本発明の実施の形態について説明する。
図1は、本実施の形態に係る情報処理装置の構成を示す図である。
図に示す様に、情報処理装置1は、プロセッサ100と、ネットワーク200と、主記憶300と、を備えて構成されている。
Embodiment 1 FIG.
Embodiments of the present invention will be described below with reference to the drawings.
FIG. 1 is a diagram showing a configuration of the information processing apparatus according to the present embodiment.
As illustrated, the information processing apparatus 1 includes a processor 100, a network 200, and a main memory 300.

本実施の形態に係る情報処理装置1は、メモリアクセス命令を含む命令セットを有している。メモリアクセス命令は、複数の要素データを1命令でアクセスできるものであり、例えば、ベクトルロード命令やベクトルギャザー命令などである。また、情報処理装置1は、キャッシュメモリの有効/無効を、ソフトウェアを用いて指示する仕組みを備えている。   The information processing apparatus 1 according to the present embodiment has an instruction set including a memory access instruction. The memory access instruction can access a plurality of element data with one instruction, and is, for example, a vector load instruction or a vector gather instruction. The information processing apparatus 1 also has a mechanism for instructing the validity / invalidity of the cache memory using software.

プロセッサ100は、演算部110と、命令発行制御部120と、複数のリクエストポート130と、複数のリプライポート140と、キャッシュメモリ(不図示)と、を備えている。本実施の形態では、キャッシュメモリのラインサイズは64Byteとする。   The processor 100 includes a calculation unit 110, an instruction issuance control unit 120, a plurality of request ports 130, a plurality of reply ports 140, and a cache memory (not shown). In this embodiment, the line size of the cache memory is 64 bytes.

演算部110は、レジスタ111に格納されたデータを用いて演算を行う。   The operation unit 110 performs an operation using the data stored in the register 111.

命令発行制御部120は、プログラム(不図示)の命令を実行順にデコードして、実行に必要な信号を発行する仕組みを備えている。また、命令発行制御部120は、圧縮可否判定部121と、メモリアクセスリクエスト生成発行部122と、を備えている。   The instruction issue control unit 120 has a mechanism for decoding instructions of a program (not shown) in the order of execution and issuing signals necessary for execution. The instruction issuance control unit 120 includes a compressibility determination unit 121 and a memory access request generation / issuance unit 122.

圧縮可否判定部121は、デコードされた命令がベクトルロード命令などのメモリアクセス命令であった場合に、メモリバンク320のメモリインターリーブ幅内の複数の要素データをアクセスするか否か、を判定する手段である。   The compressibility determination unit 121 determines whether to access a plurality of element data within the memory interleave width of the memory bank 320 when the decoded instruction is a memory access instruction such as a vector load instruction. It is.

メモリアクセスリクエスト生成発行部122は、メモリバンク320の幅単位でメモリアクセスリクエストを生成し、リクエストポート130へと発行する部分である。メモリアクセスリクエスト生成発行部122は、アドレス計算部123と、ゾーン情報生成部124と、メモリアクセス単位判定部125と、リクエストパケット生成部126と、を備えている。   The memory access request generation / issuance unit 122 is a part that generates a memory access request in units of the width of the memory bank 320 and issues it to the request port 130. The memory access request generation / issuance unit 122 includes an address calculation unit 123, a zone information generation unit 124, a memory access unit determination unit 125, and a request packet generation unit 126.

アドレス計算部123は、デコードされた命令に基づき、アクセス対象となるメモリバンク320について、そのバンクの先頭アドレスを算出する部分である。   The address calculation unit 123 is a part that calculates the start address of the memory bank 320 to be accessed based on the decoded instruction.

ゾーン情報生成部124は、デコードされた命令に基づき、ゾーン情報を生成する部分である。ゾーン情報は、バンク内のアクセス対象とする要素データを指定する情報であり、メモリインターリーブ幅内に含まれる要素データに1対1に対応している。   The zone information generation unit 124 is a part that generates zone information based on the decoded instruction. The zone information is information for designating element data to be accessed in the bank, and corresponds one-to-one with the element data included in the memory interleave width.

メモリアクセス単位判定部125は、キャッシュの有効/無効指示と、ゾーン情報生成部123にて生成したゾーン情報と、に基づいて、各メモリアクセスリクエストの最適なメモリアクセス単位を判定する部分である。メモリアクセス単位判定部125は、各メモリアクセスリクエストがアクセスするメモリバンク320中の要素データについて、その要素データの有効な数または位置を、ゾーン情報を参照して調べ、その結果に応じて、最適なメモリアクセス単位を判定する。   The memory access unit determination unit 125 is a part that determines the optimum memory access unit for each memory access request based on the cache valid / invalid instruction and the zone information generated by the zone information generation unit 123. The memory access unit determination unit 125 checks the effective number or position of the element data with respect to the element data in the memory bank 320 accessed by each memory access request with reference to the zone information. The correct memory access unit.

リクエストパケット生成部126は、命令種別とメモリアクセス単位判定部125の判定結果に基づいて、各メモリバンク320をアクセスするリクエストコマンドを生成する機能を有する。また、リクエストパケット生成部126は、生成したコマンドに加えて、リクエスト識別に必要な情報と、ゾーン情報生成部124にて生成したゾーン情報と、アドレス計算部123にて算出した先頭アドレスと、を合わせて、各メモリアクセスリクエストに対応したリクエストパケットを生成する部分である。   The request packet generation unit 126 has a function of generating a request command for accessing each memory bank 320 based on the instruction type and the determination result of the memory access unit determination unit 125. Further, the request packet generation unit 126 includes, in addition to the generated command, information necessary for request identification, zone information generated by the zone information generation unit 124, and a head address calculated by the address calculation unit 123. In addition, it is a part that generates a request packet corresponding to each memory access request.

リプライポート140は、ネットワーク200を通して主記憶300から転送されたリプライデータを受け取り、レジスタ111へと転送する部分である。   The reply port 140 is a part that receives reply data transferred from the main memory 300 through the network 200 and transfers it to the register 111.

ネットワーク200は、プロセッサ100と主記憶300との間を接続するクロスバスイッチなどを用いて構成されている。ネットワーク200は、プロセッサ100から発行されたメモリアクセスリクエストを、そのリクエストパケット内のアドレスを参照して、該当するメモリバンク320に対応するメモリポート310へと転送する機能や、主記憶300から読み出したデータをリプライポート140へと転送する機能を備えている。   The network 200 is configured using a crossbar switch or the like that connects the processor 100 and the main memory 300. The network 200 reads out a memory access request issued from the processor 100 from the main memory 300 or a function of transferring the memory access request to the memory port 310 corresponding to the corresponding memory bank 320 with reference to the address in the request packet. A function of transferring data to the reply port 140 is provided.

主記憶300は、バンク0からバンクNまでの複数のメモリバンク320と、各メモリバンク320に対応するメモリポート310と、を備えて構成されている。本実施の形態では、メモリアクセスの最小単位である要素データのサイズは8Byte、各メモリバンク320に対応するメモリインターリーブ幅はキャッシュラインと同じ64Byteである。また、メモリインターリーブを行うために、複数のメモリバンク320に対して、連続したアドレスを交互に割り当てている(例えば、アドレス0〜63をバンク0に割り当て、アドレス64〜127をバンク1に割り当てる。)。主記憶300は、受け取ったリクエストパケットを参照して、メモリバンク320からデータを読み出し、ネットワーク200を通して、リプライポート140にデータを送信する機能を有する。   The main memory 300 includes a plurality of memory banks 320 from bank 0 to bank N, and a memory port 310 corresponding to each memory bank 320. In this embodiment, the size of element data, which is the minimum unit of memory access, is 8 bytes, and the memory interleave width corresponding to each memory bank 320 is 64 bytes, which is the same as the cache line. In order to perform memory interleaving, consecutive addresses are alternately assigned to a plurality of memory banks 320 (for example, addresses 0 to 63 are assigned to bank 0 and addresses 64 to 127 are assigned to bank 1). ). The main memory 300 has a function of reading data from the memory bank 320 with reference to the received request packet and transmitting the data to the reply port 140 through the network 200.

次に、図2乃至図6を参照して、本実施の形態に係る情報処理装置の動作を説明する。
図2は、プロセッサ100の命令発行制御部120の動作を示すフローチャートである。命令発行制御部120は、図2に示す処理を命令ごとに実行する。
Next, the operation of the information processing apparatus according to the present embodiment will be described with reference to FIGS.
FIG. 2 is a flowchart showing the operation of the instruction issue control unit 120 of the processor 100. The instruction issue control unit 120 executes the process shown in FIG. 2 for each instruction.

まず、命令発行制御部120は、命令のデコードを行う(S101)。デコードした命令がメモリアクセス命令以外の命令である場合(S102でNO)、命令発行制御部120は、メモリアクセス命令以外のその命令に対して、通常と同様の処理を行う(S103)。   First, the instruction issuance control unit 120 decodes an instruction (S101). When the decoded instruction is an instruction other than the memory access instruction (NO in S102), the instruction issuance control unit 120 performs the same processing as that for the instruction other than the memory access instruction (S103).

デコードした命令がメモリアクセス命令である場合(S102でYES)、圧縮可否判定部121は判定を行う(S104)。そして、ゾーン情報生成部124は、各メモリバンク320内のゾーン情報を生成する(S105)。   If the decoded instruction is a memory access instruction (YES in S102), the compressibility determination unit 121 determines (S104). Then, the zone information generation unit 124 generates zone information in each memory bank 320 (S105).

メモリアクセス単位判定部125は、キャッシュメモリの有効/無効指示と、ゾーン情報生成部124が生成したゾーン情報と、に基づいて、各メモリバンク320への最適なメモリアクセス単位を判定する(S106)。   The memory access unit determination unit 125 determines the optimum memory access unit for each memory bank 320 based on the cache memory valid / invalid instruction and the zone information generated by the zone information generation unit 124 (S106). .

ここで、メモリアクセス単位を判定する方法についてより詳細に説明する。メモリアクセス単位を判定する方法としては、有効要素の数に基づいてメモリアクセス単位を判定する方法と、有効要素の位置に基づいてメモリアクセス単位を判定する方法の、いずれか1つを少なくとも採用することができる。   Here, the method for determining the memory access unit will be described in more detail. As a method for determining the memory access unit, at least one of a method for determining the memory access unit based on the number of effective elements and a method for determining the memory access unit based on the position of the effective elements is employed. be able to.

まず、図3及び図4を参照して、有効要素数に基づいてメモリアクセス単位を判定する方法を説明する。
図3に示すように、メモリアクセス単位判定部125は、まず、キャッシュメモリの有効/無効の指示を受け、キャッシュメモリが有効であり、キャッシュメモリに格納する場合には(S201でYES)、ラインサイズである64Byteをメモリアクセス単位と判定する(S202)。
First, a method for determining a memory access unit based on the number of effective elements will be described with reference to FIGS.
As shown in FIG. 3, the memory access unit determination unit 125 first receives a cache memory valid / invalid instruction, and when the cache memory is valid and stored in the cache memory (YES in S201), the line The size of 64 bytes is determined as a memory access unit (S202).

キャッシュメモリに格納されない場合には(S201でNO)、メモリアクセス単位判定部125は、ゾーン情報に基づいてキャッシュライン中の有効要素の数を調べる。そして、メモリアクセス単位判定部125は、調べた有効要素数が閾値THより大きいか否かを判定する(S203)。閾値THは、ワードサイズ単位で主記憶300から読み出すよりも、ラインサイズ単位で主記憶300から読み出すほうが高効率となる要素数の閾値であり、所定の値が設定される。   If not stored in the cache memory (NO in S201), the memory access unit determination unit 125 checks the number of valid elements in the cache line based on the zone information. Then, the memory access unit determination unit 125 determines whether or not the number of examined effective elements is larger than the threshold value TH (S203). The threshold value TH is a threshold value for the number of elements that is more efficient when reading from the main memory 300 in line size units than reading from the main memory 300 in word size units, and a predetermined value is set.

有効要素数がTHよりも大きな場合(S203でYES)、メモリアクセス単位判定部125は、ラインサイズである64Byteを、メモリアクセス単位と判定する(S204)。有効要素数がTHよりも小さい場合(S203でNO)、メモリアクセス単位判定部125は、ワードサイズである8Byteをメモリアクセス単位と判定する(S205)。   When the number of valid elements is larger than TH (YES in S203), the memory access unit determination unit 125 determines 64 bytes as the line size as a memory access unit (S204). When the number of valid elements is smaller than TH (NO in S203), the memory access unit determination unit 125 determines 8 Byte, which is the word size, as a memory access unit (S205).

図4に、有効要素数に基づくメモリアクセス単位の判定方法についての具体例を示す。
図4では、閾値TH=3となる主記憶300を備えた情報処理装置1が、キャッシュメモリが無効なベクトルギャザー命令を実行する際に、有効要素の数に基づいて最適なメモリアクセス単位を判定し、各メモリポート320へとリクエストを発行するようすを示している。
FIG. 4 shows a specific example of a method for determining a memory access unit based on the number of effective elements.
In FIG. 4, when the information processing apparatus 1 having the main memory 300 with the threshold TH = 3 executes a vector gather instruction in which the cache memory is invalid, the optimum memory access unit is determined based on the number of valid elements. In this example, a request is issued to each memory port 320.

次に、図5及び図6を参照して、有効要素位置に基づいてメモリアクセス単位を判定する方法を説明する。
図5に示すように、メモリアクセス単位判定部125は、まず、キャッシュメモリの有効/無効の指示を受け、キャッシュメモリが有効であり、キャッシュメモリに格納する場合には(S301でYES)、ラインサイズである64Byteをメモリアクセス単位と判定する(S302)。
Next, a method for determining the memory access unit based on the effective element position will be described with reference to FIGS.
As shown in FIG. 5, the memory access unit determination unit 125 first receives a cache memory valid / invalid instruction, and when the cache memory is valid and stored in the cache memory (YES in S301), The size of 64 bytes is determined as a memory access unit (S302).

キャッシュメモリに格納されない場合には(S301でNO)、メモリアクセス単位判定部125は、ゾーン情報に基づいてキャッシュライン中の有効要素の位置を調べる。そして、メモリアクセス単位判定部125は、調べた有効要素の位置がゾーン情報の前半に収まっているか否かを判定する(S303)。   If not stored in the cache memory (NO in S301), the memory access unit determination unit 125 checks the position of the valid element in the cache line based on the zone information. Then, the memory access unit determination unit 125 determines whether or not the position of the checked effective element is within the first half of the zone information (S303).

有効要素がゾーン情報の前半に収まっている場合(S303でYES)、メモリアクセス単位判定部125は、メモリインターリーブ幅の前半をアクセスする32Byteを、メモリアクセス単位と判定する(S304)。   When the valid elements are within the first half of the zone information (YES in S303), the memory access unit determination unit 125 determines 32 bytes that access the first half of the memory interleave width as the memory access unit (S304).

有効要素の位置がゾーン情報の前半に収まっていない場合には(S303でNO)、メモリアクセス単位判定部125は、有効要素の位置がゾーン情報の後半に収まっているか否かを調べる(S305)。   When the position of the valid element does not fit in the first half of the zone information (NO in S303), the memory access unit determination unit 125 checks whether the position of the valid element falls within the second half of the zone information (S305). .

有効要素がゾーン情報の後半に収まっている場合(S305でYES)、メモリアクセス単位判定部125は、メモリインターリーブ幅の後半をアクセスする32Byteを、メモリアクセス単位と判定する(S306)。有効要素がゾーン情報の後半にも収まっていない場合には(S305でNO)、メモリアクセス単位判定部125は、ラインサイズ単位をメモリアクセス単位と判定する(S307)。   When the valid elements are within the second half of the zone information (YES in S305), the memory access unit determination unit 125 determines 32 bytes that access the second half of the memory interleave width as the memory access unit (S306). If the valid elements do not fall within the second half of the zone information (NO in S305), the memory access unit determination unit 125 determines the line size unit as the memory access unit (S307).

図6に、有効要素位置に基づくメモリアクセス単位の判定方法についての具体例を示す。
図6では、閾値TH=3となる主記憶300を備えた情報処理装置1が、キャッシュメモリが無効なベクトルギャザー命令を実行する際に、有効要素の位置に基づいて最適なメモリアクセス単位を判定し、各メモリポート320へとリクエストを発行するようすを示している。
FIG. 6 shows a specific example of the memory access unit determination method based on the effective element position.
In FIG. 6, when the information processing apparatus 1 having the main memory 300 with the threshold TH = 3 executes a vector gather instruction in which the cache memory is invalid, the optimum memory access unit is determined based on the position of the valid element. In this example, a request is issued to each memory port 320.

図2に戻って説明を続ける。
リクエストパケット生成部126は、メモリアクセス単位判定部125の判定結果を受けて、各メモリバンク320をアクセスするリクエストコマンドを生成する。そして、リクエストパケット生成部126は、アドレス計算部123が算出したアドレスと、ゾーン情報生成部124が生成したゾーン情報と、その他リクエスト識別のための情報などと、をまとめて、対応するメモリバンク向けのリクエストパケットを生成する(S107)。
Returning to FIG. 2, the description will be continued.
The request packet generation unit 126 receives the determination result of the memory access unit determination unit 125 and generates a request command for accessing each memory bank 320. The request packet generation unit 126 collects the address calculated by the address calculation unit 123, the zone information generated by the zone information generation unit 124, other information for request identification, and the like for the corresponding memory bank. Request packet is generated (S107).

メモリアクセスリクエスト生成発行部122は、リクエストポート130を通して、リクエストパケットをネットワーク200へと発行する。   The memory access request generation / issuance unit 122 issues a request packet to the network 200 through the request port 130.

メモリアクセスリクエスト生成発行部122は、これらS105〜S107にかけての処理を、ベクトル長だけ処理できるまでの間、繰り返す。   The memory access request generation / issuance unit 122 repeats the processes from S105 to S107 until the vector length can be processed.

ネットワーク200は、発行されたメモリアクセスリクエストを、そのリクエスト内のアドレスに基づいて特定されるメモリバンク320のメモリポート310へと転送する。   The network 200 transfers the issued memory access request to the memory port 310 of the memory bank 320 that is identified based on the address in the request.

主記憶300は、リクエストパケットで指定されたデータを、メモリバンク320から読み出し、ネットワーク200へと転送する。   The main memory 300 reads data specified by the request packet from the memory bank 320 and transfers it to the network 200.

ネットワーク200は、リクエストパケットで指定されたデータを、対応するリプライポート140へと転送する。   The network 200 transfers the data designated by the request packet to the corresponding reply port 140.

プロセッサ100は、必要なリプライを受け取ってレジスタ111に格納し、処理を終了する。   The processor 100 receives the necessary reply, stores it in the register 111, and ends the processing.

以上説明したように、本実施の形態によれば、キャッシュライン単位でメモリバンクごとにメモリインターリーブされる情報処理装置1について、キャッシュメモリが無効な状態においてキャッシュライン中の複数の要素データにアクセスするロード命令に関して、命令がメモリインターリーブ幅内の要素データをいくつアクセスするか、または、そのメモリインターリーブ幅内のアクセスする位置を判定することで、該当バンクへの最適なアクセス単位を判定し、そのアクセス単位でメモリアクセスリクエストを生成して発行することで、実行性能を向上することができる。   As described above, according to the present embodiment, the information processing apparatus 1 that is memory interleaved for each memory bank in units of cache lines accesses a plurality of element data in the cache line when the cache memory is invalid. Regarding the load instruction, the optimum access unit to the corresponding bank is determined by determining how many element data within the memory interleave width the instruction accesses or the access position within the memory interleave width. Execution performance can be improved by generating and issuing memory access requests in units.

なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。
例えば、上述した実施の形態では、有効要素数に基づいてメモリアクセス単位を判定する方法と、有効要素位置に基づいてメモリアクセス単位を判定する方法のいずれか1つの方法を採用することができるとして説明したが、本発明はこれに限定されず、両方の方法を採用することもできる。
Note that the present invention is not limited to the above-described embodiment, and can be changed as appropriate without departing from the spirit of the present invention.
For example, in the above-described embodiment, it is possible to employ any one of the method of determining the memory access unit based on the number of effective elements and the method of determining the memory access unit based on the effective element position. Although described, this invention is not limited to this, Both methods can also be employ | adopted.

例えば、メモリアクセス単位を判定する方法として、まずは有効要素の位置を判定し、有効要素の位置が前半にも後半にも収まっていない場合には、有効要素数の判定をさらに行う等の方法を採用することもできる。   For example, as a method of determining the memory access unit, first, the position of the effective element is determined. If the position of the effective element is not within the first half or the second half, the number of effective elements is further determined. It can also be adopted.

また、有効要素位置に基づいてメモリアクセス単位を判定する方法に関して、上述した実施の形態では、位置の判定基準を前半/後半として、ラインサイズの半分単位に基づいて判定しているが、本発明はこれに限定されず、4分の1単位など、より細かく判定することもできる。   Further, regarding the method of determining the memory access unit based on the effective element position, in the above-described embodiment, the position determination criterion is the first half / second half, and the determination is based on the half unit of the line size. Is not limited to this, and can be determined more finely, such as a quarter unit.

また、上述した実施の形態では、キャッシュメモリの有効/無効をソフトウェア指示として説明したが、本発明はこれに限定されず、ページバイパス属性などのHW処理に基づいて判定して行うことも可能である。   In the above-described embodiment, the cache memory valid / invalid has been described as a software instruction. However, the present invention is not limited to this, and can be determined based on HW processing such as a page bypass attribute. is there.

また、メモリインターリーブ幅はキャッシュライン単位に限定されず、ワード単位よりも大きなブロックサイズでロードを行う装置であれば、本発明と同様の仕組みを実施できる。   Further, the memory interleave width is not limited to the cache line unit, and a mechanism similar to that of the present invention can be implemented as long as the device performs loading with a block size larger than the word unit.

また、実装の形態として、マルチコアのプロセッサや、メモリコントローラがプロセッサ内に組み込まれた構成であっても、本発明と同様の仕組みを実施することが可能である。   Further, as a form of mounting, even if a multi-core processor or a memory controller is incorporated in the processor, the same mechanism as that of the present invention can be implemented.

1 情報処理装置、
100 プロセッサ、
110 演算部、
111 レジスタ、
120 命令発行制御部、
121 圧縮可否判定部、
122 メモリアクセスリクエスト生成発行部、
123 アドレス計算部、
124 ゾーン情報生成部、
125 メモリアクセス単位判定部、
126 リクエストパケット生成部、
130 リクエストポート、
140 リプライポート、
200 ネットワーク、
300 主記憶、
310 メモリポート、
320 メモリバンク
400 情報処理装置、
410 プロセッサ、
420 主記憶、
430 ネットワーク、
440 メモリアクセスリクエスト生成発行手段
1 Information processing device,
100 processors,
110 arithmetic unit,
111 registers,
120 instruction issue control unit,
121 Compressibility determination unit,
122 memory access request generation and issue unit,
123 Address calculator,
124 zone information generator,
125 memory access unit determination unit,
126 request packet generator,
130 request port,
140 reply port,
200 network,
300 main memory,
310 memory port,
320 memory bank 400 information processing device,
410 processor,
420 Main memory,
430 network,
440 Memory access request generation issuing means

Claims (4)

キャッシュメモリを有するプロセッサと、
1以上のメモリバンクで構成された主記憶と、
前記プロセッサと前記主記憶とを接続するネットワークとを備え、
前記主記憶に記憶された要素データのうち、命令で指定された複数の要素データを1命令でアクセスできるメモリアクセス命令を命令セットに含み、
前記プロセッサは、
前記メモリアクセス命令に従って前記主記憶にアクセスする場合に、前記メモリアクセス命令ごとに指定されたキャッシュラインの有効/無効の指示を受け、当該キャッシュラインが無効である場合に、当該キャッシュライン中における要素データの有効なに応じて、アクセス対象バンクへのクセス単位を判定し、当該判定したアクセス単位でメモリアクセスリクエストを生成し、発行するメモリアクセスリクエスト生成発行手段を備える
ことを特徴とする情報処理装置。
A processor having a cache memory;
A main memory composed of one or more memory banks;
A network connecting the processor and the main memory;
Among the element data stored in the main memory, the instruction set includes a memory access instruction that can access a plurality of element data specified by the instruction with one instruction,
The processor is
When accessing the main memory in accordance with the memory access instruction, an instruction for valid / invalid of the cache line designated for each memory access instruction is received, and when the cache line is invalid, an element in the cache line depending on the effective position data, and characterized in that to determine the access unit to access target banks, and generates a memory access request in the access units and the determination, a memory access request generating issuing means for issuing Information processing apparatus.
前記メモリアクセスリクエスト生成発行手段は、前記メモリアクセス命令に基づき、バンク内のアクセス対象とする要素データを指定する情報であって、メモリインターリーブ幅内に含まれる要素データに1対1に対応するゾーン情報を生成し、当該生成したゾーン情報を参照することで、前記キャッシュライン中における要素データの有効な置を調べる
ことを特徴とする請求項1記載の情報処理装置。
The memory access request generation and issuance means is information for designating element data to be accessed in a bank based on the memory access instruction, and has a one-to-one correspondence with element data included in the memory interleave width It generates information, by referring to the zone information thus generated, the information processing apparatus according to claim 1, characterized in that to examine the effective position of the element data in the said cache line.
前記メモリアクセス命令は、
ベクトルロード命令又はベクトルギャザー命令の少なくとも1を含む
ことを特徴とする請求項1又は2に記載の情報処理装置。
The memory access instruction is
Vector load instruction or the information processing apparatus according to claim 1 or 2, characterized in that it comprises at least one vector gather instruction.
情報処理装置における情報処理方法であって、
前記情報処理装置は、
キャッシュメモリを有するプロセッサと、
1以上のメモリバンクで構成された主記憶と、
前記プロセッサと前記主記憶とを接続するネットワークとを備え、
前記主記憶に記憶された要素データのうち、命令で指定された複数の要素データを1命令でアクセスできるメモリアクセス命令を命令セットに含み、
前記プロセッサは、
前記メモリアクセス命令に従って前記主記憶にアクセスする場合に、前記メモリアクセス命令ごとに指定されたキャッシュラインの有効/無効を判定するステップと、
前記判定したキャッシュラインが無効である場合に、前記キャッシュライン中における要素データの有効なに応じて、アクセス対象バンクへのクセス単位を判定するステップと、
前記判定したアクセス単位でメモリアクセスリクエストを生成し、発行するステップと、を有する
ことを特徴とする情報処理方法。
An information processing method in an information processing apparatus,
The information processing apparatus includes:
A processor having a cache memory;
A main memory composed of one or more memory banks;
A network connecting the processor and the main memory;
Among the element data stored in the main memory, the instruction set includes a memory access instruction that can access a plurality of element data specified by the instruction with one instruction,
The processor is
Determining the validity / invalidity of a cache line designated for each memory access instruction when accessing the main memory in accordance with the memory access instruction;
When the determined cache line is invalid, in accordance with the effective position of the element data in the said cache line, and determining the access unit to access target banks,
Generating and issuing a memory access request in the determined access unit.
JP2010268337A 2010-12-01 2010-12-01 Information processing apparatus and information processing method Expired - Fee Related JP5477267B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010268337A JP5477267B2 (en) 2010-12-01 2010-12-01 Information processing apparatus and information processing method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010268337A JP5477267B2 (en) 2010-12-01 2010-12-01 Information processing apparatus and information processing method

Publications (2)

Publication Number Publication Date
JP2012118786A JP2012118786A (en) 2012-06-21
JP5477267B2 true JP5477267B2 (en) 2014-04-23

Family

ID=46501527

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010268337A Expired - Fee Related JP5477267B2 (en) 2010-12-01 2010-12-01 Information processing apparatus and information processing method

Country Status (1)

Country Link
JP (1) JP5477267B2 (en)

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2728591B2 (en) * 1992-01-31 1998-03-18 富士通株式会社 Information processing device
JP5223220B2 (en) * 2007-03-30 2013-06-26 日本電気株式会社 Vector processing apparatus and vector processing system

Also Published As

Publication number Publication date
JP2012118786A (en) 2012-06-21

Similar Documents

Publication Publication Date Title
JP6143872B2 (en) Apparatus, method, and system
KR20100037313A (en) Secure memory interface, system and smart card including the same
US20170010967A1 (en) Using l1 cache as re-order buffer
CN110806900A (en) Memory access instruction processing method and processor
CN117421259A (en) Serving CPU demand requests with in-flight prefetching
JP2018045438A (en) Parallel processor, transmit program, reception program and data transfer method
JP5625809B2 (en) Arithmetic processing apparatus, information processing apparatus and control method
CN114661357A (en) System, apparatus, and method for prefetching physical pages in a processor
JP5477267B2 (en) Information processing apparatus and information processing method
US20120173850A1 (en) Information processing apparatus
JP4985452B2 (en) Vector processing equipment
US7134004B1 (en) Processing device for buffering sequential and target sequences and target address information for multiple branch instructions
KR100532417B1 (en) The low power consumption cache memory device of a digital signal processor and the control method of the cache memory device
KR101100143B1 (en) Cache memory control device, and pipeline control method
JP5182175B2 (en) Information processing device
US20090300313A1 (en) Memory clearing apparatus for zero clearing
JP4413663B2 (en) Instruction cache system
JP2008257508A (en) Cache control method, cache device, and microcomputer
JP5170050B2 (en) Hardware processor, hardware processor control method, and information processing apparatus
US6922767B2 (en) System for allowing only a partial value prediction field/cache size
JP5223220B2 (en) Vector processing apparatus and vector processing system
JP5445701B1 (en) Flash control device, flash control method, and cache memory device
JP5091548B2 (en) Memory system
JP4111645B2 (en) Memory bus access control method after cache miss
US20070180195A1 (en) Method and apparatus for allowing uninterrupted address translations while performing address translation cache invalidates and other cache operations

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130430

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130521

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130718

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: 20140114

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140127

R150 Certificate of patent or registration of utility model

Ref document number: 5477267

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees