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

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

Info

Publication number
KR19980069757A
KR19980069757A KR1019970016937A KR19970016937A KR19980069757A KR 19980069757 A KR19980069757 A KR 19980069757A KR 1019970016937 A KR1019970016937 A KR 1019970016937A KR 19970016937 A KR19970016937 A KR 19970016937A KR 19980069757 A KR19980069757 A KR 19980069757A
Authority
KR
South Korea
Prior art keywords
reset
instruction
processing unit
processor
microprocessor
Prior art date
Application number
KR1019970016937A
Other languages
English (en)
Other versions
KR100272937B1 (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

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)를 통해 페치하지 않고 실행하지 않는다. 외부 인터럽트 신호 INT에 응답하여 CPU(11)는 내장 DRAM(15)에 기억된 외부 인터럽트 처리 프로그램을 내부 데이터 버스(20)를 통해 페치하고 이 프로그램에 포함되는 초기화 처리 프로그램을 실행함으로써 프로세서(10)가 초기화된다. 프로세서(10)는 리셋 신호 RST를 이용하지 않고 기존의 인터럽트 처리의 장치를 이용하여 초기화를 할 수 있다.

Description

마이크로프로세서 및 멀티프로세서 시스템
본 발명은 리셋 기능을 갖는 마이크로프로세서에 관한 것으로, 특히 멀티프로세서 시스템에서 사용되는 경우에 시스템 전체를 간단한 장치로 초기화시키기 위하여 필요한 구성을 가지는 마이크로프로세서에 관한 것이다.
또한, 본 발명은 간단한 장치로 시스템 전체의 초기화를 행하는 멀티프로세서 시스템에 관한 것이다.
마이크로프로세서는 예를 들면 사용자 프로그램을 실행 처리한다든지, 전원 투입과 동시에 외부로부터 리셋 신호가 인가됨으로써 프로세서 내부를 초기화하는 리셋 동작을 행한다. 이 리셋 동작에서는 마이크로프로세서 외부로부터 리셋 신호가 인가되면, 프로세서 내부의 기억 소자에 리셋 신호가 입력되어 그 기억 내용을 리셋하는 하드웨어적인 리셋 처리 및, 외부의 메모리로부터 리셋 처리용 프로그램을 페치하여 프로세서내에서 이 리셋 처리용 프로그램을 실행함으로써 사용자 프로그램을 처리가능한 상태로 하는 소프트웨어(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 발명에 따른마이크로프로세서는 명령 디코더의 디코드 결과에 따라 각종 처리를 행함으로써 명령을 실행하는 처리부 및, 이 처리부에서 제어되고 기억 영역을 지정하는 어드레스를 출력하며 그 기억 영역에 저장된 명령을 처리부의 명령 디코더에 제공하는 액세스 제어부를 구비하며, 외부로부터 입력되는 리셋 신호에 응답하여 프로세서 내부의 기억 소자가 리셋되고 인터럽트 신호가 처리부에 입력된 것에 응답하여 처리부는 인터럽트 처리 프로그램을 구성하는 명령이 처리부의 명령 디코더에 제공되도록 액세스 제어부를 제어하며, 처리부가 그 명령 디코더에 제공된 인터럽트 처리 프로그램에 포함되는 리셋 처리를 행하기 위한 명령을 실행함으로써 프로세서의 초기화가 이루어지게 된다.
또한 본 발명에 따른 마이크로프로세서는 제 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), 범용 입출력 포트(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 개의 범용 레지스터 및, 프로세서 상태어 레지스터(PSW), 스택 포인터, PC(43)의 백업용 레지스터 등에 사용되는 5 개의 제어 레지스터를 포함한다. 모두 32 비트의 데이터를 보유하는 레지스터이다.
ALU(42)는 그 한쪽에 데이터 버스(44a)를 통해 레지스터군(41)내의 선택된 레지스터의 내용 또는 제어부(30)으로부터 출력되는 데이터(예를 들면, 명령 오퍼랜드 지정부에 있는 그 당시의 데이터)를 입력하고, 다른 쪽에는 데이터 버스(44b)를 통해 레지스터군(41)내의 선택된 레지스터의 내용을 입력한다. 그리고 ALU(42)는 데이터 버스(44c)를 통해 그 산술 연산 결과를 레지스터군(41)의 선택된 레지스터 또는 PC(43)에 출력한다.
PC(43)는 보유하는 값을 순차적으로 카운트하여 명령 큐(12)에 제공해야 하는 명령의 저장선(先) 어드레스를 버스 콘트롤러(18)로 출력한다. 또한 분기선(先) 명령의 페치는 ALU(42)에서 계산된 어드레스 값 또는 명령 디코더(31)에서 디코드되어 있는 명령에 있는 그 당시의 어드레스를 설정하여 명령 큐(12)에 제공해야 하는 분기선 명령 어드레스 값을 버스 콘트롤러(18)에 출력한다.
실행부(40)는 제어부(30)로부터 제어 신호를 수신하여 명령 디코더(31)에서 디코드된 명령을 실행한다. 예를 들면, 산술 연산 명령에 대하여는 ALU(42)가 레지스터군(41)으로부터 입력되는 값을 연산하고, 연산 결과를 레지스터군(41)으로 전송한다. 또한 레지스터군(41)의 보유 데이터를 전송하는 전송 명령은 전송되는 데이터가 레지스터군(41)으로부터 ALU(42), 데이터 선택기(17)를 통해 내부 데이터 버스(20)로 출력되며, 또한 내장 DRAM(15) 또는 외부 기억 장치 등에 전송된다. 또한 분기 명령에 대하여는 상기와 같이 분기선(分岐先) 어드레스를 PC(43)에 세팅한다.
버스 콘트롤러(18)는 CPU(11)에서 생성된 레지스터 및 그 이외의 제어 신호를 수신하고, 그 수신한 어드레스가 지정하는 기억 영역을 액세스하도록 그 기억 영역에 있는 내장 DRAM(14), 캐시 메모리(13) 또는 외부 기억 장치에 대하여 어드레스를 출력한다. 외부 기억 장치로의 액세스는 버스 콘트롤러(18)가 외부 버스 IF부(13)를 제어함으로써 행해진다.
명령 큐(12)는 내부 데이터 버스(20)로부터 128 비트 단위로 명령을 구성하는 데이터를 입력하여 보유하고, 제어부(30)의 제어에 따라 실행되어야 하는 명령을 32 비트 단위로 명령 디코더(31)에 출력한다. 또한, 명령 디코더(31)에서 디코드되고 있는 명령이 분기 명령인 경우에는 명령 큐(12)에 보유되어 있는 명령을 삭제한다.
내장 DRAM(15)은 1M 바이트의 기억 용량을 가지며, 내부 데이터 버스(20)와 128 비트 단위로 데이터를 입출력한다. 내장 DRAM(15)은 버스 콘트롤러(18)로부터 출력되는 어드레스, 그 외의 제어 신호를 수신하고, 그 어드레스가 지정하는 영역에 대하여 명령 또는 데이터 판독 또는 기입이 이루어진다.
캐시 메모리(14)는 4K 바이트의 스태틱 랜덤 액세스 메모리로 장치되며, 내부 데이터 버스(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가 인가되면 내부 소자가 리셋된다. 즉, 리셋 신호 RST가 도시되지 않은 신호라인을 통해 CPU(11)를 포함하는 프로세서(10)내의 필요한 기억 소자에 입력되고 인가된 것에 응답하여 그 소자의 기억 내용을 모두 리셋한다. 이것을 하드웨어적인 리셋 처리라고 부른다.
특히, 제어부(31)가 리셋 신호 RST를 입력하고, 리셋 신호 RST가 해제된 것에 따라 제어부(30)는 외부의 ROM에 저장된 리셋 벡터 엔트리를 CPU(11)내로 페치하도록 실행부(40)을 제어한다. 이렇게 페치된 리셋 벡터 엔트리내의 표시하는 정보를 참조함으로써 리셋 처리 프로그램이 개시된다. 따라서 리셋 처리 프로그램이 실행됨으로써 프로세서(10) 전체의 리셋 처리가 이루어진다. 이것을 소프트웨어적인 리셋 처리라고 부른다. 이것에 대해서는 후술한다.
또한, 마이크로프로세서(10)는 외부로부터 인터럽트 신호 INT를 입력한다. 제어부(30)가 인터럽트 신호 INT를 수신함으로써 제어부(30)가 내장 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 레벨로 반전(negate)된 것에 응답하여 제어부(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 등의 외부 기억 장치로부터 내장 RAM(15)에 다운 로드(down load)되는 처리가 이루어진다.
마스터 모드에 있어서, 마이크로프로세서(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(15)에 대한 액세스인 것을 인식하고 내장 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 레벨에 응답하여 각 프로세서 내의 기억 소자가 모두 리셋된다.
리셋 신호 SRT가 인가된 후, 반전된 것에 응답하여, 마스터 프로세서 MP에는 외부 ROM(105)에 저장된 리셋 벡터 엔트리가 시스템 버스(100)를 통해 페치된다. 그리고 CPU(11)는 리셋 벡터 엔트리에 있는 분기 명령을 실행함으로써 리셋 처리 프로그램(50)의 선두 명령으로 분기하고 마스터 프로세서 MP는 리셋 처리 프로그램(50)의 복수의 명령을 순차 페치하여 실행한다. 한편, 슬레이브 프로세서 SP에서는 리셋 신호 SRT가 인가된 후 반전되어도 리셋 벡터 엔트리는 외부로부터 페치되지 않는다. 따라서 리셋 처리를 행하기 위한 명령으로 장치된 리셋 처리 프로그램(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)의 소정 영역에 전송하기 dnlgo 마스터 프로세서 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의 반전
슬레이브 프로세서 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)이 실행됨으로써 마스터 프로세서 MP의 초기화가 이루어진다. 슬레이브 프로세서 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(21la, 21lb), 내장 DRAM(212), 외부 버스 IF부(213), 인터럽트 콘트롤러(214), 또는 CPU(21la, 21lb)의 각각의 제어를 받고 내장 DRAM(212)과 외부 버스 IF부(213)를 제어하는 버스 콘트롤러(2l5)를 포함하며 이들이 단일 칩의 반도체 집적 회로로 장치되어 있다.
CPU(21la, 21lb)의 각각은 기본적으로는 도 1에 있는 CPU(11)와 동일하게 장치되며, 내부 데이터 버스(210)로부터 명령을 페치하고 디코드하는 명령 디코더를 포함하며 그 디코드 내용에 따른 제어 신호를 출력하는 제어부, 32 비트 단위로 데이터를 처리하고 이 제어 신호에 따라 디코드된 명령을 실행하며 내부 데이터 버스(210)에 대하여 데이터를 입출력하는 실행부를 갖는다. 그리고 CPU(21la, 21lb)의 제어부에는 각각 인터럽트 신호 INTa, INTb가 입력되며, 또한 리셋 신호 RST가 공통으로 입력된다. 또한 CPU(21la, 21lb) 각각은 도 1에 표시되는 명령 큐(12), 데이터 선택기(17)와 동일한 장치를 갖는 것을 포함하고 있다.
버스 콘트롤러(215)는 CPU(21la, 21lb) 각각에 의해 제어되고 제각기 생성된 어드레스 및 그 밖의 제어 신호를 수신하며 그 수신된 어드레스가 지정하는 기억영역을 액세스하도록 그 기억 영역인 내장 DRAM(214) 또는 외부의 기억 장치에 대하여 어드레스를 출력한다. 외부 기억 장치로의 액세스는 버스 콘트롤러(215)가 외부 버스 IF부(13)를 제어함으로써 행하여진다. 그리고 CPU(21la, 21lb)는 제각기 내부 데이터 버스(210)를 통해 버스 콘트롤러(215)로부터 출력된 어드레스가 지정하는 기억 영역으로부터 명령 또는 데이터를 페치한다.
내장 DRAM(212)은 내부 데이터 버스(210)와 128 비트 단위로 데이터를 입출력하고, 버스 콘트롤러(215)로부터 출력되는 어드레스, 그 밖의 제어 신호를 수신하며 그 어드레스의 지정하는 영역에 대하여 명령 또는 데이터의 판독 또는 기입이 이루어진다. CPU(2lla, 21lb)는 둘다 버스 콘트롤러(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(21la, 21lb)에 각각 인터럽트 신호 INTa, INTb를 인가한다. 특히 인터럽트 콘트롤러(214)는 외부 인터럽트 신호 EINT가 CPU(21la, 21lb) 중 어느 쪽에 대한 인터럽트인지를 판정하여 인터럽트 신호 INTa, INTb 중 어느 한쪽을 출력한다. CPU(21la, 21lb)는 각각 인터럽트 신호 INTa, INTb에 응답하여 인터럽트 처리 프로그램을 개시하여 실행하며 인터럽트 요인에 대한 인터럽트 처리를 한다. 또한 인터럽트 콘트롤러(214)는 CPU(21la)로부터 내부 데이터 버스(210)를 통해 데이터가 전송되고, 이 전송된 데이터에 기초하여 외부 인터럽트 신호 EINT에 상관없이 CPU(211b)에 대하여 인터럽트 신호 INTb를 출력하는 장치를 갖는다.
마이크로프로세서(200)는 외부로부터 리셋 신호 RST를 입력하여 CPU(21la, 21lb)내를 포함하는 프로세서(200)내의 각 기억 소자에 제공한다. 리셋 신호 RST가 인가되는 것에 응답하여 각 기억 소자의 기억내용을 리셋하는 하드웨어적인 리셋 처리를 한다. 또한 마이크로 프로세서(200)는 리셋 신호 RST가 반전되면 ROM(201)에 저장되어 있는 리셋 처리 프로그램이 개시하여 CPU(21la)에서 실행되 도록 장치되어 있다. 상세한 설명은 후술한다.
마이크로프로세서(200)는 CPU(21la), CPU(21lb) 중 하나가 마스터 프로세서, 다른 하나가 슬레이브 프로세서로서 동작하는 멀티프로세서를 장치한다. 본 실시예에서는 CPU(21la)를 마스터 프로세서, CPU(21lb)를 슬레이브 프로세서라고 하고 있다.
도 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(21la)가 참조하는 인터럽트 벡터 엔트리(241)의 기억 영역, H′00 0090 번지∼H′00 009F 번지에는 CPU(21lb)가 참조하는 인터럽트 벡터 엔트리(242)의 기억 영역이 각각 할당되고 있다. 외부 영역에 있어서 H′FF FFF0 번지∼H′FF FFFF 번지에는 리셋 벡터 엔트리(240)의 저장 영역이 할당되어 있다.
CPU(21la, 21lb) 각각으로부터 본 어드레스 공간은 도 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(21la, 21lb)를 포함하는 마이크로프로세서(200)내의 각 기억 소자는 그 L 레벨의 리셋 신호 RST를 입력하여 그 기억내용이 리셋된다(마이크로프로세서(200)가 하드웨어적인 리셋 처리).
다음으로, 단계 ST2 에 있어서 리셋 신호 RST가 H 레벨로 반전되는 것에 응답하여 CPU(21la)가 리셋 처리 프로그램(250)을 실행한다.
우선, 리셋 신호 RST가 반전됨으로써 CPU(21la)가 리셋 벡터 엔트리(240) 의 내용을 참조하도록 시스템 버스(202)를 통해 ROM(201)로부터 리셋 벡터 엔트리(240)가 프로세서(200)로 페치되고 내부 데이터 버스(210)를 통해 CPU(21la)내로 페치된다. CPU(21la)는 리셋 벡터 엔트리(240)에 포함되는 분기 명령(0)을 실행함으로써 ROM(201)에 저장된 리셋 처리 프로그램(250)의 실행으로 분기한다. 그리고 리셋 처리 프로그램(250)을 구성하는 복수의 명령이 H′FF 0000 번지의 선두 명령으로부터 순차 페치되어 CPU(21la)에 의해 실행된다. 리셋 처리 프로그램(250)의 실행을 종료함으로써 CPU2lla 내의 초기화가 완료된다.
한편, 리셋 신호 RST가 반전되더라도 CPU(21lb)는 리셋 벡터 엔트리(240)를 ROM(201)로부터 페치하지 않도록 장치되어 있다. 따라서 CPU(21lb)는 리셋 처리 프로그램(250)을 실행하지 않는다.
또, 단계 ST2에 있어서 CPU(21la)는 ROM(201)에 저장되어 있는 인터럽트 벡터 엔트리(241, 242) 및 인터럽트 처리 프로그램(251, 252)을 ROM(201)으로부터 페치하며 내장 DRAM(212)에 다운 로드하는 처리를 한다(단계 ST2a). 인터럽트 벡터 엔트리(241, 242) 및 인터럽트 처리 프로그램(251, 252)은 도 12의 어드레스 공간에서 지정된 대로 내장 DRAM(212)의 소정의 영역에 각각 저장된다.
또한, 단계 ST2는 리셋 처리 프로그램(250)의 실행에 있어서의 CPU(21la, 211b)의 초기화가 완료한 후에 행하여지는 최후의 처리로서, CPU(21la)가 인터럽트 콘트롤러(214)를 사용하여 CPU(21lb)에 인터럽트 신호 INTb를 발생시키는 처리를 한다(단계 ST2b).
단계 ST2b에서 CPU(21la)는 내부 데이터 버스(210)를 통해 인터럽트 콘트롤러(214)로 데이터를 전송한다. 인터럽트 콘트롤러(214)는 이 전송된 데이터에 기초하여 CPU(21lb)에 인터럽트 신호 INTb를 출력한다.
단계 ST3에서 CPU(21lb)는 이 인터럽트 신호 INTb가 인가된 것에 응답하여 인터럽트 처리 프로그램(252)을 실행한다.
CPU(21la)는 인터럽트 콘트롤러(2l4)에 데이터를 전송한 것을 마지막으로 내부 데이터 버스(210)의 버스점유권을 포기하고 CPU(21lb)로 내부 데이터 버스(210)의 버스점유권을 이전한다.
인터럽트 신호 INT가 인가되고, CPU(21lb)는 단계 ST2a의 처리로 이미 내장 DRAM(212)에 저장되어 있는 인터럽트 벡터 엔트리(242)를 내부 데이터 버스(210)를 통해 페치한다. CPU(21lb)는 인터럽트 처리 벡터 엔트리(242)를 참조하여 그 속에 포함되는 분기 명령(2)을 실행함으로써 동일한 단계 ST2a의 처리로 이미 내장 DRAM(212)에 저장되어 있는 인터럽트 처리 프로그램(252)의 실행으로 분기한다. 그리고 인터럽트 처리 프로그램(252)을 구성하는 복수의 명령이 H′00 2000 번지의 선두 명령으로부터 순차 페치되어 CPU(21lb)에 의해 실행된다.
이 인터럽트 처리 프로그램(252)에는 CPU(21lb)내의 리셋 처리를 하기 위한 명령이 포함되어 있다. 인터럽트 처리 프로그램(252)을 실행함으로써 CPU(21lb)는 인터럽트 처리 프로그램(252)내의 요인 해석 프로그램의 실행에 의해 입력된 인터럽트 신호 INTb가 리셋 처리라는 요인에 대하여 인가되었음을 해석하고, 그 결과 인터럽트 처리 프로그램(252)에 포함되는 리셋 처리를 하기 위한 명령을 실행한다. 이 인터럽트 처리 프로그램(252)의 실행이 종료함으로써 CPU(21lb)내의 초기화가 완료한다.
이 인터럽트 처리 프로그램에 있는 리셋 처리를 하기 위한 명령에는 CPU(21lb)로부터 내부 데이터 버스(210)를 통해 인터럽트 콘트롤러(214)로 데이터를 전송하는 명령이 포함되어 있다. 인터럽트 콘트롤러(214)는 이 전송된 데이터를 수신함으로써 인터럽트 신호 INTb를 반전한다.
또, CPU(21lb)에 입력되는 인터럽트 신호 INTb는 CPU(21la)의 리셋 처리 프로그램(250)의 실행에 의해 발생하는 경우에 한하지 않고 CPU(21la)의 초기화가 종료한 뒤에 외부로부터의 인터럽트 신호 INT에 응답하여 발생하더라도 좋다.
이 실시예2에 있어서의 마이크로 프로세서(200)에는 다음 특징이 있다.
내장 메모리(212)는 CPU(21la, 21lb)의 공유 메모리로서 128 비트의 내부 데이터 버스(210)를 통해 데이터의 교환이 행하여지기 때문에, 공유 메모리로의 액세스 효율이 현저히 향상된다.
이러한 마이크로프로세서(200)에 있어서 소프트웨어적인 리셋 처리를 하는 경우에 리셋 신호 RST가 입력되더라도 CPU(21la)만이 리셋 처리 프로그램을 실행하며 CPU(21la)내를 초기화하고 CPU(21lb)는 인터럽트 신호 INTb에 응답하여 리셋 처리를 하기 위한 명령을 포함하는 외부 인터럽트 처리 프로그램을 실행함으로써 CPU(21lb)내를 초기화하기 때문에 리셋 벡터 엔트리(240)는 CPU(21la)만을 참조하고 CPU(21la, 21lb)가 리셋 벡터 엔트리(240)를 저장하는 ROM(201)을 순차 액세스하기 위한 버스 조정 회로를 칩내에 마련할 필요는 없다.
특히, CPU(21lb)는 외부의 기억 장치로부터가 아니라 내장 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 (4)

  1. 명령을 디코드하는 명령 디코더를 포함하고, 이 명령 디코더로부터의 디코드 결과에 따라 각종 처리를 행함으로써 해당 명령을 실행하는 처리부 및,
    이 처리부로 제어되어 기억 영역을 지정하는 어드레스를 출력하고, 그 기억 영역에 저장된 명령을 상기 처리부의 명령 디코더에 제공하는 액세스 제어부를 포함하며,
    외부로부터 입력되는 리셋 신호에 응답하여 프로세스 내부의 기억 소자가 리셋되고,
    인터럽트 신호가 상기 처리부에 입력된 것에 응답하여, 상기 처리부는 인터럽트 처리 프로그램을 구성하는 명령이 상기 처리부의 명령 디코더에 제공되도록 상기 액세스 제어부를 제어하며,
    상기 처리부가 상기 명령 디코더에 제공된 인터럽트 처리 프로그램에 포함되는 리셋 처리를 행하라는 명령을 실행함으로써 프로세서의 초기화가 이루어지는
    마이크로프로세서.
  2. 명령을 디코드하는 명령 디코더를 포함하며, 이 명령 디코더로부터의 디코드 결과에 따라 각종 처리를 행함으로써 해당 명령을 실행하는 처리부와,
    이 처리부에서 제어되어 기억 영역을 지정하는 어드레스를 출력하고, 그 기억 영역에 저장된 명령을 상기 처리부의 명령 디코더에 제공하는 액세스 제어부 및,
    제 1 모드 및 제 2 모드 중 어느 하나로 설정되기 위한 모드 설정 수단을 구비하고,
    외부로부터 입력되는 리셋 신호에 응답하여 프로세서 내부의 기억 소자가 리셋되고,
    상기 모드 설정 수단에 의해 제 1 모드로 설정된 경우,
    상기 리셋 신호가 상기 처리부에 입력된 것에 응답하여 상기 처리부는 리셋 처리 프로그램을 구성하는 명령이 상기 처리부의 명령 디코더에 제공되도록 상기 액세스 제어부를 제어하고, 상기 처리부가 상기 명령 디코더에 제공된 리셋 처리 프로그램의 명령을 실행함으로써 프로세서의 초기화가 이루어지며,
    상기 모드 설정 수단에 의해 제 2 모드로 설정된 경우,
    인터럽트 신호가 상기 처리부에 입력된 것에 응답하여, 상기 처리부는 인터럽트 처리 프로그램을 구성하는 명령이 상기 명령 디코더에 제공되도록 상기 액세스 제어부를 제어하고, 상기 처리부가 상기 명령 디코더에 제공된 인터럽트 처리프로그램에 포함되는 리셋 처리를 행하기 위한 명령을 실행함으로써,
    프로세서의 초기화가 이루어지는
    마이크로프로세서.
  3. 제각기 명령을 디코드하는 명령 디코더를 포함하고, 이 명령 디코더로부터의 디코드 결과에 따라 각종 처리를 행함으로써 해당 명령을 실행하는 제 1 및 제 2 처리부와,
    상기 제 1 및 제 2 처리부에서 제어되어 기억 영역을 지정하는 어드레스를 출력하고, 그 기억 영역에 저장된 명령을 상기 제 1 및 제 2 처리부의 각 명령 디코더 중 어느 하나에 제공하는 액세스 제어부를 포함하며,
    외부로부터 입력되는 리셋 신호에 응답하여 상기 제 1 및 제 2 처리부를 포함하는 프로세서 내부 기억 소자가 리셋되고,
    상기 리셋 신호가 상기 제 1 처리부에 입력된 것에 응답하여, 상기 제 1 처리부는 리셋 처리 프로그램을 구성하는 명령이 상기 제 1 처리부의 명령 디코더에 제공되도록 상기 액세스 제어부를 제어하고, 상기 제 1 처리부가 그 명령 디코더에 제공된 리셋 처리 프로그램을 실행함으로써 상기 제 1 처리부내의 초기화가 이루어지며,
    상기 제 2 처리부에 인터럽트 신호가 입력된 것에 응답하여 상기 제 2 처리부는 인터럽트 처리 프로그램을 구성하는 명령이 상기 제 2 처리부의 명령 디코더에 제공되도록 상기 액세스 제어부를 제어하고, 상기 제 2 처리부가 그 명령 디코더에 제공된 인터럽트 처리 프로그램에 포함되는 리셋 처리를 행하기 위한 명령을 실행함으로써 상기 제 2 처리부내의 초기화가 이루어지는
    마이크로프로세서.
  4. 명령을 디코드하는 명령 디코더를 포함하고 이 명령 디코더로부터의 디코드 결과에 따라 각종 처리를 행함으로써 해당 명령을 실행하는 제 1 처리부와, 이 제 1 처리부에서 제어되고 기억 영역을 지정하는 어드레스를 출력하며 그 기억 영역에 저장된 명령을 상기 제 1 처리부의 명령 디코더에 제공하는 제 1 액세스 제어부를 가지는 제 1 마이크로프로세서 및,
    명령을 디코드하는 제 2 명령 디코더를 포함하고 이 명령 디코더로부터의 디코드 결과에 따라 각종 처리를 행함으로써 해당 명령을 실행하는 제 2 처리부와, 이 제 1 처리부에서 제어되어 기억 영역을 지정하는 어드레스를 출력하고, 그 기억 영역에 저장된 명령을 상기 제 2 처리부의 명령 디코더에 제공하는 제 2 액세스 제어부를 가지는 제 2 마이크로프로세서를 포함하며,
    상기 제 1 마이크로프로세서에 리셋 신호가 입력된 것에 응답하여 제 1 마이크로프로세서의 내부 기억 소자가 리셋됨과 동시에, 상기 제 1 처리부는 리셋 처리 프로그램을 구성하는 명령이 상기 제 1 처리부의 명령 디코더에 제공되도록 상기 제 1 액세스 제어부를 제어하고, 상기 제 1 처리부가 그 명령 디코더에 제공된 리셋 처리 프로그램의 명령을 실행함으로써 상기 제 1 마이크로프로세서의 초기화가 이루어지며,
    상기 제 2 마이크로프로세서에 상기 리셋 신호가 입력된 것에 응답하여 제 2 마이크로프로세서의 내부 기억 소자가 리셋되고, 상기 제 2 마이크로프로세서에 인터럽트 신호가 입력된 것에 응답하여 상기 제 2 처리부는 인터럽트 처리 프로그램을 구성하는 명령이 상기 제 2 처리부의 명령 디코더에 제공되도록 상기 제 2 액세스 제어부를 제어하고, 상기 제 2 처리부가 그 명령 디코더에 제공된 인터럽트 처리 프로그램에 포함되는 리셋 처리를 행하기 위한 명령을 실행함으로써 상기 제 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
JP97-022762 1997-02-05
JP02276297A JP4226085B2 (ja) 1996-10-31 1997-02-05 マイクロプロセッサ及びマルチプロセッサシステム

Publications (2)

Publication Number Publication Date
KR19980069757A true KR19980069757A (ko) 1998-10-26
KR100272937B1 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 富士ゼロックス株式会社 データ処理装置
WO2010132189A1 (en) * 2009-05-15 2010-11-18 Thomson Licensing 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株式会社 車両制御装置
AU2019239302A1 (en) 2018-03-22 2020-11-19 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
DE19729618C2 (de) 2000-11-23
JPH10187642A (ja) 1998-07-21
US6401197B1 (en) 2002-06-04
CN1181550A (zh) 1998-05-13
CN1117315C (zh) 2003-08-06
KR100272937B1 (ko) 2000-11-15
DE19729618A1 (de) 1998-05-07

Similar Documents

Publication Publication Date Title
KR100272937B1 (ko) 마이크로프로세서및멀티프로세서시스템
US4542453A (en) Program patching in microcomputer
US5430862A (en) Emulation of CISC instructions by RISC instructions using two pipelined stages for overlapped CISC decoding and RISC execution
EP0138419B1 (en) Central processing unit for a digital computer
US4839797A (en) Microprocessor compatible with any software represented by different types of instruction formats
US5717952A (en) DMA controller with mechanism for conditional action under control of status register, prespecified parameters, and condition field of channel command
US9032185B2 (en) Active memory command engine and method
US4853849A (en) Multi-tasking register set mapping system which changes a register set pointer block bit during access instruction
US4274138A (en) Stored program control system with switching between instruction word systems
JPH0221018B2 (ko)
US4926318A (en) Micro processor capable of being connected with a coprocessor
US6438683B1 (en) Technique using FIFO memory for booting a programmable microprocessor from a host computer
US5179671A (en) Apparatus for generating first and second selection signals for aligning words of an operand and bytes within these words respectively
GB2024475A (en) Memory access controller
US5696957A (en) Integrated circuit comprising a central processing unit for executing a plurality of programs
US5680632A (en) Method for providing an extensible register in the first and second data processing systems
WO1996008769A1 (en) Computer instruction prefetch system
GB2216306A (en) Load and synchronize computer architecture and process
US5127096A (en) Information processor operative both in direct mapping and in bank mapping, and the method of switching the mapping schemes
KR100385493B1 (ko) 재구성가능한프로그램상태워드를갖는마이크로콘트롤러
US5586336A (en) Microcomputer capable of monitoring internal resources from external
JPH031231A (ja) マイクロプログラム制御装置
JP2680828B2 (ja) ディジタル装置
US5793991A (en) Method of equalizing loads on a computer bus
US7237099B2 (en) Multiprocessor system having a plurality of control programs stored in a continuous range of addresses of a common memory and having identification registers each corresponding to a processor and containing data used in deriving a starting address of a CPU-linked interrupt handler program to be executed by the corresponding processor

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