KR20080028410A - 파이프라인 마이크로프로세서에서의 전력 절감을 위한시스템 및 방법 - Google Patents

파이프라인 마이크로프로세서에서의 전력 절감을 위한시스템 및 방법 Download PDF

Info

Publication number
KR20080028410A
KR20080028410A KR1020087000221A KR20087000221A KR20080028410A KR 20080028410 A KR20080028410 A KR 20080028410A KR 1020087000221 A KR1020087000221 A KR 1020087000221A KR 20087000221 A KR20087000221 A KR 20087000221A KR 20080028410 A KR20080028410 A KR 20080028410A
Authority
KR
South Korea
Prior art keywords
read
register file
pipeline
power saving
electronic device
Prior art date
Application number
KR1020087000221A
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 KR20080028410A publication Critical patent/KR20080028410A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • 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/30098Register arrangements
    • G06F9/30141Implementation provisions of register files, e.g. ports
    • 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/3824Operand accessing
    • 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/3824Operand accessing
    • G06F9/3826Bypassing or forwarding of data results, e.g. locally between pipeline stages or within a pipeline stage

Landscapes

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

Abstract

마이크로프로세서 파이프라인(300)에서의 전력을 보존하기 위한 시스템 및 방법이 개시되어 있다. 이 시스템은 레지스터 파일 판독 제어 유닛 (305)을 포함하며, 이 판독 제어 유닛(305)은 마이크로프로세서 파이프라인(300)의 제어/디코드 유닛(205)으로부터의 하나 이상의 출력을 모니터링하고 마이크로프로세서 파이프라인(300)의 하나 이상의 다른 스테이지로부터 기록 어드레스를 모니터링하도록 구성된다. 이 시스템은 또한 하나 이상의 판독 금지 유닛(301, 303)을 포함하며, 하나 이상의 판독 금지 유닛의 각각은 입력, 출력 및 인에이블 단자를 포함하며, 하나 이상의 판독 금지 유닛(301, 303) 각각의 출력은 마이크로프로세서 파이프라인(300)내에서의 레지스터 파일(109)의 고유 레지스터 포트에 연결되어 있다. 하나 이상의 판독 금지 유닛(301, 303) 각각의 입력은 제어/디코드 유닛(205)에 연결되어 있으며, 하나 이상의 판독 금지 유닛(301, 303) 각각의 인에이블 단자는 판독 제어 유닛(305)의 고유 출력에 연결되어 있다.

Description

파이프라인 마이크로프로세서에서의 전력 절감을 위한 시스템 및 방법{SYSTEM AND METHOD FOR POWER SAVING IN PIPELINED MICROPROCESSORS}
본 발명은 일반적으로 로드 스토어 아키텍쳐(load-store architecture)(즉, RISC 기반 머신)와 메모리 지향 아키텍쳐(memory-oriented architecture)(즉, CISC 기반 머신) 양쪽 모두의 마이크로프로세서에서의 전력 소비의 감소에 관한 것이다. 보다 자세하게는, 본 발명은 레지스터 파일로부터의 불필요한 판독 동작을 방지하여 마이크로프로세서로부터 보다 낮은 전력 손실을 가져오는 기술 및 방법을 제공한다.
최근의 많은 컴퓨팅 시스템들은 명령 스루풋을 증가시키기 위해 파이프라인 아키텍쳐를 갖는 프로세서를 이용한다. 이론적으로, 파이프라인 프로세서는, 질서 정연한 순차적인 명령 스트림이 실행되고 있는 경우, 머신 사이클마다 하나의 명령을 실행할 수 있다. 파이프라인 프로세서들은 명령의 실행을 수개의 스테이지들로 나누어 운영하는데, 각각의 스테이지는 완료하는데 한 머신 사이클을 필요로 한다. 전형적인 시스템에서, 명령은 완료하는데 많은 머신 사이클들(예를 들어, 페치(fetch), 디코드, ALU 연산 등)을 필요로 할 수 있다. 그러나, 첫번째 명령의 실행이 완료되기 전에 두번째 명령의 처리를 개시함으로써 파이프라인 프로세서에서 대기 시간이 감소된다. 결과적으로, 다수의 명령들이 어떤 주어진 시간에 여러 처리 스테이지들에 있을 수 있다. 따라서, 시스템의 전체적인 명령 실행 대기 시간(이것은 명령들의 시퀀스가 개시될 때의 시간과 명령들의 실행이 완료될 때의 시간 사이의 지연으로서 간주될 수 있음)이 상당히 감소될 수 있다.
가장 최근의 마이크로프로세서는 보다 높은 클록 주파수를 고려하며 파이프라인 스톨(stall)의 횟수를 방지 또는 감소시키는 파이프라인 데이터패스를 이용하고 있다. 앞에서 설명한 바와 같이, 파이프라인 이면에 있는 원리는 명령을 수개의 보다 작은 연산들로 분할하고 기판 동작에 전용되는 하드웨어로 후속하는 클록 사이클에서 각각의 연산을 실행시키는 것이다. 이러한 시스템은 선형 파이프라인으로서 모델링될 수 있으며, 여기서, 명령들은 하드웨어 유닛들을 통해 플로우한다. 통상적인 파이프라인은 다음의 연산들을 실시하는데, 각각의 연산들은 전용 하드웨어에 의해 수행된다.
1. 명령 페치;
2. 명령 디코드 및 나중의 파이프라인 스테이지에 대한 제어 신호의 발생;
3. 레지스터 파일로부터의 판독 오퍼랜드(operand);
4. 명령 실행("add"와 같은 산술 연산으로부터의 결과들이 여기서 생성될 수 있음);
5. 메모리 판독(메모리로부터 판독된 데이터가 여기서 이용가능함);
6. 레지스터 파일에 결과 재기록(writeback).
이들 연산 각각은 하드웨어에 의해 수행되며, 스테이지들 간의 모든 신호 플 로우들은 클로킹된 레지스터를 통과한다.
도 1은 상술한 연산들을 수행할 수 있는 전형적인 종래의 파이프라인을 나타낸다. 도 1은 일정한 양식에 맞춘 것으로, 이러한 파이프라인 마이크로프로세서 부분들은 당해 기술의 당업자에게 잘 알려진 것이기 때문에 완벽한 데이터패스의 세부설명은 생략한다. 도 l은 프로그램 카운터(PC; 101), 명령 메모리(IM; 103), 레지스터 파일(109), 산술 논리 유닛(ALU; 113) 및 멀티플렉서(119)를 포함한다. 종래 기술의 파이프라인의 부분들은 명령 페치 스테이지(105), 명령 디코드 및 레지스터 파일 판독 스테이지(107), 실행 스테이지(111), 메모리 액세스 스테이지(115) 및 재기록 스테이지(117)를 포함한다. 모든 파이프라인 스테이지들(105, 107, 111, 115 및 117)은 복수의 클로킹된 레지스터들중 하나에 의해 분리되기 때문에, 6개의 다른 명령들이 동시에 파이프라인에 있을 수 있다. 만약 예를 들어, 실행 스테이지(111)에서의 명령이, 메모리 액세스 스테이지(115) 또는 재기록 스테이지(117)에서의 명령에 의해 기록되는 레지스터에서의 값을 판독하기를 원할 경우, 실행 스테이지(111)는 그 값이 레지스터 파일(109) 내에 기록될 때까지 기다려야 하며, 그렇지 않으면, 오류(즉, 이전에 기록된) 값이 판독될 것이다.
또한, 파이프라인에서, 명령이 파이프라인의 재기록 스테이지(117)에 도달하기 전에 오랫동안 결과들이 준비 상태일 수도 있다. 파이프라인을 통해 실행 속도를 증가시키는 한 방법은 포워딩 기술의 결합에 의한 것이다. 도 2의 포워딩 파이프라인(200)은 포워딩 기술을 결합하며, 명령 디코드 및 레지스터 파일 판독 스테이지(107) 및 실행 스테이지(111) 내에서 ID 포워드 제어 유닛(ID fwd Ctrl; 201A) 및 EX 포워드 제어 유닛(EX fwd Ctrl; 201B)과 2개의 포워딩 멀티플렉서(203)를 포함한다. 중간 결과들의 비접근성을 회피함으로써 포워딩 파이프라인(200)에서의 실행 속도가 증가된다. 예를 들어, 산술 연산의 결과들이 실행 스테이지(111)에서 준비 상태에 있을 수 있다. 실행 스테이지(111), 메모리 액세스 스테이지(115) 또는 재기록 스테이지(117)에서 준비 상태에 있으며 보다 이른(즉, 업스트림) 스테이지에서의 명령에 의해 요구되는 결과들은 데이터의 필요시 그 보다 이른 스테이지에 결과들을 직접 포워딩할 수 있다. 따라서, 명령 디코드 스테이지(107)에서의 명령은, 결과가 레지스터 파일(109)에 재기록될 때까지 스톨할 필요가 없다.
레지스터 파일(109)로부터 판독된 레지스터가 재기록 스테이지(117)에 의해 재기록되고 있는 동일한 레지스터인 경우, ID 포워드 제어 유닛(201A)은 재기록 스테이지(117)에 의해 레지스터 파일(109) 내에 기록된 데이터를 레지스터 파일(109)의 출력에 포워딩한다. 실행 스테이지(111)에서의 명령이 메모리 액세스 스테이지(115) 또는 재기록 스테이지(117)에서의 명령에 의해 기록되었던 레지스터를 판독하는지를 판정하기 위하여, EX 포워드 제어 유닛(201B)은 명령 디코드 및 레지스터 파일 판독 스테이지(107) 파이프라인 레지스터로부터의 readrega 및 readregb와, 메모리 액세스 스테이지(115) 또는 재기록 스테이지(117)로부터의 write_addr를 리스닝(listen)한다. 만약, 판독한다고 판정하면, 메모리 액세스 스테이지(115) 또는 재기록 스테이지(117)에서의 명령으로부터의 결과는 ALU(113)에 입력된다. EX 포워드 제어 유닛(201B)은 fwda 및 fwdb 신호들을 제어함으로써 레지스터 파일(109)로부터 판독되는 값이나 메모리 액세스 스테이지(115) 또는 재기록 스테이 지(117)으로부터 포워딩되는 값 중 어느 것을 이용할지를 선택한다. fwda 및 fwdb 신호는 2개의 포워딩 멀티플렉서(203)에 대한 멀티플렉서 셀렉터들이다.
포워딩 파이프라인에서의 파이프라인들이 보다 심층적으로 증대함에 따라, 많은 명령들은 레지스터 파일로부터 오퍼랜드를 판독할 필요가 없이 이들을 포워딩하는 기술로부터 오퍼랜드들을 획득한다. 포워딩된 오퍼랜드를 수신하는 이러한 능력은 명령들이 바로 다음에 오는 명령들에 의해 이용되는 데이터를 생성하는 대부분의 프로그램들의 순차적 특성으로부터 일어난다. 전형적인 종래 기술의 데이터 포워딩 방식은 매 명령 디코드 사이클 마다의 부분으로서 오퍼랜드에 대한 레지스터 파일을 판독한다. 이러한 레지스터 판독은 데이터 포워딩이 가능한지 아닌지와 무관하게 또는 심지어 포워딩 데이터가 필요한 경우에도 발생한다. 따라서, 불필요한 레지스터 파일 판독 및 이러한 불필요한 레지스터 파일 판독에 의해 야기되는 전력에서의 부수적인 증가를 제거하면서 포워딩된 오퍼랜드의 이점들을 향유하는 방법이 요구된다.
본 발명의 예시적인 실시예는 감소된 전력 소비를 가져오는 레지스터 파일 액세스 방법을 포함한다. 예시적인 실시예에 따르면, 레지스터 파일에서 판독될 하나 이상의 레지스터가 파이프라인에서의 추가적인 다운스트림에 위치되는 명령에 의해 기록되는 경우, 포워딩가능 레지스터(들)의 레지스터 파일 판독이 개시되지 않는다. 다만, 포워딩 레지스터 값이 직접 이용된다.
따라서, 본 발명은 마이크로프로세서 파이프라인에서의 전력을 보존하기 위한 시스템 및 방법이다. 이 시스템은 레지스터 파일 판독 제어 유닛을 포함하며, 이 판독 제어 유닛은 파이프라인의 제어/디코드 유닛으로부터의 하나 이상의 출력을 모니터링하고 파이프라인의 하나 이상의 다른 스테이지로부터의 기록 어드레스들을 모니터링하도록 구성된다. 또한, 이 시스템은 하나 이상의 판독 금지 유닛을 포함하며, 각각의 판독 금지 유닛은 입력, 출력 및 인에이블 단자를 갖고 있으며, 하나 이상의 판독 금지 유닛 각각의 출력은 파이프라인 내에서의 레지스터 파일의 고유 레지스터 포트에 연결되어 있다. 하나 이상의 판독 금지 유닛 각각의 입력은 제어/디코드 유닛에 연결되어 있으며, 하나 이상의 판독 금지 유닛 각각의 인에이블 단자는 판독 제어 유닛의 고유 출력에 연결되어 있다.
이 방법은 판독 금지 유닛 및 판독 제어 유닛을 제공하는 단계를 포함하며, 판독 금지 유닛은 파이프라인 아키텍쳐에 포함되어 있는 레지스터 파일에서의 적어도 한 파일의 내용을 판독하도록 연결되어 있다. 판독 제어 유닛은 판독 금지 유닛에 제어 신호를 제공한다. 이 제어 신호에 기초하여, 레지스터 파일 판독 동작이 발생해야 하는지의 판정이 이루어진다. 레지스터 파일에서의 적어도 한 파일의 내용이 판독되는 것으로 판정이 이루어지면, 판독 제어 유닛으로부터 판독 금지 유닛으로의 인에이블 신호가 송신되고, 인에이블 신호를 수신한 후, 레지스터 파일에서의 적어도 한 파일에서의 내용을 판독한다.
도 1은 종래 기술의 통상적인 하드웨어 구현 파이프라인의 블록도를 나타낸다.
도 2는 포워딩 기술을 결합하는 종래 기술의 하드웨어 구현 파이프라인의 블록도를 나타낸다.
도 3은 각각의 클록 사이클 마다 레지스터 파일을 액세스할 필요가 없는 포워딩 기술을 결합한 파이프라인의 실시예의 예시적인 블록도를 나타낸다.
도 4는 레지스터 파일을 액세스하기 위하여 상태 유지 장치(state-keeping device) 유형의 예시적인 실시예를 나타낸다.
도 3에서, 각각의 클록 사이클 마다 레지스터 파일을 액세스할 필요가 없는 파이프라인(300)의 예시적인 실시예는 레지스터 파일 판독 제어 유닛(RCU; 305) 및 2개의 레지스터 파일 금지 유닛[레지스터 파일 금지 유닛 A(ria; 301) 및 레지스터 파일 금지 유닛 B (rib; 303)]을 구현하고 있다. RCU(305)는 제어/디코드 유닛(205)으로부터의 readrega 및 readregb 출력을 연속적으로 모니터링한다. 또한, RCU(305)는 실행 스테이지(111), 메모리 액세스 스테이지(115) 및 재기록 스테이지(117)로부터의 기록 어드레스들을 모니터링한다. readrega 또는 readregb가, 실행 스테이지(111), 메모리 액세스 스테이지(115) 또는 재기록 스테이지(117)에 의해 기록된 레지스터들이 명령 디코드 및 레지스터 파일 판독 스테이지(107)에서의 명령에 의해 판독되어질 것임을 시그널링하는 경우, 결과들이 포워딩될 때, RCU(305)는 대응하는 레지스터 파일 판독 금지 유닛(ria(301) 또는 rib(303))이 레지스터 파일(109)을 판독하지 않도록 명령(order)한다. 레지스터 파일 판독 금지 유닛(ria(301) 및 rib(303))은 레지스터 파일(109)이 readrega 및/또는 readregb에 의해 어드레스지정되는 레지스터를 판독하는 것을 금지시킨다. 레지스터 파일 판독 금지 유닛(ria(301) 및 rib(303))은, 레지스터 파일 판독 포트가 어떠한 전력도 인출하지 못하게 하는 방식(이하에 설명되어 있음)으로 이러한 금지를 행한다.
가장 최근의 중앙 처리 유닛(CPU)은 CMOS 로직을 이용하여 구현되고 있다. CMOS 로직에서 손실되는 대부분의 전력은, CMOS 논리값이 토글링(즉, "1"에서 "0"으로 또는 "0"에서 "1"로)할 때 인출된다. 따라서, 레지스터 파일 판독 금지 유닛(ria(301), rib(303))의 주요 기능은 판독 액세스가 불필요할 경우 레지스터 파일(109) 내부의 로직이 토글링하는 것을 금지하여, 이에 의해 레지스터 파일(109)이 최소량의 전력을 인출하도록 하는 것이다. 레지스터 파일(109)의 내부 로직(도시 생략)이 토글링하는 것을 금지시키기 위하여, 레지스터 파일 판독 금지 유닛(ria(301), rib(303))은 상태 유지 소자(state-keeping element))(도 4에 대하여 이후 보다 자세히 설명되어 있음)를 포함한다. 예를 들어, 상태 유지 소자는 레벨 감지 래치(level-sensitive latch) 또는 플립플롭일 수 있다. 상태 유지 소자는 모든 레지스터 파일 판독 포트 입력에 접속되어, 이에 의해, 판독 포트 액세스가 포워딩으로 인하여 불필요할 경우 레지스터 파일 판독 포트 입력이 토글링하는 것을 금지시킨다. 상태 유지 소자는 RCU(305)에 의해 제어된다.
판독 금지 유닛(ria(301), rib(303))은 레지스터 파일(109)이 구현되는 방법에 부분적으로 의존하는 여러 방식들 중 하나로 구현될 수 있다. 일부 레지스터 파일 구현예에서, 상태 유지 소자가 레지스터 파일 매크로 내에 형성된다. 이러한 레지스터 파일 매크로의 경우에, RCU(305)는 레지스터 파일 매크로에서 상태 유지 소 자를 직접 제어할 수 있고, 추가적인 판독 금지 유닛(ria(301), rib(303))이 불필요하다.
도 4는 레지스터 파일(401)을 액세스하는 상태 유지 소자 유형의 예시적인 실시예를 나타낸다. 레지스터 파일(401)은 복수의 레지스터(즉, Register 1, Register 2, ..., Register n)를 갖고 있다. 각각의 레지스터는 "m" bit의 데이터 폭을 갖고 있다. 레지스터 파일(401)의 출력은 레지스터 파일(401) 내에서의 어드레스지정된 레지스터의 내용을 조합적으로 출력한다. 예를 들어, 입력 어드레스"readregi"는 i번째 레지스터의 데이터 내용을 판독한다. 판독 금지 유닛(RIU; 403)에서의 상태 유지 소자는 레벨 감지 래치(405)로 구성된다. 레벨 감지 레치(405)는 래치 인에이블(LE) 입력이 하이인 경우 투과성(transparent)이 있다. LE는 표현, rix && !clk 으로 제어된다.
"rix" 신호는 RCU(305; 도 3)로부터 출력되며, 명령 디코드 및 레지스터 파일 판독 스테이지(107; 도 3)에서의 명령에 의해 판독될 레지스터가 다른 파이프라인 스테이지로부터 포워딩가능한 경우 "rix" 신호는 하이로 된다. "rix" 신호가 안정화될 때까지 레벨 감지 래치(405)의 "Q" 출력이 토글링하는 것을 금지시키기 위하여, "rix"는 반전된 클록에 대해 논리적 AND(논리곱)된다. 모든 다른 순차적 소자들이 포지티브 에지 트리거에 의해 클로킹되는 경우 1/2 클록 사이클이 추가되며, 따라서, "rix"에 대한 시간을 안정화시킨다. "rix"를 구현하기 위한 표현은 다음과 같으며,
rix = (readregi == id_ex_wadr) ||
(readregi == ex_mem_wadr) ||
(readregi == mem_wb_wadr)
여기서, i∈{a, b}이고, id_ex_wadr, ex_mem_wadr, 및 mem_wb_adr은 실행 스테이지(111), 메모리 액세스 스테이지(115) 및 재기록 스테이지(117)에서의 명령에 의해 각각 기록될 레지스터 파일 레지스터의 어드레스들이다.
당업자는, 하나 이상의 지연 성분에 다른 전파 지연 시간을 추가하여 "clk"를 대체함으로써 보다 크든 보다 작든 다른 지연이 이용될 수 있음을 인정할 것이다. 결과적으로, "rix"가 하이이고 클록 사이클의 마지막 1/2 기간에 있는 경우에만 판독 어드레스 "readregi"가 레지스터 파일(401) 포트로 전파한다. "rix"가 로우인 경우, 레벨 감지 래치(405)가 로크되고(즉, 인에이블되지 않고) 레지스터 파일(401)에 대한 입력이 정적으로 유지된다. 레지스터 파일(405) 판독 포트는 이러한 경우 토글링하지 않으며, 따라서, 최소의 전력이 소비된다. 예시적인 특정 실시예에서, 레지스터 파일 판독 포트 마다 하나의 RIU(403)가 있다. 도 3의 레지스터 파일은 2개의 판독 포트를 갖고 있다. 따라서, 2개의 RIU[판독 금지 유닛(ria(301), rib(303))]가 있다.
다른 예시적인 실시예(도시 생략)에서는, 래치가 레지스터 파일 판독 포트 내에 형성된다. 이들의 경우, RIU(403)에는 래치가 필요없다. 그 후, RCU(305)는 레지스터 파일(401) 판독 포트 내부에 래치(405)를 직접 제어할 것이다.
상술한 설명에서, 본 발명은 본 발명의 특정 실시예를 참조하여 설명하였다. 그러나, 여러 변형 및 수정이 첨부된 청구범위에 기재된 본 발명의 범위 및 사상에 벗어남이 없이 이루어질 수 있음은 당업자에게 명백한 것이다. 당업자는, 방법들이 특정 아키텍쳐를 참조하여 설명되어 있지만, 상술한 설명의 범위 내에 여전히 있는 여러 방식으로 유사한 결과들이 달성될 수 있음을 이해할 것이다. 예를 들어, 당업자는 레벨 감지 래치 보다는 에지 트리거링된 플립플롭을 이용하는 것이 바람직할 수 있는 다른 실시예(도시 생략)를 인정할 것이다. 상술한 RCU(305)는 적절한 접속 및 지연에 이용될 수 있다. 따라서, 실제의 마이크로프로세서 파이프라인의 복잡성으로 인하여, 상세한 설명 및 도면은 제한적인 의미이기 보다 설명적인 의미로 간주되어야 한다.

Claims (21)

  1. 마이크로프로세서 파이프라인에서의 전력 절감 전자 장치로서,
    파이프라인의 제어/디코드 유닛으로부터의 하나 이상의 출력을 모니터링하도록 구성되고, 파이프라인의 하나 이상의 다른 스테이지로부터의 기록 어드레스를 모니터링하도록 추가로 구성되는 레지스터 파일 판독 제어 유닛과;
    입력, 출력 및 인에이블 단자를 각각 갖고 있는 하나 이상의 판독 금지 유닛으로서, 하나 이상의 판독 금지 유닛 각각의 출력은 파이프라인 내에서의 레지스터 파일의 고유 레지스터 포트에 연결되어 있으며, 하나 이상의 판독 금지 유닛 각각의 입력은 제어/디코드 유닛에 연결되어 있고, 하나 이상의 판독 금지 유닛 각각의 인에이블 단자는 상기 레지스터 파일 판독 제어 유닛의 고유 출력에 연결되어 있는 것인 하나 이상의 판독 금지 유닛
    을 포함하는 전력 절감 전자 장치.
  2. 제1항에 있어서, 상기 레지스터 파일 판독 제어 유닛은 결과가 포워딩될 경우, 명령 디코드 및 레지스터 파일 판독 스테이지에서의 명령이 레지스터 파일을 판독하는 것을 금지시키기 위해 하나 이상의 판독 금지 유닛에 신호를 전송하도록 추가로 구성되는 것인 전력 절감 전자 장치.
  3. 제1항에 있어서, 상기 하나 이상의 판독 금지 유닛의 각각은 레벨 트리거링 래치로 구성되는 것인 전력 절감 전자 장치.
  4. 제3항에 있어서, 상기 하나 이상의 판독 금지 유닛의 각각은 조합 로직(combinatorial logic)으로 추가로 구성되며, 상기 조합 로직은 판독 신호가 레지스터 파일 판독 제어 유닛으로부터 송신될 때에만 레지스터 파일의 판독을 허용하도록 구성되는 것인 전력 절감 전자 장치.
  5. 제1항에 있어서, 상기 하나 이상의 판독 금지 유닛의 각각은 에지 트리거링 래치로 구성되는 것인 전력 절감 전자 장치.
  6. 제5항에 있어서, 상기 하나 이상의 판독 금지 유닛의 각각은 조합 로직으로 추가로 구성되며, 상기 조합 로직은 판독 신호가 레지스터 파일 판독 제어 유닛으로부터 송신될 때에만 레지스터 파일의 판독을 허용하도록 구성되는 것인 전력 절감 전자 장치.
  7. 제1항에 있어서, 상기 하나 이상의 판독 금지 유닛의 각각은 레지스터 파일에 통합되어(integral) 있는 것인 전력 절감 전자 장치.
  8. 마이크로프로세서 파이프라인에서의 전력 절감 전자 장치로서,
    파이프라인의 제어/디코드 유닛으로부터의 하나 이상의 출력을 모니터링하도 록 구성되고, 파이프라인의 하나 이상의 다른 스테이지로부터의 기록 어드레스를 모니터링하도록 추가로 구성되는 레지스터 파일 판독 제어 유닛과;
    입력, 출력 및 인에이블 단자를 각각 갖고 있는 하나 이상의 판독 금지 유닛으로서, 하나 이상의 판독 금지 유닛 각각의 출력은 파이프라인 내에서의 레지스터 파일의 고유 레지스터 포트에 연결되어 있으며, 하나 이상의 판독 금지 유닛 각각의 입력은 제어/디코드 유닛에 연결되어 있고, 하나 이상의 판독 금지 유닛 각각의 인에이블 단자는 상기 레지스터 파일 판독 제어 유닛의 고유 출력에 연결되어 있는 것인 하나 이상의 판독 금지 유닛과;
    파이프라인의 고유 스테이지에 각각 연결되어 있으며, 파이프라인의 각각의 고유 스테이지에 중간 결과들을 제공하도록 구성되어 있는 하나 이상의 포워드 제어 유닛으로서, 하나 이상의 포워드 제어 유닛 중 적어도 하나는 파이프라인의 재기록 스테이지(writeback stage)에 연결되어 있는 것인 하나 이상의 포워드 제어 유닛
    을 포함하는 전력 절감 전자 장치.
  9. 제8항에 있어서, 상기 레지스터 파일 판독 제어 유닛은 결과가 포워딩될 경우, 명령 디코드 및 레지스터 파일 판독 스테이지에서의 명령이 레지스터 파일을 판독하는 것을 금지시키기 위해 하나 이상의 판독 금지 유닛에 신호를 전송하도록 추가로 구성되는 것인 전력 절감 전자 장치.
  10. 제8항에 있어서, 상기 하나 이상의 판독 금지 유닛의 각각은 레벨 트리거링 래치로 구성되는 것인 전력 절감 전자 장치.
  11. 제10항에 있어서, 상기 하나 이상의 판독 금지 유닛의 각각은 조합 로직으로 추가로 구성되며, 상기 조합 로직은 판독 신호가 레지스터 파일 판독 제어 유닛으로부터 송신될 때에만 레지스터 파일의 판독을 허용하도록 구성되는 것인 전력 절감 전자 장치.
  12. 제8항에 있어서, 상기 하나 이상의 판독 금지 유닛의 각각은 에지 트리거링 래치로 구성되는 것인 전력 절감 전자 장치.
  13. 제12항에 있어서, 상기 하나 이상의 판독 금지 유닛의 각각은 조합 로직으로 추가로 구성되며, 상기 조합 로직은 판독 신호가 레지스터 파일 판독 제어 유닛으로부터 송신될 때에만 레지스터 파일의 판독을 허용하도록 구성되는 것인 전력 절감 전자 장치.
  14. 제8항에 있어서, 상기 하나 이상의 포워드 제어 유닛 중 첫번째 포워드 제어 유닛은 파이프라인의 실행 스테이지에서 복수의 멀티플렉서의 출력을 선택하도록 전기적으로 연결되어 있으며, 복수의 멀티플렉서 각각의 출력은 산술 논리 유닛의 입력에 연결되어 있는 것인 전력 절감 전자 장치.
  15. 제8항에 있어서, 상기 하나 이상의 판독 금지 유닛의 각각은 레지스터 파일에 통합되어 있는 것인 전력 절감 전자 장치.
  16. 마이크로프로세서 파이프라인 아키텍쳐에서 전력을 보존하는 방법으로서,
    파이프라인 아키텍쳐에 포함되어 있는 레지스터 파일에서의 하나 이상의 파일의 내용을 판독하도록 연결되어 있는 판독 금지 유닛을 제공하는 단계와;
    상기 판독 금지 유닛에 제어 신호를 제공하는 레지스터 파일 판독 제어 유닛을 제공하는 단계와;
    상기 제어 신호에 기초하여 레지스터 파일 판독 동작이 발생해야 하는지를 판정하는 단계와;
    레지스터 파일에서의 하나 이상의 파일의 내용을 판독하는 것으로 판정이 이루어지면 상기 레지스터 파일 판독 제어 유닛으로부터 상기 판독 제어 유닛에 인에이블 신호를 제공하는 단계와;
    레지스터 파일에서의 하나 이상의 파일의 내용을 판독하는 단계
    를 포함하는 전력 보존 방법.
  17. 제16항에 있어서, 상기 판독 금지 유닛이 상기 레지스터 파일 판독 제어 유닛으로부터 인에이블 신호를 수신하면 레지스터 파일의 판독 어드레스를 제공하는 단계를 더 포함하는 전력 보존 방법.
  18. 마이크로프로세서 파이프라인에서의 전력 절감 전자 장치로서,
    파이프라인의 제어/디코드 유닛으로부터 하나 이상의 출력을 모니터링하고, 파이프라인의 하나 이상의 다른 스테이지로부터 기록 어드레스를 모니터링하는 레지스터 파일 판독 제어 수단과;
    상기 레지스터 파일 판독 제어 수단으로부터 판독 인에이블 신호를 수신하는 것에 기초하여 파이프라인에서의 레지스터 파일의 판독을 허용하는 판독 금지 수단
    을 포함하는 전력 절감 전자 장치.
  19. 제18항에 있어서,
    제1 입력, 제2 입력 및 멀티플렉서 출력을 갖고 있는 포워딩 멀티플렉서로서, 상기 제1 입력은 레지스터 파일의 출력에 연결되어 있고, 상기 제2 입력은 상기 파이프라인의 재기록 스테이지로부터의 출력에 연결되어 있으며, 상기 멀티플렉서 출력은 파이프라인 내에서의 산술 논리 유닛의 입력에 연결되어 있는 것인 포워딩 멀티플렉서와;
    파이프라인의 하나 이상의 고유 스테이지에 중간 결과들을 제공하는 포워드 제어 수단
    을 더 포함하는 전력 절감 전자 장치.
  20. 제19항에 있어서, 상기 포워드 제어 수단은 파이프라인의 재기록 스테이지로 부터의 신호를 제공하는 것인 전력 절감 전자 장치.
  21. 제18항에 있어서, 상기 판독 금지 수단이 상기 레지스터 파일 판독 제어 수단으로부터 인에이블 신호를 수신하면 레지스터 파일의 판독 어드레스를 제공하는 판독 어드레스 수단을 더 포함하는 전력 절감 전자 장치.
KR1020087000221A 2005-06-07 2006-05-24 파이프라인 마이크로프로세서에서의 전력 절감을 위한시스템 및 방법 KR20080028410A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/146,467 2005-06-07
US11/146,467 US20060277425A1 (en) 2005-06-07 2005-06-07 System and method for power saving in pipelined microprocessors

Publications (1)

Publication Number Publication Date
KR20080028410A true KR20080028410A (ko) 2008-03-31

Family

ID=37495515

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020087000221A KR20080028410A (ko) 2005-06-07 2006-05-24 파이프라인 마이크로프로세서에서의 전력 절감을 위한시스템 및 방법

Country Status (7)

Country Link
US (1) US20060277425A1 (ko)
EP (1) EP1891516A4 (ko)
JP (1) JP2008542949A (ko)
KR (1) KR20080028410A (ko)
CN (1) CN101228505A (ko)
TW (1) TW200705167A (ko)
WO (1) WO2006132804A2 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015080534A1 (ko) * 2013-11-29 2015-06-04 삼성전자 주식회사 재구성 가능 프로세서의 레지스터를 제어하는 방법 및 장치와 재구성 가능 프로세서의 레지스터를 제어하는 명령어를 생성하는 방법 및 장치

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7698536B2 (en) * 2005-08-10 2010-04-13 Qualcomm Incorporated Method and system for providing an energy efficient register file
US8145874B2 (en) * 2008-02-26 2012-03-27 Qualcomm Incorporated System and method of data forwarding within an execution unit
JP5644571B2 (ja) * 2011-02-16 2014-12-24 富士通株式会社 プロセッサ
US20140129805A1 (en) * 2012-11-08 2014-05-08 Nvidia Corporation Execution pipeline power reduction
CN105393240B (zh) 2013-09-06 2018-01-23 华为技术有限公司 具有辅助异步向量处理器的异步处理器的方法和装置
JP6926727B2 (ja) * 2017-06-28 2021-08-25 富士通株式会社 演算処理装置および演算処理装置の制御方法

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4814976C1 (en) * 1986-12-23 2002-06-04 Mips Tech Inc Risc computer with unaligned reference handling and method for the same
US4901267A (en) * 1988-03-14 1990-02-13 Weitek Corporation Floating point circuit with configurable number of multiplier cycles and variable divide cycle ratio
US5488729A (en) * 1991-05-15 1996-01-30 Ross Technology, Inc. Central processing unit architecture with symmetric instruction scheduling to achieve multiple instruction launch and execution
KR100309566B1 (ko) * 1992-04-29 2001-12-15 리패치 파이프라인프로세서에서다중명령어를무리짓고,그룹화된명령어를동시에발행하고,그룹화된명령어를실행시키는방법및장치
US6212626B1 (en) * 1996-11-13 2001-04-03 Intel Corporation Computer processor having a checker
US6016532A (en) * 1997-06-27 2000-01-18 Sun Microsystems, Inc. Method for handling data cache misses using help instructions
US5878252A (en) * 1997-06-27 1999-03-02 Sun Microsystems, Inc. Microprocessor configured to generate help instructions for performing data cache fills
US6990570B2 (en) * 1998-10-06 2006-01-24 Texas Instruments Incorporated Processor with a computer repeat instruction
US6519695B1 (en) * 1999-02-08 2003-02-11 Alcatel Canada Inc. Explicit rate computational engine
WO2000068784A1 (en) * 1999-05-06 2000-11-16 Koninklijke Philips Electronics N.V. Data processing device, method for executing load or store instructions and method for compiling programs
US6587941B1 (en) * 2000-02-04 2003-07-01 International Business Machines Corporation Processor with improved history file mechanism for restoring processor state after an exception
US6707831B1 (en) * 2000-02-21 2004-03-16 Hewlett-Packard Development Company, L.P. Mechanism for data forwarding
US6675287B1 (en) * 2000-04-07 2004-01-06 Ip-First, Llc Method and apparatus for store forwarding using a response buffer data path in a write-allocate-configurable microprocessor
EP1199629A1 (en) 2000-10-17 2002-04-24 STMicroelectronics S.r.l. Processor architecture with variable-stage pipeline
US20040034759A1 (en) * 2002-08-16 2004-02-19 Lexra, Inc. Multi-threaded pipeline with context issue rules
US7062635B2 (en) * 2002-08-20 2006-06-13 Texas Instruments Incorporated Processor system and method providing data to selected sub-units in a processor functional unit

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015080534A1 (ko) * 2013-11-29 2015-06-04 삼성전자 주식회사 재구성 가능 프로세서의 레지스터를 제어하는 방법 및 장치와 재구성 가능 프로세서의 레지스터를 제어하는 명령어를 생성하는 방법 및 장치
US10185565B2 (en) 2013-11-29 2019-01-22 Samsung Electronics Co., Ltd. Method and apparatus for controlling register of reconfigurable processor, and method and apparatus for creating command for controlling register of reconfigurable processor

Also Published As

Publication number Publication date
WO2006132804A2 (en) 2006-12-14
TW200705167A (en) 2007-02-01
US20060277425A1 (en) 2006-12-07
WO2006132804A3 (en) 2008-01-10
CN101228505A (zh) 2008-07-23
JP2008542949A (ja) 2008-11-27
EP1891516A4 (en) 2008-09-03
EP1891516A2 (en) 2008-02-27

Similar Documents

Publication Publication Date Title
US7028165B2 (en) Processor stalling
US5222240A (en) Method and apparatus for delaying writing back the results of instructions to a processor
US8612726B2 (en) Multi-cycle programmable processor with FSM implemented controller selectively altering functional units datapaths based on instruction type
US8086832B2 (en) Structure for dynamically adjusting pipelined data paths for improved power management
US7627741B2 (en) Instruction processing circuit including freezing circuits for freezing or passing instruction signals to sub-decoding circuits
US20060294344A1 (en) Computer processor pipeline with shadow registers for context switching, and method
KR20010109354A (ko) 프로세서내의 기록 트래픽을 감소시키는 시스템 및 방법
KR20040016829A (ko) 파이프라인식 프로세서에서의 예외 취급 방법, 장치 및시스템
KR20080028410A (ko) 파이프라인 마이크로프로세서에서의 전력 절감을 위한시스템 및 방법
US20070288724A1 (en) Microprocessor
US7945765B2 (en) Method and structure for asynchronous skip-ahead in synchronous pipelines
US20070260857A1 (en) Electronic Circuit
Bhosle et al. FPGA Implementation of low power pipelined 32-bit RISC Processor
Gautham et al. Low-power pipelined MIPS processor design
US20070271449A1 (en) System and method for dynamically adjusting pipelined data paths for improved power management
US20030172258A1 (en) Control forwarding in a pipeline digital processor
Tina et al. Performance improvement of MIPS Architecture by Adding New features
US5784634A (en) Pipelined CPU with instruction fetch, execution and write back stages
Kaur et al. Pipelined MIPS with improved datapath
KR100962932B1 (ko) Vliw 프로세서
US20090063821A1 (en) Processor apparatus including operation controller provided between decode stage and execute stage
US6850105B1 (en) Method and circuitry for preserving a logic state
Boddu et al. A Survey on Effective Implementation of Control Scheme in Processors
Praveen et al. A survey on control implementation scheme
Lao et al. Low-overhead asynchronous RISC microprocessor-a design experiment

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid