JP2023133850A - Arithmetic processing device and processing method - Google Patents
Arithmetic processing device and processing method Download PDFInfo
- Publication number
- JP2023133850A JP2023133850A JP2022039071A JP2022039071A JP2023133850A JP 2023133850 A JP2023133850 A JP 2023133850A JP 2022039071 A JP2022039071 A JP 2022039071A JP 2022039071 A JP2022039071 A JP 2022039071A JP 2023133850 A JP2023133850 A JP 2023133850A
- Authority
- JP
- Japan
- Prior art keywords
- address
- contracted
- addresses
- generation unit
- queue
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0844—Multiple simultaneous or quasi-simultaneous cache accessing
- G06F12/0855—Overlapped cache accessing, e.g. pipeline
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0875—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with dedicated cache, e.g. instruction or stack
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1605—Handling requests for interconnection or transfer for access to memory bus based on arbitration
- G06F13/161—Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement
- G06F13/1626—Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement by reordering requests
- G06F13/1631—Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement by reordering requests through address comparison
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/3004—Arrangements for executing specific machine instructions to perform operations on memory
- G06F9/30043—LOAD or STORE instructions; Clear instruction
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3824—Operand accessing
- G06F9/3834—Maintaining memory consistency
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1048—Scalability
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/45—Caching of specific data in cache memory
- G06F2212/452—Instruction code
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Advance Control (AREA)
- Executing Machine-Instructions (AREA)
Abstract
Description
本発明は、演算処理装置および演算処理方法に関する。 The present invention relates to an arithmetic processing device and an arithmetic processing method.
SIMD(Single Instruction Multiple Data)演算機能を有する演算処理装置では、複数のデータの演算を並列に実行することで処理性能が向上する。例えば、複数のデータの演算に使用する複数のデータはベクトルロード命令を使用してメモリから並列に読み出される。すなわち、SIMD演算機能を有する演算処理装置は、データ転送を効率化するアーキテクチャを有する。 In an arithmetic processing device having a SIMD (Single Instruction Multiple Data) arithmetic function, processing performance is improved by executing arithmetic operations on a plurality of data in parallel. For example, multiple pieces of data used in multiple data operations are read from memory in parallel using vector load instructions. That is, an arithmetic processing device having a SIMD arithmetic function has an architecture that makes data transfer more efficient.
例えば、この種の演算処理装置において、ベクトル演算の実行時にアドレスハザード状態のメモリアドレスが存在するかを決定するチェック命令を実行することで、アドレスの衝突を管理する手法が知られている(例えば、特許文献1参照)。また、ベクトルギャザー命令の実行において、1つのライン内のアドレスの重複数を求めてリクエストを統合し、複数のライン間のアドレスの重複数の積算値をスカラ演算部に通知する手法が知られている(例えば、特許文献2参照)。さらに、領域指定付きのベクトルスキャッター命令のアドレス範囲と後続のメモリアクセス命令のアドレスとの重複を検出した場合、後続のメモリアクセス命令をホールドする手法が知られている(例えば、特許文献3参照)。 For example, in this type of arithmetic processing device, there is a known method for managing address collisions by executing a check instruction to determine whether a memory address in an address hazard state exists when a vector operation is executed (e.g. , see Patent Document 1). In addition, when executing a vector gather instruction, there is a known method of calculating the number of duplicate addresses in one line, integrating the requests, and notifying the scalar operation unit of the integrated value of the number of duplicate addresses between multiple lines. (For example, see Patent Document 2). Furthermore, there is a known method of holding the subsequent memory access instruction when an overlap between the address range of a vector scatter instruction with area specification and the address of a subsequent memory access instruction is known (for example, Patent Document 3 reference).
ところで、命令をアウトオブオーダで実行する演算処理装置は、命令をインオーダでコミットさせる機構を有する。メモリアクセス命令をインオーダでコミットさせる場合、メモリアクセス命令に含まれるアドレスを保持するロードストアキューが設けられる場合がある。そして、ロードストアキューに保持されたアドレスと、後続または先行のメモリアクセス命令に含まれるアドレスとの衝突が判定され、判定結果に基づいてロードストアキューに保持されたメモリアクセス命令をコミットするか否かが決定される。 By the way, an arithmetic processing device that executes instructions out-of-order has a mechanism for committing instructions in-order. When committing memory access instructions in-order, a load/store queue may be provided to hold addresses included in the memory access instructions. Then, a collision between the address held in the load store queue and an address included in a subsequent or preceding memory access instruction is determined, and based on the determination result, whether or not to commit the memory access instruction held in the load store queue is determined. is determined.
例えば、メモリアクセス命令が実行されると、そのアドレスがロードストアキューに格納され、また既に格納されている別のメモリアクセス命令のアドレスと比較される。ギャザー命令やスキャッター命令等の複数のアドレスを含むベクトルメモリアクセス命令の場合には、それぞれ複数のアドレスが、ロードストアキューに格納され、また比較される。 For example, when a memory access instruction is executed, its address is stored in a load store queue and compared with the address of another memory access instruction that has already been stored. In the case of a vector memory access instruction that includes multiple addresses, such as a gather instruction or a scatter instruction, each of the multiple addresses is stored in a load store queue and compared.
このため、ベクトルメモリアクセス命令を実行可能な演算処理装置では、複数のアドレスを並列に比較する複数の比較器が設けられることがある。複数の比較器を設けた場合、演算処理装置の回路規模が増大する。 For this reason, an arithmetic processing device capable of executing vector memory access instructions may be provided with a plurality of comparators that compare a plurality of addresses in parallel. When a plurality of comparators are provided, the circuit scale of the arithmetic processing device increases.
1つの側面では、本発明は、メモリアクセス命令に含まれるアドレスとメモリアクセス命令を保持するキューに保持されたアドレスとの衝突を判定する衝突判定部の回路規模を低減することを目的とする。 In one aspect, the present invention aims to reduce the circuit scale of a collision determination unit that determines a collision between an address included in a memory access instruction and an address held in a queue that holds memory access instructions.
一つの観点によれば、演算処理装置は、少なくとも1つのアドレスを含むメモリアクセス命令を保持するキューと、メモリアクセス命令に複数のアドレスが含まれる場合、前記複数のアドレスのビットを縮約して縮約アドレスを生成する縮約アドレス生成部と、前記縮約アドレスと前記キューに保持されたアドレスとの衝突を判定する衝突判定部と、前記衝突判定部による判定結果に基づいて、前記キューに保持されたメモリアクセス命令の処理を制御するアクセス制御部と、を有する。 According to one aspect, an arithmetic processing unit includes a queue holding a memory access instruction including at least one address, and when the memory access instruction includes a plurality of addresses, compressing bits of the plurality of addresses. a condensed address generation unit that generates a condensed address; a collision determination unit that determines a collision between the condensed address and an address held in the queue; and an access control unit that controls processing of the held memory access command.
メモリアクセス命令に含まれるアドレスとメモリアクセス命令を保持するキューに保持されたアドレスとの衝突を判定する衝突判定部の回路規模を低減することができる。 It is possible to reduce the circuit scale of a collision determination unit that determines a collision between an address included in a memory access command and an address held in a queue that holds memory access commands.
以下、図面を参照して、実施形態が説明される。 Embodiments will be described below with reference to the drawings.
図1は、一実施形態における演算処理装置の一例を示す。図1に示す演算処理装置1は、例えば、SIMD演算命令を実行可能なCPU(Central Processing Unit)等のプロセッサである。
FIG. 1 shows an example of an arithmetic processing device in one embodiment. The
演算処理装置1は、ロードストアキュー2、アクセス制御部8およびデータキャッシュ9を有する。ロードストアキュー2は、縮約アドレス生成部3、ペイロード4および一致判定部5を有する。なお、図1は、メモリアクセスに使用する要素の一部を示している。実際には、演算処理装置1は、図示しない命令キャッシュ、命令デコーダ、リザベーションステーション等のスケジューラ、レジスタファイル、SIMD演算命令を実行可能な演算器を含む演算ユニット等を有してもよい。
The
リザベーションステーション等のスケジューラを有する演算処理装置1は、命令デコーダがデコードした命令順(すなわち、プログラムに記述された命令順)と異なる順で命令を実行する場合がある。このため、ロード命令およびストア命令のインオーダ順でのコミットを保証するために、アドレスの衝突を検出するロードストアキュー2が設けられる。アドレスの衝突については、図2で説明される。ロード命令およびストア命令は、単一のアドレスまたは複数のアドレスを含む。
An
縮約アドレス生成部3は、ロード命令またはストア命令等のメモリアクセス命令MAに複数のアドレスAD(AD0-AD7)が含まれる場合、複数のアドレスADを縮約して縮約アドレスCADを生成する。例えば、縮約アドレス生成部3は、スケジューラから発行されるベクトルロード命令またはベクトルストア命令に基づいて、ベクトルロード命令またはベクトルストア命令に含まれる複数のアドレスを縮約する。 When a memory access instruction MA such as a load instruction or a store instruction includes a plurality of addresses AD (AD0-AD7), the abbreviated address generation unit 3 abridges the plurality of addresses AD to generate an abbreviated address CAD. . For example, the reduced address generation unit 3 reduces a plurality of addresses included in a vector load instruction or a vector store instruction based on a vector load instruction or a vector store instruction issued from a scheduler.
例えば、ベクトルロード命令およびベクトルストア命令として、アドレスが昇順または降順で連続する連続アドレスベクトルロード命令および連続アドレスベクトルストア命令や、アドレスが等間隔であるストライドベクトルロード命令およびストライドベクトルストア命令がある。また、ベクトルロード命令として、任意の複数のアドレスが指定されるギャザー命令がある。ベクトルストア命令として、任意の複数のアドレスが指定されるスキャッター命令がある。 For example, vector load instructions and vector store instructions include continuous address vector load instructions and continuous address vector store instructions in which addresses are consecutive in ascending or descending order, and stride vector load instructions and stride vector store instructions in which addresses are equally spaced. Further, as a vector load instruction, there is a gather instruction in which a plurality of arbitrary addresses are specified. As a vector store instruction, there is a scatter instruction in which multiple arbitrary addresses are specified.
図1では、8個のアドレスAD0-AD7が縮約される例が示されるが、縮約アドレス生成部3は、2個以上のアドレスADを縮約可能であり、単一のアドレスADを縮約アドレスCADとして出力することも可能である。例えば、縮約アドレス生成部3は、メモリアクセス命令MAに対応して単一のアドレスADを受信した場合、単一のアドレスADを縮約アドレスCADとして出力してもよい。この場合、アドレスADをペイロード4に転送する経路は省略されてもよい。
Although FIG. 1 shows an example in which eight addresses AD0 to AD7 are contracted, the contracted address generation unit 3 can contract two or more addresses AD, and can contract a single address AD. It is also possible to output as approximately address CAD. For example, when the contracted address generation unit 3 receives a single address AD in response to the memory access command MA, it may output the single address AD as the contracted address CAD. In this case, the route for transferring the address AD to the
ペイロード4は、メモリアクセス命令MAを保持する複数のエントリENTを含む。ペイロード4は、キューの一例である。例えば、エントリENTには、実行フラグ、ロード命令またはストア命令を示す命令コード、アドレスおよびデータがメモリアクセス命令MAとして保持される。エントリENTに保持されるデータは、メモリアクセス命令MAに含まれるストアデータまたはデータキャッシュ9から読み出されたロードデータである。図1では、簡単化のため、各エントリENTのアドレス領域のみが示される。ペイロード4の例は、図2に示される。
ペイロード4は、各エントリENTに保持しているアドレス(ADまたはCAD)を一致判定部5に出力する。また、ペイロード4は、アクセス制御部8から指示されるエントリENTに保持しているメモリアクセス命令MAをデータキャッシュ9に出力する。ペイロード4は、図示しないスケジューラおよびレジスタファイルから転送されるメモリアクセス命令MAおよび縮約アドレス生成部3から出力される縮約アドレスCADを保持する。
The
縮約アドレス生成部3が生成した縮約アドレスCADをペイロード4に格納することで、縮約前の複数のアドレスADをペイロード4に格納する場合に比べて、ペイロード4に格納可能なメモリアクセス命令MAの数を増やすことができる。これにより、アクセス制御部8により処理を制御可能なメモリアクセス命令MAの数を増やすことができ、演算処理装置1の処理性能を向上することができる。また、演算処理装置1の処理性能を変えない場合、ペイロード4のエントリENTの数を削減することが可能になり、演算処理装置1の回路規模を削減することができる。
By storing the abbreviated address CAD generated by the abbreviated address generation unit 3 in the
一致判定部5は、ペイロード4のエントリENTにそれぞれ対応する複数の一致判定回路6を有する。各一致判定回路6は、ペイロード4からのアドレス(ADまたはCAD)を縮約アドレス生成部3が生成した縮約アドレスCADと比較し、アドレスの衝突を検出した場合、衝突信号COLを出力する。一致判定部5は、縮約アドレスCADとペイロード4に保持されたアドレスとの衝突を判定する衝突判定部の一例である。
The match determining unit 5 includes a plurality of
アクセス制御部8は、ペイロード4に保持されたメモリアクセス命令MAの処理を制御する。例えば、アクセス制御部8は、ペイロード4に保持されたメモリアクセス命令MAに基づいてデータキャッシュ9のアクセスを制御する。また、アクセス制御部8は、一致判定部5から出力される衝突信号COLに基づいて、ペイロード4に保持されたメモリアクセス命令MAのコミット処理を制御する。
The
データキャッシュ9は、ロード命令に対応する読み出し要求の受信に基づいて、読み出し対象のデータDTをデータキャッシュ9内のデータアレイから読み出してレジスタファイルに出力する。データキャッシュ9は、ストア命令に対応する書き込み要求の受信に基づいて、データアレイに保持されたデータを書き込み対象のデータで更新する。データキャッシュ9は、アクセス対象のデータをデータアレイに保持していない場合(キャッシュミス)、下位のキャッシュまたはメインメモリ等のメモリからデータを読み出す。
The
なお、図1では、ロードストアキュー2は、ロード命令とストア命令とに共通に動作する例が示される。しかしながら、例えば、ロードストアキュー2は、ロード命令とストア命令とのそれぞれに対応して動作してもよい。この場合、ペイロード4は、ロード命令が格納される複数のエントリENTと、ストア命令が格納される複数のエントリENTとを有する。
Note that FIG. 1 shows an example in which the load/
そして、縮約アドレス生成部3は、ロード命令に含まれる複数のアドレスADを受信した場合、生成した縮約アドレスCADをストア命令用のエントリENTにそれぞれ保持された複数のアドレスと比較して衝突を判定する。縮約アドレス生成部3は、ストア命令に含まれる複数のアドレスADを受信した場合、生成した縮約アドレスCADをロード命令用のエントリENTにそれぞれ保持された複数のアドレスと比較して衝突を判定する。 When the abbreviated address generation unit 3 receives a plurality of addresses AD included in the load instruction, the abbreviated address generation unit 3 compares the generated abbreviated address CAD with the plurality of addresses respectively held in the entry ENT for the store instruction to avoid collisions. Determine. When the abbreviated address generation unit 3 receives a plurality of addresses AD included in a store instruction, the abbreviated address generation unit 3 compares the generated abbreviated address CAD with the plurality of addresses respectively held in the entry ENT for the load instruction to determine a conflict. do.
図2は、図1のペイロード4の状態の変化の一例を示す。図2では、ペイロード4のエントリENT1、ENT2、ENT3、ENT4に2個のストア命令ST(ST1、ST2)と2個のロード命令LD(LD3、LD4)とがそれぞれ格納されている例が示される。例えば、ペイロード4は、リングバッファとして機能し、エントリENTの番号は、プログラムでの命令の記述順を示す。
FIG. 2 shows an example of a change in the state of the
実行フラグの"0"は、命令が実行されていないことを示す。実行フラグの"1"は、命令が実行されたことを示す。アドレスおよびデータの欄に示す数値の前に付した"0x"は、数値が16進数であることを示す。アドレスおよびデータの欄に示す符号n/aは、アドレスまたはデータが確定していないことを示す。網掛けのエントリENTは、状態が変化したことを示す。例えば、ペイロード4の制御は、図1のアクセス制御部8により実行される。
An execution flag of "0" indicates that the instruction is not being executed. An execution flag of "1" indicates that the instruction has been executed. "0x" added in front of the numerical value shown in the address and data columns indicates that the numerical value is a hexadecimal number. The symbol n/a shown in the address and data column indicates that the address or data has not been determined. A shaded entry ENT indicates that the state has changed. For example, control of the
なお、図2では、簡単化のため、単一のアドレスを含むスカラストア命令STおよびスカラロード命令LDがペイロード4に格納される例が示される。しかしながら、複数のアドレスを含むベクトルストア命令STおよびベクトルロード命令LDがペイロード4に格納されてもよい。ベクトルストア命令STおよびベクトルロード命令LDがペイロード4に格納される場合、エントリENTには、縮約アドレスCADが格納される。また、ベクトルストア命令STがペイロード4に格納される場合、複数のアドレスにそれぞれ対応する複数のデータが格納される。
Note that in FIG. 2, for the sake of simplicity, an example is shown in which a scalar store instruction ST and a scalar load instruction LD including a single address are stored in the
状態1では、ストア命令ST1およびロード命令LD4が実行され、ストア命令ST2およびロード命令LD3は実行されていない。ストア命令ST2のアドレスが確定していないため、ストア命令ST2の後続のロード命令LD4により取得したデータ"0x456"は、正しくない可能性がある。
In
次に、状態2において、ロード命令LD3が実行される。ロード命令LD3に含まれるアドレスは、縮約アドレスCADとして縮約アドレス生成部62から出力される。一致判定部5は、命令の種別にかかわりなく、ロード命令LD3のアドレスとペイロード4に格納された全ての命令のアドレスとを比較する。
Next, in
アクセス制御部8は、一致判定部5による比較結果のうち、ロード命令LD3のアドレスと、ペイロード4に格納された、ロード命令LD3に先行するストア命令ST1、ST2のアドレスの比較結果を参照する。そして、アクセス制御部8は、ロード命令LD3のアドレスとストア命令ST1のアドレスとの衝突を検出する。このため、アクセス制御部8は、ロード命令LD3の読み出し対象のデータを、データキャッシュ9から読み出すのではなく、エントリENT1からフォワーディングすることを決定し、エントリENT1に保持されたデータ"0x123"をエントリENT3に格納する。
The
次に、状態3において、縮約アドレス生成部3によりストア命令ST2のアドレスがエントリENT2に格納された後、ストア命令ST2が実行される。そして、ストア命令ST2のアドレス"0x100"とデータ"0x789"とがエントリENT2に格納される。ストア命令ST2に含まれるアドレスは、縮約アドレスCADとして縮約アドレス生成部62から出力される。
Next, in state 3, after the contracted address generation unit 3 stores the address of the store instruction ST2 in the entry ENT2, the store instruction ST2 is executed. Then, the address "0x100" and data "0x789" of the store instruction ST2 are stored in the entry ENT2. The address included in the store instruction ST2 is output from the abbreviated
一致判定部5は、命令の種別にかかわりなく、ストア命令ST2のアドレスとペイロード4に格納された全ての命令のアドレスとを比較する。アクセス制御部8は、一致判定部5による比較結果のうち、ストア命令ST2のアドレスと、ペイロード4に格納された、ストア命令ST2より後続のロード命令LD3、LD4のアドレスの比較結果を参照する。そして、アクセス制御部8は、ストア命令ST2のアドレスとロード命令LD3のアドレスとの衝突を検出する。
The match determining unit 5 compares the address of the store instruction ST2 with the addresses of all instructions stored in the
状態4において、アクセス制御部8は、ストア命令ST2の後続のロード命令LD3、LD4の実行をキャンセルし、エントリENT3、ENT4から追い出す。これにより、状態2でエントリENT1から誤ってフォワーディングされたロード命令LD3のデータ"0x123"をキャンセルすることができる。キャンセルされたロード命令LD3、LD4は、その後、再発行される。
In
この実施形態では、一致判定部5は、縮約アドレス生成部3が生成した縮約アドレスCADをペイロード4に保持されたアドレスと比較するため、縮約前の複数のアドレスを比較に使用する場合に比べて、一致判定回路6の数を削減することができる。これにより、縮約前の複数のアドレスを比較に使用する場合に比べて、一致判定部5の回路規模を低減することができる。
In this embodiment, the match determining unit 5 compares the abbreviated address CAD generated by the abbreviated address generating unit 3 with the address held in the
また、縮約アドレスCADがペイロード4に格納されるため、縮約前の複数のアドレスをペイロード4に格納する場合に比べて、エントリENTの使用効率を向上することができ、ペイロード4に格納可能なメモリアクセス命令MAの数を増やすことができる。これにより、アクセス制御部8により処理を制御可能なメモリアクセス命令MAの数を増やすことができ、演算処理装置1の処理性能を向上することができる。
In addition, since the contracted address CAD is stored in
また、エントリENTの使用効率を向上しなくてよい場合、エントリENTの数を削減することができる。これにより、一致判定回路6の数をさらに削減することができ、一致判定部5の回路規模をさらに低減することができる。
Furthermore, if it is not necessary to improve the usage efficiency of entries ENT, the number of entries ENT can be reduced. Thereby, the number of
図3は、図1の縮約アドレス生成部3による縮約アドレスの生成方法の例を示す。図3では、メモリアクセス命令MA1が、8個のアドレスAD0-AD7を含むギャザー命令またはスキャッター命令である場合の例が示される。なお、簡単化のため、図3では、各アドレスAD0-AD7が8ビットである例が示されるが、各アドレスAD0-AD7のビット数は、8ビットに限定されない。図3以降で説明されるアドレスAD0-AD7も8ビットに限定されない。 FIG. 3 shows an example of a method for generating a contracted address by the contracted address generation unit 3 of FIG. 1. FIG. 3 shows an example where the memory access instruction MA1 is a gather instruction or a scatter instruction including eight addresses AD0 to AD7. For simplicity, FIG. 3 shows an example in which each address AD0-AD7 is 8 bits, but the number of bits of each address AD0-AD7 is not limited to 8 bits. Addresses AD0 to AD7, which will be explained from FIG. 3 onwards, are also not limited to 8 bits.
生成方法1では、縮約アドレス生成部3は、アドレスAD0-AD7の各ビット位置において、ビット値が全て"0"の場合、縮約アドレスCADのビット値を"0"に設定し、ビット値が全て"1"の場合、縮約アドレスCADのビット値を"1"に設定する。また、縮約アドレス生成部3は、アドレスAD0-AD7の各ビット位置において、"0"または"1"のビット値が混在する場合、縮約アドレスCADのビット値を不定値"X"に設定する。生成方法2では、縮約アドレス生成部3は、生成方法1の規則に加えて、縮約アドレスCADで不定値"X"を示すビット位置より下位のビットを不定値"X"に設定する。
In
このように、縮約アドレス生成部3は、生成方法1または生成方法2を使用して、"0"、"1"、"X"の3値論理で表現される縮約アドレスCADを生成することができる。なお、メモリアクセス命令MA1が、単一のアドレスADを含む場合、縮約アドレス生成部3は、単一のアドレスADを縮約アドレスCADとする。
In this way, the contracted address generation unit 3 uses
これにより、メモリアクセス命令MAが単一のアドレスADを含むか複数のアドレスADを含むかによらず、縮約アドレス生成部3が生成した縮約アドレスCADをペイロード4に格納することができる。したがって、単一のアドレスADであるか縮約アドレスCADであるかに応じてペイロード4の格納方法を相違させる場合に比べて、ペイロード4にアドレスAD、CADを格納する制御を容易にすることができる。
Thereby, the abbreviated address CAD generated by the abbreviated address generation unit 3 can be stored in the
但し、演算処理装置1は、2進数を扱うため、不定値"X"を使用することができない。このため、実際には、図8で説明されるように、縮約アドレス生成部3は、3値論理で表現される縮約アドレスCADを2進数で表現可能な形式に変換する。なお、縮約アドレス生成部3は、例えば、縮約アドレスCADにおいて、不定値"X"を値"00"に設定し、値"0"を値"01"に設定し、値"1"を値"10"に設定してもよい。
However, since the
図4は、図3の縮約アドレスCADで示されるアドレス範囲の一例を示す。図4に例示するメモリアクセス命令MA1に含まれる8個のアドレスAD0-AD7は、図3に示したアドレスAD0-AD7と同じである。また、図4に例示する縮約アドレスMA1.CADは、図3の生成方法2に示した縮約アドレスMA1.CADと同じである。縮約アドレスCADが図3の生成方法2により生成される場合、一致判定部5は、図4に示す"10100000"から"10111111"の範囲のアドレスADを縮約アドレスMA1.CADと衝突すると判定する。
FIG. 4 shows an example of the address range indicated by the contracted address CAD in FIG. The eight addresses AD0-AD7 included in the memory access instruction MA1 illustrated in FIG. 4 are the same as the addresses AD0-AD7 illustrated in FIG. 3. Further, the contracted address MA1.exemplified in FIG. CAD uses the contracted address MA1. shown in
縮約アドレスCADが図3の生成方法1により生成される場合、例えば、アドレスMA1.AD0の最下位から2ビット目が"0"である"10110001"のアドレスADは、縮約アドレスMA1.CADと衝突していないと判定される。このため、生成方法1では、生成方法2に比べて、縮約アドレスCADに含まれるアドレスADの数を減らすことができ、衝突の判定精度を向上することができる。
When the contracted address CAD is generated by the
図5は、図1の一致判定部5の各一致判定回路6によるアドレスの判定動作の一例を示す。一致判定回路6は、図1に示したように、縮約アドレス生成部3が生成した縮約アドレスCADの各ビットと、ペイロード4のエントリENTのいずれかに保持されたアドレスの各ビットとを比較する。ここで、ペイロード4のエントリENTのいずれかに保持されたアドレスは、単一のアドレスADまたは縮約アドレスCADである。
FIG. 5 shows an example of an address determination operation by each
例えば、一致判定回路6は、比較するビット値が"0"と"1"または"1"と"0"の場合、不一致を示す"0"をアンド回路ANDに出力する。一致判定回路6は、比較するビット値が"0"同士、"1"同士の場合、または、比較するビット値の少なくとも一方が不定値"X"の場合、一致を示す"1"をアンド回路ANDに出力する。
For example, when the bit values to be compared are "0" and "1" or "1" and "0", the
アンド回路ANDは、比較結果のビット値が全て"1"(全て一致)の場合、衝突信号COLをアドレスの衝突を示す"1"に設定する。アンド回路ANDは、比較結果のビット値のいずれかが"0"(不一致)の場合、衝突信号COLをアドレスが衝突していないことを示す"0"に設定する。図1のアクセス制御部8は、各一致判定回路6から出力される衝突信号COLの論理値に基づいて、縮約アドレス生成部3が生成した縮約アドレスCADとペイロード4に保持されたアドレスとの衝突を判定する。そして、アクセス制御部8は、判定結果に基づいて、メモリアクセス命令MAをコミットするか否かを決定し、キューに保持されたメモリアクセス命令MAの処理を制御する。
If the bit values of the comparison result are all "1" (all match), the AND circuit AND sets the collision signal COL to "1" indicating address collision. If any of the bit values of the comparison result is "0" (mismatch), the AND circuit AND sets the collision signal COL to "0" indicating that there is no address collision. The
図6は、他の演算処理装置の一例を示す。図6に示す演算処理装置1Aは、図1の縮約アドレス生成部3を持たず、図1の一致判定部5およびアクセス制御部8の代わりに一致判定部5Aおよびアクセス制御部8Aを有する。
FIG. 6 shows an example of another arithmetic processing device. The
演算処理装置1Aが縮約アドレス生成部3を持たない場合、一致判定部5Aは、ベクトルロード命令LDまたはベクトルストア命令STに含まれる複数のアドレスAD0-AD7を直接受信する。そして、一致判定部5Aは、受信したアドレスAD0-AD7をペイロード4の各エントリENTに保持されたアドレスADと比較する。このため、一致判定部5Aは、アドレスAD0-AD7の数とエントリENTの数との積に対応する数の一致判定回路6を有する。
When the
アクセス制御部8Aは、全ての一致判定回路6から出力される衝突信号COLを受信し、受信した衝突信号COLに基づいて、ペイロード4に保持されたメモリアクセス命令MAのコミット処理を制御する。図6に示すように、縮約アドレス生成部3を持たない演算処理装置1Aの一致判定部5Aおよびアクセス制御部8Aの回路規模は、図1の一致判定部5およびアクセス制御部8の回路規模より大きい。
The
なお、例えば、図1の縮約アドレス生成部3の回路規模は、アドレスAD毎に一致判定回路6の2個分程度である。このため、図1の一致判定部5およびアクセス制御部8の回路規模の減少分は、縮約アドレス生成部3の回路規模の増加分に比べて十分に大きい。
Note that, for example, the circuit scale of the contracted address generation unit 3 in FIG. 1 is about two
以上、この実施形態では、一致判定部5は、縮約アドレス生成部3が生成した縮約アドレスCADをペイロード4に保持されたアドレスと比較する。このため、縮約前の複数のアドレスAD0-AD7を比較に使用する場合に比べて、一致判定回路6の数を削減することができ、一致判定部5の回路規模を低減することができる。
As described above, in this embodiment, the match determining unit 5 compares the abbreviated address CAD generated by the abbreviated address generating unit 3 with the address held in the
縮約アドレスCADがペイロード4に格納されるため、縮約前の複数のアドレスをペイロード4に格納する場合に比べて、エントリENTの使用効率を向上することができ、ペイロード4に格納可能なメモリアクセス命令MAの数を増やすことができる。これによりアクセス制御部8により処理を制御可能なメモリアクセス命令MAの数を増やすことができ、演算処理装置1の処理性能を向上することができる。
Since the contracted address CAD is stored in the
縮約アドレス生成部3により単一のアドレスADも縮約アドレスCADとすることで、メモリアクセス命令MAに含まれるアドレスADが単一か複数かによらず、縮約アドレス生成部3が生成した縮約アドレスCADをペイロード4に格納することができる。したがって、ペイロード4にアドレスAD、CADを格納する制御を容易にすることができる。
By converting a single address AD into a contracted address CAD by the contracted address generation unit 3, regardless of whether the address AD included in the memory access instruction MA is single or multiple, the contracted address generation unit 3 generates the contracted address AD. The condensed address CAD can be stored in the
図7は、別の実施形態における演算処理装置の一例を示す。図1から図6と同様の要素については、詳細な説明は省略する。図7に示す演算処理装置100は、図1の演算処理装置1と同様に、例えば、SIMD演算命令を実行可能なCPU等のプロセッサである。
FIG. 7 shows an example of an arithmetic processing device in another embodiment. Detailed description of elements similar to those in FIGS. 1 to 6 will be omitted. The
演算処理装置100は、命令キャッシュ10、デコーダ20、リザベーションステーション等のスケジューラ30、レジスタファイル40、複数のロードストア(LDST)ユニット50および複数の演算ユニット90を有する。
The
命令キャッシュ10は、メインメモリ等のメモリから転送される命令を保持し、保持している命令をデコーダ20に出力する。例えば、命令キャッシュ10は、1次命令キャッシュでもよい。命令キャッシュ10に保持される命令は、演算命令およびメモリアクセス命令である。
The
例えば、演算命令は、整数演算命令、固定小数点演算命令および浮動小数点演算命令等を含む。例えば、メモリアクセス命令は、ロード命令およびストア命令等を含む。また、整数演算命令、固定小数点演算命令および浮動小数点演算命令の少なくともいずれかは、SIMD演算命令を含んでもよい。さらに、図1の演算処理装置1と同様に、ロード命令は、単一のアドレスを含むスカラロード命令に加えて、ベクトルロード命令LDとして連続アドレスロード命令LDおよびギャザー命令を含む。ストア命令は、単一のアドレスを含むスカラストア命令に加えて、ベクトルストア命令STとして連続アドレスストア命令STおよびスキャッター命令を含む。
For example, the arithmetic instructions include integer arithmetic instructions, fixed point arithmetic instructions, floating point arithmetic instructions, and the like. For example, memory access instructions include load instructions, store instructions, and the like. Furthermore, at least one of the integer arithmetic instructions, fixed point arithmetic instructions, and floating point arithmetic instructions may include a SIMD arithmetic instruction. Furthermore, similar to the
デコーダ20は、命令キャッシュ10からインオーダで受信する命令をデコードし、デコードした命令をスケジューラ30に出力する。なお、演算処理装置100は、命令キャッシュ10とデコーダ20との間に命令キャッシュ10から転送される複数の命令を蓄積する命令バッファを有してもよい。
The
デコーダ20によりデコードされた命令に含まれる論理レジスタ番号は、例えば、リネームユニットによりレジスタファイル40内の物理レジスタを識別する物理レジスタ番号に変換されてもよい。論理レジスタ番号は、プログラムに記述されるレジスタ番号である。リネームユニットの搭載により、演算処理装置100は、プログラムで記述可能なレジスタの数より多い物理レジスタをレジスタファイル40に搭載することができる。この結果、リネームユニットを設けない場合に比べて、レジスタが競合する頻度を低減することができ、命令の実行効率を向上することができる。
The logical register number included in the instruction decoded by the
スケジューラ30は、デコーダ20から出力される演算命令を保持する複数のエントリを含む演算キューと、デコーダ20から出力されるメモリアクセス命令を保持する複数のエントリを含むメモリアクセスキューとを有する。スケジューラ30は、演算キューに保持した演算命令を実行可能な順にアウトオブオーダで演算ユニット90のいずれかに発行する。また、スケジューラ30は、メモリアクセスキューに保持した命令を実行可能な順にアウトオブオーダでロードストアユニット50のいずれかに出力する。
複数のロードストアユニット50の各々は、ロード命令およびストア命令を実行する。複数のロードストアユニット50の各々は、複数のアドレス計算器52を有する。また、複数のロードストアユニット50は、複数のロードストアユニット50に共通のロードストアキュー60、アクセス制御部70およびL1(Level 1)データキャッシュ80を有する。ロードストアキュー60は、複数のロードストアユニット50の各々に対応する縮約アドレス生成部62と、複数のロードストアユニット50に共通のペイロード64および一致判定部66を有する。一致判定部66は、複数の一致判定回路67を有する。
Each of the plurality of load/
複数のアドレス計算器52の各々は、レジスタファイル40から転送されるデータの加算処理等を実行することにより、メモリアクセス命令によるアクセス対象のアドレスを計算する。複数のアドレス計算器52の各々は、計算により得たアドレスを、対応する縮約アドレス生成部62およびペイロード64に出力する。また、ロード命令であればL1データキャッシュ80にアドレスADを出力する。各ロードストアユニット50に複数のアドレス計算器52を設けることで、ベクトルロード命令またはベクトルストア命令に含まれる複数のアドレスを並列に計算することができる。
Each of the plurality of
縮約アドレス生成部62は、図1の縮約アドレス生成部3と同様に、ロード命令またはストア命令に含まれる複数のアドレスADを縮約して縮約アドレスCADを生成する。縮約アドレスCADの生成方法の例は、図8に示される。ペイロード64は、図1のペイロード4と同様に、メモリアクセス命令を保持する図示しない複数のエントリENTを含む。ペイロード64は、キューの一例である。ペイロード64の例は、図8に示される。
The contracted
一致判定部66は、図1の一致判定部5と同様に、ペイロード64のエントリに複数の一致判定回路67を有する。各一致判定回路67は、ペイロード64からのアドレスを縮約アドレス生成部62が生成した縮約アドレスCADと比較し、比較結果に応じた衝突信号COLを出力する。一致判定部66は、縮約アドレスCADとペイロード4に保持されたアドレスとの衝突を判定する衝突判定部の一例である。一致判定回路67は、衝突判定回路の一例である。
The
アクセス制御部70は、図1のアクセス制御部8と同様に、衝突信号COLに基づいてペイロード64に保持されたメモリアクセス命令の処理を制御し、L1データキャッシュ80のアクセスを制御する。L1データキャッシュ80は、図1のデータキャッシュ9と同様の構成および機能を有する。
The
各演算ユニット90は、演算命令を実行する。例えば、各演算ユニット90は、固定小数点演算器、浮動小数点演算器および論理演算器を有する。
Each
図8は、図7のペイロード64の一例と縮約アドレス生成部62による縮約アドレスの生成方法の一例とを示す。ペイロード64は、メモリアクセス命令MAを保持する複数のエントリENT(ENT1-ENT6等)を含む。例えば、各エントリENTには、実行フラグ、命令種別(ロード命令LDまたはストア命令ST)、キーアドレスKEY、データ、マスクベクトルMSKおよび元のアドレスが保持される。元のアドレスは、各アドレス計算器52が計算した、縮約前のアドレスである。この実施形態では、縮約アドレスCADは、キーアドレスKEYおよびマスクベクトルMSKとして表現される。
FIG. 8 shows an example of the
縮約アドレス生成部62は、図1の縮約アドレス生成部3と同様に、"0"、"1"、不定値"X"で表現される3値論理を使用して縮約アドレスCADを生成する。但し、縮約アドレス生成部62は、演算処理装置100で扱う2進数によりアドレスの衝突を判定するために、縮約アドレスCADをキーアドレスKEYおよびマスクベクトルMSKとして表現する。
Similar to the contracted address generator 3 in FIG. 1, the contracted
3値論理で表される縮約アドレスCADを2進数で表現可能な形式に変換することで、2進数を扱う演算処理装置100において、一致判定部66は、不定値"X"を含む縮約アドレスCADの衝突を判定することができる。換言すれば、演算処理装置100のアーキテクチャを変更することなく、不定値"X"を含む縮約アドレスCADの衝突を判定することができる。
By converting the contracted address CAD expressed in three-value logic into a format that can be expressed in binary numbers, the
縮約アドレス生成部62は、メモリアクセス命令MAに含まれる複数のアドレスADのいずれか1つをキーアドレスKEYとして選択する。また、縮約アドレス生成部62は、メモリアクセス命令MAに含まれる複数のアドレスADの各ビット位置でのビット値の排他的論理和XORを算出し、マスクベクトルMSKとする。図8では、メモリアクセス命令MA1に含まれる8個のアドレスAD0-AD7からマスクベクトルMSKを算出する例が示される。縮約アドレス生成部62が生成した縮約アドレスCAD(KEY、MSK)は、一致判定部66による判定に使用され、メモリアクセス命令MAの情報とともにペイロード64に格納される。
The contracted
図9は、図7の一致判定回路67の一例を示す。一致判定回路67は、否定排他的論理和回路XNOR、オア回路OR1、OR2およびアンド回路ANDを有する。オア回路OR1は、第1論理和回路の一例であり、オア回路OR2は、第2論理和回路の一例である。アンド回路ANDは、論理積回路の一例である。
FIG. 9 shows an example of the
否定排他的論理和回路XNORは、ペイロード64のエントリENTのいずれかに保持されたキーアドレスKEYと、縮約アドレス生成部62が生成するキーアドレスKEYとのビット同士の否定排他的論理和を算出する。オア回路OR1は、ペイロード64のエントリENTのいずれかに保持されたマスクベクトルMSKと、縮約アドレス生成部62が生成するマスクベクトルMSKとのビット同士の論理和を算出する。
The negative exclusive OR circuit XNOR calculates the negative exclusive OR of the bits of the key address KEY held in any of the entries ENT of the
オア回路OR2は、否定排他的論理和回路ENORの出力とオア回路OR1の出力とのビット同士の論理和を算出する。アンド回路ANDは、オア回路OR2の出力の全ビットの論理積を算出し、算出結果を衝突信号COLとして出力する。 The OR circuit OR2 calculates the bitwise OR of the output of the negative exclusive OR circuit ENOR and the output of the OR circuit OR1. The AND circuit AND calculates the AND of all bits of the output of the OR circuit OR2, and outputs the calculation result as a collision signal COL.
一致判定回路67は、図9の括弧内に例示するキーアドレスKEYおよびマスクベクトルMSKをペイロード64および縮約アドレス生成部62からそれぞれ受信した場合、アドレスの衝突を示す衝突信号COL(="1")を出力する。このように、一致判定回路67は、縮約アドレスCADがキーアドレスKEYおよびマスクベクトルMSKで表現される場合にも、アドレスの衝突を判定することができる。すなわち、一致判定回路67は、3値論理で表現される縮約アドレスの衝突を判定することができる。
When the
以上、この実施形態においても、上述した実施形態と同様の効果を得ることができる。例えば、一致判定部66が縮約アドレスCADをペイロード64に保持されたアドレスと比較するため、縮約前の複数のアドレスADを比較に使用する場合に比べて、一致判定回路67の数を削減することができ、一致判定部66の回路規模を低減することができる。また、縮約アドレスCADをペイロード64に格納することで、縮約前の複数のアドレスADをペイロード64に格納する場合に比べて多くのメモリアクセス命令MAをペイロード64に格納することができ、演算処理装置100の処理性能を向上することができる。
As described above, in this embodiment as well, the same effects as in the above-described embodiment can be obtained. For example, since the
さらに、この実施形態では、3値論理で表現される縮約アドレスCADを2進数で表現可能な形式に変換することで、2進数を扱う演算処理装置100において、一致判定部66は、不定値"X"を含む縮約アドレスCADの衝突を判定することができる。換言すれば、演算処理装置100のアーキテクチャを変更することなく、不定値"X"を含む縮約アドレスCADの衝突を判定することができる。一致判定回路67は、縮約アドレスCADがキーアドレスKEYおよびマスクベクトルMSKで表現される場合にも、アドレスの衝突を判定することができる。
Furthermore, in this embodiment, by converting the contracted address CAD expressed in ternary logic into a format that can be expressed in binary numbers, the
図10は、別の実施形態における演算処理装置の要部の一例を示す。上述した実施形態と同様の要素については、詳細な説明は省略する。図10に示す演算処理装置100Aは、ロードストアキュー60A、アクセス制御部70AおよびL1データキャッシュ80を有する。ロードストアキュー60Aは、縮約アドレス生成部62A、ペイロード64および一致判定部66Aを有する。一致判定部66Aは、衝突判定部の一例である。
FIG. 10 shows an example of a main part of an arithmetic processing device in another embodiment. Detailed description of elements similar to those in the embodiment described above will be omitted. The
縮約アドレス生成部62Aは、メモリアクセス命令MA(ロード命令またはストア命令)に含まれる複数のアドレスAD(AD0-AD7)をグループ分けし、グループ分けした複数のアドレスグループ毎に縮約アドレスCAD0、CAD1を生成する。縮約アドレスCAD0、CAD1は、一致判定部66Aに出力され、ペイロード64に格納される。
The abridged
アドレスグループ毎に縮約アドレスCAD0、CAD1を生成することで、アドレスADをグループ分けせずに1つの縮約アドレスCADを生成する場合に比べて、縮約アドレスCAD0、CAD1のそれぞれで示されるアドレスADの範囲を狭くすることができる。これにより、各縮約アドレスCAD0、CAD1に含まれるアドレスADの数を減らすことができ、衝突の判定精度を向上することができる。 By generating abbreviated addresses CAD0 and CAD1 for each address group, compared to the case where one abbreviated address CAD is generated without dividing addresses AD into groups, the address indicated by each abbreviated address CAD0 and CAD1 is The range of AD can be narrowed. Thereby, the number of addresses AD included in each contracted address CAD0, CAD1 can be reduced, and the accuracy of collision determination can be improved.
一致判定部66Aは、ペイロード64のエントリENTにそれぞれ対応する数の複数の一致判定回路67を、縮約アドレスCAD0、CAD1毎に有する。各一致判定回路67は、図9の一致判定回路67と同じ構成および機能を有する。図10の一致判定回路67は、図1の一致判定回路6と同様に、ペイロード64の対応するエントリENTが保持するアドレスを、対応する縮約アドレスCAD0またはAD1と比較する。そして、一致判定回路67は、比較結果に応じた衝突信号COLをアクセス制御部70Aに出力する。
The
アクセス制御部70Aは、縮約アドレスCAD0、CAD1毎の複数の衝突信号COLに基づいてペイロード64に保持されたメモリアクセス命令の処理を制御し、L1データキャッシュ80のアクセスを制御する。
The
以上、この実施形態においても、上述した実施形態と同様の効果を得ることができる。例えば、一致判定部66Aは、縮約アドレスCADをペイロード64に保持されたアドレスと比較する。このため、縮約前の複数のアドレスADを比較に使用する場合に比べて、一致判定回路67の数を削減することができ、一致判定部66Aの回路規模を低減することができる。また、縮約アドレス生成部62Aは、生成した複数の縮約アドレスCAD0、CAD1をペイロード64に格納する。このため、縮約前の複数のアドレスADをペイロード64に格納する場合に比べて、ペイロード64に格納可能なメモリアクセス命令の数を増やすことができる。これにより、演算処理装置100Aの処理性能を向上することができる。
As described above, in this embodiment as well, the same effects as in the above-described embodiment can be obtained. For example, the
さらに、この実施形態では、縮約アドレス生成部62Aは、複数の縮約アドレスCAD0、CAD1を生成する。これにより、1つの縮約アドレスCADを生成する場合に比べて、縮約アドレスCAD0、CAD1のそれぞれで示されるアドレスADの範囲を狭くすることができる。したがって、各縮約アドレスCAD0、CAD1に含まれるアドレスADの数を減らすことができ、衝突の判定精度を向上することができる。この結果、例えば、実際にはアドレスADが衝突していないロード命令LDが、先行するストア命令STと衝突すると判定されてキャンセルされる頻度を低減することができ、演算処理装置100Aの処理性能の低下を抑制することができる。
Furthermore, in this embodiment, the contracted
図11は、別の実施形態における演算処理装置の要部の一例を示す。上述した実施形態と同様の要素については、詳細な説明は省略する。図11に示す演算処理装置100Bは、図10のロードストアキュー60Aの代わりにロードストアキュー60Bを有することを除き、図10の演算処理装置100Aの構成と同様である。
FIG. 11 shows an example of a main part of an arithmetic processing device in another embodiment. Detailed description of elements similar to those in the embodiment described above will be omitted. The
ロードストアキュー60Bは、図10のロードストアキュー60Aに縮約アドレス生成部62を追加している。縮約アドレス生成部62は、図8の縮約アドレス生成部62と同じ構成および機能を有している。すなわち、縮約アドレス生成部62は、メモリアクセス命令MA(ロード命令またはストア命令)に含まれる複数のアドレスAD(AD0-AD7)を縮約して縮約アドレスCADを生成する。図11の縮約アドレス生成部62は、第1縮約アドレス生成部の一例であり、縮約アドレス生成部62が生成する縮約アドレスCADは、第1縮約アドレスの一例である。縮約アドレス生成部62Aは、第2縮約アドレス生成部の一例であり、縮約アドレス生成部62Aが生成する縮約アドレスCAD0、CAD1は、第2縮約アドレスの一例である。
The load/
縮約アドレス生成部62が生成した縮約アドレスCADは、ペイロード64に格納される。したがって、この実施形態では、ペイロード64に格納される縮約アドレスCADの数を、図10のペイロード64に格納される縮約アドレスCAD0、CAD1の数より減らすことができる。この結果、ペイロード64に格納されるアドレスADの数が相対的に増えるため、ペイロード64に格納されるメモリアクセス命令の数を増やすことができ、演算処理装置100Bの処理性能を向上することができる。
The contracted address CAD generated by the contracted
以上、この実施形態においても、上述した実施形態と同様の効果を得ることができる。さらに、この実施形態では、ペイロード64に縮約アドレスCADが格納され、一致判定部66Aに縮約アドレスCAD0、CAD1が出力される。これにより、一致判定部66Aによる衝突の判定精度を向上しつつ、縮約アドレスCAD0、CAD1がペイロード64に格納される場合に比べて、ペイロード64に格納されるアドレスADの数を増やすことができる。この結果、演算処理装置100Bの処理性能を向上することができる。
As described above, in this embodiment as well, the same effects as in the above-described embodiment can be obtained. Furthermore, in this embodiment, the contracted address CAD is stored in the
なお、上記の例では、縮約アドレス生成部62が生成した縮約アドレスCADは、1つの縮約アドレスになる場合で説明した。しかしながら、縮約アドレス生成部62Aが生成した縮約アドレスとは異なる数、または、異なるグループの分け方で分けられた複数グループ毎に複数の縮約アドレスを生成してもよい。また、縮約アドレス生成部62Aが生成した縮約アドレスも2つの例で説明しているが3つ以上あってもよい。
In the above example, the abbreviated address CAD generated by the abbreviated
図12は、別の実施形態における演算処理装置の要部の一例を示す。上述した実施形態と同様の要素については、詳細な説明は省略する。図12に示す演算処理装置100Cは、図7の演算処理装置100、図10の演算処理装置100Aまたは図11の演算処理装置100Bに、縮約アドレス生成部62Cと一致判定回路67Cとを追加している。図12では、1つの一致判定回路67Cが示されるが、実際には、一致判定回路67Cは、ペイロード64に含まれる図示しないエントリENT毎に設けられる。そして、複数の一致判定回路67と複数の一致判定回路67Cとを含む一致判定部が設けられる。一致判定回路67Cは、衝突判定回路の一例である。
FIG. 12 shows an example of a main part of an arithmetic processing device in another embodiment. Detailed description of elements similar to those in the embodiment described above will be omitted. The
縮約アドレス生成部62Cは、メモリアクセス命令に含まれる複数のアドレスADの範囲を示す縮約アドレスCAD2を生成する。縮約アドレス生成部62Cが生成する縮約アドレスCAD2は、第4縮約アドレスの一例である。例えば、縮約アドレス生成部62Cは、先頭アドレスAH(=A0)と、先頭アドレスAHから最終アドレスAEまでの距離であるオフセットOFSAとを縮約アドレスCAD2として生成する。縮約アドレス生成部62Cは、生成した縮約アドレスCAD2をペイロード64に格納する。
The condensed
例えば、ペイロード64の図示しないエントリENTには、メモリアクセス命令MAを示す情報と、過去の縮約アドレス生成部62Cが生成した先頭アドレスBHおよびオフセットOFSBを含む縮約アドレスCAD2が格納される。すなわち、ペイロード64の各エントリENTには、縮約アドレスCAD2または図7の縮約アドレス生成部62により生成される縮約アドレスCADが格納される。なお、メモリアクセス命令MAが単一のアドレスADを含む場合、縮約規則にしたがって、単一のアドレスADが先頭アドレスAH(またはBH)として設定され、オフセットOFSA(またはOFSB)は"0"に設定される。
For example, in an entry ENT (not shown) of the
一致判定回路67Cは、加算器ADDa、ADDb、比較器CMPa、CMPb、オア回路ORおよび反転回路NOTを有する。加算器ADDaは、縮約アドレス生成部62Cから出力される先頭アドレスAHとオフセットOFSAと加算することで、最終アドレスAEを算出する。加算器ADDbは、ペイロード64Cの対応するエントリENTから出力される先頭アドレスBHとオフセットOFSAと加算することで、最終アドレスBEを算出する。
The
比較器CMPaは、最終アドレスBEと先頭アドレスAHとを比較して大小関係を判定する。例えば、比較器CMPaは、最終アドレスBEが先頭アドレスAHより小さい場合、"1"を出力し、最終アドレスBEが先頭アドレスAH以上の場合、"0"を出力する。比較器CMPbは、先頭アドレスBHと最終アドレスAEとを比較して大小関係を判定する。例えば、比較器CMPbは、最終アドレスAEが先頭アドレスBHより小さい場合、"1"を出力し、最終アドレスAEが先頭アドレスBH以上の場合、"0"を出力する。 The comparator CMPa compares the final address BE and the first address AH to determine the magnitude relationship. For example, the comparator CMPa outputs "1" when the final address BE is smaller than the starting address AH, and outputs "0" when the final address BE is greater than or equal to the starting address AH. The comparator CMPb compares the start address BH and the end address AE to determine the magnitude relationship. For example, the comparator CMPb outputs "1" when the final address AE is smaller than the starting address BH, and outputs "0" when the final address AE is greater than or equal to the starting address BH.
オア回路ORは、比較器CMPa、CMPbの出力の論理和を反転回路NOTに出力する。反転回路NOTは、オア回路ORから出力される論理値を反転し、衝突信号COLとして出力する。したがって、衝突信号COLの論理は、式(1)で示される。
COL="not((AE<BH)or(BE<AH))‥ (1)
The OR circuit OR outputs the logical sum of the outputs of the comparators CMPa and CMPb to the inversion circuit NOT. The inverting circuit NOT inverts the logical value output from the OR circuit OR and outputs it as a collision signal COL. Therefore, the logic of the collision signal COL is expressed by equation (1).
COL="not((AE<BH)or(BE<AH)))... (1)
なお、縮約アドレス生成部62Cは、先頭アドレスAHと最終アドレスAEを縮約アドレスCAD2として生成してもよい。この場合、縮約アドレスCAD2のビット数が増えるが、一致判定回路67Cは、加算器ADDa、ADDbを持たなくてもよい。メモリアクセス命令に含まれる複数のアドレスADの範囲を示す縮約アドレスCAD2を生成することで、3値論理を使用して生成される縮約アドレスCADに比べて、衝突の判定精度を向上することができる。
Note that the abbreviated
図13は、図12の一致判定回路67Cの動作の一例を示す。なお、この実施形態の一致判定部は、図9の一致判定回路67と図12の一致判定回路67Cとを含む。図13に示すように、衝突信号COLは、先頭アドレスAHとオフセットOFSAとで示される縮約アドレスCAD2の範囲が、先頭アドレスBHとオフセットOFSBとで示される縮約アドレスCAD2の範囲と重ならない場合、"0"に設定される。衝突信号COLは、先頭アドレスAHとオフセットOFSAとで示される縮約アドレスCAD2の範囲が、先頭アドレスBHとオフセットOFSBとで示される縮約アドレスCAD2の範囲と重なる場合、"1"に設定される。
FIG. 13 shows an example of the operation of the
図12に示す演算処理装置100Cでは、メモリアクセス命令MAに含まれる複数のアドレスADから3値論理で表現される縮約アドレスCADと、アドレスADの範囲を示す縮約アドレスCAD2とが生成される。例えば、図7の縮約アドレス生成部62は、複数のアドレスADのビットを縮約して縮約アドレスCADを生成する。なお、図10または図11の縮約アドレス生成部62Aにより縮約アドレスCADが生成されてもよい。縮約アドレス生成部62、62Aが生成する縮約アドレスCADは、第3縮約アドレスの一例である。また、図12の縮約アドレス生成部62Cは、複数のアドレスADの範囲を示す縮約アドレスCAD2を生成する。
In the
ここで、昇順または降順に変化しない複数のアドレスADは、このままでは縮約アドレスCAD2への変換が困難である。このため、縮約アドレス生成部62Cは、縮約アドレス生成部62と同様に、まず、"0"、"1"、"X"の3値論理で表現される縮約アドレスCADを生成する。次に、縮約アドレス生成部62Cは、生成した縮約アドレスCADの不定値"X"が"0"であるとしてアドレスADの最小値を生成し、生成した縮約アドレスCADの不定値"X"が"1"であるとしてアドレスADの最大値を生成する。そして、縮約アドレス生成部62Cは、先頭アドレスAHおよびオフセットOFSBを含む縮約アドレスCAD2を生成する。なお、縮約アドレス生成部62Cは、縮約アドレス生成部62が生成する縮約アドレスCADの不定値"X"を"0"と"1"とに置き換えて、アドレスADの最小値と最大値とを生成してもよい。
Here, it is difficult to convert the plurality of addresses AD that do not change in ascending order or descending order into the contracted address CAD2 as is. For this reason, the abbreviated
縮約アドレス生成部62および縮約アドレス生成部62Cを含むロードストアキューは、複数のアドレスADが昇順または降順に変化しない場合、縮約アドレス生成部62が生成した縮約アドレスCADをペイロード64に格納する。ロードストアキューは、複数のアドレスADが昇順または降順に変化する場合、縮約アドレス生成部62Cが生成した縮約アドレスCAD2をペイロード64に格納する。
The load store queue including the abbreviated
一致判定回路67、67Cを含む一致判定部は、ペイロード64のエントリに縮約アドレスCADが保持されている場合、保持されている縮約アドレスCADと縮約アドレス生成部62が生成する縮約アドレスCADとの衝突を判定する。一致判定回路67、67Cを含む一致判定部は、ペイロード64のエントリに縮約アドレスCAD2が保持されている場合、保持されている縮約アドレスCAD2と縮約アドレス生成部62Cが生成する縮約アドレスCAD2との衝突を判定する。
When the abbreviated address CAD is held in the entry of the
このように、メモリアクセス命令MAに含まれるアドレスADが昇順または降順でない場合、縮約アドレス生成部62により生成された縮約アドレスCADを使用してアドレスADの衝突が判定される。メモリアクセス命令MAに含まれるアドレスADが昇順または降順の場合、縮約アドレス生成部62Cにより生成された縮約アドレスCAD2を使用してアドレスADの衝突が判定される。
In this way, when the addresses AD included in the memory access instruction MA are not in ascending or descending order, the abbreviated address CAD generated by the abbreviated
例えば、アドレスADが昇順または降順でないメモリアクセス命令MAとして、ギャザー命令またはスキャッター命令がある。例えば、アドレスADが昇順または降順のメモリアクセス命令MAとして、ストライドアクセス命令等の連続アドレスロード命令LDまたは連続アドレスベクトルストア命令STがある。 For example, a gather instruction or a scatter instruction is a memory access instruction MA in which addresses AD are not in ascending or descending order. For example, as the memory access instruction MA in which addresses AD are in ascending or descending order, there is a continuous address load instruction LD such as a stride access instruction or a continuous address vector store instruction ST.
以上、この実施形態においても、上述した実施形態と同様の効果を得ることができる。さらに、この実施形態では、メモリアクセス命令MAに含まれるアドレスADが昇順または降順である場合に、縮約アドレスCAD2を使用してアドレスADの衝突を判定することで、衝突の判定精度を向上することができる。 As described above, in this embodiment as well, the same effects as in the above-described embodiment can be obtained. Furthermore, in this embodiment, when the addresses AD included in the memory access instruction MA are in ascending or descending order, the collision determination accuracy is improved by determining a collision of addresses AD using the contracted address CAD2. be able to.
以上の詳細な説明により、実施形態の特徴点および利点は明らかになるであろう。これは、特許請求の範囲がその精神および権利範囲を逸脱しない範囲で前述のような実施形態の特徴点および利点にまで及ぶことを意図するものである。また、当該技術分野において通常の知識を有する者であれば、あらゆる改良および変更に容易に想到できるはずである。したがって、発明性を有する実施形態の範囲を前述したものに限定する意図はなく、実施形態に開示された範囲に含まれる適当な改良物および均等物に拠ることも可能である。 The features and advantages of the embodiments will become apparent from the above detailed description. It is intended that the appended claims extend to the features and advantages of such embodiments without departing from the spirit and scope thereof. Additionally, all improvements and changes will be readily apparent to those having ordinary knowledge in the relevant technical field. Therefore, it is not intended that the scope of the inventive embodiments be limited to those described above, but suitable modifications and equivalents may be made within the scope disclosed in the embodiments.
1、1A 演算処理装置
2、2A ロードストアキュー
3 縮約アドレス生成部
4 ペイロード
5、5A 一致判定部
8、8A アクセス制御部
9 データキャッシュ
10 命令キャッシュ
20 デコーダ
30 スケジューラ
40 レジスタファイル
50 ロードストアユニット
52 アドレス計算器
60、60A、60B ロードストアキュー
62、62A、62C 縮約アドレス生成部
64 ペイロード
66、66A 一致判定部
67、67C 一致判定回路
70、70A アクセス制御部
80 L1データキャッシュ
90 演算ユニット
100、100A、100B、100C 演算処理装置
AD(AD0-AD7) アドレス
AE 最終アドレス
AH 先頭アドレス
BE 最終アドレス
BH 先頭アドレス
CAD、CAD0、CAD1、CAD2 縮約アドレス
COL 衝突信号
DT データ
ENT エントリ
ICD 命令コード
KEY キーアドレス
LD ロード命令
MA メモリアクセス命令
MSK マスクベクトル
OFSA、OFSB オフセット
ST ストア命令
STD ストアデータ
1, 1A
Claims (12)
メモリアクセス命令に複数のアドレスが含まれる場合、前記複数のアドレスのビットを縮約して縮約アドレスを生成する縮約アドレス生成部と、
前記縮約アドレスと前記キューに保持されたアドレスとの衝突を判定する衝突判定部と、
前記衝突判定部による判定結果に基づいて、前記キューに保持されたメモリアクセス命令の処理を制御するアクセス制御部と、
を有する演算処理装置。 a queue holding memory access instructions including at least one address;
When a memory access instruction includes a plurality of addresses, a contracted address generation unit that contracts bits of the plurality of addresses to generate a contracted address;
a collision determination unit that determines a collision between the contracted address and the address held in the queue;
an access control unit that controls processing of memory access instructions held in the queue based on a determination result by the collision determination unit;
An arithmetic processing unit having:
請求項1に記載の演算処理装置。 The arithmetic processing device according to claim 1, wherein the abridged address generation unit stores the generated abridged address in the queue.
請求項1または請求項2に記載の演算処理装置。 The contracted address generation unit generates the contracted address by contracting a plurality of addresses included in the memory access instruction and a single address included in the memory access instruction according to a reduction rule. The arithmetic processing device according to item 2.
前記衝突判定部は、前記複数のアドレスグループの縮約アドレスと前記キューに保持されたアドレスとの衝突をそれぞれ判定する
請求項1ないし請求項3のいずれか1項に記載の演算処理装置。 The contracted address generation unit generates the contracted address for each of a plurality of address groups obtained by grouping a plurality of addresses included in the memory access instruction,
The arithmetic processing device according to any one of claims 1 to 3, wherein the collision determination unit determines collisions between contracted addresses of the plurality of address groups and addresses held in the queue.
前記複数のアドレスグループとは異なる数、または、異なるグループの分け方で分けられた複数グループ毎に前記複数のアドレスのビットを縮約する第1縮約アドレス生成部と、
前記複数のアドレスグループ毎に複数のアドレスのビットを縮約する第2縮約アドレス生成部と、を有し、
前記第1縮約アドレス生成部が生成した第1縮約アドレスを前記キューに格納し、
前記第2縮約アドレス生成部が生成した第2縮約アドレスを前記衝突判定部に出力する
請求項4に記載の演算処理装置。 The abbreviated address generation unit includes:
a first reduced address generation unit that reduces bits of the plurality of addresses for each of a plurality of groups divided by a different number or a different method of grouping from the plurality of address groups;
a second abridged address generation unit that abridges bits of a plurality of addresses for each of the plurality of address groups;
storing a first condensed address generated by the first condensed address generation unit in the queue;
The arithmetic processing device according to claim 4, wherein the second abbreviated address generated by the second abbreviated address generation unit is output to the collision determination unit.
前記衝突判定部は、前記縮約アドレスで示される範囲に含まれるアドレスと前記キューに保持されたアドレスとの衝突を判定する
請求項1ないし請求項3のいずれか1項に記載の演算処理装置。 The contracted address generation unit generates a contracted address indicating a range of multiple addresses included in the memory access instruction,
The arithmetic processing device according to any one of claims 1 to 3, wherein the collision determination unit determines a collision between an address included in the range indicated by the contracted address and an address held in the queue. .
前記複数のアドレスのビットを縮約した第3縮約アドレスと、複数のアドレスの範囲を示す第4縮約アドレスとを生成し、
生成した第3縮約アドレスおよび第4縮約アドレスの一方、もしくは、両方を前記キューに保持し、
前記衝突判定部は、
前記キューに第3縮約アドレスが保持されている場合、前記キューに保持された第3縮約アドレスと、前記縮約アドレス生成部が生成した第3縮約アドレスとの衝突を判定し、
前記キューに第4縮約アドレスが保持されている場合、前記キューに保持された第4縮約アドレスと、前記縮約アドレス生成部が生成した第4縮約アドレスとの衝突を判定する
請求項6に記載の演算処理装置。 The abbreviated address generation unit includes:
generating a third contracted address by contracting the bits of the plurality of addresses and a fourth contracted address indicating a range of the plurality of addresses;
holding one or both of the generated third abridged address and fourth abridged address in the queue;
The collision determination unit includes:
If the third condensed address is held in the queue, determining a collision between the third condensed address held in the queue and the third condensed address generated by the condensed address generation unit;
If the fourth condensed address is held in the queue, a collision between the fourth condensed address held in the queue and the fourth condensed address generated by the condensed address generation unit is determined. 6. The arithmetic processing device according to 6.
請求項2ないし請求項7のいずれか1項に記載の演算処理装置。 2. The contracted address generation unit generates a contracted address expressed in three-value logic in which the bit values are all "0", all "1", or undefined at each bit position of the plurality of addresses. The arithmetic processing device according to any one of claims 1 to 7.
請求項8に記載の演算処理装置。 The arithmetic processing device according to claim 8, wherein the abbreviated address generation unit generates the abbreviated address by making bits lower than a bit position indicating indeterminate as indeterminate.
請求項8または請求項9に記載の演算処理装置。 The contracted address generation unit generates, as a contracted address, a key address indicating one of the plurality of addresses and a mask vector expressed by an exclusive OR of bit values at each bit position of the plurality of addresses. The arithmetic processing device according to claim 8 or 9.
前記複数の衝突判定回路の各々は、
前記縮約アドレスと前記キューに保持された縮約アドレスとに含まれるキーアドレスのビット同士の否定排他的論理和を算出する否定排他的論理和回路と、
前記縮約アドレスと前記キューに保持された縮約アドレスとに含まれるマスクベクトルのビット同士の論理和を算出する第1論理和回路と、
前記否定排他的論理和回路の出力と前記第1論理和回路の出力とのビット同士の論理和を算出する第2論理和回路と、
前記第2論理和回路の出力の全ビットの論理積を算出する論理積回路と、を有し、
前記論理積回路の出力が"1"の場合、アドレスの衝突を検出する
請求項10に記載の演算処理装置。 The collision determination unit includes a plurality of collision determination circuits that respectively determine collisions between the contracted address and the plurality of addresses held in the queue,
Each of the plurality of collision determination circuits includes:
a negative exclusive OR circuit that calculates a negative exclusive OR between bits of a key address included in the contracted address and the contracted address held in the queue;
a first OR circuit that calculates an OR between bits of a mask vector included in the contracted address and the contracted address held in the queue;
a second OR circuit that calculates the bitwise OR of the output of the negative exclusive OR circuit and the output of the first OR circuit;
an AND circuit that calculates an AND of all bits of the output of the second OR circuit;
The arithmetic processing device according to claim 10, wherein an address collision is detected when the output of the AND circuit is "1".
前記演算処理装置が有する縮約アドレス生成部が、メモリアクセス命令に複数のアドレスが含まれる場合、前記複数のアドレスのビットを縮約して縮約アドレスを生成し、
前記演算処理装置が有する衝突判定部が、前記縮約アドレスと前記キューに保持されたアドレスとの衝突を判定し、
前記演算処理装置が有するアクセス制御部が、前記衝突判定部による判定結果に基づいて、前記キューに保持されたメモリアクセス命令の処理を制御する
演算処理方法。 An arithmetic processing method for an arithmetic processing device having a queue holding memory access instructions including at least one address, the method comprising:
When a memory access instruction includes a plurality of addresses, a contracted address generation unit included in the arithmetic processing device contracts bits of the plurality of addresses to generate a contracted address;
a collision determination unit included in the arithmetic processing device determines a collision between the contracted address and the address held in the queue;
An arithmetic processing method, wherein an access control unit included in the arithmetic processing device controls processing of memory access instructions held in the queue based on a determination result by the collision determination unit.
Priority Applications (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2022039071A JP2023133850A (en) | 2022-03-14 | 2022-03-14 | Arithmetic processing device and processing method |
| US18/113,180 US12061540B2 (en) | 2022-03-14 | 2023-02-23 | Processor and processing method |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2022039071A JP2023133850A (en) | 2022-03-14 | 2022-03-14 | Arithmetic processing device and processing method |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JP2023133850A true JP2023133850A (en) | 2023-09-27 |
Family
ID=87931832
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2022039071A Pending JP2023133850A (en) | 2022-03-14 | 2022-03-14 | Arithmetic processing device and processing method |
Country Status (2)
| Country | Link |
|---|---|
| US (1) | US12061540B2 (en) |
| JP (1) | JP2023133850A (en) |
Families Citing this family (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US12321744B1 (en) * | 2023-06-27 | 2025-06-03 | Advanced Micro Devices, Inc. | Systems and methods for hardware gather optimization |
Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH08504977A (en) * | 1992-09-29 | 1996-05-28 | セイコーエプソン株式会社 | System and method for handling load and / or store operations in a superscalar microprocessor |
| JP2001312405A (en) * | 2000-04-27 | 2001-11-09 | Inst For The Development Of Emerging Architectures Llc | Computer system |
Family Cites Families (11)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP3733842B2 (en) | 2000-07-12 | 2006-01-11 | 日本電気株式会社 | Vector scatter instruction control circuit and vector type information processing apparatus |
| US9921848B2 (en) * | 2014-03-27 | 2018-03-20 | International Business Machines Corporation | Address expansion and contraction in a multithreading computer system |
| US9218185B2 (en) * | 2014-03-27 | 2015-12-22 | International Business Machines Corporation | Multithreading capability information retrieval |
| US9417876B2 (en) * | 2014-03-27 | 2016-08-16 | International Business Machines Corporation | Thread context restoration in a multithreading computer system |
| US11226840B2 (en) * | 2015-10-08 | 2022-01-18 | Shanghai Zhaoxin Semiconductor Co., Ltd. | Neural network unit that interrupts processing core upon condition |
| GB2549737B (en) | 2016-04-26 | 2019-05-08 | Advanced Risc Mach Ltd | An apparatus and method for managing address collisions when performing vector operations |
| US10198369B2 (en) * | 2017-03-24 | 2019-02-05 | Advanced Micro Devices, Inc. | Dynamic memory remapping to reduce row-buffer conflicts |
| US10909037B2 (en) * | 2017-04-21 | 2021-02-02 | Intel Corpor Ation | Optimizing memory address compression |
| US10540198B2 (en) * | 2017-07-01 | 2020-01-21 | Intel Corporation | Technologies for memory replay prevention using compressive encryption |
| JP7124608B2 (en) | 2018-09-28 | 2022-08-24 | 日本電気株式会社 | Calculator and calculation method |
| US20230393769A1 (en) * | 2022-06-03 | 2023-12-07 | Intel Corporation | Memory safety with single memory tag per allocation |
-
2022
- 2022-03-14 JP JP2022039071A patent/JP2023133850A/en active Pending
-
2023
- 2023-02-23 US US18/113,180 patent/US12061540B2/en active Active
Patent Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH08504977A (en) * | 1992-09-29 | 1996-05-28 | セイコーエプソン株式会社 | System and method for handling load and / or store operations in a superscalar microprocessor |
| JP2001312405A (en) * | 2000-04-27 | 2001-11-09 | Inst For The Development Of Emerging Architectures Llc | Computer system |
Also Published As
| Publication number | Publication date |
|---|---|
| US12061540B2 (en) | 2024-08-13 |
| US20230289284A1 (en) | 2023-09-14 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN107003843B (en) | Method and apparatus for performing a reduction operation on a set of vector elements | |
| JP6340097B2 (en) | Vector move command controlled by read mask and write mask | |
| JP6456867B2 (en) | Hardware processor and method for tightly coupled heterogeneous computing | |
| US6330661B1 (en) | Reducing inherited logical to physical register mapping information between tasks in multithread system using register group identifier | |
| EP3555742B1 (en) | Floating point instruction format with embedded rounding rule | |
| JP6761565B2 (en) | Out-of-order hardware software co-designed How and equipment to implement and maintain a stack of predefined values using stack synchronization instructions in a processor. | |
| KR101851439B1 (en) | Systems, apparatuses, and methods for performing conflict detection and broadcasting contents of a register to data element positions of another register | |
| CN119166216A (en) | Variable format, variable sparse matrix multiplication instructions | |
| CN108028665B (en) | System, method and apparatus for compression using hardware and software | |
| JP6807073B2 (en) | Dynamic memory contention detection with fast vector | |
| JP2011118743A (en) | Vector computer and instruction control method therefor | |
| JP6835436B2 (en) | Methods and devices for extending a mask to a vector of mask values | |
| JP2018500658A (en) | Method and apparatus for performing vector permutation using indices and immediate values | |
| JP6491655B2 (en) | Processor and method for immediate handling and flag handling | |
| JP2017534114A (en) | Vector instruction to calculate the coordinates of the next point in the Z-order curve | |
| CN114489791A (en) | Processor device, instruction execution method thereof and computing equipment | |
| CN112540791A (en) | Systems and methods for ISA support for indirect load and store to efficiently access compressed lists in graphics applications | |
| US7945766B2 (en) | Conditional execution of floating point store instruction by simultaneously reading condition code and store data from multi-port register file | |
| JP2023133850A (en) | Arithmetic processing device and processing method | |
| US6785804B2 (en) | Use of tags to cancel a conditional branch delay slot instruction | |
| JP7077862B2 (en) | Arithmetic processing device and control method of arithmetic processing device | |
| JP2504312B2 (en) | Priority encoder and data processing device having the same | |
| JP2018045370A (en) | Arithmetic processing device and control method of arithmetic processing device | |
| US11321094B2 (en) | Non-transitory computer-readable medium, assembly instruction conversion method and information processing apparatus | |
| US5386580A (en) | Data processor |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| RD01 | Notification of change of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7426 Effective date: 20220330 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20220330 |
|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20241127 |
|
| A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20250917 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20251014 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20251215 |
|
| A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20260317 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20260403 |