JP5882800B2 - Information processing device having list command verification function, list command verification method, and program for list command verification - Google Patents
Information processing device having list command verification function, list command verification method, and program for list command verification Download PDFInfo
- Publication number
- JP5882800B2 JP5882800B2 JP2012059556A JP2012059556A JP5882800B2 JP 5882800 B2 JP5882800 B2 JP 5882800B2 JP 2012059556 A JP2012059556 A JP 2012059556A JP 2012059556 A JP2012059556 A JP 2012059556A JP 5882800 B2 JP5882800 B2 JP 5882800B2
- Authority
- JP
- Japan
- Prior art keywords
- memory
- port
- request
- list
- memory 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.)
- Active
Links
Images
Landscapes
- Test And Diagnosis Of Digital Computers (AREA)
- Complex Calculations (AREA)
Description
本発明は、複数のメモリアクセスを一括で行うリスト命令の検証機能を有する情報処理装置、リスト命令の検証方法、及びリスト命令の検証のためのプログラム The present invention relates to an information processing apparatus having a list instruction verification function for collectively performing a plurality of memory accesses, a list instruction verification method, and a program for verifying a list instruction
情報処理装置を構成する記憶手段へのアクセス方法については、様々な高速化や効率化の技術が提案されている。 Various techniques for speeding up and improving efficiency have been proposed for accessing the storage means constituting the information processing apparatus.
例えば、特許文献1には、複数の演算装置と複数の記憶装置とで構成される情報処理装置において、1つの記憶装置の同一アドレスへのアクセスリクエストが複数発行された場合、該複数のリクエストを1つのリクエストに圧縮する技術の一例が記載されている。
For example, in
特許文献1に記載されたリクエストの圧縮に関する技術は、複数の演算装置から同一の主記憶アドレスへのリクエストが複数発行された場合、該複数のリクエストを1つのリクエストに圧縮する機能と、圧縮されたリクエストに対する記憶装置からのリプライデータを上記圧縮対象の複数演算装置に向けて展開して送出する機能とを有する。
The technology related to request compression described in
また、一括で複数の命令を発行し処理する情報処理装置として、例えば、ベクトル型コンピュータがあるが、このベクトル型コンピュータは、一般的に、リスト命令と呼ばれる複数のメモリアクセスを一括で行う命令を備えている。 In addition, as an information processing apparatus that issues and processes a plurality of instructions at once, for example, there is a vector type computer, and this vector type computer generally executes an instruction for performing a plurality of memory accesses collectively called a list instruction. I have.
このリスト命令には、メモリから複数のデータを一括で読み出すギャザー命令と、メモリへ複数のデータを一括で書き込むスキャタ命令の2種類が存在する。 There are two types of list instructions: a gather instruction that reads a plurality of data from the memory at once, and a scatter instruction that writes a plurality of data to the memory at a time.
これら2つの命令は、複数のベクトル要素毎にアクセスするメモリのアドレスを指定するので、同じメモリアドレスが複数指定された場合は、複数のメモリアクセスリクエストが同じアドレスに対して発生することになる。そのため、メモリのアクセス処理で競合が発生してしまい、コンピュータシステム全体としての性能低下につながる。 These two instructions specify the address of the memory to be accessed for each of a plurality of vector elements. Therefore, when a plurality of the same memory addresses are specified, a plurality of memory access requests are generated for the same address. For this reason, contention occurs in memory access processing, leading to performance degradation of the entire computer system.
そこで、同一のアドレスに対し複数のメモリアクセスリクエストが発生する場合は、それらの複数のリクエストを1つのリクエストに圧縮して処理を行う高速化の機能をコンピュータシステムに加える場合が多い。 Therefore, when a plurality of memory access requests are generated for the same address, a high speed function for compressing the plurality of requests into one request and performing processing is often added to the computer system.
前述した特許文献1に記載された技術、及び、前述のベクトル型コンピュータのメモリアクセスリクエスト圧縮の技術は、これらの圧縮処理が正しく行われたかどうかをテストプログラムで検証することが困難であるという問題点がある。
The technique described in
その理由は、当該圧縮処理が行われていなくても、実行結果では判断できない場合があるためである。 The reason is that even if the compression process is not performed, it may not be determined from the execution result.
例えば、前述のベクトル型コンピュータのギャザー命令で、同一のアドレスに対し複数のメモリアクセスリクエストが発生した例では、圧縮無しの場合、メモリアクセス処理で競合が発生し、該複数のリクエストが順番に処理されることになり、リプライデータはそれぞれのリクエストに対し、同じものが1つずつ返ってくる。 For example, in the case where a plurality of memory access requests are generated for the same address with the above-mentioned vector computer gather instruction, in the case of no compression, a conflict occurs in the memory access processing, and the plurality of requests are processed in order. As a result, the same reply data is returned for each request.
次に、該複数のメモリアクセスリクエストを1つのリクエストに圧縮した場合、リプライデータは1つであるが、該複数のメモリアクセスリクエストに対して複製されて返されるため、実行結果は、該複数のメモリアクセスリクエストに、同じリプライデータが1つずつ返されることになる。 Next, when the plurality of memory access requests are compressed into one request, the reply data is one, but since the plurality of memory access requests are duplicated and returned, the execution result is the plurality of memory access requests. The same reply data is returned to the memory access request one by one.
そのため、実行結果が圧縮無しの場合と同じになり、実行結果を見ただけでは、圧縮処理が行われた否かを検知することができない。 Therefore, the execution result is the same as when no compression is performed, and it is impossible to detect whether or not the compression process has been performed only by looking at the execution result.
本発明の目的は、上述した問題点を解決できるリスト命令の検証機能を有する情報処理装置、リスト命令の検証方法、及びリスト命令の検証のためのプログラムを提供することにある。 An object of the present invention is to provide an information processing apparatus having a list instruction verification function capable of solving the above-described problems, a list instruction verification method, and a program for verifying a list instruction.
本発明の情報処理装置は、複数のメモリポートを有するとともに複数のデータを記憶し、前記メモリポートを介して前記データへのアクセスが行われる記憶手段と、
前記記憶手段に対して複数のアクセスを一括で行うリスト命令が同一の前記ポートへの複数のメモリアクセスリクエストを発行するものである場合に、当該複数のアクセスリクエストを一つのメモリアクセスリクエストに圧縮して前記記憶手段に当該ポートを介して発行するメモリリクエスト制御手段と、
前記複数のメモリポートと一対一対応に設けられ、前記リスト命令が発行され、かつ、対応する前記ポートに前記メモリアクセスリクエストが前記メモリリクエスト制御手段から発行された場合に、該メモリアクセスリクエストの数を計数する複数のカウンタ手段と
から構成される。
The information processing apparatus of the present invention has a plurality of memory ports and stores a plurality of data, and a storage means for accessing the data via the memory ports;
When a list instruction that performs a plurality of accesses to the storage unit collectively issues a plurality of memory access requests to the same port, the plurality of access requests are compressed into one memory access request. Memory request control means for issuing to the storage means via the port;
The number of memory access requests provided in a one-to-one correspondence with the plurality of memory ports, when the list instruction is issued, and when the memory access request is issued to the corresponding port from the memory request control means And a plurality of counter means for counting.
本発明のリスト命令の検証方法は、 複数のメモリポートを有するとともに複数のデータを記憶し、前記メモリポートを介して前記データへのアクセスが行われる記憶手段を備えた情報処理装置において、
前記記憶手段に対して複数のアクセスを一括で行うリスト命令が、同一の前記ポートへの複数のメモリアクセスリクエストを発行するものである場合に、当該複数のアクセスリクエストを一つのメモリアクセスリクエストに圧縮して前記記憶手段に当該ポートを介して発行し、
前記リスト命令が発行され、かつ、前記ポートに前記メモリアクセスリクエストが前記メモリリクエスト制御ステップで発行された場合に、該メモリアクセスリクエストの数を前記ポート毎に計数する。
The list instruction verification method of the present invention is an information processing apparatus comprising a storage means having a plurality of memory ports and storing a plurality of data, wherein the data is accessed via the memory ports.
When a list instruction that performs a plurality of accesses to the storage unit collectively issues a plurality of memory access requests to the same port, the plurality of access requests are compressed into one memory access request. And issued to the storage means via the port,
When the list command is issued and the memory access request is issued to the port in the memory request control step, the number of memory access requests is counted for each port.
本発明のリスト命令の検証のためのプログラムは、
複数のメモリポートを有するとともに複数のデータを記憶し、前記メモリポートを介して前記データへのアクセスが行われる記憶手段を備えた情報処理装置において、
前記記憶手段に対して複数のアクセスを一括で行うリスト命令が、同一の前記ポートへの複数のメモリアクセスリクエストを発行するものである場合に、当該複数のアクセスリクエストを一つのメモリアクセスリクエストに圧縮して前記記憶手段に当該ポートを介して発行するメモリリクエスト制御処理と、
前記リスト命令が発行され、かつ、前記ポートに前記メモリアクセスリクエストが前記メモリリクエスト制御処理で発行された場合に、該メモリアクセスリクエストの数を前記ポート毎に計数する計数処理と
をコンピュータに実行させる。
A program for verifying a list instruction according to the present invention includes:
In an information processing apparatus having a plurality of memory ports and storing a plurality of data, and having a storage means for accessing the data via the memory ports,
When a list instruction that performs a plurality of accesses to the storage unit collectively issues a plurality of memory access requests to the same port, the plurality of access requests are compressed into one memory access request. A memory request control process to be issued to the storage means via the port;
When the list instruction is issued and the memory access request is issued to the port by the memory request control process, the computer executes a counting process for counting the number of memory access requests for each port. .
本発明には、リスト命令におけるメモリアクセスリクエストの圧縮処理が正しく行われたかどうかを検証することができるという効果がある。 According to the present invention, it is possible to verify whether or not the compression processing of the memory access request in the list instruction is correctly performed.
前述した一括で複数の命令を発行し処理する情報処理装置(例えば、ベクトル型コンピュータ)が一般的に備えているリスト命令の一つであるギャザー命令のメモリアクセスリクエスト数の圧縮処理動作の一例について、図1及び図2を参照して説明する。 An example of compression processing operation for the number of memory access requests of gather instructions, which is one of list instructions generally provided in an information processing apparatus (for example, a vector computer) that issues and processes a plurality of instructions in a batch A description will be given with reference to FIGS.
図1は、一括で複数の命令を発行し処理する情報処理装置10の構成を示すブロック図である。
図1を参照すると、情報処理装置10は制御手段20と記憶手段30とを備える。なお、図1は、情報処理装置10の全体構成のうち、本説明に関連する構成要素のみを示している。
FIG. 1 is a block diagram illustrating a configuration of an
Referring to FIG. 1, the
制御手段20は、メモリリクエスト制御部21と、ベクトルレジスタ22とを備える。
The
記憶手段30は、データ記憶域31を備える。
The storage means 30 includes a
そして、制御手段20から記憶手段30をアクセスするための8個のポート(ポート0からポート7)があり、それぞれのポートからデータ記憶域31の特定の記憶領域のデータにアクセスすることができる。
Then, there are eight ports (
図2はメモリリクエスト制御部21におけるギャザー命令処理時のメモリアクセス動作の一例を示す模式図である。
FIG. 2 is a schematic diagram showing an example of a memory access operation at the time of gather instruction processing in the memory
ギャザー命令は、ベクトル要素毎に指定した複数のアドレスの記憶領域からデータを読み出し、一括でベクトルレジスタ22へ格納する命令である。
The gather instruction is an instruction that reads data from a plurality of address storage areas designated for each vector element and stores them in the
まず、メモリアクセスリクエスト数の圧縮が無い場合を図2の(A)に示す例で説明する。 First, a case where there is no compression of the number of memory access requests will be described with an example shown in FIG.
図2の(A)に示す例を参照すると、ベクトル要素0のアクセスアドレスは「アドレスA」である。以下同様に、ベクトル要素1のアクセスアドレスは「アドレスB」、ベクトル要素2のアクセスアドレスは「アドレスC」となり、最後のベクトル要素7のアクセスアドレスは「アドレスH」となる。つまり、ベクトル要素0からベクトル要素7に対応するメモリアクセスリクエストは、それぞれ1つずつの合計8個が発行される。
Referring to the example shown in FIG. 2A, the access address of
このとき、メモリリクエスト制御部21が、どのメモリアクセスリクエストをどのメモリポートに対して発行するかは、ベクトル要素0からベクトル要素7のそれぞれのアクセスアドレスに依存する。
At this time, which memory access request the memory
図2の(A)に示す例では、「アドレスA」はメモリポート0からアクセスする記憶領域に存在することを示す。以下同様に、「アドレスB」はメモリポート1からアクセスする記憶領域に存在することを示し、「アドレスC」はメモリポート1からアクセスする記憶領域に存在することを示し、最後の「アドレスH」はメモリポート7からアクセスする記憶領域に存在することを示している。つまり、図2の(A)の場合は、メモリリクエスト制御部21は、メモリポート0と、メモリポート3と、メモリポート4と、メモリポート5とに、それぞれ1個、そして、メモリポート1と、メモリポート7にそれぞれ2個の、合計8個のメモリアクセスリクエストを発行する。
In the example shown in FIG. 2A, “address A” is present in the storage area accessed from the
これらの、各メモリポートに発行されたメモリアクセスリクエストに対して、各メモリポートに各メモリアクセスリクエストで要求されたデータがリプライデータとしてデータ記憶域31から返ってくる。メモリリクエスト制御部21は、これらリプライデータを該当のベクトルレジスタへ格納する。
In response to these memory access requests issued to each memory port, the data requested by each memory access request to each memory port is returned from the
次に、メモリアクセスリクエスト数の圧縮がある場合を図2の(B)に示す例で説明する。 Next, a case where there is compression of the number of memory access requests will be described with reference to an example shown in FIG.
ギャザー命令では、ベクトルの要素毎にアクセスするメモリアドレスを指定するが、複数のベクトル要素で同一のメモリアドレスが指定される場合、メモリリクエスト制御部21は、その複数のベクトル要素のうちで要素番号の大きい方のベクトル要素のリクエストを代表して採用(リクエストの圧縮)して処理を行う。
In the gather instruction, a memory address to be accessed is designated for each vector element. When the same memory address is designated by a plurality of vector elements, the memory
図2の(B)の例は、ベクトル要素0からベクトル要素3のアクセスアドレスが「アドレスA」で全て一致し、さらにベクトル要素4からベクトル要素7のアクセスアドレスが「アドレスE」で全て一致するというケースである。この場合は、メモリリクエスト制御部21は、ベクトル要素3の「アドレスA」へのメモリアクセスリクエストとおよびベクトル要素7の「アドレスE」へのメモリアクセスリクエストを代表して採用する。そして、メモリリクエスト制御部21は、それぞれのアドレスに対応するメモリポート0およびメモリポート4へメモリアクセスリクエストを発行する。つまり、メモリリクエスト制御部21は、ベクトル要素0からベクトル要素7の8個のメモリアクセスリクエストを、ベクトル要素3およびベクトル要素7の2個のリクエストに圧縮する。すなわち、リクエストの数が8個から2個に削減される。
In the example of FIG. 2B, the access addresses of
そして、各メモリポートにリプライデータが返ってくると、メモリリクエスト制御部21は、保存しておいた圧縮情報から、返ってきたリプライデータAをベクトル要素0からベクトル要素3のためのベクトルレジスタに、また、リプライデータEをベクトル要素4からベクトル要素7のためのベクトルレジスタへそれぞれ格納する。
When the reply data is returned to each memory port, the memory
次に、本発明の実施の形態について図面を参照して詳細に説明する。 Next, embodiments of the present invention will be described in detail with reference to the drawings.
図3は、本発明の実施形態を示すブロック図である。
図3を参照すると、情報処理装置100は制御手段200と記憶手段300とを備える。なお、図3は、情報処理装置100の全体構成のうち、本発明に関連する構成要素のみを示している。
FIG. 3 is a block diagram showing an embodiment of the present invention.
Referring to FIG. 3, the
制御手段200は、メモリリクエスト制御部210と、ベクトルレジスタ220と、ソフトウェアビジブルレジスタ230とを備える。
The
記憶手段300は、データ記憶域310と、ソフトウェアシミュレータ実行結果記憶域320とを備える。
The storage means 300 includes a
そして、制御手段200から記憶手段300をアクセスするためのポートとして、8個のポート(ポート0からポート7)があり、それぞれのポートからデータ記憶域310の特定の記憶領域のデータにアクセスすることができる。
There are eight ports (
次に、制御手段200の構成及び動作について簡単に説明する。 Next, the configuration and operation of the control means 200 will be briefly described.
ソフトウェアビジブルレジスタ230は、プログラムから値を参照することのできるレジスタで、複数存在する。
The software
ベクトルレジスタ220は、一般的に使用されるレジスタで、通常、プログラムが動作する場合は、ここにアドレスやデータが格納される。
The
制御手段200は、リスト命令リクエスト数カウンタ値移送命令で、後述するメモリリクエスト制御部210内に設けられたリスト命令リクエスト数カウンタブロック211の値を、ソフトウェアビジブルレジスタ230に移送する。
The control means 200 transfers the value of the list instruction request number counter block 211 provided in the memory
リスト命令リクエスト数カウンタ値移送命令の構成を図7に示す。
図7を参照すると、リスト命令リクエスト数カウンタ値移送命令は、「オペコード」と、「MODE」と、「REG」から構成される。「オペコード」は、メモリリクエスト制御部210に対し、リスト命令リクエスト数カウンタ値移送命令の実行を指示するコードである。「MODE」は、リスト命令リクエスト数カウンタブロック211とソフトウェアビジブルレジスタ230との間のデータの移送方向を示す。「MODE」の値が「0」の場合は、リスト命令リクエスト数カウンタブロック211からソフトウェアビジブルレジスタ230へデータを移送する。「MODE」の値が「1」の場合は、逆に、ソフトウェアビジブルレジスタ230からリスト命令リクエスト数カウンタブロック211へデータを移送する。「REG」は、複数あるソフトウェアビジブルレジスタ230の1つを識別する番号を表す。
The configuration of the list command request counter value transfer command is shown in FIG.
Referring to FIG. 7, the list command request number counter value transfer command is composed of “opcode”, “MODE”, and “REG”. The “opcode” is a code that instructs the memory
メモリリクエスト制御部210は、リスト命令リクエスト数カウンタブロック211を備える。そして、メモリリクエスト制御部210は、プログラムが発行したメモリリクエストの命令が、リスト命令かどうかの判断を行い、リスト命令の場合には、リクエスト数の圧縮が可能であれば圧縮処理を行い、リスト命令リクエスト数カウンタブロック211のカウントアップ処理を行う。
The memory
図4は、リスト命令リクエスト数カウンタブロック211内の各ポート対応に設けられるリスト命令リクエスト数カウンタ部211−0の構成を示す。すなわち、リスト命令リクエスト数カウンタブロック211は、メモリリクエスト制御部210のメモリポート対応に8個の上記リスト命令リクエスト数カウンタ部211−0を有する。
FIG. 4 shows a configuration of the list command request counter 211-2 provided for each port in the list
図4を参照すると、リスト命令リクエスト数カウンタ部211−0は、アンドゲート211−1と、セレクタ211−2と、8ビットのリスト命令リクエストカウンタ211−3と、+1加算器211−4とを備える。 Referring to FIG. 4, the list command request counter 211-2 includes an AND gate 211-1, a selector 211-2, an 8-bit list command request counter 211-3, and a +1 adder 211-4. Prepare.
次に、リスト命令リクエスト数カウンタ部211−0の構成及び動作について簡単に説明する。 Next, the configuration and operation of the list command request counter 211-2 will be briefly described.
まず、リスト命令リクエスト数カウンタ部211−0は、メモリリクエスト制御部210からメモリリクエスト命令の情報を受信する。ここで、アンドゲート211−1の入力Vはメモリリクエスト命令が有効か否かを表し、取りうる値は「1」が有効、「0」が無効である。また、入力Lはメモリリクエスト命令がリスト命令か否かを表し、取りうる値は「1」がリスト命令、「0」がリスト命令以外である。
First, the list command request counter 211-0 receives memory request command information from the
そして、リスト命令リクエスト数カウンタ部211−0は、アンドゲート211−1の入力Vが「1」(メモリリクエスト命令が有効)であり、かつ、Lが「1」(リスト命令である)の場合、つまり、メモリリクエスト命令が有効でリスト命令の場合のみ、出力が「1」になる。したがって、セレクタ211−2は、+1加算器211−4の出力(すなわち、そのときのカウンタ211−3の値に1を加算した値)を選択し、リスト命令リクエスト数カウンタ211−3に格納する。結果として、リスト命令リクエスト数カウンタ211−1の値に1が加算されることになる。 The list command request counter 211-0 has a case where the input V of the AND gate 211-1 is "1" (memory request command is valid) and L is "1" (list command). That is, the output is “1” only when the memory request instruction is valid and is a list instruction. Therefore, the selector 211-2 selects the output of the +1 adder 211-4 (that is, a value obtained by adding 1 to the value of the counter 211-3 at that time) and stores it in the list instruction request number counter 211-3. . As a result, 1 is added to the value of the list command request counter 211-1.
次に、記憶手段300の構成及び動作について簡単に説明する。
Next, the configuration and operation of the
ソフトウェアシミュレータ実行結果記憶域320は、ソフトウェアシミュレータが実行したリスト命令リクエスト数のシミュレーション結果を保持しておくための記憶域である。この記憶域に記憶された値をプログラムが読み出し、ソフトウェアビジブルレジスタ230に格納されたリスト命令リクエスト数カウンタブロックの値との比較を行う。
The software simulator execution
データ記憶域310は、通常のデータを保持しておくための記憶域であり、プログラムが発行したメモリリクエスト命令が、指定したアドレスに対応したメモリポートを通じて、データの読み書きを行う。
The
以上のように構成された情報処理装置100の動作について、図5のフローチャートと、図6の模式図を参照して説明する。
The operation of the
図5は、本発明の実施形態でのテストプログラムの動作の概要を示すフローチャートである。 FIG. 5 is a flowchart showing an outline of the operation of the test program in the embodiment of the present invention.
また、図6は、メモリリクエスト制御部210の、上述のテストプログラム実行時のメモリアクセス動作の一例を示す模式図である。
FIG. 6 is a schematic diagram showing an example of the memory access operation when the memory
なお、図6の例は、図2のギャザー命令処理時のメモリアクセス動作の例と同じ条件を使用している。すなわち、複数のベクトル要素で同一のメモリアドレスへのアクセスが指定される場合、メモリリクエスト制御部210は、ベクトルの要素番号の大きい方のベクトル要素のリクエストを代表して採用(リクエストの圧縮)して処理を行う。
Note that the example of FIG. 6 uses the same conditions as the example of the memory access operation during the gather instruction processing of FIG. That is, when access to the same memory address is specified by a plurality of vector elements, the memory
図2の例では、ベクトル要素0からベクトル要素3のアクセスアドレスが「アドレスA」で全て一致し、さらにベクトル要素4からベクトル要素7のアクセスアドレスが「アドレスE」で全て一致するケースで、この場合、メモリリクエスト制御部210は、ベクトル要素0からベクトル要素7の8個のメモリアクセスリクエストを、ベクトル要素3およびベクトル要素7の2個のリクエストに圧縮し、それによりリクエストの数が8個から2個に削減される。
In the example of FIG. 2, the access addresses of the
そして、各メモリポートにリプライデータが返ってくると、メモリリクエスト制御部210は、保存しておいた圧縮情報から、返ってきたリプライデータAをベクトル要素0からベクトル要素3のためのベクトルレジスタへ、また、リプライデータEをベクトル要素4からベクトル要素7のためのベクトルレジスタへそれぞれ格納する。
When reply data is returned to each memory port, the memory
図5に示すように、まず、テストプログラムは試験命令列を生成する(ステップS101)。 As shown in FIG. 5, first, the test program generates a test instruction sequence (step S101).
次に、テストプログラムはこの試験命令列を制御手段200上で実行する(ステップS102)。 Next, the test program executes this test instruction sequence on the control means 200 (step S102).
この試験命令列には、メモリアクセスリクエストの圧縮が可能なリスト命令も含まれる。今、そのようなリスト命令の一つであるギャザー命令が実行される場合について図6を用いて説明する。 The test instruction sequence includes a list instruction that can compress a memory access request. Now, a case where a gather instruction which is one of such list instructions is executed will be described with reference to FIG.
図6を参照すると、当該ギャザー命令では、ベクトル要素0からベクトル要素3のアクセスアドレスAが全て一致し、ベクトル要素4からベクトル要素7のアクセスアドレスEが全て一致すると、上述したように、メモリアクセスリクエストの圧縮が行われ、メモリリクエスト制御部210はベクトル要素3およびベクトル要素7の2個のアクセスリクエストのみを発行する。これらのリクエストは、それぞれメモリポート0およびメモリポート4へ発行される。
Referring to FIG. 6, in the gather instruction, when all the access addresses A of the
このとき、メモリリクエスト制御部210は、リクエストを発行したメモリポート0およびメモリポート4に対応したリスト命令リクエスト数カウンタ部211−0の値を+1カウントアップする。他のメモリポートに対応したリスト命令リクエスト数カウンタ部211−0の値は、初期値の“0”のままとなる。
At this time, the memory
具体的には、メモリポート0および4のそれぞれに対応したリスト命令リクエスト数カウンタ部211−0(図4参照)のアンドゲート211−1の一方の入力にメモリリクエスト有効ビットVが「1」である信号が、また、他方の入力にリスト命令ビットLが「1」(リスト命令であることを示す。)である信号が制御部210からそれぞれ送られ、その結果、8ビットのカウンタ211−3の内容が初期値「0」から「1」にカウントアップされる。
一方、他のポートに対応したリスト命令リクエスト数カウンタ部211−0内のアンドゲート211−1の一方の入力にはメモリリクエスト有効ビットVが「0」の信号が制御部210から送られるため、カウントアップ動作は行われない。
Specifically, the memory request valid bit V is “1” at one input of the AND gate 211-1 of the list instruction request counter 211-2 (see FIG. 4) corresponding to each of the
On the other hand, a signal having a memory request valid bit V of “0” is sent from the
ここで、仮に、故障や設計ミスにより、メモリリクエストの圧縮が行われない場合、メモリポート0にアクセスアドレスAに対する3個のメモリリクエストが送信されることになり、そのため、カウンタ211−3が+3カウントアップされ、その内容が「3」となるため、後述するソフトウェアシミュレーションの結果と一致しなくなり、異常が発見できる。
Here, if the memory request is not compressed due to a failure or a design error, three memory requests for the access address A are transmitted to the
正常にメモリリクエストの圧縮が行われた場合には、その後、メモリリクエスト制御部210は、メモリポート0に返ってきたリプライデータAをベクトル要素0からベクトル要素3のためのベクトルレジスタへ、また、メモリポート4に返ってきたリプライデータEをベクトル要素4からベクトル要素7ためのベクトルレジスタにそれぞれ格納する。
When the memory request is normally compressed, the memory
ステップS102において試験命令列の実行を終了すると、テストプログラムは、試験命令列に複数のメモリアクセスを一括で行うリスト命令が含まれているかどうかを判断する(ステップS103)。 When the execution of the test instruction sequence is completed in step S102, the test program determines whether the test instruction sequence includes a list instruction for performing a plurality of memory accesses at once (step S103).
リスト命令が含まれている場合は、ステップS105へ進む。 If a list command is included, the process proceeds to step S105.
ステップS105では、テストプログラムは、前述のリスト命令リクエスト数カウンタ値移送命令(図7を参照して説明した)を用いて、リスト命令リクエスト数カウンタブロック211に格納されている値をソフトウェアビジブルレジスタ230に移送する。ここでは、テストプログラムは、8ポート分のリスト命令リクエスト数カウンタ部211−0内のカウンタ211−3の値をメモリポート0からメモリポート7へとつなげて64ビットの値とし、これをリスト命令リクエスト数カウンタ値移送命令の「REG」により指定される一つの64ビットのソフトウェアビジブルレジスタに格納する。
例えば、試験命令列中に図6で説明した一つのギャザー命令のみがリスト命令として含まれていたとすると、「0100000001000000」(ビット単位で記載すると長くなるので、ここでは便宜上16進数で表記する。)という値がソフトウェアビジブルレジスタ230に移送されることになる。
もし、上述したようにメモリアクセスリクエストの圧縮が正常に行われず、メモリポート0に3個のリクエストが発行されたとすると「0300000001000000」(16進表記)という値がソフトウェアビジブルレジスタ230に移送されることになる。
In step S105, the test program uses the above-described list instruction request number counter value transfer instruction (described with reference to FIG. 7) to set the value stored in the list instruction request
For example, if only one gather instruction described in FIG. 6 is included in the test instruction sequence as a list instruction, “0100000001000000” (because it becomes longer when written in bits, it is expressed in hexadecimal notation for convenience here). Is transferred to the software
If the compression of the memory access request is not normally performed as described above and three requests are issued to the
次にテストプログラムは、試験命令列のソフトウェアシミュレーションを実施する(ステップS106)。この時、テストプログラムは、通常の試験命令列のソフトウェアシミュレーションに加えて、リスト命令リクエスト数カウンタブロック211の動作(リスト命令リクエスト数カウンタ211−3の動作等)のソフトウェアシミュレーションも実施し、結果をソフトウェアシミュレータ実行結果記憶域320に保存する(図6の例では「0100000001000000」(16進数)となる)。 Next, the test program performs software simulation of the test instruction sequence (step S106). At this time, in addition to the software simulation of the normal test instruction sequence, the test program also performs the software simulation of the operation of the list instruction request counter block 211 (the operation of the list instruction request counter 211-3, etc.). It is stored in the software simulator execution result storage area 320 (in the example of FIG. 6, it is “010000000000000” (hexadecimal number)).
次にテストプログラムは、ステップS106で保存したリスト命令リクエスト数カウンタブロックのソフトウェアシミュレーション結果を読み出す(ステップS107)・そして、テストプログラムは、その読み出されたシミュレーション結果の値と、試験命令列中のリスト命令(ここでは図6のギャザー命令)の実際のハードウェアでの実行結果が保存されているソフトウェアビジブルレジスタ230の値との比較を行う(ステップ108)。これら両者の値が一致すれば、正常であり、一致しなければメモリアクセスリクエストの圧縮が正常に行われなかったことがわかる。
Next, the test program reads the software simulation result of the list command request counter block stored in step S106 (step S107). The test program then stores the value of the read simulation result and the test command string. The list instruction (here, the gather instruction in FIG. 6) is compared with the value of the software
なお、ステップS103で、試験命令列にリスト命令が含まれていない場合は、テストプログラムは、リスト命令リクエスト数カウンタブロック211の動作のソフトウェアシミュレーションを含まない通常の試験命令列のソフトウェアシミュレーションを実施する(ステップS104)。
If the list instruction is not included in the test instruction sequence in step S103, the test program performs a normal software simulation of the test instruction sequence that does not include the software simulation of the operation of the list instruction
以上のようにして情報処理装置100はテストプログラムの実行を終了する。
As described above, the
上述したように、本実施形態には、リスト命令におけるメモリアクセスリクエストの圧縮処理が正しく行われたかどうかを検証することできるという効果がある。 As described above, this embodiment has an effect that it is possible to verify whether or not the compression process of the memory access request in the list instruction is correctly performed.
その理由は、実際のハードウェア上において、リスト命令が発行する実際のメモリアクセスリクエストの数をリスト命令リクエスト数カウンタブロックで計数し、その計数結果を、リスト命令のメモリアクセスリクエスト数のソフトウェアシミュレーションでの結果と比較できるようにし、メモリアクセスリクエストの圧縮処理等が正しく行われたかどうかを判断できるようにしたからである。 The reason is that the actual number of memory access requests issued by the list instruction is counted by the list instruction request counter block on the actual hardware, and the count result is obtained by software simulation of the number of memory access requests of the list instruction. This is because it can be compared with the result of the above, and it can be determined whether or not the compression processing or the like of the memory access request has been correctly performed.
10 情報処理装置
20 制御手段
21 メモリリクエスト制御部
22 ベクトルレジスタ
30 記憶手段
31 データベース記憶域
100 情報処理装置
200 制御手段
210 メモリリクエスト制御部
211 リスト命令リクエスト数カウンタブロック
211−0 リスト命令リクエスト数カウンタ部
211−1 アンドゲート
211−2 セレクタ
211−3 リスト命令リクエスト数カウンタ
211−4 +1加算器
220 ベクトルレジスタ
230 ソフトウェアビジブルレジスタ
300 記憶手段
310 データ記憶域
320 ソフトウェアシミュレータ実行結果記憶域
DESCRIPTION OF
Claims (6)
前記記憶手段に対して複数のアクセスを一括で行うリスト命令が同一の前記ポートへの複数のメモリアクセスリクエストを発行するものである場合に、当該複数のアクセスリクエストを一つのメモリアクセスリクエストに圧縮して前記記憶手段に当該ポートを介して発行するメモリリクエスト制御手段と、
前記複数のメモリポートと一対一対応に設けられ、前記リスト命令が発行され、かつ、対応する前記ポートに前記メモリアクセスリクエストが前記メモリリクエスト制御手段から発行された場合に、該メモリアクセスリクエストの数を計数する複数のカウンタ手段と、
前記複数のカウンタ手段の内容と該カウンタ手段のソフトウェアシミュレーションの結果とを比較し、リスト命令に係わる障害の有無を判断する制御手段と
を含む情報処理装置。 Storage means having a plurality of memory ports and storing a plurality of data, wherein the data is accessed via the memory ports;
When a list instruction that performs a plurality of accesses to the storage unit collectively issues a plurality of memory access requests to the same port, the plurality of access requests are compressed into one memory access request. Memory request control means for issuing to the storage means via the port;
The number of memory access requests provided in a one-to-one correspondence with the plurality of memory ports, when the list instruction is issued, and when the memory access request is issued to the corresponding port from the memory request control means A plurality of counter means for counting
Control means for comparing the contents of the plurality of counter means and the result of software simulation of the counter means to determine the presence or absence of a failure related to the list command;
An information processing apparatus including:
を含むことを特徴とする請求項1記載の情報処理装置。 2. An information processing apparatus according to claim 1, further comprising register means for concatenating the contents of said plurality of counter means and storing them as one count value.
前記記憶手段に対して複数のアクセスを一括で行うリスト命令が、同一の前記ポートへの複数のメモリアクセスリクエストを発行するものである場合に、当該複数のアクセスリクエストを一つのメモリアクセスリクエストに圧縮して前記記憶手段に当該ポートを介して発行するメモリリクエスト制御ステップと、
前記リスト命令が発行され、かつ、前記ポートに前記メモリアクセスリクエストが前記メモリリクエスト制御ステップで発行された場合に、該メモリアクセスリクエストの数を前記ポート毎に計数する計数ステップと、
前記計数ステップでの計数結果と該計数ステップのソフトウェアシミュレーションの結果とを比較し、リスト命令に係わる障害の有無を判断する判断ステップと
を含むことを特徴とするリスト命令の検証方法。 In an information processing apparatus having a plurality of memory ports and storing a plurality of data, and having a storage means for accessing the data via the memory ports,
When a list instruction that performs a plurality of accesses to the storage unit collectively issues a plurality of memory access requests to the same port, the plurality of access requests are compressed into one memory access request. A memory request control step for issuing to the storage means via the port;
A counting step of counting the number of memory access requests for each port when the list instruction is issued and the memory access request is issued to the port in the memory request control step;
A method for verifying a list instruction, comprising: a step of comparing a count result in the counting step with a result of software simulation in the counting step to determine whether there is a fault related to the list instruction.
前記記憶手段に対して複数のアクセスを一括で行うリスト命令が、同一の前記ポートへの複数のメモリアクセスリクエストを発行するものである場合に、当該複数のアクセスリクエストを一つのメモリアクセスリクエストに圧縮して前記記憶手段に当該ポートを介して発行するメモリリクエスト制御処理と、
前記リスト命令が発行され、かつ、前記ポートに前記メモリアクセスリクエストが前記メモリリクエスト制御処理で発行された場合に、該メモリアクセスリクエストの数を前記ポート毎に計数する計数処理と、
前記計数処理での計数結果と該計数処理のソフトウェアシミュレーションの結果とを比較し、リスト命令に係わる障害の有無を判断する判断処理と
をコンピュータに実行
させることを特徴とするリスト命令の検証のためのプログラム。 In an information processing apparatus having a plurality of memory ports and storing a plurality of data, and having a storage means for accessing the data via the memory ports,
When a list instruction that performs a plurality of accesses to the storage unit collectively issues a plurality of memory access requests to the same port, the plurality of access requests are compressed into one memory access request. A memory request control process to be issued to the storage means via the port;
A counting process for counting the number of memory access requests for each port when the list instruction is issued and the memory access request is issued to the port by the memory request control process;
For verifying the list instruction, the computer executes a determination process for comparing the counting result of the counting process with the result of the software simulation of the counting process and determining whether there is a fault related to the list instruction. Program.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012059556A JP5882800B2 (en) | 2012-03-16 | 2012-03-16 | Information processing device having list command verification function, list command verification method, and program for list command verification |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012059556A JP5882800B2 (en) | 2012-03-16 | 2012-03-16 | Information processing device having list command verification function, list command verification method, and program for list command verification |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2013196068A JP2013196068A (en) | 2013-09-30 |
JP5882800B2 true JP5882800B2 (en) | 2016-03-09 |
Family
ID=49395001
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2012059556A Active JP5882800B2 (en) | 2012-03-16 | 2012-03-16 | Information processing device having list command verification function, list command verification method, and program for list command verification |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5882800B2 (en) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114594991A (en) | 2020-12-03 | 2022-06-07 | 意法半导体股份有限公司 | Hardware accelerator device, corresponding system and operating method |
US11742049B2 (en) * | 2020-12-03 | 2023-08-29 | Stmicroelectronics S.R.L. | Hardware accelerator device, corresponding system and method of operation |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS60220467A (en) * | 1984-04-17 | 1985-11-05 | Fujitsu Ltd | Access control circuit of vector register |
JPS61128371A (en) * | 1984-11-28 | 1986-06-16 | Hitachi Ltd | Vector processor |
JPH0520350A (en) * | 1991-07-10 | 1993-01-29 | Koufu Nippon Denki Kk | Vector processing device |
-
2012
- 2012-03-16 JP JP2012059556A patent/JP5882800B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
JP2013196068A (en) | 2013-09-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11609762B2 (en) | Systems and methods to load a tile register pair | |
US9298593B2 (en) | Testing a software interface for a streaming hardware device | |
US8990451B2 (en) | Controller for direct access to a memory for the direct transfer of data between memories of several peripheral devices, method and computer program enabling the implementation of such a controller | |
KR102287677B1 (en) | Data accessing method, apparatus, device, and storage medium | |
US20170063401A1 (en) | Partial ecc mechanism for a byte-write capable register | |
US9436450B2 (en) | Method and apparatus for optimising computer program code | |
JP7135853B2 (en) | Reduce buffer overflow | |
US9690722B2 (en) | Memory controller and memory access method | |
US9262625B2 (en) | Address translation/specification field for hardware accelerator | |
KR20090127689A (en) | Memory test device and testing method for memory | |
JP5882800B2 (en) | Information processing device having list command verification function, list command verification method, and program for list command verification | |
JPS59231652A (en) | Detection system for memory access overlap | |
US20120239826A1 (en) | System authorizing direct data transfers between memories of several components of that system | |
US20170186498A1 (en) | Hardware apparatuses and methods to check data storage devices for transient faults | |
US9218442B2 (en) | Firmware and hardware verification using Opcode comparison | |
TWI766056B (en) | Method, apparatus, computer program, and computer-readable storage medium for data processing | |
US20190369997A1 (en) | Simulation device, simulation method, and computer readable medium | |
JP7335952B2 (en) | Generating vector predicate summaries | |
JP7124608B2 (en) | Calculator and calculation method | |
US8589735B2 (en) | Creating randomly ordered fields while maintaining the temporal ordering based on the value of the fields | |
US11809869B2 (en) | Systems and methods to store a tile register pair to memory | |
CN112416687B (en) | Method and system for verifying access operation, verification device and storage medium | |
US8447932B2 (en) | Recover store data merging | |
GB2621164A (en) | Apparatus, method of operating an apparatus and a computer program | |
JP3291391B2 (en) | Arithmetic unit test equipment |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A712 Effective date: 20140819 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20150216 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20151027 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20151104 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20151210 |
|
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: 20160112 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20160204 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5882800 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |