KR20000029005A - 데이터 처리기 시스템 및 그룹화를 이용한 명령 시스템 - Google Patents

데이터 처리기 시스템 및 그룹화를 이용한 명령 시스템 Download PDF

Info

Publication number
KR20000029005A
KR20000029005A KR1019990044023A KR19990044023A KR20000029005A KR 20000029005 A KR20000029005 A KR 20000029005A KR 1019990044023 A KR1019990044023 A KR 1019990044023A KR 19990044023 A KR19990044023 A KR 19990044023A KR 20000029005 A KR20000029005 A KR 20000029005A
Authority
KR
South Korea
Prior art keywords
command
field
instruction
data processor
prefix
Prior art date
Application number
KR1019990044023A
Other languages
English (en)
Other versions
KR100690225B1 (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 KR20000029005A publication Critical patent/KR20000029005A/ko
Application granted granted Critical
Publication of KR100690225B1 publication Critical patent/KR100690225B1/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/30Arrangements for executing machine instructions, e.g. instruction decode
    • 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/3842Speculative instruction execution
    • 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/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30018Bit or string 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/30181Instruction operation extension or modification
    • G06F9/30185Instruction operation extension or modification according to one or more bits in the instruction, e.g. prefix, sub-opcode
    • 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

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)
  • Electrophonic Musical Instruments (AREA)
  • Multi Processors (AREA)
  • Hardware Redundancy (AREA)

Abstract

데이터 처리기에 명령하기 위한 시스템에 있어서, 상기 시스템은 명령 프리픽스 및 상기 데이터 처리기에 의해 수행될 연산을 선택하기 위한 연산 선택 필드를 갖는 명령 루트를 포함한다. 명령 프리픽스는 데이터 처리기가 상기 선택된 연산을 수행할 수 있는 조건하에서 선택하기 위한 조건적 실행 필드의 그룹으로부터 선택된 필드, 다른 길이를 갖는 오퍼랜드에서 수행되도록 선택된 연산을 변경하기 위한 오퍼랜드 길이 변경 필드, 명령 루트를 포함한 명령 그룹의 길이를 선택하기 위한 명령 그룹 필드 및, 상기 명령 프리픽스의 길이를 선택하기 위한 프리픽스 길이 선택 필드를 포함한다. 상기 명령 시스템에 응답하는 데이터 처리 시스템이 또한 설명된다. 명령 프리픽스를 이용하지 않고 명령을 정적으로 그룹화하기 위한 명령 시스템이 또한 설명된다.

Description

데이터 처리기 시스템 및 그룹화를 이용한 명령 시스템{Data processor system and instruction system using grouping}
본 발명은 일반적으로 데이터 처리기에 관한 것으로서, 특히 데이터 처리 명령 및 이와 함께 이용하기 위한 명령 시스템을 그룹화하기 위한 방법 및 장치에 관한 것이다.
많은 상이한 형태의 데이터 처리기가 이용될 수 있다. 일부 데이터 처리기는 동시에 이용될 수 있는 다중 실행 유닛을 갖는다. 상기 데이터 처리기에 대한 명령 스케쥴링은 정적 또는 동적일 수 있다. 2가지 형태의 시스템이 최적 어셈블러 및 컴파일러를 포함한 종래의 프로그램 작성 소프트웨어 툴을 이용하여 실행하기 위해 작성된 일련의 명령 스트림으로 연산한다. 일반적으로, 동적 시스템은 데이터 처리기 내에 상당히 많은 하드웨어를 필요로 하는데, 반면 정적 시스템은 많이 복잡한 프로그램 작성 소프트웨어 기술을 필요로 한다. 그러나, 공통적인 목적은 실행의 연속성 상황을 유지하면서 명령 스트림 고유의 명령 레벨 병렬화를 식별하여 개발하기 위한 것이다.
동적 명령 스케쥴링 시스템에 있어서, 데이터 처리기 내의 특정 하드웨어는 가시도의 슬라이딩 윈도우를 일련의 명령 스트림에 유지한다. 각 명령 전송 사이클에서, 스케쥴링 하드웨어는 명령 연속 제한을 받는 실행 유닛 및 다른 시스템 자원에 의해 수용될 수 있는 많은 가시적 명령을 선택한다. 부가적 하드웨어는 이동중에 시스템 조건에 따라 각 명령의 기록을 유지하여, 명령을 적절하게 흡수하거나 또는 퇴각시킬 수 있다.
정적 명령 스케쥴링 시스템에 있어서, 발생된 후, 예컨대 최적화되는 프로그램 작성 소프트웨어 툴은 상기 스트림 및, 하드웨어 구성을 설명하고 타겟 데이터 처리기의 특성을 연산하는 정보에 기초하여 병렬로 안전하게 실행될 수 있는 상기 명령과 함께 그룹을 재검사한다. 예컨대 간접 또는 계산된 메모리 기준 같은 소정의 프로그램 구성의 작용 예측의 어려움으로 인해, 미리 최적의 스케쥴링을 보장하는데 어려움이 있다. 상기 비예측 구성을 수용하기 위하여, 소정의 하드웨어 인터로크가 일반적으로 제공될 수 있다. 정적으로 스케쥴된 데이터 처리기의 예로 멀티플로우 트레이스(Multiflow Trace) 7/14/28가 있다. 트레이스 머신용 컴파일러는 일반적으로 예일 대학에서 원 저자에 의해 붙여진 불도그(Bulldog) 컴파일러로 불리운다.
상당히 긴 명령 워드(VLIW) 머신인 트레이스에 대한 명령을 그룹화시, 불도그 컴파일러는 머신 모델에 따라 7, 14 또는 28로 고정된 함수 명령 슬롯을 갖는 VLIW로 제한된다. 컴파일러가 유용한 작업을 발견할 수 없는 소정의 명령 슬롯은 단순히 비연산(NOP) 명령(즉, 모든 제로들)으로 채워진다. 메모리 내에 상기 이용할 수 없는 NOP들을 기억하는 대신에, 컴파일러는 NOP들을 스쿼시하고, 유효 명령 워드의 앞에 있는 세트는 스쿼시된 NOP들(또는 반대로 보여지는 유효 명령 워드)의 위치를 표시하는 비트맵을 갖는 각 VLIW를 포함한다. 프리페치된 시간에서, 트레이스 캐시/메모리 제어기는 NOP들을 재생성하도록 비트랩 워드 내의 정보를 이용하여, 캐시는 완전하게 존재하는 VLIW로 채워진다. 비트맵은 대응하는 VLIW가 프리페치중 재생성될 때마다 버려지고, 명령 발송 또는 실행 하드웨어가 없는 부분은 상기 존재를 인식한다. 상기 메카니즘이 메모리 내의 VLIW 마다의 논리 길이를 1워드씩 증가시키더라도, 일반적으로 VLIW 마다의 모든 명령 슬롯을 유효 정보 워드로 채우기 위해 컴파일러의 무능력으로 인해 기억된 VLIW마다의 물리적 길이를 감소시키는 경향이 있다. 한편, 웰(well) 디자인된 코드에 대하여 상기 메카니즘은 메모리 내의 실제 코드를 상당히 증가시킨다.
정적으로 스케쥴된 데이터 처리기의 최근 예는 텍사스 인스트루먼트 TMS320C62xx 마이크로프로세서 패밀리('C62)이다. 'C62에서, 모든 명령 워드는 프로그램 작성 소프트웨어 툴로 설정된 전용의 "P" 비트를 포함하고, 명령이 다음의 명령 워드와 병렬로 전송될 수 있는 전송 하드웨어를 나타낸다. 따라서, 유사하게 전송가능한 "실행 패킷"이 각각이 P비트를 갖는 최대 수의 이전의 명령 워드로 구성된다. 미국 특허 제 5,560,128호는 병렬 전송 제어 비트의 센스가 병렬 전송가능한 명령 워드의 각 세트사이에 토글되는 상기 메카니즘상의 변동을 공개한다. 상기 정적으로 스케쥴된 시스템에서, 각 명령의 비트를 그룹화 기능에 적용함으로써, 명령의 중요한 부분이 데이터 처리 연산의 인코딩 같은 다른 기능을 위해 이용할 수 없게 된다.
프레미엄은 상기 다중 실행 데이터 처리기를 이용하여 데이터 및 명령을 처리하기 위한 실행 속도에 따라 배치된다. 그러나, 데이터 처리기 구조의 복잡성이 다중 실행 유닛을 이용하여 증가됨에 따라, 컴퓨터 명령 코드 크기는 증가하는 경향이 있다. 대부분의 에플리케이션에서, 증가된 코드 크기는 부가적인 메모리에 필요한 공간 및 증가된 비용으로 인해 바람직하지 않다. 하나의 상기 에플리케이션은 디지털 신호 처리기(DSP)로서 공지된 데이터 처리기의 계층이다. DSP들은 프레미엄이 작은 크기 및 저 전력으로 배치되는 셀룰러 폰 같은 많는 에플리케이션에 이용된다. 다중 실행 유닛 데이터 처리기가 명령 코드 크기를 크게 확대시키지 않는 고속 명령 처리를 하도록 하는 것이 바람직하다.
따라서, 계산 명령을 그룹화하고 향상된 명령 시스템을 위한 향상된 방법 및 장치에 대하여 요구된다.
도 1은 데이터 처리 시스템의 일례의 블록도.
도 2는 도 1의 시스템의 코어 내의 레지스터를 예시한 도면.
도 3은 단일 곱셈 및 누산 유닛을 갖는 도 1의 시스템의 코어 부분의 특정예를 예시한 도면.
도 4는 2개의 곱셈 및 누산 유닛을 갖는 도 1의 시스템의 코어 부분의 다른 예를 예시한 도면.
도 5는 4개의 곱셈 및 누산 유닛을 갖는 도 1의 시스템의 코어 부분의 다른 예를 도시한 도면.
도 6은 도 3 내지 도 5의 곱셈 및 누산의 특정예를 예시한 도면.
도 7은 도 1의 시스템의 피트 필드 및 논리 유닛의 특정예를 예시한 도면.
도 8은 도 1의 시스템의 코어 내의 어드레스 발생 유닛의 특정예를 예시한 도면.
도 9는 도 1의 시스템에 의해 실행될 파이프라인화 명령 방법의 특정예를 예시한 도면.
도 10은 페치된 계산 명령 세트 및 도 1의 시스템에 의해 실행될 그룹화 계산 명령의 실행 세트를 예시한 도면.
도 11은 도 1의 시스템의 코어에 대한 프리픽스(prefix) 전송 및 명령 전송을 예시한 도면.
도 12 내지 도 17은 도 1의 시스템으로 이용될 수 있는 명령 시스템의 여러 가지 예들을 예시한 도면.
도 18은 정적 그룹화를 이용한 명령 시스템을 예시한 도면.
도 19는 도 18의 명령 시스템 내의 형태 보조필드마다의 다른 값들을 예시한 도면.
*도면의 주요 부분에 대한 부호의 설명*
10: 처리 시스템 12: 처리 코어
14: 인터페이스 유닛 16: 직접 메모리 액세스 유닛
18: 주변부 19: 외부 메모리 인터페이스 모듈
20, 22: 내부 메모리 모듈
본 발명은 첨부된 청구항들에 특정하여 강조될지라도, 첨부된 도면들을 참조한 다음의 상세한 설명에 의해 본 발명의 다른 특징들이 개시되어 있다.
일반적으로 본 발명의 한 양태는 데이터 처리기 및 명령 프리픽스를 갖는 명령 루트를 포함한 명령 시스템에 관한 것이다. 프리픽스는 다음의 소정의 하나 이상의 필드를 갖는다: 데이터 처리기가 선택된 연산을 수행할 수 있는 조건하에서 선택하기 위한 조건 실행 필드, 다른 길이를 갖는 오퍼랜드에서 수행되도록 선택된 연산을 변경하기 위한 오퍼랜드 길이 변경 필드, 명령 그룹의 길이를 선택하기 위한 명령 그룹 필드 및, 명령 프리픽스의 길이를 선택하기 위한 프리픽스 길이 선택 필드.
본 발명의 다른 양태에 따르면, 복수의 레지스터를 갖는 데이터 처리기에서 이용하기 위한 명령 시스템이 제공된다. 명령 시스템은 데이터 처리기 내의 2m레지스터들중 하나를 선택하기 위한 폭 m의 레지스터 선택 필드를 갖는 명령 루트 및, 상기 데이터 처리기 내의 2m+n레지스터들중 하나를 선택하기 위한 상기 레지스터 선택 필드의 폭을 확대하기 위한 폭 n의 레지스터 선택 확대 필드를 갖는 명령 프리픽스를 포함한다.
본 발명의 다른 양태에 따르면, 데이터 처리기에서 이용하기 위한 명령 시스템이 제공된다. 데이터 처리기는 제 1 및 제 2 형태의 연산을 연속적으로 실행하며, 복수의 제 1 형태의 연산들을 병렬로 실행하기 위해 적용된다. 명령 시스템은 데이터 처리기에 의해 실행될 제 1 및 제 2 형태의 연산중 하나를 선택하기 위한 연산 선택 필드를 갖는다. 연산 선택 필드는 폭 n의 형태 보조필드를 갖는데, 그 값들은 다음과 같이 할당된다: 상기 제 1 형태의 연산이 연속적으로 실행된다면 제 1 값, 상기 제 1 형태의 연산이 병렬로 실행된다면 제 2 값, 상기 제 2 형태의 연산이 실행된다면 나머지 (2n-2) 값들로부터 선택된 제 3 값. 특정 실시예에서, 형태 보조필드는 제 2 형태의 연산의 선택된 명령이 연속적으로 실행된다면, 선택적으로 제 2 값으로 할당될 수 있다.
본 발명의 다른 양태에 따르면, 제 1 및 제 2 형태의 연산을 연속적으로 실행하고 복수의 상기 제 1 형태의 연산을 병렬로 실행하기 위해 적용된 데이터 처리기를 명령화하기 위한 시스템이 제공된다. 시스템은 데이터 처리기에 의해 실행될 제 1 형태 및 제 2 형태의 연산들중 하나를 선택하기 위한 연산 선택 필드를 갖는 명령을 포함한다. 연산 선택 필드는 형태 보조필드를 갖는다. 형태 보조필드는 연속적으로 실행될 상기 제 1 형태의 명령에 대한 제 1 값과, 병렬로 실행될 상기 제 1 형태의 명령 및, 연속적으로 실행된 상기 제 2 형태의 선택된 명령에 대한 제 2 값 및 이외의 것에 대한 제 3 값을 갖는다.
상세한 설명 및 첨부된 도면에서 상세히 제시되는 특정 용어, 이용되는 표현, 특정 구조 및 연산은 첨부된 청구항들에서 설명되는 바와 같이 본 발명의 범주를 한정하려고 의도된 것이 아님을 유념해야 한다.
도 1을 참조하면, 처리 시스템(10)의 예가 예시된다. 처리 시스템(10)은 처리 코어(12), 시스템 인터페이스 유닛(SIU)(14), 직접 메모리 액세스 유닛(16), 직렬 통신 포트 또는 타이머, 내부 메모리 모듈(20, 22) 같은 주변부(18) 및 외부 메모리 인터페이스 모듈(19)을 포함한다. 처리 시스템(10)은 또한 데이터 처리기로서 언급될 수 있다.
처리 코어(12)는 어드레스 레지스터 파일(26), 프로그램 시퀀서(24), 데이터 레지스터 파일(28, 29), 어드레스 연산 논리 유닛(30)(또는, 어드레스 발생 유닛(AGU)으로 칭함), 곱셈 및 누산(MAC) 유닛(32)(또는, 일반적으로 데이터 연산 논리 유닛(DALU)으로 칭함), 비트 필드 및 논리 유닛(34) 및 선택적 명령 확장 가속기(36)를 포함한다. 어드레스 ALU(30)는 내부 버스(60)를 통해 어드레스 레지스터 파일(26)과 접속된다. 곱셈 및 누산 유닛(32)은 내부 버스(62)를 통해 데이터 레지스터 파일(28, 29)과 결합되고, 비트 필드 유닛(34)은 내부 버스(64)를 통해 데이터 레지스터 파일(28, 29)과 결합된다. 프로그램 시퀀서(24)는 명령 버스(44)를 통해 어드레스 ALU(30), DALU(32), 비트 필드 유닛(34) 및 명령 확장 가속기(36)와 결합된다.
시스템(10)은 제 1 데이터 버스(40), 제 2 데이터 버스(42), 주변 버스(88), 직접 메모리 액세스(DMA) 버스(84) 및 외부 메모리 인터페이스 버스(102)를 더 포함한다. 프로그램 버스(38)는 버스(46)를 통해 프로그램 시퀀서(24), 버스(66)를 통해 SIU(14), 버스(72, 82)를 통해 내부 메모리(20, 22)에 각각 결합된다. 데이터 버스(40, 42)는 버스(48)를 통해 어드레스 레지스터 파일(26), 버스(52, 54)를 통해 데이터 레지스터 파일(28, 29) 및, 버스(56, 58)를 통해 명령 확장 가속기(36)에 결합된다. 데이터 버스(40, 42)는 버스(74 내지 80)를 통해 메모리(20, 22)와 결합된다.
DMA 버스(84)는 버스(90)를 통해 SIU(14), 버스(94)를 통해 주변 유닛(18) 및, 버스(95, 97)를 통해 메모리 유닛(20, 22)과 각각 결합된다. 주변 버스(88)는 버스(96)를 통해 SIU(14), 버스(98)를 통해 DMA(16) 및, 버스(100)를 통해 주변 유닛(18)과 결합된다. 외부 메모리 버스(102)는 외부 메모리 인터페이스 모듈(19)과 결합되며, 시스템(10)과 통신시 외부 메모리(도시되지 않음)와 결합된다. 예시된 실시예에서, 프로그램 버스(38)는 128바이트 폭이고, 다른 버스(40, 42, 84, 88)는 32 비트폭이다.
도 2를 참조하면, 시스템(10)의 코어(12) 내의 레지스터의 특정 예들이 설명된다. 예시된 바와 같이, 어드레스 레지스터 파일(26)은 레지스터(R0-R7), 스택 포인터(SP), N0-N3, M0-M2, MCTL, SA0-SA3 및 LC0-LC3를 포함한다. 프로그램 시퀀서(24)는 프로그램 카운터, 상태 레지스터, 연산 모드 및 상태 레지스터를 포함한다. 데이터 레지스터 파일(28)은 레지스터(D0-D7)를 포함하며, 데이터 레지스터 파일(29)은 레지스터(D8-D15)을 포함한다. 다른 실시예에서, 단일 레지스터 파일만이 하나 또는 두 개의 MAC 구성만으로 비용을 절감하기 위해 이용될 수 있다. 다른 고성능 에플리케이션에서, 2개 이상의 레지스터 파일이 또한 이용될 수 있다.
도 3을 참조하면, 코어(12) 내에 하나의 곱셈 누산기(32)를 갖는 특정 예가 예시된다. 상기 실시예에서는, 단일 MAC(32)가 버스(62)를 통해 레지스터 파일(28, 29)에 결합된다. 비트 필드 유닛(34)은 버스(64)를 통해 데이터 레지스터 파일(28, 29)과 결합된다. 데이터 레지스터 파일(28, 29)은 중간 시프터/리미터 모듈(104) 및 버스(52, 54, 106)를 통해 데이터 버스(40, 42)와 결합된다. 시프터/리미터 모듈(104)은 버스(106)상의 40비트 포맷을 버스(52, 54)상의 비트 포맷으로 전환시키기 위해 이용된다.
도 4를 참조하면, 코어(12) 내에 2개의 곱셈 누산기(32)를 갖는 특정 실시예가 예시된다. 본 실시예는 하나의 MAC(32) 대신에 2개의 MAC(32) 유닛이 있는 것을 제외하면 도 3의 실시예와 유사하다. 부가 버스(62)는 데이터 레지스터 파일(28, 29)을 제 2 MAC(32)에 결합시키기 위해 필요하다. 또한, 버스(52, 54)에는 2개의 MAC들로부터 별도의 데이터를 전송하기 위하여 16 비트 대신에 32 비트가 있다. 마찬가지로, 도 5는 4개의 MAC 유닛(32)을 갖는 실시예를 예시한다. 본 발명이 상기 예시적 구성에 한정되지 않으며 특정한 수의 MAC 유닛(32) 또는 특정한 구성으로 한정되지 않음을 이해할 수 있다.
도 6을 참조하면, MAC 유닛(32)의 특정 실시예가 예시된다. MAC 유닛(32)은 곱셈기(110) 및 가산기(112)를 포함한다. 곱셈기(110)는 데이터 레지스터 파일(29, 29)로부터 데이터 입력을 수신하고, 데이터 소자(111, 114)를 곱셈하여, 가산기(112)에 입력된 곱셈된 출력(116)을 생성한다. 가산기는 제 2 데이터 입력(120)과 곱셈 결과(116)를 합하여, 데이터 레지스터 파일(8, 29)로 돌아가 출력된 누산된 결과(112)를 생성한다.
도 7을 참조하면, 비트 필드 논리 유닛(34)의 특정 예가 설명된다. 비트 필드 논리 유닛(34)은 시프터(124), 마스크 비트 발생기(126), 논리 유닛(128) 및 곱셈기(129)를 포함한다. 비트 필드 및 논리 유닛은 버스(64)를 통해 입력을 수신하고, 예컨대 입력 데이터로부터 소정의 비트를 제거하는 마스킹 연산, 시프트 및/또는 논리적 또는 배타적 또는 반전 연산 같은 논리 연산의 결과이다. 선택된 연산의 결과는 레지스터 파일(28, 29) 내의 선택된 레지스터로 돌아가서 2방향 버스(64)상에 40개의 비트 결과로서 출력된다.
도 8을 참조하면, 어드레스 발생 유닛(AGU)의 특정 실시예가 예시된다. AGU는 어드레스 파일로부터의 레지스터들 M0-M2, N0-N3, R0-R7 및, 변경된 제어 레지스터(MCTL)를 포함한다. ALU는 또한 어드레스 연산 논리 유닛(30)을 포함한다. ALU는 레지스터(26)를 통해 제 1 및 제 2 어드레스 버스(140, 142) 및 프로그램 어드레스 버스(138)와 결합된다. 도 8에 예시된 바와 같이, ALU들(30)은 여러 가지 레지스터들로부터 데이터를 수신하고, 입력 데이터상에 선택된 연산 동작을 수행하며, 연산 결과를 선택된 출력 레지스터에 공급한다. 예를 들면, 레지스터(R0) 내에 기억된 어드레스는 버스(140)상에 출력될 수 있다. 이후, 레지스터(R0)는 선택된 레지스터(N0)로부터 오프셋에 부가될 수 있으며, 그 결과의 가산 출력은 레지스터(R0)에 기억된다.
도 9는 도 1의 시스템(10)에 이용되는 파이프라인 실행 방법을 예시한다. 파이프라인 방법은 프로그램 사전페치(200), 프로그램 페치(202), 전송부 및 디코더(204), 어드레스 발생기(206) 및 실행부(208)의 실행 단계를 포함한다.
도 10은 명령 페치 세트 및 그룹화된 명령 실행 세트를 예시한다. 예시된 실시예에서, 명령 시퀀스는 N 내지 N+7로 번호화된 8개의 명령들을 포함한다. 하드웨어 실행시, 상기 명령 시퀀스는 하나 이상의 명령 버퍼들로서 실행될 수 있다. 페치 세트(210)를 포함한 명령들은 예컨대 실행 세트들(216, 218, 220)로 프로그램 작성 시간에 정적으로 그룹화된다. 예시된 예에서, 제 1 경계부(212)는 제 2 실행 세트(218)를 포함한 4개의 명령들(#N+2-#N+5)로부터 제 1 실행 세트(216)의 마지막 2개의 명령들(#N과 #N+1)을 분리시키며, 제 2 경계부(214)는 제 3 실행 세트(220)의 제 1 두 개의 명령들(#N+6 및 #N+7)로부터 제 2 명령 세트(218)를 분리시킨다. 동일한 실행 세트에서의 각 명령은 시스템에 의해 동시에 전송된다. 특정 실행시 모든 명령들은 거의 동시에 전송 또는 생성될 수 있으며, 실행 세트에서의 각 명령이 동일한 사이클 카운트를 갖는 경우, 각 명령은 최종 실행 사이클의 종료시 사라진다.
도 11을 참조하면, 시스템 부분의 특정예가 예시된다. 실시예는 프리픽스 전송 유닛(222), 명령(210), 명령 전송 모듈(224), 여러 가지 데이터 연산 논리 유닛(DALU)(32) 및 어드레스 발생 유닛(AGU)(30)을 예시한다. 프리픽스 전송 유닛(222), 명령(210) 및 명령 전송 모듈(224)은 프로그램 시퀀서(24)를 형성할 수 있다. 예시된 실시예에서는, 6개의 실행 유닛들이 있기 때문에, 실행 세트에서 그룹화될 수 있는 명령의 최대수는 6개일 수 있다. 예시된 실시예에서, 제 1 두개의 명령들 N, N+1은 프리픽스 명령들이다. 프리픽스 명령은 프리픽스 전송 유닛(222)에 전달된다. 프리픽스 명령은 하나 또는 예시된 바와 같이 하나 이상의 프리픽스 워드일 수 있다. 프리픽스 전송 유닛(222)은 프리픽스 명령을 그룹화 확대, 조건 실행 같은 제어 신호 및, 명령 전송 유닛(224)에 공급된 루프 브랜치 제어 신호로 변환시킨다. 이후, 명령 전송 유닛(224)은 명령을 실행 세트에 그룹화시키고, 프리픽스 전송 유닛(222)으로부터의 제어 신호에 의해 지시되는 바와 같이 소정의 연산을 수행한다. 다음에, 그룹화된 명령들은 병렬 디코딩 및 실행을 위해 경로화 메카니즘을 통해 적절한 실행 유닛들(30, 32, 34)에 동시에 전송된다. 동시 전송은, 그룹화된 명령들 각각의 실행이 공통 클록 사이클중에 개시됨을 의미한다. 시스템(10)의 예시된 실시예에서, 그룹화된 명령 각각의 실행은 공통 클록 사이클중에 개시되지만, 하나 이상의 그룹화된 명령들이 다른 클록 사이클중에 실행을 완료할 수 있다.
도 12를 참조하면, 시스템(10)으로 이용될 수 있는 명령 시스템(300)의 특정 실시예가 예시된다. 명령 시스템(300)은 명령 프리픽스 워드(302) 및 명령 루트 워드(316)를 포함한다. 명령 프리픽스(302)는 조건적 실행 필드(304) 및 다른 필드(312)를 포함한다. 명령 루트(316)는 프리픽스 없이 다중 명령의 그룹화 같은 다른 연산을 위한 연산 선택 필드(306), 선택적 오퍼랜드 필드(308) 및 선택적 필드(310)를 포함한다. 조건적 실행 필드(304)는 명령 루트(316)가 조건적으로 실행되는 가의 정보를 포함한다. 예를 들면, 조건적 실행 필드가 제 1 값이면, 명령 루트는 비조건적으로 실행될 수 있고, 제 2 값이면, 명령 루트는 상태 또는 데이터 레지스터 내의 소정의 비트값에 따라 조건적으로 실행될 수 있다. 실행 세트에서 그룹화된 하나 이상의 명령 루트가 있는 경우, 조건적 실행 필드(304)는 명령 루트(316)의 전체 그룹이 실행되는 가의 여부를 판정하기 위하여 이용된다. 그러나, 도시되지 않은 다른 실시예에서, 조건적 실행 필드(304)는 프리픽스에 이어지는 하나 이상의 명령 루트들 또는 보조세트의 선택적 실행 또는 비실행을 제어할 수 있다. 다른 실시예에서, 복수의 조건적 실행 필드들 각각은 명령 그룹에서의 각 명령 루트의 실행을 독립적으로 제어하기 위한 복수의 명령 루트들 각각에 대응한다. 양호한 실시예에서, 프리픽스(302) 및 명령 루트(들)(316)는 단일 통합 명령(314)을 형성한다. 상기 시스템에서, 명령(314)이 비조건적으로 실행되고, 프리픽스(312)가 이후에 설명될 소정의 다른 이용을 위해 필요하지 않다면, 명령(314)으로부터 삭제될 수 있다.
도 13을 참조하여, 명령 시스템(320)의 실시예가 설명된다. 명령 시스템(320)은 프리픽스(322), 제 1 명령 루트(326) 및 상승 2N명령 루트(330)를 포함한다. 프리픽스(322)는 N비트 폭인 그룹 필드(324)를 포함한다. 각 명령 루트(326-330) 각각은 연산 선택 필드(331, 332) 및 다른 선택적 필드를 포함한다. 그룹 필드(324)는 프리픽스(322)에 직후의 얼마나 많은 명령 루트들(326-330)이 병렬로 실행되는 가를 나타낸다. 따라서, 프리픽스(322) 내의 그룹 필드(324)는 명령 루트를 실행 세트로 명확히 그룹화시킨다. 양호한 실시예에서, 다양한 연산 선택 필드값을 갖는 명령 루트는 다른 명령 루트로 그룹화될 수 있지만, 다른 값들은 하드웨어 또는 타이밍 제한으로 인해 그룹화될 수 없다. 도 14에 예시된 바와 같이, 명령 워드(346, 348)는 명령 그룹(358)을 형성하도록 프리픽스(342)와 결합되지만, 명령 루트(350)는 그룹화되지 않으며 단일 워드 명령 그룹(360)을 형성한다.
도 15를 참조하여, 명령 시스템의 다른 실시예가 예시된다. 명령 시스템은 프리픽스(380) 및 명령 루트(384)를 포함한다. 명령 시스템은 메모리에 또는 메모리로부터 전송된 32 비트 또는 64 비트 데이터 같은 가변 폭 데이터 오퍼랜드상에서 연산한다. 프리픽스(380)는 오퍼랜드 길이 변경 필드(382)를 포함하며, 명령 루트(384)는 연산 선택 필드(386)를 포함한다. 프리픽스(380), 명령 루트(384) 및 오퍼랜드(388)는 명령(390)을 함께 형성한다. 오퍼랜드 길이 변경 필드(382)는 오퍼랜드(388)가 제 1 소정의 길이 또는 변경된 제 2 길이를 갖는 가를 표시한다. 예를 들면, 연산 선택 필드(386)가 16비트 워드에 대한 이동 연산임을 나타내며, 오퍼랜드 길이 변경 필드(382)가 클리어인 경우, 오퍼랜드는 16비트의 길이를 갖는다. 그러나, 오퍼랜드 길이 변경 필드가 세트되면, 연산은 32비트 워드에 대한 이동 연산이 되고, 오퍼랜드는 32 비트의 길이를 갖는다. 길이 변경 필드를 프리픽스 워드(380)에 인코딩함으로써, 실행을 위해 선택될 수 있는 연산 수는 명령 루트(384) 내의 연산 선택 필드(386)에 소정의 특정한 길이를 가산하지 않고 증가되어, 소정의 환경에서 코드 크기를 감소시킬 수 있다.
도 16을 참조하여, 명령 시스템(400)의 일 실시예를 설명한다. 명령 시스템(400)은 프리픽스(402) 및 명령 루트(408)를 포함한다. 프리픽스(402)는 제 1 레지스터 뱅크 선택 필드(404) 및 제 2 레지스터 뱅크 선택 필드(406) 같은 하나 이상의 레지스터 뱅크 선택 필드를 포함한다. 제 1 및 제 2 레지스터 뱅크 선택 필드(404, 406)는 N 비트 길이이다. 명령 워드(408)는 M 비트 레지스터 선택 필드(410, 412)를 포함한다. 제 1 레지스터 뱅크 선택 필드(404)는 제 1 DALU 유닛(32) 같은 제 1 실행 유닛에 이용된 레지스터의 특정 뱅크를 표시하기 위해 이용될 수 있다. 제 2 레지스터 뱅크 선택 필드(406)는 제 2 DALU 유닛(32) 같은 제 2 실행 유닛을 위해 이용된 레지스터의 특정 뱅크를 표시하기 위해 이용된다. 특정 실시예에서, N은 1이고, M은 3이다. 본 실시예에서는, 시스템(10)의 레지스터 파일(28, 29) 같은 2개의 다른 레지스터 뱅크가 있으며, 레지스터 뱅크 각각은 8개의 레지스터들을 갖는다. 상기 방법에서, 레지스터 파일(29)의 레지스터들(R8-R15) 같은 상측 뱅크 레지스터는 명령 워드(408) 내의 특별 공간을 이용하는 대신에 프리픽스 워드(402)의 레지스터 뱅크 선택 필드(404-406)를 이용하여 선택적으로 액세스되어, 소정의 환경에서의 명령 워드 메모리 공간을 줄일 수 있다.
도 17을 참조하여, 가변 길이 프리픽스 워드를 갖는 명령 시스템(420)의 예가 도시된다. 명령 시스템(420)은 제 1 프리픽스 워드(422), 제 2 프리픽스 워드(424) 및 제 N 프리픽스 워드(426)를 포함한다. 각 프리픽스 워드(422-426)는 각 프리픽스 길이 필드(428-432)를 포함한다. 프리픽스 길이 필드(428-432)는 체인을 형성하는데, 각각은 프리픽스 워드 체인이 완료되었는가 또는 부가 프리픽스 워드가 있는가를 표시한다. 상기 방식에서, 많은 프리픽스 워드들이 가변 길이 체인에 함께 링크될 수 있다. 그러나, 바람직한 실시예에서, 제 1 및 제 2 프리픽스 워드는 프리픽스가 하나 이상의 워드의 길이임을 간접적으로 나타내는 다른 필드를 갖기 때문에, 제 1 프리픽스 워드(422)는 길이 필드를 포함하지 않는다. 이전에 설명된 프리픽스 필드의 대부분을 결합하는 인코드된 프리픽스 명령을 이용하는 명령 시스템의 특정예는 이하에 설명된다. 상기 실시예에서는, 하나의 워드 프리픽스 인코딩 포맷 및 2개의 워드 프리픽스 인코딩 포맷이 있다.
하나의 워드 프리픽스 인코딩 포맷에서는, 하나의 워드 프리픽스가 다음의 이진 레이아웃을 갖는다.
1001 aaaa 11|0-pjcc
여기서,
aaaa: 프리픽스 워드를 갖는 그룹화될 명령 워드들의 수, -1
aaaa=0이면: 이것은 4DALU 플레이버에 발송된 NOP 명령, aaaa에 대한 유효값들은 4DALU 시스템에 대해 0 내지 6이다
cc: 전체 실행 세트의 조건적 실행
00 비조건적으로 실행됨
01 예정됨
10 상태 레지스터 T가 세트이면 조건적으로 실행됨
11 상태 레지스터 T가 클리어이면 조건적으로 실행됨
pj: 루핑 메카니즘에서 이용된 2비트
"-": 부가 루핑 정보 같은 미래 이용을 위해 예정됨.
2개의 워드 형태에서, 프리픽스는 다음의 포맷을 갖는다:
src0 src1 dest
인코딩: 0011 aaaa TTHH pjcc 101M bBeE bBeE bBeE
여기서,
aaaa, cc, pj: 한 워드 프리픽스에 대하여 동일함
예를 들면,
aaaa=3->2개의 워드 프리픽스 + 2 그릅화된 명령 워드
M: 더 긴 프리픽스 워드에 대하여 미래 확대를 위해 예정됨
0: 프리픽스는 2워드
1: 프리픽스는 적어도 3워드 길이(적어도 하나의 부가 워드)
EEE: DALU UNIT 0에 대한 데이터 레지스터 확대, 각 E 비트들은
FFF->FFFF 등을 효과적으로 터닝시키는 제 3 레지스터 필드 인코딩 비트로서 작용함.
-1: FFF 필드에 이용되는 높은 데이터 래그
"1": J2 필드에 이용되는 높은 데이터 래그
1--: J1 필드에 이용되는 높은 데이터 래그
주의: FFF,J2,J1은 오퍼랜드 필드.
예를 들면,
DALU DJ1,DJ2,DF
2개의 오퍼랜드 DALU 유닛 명령의 경우, -EE가 이용된다.
하나의 오퍼랜드 DALU 유닛 명령의 경우, --E만이 이용된다.
eee: DALU UNIT 1에 대하여 EEE와 동일함
BBB: DALU UNIT 2에 대하여 EEE와 동일함
bbb: DALU UNIT 3에 대하여 EEE와 동일함
HH: AGU 명령에 대하여 데이터 레지스터 확대
-1 AGU 0 에서의 MOVE 연산을 위해 이용된 높은 데이터 래그
1- AGU 1 에서의 MOVE 연산을 위해 이용된 높은 데이터 래그
예를 들면, 시스템(10)에서, 레지스터 파일(29)에서의 레지스터는
H 비트가 1로 세트될 때 레지스터 파일(28) 대신에 이용된다.
TT: 더 폭넓은 전송을 위해 MOVE 명령을 증가시킴. 각 비트는 하나의 AGL 유 닛을 활성화시킴. 각 유닛에 대하여 비트는 유닛이 또한 명령들중
하나를 디코드하는 경우 공급됨:
MOVE.2W,MOVE.2F,MOVE.L
만약, T 비트가 0이면: 본래 규정된 바와 같이 상기 명령을 남겨둠
만약, T 비트가 1이면:
MOVE.2W ->MOVE.4W
MOVE.2F ->MOVE.4F
MOVE.2F ->MOVE.4F
MOVE.L ->MOVE.2L
-1 폭넓은 이동으로 해석되는 AGU0에 명령을 함
1- 폭넓은 이동으로 해석되는 AGU1에 명령을 함
원칙적으로, 상기 결합은 규정된다면 다음과 같이 예약됨
MOVE.2L
MOVE.4W
MOVE.4F
다른 실시예에 따르면, 프리픽스 명령을 이용하지 않는 그룹화 방법이 이하에 설명된다. 도 18을 참조하여, 정적 그룹화를 수행하기 위해 이용될 수 있는 프리픽스 워드가 없는 명령이 예시된다. 명령(450)은 제 1 명령 워드(452) 및 제 2 명령 워드(454) 같은 하나 이상의 명령 워드들을 포함한다. 제 1 명령 워드(452)는 시스템(10) 같은 시스템상에서 수행될 수 있는 복수의 다른 연산들을 선택하기 위해 이용될 수 있는 오피코드로 불리우는 연산 선택 필드(456)를 포함한다. 연산 선택 필드(456)는 N비트의 폭을 갖는 형태 보조필드(458)를 포함한다. 특정 예에서, n은 2이다. 2개의 명령 워드 명령이 예로서 예시되었지만, 본 명세서에서 설명되는 바와 같은 연산 선택 필드 내의 형태 보조 필드 및 상기 형태 보조 필드의 이용은 단일 워드 및 많은 형태의 다중 워드 명령에 적용될 수 있다.
도 19를 참조하면, 명령 내의 연산 선택 필드에 의해 인코드된 어떤 다른 형태의 명령이 형태 보조 필드 내의 값에 맵핑될 수 있는가를 예시한 도면이 제시된다. 형태 보조 필드는 일반적으로 다중 명령 및/또는 다중 명령 워드로 실행 세트에 대한 다중 워드 명령 정보 및 그룹화를 제공하기 위해 이용된다. 실행될 수 있는 명령은 형태 I 명령 및 형태 Ⅱ 명령에 고레벨로 분할될 수 있다. 형태 I 명령은 연속적 또는 병령 방식으로 실행될 수 있는데, 즉 형태 I 명령은 실행 세트에서의 실행을 위한 다른 명령으로 그룹화될 수 있다. 형태 Ⅱ 명령은 연속적으로 실행될 수 있지만, 병렬로 실행될 수 있는 기능으로 제한될 수 있거나, 또는 전혀 그룹화되지 않을 수 있다. 상기 그룹화될 수 없는 명령의 예는 저전력 대기 모드에 데이터 처리기(10)를 배치한 도즈(doze) 명령이다.
도 19에 도시된 바와 같이, 연속적으로 실행되는 형태 I에 대하여, 형태 보조 필드는 예시된 실시예에서의 세그먼트(502)에서 01 같은 제 1 값으로 세트된다. 다른 한 워드 명령과 병렬로 실행되는 형태 I 명령에 대하여, 형태 보조 필드는 도면에서의 세그먼트(504)에서 00 같은 제 2 값으로 세트된다. 적어도 하나의 형태 명령 Ⅱ는 세그먼트(510)에서 10 같은 제 3 값, 또는 선택적으로 세그먼트(512)에서 11 같은 제 4 값으로 할당된다. 명령 그룹화를 위해 도시된 바와 같이 2개의 비트를 갖는 형태 보조 필드를 이용하면 명령의 선택을 위해 이용불가능한 오피코더 공간의 감소를 시킬 수 있다. 예를 들면, 종래의 시스템에서는, 단일 비트가 정보를 그룹화하기 위해 배정되면, 오피코드 공간이 50퍼센트(%50)씩 감소하는 단점이 있다. 2비트의 시스템에서 오피코드 공간은 25퍼센트(%25) 감소될 수 있다.
그러나, 이용할 수 있는 오피코드 공간을 유지하기 위한 예시된 실시예에서, 소정의 다중 워드 명령은 제 2 보조값, 즉 형태 보조 필드의 00에 대한 오피코드 공간의 일부를 재사용한다. 적어도 하나의 다른 명령과 병렬로 실행되는 다중 워드 명령에 대한 세그먼트(506) 및, 연속적으로 실행된 다중 워드 명령에 대한 세그먼트(508)가 하나의 워드 명령과 병렬로 형태 I를 공유하는 오피코드 사분면의 일부를 이용한다. 상기 재사용 기술의 실행 방법중 하나로는 예컨대 형태 I 그룹화가능한 명령과 형태 Ⅱ 비그룹화가능한 명령을 결합시켜 허용되지 않은 명령의 결합을 이용하는 것이 있다. 이외의 상반된 명령 결합을 이용함으로써, 다중 워드 시퀀스가 인코드될 수 있다. 상기 방식에서, 유효한 오피코드 공간이 보존되어 향상된 명령 시스템을 제공한다.
일반적으로 상술된 다른 형태의 명령 예는 이하에 설명된다. 실제 어셈블리 명령은 괄호안에 있다.
형태 I 연속부(502): 레지스터 증가 D0(inc d0)
형태 I 병렬부(504): 레지스터 r0에서 레지스터 d1으로의 어드레스에서 레지스터 d0 증가 및 워드 이동(inc d0, move.w(r0), d1)(2개의 단일 워드쌍 명령)
다중 워드(506): 오프셋을 레지스터 d3에 가산한 후, 레지스터 내의 어드레스 이동(inc d0, move.b(R3+1000), D3)(하나의 단일 워드 및 하나의 다중 워드 명령)
다중 워드 연속부(508): 1000을 d0에 가산하고 d1에 기억시킴(add #1000,d0,d1)
형태 Ⅱ(510 또는 512): 실행 중단을 취함(doze)
세그먼트(510, 512)에서의 형태 Ⅱ명령이 동일한 형태를 갖을 수 있지만, 특정 실시예에서 명령이 분할되어 허용된 그룹화가 없는 명령이 세그먼트(510)에 배치되고 허용된 한정 그룹화를 갖는 명령이 세그먼트(512)에 배치될 수 있다.
명령을 그룹화하기 위한 일반적인 규칙이 상술된 바와 같은 형태 보조 필드를 갖는 명령으로 이용될 수 있다. 상기 규칙의 예는 다음과 같다:
1. 00의 형태 보조필드를 갖는 명령 워드에는 그룹화될 부가 명령 워드가 이어진다.
2. 00과는 다른 형태 보조필드를 갖는 명령 워드가 명령에서의 최종 워드이다.
3. 실행 세트에 적어도 2개의 명령 워드가 있는 최종 명령 워드에 10이 실행될 적어도 하나의 다중 워드 명령이 있음을 표시한다.
4. 명령 그룹에서의 제 2 워드 내의 형태 보조 필드 후의 비트는 쌍을 갖는 2개의 워드 명령 대 3개의 워드 명령을 구별하기 위해 이용될 수 있다. 일 실시예에서, 비트 구별은 명령 워드 그룹중 제 2 명령 워드에서의 형태 보조필드 바로 다음의 비트이다. 동일하거나 또는 다른 명령 워드에 부가 비트를 이용하면 4개의 워드 명령 대 3개의 워드 명령 같은 다른 명령 및 쌍으로된 하나 또는 2개의 워드 명령을 구별할 수 있으며,
특히, 예시된 예에서는 명령을 실행 세트에 그룹화하기 위한 그룹화 정보를 전달하기 위한 3개의 경로가 있다:
- 명령에 2-3개의 최대 유효 비트를 이용함-프리픽스가 이용되지 않음
- 실행 세트에 대하여 1-워드 프리픽스를 이용함
- 실행 세트에 대하여 2-워드 프리픽스를 이용함
다음의 그룹화 알고리즘은 명령 코드 크기를 줄이도록 이용하기 위한 선택(그룹화될 명령이 주어질 때)을 한다.
알고리즘은,
- 실행 세트에서 이용되는 레지스터들 d8-d15인가?
*예 ->2워드 프리픽스 이용
*아니오 ->계속
- 연속적으로 실행될 세트(IFc)인가 또는 이것을 루핑 정보에 전달하는가?
* 예 ->1워드 프리픽스를 이용
* 아니오 ->계속
- 실행 세트가 하나의 명령만을 갖는가?
* 예 ->필요한 프리픽스가 없음
* 아니오 ->계속
- 상기 형태에 따라 그룹화될 수 있는 세트에서의 명령인가?
* 예 ->필요한 프리픽스가 없음 - 2 최대 유효 비트만을 이용한
인코딩 그룹화
* 아니오 ->1-w 프리픽스를 이용
정적 그룹화 실시예의 표 형태의 다른 설명이 후술됨.
하나의 워드 명령 형태 인코딩:
다음의 2최대 유효 비트
형태 보조 필드 458: 형태 허용된 그룹화
00 1 다음 명령으로 그룹화됨
01 1 실행 세트의 종료--이전 형태 1 명령(00)으로
그룹화될 수 있음
11 2 실행 세트의 종료--이전 형태 1 명령(00)으로
그룹화될 수 있음(완전하게 그룹화될 수 있는
버전)
10 4 세트에서의 명령만이 그룹화될 수 없음
2개 및 3개의 워드 식별:
(L-실행 세트에서의 최종 명령)
워드 L-1 워드 L
00 10 이것은 이것은 10이 00으로 그룹화될 수 없기 때문에
2개의 1워드 명령에 대하여 부적절한 상태. 따라서, 상기
상태는 2&3 워드 명령으로 유지됨
워드 L-2 워드 L-1 워드 L
상관없음 000 10 (L-1,L)는 2개의 명령. (형태 3)--는
이전의 명령으로 그룹화될 수 있음
00아님 001 10 2개의 워드, 프로그램 불가능함(형태4).
(워드 L-2는 이전의 실행 세트에 속함)
00 001 10 (L-2,L-1,L)은 3개의 워드 그룹 명령.
(형태 3)--는 이전의 명령으로 그룹화 될 수
있음
본 명세서의 소정의 부가적인 양태가 이하에 요약됨.
선택된 연산을 수행하도록 적용된 데이터 처리기에 있어서, 명령 시스템은 데이터 처리기가 선택될 연산을 수행할 수 있는 조건하에서 선택하기 위한 조건 실행 필드를 갖는 프리픽스 워드 및, 데이터 처리기에 의해 수행될 연산을 선택하기 위한 연산 선택 필드를 갖는 명령 워드를 포함한다. 조건적 실행 필드는 데이터 처리기가 선택된 연산을 수행하지 않는 조건하에서 선택할 수 있다. 일 실시예에서, 프리픽스 워드 및 명령 워드는 명령 또는 실행 단계를 포함하며, 데이터 처리기에 의한 기능이 상기 프리픽스 워드의 조건적 실행 필드에서 조건화된다. 명령은 하나 이상의 명령 워드를 포함할 수 있다. 다른 실시예에서, 프리픽스는 명령이 선택적이다.
선택된 연산을 수행하도록 적응된 데이터 처리기에 명령하는 시스템에서, 상기 시스템은 데이터 처리기가 선택될 연산을 수행할 수 있는 조건하에서 선택하기 위한 조건적 실행 필드를 갖는 프리픽스 워드 및, 데이터 처리기에 의해 수행될 연산을 선택하기 위한 연산 선택 필드를 갖는 명령 워드를 포함한다. 조건적 실행 필드는 상기 데이터 처리기가 선택된 연산을 수행할 수 없는 조건하에서 선택할 수 있다. 일 실시예에서, 프리픽스 워드 및 명령 워드는 명령을 포함하며, 데이터 처리기의 수행은 프리픽스 워드의 조건적 실행 필드에서 조건화된다. 명령은 하나 이상의 명령 워드를 포함할 수 있다. 프리픽스는 명령에 선택적일 수 있다.
다른 실시예에서, 본 발명은 선택된 연산을 수행하도록 적응된 데이터 처리기에 명령하는 시스템에 관한 것으로서, 상기 시스템은 데이터 처리기가 선택될 연산을 수행할 수 있는 조건하에서 선택하기 위한 조건적 실행 필드를 갖는 프리픽스 워드 및, 데이터 처리기에 의해 수행될 상기 연산을 선택하기 위한 연산 선택 필드를 갖는 명령 워드를 포함한다. 조건적 실행 필드는 데이터 처리기가 상기 선택된 연산을 수행하지 않는 조건하에서 선택할 수 있다.
프리픽스 워드 및 명령 워드는 명령을 포함할 수 있으며, 데이터 처리기에 의한 수행은 프리픽스 워드의 조건적 실행 필드에서 조건화된다. 명령은 하나 이상의 명령 워드를 포함할 수 있다.
다른 실시예는 제 1 및 제 2 길이를 갖는 오퍼랜드상에 연산을 수행하도록 적응된 데이터 처리기에서의 명령 시스템에 관한 것이다. 명령 시스템은 상기 제 2 길이를 갖는 오퍼랜드에서 수행되도록 선택된 연산을 변경하기 위한 오퍼랜드 길이 변경 필드 및, 상기 제 1 길이를 갖는 오퍼랜드에서 수행될 연산을 선택하기 위한 연산 선택 필드를 갖는 명령 워드를 포함한다. 일 실시예에서, 오퍼랜드는 복수의 길이를 가지며, 연산 선택 필드는 상기 복수의 길이들중 소정의 하나를 갖는 오퍼랜드에서 수행될 연산을 선택하고, 오퍼랜드 길이 변경 필드는 상기 복수의 길이중 다른 것을 갖는 오퍼랜드에서 처리되도록 연산을 변경한다.
데이터 처리기에 있어서, 명령 시스템은 명령 그룹의 길이를 선택하기 위한 명령 그룹 필드를 갖는 프리픽스 워드 및 복수의 명령 워드를 포함하는데, 상기 각 명령 워드는 상기 데이터 처리기에 의해 수행될 연산을 선택하기 위한 연산 선택 필드를 갖는다. 데이터 처리기는 상기 그룹을 포함한 명령 워드에 의해 선택된 모든 연산의 수행을 동시에 개시한다. 프리픽스 워드 및 명령 워드는 명령을 형성할 수 있다. 일 실시예에서, 프리픽스 워드는 상기 명령에서의 각 명령 워드 앞에 있다. 다른 실시예에서, 명령 그룹 필드는 길이 n으로 구성되며, 상기 복수의 명령 워드로 된 그룹 2n일 수 있다. 또한, 복수의 명령 워드중 일부와 그룹화될 수 없는 소정의 명령 워드가 있다.
데이터 처리기에 명령하는 시스템이 제공된다. 시스템은 명령 루트 및 명령 프레릭스를 포함한다. 명령 루트는 상기 데이터 처리기에 의해 수행될 연산을 선택하기 위한 연산 선택 필드를 갖는다. 명령 프리픽스는 다음중 적어도 하나로부터 선택된 필드를 갖는다: 데이터 처리기가 상기 선택된 연산을 수행할 수 있는 조건하에서 선택하기 위한 조건적 실행 필드, 다른 길이를 갖는 오퍼랜드에서 수행되도록 선택된 연산을 변경하기 위한 오퍼랜드 길이 변경 필드, 명령 루트를 포함한 명령 그룹의 워드 길이를 선택하기 위한 명령 그룹 필드 및, 상기 명령 프리픽스의 워드 길이를 선택하기 위한 프리픽스 길이 선택 필드. 명령은 하나 이상의 명령 루트를 포함할 수 있다. 프리픽스는 일반적으로 적어도 하나의 명령 루트 앞에 있다.
복수의 레지스터들을 갖는 데이터 처리기에 명령하는 시스템에 있어서, 상기 시스템은 상기 데이터 처리기에서의 2m레지스터들중 하나를 선택하기 위한 폭 m의 레지스터 선택 필드를 갖는 명령 루트 및, 상기 데이터 처리기에서의 2m+n레지스터들중 하나를 선택하기 위해 상기 레지스터 선택 필드의 폭을 확대하기 위하여 폭 n의 레지스터 선택 확대 필드를 갖는 명령 프리픽스를 포함한다.
따라서, 본 명세서에서는 명령 시스템의 예 및 데이터 처리기 명령을 그룹화하기 위한 개선된 방법 및 장치의 적어도 양호한 실시예를 포함한 실시예가 설명되었다. 설명된 주제가 여러 가지 방법으로 변경될 수 있으며, 특별하게 설정된 상술된 양호한 형태 이외의 많은 실시예들을 가정할 수 있음을 당업자는 이해할 수 있을 것이다. 예를 들면, 데이터 처리기(10)의 구성 및 특정 소자는 예만을 통해 설명되었다. 많은 다른 선택적 시스템이 이용될 수 있다. 예를 들면, DMA(16), 메모리(20, 22) 및 코어(12) 내의 소정의 실행 유닛은 선택적이다. 따라서, 상술된 주제는 예시적인 것으로 한정적인 것이 아니며, 법에 따라 허용된 최대 범위로 간주되며, 첨부된 청구항들이 본 발명의 사상 및 범주 내에서 모든 상기 변형 및 다른 실시예를 포함하도록 의도된다. 본 발명의 범주는 다음의 청구항들의 최대로 넓은 허용가능한 해석 및 상술된 설명 이외의 동등한 구성으로 판단된다.

Claims (7)

  1. 명령 시스템에 있어서,
    데이터 처리기에 의해 수행될 연산을 선택하는 연산 선택 필드를 갖는 명령 루트(instruction root)를 포함하고,
    데이터 처리기가 상기 선택된 연산을 수행하는 조건하에 선택하는 조건적 실행 필드와,
    다른 길이를 갖는 오퍼랜드상에서 수행되도록 선택된 연산을 변경하는 오퍼랜드 길이 변경 필드와,
    명령 그룹의 길이를 선택하는 명령 그룹 필드와,
    명령 프리픽스(prefix)의 길이를 선택하는 프리픽스 길이 선택 필드로 구성된 그룹으로부터 선택된 필드를 갖는 명령 프리픽스를 포함하는 명령 시스템.
  2. 2m레지스터의 2n뱅크(bank)를 갖는 데이터 처리기에서의 명령 시스템에 있어서,
    폭 n의 레지스터 뱅크 선택 필드를 가지고, 상기 레지스터의 2n뱅크들중 하나를 선택하기 위한 프리픽스 워드 및,
    폭 m의 레지스터 선택 필드를 가지고, 상기 뱅크들중 상기 선택된 뱅크에서 2m레지스터들중 하나를 선택하기 위한 명령 워드를 포함하는 명령 시스템.
  3. 제 1 및 제 2 폭을 갖는 오퍼랜드상에서 연산을 수행하기 위해 적응된 데이터 처리기에 명령하는 시스템으로서,
    상기 제 1 폭을 갖는 오퍼랜드상에 수행될 연산을 선택하기 위한 연산 선택 필드를 갖는 명령 루트와,
    상기 제 2 폭을 갖는 오퍼랜드상에 수행될 상기 선택된 연산을 변경하도록 오퍼랜드 폭 변경 필드를 갖는 명령 프리픽스를 포함한 명령 시스템.
  4. 데이터 처리기에서의 명령 시스템에 있어서,
    각 명령 루트가 상기 데이터 처리기에 의해 수행될 연산을 선택하기 위한 연산 선택 필드를 갖는 복수의 명령 루트들과,
    그룹을 포함하도록 복수의 상기 명령 루트들을 선택하기 위한 명령 그룹 필드를 갖는 명령 프리픽스를 포함하며,
    상기 데이터 처리기는 상기 그룹에 의해 선택된 모든 연산들의 수행을 동시에 시작하는 명령 시스템.
  5. 데이터 처리 시스템에 있어서,
    복수의 실행 유닛들을 포함한 데이터 처리 코어와,
    상기 데이터 처리 코어와 결합된 적어도 하나의 주변부와,
    상기 데이터 처리 코어 내에 배치된 명령 시스템을 포함하며,
    상기 명령 시스템은,
    상기 데이터 처리기에 의해 수행될 연산을 선택하기 위한 연산 선택 필드를 갖는 명령 루트와,
    데이터 처리기가 상기 선택된 연산을 수행하는 조건하에서 선택하기 위한 조건적 실행 필드와, 다른 길이를 갖는 오퍼랜드상에서 수행되도록 선택된 연산을 변경하기 위한 오퍼랜드 길이 변경 필드와, 명령 그룹의 길이를 선택하기 위한 명령 그룹 필드 및, 명령 프리픽스의 길이를 선택하기 위한 프리픽스 길이 선택 필드로 구성된 그룹으로부터 선택된 필드를 갖는 명령 프리픽스를 포함하는 데이터 처리 시스템.
  6. 연속적으로 제 1 및 제 2 형태의 연산 및, 병렬로 복수의 상기 제 1 형태의 연산을 실행하기 위해 적응된 데이터 처리기에서의 명령 시스템에 있어서,
    상기 데이터 처리기에 의해 실행될 상기 제 1 및 제 2 형태의 연산중 하나를 선택하기 위한 연산 선택 필드를 갖는 명령을 포함하며,
    상기 연산 선택 필드는, 폭 n의 형태 보조 필드를 갖고, 그 값들은,
    상기 제 1 형태의 연산이 연속적으로 실행되면 제 1 값,
    상기 제 1 형태의 동작이 병렬로 실행되면 제 2 값,
    상기 제 2 형태의 연산이 실행되면 나머지 (2n-2) 값들로부터 선택된 제 3 값으로 할당되는 명령 시스템.
  7. 연속적으로 제 1 및 제 2 연산을 실행하고, 병렬로 복수의 상기 제 1 형태의 연산을 실행하도록 적응된 데이터 처리기에 명령하는 시스템에 있어서,
    상기 시스템은,
    상기 데이터 처리기에 의해 실행될 상기 제 1 및 제 2 형태의 연산들중 하나를 선택하기 위한 연산 선택 필드를 갖는 명령을 포함하며,
    상기 명령 선택 필드는 형태 보조 필드를 가지며,
    상기 형태 보조 필드는,
    연속적으로 실행될 상기 제 1 형태의 연산을 위한 제 1 값과,
    병렬로 실행될 상기 제 1 형태의 연산 및, 연속적으로 실행될 상기 제 2 형태의 적어도 하나의 선택된 연산을 위한 제 2 값을 갖는 명령 시스템.
KR1019990044023A 1998-10-13 1999-10-12 데이터 처리기 시스템 및 그룹화를 이용한 명령 시스템 KR100690225B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US09/170,690 US6418527B1 (en) 1998-10-13 1998-10-13 Data processor instruction system for grouping instructions with or without a common prefix and data processing system that uses two or more instruction grouping methods
US09/170,690 1998-10-13
US9/170,690 1998-10-13

Publications (2)

Publication Number Publication Date
KR20000029005A true KR20000029005A (ko) 2000-05-25
KR100690225B1 KR100690225B1 (ko) 2007-03-12

Family

ID=22620876

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019990044023A KR100690225B1 (ko) 1998-10-13 1999-10-12 데이터 처리기 시스템 및 그룹화를 이용한 명령 시스템

Country Status (10)

Country Link
US (1) US6418527B1 (ko)
EP (1) EP0994413B1 (ko)
JP (1) JP2000122864A (ko)
KR (1) KR100690225B1 (ko)
CN (1) CN1129843C (ko)
AT (1) ATE266226T1 (ko)
DE (1) DE69916962T2 (ko)
ES (1) ES2221282T3 (ko)
SG (1) SG95605A1 (ko)
TW (1) TW497073B (ko)

Families Citing this family (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1039375A1 (en) * 1999-03-19 2000-09-27 Motorola, Inc. Method and apparatus for implementing zero overhead loops
US6606700B1 (en) * 2000-02-26 2003-08-12 Qualcomm, Incorporated DSP with dual-mac processor and dual-mac coprocessor
AU2001245520A1 (en) * 2000-03-08 2001-09-17 Sun Microsystems, Inc. Vliw computer processing architecture having a scalable number of register files
US6725360B1 (en) * 2000-03-31 2004-04-20 Intel Corporation Selectively processing different size data in multiplier and ALU paths in parallel
US7010788B1 (en) * 2000-05-19 2006-03-07 Hewlett-Packard Development Company, L.P. System for computing the optimal static schedule using the stored task execution costs with recent schedule execution costs
GB2366643B (en) 2000-05-25 2002-05-01 Siroyan Ltd Methods of compressing instructions for processors
US6415376B1 (en) * 2000-06-16 2002-07-02 Conexant Sytems, Inc. Apparatus and method for issue grouping of instructions in a VLIW processor
US6877084B1 (en) * 2000-08-09 2005-04-05 Advanced Micro Devices, Inc. Central processing unit (CPU) accessing an extended register set in an extended register mode
KR20040064713A (ko) * 2001-11-26 2004-07-19 코닌클리즈케 필립스 일렉트로닉스 엔.브이. 프로세서, 인스트럭션 세트, 인스트럭션 분배 방법 및컴파일링 방법
US7697946B2 (en) * 2002-06-04 2010-04-13 Forster Ian J Reflective communication using radio-frequency devices
JP3627725B2 (ja) * 2002-06-24 2005-03-09 セイコーエプソン株式会社 情報処理装置及び電子機器
US6944749B2 (en) * 2002-07-29 2005-09-13 Faraday Technology Corp. Method for quickly determining length of an execution package
US6865662B2 (en) * 2002-08-08 2005-03-08 Faraday Technology Corp. Controlling VLIW instruction operations supply to functional units using switches based on condition head field
ATE554443T1 (de) * 2003-06-25 2012-05-15 Koninkl Philips Electronics Nv Anweisungsgesteuerte datenverarbeitungseinrichtung und -verfahren
US7340588B2 (en) * 2003-11-24 2008-03-04 International Business Machines Corporation Extending the number of instruction bits in processors with fixed length instructions, in a manner compatible with existing code
US7873815B2 (en) * 2004-03-04 2011-01-18 Qualcomm Incorporated Digital signal processors with configurable dual-MAC and dual-ALU
US20060149926A1 (en) * 2004-12-23 2006-07-06 Yuval Sapir Control words for instruction packets of processors and methods thereof
US20060150171A1 (en) * 2004-12-28 2006-07-06 Ceva D.S.P. Ltd. Control words for instruction packets of processors and methods thereof
US20060149922A1 (en) * 2004-12-28 2006-07-06 Ceva D.S.P. Ltd. Multiple computational clusters in processors and methods thereof
US7350040B2 (en) * 2005-03-03 2008-03-25 Microsoft Corporation Method and system for securing metadata to detect unauthorized access
US7526633B2 (en) * 2005-03-23 2009-04-28 Qualcomm Incorporated Method and system for encoding variable length packets with variable instruction sizes
US7793078B2 (en) * 2005-04-01 2010-09-07 Arm Limited Multiple instruction set data processing system with conditional branch instructions of a first instruction set and a second instruction set sharing a same instruction encoding
JP5217431B2 (ja) * 2007-12-28 2013-06-19 富士通株式会社 演算処理装置及び演算処理装置の制御方法
US8281106B2 (en) * 2008-12-16 2012-10-02 International Business Machines Corporation Specifying an addressing relationship in an operand data structure
US8407680B2 (en) * 2008-12-16 2013-03-26 International Business Machines Corporation Operand data structure for block computation
US8458439B2 (en) * 2008-12-16 2013-06-04 International Business Machines Corporation Block driven computation using a caching policy specified in an operand data structure
US8327345B2 (en) * 2008-12-16 2012-12-04 International Business Machines Corporation Computation table for block computation
US8285971B2 (en) * 2008-12-16 2012-10-09 International Business Machines Corporation Block driven computation with an address generation accelerator
GB2486737B (en) 2010-12-24 2018-09-19 Qualcomm Technologies Int Ltd Instruction execution
GB2486740B (en) 2010-12-24 2019-02-13 Qualcomm Technologies Int Ltd Encapsulated instruction set
WO2012131437A1 (en) * 2011-03-30 2012-10-04 Freescale Semiconductor, Inc. Integrated circuit device and method for enabling cross-context access
US8898433B2 (en) * 2012-04-26 2014-11-25 Avago Technologies General Ip (Singapore) Pte. Ltd. Efficient extraction of execution sets from fetch sets
KR102210997B1 (ko) * 2014-03-12 2021-02-02 삼성전자주식회사 Vliw 명령어를 처리하는 방법 및 장치와 vliw 명령어를 처리하기 위한 명령어를 생성하는 방법 및 장치
US9733940B2 (en) 2014-11-17 2017-08-15 International Business Machines Corporation Techniques for instruction group formation for decode-time instruction optimization based on feedback
US9940242B2 (en) 2014-11-17 2018-04-10 International Business Machines Corporation Techniques for identifying instructions for decode-time instruction optimization grouping in view of cache boundaries
US10402199B2 (en) 2015-10-22 2019-09-03 Texas Instruments Incorporated Conditional execution specification of instructions using conditional extension slots in the same execute packet in a VLIW processor
US20170192788A1 (en) * 2016-01-05 2017-07-06 Intel Corporation Binary translation support using processor instruction prefixes
CN107688854B (zh) * 2016-08-05 2021-10-19 中科寒武纪科技股份有限公司 一种能支持不同位宽运算数据的运算单元、方法及装置
US10761849B2 (en) * 2016-09-22 2020-09-01 Intel Corporation Processors, methods, systems, and instruction conversion modules for instructions with compact instruction encodings due to use of context of a prior instruction
CN111813446A (zh) * 2019-04-12 2020-10-23 杭州中天微系统有限公司 一种数据加载和存储指令的处理方法和处理装置
CN116917859A (zh) * 2022-01-26 2023-10-20 谷歌有限责任公司 带有可变长度指令的并行解码指令集合计算机架构

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0827716B2 (ja) * 1985-10-25 1996-03-21 株式会社日立製作所 データ処理装置及びデータ処理方法
EP0500151B1 (en) * 1985-11-08 2000-03-01 Nec Corporation Microprogram control unit
ATE146611T1 (de) * 1990-05-04 1997-01-15 Ibm Maschinenarchitektur für skalaren verbundbefehlssatz
US5214763A (en) * 1990-05-10 1993-05-25 International Business Machines Corporation Digital computer system capable of processing two or more instructions in parallel and having a coche and instruction compounding mechanism
JPH04156613A (ja) * 1990-10-20 1992-05-29 Fujitsu Ltd 命令バッファ装置
EP0651320B1 (en) * 1993-10-29 2001-05-23 Advanced Micro Devices, Inc. Superscalar instruction decoder
US5689672A (en) * 1993-10-29 1997-11-18 Advanced Micro Devices, Inc. Pre-decoded instruction cache and method therefor particularly suitable for variable byte-length instructions
DE69429061T2 (de) * 1993-10-29 2002-07-18 Advanced Micro Devices Inc Superskalarmikroprozessoren
EP1338957A3 (en) 1993-11-05 2003-10-29 Intergraph Corporation Software scheduled superscalar computer architecture
EP1186995B1 (en) * 1993-11-05 2003-09-03 Intergraph Corporation Instruction memory with associative cross-bar switch
US5630083A (en) * 1994-03-01 1997-05-13 Intel Corporation Decoder for decoding multiple instructions in parallel
US5822778A (en) * 1995-06-07 1998-10-13 Advanced Micro Devices, Inc. Microprocessor and method of using a segment override prefix instruction field to expand the register file
JPH09265397A (ja) * 1996-03-29 1997-10-07 Hitachi Ltd Vliw命令用プロセッサ
US6275927B2 (en) * 1998-09-21 2001-08-14 Advanced Micro Devices. Compressing variable-length instruction prefix bytes

Also Published As

Publication number Publication date
TW497073B (en) 2002-08-01
SG95605A1 (en) 2003-04-23
ATE266226T1 (de) 2004-05-15
EP0994413A2 (en) 2000-04-19
US6418527B1 (en) 2002-07-09
CN1250906A (zh) 2000-04-19
EP0994413B1 (en) 2004-05-06
JP2000122864A (ja) 2000-04-28
KR100690225B1 (ko) 2007-03-12
DE69916962D1 (de) 2004-06-09
CN1129843C (zh) 2003-12-03
DE69916962T2 (de) 2005-04-07
EP0994413A3 (en) 2002-01-23
ES2221282T3 (es) 2004-12-16
US20020056035A1 (en) 2002-05-09

Similar Documents

Publication Publication Date Title
KR100690225B1 (ko) 데이터 처리기 시스템 및 그룹화를 이용한 명령 시스템
US6745336B1 (en) System and method of operand value based processor optimization by detecting a condition of pre-determined number of bits and selectively disabling pre-determined bit-fields by clock gating
US7386844B2 (en) Compiler apparatus and method of optimizing a source program by reducing a hamming distance between two instructions
RU2292581C2 (ru) Команды загрузки/перемещения и копирования для процессора
KR100284789B1 (ko) N-지로 분기를 갖는 슈퍼스칼라 또는 초장 명령어 워드컴퓨터에서 다음 명령어를 선택하는 방법 및 장치
US5619664A (en) Processor with architecture for improved pipelining of arithmetic instructions by forwarding redundant intermediate data forms
Jacobson et al. Instruction pre-processing in trace processors
JP2000222206A (ja) データ処理装置
JP2008530642A (ja) 低レイテンシーの大量並列データ処理装置
US20020087900A1 (en) System and method for reducing power consumption in a data processor having a clustered architecture
JPH09311786A (ja) データ処理装置
EP1340141A1 (en) A high performance vliw processor
EP0992894A1 (en) Apparatus and method for loop execution
WO1998006042A1 (en) Wide instruction unpack method and apparatus
JP4002554B2 (ja) 拡張命令エンコーディングのシステムおよびその方法
JPH0496825A (ja) データ・プロセッサ
US7143268B2 (en) Circuit and method for instruction compression and dispersal in wide-issue processors
US6857063B2 (en) Data processor and method of operation
WO2002084451A2 (en) Vector processor architecture and methods performed therein
US7337306B2 (en) Executing conditional branch instructions in a data processor having a clustered architecture
CN110073332B (zh) 数据处理装置和方法
US5764939A (en) RISC processor having coprocessor for executing circular mask instruction
EP1220100A2 (en) Circuit and method for hardware-assisted software flushing of data and instruction caches
US20030014614A1 (en) Bypass circuitry for use in a pipelined processor
EP0545927B1 (en) System for preparing instructions for instruction parallel processor and system with mechanism for branching in the middle of a compound instruction

Legal Events

Date Code Title Description
A201 Request for examination
N231 Notification of change of applicant
E902 Notification of reason for refusal
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20130208

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20140211

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20150209

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20160211

Year of fee payment: 10

LAPS Lapse due to unpaid annual fee