KR100249642B1 - 이중-마이크로프로세서 프로세서 시스템용 프로세서 인터페이스 칩(processor interface chip for dual-microprocessor processor system) - Google Patents

이중-마이크로프로세서 프로세서 시스템용 프로세서 인터페이스 칩(processor interface chip for dual-microprocessor processor system) Download PDF

Info

Publication number
KR100249642B1
KR100249642B1 KR1019940015987A KR19940015987A KR100249642B1 KR 100249642 B1 KR100249642 B1 KR 100249642B1 KR 1019940015987 A KR1019940015987 A KR 1019940015987A KR 19940015987 A KR19940015987 A KR 19940015987A KR 100249642 B1 KR100249642 B1 KR 100249642B1
Authority
KR
South Korea
Prior art keywords
microprocessor
interrupt
address
request
bus
Prior art date
Application number
KR1019940015987A
Other languages
English (en)
Other versions
KR950004023A (ko
Inventor
모하메드 라만 미자누르
씨. 사버닉 프레드
에이. 스프라우즈 제프
지리 그로스즈 마틴
푸 피터
마크 렉터 러셀
Original Assignee
탄뎀 컴퓨터스 인코포레이티드
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 탄뎀 컴퓨터스 인코포레이티드 filed Critical 탄뎀 컴퓨터스 인코포레이티드
Publication of KR950004023A publication Critical patent/KR950004023A/ko
Application granted granted Critical
Publication of KR100249642B1 publication Critical patent/KR100249642B1/ko

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)
  • Physics & Mathematics (AREA)
  • General 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)

Abstract

직렬로 동작하도록 설계된 2개의 마이크로프로세스들과 접속된 프로세서 인터페이스 칩 및 유지 보수 진단 칩이 제공된다. 프로세서 인터페이스 칩은 마이크로프로세서와 주 메모리 사이의 인터페이싱을 위한 논리, 마이크로프로세서와 주 메모리 사이의 다수의 마이크로프로세서 요구들을 파이프라이닝 하기 위한 논리, 마이크로프로세서가 사전 반입된 데이타에 대한 판독 요구를 발하기 전에 데이타를 사전 반입하기 위한 논리, 부트 코드에 대한 마이크로프로세서의 고정된 메모리 위치에 상관없이 물리적인 메모리내의 어느 곳에서도 부트가 부트 코드로부터 발생되도록 하기 위한 논리, 마이크로프로세서와 프로세서 인터페이스 칩 사이의 프로세서 버스를 통한 인터럽트 정보의 흐름을 식별력있게 제한하기 위한 논리를 포함한다. 유지 보수 진단 칩은 만일 에러가 검출되면 마이크로프로세서들중의 1개를 정지시키기 위한 논리를 포함하고, 고장시의 마이크로프로세서의 상태가 고장의 원인이 규명될 수 없는 다른 상태로 변화되기 전에 마이크로프로세서 및 마이크로프로세서에 부착된 보조 캐시의 상태를 판독한다.

Description

이중-마이크로프로세서 프로세서 시스템용 프로세서 인터페이스 칩(PROCESSOR INTERFACE CHIP FOR DUAL-MICROPROCESSOR PROCESSOR SYSTEM)
제1도는 2개의 마이크로프로세서, 프로세서 인터페이스 칩(PIC) 및 유지 보수 진단 칩(MDC)을 포함하는 본 발명에 따른 프로세서 시스템을 개략적으로 도시한 블럭도.
제2도는 마이크로프로세서와 고장을 수반한 유지 보수 진단 칩 사이의 상호작용을 도시한 타이밍 다이어그램.
제3도는 부트 어드레스 번역 회로, 선취 큐, 인터럽트 필터 및 요구 파이프라인을 포함하는 PIC를 보다 상세하게 도시한 블럭도.
제4도는 선취 큐를 보다 상세하게 도시한 블럭도.
제5도는 부트 어드레스 회로를 보다 상세하게 도시한 블럭도.
제6도는 마이크로프로세서에 의해 어드레스된 물리적인 메모리의 메모리 맵을 도시한 도면.
제7도는 인터럽트 필터를 보다 상세하게 도시한 블럭도.
제8도는 3 레벨 인터럽트 계층의 예를 도시한 도면.
* 도면의 주요부분에 대한 부호의 설명
10 : 프로세서 시스템 12 : 마이크로프로세서
14 : MDC 16 : PIC
18 : Pbus 20 : MIC
22 : 주 메모리 24 : Mbus
26 : Ibus 28 : 보조 캐시 버스
30 : 보조 캐시 196 : 선취 큐
254 : PFQ 모니터
본 발명은 프로세서 인터페이스 회로 분야에 관한 것이다. 특히, 본 발명의 한 실시예에서는 마이크로프로세서 또는 마이크로프로세서의 세트와 다른 프로세서 회로들 사이의 향상된 인터페이스를 제공한다.
많은 경우에, 마이크로프로세서는 그와 통신하는 외부 구성 요소들보다 빠르게 실행되도록 설계되어 있다. 불행하게도, 마이크로프로세서는 특정한 동작이 외부 장치에 의해 행해질 때까지는 자주 처리될 수 없으므로, 마이크로프로세서가 사용되는 프로세서 시스템의 성능에 악영향을 미치게 된다. 이러한 병목 현상에 대한 1가지 이유는 동일한 집적 회로 또는 칩상의 2개의 회로들 사이의 통신이 일반적으로 내부-칩 버스 또는 다른 인터페이스에 의해 분리된 2개의 회로들 사이의 통신보다 일반적으로 빠르기 때문이다. 그러므로, 마이크로프로세서와의 보다 빠른 상호작용의 요구에 대한 1가지 해결책은 마이크로 칩상에 데이터 및 명령어 캐시와 같은 보다 많은 회로들을 배치하는 것이다. 그러나, 마이크로프로세서가 있는 칩상에 고 레벨 소자 들을 추가하면 에러 진단을 보다 어렵게 만든다. 이는 마이크로프로세서 안에서 내부 에러가 검출되는 칩을 벗어나 진단 시스템으로 들어갈 때까지의 시간에 의해, 에러 발생시의 상태가 더 이상 알 수 없는 상태로 그 내부 회로의 상태를 마이크로프로세서의 연속된 동작이 변화시키기 전에 진단 시스템이 에러의 원인을 조사할 수 있는 시간이 짧아지기 때문이다. 예를 들어, 만일 마이크로프로세서서 내부 깊은 곳에서 데이타 에러가 발생한 후, 그것이 검출되었지만 출력되기 전에 마이크로프로세서 내부의 논리에 의해 명백하게 고정된다면, 외부 회로들은 이 데이타를 타당한 데이타로서 실행시켜 프로세서 시스템을 손상시킬 수 있다.
프로세서 시스템이 갖는 다른 문제는 마이크로프로세서 버스에 관한 것으로, 이것을 통해 대부분의 마이크로프로세서가 요구하며 이들 요구 경로에 응답한다. 마이크로프로세서 버스는 기록될 데이타와 더불어 기록 요구, 판독 요구, 마이크로프로세서로 되돌아가는 판독 및 기록 응답, 및 마이크로프로세서로의 인터럽트 신호들을 반송한다. 버스를 통한 이러한 통신량(traffic)은 마이크로프로세서로부터 수납되거나 마이크로프로세서에 제공되는 데이타의 속도를 제한한다.
상기로부터, 마이크로프로세서에 대한 향상된 인터페이스의 필요성을 알 수 있다.
본 발명에 따른 프로세서 인터페이스 시스템의 한 실시예에 있어서, 직렬(tandem)로 동작하도록 설계된 2개의 마이크로프로세스들과 접속되어, 프로세서 인터페이스 칩 및 유지 보수(maintenance) 진단 칩이 제공된다. 프로세서 인터페이스 칩은 탄뎀 마이크로프로세서와 주 메모리 사이의 인터페이싱을 위한 논리, 마이크로프로세서와 주 메모리 사이의 다수의 마이크로프로세서 요구들을 파이프라이닝(pipelining)하기 위한 논리, 마이크로프로세서가 사전 반입된 데이타에 대한 판독 요구를 발하기 전에 데이타를 사전 반입하기 위한 논리, 부트 코드에 대한 마이크로프로세서의 고정된 메모리 위치에 상관없이 물리적인 메모리(physical memory) 내의 어느 곳에서도 부트 코드로부터 부트가 발생되도록 하기 위한 논리, 및 마이크로프로세서와 프로세서 인터페이스 칩 사이의 프로세서 버스를 통한 인터럽트 정보의 흐름을 식별력있게 제한하기 위한 논리를 포함한다. 유지 보수 진단 칩은 만일 에러가 검출되면 마이크로프로세서들 중의 1개를 정지시키기 위한 논리를 포함하고, 고장시의 마이크로프로세서의 상태가 고장의 원인이 규명될 수 없는 다른 상태로 변화되기 전에 마이크로프로세서 및 이 마이크로프로세서에 부착된 보조 캐시의 상태를 판독한다.
나머지 명세서 부분과 첨부된 도면을 참조하여 본 발명의 특성 및 장점들을 보다 잘 이해할 수 있다.
제1도에는 본 발명에 따른 프로세서 시스템(10)이 개략적으로 도시되어 있다. 한 양호한 실시예에서, 프로세서 시스템(10)은 2개의 마이크로프로세서 및 프로세서 기판상에 특정 목적의 여러개의 칩들을 포함하지만, 1칩상에 도시된 몇개의 회로들을 포함하거나 개별적인 기능들을 위한 몇 개의 칩들이 제공된 다른 구성들도 가능하다. 2개의 마이크로프로세서들[12(0,1)], 유지 보수 및 진단 칩(MDC)(14), 프로세서 인터페이스 칩(PIC)(16), 메모리 인터페이스 칩(MIC)(20), 주 메모리(22) 및 보조 캐시(30)를 갖는 프로세서 시스템(10)이 제1도에 도시되어 있다.
구성 요소들은 상호 연결시키는 몇개의 버스들도 또한 제공된다. 프로세서 버스(Pbus:18)는 PIC(16) 및 마이크로프로세서들[12(0,1)]을 접속시키고; 유지 보수 버스(Mbus;24)는 MDC(14)를 PIC(16) 및 MIC(20)에 접속시키고, 진단 명령 및 데이타를 MDC(14)로부터 또는 MDC(14)로 반송하며; 내부 버스(Ibus;26)는 PIC(16)를 MDC(14) 및 MIC(20)에 접속시키며; 보조 캐시 버스(28)는 마이크로프로세서들[12(0,1)]을 보조 캐시(30)에 접속시킨다.
신뢰성을 위해, 몇개의 버스들이 버스가 존재하는 이유인(데이타, 명령어, 어드레스 및 제어 신호등과 같은) 독립 신호들을 반송하는 정보 라인, 및 정보 라인들상의 값들의 함수와 체크 합, 패리티 또는 다른 에러-정정 코드(ECC) 함수인 체크 신호들을 반송하는 체크 라인을 사용한다. 예를 들어, Ibus(26)는 부분적으로 32개의 신호 라인, 및 32개의 정보 라인들의 8개의 짝수 패리티 체크들을 각각 반송하는 4개의 패리티 라인들을 포함한다. 제1도에는 정보 라인으로부터 분리된 체크 라인들을 갖는 몇개의 버스들이 도시되어 있지 않다.
마이크로프로세서(12)는 1개의 마이크로프로세서가 정보 라인 및 Pbus(18)와 SC bus(28)의 체크 라인들을 제어하는 "완전 마스터(complete master)" 모드 또는 각각의 마이크로프로세서(12)가 Pbus(18) 및 SC bus(28)의 버스를 제어하는 "로크-스텝(lock-step)" 또는 "부분 마스터(partial master)" 모드로 동작할 수 있다. 신뢰성을 위해, 2개의 마이크로프로세서(12)들 모두가 버스들을 판독하고 동일 명령들을 실행하지만, 버스의 마스터인 마이크로프로세서는 버스의 정보 라인들을 구동하고, 반면에 다른 마이크로프로세서(12)는 정보 라인들을 모니터하고, 이 정보 라인들 상의 값들을, 만일 자신이 버스에 대한 마스터라면 이 정보 라인들상에 구동되어졌을 값들("잠재적" 출력)과 비교한다. 만일 비-마스터(non-master) 마이크로프로세서가 버스의 정보 라인상의 값들과 일치하지 않으면, 이 마이크로프로세서는 제2도와 관련하여 설명되는 "출력 오비교(output miscompare)" 고장을 트리거(trigger)한다. 다른 신뢰성을 위해, 버스의 마스터는 버스 체크 라인들을 구동하지 않고, 비-마스터가 버스 체크 라인들을 구동한다. 이러한 방식으로, 만일 마이크로프로세서들이 정상적으로 동작중이지만, 서로 보조를 이루지 못한다면, 체크 라인들이 정정되지 않기 때문에 버스 상의 다른 장치들이 에러를 인지할 수 있다.
제1도에는 SC bus(28)의 마스터이고 "SC 마스터"(Secondary Cache Master)로 표기된 1개의 마이크로프로세서들[12(0)], 및 Pbus(18)의 마스터이고 "SI 마스터"[System Interface Master --Pbus(18)이 경우에서는 "시스템 인터페이스"이다]로 표기된 다른 마이크로프로세서들[12(1)]가 도시되어 있다. 그러므로, 로크-스텝으로 동작중일 때, SC 마스터[12(0)]는 SC bus(28)의 정보 라인들(어드레스/데이타/ECC)을 구동하고 SC bus(28)의 체크 라인들(Adr/Cnt 패리티 --어드레스 및 제어 라인 패리티)을 모니터하며, SI 마스터[12(1)]는 체크 라인들을 구동하고 SC bus(28)의 정보 라인들을 모니터한다. 역으로, SI 마스터[12(1)]는 Pbus(18)의 정보 라인들(어드레스/데이타)을 구동하고, Pbus(18)의 체크 라인들(ECC/패리티)을 모니터하고, SC 마스터[12(0)]는 체크 라인들을 구동하고 Pbus(18)의 정보 라인들을 모니터한다.
몇몇 실시예들에서, 1개의 마이크로프로세서는 SC 마스터 및 SI 마스터 둘 모두 다시 말해, 완전 마스터의 동작을 복제하지만 가능한 고장 라인 이외의 어떠한 라인들도 구동하지 않고, 완전 마스터와 역할 분담을 하지 않는 "완전 리스너(complete listener)"인 다른 마이크로프로세서를 갖는 "완전 마스터"가 된다. 반면 SC버스(28)의 ECC 라인들은 실제적인 체크 라인들이고, 정보 라인들과 그룹된다. 이는 ECC 라인들이 보조 캐시(30)에 의해 그 곳에서의 에러 체킹을 하는데 사용되기 때문이고, 만일 보조 캐시(30)으로의 모든 라인들이 동일한 마이크로프로세서부터 온 것이라면, 보조 캐시는 2개의 마이크로프로세서들[12(0,1)] 사이에서 발생하는 타이밍에서의 경미한 변화들에 대한 걱정없이 보다 빠르게 실행될 수 있으므로, 어드레스 및 데이타가 ECC 신호를 갖고 시간내에 보조 캐시 오프셋에 도달하도록 한다. 이러한 타이밍 변화는 마이크로프로세서에서 발생한 프로세스 변화에 기인될 수 있다.
양호한 실시예에서, 마이크로프로세서들[12(0,1)]은 실리콘 그래픽스 인크.의 자매 회사인 MTI사(MTI division of Silicon Graphics, Inc.)에 의해 제조된 R4400 마이크로프로세서이다.
버스들(Ibus, Pbus, SC bus 및 Mbus)에 부가하여, 다른 신호 라인들이 여러 구성 요소들 사이에 존재한다. PIC(16)으로부터 MDC(14)까지의 에러 신호 라인은 PIC가 Pbus상의 정정가능 또는 정정불가능 에러에 직면하였음을 나타내는 CE/UCE 에러 신호를 반송한다. 만일 Pbus의 체크 라인들상의 체크 값들이 Pbus의 정보 라인들상의 정보 값들에 대한 체크 기능을 정확하게 반영하지 못하면, PIC는 CE/UCE 에러 신호를 어써트(assert)한다.
3개의 라인들 FAULT*, RESET*및 MODEIN이 각각의 마이크로프로세서(12)와 MDC 사이에 제공된다. FAULT*라인은 고장이 검출될 때, 마이크로프로세서에 의해 로우(low)로 구동된다. RESET*및 MODEIN 라인들은 MDC(14)에 의해 구동된다. RESET*신호는 신호가 로우일 때 리셋 상태로 마이크로프로세서를 유지하는 활성 로우 신호이고, MODEIN 신호는 마이크로프로세서의 모드를 제어한다. RESET*신호가 어써트되고 있는[MDC(14)에 의해 로우로 유지되는] 곳에서, MODEIN*신호는 FAULT*라인상의 신호들의 의미를 제어한다.
제2도는 FAULT*, RESET*및 MODEIN 신호들의 상호 작용을 보다 상세하게 도시한다. 제2도는 동일 시간 간격은 아니지만 이들 신호 라인들상의 활성도의 서로 다른 주기들을 구별하고, A-K로 표기된 주기로 분할된 타이밍 차트이다. 이들 주기들이 표 1에 간략하게 설명된다.
고장 다음의 프로세싱 주기
[표 1]
주기 설명
A : SI 마스터 및/또는 SC 마스터가 MDC에 의해 검출되는 FAULT*라인을 어써트한다.
B : MDC가 2개의 마이크로프로세서들 모두에 의해 RESET*신호를 어써트한다.
C : MDC가 2개의 RESET*신호들을 계속하여 어써트(즉, RESET*라인들을 유지하는)하고(MODEIN 라인들을 하이로 구동하는 것에 의해) 2개의 MODEIN 신호 모두를 어써트 하고, 그 상태에서 각각의 마이크로프로세서의 FAULT*라인들은 마이크로프로세서가 출력 오비교가 고장을 트리거하는 제1고장이라고 믿는지를(로우로 감으로써) 나타낸다.
D : MDC가 2개의 RESET*신호를 계속하여 어써트하고, 2개의 MODEIN 신호 모두를 구동하고, 그 상태에서, 각각의 마이크로프로세서의 FAULT*라인들은 마이크로프로세서가 발생된 입력 고장을 믿는지를(로우로 감으로써) 나타낸다.
E : MDC가 단지 SI 마스터만에 대한 RESET*신호를 해제하고, 이 시점에서 SI 마스터는 SC bus(28), Pbus(18)의 완전 마스터 및 2개의 버스들 모두에 대한 체크 라인들이 된다.
F : MDC가 SI 마스터에 대한 RESET*신호를 제어써트(reassert)하고 SC 마스터에 대한 RESET*신호를 디어써트(deassert)하며, 이 시점에서 SC 마스터는 완전 마스터가 된다. 이 주기의 말미에, MDC가 SC 마스터에 대한 RESET*신호를 제어써트한다.
G : MDC가 2개의 마이크로프로세서 모두에 대한 RESET*신호를 디어써트하고, 이들 마이크로프로세서들은 부분 마스터로서 실행된다. 이 주기의 말미에, MDC가 2개의 RESET*신호 모두를 재어써트한다.
H : MDC가 SI 마스터에 대한 RESET*신호를 디어써트하고, SC 마스터에 대한 RESET*신호를 유지(어써트를 계속)한다. 이 주기에서, SI 마스터는 완전 마스터이다.
I : MDC가 SI 마스터에 대한 RESET*신호를 재어써트하고, SC 마스터에 대한 RESET*신호를 디어써트한다. 이 주기에서, SC 마스터는 완전 마스터이다.
J : MDC가 약간의 한정된 시간 주기동안 2개의 RESET*신호 모두를 제어써트한다.
K : MDC가 2개의 RESET*신호 모두를 디어써트하고, 마이크로프로세서들은 부분 마스터들이 된다.
타이밍 차트(주기 A)는 고장을 검출하고 로우로 구동함으로써 FAULT*라인을 어써트하고 SC 마스터[제1도에 12(0)으로 도시된] 또는 SI 마스터[제1도에 12(1)로 도시된] 중 하나로 시작한다. 이 신호는 MDC(14)에 의해 픽업(pick up)된다. PIC가 Pbus(18)을 부정확한 패리티(parity)로 구동하는 것과 같은 몇몇 에러들에 대해, 2개의 마이크로프로세서(12) 모두는 분리된 고장 라인들을 어써트한다. 다른 에러들에 대해서는, 단지 1개의 마이크로프로세서만이 에러를 검출한다.
어느 경우에서든, 고장이 발생할 때, MDC(14)는 신속히 마이크로프로세서(12)의 상태를 결성하여야 한다. 마이크로프로세서(12)의 상태는 내부 레지스터들 및 플래그들의 값이다. 완전한 진단을 위해, MDC(14)는 또한 각각의 마이크로프로세서(12)의 주 캐시의 내용들 및 공유된 보조 캐시(30)(제1도 참조)의 내용들을 얻어야 한다. 마이크로프로세서들이 명령 및 데이타가 분리적으로 캐시되어 사용되면, 주 캐시들은 주 명령어 캐시 및 주 데이타 캐시를 포함한다.
일단 MDC가 FAULT*신호를 수신하면, MDC는 2개의 마이크로프로세서들 모두의 RESET*라인을 어써트한다(주기 B). RESET*신호가 어써트될 때, 마이크로프로세서는 모든 출력이 FAULT*라인을 제외하고 3-상태(tri-stste) 출력인 상태로 된다. 이는 다른 로크-스텝 마이크로프로세서들이 간섭없이 버스들을 완전하게 제어할 수 있도록 한다. 마이크로프로세서(12)는 비트가 설정되고 리셋 후에도 기억되는 내부 논리를 포함한다. 이러한 비트는 부분 마스터 모드에서 마이크로프로세서가 SI 마스터 또는 SC 마스터인지를 나타낸다. 마이크로프로세서(12)가 리셋되고 이 재 설정이 적어도 어느 선정된 시간동안 유지될 때마다, 마이크로프로세서의 마스터 모드는 완전 마스터 모드와 부분 마스터 모드 사이를 토글한다.
마이크로프로세서(12)를 리셋 상태로 유지하는 것에 부가하여, MDC는 또한 Ibus(26)에 접속된 장치들의 상태를 보존하기 위해 Mbus(24)를 통해 유지 신호(hold signal)를 전송한다.
리셋 모드동안, 마이크로프로세서(12) 내의 논리는 MODEIN 라인의 상태에 좌우되는 FAULT*라인상에 또다른 고장 표시를 제공한다(주기 B, C). MODEIN 라인이 로우일 때, 만일 출력 오비교가 초기 FAULT*펄스에 결과된 고장을 트리거했다면, FAULT*라인은 로우(논리적으로 0)이다. 상기된 대로, 한 마이크로프로세서에 의해 구동되는 라인이 다른 마이크로프로세서의 전위 출력과 다른 값으로 구동될 때, 출력 오비교 고장이 그 마이크로프로세서로부터 예상된다. 출력 논리의 고장이 없다면, 마이크로프로세서는 이 마이크로프로세서가 구동중인 라인상의 출력 오비교를 논리적으로 검출한다. 각각의 마이크로프로세서(12)가 몇몇 라인에 대한 마스터이기 때문에, 출력 오비교 표시는 SC bus(28) 또는 Pbus(18)중 오비교가 발생한 라인을 나타낸다. FAULT*라인은 출력 오비교가 검출되면 에러를 검출한 마이크로프로세서에 의해 로우(논리적으로 0)로 구동된다.
다음으로, 주기 C에서, 각각의 마이크로프로세서(12)로부터의 입력 고장 이력 비트가 FAULT*라인들로부터 판독된다. RESET*라인들을 로우로 유지하는 MDC가 MODEIN 라인들을 하이로 구동하고, 마이크로프로세서(12)는 입력 고장을 나타내기 위해 라인을 로우로 구동하면서 FAULT*라인들 상에 입력 고장 이력 비트를 출력한다. 입력 고장 이력 비트는 입력 고장이 발생한 제1고장인지를 나타내지는 않지만, 입력 고장이 입력 고장 비트가 리셋된 후 얼마의 시간 경과후에 발생했는지는 나타낸다.
고장이 MDC에 의해 검출된 후, MDC는 마이크로프로세서들에 대한 부트 위치에 있는 메모리(22)로 진단 코드를 로드(load)한다. 부트 위치는 [비록, 나중에 기술되는 대로 이같은 어드레스가 부트 어드레스 재배치기(194)에 의해 물리적인 메모리 위치로 재배치될지라도] 리셋에 근거하여 마이크로프로세서에 의해 판독된 제1명령이 위치한다.
일단 진단 코드가 로드되면, RESET*신호가 (부분 마스터 모드에서 SI 마스터인) 마이크로프로세서[12(1)] 상에서 디어써트되고, 상기된 대로, 이 마이크로프로세서는 완전 마스터로서 실행된다. 진단 코드는 마이크로프로세서[12(1)]가 상태 및 주 캐시의 내용을 덤프(dump)하도록 한다(주기 E). 진단 코드는 일반적으로 진단 코드가 실행되는 동안 주 캐시가 사용되지 않도록 기록되므로, 진단 코드는 먼저 파괴됨없이 판독될 수 있다.
마이크로프로세서[12(0)]상의 RESET*라인이 여전히 어써트되기 때문에, 이 마이크로프로세서의 출력 라인들은 3-상태이다. 이는 마이크로프로세서[12(1)]가 마이크로프로세서[12(0)]에 의한 간섭없이 덤프하도록 하는 진단 코드를 실행하도록 한다. 덤프된 데이타는 PIC에 의해 픽업된 다음, 나중 분석을 위해 메모리(22)에 저장되도록 MIC(20)로 패스된다. 물론, 고장이 발생했음이 주어지면, 마이크로프로세서들(12) 중의 1개는 적절하게 작용하지 못하여 진단 코드의 수집과 간섭될 수 있다.
주기 E의 말기에, 마이크로프로세서[12(1)]상의 RESET*라인이 다시 어써트된다. 주기 F의 시작은, 마이크로프로세서[12(0)]에 대한 RESET*라인이 디어써트되고, 상태 및 주 캐시를 덤프하도록 진단 코드를 실행하기 시작한다. 일단 마이크로프로세서들(12) 이 상태 및 주 캐시들을 덤프하면, 보조 캐시(30)가 덤프되어야 한다.
MDC(14)가 SC bus(28)에 직접 접속되지 않기 때문에, 보조 캐시(30)는 마이크로프로세서들(12) 중 1개를 통해 덤프되어야 한다. 이러한 목적을 위해 MDC(14)는 SC bus(28)에 직접 접속될 수 있지만, SC bus(28)에 다른 장치들을 접속시키면 응답 시간이 느려지므로, MDC(14)는 마이크로프로세서(12)를 경유해서 보조 캐시(30)를 판독한다. 고장 원인이 진단될 때까지, 마이크로프로세서(12) 중의 어느 것이 고장인지 알 수 없으므로, 보조 캐시(30)는 로크-스텝으로 동작하는 2개의 마이크로프로세서 모두를 사용하여 판독되고, 그 다음으로 분석을 위한 보조 캐시의 3개의 복사물들(copies)을 제공하기 위해 각각의 마이크로프로세서를 분리하여 사용한다.
만일 출력 오비교가 로크-스텝된 마이크로프로세서들[12(0,1)]에 의해 보조 캐시(30)가 판독되는 동안 발생한다면, 이는 무시된다. 리셋 라인이 해제될 때, 각각의 마이크로프로세서(12)는 부분 마스터 모드가 되도록 설정되기 때문에, 보조 캐시(30)는 로크-스텝(2개의 부분 마스터) 모드에서 맨 먼저 판독된다(주기 G). SC 마스터가 부분 마스터가 되기 위해서는, SC 마스터는 제2도에 도시된 대로, 주기 F와 G사이의 일정 시간동안 리셋되어야 한다.
주기 G에서, 2개의 마이크로프로세서(12) 모두는 보조 캐시(30)의 내용을 PIC(16)로 덤프하도록 그들에게 명령하고, 덤프된 내용을 메모리(22)에 저장하기 위해 MIC(20)로 패스시키는 동일한 코드를 실행한다. 만일 출력 오비교가 이 덤프동안 발생하면, FAULT*라인이 어써트되지만, 이는 [비록 MDC에 의해 노트(note)되고 로그(log)될지라도] MDC에 의해 무시된다. 물론, 진단 코드가 실행되는 동안은 보조 캐시가 사용되지 않도록 진단 코드는 일반적으로 기록된다.
주기 H에서, 완전 마스터로서 마이크로프로세서[12(1)]는 보조 캐시(30)의 내용을 덤프하고, 주기 I에서, 완전 마스터로서 마이크로프로세서[12(0)]이 보조 캐시(30)의 내용을 덤프한다.
주기 J는 리셋 라인이 마이크로프로세서[12(0)]에서의 부분/완전 마스터 모드를 토글하는데 요구되는 한정된 시간 주기를 나타낸다. 일단 각각의 마이크로프로세서(12) 및 보조 캐시(30)의 상태 및 주 캐시들이 덤프되면, MDC(14)는 이 덤프를 분석할 수 있거나, RESET*라인들을 디어써트하는 것에 의해 마이크로프로세서들(12)을 콜드-리셋(cold-reset)할 수 있다(주기 K).
제3도에는 PIC(16)가 보다 상세하게 도시되어 있다. PIC는 도시되지 않은 많은 요소들을 포함하며, Pbus 인터페이스 섹션(180), Ibus 인터페이스 섹션(182), 요구 파이프라인(195), 선취 큐(196) 및 인터럽트 필터(198)로 대략적으로 분할된다.
Pbus 인터페이스 섹션(180)은 Pbus(18)로부터의 데이타를 판독하고, PIC(16)의 몇몇 다른 소자로부터 Pbus(18)로 데이타를 출력하기 위한 논리를 포함한다. 제3도에 도시된 Pbus 인터페이스 섹션(180)의 구성요소에는 Pbus(18)에 접속된 다중-비트 입력 구동기(202), 입력 구동기(202)에 접속된 Pbus 입력 레지스터(250), 입력 레지스터(250)에 의한 명령 경로 출력과 선취 큐(196) 사이에 접속된 선취 큐 모니터(254), 멀티플렉서 제어기(256)으로부터 수신된 선택 입력 및 다중-비트 구동기(252)의 입력에 차례로 접속되는 Pbus 출력 레지스터(248)에 접속된 출력을 갖는 Pbus 출력 멀티플렉서(256)를 포함한다. 레지스터(250)의 출력은 명령 경로 및 기록 데이타 경로로 나누어지는데, 여기서 명령들은 선취 큐 모니터(254) 및 요구 파이프라인(195)으로 가며, 기록 데이타는 요구 파이프라인(195)의 기록 버퍼(208)로 간다.
Ibus 인터페이스 섹션(182)은 Ibus(26)로부터 데이타를 판독하고, PIC(16)의 몇몇 다른 소자들로부터 Ibus(26)로 데이타를 출력하기 위한 논리를 포함한다. 제3도에 도시된 Ibus 인터페이스 섹션(182)의 구성 요소들는 Ibus(26)에 접속된 제2다중-비트 입력 구동기(242), 입력 구동기(242)에 접속된 Ibus 입력 레지스터(244), 제2멀티플렉서 제어기(212)로부터 수신된 선택 입력, 및 Ibus 출력 레지스터(240)으로 출력되고, 제2다중-비트 출력 구동기(214)의 입력에 차례로 접속되며, 부트 어드레스 재배치기(194)에 접속된 출력을 갖는 Ibus 출력 멀티플렉서(210)가 포함된다. 레지스터(244)의 출력은 2개의 출력으로 나누어지는데, 여기서 인터럽트에 대한 출력은 인터럽트 필터(198)로 가며, 메모리 판독에 대한 다른 출력은 선취 큐(196)로 간다.
요구 파이프라인(195)은 제3도를 참조하여 더 상세히 기술된다. 요구 파이프라인(195)를 기술한 후에, 사전 반인 큐(196)가 제4도를 참조하여 기술될 것이고, 인터럽트 필터(196)는 제7도를 참조하여 기술될 것이다.
요구 파이프라인(195)은 파이프라인 테일 레지스터 PTAIL (DMI)[204(1)], 파이프라인 헤드 레지스터 PHEAD (DMO)[204(2)], 파이프라인 제어기(206) 및 기록 버퍼(208)를 포함한다. 기록 버퍼(208)는 기록 버퍼가 충만인지 공백인지를 표시하는 충만/공백 플래그(209)를 포함한다. 파이프 라인 제어기(206)는 버퍼(108)가 얼마만큼 충만 또는 공백인지를 나타내고, Ibus(26)로의 유입 기록 요구 전송 또는 기록 버퍼(208)가 더 충만되기를 기다려야 하는 지를 결정하기 위해 레지스터(도시되지 않음)과 비교할 수 있는 프로그램가능 임계(programmable threshold)도시되지 않음)를 나타내는 레지스터를 유지한다.
요구가 메모리 판독 요구 및 판독될 어드레스 표시임을 나타내는 것과 같은 마이크로프로세서 요구의 명령부는 파이프라인 테일 및 파이프라인 헤드에 저장되거나 멀티플렉서(201) 및 Ibus(26)상으로 직접 패스된다. 어떤 경우에, 메모리 판독 요구는 요구 파이프라인에 도달하지 못하고, 선취 큐(196)로 루트(route)될 수 있다. 이것은 마이크로프로세서에 의해 판독될 데이타가 이미 선취 큐 내에 존재할 때 발생한다. 이 상태는 판독 요구의 어드레스부와 선취 큐(196)의 버퍼용으로 저장된 어드레스 태그들(tags)을 비교함으로써 검출된다. 그러나, 판독 요구가 요구 파이프라인(195)으로 들어간다면, 판독 요구는 요구 파이프라인(195)을 통해 직접 패스되거나 PTAIL 또는 PHEAD 중의 하나에 저당될 수 있다. 만일 PTAIL 및 PHEAD가 모두 공백이고, Ibus(26)가 프리(fee)라면, 판독 요구는 멀티플렉서(210)로 직접 패스한다.
만일 Ibus(26)가 사용중(busy)이면, 판독 요구는 PHEAD 내에 배치되고, 파이프라인 제어기(206)는 Pbus(18)를 통해 마이크로프로세서로 요구 수납(request acceptance)을 복귀시키므로 마이크로프로세스가 계속될 수 있다. 만일 PHEAD가 점유된다면, 판독 요구는 PTAIL 내에 배치되고, PHEAD가 프리일 때 PHEAD로 이동되어, 다시 파이프라인 제어기(206)는 마이크로프로세서로 요구 수납을 복귀시킨다. 만일 PTAIL도 또한 점유되었다면, 판독 요구는 입력 레지스터(250) 내에 유지되고, 파이프라인 제어기는 요구 수납을 반환하지 못한다. 파이프라인 제어기가 요구 수납을 반환할 때까지(판독 요구가 PTAIL 또는 PHEAD로 최종적으로 로드되거나, Ibus(26)로 전송될 때), 마이크로프로세서는 더 많은 요구들을 전송하기 위해 Pbus(18)를 사용하는 것을 피한다.
기록 요구들이 PTAIL 204(1) 내에 배치되고, Pbus(18)를 벗어나 기록 버퍼(208)로 수집된다. 기록 버퍼(208)가 충만되면, 충만/공백 플래크(209)는 “충만”상태로 설정된다. 임계량의 데이타가 기록 버퍼(208)에 로드되면, 파이프라인 제어기(206)은 기록 요구를 PTAIL로부터 PHEAD로 이동시킨다. Ibus(26)가 사용가능하다면, 기록 요구는 그 곳으로 이동하고, 기록 요구 및 수반된 데이타가 버스를 통해 전송되면, 충만/공백 플래그는 “공백”상태로 설정된다. 제3도에 도시된 실시예에 있어서, 한번에 1개의 요구만이 요구 파이프라인에 존재할 수 있지만, 버스 성능 및 할당된 칩 영역에 대해 여러 가지 제약이 따르는 다른 실시예들은 복수의 기록 버퍼들 또는 2개 이상의 파이프라인 스테이지(stage)(204)들을 가져야 한다.
마이크로프로세서로 쓸모없는 데이타가 전송되는 것을 방지하기 위해서, 선취 큐 모니터(254)는 기록 요구들을 모니터하고, 소정의 데이타를 무효화시키도록 선취 큐(196)에 신호를 보내며, 선취 큐는 기록 요구들에 의해 기록되는 메모리 장소들로부터 미리 검색될 수 있다. 파이프라인 제어기(206)가 요구 파이프라인(195)의 출력을 Ibus(26) 상에 출력하는 멀티플렉서 제어기(212)에 신호를 보내는 것을 나타내는 데에는 파이프라인 제어기(206)와 멀티플렉서 제어기(212)를 접속시키는 도트 라인이 사용된다.
Ibus(26)는 기록 요구 및 이 기록 데이타가 PIC(16) 내에서 완전할 때에만 액세스(access)되기 때문에, Ibus(26)는 더 효율적으로 사용된다. Pus(18)의 몇몇 버스 사이클들은 모든 기록 데이타를 취하는데 필요하므로, Ibus(26)는 기록버퍼(208)가 파이프라인 제어기(206)에 저장된 최소한 프로그램가능한 임계량으로 충만될 때까지 사용되지 않는다.
제4도는 선취 큐(196)를 더욱 상세히 도시한다. 선취 큐(196)는 제어 상태 기계(312), 가장 최근에 사용된 레지스터(MRU)(310), 및 2개의 버퍼(PFQ0, PFQ1)[226(0,1)]를 포함한다. MRU(310)는 가장 최근에 사용된 버퍼(226)를 나타낸다. 각 버퍼는 8개의 데이타 워드들 및 관련된 패리티 비트들용의 기억 장소, 어드레스 태그 레지스터(302), 타당성 플래그(304), 하드 중지 플래그(306) 및 정정불가능 메모리 에러(UCME) 플래그(308)를 포함한다. 제어 상태 기계(312)는 버스 인터페이스 레지스터를 통해 Ibus(26) 및 Pbus(18)에 결합되고, 각 버퍼(226)의 기억 장소 영역 및 다양한 플래그들을 판독 및 기록하도록 결합된다. 또한, 제어 상태 기계(312)는 Pbus(18)에 사전 반입 데이타를 제공하기 위해서 그리고 판독된 후 버퍼(226)에 기록되는 데이타를 무효화시키기 위해서 사용되는 선취 큐 모니터(254)로부터의 신호들을 수신한다. 제어 상태 기계(312)는 메모리 판독 요구가 멀티플렉서(210)를 통해 발생되는 출력을 포함한다.
선취 큐(196)은 다음과 같이 동작한다. 비-사전 반입 동작들에 있어서, PFQ0은 Ibus 버퍼로서 사용된다. 사전 반입 동작들에 있어서, 제어 상태 기계(312)는 모니터(254)를 통하거나 Ibus(26)로부터 인입하는 데이타로부터, 판독 요구의 판독 어드레스를 인식한다. 그 다음, 제어 상태 기계(312)는 실제로 요구된 블록을 수반하는 어드레스로부터의 데이타를 요구하거나, 판독 요구시에 요구된 데이타량의 2배를 Ibus(26)를 통해 단독 요구한다. 실제로 요구된 데이타의 블럭은 Pbus(18)를 통해 마이크로프로세서로 전송되며, 나머지 1/2은 요구될 때까지 선취 큐 버퍼(226)에 저장된다.
PFQ1이 가장 최근에 사용되었고 2개의 타당성 플래그[304(0,1)]들이 리셋되었다는 것을 MRU(310)가 나타낸다고 가정하자. 판독 요구가 PIC(16)에 전송되면, 판독 요구는 선취 큐에 의해 충족되지 않기 때문에, 이러한 요구는 요구 파이프라인(195)에 의해 Ibus(26) 상에 놓인다. 전형적인 판독 요구는 8개의 워드들을 필요로 하지만, 선취 큐를 충족시키기 위해서 Ibus(26) 상의 요구는 16개의 워드들을 필요로 한다. 16개의 워드 요구가 DRAM 페이지 경계를 교차하는 경우, 요구는 2개의 8-워드 요구들로서 전송된다. 16개의 워드들이 복귀되면, 8개는 요구를 충족시키기 위해서 먼저 전송되고, 나머지 8개는 PFQ0(가장 오래된 버퍼)에 저장된다. MRU(310)는 토글되어 PFQ1을 나타내고, 태그 레지스터[302(0)]는 PFQ0에 저장된 나중의 8개의 워드들의 어드레스로 갱신되어, 타당성 플래그[304(0)]가 설정된다.
최초의 8개의 워드들을 판독하는 중에, 하드 중지 에러 또는 UCME가 발생되는 경우, 상태를 나타내는 지시는 마이크로프로세서로 패스된다. 그러나, 에러가 나중의 8개의 워드들에서 발생되는 경우, 지시는 마이크로프로세서가 에러를 발생시키는 데이타를 실제로 요구할 때까지는 마이크로프로세서로 패스되지 않는다. 나중의 8개의 워드들을 판독하므로써 하드 중지가 발생되는 경우에는, 하드 중지 플래그[306(0)]가 설정되며, UCME가 나중의 8개의 워드들을 판독하는 중에 발생되는 경우에는, UCME 플래그[308(0)]가 설정된다.
PFQ 모니터(254)는 판독 요구가 태그 레지스터[302(0, 1)]들 중 하나와 부합되는 어드레스를 위해 발생되고, 요구가 선취 큐로부터 충족되며, 요구를 충족시키는 버퍼(226)가 타당성 플래그(304)를 리셋하므로써 무효로 표시되는 것을 나타낸다. 무효 버퍼(226)가 존재하는 경우에는, 다른 8개의 워드들이 페치되어, 선취 큐(196)는 데이타 흐름에서의 병목 현상이 거의 없게 된다. 기록 요구가 요구 파이프라인(195)에 전송되면, PFQ 모니터(254)는 기록 어드레스를 제어 상태 기계(312)에 공급하는데, 제어 상태 기계(312)는 기록 어드레스를 태그 레지스터[302(0, 1)]과 비교 한다. 기록 어드레스가 어느 한 태그 레지스터와 부합되는 경우, 제어 상태 기계(312)는 부합된 태그 레지스터와 관련된 버퍼(226)용의 타당성 플래그(304)를 리셋한다.
제5도는 부트 어드레스 재배치기(194)를 상세히 도시한다. 제5도에서, 부트 어드레스 재배치기(194)는, 부트 어드레스 재배치가 행해졌는지의 여부를 나타내는 비트를 저장하기 위한 부트 예외 벡터 지시기 레지스터(BEV_PIC)(218), 2비트 부트 어드레스 레지스터(220), 6개의 2-입력 멀티플렉서(1, 6), AND 게이트(400) 및 배타적 OR(XOR) 게이트(404)를 포함한다. 어드레스는 32비트 및 4비트의 패리티로 구성되는데, 1개의 패리티 비트는 어드레스의 각 바이트(8 비트)에 해당한다. 패리티 비트들은 짝수 패리티이기 때문에, dmo_r_pb[3]는 dmo_r[31:24]의 XOR이고, dmo_r_pb[2]는 dmo_r[23:16]의 XOR이며, 계속 이런 식으로 된다.
레지스터(220) 및 BEV_PIC(218)는 MDC(14)에 의해 제어가능한 것과 같이, 여러 가지 방법으로 설정될 수 있다. MDC(14)가 값들을 레지스터 내로 삽입하는 한가지 방법은, 원하는 값들을 주사 데이타에 삽입시키고 레지스터 상의 주사를 실행시키므로써, 새로운 내용을 삽입하면서 현재 내용을 판독하는 것이다.
부트 어드레스 재배치기(194)는 버스 입력, 버스 출력, 및 버스의 내용이 Ibus(26) 상에 배치될 어드레스인지를 나타내기 위한 입력을 포함한다. 버스의 내용이 Ibus(26) 상에 배치될 어드레스가 아니면, 데이타는 수정되지 않은 채로 부트 어드레스 재배치기를 통해 패스된다. AND 게이트(400)은 2개의 입력을 포함하는데, 하나는 BEV_PIC(218)로부터의 입력이고, 다른 하나는 Ibus(26)용의 어드레스인 경우를 나타내는 입력이다. 입력들이 둘 다 참으면, AND 게이트(400)은 멀티플렉서(402)(1, 6)들의 선택 입력들로 논리 1 (SELECT=1)을 출력하는데, 이는 버스 상의 어드레스를 재배치시키도록 한다. 그렇지않고, AND 게이트(400)가 논리 0 (SELECT=0)을 출력하면, 버스 상의 데이타는 변경되지 않은 부트 어드레스 재배치(194)를 통해 패스된다.
표 2는 멀티플렉서들의 논리, 및 어드레스 라인들의 비트들에 대한 효과를 나타낸다.
[표 2]
제6도에는 부트 어드레스 재배치의 효과를 나타내는 0x00000000으로부터 0xFFFFFFFF까지의 32-비트 어드레스들의 메모리 맵이 도시되어 있다. 프로세서 시스템의 한 실시예에서, 동작 시스템은 0x00000000에서 시작하여 32, 64, 128 또는 256 메가바이트(MB)로 확장한 로우 어드레스에 있는 물리적인 메모리를 예상한다. 그러나, 마이크로프로세서(12)는 0x1FC00000에 있는 부트 코드를 발견하기를 예상한다. 이들 2가지 요구들 모두는 0x00000000로부터 0x1FC00000까지 공간을 확장하는 적어도 508 Mb의 메모리를 사용하거나, 물리적인 메모리내의 위치로의 점프를 포함한 코드를 포함하는 0x1FC00000에 작은 메모리를 부가하는 것에 의해 충족될 수 있다. 마이크로프로세서(12)가 실행되는 동안, 내부 번역 룩-어사이드(look-aside) 버퍼(TLB)를 사용하여 가상 메모리 어드레스 번역이 수행되지만, 그 다음의 리셋이 가상 메모리 동작을 위해 마이크로프로세서를 구성하지는 않는다. 부트 코드가 이같은 셋업(setup)을 보조하므로, 부트 코드는 마이크로프로세서(12)가 부트 코드를 예상하는 어드레스에 배치되거나 그 위치로 재배치되어야 한다.
4개의 섹션(00, 01, 10 및 11로 부호된)의 물리적인 어드레스 공간이 부트 코드에 이용가능하다. 이들 섹션들은 모두 메모리의 제14 MB안에 배치되기 때문에, 이들 섹션들은 모두 상기된 실시예의 설치된 물리적인 메모리내에 배치된다. 부트 어드레스 재배치기(194)는 4개의 섹션중 BOOT_ADR[1:0]으로 부호된 특정의 1개가 부트 어드레스 레지스터(220)의 내용에 의해 결정된 이들 4개의 섹션중 1개의 어드레스를 재배치시킨다.
제5도에는 비트 20:17이 상기 실시예들에서는 부트 어드레스에서 모두 제로이기 때문에 실제로는 필요하지 않음을 나타내기 위해 점선으로 도시된 멀티플렉서[402(3)]가 도시되어 있다. 이 경우, 멀티플렉서[402(3)]는 칩의 실 면적을 줄이기 위해 제거될 수 있다.
제7도에는 인터럽트 이미지 레지스터(452), 제3우선 순위 레벨 인터럽트 레지스터(460), 제3우선 순위 레벨 인터럽트 마스크(462), 제2우선 순위 레벨 인터럽트 레지스터(464), 제2우선 순위 레벨 인터럽트 마스크(466), 다중-라인 비교기(470), 출력 구동기(480) 및 입력 구동기(482)를 포함하는 인터럽트 필터(198)이 보다 상세하게 도시되어 있다. 제7도에는 또한 마이크로프로세서(12)내의 인터럽트 레지스터(450)가 도시되어 있다.
인터럽트가 Ibus(26)으로부터 순서대로 레시스터(460), 마스크(462), 레지스터(464), 마스크(466)를 통해 내부 버스(490)으로 전파하는 인터럽트 입력 경로가 도시된다. 내부 버스(490)의 5개 라인들이 비교기(47)로의 5-라인 출력을 갖는 인터럽트 이미지 레지스터(452)에 제공된다. 비교기(470)의 비교기 출력은 구동기(480)의 출력 인에이블(output enable)에 접속된다. 구동기(480)로의 입력은 내부 버스(490)이다. 구동기(482)의 출력은 구동기(482)의 입력 및 구동기(480)의 입력 및 구동기(480)의 출력이 Pbus 인터페이스 섹션(180)(도시되지 않음 ; 제3도 참조)을 통해 Pbus(18)에 접속되는 동안 레지스터들 및 마스크들에 제공된다. 마이크로프로세서(12)의 인터럽트 레지스터(450)도 또한 Pbus에 접속된다.
동작에 있어서, Ibus(26)로부터의 인터럽트들은 마이크로프로세서(12)에 도달하는 인터럽트들만 인터럽트 레지스터(450)의 내용들을 변경시키도록 필터되지만, 마이크로프로세서(12)는 인터럽트 필터(198) 내의 인터럽트 레지스터 또는 마스크에 대한 진단이나 변화에 구속되지 않는다.
제8도에는 레지스터들(460 및 464)이 보다 상세하게 도시되어 있다. 비록 도시되지는 않았지만, 마스크들(462 및 466) 각각은 레지스터들(460 및 464) 각각의 인터럽트에 대한 비트를 포함한다.
Ibus(26)를 통해 수신된 인터럽트들은 각각의 인터럽트 번호에 따라 레지스터들(460)에 저장된다. 몇몇 인터럽트들에 대하여, 값이 인터럽트 번호들과 함께 패스되고, 이 값은 설정 상태 또는 리셋 상태(즉, 소거된 인터럽트)중의 하나인 인터럽트의 설정 표시와 함께 저장된다. 이들 유입 인터럽트들은 마스크되고, 제8도에 도시된 것과 같이 우선 순위 체계에 따라 우선된다. 인터럽트의 우선 순위는 인터럽트 번호 및 그의 우선 순위 그룹핑(grouping)에 의해 결정된다. 예를 들어, 인터럽트 int_io[19:10]의 그룹핑중에서, int_io[19]가 가장 높은 우선 순위를 갖는다. 그러므로, 만일 int_io[19] 및 가장 낮은 우선 순위의 인터럽트가 Ibus(26)를 통한 유입 인터럽트 사건들에 의해 설정된다면, 단지 int_io[19] 인터럽트만이 다음 우선 순위 레벨에 있는 int_a[15] 인터럽트를 트리거하기 위해 패스된다. 번호 "19"도 또한 int_a[15] 인터럽트를 발생시키는 우선 순위 그룹 안에서 인터럽트의 번호가 용이하게 결정될 수 있도록 int_a[15]에 저장될 수 있다. int_io[19]가 소거되면, 다음으로 가장 높은 우선 순위의 인터럽트가 int_a[15]로 전파된다.
마스크 레지스터들은 각각의 인터럽트에 대한 플래그를 포함하고, 만일 마스크 비트가 설정되면, 이 인터럽트는 다음 레벨로 전송되지 않는다. 그러므로, 만일 int_io[19]에 대한 마스크 비트가 설정되면, int_io[19] 인터럽트는 비록 그것이 가장 높은 우선 순위의 인터럽트일지라도 int_a[15]로 패스되지 않는다.
마찬가지로, 인터럽트들이 제1레벨에 보다 5만큼 감소된 제2레벨에서 우선 된다. 그러나, 서로 다른 인터럽트들의 번호가 좁아지더라도, 인터럽트가 종종 제1우선 순위 레벨까지 전파되기 때문에 인터럽트의 주파수는 감소되지는 않는다. 인터럽트 레지스터(450)를 갱신하기 위한 Pbus상의 통신량을 감소시키기 위해, 인터럽트 이미지 레지스터(452)는 인터럽트 레지스터(450)에 존재하는 복사물을 유지한다. 인터럽트 이미지 레지스터(452)는 내부 마스크(490)로 가는 마스크(466)의 출력에 의해 갱신되고, 인터럽트 이미지 레지스터(452)의 갱신 전의 내용들은 비교기(470)에 의해 내부 버스(490)의 내용들과 비교된다. 만일 내부 버스(490)의 내용들이 인터럽트 이미지 레지스터(452)의 내용들을 변경하면, 내부 버스(490)의 내용들은 Pbus로 출력되고, 그렇지 않으면, Pbus로 출력되는 것은 없다. 이러한 방식으로, 인터럽트 레지스터(450) 및 인터럽트 이미지 레지스터(452)는 인터럽트 레지스터(450)의 갱신이 약간 지연된다는 것 이외에는 서로의 리플렉션(reflection)이다. 물론, 만일 마이크로프로세서(12)가 내부적으로 인터럽트 레지스터(450)를 변경시켰다면, 인터럽트 이미지 레지스터(452)도 또한 갱신되어야 한다. 완전 인터럽트 데이타가 마이크로프로세서로 전송될 필요가 있을 때, 마이크로프로세서(12)가 인터럽트 필터(198)의 레지스터들 및 마스크들에 액세스(access)할 수 있기 때문에, 완전 인터럽트 데이타는 마이크로프로세서(12)로 매번 전송되지 않아도 된다.
상기 기술된 본 발명은 설명적인 것이지 한정적인 것은 아니다. 본 발명의 많은 변형물이 본 발명을 참조하여 본 분야에 숙련된 자들에게 명백해 질 수 있다. 그러므로, 본 발명의 범위는 상기 기술뿐 아니라 첨부된 특허 청구의 범위를 참조하여 결정되어야 한다.

Claims (8)

  1. 어드레스 공간을 갖고 있는 마이크로프로세서가 어드레스 공간내에 있는 원하는 명령의 어드레스를 포함하는 요구를 버스를 통해 발함으로써 상기 어드레스 공간으로부터 명령을 요구하며, 마이크로프로세서의 리셋 이후에 상기 마이크로프로세서는 고정된 어드레스에 의해 지정된 제1부트 명령을 요구하고, 상기 고정된 어드레스는 다수의 어드레스 비트들을 포함하는 부트 어드레스 번역 장치에 있어서, 마이크로프로세서의 리셋 이후에 부팅 신호를 출력하는 부트 검출기; 상기 버스에 접속되고 상기 부팅 신호에 응답하여, 상기 고정된 어드레스의 상기 어드레스 비트들의 일부를 블로킹하기 위한 어드레스 블로킹 수단; 상기 버스에 접속되고 상기 부팅 신호에 응답하여, 상기 고정된 어드레스가 물리적인 어드레스를 지정하지 않고 상기 부팅 신호가 어써트(assert)될 때, 상기 블록킹된 어드레스 비트들을 치환된 다수의 어드레스 비트들-상기 치환된 다수의 어드레스 비트들은 상기 고정된 어드레스의 블록되지 않은 어드레스 비트들과 결합될 때에 명령 메모리 내의 물리적인 어드레스를 형성함-로 치환(substitution)하기 위한 어드레스 치환 수단; 및 상기 마이크로프로세서가 유효 어드레스들로부터의 요구만을 수행하도록 구성된 후에 상기 어드레스 치환 수단을 디스에이블하기 위한 수단을 포함하는 것을 특징으로 하는 부트 어드레스 번역 장치.
  2. 제1항에 있어서, 상기 어드레스 블로킹 수단과 상기 어드레스 치환 수단은 상기 부팅 신호에 응답하는 선택 제어 입력을 갖는 다중 비트 입력의 2 대 1(2-to-1) 멀티플렉서를 포함하는 것을 특징으로 하는 부트 어드레스 번역 장치.
  3. 제1항에 있어서, 상기 버스 상의 어드레스들은 패리티 기준(parity criterium)을 충족시키는 패리티 비트들을 포함하고, 상기 어드레스 치환 수단은 치환된 패리티 비트들을 포함하기 위한 수단을 더 포함하며, 상기 치환된 패리티 비트들은 상기 패리티 기준을 충족시키는 것을 특징으로 하는 부트 어드레스 번역 장치.
  4. 마이크로프로세서로부터 그 외부로 요구들을 파이프라이닝(pipeline)하기 위한 요구 파이프라인에 있어서, 상기 마이크로프로세서와 공용(shared) 시스템 버스 사이에 접속되어 상기 마이크로프로세서로부터의 적어도 2개 이상의 요구 - 상기 요구들은 상기 공용 시스템 버스를 통해 상기 마이크로프로세서와 연결된 장치들로 인도됨 - 를 저장하기 위한 요구 저장 수단, 상기 요구 저장 수단에 접속되어, 상기 요구가 상기 요구 내에 특정된 메모리 위치에 상기 요구와 관련된 데이타를 기록하는 요구인 경우에, 상기 데이타를 저장하기 위한 관련 저장 수단(associated storage means), 상기 마이크로프로세서와 상기 공용 시스템 버스에 접속되어, 상기 요구 저장 수단이 상기 요구를 저장하도록 이용될 수 있는 한, 상기 장치가 상기 요구를 수납할 준비가 되어 있는지 여부에 관계없이 상기 요구가 그것이 향하는 장치에 의해 수납되었다는 것을 상기 마이크로프로세서에 표시하기 위한 제어 논리 수단 - 상기 마이크로프로세서는 상기 요구가 수납되는 것으로 간주하기 전에 상기 장치로부터 명시적 응답(explicit acknowledgement)을 기대하도록 구성되어 있음 -, 및 상기 요구가 향하는 장치 및 상기 공용 시스템 버스가 상기 요구를 수납할 준비가 되어 있을 때, 상기 요구 저장 수단으로부터 상기 공용 시스템 버스로 요구를 출력하기 위한 수단을 포함하는 것을 특징으로 하는 요구 파이프라인.
  5. (2회 정정)마이크로프로세서가 프로세서 버스를 통해 다수의 인터럽트 소스들로부터 인터럽트 신호들을 수신하고, 상기 인터럽트 신호들은 상기 마이크로프로세서의 인터럽트 레지스터 내의 인터럽트 플래그들을 세트 또는 리셋시키며, 상기 마이크로프로세서는 상기 인터럽트 플래그들의 상태에 따라 동작하는 인터럽트 프로세싱 장치에 있어서, 내부에 상기 인터럽트 플래그들의 상태를 표시하는 데이타를 저장하는 인터럽트 이미지 레지스터; 및 상기 프로세서 버스와 상기 다수의 인터럽트 소스들 사이에 접속되고, 상기 인터럽트 이미지 레지스터에 접속되어, 인터럽트 신호를 수신하고, 상기 인터럽트 레지스터의 상태를 변경시키지 않는 상기 인터럽트 신호들이 프로세서 버스를 통하여 전송되는 것을 방지하기 위한 인터럽트 필터링 수단으로서, 상기 수신된 인터럽트 신호들과 상기 인터럽트 이미지 레지스터의 내용을 비교하여 상기 신호가 상기 인터럽트 레지스터의 상태를 변경시키는 신호인지의 여부를 결정하는 인터럽트 필터링 수단을 포함하는 것을 특징으로 하는 인터럽트 프로세싱 장치.
  6. 제9항에 있어서, 상기 마이크로프로세서는 인터럽트 우선 순위 인코더를 이용하여 인터럽트가 프로세싱되는 순서를 결정하고, 마스크 레지스터 및 마스킹 스킴(scheme)을 사용하여 인터럽트의 프로세싱을 차단시키고, 상기 마이크로프로세서는 상기 인터럽트 우선 순위 인코더로부터 출력되는 대로 인터럽트들을 처리하며, 수신된 인터럽트 신호가 마스크되지 않고 앞서 수신된 다른 인터럽트 신호보다 낮은 우선 순위가 아닌 경우에, 대응하는 인터럽트가 상기 인터럽트 우선 순위 인코더에 의해 출력되고, 상기 인터럽트 필터링 수단은, 인터럽트 신호와 관련된 마스크 비트들을 저장하며, 세트되면 관련된 인터럽트 신호가 무시되도록 하는 마스크 레지스터; 및 인터럽트들의 우선 순위를 결정하는 외부 우선 순위 인코더를 포함하며, 상기 인터럽트 필터링 수단은 상기 마이크로프로세서 내에서는 상기 우선 순위 인코더의 출력을 변경시키지 않는 인터럽트 신호들이 상기 프로세서 버스를 통해 전송되는 것을 방지하고, 상기 수신된 인터럽트 신호들과 상기 인터럽트 이미지 레지스터 및 상기 외부 마스크 레지스터의 내용을 비교하고 마스크하고 우선 순위를 결정하여 인터럽트 신호가 수신되는 경우에 상기 인터럽트 신호가 상기 마이크로프로세서 내부의 상기 인터럽트 레지스터의 출력을 변경시키는 신호인지의 여부를 결정하는 것을 특징으로 하는 인터럽트 프로세싱 장치.
  7. 동작하는 마이크로프로세서를 상기 마이크로프로세서에 의해 발행된 메모리 판독, 메모리 기록 및 입력/출력 액세스에 대한 요구를 처리하는 내부 버스에 직렬로 접속시키기 위한 프로세서 인터페이스 회로에 있어서, 상기 마이크로프로세서와 상기 프로세서 인터페이스 회로 사이에 프로세서 버스를 통해 양방향 데이타 경로를 유지하는 프로세서 버스 인터페이스; 프로세서 시스템 내부에 있으면서 상기 마이크로프로세서로부터의 요구에 응답하여 메모리를 판독 및 기록하는 적어도 1개의 메모리 인터페이스 회로를 포함하는 마이크로프로세서 요구 처리기들(handlers)과 상기 프로세서 인터페이스 회로 사이에 상기 내부 버스를 통해 양방향 데아타 경로를 유지하는 내부 버스 인터페이스; 메모리 액세스 요구의 어드레스 부분을 액세스하도록 상기 프로세서 버스 인터페이스에 접속되어, 부트 표시기가 세트되고 상기 어드레스 부분이 상기 메모리 인터페이스 회로에 의해 액세스된 상기 메모리 내의 어드레스를 가리키지 않을 때 상기 어드레스 부분의 어드레스를 재배치시키기 위한 부트 어드레스 재배치기; 상기 프로세서 버스 인터페이스와 상기 내부 버스 인터페이스에 접속되어, 마이크로프로세서 요구를 수납하고 상기 내부 버스 인터페이스가 마이크로프로세서 요구를 즉시 수납할 수 없을 때 상기 요구가 상기 내부 버스 인터페이스를 통해 출력되기 전에 상기 요구를 수납했다는 응답을 하기 위한 요구 파이프라인; 상기 프로세서 버스 인터페이스와 상기 내부 버스 인터페이스에 접속되어, 상기 마이크로프로세서에 의해 요구된 블럭 다음의 메모리 내의 블럭인, 예측 데이타 블럭을 상기 메모리로부터 인출 또는 페치하여 유지시키기 위한 선취 큐(prefetch queue); 및 상기 내부 버스 인터페이스와 상기 프로세서 버스 인터페이스에 접속되어, 상기 내부 버스로부터 인터럽트 신호를 수신하여, 상기 마이크로프로세서의 프로그램 흐름에 현재 영향을 미치고 있는 제1인터럽트 클라스로부터의 인터럽트들을 상기 프로세서 버스에 전달하고, 상기 프로그램 흐름에 현재 영향을 미치지 않고 있는 제2인터럽트 클라스로부터의 인터럽트들이 상기 프로그램 흐름에 영향을 미치게 될 때까지 상기 제2인터럽트 클라스로부터의 인터럽트들을 저장하기 위한 인터럽트 필터를 포함하는 것을 특징으로 하는 프로세서 인터페이스 회로.
  8. 제1마이크로프로세서가 프로세서 버스 마스터이고 제2마이크로프로세서가 캐시 버스 마스터인 로크-스텝 듀얼 마이크로프로세서가 프로세싱 시스템에서 각각의 마이크로프로세서와 캐시의 상태를 추출하는 방법에 있어서, 고장을 검출하는 단계; 제1및 제2마이크로프로세서를 리셋 상태로 유지시키는 단계; 각각의 마이크로프로세서로부터 출력 고장 표시 비트를 추출하는 단계; 각각의 마이크로프로세서로부터 입력 고장 이력 비트(input fault history bit)를 추출하는 단계; 상기 제1마이크로프로세서를 상기 리셋 상태로부터 해제(release)시키는 단계; 상기 제1마이크로프로세서가 프로세서 버스 마스터인 동시에 캐시 버스 마스터이고 상기 제2마이크로프로세서가 프로세서 버스 및 캐시 버스를 구동하지 못하게 되는 동안에 상기 제1마이크로프로세서로부터 내부 상태를 추출하는 단계; 상기 제1마이크로프로세서를 상기 리셋 상태로 복귀하는 단계; 상기 리셋 상태로부터 상기 제2마이크로프로세서를 해제시키는 단계; 상기 제2마이크로프로세서가 프로세서 버스 마스터인 동시에 캐시 버스 마스터이고 상기 제1마이크로프로세서가 프로세서 버스 및 캐시 버스를 구동하지 못하게 되는 동안에 상기 제2마이크로프로세서로부터 내부 상태를 추출하는 단계; 상기 제2마이크로프로세서를 상기 리셋 상태로 복귀시키는 단계; 상기 제1및 제2마이크로프로세서를 상기 리셋 상태로부터 해제시키는 단계; 상기 제1마이크로프로세서가 프로세서 버스 마스터이고 상기 제2마이크로프로세서가 캐시 버스 마스터인 로크-스텝 모드에서 상기 제1및 제2마이크로프로세서를 사용하여 상기 캐시의 내용을 추출하는 단계; 상기 제1및 제2마이크로프로세서를 상기 리셋 상태로 복귀시키는 단계; 상기 제1마이크로프로세서를 상기 리셋 상태로부터 해제시키는 단계; 상기 제1마이크로프로세서가 프로세서 버스 마스터인 동시에 캐시 버스 마스터이고 상기 제2마이크로프로세서가 프로세서 버스 및 캐시 버스를 구동하지 못하게 되는 동안에 상기 제1마이크로프로세서를 사용하여 상기 캐시의 내용을 추출하는 단계; 상기 제1마이크로프로세서를 상기 리셋 상태로 복귀시키는 단계; 상기 제2마이크로프로세서를 상기 리셋 상태로부터 해제시키는 단계; 상기 제2마이크로프로세서가 프로세서 버스 마스터인 동시에 캐시 버스 마스터이고 상기 제1마이크로프로세서가 프로세서 버스 및 캐시 버스를 구동하지 못하게 되는 동안에 상기 제2마이크로프로세서를 사용하여 상기 캐시의 내용을 추출하는 단계; 상기 제2마이크로프로세서를 상기 리셋 상태로 복귀시키는 단계; 및 상기 제1및 제2마이크로프로세서가 다시 상기 제1마이크로프로세서가 프로세서 버스 마스터이고, 상기 제2마이크로프로세서가 캐시 버스 마스터인 로크-스텝 모드에 있는 경우 상기 제1및 제2마이크로프로세서를 상기 리셋 상태로부터 해제시키는 단계를 포함하는 것을 특징으로 하는 방법.
KR1019940015987A 1993-07-06 1994-07-05 이중-마이크로프로세서 프로세서 시스템용 프로세서 인터페이스 칩(processor interface chip for dual-microprocessor processor system) KR100249642B1 (ko)

Applications Claiming Priority (2)

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

Publications (2)

Publication Number Publication Date
KR950004023A KR950004023A (ko) 1995-02-17
KR100249642B1 true KR100249642B1 (ko) 2000-03-15

Family

ID=22212092

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019940015987A KR100249642B1 (ko) 1993-07-06 1994-07-05 이중-마이크로프로세서 프로세서 시스템용 프로세서 인터페이스 칩(processor interface chip for dual-microprocessor processor system)

Country Status (8)

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

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
DE69715558T2 (de) * 1996-10-31 2003-05-22 Sgs Thomson Microelectronics Mikrorechner mit Urladungsystem
KR100502400B1 (ko) * 1997-07-31 2005-11-03 삼성전자주식회사 복수의주변저장장치선택제어기능을갖는컴퓨터및그선택제어방법
US6052802A (en) * 1997-12-31 2000-04-18 Intel Corporation Apparatus and method for cycle accounting in microprocessors
US6353805B1 (en) 1997-12-31 2002-03-05 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
US10289467B2 (en) 2013-03-28 2019-05-14 Hewlett Packard Enterprise Development Lp Error coordination message for a blade device having a logical processor in another system firmware domain
WO2014158152A1 (en) 2013-03-28 2014-10-02 Hewlett-Packard Development Company, L.P. Making memory of compute and expansion blade devices available for use by an operating system
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
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
JPH01223541A (ja) * 1988-03-03 1989-09-06 Fujitsu Ltd インタリーブメモリ装置
US4926323A (en) * 1988-03-03 1990-05-15 Advanced Micro Devices, Inc. Streamlined instruction processor
DE68920435T2 (de) * 1988-06-30 1995-08-10 Wang Laboratories Steuereinheit für den speicher.
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
US5165038A (en) * 1989-12-29 1992-11-17 Supercomputer Systems Limited Partnership Global registers for a multiprocessor system
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
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
JPH1115687A (ja) 1999-01-22
JPH1153302A (ja) 1999-02-26
JPH10320227A (ja) 1998-12-04
JPH07200510A (ja) 1995-08-04
AU6614494A (en) 1995-01-19
JPH10320215A (ja) 1998-12-04
AU671543B2 (en) 1996-08-29
KR950004023A (ko) 1995-02-17
JP3272664B2 (ja) 2002-04-08
US6397315B1 (en) 2002-05-28
CN1099492A (zh) 1995-03-01
EP0636973A2 (en) 1995-02-01
DE69434473T2 (de) 2006-05-18
US5590337A (en) 1996-12-31
JP3098489B2 (ja) 2000-10-16
EP0636973A3 (en) 1995-06-28
EP0636973B1 (en) 2005-08-31
DE69434473D1 (de) 2005-10-06
US5435001A (en) 1995-07-18
US5539890A (en) 1996-07-23
CA2127081A1 (en) 1995-01-07
US5778171A (en) 1998-07-07
JP2955469B2 (ja) 1999-10-04

Similar Documents

Publication Publication Date Title
KR100249642B1 (ko) 이중-마이크로프로세서 프로세서 시스템용 프로세서 인터페이스 칩(processor interface chip for dual-microprocessor processor system)
US12007907B2 (en) Victim cache with write miss merging
CA1322058C (en) Multi-processor computer systems having shared memory and private cache memories
KR100252570B1 (ko) 축소된요구블로킹을갖는캐시메모리
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
US5696937A (en) Cache controller utilizing a state machine for controlling invalidations in a network with dual system busses
US7447844B2 (en) Data processing system, processor and method of data processing in which local memory access requests are serviced on a fixed schedule
US5737756A (en) Dual bus computer network using dual busses with dual spy modules enabling clearing of invalidation queue for processor with store through cache while providing retry cycles for incomplete accesses to invalidation queue
US5920889A (en) Apparatus and method for write miss processing in a copy-back data cache with an allocating load buffer and a non-allocating store buffer
EP3759606B1 (en) An apparatus and method for accessing metadata when debugging a device
AU706450B2 (en) A processor interface circuit
JP2780555B2 (ja) キャッシュ・メモリ内蔵型マイクロプロセッサ
JPH08235067A (ja) I/oキャッシュメモリ

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee