KR100426214B1 - Method for controlling shared memory multiprocessor - Google Patents
Method for controlling shared memory multiprocessor 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
Description
본 발명은 공유 메모리 멀티프로세서(Shared Memory Multiprocessor : 이하 "SMP"라 약칭함)에 관한것으로서, 보다 상세하게는 시스템 사용자가 SMP 시스템을 운영할 경우 각각의 마이크로 프로세서(Micro Processor : 이하 "MPU"라 약칭함)를 필요에 따라 온라인(Online) 또는 오프라인(Offline)상태로 전환할때 시스템 동작 중 MPU 보드를 교체할수 있는 핫-스왑핑(Hot-swapping)기능을 실행함으로써, 전체 시스템 성능을 향상시키도록 하는 공유 메모리 멀티프로세서의 제어방법에 관한 것이다.The present invention relates to a shared memory multiprocessor (hereinafter abbreviated as "SMP"), and more specifically, when a system user operates an SMP system, each microprocessor (hereinafter referred to as "MPU"). Abbreviation) to improve the overall system performance by enabling the hot-swapping function, which allows the MPU board to be replaced during system operation when switching to online or offline as needed. The present invention relates to a control method of a shared memory multiprocessor.
도 1은 일반적인 SMP 시스템을 보인 구성도로서, 도시된 바와 같이 시스템 버스(System Bus)를 공유하며, 다수개의 프로세서로 구성되는 마이크로 프로세서(MPU) 보드(110a ∼ 110n)와; 상기 시스템 버스를 공유하여 데이터를 저장 및 판독하는 메모리 보드(120)와; 상기 각 MPU 보드(100a ∼ 100n)로부터 입/출력 요구를 받아 이를 처리하는 입출력 보드(IOP)(130) 및 상기 시스템 버스에 연결된 각 시스템을 제어하기 위한 시스템 제어 보드(SCM)(140)로 구성된다.1 is a block diagram showing a general SMP system, which shares a system bus as shown, and includes microprocessor (MPU)
상기와 같이 구성된 SMP 시스템에서, 다수개의 MPU(100a ∼100n)는 메모리 보드(120)에 대해 공용으로 액세스(access)하며, 상기 입출력 보드(130)를 통해 입출력 제어를 수행한다. 이때, 상기 MPU(100a ∼ 100n) 각각에 대해 종래에는 콜드-온라인(Cold Online)과 콜드-오프라인(Cold Offline)의 두가지 상태로 상호 전환함으로써, MPU를 제어하였다.In the SMP system configured as described above, the plurality of MPUs 100a to 100n access the
즉, 도 2는 종래 기술에 의한 MPU의 2-상태(two-state) 천이도를 보인 블록 구성도로서, 도시된 바와 같이 콜드-온라인 상태(140)와 콜드-오프라인 상태(142)로 구성되어, 각 MPU(100a ∼ 100n) 상태를 제어한다.That is, FIG. 2 is a block diagram showing a two-state transition diagram of an MPU according to the prior art, and is composed of a cold-
이때, MPU가 콜드-오프라인 상태(142)이면 시스템 내의 메모리 버스와 내부/외부 캐쉬 메모리의 액세스가 중단되어, 상기 MPU를 재시동하려면 펌웨어(Fimrware)로 하여금 MPU 상태를 초기화 하는 리셋(Reset)동작이 필요하였고 또한, 상기 MPU상태를 오프라인으로 변화하는 경우에는 소프트웨어적으로 노오프(NOP : No operation) 루프로 천이시킴으로써 수행이 가능하였다.At this time, when the MPU is in the cold-
그러나 상기와 같은 종래 기술에 의한 MPU는 펌웨어로 하여금 MPU 상태를 초기화 하는데 필요한 하드웨어 리셋 동작중에 외부와 내부의 전기적인 조건에 의해 고장(fail)이 발생할 가능성이 있는 문제점이 있었다.However, the conventional MPU has a problem that a failure may occur due to external and internal electrical conditions during a hardware reset operation required for the firmware to initialize the MPU state.
또한, 콜드-오프라인 상태에 있는 MPU를 온라인 상태로 천이시키는 경우 시간이 많이 걸리고, MPU 보드에 대한 핫-스왑핑 기능이 없어서 시스템 성능이 저하되는 문제점이 있었다.In addition, when the MPU in the cold-offline state transitions to the online state takes a lot of time, there is a problem that the system performance is degraded because there is no hot-swap function for the MPU board.
따라서, 본 발명의 목적은 상기한 종래 기술의 문제점을 해결하기 위한것으로서, 공유메모리를 사용하는 각각의 MPU상태를 온라인 또는 오프라인 상태로 전환할 때 전체 시스템 성능에 최소한의 영향을 미치면서 MPU를 제어 하고 또한, 핫-스왑핑 기능을 추가하여 시스템 동작중에도 MPU 보드를 교체함으로써, 시스템의 성능을 향상 시킬수 있도록 하는 SMP의 제어방법을 제공함에 있다.Accordingly, an object of the present invention is to solve the above-mentioned problems of the prior art, and to control the MPU with minimal impact on the overall system performance when switching each MPU state using the shared memory to online or offline state. In addition, by adding a hot-swapping function to replace the MPU board during system operation, it provides an SMP control method that can improve the performance of the system.
도 1은 일반적인 공유 메모리 멀티프로세서 시스템을 보인 구성도.1 is a block diagram illustrating a general shared memory multiprocessor system.
도 2는 종래 기술에 의한 마이크로 프로세서의 2-상태 천이도를 보인 블록 구성도.Figure 2 is a block diagram showing a two-state transition diagram of a microprocessor according to the prior art.
도 3은 본 발명에 의한 마이크로 프로세서의 4-상태 천이도를 보인 블록 구성도.Figure 3 is a block diagram showing a four-state transition diagram of a microprocessor according to the present invention.
도 4는 본 발명 공유 메모리 멀티프로세서의 제어방법에 따른 마이크로 프로세서의 핫-스왑핑 과정을 보인 흐름도.4 is a flowchart illustrating a hot swapping process of a microprocessor according to a method of controlling a shared memory multiprocessor of the present invention.
도 5는 도 3에 따른 웜-오프라인과 웜-온라인 상태의 마이크로 프로세서를 제어하는 프로그램 실시예의 표시도.5 is a representation of a program embodiment for controlling a microprocessor in a warm-offline and warm-online state according to FIG.
<도면의 주요부분에 대한 부호의 설명><Description of Symbols for Main Parts of Drawings>
110a ~ 110n : 제 1 내지 제 n 마이크로 프로세서 보드110a to 110n: first to nth microprocessor board
120 : 메모리 보드 130 : 입출력 보드120: memory board 130: input / output board
140 : 시스템 제어 보드140: system control board
본 발명의 목적을 달성하기 위한 SMP의 제어방법은 동작중인 각 프로세서를콜드-오프라인 상태로 천이시켜 대기상태를 유지하고, 프로세서 보드의 핫-스왑핑 여부를 검지하는 제 1 과정과; 상기 대기상태에서 사용자에 의해 프로세서 보드의 교체를 완료했는지를 검지하는 제 2 과정과; 상기 프로세서 보드의 교체를 완료한 경우 해당 프로세서 보드를 각 모드에 따라 리셋시킨 후 다른 프로세서들을 대기상태에서 웨이크업시키는 제 3 과정으로 이루어짐을 특징으로 한다.The control method of the SMP to achieve the object of the present invention includes a first step of transitioning each processor in a cold-offline state to maintain a standby state, and detects whether the processor board hot-swapping; Detecting whether the processor board has been replaced by the user in the standby state; When the replacement of the processor board is completed, a third process of waking up other processors from the standby state after resetting the processor board according to each mode is characterized in that it is made.
이하에서는 본 발명의 바람직한 실시예를 첨부된 도면을 참조하여 상세히 설명하면 다음과 같다.Hereinafter, described in detail with reference to the accompanying drawings a preferred embodiment of the present invention.
본 발명을 구현하기 위한 공유 메모리 프로세서 시스템은 도 1에 도시된 바와 같이 종래기술과 동일하므로, 이하 생략한다.Shared memory processor system for implementing the present invention is the same as the prior art as shown in Figure 1, it will be omitted below.
도 3은 본 발명에 의한 MPU의 4-상태 천이도를 보인 블록 구성도로서, 콜드-오프라인(150), 콜드-온라인(152), 웜-온라인(154), 웜-오프라인(156)의 4가지 MPU 상태로 구성되며, 콜드-오프라인 상태(150)는 MPU 보드의 핫-스왑핑 기능을 가능하게 한다.3 is a block diagram showing a four-state transition diagram of an MPU according to the present invention, and shows four elements of a cold-offline 150, a cold-online 152, a warm-online 154, and a warm-offline 156. Branched MPU state, the cold-
여기에서, 상기 MPU의 4-상태 천이도에서 오프라인 상태의 MPU는 메모리 버스와 내부/외부 캐쉬 메모리의 액세스가 중단되지 않고, 캐쉬상에서 무한 루프를 수행한다.Here, in the 4-state transition diagram of the MPU, the offline MPU performs an infinite loop on the cache without interrupting access of the memory bus and the internal / external cache memory.
또한, 온라인 상태의 MPU는 하드웨어 상태를 설정함은 물론, 자원(resource)들을 할당하고, 가상 메모리 서브시스템(Virtual Memory Subsystem)에 의해 변환 참조 버퍼(Translation Lookaside Buffer)에 있는 내용을 지우도록 하며, 프로세스 서브 시스템으로 하여금 온라인된 새로운 MPU를 처리하도록 하는 등 각각의 서브시스템에 대하여 신호를 보내는 것들을 포함하고 있다.In addition, the online MPU sets the hardware state, allocates resources, and erases the contents of the Translation Lookaside Buffer by the Virtual Memory Subsystem. It includes signaling for each subsystem, such as causing the process subsystem to process new MPUs that are online.
도 4는 본 발명 SMP의 제어방법에 따른 MPU의 핫-스왑핑 과정을 보인 흐름도로서, 소정 MPU가 웜-오프라인 상태에서 스왑이 발생하여 콜드-오프라인 상태로 천이되는 단계(ST10 ∼ ST16)와; 상기 콜드-오프라인 상태(ST16)에서 다른 MPU들은 콜드-오프라인 상태의 해당 MPU에서 핫-스왑핑이 일어나는 것에 대비하여 펌웨어 영역의 특정 변수를 감시하는 대기 단계(ST18)와; 상기 대기 단계(ST18)에서 핫-스왑핑이 실행된 해당 MPU는 리셋 사이클을 수행한 후, 펌 웨어상의 모니터 변수를 설정하는 단계(ST20 ∼ ST26)와; 상기 단계(ST20 ∼ ST26)에서 모니터 변수에 의해 대기하고 있던 다른 MPU들을 웨이커업 시키고 다시 웹-오프라인 상태로 리턴(Return)하는 단계(ST28)로 이루어진다.4 is a flowchart illustrating a hot-swapping process of an MPU according to the control method of the SMP of the present invention, in which a predetermined MPU is swapped in a warm-off state and transitions to a cold-off state (ST10 to ST16); In the cold-offline state (ST16), the other MPUs are waiting for a specific variable in the firmware area in preparation for hot swapping in the corresponding MPU in the cold-offline state (ST18); Setting a monitor variable on the firmware after performing a reset cycle of the corresponding MPU in which the hot swapping is performed in the waiting step (ST18) (ST20 to ST26); In step ST20 to ST26, the other MPUs waiting by the monitor variable are woken up and returned to the web-offline state (ST28).
도 5는 상기 MPU의 4-상태 천이도에서 웜-오프라인과 웜-온라인 상태의 MPU를 제어하는 프로그램 실시예의 표시도로서, 도 5a는 MPU가 오프라인 상태에서 동작되는 루프이고, 도 5b는 오프라인 상태의 MPU가 온라인 상태로 천이되는 루프이다.FIG. 5 is a diagram of a program embodiment for controlling an MPU in a warm-offline and warm-online state in a four-state transition diagram of the MPU. FIG. 5A is a loop in which the MPU is operated in an offline state, and FIG. 5B is in an offline state. Is a loop in which the MPU transitions to an online state.
이와같이 구성된 본 발명의 작용을 도 3 내지 도 5를 참조하여 상세히 설명하면 다음과 같다.The operation of the present invention configured as described above will be described in detail with reference to FIGS. 3 to 5.
먼저, MPU의 4-상태 구성에서 콜드-오프라인 상태(150)는 시스템 부팅시에 하드웨어 리셋에 의해 콜드-온라인(152)상태로 천이된다. 상기 콜드-온라인 상태(152)에서는 소프트웨어적으로 커널 영역이 초기화 된 후 웜-온라인 상태(154)로 천이되며, 시스템 동작중에 모든 온라인 또는 오프라인의 요구는웜-온라인(154)과 웜-오프라인(156) 상태에서만 발생한다.First, in the 4-state configuration of the MPU, the cold-
또한, 상기 웜-오프라인과 웜-온라인 상태에서의 MPU 제어 실시예는 도 5a, 도 5b에 도시된 바와 같다.In addition, embodiments of the MPU control in the warm-offline and warm-online states are as shown in FIGS. 5A and 5B.
즉, 도 5a에서 웜-오프라인 MPU 변수값(X)을 임의의 값(X)으로 설정한 상태에서, 오프라인 MPU의 변수값(X)을 "1"로 설정하면, 상기 변수값이 "1"로 설정되어 있는 동안에는 계속해서 웜-오프라인 MPU가 반복 수행된다. 상기 웜-오프라인 상태의 MPU가 수행되는 도중 오프라인 MPU의 변수값이 "0"으로 변환하게 되면 웜-온라인 상태(154)로 천이되면서 상기 웜-오프라인 상태(156)를 벗어나게 된다.That is, in the state in which the warm-offline MPU variable value X is set to an arbitrary value X in FIG. 5A, when the variable value X of the offline MPU is set to "1", the variable value is "1". While it is set to, the warm-offline MPU is repeatedly executed. If the variable value of the offline MPU is changed to "0" while the warm-off-line MPU is performed, the transition to the warm-
이와같이, 상기 소프트웨어적으로 MPU의 변수값을 제어하므로써, 오프라인 상태에서 온라인으로 MPU상태를 천이 시키는데 속도가 빠르다.In this way, by controlling the variable value of the MPU in software, the speed of transitioning the MPU state from off-line to online is high.
한편, 상기 콜드-오프라인 상태(150)는 시스템 동작중에 MPU 보드를 교체하기 위한 핫-스왑 기능을 가능하게 해준다.Meanwhile, the cold-
상세히 설명하면, 상기 각각의 MPU(110a ∼ 110n)는 시스템 동작중에 웜-오프라인 상태(156)에서 MPU 제어 명령에 의해 스왑이 발생하면 콜드-오프라인 상태(150)로 천이 된다. 이때, 상기 콜드-오프라인 상태(150)에 있는 MPU를 제외한 다른 프로세서들은 콜드-오프라인 상태(150)에서의 MPU 핫-스왑핑을 대비하기 위해 모든 인터럽트를 디세이블(disable) 시키고, 펌웨어 영역의 특정 변수를 감시하면서 대기(wait) 상태로 리턴한다. 상기 대기상태는 시스템에 설치된 발광다이오드(LED)의 온/오프(ON/OFF)로서 표시된다.In detail, each of the
계속해서, 시스템 사용자는 상기 LED의 온 상태를 확인하면서 콜드-오프라인상태(150)에 있는 MPU 보드에 대해 핫-스왑핑을 수행하고, 상기 핫-스왑핑된 MPU는 초기화 리셋 사이클을 수행하게 된다. 이때 상기 MPU의 펌웨어는 시스템이 펌웨어 모드 또는 오퍼레이팅 시스템 모드냐에 따라 다른 리셋 사이클을 수행하는데, 오퍼레이팅 시스템 모드인 경우는 바로 오퍼레이팅 시스템의 일부 코드를 수행시켜 콜드-오프라인 상태(150)로 들어가게 된다. 상기 핫-스왑핑이 종료된 MPU는 리셋 사이클 종료 후, 펌웨어상의 모니터 변수를 설정하고, 상기 모니터 변수에 의해 대기중인 다른 프로세서들이 웨이크업 된다.Subsequently, the system user performs a hot-swap on the MPU board in the cold-
이상에서 상세히 설명한 바와 같이, 본 발명은 콜드-오프라인 상태에서 핫-스왑핑을 실시함으로써, 시스템 동작중에 마이크로 프로세서 보드를 교체할수 있어 시스템의 전체 성능을 향상시킬수 있으며, 또한 웜-오프라인 상태에 있는 마이크로 프로세서를 온라인 상태로 천이시키는 속도가 빨라 보다 안정적으로 시스템을 사용할수 있는 효과가 있다.As described in detail above, the present invention can improve the overall performance of the system by performing a hot-swap in the cold-offline state, so that the microprocessor board can be replaced during system operation, and also in the warm-off state micro The speed of transitioning the processor to the online state is faster, which makes the system more stable.
Claims (5)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1019970013734A KR100426214B1 (en) | 1997-04-15 | 1997-04-15 | Method for controlling shared memory multiprocessor |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1019970013734A KR100426214B1 (en) | 1997-04-15 | 1997-04-15 | Method for controlling shared memory multiprocessor |
Publications (2)
Publication Number | Publication Date |
---|---|
KR19980076859A KR19980076859A (en) | 1998-11-16 |
KR100426214B1 true KR100426214B1 (en) | 2004-06-18 |
Family
ID=37329310
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1019970013734A KR100426214B1 (en) | 1997-04-15 | 1997-04-15 | Method for controlling shared memory multiprocessor |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR100426214B1 (en) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102060431B1 (en) * | 2012-08-24 | 2020-02-11 | 삼성전자주식회사 | Apparatus and method for managing power in multi-core system |
-
1997
- 1997-04-15 KR KR1019970013734A patent/KR100426214B1/en not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
KR19980076859A (en) | 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 (en) | Multiprocessor control device, multiprocessor control method, and multiprocessor control circuit | |
CN1717645B (en) | Apparatus and method for multi-threaded processors performance control | |
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 (en) | Multiprocessor system and its initialization function distributed and self-diagnostic system and method | |
US5495569A (en) | Circuit for ensuring that a local interrupt controller in a microprocessor is powered up active | |
JP2002215597A (en) | Multiprocessor device | |
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 (en) | ||
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 (en) | Method for controlling shared memory multiprocessor | |
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 |