KR100426214B1 - 공유 메모리 멀티프로세서의 제어방법 - Google Patents

공유 메모리 멀티프로세서의 제어방법 Download PDF

Info

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
Application number
KR1019970013734A
Other languages
English (en)
Other versions
KR19980076859A (ko
Inventor
서경원
Original Assignee
엘지엔시스(주)
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 엘지엔시스(주) filed Critical 엘지엔시스(주)
Priority to KR1019970013734A priority Critical patent/KR100426214B1/ko
Publication of KR19980076859A publication Critical patent/KR19980076859A/ko
Application granted granted Critical
Publication of KR100426214B1 publication Critical patent/KR100426214B1/ko

Links

Images

Classifications

    • 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/4411Configuring for operating with peripheral devices; Loading of device drivers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/24Resetting means
    • 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/544Buffers; 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. 동작중인 각 프로세서를 콜드-오프라인 상태로 천이시켜 대기상태를 유지하고, 프로세서 보드의 핫-스왑핑 여부를 검지하는 제 1 과정과; 상기 대기상태에서 사용자에 의해 프로세서 보드의 교체를 완료했는지를 검지하는 제 2 과정과; 상기 프로세서 보드의 교체를 완료한 경우 해당 프로세서 보드를 각 모드에 따라 리셋시킨 후 다른 프로세서들을 대기상태에서 웨이크업시키는 제 3 과정으로 이루어짐을 특징으로 하는 공유 메모리 멀티프로세서의 제어방법.
  2. 제 1항에 있어서, 상기 제 1 과정은 해당 프로세서가 웜-오프라인 상태에서 스왑이 발생하여 콜드-오프라인 상태로 천이되는 단계와; 상기 단계에서 해당 프로세서의 핫-스왑핑에 대비하여 기타 프로세서들의 모든 인터럽트를 디세이블하고, 펌웨어상의 특정 변수을 감시하는 대기 단계로 이루어짐을 특징으로 하는 공유 메모리 멀티 프로세서의 제어방법.
  3. 제 1항에 있어서, 상기 제 3 과정은 해당 프로세서를 리셋 시키는 단계와; 상기 리셋 사이클을 종료한 후 펌웨어상의 모니터 변수를 설정하는 단계와; 상기 모니터 변수에 의해 대기하고 있는 다른 프로세서들을 웨이크업 시키는 단계로 이루어짐을 특징으로 공유 메모리 멀티 프로세서의 제어방법.
  4. 제 1항에 있어서, 상기 프로세서 핫-스왑핑은 프로세서의 콜드-오프라인 상태에서 실행됨 특징으로 하는 공유 메모리 멀티 프로세서의 제어방법.
  5. 제 3항에 있어서, 상기 해당 프로세서의 리셋 사이클은 펌웨어가 오퍼레이팅 시스템 모드 또는 펌웨어 모드냐에 따라 각각 다른 리셋 사이클을 수행함을 특징으로 하는 공유 메모리 멀티 프로세서의 제어방법.
KR1019970013734A 1997-04-15 1997-04-15 공유 메모리 멀티프로세서의 제어방법 KR100426214B1 (ko)

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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102060431B1 (ko) * 2012-08-24 2020-02-11 삼성전자주식회사 멀티 코어 시스템의 전력 관리 장치 및 방법

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