JP5852090B2 - Instruction processing apparatus and instruction processing method thereof - Google Patents

Instruction processing apparatus and instruction processing method thereof Download PDF

Info

Publication number
JP5852090B2
JP5852090B2 JP2013268406A JP2013268406A JP5852090B2 JP 5852090 B2 JP5852090 B2 JP 5852090B2 JP 2013268406 A JP2013268406 A JP 2013268406A JP 2013268406 A JP2013268406 A JP 2013268406A JP 5852090 B2 JP5852090 B2 JP 5852090B2
Authority
JP
Japan
Prior art keywords
instruction
store
partial
address
memory
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
Application number
JP2013268406A
Other languages
Japanese (ja)
Other versions
JP2015125526A (en
Inventor
鈴木 栄司
栄司 鈴木
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Platforms Ltd
Original Assignee
NEC Platforms Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Platforms Ltd filed Critical NEC Platforms Ltd
Priority to JP2013268406A priority Critical patent/JP5852090B2/en
Publication of JP2015125526A publication Critical patent/JP2015125526A/en
Application granted granted Critical
Publication of JP5852090B2 publication Critical patent/JP5852090B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Advance Control (AREA)
  • Executing Machine-Instructions (AREA)

Description

本発明は、命令処理装置およびその命令処理方法に関する。   The present invention relates to an instruction processing device and an instruction processing method thereof.

記憶装置(メモリ)に対する書き込み命令には、記憶装置と他の装置との接続を可能なデータ幅(例えば、8バイト)の全幅のデータを書き込む全書き込み(フルストア)命令と、データの一部(例えば8バイトの中の3バイト)を書き換える部分書き込み命令があり、一般的には、部分書き込み命令の比率が多い。以下、本願では、係る部分書き込み命令を「パーシャルストア命令」と称する。このパーシャルストア命令を実行するためには、一旦、その命令によって指定するアドレスのデータを記憶装置から読み出し、部分書き込みする一部データとマージを行って、再び元の記憶装置に書き込む。   The write command for the storage device (memory) includes a full write command for writing data having a full data width (for example, 8 bytes) that allows connection between the storage device and another device, and a part of the data. There are partial write instructions for rewriting (for example, 3 bytes out of 8 bytes), and generally the ratio of partial write instructions is large. Hereinafter, in the present application, such a partial write instruction is referred to as a “partial store instruction”. In order to execute this partial store instruction, the data at the address specified by the instruction is once read from the storage device, merged with the partial data to be partially written, and written back to the original storage device.

近年、コンピュータに接続されるメモリが増大したため、メモリコントローラは、コンピュータに内蔵されたメモリを、メモリバンク(単にバンクともいう)と呼ばれる単位で管理している。メモリバンクは、メモリをある程度の容量ごとに区分けしたものである。メモリに対するアクセス要求が発生すると、メモリコントローラは、対象となるメモリバンクを選択し、選択したメモリバンクに対してだけアクセスすることで処理の効率を上げている。   In recent years, since the memory connected to the computer has increased, the memory controller manages the memory built in the computer in units called memory banks (also simply referred to as banks). The memory bank is a memory divided into a certain amount of capacity. When an access request to the memory is generated, the memory controller selects a target memory bank and increases the processing efficiency by accessing only the selected memory bank.

このような複数のメモリバンク構成を持つコンピュータにおいて、同一アドレスに対するパーシャルストア命令が頻発して発行された場合に、同一メモリバンクに対するビジー時間の増大によりメモリスループット性能が低下してしまう。これを改善する方法として、特許文献1および特許文献2は、同一アドレスに対する複数のパーシャルストア命令によって指定されたストアデータをマージすることにより、メモリアクセス回数を低減させて、メモリスループット性能の向上を図る技術を開示する。   In such a computer having a plurality of memory bank configurations, when a partial store instruction for the same address is frequently issued, the memory throughput performance deteriorates due to an increase in busy time for the same memory bank. As a method for improving this, Patent Document 1 and Patent Document 2 are designed to improve the memory throughput performance by reducing the number of memory accesses by merging store data designated by a plurality of partial store instructions for the same address. Disclosure technology is disclosed.

しかし、パーシャルストア命令の後続に同一アドレスに対するロード命令を受け付けた場合、同一バンクに対するアクセスになるため、同一バンクにおいてビジー状態が発生する。その結果、メモリを効率良く使えず、メモリスループット性能を低下させてしまう。   However, if a load instruction for the same address is received after the partial store instruction, the same bank is accessed, and a busy state occurs in the same bank. As a result, the memory cannot be used efficiently, and the memory throughput performance is reduced.

ここで、本願出願に先だって存在する関連技術としては、例えば以下の特許文献がある。   Here, as related technologies existing prior to the present application, there are, for example, the following patent documents.

特許文献3および特許文献4は、ストア命令に、同一アドレスに対するロード命令が続く場合に、ストア命令の実行を待たずにロードデータを生成する技術を開示する。   Patent Documents 3 and 4 disclose a technique for generating load data without waiting for execution of a store instruction when a load instruction for the same address follows the store instruction.

特開昭63−091756号公報JP-A 63-091756 特開昭63−103342号公報JP 63-103342 A 特開平05−040629号公報JP 05-040629 A 特表2009−540411号公報JP 2009-540411 A

しかしながら、特許文献3及び4に提案されている技術は、ストア命令に関するものであり、パーシャルストア命令の後に同一アドレスに対するロード命令を受け付けた場合については考慮されていない。   However, the techniques proposed in Patent Documents 3 and 4 are related to store instructions, and are not considered when a load instruction for the same address is received after a partial store instruction.

そこで、本発明は、パーシャルストア命令の後に同一アドレスに対するロード命令を受け付けた場合のメモリスループット性能を向上することが可能な命令処理装置等の提供を主たる目的とする。   Accordingly, the main object of the present invention is to provide an instruction processing device or the like that can improve memory throughput performance when a load instruction for the same address is received after a partial store instruction.

上記の目的を達成すべく、本発明に係る命令処理装置は、以下の構成を備えることを特徴とする。   In order to achieve the above object, an instruction processing apparatus according to the present invention comprises the following arrangement.

即ち、本説明に係る命令処理装置は、
記憶領域がアドレスによって定められるメモリと、
前記メモリの特定アドレスに対するパーシャルストア命令を受けて、そのパーシャルストア命令によって指定された内容を保存するよう制御するストアマージ制御回路と、
前記パーシャルストア命令を受けた後に、前記特定アドレスに対するロード命令を受けた場合に、前記ストアマージ制御回路の制御によって保存されている前記パーシャルストア命令によって指定された内容と、前記ロード命令の内容とを基に、ストアロード命令を生成するストアロード命令生成回路とを備える
ことを特徴とする。
That is, the instruction processing device according to this description is
A memory whose storage area is determined by an address;
A store merge control circuit that receives a partial store instruction for a specific address of the memory and controls to store the content specified by the partial store instruction;
When the load instruction for the specific address is received after receiving the partial store instruction, the content specified by the partial store instruction stored under the control of the store merge control circuit, the content of the load instruction, And a store load instruction generation circuit for generating a store load instruction.

同目的を達成する本発明に係る命令処理方法は、
記憶領域がアドレスによって定められるメモリの特定アドレスに対するパーシャルストア命令を受けて、そのパーシャルストア命令によって指定された内容を記憶デバイスに保存し、
前記パーシャルストア命令を受けた後に、前記特定アドレスに対するロード命令を受けた場合に、前記記憶デバイスに保存されている前記パーシャルストア命令によって指定された内容と、前記ロード命令の内容とを基に、ストアロード命令を生成する
ことを特徴とする。
An instruction processing method according to the present invention for achieving the same object is as follows.
In response to a partial store instruction for a specific address of the memory whose storage area is determined by the address, the contents specified by the partial store instruction are stored in the storage device,
After receiving the partial store instruction, when receiving a load instruction for the specific address, based on the content specified by the partial store instruction stored in the storage device and the content of the load instruction, A store load instruction is generated.

上記の本発明によれば、パーシャルストア命令の後に同一アドレスに対するロード命令を受け付けた場合のメモリスループット性能を向上できるという効果がある。   According to the present invention described above, there is an effect that it is possible to improve the memory throughput performance when a load instruction for the same address is received after a partial store instruction.

本発明の第1の実施形態に係る命令処理装置の構成を示すブロック図である。It is a block diagram which shows the structure of the instruction processing apparatus which concerns on the 1st Embodiment of this invention. 本発明の第1の実施形態に係る情報テーブルを説明する図である。It is a figure explaining the information table which concerns on the 1st Embodiment of this invention. 本発明の第1の実施形態に係る効果を説明するタイムチャートである。It is a time chart explaining the effect which concerns on the 1st Embodiment of this invention.

次に、本発明を実施する形態について図面を参照して詳細に説明する。   Next, embodiments of the present invention will be described in detail with reference to the drawings.

<第1の実施形態>
図1は、本発明の第1の実施形態に係る命令処理装置10の構成を示すブロック図である。
<First Embodiment>
FIG. 1 is a block diagram showing a configuration of an instruction processing apparatus 10 according to the first embodiment of the present invention.

本実施形態に係る命令処理装置10は、ストアマージ制御回路11と、ストアロード命令生成回路12と、命令実行制御回路13と、アドレスパイプ14と、データパイプ15と、ECG16と、メモリ17と、ECC18と、セレクタ19とを有する。図1に複数示されるフリップフロップは、入力された情報を記憶する記憶部である。図1に複数示されるセレクタは、入力された複数の情報のうち、所定の条件を満たす情報を選択する回路である。   The instruction processing apparatus 10 according to the present embodiment includes a store merge control circuit 11, a store load instruction generation circuit 12, an instruction execution control circuit 13, an address pipe 14, a data pipe 15, an ECG 16, a memory 17, An ECC 18 and a selector 19 are included. A plurality of flip-flops shown in FIG. 1 are storage units for storing inputted information. A plurality of selectors shown in FIG. 1 are circuits that select information satisfying a predetermined condition from among a plurality of input information.

メモリ17は、記憶領域がアドレスによって定められる半導体記憶素子(例えば、DRAM(Dynamic Random Access Memory))である。   The memory 17 is a semiconductor storage element (for example, DRAM (Dynamic Random Access Memory)) whose storage area is determined by an address.

ストアマージ制御回路11は、上位装置(外部装置)から命令処理装置10が受け付けたパーシャルストア命令によって指定された内容を、連続した8バイトまでマージすることが可能な回路である。本実施形態では、8バイトまでマージすることを可能とするが、これに限定されない。上位装置は、例えば、演算装置である。   The store merge control circuit 11 is a circuit capable of merging the contents designated by the partial store instruction received by the instruction processing device 10 from the host device (external device) up to continuous 8 bytes. In this embodiment, it is possible to merge up to 8 bytes, but the present invention is not limited to this. The host device is, for example, an arithmetic device.

ストアマージ制御回路11は、パーシャルストア命令によって指定された内容、または、それをマージした後の内容を表す情報を格納する情報テーブル110(図1には不図示。以下に示す図2を参照。)を備える。但し、情報テーブル110は、ストアマージ制御回路11による参照および更新が可能であれば、ストアマージ制御回路11内に設けられていなくてもよい。   The store merge control circuit 11 stores an information table 110 (not shown in FIG. 1, not shown in FIG. 1; see FIG. 2 shown below) that stores the contents designated by the partial store instruction or the contents after merging them. ). However, the information table 110 may not be provided in the store merge control circuit 11 as long as it can be referenced and updated by the store merge control circuit 11.

図2は、本発明の第1の実施形態に係る情報テーブル110を説明する図である。   FIG. 2 is a diagram illustrating the information table 110 according to the first embodiment of the present invention.

情報テーブル110は、アドレス111と、ストアデータ112と、バイトイネーブル情報113とを含む。すなわち、アドレス111と、ストアデータ112と、バイトイネーブル情報113とは、情報テーブル110において、図2に概念的に示すテーブルの如く関連付けされていることとする。   The information table 110 includes an address 111, store data 112, and byte enable information 113. That is, the address 111, the store data 112, and the byte enable information 113 are associated in the information table 110 as shown in a table conceptually shown in FIG.

アドレス111は、8バイトアドレス境界のアドレス(すなわち、アドレスの末尾3ビットが000のアドレス)である。そして、このアドレスによって示される領域から連続した8バイト分の領域に、パーシャルストア命令によって指定されたアドレスが示す領域は、含まれる。   The address 111 is an address on an 8-byte address boundary (that is, an address whose last 3 bits are 000). The area indicated by the address specified by the partial store instruction is included in an area of 8 bytes continuous from the area indicated by the address.

ストアデータ112は、アドレス111によって示される領域から連続した8バイト分の領域について、パーシャルストア命令によって指定された更新後のデータの内容である。   Store data 112 is the content of updated data designated by a partial store instruction for an area of 8 bytes continuous from the area indicated by address 111.

