JP4788177B2 - Information processing apparatus, arithmetic processing apparatus, memory access control method, and program - Google Patents
Information processing apparatus, arithmetic processing apparatus, memory access control method, and program Download PDFInfo
- Publication number
- JP4788177B2 JP4788177B2 JP2005105244A JP2005105244A JP4788177B2 JP 4788177 B2 JP4788177 B2 JP 4788177B2 JP 2005105244 A JP2005105244 A JP 2005105244A JP 2005105244 A JP2005105244 A JP 2005105244A JP 4788177 B2 JP4788177 B2 JP 4788177B2
- Authority
- JP
- Japan
- Prior art keywords
- memory
- instruction
- operand
- value
- unit
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Advance Control (AREA)
- Executing Machine-Instructions (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Description
本発明は、情報処理装置、演算処理装置、メモリアクセス制御方法およびプログラムに関し、特に、キャッシュメモリを具備するパイプライン処理方式の演算処理装置を備える情報処理装置、パイプライン処理方式の演算処理装置、メモリアクセス制御方法およびプログラムに関する。 The present invention relates to an information processing device, an arithmetic processing device , a memory access control method, and a program . The present invention relates to a memory access control method and a program .
通常、パイプライン処理方式では、大別して、命令のフェッチステージ、命令のデコードステージ、データの読み出しステージ、命令の実行ステージ、書き込みステージがあり、この順でステージが進行する。 In general, the pipeline processing method is roughly divided into an instruction fetch stage, an instruction decode stage, a data read stage, an instruction execution stage, and a write stage, and the stages proceed in this order.
それぞれ、命令のフェッチステージでは命令の読み出し、命令のデコードステージでは命令の解読、データの読み出しステージでは命令の演算に必要なデータの準備、命令の実行ステージでは実際の演算、書き込みステージでは演算結果の書き込みが実行される。 The instruction fetch stage reads the instruction, the instruction decode stage decodes the instruction, the data read stage prepares the data required for the instruction operation, the instruction execution stage performs the actual operation, and the write stage displays the operation result. Writing is executed.
命令やデータがキャッシュメモリに存在しない場合、主記憶から命令やデータを読み出す必要がある。命令やデータを主記憶から読み出す状態が引き続くと、演算処理装置の処理能力の低下を引き起こす。 If the instruction or data does not exist in the cache memory, it is necessary to read the instruction or data from the main memory. If the state in which instructions and data are read from the main memory continues, the processing capability of the arithmetic processing unit is reduced.
演算処理装置の処理能力を有効に活用する1つの手法として、特許文献1にコンピュータシステムにおけるコンテクスト間のメモリシステム相互作用特性の統計値を推定し、これを命令スケジューリングや命令やデータの配置の最適化に適用することが開示されている。
しかし、特許文献1に開示されている手法では、推定したメモリシステム相互作用特性の統計値をプログラム単位で演算処理装置の処理能力を有効活用しているにすぎない。このため、様々なプログラムに対し汎用的に演算処理装置で効率的に演算を施すことができない。
However, in the method disclosed in
また、演算処理装置の動作周波数向上のスピードに対して、メモリアクセス動作速度の向上のスピードが追いつけない状況が続いている。そのため、パイプラインの段数が増加し、パイプライン上流に位置するデコードステージからメモリリクエストが実際に出力されるステージまでの時間が長くなる傾向にある。ますます長くなりつつあるこの時間を有効活用する手段が必要となってきている。 In addition, the situation in which the speed of improving the memory access operating speed cannot keep up with the speed of improving the operating frequency of the arithmetic processing unit continues. Therefore, the number of pipeline stages increases, and the time from the decode stage located upstream of the pipeline to the stage where the memory request is actually output tends to increase. There is a need to make effective use of this increasingly long time.
本発明は上記問題点に鑑みてなされたもので、命令デコード時に得られる命令のオペランドを元に発行されるメモリリクエスト数を予測し、この算出値を利用することで従来と比較して効率的に動作する情報処理装置、演算処理装置、メモリアクセス制御方法およびプログラムの提供を目的とする。 The present invention has been made in view of the above problems, and predicts the number of memory requests to be issued based on the operand of an instruction obtained at the time of instruction decoding, and uses this calculated value to make it more efficient than in the past. It is an object of the present invention to provide an information processing apparatus, an arithmetic processing apparatus , a memory access control method, and a program that operate on a computer.
本発明の第1の観点に係る演算処理装置は、
制御部とメモリとを具備する情報処理装置であって、
前記制御部は、
命令からオペコードとオペランドとを取り出す命令デコーダと、
前記命令デコーダが取り出したオペランドが前記メモリにアクセスする命令のオペランドであるか否かを判別する命令種別判別手段と、
前記命令種別判別手段でオペランドが前記メモリにアクセスする命令のオペランドであると判別された場合に、この命令で前記メモリにアクセスする際に発行されるリクエスト数の期待値を算出する加算値算出手段と、
前記加算値算出手段が算出した値を積算する積算手段と、
を具備する。
An arithmetic processing apparatus according to the first aspect of the present invention provides:
An information processing apparatus comprising a controller and memory,
The controller is
An instruction decoder that extracts an opcode and an operand from the instruction;
Instruction type determining means for determining whether or not the operand fetched by the instruction decoder is an operand of an instruction that accesses the memory;
Addition value calculating means for calculating an expected value of the number of requests issued when accessing the memory by this instruction when the instruction type determining means determines that the operand is an operand of an instruction accessing the memory When,
Integrating means for integrating the values calculated by the added value calculating means;
It comprises.
この発明によれば、演算処理装置とメモリとの間でメモリアクセスのためにやり取りされるメモリリクエスト数の期待値を算出し、算出した期待値を積算する。この積算値を用いて、演算処理装置とメモリとの間でデータがスムーズにやり取りできるよう情報処理装置を動作させることができる。 According to the present invention, the expected value of the number of memory requests exchanged for memory access between the arithmetic processing unit and the memory is calculated, and the calculated expected value is integrated. Using this integrated value, the information processing apparatus can be operated so that data can be exchanged smoothly between the arithmetic processing unit and the memory.
上記演算処理装置において、
前記制御部は、前記メモリへのアクセス終了後、このアクセスの基になった命令に対し、前記加算値算出手段が算出した期待値を減算値として算出する減算値算出手段を具備することが望ましい。
この場合、前記積算手段は、前記加算値算出手段と前記減算値算出手段が算出した値とを積算する。
In the above arithmetic processing unit,
The control unit preferably includes subtraction value calculation means for calculating the expected value calculated by the addition value calculation means as a subtraction value for the instruction that is the basis of the access after the access to the memory is completed. .
In this case, the integration means integrates the value calculated by the addition value calculation means and the subtraction value calculation means.
上記演算処理装置において、
前記メモリは、情報を格納しつづけるために、所定間隔かそれより短い間隔で格納内容をリフレッシュするメモリである。
この場合、前記制御部は、
前記積算手段で算出した値が0であるか否かを判別する積算値判別手段と、
前記積算値判別手段で前記積算手段で算出した値が0であると判別した場合に、前記メモリの格納内容をリフレッシュさせるリフレッシュ指示信号を前記メモリへ出力し、前記積算手段で算出した値が0でないと判別した場合に、前記メモリの格納内容を前記所定間隔でリフレッシュ指示信号を前記メモリへ出力するリフレッシュ指示手段と、
を具備することが望ましい。
In the above arithmetic processing unit,
The memory is a memory that refreshes stored contents at a predetermined interval or shorter than the predetermined interval in order to keep storing information.
In this case, the control unit
Integrated value determining means for determining whether or not the value calculated by the integrating means is 0;
When the integrated value determining means determines that the value calculated by the integrating means is 0, a refresh instruction signal for refreshing the stored contents of the memory is output to the memory, and the value calculated by the integrating means is 0. Refresh instruction means for outputting a refresh instruction signal to the memory at the predetermined interval when it is determined that the stored contents of the memory are not,
It is desirable to comprise.
この場合、メモリリクエストが発生しないと予測される場合に、メモリの格納内容をリフレッシュする指示を、リフレッシュ指示手段が出力し、メモリの格納内容がリフレッシュされる。これにより、メモリの格納内容をリフレッシュすることにより生じるメモリアクセスの待ち時間を削減することができる。 In this case, when it is predicted that no memory request will occur, the refresh instruction means outputs an instruction to refresh the stored contents of the memory, and the stored contents of the memory are refreshed. As a result, it is possible to reduce the memory access waiting time caused by refreshing the stored contents of the memory.
上記情報処理装置において、
前記メモリは、メモリクロック信号に同期して動作するものであってもよい。
この場合、前記制御部は、前記積算値判別手段が前記積算手段が算出した値が0であると判別した場合に、前記メモリクロック信号の周波数を基本周波数から低下させるメモリクロック制御信号を出力し、前記積算手段で算出した値が0でないと判別した場合に、前記メモリクロック信号の周波数を基本周波数に戻すメモリクロック制御信号を出力するメモリクロック制御手段を具備することが望ましい。
In the information processing apparatus,
The memory may operate in synchronization with a memory clock signal.
In this case, the control unit outputs a memory clock control signal for lowering the frequency of the memory clock signal from the fundamental frequency when the integrated value determining means determines that the value calculated by the integrating means is 0. It is desirable to provide memory clock control means for outputting a memory clock control signal for returning the frequency of the memory clock signal to a fundamental frequency when it is determined that the value calculated by the integrating means is not zero.
上記情報処理装置において、
前記制御部は、前記積算値算出手段が算出した積算値に従って、同時に前記制御部と前記メモリとの間で送受信できるメモリアクセス要求の最大数を変更するリクエスト制御手段を具備してもよい。
In the information processing apparatus,
The control unit may include request control means for changing a maximum number of memory access requests that can be transmitted and received between the control unit and the memory at the same time in accordance with the integrated value calculated by the integrated value calculating means.
この発明によれば、例えば、メモリアクセス要求が多いときには、制御部とメモリとの間で送受信されるメモリアクセス要求の最大発行数を下げて、メモリアクセス要求の発行を押さえ、メモリアクセス要求が少ないときには、制御部とメモリとの間で送受信されるメモリアクセス要求の最大発行数を上げて、メモリアクセス要求の発行を制限しないようにすることができる。 According to the present invention, for example, when the number of memory access requests is large, the maximum number of memory access requests transmitted / received between the control unit and the memory is reduced to suppress the issuance of memory access requests and the number of memory access requests is small. In some cases, it is possible to increase the maximum number of issued memory access requests transmitted and received between the control unit and the memory so as not to limit the issuance of memory access requests.
上記情報処理装置において、
前記情報処理装置はキャッシュメモリを具備することが望ましい。
この場合、前記制御部は前記キャッシュメモリのキャッシュミス率を算出するミス率算出手段を具備し、
前記命令種別判別手段は、さらに、前記命令デコーダが取り出したオペランドがスカラ型命令であるか否かを判別する手段であって、
前記加算値算出手段は、前記命令種別判別手段がオペランドがスカラ型命令のオペランドであると判別した場合、前記ミス率算出手段で算出されたキャッシュミス率に従って、前記期待値を算出する。
In the information processing apparatus,
The information processing apparatus preferably includes a cache memory.
In this case, the control unit includes a miss rate calculation means for calculating a cache miss rate of the cache memory,
The instruction type determining means is further means for determining whether or not the operand fetched by the instruction decoder is a scalar type instruction,
The addition value calculation means calculates the expected value according to the cache miss ratio calculated by the miss rate calculation means when the instruction type determination means determines that the operand is an operand of a scalar type instruction.
上記情報処理装置において、
前記制御部は、前記積算値判別手段が前記積算手段が算出した値が0であると判別した場合に、前記制御部と前記メモリとの間を接続するメモリバスの遅延ロックループの再調整を指示するDLL制御信号を出力し、前記積算手段で算出した値が0でないと判別した場合に、所定の間隔で前記DLL信号を出力するDLL制御手段を具備してもよい。
In the information processing apparatus,
When the integrated value determining unit determines that the value calculated by the integrating unit is 0, the control unit performs readjustment of a delay lock loop of a memory bus connecting the control unit and the memory. It outputs a DLL control signal for instructing, when the calculated value is not 0 determined by the integrating means may comprise a DLL control means for outputting the DLL signals Jo Tokoro intervals.
本発明の第2の観点に係る演算処理装置によれば、
メモリバスを介してメモリとデータをやりとりする演算処理装置であって、
命令からオペコードとオペランドとを取り出す命令デコーダと、
前記命令デコーダが取り出したオペランドが前記メモリバスを介して前記メモリにアクセスする命令のオペランドであるか否かを判別する命令種別判別手段と、
前記命令種別判別手段でオペランドが前記メモリにアクセスする命令のオペランドであると判別された場合に、この命令で前記メモリにアクセスする際に発行されるリクエスト数の期待値を算出する加算値算出手段と、
前記加算値算出手段が算出した値を積算する積算手段と、
を具備する。
According to the arithmetic processing apparatus according to the second aspect of the present invention,
An arithmetic processing unit that exchanges data with a memory via a memory bus,
An instruction decoder that extracts an opcode and an operand from the instruction;
Instruction type determining means for determining whether or not the operand fetched by the instruction decoder is an operand of an instruction that accesses the memory via the memory bus;
Addition value calculating means for calculating an expected value of the number of requests issued when accessing the memory by this instruction when the instruction type determining means determines that the operand is an operand of an instruction accessing the memory When,
Integrating means for integrating the values calculated by the added value calculating means;
It comprises.
本発明の第3の観点に係るメモリアクセス制御方法は、
メモリバスを介してメモリとデータをやりとりする演算処理装置が、
命令からオペコードとオペランドとを取り出すデコードステップと、
前記デコードステップで取り出したオペランドが前記メモリバスを介して前記メモリにアクセスする命令のオペランドであるか否かを判別する判別ステップと、
前記判別ステップでオペランドが前記メモリにアクセスする命令のオペランドであると判別された場合に、この命令で前記メモリにアクセスする際に発行されるリクエスト数の期待値を算出する加算値算出ステップと、
前記加算値算出ステップが算出した値を積算する積算ステップと、
前記積算ステップで積算された値に従って、演算処理装置のメモリアクセスを最適化する制御ステップと、
を備える。
本発明の第4の観点に係るプログラムは、
コンピュータに、
命令からオペコードとオペランドとを取り出す命令デコーダ手順と、
前記取り出されたオペランドがメモリにアクセスする命令のオペランドであるか否かを判別する命令種別判別手順と、
前記取り出されたオペランドが前記メモリにアクセスする命令のオペランドであると判別された場合に、この命令で前記メモリにアクセスする際に発行されるリクエスト数の期待値を算出する加算値算出手順と、
前記算出された値を積算する積算手順と、
を実行させることを特徴とする。
A memory access control method according to a third aspect of the present invention includes:
An arithmetic processing unit that exchanges data with the memory via the memory bus
A decoding step for extracting an opcode and an operand from the instruction;
A determination step of determining whether or not the operand fetched in the decoding step is an operand of an instruction that accesses the memory via the memory bus;
An addition value calculating step of calculating an expected value of the number of requests issued when accessing the memory with this instruction when the determining step determines that the operand is an operand of the instruction accessing the memory;
An integration step of integrating the values calculated by the addition value calculation step;
A control step of optimizing the memory access of the arithmetic processing unit according to the value integrated in the integration step;
Is provided.
The program according to the fourth aspect of the present invention is:
On the computer,
An instruction decoder procedure for retrieving the opcode and operand from the instruction;
An instruction type determination procedure for determining whether or not the fetched operand is an operand of an instruction for accessing a memory;
An addition value calculation procedure for calculating an expected value of the number of requests issued when accessing the memory with this instruction when it is determined that the fetched operand is an operand of an instruction for accessing the memory;
An integration procedure for integrating the calculated values;
Is executed.
本発明によれば、デコードステージでデコードした結果に従って、メモリとの間でデータの読み書きする際に演算処理装置が発行するメモリアクセス要求の数を予測し、予測値に従い後続のステージの動作を効率的に制御できる。 According to the present invention, the number of memory access requests issued by the arithmetic processing unit when data is read from or written to the memory is predicted according to the result of decoding at the decoding stage, and the operation of the subsequent stage is efficiently performed according to the predicted value. Can be controlled.
本発明に係る実施形態を、以下図面を参照して説明する。
本実施形態では、演算処理装置とメモリとの間でデータをやりとりする必要が発生する命令は、ロード命令とストア命令とする。また、ロード命令とストア命令とは、単一のレジスタのみ関係するスカラ命令と、複数のレジスタに関係するベクトル命令とに分類することができる。ロード命令とストア命令とを含む各命令は1つのオペコードと0個以上(3個以下)のオペランドとから構成される。なお、オペコードによっては、暗黙のうちにいくつかのオペランドが指定される。さらに、メモリアクセスは命令の実行順に行われる。
また、以下の説明で単にアドレスとした場合は主記憶アドレスを意味する。
Embodiments according to the present invention will be described below with reference to the drawings.
In the present embodiment, instructions that need to exchange data between the arithmetic processing unit and the memory are a load instruction and a store instruction. The load instruction and the store instruction can be classified into a scalar instruction related to only a single register and a vector instruction related to a plurality of registers. Each instruction including a load instruction and a store instruction is composed of one opcode and zero or more (three or less) operands. Depending on the opcode, some operands are implicitly specified. Furthermore, memory access is performed in the order of instruction execution.
In the following description, when the address is simply used, it means a main memory address.
図1は、本発明の実施形態に係る演算処理装置およびその周辺装置の構成を示すブロック図である。演算処理装置およびその周辺装置はメインフレームやパーソナルコンピュータなど、情報処理装置の1構成要素となっている。
なお、矢印の先が直線になっている線(以下、データ線と称する)は演算データ(命令や通常の意味でのデータ)が通る信号線で、矢印の先が三角形になっている線(以下、制御信号線と称する)は演算処理装置1内の各種制御信号が通る信号線である。また、本発明と直接関係のない、グラフィック、外部入出力関係の要素は省略した。
FIG. 1 is a block diagram showing the configuration of an arithmetic processing unit and its peripheral devices according to an embodiment of the present invention. The arithmetic processing unit and its peripheral devices are components of an information processing apparatus such as a main frame and a personal computer.
Note that a line in which the arrowhead is a straight line (hereinafter referred to as a data line) is a signal line through which operation data (command or data in a normal sense) passes, and a line in which the arrowhead is a triangle ( (Hereinafter referred to as a control signal line) is a signal line through which various control signals in the
本実施形態の演算処理装置1は、シリコン上に実装された論理回路と順序回路から構成される。演算処理装置1は、主記憶部21に格納されている命令列や、主記憶部21に格納されているデータあるいは図示しない入力装置データから入力されたデータを、クロック信号に同期しつつ解釈実行して所定の処理を実行し、処理結果を主記憶部21に書き込んだり、図示しない出力装置に出力する。主記憶部21の格納内容の一部は、一時的にキャッシュメモリ23に格納される。演算処理装置1は、実際には主記憶部21から直接命令列やデータを読み書きするのではなく、キャッシュメモリ23に蓄えられている命令列やデータを読み書きする。
The
図1に示すように、演算処理装置1は、命令フェッチ部11と、命令デコーダ13と、読み出しステージ15と、演算器17と、書き込みステージ19と、レジスタ群29と、キャッシュミス率算出部41と、スカラリクエスト数計算部42と、リプライ受信部43と、設定値格納部44と、登録時計算制御部46と、終了時計算制御部47と、演算器48と、リクエストカウンタ49と、動作制御部50と、テーブル管理部121と、メモリリクエスト管理テーブル127とを備える。これらの各要素は論理回路と順序回路とを組み合わせて構成されている。その他、周辺装置として動作クロック信号発生部60と、メモリクロック信号発生部61とがある。
As shown in FIG. 1, the
命令フェッチ部11は、プログラムカウンタ(図示なし)で指定されるアドレスに格納されている命令をキャッシュメモリ23より読み出し、命令デコーダ13に受け渡す。
The instruction fetch unit 11 reads an instruction stored at an address specified by a program counter (not shown) from the
命令デコーダ13は、命令のオペコードからどの演算が要求されているのか、オペランドからどのレジスタあるいはどのアドレスに格納されているデータを利用し、また、演算器17の演算結果をどのレジスタあるいはどのアドレスに格納するのか、などを判別する。また、オペランドから、主記憶部21へのアクセス(読み書き)が発生する「可能性」があるか否かを判別し、主記憶部21へのアクセスが発生する可能性があると判別すれば、デコードの結果として得られたオペコードをメモリリクエスト管理テーブル127にリクエスト管理情報として記録する。なお、結果として、キャッシュメモリ23へのアクセスで済んだとしても、判別条件は成立する。命令デコーダ13は、デコード結果として得られるオペコードをオペコード情報としてスカラリクエスト数計算部42と、登録時計算制御部46と、テーブル管理部121とに送信する。
The instruction decoder 13 uses which data is stored in which register or in which address from the operand, which operation is requested from the instruction opcode, and the register or in which address the operation result of the arithmetic unit 17 is stored. Whether it is stored or not is determined. If it is determined from the operand whether or not there is a “possibility” that access (read / write) to the main storage unit 21 occurs, and it is determined that access to the main storage unit 21 may occur, The operation code obtained as a result of decoding is recorded in the memory request management table 127 as request management information. As a result, even if the access to the
読み出しステージ15は、オペランドで指定されたレジスタまたはアドレスから後続の実行ステージで必要なデータをキャッシュメモリ23、主記憶部21とレジスタ群29とから読み出して用意する。データをキャッシュメモリ23と主記憶部21とから読み出す場合、メモリ管理ユニット25を介してデータの読み出しを要求する。
The read
演算器17は、加算、減算、条件判断、などオペコードで指定される演算を実行する実行ステージを担当する。そして、演算結果を書き込みステージ19に送信する。 The arithmetic unit 17 is in charge of an execution stage that executes an operation specified by an operation code such as addition, subtraction, and condition determination. Then, the calculation result is transmitted to the writing stage 19.
書き込みステージ19は、オペランドで指定されるレジスタ群29のうちの1つのレジスタあるいは主記憶部21内の指定されたアドレスに演算結果を書き込む。
The write stage 19 writes the operation result to one register in the
レジスタ群29は、演算器17の演算結果を一時的に保持するレジスタを複数備える。
The
キャッシュミス率算出部41は、メモリ管理ユニット25から、キャッシュヒット、キャッシュミスの情報を受け取り、所定のキャッシュ判定回数(例えば、1000回)でのキャッシュミス率を算出しスカラリクエスト数計算部42に送信する。キャッシュミス率算出部41はキャッシュミス率を繰り返し算出する。
The cache miss
スカラリクエスト数計算部42は、命令デコーダ13から送信されてきたオペコード情報がロード命令(スカラ命令)を示すデータであるか否かを判別する。ロード命令(スカラ命令)を示すデータであると判別した場合、スカラリクエスト数計算部42はキャッシュミス率算出部41から送信されたキャッシュミス率にキャッシュ読み込み時に発行されるメモリリクエスト数をかけて得られた値をテーブル管理部121に送信する。ロード命令(スカラ命令)を示すデータでないと判別した場合、スカラリクエスト数計算部42は値0をテーブル管理部121に送信する。
The scalar request
リプライ受信部43はメモリ管理ユニット25が主記憶部21に格納されているデータをキャッシュメモリ23に読み出した際に出力する完了信号を受信し、テーブル管理部121に送信する。
The reply receiving unit 43 receives a completion signal that is output when the memory management unit 25 reads data stored in the main storage unit 21 to the
設定値格納部44は、ベクトル型ストア/ロード命令実行時に発行される可能性のあるメモリリクエスト数をオペコードごとに格納している。
The set
テーブル管理部121は、メモリリクエスト管理テーブル127のエントリへの登録および削除を制御する。テーブル管理部121は、命令デコーダ13からオペコード情報を受信すると、そのオペコード情報で示される命令がスカラ型ロード/ストア命令の場合、スカラリクエスト数計算部42から、発行されるメモリリクエスト数の期待値を受信し、オペコード情報と関連づけメモリリクエスト管理テーブル127に登録する。また、オペコード情報で示される命令がベクトル型ロード/ストア命令の場合、設定値格納部44からその命令で発行されるメモリリクエスト数を検索し、オペコード情報と関連づけメモリリクエスト管理テーブル127に登録する。さらに、リプライ受信部43から完了信号を受信した時、テーブル管理部121は完了信号に対応するエントリに対し、主記憶部21あるいはキャッシュメモリ23からデータが読み出された旨を記録する。
The table management unit 121 controls registration and deletion of entries in the memory request management table 127. When the table management unit 121 receives the operation code information from the instruction decoder 13, if the instruction indicated by the operation code information is a scalar type load / store instruction, the expected value of the number of memory requests issued from the scalar request
メモリリクエスト管理テーブル127は、演算処理装置1が主記憶部21あるいはキャッシュメモリ23とデータを読み書きする際にメモリリクエストを発行する可能性のある命令やその命令で発行されるメモリリクエスト数などを関連づけて、リクエスト管理情報として順次記録する。メモリリクエスト管理テーブル127はサイクリックに使用される。すなわち、最後のエントリにリクエスト管理情報を登録すると、次の登録は最初のエントリに移る。メモリリクエスト管理テーブル127の各エントリは、登録されていたリクエスト管理情報に対応するデータの読み書き終了後に、何も登録されていない状態に戻され再利用される。メモリリクエスト管理テーブル127のエントリ数(図2では8個)は、使用中のエントリの格納内容を破壊することなくエントリを再利用できるよう余裕を持って設定される。
The memory request management table 127 associates instructions that may issue a memory request when the
図2に示すように、メモリリクエスト管理テーブル127の各エントリは、「エントリ番号」と、「命令種別情報」と、「使用中情報」と、「リクエスト数」と、「リプライ情報」とを含む。
「エントリ番号」は、メモリリクエスト管理テーブル127の各エントリの識別情報である。
「命令種別情報」は、メモリリクエストを発行する可能性のあるオペコードを記録する。なお、図2では、理解しやすくするため、命令を自然言語で記載しているが、実際には、2進数で記録される。また、「空」と記載してある(エントリ番号7)のは、エントリが未使用であることを示しており、例えば、未定義のオペコードあるいは、いわゆるNOP命令のオペコードを格納する。
「使用中情報」は、エントリが使用中であるか否かを示すデータであり、「1」であれば使用中、「0」であれば未使用であることを示す。エントリに「命令種別情報」が登録された際に「0」から「1」に更新される。
「リクエスト数」は、命令種別情報に対応する命令が発行するメモリリクエスト数の期待値である。
「リプライ情報」は、命令種別情報に対応する命令の処理に必要なデータが主記憶部21あるいはキャッシュメモリ23から読み出されたか否かを示すデータであり、「1」でば読み出し済み、「0」であれば要求中であることを示す。
「使用中情報」と「リプライ情報」とが共に「1」になると、所定の時間経過後、テーブル管理部121の指示により、エントリ番号7の欄のように未使用状態に戻される。
As shown in FIG. 2, each entry of the memory request management table 127 includes “entry number”, “instruction type information”, “in-use information”, “number of requests”, and “reply information”. .
“Entry number” is identification information of each entry in the memory request management table 127.
“Instruction type information” records an operation code that may issue a memory request. In FIG. 2, the instructions are written in a natural language for easy understanding, but are actually recorded in binary numbers. Further, “empty” (entry number 7) indicates that the entry is unused, and stores, for example, an undefined opcode or a so-called NOP instruction opcode.
“In-use information” is data indicating whether or not the entry is in use. If it is “1”, it indicates that it is in use, and if it is “0”, it indicates that it is unused. When “instruction type information” is registered in the entry, it is updated from “0” to “1”.
“Number of requests” is an expected value of the number of memory requests issued by the instruction corresponding to the instruction type information.
“Reply information” is data indicating whether or not the data necessary for processing the instruction corresponding to the instruction type information has been read out from the main storage unit 21 or the
When both “in-use information” and “reply information” are “1”, the table management unit 121 returns to the unused state as indicated by the
図1に戻って、登録時計算制御部46は、メモリリクエスト管理テーブル127にリクエスト管理情報が登録される際に加算する値を計算し、演算器48に渡す。加算される値は、テーブル管理部121から送信されるエントリ番号の「リクエスト数」を参照するか、命令デコーダ13から受信したオペコード情報に応じて定まる値である。
Returning to FIG. 1, the registration-time calculation control unit 46 calculates a value to be added when request management information is registered in the memory request management table 127 and passes it to the
終了時計算制御部47は、メモリリクエスト管理テーブル127に登録されている命令に関し、メモリアクセスが終了した際に減算される値を計算し、負の数に変換し演算器48に渡す。減算される値は、メモリリクエスト管理テーブル127の「リプライ情報」が「0」から「1」に変更されたエントリの「リクエスト数」に登録された値である。
The end time calculation control unit 47 calculates a value to be subtracted when the memory access is completed for the instruction registered in the memory request management table 127, converts it to a negative number, and passes it to the
演算器48は加算器で構成され、登録時計算制御部46と、終了時計算制御部47(負の数とみなす)とから送信される値と、リクエストカウンタ49に格納されている値とを加算し、リクエストカウンタ49に格納する。
The
リクエストカウンタ49は、演算器48の加算結果を格納するレジスタである。リクエストカウンタ49に格納されている値は、動作制御部50が読み出す。
The request counter 49 is a register that stores the addition result of the
動作制御部50は、リクエストカウンタ49のカウント値に従って演算処理装置1あるいは主記憶部21の動作を制御する各種制御信号を生成する。動作制御部50は機能的にリフレッシュタイミング制御部51と、遅延ロックループ(Delay Lock Loop、DLL)制御部52と、クロック制御部53と、プリフェッチプリロード制御部54とから構成される。
The
リフレッシュタイミング制御部51は、少なくとも所定の間隔(これは、主記憶部21内の記憶セルの時定数に依存する)で主記憶部21の格納内容をリフレッシュする意味を持つリフレッシュ信号を生成、出力する。ただし、リクエストカウンタ49から読み出した値が0である場合に、直ちにリフレッシュ信号を生成する。
主記憶部21の格納内容をリフレッシュしている間、主記憶部21はメモリアクセスに対応できない。したがって、メモリアクセスがない隙を見計らって主記憶部21の格納内容をリフレッシュすることで、リフレッシュ中のメモリアクセスの回数が減少し、演算処理装置1の処理性能が向上する。
The refresh timing control unit 51 generates and outputs a refresh signal having a meaning of refreshing the stored contents of the main memory unit 21 at least at a predetermined interval (which depends on the time constant of the memory cell in the main memory unit 21). To do. However, when the value read from the request counter 49 is 0, a refresh signal is immediately generated.
While the stored contents of the main storage unit 21 are refreshed, the main storage unit 21 cannot cope with memory access. Therefore, by refreshing the stored contents of the main memory 21 in anticipation of no memory access, the number of memory accesses during the refresh is reduced, and the processing performance of the
DLL制御部52は、少なくとも所定の間隔(これは、演算処理装置1の動作環境の変化により各種信号にばらつきが発生したとしても、各部の動作が1クロックで完了する状態が保たれる最長の時間よりは短い実験的・経験的に求められた時間である)でDLLの再調整を指示する意味を持つ調整信号を生成、出力する。ただし、リクエストカウンタ49から読み出した値が0である場合に、直ちに調整信号を生成する。ここで、DLLの再調整とは、遅延素子での遅延時間を調整することで演算処理装置1内の各種信号をクロック信号に同期させることをいう。また、DLLの再調整の対象となるのは演算処理装置1とメモリ管理ユニット25との間のデータバスA、Bである。
メモリアクセスがない隙を見計らってDLLを再調整することで、DLL再調整中のメモリアクセスタイムの増加を低減させる。これにより、演算処理装置1の処理性能の向上を図っている。
The DLL control unit 52 has at least a predetermined interval (this is the longest time that the operation of each unit can be completed in one clock even if variations occur in various signals due to a change in the operating environment of the
By re-adjusting the DLL in anticipation of no memory access, an increase in memory access time during DLL re-adjustment is reduced. Thereby, the processing performance of the
クロック制御部53は、リクエストカウンタ49のカウント値に従った電圧レベルで、動作クロック信号発生部60が発生するクロック信号の周波数を制御するクロック制御信号を出力する。例えば、リクエストカウンタ49のカウンタ値が0の場合、クロック信号の周波数を基準周波数から上げるよう、リクエストカウンタ49のカウンタ値が0以上(以外)の場合、クロックの周波数を基準周波数に戻すよう、電圧レベルを調整してクロック制御信号を出力する。
これにより、演算処理装置1の消費電力の低減ができる。
また、クロック制御部53が出力するクロック制御信号は、リクエストカウンタ49のカウント値に従った電圧レベルで、メモリクロック信号発生部61が発生するメモリクロック信号の周波数を制御する。例えば、クロック制御部53は、上述したように電圧レベルを調整したクロック制御信号を出力することで、リクエストカウンタ49のカウンタ値が0の場合、メモリクロック信号の周波数を基本周波数から下げ、リクエストカウンタ49のカウント値が0以上の場合、メモリクロック信号の周波数を基本周波数に戻す、あるいは基本周波数から上げる。これにより、メモリアクセスのターンアラウンド時間の削減ができる。
The
Thereby, the power consumption of the
The clock control signal output from the
プリフェッチプリロード制御部54は、命令列やデータ列のプリフェッチやプリロード時のリクエスト発行数を制御する。例えば、0≦カウンタ値<100の場合はリクエスト発行数3、100≦カウンタ値<1000の場合はリクエスト発行数2、1000≦カウンタの値場合はリクエスト発行数1という制御を行う。 The prefetch preload control unit 54 controls the number of requests issued at the time of prefetching and preloading instruction sequences and data sequences. For example, when 0 ≦ counter value <100, control is performed such that the number of request issuances is 3, when 100 ≦ counter value <1000, the request issuance number is 2, and when 1000 ≦ counter value, the request issuance number is 1.
動作クロック信号発生部60は、クロック制御部53から受信するクロック制御信号の電圧に応じた周波数でクロック信号を生成し、演算処理装置1各部に供給する。このため、動作クロック信号発生部60が発生するクロック信号の周波数は、リクエストカウンタ49のカウンタ値に応じて増減する。ただし、基準となる周波数の上下で動作エラーが発生しない動作範囲で設定された所定の範囲内でしか周波数は変化しない。
The operation
メモリクロック信号発生部61は、クロック制御部53から受信するクロック制御信号の電圧に応じた周波数でメモリクロック信号を生成し、主記憶部21と、キャッシュメモリ23と、メモリ管理ユニット25とに供給する。このため、メモリクロック信号発生部61が発生するバスクロック信号の周波数は、リクエストカウンタ49のカウンタ値に応じて増減する。ただし、基準となる周波数の上下で動作エラーが発生しない動作範囲で設定された所定の範囲内でしか周波数は変化しない。
The memory clock
主記憶部21は、例えば、DRAM(Dynamic Random Access Memory)から構成され、演算処理装置1で実行されるプログラム(命令列)やプログラムの実行に必要なデータ列を格納する。主記憶部21はリフレッシュタイミング制御部51から出力されるリフレッシュ信号に応答して、そのたびに格納内容をリフレッシュしている。
The main storage unit 21 is composed of, for example, a DRAM (Dynamic Random Access Memory), and stores a program (instruction sequence) executed by the
キャッシュメモリ23は、例えば、SRAM(Static Random Access Memory)から構成され、主記憶部21に格納されている命令列などのキャッシュデータを格納する。キャッシュメモリ23へのデータの読み込みはキャッシュライン単位で行われる。例えば、キャッシュラインの大きさ(長さ)が64バイトの場合、読み込み時に発行されるメモリリクエスト数は8バイトである。ストア命令の場合は、スカラ型ストア命令あるいはベクトル型ストア命令に従って発行されるメモリリクエスト数が変化する。スカラ型ストア命令であれば1、ベクトル型ストア命令であればストアするデータサイズに応じて変化する。
The
メモリ管理ユニット(Memory Management Unit、MMU)25は、演算処理装置1とキャッシュメモリ23と主記憶部21との間にあって、キャッシュメモリ23に格納されているデータが主記憶部21のどの部分のコピーであるのか、また、キャッシュメモリ23の格納内容を上書きする領域の判別などを行う。
A memory management unit (MMU) 25 is located between the
MMU25は、データを読み出す場合、命令フェッチ部11と、読み出しステージ15と、書き込みステージ19とにより指定されるアドレスに格納されているデータがキャッシュメモリ23に格納されているか否かを判別し、格納されていると判別すれば、キャッシュメモリ23からデータを読み出し、格納されていないと判別すれば、主記憶部21から読み出して、コピーをキャッシュメモリ23に格納する。データを主記憶部21に書き込む場合、主記憶部21に格納する。また、指定されたアドレスのデータがキャッシュメモリ23に格納されている場合、キャッシュメモリ23にも格納する。MMU25はデータの読み書きが終了すると、その旨を示す完了信号をリプライ受信部43へ送信する。
When reading data, the MMU 25 determines whether or not the data stored at the address specified by the instruction fetch unit 11, the
以下、図面を参照して本実施形態に係る情報処理装置1および周辺装置の動作のうち、オペコード情報に従ってメモリリクエスト数を推定する部分を説明する。
Hereinafter, of the operations of the
まず、図3を参照して、メモリリクエスト管理テーブル127にリクエスト管理情報を登録する登録処理の際のスカラリクエスト数計算部42と、テーブル管理部121と、メモリリクエスト管理テーブル127と、登録時計算制御部46と、演算器48との動作を説明する。
First, referring to FIG. 3, a scalar request
まず、命令デコーダ13が命令をデコードしたことを契機として登録処理が開始される。命令デコード13は命令をデコードして得たオペコードをオペコード情報として、スカラリクエスト数計算部42と、テーブル管理部121と、登録時計算制御部46とに送信する(ステップS101)。
First, the registration process is started when the instruction decoder 13 decodes the instruction. The instruction decode 13 transmits the operation code obtained by decoding the instruction as operation code information to the scalar request
テーブル管理部121は、受信したオペコード情報に含まれるオペコードに対応する命令が主記憶部21にアクセスする可能性のある命令(ロード命令あるいはストア命令)であるか否かを判別する(ステップS102)。命令が主記憶部21にアクセスする可能性のある命令であると判別した場合(ステップS102:YES)、テーブル管理部121は、そのオペコード情報に基づいてリクエスト管理情報を作成し、メモリリクエスト管理テーブル127に登録し(ステップS103)、登録したエントリのエントリ番号を登録時計算制御部46に送信する。ここで、オペコードが、スカラ型命令に対応する場合、「リクエスト数」としてスカラリクエスト数計算部42が算出した値を選択し、ベクトル型命令に対応する場合、設定値格納部44から読み出した値を選択する。そして、リクエスト情報を登録したエントリの「使用中情報」を使用中を意味する「1」に変更する。命令が主記憶部21にアクセスする可能性のある命令でないと判別した場合(ステップS102:NO)、テーブル管理部121は何もせず、ステップS104に処理を進める。
The table management unit 121 determines whether or not an instruction corresponding to the operation code included in the received operation code information is an instruction (load instruction or store instruction) that may access the main storage unit 21 (step S102). . If it is determined that the instruction is an instruction that may access the main storage unit 21 (step S102: YES), the table management unit 121 creates request management information based on the opcode information, and generates a memory request management table. In step S103, the entry number of the registered entry is transmitted to the registration calculation control unit 46. Here, when the opcode corresponds to a scalar type instruction, the value calculated by the scalar request
次に、登録時計算制御部46は、テーブル管理部121から通知されたエントリ番号に対応するエントリに格納されているリクエスト数をメモリリクエスト管理テーブル127から読み出し、演算器48に送信する。最後に、演算器48はリクエストカウンタ49の格納値と登録時計算制御部46から送信された値を加算し(ステップS104)、リクエストカウンタ49に格納し登録処理を終了する。
Next, the registration-time calculation control unit 46 reads the number of requests stored in the entry corresponding to the entry number notified from the table management unit 121 from the memory request management table 127 and transmits it to the
図4を参照して、メモリリクエスト管理テーブル127にリクエスト管理情報を削除する削除処理の際のリプライ受信部43と、テーブル管理部121、とメモリリクエスト管理テーブル127と、終了時計算制御部47と、演算器48との動作を説明する。
Referring to FIG. 4, reply receiving unit 43, table management unit 121, memory request management table 127, and end time calculation control unit 47 at the time of deletion processing for deleting request management information in memory request management table 127. The operation with the
まず、MMU25が要求されたデータの読み出しが完了した旨を示す完了信号がMMU25からリプライ受信部43へ送信されたことを契機として削除処理が開始される。テーブル管理部121はリプライ受信部43から完了信号を受信する(ステップS201)。上述したように、本実施形態では、オペコード情報の受信順序と完了信号の受信順序は同一であるので、テーブル管理部121は、全エントリの「リプライ情報」を参照すれば、メモリリクエスト管理テーブル127のどのエントリの「リプライ情報」を「1」にするべきかを判別できる。テーブル管理部121は、「リプライ情報」を「1」にすべきエントリを判別すると、該当する「リプライ情報」を1に更新する(ステップS202)。そして、テーブル管理部121はデータの読み書きが終了したエントリのエントリ番号を終了時制御部47に送信する。 First, the deletion process is started when the completion signal indicating that the MMU 25 has read the requested data is transmitted from the MMU 25 to the reply receiving unit 43. The table management unit 121 receives a completion signal from the reply receiving unit 43 (step S201). As described above, in this embodiment, since the reception order of the opcode information and the reception order of the completion signal are the same, the table management unit 121 refers to the “reply information” of all entries, and the memory request management table 127. It is possible to determine which entry of which “reply information” should be set to “1”. When the table management unit 121 determines an entry for which “reply information” should be set to “1”, the table management unit 121 updates the corresponding “reply information” to 1 (step S202). Then, the table management unit 121 transmits the entry number of the entry for which data reading / writing has been completed to the termination control unit 47.
次に、終了時計算制御部47は、テーブル管理部121から通知されたエントリ番号に対応するエントリに格納されているリクエスト数をメモリリクエスト管理テーブル127から読み出し、演算器48に送信する。最後に、演算器48はリクエストカウンタ49の格納値から登録時計算制御部46から送信された値を減算し(ステップS203)、リクエストカウンタ49に格納し削除処理を終了する。
Next, the end-time calculation control unit 47 reads the number of requests stored in the entry corresponding to the entry number notified from the table management unit 121 from the memory request management table 127 and transmits it to the
なお、実際には、登録処理と削除処理は並行して実行されるため、演算器48では、登録時計算制御部46から送信される値と終了時計算制御部47から送信される値(ただし、この値は負の数として扱う)とリクエストカウンタ49に格納されている値とを加算し、リクエストカウンタ49に格納する。
Actually, since the registration process and the deletion process are executed in parallel, the
以上説明した登録処理および削除処理により、演算処理装置1とMMU25と間をつなぐバスA、Bで行き来するメモリリクエスト数を計算することが可能となる。この計算されたメモリリクエスト数は、演算処理装置1とMMU25と間をつなぐバスA、Bの負荷(混雑度)の予測値を表す。主記憶部21にアクセスするにはMMU25が仮想アドレスから物理アドレスを計算する必要があるため、命令デコード13が命令をデコードしてから、実際にリクエストが発行されるまでには時間的な遅延がある。このため、本発明の実施例で示した構成をとることで実際のリクエストが発行される段階でカウントするよりも早い段階でリクエスト数を知ることが可能となる。
By the registration process and the deletion process described above, it is possible to calculate the number of memory requests going back and forth on the buses A and B connecting the
リクエストカウンタ49の保持値に従って、動作制御部50内の各制御部51〜54で以下のように動作する。
The control units 51 to 54 in the
リフレッシュタイミング制御部51は、リクエストカウンタ49に格納された値を読み出し、この値が0であると判別すると、主記憶部21の格納内容をリフレッシュする意味を持つリフレッシュ信号を生成し、主記憶部21に出力する。リクエストカウンタ49から読み出した値が所定の時間0で無くても、前回のリフレッシュ時から所定の時間経過すると、リフレッシュ信号を生成し、主記憶部21に出力する。
When the refresh timing control unit 51 reads the value stored in the request counter 49 and determines that this value is 0, the refresh timing control unit 51 generates a refresh signal having a meaning of refreshing the stored contents of the main storage unit 21, and To 21. Even if the value read from the request counter 49 is not the
DLL制御部52は、リクエストカウンタ49に格納された値を読み出し、この値が0であると判別すると、DLLの再調整を指示する意味を持つ調整信号を生成し、バスA、Bに出力する。リクエストカウンタ49から読み出した値が所定の時間0で無くても、前回のDLLの再調整の指示を出してから所定の時間経過すると、調整信号を生成し、バスA、Bに出力する。
The DLL control unit 52 reads the value stored in the request counter 49 and, if it is determined that this value is 0, generates an adjustment signal having a meaning of instructing readjustment of the DLL, and outputs it to the buses A and B. . Even if the value read from the request counter 49 is not the
クロック制御部53は、リクエストカウンタ49に格納された値を読み出し、この値が0であると判別すると、クロック信号の周波数を上げるよう電圧レベルを調整してクロック制御信号を動作クロック信号発生部60に出力する。読み出した値が0でない場合、クロック制御部53は動作クロック信号の周波数を基本周波数に戻すよう電圧レベルを調整してクロック制御信号を動作クロック信号発生部60に出力する。また、同じクロック制御信号により、メモリクロック信号発生部61が出力するメモリクロック信号は、読み出した値が0である場合、メモリクロック信号の周波数を基本周波数から下げ、読み出した値が0でない場合、メモリクロック信号の周波数を基本周波数に戻す、もしくは基本周波数から上げる。
When the
プリフェッチプリロード制御部54は、リクエストカウンタ49に格納された値を読み出し、この値が0以上100未満の場合はメモリリクエストの発行数を3、100以上1000未満の場合メモリリクエストの発行数を2、1000以上の場合メモリリクエスト数の発行数を1にするよう、制御信号を命令デコーダ13と、読み出しステージ15と、書き込みステージ19へ送信する。
The prefetch preload control unit 54 reads the value stored in the request counter 49. When this value is 0 or more and less than 100, the number of issued memory requests is 3, and when the value is 100 or more and less than 1000, the number of issued memory requests is 2. When the number is 1000 or more, a control signal is transmitted to the instruction decoder 13, the
以上、説明したように、本発明の実施形態に係る情報処理装置によれば、主記憶部21へのメモリアクセスの変動に応じて、主記憶部21をリフレッシュするタイミングの制御、DLL再調整動作のタイミングの制御、動作周波数の一時的な上下、メモリリクエスト発行数の制御により、メモリアクセスの効率化を図り、もって演算処理装置1の動作周波数の向上を図ることができる。
As described above, according to the information processing apparatus according to the embodiment of the present invention, the timing of refreshing the main memory unit 21 and the DLL readjustment operation according to the memory access fluctuation to the main memory unit 21 Thus, the memory access efficiency can be improved by controlling the timing of the above, the temporary rise and fall of the operating frequency, and the control of the number of memory requests issued, thereby improving the operating frequency of the
なお、本発明は上記実施形態に限定されず、種々の変形および応用が可能である。
例えば、上記実施形態では、メモリアクセスが発生する命令は、ロード命令およびストア命令の2種類であったが、これらに限定されるものではない。さらに、ベクトル型命令、スカラ型命令のうち、一方だけで上記動作を行うようにしてもよい。また、上記実施形態では外部入出力命令について考慮しなかったが、上記実施形態で説明した手法を敷衍することで考慮することもできる。
In addition, this invention is not limited to the said embodiment, A various deformation | transformation and application are possible.
For example, in the above-described embodiment, there are two types of instructions that cause a memory access: a load instruction and a store instruction, but the present invention is not limited to these. Furthermore, the above operation may be performed by only one of a vector type instruction and a scalar type instruction. Further, although the external input / output instruction is not considered in the above embodiment, it can be considered by applying the method described in the above embodiment.
また、キャッシュメモリ23へのデータの書き込み方式がライトスルー方式である場合を例に説明したが、ライトバック方式でもよい。なお、キャッシュメモリ23が演算処理装置1に内蔵されていてもよい。
Further, although the case where the data writing method to the
また、上記実施形態では、主記憶部21としてリフレッシュ動作の必要なDRAMを例に説明したが、SRAM(Static RAM)でもよい。この場合、リフレッシュ動作が不要となる。また、2次キャッシュなど多段にキャッシュメモリが存在する場合、演算処理装置1と主記憶部21との間でメモリアクセスが発生する可能性があるときに、メモリリクエスト管理テーブル127のカウント数を増減させるようにしてもよい。
In the above embodiment, a DRAM requiring a refresh operation has been described as an example of the main storage unit 21, but an SRAM (Static RAM) may be used. In this case, the refresh operation is not necessary. In addition, when there are multi-stage cache memories such as a secondary cache, the memory request management table 127 count may be increased or decreased when there is a possibility of memory access between the
また、レジスタのリネーミング、実行ステージでの演算結果の横流し、等演算処理装置1の動作周波数を向上させる既知の手法と組み合わせて本発明を適用することができる。
In addition, the present invention can be applied in combination with known methods for improving the operating frequency of the
また、設定値格納部44はなくてもよい。この場合、テーブル管理部121がオペコード情報に含まれるオペコードの種別に応じた、発行される可能性のあるメモリリクエスト数を生成する。
Further, the set
また、上記実施形態で動作制御部50内の各制御部51〜54における判別条件は一例であり、任意の閾値により判別可能である。
In the above embodiment, the determination condition in each of the control units 51 to 54 in the
また、リクエストカウンタ49が特権命令、非特権命令によりアクセス可能なレジスタであってもよい。この場合、プログラム側でリクエスト数予測の結果を利用できる。例えば演算処理装置1とMMU25の間にあるバス上の負荷を考慮したプログラムによる命令スケジューリングに利用できる。
Further, the request counter 49 may be a register accessible by a privileged instruction or a non-privileged instruction. In this case, the program side can use the result of request number prediction. For example, it can be used for instruction scheduling by a program considering the load on the bus between the
また、上記実施形態では、直近のキャッシュミス率に基づいて、ロード命令(スカラ)におけるリクエスト要求の発行数を予測していたが、これをあらかじめ実験的な試行に基づいて算出された1命令あたり平均のリクエスト要求発行数を格納したメモリから読み込むように構成することができる。この場合、このメモリへの格納値は工場設定により固定であってもよいし、ディップスイッチ入力あるいはジャンパプラグの設定により可変であってもよい。 In the above embodiment, the number of request requests issued for a load instruction (scalar) is predicted based on the most recent cache miss rate, but this is calculated in advance per instruction calculated based on experimental trials. The average request request issuance number can be read from the stored memory. In this case, the value stored in the memory may be fixed by factory setting, or may be variable by dip switch input or jumper plug setting.
また、上記実施形態からリプライ受信部43と終了時計算制御部47とを取り除き、演算器48で減算しない構成にすることで、累積のリクエスト数を計算することもできる。
Further, by removing the reply receiving unit 43 and the end-time calculation control unit 47 from the above-described embodiment and adopting a configuration in which no subtraction is performed by the
なお、本発明の実施形態に係る演算処理装置1は、専用のハードウェアによらず、通常のコンピュータシステムを用いて実現可能である。例えば、汎用コンピュータに、上述の処理を実行するためのプログラムを格納した媒体(CD−ROMなど)から当該プログラムを記憶部にインストールすることにより、上述の処理をエミュレート実行する情報処理装置を構築することができる。
Note that the
また、上述の機能を、OS(Operating System)とアプリケーションとの分担、またはOSとアプリケーションとの協動により実現する場合などには、OS以外の部分のみを媒体に格納してもよい。 Further, when the above-described functions are realized by sharing between an OS (Operating System) and an application, or by cooperation between the OS and the application, only a part other than the OS may be stored in the medium.
また、搬送波にプログラムを重畳し、通信ネットワークを介して配信することも可能である。例えば、通信ネットワーク上の掲示板(BBS、Bulletin Board System)に該プログラムを掲示し、ネットワークを介して該プログラムを配信してもよい。そして、このプログラムを起動し、オペレーティングシステムの制御下で、他のアプリケーションプログラムと同様に実行することにより、上述の処理を実行できるように構成しても構わない。 It is also possible to superimpose a program on a carrier wave and distribute it via a communication network. For example, the program may be posted on a bulletin board (BBS, Bulletin Board System) on a communication network and distributed through the network. The program may be activated and executed in the same manner as other application programs under the control of the operating system, so that the above-described processing may be executed.
1 演算処理装置
11 命令フェッチ部
13 命令デコーダ
15 読み出しステージ
17 演算器
19 書き込みステージ
21 主記憶部
23 キャッシュメモリ
25 メモリ管理ユニット(MMU)
29 レジスタ群
41 キャッシュミス率算出部
42 スカラリクエスト数計算部
43 リプライ受信部
46 登録時計算制御部
47 終了時計算制御部
48 演算器
49 リクエストカウンタ
50 動作制御部
51 リフレッシュタイミング制御部
52 遅延ロックループ(DLL)制御部
53 クロック制御部
54 プリフェッチプリロード制御部
60 動作クロック信号発生部
61 メモリクロック信号発生部
121 テーブル管理部
127 メモリリクエスト管理テーブル
DESCRIPTION OF
29
Claims (10)
前記制御部は、
命令からオペコードとオペランドとを取り出す命令デコーダと、
前記命令デコーダが取り出したオペランドが前記メモリにアクセスする命令のオペランドであるか否かを判別する命令種別判別手段と、
前記命令種別判別手段でオペランドが前記メモリにアクセスする命令のオペランドであると判別された場合に、この命令で前記メモリにアクセスする際に発行されるリクエスト数の期待値を算出する加算値算出手段と、
前記加算値算出手段が算出した値を積算する積算手段と、
を具備することを特徴とする情報処理装置。 An information processing apparatus comprising a controller and memory,
The controller is
An instruction decoder that extracts an opcode and an operand from the instruction;
Instruction type determining means for determining whether or not the operand fetched by the instruction decoder is an operand of an instruction that accesses the memory;
Addition value calculating means for calculating an expected value of the number of requests issued when accessing the memory by this instruction when the instruction type determining means determines that the operand is an operand of an instruction accessing the memory When,
Integrating means for integrating the values calculated by the added value calculating means;
An information processing apparatus comprising:
前記メモリへのアクセス終了後、このアクセスの基になった命令に対し、前記加算値算出手段が算出した期待値を減算値として算出する減算値算出手段を具備し、
前記積算手段は、前記加算値算出手段と前記減算値算出手段が算出した値とを積算すること、
を特徴とする請求項1に記載の情報処理装置。 The controller is
Subtract value calculation means for calculating the expected value calculated by the addition value calculation means as a subtraction value for the instruction that is the basis of this access after the access to the memory is completed,
The integration means integrates the value calculated by the addition value calculation means and the subtraction value calculation means;
The information processing apparatus according to claim 1.
前記制御部は、
前記積算手段で算出した値が0であるか否かを判別する積算値判別手段と、
前記積算値判別手段で前記積算手段で算出した値が0であると判別した場合に、前記メモリの格納内容をリフレッシュさせるリフレッシュ指示信号を前記メモリへ出力し、前記積算手段で算出した値が0でないと判別した場合に、前記メモリの格納内容を前記所定間隔でリフレッシュ指示信号を前記メモリへ出力するリフレッシュ指示手段と、
を具備すること、
を特徴とする請求項1または2に記載の情報処理装置。 The memory is a memory for refreshing stored contents at a predetermined interval or shorter than the predetermined interval in order to continue storing information,
The controller is
Integrated value determining means for determining whether or not the value calculated by the integrating means is 0;
When the integrated value determining means determines that the value calculated by the integrating means is 0, a refresh instruction signal for refreshing the stored contents of the memory is output to the memory, and the value calculated by the integrating means is 0. Refresh instruction means for outputting a refresh instruction signal to the memory at the predetermined interval when it is determined that the stored contents of the memory are not,
Comprising
The information processing apparatus according to claim 1, wherein:
前記制御部は、前記積算値判別手段が前記積算手段が算出した値が0であると判別した場合に、前記メモリクロック信号の周波数を基本周波数から低下させるメモリクロック制御信号を出力し、前記積算手段で算出した値が0でないと判別した場合に、前記メモリクロック信号の周波数を基本周波数に戻すメモリクロック制御信号を出力するメモリクロック制御手段を具備すること、
を特徴とする請求項1乃至3のいずれか1項に記載の情報処理装置。 The memory operates in synchronization with a memory clock signal,
When the integrated value determining means determines that the value calculated by the integrating means is 0, the control unit outputs a memory clock control signal for reducing the frequency of the memory clock signal from a basic frequency, and the integrated value determining means A memory clock control means for outputting a memory clock control signal for returning the frequency of the memory clock signal to a fundamental frequency when it is determined that the value calculated by the means is not 0;
The information processing apparatus according to any one of claims 1 to 3 .
前記制御部は前記キャッシュメモリのキャッシュミス率を算出するミス率算出手段を具備し、
前記命令種別判別手段は、さらに、前記命令デコーダが取り出したオペランドがスカラ型命令であるか否かを判別する手段であって、
前記加算値算出手段は、前記命令種別判別手段がオペランドがスカラ型命令のオペランドであると判別した場合、前記ミス率算出手段で算出されたキャッシュミス率に従って、前記期待値を算出する手段であること、
を特徴とする請求項1乃至5のいずれか1項に記載の情報処理装置。 The information processing apparatus includes a cache memory,
The control unit comprises a miss rate calculation means for calculating a cache miss rate of the cache memory,
The instruction type determining means is further means for determining whether or not the operand fetched by the instruction decoder is a scalar type instruction,
The addition value calculating means is a means for calculating the expected value according to the cache miss rate calculated by the miss rate calculating unit when the instruction type determining unit determines that the operand is an operand of a scalar type instruction. thing,
The information processing apparatus according to any one of claims 1 to 5, characterized in.
命令からオペコードとオペランドとを取り出す命令デコーダと、
前記命令デコーダが取り出したオペランドが前記メモリバスを介して前記メモリにアクセスする命令のオペランドであるか否かを判別する命令種別判別手段と、
前記命令種別判別手段でオペランドが前記メモリにアクセスする命令のオペランドであると判別された場合に、この命令で前記メモリにアクセスする際に発行されるリクエスト数の期待値を算出する加算値算出手段と、
前記加算値算出手段が算出した値を積算する積算手段と、
を具備することを特徴とする演算処理装置。 An arithmetic processing unit that exchanges data with a memory via a memory bus,
An instruction decoder that extracts an opcode and an operand from the instruction;
Instruction type determining means for determining whether or not the operand fetched by the instruction decoder is an operand of an instruction that accesses the memory via the memory bus;
Addition value calculating means for calculating an expected value of the number of requests issued when accessing the memory by this instruction when the instruction type determining means determines that the operand is an operand of an instruction accessing the memory When,
Integrating means for integrating the values calculated by the added value calculating means;
An arithmetic processing apparatus comprising:
命令からオペコードとオペランドとを取り出すデコードステップと、
前記デコードステップで取り出したオペランドが前記メモリバスを介して前記メモリにアクセスする命令のオペランドであるか否かを判別する判別ステップと、
前記判別ステップでオペランドが前記メモリにアクセスする命令のオペランドであると判別された場合に、この命令で前記メモリにアクセスする際に発行されるリクエスト数の期待値を算出する加算値算出ステップと、
前記加算値算出ステップが算出した値を積算する積算ステップと、
前記積算ステップで積算された値に従って、演算処理装置のメモリアクセスを最適化する制御ステップと、
を備えることを特徴とするメモリアクセス制御方法。 An arithmetic processing unit that exchanges data with the memory via the memory bus
A decoding step for extracting an opcode and an operand from the instruction;
A determination step of determining whether or not the operand fetched in the decoding step is an operand of an instruction that accesses the memory via the memory bus;
An addition value calculating step of calculating an expected value of the number of requests issued when accessing the memory with this instruction when the determining step determines that the operand is an operand of the instruction accessing the memory;
An integration step of integrating the values calculated by the addition value calculation step;
A control step of optimizing the memory access of the arithmetic processing unit according to the value integrated in the integration step;
A memory access control method comprising:
命令からオペコードとオペランドとを取り出す命令デコーダ手順と、 An instruction decoder procedure for retrieving the opcode and operand from the instruction;
前記取り出されたオペランドがメモリにアクセスする命令のオペランドであるか否かを判別する命令種別判別手順と、 An instruction type determination procedure for determining whether or not the fetched operand is an operand of an instruction for accessing a memory;
前記取り出されたオペランドが前記メモリにアクセスする命令のオペランドであると判別された場合に、この命令で前記メモリにアクセスする際に発行されるリクエスト数の期待値を算出する加算値算出手順と、 An addition value calculation procedure for calculating an expected value of the number of requests issued when accessing the memory with this instruction when it is determined that the fetched operand is an operand of an instruction for accessing the memory;
前記算出された値を積算する積算手順と、 An integration procedure for integrating the calculated values;
を実行させることを特徴とするプログラム。 A program characterized by having executed.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005105244A JP4788177B2 (en) | 2005-03-31 | 2005-03-31 | Information processing apparatus, arithmetic processing apparatus, memory access control method, and program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005105244A JP4788177B2 (en) | 2005-03-31 | 2005-03-31 | Information processing apparatus, arithmetic processing apparatus, memory access control method, and program |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2006285683A JP2006285683A (en) | 2006-10-19 |
JP4788177B2 true JP4788177B2 (en) | 2011-10-05 |
Family
ID=37407538
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005105244A Expired - Fee Related JP4788177B2 (en) | 2005-03-31 | 2005-03-31 | Information processing apparatus, arithmetic processing apparatus, memory access control method, and program |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4788177B2 (en) |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH09297990A (en) * | 1996-03-08 | 1997-11-18 | Matsushita Electric Ind Co Ltd | Memory refresh control method and memory refresh controller |
JP2994280B2 (en) * | 1996-10-29 | 1999-12-27 | 米沢日本電気株式会社 | Computer system performance evaluation method |
JP3317873B2 (en) * | 1997-05-07 | 2002-08-26 | 甲府日本電気株式会社 | Data transfer control device |
JP2000307534A (en) * | 1999-04-16 | 2000-11-02 | Sony Corp | Data processing unit and data transmitter |
JP4450586B2 (en) * | 2003-09-03 | 2010-04-14 | 株式会社ルネサステクノロジ | Semiconductor integrated circuit |
-
2005
- 2005-03-31 JP JP2005105244A patent/JP4788177B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2006285683A (en) | 2006-10-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7234040B2 (en) | Program-directed cache prefetching for media processors | |
US6298424B1 (en) | Computer system including priorities for memory operations and allowing a higher priority memory operation to interrupt a lower priority memory operation | |
US8583894B2 (en) | Hybrid prefetch method and apparatus | |
US10241797B2 (en) | Replay reduction by wakeup suppression using early miss indication | |
US7257665B2 (en) | Branch-aware FIFO for interprocessor data sharing | |
US8035648B1 (en) | Runahead execution for graphics processing units | |
US20030154349A1 (en) | Program-directed cache prefetching for media processors | |
US10884739B2 (en) | Systems and methods for load canceling in a processor that is connected to an external interconnect fabric | |
US6487639B1 (en) | Data cache miss lookaside buffer and method thereof | |
KR20180090284A (en) | Event-initiated programmable prefetchers | |
KR100917491B1 (en) | Cache memory system | |
US11567872B1 (en) | Compression aware prefetch | |
US6910104B2 (en) | Icache-based value prediction mechanism | |
US10853075B2 (en) | Controlling accesses to a branch prediction unit for sequences of fetch groups | |
JP2015515687A (en) | Apparatus and method for fast cache shutdown | |
EP1316015B1 (en) | Method and apparatus for using an assist processor to prefetch instructions for a primary processor | |
WO1999064954A2 (en) | Processor with memory and data prefetch unit | |
US5715425A (en) | Apparatus and method for prefetching data into an external cache | |
JP4788177B2 (en) | Information processing apparatus, arithmetic processing apparatus, memory access control method, and program | |
KR20220051358A (en) | Adaptive allocation of SRAM based on power | |
US11474946B2 (en) | Calculator and calculation method | |
JP5440083B2 (en) | Simulation apparatus, method and program | |
JP3697393B2 (en) | Processor | |
Vassiliadis et al. | A load/store unit for a memcpy hardware accelerator | |
US10866809B2 (en) | Method, apparatus, and system for acceleration of inversion of injective operations |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD02 | Notification of acceptance of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7422 Effective date: 20070126 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20080213 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20080527 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20110303 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20110315 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20110516 |
|
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: 20110621 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20110704 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140729 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 Ref document number: 4788177 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |