KR20080067711A - 인스트럭션 실행 방법, 프로세싱 시스템 및 데이터 프로세싱 시스템 - Google Patents

인스트럭션 실행 방법, 프로세싱 시스템 및 데이터 프로세싱 시스템 Download PDF

Info

Publication number
KR20080067711A
KR20080067711A KR1020087014193A KR20087014193A KR20080067711A KR 20080067711 A KR20080067711 A KR 20080067711A KR 1020087014193 A KR1020087014193 A KR 1020087014193A KR 20087014193 A KR20087014193 A KR 20087014193A KR 20080067711 A KR20080067711 A KR 20080067711A
Authority
KR
South Korea
Prior art keywords
instruction
instruction portion
processing system
data bits
elements
Prior art date
Application number
KR1020087014193A
Other languages
English (en)
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 KR20080067711A publication Critical patent/KR20080067711A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • 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/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/3017Runtime instruction translation, e.g. macros
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3802Instruction prefetching

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

Abstract

인스트럭션을 실행하는 프로세싱 시스템은 어드레스 정보 및 다수의 데이터 비트(E0 내지 EN)를 갖는 제 1 부분(11)을 포함한다. 일 실시예에 따르면, 각각의 데이터 비트(E0 내지 EN)는 인스트럭션 세트 중의 제 2 부분(예를 들어, VLIW)을 형성하는 대응하는 요소(130 내지 13N)를 직접적으로 선택한다. 이러한 방법으로, 제 1 부분(11)은 NOP 인스트럭션을 포함하지 않는 요소만을 선택하는 데 사용되어 전력이 불필요하게 소비되지 않게 한다. 대안 실시예에 따르면, 제 2 부분(13) 내의 상이한 요소 그룹이 데이터 비트(E0 내지 EN)를 이용하여 제 2 부분(11)에서 인코딩되는 수에 따라 선택될 수 있다. 이들 상이한 그룹은 프로그램 내에서 가장 잘 사용되는 조합을 반영하는 것이 바람직하다.

Description

인스트럭션 실행 방법, 프로세싱 시스템 및 인스트럭션{PROCESSING SYSTEM AND METHOD FOR EXECUTING INSTRUCTIONS}
본 발명은 인스트럭션을 실행하는 프로세싱 시스템 및 방법에 관한 것으로서, 보다 구체적으로는 2개 이상의 부분에서 페치(fetch)되는 인스트럭션에 대해서 전력 감소 이점이 있는 프로세싱 시스템 및 방법에 관한 것이다.
본 발명은 또한 이동 전화기, PDA 등과 같이 그러한 프로세싱 시스템을 포함하는 디바이스에 관한 것이다.
프로세서 기반 장비의 전력 효율은 점차 중요해지고 있으며, 특히 배터리로 동작하는 장비에서 그 중요성을 더해가고 있다. 다수의 기법이 전력 사용을 감소시키는 데 사용되고 있다. 이들은, 보다 적은 전력을 사용하도록 프로세서의 회로기기를 설계하거나, 또는 전력 사용이 관리되도록 프로세서를 설계하는 것을 포함한다. 또한, 소정의 프로세서 아키텍처의 경우, 전력 소비는 그것의 프로그래밍을 최적화함으로써 절약될 수 있다.
프로세서 아키텍처를 설계하고 그 프로세서 아키텍처용으로 설정된 관련 인 스트럭션을 설계할 때, 인스트럭션 레벨 병렬 계산(instruction level parallelism)을 설명하는 데 필요한 비트의 수와 프로그램 메모리로부터 병렬로 페치될 수 있는 비트의 수 사이에는 상충조건(a trade-off)이 이루어질 수 있다.
소정 프로세서 아키텍처에서, 사이클 페널티(a cycle penalty)는 인스트럭션이 소정 길이를 초과하는 경우에 발생할 수 있다. 따라서 소정 프로세서 아키텍처는 인스트럭션 압축을 이용한다. 그러나, 인스트럭션의 압축이 너무 고가라면, 선택적으로, 두 가지 유형의 프로그램 메모리, 즉 제한적인 병렬 계산을 갖는 작은 인스트럭션에 관한 것과 보다 큰 병렬 계산을 갖는 큰 인스트럭션에 관한 것을 사용할 수 있다. 큰 인스트럭션(a wide instruction)이 페치되어야 함을 나타내기 위해서, 특수한 작은 인스트럭션(a special small instruction), 즉 제 1 인스트럭션 부분이 큰 인스트럭션, 즉 제 2 인스트럭션 부분으로의 페치를 트리거하는 데 사용된다.
그러한 시스템의 일례는 미국 특허 번호 제5,724,535호에 개시되어 있는데, 이 특허에는 프로그램 메모리 내의 인스트럭션이 제 2 메모리 내의 룩업을 수행함으로써 VLIW(Very Long Instruction Word)로 확장되는 메커니즘이 설명되어 있다.
도 1은 프로세서 내의 상이한 기능 유닛(30 내지 3n)을 이용하여 다수의 인스트럭션을 병렬적으로 처리할 수 있는 능력을 특징으로 하는 VLIW 프로세서(1)의 일례를 도시한다. 제 2 메모리(5) 내에 저장된 VLIW 인스트럭션은 다수의 요소를 포함하는데, 이들 요소는 각각 프로세서(1) 내의 각 기능 유닛(30 내지 3n)을 제어 한다. 동작 동안, 제 2 메모리(5)에 대한 어드레스는 주 메모리 프로그램(7) 내의 인스트럭션으로부터 도출된다. 디코더(9)는 제 2 메모리(5) 내부의 룩업을 필요로 하는 특정 인스트럭션을 주 프로그램 메모리(7)로부터 검출하도록 마련된다.
도 2는 주 메모리(7) 내의 인스트럭션, 즉 제 1 부분(11)이 제 2 메모리(5) 내에 저장된 VLIW 인스트럭션, 즉 제 2 부분(13)에 대한 어드레스 정보를 제공하는 방법을 도시한다. VLIW 인스트럭션(13)은 다수의 요소(130 내지 13N)를 포함한다. 인스트럭션을 처리하는 이러한 방법의 보다 상세한 양상은, P. Kievits 등이 ICSPAT 협의회(1998)에서 게재한 논문 "R.E.A.L DSP Technology for Telecom Baseband Processing"에서 찾을 수 있다.
이 방식에서, VLIW 인스트럭션은 도 1의 각 기능 유닛(30 내지 3n)에 병렬로 출력될 수 있다. 모든 기능 유닛이 각각의 프로세싱 사이클에서 사용되는 완전한 병렬 동작을 갖는 것은 드문 경우이다. 보다 보편적으로, 많은 VLIW 인스트럭션은 개별적으로 대응하는 기능 유닛이 그 프로세싱 사이클 동안에 동작하지 않음을 나타내는 부요소의 무작동(No Operation: NOP) 인스트럭션을 포함한다.
따라서 어떠한 압축도 사용되지 않는 경우, 제 2 부분의 요소(130 내지 13N)가 NOPs(즉, No Operations)를 포함할 것이기 때문에, 제 2 부분에 의해 허용되는 병렬 계산이 항상 완전히 이용될 수 있는 것은 아니다. 종래 기술에 있어서, 제 2 부분은 인스트럭션 중에서 NOPs를 포함하는 요소들조차도 메모리로부터 완전히 페치된다. 이것은 필요 이상으로 많은 전력을 소비한다는 단점이 있다.
본 발명의 목적은 NOPs의 페치와 관련된 불필요한 전력 소비를 회피하는 프로세싱 시스템 및 방법을 제공하는 데 있다.
본 발명의 제 1 양상에 따르면, 프로세서에서 인스트럭션을 실행하는 방법으로서, 제 1 인스트력션 부분은 제 2 인스트럭션 부분의 실행을 야기하고 제 2 인스트럭션 부분은 다수의 요소를 포함하는 방법이 제공된다. 본 발명의 방법은 제 1 인스트럭션 부분을 페치하는 단계와, 제 1 인스트럭션 부분에서 인코딩된 제 1 정보로부터 제 2 인스트럭션 부분을 구성하는 요소를 식별하는 단계를 포함한다. 본 발명의 방법은 또한 식별된 제 2 인스트럭션 부분 중에서 NOP(No Operation) 인스트럭션에 대응하는 식별 요소를 제 1 인스트럭션 부분에서 인코딩된 제 2 정보로부터 식별하는 단계를 포함한다. 그에 따라, 제 2 인스트럭션 부분을 형성하는 요소가 페치되어, NOP 인스트럭션에 대응하는 요소를 배제한다.
본 발명은 제 2 인스트럭션 부분 중에서 제 1 인스트럭션 부분 내에서 페치되어야 하는 요소를 나타냄으로써 전술한 전력 문제를 해결한다. 따라서, 본 발명은 NOP를 포함하지 않는 제 2 인스트럭션 부분의 요소만을 페치함으로써 전력이 절약될 수 있다.
본 발명의 다른 양상에 따르면, 제 1 인스트럭션 부분이 제 2 인스트럭션 부분의 실행을 야기하는 인스트럭션을 실행하는 프로세싱 시스템이 제공된다. 본 발명의 시스템은 제 1 인스트럭션 부분을 페치하는 수단과, 제 2 인스트럭션 부분을 구성하는 요소를 제 1 인스트럭션 부분 내에 포함된 제 1 정보로부터 식별하는 수단을 포함한다. 본 발명의 시스템은 또한 NOP 인스트럭션에 대응하는 식별된 요소를 제 1 인스트럭션 부분에서 인코딩된 제 2 정보로부터 식별하는 수단과, 제 2 인스트럭션 부분을 형성하는 요소를 페치하는 수단을 포함한다. 페치 수단은 NOP 인스트럭션에 대응하는 요소를 배제하도록 적응된다.
본 발명의 또 다른 양상에 따르면, 데이터 프로세싱 시스템에서 사용되며, 다수의 요소를 갖는 제 2 인스트럭션 부분의 실행을 야기하는 제 1 부분을 포함하는 인스트럭션으로서, 제 1 인스트럭션 부분은 제 2 인스트럭션 부분 내에서의 실행으로부터 배제될 NOP 인스트럭션을 실행하는 다수의 데이터 비트를 포함하는 인스트럭션이 제공된다.
본 발명의 보다 양호한 이해를 위해서, 또한 그것이 실행될 수 있는 방법을 보다 명확히 나타내기 위해서, 다음의 도면이 일례로서 참조된다.
도 1은 기지의 프로세싱 아키텍처의 예시도,
도 2는 2 부분 내에 VLIW가 페치되는 방법의 예시도,
도 3은 본 발명의 제 1 실시예에 따라서 인스트럭션이 실시되는 방법의 예시도,
도 4는 본 발명의 제 2 실시예에 따라서 인스트럭션이 실시되는 방법의 예시도이다.
도 3은 본 발명에 따른 프로세싱 시스템을 도시한다. 인스트럭션 인코딩 방식에서 각각의 인스트럭션은 제 1 부분(11)을 포함한다. 그러나 제 1 부분(11)은 제 2 부분(13)에 대한 어드레스 정보(제 1 정보)를 포함하는 것 뿐 아니라, 다수의 데이터 비트(E0 내지 EN)의 형태인 기타 정보(제 2 정보)도 포함한다. 이들 데이터 비트(E0 내지 EN)는 제 1 인스트럭션 세트 부분의 인스트럭션을 형성하는 주 데이터 비트에 추가되어 주 프로그램 메모리(7) 내에 저장됨이 이해될 것이다.
본 발명의 제 1 실시예에 따르면, 각각의 데이터 비트(E0 내지 EN)는 제 2 인스트럭션 세트 부분(13)의 대응하는 요소(130 내지 13N)를 직접 선택한다. 제 2 인스트럭션 세트 부분(13)은 예를 들어 VLIW를 형성할 수 있다. 이러한 방법으로, 제 1 부분(11)의 데이터 비트(E0 내지 EN)는 NOP 인스트럭션을 포함하지 않는 요소만을 선택하여 전력이 불필요하게 소비되지 않게 하는 데 사용된다. 다시 말해서, 데이터 비트(E0 내지 EN)에서 인코딩된 정보는 NOP 인스트럭션을 배제한 요소만을 선택함으로써 NOP 인스트럭션에 대응하는 요소를 식별하는 데 효과적으로 사용된다.
따라서 본 발명에 따르면, 주 프로그램 메모리(7)의 인스트럭션(11)은 제 2 메모리(5)로부터 페치되어야 하는 VLIW의 요소를 나타내는 다수의 데이터 비트(E0 내지 EN)를 포함한다. 제 2 메모리(5)가 그 프로세서 내의 기능 유닛에 대응하는 VLIW 부분에 제각각 관련되는 다수의 요소로 분할되므로, 본 발명은 각각의 요소가 다수의 데이터 비트(E0 내지 EN) 중에서 대응하는 요소에 의해 제어되는 개별적인 인에이블 신호를 갖게 한다.
예를 들어, 제 2 메모리 내에 저장된 VLIW가 8개의 요소(130 내지 137)를 포함한다면, 주 프로그램 메모리의 인스트럭션 워드는 8개의 데이터 비트(E0 내지 E7)를 포함할 것이다. 본 발명에 제 1 실시예에 따르면, VLIW의 요소 중 어느 것에도 NOP 인스트럭션이 없는 경우, 각각의 데이터 비트(E0 내지 E7)는 동일한 로직 상태, 예를 들어 "하이(high)"로 설정되어 각각의 요소를 인에이블링할 수 있다. 이러한 환경에서, 각각의 요소는 실행을 위해 프로세서 내의 대응하는 기능 유닛(30 내지 3n)으로 전달될 것이다.
그러나 VLIW 내의 요소, 예를 들어 제 4 요소(133)가 NOP 인스트럭션을 포함하는 경우, 다수의 데이터 비트 중 대응하는 데이터 비트(E3)는 "로우(low)"를 유지하여 제 4 요소가 실행을 위해 그것의 대응하는 기능 요소(33)로 전달되는 것을 디스에이블링할 것이다. 이러한 방법으로, 제 4 요소(133)에 대응하는 기능 요소가 임의의 인스트럭션을 처리하는 것으로부터 효과적으로 디스에이블링되기 때문에 전력이 절약된다.
전술한 실시예가 대응하는 요소를 인에이블링하도록 작용하는 로직 "하이" 및 대응하는 요소를 디스에이블링하는 로직 "로우"라고 지칭하고 있지만, 반대의 로직도 사용될 수 있음이 이해될 것이다.
따라서 도 3으로부터 알 수 있는 바와 같이, 각각의 제 1 부분(11)은 제 2 부분(13)의 각 요소에 제각각 대응하는 "N"개의 데이터 비트를 필요로 한다.
도 4는 본 발명의 다른 실시예를 도시한다. 이 실시예에 따르면, 제 2 부분(13)의 상이한 요소 그룹은 데이터 비트(E0 내지 EN)를 이용하여 제 1 부분(11)에서 인코딩되는 수에 따라 선택될 수 있다. 요소 그룹은 디코딩 단(15)을 이용하여 선택된다. 이들 상이한 그룹은 프로그램 실행 동안에 가장 빈번하게 사용되는 그룹을 나타내는 것이 바람직하다. 예를 들어, 16개 또는 32개의 그룹이 정의될 수 있으며, 이들 그룹 각각은 빈도에 따라 발생하는 NOPs의 조합을 갖는다. 그 때문에, 디코딩 단(15)은 특정 인스트럭션이 속하는 그룹을 결정하도록 구성된다.
하나의 그룹은 "요소 1, 요소 2, 요소 5, 요소 7"을 포함하고, 다른 그룹은 "요소 1, 요소 6, 요소 9, 요소 10"을 포함하는 등을 예로 들 수 있으며, 특정 그룹 내의 각각의 요소 조합은 통상적으로 프로그램에서 사용되는 조합을 나타낸다.
제 2 실시예에서는, 4개의 데이터 비트(E0 내지 E3)를 포함하는 제 1 부분(11)이 16개의 상이한 제 2 부분을 인코딩하는 데 사용되거나, 8개의 데이터 비트(E0 내지 E7)를 포함하는 제 1 부분이 256개의 상이한 제 2 부분을 인코딩하는 데 사용되는 등이 가능하다.
제 1 및 제 2 실시예의 모든 인스트럭션(11)이 대응하는 제 1 부분(13)을 반 드시 가질 필요는 없음이 주목된다. 다시 말해, 제한적인 병렬 계산을 갖는 소정 인스트럭션은 관련된 제 2 부분(13)이 없이 오로지 제 1 부분(11)만을 포함할 수도 있다. 이러한 방식으로, 인스트럭션 내에 매우 제한적인 병렬 계산이 존재한다면, 제 1 부분의 인스트럭션을 완전히 인코딩함으로써 효율이 개선된다.
또한, 바람직한 실시예는 제 1 및 제 2 부분 내에 페치되는 인스트럭션에 관해서 설명되고 있지만, 본 발명이 2개보다 많은 부분 내에 페치되는 인스트럭션에도 마찬가지로 적용될 수 있음이 이해될 것이다.
본 발명은 높은 계산 성능을 필요로 하는 배터리 구동 디바이스 내의 애플리케이션에서 사용하기에 특히 적합하다는 점이 주목된다.
당업자라면 이해할 수 있는 바와 같이, 전술한 실시예에서 설명한 "요소"는 각각의 기능 유닛에 대한 개별적인 인스트럭션 또는 기능 유닛에 대한 인스트럭션의 일부일 수 있다. 하나보다 많은 기능 유닛이 하나 보다 많은 요소의 단일 인스트럭션에 대응하는 것도 가능하다. 예를 들어, 메모리로부터 기능 유닛 내의 레지스터로의 데이터 이동은 레지스터 목적지 선택 및 데이터 어드레스 생성용 포인터 유닛을 필요로 할 수도 있다. 이것은 하나보다 많은 요소에서 인코딩될 수 있다.
전술한 실시예는 본 발명을 제한하기보다는 예시하는 것이며, 당업자라면 첨부한 특허청구범위의 범주에서 벗어나지 않고서 수많은 대안 실시예를 설계할 수 있을 것임이 주목된다. "포함한다"라는 용어는 청구항 내에서 나열되는 요소 또는 단계 이외의 요소 또는 단계가 존재함을 배제하는 것이 아니고, 단수 표현은 다수 개가 존재함을 배제하는 것이 아니며, 단일 프로세서 또는 다른 유닛은 특허청구범 위에서 인용되는 여러 유닛의 기능을 충족시킬 수도 있다. 특허청구범위 내의 어떠한 참조 부호도 그들의 범주를 제한하는 것으로 이해되어서는 안 된다.

