KR20100058623A - 다중-스테이지 데이터 프로세싱 파이프라인에서 명령들을 실행하는 시스템 및 방법 - Google Patents

다중-스테이지 데이터 프로세싱 파이프라인에서 명령들을 실행하는 시스템 및 방법 Download PDF

Info

Publication number
KR20100058623A
KR20100058623A KR1020107007376A KR20107007376A KR20100058623A KR 20100058623 A KR20100058623 A KR 20100058623A KR 1020107007376 A KR1020107007376 A KR 1020107007376A KR 20107007376 A KR20107007376 A KR 20107007376A KR 20100058623 A KR20100058623 A KR 20100058623A
Authority
KR
South Korea
Prior art keywords
stage
instruction
pipeline
data processing
instruction execution
Prior art date
Application number
KR1020107007376A
Other languages
English (en)
Other versions
KR101132484B1 (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 KR20100058623A publication Critical patent/KR20100058623A/ko
Application granted granted Critical
Publication of KR101132484B1 publication Critical patent/KR101132484B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3851Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution from multiple instruction streams, e.g. multistreaming
    • 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/3867Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Advance Control (AREA)
  • Executing Machine-Instructions (AREA)

Abstract

명령을 실행하기 위한 다수의 스테이지들을 가진 명령 실행 파이프라인을 포함하는 디바이스가 개시된다. 이러한 디바이스는 또한 명령 실행 파이프라인에 결합된 제어 로직 회로를 포함한다. 제어 로직 회로는 명령의 실행 동안 명령 실행 파이프라인의 적어도 하나의 스테이지를 스킵하도록 적응된다. 제어 로직 회로는 또한 디코딩된 명령의 실행 동안 적어도 하나의 스킵되지 않은 스테이지를 실행하도록 적응된다.

Description

다중-스테이지 데이터 프로세싱 파이프라인에서 명령들을 실행하는 시스템 및 방법{SYSTEM AND METHOD OF EXECUTING INSTRUCTIONS IN A MULTI-STAGE DATA PROCESSING PIPELINE}
본 발명의 개시내용은 일반적으로 다중-스테이지(multi-stage) 데이터 프로세싱 파이프라인에서 명령들을 실행하는 시스템 및 방법에 관한 것이다.
기술에 있어서의 진보들은 보다 작고 보다 강력한 개인 컴퓨팅 디바이스들로 귀결되었다. 예를 들어, 휴대용 무선 전화들, 개인 휴대 정보 단말기(PDA)들, 및 작고 가볍고 사용자들에 의해 손쉽게 휴대되는 페이징 디바이스들과 같은, 무선 컴퓨팅 디바이스들을 포함한, 다양한 휴대용 개인 컴퓨팅 디바이스들이 현재 존재한다. 보다 구체적으로, 셀룰러 전화들 및 IP 전화들과 같은 휴대용 무선 전화들은 무선 네트워크들을 통해 음성 패킷 및 데이터 패킷을 통신할 수 있다. 또한, 많은 이러한 무선 전화기들은 그 안에 통합된 다른 유형의 디바이스들을 포함한다. 예를 들어, 무선 전화기는 또한 디지털 스틸(still) 카메라, 디지털 비디오 카메라, 디지털 녹화기(recorder), 및 오디오 파일 플레이어를 포함할 수 있다. 또한, 이러한 무선 전화기들은 인터넷에 액세스하기 위해 사용될 수 있는 웹 인터페이스를 포함할 수 있다. 이처럼, 이러한 무선 전화기들은 중요한 컴퓨팅 능력들을 포함한다.
전형적으로, 휴대용 개인 컴퓨팅 디바이스들은 배터리에 의해 구동된다. 이러한 디바이스들이 보다 강력해짐에 따라, 이러한 디바이스들은 보다 많은 전력을 소모할 수 있고 배터리가 디바이스를 구동할 수 있는 시간의 양을 감소시킬 수 있다.
따라서, 프로세서에서 명령들을 실행하는 향상된 시스템 및 방법을 제공하는 것이 유리할 것이다.
특정 실시예에서, 명령을 실행하기 위한 다수의 스테이지(stage)들을 가진 명령 실행 파이프라인(pipeline)을 포함하는 디바이스가 개시된다. 이러한 디바이스는 또한 명령 실행 파이프라인에 결합된 제어 로직 회로를 포함한다. 제어 로직 회로는, 디코딩된 명령의 실행 동안 명령 실행 파이프라인의 적어도 하나의 스테이지를 스킵(skip)하도록 적응된다. 제어 로직 회로는 또한, 디코딩된 명령의 실행 동안 적어도 하나의 스킵되지 않은(non-skipped) 스테이지를 실행하도록 적응된다.
또 다른 특정 실시예에서, 다중-스테이지 데이터 프로세싱 파이프라인에서 사용가능한 스테이지들의 개수보다 적은 스테이지들을 이용하여 명령들이 실행될 수 있는 시기를 결정하기 위해 명령을 디코딩하는 것을 포함하는 방법이 개시된다. 이러한 방법은 또한, 디코딩된 명령의 실행 동안 다중-스테이지 데이터 프로세싱 파이프라인의 적어도 하나의 스테이지를 스킵하는 것, 및 디코딩된 명령의 실행 동안 적어도 하나의 스킵되지 않은 스테이지를 실행하는 것을 포함한다.
또 다른 특정 실시예에서, 명령 실행 파이프라인 및 이러한 명령 실행 파이프라인으로부터 데이터를 수신하도록 적응된 레지스터 파일을 포함하는 디바이스가 개시된다. 이러한 디바이스는 또한, 명령의 실행 동안 명령 실행 파이프라인의 다수의 사용가능한 스테이지들 중 적어도 하나의 스테이지를 스킵하기 위한 수단을 포함한다.
또 다른 특정 실시예에서, 수신기 및 이러한 수신에 응답하는 프로세서를 포함하는 무선 디바이스가 개시된다. 이러한 프로세서는, 제 1 메모리 및 이러한 제 1 메모리에 응답하는 인터리빙된(interleaved) 다중-스테이지 데이터 프로세싱 파이프라인을 포함한다. 이러한 프로세서는, 인터리빙된 다중-스테이지 데이터 프로세싱 파이프라인에서 사용가능한 스테이지들의 개수보다 적은 스테이지들을 이용하여 명령이 실행될 수 있는 시기를 결정하기 위해 명령을 디코딩하도록 적응된다. 이러한 프로세서는 또한, 명령의 실행 동안 인터리빙된 다중-스테이지 데이터 프로세싱 파이프라인의 적어도 하나의 스테이지를 스킵하도록 적응된다. 이러한 프로세서는, 디코딩된 명령의 실행 동안 적어도 하나의 스킵되지 않은 스테이지를 실행하도록 더 적응된다.
제시된 디바이스들 및 방법들의 하나의 특별한 장점은 스킵된 사이클 동안 전력이 절약될 수 있다는 점이다. 제시된 디바이스들 및 방법들의 또 다른 특별한 장점은 휴대용 디바이스의 배터리 수명이 연장될 수 있다는 점이다.
본 개시내용의 다른 양상들, 장점들 및 특징들은 다음의 부분들을 포함한 전체 출원의 리뷰 후에 명백해질 것이다: 도면의 간단한 설명, 발명을 실시하기 위한 구체적인 내용, 및 청구범위.
도 1은 다중-스테이지 데이터 프로세싱 파이프라인에서 명령들을 실행하기 위한 시스템의 실시예에 대한 블록 다이어그램이다.
도 2는 다중-스테이지 데이터 프로세싱 파이프라인에서 명령들을 실행하기 위한 시스템의 또 다른 실시예에 대한 블록 다이어그램이다.
도 3은 다중-스테이지 데이터 프로세싱 파이프라인에서 명령들을 실행하는 방법의 실시예에 대한 흐름도(flow chart)이다.
도 4는, 도 1 내지 도 3에 대하여 제시된 것과 같이, 다중-스테이지 데이터 프로세싱 파이프라인에서 명령들을 실행하기 위한 디바이스 및 다중-스테이지 데이터 프로세싱 파이프라인에서 명령들을 실행하는 방법을 이용할 수 있는 휴대용 통신 디바이스의 예시적인 실시예이다.
도 1은 프로세서(100)의 예시적이고, 비-제한적인 실시예에 대한 블록 다이어그램을 도시한다. 도 1에 도시된 것처럼, 이러한 프로세서(100)는 명령 캐시(cache)(134)에 결합되는 메모리(102)를 포함한다. 이러한 명령 캐시(134)는 버스(130)를 통해 현재의 명령 레지스터들(current instruction registers; CIRs)(136, 138, 140, 142, 144 및 146)에 결합된다. 각각의 CIR들(136 내지 146)은 멀티-스레드형(multi-threaded) 프로세서 내의 특정 스레드와 연관될 수 있다. 특정 실시예에서 이러한 프로세서(100)는, 각각의 CIR들(136 내지 146)이 인터리빙된 멀티-스레드형 프로세서의 하나의 스레드를 포함하는, 6개의 스레드들을 갖는 인터리빙된 멀티-스레드형 프로세서이다.
CIR들(136 내지 146)은 버스(107)를 통해 시퀀서(sequencer; 104)에 결합된다. 특정 실시예에서, 이러한 버스(107)는 64 비트 버스이고, 시퀀서(104)는 32 비트의 길이를 갖는 메모리(102)로부터 명령들을 리트리빙(retrieve)하도록 구성된다. 이러한 버스(107)는 제 1 명령 실행 유닛(108), 제 2 명령 실행 유닛(110), 제 3 명령 실행 유닛(112), 및 제 4 명령 실행 유닛(114)에 결합된다. 도 1은, 각각의 명령 실행 유닛(108, 110, 112, 114)이 제 1 버스(118)를 통해 범용 레지스터 파일(116)에 결합될 수 있음을 나타낸다. 범용 레지스터 파일(116)은 또한 제 2 버스(120)를 통해 시퀀서(104) 및 메모리(102)에 결합된다.
특정 실시예에서, 메모리(102)는 내용 주소화 메모리(content addressable memory; CAM)이고 명령 캐시(134)는 다수의 명령들, 각각의 명령에 대한 명령 스티어링(steering) 데이터, 및 각각의 명령에 대한 명령 프리-코드(pre-code) 데이터를 포함할 수 있다. 동작하는 동안, CIR들(136 내지 146)은 명령 캐시(134)로부터 명령들을 풀링(pull)하고 CIR들(136 내지 146)은 시퀀서(104)에 의해 서로 독립적으로 액세스될 수 있다.
특정 실시예에서, 시퀀서(104)는 단일(simple) 명령 실행 유닛(105)을 포함한다. 시퀀서(104)는 또한 전력 제어 로직 회로(106)를 포함한다. 나아가 시퀀서(104)는, 단일 명령 실행 유닛(105) 및 전력 제어 로직 회로(106)가 언제 선택적으로 활성화될 수 있는지를 프로세서(100)가 결정하도록 허용하는 제어 레지스터(103)에 결합될 수 있다.
도 1에 도시된 것처럼, 범용 레지스터(116)는 제 1 통합(unified) 레지스터 파일(148), 제 2 통합 레지스터 파일(150), 제 3 통합 레지스터 파일(152), 제 4 통합 레지스터 파일(154), 제 5 통합 레지스터 파일(156), 및 제 6 통합 레지스터 파일(158)을 포함한다. 각각의 통합 레지스터 파일(148, 150, 152, 154, 156, 158)은 CIR들(136 내지 146) 중 하나에 대응한다. 또한 특정 실시예에서, 각각의 통합 레지스터 파일(148, 150, 152, 154, 156, 158)은 동일한 구조를 가지고 동일한 수의 데이터 피연산자(operand)들 주소 피연산자들을 포함한다.
프로세서(100)의 동작 동안, 명령들은 버스(130)를 통해 CIR들(136 내지 146)에 의해 명령 캐시(134)로부터 인출(fetch)된다. 명령들은 그 후 시퀀서에 의해 처리되고, 지정된 명령 실행 유닛들(108, 110, 112, 114)로 전송되며, 명령 실행 유닛들(108, 110, 112, 114)에서 실행된다. 각각의 명령 실행 유닛(108, 110, 112, 114)에서의 결과물들은 범용 레지스터(116), 즉 통합 레지스터 파일들(148, 150, 152, 154, 156, 158) 중 하나에 기록될 수 있다.
특정 실시예에서 시퀀서(104)는, 제어 레지스터(103)에서의 값에 기초하여 단일 명령 실행 유닛(105)을 선택적으로 인에이블(enable)시킬 수 있다. 인에이블될 때 단일 명령 실행 유닛(105)은, 다중-스테이지 데이터 프로세싱 파이프라인에서 사용가능한 스테이지들의 개수보다 적은 스테이지들을 이용하여 명령이 실행될 수 있는 시기를 결정하기 위하여, 선택된 CIR로부터 명령들을 디코딩할 수 있다. 단일 명령 실행 유닛(105)은 그 후, 디코딩된 명령의 실행 동안 다중-스테이지 데이터 프로세싱 파이프라인의 적어도 하나의 스테이지를 스킵할 수 있다. 파이프라인의 스테이지를 스킵하기 위해 프로세서(100)는, 명령을 실행할 스테이지까지, 스킵된 스테이지(들)의 사이클들 동안 각각의 CIR에서 명령을 홀딩(hold)할 수 있다. 단일 명령 실행 유닛(105)은 또한, 디코딩된 명령의 실행 동안 적어도 하나의 스킵되지 않은 스테이지를 실행할 수 있다.
특정 실시예에서, 전력 제어 로직 회로(106)는 스킵된 스테이지 동안 다중-스테이지 데이터 프로세싱 파이프라인으로의 전력을 감소시킬 수 있다. 전력을 감소시키는 것은 스킵된 스테이지로의 동적(dynamic) 전력을 턴오프(turn off)시키는 것, 스킵된 스테이지로의 정적(static) 전력을 턴오프시키는 것, 또는 양자 모두를 포함할 수 있다. 전력 제어 로직 회로(106)는 스킵되지 않을 다중-스테이지 데이터 프로세싱 파이프라인의 스테이지의 실행 이전에, 공칭(nominal) 동작 레벨로 전력을 회복시킬 수 있다.
도 2는 다중-스테이지 데이터 프로세싱 파이프라인에서 명령들을 실행하기 위한 시스템(200)의 또 다른 실시예에 대한 블록 다이어그램을 도시한다. 특정 실시예에서 이러한 시스템(200)은, 도 1에서 도시된 프로세서(100)와 같이, 멀티-스레드형 프로세서에서 구현될 수 있다. 예를 들어, 다중-스테이지 데이터 프로세싱 파이프라인은 시퀀서(104) 및 실행 유닛들(108, 110, 112 및 114) 중 하나 이상을 포함할 수 있다. 다중-스테이지 데이터 프로세싱 파이프라인은, CIR(136)과 같은 CIR로부터 명령을 인출(fetch)할 수 있고 명령을 처리할 수 있으며 레지스터 파일(148)과 같은 레지스터 파일에 결과를 저장할 수 있다.
특정 실시예에서 이러한 시스템(200)은, 각각의 스레드가 파이프라인의 각각의 스테이지에 대해 고정된 시간 슬롯을 가질 수 있는 인터리빙된 멀티-스레드형 프로세서에서 구현될 수 있다. 각각의 스레드가 그것의 할당된 시간 슬롯을 사용할 때, 스레드들 사이에 어떠한 충돌도 없다. 인터리빙된 프로세싱을 구현하지 않는 다른 아키텍처(architecture)들은 시스템(200)을 구현할 수 있지만, 스레드들 사이에 충돌이 존재할 수 있다. 이러한 다른 아키텍처들은 충돌 해결 기술을 구현해야 할지도 모른다.
다중-스테이지(multiple stage) 명령 실행 파이프라인에서, 몇몇의 명령들은 명령을 실행하기 위해 파이프라인에서 사용가능한 하드웨어 모두를 요구하지는 않는다. 특정 실시예에서, 명령 실행 파이프라인은 파이프라인에서 하나 이상의 스테이지들을 스킵할 수 있고 명령을 실행하기 위해 필수적인 그러한 스테이지들만 실행할 수 있다. 파이프라인의 스테이지를 스킵하기 위해, 명령을 실행할 스테이지까지 스킵된 스테이지(들)에 대한 사이클들 동안, 명령은 각각의 CIR에 홀딩될 수 있다. 홀딩 사이클들은 제어기 또는 이산적인 타이밍 회로와 같은 제어 로직에 의해 결정될 수 있다. 또 다른 특정 실시예에서 명령 실행 파이프라인은, 완전한 명령을 실행하기 위해 필수적인 단일 스테이지의 하드웨어의 일부만을 실행할 수도 있다. 실행된 스테이지들 또는 스테이지의 일부는 다중-스테이지 명령 실행 파이프라인의 임의의 스테이지일 수 있다. 시스템(200)은 다중-스테이지 명령 실행 파이프라인의 스테이지들 모두보다 적은 스테이지들을 이용하여 명령을 실행할 수 있는 파이프라인들에 대한 3개의 예들을 제공한다. 명령 실행 파이프라인의 스테이지들을 스킵하는 것은, 각각의 스레드가 파이프라인의 각각의 스테이지에 대해 고정된 시간 슬롯을 가질 수 있는 인터리빙된 멀티-스레드형 프로세서에서 특히 제대로 작동할 수 있다.
시스템(200)은 제 1 현재의 명령 레지스터(CIR; 202)를 포함한다. 제 1 CIR(202)은 멀티-스레드형 프로세서의 제 1 스레드와 연관될 수 있다. 제 1 CIR(202)은, 명령을 실행하기 위한 다수의 스테이지들을 가진 제 1 명령 실행 파이프라인을 포함하는 제 1 멀티플렉서(multiplexer; 204) 및 제 2 멀티플렉서(206)에 결합될 수 있다. 제 1 CIR(202)은 또한 제 3 멀티플렉서(230), 제 4 멀티플렉서(238), 제 5 멀티플렉서(260), 및 제 6 멀티플렉서(270)에 결합될 수 있다. 특정 실시예에서, 각각의 명령 실행 파이프라인은 명령의 실행을 위해 사용가능한 6개의 스테이지들을 가질 수 있다. 인터리빙된 멀티-스레드형 프로세서 내의 명령 실행 파이프라인에서의 각각의 스테이지는 파이프라인에서 실행하기 위해 고정된 시간 슬롯을 가질 수 있다. 제 1 멀티플렉서(204) 및 제 2 멀티플렉서(206) 양자 모두는, 제 1 명령 실행 파이프라인이 어느 CIR로부터 명령을 수신할 것인지를 선택하기 위해 제어 라인(205)을 가질 수 있다. 이러한 제어 라인(205)은, 멀티-스레드형 프로세서의 단일 스레드를 선택하기 위해, 도 1에서 도시된 시퀀서(104)와 같이, 제어 로직 회로에 결합될 수 있다.
제 1 명령 실행 파이프라인은 제 1 스테이지(210), 제 2 스테이지(212), 제 3 스테이지(214), 제 4 스테이지(216), 제 5 스테이지(218), 및 제 6 스테이지(220)를 포함한다. 제 1 명령 실행 파이프라인은 멀티플렉서(224)를 통해 선택될 수 있는 2개의 동작 모드들을 가진다. 제 1 동작 모드는, 제 1 스테이지(210), 제 2 스테이지(212), 제 3 스테이지(214), 제 4 스테이지(216), 제 5 스테이지(218), 및 제 6 스테이지(220)에서 명령을 실행하는 것을 포함한다. 제 2 동작 모드는, 전력 절약 모드(power savings mode; 221) 동안 제 1 스테이지(210), 제 2 스테이지(212), 제 3 스테이지(214), 제 4 스테이지(216), 제 5 스테이지(218)를 스킵하고 그 후 제 6 스테이지(220)를 실행하는 것을 포함한다. 전력 절약 모드(221)는, 스테이지들의 실행을 위해 사용되는 하나 이상의 클록(clock) 사이클들의 길이 동안일 수 있다. 전력 절약 모드의 길이는 실행될 명령에 기초하여 가변적일 수 있다. 멀티플렉서(224)는 선택적으로, 제 2 동작 모드 동안 제 1 CIR(202)로부터의 명령을 제 6 스테이지(220)의 입력으로 제공하거나, 제 1 동작 모드 동안 제 5 스테이지(218)로부터의 출력을 제 6 스테이지(220)의 입력으로 제공할 수 있다. 멀티플렉서(224)는, 제 1 동작 모드가 선택되는지 또는 제 2 동작 모드가 선택되는지를 선택하기 위해 제어 라인(223)을 가질 수 있다. 제어 라인(223)은, 제 1 동작 모드 또는 제 2 동작 모드를 선택하기 위해, 도 1에서 도시된 시퀀서(104)와 같이, 제어 로직 회로에 결합될 수 있다. 제 6 스테이지(220)의 출력은 레지스터 파일(226)에 결합될 수 있다.
특정 예시적인 실시예에서, 시스템(200)은 또한 멀티-스레드형 프로세서의 제 2 스레드와 연관된 제 2 CIR(228)을 포함할 수 있다. 제 2 CIR(228)은 제 1 멀티플렉서(204), 제 2 멀티플렉서(206), 제 3 멀티플렉서(230), 제 4 멀티플렉서(238), 및 제 5 멀티플렉서(260)에 결합될 수 있다. 제 3 멀티플렉서(230) 및 제 4 멀티플렉서(238)는 명령을 실행하기 위한 다수의 스테이지들을 가진 제 2 명령 실행 파이프라인을 포함한다. 제 3 멀티플렉서(230) 및 제 4 멀티플렉서(238)는 각각, 제 2 명령 실행 파이프라인이 어느 CIR로부터 명령을 수신할 것인지를 선택하기 위해 제어 라인(229)을 가진다. 이러한 제어 라인(229)은 멀티-스레드형 프로세서의 단일 스레드를 선택하기 위해 제어 로직 회로에 결합될 수 있다.
제 2 명령 실행 파이프라인은 제 1 스테이지(240), 제 2 스테이지(242), 제 3 스테이지(244), 제 4 스테이지(246), 제 5 스테이지(248), 및 제 6 스테이지(250)를 포함한다. 제 2 스테이지 명령 실행 파이프라인은 멀티플렉서(252)를 통해 선택될 수 있는 2개의 동작 모드들을 가진다. 제 1 동작 모드는, 제 1 스테이지(240), 제 2 스테이지(242), 제 3 스테이지(244), 제 4 스테이지(246), 제 5 스테이지(248), 및 제 6 스테이지(250)에서 명령을 실행하는 것을 포함한다.
제 2 동작 모드는, 전력 절약 모드(232) 동안 제 1 스테이지(240), 제 2 스테이지(242), 및 제 3 스테이지(244)를 스킵하고 그 후 제 4 스테이지(246), 제 5 스테이지(248), 및 제 6 스테이지(250)를 실행하는 것을 포함한다. 전력 절약 모드(232)는, 스킵된 스테이지들의 실행을 위해 사용되는 하나 이상의 클록 사이클들의 길이 동안일 수 있다. 전력 절약 모드의 길이는 실행될 명령에 기초하여 가변적일 수 있다. 멀티플렉서(252)는 선택적으로, 제 2 동작 모드 동안 제 2 CIR(228)로부터의 명령을 제 4 스테이지(246)의 입력으로 제공하거나, 제 1 동작 모드 동안 제 3 스테이지(244)로부터의 출력을 제 4 스테이지(246)의 입력으로 제공할 수 있다. 멀티플렉서(252)는, 제 1 동작 모드가 선택되는지 또는 제 2 동작 모드가 선택되는지를 선택하기 위해 제어 라인(251)을 가질 수 있다. 제어 라인(251)은, 제 1 동작 모드 또는 제 2 동작 모드를 선택하기 위해, 도 1에서 도시된 시퀀서(104)와 같이, 제어 로직 회로에 결합될 수 있다. 제 6 스테이지(250)의 출력은 레지스터 파일(226)에 결합될 수 있다.
또 다른 특정 예시적인 실시예에서, 시스템(200)은 제 5 멀티플렉서(260) 및 제 6 멀티플렉서(270)를 포함하는 제 3 명령 실행 파이프라인을 가질 수 있다. 제 5 멀티플렉서(260) 및 제 6 멀티플렉서(270)는, 제 3 명령 실행 파이프라인이 어느 CIR로부터 명령을 수신할 것인지를 선택하기 위해 제어 라인(262)을 가질 수 있다. 제어 라인(262)은 멀티-스레드형 프로세서의 단일 스레드를 선택하기 위해 제어 로직 회로에 결합될 수 있다.
제 3 명령 실행 파이프라인은 제 1 스테이지(272), 제 2 스테이지(274), 제 3 스테이지(276), 제 4 스테이지(278), 제 5 스테이지(280), 및 제 6 스테이지(282)를 포함한다. 제 3 명령 실행 파이프라인은 멀티플렉서(268)를 통해 선택될 수 있는 2개의 동작 모드들을 가진다. 멀티플렉서(268)는, 제 1 동작 모드가 선택되는지 또는 제 2 동작 모드가 선택되는지를 선택하기 위해 제어 라인(269)을 가질 수 있다. 제어 라인(269)은, 제 1 동작 모드 또는 제 2 동작 모드를 선택하기 위해, 도 1에서 도시된 시퀀서(104)와 같이, 제어 로직 회로에 결합될 수 있다.
제 1 동작 모드는, 제 1 스테이지(272), 제 2 스테이지(274), 제 3 스테이지(276), 제 4 스테이지(278), 제 5 스테이지(280), 및 제 6 스테이지(282)에서 명령을 실행하는 것을 포함한다. 제 2 동작 모드는 명령 실행 스테이지(266)를 포함한다. 명령 실행 스테이지(266)는 제 3 명령 실행 파이프라인의 임의의 스테이지 또는 스테이지의 일부일 수 있다. 명령 실행 스테이지(266) 이외의 파이프라인의 스테이지들은 스킵될 수 있고, 에너지를 보존하기 위해 전력 절약 모드(264)가 구현될 수 있다. 예를 들어, 6 스테이지 파이프라인에서, 명령 실행 스테이지(266)는 제 3 명령 실행 파이프라인의 제 3 스테이지 또는 제 3 스테이지의 일부일 수 있다; 따라서, 제 1 스테이지, 제 2 스테이지, 제 4 스테이지, 제 5 스테이지, 및 제 6 스테이지는 스킵될 수 있고 이러한 스테이지들이 실행되었을 시간 동안 전력 절약 모드가 구현될 수 있다. 멀티플렉서(268)는 선택적으로, 제 1 동작 모드의 출력 또는 제 2 동작 모드의 출력을 레지스터 파일(226)에 제공할 수 있다.
특정 실시예에서, 시스템(200)은 2개의 스레드들을 가진 실시예를 도시하지만 시스템(200)은 임의의 수의 스레드들을 지원하도록 확장될 수 있다. 특정 실시예에서, 시스템(200)은 6개의 스레드들을 포함한다.
동작하는 동안, 제 1 명령 실행 파이프라인에서 사용가능한 스테이지들의 개수보다 적은 스테이지들을 이용하여 명령이 실행될 수 있는 시기를 결정하기 위해 CIR(202)로부터의 제 1 명령이 디코딩될 수 있다. 명령의 op코드(opcode)는, 명령을 실행하기 위해 필요한 스테이지들의 개수를 결정하기 위해 판독될 수 있다. 특정 실시예에서, 명령은 기록 전용(write only) 명령일 수 있다. 또 다른 특정 실시예에서, 명령은 레지스터 파일 판독(read)을 포함하지 않는 명령일 수 있다. 또 다른 특정 실시예에서, 명령은 결합(combine) 명령일 수 있다.
제 1 명령 실행 파이프라인에서 사용가능한 스테이지들의 개수보다 적은 스테이지들을 이용하고 제 2 동작 모드에서 사용가능한 스테이지들만을 이용하여 명령이 실행될 수 있을 때, 제어 라인(223)은 명령의 실행을 위하여 제 2 동작 모드를 선택하도록 활성화될 수 있다. 제 1 CIR(202)은 그 후 제 1 멀티플렉서(204)로 명령을 전달(pass)할 수 있다. 제어 라인(205)이 제 1 CIR(202)에 대응하는 스레드를 선택할 때, 제 1 멀티플렉서(204)는 제 1 CIR(202)로부터의 명령을 멀티플렉서(224)로 제공할 수 있다.
제 1 파이프라인의 제 2 동작 모드 동안에 명령을 실행하는 동안, 명령을 실행하기 위해 필요하지 않은 스테이지들에 의해 소모되는 전력을 줄이기 위해서, 시스템(200)은 전력 절약 모드(221)로 진입함으로써 제 1 명령 실행 파이프라인으로의 전력을 감소시킬 수 있다. 전력 절약 모드(221)는 파워 다운(power down) 스테이지 동안 동적 전력을 턴오프시키는 것, 파워 다운 스테이지 동안 정적 전력을 턴오프시키는 것, 또는 양자 모두를 포함할 수 있다. 이러한 전력은 실행될 필요가 있는 스테이지 이전에 동작 레벨로 회복될 수 있다. 전력 절약 모드(221)가 종료된 후, 제 6 스테이지(220)는 명령을 실행할 수 있고, 레지스터 파일(226)에 제공되도록 멀티플렉서(224)에 대한 출력을 제공할 수 있다. 인터리빙된 멀티-스레드형 프로세서에서, 스킵된 스테이지들 및 제 6 스테이지(220)에 할당된 시간 슬롯들에 기초하여 전력 절약 모드(221)가 종료될 수 있다. 특정 실시예에서, 제 6 스테이지(220)는 레지스터 파일 기록 실행을 포함할 수 있다.
제 1 명령 실행 파이프라인에서 스테이지들의 개수보다 적은 스테이지들을 이용하여 명령이 실행될 수 없을 때, 제어 라인(223)은 명령을 실행하기 위해 제 1 동작 모드를 선택하도록 활성화된다. 제 1 CIR(202)은 그 후 제 2 멀티플렉서(206)로 명령을 전달할 수 있다. 제 2 멀티플렉서(206)는 명령을 실행하기 위해, 제 1 CIR(202)로부터의 명령을 명령 실행 스테이지(210)에 제공한다. 이러한 명령은 그 후, 레지스터 파일(226)에 저장될 출력을 전송하기 전에 명령 실행 스테이지들(210, 212, 214, 216, 218 및 220)에 의해 실행될 수 있다.
제 2 CIR(228)로부터의 명령들은 제 1 CIR(202)에 관해 위에서 기술된 것과 유사하게 실행될 수 있다. 추가적으로, 제 3 멀티플렉서(230), 제 4 멀티플렉서(238), 제 2 명령 실행 파이프라인, 및 멀티플렉서(252)의 동작은 위에서 기술된 것과 유사하게 작동될 수 있다. 그러나, 도 2에 도시된 것처럼, 제 2 명령 실행 파이프라인의 제 2 동작 모드는 실행될 수 있는 3개의 스테이지들(제 4 스테이지(246), 제 5 스테이지(248), 및 제 6 스테이지(250))을 가진다.
제 3 명령 실행 파이프라인은 또한 위에서 기술된 것과 유사하게 작동될 수 있다. 제 3 명령 실행 파이프라인의 제 1 동작 모드에서 사용가능한 스테이지들의 개수보다 적은 스테이지들을 이용하여 CIR로부터의 명령이 실행될 수 있고 제 2 동작 모드에서의 실행을 위해 사용가능한 스테이지, 스테이지들, 또는 스테이지의 일부만을 이용하여 명령이 실행될 수 있을 때, 제 2 동작 모드는 멀티플렉서(268)에 의해 선택될 수 있다. 제 3 명령 실행 파이프라인의 제 2 동작 모드를 이용하여 CIR로부터의 명령이 실행될 수 없을 때는, 제 1 동작 모드가 멀티플렉서(268)에 의해 선택될 수 있다.
도 3은 다중-스테이지 데이터 프로세싱 파이프라인에서 명령을 실행하는 방법(300)의 실시예에 대한 흐름도를 도시한다. 이러한 방법(300)은, 302에서, 다중-스테이지 데이터 프로세싱 파이프라인에서 사용가능한 스테이지들의 개수보다 적은 스테이지들을 이용하여 명령이 실행될 수 있는 시기를 결정하기 위해 명령을 디코딩하는 것을 포함한다. 특정 실시예에서, 이러한 디코딩은 명령의 실행 이전에 수행된다. 또 다른 특정 실시예에서, 이러한 디코딩은 명령의 op코드를 식별함으로써 명령을 결정하는 것을 포함한다. 또 다른 특정 실시예에서, 명령은 현재의 명령 레지스터(CIR)로부터 수신된다.
방법(300)은 또한 304에서, 디코딩된 명령의 실행 동안 다중-스테이지 데이터 프로세싱 파이프라인의 적어도 하나의 스테이지를 스킵하는 것을 포함한다. 이러한 적어도 하나의 스킵된 스테이지는 다중-스테이지 데이터 프로세싱 파이프라인의 제 1 스테이지, 마지막 스테이지, 또는 제 1 스테이지와 마지막 스테이지 사이에 있는 스테이지일 수 있다.
이러한 방법은 306에서, 디코딩된 명령의 실행 동안 적어도 하나의 스킵되지 않은 스테이지를 실행하는 것을 더 포함한다. 특정 실시예에서, 명령은 기록 전용 명령일 수 있다. 또 다른 특정 실시예에서, 명령은 레지스터 파일 판독을 포함하지 않는 명령일 수 있다. 또 다른 특정 실시예에서, 명령은 결합 명령일 수 있다.
특정 실시예에서 방법(300)은, 308에서, 적어도 하나의 스킵되지 않은 스테이지 동안 다중-스테이지 데이터 프로세싱 파이프라인으로의 전력을 감소시키는 것을 포함한다. 또 다른 특정 실시예에서, 전력을 감소시키는 것은 적어도 하나의 스킵된 스테이지로의 동적 전력을 턴오프시키는 것을 포함할 수 있다. 또 다른 특정 실시예에서, 전력을 감소시키는 것은 또한 적어도 하나의 스킵된 스테이지로의 정적 전력을 턴오프시키는 것을 포함할 수 있다. 이러한 방법(300)은 스킵되지 않을 다중-스테이지 데이터 프로세싱 파이프라인의 스테이지 이전에 전력을 증가시키는 것을 포함할 수 있다.
특정 실시예에서, 다중-스테이지 데이터 프로세싱 파이프라인은 인터리빙된 멀티-스레드형 프로세서 내의 다수의 다중-스테이지 데이터 프로세싱 파이프라인들 중 하나일 수 있다. 또한, 다중-스테이지 데이터 프로세싱 파이프라인은 다수의 스레드들 중 적어도 하나로부터 명령을 수신하도록 적응될 수 있다.
도 4는, 도 1 내지 도 3에 관해 기술된 것과 같이, 다중-스테이지 데이터 프로세싱 파이프라인에서 명령들을 실행하기 위한 디바이스 및 다중-스테이지 데이터 프로세싱 파이프라인에서 명령들을 실행하는 방법을 이용할 수 있는 휴대용 통신 디바이스의 예시적이고, 비-제한적인 실시예를 도시하고, 일반적으로 400으로 지정된다. 휴대용 통신 디바이스(400)는, (도 1 내지 도 3에 관해 기술된 것처럼) 단일 명령 실행 유닛(412) 및 전력 제어 로직(414)을 가진 디지털 신호 프로세서(410)와 같은, 프로세서를 포함하는 온-칩(on-chip) 시스템(422)을 포함한다. 도 4는 또한 디지털 신호 프로세서(410) 및 디스플레이(428)에 결합될 수 있는 디스플레이 제어기(426)를 도시한다. 또한, 입력 디바이스(430)가 디지털 신호 프로세서(410)에 결합될 수 있다. 부가적으로, 메모리(432)가 디지털 신호 프로세서(410)에 결합된다. 코더/디코더(CODEC; 434)이 또한 디지털 신호 프로세서(410)에 결합될 수 있다. 스피커(436) 및 마이크로폰(438)이 CODEC(434)에 결합될 수 있다.
도 4는 또한 무선 제어기(440)가 디지털 신호 프로세서(410) 및 무선 안테나(442)에 결합될 수 있음을 나타낸다. 특정 실시예에서, 전력 공급기(power supply; 444)가 온-칩 시스템(422)에 결합될 수 있다. 특정 실시예에서, 도 4에서 도시된 것처럼, 디스플레이(428), 입력 디바이스(430), 스피커(436), 마이크로폰(438), 무선 안테나(442), 및 전력 공급기(444)는 온-칩 시스템(422)의 외부에 있다. 그러나, 각각은 온-칩 시스템(422)의 컴포넌트에 결합된다.
특정 예시적인 실시예에서 단일 명령 실행 유닛(412)은, 다중-스테이지 데이터 프로세싱 파이프라인에서 사용가능한 스테이지들의 개수보다 적은 스테이지들을 이용하여 명령이 실행될 수 있는 시기를 결정하기 위해 명령을 디코딩할 수 있다. 단일 명령 실행 유닛(412)은 그 후, 디코딩된 명령의 실행 동안 다중-스테이지 데이터 프로세싱 파이프라인의 적어도 하나의 스테이지를 스킵할 수 있다. 단일 명령 실행 유닛(412)은 또한, 디코딩된 명령의 실행 동안 적어도 하나의 스킵되지 않은 스테이지를 실행할 수 있다. 또 다른 특정 실시예에서, 전력 제어 로직(414)은 적어도 하나의 스킵된 스테이지 동안 다중-스테이지 데이터 프로세싱 파이프라인으로의 전력을 감소시킬 수 있다. 전력을 감소시키는 것은 적어도 하나의 스킵된 스테이지로의 동적 전력을 턴오프시키는 것을 포함할 수 있다. 전력을 감소시키는 것은 또한 적어도 하나의 스킵된 스테이지로의 정적 전력을 턴오프시키는 것을 포함할 수 있다. 전력 제어 로직(414)은 스킵되지 않을 다중-스테이지 데이터 프로세싱 파이프라인의 스테이지에서의 실행 이전에 전력을 증가시킬 수 있다.
당업자는 본원에 개시된 실시예들과 관련하여 상술한 다양한 예시적인 논리블록들, 구성들, 모듈들, 회로들, 및 알고리즘 단계들이 전자 하드웨어, 컴퓨터 소프트웨어, 또는 이들의 조합으로서 구현될 수 있음을 잘 이해할 것이다. 하드웨어 및 소프트웨어의 상호 호환성을 명확히 하기 위해, 다양한 예시적인 소자들, 블록들, 구성들, 모듈들, 회로들, 및 단계들이 일반적으로 그들의 기능적 관점에서 기술되었다. 이러한 기능이 하드웨어로 구현되는지, 또는 소프트웨어로 구현되는지는 특정 애플리케이션 및 전체 시스템에 대해 부가된 설계 제한들에 의존한다. 당업자는 이러한 기능들을 각각의 특정 애플리케이션에 대해 다양한 방식으로 구현할 수 있지만, 이러한 구현 결정들이 본 개시내용의 영역을 벗어나는 것이라고 해석되어서는 안 된다.
본원에 개시된 실시예들과 관련하여 기재된 방법 또는 알고리즘의 단계들은 하드웨어에서, 프로세서에 의해 실행되는 소프트웨어 모듈에서, 또는 이들의 조합에 의해 직접 구현될 수 있다. 소프트웨어 모듈은 랜덤 액세스 메모리(RAM), 플래시 메모리, 판독 전용 메모리(ROM), 프로그램가능 ROM (PROM), 전기적 프로그램 가능한 ROM(EPROM), 전기적 삭제가능한 프로그램 가능 ROM(EEPROM), 레지스터들, 하드디스크, 휴대용 디스크, 콤팩트 디스크 ROM(CD-ROM), 또는 당업계에서 공지된 저장 매체의 임의의 다른 형태에 상주할 수 있다. 예시적인 저장매체는 프로세서와 결합되어, 프로세서는 저장매체로부터 정보를 판독하고 저장매체에 정보를 기록할 수 있다. 대안적으로, 저장 매체는 프로세서의 구성요소일 수 있다. 이러한 프로세서 및 저장매체는 ASIC에 상주할 수 있다. ASIC은 컴퓨팅 디바이스 또는 사용자 단말에 상주할 수 있다. 대안적으로, 프로세서 및 저장 매체는 컴퓨팅 디바이스 또는 사용자 단말 내에 이산 컴포넌트로서 상주할 수 있다.
개시된 실시예들에 대한 이상의 설명은 임의의 본 발명의 기술 분야에서 통상의 지식을 가진 자가 개시된 실시예들을 이용하거나 또는 실시할 수 있도록 제공된다. 이러한 실시예들에 대한 다양한 변형들은 본 발명의 기술 분야에서 통상의 지식을 가진 자에게 명백할 것이며, 여기에 정의된 일반적인 원리들은 본 발명의 사상 및 범위를 벗어남이 없이 다른 실시예들에 적용될 수 있다. 그리하여, 본 발명은 여기에 제시된 실시예들로 한정되는 것으로 의도되지 않고, 청구범위에 의해 정의되는 바와 같이, 이러한 원리들 및 신규한 특징들과 일관되는 가능한 최광의의 범위에서 해석되어야 할 것이다.

Claims (31)

  1. 방법으로서,
    다중-스테이지(multi-stage) 데이터 프로세싱 파이프라인(pipeline)에서 사용가능한 스테이지들의 개수보다 적은 스테이지들을 이용하여 명령이 실행될 수 있는 시기를 결정하기 위해 상기 명령을 디코딩(decoding)하는 단계;
    상기 디코딩된 명령의 실행 동안 상기 다중-스테이지 데이터 프로세싱 파이프라인의 적어도 하나의 스테이지를 스킵(skip)하는 단계; 및
    상기 디코딩된 명령의 실행 동안 적어도 하나의 스킵되지 않은(non-skipped) 스테이지를 실행하는 단계
    를 포함하는, 방법.
  2. 제 1 항에 있어서,
    상기 적어도 하나의 스킵된 스테이지 동안 상기 다중-스테이지 데이터 프로세싱 파이프라인으로의 전력을 감소시키는 단계를 더 포함하는,
    방법.
  3. 제 2 항에 있어서,
    상기 전력을 감소시키는 단계는 상기 적어도 하나의 스킵된 스테이지로의 동적(dynamic) 전력을 턴오프(turn off)시키는 단계를 포함하는,
    방법.
  4. 제 2 항에 있어서,
    상기 전력을 감소시키는 단계는 상기 적어도 하나의 스킵된 스테이지로의 정적(static) 전력을 턴오프시키는 단계를 포함하는,
    방법.
  5. 제 2 항에 있어서,
    스킵되지 않을 상기 다중-스테이지 데이터 프로세싱 파이프라인의 스테이지 이전에 전력을 증가시키는 단계를 더 포함하는,
    방법.
  6. 제 1 항에 있어서,
    상기 다중-스테이지 데이터 프로세싱 파이프라인의 적어도 하나의 스테이지를 스킵하는 단계는:
    스킵될 상기 적어도 하나의 스테이지에 기초한 시간 기간 동안 레지스터에 상기 디코딩된 명령을 홀딩(holding)하는 단계; 및
    상기 시간 기간의 종단에 관하여 상기 적어도 하나의 스킵되지 않은 스테이지로 상기 명령을 포워딩(forwarding)하는 단계
    를 더 포함하는, 방법.
  7. 제 1 항에 있어서,
    상기 디코딩하는 단계는 상기 명령의 실행 이전에 수행되는,
    방법.
  8. 제 1 항에 있어서,
    상기 적어도 하나의 스킵된 스테이지는 제 1 스테이지, 마지막 스테이지, 및 상기 제 1 스테이지와 상기 마지막 스테이지 사이에 있는 스테이지로 이루어진 그룹으로부터 선택된 스테이지인,
    방법.
  9. 제 1 항에 있어서,
    현재의(current) 명령 레지스터로부터 상기 명령을 수신하는 단계를 더 포함하는,
    방법.
  10. 제 1 항에 있어서,
    상기 다중-스테이지 데이터 프로세싱 파이프라인은 인터리빙된(interleaved) 멀티-스레딩(multi-threading) 프로세서 내의 다수의 다중-스테이지 데이터 프로세싱 파이프라인들 중 하나인,
    방법.
  11. 제 1 항에 있어서,
    상기 다중-스테이지 데이터 프로세싱 파이프라인은 다수의 스레드(thread)들 중 적어도 하나로부터 상기 명령을 수신하도록 적응된,
    방법.
  12. 제 1 항에 있어서,
    상기 디코딩하는 단계는 상기 명령을 식별하는 단계를 더 포함하는,
    방법.
  13. 제 1 항에 있어서,
    상기 명령은 기록 전용(write only) 명령을 포함하는,
    방법.
  14. 제 1 항에 있어서,
    상기 명령은 레지스터 파일 판독(read)을 포함하지 않는,
    방법.
  15. 제 1 항에 있어서,
    상기 명령은 결합(combine) 명령을 포함하는,
    방법.
  16. 디바이스로서,
    명령을 실행하기 위한 다수의 스테이지들을 가진 제 1 명령 실행 파이프라인; 및
    상기 제 1 명령 실행 파이프라인에 결합된 제어 로직 회로를 포함하고,
    상기 제어 로직 회로는:
    제 1 명령의 실행 동안 상기 제 1 명령 실행 파이프라인의 적어도 하나의 스테이지를 스킵하고; 그리고
    상기 제 1 명령의 실행 동안 적어도 하나의 스킵되지 않은 스테이지를 실행하도록 적응된,
    디바이스.
  17. 제 16 항에 있어서,
    상기 제어 로직 회로는 상기 적어도 하나의 스킵된 스테이지 동안 상기 제 1 명령 실행 파이프라인으로의 전력을 감소시키도록 더 적응되는,
    디바이스.
  18. 제 16 항에 있어서,
    상기 제어 로직 회로는 상기 다수의 스테이지들 모두 보다 적은 스테이지들을 이용하여 상기 제 1 명령이 실행될 수 있는 시기를 결정하기 위해 상기 제 1 명령을 디코딩하도록 더 적응되는,
    디바이스.
  19. 제 16 항에 있어서,
    상기 제 1 명령 실행 파이프라인은 6개의 스테이지들을 포함하는,
    디바이스.
  20. 제 16 항에 있어서,
    상기 제어 로직 회로는 적어도 하나의 멀티플렉서(multiplexer) 및 제어기를 포함하는,
    디바이스.
  21. 제 16 항에 있어서,
    상기 제 1 명령은 기록-전용 명령을 포함하는,
    디바이스.
  22. 제 16 항에 있어서,
    상기 제 1 명령은 판독-전용(read-only) 명령을 포함하는,
    디바이스.
  23. 제 16 항에 있어서,
    상기 제 1 명령 실행 파이프라인에 결합되고, 상기 명령에 기초하여 피연산자(operand)를 저장하도록 적응된 레지스터 파일을 더 포함하는,
    디바이스.
  24. 제 16 항에 있어서,
    명령들을 실행하기 위한 다수의 스테이지들을 가진 제 2 명령 실행 파이프라인을 더 포함하고,
    상기 제어 로직 회로는 상기 제 2 명령 실행 파이프라인에 결합되고, 상기 제 2 명령 실행 파이프라인에서 상기 제 1 명령의 실행 동안 상기 제 2 명령 실행 파이프라인의 적어도 하나의 스테이지를 스킵하도록 적응되는,
    디바이스.
  25. 제 24 항에 있어서,
    상기 제 1 명령 실행 파이프라인 및 상기 제 2 명령 실행 파이프라인에 결합된 레지스터 파일을 더 포함하는,
    디바이스.
  26. 디바이스로서,
    명령 실행 파이프라인;
    상기 명령 실행 파이프라인으로부터 데이터를 수신하도록 적응된 레지스터 파일; 및
    명령의 실행 동안 상기 명령 실행 파이프라인의 다수의 사용가능한 스테이지들 중 적어도 하나의 스테이지를 스킵하기 위한 수단
    을 포함하는, 디바이스.
  27. 제 26 항에 있어서,
    상기 명령 실행 파이프라인에 결합된 명령 레지스터를 더 포함하는,
    디바이스.
  28. 제 26 항에 있어서,
    상기 레지스터 파일은 통합(unified) 레지스터 파일인,
    디바이스.
  29. 제 26 항에 있어서,
    상기 적어도 하나의 스테이지를 스킵하는 동안 전력을 감소시키기 위한 수단을 더 포함하는,
    디바이스.
  30. 무선 디바이스로서,
    수신기; 및
    상기 수신기에 응답하는 프로세서를 포함하고,
    상기 프로세서는:
    제 1 메모리; 및
    상기 제 1 메모리에 응답하는 인터리빙된 다중-스테이지 데이터 프로세싱 파이프라인을 포함하고,
    상기 프로세서는:
    상기 인터리빙된 다중-스테이지 데이터 프로세싱 파이프라인에서 사용가능한 스테이지들의 개수보다 적은 스테이지들을 이용하여 명령이 실행될 수 있는 시기를 결정하기 위해 상기 명령을 디코딩하고;
    상기 명령의 실행 동안 상기 인터리빙된 다중-스테이지 데이터 프로세싱 파이프라인의 적어도 하나의 스테이지를 스킵하고; 그리고
    상기 디코딩된 명령의 실행 동안 적어도 하나의 스킵되지 않은 스테이지를 실행하도록 적응되는,
    무선 디바이스.
  31. 제 30 항에 있어서,
    상기 수신기에 결합된 안테나;
    상기 안테나에 결합된 송신기;
    상기 프로세서에 의해 액세스가능한(accessible) 제 2 메모리;
    상기 프로세서에 결합된 디스플레이 제어기; 및
    상기 프로세서에 결합된 오디오 코더/디코더(CODEC)
    을 더 포함하는, 무선 디바이스.
KR1020107007376A 2007-09-06 2008-09-04 다중-스테이지 데이터 프로세싱 파이프라인에서 명령들을 실행하는 시스템 및 방법 KR101132484B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/850,940 2007-09-06
US11/850,940 US8868888B2 (en) 2007-09-06 2007-09-06 System and method of executing instructions in a multi-stage data processing pipeline
PCT/US2008/075270 WO2009032936A1 (en) 2007-09-06 2008-09-04 System and method of executing instructions in a multi-stage data processing pipeline

Publications (2)

Publication Number Publication Date
KR20100058623A true KR20100058623A (ko) 2010-06-03
KR101132484B1 KR101132484B1 (ko) 2012-03-30

Family

ID=39580121

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020107007376A KR101132484B1 (ko) 2007-09-06 2008-09-04 다중-스테이지 데이터 프로세싱 파이프라인에서 명령들을 실행하는 시스템 및 방법

Country Status (6)

Country Link
US (1) US8868888B2 (ko)
EP (1) EP2034401B1 (ko)
JP (1) JP5318873B2 (ko)
KR (1) KR101132484B1 (ko)
CN (1) CN101821712B (ko)
WO (1) WO2009032936A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9417880B2 (en) 2013-03-15 2016-08-16 Intel Corporation Instruction for performing an overload check

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101493761B (zh) 2008-01-25 2013-05-29 国际商业机器公司 处理器流水线处理指令的方法及相应的处理器
US7945765B2 (en) * 2008-01-31 2011-05-17 International Business Machines Corporation Method and structure for asynchronous skip-ahead in synchronous pipelines
US8806181B1 (en) * 2008-05-05 2014-08-12 Marvell International Ltd. Dynamic pipeline reconfiguration including changing a number of stages
US7990974B1 (en) 2008-09-29 2011-08-02 Sonicwall, Inc. Packet processing on a multi-core processor
JP2010198128A (ja) * 2009-02-23 2010-09-09 Toshiba Corp プロセッサシステム
US8397238B2 (en) * 2009-12-08 2013-03-12 Qualcomm Incorporated Thread allocation and clock cycle adjustment in an interleaved multi-threaded processor
JP4829370B1 (ja) * 2010-07-09 2011-12-07 株式会社東芝 メモリ制御装置、メモリ装置および停止制御方法
US9030979B2 (en) * 2011-05-11 2015-05-12 Qualcomm Incorporated Reducing power consumption in multi-threaded processor mobile devices
CN104011703B (zh) * 2011-12-22 2017-04-12 英特尔公司 用于指定应用线程性能状态的指令的指令处理装置及相关方法
CN104104786B (zh) 2013-04-12 2016-09-28 中国银联股份有限公司 一种对外接载体持续供电的方法和终端设备
GB2526018B (en) 2013-10-31 2018-11-14 Silicon Tailor Ltd Multistage switch
GB2569098B (en) * 2017-10-20 2020-01-08 Graphcore Ltd Combining states of multiple threads in a multi-threaded processor
US11175921B2 (en) 2018-05-15 2021-11-16 International Business Machines Corporation Cognitive binary coded decimal to binary number conversion hardware for evaluating a preferred instruction variant based on feedback
GB2580316B (en) * 2018-12-27 2021-02-24 Graphcore Ltd Instruction cache in a multi-threaded processor
DE102019200256B4 (de) * 2019-01-10 2020-07-30 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Verschachteler

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS57168350A (en) 1981-04-09 1982-10-16 Mitsubishi Electric Corp Information processor
JPS5890247A (ja) 1981-11-25 1983-05-28 Nippon Telegr & Teleph Corp <Ntt> 情報処理装置のパイプライン制御方式
JPS63141131A (ja) 1986-12-04 1988-06-13 Toshiba Corp パイプライン制御方式
JPH0469895A (ja) 1990-07-10 1992-03-05 Mitsubishi Electric Corp 半導体記憶装置
US5471626A (en) 1992-05-06 1995-11-28 International Business Machines Corporation Variable stage entry/exit instruction pipeline
JPH05334081A (ja) 1992-06-02 1993-12-17 Kobe Nippon Denki Software Kk パイプライン処理方式
JPH06314196A (ja) 1993-04-30 1994-11-08 Hitachi Ltd 情報処理方法および装置
JP2857073B2 (ja) 1994-11-22 1999-02-10 松下電器産業株式会社 データ処理装置
JP3546980B2 (ja) * 1996-03-29 2004-07-28 松下電器産業株式会社 データ処理装置
US6247134B1 (en) * 1999-03-31 2001-06-12 Synopsys, Inc. Method and system for pipe stage gating within an operating pipelined circuit for power savings
JP3776644B2 (ja) * 1999-10-05 2006-05-17 富士通株式会社 パイプライン演算装置、情報処理装置およびパイプライン演算装置の演算方法
WO2001033351A1 (fr) * 1999-10-29 2001-05-10 Fujitsu Limited Architecture de processeur
US6609193B1 (en) 1999-12-30 2003-08-19 Intel Corporation Method and apparatus for multi-thread pipelined instruction decoder
US7107471B2 (en) * 2001-03-21 2006-09-12 Apple Computer, Inc. Method and apparatus for saving power in pipelined processors
JP2003316566A (ja) 2002-04-24 2003-11-07 Matsushita Electric Ind Co Ltd パイプラインプロセッサ
US7634668B2 (en) * 2002-08-22 2009-12-15 Nvidia Corporation Method and apparatus for adaptive power consumption
US7065665B2 (en) * 2002-10-02 2006-06-20 International Business Machines Corporation Interlocked synchronous pipeline clock gating
KR20070004705A (ko) 2004-03-10 2007-01-09 코닌클리즈케 필립스 일렉트로닉스 엔.브이. 전자 회로와 그 동작 방법

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9417880B2 (en) 2013-03-15 2016-08-16 Intel Corporation Instruction for performing an overload check
US10162640B2 (en) 2013-03-15 2018-12-25 Intel Corporation Instruction for performing an overload check

Also Published As

Publication number Publication date
EP2034401A1 (en) 2009-03-11
JP2010538398A (ja) 2010-12-09
US20090070602A1 (en) 2009-03-12
KR101132484B1 (ko) 2012-03-30
US8868888B2 (en) 2014-10-21
WO2009032936A1 (en) 2009-03-12
EP2034401B1 (en) 2013-01-30
CN101821712A (zh) 2010-09-01
CN101821712B (zh) 2014-11-12
JP5318873B2 (ja) 2013-10-16

Similar Documents

Publication Publication Date Title
KR101132484B1 (ko) 다중-스테이지 데이터 프로세싱 파이프라인에서 명령들을 실행하는 시스템 및 방법
US9235418B2 (en) Register files for a digital signal processor operating in an interleaved multi-threaded environment
US7814487B2 (en) System and method of executing program threads in a multi-threaded processor
KR101302611B1 (ko) 분기 예측에 이용하기 위한 다중-모드 레지스터 파일
US20060230253A1 (en) Unified non-partitioned register files for a digital signal processor operating in an interleaved multi-threaded environment
US9116685B2 (en) Table call instruction for frequently called functions
US8527797B2 (en) System and method of leakage control in an asynchronous system
US7849466B2 (en) Controlling execution mode of program threads by applying a mask to a control register in a multi-threaded processor
US8874884B2 (en) Selective writing of branch target buffer when number of instructions in cache line containing branch instruction is less than threshold
US20060230257A1 (en) System and method of using a predicate value to access a register file
US9678754B2 (en) System and method of processing hierarchical very long instruction packets
US9075620B2 (en) Instruction execution circuit

Legal Events

Date Code Title Description
A201 Request for examination
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: 20150227

Year of fee payment: 4

LAPS Lapse due to unpaid annual fee