KR20070004705A - 전자 회로와 그 동작 방법 - Google Patents

전자 회로와 그 동작 방법 Download PDF

Info

Publication number
KR20070004705A
KR20070004705A KR1020067018570A KR20067018570A KR20070004705A KR 20070004705 A KR20070004705 A KR 20070004705A KR 1020067018570 A KR1020067018570 A KR 1020067018570A KR 20067018570 A KR20067018570 A KR 20067018570A KR 20070004705 A KR20070004705 A KR 20070004705A
Authority
KR
South Korea
Prior art keywords
instruction
electronic circuit
latch
stage
pipeline
Prior art date
Application number
KR1020067018570A
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 KR20070004705A publication Critical patent/KR20070004705A/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/3867Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
    • G06F9/3871Asynchronous instruction pipeline, e.g. using handshake signals between stages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • 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)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Advance Control (AREA)
  • Executing Machine-Instructions (AREA)

Abstract

본 발명은 여러 종류의 인스트럭션을 처리하는 전자 회로에 관한 것으로, 이 전자 회로는 제 1 및 제 2 파이프라인 스테이지 및 파이프라인 스테지이들간에 위치되는 래치를 포함하는데, 이 전자 회로는 래치가 인에이블 신호에 응답하여 개방되고 폐쇄되는 첫 번째 종류의 인스트럭션을 처리하는 경우에는 정상 모드로, 래치가 개방으로 유지되어 인스트럭션이 래치에 저장되지 않고 제 1 및 제 2 파이프라인 스테이지를 통해 진행하는 두 번째 종류의 인스트럭션을 처리하는 경우에는 감소된 모드로 상기 전자 회로를 동작시키며, 첫 번째 종류의 인스트럭션은 제 1 및 제 2 파이프라인 스테이지에 의한 처리를 요구하고, 두 번째 종류의 인스트럭션은 제 2 파이프라인 스테이지에 의한 처리를 요구한다.

Description

전자 회로와 그 동작 방법{ELECTRONIC CIRCUIT}
본 발명은 전자 회로 분야에 관한 것으로, 특히 공유 리소스에 액세스하는 데 가변 지연을 갖는 파이프라인을 구비한 전자 회로에 관한 것이다.
많은 종래 전자 회로, 예를 들어, 마이크로프로세서는 '파이프라인(pipeline)'을 이용하여 병렬성(parallelism)과 성능을 증가시킨다. 즉, 마이크로프로세서의 인스트럭션 실행이 여러 독립 단계를 포함하는 경우, 개별 유닛이 마이크로프로세서에 구성되어 각 단계를 수행할 수 있다. 한 유닛이 인스트럭션 실행을 종료하면, '파이프라인'의 다음 유닛으로 전달되고, 다음 인스트럭션에 관한 작업을 시작한다. 그러므로, 실행될 전체 인스트럭션을 위해 요구되는 시간의 길이는 비-파이프라인 시스템에서와 동일하게 유지되지만, 다음 인스트럭션은 단 하나의 유닛 뒤에 있으므로, 전체적으로는 마이크로프로세서의 성능이 향상되는 결과를 낳는다.
전체 클록 신호가 한 부품이 데이터를 처리하는 데 걸리는 시간과 그 데이터가 시스템의 다음 부분으로 진행할 시기를 제어하는 동기식 회로와는 달리, 비동기 식 시스템의 부품은 그들 고유의 레이트로 작업을 실행하며 시스템의 다음 부분이 데이터의 수신을 통보한 경우에만 다음 작업으로 이동한다.
그러므로, 전체 신호가 존재하지 않기 때문에, 비동기식 시스템의 부품을 위해, 핸드셰이킹 프로토콜을 이용하여 시스템의 각 부분이 서로 통신할 수 있게 하는 것이 필요하다.
시스템의 한 종류에서는, 제 2 스테이지가 연산을 수행할 것을 제 1 스테이지가 요구하는 경우에 제 1 스테이지는 제 2 스테이지로 요청을 송신한다. 제 2 스테이지는 연산을 수행하고 연산을 종료했으면 제 1 스테이지로 수신확인 신호를 송신한다. 제 1 스테이지가 수신확인 신호를 수신하면, 연산이 완료되었음을 알게 되어 다음 지시로 이동할 수 있다.
다른 종류의 비동기식 시스템은, 2001년도 컴퓨터 설계에 관한 국제 회의(ICCD) 회보 9 내지 17 쪽에 실린 Singh M.과 Nowick, S.M.의 "MOUSETRAP: ultra high-speed transitional signalling asynchronous pipelines"과, 1989년도 ACM 커뮤니케이션에 게재된 Sutherland, I.E.의 "Micropipelines"와, "Electronic circuit with a chain of processing elements"라는 명칭의 유럽 특허 출원 제 03103399.6 호에 개시되어 있다.
비동기식 프로세서에서, 파이프라인 스테이지는 일반적으로 래치(latches)를 이용하여 구현된다.
파이프라인 프로세서가 통상적으로 구현하는 인스트럭션 세트 내의 인스트럭션은 상이한 래치를 갖는 경우가 자주 있다. 이는 인스트럭션이 순차적 방식으로 실행되는 경우에 완료되기 위한 시간의 길이가 상이하다는 것을 의미한다.
예를 들어, 수학 연산(ALU) 인스트럭션과 로드 동작을 고려하자.
도 1은 개별 래치(4,6,8,10)를 갖는 5개의 스테이지를 갖는 전형적 5-스테이지 파이프라인(2)을 도시하고 있다. CPU 수학 및 논리 연산이 실행 단계(제 3 단계)에서 수행된다. 로드 인스트럭션은 어드레스 연산을 위한 제 3 스테이지와, 메모리(12)로부터 실제로 데이터를 로딩하는 메모리 스테이지(제 4 스테이지)를 이용한다.
재기록(write-back) 스테이지(제 5 스테이지)에서, 실행 스테이지(제 3 스테이지)의 결과 또는 메모리(12)로부터 로딩된 데이터를 레지스터 파일(register file, 14)로 재기록하는 동작이 일어난다. 그러므로, ALU 연산에 대한 재기록 동작은 이론상으로 실행 스테이지 이후에 발생할 수 있는 반면, 로드 동작에 대한 재기록은 메모리 스테이지(제 4 스테이지) 후에 더 일찍 발생할 수 없다.
그러나, 실행 스테이지의 결과와 메모리 스테이지의 결과 모두가 이용 가능하게 되자마자 레지스터 파일(14)로 재기록되게 허용되는 경우, ALU 연산이 후속하는 로드는 2개의 동시적 재기록을 유도하여 레지스터 파일 리소스(14)상의 경합(a contention)을 일으킨다.
현재 이 리소스 경합은 2가지 방식으로 해결된다. 첫 번째 방안에서는, 레지스터 파일(14)에 추가 기록-포트를 추가하여 2개의 동시적 기록 동작이 레지스터 파일(14)에서 일어나게 한다. 도 1에서, 점선(16)은 제 3 래치(8)로부터 레지스터 파일(14)의 제 2 기록-포트로의 접속을 표현한다. 그러나, 이 방안은 하드웨어 관 점에서 많은 비용이 든다. 또한, 2개의 기록 동작 모두가 레지스터 파일(14)의 동일한 위치에 대해 예정되는 경우에는 어떤 제어 회로가 어느 값이 먼저 재기록 될지를 결정해야 한다.
두 번째 방안(도 1에 도시됨)은 추가 파이프라인 스테이지를 통해 ALU 동작의 결과를 강제하여(즉, 이전 동작이 레지스터 파일(14)로 전달된 후에 래치(10)에 저장되어), 로드 동작과 동일한 재기록 지연을 요구한다. 이 방안은 ALU 동작의 지연을 연장하여 로드 인스트럭션의 지연과 일치시킴으로써, 성능을 낮추고 파이프라인의 전력 소비를 증가시킨다. 이 방안의 다른 단점은 ALU 동작의 결과가 잠재적으로 레지스터 파일(14)에 더 일찍 기록될 수 있는 경우에도 여전히 "추가" 스테이지(래치(10))를 통해 진행해야 하므로 기록될 수 없다는 것이다.
그러므로, 많은 양의 하드웨어를 추가하지 않고 인스트럭션 지연을 증가시키지 않으면서 레지스터 파일 리소스 경합을 방지할 필요성이 존재한다.
본 발명의 제 1 양태에 따르면, 여러 종류의 인스트럭션을 처리하도록 구성되는 전자 회로가 제공되는데, 이 전자 회로는 제 1 및 제 2 파이프라인 스테이지및 파이프라인 스테이지들간에 위치되는 래치(a latch)를 포함하는데, 전자 회로는, 래치가 인에이블 신호에 응답하여 개방되고 폐쇄되는 첫 번째 종류의 인스트럭션을 처리하는 경우에는 정상 모드로, 래치가 개방으로 유지되어 인스트럭션이 래치에 저장되지 않고 제 1 및 제 2 파이프라인 스테이지를 통해 진행하는 두 번째 종류의 인스트럭션을 처리하는 경우에는 감소된 모드(a reduced mode)로 동작하도록 구성되며, 첫 번째 종류의 인스트럭션은 제 1 및 제 2 파이프라인 스테이지에 의한 처리를 요구하고, 두 번째 종류의 인스트럭션은 제 2 파이프라인 스테이지에 의한 처리를 요구한다.
본 발명의 제 2 양태에 따르면, 여러 종류의 인스트럭션을 처리하며, 제 1 및 제 2 파이프라인 스테이지 및 스테이지들간에 위치되는 래치를 포함하는 전자 회로를 동작시키는 방법이 제공되는데, 이 방법은 래치가 인에이블 신호에 응답하여 개방되고 폐쇄되는 첫 번째 종류의 인스트럭션을 처리하는 경우에는 정상 모드로, 래치가 개방으로 유지되어 인스트럭션이 래치에 저장되지 않고 제 1 및 제 2 파이프라인 스테이지를 통해 진행하는 두 번째 종류의 인스트럭션을 처리하는 경우에는 감소된 모드로 전자 회로를 동작시키되, 첫 번째 종류의 인스트럭션은 제 1 및 제 2 파이프라인 스테이지에 의한 처리를 요구하고, 두 번째 종류의 인스트럭션은 제 2 파이프라인 스테이지에 의한 처리를 요구한다.
본 발명에 대한 보다 나은 이해를 제공하고 어떻게 실시되는지를 더 분명히 보여주기 위해, 예시를 위한 첨부된 도면을 참조할 것이다.
도 1은 종래 5-스테이지 마이크로프로세서 파이프라인을 도시하고 있다.
도 2는 본 발명에 따른 5-스테이지 마이크로프로세서 파이프라인을 도시하고 있다.
도 3은 본 발명에 따른 파이프라인 래치 제어기의 구현을 도시하고 있다.
도 4는 본 발명에 따른 5-스테이지 파이프라인의 동작을 도시하고 있다.
비동기식 마이크로프로세서의 파이프라인을 참조하여 본 발명을 설명할 것이지만, 본 발명은 상이한 래치를 이용하는 인스트럭션 프로세싱에 지연을 도입함으로써 고유 리소스에 대한 경합 문제가 해결되는 파이프라인을 갖는 임의의 종류의 전자회로에 적용 가능하다는 것을 인식할 것이다.
도 2는 본 발명에 따른 마이크로프로세서 파이프라인(20)을 도시하고 있다. 이 도시된 예에서, 마이크로프로세서 파이프라인(20)은 5-스테이지 파이프라인이지만, 본 발명은 이보다 많거나 적은 스테이지를 갖는 파이프라인에 적용 가능하다는 것을 인식할 것이다. 또한, 본 발명을 하나의 특정 핸드셰이킹 프로토콜과 관련하여 설명하지만, 다른 프로토콜을 이용하는 시스템에 적용 가능하다는 것을 인식할 것이다.
파이프라인(20)의 스테이지는 종래와 같이 각각 개별 래치(22,24,26,28,30)를 포함하여, 각 래치는 개별 인에이블 신호(En1, En2, En3, En4 또는 En5)를 갖는데, 이는 래치의 동작 모드를 결정한다. 래치가 인에이블되면, 래치의 출력은 래치의 입력과 동일하고, 래치가 투명하다(transparent)고 불린다. 래치가 디스에이블되면, 래치의 출력은 자신의 입력부의 최종 값으로 유지된다.
인스트럭션 메모리(32)가 제 1 래치(22)에 접속되고, 이는 프로세서 파이프 라인(20)을 위해 인스트럭션을 저장한다. 인스트럭션은 데이터 메모리(34)의 특정 어드레스에 액세스하는 데 사용되는 로드 인스트럭션과, 수학 및 논리 유닛(ALU, 36)에 의해 실행될 수학 연산 인스트럭션을 포함하거나, 비교(Compare), 점프(Jump), 브랜치(Branch) 및 저장(Store) 인스트럭션과 같은 다른 종류의 인스트럭션을 포함할 수 있다.
전술한 바와 같이, 로드 및 수학 연산 인스트럭션의 결과는 제 5 래치(30)에 기록된다. 그러나, 비교, 점프, 브랜치 및 저장 인스트럭션의 결과는 제 5 래치(30)에 기록될 필요가 없으며 이들의 실행은 제 3 또는 제 4 스테이지 후에 완료될 수 있다.
검색된 인스트럭션이 제 1 래치(22)에 저장되고, 유닛(38)에 전달된다. 이 유닛(38)은 공통적으로 디코드 스테이지로 알려져 있으며 검색된 인스트럭션을 디코딩한다. 제어 및 데이터 신호를 포함할 수 있는 유닛(38)의 출력은 제 2 래치(24)가 임의의 이전 인스트럭션이 제 3 래치(26)에 안전하게 저장되었다는 확인을 수신하면 제 2 래치(24)에 저장된다. 이들 제어 및 데이터 신호는 파이프라인의 각 스테이지가 어느 동작을 수행해야 되는지를 알려준다.
제 2 래치(24)에 저장되는 인스트럭션은 그 후 ALU(36)에 의해 실행된다. 인스트럭션이 수학 연산 인스트럭션인 경우에 ALU(36)가 연산을 수행한다. 그러나, 인스트럭션이 로드 인스트럭션이면, ALU(36)는 파이프라인(20)의 제 4 스테이지에서 데이터 메모리(34)에 액세스되어야 하는 어드레스를 계산한다. 그 후, 연산의 결과는 제 3 래치(26)가 이전 인스트럭션이 다음 스테이지에 의해 저장되었다 는 확인을 수신하면 제 3 래치(26)의 레지스터(40 또는 42)에 저장된다. 이 결과를 저장하는 제 3 래치(26) 내의 특정 레지스터(40,42)는 처리될 인스트럭션의 성질에 의해 결정된다. 예를 들어, 인스트럭션이 로드 인스트럭션이면, 결과는 상부 레지스터(40)에 저장되어 데이터 메모리(34)가 액세스될 수 있다. 이와 달리, 인스트럭션이 수학 인스트럭션이면, 결과는 하부 레지스터(42)에 저장된다. 일실시예에서, 인에이블 신호(En3)는 조건 비트(conditional bits)와 함께 개별 레지스터(40,42)의 선택을 허용한다.
비교, 저장, 점프 또는 브랜치 인스트럭션의 경우, 인스트럭션은 (특정 인스트럭션에 따라) 제 3 스테이지, ALU(36) 또는 제 4 스테이지를 완료한 후에 완전히 실행된다.
제 4 스테이지에서, 현재 인스트럭션이 로드 인스트럭션이면, 데이터 메모리(34)가 액세스되고 요구되는 데이터는 래치(28)의 상부 레지스터(44)에 저장된다. 현재 인스트럭션이 수학 연산 인스트럭션이면, 제 3 스테이지로부터의 결과는 이제 래치(28)의 하부 레지스터(46)에 저장된다.
제 3 및 제 4 래치(26 및 28) 각각에 단 2개의 레지스터만이 도시되었지만, 3개 이상이 존재할 수 있으며, 정확한 개수는 파이프라인이 처리할 수 있는 인스트럭션의 종류에 의존한다는 것을 인식할 것이다.
제 5 스테이지에서, (래치(28)에 저장되는) 제 4 스테이지의 결과는 래치(30)로 기록된다(이하 '레지스터 파일'이라 함).
전술한 바와 같이, 일단 수학 연산 인스트럭션이 제 3 스테이지에서 처리되 었으면, 레지스터 파일(30)로 기록될 준비를 갖춘다. 그러나, 이는 제 4 래치의 레지스터 파일(30)에 기록되기를 기다리는 데이터가 또한 존재하는 경우에 레지스터 파일(30)에서 문제를 일으킬 것이다. 전술한 바와 같이, 연산 인스트럭션의 결과는 제 4 래치에 저장되어야 하며, 이전 로드 인스트럭션에 의해 로딩되거나 이전 수학 인스트럭션을 실행하여 발생되는 데이터가 레지스터 파일(30)로 기록된다.
물론, 제 4 래치에 연산 인스트럭션의 결과를 저장함으로써 수학 연산 인스트럭션의 프로세싱으로의 지연을 유도한다.
그러므로, 상이한 레이턴시(latencies)를 갖는 인스트럭션이 발신되는(즉, 인스트럭션이 그들의 최종 결과를 연산하는 데 상이한 시간이 소모되는) 본 발명에 따르면, 파이프라인(20)의 선택된 래치를 투명하게 하고 2개의 인접 스테이지를 하나의 스테이지로 효율적으로 결합시켜 데이터가 다음 스테이지로 직업 전달되게 하고 데이터 경로의 불필요한 지연을 제거함으로써, 인스트럭션이 파이프라인(20)을 통해 가속될 수 있다.
전술한 바와 같이, 상이한 '레이턴시'는 순차적 방식으로 실행될 때 완료되는 시간이 동일할 것을 요구하지 않는다. 예를 들어, 도 2에 도시된 실시예에서, 수학 연산 인스트럭션은 4의 레이턴시를 갖는데, 이는 제 4 스테이지를 통해 전달될 필요가 없으며 5개의 파이프라인 스테이지 중 4개에 의해 실행되기만 하면 되기 때문이다. 그러나, 로드 인스트럭션(또는 이와 관련되는 데이터)은 5개의 래치 각각에 의해 저장되어야 하므로 5의 레이턴시를 갖는다. 제 5 스테이지를 사용하지 않는 비교, 브랜치 및 점프 인스트럭션과 같은 인스트럭션은 3의 레이턴시를 갖는 다. 저장 인스트럭션은 제 4 스테이지를 사용해야 하지만 제 5(재기록) 스테이지를 사용할 필요가 없으므로 4의 레이턴시를 갖는다.
그러므로, 본 발명의 한 양태에 따르면, 래치를 투명 상태로 유지하고 제 3 스테이지를 완료한 후에 연산 인스트럭션의 결과를 레지스터 파일(30)로 직접 기록되게 함으로써 제 4 스테이지 래치의 연산 인스트럭션의 결과를 저장하는 것이 방지된다.
그러나, 인스트럭션이 로드 인스트럭션이면 인스트럭션은 5개의 스테이지 모두에 의해 처리되어야 하며 제 4 스테이지는 투명 모드에서 유지될 수 없다. 또한, 파이프라인에서 로드 인스트럭션 또는 (가속되지 않은 더 빠른 수학 인스트럭션과 같은) 5개의 파이프라인 스테이지 모두에 의한 처리를 요구하는 다른 인스트럭션이 수학 연산 인스트럭션에 선행하는 경우, 제 4 스테이지는 그 수학 연산에 의해 건너뛰어질(skipped) 수 없으며 또한 제 4 스테이지에 저장되어야 한다.
그러므로, 본 발명에 따라 제 4 스테이지 래치(28)의 동작을 제어하기 위해, 래치 제어 회로(48)가 제공된다. 래치 제어 회로(48)는 제 4 래치 인에이블 신호(En4) 및 제어 신호를 수신한다.
제 4 스테이지 이외의 스테이지가 (처리될 특정 인스트럭션 및/또는 파이프라인 구조에 의존할) 특정 인스트럭션에 대해 중복되는 다른 파이프라인에서는, 래치 제어기 또는 추가 래치 제어기는 다른 파이프라인 래치로 접속될 수 있다.
래치 제어 회로(48)는 제 4 래치(28)의 동작 모드를 제어하는 기능을 한다. 현재 제 3 스테이지 래치(26)의 인스트럭션이 파이프라인(20)을 통해 가속화될 수 없는 경우(예를 들어, 인스트럭션이 로드 인스트럭션이고 제 4 스테이지에서 데이터를 검색해야 하거나, 가속화되지 않은 더 빠른 수학 인스트럭션과 같이, 인스트럭션이 로드 인스트럭션 또는 5개의 파이프라인 스테이지 모두에 의한 처리를 요구하는 인스트럭션 수학 인스트럭션이 선행하는 수학 인스트럭션인 경우), 래치 제어 회로(48)는 인에이블 신호(En4)에 의해 제 4 래치(28)가 정상적으로 동작되게 한다. 즉, 인에이블 신호(En4)는 (가령, 저장될 다음 데이터를 로딩할 때) 래치가 투명한지 또는 래치가 마지막으로 인에이블된 때의 그 입력의 최종 값을 유지하는지를 제어한다.
그러나, 제 3 스테이지의 인스트럭션이 파이프라인을 통해 가속될 수 있는 경우(즉, 예를 들어 인스트럭션이 제 4 스테이지를 통해 가속된 인스트럭션이나 제 5 스테이지를 요구하지 않는 인스트럭션, 즉, 비교 인스트럭션이 선행하는 수학 인스트럭션이면), 제어 신호는 파이프라인의 제 4 스테이지를 요구하는 다른 인스트럭션이 처리될 때까지 투명 모드로 제 4 래치를 유지한다. 즉, 래치 제어 회로(48)는 인에이블 신호(En4)를 무효로 하고 래치(28)를 투명 상태로 유지한다.
래치(28)의 투명성은 래치(26)로부터의 데이터가 제 5 스테이지로 직접 송신되게 하여 레지스터 파일(30)로 기록하고, 제 4 스테이지를 모두 효율적으로 건너뛰게 할 것이다.
하나 이상의 래치가 개방으로 유지되어 효율적으로 그 스테이지를 투명하게 하는 모드를 갖는 파이프라인(20)은 감소된(reduced) 파이프라인이라 알려져 있다.
파이프라인 래치 제어기의 일실시예가 도 3에 도시되어 있다. 래치(28)는 (래치가 인에이블 신호(En4)에 의해 제어되는) 정상 래칭 모드와 래치가 투명하게 유지되는 감소된 모드 사이에서 전환된다.
이 도면에서, 인에이블 신호의 하이 값(a high value)은 투명하게 되는 래치(28)로 이동된다. 그러나, 이 제어기를 반대 상황, 즉, 인에이블 신호의 로우 값(a low value)이 래치를 투명하게 하는 상황에 적응할 수도 있다는 것은 당업자에게 자명할 것이다.
래치 제어기(48)에서, 감소된 모드와 정상 모드 사이의 전환은 제어 신호(Control)에 의해 결정된다. 이 신호는 다증화기(50)의 동작을 제어하는데, 이는 자신의 입력으로서 인에이블 신호(En4)와 공급 전압 신호(VDD)를 갖는다.
현재 인스트럭션(예를 들어 수학 인스트럭션)이 파이프라인 스테이지를 통해 가속될 수 있는 인스트럭션이면, 제어 신호는 래치(28)가 투명하야 한다고 표시하며, 다중화기(50)는 제어 신호에 의해 제어되어 VDD 신호가 래치(28)의 동작을 제어할 것이다. 그러므로, 래치(28)는 투명 상태로 강제될 것이며 인에이블 신호(En4)의 값과는 무관하다. 그러나, 인스트럭션이 제 4 스테이지에 의해 저장되고 처리되어야 하는 인스트럭션이면, 제어 신호는 다중화기(50)를 동작시켜 인에이블 신호가 래치(28)로 전달되고 정상적으로 인스트럭션은 제 4 래치에 저장되게 한다.
전술하였으며 도 3에 도시된 래치 제어 회로는 예시적인 것이며 본 발명을 구현하는 데 사용될 수 있는 많은 래치 제어 회로 중 단지 하나임을 인식할 것이다. 당업자는 많은 다른 종류의 래치 제어 회로를 쉽게 인식할 것이다.
그러므로, 이러한 제어기를 갖는 래치는 투명 모드로 전환되면서 시스템의 다른 래치는 그들의 인에이블 신호에 응답하여 래칭을 정상적으로 유지할 수 있다.
이 실시예에서, 제어 신호는 관련 인스트럭션의 아이덴터티와 파이프라인의 현재 상태를 판단함으로써 발생된다. 이 상태는 제 4 스테이지를 통한 가속이 발생하거나 일어나거나 일어나지 않을 것이다. 전술한 바와 같이, 이전 인스트럭션이 로드 인스트럭션이었거나, 로드 인스트럭션이 더 일찍 실행되었고 재기록(제 5) 스테이지를 사용하지 않는 인스트럭션이 아직 이어지지 않은 경우에는 가속이 일어나지 않는다. 로드 인스트럭션이 아직 실행되지 않았거나, 로드 인스트럭션은 실행되었지만 재기록(제 5) 스테이지를 요구하지 않는 인스트럭션이 후속적으로 이어지지 않는 경우에 가속이 일어날 것이다.
제어 신호의 타이밍은 주의 깊게 제어되어야 한다는 것을 인식할 것이다. 제 5 스테이지의 임의의 데이터가 레지스터 파일로 기록되기 전에 제 4 래치가 투명 모드로 전환되면 데이터는 손실될 것이다. 그러므로, 임의의 래치의 전환은 파이프라인을 통한 데이터 흐름의 관점에서 '안전'해야 한다.
도 4는 본 발명에 따른 예시적 5-스테이지 파이프라인의 동작을 도시하고 있다.
도 4의 윗부분에는, 제 1, 제 2, 제 3, 제 4, 제 5 래치의 각각에 대한 인에이블 신호(각각 En1, En2, En3, En4, En5)가 도시되어 있다. 실선은 래치를 동작하는 데 사용되는 신호를 표시한다. 제 1, 제 2, 제 3 및 제 5 래치의 경우에 이들 신호는 그들의 각 인에이블 신호에 대응하며, 제 4 래치의 경우에는 이 신호는 래치가 정상 모드로 동작하고 있을 때에는 각 인에이블 신호에 대응하고 래치가 감소된 모드 또는 투명 모드에서 동작하고 있을 때에는 '하이' 신호로 번복된다. En4의 점선은 제 4 래치에 대한 종래 인에이블 신호를 도시하고 있다.
도 4의 아랫부분은 특정 시각의 특정 파이프라인 스테이지에 존재하는 인스트럭션을 도시하고 있다. 제 1 파이프라인 스테이지, 인스트럭션이 인스트럭션 메모리(32)로부터 페칭되고(fetched) 제 1 래치(22)에 선행하는 스테이지는 IF로 표시된다. 제 2, 제 3, 제 4 및 제 5 래치에 각각 선행하는 제 2, 제 3, 제 4 및 제 5 스테이지는 ID, EX, MEM 및 WB로 각각 표시된다.
이 예시적 파이프라인에서, 3개의 상이한 종류의 인스트럭션이 사용된다. 첫 번째 종류의 인스트럭션은 파이프라인의 5개의 스테이지 각각에 의한 실행을 요구한다. 로드 인스트럭션은 이 종류의 인스트럭션의 일례이다. 두 번째 종류의 인스트럭션은 제 4 스테이지 MEM에 의한 실행을 요구하지는 않지만 제 5 래치로 기록되어야 한다. 덧셈(add), 뺄셈(sub), 논리 or(orr), 논리 and(and)와 같은 수학 연산 인스트럭션은 두 번째 종류의 인스트럭션의 예이다. 세 번째 종류의 인스트럭션은 실행 후에 제 5 래치로 기록될 필요가 없으며 제 3 또는 제 4 스테이지 후에 완전히 처리된다. 비교(comp), 점프, 브랜치 및 저장 인스트럭션은 세 번째 종류의 인스트럭션의 예이다.
도 4의 아랫부분은 인스트럭션 세트가 본 발명에 따른 파이프라인을 통해 어떻게 진행하는지를 도시하고 있다. 이 예에서, 처리될 인스트럭션은 sub, orr, load, add, sub, comp, add, and, sub, orr, and의 순서로 발생한다.
제 1 프로세싱 주기동안의 파이프라인 상태를 도시하는 열 1에서, 제 4 래치를 통한 가속이 가능한데, 이는 점선 상자(52)에 의해 도시되어 있다. 여기서, 제 4 스테이지의 'sub' 인스트럭션은 제 4 래치가 투명 모드로 유지되는 동안 제 5 스테이지로 진행하였다. 인에이블 신호(En4)가 '하이'로 유지되어 투명 상태로 제 4 래치를 유지한다는 것을 알 수 있다.
제 2 프로세싱 주기의 파이프라인의 상태를 표현하는 열 2에서 유사한 상황을 볼 수 있다. 여기서, 'orr' 인스트럭션은 제 4 및 제 5 스테이지를 통해 진행하였다.
그러나, 'orr' 인스트럭션에 이어지는 다음 인스트럭션이 '로드' 인스트럭션이므로, 이는 제 4 스테이지를 이용하여 원하는 데이터를 메모리(34)로부터 로드하고, 제 4 래치는 더 이상 투명 모드로 유지될 수 없다. 그러므로, 열 2로부터 열 3으로의 이동 동안, 제 4 래치가 정상 모드로 다시 전환되는데, 이는 En4로부터 알 수 있다. 그러므로, '로드' 인스트럭션은 제 3 래치 및 제 4 래치에 저장되고 제 5 스테이지는 제 3 프로세싱 주기 동안에 비활성화된다.
제 4 프로세싱 주기에서, '로드' 인스트럭션은 그 결과가 레지스터 파일로 기록되는 제 5 스테이지로 전달된다.
제 5 프로세싱 주기에서, '로드' 인스트럭션은 파이프라인에 의해 완전히 실행되었지만, 아직 임의의 후속 인스트럭션을 가속할 수 없다. 구체적으로, '로드' 인스트럭션에 이어지는 인스트럭션은 'add', 'sub', 'comp' 및 'add'이다. '로드' 인스트럭션 후의 2개의 인스트럭션은 두 번째 종류의 인스트럭션이므로(즉, 제 4 스테이지를 통해 전달될 필요는 없으나 레지스터 파일로 기록되어야 하므로), 아직 제 4 래치를 다시 투명 모드로 놓을 수 없다. 그러므로, 제 5 및 제 6 프로세싱 주기에서, 제 4 래치는 En4에 의해 정상적으로 동작된다.
그러나, 다음 인스트럭션 'comp'은 세 번째 종류이므로(즉, 실행 후에 제 5 래치로 기록될 필요 없으며 제 3 또는 제 4 스테이지 후에 완전히 처리되므로), '슬롯'이 제 4 스테이지(MEM)의 제 6 프로세싱 주기 동안에 파이프라인에서 생성된다. 그러므로, 이 '슬롯'은 파이프라인이 감소된 상태로 다시 놓여질 수 있게 하는데, 여기서 후속 인스트럭션은 제 4 스테이지를 통해 가속될 수 있다.
결과적으로, 제 6 프로세싱 주기와 제 7 프로세싱 주기 사이의 이동 기간에, 제 4 래치 인에이블 신호는 '하이' 신호로 번복되어 제 4 래치를 투명 상태로 유지한다. 그러므로, 제 3 래치가 다음 인스트럭션 또는 연산 결과('add' 인스트럭션)를 수신하기 위해 정상적으로 전환될 때, 이 인스트럭션은 단일 스테이지이지만 제 4 및 제 5 스테이지 모두를 통해 진행한다. 다시, 이 '단일 스테이지'는 점선 상자(52)로 표시된다.
파이프라인은 다른 '로드' 인스트럭션이 처리될 때까지 이 감소된 상태로 계속 존재할 것이다.
본 발명의 사용은 종래 시스템에 비해 2개의 현저한 장점을 제공한다. 첫 번째 장점은 레지스터 파일로의 일부 재기록이 종래 프로세서에서보다 일찍 일어날 수 있다는 점인데, 이는 다시 말해 일부 인스트럭션의 실행 속도가 증가된다는 것을 의미한다. 이는 마이크로프로세서 성능을 증가시킨다.
두 번째 장점은 파이프라인 스테이지가 감소되는 경우에 프로세싱 주기 동안 그 스테이지의 래치를 활성화시킬 필요가 없으므로 칩의 전력 소비를 감소시킨다는 점이다.
전술한 실시예는 본 발명을 제한하는 것이 아니라 예시적인 것이며, 당업자는 본 발명의 범위를 벗어나지 않고 많은 다른 실시예를 설계할 수 있음을 유의해야 한다. '포함한다'라는 표현이 청구 범위에 기재된 것 이외의 요소 또는 단계의 존재를 배제하는 것은 아니다.

Claims (20)

  1. 여러 종류의 인스트럭션을 처리하도록 구성되는 전자 회로로서,
    제 1 및 제 2 파이프라인 스테이지와,
    상기 파이프라인 스테이지들간에 위치되는 래치(a latch)를 포함하되,
    상기 전자 회로는, 상기 래치가 인에이블 신호에 응답하여 개방되고 폐쇄되는 첫 번째 종류의 인스트럭션을 처리하는 경우에는 정상 모드로, 상기 래치가 개방으로 유지되어 상기 인스트럭션이 상기 래치에 저장되지 않고 상기 제 1 및 제 2 파이프라인 스테이지를 통해 진행하는 두 번째 종류의 인스트럭션을 처리하는 경우에는 감소된 모드(a reduced mode)로 동작하도록 구성되며,
    상기 첫 번째 종류의 인스트럭션은 상기 제 1 및 제 2 파이프라인 스테이지에 의한 처리를 요구하고, 상기 두 번째 종류의 인스트럭션은 상기 제 2 파이프라인 스테이지에 의한 처리를 요구하는
    전자 회로.
  2. 제 1 항에 있어서,
    상기 래치에 접속되는 래치 제어 회로를 더 포함하되,
    상기 래치 제어 회로는 상기 전자 회로가 상기 정상 모드이면 상기 인에이블 신호를 이용하여 상기 래치를 제어하고, 상기 전자 회로가 상기 감소된 모드이면 상기 래치를 유지하는
    전자 회로.
  3. 제 2 항에 있어서,
    상기 래치 제어 회로는 상기 전자 회로의 동작 모드를 표시하는 신호를 수신하는
    전자 회로.
  4. 제 1 항에 있어서,
    상기 전자 회로는 세 번째 종류의 인스트럭션을 처리하고,
    상기 세 번째 종류의 인스트럭션은 상기 제 2 파이프라인 스테이지에 의한 처리를 요구하지 않는
    전자 회로.
  5. 제 4 항에 있어서,
    상기 전자 회로는 상기 세 번째 종류의 인스트럭션이 처리될 때까지 상기 정상 모드로 동작하는
    전자 회로.
  6. 제 5 항에 있어서,
    상기 세 번째 종류의 인스트럭션이 처리된 후, 후속 인스트럭션이 두 번째 또는 세 번째 종류의 인스트럭션이면 상기 전자 회로는 감소된 모드로 동작하는
    전자 회로.
  7. 제 4 항에 있어서,
    상기 전자 회로는 상기 첫 번째 종류의 인스트럭션이 처리될 때까지 상기 감소된 모드로 동작하는
    전자 회로.
  8. 제 1 항에 있어서,
    상기 첫 번째 종류의 인스트럭션은 로드 인스트럭션(a load instruction)을 포함하는
    전자 회로.
  9. 제 1 항에 있어서,
    상기 두 번째 종류의 인스트럭션은 수학 연산 인스트럭션을 포함하는
    전자 회로.
  10. 제 4 항에 있어서,
    상기 세 번째 종류의 인스트럭션은 비교, 저장, 브랜치 및 점프 인스트럭션을 포함하는
    전자 회로.
  11. 제 1 항에 있어서,
    상기 제 1 파이프라인 스테이지는 데이터 메모리를 포함하는
    전자 회로.
  12. 제 1 항에 있어서,
    상기 제 2 파이프라인 스테이지는 재기록 스테이지(a write back stage)를 포함하는
    전자 회로.
  13. 여러 종류의 인스트럭션을 처리하며, 제 1 및 제 2 파이프라인 스테이지 및 상기 스테이지들간에 위치되는 래치를 포함하는 전자 회로를 동작시키는 방법으로서,
    상기 래치가 인에이블 신호에 응답하여 개방되고 폐쇄되는 첫 번째 종류의 인스트럭션을 처리하는 경우에는 정상 모드로, 상기 래치가 개방으로 유지되어 상기 인스트럭션이 상기 래치에 저장되지 않고 상기 제 1 및 제 2 파이프라인 스테이지를 통해 진행하는 두 번째 종류의 인스트럭션을 처리하는 경우에는 감소된 모드로 상기 전자 회로를 동작시키되,
    상기 첫 번째 종류의 인스트럭션은 상기 제 1 및 제 2 파이프라인 스테이지에 의한 처리를 요구하고, 상기 두 번째 종류의 인스트럭션은 상기 제 2 파이프라인 스테이지에 의한 처리를 요구하는
    전자 회로 동작 방법.
  14. 제 13 항에 있어서,
    상기 전자 회로는 또한 세 번째 종류의 인스트럭션을 처리하되,
    상기 세 번째 종류의 인스트럭션은 상기 제 2 파이프라인 스테이지에 의한 처리를 요구하지 않는
    전자 회로 동작 방법.
  15. 제 14 항에 있어서,
    상기 세 번째 종류의 인스트럭션이 처리될 때까지 상기 정상 모드로 상기 전자 회로를 동작하는 단계를 더 포함하는
    전자 회로 동작 방법.
  16. 제 15 항에 있어서,
    상기 세 번째 종류의 인스트럭션을 처리한 후, 후속 인스트럭션이 상기 두 번째 종류 또는 세 번째 종류의 인스트럭션이면 상기 전자 회로를 감소된 모드롤 동작시키는 단계를 더 포함하는
    전자 회로 동작 방법.
  17. 제 14 항에 있어서,
    상기 첫 번째 종류의 인스트럭션이 처리될 때까지 상기 감소된 모드로 상기 전자 회로를 동작시키는 단계를 더 포함하는
    전자 회로 동작 방법.
  18. 제 13 항에 있어서,
    상기 첫 번째 종류의 인스트럭션은 로드 인스트럭션을 포함하는
    전자 회로 동작 방법.
  19. 제 13 항에 있어서,
    상기 두 번째 종류의 인스트럭션은 수학 연산 인스트럭션을 포함하는
    전자 회로 동작 방법.
  20. 제 14 항에 있어서,
    상기 세 번째 종류의 인스트럭션은 비교, 저장, 브랜치 및 점프 인스트럭션인
    전자 회로 동작 방법.
KR1020067018570A 2004-03-10 2005-02-24 전자 회로와 그 동작 방법 KR20070004705A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP04100975.4 2004-03-10
EP04100975 2004-03-10

Publications (1)

Publication Number Publication Date
KR20070004705A true KR20070004705A (ko) 2007-01-09

Family

ID=34960609

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020067018570A KR20070004705A (ko) 2004-03-10 2005-02-24 전자 회로와 그 동작 방법

Country Status (6)

Country Link
US (1) US20070260857A1 (ko)
EP (1) EP1728151A2 (ko)
JP (1) JP2007528549A (ko)
KR (1) KR20070004705A (ko)
CN (1) CN100472432C (ko)
WO (1) WO2005091130A2 (ko)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101190937B1 (ko) * 2007-05-17 2012-10-12 후지쯔 가부시끼가이샤 연산 유닛, 프로세서 및 프로세서 아키텍처
US8868888B2 (en) 2007-09-06 2014-10-21 Qualcomm Incorporated System and method of executing instructions in a multi-stage data processing pipeline
EP2270653A4 (en) * 2008-03-25 2011-05-25 Fujitsu Ltd MULTI
ES2704473T3 (es) * 2009-02-06 2019-03-18 Xmedius Solutions Inc Atravesamiento de NAT usando perforación de agujero
JP2010198128A (ja) * 2009-02-23 2010-09-09 Toshiba Corp プロセッサシステム
KR102114112B1 (ko) * 2013-11-19 2020-05-22 에스케이하이닉스 주식회사 데이터 저장 장치
US11886885B2 (en) * 2021-08-10 2024-01-30 Nvidia Corporation High-throughput asynchronous data pipeline

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5099421A (en) 1988-12-30 1992-03-24 International Business Machine Corporation Variable length pipe operations sequencing
US5222240A (en) * 1990-02-14 1993-06-22 Intel Corporation Method and apparatus for delaying writing back the results of instructions to a processor
SG75756A1 (en) * 1994-02-28 2000-10-24 Intel Corp Method and apparatus for avoiding writeback conflicts between execution units sharing a common writeback path
US5778250A (en) * 1994-05-23 1998-07-07 Cirrus Logic, Inc. Method and apparatus for dynamically adjusting the number of stages of a multiple stage pipeline
TW448403B (en) * 1995-03-03 2001-08-01 Matsushita Electric Ind Co Ltd Pipeline data processing device and method for executing multiple data processing data dependent relationship
US5778208A (en) * 1995-12-18 1998-07-07 International Business Machines Corporation Flexible pipeline for interlock removal
DE69733444D1 (de) * 1996-03-29 2005-07-14 Matsushita Electric Ind Co Ltd Datenprozessor mit variabler Anzahl von Pipelinestufen
US5964866A (en) * 1996-10-24 1999-10-12 International Business Machines Corporation Elastic self-timed interface for data flow elements embodied as selective bypass of stages in an asynchronous microprocessor pipeline
US6958627B2 (en) * 2000-10-23 2005-10-25 Trustees Of Columbia University In The City Of New York Asynchronous pipeline with latch controllers
US6848060B2 (en) * 2001-02-27 2005-01-25 International Business Machines Corporation Synchronous to asynchronous to synchronous interface
US6586966B1 (en) * 2001-09-13 2003-07-01 Altera Corporation Data latch with low-power bypass mode
US20030226000A1 (en) * 2002-05-30 2003-12-04 Mike Rhoades Collapsible pipeline structure and method used in a microprocessor
US7065665B2 (en) * 2002-10-02 2006-06-20 International Business Machines Corporation Interlocked synchronous pipeline clock gating
WO2005026927A2 (en) * 2003-09-16 2005-03-24 Koninklijke Philips Electronics N.V. Electronic circuit with a chain of processing elements
EP1728152B1 (en) * 2004-03-10 2010-05-05 Nxp B.V. Pipeline circuit

Also Published As

Publication number Publication date
EP1728151A2 (en) 2006-12-06
WO2005091130A3 (en) 2006-07-27
JP2007528549A (ja) 2007-10-11
CN1930549A (zh) 2007-03-14
US20070260857A1 (en) 2007-11-08
WO2005091130A2 (en) 2005-09-29
CN100472432C (zh) 2009-03-25

Similar Documents

Publication Publication Date Title
KR100571322B1 (ko) 파이프라인식 프로세서에서의 예외 취급 방법, 장치 및시스템
US5353418A (en) System storing thread descriptor identifying one of plural threads of computation in storage only when all data for operating on thread is ready and independently of resultant imperative processing of thread
US5499349A (en) Pipelined processor with fork, join, and start instructions using tokens to indicate the next instruction for each of multiple threads of execution
US5604878A (en) Method and apparatus for avoiding writeback conflicts between execution units sharing a common writeback path
US8612726B2 (en) Multi-cycle programmable processor with FSM implemented controller selectively altering functional units datapaths based on instruction type
KR960001274B1 (ko) 트랩 및 스톨 제어기능을 갖는 병렬처리형 프로세서 시스템
JPH04275628A (ja) 演算処理装置
US6044453A (en) User programmable circuit and method for data processing apparatus using a self-timed asynchronous control structure
KR20070004705A (ko) 전자 회로와 그 동작 방법
KR20070039079A (ko) 명령어 처리 회로
TWI613590B (zh) 處理器流水線中的靈活的指令執行
JP3790626B2 (ja) デュアルワードまたは複数命令をフェッチしかつ発行する方法および装置
KR20080028410A (ko) 파이프라인 마이크로프로세서에서의 전력 절감을 위한시스템 및 방법
JPH05506323A (ja) 機能停止キャッシュを提供する装置と方法
JP3756410B2 (ja) 述語データを提供するシステム
RU2450329C2 (ru) Эффективный механизм сохранения адреса возврата из прерывания
US6055620A (en) Apparatus and method for system control using a self-timed asynchronous control structure
US9135006B1 (en) Early execution of conditional branch instruction with pc operand at which point target is fetched
GB2390179A (en) Improved stack architecture
US20050071830A1 (en) Method and system for processing a sequence of instructions
JP3461887B2 (ja) 可変長パイプライン制御装置
JP2002189591A (ja) プロセッサ
JPH0475143A (ja) タスク切換機能付プロセッサ
JP2001092658A (ja) データ処理回路及びデータ処理装置
WO1993018451A1 (en) Elimination of the critical path in memory control unit and input/output control unit operations

Legal Events

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