Claims (14)

  1. 제 1 인스트럭션 부분이 제 2 인스트럭션 부분의 실행을 야기하고, 상기 제 2 인스트럭션 부분이 다수의 요소를 포함하는 프로세서 내의 인스트럭션을 실행하는 방법으로서,
    상기 제 1 인스트럭션 부분을 페치하는 단계와,
    상기 제 2 인스트럭션 부분을 구성하는 요소를 상기 제 1 인스트럭션 부분에서 인코딩된 제 1 정보로부터 식별하는 단계와,
    상기 식별된 요소 중에서 무작동(No Operation: NOP) 인스트럭션에 대응하는 요소를 상기 제 1 인스트럭션 부분에서 인코딩된 제 2 정보로부터 식별하는 단계와,
    상기 제 2 인스트럭션 부분을 형성하는 상기 요소를 페치하여, NOP 인스트럭션에 대응하는 요소를 배제시키는 단계를 포함하는
    인스트럭션 실행 방법.
  2. 제 1 항에 있어서,
    상기 제 1 인스트럭션 부분에서 인코딩된 상기 제 2 정보는 상기 제 2 인스트럭션 부분 중의 관련된 요소를 선택하기 위한 정보를 제각각 제공하는 다수의 데이터 비트를 포함하는
    인스트럭션 실행 방법.
  3. 제 1 항에 있어서,
    상기 제 1 인스트럭션 부분에서 인코딩된 상기 제 2 정보는 상기 제 2 인스트럭션 부분을 형성하는 관련된 요소 그룹(an associated group of elements)을 협력하여 나타내는 다수의 데이터 비트를 포함하는
    인스트럭션 실행 방법.
  4. 제 3 항에 있어서,
    상기 제 2 인스트럭션 부분 내의 각 요소 그룹은 프로그램 실행 동안에 빈번하게 사용되는 요소 그룹에 관한 것인
    인스트럭션 실행 방법.
  5. 제 1 항 내지 제 4 항 중의 어느 한 항에 있어서,
    상기 제 2 인스트럭션 부분은 초장 인스트럭션 워드(a very long instruction word: VLIW)이며, 상기 VLIW 내의 각 요소는 프로세서의 기능 요소에 대한 인스트럭션을 형성하는
    인스트럭션 실행 방법.
  6. 제 1 항 내지 제 5 항 중의 어느 한 항에 있어서,
    상기 제 1 인스트럭션 부분은 제 1 메모리 내에 저장되고,
    상기 제 2 인스트럭션 부분은 제 2 메모리 내에 저장되는
    인스트럭션 실행 방법.
  7. 제 1 인스트럭션 부분이 제 1 인스트럭션 부분의 실행을 야기하는 인스트럭션을 실행하는 프로세싱 시스템으로서,
    상기 제 1 인스트럭션 부분을 페치하는 수단과,
    상기 제 2 인스트럭션 부분을 구성하는 요소를 상기 제 1 인스트럭션 부분에 포함된 제 1 정보로부터 식별하는 수단과,
    상기 식별된 요소 중에서 NOP(No Operation) 인스트럭션에 대응하는 요소를 상기 제 1 인스트럭션 부분에서 인코딩된 제 2 정보로부터 식별하는 수단과,
    상기 제 2 인스트럭션 부분을 형성하는 상기 요소를 페치하되, NOP 인스트럭션에 대응하는 요소를 배제하는 수단을 포함하는
    프로세싱 시스템.
  8. 제 7 항에 있어서,
    상기 제 1 인스트럭션 부분에서 인코딩된 상기 제 2 정보는 다수의 데이터 비트를 포함하고,
    상기 페치 수단은 대응하는 데이터 비트에 기초하여 상기 제 2 인스트럭션 부분 중의 관련된 요소를 선택하는
    프로세싱 시스템.
  9. 제 7 항에 있어서,
    상기 제 1 인스트럭션 부분에서 인코딩된 상기 제 2 정보는 다수의 데이터 비트를 포함하고,
    상기 페치 수단은 상기 제 1 인스트럭션 부분 내의 상기 다수의 데이터 비트에 기초하여 상기 제 2 인스트럭션 부분을 형성하는 요소 그룹을 선택하는
    프로세싱 시스템.
  10. 제 7 항에 있어서,
    상기 제 2 인스트럭션 부분을 형성하는 요소 그룹을 선택하는 디코딩 로직(decode logic)을 더 포함하는
    프로세싱 시스템.
  11. 제 7 항 내지 제 10 항 중의 어느 한 항에 있어서,
    상기 제 2 인스트럭션 부분은 초장 인스트럭션 워드(a very long instruction word: VLIW)로서, 상기 VLIW 내의 각 요소는 프로세서의 기능 요소에 대한 인스트럭션을 형성하는
    프로세싱 시스템.
  12. 제 7 항 내지 제 11 항 중의 어느 한 항에 있어서,
    상기 제 1 인스트럭션 부분을 저장하는 제 1 메모리와,
    상기 제 2 인스트럭션 부분을 저장하는 제 2 메모리를 더 포함하는
    프로세싱 시스템.
  13. 데이터 프로세싱 시스템에서 사용하는 인스트럭션으로서,
    상기 인스트럭션은 다수의 요소를 갖는 제 2 인스트럭션 부분의 실행을 야기하는 제 1 인스트럭션 부분을 포함하되,
    상기 제 1 인스트럭션 부분은 다수의 데이터 비트를 포함하며,
    상기 다수의 데이터 비트는 상기 제 2 인스트럭션 부분에서의 실행으로부터 배제되어야 하는 NOP 인스트럭션을 식별하는
    인스트럭션.
  14. 제 7 항 내지 제 12 항 중의 어느 한 항에 따른 프로세싱 시스템을 포함하는 디바이스.
KR1020087014193A 2005-11-15 2006-11-13 인스트럭션 실행 방법, 프로세싱 시스템 및 데이터 프로세싱 시스템 KR20080067711A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP05110764.7 2005-11-15
EP05110764 2005-11-15

Publications (1)

Publication Number Publication Date
KR20080067711A true KR20080067711A (ko) 2008-07-21

Family

ID=37891685

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020087014193A KR20080067711A (ko) 2005-11-15 2006-11-13 인스트럭션 실행 방법, 프로세싱 시스템 및 데이터 프로세싱 시스템

Country Status (7)

Country Link
US (1) US8069335B2 (ko)
EP (1) EP1952231A2 (ko)
JP (1) JP2009516254A (ko)
KR (1) KR20080067711A (ko)
CN (1) CN101305345A (ko)
TW (1) TW200729032A (ko)
WO (1) WO2007057828A2 (ko)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4864840B2 (ja) 2007-08-31 2012-02-01 株式会社東芝 マイクロプロセッサ
US9891904B1 (en) * 2010-07-30 2018-02-13 Altera Corporation Method and apparatus for optimizing implementation of a soft processor executing a fixed program on a target device
KR101738640B1 (ko) * 2011-01-18 2017-05-24 삼성전자주식회사 트레이스 데이터 압축 장치 및 방법
US9727460B2 (en) 2013-11-01 2017-08-08 Samsung Electronics Co., Ltd. Selecting a memory mapping scheme by determining a number of functional units activated in each cycle of a loop based on analyzing parallelism of a loop
CN106445466B (zh) * 2015-08-13 2019-07-09 深圳市中兴微电子技术有限公司 超长指令字指令集的指令处理方法及装置

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
EP0729616B1 (en) 1994-09-15 2002-08-28 Koninklijke Philips Electronics N.V. A data processing system comprising data processing units and an expander
JP3598589B2 (ja) * 1995-06-28 2004-12-08 株式会社日立製作所 プロセッサ
US5870576A (en) * 1996-12-16 1999-02-09 Hewlett-Packard Company Method and apparatus for storing and expanding variable-length program instructions upon detection of a miss condition within an instruction cache containing pointers to compressed instructions for wide instruction word processor architectures
JPH1185512A (ja) * 1997-09-03 1999-03-30 Fujitsu Ltd 命令圧縮格納および命令復元機能を有するデータ処理装置
US6173389B1 (en) 1997-12-04 2001-01-09 Billions Of Operations Per Second, Inc. Methods and apparatus for dynamic very long instruction word sub-instruction selection for execution time parallelism in an indirect very long instruction word processor
GB2366643B (en) * 2000-05-25 2002-05-01 Siroyan Ltd Methods of compressing instructions for processors

Also Published As

Publication number Publication date
JP2009516254A (ja) 2009-04-16
US20080256334A1 (en) 2008-10-16
EP1952231A2 (en) 2008-08-06
US8069335B2 (en) 2011-11-29
WO2007057828A3 (en) 2007-10-18
TW200729032A (en) 2007-08-01
WO2007057828A2 (en) 2007-05-24
CN101305345A (zh) 2008-11-12

Similar Documents

Publication Publication Date Title
KR101703743B1 (ko) 가속된 레인 간 벡터 감축 명령어들
US20190012171A1 (en) Read and Write Masks Update Instruction for Vectorization of Recursive Computations Over Independent Data
US20140095847A1 (en) Instruction and highly efficient micro-architecture to enable instant context switch for user-level threading
US20050005085A1 (en) Microprocessor using genetic algorithm
US7962733B2 (en) Branch prediction mechanisms using multiple hash functions
KR101817459B1 (ko) 1들을 최하위 비트들이 되도록 풀링하면서 비트들을 좌측으로 시프팅하기 위한 명령어
JP2012529096A (ja) ベクトル命令を取り扱うためのデータ処理装置および方法
RU2009115188A (ru) Выполнение операций округления в соответствии с инструкцией
US20130346781A1 (en) Power Gating Functional Units Of A Processor
TWI498818B (zh) 指示可變長度指令集的指令長度之技術
JP2009536770A (ja) ブロックに基づく分岐先アドレスキャッシュ
KR20180021850A (ko) 블록 크기에 기초하여 명령어 블록을 명령어 윈도우에 맵핑하기
US11645078B2 (en) Detecting a dynamic control flow re-convergence point for conditional branches in hardware
KR20080067711A (ko) 인스트럭션 실행 방법, 프로세싱 시스템 및 데이터 프로세싱 시스템
JP2009059246A (ja) マイクロプロセッサ
US11830547B2 (en) Reduced instruction set processor based on memristor
US10409599B2 (en) Decoding information about a group of instructions including a size of the group of instructions
WO2013036950A1 (en) Instruction packet including multiple instructions having a common destination
KR100977687B1 (ko) 기지의 프로세서 상태에 기초하여 cam 리네이밍레지스터 파일 내의 비교기를 선택적으로 인에이블링하는절전 방법 및 장치
JP2007537528A (ja) データ処理方法、処理装置、多重命令ワードセット生成方法、コンパイラプログラム
US20110219212A1 (en) System and Method of Processing Hierarchical Very Long Instruction Packets
CN108845832B (zh) 一种提高处理器主频的流水线细分装置
WO2005036384A2 (en) Instruction encoding for vliw processors
US9672042B2 (en) Processing system and method of instruction set encoding space utilization
US20210042111A1 (en) Efficient encoding of high fanout communications

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application