JP5303943B2 - Arithmetic processing device and control method of arithmetic processing device - Google Patents

Arithmetic processing device and control method of arithmetic processing device Download PDF

Info

Publication number
JP5303943B2
JP5303943B2 JP2008024233A JP2008024233A JP5303943B2 JP 5303943 B2 JP5303943 B2 JP 5303943B2 JP 2008024233 A JP2008024233 A JP 2008024233A JP 2008024233 A JP2008024233 A JP 2008024233A JP 5303943 B2 JP5303943 B2 JP 5303943B2
Authority
JP
Japan
Prior art keywords
register
physical
logical
instruction
stored
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
JP2008024233A
Other languages
Japanese (ja)
Other versions
JP2009187120A (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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2008024233A priority Critical patent/JP5303943B2/en
Publication of JP2009187120A publication Critical patent/JP2009187120A/en
Application granted granted Critical
Publication of JP5303943B2 publication Critical patent/JP5303943B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

<P>PROBLEM TO BE SOLVED: To provide a processor for preventing the deterioration of the execution speed of a program even when register pill processing is generated. <P>SOLUTION: In this processor, a value stored in a logical register: L register 0 is stored in a physical register which is not associated with a logical register 110 by register renaming among physical registers 120. A P register XX among the physical registers 120 is not associated with the logical register, but in an "empty" state. Therefore, the value stored in the logical register: L register 0 is stored in the physical register: P register XX, and the processing of a save instruction is completed. Also, the association of the address X described in the save instruction with the physical register: P register XX is reflected on a lookup table 140. <P>COPYRIGHT: (C)2009,JPO&amp;INPIT

Description

この発明は、命令セットアーキテクチャに規定された論理レジスタ数以上の物理レジスタを備えた演算処理装置および演算処理装置の制御方法に関する。 The present invention relates to a control method for an arithmetic processing device and a processing unit equipped with a physical register more than the number of logical registers specified in the instruction set architecture.

従来より、プロセッサには、処理速度を向上させるための機構としてレジスタが備えられている。プロセッサによって命令が実行されると、命令の記述に応じて記憶媒体へのアクセスがおこなわれる。プロセッサでは、これら記憶媒体のうち、キャッシュや主記憶メモリと比較して、レジスタには高速にアクセスできる。この特性から、利用頻度の高い値や、再利用される値を優先的にレジスタに格納させるようなプログラムを生成する技術が(レジスタプロモーション)広く適用されている。適切なレジスタプロモーションを用いてプログラムが生成された場合、キャッシュや主記憶メモリへのアクセス回数を減少させ、高速なレジスタへのアクセス頻度を増すことによってプログラムの実行時間を短縮することができる。   Conventionally, a processor is provided with a register as a mechanism for improving the processing speed. When the instruction is executed by the processor, the storage medium is accessed according to the description of the instruction. Of these storage media, the processor can access the registers at a higher speed than the cache and main memory. Because of this characteristic, a technique for generating a program that preferentially stores a frequently used value or a reused value in a register (register promotion) is widely applied. When a program is generated using appropriate register promotion, the program execution time can be shortened by reducing the number of accesses to the cache and main memory and increasing the frequency of access to high-speed registers.

さらに近年のプロセッサでは、プロセッサの命令セットアーキテクチャ(ISA)に規定されている論理レジスタ数よりも多くの物理レジスタを搭載し、レジスタリネーミング機構を用いてこの物理レジスタを活用することによりプログラム実行を高速化する手法が良く用いられている。レジスタリネーミング機構では、論理レジスタ番号から物理レジスタ番号への変換が行われるが、論理レジスタ番号と物理レジスタ番号の対応は固定されておらず、その対応付けはプログラム実行時に動的におこなわれる。   In recent processors, more physical registers than the number of logical registers specified in the processor instruction set architecture (ISA) are installed, and program execution is performed by utilizing these physical registers using a register renaming mechanism. Techniques for speeding up are often used. In the register renaming mechanism, conversion from a logical register number to a physical register number is performed, but the correspondence between the logical register number and the physical register number is not fixed, and the association is dynamically performed at the time of program execution.

たとえば、命令A→命令Bの順序で同じ論理レジスタAにアクセスする命令が実行されるとする。通常のプログラムには、命令Aでは、論理レジスタAに格納されているA値を読み出し、続いて、命令Bでは、論理レジスタAにあらたにB値を格納するなど、同一の論理レジスタを時間軸で分割して共有させる処理が多々含まれる。   For example, assume that instructions that access the same logical register A are executed in the order of instruction A → instruction B. In an ordinary program, the A value stored in the logical register A is read out in the instruction A, and then the B value is stored in the logical register A in the instruction B. Many processes that are divided and shared by.

レジスタリネーミング機構を備えた場合、上述のようにプログラム記述では共有された論理レジスタにそれぞれ異なる物理レジスタを対応させる。すなわち、命令AにおいてA値を読み出す論理レジスタAと、命令BにおいてB値を格納する論理レジスタAとにそれぞれ異なる物理レジスタを割り当てる。命令ごとに異なる物理レジスタが設定されたことによって、命令Bは命令Aの終了を待たずにB値の格納処理をおこなうことができ、プログラムの並列性を高めることができる(たとえば、下記特許文献1参照。)。   When the register renaming mechanism is provided, different physical registers are associated with the shared logical registers in the program description as described above. That is, different physical registers are allocated to the logical register A that reads the A value in the instruction A and the logical register A that stores the B value in the instruction B, respectively. Since a different physical register is set for each instruction, the instruction B can store the B value without waiting for the end of the instruction A, and the parallelism of the program can be improved (for example, the following patent document) 1).

特開2001−229022号公報JP 2001-229022 A

しかしながら、従来のようにレジスタプロモーションをおこなったとしても、レジスタ数は限度があるため、必要なすべての値をレジスタに格納することはできない。したがって、再利用される予定のある値であっても、レジスタ数の不足によりキャッシュや主記憶メモリに格納しなければならず、プログラムの実行速度が低下してしまうという問題があった。   However, even if register promotion is performed as in the past, the number of registers is limited, so that all necessary values cannot be stored in the registers. Therefore, even a value that is scheduled to be reused must be stored in the cache or the main memory due to a shortage of the number of registers, resulting in a problem that the execution speed of the program decreases.

レジスタが不足した場合、一般的にはレジスタスピルと呼ばれる処理がおこなわれる。レジスタスピルは、レジスタに記録されていた値をキャッシュや主記憶メモリのスタック領域に待避(ストア)し、また、同じ値が必要になったときには、待避させたスタック領域から元のレジスタに復元(ロード)する処理である。したがって、レジスタスピルが発生するとキャッシュや主記憶へのアクセス(ストア/ロード)が必要となり、結果としてプログラム実行時間は長くなってしまうという問題があった。   When there is a shortage of registers, processing called register spill is generally performed. The register spill saves (stores) the value recorded in the register to the stack area of the cache or main memory, and restores the original register from the saved stack area when the same value is needed ( Load). Therefore, when a register spill occurs, access to the cache and main memory (store / load) is required, resulting in a problem that the program execution time becomes long.

レジスタスピルを削減するには、レジスタ数を増加させる方法が有効である。しかしながら、プロセッサの命令セットアーキテクチャは、特定のレジスタ数に基づいて構築されているため、レジスタ数を増加した場合には、命令セットアーキテクチャを大幅に変更する必要がある。このような命令セットアーキテクチャの大幅な変更は、現実的には困難である。   In order to reduce the register spill, a method of increasing the number of registers is effective. However, since the instruction set architecture of the processor is constructed based on a specific number of registers, when the number of registers is increased, the instruction set architecture needs to be significantly changed. Such a significant change in the instruction set architecture is practically difficult.

また、上記特許文献1の場合、レジスタリネーミングによってプログラムの実行速度は向上するが、命令に記述されたレジスタ値がすべてリネーミング対象となるため、論理レジスタ数よりも物理レジスタ数が多いにもかかわらず物理レジスタが枯渇しやすいという問題があった。   In the case of Patent Document 1, the program execution speed is improved by register renaming. However, since all register values described in the instruction are to be renamed, the number of physical registers is larger than the number of logical registers. Regardless, there was a problem that the physical registers were easily exhausted.

この発明は、上述した従来技術による問題点を解消するため、レジスタスピルが発生してもプログラムの実行速度の低下を防ぐことのできる演算処理装置および演算処理装置の制御方法を提供することを目的とする。 An object of the present invention is to provide an arithmetic processing apparatus and a control method for the arithmetic processing apparatus that can prevent a decrease in the execution speed of a program even if a register spill occurs, in order to solve the above-described problems caused by the prior art. And

上述した課題を解決し、目的を達成するため、このプロセッサ、レジスタアクセス方法およびレジスタアクセスプログラムは、命令セットアーキテクチャに規定された論理レジスタ数以上の物理レジスタを備え、前記論理レジスタを前記物理レジスタに変換するレジスタリネーミング機構を備え、前記論理レジスタと前記物理レジスタとの対応付けをあらわす対応情報を管理し、前記論理レジスタと前記物理レジスタとの対応が変更された場合には前記対応情報を更新する機能を備えることを要件とする。さらに、指定された論理レジスタに格納された値をキャッシュ・主記憶などの記憶媒体に待避させる待避命令が実行された場合に、前記対応情報を参照して前記指定された論理レジスタに対応した物理レジスタに格納された値を読み出し、当該読み出した値を、その時に使用されていない空いている物理レジスタに格納し、前記格納の際には、前記待避命令実行後に前記他の記憶媒体のアドレスと、あらたに値が格納された物理レジスタとの対応を前記対応情報に追加する。   In order to solve the above-described problems and achieve the object, the processor, the register access method, and the register access program include physical registers equal to or more than the number of logical registers defined in the instruction set architecture, and the logical registers are stored in the physical registers. A register renaming mechanism for converting, managing correspondence information indicating correspondence between the logical register and the physical register, and updating the correspondence information when the correspondence between the logical register and the physical register is changed It is a requirement to have a function to perform. Further, when a save instruction is executed to save the value stored in the designated logical register in a storage medium such as cache or main memory, the physical information corresponding to the designated logical register is referred to with reference to the correspondence information. The value stored in the register is read out, and the read value is stored in an empty physical register that is not used at the time, and at the time of the storage, the address of the other storage medium is set after the execution of the save instruction. A correspondence with a physical register in which a value is newly stored is added to the correspondence information.

このプロセッサ、レジスタアクセス方法およびレジスタアクセスプログラムによれば、レジスタスピルに相当する待避命令が実行された場合に、実際には待避命令で指定されているアドレス、すなわちキャッシュ・主記憶などの記憶媒体に値を格納することなく、物理レジスタの中の空いている物理レジスタに値を格納する。そして、あらたに値が格納された物理レジスタと、待避命令で指定されているアドレスとの対応を対応情報に追加するため、命令セットアーキテクチャを大幅に変更することなく利用できる。   According to the processor, the register access method, and the register access program, when a save instruction corresponding to a register spill is executed, it is actually stored in an address specified by the save instruction, that is, in a storage medium such as a cache or main memory. A value is stored in an empty physical register in the physical register without storing the value. Since the correspondence between the physical register in which the value is newly stored and the address specified by the save instruction is added to the correspondence information, the instruction set architecture can be used without drastically changing.

また、上記のプロセッサ、レジスタアクセス方法およびレジスタアクセスプログラムは、前記待避命令によって待避させた値をあらたに指定された論理レジスタに格納させる待避値復元命令が実行された場合、前記対応情報を参照して前記待避命令によって前記物理レジスタに格納された値を読み出し、当該読み出した値を前記あらたに指定された論理レジスタに対応した物理レジスタに格納し、前記更新の際には、前記待避値復元命令の実行後、前記アクセス制御手段によって、前記格納された値が読み出された物理レジスタと、前記他の記憶媒体のアドレスとの対応を前記対応情報から削除してもよい。   In addition, the processor, the register access method, and the register access program refer to the correspondence information when a saved value restoration instruction is executed to store a value saved by the save instruction in a newly specified logical register. Reading the value stored in the physical register by the save instruction, storing the read value in a physical register corresponding to the newly specified logical register, and at the time of the update, the save value restoring instruction After the execution, the correspondence between the physical register from which the stored value is read and the address of the other storage medium may be deleted from the correspondence information by the access control means.

このプロセッサ、レジスタアクセス方法およびレジスタアクセスプログラムによれば、事前に実行されたレジスタ値を待避する待避命令によって物理レジスタに格納されていた値を読み出し、待避値復元命令によって指定された論理レジスタに対応する物理レジスタに格納する。ここで実行される待避値復元命令には、レジスタ値が待避されている場所として主記憶等のアドレスが記述されているが、対応情報を参照することによって待避値が格納された物理レジスタから値を復元することができる。   According to this processor, register access method, and register access program, a value stored in a physical register is read by a save instruction that saves a previously executed register value, and a logical register specified by a save value restoration instruction is supported. Stored in the physical register. In the saved value restoration instruction executed here, the address of the main memory or the like is described as the place where the register value is saved, but the value from the physical register in which the saved value is stored by referring to the correspondence information. Can be restored.

また、上記のプロセッサ、レジスタアクセス方法およびレジスタアクセスプログラムは、前記待避命令が実行された場合、その時点で使用されていない空いている物理レジスタがなければ、前記指定された論理レジスタに対応する物理レジスタに格納された値を前記他の記憶媒体に格納してもよい。   In addition, the processor, the register access method, and the register access program, when the save instruction is executed, if there is no free physical register that is not used at the time, the physical register corresponding to the designated logical register. The value stored in the register may be stored in the other storage medium.

このプロセッサ、レジスタアクセス方法およびレジスタアクセスプログラムによれば、待避命令が実行された場合であっても、空いている物理レジスタがなければ、待避命令の記述通り、他の記憶媒体に値を格納する。   According to this processor, register access method, and register access program, even when a save instruction is executed, if there is no free physical register, the value is stored in another storage medium as described in the save instruction. .

また、上記のプロセッサ、レジスタアクセス方法およびレジスタアクセスプログラムは、各物理レジスタの使用状態が、未使用または使用のいずれであるかを検出し、さらに使用の場合は、前記レジスタリネーミングによって論理レジスタに対応させた値が格納されている、もしくは、前記待避命令によって待避させられた値が格納されているかを検出する処理を備え、レジスタリネーミングの際に未使用であると検出された物理レジスタがない場合には、前記物理レジスタに格納されていた値を前記待避命令に記述されていた前記他の記憶媒体に格納させた後、前記物理レジスタと、前記論理レジスタとを対応させ、前記レジスタリネーミング実行後、前記他の記憶媒体のアドレスと、前記物理レジスタとの対応を前記対応情報から削除してもよい。   In addition, the processor, the register access method, and the register access program described above detect whether the usage state of each physical register is unused or used, and in the case of further use, the register renaming converts it into a logical register. A physical register that has been detected to be unused at the time of register renaming is provided with processing for detecting whether a corresponding value is stored or a value saved by the save instruction is stored. If not, after the value stored in the physical register is stored in the other storage medium described in the save instruction, the physical register is associated with the logical register, and the register After performing the naming, the correspondence between the address of the other storage medium and the physical register is deleted from the correspondence information. It may be.

このプロセッサ、レジスタアクセス方法およびレジスタアクセスプログラムによれば、レジスタリネーミングの際に空いている物理レジスタがなければ、待避値が格納されていた物理レジスタを優先的にレジスタリネーミングに利用する。このとき、物理レジスタに格納されていた待避値は、待避命令に記述されていた他の記憶媒体に格納される。   According to this processor, register access method, and register access program, if there is no free physical register at the time of register renaming, the physical register in which the save value is stored is preferentially used for register renaming. At this time, the save value stored in the physical register is stored in another storage medium described in the save instruction.

また、上記のプロセッサ、レジスタアクセス方法およびレジスタアクセスプログラムは、前記待避値復元命令が実行されたにもかかわらず、前記待避命令によって前記物理レジスタに格納された値がなければ、前記待避値復元命令に記述されている他の記憶媒体のアドレスに格納されている値を読み出してもよい。   In addition, the processor, the register access method, and the register access program, when the save value restore instruction is executed, if there is no value stored in the physical register by the save instruction, the save value restore instruction The value stored in the address of another storage medium described in the above may be read.

このプロセッサ、レジスタアクセス方法およびレジスタアクセスプログラムによれば、
前記待避値復元命令が実行されたにもかかわらず、前記待避命令によって前記物理レジスタに格納された値がなければ、待避値は他の記憶媒体に格納されているため、この記憶媒体から待避値を読み出す。
According to this processor, register access method and register access program,
If there is no value stored in the physical register by the save instruction even though the save value restoration command is executed, the save value is stored in another storage medium. Is read.

この演算処理装置および演算処理装置の制御方法によれば、レジスタスピルが発生してもプログラムの実行速度の低下を防ぐことができるという効果を奏する。 According to the arithmetic processing device and the control method of the arithmetic processing device, it is possible to prevent a decrease in the execution speed of the program even if a register spill occurs.

以下に添付図面を参照して、この演算処理装置および演算処理装置の制御方法の好適な実施の形態を詳細に説明する。 Exemplary embodiments of an arithmetic processing unit and a control method for the arithmetic processing unit will be described below in detail with reference to the accompanying drawings.

(レジスタアクセス処理の概要)
まず、本実施の形態にかかるレジスタアクセス処理の概要を説明する。図1は、本実施の形態にかかるレジスタアクセス処理の概要を示す説明図である。図1のようにプロセッサ内部では、実行プログラム101に記述された命令が順次実行される。実行プログラム101のうち、レジスタにアクセスする命令の場合、アクセス先のレジスタ名が記述されており、これらの仮想的なレジスタを論理レジスタ110とよぶ。なお、ここでは論理レジスタ数を16とする。
(Overview of register access processing)
First, an outline of the register access processing according to this embodiment will be described. FIG. 1 is an explanatory diagram showing an overview of register access processing according to the present embodiment. As shown in FIG. 1, instructions described in the execution program 101 are sequentially executed inside the processor. In the execution program 101, in the case of an instruction for accessing a register, an access destination register name is described, and these virtual registers are called logical registers 110. Here, the number of logical registers is 16.

また、本実施の形態では、プロセッサには、論理レジスタ110数よりも多い物理レジスタ120が実装されている。この物理レジスタ120にはレジスタリネーミングによって論理レジスタ110との対応付けがなされている。ここでは物理レジスタ数を64とする。また、レジスタリネーミングの説明の際に例示したように、論理レジスタと物理レジスタとの対応付けは動的におこなわれ、時間経過にともなって対応付けは変更される。レジスタリネーミングによる論理レジスタと物理レジスタとの対応情報は対応表140としてプロセッサに保持されている。   In the present embodiment, more physical registers 120 than the number of logical registers 110 are mounted on the processor. The physical register 120 is associated with the logical register 110 by register renaming. Here, the number of physical registers is 64. Further, as exemplified in the description of register renaming, the association between the logical register and the physical register is dynamically performed, and the association is changed as time elapses. Correspondence information between logical registers and physical registers by register renaming is held in the processor as a correspondence table 140.

ここで、実行プログラム101において、レジスタ値を待避する待避命令が実行されたとする。待避命令には論理レジスタ110のLレジスタ0に格納されている値をキャッシュ・主記憶メモリ(レジスタ以外の他の記憶領域)130のアドレスXに格納するように記述されている。なお、論理レジスタ110のLレジスタ0に格納されている値とは、実際にはレジスタリネーミングによってLレジスタ0に対応付けられた物理レジスタ:Pレジスタ00に格納されている値である。従来は、待避命令の記述通りにLレジスタ0(Pレジスタ00)に格納されている値をキャッシュ・主記憶メモリ130に格納していた。   Here, it is assumed that a save instruction for saving the register value is executed in the execution program 101. The save instruction describes that the value stored in the L register 0 of the logical register 110 is stored in the address X of the cache / main storage memory (storage area other than the register) 130. The value stored in the L register 0 of the logical register 110 is actually a value stored in the physical register P register 00 associated with the L register 0 by register renaming. Conventionally, the value stored in the L register 0 (P register 00) is stored in the cache / main memory 130 as described in the save instruction.

しかしながら、本実施の形態の場合、物理レジスタ120のうち、レジスタリネーミングによって論理レジスタ110との対応付けがされていない物理レジスタに、Lレジスタ0に格納されている値を格納する。図1の場合、物理レジスタ120のうち、PレジスタXXは、論理レジスタとの対応付けがされておらず、“空いた”状態であった。したがって、通常ならLレジスタ0からアドレスXに待避される値(待避値)は、PレジスタXXに格納され、待避命令の処理が完了する。また、このとき待避命令に記述されていたアドレスXとPレジスタXXとが対応付けられたことを対応表140に反映させる。   However, in this embodiment, the value stored in the L register 0 is stored in a physical register that is not associated with the logical register 110 by register renaming among the physical registers 120. In the case of FIG. 1, among the physical registers 120, the P register XX is not associated with a logical register and is in an “empty” state. Therefore, a value normally saved from the L register 0 to the address X (a save value) is stored in the P register XX, and the processing of the save instruction is completed. At this time, the correspondence table 140 reflects that the address X described in the save instruction is associated with the P register XX.

このようにして、本実施の形態の場合、本来であればキャッシュ・主記憶メモリ130のアドレスXにアクセスしなければならなかった処理が、物理レジスタ120にアクセスすることによって完了する。したがって、待避命令の実行に伴うアクセス時間増を防ぐことができる。以下、上述したレジスタアクセス処理を実現するための具体的な構成や処理内容について説明する。   In this way, in the case of the present embodiment, the processing that originally had to access the address X of the cache / main memory 130 is completed by accessing the physical register 120. Therefore, it is possible to prevent an increase in access time due to execution of the save instruction. A specific configuration and processing contents for realizing the register access processing described above will be described below.

(プロセッサの構成)
まず、本実施の形態にかかるレジスタアクセス処理をおこなうためのプロセッサの構成について説明する。なお、プロセッサの構成のうち、レジスタアクセス処理に関連する部分を抽出して説明する。また、プロセッサ内部の他の構成は周知であるためここでは説明を省略する。
(Processor configuration)
First, the configuration of a processor for performing register access processing according to the present embodiment will be described. In the following description, a part related to the register access process is extracted from the processor configuration. Further, since other configurations inside the processor are well known, description thereof is omitted here.

図2は、プロセッサの構成の概要を示すブロック図である。図2のように、プロセッサ200は、本実施の形態にかかるレジスタアクセス処理を実行するための構成として命令キャッシュ201と、デコード部202と、リネーム部203と、スケジュール部204と、実行部205とを備えている。   FIG. 2 is a block diagram showing an outline of the configuration of the processor. As shown in FIG. 2, the processor 200 includes a command cache 201, a decoding unit 202, a rename unit 203, a schedule unit 204, and an execution unit 205 as configurations for executing the register access processing according to the present embodiment. It has.

命令キャッシュ201には、プロセッサ200によって実行される命令が格納されており、プロセッサ200が実行指示を受け付けると、命令をデコード部202に入力する。デコード部202では、入力された命令をデコードし、デコードした命令をリネーム部203に入力する。   The instruction cache 201 stores an instruction to be executed by the processor 200. When the processor 200 receives an execution instruction, the instruction is input to the decoding unit 202. The decoding unit 202 decodes the input instruction and inputs the decoded instruction to the rename unit 203.

リネーム部203は、本実施の形態にかかるレジスタアクセス処理を実現するための機能である。図3は、リネーム部の構成を示すブロック図である。図3のように、リネーム部203は、リネーム制御部301と、論理レジスタ−物理レジスタ対応表302と、アドレス−物理レジスタ対応表303と、物理レジスタ状態表304とから構成されている。   The rename unit 203 is a function for realizing the register access processing according to the present embodiment. FIG. 3 is a block diagram showing the configuration of the rename unit. As illustrated in FIG. 3, the rename unit 203 includes a rename control unit 301, a logical register / physical register correspondence table 302, an address / physical register correspondence table 303, and a physical register state table 304.

リネーム制御部301には、基本機能として、論理レジスタ110番号を物理レジスタ120番号に変換するリネーム処理機能と、必要に応じて論理レジスタ110と物理レジスタ120との対応付けを更新する更新処理機能とを備えている。リネーム制御部301によって対応付けられた論理レジスタ110と物理レジスタ120との対応情報は、論理レジスタ−物理レジスタ対応表302として保存されている。   The rename control unit 301 includes, as basic functions, a rename processing function that converts a logical register 110 number into a physical register 120 number, and an update processing function that updates the correspondence between the logical register 110 and the physical register 120 as necessary. It has. The correspondence information between the logical register 110 and the physical register 120 associated with each other by the rename control unit 301 is stored as a logical register / physical register correspondence table 302.

また、リネーム制御部301は、上述した基本処理に加え、本実施の形態の特徴である待避命令の実行時には、待避命令に記述されたキャッシュ・主記憶メモリ130のアドレスと、値を格納する物理レジスタ120との対応付けがおこなわれる。リネーム制御部301によって対応付けられたキャッシュ・主記憶メモリ130のアドレスと物理レジスタ120との対応情報は、アドレス−物理レジスタ対応表303として保存されている。   In addition to the basic processing described above, the rename control unit 301 stores the address and value of the cache / main memory 130 described in the save instruction when executing the save instruction, which is a feature of the present embodiment. Correlation with the register 120 is performed. The correspondence information between the address of the cache / main memory 130 and the physical register 120 associated with each other by the rename control unit 301 is stored as an address-physical register correspondence table 303.

さらに、リネーム制御部301は、物理レジスタ120の使用状態を管理する機能を備えており、物理レジスタ120の使用状態は、物理レジスタ状態表304として保存されている。なお、物理レジスタ状態表304の用途については詳しく後述する。   Further, the rename control unit 301 has a function of managing the usage status of the physical register 120, and the usage status of the physical register 120 is stored as a physical register status table 304. The use of the physical register status table 304 will be described in detail later.

以上説明したようにリネーム部203によって変換された命令は、スケジュール部204によって実行タイミングが調整されたのち、実行部205に入力される。実行部205は、入力された命令を実行する。   As described above, the instruction converted by the rename unit 203 is input to the execution unit 205 after the execution timing is adjusted by the schedule unit 204. The execution unit 205 executes the input instruction.

(コンパイラによる待避命令の生成)
つぎに、プロセッサ200によって実行される実行プログラム101を生成するコンパイラについて説明する。上述したように、プロセッサ200の命令キャッシュ201から読み出される命令には待避命令が含まれている。この待避命令とは、具体的には、物理レジスタ120に格納されていた値をキャッシュ・主記憶メモリ130に待避させる命令と、この待避命令によってキャッシュ・主記憶メモリ130に待避された値を再び物理レジスタ120に復元させる命令との双方をさす。ここでは、専用のコンパイラを用いて待避命令を含む実行プログラム101を生成する手法について説明する。
(Generation of save instruction by compiler)
Next, a compiler that generates the execution program 101 executed by the processor 200 will be described. As described above, the instruction read from the instruction cache 201 of the processor 200 includes a save instruction. Specifically, the save instruction is an instruction that saves the value stored in the physical register 120 in the cache / main memory 130, and the value saved in the cache / main memory 130 by the save instruction again. It refers to both the instruction to restore the physical register 120. Here, a method for generating the execution program 101 including the save instruction using a dedicated compiler will be described.

図4は、コンパイラによる待避命令の生成手順を示す説明図である。図4のように、コンパイラ410には、ソースファイル401が入力される。通常のコンパイラと同様にコンパイラ410では、各種ルーチンを用いて入力されたソースファイル401をコンパイルして実行プログラム101を生成する。コンパイラ410にはこれら各種ルーチンの中にレジスタ値待避・復元命令生成ルーチンが含まれている。   FIG. 4 is an explanatory diagram showing a save instruction generation procedure by the compiler. As shown in FIG. 4, the source file 401 is input to the compiler 410. Similar to a normal compiler, the compiler 410 compiles a source file 401 input using various routines to generate an execution program 101. The compiler 410 includes a register value saving / restoring instruction generation routine among these various routines.

このレジスタ値待避・復元命令生成ルーチンは、対応表411に記載されているように、レジスタ値をスタックへ待避する命令として従来ならstore命令を生成する代わりにspill−store命令を生成し、レジスタ値をスタックから復元する命令として従来ならload命令を生成する代わりにspill−load命令を生成する。このようにレジスタ値待避・復元命令生成ルーチンによって待避命令が生成されることによって待避命令を含んだ実行プログラム101が生成される。このようにコンパイラ410を利用することにより、レジスタ値待避・復元命令生成ルーチンの設定変更よって待避命令の生成条件をユーザが容易に調整することができるという利点がある。   As described in the correspondence table 411, this register value saving / restoring instruction generation routine generates a spill-store instruction instead of generating a store instruction as an instruction for saving a register value to the stack. Conventionally, a spill-load instruction is generated instead of generating a load instruction as an instruction for restoring from the stack. As described above, the save instruction is generated by the register value save / restore instruction generation routine, thereby generating the execution program 101 including the save instruction. By using the compiler 410 in this manner, there is an advantage that the user can easily adjust the save instruction generation conditions by changing the setting of the register value save / restore instruction generation routine.

(待避命令を含んだレジスタアクセス処理:基本処理)
つぎに、上述した構成のプロセッサ200によって実行される待避命令を含んだレジスタアクセス処理について説明する。図5は、待避命令を含むレジスタアクセス処理の一例を示す説明図である。
(Register access processing including save instruction: basic processing)
Next, a register access process including a save instruction executed by the processor 200 having the above-described configuration will be described. FIG. 5 is an explanatory diagram illustrating an example of a register access process including a save instruction.

図5では、まず、命令spill−store reg−A [addr−X]が実行される。図4にて説明したように、spill−store命令はレジスタ値を待避させる命令である。通常、レジスタ値を待避させるとキャッシュ・主記憶メモリ130にレジスタ値を格納することになる。しかしながら、spill−store命令ではキャッシュ・主記憶メモリ130の替わりに物理レジスタ120のなかのレジスタリネーミングに利用されていない物理レジスタにレジスタ値を格納する。図5の、命令spill−store reg−A [addr−X]の実行では、reg−Aの値は物理レジスタ17に格納される。この待避処理は命令実行後、即座にアドレス−物理レジスタ対応表303に反映される。   In FIG. 5, first, the instruction spill-store reg-A [addr-X] is executed. As described with reference to FIG. 4, the spill-store instruction is an instruction for saving a register value. Normally, when the register value is saved, the register value is stored in the cache / main memory 130. However, in the spill-store instruction, a register value is stored in a physical register that is not used for register renaming in the physical register 120 instead of the cache / main memory 130. In the execution of the instruction spill-store reg-A [addr-X] in FIG. 5, the value of reg-A is stored in the physical register 17. This saving process is immediately reflected in the address-physical register correspondence table 303 after the instruction is executed.

図5では、その後、命令spill−load [addr−X] reg−Bが実行される。図4にて説明したように、spill−load命令はspill−store命令で待避したレジスタ値を復元する命令である。ここでは、アドレス−物理レジスタ対応表303に示すようにspill−storeがaddr−Xに待避した値は物理レジスタ17に格納されているので、reg−Bを物理レジスタ17に対応付ける。もしくは、物理レジスタ17に格納されている値を読み出してreg−Bに対応付けられた物理レジスタに格納する。   In FIG. 5, the instruction spill-load [addr-X] reg-B is then executed. As described with reference to FIG. 4, the spill-load instruction is an instruction for restoring the register value saved by the spill-store instruction. Here, as shown in the address-physical register correspondence table 303, the value saved by the spill-store in addr-X is stored in the physical register 17, so reg-B is associated with the physical register 17. Alternatively, the value stored in the physical register 17 is read and stored in the physical register associated with reg-B.

以上説明した処理が、待避命令を含んだレジスタアクセス処理のなかでも基本処理となる。このように、命令列にはキャッシュ・主記憶メモリ130のアドレスが記述されているにもかかわらず、キャッシュ・主記憶メモリ130にアクセスすることなく処理を終了することができる。   The process described above is a basic process among the register access processes including the save instruction. In this way, the process can be completed without accessing the cache / main memory 130, even though the address of the cache / main memory 130 is described in the instruction sequence.

(待避命令を含んだレジスタアクセス処理:例外処理)
つぎに、実行プログラム101の実行に伴い、上述した基本処理以外の例外的な事象が発生した場合の処理について説明する。
(Register access processing including save instruction: exception processing)
Next, a process when an exceptional event other than the basic process described above occurs with the execution of the execution program 101 will be described.

1)待避命令実行時の物理レジスタが不足した場合
まず、例外処理として、待避命令実行時に物理レジスタが不足した場合の処理がある。たとえば、命令spill−store reg−A [addr−X]が実行されたとする。この場合、キャッシュ・主記憶メモリ130に替わる物理レジスタ120の割り当てはおこなわない。そして、reg−Aに格納された値をそのままキャッシュ・主記憶メモリ130のaddr−Xに格納する。このときアドレス−物理レジスタ対応表303を更新する必要はない。
1) When physical registers are insufficient when executing a save instruction First, as an exception process, there is a process when a physical register is insufficient when executing a save instruction. For example, assume that the instruction spill-store reg-A [addr-X] is executed. In this case, the physical register 120 that replaces the cache / main memory 130 is not assigned. Then, the value stored in reg-A is stored in addr-X of the cache / main memory 130 as it is. At this time, there is no need to update the address-physical register correspondence table 303.

2)レジスタリネーミング実行時の物理レジスタが不足した場合
つぎの例外処理として、レジスタリネーミング実行時に物理レジスタが不足した場合の処理がある。この場合、待避命令によってキャッシュ・主記憶メモリ130に替わって待避値が格納された物理レジスタ120を解放する。
2) When physical registers run short during register renaming The next exception handling is processing when physical registers run short during register renaming. In this case, the physical register 120 storing the saved value is released in place of the cache / main memory 130 by the save instruction.

図6は、物理レジスタ不足時の待避値の格納処理を示す説明図である。図6のアドレス−物理レジスタ対応表303に示されているように、通常ならキャッシュ・主記憶メモリ130のaddr−Xに格納される値が、物理レジスタ17に格納されている。物理レジスタ17を解放する場合には、物理レジスタ17に格納されていた値は、通常の格納先であるキャッシュ・主記憶メモリ130のaddr−Xに格納される。物理レジスタ17の解放後、アドレス−物理レジスタ対応表303のなかのaddr−Xと物理レジスタ17との対応情報はクリアされる。   FIG. 6 is an explanatory diagram showing a process for storing a saved value when a physical register is insufficient. As shown in the address-physical register correspondence table 303 in FIG. 6, the value stored in the addr-X of the cache / main memory 130 is normally stored in the physical register 17. When the physical register 17 is released, the value stored in the physical register 17 is stored in addr-X of the cache / main memory 130 which is a normal storage destination. After the physical register 17 is released, the correspondence information between addr-X and the physical register 17 in the address-physical register correspondence table 303 is cleared.

3)待避値が物理レジスタに格納されていない
つぎの例外処理として、待避値復元命令に対応した待避値が物理レジスタ120に格納されていない場合の処理がある。たとえば、命令spill−load [addr−X] reg−Bが実行されたとする。この場合、待避値は、物理レジスタ120には格納されていないと判断される。したがって、通常のload命令と同様にキャッシュ・主記憶メモリ130のaddr−Xに格納されている値を読み出す。このときもアドレス−物理レジスタ対応表303を更新する必要はない。
3) The saved value is not stored in the physical register The next exception processing is processing when the saved value corresponding to the saved value restoration instruction is not stored in the physical register 120. For example, assume that the instruction spill-load [addr-X] reg-B is executed. In this case, it is determined that the save value is not stored in the physical register 120. Therefore, the value stored in the addr-X of the cache / main memory 130 is read out in the same way as a normal load instruction. At this time, it is not necessary to update the address-physical register correspondence table 303.

(物理レジスタの使用状態フラグ)
上述したように、基本処理の場合には、複数のレジスタから構成される物理レジスタ120の中から空いているレジスタを見つけ出し、待避用のレジスタとして割り当てなければならない。また、例外処理2)が発生した場合もまた、物理レジスタ120の中から待避値が格納されているレジスタを見つけ出し、レジスタリネーミング用に解放しなければならない。
(Physical register usage flag)
As described above, in the case of basic processing, a free register must be found out of the physical registers 120 composed of a plurality of registers and assigned as a saving register. Also, when exception processing 2) occurs, the register storing the save value must be found out of the physical register 120 and released for register renaming.

本実施の形態では、物理レジスタ120の中から使用状態に応じて必要なレジスタを見つけ出すための手法として、物理レジスタの使用状態フラグを利用する。図7は、物理レジスタの状態フラグの設定を示す説明図である。図7のように、物理レジスタ120を構成する各レジスタにはそれぞれ、2値の状態フラグが付与されている。状態フラグは「00,01,10」との3種があり、00=未使用、01=レジスタリネーミングによる使用、10=待避命令による使用をあらわしている。   In the present embodiment, as a method for finding a necessary register from the physical register 120 according to the use state, a use state flag of the physical register is used. FIG. 7 is an explanatory diagram showing the setting of the status flag of the physical register. As shown in FIG. 7, a binary status flag is assigned to each register constituting the physical register 120. There are three types of status flags, “00, 01, 10”. 00 = unused, 01 = used by register renaming, 10 = used by save instruction.

たとえば、レジスタリネーミングが実行された場合には、まず状態フラグ00のレジスタを探す。図7の場合であれば、状態フラグ00のPレジスタ13が見つけ出され、レジスタリネーミングに利用される。また、上述の例外処理2)のように状態フラグ00のレジスタがなかった場合には、状態フラグ10のレジスタが見つけ出され、レジスタリネーミングに利用される。   For example, when register renaming is executed, the register of the status flag 00 is first searched. In the case of FIG. 7, the P register 13 of the status flag 00 is found and used for register renaming. If there is no register for the status flag 00 as in the above exception processing 2), the register for the status flag 10 is found and used for register renaming.

また、待避命令が実行された場合も、まず状態フラグ00のレジスタを探す。図8は、物理レジスタへの格納例を示す説明図である。図8のように、物理レジスタ120に状態フラグ00のレジスタがあれば(ここでは、Pレジスタ12、13)、これらのレジスタのうちいずれかのレジスタに待避値が格納される。図8では、Pレジスタ12に待避値が格納されたため、Pレジスタ12の状態フラグは10に更新される。また、待避値復元命令が実行された場合、論理レジスタ110と対応付けされた物理レジスタ120に値が格納されるため、状態フラグは01に更新される。   Also, when the save instruction is executed, the register of the status flag 00 is searched first. FIG. 8 is an explanatory diagram illustrating an example of storage in a physical register. As shown in FIG. 8, if the physical register 120 has a register for the status flag 00 (here, P registers 12 and 13), the save value is stored in any one of these registers. In FIG. 8, since the save value is stored in the P register 12, the status flag of the P register 12 is updated to 10. When the saved value restoration instruction is executed, the value is stored in the physical register 120 associated with the logical register 110, so that the status flag is updated to 01.

この状態フラグは、図3にて説明した物理レジスタ状態表304に一括して格納される。したがって、実行させる処理(レジスタリネーミング、待避命令など)に応じて所望する状態の物理レジスタ120を見つけ出したい場合には、物理レジスタ状態表304を参照すればよい。また、状態フラグを物理レジスタ状態表304に格納することによって、物理レジスタ120の記録可能ビット数を減少させることなく、状態フラグを利用することができる。   This status flag is collectively stored in the physical register status table 304 described with reference to FIG. Therefore, when it is desired to find the physical register 120 in a desired state according to the processing to be executed (register renaming, save instruction, etc.), the physical register state table 304 may be referred to. Further, by storing the status flag in the physical register status table 304, the status flag can be used without reducing the number of recordable bits of the physical register 120.

以上説明したように、本実施の形態によれば、プロセッサ200によって命令実行時に、物理レジスタよりもアクセス速度の劣るキャッシュや主記憶メモリへのアクセスを最小限に抑えるため、可能な限り物理レジスタ120を利用させるレジスタアクセス処理がおこなわれる。したがって、レジスタスピルが発生してもプログラムの実行速度の低下を防ぐことができる。   As described above, according to the present embodiment, when the instruction is executed by the processor 200, the physical register 120 is minimized as much as possible in order to minimize access to the cache or the main memory having a lower access speed than the physical register. Register access processing is performed to use. Therefore, even if a register spill occurs, it is possible to prevent a decrease in the program execution speed.

なお、本実施の形態で説明したレジスタアクセス方法は、あらかじめ用意されたプログラムをパーソナル・コンピュータやワークステーションなどのコンピュータで実行することにより実現することができる。このプログラムは、ハードディスク、フレキシブルディスク、CD−ROM、MO、DVDなどのコンピュータで読み取り可能な記憶媒体に記録され、コンピュータによって記憶媒体から読み出されることによって実行される。またこのプログラムは、インターネット等のネットワークを介して配布することが可能な伝送媒体であってもよい。   The register access method described in this embodiment can be realized by executing a program prepared in advance on a computer such as a personal computer or a workstation. This program is recorded on a computer-readable storage medium such as a hard disk, a flexible disk, a CD-ROM, an MO, and a DVD, and is executed by being read from the storage medium by the computer. The program may be a transmission medium that can be distributed via a network such as the Internet.

また、本実施の形態で説明したプロセッサ200は、スタンダードセルやストラクチャードASIC(Application Specific Integrated Circuit)などの特定用途向けIC(以下、単に「ASIC」と称す。)やFPGAなどのPLD(Programmable Logic Device)によっても実現することができる。具体的には、たとえば、上述したプロセッサ200の機能(機能ブロックの各符号を入れる)をHDL記述によって機能定義し、そのHDL記述を論理合成してASICやPLDに与えることにより、プロセッサ200を製造することができる。   In addition, the processor 200 described in this embodiment includes a special-purpose IC (hereinafter simply referred to as “ASIC”) such as a standard cell or a structured ASIC (Application Specific Integrated Circuit), or a PLD (Programmable Logic Device) such as an FPGA. ) Can also be realized. Specifically, for example, the processor 200 is manufactured by defining the function of the processor 200 described above (inserting each code of the function block) by the HDL description, logically synthesizing the HDL description and giving it to the ASIC or PLD. can do.

上述した実施の形態に関し、さらに以下の付記を開示する。   The following additional notes are disclosed with respect to the embodiment described above.

(付記1)命令セットアーキテクチャに規定された論理レジスタ数以上の物理レジスタと、
前記論理レジスタと前記物理レジスタとを対応付けるレジスタリネーミングをおこない、前記論理レジスタと前記物理レジスタとの対応付けをあらわす対応情報を生成するリネーミング制御手段と、
前記命令セットアーキテクチャの中の命令が実行され、前記論理レジスタと、前記物理レジスタとの対応が変更された場合に、前記対応情報を更新する更新手段と、
前記命令セットアーキテクチャの中の命令のうち、いずれかの論理レジスタへのアクセスに関する命令を実行する際に、前記更新手段によって更新された対応情報を参照して前記論理レジスタに対応した物理レジスタへアクセスするアクセス制御手段と、を備え、
前記アクセス制御手段は、指定された論理レジスタに格納された値を当該論理レジスタから前記物理レジスタよりもアクセス速度の劣る他の記憶媒体に待避させる待避命令が実行された場合に、前記対応情報を参照して前記指定された論理レジスタに対応した物理レジスタに格納された値を読み出し、当該読み出した値を、いずれの論理レジスタとも対応付けのされていない物理レジスタに格納し、
前記更新手段は、前記待避命令実行後に前記他の記憶媒体のアドレスと、前記アクセス制御手段によって前記読み出した値が格納された物理レジスタとの対応を前記対応情報に追加することを特徴とするプロセッサ。
(Appendix 1) Physical registers greater than the number of logical registers specified in the instruction set architecture;
Register renaming for associating the logical register with the physical register, and renaming control means for generating correspondence information representing a correspondence between the logical register and the physical register;
Updating means for updating the correspondence information when an instruction in the instruction set architecture is executed and the correspondence between the logical register and the physical register is changed;
Accessing a physical register corresponding to the logical register with reference to the correspondence information updated by the updating means when executing an instruction related to access to any logical register among the instructions in the instruction set architecture And an access control means for
The access control means, when a save instruction is executed to save the value stored in the designated logical register from the logical register to another storage medium having a lower access speed than the physical register, The value stored in the physical register corresponding to the specified logical register is read by reference, and the read value is stored in the physical register that is not associated with any logical register.
The update means adds a correspondence between the address of the other storage medium after execution of the save instruction and a physical register in which the value read by the access control means is stored in the correspondence information. .

(付記2)前記アクセス制御手段は、前記命令セットアーキテクチャのうち、前記待避命令によって待避させた値をあらたに指定された論理レジスタに格納させる待避値復元命令が実行された場合に、前記対応情報を参照して前記待避命令によって前記物理レジスタに格納された値を読み出し、当該読み出した値を前記あらたに指定された論理レジスタに対応した物理レジスタに格納し、
前記更新手段は、前記待避値復元命令の実行後、前記アクセス制御手段によって、前記格納された値が読み出された物理レジスタと、前記他の記憶媒体のアドレスとの対応を前記対応情報から削除することを特徴とする付記1に記載のプロセッサ。
(Supplementary Note 2) The access control means, when a saved value restoration instruction for storing a value saved by the save instruction in a newly specified logical register in the instruction set architecture is executed. The value stored in the physical register by the save instruction is read with reference to, and the read value is stored in the physical register corresponding to the newly specified logical register,
The update means deletes the correspondence between the physical register from which the stored value is read and the address of the other storage medium from the correspondence information by the access control means after the execution of the saved value restoration instruction. The processor according to appendix 1, wherein:

(付記3)前記アクセス制御手段は、前記待避命令が実行された場合に、いずれの論理レジスタとも対応付けのされていない物理レジスタがなければ、前記指定の論理レジスタに格納された値を前記他の記憶媒体に格納することを特徴とする付記1または2に記載のプロセッサ。 (Supplementary Note 3) When the save instruction is executed, the access control means uses the value stored in the designated logical register if the physical register not associated with any logical register exists. The processor according to appendix 1 or 2, wherein the processor is stored in the storage medium.

(付記4)各物理レジスタの使用状態が、未使用または使用のいずれであるかを検出する検出手段を備え、
前記リネーミング制御手段は、前記命令に記述された論理レジスタと、前記検出手段によって未使用であると検出された物理レジスタとを対応させることを特徴とする付記1〜3のいずれか一つに記載のプロセッサ。
(Appendix 4) Provided with detecting means for detecting whether the usage state of each physical register is unused or used,
The renaming control means associates the logical register described in the instruction with the physical register detected as unused by the detecting means. The processor described.

(付記5)前記アクセス制御手段は、前記待避値復元命令が実行されたにもかかわらず、前記待避命令によって前記物理レジスタに格納された値がなければ、前記待避値復元命令に記述されている他の記憶媒体のアドレスに格納されている値を読み出すことを特徴とする付記2〜4のいずれか一つに記載のプロセッサ。 (Supplementary Note 5) The access control means is described in the save value restore instruction if there is no value stored in the physical register by the save instruction even though the save value restore instruction is executed. The processor according to any one of appendices 2 to 4, wherein a value stored in an address of another storage medium is read.

(付記6)各物理レジスタの使用状態が、未使用または使用のいずれであるかを検出し、さらに使用の場合は、前記レジスタリネーミングによって論理レジスタに対応させた値が格納されている、もしくは、前記待避命令によって待避させられた値が格納されているかを検出する検出手段を備え、
前記リネーミング制御手段は、前記検出手段によって未使用であると検出された物理レジスタがない場合、前記アクセス制御手段によって、前記物理レジスタに格納されていた値を前記待避命令に記述されていた前記他の記憶媒体に格納させた後、前記物理レジスタと、前記論理レジスタとを対応させ、
前記更新手段は、前記レジスタリネーミング実行後、前記他の記憶媒体のアドレスと、前記物理レジスタとの対応を前記対応情報から削除することを特徴とする付記1〜5のいずれか一つに記載のプロセッサ。
(Appendix 6) It is detected whether the usage state of each physical register is unused or used, and in the case of further use, a value corresponding to the logical register is stored by the register renaming, or Detecting means for detecting whether the value saved by the save instruction is stored;
The renaming control means, when there is no physical register detected as unused by the detection means, the value stored in the physical register by the access control means described in the save instruction After storing in another storage medium, the physical register and the logical register are associated with each other,
The update means deletes the correspondence between the address of the other storage medium and the physical register from the correspondence information after execution of the register renaming. Processor.

(付記7)命令セットアーキテクチャに規定された論理レジスタ数以上の物理レジスタを備えたプロセッサにおけるレジスタアクセス方法であって、
前記論理レジスタと前記物理レジスタとを対応付けるレジスタリネーミングをおこない、前記論理レジスタと前記物理レジスタとの対応付けをあらわす対応情報を生成するリネーミング工程と、
前記命令セットアーキテクチャに記述された命令を順次実行する実行工程と、
前記実行工程によって、指定された論理レジスタに格納された値を当該論理レジスタから前記物理レジスタよりもアクセス速度の劣る他の記憶媒体に待避させる待避命令が実行された場合に、前記対応情報を参照して前記指定された論理レジスタに対応した物理レジスタに格納された値を読み出し、当該読み出した値を、いずれの論理レジスタとも対応付けのされていない物理レジスタに格納する待避値格納工程と、
前記待避値格納工程によって読み出した値が格納された物理レジスタと、前記他の記憶媒体のアドレスとの対応を含んだ情報を前記対応情報に追加する追加工程と、
を含むことを特徴とするレジスタアクセス方法。
(Appendix 7) A register access method in a processor having physical registers equal to or more than the number of logical registers specified in the instruction set architecture,
Register renaming for associating the logical register with the physical register, and generating correspondence information representing a correspondence between the logical register and the physical register;
An execution step of sequentially executing instructions described in the instruction set architecture;
When the execution step executes a save instruction for saving the value stored in the specified logical register from the logical register to another storage medium having a lower access speed than the physical register, refer to the correspondence information. Reading a value stored in a physical register corresponding to the designated logical register, and storing the read value in a physical register not associated with any logical register;
An additional step of adding, to the correspondence information, information including the correspondence between the physical register in which the value read out by the save value storage step and the address of the other storage medium are stored;
A register access method comprising:

(付記8)前記待避値格納工程によって前記読み出した値が格納された後、前記実行工程によって前記待避させた値をあらたに指定された論理レジスタに格納させる待避値復元命令が実行された場合、
前記追加工程によって対応が追加された対応情報を参照して、前記待避値格納工程によって前記物理レジスタに格納された値を読み出し、当該読み出した値を前記あらたに指定された論理レジスタに対応した物理レジスタに格納する待避値復元工程と、
前記待避値復元工程によって、前記格納された値が読み出された物理レジスタと、前記他の記憶媒体のアドレスとの対応を前記対応情報から削除する削除工程とを、
含むことを特徴とする付記7に記載のレジスタアクセス方法。
(Supplementary note 8) When the read value is stored by the execution step after the read value is stored in the save value storage step, the save value restoration instruction is executed to store the newly saved value in the designated logical register.
With reference to the correspondence information to which the correspondence is added by the adding step, the value stored in the physical register by the save value storing step is read, and the read value is the physical corresponding to the newly specified logical register. The saved value restoration process stored in the register,
A deletion step of deleting the correspondence between the physical register from which the stored value has been read out by the saved value restoration step and the address of the other storage medium from the correspondence information;
The register access method according to appendix 7, wherein the register access method is included.

(付記9)前記待避値格納工程は、いずれの論理レジスタとも対応付けのされていない物理レジスタがない場合、前記指定された論理レジスタに格納された値を前記他の記憶媒体に格納することを特徴とする付記7または8に記載のレジスタアクセス方法。 (Supplementary Note 9) The save value storing step stores the value stored in the designated logical register in the other storage medium when there is no physical register that is not associated with any logical register. 9. The register access method according to appendix 7 or 8, which is characterized by the following.

(付記10)前記リネーミング工程の前段に、各物理レジスタの使用状態が、未使用または使用のいずれであるかを検出する検出工程を含み、
前記リネーミング工程は、前記命令セットアーキテクチャに記述された論理レジスタと、前記検出工程によって未使用であると検出された物理レジスタとを対応させることを特徴とする付記7〜9のいずれか一つに記載のレジスタアクセス方法。
(Additional remark 10) The detection process which detects whether the use state of each physical register is unused or used before the said renaming process,
The renaming process associates the logical register described in the instruction set architecture with the physical register detected as unused by the detection process. The register access method described in 1.

(付記11)前記待避値復元工程は、前記実行工程によって前記待避値復元命令が実行されたにもかかわらず、前記待避命令によって前記物理レジスタに格納された値がなければ、前記待避値復元命令に記述されている他の記憶媒体のアドレスに格納されている値を読み出すことを特徴とする付記8〜10のいずれか一つに記載のレジスタアクセス方法。 (Supplementary Note 11) If the saved value restoring step is executed when the saved value restoring instruction is executed by the executing step and there is no value stored in the physical register by the saved instruction, the saved value restoring command is executed. 11. The register access method according to any one of appendices 8 to 10, wherein a value stored in an address of another storage medium described in the item (4) is read.

(付記12)前記リネーミング工程の前段に、各物理レジスタの使用状態が、未使用または使用のいずれであるかを検出し、さらに使用の場合は、前記レジスタリネーミングによって論理レジスタに対応させた値が格納されている、もしくは、前記待避命令によって待避させられた値が格納されているかを検出する検出工程を含み、
各物理レジスタの使用状態が、未使用または使用のいずれであるかを検出し、さらに使用の場合は、前記レジスタリネーミングによって論理レジスタに対応させた値が格納されている、もしくは、前記待避命令によって待避させられた値が格納されているかを検出する検出工程を備え、
前記リネーミング工程では、前記検出工程によって未使用であると検出された物理レジスタがない場合、前記物理レジスタに格納されていた値を前記待避命令に記述されていた前記他の記憶媒体に格納させた後、前記物理レジスタと、前記論理レジスタとを対応させ、
さらに、前記リネーミング工程によるレジスタリネーミング実行後、前記他の記憶媒体のアドレスと、前記物理レジスタとの対応を前記対応情報から削除する削除工程を含むことを特徴とする付記7〜11のいずれか一つに記載のレジスタアクセス方法。
(Supplementary note 12) Before the renaming step, it is detected whether the usage state of each physical register is unused or used. A detection step of detecting whether a value is stored or a value saved by the save instruction is stored;
It is detected whether the use state of each physical register is unused or used, and in the case of further use, a value corresponding to the logical register is stored by the register renaming, or the save instruction A detection step for detecting whether the value saved by the
In the renaming process, if there is no physical register detected as unused by the detection process, the value stored in the physical register is stored in the other storage medium described in the save instruction. After that, the physical register is associated with the logical register,
Any one of appendixes 7 to 11, further comprising a deletion step of deleting the correspondence between the address of the other storage medium and the physical register from the correspondence information after executing the register renaming by the renaming step. The register access method according to any one of the above.

(付記13)命令セットアーキテクチャに規定された論理レジスタ数以上の物理レジスタを備えたプロセッサおける前記物理レジスタへのアクセスをコンピュータに制御させるレジスタアクセスプログラムであって、
前記コンピュータを、
前記論理レジスタと前記物理レジスタとを対応付けるレジスタリネーミングをおこない、前記論理レジスタと前記物理レジスタとの対応付けをあらわす対応情報を生成するリネーミング制御手段、
前記命令セットアーキテクチャの中の命令が実行され、前記論理レジスタと、前記物理レジスタとの対応が変更された場合に、前記命令実行後に前記対応情報を更新する更新手段、
前記命令セットアーキテクチャの中の命令のうち、いずれかの論理レジスタへのアクセスに関する命令を実行する際に、前記更新手段によって更新された対応情報を参照して前記論理レジスタに対応した物理レジスタへアクセスするアクセス制御手段、として機能させ、
さらに、前記アクセス制御手段は、指定された論理レジスタに格納された値を当該論理レジスタから前記物理レジスタよりもアクセス速度の劣る他の記憶媒体に待避させる待避命令が実行された場合に、前記対応情報を参照して前記指定された論理レジスタに対応した物理レジスタに格納された値を読み出し、当該読み出した値を、いずれの論理レジスタとも対応付けのされていない物理レジスタに格納し、
前記更新手段は、前記待避命令実行後に前記他の記憶媒体のアドレスと、前記アクセス制御手段によって前記読み出した値が格納された物理レジスタとの対応を前記対応情報に追加することを特徴とするレジスタアクセスプログラム。
(Supplementary note 13) A register access program for causing a computer to control access to the physical register in a processor having physical registers equal to or more than the number of logical registers defined in the instruction set architecture,
The computer,
Register renaming for associating the logical register with the physical register, and generating renaming control means for representing correspondence between the logical register and the physical register;
Updating means for updating the correspondence information after execution of the instruction when an instruction in the instruction set architecture is executed and the correspondence between the logical register and the physical register is changed;
Accessing a physical register corresponding to the logical register with reference to the correspondence information updated by the updating means when executing an instruction related to access to any logical register among the instructions in the instruction set architecture Function as an access control means,
Further, the access control means is configured to execute the response when a save instruction is executed to save the value stored in the designated logical register from the logical register to another storage medium having a lower access speed than the physical register. Read the value stored in the physical register corresponding to the specified logical register with reference to the information, store the read value in the physical register that is not associated with any logical register,
The update means adds a correspondence between the address of the other storage medium after execution of the save instruction and the physical register in which the value read by the access control means is stored in the correspondence information. Access program.

(付記14)前記アクセス制御手段は、前記命令セットアーキテクチャのうち、前記待避命令によって待避させた値をあらたに指定された論理レジスタに格納させる待避値復元命令が実行された場合に、前記対応情報を参照して前記待避命令によって前記物理レジスタに格納された値を読み出し、当該読み出した値を前記あらたに指定された論理レジスタに対応した物理レジスタに格納し、
前記更新手段は、前記待避値復元命令の実行後、前記アクセス制御手段によって、前記格納された値が読み出された物理レジスタと、前記他の記憶媒体のアドレスとの対応を前記対応情報から削除することを特徴とする付記13に記載のレジスタアクセスプログラム。
(Additional remark 14) The said access control means is the said correspondence information, when the save value restoration command which stores the value saved by the said save command in the newly designated logic register among the said instruction set architecture is performed. The value stored in the physical register by the save instruction is read with reference to, and the read value is stored in the physical register corresponding to the newly specified logical register,
The update means deletes the correspondence between the physical register from which the stored value is read and the address of the other storage medium from the correspondence information by the access control means after the execution of the saved value restoration instruction. 14. The register access program according to appendix 13, wherein

(付記15)前記アクセス制御手段は、前記待避命令が実行された場合に、いずれの論理レジスタとも対応付けのされていない物理レジスタがなければ、前記指定の論理レジスタに格納された値を前記他の記憶媒体に格納することを特徴とする付記13または14に記載のレジスタアクセスプログラム。 (Supplementary Note 15) When the save instruction is executed, the access control means uses the value stored in the designated logical register if the physical register that is not associated with any logical register. 15. The register access program according to appendix 13 or 14, wherein the register access program is stored in the storage medium.

(付記16)前記コンピュータを、
さらに、各物理レジスタの使用状態が、未使用または使用のいずれであるかを検出する検出手段として機能させ、
前記リネーミング制御手段は、前記命令セットアーキテクチャに記述された論理レジスタと、前記検出手段によって未使用であると検出された物理レジスタとを対応させることを特徴とする付記13〜15のいずれか一つに記載のレジスタアクセスプログラム。
(Supplementary note 16)
Furthermore, it functions as a detection means for detecting whether the usage state of each physical register is unused or used,
The renaming control unit associates a logical register described in the instruction set architecture with a physical register detected as unused by the detection unit. Register access program described in 1.

(付記17)前記アクセス制御手段は、前記待避値復元命令が実行されたにもかかわらず、前記待避命令によって前記物理レジスタに格納された値がなければ、前記待避値復元命令に記述されている他の記憶媒体のアドレスに格納されている値を読み出すことを特徴とする付記14〜16のいずれか一つに記載のレジスタアクセスプログラム。 (Supplementary Note 17) If the value stored in the physical register is not stored in the physical register by the save instruction even though the save value restore instruction is executed, the access control means is described in the save value restore instruction. The register access program according to any one of appendices 14 to 16, wherein a value stored in an address of another storage medium is read.

(付記18)前記コンピュータを、
さらに、各物理レジスタの使用状態が、未使用または使用のいずれであるかを検出し、さらに使用の場合は、前記レジスタリネーミングによって論理レジスタに対応させた値が格納されている、もしくは、前記待避命令によって待避させられた値が格納されているかを検出する検出手段として機能させ、
前記リネーミング制御手段は、前記検出手段によって未使用であると検出された物理レジスタがない場合、前記アクセス制御手段によって、前記物理レジスタに格納されていた値を前記待避命令に記述されていた前記他の記憶媒体に格納させた後、前記物理レジスタと、前記論理レジスタとを対応させ、
前記更新手段は、前記レジスタリネーミング実行後、前記他の記憶媒体のアドレスと、前記物理レジスタとの対応を前記対応情報から削除することを特徴とする付記13〜17のいずれか一つに記載のレジスタアクセスプログラム。
(Supplementary note 18)
Further, it is detected whether the use state of each physical register is unused or used, and in the case of further use, a value corresponding to the logical register is stored by the register renaming, or Function as a detection means for detecting whether the value saved by the save instruction is stored,
The renaming control means, when there is no physical register detected as unused by the detection means, the value stored in the physical register by the access control means described in the save instruction After storing in another storage medium, the physical register and the logical register are associated with each other,
The update means deletes the correspondence between the address of the other storage medium and the physical register from the correspondence information after execution of the register renaming. Register access program.

本実施の形態にかかるレジスタアクセス処理の概要を示す説明図である。It is explanatory drawing which shows the outline | summary of the register access process concerning this Embodiment. プロセッサの構成の概要を示すブロック図である。It is a block diagram which shows the outline | summary of a structure of a processor. リネーム部の構成を示すブロック図である。It is a block diagram which shows the structure of a rename part. コンパイラによる待避命令の生成手順を示す説明図である。It is explanatory drawing which shows the production | generation procedure of the save instruction by a compiler. 待避命令を含むレジスタアクセス処理の一例を示す説明図である。It is explanatory drawing which shows an example of the register access process containing a save instruction. 物理レジスタ不足時の待避値の格納処理を示す説明図である。It is explanatory drawing which shows the storing process of the save value at the time of a physical register shortage. 物理レジスタの状態フラグの設定を示す説明図である。It is explanatory drawing which shows the setting of the status flag of a physical register. 物理レジスタへの格納例を示す説明図である。It is explanatory drawing which shows the example of a storage to a physical register.

符号の説明Explanation of symbols

110 論理レジスタ
120 物理レジスタ
200 プロセッサ
201 命令キャッシュ
202 デコード部
203 リネーム部
204 スケジュール部
205 実行部
301 リネーム制御部
302 論理レジスタ−物理レジスタ対応表
303 アドレス−物理レジスタ対応表
304 物理レジスタ状態表
DESCRIPTION OF SYMBOLS 110 Logical register 120 Physical register 200 Processor 201 Instruction cache 202 Decoding part 203 Rename part 204 Schedule part 205 Execution part 301 Rename control part 302 Logical register-physical register correspondence table 303 Address-physical register correspondence table 304 Physical register state table

Claims (4)

データを記憶する主記憶装置に接続される演算処理装置において、In an arithmetic processing unit connected to a main storage device for storing data,
データを保持するキャッシュメモリと、  Cache memory to hold data,
使用状態を表す使用状態情報をそれぞれ保持する、定義された複数の論理レジスタの数以上の複数の物理レジスタと、  A plurality of physical registers equal to or greater than the number of defined logical registers, each holding usage status information representing usage status;
前記複数の論理レジスタのいずれかと前記複数の物理レジスタのいずれかを対応付けるとともに、対応付けられた論理レジスタと物理レジスタとの対応関係を表すレジスタ間対応情報を生成する生成部と、  A generation unit that associates any one of the plurality of logical registers with any one of the plurality of physical registers, and generates inter-register correspondence information that represents a correspondence relationship between the associated logical register and the physical register;
前記複数の論理レジスタのいずれかを使用するレジスタ使用命令が実行される場合、前記レジスタ間対応情報に基づき、前記レジスタ使用命令が使用する論理レジスタに対応した物理レジスタを使用し、指定された論理レジスタに格納するレジスタ値を前記キャッシュメモリ又は前記主記憶装置に待避する待避命令が実行される場合、前記レジスタ間対応情報に基づき、指定された前記論理レジスタに対応する物理レジスタに格納されたレジスタ値を読み出した後、前記複数の物理レジスタがそれぞれ保持する使用状態情報に基づき、読み出した前記レジスタ値をいずれの論理レジスタとも対応付けられていない物理レジスタに格納する制御部と、  When a register use instruction using any of the plurality of logical registers is executed, a physical register corresponding to the logical register used by the register use instruction is used based on the inter-register correspondence information, and a designated logic A register stored in a physical register corresponding to the specified logical register based on the inter-register correspondence information when a save instruction for saving the register value stored in the register to the cache memory or the main storage device is executed A controller that stores the read register value in a physical register that is not associated with any logical register based on usage state information held by each of the plurality of physical registers after reading the value;
レジスタ使用命令が実行された結果、論理レジスタと物理レジスタとの対応関係が変更された場合、前記レジスタ間対応情報を更新するとともに、前記待避命令が実行された後、前記待避命令に対して指定された前記キャッシュメモリ又は前記主記憶装置のアドレスと前記制御部が読み出した前記レジスタ値が格納された物理レジスタとの対応関係をレジスタメモリ間対応情報に追加する更新部を有することを特徴とする演算処理装置。  When the correspondence relationship between the logical register and the physical register is changed as a result of the execution of the register use instruction, the inter-register correspondence information is updated, and the save instruction is executed and then designated for the save instruction. And an update unit for adding a correspondence relationship between the address of the cache memory or the main storage device and the physical register in which the register value read by the control unit is stored to the correspondence information between register memories. Arithmetic processing device.
前記制御部は、The controller is
前記待避命令を実行することにより前記複数の物理レジスタのいずれかに待避したレジスタ値を、指定された論理レジスタに格納する復元命令を実行する場合、前記レジスタ間対応情報に基づき、前記待避命令によっていずれの論理レジスタとも対応付けられていなかった物理レジスタに格納したレジスタ値を読み出し、指定された前記論理レジスタに対応する物理レジスタに格納し、  When executing a restore instruction that stores a register value saved in any of the plurality of physical registers in a specified logical register by executing the save instruction, based on the inter-register correspondence information, Read the register value stored in the physical register that was not associated with any logical register, store it in the physical register corresponding to the specified logical register,
前記更新部は、  The update unit
前記復元命令の実行後、前記キャッシュメモリ又は前記主記憶装置のアドレスと前記制御部が読み出した前記レジスタ値が格納されていた物理レジスタとの対応関係を、前記レジスタメモリ間対応情報から削除することを特徴とする請求項1記載の演算処理装置。  After execution of the restoration instruction, the correspondence relationship between the address of the cache memory or the main storage device and the physical register in which the register value read by the control unit is stored is deleted from the inter-register memory correspondence information. The arithmetic processing apparatus according to claim 1.
前記演算処理装置は、The arithmetic processing unit includes:
前記複数の物理レジスタがそれぞれ保持する使用状態情報として、未使用、前記待避命令により待避したレジスタ値が格納されている使用状態、又は、対応付けられた論理レジスタのレジスタ値が格納されている使用状態のいずれかを有し、  As usage status information held by each of the plurality of physical registers, unused, usage status in which register values saved by the save instruction are stored, or usage in which register values of associated logical registers are stored Have one of the states,
前記生成部は、  The generator is
前記複数の物理レジスタがそれぞれ保持する使用状態情報に基づき、未使用の物理レジスタが無く、かつ、前記待避命令により待避したレジスタ値が格納されている物理レジスタが有る場合、前記制御部が、前記待避命令により待避したレジスタ値が格納されている物理レジスタに格納されたレジスタ値を、前記待避命令に対して指定された前記キャッシュメモリ又は前記主記憶装置のアドレスに格納した後、指定された前記論理レジスタと前記対応する物理レジスタとを対応させ、  When there is no unused physical register and there is a physical register in which the register value saved by the save instruction is stored based on the usage state information held by each of the plurality of physical registers, The register value stored in the physical register storing the register value saved by the save instruction is stored in the address of the cache memory or the main storage device specified for the save instruction, and then the specified Associating a logical register with the corresponding physical register,
前記更新部は、  The update unit
指定された前記論理レジスタと前記対応する物理レジスタとを対応させた後、前記キャッシュメモリ又は前記主記憶装置のアドレスと前記待避命令により待避したレジスタ値が格納されていた物理レジスタとの対応関係を前記レジスタメモリ間対応情報から削除することを特徴とする請求項1又は2記載の演算処理装置。  After associating the designated logical register with the corresponding physical register, the correspondence relationship between the address of the cache memory or the main storage device and the physical register in which the register value saved by the save instruction is stored 3. The arithmetic processing apparatus according to claim 1, wherein the arithmetic processing apparatus is deleted from the register memory correspondence information.
データを記憶する主記憶装置に接続され、データを保持するキャッシュメモリと、使用状態を表す使用状態情報をそれぞれ保持する、定義された複数の論理レジスタの数以上の複数の物理レジスタとを有する演算処理装置の制御方法において、An operation having a cache memory connected to a main storage device for storing data and holding data, and a plurality of physical registers equal to or more than a plurality of defined logical registers respectively holding use state information indicating the use state In a control method of a processing device,
前記演算処理装置が有する生成部が、前記複数の論理レジスタのいずれかと前記複数の物理レジスタのいずれかを対応付けるとともに、対応付けられた論理レジスタと物理レジスタとの対応関係を表すレジスタ間対応情報を生成し、  The generation unit included in the arithmetic processing unit associates any one of the plurality of logical registers with any one of the plurality of physical registers, and stores inter-register correspondence information indicating a correspondence relationship between the associated logical register and the physical register. Generate and
前記演算処理装置が有する制御部が、前記複数の論理レジスタのいずれかを使用するレジスタ使用命令が実行される場合、前記レジスタ間対応情報に基づき、前記レジスタ使用命令が使用する論理レジスタに対応した物理レジスタを使用し、指定された論理レジスタに格納するレジスタ値を前記キャッシュメモリ又は前記主記憶装置に待避する待避命令が実行される場合、前記レジスタ間対応情報に基づき、指定された前記論理レジスタに対応する物理レジスタに格納されたレジスタ値を読み出した後、前記複数の物理レジスタがそれぞれ保持する使用状態情報に基づき、読み出した前記レジスタ値をいずれの論理レジスタとも対応付けられていない物理レジスタに格納し、  When a register use instruction using any of the plurality of logical registers is executed, the control unit included in the arithmetic processing unit corresponds to the logical register used by the register use instruction based on the inter-register correspondence information. When a save instruction is executed that uses a physical register to save a register value stored in a specified logical register to the cache memory or the main storage device, the specified logical register based on the inter-register correspondence information After reading the register value stored in the physical register corresponding to, based on the usage status information held by each of the plurality of physical registers, the read register value is stored in a physical register that is not associated with any logical register. Store and
レジスタ使用命令が実行された結果、論理レジスタと物理レジスタとの対応関係が変更された場合、前記演算処理装置が有する更新部が、前記レジスタ間対応情報を更新するとともに、前記待避命令が実行された後、前記待避命令に対して指定された前記キャッシュメモリ又は前記主記憶装置のアドレスと前記制御部が読み出した前記レジスタ値が格納された物理レジスタとの対応関係をレジスタメモリ間対応情報に追加する更新部を有することを特徴とする演算処理装置の制御方法。  When the correspondence relationship between the logical register and the physical register is changed as a result of execution of the register use instruction, the update unit of the arithmetic processing unit updates the inter-register correspondence information and the save instruction is executed. After that, a correspondence relationship between the address of the cache memory or the main storage device designated for the save instruction and the physical register storing the register value read by the control unit is added to the correspondence information between register memories A control method for an arithmetic processing unit, comprising: an updating unit that performs the processing.
JP2008024233A 2008-02-04 2008-02-04 Arithmetic processing device and control method of arithmetic processing device Active JP5303943B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008024233A JP5303943B2 (en) 2008-02-04 2008-02-04 Arithmetic processing device and control method of arithmetic processing device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008024233A JP5303943B2 (en) 2008-02-04 2008-02-04 Arithmetic processing device and control method of arithmetic processing device

Publications (2)

Publication Number Publication Date
JP2009187120A JP2009187120A (en) 2009-08-20
JP5303943B2 true JP5303943B2 (en) 2013-10-02

Family

ID=41070322

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008024233A Active JP5303943B2 (en) 2008-02-04 2008-02-04 Arithmetic processing device and control method of arithmetic processing device

Country Status (1)

Country Link
JP (1) JP5303943B2 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110007966A (en) * 2019-04-10 2019-07-12 龚伟峰 A method of it reducing memory and reads random ordering

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3296027B2 (en) * 1993-06-16 2002-06-24 富士通株式会社 Compilation method when using additional registers of load store type processor
JPH0991151A (en) * 1995-09-26 1997-04-04 Fujitsu Ltd Compiler and processor system
JP3838182B2 (en) * 2002-09-20 2006-10-25 日本電気株式会社 Method and apparatus for saving registers when interrupt occurs in processor

Also Published As

Publication number Publication date
JP2009187120A (en) 2009-08-20

Similar Documents

Publication Publication Date Title
US8453121B2 (en) Managing the tracing of the execution of a computer program
JP5366802B2 (en) Global overflow method for virtualized transactional memory
JP2000513854A (en) Apparatus and method for supporting strict garbage collection using a stack cache of tag bits
JP5309636B2 (en) Arithmetic processing device and control method of arithmetic processing device
KR20170076564A (en) Handling move instructions using register renaming
JP2011154547A (en) Memory management device and memory management method
US7203820B2 (en) Extending a register file utilizing stack and queue techniques
JP2012128628A (en) Optimization apparatus for program, optimization method and optimization program
KR100368166B1 (en) Methods for renaming stack references in a computer processing system
CN111399912B (en) Instruction scheduling method, system and medium for multi-cycle instruction
JP2008107983A (en) Cache memory
KR100931460B1 (en) Time-multiplexed specular multithreading to support single-threaded applications
JP2009064217A (en) System for storing/managing object
JP2017037370A (en) Computing device, process control method and process control program
JP5536593B2 (en) Optimization device, optimization method, and compiler program
JP2007532990A (en) Method and structure for explicit software control of thread execution including helper subthreads
JP5303943B2 (en) Arithmetic processing device and control method of arithmetic processing device
US20080307165A1 (en) Information processor, method for controlling cache flash, and information processing controller
US8782378B2 (en) Dynamic instruction splitting
JP5186802B2 (en) Microprocessor
JP2009020695A (en) Information processing apparatus and system
JP4846226B2 (en) Information processing apparatus, information processing method, and program
US6604193B1 (en) Processor in which register number translation is carried out
JP5577518B2 (en) Memory management method, computer and memory management program
JP7078380B2 (en) Instruction control device, instruction control method and program

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100917

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120927

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20121002

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20121203

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130610

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 5303943

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150