JP3272664B2 - プロセッサインターフェイス回路 - Google Patents

プロセッサインターフェイス回路

Info

Publication number
JP3272664B2
JP3272664B2 JP14706898A JP14706898A JP3272664B2 JP 3272664 B2 JP3272664 B2 JP 3272664B2 JP 14706898 A JP14706898 A JP 14706898A JP 14706898 A JP14706898 A JP 14706898A JP 3272664 B2 JP3272664 B2 JP 3272664B2
Authority
JP
Japan
Prior art keywords
microprocessor
request
processor
memory
interrupt
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
Application number
JP14706898A
Other languages
English (en)
Other versions
JPH1153302A (ja
Inventor
モハメッド ラーマン ミザヌア
シー サバーニック フレッド
エイ スプラウス ジェフ
ジリ グロース マーティン
フー ピーター
マーク レクター ラッセル
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.)
Tandem Computers Inc
Original Assignee
Tandem Computers Inc
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 Tandem Computers Inc filed Critical Tandem Computers Inc
Publication of JPH1153302A publication Critical patent/JPH1153302A/ja
Application granted granted Critical
Publication of JP3272664B2 publication Critical patent/JP3272664B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • 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/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1629Error detection by comparing the output of redundant processing systems
    • G06F11/1654Error detection by comparing the output of redundant processing systems where the output of only one of the redundant processing components can drive the attached hardware, e.g. memory or I/O
    • 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/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1629Error detection by comparing the output of redundant processing systems
    • G06F11/1637Error detection by comparing the output of redundant processing systems using additional compare functionality in one or some but not all of the redundant processing components
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • 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/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • 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/0862Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4403Processor initialisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/6022Using a prefetch buffer or dedicated prefetch cache

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Quality & Reliability (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)
  • Bus Control (AREA)
  • Multi Processors (AREA)
  • Advance Control (AREA)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、プロセッサインターフ
