KR20080028410A - 파이프라인 마이크로프로세서에서의 전력 절감을 위한시스템 및 방법 - Google Patents
파이프라인 마이크로프로세서에서의 전력 절감을 위한시스템 및 방법 Download PDFInfo
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 21
- 230000002401 inhibitory effect Effects 0.000 claims description 2
- 238000012544 monitoring process Methods 0.000 claims 2
- 238000010586 diagram Methods 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 230000001934 delay Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000000087 stabilizing effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
- 238000011144 upstream manufacturing Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
- G06F9/30141—Implementation provisions of register files, e.g. ports
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3824—Operand accessing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3824—Operand accessing
- G06F9/3826—Bypassing 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
본 발명은 일반적으로 로드 스토어 아키텍쳐(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항에 있어서, 상기 레지스터 파일 판독 제어 유닛은 결과가 포워딩될 경우, 명령 디코드 및 레지스터 파일 판독 스테이지에서의 명령이 레지스터 파일을 판독하는 것을 금지시키기 위해 하나 이상의 판독 금지 유닛에 신호를 전송하도록 추가로 구성되는 것인 전력 절감 전자 장치.
- 제1항에 있어서, 상기 하나 이상의 판독 금지 유닛의 각각은 레벨 트리거링 래치로 구성되는 것인 전력 절감 전자 장치.
- 제3항에 있어서, 상기 하나 이상의 판독 금지 유닛의 각각은 조합 로직(combinatorial logic)으로 추가로 구성되며, 상기 조합 로직은 판독 신호가 레지스터 파일 판독 제어 유닛으로부터 송신될 때에만 레지스터 파일의 판독을 허용하도록 구성되는 것인 전력 절감 전자 장치.
- 제1항에 있어서, 상기 하나 이상의 판독 금지 유닛의 각각은 에지 트리거링 래치로 구성되는 것인 전력 절감 전자 장치.
- 제5항에 있어서, 상기 하나 이상의 판독 금지 유닛의 각각은 조합 로직으로 추가로 구성되며, 상기 조합 로직은 판독 신호가 레지스터 파일 판독 제어 유닛으로부터 송신될 때에만 레지스터 파일의 판독을 허용하도록 구성되는 것인 전력 절감 전자 장치.
- 제1항에 있어서, 상기 하나 이상의 판독 금지 유닛의 각각은 레지스터 파일에 통합되어(integral) 있는 것인 전력 절감 전자 장치.
- 마이크로프로세서 파이프라인에서의 전력 절감 전자 장치로서,파이프라인의 제어/디코드 유닛으로부터의 하나 이상의 출력을 모니터링하도 록 구성되고, 파이프라인의 하나 이상의 다른 스테이지로부터의 기록 어드레스를 모니터링하도록 추가로 구성되는 레지스터 파일 판독 제어 유닛과;입력, 출력 및 인에이블 단자를 각각 갖고 있는 하나 이상의 판독 금지 유닛으로서, 하나 이상의 판독 금지 유닛 각각의 출력은 파이프라인 내에서의 레지스터 파일의 고유 레지스터 포트에 연결되어 있으며, 하나 이상의 판독 금지 유닛 각각의 입력은 제어/디코드 유닛에 연결되어 있고, 하나 이상의 판독 금지 유닛 각각의 인에이블 단자는 상기 레지스터 파일 판독 제어 유닛의 고유 출력에 연결되어 있는 것인 하나 이상의 판독 금지 유닛과;파이프라인의 고유 스테이지에 각각 연결되어 있으며, 파이프라인의 각각의 고유 스테이지에 중간 결과들을 제공하도록 구성되어 있는 하나 이상의 포워드 제어 유닛으로서, 하나 이상의 포워드 제어 유닛 중 적어도 하나는 파이프라인의 재기록 스테이지(writeback stage)에 연결되어 있는 것인 하나 이상의 포워드 제어 유닛을 포함하는 전력 절감 전자 장치.
- 제8항에 있어서, 상기 레지스터 파일 판독 제어 유닛은 결과가 포워딩될 경우, 명령 디코드 및 레지스터 파일 판독 스테이지에서의 명령이 레지스터 파일을 판독하는 것을 금지시키기 위해 하나 이상의 판독 금지 유닛에 신호를 전송하도록 추가로 구성되는 것인 전력 절감 전자 장치.
- 제8항에 있어서, 상기 하나 이상의 판독 금지 유닛의 각각은 레벨 트리거링 래치로 구성되는 것인 전력 절감 전자 장치.
- 제10항에 있어서, 상기 하나 이상의 판독 금지 유닛의 각각은 조합 로직으로 추가로 구성되며, 상기 조합 로직은 판독 신호가 레지스터 파일 판독 제어 유닛으로부터 송신될 때에만 레지스터 파일의 판독을 허용하도록 구성되는 것인 전력 절감 전자 장치.
- 제8항에 있어서, 상기 하나 이상의 판독 금지 유닛의 각각은 에지 트리거링 래치로 구성되는 것인 전력 절감 전자 장치.
- 제12항에 있어서, 상기 하나 이상의 판독 금지 유닛의 각각은 조합 로직으로 추가로 구성되며, 상기 조합 로직은 판독 신호가 레지스터 파일 판독 제어 유닛으로부터 송신될 때에만 레지스터 파일의 판독을 허용하도록 구성되는 것인 전력 절감 전자 장치.
- 제8항에 있어서, 상기 하나 이상의 포워드 제어 유닛 중 첫번째 포워드 제어 유닛은 파이프라인의 실행 스테이지에서 복수의 멀티플렉서의 출력을 선택하도록 전기적으로 연결되어 있으며, 복수의 멀티플렉서 각각의 출력은 산술 논리 유닛의 입력에 연결되어 있는 것인 전력 절감 전자 장치.
- 제8항에 있어서, 상기 하나 이상의 판독 금지 유닛의 각각은 레지스터 파일에 통합되어 있는 것인 전력 절감 전자 장치.
- 마이크로프로세서 파이프라인 아키텍쳐에서 전력을 보존하는 방법으로서,파이프라인 아키텍쳐에 포함되어 있는 레지스터 파일에서의 하나 이상의 파일의 내용을 판독하도록 연결되어 있는 판독 금지 유닛을 제공하는 단계와;상기 판독 금지 유닛에 제어 신호를 제공하는 레지스터 파일 판독 제어 유닛을 제공하는 단계와;상기 제어 신호에 기초하여 레지스터 파일 판독 동작이 발생해야 하는지를 판정하는 단계와;레지스터 파일에서의 하나 이상의 파일의 내용을 판독하는 것으로 판정이 이루어지면 상기 레지스터 파일 판독 제어 유닛으로부터 상기 판독 제어 유닛에 인에이블 신호를 제공하는 단계와;레지스터 파일에서의 하나 이상의 파일의 내용을 판독하는 단계를 포함하는 전력 보존 방법.
- 제16항에 있어서, 상기 판독 금지 유닛이 상기 레지스터 파일 판독 제어 유닛으로부터 인에이블 신호를 수신하면 레지스터 파일의 판독 어드레스를 제공하는 단계를 더 포함하는 전력 보존 방법.
- 마이크로프로세서 파이프라인에서의 전력 절감 전자 장치로서,파이프라인의 제어/디코드 유닛으로부터 하나 이상의 출력을 모니터링하고, 파이프라인의 하나 이상의 다른 스테이지로부터 기록 어드레스를 모니터링하는 레지스터 파일 판독 제어 수단과;상기 레지스터 파일 판독 제어 수단으로부터 판독 인에이블 신호를 수신하는 것에 기초하여 파이프라인에서의 레지스터 파일의 판독을 허용하는 판독 금지 수단을 포함하는 전력 절감 전자 장치.
- 제18항에 있어서,제1 입력, 제2 입력 및 멀티플렉서 출력을 갖고 있는 포워딩 멀티플렉서로서, 상기 제1 입력은 레지스터 파일의 출력에 연결되어 있고, 상기 제2 입력은 상기 파이프라인의 재기록 스테이지로부터의 출력에 연결되어 있으며, 상기 멀티플렉서 출력은 파이프라인 내에서의 산술 논리 유닛의 입력에 연결되어 있는 것인 포워딩 멀티플렉서와;파이프라인의 하나 이상의 고유 스테이지에 중간 결과들을 제공하는 포워드 제어 수단을 더 포함하는 전력 절감 전자 장치.
- 제19항에 있어서, 상기 포워드 제어 수단은 파이프라인의 재기록 스테이지로 부터의 신호를 제공하는 것인 전력 절감 전자 장치.
- 제18항에 있어서, 상기 판독 금지 수단이 상기 레지스터 파일 판독 제어 수단으로부터 인에이블 신호를 수신하면 레지스터 파일의 판독 어드레스를 제공하는 판독 어드레스 수단을 더 포함하는 전력 절감 전자 장치.
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015080534A1 (ko) * | 2013-11-29 | 2015-06-04 | 삼성전자 주식회사 | 재구성 가능 프로세서의 레지스터를 제어하는 방법 및 장치와 재구성 가능 프로세서의 레지스터를 제어하는 명령어를 생성하는 방법 및 장치 |
Families Citing this family (6)
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)
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 |
-
2005
- 2005-06-07 US US11/146,467 patent/US20060277425A1/en not_active Abandoned
-
2006
- 2006-05-24 CN CNA2006800264395A patent/CN101228505A/zh active Pending
- 2006-05-24 KR KR1020087000221A patent/KR20080028410A/ko not_active Application Discontinuation
- 2006-05-24 EP EP06760325A patent/EP1891516A4/en not_active Withdrawn
- 2006-05-24 JP JP2008515736A patent/JP2008542949A/ja not_active Abandoned
- 2006-05-24 WO PCT/US2006/020017 patent/WO2006132804A2/en active Application Filing
- 2006-06-05 TW TW095119819A patent/TW200705167A/zh unknown
Cited By (2)
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 |