KR100303947B1 - 다중프로세서시스템그리고그의초기화기능분산및자체진단시스템그리고그방법 - Google Patents

다중프로세서시스템그리고그의초기화기능분산및자체진단시스템그리고그방법 Download PDF

Info

Publication number
KR100303947B1
KR100303947B1 KR1019930704014A KR930704014A KR100303947B1 KR 100303947 B1 KR100303947 B1 KR 100303947B1 KR 1019930704014 A KR1019930704014 A KR 1019930704014A KR 930704014 A KR930704014 A KR 930704014A KR 100303947 B1 KR100303947 B1 KR 100303947B1
Authority
KR
South Korea
Prior art keywords
boot
central processing
cpu
processing unit
slot
Prior art date
Application number
KR1019930704014A
Other languages
English (en)
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 윤종용
Application granted granted Critical
Publication of KR100303947B1 publication Critical patent/KR100303947B1/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
    • G06F15/177Initialisation or configuration control
    • 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/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1417Boot up procedures
    • 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/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0638Combination of memories, e.g. ROM and RAM such as to permit replacement or supplementing of words in one module by words in another module
    • 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/4405Initialisation of multiprocessor systems
    • 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/0751Error or fault detection not based on redundancy
    • G06F11/0754Error or fault detection not based on redundancy by exceeding limits
    • G06F11/0757Error or fault detection not based on redundancy by exceeding limits by exceeding a time limit, i.e. time-out, e.g. watchdogs
    • 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
    • G06F11/2205Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested
    • G06F11/2236Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested to test CPU or processors
    • 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
    • G06F11/2205Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested
    • G06F11/2236Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested to test CPU or processors
    • G06F11/2242Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested to test CPU or processors in multi-processor systems, e.g. one processor becoming the test master

Abstract

다중 프로세서 시스템(100)의 초기화 및 자체 진단 작업을 제어하기 위한 시스템은 다른 다중 마이크로프로세서 형태의 중앙처리장치(120, 132, 160)의 사용을 가능하게 할 수 있다. 본 발명은 각각의 회로 기판의 비휘발성 메모리(123, 129, 133, 161)에 비실행 가능한 형태로 각 프로세서, 메모리 모듈 또는 I/O 회로 기판에 특정한 저장 구성 정보, 초기화 자체 진단 코드 및 부트 코드를 포함하며, 초기 부트 프로세서가 필요로 하는 부트 코드의 실행가능 부분을 중앙 접근식 비휘발성 메모리(152)에 저장한다. 또, 본 발명은 디폴트 프로세서가 부트 하지 못할 때 시스템의 초기화 작업을 디폴트 프로세서로부터의 제1의 다른 프로세서로 자동적으로 이송하며, 그리고 제1의 다른 프로세서가 부트 하지 못하느 경우에는 초기화 작업을 제2읠 다른 프로세서로 자동적으로 이송하게끔 하는 시스템을 제공한다. 따라서, 본 발명의 시스템은 다중 프로세서 시스템(100) 내에 얼마나 많은 프로세서들이 설치되느냐에 따라서 시스템의 초기화 기능 분산 및 진단 작업을 확장시킬 수 있다.

Description

다중 프로세서 시스템 그리고 그의 초기화 기능 분산 및 자체 진단 시스템 그리고 그 방법(A MULTIPROCESSOR SYSTEM AND DISTRIBUTED UNITIALIZATION AND SELF TEST SYSTEM AND METHOD THEREFOR)
개인 및 상업상의 필요에 의해 다중 유저 컴퓨터 시스템의 처리가 끊임없이 요구되고 있다. 예를 들면, 지역 회로망(local area network)에서 사용하기 위한 복잡한 응용프로그램이 계속적으로 개발되고 있다. 더욱이, 많은 다중 유저 시스템은 동일 시스템 상에서 유닉스(UNNIX) 및 도스(DOS)와 같은 하나 이상의 작업 환경에 접근하고 있다.
일반적으로, 이러한 필요를 서비스 하는 컴퓨터는 확장 산업 표준 구조(EISA)와 같은 표준 입/출력(I/O) 버스를 사용하는 종래 구조에 맞는 단일 프로세서 시스템들이다. 또한, 새롭고 보다 강력한 시스템들이 계속적으로 나오고 있다. 그러나 일반적으로 종래 시스템을 한 단계 더 높이기 위해서는 실질적으로 하드웨어의 수정이나 새로운 시스템을 구입해야 하는 단점이 있다. 따라서, 시스템을 제어하는 마이크로프로세서의 지속적인 성능 변환에 대처하기 위한 하나의 해결책으로 AST 리서치(Research) 사에 의해 고안된 CUPID 구조를 들 수 있다. 이 CUPID 구조에서, 마이크로프로세서에 기초한 중앙처리장치(CPU)는 백플레인 버스(backplane bus)에 영구적으로 부착되지 않으며, 그 자신의 속도로 작동하되 백플레인 버스 동작에 비동기적으로 동작하는 착탈 가능한 회로 기판(또는 보드)이다. 따라서, 마이크로프로세서에 보다 강력한 기능이 요구되어 질 때는 기존의 CPU 대신에 고속 CPU로 대처할 수 있다.
그러나, 처리 능력의 요구가 증가되면, 응용 소프트웨어 및 동작 시스템의 성능은, CUPID 구조와 유사하지만, 병렬 처리를 제공하는, 고속 배치(batch) 성능을 계속적으로 유지하면서 많은 유저들에게 동시에 서비스를 제공할 수 있는 멀티프로세서 능력을 갖춘 구조에서 더욱 개선될 수 있을 것이다.
또한, 어떤 프로세서가 시스템을 부트하는 것을 결정하거나, 하나의 프로세서가 시스템을 부트 하지 못할 때 다른 하나의 대체 프로세서(an alternate processor)로 하여금 부트 동작을 떠맡도록 하는 다중 마이크로프로세서 구조의 개발에는 많은 문제점이 있다. 더욱이, 하나의 프로세서가 판독 전용 메모리(ROM)로 부터의 명령들을 실행하는 것에 의해 시스템을 부트 한 후 시스템 내에 설치된 부트 프로세서는 다른 부트 ROM에 대한 액세스를 필요로 하게 된다.
본 발명은 다중 프로세서 컴퓨터 시스템의 초기화 작업을 조정하기 위한 것으로서, 구체적으로는 컴퓨터 시스템 내의 어떤 프로세서가 컴퓨터 시스템을 부트(boot) 할 것인가에 대한 판단을 자동적으로 제어하기 위한 방법 및 장치에 관한 것이다.
부트 프로세서가 고장나면 제어는 자동적으로 다른 대체 프로세서(an alternate processor)에게로 넘겨진다. 또, 본 발명은 다중 프로세서 시스템을 포함하는데, 그 시스템 내의 각 중앙처리장치는 자신의 부트 코드의 대응 카피를 갖는다. 상기 부트 코드는 실행시 대응 프로세서에 의해 메모리에 이송되어 초기화 작업을 수행한다.
제1도는 본 발명에 따른 백플레인 시스템 버스를 가진 다중 프로세서 상호 접속 시스템을 예시적으로 도시한 블록도이다.
제2도는 제1도에 도시한 입/출력 서비스 모듈(IOSM)을 상세하게 나타낸 상세 블록도이다.
제3도는 3개의 중앙처리장치를 가진 다중 프로세서 상호 접속 시스템의 구성을 나타내는데, 특히 본 발명의 ISOM과 슬롯 선택 회로 사이의 슬롯 선택 상호 접속부를 나타내는 블록도이다.
제4도는 본 발명의 슬롯 선택 논리 회로의 개략도이다.
다중 마이크로프로세서의 능력을 제공하는 본 발명의 시스템은 상기의 문제점들을 해소할 수 있으며, 또한 메모리, I/O 제어기들 및 CPU들을 추가로 부착할 수 있는 확장 능력을 제공한다. 본 발명의 시스템은 배치 프로세싱(batch processing)을 고속으로 수행할 수 있음은 물론, 높은 이용도를 그리고 다중 유저 서비스들을 제공한다. 또한 상기 시스템 구조는 마이크로프로세서에 기초한 설계에 적당하다.
본 발명은 다수의 프로세서들과 함께 사용할 수 있는 백 플레인 시스템 버스를 가진 다중 프로세서 상호 접속 구조를 제공한다. 상기 구조는 컴퓨터 시스템의 개시(start-up) 시에 하나의 디폴트(default) 부트 CPU가 시스템을 부트 하도록 지정되거나, 또 이 CPU가 고장인 경우 자동적으로 다른 대체 프로세서의 주도하에 제어가 행하여지도록 백플레인 시스템 버스에 다수의 프로세서들을 상호 접속하는 방법 및 장치를 제공한다. 이러한 방법 및 장치는 또한 시스템의 이용도를 높이고 고장에 잘 견딜 수 있도록 한다. 아울러, 시스템의 각 CPU, 메모리 및 I/O 모듈은 그 자신의 부트 코드의 초기화 데이터 및 자체 시험 코드 부분(또는 그 전체 부트 코드)의 부피를 유지하며, 이들은 관련 모듈에 대한 초기화 및 자체 진단의 목적으로 실행을 위해 메모리로 전송된다.
본 발명의 하나의 양태는 다수의 중앙처리장치들, 메모리 모듈들, 그리고 다른 입/출력 모듈들을 수용할 수 있는 접속 슬롯을 가진 백플레인 버스를 구비한 다중 프로세서 접속기와 함께 사용할 수 있는 다중 프로세서 초기화 기능 분산 및 자체 진단 시스템을 포함한다. 상기 시스템은 중앙 접근식 메모리(a centrall accessing memory), 백플레인 버스 상의 제1 슬롯에 설치된 디폴트 부트 중앙처리 장치를 구비하며, 또한 백플레인 버스 상의 제2 슬롯에 설치된 하나 또는 그 이상의 대체 부트 중앙처리장치를 갖는다. 아울러, 상기 시스템은 디폴트 중앙처리장치 및 대체 중앙처리장치에 의해 실행 가능한 중앙 접근식 부트 코드를 갖는다. 디폴트 중앙처리장치로 하여금 부트 동작을 실행하도록 하는 디폴트 중앙처리장치와곤련된 제1 슬롯 선택 회로에는 각 슬롯 식별 코드에 의해 선택되는, 소정의 타임아웃 주기가 할당된다. 디폴트 중앙처리장치가 성공적으로 부트 되기 전에 타임아웃 주기가 경과하는 경우, 제1 슬롯 선택 회로가 타임아웃 주기를 리셋 상태로 되돌려 놓음으로써 디폴트 중앙처리장치를 디스에이블 한다.
다른 대체 중앙처리장치와 관련된 제2 슬롯 선택 회로는, 디폴트 중앙처리장치가 성공적으로 시스템을 부트 하거나, 혹은 각 슬롯 식별 코드에 의해 선택된 소정의 시간 주기가 경과하여 디폴트 중앙처리장치가 시스템을 부트 하지 못했음을 표시할 때까지는 대체 프로세서를 리셋 상태로 유지한다.
한 실시예에서, 디폴트 부트 중앙처리장치는 인텔(INTEL) 80486 호환 가능한 중앙처리장치를 포함하며, 다른 대체 중앙처리장치도 인텔 80486 호환성 중앙처리장치를 포함한다.
본 발명의 또 다른 양태는 다중 프로세서 상호 접속부와 함께 사용할 수 있도록 다중 프로세서 초기화 기능 분산 및 자체 진단 시스템을 제공하는데, 상기 상호 접속부는 다수의 중앙처리장치들, 메모리 모듈들, 그리고 다른 입/출력 모듈들을 접속할 수 있는 백플레인 버스를 구비한다.상기 시스템은 백플레인 버스 상에 설치된 제1 중앙처리장치, 백플레인 버스 상에 설치된 제2 중앙처리장치, 그리고 중앙 접근식 메모리를 갖는다. 또한 상기 시스템은 디폴트 중앙처리장치로의 접근 및 실행이 가능한 중앙 접근식 부트 코드를 갖는다. 제1 중앙처리장치와 관련된 제1의 비휘발성 메모리는 제1의 중앙처리장치에 특정한 초기화 및 자체 진단 코드를 저장한다. 양호한 실시예에서, 상기 코드는 중앙 접근식 메모리로 전송되며 제1 중앙처리장치에 의해 실행을 위해 조합된다. 제2 중앙처리장치와 관련된 제2의 비휘발성 메모리는 제2 중앙처리장치에 특정한 부트 코드를 저장한다. 양호한 실시예에서, 상기 코드는 중앙 접근식 메모리로 전송되며 제1 중앙처리장치에 의해 실행을 위해 조합된다. 제2 중앙처리장치와 관련된 제2의 비휘발성 메모리는 제2 중앙처리장치에 특정한 부트 코드를 저장한다. 바람직하게는, 이 코드 또한 중앙 접근식 메모리로 전송되어서 실행을 위해 제2 중앙처리장치에 의해 조합된다.
도 1은 다중 프로세서 상호 접속 시스템(100)의 블록도이다. 본 발명 실시예의 이 시스템(100)은, 일반적으로 64 비트의 다중 프로세서 테이타 버스(104)를 가진 백플레인 시스템 버스(102)와, 입/출력 버스(103)(본 발명 실시예에서는 32 비트 확장 산업 표준 구조(EISA) 버스를 구비하는 것이 바람직함)와, 대응 버스 제어기(112)를 갖는 입/출력 서비스 모듈(IOSM, 108)와, 통상적인 I/O 제어기(들)(118)와, 대응 캐쉬(124) 및 버스 제어기(126)를 갖는 제1 중앙처리장치(CPU1, 120)와, 대응 버스 이터페이스(131)를 갖는 메모리 모듈(130)과, 대응 캐쉬(136) 및 버스 제어기(138)를 갖는 제2 중앙처리장치(CPU2, 132)를 구비한다. I/O 제어기(들)(118)는 발명의 실시예에서 종래의 EISA 또는 ISA 호환성 제어기를 구비하는 것이 바람직하다. I/O 버스(103)는 I/O 제어기들을 위한 8개의 I/O 접속지들(예를 들면, 종래의 EISA I/O 접속기들)을 갖는다. 그리고, 64 비트 시스템을 위한 백플레인 시스템 버수(102)는 64 비트 시스템 버스(104)를 따라서 8개의 시스템 접속기를 갖는다. ISOM(108)을 수용하도록 지정된 추가의 접속기는 백플레인 시스템 버스(102)와 I/O 버스(103) 사이에 위치한다. ISOM(108)은 32 비트 I/O 버스(103)와 64 비트 시스템 버스(104) 간의 인터페이스를 수행한다.
64 비트 시스템용 버스 접속기는 듀폰(DuPont) 사에서 시판하는 240 핀 메트랄(METRAL) 접속기가 유리하고, ISOM(108)용 버스 접속기는 480 핀 메트랄 접속기가 유리하다. 본 발명 실시예의 I/O 버스 접속기는 이 기술 분야에서 잘 알려진 바와 같이 번디(Burndy)사로부터 표준 접속기들이다.
ISOM
도 2에 상세히 도시한 바와 같이, ISOM(108)은 버스 조정 논리부(110), 64비트 시스템 버스(104)와 상호 접속하는 버스 제어기(112), 32 비트 I/O 버스(103)와 상호 접속하는 I/O 인터페이스(116), 중앙 부트 판독 전용 메모리(ROM, 150), 메모리(152), 그리고 상기 중앙 부트 ROM(150, 메모리(152) 및 I/O 인터페이스(116)를 상호 접속시키는 내부 8 비트 데이터 버스(154)를 구비한다. 상기 내부 8 비트 버스(154)는 또한 이 기술 분야에서 알려진 바와 같이, 실시간 클록(도시 생략), 병렬 포트(도시생략), 직렬 포트(도시생략), 플로피 디스크 제어기(도시생략), 키보드 제어기(도시생략), 그리고 시스템 타이머/카운터에 접속된다.
I/O 인터페이스(116)는 이 분야에서 공지된 바와 같이, 통상적인 EISA 버스 제어기 칩 세트를 구비하며, 버스 제어기(112)를 경유하여 상기 I/O 제어기(118) 및 내부 8 비트 버스(154)와 64 비트 다중 프로세서 시스템 버스(104)와의 인터페이스를 수행한다. 버스 제어기(112)는 32 비트 대 64 비트 멀티플레서/디멀티플레서(다불 워드/콰드 워드 멀티플랙서('DQMUX'))를 사용하여 시스템 버스(104)와의 인터페이스를 수행한다. 버스 제어기(112)의 DQ-MUX는 알려진 바와 같이 64 비트 워드를 2개의 32 비트 워드로 분할하거나 32 비트 워드의 쌍을 64 비트 워드로 결합한다. 또한, 버스 제어기(112)는 단일 레벨 저장 버퍼(도시생략)을 포함한다.
본 발명의 실시예에서, 중앙 부트 ROM(150)은 인텔 80486 또는 80386 마이크로프로세서용 기본 입/출력 시스템(BIOS) 명령 세트를 가진 판독 전용 메모리를 포함한다. 따라서, 본 발명의 실시예에서, 64 비트 버스에 접속되는 적어도 하나의 CPU는 인텔 80486 또는 80386 마이크로프로세서이거나, 시스템을 부트 하기 위해서 상기 인텔 프로세서를 에뮬레이트(emulate) 한다. 임의의 다른 대체 부트 프로세서 역시 인텔 80486 또는 80386이거나 그들을 에뮬레이트 한다. 그러나, 시스템을 부트 하도록 다른 프로세서 형태들이 선택될 수도 있는데, 이렇게 하기 위해서는, 공지된 바와 같이, 부트 ROM(150)에서 대응하는 변화를 주면 된다. 메모리(152)는 8킬로 바이트(Kbytes)의 CMOS SSSRAM(complementary metal oxide semiconductor static random access memory)을 포함한다.
버스 조정 논리부(110)는 버스 마스터가 되는 여러 장치들로부터의 일련의 개별 버스 요구를 받아서, 버스를 요구하는 장치에 버스의 사용을 허가하도록 신호를 제공한다. 또한 버스 조정 논리부(110)는 버스 요구(BUSRQSTn) 신호 라인 및 버스 사용 허가(BUSGNTn) 신호 라인에 의해 반송된 2개의 신호로 구성되는 종래 약정에 따라 작동한다. 상기 신호 라인들 각각은 버스 마스터가 될 수 있는 모든 장치를 위해 제공된다. 버스 조정 논리부(110)는 이들 동작을 위해 버스 제어기들(126, 138)과의 통신을 수행한다. 예를 들면, CPU1(120, 도 1)을 위한 버스 제어기(126)는 BUSRQST1 신호 라인(140)을 활성하시켜 버스를 요구하며, 버스 조정 논리부(110)는 BUSGNT1 신호 라인(140)을 활성화시켜 버스를 요구하며, 버스 조정 논리부(110)는 BUSGNT1 신호 라인(142) 상에 활성 신호를 제공하여 응답함으로써 버스 제어기(126)가 버스를 사용하도록 허가한다. 이와 유사하게, CPU2(132)를 위한 버스 제어기(138)는 BUSRQST2 신호 라인(144)을 활성화시켜 버스를 요구하며, 버스 조정 논리부(110)는 BUSGNT2 신호 라인(146)을 활성화시켜, 버스 제어기(138)에 버스를 허가한다. 또한 I/O 인터페이스(116)는 버스 마스터가 되고자 하는 I/O 제어기(118)를 위해 대응하는 BUSRQST0 및 BUSGNTO 신호 라인(도시생략)을 이용하여 버스를 제어할 수도 있다.
시스템 버스(102) 상에 설치된 장치들은 실제 장치가 완전한 64 비트 데이터 버스를 이용하지 않더라도 64 비트 전송을 수용한다. 가령, CPU1(120)이 32 비트 데이터 버스를 사용하는 인텔 80486계인 경우, 버스 제어기(126)는 시스템 버스(102)로부터의 64 비트 전송을 수용하여 이 데이터를 CPU1(120)에 대한 32 비트 인터페이스를 제공하는 캐쉬(124)로 보낸다.
CPU 모듈
CPU 모듈(120)은 임의의 속도로 동작하는 임의의 마이크로프로세서 칩 세트일 수 있다. 본 발명의 실시예의 적어도 하나의 CPU는 인텔 80486 또는 호환성 마이크로프로세서이다. 본 발명의 설명과 관련된 나머지 부분에 있어서, CPU1(120)은 독립적인 타이밍을 위한 재원 및 온 보드(ON-board) 수정 발진기를 지원하는 인텔 80486계 CPU인 것으로 간주한다. 본 발명이 시스템의 다른 PU들은 본원에서 상세히 설명하는 바 있는 80486계일 필요는 없다.
버스(104)에 설치된 CPU들은 버스(104)에 대하여 독립적 비동기 타이밍을 가질 수도 있다.
CPU1(120)을 위해서는 구성 정보 그리고 CPU1(120)에 대한 CPU 특정 초기화 및 자체 진단 코드(ISTC)를 포함하는 대응 비휘발성 메모리(123)가 제공된다. 그리고 이하 상세히 설명하는 슬롯 선택 회로(148A)가 CPU1(120)을 위해 더 제공된다. 본 발명의 다른 한 실시예에서, 비휘발성 메모리(123)는 이 분야에서 잘 알려진 바와 같이 프로그램 가능한 판독 전용 메모리(PROM)를 포함한다. 이 실시예에서, CPU1(120)에 대한 캐쉬(124)는 32 바이트 라인 크기(4 버스 사이클 X 8 바이트)의 256 킬로바이트, 투-웨이(two-way), 세트 결합(set-associative), 기입-백 캐쉬(write-back cache)이다. 캐쉬(124)는 설명한 바와 같이 BUSRQST1 신호 라인(140) 및 BUSGN1 신호 라인(142) 상의 신호들에 응답하는 버스 제어기(126)를 통하여 동기식 64 비트 버스(104)와 비동기식 CPU1(120) 간에 인터페이스를 수행한다. 캐쉬(124)는 다중 프로세서 시스템(100)에 대한 캐쉬 일관성(cache coherency)을 유지하기 위해 라이트-백(write-back) 및 기존의 메시(MESI; Modified, Exclusive, Shared, Invalid) 프로토콜을 제공한다. 캐쉬(124)는 64 비트 버스(104)를 위한 64 비트 인터페이스(도시생략), 그리고 80486 프로세서와의 인터페이스를 위한 32 비트 인터페이트(도시생략)를 갖는다. 캐쉬(124) 또는 임의의 다른 캐쉬가 라이트-백 사이클을 발생하면, 캐쉬는 자신의 라이트-백 개시(WBSTRT-) 제어 라인(도시생략)상에 액티브 로우 신호를 할당하여 라이트백 사이클의 개시를 나타낸다.
CPU2(132)는 80486 또는 80386계 CPU일 필요가 없다는 점을 제외하고는 CPU1(120)과 유사하다. CPU2(132)를 위해서 비휘발성 ISTC 메모리(133)가 제공되는데, 이 메모리(133)는 CPU@(132)의 마이크로프로세서에 대한 구성 정보 그리고 ISTC를 저장하고 있다. 또 CPU2(132)는 슬롯 선택 회로(148B)를 가지며, CPU1(120)과 관련된 것들과 유사한 캐쉬(136) 및 대응 버스 제어기(138)를 갖는다. 아울러 시스템에는 CPU들이 더 추가될 수 있으나, 추가되는 CPU들이 반디시 인텔 80486 또는 80386계 CPU들일 필요는 없다.
메모리 모듈
본 발명의 실시예에서, 메모리 모듈(130)은 64 비트 전송을 수용하지만, 반드시 완전한 64 비트 전송(full 64-bit transfer)을 수용할 필요는 없다. 메모리 모듈(130)은 1 메가 x 4 또는 4 메가 x 4 DRAM(dynamic random access memory)들로 구성되는 40 비트 단일-인-라인(single-in-line)메모리 모듈(SIMM)을 포함하는 것이 유리하다. 본 발명의 시스템에서 사용하기에 적합한 10-칩 SIMM의 한 예가 도시바(Toshiba)의 THM401020SG-80이다. 메모리(130)는 1 메가 바이트 x 4 DRAM을 기본 구성으로 하는 SIMM들을 갖는 64 x 4 DRAM을 기본 구성으로 하는 SIMM들을 갖는 256 매거 바이트 RAM(모듈 당 256 메가 바이트)을 지원한다. 본 발명의 실시예의 시스템에는 256 메가 바이트 메모리 모듈이 4개까지 사용될 수 있다. 또한 상기 메모리 모듈(130)은 신뢰성을 위한 에러 정정 코드(ECC) 능력을 갖추고 있다. 그러나, 64 비트 ECC 메모리 상에서의 32 비트 동작 때문에 발생하는 판독-수정-기입 사이클(read-modify-write cycle)을 제거하기 위해, ECC는 32 비트 단위로 수행되고, 64 비트 단위로는 수행되지 않는다. 또, 메모리 모듈(130)은 통상적인 로우(row) 어드레스 선택(RAS), 컬럼 어드레스 선택(CAS), 히든 리후레쉬, 어드레스 멀티플렉싱을 제공하고, 페이지 모드 및 버스트 모드를 지지하는 DRAM 제어기(도시생략)을 구비한다. 따라서 DRAM 제어기는 이 분야에서 잘 알려져 있는 DRAM RAS/CSA 어드레스 멀티플렉서, RAS/CAS 발생 로직, 리후레쉬 카운터들, 페이지-모드/페이지 히트 로직 및 DRAM 어드레스 드라이버들을 포함한다. 상기 DRAM 제어기는 시스템 버스(104) 상에 반송된 외부 클록 신호로부터 메모리 타이밍을 유도한다. 따라서, 상기 DRAM 제어기는 시스템 버스(104)와 동기식으로 동작한다.
본 발명의 실시예에서, 메모리(130)는 또한 64 비트 버스(104)에 대한 대응 버스 인터페이스(131)를 포함한다. 버스 인터페이스(131)는 8 레벨 디프 x 64 비트 폭의 레지스터(8-level deep by 64-bit wide register)를 포함한다. 버스 인터페이스(131)에 대한 패리티 발생 및 검사는 레지스터의 64 비트 버스 상에서 바이트 x 바이트 단위로 수행된다.
또한, 메모리는 메모리(130)에 대한 ISTC를 포함하는 비휘발성 ISTC 메모리(129)를 갖는다.
도 3은 3개의 CPU 즉, 제1 슬롯에 설치된 CPU1(120)과, 제2 슬롯에 설치된 CPU2(132)와, 대응 ISTC 메모리(161) 및 슬롯 선택 회로(148C)와 함께 제3 슬롯에 설치된 CPU3(160)를 갖는 한 실시예를 나타내고 있다. 도 3은 또한 슬롯 선택 회로들(148A, 148B, 148C)과 ISOM(108) 간의 접속을 나타내고 있다. 도 3에 도시 된 바와 같이, CPU1(120)을 위한 슬롯 선택 회로(148A)는 슬롯 선택 신호 라인(SS1, 162)에 의해 ISOM(108)에 접속된다. 이와 유사하게,나머지 2개의 슬롯 선택 회로들(148B, 148C)은 슬롯 선택 신호 라인들(SS2, SS3, 164, 166)을 통해 ISOM(108)에 각각 접속된다. 본 발명의 시스템에 설치된 CPU들 상의 임의의 다른 슬롯 선택 회로들도 ISOM(108)으로부터 제공되는 대응 슬롯 선택 신호 라인을 갖는다. SS1, SS2, 및 SS3 신호 라인들(162, 164, 166) 각각은 각 슬롯 선택 회로(148A, 184B, 148C)용 각 SLOT-SELECT 신호 라인(193, 도 4)에 접속된다. SSn 신호 라인들 상의 신호들은 ISOM(108) 내에 있는 메모리 또는 I/O 맵 형 슬롯 선택 레지스터(도시생략)에 의해 제어된다. 따라서, 본 발명 시스템 내의 CPU들은 메모리 또는 I/O 맵형 레지스터 어드레스로의 판독 또는 기록을 실행함으로써 이들 라인에 대한 신호들을 액세스 하거나 변화 시킬 수 있다. 이들 SSn 신호 라인들은 본원에 설명되는 바와 같이 부트 동작 동안에 사용된다.
슬롯 선택 회로
도 4는 본 발명의 시스템에 설치된 슬롯 선택 회로들(148A, 148B) 및 임의의 다른 CPU에 대한 슬롯 선택 회로들에 대응하는 논리부(148)를 예시하고 있다. 슬롯 선택 논리부(148)는 AND 게이트(172, 174, 176), NAND 게이트(178), EXOR 게이트(180), OR 게이트(182, 183), 타이머(184), 타임 선택 로직(185), 래치(186), 그리고 인버터(188, 189, 190, 192)를 구비한다. 타이밍 회로는 슬롯 선택(SLOT_SELECT) 신호 라인(193), 슬롯 아이디(SLOT_ID)(SIDO, SID1, SID2, SID3) 신호 라인들(194-197), 클록(CLOCK) 신호 라인(200), 클록(CLOCK) 신호 라인(202), 기판 리셋(BD_RESET-) 신호 라인(204), 그리고 CPU 리셋(CPU_RESET-) 신호 라인(206)상의 신호들에 응답한다. 슬롯 선택 회로(148)는 CPU 기판 상의 마이크로프로세서(209)의 리셋 핀에 접속된 RESET- 신호 라인(208) 상에 신호를 제공한다. 또한 슬롯 선택 회로 (148)는 SLOT_ONE 신호 라인(210), SLOT_ONE- 신호 라인(212), SLOT_SELECT- 신호 라인(214), TERM- 신호 라인(216), RUN- 신호 라인(218), SLOT_1_RESET- 신호 라인(220), RUN 신호 랑니(221) 및 STOP- 신호 라인(222)과 같은 다수의 내부 신호 라인들에 응답한다. 이들 신호 라인의 기능은 이후에 추가로 설명한다.
분산된 초기화 기능
시스템 버스(102)를 이용하는 다중 프로세서 시스템(100)에서는 하나 이상의 프로세서 형태가 64 비트 버스(104) 상에 설치되는 경우 다수의 문제점이 야기될 수 있다. 예를 들어 프로세서가 시스템을 부트 하는 것을 결정하는 설비를 갖출 필요가 있는데, 이렇게 하면 디폴트 부트 프로세서가 시스템을 부트 하지 못하는 경우 다른 대체 프로세서(설치되어 있다면)가 부트 동작을 떠맡도록 해서 시스템의 이용도를 향상시킬 수 있을 것이다.
다중 마이크로프로세서 시스템(100)에서 문제점으로서 발생될 수 있는 것이 또 하나 있는데, 그것은 초기화 작업을 위해서 모든 CPU가 중앙 시스템 부트 ROM(150)을 접근할 수 있어야 한다는 것이다. 그러나, 시스템 내에서 각 CPU에 대한 부트 코드는 다를 수 있다. 따라서 프로세서 형태가 변경 될 때, 문제가 발견될 때, 또는 메모리, 캐쉬 및 I/O 특성이 향상될 때 시스템 부트 코트를 변경할 필요가 있다. 또한 많은 프로세서에 대한 부트 코트가 중앙 부트 ROM(150)에 포함되어 있더라도, 새로운 개발이 이루어짐에 따라 부트 ROM의 갱신이 필요할 것이다.
본 발명은 각 CPU, I/O 기판 및 메모리 모듈에 대해 메모리들(즉, ISTC 메모리(123), ISTC 메모리(133) 및 ISTC 메모리(129) 등)을 제공함으로써 이들 문제점을 해결하고 있다. 이들 ISTC 메모리들은 각각의 CPU, I/O 기판 또는 메모리 모듈에 특정한 구성, 그리고 초기화 및 자체 진단 코드(ISTC)(통상적인 파워-온 자체 진단(POST) 및 부트 코드의 초기화 부분)를 저장한다. CPU ISTC 메모리들은 관련된 CPU에 특정한 구성 정보 및 ISTC를 유지한다. 그리고 I/O 기판의 ISTC 메모리들은 관련된 I/O 기판에 대한 주변 구성 정보 및 ISTC를 유지한다. 예를 들면, 메모리(123)는 구성 정보 및 CPU1(120)에 대한 ISTC를 저장하고, 메모리(133)는 구성 정보 및 CPU2(132)에 대한 ISTC를 저장하며, 메모리(129)는 구성 정보 및 메모리 모듈(130)을 진단하고 초기화하기 위한 ISTC를 저장한다. PROM(123, 129, 133) 그리고 임의의 다른 ISTC 메모리들의 각 기억 공간은 각 데이터 및 프로그램을 위해 할당(memory-mapped)되는데, 바람직하게는 광범위한 기억 공간(대략 2 기가 바이트 이상)에서도 어드레스 가능하다. 회로 기판 상에서 각 ISTC 메모리에 맵 되는 정확한 어드레스 위치는 기판이 설치된 슬롯에 따라서 결정된다. 예를 들어, CPU(120) 상의 메모리(123)는 CPU1(120)이 제1 슬롯에 설치되는 경우에 어드레스 위치 D100,0000 헥사데시말(hex)에서부터 어드레스 가능하며, CPU2(132) 상의 메모리(133)는 CPU2(132)버스 상의 제2 슬롯에 설치될 때, 어드레스 위치 D200,0000 헥사데시말(hex)에서부터 어드레스 가능하다.
그러나, 각 회로 기판 ISTC 메모리가 실행 가능한 부트 코드(즉, 32 비트 워드의 인텔 80486계 CPU)를 저장하고 있다면 그리고 ISTC 메모리내에서의 코드를 직접실행을 할 수 있다면, 각 기판은 64 비트 시스템 버스(104)로 ISTC 메모리를 상호 접속시킬 수 있는 데이터 천이 로직(data shift logic)을 필요로 할 것이다. 그러나, 이런 로직은 시스템의 복잡성을 증가시킬 뿐만 아니라 시스템 비용의 상승을 초래한다. 따라서, 본 발명에서는 ISTC 메모리들을 8 비트(1 바이트) 폭으로 하고, 코드의 실행을 위해 직접적으로 접근하는 것을 불가능하게 하였다(즉, ISTC 메모리는 실행 접근이 불가능함). 이 실시예에서, 회로 기판들 상의 ISTC 메모리들에 저장된 기판 특정 코드(board specific code)는 바이트 단위(byte-by-byte)로, 즉 비실행 방식으로 액세스가 가능하다. 따라서, 이 실시예에서, ISTC 메모리들은 시스템 버스(104)의 최하위 바이트(least significant byte)와 인터페이스 한다.
회로 기판이 초기화되고 있을 때, 그 기판에 특정한 ISTC가 부트 프로세서에 의해 관련된 ISTC 메모리로부터 메모리(130)로 이송되어 실행 가능 코드로 조합된다. 바이트 폭의 메모리로부터의 코드를 메모리(130)에서 32 비트 워드들로 변환함으로써 비 실행 코드가 조합되도록 한다.
ISTC 메모리 속의 정보를 시스템 메모리(130) 속으로 조합하는 것에는 바람직하게는 4 바이트(또는 시스템 메모리가 8 바이트 폭이면, 8 바이트)가 레지스터에서 조합될 때까지 버스 인터페이스(131) 내의 레지스터 속으로 정보를, 이 실시예에서는 바이트 단위로, 이동시키는 것이 포함된다. 그 다음에, 상기 레지스터의 내용은 한번의 이송 동작 동안에 시스템 메모리(130)로 이송된다. 이와는 달리, ISTC 메모리들은 바이트 단위로 직접 시스템 메모리 속으로 조합될 수도 있으나, 이렇게 하면 시스템 메모리에 대한 액세스 회수를 증가시키기 때문에 더 많은 시간을 필요로 한다.
이 분야에서 잘 알려져 있는 바와 같이, 통상적인 어드레싱 방식에 따라서 시스템 버스(104) 상의 바이트들을 바이트 어드레싱 하는 것이 가능하다. 예를 들면, 인텔 80386 및 80486은 어드레스 라인 A2(어드레스 중의 세 번째 비트)에서 시작하는 어드레스 라인을 제공하고, 버스 트랜잭션(bus transaction) 동안에 어떤 바이트들이 활성화될 것인 지를 선택하기 위한 4개의 바이트 인에이블 라인들을 제공한다. 전술한 바와 같이, 이 실시예에 있어서, ISTC 메모리들은 1 바이트 폭이며, 시스템 버스(104)의 최하위 바이트에 대한 인터페이스를 수행한다. 따라서, 바이트 인에이블 라인들은 ISTS 메모리로부터 메모리(130)로 이송되면서 액티브 될 때 최하위 바이트를 선택하며, 시스템 버스(104)의 나머지 7 바이트 상의 데이터는 무시된다.
그러나, 본 발명의 또 다른 실시예에서, ISTC 메모리들은 1 바이트 폭 이상이 될 수 있다. 시스템 버스(104)에 대한 ISTC 메모리 인터페이스의 폭은 ISTC 메모리의 구성 정보와 함께 ISTC 메모리 내에 저장된다. 따라서, 시스템이 ISTC 메모리로부터 메모리(130)로 어떻게 정보를 이송할 것인가를(즉, 정보 이송 방법을) 결정할 수 있다.
ISTC 메모리들을 적절히 액세스 하기 위해서, 이들 ISTC 메모리의 어드레스 라인들이 A3 이상의 시스템 어드레스 라인들(여기서, A0는 시스템 어드레스 라인들의 최하위 비트임에 접속된다. 이렇게 함으로써, 시스템 어디레스 라인 상의 어드레스가 8만큼 증가하면 ISTC 메모리는 어드레스 라인 A3 상에서 1이 증가한 것으로 검출한다. 그리고, 바이트 인에이블 라인은 시스템 버스(104) 상에서 어떤 바이트들이 활성 상태인가를 식별하는데 사용된다.
가령, 시스템 버스(104)에 대한 ISTC 메모리 인터페이스가 2 바이트 폭을 갖고 있으면, 실행을 위해 ISTC 메모리로부터 시스템 메모리(130)로 정보를 이송시키는 소프트웨어는 매 이송 동작 동안 단일 바이트를 이송하는 것이 아니라 한번에 2 바이트를 이송한다. 바이트 인에이블 라인은 각 이송 동작 동안 시스템 버스(104)상에서 활성화된 2개의 최하위 바이트를 선택하는데 사용된다.
ISTC가 일단 메모리 내에서 조합되면, 상기 ISTC는 그에 대응하는 CPU에 의해 실행되거나, 혹은 상기 ISTC가 어떤 메모리 모듈 또는 I/O 회로 기판에 대응하는 경우에는 부트 CPU에 의해 실행된다.
그러나, 어떤 프로세서가 시스템을 제어하고 있을 때까지는, 시스템을 부트하려고 시도하는 어떤 CPU도 ISTC 메모리로부터의 비 실행 코드를 액세스 할 수 없다. 따라서, 시스템을 부트 할 수 있는 임의의 CPU가 접근할 수 있는 중앙 부트 ROM이 필요하게 된다. 본 발명의 실시예에서, 중앙 시스템 부트 ROM(150)은 모든 프로세서들에 의해 접근 가능하며, 운영 체제(operating system)에 의해 사용될 수 있는 종래의 DOS BIOS CALL 코드는 몰론 인텔 80X86을 실행할 수 있는 부트 코드를 저장하고 있다. 따라서, 본 발명의 실시예에서, 부트 CPU는 인텔 80X86 호환성 프로세서(예컨대, 인텔 80486)계에 바탕을 두고 있다. ISOM(108)은 전체 시스템에서 반드시 필요로 하는 회로 기판이기 때문에, 부트 ROM(150, 도 2)은 중앙 시스템 부트 코드를 제공함과 아울러 종래의 DOS BIOS 코드를 포함한다.
파워-업 리셋 동안 디폴트 부트 CPU(설명의 편의상 CPU1(120)인 것으로 가정함)가 시스템 부트 ROM(150)으로부터의 코드를 실행한다(이 코드는 인텔 80X86용인데, 이것이 바로 이 실시예에서 부트 CPU로서 80X86계 CPU가 채용되고 있는 이유이다). 전술한 바와 같이, 각 CPU와 관련된 ISTC 메모리는 ISTC 코드 및 CPU에 대한 구성 정보를 포함한다. 따라서, 부트 CPU는 각 슬롯에 대해 ISTC 메모리에 할당된 메모리 위치(즉, 제1 슬롯에 대해 D100,0000 헥사, 제2 슬롯에 대해 D200,0000 헥사 등)를 판독함으로써 얼마나 많은 CPU들이 버스(104) 상에 존재하는가를 판단한다. 슬롯이 CPU를 포함하면, 부트 CPU가 슬롯에 설치된 CPU의 형태에 대한 정볼ㄹ 받게 된다.
그 다음에 CPU1(120)이 시스템 내의 첫 번째 메가 바이트의 메모리를 검사 하고 메모리(152)의 CMOS 부분에 "체크-인-워드(check-in-word)"를 설정한다. 일단, 상기 첫 번째 메가 바이트 메모리(123)의 무결성(또는 보전성)이 판명되면, CPU1(120)은 자신의 ISTC 메모리(123)로부터 자신의 ISTC를 바이트 단위로 메모리 속으로 복사하여 32 비트 워드 단위로 수행 가능한 형태로 조합한 후 자신의 ISTC의 수행을 개시한다. CPU1(120)이 초기화되면, 상기 CPU1(120)은 메모리(152)의 CMOS 부분 내의 상기 체크-인-워드 란에 기입하는 것에 의해 자신이 "IN"인 것으로서 체크 한다.
CPU1(120)이 "IN"으로 체크 된 후에, 상기 CPU1(120)은 ISTC 메모리로부터 메모리(130)로 ISTC를 복사하여 ISTC를 실행하고 메모리(152)의 CMOS 부분에 메모리 구성 완료 테이블/메모리 굿 테이블(a memory configured/memory good table)을 생성한다.
메모리 모듈(130)이 구성되면(그리고 시스템에 설치된 임의의 다른 메모리 모듈들이 구성되면) CPU1(120)은 적당한 ISTC 메모리들로부터 ISTC를 시스템 버스(104) 상에 설치된 I/O 제어기들로 이송하여 실행한다. 이어서, CPU1(120)은 다음 CPU(여기서는 CPU2(132)인 것으로 가정함)에 관련된 ISTC 메모리(CPU2(132)를 위한 메모리(133))로부터 다음 CPU(CPU2(132))용 ISTC를 메모리(130)로 이송하여, 상기 CPU2(132)로 하여금 리셋 상태에서 빠져 나오도록 하여 자신의 ISTC를 실행하도록 한다. 자체 진단 및 초기화가 성공적으로 완료된 후에는 CPU2(132)가 "IN"을 체크한다.
시스템 내의 각 CPU가 자신의 ISTC를 실행하여 "IN"을 체크 하고 나면, CPU1(120)이 시스템을 다시 제어해서 운영 체제 부트 처리를 시작한다.
시스템 내의 하나 또는 그 이상의 CPU들이 인텔 80X86계 CPU가 아니면, 이들 CPU들을 위한 ISTC 메모리들이 이들 CPU들에 적당한 구성 정보 및 ISTC 만을 유지하는 것이 아니라, 그들에 대한 전체 부트 코드를 유지해야 할 것이다.
부트 처리의 각 단계의 시간은 제한된다. 이로써, 어떤 장치의 초기화 및 체크-인을 위해 할당된 시간이 초과하는 경우에는 그 장치가 기능 불능 상태인 것으로 판정하며 그 장치를 디스에이블 상태로 만든다. 이때에는, 나머지 하드웨어가 부트 처리를 완료하려고 시도한다. 다수의 CPU들이 시스템에 설치되어 있을 때, 디폴트 부트 프로세서가 부트 하는데 할당된 시간을 초과하는 경우에는(디폴트 부트 프로세서의 고장시), 이하 기술하는 바와 같이, 다른 대체 부트 프로세서가 부트 동작을 떠맡을 수 있다.
다른 부트 프로세서 기능
다중 프로세서 환경에서, 신중하게 결정해야 하는 것 중의 하나는 '어느 프로세서로 하여금 시스템을 부트 하도록 할 것인가' 이다. 더욱이, 하나의 프로세서가 고장인 경우 그 기능 상실의 프로세서를 디스에이블 상태로 만들고 다른 대체 프로세서로 하여금 시스템을 부트 하도록 하면 시스템의 이용도가 향상된다. 이와 같이, 다수의 CPU들이 동일한 버스에 접속되어 있는 채로 시스템이 자동적으로 부트 되도록 제어하는데는 문제점이 있다. 그 이유는 적어도 하나의 CPU가 시스템을 동작시키고 있는 동안까지는 어떤 마이크로프로세서로도 손쉽게 다른 프로세서들을 감사할 수 없기 때문이다.
따라서, 본 발명에서는 버스 상의 각 CPU가 슬롯 선택 논리부(148)(도 4)를 포함하고 있다. 일반적으로, 파워-업 또는 시스템 리셋 시에는 각 CPU에 대한 슬롯 선택 논리부(148)로 회로 기판이 설치되는 슬롯에 따른 타임-아웃 카운트(a time-out count)가 로드 된다. 각 슬롯 접속기는 4개의 회로 연결부들(four hard connections)을 갖는데, 이들 연결부는 슬롯에 설치된 회로 기판용 신호 라인들(194-197) 상에 4 비트 식별 코드(슬롯 ID)를 위한 신호들을 제공한다. SLOT-ID 신호 라인(194-197) 상의 신호들은 슬롯 선택 논리부(148)가 설치되는 슬롯에 할당된 타임-아웃 주기에 대응하는 타임아웃 선택 로직(185)으로부터의 소정의 타임아웃 주기를 선택한다. 슬롯 선택 로직(148A)에 대한 타임-아웃 주기는 슬롯 선택 로직(148B) 및 다른 슬롯 선택 로직들에 대한 타임아웃 주기보다도 작은 값이다. 타임 선택 로직(185)은 프로그램 가능 논리 배열(a programmable logic array: PLA) 또는 판독 전용 메모리(ROM)를 구비하는데, 이 PLA 또는 ROM은 각 슬롯에 대응하는 프로그램 된 타임아웃 값들을 갖는다. 일반적으로, 디폴트 부트 CPU 상의 슬롯 선택 논리부(148)는 그 CPU로 하여금 부트 동작을 수행하도록 한다. 슬롯 선택 논리 회로들(148) 중에서 다른 슬롯들에 설치된 나머지 회로들은, 해당 CPU에 대해 소정의 타임아웃 주기가 만료 될 때까지 또는 부트 CPU가 성공적으로 시스템을 부트 한 다음 다른 슬롯들에 있는 CPU들을 활성화시킬 때까지, 관련 CPU들을 리셋 상태로 유지시킨다.
디폴트 부트 CPU가 타임-아웃 될 때가지 성공적으로 부트 하지 못하면, 상기 부트 CPU의 슬롯 선택 논리부(148)는 상기 부트 CPU를 디스에이블 시켜서 상기 디폴투 부트 CPU가 리셋 상태로 되게 한다. 그러면 다음 CPU(이 순서는 슬롯 식벽에 따라 결정됨)가 타임-아웃 되어서 리셋 상태로부터 빠져 나오고 대체 부트 프로세서로서 시스템을 부트 하려고 시도한다. 대체 부트 프로세서들은 디폴트 부트 프로세서와 같은 형태의 프로세서들(예를 들어, 양호한 실시예에서, 대체 부트 프로세서들은 호환 가능한 인텔 80486)이며, 이로써 대체 프로세서들은 중앙 부트 ROM(150)에 있는 부트 코드를 실행할 수 있다. 대체 프로세서 부트 동작에는 대체 부트 프로세서가 슬롯에 설치된 CPU들 중에서 자신보다 작은 수(즉, 타임아웃 주기)를 갖는 CPU들을 디스에이블 시키는 것도 포함된다. 만일 어떤 시스템을 부트 할 기회가 주어지며, 이 CPU가 여전히 부트에 실패할 경우 시스템 부트 기회는 또 다른 대체 프로세서에게로 넘겨지게 될 것이다.
시스템에 설치된 CPU들이 결국은 부트 되었지만 하나 또는 그 이상이 체크-인 하는데 실패한 경우, 부트 CPU는 체크-인 하지 못한 CPU들을 디스에이블 시킨다.
디폴트 부트 프로세서로서 제1 슬롯에 설치된 CPU1(120)과 대체 부트 프로세서로서 제2 슬롯에 설치된 CPU2(132)와 관련해서 슬롯 선택 논리부(148)에 대해 상세히 기술한다. CPU1(120)을 위한 슬롯 선택 회로(148A)와 CPU2(132)를 위한 슬롯 선택 회로(148B)는 서로 동일하지만, 상기 회로들(148A, 148B)은 그들이 어떤 슬롯에 설치되어 있는지에 따라서 약간의 다른 기능들을 제공한다.
제1 슬롯에 설치
본 발명의 실시예에서, 제1 슬롯은 디폴트 부트 CPU를 포함한다. 따라서 제1 슬롯 내의 CPU1(120)이 제일 먼저 시스템을 부트 하도록 허용된다. 제1 슬롯에 설치된 슬롯 선택 로직(184A)의 일반적인 기능은 CPU1(102)으로 하여금 시스템 부트 동작을 수행하도록 하는 것이다. 그러나, CPU1(120)이 적절히 부트 하지 못하면, 슬롯 선택 로직(148A)이 CPU1(120)을 디스에이블 시키고 다음에 상세히 설명되는 바와 같이 제어는 시스템 내의 다음 CPU(도시된 실시예에서, 제2 슬롯 내의 CPU2(132)로 자동적으로 점겨진다.
SLOT_ONE 신호 라인(210), SLOT_SELECT 신호 라인(193) 및 TERM- 신호 라인(216)은 슬롯 선택 로직(148A)을 위한 주제어 신호들을 전송한다. 그리고 상기 로직(148A)의 출력 신호는 RESET- 신호 라인(208, 제4도) 상의 리셋 신호이다. 제1 슬롯에 설치된 회로 기판들을 위한 SLOT_SELECT 신호 라인(193), TERM- 신호 라인(216) 및 SLOT_ONE 신호 라인(210) 상의 신호 레벨들의 조합을 변화시키기 위한 리셋 신호들의 값이 아래 표1에 제시되어 있다. 제2 내지 제8 슬롯에 설치된 회로 기판들에 대한 대응 값들은 표2에 제시되어 있다.
[표 1]
제1 슬롯
표1의 제1 행에 나타낸 바와 같이, 회로 기판 리셋(BOARD RESET) 행에서, 타이머(184)로부터의 SLOT_SELECT 신호 라인(193) 및 TERM- 신호 라인(216)은, 회로 기판이 설치되는 슬롯에 관계없이, 모두 하이 레벨로 된다. 제1 슬롯에 설치된 회로 기판에 대해, SLOT_ONE 신호 라인(210) 또한 하이 상태로 되는데, 이는 AND 게이트(174)가 인버터(190, 191, 912)와 결합하여 신호 라인(194-197) 상의 슬롯 ID를 디코더 하여 SLOT_ONE 신호 라인(210) 상에 활성 신호를 생성하기 때문이다. SLOT_ONE 신호는 인버터(188)에 의해 반전되며 그 결과 SLOT_ONE- 신호 라인(212)상에는 로우 신호가 발생된다. SLOT_SELECT 신호 라인(214) 상의 하이 신호는 인버터(190)에 의해 반전되어 SLOT_SELECT 신호 라인(214) 상에 로우 신호를 발생시킨다.
SLOT_SELECT 신호 라인(193)의 기능은 타이머 출력에 따른 제1 슬롯내의 슬롯 선택 회로(148A)에 따라 변한다. 타이머가 작동하는 동안, SLOT_SELECT 신호 라인(193) 상의 신호는 슬롯 선택 회로(148A)에 어떤 영향을 미치지 못한다. 타이머가 운행을 중지하면 SLOT_SELECT 신호 라인(193) 상에 슬롯이 인에이블 되었음을 나타내는 로우 신호를 발생하고 하이 신호로 제1 슬롯 상의 CPU1(120)를 디스에이블 시킨다.
BD_RESET- 신호 라인(204)이 활성화되는 동안 BD_RESET- 신호 라인(204) 상의 활성 신호로 마이크로프로세서(209 제4도)에 리셋 신호를 제공하는 RESET- 신호 라인(208)에 접속된 OR 게이트(182)가 작동하므로 시스템 내의 회로 기판이 리셋 상태로 유지된다.
또한, 활성화되는 BD_RESET- 신호 라인(204)은 타임 선택 논리(185)로부터의 타임아웃 값을 타이머(184) 속에 로드 하고, RUN- 신호 라인(218) 상에 로우 신호 그리고 RUN 신호 라인(221) 상에 하이 신호를 발생시키는 래치(186)를 클리어 한다. RUN- 신호 라인(218) 상의 로우 신호는 BD_RESET- 신호 라인(204)이 비활성 상태로 될 때 타임 선택 로직(185)에 제공되는 값으로부터 계수를 시작하도록 타이머(184)를 인에이블 시킨다. 타이머(184)는 래치(186)가 RUN- 신호 라인(218) 상에 하이 신호를 발생시킬 때까지 계속해서 작동한다. 이러한 현상은 AND 게이트(172)가 활성화되거나, 또는 래치(186)의 프리셋 입력에 접속된 STOP- 신호 라인(222)이 활성화되는 경우 발생한다. 이 점에 대해서는 이하 상세히 설명한다.
카운트 다운(count-down) 하는 타이머가 최종 카운트 값 제로(0)에 이르면, TERM- 신호 라인(216) 상의 신호는 하이로 된다. TERM- 신호 라인(216) 상의 신호가 하이 레벨 이면 AND 게이트(176)가 비활성된다. 그러나, 이때 SLOT_SELECT- 신호 라인(214) 및 SLOT_ONE- 신호 라인(212)이 로우 신호를 반송하므로, SLOT_SELECT- 신호 라인(214) 상의 신호가 하이 상태로 되기 전에 타이머(184)가 제로에 도달하면(CPU1(120)이 부트 하지 못함), 타이머가 제로에 도달할 때 활성화되는 TERM- 신호 라인(216) 상의 신호가 AND 게이트(176)를 활성화시켜 SLOT_SELECT- 신호 라인(220) 상에 로우 신호를 제공한다.
SLOT_SELECT- 신호 라인(214) 상의 로우 신호는, OR 게이트(182)를 활성화시켜 RESET- 신호 라인(208) 상에 로우 신호를 발생시키며, 마이크로프로세서(209)를 리셋 상태로 유지한다(즉, 회로 기판을 디스에이블 하기 위해).
TERM- 신호 라인(216) 상의 활성 신호는 OR 게이트(183)를 활성화하여 STOP- 신호 라인(222) 상에 활성 신호를 발생시킨다. STOP- 신호 라인(222) 상의 활성 신호는 래치(186)에 대한 프리셋 접속을 하도록 하여 타이머(184)를 정지시킨다. 이로 인해, 래치(186)는 RUN- 신호 라인(218)을 하이 상태로 되게 하여 타이머(184)의 작동을 정지시키며, STOP- 신호 라인(222) 상에 활성 신호를 발생하도록 OP 게이트(183)를 활성화시키는 RUN 신호 라인(221)을 로우 상태로 되게 한다. 이것이 다른 회로 기판에 대한 리셋이 BD_RESET- 신호 라인(204)상에 표시될 때까지 래치(186)가 RUN- 신호 라인(218)을 활성시키는 것을 방지한다. 신호들은 표1의 FALL 행에 표시되어 있는 바와 같이 안정성을 갖는다.
SLOT_ONE 신호 라인(212) 상의 신호가 로우 상태로 있기 때문에, NAND 게이트(178)는 신호 라인(179) 상의 하이 신호에 의해 비활성 상태로 유지된다. 따라서, 이와 같이, 제1 슬롯에 회로 기판이 설치되는 경우에는 NAND 게이트(178)로부터의 신호가 OR 게이트(182)의 동작에 아무런 영향을 끼치지 않는다. 따라서, BD_RESET- 신호 라인(204) 및 CPU_RESET- 신호 라인(206)이 비활성 상태로 있는한, SLOT_1_RESET 신호 라인(220) 상의 AND 게이트(176)로부터의 신호가 OR 게이트(182)를 제어한다.
CPU1(120)이 적절히 부트 하면 앞에서 설명한 바와 같이, CPU1(120)메모리 또는 IOSM(108) 내의 I/O 맵 슬롯 선택 레지스터에 대한 기입 동작을 통해 ISOM(108)으로부터의 SS1 신호 라인(162)의 레벨을 변화시킨다. SS1 신호 라인(162)은 슬롯 선택 회로(184A)에 대한 SLOT_SELECT(SS) 신호 라인(193)에 접속한다. SS1 신호 라인 상에서의 레벨의 변화로 인해 SLOT_SELECT 신호 라인(193)은 로우 레벨로 되고, SLOT_SELECT- 신호 라인(214)은 하이 레벨로 된다. 타이머(184)가 제로에 도달될 때 TERM- 신호 라인(216)이 활성화되면 SLOT_SELECT- 신호 라인(214) 상의 레벨로 되기 때문에 AND 게이트(176)가 활성화되는 것이 방지된다. 이와 같이, CPU1(120)이 적절히 부트 될 때 TERM- 신호 라인(216)이 활성화되는 경우라도 SLOT_SELECT- 신호 라인(220), OR 게이트(182), 그리고 RESET- 신호 라인(208)은 비활성 상태로 남는다.
제1 슬롯에 있는 CPU1(120)이 부트 된 후에도 타이머는 TERM- 신호 라인(216)D을 활성화시키기 위해 계속해서 타임아웃 한다. TERM- 신호 라인(216)상의 활성 신호로 OR 게이트(183)가 활성화되어 STOP- 신호 라인(222) 상에 활성 신호를 발생시키므로 타이머는 제로에서 정지한다. 활성 신호 라인인 STOP- 신호 라인(222)은 래치(186)를 프리셋 하여 RUN- 신호 라인(218)상에 하이 신호가 발생되도록 하는데, 이로써 타이머(184)의 동작은 정지되고 그리고 타이머의 TERM- 신호 라인(216)이 활성 상태로 유지된다. 따라서, 제1 슬롯에 설치된 CPU1이 적절이 부트하는 경우, 슬롯 선택 로직은, AND 게이트(176) 및 OR 게이트(182)가 비활성화 됨에 따라, 안정 상태로 된다. 그 결과, 신호 라인(208)은 비활성화 상태로 되고 상기 프로세서는 리셋 상태로 유지되지 않는다. 안정 신호들(stable signals)은 표1에 있는 "RUN" 행에 표시되어 있다.
표1의 RUN 행에 표시되어 있는 상태를 근거로 할 때, ISOM(108)은, 슬롯 선택 회로 (148A)의 SLOT_SELECT 신호 라인(193)에 접속된 대응 SS1 신호 라인(162)을 활성화 시킴으로써, CPU1(120)을 리셋 시킬 수 있다. SLOT_SELECT 신호 라인(193) 상의 활성 신호는 CPU1(120)을 리셋 시킬 수 있다. 그 이유는 SLOT_SELECT- 신호 라인(214) 상의 대응 활성 신호가 AND 게이트(176)를 활성화시킴으로써(이때, TERM- 신호 라인(216)이 및 SLOT_ONE- 신호 라인(212)도 활성화 상태로 됨) OR 게이트(182)를 활성화시키는 SLOT_1_RESET- 신호 라인(220)이 활성화되기 때문이다. 상기 신호들은 표1의 "SHUT DOWN"행에 표시된 바와 같이 안정하다.
제1 슬롯에 설치된 CPU1(120)과 관련하여, AND 게이트(172)는 비활성 상태로 되며, AND 게이트(172)가 활성 상태로 되지 않도록 SLOT_ONE- 신호 라인(212)이 로우 상태로 되기 때문에 슬롯 선택 로직(1148A)의 동작에 어떤 영향을 미치지 않는다.
제2 슬롯 내지 제8 슬롯에 설치
제2 슬롯 내지 제8 슬롯의 어느 곳에나 설치되는 슬롯 선택 로직(148)의 일반적인 기능은, 이전 슬롯에 설치된 CPU가 부트 하기에 충분한 (미리 결정된) 시간을 가졌다고 판정될 때가지 대응 CPU를 리셋 상태로 유지하는 것이다. 바꾸어 말하면, 제2 슬로에 설치된 CPU2(132)에 대해, 슬롯 선택 로직(148)은 CPU1(120)이 부트 할 수 있는 충분한 시간이 경과될 때까지 CPU2(132)를 리셋 상태로 유지한다. CPU1(120)이 할당된 시간 내에 부트 동작을 완료하지 못하면 CPU2(132)가 CPU1(120) 대신에 대체 부트 프로세서로서 디폴트 부트 동작을 떠맡는다. CPU1(120)이 적절히 부트 하지 못하면 CPU2(132)가 부트 프로세서로서 동작수행을 떠맡기보다는 하나의 부가적인 프로세서(an additional processor)로서 체크-인 한다.
이하에 첨부한 표2는 TERM- 신호 라인(216), SLOT_SELECT 신호 라인(193) 및 SLOT_ONE 신호 라인(210) 상의 신호들의 다양한 조합에 따른 RESET- 신호 라인 (208) 상에서의 신호들의 값을 나타낸다. 제2 내지 제8 슬롯에 대한 슬롯 선택 로직(148)의 기능은 버스(104)의 제2 스롯 내의 CPU(132)와 관련하여 설명한다.
[표 2]
제2 슬롯 내지 제8 슬롯
회로 기판의 리셋 시, BD_RESET- 신호 라인(204) 상의 활성 펄스는 라인(194-197) 상의 제2 슬롯의 4비트 슬롯 ID에 대응하는 타임 선택 로직(185)으로부터의 값을 타이머(184)로 로드 하고 이로써, 제1 슬롯에 대한 설명에서와 같이, 타이머(184)는 작동하기 시작한다. 타이머(184)에 로드 된 슬롯 ID 값은 제1 슬롯에 대한 값보다 크며, 제1 슬롯에 있는 CPU1(120)이 초기화 동작을 수행할 수 있을 만큼의 충분한 시간을 갖도록 미리 선택된다.
회로 기판의 리셋 시, 표2에 도시한 바와 같이, SLOT_SELECT 신호 라인(193)은 하이 이나, 인버터(189)에 의해 반전되어서 SLOT_SELECT- 신호 라인(214) 상에서는 로우 레벨로 된다. TERM- 신호 라인(216)은 타이머(184)가 활성화 상태이므로 하이 이다. TERM- 신호 라인(216) 상의 하이 신호 및 SLOT_SELECT- 신호 라인(214) 상의 로우 레벨은 NAND 게이트(178)에 접속된 단일 라인(181) 상에 하이레벨을 발생하는 EXOR 게이트(180)를 활성화시킨다. 단일 라인(181) 및 SLOT_ONE- 단일 라인(212) 상의 하이 레벨 신호들은 조합되어서 단일 라인(179) 상에 활성 신호를 발생시키는 NAND 게이트(178)를 활성화시킨다. 신호 라인(179) 상의 활성 신호는 RESET- 신호 라인(208) 상에 활성 신호를 발생시켜 CPU2(132)를 리셋 상태로 유지하도록 OR 게이트(182)를 활성화시킨다.
제2 슬롯의 CPU2(132)에 대해, SLOT_ONE 신호 라인(210)은 인버터(190, 191, 192)와 결합된 AND 게이트(174)가 CPU2(132)가 제2 슬롯에 설치되었다는 것을 나타내는 단일 라인(194-197) 상에서 정확한 슬롯 ID를 검출하지 못하기 때문에 비활성 상태이다. 이와 같이, SLOT_ONE- 신호 라인(212)은 SLOT_ONE- 신호 라인(212) 상의 비활성 신호가 인버터(188)에 의해 역전되어 SLOT_ONE- 신호 라인(212) 상에 하이 신호를 발생하기 때문에 하이 상태로 된다.
제2 의 슬롯의 CPU2(132)을 위한 타이머(184)가 타임아웃 되기 전에 제1 슬롯의 CPU1(120)이 적절히 부트 되면, CPU2(132)를 위한 타이머(184)의 카운트 동작은 수행되지 않게 되고 RESET- 신호 라인(208)이 비활성화 되어 CPU2(132)가 부트 되도록 한다. 이 신호들은 표2의 "RUN" 행에 표시된 바와 같이 안정화를 이루고 있다.
CPU(120)이 적절히 부트 될 때 슬롯 선택 회로(148B)에 대한 SLOT_SELECT 라인(193)에 접속되는 IOSM(108)의 SS2 신호 라인(164)의 레벨을 변화 시키기 때문에 타이머가 정지한다. 이러한 결과로 인해 SLOT_SELECT- 신호 라인(214)은 하이 신호로 된다. SLOT_SELECT- 신호 라인(214) 상의 하이 신호, SLOT_ONE- 신호 라인(212) 상의 하이 신호, TERM- 신호 라인(216) 상의 하이 신호가 AND 게이트(172)를 활성화하도록 조합되어 래치 (186)로의 입력 동안 하이 신호를 발생시킨다. CLK 신호 라인(202) 상의 펄스로 인한 하이 신호가 래치(186)를 통해 RUN- 신호 라인(218)으로 전파됨으로써 타이머(184)를 정지시킨다. 이 결과 OR 게이트(183)는 STOP- 신호 라인(222)을 활성화시키는 RUN 신호 라인(221)을 로우로 되게 한다. STOP- 신호 라인(222) 상의 활성 신호는 RUN- 신호 라인(221)을 하이로 하고 RUN 신호 라인(221)을 로우로 유지하도록 래치(186)를 프리셋 한다. 따라서, TERM- 신호 라인(216) 상의 신호는 타이머가 타임아웃 되지 않기 때문에 하이로 남는다.
SLOT_SELECT 신호 라인(193) 상의 로우 신호가 인버터(189)에 의해 역전되어 SLOT_SELECT- 신호 라인(214) 상에서 하이 레벨로 되기 때문에 RESET- 신호 라인(208)은 비활성 상태로 된다. TERM- 신호 라인(216) 및 SLOT_SELECT- 신호 라인(214) 상의 하이 신호는 EXOR 게이트(180)가 비활성화되도록 조합시켜 신호 라인 (181) 상에 비활성 로우 신호를 발생시킨다. EXOR 게이트(180)로부터의 한 라인(181) 상의 비활성 신호는 NOR 게이트(182)를 비활성시키도록 신호 라인(179)에 비활성 신호를 발생시키는 NAND 게이트(178)를 비활성시킨다. NOR 게이트(182)는 CPU2(132) 마이크로프로세서가 리셋 상태로부터 빠져 나와서 전술한 바와 같이 자체를 초기화하도록 하는 비활성 신호를 RESET- 신호 라인(208) 상에 발생시킨다.
제2 슬롯의 타이머(184)가 타임아웃 되기 전제 제1 슬롯의 CPU(120)가 부트 되지 않으면(SLOT_SELECT 신호 라인(193)의 레벨의 변화, 즉 하이에서 로우의 변화에 의해 적절한 비트가 표시된), CPU2(132)가 리셋 상태로부터 빠져 나와 다른 부트 CPU로 하여금 시스템을 부트 하려고 한다.
TERM- 신호 라인(216)은 타이머(184)가 타임아웃 될 때 활성화된다. 부트 하지 못하는 CPU1(132)이 SLOT_SELECT 신호 라인(193)의 레벨을 변화시키지 못하기 때문에, 상기 SLOT_SELECT 신호 라인(193)은 하이 상태로 남는다. TERM- 신호 라인(216) 상의 활성 신호(로우 신호) 및 SLOT_SELECT- 신호 라인(214) 상의 로우 신호는 NAND 게이트(178)를 비활성화하도록 신호 라인(181) 상에 비활성 신호를 발생시키는 EXOR 게이트(180)를 비활성화시킨다. 비활성 NAND 게이트(178)는 OR 게이트(182)를 비활성하여 RESET 신호 라인(208) 상에 비활성 신호를 발생시키도록 하는 비활성 신호를 신호 라인(179) 상에 제공한다. 따라서, CPU2(132)는 리셋 상태로부터 빠져 나와 CPU1(120) 대신에 부트 동작을 떠맡는다. SLOT_SELECT 신호 라인(193)의 레벨을 체크 함으로써, CPU2(132)는 CPU1(32)이 부트 하지 못했는지 그래서 자신(CPU2(132))이 현재 부트 CPU인 지를 판단한다. CPU2(132)가 적절히 부트하면, 표2의 "ALT BOOT"로 표시된 바와 같이 신호들이 안정화된다.
SLOT_SELECT 신호 라인(193) 상에서의 신호의 기능 레벨은 제2 슬롯에 설치된 슬롯 선택 로직(148B)을 위한 타이머(184)의 출력에 따라 변한다. 타이머가 작동하는 동안, SLOT_SELECT 신호 라인(193) 상의 로우 신호는 타이머를 프리즈(freeze) 상태로 만들고, 제2 슬롯이 인에이블 상태임을 나타내며, SLOT_SELECT 신호 라인(193) 상의 하이 신호는 제2 슬롯을 디스에이블 한다. 타이머(184)가 운행을 정지했을 때, SLOT_SELECT 신호 라인(193) 상의 로우 신호는 제2 슬롯이 디스에이블 상태임을 나타내고, 하이 신호는 제2 슬롯이 인에이블 상태임을 나타낸다. CPU2(132)가 부트 하지 못하는 경우, SLOT_SELECT 신호 라인(193) 상의레벨이 하이에서 로우로의 변화가 발생하는 것은 제3 슬롯의 CPU3(160)에 대한 타이머(184)가 타임아웃 되고 시스템을 부트 하기 시작하기 때문이다. CPU3(160)가 부트 동작을 개시하면, ISOM(108) 내의 SS2 신호 라인(164)의 레벨을 로우 레벨로 변화시킴으로 인해 CPU2(132)를 디스에이블 시킬 수 있다.
이와 같이, 어떤 CPU들이 시스템을 부트 하는 것에 관계없이, 그들이 초기화 하기 시작하는 어떤 시간에서도 부트 CPU는 다른 CPU들을 타임아웃 시킬 수 있다. 그렇지 않으면, 부트 CPU는 SLOT_SELECT 신호 라인(193)을 사용해서 다른 CPU들이 타임아웃 되기 전에 다른 CPU들을 인에이블 시킬 수 있거나, 또는 부트 CPU가 대응 SLOT_SELECT 라인(193)을 토글링 함으로써 임의의 또는 모든 CPU들의 타이머를 디스에이블 할 수 있음과 아울러 대응 CPU들을 리셋 상태로 유지할 수 있다.
따라서, 제1 슬롯의 CPU(120)가 적절히 부트 되진 못하면, 제2 슬롯의 CPU2(132)가 부트 동작을 떠맡으며, 슬롯 선택 회로(148B)의 타이머(184)는 동작을 정지하고 TERM- 신호 라인(216) 상의 신호는 활성 상태로 된다. 전술한 바와 같이, CPU2(132)가 인에이블 되는 점에서 표시되는 SLOT_SELECT 라인(193) 상의 레벨은 하이로 남게 된다. SLOT_SELECT 라인(193) 상의 레벨이 로우로 변화되면 SS2 신호 라인(164)의 IOSM(108)에 의해 구동 CPU2(132)가 부트 동작을 완료하는데 할당된 시간 내에서 CPU2(132)가 시스템을 부트 하지 못함을 나타낸다. 그러면 CPU2(132)는 리셋 상태로 들어가는데, 그 이유는 신호 라인(181) 상에 활성 신호를 발생하도록 TERM- 신호 라인(216) 상의 활성 신호가 EXOR 게이트(180) 내의 SLOT_SELECT- 신호 라인(214) 상에서 새로운 하이 신호와 결합하기 때문이다. 신호 라인(181) 상의 활성 신호는 NAND 게이트(178)는 OR 게이트(182)를 활성화하도록 신호 라인(179) 상에 활성 신호를 제공하여 CPU2(132)의 마이크로프로세서를 리셋 상태로 유지시킨다. 따라서, 신호들은 표2의 "FALL" 행에 표시된 바와 같이 안정되게 된다.
지금가지 본 발명의 양호한 실시예를 상술하였으나, 본원 기술 분야에 숙련된 자라면 본 발명의 영역을 벗어나지 않는 범위 내에서 여러 가지 수정 및 변형이 가해질 수 있음을 알 수 있을 것이며 본 발명의 영역은 다음에 첨부되는 특허 청구의 범위의 범위로만 제한되게 된다.
본 발명에 따른 다중 프로세서 시스템에서는 각 회로 기판의 비휘발성 메모리에 직접적인 실행이 불가능한 형태의 각 회로 기판에 특정한 저장 구성 정보, 초기화 자체 진단 코드 및 부트 코드가 저장되고, 초기 부트 프로세서가 필요로 하는 부트 코드의 실행 가능 부분이 중앙 접근시 비휘바성 메모리(152)에 저장되고, 디폴트 프로세서가 부트 하지 못할 때 시스템의 초기화 작업이 디폴트 프로세서로부터 다른 대체 프로세서들에게로 미리 정해진 순서대로 자동적으로 넘겨지므로 시스템의 이용도를 높일 수 있다.

Claims (13)

  1. 제 1 중앙처리장치와;
    상기 제 1 중앙처리장치와 접속되는, 그리고 상기 제 1 중앙처리장치에 특정한 실행이 불가능한 형태의 초기화 및 자체 진단 코드를 포함하는 제 1 비휘발성 메모리와;
    제 2 중앙처리장치와;
    상기 제 2 중앙처리장치와 접속되는, 그리고 상기 제 2 중앙처리장치에 특정한 실행이 불가능한 형태의 초기화 및 자체 진단 코드를 포함하는 제 2 비휘발성 메모리와;
    상기 제1 및 제 2 중앙처리장치들과 상기 제 1 및 제 2 비휘발성 메모리들을 상호 접속하기 위한 제 1 버스와;
    상기 제 1 버스에 접속되는, 그리고 상기 제 1 및 제 2 중앙처리장치들이 상기 제 1 버스를 통해 접근할 수 있는 중앙 접근식 메모리와;
    제 2 버스와;
    상기 제 2 버스에 접속되는 복수의 입출력 제어기들과;
    상기 제 1 버스와 상기 제 2 버스 간의 인터페이스 기능 및 상기 제 1 버스의 사용을 중재하는 기능을 수행하기 위한 입출력 서비스 모듈 및;
    중앙 접근식 부트 코드를 저장하는 제 3 비휘발성 메모리를 포함하되;
    상기 제 1 및 제 2 중앙처리장치들 중 어느 하나는 디폴트 부트 중앙처리장치로서 지정되고, 상기 디폴트 부트 중앙처리장치는 상기 제 3 비휘발성 메모리에 저장된 상기 중앙 접근식 부트 코드에 의해 상기 시스템을 부트 하며, 상기 제 1 및 제 2 중앙처리장치들 중의 다른 하나는 대체 부트 중앙처리장치로서 지정되고, 상기 디폴트 부트 중앙처리장치가 시스템 부트에 실패하는 경우 상기 대체 부트 중앙처리장치가 상기 디폴트 부트 중앙처리장치 대신에 상기 시스템을 부트 하는 것을 특징으로 하는 다주 프로세서 시스템.
  2. 제 1 항에 있어서,
    상기 시스템 부트 동작 동안에, 상기 디폴트 부트 중앙처리장치에 대응하는 비휘발성 메모리 내에 저장된 상기 초기화 및 자체 진단 코드는 해당 비휘발성 메모리부터 이송되어서 상기 중앙 접근식 메모리 내에 상기 디폴트 부트 중앙처리장치에 의해서 실행이 가능한 형태로 저장되는 것을 특징으로 하는 다중 프로세서 시스템.
  3. 제 2 항에 있어서,
    상기 제 1 및 제 2 비휘발성 메모리들은 해당 중앙처리장치에 특정된 구성 정보도 포함하는 것을 특징으로 하는 다중 프로세서 시스템.
  4. 제 1 항에 있어서,
    상기 제 1 및 제 2 비휘발성 메모리들은 실행을 위해 접근하는 것이 불가능 한 것을 특징으로 하는 다중 프로세서 시스템.
  5. 제 1 항에 있어서,
    상기 대체 부트 중앙처리장치에 대응하는 상기 제 1 및 제 2 비휘발성 메모리 장치들 중 하나는 상기 대체 부트 중앙처리장치를 위한 부트 코드를 포함하고, 상기 대체 부트 중앙처리장치는 실행을 위해서 제 1 및 제 2 비휘발성 메모리 장치들 중 대응하는 하나 또는 상기 제 3 비휘발성 메모리에 접근할 수 있는 것을 특징으로 하는 다중 프로세서 시스템.
  6. 제 1 항에 있어서,
    상기 제 2 중앙처리장치는 상기 제 1 중앙처리장치와 호환 가능한 것을 특징으로 하는 다중 프로세서 시스템.
  7. 다수의 중앙처리장치들, 메모리 모듈들 및 다른 입/출력 모듈들을 접속하기 위하 접속기 슬롯들을 가진 백 플레인 버스를 구비한 다중 프로세서 상호 접속기와 함께 사용할 수 있는 다중 프로세서의 초기화 기능 분산 및 자체 진단 시스템에 있어서,
    상기 백플레인 버스 상의 제1 슬롯에 접속된 적어도 하나의 디폴트 부트 중앙처리 장치와,
    상기 백플레인 버스 상의 제2 슬롯에 접속된 적어도 하나의 다른 부트 중앙처리 장치와,
    상기 디폴트 부트 중앙처리장치 및 상기 다른 부트 중앙처리장치가 실행을 위해 접근할 수 있는 중앙접근식 부트 코드와,
    상기 디폴트 부트 중앙처리장치 및 상기 다른 부트 중앙처리장치가 접근할 수 있는 중앙 접근식 시스템 메모리와,
    상기 디폴트 부트 중앙처리장치에 접속된 제1의 슬롯 선택 회로 및,
    상기 다른 부트 중앙처리장치에 접속된 제2의 슬롯 선택 회로를 구비하되,
    상기 제1의 슬롯 선택 회로는 시스템 개시의 경우에 리셋 상태로부터 상기 디폴트 부트 중앙처리장치를 해제하여 상기 중앙처리장치로 하여금 상기 부트 코드를 실행하게 하고, 상기 디폴트 부트 중앙처리장치가 성공적으로 부트하기 전에 제1의 각 슬롯 식별 코드에 의해 선택된 제1의 소정의 타임아웃 주기가 경과된 경우에 상기 디폴트 부트 중앙처리장치를 상기 리셋 상태로 되돌림으로써 상기 디포트 부트 중앙처리장치를 디스에이블 하고,
    상기 제2의 슬롯 선택 회로는 상기 디폴트 부트 중앙처리장치가 성공적으로 부트 하거나, 또는 제2의 각 슬롯 식별 코드에 의해 선택된 제2의 소정의 시간 주기가 경과하여 상기 디폴트 부트 중앙처리장치가 시스템을 부트 하지 못했음을 나타낼 때가지 상기 다른 처리 장치를 리셋 상태로 유지하고, 상기 디폴트 중앙처리장치가 성공적으로 부트 한 후 또는 상기 제2의 소정의 시간 주기가 완료된 후에 상기 다른 부트 중앙처리장치를 상기 리셋 상태로부터 해제하는 것을 특징으로 하는 다중 프로세서의 초기화 기능 분산 및 자체 진단 시스템.
  8. 제 7 항에 있어서,
    상기 제1 슬롯 선택 회로는 상기 디폴트 중앙처리장치가 상기 백플레인 버스상의 제1 슬롯에서 백플레인 버스에 접속되어 있는지의 여부를 나타내는 출력을 가는 슬롯 식별 회로를 더 구비하는 것을 특징으로 하는 다중 프로세서의 초기화 기능 분산 및 자체 진단 시스템.
  9. 제 7 항에 있어서,
    상기 제1 슬롯 선택 회로는 상기 제1의 소정의 타임아웃 주기를 선택하기 위해 상기 제1의 슬롯 식별 코드에 응답하는 타이밍 회로를 더 구비하는 것을 특징으로 하는 다중 프로세서의 초기화 기능 분산 및 자체 진단 시스템.
  10. 제 7 항에 있어서,
    상기 제1 및 제2 중앙처리장치와 실질적으로 호환성이 없는 제3의 중앙처리장치 및,
    상기 제3의 중앙처리장치에 접속된 제4의 비휘발성 메모리를 더 구비하되,
    싱기 제4의 비휘발성 메모리는 상기 제3의 중앙처리장치에 특정된 실행이 불가능한 형태의 제2 중앙처리장치 부트 코드를 포함하고, 상기 제1 중앙처리장치 또는 상기 제2 중앙처리장치 중 하나는 상기 제3의 중앙처리장치에 의한 실행에 적합하게 상기 제4의 비휘발성 메모리로부터 상기 제2 중앙처리장치 부트 코드를 이송하여 실행 가능한 형태로 상기 제2 중앙처리장치 부트 코드를 상기 중앙 접근식 메모리에 저장하는 것을 특징으로 하는 다중 프로세서의 초기화 기능 분산 및 자체 진단 시스템.
  11. 제 10 항에 있어서,
    실행이 불가능한 형태로 상기 제4의 비휘발성 메모리에 저장된 제3의 초기화 및 자체 진단 코드를 더 구비하여,
    상기 제3의 초기화 및 자체 진단 코드는 상기 제3의 중앙처리장치에 특정된 것을 특징으로 하는 다중 프로세서 초기화 기능 분산 및 자체 진단 시스템.
  12. 제 5 항에 있어서,
    상기 제2의 중앙처리 장치는 상기 제1의 중앙처리장치와 완전한 호환성을 이루지 못하여, 상기 시스템은 상기 제2의 중앙처리장치에 특정되며 상기 제2의 비휘발성 메모리에 저자되는 부트 코드를 더 포함하는 것을 특징으로 하는 다중 프로세서 초기화 기능 분산 및 진단 시스템.
  13. 백플레인 버스와, 상기 백플레인 버스에 접속된 적어도 제1 및 제2의 중앙처리장치를 가진 다중 프로세서 컴퓨터 시스템의 초기화 및 자체 진단을 조정하는 방법에 있어서,
    시스템 개시 동안 리셋 상태로부터 상기 제1의 중앙처리장치를 해제하느 ㄴ단계,
    상기 제1의 중앙처리장치에 특정되며 실행 가능한 형태로 중앙 접근식 비휘발성 메모리에 저장된 부트 명령을 상기 제1의 중앙처리장치에 의해 실행되는 단계,
    상기 제1의 중앙처리장치가 상기 부트 명령의 실행을 성공적으로 완료할 때까지, 또는 상기 제1의 중아처리장치에 접속된 제1의 슬롯 선택 회로에 의해 선택된 제1의 소정의 타임아웃 주기가 경과할 때까지 대기하는 단계,
    상기 제1의 중앙처리장치가 상기 부트 명령의 실행을 성공적으로 완료하기전에 상기 소정의 타임아웃 주기가 경과한 경우에 상기 제1의 중앙처리장치를 리셋상태로 되돌리는 단계 및,
    상기 제1의 중앙처리장치가 상기 부트 명령의 실행을 성공적으로 완료한 후, 또는 상기 제2의 중앙처리장치에 접속된 제2의 슬롯 선택 회로에 의해 선택된 제2의 소정의 타임아웃 주기가 완료된 후 어느 쪽이 먼저 발생되더라도 상기 제2의 중앙처리장치에 의해 상기 부트 명령을 실행하는 단계를 포함하는 것을 특징으로 하는 다중 프로세서 컴퓨터 시스템의 초기화 및 차제 진단 조정 방법.
KR1019930704014A 1991-06-26 1992-06-26 다중프로세서시스템그리고그의초기화기능분산및자체진단시스템그리고그방법 KR100303947B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US72169291A 1991-06-26 1991-06-26
US07/721692 1991-06-26
PCT/US1992/005459 WO1993000628A1 (en) 1991-06-26 1992-06-26 Multiprocessor distributed initialization and self-test system

Publications (1)

Publication Number Publication Date
KR100303947B1 true KR100303947B1 (ko) 2001-11-22

Family

ID=24898930

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019930704014A KR100303947B1 (ko) 1991-06-26 1992-06-26 다중프로세서시스템그리고그의초기화기능분산및자체진단시스템그리고그방법

Country Status (8)

Country Link
US (2) US5450576A (ko)
EP (1) EP0591437B1 (ko)
JP (1) JP3461825B2 (ko)
KR (1) KR100303947B1 (ko)
AU (1) AU661016B2 (ko)
CA (1) CA2111237C (ko)
DE (1) DE69222528T2 (ko)
WO (1) WO1993000628A1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100855580B1 (ko) 2007-06-18 2008-09-01 삼성전자주식회사 프로세서 리셋 기능을 갖는 반도체 메모리 장치 및 그를 채용한 멀티 프로세서 시스템과 그에 따른 프로세서 리셋 제어방법
KR101430687B1 (ko) 2007-09-28 2014-08-18 삼성전자주식회사 다이렉트 억세스 부팅동작을 갖는 멀티 프로세서 시스템 및그에 따른 다이렉트 억세스 부팅방법

Families Citing this family (136)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3679813B2 (ja) * 1991-07-22 2005-08-03 株式会社日立製作所 並列計算機
US5408647A (en) * 1992-10-02 1995-04-18 Compaq Computer Corporation Automatic logical CPU assignment of physical CPUs
US5870520A (en) * 1992-12-23 1999-02-09 Packard Bell Nec Flash disaster recovery ROM and utility to reprogram multiple ROMS
US5872945A (en) * 1993-07-26 1999-02-16 Intel Corporation MX bus translation to new system bus protocol
DE4342991A1 (de) * 1993-12-16 1995-06-22 Bosch Gmbh Robert Verfahren zum Überwachen wenigstens einer sicherheitsrelevanten Funktion eines Gerätes
JPH07219913A (ja) * 1994-01-28 1995-08-18 Fujitsu Ltd マルチプロセッサシステムの制御方法及び装置
JP3574170B2 (ja) * 1994-03-17 2004-10-06 富士通株式会社 分散型画像処理装置
GB2290891B (en) * 1994-06-29 1999-02-17 Mitsubishi Electric Corp Multiprocessor system
US5642506A (en) * 1994-12-14 1997-06-24 International Business Machines Corporation Method and apparatus for initializing a multiprocessor system
US5752080A (en) * 1994-12-22 1998-05-12 Intel Corporation Cable terminal unit using bit set for selectively enabling a plurality of hardware functions with some functions having a plurality of selectively enabled hardware functions
US5627962A (en) * 1994-12-30 1997-05-06 Compaq Computer Corporation Circuit for reassigning the power-on processor in a multiprocessing system
US5524209A (en) * 1995-02-27 1996-06-04 Parker; Robert F. System and method for controlling the competition between processors, in an at-compatible multiprocessor array, to initialize a test sequence
AU5029896A (en) * 1995-03-31 1996-10-16 Intel Corporation Memory testing in a multiple processor computer system
US5790791A (en) * 1995-05-12 1998-08-04 The Boeing Company Apparatus for synchronizing flight management computers where only the computer chosen to be the master received pilot inputs and transfers the inputs to the spare
US5655083A (en) * 1995-06-07 1997-08-05 Emc Corporation Programmable rset system and method for computer network
US5696949A (en) * 1995-06-15 1997-12-09 Intel Corporation System for PCI slots expansion using asynchronous PCI-to-PCI bridge with clock generator for providing clock signal to the expansion mother board and expansion side of bridge
JP3088269B2 (ja) * 1995-07-26 2000-09-18 日本電気通信システム株式会社 コンピュータネットワークシステム及びそのオペレーティングシステムの版数管理方法
US5768585A (en) * 1995-11-21 1998-06-16 Intel Corporation System and method for synchronizing multiple processors during power-on self testing
US5860002A (en) * 1996-07-12 1999-01-12 Digital Equipment Corporation System for assigning boot strap processor in symmetric multiprocessor computer with watchdog reassignment
US5867382A (en) * 1996-09-10 1999-02-02 Mclaughlin; Michael G. Generic control systems using a virtual rack module
US5790850A (en) * 1996-09-30 1998-08-04 Intel Corporation Fault resilient booting for multiprocessor computer systems
US5875306A (en) * 1996-10-01 1999-02-23 International Business Machines Corporation Reconfiguring computer resources in a distributed computer enterprise environment
US5894563A (en) * 1996-11-20 1999-04-13 Apple Computer, Inc. Method and apparatus for providing a PCI bridge between multiple PCI environments
US6378086B1 (en) * 1997-02-24 2002-04-23 International Business Machines Corporation Method and system for recovering a computer system from a loadsource located at a remote location
US5978912A (en) 1997-03-20 1999-11-02 Phoenix Technologies Limited Network enhanced BIOS enabling remote management of a computer without a functioning operating system
US5860001A (en) * 1997-05-19 1999-01-12 International Business Machines Corporation Computer system having at least two boot sequences
JP2002501654A (ja) * 1997-05-30 2002-01-15 ミクロン テクノロジー,インコーポレイテッド 256Megダイナミックランダムアクセスメモリ
US5904733A (en) * 1997-07-31 1999-05-18 Intel Corporation Bootstrap processor selection architecture in SMP systems
US6058475A (en) * 1997-09-22 2000-05-02 Ncr Corporation Booting method for multi-processor computer
US6009522A (en) * 1997-09-30 1999-12-28 Micron Electronics, Inc. Attachment or integration of a BIOS device into a computer system using the system memory data bus
US6279032B1 (en) 1997-11-03 2001-08-21 Microsoft Corporation Method and system for quorum resource arbitration in a server cluster
US6012142A (en) * 1997-11-14 2000-01-04 Cirrus Logic, Inc. Methods for booting a multiprocessor system
US5987605A (en) * 1998-02-28 1999-11-16 Hewlett-Packard Co. Methods and apparatus for dual-boot memory selection, update, and recovery in a programmable device
US6157979A (en) * 1998-03-14 2000-12-05 Advanced Technology Materials, Inc. Programmable controlling device with non-volatile ferroelectric state-machines for restarting processor when power is restored with execution states retained in said non-volatile state-machines on power down
JP3614650B2 (ja) * 1998-03-20 2005-01-26 富士通株式会社 マルチプロセッサ制御方式及びこれに用いられるブート装置及びブート制御装置
EP0986231B1 (en) * 1998-03-27 2005-07-27 Kabushiki Kaisha Toshiba Software start-up method for a transmitter having a plurality of redundancy switching functions
US6178526B1 (en) 1998-04-08 2001-01-23 Kingston Technology Company Testing memory modules with a PC motherboard attached to a memory-module handler by a solder-side adaptor board
US6351827B1 (en) * 1998-04-08 2002-02-26 Kingston Technology Co. Voltage and clock margin testing of memory-modules using an adapter board mounted to a PC motherboard
US6357023B1 (en) * 1998-04-08 2002-03-12 Kingston Technology Co. Connector assembly for testing memory modules from the solder-side of a PC motherboard with forced hot air
US6141774A (en) * 1998-04-17 2000-10-31 Infineon Technologies North America Corp. Peripheral device with access control
US6286115B1 (en) 1998-06-29 2001-09-04 Micron Technology, Inc. On-chip testing circuit and method for integrated circuits
US9361243B2 (en) 1998-07-31 2016-06-07 Kom Networks Inc. Method and system for providing restricted access to a storage medium
US8234477B2 (en) 1998-07-31 2012-07-31 Kom Networks, Inc. Method and system for providing restricted access to a storage medium
US6230285B1 (en) * 1998-09-08 2001-05-08 Symantec Corporation Boot failure recovery
US6233680B1 (en) * 1998-10-02 2001-05-15 International Business Machines Corporation Method and system for boot-time deconfiguration of a processor in a symmetrical multi-processing system
US6119192A (en) * 1998-10-21 2000-09-12 Integrated Technology Express, Inc. Circuit and method for configuring a bus bridge using parameters from a supplemental parameter memory
US6421792B1 (en) * 1998-12-03 2002-07-16 International Business Machines Corporation Data processing system and method for automatic recovery from an unsuccessful boot
US6701429B1 (en) 1998-12-03 2004-03-02 Telefonaktiebolaget Lm Ericsson(Publ) System and method of start-up in efficient way for multi-processor systems based on returned identification information read from pre-determined memory location
US6496881B1 (en) * 1999-03-11 2002-12-17 Compaq Information Technologies Group, L.P. Method and apparatus for disabling a processor in a multiprocessor computer
US6401120B1 (en) 1999-03-26 2002-06-04 Microsoft Corporation Method and system for consistent cluster operational data in a server cluster using a quorum of replicas
US6601165B2 (en) 1999-03-26 2003-07-29 Hewlett-Packard Company Apparatus and method for implementing fault resilient booting in a multi-processor system by using a flush command to control resetting of the processors and isolating failed processors
US7774469B2 (en) * 1999-03-26 2010-08-10 Massa Michael T Consistent cluster operational data in a server cluster using a quorum of replicas
US6453426B1 (en) 1999-03-26 2002-09-17 Microsoft Corporation Separately storing core boot data and cluster configuration data in a server cluster
US6385739B1 (en) 1999-07-19 2002-05-07 Tivo Inc. Self-test electronic assembly and test system
IE20000602A1 (en) * 1999-08-19 2001-04-18 Dell Products Lp Method and system for automated technical support for computers
US6760708B1 (en) 1999-08-19 2004-07-06 Dell Products L.P. Method and system for migrating stored data to a build-to-order computing system
US6606716B1 (en) 1999-10-06 2003-08-12 Dell Usa, L.P. Method and system for automated technical support for computers
US6560726B1 (en) * 1999-08-19 2003-05-06 Dell Usa, L.P. Method and system for automated technical support for computers
US6563698B1 (en) 1999-10-06 2003-05-13 Dell Usa, L.P. System and method for providing a computer system with a detachable component
US6539499B1 (en) 1999-10-06 2003-03-25 Dell Usa, L.P. Graphical interface, method, and system for the provision of diagnostic and support services in a computer system
US6598223B1 (en) 1999-10-06 2003-07-22 Dell Usa, L.P. Method and system for installing and testing build-to-order components in a defined configuration computer system
US6564220B1 (en) 1999-10-06 2003-05-13 Dell Usa, L.P. System and method for monitoring support activity
US6449683B1 (en) * 1999-12-14 2002-09-10 Intel Corporation Using non-volatile memory for power management in a computer
US6662219B1 (en) 1999-12-15 2003-12-09 Microsoft Corporation System for determining at subgroup of nodes relative weight to represent cluster by obtaining exclusive possession of quorum resource
US6611911B1 (en) * 1999-12-30 2003-08-26 Intel Corporation Bootstrap processor election mechanism on multiple cluster bus system
US6691225B1 (en) * 2000-04-14 2004-02-10 Stratus Technologies Bermuda Ltd. Method and apparatus for deterministically booting a computer system having redundant components
US6601163B1 (en) 2000-05-08 2003-07-29 International Business Machines Corporation Method and system for executing adapter configuration routines utilizing different operating modes
JP2002074811A (ja) * 2000-08-30 2002-03-15 Nec Corp 電源供給制御システム及び電源供給制御方法
EP1215576A3 (en) * 2000-12-15 2006-03-15 International Business Machines Corporation Automatic application restart in an embedded environment
DE60144303D1 (de) * 2001-01-31 2011-05-05 Renesas Electronics Corp Datenverarbeitungssystem
US6925556B2 (en) * 2001-02-14 2005-08-02 Intel Corporation Method and system to determine the bootstrap processor from a plurality of operable processors
US7051332B2 (en) * 2001-05-21 2006-05-23 Cyberscan Technology, Inc. Controller having a restart engine configured to initiate a controller restart cycle upon receipt of a timeout signal from a watchdog timer
US7251723B2 (en) * 2001-06-19 2007-07-31 Intel Corporation Fault resilient booting for multiprocessor system using appliance server management
JP2003036251A (ja) * 2001-07-23 2003-02-07 Hitachi Ltd 信号処理装置
US7277952B2 (en) * 2001-09-28 2007-10-02 Microsoft Corporation Distributed system resource protection via arbitration and ownership
US6963942B2 (en) * 2001-12-04 2005-11-08 Motorola, Inc. High availability system and method for improved intialization
GB0212143D0 (en) * 2002-05-27 2002-07-03 Sendo Int Ltd Processor Monitor
US7065641B2 (en) * 2002-06-13 2006-06-20 Intel Corporation Weighted processor selection apparatus and method for use in multiprocessor systems
JP2004152027A (ja) * 2002-10-30 2004-05-27 Matsushita Electric Ind Co Ltd 不揮発性メモリ内蔵マイクロコンピュータチップ、及びその検査方法
US7000159B2 (en) * 2003-03-10 2006-02-14 Dell Products L.P. System and method for testing memory
US7162625B2 (en) 2003-03-10 2007-01-09 Dell Products L.P. System and method for testing memory during boot operation idle periods
US20050050200A1 (en) * 2003-09-02 2005-03-03 Kabushiki Kaisha Toshiba Computer system and cluster system program
US7539909B2 (en) * 2003-09-30 2009-05-26 Intel Corporation Distributed memory initialization and test methods and apparatus
US20050144397A1 (en) * 2003-12-29 2005-06-30 Rudd Kevin W. Method and apparatus for enabling volatile shared data across caches in a coherent memory multiprocessor system to reduce coherency traffic
US7797733B1 (en) 2004-01-08 2010-09-14 Symantec Corporation Monitoring and controlling services
US7337327B1 (en) 2004-03-30 2008-02-26 Symantec Corporation Using mobility tokens to observe malicious mobile code
US7735100B1 (en) 2004-04-22 2010-06-08 Symantec Corporation Regulating remote registry access over a computer network
US8108937B1 (en) 2004-04-26 2012-01-31 Symantec Corporation Robustly regulating access to executable class registry entries
US7337368B2 (en) * 2004-06-07 2008-02-26 Dell Products L.P. System and method for shutdown memory testing
US20050273585A1 (en) * 2004-06-08 2005-12-08 Leech Phillip A System and method associated with persistent reset detection
US7334163B1 (en) 2004-06-16 2008-02-19 Symantec Corporation Duplicating handles of target processes without having debug privileges
US7571448B1 (en) 2004-07-28 2009-08-04 Symantec Corporation Lightweight hooking mechanism for kernel level operations
US7509680B1 (en) 2004-09-01 2009-03-24 Symantec Corporation Detecting computer worms as they arrive at local computers through open network shares
US20060047939A1 (en) * 2004-09-01 2006-03-02 International Business Machines Corporation Method and apparatus for initializing multiple processors residing in an integrated circuit
US7690034B1 (en) 2004-09-10 2010-03-30 Symantec Corporation Using behavior blocking mobility tokens to facilitate distributed worm detection
US7590918B2 (en) * 2004-09-10 2009-09-15 Ovonyx, Inc. Using a phase change memory as a high volume memory
US7334722B1 (en) 2005-02-14 2008-02-26 Symantec Corporation Scan-on-read
US7434119B2 (en) * 2005-03-07 2008-10-07 Arm Limited Method and apparatus for memory self testing
US7290128B2 (en) * 2005-04-04 2007-10-30 Dell Products L.P. Fault resilient boot method for multi-rail processors in a computer system by disabling processor with the failed voltage regulator to control rebooting of the processors
US20070067614A1 (en) * 2005-09-20 2007-03-22 Berry Robert W Jr Booting multiple processors with a single flash ROM
CN101297256A (zh) * 2005-10-25 2008-10-29 Nxp股份有限公司 包含复位设施的数据处理装置
KR100723875B1 (ko) 2005-12-08 2007-05-31 한국전자통신연구원 동시기동에 적합한 마이크로프로세서 및 상기마이크로프로세서에서의 리셋 및 프로세서 아이디 제어방법
JP4586750B2 (ja) * 2006-03-10 2010-11-24 日本電気株式会社 コンピュータシステムおよび起動監視方法
US7590903B2 (en) * 2006-05-15 2009-09-15 Verigy (Singapore) Pte. Ltd. Re-configurable architecture for automated test equipment
US20080046891A1 (en) * 2006-07-12 2008-02-21 Jayesh Sanchorawala Cooperative asymmetric multiprocessing for embedded systems
US7571270B1 (en) 2006-11-29 2009-08-04 Consentry Networks, Inc. Monitoring of shared-resource locks in a multi-processor system with locked-resource bits packed into registers to detect starved threads
US20080162873A1 (en) * 2006-12-28 2008-07-03 Zimmer Vincent J Heterogeneous multiprocessing
US7661006B2 (en) * 2007-01-09 2010-02-09 International Business Machines Corporation Method and apparatus for self-healing symmetric multi-processor system interconnects
US20080201605A1 (en) * 2007-02-21 2008-08-21 Inventec Corporation Dead man timer detecting method, multiprocessor switching method and processor hot plug support method
US7783872B2 (en) * 2007-03-30 2010-08-24 Dell Products, Lp System and method to enable an event timer in a multiple event timer operating environment
US7836293B1 (en) * 2007-05-07 2010-11-16 Force 10 Networks, Inc Accelerated deserialized boot implementation for a multiprocessor system
US9373362B2 (en) * 2007-08-14 2016-06-21 Dell Products L.P. System and method for implementing a memory defect map
US7945815B2 (en) * 2007-08-14 2011-05-17 Dell Products L.P. System and method for managing memory errors in an information handling system
US7949913B2 (en) * 2007-08-14 2011-05-24 Dell Products L.P. Method for creating a memory defect map and optimizing performance using the memory defect map
US8225078B2 (en) * 2007-08-30 2012-07-17 International Business Machines Corporation Document viewing mode for battery powered computing devices
CN101458642A (zh) * 2007-12-10 2009-06-17 鸿富锦精密工业(深圳)有限公司 计算机监控终端及监控方法
CN102439563A (zh) * 2009-05-15 2012-05-02 汤姆森许可贸易公司 用于共享存储器的系统和方法
US8489837B1 (en) 2009-06-12 2013-07-16 Netlist, Inc. Systems and methods for handshaking with a memory module
US8245024B2 (en) 2009-08-21 2012-08-14 Micron Technology, Inc. Booting in systems having devices coupled in a chained configuration
US8429391B2 (en) 2010-04-16 2013-04-23 Micron Technology, Inc. Boot partitions in memory devices and systems
US9870233B2 (en) * 2010-05-28 2018-01-16 Hewlett Packard Enterprise Development Lp Initializing a memory subsystem of a management controller
TW201142608A (en) * 2010-05-31 2011-12-01 Hon Hai Prec Ind Co Ltd Multiple processors based system and method for controlling PCI-E slots
CN102270184B (zh) * 2010-06-01 2014-11-26 鸿富锦精密工业(深圳)有限公司 基于多个处理器的pci-e插槽控制系统及方法
CN101968652A (zh) * 2010-07-21 2011-02-09 中国航天科技集团公司第九研究院第七七一研究所 一种微控制器系统器件的检测装置及方法
US8724408B2 (en) 2011-11-29 2014-05-13 Kingtiger Technology (Canada) Inc. Systems and methods for testing and assembling memory modules
US8954721B2 (en) 2011-12-08 2015-02-10 International Business Machines Corporation Multi-chip initialization using a parallel firmware boot process
US9117552B2 (en) 2012-08-28 2015-08-25 Kingtiger Technology(Canada), Inc. Systems and methods for testing memory
CN104281460A (zh) * 2013-07-08 2015-01-14 英业达科技有限公司 伺服器及启动方法
JP6045457B2 (ja) * 2013-08-22 2016-12-14 三菱電機株式会社 情報処理システム、制御装置、制御方法、制御プログラム、および監視レコーダシステム
US9424134B2 (en) * 2014-03-28 2016-08-23 Intel Corporation Boot management in a non-volatile memory system
CN104881345B (zh) * 2015-05-25 2018-10-23 上海兆芯集成电路有限公司 中央处理器和计算机开机自检的方法
US9529601B1 (en) 2015-07-15 2016-12-27 Dell Products L.P. Multi-processor startup system
US10649690B2 (en) * 2015-12-26 2020-05-12 Intel Corporation Fast memory initialization
US10095594B2 (en) * 2016-05-31 2018-10-09 Bristol, Inc. Methods and apparatus to implement communications via a remote terminal unit
US10360125B2 (en) 2016-05-31 2019-07-23 Bristol, Inc. Methods and apparatus to communicatively couple field devices to a remote terminal unit
CN109800032B (zh) * 2019-01-31 2022-03-25 深圳忆联信息系统有限公司 Bootrom多核加载方法及装置

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4127768A (en) * 1977-01-03 1978-11-28 Honeywell Information Systems Inc. Data processing system self-test enabling technique

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB1412246A (en) * 1971-09-29 1975-10-29 Kent Automation Systems Ltd Computer control arrangements
IT1052738B (it) * 1975-12-24 1981-07-20 Cselt Centro Studi Lab Telecom Dispositivo per il caricamento automatico della memoria centrale di calcolatori elettronici
US4593349A (en) * 1982-07-22 1986-06-03 Honeywell Information Systems Inc. Power sequencer
US4679166A (en) * 1983-01-17 1987-07-07 Tandy Corporation Co-processor combination
US4578773A (en) * 1983-09-27 1986-03-25 Four-Phase Systems, Inc. Circuit board status detection system
US4882669A (en) * 1983-11-28 1989-11-21 Canon Kabushiki Kaisha Multi computer fail safe control apparatus
US4803682A (en) * 1985-03-04 1989-02-07 Sanyo Electric Co., Ltd. Resetting system
US5109521A (en) * 1986-09-08 1992-04-28 Compaq Computer Corporation System for relocating dynamic memory address space having received microprocessor program steps from non-volatile memory to address space of non-volatile memory
JPH0821025B2 (ja) * 1986-09-29 1996-03-04 株式会社東芝 マルチプロセッサシステムおよび同システムの初期化方法
JPH0766368B2 (ja) * 1986-10-21 1995-07-19 日新電機株式会社 ブ−トプロセツサ決定方式
DE3639571A1 (de) * 1986-11-20 1988-06-01 Standard Elektrik Lorenz Ag Verfahren und schaltungsanordnung zum urladen eines zweitrechners
US5038320A (en) * 1987-03-13 1991-08-06 International Business Machines Corp. Computer system with automatic initialization of pluggable option cards
US5155833A (en) * 1987-05-11 1992-10-13 At&T Bell Laboratories Multi-purpose cache memory selectively addressable either as a boot memory or as a cache memory
US4890285A (en) * 1988-04-01 1989-12-26 Digital Equipment Corporation Cycle counter for timeout microdiagnostics
US4975831A (en) * 1988-05-09 1990-12-04 Intel Corporation High-availability computer system with a predefinable configuration of the modules
US5168555A (en) * 1989-09-06 1992-12-01 Unisys Corporation Initial program load control
US5497497A (en) * 1989-11-03 1996-03-05 Compaq Computer Corp. Method and apparatus for resetting multiple processors using a common ROM
US5070450A (en) * 1990-05-25 1991-12-03 Dell Usa Corporation Power on coordination system and method for multiple processors
JP2760363B2 (ja) * 1990-11-14 1998-05-28 株式会社ピーエフユー 初期化処理装置

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4127768A (en) * 1977-01-03 1978-11-28 Honeywell Information Systems Inc. Data processing system self-test enabling technique

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100855580B1 (ko) 2007-06-18 2008-09-01 삼성전자주식회사 프로세서 리셋 기능을 갖는 반도체 메모리 장치 및 그를 채용한 멀티 프로세서 시스템과 그에 따른 프로세서 리셋 제어방법
KR101430687B1 (ko) 2007-09-28 2014-08-18 삼성전자주식회사 다이렉트 억세스 부팅동작을 갖는 멀티 프로세서 시스템 및그에 따른 다이렉트 억세스 부팅방법

Also Published As

Publication number Publication date
WO1993000628A1 (en) 1993-01-07
US5659748A (en) 1997-08-19
AU661016B2 (en) 1995-07-13
US5450576A (en) 1995-09-12
EP0591437A4 (en) 1994-05-25
DE69222528T2 (de) 1998-04-16
EP0591437B1 (en) 1997-10-01
EP0591437A1 (en) 1994-04-13
CA2111237C (en) 2002-01-15
JP3461825B2 (ja) 2003-10-27
JPH06508705A (ja) 1994-09-29
DE69222528D1 (de) 1997-11-06
AU2270992A (en) 1993-01-25
CA2111237A1 (en) 1993-01-07

Similar Documents

Publication Publication Date Title
KR100303947B1 (ko) 다중프로세서시스템그리고그의초기화기능분산및자체진단시스템그리고그방법
US5491788A (en) Method of booting a multiprocessor computer where execution is transferring from a first processor to a second processor based on the first processor having had a critical error
US5446910A (en) Interrupt controller with automatic distribution of interrupts for a multiple processor computer system
US4412281A (en) Distributed signal processing system
KR0185966B1 (ko) 복식 프로세서 시스템의 프로세서 및 캐시 제어기의 독립 리세팅 장치 및 방법
US5682512A (en) Use of deferred bus access for address translation in a shared memory clustered computer system
US5768585A (en) System and method for synchronizing multiple processors during power-on self testing
US5809531A (en) Computer system for executing programs using an internal cache without accessing external RAM
US8078862B2 (en) Method for assigning physical data address range in multiprocessor system
US5301281A (en) Method and apparatus for expanding a backplane interconnecting bus in a multiprocessor computer system without additional byte select signals
PL182192B1 (pl) Karta rozszerzen w systemie komputerowym PL PL PL
US6012127A (en) Multiprocessor computing apparatus with optional coherency directory
US6775734B2 (en) Memory access using system management interrupt and associated computer system
US5408647A (en) Automatic logical CPU assignment of physical CPUs
US4947478A (en) Switching control system for multipersonality computer system
WO1994008291A9 (en) AUTOMATIC LOGICAL CPU ASSIGNMENT OF PHYSICAL CPUs
US5652915A (en) System for controlling mode of operation of a data cache based on storing the DMA state of blocks by setting the DMA state to stall
US4814977A (en) Apparatus and method for direct memory to peripheral and peripheral to memory data transfers
US7237099B2 (en) Multiprocessor system having a plurality of control programs stored in a continuous range of addresses of a common memory and having identification registers each corresponding to a processor and containing data used in deriving a starting address of a CPU-linked interrupt handler program to be executed by the corresponding processor
JP3795978B2 (ja) マイクロプロセッサ及びマルチプロセッサシステム
CN116662984A (zh) 内存隔离装置以及基于内存隔离装置的多核计算系统
JPH0467215B2 (ko)
JPH0217563A (ja) 共有メモリの初期化方法
JPH0320834A (ja) 情報処理装置の初期診断方法
JPH06150026A (ja) マイクロコンピュータ、及びエミュレータ

Legal Events

Date Code Title Description
A201 Request for examination
N231 Notification of change of applicant
E902 Notification of reason for refusal
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20110629

Year of fee payment: 11

EXPY Expiration of term