KR930007041B1 - 명령 지정방법 및 실행장치 - Google Patents

명령 지정방법 및 실행장치 Download PDF

Info

Publication number
KR930007041B1
KR930007041B1 KR1019900017654A KR900017654A KR930007041B1 KR 930007041 B1 KR930007041 B1 KR 930007041B1 KR 1019900017654 A KR1019900017654 A KR 1019900017654A KR 900017654 A KR900017654 A KR 900017654A KR 930007041 B1 KR930007041 B1 KR 930007041B1
Authority
KR
South Korea
Prior art keywords
instruction
register
long
command
instructions
Prior art date
Application number
KR1019900017654A
Other languages
English (en)
Other versions
KR910010301A (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 KR910010301A publication Critical patent/KR910010301A/ko
Application granted granted Critical
Publication of KR930007041B1 publication Critical patent/KR930007041B1/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/30145Instruction analysis, e.g. decoding, instruction word fields
    • G06F9/3016Decoding the operand specifier, e.g. specifier format
    • G06F9/30167Decoding the operand specifier, e.g. specifier format of immediate specifier, e.g. constants
    • 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/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3853Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution of compound instructions
    • 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

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)
  • Advance Control (AREA)

Abstract

내용 없음.

Description

명령 지정방법 및 실행장치
제1a, 1b 및 1c도는 종래의 RISC 아카텍쳐에서 사용되는 명령형식의 예시도.
제2a, 2b, 2c 및 2d도는 본 발명에서 사용된 명령형식의 실시예들을 나타내는 도면.
제3도는 본 발명이 적용된 정보처리장치의 요부를 나타내는 시스템 개통도.
제4도는 제3도에 나타낸 제어회로의 일실시예를 명령 레지스터와 함께 나타내는 시스템 개통도.
제5도는 제3도에 보인 프로세서의 파이프 라인 동작을 설명하는 타이밍챠트.
제6도는 제3도에 보인 레지스터 화일의 일실시예를 나타내는 시스템 개통도.
제7,8 및 9도는 제3도에 보인 동작회로의 실시예들을 나타내는 개통도.
본 발명은 일반적으로 명령 지정방법과 그의 실행장치에 관한 것으로 특히 정보 처리장치 및 그내의 명령 실행장치에서 실행될 명령을 지정하는 명령 지정방법에 관한 것이다.
최근에 프로세서의 성능이 반도체장치의 집적도 및 동작속도의 개선에 힘입어 크게 향상되었다. 그러나, 프로세서의 성능을 더욱 개선함이 요구되고 있다. 이러한 요구에 부응하여, 일명 축소명령 세트 컴퓨터(reduced instruction set computer : RISC)라 불리는 아키택쳐(architecture)가 제안된 바 있다.
이 RISC에 의하면, 명령어의 길이가 32비트로 정해져 있고, 또한 레지스터들간에서만 연산이 행해진다. 그밖에도 메모리 억세스가 메모리와 레지스터간의 전송으로만 제한되고, 또한 RISC는 단지 빈번하게 사용되는 프로그램들의 명령만을 갖는다. 상술한 제한때문에 명령을 실행하도록 하는데 필요한 하드웨어를 간략화하고, 또한 하드웨어의 제어를 간략화하는 것이 가능하다. 그 때문에, 1명령을 실행하는데 필요한 사이클수를 줄이는 한편, 동작 클록 주파수를 증가시킴으로써, 프로세서의 성능을 개선할 수 있다.
한편 프로세서의 성능을 더욱 개선하기 위하여 동시에 복수의 명령을 실행하도록 하는 방안들이 제안된 바 있다.
제1a, 1b 및 1c도는 종래의 RISC 아키텍쳐에서 사용되는 명령 형식의 예시도들이다.
제1a도는 제1형식의 명령을 나타낸다.
명령코드(OP)에 의하면, 이 명령은 제2레지스터 명령필드(R2X)에 의해 지정된 레지스터 내용과 제3레지스터 명령필드(R3X)에 의해 지정된 레지스터 내용간의 연산을 명령하며, 또한 연산결과를 제1레지스터 명령 필드(R1X)에 의해 지정된 레지스터내에 기억시키는 명령을 한다.
제1b도는 제2형식의 명령을 나타낸다. 이 명령이 연산명령일 경우, 이 명령을 제2레지스터 명령필드(R2X)에 의해 지정된 레지스터내용과 16비트 즉시 데이타(IMM16)간의 연산을 명령하며, 또한 그 연산결과를 제1레지스터 명령필드(R1X)에 의해 지정된 레지스터내에 기억시키는 명령을 한다.
한편, 이 명령이 로드명령(load instruction)일 경우, 이 명령은 제2레지스터 명령필드(R2X)에 의해 지정된 레지스터 내용인 어드레스의 가산을 명령하고, 또한 그 가산에 의해 얻은 메모리의 어드레스의 데이타를 제1레지스터 명령 필드 (R1X)에 의해 지정된 레지스터내에 기억시키는 명령을 한다.
제1c도는 제3형식의 명령을 나타낸다.
이 명령은 21비트 즉시 데이타(IMM21)을 제1레지스터 명령 필드(R1X)에 의해 지정된 레지스터내에 기억시키는 명령을 한다.
제1형식의 명령에 의하면, 21비트 내지 31비트가 사용되지 않으므로, 비트 이용 효율이 나쁜 문제점이 있다. 한편, 제2형식의 명령에 의하면, 즉시 데이타가 16비트를 초과하는 경우와 같이 대형의 즉시 데이타와 편차가 필요할 경우에 복수의 명령을 사용해야 하는 문제점이 있다. 마찬가지로, 제3형식의 명령에 의하면, 즉시 데이타가 21비트를 초과하는 경우와 같이 대형 즉시 데이타가 필요할 경우에도 복수의 명령을 사용해야 하는 문제점이 있다.
또한, 복수의 명령을 병렬로 실행할시에, 병렬로 실행해야 되는 명령들의 조합이 대량으로 존재하기 때문에 하드웨어의 제어가 복잡해질 뿐만 아니라, 명령을 병렬로 실행하는데 필요한 하드웨어 구조의 스케일이 커져야 한다.
따라서, 본 발명의 일반목적은 상술한 문제점들을 제거한 신규하고도 유용한 명령 지정 방법 및 실행장치를 제공하는데 있다.
본 발명의 또다른 보다 구체적인 목적은 정보처리장치에서 실행할 명령을 지정하기 위한 명령 지정방법에 있어서, 단일 명령을 지정하기 위해 적어도 하나의 명령 코드와 하나의 오퍼랜드 지정부로부터 각각의 명령어들을 형성하는 단계와, 긴 명령어내에 내포된 하나 또는 복수의 명령어들의 구성을 지정하는 하나의 타입코드와, 하나 또는 복수의 상기 명령어들로부터 고정된 길이의 긴 명령어들 각각을 형성하는 단계와, 그리고 상기 긴 명령어에 의해 하나 또는 복수의 명령들을 지정하는 단계를 포함하는 것이 특징인 명령지정방법을 제공하는데 있다.
본 발명의 또다른 목적은 정보처리장치내의 명령을 실행하기 위한 실행장치에 있어서, 고정된 길이를 갖는 긴 명령어를 입력시키기 위한 입력수단을 포함하되, 상기 긴 명령어는 하나의 타입코드와 하나 또는 복수의 명령어들로 구성되며, 상기 명령어들 각각은 단일 명령을 지정하기 위해 적어도 하나의 명령코드와 오퍼랜드 지정부를 포함하며, 상기 타입 코드는 상기 긴 명령어내에 내포된 상기 하나 또는 복수의 명령어들의 구성을 지정하며, 또한 타입 코드로부터 긴 명령어내에 내포된 명령어들의 수와 조합을 판정하여 판정결과를 출력시키기 위해 상기 입력수단에 결합되는 판정수단과, 상기 긴 명령어내에 내포된 명령어들에 의해 지정된 연산들을 독립적으로 수행하기 위해 상기 판정수단에 결합되는 복수의 연산수단과, 상기 긴 명령어내에 내포된 각 명령어에 의해 지정된 연산을 상기 판정수단으로부터 출력된 판정결과에 따라 상기 연산수단 중 하나에 할당하기 위해 상기 판정수단에 결합되는 할당 수단을 포함하는 것이 특징인 명령실행장치를 제공하는데 있다.
이하 첨부도면을 참조하여 본 발명의 양호한 실시예를 상세히 설명하면 다음과 같다.
우선, 제2a∼2d를 참조하여 본 발명에서 사용될 수 있는 명령 형식의 실시예들에 대해 설명하겠다.
제2a도는 제1명령 형식의 64비트 길이의 명령어를 나타낸다. 이러한 길이의 명령어는 비트 0∼3의 타입 코드(Type)과, 비트 4∼23, 24∼43 및 44∼63의 형식(A)의 3개의 명령어로 구성된다.
비트 4∼23의 형식(A)의 명령어는 5비트의 명령의 명령코드(OPa)와, 5비트의 제1레지스터 지정 필드(Ra1)과, 5비트의 제2레지스터 지정 필드(Ra2)와, 5비트의 제3레지스터 지정 필드(Ra3)으로 구성된다. 이 레지스터 지정 필드들(Ra1, Ra2, Ra3)은 오퍼랜드 지정부로서 구비된다. 이 명령어는 명령 코드(OPa)에 따라 제1레지스터 지정 필드(Ra1)에 의해 지정된 레지스터 내용과 제2레지스터 지정 필드(Ra2)에 의해 지정된 레지스터 내용간을 연산하여 그 연산결과를 제3레지스터 지정 필드(Ra3)에 의해 지정된 레지스터내에 기억시키는 명령을 한다.
비트 24∼43의 형식(A)의 명령어는 5비트의 명령 코드(OPb)와, 5비트의 제1레지스터 지정 필드(Rb1)과, 5비트의 제2레지스터 지정 필드(Rb2)와, 5비트의 제3레지스터 지정 필드(Rb3)으로 구성된다. 이 3개의 지정 필드(Rb1, Rb2, Rb3) 역시 오퍼랜드 지정부로서 구비된다. 이 명령어는 명령코드(OPb)에 따라 제1레지스터 지정 필드(Rb1)에 의해 지정된 레지스터 내용과 제2레지스터 지정 필드(Rb2)에 의해 지정된 레지스터 내용간을 연산하여, 그 연산결과를 제3레지스터 지정 필드(Rb3)에 의해 지정된 레지스터내에 기억시키는 명령을 한다.
마찬가지로, 비트 44∼63의 형식(A)의 명령어는 5비트의 명령 코드(OPc)와, 5비트의 제1레지스터 지정 필드(Rc1)과, 5비트의 제2레지스터 지정 필드(Rc2)와, 5비트의 제3레지스터 지정 필드(Rc3)으로 구성된다. 이 3개의 지정 필드(Rc1, Rc2, Rc3) 역시 오퍼랜드 지정부로서 구비된다. 이 명령어는 명령코드(OPc)에 따라 제1레지스터 지정 필드(Rc1)에 의해 지정된 레지스터 내용과 제2레지스터 지정 필드(Rc2)에 의해 지정된 레지스터 내용간을 연산하여, 그 연산결과를 제3레지스터 지정 필드(Rc3)에 의해 지정된 레지스터내에 기억시키는 명령을 한다.
실행되는 연산의 종류는 4비트의 타입 코드(Type)과 5비트의 명령코드들(OPa, OPb, OPc)중 하나와의 조합에 의해 지정된다. 이하에 기술되는 제2b∼2d도에 보인 긴 명령어에 대해서 마찬가지로 연산의 종류가 지정된다.
제2b도는 제2명령형식의 64비트의 긴 명령어를 나타낸다. 이 긴 명령어는 비트 "0∼3"의 타입코드(Type)와, 비트 "4∼23"의 형식(A)의 명령어와, 비트 "24∼63"의 형식(B)의 명령어로 구성된다.
비트 "4∼23"의 형식(A)의 명령어는 5비트의 명령코드(OPa)와, 5비트의 제2레지스터 지정 필드(Ra1)과, 5비트의 제2레지스터 지정 필드(Ra2)와, 5비트의 제3레지스터 지정 필드(Ra3)으로 구성된다. 이들 레지스터 지정 필드를(Ra1, Ra2, Ra3) 역시 오퍼랜드 지정부로서 구비된다. 이 명령어는 명령코드(OPa)에 따라 제1레지스터 지정 필드(Rb1)에 의해 지정된 레지스터 내용과 제2레지스터 지정 필드(Rb2)에 의해 지정된 레지스터 내용간을 연산하여, 그 연산결과를 제3레지스터 지정 필드(Rb3)에 의해 지정된 레지스터내에 기억시키는 명령을 한다.
비트 "24∼63"의 형식(B)의 명령어는 5비트의 명령코드(OPb)와, 5비트의 제1레지스터 지정 필드(Ra1)와, 25비트의 즉시 데이타(IMM25)와, 5비트의 제3레지스터 지정 필드(Rb3)으로 구성된다. 제1레지스터 지정 필드(Rb1)은 비트 "29∼33"에 배치되며, 즉시 데이타(IMM 25)는 비트 "34∼58"에 비치되며, 제3레지스터 지정 필드(Rb3)은 비트 "59∼63"에 배치된다.
명령코드(OPb)가 연산 명령을 나타낼 경우, 이 명령은 명령코드(OPb)에 따라 제1레지스터 지정 필드(Rb1)에 의해 지정된 레지스터 내용과 특시 데이타(IMM 25)간을 연산하여 그 연산결과를 제3레지스터 지정 필드(Rb3)에 의해 지정된 레지스터내에 기억시키는 명령을 한다. 한편 명령코드(OPb)가 로드명령을 나타낼 경우, 이 명령어는 명령코드(OPb)에 따라 제1레지스터 지정 필드(Rb1)에 의해 지정된 레지스터 내용인 어드레스와 즉시 데이타(IMM 25)로서 주어진 편차를 추가하여, 그 추가에 의해 얻은 메모리의 어드레스 데이타를 제3레지스타 지정 필드(Rb3)에 의해 지정된 레지스터내에 기억시키는 명령을 한다.
제2c도는 제3의 명령형식의 64비트의 긴 명령어를 나타낸다. 이 긴 명령어는 비트 "0∼3"의 타입코드(Type)와, 비트 "4∼23"의 형식(A)의 명령어와, 비트 "24∼63"의 형식(C)의 명령어로 구성된다.
비트 "4∼23"의 형식(A)의 명령어는 5비트의 명령코드(OPa)와, 5비트의 제1레지스터 지정 필드(Ra)과, 5비트의 제2레지스터 지정 필드(Ra2)와, 5비트의 제3레지스터 지정 필드(Ra3)으로 구성된다. 레지스터 지정 필드(Ra1, Ra2, Ra3)도 역시 오퍼랜드 지정부로서 구비된다. 이 명령어는 명령코드(OPa)에 따라 제1레지스터 지정 필드(Ra1)에 의해 지정되는 레지스터 내용과 제2레지스터 지정 필드(Ra2)에 의해 지정되는 레지스터 내용간을 연산하여 그 연산결과를 제3레지스터 지정 필드(Ra3)에 의해 지정된 레지스터내에 기억시키는 명령을 한다.
비트 "24∼63"의 형식(C)의 명령어는 5비트의 명령코드(OPb)와, 32비트의 즉시 데이타(IMM32)와 5비트의 제3레지스터 지정 필드(Rb3)으로 구성된다. 즉시 데이타(IMM 32)는 비트 "27∼58"에 배치되며, 제3레지스터 지정 필드(Rb3)은 비트 "59∼63"에 배치된다. 이 명령어는 명령코드(OPb)에 따라 제3레지스터 지정 필드(Rb3)에 의해 지정된 레지스터내에 즉시 데이타(IMM 32)를 기억시키는 명령을 한다.
제2d도는 제4의 명령형식의 64비트의 긴 명령어를 나타낸다. 이 긴 명령어는 비트 "0∼3"에 배치되는 타입 코드(Type)과, 비트 "23∼63"에 배치되는 형식(D)의 60비트의 명령어로 구성된다.
비트 "4∼63"에 배치된 형식(D)의 명령어는 5비트의 명령코드(OPa)와, 32비트의 즉시 데이타(IMM 32)와, 5비트의 제3레지스터 지정 필드(Rb3)으로 구성된다. 즉시 데이타(IMM 32)는 비트 "9∼40"에 배치되며, 제3레지스터 지정 필드(Rb3)은 비트 "59∼63"에 배치된다. 이 명령어는 명령코드(OPa)에 따라 제3레지스터 지정 필드(Rb3)에 의해 지정된 레지스터내에 즉시 데이타(IMM 32)를 기억시키는 명령을 한다.
제2a∼2d도에 보인 긴 명령어들에서, 명령어들의 형식(A∼D)는 타입코드(Type)의 값과 구별된다.
그다음, 제3도를 참조하여 본 발명에 의한 명령방법의 일실시예와 본 발명에 의한 실행장치의 일실시예를 적용한 정보처리장치에 대해 설명하겠다.
제3도는 정보처리장치의 요부를 나타낸다. 정보처리장치는 명령 메모리(20)과, 프로세서(21)과 오퍼랜드 메모리(70)으로 구성된다. 명령 메모리(20)으로부터 독출된 64비트의 긴 명령어는 프로세서(21)내의 명령 메모리(22)내에 기억된다. 명령 메모리(22)내에 기억된 긴 명령어의 각 비트는 프로세서(21)내의 제어회로(23)에 공급된다.
제4도는 명령 레지스터(22)와 함께 제어회로(23)의 일실시예를 나타낸 도면이다. 디코더(25)는 명령 레지스터(22)내에 기억된 비트 "0∼3"의 명령어, 즉 타입 코드(Type)를 디코드한다. 디코더(26)은 타입 코드(Type)과 함께 비트 "4∼8"의 명령어를 디코드하여 제1연산회로 제어신호(CNT 1)을 생성한다.
디코더(27)은 타입 코드(Type)와 함께 비트 "24∼28"의 명령어를 디코드해서 제2연산회로 제어신호(CNT 2)를 생성한다. 마찬가지로 디코더(28)은 타임 코드(Type)와 함께 비트 "44∼48"의 명령어를 디코드해서 제3연산회로 제어신호(CNT 3)을 생성한다. 디코더들(26,27,28)내에서 디코드된 비트들은 각각 타입 코드(Type)를 제외하고, 제1명령형식의 긴 명령어의 명령코드들(OPa, OPb, OPc)에 해당한다.
선택기(SEL)(24)는 디코더(25)의 출력신호에 응답하여 명령레지스터(22)내에 기억된 명령어의 비트 "19∼23" 또는 비트 "59∼63"을 선택한다. 선택기(24)에 의해 선택된 비트는 실행 사이클동안 래치회로(LT)(29)내에 래치된다. 명령 레지스터(22)내에 기억된 명령어의 비트 "59∼63"은 실행사이클동안 래치회로(30)내에 래치된다. 선택기(31)은 디코더(25)의 출력신호에 응답하여 명령 레지스터(22)내에 기억된 명령어의 비트 "59∼63" 또는 비트 "39∼43"을 선택한다. 선택기(31)에 의해 선택된 비트들은 실행 사이클동안 래치회로(32)내에 래치된다.
래치회로들(29,32,30)의 출력들은 기입 사이클동안 래치회로들(35,36,37)내에 제각기 래치되며, 래치회로들(35,36,37)의 출력들은 디코더들(40,41,42)내에서 제각기 디코드된다. 그밖에도 래치회로(36)의 출력은 억세스 사이클동안 래치회로(43)내에 래치되며, 래치회로(43)의 출력은 디코더(44)내에서 디코드된다.
디코더들(40,41,42,44)는 디코더들(26,27,28)로부터 출력된 제어신호들(CNT1, CNT2, CNT3)의 부분들에 의해 제어된다. 특히, 디코더(40)은 2래치회로(47,48)을 통해 제어신호(CNT 1)을 통과시켜 얻은 이네이블 신호(ENBLA)에 응답하여 이네이블된다. 마찬가지로, 디코더(41)은 2래치회로(도시안됨)을 통해 제어신호(CNT2)를 통과시켜 얻은 이네이블신호(ENBLB)에 응답하여 이네이블 되고, 디코더(42)는 2래치회로(도시안됨)를 통해 제어신호(CNT 3)를 통과시켜 얻은 이네이블신호(ENBLC)에 응답하여 이네이블된다. 디코더(44)는 1래치회로(도시안됨)를 통해 제어신호(CNT 2)를 통과시켜 얻은 이네이블 신호(ENBLL)에 응답하여, 이네이블 된다. 이네이블 신호들(ENBLB, ENBLC, ENBLL)을 얻는데 사용되는 래치회로들은 상호 결선을 간략히 하기 위해 제4도에서 생략되었다.
32 OR회로들(450∼4531)은 제각기 디코더들(40,41,42,44)의 출력들에 따라 클록 게이트 이네이블 신호들(CGE0∼CGE31)을 생성한다.
제3도에 보인 프로세서(21)은 파이프라인 연산을 행한다. 이 경우에 제1의 긴 명령어의 인출(F)사이클, 디코드(D)사이클, 실행(E)사이클 및 기입(W) 사이클은 제5(a)도에 보인 클록신호와 동기하여 제5(b)도에 보인 바와같이 행해진다. 다시말해 2연속하는 긴 명령어들의 사이클들은 1사이클씩 지체된다.
그러나, 긴 명령어내의 로드명령의 경우에는 E사이클에서 어드레스 계산을 행하고, W사이클에서 메모리 억세스(억세스(A)사이클)이 행해진다.
제5(a)도에 보인 클록신호는 제3도에 보인 프로세서(21)의 래치회로등에 공급된다.
제1형식의 긴 명령어가 명령레지스터(22)내에 기억되는 경우, 디코더(25)는 타입 코드(Type)를 디코드하고, 디코더들(26,27,28)은 제각기 타입 코드(Type)와 함께 명령 코드들(OPa, OPb, OPc)를 디코드한다. 그밖에도, 제3레지스터 지정 필드(Ra3, Rb3, Rc3)은 제각기 E 사이클동안 래치회로들(29,32,30)내에 래치된다. 제3레지스터 지정 필드(Ra3, Rb3, Rc3)은 제각기 W사이클동안 래치회로들(35,36,37)내에 래치되고, 또한 각각의 디코더들(40,41,42)내에 디코드된다.
제2형식의 긴 명령어가 명령 레지스터(22)내에 기억되는 경우, 디코더(25)는 타입 코드(Type)를 디코드하고, 디코더들(26,27)은 제각기 타입 코드(Type)과 함께 명령 코드들(OPa, OPb)를 디코드한다. 그밖에 선택기(31)은 디코더(25)의 출력신호에 응답하여 명령 레지스터(22)내에 기억된 명령어의 비트 "59∼63"을 선택하고 제3의 레지스터 지정필드들(Ra3, Rb3)은 제각기 E사이클동안 래치회로들(29,32)내에 래치된다. 더우기, 래치회로들(29,32)내에 래치된 비트들은 제각기 W기입동안 래치회로들(35,36)내에 래치되고 또한 각 디코더들(40,41)내에서 디코드된다. 디코더(42)는 이네이블 신호(ENBLC)에 응답하여 디스에이블된다.
더우기, 래치회로(36)으로부터 출력된 제3래지스터 지정필드들(Rb3)은 A사이클동안 래치회로(43)내에 래치되고, 또한 디코더(44)에 의해 디코드된다. 이 디코더(44)는 형식(B)의 명령어가 로드명령일때만 이네이블 신호(ENBLL)에 응답하여 이네이블된다.
제3형식의 긴 명령어가 명령 레지스터(22)내에 기억되는 경우, 디코더(25)는 타입 코드(Type)를 디코드하고, 디코더들(26,27)은 제각기 타입 코드(Type)과 함께 명령 코드들(OPa, OPb)를 디코드한다. 그밖에도 선택기(31)은 디코더(25)의 출력신호에 응답하여 명령 레지스터(22)내에 기억된 명령어의 비트 "59∼63"을 선택하고, 또한 제3레지스터 지정필드들(Ra3, Rb3)은 제각기 E사이클동안 래치회로들(29,32)내에 래치된다. 더우기, 래치회로들(29,32)내에 래치된 비트들은 W사이클동안 래치회로들(35,36)내에 래치되고 또한 각각의 디코더들(40,41)내에 디코드된다. 디코드(42)는 이네이블신호(ENBLC)에 응답하여 디스에이블된다. 더우기, 래치회로(36)으로부터 출력된 제3레지스터 지정 필드(Rb3)은 A사이클동안 래치회로(43)내에 래치되고 또한 디코더(44)에 의해 디코드된다. 이 디코더(44)는 형식(C)의 명령어가 로드명령일때만 이네이블 신호(ENBLL)에 응답하여 이네이블된다.
제4형식의 긴 명령어가 명령 레지스터(22)내에 기억되는 경우, 디코더(25)는 타입 코드(Type)를 디코드하고, 디코더(26)은 타입 코드(Type)와 함께 명령 코드(OPa)를 디코드한다. 그밖에도 선택기(24)은 디코더(25)의 출력신호에 응답하여 명령 레지스터(22)내에 기억된 명령어의 비트 "59∼63"을 선택하며 제3레지스터 지정필드(Ra3)은 E사이클동안 래치회로(29)내에 래치된다. 또한, 래치회로(29)내에 래치된 비트들은 W사이클동안 래치회로(35)내에 래치되고, 또한 디코더(40)에 의해 디코드된다. 디코더들(41,42,44)는 각각의 이네이블신호들(ENBLB, ENBLC, ENBLL)에 의해 디스에이블된다.
제6도는 제3도에 보인 레지스터 화일(50)의 일실시예를 나타낸다. 제6도에서, 각 단자들(RIa3, RIb3, RIc3, RI1)에 입력되는 32비트 데이타는 모든 선택기들(510∼5131)에 공급된다. 선택기들(510∼5131)은 모두 제4도에 보인 디코더들(40,41,42,44)의 출력들에 의해 제어되고 또한 단자들(RIa3, RIb3, RIc3, RI1)로부터 수신된 32비트 데이타 중 하나를 선택한다. 선택기들(510∼5131)의 출력들은 레지스터들(R0∼R31)에 제각기 공급된다. 레지스터들(R0∼R31)은 제각기 각각의 클록게이트 이네이블신호들(CGE0∼CGE31)이 OR회로들(450∼4531)로부터 수신될 때 입력되는 데이타를 래치한다.
레지스터들(R0∼R31)의 출력들은 모두 6선택기들(52a∼52f)에 공급된다. 선택기(52a)는 명령 레지스터(22)내에 기억된 명령어의 비트 "9∼13"에 의해 즉, 제1레지스터 지정 필드(Ra1)에 의해 제어된다. 선택기(52b)는 명령 레지스터(22)내에 기억된 명령어의 비트 "14∼18"에 의해 즉, 제2레지스터 지정 필드(Ra2)에 의해 제어된다. 선택기(52c)는 명령 레지스터(22)내에 기억된 명령어의 비트 "29∼33"에 의해 즉, 제1레지스터 지정 필드(Rb1)에 의해 제어된다. 선택기(52d)는 명령 레지스커(22)내에 기억된 명령어의 비트 "43∼38"에 의해 즉, 제2레지스터 지정 필드(Rb2)에 의해 제어된다. 선택기(52e)는 명령 레지스터(22)내에 기억된 명령어의 비트 "49∼53"에 의해 즉, 제1레지스터 지정 필드(Rc1)에 의해 제어된다. 선택기(52f)는 명령 레지스터(22)내에 기억된 명령어의 비트 "54∼58"에 의해 즉, 제2레지스터 지정 필드(Rc2)에 의해 제어된다. 레지스터들(R0∼R31)내의 데이타는 명령 레지스터(22)내에 기억된 명령어의 비트들에 의해 선택된 각각의 선택기들(52a∼52f)를 통해 단자들(R0a1, R0a2, R0b1, R0b2, R0c1, R0c2)로부터 출력된다.
제3도의 설명으로 되돌아가면, 레지스터화일(50)의 단자(R0a1)으로부터 수신된 데이타는 래치회로(55a)내에 래치된다.
한편, 레지스터 화일(50)의 단자(R0a2)로부터 수신된 데이타와 명령 레치스터(22)내에 기억된 명령어의 비트 "9∼40"에 대응하는 즉시 데이타(IMM 32)중 하나가 선택기(54)에 의해 선택되어 래치회로(55b)내에 래치된다. 래치회로들(55a, 55b)내에 래치된 데이타는 제1연산회로(56)내에서 연산된다. 제1연산회로(56)내의 연산결과는 래치회로(57)내에 래치된다.
레지스터 화일(50)의 단자(R0b1)으로부터 수신된 데이타는 래치회로(59a)내에 래치된다. 한편 레지스터 화일(50)의 단자(R0b2)로부터 수신된 데이타, 즉 명령 레지스터(22)내에 기억된 명령어의 비트 "34∼58"에 대응하는 즉시 데이타(IMM 32)중 하나가 선택기(58)에 의해 선택되어 래치회로(59b)내에 래치된다. 래치회로(59a, 59b)내에 래치된 데이타는 제2연산회로(60)내에서 연산된다. 제2연산회로(60)내의 연산 결과는 래치회로(61)내에 래치된다.
래치스터 화일(50)의 단자들(R0c1과 R0b2)로부터 수신된 데이타는 래치회로(62a, 62b)내에 각각 래치되며, 그 래치된 데이타는 제3연산회로(63)내에서 연산되어 그 결과는 래치회로(64)내에 래치된다.
제1형식의 긴 명령어를 실행할 경우, 레지스터 저장 필드(Ra1, Ra2, Rb1, Rb2, Rc1, Rc2)에 의해 지정된 레지스터(R0∼R31)의 기억된 데이타는 레지스터 화일(50)의 단자들(R0a1, R0a2, R0b1, R0b2, R0c1, R0c2)로부터 출력된다.
그밖에 선택기(58)에 의해 단자(R0b2)로부터의 출력 데이타의 선택에 의해 상술한 데이타는 래치회로들(55a, 55b, 59a, 59b, 62a, 62b)내에 래치되고 또한 동시에 연산회로들(56,60)에서 연산이 행해지고, 그 연산결과는 레지스터 화일(50)의 단자들(RIa3, RIb3)에 각각 입력된다.
그러나, 형식(B)의 명령어가 로드 명령일 경우 연산회로(60)내에서 수행된 어드레스 계산결과는 오퍼랜드 메모리(70)에 공급되고, 또한 로드 데이타는 오퍼랜드 메모리(70)으로부터 레지스터 화일(50)의 단자(RI1)에 공급된다.
제3형식의 긴 명령어 실행의 경우, 레지스터 지정 필드들(Ra1, Ra2, Rb1)에 의해 지정된 레지스터들(R0∼R31)의 기억된 데이타는 레지스터 화일(50)의 단자들(R0a1, R0a2, R0b1, R0b2)로부터 출력된다. 그밖에도 선택기(58)에 의해 즉시 데이타(IMM 32)의 선택에 의해 상술한 데이타는 래치회로들(55a, 55b, 59a, 59b)내에 래치되고, 또한 동시에 연산회로들(56,60)내에서 연산이 행해진다. 그 연산결과는 레지스터 화일(50)의 단자들(RIa3, RIb3)에 각각 입력된다. 그러나, 형식(B)의 명령어가 로드명령일 경우, 연산회로(60)에서 수행되는 어드레스 계산의 결과는 오퍼랜드 메모리(70)에 공급되고, 또한 로드 데이타는 오퍼랜드 메모리(70)으로부터 레지스터 화일(50)의 단자들(RI1)로 공급된다.
제4형식의 긴 명령어를 실행할 경우, 레지스터 지정 필드(Ra1)에 의해 지정된 레지스터들(R0∼R31)의 기억된 데이타는 레지스터 화일(50)의 단자(R0a1)으로부터 출력된다. 그밖에 선택기(54)에 의해 즉시 데이타(IMM 32)의 선택에 의해 상술한 데이타는 래치회로(55a, 55b)내에 래치되고 또한 연산회로(56)내에서 연산이 행해진다. 연산결과는 레지스터 화일(50)의 단자(RIa3)에 입력된다. 그러나, 형식(B)의 명령어가 로드명령일 경우, 연산회로(60)내에서 수행되는 어드레스 계산결과는 오퍼랜드 메모리(70)에 공급되고, 또한 로드 데이타는 오퍼랜드 메모리(70)으로부터 레지스터 화일(50)의 단자들(RI1)로 공급된다. 이 실시예에서, 프로세서(21)은 32비트 구조를 갖는다. 이러한 이유때문에 제3형식의 긴 명령어의 비트 "41∼58"은 사용되지 않는다. 그러나, 프로세서(21)이 64비트 구성일 경우, 제3형식의 긴 명령어의 비트 "9∼58"은 모두 즉시 데이타(IMM 51)로서 사용될 수 있다.
프로그램 카운터(71)로부터 출력된 명령 어드레스 또는 래치회로(61)로부터 출력된 브랜치 어드레스는 선택기(72)에 의해 선택되어 그다음 긴 명령어를 독출하도로 명령 메모리(20)에 공급된다.
제7도는 제3도에 보인 연산회로(56)의 일실시예를 나타낸다. 연산회로(56)은 도시된 바와같이 연결된 산술 연산 논리기구(ALU)(56a)와 승산기(56b)로 구성된다.
제8도는 제3도에 보인 연산회로(60)의 일실시예를 나타낸다. 연산회로(60)은 도시된 바와같은 연결된 ALU(60a)와 쉬프트 회로(60b)로 구성된다.
제9도는 제3도에 보인 연산회로(64)의 일실시예를 나타낸다. 연산회로(64)는 (ALU 64a)를 포함한다.
제1∼제4형식들의 긴 명령어들의 명령코드들(OPa, OPb, OPc)를 연산회로(57,61,64)에서 수행할 수 있는 명령들로만 제한함으로써 명령들의 병렬 실행을 용이하게 하는 것이 가능하다. 그러므로, 본 발명에 의하면, 긴 명령어의 사용안되는 비트들이 없으므로 타입 코드로부터 고정된 길이의 긴 명령어와 하나 이상의 명령어들을 형성함으로써 비트 이용효율이 개선된다.
그밖에도, 긴 명령어내에 포함된 명령어의 수를 감소시킴으로써 큰 즉시데이타를 지정하는 것이 가능하다. 또한, 긴 명령어를 형성하는 명령어들의 구성, 즉 긴 명령어를 형성하는 명령어들의 조합은 타입 코드에 의해 한정되기 때문에 명령어들의 조합에 따라 병렬로 복수의 명령들을 실행할시에 하드웨어의 제어와 하드웨어 구성을 간략화 하는 것이 가능하다.
또한, 본 발명은 이들 실시예들로 제한되지 않고, 본 발명의 정신으로부터 벗어나지 않는 범위내에서 여러 수정 변경이 가능하다.

Claims (10)

  1. 정보처리장치에서 실행할 명령을 지정하기 위한 명령 지정방법에 있어서, 단일 명령을 지정하기 위해 적어도 하나의 명령 코드(OPa, OPb, OPc)와 하나의 오퍼랜드 지정부(Ra1-Ra3, Rb1-Rb3, Rc1-Rc3)으로부터 각각의 명령어들을 형성하는 단계와, 긴 명령어내에 내포된 하나 또는 복수의 명령어들의 구성을 지정하는 하나의 타입 코드(Type)와, 하나 또는 복수의 상기 명령어들로부터 고정된 길이의 긴 명령어들 각각을 형성하는 단계와, 그리고 상기 긴 명령어에 의해 하나 또는 복수의 명령들을 지정하는 단계를 포함하는 것이 특징인 명령지정방법.
  2. 제1항에 있어서, 상기 명령어들은 제1형식(A)의 제1명령어와, 제2형식(B)의 제2명령어와 제3형식(C,D)의 제3명령어로 구성되며, 상기 제1명령어는 제1및 제2레지스터들의 내용들간을 연산하고, 또한 그 연산결과를 제3레지스터내에 기억시키는 명령을 하고, 상기 제2명령어는 제1레지스터의 내용과 즉시 데이타간을 연산하고, 또한 그 연산결과를 제3레지스터내에 기억시키는 명령을 하고, 상기 제3명령어는 즉시 데이타를 제3레지스터내로 기억시키는 명령을 하는 것이 특징인 명령지정방법.
  3. 제2항에 있어서, 상기 긴 명령어들은 제1워드형식(제2A도)의 제1의 긴 명령어와, 제2워드형식(제2B도)의 제2의 긴 명령어와, 제3워드형식(제2C도)의 제3의 긴 명령어와, 제4워드형식(제2D도)의 제4의 긴 명령어로 구성되며, 상기 제1의 긴 명령어는 상기 타입 코드와 상기 3개의 제1명령어들로 구성되며 상기 제2의 긴 명령어는 상기 타입 코드와, 상기 제1명령어와 상기 제2명령어로 구성되며 상기 제3의 긴 명령어는 상기 타입 코드와, 상기 제1명령어와, 상기 제3명령어로 구성되며, 상기 제4의 긴 명령어는 상기 타입 코드와 상기 제3명령어로 구성되는 것이 특징인 명령지정방법.
  4. 제3항에 있어서, 상기 타입 코드는 4비트로 구성되며, 상기 제1명령어는 20비트로 구성되며, 상기 제2명령어는 40비트로 구성되며, 상기 제3명령어는 40 또는 60비트로 구성되며, 상기 긴 명령어들의 고정된 길이는 64비트인 것이 특징인 명령지정방법.
  5. 정보처리장치내의 명령을 실행하기 위한 실행장치에 있어서, 고정된 길이를 갖는 긴 명령어를 입력시키기 위한 입력수단(22)을 포함하되, 상기 긴 명령어는 하나의 타입코드(Type)와 하나 또는 복수의 명령어들로 구성되며, 상기 명령어들 각각은 단일명령을 지정하기 위해 적어도 하나의 명령코드(OPa, OPb, OPc)와 오퍼랜드 지정부(Ra1-Ra3, Rb1-Rb3, Rc1-Rc3)을 포함하며, 상기 타입 코드는 상기 긴 명령어내에 내포된 상기 하나 또는 복수의 명령어들의 구성을 지정하며, 또한 타입 코드로부터 긴 명령어내에 내포된 명령어들의 수와 조합을 판정하여 판정결과를 출력시키기 위해 상기 입력수단에 결합되는 판정수단(23)와, 상기 긴 명령어내에 내포된 명령어들에 의해 지정된 연산들을 독립적으로 수행하기 위해 상기 판정수단에 결합되는 복수의 연산수단(56,60,63)과, 상기 긴 명령어내에 내포된 각 명령어에 의해 지정된 연산을 상기 판정수단으로부터 출력된 판정결과에 따라 상기 연산수단 중 하나에 할당하기 위해 상기 판정수단에 결합되는 할당수단(23,54,58)을 포함하는 것이 특징인 명령실행장치.
  6. 제5항에 있어서, 상기 연산수단들(56,60,64)는 긴 명령어가 복수의 상기 명령어들을 포함할 경우, 병렬로 연산을 동시에 수행하는 것이 특징인 명령실행장치.
  7. 제5또는 6항에 있어서, 상기 판정수단에 결합된 복수의 오퍼랜드 레지스터 수단(50)을 더 구비하며, 또한 상기 판정수단(23)은 상기 긴 명령어내에 내포된 각각의 명령어들에 대한 각 명령어의 오퍼랜드 지정부에 따라 상기 오퍼랜드 레지스터 수단을 지정하기 위한 수단을 포함하는 것이 특징인 명령실행장치.
  8. 제7항에 있어서, 상기 명령어들은 제1형식(a)의 제1명령어와, 제2형식(b)의 제2명령어와 제3형식(c,d)의 제3명령어로 구성되며, 상기 제1명령어는 제1및 제2레지스터들의 내용들간을 연산하고, 또한 그 연산결과를 제3레지스터내에 기억시키는 명령을 하고, 상기 제2명령어는 제1레지스터의 내용과 즉시 데이타간을 연산하고, 또한 그 연산결과를 제3레지스터내에 기억시키는 명령을 하고, 상기 제3명령어는 즉시 데이타를 제3레지스터내로 기억시키는 명령을 하며, 상기 제1∼제3레지스터들은 상기 오퍼랜드 레지스터수단(50)내에 내포되는 것이 특징인 명령실행장치.
  9. 제8항에 있어서, 상기 긴 명령어들은 제1워드형식(제2a도)의 제1의 긴 명령어와, 제2워드형식(제2b도)의 제2의 긴 명령어와, 제3워드형식(제2c도)의 제3의 긴 명령어와, 제4워드형식(제2d도)의 제4의 긴 명령어로 구성되며, 상기 제1의 긴 명령어는 상기 타입 코드와 상기 3개의 제1명령어들로 구성되며, 상기 제2의 긴 명령어는 상기 타입 코드와, 상기 제1명령어와 상기 제2명령어로 구성되며 상기 제3의 긴 명령어는 상기 타입 코드와, 상기 제1명령어와, 상기 제3명령어로 구성되며, 상기 제4의 긴 명령어는 상기 타입 코드와 상기 제3명령어로 구성되는 것이 특징인 명령실행장치.
  10. 제9항에 있어서, 상기 타입 코드는 4비트로 구성되며, 상기 제1명령어는 20비트로 구성되며, 상기 제2명령어는 40비트로 구성되며, 상기 제3명령어는 40 또는 60비트로 구성되며, 상기 긴 명령어들의 고정된 길이는 64비트인 것이 특징인 명령실행장치.
KR1019900017654A 1989-11-01 1990-11-01 명령 지정방법 및 실행장치 KR930007041B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP1-285471 1989-11-01
JP1285471A JP2835103B2 (ja) 1989-11-01 1989-11-01 命令指定方法及び命令実行方式

Publications (2)

Publication Number Publication Date
KR910010301A KR910010301A (ko) 1991-06-29
KR930007041B1 true KR930007041B1 (ko) 1993-07-26

Family

ID=17691950

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019900017654A KR930007041B1 (ko) 1989-11-01 1990-11-01 명령 지정방법 및 실행장치

Country Status (7)

Country Link
US (1) US5442762A (ko)
EP (1) EP0426393B1 (ko)
JP (1) JP2835103B2 (ko)
KR (1) KR930007041B1 (ko)
AU (1) AU625008B2 (ko)
CA (1) CA2029088C (ko)
DE (1) DE69031899T2 (ko)

Families Citing this family (59)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0547240B1 (en) * 1991-07-08 2000-01-12 Seiko Epson Corporation Risc microprocessor architecture implementing fast trap and exception state
US5961629A (en) * 1991-07-08 1999-10-05 Seiko Epson Corporation High performance, superscalar-based computer system with out-of-order instruction execution
US5539911A (en) * 1991-07-08 1996-07-23 Seiko Epson Corporation High-performance, superscalar-based computer system with out-of-order instruction execution
EP1526446A3 (en) 1991-07-08 2007-04-04 Seiko Epson Corporation Extensible RISC microprocessor architecture
JP2746775B2 (ja) * 1991-08-05 1998-05-06 シャープ株式会社 中央処理装置
JPH05100897A (ja) * 1991-10-03 1993-04-23 Agency Of Ind Science & Technol 命令トレース方式
EP0551090B1 (en) * 1992-01-06 1999-08-04 Hitachi, Ltd. Computer having a parallel operating capability
US5438668A (en) 1992-03-31 1995-08-01 Seiko Epson Corporation System and method for extraction, alignment and decoding of CISC instructions into a nano-instruction bucket for execution by a RISC computer
US6735685B1 (en) 1992-09-29 2004-05-11 Seiko Epson Corporation System and method for handling load and/or store operations in a superscalar microprocessor
KR100248903B1 (ko) 1992-09-29 2000-03-15 야스카와 히데아키 수퍼스칼라마이크로프로세서에서의 적재 및 저장연산처리방법 및 시스템
WO1994027216A1 (en) * 1993-05-14 1994-11-24 Massachusetts Institute Of Technology Multiprocessor coupling system with integrated compile and run time scheduling for parallelism
EP1186995B1 (en) * 1993-11-05 2003-09-03 Intergraph Corporation Instruction memory with associative cross-bar switch
US6360313B1 (en) 1993-11-05 2002-03-19 Intergraph Corporation Instruction cache associative crossbar switch
US5860085A (en) * 1994-08-01 1999-01-12 Cypress Semiconductor Corporation Instruction set for a content addressable memory array with read/write circuits and an interface register logic block
US5745759A (en) * 1994-10-14 1998-04-28 Qnx Software Systems, Ltd. Window kernel
US6397262B1 (en) 1994-10-14 2002-05-28 Qnx Software Systems, Ltd. Window kernel
US5867726A (en) * 1995-05-02 1999-02-02 Hitachi, Ltd. Microcomputer
JP2931890B2 (ja) 1995-07-12 1999-08-09 三菱電機株式会社 データ処理装置
US5848288A (en) * 1995-09-20 1998-12-08 Intel Corporation Method and apparatus for accommodating different issue width implementations of VLIW architectures
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
JP3201716B2 (ja) * 1996-02-22 2001-08-27 シャープ株式会社 コンピュータ装置
US5867681A (en) * 1996-05-23 1999-02-02 Lsi Logic Corporation Microprocessor having register dependent immediate decompression
US5896519A (en) * 1996-06-10 1999-04-20 Lsi Logic Corporation Apparatus for detecting instructions from a variable-length compressed instruction set having extended and non-extended instructions
US5794010A (en) * 1996-06-10 1998-08-11 Lsi Logic Corporation Method and apparatus for allowing execution of both compressed instructions and decompressed instructions in a microprocessor
US5890009A (en) * 1996-12-12 1999-03-30 International Business Machines Corporation VLIW architecture and method for expanding a parcel
JP3790607B2 (ja) 1997-06-16 2006-06-28 松下電器産業株式会社 Vliwプロセッサ
US6219779B1 (en) * 1997-06-16 2001-04-17 Matsushita Electric Industrial Co., Ltd. Constant reconstructing processor which supports reductions in code size
JP3412462B2 (ja) 1997-07-30 2003-06-03 松下電器産業株式会社 プロセッサ
JP3327818B2 (ja) * 1997-08-29 2002-09-24 松下電器産業株式会社 プログラム変換装置及び記録媒体
US6012138A (en) * 1997-12-19 2000-01-04 Lsi Logic Corporation Dynamically variable length CPU pipeline for efficiently executing two instruction sets
US6112299A (en) * 1997-12-31 2000-08-29 International Business Machines Corporation Method and apparatus to select the next instruction in a superscalar or a very long instruction word computer having N-way branching
US6081884A (en) * 1998-01-05 2000-06-27 Advanced Micro Devices, Inc. Embedding two different instruction sets within a single long instruction word using predecode bits
US6076154A (en) * 1998-01-16 2000-06-13 U.S. Philips Corporation VLIW processor has different functional units operating on commands of different widths
EP0942357A3 (en) 1998-03-11 2000-03-22 Matsushita Electric Industrial Co., Ltd. Data processor compatible with a plurality of instruction formats
US6324639B1 (en) 1998-03-30 2001-11-27 Matsushita Electric Industrial Co., Ltd. Instruction converting apparatus using parallel execution code
US6237076B1 (en) * 1998-08-19 2001-05-22 International Business Machines Corporation Method for register renaming by copying a 32 bits instruction directly or indirectly to a 64 bits instruction
US6681319B1 (en) 1998-10-06 2004-01-20 Texas Instruments Incorporated Dual access instruction and compound memory access instruction with compatible address fields
EP0992892B1 (en) * 1998-10-06 2015-12-02 Texas Instruments Inc. Compound memory access instructions
US6366998B1 (en) * 1998-10-14 2002-04-02 Conexant Systems, Inc. Reconfigurable functional units for implementing a hybrid VLIW-SIMD programming model
EP1181648A1 (en) 1999-04-09 2002-02-27 Clearspeed Technology Limited Parallel data processing apparatus
US7526630B2 (en) * 1999-04-09 2009-04-28 Clearspeed Technology, Plc Parallel data processing apparatus
US20070242074A1 (en) * 1999-04-09 2007-10-18 Dave Stuttard Parallel data processing apparatus
US8174530B2 (en) * 1999-04-09 2012-05-08 Rambus Inc. Parallel date processing apparatus
US20080008393A1 (en) * 1999-04-09 2008-01-10 Dave Stuttard Parallel data processing apparatus
US20080162875A1 (en) * 1999-04-09 2008-07-03 Dave Stuttard Parallel Data Processing Apparatus
US7802079B2 (en) 1999-04-09 2010-09-21 Clearspeed Technology Limited Parallel data processing apparatus
US7966475B2 (en) 1999-04-09 2011-06-21 Rambus Inc. Parallel data processing apparatus
US20080162874A1 (en) * 1999-04-09 2008-07-03 Dave Stuttard Parallel data processing apparatus
US8169440B2 (en) 1999-04-09 2012-05-01 Rambus Inc. Parallel data processing apparatus
US8762691B2 (en) 1999-04-09 2014-06-24 Rambus Inc. Memory access consolidation for SIMD processing elements using transaction identifiers
US8171263B2 (en) * 1999-04-09 2012-05-01 Rambus Inc. Data processing apparatus comprising an array controller for separating an instruction stream processing instructions and data transfer instructions
US6928073B2 (en) * 1999-10-01 2005-08-09 Stmicroelectronics Ltd. Integrated circuit implementing packet transmission
US6675285B1 (en) * 2000-04-21 2004-01-06 Ati International, Srl Geometric engine including a computational module without memory contention
US6633969B1 (en) 2000-08-11 2003-10-14 Lsi Logic Corporation Instruction translation system and method achieving single-cycle translation of variable-length MIPS16 instructions
KR100636596B1 (ko) 2004-11-25 2006-10-23 한국전자통신연구원 고에너지 효율 병렬 처리 데이터 패스 구조
US8495341B2 (en) * 2010-02-17 2013-07-23 International Business Machines Corporation Instruction length based cracking for instruction of variable length storage operands
US9678754B2 (en) 2010-03-03 2017-06-13 Qualcomm Incorporated System and method of processing hierarchical very long instruction packets
US20110314263A1 (en) * 2010-06-22 2011-12-22 International Business Machines Corporation Instructions for performing an operation on two operands and subsequently storing an original value of operand
JP5625903B2 (ja) 2010-12-29 2014-11-19 富士通株式会社 演算処理装置および演算処理方法

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4488219A (en) * 1982-03-18 1984-12-11 International Business Machines Corporation Extended control word decoding
US4569016A (en) * 1983-06-30 1986-02-04 International Business Machines Corporation Mechanism for implementing one machine cycle executable mask and rotate instructions in a primitive instruction set computing system
US5179680A (en) * 1987-04-20 1993-01-12 Digital Equipment Corporation Instruction storage and cache miss recovery in a high speed multiprocessing parallel processing apparatus
US5036454A (en) * 1987-05-01 1991-07-30 Hewlett-Packard Company Horizontal computer having register multiconnect for execution of a loop with overlapped code
JP2635057B2 (ja) * 1987-11-04 1997-07-30 株式会社日立製作所 マイクロプロセッサ
US5115500A (en) * 1988-01-11 1992-05-19 International Business Machines Corporation Plural incompatible instruction format decode method and apparatus
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
US5051885A (en) * 1988-10-07 1991-09-24 Hewlett-Packard Company Data processing system for concurrent dispatch of instructions to multiple functional units
US5293592A (en) * 1989-04-07 1994-03-08 Intel Corporatino Decoder for pipelined system having portion indicating type of address generation and other portion controlling address generation within pipeline
US5197137A (en) * 1989-07-28 1993-03-23 International Business Machines Corporation Computer architecture for the concurrent execution of sequential programs

Also Published As

Publication number Publication date
CA2029088A1 (en) 1991-05-02
CA2029088C (en) 1994-05-03
EP0426393A2 (en) 1991-05-08
AU625008B2 (en) 1992-06-25
DE69031899D1 (de) 1998-02-12
DE69031899T2 (de) 1998-04-16
EP0426393B1 (en) 1998-01-07
US5442762A (en) 1995-08-15
AU6572290A (en) 1991-08-01
KR910010301A (ko) 1991-06-29
JP2835103B2 (ja) 1998-12-14
EP0426393A3 (en) 1991-08-07
JPH03147021A (ja) 1991-06-24

Similar Documents

Publication Publication Date Title
KR930007041B1 (ko) 명령 지정방법 및 실행장치
US6557094B2 (en) Methods and apparatus for scalable instruction set architecture with dynamic compact instructions
US5922066A (en) Multifunction data aligner in wide data width processor
EP0996057B1 (en) Data processor with an instruction unit having a cache and a ROM
EP0689128B1 (en) Computer instruction compression
US6044451A (en) VLIW processor with write control unit for allowing less write buses than functional units
JP2816248B2 (ja) データプロセッサ
JP5126226B2 (ja) 演算ユニット、プロセッサ及びプロセッサアーキテクチャ
US20120284488A1 (en) Methods and Apparatus for Constant Extension in a Processor
CN101802779A (zh) 具有可重新组构的浮点单元的处理器
US5459847A (en) Program counter mechanism having selector for selecting up-to-date instruction prefetch address based upon carry signal of adder which adds instruction size and LSB portion of address register
US6026486A (en) General purpose processor having a variable bitwidth
JP3781519B2 (ja) プロセッサの命令制御機構
US7668897B2 (en) Result partitioning within SIMD data processing systems
EP1220089B1 (en) Method for executing conditional branch instructions in a data processor and corresponding data processor
US6141746A (en) Information processor
US5862399A (en) Write control unit
US20040193930A1 (en) Microcontroller
JP5786719B2 (ja) ベクトルプロセッサ
JPH07200289A (ja) 情報処理装置
JPH0589159A (ja) データ処理システム
JPH02161525A (ja) 演算処理装置

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: 20060711

Year of fee payment: 14

LAPS Lapse due to unpaid annual fee