JP2009187120A - Processor, register access method, and register access program - Google Patents
Processor, register access method, and register access program Download PDFInfo
- Publication number
- JP2009187120A JP2009187120A JP2008024233A JP2008024233A JP2009187120A JP 2009187120 A JP2009187120 A JP 2009187120A JP 2008024233 A JP2008024233 A JP 2008024233A JP 2008024233 A JP2008024233 A JP 2008024233A JP 2009187120 A JP2009187120 A JP 2009187120A
- Authority
- JP
- Japan
- Prior art keywords
- register
- physical
- value
- instruction
- logical
- 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.)
- Granted
Links
Images
Landscapes
- Advance Control (AREA)
- Executing Machine-Instructions (AREA)
Abstract
Description
この発明は、命令セットアーキテクチャに規定された論理レジスタ数以上の物理レジスタを備えたプロセッサと、このプロセッサにおけるレジスタアクセス方法およびレジスタアクセスプログラムに関する。 The present invention relates to a processor having physical registers equal to or more than the number of logical registers defined in the instruction set architecture, and a register access method and a register access program in the processor.
従来より、プロセッサには、処理速度を向上させるための機構としてレジスタが備えられている。プロセッサによって命令が実行されると、命令の記述に応じて記憶媒体へのアクセスがおこなわれる。プロセッサでは、これら記憶媒体のうち、キャッシュや主記憶メモリと比較して、レジスタには高速にアクセスできる。この特性から、利用頻度の高い値や、再利用される値を優先的にレジスタに格納させるようなプログラムを生成する技術が(レジスタプロモーション)広く適用されている。適切なレジスタプロモーションを用いてプログラムが生成された場合、キャッシュや主記憶メモリへのアクセス回数を減少させ、高速なレジスタへのアクセス頻度を増すことによってプログラムの実行時間を短縮することができる。 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).
しかしながら、従来のようにレジスタプロモーションをおこなったとしても、レジスタ数は限度があるため、必要なすべての値をレジスタに格納することはできない。したがって、再利用される予定のある値であっても、レジスタ数の不足によりキャッシュや主記憶メモリに格納しなければならず、プログラムの実行速度が低下してしまうという問題があった。 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.
この発明は、上述した従来技術による問題点を解消するため、レジスタスピルが発生してもプログラムの実行速度の低下を防ぐことのできるプロセッサ、レジスタアクセス方法およびレジスタアクセスプログラムを提供することを目的とする。 SUMMARY OF THE INVENTION An object of the present invention is to provide a processor, a register access method, and a register access program that can prevent a decrease in program execution speed even if a register spill occurs, in order to solve the above-described problems caused by the prior art. To do.
上述した課題を解決し、目的を達成するため、このプロセッサ、レジスタアクセス方法およびレジスタアクセスプログラムは、命令セットアーキテクチャに規定された論理レジスタ数以上の物理レジスタを備え、前記論理レジスタを前記物理レジスタに変換するレジスタリネーミング機構を備え、前記論理レジスタと前記物理レジスタとの対応付けをあらわす対応情報を管理し、前記論理レジスタと前記物理レジスタとの対応が変更された場合には前記対応情報を更新する機能を備えることを要件とする。さらに、指定された論理レジスタに格納された値をキャッシュ・主記憶などの記憶媒体に待避させる待避命令が実行された場合に、前記対応情報を参照して前記指定された論理レジスタに対応した物理レジスタに格納された値を読み出し、当該読み出した値を、その時に使用されていない空いている物理レジスタに格納し、前記格納の際には、前記待避命令実行後に前記他の記憶媒体のアドレスと、あらたに値が格納された物理レジスタとの対応を前記対応情報に追加する。 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 processor, the register access method, and the register access program, it is possible to prevent a decrease in the execution speed of the program even if a register spill occurs.
以下に添付図面を参照して、このプロセッサ、レジスタアクセス方法およびレジスタアクセスプログラムの好適な実施の形態を詳細に説明する。 Exemplary embodiments of a processor, a register access method, and a register access program 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
また、本実施の形態では、プロセッサには、論理レジスタ110数よりも多い物理レジスタ120が実装されている。この物理レジスタ120にはレジスタリネーミングによって論理レジスタ110との対応付けがなされている。ここでは物理レジスタ数を64とする。また、レジスタリネーミングの説明の際に例示したように、論理レジスタと物理レジスタとの対応付けは動的におこなわれ、時間経過にともなって対応付けは変更される。レジスタリネーミングによる論理レジスタと物理レジスタとの対応情報は対応表140としてプロセッサに保持されている。
In the present embodiment, more
ここで、実行プログラム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
しかしながら、本実施の形態の場合、物理レジスタ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
このようにして、本実施の形態の場合、本来であればキャッシュ・主記憶メモリ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 /
(プロセッサの構成)
まず、本実施の形態にかかるレジスタアクセス処理をおこなうためのプロセッサの構成について説明する。なお、プロセッサの構成のうち、レジスタアクセス処理に関連する部分を抽出して説明する。また、プロセッサ内部の他の構成は周知であるためここでは説明を省略する。
(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
命令キャッシュ201には、プロセッサ200によって実行される命令が格納されており、プロセッサ200が実行指示を受け付けると、命令をデコード部202に入力する。デコード部202では、入力された命令をデコードし、デコードした命令をリネーム部203に入力する。
The
リネーム部203は、本実施の形態にかかるレジスタアクセス処理を実現するための機能である。図3は、リネーム部の構成を示すブロック図である。図3のように、リネーム部203は、リネーム制御部301と、論理レジスタ−物理レジスタ対応表302と、アドレス−物理レジスタ対応表303と、物理レジスタ状態表304とから構成されている。
The
リネーム制御部301には、基本機能として、論理レジスタ110番号を物理レジスタ120番号に変換するリネーム処理機能と、必要に応じて論理レジスタ110と物理レジスタ120との対応付けを更新する更新処理機能とを備えている。リネーム制御部301によって対応付けられた論理レジスタ110と物理レジスタ120との対応情報は、論理レジスタ−物理レジスタ対応表302として保存されている。
The
また、リネーム制御部301は、上述した基本処理に加え、本実施の形態の特徴である待避命令の実行時には、待避命令に記述されたキャッシュ・主記憶メモリ130のアドレスと、値を格納する物理レジスタ120との対応付けがおこなわれる。リネーム制御部301によって対応付けられたキャッシュ・主記憶メモリ130のアドレスと物理レジスタ120との対応情報は、アドレス−物理レジスタ対応表303として保存されている。
In addition to the basic processing described above, the
さらに、リネーム制御部301は、物理レジスタ120の使用状態を管理する機能を備えており、物理レジスタ120の使用状態は、物理レジスタ状態表304として保存されている。なお、物理レジスタ状態表304の用途については詳しく後述する。
Further, the
以上説明したようにリネーム部203によって変換された命令は、スケジュール部204によって実行タイミングが調整されたのち、実行部205に入力される。実行部205は、入力された命令を実行する。
As described above, the instruction converted by the
(コンパイラによる待避命令の生成)
つぎに、プロセッサ200によって実行される実行プログラム101を生成するコンパイラについて説明する。上述したように、プロセッサ200の命令キャッシュ201から読み出される命令には待避命令が含まれている。この待避命令とは、具体的には、物理レジスタ120に格納されていた値をキャッシュ・主記憶メモリ130に待避させる命令と、この待避命令によってキャッシュ・主記憶メモリ130に待避された値を再び物理レジスタ120に復元させる命令との双方をさす。ここでは、専用のコンパイラを用いて待避命令を含む実行プログラム101を生成する手法について説明する。
(Generation of save instruction by compiler)
Next, a compiler that generates the
図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
このレジスタ値待避・復元命令生成ルーチンは、対応表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
(待避命令を含んだレジスタアクセス処理:基本処理)
つぎに、上述した構成のプロセッサ200によって実行される待避命令を含んだレジスタアクセス処理について説明する。図5は、待避命令を含むレジスタアクセス処理の一例を示す説明図である。
(Register access processing including save instruction: basic processing)
Next, a register access process including a save instruction executed by the
図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 /
図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
以上説明した処理が、待避命令を含んだレジスタアクセス処理のなかでも基本処理となる。このように、命令列にはキャッシュ・主記憶メモリ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 /
(待避命令を含んだレジスタアクセス処理:例外処理)
つぎに、実行プログラム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
1)待避命令実行時の物理レジスタが不足した場合
まず、例外処理として、待避命令実行時に物理レジスタが不足した場合の処理がある。たとえば、命令spill−store reg−A [addr−X]が実行されたとする。この場合、キャッシュ・主記憶メモリ130に替わる物理レジスタ120の割り当てはおこなわない。そして、reg−Aに格納された値をそのままキャッシュ・主記憶メモリ130のaddr−Xに格納する。このときアドレス−物理レジスタ対応表303を更新する必要はない。
1) When physical registers run short when executing a save instruction First, as an exception process, there is a process when a physical register runs short when executing a save instruction. For example, assume that the instruction spill-store reg-A [addr-X] is executed. In this case, the
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
図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 /
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
(物理レジスタの使用状態フラグ)
上述したように、基本処理の場合には、複数のレジスタから構成される物理レジスタ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
本実施の形態では、物理レジスタ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
たとえば、レジスタリネーミングが実行された場合には、まず状態フラグ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
この状態フラグは、図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
以上説明したように、本実施の形態によれば、プロセッサ200によって命令実行時に、物理レジスタよりもアクセス速度の劣るキャッシュや主記憶メモリへのアクセスを最小限に抑えるため、可能な限り物理レジスタ120を利用させるレジスタアクセス処理がおこなわれる。したがって、レジスタスピルが発生してもプログラムの実行速度の低下を防ぐことができる。
As described above, according to the present embodiment, when the instruction is executed by the
なお、本実施の形態で説明したレジスタアクセス方法は、あらかじめ用意されたプログラムをパーソナル・コンピュータやワークステーションなどのコンピュータで実行することにより実現することができる。このプログラムは、ハードディスク、フレキシブルディスク、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. Further, this 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
上述した実施の形態に関し、さらに以下の付記を開示する。 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 process, it is detected whether the usage state of each physical register is unused or used, and in the case of further use, it is made to correspond to the logical register by the register renaming. 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.
110 論理レジスタ
120 物理レジスタ
200 プロセッサ
201 命令キャッシュ
202 デコード部
203 リネーム部
204 スケジュール部
205 実行部
301 リネーム制御部
302 論理レジスタ−物理レジスタ対応表
303 アドレス−物理レジスタ対応表
304 物理レジスタ状態表
DESCRIPTION OF
Claims (7)
前記論理レジスタと前記物理レジスタとを対応付けるレジスタリネーミングをおこない、前記論理レジスタと前記物理レジスタとの対応付けをあらわす対応情報を生成するリネーミング制御手段と、
前記命令セットアーキテクチャの中の命令が実行され、前記論理レジスタと、前記物理レジスタとの対応が変更された場合に、前記対応情報を更新する更新手段と、
前記命令セットアーキテクチャの中の命令のうち、いずれかの論理レジスタへのアクセスに関する命令を実行する際に、前記更新手段によって更新された対応情報を参照して前記論理レジスタに対応した物理レジスタへアクセスするアクセス制御手段と、を備え、
前記アクセス制御手段は、指定された論理レジスタに格納された値を当該論理レジスタから前記物理レジスタよりもアクセス速度の劣る他の記憶媒体に待避させる待避命令が実行された場合に、前記対応情報を参照して前記指定された論理レジスタに対応した物理レジスタに格納された値を読み出し、当該読み出した値を、いずれの論理レジスタとも対応付けのされていない物理レジスタに格納し、
前記更新手段は、前記待避命令実行後に前記他の記憶媒体のアドレスと、前記アクセス制御手段によって前記読み出した値が格納された物理レジスタとの対応を前記対応情報に追加することを特徴とするプロセッサ。 More physical registers 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. .
前記更新手段は、前記待避値復元命令の実行後、前記アクセス制御手段によって、前記格納された値が読み出された物理レジスタと、前記他の記憶媒体のアドレスとの対応を前記対応情報から削除することを特徴とする請求項1に記載のプロセッサ。 The access control means refers 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 in the instruction set architecture. Reading the value stored in the physical register by the save instruction, storing the read value 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 claim 1.
前記リネーミング制御手段は、前記命令に記述された論理レジスタと、前記検出手段によって未使用であると検出された物理レジスタとを対応させることを特徴とする請求項1または2に記載のプロセッサ。 Provided with detection means for detecting whether the usage state of each physical register is unused or used,
3. The processor according to claim 1, wherein the renaming control means associates the logical register described in the instruction with a physical register detected as unused by the detecting means.
前記リネーミング制御手段は、前記検出手段によって未使用であると検出された物理レジスタがない場合、前記アクセス制御手段によって、前記物理レジスタに格納されていた値を前記待避命令に記述されていた前記他の記憶媒体に格納させた後、前記物理レジスタと、前記論理レジスタとを対応させ、
前記更新手段は、前記レジスタリネーミング実行後、前記他の記憶媒体のアドレスと、前記物理レジスタとの対応を前記対応情報から削除することを特徴とする請求項1〜4のいずれか一つに記載のプロセッサ。 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 detecting means for detecting whether the value saved by 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,
5. The update unit according to claim 1, wherein after the register renaming is executed, the correspondence between the address of the other storage medium and the physical register is deleted from the correspondence information. The processor described.
前記論理レジスタと前記物理レジスタとを対応付けるレジスタリネーミングをおこない、前記論理レジスタと前記物理レジスタとの対応付けをあらわす対応情報を生成するリネーミング工程と、
前記命令セットアーキテクチャに記述された命令を順次実行する実行工程と、
前記実行工程によって、指定された論理レジスタに格納された値を当該論理レジスタから前記物理レジスタよりもアクセス速度の劣る他の記憶媒体に待避させる待避命令が実行された場合に、前記対応情報を参照して前記指定された論理レジスタに対応した物理レジスタに格納された値を読み出し、当該読み出した値を、いずれの論理レジスタとも対応付けのされていない物理レジスタに格納する待避値格納工程と、
前記待避値格納工程によって読み出した値が格納された物理レジスタと、前記他の記憶媒体のアドレスとの対応を含んだ情報を前記対応情報に追加する追加工程と、
を含むことを特徴とするレジスタアクセス方法。 A register access method in a processor having physical registers equal to or more than the number of logical registers defined 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:
前記コンピュータを、
前記論理レジスタと前記物理レジスタとを対応付けるレジスタリネーミングをおこない、前記論理レジスタと前記物理レジスタとの対応付けをあらわす対応情報を生成するリネーミング制御手段、
前記命令セットアーキテクチャの中の命令が実行され、前記論理レジスタと、前記物理レジスタとの対応が変更された場合に、前記命令実行後に前記対応情報を更新する更新手段、
前記命令セットアーキテクチャの中の命令のうち、いずれかの論理レジスタへのアクセスに関する命令を実行する際に、前記更新手段によって更新された対応情報を参照して前記論理レジスタに対応した物理レジスタへアクセスするアクセス制御手段、として機能させ、
さらに、前記アクセス制御手段は、指定された論理レジスタに格納された値を当該論理レジスタから前記物理レジスタよりもアクセス速度の劣る他の記憶媒体に待避させる待避命令が実行された場合に、前記対応情報を参照して前記指定された論理レジスタに対応した物理レジスタに格納された値を読み出し、当該読み出した値を、いずれの論理レジスタとも対応付けのされていない物理レジスタに格納し、
前記更新手段は、前記待避命令実行後に前記他の記憶媒体のアドレスと、前記アクセス制御手段によって前記読み出した値が格納された物理レジスタとの対応を前記対応情報に追加することを特徴とするレジスタアクセスプログラム。 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.
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 true JP2009187120A (en) | 2009-08-20 |
JP5303943B2 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) |
Cited By (1)
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 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0713770A (en) * | 1993-06-16 | 1995-01-17 | Fujitsu Ltd | Compiling method at the time of using additional register of load store type processor |
JPH0991151A (en) * | 1995-09-26 | 1997-04-04 | Fujitsu Ltd | Compiler and processor system |
JP2004110608A (en) * | 2002-09-20 | 2004-04-08 | Nec Corp | Register saving method, device and program in occurrence of interrupt in processor |
-
2008
- 2008-02-04 JP JP2008024233A patent/JP5303943B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0713770A (en) * | 1993-06-16 | 1995-01-17 | Fujitsu Ltd | Compiling method at the time of using additional register of load store type processor |
JPH0991151A (en) * | 1995-09-26 | 1997-04-04 | Fujitsu Ltd | Compiler and processor system |
JP2004110608A (en) * | 2002-09-20 | 2004-04-08 | Nec Corp | Register saving method, device and program in occurrence of interrupt in processor |
Cited By (1)
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 |
Also Published As
Publication number | Publication date |
---|---|
JP5303943B2 (en) | 2013-10-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5366802B2 (en) | Global overflow method for virtualized transactional memory | |
US8453121B2 (en) | Managing the tracing of the execution of a computer program | |
US6581142B1 (en) | Computer program product and method for partial paging and eviction of microprocessor instructions in an embedded computer | |
JP2000513854A (en) | Apparatus and method for supporting strict garbage collection using a stack cache of tag bits | |
US20100217945A1 (en) | Fast context save in transactional memory | |
US7203820B2 (en) | Extending a register file utilizing stack and queue techniques | |
JP5044816B2 (en) | System for storing and managing objects | |
JP2009230339A (en) | Single-precision floating-point data storing method and processor | |
KR100368166B1 (en) | Methods for renaming stack references in a computer processing system | |
US9367455B2 (en) | Using predictions for store-to-load forwarding | |
CN111399912B (en) | Instruction scheduling method, system and medium for multi-cycle instruction | |
KR100931460B1 (en) | Time-multiplexed specular multithreading to support single-threaded applications | |
JP2008107983A (en) | Cache memory | |
EP2080115B1 (en) | Automatic native generation | |
JPWO2010024071A1 (en) | Cache memory, system thereof, method of use thereof, and program of use thereof | |
JP3629551B2 (en) | Microprocessor using basic cache block | |
US8327122B2 (en) | Method and system for providing context switch using multiple register file | |
JP5303943B2 (en) | Arithmetic processing device and control method of arithmetic processing device | |
US8782378B2 (en) | Dynamic instruction splitting | |
US20080307165A1 (en) | Information processor, method for controlling cache flash, and information processing controller | |
JP3638584B2 (en) | Computer system | |
JP5186802B2 (en) | Microprocessor | |
JP3896238B2 (en) | Computer system and program runtime representation method | |
JP4846226B2 (en) | Information processing apparatus, information processing method, and program | |
US6604193B1 (en) | Processor in which register number translation is carried out |
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 |