KR930007041B1 - 명령 지정방법 및 실행장치 - Google Patents
명령 지정방법 및 실행장치 Download PDFInfo
- 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
Links
- 238000000034 method Methods 0.000 title claims description 15
- 230000010365 information processing Effects 0.000 claims description 9
- 230000004044 response Effects 0.000 description 14
- 238000010586 diagram Methods 0.000 description 5
- 102100021541 Sodium/nucleoside cotransporter 2 Human genes 0.000 description 4
- 101000821827 Homo sapiens Sodium/nucleoside cotransporter 2 Proteins 0.000 description 3
- 102100023116 Sodium/nucleoside cotransporter 1 Human genes 0.000 description 3
- 102100021470 Solute carrier family 28 member 3 Human genes 0.000 description 3
- 101000685663 Homo sapiens Sodium/nucleoside cotransporter 1 Proteins 0.000 description 2
- 101000822028 Homo sapiens Solute carrier family 28 member 3 Proteins 0.000 description 2
- 101150110872 ric-3 gene Proteins 0.000 description 2
- 101710123675 Sodium/nucleoside cotransporter 1 Proteins 0.000 description 1
- 101710123669 Sodium/nucleoside cotransporter 2 Proteins 0.000 description 1
- 101710186856 Solute carrier family 28 member 3 Proteins 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/22—Microcontrol or microprogram arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30145—Instruction analysis, e.g. decoding, instruction word fields
- G06F9/3016—Decoding the operand specifier, e.g. specifier format
- G06F9/30167—Decoding the operand specifier, e.g. specifier format of immediate specifier, e.g. constants
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30145—Instruction analysis, e.g. decoding, instruction word fields
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3853—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution of compound instructions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3885—Concurrent 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)
- 정보처리장치에서 실행할 명령을 지정하기 위한 명령 지정방법에 있어서, 단일 명령을 지정하기 위해 적어도 하나의 명령 코드(OPa, OPb, OPc)와 하나의 오퍼랜드 지정부(Ra1-Ra3, Rb1-Rb3, Rc1-Rc3)으로부터 각각의 명령어들을 형성하는 단계와, 긴 명령어내에 내포된 하나 또는 복수의 명령어들의 구성을 지정하는 하나의 타입 코드(Type)와, 하나 또는 복수의 상기 명령어들로부터 고정된 길이의 긴 명령어들 각각을 형성하는 단계와, 그리고 상기 긴 명령어에 의해 하나 또는 복수의 명령들을 지정하는 단계를 포함하는 것이 특징인 명령지정방법.
- 제1항에 있어서, 상기 명령어들은 제1형식(A)의 제1명령어와, 제2형식(B)의 제2명령어와 제3형식(C,D)의 제3명령어로 구성되며, 상기 제1명령어는 제1및 제2레지스터들의 내용들간을 연산하고, 또한 그 연산결과를 제3레지스터내에 기억시키는 명령을 하고, 상기 제2명령어는 제1레지스터의 내용과 즉시 데이타간을 연산하고, 또한 그 연산결과를 제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명령어로 구성되는 것이 특징인 명령지정방법.
- 제3항에 있어서, 상기 타입 코드는 4비트로 구성되며, 상기 제1명령어는 20비트로 구성되며, 상기 제2명령어는 40비트로 구성되며, 상기 제3명령어는 40 또는 60비트로 구성되며, 상기 긴 명령어들의 고정된 길이는 64비트인 것이 특징인 명령지정방법.
- 정보처리장치내의 명령을 실행하기 위한 실행장치에 있어서, 고정된 길이를 갖는 긴 명령어를 입력시키기 위한 입력수단(22)을 포함하되, 상기 긴 명령어는 하나의 타입코드(Type)와 하나 또는 복수의 명령어들로 구성되며, 상기 명령어들 각각은 단일명령을 지정하기 위해 적어도 하나의 명령코드(OPa, OPb, OPc)와 오퍼랜드 지정부(Ra1-Ra3, Rb1-Rb3, Rc1-Rc3)을 포함하며, 상기 타입 코드는 상기 긴 명령어내에 내포된 상기 하나 또는 복수의 명령어들의 구성을 지정하며, 또한 타입 코드로부터 긴 명령어내에 내포된 명령어들의 수와 조합을 판정하여 판정결과를 출력시키기 위해 상기 입력수단에 결합되는 판정수단(23)와, 상기 긴 명령어내에 내포된 명령어들에 의해 지정된 연산들을 독립적으로 수행하기 위해 상기 판정수단에 결합되는 복수의 연산수단(56,60,63)과, 상기 긴 명령어내에 내포된 각 명령어에 의해 지정된 연산을 상기 판정수단으로부터 출력된 판정결과에 따라 상기 연산수단 중 하나에 할당하기 위해 상기 판정수단에 결합되는 할당수단(23,54,58)을 포함하는 것이 특징인 명령실행장치.
- 제5항에 있어서, 상기 연산수단들(56,60,64)는 긴 명령어가 복수의 상기 명령어들을 포함할 경우, 병렬로 연산을 동시에 수행하는 것이 특징인 명령실행장치.
- 제5또는 6항에 있어서, 상기 판정수단에 결합된 복수의 오퍼랜드 레지스터 수단(50)을 더 구비하며, 또한 상기 판정수단(23)은 상기 긴 명령어내에 내포된 각각의 명령어들에 대한 각 명령어의 오퍼랜드 지정부에 따라 상기 오퍼랜드 레지스터 수단을 지정하기 위한 수단을 포함하는 것이 특징인 명령실행장치.
- 제7항에 있어서, 상기 명령어들은 제1형식(a)의 제1명령어와, 제2형식(b)의 제2명령어와 제3형식(c,d)의 제3명령어로 구성되며, 상기 제1명령어는 제1및 제2레지스터들의 내용들간을 연산하고, 또한 그 연산결과를 제3레지스터내에 기억시키는 명령을 하고, 상기 제2명령어는 제1레지스터의 내용과 즉시 데이타간을 연산하고, 또한 그 연산결과를 제3레지스터내에 기억시키는 명령을 하고, 상기 제3명령어는 즉시 데이타를 제3레지스터내로 기억시키는 명령을 하며, 상기 제1∼제3레지스터들은 상기 오퍼랜드 레지스터수단(50)내에 내포되는 것이 특징인 명령실행장치.
- 제8항에 있어서, 상기 긴 명령어들은 제1워드형식(제2a도)의 제1의 긴 명령어와, 제2워드형식(제2b도)의 제2의 긴 명령어와, 제3워드형식(제2c도)의 제3의 긴 명령어와, 제4워드형식(제2d도)의 제4의 긴 명령어로 구성되며, 상기 제1의 긴 명령어는 상기 타입 코드와 상기 3개의 제1명령어들로 구성되며, 상기 제2의 긴 명령어는 상기 타입 코드와, 상기 제1명령어와 상기 제2명령어로 구성되며 상기 제3의 긴 명령어는 상기 타입 코드와, 상기 제1명령어와, 상기 제3명령어로 구성되며, 상기 제4의 긴 명령어는 상기 타입 코드와 상기 제3명령어로 구성되는 것이 특징인 명령실행장치.
- 제9항에 있어서, 상기 타입 코드는 4비트로 구성되며, 상기 제1명령어는 20비트로 구성되며, 상기 제2명령어는 40비트로 구성되며, 상기 제3명령어는 40 또는 60비트로 구성되며, 상기 긴 명령어들의 고정된 길이는 64비트인 것이 특징인 명령실행장치.
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)
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)
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 |
-
1989
- 1989-11-01 JP JP1285471A patent/JP2835103B2/ja not_active Expired - Fee Related
-
1990
- 1990-10-26 EP EP90311767A patent/EP0426393B1/en not_active Expired - Lifetime
- 1990-10-26 DE DE69031899T patent/DE69031899T2/de not_active Expired - Fee Related
- 1990-10-31 CA CA002029088A patent/CA2029088C/en not_active Expired - Fee Related
- 1990-10-31 AU AU65722/90A patent/AU625008B2/en not_active Ceased
- 1990-11-01 KR KR1019900017654A patent/KR930007041B1/ko not_active IP Right Cessation
-
1994
- 1994-02-25 US US08/202,668 patent/US5442762A/en not_active Expired - Fee Related
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 |