Nothing Special   »   [go: up one dir, main page]

JP2011257966A - Cache device and information processor - Google Patents

Cache device and information processor Download PDF

Info

Publication number
JP2011257966A
JP2011257966A JP2010131574A JP2010131574A JP2011257966A JP 2011257966 A JP2011257966 A JP 2011257966A JP 2010131574 A JP2010131574 A JP 2010131574A JP 2010131574 A JP2010131574 A JP 2010131574A JP 2011257966 A JP2011257966 A JP 2011257966A
Authority
JP
Japan
Prior art keywords
data
bit
parity
target data
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.)
Pending
Application number
JP2010131574A
Other languages
Japanese (ja)
Inventor
Toshihisa Kamemaru
敏久 亀丸
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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP2010131574A priority Critical patent/JP2011257966A/en
Publication of JP2011257966A publication Critical patent/JP2011257966A/en
Pending legal-status Critical Current

Links

Images

Landscapes

  • Techniques For Improving Reliability Of Storages (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

PROBLEM TO BE SOLVED: To provide a software error correction method exerting a little influence on the performance of a processor performing a pipeline processing.SOLUTION: A data array 43 stores data and a parity bit, and a check bit array 46 stores a ECC bit of the data. A parity check unit 44 acquires, by a read request from a processor 1, read object data and the parity bit thereof from the data array 43 to perform the parity check of the read object data using the parity bit. When detecting data error, the parity check unit outputs a stall command signal to command a pipeline stall to the processor 1. An error correction unit 47 acquires the ECC bit of the read object data from the check bit array 46 during the pipeline stall, corrects the error of the read object data using the ECC bit and outputs the read object data after the error correction and a stall cancel signal to command the cancel of the pipeline stall to the processor 1.

Description

本発明は、キャッシュ装置においてソフトエラーを訂正する方式に関する。   The present invention relates to a method of correcting a soft error in a cache device.

半導体プロセスの微細化が年々進展することを活用し、情報処理装置の要であるマイクロプロセッサ(以降プロセッサと記述)は、高速化・高機能化してきた。
具体的には、例えば、
1)半導体プロセスの微細化によるトランジスタや論理回路の高速化による、プロセッサの動作周波数の向上、
2)実装可能なトランジスタ数の増大によるキャッシュ装置の実装と、その容量の増大化と階層化、
3)プロセッサのアーキテクチャの進展による処理のパイプライン化とその段数の多段化、
が高性能化のための主要技術である
Utilizing the progress of miniaturization of semiconductor processes year by year, the microprocessor (hereinafter referred to as processor), which is the key of the information processing apparatus, has been increased in speed and functionality.
Specifically, for example,
1) Improvement of processor operating frequency by speeding up transistors and logic circuits by miniaturization of semiconductor processes,
2) Implementation of a cache device by increasing the number of transistors that can be mounted, increasing its capacity and stratification,
3) Pipelining of processing due to the advancement of processor architecture and increasing the number of stages,
Is the main technology for high performance

このように半導体プロセスの微細化は、プロセッサの高速化を根底からささえているが、微細化により、プロセッサの内部電圧が低下し、チップ内外からのノイズに対するマージンが少なくなってきている。
特に、キャッシュを構成するSRAM(Static Random Access Memory)のマージンが少なくなり、ノイズに弱くなり、SRAMが保持している情報(ビット)が反転し、情報が誤ってしまう現象が発生しやすくなっている。これをソフトエラーという。
ソフトエラーは、チップ内部の電圧変動や、宇宙からの中性子線などで発生する。
前述したとおり、プロセッサの高性能化には、キャッシュが不可欠であり、しかもその容量が増大傾向にある。
近年の高性能なプロセッサは、キャッシュを1次キャッシュと2次キャッシュという2つのレベルで持つことが一般的になっている。
1次キャッシュは、プロセッサに密に結合しており、高速に動作することが不可欠である。
1次キャッシュは、高速動作のために容量を大きくしにくい。
そこで、1次キャッシュに入らないデータを2次キャッシュで受ける構造をとる。
2次キャッシュは、1次キャッシュより低速動作であり、プロセッサからのアクセスも時間がかかるが、容量が大きく、キャッシュのヒット率(欲しいデータがキャッシュに入っている比率)は高い。
この1次キャッシュ、2次キャッシュがソフトエラーを発生したときに、プロセッサが誤作動しないための工夫として、従来からパリティチェックとECC(Error Check and Correction)の技術がある。
As described above, the miniaturization of the semiconductor process supports the speeding up of the processor, but the internal voltage of the processor is lowered due to the miniaturization, and the margin for noise from inside and outside the chip is reduced.
In particular, the SRAM (Static Random Access Memory) margin that constitutes the cache is reduced, it becomes vulnerable to noise, and the information (bits) held by the SRAM is inverted, and the information is likely to be erroneous. Yes. This is called a soft error.
Soft errors occur due to voltage fluctuations inside the chip and neutrons from space.
As described above, a cache is indispensable for improving the performance of a processor, and its capacity tends to increase.
In recent years, high-performance processors generally have caches at two levels, a primary cache and a secondary cache.
The primary cache is tightly coupled to the processor and must operate at high speed.
The primary cache is difficult to increase in capacity for high-speed operation.
Therefore, a structure is adopted in which data that does not enter the primary cache is received by the secondary cache.
The secondary cache operates at a lower speed than the primary cache and takes a long time to access from the processor, but has a large capacity and a high cache hit rate (ratio of the desired data in the cache).
Conventionally, there are techniques of parity check and ECC (Error Check and Correction) as measures for preventing the processor from malfunctioning when the primary cache and the secondary cache generate a soft error.

パリティチェックは、1バイト程度のひとまとまりのデータに対して1ビットのパリティビットという冗長ビットを付加する。
データかパリティビットが1ビット反転したときに、その現象(パリティエラー)を検出することができる。しかし、どのビットが反転したかは検出できない。
ECCは、8バイト程度のひとまとまりのデータに対して複数のチェックビット(例えば8ビット)を付加する。
データかチェックビットが1ビット反転したときに、その現象を検出し、反転したビットを検出し、もとのデータを復元する(エラー訂正)ことができる。
一般的なECC方式は、1ビットエラーの訂正と、2ビットエラーの検出が可能である。
本明細書では、2ビットエラーの検出に関する議論は本質ではないので言及しない。
パリティチェックは、エラー検出しかできないが、回路が単純で、高速動作に向いている。
一方、ECC方式は、エラー訂正まで可能であるが、回路が複雑で、エラー検出はパリティチェックより長時間を要し、エラー訂正には、さらに多くの時間を要するので、高速動作には向いていない。
しかるに、高速性を要する1次キャッシュにはパリティチェックを利用し、容量が大きい2次キャッシュにはECCチェックビットを付加する方式が一般的であった。
さらに、特許文献1には、1次キャッシュのデータ復元を実現するために、1次キャッシュにパリティとECCチェックビットの両者を付加し、通常の1次キャッシュアクセス時はパリティチェックを行い、パリティエラーが検出されたとき、ECCチェックビットのデータを読み、データを復元する方式が記載されている。
In the parity check, a redundant bit called a parity bit of 1 bit is added to a group of data of about 1 byte.
When the data or parity bit is inverted by 1 bit, the phenomenon (parity error) can be detected. However, it cannot be detected which bit is inverted.
The ECC adds a plurality of check bits (for example, 8 bits) to a group of data of about 8 bytes.
When the data or check bit is inverted by 1 bit, the phenomenon can be detected, the inverted bit can be detected, and the original data can be restored (error correction).
A general ECC method can correct a 1-bit error and detect a 2-bit error.
In this specification, the discussion regarding detection of 2-bit errors is not essential and will not be mentioned.
The parity check can only detect errors, but the circuit is simple and suitable for high-speed operation.
On the other hand, the ECC method is capable of error correction, but the circuit is complicated, error detection requires a longer time than parity check, and error correction requires more time, so it is suitable for high-speed operation. Absent.
However, a method of using a parity check for a primary cache requiring high speed and adding an ECC check bit to a secondary cache having a large capacity is common.
Furthermore, in Patent Document 1, in order to realize data restoration of the primary cache, both parity and ECC check bits are added to the primary cache, parity check is performed during normal primary cache access, and a parity error is detected. A method is described in which when ECC is detected, data of the ECC check bit is read and the data is restored.

特表2004−514184号公報Special table 2004-514184 gazette

しかし、1次キャッシュは、プロセッサのパイプラインと密接に関連しているため、パリティチェックのタイミング、パリティビットの生成のタイミング、ECCチェックビット生成のタイミング、ECCチェックビットによるデータ復元のタイミングをパイプラインのどのステージで実現するかによりプロセッサの性能とコストに影響を及ぼす。
特許文献1には、この点に関する記載がない。
本発明は、パイプライン処理を行うプロセッサに用いられるキャッシュ装置において、プロセッサ性能への影響が少ないソフトエラーの訂正方式を実現することを主な目的とする。
However, since the primary cache is closely related to the processor pipeline, the parity check timing, parity bit generation timing, ECC check bit generation timing, and data restoration timing using the ECC check bits are pipelined. The performance and cost of the processor are affected depending on which stage of the processor is implemented.
Patent Document 1 does not describe this point.
The main object of the present invention is to realize a soft error correction method that has little influence on processor performance in a cache device used in a processor that performs pipeline processing.

本発明に係るキャッシュ装置は、
パイプライン処理が行われるプロセッサとデータを送受信するキャッシュ装置であって、
データを、パリティビットとともに記憶するデータアレイと、
前記データアレイにおいて記憶されているデータのECC(Error Check and Correction)ビットを記憶するチェックビットアレイと、
前記プロセッサからリード要求があった際に、リード要求の対象であるリード対象データに対して当該リード対象データのパリティビットを用いてパリティチェックを行い、リード対象データのデータ誤りを検出した場合に、前記プロセッサに対してパイプラインストールを指示するストール指示信号を出力するパリティチェック部と、
前記パリティチェック部によりリード対象データのデータ誤りが検出された場合に、リード対象データのECCビットを用いて、リード対象データの誤り訂正を行い、誤り訂正後のリード対象データと、パイプラインストールの解除を指示するストール解除信号とを前記プロセッサに出力する誤り訂正部とを有することを特徴とする。
The cache device according to the present invention includes:
A cache device that transmits and receives data to and from a processor that performs pipeline processing,
A data array for storing data along with parity bits;
A check bit array for storing ECC (Error Check and Correction) bits of data stored in the data array;
When there is a read request from the processor, a parity check is performed on the read target data that is the target of the read request using the parity bit of the read target data, and when a data error in the read target data is detected, A parity check unit that outputs a stall instruction signal for instructing the processor to install a pipeline;
When a data error in the read target data is detected by the parity check unit, error correction of the read target data is performed using the ECC bit of the read target data, and the read target data after the error correction and release of the pipeline installation are performed. And an error correction unit that outputs a stall release signal instructing to the processor.

本発明では、パリティチェックによりデータ誤りを検出した際にストール指示信号を出力してパイプラインをストールさせて、ECCビットを用いた誤り訂正を行っている。
データ誤りの発生頻度は低く、発生頻度の低いデータ誤りのためのECCビットのリードやECCビットを用いた誤り訂正に対して専用のパイプラインステージを設けることはせずに、データ誤りが生じた場合に限ってパイプラインをストールさせて誤り訂正を行うので、プロセッサの実装コストやパイプライン構成の複雑さの増大を抑えることができ、データ誤りのない状況において効率的にプロセッサのパイプラインを進行させることができる。
In the present invention, when a data error is detected by a parity check, a stall instruction signal is output to stall the pipeline, and error correction using the ECC bits is performed.
The frequency of data errors is low, and data errors occur without providing a dedicated pipeline stage for reading ECC bits and correcting errors using ECC bits for infrequent data errors. Since the error correction is performed by stalling the pipeline only in some cases, it is possible to suppress an increase in the implementation cost of the processor and the complexity of the pipeline configuration, and the processor pipeline progresses efficiently in a situation where there is no data error. Can be made.

実施の形態1に係る情報処理装置の構成例を示す図。FIG. 3 illustrates a configuration example of an information processing apparatus according to Embodiment 1; 実施の形態1に係るデータ用1次キャッシュの構成例を示す図。FIG. 3 is a diagram illustrating a configuration example of a data primary cache according to the first embodiment. 実施の形態1に係るデータ用1次キャッシュの構成例を示す図。FIG. 3 is a diagram illustrating a configuration example of a data primary cache according to the first embodiment. 実施の形態1に係るデータ、パリティビット、ECCチェックビット間の関係を示す図。FIG. 4 is a diagram illustrating a relationship among data, parity bits, and ECC check bits according to the first embodiment. 実施の形態1に係るデータ用1次キャッシュの読み出し動作の例を示すフローチャート図。FIG. 3 is a flowchart showing an example of a read operation of the data primary cache according to the first embodiment. 実施の形態1に係るデータ用1次キャッシュの書き込み動作の例を示すフローチャート図。FIG. 3 is a flowchart showing an example of a write operation of a data primary cache according to the first embodiment. 実施の形態1に係るデータ用1次キャッシュからのリードにおいてパリティエラーが発生しなかった際のパイプラインステージを示す図。The figure which shows the pipeline stage when the parity error does not generate | occur | produce in the read from the primary cache for data which concerns on Embodiment 1. FIG. 実施の形態1に係るデータ用1次キャッシュからのリードにおいてパリティエラーが発生した際のパイプラインステージを示す図。The figure which shows the pipeline stage when the parity error generate | occur | produces in the read from the primary cache for data which concerns on Embodiment 1. FIG. 実施の形態1に係るデータ用1次キャッシュへのライトにおいてパリティエラーが発生しなかった際のパイプラインステージを示す図。The figure which shows the pipeline stage when the parity error does not generate | occur | produce in the write to the data primary cache which concerns on Embodiment 1. FIG. 実施の形態1に係るデータ用1次キャッシュへのライトにおいてパリティエラーが発生した際のパイプラインステージを示す図。The figure which shows the pipeline stage when the parity error generate | occur | produces in the write to the data primary cache which concerns on Embodiment 1. FIG. 実施の形態2に係る情報処理装置の構成例を示す図。FIG. 3 illustrates a configuration example of an information processing apparatus according to a second embodiment. 実施の形態3に係る情報処理装置の構成例を示す図。FIG. 10 illustrates a configuration example of an information processing apparatus according to a third embodiment. 実施の形態4に係る情報処理装置の構成例を示す図。FIG. 10 illustrates a configuration example of an information processing device according to a fourth embodiment.

実施の形態1〜4では、プロセッサの性能を最大限にし、コストを最小に抑えるためのプロセッサのパイプライン構成と、パリティチェック関連の機構とECC関連の機構を説明する。   In the first to fourth embodiments, a processor pipeline configuration, a parity check related mechanism, and an ECC related mechanism for maximizing processor performance and minimizing cost will be described.

実施の形態1.
図1〜図10を用いて、本実施の形態に係る情報処理装置を説明する。
図1は、本実施の形態に係る情報処理装置100の構成例を示す。
Embodiment 1 FIG.
The information processing apparatus according to the present embodiment will be described with reference to FIGS.
FIG. 1 shows a configuration example of an information processing apparatus 100 according to the present embodiment.

図1において、1はプロセッサ、2はメモリ、3は命令用1次キャッシュ、4はデータ用1次キャッシュ、5は命令・データ共用の2次キャッシュである。
プロセッサ1はパイプライン処理を行う。
メモリ2と2次キャッシュ5は、ソフトエラー対策としてECCチェックビット(以下、ECCビットともいう)を付加している。
命令用1次キャッシュ3は、パリティのみを付加している。
なぜなら、命令用1次キャッシュの内容はプロセッサからのライトにより変更されることがないので、正しいデータが必ずメモリ2に入っていることが保障されている。
従って、命令用1次キャッシュ3でパリティエラーが検出された場合は、メモリ2から命令を取って来ることで、正しい命令を得ることができる。
一方、データ用1次キャッシュ4は、パリティビットとECCチェックビットの両方を付加する。
なぜなら、データ用1次キャッシュ4は、プロセッサからのデータ書き換えにより、2次キャッシュ5やメモリ2とは異なるデータとなること(このとき、このキャッシュラインはDirty状態という)があるため、メモリ2からデータを取ってきても、正しいデータを得られず、プロセッサは処理を正しく継続することができなくなる。
そのため、データ用1次キャッシュの1ビット誤りに対しては、訂正することができるECCチェックビットを付加することにする。
しかし、ECCチェックビットで誤り検出を行うと、プロセッサの高速動作が困難になるため、1ビット誤りがより短時間に検出できるパリティビットも付加することにする。
なお、データ用1次キャッシュ4がキャッシュ装置の例に相当する。
In FIG. 1, 1 is a processor, 2 is a memory, 3 is a primary cache for instructions, 4 is a primary cache for data, and 5 is a secondary cache for sharing instructions and data.
The processor 1 performs pipeline processing.
The memory 2 and the secondary cache 5 are added with an ECC check bit (hereinafter also referred to as an ECC bit) as a countermeasure against a soft error.
The instruction primary cache 3 adds only parity.
This is because the contents of the primary cache for instructions are not changed by a write from the processor, so that it is guaranteed that correct data is always stored in the memory 2.
Therefore, when a parity error is detected in the instruction primary cache 3, a correct instruction can be obtained by fetching the instruction from the memory 2.
On the other hand, the data primary cache 4 adds both a parity bit and an ECC check bit.
This is because the data primary cache 4 becomes different data from the secondary cache 5 and the memory 2 by rewriting data from the processor (at this time, this cache line is called a Dirty state). Even if the data is taken, correct data cannot be obtained, and the processor cannot continue processing correctly.
Therefore, an ECC check bit that can be corrected is added to a 1-bit error in the data primary cache.
However, if error detection is performed using ECC check bits, high-speed operation of the processor becomes difficult, so a parity bit that can detect a 1-bit error in a shorter time is also added.
The data primary cache 4 corresponds to an example of a cache device.