バイトイネーブル情報113は、ストアデータ112の有効または無効(すなわち、更新するまたは更新しない)をバイト毎に表す情報である。バイトイネーブル情報113は、ストアデータ112の1バイトの有効または無効を1ビットで表すので、本実施形態では、8ビットである。   The byte enable information 113 is information indicating whether the store data 112 is valid or invalid (that is, updated or not updated) for each byte. Since the byte enable information 113 represents the validity or invalidity of one byte of the store data 112 by 1 bit, it is 8 bits in this embodiment.

命令処理装置10がパーシャルストア命令を受け付けた場合に、ストアマージ制御回路11は、情報テーブル110のアドレス111を参照することにより、指定されたアドレスが示す領域を含む8バイトアドレス境界のアドレスが存在するかを検索する。   When the instruction processing apparatus 10 accepts a partial store instruction, the store merge control circuit 11 refers to the address 111 of the information table 110 so that an address of an 8-byte address boundary including the area indicated by the specified address exists. Search for what to do.

指定されたアドレスが存在した場合に、情報テーブル110の当該アドレス111を含むエントリに対して、ストアマージ制御回路11は、当該ストアデータ112に、パーシャルストア命令によって指定された更新後のデータの内容をマージ(更新)し、マージした内容にあわせて、バイトイネーブル情報113を更新する。   When the designated address exists, for the entry including the address 111 in the information table 110, the store merge control circuit 11 adds the content of the updated data designated by the partial store instruction to the store data 112. Are merged (updated), and the byte enable information 113 is updated according to the merged contents.

指定されたアドレスが存在しない場合に、ストアマージ制御回路11は、情報テーブル110の未使用エントリに、パーシャルストア命令によって指定された内容を基に、アドレス111と、ストアデータ112と、バイトイネーブル情報113とを関連付けて登録する。情報テーブル110のすべてのエントリにすでに登録済みの場合に、ストアマージ制御回路11は、エントリを一つ選択し、そのエントリの内容を命令実行制御回路13へ渡し、当該エントリの内容を削除する。エントリを選択する方法は、特に限定しないが、例えば、ストアデータ112をなす8バイト分のデータすべてに対して、更新するべき値を設定済みのエントリを選択するという方法がある。ストアマージ制御回路11は、内容を削除したそのエントリに、パーシャルストア命令によって指定された内容を基に、アドレス111と、ストアデータ112と、バイトイネーブル情報113とを関連付けて登録する。   When the designated address does not exist, the store merge control circuit 11 sets the address 111, the store data 112, and the byte enable information in the unused entry of the information table 110 based on the contents designated by the partial store instruction. 113 is registered in association with it. When the entries have already been registered in all entries of the information table 110, the store merge control circuit 11 selects one entry, passes the contents of the entry to the instruction execution control circuit 13, and deletes the contents of the entry. The method for selecting an entry is not particularly limited. For example, there is a method for selecting an entry for which a value to be updated has been set for all the 8-byte data constituting the store data 112. The store merge control circuit 11 registers the address 111, the store data 112, and the byte enable information 113 in association with the entry from which the content has been deleted based on the content specified by the partial store instruction.

また、命令処理装置10がロード命令を受け付けた場合に、ストアマージ制御回路11は、アドレス111が示す領域から8バイト分の領域の中に、ロード命令によって指定されたアドレスが示す領域が含まれるかを検索する。   When the instruction processing device 10 receives a load instruction, the store merge control circuit 11 includes an area indicated by the address specified by the load instruction in an area of 8 bytes from the area indicated by the address 111. Search for.

指定されたアドレスが存在した場合に、ストアマージ制御回路11は、ストアロード命令生成回路12に、検索により見つかったエントリの内容を渡し、当該エントリの内容を削除する。   When the designated address exists, the store merge control circuit 11 passes the contents of the entry found by the search to the store load instruction generation circuit 12 and deletes the contents of the entry.

指定されたアドレスが存在しない場合に、ストアマージ制御回路11は、ロード命令に含まれる内容をそのまま命令実行制御回路13へ渡す。   When the designated address does not exist, the store merge control circuit 11 passes the content included in the load instruction to the instruction execution control circuit 13 as it is.

ストアロード命令生成回路12は、ストアマージ制御回路11から受け取ったロード命令を表す情報と、情報テーブル110(図2)に登録されていたパーシャルストア命令の内容とを基に、一つのストアロード命令を生成する回路である。   The store load instruction generation circuit 12 generates one store load instruction based on the information indicating the load instruction received from the store merge control circuit 11 and the contents of the partial store instruction registered in the information table 110 (FIG. 2). Is a circuit that generates

ストアロード命令は、リードモディファイライト動作を行う命令である。   The store load instruction is an instruction for performing a read-modify-write operation.

すなわち、ストアロード命令は、初めに、誤り訂正符号(ECC:Error Correcting Code)を生成するために、該当するアドレスのデータを読み出して、その読み出したデータに書き込むべきデータをマージ(更新)する。それから、ストアロード命令は、マージしたデータに、誤り訂正符号を付加して、メモリ17に書き込むことにより、ストアロード命令の実行を完了する。誤り訂正符号を用いた誤り訂正の方法は、公知の技術を使用すればよい。   That is, the store load instruction first reads data at a corresponding address and merges (updates) data to be written into the read data in order to generate an error correcting code (ECC). Then, the store load instruction completes execution of the store load instruction by adding an error correction code to the merged data and writing it in the memory 17. A known technique may be used as an error correction method using an error correction code.

命令実行制御回路13は、メモリ17を対象として、ストアロード命令を実行するよう制御する回路である。   The instruction execution control circuit 13 is a circuit that controls the memory 17 to execute a store load instruction.

また、命令実行制御回路13は、メモリ17のビジー状態を管理する回路である。命令実行制御回路13は、バンク単位に発行しているリクエストにかかる時間を保持している。命令実行制御回路13は、その保持している時間を参照することにより、アクセス対象のメモリバンクにおいてビジー状態であるか否かを判断する。判断した結果がビジー状態でなければ、命令実行制御回路13は、メモリ17にアクセスする。ビジー状態の場合は、命令実行制御回路13は、この回路内において、ビジー状態が解消されるまで待機する。   The instruction execution control circuit 13 is a circuit that manages the busy state of the memory 17. The instruction execution control circuit 13 holds the time required for a request issued for each bank. The instruction execution control circuit 13 determines whether or not the memory bank to be accessed is busy by referring to the held time. If the determined result is not busy, the instruction execution control circuit 13 accesses the memory 17. In the busy state, the instruction execution control circuit 13 waits until the busy state is resolved in this circuit.

ECG(誤り訂正符号生成回路)16は、メモリ17にデータを書き込む際、ストアデータ(即ち、メモリ17に書き込むべきデータ)に付加する誤り訂正符号を生成する回路である。ECC18は、メモリ17からデータを読み出した際、データ訂正可能な場合は訂正、訂正不可の場合はエラーを検出する回路である。ECC18は、データ訂正の際のECC単位(データ訂正単位)を、パーシャルストア命令によって指定された内容をマージしたバイト数にあわせればよい。本実施形態では、パーシャルストア命令によって指定された内容を、連続した8バイトまでマージするとしたため、ECC単位(データ訂正単位)は、8バイトである。   The ECG (error correction code generation circuit) 16 is a circuit that generates an error correction code to be added to store data (that is, data to be written to the memory 17) when data is written to the memory 17. The ECC 18 is a circuit that, when data is read from the memory 17, corrects data when it can be corrected, and detects an error when data cannot be corrected. The ECC 18 may adjust the ECC unit (data correction unit) at the time of data correction to the number of bytes obtained by merging the contents specified by the partial store instruction. In the present embodiment, the content specified by the partial store instruction is merged up to 8 consecutive bytes, so the ECC unit (data correction unit) is 8 bytes.

アドレスパイプ14は、パーシャルストア命令およびストアロード命令の場合に、メモリ17からデータを読み出したアドレスを、そのアドレスにデータを書き戻すタイミングまで保存するための回路である。   The address pipe 14 is a circuit for storing an address at which data is read from the memory 17 until a timing at which data is written back to the address in the case of a partial store instruction and a store load instruction.

データパイプ15は、ストアデータを保存する回路と、ロードデータ(メモリ17から読み出したデータ)をストアデータにモディファイする回路(以下、モディファイ回路という)を含む。モディファイ回路は、バイトイネーブル情報113を基に、ロードデータに対してモディファイすることにより、ストアデータを作成する。   The data pipe 15 includes a circuit that stores store data and a circuit that modifies load data (data read from the memory 17) into store data (hereinafter referred to as a modify circuit). The modify circuit creates store data by modifying the load data based on the byte enable information 113.

セレクタ19は、ストアロード命令を実行した場合に使用する回路である。セレクタ19は、データパイプ15にてモディファイしたデータを選択し、ロードデータとして上位装置へ返却する。   The selector 19 is a circuit used when a store load instruction is executed. The selector 19 selects the data modified by the data pipe 15 and returns it as load data to the host device.

次に、本実施形態の動作について、アドレスA番地から8バイト分の領域のうち、先頭から3バイトに、”XXX”なるデータをパーシャルストアする命令を例に説明する。ストアマージ制御回路11は、このパーシャル命令の内容を、図2に示す情報テーブル110において1つめのエントリに示すように、アドレス111に”A”、ストアデータ112に”XXX−−−−−”、バイトイネーブル情報113に0xE0を関連付けて登録する。なお、”−”の部分は、参照しないため、どのような値でもよい。また、”0x”は、後ろに続く英数字が16進数で表記されていることを示す。   Next, the operation of the present embodiment will be described by taking as an example an instruction for partial store of data “XXX” in the 3 bytes from the beginning of the area of 8 bytes from address A. The store merge control circuit 11 indicates the contents of the partial instruction as “A” in the address 111 and “XXX -----” in the store data 112 as shown in the first entry in the information table 110 shown in FIG. The byte enable information 113 is registered in association with 0xE0. The “-” part is not referred to and may be any value. Further, “0x” indicates that the following alphanumeric character is expressed in hexadecimal.

この後、命令処理装置10がA番地に対するロード命令を受け付けると、情報テーブル110のアドレス111を参照して、アドレス111が”A”であるエントリを検索する。検索した結果、1つめのエントリに登録されたパーシャルストア命令のアドレス111が”A”であるため、1つめのエントリの内容を、ストアロード命令生成回路12に渡し、当該エントリの内容を削除する。   Thereafter, when the instruction processing device 10 receives a load instruction for address A, the address 111 of the information table 110 is referred to search for an entry having the address 111 of “A”. As a result of the search, since the address 111 of the partial store instruction registered in the first entry is “A”, the contents of the first entry are passed to the store load instruction generation circuit 12 and the contents of the entry are deleted. .

ストアロード命令生成回路12は、渡されたパーシャルストア命令の内容と、そのパーシャルストア命令の内容が渡される起因となったロード命令とを基に、一つのストアロード命令を生成する。   The store load instruction generation circuit 12 generates one store load instruction based on the contents of the passed partial store instruction and the load instruction that causes the contents of the partial store instruction to be passed.

命令実行制御回路13は、そのストアロード命令について、アドレスを表す情報をアドレスパイプ14に、ストアデータとイネーブル情報とをデータパイプ15に保存する。   The instruction execution control circuit 13 stores information indicating an address in the address pipe 14 and store data and enable information in the data pipe 15 for the store load instruction.

次に、命令実行制御回路13は、メモリ17がビジー状態でないことを確認して、そのストアロード命令の実行のために、まず、メモリA番地から、データを読み出す。   Next, the instruction execution control circuit 13 confirms that the memory 17 is not busy, and first reads data from the memory address A for execution of the store load instruction.

ECC18は、読み出したデータに対して、ECCチェックを行い、誤りを訂正する。その訂正後のデータに対して、モディファイ回路は、データパイプ15に保存してあったストアデータ(”XXX−−−−−”)とバイトイネーブル情報(0xE0)とを基に、モディファイする。すなわち、先頭から3バイト分のデータをストアデータの先頭から3バイト分の内容(”XXX”)で書き換える。   The ECC 18 performs an ECC check on the read data and corrects an error. The modification circuit modifies the corrected data based on the store data (“XXX -----”) and byte enable information (0xE0) stored in the data pipe 15. That is, the data for 3 bytes from the top is rewritten with the contents (“XXX”) for 3 bytes from the top of the store data.

ECG16は、その書き換え後のデータに誤り訂正符号を付加する。   The ECG 16 adds an error correction code to the rewritten data.

その誤り訂正符号付加後のデータを、命令実行制御回路13は、アドレスパイプ14に保存していたアドレスであるA番地に対して書き込む。   The instruction execution control circuit 13 writes the data after adding the error correction code to the address A which is the address stored in the address pipe 14.

また、セレクタ19は、モディファイ後のデータを、ロードデータとして、上位装置へ返却する。   The selector 19 returns the modified data as load data to the higher-level device.

以上、説明したように、第1の実施形態には、パーシャルストア命令の後に同一アドレスに対するロード命令を受け付けた場合のメモリスループット性能を向上できるという効果がある。   As described above, the first embodiment has an effect of improving the memory throughput performance when a load instruction for the same address is received after a partial store instruction.

その理由は、メモリ17の同一アドレスに対するパーシャルストア命令とロード命令の実行が必要な場合に、本実施形態に係る命令処理装置10は、それらの命令を基に一つのストアロード命令を生成し、生成したストアロード命令を実行するからである。すなわち、本実施形態に係る命令処理装置10によれば、図3のタイムチャートに示すように、パーシャルストア命令とロード命令とを個々にメモリ17に対し動作していた場合の時間よりも、パーシャルストア命令とロード命令とを基に生成したストアロード命令によれば、背景技術と比較して命令実行に要する時間を短縮できる。   The reason is that, when execution of a partial store instruction and a load instruction for the same address in the memory 17 is necessary, the instruction processing device 10 according to the present embodiment generates one store load instruction based on those instructions, This is because the generated store load instruction is executed. In other words, according to the instruction processing apparatus 10 according to the present embodiment, as shown in the time chart of FIG. 3, the partial store instruction and the load instruction are more partial than the time when the memory 17 is operated individually. According to the store load instruction generated based on the store instruction and the load instruction, the time required for executing the instruction can be shortened as compared with the background art.

10 命令処理装置
11 ストアマージ制御回路
12 ストアロード命令生成回路
13 命令実行制御回路
14 アドレスパイプ
15 データパイプ
16 ECG
17 メモリ
18 ECC
19 セレクタ
110 情報テーブル
111 アドレス
112 ストアデータ
113 バイトイネーブル情報
DESCRIPTION OF SYMBOLS 10 Instruction processor 11 Store merge control circuit 12 Store load instruction generation circuit 13 Instruction execution control circuit 14 Address pipe 15 Data pipe 16 ECG
17 Memory 18 ECC
19 Selector 110 Information table 111 Address 112 Store data 113 Byte enable information

Claims (8)

記憶領域がアドレスによって定められるメモリと、
前記メモリの特定アドレスに対するパーシャルストア命令を受けて、そのパーシャルストア命令によって指定された内容を保存するよう制御するストアマージ制御回路と、
前記パーシャルストア命令を受けた後に、前記特定アドレスに対するロード命令を受けた場合に、前記ストアマージ制御回路の制御によって保存されている前記パーシャルストア命令によって指定された内容と、前記ロード命令の内容とを基に、ストアロード命令を生成するストアロード命令生成回路とを備える
ことを特徴とする命令処理装置。
A memory whose storage area is determined by an address;
A store merge control circuit that receives a partial store instruction for a specific address of the memory and controls to store the content specified by the partial store instruction;
When the load instruction for the specific address is received after receiving the partial store instruction, the content specified by the partial store instruction stored under the control of the store merge control circuit, the content of the load instruction, And a store load instruction generation circuit for generating a store load instruction based on the instruction processing apparatus.
前記ストアマージ制御回路は、
前記パーシャルストア命令を受けた後であって前記ロード命令を受ける前に、前記アドレスに対する第二のパーシャルストア命令を受けた場合に、その第二のパーシャルストア命令によって指定された内容を、保存済みの前記パーシャルストア命令によって指定された内容にマージしてから保存するよう制御する
ことを特徴とする請求項1記載の命令処理装置。
The store merge control circuit includes:
After receiving the partial store instruction and before receiving the load instruction, when the second partial store instruction for the address is received, the contents specified by the second partial store instruction are stored. The instruction processing apparatus according to claim 1, wherein the instruction processing apparatus controls to be stored after being merged with the content specified by the partial store instruction.
前記ストアマージ制御回路は、
前記パーシャルストア命令の処理対象である前記メモリのアドレスと、
前記パーシャルストア命令によって更新すべき内容を含む前記メモリに1回でアクセス可能な長さを有するデータと、
前記データのうち、前記パーシャルストア命令により更新すべき位置を示す情報とを、
前記パーシャルストア命令によって指定された内容を基に保存する
ことを特徴とする請求項1または2記載の命令処理装置。
The store merge control circuit includes:
An address of the memory to be processed by the partial store instruction;
Data having a length accessible to the memory including the contents to be updated by the partial store instruction at a time;
Among the data , information indicating a position to be updated by the partial store instruction,
3. The instruction processing apparatus according to claim 1, wherein the instruction processing apparatus stores the contents based on contents designated by the partial store instruction.
前記メモリを対象として、前記ストアロード命令を実行する命令実行制御回路をさらに備える
ことを特徴とする請求項1乃至3の何れかに記載の命令処理装置。
The instruction processing apparatus according to claim 1, further comprising an instruction execution control circuit that executes the store load instruction for the memory.
前記命令実行制御回路は、
前記メモリのビジー状態を管理し、前記ストアロード命令の処理対象である前記メモリがビジー状態の場合には、そのビジー状態が解消されるまで待機した後に、前記ストアロード命令を実行する
ことを特徴とする請求項記載の命令処理装置。
The instruction execution control circuit includes:
The busy state of the memory is managed, and when the memory to be processed by the store load instruction is busy, the store load instruction is executed after waiting until the busy state is resolved. The instruction processing apparatus according to claim 4 .
記憶領域がアドレスによって定められるメモリの特定アドレスに対するパーシャルストア命令を受けて、そのパーシャルストア命令によって指定された内容を記憶デバイスに保存し、
前記パーシャルストア命令を受けた後に、前記特定アドレスに対するロード命令を受けた場合に、前記記憶デバイスに保存されている前記パーシャルストア命令によって指定された内容と、前記ロード命令の内容とを基に、ストアロード命令を生成する
ことを特徴とする命令処理方法。
In response to a partial store instruction for a specific address of the memory whose storage area is determined by the address, the contents specified by the partial store instruction are stored in the storage device,
After receiving the partial store instruction, when receiving a load instruction for the specific address, based on the content specified by the partial store instruction stored in the storage device and the content of the load instruction, An instruction processing method characterized by generating a store load instruction.
前記パーシャルストア命令を受けた後であって前記ロード命令を受ける前に、前記アドレスに対する第二のパーシャルストア命令を受けた場合に、その第二のパーシャルストア命令によって指定された内容を、前記記憶デバイスに保存されている前記パーシャルストア命令によって指定された内容にマージしてから保存する
ことを特徴とする請求項6記載の命令処理方法。
When receiving a second partial store instruction for the address after receiving the partial store instruction and before receiving the load instruction, the contents designated by the second partial store instruction are stored in the memory. 7. The instruction processing method according to claim 6, wherein the instruction is stored after being merged with the content specified by the partial store instruction stored in the device.
前記パーシャルストア命令の処理対象である前記メモリのアドレスと、
前記パーシャルストア命令によって更新すべき内容を含む前記メモリに1回でアクセス可能な長さを有するデータと、
前記データのうち、前記パーシャルストア命令により更新すべき位置を示す情報とを、
前記パーシャルストア命令によって指定された内容を基に保存する
ことを特徴とする請求項6または7記載の命令処理方法。
An address of the memory to be processed by the partial store instruction;
Data having a length accessible to the memory including the contents to be updated by the partial store instruction at a time;
Among the data , information indicating a position to be updated by the partial store instruction,
The instruction processing method according to claim 6 or 7, wherein the instruction is stored based on contents designated by the partial store instruction.
JP2013268406A 2013-12-26 2013-12-26 Instruction processing apparatus and instruction processing method thereof Active JP5852090B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2013268406A JP5852090B2 (en) 2013-12-26 2013-12-26 Instruction processing apparatus and instruction processing method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013268406A JP5852090B2 (en) 2013-12-26 2013-12-26 Instruction processing apparatus and instruction processing method thereof

Publications (2)

Publication Number Publication Date
JP2015125526A JP2015125526A (en) 2015-07-06
JP5852090B2 true JP5852090B2 (en) 2016-02-03

Family

ID=53536205

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013268406A Active JP5852090B2 (en) 2013-12-26 2013-12-26 Instruction processing apparatus and instruction processing method thereof

Country Status (1)

Country Link
JP (1) JP5852090B2 (en)

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06222990A (en) * 1992-10-16 1994-08-12 Fujitsu Ltd Data processor
JPH06139071A (en) * 1992-10-30 1994-05-20 Mitsubishi Electric Corp Parallel computers
JP5644571B2 (en) * 2011-02-16 2014-12-24 富士通株式会社 Processor

Also Published As

Publication number Publication date
JP2015125526A (en) 2015-07-06

Similar Documents

Publication Publication Date Title
US10114578B2 (en) Solid state disk and data moving method
US10152244B2 (en) Programmable memory command sequencer
JP4966404B2 (en) MEMORY CONTROL DEVICE, STORAGE DEVICE, AND MEMORY CONTROL METHOD
US20220179792A1 (en) Memory management device
JP5428687B2 (en) Memory control device
CN108139989B (en) Computer device equipped with processing in memory and narrow access port
JP2016085677A (en) Memory management method, memory management program, and information processing device
JP6213345B2 (en) Transfer device, determination method, and data processing device
US6684267B2 (en) Direct memory access controller, and direct memory access control method
JP6004463B2 (en) Storage device and control method thereof
CN101441551B (en) Computer, external memory and method for processing data information in external memory
JP2006011533A (en) Memory card, semiconductor device, and control method of semiconductor memory
US8806102B2 (en) Cache system
JP2011257966A (en) Cache device and information processor
JP5852090B2 (en) Instruction processing apparatus and instruction processing method thereof
JP4297846B2 (en) Address translation buffer control device and address translation buffer control method
JP5623677B2 (en) Read request processing device
JP5982148B2 (en) Semiconductor memory device
JP7408954B2 (en) Memory control method, memory control device, program
JP6054753B2 (en) Semiconductor device and data access method
JP4431492B2 (en) Data transfer unit that supports multiple coherency granules
JP2007048090A (en) Nand type flash memory device compatible with sequential rom interface, and controller therefor
JP7346883B2 (en) Vector processor device and generation method
JP7384102B2 (en) Vector processor, calculation method and program
JP2023167230A (en) SoC module

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150401

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20151203

R150 Certificate of patent or registration of utility model

Ref document number: 5852090

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150