JP4865016B2 - プロセッサ - Google Patents
プロセッサ Download PDFInfo
- Publication number
- JP4865016B2 JP4865016B2 JP2009197259A JP2009197259A JP4865016B2 JP 4865016 B2 JP4865016 B2 JP 4865016B2 JP 2009197259 A JP2009197259 A JP 2009197259A JP 2009197259 A JP2009197259 A JP 2009197259A JP 4865016 B2 JP4865016 B2 JP 4865016B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- ecc
- read
- storage unit
- written
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 239000004065 semiconductor Substances 0.000 claims description 8
- 238000004193 electrokinetic chromatography Methods 0.000 description 243
- 238000000034 method Methods 0.000 description 21
- 238000010586 diagram Methods 0.000 description 12
- 230000003111 delayed effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1048—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Detection And Correction Of Errors (AREA)
- Memory System (AREA)
Description
例えば、メモリあるいはキャッシュメモリに記憶されたあるデータ(例えば128ビット)が更新される場合は、その更新されたデータの全体(128ビット)についてエラー訂正符号(例えば9ビット)の計算が行われ、その更新データとエラー訂正符号(以下、ECCともいう)が同時にメモリに書き込まれる。このとき、ECCの計算には、複数サイクルの時間が掛かる。
(第1の実施の形態)
1.プロセッサの全体構成
まず、図1に基づき、本発明の第1の実施の形態に係わるプロセッサの概略構成を説明する。図1は、本発明の第1の実施の形態に係わるプロセッサの構成を示す概略構成図である。
図1に示すように、プロセッサ1は、1チップの半導体装置であり、その1つのチップには、算術論理演算装置(以下、ALUという)11と、レジスタファイル12と、ロード/ストアユニット13と、記憶部としての主メモリ14と、制御ユニット15とが搭載されている。本実施の形態では、プロセッサ1は、処理の高速化のためのパイプライン処理機構を有し、各パイプラインは複数のステージで構成される。プロセッサ1の各命令を実現するための処理は、複数の処理ステップに分割され、各処理ステップは各ステージにてクロックに同期して順に実行される。異なるステージは、おのおの異なる命令の処理ステップを同時に実行できるため、パイプライン全体では複数の命令を同時に実行することができる。
ALU11は、制御ユニット15の制御の下、レジスタファイル12からのデータに対して、所定の演算を行い、演算結果をレジスタファイル12に書き込む。
2.データ構造
図2は、主メモリ14に記憶されるデータのデータ構造の例を示す図である。主メモリ14に記憶される各データ21は、128ビットのデータからなるデータ部22と、9ビットのECCからなるECC部23と、3ビットのECC状態ビット(stat)からなるECC状態ビット部24を含む、140ビットのデータである。データ部22のデータは、演算用あるいは演算結果のデータである。ECC部23のECCは、データ部22のデータについてのエラー訂正符号である。
図4は、タイマ13aのカウント値Tmを説明するための図である。タイマ13aは、カウンタであり、プロセッサ1内の所定のクロックに従って、1つずつインクリメントするように動作し、カウントアップすると「0」に戻る。図5に示すように、タイマ13aは2ビットカウンタであり、「00」から「01」へインクリメントし、「01」から「10」へ、そして次に「11」にインクリメントして、「00」に戻るように、カウント値Tmは、そのクロックに応じて変化する。
図5は、ロード/ストアユニット13の構成を示す構成図である。図5に示すように、ロード/ストアユニット13は、パイプライン構造を有し、9つのステージを有する。ロード/ストアユニット13は、上述したようにタイマ13a、ECC計算器13b及びECCレジスタ群13cを有し、さらに、図5に示すように、アドレス計算器31、セレクタ群32、差分器33、セレクタ34及び比較器35を含む。以下、各ステージについて説明する。なお、図6において、符号を付さないブロックは、レジスタを示す。
ステージg6では、データの書き込み時には、そのデータについて、ECCの書き込みと、フラグデータ24bを「0」にするためのリセットが行われる。さらに、計算されたECCがECCレジスタ13c1にストアされる。データの読み出し時には、差分器33,セレクタ34及び比較器35が動作して、ECCの比較が行われる。比較の結果、一致しなければ、比較器35からECCエラーが出力される。ECCエラーは、制御ユニット15へ伝達される。なお、ステージg6において、図5の「stat」と「ECC」を含む、一点鎖線で示す部分102は、主メモリ14に存在する。
ステージi8では、ECCレジスタ13c2のデータが次のECCレジスタ13c3に転送される。
次に、以上のような構成のロード/ストアユニット13の動作を、データの書き込みと読み出しの場合に分けて説明する。
5.1 データの書き込み時の動作
図6は、データの書き込み時のロード/ストアユニット13の動作を説明するための図である。
ステージa0で、ロード/ストアユニット13には、主メモリ14のアドレスRA,RBと、書き込みデータ(W data)が与えられる。
ステージc2で、まず、そのアドレスAddrのデータが読み出される。書き込みデータ(W data)は、一点鎖線L1で示すようにステージc2へ伝達される。その後、ECC状態ビット(stat)のフラグデータ24aに「1」と、そのときのタイマ13aのカウント値Tmとを、書き込みデータ(W data)と共に主メモリ14に書き込む(第1回目の書き込みR1)。このとき、ECCの書き換えは行われない。すなわち、第1回目の書き込みで、フラグデータ24aが、ECCが正しくないことを示す「1」にセットされる。
ステージe4とf5で、一点鎖線L3で示すようにマージされたデータについてのECCが、ECC計算器13bにより計算される。
図7は、データの読み出し時にフラグデータ24aが「0」の場合におけるロード/ストアユニット13の動作を説明するための図である。読み出したデータ(read data)のECC状態ビット(stat)に含まれるフラグデータ24aが「0」であるときは、読み出したECCが正しいことを示している。
ステージc2では、フラグデータ24aが「0」であるときには、ステージd3で、読み出したECCが、一点鎖線L12で示すように、ECC用のレジスタにセットされ、読み出したデータ(read data)は、一点鎖線L13で示すように、対応するレジスタ(R data)にセットされる。
図8は、データの読み出し時にフラグデータ24aが「1」の場合におけるロード/ストアユニット13の動作を説明するための図である。読み出したデータ(read data)のECC状態ビット(stat)に含まれるフラグデータ24aが「1」であるときは、読み出したECCが正しいものでないことを示している。
上記の場合では、先行サイクル数=((3)−(1)+(4))=2となる。よって、ECCレジスタ群13cへのストアが2サイクル先行していることになる。
以上のように、本実施の形態のプロセッサによれば、フォワーディング回路は、従来のようなアドレス比較回路及び書き込みデータ用のレジスタを有せず、フォワーディング回路の回路規模を小さくすることができ、ひいては、フォワーディング回路の占めるチップ上の面積も小さくすることができる。本実施の形態のプロセッサ1では、ECCが9ビットであれば、フォワーディング回路において、各ECCレジスタからの配線は9本で済む。また、アドレス比較回路とデータ書き込み用のレジスタがないので、プロセッサ1の消費電力の削減にも繋がる。
第1の実施の形態では、読み出したデータ(R data)のECCが正しくない場合は、タイマの値を利用して、ECCレジスタ群13c中から、読み出したデータ(R data)に対応するECCを保持するECCレジスタを選択しているが、本実施の形態のプロセッサでは、読み出したデータ(R data)のECCが正しくない場合は、読み出しのパイプライン処理をフラッシュして、そのデータの読み出しを中止し、データの読み出しを再度実行させるようにした。
以下、本実施の形態に係るプロセッサの構成を説明するが、第1の実施の形態と同じ構成要素については、同じ符号を付し、説明は省略する。特に、主として、ロード/ストアユニットの構成が異なるので、ロード/ストアユニットの構成について説明する。
図9の構成によれば、データの書き込み時には、ステージc2で、フラグデータ24aの「1」と共にデータが、主メモリ14へ書き込まれる(第1回目の書き込みR1)。
以上のように、本実施の形態によれば、データの読み出し時にECCが正しくないことを示すフラグデータが立っていたときには、そのデータの読み出しのパイプライン処理をフラッシュし、同じデータの読み出し処理が再度実行されるようにしたので、第1の実施の形態におけるECCレジスタ群13c等も省くことができ、フォワーディング回路のさらに簡略化することができる。
Claims (5)
- パイプライン処理を実行可能なプロセッサであって、
ALUと、
ロード/ストアユニットと、
所定のクロックに従って動作するカウンタと、
ECC計算器と、
複数のECCレジスタと、
を有し、
前記ロード/ストアユニットは、
記憶部にデータを書き込む時に、書き込みデータと前記カウンタのカウント値とを前記記憶部に書き込むと共に、その書き込みデータについてのECCが正しくないことを示すECC状態フラグデータを前記記憶部にセットし、そのセット後、前記ECC計算器に前記書き込みデータについての前記ECCを計算させ、前記ECCが計算して得られた後、その計算して得られたECCを前記記憶部に書き込むと共に、前記ECC状態フラグデータをリセットし、
前記記憶部からデータを読み出す時には、前記記憶部からデータと、そのデータについての前記ECC状態フラグデータ、前記カウンタのカウント値及びECCを読み出し、読み出したデータからECCの再計算を実行し、前記読み出したデータについての前記ECC状態フラグデータがセットされている場合、読み出したカウント値から比較のためのECCレジスタを前記複数のECCレジスタの中から決定し、前記読み出したデータから再計算したECCと、前記比較のためのECCレジスタのECCとを比較し、前記読み出したデータの前記ECC状態フラグデータがセットされていない場合、前記読み出したデータから再計算して得られたECCと、読み出したECCとを比較することによって、ECCエラー判定を行うことを特徴とするプロセッサ。 - パイプライン処理を実行可能なプロセッサであって、
ALUと、
ロード/ストアユニットと、
ECC計算器と、
を有し、
前記ロード/ストアユニットは、
記憶部にデータを書き込む時に、書き込みデータを前記記憶部に書き込むと共に、その書き込みデータについてのECCが正しくないことを示すECC状態フラグデータを前記記憶部にセットし、そのセット後、前記ECC計算器に前記書き込みデータについての前記ECCを計算させ、前記ECCが計算して得られた後、その計算して得られたECCを前記記憶部に書き込むと共に、前記ECC状態フラグデータをリセットし、
前記記憶部からデータを読み出す時には、前記記憶部からデータと、そのデータについての前記ECC状態フラグデータ及びECCを読み出し、前記ECC状態フラグデータがセットされている場合、前記データの読み出しを再実行し、前記ECC状態フラグデータがセットされていない場合、前記読み出したデータから再計算して得られたECCと、読み出したECCとを比較することによって、ECCエラー判定を行うことを特徴とするプロセッサ。 - 前記ロード/ストアユニットは、前記書き込みデータが前記記憶部から読み出されるデータの一部であるときには、前記書き込みデータを前記記憶部に書き込む前に、その書き込みによって更新される前のデータを前記記憶部から読み出し、前記読み出したデータと前記一部のデータとから書き込みのためのデータを生成して前記書き込みデータを前記記憶部に書き込むことを特徴とする請求項1又は2に記載にプロセッサ。
- 前記記憶部は、主メモリ、キャッシュメモリあるいはローカルメモリであることを特徴とする請求項1から3のいずれか1つに記載のプロセッサ。
- 前記記憶部は、前記ロード/ストアユニット、前記ALU、前記カウンタ、前記ECC計算器及び前記複数のECCレジスタと共に1つの半導体チップに搭載されていることを特徴とする請求項1に記載のプロセッサ。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009197259A JP4865016B2 (ja) | 2009-08-27 | 2009-08-27 | プロセッサ |
US12/862,081 US8484520B2 (en) | 2009-08-27 | 2010-08-24 | Processor capable of determining ECC errors |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009197259A JP4865016B2 (ja) | 2009-08-27 | 2009-08-27 | プロセッサ |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2011048681A JP2011048681A (ja) | 2011-03-10 |
JP4865016B2 true JP4865016B2 (ja) | 2012-02-01 |
Family
ID=43626633
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009197259A Expired - Fee Related JP4865016B2 (ja) | 2009-08-27 | 2009-08-27 | プロセッサ |
Country Status (2)
Country | Link |
---|---|
US (1) | US8484520B2 (ja) |
JP (1) | JP4865016B2 (ja) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2013136462A1 (ja) * | 2012-03-14 | 2013-09-19 | 富士通株式会社 | 監視装置,情報処理装置,監視方法,および監視プログラム |
US9535785B2 (en) * | 2014-01-17 | 2017-01-03 | Macronix International Co., Ltd. | ECC method for flash memory |
CN104810061B (zh) * | 2014-01-28 | 2018-08-24 | 旺宏电子股份有限公司 | 存储器及其操作方法 |
US9766975B2 (en) | 2015-09-01 | 2017-09-19 | International Business Machines Corporation | Partial ECC handling for a byte-write capable register |
US10176038B2 (en) | 2015-09-01 | 2019-01-08 | International Business Machines Corporation | Partial ECC mechanism for a byte-write capable register |
US9985655B2 (en) | 2015-09-01 | 2018-05-29 | International Business Machines Corporation | Generating ECC values for byte-write capable registers |
WO2017192626A1 (en) * | 2016-05-02 | 2017-11-09 | Intel Corporation | Internal error checking and correction (ecc) with extra system bits |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4768197A (en) * | 1986-09-15 | 1988-08-30 | Amdahl Corporation | Cache error code update |
JPH04369733A (ja) * | 1991-06-19 | 1992-12-22 | Nec Corp | 情報処理装置 |
US5535226A (en) * | 1994-05-31 | 1996-07-09 | International Business Machines Corporation | On-chip ECC status |
US5533189A (en) * | 1994-11-28 | 1996-07-02 | International Business Machines Corporation | System and method for error correction code generation |
US20020029365A1 (en) * | 1998-12-17 | 2002-03-07 | Yoshimichi Sato | Information processing apparatus |
US6804799B2 (en) * | 2001-06-26 | 2004-10-12 | Advanced Micro Devices, Inc. | Using type bits to track storage of ECC and predecode bits in a level two cache |
JP3675748B2 (ja) * | 2001-09-21 | 2005-07-27 | 株式会社日立製作所 | データ記憶制御装置 |
US7320100B2 (en) * | 2003-05-20 | 2008-01-15 | Cray Inc. | Apparatus and method for memory with bit swapping on the fly and testing |
JP4164473B2 (ja) * | 2004-06-11 | 2008-10-15 | キヤノン株式会社 | 機能メモリアクセス制御システム、機能メモリ装置及びその制御方法、プログラム |
US7865769B2 (en) * | 2007-06-27 | 2011-01-04 | International Business Machines Corporation | In situ register state error recovery and restart mechanism |
US8316277B2 (en) * | 2007-12-06 | 2012-11-20 | Fusion-Io, Inc. | Apparatus, system, and method for ensuring data validity in a data storage process |
US7814300B2 (en) * | 2008-04-30 | 2010-10-12 | Freescale Semiconductor, Inc. | Configurable pipeline to process an operation at alternate pipeline stages depending on ECC/parity protection mode of memory access |
JP2010009383A (ja) * | 2008-06-27 | 2010-01-14 | Fujitsu Ltd | メモリ装置、および情報処理システム |
-
2009
- 2009-08-27 JP JP2009197259A patent/JP4865016B2/ja not_active Expired - Fee Related
-
2010
- 2010-08-24 US US12/862,081 patent/US8484520B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2011048681A (ja) | 2011-03-10 |
US8484520B2 (en) | 2013-07-09 |
US20110055647A1 (en) | 2011-03-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4865016B2 (ja) | プロセッサ | |
US6289445B2 (en) | Circuit and method for initiating exception routines using implicit exception checking | |
US10365979B2 (en) | Lockstepped CPU selection based on failure status | |
US20130152048A1 (en) | Test method, processing device, test program generation method and test program generator | |
US20150019843A1 (en) | Method and apparatus for selective renaming in a microprocessor | |
JP4202244B2 (ja) | Vliw型dsp,及びその動作方法 | |
JP2008107983A (ja) | キャッシュメモリ | |
JP2006018413A (ja) | プロセッサおよびパイプライン再構成制御方法 | |
TWI648624B (zh) | 管理用於分支預測的歷史資訊的裝置及方法 | |
US6189093B1 (en) | System for initiating exception routine in response to memory access exception by storing exception information and exception bit within architectured register | |
EP1770507A2 (en) | Pipeline processing based on RISC architecture | |
JP7048612B2 (ja) | ベクトル生成命令 | |
US11372712B2 (en) | Processing device and method of controlling processing device | |
JP2011257966A (ja) | キャッシュ装置及び情報処理装置 | |
JP7077862B2 (ja) | 演算処理装置及び演算処理装置の制御方法 | |
US8484446B2 (en) | Microprocessor saving data stored in register and register saving method | |
JP5843804B2 (ja) | 演算装置およびエラー処理方法 | |
JP5480793B2 (ja) | プログラマブルコントローラ | |
JP6160571B2 (ja) | データ処理装置 | |
JP3476314B2 (ja) | マイクロプロセッサ | |
JP2824484B2 (ja) | パイプライン処理計算機 | |
JP6358122B2 (ja) | マイクロコンピュータ | |
US9021234B2 (en) | Indirect designation of physical configuration number as logical configuration number based on correlation information, within parallel computing | |
TW202418068A (zh) | 處理器及自處理器偵測軟錯誤的方法 | |
JP2010033323A (ja) | マルチプロセッサ及びそれをデバッグするデバッグ装置並びに前記マルチプロセッサをデバッグするデバッグ方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20110804 |
|
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: 20111018 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20111109 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20141118 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20141118 Year of fee payment: 3 |
|
LAPS | Cancellation because of no payment of annual fees |