次に、データ用1次キャッシュ4の構成例を図2及び図3に示す。
図2及び図3は同じデータ用1次キャッシュ4を表しているが、図2はプロセッサ1からデータ用1次キャッシュ4に対してリード要求があった際のデータ用1次キャッシュ4内の要素間の信号の入出力関係を示しており、図3はプロセッサ1からデータ用1次キャッシュ4に対してライト要求があった際のデータ用1次キャッシュ4内の要素間の信号の入出力関係を示している。
このため、図2と図3で示されている構成要素は同じであるが、信号線の向き(矢印の向き)や入出力される信号の種類が図2と図3では異なっている。
なお、図が複雑になりすぎることを避けるため、説明上必ずしも重要度の高くない信号線は図2及び図3において図示を省略している。
Next, a configuration example of the data primary cache 4 is shown in FIGS.
2 and 3 show the same primary cache for data 4, but FIG. 2 shows elements in the primary cache for data 4 when the processor 1 makes a read request to the primary cache for data 4. FIG. 3 shows the signal input / output relationship between elements in the data primary cache 4 when the processor 1 makes a write request to the data primary cache 4. Is shown.
Therefore, although the components shown in FIGS. 2 and 3 are the same, the direction of the signal line (the direction of the arrow) and the type of input / output signal are different between FIGS.
Note that signal lines that are not necessarily important in the description are not shown in FIGS. 2 and 3 in order to avoid overcomplicating the drawing.

図2及び図3において、1はプロセッサ、4はデータ用1次キャッシュ、5は2次キャッシュである。
データ用1次キャッシュ4は、タグアレイ41、ヒット判定部42、データアレイ43、読み出し部431、書き込み部432、パリティチェック部44、パリティビット生成部45、チェックビットアレイ46、読み出し部461、書き込み部462、誤り訂正部47、ECCビット生成部48から構成される。
2 and 3, 1 is a processor, 4 is a primary cache for data, and 5 is a secondary cache.
The data primary cache 4 includes a tag array 41, a hit determination unit 42, a data array 43, a reading unit 431, a writing unit 432, a parity check unit 44, a parity bit generation unit 45, a check bit array 46, a reading unit 461, and a writing unit. 462, an error correction unit 47, and an ECC bit generation unit 48.

図2及び図3に示される構成要素のうち、以下にて、主要な要素について説明を行う。   Of the components shown in FIG. 2 and FIG. 3, the main components will be described below.

データアレイ43は、データをパリティビットとともに記憶している。
チェックビットアレイ46は、データアレイ43において記憶されているデータのECCビットを記憶している。
The data array 43 stores data together with parity bits.
The check bit array 46 stores ECC bits of data stored in the data array 43.

パリティチェック部44は、プロセッサ1からリード要求があった際(図2)に、リード要求の対象であるリード対象データと、当該リード対象データのパリティビットを、読み出し部431を介してデータアレイ43から取得し、パリティビットを用いてリード対象データのパリティチェックを行う。
リード対象データにデータ誤りがなければ、リード対象データをプロセッサ1に出力する。
一方、リード対象データのデータ誤りを検出した場合は、プロセッサ1に対してパイプラインストールを指示するストール指示信号を出力する。
誤り訂正部47は、パリティチェック部44によりリード対象データのデータ誤りが検出された場合に、パイプラインストール中に、リード対象データのECCビットを読み出し部461を介してチェックビットアレイ46から取得し、ECCビットを用いてリード対象データの誤り訂正を行い、誤り訂正後のリード対象データと、パイプラインストールの解除を指示するストール解除信号とをプロセッサ1に出力する。
When there is a read request from the processor 1 (FIG. 2), the parity check unit 44 receives the read target data that is the target of the read request and the parity bit of the read target data via the read unit 431 and the data array 43. To check the parity of the read target data using the parity bit.
If there is no data error in the read target data, the read target data is output to the processor 1.
On the other hand, when a data error in the read target data is detected, a stall instruction signal for instructing the pipeline installation to the processor 1 is output.
When the parity check unit 44 detects a data error in the read target data, the error correction unit 47 acquires the ECC bit of the read target data from the check bit array 46 via the reading unit 461 during the pipeline installation. Error correction of the read target data is performed using the ECC bit, and the read target data after the error correction and a stall release signal instructing release of the pipeline installation are output to the processor 1.

また、パリティチェック部44は、プロセッサ1からライト要求があった際(図3)に、データアレイ43に既に記憶されているデータであってライト要求の対象であるライト対象データとマージされるマージ対象データと、当該マージ対象データのパリティビットを、読み出し部431を介してデータアレイ43から取得する。
そして、パリティチェック部44は、パリティビットを用いてマージ対象データのパリティチェックを行う。
マージ対象データにデータ誤りがなければ、パリティビット生成部45を介して書き込み部432にマージ対象データを出力して、ライト対象データとマージさせる。
一方、マージ対象データのデータ誤りを検出した場合は、プロセッサ1に対してパイプラインストールを指示するストール指示信号を出力する。
誤り訂正部47は、パリティチェック部44によりマージ対象データのデータ誤りが検出された場合に、パイプラインストール中に、マージ対象データのECCビットを読み出し部461を介してチェックビットアレイ46から取得し、ECCビットを用いてマージ対象データの誤り訂正を行う。
パリティビット生成部45は、パイプラインストール中に、誤り訂正部47による誤り訂正後のマージ対象データを入力し、パリティビットを生成する。
また、パリティチェック部44は、パイプラインストール中に、パリティビット生成部45により生成されたパリティビットを用いてマージ対象データにデータ誤りがないことを確認し、パイプラインストールの解除を指示するストール解除信号をプロセッサ1に出力する。
書き込み部432は、パリティチェック部44によりマージ対象データにデータ誤りがないことが確認された際に、ライト対象データとマージ対象データとをマージしてデータアレイ43に書き込むとともに、ライト対象データとマージ対象データとのマージデータのパリティビットをデータアレイ43に書き込む。
ECCビット生成部48は、パリティチェック部44によりマージ対象データにデータ誤りがないことが確認された際に、ライト対象データとマージ対象データとのマージデータのECCビットを生成する。
書き込み部462は、ECCビット生成部48により生成されたマージデータのECCビットをチェックビットアレイ46に書き込む。
In addition, the parity check unit 44 merges data that is already stored in the data array 43 and is merged with the write target data that is the target of the write request when a write request is received from the processor 1 (FIG. 3). The target data and the parity bit of the merge target data are acquired from the data array 43 via the reading unit 431.
Then, the parity check unit 44 performs a parity check of the data to be merged using the parity bit.
If there is no data error in the merge target data, the merge target data is output to the writing unit 432 via the parity bit generation unit 45 and merged with the write target data.
On the other hand, when a data error in the merge target data is detected, a stall instruction signal for instructing the pipeline installation to the processor 1 is output.
When the parity check unit 44 detects a data error in the merge target data, the error correction unit 47 acquires the ECC bits of the merge target data from the check bit array 46 via the read unit 461 during the pipeline installation. Error correction of the data to be merged is performed using the ECC bits.
The parity bit generation unit 45 inputs data to be merged after error correction by the error correction unit 47 during pipeline installation, and generates parity bits.
Further, the parity check unit 44 confirms that there is no data error in the data to be merged using the parity bit generated by the parity bit generation unit 45 during the pipeline installation, and instructs the cancellation of the pipeline installation. Is output to the processor 1.
When the parity check unit 44 confirms that the data to be merged has no data error, the writing unit 432 merges the write target data and the merge target data into the data array 43 and merges with the write target data. The parity bit of the merge data with the target data is written to the data array 43.
The ECC bit generation unit 48 generates ECC bits of merge data of write target data and merge target data when the parity check unit 44 confirms that there is no data error in the merge target data.
The writing unit 462 writes the ECC bits of the merge data generated by the ECC bit generation unit 48 in the check bit array 46.