ェイス回路の分野に関する。より詳細には、本発明は、
一実施例において、マイクロプロセッサ又は1組のマイ
クロプロセッサと他のプロセッサ回路との間の改良され
たインターフェイスを提供する。
【0002】
【従来の技術】多くの場合に、マイクロプロセッサは、
これが通信する外部要素よりも高速で動作するように設
計することができる。不都合なことに、しばしば、マイ
クロプロセッサは、外部装置によって特定の動作が行わ
れるまで動作を進めることができず、従って、そのマイ
クロプロセッサが使用されたプロセッサシステムの性能
に悪影響を及ぼす。このような欠点の1つの理由は、同
じ集積回路即ちチップ上の2つの回路間の通信の方が一
般にチップ間バス又は他のインターフェイスによって分
離された2つの回路間の通信よりも高速だからである。
従って、マイクロプロセッサと高速で対話する必要性に
対する1つの解決策は、データ及び命令キャッシュのよ
うな多数の回路をマイクロプロセッサチップ上に配置す
ることである。しかしながら、高レベルの要素をマイク
ロプロセッサと共にチップ上に付加することは、エラー
の診断を著しく困難なものにする。これは、内部エラー
がマイクロプロセッサ内で検出されて、チップから診断
システムへと抽出されるときまでに、診断システムに
は、マイクロプロセッサの連続動作によりその内部回路
の状態がエラー時点の状態がもはや分からない点まで変
えられる前に、エラーの原因を調査する時間がほとんど
ないからである。例えば、データエラーがマイクロプロ
セッサ内の奥深くで発生したが、出力される前にマイク
ロプロセッサ内のロジックによって検出されて見掛け上
固定された場合には、外部回路はそのデータが有効デー
タであるとしてそれに基づいて動作し、それにより、プ
ロセッサシステムを破壊することがある。
【0003】プロセッサシステムに伴う別の問題は、殆
どのマイクロプロセッサ要求及びこれら要求に対する応
答が送られるマイクロプロセッサバスにある。マイクロ
プロセッサバスは、書き込み要求を、書き込まれるべき
データと共に搬送し、読み取り要求を搬送し、マイクロ
プロセッサへ戻される読み取り及び書き込み応答を搬送
し、そしてマイクロプロセッサへの割り込み信号を搬送
する。バス上でのこのトラフィックは、マイクロプロセ
ッサからデータを受け入れたりマイクロプロセッサへデ
ータを供給したりすることのできる速度をしばしば制限
する。
【0004】
【発明が解決しようとする課題】以上のことから、マイ
クロプロセッサに対する改良されたインターフェイスが
要望されていることが明らかであろう。
【0005】
【課題を解決するための手段】本発明によるプロセッサ
インターフェイスシステムの一実施例では、プロセッサ
インターフェイスチップ及び保守診断チップが提供され
る。プロセッサインターフェイスチップは、タンデムマ
イクロプロセッサとメインメモリとの間をインターフェ
イスするロジックと、マイクロプロセッサとメインメモ
リとの間の多数のマイクロプロセッサ要求をパイプライ
ン処理するロジックと、マイクロプロセッサがプレフェ
ッチデータの読み取り要求を発生する前にデータをプレ
フェッチするロジックと、ブートコードに対するマイク
ロプロセッサの固定のメモリ位置に関与せずに物理メモ
リ内のどこででもブートコードからブートを生じさせる
ことのできるロジックと、マイクロプロセッサとプロセ
ッサインターフェイスチップとの間でプロセッサバスを
通る割り込み情報の流れをインテリジェント的に制限す
るロジックとを備えている。保守診断チップは、エラー
が検出された場合にいずれかのマイクロプロセッサを停
止するロジックであって、欠陥時点のマイクロプロセッ
サの状態が欠陥の原因の形跡を隠してしまう異なる状態
へ変化する前に、マイクロプロセッサ及びマイクロプロ
セッサに取り付けられた二次キャッシュの状態を読み出
すようなロジックを備えている。
【0006】本発明の特徴及び効果は、添付図面を参照
した以下の詳細な説明から更に良く理解されよう。
【0007】
【実施例】図1は、本発明によるプロセッサシステム1
0の概略図である。このプロセッサシステム10は、1
つの好ましい実施例において、2つのマイクロプロセッ
サと、プロセッサボード上の多数の特殊目的のチップと
を備えているが、1つのチップ上に図示された多数の回
路を含むか又は個々のファンクションに対して多数のチ
ップを設けるといった他の構成も考えられる。プロセッ
サシステム10は、図1においては、2つのマイクロプ
ロセッサ12(0、1)と、保守・診断チップ(MD
C)14と、プロセッサインターフェイスチップ(PI
C)16と、メモリインターフェイスチップ(MIC)
20と、メインメモリ22と、二次キャッシュ30とを
備えて示されている。図示されていない他の要素も含ま
れる。
【0008】要素を相互接続する多数のバスも設けられ
る。プロセッサバス(Pbus)18はPIC16とマ
イクロプロセッサ12(0、1)とを接続し、保守バス
(Mbus)24は、MDC14をPIC16及びMI
C20に接続しそしてMDC14との間で診断コマンド
及びデータをやり取りし、内部バス(Ibus)26は
PIC16をMDC14及びMIC20に接続し、そし
て二次キャッシュバス28はマイクロプロセッサ12
(0、1)を二次キャッシュ30に接続する。
【0009】信頼性を得るために、多数のバスは情報ラ
インとチェックラインを使用しており、情報ラインは、
存在するバスに対して独立した信号(データ、命令、ア
ドレス、制御信号、等)を搬送し、そしてチェックライ
ンは、情報ライン上の値のファンクションであると共
に、チェック和、パリティ、又は他のエラー修正コード
(ECC)ファンクションのようなチェックファンクシ
ョンであるチェック信号を搬送する。例えば、Ibus
26は、その一部分として、32本の信号ライン及び4
本のパリティラインを備え、パリティラインの各々は、
32本の情報信号ラインのうちの8本の偶数パリティチ
ェックを搬送する。図1では、幾つかのラインは、チェ
ックラインが情報ラインから分離された状態で示されて
いない。
【0010】マイクロプロセッサ12は、1つのマイク
ロプロセッサが両Pbus18及びSCバス28の情報
ラインとチェックラインを制御するような「完全マスタ
ー」モードで動作することもできるし、或いは各マイク
ロプロセッサ12がPbus18及びSCバス28のバ
スを制御するような「ロック・ステップ」又は「部分マ
スター」モードで動作することもできる。信頼性を得る
ために、両マイクロプロセッサ12は、バスを読み取り
そして同じ命令を実行するが、その一方、即ちバスマス
ターのみがバスの情報ラインを駆動し、そしてその他方
のマイクロプロセッサ12は情報ラインを監視し、これ
らラインの値を、これがそのバスのマスターであった場
合にこれらラインにおいて駆動したもの(その「電位」
出力」)と比較する。非マスターのマイクロプロセッサ
がバスの情報ライン上にあるものと一致しない場合に
は、「出力不一致」欠陥をトリガーし、これは図2につ
いて説明する。更に、信頼性を得るために、バスマスタ
ーはバスチェックラインを駆動せず、非マスターは駆動
する。このように、マイクロプロセッサが正常に動作し
ているが、互いにステップがずれている場合には、チェ
ックラインがおそらく正しくないであろうときにバス上
の他の装置がエラーを通知する。
【0011】図1に示すように、一方のマイクロプロセ
ッサ12(0)は、SCバス28のマスターであり、
「SCマスター」(二次キャッシュマスター)と表示さ
れているが、他方のマイクロプロセッサ12(1)は、
Pbus18のマスターであって、「SIマスター」
(システムインターフェイスマスター;この場合Pbu
s18が「システムインターフェイス」である)と表示
されている。従って、ロック・ステップモードで動作す
るときには、SCマスター12(0)がSCバス28の
情報ライン(アドレス/データ/ECC)を駆動し、S
Cバス28のチェックライン(Adr/Cntパリテ
ィ;アドレス及び制御ラインパリティ)を監視するが、
SIマスター12(1)はチェックラインを駆動し、S
Cバス28の情報ラインを監視する。これに対し、SI
マスター12(1)は、Pbus18の情報ライン(ア
ドレス/データ)を駆動し、Pbus18のチェックラ
イン(ECC/パリティ)を監視するが、SCマスター
12(0)はチェックラインを駆動し、Pbus18の
情報ラインを監視する。
【0012】ある実施例においては、一方のマイクロプ
ロセッサがSCマスター及びSIマスターの両方であ
り、換言すれば、「完全マスター」であり、そして他方
のマイクロプロセッサは、「完全リッスナー」であっ
て、完全マスターの動作を重複するものであるが、完全
マスターと共有するものでないおそらくその欠陥ライン
を除いて、いずれのラインも駆動しない。SCバス28
のECCラインは実際にはチェックラインであるが、こ
れらは情報ラインとグループ構成される。これは、EC
Cラインが二次キャッシュ30により使用されてエラー
チェックを行うからであり、二次キャッシュ30への全
てのラインが同じマイクロプロセッサから到来する場合
には、二次キャッシュは、2つのマイクロプロセッサ1
2(0、1)間に僅かなタイミング変動が生じてアドレ
ス及びデータがECC信号とタイミングをずらして二次
キャッシュに到達することを気にせずに、高速度で動作
することができる。このようなタイミング変動は、マイ
クロプロセッサを形成する際のプロセスの変動によって
生じることがある。
【0013】好ましい実施例では、マイクロプロセッサ
12(0、1)は、シリコン・グラフィックス・インク
のMTI部門で製造されているR4400マイクロプロ
セッサである。
【0014】バス(Ibus、Pbus、SCbus、
Mbus)に加えて、種々の要素間には他の信号ライン
が存在する。PIC16からMDC14へのエラー信号
ラインは、PICがPbus上で修正可能なエラー又は
修正不能なエラーに遭遇したことを指示するCE/UC
Eエラー信号を搬送する。Pbusのチェックラインの
チェック値がPbusの情報ラインの情報値に対してチ
ェックファンクションを正しく反映しない場合には、P
ICがCE/UCEエラー信号をアサートする。
【0015】各マイクロプロセッサ12とMDCとの間
には3本のラインFAULT*、RESET*及びMO
DEINが設けられている。FAULT*ラインは、マ
イクロプロセッサが欠陥を検出したときにマイクロプロ
セッサにより低レベルに駆動される。RESET*及び
MODEINラインは、MDC14によって駆動され
る。RESET*信号は、この信号が低レベルであると
きマイクロプロセッサをリセット状態に保持するアクテ
ィブ・ロー信号であり、そしてMODEIN信号は、マ
イクロプロセッサのモードを制御する。RESET*信
号がアサートされた(MDC14によって低レベルに保
持された)場合には、MODEIN信号はFAULT*
ラインにおける信号の意味を制御する。
【0016】図2は、FAULT*、RESET*及び
MODEIN信号の相互作用を詳細に示している。図2
は、AないしKと示された周期に分割されたタイミング
チャートであり、これら周期は等しい時間巾ではなく、
これらの信号ラインにおける異なる作用周期を区別する
ものである。これらの周期は、以下のテーブル1に簡単
に説明する。 テーブル1:欠陥に続く処理周期 周期 説明 A SIマスター及び/又はSCマスターは、それらのFAULT*ライ ンをアサートし、これはMDCによって検出される。 B MDCは、両方のマイクロプロセッサに対しRESET*をアサート する。 C MDCは、両RESET*信号をアサートし続け(即ち、RESET *ラインを低レベルに保持し)そして両MODEIN信号をアサート し(MODEINラインを高レベルに駆動することにより)、この状 態において、各マイクロプロセッサのFAULT*ラインは(低レベ ルになることにより)欠陥をトリガーする最初の欠陥が出力不一致で あるとマイクロプロセッサが考えるかどうかを指示する。
【0017】 D MDCは、両RESET*信号をアサートし続けそして両MODEI Nラインを高レベルに駆動し、この状態において、各マイクロプロセ ッサのFAULT*ラインは(低レベルになることにより)入力欠陥 が生じたとマイクロプロセッサが考えるかどうかを指示する。 E MDCは、SIマスターのみに対してRESET*信号を解除し、こ の点において、SIマスターは、SCbus28、Pbus18及び 両バスに対するチェックラインの完全マスターとなる。 F MDCは、SIマスターに対してRESET*信号を再アサートし、 SCマスターに対してRESET*信号をデアサートし、この点にお いてSCマスターは完全マスターとなる。この周期の終わりに、MD Cは、SCマスターに対してRESET*信号を再アサートする。 G MDCは、両マイクロプロセッサに対してRESET*信号をデアサ ートし、両マイクロプロセッサは部分マスターとして動作する。この 周期の終わりに、MDCは両RESET*信号を再アサートする。 H MDCは、SIマスターに対しRESET*信号をデアサートし、そ してSCマスターに対してRESET*信号を保持する(アサートし 続ける)。この周期では、SIマスターは完全マスターである。
【0018】 I MDCは、SIマスターに対しRESET*信号を再アサートし、そ してSCマスターに対してRESET*信号をデアサートする。この 周期では、SCマスターは、完全マスターである。 J MDCは、ある有限の時間周期に対し両RESET*信号を再アサー トする。 K MDCは、両RESET*信号をデアサートし、マイクロプロセッサ は、部分マスターとなる。
【0019】タイミングチャート(周期A)は、SCマ
スター(図1に12(0)で示す)又はSIマスター
(図1に12(1)で示す)が欠陥を検出して、そのF
AULT*ラインを低レベルに駆動することによりこの
ラインをアサートする状態で始まる。この信号は、MD
C14によってピックアップされる。PICが間違った
パリティでPbus18を駆動するようなあるエラーの
場合には、両マイクロプロセッサ12がそれらの別々の
欠陥ラインをアサートすることがある。他のエラーの場
合には、一方のマイクロプロセッサ12のみがエラーを
検出する。
【0020】いずれの場合にも、欠陥が生じると、MD
C14は、マイクロプロセッサ12の状態を迅速に判断
しなければならない。マイクロプロセッサ12の状態
は、その内部レジスタ及びフラグの値である。完全な診
断の場合には、MDC14は、各マイクロプロセッサ1
2の一次キャッシュの内容と、共有二次キャッシュ30
(図1)の内容とを得なければならない。命令及びデー
タが個別のキャッシュ処理されるようなマイクロプロセ
ッサが使用される場合には、一次キャッシュは、一次命
令キャッシュ及び一次データキャッシュを含む。
【0021】MDCがFAULT*信号を受け取ると、
MDCは、両マイクロプロセッサのRESET*ライン
をアサートする(周期B)。RESET*信号がアサー
トされたときに、マイクロプロセッサは、FAULT*
ラインを除くその全ての出力が3状態出力であるような
状態に入る。これは、他のロック・ステップマイクロプ
ロセッサが干渉を生じることなくバスを完全に制御でき
るようにする。マイクロプロセッサ12は、ビットをセ
ットできると共にリセットの後にビットを思い出すこと
のできる内部ロジックを含む。このビットは、マイクロ
プロセッサ12が並列マスターモードにあるときにSI
マスターであるかSCマスターであるかを指示する。マ
イクロプロセッサ12がリセットされそしてそのリセッ
トが少なくともある所定の時間中保持されるたびに、マ
イクロプロセッサのマスターモードは、完全マスターモ
ードと部分マスターモードとの間をトグルする。
【0022】マイクロプロセッサ12をリセット状態に
保持するのに加えて、MDCは、Mbus24を経てホ
ールド信号を送信し、Ibus26に接続された装置の
状態を保持する。
【0023】リセットモードにある間に、マイクロプロ
セッサ12内のロジックは、MODEINラインの状態
に基づいて更に別の欠陥指示をFAULT*ラインに与
える(周期B、C)。MODEINラインが低レベルで
あるときには、FAULT*ラインは、出力不一致が最
初に欠陥をトリガーした場合に低レベル(論理0)とな
り、これは、初期FAULT*パルスを生じさせる。上
記したように、出力不一致欠陥は、他方のマイクロプロ
セッサによって駆動されているラインが一方のマイクロ
プロセッサの電位出力とは異なる値に駆動されたときに
一方のマイクロプロセッサから予想されるものである。
出力ロジックが欠陥でない限り、マイクロプロセッサ
は、これが駆動するライン上の出力不一致を論理的に検
出することはできない。各マイクロプロセッサ12は、
あるラインに対するマスターであるから、出力不一致指
示は、SCバス28又はPbus18のいずれかにおい
て不一致が生じ勝ちなラインを示す。FAULT*ライ
ンは、出力不一致が検出された場合にエラーを検出する
マイクロプロセッサによって低レベル(論理0)に駆動
される。
【0024】次いで、周期Cにおいて、各マイクロプロ
セッサ12からの入力欠陥経過ビットがFAULT*ラ
インから読み取られる。RESET*ラインを低レベル
に保持するMDCがMODEINラインを高レベルに駆
動すると、マイクロプロセッサ12は、FAULT*ラ
インに入力欠陥経過ビットを出力して、これらラインを
低レベルに駆動し、入力欠陥を指示する。入力欠陥経過
ビットは、入力欠陥が最初に生じる欠陥であったことは
指示せず、入力欠陥ビットがリセットされて以来ある時
間に入力欠陥が生じたことを指示する。
【0025】MDCによって欠陥が検出された後に、M
DCは、マイクロプロセッサに対するブート位置におい
てメモリ22へ診断コードをロードする。ブート位置
は、リセット時にマイクロプロセッサによって読み取ら
れる第1命令位置である(が、以下で述べるように、こ
のアドレスは、ブートアドレスレロケータ194によっ
て物理的なメモリ位置へレロケートされることがあ
る)。
【0026】診断コードがロードされると、RESET
*信号は、マイクロプロセッサ12(1)(部分マスタ
ーモードのSIマスター)においてデアサートされ、こ
れは上記したように完全マスターとして動作する。診断
コードは、マイクロプロセッサ12(1)がその状態及
びその一次キャッシュの内容をダンプするようにさせる
(周期E)。診断コードは、通常、このコードを実行し
ている間に一次キャッシュが使用されないように書き込
まれ、従って、最初に破壊されずにこれを読み取ること
ができるようにされる。
【0027】マイクロプロセッサ12(0)のRESE
T*ラインはまだアサートされているので、そのマイク
ロプロセッサの出力ラインは3状態にある。これは、マ
イクロプロセッサ12(1)が診断コードを実行できる
ようにし、マイクロプロセッサ12(0)によって干渉
されずにダンプを行わせる。ダンプされたデータは、次
いで、PICによってピックアップされ、MICに通さ
れて、後で分析するためにメモリ22に記憶される。も
ちろん、欠陥が生じたとすると、いずれかのマイクロプ
ロセッサ12が適切に振る舞わず、診断データの収集に
干渉を生じることになる。
【0028】周期Eの終わりに、マイクロプロセッサ1
2(1)のRESET*ラインは、再びアサートされ
る。周期Fがスタートすると、マイクロプロセッサ12
(0)のRESET*ラインがデアサートされ、診断コ
ードの実行を開始して、その状態及び一次キャッシュを
ダンプする。両マイクロプロセッサ12がそれらの状態
及び一次キャッシュをダンプしてしまうと、二次キャッ
シュ30をダンプすることが必要となる。
【0029】MDC14はSCバス28に直結されない
ので、二次キャッシュ30は、マイクロプロセッサ12
の1つを介してダンプされねばならない。MDC14
は、この目的のためにSCバス28に直結できるが、S
Cバス28に別の装置を接続すると、その応答時間が低
速になり、従って、MDC14は、マイクロプロセッサ
12を経て二次キャッシュ30を読み取る。欠陥を生じ
ている問題が診断されるまで、どちらのマイクロプロセ
ッサ12が欠陥であるか未知であり、どちらにせよ、ロ
ック・ステップで動作する両マイクロプロセッサを使用
し、次いで、各マイクロプロセッサを別々に使用して二
次キャッシュ30が読み出され、分析のための二次キャ
ッシュの3つのコピーが形成される。
【0030】二次キャッシュ30がロック・ステップ状
態のマイクロプロセッサ12(0、1)から読み出され
ている間に出力不一致が生じた場合は、それが無視され
る。各マイクロプロセッサ12は、そのリセットライン
が解除されたときに部分マスターモードに入るようにセ
ットされるので、二次キャッシュ30が最初にロック・
ステップ(2つの部分マスター)モードで読み取られる
(周期G)。SCマスターが部分マスターであるために
は、SCマスターは、図2に示されたように、周期Fと
Gとの間のある一定の時間中にリセットされていなけれ
ばならないことに注意されたい。
【0031】周期Gにおいて、両マイクロプロセッサ1
2は同じコードを実行し、このコードは、これらマイク
ロプロセッサが二次キャッシュ30の内容をPIC16
へダンプするように命令し、PICはそれをMIC20
へ通してメモリ22に記憶する。このダンプ中に出力不
一致が生じた場合には、FAULT*ラインがアサート
されるが、MDCによって無視される(が、これはMD
Cによって注目され、記録される)。もちろん、診断コ
ードは、通常は、このコードを実行している間に二次キ
ャッシュが使用されないように書き込まれる。
【0032】周期Hにおいて、マイクロプロセッサ12
(1)は、完全マスターとして二次キャッシュ30の内
容をダンプし、そして周期Iにおいて、マイクロプロセ
ッサ12(0)は、完全マスターとして二次キャッシュ
30の内容をダンプする。
【0033】周期Jは、リセットラインがマイクロプロ
セッサ12(0)において部分マスターモード/完全マ
スターモードをトグルするのに必要な最終時間周期を示
している。各マイクロプロセッサ12の状態及び一次キ
ャッシュ、並びに二次キャッシュ30がダンプされる
と、MDC14はこのダンプを分析するように進むこと
ができるか、或いはRESET*ラインをデアサートす
ることによりマイクロプロセッサ12をコールド・リセ
ットすることができる(周期K)。
【0034】図3は、PIC16を詳細に示している。
PICは、図示されない多数のエレメントを含んでお
り、Pbusインターフェイスセクション180、Ib
usインターフェイスセクション182、要求パイプラ
イン195、プレフェッチ待ち行列196、及び割り込
みフィルタ198におおよそ分割される。
【0035】Pbusインターフェイスセクション18
0は、Pbus18からデータを読み取ってPIC16
の多数の他の要素からPbus18にデータを出力する
ためのロジックを備えている。図3に示されたPbus
インターフェイスセクション180の要素は、Pbus
18に接続されたマルチビット入力ドライバ202、こ
の入力ドライバ202に接続されたPbus入力レジス
タ250、この入力レジスタ250により出力されるコ
マンド経路とプレフェッチ待ち行列196との間に接続
されたプレフェッチ待ち行列モニタ254、及びPbu
s出力マルチプレクサ264であり、該マルチプレクサ
の選択入力はマルチプレクサコントローラ256から受
け取られそしてその出力はPbus出力レジスタ248
に接続され、これは次いでマルチビット出力ドライバ2
52の入力に接続される。レジスタ250の出力はコマ
ンド経路と書き込みデータ経路とに分割され、コマンド
はプレフェッチ待ち行列モニタ254及び要求パイプラ
イン195へ送られ、そして書き込みデータは要求パイ
プライン195の書き込みバッファ208へ送られる。
【0036】Ibusインターフェイスセクション18
2は、Ibus26からデータを読み取ってPIC16
の多数の他の要素からのデータをIbus26に出力す
るロジックを含んでいる。図3に示されたIbusイン
ターフェイスセクション182の要素は、Ibus26
に接続された第2マルチビット入力ドライバ242、こ
の入力ドライバ242に接続されたIbus入力レジス
タ244、及びIbus出力マルチプレクサ210であ
り、該マルチプレクサの選択入力は第2マルチプレクサ
コントローラ212から受け取られそしてその出力はブ
ートアドレスレロケータ194に接続され、これはIb
us出力レジスタ240に出力し、これは次いで第2マ
ルチビット出力ドライバ214の入力に接続される。レ
ジスタ244の出力は、2つの出力に分割され、その一
方の出力は割り込みフィルタ198へ送られる割り込み
に対するものであり、そしてその他方の出力はプレフェ
ッチ待ち行列196へ送られるメモリ読み取り応答に対
するものである。
【0037】図3を参照して要求パイプライン195に
ついて詳細に説明する。要求パイプライン195の説明
に続いて、図4を参照してプレフェッチ待ち行列196
を説明し、そして図7を参照して割り込みフィルタ19
8を説明する。
【0038】要求パイプライン195は、パイプライン
テイルレジスタPTAIL(DMI)204(1)と、
パイプラインヘッドレジスタPHEAD(DMO)20
4(2)と、パイプラインコントローラ206と、書き
込みバッファ208とを備えている。この書き込みバッ
ファ208は、書き込みバッファがいっぱいであるか空
であるかを指示するためのいっぱい/空フラグ209を
含んでいる。又、パイプラインコントローラ206は、
いかに書き込みバッファ208がいっぱいであるか空で
あるかを指示するレジスタ(図示せず)と、到来する書
き込み要求をIbus26に送るべきか又は書き込みバ
ッファ208が更にいっぱいになるのを待機すべきかを
判断するためにこのレジスタに対して比較することので
きるプログラム可能なスレッシュホールド(これも図示
せず)とを維持する。
【0039】マイクロプロセッサ要求のコマンド部分、
例えば、要求がメモリ読み取り要求であるという指示、
及び読み取られるべきアドレスの指示は、パイプライン
テイルに記憶されるか、パイプラインヘッドに記憶され
るか、又はマルチプレクサ210及びIbus26へ直
接通されるかのいずれかである。ある場合には、メモリ
読み取り要求は、要求パイプラインに到達せず、プレフ
ェッチ待ち行列196へルート指定される。これは、マ
イクロプロセッサによって読み取られるべきデータがプ
レフェッチ待ち行列に既に存在するときに生じる。この
状態は、読み取り要求のアドレス部分を、プレフェッチ
待ち行列196のバッファに対して記憶されたアドレス
タグと比較することにより検出される。しかしながら、
読み取り要求が要求パイプライン195に入る場合に
は、要求パイプライン195を経て直接通すこともでき
るし、或いはPTAIL又はPHEADのいずれかに記
憶することもできる。PTAIL及びPHEADの両方
が空でありそしてIbus26が開放している場合に
は、読み取り要求はマルチプレクサ210へ直接通され
る。
【0040】Ibus26がビジーである場合には、読
み取り要求がPHEADに入れられそしてパイプライン
コントローラ206は、要求の受け入れをPbus18
を経てマイクロプロセッサへ戻し、マイクロプロセッサ
が動作を継続できるようにする。PHEADがコピーさ
れる場合には、読み取り要求がPTAILに入れられそ
してPHEADが開放しているときにPHEADへと移
動され、この場合も、パイプラインコントローラ206
は、要求の受け入れをマイクロプロセッサへ戻す。PT
AILも占有されている場合には、読み取り要求は入力
レジスタ250に保持され、パイプラインコントローラ
は要求の受け入れを返送しない。パイプラインコントロ
ーラ206が要求の受け入れを返送するまで(読み取り
要求が最終的にPTAIL又はPHEADにロードされ
るか又はIbus26に送られたとき)、マイクロプロ
セッサは、Pbus18を用いてそれ以上の要求を送信
するのを回避する。
【0041】書き込み要求は、PTAIL204(1)
に入れられ、書き込みデータは、Pbus18から書き
込みバス208へと収集される。書き込みバス208が
いっぱいであるときは、いっぱい/空フラグ209が
「いっぱい」にセットされる。スレッシュホールド量の
データが書き込みバッファ208にロードされたときに
は、パイプラインコントローラ206は、書き込み要求
をPTAILからPHEADへ移動する。Ibus26
が使用できる場合は、書き込み要求がそこへ移動し、そ
して書き込み要求及びそれに付随するデータがバスを経
て送られるときには、いっぱい/空フラグが「空」にせ
っとされる。図3に示す実施例では、一度に1つの書き
込み要求しか要求パイプラインに入れられないが、バス
の性能及び割り当てられたチップエリアについて異なる
制約をもつ他の実施例では、多数の書き込みバッファ又
は3つ以上のパイプライン段204をもつことができ
る。
【0042】古いデータをマイクロプロセッサへ送信す
るのを回避するために、プレフェッチ待ち行列モニタ2
54は、書き込み要求を監視し、そして書き込み要求に
よって書き込まれるべきメモリ位置からプレフェッチ待
ち行列が既に検索したデータを無効化するようにプレフ
ェッチ待ち行列196に知らせる。パイプラインコント
ローラ206とマルチプレクサコントローラ212を接
続する点線は、要求パイプライン195の出力をIbu
s26に出力すべきことをパイプラインコントローラ2
06がマルチプレクサコントローラ212に知らせるこ
とを指示するのに使用される。
【0043】Ibus26は、書き込み要求及びその書
き込みデータがPIC16において完全であるときだけ
アサートされるので、Ibus26は、より効率的に使
用される。全ての書き込みデータを得るにはPbus1
8の多数のバスサイクルが必要とされ、従って、書き込
みバッファ208が、少なくとも、パイプライン206
に記憶されたプログラム可能なスレッシュホールドまで
満たされるかでは、Ibus26は使用されない。
【0044】図4は、プレフェッチ待ち行列196を詳
細に示している。プレフェッチ待ち行列196は、制御
状態マシン312、最も最近使用されたレジスタ(MR
U)310、及び2つのバッファ(PFQ0、PFQ
1)226(0、1)とを備えている。MRU310
は、最も最近使用されたバッファ226を指す。各バッ
ファは、8つのデータワード及びそれに関連したパリテ
ィビットに対する記憶部、即ちアドレスタグレジスタ3
02、有効化フラグ304、ハード中断フラグ306、
及び修正不能なメモリエラー(UCME)フラグ308
を備えている。制御状態マシン312は、バスインター
フェイスレジスタを経てIbus26及びPbus18
に接続され、そして各バッファ226の記憶エリア及び
種々のフラグを読み取ったり書き込んだりするように接
続される。又、制御状態マシン312は、プレフェッチ
待ち行列254からの信号も受け取り、これら信号は、
プレフェッチしたデータをPbus18に与えるために
使用されると共に、バッファ226に読み込まれた後に
書き込まれたデータを無効化するのに使用される。制御
状態マシン312は、マルチプレクサ210を経てメモ
リ読み取り要求を行うところの出力を備えている。
【0045】プレフェッチ待ち行列196は、次のよう
に動作する。非プレフェッチ動作の場合には、PFQ0
がIbusバッファとして使用される。プレフェッチ動
作の場合には、制御状態マシン312は、モニタ254
を経て又はIbus26から到来するデータから読み取
り要求の読み取りアドレスが知らされる。次いで、制御
状態マシン312は、実際に要求されたブロックに続く
アドレスからデータの要求を行うか、或いは読み取り要
求において要求された2倍のデータに対しIbus26
を経て単一の要求を行う。実際に要求されたデータのブ
ロックは、Pbus18を経てマイクロプロセッサへ送
られ、他方の半分は、要求されるまで、プレフェッチ待
ち行列バッファ226に記憶される。
【0046】PFQ1が最も最近使用されたそして両有
効化フラグ304(0、1)がリセットされたことをM
RU310が指示したと仮定する。読み取り要求がPI
C16に送られたとき、その読み取り要求をプレフェッ
チ待ち行列に満たすことができず、従って、その要求
は、要求パイプライン195によってIbus26に出
される。典型的な読み取り要求は、8ワードを要求する
が、プレフェッチ待ち行列を満たすために、Ibus2
6の要求は、16ワードを要求する。16ワードの要求
がDRAM(ダイナミックランダムアクセスメモリ)の
ページ境界を横切る場合には、その要求が2つの8ワー
ド要求として送られる。16ワードが返送される場合に
は、8個が要求を満たすように送られ、そして他方の8
個がPFQ0(最も古いバッファ)に記憶される。MR
U310は、PFQ1を指すようにトグルされ、タグレ
ジスタ302(0)は、PFQ0に記憶された後者の8
ワードのアドレスで更新され、そして有効化フラグ30
4(0)がセットされる。
【0047】最初の8ワードの読み取り中に、ハード中
断エラー又はUCMEが生じた場合には、その状態の指
示がマイクロプロセッサへ通される。しかしながら、後
者の8ワードにおいてエラーが生じた場合には、そのエ
ラーを生じたデータをマイクロプロセッサが実際に要求
するまで、マイクロプロセッサに指示が通されない。後
者の8ワードを読み取ることによりハード中断が生じた
場合には、ハード中断フラグ306(0)がセットさ
れ、そして後者の8ワードを読み取り中にUCMEが生
じた場合には、UCMEフラグ308(0)がセットさ
れる。
【0048】タグレジスタ302(0、1)の一方に一
致するアドレスに対して読み取り要求が発生されたこと
をPFQモニタ254が指示するときには、その要求が
プレフェッチ待ち行列から満たされ、そして要求を満た
したバッファ226は、その有効化フラグ304をリセ
ットすることにより無効とマークされる。無効バッファ
226があるときには、別の8ワードをフェッチするこ
とができ、従って、プレフェッチ待ち行列196がデー
タ流に対してネックとなることは稀である。書き込み要
求が要求パイプライン195へ送られるときには、PF
Qモニタ254は、書き込みアドレスを制御状態マシン
312へ供給し、該マシンはそれをタグレジスタ302
(0、1)と比較する。書き込みアドレスがいずれかの
タグレジスタに一致する場合には、制御状態マシン31
2は、その一致するタグレジスタに関連したバッファ2
26に対し有効化フラグ304をリセットする。
【0049】図5は、ブートアドレスレロケータ194
を詳細に示している。図5のブートアドレスレロケータ
194は、ブートアドレスレロケーションを行うべきで
あるかどうかを指示するビットを記憶するブート例外ベ
クトルインジケータレジスタ(BEV PIC)218
と、2ビットブートアドレスレジスタ220と、6個の
2入力マルチプレクサ402(1・・・6)と、アンド
ゲート400と、排他的オア(XOR)ゲート404と
を備えている。アドレスは、32ビットと、各アドレス
バイト(8ビット)ごとに1ビットづつの4ビットのパ
リティで構成される。これらパリティビットは偶数パリ
ティであり、従って、dmo pb〔3〕は、dm
r〔31:24〕のXORであり、dmo
b〔2〕は、dmo r〔23:16〕のXORであ
り、等々となる。
【0050】レジスタ220及びBEV PIC218
は、多数の方法でセットすることができ、例えば、MD
C14によって制御可能である。MDC14がレジスタ
に値を挿入する1つの方法は、所望の値を走査データに
挿入し、レジスタにおいて走査を実行し、そして新たな
内容を挿入しながら現在内容を読み出すというものであ
る。
【0051】ブートアドレスレロケータ194は、バス
入力と、バス出力と、バスの内容がIbus26に出さ
れるアドレスであるかどうかを指示する入力とを有す
る。バスの内容がIbus26に出されるアドレスでな
い場合には、データが変更されずにブートアドレスレロ
ケータに通される。アンドゲート400は2つの入力を
有し、その一方はBEV PIC218からでありそし
てその他方は、入力がIbus26に対するアドレスで
あるかどうかを指示する入力である。両方が真である場
合には、アンドゲート400は、論理1(SELECT
=1)をマルチプレクサ402(1・・・6)の選択入
力へ出力し、バスのアドレスのレロケーションを生じさ
せる。さもなくば、アンドゲート400が論理0(SE
LECT=0)を出力する場合には、バスのデータが不
変のままブートアドレスレロケータ194に通される。
【0052】テーブル2は、マルチプレクサのロジック
と、アドレスラインのビットに対するその作用とを示し
ている。 テーブル2:ブートレロケーションアドレス動作 ライン SELECT=0 SELECT=1 31:24 dmo a [31:24] 0 23:22 dmo r [23:22] 0 21 dmo r [21] boot adr[1] 20:17 dmo r [20:17] 0 16 dmo r [16] boot adr[0] 15:08 dmo r [15:08] dmo r [15:08] 07:00 dmo r [07:00] dmo r [07:00] parity 3 xor(dmo r [31:24]) 0 parity 2 xor(dmo r [23:16]) xor(dmo r [21:16]) parity 1 xor(dmo r [15:08]) xor(dmo r [15:08]) parity 0 xor(dmo r [07:00]) xor(dmo r [07:00])
【0053】図6は、0x00000000から0xF
FFFFFFFまでの32ビットアドレスのメモリマッ
プであり、ブートアドレスレロケーションの作用を示し
ている。プロセッサシステムの一実施例において、オペ
レーティングシステムは、0x00000000でスタ
ートして、32、64、128又は256メガバイト
(MB)延びる下位アドレスに物理メモリを予想する。
しかしながら、マイクロプロセッサ12は、0x1FC
00000にブートコードを見つけるよう予想する。こ
れら両方の要望は、0x00000000から0x1F
C00000までのスペースに及ぶ少なくとも508M
Bのメモリを使用するか、又は物理メモリ内の位置への
ジャンプを含むコードを備えた小さなメモリを0x1F
C00000に追加することによって満たすことができ
る。マイクロプロセッサ12が動作している間に、その
内部変換ルック・アサイドバッファ(TLB)で仮想メ
モリアドレス変換を行うことができるが、リセットの後
に、まだそれ自身を仮想メモリ動作用に構成していな
い。ブートコードは、この設定を助け、従って、マイク
ロプロセッサ12が予想するアドレスに配置されるか又
はそこへレロケーションされねばならない。
【0054】物理アドレススペースの4つのセクション
(00、01、10及び11と示された)がブートコー
ドに対して使用できる。これらのセクションは全てメモ
リの最初の4MB内に位置しているから、これらは全て
上記実施例の設置された物理メモリに配置されている。
ブートアドレスレロケータ194は、アドレスをこれら
4つのセクションの1つにレロケートし、4つのセクシ
ョンの特定の1つは、BOOT ADR〔1:0〕と示
されたブートアドレスレジスタ220の内容によって決
定される。
【0055】図5は、点線輪郭のマルチプレクサ402
(3)を示しており、これは、上記例ではビット20:
17がブートアドレスにおいて全て0であるために実際
には必要でないことを表している。この場合に、マルチ
プレクサ402(3)は、チップのスペースを節約する
ために除去することができる。
【0056】図7は、割り込みフィルタ198を詳細に
示すもので、この割り込みフィルタは、割り込みイメー
ジレジスタ452と、第3優先順位レベル割り込みレジ
スタ460と、第3優先順位レベル割り込みマスク46
2と、第2優先順位レベル割り込みレジスタ464と、
第2優先順位レベル割り込みマスク466と、マルチラ
イン比較器470と、出力ドライバ480と、入力ドラ
イバ482とを備えている。又、図7は、マイクロプロ
セッサ12内の割り込みレジスタ450も示している。
【0057】割り込み入力経路が示されており、割り込
みは、Ibus26から伝播して、順に、レジスタ46
0を通り、マスク462を通り、レジスタ464を通
り、マスク466を通り、そして内部バス490へ送ら
れる。内部バス490の5本のラインは割り込みイメー
ジレジスタ452へと送られ、該レジスタは、比較器4
70への5ライン出力を有している。比較器470の比
較器出力は、ドライバ480のイネーブル出力に接続さ
れる。ドライバ480への入力は、内部バス490であ
る。ドライバ482の出力は、レジスタ及びマスクへ与
えられ、一方、ドライバ482の入力及びドライバ48
0の出力は、Pbusインターフェイスセクション18
0(図示せず;図3参照)を経てPbus18に接続さ
れる。マイクロプロセッサ12の割り込みレジスタ45
0は、Pbusにも接続される。
【0058】動作中に、Ibus26からの割り込みは
フィルタされ、マイクロプロセッサ12に到達する割り
込みのみが割り込みレジスタ450の内容を変更する割
り込みとなるが、マイクロプロセッサ12は、割り込み
レジスタに自由に問い合わせたり変更したり、或いは割
り込みフィルタ198にマスクしたりする。
【0059】図8は、レジスタ460、464を詳細に
示している。図示されていないが、マスク462、46
6は、各々、レジスタ460、464の各割り込みごと
にビットを含む。
【0060】Ibus26を経て受け取った割り込み
は、それらの割り込み番号に基づいてレジスタ460に
記憶される。ある割り込みの場合に、割り込み番号と共
に値が通され、この値は、セット状態又はリセット状態
のいずれかにある割り込み(即ち、クリアされた割り込
み)の設定の指示と共に記憶される。これらの到来する
割り込みはマスクされそして図8に示すような優先順位
機構に基づいて優先順位決めされる。例えば、割り込み
int io〔19:10〕のグループの中で、int
io〔19〕が最も高い優先順位を有する。それ故、
Ibus26を経て到来する割り込み事象によってin
io〔19〕及びそれより下位の優先順位の割り込
みがセットされた場合には、int io〔19〕の割
り込みだけが通されて、次の優先順位レベルのint
a〔15〕をトリガーする。int a〔15〕には、番
号「19」も記憶され、int a〔15〕割り込みを
生じさせる優先順位グループ内の割り込みの番号を容易
に決定することができる。int io〔19〕がクリ
アされた場合には、次に高い優先順位の割り込みがin
a〔15〕まで伝播する。
【0061】マスクレジスタは各割り込みごとにフラグ
を含み、マスクビットがセットされた場合には、その割
り込みが次のレベルへと送られない。それ故、int
io〔19〕に対するマスクビットがセットされた場合
には、int io〔19〕割り込みは、それが最も優
先順位の高い割り込みであってもint a〔15〕へ
は通されない。
【0062】同様に、割り込みは、第2のレベルにおい
て優先順位決めされ、これは割り込みを第1レベルにお
いて5に減少する。しかしながら、異なる割り込みの数
をこのように狭くしていっても、割り込みの頻度は必ず
しも減少されない。というのは、割り込みはしばしば第
1の優先順位レベルまで完全に伝播するからである。割
り込みレジスタ450を更新するためのPbus上のト
ラフィックの量を減少するために、割り込みイメージレ
ジスタ452は、割り込みレジスタ450にあるべきも
ののコピーを維持する。割り込みイメージレジスタ45
2は、内部バス490へのマスク466の出力によって
更新され、そして割り込みイメージレジスタ452の予
備更新内容は、比較器470により内部バス490の内
容と比較される。内部バス490の内容が割り込みイメ
ージレジスタ452の内容を変更する場合には、内部バ
ス490の内容はPbusに出力され、さもなくば、P
busには何も出力されない。このように、割り込みレ
ジスタ450及び割り込みイメージレジスタ452は、
割り込みレジスタ450を更新する際の遅延を除いて、
互いに反映し合う。もちろん、マイクロプロセッサ12
が割り込みレジスタ450を内部で変更する場合には、
割り込みイメージレジスタ452も更新しなければなら
ない。完全な割り込みデータをそのたびにマイクロプロ
セッサ12へ送る必要はない。というのは、マイクロプ
ロセッサ12は、その動作にとって必要なときに、割り
込みフィルタ198のレジスタ及びマスクにアクセスす
ることができるからである。
【0063】以上、本発明を説明したが、これは単なる
説明に過ぎず、本発明をこれに限定するものではない。
当業者であれば、本明細書の開示を検討することにより
多数の種々の変更が明らかとなろう。それ故、本発明の
範囲は、上記説明を参照して判断するのではなく、特許
請求の範囲のみによって限定されるものとする。
【図面の簡単な説明】
【図1】2つのマイクロプロセッサ、プロセッサインタ
ーフェイスチップ(PIC)及び保守・診断チップ(M
DC)を含む本発明によるプロセッサシステムの全体を
示すブロック図である。
【図2】マイクロプロセッサと保守・診断チップとの間
の欠陥に続く相互作用を示したタイミング図である。
【図3】ブートアドレス変換回路、プレフェッチ待ち行
列、割り込みフィルタ及び要求パイプラインを含むPI
Cの詳細なブロック図である。
【図4】プレフェッチ待ち行列を詳細に示すブロック図
である。
【図5】ブートアドレス変換回路を詳細に示すブロック
図である。
【図6】マイクロプロセッサによりアドレスされた物理
メモリのメモリマップを示す図である。
【図7】割り込みフィルタを詳細に示す図である。
【図8】3レベル割り込みハイアラーキの一例を示す図
である。
【符号の説明】
10 プロセッサシステム 12 マイクロプロセッサ 14 保守・診断チップ(MDC) 16 プロセッサインターフェイスチップ(PIC) 18 プロセッサバス(Pbus) 20 メモリインターフェイスチップ 22 メインメモリ 24 保守バス(Mbus) 28 二次キャッシュ(SC)バス 30 二次キャッシュ
───────────────────────────────────────────────────── フロントページの続き (72)発明者 フレッド シー サバーニック アメリカ合衆国 カリフォルニア州 94086サニーヴェイル コスタ メサ テラス 430 ナンバー エイチ (72)発明者 ジェフ エイ スプラウス アメリカ合衆国 カリフォルニア州 94043マウンテン ヴィュー イージー ストリート 221 アパートメント 14 (72)発明者 マーティン ジリ グロース アメリカ合衆国 カリフォルニア州 95051−3708 サンタ クララ ビュー ト ストリート 2962 (72)発明者 ピーター フー アメリカ合衆国 カリフォルニア州 94087サニーヴェイル クローフォード ドライヴ 524 (72)発明者 ラッセル マーク レクター アメリカ合衆国 カリフォルニア州 94618オークランド ロートン アベニ ュー 5587 (56)参考文献 特開 昭51−138356(JP,A) 特開 昭54−84447(JP,A) 特開 昭57−174745(JP,A) 特開 平1−240958(JP,A) 特開 平2−310657(JP,A) (58)調査した分野(Int.Cl.7,DB名) G06F 13/24 G06F 9/46 G06F 13/36

