KR0136594B1 - 단일칩 마이크로 컴퓨터 - Google Patents

단일칩 마이크로 컴퓨터

Info

Publication number
KR0136594B1
KR0136594B1 KR1019890013950A KR890013950A KR0136594B1 KR 0136594 B1 KR0136594 B1 KR 0136594B1 KR 1019890013950 A KR1019890013950 A KR 1019890013950A KR 890013950 A KR890013950 A KR 890013950A KR 0136594 B1 KR0136594 B1 KR 0136594B1
Authority
KR
South Korea
Prior art keywords
input
output
circuit
register
processor
Prior art date
Application number
KR1019890013950A
Other languages
English (en)
Other versions
KR900005282A (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 KR900005282A publication Critical patent/KR900005282A/ko
Application granted granted Critical
Publication of KR0136594B1 publication Critical patent/KR0136594B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3877Concurrent instruction execution, e.g. pipeline, look ahead using a slave processor, e.g. coprocessor
    • G06F9/3879Concurrent instruction execution, e.g. pipeline, look ahead using a slave processor, e.g. coprocessor for non-native instruction execution, e.g. executing a command; for Java instruction set
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2205Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested
    • G06F11/2236Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested to test CPU or processors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7807System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
    • G06F15/7814Specially adapted for real time processing, e.g. comprising hardware timers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7867Architectures of general purpose stored program computers comprising a single central processing unit with reconfigurable architecture
    • 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/22Microcontrol or microprogram arrangements
    • G06F9/24Loading of the microprogram
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units
    • G06F9/3893Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units controlled in tandem, e.g. multiplier-accumulator
    • G06F9/3895Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units controlled in tandem, e.g. multiplier-accumulator for complex operations, e.g. multidimensional or interleaved address generators, macros
    • G06F9/3897Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units controlled in tandem, e.g. multiplier-accumulator for complex operations, e.g. multidimensional or interleaved address generators, macros with adaptable data path

Abstract

내용없음

Description

단일칩 마이크로 컴퓨터
제1도는 발명의 실시예의 서브프로세서의 블럭도.
제2도는 본 발명의 실시예의 단일칩 마이크로 컴퓨터의 전체 구성도.
제3도는 서브프로세서 및 프로그램머블 I/O의 1체널당의 상세한 구성도.
제4도는 마이크로 EPROM에 의해 지정되는 명령을 도시한 도면.
제5도는 레지스터 구성을 도시한 도면.
제6a도∼제6도d는 타이머 방향기능을 실현할 때의 연산 회로의 접속을 도시한 도면.
제7도는 메모리액세스 회로의 상태천이도.
제8도는 어드레스 레지스터, 상태레지스터 주변의 구성도.
제9a도, 제9b도는 제8도의 구성에 의한 동작순서를 도시한 도면.
제10도는 제어PLA와 이벤트 구동제어회로의 구성을 도시한 도면.
제11a도, 제11b도는 제10도의 제어PLA의 프로그램을 도시한 도면.
제12도는 이벤트 구동제어회로의 동작타이밍을 도시한 도면.
제13도는 파이프라인제어를 행할 때의 어드레스 레지스터, 상태 레지스터 주변의 구성도.
제14a도는 제13도의 출력회로의 구성을 도시한 도면.
제14b도는 제13도의 회로의 동작순서를 도시한 도면.
제15도는 제13도의 회로에 의해 파이프 라인제어를 실행할 때의 순서를 도시한 도면.
제16도는 초기값 제어회로의 구성도.
제17도는 제16도의 제어PLA의 프로그램을 도시한 도면.
제18도는 프로그램머블I/O의 구성도.
제19a도, 제19b도는 불휘발성 스위치회로의 구성도.
제20도는 PLD의 구성도.
제21도는 단일칩 마이크로 컴퓨터의 테스트를 실행할 때의 구성도.
제22a도는 서브프로세서의 테스트를 실행할 때의 구성도.
제22b는 제22a도의 회로에 의한 테스트 순서를 도시한 도면.
* 도면의 주요부분에 대한 부호의 설명
1 : 마이크로 프로세서 2 : CPU
3 : RAM 4 : EPROM
6 : 서브프로세서 7 : PLD
8 : PI/OL 9 : 공통버스
10 : 프로세서 11 : 마이크로 EPROM
12 : 제어회로 13 : 연산회로
14 : 제어PLA 15 : 포트인터페이스 회로
16 : 프로세서 인터페이스 회로 19 : 채널간 인터페이스
21 : 어드레스 제어회로 22 : 연산제어회로
23 : 레지스터 제어회로 25 : 제1의 리드버스
26 : 연산기 32 : 제2의 리드버스
31 : 라이트버스 70 : 상태레지스터
71 : ALU 87 : AND 회로
89 : OR 회로 93 : 출력회로
101 : 우선순위 인코더 102 : 플립플롭
115 : 출력타이밍 회로 124 : 비교기
206 : 테스트포트
본 발명은 반도체 집적회로, 특히 단일칩 마이크로 컴퓨터(이하 마이컴이라 한다)에 관한 것으로, 시스템을 구축할 때의 부품수의 삭감효과가 크고, 또 응용시스템의 개발기간을 단축하는데 적합한 반도체 집적회로에 관한 것이다.
종래의 장치는 일본국 특허공개공보 소화 61-285567호에 기재된 바와 같이 마이컴과 PLA(Programmable Logic Array)를 1칩화해서 마이컴의 프로그램과는 관계없이 외부입력에 응답하여 PLA가 동작하고, PLA 출력에 의해 여러가지의 기능을 동작시켜 그 결과로서 마이컴을 기동하도록 되어 있다.
PLA는 불휘발성 반도체 메모리 소자로의 전기적인 라이트에 의해서 그 논리기능을 임의로 구성하는 것이 가능한 가변논리 구조를 갖는 논리회로 장치이다.
한편, 미국특허 제4, 609, 986호에는 EPROM 기술을 사용한 개량형의 PLA가 개시되어 있다.
또, CPU 등의 데이타 처리장치와 소프트웨어 저장용의 불휘발성 메모리 블럭을 동일칩내에 보유하는 반도체 집적회로 장치로서는 일본국 특허공개공보 소화 60-198667호가 알려져 있다.
한편, 전기적으로 라이트 가능한 논리장치로서는 얼터러사제품, 카탈로그 p.12 또는 일렉트로닉디자인, 1986년 8월 7일호, p.94∼97에서 거론되고 있다.
상기 일본국 특허공개공보 소화 61-285567호는 어떤 종류의 응용에서 부품수의 삭감효과가 있지만, 범용성에서는 그다지 배려가 되어 있지 않아 광범위한 응용을 커버할 수 있다는 문제점이 있었다. 또, 상기 미국특허 제4, 609, 986호는 PLA 자체를 개시하는 것에 불과하고, PLA, 즉 프로그램머블 논리회로와 마이컴을 단일칩화하여 단일칩 마이컴의 소프트웨어인 프로그램을 저장하기 위한 메모리 블럭을 불휘발성 메모리로 구성하고, 이 프로그램 저장용 불휘발성 메모리를 사용자 자신이 칩외부에서 라이트하는 것에 의해 사용자에게 바라는 단일칩 마이컴을 짧은 수납기간내에 제공하는 것을 개시하는데 불과하고, 단일칩 마이컴의 하드웨어를 실현하기 위한 논리장치를 사용자 자신이 자유롭게 구성하기 위한 연구에 대해서 배려가 되어 있지 않았다. 단일칩 마이컴의 소프트웨어(프로그램)는 사용자 자신에 의해 개발되고, 개발된 소프트웨어는 단일칩 마이컴의 메모리 블럭의 ROM(Read Olny Memory)에 라이트 된다. 따라서, 이 ROM을 불휘발성 메모리로 구성하고, 이 불휘발성 메모리를 칩외부에서 사용자 자신이 자유롭게 라이트하는 것에 의해 사용자는 희망하는 소프트웨어를 갖는 단일칩 마이컴을 단기간내에 입수할 수 있다.
한편, 단일칩 마이컴의 소프트웨어에 관해서도 각 사용자가 여러가지의 요구사항을 갖는 일이 많으므로, 통일된 소프트웨어로 사용자의 각종 요구사항을 동시에 만족시킬 수는 없다. 따라서, 종래에는 각 사용자 자신의 요구사항을 실현하기 위하여 단일칩 마이컴의 외부회로로써 랜덤논리회로 등을 부가하고 있으므로, 시스템 전체의 부품수가 많고, 내장면적이 크게 된다는 문제점이 있었다.
이 문제점을 해결하기 위한 단일칩 마이컴의 기본구성에 대해서는 일본국 특허출원소화 63-91563호(미국 출원번호 238, 534, 1988년 8월 31일 출원)에서 이미 개시한 바와 같다.
각 사용자가 독자적인 요구사항을 갖는 단일칩 마이컴의 하드웨어의 예로서는 키 입력인코더(키보드에서의 입력정보를 전환해서 단일칩 마이컴에 입력하기 위한 인코더), 표시디코더(단일칩 마이컴의 출력정보를 전환해서 표시장치를 구동하기 위한 디코더), 계시용 타이머, 직렬통신 회로 등 여러가지 것이 있다.
본 발명의 목적은 상기의 출원에서 개시된 단일칩 마이컴을 LSI화해서 실현화하거나, 고속화 또는 칩사이즈의 최소화를 실현하는 데 적합한 논리구성이나 회로구성을 제공하는 데 있다.
본 출원에서 개시된 발명중 대표적인 것에 의해 얻을 수 있는 효과를 간단히 설명하면 다음과 같다.
즉, 단일칩 마이컴 내부에 구성된 논리장치는 전기적으로 라이트 가능한 불휘발성 반도체 메모리 소자를 포함한 제어회로를 가지며, 또 연산회로 및 여러개의 어드레스 레지스터, 상태 레지스터 쌍을 갖는다.
이 논리장치를 구성하는 불휘발성 반도체 메모리는 칩 외부에서 사용자가 라이트 가능하다. 이 불휘발성 반도체 메모리에 라이트된 정보에 응답해서 제어회로는 상기 여러개의 어드레스 레지스터와 상태레지스터쌍 중에서 하나의 쌍을 임의로 선택할 수 있도록 구성된다.
상술한 수단에 의하면, 하나의 연산회로에 대해서 상기 어드레스 레지스터, 상태레지스터쌍을 선택적으로 접속할 수가 있다. 이와 같이 불휘발성 반도체 메모리에 라이트된 정보에 응답해서 논리장치의 논리기능을 임의로 구성할 수 있으므로, 이 임의로 구성된 논리기능에 의해 여러가지의 사용자의 요구사항을 만족시킬 수 있다.
또, 상기 어드레스 레지스터, 상태레지스터쌍의 수에 대응하는 수만큼의 기능을 독립적으로 정의하고, 그들의 어드레스 레지스터, 상태레지스터쌍의 선택을 시분할로 제어하는 것에 의해 1개의 연산회로에서도 여러개의 독립프로그램를 동작시킬 수가 있다.
이하 본 발명의 실시예를 도면에 따라 상세히 설명한다. 제2도는 본 발명의 실시예의 단일칩 마이크로 컴퓨터의 전체구성을 도시한 도면이다. 마이크로 컴퓨터(1)은 1개의 반도체 기관위에 CPU(Central ProceSSing Unit) (2), RAM (3), EPROM(Electrically Programmable Read Only Memory) (4)로 되는 메인프로세서(5), 서브프로세서(SP) (6), 전기적으로 라이트 가능한 프로그램머블 로직디바이스(PLD) (7), 프로그램머블 입출력 포트(PI/O) (8), (199)로 구성되고, 상기의 각각의 블럭은 공통버스(9)로 결합된다.
상기 각 요소중, EPROM (4)는 CPU (2)의 동작에 관한 정보를 저장하는 메모리로서 칩외부에서 전기적으로 라이트 가능하다.
또, 상기 서브프로세서(SP) (6), 프로그램머블 로직디바이스(PLD) (7), 프로그램머블 I/O 포트(PI/O) (8), (199)는 각각 그 내부에 칩외부에서 전기적으로 라이트 가능한 불휘발성 반도체 메모리를 갖는 논리장치이다.
이 논리장치는 상기 장치내의 불휘발성 반도체 메모리내에 라이트된 정보에 응답해서 장치내의 각 요소의 접속관계를 규정하여 바라는 논리회로 구성을 실현하기 위한 제어회로를 갖고 있다.
상기 서브프로세서(SP) (6)은 메인프로세서 (5)중의 CPU (2)에 대응하는 처리장치를 내부에 갖는다. 본 실시예에서 메인프로세서 (5)는 주로 일반연산용으로, 서브프로세서 (6)은 주로 입출력 제어등의 기능처리용으로 사용된다. 이것에 따라 메인프로세서 (5)와 서브프로세서 (6)은 각각 사용목적에 따른 다른 명령세트를 갖는다.
또, 마이크로 컴퓨터(1)에는 그 외부에 DRAM 등을 외부 메모리로서 접속하는 것도 가능하다. 이 경우에는 제2도 중의 공통버스(9)에 접속된 외부메모리 입출력회로(도시하지 않음)를 거쳐서 접속한다. 이 외부메모리의 어드레스 공간을 RAM(3), EPROM(4)의 어드레스 공간과 공통으로 하면, 메인프로세서는 물론 서브프로세서(6)도 이 외부메모리를 용이하게 엑세스 할 수 있게 된다.
이하, 제1도를 참조해서 서브프로세서(6) 및 프로그램머블 I/O (8)에 대해서 그 구성과 동작을 설명한다. 본 출원에서 개시되는 발명의 주된 부분은 이 부분에 있다.
먼저, 서브프로세서 및 프로그램머블 I/O의 구성에 대해서 설명한다.
제1도는 제2도에서의 서브프로세서 (6)과 프로그램머블 입출력포트(프로그램머블 I/O) (8)의 구성을 도시한 도면이다. 서브프로세서 (6)은 동일한 구성을 갖는 2개의 서브프로세서채널(채널 A(10a) 및 채널 B(10b))를 갖는다. 각각의 서브프로세서 채널은 마이크로 명령을 저장하기 위한 마이크로 ROM(Read Only Memory) (11), 마이크로 ROM (11)의 정보에 따라서 제어정보를 발생하기 위한 제어회로(12), 제어회로 (12)에 의해 제어되는 연산회로(13), 상기의 마이크로 ROM(11), 제어회로 (12), 연산회로(13)을 제어하는 제어 PLA(Programmable Logic Array) (14), 연산회로 (13)과 제어 PLA(14)로 결합된 포트인터페이스 회로(15)로 구성된다. 또, 서브프로세서 (6)은 메인프로세서 (5)와 통신하기 위한 프로세서 인터페이스 회로(16)을 가지며, 이 인터페이스 회로(16)은 서브프로세서 채널 A(10a) 및 서브프로세서채널 B(10b)의 양쪽에 결합되어 있다. 프로그램머블 I/O(8)은 상기 서브프로세서 채널에 대응한 2개의 채널을 가지며, 각 채널은 서브프로세서 (6)의 포트인터페이스 회로(15)에 결합된 입출력회로 I/O(18)과 인터럽트 상태플래그 ISF(56)으로 구성된다.
또, 프로그램머블 I/O (8)은 채널간 인터페이스 회로(19)를 가지며, 이 인터페이스 회로(19)는 I/OA (18a), ISFA (56a)와 I/OB (18b), ISFB (56b)의 양쪽에 결합되어 있다.
제3도는 서브프로세서 및 프로그램머블 I/O의 1채널 당의 상세한 구성을 도시한 도면이다. 제1도에서 도시한 마이크로 ROM은 EPROM으로 구성되어 있으며, 이하 마이크로 EPROM(11)이라 한다. 마이크로 EPROM(11)의 출력은 제어회로 (12)의 입력으로 된다. 이 마이크로 EPROM은 8개의 필드에서 1마이크로 명령어(1워드)를 구성한다. 8개의 필드라 함은 (1) 명령 지정필드, (2) 데이타 길이 지정필드, (3) 레지스터 선택필드, (4) 수치데이타 필드, (5) 다음의 어드레스 제어필드, (6) 포트지정필드, (7) 출력비교 지정필드, (8) 입력캐처 지정필드이다. 이 마이크로 명령어에 대해서는 다음에 상세히 기술한다. 또 마이크로 EPROM (11)의 입력은 어드레스 레지스터 회로(20)에서 부여한다. 이 어드레스 레지스터 회로(20)은 제어회로 (12)내의 어드레스 제어회로(21)로 제어된다. 이 어드레스 제어회로 (21)은 연산기 (26)에서의 상태출력이나 입출력회로 (18)에서의 정보에 따라서 마이크로 EPROM (11)의 어드레스를 생성하는 회로이며, 이 출력은 상기 어드레스 레지스터 회로(20)에 접속된다. 어드레스 레지스터 회로(20)은 여러개의 어드레스 정보를 저장할 수 있고, 그 여러개의 어드레스의 어느 것을 선택할 것인가는 제어 PLA(14)에 의해 제어된다. 제어회로(12) 내의 연산제어회로(22)는 마이크로 EPROM (11)에 저장되어 있는 정보에 응답하여 연산회로 (13) 내의 연산기(26)내의 각 요소의 접속관계를 제어한다. 또, 레지스터 제어회로 (23)은 마찬가지로 마이크로 EPROM(11) 내의 정보에 응답하여 연산회로 (13)내의 레지스터 회로(42)내의 각 레지스터의 접속관계를 제어한다.
다음에 제어회로 (12)에 의해서 그 동작이 제어되는 연산회로 (13)의 구성에 대해서 상세히 설명한다.
연산회로 (13)은 연산기 (26), 캐리 플래그(CF) 및 제로플래그(ZF) 중의 적어도 한쪽, 통상은 그 양쪽을 포함하는 상태 레지스터 SR 및 레지스터 회로(42)로 구성된다.
연산기(26)은 마이크로 EPROM의 명령지정필드에 기술된 명령을 실행하는 것으로, 산술논리 연산기 ALU (71), 비교기 CMP 등으로 구성된다.
이 ALU(71)과 비교기 CMP는 동시에 동작할 수 있다. ALU (71) 및 비교기 CMP의 입력은 제1의 리드버스(25)와 제2의 리드버스(32)에 접속되고, ALU (71)의 출력은 라이트 버스 입력셀렉터 (34)로 입력된다. CMP의 출력은 라이트 버스출력 제어회로 (35)와 제로 플래그 FORM 입력 셀렉터 (36)에 접속된다. 라이트 버스 입력셀렉터 (34)의 다른 입력으로서 제로발생회로 (37)이 접속된다. 제로발생회로 (37)은 다음에 설명하는 INCCLR (Incremenr and Clear) 명령으로 사용되는 회로이며, CMP의 출력이 1일 때에 라이트 버스 (31)로 데이타로서 0을 출력한다. 즉, 카운터 레지스터로서 지정된 레지스터를 클리어 하기 위해서 사용된다.
ALU (71)은 제로플래그 입력셀렉터(36) 및 캐리입력셀렉터(38)을 거쳐서 상태레지스터 SR과 접속된다. 또, ALU로의 캐리입력(39)는 상기의 상태레지스터 SR에 포함되는 캐리 플래그 이외에 마이크로 EPROM (11)의 명령 지정필드중에 있는 캐리입력 지정필드로의 지정에 의해 강제적으로 0 또는 1을 입력할 수 있다. 또, 상기 필드의 지정에 따라서 포트에서의 입력신호를 전달하는 포트데이타선(69)를 ALU의 캐리입력(39)로 할 수도 있다.
레지스터 회로(42)는 R0∼R19, RIMM, RFRT의 각 레지스터와 출력비교기능용의 전용비교기 C01, C23, C45, C67로 구성된다. 레지스터 R0∼R19는 제1의 리드버스(25), 제2의 리드버스(32) 및 라이트 버스(31)에 공통으로 접속된다. RIMM과 RFRT는 리드전용 레지스터 이며, 리드버스에만 접속되어 있다. 비교기 C01, C23, C45, C67의 한쪽의 입력은 각각 레지스터 R0, R2, R4, R6에 접속되고, 다른쪽의 입력은 제2의 리드버스(32)에 공통으로 접속된다. 상기의 각 비교기의 출력선(44a)∼(44d)는 포트인터페이스회로(15)에 입력된다. 이 포트인터페이스 회로(15)는 마이크로 EPROM의 출력비교 지정필드의 비트에 따라 발생되는 출력제어선(43)에 의해 제어된다. 또, 레지스터 R9∼R11은 입력캐처 기능을 갖는 것이며, 레지스터 R9∼R11의 라이트 버스(31)에서의 입력은 포트인터페이스 회로(15)에서의 입력캐처 입력제어선(45)에 의해 제어된다. 레지스터 R0∼R19는 제2도에 도시한 메인프로세서(5)에서 직접 액세스 할 수 있도록 하기 위해서 메인프로세서(5)와의 인터페이스용의 리드, 라이트 버스(46)이 마련되어 R0∼R19에 공통으로 접속된다. 레지스터 R0∼R19를 메인 CPU (2)의 어드레스 공간내에 배치하는 것으로 메인 CPU (2)에서도 자유롭게 액세스 할 수 있다. 이 경우 메인 CPU (2)와 서브프로세서 (6)에서 동시에 동일한 레지스터를 리드할 수 있다. 동시에, 동일한 레지스터에 라이트가 발생한 경우 메인 CPU (2)에서의 라이트는 우선으로 되고, 서브프로세서 (6)에서의 라이트는 무효로 된다. 메인 CPU (2)와의 데이타의 주고받음은 프로세서 인터페이스 회로(16)을 거쳐서 실행한다.
다음에, 마이크로 명령과 서브프로세서 및 프로그램머블 I/O의 동작에 대해서 상세히 설명한다. 여기서는 마이크로 명령어를 구성하는 8개의 각각의 필드에 대해서 기술하고 이 기술에 응답한 프로세서 및 프로그램머블 I/O의 동작을 순차적으로 설명한다.
먼저, 명령지정필드는 산술논리 연산기 ALU(71)을 중심으로 하는 연산기(26)의 연산기능의 지정 및 상태레지스터(SR)의 동작을 지정하는 필드이다. 명령의 종류로서는 ① 일반명령, ② 타이머 명령 및 ③ 메모리 액세스 명령이 있다. 제4도에 명령세트의 일람표를 나타낸다.
① 일반명령
전송 : MOVE
산술연산 : ADD/Ci, SUB/Ci
논리연산 : AND, OR, EOR
시프트 : LSL/Ci, LSR/Ci
비연산 : NOP
여기서, Ci는 연산기로의 캐리입력이며, 다음과 같이 지정할 수 있다.
Ci = 0
Ci = 1
Ci = CF(SR의 캐리플래그)
Ci = Pi(다음의 포트지정필드에서 지정한 입력포트의 데이타)
② 타이머 명령
INCCLR : 레지스터 회로 (42)내의 제1의 레지스터와 제2의 레지스터의 내용을 비교기 CMP에서 비교하여 양쪽 내용이 같게 되면, 상태레지스터(SR) (70)의 제로플래그(ZF)에 1을 저장함과 동시에 제1의 레지스터를 클리어한다. 같지 않게 되면 제로플래그(ZF)에 0을 저장함과 동시에 제1의 레지스터의 데이타는 ALU(71)에 의해 증가된다.
INCCMP(Increment and Compare) : 제1의 레지스터와 제2의 레지스터의 값을 비교기 CMP에서 비교하여 양쪽내용이 같게 되면 1, 같지 않게 되면 0을 (ZF)에 저장한다. 또, 어느쪽의 경우나 제1의 레지스터의 데이타를 ALU(71)에 의해 증가된다.
DECLD(Derement and Load) : 제1의 레지스터의 데이타를 ALU(71)에서 감소하여 그 결과가 제로이면 (즉 (ZF)=0이면), 제2의 레지스터의 데이타를 제1의 레지스터로 전송한다.
③ 메모리 액세스 명령
WRSET(Write Set) : 소스레지스터 또는 수치데이타를 데이타 버퍼로 전송한다.
WRSTART(Write Start) : 소스레지터 또는 수치데이타를 어드레스 버퍼로 전송하여 라이트 사이클을 개시한다.
RDSTART(Read Start) : 소스레지스터 또는 수치데이타를 어드레스 버퍼로 송하고, 리드사이클을 개시한다.
RDGET(Read Get) : 데이타 버퍼의 내용을 수신지 레지스터로 전송한다.
REF(RefraSh) : 소스레지스터 또는 수치데이타를 어드레스 버퍼로 전송하고 재생 사이클을 개시한다.
또한, 제4도에서 데이타 길이의 B/W는 각 명령으로 취급할 수 있는 데이타 길이를 나타낸다. 데이타 길이는 다음의 데이타 길이지정필드로 지정한다.
둘째로, 데이타 길이지정필드는 연산기 (26)에서 처리하는 데이타 길이 및 레지스터 회로 (42)내의 각 레지스터를 8비트(바이트 : B), 또는 16비트(워드 ; W)의 어느 하나로 지정하는 필드이다.
셋째로, 레지스터 선택필드는 연산기의 연산에 관여하는 2개의 레지스터(소스레지스터 : RS 및 수신지 레지스터 : Rd)를 레지스터 회로 (42)내의 각 레지스터에서 동시에 지정하는 필드이다. 지정하는 레지스터를 바이트 단위로 하는가 워드단위로 하는가는 상기 데이타 길이지정필드의 지정에 따른다. 레지스터로서 수치레지스터(RIMM)을 지정할 수가 있고, 이 경우 다음의 수치데이타 필드에 기술된 수치데이타가 연산에 관여한다. 수치레지스터가 수신지 레지스터로써 지정된 경우는 연산결과가 상태레지스터에만 반영되고, 결과데이타가 버려진다.
제5도는 레지스터 회로 (42)에 내장되는 레지스터의 구성을 도시한 도면이다. 제5도에서 R0∼R19는 범용레지스터로서 16비트 × 20개, 또는 8비트 ×40개의 레지스터로서 사용할 수 있다. RIMM (*5)는 마이크로 EPROM에 기술된 수치데이타를 반영하는 레지스터이며, 리드전용 레지스터이다. RFRT (*6)은 클릭을 입력으로 하는 16비트의 프리러닝 타이머의 값을 반영하는 레지스터 이미, 리드전용 레지스터이다. R0/R1, R2/R3, R4/R5, R6/R7은 각각 쌍으로 출력비교기능이 부가된 레지스터로써도 사용할 수 있다. 다음의 출력비교지정필드에 출력비교지정이 있는 경우에 자동적으로 쌍으로 확보된다.
상기의 쌍중 R0/R1, R2/R3은 16비트 전용이고, R4/R5, R6/R7은 16비트와 8비트 양쪽으로 사용할 수 있다. 16비트로 사용하는가 8비트로 사용하는 가는 상기의 데이타 지정필드에서 지정된다. R0∼R11은 입력캐처 레지스터로서도 사용할 수 있다.
입력캐처 레지스터로서 사용하는가 않는가는 다음의 입력캐처 지정필드에서 지정한다.
넷째로, 수치데이타 필드는 상기의 레지스터 선택필드에서 수치레지스터(RIMM)이 지정된 경우의 수치데이타를 기술하는 필드이다.
다섯째로, 다음의 어드레스 제어필드는 실행중의 마이크로 명령의 다음의 마이크로 명령으로서 어떤 번지를 선택하는가를 기술하는 필드이다. 이 필드에는 분기조건과 조건의 성립 및 불성립에 의해서 분기선을 변경하기 때문에 다른 2개의 어드레스(어드레스 0, 어드레스 1)을 기술할 수 있다. 분기조건으로서는 상태레지스터 SR에 포함되는 캐리플래그 CF, 제로플래그 ZF, 실행중의 명령에 의한 연산결과에서 발생하는 캐리 C, 제로 Z 및 다음의 포트 지정필드에서 지정하는 입력포트의 데이타 Di 중 어느 하나를 지정할 수 있다. 지정한 조건이 성립했을 때는 다음의 어드레스로서 어드레스 0이 선택되고, 성립되지 않았을 때는 어드레스 (1)이 선택된다.
여섯째로, 포트지정필드는 프로그램머를 I/O(8)내의 여러개의 비트중에서 어떤 비트를 선택하는가와 이 선택된 I/O 비트를 어떻게 동작시키는가를 지정하는 필드이다. 이 필드에 저장된 정보의 해독 또는 상기 선택 및 동작 지정의 제어는 포트인터페이스 회로에서 행하여진다. 이하 이 이정된 I/O비트를 간단히 포트라 한다.
이 필드에서는 동시에 3개의 포트를 지정할 수 있다.
이 포트지정필드에서 지정되는 3개의 비트, 즉 지정된 포트를 p0, p1및 Pck라 한다.
①p0에는 다음의 3개의 동작을 지정할 수 있다.
입력이나 출력으로서 지정하지 않는다.
입력으로 지정 : 지정한 포트를 입력포트로서 사용한다.
출력으로 지정 : 지정한 포트를 출력포트로써 사용한다.
이 경우는 출력조건으로서 어느 것을 사용하는가 및 그 출력 조건의 성립, 불성립의 경우의 각 동작을 지정할 수 있다.
표 1은 상기 출력조건으로서 사용하는 조건의 종류와 그 내용을 표시한 것이다. 표 2는 표 1의 조건의 성립, 불성립에 의해 스루, 0출력, 1출력, 반전의 각 동작이 어떻게 부여되는가를 나타내는 것이다.
Figure kpo00002
Figure kpo00003
② p에는 다음의 2개의 동작을 지정할 수 있다.
출력 없음
출력 있음 : 이 경우는 먼저 p의 경우와 마찬가지 출력조건(표 3)과 그때의 동작(표 4)를 지정할 수 있다. p의 경우와 비교해서 출력조건으로서 p0의 상태를 지정할 수 있다는 점이 다르다.
Figure kpo00004
Figure kpo00005
③ Pck에는 다음의 2개의 동작을 저장할 수 있다.
스킵제어 없음
스킵제어 있음
스킵제어라 함은 실행중의 명령을 무효로 하는 제어이다. 스킵지정이 있을 때 지정된 포트로의 입력이 1이면, 실행중의 명령을 계속하지만, 지정된 포트로의 입력이 0이면 실행중의 명령을 무효로 한다. 명령이 무효로 되었을 때 레지스터, 상태레지스터, 출력포트의 상태는 변하지 않는다.
일곱째로, 출력비교 지정필드는 연산회로 (13)을 출력비교동작 시키기 위한 지정을 하는 필드이다. 이 필드에서 출력비교지정이 이루어지면 상기 레지스터 선택필드에서 설명한 바와 같이 레지스터 회로 (42)내의 레지스터 R0∼R7이 2개씩 쌍으로 확보되어 출력비교방향의 연산회로가 구성된다.
제6a도는 출력비교 방향에 접속된 연산회로 (13)의 구성을 도시한 도면이다. 동일 도면중, (24)는 출력비교 방향에 레지스터와 비교기의 접속이 제어되었을 때의 레지스터 회로(42)를 도시한 도면이다.
제6a도의 (24)에서 R0, R2, R4, R6은 베이스 레지스터, R1, R3, R5, R7은 비교레지스터, C01, C23, C45, C67은 비교기이다. 여기서 예로서 1조의 출력비교의 구성과 동작을 설명한다. R6과 R7은 게이트회로(240)을 거쳐서 접속된다. 또, 비교기(241)의 한쪽의 입력은 비교레지스터 R7, 다른쪽의 입력은 제1의 리드버스(25)에 접속된다. 비교기(241)의 출력(243)은 출력플립플롭(244)의 세트단자 S에 접속된다. 플립플롭(244)의 출력은 출력비교 출력단자(245)에 접속된다.
게이트 회로(240)은 연산기(26)의 제로신호선(27)로 제어되고, 제로신호선(27)이 1로 되면 베이스 레지스터R6의 데이타가 비교레지스터R7로 전송된다. 또, 출력플립플롭(244)의 클리어단자 C는 명령실행전의 제로플래그 정보를 표시하는 제로플래그선 Zn-1에 접속되고, Zn-1이 1인 상태에서 명령을 실행하면 상기 플립플롭(244)가 클리어 된다. 연산기(26)의 기능은 마이크로 EPROM의 명령필드에 기술된 명령에 따른다. 제6b도∼제6d에 타이머 명령을 실행하는 경우의 연산기(26)과 레지스터 회로(42)의 구성을 도시한다. 타이머 명령에 대해서는 먼저, (1) 명령 지정필드의 항에서도 제4도의 일람표를 사용하여 언급했지만, 여기서 제6b도∼제6d도를 사용하여 연산기(26)과 레지스터 회로(42)내에 어떤 회로구성이 실현되는가를 도시한다.
제6b도는 제4도에 도시한 INCCLR 명령을 실행한 경우의 구성을 도시한 도면이다. 제1의 리드버스(25)에 접속된 ALU(71)은 증폭기(INC)로 된다. 또, 연산기(26)내의 비교기 CMP의 입력은 제1의 리드버스(25)와 제2의 리드버스(32)에 접속된다. 이 때, 레지스터 지정필드에서 지정되는 2개의 레지스터는 카운터 레지스터 Rct(29)와 정수레지스터 Roc(28)로서 지정된다.
마찬가지로 제6c도는 INCCMP 명령, 제6d도는 DECLD 명령이지만 설명의 생략한다.
여덟번째로, 입력캐처지정필드는 연산회로 (13)을 입력캐처 동작시키기 위한 지정을 하는 필드이다. 이 필드에서 입력캐처 지정이 이루어지면, 상기 레지스터 선택필드에서 설명한 바와 같이 레지스터 회로 (42)내의 레지스터R8∼R11은 입력캐처 레지스터로서 확보되어 입력캐처 방향의 연산회로 구성이 실현된다.
제6a도는 입력캐처 방향에 접속된 연산회로(13)의 구성을 도시한 도면이다. 동일도면중 (30)은 입력캐처 방향에 레지스터의 접속이 제어될 때의 레지스터 회로 (42)를 도시한 도면이다. 입력캐처 레지스터는 최대 4개까지 지정할 수 있다. 이 명령이 실행되면, 입력캐처 입력단자(300)이 1일 때, 레지스터로의 라이트 타이밍에서 입력게이트(301)이 열려 라이트 버스(31)의 내용을 입력캐처 레지스터R8∼R11로 출력한다.
다음에 메인프로세서와 서브프로세서의 인터페이스에 대해서 설명한다.
메인프로세서(5)의 CPU(2)와 서브프로세서 (6)사이의 데이타의 주고받음은 서브프로세서(6)내에 탑재된 프로세서 인터페이스 회로(16)을 거쳐서 실행된다. 제3도에 도시한 바와 같이, 프로세서 인터페이스 회로(16)은 인터럽트 인에이블 플래그(IEF) (47), 제1의 메모리 데이타 버스(MDBL) (48), 제1의 메모리 어드레스 버퍼(MABL) (49), 데이타 버퍼(DBF) (50), 어드레스 버퍼(ABF) (51)의 각 레지스터로 구성되고, 마이크로 EPROM에서의 제어선(17)로 제어된다. 제2도에 도시한 메인프로세서(5)와의 인터페이스 모드로서는 (1)종속모드, (2)마스터모드 및 (3) 인터럽트 요구의 3개의 모드가 있으며, 다음에 상세한 설명한다.
(1) 종속모드
이 모드는 메인프로세서 (5)가 마스터로 되어 동작하는 모드로서, 제3도의 프로세서 인터페이스 회로(16)에 접속되어 있는 어드레스 버스 (AB)와 데이타 버스(DB)를 거쳐서 메인프로세서와 서브프로세서 사이의 데이타 전송을 실행하는 것이다. 더 구체적으로는 CPU(2)에서 밥생되는 리드/라이트 신호(RDL/WRL) 및 어드레스 버스(AB)의 신호에 따라서 CPU(2)와 서브프로세서(6)내의 레지스터R0∼R19 사이에서 데이타 전송을 실행한다.
레지스터R0∼R19의 데이타의 리드는 메인프로세서(5)의 CPU(2)에서 어드레스 버스에 리드하는 레지스터에 대응하는 어드레스를 출력하여 리드신호(RDL)을 어서트한다. 이것에 의해 어드레스, 즉 레지스터의 선택정보가 어드레스 버터(ABF) (51)에 입력됨과 동시에 레지스터 선택신호선(52)를 거쳐서 레지스터 제어회로 (23)에 리드해야 할 레지스터 번호가 전달된다. 선택된 레지스터의 데이타는 인터페이스용의 리드/라이트 버스(46)을 경유해서 인터페이스회로(16)의 데이타 버퍼(50)에 전달되어 데이타 베이스(DB)를 경유해서 메인프로세서(5)로 출력된다.
레지스터 R0∼R19로의 데이타의 라이트는 CPU(2)에서 데이타 버스(DB)에 라이트 데이타를 출력함과 동시에 어드레스 버스(AB)로 레지스터 번호에 대응하는 어드레스를 출력하여 라이트 신호(WRL)을 어서트한다. 이것에 의해 라이트 데이타를 데이타 버퍼(DBF) (50)에, 또 레지스터 선택정보는 어드레스 버퍼(ABF) (51)에 각각 입력되고, 서브프로세서 채널(10)의 동작에 동기해서 선택된 레지스터에 상기 데이타 버퍼(50)에서 데이타가 전송된다.
(2) 마스터 모드
이 모드는 서브프로세서(6)이 버스마스터로 되어 동작하는 모드이며, 메인프로세서(5)의 CPU(2)에 대응해서 서브프로세서(6)에서 버스권 요구를 출력하여 서브프 세서 (6)이 공통버스(9)를 지배한 상태에서 메인프로세서(5)에서 갖고 있는 RAM(3)으로의 데이타의 리드/라이트, EPROM(4)의 데이타의 리드, 프로그램머블 I/O (8)로의 데이타의 입출력을 실행한다.
CPU (2)에 대한 버스권 요구는 프로세서 인터페이스 회로(16)에서 버스권 요구신호 BRQ가 출력되고, 이 신호 BRQDP 응답해서 CPU(2)에서 아크놀리지 신호 BAK가 출력되어 버스의 사용권은 서브프로세서 (6)의 지배하에서 사용할 수 있게 된다.
서브프로세서에서의 버스권 요구신호 BRQ는 제4도에서 설명한 메모리 액세스 명령중의 WRSTART 명령, RDSTART 명령, REF 명령의 실행에 의해 발생된다. 이하 이 모드에서의 데이타 액세스에 대해서 제3도 및 제7도에 도시한 메모리 액세스 제어회로의 상태천이도를 사용해서 상세히 설명한다.
아이들상태(S0)에서는 제4도에 도시한 메모리 액세스 명령중 WRSET 명령, RDSTART 명령, REF 명령만 접수되어 다른 상태로 천이할 수 있다. WRSET 명령이 실행되면 지정된 레지스터 Rd의 데이타 또는 수치데이타가 제1의 리드버스(25), ALU (71), 라이트 버스(31)을 거쳐서 서브프로세서(6), 제2의 메모리 데이타 버퍼(MDB2) (53)으로 전송되고, 또 메모리 액세스 버스(55)를 거쳐서 프로세서 인터페이스 회로(16)의 제1의 메모리 데이타 버퍼(MDB1) (48)로 전송되어 명령대기 1(SL)으로 천이한다.
상태(SL)에서는 WRSTART 명령과 REF 명령만을 접수한다. 이 상태에서 WRSTART 명령이 실행되면, 메모리 어드레스가 저장되어 있는 레지스터 Ra의 데이타 또는 수치 데이타가 제1의 리드버스(25), ALU(71), 라이트 버스(31)을 거쳐서 제2의 메모리 어드레스 버퍼(MAB2) (54)로 전송되고, 그 데이타는 또 메모리 액세스 버스(55)를 거쳐서 제1의 메모리 어드레스 버퍼 (MABL) (49)로 전송된다. 이 때 프로세서 인터페이스 회로(16)에서 버스권 요구신호 BRQ를 출력하고, 라이트 대기(S2)로 천이한다.
이 상태에서 메인 CPU에서의 응답신호인 버스 아크놀리지 신호 BAK를 기다린다. 아크놀리지 신호 BAK가 어서트 되어 라이트(S3)로 천이한다.
라이트(S3)에서는 제1의 메모리 데이타 버퍼(MDB1) (48)의 내용을 데이타 버스(DB)로, 또 제1의 메모리 어드레스 버퍼(MAB1) (49)의 내용을 어드레스 버스(AB)로 출력함과 동시에 라이트 신호(WR2)를 출력하고, 라이트가 종료한 후에 아이들(S0)으로 되돌아 간다.
아이들(S0)에서 RDSTART 명령이 실행되면, 리드해야 그리하여 메모리 어드레스가 저장되어 있는 레지스터의 데이타가 제2의 메모리 어드레스 버퍼(54)를 경유해서 제1의 메모리 어드레스 버퍼(49)로 전송됨과 동시에 버스권 요구신호 BRQ가 출력되고, 리드대기(S4)로 천이한다.
이 상태에서 아크놀리지신호 BAK가 있으면, 어드레스 버스(AB)로 제1의 메모리 어드레스 버퍼(49)의 내용을 출력함과 동시에 리드신호(RD2)를 출력하고, 데이타 버스를 거쳐서 제1의 메모리 데이타 버퍼(48)에 데이타를 리드하고 (S5), 명령대기 2(S6)으로 천이한다.
명령대기 2(S6)에서는 RDGET 명령, WRSTART 명령, REF 명령이 접수된다. RDGET 명령은 제1의 메모리 데이타 버퍼(48)에서 지정된 레지스터로 데이타를 전송하는 명령이다. WRSTART 명령은 상술한 바와 같이 제1의 메모리 데이타 버퍼(53)에서 메인프로세서내 또는 칩외부의 메모리중 지정된 메모리 번지에 데이타를 라이트 하는 명령이다. 따라서 RDSTART 명령과 RDGET 명령을 계속해서 실행하면, 메모리의 내용이 서브프로세서(6)의 레지스터에 입력된다. 또, RDSTART 명령과 WRSTART 명령을 계속해서 실행하면, 메모리에서 메모리로 직접 데이타가 전송된다.
REF 명령의 실행은 아이들상태(S0), 명령대기 1(S1), 명령대기 2 (S6)에서만 가능하며, 각각 버스권 요구신호 BRQ를 출력하고, 재생대기 0∼2 (S8∼S10)으로 천이한다.
재생대기 상태에서 아크놀리지 신호 BAK가 어서트 되면, 다이나믹 RAM의 재생에 필요한 신호를 반도체 집적회로의 외부로 출력하고, 재생대기 0∼2 (S8∼S10)으로 천이하기 전의 상태로 되돌아 간다. 그러나 , 재생대기 0(S9)의 상태에서 WRSET 명령이 실행되면, 재생대기 1(S8)로 천이하고, 재생종료후, 명령대기 1(S1)로 천이한다.
또, 재생대기 2(S10)의 상태에서 RDGET 명령이 실행되면, 재생대기 0(S9)로 천이하고, 재생종료후 아이들(S0)으로 되돌아간다.
이상 설명한 메모리액세스 명령은 명령의 실행이 성공하여 다음의 상태로 천이될 때에 제3도에 도시한 상태 레지스터 SR(70)내의 제로플래그 ZF가 세트 (1)되고, 천이할 수 있게 되었을 때에 클리어(0)된다. 따라서, 명령실행후의 제로플래그 ZF를 확인하고, ZF = 1로 될 때까지 같은 명령을 반복해서 실행하는 프로그램을 작성하는 것으로 확실한 메모리액세스를 실행할 수 있다.
(3) 인터럽트 요구
서브프로세서 (6)에서 메인프로세서 (5)로 인터럽트 요구를 발생하는 모드이다. 제3도에 도시한 인터럽트 상태플래그(ISF) (56)은 8비트의 플래그로 구성되고, 서브프로세서(6)의 명령으로 세트 또는 클리어할 수 있다. 즉, 마이크로 명령의 포트지정필드에서 지정하여 입출력포트와 마찬가지로 취급하여 조작할 수 있다. 인터럽트 상태플래그 (56)의 출력은 메인프로세서 인터페이스 회로(16)내에 마련된 인터럽트 인에이블 플래그(IEF) (47)에 배선(57)로 접속되어 있다. 이 인터럽트 인에이플래그(IEF) (47)의 각 비트는 인터럽트 상태플래그(56)의 각 비트에 대응하고 있다. 인터럽트 상태플래그(ISF) (56)의 비트가 세트되고, 또한 인터럽트 인에이블 플래그(IEF) (47)이 세트되어 있는 경우에 CPU(2)에 대해서 인터럽트 요구 IRQ를 발생한다. 인터럽트 인에이블 플래그(47)은 데이타 버스(DB)에 접속되어 있으며, 메인프로세서 (5)에서 라이트와 리드를 행할 수 있다.
다음에, 서브프로세서간 및 포트서브 프로세서간 인터페이스에 대해서 설명한다.
이상, 메인프로세서(5)와 서브프로세서(6)의 인터페이스에 대해서 설명했지만, 제1도에서 설명한 바와 같이 본 서브프로세서 (6)은 같은 구성을 갖는 서브프로세서 채널 A(10a)와 서브프로세서 채널 B(10b)로 구성되어 있다. 이 서브프로세서 채널사이의 통신을 실행하기 위해 채널간 인터페이스 회로(19)를 갖고 있다. 채널간 인터페이스 회로 (19)는 8비트의 세마포 플래그(S)로 구성되고, 서브프로세서 채널 A(10a)와 서브프로세서 채널 B(10b)의 양쪽에 접속되어 있다. 따라서, 이 세마포 플래그(S)는 각 채널에서 공통으로 액세스 할 수 있다. 세마포 플래그의 선택 및 조작은 마이크로 명령의 포트지정필드에서 지정된다. 세마포 플래그(S)는 라이트 조작에 의해 세트, 클리어를 할 수 있음과 동시에 리드클리어를 갖는 플래그이다.
제3도의 포트인터페이스 회로(15)는 서브프로세서 채널 (10)과 입출력회로(I/O) (18), 인터럽트 상태플래그 (ISF) (56), 및 세마포 플래그(S)를 포함하는 채널간 인터페이스 회로(19)의 사이의 인터페이스 회로이다. 입출력회로 (18)에는 16비트의 입출력포트가 포함되어 있고, 단자(67)을 거쳐서 반도체 집적회로 외부와 통신할 수 있다. 상기 입출력회로(18), 인터럽트 상태플래그(56), 세마포 플래그(19)는 모두 1비트 단위의 포트로서 처리되어 상술한 바와 같이 마이크로 EPROM(11)의 포트지정필드에서의 지정에 의해 입출력포트(p), 출력포트(p), 입력포트(Pck)로서 동시에 3개의 포트를 선택해서 리드나 라이트를 실행할 수 있다.
포트인터페이스 회로(15)는 상태레지스터 출력선(68)에 의해 상태레지스터(SR) (70)과 접속되어 있으며, 상태레지스터(70)과 접속되어 있으며, 상태레지스터(70)에 포함되는 캐리플래그 (CF), 재로플래그 (ZF)의 정보가 입력된다. 또, 포트데이타선(69)는 캐리입력셀렉터(38)을 거쳐서 산술논리 연산기(ALU) (71)과 어드레스 제어회로 (21)에 입력된다. 어드레스 제어회로 (21)에서는 포트데이타선(69)의 신호를 분기조건의 하나로서 사용한다. 포트인터페이스 회로(15)와 상기 각 포트사이는 p신호선(59), p신호선(58), Pck(60), p선택선(62), p선택선(61), Pck선택선(63)으로 결합된다. p선택선(62)로 선택된 포트에는 입출력을 지정할 수 있어 p신호선(59)를 거쳐서 포트로의 데이타 출력과 포트에서의 데이타 입력을 행할 수 있다. p선택선(61)에 의해 선택된 포트에는 출력만 지정할 수 있고, p신호선(58)을 거쳐서 포트로 데이타를 출력한다. Pck선택선(63)에서 선택된 포트에는 입력만 지정할 수 있어 Pck선택(60)을 거쳐서 포트에서의 데이타를 입력한다. 이 Pck신호는 명령의 스킵제어에 사용된다. 이상으로 설명한 p0선택선(62), p1선택선(61), Pck선택(63)으로 지정되는 포트기능외에 출력비교 기능과 입력캐처 기능이 있지만, 이것에 대해서는 상술한 바와 같다.
다음에 어드레스 레지스터와 상태레지스터에 대해서 설명한다.
본 실시예에서 도시한 서브프로세서 채널(10)의 어드레스 레지스터 회로(20)은 동일구성의 8개의 어드레스 레지스터를 포함하고 있다. 각각의 어드레스 레지스터에는 마이크로 EPROM(11)의 어드레스 정보가 저장된다. 또, 상태레지스터 회로(SR) (70)도 동일구성의 8개의 상태레지스터를 포함하고 있다.
제8도에 어드레스 레지스터 회로(20)과 상태레지스터 회로 (SR) (70) 및 그 주변회로의 구성의 제1의 예를 도시한다. 어드레스 레지스터 회로(20)은 어드레스 레지스터AR0∼AR7, 각각의 출력선(72)중 1개를 선택하기 위한 어드레스 레지스터 출력셀렉터(73)과 어드레스 제어회로 (21)의 출력선(74)에 접속된 어드레스 레지스터 입력멀티 플렉서(75)와 그 출력을 어드레스 레지스터AR0∼AR7로 전송하기 위한 어드레스 레지스터 입력선(76)으로 구성된다. 또, 상태레지스터 회로(70)은 상태레지스터SR0∼SR7, 각각의 출력선(77)중의 1개를 선택하기 위한 상태레지스터 출력셀렉터(78), 연산기(26)에서 출력되는 상태신호선(79)를 입력으로 하는 상태레지스터 입력멀티 플렉서(80)과 그 출력을 상태레지스터SR0∼SR7의 어느 한쪽에 전달하기 위한 상태레지스터 입력선(81)로 구성된다.
상기 어드레스 레지스터 출력셀렉터(73), 어드레스 레지스터 입력멀티 플렉서(75), 상태레지스터 출력셀렉터(78), 상태레지스터 입력멀티 플렉서(80)의 제어신호는 제어 PLA(14)에서 생성되고, 어드레스 레지스터 출력제어선(82), 어드레스 레지스터 입력제어선(83), 상태레지스터 출력제어선(84), 상태레지스터 입력제어선(85)를 거쳐서 각각의 제어를 실행한다. 8개씩 있는 어드레스 레지스터 AR, 상태레지스터 SR 중 어드레스 레지스터 ARi 및 상태레지스터 SRi가 선택된 경우의 일련의 동작은 다음과 같다.
① 제어 PLA(14)에서 어드레스 레지스터 출력제어선 (82)에 ARi의 선택정보를 출력하고, ARi의 내용을 어드레스로서 마이크로 EPROM(11)의 데이타를 리드하여 그 데이타를 어드레스 제어회로(21), 연산제어회로(22), 레지스터 제어회로 (23)으로 전송한다.
② 어드레스 제어회로(21), 연산제어 회로(22), 레지스터 제어회로(23)은 각각 마이크로 EPROM의 데이타중 어드레스 제어, 연산제어, 레지스터 제어에 관련되는 데이타를 디코드한다. 이것에 의해 연산기(26)의 연산제어에 필요한 제어신호의 생성 및 레지스터를 선택한다.
③ 소스레지스터의 리드, 제어 PLA(14)에서 상태레지스터 출력제어선(84)에 SRi의 선택정보를 출력하여 SRi에 포함되는 캐리플래그, and/or제로플래그를 사용하여 연산을 실행한다.
④ 제어 PLA(14)에서 상태레지스터 입력제어선(85), 어드레스 레지스터 입력제어선(83)에 각각 SRi, ARi의 선택신호를 출력하고, 연산결과의 수신지 레지스터로의 라이트 연산결과로 발생한 새로운 상태레지스터의 SRi로의 입력 및 다음의 어드레스 ARi로의 입력을 행한다. 이상으로 일련의 동작을 종료한다.
상술한 ①∼④의 일련의 동작에서의 어드레스 레지스터 ARi와 상태레지스터 SRi의 선택은 제어 PLA(14)로 행하여진다. 따라서, 어드레스 레지스터와 상태레지스터의 쌍을 변경하여 순차로 실행하도록 제어PLA를 구성하는 것으로, 최대 8개까지의 독립한 마이크로 EPROM의 프로그램을 실현시킬 수 있다. 제어 PLA(14)는 리세트 신호선(94)와 이벤트 구동제어회로 (99)에 접속된 이벤트 제어선(100)으로 제어되지만, 이들에 대해서는 다음에 설명한다.
제어PLA(14)에 의한 제1의 제어예로서 어드레스 레지스터와 상태레지스터의 쌍 및 이 쌍의 순번을 다음과 같이 규정한 경우를 고려한다.
Figure kpo00006
이 예의 경우는 상기 ①∼④의 일련의 동작을 실행하는 시간, 즉 마이크로 명령실행 시간의 8배의 시간으로 1사이클을 실행하고, 재차 동일어드레스 레지스터와 상태레지스터의 쌍으로 되돌아간다.
다음에, 제9a도에 제어 PLA(14)에 의한 제2의 제어예를 도시한다. 이 예에서는 상기①∼④의 일련의 동작을 상태 Si로 해서 나타내고 있으며, S0∼S15의 상태로 1사이클을 구성한다. 각 상태에서는 도면에 도시한 어드레스 레지스터와 상태레지스터쌍이 각각 선택적으로 실행된다. 도면중에서 F0∼F7은 각각 AR0·SR0∼AR7·SR7을 사용해서 실행되는 기능을 나타낸다. 각 기능은 제4도에 도시한 명령의 조합, 즉 프로그램에 따라 실현된다. 제9a도의 예의 경우, 기능 F0은 사이클 시간 tcy 중에서 4회실행된다. 즉, 사이클 시간 tcy 중에서 4마이크로 명령이 실행된다. 기능 F1, F2는 사이클 시간 tcy 중에서 각 1회 실행되고, 또 기능 F3, F4, F5, F6, F7은 각 2회 실행된다. 따라서, 각 기능의 실행사이클은 다음과 같이 된다.
F0 : tcy/4
F1, F2 : tcy
F3∼F7 : tcy/2
이상 제어 PLA 의 제2의 제어예를 나타냈지만, 제어 PLA의 데이타를 변경하는 것에 의해 임의의 조합을 실현할 수가 있고, 지속기능, 종속기능, 고속기능 등을 혼합해서 실현하는 것도 가능하다. 또, 제어 PLA를 전기적으로 라이트 가능한 EPROM 소자를 사용해서 구성하는 것으로 마이크로 EPROM과 마찬가지로 사용자 필드에서 자유롭게 재구성할 수가 있다.
제9b도에 제어 PLA에 의한 제3의 제어예를 나타낸다. 이 예는 1사이클을 S0∼S4의 5개의 상태로 구성하고, S4상태에 이벤트 구동기능을 할당한 예이다. 이벤트 구동이라함은 제8도에 도시한 단자(67) 중의 3단자(Ie0, Ie1, Ie2)를 우선도를 부여해서 이벤트 입력단자로써 사용하는 것이며, 입출력 회로(18), 이벤트 구동입력선(66), 포트인터페이스 회로(15)내의 이벤트 구동제어회로(99) 및 이벤트 제어선(100)을 거쳐서 제어 PLA를 제어하는 기능이다. 이것에 의해 입력단자 Ie0, Ie1, Ie2의 입력에 대응한 기능, 즉 어드레스 레지스트와 상태레지스터의 쌍을 선택한다. 제9b도의 예에서는 이벤트 구동기능으로써 F4(AR4, SR4), F5(AR5, SR5), F6(AR6, SR6), F7(AR7, SR7)을 할당하고 있다. 입력단자 Ie0, Ie1, Ie2에서의 입력에 대해서 우선도를 Ie0 Ie1 Ie2 (Ie0에서의 입력이 가장 우선도가 높다)로 규정하면, 표5와 같이 기능 (F4∼F7)을 선택할 수 있다.
Figure kpo00007
이표에서 ×는 돈케어, 즉 입력을 무시하는 것을 의미한다.
제10도에 제8도의 제어 PLA(14) 및 이벤트 구동제어회로(99)의 구성예를 도시한다. 이 제어 PLA(14)는 논리어레이 구조(AND 회로, OR 회로)를 포함해서 구성된다. 보다 구체적으로는 제어 PLA(14)는 AND(논리곱) 회로(87)과 그 출력선 (88), OR(논리합) 회로(89)와 그 출력에 피드백 래치입력선(98)을 거쳐서 접속된 피드백 래치(LF) (90),피드백 래치(90)에서 피드백선 (95)를 거쳐서 접속된 입력래치(LI) (92), OR 회로(89)에 접속된 출력회로 (93)으로 구성된다. PLA(14)의 AND회로(87) 및 OR 회로(89)는 전기적으로 라이트 가능한 불휘발성 반도체 메모리 소자로 구성되고, 그 내용은 마이크로 컴퓨터 칩외부에서 라이트할 수가 있다. 출력회로 (93)의 출력은 제8도에서 설명한 어드레스 레지스터 출력제어선(82), 어드레스 레지스터 입력제어선 (83), 상태레지스터 출력제어선(84), 상태레지스터 입력제어선(85)이다. 입력래치(92)에는 초기화 신호를 공급하기 위한 리세트 신호선(94)와 이벤트 구동제어회로 (99)에 포함되는 우선순위 인코더(101)에서의 이벤트 제어선(100)이 입력된다. 이벤트 구동제어회로 (99)는 상기의 우선순위 인코더(101)과 입출력회로 (18)에 접속된 이벤트 래치(102a)∼(102c)로 구성된다. 이벤트 래치(102a)∼(102c)의 각각의 세트단자 S는 이벤트 구동입력선(66)에 의해 입출력회로 (18)에 접속된다. 이벤트 래치(102a)∼(102c)의 각 클리어 단자 C는 서브프로세서(6)의 명령으로 클리어된다.
본 실시예에서 피드백선(95)는 6개로 구성되어 있으며, 최대(64=2 )상태까지 프로그램할 수 있다. 또, OR 회로(89)에서의 제어출력선(96)은 4개이며, 출력회로 (93)에 대해서 실행하고자 하는 기능에 관여하는 어드레스 레지스터 AR0∼AR7과 상태레지스터 SR0∼SR7의 쌍선택 정보를 전달한다. 이 정보에 따라 출력회로(93)에서는 일련의 제어에 필요한 타이밍 제어를 실행한다.
제11a,b도는 제9a,b도에서 설명한 PLA 제어에 각각 대응하는 PLA 데이타를 나타낸다. 제11a,b도에 있어서 Ev는 이벤트 입력의 내용, FB는 피드백선(95)를 거쳐서 AND 회로(87)에 입력되는 상태정보, 다음의 상태는 OR 회로(89)에서 피드백 래치입력선(98)로 출력되는 다음의 상태정보, 제어는 제어PLA(14)에 의해서 제어된 결과 실행되는 기능을 나타낸다.
제9a,b도의 예에 대해서 제10도, 제11도를 사용해서 제어 PLA(14)의 동작을 설명한다. 제9a도의 예는 이벤트 기능을 정의하지 않은 예이며, 따라서 제11a도에 도시한 바와 같이 모든 상태(S0∼S15)에서 이벤트 입력 Ev에 대해서 돈케어(×표)이다. 입력래치 (92)의 출력으로써 Sj(j=0∼63)의 정보가 가질 때, 즉 AND 회로(87)에서 실행되는 상태가 Sj일 때, 피드백 래치 입력선(98)에는 다음의 상태정보 Sj+1이 출력된다. 또, 제어출력 래치입력선(96)에는 상태Sj로 실행되는 기능에 관여하는 ARi, SRi 쌍(Fi)의 선택신호가 출력된다.
제9a도에서는 리세트 신호(94)가 입력되고 하는 동안, AND 회로(87)에는 S0이 입력되고, 리세트를 해제하면, 이 상태 S에서 개시한다. 즉, OR 회로(89)에서 다음상태로써 S이 입력선(98)로 출력되어 피드백 래치(90)으로 래치된다. 제어출력으로써 F0이 출력된다. F0에 관한 일련의 처리가 종료하면, 피드백 래치(90)에서 입력래치(92)로 다음의 상태정보S이 전송되고, AND 회로(87)의 입력정보로 된다. 이상의 동작을 반복해서 AND 회로로의 입력정보가 S일 때에 다음의 상태정보로써 S0을 정의해 두면, 제9a도에 도시한 루프로 반복동작한다.
제9b도의 예는 상태S에 이벤트 기능을 할당한 예이며, S상태의 실행후의 S상태에서는 이벤트 입력 Ev의 상태에 의해 Ev=Ev3일 때 F4, Ev=Ev2일 때 F5, Ev=Ev1일 때 F6, Ev=Ev0일 때 F7을 각각 선택하여 실행한다. 즉, S상태는 Ev·S4, Ev2·S, Ev1·S, Ev0·S(·은 논리곱을 나타낸다)의 4개의 상태로써 기술된다. 상기의 4상태의 다음 상태로써 S을 기술해 두면, 이벤트 기능을 실행후 S0 상태로 되돌아가서 로프동작을 반복한다.
제12도에 이벤트 입력 Ie2→Ie1 (우선도 Ie2Ie1)의 순으로 입력을 갖는 예의 경우의 타이밍도를 도시한다. 이벤트 입력이 입력되기 전의 상태에서는 이벤트 기능으로써 할당된 기능 F4∼F7 중의 F4가 실행되고, F0→F1가→F2→F3→F4로 루프를 구성한다(도면중①). 이벤트 입력 Ie2가 도면중(a)의 타이밍에서 1로 변화하면, 실행중의 F4의 기능을 중단하고 F5의 실행으로 이행하여 F0→F1→F2→F3→F5로 루프를 구성한다(도면중②). F5 기능의 실행이 종료하기 전에 Ie1이 도면중(b)의 타이밍에서 1로 변화하면, F5의 실행도 중단하고 F6의 실행으로 이행한다. Ie1보다 우선도가 높은 입력이 없는 경우는 F6 기능의 처리가 종료할 때까지, 즉 F6 기능을 구성하는 프로그램자체로 이벤트래치 1을 클리어 할 때까지 F0→F1→F2→F3→F6의 루프로 처리를 계속한다(도면중③). F6 프로그램으로 도면중(C)의 타이밍에서 이벤트 래치 1이 클리어되면, 중단하고 있던 F5의 처리를 재개하고 (도면중④), F5의 프로그램으로 이벤트 래치(2)를 클리어해서 종료한다(도면중(d)). 이벤트 래치 (2)가 클리어 되면, F4의 실행으로 되돌아 간다.
제12도에 도시한 예에서는 우선도가 낮은 순으로 이벤트 입력이 발생한 경우에 대해서 설명했지만, 우선도가 낮은 입력이 뒤에서 입력된 경우는 우선도가 높은 기능의 처리가 종료한 후에 우선도가 낮은 기능의 처리로 들어간다.
다음에 파이프라인 제어에 대해서 설명한다.
제8도에서 설명한 선택된 어드레스 레지스터 ARi와 상태레지스터 SRi에 의한 일련의 동작, 즉 ① 마이크로 EPROM 리드, ② 디코드, ③ 소스레지스터 리드와 연산, ④ 수신지 레지스터로의 라이트는 ①∼④의 각각의 기능을 실행하는 회로사이에 래치를 삽입하는 것에 의해 파이프 라인제어를 실행할 수 있다. 이하, 파이프 라인제어에 의한 고속다기능 제어에 대해서 설명한다.
제13도에 제8도를 베이스로한 파이프 라인제어가 가능한 제2의 제어회로의 구성예를 도시한다. 제8도와의 구성상의 차이는 다음과 같다.
(1). 마이크로 EPROM(11)과 연산기 (26)사이의 연산 제어회로(22), 마이크로 EPROM(11)과 레지스터 회로(42) 사이의 레지스터 제어회로(23)을 각각 디코더(22a)와 제어회로(22b), 디코더(23a)와 제어회로(23b)로 분할하고, 제13도에 도시한 위치에 래치(103), (104), (105), (106)을 마련하였다.
(2). 연산기(26)과 라이트 버스(31)사이에 래치(107)을, 또 연산기 (26)과 상태신호선(79)사이에 래치(108)을 마련하였다.
(3). 어드레스 제어회로(21)은 제1의 지연버퍼(109), 제2의 지연버퍼(110), 제3의 지연버퍼(111)과 상태신호선(79) 및 포트데이타선(69)로 제어되는 분기제어회로(112)와 다음의 어드레스 선택회로(113)으로 구성된다. 어드레스 제어회로(21)의 출력선(74)는 어드레스 레지스터 회로(20)으로 입력된다. 이상의 구성에 의해 다음과 같이 일련의 동작을 실행한다.
T0 사이클
제어PLA (14)에서 어드레스 레지스터 출력제어선(82)에 어드레스 레지스터 ARi의 선택정보를 출력하고, ARi의 내용을 어드레스로써 마이크로 EPROM(11)의 데이타를 리드한다. 그 데이타를 래치(103), (105) 및 제1의 지연버퍼 (109)로 출력한다.
T1 사이클
래치(103), (105)의 내용을 디코더(22a), (23a)로 디코드하여 래치 (104), (106)으로 출력함과 동시에 제1의 지연버퍼(109)에서 제2의 지연버퍼(110)으로 데이타를 전송한다.
T2 사이클
래치(104), (106)의 내용에 따라 제어회로(22b), (23b)에서 제어신호를 발생하고, 소스레지스터의 리드와 제어PLA(14)에서 상태레지스터 출력제어선(84)로의 상태레지스터 SRi의 선택정보를 출력한다. 이것에 의해 SRi에 포함된 캐리플래그 CF, 제로플래그 ZF를 이용해서 연산기 (26)으로 연산하고, 그 결과를 래치 (107), (108)로 출력한다. 또, 제2의 지연버퍼(110)에서 제3의 지연버퍼(111)로 데이타를 전송한다. 또, 래치(106)의 데이타가 래치(114)로 전송된다.
T3 사이클
래치(107)의 내용을 라이트 버스(31)을 거쳐서 래치(114)의 데이타에
따라서 선택된 수신지 레지스터에 라이트함과 동시에 제어 PLA(14)에서 상태레지스터 입력제어선(85)에 상태레지스터 선택정보를 발생하여 상태레지스터 SRi로 연산결과에 의해 발생한 상태레지스터 데이타를 출력한다. 또, 제3의 지연버퍼(111)에 입력되어 있는 마이크로 EPROM의 다음의 어드레스 제어필드의 정보에서 다음의 어드레스를 선택하고, 제어 PLA(14)에서의 어드레스 레지스터 입력 제어선 (83)에 따라서 어드레스 레지스터 ARi에 다음의 어드레스를 입력하고 일련의 동작을 종료한다.
이상과 같은 파이프라인 제어는 제 10도에 도시한 제어 PLA(14)중의 출력회로(93)에 지연래치를 사용하여 제14a도에 도시한 구성으로 하는 것에 의해 가능하게 된다. 즉, PLA의 OR 회로(89)에서의 제어출력선(96)과 출력회로(93)의 출력(82)∼(85)사이에 리세트 신호(94)로 초기클리어 되는 래치회로(116), (117), (118)을 삽입한다. 각각의 래치회로는 클럭신호에 의해 점차로 입력신호를 래치하고, 제14b도에 도시한 바와 같이 동작한다. 제14b도에서 A∼D의 각 기능은 T0∼T3 사이클에서 처리되는 일련의 기능을 나타낸다. T0 사이클에서는 PLA 의 제어출력선(96)으로 출력된 제어더욱력신호 Fi(①)에 타라 출력타이밍 회로(115)를 거쳐서 어드레스 레지스터 출력제어선(82)로 어드레스 레지스터 ARi의 선택정보 AR0i가 출력된다(②).
한편, 제어출력선(96)의 신호는 래치회로(116)으로 입력되고, 또 래치회로(116)의 출력은 래치회로(117)로 입력된다. 따라서, 래치회로(117)의 출력은 2사이클 지연되어 T2 사이클에서 상태레지스터 출력제어선(84)로 상태레지스터 SRi의 선택신호 SR0i를 출력한다(③).
또, 래치회로(117)의 출력은 래치회로(118)에 의해 1사이클 만큼 지연되어 T3사이클에서 어드레스 레지스터 입력제어 신호 ARIi(④)와 상태어드레스 입력제어 신호 SRIi(⑤)를 출력하고, 지정된 기능 Fi를 구성하는 마이크로 명령의 1워드를 실행하기 위한 일련의 동작을 실행한다.
제15도는 제9a도 및 제11a도에서 도시한 제어예로 파이프라인 제어한 예를 도시한 도면이다. S0∼S15의 각 상태에서는 실행해야 할 각 기능 Fi(F0∼F7)을 각각 출력한다(①). Fi의 신호에 따라서 제14a도의 회로에 의해 ②∼⑤의 제어를 실행한다. 이상의 제어에 의해 각 기능 F0∼F7에 대하여 도시한 바와 같은 A∼D의 일련의 제어가 실행된다. 즉, 모든 상태S0∼S15에서 어느 것인가의 기능의 A∼D의 처리가 실행되고 있다. 도면중, B', C', D'의 제어에 있어서 리세트로부터 개시해서 1회째의 루프에서는 실행되지 않고 2회째의 루프부터 실행된다.
이상, 제13도, 제14도, 제15도에서 설명한 예는 제어상태 레지스터SR (70)을 어드레스 래치와 같은 수, 즉 8조를 갖는 예를 설명했지만, 본래 상태레지스터를 마련하는 목적은 어떤 명령스텝으로 실행된 연산에서 발생하는 제로, 캐리등의 정보를 뒤에서 실행하는 다른 명령스텝에서 이용할 수 있도록 유지하는 것이다. 따라서, 본 실시예에서 기술하는 서브프로세서와 같이 마이크로 명령의 1스텝의 실행으로 분기조건 발생과 분기어드레스 생성을 종료하는 프로세서에 있어서는 그 1스텝의 실행기간만큼 상태출력을 유지하면, 조건분기를 위한 장시간의 상태유지는 불필요하게 된다. 즉, 어드레스 래치와 같은 수의 상태레지스터는 불필요하게 되고, 명령사이클 동안만큼 상태출력을 유지할 수 있는 1개의 래치를 마련하는 것만으로 대처할 수도 있다. 이 경우, 2배길이 연산등의 복수스텝의 명령으로 실현하는 복잡한 연산은 실행효율이 나쁘게 되지만, 다음과 같이 해서 실현할 수가 있다. 예를 들면, 최초의 명령스텝에서 실행한 결과로 발생한 캐리정보를 다음의 명령스텝에서 증가정보로써 이용하고자 하는 경우, 최초의 명령스텝의 연산결과로 캐리=1일 때의 분기지에+1명령을 기술하고, 캐리=0일 때의 분기지에+0명령을 기술하는 프로그램을 작성하면 좋다.
제16도에 어드레스 레지스터 AR의 초기값의 설정 및 서브프로세서(6)의 리세트 제어를 실행하기 위한 제어PLA의 주변회로 구성을 나타낸다. 제16도의 제어 PLA (14)는 제14a도에서 설명한 출력회로 (93)을 갖는 제10도의 제어 PLA(14)에 대해서 또 초기어드레스 제어선(119)를 추가한 것이다.
제8도 및 제10도에서 설명한 바와 같이 출력회로(93)의 출력중, 어드레스 레지스터 출력제어선(83)은 어드레스 레지스터 AR0∼AR7로의 입력을 선택하기 위한 어드레스 레지스터 입력멀티플렉서(75)를 제어한다. 제16도에서는 상기의 회로에 다음의 회로를 부가하고 있다. 초기어드레스 제어선(119)의 신호는 3단의 래치회로(120), (121), (122)에 의해 순가적으로 지연되고, 최종단의 래치회로(122)의 출력은 제1논리합(OR) 회로(123)의 한쪽의 입력에 접속된다. OR 회로(123)의 어느 한쪽의 입력은 명령레지스터(125)의 기능리세트 인에이블 비트(FRE)로 제어되는 비교기 (124)의 출력에 접속된다. 비교기(124)의 입력은 어드레스 레지스터 입력제어선(83)과 명령레지스터(125)의 가능번호 비트(FN)이다. 어드레스 레지스터 출력제어선(83)은 초기 어드레스 발생회로(126)에도 접속되고, 초기 어드레스 발생회로(126)의 출력은 OR 회로(123)으로 제어되는 셀렉터 회로(127)의 입력으로 되고, 셀렉터 회로(127)의 또 한쪽의 입력은 제13도에서 도시한 어드레스 제어회로(21)의 출력(74)에 접속된다.
이상의 회로구성에 의해 어드레스 레지스터 AR의 초기값 설정, 즉 기능 Fi의 프로그램을 저장하고 있는 마이크로 EPROM의 초기어드레스 Ai의 설정 및 리세트 제어가 어떻게 실행되는가에 대해서 제16도 및 제17도에 따라 설명한다. 제17도는 제11a도와 비교해서 초기어드레스 제어선(119)에 정보를 부여하기 위한 초기값 설정지정비트(r)의 정보를 추가한 것이다. 제17도중 ②의 기술은 I=0을 규정하고 있는 것 이외에는 제11a도와 동일하다.
또한, 제11도, 제17도 모두 제어필드에 Fi라고 기술하고 있지만, 실제로는 3비트의 수치데이타 i가 쓰여져 있다. 즉, I=1일 때 제어필드에 Fi라고 기술하고 있으면, 어드레스 레지스터 ARi의 하위 3비트에는 초기 어드레스로써 3비트데이타 i가 세트된다. 또한, 하위 3비트를 제외한 상위비트에는 모두 0이 세트된다.
제16도에서 초기어드레스 제어선(119)의 출력(I)는 제어출력선(96)의 출력과 동일한 타이밍으로 출력되고, 초기어드레스 제어선(119)의 출력(I)는 래치회로(120)∼(122)에 의해, 제어출력선(96)의 출력은 출력회로(93)중의 래치회로(116)∼(118)에 의해 각각 3사이클 만큼 지연된다. 초기설정값 지정비트(I)의 정보는 OR 회로(123)을 거쳐서 셀렉터회로(127)의 선택신호로써 작용한다. 한편, 어드레스 레지스터 입력제어선(83)에는 수치 i가 출력되고 있으며, 어드레스 레지스터 입력멀티 플렉서(75)의 제어신로써 작용함과 동시에 초기어드레스 발생회로(126)의 입력데이타로 된다. 초기어드레스 발생회로(126)의 기능은 i를 하위 3비트로 하고, 그 이외의 상위 비트에 0을 부가해서 초기어드레스를 생성하는 회로이다.
초기값 설정지정비트(I)=0인 경우, 셀렉터 회로(127)에서는 어드레스 제어회로 출력선(74)가 선택되고, 마이크로 EPROM에서 리드된 데이타가 어드레스 레지스터 입력멀티 플렉서(75)를 거쳐서 어드레스 레지스터 ARi에 입력된다. I=1인 경우, 셀렉터 회로(127)에서는 초기어드레스 발생회로(126)의 출력, 즉 초기어드레스가 선택되고 어드레스 레지스터 입력멀티 플렉서(75)를 거쳐서 어드레스 레지스터 ARi에 입력된다. 제17도에서는 리세트 개시에 의해 S0' 개시에서 동작을 개시하고, S0'∼S7'에서 순차적으로 어드레스 레지스터 F0∼F7에 초기 어드레스(하위 데이타 : 0∼7, 상위 데이타 : 0)을 부여하고 (도면중 ①), 그 후 제11a도에서 설명한 동작(제17도중 ②)로 이행하여 그 후 루프동작을 실행한다.
명령레지스터(RCMND) (125)는 서브프로세서(6)의 리세트 제어를 실행하기 위한 레지스터이며, 다음과 같이 7비트로 구성된다.
Figure kpo00008
각 부분의 의미는 다음과 같다.
RA : 서브프로세서 채널 A의 전체리세트.
RB : 서브프로세서 채널 B의 전체리세트.
FREA : 서브프로세서 채널 A의 기능중, FN에 기술된 기능을 리세트.
FREB : 서브프로세서 채널 B의 기능중, FN에 기술된 기능을 리세트.
FN : FREA = 1, 또는 FREB = 1일 때, 기능번호 (Fi)를 기술.
명령레지스터(125)는 제2도에 도시한 CPU(2)의 메모리 공간내에 배치되어 있으며, CPU(2)에서 액세스할 수 있다. 제16도에서는 1채널분의 제어에 관여하는 명령레지스터(125)로 도시하였지만, 제16도의 R 비트는 상기의 RA 또는 RB, 제16도의 FRE는 FREA 또는 FREB에 각각 대응한다.
명령레지스터(125)의 R 비트를 1로 하면, 그 정보가 제2논리합(OR)회로 (128)로 리세트 신호선(94')를 거쳐서 입력래치(92)에 리세트 신호를 부여하고, 제어 PLA (14) 전체를 리세트 상태로 제어한다. 즉, 리세트 신호선(94)에 1을 부여하였을 때와 마찬가지로 제어된다. 그후, R비트를 0으로 하면, 리세트가 해제되어 제17도의 최초의 상태 S0'에서 제어를 재차 개시한다. 명령레지스터(125)의 FN 비트(3비트)에 기능번호 Fi를 설정하고, FRE 비트 = 1로 하면, 비교기(124)가 언에이블로 되고, FN비트의 값과 어드레스 레지스터 입력제어선(83)의 값이 같게 되는 타이밍으로 비교기(124)에서 1이 출력되어 OR 회로(123)을 거쳐서 셀렉터 회로(127)을 제어한다. 셀렉터 회로(127)에서는 초기어드레스 발생회로(126)의 출력, 즉 상기의 어드레스 레지스터 입력제어선(83)의 값을 수정한 값이 초기어드레스로써 어드레스 레지스터 입력멀티 플렉서(75)를 거쳐서 어드레스 레지스터 ARi에 입력된다. 그 결과, 명령레지스터(125) FN비트에 지정한 기능 Fi만이 리세트되지되고, FER 비트 = 0에 의해 기능 Fi의 마이크로 프로그램은 초기어드레스에서 재차 개시한다. 이 때, 기능 Fi 이외의 기능은 영향을 받지 않고 프로그램을 계속실행한다.
다음에 제2도면에 도시한 프로그램머블 입출력포트(프로그램머블)I/O (8)에 대해서 설명한다. 제18도에 프로그램머블 I/O (8)의 1비트분의 구성(130)을 도시한다. 먼저, 마이크로 EPROM의 포트지정필드의 항에서 기술한 바와 같이 프로그램머블 I/O는 제18도와 같은 I/O비트를 여러개 갖고 있으며, 포트지정필드의 정보에 따라서 지정된다. 프로그램머블 I/O 비트(130)은 단자(67)에 대해서 단자배선(133)으로 접속되고, 데이타 버스로의 출력선(DBO) (136) 및 서브프로세서로의 출력선(SPO) (137)를 갖는 출력회로(132)와 외부단자(67)에 대해서 단자배선(133)으로 접속되고, 데이타 버스로의 입력선(DBI) (134) 및 서브프로세서로의 입력선(SPI) (135)를 갖는 입력회로(131)로 구성된다.
출력회로(132)는 DBO (136)과 SPO(137)를 선택하기 위한 셀렉터(139), 셀렉터(139)의 출력으로 제어되는 래치출력회로(140), SPO(137)을 입력으로 하는 넥스트 레벨출력회로(141), 반전출력회로(142), 상기의 래치출력회로(140), 넥스트 레벨출력회로(141), 반전출력회로(142)의 각각의 출력선(143)∼(145)를 입력으로 하고, 이들중 어느 하나를 선택하기 위한 출력셀렉터(146), 데이타 방향레지스터(DDR) (147), 이 데이타 방향레지스터(DDR) (147)로 제어되고, 단자배선(133)에 데이타를 출력하기 위한 출력버퍼(148)로 구성된다. 또, 셀렉터(139)는 EPROM 소자를 이용한 불휘발성 스위치회로(EPSW1) (149)에 접속된다. 또 출력셀렉터(146), DDR (147), 래치출력회로(140), 넥스트 레벨출력 회로(141), 반전출력회로 (142)는 불휘발성 스위치 회로(EPSW2) (150)에 접속된다.
입력회로(131)은 배선단자(133)에 접속된 입력버퍼(138), 그 출력선(151), 상기 출력선(143)∼(145)를 입력으로 하는 제1의 압력 셀렉터(152) 및 제2의 입력 셀렉터(153) 제1의 입력셀력터(152)의 출력(154)를 입력으로 하는 양에지 검출회로(155), 정에지 검출회로(156), 부에지 검출회로(157), 제1의 입력셀렉터 출력(154) 및 양에지 검출회로(155), 정에지 검출회로(156), 부에지 검출회로(157)의 각 출력을 입력으로 하는 서브프로세서 입력셀렉터 (158)로 구성된다. 각 셀렉터(153), (152), (158)은 불휘발성 스위치 회로(EPSW3, EPSW4) (159), (160)에 접속된다. 다음에 주요한 회로의 기능에 대해서 설명한다.
래치출력회로 (140)은 제2도에 도시한 공통버스(9)에 포함되어 있는 데이타 버스의 출력선(136), 또는 서브프로세서(6)에서의 출력데이타선(137)의 어느 것인가의 데이타선에서의 라이트 데이타를 래치한다.
넥스트레벨 출력회로(141)은 제1 및 제2의 래치회로를 갖고 있으며, 데이타 버스를 거쳐서 라이트된 제1의 래치데이타를 서브프로세서에서의 출력신호에 의해 출력선(144)에 접속된 제2의 래치로 전송한다.
반전출력회로(142)는 서브프로세서에서의 출력신호에 의해 반전동작을 한다. 양에지 검출회로(155)는 단자(67)에서 입력된 신호의 상승 또는 하강을 검출하여 플립플롭을 세트한다. 서브프로세서에서 리드가 있으면, 플립플롭의 내용을 출력하고 플립플롭은 클리어된다.
정에지 검출회로(156)은 단자(67)에서 입력된 신호의 상승을 검출하고, 그것에 의해 플립플롭이 세트된다. 서브프로세서에서 리드가 있으면, 플립플롭의 내용을 출력하고 플립플롭은 클리어된다.
부에지 검출회로(157)은 단자(67)에서 입력된 신호의 하강을 검출하고, 그것에 의해 플리플롭이 세트된다. 서브프로세서에서 리드가 있으면, 플립플롭의 내용을 출력하고 플립플롭은 클리어 된다.
EPSW1은 래치출력회로(140)의 입력을 데이타 버스에 결합하던가 또는 서브프로세서 출력에 결합하는가를 정의한다.
EPSW2는 출력기능을 정의하기 위한 회로이며, 다음의 기능을 정의 할 수 있다. ① 초기데이타선(161)에 의해 래치출력회로(140), 넥스트레벨출력회로(141), 반전출력회로(142)에 대해서 초기데이타를 부여한다. ②선택선(162)에 의해 래치출력회로(140), 넥스트 레벨출력회로(141) 및 반전출력회로 (142)의 어느 하나의 출력을 선택하는가를 정의한다. ③ 초기방향 제어선(163)에 의해 데이타 방향레지스터(DDR)에 초기 데이타를 부여하고, 단자(67)의 초기데이타 방향(입력 또는 출력)을 정의한다. 상기 DDR은 데이타 버스에도 접속되어 있으며, 메인프로세서에서 수치데이타를 재설정할 수도 있다.
EPSW3은 데이타 버스로의 입력을 단자(67)에서의 입력으로 하던가, 래치출력회로(140), 넥스트 레벨출력회로(141), 반전출력회로(142)의 출력의 어느 하나로 하던가 또는 데이타 버스로의 입력을 금지하는가를 정의한다.
EPSW4는 서브프로세서로의 입력기능을 정의하기 위한 회로이며, 다음과 같은 기능을 정의할 수 있다. ① 입력데이타 선택선(176)에 의해 서브프로세서로의 입력데이타 소스를 단자(67)에서의 입력으로 하던가 또는 래치출력회로(140), 넥스트 레벨 출력회로(141), 반전출력회로(142)의 출력의 어느 하나로 하는가를 정의한다. ② 입력기능 선택선(164)에 의해 서브프로세서로의 입력기능을 양에지 검출, 정에지 검출, 부에지 검출, 레벨입력의 어느 하나로 하는가를 정의한다.
이상에서 설명한 EPROM을 사용한 불휘발성 스위치회로(EPSW1∼4)를 초기프로그램하는 것에 의해 여러가지 바라는 기능을 실현할 수 있다.
제19a,b도에 불휘발성 스위치 회로의 구성예를 도시한다. 제1의 예인 제19a도는 PMOS 트랜지스터(165), (166)과 nMOS 트랜지스터(167), (168), 데스트 데이타를 부여하기 위한 nMOS 트랜지스터(167), (168), 테스트 데이타를 부여하기 위한 nMOS 트랜지스터(171) 및 고내압 nMOS 트랜지스터(169), EPROM 소자(170), EPROM 라이트 회로(72)를 포함하는 EPROM 회로(184)로 구성된다. pMOS (165)와 (166)의 소스전극은 전원선 (174)에 접속된다. (175)는 접지선이다. pMOS (165)와 nMOS (167) 및 pMOS (166)과 nMOS (168)의 각각의 트랜지스터 쌍은 각각 서로의 드레인 전극을 결합하고, 동일한 게이트 배선에 결합된 상보구조로 되어 있다. 또, 각각의 트랜지스터쌍은 각각 서로의 출력단자와 입력단자를 결합한 교차결합으로 되어 있다. pMOS (165)와 nMOS(167)의 트랜지스터쌍의 드레인 배선, 즉 pMOS(166)과 nMOS(168)의 트랜지스터쌍의 게이트 배선에서 인출되는 배선이 출력선(173)으로 된다. 또 nMOS 트랜지스터(171)의 한쪽의 전극은 pMOS(166)과 nMOS (168)의 트랜지스터쌍의 드레인배선, 즉 pMOS(165)와 nMOS(167)의 트랜지스터쌍의 게이트 배선에 접속되고, 이 nMOS 트랜지스터(171)을 거쳐서 교차결합 회로로 테스트 데이타를 부여한다. EPROM 라이트 회로(172)에는 라이트 전압(12V)를 공급하회의 고전압 전원선(180)과 라이트 데이타선(181)이 입력되고, 라이트 회로(172)의 출력선, 즉 라이트 제어선(177)∼(179)는 고내압 nMOS(169)와 EPROM 소자 (170)의 게이트 전극 및 드레인 전극에 접속되어 EPROM 소자 (170)으로의 라이트를 제어한다. 라이트시, 즉 고전압 전원선 (180)에 12V를 인가한 경우의 입출력 관계를 표 6에 나타낸다.
Figure kpo00009
본 실시예에서 이용한 EPROM 소자는 자외선 소거형의 소자이며, 자외선 조사에 의해 EPROM 소자의 임계값은 1V 정도로 된다. 소거  상태에서 라이트 데이타선(181)에 5V 전압을 부여하고 라이트를 실행하면, EPROM 소자의 임계값이 7V 정도로 상승한다. 따라서, 라이트시 이외에는 제어선(177)에 5V, 제어선(178)을 플로팅(부유상태), 제어선(179)에 5V를 부여해두면, 소거상태에서는 EPROM 소자(170)이 도통상태, 라이트 상태에서는 비도통 상태로 된다.
이상과 같이 구성하는 것에 의해 라이트상태, 즉 비도통상태에서 전원선(174)의 전압을 접지선(175)와 동일한 전압(0V)에서 5V로 변화시켰을 때에 반드시 출력선(173)에는 5V가 출력된다. 따라서, 도통상태에서 전원선(174)의 전압을 접지선(175)와 동일한 전압(0V)에서 5V로 변화시켰을 때에 출력선(173)에 반드시 0V가 출력되도록 회로를 설계하는 것에 의해 상기 EPROM 소자(170)의 소거상태 또는 라이트 상태에 따라 전원투입시의 출력선(173)의 전압을 확정시킬 수 있다. 그 때문에 pMOS(166)에 대해서 pMOS(165)를, 또 nMOS (167)에 대해서 nMOS (168)을 각각 전류도통 능력이 낮게 되도록 설정하고 있다. nMOS (171)은 EPROM 소자(170)을 소거한 상태에서 상기 교차결합회로에 임의의 데이타를 부여하기 위한 트랜지스터이며, 전극(182)에 데이타를 부여하고, 게이트 전극(183)에 5V를 인가하면 교차결합회로에 데이타를 입력하는 것이 가능한 상태로 된다. 이 상태에서 데이타를 부여한 후, 게이트 전극 (183)의 전압을 0V로 되돌려도 그 값이 유지된다. 이 경우, 출력선(173)의 데이타는 nMOS(171)을 거쳐서 부여한 데이타의 반전데이타로 된다.
제19b도에 불휘발성 스위치 회로의 제2의 구성예를 도시한다. 이 예는 제1의 예인 nMOS (167)과 접지선(175) 사이에 제1의 예에서 설명한 EPROM회로(184)와 동일한 구성을 갖는 EPROM회로(184')를 삽입한 것이다. 이 예의 경우는 EPROM 소자(170) 또는 (170')의 한쪽만을 라이트 상태로 하는 것에 의해 MOS 트랜지스터를 언뱁런스로 설정하지 않아도 안정하게 출력(173)을 확정할 수가 있다. 교차결합 회로에 임의의 데이타를 부여하는 경우는 EPROM 소자(170)과 (170')의 양쪽을 소거상태로 한 것에서 제1의 예와 마찬가지로 nMOS(171)를 제어하고 데이타를 설정할 수가 있다.
제20도에 제2도에서 도시한 단일칩 마이크로 컴퓨터의 PLD (7)과 제2의 프로그램머블 I/O 포트 (PI/02) (199)의 상세한 구성을 도시한다. PLD (7)은 입력셀렉터 (200)과 논리곱(AND)회로 (201), 논리합(OR)회로(202), 출력회로(203), 출력멀티 플렉서(205), 출력회로(203)에서 논리곱 회로(201)로의 피드백 배선(204)로 구성된다. 상기의 구성요소중, 입력셀렉터(200)과 출력회로 (203) 및 출력 멀티플렉서(205)는 제19도에서 설명한 EPROM소자를 이용한 불휘발성 스위치 회로 EPSW13, EPSW14, EPSW15로 제어된다.
프로그램머블 I/O 포트(199)는 각각의 8비트 구성의 5개의 포트 PDB0(191), P1(188), P2(189), P3()190, PDBI (192)를 갖고 있으며, 각각은 공통버스에 포함되어 있는 8비트 데이타 버스(DB)에 접속되어 있다. 또 각각의 포트는 선택신호 SEL, 리드신호 RD, 라이트 신호 WR 로 제어된다. 상기의 포트중, P1, P2, P3의 3포트는 불휘발성 스위치 회로 EPSW10, EPSW11, EPSW12에 의해 각각 특성화된다. 이 특성화에 따라 외부단자와의 접속선(185), (186), (187)과 데이타 버스(DB)사이의 데이타 전송을 실행하기 위한 쌍방향의 범용 I/O 포트로써 사용되는 것이외에 접속선(185)∼(187)과 상기의 PLD (7)사이의 데이타 전송에도 사용할 수 있다. P1은 출력선(194)를 거쳐서 PLD(7)로의 데이타 입력, P2는 출력선(195)를 거쳐서 PLD(7)로의 데이타 입력과 입력선(196)를 거쳐서 데이타 출력, P3은 입력선(197)을 거쳐서 PLD에서의 데이타의 출력을 각각 실행할 수가 있다. 포트 PDB0 및 PDBI는 상기의 PLD(7)과의 연락용 만으로 사용되는 전용포트이며, 외부단자로의 접속선을 갖고 있지 않다. 포트 PDB0은 데이타 버스(DB)의 데이타를 출력선(193)을 거쳐서 PLD(7)로 입력하기 위한 입력버퍼로써 사용되고, 또 포트 PDBI는 PLD(7)의 출력을 입력선(198)을 거쳐서 데이타 버스(DB)로 출력하기 위한 출력버퍼로써 사용된다. 이하, 각 불휘발성 스위치 회로(EPSW10∼15)의 기능을 설명한다.
EPSW10은 포트 P1을 데이타 버스에 결합하는 범용포트로써 사용하는가, PLD 입력으로써 사용하는가를 정의한다.
EPSW11은 포트 P2를 데이타 버스에 결합하는 범용포트로써 사용하는가, PLD 입력 또는 PLD 출력으로써 사용하는가를 정의한다.
EPSW12는 포트 P3을 데이타 버스에 결합하는 범용포트로써 사용하는가, PLD 출력으로써 사용하는가를 정의한다.
EPSW13은 입력셀렉터 (200)을 제어하고, PLD(7)의 논리곱(AND)회로 (201)로의 입력을 어떤 배선과 접속하는가를 정의한다. 입력으로써는 포트 PDB0, P1, P2에서의 입력이외에 어드레스 버스 AB, 리드신호 RD, 라이트 신호 WR, 클럭신호등을 포함하는 CB가 있다.
EPSW14는 출력회로(203)을 제어하고, 출력극성등을 정의한다.
EPSW15는 PLD 출력을 포트 P3으로 출력하던가, 데이타 버스로의 출력버퍼 PDBI로 출력하는가를 정의한다.
다음에 EPROM의 라이트 및 테스트에 대해서 설명한다.
이상 설명한 바와 같이 본 실시예의 단일칩 마이크로 컴퓨터는 전기적으로 라이트 가능한 반도체 불휘발성 메모리 소자인 EPROM 소자를 사용한 여러가지의 회로를 갖고 있으며, 이 EPROM 소자로의 데이타 라이트 및 테스트가 필요하다.
제 21도에 EPROM으로의 데이타 라이트 및 테스트를 실현하기 위한 구성을 도시한다. 라이트 모드에서는 EPROM 소자를 포함하는 회로, 즉 ① 프로그램용 EPROM(4), ② 서브프로세서 채널 A(10a)의 마이크로 PEROM (11a) 및 ③ 제어PLA(14a), ④ 서브프로세서 채널 B(10b)의 마이크로 PEORM (11b) 및 ⑤ 제어 PLA(14b), ⑥ PLD(7), ⑦ 제1의 프로그램머블 I/O(8), ⑧ 제2의 프로그램머블 I/O (199)의 각 회로모듈은 공통버스(9)에 접속된다. 한편, EPROM 소자를 포함하지 않는 CPU(2), RAM(3) 등의 회로모듈은 공통버스에 대해서 전기적으로 차단된다. 이와 같이 제어된 상태에서 EPROM 소자를 포함하는 각 회로모듈에 대해서 테스트 포트(206) 및 공통버스(9)를 거쳐서 반도체 기판(1)의 외부에서 필요한 정보를 부여하고, 라이트 및 테스트를 실행한다. 이 때의 반도체 기판(1)의 외부의 통신용의 신호선으로써는 테스트 데이타선(207), 테스트 어드레스선(208), 테스트 제어선(209)가 있다. 테스트 데이타선(207)에는 라이트시에 EPROM으로의 라이트 데이타를 입력하고, 리드시에는 EPROM의 리드데이타가 출력된다. 테스트 어드레스선(208)에는 EPROM의 선택정보를 입력한다. 테스트 제어선(209)에는 테스트 인에이블 신호, 라이트용 고전압 및 EPROM의 라이트, 리드를 제어하는 라이트 신호, 리드신호를 부여한다. 즉, 이 마이크로 컴퓨터는 테스트 제어선(209)에 인가되는 신호에 응답해서 통상의 명령실행동작(노말모드)에서 라이트 모드로 전환한다. 라이트 모드시에 상기의 ①∼⑧의 회로모듈에에 포함되는 EPROM 소자는 동일한 어드레스 공간, 즉 테스트 어드레스선(208)에 의해 연속적으로 지정할 수 있도록 할당되어 있으며, 시판하는 기준 EPROM 라이터에서 발생되는 신호를 사용해서 라이트 할 수가 있다.
다음에 서브프로세서의 테스트법에 대해서 설명한다. 제 22a도에 서브프로세서의 1채널의 구성을 도시한다. 서브프로세서의 테스트는 다음에 기술하는 3단계로 행하여지고, 또 그 제어는 테스트 제어선(209)에 인가되는 신호에 응답해서 행하여진다.
(1) EPROM 디바이스 테스트 : EPROM 소자의 데이타 유지특성 등의 다바이스 테스트를 실행하는 것이며, 상기의 EPROM으로의 라이트 모드를 사용해서 테스트한다. 즉, 제22a도의 테스트 포트(206)과 공통버스(9)를 거쳐서 제어 PLA(14) 및 마이크로 EPROM(11)에 포함되는 EPROM 소자에 대해서 리드/라이트 테스트를 실시한다.
(2) 반 다이나믹 테스트 : 제22a도에 도시한 바와 같이 제어 PLA(14) 및 마이크로 EPROM(11)과 제어회로(12)사이에 마련한 테스트용 래치회로(210), (211)을 마련하고, 이 래치회로에 래치한 정보를 사용한 테스트이다. 이 동작을 제22b도에 도시한다. 노말모드에서는 ① 마이크로 EPROM 리드사이클, ② 디코드 사이클, ③ 레지스터, 상태레지스터 SR리드 및 연산실행 사이클, ④ 레지스터, 상태레지스터 SR로의 라이트 사이클의 일련의 동작을 실행하지만, 이 반 다이나믹 테스트 모드에서는 상기의 각 사이클중, ①의 사이클 대신에 테스트 사이클 ①(TC1)을 실행한다. TC1에서는 테스트포트(206)과 공통버스(9)를 거쳐서 테스트용 래치회로(210), (211)로 제어데이타를 설정한다. 즉, 제어 PLA (14)에서의 제어신호와 마이크로 EPROM에서의 데이타를 받은 것과 동일한 상태를 만들어 낸다. 또, 연산회로(13)에 포함되어 있는 범용레지스터로의 초기데이타를 설정한다. 이상의 TC1의 조작은 정적으로 실행할 수 있다. 각 데이타의 설정후, 상술한 ①∼④ 사이클을 연속해서 실행하고, ④의 사이클을 종료한 후, 일단 동작을 정지하고 테스트 사이클 ②(TC2)로 이행한다. TC2에서는 정적으로 레지스터의 내용을 리드할 수 있으므로, 레지스터의 내용과 기대값과의 조합에 의해 테스트 결과를 알 수가 있다.
또한, 제22a도에서 마이크로 EPROM(11)의 정보는 항상 테스트용 레치회로(211)을 거쳐서 제어회로에 입력되도록 도시되어 있지만, 노말모드시는 이 래치회로(211)은 단순히 마이크로 EPROM의 정보를 래치하는 역할만 할 뿐이다.
(3) 다이나믹 테스트 : 제어PLA (14)는 이 테스트 모드에서만 사용할 수 있는 테스트용 PLA를 포함하고 있다. 또 마이크로 EPROM(11)도 마찬가지로 그의 어드레스의 일부에 테스트 프로그램 영역을 포함하고 있으며, 여기에 상기(1)의 테스트 모드에서 테스트 프로그램을 라이트 해둔다. 이 다미나믹 테스트 모드에서는 테스트용 PLA와 테스트용 마이크로 EPROM 영역이 선택되는 것 이외에는 노말모드시의 동작과 마찬가지이다. 즉, 다이나닉 테스트 모드가 지정되면, 초기 어드레스로써 테스트용 마이크로 EPROM 영역의 어드레스가 지정된다.
이상 설명한 바와 같이 본 실시예에 의하면, 소프트웨어뿐만 아니라 하드웨어의 유연성을 향상시킬 수 있고, 각종의 응용에 최적인 단일칩 마이크로 컴퓨터를 구축할 수가 있다. 또 최적인 파이프 라인제어에 의해 여러기능의 고속처리가 가능하며, 전용하드웨어와 손색이 없는 성능 및 기능을 실현할 수 있다.
본 실시예에 있어서는 불휘발성 반도체 메모리로써 자외선 소거형의 EPROM을 사용한 예를 기술하였지만, 불휘발성 반도체 메모리로써 전기적 소거형의 EEPROM 또는 리드전용의 ROM을 사용하여도 동일한 효과가 얻어지는 것은 물론이다.
또, 상기 서브프로세서(6), PLD(7), 프로그램머블 I/O(8), (199)를 공통버스를 거쳐서 반도체 기판의 외부에서 접속하는 것도 가능하다.
본 발명에 의하면, 단일칩 마이크로 컴퓨터의 범용성을 높일 수 있으므로, 각종의 응용에 있어서 상기의 단일칩 마이크로 컴퓨터의 주변을 구성하는 부품수를 삭감할 수가 있다. 또, 사용자가 스스로 손으로 논리정보를 라이트할 수 있으므로, 사항변경이나 논리변경이 일어난 경우에도 신속하게 대응할 수 있어 개발기간의 단축과 함께 원가저감의 효과가 크다.
또, 불휘발성 소자로의 라이트방법을 표준의 불휘발성 반도체 메모리와 동일하게 하고, 표준 PROM 라이터로 라이트할 수 있도록 한 것에 의해 특별한 라이트장치를 필요로 하지 않아 이 점에서도 원가저감의 효가가 크다.

Claims (55)

  1. 여러개의 프로그램을 저장하는 메모리수단(11) 및 상기 메모리수단에 저장된 상기 여러개의 프로그램중 하나의 마이크로명령에 응답하는 연산회로 (26)을 포함하는 제1의 프로세서(10a)를 포함하는 단일칩 마이크로컴퓨터(1)로써, 상기 제1의 프로세서는 상기 연산회로(26)을 위한 여러개의 어드레스레지스터(AR0∼AR7)의 출력중 하나를 선택해서 상기 메모리수단으로 전송하는 제1의 선택기 (73)을 또 포함하며, 상기 여러개의 어드레스레지스터(AR0∼AR7)의 각각은 상기 메모리수단에 저장된 상기 여러개의 프로그램중 하나에 대응하는 어드레스를 저정하는 단일칩 마이크로 컴퓨터.
  2. 제 1항에 있어서, 상기 제1의 프로세서는 상기 여러개의 어드레스레지스터(AR0∼AR7)중 하나에 각각 대응하는 여러개의 상태레지스터(SR0∼SR7) 및 상기 여러개의 상태레지스터(SR0∼SR7)의 출력중 하나를 선택해서 상기 연산회로(26)으로 전송하는 제2의 선택기(78)을 또 포함하고, 상기 여러개의 상태레지스터(SR0∼SR7)의 각각은 상기 연산회로(26)에서 실행되는 연산의 결과로써 발생되는 제로정보와 캐리정보중 적어도 하나를 저장하는 단일칩 마이크로 컴퓨터.
  3. 제1항에 있어서, 상기 제1의 프로세서는 상기 여러개의 어드레스레지스터와 상기 여러개의 상태레지스터의 각각의 쌍의 소정 기간당 선택된 시간을 결정하는 프로그램머블논리어레이 (PLA)를 또 포함하는 단일칩 마이크로컴퓨터.
  4. 제2항에 있어서, 상기 메모리수단(11)은 전기적으로 라이트가능한 불휘발성 반도체메모리소자를 포함하는 리드전용 메모리인 단일칩 마이크로컴퓨터.
  5. 제4항에 있어서, 상기 제1의 프로세서 (10)은 상기 제1의 선택기 (73)과 상기 제2의 선택기 (78)로 선택정보를 공급하는 선택수단(14)를 또 포함하는 단일칩 마이크로컴퓨터.
  6. 제5항에 있어서, 상기 선택수단 (14)는 논리어레이구조 (87, 89)를 포함하는 단일칩 마이크로컴퓨터.
  7. 제5항 있어서, 상기 선택수단(14)는 상기 어드레스레지스트(AR0∼AR7)에 선택적으로 어드레스데이타를 부여하는 단일칩 마이크로컴퓨터.
  8. 제1항에 있어서, 상기 제1의 프로세서는 상기 메모리수단 (11)과 상기 연산회로(26)사이 및 상기 연산회로 (26)과 상기 상태레지스터(SR0∼SR7)사이에 각각 개재된 래치수단(103∼111)을 또 포함하며, 상기 제1의 프로세서(10)은 파이프라인제어되는 단일칩 마이크로컴퓨터.
  9. 제7항에 있어서, 상기 제1의 프로세서(10)은 상기 선택수단(14)에 결합된 제어레지스터(125)를 또 포함하며, 상기 선택수단(14)는 상기 제어레지스터(125)에 저장된 정보에 응답해서 상기 어드레스레지스터(AR0∼AR7)에 선택적으로 어드레스데이타를 부여하는 단일칩 마이크로컴퓨터.
  10. 제5항에 있어서, 상기 제1의 프로세서 (10)은 상기 마이크로컴퓨터의 외부로부터의 신호를 받는 단자수단(67), 상기 단자수단(67)로부터의 신호를 입력으로 해서 동작하고, 상기 선택수단(14)에 정보(100)을 전달하는 전달수단(99)를 또 포함하며, 상기 선택수단(14)는 상기 정보(100)에 응답해서 하나의 어드레스레지스터와 여러개의 상태레지스터쌍을 선택하는 단일칩 마이크로컴퓨터.
  11. 제10항에 있어서, 상기 단자수단(67)은 여러개의 단자 (Ie0, Ie1, Ie2)를 포함하며, 상기 전달수단(99)는 상기 여러개의 단자로 부터의 신호의 변화점을 검출하는 여러개의 검출수단(102) 및 상기 검출된 여러개의 신호사이의 우선순위를 부여하는 수단(101)을 포함하는 단일칩 마이크로컴퓨터.
  12. 제2항에 있어서, 상기 여러개의 상태레지스터 (SR0∼SR7)의 각각의 상기 마이크로명령의 하나의 스텝의 실행시간용 정보를 유지하는 단일칩 마이크로컴퓨터.
  13. 제12항에 있어서, 상기 메모리수단(11)은 전기적으로 라이트가능한 불휘발성 반도체메모리소자를 포함하는 리드전용 메모리인 단일칩 마이크로컴퓨터.
  14. 제1항에 있어서, 상기 연산회로 (26)은 동시에 동작되도록 공통입력에 접속되는 산술논리연산회로 (71)과 비교회로 (CMP) 및 상기 산술논리연산회로 (71)과 비교회로 (CMP)에 접속되는 선택수단 (36)을 포함하며, 상기 선택수단 (36)은 상기 산술논리연산회로 (71)에서 실행되는 연산의 결과가 제로인 것을 나타내는 제로신호와 상기 비교회로 (CMP)에서 실행되는 비교의 결과가 일치인 것을 나타내는 일치신호를 선택적으로 선택해서 출력하는 단일칩 마이크로컴퓨터.
  15. 제14항에 있어서, 상기 제1의 프로세서는 상기 선택수단(36)의 출력신호에 응답해서 상기 마이크로명령 저장용 메모리(11)의 어드레스를 제어하는 수단(21)을 또 포함하는 단일칩 마이크로컴퓨터.
  16. 제15항에 있어서, 상기 제1의 프로세서는 상기 선택수단(36)의 출력신호에 응답해서 상기 단자수단으로 데이타를 출력하는 수단(18)을 또 포함하는 단일칩 마이크로컴퓨터.
  17. 제 16항에 있어서, 상기 제1의 프로세서는 상기 연산수단(13)의 연산결과의 정보를 저장하는 상태레지스터(SR0∼SR7)을 또 포함하며, 상기 선택수단(36)의 출력은 상기 상태레지스터에 저장되는 단일칩 마이크로컴퓨터.
  18. 제17항에 있어서, 상기 연산수단(13)은 제1의 레지스터(29) 및 제2의 레지스터(28)을 또 포함하며, 상기 비교회로(CMP)는 상기 제1 및 제2의 레지스터에 저장된 데이타를 비교하고, 상기 산술논리연산회로(71)은 상기 제1의 레지스터에 저장된 데이타의 값을 인크리먼트하고, 상기 제1 및 제2의 레지스터에 저장된 데이타의 비교의 결과가 일치하는 경우에는 일치를 나타내는 신호를 발생함과 동시에 상기 제1의 레지스터의 데이타를 클리어하고, 불일치한 경우에는 불일치를 나타내는 신호를 발생함과 동시에 상기 제1의 레지스터 값을 인크리먼트하는 단일칩 마이크로컴퓨터.
  19. 제17항에 있어서, 상기 연산수단(13)은 제1의 레지스터(29) 및 제2의 레지스터(28)을 또 포함하며, 상기 비교회로(CMP)는 상기 제1 및 제2의 레지스터에 저장된 데이타를 비교하고, 상기 산술논리연산회로(71)은 상기 제1의 레지스터에 저장된 데이타의 값을 인크리먼트하고, 상기 제1 및 제2의 레지스터에 저장된 데이타의 비교의 결과가 일치하는 경우에는 일치를 나타내는 신호를 발생하고 불일치한 경우에는 불일치를 나타내는 신호를 발생하며 일치, 불일치의 어느 경우에도 상기 제1의 레지스터값을 인크리먼트하는 단일칩 마이크로컴퓨터.
  20. 제17항에 있어서, 상기 연산수단(13)은 제1의 레지스터(29) 및 제2의 레지스터(28)을 또 포함하며, 상기 비교회로(CMP)는 상기 제1 및 제2의 레지스터에 저장된 데이타를 비교하고, 상기 산술논리연산회로(71)은 상기 제1의 레지스터에 저장된 데이타의 값을 디크리먼트하고, 상기 디크리먼트의 결과, 상기 제1의 레지스터의 데이타의 값이 제로인 경우에 상기 제2의 레지스터의 데이타를 상기 제1의 레지스터로 전송하는 수단을 포함하는 단일칩 마이크로컴퓨터.
  21. 제1항에 있어서, 상기 제1의 프로세서는 상기 메모리에 저장된 정보를 해독하여 제어신호를 생성하는 제어수단(12), 상기 제어수단(12)에 의해 제어되는 레지스터회로(R8∼R10), 상기 연산회로(26)에 접속된 버스수단(31), 상기 마이크로컴퓨터의 외부에서 신호를 받는 단자수단(300) 및 상기 단자수단(300)에서 공급되는 신호에 응답하는 입력제어수단(15, 301)을 또 포함하며,상기 제어수단(12)는 상기 마이크로명령의 연산제어정보에 응답하는 연산제어회로(22)와 상기 마이크로명령의 레지스터제어정보에 응답하는 레지스터제어회로(23)을 구비하고, 상기 입력제어수단(15, 301)은 상기 마이크로명령의 입력제어정보에 응답해서 상기 버스수단(31)에 상기 레지스터회로(R8∼R11)을 결합하는 단일칩 마이크로컴퓨터.
  22. 제21항에 있어서, 상기 레지스터회로는 여러개의 레지스터(R8∼R11)로 구성되고, 상기 입력제어수단(15, 301)은 상기 입력제어정보에 응답해서 상기 여러개의 레지스터(R8∼R11)을 독립적으로 상기 버스수단 (31)에 결합하는 단일칩 마이크로컴퓨터.
  23. 제1항에 있어서, 상기 제1의 프로세서는 상기 메모리에 저장된 정보를 해독하여 제어신호를 생성하는 제어수단(12), 상기 제어수단(12)에 의해 제어되는 레지스터회로(R0, R2, R4, R8), 상기 연산회로(26)에 접속되는 버스수단(25), 상기 마이크로컴퓨터의 외부로 신호를 출력하는 단자수단(246) 및 상기 단자수단 (245)에서 공급되는 신호에 응답하는 출력제어수단(15, 241, 244)를 또 포함하며, 상기 마이크로명령은 1워드중에 연산제어정보, 레지스터제어정보 및 출력제어정보를 포함하고, 상기 제어수단 (12)는 상기 마이크로명령의 연산제어정보에 응답하는 연산제어회로 (22) 및 상기 마이크로명령의 레지스터제어정보에 응답하는 레지스터제어회로 (23)을 구비하고, 상기 출력제어수단 (15, 241, 244)는 상기 출력제어정보에 응답하여 상기 버스수단 (25)상의 데이타와 상기 레지스터회로(R0, R2, R4, R8)에 저장되는 데이타를 비교하여 그 비교결과를 상기 단자수단으로 출력하는 단일칩 마이크로컴퓨터.
  24. 제23항에 있어서, 상기 레지스터회로는 여러개의 레지스터(R0, R2, R4, R8)로 구성되고, 상기 출력제어수단 (15, 241, 244)는 상기 출력제어정보에 응답해서 상기 여러개의 레지스터(R0, R2, R4, R8)에 저장된 데이타를 독립적으로 상기 버스수단(25)의 데이타와 비교하여 상기 비교결과를 독립적으로 상기 단자수단으로 출력하는 단일칩 마이크로컴퓨터.
  25. 제1항에 있어서, 제1의 프로세서는 비트단위로 규정되는 여러개의 입출력비트 (130)을 포함하는 입출력수단 (8), 상기 메모리에 저장되는 정보를 해독하여 상기 입출력수단 (8)을 제어하는 제어수단 (15)를 또 포함하며, 제어수단 (15)는 상기 마이크로명령에 응답해서 상기 여러개의 입출력비트중 적어도 하나를 선택하여 상기 선택된 입출력비트의 기능을 지정하는 단일칩 마이크로컴퓨터.
  26. 제25항에 있어서, 상기 마이크로명령의 제1의 정보(Pck)에 응답해서 제1의 입출력비트가 선택됨과 동시에 상기 제1의 입출력비트가 입력비트로써 지정되고, 상기 제1의 입출력비트에서 입력되는 신호에 응답해서 상기 연산수단 (13)에 있어서의 명령의 실행을 무효로 하는 단일칩 마이크로컴퓨터.
  27. 제25항에 있어서, 상기 마이크로명령의 제2의 정보(P0)에 응답해서 제2의 입출력비트가 선택됨과 동시에 상기 제2의 입출력비트가 입력비트로써 지정되고, 상기 제2의 입출력비트에서 입력되는 신호를 상기 연산수단 (13)의 캐리정보(Ci)로 하는 단일칩 마이크로컴퓨터.
  28. 제25항에 있어서, 상기 마이크로명령의 제3의 정보(P1)에 응답해서 제3의 입출력비트가 선택됨과 동시에 상기 제3의 입출력비트가 출력비트로써 지정되고, 상기 연산수단(13)의 캐리정보(C) 및 제로정보(Z)의 적어도 한쪽에 응답하는 신호를 제3의 입축력비트에서 출력하는 단일칩 마이크로컴퓨터.
  29. 제25항에 있어서, 상기 마이크로명령의 제2의 정보(P0)에 응답해서 제2의 입출력비트가 선택됨과 동시에 상기 제2의 입출력비트가 입력비트로써 지정되고, 상기 마이크로명령의 제3의 정보(P1)에 응답해서 제3의 입출력비트가 선택됨과 동시에 상기 제3의 입출력비트가 출력비트로써 지정되고, 상기 제2의 입출력비트에서 입력되는 정보에 응답해서 상기 제3의 입출력비트로 부터의 출력을 제어하는 단일칩 마이크로컴퓨터.
  30. 제25항에 있어서, 상기 제1의 프로세서는 상기 메모리에 저장된 정보에 응답해서 상기 연산회로 (13)이 다음에 실행하는 명령이 저장되는 상기 마이크로명령의 번지를 선택하는 수단 (21)을 또 포함하며, 상기 마이크로명령의 제2의 정보(P0)에 응답해서 제2의 입출력비트가 선택됨과 동시에 상기 제2의 입출력비트가 입력비트로써 지정되고, 상기 선택하는 수단 (21)은 상기 제2의 입출력비트에서 입력되는 정보에 응답해서 상기 번지의 선택을 실행하는 단일칩 마이크로컴퓨터.
  31. 제1항∼제30항중 어느 한항에 있어서, 상기 마이크로컴퓨터는 제2의 프로세서 (10b)를 또 포함하며, 상기 제1의 프로세서 (10a)와 제2의 프로세서 (10b)는 동일한 구성으로 되어 있는 단일칩 마이크로컴퓨터.
  32. 제31항에 있어서, 상기 제1 및 제2의 프로세서는 제1의 인터페이스수단(19)를 거쳐서 접속되는 단일칩 마이크로컴퓨터.
  33. 제32항에 있어서, 상기 제1의 인터페이스수단 (19)는 상기 제1 및 제2의 프로세서의 양쪽에서 액세스가능한 다수비트의 세마포플래그 (S)로 구성되는 단일칩 마이크로컴퓨터.
  34. 제1항∼제30항중 어느 한항에 있어서, 상기 마이크로컴퓨터는 제3의 프로세서 (5)를 또 포함하며, 상기 제3의 프로세서 (5)는 CPU (2)를 포함하고, 상기 CPU (2)는 공통버스 (9)를 거쳐서 상기 제1의 프로세서 (10a)에 결합되는 단일칩 마이크로컴퓨터.
  35. 제34항에 있어서, 상기 제1의 프로세서 (10a)와 상기 제3의 프로세서 (5)는 다른 명령세트를 갖는 단일칩 마이크로컴퓨터.
  36. 제34항에 있어서, 상기 제3의 프로세서 (5)는 인터럽트처리수단 (2)를 포함하고, 상기 제1의 프로세서 (10a)는 인터버트 허가요구수단 (47, 56)을 포함하며,
    상기 인터럽트 처리수단 (2)와 상기 인터럽트 허가요구수단 (47, 56)이 결합되는 단일칩 마이크로컴퓨터.
  37. 제34항에 있어서, 상기 제1의 프로세서(10a)는 제2의 인터페이스수단 (16) 및 제1의 프로세서버스 (46)을 또 포함하며, 상기 제1의 프로세서버스 (46)은 제2의 인터페이스수단 (16) 및 상기 공통버스 (9)를 거쳐서 상기 제3의 프로세서 (5)와 결합되는 단일칩 마이크로컴퓨터.
  38. 제 37항에 있어서, 상기 제1의 프로세서버스(46)은 상기 제3의 프로세서(5)에서 직접 액세스가능한 버스인 단일칩 마이크로컴퓨터.
  39. 제 34항에 있어서, 상기 공통버스(9)는 데이타버스(DB) 및 어드레스버스(AB)를 포함하고, 상기 제2의 인터페이스수단(16)은 상기 제2의 프로세서(5)의 리드신호선(RD1), 라이트신호선(WR1)에 접속되고, 상기 리드신호선(RD1), 라이트신호선(WR1) 및 어드레스버스(AB)의 신호에 응답해서 상기 제 1의 프로세서(10a)와 상기 제3의 프로세서(5) 사이의 데이타전송이 이루어지는 단일칩 마이크로컴퓨터.
  40. 제39항에 있어서, 상기 마이크로컴퓨터(1)은 상기 공통버스(9)에 접속된 메모리수단(3, 4) 및 외부단자접속수단(199)를 포함하고, 상기 제1의 프로세서(10a)는 제2의 프로세서버스(31)과 상기 제2의 프로세서버스(31), 상기 데이타버스(DB) 및 상기어드레스버스(AB)에 접속된 메모리액세스수단(53, 54, 48, 49, RD2, WR2, BRQ, BAK, REF)를 포함하고, 상기 메모리액세스수단은 상기 제1의 프로세서(10a)에 대해서 버스점유권요구를 하는 요구수단(BRQ)를 포함하며, 상기 제1의 프로세서(10a)의 리드전용 메모리(11)의 명령필드에 기술한 명령의 실행에 의해 상기 메모리수단(3, 4) 및 외부단자접속수단(199)을 액세스하는 단일칩 마이크로컴퓨터.
  41. 제40항에 있어서, 상기 외부단자접속수단(199)는 상기 마이크로컴퓨터(1)의 외부의 메모리에 접속되고, 상기 메모리액세스수단(53, 54…)은 상기 명령의 실행에 의해 상기 외부의 메모리를 액세스하는 단일칩 마이크로컴퓨터.
  42. 제41항에 있어서, 상기 외부의 메모리는 다이나믹 랜덤액세스 메모리이며,
    상기 메모리액세스수단(53, 54…)은 상기 명령의 실행에 의해 상기 다이나믹 랜덤액세스메모리의 재생을 실행하는 단일칩 마이크로컴퓨터.
  43. 제25항에 있어서, 상기 마이크로컴퓨터(1)은 상기 제1의 프로세서(10a)와 공통버스(9)를 거쳐서 결합되는 제3의 프로세서(5) 및 상기 입출력비트(130)에 결합되는 단자수단(67)을 또 포함하고, 상기 입출력비트(130)은 입력수단(131) 및 출력수단(132)를 포함하고, 상기 입력수단(131)은 상기 단자수단(67) 및 상기 출력수단(132)로 부터의 신호를 선택적으로 입력으로 하고, 상기 공통버스(9) 및 상기 제1의 프로세서(10a)로 선택적으로 신호를 출력하고, 상기 출력수단(132)는 상기 공통버스(9) 및 상기 제1의 프로세서(10a)로 부터의 신호를 선택적으로 그 입력으로 하고, 상기 단자수단(67) 및 상기 입력수단(131)로 선택적으로 신호를 출력하는 단일칩 마이크로컴퓨터.
  44. 제43항에 있어서, 상기 출력수단(132)는 상기 공통버스(9) 및 상기 제1의 프로세서(10a)의 어느 하나를 입력으로 해서 선택하는 제1의 스위치수단(EPSW1), 상기 단자수단(67) 및 상기 입력수단(131)의 어느 하나를 출력으로 해서 선택하는 제2의 스위치수단(EPSW2, 3) 및 상기 단자수단(67) 또는 상기 입력수단(131)로의 출력기능을 설정하는 제3의 스위치수단(EPSW2, 161)을 포함하는 단일칩 마이크로컴퓨터.
  45. 제 44항에 있어서, 상기 제3의 스위치수단(EPSW2, 161)로 제어되는 출력기능은 입력된 신호를 제1의 래치수단(140)에 래치해서 출력하는 기능, 상기 공통버스(9)에서 입력된 신호를 제2의 래치수단에 래치하고, 상기 제1의 프로세서출력에 응답해서 상기 제2의 래치수단에서 제3의 래치수단으로 전송하고, 상기 제3의 래치수단의 출력을 출력하는 기능, 출력하고 있는 제4의 레치수단의 출력을 반전하는 기능 및 출력을 금지하는 기능의 어느 하나인 단일칩 마이크로컴퓨터.
  46. 제 43항에 있어서, 상기 입력수단(131)은 상기 공통버스(9)로의 출력으로써 상기 단자수단(67) 및 상기 출력수단(132)의 어느 하나를 출력으로 해서 선택하는 제4의 스위치수단(EPSW3, 4), 상기 제1의 프로세서(10a)로의 출력으로써 상기 단자수단(67) 및 상기 출력수단(132)의 어느 하나를 출력으로 해서 선택하는 제5의 스위치수단(ESPW4) 및 상기 단자수단(67)로 부터의 입력기능을 설정하는 제6의 스위치수단(EPSW4, 158)을 포함하는 단일칩 마이크로컴퓨터.
  47. 제 46항에 있어서, 상기 제6의 스위치수단(EPSW4, 158)로 설정되는 기능은 양에지 검출기능, 정에지 검출기능, 부에지 검출기능 및 외부단자정보를 증폭기를 거쳐서 전달하는 기능의 어느것인가 하나인 단일칩 마이크로컴퓨터.
  48. 불휘발성 반도체 메모리소자를 포함하는 불휘발성 스위치회로(EPSW)로써,
    상기 스위치회로는 각각의 드레인전극을 접속하고, 공통의 게이트 배선에 의해 접속된 p채널MOS트랜지스터(165, 166)과 n채널MOS트랜지스터(167, 168)의 2개의 쌍을 가지며, 각각의 서로의 쌍의 드레인전극과 게이트전극을 접속하고, 각각의 p채널 MOS트랜지스터의 소스전극을 제1의 전원선(174)에 접속해서 이루어지는 교차결합회로, 상기 각 트랜지스터쌍을 구성하는 n채널MOS트랜지스터의 적어도 한쪽의 소스전극과 제2의 전원선(175)사이에 마련되고, 상기 불휘발성 반도체메모리소자(170)을 포함하는 불휘발성 반도체메모리회로(184)를 포함하는 불휘발성 스위치회로.
  49. 제 48항에 있어서, 상기 불휘발성 반도체메모리회로(184)는 상기 트랜지스터쌍을 구성하는 n채널MOS트랜지스터(168)의 소스전극에 그 한쪽의 전극이 접속된 고내압n채널MOS트랜지스터(168) 및 상기 n채널MOS트랜지스터(168)의 다른쪽의 전극과 상기 제 2의 전원선에 접속된 상기 불휘발성반도체메모리소자(170)을 포함하며, 상기 불휘발성 스위치회로는 상기 불휘발성반도체메모리소자(170)으로의 라이트회로(171)을 또 포함하는 불휘발성 스위치회로.
  50. 제 44항∼제47항 중 어느 한 항에 있어서, 상기 제1∼제6의 스위치수단은 각각의 드레인전극을 접속하고, 공통의 게이트배선에 의해 접속된 p채널MOS트랜지스터(165, 166)과 n채널MOS트랜지스터(167, 168)의 2개의 쌍을 가지며, 각각 서로의 쌍의 드레인전극과 게이트전극을 접속하고, 각각의 p채널MOS트랜지스터의 소스전극을 제1의 전원선(174)에 접속해서 이루어지는 교차결합회로, 상기 각 트랜지스터쌍을 구성하는 n채널MOS트랜지스터의 적어도 한쪽의 소스전극과 제2의 전원선(175)사이에 마련되고, 상기 불휘발성반도체메모리소자(170)을 포함하는 불휘발성 반도체메모리회로(184)를 포함하는 단일칩 마이크로컴퓨터.
  51. 제 31항에 있어서, 상기 마이크로컴퓨터(1)은 제3의 프로세서(5)를 또 포함하며, 상기 제1의 프로세서(10a)와 상기 제2의 프로세서(10b)는 제1의 인터페이스수단(19)를 거쳐서 결합되고, 상기 제1 및 제2의 프로세서(10a, 10b)와 상기 제3의 프로세서(5)는 제2의 인터페이스수단(16)을 거쳐서 결합되는 단일칩 마이크로컴퓨터.
  52. 반도체 기판상에 처리장치(6)을 포함해서 구성된 마이크로컴퓨터(1)로써, 상기 마이크로컴퓨터(1)은 공통버스 및 상기 공통버스(9)에 결합가능하며, 또한 그 내부로 전기적으로 라이트가능한 불휘발성 반도체메모리소자를 포함해서 구성된 회로장치(4, 11, 14, 7, 8, 199)를 포함하며, 상기 마이크로컴퓨터는 외부에서 부여되는 신호(209)에 응답해서 상기 처리장치(6)에 의한 명령실행동작을 실행하는 제1의 모드에서 상기 회로장치로의 정보의 라이트가 가능한 제2의 모드로 전환하는 단일칩 마이크로컴퓨터.
  53. 제 52항에 있어서, 상기 마이크로컴퓨터는 상기 마이크로컴퓨터의 외부에서 입력되는 불휘발성반도체 메모리소자의 선택신호(208)과 라이트 또는 리드를 지정하는 신호(209)를 받는 입출력수단(206)를 포함하며, 상기 라이트 또는 리드데이타는 상기 입출력수단(206)을 거쳐서 전송되는 단일칩 마이크로컴퓨터.
  54. 반도체 기판상에 제 1의 프로세서(10), 상기 제1의 프로세서(10)에 접속된 공통버스(9) 및 상기 공통버스(9)에 접속된 입출력수단(206)을 포함해서 구성된 단일칩 마이크로컴퓨터로써, 상기 제1의 프로세서는 리드전용 메모리(11), 상기 리드전용 메모리에 저장된 정보에 응답해서 동작하는 연산제어회로(12, 13) 및 상기 공통버스(9)와 상기 연산제어회로(12, 13)에 접속된 레지스터회로(210, 211)을 포함하며, 상기 입출력수단(206)을 거쳐서 입력되는 제어신호에 응답해서 상기 입출력수단(206)을 거쳐서 테스트데이타를 상기 레지스터회로(210, 211)로 전송하고, 상기 레지스터회로(210, 211)에 저장된 상기 테스트데이타에 응답해서 상기 연산제어회로를 동작시키는 단일칩 마이크로컴퓨터.
  55. 제 54항에 있어서, 상기 리드전용 메모리(11)은 그 어드레스에 의해서 구분되는 제1 및 제2의 영역을 포함하며, 상기 제1의 프로세서는 상기 입출력수단(206)을 거쳐서 입력되는 제어신호에 응답해서 상기 제1 및 제2의 영역에 저장되는 마이크로명령을 선택적으로 실행하는 단일칩 마이크로컴퓨터.
KR1019890013950A 1988-09-30 1989-09-28 단일칩 마이크로 컴퓨터 KR0136594B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP63-244156 1988-09-30
JP24415688 1988-09-30

Publications (2)

Publication Number Publication Date
KR900005282A KR900005282A (ko) 1990-04-13
KR0136594B1 true KR0136594B1 (ko) 1998-10-01

Family

ID=17114596

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019890013950A KR0136594B1 (ko) 1988-09-30 1989-09-28 단일칩 마이크로 컴퓨터

Country Status (5)

Country Link
US (1) US5426744A (ko)
EP (1) EP0361525B1 (ko)
KR (1) KR0136594B1 (ko)
DE (1) DE68927907T2 (ko)
HK (1) HK1003582A1 (ko)

Families Citing this family (45)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5307464A (en) * 1989-12-07 1994-04-26 Hitachi, Ltd. Microprocessor and method for setting up its peripheral functions
JPH04195481A (ja) * 1990-11-28 1992-07-15 Hitachi Ltd シングルチツプマイクロコンピュータ及び多機能メモリ
US5396639A (en) * 1991-09-16 1995-03-07 Rohm Co., Ltd. One chip microcomputer having programmable I/O terminals programmed according to data stored in nonvolatile memory
JPH06150024A (ja) * 1992-11-10 1994-05-31 Nec Corp マイクロコンピュータ
FR2700402B1 (fr) * 1993-01-13 1995-04-07 Sgs Thomson Microelectronics Microcontrôleur à mémoire électriquement programmable multimode.
JP3904244B2 (ja) * 1993-09-17 2007-04-11 株式会社ルネサステクノロジ シングル・チップ・データ処理装置
US5488612A (en) * 1993-10-04 1996-01-30 International Business Machines, Corporation Method and apparatus for field testing field programmable logic arrays
US6735683B2 (en) 1994-09-14 2004-05-11 Hitachi, Ltd. Single-chip microcomputer with hierarchical internal bus structure having data and address signal lines coupling CPU with other processing elements
TW247949B (en) * 1994-11-10 1995-05-21 Motorola Inc Data processor with transparent operation during a background mode and method therefor
JPH096633A (ja) * 1995-06-07 1997-01-10 Internatl Business Mach Corp <Ibm> データ処理システムに於ける高性能多重論理経路の動作用の方法とシステム
US5784313A (en) * 1995-08-18 1998-07-21 Xilinx, Inc. Programmable logic device including configuration data or user data memory slices
US5701441A (en) * 1995-08-18 1997-12-23 Xilinx, Inc. Computer-implemented method of optimizing a design in a time multiplexed programmable logic device
US5761483A (en) * 1995-08-18 1998-06-02 Xilinx, Inc. Optimizing and operating a time multiplexed programmable logic device
US5838954A (en) * 1995-08-18 1998-11-17 Xilinx, Inc. Computer-implemented method of optimizing a time multiplexed programmable logic device
US5615167A (en) * 1995-09-08 1997-03-25 Digital Equipment Corporation Method for increasing system bandwidth through an on-chip address lock register
US5768562A (en) * 1995-09-26 1998-06-16 Altera Corporation Methods for implementing logic in auxiliary components associated with programmable logic array devices
ATE241170T1 (de) * 1995-10-06 2003-06-15 Patriot Scient Corp Architektur für einen risc-mikroprozessor
US5970255A (en) 1995-10-16 1999-10-19 Altera Corporation System for coupling programmable logic device to external circuitry which selects a logic standard and uses buffers to modify output and input signals accordingly
WO1997036245A1 (en) * 1996-03-25 1997-10-02 Advanced Micro Devices, Inc. Serial interface module and method
JPH1097385A (ja) * 1996-09-19 1998-04-14 Toshiba Corp ディスク記録再生装置及び同装置に適用するインターフェース制御装置
US5890199A (en) * 1996-10-21 1999-03-30 Ramtron International Corporation Data processor incorporating a ferroelectric memory array selectably configurable as read/write and read only memory
US6272257B1 (en) * 1997-04-30 2001-08-07 Canon Kabushiki Kaisha Decoder of variable length codes
US6259456B1 (en) 1997-04-30 2001-07-10 Canon Kabushiki Kaisha Data normalization techniques
US6421817B1 (en) 1997-05-29 2002-07-16 Xilinx, Inc. System and method of computation in a programmable logic device using virtual instructions
US6047115A (en) * 1997-05-29 2000-04-04 Xilinx, Inc. Method for configuring FPGA memory planes for virtual hardware computation
US6223301B1 (en) * 1997-09-30 2001-04-24 Compaq Computer Corporation Fault tolerant memory
US6898101B1 (en) * 1997-12-16 2005-05-24 Cypress Semiconductor Corp. Microcontroller with programmable logic on a single chip
US6467009B1 (en) * 1998-10-14 2002-10-15 Triscend Corporation Configurable processor system unit
JP3871461B2 (ja) * 1999-02-02 2007-01-24 ローム株式会社 シーケンス制御用マイクロコントローラ
KR100326223B1 (ko) * 1999-02-27 2002-02-27 다니구찌 이찌로오, 기타오카 다카시 메모리와 프로세서가 동일 칩 상에 형성된 마이크로 컴퓨터
US6851047B1 (en) 1999-10-15 2005-02-01 Xilinx, Inc. Configuration in a configurable system on a chip
US6600959B1 (en) * 2000-02-04 2003-07-29 International Business Machines Corporation Method and apparatus for implementing microprocessor control logic using dynamic programmable logic arrays
US6912601B1 (en) 2000-06-28 2005-06-28 Cypress Semiconductor Corp. Method of programming PLDs using a wireless link
US6721840B1 (en) 2000-08-18 2004-04-13 Triscend Corporation Method and system for interfacing an integrated circuit to synchronous dynamic memory and static memory
DE10056198A1 (de) * 2000-11-13 2002-02-14 Infineon Technologies Ag Kommunikationssystem zum Austausch von Daten unter Verwendung eines zusätzlichen Prozessors
US6857110B1 (en) * 2001-01-30 2005-02-15 Stretch, Inc. Design methodology for merging programmable logic into a custom IC
US6725364B1 (en) 2001-03-08 2004-04-20 Xilinx, Inc. Configurable processor system
JP2002323993A (ja) * 2001-04-25 2002-11-08 Nec Corp シングルチップマイクロコンピュータ並びにその試験方法及び試験プログラム
US7107374B1 (en) 2001-09-05 2006-09-12 Xilinx, Inc. Method for bus mastering for devices resident in configurable system logic
US6886092B1 (en) * 2001-11-19 2005-04-26 Xilinx, Inc. Custom code processing in PGA by providing instructions from fixed logic processor portion to programmable dedicated processor portion
DE10204344A1 (de) * 2002-02-01 2003-08-14 Systemonic Ag Konfigurierbares Bussystem
US7245527B2 (en) * 2005-05-16 2007-07-17 Freescale Semiconductor, Inc. Nonvolatile memory system using magneto-resistive random access memory (MRAM)
US7884672B1 (en) 2006-11-01 2011-02-08 Cypress Semiconductor Corporation Operational amplifier and method for amplifying a signal with shared compensation components
KR100961207B1 (ko) * 2008-10-02 2010-06-09 주식회사 하이닉스반도체 커맨드 생성회로 및 반도체 메모리 장치
US20100117242A1 (en) * 2008-11-10 2010-05-13 Miller Gary L Technique for packaging multiple integrated circuits

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3881173A (en) * 1973-05-14 1975-04-29 Amdahl Corp Condition code determination and data processing
GB1468642A (en) * 1975-01-07 1977-03-30 Burroughs Corp Data processing systems
US4192007A (en) * 1978-05-30 1980-03-04 Lorain Products Corporation Programmable ringing generator
US4197579A (en) * 1978-06-06 1980-04-08 Xebec Systems Incorporated Multi-processor for simultaneously executing a plurality of programs in a time-interlaced manner
US4320453A (en) * 1978-11-02 1982-03-16 Digital House, Ltd. Dual sequencer microprocessor
US4794558A (en) * 1979-06-12 1988-12-27 Motorola, Inc. Microprocessor having self-programmed eprom
US4349870A (en) * 1979-09-05 1982-09-14 Motorola, Inc. Microcomputer with programmable multi-function port
US4339657A (en) * 1980-02-06 1982-07-13 International Business Machines Corporation Error logging for automatic apparatus
US4387444A (en) * 1980-07-07 1983-06-07 Hughes Aircraft Company Non-volatile semiconductor memory cells
JPS57117027A (en) * 1981-01-13 1982-07-21 Nec Corp Signal sending and receiving circuit
EP0086307B1 (en) * 1982-02-11 1997-02-26 Texas Instruments Incorporated Microcomputer system for digital signal processing
US4586127A (en) * 1982-11-03 1986-04-29 Burroughs Corp. Multiple control stores for a pipelined microcontroller
DE3241357A1 (de) * 1982-11-09 1984-05-10 Siemens AG, 1000 Berlin und 8000 München Vorrichtung zur mikrobefehls-bereitstellung fuer mindestens zwei unabhaengig arbeitende funktionseinheiten in einem integrierten, mikroprogrammierten elektronischen baustein und verfahren zu ihrem betrieb
US4578750A (en) * 1983-08-24 1986-03-25 Amdahl Corporation Code determination using half-adder based operand comparator
US4609986A (en) * 1984-06-14 1986-09-02 Altera Corporation Programmable logic array device using EPROM technology
JPS61285567A (ja) * 1985-08-06 1986-12-16 Minolta Camera Co Ltd ワンチツプマイクロコンピユ−タ
JPS6267800A (ja) * 1985-09-20 1987-03-27 Hitachi Ltd 半導体集積回路装置
JPS63175300A (ja) * 1987-01-16 1988-07-19 Hitachi Ltd 半導体集積回路装置
US5117498A (en) * 1988-08-19 1992-05-26 Motorola, Inc. Processer with flexible return from subroutine

Also Published As

Publication number Publication date
EP0361525A3 (en) 1991-03-13
KR900005282A (ko) 1990-04-13
US5426744A (en) 1995-06-20
HK1003582A1 (en) 1998-10-30
EP0361525B1 (en) 1997-03-26
DE68927907T2 (de) 1997-10-09
EP0361525A2 (en) 1990-04-04
DE68927907D1 (de) 1997-04-30

Similar Documents

Publication Publication Date Title
KR0136594B1 (ko) 단일칩 마이크로 컴퓨터
US5426769A (en) System and method for producing input/output expansion for single chip microcomputers
US5511207A (en) Program control circuit determining the designated number of times a sequence of instructions is repetitively executed to prevent further execution of a jump instruction
CA1036713A (en) Peripheral interrupt priority resolution in a micro program data processor having plural levels of subinstruction sets
JPH03130994A (ja) 連想メモリ装置およびそれを用いたマイクロコンピュータ
JPS62249226A (ja) プログラム可能論理装置およびその方法
US4926318A (en) Micro processor capable of being connected with a coprocessor
US3651473A (en) Expandable interlock exchange for multiprocessing systems
JPS61170828A (ja) マイクロプログラム制御装置
US6012138A (en) Dynamically variable length CPU pipeline for efficiently executing two instruction sets
US4991086A (en) Microprogram controlled microprocessor having a plurality of internal buses and including transfer register designation system
US6658561B1 (en) Hardware device for executing programmable instructions based upon micro-instructions
JPH02161544A (ja) シングルチップマイクロコンピュータ
KR940002478B1 (ko) 정보 처리장치
US5828859A (en) Method and apparatus for setting the status mode of a central processing unit
EP0232796B1 (en) Pseudo-microprogramming in microprocessor with compressed control rom and with strip layout of busses, alu and registers
JPS6362778B2 (ko)
KR920003479Y1 (ko) 퍼스널 컴퓨터의 그래픽 카드의 데이타 전송회로
JP2000181899A (ja) マイクロプロセッサ、共用端子制御方法およびリセット処理実行方法
KR950006585B1 (ko) 마이크로프로그램 제어장치 및 그 제어방법
JPH0442329A (ja) データ処理装置
JPS60198639A (ja) データ処理装置
JPH02176883A (ja) マイクロコンピュータ
JP2003296130A (ja) マイクロコンピュータ
JPH05242008A (ja) データ処理装置

Legal Events

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

Payment date: 20030107

Year of fee payment: 6

LAPS Lapse due to unpaid annual fee