次に、図4に、データアレイ43に格納されているデータとパリティビットと、チェックビットアレイ46に格納されているECCチェックビットとの間の関連を示す。   Next, FIG. 4 shows the relationship between the data and parity bits stored in the data array 43 and the ECC check bits stored in the check bit array 46.

データアレイ43は、複数のラインを保持している。
例えば、キャッシュ容量32KBのとき、キャッシュラインサイズを32バイトとすると、1K=1024個のキャッシュラインを持つことになる。
図4は、そのうちの1ラインを示している。
ラインは、データ部とパリティビット部を持つ。
この例では、1ライン=32バイトで、1バイト(8ビット)ごとに、1ビットのパリティビットを持つ。
データの1バイト分のパリティチェックは、それに対応するパリティビットを1ビット読めば実行できる。
また、そのラインに対応してECCチェックビットを有する。
チェックビットアレイ46の中に、それぞれのキャッシュラインに対応するECCチェックビットを32ビットずつ持つ。
8バイト(64ビット)のデータに8ビットのECCチェックビットを付加する構成とする。
64ビットデータに8ビットのチェックビットを持つことで、1ビットの誤りを訂正し、2ビットの誤りを検出する方式は一般に知られている。
The data array 43 holds a plurality of lines.
For example, when the cache capacity is 32 KB and the cache line size is 32 bytes, 1K = 1024 cache lines are provided.
FIG. 4 shows one of them.
The line has a data portion and a parity bit portion.
In this example, one line = 32 bytes, and one byte (8 bits) has one parity bit.
A parity check for one byte of data can be executed by reading the corresponding parity bit.
In addition, an ECC check bit is provided corresponding to the line.
The check bit array 46 has 32 ECC check bits corresponding to each cache line.
An 8-bit ECC check bit is added to 8-byte (64-bit) data.
A method of correcting a 1-bit error and detecting a 2-bit error by having 8-bit check bits in 64-bit data is generally known.

次にデータ用1次キャッシュ4の動作例を説明する。
まず、データ用1次キャッシュの読み出し動作から説明する。
図2がデータ読み出し動作における信号の入出力関係を示し、図5がデータ読み出し動作における動作フローを示す。
Next, an operation example of the data primary cache 4 will be described.
First, the data primary cache read operation will be described.
FIG. 2 shows a signal input / output relationship in the data read operation, and FIG. 5 shows an operation flow in the data read operation.

プロセッサ1から、リード要求がアドレスとともに発行されると(S101)、タグアレイ41が、その該当アドレスにより読みだされ、ヒット判定部42でキャッシュにヒットしたか否かを判定する(S102)。
ヒットしなかった場合(S103でミスの場合)は、2次キャッシュ5にデータを取りに行く(S111)。
ヒットした場合(S103でヒットの場合)は、データアレイのアドレスがデータアレイ43に入力され、読み出し部431より、データがパリティビットとともに読みだされ、パリティチェック部44でパリティの計算がなされる(S104)。
データに誤り(1ビットの反転)が発生していなければ(S105でNO)、そのデータはプロセッサ1に送られる(S112)。
パリティ計算の結果、パリティエラーが検出されたら(S105でYES)、パリティチェック部44からプロセッサ1にパイプラインストールを指示する信号(ストール指示信号)が送信され(S106)、同時にECCのチェックビットアレイ46にアレイのアドレスが入力され、読み出し部461よりECCチェックビットが読みだされる。
そして、1ビット誤りを含んだデータとECCチェックビットを誤り訂正部47に入力し、誤り訂正部47でデータが訂正されて(S107)、訂正されたデータが誤り訂正部47からプロセッサ1に送信される(S108)。
同時に、訂正されたデータはパリティビット生成部45に入力され、パリティビット生成部45により正しいパリティが生成され、書き込み部432を経由し、データアレイ43に書き戻す(S109)。
これらの処理が終了すれば、パイプラインストールの解除を指示するストール解除信号が誤り訂正部47からプロセッサ1に送信され、パイプラインストールが解除される(S110)。
When a read request is issued from the processor 1 together with an address (S101), the tag array 41 is read by the corresponding address, and the hit determination unit 42 determines whether or not the cache is hit (S102).
If there is no hit (in the case of a miss in S103), the data goes to the secondary cache 5 (S111).
If there is a hit (in the case of hit in S103), the address of the data array is input to the data array 43, the data is read out together with the parity bit from the reading unit 431, and the parity check unit 44 calculates the parity ( S104).
If no error (inversion of 1 bit) has occurred in the data (NO in S105), the data is sent to the processor 1 (S112).
If a parity error is detected as a result of the parity calculation (YES in S105), a signal (stall instruction signal) instructing pipeline installation is transmitted from the parity check unit 44 to the processor 1 (S106), and at the same time, an ECC check bit array 46 The address of the array is input to and the ECC check bit is read from the reading unit 461.
Then, the data including the 1-bit error and the ECC check bit are input to the error correction unit 47, the data is corrected by the error correction unit 47 (S107), and the corrected data is transmitted from the error correction unit 47 to the processor 1. (S108).
At the same time, the corrected data is input to the parity bit generation unit 45, and the correct parity is generated by the parity bit generation unit 45, and is written back to the data array 43 via the writing unit 432 (S109).
When these processes are completed, a stall release signal instructing the release of the pipeline installation is transmitted from the error correction unit 47 to the processor 1, and the pipeline installation is released (S110).

次に、データ用1次キャッシュへの書き込み動作を説明する。
図3がデータ書き込み動作における信号の入出力関係を示し、図6がデータ書き込み動作における動作フローを示す。
Next, a write operation to the data primary cache will be described.
FIG. 3 shows a signal input / output relationship in the data write operation, and FIG. 6 shows an operation flow in the data write operation.

プロセッサ1から、ライト要求がアドレスとデータ(ライト対象データ)とともに発行されると(S201)、タグアレイ41が、その該当アドレスにより読みだされ、ヒット判定部42でキャッシュにヒットしたか否かを判定する(S202)。
ヒットしなかった場合(S203でミスの場合)は、データをアドレスとともに2次キャッシュ5に送信する(S208)。
ヒットした場合(S203でヒット)は、データアレイのアドレスがデータアレイ43に入力され、読み出し部431より、データ(マージ対象データ)がパリティビットとともに読みだされ、パリティチェック部44でパリティの計算がなされる。
このデータ(マージ対象データ)は、書き込みデータ(ライト対象データ)のアドレスを含む、ECCの観点でのひと塊りのデータである。この例では、8バイトのデータである。
データに誤り(1ビットの反転)が発生していなければ(S205でNO)、そのデータ(マージ対象データ)と、ライトすべきデータ(ライト対象データ)がマージされ、マージされたデータ(マージデータ)に対するパリティビットがパリティビット生成部45で生成され、書き込み部432がマージされたデータとパリティビットをデータアレイ43に書き戻す(S210)。
また、ECCビット生成部48で、そのマージされたデータ(マージデータ)に相当するECCチェックビットが生成される。
この例では64ビットに8ビットのECCチェックビットを付加する構成であるので、16ビットのライト要求がプロセッサ1より送られてきたとしても、データアレイ43は64ビット読み出し、16ビットの変化データ(ライト対象データ)と48ビットのもともとのデータ(マージ対象データ)をマージした合計した64ビットのデータ(マージデータ)に対して、新しいECCチェックビットの8ビットが生成されることになる。
このECCチェックビットが書き込み部462によりチェックビットアレイ46に書かれる(S211)。
When a write request is issued from the processor 1 together with an address and data (data to be written) (S201), the tag array 41 is read by the corresponding address, and the hit determination unit 42 determines whether or not the cache is hit. (S202).
If there is no hit (in the case of a miss in S203), the data is transmitted to the secondary cache 5 together with the address (S208).
If there is a hit (hit in S203), the address of the data array is input to the data array 43, the data (merging target data) is read out along with the parity bit from the reading unit 431, and the parity check unit 44 calculates the parity. Made.
This data (merging target data) is a group of data from the viewpoint of ECC including the address of the write data (write target data). In this example, the data is 8 bytes.
If no error (inversion of 1 bit) has occurred in the data (NO in S205), the data (merge target data) and the data to be written (write target data) are merged, and the merged data (merge data) ) Is generated by the parity bit generation unit 45, and the writing unit 432 writes the merged data and parity bits back to the data array 43 (S210).
Further, the ECC bit generation unit 48 generates an ECC check bit corresponding to the merged data (merge data).
In this example, since an ECC check bit of 8 bits is added to 64 bits, even if a 16-bit write request is sent from the processor 1, the data array 43 reads 64 bits, and 16-bit change data ( 8 bits of new ECC check bits are generated for the total 64-bit data (merge data) obtained by merging the write target data) and the original 48-bit data (merge target data).
The ECC check bit is written in the check bit array 46 by the writing unit 462 (S211).

