KR100272937B1 - 마이크로프로세서및멀티프로세서시스템 - Google Patents

마이크로프로세서및멀티프로세서시스템 Download PDF

Info

Publication number
KR100272937B1
KR100272937B1 KR1019970016937A KR19970016937A KR100272937B1 KR 100272937 B1 KR100272937 B1 KR 100272937B1 KR 1019970016937 A KR1019970016937 A KR 1019970016937A KR 19970016937 A KR19970016937 A KR 19970016937A KR 100272937 B1 KR100272937 B1 KR 100272937B1
Authority
KR
South Korea
Prior art keywords
reset
interrupt
instruction
address
external
Prior art date
Application number
KR1019970016937A
Other languages
English (en)
Other versions
KR19980069757A (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 다니구찌 이찌로오
Publication of KR19980069757A publication Critical patent/KR19980069757A/ko
Application granted granted Critical
Publication of KR100272937B1 publication Critical patent/KR100272937B1/ko

Links

Images

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
    • 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
    • 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/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4405Initialisation of multiprocessor systems

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 Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Multi Processors (AREA)
  • Microcomputers (AREA)
  • Advance Control (AREA)

Abstract

본 발명에 따르면 멀티프로세서 시스템에서 사용하는 경우 간단한 기구를 가지고 시스템을 초기화시키기 위한 기구를 구비한 마이크로프로세서를 얻을 수 있다.
본 발명에 의하면, 리세트 신호 RST가 입력되더라도, 프로세서(10)내의 기억 소자의 내용을 리세트시키는 CPU(11)는 외부의 기억 장치에 저장되어 있는 리세트 처리 프로그램을 외부 버스 I/F부(13)를 통해 페치하여 그 리세트 처리 프로그램을 실행하지 않는다. CPU(11)는 외부 인터럽트 신호 INT에 응답하여, 내장 DRAM(15)에 기억된 외부 인터럽트 처리 프로그램을 내부 데이터 버스(20)를 통해 페치하고, 이 프로그램에 포함되어 있는 초기화 처리 프로그램을 실행함으로써 프로세서(10)를 초기화시킨다. 프로세서(10)는 리세트 신호 RST를 이용하지 않고 기존의 인터럽트 처리 기구를 사용하여 초기화를 실행할 수 있다.

Description

마이크로프로세서 및 멀티프로세서 시스템{MICROPROCESSOR AND MULTIPROCESSOR SYSTEM}
본 발명은 리세트 기능을 갖는 마이크로프로세서에 관한 것으로, 특히 멀티프로세서 시스템에서 사용되는 경우, 시스템 전체를 간단한 기구로 초기화시키는 데 있어서 필수적인 구성을 갖는 마이크로프로세서에 관한 것이다.
또한, 본 발명은 간단한 기구로 시스템 전체를 초기화시키는 멀티프로세서 시스템에 관한 것이다.
마이크로프로세서는, 예를 들면, 사용자 프로그램을 실행 처리하는 데 있어서, 전원 투입시 외부로부터의 리세트 신호 인가(assert)에 의해 프로세서 내부를 초기화시키는 리세트 동작을 행한다. 이 리세트 동작으로는, 마이크로프로세서 외부로부터 리세트 신호가 인가된 경우, 프로세서 내부의 기억 소자에 리세트 신호가 입력되어 그 기억 내용을 리세트시키는 하드웨어(hardware)적인 리세트 처리와, 외부 메모리로부터 리세트 처리용 프로그램을 페치하여 프로세서내에서 이 리세트 처리용 프로그램을 실행함으로써 사용자 프로그램을 처리가능한 상태로 하는 소프트웨어(software)적인 리세트 처리가 포함된다. 특히, 소프트웨어적인 리세트 처리시에는, 리세트 신호가 인가되면, 외부 메모리로부터 리세트 벡터 엔트리(reset vector entry)를 페치해 이 엔트리에 포함되는 정보를 참조하여 상기 리세트 처리용 프로그램을 페치한다.
이러한 리세트 동작을 실행하는 프로세서를 복수개 마련하여, 그 중 한 개를 마스터 프로세서, 그밖의 것을 슬레이브 프로세서로서 기능하게 하는 멀티프로세서 시스템에 있어서, 시스템 전체를 리세트시키기 위해서는 각 프로세서를 전부 초기화시켜야 한다. 이를 위하여, 우선 모든 프로세서에 리세트 신호를 인가한다. 시스템 상의 판독 전용 메모리(이하 ROM)에는 사전에 리세트 처리용 인스트럭션이 저장되어 있으므로, 각 프로세서에서는, 리세트 신호가 인가되면, 이 ROM을 액세스하여 리세트 처리용 프로그램을 실행함으로써 초기화가 이루어진다. 다만, 각 프로세서는 동시에 ROM을 액세스할 수 없기 때문에, 멀티프로세서 시스템에서는 각각의 프로세서가 ROM을 순차적으로 액세스하도록 구성되어 있다.
이와 같이 구성된 멀티프로세서 시스템에서는, 각각의 프로세서에 리세트 신호가 동시에 인가되더라도, 리세트 벡터 엔트리를 참조하기 위해 그 리세트 벡터 엔트리가 저장되어 있는 ROM을 동시에 액세스하는 것은 불가능하므로, 복수의 프로세서가 ROM을 순차적으로 액세스할 수 있도록 하는 버스 조정 회로인 복잡한 기구가 새로이 필요하게 된다. 더구나, 마스터 프로세서, 슬레이브 프로세서에서는 리세트 처리의 내용이 다르기 때문에, 각종 프로세서는 리세트 처리용 프로그램내의 상이한 루틴 프로그램을 실행시키는 것이 통상적이며, 이 경우, 어느 프로세서가 어느 프로그램 루틴을 실행시킬지를 식별하기 위한 기구도 더 필요하게 된다.
이외에도, 멀티프로세서 시스템상에서 각 프로세서에 대응하도록 로컬 ROM을 복수개 마련하고, 각 프로세서가 대응하는 ROM에 저장된 리세트 처리용 인스트럭션을 실행함으로써 리세트 동작을 행하는 방법을 생각할 수 있다.
그러나, 리세트 신호가 인가된 후, 각 프로세서가 복수개의 ROM 중 어느 ROM을 액세스할 것인지를 지정하기 위한 어드레스 정보를 프로세서마다 제공해야 한다. 그 때문에 각 프로세서에 별도의 리세트 벡터 엔트리를 설정하는 것도 생각해 볼 수 있지만, 마스터 프로세서 및 슬레이브 프로세서를 서로 동일한 프로세서로 구성한 경우, 외부로부터, 리세트 벡터 엔트리에 프로세서가 액세스해야 할 ROM을 지정하는 어드레스 정보를 설정할 수 있도록 하지 않으면 안된다. 어떤 식으로 하더라도 어드레스 정보를 외부로부터 설정하기 위한 기구를 추가하지 않으면 안된다. 또한, 각 프로세서에 대응하여 ROM을 복수개 마련하는 것 자체가 하드웨어적인 증가를 초래한다.
멀티프로세서 시스템에서는, 마스터 프로세서, 슬레이브 프로세서 등의 각 유닛간의 처리를 조정하기 위한 복잡한 기구를 요구하기 때문에, 상술한 바와 같이 새로운 기구를 추가하여 마련하는 것은 시스템 구성을 더욱 복잡하게 한다. 또한, 멀티프로세서 시스템을 동작시키기 위해 다수의 메모리가 필요하게 되므로 어쩔 수 없이 메모리를 증가시키게 된다.
본 발명의 목적은 상기한 문제점을 해결하기 위한 것으로, 멀티프로세서 시스템에서 사용하는 마이크로프로세서로서, 멀티프로세서 시스템을 간단한 기구로 초기화시키는 데 있어서 필수적인 구성을 갖는 마이크로프로세서를 제공하는데 있다.
또한, 본 발명의 목적은 이와 같은 마이크로프로세서를 사용하여 간단한 장치로 시스템 전체를 리세트시킬 수 있는 멀티프로세서 시스템을 제공하는 것이다.
도 1은 본 발명의 실시예 1에 따른 마이크로프로세서를 도시하는 구성도,
도 2는 도 1의 마이크로프로세서에 설정되어 있는 어드레스 공간을 설명하기 위한 설명도,
도 3은 도 1의 마이크로프로세서에 있어서, 프로세서가 마스터 모드로 설정되어 있는 경우의 외부 ROM이 할당된 영역을 상세히 설명하기 위한 설명도,
도 4는 도 1의 마이크로프로세서에 있어서, 프로세서가 마스터 모드로 설정되어 있는 경우의 내장 DRAM이 할당된 영역을 상세히 설명하기 위한 설명도,
도 5는 도 1의 마이크로프로세서에 있어서, 프로세서가 슬레이브 모드로 설정되어 있는 경우의 내장 DRAM이 할당된 영역을 상세히 설명하기 위한 설명도,
도 6은 도 1의 마이크로프로세서에 있어서, 데이터 버스 단자 D, 어드레스 단자 A에 접속되어 있는 입출력 버퍼를 도시하는 구성도,
도 7은 도 1의 마이크로프로세서를 사용한 멀티프로세서 시스템을 도시하는 시스템 구성도,
도 8은 도 7의 멀티프로세서 시스템에 있어서, 마스터 프로세서 MP 및 슬레이브 프로세서 SP의 각 초기화 동작을 도시하는 타이밍도,
도 9는 본 발명의 실시예 2에 따른 멀티프로세서 시스템을 도시하는 구성도,
도 10은 도 9에 도시한 마이크로프로세서(200)에 설정되어 있는 어드레스 공간을 설명하기 위한 설명도,
도 11은 도 9에 도시한 마이크로프로세서(200)에 있어서의 외부 ROM이 할당된 영역을 상세히 설명하기 위한 설명도,
도 12는 도 9에 도시한 마이크로프로세서(200)에 있어서의 내장 DRAM이 할당된 영역을 상세히 설명하기 위한 설명도,
도 13은 도 9의 멀티프로세서 시스템에 있어서의 초기화 동작을 도시하는 흐름도.
도면의 주요 부분에 대한 부호의 설명
11 : 중앙 처리 장치(CPU) l3 : 외부 버스 I/F부
15 : 내장 DRAM 18 : 버스 콘트롤러
50 : 리세트 처리 프로그램 52 : 외부 인터럽트 처리 프로그램
100 : 시스템 버스 105 : 외부 ROM
110 : 인터럽트 콘트롤러 MP : 마스터 프로세서
SP : 슬레이브 프로세서
본 발명에 따른 마이크로프로세서는 인스트럭션 디코더의 디코딩 결과에 따라 각종 처리를 행함으로써 인스트럭션을 실행하는 처리부와, 이 처리부에 의해 제어되어 기억 영역을 지정하는 어드레스를 출력하고 그 기억 영역에 저장된 인스트럭션을 처리부의 인스트럭션 디코더에 제공하는 액세스 제어부를 구비하여, 외부로부터 입력되는 리세트 신호에 응답해서 프로세서 내부의 기억 소자를 리세트시키고, 인터럽트 신호가 처리부에 입력된 것에 응답하여, 처리부는 인터럽트 처리 프로그램을 구성하는 인스트럭션이 처리부의 인스트럭션 디코더에 제공되도록 액세스 제어부를 제어하며, 처리부가 그 인스트럭션 디코더에 제공된 인터럽트 처리 프로그램에 포함된 리세트 처리를 행하기 위한 인스트럭션을 실행시킴으로써 프로세서의 초기화를 달성한다.
또한, 본 발명에 따른 마이크로프로세서는 제 1 모드 및 제 2 모드중 어느 하나로 설정하는 모드 설정 수단을 구비하여, 외부로부터 입력되는 리세트 신호에 응답해서 프로세서 내부의 기억 소자를 리세트시키고, 모드 설정 수단에 의해 제 1 모드로 설정된 경우, 리세트 신호가 처리부에 입력된 것에 응답하여, 처리부는 리세트 처리 프로그램을 구성하는 인스트럭션이 처리부의 인스트럭션 디코더에 제공되도록 액세스 제어부를 제어하고, 인스트럭션 디코더에 제공된 리세트 처리 프로그램의 인스트럭션을 실행함으로써 프로세서의 초기화를 달성하며, 모드 설정 수단에 의해 제 2 모드로 설정된 경우, 인터럽트 신호가 처리부에 입력된 것에 응답하여, 처리부는 인터럽트 처리 프로그램을 구성하는 인스트럭션이 인스트럭션 디코더에 제공되도록 액세스 제어부를 제어하고, 인스트럭션 디코더에 제공된 인터럽트 처리 프로그램에 포함된 리세트 처리를 행하기 위한 인스트럭션을 실행함으로써 프로세서의 초기화를 달성한다.
또한 본 발명에 따른 마이크로프로세서는, 인스트럭션 디코더의 디코딩 결과에 따라 각종 처리를 행함으로써 인스트럭션을 실행하고 또한 제각기 인터럽트 신호를 입력하는 제 1 및 제 2 처리부와, 제 1 및 제 2 처리부에 의해 제어되어 기억 영역을 지정하는 어드레스를 출력하고 그 기억 영역에 저장된 인스트럭션을 제 1 및 제 2 처리부의 각 인스트럭션 디코더중 어느 하나에 제공하는 액세스 제어부를 구비하며, 외부로부터 입력되는 리세트 신호에 응답하여 제 1 및 제 2 처리부를 포함하는 프로세서 내부의 기억 소자를 리세트시키고, 리세트 신호가 제 1 처리부에 입력된 것에 응답하여 제 1 처리부는 리세트 처리 프로그램을 구성하는 인스트럭션이 제 1 처리부의 인스트럭션 디코더에 제공되도록 액세스 제어부를 제어하며, 제 1 처리부가 그 리세트 처리 프로그램을 실행함으로써 제 1 처리부내의 초기화를 달성함과 동시에, 제 2 처리부에 인터럽트 신호가 입력된 것에 응답하여 제 2 처리부는 인터럽트 처리 프로그램을 구성하는 인스트럭션이 제 2 처리부의 인스트럭션 디코더에 제공되도록 액세스 제어부를 제어하고, 제 2 처리부가 그 인터럽트 처리 프로그램에 포함되어 있는 리세트 처리를 행하기 위한 인스트럭션을 실행함으로써 제 2 처리부 내의 초기화를 달성한다.
또한 본 발명에 따른 멀티프로세서 시스템은, 제 1 마이크로프로세서에서는, 리세트 신호가 입력된 것에 응답하여 프로세서의 내부 기억 소자를 리세트시킴과 동시에. 제 1 마이크로프로세서내의 제 1 처리부는 리세트 처리 프로그램을 구성하는 인스트럭션이 제 1 처리부의 인스트럭션 디코더에 제공되도록 제 1 마이크로프로세서내의 액세스 제어부를 제어하고, 제 1 처리부가 그 리세트 처리 프로그램의 인스트럭션을 실행함으로써 제 1 마이크로프로세서의 초기화를 달성하며, 제 2 마이크로프로세서에서는, 제 2 마이크로프로세서에 리세트 신호가 입력된 것에 응답하여 프로세서의 내부 기억 소자를 리세트시키고, 인터럽트 신호가 입력된 것에 응답하여 제 2 마이크로프로세서의 제 2 처리부는 인터럽트 처리 프로그램을 구성하는 인스트럭션이 제 2 처리부의 인스트럭션 디코더에 제공되도록 제 2 마이크로프로세서내의 제 2 액세스 제어부를 제어하며, 제 2 처리부가 그 인터럽트 처리 프로그램에 포함되는 리세트 처리를 행하기 위한 인스트럭션을 실행함으로써 제 2 마이크로프로세서의 초기화를 달성한다.
(실시예 1)
도 1은 본 발명의 실시예 1에 있어서의 마이크로프로세서를 도시하는 구성도이다. 마이크로프로세서(10)는 16 비트폭의 외부 데이터 버스(25)에 접속되는 데이터 버스 단자 D를 구비하며, 그 내부에 128 비트의 데이터가 전송될 수 있는 128 비트폭의 내부 데이터 버스(20)를 구비한다.
그리고, 프로세서 본체(10)는 중앙 처리 장치(이하, CPU)(11)와, 내부 데이터 버스(20)로부터 수신한 인스트럭션 세트(이하, 간단히 인스트럭션이라고 지칭함)를 CPU(11)에 제공하는 인스트럭션 큐(queue)(12)와, 내부 데이터 버스(20)로는 128 비트의 데이터를 입출력하고 외부로는 16 비트의 데이터를 출력하는 외부 버스 인터페이스부(이하 외부 버스 I/F부)(13)와, 내부 데이터 버스(20)를 통해 데이터를 입출력하는 각각의 캐시 메모리(14)와, 내장 다이나믹 랜덤 액세스 메모리(이하, 내장 DRAM)(15)와, 범용 입출력(I/O) 포트(16)와, 데이터 선택기(17)와, 메모리에 대한 액세스를 제어함과 동시에 외부 데이터 버스(25)를 제어하는 버스 콘트롤러(18)를 포함하며, 단일 칩 반도체 집적 회로로 구성되어 있다.
CPU(11)는 제어부(30)와 실행부(40)로 구성되어 있다.
제어부(30)는 인스트럭션 디코더(31)를 포함하며, 인스트럭션 디코더(31)는 32 비트폭의 신호선을 통해 인스트럭션 큐(12)로부터 복수의 인스트럭션을 순차적으로 수신하여 디코딩한다. 제어부(30)는 인스트럭션 디코딩 내용에 따라 여러가지 제어 신호를 출력한다. 디코딩되는 인스트럭션은 32 비트로 구성된 것과 16 비트로 구성된 것이 있다.
실행부(40)는, 제각기 32 비트 데이터를 유지하는 복수의 레지스터들로 구성된 레지스터군(41)과, 2 개의 입력값에 대해 산술 연산 등을 행하는 산술 연산부(이하, ALU)(42)와, 인스트럭션의 저장 번지를 표시하는 어드레스를 유지하는 프로그램 카운터(이하, PC)(43)와, 제각기 32 비트폭인 데이터 버스들(44a, 44b, 44c)로 구성된다.
레지스터군(41)은 데이터나 어드레스의 일시 유지 등에 사용되는 16 개의 범용 레지스터와, 프로세서 상태어 레지스터(processor status word register:PSW)와, 스택 포인터와, PC(43)의 백업용 레지스터 등에 사용되는 5 개의 제어 레지스터를 포함한다. 모두 32 비트의 데이터를 유지하는 레지스터들이다.
ALU(42)는, 한쪽으로는 데이터 버스(44a)를 통해 레지스터군(41) 중 선택된 레지스터의 내용 또는 제어부(30)로부터 출력되는 데이터(예를 들면, 인스트럭션 오퍼랜드 지정부에 있는 직접 데이터(immediate date))를 수신하고, 다른 쪽으로는 데이터 버스(44b)를 통해 레지스터군(41)중 선택된 레지스터의 내용을 수신한다. 그리고 ALU(42)는 데이터 버스(44c)를 통해 그 산술 연산 결과를 레지스터군(41)중 선택된 레지스터 또는 PC(43)로 출력한다.
PC(43)는 유지하는 값을 순차적으로 카운트하여 인스트럭션 큐(12)에 제공해야 할 인스트럭션의 저장 목적지 어드레스를 버스 콘트롤러(18)로 출력한다. 또한, 분기 목적 인스트럭션의 페치에 있어서, ALU(42)에서 계산된 어드레스값 또는 인스트럭션 디코더(31)에서 디코딩되는 인스트럭션내에 있는 직접 어드레스(direct address)를 설정하여 인스트럭션 큐(12)에 제공해야 할 분기 목적 인스트럭션(branch destination instruction)의 어드레스 값을 버스 콘트롤러(18)로 출력한다.
실행부(40)는 제어부(30)로부터의 제어 신호 수신시 인스트럭션 디코더(31)에서 디코딩된 인스트럭션을 실행한다. 예컨대, 산술 연산 인스트럭션이 주어지면, ALU(42)는 레지스터군(41)으로부터 입력되는 값을 연산하여, 연산 결과를 레지스터군(41)으로 전송한다. 또한 레지스터군(41)내에 유지된 데이터를 전송하는 데이터 전송 인스트럭션이 주어지면, 전송될 데이터가 레지스터군(41)으로부터 ALU(42)와 데이터 선택기(17)를 거쳐 내부 데이터 버스(20)로 출력되며, 또한 내장 DRAM(15) 또는 외부 기억 장치 등으로 전송된다. 또한 분기 인스트럭션이 주어지면, 상기와 같이 분기 목적 어드레스를 PC(43)에 세트(set)한다.
버스 콘트롤러(18)는 CPU(11)에서 생성된 어드레스 및 그밖의 제어 신호를 수신하여, 그 수신된 어드레스가 지정하는 기억 영역을 액세스하도록, 그 기억 영역인 내장 DRAM(15)이나 캐시 메모리(13) 또는 외부 기억 장치로 어드레스를 출력한다. 외부 기억 장치에 대한 액세스는 버스 콘트롤러(18)가 외부 버스 IF부(13)를 제어함으로써 행해진다.
인스트럭션 큐(12)는 내부 데이터 버스(20)로부터 128 비트 단위로 인스트럭션을 구성하는 데이터를 수신하여 유지하고, 제어부(30)의 제어에 따라 실행되어야 할 인스트럭션을 32 비트 단위로 인스트럭션 디코더(31)로 출력한다. 또한, 인스트럭션 디코더(31)에서 디코딩되고 인스트럭션이 분기 인스트럭션인 경우에는 인스트럭션 큐(12)에 유지되어 있는 인스트럭션을 삭제한다.
내장 DRAM(15)은 1 메가바이트의 기억 용량을 가지며, 내부 데이터 버스(20)를 통해 128 비트 단위로 데이터를 입출력한다. 내장 DRAM(15)은 버스 콘트롤러(18)로부터 출력되는 어드레스 및 그밖의 제어 신호를 수신하고, 그 어드레스가 지정하는 영역에 인스트럭션이나 데이터를 판독 또는 기입한다.
캐시 메모리(14)는 4 킬로바이트의 스태틱 랜덤 액세스 메모리로 구성되며, 내부 데이터 버스(20)를 통해 128 비트 단위로 데이터를 입출력한다. 특히, 캐시 메모리(14)는 내장 DRAM(15)의 인스트럭션 및 데이터의 공통 캐시로서 기능하는 모드 또는 외부 기억 영역에 대하여 인스트럭션 캐시로서 기능하는 모드를 갖는다. 이러한 모드 전환은 버스 콘트롤러(18)에 의해 제어된다.
범용 입출력 포트(16)는 내부 데이터 버스(20)를 통해 접속되는 데이터 레지스터를 갖는다. 프로세서 내부로부터 데이터가 내부 데이터 버스(20)를 통해, 이 데이터 레지스터에 설정되고, 또한 1 비트의 단자 P로부터 외부로 출력된다. 단자 P로부터 입력되는 데이터는 데이터 레지스터에 일시 세트되고 내부 데이터 버스(20)를 통해 프로세서 내부로 전송된다. 그리고 범용 입출력 포트(16)의 데이터 레지스터는 버스 콘트롤러(18)로부터 출력되는 어드레스 및 그밖의 제어 신호에 의해 액세스된다.
데이터 선택기(17)는 내부 데이터 버스(20)로부터 입력되는 128 비트 데이터 중 32 비트 단위로 선택된 데이터를 CPU(11)내의 데이터 버스(44c)로 출력하여, 레지스터군(41), PC(43)로 전송한다. 또한 ALU(42)로부터 데이터 버스(44c)로 순차적으로 송출된 4 개의 32 비트 데이터를 결합하여, 데이터 선택기(17)에서 128 비트 단위의 데이터로서 내부 데이터 버스(20)로 출력할 수 있다. 그리고 이러한 데이터 선택기(17)의 동작은 제어부(30)의 제어에 의해 행해진다.
외부 버스 I/F부(13)는 외부로 16 비트의 외부 데이터를 입출력하는 16 개의 데이터 버스 단자 D와 24 비트의 어드레스를 입출력하는 24 개의 어드레스 단자 A에 접속되어 있다. 외부 버스 I/F부(13)는 외부의 기억 장치(예컨대, ROM, RAM) 또는 I/O 장치를 액세스한다. 프로세서(10)가, 예컨대, 외부 기억 장치를 액세스하는 경우에는 외부 버스 I/F 부(13)는 버스 콘트롤러(18)로부터 액세스될 목적 어드레스를 수신하고, 또 어드레스 단자 A를 통해 그 어드레스를 외부 기억 장치로 출력한다. 외부 기억 장치는 마이크로프로세서(10)로부터 전송된 데이터를 그 수신된 어드레스가 표시하는 기억 장소에 기입하거나 또는 그 기억 장소에 기억된 데이터를 판독하여 마이크로프로세서(10)로 전송한다.
마이크로프로세서(10)가 외부 버스에 대한 버스 점유권을 갖고 있지 않더라도(즉, 마이크로프로세서(10) 자신이 외부 기억 장치를 액세스할 수 없음), 도 1과 같이 외부 버스 I/F부(13)에 칩 선택 신호(CS)가 입력되면, 외부 버스 마스터가 마이크로프로세서(10)의 내장 DRAM(15)을 액세스할 수 있다. 이 경우, 외부 버스 I/F부(13)는 어드레스 단자 A를 통해 외부 버스 마스터로부터 액세스될 목적 어드레스를 수신한다. 버스 콘트롤러(18)가 외부 버스 I/F부(13)로부터 어드레스를 수신하여 내장 DRAM(15)으로 출력함으로써, 내장 DRAM(15)이 액세스된다. 이렇게, 외부 데이터 버스(25)로부터 전송된 데이터를, 외부 버스 I/F부(13)와 내부 데이터 버스(20)를 거쳐 내장 DRAM(15)에 기입하거나, 내장 DRAM(15)의 기억 데이터를 판독하여 내부 데이터 버스(20)와 외부 버스 I/F부(13)를 거쳐 외부 데이터 버스(25)로 전송한다.
마이크로프로세서(10)는 외부로부터 리세트 신호 RST가 인가되면 내부 소자를 리세트시킨다. 즉, 리세트 신호 RST가 신호선(도시하지 않음)을 통해, CPU(11)를 포함하는 프로세서(10)내의 필요한 기억 소자에 입력된 것에 응답하여, 그 소자의 기억 내용이 모두 리세트된다. 이것을 하드웨어적인 리세트 처리라고 한다.
특히, 리세트 신호 RST가 제어부(30)에 입력 및 해제됨에 따라, 제어부(30)는 외부 ROM에 저장된 리세트 벡터 엔트리를 CPU(11)내로 페치하도록 실행부(40)를 제어한다. 이렇게 페치된 리세트 벡터 엔트리내에 표시된 정보를 참조하여, 리세트 처리 프로그램이 개시된다. 그리고, 리세트 처리 프로그램의 실행에 의해, 프로세서(10) 전체가 리세트 처리된다. 이것을 소프트웨어적인 리세트 처리라고 한다. 이에 대해서는 후술한다.
또한, 마이크로프로세서(10)에는 외부로부터 인터럽트 신호 INT가 입력된다. 제어부(30)는 인터럽트 신호 INT가 수신되면, 내장 DRAM(15)에 저장되어 있는 외부 인터럽트 벡터 엔트리를 CPU(11)내로 페치하도록 실행부(40)를 제어한다. 그리고, 인터럽트 벡터 엔트리내의 인스트럭션이 실행됨에 따라, 프로세서(10)내의 인터럽트 처리가 개시된다. 이에 대해서도 후술한다.
마이크로프로세서(10)는 도 2에 도시한 물리 어드레스 공간을 갖는다. H'00 0000 번지∼H'0F FFFF 번지의 영역은 내장 DRAM(15)에 할당된 내장 DRAM 영역이다. H'10 0000 번지∼H'FF FFFF 번지의 영역은 ROM 등의 외부 기억 장치에 할당된 외부 영역이다.
내장 DRAM 영역중에서, 특히, H'00 0080 번지∼H'00 008F 번지는 외부 인터럽트 벡터 엔트리의 저장 영역으로서 할당된다.
또한, 외부 영역중에서, 특히, H' FF FFF0 번지∼H' FF FFFF 번지는 리세트 벡터 엔트리의 저장 영역으로서 할당된다.
마이크로프로세서(10)는 멀티프로세서 시스템을 구성하며, 마스터 프로세서와 슬레이브 프로세서중 어느 것으로도 사용될 수 있다. 제어부(30)에는 모드 전환 신호 M/S가 입력된다. M/S가 H 레벨인 경우는 마스터 프로세서로 사용되는 마스터 모드로 설정된다. M/S가 L 레벨인 경우는 슬레이브 프로세서로 사용되는 슬레이브 모드로 설정된다. 프로세서(10)가 마스터 모드와 슬레이브 모드 중 어느 쪽인 경우에도, 도 2에 도시한 물리 어드레스 공간에 따라 각 영역에 할당된 대상을 액세스한다.
다음으로, 마스터 모드로 설정된 경우, 마이크로프로세서(10)에 있어서의 리세트 동작에 대해 설명한다.
리세트 신호 RST가 L 레벨로 인가되면 프로세서(10)내의 소자가 리세트되어, 하드웨어적인 리세트 처리가 이루어진다. 또한 리세트 신호 RST가 인가된 것에 응답하여, PC(43)에 리세트 벡터 엔트리의 선두 어드레스인 H'FF FFF0 번지가 세트된다.
그 후, 리세트 신호 RST가 H 레벨로 되면, 제어부(30)는 외부로부터 리세트 벡터 엔트리를 페치하도록 실행부(40)를 제어한다. 이를 위하여, 우선 PC(43)는 이미 유지하고 있던 리세트 벡터 엔트리의 선두 어드레스인 H'FF FFF0 번지를 버스 콘트롤러(18)로 출력한다. 버스 콘트롤러(18)는 H'FF FFF0 번지가 외부 영역에 대한 액세스인 것을 인식하여, 외부 버스 I/F부(13)에 대해, H'FF FFF0 번지에 있는 데이터, 즉 리세트 벡터 엔트리를 외부로부터 페치하도록 요구한다. 외부 버스 I/F부(13)는 H'FF FFF0 번지를 외부 어드레스 버스로 출력한다.
도 3은 프로세서(10)가 마스터 모드로 설정된 경우, 외부 ROM이 할당된 영역을 상세히 도시한다. 또한, 도 4는 프로세서(10)가 마스터 모드로 설정되는 경우 내장 DRAM(15)이 할당된 영역을 상세히 도시한다.
외부 영역 중 일부가 외부 ROM에 할당되고 리세트 벡터 엔트리는 외부 ROM에 저장되어 있다. 외부 ROM은 외부 어드레스 버스를 통해 H'FF FFF0 번지가 입력된 것에 응답하여, 그 번지에 저장된 정보를 외부 데이터 버스(25)를 통해 외부 버스 I/F부(13)로 출력한다.
리세트 벡터 엔트리에는 리세트 처리 프로그램(50)을 개시시키기 위한 정보가 포함되어 있다. 본 실시예에서는, 도 3에 도시한 바와 같이, 리세트 벡터 엔트리 내의 H'FF FFF0 번지에는 분기 인스트럭션이 기억되어 있어, 마이크로프로세서(10)는 리세트 벡터 엔트리로서 분기 인스트럭션을 외부로부터 페치하게 된다. 이 페치된 분기 인스트럭션은 내부 데이터 버스(20)를 통해 인스트럭션 큐(12)에 입력되며 CPU(11)는 분기 인스트럭션을 디코딩하여 실행한다. 그리고 H'FF FFF1 번지∼H'FF FFFF 번지에 아무 정보도 저장되지 않은 것으로 되어 있다.
분기 인스트럭션은 오퍼레이션 코드 JMP와 분기 목적 어드레스 정보로 구성되며, 이 분기 목적 어드레스 정보는 복수의 인스트럭션으로 이루어진 리세트 처리 프로그램(50)이 저장되어 있는 영역의 선두 어드레스인 H'FF 0000 번지를 표시하고 있다. 따라서, 마이크로프로세서(10)는 그 분기 인스트럭션을 실행함으로써 H'FF 0000 번지를 PC(43)에 세트하고 H'FF 0000 번지에 저장된 리세트 처리 프로그램(50)의 선두 인스트럭션을 외부 데이터 버스(25)를 통해 외부로부터 페치한다. 이 선두 인스트럭션은 인스트럭션 디코더(31)에서 디코딩되어, 실행부(40)에서 실행된다. 이하, 마이크로프로세서(10)는 PC(43)가 유지하고 있는 어드레스를 순차적으로 카운트하여, 리세트 처리 프로그램(50)내에 있는 복수의 인스트럭션을 순차적으로 페치해 실행하며, 최종적으로 메인 프로그램으로 실행을 복귀함으로써, 마스터 모드에 있어서의 마이크로프로세서(10)의 소프트웨어적인 리세트 처리를 완료한다.
본 실시예에서는 도 3에 도시하는 바와 같이, 리세트 처리 프로그램은 외부 ROM에 저장되어 있다. 그러나, 이에 한정되지 않고 리세트 처리 프로그램이 도 3에 도시된 외부 RAM에 저장되어도 좋다.
또한 본 실시예에서는, 리세트 벡터 엔트리에 리세트 처리 프로그램의 선두 인스트럭션으로 분기하는 분기 인스트럭션만을 저장하고 있지만, 예컨대, 리세트 벡터 엔트리내에 리세트 처리 프로그램의 선두 어드레스를 저장하고 CPU(11)가 그 선두 어드레스를 PC(43)에 세트하도록 구성해도 좋다.
이러한 리세트 처리 프로그램을 실행함으로써, 마이크로프로세서(10)를 마스터 프로세서로서 사용하기 위해 필요한 리세트 처리가 이루어지고, 특히 도 4에 도시된 외부 인터럽트 벡터 엔트리 및 외부 인터럽트 처리 프로그램(51)이 ROM 또는 RAM 등의 외부 기억 장치로부터 내장 DRAM(15)으로 다운로딩(download)되는 처리가 이루어진다.
마스터 모드에 있어서, 마이크로프로세서(10)는, 예컨대, 메인 프로그램의 실행 중에 외부로부터 외부 인터럽트 신호 INT가 인가된 경우, 다음과 같이 인터럽트 처리를 개시한다.
외부 인터럽트 신호 INT가 L 레벨로 인가된 것에 의해, 제어부(30)는 PC(43)에 외부 인터럽트 벡터 엔트리의 선두 어드레스인 H'00 0080 번지를 세트한다. 그리고 제어부(30)는 리세트 처리시에 외부로부터 다운로딩된 외부 인터럽트 벡터 엔트리를 내장 DRAM(15)으로부터 CPU(11)내로 전송하도록 실행부(40)를 제어한다. PC(43)는 H'00 0080 번지를 버스 콘트롤러(18)로 출력한다. 버스 콘트롤러(18)는 H'00 0080 번지가 내장 DRAM 영역에 대한 액세스인 것을 인식하여 내장 DRAM(15)에 대하여 H'00 0080 번지의 어드레스를 출력한다. 내장 DRAM(15)은 H'00 0080 번지에 있는 정보를 내부 데이터 버스(20)를 통해 CPU(11)로 출력한다.
외부 인터럽트 벡터 엔트리는 내장 DRAM(15)에 기억된 외부 인터럽트 처리 프로그램(51)을 개시시키기 위한 정보를 포함하고 있다. 본 실시예에서는 도 4에 도시한 바와 같이, 그 선두 어드레스인 H'00 0080 번지에는 오퍼레이션 코드 JMP와 분기 목적 어드레스 정보로 구성된 분기 인스트럭션이 저장되어 있으며 H'00 0081 번지∼H'00 008F 번지에는 아무 정보도 저장되어 있지 않다.
이 분기 인스트럭션의 분기 목적 어드레스 정보는 복수의 인스트럭션으로 이루어진 외부 인터럽트 처리 프로그램(51)의 선두 어드레스인 H'00 1000 번지를 표시하고 있다. 따라서, 마이크로프로세서(10)는, 그 분기 인스트럭션의 실행에 의해 H'00 1000 번지를 PC(43)에 세트하여 내장 DRAM(15)의 H'00 1000 번지에 저장된 외부 인터럽트 처리 프로그램의 선두 인스트럭션을 내부 데이터 버스(20)를 통해 CPU(11)로 전송한다. 이 선두 인스트럭션은 인스트럭션 디코더(31)에서 디코딩되어 실행부(40)에서 실행된다. 이후, 마이크로프로세서(10)는 PC(43)가 유지하고 있는 어드레스를 순차적으로 카운트하여 외부 인터럽트 처리 프로그램(51)내에 있는 복수의 인스트럭션을 순차적으로 페치해 실행한다.
통상적으로, 외부 인터럽트 처리 프로그램에는 복수의 인터럽트 요인 중 어느 인터럽트 요인이 원인이 되어 외부 인터럽트 신호 INT가 인가된 것인지를 해석하는 요인 해석 프로그램, 외부 인터럽트 신호 INT의 발생 요인으로 된 인터럽트 요인에 대응한 인터럽트 처리를 행하는 요인 처리 프로그램이 포함되며, 이 외부 인터럽트 처리 프로그램이 실행됨으로써 마이크로프로세서(11)내에서 외부 인터럽트의 발생 요인에 대응한 처리가 이루어진다.
다음으로, 슬레이브 모드로 설정된 경우 마이크로프로세서(10)에 있어서의 리세트 동작에 대해 설명한다.
리세트 신호 RST가 L 레벨로 인가되면, 마스터 모드인 경우와 마찬가지로 프로세서(10)내의 소자가 리세트되며, 하드웨어적인 리세트 처리가 이루어진다. 또한, 리세트 신호 RST가 인가된 것에 응답하여 PC(43)에 리세트 벡터 엔트리의 선두 어드레스인 H'FF FFF0 번지가 세트된다. 그러나, 그 후에 리세트 신호 RST가 H 레벨로 되어도, 제어부(30)는, PC(43)가 그 선두 어드레스인 H'FF FFF0 번지를 버스 콘트롤러(18)로 전송하지 않도록 하여, 외부로부터 리세트 벡터 엔트리를 페치하지 않게 실행부(40)를 제어하고 있다.
도 5는 프로세서(10)가 슬레이브 모드로 설정된 경우의 내장 DRAM이 할당된 영역을 상세하게 도시한다.
슬레이브 모드에서, 소프트웨어적인 리세트 처리는 외부로부터 외부 인터럽트 신호 INT가 인가됨으로써 개시된다.
또한, 외부 인터럽트 신호 INT가 인가되기 전에, 마스터 프로세서 등의 외부 버스 마스터에 의해 도 5에 도시한 외부 인터럽트 벡터 엔트리 및 외부 인터럽트 처리 프로그램(52)이 내장 DRAM(15)에 기입된다.
외부 인터럽트 신호 INT가 L 레벨로 인가되면, 제어부(30)는, PC(43)에 외부 인터럽트 벡터 엔트리의 선두 어드레스인 H'00 0080 번지를 세트하여, 외부 인터럽트 벡터 엔트리가 내장 DRAM(15)으로부터 CPU(11)내로 페치되도록 실행부(40)를 제어한다. PC(43)는 H'00 0080 번지를 버스 콘트롤러(18)로 출력한다. 버스 콘트롤러(18)는 H'00 0080 번지가 내장 DRAM 영역에 대한 액세스인 것을 인식하여 내장 DRAM(15)에 대하여 H'00 0080 번지의 어드레스를 출력한다. 내장 DRAM(15)은 H'00 0080 번지에 있는 정보를 내부 데이터 버스(20)를 통해 CPU(11)로 출력한다.
마스터 모드와 마찬가지로, 외부 인터럽트 벡터 엔트리의 선두 어드레스인 H'00 0080 번지에는 오퍼레이션 코드 JMP와 분기 목적 어드레스 정보로 구성된 분기 인스트럭션이 저장되고 H'00 0081 번지∼H'00 008F 번지에는 아무 정보도 저장되어 있지 않다. 이 분기 인스트럭션의 분기 목적 어드레스 정보는 복수의 인스트럭션으로 이루어진 외부 인터럽트 처리 프로그램(52)의 선두 어드레스인 H'00 1000 번지를 표시하고 있다. 따라서, 마이크로프로세서(10)는, 분기 인스트럭션을 실행함으로써 H'00 1000 번지를 PC(43)에 세트하여 내장 DRAM(15)의 H'00 1000 번지에 저장된 외부 인터럽트 처리 프로그램(52)의 선두 인스트럭션을 내부 데이터 버스(20)를 통해 CPU(11)로 전송한다. 선두 인스트럭션은 인스트럭션 디코더(31)에서 디코딩되어 실행부(40)에서 실행된다. 이후, 마이크로프로세서(10)는 PC(43)가 유지한 어드레스를 순차적으로 카운트하여 외부 인터럽트 처리 프로그램(52)내에 있는 복수의 인스트럭션을 순차적으로 페치해 실행한다.
외부 인터럽트 처리 프로그램(52)은 리세트 처리를 실행하기 위한 인스트럭션을 포함하며, 이 리세트 처리를 실행하기 위한 인스트럭션이 CPU(11)에서 실행됨으로써, 마이크로프로세서(10)가 슬레이브 프로세서로서 사용되는 데 필요한 리세트 처리가 이루어진다.
또한, 이 슬레이브 모드에서의 외부 인터럽트 처리 프로그램은, 멀티프로세서 시스템에 있어서의 슬레이브 프로세서의 사용 형태에 따라 사용자에 의해 자유로이 설정된다. 본 실시예에 따른 슬레이브 프로세스에 있어서는, 외부 인터럽트 신호 INT가 슬레이브 프로세서의 리세트 처리 이외의 요인에 대해서는 사용되지 않는 것으로 상정하고 있기 때문에, 외부 인터럽트 처리 프로그램은 리세트 처리를 실행하기 위한 인스트럭션만으로 구성되어 있다.
그렇지만, 외부 인터럽트 신호 INT가 슬레이브 프로세서의 초기화 처리 이외의 요인에 대한 인터럽트에도 사용된 경우, 리세트 처리를 실행하기 위한 인스트럭션 이외에 그 요인에 대응한 처리를 실행하기 위한 인터럽트 요인 처리 프로그램 및 요인을 해석하기 위한 요인 해석 프로그램을 구성하는 인스트럭션을 외부 인터럽트 처리 프로그램에 추가하여도 무방하다.
마이크로프로세서(10)가 슬레이브 모드로 설정되어 있는 경우, 적어도 리세트 처리가 실행되고 있는 동안에는 외부 버스에 대한 버스 점유권을 갖고 있지 않으며, 특히, 16 개의 데이터 버스 단자 D 및 24 개의 어드레스 단자 A는 모두 하이 임피던스 상태가 된다.
외부 버스 I/F부(13)는 16 개의 외부 데이터 버스 단자 D, 24 개의 어드레스 단자 A로 총 40 개의 단자 각각에 접속하는 입출력 버퍼를 가지며, 그 입출력 버퍼의 회로 장치를 도 6에 도시한다.
이 입출력 버퍼는 그 입력측이 외부 단자에 접속되는 입력 버퍼(60), 그 출력측이 외부 단자에 접속되는 출력 버퍼(61)로 구성되고, 또한 입력 버퍼(60), 출력 버퍼(61)에는 각각 신호 R, W가 입력된다.
외부 단자로부터 데이터 또는 어드레스가 입력될 경우, 신호 R, W를 모두 H 로 하여 입력 버퍼(60)를 동작시킴으로써 외부 단자로부터 입력되는 신호를 입력 버퍼(60)의 출력선으로부터 프로세서 내부로 전송한다. 한편, 출력 버퍼(61)는 외부 단자가 전원 전압 VCC와 접지 전압 GND 중 어느 쪽에도 전기적으로 접속되지 않도록 하여 외부 단자를 하이 임피던스 상태로 한다.
외부 단자로 데이터 또는 어드레스를 출력하는 경우에는 신호 R, W를 모두 L 상태로 하고, 출력 버퍼(61)를 동작시킴으로써 프로세서 내부로부터 출력 버퍼(61)의 입력선으로 운반된 신호를 외부 단자로 전송한다. 한편, 입력 버퍼(60)는 그 출력이 전원 전압 VCC와 접지 전압 GND 중 어느 쪽에도 전기적으로 접속되지 않도록 하여 프로세서 내부로의 출력선을 하이 임피던스 상태로 한다.
즉, 슬레이브 모드에 있어서는, 데이터 버스 단자 D, 어드레스 단자 A에 접속하는 모든 출력 버퍼(61)에 H 레벨의 신호 W를 입력하여 각각의 단자를 모두 하이 임피던스가 되게 한다. 이것은 마이크로프로세서(10)가 데이터 버스 단자 D, 어드레스 단자 A로부터 외부로 신호를 부주의하게 발생시키지 않게 하기 위한 것이다.
또한, 어드레스 단자 A가 하이 임피던스 상태이더라도 어드레스 단자 A를 통해 어드레스를 프로세서(10)에 제공할 수 있어 외부 버스 마스터가 프로세서(10)의 내장 DRAM(15)에 대한 데이터의 기입 또는 판독을 행할 수 있다. 이 경우, 데이터 버스 단자 D가 하이 임피던스 상태이더라도 외부 버스 I/F부(13)는 칩 선택 신호 CS가 입력된 것에 응답하여 데이터 버스 단자 D의 하이 임피던스 상태를 해제시키도록 구성되어 있다.
또한, 본 실시예의 마이크로프로세서(10)에 있어서는 어드레스 단자 A가 하이 임피던스 상태로 되어 외부 데이터 버스의 버스 점유권을 갖고 있지 않는 동안에, CPU(11)가 기억 장치와 IO 장치 등의 외부 장치에 대한 액세스를 요구하며, 버스 콘트롤러(18)가 그 요구 신호 또는 외부 장치를 지정하는 어드레스를 CPU(11)로부터 수신한 경우, CPU(11)에게 외부에 대한 액세스가 금지됨을 알리고, CPU(11)에게 예외 처리를 실행하라고 통지하는 예외 발생 통지 신호를 출력한다. CPU(11)는 이 예외 발생 통지 신호를 수신하면 예외 처리를 개시하여 예외 처리기를 동작시킨다.
도 7은 본 실시예의 마이크로프로세서(10)를 사용하는 멀티프로세서 시스템의 시스템 구성도이다.
이 멀티프로세서 시스템은, 도 1에 있는 마이크로프로세서(10)를 마스터 모드로 설정하여 사용한 마스터 프로세서 MP, 도 1에 있는 마이크로프로세서(10)를 슬레이브 모드로 설정하여 사용한 슬레이브 프로세서 SP를 가지며, 각각의 데이터 버스 단자 D는 공통의 16 비트폭 시스템 버스(100)에 접속되어 있다.
또한, 이 멀티프로세서 시스템은 시스템 버스(100)에 접속되어 각종 인스트럭션을 저장하는 외부 ROM(105)과, 시스템 버스(100)에 접속되어 슬레이브 프로세서 SP로 외부 인터럽트 신호를 출력하는 인터럽트 콘트롤러(110)를 갖는다.
도 7에 있어서의 멀터프로세서 시스템에 대한 시스템 초기화 동작을, 도 8에 도시한 타이밍도를 이용하여 설명한다. 도 8은 리세트 신호 RST와 외부 인터럽트 신호 INT의 파형, 마스터 프로세서 MP, 슬레이브 프로세서 SP의 각 내부 처리 및 슬레이브 프로세서 SP에 있어서의 데이터 버스 단자 D, 어드레스 단자 A의 상태를 각각 도시하고 있다.
특히, 도 8에서의 (1)∼(6)의 각 처리에 대하여 설명한다.
(1) 하드웨어적인 리세트 처리
멀티프로세서 시스템에 있어서, 마스터 프로세서 MP와 슬레이브 프로세서 SP에는 공통으로 리세트 신호 RST가 입력된다. 리세트 신호 RST가 L 레벨로 인가되면, 마스터 프로세서 MP와 슬레이브 프로세서 SP는 리세트 신호 RST의 L 레벨에 응답하여 각 프로세서 내의 기억 소자를 모두 리세트시킨다.
리세트 신호 RST가 H레벨로 반전되면, 이에 응답하여 마스터 프로세서 MP는 외부 ROM(105)에 저장된 리세트 벡터 엔트리를 시스템 버스(100)를 통해 페치한다. 이에 따라, CPU(11)가 리세트 벡터 엔트리에 있는 분기 인스트럭션을 실행함으로써 리세트 처리 프로그램(50)의 선두 인스트럭션으로 분기하고, 마스터 프로세서 MP는 리세트 처리 프로그램(50)의 복수의 인스트럭션을 순차적으로 페치해 실행한다. 한편, 슬레이브 프로세서 SP는 리세트 신호 RST가 반전되어도 리세트 벡터 엔트리를 외부로부터 페치하지 않는다. 따라서 리세트 처리를 행하기 위한 인스트럭션으로 구성된 리세트 처리 프로그램(50)이 인스트럭션 디코더(31)에 제공되어 실행되지 않는다.
(2) 마스터 프로세서 MP의 내장 DRAM(15)으로의 인스트럭션의 다운로딩
리세트 처리 프로그램(50)을 실행함으로써, 마스터 프로세서 MP의 CPU(11)는 외부 ROM(105)(또는 다른 외부 기억 장치(도시하지 않음))으로부터 시스템 버스(100)와 내부 데이터 버스(20)를 거쳐 각종 프로그램을 페치하여 이것을 내장 DRAM(15)의 소정의 저장 위치로 전송한다. 이 내장 DRAM(15)으로 전송되는 프로그램에는 도 4에 도시한 외부 인터럽트 벡터 엔트리와 외부 인터럽트 처리 프로그램(51)이 포함되어 있다.
(3) 슬레이브 프로세서 SP의 내장 DRAM(15)으로의 인스트럭션의 다운로딩
리세트 처리 프로그램(50)을 실행함으로써, 마스터 프로세서 MP는 외부 ROM(105) 또는 도시하지 않은 다른 외부 기억 장치로부터 시스템 버스(100)와 내부 데이터 버스(20)를 거쳐 각종 프로그램을 페치한다. 이렇게 페치된 프로그램을 슬레이브 프로세서 SP의 내장 DRAM(15)의 소정의 영역으로 전송하기 위하여, 마스터 프로세서 MP는 슬레이브 프로세서 SP에 칩 선택 신호 CS와 함께 전송 목적 어드레스를 입력한다. 이에 따라, 슬레이브 프로세서 SP는 시스템 버스(100)를 통해 마스터 프로세서 MP로부터 전송되는 프로그램을 수신하여 자신의 내장 DRAM(15)에 기억시킨다. 이 슬레이브 프로세서 SP의 내장 DRAM(15)에 기억된 프로그램에는 도 5에 도시하는 외부 인터럽트 벡터 엔트리와 리세트 처리를 실행하기 위한 인스트럭션을 포함하는 외부 인터럽트 처리 프로그램(52)이 포함되어 있다.
(4) 슬레이브 프로세서 SP로의 외부 인터럽트 신호 INT의 발생
슬레이브 프로세서 SP의 내장 DRAM(15)으로의 인스트럭션 다운로딩을 종료한 후, 리세트 처리 프로그램(50)을 실행함으로써 마스터 프로세서 MP는 시스템 버스(100)를 통해 인터럽트 콘트롤러(110)로 인터럽트 데이터를 전송한다. 인터럽트 콘트롤러(110)는 16 비트 데이터를 저장하는 인터럽트 레지스터(111)를 가지며 시스템 버스(100)로부터의 인터럽트 데이터를 세트한다.
인터럽트 콘트롤러(110)의 제어부(112)는 플립·플롭 회로를 가지며, 인터럽트 레지스터(111)의 소정의 비트(111a)가 「1」을 유지하고 있는 경우에 플립·플롭 회로를 「0」으로 세트하고, 외부 인터럽트 신호 INT를 L 레벨로 한다. 그리고 외부 인터럽트 신호 INT는 슬레이브 프로세서 SP에 입력된다.
이상 (2)∼(4)의 처리를 포함하는 리세트 처리 프로그램(50)의 실행을 종료함으로써 마스터 프로세서의 초기화가 완료된다.
(5) 슬레이브 프로세서 SP의 외부 인터럽트 처리 프로그램(52)의 실행
슬레이브 프로세서 SP에 있어서, 외부 인터럽트 신호 INT가 인가되면, 슬레이브 프로세서 SP의 CPU(11)는 (3)에서 슬레이브 프로세서의 내장 DRAM(15)에 다운로딩되어 기억된 도 6에 도시한 외부 인터럽트 벡터 엔트리를 페치하고, 그 외부 인터럽트 엔트리의 분기 인스트럭션을 실행한다. 이 분기 인스트럭션을 실행함으로써 외부 인터럽트 처리 프로그램(52)의 선두 인스트럭션으로 분기하여 그 선두 인스트럭션이 실행된다. 그리고 슬레이브 프로세서 SP의 CPU(11)는 내장 DRAM(15)으로부터 외부 인터럽트 처리 프로그램(52)의 복수의 인스트럭션을 순차적으로 페치하여 실행한다.
도 5에 도시한 바와 같이, 외부 인터럽트 처리 프로그램(52)에는 리세트 처리를 실행하기 위한 인스트럭션이 포함되어 있고, 슬레이브 프로세서 SP의 CPU(11)에 있어서 이 리세트 처리를 위한 인스트럭션의 실행이 완료됨으로써 슬레이브 프로세서 SP의 초기화가 완료된다.
(6) 외부 인터럽트 신호 INT의 반전(negation)
슬레이브 프로세서 SP의 범용 입출력 포트에 접속된 단자 P로부터 출력되는 신호 PP0이 인터럽트 콘트롤러(110)의 제어부(112)에 입력된다. 제어부(112)는 신호 PP0이 입력된 것에 의해 제어부(112)의 플립플롭 회로가 「1」로 리세트되도록 구성되어 있다.
슬레이브 프로세서 SP의 CPU(11)가 이 외부 인터럽트 처리 프로그램(52)을 실행함으로써, 슬레이브 프로세서 SP에 있어서의 범용 입출력 포트(16)의 데이터 레지스터에 데이터가 세트되고, 이에 의해 단자 P로부터 신호 PP0가 출력된다. 그리고 신호 PP0가 인터럽트 콘트롤러(110)에 입력되어 제어부(112)의 플립플롭 회로를 리세트시킨다. 그 결과, 인터럽트 콘트롤러(110)가 외부 인터럽트 신호 INT를 H 레벨로 반전시킨다.
이상 (5), (6)의 처리를 포함하는 외부 인터럽트 처리 프로그램(52)의 실행이 종료됨으로써 멀티프로세서 시스템의 초기화가 완료된다.
슬레이브 프로세서 SP의 데이터 버스 단자 D 및 어드레스 단자 A는 멀티프로세서 시스템의 초기화 동작에 있어서, (1)의 하드웨어적인 리세트 처리로부터 시스템의 초기화가 종료할 때까지 항상 하이 임피던스 상태를 유지하고 있다. 이렇게 함으로써 슬레이브 프로세서 SP가 시스템 버스(100)에 대한 버스 점유권을 포기하게 하고 있다. 결국 시스템 초기화가 행해지는 동안은 슬레이브 프로세서 SP가 외부 ROM(105), 마스터 프로세서 MP의 내장 DRAM(15), 외부 기억 장치(도시하지 않음), 외부 IO 장치에 대한 액세스를 행하지 않는다.
본 실시예 1에 있어서의 마이크로프로세서(10)에는 다음의 특징이 있다.
(a) 마이크로프로세서(10)는 외부로부터 리세트 신호 RST가 입력되어도 그 내부 기억 소자의 기억 내용을 리세트시키지만 리세트 벡터 엔트리를 페치하지 않도록 했기 때문에 외부의 기억 장치에 저장된 리세트 처리 프로그램을 실행하지 않는다. 그래서, 인터럽트 신호 INT가 입력된 것에 응답하여 외부 인터럽트 벡터 엔트리를 참조해 CPU(11)가 외부 인터럽트 처리 프로그램(52)에 포함된 리세트 처리를 위한 인스트럭션을 실행함으로써 프로세서(10)의 초기화가 이루어지므로, 리세트 신호의 입력 신호와는 별도로 인터럽트 처리를 위해 프로세서에 통상적으로 구비되어 있는 기존의 외부 인터럽트 신호의 입력 기구 및 그 인터럽트 처리 기구를 이용하여 초기화할 수 있다.
따라서, 리세트 신호에 응답하여 리세트 처리의 프로그램 루틴을 실행함으로써 초기화되는 마스터 프로세서로 멀티프로세서 시스템을 구성하는 경우에, 마이크로프로세서(10)는 외부 인터럽트 처리 프로그램에 리세트 처리를 위한 인스트럭션을 설정해 두는 것 이외에 기존의 하드웨어 장치를 그대로 이용하는 것만으로 마스터 프로세서와는 별도로 초기화용 프로그램 루틴을 실행할 수 있다.
종래에 생각되어 온 바와 같이, 멀티프로세서 시스템에 사용되는 복수의 프로세서 모두가 리세트 신호에 응답하여 리세트 처리용의 별도의 프로그램 루틴을 실행하는 경우에 필요하게 되는, 어느 프로세서가 어느 프로그램 루틴을 액세스하여 실행해야 할지를 식별하는 각종 장치도 불필요하게 된다.
(b) 마이크로프로세서(10)가 슬레이브 모드로 설정되어 있는 경우, 리세트 신호가 입력된 후에 그 내부의 초기화가 종료할 때까지는 적어도 어드레스 단자 A를 하이 임피던스 상태(즉, 도 6의 출력 버퍼(61)의 출력측을 하이 임피던스 상태로 함)로 하고 있으므로, 프로세서(10)가, 어드레스 단자로부터 부주의하게 H 또는 L 신호가 출력되는 것을 방지한다. 특히, 프로세서(10)는, 리세트 신호가 입력된 후 그 내부의 초기화가 종료할 때까지의 기간 동안, 다른 외부 버스 마스터가 그 초기화를 위해 외부 데이터 버스를 사용하는 경우(예를 들면, 본 실시예에 있어서 도 7에 있어서의 마스터 프로세서 MP의 초기화), 시스템의 어드레스 버스를 통해 전파되고 있는 어드레스에 영향을 주지 않으므로, 외부 버스 마스터의 외부에 대한 액세스를 확실하게 실행할 수 있게 한다.
또한, 인터럽트 처리 프로그램의 실행시에 외부 메모리를 액세스할 수 있도록 하기 위해 어드레스 단자 A는 인터럽트 신호 INT가 인가될 때까지 하이 임피던스 상태로 하고, 신호가 인가된 후에 하이 임피던스 상태를 해제하도록 하여도 좋다.
본 실시예에서는 마스터 프로세서의 초기화시에 그 내장 DRAM으로부터 데이터가 판독되는 일이 없으므로 데이터 버스 단자 D도 하이 임피던스 상태로 되어 있다.
(c) 마이크로프로세서(10)는, 어드레스 단자 A가 하이 임피던스 상태인 경우 외부 버스 I/F부(13)가 CPU(11)로부터 외부에 대한 액세스를 요구받더라도, CPU(11)에게 예외 발생 통지 신호를 출력하도록 하고 있기 때문에, CPU(11)는 이 예외 발생 통지 신호에 의해 외부 버스 점유권 없이 외부에 대한 액세스를 실행하는 예외 처리를 신속히 행한다.
(d) 마이크로프로세서(10)에서는 내장 DRAM(15)에 저장된 외부 인터럽트 처리 프로그램을, 내부 데이터 버스(20)를 통해, CPU(11)가 페치하고, 이 외부 인터럽트 처리 프로그램(52)내의 리세트 처리를 위한 인스트럭션을 실행함으로써 프로세서의 초기화가 이루어지기 때문에, 멀티프로세서 시스템에 있어서 다른 프로세서와는 독립적으로 초기화가 이루어질 수 있다. 예컨대, 도 8에 있는 마스터 프로세서 MP의 리세트 처리 프로그램의 실행 기간과 슬레이브 프로세서로서 기능하는 마이크로프로세서(10)의 외부 인터럽트 처리 프로그램의 실행 기간이 일부 겹쳐져 행해지는 것에서 알 수 있는 바와 같이, 마이크로프로세서(10)를 다른 마이크로프로세서와 병행하여 리세트 처리할 수도 있으므로 시스템 전체의 초기화를 신속하게 종료시킬 수 있다.
또한, CPU(11)는 외부 데이터 버스(25)를 사용하지 않고 리세트 처리를 위한 인스트럭션을 페치하여 실행하기 때문에, 멀티프로세서 시스템에 있어서, 초기화시에 외부 데이터 버스(25)를 통해 외부 기억 장치로부터 리세트 처리 프로그램을 페치하여 실행하는 마이크로프로세서와의 사이에 외부 데이터 버스(25)의 이용을 조정하는 버스 조정 회로를 마련할 필요도 없어진다.
본 실시예에서는, 마스터 프로세서의 리세트 처리 프로그램(50)의 실행에 있어서 마이크로프로세서(10)의 내장 DRAM(15)에 리세트 처리를 위한 인스트럭션을 포함한 외부 인터럽트 처리 프로그램(52)을 외부로부터 기입하도록 하고 있다. 그러나, 마이크로프로세서(10)내의 내부 데이터 버스(20)에 접속하는 내장 ROM을 마련해서, 미리 이 내장 ROM에 외부 인터럽트 벡터 엔트리와 리세트 처리를 위한 인스트럭션을 포함한 외부 인터럽트 처리 프로그램(52)을 저장해 두므로, CPU(11)는 내장 ROM에서 인스트럭션을 페치하여 실행함에 의해서도 동일한 효과를 얻는다. 더구나, 마스터 프로세서 MP의 리세트 처리 프로그램(50)의 실행에 있어서 슬레이브 프로세서 SP측의 내장 DRAM(15)으로의 프로그램의 기입 동작이 불필요하게 되어 시스템 전체의 초기화를 더욱 민첩하게 종료시킬 수 있다.
이와 같이, 내장 ROM에 저장하는 형태를 채용하는 경우에는 도 5에 있는 외부 인터럽트 벡터 엔트리 분기 인스트럭션에 의해 CPU(11)가 내장 ROM을 액세스하도록 그 분기 목적 어드레스 정보를 변경할 필요가 있다.
(e) 마이크로프로세서(10)에서는 외부로부터 리세트 신호 RST가 입력된 것에 응답하여 리세트 처리 프로그램(50)이 실행됨으로써 초기화가 이루어지는 마스터 모드와, 외부로부터 리세트 신호 RST가 입력되더라도 리세트 처리 프로그램을 외부 ROM 등으로부터 페치하지 않고, 인터럽트 신호 INT가 입력된 것에 응답하여, CPU(11)가, 외부 인터럽트 처리 프로그램을 구성하는 인스트럭션이 디코딩되어 외부 인터럽트 처리 프로그램에 포함된 리세트 처리를 위한 인스트럭션을 실행함으로써 초기화가 이루어지는 슬레이브 모드로 설정할 수 있도록 구성되어 있다. 마이크로프로세서(10)를 마스터 프로세서, 슬레이브 프로세서 중 어느 것으로 사용하더라도 도 2와 같이 동일한 어드레스 공간을 구성할 수 있다. 그리고, 마이크로프로세서가 어느 모드로 설정되더라도 리세트 벡터 엔트리의 내용 및 외부 인터럽트 벡터 엔트리 내용을 변경시킬 필요는 없다. 따라서, 멀티프로세서 시스템에 있어서 슬레이브 프로세서를 증가시키고자 하는 경우에는 동일한 프로세서를 단순히 추가하여 모드를 설정하는 간단한 장치만으로 실현될 수 있으며, 또한 각 프로세서의 초기화를 유연하게 할 수 있다.
본 실시예에 있어서의 멀티프로세서 시스템에는 다음과 같은 특징이 있다.
(f) 마스터 프로세서 MP 및 슬레이브 프로세서 SP에 모두 리세트 신호 RST가 입력된다. 마스터 프로세서 MP는 리세트 신호 RST가 입력된 것에 응답해서 리세트 벡터 엔트리를 참조하여 리세트 처리 프로그램(50)을 실행함으로써 초기화를 행한다. 슬레이브 프로세서 SP는 리세트 신호 RST가 입력되더라도 외부 ROM에 기입된 리세트 벡터 엔트리를 참조하지 않기 때문에 리세트 처리 프로그램을 실행하지 않고, 마스터 프로세서 MP가 인터럽트 콘트롤러(110)를 통해 외부 인터럽트 신호 INT를 입력한 것에 응답하여 외부 인터럽트 벡터 엔트리를 참조해 CPU(11)가 외부 인터럽트 처리 프로그램(52)을 페치하여 프로그램내의 리세트 처리를 위한 인스트럭션을 실행함으로써 초기화를 달성한다.
그 결과, 각 프로세서가 외부 ROM에 있는 리세트 벡터 엔트리를 동시에 액세스하는 일이 없다. 그리고, 시스템의 초기화시에는 2 개의 마이크로프로세서는 각각 서로 다른 벡터 엔트리를 참조하여 프로그램 루틴을 실행하도록 구성되어 있기 때문에, 동일한 리세트 벡터 엔트리를 참조하여 프로그램 루틴을 실행하는 장치를 채용한 경우에 필요한 프로세서의 식별 기구도 불필요하다.
또한, 각 프로세서를 초기화하기 위해서 리세트 처리 프로그램을 저장한 기억 장치를 프로세서마다 대응해서 마련하고 있으므로, 각 프로세서는 대응하는 기억 장치로부터 프로그램을 페치하여 실행할 필요가 없다. 따라서, 프로세서가 어떤 기억 장치를 액세스할 것인가를 설정하기 위한 기구도 불필요하게 된다. 또한, 기억 장치의 증가도 막을 수 있다.
(실시예 2)
도 7의 멀티프로세서 시스템에 있어서 마스터 프로세서 MP, 슬레이브 프로세서 SP, 인터럽트 콘트롤러(110), 이들을 공통으로 접속하는 데이터 버스를 단일 칩화한 멀티프로세서 기구를 갖는 마이크로프로세서로 구성하여도 좋다. 그리고, 이러한 멀티프로세서 기구를 갖는 마이크로프로세서와, 도 7에 도시한 것과 동일한 외부 ROM을 시스템 버스로 접속함으로써 멀티프로세서 시스템 전체를 구성하여도 좋다.
도 9는 본 실시예에 있어서의 멀티프로세서 시스템을 구비한 마이크로프로세서를 도시한 구성도이다. 이 멀티프로세서 시스템은 마이크로프로세서(200), ROM(201) 및, 마이크로프로세서(200)와 ROM(201) 또는 도시하지 않은 유닛과의 사이에서 데이터를 전송하는 시스템 버스(202)를 갖는다.
마이크로프로세서(200)는 128 비트폭의 내부 데이터 버스(210), 이 내부 데이터 버스(210)에 접속된 각각의 CPU(211a,211b), 내장 DRAM(212), 외부 버스 IF부(213), 인터럽트 콘트롤러(214), CPU(211a,211b) 각각의 제어를 수신하여 내장 DRAM(212)과 외부 버스 IF부(213)를 제어하는 버스 콘트롤러(2l5)를 포함하며, 이들을 단일 칩의 반도체 집적 회로로 구성하고 있다.
CPU(211a,211b) 각각은 기본적으로는 도 1에 있는 CPU(11)와 동일하게 구성된 것으로, 내부 데이터 버스(210)로부터 인스트럭션을 페치해 디코딩하는 인스트럭션 디코더를 포함하고 그 디코드 내용에 따라 제어 신호를 출력하는 제어부와, 32 비트 단위로 데이터를 처리하고 이 제어 신호에 따라 디코딩된 인스트럭션을 실행하며 내부 데이터 버스(210)에 대하여 데이터를 입출력하는 실행부를 갖는다. 그리고 CPU(211a,211b)의 제어부에는 각각 인터럽트 신호 INTa, INTb가 입력되며, 또한 리세트 신호 RST가 공통으로 입력된다. 또한 CPU(211a,211b) 각각은 도 1에 도시한 인스트럭션 큐(12), 데이터 선택기(17)와 동일한 기구를 포함하고 있다.
버스 콘트롤러(215)는 CPU(211a,211b) 각각에 의해 제어되고 각각에서 생성된 어드레스 및 그밖의 제어 신호를 수신하며, 수신된 어드레스가 지정하는 기억영역을 액세스하도록 내장 DRAM(214) 또는 외부의 기억 장치로 어드레스를 출력한다. 외부 기억 장치에 대한 액세스는 버스 콘트롤러(215)가 외부 버스 IF부(13)를 제어함으로써 행해진다. 그리고 CPU(211a,211b)는 제각기 내부 데이터 버스(210)를 통해 버스 콘트롤러(215)로부터 출력된 어드레스가 지정하는 기억 영역으로부터 인스트럭션 또는 데이터를 페치한다.
내장 DRAM(212)은 내부 데이터 버스(210)와 128 비트 단위로 데이터를 입출력하고, 버스 콘트롤러(215)로부터 출력되는 어드레스 및 그밖의 제어 신호를 수신하며, 어드레스가 지정하는 영역에 대하여 인스트럭션 또는 데이터의 판독 또는 기입이 이루어진다. CPU(2lla,211b)는 모두, 버스 콘트롤러(2l5)를 제어함으로써 내장 DRAM(212)과 인스트럭션 또는 데이터를 송수신할 수 있다.
외부 버스 I/F부(213)는 16 개의 입출력단을 갖는 데이터 버스 단자 D에 접속되어 시스템 버스(202)를 통해 ROM(201) 또는 도시하지 않은 장치에 대하여 16 비트의 데이터를 입출력한다. 마이크로프로세서(200)가 외부의 기억 장치를 액세스하는 경우에, 외부 버스 I/F부(13)는 버스 콘트롤러(215)로부터 액세스될 목적 어드레스를 수신하여 외부의 기억 장치로 출력한다. 외부의 기억 장치에서는 마이크로프로세서(200)로부터 전송된 데이터를 그 수신된 어드레스가 표시하는 기억 장소에 기입하거나, 그 기억 장소에 기억된 데이터를 판독하여 마이크로프로세서(200)로 전송한다.
마이크로프로세서(200)는 외부로부터 외부 인터럽트 신호 EINT를 수신한다. 외부 인터럽트 신호 EINT는 인터럽트 콘트롤러(214)에 입력된다. 인터럽트 콘트롤러(214)는 CPU(211a,211b)에 각각 인터럽트 신호 INTa, INTb를 인가한다. 특히, 인터럽트 콘트롤러(214)는 외부 인터럽트 신호 EINT가 CPU(211a,211b) 중 어느 쪽에 대한 인터럽트인지를 판정하여 인터럽트 신호 INTa, INTb 중 어느 한쪽을 출력한다. CPU(211a,211b)는 각각 인터럽트 신호 INTa, INTb에 응답해 인터럽트 처리 프로그램을 개시하여 실행하며, 인터럽트 요인에 대한 인터럽트 처리를 행한다. 또한, 인터럽트 콘트롤러(214)는 CPU(211a)로부터 내부 데이터 버스(210)를 통해 데이터를 전송받고, 이 전송된 데이터에 기초하여 외부 인터럽트 신호 EINT에 상관없이 CPU(211b)에 대하여 인터럽트 신호 INTb를 출력하는 기능을 갖는다.
마이크로프로세서(200)는 외부로부터 리세트 신호 RST를 수신하여 CPU(211a, 211b)를 포함하는 프로세서(200)내의 각 기억 소자에 제공하며, 리세트 신호 RST가 인가된 것에 응답하여 각 기억 소자의 기억 내용을 리세트시키는 하드웨어적인 리세트 처리를 행한다. 또한, 마이크로프로세서(200)는 리세트 신호 RST가 반전되면, ROM(201)에 저장되어 있는 리세트 처리 프로그램을 개시시켜 CPU(211a)에서 실행되도록 구성되어 있다. 상세한 설명은 후술한다.
마이크로프로세서(200)는 이들 CPU(211a,211b)중 어느 하나가 마스터 프로세서로서, 다른 하나가 슬레이브 프로세서로서 동작하는 멀티프로세서를 구성한다. 본 실시예에서는 CPU(211a)를 마스터 프로세서로서, CPU(211b)를 슬레이브 프로세서로서 구성하고 있다.
도 10은 마이크로프로세서(200)의 물리 어드레스 공간을 설명하기 위한 도면이다. 실시예 1에 있는 프로세서(10)와 마찬가지로 H'00 0000 번지∼H'0F FFFF 번지의 영역은 내장 DRAM(15)에 할당된 내장 DRAM 영역이고, H'10 0000 번지∼H'FF FFFF 번지의 영역은 ROM(201) 및 그밖의 외부 기억 장치에 대하여 할당된 외부 영역이다. 내장 DRAM 영역내의 H'00 0080 번지∼H'00 008F 번지는 CPU(211a)가 참조하는 인터럽트 벡터 엔트리(241)의 기억 영역으로, H'00 0090 번지∼H'00 009F 번지는 CPU(211b)가 참조하는 인터럽트 벡터 엔트리(242)의 기억 영역으로 각각 할당된다. 외부 영역중 H'FF FFF0 번지∼H'FF FFFF 번지는 리세트 벡터 엔트리(240)의 저장 영역으로 할당된다.
CPU(211a,211b) 각각의 어드레스 공간은 도 10에 도시한 바와 같이 표현된다.
도 11은 어드레스 공간의 외부 영역을 상세히 설명하기 위한 도면이다.
외부 영역에는 도 9에 도시된 ROM(201)이 할당된다. 또한 그 ROM(201)이 할당되어 있는 영역에는 리세트 벡터 엔트리(240)와, 그 선두 인스트럭션이 H'FF 0000 번지에 저장된 리세트 처리 프로그램(250)이 할당되어 있다. 리세트 벡터 엔트리에서 H'FF 0000 번지에는 리세트 처리 프로그램(250)의 선두 인스트럭션으로 분기하는 분기 인스트럭션(0)이 저장되어 있고, 그밖의 번지에는 아무 정보도 저장되어 있지 않다. 분기 인스트럭션(0)에는 H'FF 0000 번지를 나타내는 정보가 포함되어 있다.
또한, 도 12는 어드레스 공간의 내장 DRAM 영역을 상세히 설명하기 위한 도면이다.
선두 인스트럭션이 H'00 1000 번지에 저장되어 있는 인터럽트 처리 프로그램(251) 및 선두 인스트럭션이 H'00 2000 번지에 저장되어 있는 인터럽트 처리 프로그램(252)이 내장 DRAM 영역에 할당되어 있다. 인터럽트 벡터 엔트리(241)에서 H'00 0080 번지에는 인터럽트 처리 프로그램(251)의 선두 인스트럭션으로 분기하는 분기 인스트럭션(1)이 저장되어 있고, 그밖의 번지에는 아무 정보도 저장되어 있지 않다. 분기 인스트럭션(1)에는 H'00 1000 번지를 가리키는 정보가 포함되어 있다. 인터럽트 벡터 엔트리(242)에 있어서, H'00 0090 번지에는 인터럽트 처리 프로그램(252)의 선두 인스트럭션으로 분기하는 분기 인스트럭션(2)이 저장되어 있고, 그밖의 번지에는 아무 정보도 저장되어 있지 않다. 분기 인스트럭션(2)에는 H′00 2000 번지를 표시하는 정보가 포함되어 있다.
다음으로, 도 9의 마이크로프로세서(200)의 초기화 동작에 대해 도 13의 흐름도를 참조하여 설명한다.
단계 ST1에서, 리세트 신호 RST가 L 레벨로 인가되면 CPU(211a,211b)를 포함하는 마이크로프로세서(200)내의 각 기억 소자는 그 L 레벨의 리세트 신호 RST를 수신하여 자신의 기억내용을 리세트시킨다(마이크로프로세서(200)의 하드웨어적인 리세트 처리).
다음으로, 단계 ST2에서 리세트 신호 RST가 H 레벨로 반전되면, CPU(211a)는 리세트 처리 프로그램(250)을 실행한다.
우선, 리세트 신호 RST가 반전되면, CPU(211a)는 리세트 벡터 엔트리(240)의 내용을 참조하기 위해 시스템 버스(202)를 통해 ROM(201)로부터 리세트 벡터 엔트리(240)를 프로세서(200)로 페치하고, 내부 데이터 버스(210)를 통해 CPU(211a)내로 페치한다. CPU(211a)는 리세트 벡터 엔트리(240)에 포함된 분기 인스트럭션(0)을 실행함으로써 ROM(201)에 저장된 리세트 처리 프로그램(250)의 실행으로 분기한다. 그리고 리세트 처리 프로그램(250)을 구성하는 복수의 인스트럭션이 H'FF 0000 번지의 선두 인스트럭션으로부터 순차적으로 페치되어 CPU(211a)에 의해 실행된다. 리세트 처리 프로그램(250)의 실행이 완료됨으로써 CPU(2lla) 내의 초기화가 완료된다.
한편, 리세트 신호 RST가 반전되더라도, CPU(211b)는 리세트 벡터 엔트리(240)를 ROM(201)로부터 페치하지 않도록 구성되어 있다. 따라서, CPU(211b)는 리세트 처리 프로그램(250)을 실행하지 않는다.
또, 단계 ST2에서 CPU(211a)는 ROM(201)에 저장되어 있는 인터럽트 벡터 엔트리(241, 242) 및 인터럽트 처리 프로그램(251, 252)을 ROM(201)으로부터 페치하여 내장 DRAM(212)으로 다운로딩하는 처리를 행한다(단계 ST2a). 인터럽트 벡터 엔트리(241, 242) 및 인터럽트 처리 프로그램(251, 252)은 도 12의 어드레스 공간에서 지정된 바와 같이 내장 DRAM(212)의 소정의 영역에 각각 저장된다.
또한, 단계 ST2는 리세트 처리 프로그램(250)의 실행에 있어서의 CPU(211a)의 초기화가 완료된 후에 행해지는 최후의 처리로서, CPU(211a)가 인터럽트 콘트롤러(214)를 사용하여 CPU(211b)에 인터럽트 신호 INTb를 발생시키는 처리를 행한다(단계 ST2b).
단계 ST2b에 있어서, CPU(211a)는 내부 데이터 버스(210)를 통해 인터럽트 콘트롤러(214)로 데이터를 전송한다. 인터럽트 콘트롤러(214)는 이 전송된 데이터에 기초하여 CPU(211b)로 인터럽트 신호 INTb를 출력한다.
단계 ST3에서 CPU(211b)는 인터럽트 신호 INTb가 인가된 것에 응답하여 인터럽트 처리 프로그램(252)을 실행한다.
CPU(211a)는 인터럽트 콘트롤러(2l4)에 데이터를 전송한 것을 마지막으로 내부 데이터 버스(210)의 버스 점유권을 포기하고 CPU(211b)에게로 내부 데이터 버스(210)의 버스 점유권을 이전한다.
인터럽트 신호 INT가 인가되면, CPU(211b)는 단계 ST2a의 처리에 의해 이미 내장 DRAM(212)에 저장되어 있는 인터럽트 벡터 엔트리(242)를 내부 데이터 버스(210)를 통해 페치한다. CPU(211b)는 인터럽트 처리 벡터 엔트리(242)를 참조하여 그 속에 포함되어 있는 분기 인스트럭션(2)을 실행함으로써 동일한 단계 ST2a의 처리에 의해 이미 내장 DRAM(212)에 저장되어 있는 인터럽트 처리 프로그램(252)의 실행으로 분기한다. 그리고 인터럽트 처리 프로그램(252)을 구성하는 복수의 인스트럭션이 H'00 2000 번지의 선두 인스트럭션으로부터 순차적으로 페치되어 CPU(211b)에 의해 실행된다.
이 인터럽트 처리 프로그램(252)에는 CPU(211b)내의 리세트 처리를 위한 인스트럭션이 포함되어 있다. 인터럽트 처리 프로그램(252)이 실행됨에 따라, CPU(211b)는 인터럽트 처리 프로그램(252)내의 요인 해석 프로그램을 실행시켜서 입력된 인터럽트 신호 INTb가 리세트 처리라는 요인에 의해 인가되었음을 해석하고, 그 결과 인터럽트 처리 프로그램(252)에 포함된 리세트 처리를 위한 인스트럭션을 실행한다. 인터럽트 처리 프로그램(252)의 실행이 종료함으로써 CPU(211b)내의 초기화가 완료된다.
인터럽트 처리 프로그램내의 리세트 처리를 위한 인스트럭션에는 CPU(211b)로부터 내부 데이터 버스(210)를 통해 인터럽트 콘트롤러(214)로 데이터를 전송하는 인스트럭션이 포함되어 있다. 인터럽트 콘트롤러(214)는 이 전송된 데이터 수신시 인터럽트 신호 INTb를 반전시킨다.
또, CPU(211b)에 입력되는 인터럽트 신호 INTb는 CPU(211a)의 리세트 처리 프로그램(250)의 실행에 의해 발생시키는 경우에 한하지 않고 CPU(211a)의 초기화가 종료한 뒤에 외부로부터의 인터럽트 신호 INT에 응답하여 발생시켜도 좋다.
이 실시예 2에 있어서의 마이크로프로세서(200)에는 다음 특징이 있다.
내장 메모리(212)는 CPU(211a,211b)의 공유 메모리로서 128 비트의 내부 데이터 버스(210)를 통해 데이터의 송수신이 행해지기 때문에, 공유 메모리에 대한 액세스 효율이 현저히 향상된다.
이러한 마이크로프로세서(200)에 있어서, 소프트웨어적인 리세트 처리를 행하는 경우에 리세트 신호 RST가 입력되더라도, CPU(211a)만이 리세트 처리 프로그램을 실행하여 CPU(211a)내를 초기화시키고, CPU(211b)는 인터럽트 신호 INTb에 응답하여 리세트 처리를 위한 인스트럭션을 포함하는 외부 인터럽트 처리 프로그램을 실행함으로써 CPU(211b)내를 초기화시키기 때문에, CPU(211a)만이 리세트 벡터 엔트리(240)를 참조하므로, CPU(211a,211b)가 리세트 벡터 엔트리(240)를 저장하고 있는 ROM(201)을 순차적으로 액세스하기 위한 버스 조정 회로를 칩내에 마련할 필요가 없다.
특히, CPU(211b)는 외부 기억 장치로부터가 아니라 내장 DRAM(2lla)으로부터 인터럽트 벡터 엔트리 및 리세트 처리를 실행하기 위한 인스트럭션을 페치하여 실행하기 때문에 인스트럭션이 고속으로 페치될 수 있다. 또한 내부 데이터 버스폭이 외부 버스보다 크기 때문에 한층 더 고속의 인스트럭션 페치를 기대할 수 있다.
또, 리세트 처리 프로그램을 저장하는 것으로는, 외부 ROM(201) 이외에 RAM 또는 자기 디스크 등의 데이터 버스(202)에 접속하는 기억 장치라면 어느 것이라도 무방하다.
이상 설명한 바와 같이, 본 발명에 따른 마이크로프로세서에 의하면 외부로부터 리세트 신호가 입력된 것에 응답하여 프로세서 내부의 기억 소자를 리세트시키고, 인터럽트 신호가 입력된 것에 응답해 처리부가 인터럽트 처리 프로그램을 구성하는 인스트럭션이 인스트럭션 디코더에 제공되도록 하고, 이 인터럽트 처리에 포함된 리세트 처리를 실행하는 인스트럭션을 실행함으로써 초기화가 이루어지기 때문에, 리세트 신호에 응답하여 인스트럭션을 실행함으로써 초기화되는 별도의 프로세서로 멀티프로세서 시스템을 구성하는 경우 원래 인터럽트 처리를 위해 마련되어 있던 통상의 기구를 사용함으로써 초기화를 위한 인스트럭션 실행이 가능하게 된다.
따라서, 공통의 리세트 신호에 응답하여 프로그램을 실행시킨 경우에 비해, 각 프로세서가 실행해야 할 프로그램 루틴이 저장된 어떤 기억 영역을 액세스해야 할지를 식별하기 위한 하드웨어 장치를 각각의 프로세서에 추가할 필요가 없으므로 멀티프로세서 시스템의 시스템 설계가 용이하게 된다.
또한, 본 발명에 따른 마이크로프로세서에 의하면, 제 1 모드에서는 리세트 신호가 처리부에 입력된 것에 응답해서, 처리부가 리세트 처리 프로그램을 구성하는 인스트럭션이 상기 처리부의 인스트럭션 디코더에 제공되도록 하고, 이 리세트 처리 프로그램의 인스트럭션을 실행함으로써 프로세서의 초기화가 이루어지며, 제 2 모드에서는 인터럽트 신호가 처리부에 입력된 것에 응답해서, 처리부가 인터럽트 처리 프로그램을 구성하는 인스트럭션이 인스트럭션 디코더에 제공되도록 하여 인터럽트 처리 프로그램에 포함된 리세트 처리를 위한 인스트럭션을 실행함으로써 프로세서의 초기화가 이루어지기 때문에, 제 1 모드로 설정된 것과 제 2 모드로 설정된 것을 마련하여 멀티프로세서 시스템을 구성한 경우 각각의 프로세서가 공통의 리세트 신호에 응답하여 프로그램을 실행시킨 때에 비해 제각기 실행해야 할 프로그램 루틴이 저장된 어느 기억 영역을 액세스해야 할지를 식별하기 위한 하드웨어 장치를 각각의 프로세서에 마련할 필요없이 시스템 전체를 초기화시킬 수 있다. 이 경우, 모드를 변경하는 것 이외에는 완전히 동일한 프로세서를 마련하여도 무방하다.
또한, 본 발명에 따른 마이크로프로세서에 의하면, 외부로부터 입력되는 리세트 신호에 응답하여 제 1 및 제 2 처리부를 포함하는 프로세서 내부의 기억 소자를 리세트시키며, 제 1 처리부에서는 리세트 신호가 입력된 것에 응답하여 리세트 처리 프로그램을 실행함으로써 제 1 처리부의 초기화가 이루어지도록 하고, 제 2 처리부에서는 인터럽트 신호가 입력된 것에 응답하여 인터럽트 처리 프로그램에 포함된 리세트 처리를 위한 인스트럭션을 실행함으로써 프로세서의 초기화가 이루어지기 때문에 각각의 처리부가 공통의 리세트 신호에 응답하여 프로그램을 실행하는 경우에 비해 각각의 처리부가 실행해야 할 프로그램 루틴이 저장된 기억 영역을 액세스해야 할지를 식별하기 위한 하드웨어 기구를 프로세서에 장착할 필요가 없게 되어 마이크로프로세서의 설계가 용이하게 된다.
또한, 본 발명에 따른 멀티프로세서 시스템에 의하면, 제 1 마이크로프로세서에 있어서는 리세트 신호가 입력된 것에 응답해 리세트 처리 프로그램을 구성하는 인스트럭션을 제 1 인스트럭션 디코더에 제공하도록 하고 이 리세트 처리 프로그램의 인스트럭션을 실행함으로써 제 1 마이크로프로세서의 초기화가 이루어진다. 제 2 마이크로프로세서에 있어서는 인터럽트 신호가 입력된 것에 응답해 인터럽트 처리 프로그램을 구성하는 인스트럭션이 제 2 인스트럭션 디코더에 제공되도록 하고, 인터럽트 처리 프로그램에 포함된 리세트 처리를 위한 인스트럭션을 실행함으로써 제 2 마이크로프로세서의 초기화가를 달성한다. 이에 의하면, 제 2 마이크로프로세서 측에서는 원래 인터럽트 처리를 위해 마련되었던 통상의 장치를 사용하여 초기화를 위한 인스트럭션을 실행할 수 있게 된다. 따라서, 제 1 및 제 2 마이크로프로세서가 모두 공통의 리세트 신호에 응답하여 프로그램을 실행하는 경우에 비해, 각 프로세서가 실행해야 하는 프로그램 루틴이 저장된 어느 기억 영역을 액세스해야 할지를 식별하기 위한 하드웨어 기구를 각각의 프로세서에 추가할 필요가 없으므로 멀티프로세서 시스템의 시스템 설계가 용이하게 된다.

Claims (9)

  1. 마이크로프로세서에 있어서,
    인스트럭션을 디코딩하는 인스트럭션 디코더와, 상기 인스트럭션 디코더의 디코딩 결과에 따라 상기 인스트럭션을 실행시키는 인스트럭션 실행부를 갖는 중앙 처리부(11)와,
    상기 마이크로프로세서를 제 1 모드 및 제 2 모드중 어느 하나로 설정하기 위한 모드 설정 수단과,
    기억 소자의 내용을 리셋시키기 위한 리셋 신호(RST)를 수신하는 리셋 단자와,
    인터럽트 신호(INT)를 수신하는 인터럽트 단자
    를 포함하며,
    상기 마이크로프로세서가 제 1 모드로 설정된 경우,
    상기 중앙 처리부는, 상기 리셋 신호에 응답해서 어드레스를 출력하고, 초기화를 위한 인스트럭션을 포함하는 리셋 처리 프로그램을 페치해서 처리하며,
    상기 마이크로프로세서가 제 2 모드로 설정된 경우,
    상기 중앙 처리부는, 상기 인터럽트 신호에 응답해서 어드레스를 출력하고, 초기화를 위한 인스트럭션을 포함하는 인터럽트 프로그램을 수신해 처리하며, 상기 리셋 신호가 상기 리셋 단자에 인가되어도 상기 리셋 처리 프로그램을 페치하는 것이 억지되도록 구성된
    마이크로프로세서.
  2. 제 1 항에 있어서,
    상기 중앙 처리부에 페치될 인터럽트 처리 프로그램을 저장하기 위한 내부 메모리(15)를 포함하는 마이크로프로세서.
  3. 인스트럭션을 디코딩하는 인스트럭션 디코더와, 상기 인스트럭션 디코더의 디코딩 결과에 따라 상기 인스트럭션을 실행하는 인스트럭션 실행부를 제각기 구비한 제 1 처리부 MP 및 제 2 처리부 SP(211a, 211b)와,
    초기화를 행하기 위한 인스트럭션을 포함하는 인터럽트 처리 프로그램을 저장하는 메모리(15, 212)
    를 포함하며,
    상기 제 1 및 제 2 중앙 처리부 각각은 리셋 신호 수신시에 상기 리셋 신호에 응답해서 상기 제 1 및 제 2 중앙 처리부 각각에 설치된 기억 소자의 내용을 리셋시키고,
    상기 제 1 중앙 처리부는, 상기 리셋 신호에 응답해서 어드레스를 출력하고, 초기화를 위한 인스트럭션을 포함하는 리셋 처리 프로그램을 페치해 처리하며,
    상기 제 2 중앙 처리부는 인터럽트 신호 수신시에 상기 인터럽트 신호에 응답해서 어드레스를 출력하고, 상기 초기화를 위한 인스트럭션을 포함하는 인터럽트 처리 프로그램을 상기 메모리로부터 페치해서 처리하며, 상기 리셋 신호를 수신하더라도 상기 리셋 처리 프로그램을 페치하는 것이 억지되도록 구성된
    멀티프로세서 시스템.
  4. 제 3 항에 있어서,
    상기 제 1 중앙 처리부는 인스트럭션에 기초하여, 상기 인터럽트 처리 프로그램을 다른 메모리(105, 201)로부터 상기 메모리로 다운로딩하는 멀티프로세서 시스템.
  5. 제 4 항에 있어서,
    상기 제 2 중앙 처리부와 상기 메모리는 단일의 반도체 칩상에 구성되며, 상기 제 1 중앙 처리부는 상기 제 2 중앙 처리부와는 다른 반도체 칩에 구성되어 있는 멀티프로세서 시스템.
  6. 제 4 항에 있어서,
    상기 제 1 중앙 처리부와 상기 제 2 중앙 처리부와 상기 메모리는 단일의 반도체 칩상에 구성되어 있는 멀티프로세서 시스템.
  7. 제 2 항에 있어서,
    상기 모드 설정 수단에 의해 제 2 모드로 설정되어 있는 경우에, 상기 인터럽트 처리 프로그램은 상기 리셋 신호가 리셋 단자에 인가된 후에 다른 메모리로부터 상기 내부 메모리로 전송되는 마이크로프로세서.
  8. 제 1 항에 있어서,
    상기 모드 설정 수단은 제어 신호를 수신하는 제어 단자를 포함하며,
    상기 제어 신호가 제 1 값을 나타낸 때는 상기 제 1 모드로 설정되고, 상기 제어 신호가 제 2 값을 나타낸 때는 상기 제 2 모드로 설정되는 마이크로프로세서.
  9. 제 1 항에 있어서,
    외부로 어드레스를 출력하는 어드레스 단자를 갖고,
    상기 모드 설정 수단에 의해 상기 제 2 모드로 설정된 경우, 상기 리셋 신호가 입력된 후, 적어도 상기 인터럽트 신호가 입력될 때까지는 상기 어드레스 단자는 하이 임피던스 상태로 되도록 구성되는 마이크로프로세서.
KR1019970016937A 1996-10-31 1997-04-28 마이크로프로세서및멀티프로세서시스템 KR100272937B1 (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP96-289984 1996-10-31
JP28998496 1996-10-31
JP02276297A JP4226085B2 (ja) 1996-10-31 1997-02-05 マイクロプロセッサ及びマルチプロセッサシステム
JP97-022762 1997-02-05

Publications (2)

Publication Number Publication Date
KR19980069757A KR19980069757A (ko) 1998-10-26
KR100272937B1 true KR100272937B1 (ko) 2000-11-15

Family

ID=26360026

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019970016937A KR100272937B1 (ko) 1996-10-31 1997-04-28 마이크로프로세서및멀티프로세서시스템

Country Status (5)

Country Link
US (1) US6401197B1 (ko)
JP (1) JP4226085B2 (ko)
KR (1) KR100272937B1 (ko)
CN (1) CN1117315C (ko)
DE (1) DE19729618C2 (ko)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000339177A (ja) * 1999-05-31 2000-12-08 Mitsubishi Electric Corp Eit処理機能を備えるマイクロプロセッサ及びeit処理方法
US6708231B1 (en) * 1999-08-12 2004-03-16 Mitsumi Electric Co., Ltd. Method and system for performing a peripheral firmware update
JP4144990B2 (ja) * 2000-01-14 2008-09-03 富士通株式会社 データ処理システム及び初期化方法
US6601122B1 (en) * 2000-04-17 2003-07-29 International Business Machines Corporation Exceptions and interrupts with dynamic priority and vector routing
US6789187B2 (en) * 2000-12-15 2004-09-07 Intel Corporation Processor reset and instruction fetches
JP2003196253A (ja) * 2001-12-27 2003-07-11 Denso Corp シングルチップマイクロコンピュータ
US6990537B2 (en) * 2002-08-03 2006-01-24 Ess Technology, Inc. System and method for controlling multi-component communications via a bus by causing components to enter and exit a high-impedance state
KR100453821B1 (ko) * 2002-10-09 2004-10-20 한국전자통신연구원 마이크로 컨트롤러를 위한 데이터 버스 시스템
KR100506366B1 (ko) * 2003-11-20 2005-08-10 현대모비스 주식회사 복합마이컴형 제품 및 슬레이브 리셋 방법
CN100336033C (zh) * 2005-02-25 2007-09-05 清华大学 单芯片多处理器结构模拟系统
JP4569368B2 (ja) * 2005-04-26 2010-10-27 日本電気株式会社 計算機システム、メモリ初期化方法、および計算機システムのプログラム
US7734903B2 (en) * 2005-12-08 2010-06-08 Electronics And Telecommunications Research Institute Multi-processor system and method for controlling reset and processor ID thereof
JP4605053B2 (ja) * 2006-03-06 2011-01-05 富士ゼロックス株式会社 データ処理装置
US20120059961A1 (en) * 2009-05-15 2012-03-08 Thomson Licensing A Corporation System and method for sharing memory
US10394730B2 (en) * 2014-11-14 2019-08-27 Cavium, Llc Distributed interrupt scheme in a multi-processor system
JP6838234B2 (ja) * 2017-03-24 2021-03-03 日立Astemo株式会社 車両制御装置
US11053110B2 (en) 2018-03-22 2021-07-06 Bedford Systems Llc Reconstitution of independent beverage flows
USD982382S1 (en) 2020-03-20 2023-04-04 Bedford Systems Llc Nozzle for a beverage machine
CN111478708B (zh) * 2020-03-31 2023-08-11 Oppo广东移动通信有限公司 电子设备、芯片、系统总线、译码模块、译码器及方法
CN113608602A (zh) * 2021-06-20 2021-11-05 山东云海国创云计算装备产业创新中心有限公司 一种片上系统的复位方法和装置

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4034349A (en) 1976-01-29 1977-07-05 Sperry Rand Corporation Apparatus for processing interrupts in microprocessing systems
JPS61180352A (ja) 1984-12-30 1986-08-13 Fujitsu Ltd プログラムダウンロ−ド方式
JPS62267853A (ja) 1986-05-15 1987-11-20 Pfu Ltd サブプロセツサの初期起動方式
JPS6375869A (ja) 1986-09-18 1988-04-06 Fujitsu Ltd プロセツサの初期起動方式
GB2263565B (en) * 1992-01-23 1995-08-30 Intel Corp Microprocessor with apparatus for parallel execution of instructions
US5448716A (en) 1992-10-30 1995-09-05 International Business Machines Corporation Apparatus and method for booting a multiple processor system having a global/local memory architecture
US5564060A (en) * 1994-05-31 1996-10-08 Advanced Micro Devices Interrupt handling mechanism to prevent spurious interrupts in a symmetrical multiprocessing system
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
US5724527A (en) * 1995-12-28 1998-03-03 Intel Corporation Fault-tolerant boot strap mechanism for a multiprocessor system

Also Published As

Publication number Publication date
JP4226085B2 (ja) 2009-02-18
JPH10187642A (ja) 1998-07-21
KR19980069757A (ko) 1998-10-26
DE19729618C2 (de) 2000-11-23
CN1181550A (zh) 1998-05-13
DE19729618A1 (de) 1998-05-07
CN1117315C (zh) 2003-08-06
US6401197B1 (en) 2002-06-04

Similar Documents

Publication Publication Date Title
KR100272937B1 (ko) 마이크로프로세서및멀티프로세서시스템
US7584345B2 (en) System for using FPGA technology with a microprocessor for reconfigurable, instruction level hardware acceleration
US5729675A (en) Apparatus for initializing a multiple processor computer system using a common ROM
US5430862A (en) Emulation of CISC instructions by RISC instructions using two pipelined stages for overlapped CISC decoding and RISC execution
US7406550B2 (en) Deterministic microcontroller with configurable input/output interface
US20030056071A1 (en) Adaptable boot loader
JPS6339931B2 (ko)
US7526579B2 (en) Configurable input/output interface for an application specific product
KR20000076310A (ko) 리스크 구조를 갖는 8 비트 마이크로콘트롤러
US4926318A (en) Micro processor capable of being connected with a coprocessor
KR100465388B1 (ko) Risc 구조의 8비트 마이크로 제어기
US20020112144A1 (en) Apparatus and method for code-enhanced performance in a digital signal processing unit
US6438683B1 (en) Technique using FIFO memory for booting a programmable microprocessor from a host computer
US5680632A (en) Method for providing an extensible register in the first and second data processing systems
WO1996008769A1 (en) Computer instruction prefetch system
JP2004086837A (ja) データ処理装置
US6012138A (en) Dynamically variable length CPU pipeline for efficiently executing two instruction sets
US5664156A (en) Microcontroller with a reconfigurable program status word
US20060168373A1 (en) Configurable application specific standard product with configurable I/O
JP2680828B2 (ja) ディジタル装置
US20020004877A1 (en) Method and system for updating user memory in emulator systems
WO2006081092A2 (en) Deterministic microcontroller with configurable input/output interface
JP2001109708A (ja) マイクロコンピュータ
JP3839068B2 (ja) 半導体集積回路装置
JP3323341B2 (ja) エミュレーション用プロセッサおよびそれを搭載したエミュレータ

Legal Events

Date Code Title Description
A201 Request for examination
AMND Amendment
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment
J201 Request for trial against refusal decision
B701 Decision to grant
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20090824

Year of fee payment: 10

LAPS Lapse due to unpaid annual fee