JP2010231619A - 情報処理装置 - Google Patents

情報処理装置 Download PDF

Info

Publication number
JP2010231619A
JP2010231619A JP2009080010A JP2009080010A JP2010231619A JP 2010231619 A JP2010231619 A JP 2010231619A JP 2009080010 A JP2009080010 A JP 2009080010A JP 2009080010 A JP2009080010 A JP 2009080010A JP 2010231619 A JP2010231619 A JP 2010231619A
Authority
JP
Japan
Prior art keywords
memory
cpu
error
interrupt
identification information
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.)
Withdrawn
Application number
JP2009080010A
Other languages
English (en)
Inventor
Tetsuya Yamada
哲也 山田
Makoto Ishikawa
誠 石川
Masashi Takada
雅士 高田
Hiromichi Yamada
弘道 山田
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.)
Renesas Electronics Corp
Original Assignee
Renesas Electronics 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 Renesas Electronics Corp filed Critical Renesas Electronics Corp
Priority to JP2009080010A priority Critical patent/JP2010231619A/ja
Priority to US12/721,208 priority patent/US20100251017A1/en
Publication of JP2010231619A publication Critical patent/JP2010231619A/ja
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • 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/1048Adding 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
    • 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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0721Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment within a central processing unit [CPU]
    • G06F11/0724Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment within a central processing unit [CPU] in a multiprocessor or a multi-core unit
    • 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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0766Error or fault reporting or storing
    • G06F11/0772Means for error signaling, e.g. using interrupts, exception flags, dedicated error registers
    • 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/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0811Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Debugging And Monitoring (AREA)

Abstract

【課題】それぞれメモリにアクセス可能な複数のCPUを含む情報処理装置において、情報処理装置での処理形態に応じたメモリエラー処理を可能にする。
【解決手段】メモリを有する複数のCPU(200〜203)と、それぞれのCPUは、上記メモリにアクセスしたCPUを識別可能なCPU識別情報を記憶可能な第1記憶部(CPUID)を有する。メモリにアクセスしたときソフトウェアエラーが発生すると、メモリを有するCPUは、どのCPUが該当するメモリをアクセスしたかを識別するCPU識別情報を第1記憶部に記憶し、メモリのソフトエラー発生を割込みコントローラ(30)に通知する。上記CPUは、上記割り込みコントローラからメモリのソフトウェアエラーの割り込みを受理した後は、上記第1記憶部の記憶情報を用いて、アクセスしたCPUを認識し、エラー処理が行われる。
【選択図】図1

Description

本発明は、情報処理装置におけるソフトウェアエラー処理技術に関し、例えばメモリにECC(Error Correcting Code)やパリティなどのメモリのエラーを検出する機構を備えた複数のCPU(中央処理装置)を有するマイクロプロセッサに適用して有効な技術に関する。
半導体技術の進歩により、微細化が進み、複数のCPUや機能ブロックが搭載されるマイクロプロセッサが開発されているが、特にメモリのソフトウェアエラーによる誤動作の影響は顕著となっている。ソフトウェアエラーは、宇宙線のうち、主にアルファ線や中性子線がメモリセルの内容を破壊してしまうことにより生じる。ソフトウェアエラーは、ハードウェアエラーと異なり、永久故障ではなく一時故障であるため、メモリセルの内容を訂正することができる。このソフトウェアエラーに対して、エラーの検出を行うパリティや、検出または訂正を行うECC(Error Correcting Code)機能をメモリに付加することが一般的である。
微細化に伴う集積度の向上により、複数のCPUが搭載されるマイクロプロセッサでは、それぞれのCPUの1次RAM(ランダム・アクセス・メモリ)や1次キャッシュ、共有メモリとしての2次RAMや2次キャッシュ、ROM(リード・オンリー・メモリ)など多くのメモリが搭載される。高信頼化のために、各メモリに対して、パリティやECC機能を実装することが必要となっている。複数のCPUと複数のメモリを搭載するマイクロプロセッサでは、どのようにメモリエラーを検出し、訂正するかが、信頼度を上げるために重要となる。
CPU内のメモリのうち、1次キャッシュメモリのパリティエラーの処理方法として、割り込みによるパリティエラーの通知と、キャッシュラインの無効化が、特許文献1に開示される。キャッシュメモリのパリティエラーを検出すると、割り込みを発生してオペレーティングシステムに通知し、割り込みステータスレジスタをソフトウェアで参照することにより、パリティエラーであることを確認することができる。この割り込みは、命令に同期し、直前の命令までは命令を完了しており、後続の命令は実行が中断されている。パリティエラーを生じた命令に関しては、プログラムカウンタは記憶されており、割り込みの種類により完了させることや、中断させることを選ぶことができる。パリティエラーを生じたキャッシュメモリのラインがメモリと同じ内容のときは、キャッシュラインを無効化する処理を行う。
複数のCPUと複数のメモリを搭載するマイクロプロセッサのうち、共通のオペレーティングシステム(OS)で動作する場合のハードウェアエラーの処理方法として、エラー情報の記録が、特許文献2に開示されている。共通のOSで動作するマイクロプロセッサでハードウェアエラーが生じたときには、エラーを発生したCPUまたは、エラーを発生していない別の正常なCPUで、オペレーティングシステムに従い、エラー情報を記録し、ファイルシステムの同期処理を実施してメモリダンプを採取した後、システムを再起動する。エラー情報には、エラーが発生したCPUのCPU番号と、エラーが発生したデータのアドレスが記載される。他のCPUへの通知にはCPU間通信用に共有メモリが使用される。
特開2000−099406号公報 再表2006/082657号公報
特許文献1では、1次キャッシュのパリティエラーに関して、割り込みを用いたメモリエラー処理が開示されるが、複数のCPUと複数のメモリでのメモリエラー処理方法は開示されていない。
特許文献2では、共通のオペレーティングシステムで動作する複数のCPUと複数のメモリを搭載するマイクロプロセッサでのメモリエラーの処理方法が開示される。しかし、特許文献2では、各CPUが固有に持つメモリとCPU間の通信用に共有メモリがあり、CPUが固有に持つメモリに関してメモリエラー処理が対象であり、共有メモリでのメモリエラー処理は考慮されていない。メモリエラー発生時のメモリエラー情報のCPU番号は、CPUの固有のメモリが対象のため、常に固有メモリを保有するCPU番号となる。
複数のCPUを有するマルチプロセッサは、二つの処理形態、すなわち、非対称マルチプロセシング(AMP:Asymmetric Multi−processing)と、対称マルチプロセシング(SMP:Symmetric Multi−Processing)とを有する。
非対称マルチプロセシングは、CPUごとに独立のメモリ空間を持ち、処理がCPUごとに静的に割り付けられる並列処理方式である。単一のCPUを複数個バスで接続し、それぞれにオペレーティングシステムを動作させた処理形態はAMPとなる。
対称マルチプロセシングは、複数のCPUでメモリ空間を共有し、処理が均一になるよう動的に割り付けられる並列処理方式である。SMP向けのオペレーティングシステムは、メモリ空間を共通とするスレッドと呼ばれる処理単位に分割し、複数のCPUに処理負荷が均一になるように、スレッドを割り当てて処理を行う。
本願発明者は、複数のCPUと複数のメモリを搭載するマルチプロセッサなどの情報処理装置で、複数のオペレーティングシステムが動作する場合において、CPUが個別に持つ内蔵メモリと共有メモリでのメモリエラーの処理方法について検討したところ、マルチプロセッサなどの情報処理装置での処理形態に応じたメモリエラー処理が必要であることを見い出した。
尚、特許文献2では、共通のオペレーティングシステムでCPUが固有に持つメモリに関してのメモリエラーの開示であるが、前述の処理形態を鑑みると、複数の異なるオペレーティングシステムが動作する場合は考慮されていない。
本発明の目的は、それぞれメモリにアクセス可能な複数のCPUを含む情報処理装置において、報処理装置での処理形態に応じたメモリエラー処理を可能とする技術を提供することにある。
本発明の前記並びにその他の目的と新規な特徴は本明細書の記述及び添付図面から明らかになるであろう。
本願において開示される発明のうち代表的なものの概要を簡単に説明すれば下記の通りである。
すなわち、メモリを有する複数のCPUと、それぞれのCPUは、上記メモリにアクセスしたCPUを識別可能なCPU識別情報を記憶可能な第1記憶部(CPUID)を有する。メモリにアクセスしたときソフトウェアエラーが発生すると、メモリを有するCPUは、どのCPUが該当するメモリをアクセスしたかを識別するCPU識別情報を第1記憶部に記憶し、メモリのソフトエラー発生を割込みコントローラ(30)に通知する。上記CPUは、上記割り込みコントローラからメモリのソフトウェアエラーの割り込みを受理した後は、上記第1記憶部の記憶情報を用いて、アクセスしたCPUを認識し、エラー処理が行われるように構成することができる。
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば下記のとおりである。
すなわち、メモリにアクセスしたCPUの識別情報に応じて適切なエラー処理を行うことができるので、複数のCPUと複数のメモリを搭載する情報処理装置において、情報処理装置での処理形態に応じたメモリエラー処理が可能になる。
本発明にかかる情報処理装置の一例とされるマイクロプロセッサの構成例ブロック図である。 上記マイクロプロセッサにおいてメモリエラーが発生した場合の処理の説明図である。 上記マイクロプロセッサにおいてCPUのメモリアクセスによりメモリエラーが発生するケースの説明図である。 上記マイクロプロセッサにおいて、CPUで複製タグのメモリエラーが発生するケースの説明図である。 上記マイクロプロセッサに含まれる複製タグメモリ(DAA)の構成例ブロック図である。 上記マイクロプロセッサにおいて、互いに異なるオペレーティングシステムが動作するときに対称性マルチプロセシングのCPUでメモリエラーが発生するケースの第一の説明図である。 上記マイクロプロセッサにおいて、互いに異なるオペレーティングシステムが動作するときに対称性マルチプロセシングのCPUでメモリエラーが発生するケースの第二の説明図である。
1.実施の形態の概要
先ず、本願において開示される発明の代表的な実施の形態について概要を説明する。代表的な実施の形態についての概要説明で括弧を付して参照する図面中の参照符号はそれが付された構成要素の概念に含まれるものを例示するに過ぎない。
〔1〕本発明の代表的な実施の形態に係る情報処理装置(10)は、それぞれメモリ(L1C,RAM1,RAM2)にアクセス可能な複数のCPU(200〜203)と、上記メモリにアクセスしたCPUを識別可能なCPU識別情報を記憶可能な第1記憶部とを含む。そして、上記第1記憶部の記憶情報を用いて、上記メモリのソフトウェアエラーに対応するエラー処理が行われる。CPU識別情報として、CPU毎に割り当てられたCPU番号などのID情報を挙げることができる。
〔2〕上記〔1〕において、ソフトウェアエラーに対応するエラー通知を取り込み、所定の優先順位に従って割り込み信号をアサートする割り込みコントローラ(30)を設けることができる。このとき、上記CPUは、上記割り込みコントローラからメモリのソフトウェアエラーの割り込みを受理する際に、該当するメモリのソフトウェアエラーを発生したアドレス情報が上記第1記憶部に格納されるように構成することができる。
〔3〕上記〔2〕において、上記割り込みコントローラは、ソフトウェア設定によるCPU間割り込みの機能を含み、上記メモリを制御するCPUの識別情報と、上記第1記憶部に記憶されたCPU識別情報とが異なるとき、CPU間割り込みを発生し、上記第1記憶部に記憶されたCPU識別情報に対応するCPUに対して、上記メモリでのソフトウェアエラーの発生を通知するように構成することができる。
〔4〕上記〔2〕において、上記複数のCPUで共有される共有メモリ(50)と、上記共有メモリの動作を制御可能な制御回路(40)とを設けることができる。そして上記制御回路には、上記メモリのソフトウェアエラーを発生したアドレス、及び上記供給メモリのソフトウェアエラーを生じた場合の上記共有メモリにアクセスしたCPUの識別情報を保持可能な第2記憶部を設けることができる。このとき、上記割り込みコントローラは、上記共有メモリのソフトウェアエラーの検出結果と、メモリアクセスにかかるCPUの識別情報が上記制御回路から通知された場合に、当該識別情報に対応するCPUに対して、上記メモリのソフトウェアエラー割り込みを発生させるように構成することができる。
〔5〕上記〔2〕において、上記複数のCPUにはそれぞれ1次キャッシュ(L1C)を設けることができ、また、上記情報処理装置には、上記1次キャッシュのタグのコピーを記憶する複製タグメモリ(211)設けることができる。そして、上記1次キャッシュをアクセスするときに、上記複製タグメモリが更新可能に構成され、上記複製タグメモリでメモリエラーが発生したとき、上記1次キャッシュを制御するCPU内の上記第1記憶部には、上記1次キャッシュのアクセスにかかるCPUの識別情報と、上記1次キャッシュのタグ情報と、上記複製メモリに対応するフラグビットが設定されるように構成することができる。
〔6〕上記〔2〕において、上記情報処理装置には、2次キャッシュと、上記2次キャッシュを制御可能な制御回路とを設けることができる。そして上記2次キャッシュ制御回路には、該当するメモリのソフトウェアエラーを発生したアドレス、及び上記メモリのソフトウェアエラーを生じた場合の上記メモリにアクセスしたCPUの識別情報を保持可能な第3記憶部を設けることができる。このとき、上記割り込みコントローラは、上記2次キャッシュのソフトウェアエラーの検出結果、及び上記2次キャッシュのアクセスにかかるCPUの識別情報が通知されると、上記CPUの識別情報に対応するCPUに対して、上記メモリのソフトウェアエラー割り込みを発生するように構成することができる。
〔7〕上記〔2〕において、上記情報処理装置には、2次キャッシュと、上記2次キャッシュを制御可能な制御回路とを設けることができる。そして上記2次キャッシュ制御回路には、該当するメモリのソフトウェアエラーを発生したアドレス、及び上記メモリのソフトウェアエラーを生じた場合の上記メモリにアクセスしたCPUの識別情報を保持可能な第3記憶部を設けることができる。複数のCPUが対称性マルチプロセシングとして同じOSで動作し、いずれかのCPUの2次キャッシュへのアクセスでソフトウェアエラーが発生したとき、上記割り込みコントローラは、次のように構成することができる。
すなわち、上記割り込みコントローラは、上記2次キャッシュのソフトウェアエラーの検出結果、及び上記2次キャッシュのアクセスにかかるCPUの識別情報が通知されると、同じOSで動作する複数のCPUに対して、一斉に上記メモリのソフトウェアエラー割り込みを発生するように構成することができる。
2.実施の形態の詳細
実施の形態について更に詳述する。
尚、発明を実施するための形態を説明するための全図において、同一の機能を有する要素には同一の符号を付して、その繰り返しの説明を省略する。
図1には、本発明にかかる情報処理装置の一例とされるマイクロプロセッサが示される。
同図に示されるマイクロプロセッサ(LSI)10は、特に制限されないが、公知の半導体集積回路製造技術によって単結晶シリコン基板のような1個の半導体基板に形成される。マイクロプロセッサ10は、特に制限されないが、複数のCPUを持つCPU群(CPUGR)20、割り込みコントローラ(INTC)30、ROM制御部(ROMCtl)40を備えるROM(リード・オンリー・メモリ)50を含む。CPU群(CPUGR)20、割り込みコントローラ30、及びROM50は、システムバス(SBUS)を介して互いに信号のやり取りが可能に結合される。
CPU群20は、特に制限されないが、4つのCPU200,201,202,203、システムコントローラ(SYSC)210、2次キャッシュ(L2C)212、複製タグメモリ(DAA)211を含み、それらがスヌープバス(SNPBUS)で互いに接続されて成る。4つのCPU200,201,202,103は、互いに同一構成とされ、それぞれCPU番号(ID番号)#0,#1,#2,#3よって識別される。例えばCPU(#0)200は、CPUの中核をなすCPUコア(Core)、1次キャッシュ(L1C)、内蔵SRAM1(RAM1)、内蔵SRAM2(RAM2)、エラー情報保持回路(EINFO)を含む。CPUコア(Core)は、予め設定されたプログラムに従って所定の演算処理を実行する。CPUコアは最初に1次キャッシュ(L1C)を読みに行く。1次キャッシュ(L1C)にデータがなかった場合は、上記1次キャッシュ(L1C)に比べて、より低速でより容量の大きな2次キャッシュ(L2C)212に読みに行く。内蔵SRAM1(RAM1)及び内蔵SRAM2(RAM2)は、上記CPUにおける演算処理の作業領域に使用される。また、メモリエラーの検出を可能とするメモリエラー検出回路(EDET)が、メモリエラー検出を必要とする各メモリに設けられている。メモリエラー検出回路(EDET)では、基本的にECCエラー検出やパリティエラー検出などによって、読み出しデータのエラー検出が行われる。エラー情報保持回路(EINFO)には、エラー情報が保持される。エラー情報保持回路(EINFO)は、特に制限されないが、エラーフラグを保持するためのエラーフラグレジスタ(ER_FLG)、メモリエラーを生じた場合のエラーアドレスを保持するためのエラーアドレスレジスタ(ADR)、どのCPUのメモリアクセスによりメモリエラーが発生したかを示すCPU番号を保持するためのアクセスCPU番号レジスタ(CPUID)を含む。このようなエラー情報保持回路(EINFO)は、システムコントローラ(SYSC)やROM制御部40内にも設けられている。
各CPU200〜203から割り込みコントローラ30へは、メモリエラーを通知するためのメモリエラー通知信号(MERR0〜MERR3)が供給される。割り込みコントローラ30から各CPU200〜203へは、メモリエラー割り込み信号(INT0〜INT3)が供給される。ROM制御部40から割り込みコントローラ30へは、ROMメモリエラー通知信号(MERR_ROM)とROM50へのCPUアクセス番号(ROM_CPU_ID)が供給される。
RAMやROMなどからのデータ読み出しにおけるECC(誤り訂正、検出)エラーや、パリティエラーを「メモリエラー」と総称する。また、ECCエラー検出は、1ビットエラー訂正と2ビットエラー検出を行うSEC−DEDを前提とし、パリティエラー検出は1ビットエラー検出を前提としている。
<メモリエラー検出>
メモリエラーの検出について説明する。
CPU200〜203では、コア内でのメモリのエラー検出が行われ、エラーが検出された場合には、対応するメモリエラー通知信号(MERR0〜MERR3)がアサートされる。ここでメモリエラーを通知するCPUは、メモリエラーに係るメモリを有するCPUであり、メモリアクセスを行ったCPUではない。例えばCPU200内のRAM2からのデータ読み出しでエラーを生じた場合、そのエラーを割り込みコントローラ30に通知するのは、CPU200であり、このCPU200によって、対応するメモリエラー通知信号MERR0がアサートされる。このようにメモリエラーに係るメモリを有するCPUによってメモリエラーを通知するようにするのは、CPU内の複数のメモリ、例えば1次キャッシュ(L1C)、内蔵SRAM1(RAM1)、内蔵SRAM2(RAM2)が同時にメモリエラーを検出したときの優先度判定や、複数メモリのメモリエラー処理を行う際のハードウェア制御範囲を当該CPU内にとどめることで、処理の簡略化を図るものである。
複製タグメモリ211や2次キャッシュ212は、複数のCPU200〜203で共有される。このため、共有メモリからのデータ読み出しでエラーを生じた場合には、システムコントローラ210からメモリアクセスを行ったCPUに対してメモリエラーが通知され、そのCPUから割り込みコントローラ30に対する割り込みによってメモリエラーが通知される。
<メモリエラー割り込み発生>
次に、メモリエラー割り込みが発生した場合の処理について説明する。
メモリエラーが通知された割り込みコントローラ(INTC)は、他の割り込みとの優先度判定を行い、他の割り込みよりメモリエラーの優先度が高いとき、メモリエラー割り込みを選択し、CPU(200〜203)に対してメモリエラー割り込みを発生する。割り込みコントローラ(INTC)は、各CPU(200〜203)に対して独立に割り込みを発生する。ここで、メモリエラーを通知したCPUコアと、メモリエラー割り込み信号を受理するCPUコアは同じものとする。つまり、メモリエラーを通知したCPUコアによってメモリエラー割り込み信号が受理される。
<メモリエラー割り込みを受けたCPUでの処理>
次に、メモリエラー割り込みを受けたCPUでの処理について説明する。
メモリエラー割り込み信号(INT0〜INT3)によって、割り込みコントローラ30からCPU(200〜203)に対してメモリエラー割り込みが通知されると、該当するCPUは、一つのメモリからのデータ読み出しでエラーが検出された場合はそのメモリを選択し、複数のメモリからのデータ読み出しでエラーが検出された場合は最も優先度が高いメモリを選択する。そして、CPU内のエラー情報保持回路(EINFO)に、選択されたメモリのエラーフラグと、選択されたメモリに対するアクセスCPU番号及びエラーアドレスが、それぞれ対応するアクセスCPU番号レジスタ(CPUID)及びメモリエラーアドレスレジスタ(ADR)に格納される。尚、メモリエラー割り込みが直ちにCPU(200〜203)に受け付けられるとは限らないため、各メモリにおけるメモリエラー検出回路(EDET)内には、アクセスCPU番号とエラーアドレスを保持するための手段が設けられている。エラーアドレスを保持するための手段には、特に制限されないが、フリップフロップなどを適用することができる。
また、メモリアクセスを行ったCPU(200〜203)に対して直接割り込みを要求しないようにしている。その理由は、ハードウェアの簡略化のためである。すなわち、メモリアクセスを行ったCPU(200〜203)に対して直接割り込みを要求する場合には、メモリアドレスをそのCPUに渡す必要があり、CPU数が増加すると、それだけ、CPU間でそのアドレスの信号線数が増大する。これに対して、メモリアクセスを行ったCPU(200〜203)に対して直接割り込みを要求しないようにすることで、CPU間でのアドレス信号線数の増大を回避できる。
<ソフトウェアによるメモリエラー分析>
次に、ソフトウェアによるメモリエラー分析について説明する。
メモリエラー割り込みを受理したCPU(200〜203)が、アクセスCPU番号レジスタと同一の番号のとき、CPU内のアクセスであるから、当該CPUで所定のソフトウェアを実行することでメモリエラーアドレスを調べることができ、それにより、エラーを発生させたメモリを知ることができる。例えば、メモリに書き込まれたデータに、1ビットエラー訂正を行うECCコードが付加されている場合、ソフトウェアで当該メモリをリードして得たデータを直ちにライトすることで、ECCによりリードデータは訂正されるため、メモリセルデータの訂正を行うことができる。2ビットエラー検出のときは、訂正ができないため、例えば障害プログラムをCPUで実行したり、あるいは、CPUの動作モードをセーフモードに遷移したりすれば良い。
割り込みを受理したCPU(200〜203)がアクセスCPU番号レジスタと異なる番号のとき、メモリアクセスを行ったCPUに通知するため、ソフトウェアで、アクセスCPU番号のCPUコアへCPU間割り込みを発生させる。これにより、メモリアクセスを行ったCPUは、エラーを生じたメモリを知ることができる。
割り込みを受理したCPU(200〜203)は、メモリエラーフラグレジスタ(ER_FLG)の中で、メモリエラーを受理したメモリに該当するビットをクリアすると、他に複数のビットが論理値“1”となっている場合は、継続してメモリエラーが割り込みコントローラへ通知される。1要因ずつ割り込み処理を行い、全てのビットがクリアされたとき、メモリエラー処理は終了となる。
メモリエラーを処理するため、各メモリにおけるエラー検出回路(EDET)には、次の4つの回路が設けられる。
すなわち、(1)ECC、またはパリティ機能回路、(2)メモリエラーを検出した際の検出フラグ(1ビット)の1次保持回路、(3)フラグクリア後に初めてメモリエラーが通知されたときのエラーアドレスの1次保持回路、(4)メモリエラーを発生したアクセスCPU番号(他のCPUコアのアクセスを許可するメモリのみ)の1次保持回路、の4つである。
上記1次保持回路は、フリップフロップで構成することができる。各メモリにおいてエラーアドレスとして記憶されるのは、特に制限されないが、ひとつである。一度、フラグがセットされると、フラグクリア信号がアサートされるまで、エラーアドレスは更新されない。フラグクリアまでにメモリエラーが生じても、そのメモリエラーは無視される。
各CPU(200〜203)内にはエラー情報保持回路(EINFO)が搭載される。このエラー保持回路(EINFO)は、特に制限されないが、エラーフラグレジスタ(ER_FLG)、エラーアドレスレジスタ(ADR)、メモリエラーを発生したアクセスCPU番号レジスタ(CPUID)から構成される。
メモリエラー割り込みが通知されると、コア内で最も優先度の高いメモリのエラーフラグが、メモリエラーフラグレジスタ(ER_FLG)にセットされ、エラーアドレスとCPU番号が、該当するメモリのエラー検出回路(EDET)からそれぞれエラー情報保持回路(EINFO)のエラーアドレスレジスタ(ADR)とアクセスCPU番号レジスタ(CPUID)にコピーされる。
次に、別のCPUによりメモリアクセスによって、メモリエラーが発生した場合の処理について、図2に基づいて説明する。
図2においては、CPU200とCPU201とで、互いに異なるオペレーティングシステムが動作し、非対称マルチプロセシング(AMP)処理が行われるものとする。この場合の処理は次のように行われる。
CPU200からCPU201内のRAM1をリードした際に、メモリエラーが発生した場合を想定する。この場合、CPU201から割り込みコントローラ(INTC)30へメモリエラーが通知される((2)MERR1)。割り込みコントローラ30からCPU201へメモリエラー割り込みが発生する((3)INT1)。
RAM1の情報として、メモリエラーアドレスレジスタ(ADR)にエラーアドレスH’10000000が保持され、メモリアクセスCPU番号レジスタ(CPUID)にCPU番号(#0)が保持される。
CPU201の割り込みハンドラにて適切な処理が行われる。メモリアクセスCPU番号レジスタ(CPUID)をリードし、CPU番号が#0であることから、ソフトウェアでCPU200へCPU間割り込みを行うことにより通知する。割り込みを受理したCPUがアクセスを行ったCPUの番号と異なるとき、アクセスを行ったCPUに通知するため、ソフトウェアにより、CPU番号に対応するCPUへCPU間割り込みを発生させる。これにより、アクセスを行ったCPUにエラーを発生させたメモリを知らせることができる。割り込みを受理したCPUとアクセスを行ったCPUとで、互いに異なるオペレーティングシステムが動作しているときは、アクセスにかかるCPUで、1ビットエラーや2ビットエラーの処理を適切に行うためには、明示的にアクセスにかかるCPUにも通知しておく必要がある。このケースではCPU201からCPU200へソフトウェア割り込みを行う。
次に、CPU200とCPU201とで、互いに異なるオペレーティングシステムが動作し、非対称マルチプロセシング(AMP)処理が行われているときのCPUで共有されるROMへのアクセス時のメモリエラー処理について説明する。
図3には、CPU201のROMへのメモリアクセスによりメモリエラーが発生するケースが示される。
CPU201において、CPUコア(Core)からROMバッファ(ROMB)ヘロードが行われる((1)LD)。しかし、実際にはROMバッファ(ROMB)がミスし、ROMへのリードが行われてしまう((2)ROM Reed)。そして、ROMでメモリエラーが発生する((3)MER_ROM,RCPUID)。ROM制御部(ROMCtl)40から、割り込みコントローラ(INTC)30にメモリエラー(ROM_MERR)とCPU_IDとしてCPU201を通知する。割り込みコントローラ(INTC)30からCPU201へメモリエラー割り込みが発生する((4)INT1)。
これは、共有メモリのアクセス時のメモリエラーの処理である。割り込みコントローラ(INTC)は, ROMからCPU_IDを受け、動的に割り込みを通知するCPUを設定することができる。ROMのエラー情報をROMコントローラ40内に持つか、CPU内に持つかは特に制限されない。CPU内に持つ場合は、遠距離の制御線を引くことになるため、本例では、ROMコントローラROMCtl内に持たせることにした。
次に、CPU200からCPU203は、互いに等しいオペレーティングシステムが動作し、対称マルチプロセシング(SMP)処理が行われているときのスヌープキャッシュと呼ばれるキャッシュコヒーレンシ機能に関わるメモリのエラー処理について説明する。
図4には、キャッシュコヒーレンシが処理されているマイクロプロセッサで、CPU202で複製タグのメモリエラーが発生するケースが示される。
CPU202で1次キャッシュ(L1C)のデータロードが行われる((1)LD)。次に、各CPU200〜203において、1次キャッシュのタグのコピーを持つ複製タグメモリ(DAA)211の更新が行われる((2)DAA UPD)。スヌープ方式における各キャッシュが必要なときに最新データを取得可能にするためである。そして複製タグメモリ(DAA)211でメモリエラーが発生すると、スヌープキャッシュ(SNC)を介してシステムコントローラ(SYSC)からCPU202にメモリエラーが通知される((3)MERR_DAA2)。そしてCPU202から割り込みコントローラ(INTC)30へメモリエラー割り込みが通知される((4)(MERR2))。割り込みコントローラ(INTC)30からCPU202へメモリエラー割り込みが発生する((5)INT2)。
このように、コヒーレントキャッシュに対応するシステムにおいて、複製タグメモリ(DAA)211のメモリエラー発生時にはCPU202におけるエラー情報保持回路(EINFO)内に、複製タグメモリ211のフラグビットと、CPU番号(CPUID)と1次キャッシュのタグアドレスがエラーアドレス(ADR)として保持される。ソフトウェアとしては、該当するCPU内の1次キャッシュにおけるメモリエラーとして扱い、ソフトウェアで有効ビットをクリアすることで無効化する。
図5には、複製タグメモリ(DAA)211の構成例が示される。
複製タグメモリ(DAA)211は、各CPU200〜203に含まれる1次キャッシュのタグ情報を持つ。図5では、4つのCPUで、各CPUコアの1次キャッシュが4ウェイの例を示している。Sビットは共有状態のシェアードビット、Vビットは有効ビットである。システムコントローラ210内のエラー情報保持回路(EINFO)には、複製タグメモリ(DAA)211のメモリエラーフラグレジスタ(ER_FLG)、メモリエラーアドレスレジスタ(ADR)と、アクセスCPU番号レジスタ(CPUID)が設けられる。
図5において、メモリのソフトウェアエラー(ERR)が発生する場合について説明する。
宇宙線などによるソフトウェアエラーは一部の狭い場所に集中する。一例として、複製タグメモリ内のアレイのCPU番号#1に相当する部分に宇宙線が当たっているものとする。他のCPUに対応するアレイは物理的に離れているため、同時に宇宙線があたりソフトウェアエラーを引き起こす可能性は極めて低い。このため、宇宙線については、一つのCPUに相当する部分のみ考慮すればよい。また、一つのデータに対し、2ビット以上のエラー確率を下げるため、メモリアレイはデータのビットの距離を離すことで対応することができる。システムコントローラ210内のエラー情報保持回路(EINFO)には、メモリエラーフラグレジスタ(ER_FLG)にはDAAビットに1がセットされ、メモリエラーアドレスレジスタ(ADR)にはメモリエラーが発生した部分の1次キャッシュのタグアドレス、アクセスCPU番号レジスタ(CPUID)にはDAA内のCPU番号#1が格納される。メモリエラー割込みの通知を受けたCPUは、CPU1の1次キャッシュにおけるメモリエラーとして扱い、ソフトウェアで該当する1次キャッシュのタグアドレス(H’30000000)の有効ビットをクリアすることで無効化する。
次に、CPU200〜202は対称マルチプロセシング(SMP)とされ、CPU203は非対称マルチプロセシング(AMP)とされ、互いに異なるオペレーティングシステムが混在して動作する場合のメモリエラー処理について説明する。
図6には、SMP、AMPとで、互いに異なるオペレーティングシステムが動作するときにメモリエラーが発生するケースが示される。CPU200〜202は対称マルチプロセシング(SMP)でOS0が動作し、CPU203はOS1が動作する。
CPU200からL2キャッシュ212のリードを行った際にメモリエラーが発生したものとする。システムコントローラ210は、メモリエラーフラグレジスタ(ER_FLG)のL2キャッシュ212のビットをセットし、メモリエラーアドレスレジスタ(ADR)に、「H’40000000」を格納し、アクセスCPU番号レジスタ(CPUID)に、「#0」を格納する。
次に、システムコントローラ210は、CPU200にメモリエラーを通知する((2)MERR_L2C_0)。CPU200は、割り込みコントローラ30にメモリエラーを通知する((3)MERR_0)。これにより割り込みコントローラ30からCPU200へのメモリエラー割り込みが発生する((4)INT0)。
このようにマルチプロセッサで複数のオペレーティングシステムが実行されるとき、L2キャッシュ212などの共有メモリでメモリエラーが生じると、アクセス元CPUに割り込みが行われる。理由として、L2キャッシュ212はエントリが同じOSでないとアクセスすることができないこと、及びアクセス元CPUでないとエントリの無効化を行うことができないことによる。
対称マルチプロセシング(SMP)で共通のOSで動作するCPUに関しては、メモリエラーが起こったエントリにアクセス、又は、エントリを無効化することが可能であるため、図7に示すような変更も可能である。例えば図6の例では、対称マルチプロセッサシング(SMP)で共通の動作を行うCPU200、201、202であっても、メモリエラーが発生した際のアクセス元CPUを特定し、そのCPUにメモリエラーの通知を行う構成である。しかし、図7に示される例では、共通のOSで動作するCPU200、201、202を一つのグループとして把握し、アクセス元CPUとしてメモリエラーに関する割り込み処理を行うCPUは、そのグループ内の何れかのCPUとしている。具体的には、CPU200のアクセスでメモリエラーが生じたとき、CPU200が割込みコントローラにメモリエラーを通知した後、割込みコントローラはSMPで動作するCPU200、201、202に一斉にメモリエラーを割り込みを通知し、一番早くメモリエラーを受け付けたCPUをメモリエラー割り込みを受けたCPUとする。このとき、割り込みコントローラの中に複数のCPUのうちのどれが、共通のOSで動作しているかを示すフラグを新たに設けておけば、どのCPUに並列してメモリエラー割り込みを通知すればよいか判断することができる。
上記の実施の形態によれば、以下の作用効果を得ることができる。
(1)それぞれ1次キャッシュ(L1C)や内蔵SRAM1(RAM1)及び内蔵SRAM2(RAM2)にアクセス可能な複数のCPU200〜203と、上記メモリにアクセスしたCPUを識別可能なCPU識別情報を記憶可能なエラー情報保持回路(EINFO)とが設けられる。そして、上記エラー情報保持回路(EINFO)の記憶情報を用いて、上記メモリのソフトウェアエラーに対応するエラー処理が行われることにおり、非対称マルチプロセシング(AMP)に対応する複数のオペレーティングシステムが動作する場合の1次キャッシュ(L1C)や内蔵SRAM1(RAM1)及び内蔵SRAM2(RAM2)などの内蔵メモリのメモリエラー処理を行うことができる。
(2)上記複数のCPU200〜203で共有されるROM50と、それを制御可能なROM制御部40とを設けることができる。そして上記ROM制御部40には、上記メモリのソフトウェアエラーを発生したアドレス、及び上記供給メモリのソフトウェアエラーを生じた場合の上記共有メモリにアクセスしたCPUのCPU番号を保持可能なエラー情報保持回路(EINFO)を設けることができる。このとき、割り込みコントローラ30は、上記共有メモリのソフトウェアエラーの検出結果と、メモリアクセスにかかるCPUの識別情報が上記制御回路から通知された場合に、当該識別情報に対応するCPUに対して、上記メモリのソフトウェアエラー割り込みを発生させるように構成することができる。これにより、非対称マルチプロセシング(AMP)に対応する複数のオペレーティングシステムが動作する場合の共有メモリであるROM50のメモリエラー処理を行うことができる。
(3)上記複数のCPU200〜203にはそれぞれ1次キャッシュ(L1C)が設けられ、また、上記マイクロプロセッサ10には、上記1次キャッシュのタグのコピーを記憶する複製タグメモリ211設けられる。そして、上記1次キャッシュ(L1C)をアクセスするときに、上記複製タグメモリ211が更新可能に構成される。上記複製タグメモリ211でメモリエラーが発生したとき、上記1次キャッシュ(L1C)を制御するCPU内のエラー情報保持回路(EINFO)には、上記1次キャッシュ(L1C)のアクセスにかかるCPUの識別を可能とするCPU番号と、上記1次キャッシュ(L1C)のタグ情報と、上記複製メモリ211に対応するフラグビットが設定される。これにより、対称マルチプロセシング(SMP)に対応するオペレーティングシステムにおいて、特にスヌープキャッシュと呼ばれるキャッシュコヒーレンシ機能に関わるメモリのエラー処理を行うことができる。
(4)上記マイクロプロセッサ10には、2次キャッシュ(L2C)と、上記2次キャッシュを制御可能なシステムコントローラ210とが設けられる。そして上記システムコントローラ210には、該当するメモリのソフトウェアエラーを発生したアドレス、及び上記メモリのソフトウェアエラーを生じた場合の上記メモリにアクセスしたCPUの識別情報を保持可能なエラー情報保持回路(EINFO)が設けられる。上記割り込みコントローラは、上記2次キャッシュのソフトウェアエラーの検出結果、及び上記2次キャッシュのアクセスにかかるCPUの識別情報が通知されると、上記CPUの識別情報に対応するCPUに対して、上記メモリのソフトウェアエラー割り込みを発生する。これにより、非対称マルチプロセシング(AMP)と対称マルチプロセシング(SMP)に対応するオペレーティングシステムが混在して動作するマイクロプロセッサにおいて、共有メモリとしての二次キャッシュのメモリエラー処理を行うことができる。
以上本発明者によってなされた発明を実施形態に基づいて具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは言うまでもない。
例えば複数のCPU、複数のメモリを備え、複数のオペレーティングシステムで動作するマイクロプロセッサにおいても本発明を適用することができる。
10 マイクロプロセッサ
20 CPU群
30 割り込みコントローラ
40 ROM制御部
50 ROM
200,201,202,203 CPU
210 システムコントローラ
212 2次キャッシュ
Core CPUコア
L1C 1次キャッシュ
RAM1 内蔵SRAM1
RAM2 内蔵SRAM2
EINFO エラー情報保持回路
ER_FLG エラーフラグレジスタ
ADR エラーアドレスレジスタ
CPUID アクセスCPU番号レジスタ

Claims (7)

  1. それぞれメモリにアクセス可能な複数のCPUを含む情報処理装置であって、
    上記メモリにアクセスしたCPUを識別可能なCPU識別情報を記憶可能な第1記憶部を含み、上記第1記憶部の記憶情報を用いて、上記メモリのソフトウェアエラーに対応するエラー処理が行われることを特徴とする情報処理装置。
  2. ソフトウェアエラーに対応するエラー通知を取り込み、所定の優先順位に従って割り込み信号をアサートする割り込みコントローラを含み、
    上記CPUは、上記割り込みコントローラからメモリのソフトウェアエラーの割り込みを受理する際に、該当するメモリのソフトウェアエラーを発生したアドレス情報が上記第1記憶部に格納される請求項1記載の情報処理装置。
  3. 上記割り込みコントローラは、ソフトウェア設定によるCPU間割り込みの機能を含み、
    上記メモリを制御するCPUの識別情報と、上記第1記憶部に記憶されたCPU識別情報とが異なるとき、CPU間割り込みを発生し、上記第1記憶部に記憶されたCPU識別情報に対応するCPUに対して、上記メモリでのソフトウェアエラーの発生を通知する請求項2記載の情報処理装置。
  4. 上記複数のCPUで共有される共有メモリと、
    上記共有メモリの動作を制御可能な制御回路と、を有し、
    上記制御回路は、上記メモリのソフトウェアエラーを発生したアドレス、及び上記供給メモリのソフトウェアエラーを生じた場合の上記共有メモリにアクセスしたCPUの識別情報を保持可能な第2記憶部と、を含み、
    上記割り込みコントローラは、上記共有メモリのソフトウェアエラーの検出結果と、メモリアクセスにかかるCPUの識別情報が上記制御回路から通知された場合に、当該識別情報に対応するCPUに対して、上記メモリのソフトウェアエラー割り込みを発生させる請求項2記載の情報処理装置。
  5. 上記複数のCPUはそれぞれ1次キャッシュを含み、
    上記情報処理装置は、上記1次キャッシュのタグのコピーを記憶する複製タグメモリを含み、
    上記1次キャッシュをアクセスするときに、上記複製タグメモリが更新可能に構成され、
    上記複製タグメモリでメモリエラーが発生したとき、上記1次キャッシュを制御するCPU内の上記第1記憶部には、上記1次キャッシュのアクセスにかかるCPUの識別情報と、上記1次キャッシュのタグ情報と、上記複製メモリに対応するフラグビットが設定される請求項2記載の情報処理装置。
  6. 上記情報処理装置は、2次キャッシュと、上記2次キャッシュを制御可能な制御回路と、を含み、
    上記2次キャッシュ制御回路は、該当するメモリのソフトウェアエラーを発生したアドレス、及び上記メモリのソフトウェアエラーを生じた場合の上記メモリにアクセスしたCPUの識別情報を保持可能な第3記憶部を含み、
    上記割り込みコントローラは、上記2次キャッシュのソフトウェアエラーの検出結果、及び上記2次キャッシュのアクセスにかかるCPUの識別情報が通知されると、上記CPUの識別情報に対応するCPUに対して、上記メモリのソフトウェアエラー割り込みを発生する請求項2記載の情報処理装置。
  7. 上記情報処理装置は、2次キャッシュと、上記2次キャッシュを制御可能な制御回路と、を含み、
    上記2次キャッシュ制御回路は、該当するメモリのソフトウェアエラーを発生したアドレス、及び上記メモリのソフトウェアエラーを生じた場合の上記メモリにアクセスしたCPUの識別情報を保持可能な第3記憶部を含み、
    複数のCPUが対称性マルチプロセシングとして同じOSで動作し、いずれかのCPUの2次キャッシュへのアクセスでソフトウェアエラーが発生したとき、
    上記割り込みコントローラは、上記2次キャッシュのソフトウェアエラーの検出結果、及び上記2次キャッシュのアクセスにかかるCPUの識別情報が通知されると、
    同じOSで動作する複数のCPUに対して、一斉に上記メモリのソフトウェアエラー割り込みを発生する請求項2記載の情報処理装置。
JP2009080010A 2009-03-27 2009-03-27 情報処理装置 Withdrawn JP2010231619A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2009080010A JP2010231619A (ja) 2009-03-27 2009-03-27 情報処理装置
US12/721,208 US20100251017A1 (en) 2009-03-27 2010-03-10 Soft error processing for multiprocessor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009080010A JP2010231619A (ja) 2009-03-27 2009-03-27 情報処理装置

Publications (1)

Publication Number Publication Date
JP2010231619A true JP2010231619A (ja) 2010-10-14

Family

ID=42785797

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009080010A Withdrawn JP2010231619A (ja) 2009-03-27 2009-03-27 情報処理装置

Country Status (2)

Country Link
US (1) US20100251017A1 (ja)
JP (1) JP2010231619A (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8645796B2 (en) * 2010-06-24 2014-02-04 International Business Machines Corporation Dynamic pipeline cache error correction
US9678903B1 (en) 2014-10-15 2017-06-13 Intel Corporation Systems and methods for managing inter-CPU interrupts between multiple CPUs
US10885676B2 (en) * 2016-12-27 2021-01-05 Samsung Electronics Co., Ltd. Method and apparatus for modifying display settings in virtual/augmented reality
JP6880795B2 (ja) * 2017-02-08 2021-06-02 オムロン株式会社 制御装置およびその制御方法
US10922203B1 (en) 2018-09-21 2021-02-16 Nvidia Corporation Fault injection architecture for resilient GPU computing
CN111104243B (zh) * 2019-12-26 2021-05-28 江南大学 一种低延迟的双模lockstep容软错误处理器系统

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4920539A (en) * 1988-06-20 1990-04-24 Prime Computer, Inc. Memory error correction system
JP2819982B2 (ja) * 1993-03-18 1998-11-05 株式会社日立製作所 範囲指定可能なキャッシュ一致保証機能を有するマルチプロセッサシステム
US6332181B1 (en) * 1998-05-04 2001-12-18 International Business Machines Corporation Recovery mechanism for L1 data cache parity errors
US7774562B2 (en) * 2004-09-17 2010-08-10 Hewlett-Packard Development Company, L.P. Timeout acceleration for globally shared memory transaction tracking table
JP4489802B2 (ja) * 2005-02-07 2010-06-23 富士通株式会社 マルチcpuコンピュータおよびシステム再起動方法
JP4734003B2 (ja) * 2005-03-17 2011-07-27 富士通株式会社 ソフトエラー訂正方法、メモリ制御装置及びメモリシステム
US7716521B1 (en) * 2005-05-06 2010-05-11 Oracle America, Inc. Multiple-core, multithreaded processor with flexible error steering mechanism
US20070168620A1 (en) * 2006-01-19 2007-07-19 Sicortex, Inc. System and method of multi-core cache coherency

Also Published As

Publication number Publication date
US20100251017A1 (en) 2010-09-30

Similar Documents

Publication Publication Date Title
US9323600B2 (en) Systems and methods for retiring and unretiring cache lines
US7343515B1 (en) System and method for performing error recovery in a data processing system having multiple processing partitions
US5553266A (en) Update vs. invalidate policy for a snoopy bus protocol
US7447845B2 (en) Data processing system, processor and method of data processing in which local memory access requests are serviced by state machines with differing functionality
US10514990B2 (en) Mission-critical computing architecture
US9251077B2 (en) Accelerated recovery for snooped addresses in a coherent attached processor proxy
US8775906B2 (en) Efficient storage of meta-bits within a system memory
JPH0239254A (ja) データ処理システム及びそのキヤツシユ記憶システム
JP2006510117A (ja) 高信頼性プロセッサ用オンダイ機構
JPWO2008155844A1 (ja) 情報処理装置およびキャッシュ制御方法
US10761987B2 (en) Apparatus and method for processing an ownership upgrade request for cached data that is issued in relation to a conditional store operation
US7028150B2 (en) Arrangement of data within cache lines so that tags are first data received
US9229868B2 (en) Data recovery for coherent attached processor proxy
JP2010231619A (ja) 情報処理装置
US5553258A (en) Method and apparatus for forming an exchange address for a system with different size caches
KR100406575B1 (ko) 멀티프로세서 데이터 처리 시스템에서 복구 불가능한에러를 허용하는 방법 및 장치
US9021211B2 (en) Epoch-based recovery for coherent attached processor proxy
US20090019306A1 (en) Protecting tag information in a multi-level cache hierarchy
US10949292B1 (en) Memory interface having data signal path and tag signal path
US20070073977A1 (en) Early global observation point for a uniprocessor system
US7689891B2 (en) Method and system for handling stuck bits in cache directories
JP5021978B2 (ja) マルチプロセッサシステム及びその動作方法
US20060168503A1 (en) Systems and methods for mitigating latency associated with error detection and correction
US9436613B2 (en) Central processing unit, method for controlling central processing unit, and information processing apparatus
JP6583046B2 (ja) 制御装置、情報処理装置および情報処理装置の制御方法

Legal Events

Date Code Title Description
A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20120605