パリティチェック部44でパリティエラーが検出された場合(S205でYES)は、パリティチェック部44からプロセッサ1にパイプラインストールを指示する信号(ストール指示信号)が送信される(S206)。
そして、チェックビットアレイ46とデータアレイ43からのデータにより誤り訂正部47によりデータを一旦正しく訂正し、また、パリティビット生成部45が訂正されたデータから正しいパリティビットを生成し、書き込み部432が訂正されたデータとパリティビットをデータアレイ43に書き戻す(S207)。
再度、データアレイ43からデータ(マージ対象データ)が読み出され、パリティチェック部44がパリティチェックを行う(S204)。
このときは、パリティエラーは検出されないので(S205でNO)、パイプラインストールの解除を指示するストール解除信号がパリティチェック部44からプロセッサ1に送信され、パイプラインストールが解除される(S209)。
次に、修正されたデータアレイ43のデータ(マージ対象データ)と、ライトすべきプロセッサからのデータ(ライト対象データ)がマージされ、マージされたデータ(マージデータ)に対するパリティビットがパリティビット生成部45で生成され、書き込み部432がマージされたデータとパリティビットをデータアレイ43に書き戻す(S210)。
また、ECCビット生成部48で、そのマージされたデータ(マージデータ)に相当するECCチェックビットが生成され、書き込み部462によりチェックビットアレイ46に書き戻される(S211)。
When a parity error is detected in the parity check unit 44 (YES in S205), a signal (stall instruction signal) instructing pipeline installation is transmitted from the parity check unit 44 to the processor 1 (S206).
Then, the data from the check bit array 46 and the data array 43 is corrected once correctly by the error correction unit 47, and the parity bit generation unit 45 generates correct parity bits from the corrected data, and the writing unit 432 The corrected data and parity bits are written back to the data array 43 (S207).
The data (merging target data) is read again from the data array 43, and the parity check unit 44 performs a parity check (S204).
At this time, since a parity error is not detected (NO in S205), a stall release signal instructing release of the pipeline installation is transmitted from the parity check unit 44 to the processor 1, and the pipeline installation is released (S209).
Next, the corrected data in the data array 43 (merge target data) and the data from the processor to be written (write target data) are merged, and the parity bit for the merged data (merge data) is a parity bit generator. The data and parity bits generated at 45 and merged by the writing unit 432 are written back to the data array 43 (S210).
Further, the ECC bit generation unit 48 generates an ECC check bit corresponding to the merged data (merge data), and the writing unit 462 writes it back to the check bit array 46 (S211).

以上の動作をパイプライン動作にあてはめたものが、図7〜図10である。
パイプラインは、命令フェッチ、命令デコード、実行(データフェッチなど、命令の種類に応じて様々な機能を実現)、データライトの4ステージ構造であると想定する。
FIGS. 7 to 10 show the above operation applied to the pipeline operation.
The pipeline is assumed to have a four-stage structure of instruction fetch, instruction decode, execution (various functions such as data fetch are implemented according to the type of instruction), and data write.

図7は、データ用1次キャッシュからリードしたときにパリティエラーが発生しなかったケースを示す。
図8は、データ用1次キャッシュからリードしたときにパリティエラーが発生したケースを示す。
図9は、データ用1次キャッシュへライトしたときにパリティエラーが発生しなかったケースを示す。
図10は、データ用1次キャッシュへライトしたときにパリティエラーが発生したケースを示す。
FIG. 7 shows a case where no parity error occurred when reading from the data primary cache.
FIG. 8 shows a case where a parity error has occurred when reading from the data primary cache.
FIG. 9 shows a case where no parity error occurred when writing to the data primary cache.
FIG. 10 shows a case where a parity error has occurred when writing to the data primary cache.

図7において、対象としている命令は、ロード命令(LD命令)であり、データ用1次キャッシュ4にヒットし、このデータ用1次キャッシュ4からデータを取ってきて、プロセッサ1の汎用レジスタに格納する。
時刻=1で、プロセッサ1は、LD命令を命令用1次キャッシュ3から取ってきて、時刻=2で、命令がLD命令であることを判定する。
時刻=3で、データ用1次キャッシュ4でヒットし、データアレイ43からデータをリードしてきて、パリティチェック部44がパリティチェックを行う。
パリティエラーがないのでパイプラインのストール(停止)は、発生しない。
時刻=4で、プロセッサ1は、データ用1次キャッシュ4から読みだされたデータを汎用レジスタに書き込む。
この例では、パイプラインのストールが発生しないので、後続の命令(時刻=2で命令フェッチしている命令)もスムーズに処理が進む。
In FIG. 7, the target instruction is a load instruction (LD instruction), hits the data primary cache 4, fetches data from the data primary cache 4, and stores it in the general-purpose register of the processor 1. To do.
At time = 1, the processor 1 fetches the LD instruction from the instruction primary cache 3, and at time = 2, determines that the instruction is an LD instruction.
At time = 3, the data primary cache 4 is hit, data is read from the data array 43, and the parity check unit 44 performs a parity check.
Since there is no parity error, pipeline stalls do not occur.
At time = 4, the processor 1 writes the data read from the data primary cache 4 to the general-purpose register.
In this example, since the pipeline stall does not occur, the subsequent instruction (instruction fetched at time = 2) also proceeds smoothly.

図8においても、図7と同様に、対象としている命令は、ロード命令であり、データ用1次キャッシュ4にヒットし、データ用1次キャッシュ4からデータを取ってきて、プロセッサ1の汎用レジスタに格納する。
ただし、キャッシュに誤り(ソフトエラー)があることを想定する。
時刻=1で、プロセッサ1は、LD命令を命令用1次キャッシュ3から取ってきて、時刻=2で、命令がLD命令であることを判定する。
時刻=3で、データ用1次キャッシュ4でヒットし、データアレイ43からデータをリードしてきて、パリティチェック部44がパリティチェックを行う。
ここで、キャッシュに誤りがありパリティエラーが検出されたので、プロセッサ1のパイプラインストールが発生する。
つまり、本命令は、データフェッチのステージに留まり、後続命令(時刻=2で命令フェッチしている命令)は、命令デコードステージで停止する。
時刻=4で、本命令に対応するデータ用1次キャッシュ4の動作は、チェックビットアレイ46から該当チェックビットを読み出し、時刻=5でチェックビットを使いデータを訂正し、プロセッサ1に送信するとともにストールを解除する。
時刻=6で、本命令は、汎用レジスタにデータをライトし、後続命令は命令実行のステージを実行する。
このように、キャッシュに誤りがあるケースでは、パイプラインのストールが発生し、プロセッサの性能は低下する。
しかし、このようなエラーの発生頻度は一般的には十分低いため、システムの性能に影響を及ぼすことはない。
むしろ、ECCリードやECC訂正の専用のパイプラインステージを設けていないので、プロセッサの実装コストや複雑さの増大を抑えられるメリットが大きい。
In FIG. 8, as in FIG. 7, the target instruction is a load instruction, hits the data primary cache 4, fetches data from the data primary cache 4, and To store.
However, it is assumed that there is an error (soft error) in the cache.
At time = 1, the processor 1 fetches the LD instruction from the instruction primary cache 3, and at time = 2, determines that the instruction is an LD instruction.
At time = 3, the data primary cache 4 is hit, data is read from the data array 43, and the parity check unit 44 performs a parity check.
Here, since there is an error in the cache and a parity error is detected, pipeline installation of the processor 1 occurs.
That is, this instruction stays at the data fetch stage, and the subsequent instruction (instruction fetched at time = 2) stops at the instruction decode stage.
At time = 4, the operation of the data primary cache 4 corresponding to this instruction reads the corresponding check bit from the check bit array 46, corrects the data using the check bit at time = 5, and transmits it to the processor 1. Release the stall.
At time = 6, this instruction writes data to the general-purpose register, and subsequent instructions execute the instruction execution stage.
Thus, in the case where there is an error in the cache, a pipeline stall occurs, and the performance of the processor decreases.
However, since the frequency of such errors is generally low enough, it does not affect system performance.
Rather, since there is no dedicated pipeline stage for ECC read or ECC correction, there is a great merit that the increase in the mounting cost and complexity of the processor can be suppressed.

