KR100279830B1 - 마이크로 콘트롤러와 퍼스널 컴퓨터 호환 아이사 버스 사이의 공 - Google Patents

마이크로 콘트롤러와 퍼스널 컴퓨터 호환 아이사 버스 사이의 공 Download PDF

Info

Publication number
KR100279830B1
KR100279830B1 KR1019990003317A KR19990003317A KR100279830B1 KR 100279830 B1 KR100279830 B1 KR 100279830B1 KR 1019990003317 A KR1019990003317 A KR 1019990003317A KR 19990003317 A KR19990003317 A KR 19990003317A KR 100279830 B1 KR100279830 B1 KR 100279830B1
Authority
KR
South Korea
Prior art keywords
bus
shared memory
controller
management controller
system management
Prior art date
Application number
KR1019990003317A
Other languages
English (en)
Other versions
KR20000054941A (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 KR1019990003317A priority Critical patent/KR100279830B1/ko
Publication of KR20000054941A publication Critical patent/KR20000054941A/ko
Application granted granted Critical
Publication of KR100279830B1 publication Critical patent/KR100279830B1/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/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • G06F15/17306Intercommunication techniques
    • G06F15/17331Distributed shared memory [DSM], e.g. remote direct memory access [RDMA]

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)

Abstract

퍼스널 컴퓨터와 호환 가능한 구조를 가지는 서버 시스템에서, 시스템을 직접 관리하는 마이크로 콘트롤러를 포함하는 하드웨어 부분과 시스템 관리를 위한 사용자 인터페이스를 제공하는 응용 프로그램 또는 시스템 운영 체제 사이에 서로 공유할 수 있는 메모리를 구현하여, 시스템 관리와 관련되는 다수의 메시지를 빠르고 효과적으로 상호 주고 받을 수 있게 하는 장치에 관하여 개시한다.
80C51 계열의 마이크로 콘트롤러는 일반적으로 칩 하나가 단독으로 외부 메모리를 액세스 할 수 있도록 설계되며, 다른 마스터 디바이스와의 버스 공유는 고려되지 않는다. 본 발명에서는 이러한 제어기의 제약을 극복하고 버스를 공유하기 위해 ISA 버스보다 타이밍이 상대적으로 느슨한 80C51 계열 마이크로 콘트롤러의 버스 주기에 ISA 버스 주기가 끼어드는 방식을 채택하였다. 두 개의 주기가 충돌하지 않도록 철저한 타이밍 제어가 필요하며 이를 위해 액세스 타이밍이 빠른 프로그래머블 디바이스를 사용하였다. 본 발명은 또한 이렇게 구현한 공유 메모리 메커니즘을 이용하여 시스템 관리에 사용되는 I2C 버스와 응용 프로그램이 실행되는 메인 프로세서 사이에 정보를 주고받는 서버 관리 시스템을 포함한다. 이 공유 메모리 메커니즘을 이용하여 마이크로 콘트롤러에서 운영되는 프로그램 코드를 호스트 버스에서 직접 다운로드 할 수 있는 장점이 있다.
본 발명의 구성은 마이크로 시스템 관리 제어기, 플래시 메모리, 공유메모리, 실시간 클럭, 마이크로 시스템 관리 제어기 인터페이스 버퍼, 공유 메모리 액 세스 제어기, 플래시 제어, 전원 오동작 인터럽트, 시스템 관리 버스 인터럽트, 및 입출력 프로그래머블 인터럽트 제어기 등으로 이루어진다.

Description

마이크로 콘트롤러와 퍼스널 컴퓨터 호환 아이사 버스 사이의 공유 메모리를 통한 서버 관리 시스템{Server management system utilizing the shared memory interface between a micro controller and PC compatible ISA bus}
본 발명은 퍼스널 컴퓨터와 호환 가능(compatible)한 구조를 가지는 서버 시스템에서, 시스템을 직접 관리하는 마이크로 콘트롤러를 포함하는 하드웨어 부분과 시스템 관리를 위한 사용자 인터페이스를 제공하는 응용 프로그램 또는 시스템 운영 체제 사이에 공유 가능한 메모리(shared memory)를 구현하여, 시스템 관리와 관련되는 다수의 메시지를 빠르고 효과적으로 상호 주고 받을 수 있게 하는 장치에 관한 것이다. 특히 본 발명은 서로 다른 버스 사이에 공유 메모리를 구현하는 장치에 관한 것으로, 주로 시스템 관리 제어기(system management controller)로 사용되는 80C51 계열의 마이크로 콘트롤러와 인텔 X86 계열의 프로세서를 사용하는 퍼스널 컴퓨터(PC) 호환 시스템의 롬 바이오스 주소 공간(ROM BIOS address space)이 위치하는 입출력 버스인 ISA 버스 사이에 공유 메모리를 구현하는 장치에 관한 것이다.
도 1 은 종래 기술에 의한 시스템 관리 블록도이다. 도시된 바와 같이, 호스트(host)에서 I2C 버스를 통해 시스템 관리와 연관된 정보를 얻거나 명령어(command)를 보내기 위해서는, I2C 버스 제어기에 필요한 명령어를 쓰거나(write) 상기 I2C 버스 제어기로부터 정보 데이터를 읽어야 했다(read). 이 때, 상기 I2C 버스 제어기는 병렬 신호를 직렬 신호로 변환시키는 변환기(parallel-to-serial converter) 기능을 가지며, PC와 호환 가능한 8 비트 ISA 버스와 연결되어 있다. I2C 버스 제어기는 한 번에 한 개의 명령어만을 처리할 수 있으며, 인터럽트(interrupt) 방식 또는 폴링(polling) 방식을 사용하여 호스트 측 프로세서(host side processor) 또는 제어기와 인터페이스 하도록 설계되어 있다.
도 1 에 나타난 시스템 관리 블록도는 시스템의 메인 프로세서에서 운영되는 시스템 관리와 연관된 프로그램이 시스템 관리 버스인 I2C 버스를 통하여 I2C 슬레이브 디바이스를 제어함으로써, 시스템을 제어하거나 시스템의 운영 정보와 환경 정보들을 얻을 수 있도록 설계된 것을 나타낸다. 시스템을 제어하기 위해서는 시스템 전원 온/오프 제어, 시스템 리셋, 시스템 구성(configuration), 및 초기화(initialization) 등을 포함한다. 시스템의 운영 정보(running status)에는 각종 오류 상태(error status), 특정 신호의 상태, 및 시스템의 현재 진행 단계 등이 포함되고, 환경 정보(environment status)에는 각종 전압 출력 레벨, 주요 부위의 온도 정보, 팬(fan) 정보, 및 기타 시스템 기구에 대한 상태 정보 등이 포함된다. 상기 도의 큰 특징은, 시스템 관리 버스와 연결된 I2C 디바이스들을 메인 프로세서가 제어하고, I2C 버스 제어기는 단지 메인 프로세서가 보내는 명령어를 수행하기만 한다는 점이다.
종래 기술의 동작 원리를 자세히 살펴보면, 시스템 관리와 관련된 프로그램이 메인 프로세서(1)에서 운영되는 동안 I2C 버스(8)에 액세스할 필요가 발생하면, 메인 프로세서(1)는 브리지(bridge)(5)에 연결된 PC 호환 ISA 버스(6)를 통하여 상기 도 1 의 I2C 버스 제어기(7) 내에 있는 레지스터에 데이터를 쓰거나(write) 레 지스터로부터 데이터를 읽는다. 상기 I2C 버스 제어기(7)에는 데이터 쉬프트 레지스터와 버스 버퍼가 있다. 데이터 쉬프트 레지스터는 다음과 같이 두 가지 모드로 동작한다. 즉, 메인 프로세서(1)가 I2C 버스(8)에 데이터를 보낼 때에는 전송 모드(transmitter mode)로 동작하고, I2C 버스(8)로부터 데이터를 읽을 때에는 수신 모드(receiver mode)로 동작한다.
상기 I2C 버스 제어기(7)를 통해 I2C 버스에 액세스하기 위해서는 복잡한 액세스 과정(access sequence)을 거쳐야 한다.
먼저 I2C 버스에 데이터를 보내고자 할 때, 즉, 전송 모드인 경우, 메인 프로세서는 제어기의 상태 레지스터(status register)를 읽어 I2C 버스가 사용 중인지(busy) 아니면 미사용 상태인지(free) 확인한다. 버스가 미사용 상태이면 슬레이브 주소를 제어기에 보내고(write) 제어 레지스터를 설정하여 시작 조건(start condition)과 함께 I2C 버스가 동작(operate)하도록 한다. 제어기는 데이터를 슬레이브 디바이스로 보내는 중이기 때문에 (R/W_=0, 즉 쓰기 상태), 마스터 전송 모드 상태를 계속해서 유지한다.
메인 프로세서는 I2C 버스를 통하여 전송이 완료되었는지 알기 위해 상태 레지스터를 계속해서 폴링(polling)한다. 전송이 완료되면, S1 상태 레지스터(LRB)를 읽어서 슬레이브 승인(slave acknowledge)이 정상적으로 이루어졌는지 확인한다. 슬레이브 승인이 정상이었다면, 전송할 데이터를 버스 버퍼 레지스터 S0에 로딩(load)한 후 버스로 전송하고, 전송의 완료 여부를 계속해서 폴링한다. 이와 같은 방법으로 필요한 데이터를 모두 전송한 후, 레지스터 S1에 0xC3을 로딩하면, I2C 버스 인터페이스 칩인 PCF8584는 정지 조건('stop' condition)을 발생하게 되어 모든 버스 동작이 완료된다.
다음으로, I2C 버스에서 데이터를 읽어오는 것, 즉, 마스터 수신 모드인 경우에도 위와 동일한 방식으로 I2C 버스 제어기를 제어하여 이루어진다. 단지 다른 것은, 데이터 위상(phase)에서 슬레이브 디바이스로부터 전송된 데이터를 S0 읽기 버퍼 레지스터에서 읽는다는 점이다.
이상에서 보았듯이, 종래의 방법은 I2C 버스에 액세스하려면 복잡한 과정을 거치게 되어 제어가 어려울 뿐만 아니라 I2C 버스에 액세스하는데 필요한 모든 제어를 메인 프로세서가 수행함으로써 메인 프로세서에 부담(overhead)으로 작용하기 때문에, 시스템 관리를 하기 위해서는 시스템의 성능 저하가 불가피하다. 그리고 여러 단계의 버스를 거쳐 상기 과정이 수행되기 때문에 하나의 관리 작업(management activity)에 소요되는 시간의 절대량이 증가하는 단점이 있다.
예를 들어, 시스템의 온도, 전압, 팬의 동작 상태 등을 주기적으로 관찰(monitor)할 필요가 있는 경우에, 메인 프로세서는 상기 요소 중의 하나에 해당하는 값을 구하기 위해 앞서 설명한 복잡한 과정을 모두 거쳐야 하며, 또한 이를 반복적으로 수행하기 때문에, 메인 프로세서들 중의 하나는 상기 관리를 위해 거의 모든 시간을 소비해야 하므로 시스템 성능이 저하된다.
따라서 본 발명은 상기한 바와 같이 동작하는 종래 기술의 문제점을 해결하 기 위하여 창안된 것으로서, 종래 기술에서 나타났던 시스템 관리 버스를 제어하는데 따르는 복잡함과, 시스템 관리를 위한 단위 작업(activity)에 소요되는 과다한 절대 시간 및 이들 작업의 복잡한 과정을 메인 프로세서가 수행함에 따른 시스템 성능 감소 등의 문제를 해결하기 위하여, 시스템 관리 전용 마이크로 콘트롤러를 채용하고 메인 프로세서와 마이크로 콘트롤러 사이에 동시 액세스가 가능한 공유 메모리를 설치하여 필요한 정보를 빠르게 주고받는 것을 목적으로 한다. 즉, 마이크로 콘트롤러는 공유 메모리를 통하여 메인 프로세서가 보내온 명령어를 수행하고 여기에서 얻은 정보를 공유 메모리의 약정된 위치에 계속해서 업데이트함으로써, 메인 프로세서가 필요로 할 때마다 해당 정보를 빠르게 읽어갈 수 있게 하는 것을 목적으로 한다.
본 발명은, 또한 메인 프로세서와 마이크로 콘트롤러 사이에 인터럽트 신호를 주고받을 수 있게 함으로써, 긴급한 상황이 발생할 경우, 서로 인터럽트 신호를 발생시켜 긴급 상황을 알리는 것을 목적으로 한다.
본 발명은, 특히, 시스템 관리 제어기로 널리 사용되는 80C51 계열의 마이크로 콘트롤러가 지니고 있는 하드웨어적인 제약 사항, 즉, 외부 메모리 버스(external memory bus)에 대하여 공유할 수 있는 구조로 되어있지 않고 단독 액세스만이 가능한 구조를 갖는 제약을 극복하고, 메인 프로세서의 PC 호환 가능한 입출력 버스인 ISA 버스와 메모리를 공유할 수 있도록 하드웨어적 장치를 제시함으로 빠르고 편리하며 효과적인 시스템 관리가 가능하도록 하는 것을 목적으로 한다.
본 발명은, 또한 공유 메모리 메커니즘을 통해, 플래시 메모리(flash memory)에 저장되어 있는 마이크로 콘트롤러의 펌웨어(firmware)를 메인 프로세서를 통해 다운로드 할 수 있는 기능을 제공하는 것을 목적으로 한다.
본 발명의 다른 목적과 장점은 하기된 발명의 상세한 설명을 읽고 첨부된 도면을 참조하면 보다 명백해질 것이다.
도 1 은 종래 기술에 의한 시스템 관리 블록도.
도 2 는 본 발명의 전체 구성도.
도 3 은 본 발명의 공유 메모리 구조에 대한 블록도.
도 4 는 마이크로 시스템 관리 제어기에서 플래시 메모리의 코드 읽기 타이밍도.
도 5 는 마이크로 시스템 관리 제어기에서 SRAM과 RTC의 데이터 읽기 타이밍도.
도 6 은 마이크로 시스템 관리 제어기에서 SRAM과 RTC의 데이터 쓰기 타이밍도.
도 7 은 본 발명에 의한 공유 메모리 액세스 제어기의 상태도.
도 8 은 도 7 의 상태도 천이에 필요한 조건식.
도 9 는 도 7 의 상태도의 각 상태에 대한 설명 및 구동 신호들.
도 10 은 본 발명의 타이밍 도의 일 실시예.
<도면의 주요 부분에 대한 부호의 설명>
101: 메인 프로세서102: 시스템 프로세서 버스
103: 호스트-to-PCI 브리지104: PCI 입출력 버스
105: PCI-to-ISA 브리지106: PC 호환 ISA 버스
107: I2C 버스 제어기108: 시스템 관리 I2C 버스
109a,109b,109c,109d,109e: I2C 슬레이브 디바이스
201: 마이크로 콘트롤러(마이크로 시스템 관리 제어기)
202,302: 플래시 메모리203,303: 공유 SRAM
204,304: 실시간 클럭(RTC)205,305: 공유 메모리 액세스 제어기(SMAC)
206: 플래시 제어부207,307a,307b,307c: ISA 버스 인터페이스 버퍼
208,308a,308b,308c: 마이크로 시스템 관리 제어기 인터페이스 버퍼
209: 입출력 프로그래머블 인터럽트 제어기(IOAPIC)
210: 전원 오동작 인터럽트(PFI)부
211: 시스템 관리 버스 인터럽트부
212: 내부 디버그 벌크헤드용 직렬 포트
상기한 바와 같은 목적을 달성하기 위하여 창안된 본 발명의 바람직한 실시예는,
컴퓨터와 호환 가능한 구조를 가지는 서버 시스템에서,
시스템 관리를 전담하는 마이크로 시스템 관리 제어기;
마이크로 시스템 관리 제어기에서 운영되는 프로그램이 저장되는 플래시 메모리;
마이크로 시스템 관리 제어기와 메인 프로세서가 동시에 액세스 할 수 있는 데이터 영역을 제공하는 공유 SRAM;
마이크로 시스템 관리 제어기에 날짜 정보를 제공하고 마이크로 시스템 관리 제어기의 워치독 타이머 역할을 하는 실시간 클럭;
공유된 메모리를 제어하고 버퍼를 제어하는 신호를 발생하는 공유 메모리 액세스 제어기;
마이크로 시스템 관리 제어기를 리셋하고 주소 코딩을 하도록 제어하는 플래시 제어부;
버스를 연결 또는 분리시키는 ISA 버스 인터페이스 버퍼;
시스템에서 발생하는 모든 인터럽트 신호를 메인 프로세서에게 연결시키는 입출력 프로그래머블 입터럽트 제어기(Input Output Advanced Programmable Interrupt Controller: IOAPIC);
데이터를 래치하는 마이크로 시스템 관리 제어기 인터페이스 버퍼;
시스템에 공급되는 전원이 오동작할 경우 마이크로 시스템 관리 제어기로 인터럽트 신호를 발생시키는 전원 오동작 인터럽트부;
슬레이브 디바이스에 이상이 발생했을 때 마이크로 시스템 관리 제어기에 인터럽트 신호를 발생시키는 시스템 관리 버스 인터럽트부; 및
마이크로 시스템 관리 제어기와 사용자 사이에 대화식 동작을 지원하는 내부 디버그 벌트헤드 직렬 포트를 포함하여 이루어진다.
본 발명의 일 실시예에 있어서, 상기 플래시 메모리, 공유 메모리, 및 실시간 클럭을 결합하여 공유 가능한 메모리를 이루며,
상기 공유 메모리 액세스 제어기는 공유 메모리들의 액세스에 필요한 칩셋 선택 신호, 출력 제어 신호, 쓰기 제어 신호와 버퍼 제어에 필요한 신호를 구동하며,
상기 마이크로 시스템 관리 제어기와 X 버스에서 공유 메모리에 대한 액세스를 동시에 지원하기 위해, 마이크로 시스템 관리 제어기의 주소의 구동 기간 동안 X 버스의 액세스를 처리하도록 하며,
메모리 액세스 타이밍이 정해진 마이크로 시스템 관리 제어기의 액세스에 대 해서는 정해진 타이밍 내에 처리하고, 액세스 주기를 변동시킬 수 있는 X 버스 측의 액세스에 대해서는 필요시 타이밍을 적절히 조절하며,
마이크로 시스템 관리 제어기 측 하위 주소 바이트를 버퍼링하는 옥탈 버스 스위치는 마이크로 시스템 관리 제어기의 주소 래치 인에이블(ALE) 신호를 사용하여 마이크로 시스템 관리 제어기의 주소와 데이터가 다중화된 신호 중에서 주소 부분을 래치하며, 마이크로 시스템 관리 제어기의 상위 주소와 데이터, 그리고 X 버스 측 주소 버퍼는 각기 별도의 버스 스위치를 사용하고, X 버스 측 데이터 버퍼는 X 버스의 액세스 타이밍이 조절됨을 고려하여 읽기와 쓰기 각각의 액세스에 대하여 별도의 데이터 래치 기능과 출력 제어 기능을 가지며,
상기 공유 메모리 액세스 제어기에 입력되는 클럭 신호는 두 가지로서, 하나는 공유 메모리 액세스 제어기 내의 상태 천이에 사용되고, 다른 하나는 상기 상태 천이 클럭에서 위상이 반전된 클럭 신호로 상기 상태천이 클럭의 반 주기 앞에서 입력 신호를 감지하며,
상기 마이크로 시스템 관리 제어기는 I2C 버스를 통하여 얻은 시스템 정보를 공유 메모리에 기록하고 이를 메인 프로세서가 X 버스를 통하여 읽을 수 있고, 또한 메인 프로세서가 시스템 제어 명령을 공유 메모리의 지정된 영역에 기록하면 마이크로 시스템 관리 제어기가 이를 읽고 I2C 버스를 통하여 메인 프로세서의 명령을 수행하도록 하는 시스템 관리 기능을 가지며,
시스템 네트워크 경로를 이용하여, 상기 공유 메모리 및 I2C 버스를 거쳐, 원격지에서도 시스템의 정보 및 시스템 제어가 가능하며,
상기 공유 메모리를 사용하여 마이크로 시스템 관리 제어기의 코드 저장 영역으로 사용되는 플래시 메모리를 메인 프로세서에 의하여 다운로드 할 수 있으며,
상기 실시간 클럭은 마이크로 시스템 관리 제어기에 데이트(날짜 및 시간) 정보를 제공하며 메모리의 배터리 백업 전원을 제공하여 시스템의 전원이 오프 상태로 된 경우에도 메모리의 상태 정보를 유지할 수 있게 한다.
도 2 는 본 발명의 전체 구성을 나타낸다. 도 2에서 보듯이 본 발명은, 시스템 관리 버스를 제어하며 전체 시스템을 관리하는 마이크로 시스템 관리 제어기(Micro System Management Controller: μSMC)(201)와 시스템을 관리하는 응용 프로그램이 실행되는 메인 프로세서의 입출력 버스인 ISA 버스 사이에 128K 플래시 메모리(202), 32K 공유 메모리(203), 및 RTC(real Time Clock)(204) 칩을 위치시키고, 이들 메모리에 대한 두 개의 에이전트(agent)(μSMC와 메인 프로세서)의 액세스는 프로그래머블 디바이스인 공유 메모리 액세스 제어기(Shared Memory Access Controller: SMAC)(205)가 제어한다. 또한, 상기 두 개의 에이전트가 공유 영역을 동시에 액세스하고자 할 때에 버스 충돌(bus contention)이 일어나지 않게 하기 위하여, 상기 두 개의 에이전트와 공유 메모리 사이에 버퍼를 각각 위치시키고, 공유 메모리 액세스 제어기(SMAC)가 시분할(time sharing) 방식으로 상기 버퍼를 제어하여 두 개의 에이전트가 공정하게 공유 영역을 액세스할 수 있게 한다. 마이크로 시스템 관리 제어기는 I2C 버스에 연결되어 I2C 버스를 제어하며, 입출력 프로그래머블 인터럽트 제어기(IOAPIC)(209)를 통하여 두 개의 인터럽트 신호인 노말 인터럽트(Normal interrupt: NI)와 논 마스커블 인터럽트(Non Maskable Interrupt: NMI) 신호를 메인 프로세서에게 전송한다. 상기 두 가지 인터럽트 신호는 마이크로 시스템 관리 제어기가 메인 프로세서에게 특별한 상황을 알릴 때 사용된다.
마이크로 시스템 관리 제어기(μSMC)는 또한 입출력 프로그래머블 인터럽트 제어기(IOAPIC)(209)와 전원 오동작 인터럽트(Power Fail Interrupt: PFI)부를 통하여 I2C 슬레이브 디바이스 혹은 전원(power)으로부터 오는 인터럽트 신호를 받을 수 있도록 되어 있다. 마이크로 시스템 관리 제어기를 운영하는 펌웨어(firmware)는 128K 플래시 메모리에 위치하며, 이 플래시 메모리는 다른 프로그래머블 디바이스와는 달리 보드에 장착된 채로 X 버스(XBUS)와 플래시 제어부를 통하여 메인 프로세서에서 다운로드 될 수 있게 설계되어 있다. X 버스는 ISA 버스에 버퍼 기능을 보강한 버스로 정의한다.
본 발명의 구성에 대하여 설명한다.
본 발명은 상기 도 2에서 보는 바와 같이 시스템 관리 버스인 I2C 버스에 연결되어 I2C 버스 상의 슬레이브 디바이스를 제어하여 시스템 관리에 필요한 시스템의 전반적인 환경 요소(environmental element)를 주기적으로 관찰(monitoring)하며 초기 시스템 구성을 셋업하고 전원 온/오프, 시스템 리셋, 및 팬의 속도를 제어하는 마이크로 시스템 관리 제어기(μSMC)(201); 상기 마이크로 시스템 관리 제어기에서 운영되는 펌웨어 프로그램이 저장된 128K 플래시 메모리(202); 메인 프로세서와 상기 마이크로 시스템 관리 제어기 사이에 시스템 관리와 관련하여 명령어와 정보를 주고받을 수 있는 채널 역할을 하는 32K 공유 SRAM(203); 상기 마이크로 시 스템 관리 제어기에 데이트 관련 정보(날짜 및 시간)를 제공하며 전원 오프 시 상기 공유 SRAM에 기록된 정보를 유지하기 위해 백업 배터리를 제공 가능하게 하는 실시간 클럭(Real time clock: RTC)(204); 상기 플래시 메모리, 공유 SRAM, 및 실시간 클럭과 마이크로 시스템 관리 제어기 사이에서 주소와 데이터 신호를 버퍼링하는 μSMC 인터페이스 버퍼(208); 상기 플래시 메모리, 공유 SRAM, 및 실시간 클럭과 메인 프로세서의 입출력 버스인 ISA 버스 사이에서 주소와 데이터 신호를 버퍼링하는 ISA 버스 인터페이스 버퍼(207); 상기 플래시 메모리, 공유 SRAM, 및 실시간 클럭 등으로 구성되는 공유 메모리 영역을 액세스하는 메인 프로세서와 마이크로 시스템 관리 제어기 사이에서 액세스를 적절하게 중재하여 서로 충돌이 일어나지 않도록 상기 μSMC 인터페이스 버퍼 및 ISA 버스 인터페이스 버퍼를 제어하는 공유 메모리 액세스 제어기(Shared Memory Access Controller)(205); 메인 프로세서에서 상기 플래시 메모리의 다운로드가 가능하도록 제어하는 플래시 제어부(206); 시스템에 공급되는 AC 입력이 오동작할 때(fail) 인터럽트 신호를 마이크로 시스템 관리 제어기에 전송하여 오동작 사실을 알려주는 전원 오동작 인터럽트부(Power Fail Interrupt: PFI)(210); 상태(status)를 감시하는 I2C 버스 슬레이브 디바이스에게 특정 이벤트가 발생할 경우 마이크로 시스템 관리 제어기에게 인터럽트 신호를 보내어 이 사실을 알리는 시스템 관리 버스 인터럽트(211); 및 마이크로 시스템 관리 제어기에서 구동한 인터럽트 정보를 메인 프로세서에 알리는 입출력 프로그래머블 인터럽트 제어기(IOAPIC)(209) 등으로 구성된다.
도 3 은 본 발명에 의한 공유 메모리 구조에 관한 블록도를 나타낸다. 상기 도에서 알 수 있듯이 μSMC 인터페이스 버퍼(308)는, 마이크로 시스템 관리 제어기(μSMC)(301)에서 구동되는 주소와 데이터가 다중화된(multiplexed) 신호인 SMC_AD[7:0]에서 주소 부분을 래치(latch)하고 공유 메모리로 구동하는 래치(308a); 마이크로 시스템 관리 제어기(μSMC)에서 구동되는 주소의 상위 8 비트 SMC_A[15:8]를 공유 메모리로 구동하는 버스 스위치(308b); 및 마이크로 시스템 관리 제어기(μSMC)와 공유 메모리 디바이스들 사이의 데이터 경로를 제공하는 버스 스위치(308c)로 구성된다.
ISA 버스 인터페이스 버퍼(307)는, ISA 버스 주소 신호의 상하위 바이트, SA[15:8], 및 SA[7:0]를 각각 버퍼링하는 두 개의 버스 스위치(307a, 307b), 그리고 ISA 버스 데이터 신호 XD[7:0]와 공유 버스 데이터 신호 SHARE_D[7:0]를 래치하고 출력을 제어하는 버퍼인 양방향 송수신기(307c)으로 구성된다.
다음은 상기 도 2 와 도 3에 나타난 구성과 신호에 대한 간략한 설명이다.
마이크로 시스템 관리 제어기(Micro System Management Controller: μSMC)(201)는 하나의 칩으로 구성된 콘트롤러로서 시스템을 관리하는 핵심장치이다.
128K 플래시 메모리(202, 302)는 마이크로 시스템 관리 제어기(μSMC)에서 운영되는 프로그램이 저장되는 메모리로서 플래시가 가능하다.
32K 공유 SRAM(203,303)은 μSMC와 메인 프로세서가 동시에 액세스할 수 있는 데이터 영역을 갖는다.
실시간 클럭(Real time clock: RTC)(204,304)은 마이크로 시스템 관리 제어 기(μSMC)에 데이트 정보(날짜 및 시간)를 제공하며, 상기 공유 메모리에 백업 전원을 공급한다. 또한 마이크로 시스템 관리 제어기의 워치독 타이머(watchdog timer)로 사용된다.
공유 메모리 액세스 제어기(Shared Memory Access Controller: SMAC)(205,305)는 각 공유 메모리 디바이스들(202,302, 203,303, 204,304)의 제어 신호와 버퍼(207,307, 208,308) 제어 신호를 구동한다.
플래시 제어부(206,306)는 메인 프로세서에서 128K 플래시 메모리에 프로그램을 다운로드 하기 위해 마이크로 시스템 관리 제어기(μSMC)를 리셋하고 주소를 디코딩을 할 수 있도록 제어하는 레지스터로 구성된다.
옥탈 버스 스위치(307a,307b,308b,308c)는 출력 제어에 의하여 양쪽 포트의 버스가 서로 연결되거나 분리된다.
옥탈 트랜스패런트(octal transparent) D 타입 래치(308a)는 세가지 상태의 (3 state) 출력을 갖는다.
옥탈 레지스터드 송수신기(octal registered transceiver)(307c)는 세가지 상태의(3 state) 출력을 갖는다.
입출력 프로그래머블 인터럽트 제어기(Input Output Advanced Programmable Interrupt Controller: IOAPIC)(209)는 시스템의 인터럽트 버스인 APIC 버스에 연결되어 시스템에서 발생하는 모든 인터럽트를 프로세서에 연결하는 칩셋이다. 본 발명에서는 마이크로 시스템 관리 제어기에서 발생하는 인터럽트 신호를 프로세서에 알린다.
전원 오동작 인터럽트(Power Fail Interrupt)(210)는 시스템에 공급되는 AC 전원이 오동작 상태일 때 마이크로 시스템 관리 제어기(μSMC)로 인터럽트 신호를 구동하는 로직이다.
시스템 관리 버스 인터럽트(211)는 I2C 버스에 연결된 슬레이브 디바이스에서 시스템의 이상 상태를 감지하였을 때 마이크로 시스템 관리 제어기(μSMC)에 인터럽트 신호를 구동하는 로직이다.
내부 디버그 벌크헤드용 직렬 포트(Serial Port to Internal Debug Bulkhead)(212)는 마이크로 시스템 관리 제어기(μSMC)에 터미널을 연결하여 마이크로 시스템 관리 제어기 펌웨어 프로그램의 운영 상태를 터미널로 확인할 수 있도록 하고 또한 사용자가 명령어를 입력할 수 있도록 하여, 마이크로 시스템 관리 제어기와 사용자가 대화식(interactive)으로 동작하도록 하는 RS-232C 직렬 포트이다.
시스템 관리 제 일 I2C 버스(Primary I2C Bus)는 시스템을 관리하기 위하여 사용되는 I2C 버스로서, 마이크로 시스템 관리 제어기(μSMC)에 의하여 제어되는 I2C 마스터 디바이스 및 슬레이브 디바이스가 상기 I2C 버스에 연결된다.
SMC_AD[7:0]는 마이크로 시스템 관리 제어기(μSMC)에서 구동하는 주소와 데이터가 다중화된 신호이다. 마이크로 시스템 관리 제어기는 외부 메모리에 액세스할 때 첫 위상(phase)에서는 주소를 구동하고 다음 위상에서는 데이터를 구동한다. 주소는 전체 16 비트 중에서 하위 8 비트에 해당하며, 데이터는 8 비트 전체에 해당한다. 데이터는 양방향(bidirectional)으로 작용한다.
SMC_A[15:8]는 마이크로 시스템 관리 제어기(μSMC)에서 구동하는 주소 16 비트 중에서 상위 8 비트를 가리킨다.
SA[15:8], SA[7:0]는 ISA 버스의 주소 신호를 가리킨다.
XD[7:0]는 ISA 버스의 데이터 신호를 가리킨다.
SHARE_A[15:8], SHARE_A[7:0]는 ISA 버스 또는 마이크로 시스템 관리 제어기(μSMC)에서 공유 메모리 디바이스를 액세스하기 위하여 구동한 주소 신호(SA[15:8], SA[7:0], SMC_AD[7:0], SMC_A[7:0])와 버퍼를 통하여 연결된 신호이며 각각의 공유 메모리 디바이스에 연결된다.
SHARE_D[7:0]는 공유 메모리 디바이스에 직접 연결된 데이터 신호로서, 버퍼를 사이에 두고 마이크로 시스템 관리 제어기(μSMC)측의 SMC_AD[7:0]와 ISA 버스 측의 XD[7:0] 데이터 신호에 연결된다.
SMC_FLASH_CS#는 플래시 메모리(202,302)의 칩셋 선택 신호로서 공유 메모리 액세스 제어기(SMAC)(205)에 의해 구동된다.
SMC_FLASH_OE#는 플래시 메모리(202,302)의 데이터 출력 제어 신호로서, 공유 메모리 액세스 제어기(SMAC)(205)에 의해 구동된다.
SMC_FLASH_WE#는 플래시 메모리(202,302)의 데이터 쓰기 인에이블 신호로서, 공유 메모리 액세스 제어기(SMAC)(205)에 의해 구동된다.
SRAM_OE#는 공유 SRAM(203,303)의 데이터 출력 제어 신호로서, 공유 메모리 액세스 제어기(SMAC)(205)에 의해 구동된다.
SRAM_WE#는 공유 SRAM(203,303)의 데이터 쓰기 인에이블 신호로서, 공유 메 모리 액세스 제어기(SMAC)(205)에 의해 구동된다.
RTC_CS#는 실시간 클럭(RTC)(204,304)의 칩셋 선택 신호로서, 공유 메모리 액세스 제어기(SMAC)(205)에 의해 구동된다.
RTC_OE#는 실시간 클럭(RTC)(204,304)의 데이터 출력 제어 신호로서, 공유 메모리 액세스 제어기(SMAC)(205)에 의해 구동된다.
RTC_WE#는 실시간 클럭(RTC)(204,304)의 데이터 쓰기 인에이블 신호로서, 공유 메모리 액세스 제어기(SMAC)(205)에 의해 구동된다.
CNTR_CLK는 공유 메모리 액세스 제어기(SMAC) 내부에서 상태도의 동기화 클럭(state machine synchronization clock)으로 사용되는 입력신호이다.
SMC_RST#는 마이크로 시스템 관리 제어기(μSMC)의 리셋 신호로서, 공유 메모리 액세스 제어기(SMAC) 내부의 상태도 초기화에 사용되는 입력 신호이다.
REV_CLK는 CNTR_CLK 신호를 역방향(reverse)의 클럭 신호로서, 공유 메모리 액세스 제어기(SMAC)의 입력 신호를 래치할 때 사용되는 입력 신호이다.
SMCA_OE#는 마이크로 시스템 관리 제어기(μSMC)의 주소 버퍼인 래치(308a), 옥탈 버스 스위치(308b)의 출력을 제어하는 신호로서, 공유 메모리 액세스 제어기(SMAC)에 의하여 구동된다.
SMCD_OE#는 마이크로 시스템 관리 제어기(μSMC)의 데이터 버퍼인 옥탈 버스 스위치(308c)의 출력을 제어하는 신호로서, 시스템 관리 액세스 제어기(SMAC)에 의하여 구동된다.
SMC_WR#은 마이크로 시스템 관리 제어기(μSMC)가 구동하는 외부 메모리 쓰 기 스트로브(strobe) 신호이다.
SMC_RD#는 마이크로 시스템 관리 제어기(μSMC)가 구동하는 외부 메모리 읽기 스트로브(strobe) 신호이다.
SMC_A[15]는 마이크로 시스템 관리 제어기(μSMC)가 사용하는 최상위 주소 비트로서, 데이터 영역에 위치하는 SRAM 및 실시간 클럭(RTC)의 칩셋 선택 신호를 생성하기 위하여 참조하는 신호이다. 상기 비트의 값이 0 이면 SRAM이 선택되고, 1 이면 실시간 클럭(RTC)이 선택된다.
MEM_WR#는 ISA 버스의 메모리 쓰기 스트로브 신호이다.
MEM_RD#는 ISA 버스의 메모리 읽기 스트로브 신호이다.
SMC_HALT#는 메인 프로세서에서 플래시 메모리(202, 302)를 업데이트하기 위해 마이크로 시스템 관리 제어기(μSMC)를 리셋시키는 신호로서, 업데이트가 종료될 때까지 이 신호가 구동되며 그 동안 공유 메모리 버스는 메인 프로세서에 의하여 독점된다.
SMC_FLASH_SEL#는 메인 프로세서가 플래시 메모리를 액세스할 때 구동되는 신호로서, 공유 메모리 액세스 제어기(SMAC)에 입력되어 SMC_FLASH_CS# 등을 생성하는데 이용된다.
SMC_SRAM#은 메인 프로세서가 공유 SRAM을 액세스할 때 구동되는 신호로서, 공유 메모리 액세스 제어기(SMAC)에 입력되어 SRAM_OE#, SRAM_WE# 등을 생성하는데 이용된다.
SMC_RTC는 메인 프로세서가 실시간 클럭(RTC)를 액세스할 때 구동되는 신호 로서, 공유 메모리 액세스 제어기(SMAC)에 입력되어 RTC_CS#, RTC_OE#, RTC_WE# 등을 생성하는데 이용된다.
PSEN#은 마이크로 시스템 관리 제어기(μSMC)가 외부에 저장된 코드를 읽을 때 구동되는 신호이다.
주소 래치 인에이블(Address Latch Enable: ALE)는 마이크로 시스템 관리 제어기(μSMC)가 구동하는 주소와 데이터가 다중화된 신호들 중에서 주소를 외부에서 래치할 수 있도록 구동하는 신호이다.
XBA_OE#는 ISA 버스와 공유 버스 사이의 두 개의 주소 버퍼 옥탈 버스 스위치(307a, 307b)에 대한 출력을 제어하는 신호이다.
XBRD_LE#는 ISA 버스에서 공유 메모리 데이터를 읽을 때, 데이터 버퍼인 옥탈 송수신기(307c)의 데이터 래치 인에이블로 사용된다.
XBRD_OE#는 ISA 버스에서 공유 메모리 데이터를 읽을 때, 데이터 버퍼인 옥탈 송수신기(307c)의 데이터 출력 인에이블로 사용된다.
XBWR_OE#는 ISA 버스에서 공유 메모리 데이터를 쓸(write) 때, 데이터 버퍼 옥탈 송수신기(307c)의 데이터 출력 인에이블로 사용된다.
XBWR_LE#는 ISA 버스에서 공유 메모리 데이터를 쓸(write) 때, 데이터 버퍼 옥탈 송수신기(307c)의 데이터 래치 인에이블로 사용된다.
IOCHRDY(Input Output Channel Ready)는 표준 ISA 버스 신호로서, 입출력 채널을 준비 상태에 둔다. 호스트에서 입출력을 액세스할 때 입출력 디바이스가 규정 시간 내에 액세스를 처리하지 못할 경우 이 신호를 취소하여(negate) 주기(cycle) 를 연장한다.
NOWS#는 표준 ISA 버스 신호로서, 대기 상태(wait state)는 없다. 호스트에서 입출력을 액세스할 때 입출력 디바이스가 ISA 버스의 기본 주기(즉, 3 웨이트) 이내에 처리가 가능한 경우 이 신호를 구동하여 액세스가 기본 주기에 종료될 수 있도록 한다.
다음은 본 발명의 동작을 상술한다.
도 4, 도 5, 도 6 는 마이크로 시스템 관리 제어기(μSMC)의 외부 메모리 액세스 주기 타이밍을 나타낸다. 마이크로 시스템 관리 제어기는 외부 메모리 액세스시 다른 에이전트와 버스를 공유하지 않고 단독으로 액세스하기 때문에 버스 공유에 필요한 신호들이 없다. 따라서 본 발명에서는, 공유 메모리로의 액세스를 마이크로 시스템 관리 제어기 뿐만 아니라 X 버스 측에서도 이루어질 수 있도록 하기 위해, 마이크로 시스템 관리 제어기의 외부 메모리 액세스의 주기 특징을 이용하여 회로를 구현하였다.
마이크로 시스템 관리 제어기(μSMC)의 외부 메모리 액세스 주기의 특징은, 칩 구조상 주소와 데이터 라인이 복합화되어 있기 때문에 주소와 데이터의 주기가 나뉘어 있다는 점이다. 즉, 마이크로 시스템 관리 제어기는 외부 메모리 액세스시, 주소와 주소 래치 신호를 구동하여 이를 외부 로직에서 래치하도록 하고 그 후 데이터를 구동하면서 정식으로 액세스를 시작한다. 여기에서, 마이크로 시스템 관리 제어기가 15 MHz의 클럭을 사용할 경우, 새로운 주기에 들어가서 정식 메모리 액세스를 시작하기까지는 약 140 (코드를 읽는데 걸리는 시간) ~ 250 (데이터를 읽고 쓰는데 걸리는 시간) ns 가 걸리므로, 이 기간 동안에 70 ns 정도의 메모리 액세스를 처리할 여유가 있고, 이를 X 버스의 메모리 액세스에 이용하는 것이 본 발명의 기본 개념이다.
도 7 은 본 발명에 따르는, 공유 메모리 액세스 제어기(SMAC)의 내부 상태도를 나타낸다. 여기에서, 상태 wait0, SMC1, SMC2는 마이크로 시스템 관리 제어기(μSMC)의 액세스 진행 상태를 나타내고, 상태 XBUS1, XBUS2, XBUS_RD3, XBUS_WR3, XBUS4 등은 X 버스 측의 액세스 진행 상태를 나타낸다. 또한, SH_XBUS, SH_SMC1, SH_SMC2 등은 마이크로 시스템 관리 제어기(μSMC)와 X 버스 측의 공유 메모리에 대한 액세스가 동시에 이루어졌을 때 공정성을 보장하고 버스의 충돌이 일어나지 않도록 하기 위해 삽입된 상태로 있다.
진행과정을 보면, 우선 마이크로 시스템 관리 제어기(μSMC)의 액세스가 먼저 시작된다고 하면, 즉, 마이크로 시스템 관리 제어기(μSMC)의 주소 래치 인에이블(ALE) 신호가 구동되면, 상태는 wait0으로 천이한다. 이 때는 마이크로 시스템 관리 제어기(μSMC)가 주소를 구동하는 시점이다. 주소 래치 인에이블(ALE) 신호가 로우(low) 상태로 변하면서 도 3 의 옥탈 래치(308a)에서 주소를 래치하게 되고 상태는 SMC1로 천이한다. 도 4, 도 5, 도 6 에 나타난 타이밍 대로, 마이크로 시스템 관리 제어기(μSMC)가 코드를 읽거나 데이터를 읽고 쓰기를 하기 위해 PSEN#, SMC_RD# 또는 SMC_WR# 신호 등을 구동하면, 상태는 SMC2로 천이하고 주소 버퍼(308a, 308b) 및 데이터 버퍼(308c) 등의 출력이 구동되고 시스템 관리 액세스 제어기(SMAC)에서는 액세스되는 디바이스의 칩 선택, 출력 인에이블(읽기인 경우), 쓰기 인에이블(쓰기인 경우) 신호 등이 구동된다. SMC2 상태에서 X 버스 측의 액세스가 있는지 확인하고 없으면 마이크로 시스템 관리 제어기(μSMC)의 주기가 종료된 후에 상태는 아이들(idle)로 천이하고, X 버스 액세스가 있으면 상태는 SH_XBUS로 천이하여 마이크로 시스템 관리 제어기(μSMC)의 주기가 종료되기를 기다린다. SH_XBUS 상태에서 마이크로 시스템 관리 제어기(μSMC)의 주기가 종료되면 상태는 X 버스로 천이하며 X 버스에서 구동된 주소를 버퍼링하는 버스 스위치(307a,307b)의 출력이 인에이블되어 SA[15:8], SA[7:0] 등이 SHARE_A[15:0]로 구동되고 공유 메모리 액세스 제어기(SMAC)에 의해 액세스되는 디바이스의 칩 선택, 출력 인에이블(읽기인 경우) 신호 등이 구동된다.
다음 클럭에서 상태는 XBUS2로 천이하며 XBUS1에서 구동된 신호들이 계속 유지되며 쓰기(write)인 경우 쓰기 인에이블 및 데이터 버퍼가 구동된다.
다음 클럭에서 상태는 두 가지로 바뀔 수 있다. 즉, 읽기인 경우에는 XBUS_RD3로, 쓰기인 경우에는 XBUS_WR3로 천이하며, XBUS_RD3에서는 읽기 데이터 래치 인에이블(XBRD_LE#) 신호 및 읽기 버퍼 출력 인에이블(XBRD_OE#) 신호 등이 추가로 구동된다. XBUS_WR3에서는 XBUS2에서 구동된 신호가 연장되어 구동되며 이 상태가 종료됨과 동시에 액세스가 종료된다.
다음 클럭에서 마이크로 시스템 관리 제어기(μSMC)의 액세스가 있을 경우, 상태는 SH_SMC1 또는 SH_SMC2 등으로 천이되며 액세스가 없는 경우에는 XBUS4로 천이한다. 정상적인 경우에는 마이크로 시스템 관리 제어기(μSMC)의 액세스가 끊임 없이 발생하므로 SH_SMC1이나 SH_SMC2로 천이하게 되며, 마이크로 시스템 관리 제 어기(μSMC)가 호스트에 의하여 의도적으로 리셋 된 경우, 즉, 플래시 메모리(202, 302)를 업데이트하기 위해 SMC_HALT#가 구동된 경우에는 XBUS4로 천이하게 된다. SH_SMC1및 SH_SMC2는 SMC1과 SMC2 상태와 동일한 기능을 하는 상태이며, 단지 X 버스 읽기 주기가 종료될 때까지 읽기 버퍼의 출력 인에이블을 구동하는 상태이다. XBUS4는 마이크로 시스템 관리 제어기(μSMC)의 액세스 없이 X 버스 읽기 주기를 마무리한다.
도 7 에서 각 상태 간의 천이에 필요한 조건식을 도 8 에 예시하였다.
도 9 에는 상기 각 상태에 대한 의미를 요약하여 설명하였고, 각 상태에서 구동되는 출력 신호들을 예시하였다.
도 7 의 상태도에 나타난 것처럼 본 발명에서는 정상적인 주기에 의한 진행 이외의 비정상적인 경우, 예를 들어 주기 도중 마이크로 시스템 관리 제어기(μSMC)의 리셋이나 X 버스 리셋 등과 같은 경우를 고려하여 안정성을 구현하였기 때문에 상태 천이가 상당히 복잡하게 발생한다.
도 8 에서 각 신호명 앞에 'R_'이 추가된 것은 마이크로 시스템 관리 제어기(μSMC)와 X 버스가 서로 다른 주기를 갖는 클럭으로 동작하기 때문에, 서로 동기를 맞추기 위해 공유 메모리 액세스 제어기(SMAC)에 입력되는 입력 신호를 공유 메모리 액세스 제어기(SMAC)의 클럭으로 클럭킹한 것, 즉 레지스터링 하였음을 의미한다. 또한, 식이 간단하여지도록 동일한 의미를 갖는 마이크로 시스템 관리 제어기(μSMC) 명령어나 X 버스 명령어를 하나의 표현으로 나타내었는데 이는 다음과 같다.
SMC_CMD# = PSEN# & R_SMC_RD# & R_SMC_WR#
SMC_CMD1# = R_PSEN# & R_SMC_RD# & R_SMC_WR#
XBUS_CMD# = R_MRDC# & RMWRC#
공유 메모리 액세스 제어기(SMAC)(305)에서 사용하는 클럭 원(source)은 마이크로 시스템 관리 제어기(μSMC)의 클럭 속도보다 2 배 빠른 것을 사용하며, 이것은 공유 메모리 액세스 제어기(SMAC)의 입력 신호의 감지 타이밍과 출력 신호 구동 타이밍에 유리하다. 또한 하나의 클럭 원(source)을 사용하여 상태 천이와 입력 신호를 함께 감지한다면, 입력된 신호를 최대 한 주기 후에야 보게 되는 공백이 생길 수 있기 때문에 상태 천이에 사용되는 클럭을 반전시키고(reverse), 상기 반전시킨 클럭을 사용하여 입력 신호를 감지함으로써 상태 천이의 정확성을 높인다.
도 10 은 본 발명에 따른 상세 타이밍 도의 일 예를 나타낸다. 도시한 타이밍은 마이크로 시스템 관리 제어기(μSMC)가 코드를 읽기 시작한 후 X 버스가 공유 SRAM 읽기를 시도하였고, 마이크로 시스템 관리 제어기(μSMC)는 코드를 읽은 후 역시 공유 SRAM을 읽는 과정을 보여준다.
본 발명은 다양하게 변형될 수 있고 여러 가지 형태를 취할 수 있으며 상기 발명의 상세한 설명에서는 그에 따른 특별한 실시예에 대해서만 기술하였다. 하지만 본 발명은 상기 발명의 상세한 설명에서 언급된 특별한 형태로 한정되는 것이 아닌 것으로 이해되어야 하며, 오히려 첨부된 청구범위에 의해 정의되는 본 발명의 정신과 범위 내에 있는 모든 변형물과 균등물 및 대체물을 포함하는 것으로 이해되어야 한다.
이상에서 상세히 설명한 바와 같이 동작하는 본 발명에 의하여 얻어지는 효과를 간단히 설명하면 다음과 같다.
본 발명으로 인하여 다양한 기능을 지닌 마이크로 콘트롤러와 시스템의 메인 프로세서 사이의 인터페이스가 가능해진다.
메인 프로세서와 시스템 관리 사이에 빠르고 효과적인 통신 채널이 마련되어 실시간에 가깝게 시스템을 관리할 수 있다.
종래 방법과는 달리 메인 프로세서의 성능에 영향을 미치지 않고 마이크로 콘트롤러가 스스로 시스템을 주기적으로 관찰(monitoring)한 후 공유 메모리에 그 상태를 업데이트하면 프로세서는 필요한 데이터를 공유 메모리로부터 읽어 가면 되므로, 정보를 신속하게 수집할 수 있다.
시스템 네트워킹를 통하여 원격지에서도 시스템의 상태를 감시하거나 제어할 수 있다.
그리고, 마이크로 콘트롤러의 펌웨어(firmware)를 온라인 상에서 다운로드할 수 있기 때문에 소프트웨어 개발과 업데이트가 편리하다.

Claims (11)

  1. 컴퓨터와 호환 가능한 구조를 가지는 서버 시스템에서,
    시스템 관리를 전담하는 마이크로 시스템 관리 제어기(Micro System Management Controller: μSMC);
    상기 마이크로 시스템 관리 제어기에서 운영되는 프로그램이 저장되는 플래시 메모리(Flash memory);
    상기 마이크로 시스템 관리 제어기와 메인 프로세서가 동시에 액세스 할 수 있는 데이터 영역을 제공하는 공유 SRAM(shared SRAM);
    상기 마이크로 시스템 관리 제어기에 날짜 정보를 제공하고 마이크로 시스템 관리 제어기의 워치독 타이머(watchdog timer) 역할을 하는 실시간 클럭(Real Time Clock);
    공유된 메모리를 제어하고 버퍼를 제어하는 신호를 발생하는 공유 메모리 액세스 제어기(Shared Memory Access Controller: SMAC);
    상기 마이크로 시스템 관리 제어기를 리셋하고 주소 코딩을 하도록 제어하는 플래시 제어부(Flash Control);
    버스를 연결 또는 분리시키는 ISA 버스 인터페이스 버퍼;
    시스템에서 발생하는 모든 인터럽트 신호를 메인 프로세서에게 연결시키는 입출력 프로그래머블 입터럽트 제어기(Input Output Advanced Programmable Interrupt Controller: IOAPIC);
    데이터를 래치하는 마이크로 시스템 관리 제어기 인터페이스 버퍼;
    시스템에 공급되는 전원이 오동작할 경우 마이크로 시스템 관리 제어기로 인터럽트 신호를 발생시키는 전원 오동작 인터럽트부(Power Fail Interrupt);
    슬레이브 디바이스에 이상이 발생했을 때 마이크로 시스템 관리 제어기에 인터럽트 신호를 발생시키는 시스템 관리 버스 인터럽트부; 및
    마이크로 시스템 관리 제어기와 사용자 사이에 대화식 동작을 지원하는 내부 디버그 벌트헤드 직렬 포트(Serial Port to Internal Debug Bulkhead)를 포함하여 이루어지는, 마이크로 콘트롤러와 PC 호환 ISA 버스 사이의 공유 메모리를 통한 서버 관리 시스템.
  2. 제 1 항에 있어서, 상기 플래시 메모리, 공유 메모리, 및 실시간 클럭을 결합하여 공유 가능한 메모리를 이루는, 마이크로 콘트롤러와 PC 호환 ISA 버스 사이의 공유 메모리를 통한 서버 관리 시스템.
  3. 제 1 항에 있어서, 상기 공유 메모리 액세스 제어기는 공유 메모리들의 액세스에 필요한 칩셋 선택 신호, 출력 제어 신호, 쓰기 제어 신호와 버퍼 제어에 필요한 신호를 구동하는, 마이크로 콘트롤러와 PC 호환 ISA 버스 사이의 공유 메모리를 통한 서버 관리 시스템.
  4. 제 1 항에 있어서, 상기 마이크로 시스템 관리 제어기와 X 버스에서 공유 메 모리에 대한 액세스를 동시에 지원하기 위해, 마이크로 시스템 관리 제어기의 주소의 구동 기간 동안 X 버스의 액세스를 처리하도록 하는, 마이크로 콘트롤러와 PC 호환 ISA 버스 사이의 공유 메모리를 통한 서버 관리 시스템.
  5. 제 4 항에 있어서, 메모리 액세스 타이밍이 정해진 마이크로 시스템 관리 제어기의 액세스에 대해서는 정해진 타이밍 내에 처리하고, 액세스 주기를 변동시킬 수 있는 X 버스 측의 액세스에 대해서는 필요시 타이밍을 적절히 조절하는, 마이크로 콘트롤러와 PC 호환 ISA 버스 사이의 공유 메모리를 통한 서버 관리 시스템.
  6. 제 1 항에 있어서, 마이크로 시스템 관리 제어기 측 하위 주소 바이트를 버퍼링하는 옥탈 버스 스위치는 마이크로 시스템 관리 제어기의 주소 래치 인에이블(Address Latch Enable: ALE) 신호를 사용하여 마이크로 시스템 관리 제어기의 주소와 데이터가 다중화된 신호 중에서 주소 부분을 래치하며, 마이크로 시스템 관리 제어기의 상위 주소와 데이터, 그리고 X 버스 측 주소 버퍼는 각기 별도의 버스 스위치를 사용하고, X 버스 측 데이터 버퍼는 X 버스의 액세스 타이밍이 조절됨을 고려하여 읽기와 쓰기 각각의 액세스에 대하여 별도의 데이터 래치 기능과 출력 제어 기능을 가지는, 마이크로 콘트롤러와 PC 호환 ISA 버스 사이의 공유 메모리를 통한 서버 관리 시스템.
  7. 제 1 항에 있어서, 상기 공유 메모리 액세스 제어기에 입력되는 클럭 신호는 두 가지로서, 하나는 공유 메모리 액세스 제어기 내의 상태 천이에 사용되고, 다른 하나는 상기 상태 천이 클럭에서 위상이 반전된 클럭 신호로 상기 상태천이 클럭의 반 주기 앞에서 입력 신호를 감지하는, 마이크로 콘트롤러와 PC 호환 ISA 버스 사이의 공유 메모리를 통한 서버 관리 시스템.
  8. 제 1 항에 있어서, 상기 마이크로 시스템 관리 제어기는 I2C 버스를 통하여 얻은 시스템 정보를 공유 메모리에 기록하고 이를 메인 프로세서가 X 버스를 통하여 읽을 수 있고, 또한 메인 프로세서가 시스템 제어 명령을 공유 메모리의 지정된 영역에 기록하면 마이크로 시스템 관리 제어기가 이를 읽고 I2C 버스를 통하여 메인 프로세서의 명령을 수행하도록 하는 시스템 관리 기능을 가지는, 마이크로 콘트롤러와 PC 호환 ISA 버스 사이의 공유 메모리를 통한 서버 관리 시스템.
  9. 제 1 항 또는 제 8 항에 있어서, 시스템 네트워크 경로를 이용하여, 상기 공유 메모리 및 I2C 버스를 거쳐, 원격지에서도 시스템의 정보 및 시스템 제어가 가능한, 마이크로 콘트롤러와 PC 호환 ISA 버스 사이의 공유 메모리를 통한 서버 관리 시스템.
  10. 제 1 항에 있어서, 상기 공유 메모리를 사용하여 마이크로 시스템 관리 제어기의 코드 저장 영역으로 사용되는 플래시 메모리를 메인 프로세서에 의하여 다운로드 할 수 있는, 마이크로 콘트롤러와 PC 호환 ISA 버스 사이의 공유 메모리를 통 한 서버 관리 시스템.
  11. 제 1 항에 있어서, 상기 실시간 클럭은 마이크로 시스템 관리 제어기에 데이트(날짜 및 시간) 정보를 제공하며 메모리의 배터리 백업 전원을 제공하여, 시스템의 전원이 오프 상태로 되었을 경우에도 메모리의 상태 정보를 유지할 수 있게 하는, 마이크로 콘트롤러와 PC 호환 ISA 버스 사이의 공유 메모리를 통한 서버 관리 시스템.
KR1019990003317A 1999-02-02 1999-02-02 마이크로 콘트롤러와 퍼스널 컴퓨터 호환 아이사 버스 사이의 공 KR100279830B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019990003317A KR100279830B1 (ko) 1999-02-02 1999-02-02 마이크로 콘트롤러와 퍼스널 컴퓨터 호환 아이사 버스 사이의 공

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019990003317A KR100279830B1 (ko) 1999-02-02 1999-02-02 마이크로 콘트롤러와 퍼스널 컴퓨터 호환 아이사 버스 사이의 공

Publications (2)

Publication Number Publication Date
KR20000054941A KR20000054941A (ko) 2000-09-05
KR100279830B1 true KR100279830B1 (ko) 2001-01-15

Family

ID=19573019

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019990003317A KR100279830B1 (ko) 1999-02-02 1999-02-02 마이크로 콘트롤러와 퍼스널 컴퓨터 호환 아이사 버스 사이의 공

Country Status (1)

Country Link
KR (1) KR100279830B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100291036B1 (ko) * 1999-03-03 2001-05-15 윤종용 마이크로 콘트롤러와 표준 아이스퀘어씨 버스 프로토콜을 이용한시스템 하드웨어 관리 장치 및 방법

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101978244B1 (ko) 2017-11-13 2019-05-14 주식회사 한국에프앤티 곡물 포장기용 혼합곡물 공급기
CN113806290B (zh) * 2021-08-27 2023-10-27 中国航空无线电电子研究所 一种用于综合模块化航空电子系统的高完整性片上系统

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100291036B1 (ko) * 1999-03-03 2001-05-15 윤종용 마이크로 콘트롤러와 표준 아이스퀘어씨 버스 프로토콜을 이용한시스템 하드웨어 관리 장치 및 방법

Also Published As

Publication number Publication date
KR20000054941A (ko) 2000-09-05

Similar Documents

Publication Publication Date Title
JP2782367B2 (ja) 低電力モードを有するデジタル計算システム
TWI437434B (zh) 直接記憶體存取控制器
US6823224B2 (en) Data processing system having an on-chip background debug system and method therefor
US6601178B1 (en) System power management partitioned across a serial bus
TWI443519B (zh) 用於直接記憶體存取之系統、用於實行一資料傳輸之方法及微控制器
US6405320B1 (en) Computer system performing machine specific tasks before going to a low power state
EP0644477B1 (en) Personal computer with keyboard and auxiliary device emulation
TWI224248B (en) Microprocessor with multiple low power modes and emulation apparatus for said microprocessor
CN114661368B (zh) 一种芯片及其启动方法
US4947478A (en) Switching control system for multipersonality computer system
WO2022063255A1 (zh) 芯片系统
KR100279830B1 (ko) 마이크로 콘트롤러와 퍼스널 컴퓨터 호환 아이사 버스 사이의 공
JP2606098B2 (ja) スタンバイ機能を持つフロッピィディスクコントローラ
CN116302141B (zh) 串口切换方法、芯片及串口切换系统
JP2000163312A (ja) マイクロプロセッサ
US6292851B1 (en) System for allowing a supervisory module to obtain alarm and status information from at least one supervised module without having to specify physical addresses
JP2003036169A (ja) 複数の小規模プロセッサによって並列処理を行なうシングルチップマイクロプロセッサ
JP4738891B2 (ja) データ処理装置およびそのポーリング・ループ管理方法
US5931930A (en) Processor that indicates system bus ownership in an upgradable multiprocessor computer system
US11620246B1 (en) Enhanced peripheral processing system to optimize power consumption
WO1996018934A1 (en) A further improved system logic controller for digital computers
JP2001084161A (ja) データ処理装置
CN117785235A (zh) 一种基于MicroBlaze的FPGA自升级系统
Semiconductor FX3 Programmers Manual
CN114356815A (zh) 一种usb控制器、芯片、显示设备和控制方法

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20071030

Year of fee payment: 8

LAPS Lapse due to unpaid annual fee