KR100275059B1 - 확장가능한 중앙 처리 장치 - Google Patents

확장가능한 중앙 처리 장치 Download PDF

Info

Publication number
KR100275059B1
KR100275059B1 KR1019930023651A KR930023651A KR100275059B1 KR 100275059 B1 KR100275059 B1 KR 100275059B1 KR 1019930023651 A KR1019930023651 A KR 1019930023651A KR 930023651 A KR930023651 A KR 930023651A KR 100275059 B1 KR100275059 B1 KR 100275059B1
Authority
KR
South Korea
Prior art keywords
control
command
execution device
signal
receiving
Prior art date
Application number
KR1019930023651A
Other languages
English (en)
Other versions
KR940012160A (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 KR940012160A publication Critical patent/KR940012160A/ko
Application granted granted Critical
Publication of KR100275059B1 publication Critical patent/KR100275059B1/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
    • 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 or look ahead
    • G06F9/3818Decoding for concurrent execution
    • G06F9/3822Parallel decoding, e.g. parallel decode units
    • 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/28Enhancement of operational speed, e.g. by using several microcontrol devices operating in parallel
    • 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/30098Register arrangements
    • G06F9/30101Special purpose registers
    • 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/30145Instruction analysis, e.g. decoding, instruction word fields
    • 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/30181Instruction operation extension or modification
    • 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/30181Instruction operation extension or modification
    • G06F9/30196Instruction operation extension or modification using decoder, e.g. decoder per instruction set, adaptable or programmable decoders
    • 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 or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
    • 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 or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
    • G06F9/3893Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled in tandem, e.g. multiplier-accumulator
    • G06F9/3895Concurrent instruction execution, e.g. pipeline or 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 or 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

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)
  • Microcomputers (AREA)
  • Executing Machine-Instructions (AREA)
  • Programmable Controllers (AREA)

Abstract

새롭거나 종래의 CPU 의 아키텍쳐를 수정하므로써, 새롭거나 종래의 CPU 가 다양한 소비자 욕구에 부합하도록 간단하고 저렴한 비용으로 새로운 명령이 부가되도록 확정될 수 있다. CPU와 관계하는 "확장가능한" 이란 용어는 새로운 명령을 기존의 CPU 회로를 크게 변화시킴이 없이 어떤 지정된 회로를 부가하므로써 CPU 에 간단히 부가되는 것을 의미한다.
일부 실시예에서, 부가적으로 지정된 회로는 CPU 제어 확장 회로(52 또는 152) 형태의 제어 회로를 포함할 수 있다. 일부 실시예에서, 상기 부가 회로는 실행 장치 확장 회로(153) 형태의 비제어 회로를 포함할 수 있다.

Description

확장가능한 중앙 처리 장치
제1도는 본 발명의 일실시예를 따르는 데이타 처리 시스템(10)을 도시한 블럭도.
제2도는 본 발명의 일실시예를 따르는 제1도의 확장가능한 중앙 처리 장치(12)를 도시한 블럭도.
제3도는 본 발명의 일실시예를 따르는 제1도의 또다른 확장가능한 중앙 처리 장치(12')를 도시한 블럭도.
제4도는 본 발명의 일실시예를 따르는 제2도의 제1상태 시퀀서(58)를 도시한 블럭도.
제5도는 본 발명의 일실시예를 따르는 제3도의 제1상태 시퀀서(158)를 도시한 블럭도.
제6도는 본 발명의 일실시예를 따르는 제2도의 제1상태 시퀀서(68)를 도시한 블럭도.
제7도는 본 발명의 일실시예를 따르는 제3도의 제2상태 시퀀서(168)를 도시한 블럭도.
제8도는 본 발명의 일실시예를 따르는 제2도의 실행 장치(156) 일부분과 그와 동일한 제3도의 실행 장치(156)를 도시한 블럭도.
* 도면의 주요부분에 대한 부호의 설명
12 : CPU 18 : RAM
20 : ROM
[발명의 분야]
본 발명은 일반적으로 중앙 처리 장치에 관한 것이며, 특히 확장기능한 중앙 처리 장치에 관한 것이다.
[발명의 배경]
중앙 처리 장치(CPU)는 일반적으로 마이크로컴퓨터 집적 회로(MCU)의 주 "두뇌(brain)"이다. MCU는 통상적으로 CPU 이외에 메모리, 타이머 및 버스 인터페이스와 같은 하나이상의 온-보드(on-board) 주변 장치 또는 섹션(sections)을 포함한다. 그러나, CPU는 통상적으로 MCU를 제어하기 위하여 사용된 소프트웨어 명령을 수신하여 해석하는 역활을 수행한다.
하나의 특정 CPU 가 각종 MCU 상에서 사용될 수 있다. 만일 동일한 CPU가 각종 MCU 상에서 사용된다면, 이들 MCU는 일반적으로 "군(family)"(예를들어, 미국, 텍사스, 오스틴 소재의 모토로라 사이에서 활용되는 마이크로컴퓨터 MC68HC05군)을 형성한다. 제조자 및 소비자 관점에서 볼때, 상기 CPU를 각족 MCU에 사용할 수 있는 장점이 있다. 한가지 장점으로서 상기 CPU를 사용하는 일군의 MCU들 간의 소프트웨어 호환성을 들 수 있다.
그러나, 일군의 MCU가 통상적으로 광범위한 장치에 사용되기 때문에 여러 문제가 초래된다. 일부 MCU 소비자들은 주문 명령(custom instructions)(한편으론, 특정 응용 명령이라 칭함), 예를 들어 디지탈 신호 처리 명령 또는 퍼지 논리 명령을 필요로 한다. 그러나, 그외 다른 MCU 소비자들은 상기 주문 명령을 필요로 하지 않고 상기 주문 명령이 CPU의 일부로서 포함되는 관계로 인한 초과 비용을 지불하기를 꺼린다. 따라서, 특정 응용 명령 및 비용간에 트레이드-오프(trade-off)가 행해질지라도, 수많은 MCU 소비자들은 CPU 설계자에 의해 행해진 트레이드 오프에 만족하지 않는다.
두번째 문제는 수년동안 거래되어온 일군의 MCU로 인해 초래된다. 그러나, MCU 소비자들이 필요로 하는 조건은 빠른 속도로 변화하고 있다. 예를 들어, 불과 5년전에, MCU 소비자들은 퍼지 논리 명령을 필요로 하였다. 오늘날, 상당수의 MCU 소비자들에게 필요로 되었던 퍼지 논리 명령들이 일반화되어 있다. 결과적으로, CPU의 수명동안 가장 필요로되는 특정 응용 명령들을 내장한 CPU를 설계하는 것이 매우 어렵게 되었다. 실제로, 상당수의 MCU 소비자들에게 장래에 요구되는 일부 특정 응용 명령은 아직도 알려지지 않고 있다.
세번째 문제는 일부 MCU 소비자들이 기존의 저가 CPU에 의해 만족스럽게 수행될 수 없는 약간의 임계 소프트웨어 루틴(critical software routiones) 을 갖고 있기 때문에 초래된다. 그러므로, 이들 MCU 소비자들은 약간의 임계 소프트웨어 루틴을 실행하기 위해서 더욱 강력하고 값비싼 CPU 를 내장한 MCU를 사용하기를 강요받는다. 그러나, 더욱 강력하고 값비싼 CPU 로 인해 전력 소모가 증대되고 소비자에게 비용 부담을 증대 시킨다.
가격에 매우 민감한 MCU 장치, 예를 들어 마이크로 컴퓨터의 MC68HC05군과 같은 저단(low-end) MCU 장치는 상술된 문제에 매우 민감하다.
[발명의 요약]
본 발명에 따라서 상술된 문제점이 해결되고 그외의 다른 장점을 성취할 수 있다. 한가지 형태로서, 본 발명의 확장가능한 중앙 처리 장치를 들 수 있다.
일실시예에서, 본 발명은 실행 장치를 갖는 중앙 처리 장치이다. 실행 장치는 제1세트의 제어 신호를 수신하는 제1세트의 제어 입력을 포함한다. 제1세트의 제어 신호는 모든 실행 장치를 제어할 수 있다. 실행 장치는 또한 제2 세트의 제어 신호를 수신할 수 있는 제2세트의 제어 입력을 포함한다. 제2세트의 제어 신호는 모든 실행 장치를 제어할 수 있다. 실행 장치는 또한 중앙 처리 장치내의 모든 상태 레지스터를 포함한다. 중앙 처리 장치는 또한 실행 장치에 결합된 제1제어 유닛을 갖는다. 제1제어 유닛은 제1세트의 제어 신호를 제공한다.
첨부한 도면을 참조하여 이하에 본 발명에 대해서 상세하게 서술된 것이다.
[발명의 상세한 설명]
간단하면서도 값싼 방식으로 새로운 명령들을 중앙 처리 장치(CPU)에 부가하는 것이 필요하게 되었다. 새롭거나 종래의 CPU의 아키텍쳐를 수정하므로써, 새롭거나 종래의 CPU 는 새로운 명령이 비교적 간단하고 값싼 방식으로 부가되도록 확장될 수있다. CPU 와 관련하여 "확장 가능한" 이라는 용어는 새로운 명령들이 기존의 CPU 회로망을 특별히 변경시킴이 없이도 어떤 지정된 회로망을 부가하므로써 간단히 CPU 에 부가되는 것을 의미한다.
본 발명을 이용하면 확장가능한 CPU 는 소비자가 요구 하는 보다 저가의 기본적인 명령 세트로 설계될 수 있다. 간단하면서도 저가의 새로운 명령들을 확장가능한 CPU 에 부가할 수 있기 때문에, 특정 응용 명령을 필요로 하는 소비자들은 저렴한 가격으로 하나이상의 특정 응용 명령을 부가할 수 있다. 게다가, 만일 새로운 알고리즘이 개발되거나 장래에 대중화 된다면, 새로운 명령들이 확장가능한 CPU 에 부가되어 간단하면서도 값싼 방식으로 새로운 알고리즘을 구현할 수 있다.
본 발명을 이용하면, 종래의 CPU 시스템-레벨 아키텍쳐, 즉 서술된 실시예에서 MC68HC05 CPU 아키텍쳐는 새로운 명령들을 부가하기 위하여 특정한 회로를 변경함이 없이도 수정되고 확장될 수 있다. 대신에, 새로운 명령들을 실행하기 위해선 어떤 소정의 회로가 부가될 필요가 있다. MC68HC08 이라 명명된 확장가능한 CPU 는 MCU 의 기존 MC68HC05 군과 호환될 수 있는 오브젝트 코드(object code)이다.
종래 CPU 는 다음과 같은 수정을 통해서 확장가능하게 된다. (1) 하나이상의 제어 장치가 실행 장치의 제어 신호를 구동시킴 (2) 실행 장치의 프로그래머의 모델에 모든 레지스터(조건부 코드 래지스터 포함)를 위치화 시킴(3) 상기 시퀀스 회로를 수정함 (4) 약간의 제어 신호를 부가함, 일단 CPU 가 확장가능하게 되면, 상기 확장가능한 CPU 회로에 대한 특정한 변경없이도 부가적인 명령들을 부가할 수 있다.
새로운 명령들은 단순히 제2제어 장치(64) 및 제2상태 시퀀서(68)를 부가하므로써 부가될 수 있다. 대부분의 제2 제어 유닛(64)은 원 제어 장치(54)의 복사판이고 일부 제2상태 시퀀서(68)는 원 상태 시퀀서(58)의 복사판이라는 것을 주목하자. 또한, 원 제어 장치(54) 및 제2제어 장치(64)는 실행 장치(56)내의 모든 자원에 완전히 액세스된다는 것을 주목하자.
실행 장치(156)의 기존 자원을 활용하는 새로운 명령을 부가하는 것 이외에도, 새로운 자원들은 또한 실행 장치 자체에 부가될 수 있다. 실행 장치의 내부 버스는 실행 장치의 물리적 에지(physical edge)로 루팅된다. 따라서, 실행 장치 익스텐션(extention)(153)은 하나이상의 실행 장치 내부 버스에 부가되고 직접 결합되어 레지스터, 또다른 연산 논리 장치(ALU), 특정 기능 회로 또는 임의 다른 소망 회로를 부가하므로써 상기 실행 장치의 기능을 증대시킨다.
결과적으로, 본 발명은 회로가 확장가능한 CPU에 쉽게 부가되어 현재 및 미래의 여러 소비자가 필요로 하는 것에 부합되도록 종래 CPU를 확장시킨다. 결과적으로, 여러 소비자가 부담해야 하는 비용이 상당히 절감되도록 한다.
[도면의 설명]
신호, 상태 비트 또는 유사한 장치가 논리적으로 참인지 거짓인지를 나타내고자 할때, 용어 "긍정(assert)" 및 "부정(negate)"가 사용된다. 만일 논리적으로 참 상태가 논리 레벨 1이라면, 논리적으로 거짓 상태는 논리 레벨 0이 될 것이다. 그리고, 만일 논리적으로 참 상태가 논리레벨 0 이라면, 논리적으로 거짓 상태는 논리 레벨 1 이 될 것이다.
용어 "버스"는 다수의 신호와 관계하여 사용되는데, 즉 데이타, 어드레스, 제어 또는 상태와 같은 각종 타입의 정보를 전송하기 위하여 사용된다.
제1도는 데이타 처리 시스템(10)의 일실시예를 도시한 것이다. 데이타 처리 시스템 회로(10)는 확장가능한 중앙 처리 장치(CPU) 회로(12), 회로의 시스템 통합 섹션 (system integration section of circuitry)(14), 회로의 시리얼 섹션(16), 랜덤 액세스 메모리 (ROM) 회로(18), 판독 전용 메모리(ROM) 회로, 다른 메모리 회로(22) (예를 들어, 전기적으로 소거가능한 프로그래머블 판독 전용 메모리, EEPROM), 포토 논리 회로(24), 외부 버스 인터페이스 회로(26), 회로의 타이머 섹션(28) 및 직접 메모리 액세스(DMA) 회로(30)를 갖으며, 상기 구성요소 각각은 버스 회로(32)에 양방향으로 결합된다. 확장가능한 CPU (12) 및 시스템 통합 섹션(14)은 버스 회로(34)를 경유하여 서로 양방향 결합된다. 확장가능한 CPU(12)는 버스 회로(36)를 경유하여 DMA(30)에 결합된다.
시스템 통합 섹션(14)는 신호를 수신하여 집적된 회로핀(38)을 경유하여 데이터 처리 시스템(10)의 외부에 상기 신호를 전송한다. 시리얼 섹션(16)은 신호를 수신하여 집적 회로핀(40)을 경유하여 데이타 처리 시스템(10)의 외부에 상기 신호를 전송한다. 메모리 타입에 따라서, 다른 메모리(22)는 선택적으로 신호를 수신하여 집적 회로핀(42)을 경유하여 데이타 처리 시스템(10)의 외부에 상기 신호를 선택적으로 전송한다. 포트 논리 회로(24)는 신호를 수신하여 집적 회로핀(44)을 경유하여 데이타 처리 시스템(10) 외부에 상기 신호를 전송한다. 외부 버스 인터페이스(26)는 신호를 수신하여 집적 회로핀(46)을 경유하여 데이타 처리 시스템(10)의 외부에 전송한다. 그리고, 타이머 섹션(28)은 신호를 수신하여 집적 회로(48)을 경유하여 데이타 처리 시스템(10) 외부에 상기 신호를 전송한다.
제2도는 본 발명의 일실시예를 따르는 제1도의 확장가능한 중앙 처리 장치(CPU)(12)를 도시한 블럭도이다. 확장가능한 CPU(12)는 두개의 주부분으로 분할되는데, 즉 CPU 코어(core)회로(50) 및 CPU 제어 확장 회로(52)로 분할된다.
CPU 코어(50)는 제어 유닛 회로(54), 실행 장치(EU) 회로(56) 및 제1 상태 시퀀스 회로(58)를 구비한다. 제어 장치(54)는 제어 PLA 신호를 랜덤 제어 논리 회로(62)에 전송하는 프로그래머블 논리 어레이(제어 PLA) 를 구비한다. 랜덤 제어 논리 회로(62)는 동기 제어 신호를 실행 장치(56)에 전송한다. 랜덤 제어 논리 회로(62)는 실행 장치(56)로부터 나오는 상태 신호를 수신한다. 제어 PLA(60)는 신호를 제1상태 시퀀서(58)에 전송하고 그로부터 나오는 신호를 수신한다. 랜덤 제어 논리 회로(62)는 디스에이블 회로(63)를 포함한다.
CPU 제어 확장 회로(52)는 제어 유닛 회로(64) 및 제2상태 시퀀스 회로(68)를 구비한다. 제어 유닛(64)은 제어 ROM 신호를 랜덤 제어 논리 회로(72)에 전송하는 제어 판독 전용 메모리(제어 ROM) 회로(70)를 갖는다. 랜덤 제어 논리 회로(72)는 동기 제어 신호를 실행 장치(56)에 전송한다. 랜덤 제어 논리 회로(72)는 실행 장치(56)로부터 나오는 상태 신호를 수신한다. 랜덤 제어 논리 회로(72)는 디스에이블 회로(73)를 포함한다.
제어 ROM(70)은 제2상태 시퀀스(68)에 신호를 전송하여 그로부터 나오는 신호를 수신한다. 제어 ROM(70)은 또한 신호를 제1상태 시퀀서 (58)에 전송한다. 제2상태 시퀀서(68)는 하나이상의 신호를 랜덤 제어 논리 회로(62)에 전송하며, 제2상태 시퀀서(68)는 또한 신호를 랜덤 제어 논리회로(72)에 전송한다. 제2상태 기퀀서(68)는 제어 PLA(60)로부터 나오는 신호를 수신한다.
실행장치(56)는 버스(32)에 양방향으로 결합된다. 제1상태 시퀀서(58) 및 제2상태 시퀀서(68)는 버스(32)로 부터 나오는 명령을 수신하기 위하여 결합된다.
제3도는 본 발명의 일실시예를 따른 제1도의 확장가능한 중앙 처리 장치(CPU)(12')를 도시한 블럭도이다. 확장가능한 CPU(12')는 새개의 주부분으로 분할되는데, 즉 CPU 코어 회로(150), CPU 제어 확장 회로(152) 및 실행 장치 확장 회로(153)로 분할된다.
CPU 코어(150)는 제어 장치 회로(154), 실행 장치(EU) 회로(156) 및 제1상태 시퀀서 회로(158)를 구비한다. 제어 장치(154)는 제어 PLA 신호를 랜덤 제어 논리 회로 (162)에 전송하는 제어 프로그래머블 논리 어레이(제어 PLA) 회로(160)를 구비한다. 랜덤 제어 논리 회로(162)는 동기 제어 신호를 실행 장치(156)에 전송한다. 랜덤 제어 논리 회로 (162)는 실행 장치(156)로부터 나오는 상태 신호를 수신한다. 제어 PLA(160)는 제1상태 시퀀서(158)에 신호를 전송하고 그로부터 나오는 신호를 수신한다. 랜덤 제어 논리 회로(162)는 디스에이블 회로(163)를 포함한다.
CPU 제어 확장 회로(152)는 제어 장치 회로(164) 및 제2상태 시퀀서 회로(168)를 구비한다. 제어 장치(164)는 제어 ROM 신호를 랜덤 제어 논리 회로(172)에 전송하는 제어 판독 전용 메모리 (제어 ROM)를 구비한다. 게다가, 제어 장치(164)는 제어 ROM 확장 신호를 랜덤 제어 논리 확장 회로(175)에 전송하는 제어 판독 전용 메모리 (제어 ROM) 확장 회로 (171)를 구비한다. 랜덤 제어 논리 회로(172)는 동기 제어 신호를 실행 장치에 전송한다. 게다가, 랜덤 제어 논리 확장 회로(175)는 동기 제어 신호를 실행 장치 확장 회로(153)에 전송한다. 랜덤 제어 논리 회로(172)는 디스에이블 회로 (173)를 포함한다.
제어 ROM(170)은 신호를 제2상태 시퀀서(158)에 전송하여 그로부터 나오는 상기 신호를 수신한다. 제어 ROM(170)은 또한 신호를 제1상태 시퀀서(158)에 전송한다. 제2상태 시퀀서(168)는 하나이상의 신호를 랜덤 제어 논리 회로(162)에 전송한다. 제2상태 시퀀서(168)는 또한 신호를 랜덤 제어 논리 회로(172)에 전송한다. 제2상태 시퀀서(168)는 제어 PLA(160)로부터 나오는 신호를 수신한다.
실행 장치(156)는 버스(32)에 양방향으로 결합된다. 제1상태 시퀀서(158) 및 제2상태 시퀀서(168)는 버스(30)로부터 나오는 명령을 수신하기 위하여 결합된다. 게다가, 실행 장치 확장 회로(153)는 하나이상의 실행 장치(EU) 내부버스에 의해 실행 장치(156)에 결합된다.
제4도는 본 발명의 일실시예를 따르는 제2도의 제1상태 시퀀서(58)를 도시한 블럭도이다. 선택 멀티플렉서(MUX) 회로(80)는 제어 PLA(60)로부터 나오는 명령 신호의 엔드(end) 및 제어 ROM(70)으로부터 나오는 명령 신호의 엔드를 수신한다. 선택 멀티플렉서(MUX) 회로(82)는 제어 PLA(60)로 부터 나오는 룩어헤드 신호(Lookahead signal) 및 제어 ROM(70)으로부터 나오는 룩어헤드 신호를 수신한다. 상태 논리 회로(84)는 제어 PLA(60)로부터 나오는 다음 상태 신호를 수신한다.
MUX(80) 및 MUX(82) 각각은 제어 PAL(60)로부터 나오는 제어 전송신호를 수신한다. MUX(80)의 출력은 명령 레지스터 회로(86)의 제어 입력에 결합되고 상태 논리 회로(84)에 결합된다. MUX(82)의 출력은 옵코드(opcode)룩어 헤드 레지스터 회로(88)의 제어 입력에 결합된다. 옵코드 룩어헤드 레지스터(88)는 버스 (32)에 결합되어 명령을 수신한다. 명령 레지스터(86)는 옵코드 룩어헤드 레지스터(88)에 결합되어 명령을 수신한다.
디코더 회로(89)는 명령 레지스터(86)에 결합되어 명령을 수신한다. 디코더(89)는 상태 논리 회로(84)에 결합되어 상태 정보를 수신한다. 디코더(89)는 제 PLA(60)로 진행하는 제어 신호를 발생시킨다. 게다가, 제1상태 시퀀서(58)는 타이밍 신호(도시되지 않음)을 필요로 한다.
제5도는 본 발명의 일실시예를 따르는 제3도의 제1상태 시퀀서를 도시한 블럭도이다. 선택 멀티플렉서(MUX) 회로(90)는 제어 PLA(160)로부터 나오는 명령 신호의 엔드 및 제어 ROM(170)으로부터 나오는 명령 신호의 엔드를 수신한다. 선택 멀티플렉서(MUX) 회로(92)는 제어 PLA로 부터 나오는 룩어헤드 신호 및 제어 ROM(170)D으로부터 나오는 룩어헤드 신호를 수신한다. 상태 논리 회로(94)는 제어 PLA(160)로부터 나오는 다음 상태 신호를 수신한다.
MUX(90) 및 MUX(92) 각각은 제어 PAL(160)로부터 나오는 제어 전송신호를 수신한다. MUX(90)의 출력단은 명령 레지스터 회로(96)의 제어 입력에 결합되고 상태 논리 회로(94)에 결합된다. MUX(92)의 출력은 옵코드 룩어헤드 레지스터 회로(98)의 제어 입력에 결합된다. 옵코드 룩어헤드 레지스터(98)는 버스 (98)에 결합되어 명령을 수신한다. 명령 레지스터(96)는 옵코드 룩어헤드 레지스터(88)에 결합되어 명령을 수신한다.
디코더 회로(99)는 명령 레지스터(96)에 결합되어 명령을 수신한다. 디코더(99)는 상태 논리 회로(94)에 결합되어 상태 정보를 수신한다. 디코더(99)는 제 PLA(160)로 진행하는 제어 신호를 발생시킨다. 게다가, 제1상태 시퀀서(158)는 타이밍 신호(도시되지 않음)을 필요로 한다.
제6도는 본 발명의 일실시예를 따르는 제2상태 시퀀서(68)의 블럭도이다. 제어 장치 선택 논리 회로(101)는 제어 PLA(60)로부터 나오는 제어 전송 신호 및 제어 ROM(70)으로부터 나오는 명령 신호의 엔드를 수신한다. 제어 장치 선택 논리 회로(101)는 디스에이블 신호를 랜덤 제어 논리 회로(62)에 제공하며, 인에이블 신호를 랜덤 제어 논리 회로(72)에 전송하고 상기 인에이블 신호를 제어 ROM(70)에 제광한다. 선택적으로 제어 장치 선택 논리 회로(101)로 디스에이블 신호를 제어PLA(60)에 제공한다.
상태 논리 회로(104)는 카운터 회로(107)를 포함한다. 상태 논리 회로(104)는 제어 ROM(70)으로부터 나오는 다음 상태 신호를 수신한다. 명령 레지스터 회로(106)는 제어 ROM (70)으로부터 나오는 룩어헤드 신호를 수신한다. 명령 레지스터(106)는 버스(32)에 결합되어 명령을 수신한다. 카운터(107)는 버스(32)에 결합되어, 상기 카운터(107)가 상기 버스(32)를 거쳐 기록되도록 한다. 디코더 회로(109)는 명령 레지스터(106)에 결합되어 명령을 수신한다. 디코더 회로(109)는상태 논리 회로(104)에 결합되어 상태 정보를 수신한다. 디코더 회로(109)는 ROM(70)으로 진행하는 제어 신호를 발생시킨다. 게다가, 제2상태 시퀀서(68)는 타이밍 신호(도시되지 않음)을 필요로 한다. 제어 장치 선택 논리 회로(101)는 명령 레지스터(106)에 결합된다.
제7도는 본 발명의 일실시예를 따르는 제3도의 제2상태 시퀀서(168)의 블럭도이다. 제어 장치 선택 논리 회로(111)는 제어 PLA(160)로부터 나오는 제어 전송 신호 및 제어 ROM(70)으로부터 나오는 명령 신호의 엔드를 수신한다. 제어 장치 선택 논리 회로(111)는 디스에이블 신호를 랜덤 제어 논리 회로(162)에 제공하며, 인에이블 신호를 랜덤 제어 논리 회로(172)에 제공하고 상기 인에이블 신호를 제어 ROM(170)에 제공한다. 선택적으로, 제어 장치 선택 논리 회로(111)로 디스에이블 신호를 제어PLA(610)로 제공한다.
상태 논리 회로(114)는 카운터 회로(117)를 포함한다. 상태 논리 회로(114)는 제어 ROM(170)으로부터 나오는 다음 상태 신호를 수신한다. 명령 레지스터 회로(116)는 제어 ROM (170)으로부터 나오는 룩어헤드 신호를 수신한다. 명령 레지스터(116)는 버스(32)에 결합되어 명령을 수신한다. 카운터(117)는 버스(32)에 결합되는데, 그로인해 상기 카운터(117)는 버스(32)를 거쳐 기록된다. 디코더회로(119)는 명령 레지스터(116)에 결합되어 명령을 수신한다. 디코더(119)는 상태 논리(114)에 결합되어 상태 명령을 수신한다. 디코더(119)는 ROM(170)으로 진행하는 제어 신호를 발생시킨다. 게다가, 제2상태 시퀀서(168)는 타이밍 신호(도시되지 않음)을 필요로 한다. 제어 장치 선택 논리 회로(111)는 명령 레지스터(116)에 결합된다.
제8도는 제2도의 실행 장치(56)는 일부분의 일실시예를 도시한 것이다. 마찬가지로, 제8도는 제3도의 실행 장치(156) 일부분의 일실시예를 도시한 것이다. 제어 장치 선택 논리 회로(101)는 명령 레지스터(106)에 결합된다.
프로그램 카운터(하이)/증분기(inbrementer) 레지스터 회로(200)는 버스(202)로부터 나오는 정보를 수신하여 상기 정보를 버스(204)에 제공한다. 프로그램 카운터(로우)레지스터 회로(206)는 버스(202)로부터 나오는 정보를 수신하여 상기 정보를 버스(204)에 제공한다. 스택(stack)포인터 레지스터 회로(208)는 버스(202)로부터 나오는 정보를 수신하여 상기 정보를 버스(204)에 제공한다. 누산기 레지스터 회로(210)는 버스(202)로부터 나오는 정보를 수신하여 상기 정보를 버스(204)에 제공한다. 인덱스 레지스터 회로(212)는 버스(202)로부터 나오는 정보를 수신하여 상기 정보를 버스(204)에 제공한다.
일시적인 어드레스 레지스터(하이) 회로(temporary address register(high)(ircuit)(214)는 버스(204)로부터 나오는 정보를 수신하여 상기 정보를 버스(216)에 제공한다. 일시적인 어드레스 레지스터(로우) 회로(218)는 버스(202)로부터 나오는 정보룰 수신하여 상기 정보를 버스(216)에 제공한다. 데이타 버스 인터페이스 회로(220)는 버스(202)로부터 나오는 정보를 수신하여 상기 정보를 버스(216)에 제공한다. 상수 발생 논리 회로(222)는 정보를 버스(204)에 제공한다.
연산 논리 장치(ALU)(224)는 버스(204) 및 버스(216)로부터 나오는 데이타를 수신한다. ALU(224)는 플래그 회로(226)에 양방향으로 결합된다. 플래그 회로 (226)는 상태 코드 레지스터(228)에 양방향으로 결합된다. 상태 코드 레지스터(228)는 버스(202)로부터 나오는 정보를 수신하여 상기 정보를 버스(216)에 제공한다.
프로그램 카운터(하이)/증분기 레지스터(200) 및 일시적인 어드레스 레지스터(하이) (214) 각각은 정보를 하이 버스(232)에 제공한다. 어드레스 버스(하이) 버퍼 회로 (234)는 하이버스(232)로부터 나오는 정보를 수신하여 상기 정보를 프로그램 카운터(하이)/증분기 레지스터(200)에 제공한다. 어드레스 버스(하이) 버퍼(234)는 어드레스 버스(하이) (236)에 결정된다. 어드레스 버스(하이)(236)는 버스(32)에 결합된다.
프로그램 카운터(로우) 레지스터(206), 일시적인 어드레스 레지스터(로우)(218) 및 스택 포인터 레지스터 (208) 각각은 정보를 로우 버스(238)에 제공한다. 어드레스 버스(로우) 버퍼 회로(240)는 로우 버스(238)로부터 나오는 정보를 수신한다. 어드레스 버스(로우) 버퍼(240)는 어드레스 버스(로우) (242)에 결정된다. 어드레스 버스(로우) (242)는 버스(32)에 결합된다.
로우 버스(238)는 데이타 버스(244)로부터 나오는 정보를 수힌한다. 데이타 버스 인터페이스(220)는 데이타 버스(244)로부터 나오는 정보를 수신하여 상기 정보를 상기 버스에 제공한다. 데이타 버스(244)는 버스(32)에 결합된다.
[양호한 실시예의 동작]
본 발명은 회로 부가를 쉽게 하고 기존의 회로를 거이 변경시키지 않고도 새로운 명령 또는 알고리즘을 구현하도록 CPU를 확장시키는 것이다.
제1도를 참조하면, 데이타 처리 시스템(10)은 MCU군내의 하나의 가능한 MCU를 도시한 것이다. 동일한 군내의 MCU 가 일반적으로 상이한 온-보드 주변 장치를 갖기 때문에, 데이타 처리 시스템(10)의 다른 실시예는 ROM(20)을 갖지 않으며, 외부 버스 인터페이스(26)를 갖지 않고 DMA(30)를 갖지 않는다. 실제로, 데이타 처리 시스템(50)의 다른 실시예는 제1도에 도시된 주변 장치보다 적거나, 많거나 또는 다른 주변 장치를 갖는다.
종래에, 특정 군내의 MCUs는 거의 항상 동일한 CPU를 사용하였다. 본 발명은 특정군내의 MCU 로 하여금 상이한 확장가능한 CPUs(12)를 이용하도록 하는데, 상기 CPUs(12)는 동일한 CPU 코어(50)가 확장되므로써 모두 연관된다. 제2도는 확장가능한 CPU의 제1실시예를 도시한 것이다. 제3도는 확장가능한 CPU(12)의 제2실시예, 즉 확장가능한 CPU(12')를 도시한 것이다.
제2도에 도시된 확장가능한 CPU(12)를 토대로 한 일근의 MCUs 가 동일한 CPU 코어(50)를 모두 갖는 것을 제2도를 통해서 알 수 있다. CPU코어(50)의 제1실시예를 토대로 한 일군의 상기 MCUs를 MC68HC08군이라 칭한다. CPU코어(50)는 종래 CPU 아키텍쳐를 수행한 MC68CH05 CPU 아키텍쳐이다. 본 발명의 다른 실시예는 상이한 CPU 아키텍쳐를 사용할 수 있다. 상기와 같이 수정 되므로써, CPU 코어(50)는 종래와 같이 확장될 수 있다.
CPU제어 확장 회로(52)는 새로운 명령 또는 알고리즘을 구현하기 위하여 CPU코어(50)에 부가되는 제1실시예의 부가 회로를 도시한 것이다. CPU 제어 확장 회로(52)는 종래 MC68HC05 CPU에 존재하지 않는다. 종래 MC68HC05 CPU 가 확장되도록 하는 특정한 수정이 지금부터 서술될 것이다.
한가지 제외하면, 실행 장치(56)는 개개 논리 게이트 레벨에서 종래와 동일하게 된다. 상기 한가지 제외로서 상태 코드 레지스터(228)(제8도에 도시)를 들수 있다. 종래 MC68HC05 CPU에서, 상태 코드 레지스터는 물리적으로 제어 장치의 랜덤 제어 논리부에 위치하는데, 그 이유는 상태 코드 레지스터가 실행 장치의 가장 최근의 상태에 관한 상태 정보를 포함하기 때문이다. 제어 장치는 동기된 제어 신호가 다음 상태동안 실행 장치를 어떻게 제어하는지를 결정하기 위하여 상기 상태 벙보를 필요로 한다. 예를들어, 제어장치는 어떤 상태 분기 명령에 대해 실행 장치를 어떻게 제어할지를 결정하기 위하여 상태 코드 레지스터에서 제로 비트의 논리 상태를 알리기 위해 필요하게 된다.
그러나, CPU(12)를 확장하기 위해선, 제어 회로 (64)는 실행 장치(56)의 모든 상태 정보에 액세스하여야만 된다. 상태 코드 레지스터(228)를 실행 장치(56)로 이동 시키므로써, 실행 장치(56)는 현재 프로그래머 모델내의 모든 레지스터, 모든 상태 레지스터 및 실행 장치용 상태 정보를 포함한다. 따라서, 제2제어 장치(64)는 실행 장치(56)로 부터 직접 나오는 모든 상태 정보에 직접 액세스한다. 확장가능한 CPU(12)에서, 제어 장치(54) 및 제어 장치(64)둘다는 실행 장치(56)로부터 나오는 동일한 세트의 상태 신호에 액세스하고 상기 상태 신호는 실행 장치(56)의 상태 코드 레지스터(228)로부터 상태 정보를 포함한다.
설계시에, 실행 장치(56) 회로는 반도체 집적 회로상에 물리적으로 배열되어 완전한 세트의 동기 제어 신호 및 완전한 세트의 상태 신호가 제어 장치(54) 및 제어 장치(64)에 활용되도록 한다. 즉, 모든 동기 제어 신호 및 모든 상태 신호는 물리적으로 루팅되어, 상기 신호가 제어 장치(54) 및 제어 장치(64)에 결합되도록 한다.
본 발명의 도시된 실시예에서, 동기 제어 신호를 전송 하는 컨덕터 각각으니 한쪽 단부에서 제어 장치(54)에 결합되며, 실행 장치(56)를 통하여 루팅되고 CPU 제어 확장 회로(52)가 구현되는지 여부에 관계없이 다른쪽 단부에서 실행 장치(56)외부로 루팅된다. 종래에서, 단지 하나의 제어 장치, 즉 제어장치(54)는 동기 제어 신호 및 상태 신호에 결합된다. 그에 따라서, 동기 제어 신호만을 전송하는 컨덕터는 단지 한쪽 단부에서 실행 장치(56) 외부로 루팅되어야만 한다.
제어 장치(54)를 형성하기 위하여 종래 제어 장치에 행해진 특정 수정이 지금부터 서술될 것이다. 상술된 방법에 따라서, 상태 코드 레지스터(228)는 랜덤 제어 논리 회로(62)로부터 제거된다. 게다가, 디스에이블 회로(63)는 랜덤 제어 논리 회로(62)에 부가되어 동기 제어 신호로 하여금 디스에이블되도록 한다. 동기 제어 신호가 디스에이블될 때, 상기 신호는 실행 장치(56)에 전송되지 않으므로 실행 장치(56)에 아무런 영향을 미치지 못한다.
디스에이블 회로(63)는 제2상태 시퀀서(68)에 의해 발생된 신호에 의해 제어된다. 본 발명의 실시예에서, 디스에이블 회로(63)는 각 동기 제어 신호용 하나의 전송 게이트(도시되지 않음)를 포함한다. CPU 코어(50)가 CPU 제어 확장 회로(52)가 없을때, 전송 게이트(도시되지 않음)는 동기 제어 신호가 항시 실행 장치(56)에 전송되도록 항상 인에이블 된다. CPU코어(50)가 CPU제어 확장 회로(52)에 사용될때, 전송 게이트(도시하지 않음)는 제2상태 시퀀서(68)로부터 나오는 디스에이블 신호가 긍정 또는 부정인지 여부를 토대로 인에이블되거나 디스에이블된다(제6도에 도시).
본 발명의 일실시예에서, 디스에이블 회로(63)는 제2상태 시퀀서(68)로부터 나오는 디스에이블 신호의 긍정된 상태를 래치하는 래치 회로(도시하지 않음)를 포함한다. 그리고나서, 타이밍 신호(도시되지 않음)가 긍정일때, 래치 회로는 어떤 동기 제어 신호가 실행 장치(56)(제8도에 도시)내의 스택 포인터 레지스터(208) 및 프로그램 카운터 (하이)/증분기(200)에 전송되도록 전송 게이트를 인에이블 시킨다. 따라서, 래치 호로(도시되지 않음)는 약간의 동기 제어 신호용 실행 장치(56)에 대한 디스에이블 신호 효과를 지연시키기 위하여 사용된다. 이들 차이 이외에도, 랜덤 제어 논리 회로(62)는 종래 랜덤 제어 논리 회로와 동일하게 된다.
제어 PLA(60)는 (1)제1상태 시퀀서(58)로부터 나오는 새로운 입력 상태(특정 제어 전송 명령용), (2) 약간의 출력 제어 PLA 신호 및 (3) 제어 PLA(40)내의 약간의 논리 AND 항 및/또는 OR 항이 부가된 종래 PLA와 동일하게 된다. 부가 신호 및 회로는 두개의 제어 장치(54 및 64)간에 실행 장치의 제어를 전송한다. 두개의 제어 장치(54 및 64)간에 실행 장치의 제어를 전송하는 것이 이하에 상세하게 서술될 것이다.
제1상태 시퀀서를 형성하기 위하여 종래 상태 시퀀서에 행해지는 특정한 수정이 제4도를 참조하여 지금부터 서술될 것이다. 종래 기술에서와 같이, 제 PLA(60)와 결합한 제1쌍의 시퀀서(58)는 버스(32)를 경유하여 수신되는 CPU 코어(50)의 현재 상태 및 현재 명령을 토대로 한 CPU 코어(50)의 다음 상태를 결정하므로써 상태 기계로서 가능한다. 제1상태 시퀀서(58)는 종래와 동일한 상태 천이를 취급한다. 게다가, 제1상태 시퀀서(58)는 또한 두개의 제어 장치 (54 및 64)간에 실행 장치(56)의 제어 전송에 수반되는 상태 천이를 취급할 수 있다.
제4도를 참조하면, 종래기술은 MUX(80) 및 MUX(82)를 갖지 않고 있다는 것을 알 수 있다. 종래 기술에서, 명령 레지스터(86)가 로딩될때를 표시하기 위하여 사용되는 MUX(80) 로부터 나오는 출력 대신에, 제어 PLA(60)로부터 나오는 출력 신호가 사용된다. 마찬가지로, 옵코드 룩어헤드 레지스터(opcode lookahead register)(88)가 로딩될때를 표시하기 위하여 사용된 MUX(82)로부터 나오는 출력 대신에, 제어 PLA(60)로부터 나오는 출력 신호가 사용된다. 상태 논리 회로(84)는 새로운 명령, 즉 종래에 없었던 특정 제어 전송 명령을 취급할 수 있다. 이 새로운 명령을 두개의 제어 장치(54 및 64)간의 실행 장치(56)의 제어 전송에 포함된다. 종래 기술과 달리, 디코더(89) 및 제어 PLA(60)는 또한 상기와 동일한 새로운 특정 제어 전송 명령을 취급할 수 있다.
결론적으로, 종래 MC68HC05 CPU를 확장시키기 위하여 행해진 회로 수정은 기존 회로와 관계하여 단지 적은수의 추가 회로만을 필요로 한다. 그러나, 이들 회로 변경으로부터 얻어지는 이득은 극히 중요하다. 이들 회로 변경의 결과로서, 상기 PCU 코어(50)의 기능은 다양한 소비자의 필요요건을 충족시키는 상이한 CPU 제어 확장 회로(52)를 부가하므로써 확립될 수 있다.
확장가능한 CPU(12)의 동작이 지금부터 서술될 것이다(제2도에 도시). 우선, 확장가능한 CPU(12)는 CPU 제어 확장 회로(52)가 없는 CPU 코어(50)만을 포함한다. 예를 들어, CPU코어(50)단독으로 제1도에 도시된 데이타 처리 시스템에서 확장가능한 CPU(12)로서 사용될 수 있다. 그러나, CPU 코어(50)는 또한 CPU제어 확장(50)의 각종 실시예와 연관되어 사용될 수 있다.
CPU 제어 확장(52)을 포함하는 것이 확장가능한 CPU(12)가 확장될 수 있는 한가지 방식이다.
제2도에 도시된 블럭도는 CPU 제어 확장(52)의 하나의 가능한 실시예를 도시한 것이다. CPU 제어 확장(52)이 동기 제어 신호를 적당한 제어 실행 장치(56)에 발생시키고 CPU 제어 확장(52)이 실행 장치(56) 제어가 두개의 동기 제어 신호원간에 전방 및 후방으로 전송되도록 하는 회로를 갖는 한, 상기 CPU제어 확장(52)은 어떠한 방식으로도 설계될 수 있다.
CPU 코어 (50)의 도시된 실시예는 두개의 기본 회로 부분으로 구성된다. 제어 장치 및 제1상태 시퀀서(58)를 포함하는 제1부분은 버스(32)를 경유하여 명령을 수신하고 제어 실행 장치(56)에 사용되는 동기 제어 신호를 발생시킨다. 제어 회로의 제1부분은 다양한 방식으로 구현된다. 실행 장치를 포함하는 제2부분은 동기 제어 신호를 수신하고 명령을 실제로 실행하는 이들 동기 제어 신호를 사용한다. 실행 장치(56)는 각종 방식으로 구현될 수 있다.
간단한 방식으로 CPU 제어 확장(52)을 구현하는 실시예가 제2도에 도시되어 있다. 약간의 회로 변경으로 인해, CPU 제어 확장은 제어 장치(56)의 미러 영상 및 제1상태 시퀀서(58)로서 구현될 수 있다. 랜덤 제어 논리(72)내의 회로는 랜덤 제어 장치(62)내의 회로를 똑같이 복제하므로서 구현된다. 랜덤 제어 논리(72)로의 입력 제어 신호, 즉 제어 ROM 신호는 제어 RMO(70)으로부터 나오고 ROM(70)에 기억되는 통상의 ROM 패턴에 의해 결정된다. 여러 소비자는 실행 장치(56)는 새로운 명령을 수행하도록 여러 ROM 패턴을 이동할 수 있다.
제2도 및 4도를 참조하면, 제어 PLA(60)와 결합된 제1상태 시퀀서(58)는 CPU코어 (50)용 상태 기계로서 우선적으로 기능한다. 이 성능에서, 제1상태 시퀀서(58)는 버스(32)로부터 나오는 명령을 수신한다. 그리고나서, 제1상태 시퀀서(58)는 실행될 현재 명령(명령 레지스터(86)로부터 나옴)뿐만 아니라 CPU 코어(50)의 현재 내부상태(상태 논리(84)로부터 나옴)를 디코드한다(디코더(89)를 사용). 그리고나서, 제1상태 시퀀서(58)는 제어PLA(60)에 입력되는 신호를 디코드(89)로부터 출력시킨다.
CPU 제어 장치(64)의 ROM(70)은 제어 장치(54)의 제어 PLA(60)와 유사한 기능을 수행한다. 제어 PLA(60)은 랜덤 제어 논리(62)에 입력 신호를 발생시키는 제어 전송 정보를 제1상태 시퀀서(68) 및 제2상태 시퀀서(68)에 발생시킨다. ROM(70)은 랜덤 제어 논리(72)에 입력 신호는 발생시키는 제어 전송 정보를 제1상태 시퀀서(58) 및 제2상태 시퀀서(68)에 발생시킨다.
제어 PLA(60) 및 ROM(70)이 또는 어떤 타입의 메모리 또는 어떤 타입의 프로그래러블 논리 어레이를 포함하는 어떤 타입의 프로그래머를 어레이로서 구현된다. 제어 PLA(60) 및 ROM(70)은 심지어 랜덤 논리로서 구현되는 각 제어 장치(54 및 64)에 남아있는 랜덤 제어 논리 회로와 결합된다.
프로그래머블 논리 어레이(PLA) 는 일반적으로 판독 전용 메모리(ROM)보다 작은 반도체 면적을 필요로 한다. 그러나, PLA를 개별화는 것보다 ROM을 개별화하는 것이 간단하면서도 훨씬 빠르다. 상기 제어 PLA(60)는 확장 가능한 CPU(12)의 상이한 버젼에 사용되기 때문에, 제어 PLA는 PLA로서 구현하여 반도체 영역을 보존시키는 장점이 있다. 그러나, 제어 ROM(20)이 확장가능한 CPU(12)의 상이한 버젼에 대한 상이한 프로그래밍을 갖아야만 하기 때문에, 제어 ROM(70)을 ROM으로서 구현시키는 것이 간단하면서도 훨씬 빠를 수 있다.
동기 제어 신호는 모든 요구된 제어 장치의 실행 장치(56)에 제공한다. 버스(32)는 어드레스 및 데이타 통로로서 사용되어 실행 장치(56)에 위치한 레지스터를 판독 및 기록한다. 확장가능한 CPU(12)는 두개의 제어 장치, 즉 제어장치(54 및 64)를 갖는다. 두개의 제어 장치(54 및 64) 각각은 실행 장치(56)를 제어하기 위해 사용되는 동일한 동기 제어 신호를 완전하게 발생시킬 수 있다. 마찬가지로, 두개의 제어 장치(54 및 64) 각각은 실행 장치(56)내의 모든 자원에 완전하게 액세스한다.
결과적으로, 제어 장치(54) 스스로 실행 장치(56)의 모든것을 완전하게 제어할 수 있다. 마찬가지로, 제어 장치(64)스스로 실행 장치(56)의 모든것을 완전하게 제어할 수 있다. 실제로, 확장가능한 CPU(12)의 일부 실시예에서, 제어 장치(54) 및 제어 장치(64)는 실행 장치(56)를 통해 루팅되고 나서 상기 각 제어 장치(54 및 64)로 루팅되는 상기 동기 제어 신호 컨덕터의 엔드와 대향되게 연결된다.
본 발명의 도시된 실시예에서, 특정 제어 전송 명령은 제어 장치(54)로부터 제어 장치(64)로 실행 장치(56)의 제어를 전송하기 위하여 사용된다. 도시된 실시예에서, 제어 장치(64)가 실행 장치(56)의 제어를 수신한 후, CPU제어 확장(52)은 실행 장치(56)의 제어를 제어 장치(54)로 자동적으로 리턴시키기 전 하나의 명령을 수행한다. 따라서, 확장가능한 CPU(12) 의 사용자가 CPU 제어 확장(52)을 사용하여 주문 명령을 실행할때마다, 사용자는 자신의 소프트웨어 프로그램으로 주문 명령에 앞서 있는 특정 제어 전송 명령을 포함해야만 한다.
이 실시예에서, 비록 CPU 제어 확장(52)이 제어가 자동적으로 제어 장치(54)이 리턴되기 전 하나의 주문 명령을 단지 실행할지라도, 이 하나의 명령은 임의 수의 실행 장치 사이클을 포함한다. 따라서, 주문자는 정상 명령의 전체 서브 루틴을 규정하여 하나의 단일 주문 명령이 되도록 한다. 주문자는 또한 적절한 대응 제어 명령을 제어 RPM(70)에 기억시키므로서 실행 장치 사이클 수를 변화시키는 다수의 주문 명령을 규정한다.
실행 장치 사이클은 실행 장치(56)(제8도에 도시)의 다음 3단계, 즉(1) 하나 이상의 값을 ALU(224)에 전송하며, (2)ALU(224)를 이용해 연산 또는 논리 동작을 수행하고 (3) ALU(224)로부터 레지스터로 최종값을 전송하는 단계를 실행하는데 요구되는 시간 양으로 규정된다.
본 발명의 일실시예에서, 두개의 실행 장치 사이클은 버스(32)의 버스 사이클마다 수행될 수 있다.
각 주문 명령내의 비트 필드(bit fiele)는 어느 주문 명령이 실행되는지른 지정하기 위하여 사용한다. 본 발명의 일실시예에서, 특정 제어 전송 명령은 두개의 바이트를 포함하는데, 제1바이트는 단지 특정 제어 전송 명령(각 주문 명령에 대해 동일함)에 대해 사용되는 옵 코드이고 제2 바이트는 제어 ROM(70의 시작 어드레스(각 주문 명령에 대해 상이하다)이다.
본 발명의 일 실시예에서, 특정 제어 전송 명령은 no operation(NOP) 명령에 따라서 실행 장치에 동일한 영향을 미친다. 마찬가지로, 제어 장치(64)에 의해 제어되는 각 주문 명령의 마지막 두개의 실행 장치 사이클은 NOP 명령에 따라서 실행 장치(56)에 동일한 영향을 미친다. NOP명령, 특정 제어 전송 명령 및 각 주문 명령의 마지막 부분은 두개의 실행 장치 사이클로 구성된다. 제1실행 장치 사이클동안, 프로그램 카운터 레지스터(200, 206)의 증분이 시작된다. 제2실행 장치 사이클동안, 프로그램 카운터 레지스터(200,206)를 제외하면 실행 장치(56)는 비록 동기 제어 신호가 구동될지라도 특정 제어 전송 명령의 실행동안 영향받지 않는다.
비록 특정 제어 전송 명령을 이용하여 실행 장치(56)의 제어를 통과시키기 위하여 사용되는 수많은 방식이 존재할지라고, 제2도, 4도 및 6도에 도시된 방식이 지금부터 서술될 것이다. 제2상태 시퀀서(68)(제6도에 도시)의 제어 장치 선택 논리(101)는 적절한 제어 장치(54 및 64)를 인에이블 및 디스에이블하는 역할을 한다. 도시된 실시예에서, 특정 제어 전송 명령은 제어 장치(54)로부터 제어 장치(64)로 제어 전송을 초기화하기 위하여 사용되고 제어 ROM(70)으로 부터 나오는 명령 신호의 엔드는 하나의 주문 명령이 수행된 후 제어 장치(64)로부터 제어 장치(54)로 다시 전송되는 제어 전송을 초기화하기 위하여 사용된다.
도시된 실시예에서, 제어 장치 선택 논리(101)는 랜덤 제어 논리(62), 랜덤 제어 논리(72), 제어 ROM(70) 및 제어 PLA(60)을 인에이블 또는 디스에이블하도록 각각의 제어 신호를 제공한다. 제어 PLA(60)를 제어하는 디스에이블 신호는 선택형이고 도시된 확장가능한 CPU(12)에서 구현되지 않는다. 도시된 실시예에서, 두개의 각각의 신호는 제어 장치 선택 논리(101)에 의해 각 제어 장치(54 및 64) 에 발생된다. 랜덤 제어 논리(72)가 ROM(70)전에 디스에이블되기 때문에, 두개의 신호는 각 제어 장치에 사용된다. 유사하게, 제어 PLA(60)는 랜덤 제어 논리 (62)전에 인에이블되고 제어 ROM(70)은 랜덤 제어 논리 (72)전에 인에이블되어야함 한다.
제어 PLA(60)는 제1상태(58) 및 제2상태 시퀀서(68)둘다에 제공되는 제어 전송 신호를 발생시킨다. 제어 전송 신호는 특정 제어 전송 명령이 수신된 후에 긍정이 된다. 제어 전송 신호는 제1상태 시퀀서(58) 및 제2상태 시퀀서(68)에 전송되어 실행 장치(56)의 제어가 제어 장치(54)로부터 제어 장치(64)로 통과되는 것을 표시한다.
만일 특정 제어 전송 명령이 아직 수신되지 않았다면, 제어 전송 신호는 부정이된다. 만일 제어 전송 신호가 부정이라면, 제어 장치(54)는 인에이블되거 제어장치(64)는 디스에이블된다. 또한, 제어 전송 신호가 부정이라면, 제어 장치 선택 논리(101)의 모든 출력은 부정이 된다. 랜덤 제어 논리(62)에 제공되는 디스에이블 신호를 부정하면 동기 제어 신호가 랜덤 제어논리(62)로부터 실행 장치(56)에 제공되도록 한다. 제어 PLA(60)에 제공되는 선택형 디스에이블 신호를 부정하면 제어 PLA(60)가 제1상태 시퀀서(58)에 의해 스트로브되도록 한다. 랜덤 제어 논리(72)에 제공되는 인에이블 신호를 부정하면 동기 제어 신호를 디스에이블하여, 상기 동기 제어 신호가 랜덤 제어 장치(72)로부터 실행 거리(56)에 제공되지 않도록 한다. 제어 ROM(70)에 제공되는 인에이블 신호를 부정하면 제어 ROM(70)이 제2상태 시퀀서(58)에 의해 스트로브되는 것을 방지한다.
만일 특정 제어 전송 명령이 아직 수신되지 않았다면, 제어 ROM(70)은 디스에이블된다. 제어 ROM(70)이 디스에이블될때, 상기 제어 ROM(70)의 출력에 대한 논리 상태는 변조하지 않는다. 그러나, 비록 제어 ROM(70)이 디스에이블될지라도, 제어 ROM(70)은 제어 ROM(70)이 디스에이블되기전 출력 신호가 갖는 소정 논리 상태의 초기 패턴 또는 논리 상태의 최종 패턴에 따라서 구동된다. 본 발명의 일실시예에서, 제어 ROM(70)이 디스에이블하기 전 출력 신호가 갖는 논리 상태의 최종 패턴은 항상 소정 논리 상태의 초기 패턴과 동일하다.
제2도 및 제4도에 도시된 제1상태 시퀀서(58)의 동작이 상세히 설명될 것이다. 제 PLA(60)로부터 나오는 제어 전송 신호는 제어 장치(54)가 제1상태 시퀀서(58)를 제어하는지 여부와 또는 제어 장치(64)가 제1상태 시퀀서(58)를 제어하는지 여부를 보정하기 위하여 사용된다. 제어 전송 신호는 MUX(80)이 제어 PLA(60) 로부터 나오는 명령 신호의 엔드를 출력하는지 여부와 또는 MUX(80) 이 제어 ROM(70)으로부터 나오는 명령 신호의 엔드를 출력하는지 여부를 결정하기 위하여 사용된다. 마찬가지로, 상기 제어 전송 신호는 MUX(82) 가 제어 ROM(70)으로부터 나오는 룩어헤드 신호를 출력하는지 여부와 또는 MUX(80)가 제어 ROM(70)으로부터 나오는 룩어헤드 신호를 출력하는지 여부를 결정하기 위하여 사용된다. 제어 전송 신호가 또한 상태 논리(84)로 입력되는 명령 신호의 엔드기 제어 PLA(60) 또는 제어 ROM(70)으로부터 나오는지 여부를 결정한다는 것을 주목하자.
제어 전송 신호는 제어 장치(54)또는 제어 장치(64)가 제1상태 시퀀서(58)를 통해 흐르는 명령을 제어하는지 여부를 실제로 결정한다. MUX(82) 출력의 긍정은 버스(32)로 부터 나오는 명령이 옵코드 룩어헤드 레지스터(88)로 로드되도록 한다. MUX(80)의 출력의 긍정은 옵코드 룩어헤드 레지스터(88)로부터 나오는 명령이 명령 레지스터(86)로 로드되도록 한다.
논리 상태(84)는 제어 PLA(60)로부터 나오는 다음 상태 신호를 수신한다. 제어 PLA(60)와 결합한 디코더 (89)는 명령 레지스터(86)에 기억된 명령 및 이들 다음 상태 신호로부터 다음 상태가 무엇인지를 결정한다.
만일 CPU 코어(50)가 선택형 CPU 제어 확장(52)없이 사용된다면, 제어 전송 신호는 결코 긍정이될 수 없다. 그러나, 만일 CPU 코어(50)가 선택형 CPU 제어 확장(52)과 결합하여 사용된다면, 제어 PLA(60)는 제어 전송 신호를 긍정으로 할것이고 디코더(89)의 출력은 제어 전송 신호에 의해 영향받게 될 것이다.
제1상태 시퀀서(58)는 또한 제어 PLA(60)로의 입력이 유효하고 제어 PLA(60)로부터 나오는 출력이 유효한 때와 관계하여 제 PLA(60)에 타이밍 정보(도시되지 않음)를 전송한다. 제어 PLA(60)로부터 나오는 출력이 유효할때, 제1상태 시퀀서(58)는 제어 PLA신호를 인에이블하여, 랜덤 제어 논리(62)로 전송되도록 한다. 그리고 나서, 랜덤 제어 논리(62)는 상태 신호를 경유하여 실행 장치(58)로부터 다시 수신되는 상태 정보 및 타이밍 정보에 따라서 제어 PLA 신호의 자격을 부여한다. 그리고나서, 랜덤 제어 논리(62)는 완전한 제어 실행 장치(56)에 요구되는 완전한 신호 세트인 동기 제어 신호를 출력한다.
제1상태 시퀀서(58)는 CPU제어 확장(52)없이도 스스로 작용하는 CPU코어(50)에 사용되기 때문에, 제어 전송을 취급하는 대부분의 회로를 제2상태 시퀀서(68)및 제어 장치(64)에 위치시키는 것이 바람직하다. CPU 코어(50)의 제어 전송을 취급하는 제어 신호용 입력 및 출력 통로를 포함하는 것이 더욱 효율적이지만, PCU 제어 확장(52)에 실제 제어 전송 회로의 대부분을 위치시키는 것이 더욱 효율적이다. 본 발명에 대한 장점은 반도체 면적이 단지 하나의 CPU코어(50)엔 필요치 않는 기능을 하도록 CPU코어(50)에 확장되지 않아도 된다는 것이다. 따라서 CPU코어(50) 자체 비용이 최소로 유지될 수 있다.
제2도 및 6도에 도시된 제2상태 시퀀서(68)의 동작이 상세하게 서술될 것이다. 제2상태 시퀀서(68)는 우선적으로 CPU 제어 확장(52)용 상태 머신으로서 가능한다. 이 성능에서, 제2상태 시퀀서(68)는 버스(32)로부터 나오는 명령을 수신한다. 제2상태 시퀀서(68)는 실행될 현재 명령(명령 레지스터(106)로부터 나옴)뿐만 아니라 CPU 제어 확장(52)의 현재 내부 상태(상태 논리 (104)로부터 나옴)를 디코드(디코더(109)이용함)한다. 그리고나서, 제2상태 시퀀서(68)는 제어 ROM(70)에 입력되는 디코더(109)로부터 나오는 신호를 출력한다.
타이밍 신호(도시되지 않음)와 결합하여 제어 ROM(70)으로부터 나오는 룩어헤드 신호를 긍정시키면은 버스(32)로 부터 나오는 명령이 명령 레지스터(106)로 로딩시킨다. 상태 논리(104)는 제어 ROM(70)으로부터 나오는 다음 상태 신호를 수신한다. 제어 ROM(70)과 결합한 디코더(109)는 다음 상태 신호 및 명령 레지스터(106)에 기억된 현재의 명령으로부터 다음 상태가 무엇인지를 결정한다. 제어 장치(64)가 디스에이블할지라도, 디코더(109)는 제어 ROM(70)에 신호를 계속해서 출력시킨다는 것을 주목하자. 제어 ROM(70)은 제어 ROM(70)이 디스에이블되는 한 디코더(109)로부터 수신되고 입력에 의해 실행되지 않는다.
상태 논리(104)는 카운터(107)를 포함한다. 카운터(107)는 버스(3)로부터 가능한 판독한다. 카운터(107)는 제2상태 시퀀서(68) 및 제어 장치(64)에 의해 실행되고 명령내에서 루프를 생성하도록 사용된다. 예로서, 소비자는 특정 레지스터 값을 "N"회 시프트하는 것과 같은 동일한 실행 장치 사이클을 "N"회 수행하는 새로운 명령을 부가하는 것이 바람직하다. 상기 값 "N" 을 카운터(107)에 로딩하는 특정 레지스터가 시프트되는 매 실행 장치 사이클마다 카운터(107)는 감소시키므로써, 상태 논리(104)는 동일 상태가 "N"회에 걸쳐 사이클될때의 트랙을 유지시킨다. 상태 논리 (104)는 신호를 디코더(109)에 전송하여 루프가 완료된 것을 표시한다. 이 방식으로 , CPU 제어 확장(52)에 의해 실행되는 단일 명령은 실제로 하나의 명령 단계로 구현되는데, 다수의 명령에는 통상적으로 여러 단계의 명령 단계가 필요하다.
제2상태 시퀀서(68)는 또한 제어 ROM(70)으로의 입력이 유효하고 제어 ROM(70)으로부터의 출력이 유효할때 타이밍 정보(도시되지 않음)를 제어 OM(70)에 전송한다. 제어 ROM(70)으로부터의 출력이 유효할 때, 제2상태 시퀀서(68)는 제어 ROM(70)를 인에이블하여 랜덤 제어 논리(72)에 전송시킨다. 랜덤 제어 논리(72)는 상태 신호에 의해 실행 장치로부터 다수 수신되는 상태 정보 및 타이밍 정보에 따라서 제어 ROM 신호의 자격을 부여한다. 랜덤 제어 논리(72)는 동기 제어 신호를 출력한다. 실행 장치(56)를 완전하게 제어 하는데 필요한 완전한 신호 세트인 동기 제어 신호를 출력한다.
제1상태 시퀀서(58) 및 제2상태 시퀀서(68)의 동작이 서술되며, 제어 장치(54 및 64)간의 제어 전송이 상세히 서술될 것이다. 제어 장치(54)로부터 제어 장치(64)로의 제어를 전송하기 위하여, 확장가능한 CPU(12)는 특정한 제어전송 명령을 수신해야만 한다.
일단 버스(32)로부터 나오는 특정 제어 전송 명령이 명령 레지스터(86)에 의해 수신된다면, 제어 장치(54)로 부터 제어 장치(64)로의 제어 전송이 시작된다. 디코더(89)는 특정 제어 전송 명령을 디코드하고 특정 제어 전송 명령에 일치한 대응 신호를 출력한다. 여전히 인에이블되는 제어 PLA(60)는 제어 전송 신호를 긍정하고 랜덤 제어 논리 (62)에 제어 PLA 신호를 전송하므로써 특정 제어 전송 명령에 응답한다. 실행될 명령이 특정 제어 전송 명령이기 때문에, 랜덤 제어 논리(62)는 논리 상태의 제1 소정 패턴으로 동기 제어 신호를 구동시키고 다시 제2조정 패턴의 논리 상태로 구동된다.
일실시예에서, 논리 상태의 제1소정 패턴은 NOP 명령의 제1실행 장치동안 동기 제어 신호에 의해 구동되는 상태와 동일하게 된다. 제1소정 논리 상태의 패턴으로 동기 제어 신호를 구동시키면 실행 장치(56)의 프로그램 카운터 레지스터(200,206)가 증분되도록 한다. 제2소정 패턴의 논리 상태로 동기 제어 신호를 구동시키면서 실행 장치(56)에 아무런 영향을 미치지 않는다. 제2실행 장치 사이클동안, 동기 제어신호가 제2소정 패턴의 논리 상태에 따라서 구동될때, 제어는 제어 장치(54)로부터 제어 장치(64)로 실제 전송된다.
따라서, 본 발명의 일실시예에서, 제어가 제어 장치(4)로 부터 제어 장치(64)로 전송되는 제어 장치(54 및 64) 는 제2 소정 패턴의 논리 상태에 따라서 각각의 동기 제어 신호를 동시에 구동시킨다. 일단 제어가 전송되면, 제어 장치는 하나의 증분 명령을 실행한다. 각 주문 명령의 최종 두개의 실행 장치는 특정 전송 제어 명령의 두개의 실행 장치 사이클과 동일하게 되는데, 즉 NOP 명령의 두개의 실행 장치 사이클과 동일하게 된다.
제어 PLA(60)에 의한 제어 전송 신호의 긍정은 제어 장치(54)로부터 제어 장치(64)로의 전송을 초기화하기 위하여 사용된다. 제어 전송 신호가 긍정되므로써, 제어 장치(54)는 디스에이블되고 제어 장치(64)는 인에이블된다. 제어 전송 신호가 긍정일때, 제어 장치 선택 논리(101)의 모든 출력은 긍정이 된다. 제어 장치 선택 논리(101)로부터 명령 레지스터(106)로 전송되는 신호의 긍정은 명령 레지스터(106)로 하여금 버스(32)로부터 나오는 특정 제어 전송 명령의 제2바이트를 로딩시키도록 한다.
랜덤 제어 논리(62)에 대한 디스에이블 신호를 긍정하면, 동기 제어 신호가 랜덤 제어 논리(62)로부터 실행 장치(56)로 제공되지 않도록 디스에이블된다. 제어 PLA(60)에 대한 선택형 디스에이블 신호를 긍정하면, 제어 PLA(60)가 제1상태 시퀀스(58)에 의해 스트로브되는 것을 방지한다. 랜덤 제어 논리(72)에 대한 인에이블 신호를 긍정하면, 동기 제어 신호가 랜덤 제어 논리(72)로부터 실행 장치(56)로 제공되도록 한다. 제어 ROM(70)에 대한 인에이블 신호를 긍정하면 제어 ROM(70)이 제2상태 시퀀서(58)에 의해 스트로브되도록 한다.
제어 장치 선택 논리(101)로부터 나오는 출력 신호가 긍정이 되도록 하는 단계는 중요하다는 것을 알아야 한다. 무선 제어 ROM(70)이 인에이블되어야만 된다. 선택적으로, 제어 PLA(60)는 디스에이블된다. 그리고 나서, 랜덤 제어논리(72)는 인에이블된다. 그리고, 최종적으로, 랜덤 제어 논리(62)는 디스에이블된다.
제2상태 시퀀서(68)는 버스(32)로부터 나오는 특정 전송 명령의 제2바이트를 수신한다. 본 발명의 일실시예에서, 특정 전송 명령의 제2바이트는 주문 명령의 제어 ROM(70)의 시작 어드레스이다. 그리고나서, 디코더(89)는 주문 명령의 시작 어드레스를 제어 ROM(70)에 전송한다. 제어ROM(70)은 이 시작 어드레스를 이용하여 특정 ROM위치에 액세스한다. 특정 ROM 위치에 기억된 정보는 제어 ROM 신호로서 랜덤 제어 논리(72)에 출력된다.
이들 제어 ROM 신호는 랜덤 제어 논리(62)에 의해 구동되는 제2소정 패턴의 논리 상태로 동기 제어 신호를 구동시키는 랜덤 제어 논리(70)에 표시된다. 특정 제어 전송 명령의 제2실행 장치 사이클동안의 순간 시간 주기동안에, 랜덤 제어 논리(62) 및 랜덤 제어 논리(72)는 소정 패턴의 논리 상태로 각 동기 제어 신호를 구동한다. 순간 오버랩 주기(brief overlap period)의 목적은 실행 장치(56)를 제어하는 동기 제어 신호가 결코 미지의 논리 상태 또는 의도되지 않는 논리 상태로 플로우트(float)되거나 진행하도록 하지 않는다. 따라서, 동기 제어 신호는 항상 하나 또는 두개의 제어 장치(54 및 64)에 의해 구동된다.
일단 랜덤 제어 논리(72)가 제2소정 패턴의 논리 상태로 자체 동기 제어 신호를 구동시키면, 제2상태 시퀀서(68)는 랜덤 제어 논리(62)로부터 나오는 동기 제어 신호의 출력을 디스에이블시키는 랜덤 제어 논리(62)에 대한 디스에이블 신호를 긍정으로 한다. 이점에서, 제2상태 시퀀서(68) 및 제어 장치(58) 및 제어 장치(54)는 현재 실행 장치(56)를 제어하지 않는다. 그러나, 본 발명의 일실시예에서, 제1상태 시퀀서(58) 및 제어 장치(54)는 동일 상태로 계속해서 유지되는데, 즉 만일 랜덤 제어 논리(62)가 디스에이블하지 않는다면, 제2소정 패턴의 논리 상태에 따라서 동기 제어 신호를 계속해서 구동시킨다.
제어 PLA(60)에 의한 제어 전송 신호의 긍정은 제1상태 시퀀서(58)를 또한 작용시킨다. 제어 전송 신호의 긍정은 MUX(80)의 출력 및 MUX(82)의 출력을 변경시키기 위하여 사용된다. 제어 전송 신호를 긍정하므로써, MUX(80)은 제어 PLA(60)으로부터 나오는 명령 신호의 엔드 출력을 제어 ROM(70)으로부터 나오는 명령 신호의 엔드 출력으로 변경시킨다. 유사하게 제어 전송 신호를 긍정하므로써, MUX(82)는 제어 PLA(60) 로부터 나오는 룩어헤드 신호의 출력을 제어 ROM(70)으로부터 나오는 룩어헤드 신호의 출력으로 변경시킨다.
제어 전송 신호를 긍정하므로써, 상태 논리(84)는 제어 PLA(10)로부터 나오는 대신에 ROM(70)으로부터 나오는 명령 신호의 엔드를 수신한다. 제어 ROM(70)으로부터 나오는 명령 신호의 엔드를 이용함으로써, 상태 논리 (84)는 주문 명령이 완료될때와 그에 따라서 제어가 제어 장치(54)로부터 제어 장치(64)로 다시 전송될때를 결정한다.
제2상태 시퀀서(68) 및 제어 장치(64)는 버스(32)로 부터 나오는 다음 명령, 즉 주문 명령을 수신한다. 본 발명의 일실시예로서, 주문 명령은 실제로 주문 명령에 대한 시작 어드레스인 제어 ROM(70)에 위치시키는 특정 제어 전송 명령의 제2바이트이다.
제2상태 시퀀서(68)및 제어 장치(64)는 이 주문 명령의 실행동안 실행 장치를 전적으로 제어한다. 주문 명령의 끝에서, 랜덤 제어 논리(72)는 상기 제2 소정 패턴의 논리 상태로 동기 제어 신호는 다시 한번 구동시켜야만 한다. 제2상태 시퀀서는 디스에이블 신호를 부정하므로써 랜덤 제어 논리(62)로부터 나오는 동기 제어 신호의 출력을 다시 인에이블 시킨다. 또다시, 순간 주기의 시간동안, 랜덤 제어 논리(62) 및 랜덤 제어 논리(72)는 상기 제2소정 패턴의 논리 상태로 각 동기 제어 신호를 구동시킨다.
주문 명령의 엔드에서, 제어ROM(70)은 명령 신호의 엔드를 긍정한다. 제어 ROM(70)에 의한 명령 신호의 엔드에 대한 긍정은 제어 장치(64)로부터 제어 장치(54)로 다시 전송되는 제어를 초기화하기 위하여 사용된다. 명령 신호의 앤드를 긍정하므로써, 제어 장치(64)는 디스에이블되고 제어 장치(54)는 인에이블된다.
명령 신호의 엔드가 긍정일 때, 제어 장치는 선택 논리(101)의 모든 출력은 부정이된다. 제어 ROM(70)에 의한 명령 신호의 엔드의 긍정은 동기 제어 신호가 랜덤 제어 논리 (62)로부터 실행 장치(56)에 제공되도록 한다. 제어 PLA(60)에 대한 선택형 디스에이블 신호를 부정하면 제어 PLA(60)가 제1상태 시퀀서(58)에 의해 스트로브되도록 한다. 랜덤 제어 논리(72)에 대한 인에이블 신호를 부가하면 동기 제어 신호를 디스에이블하여 랜덤 제어 논리(72)로부터 실행 장치(56)에 제공하지 못하도록 한다.
제어 ROM(70)에 대한 인에이블 신호를 부정하면 제어 ROM(70)이 제2상태 시퀀서(58)에 의해 스트로브되는 것을 방지한다.
제어 장치는 선택 논리 (101)로부터 나온 출력 신호가 부정이 되도록 하는 단계는 중요하다. 우선, 제어 PLA(60)가 디스에이블되면, 상기 PLA 는 다시 인에이블되어야만 한다. 그리고나서, 랜덤 제어 논리(62)는 다시 인에이블될 수 있다. 다음에, 랜덤 제어 논리(72)가 디스에이블될 수 있다. 그리고, 최종적으로, 제어 ROM(70)은 디스에이블될 수 있다.
특정 제어 전송 명령을 이용하여 실행 장치(56)의 제어를 통과시키는 제2방식(도시되지 않음)이 지금부터 서술될 것이다. 이 제 2 방식에서, 제어 전송 신호는 필요치 않는다. 대신에, 디코더(109)는 특정 제어 전송 명령이 수신될 때 및 실행 장치(56)의 제어가 제어 장치(54)로부터 제어장치(64)로 전송될때를 결정한다. 그리고나서, 디코더(109)는 제어 전송 신호 대신에 제어 전송이 시작되는 것을 나타내는 신호를 제어 장치 선택 논리(101)에 제공한다. 디코더(109)로부터 나오는 이 신호는 제어 전송 신호에 서술된 바와 같이 제어 장치 선택 논리(101)에 동일한 영향을 미친다.
본 발명의 다른 실시예는 다른 방식을 이용하여 두개 이상의 제어 장치간에 실행 장치(56)의 제어를 전송한다. 제어 전송하는 한가지 방식으로서 특정 제어 전송 명령을 사용하는 것을 쓸수 있다. 게다가, 단지 하나의 주문 명령을 실행한 후 실행 장치의 제어를 제어 장치(54)로 자동적으로 리턴시키는 대신에 임의 수의 주문 명령이 제어가 제어 장치(54)로 다시 통과되기 전 실행되도록 하는 방식이 사용될 수 있다.
본 발명의 도시된 실시예에서, 특정 제어 전송 명령은 CPU 코어(50)가 CPU 제어 확장(52)없이 사용된다면 사용될 수 없다. 즉 만일 제어 장치(64)가 구현되지 않았다면, 제어 장치(54)는 실행 장치(56)의 제어를 보유해야만 한다. 따라서, CPU코어(50)가 CPU 제어 확장(52)없이 사용될때, 특정 제어 전송 명령은 비합법적인 옵코드로서 취급된다. 랜덤 논리(62)의 비합법적이 옵코드 회로(도시되지 않음)가 비합법적인 옵코드를 검출하면, 데이타 처리 시스템(10)은 리셋된다.
그러나, CPU 코어(50)가 CPU제어 확장(52)에 사용되도록 하기 위하여, 제어 장치(54)을 다소 수정할 필요가 있다. 즉, 제어 장치(54)는 특정 제어 전송 명령이 더이상 비합법적인 옵코드로서 취급되지 않고 실제로 특정 제어 전송 명령으로서 실행되도록 수정되어야만 한다. 본 발명의 일실시에에서, 이 수정도 단지 제어 PLA 신호중 하나의 신호가 비합법적인 옵코드가 수신되는 것을 검출하는 랜덤 제어 논리(62)부에 입력되는 것을 방지하도록 구성된다. 개방 회로를 하나의 컨덕터에 생성시키는 간단한 방식으로 이 수정이 행해질 수 있다. 결과적으로, 특정 제어 전송 명령은 CPU 코어(50)가 CPU제어 확장(52)에 사용될 때 비합법적인 옵코드로서 해석될 수 없다.
본 발명의 다른 실시예는 제어 장치(54) 및 제어 장치(64)간에 실행 장치(56)의 제어를 전송하는 상이한 방식을 이용할 수 있다. 실제로, 유연성 있게 제어를 전송시키는 어떤 방법이 사용될 수 있다. 예를들어, 명령내의 비트 필드 자체는 제어 장치(54 또는 56)가 상기 특정 명령의 실행동안 실행 장치를 제어하는 것을 표시하기 위해 사용될 수 있다.
또한, 프로그램 가능한 제어 레지스터는 어느 제어 장치가 현재 실행 장치(56)를 제어하는지를 결정하는 비트 필드를 포함한다. 또한, 외부로부터 확장가능한 CPU(12)로 수신되는 신호는 제어 장치(54 또는 56)가 다음 명령의 실행동안 실행 장치를 제어하는지를 표시하기 위하여 사용될 수 있다. 이 외부 신호는 데이터 처리 시스템(10)의 또다른 섹션에서 발생되거나, 이 신호는 집적 회로 핀을 경유하여 외부로부터 데이타 처리 시스템(10)으로 수신될 수 있다.
제3도를 참조하면, 제2도에 도시된 확장가능한 CPU(12)와 약간의 차이가 있지만, 제3도에 도시된 확장 가능한 PCU(12')는 제2도에 도시된 확장가능한 CPU(12)와 동일하고 이에 다라서 서술될 것이다. 확장가능한 CPU(12')는 약간의 새로운 회로 블럭을 포함하는데, 즉 실행 장치 확장(153), 랜덤 제어 논리 확장(175) 및 제어 ROM 확장(171)을 포함한다.
게다가, 하나이상의 실행 장치(156)내부 버스(즉, EU 내부 버스)는 실행 장치(156)의 적얻호 하나의 물리적 에지로 루팅된다. 따라서, 실행 장치 확장(153)은 하나 이상의 EU 내부 버스에 부가되고 직접 결합되어, 결합된 실행장치(153 및 156)의 기능을 증가시킨다. 실행 장치 확장(153)은 임의의 소망 회로, 예를들어 하나이상의 레지스터, 하나이상의 연산 논리 장치(ALUs) 및 임의형의 특정 기능회로를 포함한다.
랜덤 제어 논리 확장(175)은 실행 장치 확장(153)에 포함된 회로를 제어하기 위하여 랜덤 제어 논리(172)에 행해지는 확장이나 부가를 표시한다. 랜덤 제어 논리(172)는 실행 장치(156)을 완전히 제어하는 동기 제어 신호를 발생시키는 성능을 갖는다. 그러나, 랜덤 제어논리(172)는 실행 장치 확장(153)을 완전히 제어하는 동기 제어 신호를 발생시키는 성능이 없다. 따라서, 랜덤 제어 논리 확장(175)는 실행 장치 확장(153)을 완전히 제어하는 동기 제어 신호를 발생시킬 필요가 있다.
유사하게, 제어 ROM확장(171)은 실행 장치 확장 (153)에 포함된 회로를 제어하기 위하여 제어 ROM(170)에 행해지는 확장 또는 부가를 표시한다. 제어 ROM(170)은 실행 장치(156)를 완전히 제어하는데 필요한 제 어 ROM 신호를 발생시키는 성능을 갖는다. 그러나, 제어 ROM (170)은 실행 장치 확장(152)을 완전히 제어하는데 필요한 제어 ROM 신로를 발생시키는 성능이 없다. 따라서, 제어 ROM 확장(171)은 실행 장치 확장(153)을 완전히 제어하는데 필요한 제어 ROM 확장 신호를 발생시킬 필요가 있다.
제5도에 도시된 제1상태 시퀀서(158)는 제4도에 도시된 제1상태 시퀀서(58)와 동일한 방식으로 구현된다. 또한, 제7도에 도시된 제2상태 시퀀서(168)는 제6도에 도시된 제2상태 시퀀서(68)는 동일한 방식으로 구현된다.
제8도를 참조하면, 상태 코드 레지스터(228)가 현재 실행 장치(56)내에 위치한다는 점을 제외하면, 실행 장치(56)는 종래 실행 장치가 가능하다는 방식과 동일한 방식으로 내부적으로 기능한다. 그러나, 실행 장치(56)의 설계는 제어 장치(54 및 64)가 실행 장치56)를 제어하는 동기 제어 신호를 제공하도록 하고 제어 장치(54 및 64)가 상태 신호를 수신하도록 한다. 동기 제어 신호가 실행 장치(56)를 어떻게 제어하는지에 대해서는 상술되어 있지 않다. 그러나, 동기 제어 신호는 종래와 동일한 방식으로 실행장치(56)를 제어하는데 사용된다.
[발명의 요약 및 또다른 실시예]
본 발명은 새롭거나 종래의 CPU 가 확장되도록 하여, 현재 및 미래의 소비자 욕구에 부합하도록 회로를 확장 가능한 CPU(12 또는 12')에 쉽게 부가하는 것이다. 결과적으로, 다양한 소비자의 욕구에 부합하도록 한 것에 비해서 가격이 훨씬 감소된다. CPU 에 관한 "확장가능한"이라는 용어는 새로운 명령이 기존의 CPU 회로를 크게 변화시키지도 않고 어떤 지정된 회로를 부가하므로써 간단하게 CPU 에 부가된다. 새로운 명령은 단지 제2제어 장치(64) 및 제2상태 시퀀서(68)를 부가하므로써 부가된다. 대부분의 제2제어장치(64)는 원 제어장치(54)의 복사판일 수 있고 제2상태 시퀀서(68)일부가 원 상태 시퀀서 (58)이 복사판일 수 있다는 것을 알아야만 한다.
실행 장치(156)의 기존 자원을 활용하는 새로운 명령을 부가하는 것 이외에, 새로운 자원은 또한 실행 장치(156)에 대한 확장으로써 부가될 수 있다. 실행 장치(156)의 내부 버스는 실행 장치(156)의 물리적 에시에 루팅된다. 따라서, 실행 장치 확장(153)은 하나이상의 실행 장치(156)의 내부 버스에 부가되고 직접 결합될 수 있다. 실행 장치 확장(153)은 레지스터, 또다른 연산 논리 장치(ALU), 특정 기능 회로 또는 임의의 다른 소망 회로를 부가하므로써 실행 장치(156)의 기능을 증가시킨다.
본 발명이 특정 실시예를 참조하여 설명되는 동안에도, 당업자는 각종 수정 및 변경을 행할 수 있다. 예를들어, 본 발명의 또다른 실시예로서, CPU 코어(50) 및 CPU 제어 확장 (52)에 대한 또다른 아키텍쳐가 사용될 수 있다. 제2도 및 제3도에 도시한 아키텍쳐는 두가지 가능한 아키텍쳐가 사용될 수 있다. 게다가, 본 발명은 단지 두개의 제어 장치(54 및 64)에만 제한되지 않는다. 제1상태 시퀀서(58) 및 제2상태 시퀀서(68)의 제어 전송 회로를 다소 수정하므로써, 본 발명의 다른 실시예는 두개 이상의 제어 장치가 사용될 수 있다.
본 발명의 또다른 실시예로서 제어 장치(54)와 제어 장치(64) 둘다가 동기 제어 신호를 구동시키지 않는 동안 "비구동" 시간 주기가 있을 수 있다. "비-구동"시간은 동기 제어 신호가 "비구동"시간동안(예를들어, 실행 장치 내부 버스가 프라챠지되는 동안)실행 장치(56)의 내부 상태를 영속적으로 변경시킬 수 없다면 확장가능한 CPU(12)의 동작을 혼란시킨다.
그러므로, 본 발명은 상술된 특정 형태로 제한되지 않고 본 발명의 영역 및 원리를 벗어남이 없이 행해진 모든 수정을 커버한다는 것을 알 수 있다.

Claims (4)

  1. 확장가능한 중앙 처리 장치에 있어서,
    제1세트의 제어 신호들을 수신하는 제1세트의 제어 입력들로서, 상기 제어 신호들의 수신에 응답하여 모든 실행 장치가 제1세트의 제어 신호들에 의해 직접 제어되는 제1세트의 제어 입력들과,
    제2세트의 제어 신호들을 수신하는 제2세트의 제어 입력들로서, 상기 제어 신호들의 수신에 응답하여 모든 실행 장치가 제2세트의 제어 신호들에 의해 직접 제어되는 제2세트의 제어 입력들과,
    상기 중앙 처리 장치내에 존재하는 모든 상태 레지스터들인 다수의 상태 레지스터들과,
    상기 실행 장치의 현재 상태를 표시하는 한 세트의 상태 신호들을 제공하는 제1세트의 상태 출력들과,
    상기 실행 장치의 현재 상태를 표시하는 한 세트의 상태 신호들을 또한 제공하는 제2세트의 상태 출력들을 구비하는, 실행 장치와,
    상기 실행 장치에 결합되어 상기 제1세트의 제어 신호들을 상기 실행 장치에 제공하고 상기 실행 장치로부터 제1세트의 상태 출력들을 거쳐 상기 세트의 상태 신호들을 수신하는 제1제어 유닛을 구비하는 확장가능한 중앙 처리 장치.
  2. 다수의 소정 동작을 수행하도록 적응되는 실행장치와, 제어 전송 명령을 포함하는 다수의 소정 명령들 각각에 응답하여 상기 실행 장치의 동작을 제어 하도록 적응되는 명령 실행 제어 회로를 구비하는 데이타 처리 시스템에서,
    적어도 하나의 모드로 상기 데이타 처리 시스템이 동작하는 동안 상기 제어 회로는 상기 다수의 소정 명령들 각각을 수신하고,
    상기 제어 회로는 상기 제어 전송 명령 이외에 상기 다수의 소정 명령들중 하나의 명령의 수신에 응답하여, 상기 하나의 명령의 실행시에 상기 실행 장치를 제어하고,
    상기 제어 회로는 상기 제어 전송 명령 수신에 응답하여, 상기 제어 회로로 부터 상기 실행 장치의 제어 전송을 초기화하는 방법.
  3. 실행 장치를 구비하는 데이터 처리 시스템에서,
    상기 실행 장치에 제1세트의 입력들 및 제2세트의 입력들을 제공하는 단계와,
    상기 데이타 처리 시스템에 제1세트의 명령들 및 제2세트의 명령들을 제공하는 단계와,
    상기 데이터 처리 시스템에서, 상기 제1세트의 명령들에 속하지만 상기 제2세트이 명령들에 속하지 않는 제1명령를 수신하는 단계와,
    상기 제1명령의 수신에 응답하여, 상기 제1세트의 입력들에 제공된 제어신호들에 의해서 상기 실행 장치를 제어하는 단계와,
    상기 데이타 처리 시스템에서, 상기 제1명령과 다른 확장 가능한 제어 명령를 수신하는 단계와,
    상기 확장가능한 제어 명령의 수신에 응답하여, 상기 데이타 처리 시스템이 상기 제2세트의 명령들을 수신하도록 하는 단계와,
    상기 데이타 처리 시스템에서, 상기 제2세트의 명령들의 부분이지만 상기 제1세트의 명령들에 속하지 않는 제2명령을 수시하는 단계와,
    상기 제2명령의 수신에 응답하여, 상기 제2세트의 입력들에 제공된 제어 신호에 의해서 상기 실행 장치를 제어하는 단계와,
    상기 제1명령과는 다른 제2확장가능한 제어 명령을 수시하는 단계와,
    상기 제2확장가능한 제어 명령의 수신에 응답하여, 상기 데이타 처리 시스템이 상기 제1세트의 명령들을 수신하도록 하는 단계와,
    상기 제1세트의 명령들에서 임의의 명령을 수신하는 단계와,
    상기 임의의 명령의 수신에 응답하여, 상기 제1세트의 입력들에 제공된 제어 신호에 의해서 상기 실행 장치를 제어하는 단계를 포함하는 방법.
  4. 중앙 처리 장치에서 제1 및 제2 명령을 처리하는 방법에 있어서,
    제1 명령 세트에 속하지만 제2 명령 세트에 속하지 않는 제1명령을 제1세트의 입력들에서 수신하는 단계와,
    상기 제1명령을 처리하는 단계와,
    상기 제1 명령과는 다른 전송 명령을 제1 세트의 입력들에서 수신하는 단계와,
    상기 전송 명령을 응답하여, 상기 제1세트의 입력들에서 제2세트의 입력들로 상기 실행 장치의 제어를 전송하는 단계와,
    제2명령 세트에 속하지만 상기 제1명령 세트에 속하지 않는 제2명령을 상기 제2세트의 입력들에서 수신하는 단계와,
    상기 제2 명령을 처리하는 단계와,
    상기 제1명령 세트에 속하고 제1 알고리즘 함수를 순차적으로 수행하는 제3 명령 및 제4명령을 상기 전송 명령들을 수신하기 앞서 상기 제1세트의 입력들에서 수시하는 단계를 포함하는 방법.
KR1019930023651A 1992-11-27 1993-11-09 확장가능한 중앙 처리 장치 KR100275059B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US982,327 1992-11-27
US07/982,327 US5848289A (en) 1992-11-27 1992-11-27 Extensible central processing unit

Publications (2)

Publication Number Publication Date
KR940012160A KR940012160A (ko) 1994-06-22
KR100275059B1 true KR100275059B1 (ko) 2000-12-15

Family

ID=25529045

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019930023651A KR100275059B1 (ko) 1992-11-27 1993-11-09 확장가능한 중앙 처리 장치

Country Status (5)

Country Link
US (1) US5848289A (ko)
EP (2) EP1376336A3 (ko)
JP (2) JP3681182B2 (ko)
KR (1) KR100275059B1 (ko)
DE (1) DE69333853T2 (ko)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6044453A (en) * 1997-09-18 2000-03-28 Lg Semicon Co., Ltd. User programmable circuit and method for data processing apparatus using a self-timed asynchronous control structure
US6546479B1 (en) * 1998-02-10 2003-04-08 Koninklijke Philips Electronics N.V. Reduced instruction fetch latency in a system including a pipelined processor
US6099585A (en) * 1998-05-08 2000-08-08 Advanced Micro Devices, Inc. System and method for streamlined execution of instructions
US6317820B1 (en) * 1998-06-05 2001-11-13 Texas Instruments Incorporated Dual-mode VLIW architecture providing a software-controlled varying mix of instruction-level and task-level parallelism
US6510444B2 (en) 1999-06-16 2003-01-21 Motorola, Inc. Data processor architecture and instruction format for increased efficiency
WO2001069411A2 (en) 2000-03-10 2001-09-20 Arc International Plc Memory interface and method of interfacing between functional entities
WO2001073571A1 (en) * 2000-03-27 2001-10-04 Infineon Technologies Ag Method and apparatus for adding user-defined execution units to a processor using configurable long instruction word (cliw)
JP3957948B2 (ja) 2000-04-12 2007-08-15 富士通株式会社 演算処理装置
JP3930729B2 (ja) * 2001-11-30 2007-06-13 富士通株式会社 半導体装置並びにこれを用いたフラットパネル表示装置及びそのデータドライバ
JP4002151B2 (ja) * 2002-07-31 2007-10-31 富士通株式会社 情報処理装置
EP1408405A1 (en) * 2002-10-11 2004-04-14 STMicroelectronics S.r.l. "A reconfigurable control structure for CPUs and method of operating same"
US8145882B1 (en) * 2006-05-25 2012-03-27 Mips Technologies, Inc. Apparatus and method for processing template based user defined instructions
US8688933B2 (en) 2006-08-31 2014-04-01 Hewlett-Packard Development Company, L.P. Firmware component modification
CN101539849B (zh) * 2009-04-21 2013-10-16 北京红旗胜利科技发展有限责任公司 一种处理器以及一种寄存器选通方法
US20120226890A1 (en) * 2011-02-24 2012-09-06 The University Of Tokyo Accelerator and data processing method
US9274797B2 (en) 2012-12-19 2016-03-01 International Business Machines Corporation Computer processor with instruction for execution based on available instruction sets

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4236204A (en) * 1978-03-13 1980-11-25 Motorola, Inc. Instruction set modifier register
US4293907A (en) * 1978-12-29 1981-10-06 Bell Telephone Laboratories, Incorporated Data processing apparatus having op-code extension register
US4374418A (en) * 1979-06-27 1983-02-15 Burroughs Corporation Linear microsequencer unit cooperating with microprocessor system having dual modes
DE68927783T2 (de) * 1988-05-03 1997-09-25 Wang Laboratories Mikroprozessor mit äusserem steuerungsspeicher
EP0461257B1 (en) * 1989-01-17 1997-04-23 Fujitsu Limited Microprocessor sequencer for controlling the decoding of varable length instructions
US5150468A (en) * 1989-06-30 1992-09-22 Bull Hn Information Systems Inc. State controlled instruction logic management apparatus included in a pipelined processing unit
US5430862A (en) * 1990-06-29 1995-07-04 Bull Hn Information Systems Inc. Emulation of CISC instructions by RISC instructions using two pipelined stages for overlapped CISC decoding and RISC execution
JPH0476626A (ja) * 1990-07-13 1992-03-11 Toshiba Corp マイクロコンピュータ
EP0871108B1 (en) * 1991-03-11 2000-09-13 MIPS Technologies, Inc. Backward-compatible computer architecture with extended word size and address space
JP2677719B2 (ja) * 1991-05-08 1997-11-17 富士通株式会社 情報処理装置
GB2266606B (en) * 1992-04-27 1996-02-14 Intel Corp A microprocessor with an external command mode

Also Published As

Publication number Publication date
JP2005050365A (ja) 2005-02-24
JPH0736691A (ja) 1995-02-07
EP0599012B1 (en) 2005-08-10
JP3816932B2 (ja) 2006-08-30
US5848289A (en) 1998-12-08
EP0599012A3 (en) 1995-01-04
EP1376336A2 (en) 2004-01-02
EP0599012A2 (en) 1994-06-01
DE69333853T2 (de) 2006-04-13
KR940012160A (ko) 1994-06-22
EP1376336A3 (en) 2004-01-14
JP3681182B2 (ja) 2005-08-10
DE69333853D1 (de) 2005-09-15

Similar Documents

Publication Publication Date Title
KR100275059B1 (ko) 확장가능한 중앙 처리 장치
KR100272937B1 (ko) 마이크로프로세서및멀티프로세서시스템
EP0267613B1 (en) Micro processor capable of being connected with coprocessor
KR20000076310A (ko) 리스크 구조를 갖는 8 비트 마이크로콘트롤러
JPH04229337A (ja) エミュレータ
US5838934A (en) Host port interface
US5119487A (en) Dma controller having programmable logic array for outputting control information required during a next transfer cycle during one transfer cycle
US5734927A (en) System having registers for receiving data, registers for transmitting data, both at a different clock rate, and control circuitry for shifting the different clock rates
KR100287600B1 (ko) 확장가능한레지스터를제공하는데이타처리시스템및그방법
US5606715A (en) Flexible reset configuration of a data processing system and method therefor
EP0226991B1 (en) Data-processing device
JP2001075804A (ja) 拡張命令を処理する並列プロセッサ
JP2806075B2 (ja) マイクロコンピュータ
JPH0685147B2 (ja) 半導体回路装置
US4866608A (en) Microprocessor with improved execution of instructions
US20020004877A1 (en) Method and system for updating user memory in emulator systems
JPS6362778B2 (ko)
JP3977894B2 (ja) データ処理システムおよび柔軟なリセット設定方法
US5864691A (en) Central processing unit with a selector that bypasses circuits where processing is not required
JP3097602B2 (ja) データ処理装置
JP2510173B2 (ja) アレ−・プロセツサ
JP2003296296A (ja) マイクロコントローラ
JPS62276630A (ja) デ−タ処理装置
JP2004062427A (ja) マイクロプロセッサ
JPS63129430A (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: 20130909

Year of fee payment: 14

EXPY Expiration of term