図9において、対象としている命令は、ストア命令(ST命令)であり、データ用1次キャッシュ4にヒットし、汎用レジスタのデータをこのキャッシュに格納する。
時刻=1でプロセッサは、ST命令を命令用1次キャッシュ3から取ってきて、時刻=2で、命令がST命令であることを判定する。
時刻=3で、データ用1次キャッシュ4でヒットし、データアレイ43からデータ(マージ対象データ)をリードしてきて、パリティチェック部44がパリティチェックを行う。
パリティエラーがないのでパイプラインのストール(停止)は、発生しない。
また、同時に、汎用レジスタのデータをリードし、パリティビットを生成する。
例えば、8ビットのデータに1ビットのパリティが必要であれば、16ビットのデータをキャッシュに書き戻すときには、2ビットのパリティビットを生成すればよい。
パリティビットは8入力のXORで生成できるので容易かつ高速に生成可能であるので、このステージで生成することは可能である。
一方、ECCのチェックビットの生成には、データアレイからのデータの読み出し、書き込むべきデータ(この場合、汎用レジスタの16ビット)とのマージ、ECCのチェックビットの生成とチェックビットアレイへの書き戻しと、多くの処理が必要であるため、次のステージ(データライト)と、さらに次のステージ(ECCライト)を設け、これらの処理がストールなしに処理できるようにした。
時刻=4では、データライトのステージで、ECCチェックビットを生成し、それと並行して該当データとパリティビットを1次キャッシュに書き戻す。
時刻=5では、特別に設けられたECCチェックビットのライトのステージで、生成されたECCチェックビットをチェックビットアレイ46に書き戻す。
この例では、パイプラインのストールが発生しないので、後続の命令(時刻=2で命令フェッチしている命令)もスムーズに処理が進む。
汎用レジスタの内容をデータ用1次キャッシュに書き戻す処理は、通常のプログラムでは頻繁に発生する事象なので、後続命令をスムーズに処理させることは、情報処理装置の高性能化には必須である。
従って、コストをかけ、特別なステージを設けることは合理的である。
In FIG. 9, the target instruction is a store instruction (ST instruction), hits the data primary cache 4 and stores the data of the general-purpose register in this cache.
At time = 1, the processor fetches the ST instruction from the instruction primary cache 3, and at time = 2, determines that the instruction is an ST instruction.
At time = 3, the data primary cache 4 is hit, data (merging target data) is read from the data array 43, and the parity check unit 44 performs a parity check.
Since there is no parity error, pipeline stalls do not occur.
At the same time, the general register data is read to generate a parity bit.
For example, if 8-bit data requires 1-bit parity, 2-bit parity bits may be generated when 16-bit data is written back to the cache.
Since the parity bit can be generated by XOR of 8 inputs and can be generated easily and at high speed, it can be generated at this stage.
On the other hand, for generation of ECC check bits, data is read from the data array, merged with data to be written (in this case, 16 bits of the general-purpose register), ECC check bits are generated and written back to the check bit array. Since many processes are required, a next stage (data write) and a next stage (ECC write) are provided so that these processes can be performed without stalling.
At time = 4, an ECC check bit is generated at the data write stage, and in parallel, the corresponding data and parity bit are written back to the primary cache.
At time = 5, the generated ECC check bits are written back to the check bit array 46 at a special stage of writing ECC check bits.
In this example, since the pipeline stall does not occur, the subsequent instruction (instruction fetched at time = 2) also proceeds smoothly.
Since the process of writing back the contents of the general-purpose register to the data primary cache is an event that frequently occurs in a normal program, smooth processing of subsequent instructions is essential for improving the performance of the information processing apparatus.
Therefore, it is reasonable to set a special stage at a high cost.

図10において、対象としている命令は、ストア命令であり、データ用1次キャッシュ4にヒットし、汎用レジスタのデータをデータ用1次キャッシュ4に格納する。
但し、キャッシュに誤り(ソフトエラー)があることを想定する。
このケースは、図8の動作と図9の動作を合成したような動作となる。
時刻=1で、プロセッサ1は、ST命令を命令用1次キャッシュ3から取ってきて、時刻=2で、命令がST命令であることを判定する。
時刻=3で、データ用1次キャッシュ4でヒットし、データアレイ43からデータ(マージ対象データ)をリードしてきて、パリティチェック部44がパリティチェックを行う。
ここで、キャッシュに誤りがありパリティエラーが検出されたので、プロセッサ1のパイプラインストールが発生する。
時刻=4で、ECCのチェックビットアレイから該当するECCチェックビットを読みだす。
時刻=5で、ECCのチェックビットを使いデータを訂正し、正しいパリティとともにデータをデータアレイ43に格納する。
時刻=6で、再び、データアレイ43からデータリードを行い、パリティチェック部44がパリティチェックを行う。今回は、パリティチェックの結果、パリティエラーにならないので、パイプラインストールを解除する。
時刻=7で、データライトのステージで、ECCのチェックビットを生成し、それと並行して該当データとパリティビットをデータ用1次キャッシュ4に書き戻す。
時刻=8で、特別に設けられたECCライトのステージで、生成されたチェックビットをチェックビットアレイに書き戻す。
このように、図8と同様に、キャッシュに誤りがあるケースでは、パイプラインのストールが発生し、プロセッサの性能は低下するが、このようなエラーの発生頻度は一般的には十分低いため、システムの性能に影響を及ぼすことはない。
むしろ、リード処理と同等の処理にすることにより、構造が単純になり、低コストで品質のよい情報処理装置が提供可能となる。
In FIG. 10, the target instruction is a store instruction, hits the data primary cache 4, and stores data in the general-purpose register in the data primary cache 4.
However, it is assumed that there is an error (soft error) in the cache.
In this case, the operation shown in FIG. 8 is combined with the operation shown in FIG.
At time = 1, the processor 1 fetches the ST instruction from the instruction primary cache 3, and at time = 2, determines that the instruction is an ST instruction.
At time = 3, the data primary cache 4 is hit, data (merging target data) is read from the data array 43, and the parity check unit 44 performs a parity check.
Here, since there is an error in the cache and a parity error is detected, pipeline installation of the processor 1 occurs.
At time = 4, the corresponding ECC check bit is read from the ECC check bit array.
At time = 5, the ECC check bits are used to correct the data, and the data is stored in the data array 43 together with the correct parity.
At time = 6, data is read from the data array 43 again, and the parity check unit 44 performs the parity check. This time, since the parity check does not result in a parity error, cancel the pipeline installation.
At time = 7, an ECC check bit is generated at the data write stage, and the corresponding data and parity bit are written back to the data primary cache 4 in parallel therewith.
At time = 8, the generated check bits are written back to the check bit array in a special ECC write stage.
Thus, as in FIG. 8, in the case where there is an error in the cache, a pipeline stall occurs and the performance of the processor decreases, but the frequency of occurrence of such an error is generally low enough, Does not affect system performance.
Rather, by making the processing equivalent to the read processing, the structure becomes simple, and it is possible to provide a low-cost and high-quality information processing apparatus.

実施の形態2.
図11に、別の構成の情報処理装置100を示す。
図11の情報処理装置100は、2次キャッシュを持たない構成となっている。
図11において、1はプロセッサ、2はメモリ、3は命令用の1次キャッシュ、4はデータ用の1次キャッシュである。
メモリ2は、ソフトエラー対策としてECCチェックビットを付加している。
命令用の1次キャッシュ3は、パリティビットのみを付加している。
データ用1次キャッシュ4は、パリティビットとECCチェックビットの両方を付加し、実施の形態1で説明した機能を有す。
Embodiment 2. FIG.
FIG. 11 shows an information processing apparatus 100 having another configuration.
The information processing apparatus 100 in FIG. 11 is configured not to have a secondary cache.
In FIG. 11, 1 is a processor, 2 is a memory, 3 is a primary cache for instructions, and 4 is a primary cache for data.
The memory 2 has an ECC check bit added as a countermeasure against soft errors.
The instruction primary cache 3 adds only parity bits.
The data primary cache 4 has both the parity bit and the ECC check bit added, and has the function described in the first embodiment.

実施の形態3.
図12に、別の構成の情報処理装置100を示す。
図12の情報処理装置100は、1次キャッシュを命令とデータで共用する構成である。
図12において、1はプロセッサ、2はメモリ、4は命令・データ共用の1次キャッシュである。
メモリ2は、ソフトエラー対策としてECCチェックビットを付加している。
命令・データ共用1次キャッシュ4は、パリティビットとECCチェックビットの両方を付加し、実施の形態1で説明した機能を有す。
Embodiment 3 FIG.
FIG. 12 shows an information processing apparatus 100 having another configuration.
The information processing apparatus 100 in FIG. 12 is configured to share the primary cache for instructions and data.
In FIG. 12, 1 is a processor, 2 is a memory, and 4 is an instruction / data shared primary cache.
The memory 2 has an ECC check bit added as a countermeasure against soft errors.
The instruction / data shared primary cache 4 has both the parity bit and the ECC check bit, and has the function described in the first embodiment.

実施の形態4.
図13に、別の構成の情報処理装置100を示す。
図13の情報処理装置100は、マルチプロセッサの例である。
図13において、1と101はプロセッサ、2はメモリ、3と103は命令用の1次キャッシュ、4と104はデータ用の1次キャッシュ、5と105は命令・データ共用の2次キャッシュである。
メモリ2と2次キャッシュ5、105は、ソフトエラー対策としてECCチェックビットを付加している。
命令用の1次キャッシュ3、103は、パリティビットのみを付加している。
データ用1次キャッシュ4、104は、パリティビットとECCチェックビットの両方を付加し、実施の形態1で説明した機能を有す。
Embodiment 4 FIG.
FIG. 13 shows an information processing apparatus 100 having another configuration.
The information processing apparatus 100 in FIG. 13 is an example of a multiprocessor.
In FIG. 13, 1 and 101 are processors, 2 is a memory, 3 and 103 are primary caches for instructions, 4 and 104 are primary caches for data, and 5 and 105 are secondary caches for sharing instructions and data. .
The memory 2 and the secondary caches 5 and 105 have an ECC check bit added as a countermeasure against soft errors.
Only the parity bit is added to the primary caches 3 and 103 for instructions.
The data primary caches 4 and 104 have both the parity bit and the ECC check bit added, and have the functions described in the first embodiment.

以上の実施の形態1〜4では、
プロセッサとデータを送受信するキャッシュ装置において、
(a)データの書き換えが発生するデータ用キャッシュは
(b)データのパリティをチェックするビットを持ち
(c)データのECCをチェックするビットを持ち
(d)データを読み出したときに、パリティをチェックする機能を持ち
(e)パリティエラーが検出されたときに、プロセッサのパイプラインを停止させる手段を有し、
(f)ECCを読み出し、ECCと(d)により読みだされたデータから正しいデータを復元する手段を有し、
(g)復元されたデータをプロセッサに供給手段を有し、
(h)プロセッサに復元されたデータを供給したらパイプラインの停止を解除する手段を有する情報処理装置を説明した。
In the above first to fourth embodiments,
In a cache device that transmits and receives data to and from a processor,
(A) Data cache where data rewrite occurs (b) Has a bit to check data parity (c) Has a bit to check data ECC (d) Checks parity when data is read (E) having a means for stopping the processor pipeline when a parity error is detected;
(F) having means for reading out the ECC and restoring correct data from the ECC and the data read out in (d);
(G) having means for supplying the restored data to the processor;
(H) The information processing apparatus having means for releasing the suspension of the pipeline when the restored data is supplied to the processor has been described.

また、実施の形態1〜4では、
(a)プロセッサがデータをキャッシュ装置に書き戻すとき、そのデータのパリティを生成し、データにパリティビットを書き戻す機能を持ち、
(b)同時にプロセッサのキャッシュラインからすべてのデータを順次読みだすためのパイプラインステージを有し、
(c)書き戻されるデータをキャッシュラインのデータの一部として置き換える手段を有し、
(d)ECCを再計算する手段を有し、
(e)ECCを書き戻す手段を有し、
(f)上記(c)〜(e)をパイプラインステージに割り当てた情報処理装置を説明した。
In the first to fourth embodiments,
(A) When the processor writes data back to the cache device, it has a function of generating parity of the data and writing back parity bits to the data,
(B) having a pipeline stage for sequentially reading all data from the processor cache line;
(C) having means for replacing the data to be written back as part of the data in the cache line;
(D) having means for recalculating the ECC;
(E) having means for writing back ECC;
(F) The information processing apparatus in which the above (c) to (e) are assigned to the pipeline stage has been described.

1 プロセッサ、2 メモリ、3 命令用1次キャッシュ、4 データ用1次キャッシュ、5 2次キャッシュ、41 タグアレイ、42 ヒット判定部、43 データアレイ、44 パリティチェック部、45 パリティビット生成部、46 チェックビットアレイ、47 誤り訂正部、48 ECCビット生成部、100 情報処理装置、431 読み出し部、432 書き込み部、461 読み出し部、462 書き込み部。   1 processor, 2 memory, 3 instruction primary cache, 4 data primary cache, 5 secondary cache, 41 tag array, 42 hit determination unit, 43 data array, 44 parity check unit, 45 parity bit generation unit, 46 check Bit array, 47 error correction unit, 48 ECC bit generation unit, 100 information processing device, 431 reading unit, 432 writing unit, 461 reading unit, 462 writing unit.

Claims (8)

