JP2011107888A - Arithmetic processor and method for controlling arithmetic processor - Google Patents

Arithmetic processor and method for controlling arithmetic processor Download PDF

Info

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
Application number
JP2009260950A
Other languages
Japanese (ja)
Other versions
JP5625329B2 (en
Inventor
Yuji Shirohige
祐治 白髭
Ryuichi Sunayama
竜一 砂山
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2009260950A priority Critical patent/JP5625329B2/en
Priority to EP10191077A priority patent/EP2323040A1/en
Priority to US12/946,278 priority patent/US8621309B2/en
Publication of JP2011107888A publication Critical patent/JP2011107888A/en
Application granted granted Critical
Publication of JP5625329B2 publication Critical patent/JP5625329B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0844Multiple simultaneous or quasi-simultaneous cache accessing
    • G06F12/0855Overlapped cache accessing, e.g. pipeline
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding 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/1064Adding 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

<P>PROBLEM TO BE SOLVED: To speed up load operation concerning an arithmetic processor and a method for controlling the arithmetic processor. <P>SOLUTION: The arithmetic processor includes: a first storage part that stores data; an error detection part that detects an occurrence of error in data read out from the first storage part; a second storage part that stores data read out from the first storage part based on a load request; a rerun request generation part that generates a rerun request of a load request to the first storage part in the same cycle as the cycle in which error of data is detected when the error detection part detects the occurrence of error in data read out from the first storage part by the load request; and an instruction execution part that retransmits the load request to the first storage part when data in which error is detected and a rerun request are given. <P>COPYRIGHT: (C)2011,JPO&INPIT

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.

特開2004−171177号公報JP 2004-171177 A

データ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.

演算処理装置の構成の一例を示す図である。It is a figure which shows an example of a structure of an arithmetic processing unit. 命令部及びL1キャッシュの一例を示す図である。It is a figure which shows an example of a command part and L1 cache. パイプラインへのデータ要求の遷移の一例を示す図である。It is a figure which shows an example of the transition of the data request | requirement to a pipeline. 優先制御を規定する真理値表の一例を示す図である。It is a figure which shows an example of the truth table which prescribes | regulates priority control. L1キャッシュ内のアドレス制御処理の実行手順の一例を示す図である。It is a figure which shows an example of the execution procedure of the address control process in L1 cache. L1キャッシュ内のアドレス制御処理の実行手順の一例を示す図である。It is a figure which shows an example of the execution procedure of the address control process in L1 cache. L1キャッシュ内のアドレス制御処理の実行手順の一例を示す図である。It is a figure which shows an example of the execution procedure of the address control process in L1 cache. L1キャッシュ内のフラグ制御処理の実行手順の一例を示す図である。It is a figure which shows an example of the execution procedure of the flag control process in L1 cache. パイプライン制御に使用されるフラグ信号の一例を示す図である。It is a figure which shows an example of the flag signal used for pipeline control. 保持回路に保持されるフラグ信号選択の優先順位を規定する真理値表の一例を示す図である。It is a figure which shows an example of the truth table which prescribes | regulates the priority of the flag signal selection hold | maintained at a holding circuit. TLBの一例を示す図である。It is a figure which shows an example of TLB. タグRAMの一例を示す図である。It is a figure which shows an example of tag RAM. データRAMの一例を示す図である。It is a figure which shows an example of data RAM. クロック制御部の一例を示す図である。It is a figure which shows an example of a clock control part. エラーチェック回路の一例を示す図である。It is a figure which shows an example of an error check circuit. 再送要求生成部の一例を示す図である。It is a figure which shows an example of a resending request production | generation part. 制御信号生成部の一例を示す図である。It is a figure which shows an example of a control signal generation part. パイプラインのVALID信号処理の一例を示す図である。It is a figure which shows an example of the VALID signal processing of a pipeline. 演算処理装置の回路配置の一例を示す図である。It is a figure which shows an example of circuit arrangement | positioning of an arithmetic processing unit. 再送要求が発行されたときのパイプライン処理の一例を示すタイムチャートである。It is a time chart which shows an example of the pipeline process when a resending request | requirement is issued. 再送要求が発行されたときのパイプライン処理の一例を示すタイムチャートである。It is a time chart which shows an example of the pipeline process when a resending request | requirement is issued. 再送要求が発行されたときのパイプライン処理の一例を示すタイムチャートである。It is a time chart which shows an example of the pipeline process when a resending request | requirement is issued.

以下、図面を参照して、演算処理装置としてのプロセッサの実施形態を説明する。図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 arithmetic processing apparatus 10 illustrated in FIG. 1 includes an instruction execution unit 4 and an L1 cache 20. The instruction execution unit 4 includes a decoding unit 2 and an execution unit 3. An example of the L1 cache 20 will be described later with reference to FIG.

デコード部2は、「データ要求信号」をL1キャッシュ20に供給して、「命令」を読み出す。デコード部2は、L1キャッシュ20から読み出した「命令(オペコード:opcode)」をデコード(解読)して、命令のデコード結果及び命令の実行対象である被演算数等のオペランド(operand)が格納されたレジスタアドレスを「演算制御信号」として、実行部3に供給する。デコード対象の命令としては、例えば、L1キャッシュ20へのロード命令、ストア命令などである。   The decoding unit 2 supplies the “data request signal” to the L1 cache 20 and reads the “instruction”. The decoding unit 2 decodes (decodes) the “instruction (opcode)” read from the L1 cache 20 and stores the operand (operand) such as the instruction decoding result and the number of operands to be executed by the instruction. The registered address is supplied to the execution unit 3 as an “operation control signal”. Examples of instructions to be decoded include a load instruction to the L1 cache 20 and a store instruction.

実行部3は、実行部3の内部にあるレジスタファイルにおいて、レジスタアドレスで特定されるレジスタからオペランドであるデータを取り出し、デコードした命令に従ってデータを演算する。実行部3は、デコードされた命令を実行することにより、「データ要求信号」として、を、L1キャッシュ20に供給する。「データ要求信号」は、以下「EXT要求」と呼ばれる。「EXT要求」には、ロード命令、ストア命令、及びプリフェッチ命令等がある。   The execution unit 3 extracts data as an operand from a register specified by a register address in a register file inside the execution unit 3, and calculates data according to the decoded instruction. The execution unit 3 supplies the L1 cache 20 as a “data request signal” by executing the decoded instruction. The “data request signal” is hereinafter referred to as “EXT request”. The “EXT request” includes a load instruction, a store instruction, a prefetch instruction, and the like.

L1キャッシュ20は、例えば、ロード命令に従って、要求されたデータを実行部3に供給する。実行部3は、命令の実行を終了すると、次の演算制御信号を受け取るために、「演算完了信号」をデコード部2に供給する。   For example, the L1 cache 20 supplies the requested data to the execution unit 3 in accordance with a load instruction. When the execution unit 3 finishes executing the instruction, the execution unit 3 supplies an “operation completion signal” to the decoding unit 2 in order to receive the next operation control signal.

L1キャッシュ20は、L2キャッシュ400の上位階層のメモリであり、L2キャッシュ400が保持するデータの一部をキャッシュしている。すなわち、L2キャッシュ400は、L1キャッシュ20がキャッシュするデータを包含して保持している。L2キャッシュ400は、主記憶装置500の上位階層のメモリであり、主記憶装置500が保持するデータの一部をキャッシュしている。すなわち、主記憶装置500は、L2キャッシュ200及びL1キャッシュ20の双方がキャッシュするデータを包含して保持している。   The L1 cache 20 is an upper layer memory of the L2 cache 400 and caches a part of the data held by the L2 cache 400. That is, the L2 cache 400 includes and holds data cached by the L1 cache 20. The L2 cache 400 is a higher-level memory of the main storage device 500 and caches a part of data held by the main storage device 500. That is, the main storage device 500 includes and holds data cached by both the L2 cache 200 and the L1 cache 20.

デコード部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 decoding unit 2 or the execution unit 3 in the memory exists in the L1 cache 20 is hereinafter referred to as “cache hit”. Hereinafter, the case where the instruction or data accessed by the decoding unit 2 or the execution unit 3 does not exist in the L1 cache 20 is referred to as “cache miss”. When a cache miss occurs, control is performed to read the cache-missed data from the L2 cache 400 or the main storage device 500 in the lower hierarchy of the L1 cache 20 to the L1 cache 20.

図2は、L1キャッシュの一例を示す図である。命令実行部4は、データバッファ5を有する。データバッファ5は、L1キャッシュ20から読み出した命令を保持するバッファである。   FIG. 2 is a diagram illustrating an example of the L1 cache. The instruction execution unit 4 has a data buffer 5. The data buffer 5 is a buffer that holds an instruction read from the L1 cache 20.

L1キャッシュ20は、キャッシュコントローラ200、クロック制御部110、データRAM120、エラーチェック回路130、選択回路140、再送要求生成部150、制御部180、L2オーダ保持部190、L2要求保持部195を有する。キャッシュコントローラ200は、パイプライン100、及び制御部180を有する。   The L1 cache 20 includes a cache controller 200, a clock control unit 110, a data RAM 120, an error check circuit 130, a selection circuit 140, a retransmission request generation unit 150, a control unit 180, an L2 order holding unit 190, and an L2 request holding unit 195. The cache controller 200 includes a pipeline 100 and a control unit 180.

パイプライン100は、Translation Look−aside Buffer(TLB)35、タグRAM30、比較回路40、及び制御信号生成部50を有する。   The pipeline 100 includes a translation look-aside buffer (TLB) 35, a tag RAM 30, a comparison circuit 40, and a control signal generation unit 50.

命令実行部4は、データバッファ5を有する。データバッファ5は、選択回路140から供給されたデータを保持する。   The instruction execution unit 4 has a data buffer 5. The data buffer 5 holds the data supplied from the selection circuit 140.

パイプライン100は、優先回路25、タグRAM30、TLB35、比較回路40を含む。パイプライン100に含まれる上記の構成要素は、複数のステージにそれぞれ割り当てられる。例えば、優先回路25は、「P(Priority)ステージ」に割り当てられ、タグRAM30及びTLB35は、「T(Tag)ステージ」に割り当てられ、比較回路40は、「M(Match)ステージ」に割り当てられる。パイプライン100の一例は、図5、図7、及び図8を用いて後述される。   The pipeline 100 includes a priority circuit 25, a tag RAM 30, a TLB 35, and a comparison circuit 40. The above-described components included in the pipeline 100 are assigned to a plurality of stages, respectively. For example, the priority circuit 25 is assigned to the “P (Priority) stage”, the tag RAM 30 and the TLB 35 are assigned to the “T (Tag) stage”, and the comparison circuit 40 is assigned to the “M (Match) stage”. . An example of the pipeline 100 will be described later with reference to FIGS. 5, 7, and 8.

クロック制御部110は、データRAM120が保持するデータに対するアクセス要求がある場合等のデータRAM120にクロックを供給する必要が有る場合に、データRAM120に対してクロックを供給する。クロック制御部110の詳細は、図14を用いて、後述される。   The clock control unit 110 supplies a clock to the data RAM 120 when it is necessary to supply a clock to the data RAM 120 such as when there is an access request for data held by the data RAM 120. Details of the clock control unit 110 will be described later with reference to FIG.

TLB35、タグRAM30、データRAM120、及びエラーチェック回路130の詳細は、それぞれ、図11、図12、図13、及び図15を用いて後述される。   Details of the TLB 35, the tag RAM 30, the data RAM 120, and the error check circuit 130 will be described later with reference to FIGS. 11, 12, 13, and 15, respectively.

比較回路40は、TLB35から供給された絶対アドレスと、タグRAM30から供給された絶対アドレスとを比較して、2つのタグが一致するか否かを判定する回路である。比較回路40は、TLB35から供給されたタグと、タグRAM30から供給されたタグとが一致する場合、選択回路140に、キャッシュヒットが生じたウェイを特定するタグヒットウェイ信号を供給する。   The comparison circuit 40 is a circuit that compares the absolute address supplied from the TLB 35 with the absolute address supplied from the tag RAM 30 and determines whether the two tags match. When the tag supplied from the TLB 35 and the tag supplied from the tag RAM 30 match, the comparison circuit 40 supplies the selection circuit 140 with a tag hit way signal that identifies the way in which the cache hit has occurred.

L2要求保持部195は、L2キャッシュ400からデータをロードする場合に用いられる要求を保持する。   The L2 request holding unit 195 holds a request used when loading data from the L2 cache 400.

L2オーダ保持部190は、L2キャッシュ400からキャッシュラインを削除する処理がなされた場合に、L1キャッシュ20において相当するキャッシュラインのエントリを削除する要求を保持する。以下、この削除要求を、「L2オーダ」と呼ぶ。L2オーダ保持部190からデキューしたL2オーダは、後述されるP(Priority)サイクルオーダアドレスレジスタ(PSXR)に保持される。   The L2 order holding unit 190 holds a request to delete a corresponding cache line entry in the L1 cache 20 when a process of deleting a cache line from the L2 cache 400 is performed. Hereinafter, this deletion request is referred to as “L2 order”. The L2 order dequeued from the L2 order holding unit 190 is held in a P (Priority) cycle order address register (PSXR) described later.

再送要求生成部150、及び制御信号生成部50は、それぞれ、図16、及び図17を用いて、後述される。制御部180は、キャッシュエラーが生じると、L2キャッシュ400にデータをロードし、L1キャッシュにロードしたデータをストアする処理を行う。   The retransmission request generation unit 150 and the control signal generation unit 50 will be described later with reference to FIGS. 16 and 17, respectively. When a cache error occurs, the control unit 180 loads data into the L2 cache 400 and stores the loaded data into the L1 cache.

図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 priority circuit 25 is accepting a request signal. A state S103 indicates a state in which the priority circuit 25 waits for a request to be input to the TLB 35, the tag RAM 30, and the clock control unit 110 in the next stage.

優先回路25は、上記した4種の要求を受け取り(T102)、要求投入待ち状態(S103)になると、優先回路25は、図4に示す真理値表に従って、次ステージに供給する要求を選択する。図3に示した状態S101、S103は、要求種別毎に用意されたラッチ回路で実装される。状態S101から状態S103への遷移T102は、要求を優先回路25に設定することにより生じる。状態S103から状態S101への遷移T104は、要求を次ステージに供給することにより生じる。   When the priority circuit 25 receives the above four types of requests (T102) and enters the request input waiting state (S103), the priority circuit 25 selects a request to be supplied to the next stage according to the truth table shown in FIG. . The states S101 and S103 shown in FIG. 3 are implemented by a latch circuit prepared for each request type. The transition T102 from the state S101 to the state S103 occurs when a request is set in the priority circuit 25. Transition T104 from state S103 to state S101 occurs by supplying a request to the next stage.

図2に示す優先回路25は、EXT要求、BIS要求、MI要求、INT要求を受け取り、所定の優先順位に基づいてそれらの要求を選択し、且つ選択した要求を次ステージのTLB35、タグRAM30、クロック制御部110に供給する。   The priority circuit 25 shown in FIG. 2 receives an EXT request, a BIS request, an MI request, and an INT request, selects those requests based on a predetermined priority order, and selects the selected request as a TLB 35, a tag RAM 30, This is supplied to the clock controller 110.

EXT要求は、命令実行部4から与えられる要求である。ロード要求、ストア要求、プリフェッチ要求などのメモリアクセス要求が含まれる。   The EXT request is a request given from the instruction execution unit 4. Memory access requests such as load requests, store requests, and prefetch requests are included.

BIS要求は、L2キャッシュ400から与えられる、L1キャッシュ20のラインを消す要求である。BIS要求は、データRAM120にエラーが検出された場合、エラーに係るラインを消す場合に要求される。   The BIS request is a request for deleting the line of the L1 cache 20 given from the L2 cache 400. The BIS request is requested when an error is detected in the data RAM 120 and a line related to the error is deleted.

MI要求は、キャッシュコントローラ200から与えられる、データRAMにL2キャッシュ400からロードしたデータを書き込む要求である。MI要求は、BIS要求がなされた後に、対象となるラインに対して行われる。   The MI request is a request for writing the data loaded from the L2 cache 400 to the data RAM, which is given from the cache controller 200. The MI request is made to the target line after the BIS request is made.

INT要求は、EXT要求が、パイプライン100を停止した後で、停止前のデータを用いて、所定の処理を実行するためにパイプライン100から与えられる要求である。   The INT request is a request given from the pipeline 100 in order to execute a predetermined process using the data before the stop after the EXT request stops the pipeline 100.

図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 priority circuit 25 inputs the request to the next stage in accordance with the priority of MI request> MIS request> INT request> EXT request (indicating that the priority of the larger request indicated by the inequality sign is higher).

図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 L1 cache 20 shown in FIG. 2 are pipeline stages “P (Priority)”, “T (Tag)”, “M (Match)”, “B (Branch)”, “ R (Result) "and" R1 ". The clock cycle is set based on the longest time among the processing times required for each stage of the pipeline. Thereby, all the stages operate in the same cycle time in synchronization with the clock.

「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 tag RAM 30. MIAAR (Move In Absolute Address Register) is a register that holds a physical address of data to be written to the tag RAM 30 when a cache miss occurs. The cache controller 200 sends an MI (Move In) request for requesting the data of the physical address held in the MIAAR to the L2 cache 400 via the L2 request holding unit 195. Data acquired from the L2 cache 400 is written into the tag RAM 30 in response to an MI request.

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 comparison circuit 40, the cache controller 200 reports an error to the L2 cache 400. When an error is reported, the L2 cache 400 issues a request to delete the entry of the cache line in which the error has occurred. This request is called “L2 order”. When the L1 cache 20 receives the L2 order via the L2 order holding unit 190, the L1 cache 20 erases the line in response to the BIS request. The control unit 180 notifies the L2 cache 400 that the line has been erased.

Tステージは、TLB35及びタグRAM30を含む。クロック制御部110は、パイプライン100には含まれないが、P又はTステージのサイクルで処理を行う。   The T stage includes a TLB 35 and a tag RAM 30. The clock control unit 110 is not included in the pipeline 100, but performs processing in a P or T stage cycle.

Mステージは、選択回路140を含む。データRAM120は、パイプライン100には含まれないが、Mステージのサイクルで動作する。Bステージは、エラーチェック回路130、優先回路25、再送要求生成部150を含む。Rステージは、データバッファ5に要求を供給する回路を含む。   The M stage includes a selection circuit 140. The data RAM 120 is not included in the pipeline 100, but operates in an M stage cycle. The B stage includes an error check circuit 130, a priority circuit 25, and a retransmission request generation unit 150. The R stage includes a circuit that supplies a request to the data buffer 5.

Pステージでは、優先回路25は、図3に示す真理値表の優先順位に従って、Pステージで選択されたEXT、BIS、INT、MIのいずれかの要求が、TLB35及びタグRAM30に供給される。   At the P stage, the priority circuit 25 supplies one of the EXT, BIS, INT, and MI requests selected at the P stage to the TLB 35 and the tag RAM 30 in accordance with the priority order of the truth table shown in FIG.

図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 clock control unit 110 and the retransmission request generation unit 150 among the components of the L1 cache 20 shown in FIG.

制御信号生成部50が、エラーチェック回路130によるエラー検出信号を受け取って、上記のSTV信号を出力する構成とする場合、制御信号生成部50は、エラーチェック回路130の後段に配置される。制御信号生成部50は、図19で後述されるように、パイプライン100内に配置され、データRAM120の近傍に配置されない。よって、データRAM120と制御信号生成部50との間の伝送路が長いために、制御信号生成部50は、Mステージではなく、Bステージに配置される。さらに、エラーチェック回路130は、Mステージに配置される。   When the control signal generation unit 50 is configured to receive the error detection signal from the error check circuit 130 and output the STV signal, the control signal generation unit 50 is disposed at the subsequent stage of the error check circuit 130. As will be described later with reference to FIG. 19, the control signal generation unit 50 is disposed in the pipeline 100 and is not disposed in the vicinity of the data RAM 120. Therefore, since the transmission path between the data RAM 120 and the control signal generation unit 50 is long, the control signal generation unit 50 is arranged not at the M stage but at the B stage. Further, the error check circuit 130 is arranged at the M stage.

そのため、エラーチェック回路130の前段に配置されるデータRAM120は、図5に示したようにMステージへの配置ではなく、Tステージに配置される。結果として、クロック制御部110を優先回路25と、データRAM120との間に配置することが出来なくなる。   Therefore, the data RAM 120 arranged in the previous stage of the error check circuit 130 is arranged in the T stage, not in the M stage as shown in FIG. As a result, the clock control unit 110 cannot be disposed between the priority circuit 25 and the data RAM 120.

以上のように、演算処理装置10は、エラーチェック回路130の後段に、制御信号生成部50ではなく、再送要求生成部150を設けることで、データRAM120へのクロック制御を行うクロック制御部110を設けることが出来る。クロック制御部110は、データRAM120が保持するデータに対するアクセスが無いとき、データRAMへクロックを供給しないため、クロック制御部110を設けることで、演算処理装置10は、その消費電力を低減できる。   As described above, the arithmetic processing device 10 includes the retransmission request generation unit 150 instead of the control signal generation unit 50 in the subsequent stage of the error check circuit 130, thereby allowing the clock control unit 110 that performs clock control to the data RAM 120 to be performed. Can be provided. Since the clock control unit 110 does not supply a clock to the data RAM when there is no access to the data held in the data RAM 120, the arithmetic processing unit 10 can reduce the power consumption by providing the clock control unit 110.

図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 data RAM 120 operates at the T stage. The error detected from the error check circuit 130 is received by the retransmission request generation unit 150 outside the pipeline 100, and the retransmission request generation unit 150 can be placed in the M stage by generating a retransmission request. . Therefore, the error check circuit 130 and the retransmission request generation unit 150 in the subsequent stage of the data RAM 120 can be arranged in the M stage, and the STV signal and the RERUN signal can be transmitted in the B stage. Therefore, the R stage for transmitting the STV signal or RERUN signal as shown in FIGS. 5 and 6 can be eliminated.

このように、図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 arithmetic processing unit 10 changes to the pipeline control shown in FIG. Cycle time (operating frequency) can be improved.

図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 INVERTER 101, a flag signal latch TFLAG (Tag FLAG), MFLAG (Match FLAG), BFLAG (Branch FLAG), RFFLAG (Register FLAG), and a priority circuit 102.

「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 INVERTER 101 which is a negative circuit. The WAIT signal is a signal for stopping the operation of the pipeline 100, and is generated by the control signal generation unit 50 shown in FIG. Therefore, when the WAIT signal for stopping the pipeline operation becomes “H”, the flag signal is written to the flag signal latch. The conditions for generating the WAIT signal by the control signal generator 50 will be described later with reference to FIG.

優先回路25が、受け取った要求のいずれかを、パイプライン100に投入すると、フラグ信号は、クロック信号の入力とともにTFLAG、MFLAG、BFLAG、RFLAGの順に移動する。しかし、パイプライン処理の停止信号であるWAIT信号が、INVERTER101に供給されると、各フラグ信号ラッチが、フラグ信号を、クロック信号の入力とともに各ステージに対応した保持回路TW、MW、BW、RWに格納する。   When the priority circuit 25 inputs one of the received requests to the pipeline 100, the flag signal moves in the order of TFLAG, MFLAG, BFLAG, and RFFLAG along with the input of the clock signal. However, when a WAIT signal, which is a pipeline processing stop signal, is supplied to the INVERTER 101, each flag signal latch outputs the flag signal to the holding circuit TW, MW, BW, RW corresponding to each stage together with the input of the clock signal To store.

一旦パイプライン停止状態になったあと、パイプラインを再開するときには保持回路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 flag signal 1101 is a signal held in TFLAG, MFLAG, BFLAG, and RFFLAG. The flag signal 1101 includes a “VALID” signal, a “port ID” signal, a “pipe ID” signal, a “command part ID” signal, a “retransmission request instruction” signal, and a “retransmission request second time” signal.

『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 instruction execution unit 4 to which the request is returned. The “instruction ID” signal is attached to the EXT request when the instruction execution unit 4 supplies the EXT request to the L1 cache 20.

再送要求指示であるRERUN−REQ信号は、再送要求であるRERUN信号を受け取った命令実行部4が、パイプライン100に供給する信号である。   The RERUN-REQ signal that is a retransmission request instruction is a signal that is supplied to the pipeline 100 by the instruction execution unit 4 that has received the RERUN signal that is a retransmission request.

再送要求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 data buffer 5 in the previous flow, and the current flow is a flow that returns an STV signal. Show. Therefore, the pipeline 100 decodes the WID signal received together with the INT request, thereby setting the RERUN-2nd signal to “H” and flowing the RERUN-2nd signal to each stage of the pipeline as one of the flag signals.

フラグ信号1102は、TW、MW、及BWに保持されるフラグ信号である。フラグ信号1102が含む属性又は識別情報は、上記したVALID、ポートID、パイプID、及び命令部IDである。フラグ信号1103は、RWに保持されるフラグ信号である。フラグ信号1103が含む属性又は識別情報は、上記したVALID、ポートID、パイプID、命令部ID、及びWIDである。   A flag signal 1102 is a flag signal held in TW, MW, and BW. The attribute or identification information included in the flag signal 1102 is the above-described VALID, port ID, pipe ID, and instruction part ID. The flag signal 1103 is a flag signal held in the RW. The attribute or identification information included in the flag signal 1103 is the above-described VALID, port ID, pipe ID, command unit ID, and WID.

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 pipeline 100 waits until data is loaded from the L2 cache 400 to the L1 cache 20. “WID = 60” indicates that the pipeline is interrupted due to a TLB miss. “WID = 70” indicates that the pipeline is interrupted due to a cache error. “WID = 71” indicates that the first flow having received the retransmission request is completed without a cache hit and an error.

図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 priority circuit 102 selects the flag signal held in the flag signal address according to the truth table 1200 shown in FIG. “*” In the truth table 1000 indicates a don't care that is not related to priority determination. “0” in the truth table 1200 indicates that the flag signal is held in the holding circuit. “1” in the truth table 1200 indicates that the flag signal is not held in the holding circuit.

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 priority circuit 102 as shown in the row L1201. The flag signal held in BW is selected by priority circuit 102 when there is no flag signal in RW, as shown in row L1202. The flag signal held in the MW is selected by the priority circuit 102 when there is no flag signal in the BW and RW as shown in the row L1203. The flag signal held in the TW is selected by the priority circuit 102 when there is no flag signal in the MW, BW, and RW, as shown in the row L1203.

図11は、TLBの一例を示す図である。TLB35は、M(Mは、整数)個のエントリがあり、各エントリには、エントリが有効か否かを示す有効ビット(Valid)、仮想アドレス(VA)、絶対アドレス(AA)を含む。TLB35は、比較部36でアクセスに使われる仮想アドレスと格納されている仮想アドレスのマッチをとって一致したエントリを選択するエントリ選択信号を出力する。選択部37は、エントリ選択信号によって選択されたエントリに保持される絶対アドレスを出力する。出力された絶対アドレスは、選択回路140に供給される。   FIG. 11 is a diagram illustrating an example of a TLB. The TLB 35 has M (M is an integer) entries, and each entry includes a valid bit (Valid) indicating whether the entry is valid, a virtual address (VA), and an absolute address (AA). The TLB 35 outputs an entry selection signal for selecting a matching entry by matching the virtual address used for access by the comparison unit 36 with the stored virtual address. The selection unit 37 outputs an absolute address held in the entry selected by the entry selection signal. The output absolute address is supplied to the selection circuit 140.

実際にタグマッチに使う仮想アドレスは、ページサイズに応じて所定の下位部分がタグマッチには使用されないこととなる。例えば、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 TLB 35, the TLB 35 supplies a TLB hit signal to the control signal generation unit 50 and the retransmission request generation unit 150.

図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 tag RAM 30 has N (N is an integer) entries, and each entry includes a valid bit (Valid) indicating whether the entry is valid and an absolute address (AA). The decoder 31 of the tag RAM 30 selects an entry by decoding an access address (for example, <13: 7>) that is a part of a 64-bit virtual address. The tag RAM 30 outputs an absolute address from the selected entry. In the case of a set associative cache memory in which the tag RAM has a plurality of ways and an entry of each way is selected for one index, the absolute addresses are output by the number of ways. The output absolute address is output to the selection circuit 140.

図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 data RAM 120 has the same N entries (N is a positive integer) as the tag RAM, and each entry includes data and a parity bit of the data. The decoder 41 of the data RAM 120 decodes an access address that is the same as the access address supplied to the tag RAM 30 and selects an entry. The data RAM 120 outputs data from the selected entry. The output data is supplied to the error check circuit 130 and the selection circuit 140.

データRAM120は、1ラインのデータ幅を確保するために1個のRAMで足りないときは、1ウェイを構成するのに複数のRAMを用いることもある。例えば、4個のRAMが1つのウェイを構成し、ウェイの数が2つある場合、RAMは、4x2=8個必要になる。   The data RAM 120 may use a plurality of RAMs to form one way when one RAM is not enough to secure the data width of one line. For example, if four RAMs form one way and there are two ways, 4 × 2 = 8 RAMs are required.

図14は、クロック制御部の一例を示す図である。クロック制御部110は、OR回路111、ラッチ回路112、及びクロックバッファ113を有する。   FIG. 14 is a diagram illustrating an example of the clock control unit. The clock control unit 110 includes an OR circuit 111, a latch circuit 112, and a clock buffer 113.

OR回路111は、REQ−VAL(REQust―VALid信号、MI−HLD(Move In−HoLD)信号、INT−HLD(INTerrupt−HoLD)信号を受け取り、何れかの信号が『H』であれば、ラッチ回路112を介して後段のクロックバッファ113にEnable信号を供給する。何れの信号も『L』のときは、Enable信号は、クロックバッファ113に供給されない。   The OR circuit 111 receives REQ-VAL (REQust-VALid signal, MI-HLD (Move In-HoLD) signal, INT-HLD (INTrupt-HoLD) signal, and latches if any signal is “H”. The Enable signal is supplied to the subsequent clock buffer 113 via the circuit 112. When any signal is “L”, the Enable signal is not supplied to the clock buffer 113.

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 instruction execution unit 4. The MI-HLD signal is a signal that becomes “H” when the MI request is in the request input waiting state (S103) of FIG. The INT-HLD signal is a signal that becomes “H” when the INT request is in the request input waiting state (S103) of FIG.

クロックバッファ113は、入力されるEnable信号と、クロックとのAND回路(論理積回路)の出力が『H』になると、データRAM120にクロックを印加する。   The clock buffer 113 applies a clock to the data RAM 120 when the output of the AND signal (logical product circuit) of the Enable signal input and the clock becomes “H”.

このように、クロック制御部110は、REQ−VAL信号、MI−HLD信号、INT−HLD信号のいずれかが『H』のときはデータRAM120にクロックが印加され、いずれの信号も『L』のときはデータRAM120にクロックが印加されない。よって、優先回路25に、EXT要求、INT要求、MI要求のいずれかが供給された場合、クロック制御部110は、データRAM120にクロックを供給し、上記要求がいずれも供給されていない場合、データRAM120にクロックを供給しない。   Thus, the clock controller 110 applies the clock to the data RAM 120 when any of the REQ-VAL signal, the MI-HLD signal, and the INT-HLD signal is “H”, and all the signals are “L”. When the clock is not applied to the data RAM 120. Therefore, when any one of the EXT request, the INT request, and the MI request is supplied to the priority circuit 25, the clock control unit 110 supplies a clock to the data RAM 120, and when none of the requests is supplied, A clock is not supplied to the RAM 120.

このように、クロック制御部110は、データRAM120が保持するデータに対するアクセスが無いとき、データRAMへクロックを供給しないように制御することで、データRAMの消費電力を低減できる。   As described above, the clock control unit 110 can reduce the power consumption of the data RAM by controlling so that the clock is not supplied to the data RAM when there is no access to the data held in the data RAM 120.

図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 error check circuit 130 includes an ExOR circuit (negative exclusive OR circuit) 131, an OR circuit (logical sum circuit) 132, and a selection circuit 133.

データRAM120から一度に読み出すデータがJバイトの場合、否定排他的論理和131は、バイト毎にパリティビットを用いて、奇数パリティか否かのパリティチェックを行う。ExOR回路131は、パリティエラーが発生した場合、『H』のデータパリティエラー信号を出力する。   When the data read from the data RAM 120 at a time is J bytes, the negative exclusive OR 131 performs a parity check on whether or not the parity is odd using a parity bit for each byte. The ExOR circuit 131 outputs a data parity error signal of “H” when a parity error occurs.

OR回路132は、複数のExOR回路131から、受け取った各バイト毎のデータパリティエラー信号の論理和を、選択回路133に、データエラーウェイ信号として出力する。OR回路132が受け取ったデータパリティエラー信号の1つでも『H』であれば、データエラーウェイ信号が『H』になる。   The OR circuit 132 outputs the logical sum of the data parity error signals for each byte received from the plurality of ExOR circuits 131 to the selection circuit 133 as a data error way signal. If even one of the data parity error signals received by the OR circuit 132 is “H”, the data error way signal becomes “H”.

選択回路133は、キャッシュヒットを生じたウェイを特定するタグヒットウェイ信号を受け取り、タグヒットウェイ信号により特定されるデータエラーウェイ信号を選択する。選択されたデータエラーウェイ信号が、『H』の場合、データRAM120から読み出されたデータにエラーであることを示す。   The selection circuit 133 receives a tag hit way signal that specifies a way that has caused a cache hit, and selects a data error way signal that is specified by the tag hit way signal. If the selected data error way signal is “H”, this indicates that the data read from the data RAM 120 is an error.

図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 request generation unit 150 is an AND circuit 150a. The AND circuit 150a receives a VALID, an EXT request or an INT request, a retransmission request instruction (RERUN-REQ), a tag hit (TAG-HIT), a TLB hit (TLB-HIT), and an error (ERROR). When the VALID, EXT request or INT request, tag hit, TLB hit, and error are all “H” and the retransmission request instruction is “L”, the AND circuit 150a outputs a RERUN signal of “H”. The input signals of the AND circuit 150a are all generated at the B stage, and the RERUN signal is output via the latch circuit 151 at the R stage, which is the next stage of the B stage.

このように、再送要求生成部150は、エラーが発生して、且つ、命令実行部4からRERUN−REQ信号が供給されていない場合、RERUN信号を生成する。   As described above, the retransmission request generation unit 150 generates a RERUN signal when an error occurs and the RERUN-REQ signal is not supplied from the instruction execution unit 4.

図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 signal generation unit 50 includes AND circuits 51, 52, 53, 54 and an OR circuit 55.

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 circuit 51 receives the RERUN-REQ signal, the RERUN-2nd signal, the TAG-HIT signal, and the TLB-HIT signal. The AND circuit 51 outputs a signal S51 of “H” when the RERUN-REQ signal, the TAG-HIT signal, and the TLB hit signal are all “H” and the RERUN-2nd signal is “L”.

OR回路55は、『H』の信号S51、『L』のタグヒット(TAG−HIT)信号、『L』のTLB−HIT信号の何れかを受け取ると、『H』の信号S55を出力する。   When the OR circuit 55 receives any one of the “H” signal S51, the “L” tag hit (TAG-HIT) signal, and the “L” TLB-HIT signal, the OR circuit 55 outputs the “H” signal S55.

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 circuit 52 outputs the “H” signal S52.

AND回路53は、『H』の信号S55、及び『H』の信号S52を受け取ると、『H』のWAIT信号を出力する。   Upon receiving the “H” signal S55 and the “H” signal S52, the AND circuit 53 outputs the “H” WAIT signal.

AND回路54は、『L』の信号S55、及び『H』の信号S52を受け取ると、『H』のSTV信号を出力する。   Upon receiving the “L” signal S55 and the “H” signal S52, the AND circuit 54 outputs the “H” STV signal.

このように、制御信号生成部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 signal generation unit 50 operates to output the WAIT signal and suppress the output of the STV signal. Upon receiving the “L” RERUN-REQ signal or the “H” RERUN-2nd signal, the control signal generation unit 50 outputs the STV signal, suppresses the output of the WAIT signal, and restarts the pipeline operation. To work.

図8に示したように、WAIT信号がパイプライン100に供給されると、INT信号が出力される。そして、図2に示したように、WAIT信号は、パイプライン100に投入される。   As shown in FIG. 8, when the WAIT signal is supplied to the pipeline 100, the INT signal is output. Then, as shown in FIG. 2, the WAIT signal is input to the pipeline 100.

図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 circuits 171, 172, and 173. When the “H” WAIT signal is supplied to the AND circuits 171, 172, 173, the outputs of the AND circuits 171, 172, 173 become “L”. Therefore, when the WAIT signal is “H”, propagation of the VALID signal can be suppressed in the pipeline.

図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 data RAM 120 occupies a large area in the arithmetic processing unit 10, the wiring distance between the area where the data RAM 120 is arranged and the area where the pipeline 100 is arranged is inevitably. become longer. Therefore, by arranging the retransmission request generation unit 150 not in the cache controller 200 but in the vicinity of the data RAM 120, the retransmission request generation unit 150 transmits the retransmission request to the data RAM 120 while generating the retransmission request within the B stage cycle. The retransmission request can be transmitted to the data buffer 5.

図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 pipeline 100, an EXT request is received.

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 data buffer 5.

図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 signal generation unit 50 outputs the “H” STV signal. Therefore, in the R stage, the STV signal becomes “H”.

図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 request generation unit 150, so that the RERUN signal becomes “H” in the B stage. Therefore, even if the instruction execution unit 4 receives the STV signal, it simultaneously receives the RERUN signal, thereby discarding the STV signal and avoiding the inconvenience that the instruction execution unit 4 uses the data received in the B stage. I can do it.

RERUN信号が供給されると、命令実行部4によって保持回路TW、MW、BW、RWとパイプラインのVALID信号のリセットが指示されることにより、パイプライン100が保持するリクエストが消滅し 、パイプライン動作が停止する。   When the ERRUN signal is supplied, the instruction execution unit 4 instructs the resetting of the holding circuits TW, MW, BW, RW and the pipeline VALID signal, whereby the request held by the pipeline 100 disappears, and the pipeline Operation stops.

13〜21サイクルでは、パイプライン100は、L2キャッシュ400からBIS要求を受け取り、L1キャッシュ20のエラーを生じたラインが無効化される。なお、13〜21サイクルでは、当該処理に2回パイプラインを実行する2フローかかるように示される。これは、1フロー目にタグRAMに無効化を必要とするラインがあることのチェックを行い、2フロー目にタグRAMのインバリデート(無効化)を行うためである。   In the 13th to 21st cycles, the pipeline 100 receives the BIS request from the L2 cache 400, and the line causing the error in the L1 cache 20 is invalidated. In the 13th to 21st cycles, the process is shown to take two flows for executing the pipeline twice. This is to check that there is a line that needs to be invalidated in the tag RAM in the first flow and to invalidate the tag RAM in the second flow.

図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 instruction execution unit 4 supplies an EXT request to the pipeline. Since the RERUN-REQ signal is supplied together with the supply of the EXT request, the RERUN-REQ signal becomes “H”. As described with reference to FIG. 8, the RERUN-REQ signal propagates through the flag signal latch in each stage, and therefore the RERUN-REQ signal maintains the “H” state in the 21st to 25th cycles.

図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 pipeline 100 receives the MI request from the cache controller 200, and the data loaded from the L2 cache 400 is written to the target line.

図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 pipeline 100 receives an INT request from the cache controller 200. In response to the INT request, as described in FIG. 8, the flag signal held in the flag signal latch is turned on again. As described with reference to FIG. 9, the RERUN-REQ signal is included in the INT request, and therefore propagates through the flag signal latch in each stage. Therefore, the RERUN-REQ signal maintains the “H” state during the period of 21 to 25 cycles of the clock in the timing chart of FIG.

図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 L2 cache 400 is supplied to the data buffer 5. Therefore, the condition that the MI-2nd flow, which is the previous flow, is due to a retransmission request, and is a WAITed flow without a cache hit and error, and the WID signal is “71” in 44 cycles. "become.

図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 pipeline 100 is restarted and the instruction execution unit 4 can use the data held in the data buffer 5.

図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 control signal generator 50 outputs the STV signal, so that the instruction execution unit 4 Data received in the B stage of the 43rd cycle of the clock in the timing chart of 21 can be used.

このように、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 instruction execution unit 4 generates the STV signal at the 51st cycle of the clock in the timing chart of FIG. The data received at the 43rd cycle of the clock can be used. As described above, by supplying the STV signal and the RERUN signal to the instruction execution unit 4, the L1 cache 20 maintains the function of the STV signal even if the error detection circuit 130 does not have the error detection as an input signal. I can do it.

図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 data buffer 5 because the IBR-CE signal is “L”. This is because normal data has already been sent to the instruction execution unit 4 in 43 cycles. As described above, even if an error occurs in the target line after the data has been normally sent to the instruction execution unit 4, the normal data has already been transmitted, so the invalidation by the BIS request or the L2 cache by the MI request. Processing can be continued without loading data from 400.

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 instruction part 3 execution part 4 instruction execution part 5 data buffer 10 arithmetic processing unit 20 L1 cache 25 priority circuit 30 tag RAM
35 TLB
40 Comparison Circuit 50 Control Signal Generation Unit 100 Pipeline 110 Clock Control Unit 120 Data RAM
DESCRIPTION OF SYMBOLS 130 Error check circuit 140 Selection circuit 150 Retransmission request production | generation part 180 Control part 190 L2 order holding | maintenance part 195 L2 request holding | maintenance part 200 Cache controller 400 L2 cache 500 Main memory

Claims (6)

データを記憶する第1の記憶部と、
第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の記憶部へクロックを供給するクロック制御部を有し、
第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又は2に記載の演算処理装置。   The arithmetic processing unit further includes a load request based on the retransmission request when no error is detected by the error detection unit for data read from the first storage unit by the load request based on the retransmission request after the load request is retransmitted. The arithmetic processing apparatus according to claim 1, further comprising a use permission control unit that outputs a use permission signal for the data read by the step to the instruction execution unit. 第1の記憶部と第2の記憶部とを有する演算処理装置の制御方法において、
第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.
JP2009260950A 2009-11-16 2009-11-16 Arithmetic processing device and control method of arithmetic processing device Expired - Fee Related JP5625329B2 (en)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (5)

* Cited by examiner, † Cited by third party
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