KR0163179B1 - 데이타 프로세서 - Google Patents

데이타 프로세서 Download PDF

Info

Publication number
KR0163179B1
KR0163179B1 KR1019900004306A KR900004306A KR0163179B1 KR 0163179 B1 KR0163179 B1 KR 0163179B1 KR 1019900004306 A KR1019900004306 A KR 1019900004306A KR 900004306 A KR900004306 A KR 900004306A KR 0163179 B1 KR0163179 B1 KR 0163179B1
Authority
KR
South Korea
Prior art keywords
halfword
instruction
decoder
result
address
Prior art date
Application number
KR1019900004306A
Other languages
English (en)
Other versions
KR900015003A (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 KR900015003A publication Critical patent/KR900015003A/ko
Application granted granted Critical
Publication of KR0163179B1 publication Critical patent/KR0163179B1/ko

Links

Images

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/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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/34Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes

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)

Abstract

내용없음.

Description

데이타 프로세서
제1도는 본 발명의 1실시예에 따른 데이타 처리 장치를 도시한 블럭도.
제2도는 본 발명의 1실시예에 따른 데이타 처리 장치에서 명령의 포맷을 도시한 도면.
제3도 및 제4도는 본 발명의 1실시예에 따른 데이타 처리 장치에서 명령의 다른 구체적인 예를 도시한 도면.
* 도면의 주요부분에 대한 부호의 설명
100 : 데이타 프로세서 120 : 명령페치 유니트
123 : 명령 프리페치 레지스터 124 : 제1의 하프 워드 레지스터
125 : 제2의 하프워드 레지스터 131 : 제1의 하프워드 디코더
132 : 제2의 하프워드 디코더
본 발명은 메모리 유니트에 저장된 프로그램에 따라서 데이타를 처리하고, 메모리 유니트와 데이타 프로세서로 이루어지는 데이타 프로세서에 관한 것이다.
이제까지 실시간 동작 시스템 중심(이하 TRON이라 한다) 특성에 따른 마이크로 프로세서가 알려져 있다.
이 TRON 특성에 따른 마이크로 프로세서는 반도체 칩 위에 형성된 데이타 프로세서이므로, 이것을 TRON 특성 칩이라 한다.
이 TRON 특성 칩의 명령세트 특성에서 명령기능과 어드레스 모드의 직교성(독립)을 고려하고, 메모리-메모리 동작은 일반적인 형식의 명령으로 할 수 있다. 따라서 1개의 명령에 2개의 어드레스 필드가 있다.
또, 이 일반적인 형식의 명령은 4바이트로된 명령 기본 부분과 0~4바이트의 어드레스 연장부분을 갖는다. 상기 명령 기본부분은 각각 2바이트로된 제1의 하프워드(half word)와 제2의 하프워드로 분할된다. 상기 제1의 하프워드는 제1의 오퍼랜드를 지시하고, 상기 제2의 하프워드는 제2의 오퍼랜드와 명령동작을 지시한다.
제1의 오퍼랜드에서 상기 어드레스 연장부분(0~4바이트)은 상기 명령기본부분의 제1의 하프워드에 계속되고, 제2의 오퍼랜드에서 상기 어드레스 연장부분(0~4바이트)는 상기 명령 기본부분의 제2의 하프워드에 계속된다.
또, 제1의 하프워드에서 상기 어드레스 필드와 제2의 하프워드에서 상기 어드레스 필드는 동일한 비트위치에 있다. 따라서 어드레스 모드의 처리와 명령의 동작, 즉 제1의 하프워드와 제2의 하프워드를 다른 명령(중간명령)과 같이 고려하여 실행할 수 있다.
이 처리의 유니트를 스텝코드라고 하고, 예를 들면 전자 정보 통신학회 기술보고(일본) CPSY 87-53(1987년 3월) P25~30에 개시되어 있으며, TRON 특성에 따른 일반적인 형식의 명령이 2개의 스텝으로 분할되어서 실행되었다.
그러나, 상술한 바와 같이 1개의 명령이 2개의 스텝으로 분할되어서 실행된 경우, 2개의 스텝은 레지스터-레지스터 동작과 같은 단순한 명령을 실행하기 위해서도 요구된다. 따라서 프로세서의 처리 성능을 증가하기 위하여 레지스터-레지스터 동작과 같은 단순한 명령을 1사이클로 실행해야 한다. 그러나 상기 종래 기술의 예에서는 이러한 점이 고려되지 않았다.
본 발명의 목적은 단순한 명령(즉, 제1의 하프워드와 제2의 하프워드 사이에 어드레스 연장부분을 갖지 않는 명령, 예를 들면 레지스터-레지스터 동작에 대한 명령)의 디코드 또는 동작을 실행할 수 있고, 또 복잡한 명령(즉, 제1의 하프워드와 제2의 하프워드 사이에 어드레스 연장부분을 가지는 명령, 즉 수신원 오퍼랜드가 간접 레지스터의 어드레스 모드인 명령)의 디코드 또는 동작에서 에러 동작이 발생되지 않는 데이타 프로세서를 제공하는 것이다.
본 발명의 대표적인 실시예에 따르는 데이타 프로세서는 적어도 제1의 오퍼랜드의 어드레스 모드를 결정하는 제1의 하프워드와 제2의 오퍼랜드의 어드레스 모드를 결정하는 제2의 하프워드를 가지는 1개의 명령에 따라 데이타 처리를 실행한다.
본 발명의 데이타 프로세서는, 또 제1의 오퍼랜드의 어드레스 연장부분이 제1의 하프워드와 제2의 하프워드 사이에 삽입된 다른 하나의 명령에 따라서 데이타 처리를 실행할 수 있다.
본 발명의 대표적인 실시예에 의한 데이타 프로세서는,
(1) 1개의 명령의 제1의 하프워드의 비트폭을 가지는 정보를 저장하는 제1의 레지스터(124).
(2) 상기한 1개의 명령의 제2의 하프워드의 비트폭을 가지는 정보를 저장하는 제2의 레지스터(125).
(3) 상기한 제1의 하프워드와 상기 제2의 하프워드 사이에 어드레스 연장부분이 있는지 없는지를 검사함과 동시에 상기한 제1의 레지스터(124)에 저장된 상기 제1의 하프워드를 디코드하는 제1의 디코더(131).
(4) 상기한 제2의 레지스터(125)에 저장된 제2의 하프워드를 디코드하는 제2의 디코더(132).
(5) 어드레스 연장부분이 있는지 없는지를 지시하는 상기 제1의 디코더(131)의 검출신호(135), (137)인 제1의 디코더(131)의 디코드 결과 및 제2의 디코더(132)의 디코드 결과가 공급되어 상기한 어드레스 연장부분이 존재하면, 상기한 제2의 디코더(132)의 디코드 결과를 무효로 하는 디코드 결과 발생회로(133)이 마련되어 있다.
제1의 디코더(131)은 제1의 하프워드와 제2의 하프워드 사이에 어드레스 연장부분이 있는지 없는지를 검사하고, 어드레스 연장부분이 있는 경우, 상기한 디코드 결과 발생회로(133)은 이 검출신호(137)에 따라 상기한 제2의 디코더(132)의 디코드 결과를 무효로 한다. 한편, 제1의 오퍼랜드의 어드레스 연산은 연장부분 레지스터(126)에 저장된 어드레스 연장부분에 따라 실행된다.
상기한 제1의 하프워드와 제2의 하프워드 사이에 어드레스 연장부분이 없는 경우, 실행제어 유니트(140)은 상기한 제1의 디코더(131)의 디코드 결과와 제2의 디코더(132)의 디코드 결과에 따라 명령의 소정의 처리를 실행하도록 명령실행 유니트(160)을 제어한다. 또, 이 경우, 제1의 하프워드와 제2의 하프워드가 제1의 레지스터(124)와 제2의 레지스터(125)에 저장되어 있으므로, 제1의 디코더(131)과 제2의 디코더(132)는 각각 제1의 하프워드의 디코드와 제2의 하프워드의 디코드를 동시에 실행할 수 있다.
여기에서 TRON 특성의 일반적인 형식의 ADD(합산)명령의 데이타 처리를 고려한다. 또 이 합산명령의 수신원 오퍼랜드가 직접 레지스터의 어드레스 모드이고, 수신지 오퍼랜드가 오프셋의 일반적인 간접 레지스터의 어드레스 모드인 경우를 고려한다. 이 합산명령의 구성은(1) 제1의 하프워드, (2) 제2의 하프워드, (3) 수신지 오퍼랜드용 워드 오프셋으로 된다. 그 결과, 제1의 하프워드와 제2의 하프워드는 각각 제1의 레지스터(124)와 제2의 레지스터(125)에 저장된다.
이하, 상술한 합산명령을 실행하는 데이타 프로세서의 순서를 다음의 스텝에 따라 설명한다.
(1) 제1의 디코더(131)과 제2의 디코더(132)는 각각 이 합산명령의 상위에서 제1의 하프워드와 계속이어지는 제2의 하프워드를 동시에 디코드 한다.
(2) 제1의 하프워드를 디코드한 결과, 수신원 오퍼랜드(제1의 오퍼랜드)는 직접 레지스터의 어드레스 모드이며, 제1의 하프워드 다음의 정보는 어드레스 연장부분이 아니라 제2의 하프워드임을 알 수 있다. 즉, 제1의 디코더(131)에 의해 제1의 하프워드와 제2의 하프워드 사이에 어드레스 연장부분이 없다는 것이 검출되고, 이를 표시하는 검출신호(135)는 제1의 디코더(131)에 의해 출력된다.
한편, 제2의 하프워드의 디코드 결과, 이 명령이 ADD(합산) 명령이고, 수신시 오퍼랜드가 워드 오프셋의 일반적인 간접목적 레지스터의 어드레스 모드임을 알 수 있다.
(3) 수신지 오퍼랜드의 어드레스가 연산되고 제2의 오퍼랜드의 오퍼랜드 페치가 실행된다.
(4) 제1과 제2의 오퍼랜드의 합산이 실행되고, 연산결과는 수신지에 저장된다.
상술한 바와 같이, 수신원 오퍼랜드가 직접 레지스터의 어드레스 모드인 경우, 수신원 오퍼랜드의 어드레스 연산과 수신원 오퍼랜드의 페치를 생략할 수 있으므로, 명령의 실행속도를 증가시킬 수 있다.
한편, 상술한 스텝(2)에서 제1의 하프워드에 이어지는 수신원 오퍼랜드의 어드레스 연장부분이 있는 경우, 제1의 디코더(131)은 그것을 검출하여 검출신호(137)을 출력한다. 디코드 결과 발생회로(133)은 이 검출신호(137)에 따라 상술한 제2의 디코더(132)의 디코드 결과(136)을 무효로 한다.
이렇게 하여 제1의 디코더(131)의 디코드와 동시에 디코드된 제2의 디코더(132)의 디코드 결과는 무효로 된다. 그후 명령의 디코드는 제2의 하프워드를 검출하고, 그것을 제2의 디코더(132) 수단으로 다시 디코드하는 것에 의해 종료된다. 그 결과 제1의 하프워드 다음의 정보가 제2의 디코더(132)에서 디코드되어도 에러동작은 발생하지 않는다.
이하 본 발명의 구성에 대해서 실시예와 함께 설명한다.
또, 실시예를 설명하기 위한 모든 도면에서 동일한 기능을 갖는 것은 동일한 부호를 붙이고 그 반복적인 설명은 생략한다.
제1도는 본 발명의 1실시예인 데이타 처리장치의 블록도이다. 이 데이타 처리장치는 메모리 유니트(200)과 상기 메모리 유니트(200)에 저장된 프로그램에 따라 데이타를 처리하는 데이타 프로세서(100)으로 되어 있다.
메모리 유니트(200)은 프로그램의 명령을 저장하는 프로그램 메모리 유니트(210)과 데이타를 저장하는 데이타 메모리 유니트(211)로 되어 있다. 구체적으로 말하면, 이 메모리 유니트는 메인 메모리와 캐시 메모리를 포함한다. 경우에 따라서 이 캐시 메모리는 생략할 수 있다.
데이타 프로세서(100)은 반도체 칩 위에 형성된 마이크로 프로세서이고, 상술한 캐시 메모리는 이 마이크로 프로세서(100)과 같은 동일한 칩 위에 배열되어 있다.
마이크로 프로세서(100)은 프로그램 메모리 유니트(210)에서 명령을 리드하여 데이타 메모리 유니트(211)에 저장된 데이타를 처리한다.
마이크로 프로세서(100)은 명령 페치 유니트(120), 명령 프리페치 레지스터(123), 명령 디코더(130), 실행제어 유니트(140), 명령 실행 유니트(160), 연장부분 레지스터(126)으로 되어 있다.
명령 페치 유니트(120)은 명령 어드레스(121)을 프로그램 메모리(210)으로 출력하고, 명령 리드 버스(122)를 통하여 명령을 리드한다. 리드 명령은 명령 레지스터(123)에 세트된다. 또, 프로그램 메모리(210)에서 리드된 명령의 정보가 어드레스 변위 또는 직접값과 같은 어드레스 모드의 연장부분인 경우, 이 연장부분에서 정보는 연장부분 레지스터(126)에 세트된다.
명령 레지스터(123)은 제1의 하프워드 레지스터(124)와 제2의 하프워드 레지스터(125)로 된다. 명령페치 유니트(120)에 의해 페치된 기계어 프로그램에서 명령의 상위 하프워드는 제1의 하프워드 레지스터(124)에 세트되고, 다음의 하프워드는 제2의 하프워드 레지스터(125)에 세트된다.
본 실시예의 데이타 처리 장치에서 32비트(4바이트)의 데이타 세트는 1워드라고 하고, 16비트(2바이트)의 데이타 세트를 하프워드라고 한다.
명령 디코더(130)은 제1의 하프워드 디코더(131), 제2의 하프워드 디코더(132), 디코드 결과 발생회로(133)으로 되어 있다.
제1의 하프워드 디코더(131)은 제1의 하프워드 레지스터(124)에 저장된 명령의 제1의 하프워드를 디코드함과 동시에, 그 명령이 어드레스 연장부분을 갖지 않은 일반적인 형식의 명령인지 아닌지 검출한다. 그 명령이 어드레스 연장 부분을 갖지 않은 일반적인 형식의 명령인 경우, 제1의 하프워드 디코더(131)에서 신호(135)가 출력된다. 한편, 그 명령이 어드레스 연장부분을 가지는 일반적인 형식의 명령인 경우, 제1의 하프워드 디코더(131)에서 다른 신호(137)이 출력된다. 또, 제1의 하프워드 디코더(131)은 상기 명령이 제2의 하프워드를 갖지 않는 짧은 포맷의 명령인지 아닌지를 검출한다. 그 명령이 짧은 포맷형식의 명령인 경우, 제1의 하프워드 디코더(131)은 신호(138)을 출력한다. 상기한 검출신호(135), (137), (138) 이외의 디코드 결과는 제1도에 도시하지 않았지만, 제1의 하프워드 디코더(131)에서 디코드 결과 발생회로(133)으로 전송된다.
제2의 하프워드 디코더(132)는 제2의 하프워드 레지스터(125)에 저장된 하프워드(즉, 제1의 하프워드 이외의 정보)를 디코드하고, 일반적인 형식의 명령의 분류와 연장모드 어드레스의 내용을 결정한다.
디코드 결과 발생회로(133)은 제1의 하프워드 디코더(131)의 디코드 결과, 즉 제1의 하프워드 디코더(131)의 검출신호(135), (137), (138)과 제2의 하프워드 디코더(132)의 디코드 결과(136)을 사용하여 최종디코드결과(134)를 발생하고, 이 최종디코드결과(134)를 실행제어 유니트(140)으로 전송한다.
제1의 하프워드 디코더(131)이 디코드 할 때, 다음의 하프워드가 제2의 하프워드 레지스터(125)에 이미 세트되어 있으면, 제2의 하프워드 디코더(132)도 동시에 제2의 하프워드 레지스터(125)에 이미 세트된 하프워드를 디코드 한다.
실행제어 유니트(140)은 상술한 최종디코드결과(134)를 받으면, 명령실행 유니트(160)의 내부동작을 제어하기 위한 제어신호를 발생한다.
명령실행 유니트(160)은 레지스터 파일(150)(16개의 레지스터 R0~R15로 구성된 범용 레지스터), 동작 유니트(산술 연산장치) ALU(170), 메모리 어드레스 레지스터 MAR(181), 메모리 데이타 레지스터(183)으로 되어 있다.
동작 유니트 ALU(170)은 오퍼랜드의 유효 어드레스의 연산과 상기 명령에 의해 지시된 데이타 처리(동작)을 실행한다. 또, 오퍼랜드의 유효 어드레스의 연산과 상기 명령에 의해 지시된 데이타 처리(동작)는 다른 동작 유니트 ALU에서도 실행할 수 있다.
데이타 메모리(211) 상의 동작 데이타를 페치하면, 오퍼랜드 페치용 어드레스는 메모리 어드레스 레지스터 MAR(181)에 세트된다. 데이타 메모리(211)은 오퍼랜드 어드레스 버스(182)를 거쳐서 어드레스 신호에 의해 액세스되고, 페치된 데이타는 다른 오퍼랜드 데이타 버스(184)를 통해서 메모리 데이타 레지스터(183)에 세트된다.
제2도는 본 실시예의 데이타 처리장치에 의해 실행된 명령의 포맷을 도시한 것이다.
제2도에 도시한 바와 같이, 1개의 명령은 근본적으로 16비트의 제1의 하프워드와 16비트의 제2의 하프워드를 갖는다.
상기 명령에서 제1의 하프워드는 수신원 오퍼랜드로서, 제2의 하프워드는 수신지 오퍼랜드로서 동작한다.
경우에 따라서 16 또는 32비트의 어드레스 연장부분이 제1의 하프워드에 계속되어도 된다. 또, 어드레스 모드가 연장모드인 경우, 16비트의 몇 개의 부가적인 하프워드가 제2의 하프워드 앞에 삽입된다. 16 또는 32비트의 다른 어드레스 연장부분이 부가적인 하프워드에 계속되어도 된다.
마찬가지로 16 또는 32비트의 다른 어드레스 연장부분이 제2의 하프워드에 계속되어도 된다. 또 어드레스 모드가 연장모드인 경우, 몇 개의 부가적인 하프워드는 다음 명령의 제1의 하프워드 앞에 삽입된다. 16 또는 32비트의 다른 어드레스 연장부분까지 부가적인 하프워드가 계속 되어도 된다.
동작의 1예로서 데이타 처리장치의 내부동작을, 레지스터 파일(150)에서 범용 레지스터 R3의 내용이 메모리의 내용에 부가되고, 합산의 결과가 동일 메모리에 저장되는 명령에 대하여 설명한다.
ADD : GR3 @ (e × p32, R1)
이 합산명령은 수신지 오퍼랜드의 제1의 하프워드, 제2의 하프워드, 어드레스 연장부분으로 분리된다.
제3도는 이 합산명령의 비트패턴을 도시한 것이다.
즉, 제1의 하프워드(310)의 제1의 필드는 이 명령이 제2의 하프워드를 가지는 일반적인 형식의 명령(:G)임을 나타내고, 제1의 하프워드(310)의 제2의 필드는 제1의 오퍼랜드(수신원 오퍼랜드)가 범용 레지스터 R3(즉, 직접 레지스터의 어드레스 모드)의 내용임을 나타낸다.
한편, 제2의 하프워드(320)의 제1의 필드는 명령의 동작이 합산(ADD)임을 나타내고, 제2의 하프워드(320)의 제2의 필드는 제2의 오퍼랜드(수신지 오퍼랜드)가 메모리(즉, 간접 레지스터의 어드레스 모드)의 내용임을 나타내고, 어드레스는 레지스터 파일(150)의 범용 레지스터 R1의 내용과 계속되는 32비트의 변위(330)의 합이다.
이하, 마이크로 프로세서(100)의 동작의 다른 스텝을 상세히 설명한다.
(1) 제1의 하프워드 디코더(131)은 제1의 하프워드 레지스터(124)에 세트된 16비트의 제1의 하프워드(310)을 디코드한다. 디코드하는 것에 의해 제1의 하프워드(310)의 제1의 필드 내의 상기 정보로 부터 제1의 하프워드 레지스터(124)에 세트된 정보가 일반적인 형식의 명령의 제1의 하프워드이고, 제1의 하프워드(310)의 제2의 필드내의 상기 정보로 부터 수신원 오퍼랜드가 직접 레지스터의 어드레스 모드이며, 거기에는 어드레스 연장부분이 없음을 알 수 있다. 그 결과 신호(135)가 하프워드 디코더(131)에서 출력된다.
한편 제2의 하프워드 디코더(132)는 명령 레지스터(125)에 세트된 16비트의 제2의 하프워드(320)을 디코드 한다. 명령 레지스터(125)에 세트된 이 하프워드가 디코드에 의해 상기 명령의 진짜 제2의 하프워드이면, 이 제2의 하프워드(320)의 제1의 필드내의 정보로 부터 레지스터(124), (125)에 세트된 명령이 ADD(합산) 명령이고, 수신지 오퍼랜드는 32비트의 변위와 간접 레지스터의 어드레스 모드임을 알 수 있다. 이렇게 하여 디코드 결과(136)이 제2의 하프워드 디코더(132)에서 출력된다.
디코드 결과 발생회로(133)은 상술한 신호(135)가 어드레스 연장부분이 없음을 나타내는 것에 의해, 제2의 하프워드 디코더(132)에서 디코드 결과의 신호(136)를 유효신호라고 판단하고, 이 디코드 결과(136)을 실행 제어 유니트(140)으로 전송한다.
이렇게 하여 디코드 결과 발생회로(133)은 제1의 하프워드 디코더(131)의 디코드 결과, 즉 제1의 하프워드 디코더(131)의 검출신호(135), (137), (138)과 제2의 하프워드 디코더(132)의 디코드 결과(136)을 사용하여 최종디코드결과(134)를 발생하고, 이 최종디코드결과(134)는 실행제어 유니트(140)으로 전송된다.
한편, 1버스 사이클 동안 이 합산 명령의 제1의 하프워드(310)과 제2의 하프워드(320)은 버스폭이 32비트인 명령 리드 버스를 거쳐서 각각 제1의 하프워드 레지스터(124)와 제2의 하프워드 레지스터(125)에 세트되고, 명령 페치유니트(120)은 32비트폭을 가지는 신호를 페치한다. 또 제1의 하프워드 디코더(131)과 제2의 하프워드 디코더(132)가 동시에 제1의 하프워드(310)과 제2의 하프워드(320)을 각각 디코드하므로, 페치와 디코드의 속도는 매우 증가한다.
(2) 명령실행 유니트(160)은 실행제어 유니트(140)의 최종디코드결과(134)의 지시에 따라 수신지 오퍼랜드의 어드레스를 연산한다.
또, 계속되는 다음의 버스 사이클 동안 어드레스 연장분의 32비트 변위(330)은 버스폭이 32비트인 명령 리드버스를 통하여 프로그램 메모리(210)에서 리드되고, 명령 페치 유니트(120)은 32비트의 폭을 가지는 신호를 페치한다.
리드된 어드레스 연장부분의 32비트 변위(330)은, 우선 연장부분 레지스터(126)에 세트되고, ALU(170)은 범용 레지스터 R1을 연장부분 레지스터(126) 내의 32비트 변위에 부가한다.
(3) 오퍼랜드는 상기한 어드레스 합산에 의해 얻어진 오퍼랜드 어드레스에 따라 페치된다. 먼저, ALU(170)에 의해 연산된 어드레스는 메모리 어드레스 레지스터 MAR(181)에 세트되고, 데이타 메모리(211)이 액세스 된다. 리드 데이타는 메모리 데이타 레지스터 MDR(183)에 세트한다.
(4) 메모리 데이타 레지스터 MDR(183)에 세트된 오퍼랜드는 ALU(170)에서 범용 레지스터 R3의 내용이 부가되고, 이 부가된 결과는 메모리 데이타 레지스터 MDR(183)에 세트되고, 데이타 메모리(211)에 저장된다. 이때, 저장 어드레스는 상기 어드레스, 즉 바로 앞에 오퍼랜드가 페치된 어드레스와 동일하다.
상술한 다른 1예로 메모리의 내용이 레지스터 R1의 내용에 부가되고 합산의 결과가 레지스터 R1에 저장되는 명령에 대하여 내부동작을 설명한다.
ADD : G @ (e × p16, R3), R1
이 명령은 제1의 하프워드, 수신원 오퍼랜드의 어드레스 연장부분, 제2의 하프워드로 분리된다. 제2의 하프워드로 분리된다. 제4도는 이 명령의 비트 패턴을 도시한 것이다. 제1의 하프워드(410)의 제1의 필드는 이 명령이 제2의 하프워드를 가지는 일반적인 형식의 명령(:G)임을 나타내고, 제1의 하프워드(410)의 제2의 필드는 제1의 오퍼랜드(수신원 오퍼랜드)가 메모리의 내용임을 나타내고, 어드레스는 범용 레지스터 R3의 내용과 다음의 16비트 변위(420)을 합한 것이다.
한편, 제2의 하프워드(430)의 제1의 필드는 이 명령의 동작이 합산(ADD)임을 나타내고, 제2의 하프워드(430)의 제2의 필드는 제2의 오퍼랜드(수신지 오퍼랜드)가 범용 레지스터 R1의 내용임을 나타낸다.
이하 마이크로 프로세서의 동작의 다른 스텝을 상세히 설명한다.
(1) 16비트의 제1의 하프워드(410)과 16비트의 연장부분(420)은 1버스 사이클 동안 프로그램 메모리(210)에서 리드되어 제1의 하프워드 레지스터(124), 제2의 하프워드 레지스터(125)에 가각 세트된다.
제1의 하프워드 디코더(131)은 제1의 하프워드 레지스터(124)에 세트된 제1의 하프워드(410)을 디코드한다. 이 디코드 결과에서, 세트된 명령이 일반적인 형식의 명령의 제1의 하프워드이고, 수신원 오퍼랜드가 16비트 변위의 간접 레지스터의 어드레스 모드이고, 16비트 어드레스 연장부분(420)이 존재한다는 것을 알 수 있다.
그 결과 제1의 하프워드 디코더(131)은 어드레스 연장부분(420)의 존재를 지시하는 검출신호(137)을 출력한다.
한편, 제2의 하프워드 디코더(132)가 제2의 하프워드 레지스터(125)에 세트된 어드레스 연장부분(420)을 디코드하였으므로, 무의미한 디코드 결과(136)이 얻어진다. 그러나, 어드레스 연장부분(420)의 존재를 지시하는 상술한 신호(137)로부터 디코드 결과 발생회로(133)은 제2의 하프워드의 상술한 디코드 결과(136)이 무효라고 판정하고, 제1의 하프워드에 의해 얻어진 디코드 결과만 디코드 결과 신호(134)로 해서 실행제어 유니트(140)으로 전송한다.
(2) 명령실행 유니트(160)은 실행 제어 유니트(140)의 지시(디코드 결과신호(134)에 따라 수신원 오퍼랜드의 어드레스를 연산한다.
먼저, 제2의 하프워드 레지스터(125)에 세트된 어드레스 연장부분의 16비트 변위(420)은 연장부분 레지스터(126)에 세트된다.
그 결과, ALU(170)은 범용 레지스터 R3을 연장부분 레지스터(126)의 16비트 변위에 부가한다.
(3) 오퍼랜드는 상술한 어드레스 합산에 의해 얻어진 오퍼랜드 어드레스에 따라 페치된다.
먼저, ALU(170)에서 합산에 의해 얻어진 어드레스는 메모리 어드레스 레지스터 MAR(181)에 세트되고, 데이타 메모리(211)은 다음의 버스 사이클 동안 액세스 된다.
이 버스 사이클 동안 리드되는 데이타는 메모리 데이타 레지스터 MDR(193)에 세트된다.
(4) 다음의 하프워드(430)은 다음에 이어지는 버스 사이클 동안 프로그램 메모리(210)에서 페치되고, 수신원 오퍼랜드의 어드레스 연장부분(420)은 제2의 하프워드 레지스터(125)에 하프워드(430)을 세트하는 것에 의해 명령 프리페치 레지스터(123)에서 이동한다.
따라서, 페치된 하프워드(430)이 명령의 제2의 하프워드임을 알 수 있다. 즉, 제2의 하프워드(430)은 제2의 하프워드 레지스터(125)에 세트되고, 제2의 하프워드 디코더(132)에 의해 디코드 된다. 그 결과, 명령의 동작이 ADD(합산)의 명령이고, 수신지 오퍼랜드가 직접 레지스터의 어드레스 모드임을 알 수 있다. 이 디코드 결과는 신호(136)으로서 디코드 결과 발생회로(133)으로 전송된다.
신호(136)이 제2의 하프워드의 진짜 디코드 결과라는 것을 제1의 하프워드의 디코드 결과에서 미리 알았으므로, 디코드 결과 발생회로(133)은 신호(136)이 유효하다고 판정하고, 이 디코드 결과(136)을 신호(134)로서 실행제어 유니트(140)으로 전송한다.
(4) 명령실행 유니트(160)은 실행제어 유니트(140)의 디코드 신호(134)의 지시에 따라 명령의 동작을 실행한다.
즉, ALU(170)은 범용 레지스터 R1의 내용에 메모리 데이타 레지스터(183)에 세트된 오퍼랜드를 부가하고, 범용 레지스터 R1에 합산의 결과를 저장한다.
상기한 바와 같이 제1의 하프워드와 제2의 하프워드 사이에 어드레스 연장부분을 가지는 명령의 실행이 종료된다.
다음에 제1의 하프워드와 제2의 하프워드 사이에 어드레스 연장부분이 없는 단순명령의 실행에 대해서 설명한다.
이 단순명령의 예는, 예를 들면 다음에 기술하는 바와 같은 명령으로 레지스터-레지스터 동작의 명령이다.
ADD :G R3, R1
이 명령은 레지스터 파일(150) 내의 범용 레지스터 R3과 R1의 2개의 내용이 합산되고, 이 합산의 결과가 범용 레지스터 R1에 저장되는 하나의 명령이다.
이 단순 합산 명령은 제1의 하프워드와 제2의 하프워드로만 분리된다.
즉, 제1의 하프워드의 제1의 필드는 이 명령이 제2의 하프워드를 가지는 일반적인 형식의 명령(:G)임을 나타내고, 제1의 하프워드의 제2의 필드는 제1의 오퍼랜ㄷ(수신원 오퍼랜드)가 범용 레지스터 R3(즉, 직접 레지스터의 어드레스 모드)의 내용임을 나타낸다.
또 제2의 하프워드의 제1의 필드는 이 명령의 동작이 합산(ADD)임을 나타내고, 제2의 하프워드의 제2의 필드는 제2의 오퍼랜드(수신지 오퍼랜드)가 레지스터 파일(150) 내의 범용 레지스터 R1(즉, 직접 레지스터의 어드레스 모드)의 내용임을 나타낸다.
이하, 마이크로 프로세서(100)의 동작의 다른 스텝에 대해서 상세히 설명한다.
(1) 제1의 하프워드 디코더(131)은 제1의 하프워드 레지스터(124)에 세트된 16비트의 제1의 하프워드(310)을 디코드한다. 이 디코드에 의해, 이 제1의 하프워드의 제1의 필드에서 상기 정보로 부터 명령 레지스터(124)에 세트된 정보가 일반적인 형식의 명령의 제1의 하프워드이고, 제1의 하프워드의 제2의 필드에서 상기 정보로부터 수신원 오퍼랜드가 간접 레지스터의 어드레스 모드이며, 어드레스 연장부분이 존재하지 않음을 알 수 있다. 그 결과, 제1의 하프워드 디코더(131)에 의해 신호(135)가 출력된다.
한편, 제2의 하프워드 디코더(132)는 제2의 하프워드 레지스터(125)에 세트된 16비트의 제2의 하프워드를 디코드한다. 이 제2의 하프워드 레지스터(125)에 세트된 하프워드가 디코드에 의해 명령의 진짜 제2의 하프워드이면, 이 제2의 하프워드의 제1의 필드 내의 상기 정보로부터 레지스터(124), (125)에 세트된 명령이 ADD(합산) 명령이고, 그것이 직접 레지스터의 어드레스 모드임을 알 수 있다. 이렇게 하여 디코드 결과(136)이 제2의 하프워드 디코더(132)에서 출력된다.
디코드 결과 발생회로(133)이 상술한 신호(135)에 의해 어드레스 연장부분이 없고, 제2의 하프워드 디코더(132)에서 디코드 결과의 신호(136)이 유효하다고 판정하였으므로, 이 디코드 결과(136)은 실행 제어 유니트(140)으로 전송된다.
이렇게 해서 디코드 결과 발생회로(133)은 제1의 하프워드 디코더(131)의 디코드 결과, 즉 제1의 하프워드 디코더(131)의 검출신호(135), (137), (138)과 제2의 하프워드 디코더(132)의 디코드 결과(136)을 사용하여 최종디코드결과(134)를 발생하고, 이 최종디코드결과(134)는 실행제어 유니트(140)으로 전송된다.
한편, 1버스 사이클 동안 이 단순한 합산명령의 제1의 하프워드와 제2의 하프워드는 버스폭이 32비트인 명령 리드 버스를 통해서 제1의 하프워드 레지스터와 제2의 하프워드 레지스터에 각각 세트되고, 명령 페치 유니트(120)은 32비트 폭을 가지는 신호를 페치한다. 또 제1의 하프워드 디코더(131)과 제2의 하프워드 디코더(132)가 동시에 제1의 하프워드와 제2의 하프워드를 각각 디코드하므로 페치와 디코드의 속도는 매우 증가한다.
(2) 명령 실행 유니트(160)은 실행제어 유니트(140)의 최종디코드결과(134)의 지시에 따라서 범용 레지스터 R3과 R1의 2개의 내용을 합하고, 상기 합산한 결과를 범용 레지스터 R1에 다시 저장한다.
이들 합산동작과 저장동작이 1사이클 동안 실행되므로, 이 단순 합산명령에 대한 실행처리의 속도를 증가시킬 수 있다.
상기 실시예에서는 제1의 하프워드((310) 또는 (410))가 디코드될 때, 다음의 하프워드((320) 또는 (420))는 이미 명령 프리페치 레지스터(123)에 세트되어 있는 경우에 대해서 설명하였지만, 명령의 프리페치가 시간에 맞지 않으면 제1의 하프워드만 디코드된다. 제1의 하프워드의 디코드 결과, 어드레스 연장부분을 갖지 않는 일반적인 형식의 명령이면, 제2의 하프워드는 프리페치의 종료와 명령의 실행을 기다린 다음 디코드를 개시한다. 한편 제1의 하프워드의 디코드 결과 어드레스 연장부분을 가지는 일반적인 형식의 명령이면, 수신원 오퍼랜드의 페치를 종료하기 전에 제2의 하프워드의 디코드를 종료할 수 있으므로, 제2의 하프워드의 디코드를 기다리지 않고 수신원 오피랜드의 페치롤 개시한다.
상기 실시예에 따르면, 제1의 하프워드 디코더가 명령의 선두 하프워드만 디코드하고, 또 제2의 하프워드 디코더가 명령의 제2의 하프워드만 디코드하고, 연장모드의 연장부분을 어드레스하기에 충분하므로, PLA(Programable Logic Array)로 구성된 디코더의 경우, 디코더의 기능을 축소할 수 있고, 탑재하기 위해 필요한 영역이 축소되는 효과를 얻을 수 있고, 동작속도를 증가시킬 수 있다. 상기한 바와 같이, 본 발명에 따르면 제1의 하프워드가 연장부분을 가지고 있지 않은 경우, 제1의 하프워드와 제2의 하프워드를 동시에 디코드할 수 있으므로 명령의 실행속도를 증가시킬 수 있다.

Claims (8)

  1. 제1의 오퍼랜드의 어드레스 모드를 결정하는 제1의 하프워드와 제2의 오퍼랜드의 어드레스 모드를 결정하는 제2의 하프워드를 갖고, 어드레스확장부가 상기 제1의 하프워드와 상기 제2의 하프워드 사이에 삽입되지 않는 제1의 명령에 따라 데이타처리를 실행할 수 있고, 또한 어드레스확장부가 제1의 하프워드와 제2의 하프워드 사이에 삽입되는 제2의 명령에 따라 데이타처리를 실행할 수 있고, 상기 제2의 명령의 상기 제1의 하프워드와 상기 제2의 하프워드는 상기 제2의 명령의 제1의 오퍼랜드와 제2의 오퍼랜드를 각각 결정하는 데이타 프로세서에 있어서, (a) 상기 제1의 명령이 실행될 때, 상기 제1의 명령의 상기 제1의 하프워드와 상기 제2의 하프워드를 동시에 저장하고, 상기 제2의 명령이 실행될 때, 상기 제2의 명령의 상기 제1의 하프워드와 어드레스확장부를 동시에 저장하는 제1의 저장유니트, (b) 상기 제1의 명령이 실행될 때, 상기 제1의 명령의 상기 제1의 하프워드와 상기 제2의 하프워드를 동시에 저장하고, 상기 제2의 명령이 실행될때, 상기 제2의 명령의 상기 제1의 하프워드와 어드레스확장부를 동시에 저장하고, 상기 어드레스확장부의 저장후에 제2의 명령의 제2의 하프워드를 또 저장하는 제2의 저장유니트, (c) 상기 제1의 저장유니트의 내용을 디코드하고, 상기 제1의 하프워드가 상기 제1의 저장유니트에 저장된 명령이 상기 제1의 하프워드 이후에 어드레스확장부를 갖는지를 검출하고, 상기 제1의 명령이 실행될 때, 상기 제1의 저장유니트와 상기 제2의 저장유니트에 저장된 상기 제1의 명령의 상기 제1의 하프워드와 상기 제2의 하프워드를 동시에 디코드하고, 상기 제1의 저장유니트와 상기 제2의 저장유니트에 저장된 상기 제2의 명령의 상기 어드레스확장부와 상기 제1의 하프워드를 동시에 디코드하는 제1의 디코더, (d) 상기 제1의 저장유니트의 내용의 디코드와 실제적으로 동시에 상기 제2의 저장유니트의 내용을 디코드하고, 상기 제1의 명령이 실행될 때, 상기 제1의 저장유니트와 상기 제2의 저장유니트에 저장된 상기 제1의 명령의 상기 제1의 하프워드와 상기 제2의 하프워드를 동시에 디코드하고, 상기 제1의 저장유니트와 상기 제2의 저장유니트에 저장된 상기 제2의 명령의 상기 어드레스확장부와 상기 제1의 하프워드를 동시에 디코드하고, 상기 제2의 명령이 실행될때, 상기 어드레스확장부의 디코드 후에 상기 제2의 명령의 제2의 하프워드를 디코드하는 제2의 디코더, (e) 상기 제1의 디코더의 디코드 결과 및 상기 제2의 디코더의 동시 디코드 결과와 상기 제1의 하프워드가 상기 제1의 저장유니트에 저장된 명령이 상기 제1의 하프워드 이후에 상기 어드레스확장부를 갖는지를 지시하는 상기 제1의 디코더의 검출신호를 받도록 배열되고, 또한 (i) 상기 제1의 디코더의 검출신호가 상기 제1의 하프워드가 상기 제1의 저장유니트에 저장된 명령이 상기 제1의 하프워드 이후에 어드레스확장부를 갖는 것을 지시할 때 상기 제2의 디코더의 상기 동시 디코드 결과를 무효화하도록 배열된 무효화 수단 및 (ii) 상기 제1의 디코더의 검출신호가 상기 제1의 하프워드가 상기 제1의 저장유니트에 저장된 명령이 어드레스확장부를 갖지 않는 것을 지시할 때 상기 제2의 디코더의 상기 동시 디코드 결과를 유효화하도록 배열되는 유효화수단을 갖고, 이것에 의해 상기 제1의 명령의 상기 제1의 하프워드와 상기 제2의 하프워드의 동시 디코드의 실질적인 종료가 달성되어 최종디코드결과를 생성하고, 또한 상기 어드레스확장부의 디코드후에 상기 제2의 명령의 제2의 하프워드의 디코드결과를 받도록 베열된 디코드결과 발생회로, (f) 상기 제2의 디코더의 상기 어드레스확장부의 상기 동시 디코드결과가 무효일 때 상기 제1의 디코더에서 상기 제2의 명령의 상기 제1의 하프워드의 디코드결과, 상기 어드레스확장부의 상기 동시디코드결과의 무효화 및 디코드후에 상기 제2의 디코더에서 상기 제2의 명령의 제2의 하프워드의 디코드결과, 상기 제2의 하프워드의 상기 동시디코드결과가 유효일 때 상기 제1의 명령의 상기 제1의 하프워드와 상기 제2의 하프워드의 실질적인 동시 디코드종료에 따른 최종디코드결과를 받도록 상기 디코드결과 발생회로에 결합된 실행제어유니트 밑 (g) 상기 실행제어유니트에서 받은 상기 제2의 명령의 상기 제1의 하프워드 및 상기 제2의 하프워드의 디코드결과와 상기 제1의 명령의 최종디코드결과에 의해 동작이 제어되는 명령실행유니트를 포함하는 데이타프로세서.
  2. 제1항에 있어서, (h) 입력이 상기 제2의 저장유니트의 출력에 결합되고, 상기 제2의 저장유니트에 저장된 상기 어드레스확장부를 또 저장하는 확장부 저장유니트를 또 포함하고, 상기 명령실행유니트는 입력이 상기 확장부저장유니트의 출력에 결합된 산술논리유니트를 갖고, 상기 명령이 상기 어드레스확장부를 갖는 상기 제2의 명령일 때, 상기 명령실행유니트는 상기 확장부저장유니트에 저장된 상기 어드레스확장부를 기본으로 상기 산술논리유니트의 어드레스연산을 실행하는 데이타프로세서.
  3. 제2항에 있어서, 상기 제1의 디코더가 상기 제1의 저장유니트에 저장된 정보를 디코드하도록 개시되는 것과 실질적으로 동시에 상기 제2의 디코더가 상기 제2의 저장유니트에 저장된 정보를 디코드하도록 개시시키는 수단을 또 포함하는 데이타프로세서.
  4. 제2항에 있어서, 상기 명령실행유니트는 여러개의 범용레지스터를 포함하고, 상기 명령이 어드레스확장부를 갖지 않을 때, 상기 디코드결과 발생회로의 출력은 상기 제1의 디코더로 부터의 어드레스확장부의 부재를 지시하는 상기 검출신호, 상기 제1의 디코더의 디코드결과와 상기 제2의 디코더의 디코드결과에 따라 상기 명령실행유니트의 동작을 제어하고, 상기 명령실행유니트는 상기 여러개의 범용레지스터에서 선택된 2개의 레지스터의 내용을 가산하고, 상기 가산에 의해 얻어진 결과는 상기 선택된 2개의 레지스터중의 하나에 저장되는 데이타프로세서.
  5. 제1항에 있어서, 상기 제1의 하프워드와 상기 제2의 하프워드의 디코드는 하나의 버스사이클에서 실질적으로 동시에 종료되는 데이타프로세서.
  6. 제1항에 있어서, (i) 상기 제1의 하프워드와 상기 제2의 하프워드 사이에 삽입된 어드레스확장부를 저장하는 확장부저장유니트를 또 포함하는 데이타프로세서.
  7. 서로 인접하는 제1의 하프워드와 제2의 하프워드의 구성, 제1의 하프워드와 제2의 하프워드 사이에 삽입된 어드레스 확장부의 구성을 갖는 명령을 처리하는 데이타처리장치에 있어서, 상기 명령의 상기 제1의 하프워드를 저장하기 위해 배치된 제1의 저장수단, (i) 상기 명령의 구성이 상기 제1의 하프워드와 가까이에 인접하는 상기 제2의 하프워드를 가질 때, 상기 제1의 저장수단에 의해 상기 제1의 하프워드와 동시에 상기 제2의 하프워드를 저장하고, (ii) 상기 명령의 구성이 상기 제1의 하프워드와 상기 제2의 하프워드 사이에 삽입된 상기 어드레스확장부를 가질 때, 상기 제1의 저장수단에 의한 상기 제1의 하프워드의 저장과 동시에 상기 어드레스확장부를 저장하며, (iii) 상기 어드레스확장부의 저장후에 상기 어드레스확장부를 갖는 명령의 상기 제2의 하프워드를 저장하는 제2의 저장수단, 상기 제1의 저장수단에서 제1의 하프워드를 받아 디코드하고, 상기 명령이 상기 제1의 하프워드와 상기 제2의 하프워드 사이에 삽입된 상기 어드레스확장부를 갖는 구성인지 아닌지를 상기 제1의 하프워드에서 검출하는 검출수단을 갖는 제1의 디코더수단, 상기 제1의 저장수단에 저장된 상기 제1의 하프워드의 디코드와 실질적으로 동시에 상기 제2의 저장수단에서 상기 제2의 하프워드와 상기 어드레스확장부중의 하나를 받아 디코드하도록, 상기 제2의 저장수단에서 상기 어드레스확장부의 디코드후에 어드레스확장부를 갖는 상기 명령의 상기 제2의 하프워드를 받아 디코드하도록 배치된 제2의 디코더, 상기 제1의 저장수단과의 데이타통신에서 상기 검출수단에 의해 얻어지는 검출에 따라 검출신호를 발생하는 검출신호 발생수단, 상기 제1의 디코더의 디코드결과, 상기 제2의 디코더의 디코드결과 및 상기 검출신호 발생회로로 부터의 검출신호를 받도록 배열되고, 상기 검출신호가 상기 제1의 하프워드와 상기 제2의 하프워드 사이에 상기 어드레스확장부를 갖는 명령을 지시할 때, 상기 제2의 디코더의 상기 동시 디코드결과를 무효화하기 위한 무효화수단 및 상기 검출신호가 상기 제2의 하프워드와 가까이 인접하는 제1의 하프워드를 갖는 명령을 지시할 때 상기 제2의 디코더의 상기 동시 디코드결과를 유효화하기 위한 유효화수단을 가지며, 이것에 의해 상기 제2의 하프워드와 가까이에 인접하는 상기 제1의 하프워드를 갖는 명령의 동시 디코드의 실질적인 종료가 달성되어 최종디코드결과를 생성하고, 또한 상기 어드레스확장부의 디코드후에 상기 어드레스확장부를 갖는 상기 명령의 상기 제2의 하프워드의 디코드결과를 받도록 배열되는 디코드결과 발생회로, 상기 제2의 디코더의 상기 디코드결과가 무효일 때, 상기 제1의 하프워드와 상기 제2의 하프워드 사이에 삽입된 상기 어드레스확장부를 갖는 명령구성의 상기 제1의 하프워드의 디코드결과, 상기 어드레스확장부의 동시디코드결과의 무효화후에 상기 제1의 하프워드와 상기 제2의 하프워드 사이에 삽입된 상기 어드레스확장부를 갖는 상기 명령의 상기 제2의 디코더에서 상기 제2의 하프워드의 디코드결과 및 상기 제2의 하프워드의 상기 디코드결과가 유효일 때, 서로 가까이에 인접하는 상기 제1의 하프워드와 상기 제2의 하프워드의 구성을 갖는 상기 명령의 상기 제1의 하프워드와 상기 제2의 하프워드의 실질적인 상기 동시종료디코드에 따른 최종디코드결과를 받도록 상기 디코드결과 발생회로에 결합된 실행제어유니트 및 상기 실행제어유니트에 의해 발생된 상기 어드레스확장부를 갖는 상기 명령의 상기 제1의 하프워드의 디코드결과와 상기 제2의 하프워드의 디코드결과 및 서로 가까이에 인접하는 상기 제1의 하프워드와 상기 제2의 하프워드를 갖는 상기 명령의 상기 최종디코드결과에 의해 동작이 제어되는 명령실행유니트를 포함하는 데이타처리장치.
  8. 서로 가까이에 인접하는 제1의 하프워드와 제2의 하프워드의 구성 및 상기 제1의 하프워드와 상기 제2의 하프워드 사이에 삽입된 어드레스확장부의 구성을 갖는 명령을 처리하기 위한 데이타처리방법에 있어서, 제1의 저장수단내의 명령의 상기 제1의 하프워드를 저장하는 스텝, 상기 명령의 구성이 상기 제1의 하프워드와 가까이에 인접하는 상기 제2의 하프워드를 가질 때, 상기 명령의 제2의 하프워드 및 상기 명령의 구성이 상기 제1의 하프워드와 상기 제2의 하프워드 사이에 삽입된 상기 어드레스확장부를 가질 때, 상기 어드레스확장부를 제2의 저장수단에 저장하는 스텝, 상기 제1의 하프워드를 상기 제1의 저장수단에서 받아 제1의 디코더수단에서 디코드하는 스텝, 상기 제1의 하프워드의 디코드와 실질적으로 동시에 상기 제2의 하프워드와 상기 어드레스확장부중의 하나를 상기 제2의 저장수단에서 받아 제2의 디코더수단에서 디코드하는 스텝, 상기 명령이 상기 제1의 하프워드와 상기 제2의 하프워드 사이에 삽입된 상기 어드레스확장부를 갖는 구성인지 아닌지를 상기 제1의 디코더수단에 포함된 검출수단에 의해 검출하는 스텝, 상기 검출수단에 의해 얻은 검출에 따른 검출신호를 검출신호 발생수단에 의해 발생하는 스텝, 상기 검출신호 발생수단으로 부터의 상기 검출신호, 상기 제1의 디코더의 디코드결과 및 상기 제2의 디코더의 디코드결과를 디코드결과 발생회로에서 받는 스텝, 상기 검출신호가 상기 제1의 하프워드와 상기 제2의 하프워드 사이에 상기 어드레스확장부를 갖는 명령을 지시할 때, 상기 제2의 디코더의 상기 디코드결과를 무효화하는 스텝, 상기 검출신호가 상기 제2의 하프워드와 가까이에 인접하는 상기 제1의 하프워드를 갖는 명령을 지시할 때, 상기 제2의 디코더의 상기 디코드결과를 유효화하는 것에 의해, 상기 제2의 하프워드와 가까이에 인접하는 상기 제1의 하프워드를 갖는 명령의 동시디코드의 실질적인 종료가 달성되어 최종디코드결과를 생성하는 스텝, 상기 제2의 디코더의 어드레스확장부의 디코드결과가 무효일 때, 상기 제1의 하프워드와 상기 제2의 하프워드 사이에 삽입된 상기 어드레스확장부를 갖는 명령의 상기 제1의 하프워드의 디코드결과 및 상기 제2의 하프워드의 디코드결과가 유효일 때, 서로 가까이에 인접하는 상기 제1의 하프워드와 상기 제2의 하프워드를 갖는 명령의 상기 제1의 하프워드와 상기 제2의 하프워드의 실질적인 동시디코드결과에 따른 최종디코드결과를 상기 디코드결과 발생회로에 결합된 실행제어유니트에서 받는 스텝, 상기 어드레스확장부를 갖는 명령의 상기 제2의 하프워드를 상기 제2의 저장수단에 설정하여 상기 어드레스확장부를 치환하는 스텝, 상기 제2의 저장수단에서 상기 어드레스확장부를 치환한 상기 제2의 하프워드를 상기 제2의 디코더수단에서 디코드하는 스텝, 상기 어드레스확장부를 치환한 제2의 하프워드에 따른 상기 제2의 디코더의 디코드결과를 상기 디코드결과 발생회로에서 받는 스텝, 상기 어드레스확장부를 갖는 명령의 상기 디코드결과를 상기 실행제어유니트에서 받는 스텝 및 상기 실행제어유니트에 의해 발생된 상기 어드레스확장부를 갖는 명령의 상기 제1의 하프워드와 상기 제2의 하프워드의 디코드결과 및 서로 가까이에 인접하는 상기 제1의 하프워드와 제2의 하프워드를 갖는 명령의 최종디코드결과에 따라 명령실행유니트를 동작시키는 스텝을 포함하는 데이타처리방법.
KR1019900004306A 1989-03-31 1990-03-30 데이타 프로세서 KR0163179B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP1-78221 1989-03-31
JP7822189 1989-03-31

Publications (2)

Publication Number Publication Date
KR900015003A KR900015003A (ko) 1990-10-25
KR0163179B1 true KR0163179B1 (ko) 1999-01-15

Family

ID=13655996

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019900004306A KR0163179B1 (ko) 1989-03-31 1990-03-30 데이타 프로세서

Country Status (2)

Country Link
US (1) US5301285A (ko)
KR (1) KR0163179B1 (ko)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5966514A (en) * 1995-05-31 1999-10-12 Matsushita Electric Industrial Co., Ltd. Microprocessor for supporting reduction of program codes in size
US5864704A (en) * 1995-10-10 1999-01-26 Chromatic Research, Inc. Multimedia processor using variable length instructions with opcode specification of source operand as result of prior instruction
US5961632A (en) * 1996-07-25 1999-10-05 Texas Instruments Incorporated Microprocessor with circuits, systems, and methods for selecting alternative pipeline instruction paths based on instruction leading codes
US5854939A (en) * 1996-11-07 1998-12-29 Atmel Corporation Eight-bit microcontroller having a risc architecture
US6401194B1 (en) * 1997-01-28 2002-06-04 Samsung Electronics Co., Ltd. Execution unit for processing a data stream independently and in parallel
JP2000112754A (ja) 1998-10-06 2000-04-21 Mitsubishi Electric Corp データ処理装置
US6292882B1 (en) * 1998-12-10 2001-09-18 Intel Corporation Method and apparatus for filtering valid information for downstream processing
US20040049657A1 (en) * 2002-09-10 2004-03-11 Kling Ralph M. Extended register space apparatus and methods for processors
US7730292B2 (en) * 2003-03-31 2010-06-01 Hewlett-Packard Development Company, L.P. Parallel subword instructions for directing results to selected subword locations of data processor result register
US7408484B1 (en) * 2007-02-20 2008-08-05 International Business Machines Corporation Method of doing PACK unicode zSeries instructions
TWI424445B (zh) * 2009-12-29 2014-01-21 Macronix Int Co Ltd 指令解碼電路及其方法
US8914615B2 (en) 2011-12-02 2014-12-16 Arm Limited Mapping same logical register specifier for different instruction sets with divergent association to architectural register file using common address format
US9063532B2 (en) * 2012-08-31 2015-06-23 Micron Technology, Inc. Instruction insertion in state machine engines
US10043587B2 (en) * 2016-07-20 2018-08-07 Micron Technology, Inc. Apparatuses and methods including nested mode registers

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
NL149925C (ko) * 1968-10-25 1976-06-15
CA1174370A (en) * 1980-05-19 1984-09-11 Hidekazu Matsumoto Data processing unit with pipelined operands
JPS5932045A (ja) * 1982-08-16 1984-02-21 Hitachi Ltd 情報処理装置
JP2554050B2 (ja) * 1986-02-26 1996-11-13 株式会社日立製作所 デ−タ処理方法
DE3751503T2 (de) * 1986-03-26 1996-05-09 Hitachi Ltd Datenprozessor in Pipelinestruktur mit der Fähigkeit mehrere Befehle parallel zu dekodieren und auszuführen.
JPH0766324B2 (ja) * 1988-03-18 1995-07-19 三菱電機株式会社 データ処理装置
US5202967A (en) * 1988-08-09 1993-04-13 Matsushita Electric Industrial Co., Ltd. Data processing apparatus for performing parallel decoding and parallel execution of a variable word length instruction

Also Published As

Publication number Publication date
KR900015003A (ko) 1990-10-25
US5301285A (en) 1994-04-05

Similar Documents

Publication Publication Date Title
KR0163179B1 (ko) 데이타 프로세서
US4710866A (en) Method and apparatus for validating prefetched instruction
US6289445B2 (en) Circuit and method for initiating exception routines using implicit exception checking
US6189093B1 (en) System for initiating exception routine in response to memory access exception by storing exception information and exception bit within architectured register
JPH081602B2 (ja) データ処理装置
US4757445A (en) Method and apparatus for validating prefetched instruction
CA2003004C (en) Apparatus and method for executing a conditional branch instruction
JPH07120284B2 (ja) データ処理装置
JP3599499B2 (ja) 中央処理装置
US8583897B2 (en) Register file with circuitry for setting register entries to a predetermined value
US5361338A (en) Pipelined system for decomposing instruction into two decoding parts and either concurrently generating two operands addresses of merging decomposing decoding codes based upon the second operand
JP2581565B2 (ja) ガード付命令を実行するデータ処理装置
EP0155275B1 (en) Prefetch validation
JP3739556B2 (ja) 情報処理装置
KR100300875B1 (ko) 캐쉬 미스 시 처리 방법
JP2503223B2 (ja) 先行制御方式
JPH0333931A (ja) データプロセツサ
JP2534674B2 (ja) 情報処理装置
KR19990003607A (ko) 가변 명령어 길이를 갖는 디에스피의 페치구조
JPH0827717B2 (ja) ミスアライメント処理方式
JPS6389930A (ja) マイクロプログラム制御装置
JPH04290130A (ja) プロセッサのエラー管理方式
JPH0769805B2 (ja) データ処理装置
JPH0690665B2 (ja) オペランドアクセス制御方式
JPH04239918A (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
LAPS Lapse due to unpaid annual fee