パイプライン処理が行われるプロセッサとデータを送受信するキャッシュ装置であって、
データを、パリティビットとともに記憶するデータアレイと、
前記データアレイにおいて記憶されているデータのECC(Error Check and Correction)ビットを記憶するチェックビットアレイと、
前記プロセッサからリード要求があった際に、リード要求の対象であるリード対象データに対して当該リード対象データのパリティビットを用いてパリティチェックを行い、リード対象データのデータ誤りを検出した場合に、前記プロセッサに対してパイプラインストールを指示するストール指示信号を出力するパリティチェック部と、
前記パリティチェック部によりリード対象データのデータ誤りが検出された場合に、リード対象データのECCビットを用いて、リード対象データの誤り訂正を行い、誤り訂正後のリード対象データと、パイプラインストールの解除を指示するストール解除信号とを前記プロセッサに出力する誤り訂正部とを有することを特徴とするキャッシュ装置。
A cache device that transmits and receives data to and from a processor that performs pipeline processing,
A data array for storing data along with parity bits;
A check bit array for storing ECC (Error Check and Correction) bits of data stored in the data array;
When there is a read request from the processor, a parity check is performed on the read target data that is the target of the read request using the parity bit of the read target data, and when a data error in the read target data is detected, A parity check unit that outputs a stall instruction signal for instructing the processor to install a pipeline;
When a data error in the read target data is detected by the parity check unit, error correction of the read target data is performed using the ECC bit of the read target data, and the read target data after the error correction and release of the pipeline installation are performed. A cache device, comprising: an error correction unit that outputs a stall release signal instructing to the processor.
前記誤り訂正部は、
パイプラインストール中に、リード対象データの誤り訂正を行い、誤り訂正後のリード対象データを前記プロセッサに送信することを特徴とする請求項1に記載のキャッシュ装置。
The error correction unit is
The cache device according to claim 1, wherein during pipeline installation, error correction is performed on read target data, and the read target data after error correction is transmitted to the processor.
パイプライン処理が行われるプロセッサとデータを送受信するキャッシュ装置であって、
データを、パリティビットとともに記憶するデータアレイと、
前記データアレイにおいて記憶されているデータのECCビットを記憶するチェックビットアレイと、
前記プロセッサからライト要求があった際に、前記データアレイに既に記憶されているデータであってライト要求の対象であるライト対象データとマージされるマージ対象データに対して当該マージ対象データのパリティビットを用いてパリティチェックを行い、マージ対象データのデータ誤りを検出した場合に、前記プロセッサに対してパイプラインストールを指示するストール指示信号を出力するパリティチェック部と、
前記パリティチェック部によりマージ対象データのデータ誤りが検出された場合に、マージ対象データのECCビットを用いて、マージ対象データの誤り訂正を行う誤り訂正部と、
誤り訂正後のマージ対象データのパリティビットを生成するパリティビット生成部とを有し、
前記パリティチェック部は、
前記パリティビット生成部により生成されたパリティビットを用いてマージ対象データにデータ誤りがないことを確認し、パイプラインストールの解除を指示するストール解除信号を前記プロセッサに出力することを特徴とするキャッシュ装置。
A cache device that transmits and receives data to and from a processor that performs pipeline processing,
A data array for storing data along with parity bits;
A check bit array for storing ECC bits of data stored in the data array;
When there is a write request from the processor, the parity bit of the merge target data with respect to the merge target data merged with the write target data that is already stored in the data array and is the target of the write request A parity check unit that outputs a stall instruction signal for instructing the pipeline installation to the processor when a data error in the data to be merged is detected.
An error correction unit that performs error correction of the merge target data using an ECC bit of the merge target data when a data error of the merge target data is detected by the parity check unit;
A parity bit generation unit that generates parity bits of merge target data after error correction,
The parity check unit
A cache device characterized by confirming that there is no data error in the data to be merged using the parity bit generated by the parity bit generation unit, and outputting a stall release signal instructing release of pipeline installation to the processor .
前記誤り訂正部は、
パイプラインストール中に、マージ対象データのECCビットを用いて、マージ対象データの誤り訂正を行い、
前記パリティビット生成部は、
パイプラインストール中に、誤り訂正後のマージ対象データのパリティビットを生成し、
前記パリティチェック部は、
パイプラインストール中に、前記パリティビット生成部により生成されたパリティビットを用いてマージ対象データにデータ誤りがないことを確認することを特徴とする請求項3に記載のキャッシュ装置。
The error correction unit is
During the pipeline installation, using the ECC bit of the merge target data, error correction of the merge target data is performed,
The parity bit generator is
During the pipeline installation, the parity bit of the data to be merged after error correction is generated,
The parity check unit
4. The cache device according to claim 3, wherein during the pipeline installation, it is confirmed that there is no data error in the data to be merged using the parity bit generated by the parity bit generation unit.
前記キャッシュ装置は、更に、
前記パリティチェック部によりマージ対象データにデータ誤りがないことが確認された際に、ライト対象データとマージ対象データとをマージして前記データアレイに書き込むとともに、ライト対象データとマージ対象データとのマージデータのパリティビットを前記データアレイに書き込む書き込み部を有することを特徴とする請求項3又は4に記載のキャッシュ装置。
The cache device further includes:
When the parity check unit confirms that there is no data error in the merge target data, the write target data and the merge target data are merged and written to the data array, and the write target data and the merge target data are merged. 5. The cache device according to claim 3, further comprising a writing unit that writes a parity bit of data to the data array.
前記キャッシュ装置は、更に、
前記パリティチェック部によりマージ対象データにデータ誤りがないことが確認された際に、ライト対象データとマージ対象データとのマージデータのECCビットを生成するECCビット生成部を有し、
前記書き込み部は、
前記ECCビット生成部により生成されたマージデータのECCビットを前記チェックビットアレイに書き込むことを特徴とする請求項5に記載のキャッシュ装置。
The cache device further includes:
An ECC bit generation unit that generates an ECC bit of merge data between the write target data and the merge target data when the parity check unit confirms that there is no data error in the merge target data;
The writing unit
The cache device according to claim 5, wherein ECC bits of merge data generated by the ECC bit generation unit are written in the check bit array.
前記書き込み部は、
マージデータのECCビットの前記チェックビットアレイへの書き込みのために設けられているパイプラインステージにおいて、前記ECCビット生成部により生成されたマージデータのECCビットを前記チェックビットアレイに書き込むことを特徴とする請求項6に記載のキャッシュ装置。
The writing unit
In a pipeline stage provided for writing ECC bits of merge data to the check bit array, the ECC bits of merge data generated by the ECC bit generation unit are written to the check bit array. The cache device according to claim 6.
請求項1〜7のいずれかに記載のキャッシュ装置を含むことを特徴とする情報処理装置。   An information processing apparatus comprising the cache device according to claim 1.
JP2010131574A 2010-06-09 2010-06-09 Cache device and information processor Pending JP2011257966A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010131574A JP2011257966A (en) 2010-06-09 2010-06-09 Cache device and information processor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010131574A JP2011257966A (en) 2010-06-09 2010-06-09 Cache device and information processor

Publications (1)

Publication Number Publication Date
JP2011257966A true JP2011257966A (en) 2011-12-22

Family

ID=45474082

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010131574A Pending JP2011257966A (en) 2010-06-09 2010-06-09 Cache device and information processor

Country Status (1)

Country Link
JP (1) JP2011257966A (en)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2894566A1 (en) 2014-01-08 2015-07-15 Renesas Electronics Corporation Data processing apparatus using error detection in combination with error correction
WO2015141730A1 (en) * 2014-03-18 2015-09-24 株式会社 東芝 Cache memory, error correction circuit, and processor system
KR20160046225A (en) * 2014-10-20 2016-04-28 한국전자통신연구원 Cache memory with fault tolerance
KR101629411B1 (en) * 2015-02-03 2016-06-10 한국전자통신연구원 Apparatus and method for controlling level 0 cache
US10642685B2 (en) 2014-03-20 2020-05-05 Kioxia Corporation Cache memory and processor system

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9647693B2 (en) 2014-01-08 2017-05-09 Renesas Electronics Corporation Data processing apparatus
JP2015130085A (en) * 2014-01-08 2015-07-16 ルネサスエレクトロニクス株式会社 Data processor
US10230402B2 (en) 2014-01-08 2019-03-12 Renesas Electronics Corporation Data processing apparatus
EP2894566A1 (en) 2014-01-08 2015-07-15 Renesas Electronics Corporation Data processing apparatus using error detection in combination with error correction
US9935658B2 (en) 2014-01-08 2018-04-03 Renesas Electronics Corporation Data processing apparatus
JP2015179307A (en) * 2014-03-18 2015-10-08 株式会社東芝 Cache memory, error correction circuit, and processor system
US10120750B2 (en) 2014-03-18 2018-11-06 Kabushiki Kaisha Toshiba Cache memory, error correction circuitry, and processor system
WO2015141730A1 (en) * 2014-03-18 2015-09-24 株式会社 東芝 Cache memory, error correction circuit, and processor system
US10642685B2 (en) 2014-03-20 2020-05-05 Kioxia Corporation Cache memory and processor system
KR20160046225A (en) * 2014-10-20 2016-04-28 한국전자통신연구원 Cache memory with fault tolerance
KR102131337B1 (en) 2014-10-20 2020-07-07 한국전자통신연구원 Cache memory with fault tolerance
KR101629411B1 (en) * 2015-02-03 2016-06-10 한국전자통신연구원 Apparatus and method for controlling level 0 cache
US9823963B2 (en) 2015-02-03 2017-11-21 Electronics And Telecommunications Research Institute Apparatus and method for controlling level 0 cache

Similar Documents

Publication Publication Date Title
US10140179B2 (en) Combined group ECC protection and subgroup parity protection
US8589763B2 (en) Cache memory system
US8127205B2 (en) Error correction code generation method and memory control device
JP5212369B2 (en) Operation unit and control method of operation unit
US6543028B1 (en) Silent data corruption prevention due to instruction corruption by soft errors
US9003260B2 (en) Partial-writes to ECC (error check code) enabled memories
JP2007133986A (en) Semiconductor memory
JP2008139908A (en) Memory control device, computer system and data reproducing and recording device
JPS6324428A (en) Cache memory
CN107992376A (en) Dsp processor data storage Active Fault Tolerant method and apparatus
JP4339914B2 (en) Error correction code generation method and memory management device
JP2011257966A (en) Cache device and information processor
KR20170031758A (en) Method and apparatus for reverse memory sparing
US7058877B2 (en) Method and apparatus for providing error correction within a register file of a CPU
JP2011048681A (en) Processor
CN112181712B (en) Method and device for improving reliability of processor core
US20070186135A1 (en) Processor system and methodology with background error handling feature
US8495452B2 (en) Handling corrupted background data in an out of order execution environment
JP2005222618A (en) Semiconductor integrated circuit device
JP5843804B2 (en) Arithmetic apparatus and error processing method
US9720764B2 (en) Uncorrectable memory errors in pipelined CPUs
JP2013061887A (en) Fault position determining circuit, storage device and information processing apparatus
JP2011054221A (en) Storage device and electronic device
US8533565B2 (en) Cache controller and cache controlling method
JPH08286977A (en) System for processing fault of in-store cache