KR950001415B1 - 정보처리장치 - Google Patents

정보처리장치 Download PDF

Info

Publication number
KR950001415B1
KR950001415B1 KR1019920007800A KR920007800A KR950001415B1 KR 950001415 B1 KR950001415 B1 KR 950001415B1 KR 1019920007800 A KR1019920007800 A KR 1019920007800A KR 920007800 A KR920007800 A KR 920007800A KR 950001415 B1 KR950001415 B1 KR 950001415B1
Authority
KR
South Korea
Prior art keywords
state
counter
command
information processing
processing apparatus
Prior art date
Application number
KR1019920007800A
Other languages
English (en)
Other versions
KR920022092A (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 KR920022092A publication Critical patent/KR920022092A/ko
Application granted granted Critical
Publication of KR950001415B1 publication Critical patent/KR950001415B1/ko

Links

Classifications

    • 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
    • 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/3861Recovery, e.g. branch miss-prediction, exception handling
    • 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/3017Runtime instruction translation, e.g. macros
    • 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/30189Instruction operation extension or modification according to execution mode, e.g. mode flag
    • 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/32Address formation of the next instruction, e.g. by incrementing the instruction counter
    • G06F9/322Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address
    • G06F9/327Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address for interrupts

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Executing Machine-Instructions (AREA)
  • Computer And Data Communications (AREA)

Abstract

내용없음.

Description

정보처리장치
제1도는 본 발에 관련되는 부분들만을 나타내는 종래의 정보처리장치의 개통도.
제2도는 본 발명에 의한 정보처리장치의 일반 구성도.
제3도는 본 발명에 의한 정보처리장치의 기본 구성도.
제4도는 본 발명에 의한 일실시예의 회로도.
제5도는 본 발명이 적용된 전체 정보처리장치의 공지예의 개통도.
제6도는 제5도의 CPU 코어의 상세예를 나타낸 도면.
제7도는 디코더의 기능을 설명하는 구성도.
제8도는 제7도에 보인 회로의 동작을 설명하는 타임챠트.
제9도는 디코더의 구체예시도.
제10도는 제9도에 보인 디코더의 동작을 설명하는 타임챠트.
제11도는 디코더맵의 일예도.
제12도는 상태카운터와 상태변경수단의 구체예시도.
제13도는 제12도에 보인 카운터셀의 내부도.
제14도는 제12도의 카운터셀들의 동작을 설명하는 타임챠트.
제15도는 제12도에 보인 회로기능으로서 등가기능을 행하는 회로의 다른예시도.
본 발명은 정보처리장치 예를 들어 마이크로프로세서 또는 마이크로콘트롤러등의 정보처리장치에서 명령발생기술에 관한 것이다.
근년에, CPU(central processing unit)와 MPU(micro processing unit)등의 수많은 정보처리장치가 개발되었다.
마이크로컴퓨터의 예를 들어 정보처리장치와 같은 마이크로프로세서 또는 마이크로콘트롤러에서는 제조비용을 줄이고 제품의 신뢰성을 향상시키는 것이 요망되고 있으며 또한 제한된 하드웨어로서 최대 성능을 실형시키는 것이 요청되고 있다.
종래의 정보처리장치에서는 도면을 참조하여 후술하는 바와 같이 특정처리 예를 들어 인터럽트(interrupt)처리 및 리세트처리를 위한 코드를 할당할때, 사용자 명령(user instruction)과의 중복을 피하기 위해 전용코드를 할당해 왔다. 따라서 인스트럭션맵(instruction map)에서는 예를들어 사용자에 의해 사용될 수 없는 2코드가 생기므로 다음과 같은 문제점이 발생되었다.
즉, 통상설계시에 사용자에 의해 사용될 수 있는 명령의 절대수가 예를 들어 상술한 2특정처리(인터럽트처리와 리세트처리)용 명령수만큼 감소되므로 사용자측의 인스트럭션맵의 사용효율이 떨어진다.
또한 사용자가 달라지고 또한 이들 특정처리 동작들(인터럽트처리 및 리세트처리)에 할당된 코드들이 사용될때 그 동작들을 보장하는 것이 불가능하고 또한 예상치 못한 사고가능성들이 증가하게 된다.
그러므로 본 발명의 목적은 인스트럭션맵의 이용효율을 상승시키고 신뢰성이 높은 정보처리장치를 제공하는데 있다.
상술한 목적을 달성하기 위해 본 발명의 장치는 기본적으로 복수의 사용자명령을 순차 유지하기 위한 명령레지스터와, 상기 유지된 사용자 명령코드에 상응하여 명령을 실행하는 동안 변동하는 정보처리장치의 내부 상태번호를 출력하는 상태카운터와, 상술한 명령레지스터의 내용과 상태카운터의 내용에 준하여 정보처리장치의 상이한 부분들에 대해 다양한 제어신호들을 발생시키는 디코더와, 소정의 특정처리동작이 정보처리장치내에서 실행되야 할때를 검출하고 또한 검출시 상술한 명령레지스터내에 복수의 사용자 명령으로부터 기선택된 특정명령코드를 기억하는 검출/기억수단과, 특정명령코드를 사용자 명령코드에 의해 한정할 수 없는 또다른 명령코드로 변환하도록 상술한 검축/기억동작이 수행될 때 상기 상태카운터와 협조하여 상기 상태 카운터의 상술한 내부상태번호를 변경시키는 상태변경수단을 포함한다.
본 발명의 상술한 목적 및 특징들은 첨부도면을 참조하여 다음에 설명하는 본 발명의 양호한 실시예의 설명으로부터 명백히 이해될 수 있다.
본 발명의 실시예를 설명하기 전에 우선 종래 기술과 문제점들을 관련 도면들을 참조하여 설명하겠다.
제1도는 본 발명에 관련된 부분들만을 나타내는 종래의 정보처리장치의 개통도이다. 도면은 자주 사용되는 정보처리장치의 일예로서 마이크로프로세서를 나타낸다. 마이크로프로세서(1)는 상술한 소정의 특정처리의 예로서 인터럽트처리와 리세트처리의 경우를 나타낸다.
마이크로프로세서(1)는 일반적으로, 명령레지스터(2), 상태카운터(3), 디코더(4), 인터럽트처리회로(5), 인터럽트코드세팅부(6), 리세트처리회로(7), 리세트코드세팅부(8), 사용자 프로그램메모리(9)로 구성된다.
참조번호 B1~B4는 버퍼들이고 AND1은 AND게이트이다. 명령레지스터(2)는 메모리(9)로부터 마이크로프로세서의 제어회로(이 경우 디코더(4))로 입력을 위해 인출되는 명령코드들을 일시적으로 기억한다. 명령코드에 대한 처리를 상행하는 그 시간동안 상태카운터(3)는 그 명령코드에 따라 정보처리장치의 내부상태를 나타낸다.
디코더(4)는 명령레지스터(2)와 상태카운터(3)의 값에 따른 각종 제어신호들을 발생한다.
그다음 동작모드에 관해 설명하겠다.
CPU 동작모드로는 주로 3가지 타입 즉, 명령실행, 인터럽션처리 및 리세트처리가 있다.
통상적으로 사용자 명령을 실행하는 동안 프로그램가능 논리어레이(PLA)등으로 구성되는 디코더(4)는 사용자명령실행중 명령레지스터(2)와 명령의 어떤 단계가 실행되고 있는지를 나타내는 상태카운터(내부상태 카운터)(3)에 유지된 명령코드의 내용을 디코드하여 상술한 각종 타입의 제어신호들을 발생시키도록 사용된다.
인터럽션처리와 리세트처리중 소정의 특정처리동작들에 있어 순차 제어방법으로서 여러가지를 예로 들 수 있다. 그들중 하나로서 인터럽트처리와 리세트처리에 명령코드들을 할당하는 방법이 있다.
이 방법에서는 인터럽트 요청 또는 리세트 요청이 검출되면 코드발생부(6 또는 8)에 의해 상응하는 명령코드가 공급되어 명령레지스터(2)내에 기억되며 또한 인터럽트처리 또는 리세트처리의 제어를 위해서는 기존의 디코더(4)가 사용된다. 이 경우에 그 다음 명령코드의 인출동작은 AND 게이트(1)(AND1)에 의해 스위칭게이트(SG3)을 폐쇄함으로써 일시적으로 정지된다.
즉, 인터럽트처리 또는 리세트처리용 코드를 할당하는 경우에는 사용자명령(일반명령)과의 중복을 피하기 위해 인터럽트처리와 리세트처리를 나타내는 코드들에 대해 전용코드를 사용한다. 그 결과 전술한 2문제점들이 발생한다.
제2도는 본 발명에 의한 정보처리장치의 일반구성도이다. 상태카운터(3)는 특정명령코드에 대한 복수의 상태들을 나타내는 값들중에서 어떤 값을 선택적으로 제공함으로써 동일 명령코드에 대해 복수의 동작명령들을 할당하도록 구성된다.
제3도는 본 발명에 의한 정보처리장치의 기본구성도이다. 본 발명에 의한 정보처리장치는 복수의 사용자 명령코드들을 순차로 수신하여 수신된 사용자 명령코드들에상응하는 명령들의 처리가 실행되는 동안 사용자 명령코드들을 기억 및 유지시켜주는 명령레지스터(2)와, 상기 명령레지스터(2)내에 기억 및 유지된 사용자명령에 상응하는 명령들의 처리실행으로 인해 처리단계들이 증가됨에 따라 변동하는 처리장치의 내부상태를 나타내는 번호를 출력하는 상태카운터(3)와, 상기 명령레지스터(2)내에 기억 및 유지되는 사용자 명령코드들과 상기 상태카운터(3)에 의해 나타낸 상기 내부상태번호를 입력으로서 수신하는 디코더(4)를 포함하며, 또한 본 발명의 가중 중요한 점은, (a) 상기 처리장치내에서 소정의 특정처리동작이 실행되어야 할때를 검출하고 또한 검출시 상기 명령레지스터내에 복수의 사용자 명령코드들로 부터 기선택된 특정명령코드를 기억하는 검출/기억수단(10)과, (b) 상기 검출 및 기억동작이 특정명령코드를 사용자 명령코드들에 의해 한정될 수 없는 다른 명령코드로 변환하도록 수행될 때 상기 상태카운터(3)와 협동하여 상기 상태카운터(3)의 상기 내부상태번호를 변경시키는 상태변경수단(20)을 더 포함하는 구성에 있다.
상태변경수단(20)은 상기 검출/기억수단(10)에 의한 검출이 있을때 작동된다.
다른 방법으로 소정의 특정처리의 발생이 장치의 외부에서 검출되면, 그 검출신호를 사용하여 상태변경수단(20)을 작동시킨다(제3도에서 "외부검출"참조).
제4도는 본 발명에 의한 실시예를 나타내는 회로도이다. 본 실시예에서는 소정의 특정처리의 예로서 인터럽트처리와 리세트처리를 사용한다, 전도면에 걸쳐 동일구성요소들을 동일참조번호 또는 심볼로 나타낸다.
본 실시예의 정보처리장치 즉, 마이크로프로세서(1)는 일반적으로 명령레지스터(2), 상태카운터(3), 디코더(4), 검출/기억수단(10)의 부분들 즉, 인터럽트처리회로(5) 및 인터럽트 상수세팅부(6a)와 다른 부분들 즉, 리세트처리회로(7) 및 리세트상수세팅부(8a), 사용자 프로그램 메모리(9), 상태변경수당(20)을 형성하는 상수세팅부(21)로 구성된다.
도면에서 OR1은 OR게이트이고, AND1는 AND게이트이다.
본 실시예에서 상태카운터(3)는 4비트(0,1,2,3)로 구성된다.
인터럽트상수세팅부(6a)와 리세트상수세팅부(8a)에 대해서는 예를들어 논리 "0"과 "1"의 명령코드들을 세팅했다. 사용자 명령들에 대한 이들 코드들의 의미는 예를들어 "비동작(NO OP ERATION)" 명령(NOP)과 "JUMP"명령(JMP)이다. 검출/기억수단(10)이 특정처리로서 인터럽트 요청을 검출하면 그 검출에 의해 명령레지스터(2)로의 그다음 사용자 명령코드의 전송(transfer)을 일단 정지(스위칭 게이트(SG3)가 폐쇄됨)하고, 인터럽트처리에 미리 할당된 특정명령코드(NOP)를 개방된 스위칭게이트(SG1)를 통해 명령레지스터내에 기억한다.
상태변경수단(20)은 상태카운터(3)에 의해 보인 내부상태가 인터럽트처리상태에 부응하도록 설정된다.
검출/기억수단(10)이 특정처리로서 리세트입력을 검출하면 그 검출에 의해 명령레지스터(2)로의 그다음 사용자 명령코드의 전송을 일단 정지하고(스위칭게이트(SG3)가 폐쇄됨), 리세트처리에 미리 할당된 특정명령코드(JMP)를 개방된 스위칭게이트(SG1)을 동해 명령레지스터내에 기억한다.
상태변경수단(20)은 상태카운터(3)에 의해 보인 내부상태가 리세트처리상태에 부응하도록 세트된다.
상태카운터(3)는 사용자 명령코드들에 대해 내부상태번호를 0부터 증가시트는 한편 상태변경수단(20)은 상태카운터를 제어하여 소정의 내부상태번호 0부터 예를들어 8까지 계속 증가한다.
그다음, 동작모드에 대해 설명하겠다.
아래표는 각 명령들(처리)의 수순(상태카운터(3)의 동작수순)을 나타낸다.
본 실시예에서는 모든 명령들의 상태 "15"로서 종료하도록 설계되어 있다(그러나 상태 "15"에서의 동작은 모든 명령들에 공통이 되며 또한 그다음 명령코드에 대한 일출동작이다). 상태카운터(3)에 의해 수순의 건너뜀(jump)(NOP명령등에 의해 상태 "0"으로부터 "15"로 건너뜀)은 디코더(4)의 제어에 의해 행해진다.
[인터렴션처리의 경우]
우선, 사용자 명령의 실행중간에 CPU로 부터 인터럽트가 발생되면 인터럽트상수세팅부(6a)는 명령레지스터(2)내에 강제로 0을 세팅하고 또한 상수세팅부(21)는 상태카운터(3)내에 8을 세팅한다. 소정의 인터럽트처리는 상태들 9, 10 및 15을 통해 디코더(4)에 의해 실행된다.
여기서 명령코드0는 사용자 명령들중에서 NOP를 의미하지만 인터럽터트처리외의 경우에는 상태카운터(3)가 상수세팅부(21)에 의해 세팅되지 않는다. 이 경우에 상태는 0부터 시작하여 상태 8을 통하지 않고 직접 상태15로 건너뛴다. 그러므로 2타입의 처리동작에 있어 혼동없이 NOP 처리와 인터럽트처리가 서로 독립하여 개별적으로 수행될 수 있다.
[리세트처리의 경우]
마찬가지로, 리세트입력이 CPU로부터 수신되면, 리세트상수세팅부(8a)는 명령레지스터(2)내에 1을 강제로 세팅하고 상수세팅부(10)는 상태카운터(3)내에 8을 세팅한다. 소정의 리세트처리는 디코더(4)에 의해 상태들 9, 10, 11, 12 및 15를 통해 실행된다.
여기서도 역시 명령코드 1을 사용자 명령들중 JUMP 명령과 일치하지만 리세트처리이외의 경우에 상태카운터(3)는 상수세팅부(10)에 의해 세팅되지 않는다. 이 경우에 상태는 0부터 시작하여 상태들 1과 2~18을 통하지 않고 상태 15로 건너뛴다. 그러므로 2타입의 처리동작에 있어 혼동없이 JUMP 처리와 리세트처리가 서로 독립하여 실행될 수 있다.
그러므로 JUMP 처리와 리세트처리가 명령코드들에서 중복되는 동안 동작과 명령들에 있어 혼동없이 사용자 명령들과 별도로 처리될 수 있다.
이러한 방식으로 본 실시예에서는 인터럽트처리와 리세트처리에 대해 전용코드들을 사용하지 않기 때문에 종래의 예에 비하여 절대적인 명령수를 증가시키는 것이 가능하다.
그러므로 제한된 하드웨어 제조원에서 최대성능을 얻는 것이 가능하고 또한 사용자가 사용하는데 불편한 명령코드들이 더 이상 존재하지 않으므로 사용자가 실제 사용하는 동안 사고를 사전에 방지하는 것이 가능하며 또한 신뢰성을 향상시키는 것이 가능하다.
상태카운터(3)가 4비트 타입이고, 인터럽트처리와 리세트처리의 코드들의 0과 1이고 이 코드들과 중복되는 사용자 명령들이 NOP와 JMP 명령인 것으로 가정하여 상술한 실시예를 설명했으나 본 발명은 이에 한정되지 않고 상태카운터(3)의 비트수, 인터럽트처리코드, 리세트처리코드 및 이들과 중복되는 명령코드들의 어떠한 조합도 사용하는 것이 가능하다.
제5도는 본 발명이 적용된 전체 정보처리장치의 공지예의 개통도이다. 도면은 1칩 마이크로컴퓨터를 나타낸다. 본 발명은 CPU요부(도면에서 상부좌측)의 내부에 적용됐다.
제6도는 제5도에서 CPU요부의 상세예를 나타내는 도면이다. 도면의 하부에 보인 3블록들은 이미 언급한 부재들(2, 3, 4)에 해당한다. 도면들에서 약어는 도면위에서부터 다음 뜻을 갖는다.
PC : 프로그램카운터
ALU : 연산 및 놀리부
PS : 프로그램 상황
H : 고
L : 저
SP : 스택포인터
A : 누산기
IX : 인덱스
EP : 확장포인터
제7도는 디코더의 기능을 설명하는 구성도이다. 디코더(4)와 이와는 협동하는 명령레지스터(IR)(2)의 상태카운터(SC)(3)는 전술한 바와 같다. ALU는 제6도에 도시됐다. 레지스터(A, B, C)는 버스를 통해 ALU와 데이타를 전송한다.
디코더(4)의 출력(여러타입의 제어신호들)은 게이트들(G1, G2~G6)에 부분적으로 입력된다. 이 게이트들의 개방 및 폐쇄는 개별적으로 제어된다. 디코더(4)는 또한 모드신호를 출력하여 ALU의 동작모드(가산, 감산등)을 저장한다.
제8도는 제7도에 보인 회로의 동작을 설명하는 타임챠트이다. 도면에서 IR, SC, G1~G6, 및 모드는 제7도에 상응하는 부분들을 나타낸다. 이 도면의 예에 의하면 , ADD 명령이 실행되어 레지스터들(A, B)의 데이타가 가산되어 그 결과가 레지스터(C)내에 기억된다.
제1사이클에서 게이트들(G1, G2)이 개방되어 데이타(A)가 ALU의 한 입력에 입력된다.
제2사이클에서 게이트들(G3, G3)이 개방되어 데이타(B)가 ALU의 다른 입력에 입력된다.
제3사이클에서 게이트들(G5, G5)이 개방되어 ALU의 가산의 결과가 레지스터(C)로 전송된다.
제9도는 디코더의 구체예를 나타내는 도면이다. 도시된 바와 같이 프로그램가능 논리어레이(PLA)로 구성된다. IR[0], IR[1]ㆍㆍㆍ은 명령레지스터(2)의 비트들(제1비트, 제2비트등)의 출력들을 나타내는 한편, SC[0], SC[1]ㆍㆍㆍ은 상태카운터(SC)(3)의 비트들(제1비트, 제2비트ㆍㆍㆍ)의 출력들을 나타낸다.
제10도는 제9도에 보인 디코더의 동작을 설명하는 타임챠트이다. 제9 및 10도를 참조하면 제9도의 컬럼(41)내의 트랜지스터 그룹내의 맨위 트랜지스터(P-채널 MOSFET)가 방전신호의 L레벨(제10도에서L)에 의해 번저 도통되어 출력(OUT1)을 Vcc로 충전한다. 이후, 방전신호가 H레벨(제10도에서 H)이 되면 맨아래 트랜지스터(N-채널 MOSFET)가 도통된다.
여기서 컬럼(41)에서 IR[1]~IR[2]에 상응하는 트랜지스터들(간략히 하기 위해 3비트만 확보됐으며 이하 동일함)은 IR[0]~IR[2]이 111일 때 모두 도통한다. 또한 SC[0]~SC[2]에 상응하는 트랜지스터들은 SC[0]~SC[2]가 101일 때 모두 도통한다. 그러므로 출력(OUT1)은 제10도에 보인 바와 같이 L레벨이 된다. SC[1]에 상응하는 트랜지스터는 인버터(INV)를 통해 SC[1] 비트에 접속된 게이트를 갖고 있으므로 SC[1]이 0일 때 트랜지스터가 온된다. OUT1의 출력은 레벨이 반전될때 전술한 제어신호들중 하나가 된다.
컬럼(42)내의 트랜지스터그룹들에도 컬럼(41)에서와 동일하다. IR[0]~IR[2]가 10이고 SC[0]~SC[2]가 110일때 출력L이 OUT2에 나타난다.
제11도는 디코더법의 일예도로서 전술한 표에 상응한다. 도면의 맵은 더욱 상세히 도시되어 있다. 제11도에서 (A), (C) 및 (B)는 제4도에서 (A), (C) 및 (B)에서 나타나는 신호들에 의해 나타낸 정보이고 또한 현상태, 제어신호의 필드 및 그다음 상태를 특정하는 필드에 관한 정보이다.
상술한 P와 Q는 통상의 명령들로서 P는 4명령사이클로 구성되며 Q는 6명령사이클로 구성된다. 도면에서 R은 그다음 명령의 인출을 나타낸다.
명령(P)에 관해서는 사이클번호 1에서 그다음 상태를 지정하는 필드가 1로서 지정되고, 그후 사이클에서 상태는 2(P-2)이다. P-3에서 그다음 상태는 15로서 지정되고, 사이클번호 4에서 상태는 15가 된다. 사이클번호 4에서 그다음 상태를 특정하는 필드는 0이다. 명령(Q)의 현상태는 0에서 시작되고 이후 반복된다.
본 발명의 실시예에서는 통상의 NOP명령이 또한 인터럽트(INT) 명령으로서 사용된다. 통상의 NOP명령이 들어오면 명령의 실행이 NOP-1 및 NOP-2의 2사이클(번호 1과 번호2)에서 완료된다.
그러나 인터럽트(INT) 명령이 들어오면, 상태카운터(3)는 본 발명에 따라 어떤 값(8)으로 프리세트되고 단계들(INT-1ㆍㆍㆍINT6)이 사이클 번호(1'ㆍㆍㆍ6')를 따라 실행된다.
또한 통상의 건너뜀(JMP) 명령이 들어오면, JMP-1ㆍㆍㆍJMP-4가 4사이클(1ㆍㆍㆍ4)동안 실행된다.
그러나 리세트(RST)명령이 들어오면, 상태카운터(3)는 본 발명에 따라 어떤 값(8)으로 프리세트되고 단계들(RST-1ㆍㆍㆍRST-6)이 6사이클(번호1'ㆍㆍㆍ6')동안 실행된다.
근본적으로 상태변경수단(20)은 상술한 특정명령코드(NOP, JMP)가 사용하는 내부상태번호 중복되지 않는 내부상태번호로부터 증분하도록 동작한다.
또한 상태변경수단(20)은 상기 특정명령코드(NOP, JMP)가 사용하는 최종 내부상태번호와 상기 특정코드로부터 변환된 다른 명령코드(INT, RST)가 사용하는 최종 내부상태번호가 일치하도록 동작한다.
이러한 식으로 디코더(4)의 설계가 간략해지므로 하드웨어 역시 간단하게 된다.
그러므로 특정명령코드를 사용자 명령코드들중에서 선택한 경우, 상기 복수의 사용자 명령코드들중에서 내부상태들의 수가 작아지는 것이 유리하다.
제12도는 종래 카운터와 상태변경 수단의 구체예의 도면이다.
제12도에서 상태카운터(3)와 상태변경수단(20)은 근본적으로 복수의 카운터셀들(31), OR게이트들(23), 캐리인단자(carry-in terminal)(Cin)와 캐리아웃단자(carry-out terminal)(Cout)에 의해 종속접속된 승산기들(24)로 구성된다.
카운터들의 출력단자들(Q)은 디코더(4)의 입력에 접속된다(제4도에서 (A)로 칭함).
카운터셀들(31)의 기입단자들(W)은 2입력으로서 디코더(4)로부터 부하신호와 검출/기억수단(10)으로부터 검출신호(제4도에서 OR1으로부터 출력됨)를 수신하는 OR게이트들의 출력들에 접속된다.
카운터셀들(31)의 데이타단자들(Din)은 디코더로부터의 부하신호와 함께 출력되는 부하데이타 BITS(b0,b1,b2,b3)와 검출신호와 함께 출력된 0이후의 소정의 내부상태번호를 나타내는 BITS(모두 0이 주어지는 접지선(25))를 선택적으로 출력하는 승산기들(24)의 출력에 상응하는 BIT에 접속된다.
제13도는 제12도에 보인 카운터셀의 내부도이다.
카운터셀들(31)은 D-플립플롭(23)을 갖고 있다.
또한, 그들은 D-플립플롭(32)의 데이타입력단자(D)에 캐리인단자로부터의 신호와 캐리아웃단자로부터의 신호를 선택적으로 입력하는 다른 승산기(33)를 갖고 있다.
통상의 명령이 실행될때 승산기들(33)은 Cin측의 입력신호를 선택하고 또한 상태카운터(3)는 0부터 위로 카운트한다.
한편 본 발명하에서 발생된 처리(인터럽트 및/또는 리세트)가 실행될때 Din측에서 입력신호가 선택된다. 이때에 4카운트셀들(31)의 입력데이타(Din)은 1000이 된다. 제12도에서 출력들(60~63)은 8(제4도에서 8참조)을 나타낸다.
제14도는 제12도의 카운터셀들의 동작을 설명하는 타임챠트이다. 도면에서 CK는 클록입력이고, 제12및 13도에 잘 나타나 있다. 참조번호들(60~63)은 제12도에 보인 카운터셀들(31)의 출력들이다. OR23으로 제12도에서 OR23으로 부터의 출력을 나타낸다. OR23으로부터 출력이 없으면 상태카운터(31)의 출력(60~63)은 클록들(CK)의 하강과 더불어 위로 카운트 즉 n→n+1→n+2→ㆍㆍㆍ한다.
그러나 OR23으로부터 출력이 생기면, 상태카운터(31)의 출력(60~63)은 8로 강제로 프리세트된 다음 클록들(CK)의 하강과 더불어 위로 카운트 즉, 8→9→10ㆍㆍㆍ한다.
제15도는 제12도에 보힌 회로기능과 등가기능을 수행하는 회로의 다른예를 나타내는 도면이다. 이 구성에 의하면, 카운터셀(31)과 승산기 (24)의 각 쌍에 상응하는 기능들은 카운터셀들(35)에 의해 비동기하여 강제되는 리세트 입력단자들(RST)에 대해 실현되며 또한 0 이후의 소정의 내부상태변호를 나타내는 BITS(8)가 카운터셀들(35)내의 상응하는 BIT(D)에서 프리세트된다. 이 구성에 의하면 제12도의 승산기들(24)은 불필요하게 된다.
본 발명에서는 외부로부터 입력되는 상태세팅신호에 따라 특정명령코드(NOP, JMP)에 대한 인터럽트처리및/또는 리세트처리를 나타내는 값을 상태카운터(3)에 제공함으로써 동일명령코드에 복수의 동작명령들을 할당하는 것이 가능하다.
그러므로 인터럽트처리와 리세트처리를 위한 전용코드들을 설정하지 않고서도 독립적인 동작들을 실현시키는 것이 가능하다.

Claims (14)

  1. 복수의 사용자 명령코드들을 순차로 수신하여 수신된 사용자 명령코드들에 상응하는 명령들의 처리가 실행되는 동안 사용자 명령코드들을 기억 및 유지시켜 주는 명령레지스터(2)와, 상기 명령레지스터(2)내에 기억 및 유지된 사용자 명령에 상응하는 명령들의 처리실행으로 인해 처리단계들의 증가됨에 따라 변동하는 처리장치의 내부상태를 나타내는 번호를 출력하는 상태카운터(3)와, 상기 명령레지스터(2)내에 기억 및 유지되는 사용자 멸령코드들과 상기 상태카운터(3)에 의해 나타낸 상기 내부상태번호를 입력으로서 수신하는 디코더(4)를 포함하는 또한, (a) 상기 처리장치내에서 소정의 특정처리동작이 실행되여 할 때는 검출하고 또한 검출시 상기 병령레지스터내에 복수의 사용자 명령코드들로부터 기선택된 특정 명령코드를 기억하는 검출/기억수단(10)과, (b) 상기 검출 및 기억 동작이 특정명령코드를 사용자 명령코드들에 의해 한정될 수 없는 다른 명령코드로 변환하도록 수행될때, 상기 상태카운터(3)와 협동하여 상기 상태카운터(3)의 상기 내부상태번호를 변경시키는 상태변경수단(20)을 더 포함하는 것이 특징은 정보처리장치.
  2. 제1항에 있어서, 상기 상태카운터(3)는 사용자 명령코드들에 대해 상기 내부상태번호를 0부터 증분하는 한편 상태변경수단(20)은 0의 내부상태번호로부터 계속 증분하도록 상태카운터를 제어하는 것이 특징인 정보처리장치.
  3. 제2항에 있어서, 상기 상태변경수단(20)은 상기 특정명령코드가 사용하는 내부상태번호와 중복되지 않는 내부 상태번호로부터 증분하도록 동작하는 것이 특징은 정보처리장치.
  4. 제3항에 있어서, 상기 상태변경수단(20)은 상기 특정명령코드가 사용하는 최종내부상태번호와 상기 특정코드로 부터 변환된 다른 명령코드가 사용하는 최종내부상태번호가 일치하도록 동작하는 것이 특징인 정보처리장치.
  5. 제1항에 있어서, 상기 특정명령코드는 상기 복수의 사용자 명령코드들중에서 작은 내부상태번호들을 갖는 사용자 명령코드들중에서 선택되는 것이 특징은 정보처리장치.
  6. 제1항에 있어서, 상기 상태변경수단(20)은 상기 검출/기억수단(10)에 의해 검출이 있을때 작동되는 것이 특징인 정보처리장치.
  7. 제1항에 있어서, 상기 소정의 특정처리의 발생이 장치의 외부에서 검출되고 또한 상기 검출신호가 상기 상태변경수단(20)을 작동시키도록 사용되는 것이 특징인 정보처리장치.
  8. 제1항에 있어서, 상기 검출/기억수단(10)은 상기 특정처리로서 인터럽트 요청을 검출하고, 그 검출에 의해 상기 명령레지스터(2)로의 그다음 사용자 명령코드의 전송을 일단 정지하고, 상기 명령레지스터내에 인터럽트처리에 대해 기할당된 측정명령코드를 기억하고, 상기 상태 변경수단(20)은 상기 상태카운터(3)에 의해 나타낸 내부상태가 상기 인터럽트처리상태에 부응하도록 설정되는 것이 특징인 정보처리장치.
  9. 제8항에 있어서, 상기 특정명령코드는 "건너뜀" 명령인 것이 특징인 정보처리장치.
  10. 제1항에 있어서, 상기 검출/기억수단(10)은 상기 특정처리로서 리세트입력을 검출하고 그 검출에의해 상기 명령레지스터(2)로의 그다음 사용자 명령코드의 전송을 일단 정지하고, 상기 명령레지스터내에 리세트처리에 대해 기할당된 특정명령코드를 기억하고, 상기 상태변경수단(20)은 상기 상태카운터(3)에 의해 나타낸 내부상태가 상기 리세트처리상태를 따르도록 세트되는 것이 특징인 정보처리장치.
  11. 제10항에 있어서, 상기 특정명령코드는 "비동작(NOR)"명령인 것이 특징인 정보처리장치.
  12. 제2항에 있어서, 상기 상태카운터(3)와 상기 상태변경수단(20)은 기본적으로 복수의 카운터셀들(31), OR 게이트들(23), 캐리어(Cin)단자들과 캐리아웃(Cout)단자들에 의해 종속접속된 승산기들(24)로 구성되며, 상기 카운터셀들의 출력(Q)단자들은 상기 디코더(4)의 입력에 접속되며, 상기 카운터셀들의 기입단자들은 2입력으로서 상기 디코더로부터의 부하신호와 상기 검출/기억수단(10)으로 부터의 검출신호를 수신하는 상기 OR게이트들의 출력들에 접속되며, 상기 카운터셀들의 데이타단자들은 상기 디코더로부터 부하신호와 함께 출력된 부하데이타 BITS와 상기 검출신호와 함께 출력된 0이후의 소정 내부상태번호를 나타내는 BITS를 선택적으로 출력하는 상기 승산기들의 출력들과 BIT 대응으로 접속되는 것이 특징인 정보처리장치.
  13. 제12항에 있어서, 상기 카운터셀들(31)은 D-플리플롭(32)과 상기 D-플립플롭들의 데이타입력단자들에 상기 캐리어단자로부터의 신호 또는 상기 캐리아웃신호로부터의 신호를 선택적으로 입력하는 다른 승산기들(33)을 갖고 있는 것이 특징인 정보처리장치.
  14. 제13항에 있어서, 카운터셀(13)과 승산기(24)의 쌍들에 상응하는 기능들은 비동기 강제 리세트입력단자들에 대한 카운터셀들(35)에 의해 실현되며 또한 0이후의 소정의 내부상태번호를 나타내는 BIT들이 카운터셀들내의 BIT 대응으로 프리세트되는 것이 특징인 정보처리장치.
KR1019920007800A 1991-05-08 1992-05-08 정보처리장치 KR950001415B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP3102781A JP2677719B2 (ja) 1991-05-08 1991-05-08 情報処理装置
JP91-102781 1991-05-08

Publications (2)

Publication Number Publication Date
KR920022092A KR920022092A (ko) 1992-12-19
KR950001415B1 true KR950001415B1 (ko) 1995-02-24

Family

ID=14336689

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019920007800A KR950001415B1 (ko) 1991-05-08 1992-05-08 정보처리장치

Country Status (5)

Country Link
US (1) US5404554A (ko)
EP (1) EP0514092B1 (ko)
JP (1) JP2677719B2 (ko)
KR (1) KR950001415B1 (ko)
DE (1) DE69227064T2 (ko)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5848289A (en) * 1992-11-27 1998-12-08 Motorola, Inc. Extensible central processing unit
US5692170A (en) * 1995-04-28 1997-11-25 Metaflow Technologies, Inc. Apparatus for detecting and executing traps in a superscalar processor
US6076156A (en) * 1997-07-17 2000-06-13 Advanced Micro Devices, Inc. Instruction redefinition using model specific registers
JP4502532B2 (ja) * 2001-02-23 2010-07-14 株式会社ルネサステクノロジ データ処理装置
US8543796B2 (en) * 2008-11-05 2013-09-24 Intel Corporation Optimizing performance of instructions based on sequence detection or information associated with the instructions
US9135005B2 (en) 2010-01-28 2015-09-15 International Business Machines Corporation History and alignment based cracking for store multiple instructions for optimizing operand store compare penalties
US8938605B2 (en) * 2010-03-05 2015-01-20 International Business Machines Corporation Instruction cracking based on machine state

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE2846537C2 (de) * 1978-10-26 1986-09-18 Standard Elektrik Lorenz Ag, 7000 Stuttgart Mikroprogrammierte Datenverarbeitungseinrichtung
EP0139080B1 (en) * 1980-02-25 1989-08-30 Kabushiki Kaisha Toshiba An information-processing system
US4509114A (en) * 1982-02-22 1985-04-02 International Business Machines Corporation Microword control mechanism utilizing a programmable logic array and a sequence counter
JPS58199499A (ja) * 1982-05-17 1983-11-19 Toshiba Corp デ−タ処理装置
JPS5999550A (ja) * 1982-11-29 1984-06-08 Toshiba Corp マイクロプログラム制御装置
US4498136A (en) * 1982-12-15 1985-02-05 Ibm Corporation Interrupt processor
US4709324A (en) * 1985-11-27 1987-11-24 Motorola, Inc. Data processor control unit having an interrupt service using instruction prefetch redirection
JPS62221729A (ja) * 1986-03-13 1987-09-29 Fujitsu Ltd マイクロプログラム制御方式
US5226122A (en) * 1987-08-21 1993-07-06 Compaq Computer Corp. Programmable logic system for filtering commands to a microprocessor
JPH01263732A (ja) * 1988-04-14 1989-10-20 Sharp Corp マイクロプロセッサーの特定動作処理方式
JPH0795269B2 (ja) * 1988-11-04 1995-10-11 富士通株式会社 命令コードのデコード装置
JPH02183830A (ja) * 1988-12-21 1990-07-18 Internatl Business Mach Corp <Ibm> マイクロプログラム変換機構を有するコンピュータ
US5202964A (en) * 1990-10-26 1993-04-13 Rolm Systems Interface controller including messaging scanner accessing state action table

Also Published As

Publication number Publication date
DE69227064T2 (de) 1999-02-11
JP2677719B2 (ja) 1997-11-17
EP0514092A2 (en) 1992-11-19
US5404554A (en) 1995-04-04
JPH04333141A (ja) 1992-11-20
KR920022092A (ko) 1992-12-19
DE69227064D1 (de) 1998-10-29
EP0514092B1 (en) 1998-09-23
EP0514092A3 (en) 1993-10-20

Similar Documents

Publication Publication Date Title
EP0022622B1 (en) Programmable controller
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
CA1136768A (en) Modular macroprocessing system comprising a microprocessor and an extendable number of programmed logic arrays
JPS6361691B2 (ko)
JPH0128967B2 (ko)
US4005391A (en) Peripheral interrupt priority resolution in a micro program data processor having plural levels of subinstruction sets
US4129901A (en) Plural-sequence control system
US4459660A (en) Microcomputer with automatic refresh of on-chip dynamic RAM transparent to CPU
US4346437A (en) Microcomputer using a double opcode instruction
KR950001415B1 (ko) 정보처리장치
US4434465A (en) Shared microinstruction states in control ROM addressing for a microcoded single chip microcomputer
US4428047A (en) Addressing a control ROM in a microcoded single-chip microcomputer using the output signals of the control ROM
JPS6266322A (ja) デ−タバスバツフア制御回路
US4641278A (en) Memory device with a register interchange function
JPH02161544A (ja) シングルチップマイクロコンピュータ
US4631665A (en) Microprocessor having a programmable logic array
JPH0449142B2 (ko)
KR900005284B1 (ko) 마이크로 컴퓨터
US4866608A (en) Microprocessor with improved execution of instructions
EP0232797B1 (en) Pseudo-microprogramming in microprocessor with compressed control rom and with strip layout of busses, alu and registers
JPS5818647B2 (ja) キ−ニユウリヨクセイギヨソウチ
CA1202727A (en) Microcomputer variable duty cycle signal generator
JPH0210417A (ja) カウンタ回路
RU2199774C1 (ru) Программируемое устройство для управления электроприводами, электронными ключами и сигнализацией
RU2254603C1 (ru) Устройство для построения программируемых цифровых микропроцессорных систем

Legal Events

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

Payment date: 20060210

Year of fee payment: 12

LAPS Lapse due to unpaid annual fee