JP2011107888A - Arithmetic processor and method for controlling arithmetic processor - Google Patents
Arithmetic processor and method for controlling arithmetic processor Download PDFInfo
- Publication number
- JP2011107888A JP2011107888A JP2009260950A JP2009260950A JP2011107888A JP 2011107888 A JP2011107888 A JP 2011107888A JP 2009260950 A JP2009260950 A JP 2009260950A JP 2009260950 A JP2009260950 A JP 2009260950A JP 2011107888 A JP2011107888 A JP 2011107888A
- Authority
- JP
- Japan
- Prior art keywords
- request
- signal
- data
- unit
- error
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0844—Multiple simultaneous or quasi-simultaneous cache accessing
- G06F12/0855—Overlapped cache accessing, e.g. pipeline
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1064—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in cache or content addressable memories
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Advance Control (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
Description
本発明は、演算処理装置及び演算処理装置の制御方法に関する。 The present invention relates to an arithmetic processing device and a control method for the arithmetic processing device.
近年、演算処理装置としてのプロセッサの処理速度の高速化のために、パイプライン方式を用いたプロセッサが使用されている。パイプライン方式において、プロセッサはその機能を実現する複数のパイプライン(命令制御パイプライン、演算パイプライン、分岐制御パイプライン等)を有する。又、各パイプラインは、それぞれ複数のステージに分割されている。各ステージは、所定の工程を実現する回路ユニットを含み、動作周波数の逆数であるサイクルタイムと呼ばれる期間内に、各ステージに割り当てられた所定の工程を終了するように動作する。そして、先工程に係るステージの出力信号は、例えば、後工程に係るステージの入力信号として使用される。 In recent years, a processor using a pipeline system has been used to increase the processing speed of a processor as an arithmetic processing unit. In the pipeline system, the processor has a plurality of pipelines (an instruction control pipeline, an arithmetic pipeline, a branch control pipeline, etc.) that realize the function. Each pipeline is divided into a plurality of stages. Each stage includes a circuit unit that realizes a predetermined process, and operates so as to end the predetermined process assigned to each stage within a period called a cycle time that is the reciprocal of the operating frequency. The output signal of the stage related to the previous process is used as the input signal of the stage related to the subsequent process, for example.
パイプライン方式を用いたプロセッサの処理速度の高速化手法として、タグRAM(Random Access Memory)と、データRAMに1サイクルでアクセスするように動作するキャッシュメモリが提案されている。 As a technique for increasing the processing speed of a processor using a pipeline system, a tag RAM (Random Access Memory) and a cache memory that operates to access a data RAM in one cycle have been proposed.
データRAMから読み出したデータをエラーチェックする処理と、エラーチェック結果に応じてプロセッサに読み出したデータの使用許可の可否を判断して通知する処理とは、互いに連続した処理であるため、1サイクル内にこれら2つの処理を終了させることが出来ない。そのため、上記2つの処理は、少なくとも合計2サイクル以上の時間がかかる。 The process of checking the data read from the data RAM for error and the process of determining whether or not to permit the use of the data read to the processor according to the error check result are processes that are continuous with each other. These two processes cannot be completed. Therefore, the above two processes take at least two cycles in total.
開示の演算処理装置は、データRAMからのロード動作を高速化することを目的とする。 An object of the disclosed arithmetic processing device is to speed up the load operation from the data RAM.
開示の演算処理装置は、データを記憶する第1の記憶部と、第1の記憶部から読み出したデータについてエラーの発生を検出するエラー検出部と、第1の記憶部から読み出したデータを、ロード要求に基づいて格納する第2の記憶部と、エラー検出部が、ロード要求により第1の記憶部から読み出したデータについて、エラーの発生を検出した場合、第1の記憶部へのロード要求の再送要求を、データのエラーが検出されたサイクルと同じサイクルにおいて生成する再送要求生成部と、エラーが検出されたデータと再送要求が与えられたとき、第1の記憶部にロード要求を再送する命令実行部と、を有する。 The disclosed arithmetic processing device includes a first storage unit that stores data, an error detection unit that detects occurrence of an error for data read from the first storage unit, and data read from the first storage unit, When the second storage unit that stores data based on the load request and the error detection unit detect the occurrence of an error in the data read from the first storage unit by the load request, the load request to the first storage unit A retransmission request generation unit that generates the retransmission request in the same cycle as the cycle in which the data error is detected, and when the error detected data and the retransmission request are given, the load request is retransmitted to the first storage unit An instruction execution unit.
開示の演算処理装置は、データRAMからのロード動作を高速化するという効果を奏する。 The disclosed arithmetic processing device has the effect of speeding up the load operation from the data RAM.
以下、図面を参照して、演算処理装置としてのプロセッサの実施形態を説明する。図1は、演算処理装置の構成の一例を示す図である。図1に示す演算処理装置10は、命令実行部4、L1キャッシュ20を有する。命令実行部4は、デコード部2、及び実行部3を有する。L1キャッシュ20の一例は、図2を用いて後述される。
Hereinafter, an embodiment of a processor as an arithmetic processing device will be described with reference to the drawings. FIG. 1 is a diagram illustrating an example of a configuration of an arithmetic processing device. The
デコード部2は、「データ要求信号」をL1キャッシュ20に供給して、「命令」を読み出す。デコード部2は、L1キャッシュ20から読み出した「命令(オペコード:opcode)」をデコード(解読)して、命令のデコード結果及び命令の実行対象である被演算数等のオペランド(operand)が格納されたレジスタアドレスを「演算制御信号」として、実行部3に供給する。デコード対象の命令としては、例えば、L1キャッシュ20へのロード命令、ストア命令などである。
The
実行部3は、実行部3の内部にあるレジスタファイルにおいて、レジスタアドレスで特定されるレジスタからオペランドであるデータを取り出し、デコードした命令に従ってデータを演算する。実行部3は、デコードされた命令を実行することにより、「データ要求信号」として、を、L1キャッシュ20に供給する。「データ要求信号」は、以下「EXT要求」と呼ばれる。「EXT要求」には、ロード命令、ストア命令、及びプリフェッチ命令等がある。
The
L1キャッシュ20は、例えば、ロード命令に従って、要求されたデータを実行部3に供給する。実行部3は、命令の実行を終了すると、次の演算制御信号を受け取るために、「演算完了信号」をデコード部2に供給する。
For example, the
L1キャッシュ20は、L2キャッシュ400の上位階層のメモリであり、L2キャッシュ400が保持するデータの一部をキャッシュしている。すなわち、L2キャッシュ400は、L1キャッシュ20がキャッシュするデータを包含して保持している。L2キャッシュ400は、主記憶装置500の上位階層のメモリであり、主記憶装置500が保持するデータの一部をキャッシュしている。すなわち、主記憶装置500は、L2キャッシュ200及びL1キャッシュ20の双方がキャッシュするデータを包含して保持している。
The
デコード部2又は実行部3がメモリアクセスした命令又はデータが、L1キャッシュ20に存在する場合を、以下、「キャッシュヒット」と呼ぶ。デコード部2又は実行部3がメモリアクセスした命令又はデータが、L1キャッシュ20に存在しない場合を、以下、「キャッシュミス」と呼ぶ。キャッシュミスが生じた場合、L1キャッシュ20の下位階層にあるL2キャッシュ400又は主記憶装置500から、L1キャッシュ20に当該キャッシュミスしたデータが読み出す制御を行う。
The case where the instruction or data accessed by the
図2は、L1キャッシュの一例を示す図である。命令実行部4は、データバッファ5を有する。データバッファ5は、L1キャッシュ20から読み出した命令を保持するバッファである。
FIG. 2 is a diagram illustrating an example of the L1 cache. The
L1キャッシュ20は、キャッシュコントローラ200、クロック制御部110、データRAM120、エラーチェック回路130、選択回路140、再送要求生成部150、制御部180、L2オーダ保持部190、L2要求保持部195を有する。キャッシュコントローラ200は、パイプライン100、及び制御部180を有する。
The
パイプライン100は、Translation Look−aside Buffer(TLB)35、タグRAM30、比較回路40、及び制御信号生成部50を有する。
The
命令実行部4は、データバッファ5を有する。データバッファ5は、選択回路140から供給されたデータを保持する。
The
パイプライン100は、優先回路25、タグRAM30、TLB35、比較回路40を含む。パイプライン100に含まれる上記の構成要素は、複数のステージにそれぞれ割り当てられる。例えば、優先回路25は、「P(Priority)ステージ」に割り当てられ、タグRAM30及びTLB35は、「T(Tag)ステージ」に割り当てられ、比較回路40は、「M(Match)ステージ」に割り当てられる。パイプライン100の一例は、図5、図7、及び図8を用いて後述される。
The
クロック制御部110は、データRAM120が保持するデータに対するアクセス要求がある場合等のデータRAM120にクロックを供給する必要が有る場合に、データRAM120に対してクロックを供給する。クロック制御部110の詳細は、図14を用いて、後述される。
The
TLB35、タグRAM30、データRAM120、及びエラーチェック回路130の詳細は、それぞれ、図11、図12、図13、及び図15を用いて後述される。
Details of the
比較回路40は、TLB35から供給された絶対アドレスと、タグRAM30から供給された絶対アドレスとを比較して、2つのタグが一致するか否かを判定する回路である。比較回路40は、TLB35から供給されたタグと、タグRAM30から供給されたタグとが一致する場合、選択回路140に、キャッシュヒットが生じたウェイを特定するタグヒットウェイ信号を供給する。
The
L2要求保持部195は、L2キャッシュ400からデータをロードする場合に用いられる要求を保持する。
The L2
L2オーダ保持部190は、L2キャッシュ400からキャッシュラインを削除する処理がなされた場合に、L1キャッシュ20において相当するキャッシュラインのエントリを削除する要求を保持する。以下、この削除要求を、「L2オーダ」と呼ぶ。L2オーダ保持部190からデキューしたL2オーダは、後述されるP(Priority)サイクルオーダアドレスレジスタ(PSXR)に保持される。
The L2
再送要求生成部150、及び制御信号生成部50は、それぞれ、図16、及び図17を用いて、後述される。制御部180は、キャッシュエラーが生じると、L2キャッシュ400にデータをロードし、L1キャッシュにロードしたデータをストアする処理を行う。
The retransmission
図3は、パイプラインへのデータ要求の遷移の一例を示す図である。状態S101は、優先回路25が要求信号を受付中である状態を示す。状態S103は、優先回路25が、要求を、次ステージのTLB35、タグRAM30、及びクロック制御部110に投入するのを待っている状態を示す。
FIG. 3 is a diagram illustrating an example of a transition of a data request to the pipeline. A state S101 indicates a state in which the
優先回路25は、上記した4種の要求を受け取り(T102)、要求投入待ち状態(S103)になると、優先回路25は、図4に示す真理値表に従って、次ステージに供給する要求を選択する。図3に示した状態S101、S103は、要求種別毎に用意されたラッチ回路で実装される。状態S101から状態S103への遷移T102は、要求を優先回路25に設定することにより生じる。状態S103から状態S101への遷移T104は、要求を次ステージに供給することにより生じる。
When the
図2に示す優先回路25は、EXT要求、BIS要求、MI要求、INT要求を受け取り、所定の優先順位に基づいてそれらの要求を選択し、且つ選択した要求を次ステージのTLB35、タグRAM30、クロック制御部110に供給する。
The
EXT要求は、命令実行部4から与えられる要求である。ロード要求、ストア要求、プリフェッチ要求などのメモリアクセス要求が含まれる。
The EXT request is a request given from the
BIS要求は、L2キャッシュ400から与えられる、L1キャッシュ20のラインを消す要求である。BIS要求は、データRAM120にエラーが検出された場合、エラーに係るラインを消す場合に要求される。
The BIS request is a request for deleting the line of the
MI要求は、キャッシュコントローラ200から与えられる、データRAMにL2キャッシュ400からロードしたデータを書き込む要求である。MI要求は、BIS要求がなされた後に、対象となるラインに対して行われる。
The MI request is a request for writing the data loaded from the
INT要求は、EXT要求が、パイプライン100を停止した後で、停止前のデータを用いて、所定の処理を実行するためにパイプライン100から与えられる要求である。
The INT request is a request given from the
図4は、優先順位の真理値表の一例を示す図である。真理値表1000内の「0」は、要求が、要求受付中状態(S101)にあることを示す。真理値表1000内の「1」は、要求が、要求投入待ち状態にあることを示す。真理値表1000内の「*」は、は、胴体要求がどのような状態にあっても優先順位決定に関係が無いドントケア(Don’t care)であることを示す。 FIG. 4 is a diagram illustrating an example of a priority truth table. “0” in the truth table 1000 indicates that the request is in the request accepting state (S101). “1” in the truth table 1000 indicates that the request is in a request input waiting state. “*” In the truth table 1000 indicates that the don't care is not related to the priority determination regardless of the state of the body request.
図4に示す列R101は、MI要求が要求投入待ち状態(S103)にあれば、他の要求に関係なく、MI要求が次ステージに投入されることを示す。 The column R101 shown in FIG. 4 indicates that if the MI request is in the request input waiting state (S103), the MI request is input to the next stage regardless of other requests.
図4に示す行R102は、BIS要求が要求投入待ち状態(S103)にあり、且つ、MI要求が要求受付中状態(S101)にある場合、BIS要求が次ステージに投入されることを示す。 A row R102 shown in FIG. 4 indicates that when the BIS request is in the request input waiting state (S103) and the MI request is in the request accepting state (S101), the BIS request is input to the next stage.
図4に示す行R103は、INT要求が要求投入待ち状態(S103)にあり、且つ、MI要求及びBIS要求が要求受付中状態(S101)にある場合、INT要求が次ステージに投入されることを示す。 The row R103 shown in FIG. 4 indicates that the INT request is input to the next stage when the INT request is in the request input waiting state (S103) and the MI request and BIS request are in the request accepting state (S101). Indicates.
図4に示す行R104は、MI要求、BIS要求、及びINT要求が要求受付中状態(S101)にある場合、EXT要求が次ステージに投入されることを示す。このように、優先回路25は、MI要求>MIS要求>INT要求>EXT要求の優先順位(不等号が示す大きい要求の方の優先順位が高いことを示す)に従って、要求を次ステージに投入する。
A row R104 illustrated in FIG. 4 indicates that when the MI request, the BIS request, and the INT request are in the request accepting state (S101), the EXT request is input to the next stage. In this way, the
図5は、パイプラインのアドレス制御、すなわちアドレス制御パイプラインsの一例を示す図である。図5には、図2に示したL1キャッシュ20の構成要素が、パイプラインステージ「P(Priority)」、「T(Tag)」、「M(Match)」、「B(Branch)」、「R(Result)」、「R1」に分割される。クロックサイクルは、パイプラインの各ステージでかかる処理時間のうち最長時間に基づいて設定される。それにより、全ステージが、クロックに同期して、同一サイクルタイムで動作する。
FIG. 5 is a diagram showing an example of pipeline address control, that is, an address control pipeline s. In FIG. 5, the components of the
「P(Priority)」、「T(Tag)」、「M(Match)」、「B(Branch)」、「R(Register)」、及び「R1」の各ステージは、それぞれステージングラッチであるとともに論理アドレスレジスタである、PLR(Priority stage Logical Register)、TLR(Tag stage Logical Register)、MLR(Match stage Logical Register)、BLR(Branch stage Logical Register)、RLR(Register stage Logical Reigster)、及びR1LR(R1 stage Logical Reigster)をそれぞれ有する。これらのステージングラッチである論理アドレスレジスタは、外部から供給されるクロックに同期し、一定期間論理アドレスを保持した後、次ステージのパイプラインアドレスレジスタに論理アドレスを供給する。 Each stage of “P (Priority)”, “T (Tag)”, “M (Match)”, “B (Branch)”, “R (Register)”, and “R1” is a staging latch. Logical address registers, PLR (Priority Stage Logical Register), TLR (Tag stage Logical Register), MLR (Match stage Logical Register), BLR (Branch stage Logical Register), BLR (Batch stage Logic Register). stage Logic Reigster). These staging latches, which are logical address registers, synchronize with a clock supplied from the outside, hold the logical address for a certain period, and then supply the logical address to the pipeline address register of the next stage.
ポートレジスタは、EXT要求を保持する。ポートレジスタで保持されるEXT要求は、パイプライン停止後、INT要求として利用される。 The port register holds an EXT request. The EXT request held in the port register is used as an INT request after the pipeline is stopped.
MILAR(Move In Logical Address Register)は、タグRAM30に書き込むデータの論理アドレスを保持しておくレジスタである。MIAAR(Move In Absolute Address Register)は、キャッシュミスが生じた場合、タグRAM30に書き込むデータの物理アドレスを保持するレジスタである。キャッシュコントローラ200は、MIAARに保持された物理アドレスのデータを、L2要求保持部195を介して、L2キャッシュ400へ要求するMI(Move In)要求を送出する。L2キャッシュ400から取得したデータは、MI要求により、タグRAM30に書き込まれる。
MILAR (Move In Logical Address Register) is a register that holds a logical address of data to be written to the
BAAR(Branch cycle Absolute Address Register)は、MIAARに入力される物理アドレスを保持するレジスタである。 A BAAR (Branch Cycle Absolute Address Register) is a register that holds a physical address input to the MIAAR.
ERAR(Error Address Register)は、メモリアクセスにおいてエラーが発生した場合の仮想アドレスを保持しておくレジスタである。比較回路40でキャッシュミスが生じた場合、キャッシュコントローラ200は、L2キャッシュ400にエラーが報告する。エラーが報告されると、L2キャッシュ400は、エラーが生じたキャッシュラインのエントリを削除するための要求を発行する。この要求は、「L2オーダ」と呼ばれる。L1キャッシュ20は、L2オーダ保持部190を介して、L2オーダを受け取ると、BIS要求によりラインを消去する。制御部180は、ラインが消去されたことをL2キャッシュ400に通知する。
ERAR (Error Address Register) is a register that holds a virtual address when an error occurs in memory access. When a cache miss occurs in the
Tステージは、TLB35及びタグRAM30を含む。クロック制御部110は、パイプライン100には含まれないが、P又はTステージのサイクルで処理を行う。
The T stage includes a
Mステージは、選択回路140を含む。データRAM120は、パイプライン100には含まれないが、Mステージのサイクルで動作する。Bステージは、エラーチェック回路130、優先回路25、再送要求生成部150を含む。Rステージは、データバッファ5に要求を供給する回路を含む。
The M stage includes a
Pステージでは、優先回路25は、図3に示す真理値表の優先順位に従って、Pステージで選択されたEXT、BIS、INT、MIのいずれかの要求が、TLB35及びタグRAM30に供給される。
At the P stage, the
図6は、エラーチェック回路を用いて使用許可信号であるSTV(STore Valid:ストアバリッド)信号を生成した場合のパイプラインによるアドレス制御の一例を示す図である。図6には、図2に示したL1キャッシュ20の構成要素のうち、クロック制御部110と、再送要求生成部150が示されていない。
FIG. 6 is a diagram illustrating an example of address control by a pipeline when an STV (Store Valid) signal that is a use permission signal is generated using an error check circuit. FIG. 6 does not show the
制御信号生成部50が、エラーチェック回路130によるエラー検出信号を受け取って、上記のSTV信号を出力する構成とする場合、制御信号生成部50は、エラーチェック回路130の後段に配置される。制御信号生成部50は、図19で後述されるように、パイプライン100内に配置され、データRAM120の近傍に配置されない。よって、データRAM120と制御信号生成部50との間の伝送路が長いために、制御信号生成部50は、Mステージではなく、Bステージに配置される。さらに、エラーチェック回路130は、Mステージに配置される。
When the control
そのため、エラーチェック回路130の前段に配置されるデータRAM120は、図5に示したようにMステージへの配置ではなく、Tステージに配置される。結果として、クロック制御部110を優先回路25と、データRAM120との間に配置することが出来なくなる。
Therefore, the
以上のように、演算処理装置10は、エラーチェック回路130の後段に、制御信号生成部50ではなく、再送要求生成部150を設けることで、データRAM120へのクロック制御を行うクロック制御部110を設けることが出来る。クロック制御部110は、データRAM120が保持するデータに対するアクセスが無いとき、データRAMへクロックを供給しないため、クロック制御部110を設けることで、演算処理装置10は、その消費電力を低減できる。
As described above, the
図7は、図5に示したクロック制御部を除いたパイプラインのアドレス制御の一例を示す図である。図5に示したクロック制御部をTステージから取り除いたことで、データRAM120は、Tステージで動作する。また、エラーチェック回路130から検出したエラーは、パイプライン100の外にある再送要求生成部150で受け取り、再送要求を生成することで、再送要求生成部150は、Mステージに配置することが出来る。そのため、データRAM120の後段にあるエラーチェック回路130及び再送要求生成部150をMステージに配置可能になり、STV信号及びRERUN信号をBステージで送信することができる。よって、図5及び図6に示すようなSTV信号又はRERUN信号送信用のRステージは不要にすることが出来る。
FIG. 7 is a diagram illustrating an example of pipeline address control excluding the clock control unit illustrated in FIG. 5. By removing the clock controller shown in FIG. 5 from the T stage, the
このように、図6に示すパイプライン制御と異なり、図7に示すパイプライン制御では、より短いサイクルタイムでデータのロード動作が可能になる。すなわち、演算処理装置10は、図6に示すパイプライン制御においてデータのロード動作がサイクルタイム(動作周波数)向上のボトルネックになっていた場合、図7に示すパイプライン制御に変更することにより、サイクルタイム(動作周波数)向上を図ることが出来る。
In this way, unlike the pipeline control shown in FIG. 6, the pipeline control shown in FIG. 7 enables a data load operation in a shorter cycle time. That is, when the data loading operation in the pipeline control shown in FIG. 6 is a bottleneck for improving the cycle time (operating frequency), the
図8は、パイプラインにおけるフラグ制御の一例を示す図である。図8に示すパイプライン100bは、フラグ信号制御に係るパイプライン内の回路が示される。パイプライン100bには、INVERTER101、フラグ信号ラッチTFLAG(Tag FLAG)、MFLAG(Match FLAG)、BFLAG(Branch FLAG)、RFLAG(Register FLAG)、優先回路102を有する。
FIG. 8 is a diagram illustrating an example of flag control in the pipeline. A pipeline 100b shown in FIG. 8 shows a circuit in the pipeline related to flag signal control. The pipeline 100 b includes an
「P」、「T」、「M」、「B」、「R」、及び「R1」の各ステージは、フラグ信号を保持するステージングラッチである、フラグ信号ラッチTFLAG、MFLAG、BFLAG、及びRFLAGをそれぞれ有する。フラグ信号とは、パイプラインが要求を処理した結果に基づいて生成される属性情報や識別情報等の状態情報を示す制御信号である。フラグ信号は、図9を用いて後述される。フラグ信号ラッチは、データ入力端子でありフラグ信号が入力されるD(Data)端子と、制御端子でありWAIT信号が入力されるIH(InHibit)端子を有する。IH端子に入力されるWAIT信号が信号レベル「ロウ」である場合、フラグ信号ラッチのD端子から入力されるフラグ信号が書き込まれ、IH端子に入力されるWAIT信号が信号レベル「ハイ」である場合、フラグ信号ラッチのD端子から入力されるフラグ信号の書き込みが禁止される。 “P”, “T”, “M”, “B”, “R”, and “R1” stages are staging latches that hold flag signals, flag signal latches TFLAG, MFLAG, BFLAG, and RFLAG Respectively. The flag signal is a control signal indicating status information such as attribute information and identification information generated based on the result of processing the request by the pipeline. The flag signal will be described later with reference to FIG. The flag signal latch has a data input terminal D (Data) terminal to which a flag signal is input, and a control terminal IH (In Hibit) terminal to which a WAIT signal is input. When the WAIT signal input to the IH terminal is at the signal level “low”, the flag signal input from the D terminal of the flag signal latch is written, and the WAIT signal input to the IH terminal is at the signal level “high”. In this case, writing of the flag signal input from the D terminal of the flag signal latch is prohibited.
なお、以下において、信号レベル「ロウ」を『L』と、信号レベル「ハイ」を『H』と呼ぶ。 In the following, the signal level “low” is referred to as “L”, and the signal level “high” is referred to as “H”.
IH端子の入力信号は、否定回路であるINVERTER101により反転したWAIT信号である。WAIT信号は、パイプライン100の動作を停止させる信号であり、図2に示す制御信号生成部50で生成される。よって、パイプラインの動作を停止させるWAIT信号が『H』になるとき、フラグ信号ラッチへフラグ信号が書き込まれる。制御信号生成部50によるWAIT信号の生成条件は、図17を用いて後述される。
The input signal at the IH terminal is a WAIT signal inverted by
優先回路25が、受け取った要求のいずれかを、パイプライン100に投入すると、フラグ信号は、クロック信号の入力とともにTFLAG、MFLAG、BFLAG、RFLAGの順に移動する。しかし、パイプライン処理の停止信号であるWAIT信号が、INVERTER101に供給されると、各フラグ信号ラッチが、フラグ信号を、クロック信号の入力とともに各ステージに対応した保持回路TW、MW、BW、RWに格納する。
When the
一旦パイプライン停止状態になったあと、パイプラインを再開するときには保持回路TW、MW、BW、RWからフラグ信号が出力され、INT要求としてまたパイプラインに投入される。投入は、一番古い要求から投入されるので、RW、BW、MW、TWの順で投入される。 Once the pipeline is stopped, when the pipeline is resumed, flag signals are output from the holding circuits TW, MW, BW, and RW, and are again input to the pipeline as an INT request. Since the input is input from the oldest request, it is input in the order of RW, BW, MW, and TW.
図9は、パイプライン制御に使用されるフラグ信号の一例を示す図である。フラグ信号1101は、TFLAG、MFLAG、BFLAG、及びRFLAGに保持される信号である。フラグ信号1101は、「VALID」信号、「ポートID」信号、「パイプID」信号、「命令部ID」信号、「再送要求指示」信号、「再送要求2回目」信号を含む。
FIG. 9 is a diagram illustrating an example of a flag signal used for pipeline control. The
『H』の「VALID」信号は、パイプラインステージに有効な要求が流れていることを示す。「ポートID(ポートレジスタ−ID)」信号は、図5に示すポートレジスタを特定する信号である。図17で後述するように、パイプラインの動作を停止させるWAIT信号が『H』になると、『H』の「VALID」信号が、パイプラインを流れる。 A “VALID” signal of “H” indicates that a valid request is flowing through the pipeline stage. The “port ID (port register-ID)” signal is a signal for specifying the port register shown in FIG. As will be described later with reference to FIG. 17, when the WAIT signal for stopping the pipeline operation becomes “H”, the “VALID” signal of “H” flows through the pipeline.
「パイプID(PIPE−ID)」信号は、要求の種類を示す。例えば、16進数で「0x3」、「0x5」、「0xD」、及び「0xF」を示す「パイプID」信号は、MI要求、BIS要求、INT要求、及びEXT要求をそれぞれ示す。「命令ID(IBR−ID)」信号は、要求を返す先の命令実行部4の番号を示す。「命令ID」信号は、命令実行部4がEXT要求をL1キャッシュ20に供給するときに、EXT要求に付随される。
The “pipe ID (PIPE-ID)” signal indicates the type of request. For example, a “pipe ID” signal indicating “0x3”, “0x5”, “0xD”, and “0xF” in hexadecimal indicates an MI request, a BIS request, an INT request, and an EXT request, respectively. The “instruction ID (IBR-ID)” signal indicates the number of the
再送要求指示であるRERUN−REQ信号は、再送要求であるRERUN信号を受け取った命令実行部4が、パイプライン100に供給する信号である。
The RERUN-REQ signal that is a retransmission request instruction is a signal that is supplied to the
再送要求2回目指示であるRERUN−2nd信号は、後述するフローIDであるWID信号が71を示すとき、71をデコードすることで得られる信号である。「WID=71」は、先のフローが再送要求によるものであり、且つ、キャッシュヒット及びエラーの発生なしで、WAITされたフローであることを特定する。別の言い方をすれば、「WID=71」は、再送要求2回目指示は、先のフローでデータバッファ5にデータを書き込み済みであり、現在のフローは、STV信号を返すフローであることを示している。よって、パイプライン100は、INT要求と共に受信したWID信号をデコードすることで、RERUN−2nd信号を『H』にして、フラグ信号の1つとしてRERUN−2nd信号をパイプラインの各ステージに流す。
The RERUN-2nd signal that is the second instruction for retransmission request is a signal obtained by decoding 71 when a WID signal that is a flow ID described later indicates 71. “WID = 71” specifies that the previous flow is due to a retransmission request and is a WAITed flow without occurrence of a cache hit or error. In other words, “WID = 71” indicates that the second instruction for retransmission request has already written data into the
フラグ信号1102は、TW、MW、及BWに保持されるフラグ信号である。フラグ信号1102が含む属性又は識別情報は、上記したVALID、ポートID、パイプID、及び命令部IDである。フラグ信号1103は、RWに保持されるフラグ信号である。フラグ信号1103が含む属性又は識別情報は、上記したVALID、ポートID、パイプID、命令部ID、及びWIDである。
A
WIDは、パイプラインが停止した理由を特定し、以下の種類がある。
「WID=10」は、キャッシュミスで、パイプラインが中断したことを示す。パイプライン100は、L2キャッシュ400からL1キャッシュ20にデータがロードされるまで待つ。「WID=60」は、TLBミスで、パイプラインが中断したことを示す。「WID=70」は、キャッシュのエラーで、パイプラインが中断したことを示す。「WID=71」は、再送要求を受けた最初のフローが、キャッシュヒット及びエラーなしで終了したことを示す。
The WID specifies the reason why the pipeline has stopped, and has the following types.
“WID = 10” indicates that the pipeline is interrupted due to a cache miss. The
図10は、保持回路RW、BW、MW、TWに保持されるフラグ信号の選択の優先順位を規定する真理値表である。優先回路102は、図10に示す真理値表1200に従って、フラグ信号アドレスに保持されるフラグ信号を選択する。真理値表1000内の「*」は、は優先順位決定に関係が無いドントケア(Don’t care)であることを示す。真理値表1200内の「0」は、フラグ信号が保持回路に保持されることを示す。真理値表1200内の「1」は、フラグ信号が保持回路に保持されないことを示す。
FIG. 10 is a truth table that defines the priority of selection of flag signals held in the holding circuits RW, BW, MW, and TW. The
RWに保持されるフラグ信号は、行L1201に示すように、常に優先回路102により選択される。BWに保持されるフラグ信号は、行L1202に示すように、RWにフラグ信号が無い場合、優先回路102により選択される。MWに保持されるフラグ信号は、行L1203に示すように、BW及びRWにフラグ信号が無い場合、優先回路102により選択される。TWに保持されるフラグ信号は、行L1203に示すように、MW、BW及びRWにフラグ信号が無い場合、優先回路102により選択される。
The flag signal held in the RW is always selected by the
図11は、TLBの一例を示す図である。TLB35は、M(Mは、整数)個のエントリがあり、各エントリには、エントリが有効か否かを示す有効ビット(Valid)、仮想アドレス(VA)、絶対アドレス(AA)を含む。TLB35は、比較部36でアクセスに使われる仮想アドレスと格納されている仮想アドレスのマッチをとって一致したエントリを選択するエントリ選択信号を出力する。選択部37は、エントリ選択信号によって選択されたエントリに保持される絶対アドレスを出力する。出力された絶対アドレスは、選択回路140に供給される。
FIG. 11 is a diagram illustrating an example of a TLB. The
実際にタグマッチに使う仮想アドレスは、ページサイズに応じて所定の下位部分がタグマッチには使用されないこととなる。例えば、8KBページサイズでは、タグマッチに使う仮想アドレスは、64ビットの仮想アドレスのうち50ビット<63:14>である。仮想アドレスがTLB35上にある場合、TLB35は、TLBヒット信号を、制御信号生成部50、及び再送要求生成部150に供給する。
As for the virtual address actually used for tag matching, a predetermined lower part is not used for tag matching according to the page size. For example, in the 8 KB page size, the virtual address used for tag matching is 50 bits <63:14> of the 64-bit virtual address. When the virtual address is on the
図12は、タグRAMの一例を示す図である。タグRAM30は、N(Nは、整数)個のエントリがあり、各エントリには、エントリが有効か否かを示す有効ビット(Valid)、及び絶対アドレス(AA)を含む。タグRAM30のデコーダ31は、64ビットの仮想アドレスの一部であるアクセスアドレス(例えば、<13:7>)をデコードして、エントリを選択する。タグRAM30は、選択されたエントリから絶対アドレスを出力する。タグRAMが、複数のウェイを有し、1つのインデックスに対して各ウェイのエントリが選択されるセットアソシアティブ型キャッシュメモリの場合、絶対アドレスは、ウェイの数だけ出力される。出力した絶対アドレスは、選択回路140に出力される。
FIG. 12 is a diagram illustrating an example of a tag RAM. The
図13は、データRAMの一例を示す図である。データRAM120は、タグRAMと同じN(Nは、正の整数)個のエントリがあり、各エントリには、データ、及びデータのパリティビットを含む。データRAM120のデコーダ41は、タグRAM30に供給されるアクセスアドレスと同一のアクセスアドレスをデコードして、エントリを選択する。データRAM120は、選択されたエントリからデータを出力する。出力されたデータは、エラーチェック回路130及び選択回路140に供給される。
FIG. 13 is a diagram illustrating an example of the data RAM. The
データRAM120は、1ラインのデータ幅を確保するために1個のRAMで足りないときは、1ウェイを構成するのに複数のRAMを用いることもある。例えば、4個のRAMが1つのウェイを構成し、ウェイの数が2つある場合、RAMは、4x2=8個必要になる。
The
図14は、クロック制御部の一例を示す図である。クロック制御部110は、OR回路111、ラッチ回路112、及びクロックバッファ113を有する。
FIG. 14 is a diagram illustrating an example of the clock control unit. The
OR回路111は、REQ−VAL(REQust―VALid信号、MI−HLD(Move In−HoLD)信号、INT−HLD(INTerrupt−HoLD)信号を受け取り、何れかの信号が『H』であれば、ラッチ回路112を介して後段のクロックバッファ113にEnable信号を供給する。何れの信号も『L』のときは、Enable信号は、クロックバッファ113に供給されない。
The OR
REQ−VAL信号は、命令実行部4からEXT要求が供給されたときに『H』になる信号である。MI−HLD信号は、MI要求が、図3の要求投入待ち状態(S103)にある状態のときに『H』になる信号である。INT−HLD信号は、INT要求が、図3の要求投入待ち状態(S103)にある状態のときに『H』になる信号である。
The REQ-VAL signal is a signal that becomes “H” when an EXT request is supplied from the
クロックバッファ113は、入力されるEnable信号と、クロックとのAND回路(論理積回路)の出力が『H』になると、データRAM120にクロックを印加する。
The
このように、クロック制御部110は、REQ−VAL信号、MI−HLD信号、INT−HLD信号のいずれかが『H』のときはデータRAM120にクロックが印加され、いずれの信号も『L』のときはデータRAM120にクロックが印加されない。よって、優先回路25に、EXT要求、INT要求、MI要求のいずれかが供給された場合、クロック制御部110は、データRAM120にクロックを供給し、上記要求がいずれも供給されていない場合、データRAM120にクロックを供給しない。
Thus, the
このように、クロック制御部110は、データRAM120が保持するデータに対するアクセスが無いとき、データRAMへクロックを供給しないように制御することで、データRAMの消費電力を低減できる。
As described above, the
図15は、エラーチェック回路の一例を示す図である。図15に示すように、エラーチェック回路130は、ExOR回路(否定排他的論理和回路)131、OR回路(論理和回路)132、及び選択回路133を有する。
FIG. 15 is a diagram illustrating an example of an error check circuit. As illustrated in FIG. 15, the
データRAM120から一度に読み出すデータがJバイトの場合、否定排他的論理和131は、バイト毎にパリティビットを用いて、奇数パリティか否かのパリティチェックを行う。ExOR回路131は、パリティエラーが発生した場合、『H』のデータパリティエラー信号を出力する。
When the data read from the
OR回路132は、複数のExOR回路131から、受け取った各バイト毎のデータパリティエラー信号の論理和を、選択回路133に、データエラーウェイ信号として出力する。OR回路132が受け取ったデータパリティエラー信号の1つでも『H』であれば、データエラーウェイ信号が『H』になる。
The OR
選択回路133は、キャッシュヒットを生じたウェイを特定するタグヒットウェイ信号を受け取り、タグヒットウェイ信号により特定されるデータエラーウェイ信号を選択する。選択されたデータエラーウェイ信号が、『H』の場合、データRAM120から読み出されたデータにエラーであることを示す。
The
図16は、再送要求生成部の一例を示す図である。再送要求生成部150の一例は、AND回路150aである。AND回路150aは、VALID、EXT要求又はINT要求、再送要求指示(RERUN−REQ)、タグヒット(TAG−HIT)、TLBヒット(TLB−HIT)、及びエラー(ERROR)を受け取る。VALID、EXT要求又はINT要求、タグヒット、TLBヒット、及びエラーが全て『H』であり、再送要求指示が『L』の場合、AND回路150aは、『H』のRERUN信号を出力する。なお、AND回路150aの入力信号は、全てBステージで生成され、RERUN信号は、ラッチ回路151を介してBステージの次のステージであるRステージで出力される。
FIG. 16 is a diagram illustrating an example of a retransmission request generation unit. An example of the retransmission
このように、再送要求生成部150は、エラーが発生して、且つ、命令実行部4からRERUN−REQ信号が供給されていない場合、RERUN信号を生成する。
As described above, the retransmission
図17は、制御信号生成部の一例を示す図である。制御信号生成部50は、AND回路51、52、53、54、OR回路55を有する。
FIG. 17 is a diagram illustrating an example of the control signal generation unit. The control
AND回路51は、RERUN−REQ信号、RERUN−2nd信号、TAG−HIT信号、TLB−HIT信号を受け取る。AND回路51は、RERUN―REQ信号、TAG−HIT信号、TLBヒット信号が全て『H』であり、RERUN−2nd信号が『L』の場合、『H』の信号S51を出力する。
The AND
OR回路55は、『H』の信号S51、『L』のタグヒット(TAG−HIT)信号、『L』のTLB−HIT信号の何れかを受け取ると、『H』の信号S55を出力する。
When the
AND回路52は、『H』のVALID信号、『H』のEXT要求又はINT要求、及び『L』のWAIT信号を受け取ると、『H』の信号S52を出力する。
Upon receiving the “H” VALID signal, the “H” EXT request or INT request, and the “L” WAIT signal, the AND
AND回路53は、『H』の信号S55、及び『H』の信号S52を受け取ると、『H』のWAIT信号を出力する。
Upon receiving the “H” signal S55 and the “H” signal S52, the AND
AND回路54は、『L』の信号S55、及び『H』の信号S52を受け取ると、『H』のSTV信号を出力する。
Upon receiving the “L” signal S55 and the “H” signal S52, the AND
このように、制御信号生成部50は、『H』のRERUN−REQ信号を受け取ると、WAIT信号を出力すると共に、STV信号の出力を抑止するように動作する。制御信号生成部50は、『L』のRERUN−REQ信号、又は『H』のRERUN−2nd信号を受け取ると、STV信号を出力し、WAIT信号の出力を抑止して、パイプライン動作を再開するように動作する。
As described above, when receiving the “H” RERUN-REQ signal, the control
図8に示したように、WAIT信号がパイプライン100に供給されると、INT信号が出力される。そして、図2に示したように、WAIT信号は、パイプライン100に投入される。
As shown in FIG. 8, when the WAIT signal is supplied to the
図18は、パイプラインのVALID信号処理の一例を示す図である。図18に示されるパイプラインは、AND回路171、172、173を有する。『H』のWAIT信号が、AND回路171、172、173に供給されると、AND回路171、172、173の出力は、『L』になる。よって、WAIT信号が『H』のときは、パイプラインにおいてVALID信号の伝播を抑止できる。
FIG. 18 is a diagram illustrating an example of pipeline VALID signal processing. The pipeline illustrated in FIG. 18 includes AND
図19は、演算処理装置の回路配置の一例を示す図である。図19に示されるように、データRAM120は、演算処理装置10において大きな面積を占有するので、データRAM120が配置される領域と、パイプライン100が配置される領域との配線の距離は必然的に長くなる。そのため、再送要求生成部150を、キャッシュコントローラ200内部ではなく、データRAM120の近傍に配置することで、Bステージのサイクル内で再送要求を生成しながらデータRAM120に送信することにより、Rステージのサイクル内でデータバッファ5に再送要求の送信を行うことが出来る。
FIG. 19 is a diagram illustrating an example of a circuit arrangement of the arithmetic processing device. As shown in FIG. 19, since the
図20及び図21は、再送要求が発行されたときのパイプライン処理の一例を示すタイムチャートである。図20及び図21では、RERUN−REQ信号、STV信号、WID信号、データRAMエラーを表すSBE信号、データバッファ書き込み表すIBR−CE信号、RERUN信号の信号レベルの変化が示される。 20 and 21 are time charts showing an example of pipeline processing when a retransmission request is issued. 20 and 21 show changes in the signal levels of the RERUN-REQ signal, the STV signal, the WID signal, the SBE signal indicating a data RAM error, the IBR-CE signal indicating data buffer writing, and the RERUN signal.
パイプライン100のPステージでは、EXT要求を受け取る。
In the P stage of the
Bステージでは、SBE信号が『H』になり、IBR−CE信号も『H』になる。つまり、エラーデータが、データバッファ5に供給される。
In the B stage, the SBE signal becomes “H”, and the IBR-CE signal also becomes “H”. That is, error data is supplied to the
図17を用いて説明したように、RERUN−REQ信号が『L』であると、制御信号生成部50は、『H』のSTV信号を出力する。そのため、Rステージでは、STV信号は、『H』になる。
As described with reference to FIG. 17, when the RERUN-REQ signal is “L”, the control
図16を用いて説明したように、再送要求生成部150の入力信号のうちエラー信号が『H』になることで、Bステージでは、RERUN信号が『H』になる。よって、命令実行部4は、STV信号を受け取っても、同時にRERUN信号を受け取ることにより、STV信号を破棄し、命令実行部4がBステージで受け取ったデータを使用するという不都合を回避することが出来る。
As described with reference to FIG. 16, the error signal becomes “H” in the input signal of the retransmission
RERUN信号が供給されると、命令実行部4によって保持回路TW、MW、BW、RWとパイプラインのVALID信号のリセットが指示されることにより、パイプライン100が保持するリクエストが消滅し 、パイプライン動作が停止する。
When the ERRUN signal is supplied, the
13〜21サイクルでは、パイプライン100は、L2キャッシュ400からBIS要求を受け取り、L1キャッシュ20のエラーを生じたラインが無効化される。なお、13〜21サイクルでは、当該処理に2回パイプラインを実行する2フローかかるように示される。これは、1フロー目にタグRAMに無効化を必要とするラインがあることのチェックを行い、2フロー目にタグRAMのインバリデート(無効化)を行うためである。
In the 13th to 21st cycles, the
図21のタイミングチャートにおけるクロックの21サイクル目のPステージでは、命令実行部4は、パイプラインにEXT要求を供給する。当該EXT要求の供給と共に、RERUN−REQ信号が供給されるため、RERUN−REQ信号が『H』になる。図8で説明したように、RERUN−REQ信号は、各ステージにあるフラグ信号ラッチを伝播するため、21〜25サイクルでは、RERUN−REQ信号は『H』の状態を維持する。
In the P stage of the 21st cycle of the clock in the timing chart of FIG. 21, the
図21のタイミングチャートにおけるクロックの24サイクル目のBステージでは、データRAMエラー(SBE)が『L』である。またWID信号は、10となり、キャッシュミスの発生によりパイプラインが中断したことを示す。これは、2フロー目で、対象ラインが無効化されているためである。 In the B stage of the 24th cycle of the clock in the timing chart of FIG. 21, the data RAM error (SBE) is “L”. The WID signal is 10, indicating that the pipeline has been interrupted due to the occurrence of a cache miss. This is because the target line is invalidated in the second flow.
図21のタイミングチャートにおけるクロックの30〜37サイクルの期間では、パイプライン100は、キャッシュコントローラ200からMI要求を受け取り、L2キャッシュ400からロードしたデータが、対象ラインに書き込まれる。
In the period of 30 to 37 cycles of the clock in the timing chart of FIG. 21, the
図21のタイミングチャートにおけるクロックの40サイクル目では、パイプライン100は、キャッシュコントローラ200からINT要求を受け取る。INT要求により、図8で説明したように、フラグ信号ラッチに保持されていたフラグ信号が再投入される。図9で説明したように、RERUN−REQ信号は、INT要求に含まれるため、各ステージにあるフラグ信号ラッチを伝播する。よって、図21のタイミングチャートにおけるクロックの21〜25サイクルの期間においては、RERUN−REQ信号は『H』の状態を維持する。
In the 40th cycle of the clock in the timing chart of FIG. 21, the
図21のタイミングチャートにおけるクロックの43サイクル目では、SBE信号が『L』である。当該クロックの43サイクル目では、IBR−CE信号は『H』に遷移し、L2キャッシュ400からロードしたデータが、データバッファ5に供給される。よって、先のフローであるMI−2ndフローが再送要求によるものであり、且つ、キャッシュヒット及びエラーなしで、WAITされたフローであるという条件が成立して、44サイクルでは、WID信号が「71」になる。
In the 43rd cycle of the clock in the timing chart of FIG. 21, the SBE signal is “L”. In the 43rd cycle of the clock, the IBR-CE signal transits to “H”, and the data loaded from the
図21のタイミングチャートにおけるクロックの47〜51サイクルの期間では、RERUN−REQ信号は、INT要求に含まれ、各ステージにあるフラグ信号ラッチを伝播する。よって、当該47〜51サイクルの期間では、RERUN−REQ信号は『H』の状態を維持する。 In the period of 47 to 51 cycles of the clock in the timing chart of FIG. 21, the RERUN-REQ signal is included in the INT request and propagates through the flag signal latch in each stage. Therefore, the RERUN-REQ signal maintains the “H” state during the period of 47 to 51 cycles.
また、図9で説明したように、保持回路RWには、「WID=71」が保持される。そのため、投入されたINT要求は「WID=71」を含み、「WID=71」がデコードされることで、図21には示されないRERUN−2nd信号が『H』になる。 As described with reference to FIG. 9, “WID = 71” is held in the holding circuit RW. Therefore, the input INT request includes “WID = 71”, and “WID = 71” is decoded, so that the RERUN-2nd signal not shown in FIG. 21 becomes “H”.
RERUN−2nd信号が『H』になると、図21のタイミングチャートにおけるクロックの51サイクル目のRステージでは、図17で説明したように、WAIT信号が『L』になり、STV信号が『H』になる。よって、パイプライン100が再開されると共に、命令実行部4は、データバッファ5で保持されるデータを使用することが出来る。
When the RERUN-2nd signal becomes “H”, the WAIT signal becomes “L” and the STV signal becomes “H” in the R stage at the 51st cycle of the clock in the timing chart of FIG. become. Therefore, the
図21のタイミングチャートにおけるクロックの47サイクル目のPステージでは、『H』のRERUN−REQ信号を受け取ると、制御信号生成部50は、STV信号を出力することで、命令実行部4は、図21のタイミングチャートにおけるクロックの43サイクル目のBステージで受け取ったデータを使用することが出来る。
In the P stage of the 47th cycle of the clock in the timing chart of FIG. 21, upon receiving the “H” RERUN-REQ signal, the
このように、L2キャッシュからデータをロードすることで、エラーを回避すると、図21のタイミングチャートにおけるクロックの51サイクル目でSTV信号を生成することにより、命令実行部4は、図21のタイミングチャートにおけるクロックの43サイクル目で受け取ったデータを使用することが出来る。以上のように、STV信号と、RERUN信号を命令実行部4に供給することで、エラーチェック回路130のエラー検出を入力信号として有さなくても、L1キャッシュ20は、STV信号の機能を維持することが出来る。
Thus, if an error is avoided by loading data from the L2 cache, the
図22は、再送要求が発行されたときのパイプライン処理の一例を示すタイムチャートである。図22のタイミングチャートにおけるクロックの0〜38サイクルの期間においては、図22に示さないが、図20及び図21で説明した動作がなされる。 FIG. 22 is a time chart illustrating an example of pipeline processing when a retransmission request is issued. In the period of 0 to 38 cycles of the clock in the timing chart of FIG. 22, although not shown in FIG. 22, the operation described in FIGS. 20 and 21 is performed.
図22のタイミングチャートにおけるクロックの50サイクル目のBステージでは、SBE信号が『H』であるが、IBR−CE信号が『L』であるため、データバッファ5にデータは書き込まれない。これは、正常なデータが、既に43サイクルで命令実行部4に送られているからである。このように、命令実行部4に正常にデータが送られた後に、対象ラインにエラーが生じても、正常なデータは既に送信されているので、BIS要求による無効化や、MI要求によるL2キャッシュ400からのデータロードを行うことなく、処理を続行できる。
In the B stage of the 50th cycle of the clock in the timing chart of FIG. 22, the SBE signal is “H”, but the data is not written to the
2 命令部
3 実行部
4 命令実行部
5 データバッファ
10 演算処理装置
20 L1キャッシュ
25 優先回路
30 タグRAM
35 TLB
40 比較回路
50 制御信号生成部
100 パイプライン
110 クロック制御部
120 データRAM
130 エラーチェック回路
140 選択回路
150 再送要求生成部
180 制御部
190 L2オーダ保持部
195 L2要求保持部
200 キャッシュコントローラ
400 L2キャッシュ
500 主記憶装置
2
35 TLB
40
DESCRIPTION OF
Claims (6)
第1の記憶部から読み出したデータについてエラーの発生を検出するエラー検出部と、
第1の記憶部から読み出したデータを、ロード要求に基づいて格納する第2の記憶部と、
エラー検出部が、ロード要求により第1の記憶部から読み出したデータについて、エラーの発生を検出した場合、第1の記憶部へのロード要求の再送要求を、データのエラーが検出されたサイクルと同じサイクルにおいて生成する再送要求生成部と、
エラーが検出されたデータと再送要求が与えられたとき、第1の記憶部にロード要求を再送する命令実行部と、
を有することを特徴とする演算処理装置。 A first storage unit for storing data;
An error detection unit that detects the occurrence of an error in the data read from the first storage unit;
A second storage unit that stores data read from the first storage unit based on a load request;
When the error detection unit detects the occurrence of an error for the data read from the first storage unit by the load request, the request for resending the load request to the first storage unit is the cycle in which the data error is detected. A retransmission request generator that generates the same cycle;
An instruction execution unit that resends a load request to the first storage unit when an error is detected and a retransmission request is given;
An arithmetic processing apparatus comprising:
第1の記憶部は、クロックが供給されたときデータを出力することを特徴とする請求項1記載の演算処理装置。 The arithmetic processing unit further includes a clock control unit that supplies a clock to the first storage unit when a load request to the first storage unit is given,
The arithmetic processing unit according to claim 1, wherein the first storage unit outputs data when a clock is supplied.
第1の記憶部からロード要求によりデータを読み出すステップと、
演算処理装置が有するエラー検出部が、第1の記憶部から読み出したデータのエラーを検出するステップと、
エラー検出部が、ロード要求により第1の記憶部から読み出したデータについて、エラーの発生を検出した場合、記憶部へのロード要求の再送要求を、データのエラーが検出されたサイクルと同じサイクルにおいて生成するステップと、
演算処理装置が有する命令実行部が、エラーが検出されたデータと再送要求を受け取ったとき、命令実行部が、第1の記憶部にロード要求を再送するステップと、
を有することを特徴とする演算処理装置の制御方法。 In a control method for an arithmetic processing unit having a first storage unit and a second storage unit,
Reading data from the first storage in response to a load request;
An error detection unit included in the arithmetic processing unit detects an error in the data read from the first storage unit;
When the error detection unit detects the occurrence of an error in the data read from the first storage unit by the load request, the load request retransmission request to the storage unit is made in the same cycle as the cycle in which the data error is detected. Generating step;
When the instruction execution unit included in the arithmetic processing unit receives data in which an error is detected and a retransmission request, the instruction execution unit retransmits the load request to the first storage unit;
A control method for an arithmetic processing unit, comprising:
演算処理装置はさらに、クロック制御部を有し、
クロック制御部は、第1の記憶部に対するロード要求が与えられた場合、第1の記憶部へクロックを供給するステップを有することを特徴とする請求項4記載の演算処理装置の制御方法。 In the control method of the arithmetic processing unit,
The arithmetic processing unit further includes a clock control unit,
5. The method according to claim 4, wherein the clock control unit includes a step of supplying a clock to the first storage unit when a load request to the first storage unit is given.
ロード要求が再送された後、再送要求に基づくロード要求により第1の記憶部から読み出したデータについて、エラー検出部によりエラーを検出されなかった場合、再送要求に基づくロード要求により読み出したデータに対する使用許可信号を、命令実行部に出力するステップを有することを特徴とする請求項4又は5に記載の演算処理装置の制御方法。 The control method of the arithmetic processing unit is further
After the load request is retransmitted, if the error detection unit detects no error for the data read from the first storage unit by the load request based on the retransmission request, the data read by the load request based on the retransmission request is used. 6. The method according to claim 4, further comprising a step of outputting a permission signal to the instruction execution unit.
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009260950A JP5625329B2 (en) | 2009-11-16 | 2009-11-16 | Arithmetic processing device and control method of arithmetic processing device |
EP10191077A EP2323040A1 (en) | 2009-11-16 | 2010-11-12 | Processor and method of control of processor |
US12/946,278 US8621309B2 (en) | 2009-11-16 | 2010-11-15 | Processor and method of control of processor |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009260950A JP5625329B2 (en) | 2009-11-16 | 2009-11-16 | Arithmetic processing device and control method of arithmetic processing device |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2011107888A true JP2011107888A (en) | 2011-06-02 |
JP5625329B2 JP5625329B2 (en) | 2014-11-19 |
Family
ID=43608863
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009260950A Expired - Fee Related JP5625329B2 (en) | 2009-11-16 | 2009-11-16 | Arithmetic processing device and control method of arithmetic processing device |
Country Status (3)
Country | Link |
---|---|
US (1) | US8621309B2 (en) |
EP (1) | EP2323040A1 (en) |
JP (1) | JP5625329B2 (en) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9652560B1 (en) * | 2011-07-18 | 2017-05-16 | Apple Inc. | Non-blocking memory management unit |
JP6711167B2 (en) * | 2016-06-22 | 2020-06-17 | 富士通株式会社 | Arithmetic processing device and method for controlling arithmetic processing device |
CN111736903B (en) * | 2020-08-03 | 2021-01-19 | 南京万形电气有限公司 | Synchronous acquisition and processing method for low-voltage power grid state information |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0241537A (en) * | 1988-08-02 | 1990-02-09 | Nec Corp | Cache memory controller |
JPH06119245A (en) * | 1992-10-01 | 1994-04-28 | Mitsubishi Electric Corp | Cache memory |
JPH09128295A (en) * | 1995-10-27 | 1997-05-16 | Hitachi Ltd | Semiconductor memory and data processor |
JP2002007210A (en) * | 2000-06-05 | 2002-01-11 | Samsung Electronics Co Ltd | Digital data processing system, integrated circuit cache memory device used for the same, and operation method for cache memory |
JP2005182749A (en) * | 2003-12-18 | 2005-07-07 | Arm Ltd | Cache memory and its error correction method |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6324428A (en) * | 1986-07-17 | 1988-02-01 | Mitsubishi Electric Corp | Cache memory |
US6332181B1 (en) * | 1998-05-04 | 2001-12-18 | International Business Machines Corporation | Recovery mechanism for L1 data cache parity errors |
US6802039B1 (en) * | 2000-06-30 | 2004-10-05 | Intel Corporation | Using hardware or firmware for cache tag and data ECC soft error correction |
JP2004171177A (en) * | 2002-11-19 | 2004-06-17 | Renesas Technology Corp | Cache system and cache memory controller |
US7353445B1 (en) * | 2004-12-10 | 2008-04-01 | Sun Microsystems, Inc. | Cache error handling in a multithreaded/multi-core processor |
US20080065873A1 (en) * | 2006-09-11 | 2008-03-13 | Ronald Hall | Dynamic livelock resolution with variable delay memory access queue |
US8131980B2 (en) * | 2006-09-11 | 2012-03-06 | International Business Machines Corporation | Structure for dynamic livelock resolution with variable delay memory access queue |
US7975172B2 (en) * | 2008-08-14 | 2011-07-05 | International Business Machines Corporation | Redundant execution of instructions in multistage execution pipeline during unused execution cycles |
-
2009
- 2009-11-16 JP JP2009260950A patent/JP5625329B2/en not_active Expired - Fee Related
-
2010
- 2010-11-12 EP EP10191077A patent/EP2323040A1/en not_active Withdrawn
- 2010-11-15 US US12/946,278 patent/US8621309B2/en not_active Expired - Fee Related
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0241537A (en) * | 1988-08-02 | 1990-02-09 | Nec Corp | Cache memory controller |
JPH06119245A (en) * | 1992-10-01 | 1994-04-28 | Mitsubishi Electric Corp | Cache memory |
JPH09128295A (en) * | 1995-10-27 | 1997-05-16 | Hitachi Ltd | Semiconductor memory and data processor |
JP2002007210A (en) * | 2000-06-05 | 2002-01-11 | Samsung Electronics Co Ltd | Digital data processing system, integrated circuit cache memory device used for the same, and operation method for cache memory |
JP2005182749A (en) * | 2003-12-18 | 2005-07-07 | Arm Ltd | Cache memory and its error correction method |
Also Published As
Publication number | Publication date |
---|---|
JP5625329B2 (en) | 2014-11-19 |
US20110119535A1 (en) | 2011-05-19 |
US8621309B2 (en) | 2013-12-31 |
EP2323040A1 (en) | 2011-05-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9513904B2 (en) | Computer processor employing cache memory with per-byte valid bits | |
US9268708B2 (en) | Level one data cache line lock and enhanced snoop protocol during cache victims and writebacks to maintain level one data cache and level two cache coherence | |
TW591384B (en) | Method and system for speculatively invalidating lines in a cache | |
US9390011B2 (en) | Zero cycle clock invalidate operation | |
US7117290B2 (en) | MicroTLB and micro tag for reducing power in a processor | |
US9286172B2 (en) | Fault-aware mapping for shared last level cache (LLC) | |
US7447844B2 (en) | Data processing system, processor and method of data processing in which local memory access requests are serviced on a fixed schedule | |
US8977821B2 (en) | Parallel processing of multiple block coherence operations | |
US9720847B2 (en) | Least recently used (LRU) cache replacement implementation using a FIFO storing indications of whether a way of the cache was most recently accessed | |
JP2005108222A (en) | Data processing apparatus and method for handling corrupted data value | |
US20100268984A1 (en) | Delete Of Cache Line With Correctable Error | |
US9081693B2 (en) | Data type dependent memory scrubbing | |
US20090019306A1 (en) | Protecting tag information in a multi-level cache hierarchy | |
JP2012128842A (en) | Device and method for direct access to cache memory | |
US6240489B1 (en) | Method for implementing a pseudo least recent used (LRU) mechanism in a four-way cache memory within a data processing system | |
JP5669734B2 (en) | Effective load cue snooping | |
JP5625329B2 (en) | Arithmetic processing device and control method of arithmetic processing device | |
US5854943A (en) | Speed efficient cache output selector circuitry based on tag compare and data organization | |
JP2007058349A (en) | Cache system | |
JP2004030527A (en) | Storage controller and storage control method | |
TW200304619A (en) | Method and apparatus for detecting pipeline address conflict using compare of byte addresses | |
US6965962B2 (en) | Method and system to overlap pointer load cache misses | |
US6976130B2 (en) | Cache controller unit architecture and applied method | |
CN111352757A (en) | Apparatus, system, and method for detecting uninitialized memory reads | |
JP2010282520A (en) | System, apparatus and method for controlling coherency |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20120720 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20130829 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20130910 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20140401 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20140701 |
|
A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20140708 |
|
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: 20140902 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20140915 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5625329 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |