KR100426214B1 - 공유 메모리 멀티프로세서의 제어방법 - Google Patents
공유 메모리 멀티프로세서의 제어방법 Download PDFInfo
- Publication number
- KR100426214B1 KR100426214B1 KR1019970013734A KR19970013734A KR100426214B1 KR 100426214 B1 KR100426214 B1 KR 100426214B1 KR 1019970013734 A KR1019970013734 A KR 1019970013734A KR 19970013734 A KR19970013734 A KR 19970013734A KR 100426214 B1 KR100426214 B1 KR 100426214B1
- Authority
- KR
- South Korea
- Prior art keywords
- state
- processor
- mpu
- hot
- cold
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4411—Configuring for operating with peripheral devices; Loading of device drivers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/24—Resetting means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/544—Buffers; Shared memory; Pipes
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Hardware Redundancy (AREA)
Abstract
본 발명은 공유 메모리 멀티프로세서의 제어방법에 관한것으로서, 공유메모리를 사용하는 각각의 마이크로 프로세서 상태를 온라인 또는 오프라인 상태로 전환할 때, 전체 시스템 성능에 최소한의 영향을 미치도록 마이크로 프로세서를 제어하고 또한, 핫-스왑핑(Hot-swapping)기능을 추가함으로써, 시스템 동작중에 마이크로 프로세서 보드를 교체하여 시스템 성능을 향상 시킬수 있도록 한것이다.
이와같은 본 발명의 목적은 동작중인 각 프로세서를 콜드-오프라인 상태로 천이시켜 대기상태를 유지하고, 프로세서 보드의 핫-스왑핑 여부를 검지하는 제 1 과정과; 대기상태에서 사용자에 의해 프로세서 보드의 교체를 완료했는지를 검지하는 제 2 과정과; 프로세서 보드의 교체를 완료한 경우 해당 프로세서 보드를 각 모드에 따라 리셋시킨 후 다른 프로세서들을 대기상태에서 웨이크업시키는 제 3 과정으로 이루어짐으로써 달성되는것이다.
Description
본 발명은 공유 메모리 멀티프로세서(Shared Memory Multiprocessor : 이하 "SMP"라 약칭함)에 관한것으로서, 보다 상세하게는 시스템 사용자가 SMP 시스템을 운영할 경우 각각의 마이크로 프로세서(Micro Processor : 이하 "MPU"라 약칭함)를 필요에 따라 온라인(Online) 또는 오프라인(Offline)상태로 전환할때 시스템 동작 중 MPU 보드를 교체할수 있는 핫-스왑핑(Hot-swapping)기능을 실행함으로써, 전체 시스템 성능을 향상시키도록 하는 공유 메모리 멀티프로세서의 제어방법에 관한 것이다.
도 1은 일반적인 SMP 시스템을 보인 구성도로서, 도시된 바와 같이 시스템 버스(System Bus)를 공유하며, 다수개의 프로세서로 구성되는 마이크로 프로세서(MPU) 보드(110a ∼ 110n)와; 상기 시스템 버스를 공유하여 데이터를 저장 및 판독하는 메모리 보드(120)와; 상기 각 MPU 보드(100a ∼ 100n)로부터 입/출력 요구를 받아 이를 처리하는 입출력 보드(IOP)(130) 및 상기 시스템 버스에 연결된 각 시스템을 제어하기 위한 시스템 제어 보드(SCM)(140)로 구성된다.
상기와 같이 구성된 SMP 시스템에서, 다수개의 MPU(100a ∼100n)는 메모리 보드(120)에 대해 공용으로 액세스(access)하며, 상기 입출력 보드(130)를 통해 입출력 제어를 수행한다. 이때, 상기 MPU(100a ∼ 100n) 각각에 대해 종래에는 콜드-온라인(Cold Online)과 콜드-오프라인(Cold Offline)의 두가지 상태로 상호 전환함으로써, MPU를 제어하였다.
즉, 도 2는 종래 기술에 의한 MPU의 2-상태(two-state) 천이도를 보인 블록 구성도로서, 도시된 바와 같이 콜드-온라인 상태(140)와 콜드-오프라인 상태(142)로 구성되어, 각 MPU(100a ∼ 100n) 상태를 제어한다.
이때, MPU가 콜드-오프라인 상태(142)이면 시스템 내의 메모리 버스와 내부/외부 캐쉬 메모리의 액세스가 중단되어, 상기 MPU를 재시동하려면 펌웨어(Fimrware)로 하여금 MPU 상태를 초기화 하는 리셋(Reset)동작이 필요하였고 또한, 상기 MPU상태를 오프라인으로 변화하는 경우에는 소프트웨어적으로 노오프(NOP : No operation) 루프로 천이시킴으로써 수행이 가능하였다.
그러나 상기와 같은 종래 기술에 의한 MPU는 펌웨어로 하여금 MPU 상태를 초기화 하는데 필요한 하드웨어 리셋 동작중에 외부와 내부의 전기적인 조건에 의해 고장(fail)이 발생할 가능성이 있는 문제점이 있었다.
또한, 콜드-오프라인 상태에 있는 MPU를 온라인 상태로 천이시키는 경우 시간이 많이 걸리고, MPU 보드에 대한 핫-스왑핑 기능이 없어서 시스템 성능이 저하되는 문제점이 있었다.
따라서, 본 발명의 목적은 상기한 종래 기술의 문제점을 해결하기 위한것으로서, 공유메모리를 사용하는 각각의 MPU상태를 온라인 또는 오프라인 상태로 전환할 때 전체 시스템 성능에 최소한의 영향을 미치면서 MPU를 제어 하고 또한, 핫-스왑핑 기능을 추가하여 시스템 동작중에도 MPU 보드를 교체함으로써, 시스템의 성능을 향상 시킬수 있도록 하는 SMP의 제어방법을 제공함에 있다.
도 1은 일반적인 공유 메모리 멀티프로세서 시스템을 보인 구성도.
도 2는 종래 기술에 의한 마이크로 프로세서의 2-상태 천이도를 보인 블록 구성도.
도 3은 본 발명에 의한 마이크로 프로세서의 4-상태 천이도를 보인 블록 구성도.
도 4는 본 발명 공유 메모리 멀티프로세서의 제어방법에 따른 마이크로 프로세서의 핫-스왑핑 과정을 보인 흐름도.
도 5는 도 3에 따른 웜-오프라인과 웜-온라인 상태의 마이크로 프로세서를 제어하는 프로그램 실시예의 표시도.
<도면의 주요부분에 대한 부호의 설명>
110a ~ 110n : 제 1 내지 제 n 마이크로 프로세서 보드
120 : 메모리 보드 130 : 입출력 보드
140 : 시스템 제어 보드
본 발명의 목적을 달성하기 위한 SMP의 제어방법은 동작중인 각 프로세서를콜드-오프라인 상태로 천이시켜 대기상태를 유지하고, 프로세서 보드의 핫-스왑핑 여부를 검지하는 제 1 과정과; 상기 대기상태에서 사용자에 의해 프로세서 보드의 교체를 완료했는지를 검지하는 제 2 과정과; 상기 프로세서 보드의 교체를 완료한 경우 해당 프로세서 보드를 각 모드에 따라 리셋시킨 후 다른 프로세서들을 대기상태에서 웨이크업시키는 제 3 과정으로 이루어짐을 특징으로 한다.
이하에서는 본 발명의 바람직한 실시예를 첨부된 도면을 참조하여 상세히 설명하면 다음과 같다.
본 발명을 구현하기 위한 공유 메모리 프로세서 시스템은 도 1에 도시된 바와 같이 종래기술과 동일하므로, 이하 생략한다.
도 3은 본 발명에 의한 MPU의 4-상태 천이도를 보인 블록 구성도로서, 콜드-오프라인(150), 콜드-온라인(152), 웜-온라인(154), 웜-오프라인(156)의 4가지 MPU 상태로 구성되며, 콜드-오프라인 상태(150)는 MPU 보드의 핫-스왑핑 기능을 가능하게 한다.
여기에서, 상기 MPU의 4-상태 천이도에서 오프라인 상태의 MPU는 메모리 버스와 내부/외부 캐쉬 메모리의 액세스가 중단되지 않고, 캐쉬상에서 무한 루프를 수행한다.
또한, 온라인 상태의 MPU는 하드웨어 상태를 설정함은 물론, 자원(resource)들을 할당하고, 가상 메모리 서브시스템(Virtual Memory Subsystem)에 의해 변환 참조 버퍼(Translation Lookaside Buffer)에 있는 내용을 지우도록 하며, 프로세스 서브 시스템으로 하여금 온라인된 새로운 MPU를 처리하도록 하는 등 각각의 서브시스템에 대하여 신호를 보내는 것들을 포함하고 있다.
도 4는 본 발명 SMP의 제어방법에 따른 MPU의 핫-스왑핑 과정을 보인 흐름도로서, 소정 MPU가 웜-오프라인 상태에서 스왑이 발생하여 콜드-오프라인 상태로 천이되는 단계(ST10 ∼ ST16)와; 상기 콜드-오프라인 상태(ST16)에서 다른 MPU들은 콜드-오프라인 상태의 해당 MPU에서 핫-스왑핑이 일어나는 것에 대비하여 펌웨어 영역의 특정 변수를 감시하는 대기 단계(ST18)와; 상기 대기 단계(ST18)에서 핫-스왑핑이 실행된 해당 MPU는 리셋 사이클을 수행한 후, 펌 웨어상의 모니터 변수를 설정하는 단계(ST20 ∼ ST26)와; 상기 단계(ST20 ∼ ST26)에서 모니터 변수에 의해 대기하고 있던 다른 MPU들을 웨이커업 시키고 다시 웹-오프라인 상태로 리턴(Return)하는 단계(ST28)로 이루어진다.
도 5는 상기 MPU의 4-상태 천이도에서 웜-오프라인과 웜-온라인 상태의 MPU를 제어하는 프로그램 실시예의 표시도로서, 도 5a는 MPU가 오프라인 상태에서 동작되는 루프이고, 도 5b는 오프라인 상태의 MPU가 온라인 상태로 천이되는 루프이다.
이와같이 구성된 본 발명의 작용을 도 3 내지 도 5를 참조하여 상세히 설명하면 다음과 같다.
먼저, MPU의 4-상태 구성에서 콜드-오프라인 상태(150)는 시스템 부팅시에 하드웨어 리셋에 의해 콜드-온라인(152)상태로 천이된다. 상기 콜드-온라인 상태(152)에서는 소프트웨어적으로 커널 영역이 초기화 된 후 웜-온라인 상태(154)로 천이되며, 시스템 동작중에 모든 온라인 또는 오프라인의 요구는웜-온라인(154)과 웜-오프라인(156) 상태에서만 발생한다.
또한, 상기 웜-오프라인과 웜-온라인 상태에서의 MPU 제어 실시예는 도 5a, 도 5b에 도시된 바와 같다.
즉, 도 5a에서 웜-오프라인 MPU 변수값(X)을 임의의 값(X)으로 설정한 상태에서, 오프라인 MPU의 변수값(X)을 "1"로 설정하면, 상기 변수값이 "1"로 설정되어 있는 동안에는 계속해서 웜-오프라인 MPU가 반복 수행된다. 상기 웜-오프라인 상태의 MPU가 수행되는 도중 오프라인 MPU의 변수값이 "0"으로 변환하게 되면 웜-온라인 상태(154)로 천이되면서 상기 웜-오프라인 상태(156)를 벗어나게 된다.
이와같이, 상기 소프트웨어적으로 MPU의 변수값을 제어하므로써, 오프라인 상태에서 온라인으로 MPU상태를 천이 시키는데 속도가 빠르다.
한편, 상기 콜드-오프라인 상태(150)는 시스템 동작중에 MPU 보드를 교체하기 위한 핫-스왑 기능을 가능하게 해준다.
상세히 설명하면, 상기 각각의 MPU(110a ∼ 110n)는 시스템 동작중에 웜-오프라인 상태(156)에서 MPU 제어 명령에 의해 스왑이 발생하면 콜드-오프라인 상태(150)로 천이 된다. 이때, 상기 콜드-오프라인 상태(150)에 있는 MPU를 제외한 다른 프로세서들은 콜드-오프라인 상태(150)에서의 MPU 핫-스왑핑을 대비하기 위해 모든 인터럽트를 디세이블(disable) 시키고, 펌웨어 영역의 특정 변수를 감시하면서 대기(wait) 상태로 리턴한다. 상기 대기상태는 시스템에 설치된 발광다이오드(LED)의 온/오프(ON/OFF)로서 표시된다.
계속해서, 시스템 사용자는 상기 LED의 온 상태를 확인하면서 콜드-오프라인상태(150)에 있는 MPU 보드에 대해 핫-스왑핑을 수행하고, 상기 핫-스왑핑된 MPU는 초기화 리셋 사이클을 수행하게 된다. 이때 상기 MPU의 펌웨어는 시스템이 펌웨어 모드 또는 오퍼레이팅 시스템 모드냐에 따라 다른 리셋 사이클을 수행하는데, 오퍼레이팅 시스템 모드인 경우는 바로 오퍼레이팅 시스템의 일부 코드를 수행시켜 콜드-오프라인 상태(150)로 들어가게 된다. 상기 핫-스왑핑이 종료된 MPU는 리셋 사이클 종료 후, 펌웨어상의 모니터 변수를 설정하고, 상기 모니터 변수에 의해 대기중인 다른 프로세서들이 웨이크업 된다.
이상에서 상세히 설명한 바와 같이, 본 발명은 콜드-오프라인 상태에서 핫-스왑핑을 실시함으로써, 시스템 동작중에 마이크로 프로세서 보드를 교체할수 있어 시스템의 전체 성능을 향상시킬수 있으며, 또한 웜-오프라인 상태에 있는 마이크로 프로세서를 온라인 상태로 천이시키는 속도가 빨라 보다 안정적으로 시스템을 사용할수 있는 효과가 있다.
Claims (5)
- 동작중인 각 프로세서를 콜드-오프라인 상태로 천이시켜 대기상태를 유지하고, 프로세서 보드의 핫-스왑핑 여부를 검지하는 제 1 과정과; 상기 대기상태에서 사용자에 의해 프로세서 보드의 교체를 완료했는지를 검지하는 제 2 과정과; 상기 프로세서 보드의 교체를 완료한 경우 해당 프로세서 보드를 각 모드에 따라 리셋시킨 후 다른 프로세서들을 대기상태에서 웨이크업시키는 제 3 과정으로 이루어짐을 특징으로 하는 공유 메모리 멀티프로세서의 제어방법.
- 제 1항에 있어서, 상기 제 1 과정은 해당 프로세서가 웜-오프라인 상태에서 스왑이 발생하여 콜드-오프라인 상태로 천이되는 단계와; 상기 단계에서 해당 프로세서의 핫-스왑핑에 대비하여 기타 프로세서들의 모든 인터럽트를 디세이블하고, 펌웨어상의 특정 변수을 감시하는 대기 단계로 이루어짐을 특징으로 하는 공유 메모리 멀티 프로세서의 제어방법.
- 제 1항에 있어서, 상기 제 3 과정은 해당 프로세서를 리셋 시키는 단계와; 상기 리셋 사이클을 종료한 후 펌웨어상의 모니터 변수를 설정하는 단계와; 상기 모니터 변수에 의해 대기하고 있는 다른 프로세서들을 웨이크업 시키는 단계로 이루어짐을 특징으로 공유 메모리 멀티 프로세서의 제어방법.
- 제 1항에 있어서, 상기 프로세서 핫-스왑핑은 프로세서의 콜드-오프라인 상태에서 실행됨 특징으로 하는 공유 메모리 멀티 프로세서의 제어방법.
- 제 3항에 있어서, 상기 해당 프로세서의 리셋 사이클은 펌웨어가 오퍼레이팅 시스템 모드 또는 펌웨어 모드냐에 따라 각각 다른 리셋 사이클을 수행함을 특징으로 하는 공유 메모리 멀티 프로세서의 제어방법.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1019970013734A KR100426214B1 (ko) | 1997-04-15 | 1997-04-15 | 공유 메모리 멀티프로세서의 제어방법 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1019970013734A KR100426214B1 (ko) | 1997-04-15 | 1997-04-15 | 공유 메모리 멀티프로세서의 제어방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR19980076859A KR19980076859A (ko) | 1998-11-16 |
KR100426214B1 true KR100426214B1 (ko) | 2004-06-18 |
Family
ID=37329310
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1019970013734A KR100426214B1 (ko) | 1997-04-15 | 1997-04-15 | 공유 메모리 멀티프로세서의 제어방법 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR100426214B1 (ko) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102060431B1 (ko) * | 2012-08-24 | 2020-02-11 | 삼성전자주식회사 | 멀티 코어 시스템의 전력 관리 장치 및 방법 |
-
1997
- 1997-04-15 KR KR1019970013734A patent/KR100426214B1/ko not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
KR19980076859A (ko) | 1998-11-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6314515B1 (en) | Resetting multiple processors in a computer system | |
US5860002A (en) | System for assigning boot strap processor in symmetric multiprocessor computer with watchdog reassignment | |
US7251746B2 (en) | Autonomous fail-over to hot-spare processor using SMI | |
EP0720094B1 (en) | Circuit for reassigning the power-on processor in a multiprocessing system | |
US8806182B2 (en) | Multiple-core processor supporting multiple instruction set architectures | |
JP4938080B2 (ja) | マルチプロセッサ制御装置、マルチプロセッサ制御方法及びマルチプロセッサ制御回路 | |
CN1717645B (zh) | 用于多线程处理器性能控制的装置和方法 | |
US4347565A (en) | Address control system for software simulation | |
US6587937B1 (en) | Multiple virtual machine system with efficient cache memory design | |
US6154838A (en) | Flash ROM sharing between processor and microcontroller during booting and handling warm-booting events | |
KR100303947B1 (ko) | 다중프로세서시스템그리고그의초기화기능분산및자체진단시스템그리고그방법 | |
US5495569A (en) | Circuit for ensuring that a local interrupt controller in a microprocessor is powered up active | |
JP2002215597A (ja) | マルチプロセッサ装置 | |
US8255591B2 (en) | Method and system for managing cache injection in a multiprocessor system | |
US6687818B1 (en) | Method and apparatus for initiating execution of an application processor in a clustered multiprocessor system | |
US5987538A (en) | Apparatus for initiating generation of an inter-processor interrupt by a peripheral device not directly connected to any of the multi-processor local interrupt controllers | |
WO2004006097A2 (en) | Multi-processor computer system | |
JPH0430053B2 (ko) | ||
US9342474B2 (en) | Switching a computer system from a high performance mode to a low power mode | |
US4851992A (en) | Register/saving/restoring system for saving and restoring data in a register of a slave processor | |
EP1393175A2 (en) | A resource management method | |
KR100426214B1 (ko) | 공유 메모리 멀티프로세서의 제어방법 | |
US20100005275A1 (en) | Multiprocessing system | |
US6202131B1 (en) | Method and apparatus for executing variable delay system bus operations of differing type or character without dead lock using shared buffers | |
US6857052B2 (en) | Multi-processor system including a mode switching controller |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
N231 | Notification of change of applicant | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20090302 Year of fee payment: 6 |
|
LAPS | Lapse due to unpaid annual fee |