Claims (1)

    (57)【特許請求の範囲】
  1. 【請求項1】 タンデム状態で動作しているマイクロプ
    ロセッサを内部バスに接続するプロセッサインターフェ
    イス回路であって、マイクロプロセッサによって発せら
    れたメモリ読み取り、メモリ書き込み及び入力/出力ア
    クセスについての要求を取り扱うプロセッサインターフ
    ェイス回路において、 マイクロプロセッサとプロセッサインターフェイス回路
    との間でプロセッサバスを経て両方向データ経路を維持
    するプロセッサバスインターフェイスと、 プロセッサインターフェイス回路とプロセッサシステム
    の内部のマイクロプロセッサ要求ハンドラーとの間で内
    部バスを経て両方向データ経路を維持する内部バスイン
    ターフェイスであって、上記マイクロプロセッサ要求ハ
    ンドラーは、マイクロプロセッサからの要求に応答して
    メモリを読み取ったり書き込んだりする少なくともメモ
    リインターフェイス回路を含んでいるような内部バスイ
    ンターフェイスと、 上記プロセッサバスインターフェイスに接続されたブー
    トアドレスレロケータであって、このブートアドレスレ
    ロケータは、メモリアクセス要求のアドレス部分をアク
    セスするもので、ブートインジケータがセットされ且つ
    上記アドレス部分が上記メモリインターフェイス回路に
    よりアクセスされる上記メモリ内のアドレスを指さない
    ときに上記アドレス部分におけるアドレスをレロケート
    するようなブートアドレスレロケータと、 上記プロセッサバスインターフェイス及び上記内部バス
    インターフェイスに接続され、マイクロプロセッサ要求
    を受け入れると共に、内部バスインターフェイスが上記
    要求を直ちに受け入れられないときに上記要求が上記内
    部バスインターフェイスに出力される前に上記要求を確
    認するための要求パイプラインと、 上記プロセッサバスインターフェイス及び上記内部バス
    インターフェイスに接続され、上記メモリからデータの
    予想ブロックをフェッチして保持するためのプレフェッ
    チ待ち行列であって、上記予想ブロックは、マイクロプ
    ロセッサによって要求されたブロックに続くメモリ内の
    ブロックであるようなプレフェッチ待ち行列と、 上記内部バスインターフェイス及び上記プロセッサバス
    インターフェイスに接続され、上記内部バスから割り込
    み信号を受け取って、第1クラスの割り込みからの割り
    込みを上記プロセッサバスへ通し、この第1クラスの割
    り込みは、マイクロプロセッサのプログラムの流れに現
    在作用を与えるものであり、そして第2クラスの割り込
    みからの割り込みを記憶し、この第2クラスの割り込み
    は、その記憶された割り込みが上記プログラムの流れに
    作用するまで、上記プログラムの流れに全く現在作用を
    与えないものであるような割り込みフィルタとを備えた
    ことを特徴とするプロセッサインターフェイス回路。
JP14706898A 1993-07-06 1998-05-28 プロセッサインターフェイス回路 Expired - Fee Related JP3272664B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/088,562 US5435001A (en) 1993-07-06 1993-07-06 Method of state determination in lock-stepped processors
US08/088562 1993-07-06

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP6153211A Division JP2955469B2 (ja) 1993-07-06 1994-07-05 二重マイクロプロセッサ型処理システム用のプロセッサインターフェイスチップ

Publications (2)

Publication Number Publication Date
JPH1153302A JPH1153302A (ja) 1999-02-26
JP3272664B2 true JP3272664B2 (ja) 2002-04-08

Family

ID=22212092

Family Applications (5)

Application Number Title Priority Date Filing Date
JP6153211A Expired - Fee Related JP2955469B2 (ja) 1993-07-06 1994-07-05 二重マイクロプロセッサ型処理システム用のプロセッサインターフェイスチップ
JP10147066A Pending JPH10320227A (ja) 1993-07-06 1998-05-28 マイクロプロセッサ要求パイプライン
JP10147067A Expired - Fee Related JP3098489B2 (ja) 1993-07-06 1998-05-28 割り込み処理装置
JP14706898A Expired - Fee Related JP3272664B2 (ja) 1993-07-06 1998-05-28 プロセッサインターフェイス回路
JP10147065A Pending JPH1115687A (ja) 1993-07-06 1998-05-28 ブートアドレス変換装置

Family Applications Before (3)

Application Number Title Priority Date Filing Date
JP6153211A Expired - Fee Related JP2955469B2 (ja) 1993-07-06 1994-07-05 二重マイクロプロセッサ型処理システム用のプロセッサインターフェイスチップ
JP10147066A Pending JPH10320227A (ja) 1993-07-06 1998-05-28 マイクロプロセッサ要求パイプライン
JP10147067A Expired - Fee Related JP3098489B2 (ja) 1993-07-06 1998-05-28 割り込み処理装置

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP10147065A Pending JPH1115687A (ja) 1993-07-06 1998-05-28 ブートアドレス変換装置

Country Status (8)

Country Link
US (5) US5435001A (ja)
EP (1) EP0636973B1 (ja)
JP (5) JP2955469B2 (ja)
KR (1) KR100249642B1 (ja)
CN (1) CN1099492A (ja)
AU (1) AU671543B2 (ja)
CA (1) CA2127081A1 (ja)
DE (1) DE69434473T2 (ja)

Families Citing this family (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3292864B2 (ja) * 1995-02-07 2002-06-17 株式会社日立製作所 データ処理装置
US6738894B1 (en) * 1995-02-07 2004-05-18 Hitachi, Ltd. Data processor
US5732209A (en) * 1995-11-29 1998-03-24 Exponential Technology, Inc. Self-testing multi-processor die with internal compare points
US5751641A (en) * 1995-12-27 1998-05-12 Sgs-Thomson Microelectronics, Inc. Microprocessor memory test circuit and method
GB9622684D0 (en) 1996-10-31 1997-01-08 Sgs Thomson Microelectronics An integrated circuit device and method of communication therwith
EP0840224B1 (en) * 1996-10-31 2002-09-18 STMicroelectronics Limited Microcomputer with booting system
KR100502400B1 (ko) * 1997-07-31 2005-11-03 삼성전자주식회사 복수의주변저장장치선택제어기능을갖는컴퓨터및그선택제어방법
US6353805B1 (en) 1997-12-31 2002-03-05 Intel Corporation Apparatus and method for cycle accounting in microprocessors
US6052802A (en) * 1997-12-31 2000-04-18 Intel Corporation Apparatus and method for cycle accounting in microprocessors
US6122679A (en) * 1998-03-13 2000-09-19 Compaq Computer Corporation Master DMA controller with re-map engine for only spawning programming cycles to slave DMA controllers which do not match current programming cycle
US6247101B1 (en) 1998-07-01 2001-06-12 Lsi Logic Corporation Tagged access synchronous bus architecture
US7386711B1 (en) * 2002-01-08 2008-06-10 Cisco Technology, Inc. Method and apparatus for redirecting the boot operations of one or more systems
US7111125B2 (en) * 2002-04-02 2006-09-19 Ip-First, Llc Apparatus and method for renaming a data block within a cache
US6966042B2 (en) * 2003-03-13 2005-11-15 International Business Machine Corporation System for detecting and reporting defects in a chip
US7493513B2 (en) * 2003-04-29 2009-02-17 International Business Machines Corporation Automatically freezing functionality of a computing entity responsive to an error
US7437593B2 (en) * 2003-07-14 2008-10-14 International Business Machines Corporation Apparatus, system, and method for managing errors in prefetched data
CN1755660B (zh) * 2004-09-28 2010-09-29 惠普开发有限公司 冗余处理器中的诊断存储器转储方法
US20060136696A1 (en) * 2004-12-16 2006-06-22 Grayson Brian C Method and apparatus for address translation
FR2883998A1 (fr) * 2005-04-05 2006-10-06 St Microelectronics Sa Coprocesseur securise comprenant un circuit de detection d'un evenement
US8032745B2 (en) * 2005-12-20 2011-10-04 International Business Machines Corporation Authentication of I2C bus transactions
JP2009080747A (ja) * 2007-09-27 2009-04-16 Panasonic Corp マルチプロセッサ装置および情報処理装置
JP2009199344A (ja) * 2008-02-21 2009-09-03 Toshiba Corp データ処理装置
US8244947B2 (en) * 2009-02-20 2012-08-14 Qualcomm Incorporated Methods and apparatus for resource sharing in a programmable interrupt controller
US8589603B2 (en) * 2010-08-30 2013-11-19 International Business Machines Corporation Delaying acknowledgment of an operation until operation completion confirmed by local adapter read operation
GB2493340A (en) * 2011-07-28 2013-02-06 St Microelectronics Res & Dev Address mapping of boot transactions between dies in a system in package
JP2013196393A (ja) * 2012-03-19 2013-09-30 Fujitsu Ltd 演算処理装置及び演算処理装置の制御方法
US20150052293A1 (en) * 2012-04-30 2015-02-19 Blaine D. Gaither Hidden core to fetch data
US9170969B2 (en) 2013-01-20 2015-10-27 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Cached PHY register data access
US9747116B2 (en) 2013-03-28 2017-08-29 Hewlett Packard Enterprise Development Lp Identifying memory of a blade device for use by an operating system of a partition including the blade device
US9781015B2 (en) 2013-03-28 2017-10-03 Hewlett Packard Enterprise Development Lp Making memory of compute and expansion devices available for use by an operating system
WO2014158161A1 (en) 2013-03-28 2014-10-02 Hewlett-Packard Development Company, L.P. Error coordination message for a blade device having a logical processor in another system firmware domain
CN104484299B (zh) * 2014-12-05 2017-12-22 中国航空工业集团公司第六三一研究所 一种松耦合的Lockstep处理器系统
US10474389B2 (en) * 2016-07-05 2019-11-12 Hewlett Packard Enterprise Development Lp Write tracking for memories
CN111400111B (zh) * 2020-03-12 2024-02-27 北京交大思诺科技股份有限公司 一种具有备机失步状态的安全计算机平台

Family Cites Families (51)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4038533A (en) * 1976-09-29 1977-07-26 Allen-Bradley Company Industrial control processor system
US4339793A (en) * 1976-12-27 1982-07-13 International Business Machines Corporation Function integrated, shared ALU processor apparatus and method
US4378589A (en) * 1976-12-27 1983-03-29 International Business Machines Corporation Undirectional looped bus microcomputer architecture
US4181934A (en) * 1976-12-27 1980-01-01 International Business Machines Corporation Microprocessor architecture with integrated interrupts and cycle steals prioritized channel
US4219881A (en) * 1977-12-30 1980-08-26 Honeywell Inc. Digital input control circuit
US4291370A (en) * 1978-08-23 1981-09-22 Westinghouse Electric Corp. Core memory interface for coupling a processor to a memory having a differing word length
US4215399A (en) * 1978-08-24 1980-07-29 Texas Instruments Incorporated Special function control system for a dual microprocessor programmable process control system
US4484271A (en) * 1979-01-31 1984-11-20 Honeywell Information Systems Inc. Microprogrammed system having hardware interrupt apparatus
NL7907179A (nl) * 1979-09-27 1981-03-31 Philips Nv Signaalprocessorinrichting met voorwaardelijke- -interrupteenheid en multiprocessorsysteem met deze signaalprocessorinrichtingen.
FR2474201B1 (fr) * 1980-01-22 1986-05-16 Bull Sa Procede et dispositif pour gerer les conflits poses par des acces multiples a un meme cache d'un systeme de traitement numerique de l'information comprenant au moins deux processus possedant chacun un cache
US4347567A (en) * 1980-02-06 1982-08-31 Rockwell International Corporation Computer system apparatus for improving access to memory by deferring write operations
US4442504A (en) * 1981-03-09 1984-04-10 Allen-Bradley Company Modular programmable controller
DE3119117C2 (de) * 1981-05-14 1993-10-21 Bosch Gmbh Robert Vorrichtung zum Rücksetzen von Recheneinrichtungen
GB8310003D0 (en) * 1983-04-13 1983-05-18 Gen Electric Co Plc Input signal handling apparatus
US4757445A (en) * 1983-09-12 1988-07-12 Motorola, Inc. Method and apparatus for validating prefetched instruction
GB8401804D0 (en) * 1984-01-24 1984-02-29 Int Computers Ltd Data storage apparatus
US4642758A (en) * 1984-07-16 1987-02-10 At&T Bell Laboratories File transfer scheduling arrangement
US4682284A (en) * 1984-12-06 1987-07-21 American Telephone & Telegraph Co., At&T Bell Lab. Queue administration method and apparatus
JPS61262845A (ja) * 1985-05-16 1986-11-20 Matsushita Electric Ind Co Ltd マイクロコンピユ−タのリセツトスタ−ト装置
US4716523A (en) * 1985-06-14 1987-12-29 International Business Machines Corporation Multiple port integrated DMA and interrupt controller and arbitrator
EP0205692B1 (en) * 1985-06-18 1991-10-16 International Business Machines Corporation Improvements in microprocessors
JPS6254349A (ja) * 1985-09-02 1987-03-10 Nec Corp アドレス変更方式
US4761732A (en) * 1985-11-29 1988-08-02 American Telephone And Telegraph Company, At&T Bell Laboratories Interrupt controller arrangement for mutually exclusive interrupt signals in data processing systems
JPH0652896B2 (ja) * 1986-03-20 1994-07-06 沖電気工業株式会社 起動制御方式
US4805098A (en) * 1986-05-05 1989-02-14 Mips Computer Systems, Inc. Write buffer
US4797817A (en) * 1986-12-10 1989-01-10 Ncr Corporation Single cycle store operations in a virtual memory
US4843608A (en) * 1987-04-16 1989-06-27 Tandem Computers Incorporated Cross-coupled checking circuit
IT1215539B (it) * 1987-06-03 1990-02-14 Honeywell Inf Systems Memoria tampone trasparente.
JPH01159649A (ja) * 1987-12-16 1989-06-22 Hanshin Gijutsu Kenkyusho:Kk 現像処理タンク
US5016167A (en) * 1987-12-21 1991-05-14 Amdahl Corporation Resource contention deadlock detection and prevention
US4926323A (en) * 1988-03-03 1990-05-15 Advanced Micro Devices, Inc. Streamlined instruction processor
JPH01223541A (ja) * 1988-03-03 1989-09-06 Fujitsu Ltd インタリーブメモリ装置
EP0425550B1 (en) * 1988-06-30 1995-01-04 Wang Laboratories, Inc. Memory control unit
US5006980A (en) * 1988-07-20 1991-04-09 Digital Equipment Corporation Pipelined digital CPU with deadlock resolution
JPH02144635A (ja) * 1988-11-25 1990-06-04 Nec Corp 装置障害診断方式
US4965717A (en) * 1988-12-09 1990-10-23 Tandem Computers Incorporated Multiple processor system having shared memory with private-write capability
JPH0719222B2 (ja) * 1989-03-30 1995-03-06 日本電気株式会社 ストアバッフア
US5263161A (en) * 1989-07-26 1993-11-16 Massachusetts Institute Of Technology Non-busy waiting resource control
US5295258A (en) * 1989-12-22 1994-03-15 Tandem Computers Incorporated Fault-tolerant computer system with online recovery and reintegration of redundant components
US5239629A (en) * 1989-12-29 1993-08-24 Supercomputer Systems Limited Partnership Dedicated centralized signaling mechanism for selectively signaling devices in a multiprocessor system
US5168570A (en) * 1989-12-29 1992-12-01 Supercomputer Systems Limited Partnership Method and apparatus for a multiple request toggling priority system
US5165038A (en) * 1989-12-29 1992-11-17 Supercomputer Systems Limited Partnership Global registers for a multiprocessor system
US5269006A (en) * 1990-01-11 1993-12-07 Micral, Inc. Method and apparatus for arbitrating access to a microprocessor having real and protected modes
JPH03252731A (ja) * 1990-03-01 1991-11-12 Fujitsu Ltd マイクロプロセッサ
US5301333A (en) * 1990-06-14 1994-04-05 Bell Communications Research, Inc. Tree structured variable priority arbitration implementing a round-robin scheduling policy
GB2245726B (en) * 1990-06-29 1994-08-24 Sun Microsystems Inc Accessing an option board in a computer system
JPH04306735A (ja) * 1991-04-04 1992-10-29 Toshiba Corp 非同期割込み禁止機構
US5473775A (en) * 1991-10-11 1995-12-05 Kabushiki Kaisha Toshiba Personal computer using flash memory as BIOS-ROM
US5517624A (en) * 1992-10-02 1996-05-14 Compaq Computer Corporation Multiplexed communication protocol between central and distributed peripherals in multiprocessor computer systems
US5414848A (en) * 1993-04-01 1995-05-09 Intel Corporation Method and apparatus for sharing a common routine stored in a single virtual machine with other virtual machines operating in a preemptive muli-tasking computer system
GB2279162B (en) * 1993-06-15 1997-11-19 Ibm Interrupt-driven processor system

Also Published As

Publication number Publication date
JP2955469B2 (ja) 1999-10-04
CA2127081A1 (en) 1995-01-07
US5539890A (en) 1996-07-23
JPH1153302A (ja) 1999-02-26
DE69434473T2 (de) 2006-05-18
AU6614494A (en) 1995-01-19
EP0636973A2 (en) 1995-02-01
KR100249642B1 (ko) 2000-03-15
US5590337A (en) 1996-12-31
JP3098489B2 (ja) 2000-10-16
AU671543B2 (en) 1996-08-29
JPH10320215A (ja) 1998-12-04
US5778171A (en) 1998-07-07
US5435001A (en) 1995-07-18
JPH1115687A (ja) 1999-01-22
CN1099492A (zh) 1995-03-01
JPH10320227A (ja) 1998-12-04
JPH07200510A (ja) 1995-08-04
EP0636973B1 (en) 2005-08-31
US6397315B1 (en) 2002-05-28
DE69434473D1 (de) 2005-10-06
EP0636973A3 (en) 1995-06-28
KR950004023A (ko) 1995-02-17

Similar Documents

Publication Publication Date Title
JP3272664B2 (ja) プロセッサインターフェイス回路
US4858111A (en) Write-back cache system using concurrent address transfers to setup requested address in main memory before dirty miss signal from cache
US7840845B2 (en) Method and system for setting a breakpoint
JP3016575B2 (ja) 複数キャッシュ・メモリ・アクセス方法
US5996034A (en) Bus bridge verification system including device independent bus monitors
JP3987577B2 (ja) システム管理モード情報を他の情報と共にキャッシュに入れる方法および装置
JPH04233642A (ja) キャッシュアクセスと並列的にメモリアクセスを行なうプロセッサ及びそれに用いられる方法
US5987585A (en) One-chip microprocessor with error detection on the chip
US5938777A (en) Cycle list based bus cycle resolution checking in a bus bridge verification system
US6434665B1 (en) Cache memory store buffer
US6446164B1 (en) Test mode accessing of an internal cache memory
US6591393B1 (en) Masking error detection/correction latency in multilevel cache transfers
JP3326189B2 (ja) コンピューターメモリシステムおよびデータエレメント清浄化法
US5920891A (en) Architecture and method for controlling a cache memory
US6594741B1 (en) Versatile write buffer for a microprocessor and method using same
US5958035A (en) State machine based bus cycle completion checking in a bus bridge verification system
US5809534A (en) Performing a write cycle to memory in a multi-processor system
AU706450B2 (en) A processor interface circuit
KR100251784B1 (ko) 캐쉬 메모리 컨트롤러 및 이를 제공하는 방법
US6298417B1 (en) Pipelined cache memory deallocation and storeback
JP2005010995A (ja) マルチプロセッサシステム及びそのライトバックの障害処理方法
JP2780552B2 (ja) キャッシュ・メモリ内蔵型マイクロプロセッサ
JPS603769A (ja) エラ−回復方法
JPH05250257A (ja) キャッシュ・メモリ内蔵型マイクロプロセッサ
JPH07271671A (ja) キャッシュ装置

Legal Events

Date Code Title Description
R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090125

Year of fee payment: 7

LAPS Cancellation because of no payment of annual fees