KR101754203B1 - 파워 게이팅 기반의 재구성가능 프로세서, 이를 위한 컴파일 장치 및 방법 - Google Patents

파워 게이팅 기반의 재구성가능 프로세서, 이를 위한 컴파일 장치 및 방법 Download PDF

Info

Publication number
KR101754203B1
KR101754203B1 KR1020110005585A KR20110005585A KR101754203B1 KR 101754203 B1 KR101754203 B1 KR 101754203B1 KR 1020110005585 A KR1020110005585 A KR 1020110005585A KR 20110005585 A KR20110005585 A KR 20110005585A KR 101754203 B1 KR101754203 B1 KR 101754203B1
Authority
KR
South Korea
Prior art keywords
cga
mode
node
vliw
power
Prior art date
Application number
KR1020110005585A
Other languages
English (en)
Other versions
KR20120084186A (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 삼성전자주식회사
Priority to KR1020110005585A priority Critical patent/KR101754203B1/ko
Priority to US13/213,333 priority patent/US9304967B2/en
Publication of KR20120084186A publication Critical patent/KR20120084186A/ko
Application granted granted Critical
Publication of KR101754203B1 publication Critical patent/KR101754203B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7867Architectures of general purpose stored program computers comprising a single central processing unit with reconfigurable architecture
    • 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
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3287Power saving characterised by the action undertaken by switching off individual functional units in the computer system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/44Encoding
    • G06F8/443Optimisation
    • G06F8/4432Reducing the energy consumption
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/44Encoding
    • G06F8/447Target code generation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/47Retargetable compilers
    • 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/30003Arrangements for executing specific machine instructions
    • G06F9/30076Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
    • G06F9/30083Power or thermal control instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30181Instruction operation extension or modification
    • G06F9/30189Instruction operation extension or modification according to execution mode, e.g. mode flag
    • 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/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
    • G06F9/3889Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled by multiple instructions, e.g. MIMD, decoupled access or execute
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/50Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Power Sources (AREA)
  • Executing Machine-Instructions (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

본 발명의 일 양상에 따른 재구성가능 프로세서는, 다수의 펑션 유니트(function unit, FU)를 포함하고, 제 1 모드에서 적어도 하나의 펑션 유니트를 포함하는 제 1 그룹에 기초하여 제 1 유형의 연산을 처리하고, 제 2 모드에서 적어도 하나의 펑션 유니트를 포함하는 제 2 그룹에 기초하여 제 2 유형의 연산을 처리하는 처리부, 및 제 1 모드와 제 2 모드간의 모드 전환을 유도하는 모드 전환 신호 또는 모드 전환 명령어에 따라 제 1 그룹 또는 제 2 그룹 중 어느 하나에 선택적으로 전원을 공급하는 전원관리부를 포함할 수 있다.

Description

파워 게이팅 기반의 재구성가능 프로세서, 이를 위한 컴파일 장치 및 방법{Reconfigurable processor using power gating, complier and complie method thereof}
재구성가능 프로세서 및 재구성가능 프로세서용 컴파일러와 관련된다.
통상적으로, 재구성 가능 아키텍처(reconfigurable architecture)란 어떠한 작업을 수행하기 위한 컴퓨팅 장치의 하드웨어적 구성을 각각의 작업에 최적화되도록 변경할 수 있는 아키텍처를 의미한다.
어떠한 작업을 하드웨어적으로만 처리하면 고정된 하드웨어의 기능으로 인해 작업 내용에 약간의 변경이 가해지면 이를 효율적으로 처리하기가 어렵다. 또한, 어떠한 작업을 소프트웨어적으로만 처리하면 그 작업 내용에 맞도록 소프트웨어를 변경하여 처리하는 것이 가능하지만 하드웨어적 처리에 비해 속도가 늦다.
재구성 가능 아키텍처는 이러한 하드웨어/소프트웨어의 장점을 모두 만족시킬 수가 있다. 특히, 동일한 작업이 반복적으로 수행되는 디지털 신호 처리 분야에서는 이러한 재구성 가능 아키텍처가 많은 주목을 받고 있다.
재구성 가능 아키텍처의 종류는 여러 가지가 있는데 그 중 코어스 그레인 어레이(Coarse-Grained Array)가 대표적이다. 코어스 그레인 어레이는 여러 개의 프로세싱 유닛으로 이루어진다. 그리고 프로세싱 유닛들 간의 연결 상태가 조절됨에 따라 어떤 작업에 최적화되는 것이 가능하다.
한편 최근에는 코어스 그레인 어레이의 특정 프로세싱 유닛을 VLIW(very long instruction word) 머신으로 활용하는 재구성 가능 아키텍처가 등장하게 되었다. 이러한 재구성 가능 아키텍처는 두 개의 실행 모드를 갖는다. 통상적으로, CGA 모드 및 VLIW 모드를 갖는 재구성 가능 아키텍쳐는 CGA 모드에서는 동일한 연산이 반복되는 루프를 처리하고 VLIW 모드에서는 루프 연산 외에 일반적인 연산을 처리한다.
파워 게이팅(power gating) 기반의 재구성가능 프로세서 및 실행 모드 전환 시점을 예측하고 전원 공급을 제어하기 위한 컴파일 장치 및 방법이 제공된다.
본 발명의 일 양상에 따른 재구성가능 프로세서는, 다수의 펑션 유니트(function unit, FU)를 포함하고, 제 1 모드에서 적어도 하나의 펑션 유니트를 포함하는 제 1 그룹에 기초하여 제 1 유형의 연산을 처리하고, 제 2 모드에서 적어도 하나의 펑션 유니트를 포함하는 제 2 그룹에 기초하여 제 2 유형의 연산을 처리하는 처리부, 및 제 1 모드와 제 2 모드간의 모드 전환을 유도하는 모드 전환 신호 또는 모드 전환 명령어에 따라 제 1 그룹 또는 제 2 그룹 중 어느 하나에 선택적으로 전원을 공급하는 전원관리부를 포함할 수 있다.
본 발명의 일 양상에 따른 컴파일러는, CGA(coarse-grained array) 모드 및 VLIW(very long instruction word) 모드를 갖는 재구성가능 프로세서를 위한 컴파일러에 있어서, CGA 모드에서 VLIW 모드로 전환되는 시점 이전에 VLIW 모드를 위한 VLIW 모듈의 전원을 키는 명령어를 상기 재구성가능 프로세서에서 실행될 프로그램에 삽입하거나, 또는 VLIW 모드에서 CGA 모드로 전환되는 시점 이전에 CGA 모드를 위한 CGA 모듈의 전원을 키는 명령어를 상기 재구성가능 프로세서에서 실행될 프로그램에 삽입할 수 있다.
본 발명의 다른 양상에 따른 컴파일러는, 다수의 펑션 유니트(function unit, FU)를 포함하고, CGA(coarse-grained array) 모드에서 적어도 하나의 펑션 유니트를 포함하는 CGA 모듈에 기초하여 루프 연산을 처리하고 VLIW(very long instruction word) 모드에서 적어도 하나의 펑션 유니트를 포함하는 VLIW 모듈에 기초하여 루프 연산 이외의 연산을 처리하는 재구성가능 프로세서를 위한 컴파일러에 있어서, 재구성가능 프로세서에서 실행될 프로그램의 데이터 의존 그래프(data dependency graph)에서 루프의 반복 실행의 종료여부를 결정하는 노드로 정의되는 루프 엑시트 결정 노드를 검출하고, 검출된 루프 엑시트 결정 노드의 다음 노드에 VLIW 모듈로 전원을 공급하기 위한 VLIW 파워 온 명령어(VLIW power-on instruction)를 삽입하는 제 1 컴파일부, 및 재구성가능 프로세서에서 실행될 프로그램의 제어 흐름 그래프(control flow graph)에서 VLIW 모드에서 CGA 모드로의 전환을 위해 컨텍스트를 저장하는 노드인 CGA 엔트리 노드를 검출하고, 검출된 CGA 엔트리 노드의 이전 노드에 CGA 모듈로 전원을 공급하기 위한 CGA 파워 온 명령어(CGA power-on instruction)를 삽입하는 제 2 컴파일부를 포함할 수 있다.
본 발명의 일 양상에 따른 컴파일 방법은, 다수의 펑션 유니트(function unit, FU)를 포함하고, CGA(coarse-grained array) 모드에서 적어도 하나의 펑션 유니트를 포함하는 CGA 모듈에 기초하여 루프 연산을 처리하고 VLIW(very long instruction word) 모드에서 적어도 하나의 펑션 유니트를 포함하는 VLIW 모듈에 기초하여 루프 연산 이외의 연산을 처리하는 재구성가능 프로세서를 위한 컴파일 방법에 있어서, 재구성가능 프로세서에서 실행될 프로그램의 데이터 의존 그래프(data dependency graph)에서 루프의 반복 실행의 종료여부를 결정하는 노드로 정의되는 루프 엑시트 결정 노드를 검출하고, 검출된 루프 엑시트 결정 노드의 다음 노드에 VLIW 모듈로 전원을 공급하기 위한 VLIW 파워 온 명령어(VLIW power-on instruction)를 삽입하는 단계, 및 재구성가능 프로세서에서 실행될 프로그램의 제어 흐름 그래프(control flow graph)에서 VLIW 모드에서 CGA 모드로의 전환을 위해 컨텍스트를 저장하는 노드인 CGA 엔트리 노드를 검출하고, 검출된 CGA 엔트리 노드의 이전 노드에 CGA 모듈로 전원을 공급하기 위한 CGA 파워 온 명령어(CGA power-on instruction)를 삽입하는 단계를 포함할 수 있다.
개시된 내용에 의하면, 각 모드에서 어느 하나의 모듈로 선택적으로 전원이 공급되기 때문에 불필요하게 전원이 낭비되는 것을 방지할 수 있다. 또한 모드 전환이 이루어지기 전에 미리 해당 모듈로의 전원 공급이 개시되기 때문에 모드 전환시의 지연시간을 줄임으로써 성능저하를 방지할 수 있다.
도 1은 본 발명의 일 실시예에 따른 재구성가능 프로세서(reconfigurable processor, RP processor)를 도시한다.
도 2는 본 발명의 일 실시예에 따른 재구성가능 프로세서의 모드 전환 및 파워 게이팅(power gating)을 도시한다.
도 3은 본 발명의 일 실시예에 따른 컴파일러를 도시한다.
도 4는 본 발명의 일 실시예에 따른 데이터 의존 그래프를 도시한다.
도 5는 본 발명의 일 실시예에 따른 제어 흐름 그래프를 도시한다.
도 6은 본 발명의 일 실시예에 따른 컴파일 방법을 도시한다.
이하, 첨부된 도면을 참조하여 본 발명의 실시를 위한 구체적인 예를 상세히 설명한다.
도 1은 본 발명의 일 실시예에 따른 재구성가능 프로세서(reconfigurable processor, RP processor)를 도시한다.
도 1을 참조하면, 재구성가능 프로세서(100)는 처리부(101), 모드제어부(102), 및 전원관리부(103)를 포함한다.
처리부(101)는 다수의 펑션 유니트(function unit, 이하, FU라 함)를 포함한다. 각각의 FU는 어떤 작업 또는 태스크를 독립적으로 처리할 수 있다. 각각의 FU는 프로세싱 코어(processing core), 레지스터 파일(register file) 등을 포함할 수 있다.
처리부(101)는 두 가지의 실행 모드를 갖는다. 처리부(101)는 루프 연산을 처리하기 위한 CGA(coarse-grained array) 모드와 루프 연산 이외의 다른 연산을 처리하기 위한 VLIW(very long instruction word) 모드를 갖는다.
CGA 모드에서, 처리부(101)는 CGA 모듈(111)로서 동작한다. CGA 모듈(111)은 FU#4 내지 FU#19의 16개 FU와 구성 메모리(113)를 포함할 수 있다. 각각의 FU#4 내지 FU#19는 어떤 루프를 병렬처리하는 것이 가능하다. FU#4 내지 FU#19들의 연결(connection) 또는 네트워크(network) 구조는 CGA 모듈(111)이 처리하고자 하는 루프의 종류에 따라 최적화될 수 있다. FU#4 내지 FU#19들의 연결 구조 또는 네트워크 구조를 나타내는 구성 정보는 구성 메모리(113)에 저장된다. 다시 말해, CGA 모드에서, 처리부(101)는 구성 메모리(113)에 저장된 구성 정보에 따라 CGA 모듈(111)에 기초하여 어떤 루프를 처리할 수 있다.
VLIW 모드에서, 처리부(101)는 VLIW 모듈(112)로서 동작한다. VLIW 모듈(112)은 FU#0 내지 FU#3의 4개의 FU와 VLIW 메모리(114)를 포함할 수 있다. 각각의 FU#0 내지 FU#3는 VLIW 메모리(114)에 저장된 아주 긴 인스트럭션을 VLIW 아키텍처에 따라 처리한다. 다시 말해, VLIW 모드에서, 처리부(101)는 VLIW 메모리(114)에 저장된 인스트럭션에 따라 VLIW 모듈(112)에 기초하여 어떤 연산을 처리할 수 있다.
본 발명의 다른 양상에 따라, 몇 개의 FU는 VLIW 모드 및 CGA 모드가 공유할 수 있다. 예컨대, 도 1에서, FU#0 내지 FU#4를 빼고, FU#5 내지 FU#8이 VLIW 모드에서 VLIW machine으로 동작할 수도 있다.
모드제어부(102)는 CGA 모드에서 VLIW 모드로의 전환 또는 VLIW 모드에서 CGA 모드로의 전환을 제어한다. 모드제어부(102)는 소정의 모드 전환 신호 또는 모드 전환 명령어를 생성할 수 있다. 예를 들어, 처리부(101)는 CGA 모드에서 루프 연산을 처리하다가 모드제어부(102)의 모드 전환 신호에 따라 VLIW 모드로 전환되고 루프 연산이 아닌 다른 연산을 처리할 수 있다. 이때, 루프 실행 결과는 Global Register File(115)에 임시로 저장된다. 또한 VLIW 모드에서 동작 중이던 처리부(101)는 모드제어부(102)의 제어 신호에 따라 CGA 모드로 전환되고 Global Register File(115)에서 컨텍스트 정보를 가져와서 이전에 처리하던 루프 연산을 계속 처리할 수 있다.
전원관리부(103)는 CGA 모드에서 VLIW 모듈(112)로의 전원 공급을 차단하고, VLIW 모드에서 CGA 모듈(111)로의 전원 공급을 차단한다. 전원관리부(103)는 모드제어부(102)의 모드 전환 신호 또는 모드 전환 명령어에 따라 각 모듈(111)(112)로의 전원 공급을 선택적으로 결정할 수 있다.
또한 전원관리부(103)는 CGA 모드에서 VLIW 모드로 전환될 때 VLIW 모듈(112)로의 전원 공급 차단을 중지한다. 즉 VLIW 모듈(112)로 전원 공급을 개시한다. 그리고 전원관리부(103)는 VLIW 모드에서 CGA 모드로 전환될 때 CGA 모듈(111)로의 전원 공급 차단을 중지한다. 즉 CGA 모듈(111)로 전원 공급을 개시한다.
그런데 각 모듈(111)(112)로 전원 공급이 개시될 때 각 모듈(111)(112)이 즉시 깨어나지 아니할 수 있다. 다시 말해, 전원 공급이 개시되더라도 각 모듈(111)(112)이 동작을 위해 완전히 깨어나기 위해서는 소정의 지연시간이 필요할 수도 있다.
따라서 본 발명의 일 양상에 따라 전원관리부(103)는 CGA 모드에서 VLIW 모드로 전환되기 직전에 미리 VLIW 모듈(112)로의 전원 공급을 개시한다. 또한 전원관리부(103)는 VLIW 모드에서 CGA 모드로 전환되기 직전에 미리 CGA 모듈(111)로의 전원 공급을 개시한다.
도 2는 본 발명의 일 실시예에 따른 재구성가능 프로세서의 모드 전환 및 파워 게이팅(power gating)을 도시한다.
도 1 및 도 2를 참조하면, 처리부(101)는 모드제어부(102)의 모드 전환 신호(201)에 따라 CGA 모드 또는 VLIW 모드로 동작한다. 예를 들어, 처리부(101)는 t0 내지 t1 사이의 시간 동안에 VLIW 모드로 동작하고, t1 내지 t3 사이의 시간 동안에 CGA 모드로 동작할 수 있다.
참조번호 202는 CGA 모듈(111)의 전원 상태를 나타낸다. 모드 전환 신호(201)에 따라 CGA 모듈(111)은 t0 시점부터 파워 오프 상태가 된다. 그리고 t1 시점에는 다시 파워 온 상태가 된다. 그런데 t1 시점에 전원 공급이 개시되면 CGA 모듈(111)이 완전히 동작할 때까지 지연이 발생할 수 있기 때문에 전원관리부(103)는 CGA 모드가 개시되는 t1 시점 이전인 t2 시점에 CGA 모듈(111)로 전원 공급을 개시한다. 따라서 CGA 모드가 시작되는 t1 시점에는 CGA 모듈(111)이 이미 켜져있는 상태이므로 지연 없이 CGA 모듈(111)이 바로 기동될 수 있다.
참조번호 203은 VLIW 모듈(112)의 전원 상태를 나타낸다. 모드 전환 신호(201)에 따라 VLIW 모듈(112)은 t1 시점부터 파워 오프 상태가 된다. 그리고 t3 시점에는 다시 파워 온 상태가 된다. 그런데 t3 시점에 전원 공급이 개시되면 VLIW 모듈(112)이 완전히 동작할 때까지 지연이 발생할 수 있기 때문에 전원관리부(103)는 VLIW 모드가 개시되는 t3 시점 이전인 t4 시점에 VLIW 모듈(112)로 전원 공급을 개시한다. 따라서 VLIW 모드가 시작되는 t3 시점에는 VLIW 모듈(112)이 이미 켜져있는 상태이므로 지연 없이 VLIW 모듈(112)이 바로 기동될 수 있다.
전원관리부(103)가 CGA 모듈(111) 또는 VLIW 모듈(112)을 끄는 시점은 모드 전환 신호(201)에 따라 결정될 수 있다. 즉 전원관리부(103)는 모드가 전환되는 시점에 CGA 모듈(111) 및 VLIW 모듈(112) 중 어느 하나를 선택적으로 끌 수가 있다.
전원관리부(103)가 CGA 모듈(111) 또는 VLIW 모듈(112)을 키는 시점은 사전에 정의된 파워 온 명령어(power-on instruction)에 따라 결정될 수 있다. 이 파워 온 명령어는 본 실시예에 따른 재구성가능 프로세서의 컴파일러에 의해 프로그램 실행 코드에 삽입될 수 있다. 다시 말해, 본 실시예에 따른 재구성가능 프로세서의 컴파일러는 프로그램 실행 코드를 분석해서 모드 전환이 이루어지는 시점을 예측하고, 그 시점 이전에 CGA 모듈(111) 또는 VLIW 모듈(112)을 키는 명령어를 삽입할 수가 있다.
도 3은 본 발명의 일 실시예에 따른 컴파일러를 도시한다.
도 3을 참조하면, 컴파일러(300)는 제 1 컴파일부(301) 및 제 2 컴파일부(302)를 포함한다.
도 1 및 도 3에서, 제 1 컴파일부(301)는 재구성가능 프로세서(100)에서 실행될 프로그램의 데이터 의존 그래프(data dependency graph)에서 루프 엑시트 결정 노드를 검출한다. 루프 엑시트 결정 노드는 루프의 반복 실행의 종료 여부를 결정하는 노드가 될 수 있다. 예컨대, 실행 중인 루프는 루프 엑시트 결정 노드의 조건을 만족하면 그 실행이 종료될 수 있다.
또한 제 1 컴파일부(301)는 검출된 루프 엑시트 결정 노드의 다음 노드에 VLIW 모듈(112)로 전원을 공급하기 위한 VLIW 파워 온 명령어(VLIW power-on instruction)를 삽입한다.
도 1 및 도 3에서, 제 2 컴파일부(302)는 재구성가능 프로세서(100)에서 실행될 프로그램의 제어 흐름 그래프(control flow graph)에서 CGA 엔트리 노드를 검출한다. CGA 엔트리 노드는 VLIW 모드에서 CGA 모드로의 전환을 위해 컨텍스트(예컨대, live-in data, live-out data)를 저장하는 노드가 될 수 있다.
또한 제 2 컴파일부(302)는 검출된 CGA 엔트리 노드의 이전 노드에 CGA 모듈(111)로 전원을 공급하기 위한 CGA 파워 온 명령어(CGA power-on instruction)를 삽입한다.
또한 제 2 컴파일부(302)는 검출된 CGA 엔트리 노드의 이전 노드가 경로 분기 노드인지 여부를 판단할 수 있다. 만약 검출된 CGA 엔트리 노드의 이전 노드가 경로 분기 노드인 경우, 검출된 CGA 엔트리 노드쪽 경로가 아닌 다른 경로의 특정 노드에 CGA 모듈(111)로 전원을 차단하기 위한 CGA 파워 오프 명령어(CGA power-off instruction)를 삽입할 수도 있다.
도 4는 본 발명의 일 실시예에 따른 데이터 의존 그래프를 도시한다.
도 1, 도 3 및 도 4에서, 제 1 컴파일부(301)는 데이터 의존 그래프(400)를 분석한다. 데이터 의존 그래프(400)는, 예컨대, i를 0부터 7까지 증가시키면서 연산을 수행하는 루프에 대한 데이터 의존 그래프가 될 수 있다.
데이터 의존 그래프(400)의 각 노드는 명령어, 상수 또는 변수가 될 수 있다. 시작 노드(401)는 루프의 개시를 나타내고, 종료 노드(408)는 루프의 종료를 나타낸다. 상수 노드(402)(404)에는 상수 7과 1이 각각 할당되고, 변수 노드(403)에는 변수 i가 할당된다. Add 노드(405)는 상수 노드 #1(402)과 변수 노드(403)의 값을 더하는 노드이고, 더해진 결과는 갱신 노드(406)에 의해 다시 i에 저장된다. 본 실시예에 따른 루프 엑시트 결정 노드(407)는 종료 노드(408)와 연결된다.
루프 엑시트 결정 노드(407)는 루프 종료 여부를 결정하는 노드이다. 다시 말해, 루프 엑시트 결정 노드(407)는 상수 노드 #1(402)과 변수 노드(403)의 출력을 수신해서 각 노드의 상태가 어떤 조건을 만족하는지 여부를 판단할 수 있다. 예컨대, 루프 엑시트 결정 노드(407)는 변수 노드(403)의 값이 상수 노드 #1(402)의 값과 같은지 여부를 판단할 수 있다. 만약 변수 노드(403)의 값이 상수 노드 #1(402)의 값과 같으면 종료 노드(408)가 실행되고, 그러하지 아니하면 갱신 노드(406)가 실행된다. 즉 i가 7이 아니면 루프를 반복하고 i가 7이되면 루프를 빠져나오게 되는 것이다.
루프 엑시트 결정 노드(407)가 검출되면, 제 1 컴파일러(301)는 루프 엑시트 결정 노드(407)의 다음 노드에 VLIW 파워 온 명령어(410)를 삽입한다. 예컨대, 제 1 컴파일러(301)는 루프 엑시트 결정 노드(407)와 종료 노드(408) 사이에 새로운 노드를 생성하고 생성된 노드에 VLIW 파워 온 명령어(410)를 삽입할 수 있다. VLIW 파워 온 명령어는 VLIW 모듈(112)로 전원 공급을 개시하는 명령어가 될 수 있다.
루프 연산은 CGA 모드에서 실행되기 때문에, 종료 노드(408)가 실행되면 루프 실행이 종료되고 VLIW 모드가 개시된다. 그런데 VLIW 파워 온 명령어가 루프 엑시트 결정 노드(407) 다음 및 종료 노드(408) 이전에 삽입되었기 때문에 VLIW 모드가 시작되기 직전에 VLIW 모듈(112)로 전원이 미리 공급됨으로써 VLIW 모듈(112)이 지연없이 바로 연산을 처리할 수가 있다.
도 5는 본 발명의 일 실시예에 따른 제어 흐름 그래프를 도시한다.
도 1, 도 3 및 도 5에서, 제 2 컴파일부(302)는 제어 흐름 그래프(500)를 분석한다. 제어 흐름 그래프(500)는, 예컨대, 어떤 연산을 처리하는 베이직 블록(basic block, BB)들의 실행 순서 및 분기 상태를 나타낼 수가 있다.
제 2 컴파일부(302)는 제어 흐름 그래프(500)에서 CGA 엔트리 베이직 블록을 검출한다. CGA 엔트리 베이직 블록은 VLIW 모드에서 CGA 모드로 전환하기 위해 live-in data 및 live-out data 등의 컨텍스트를 Global Register File(115)에 저장하는 베이직 블록이 될 수 있다.
또한 제 2 컴파일부(302)는 검출된 CGA 엔트리 베이직 블록의 이전 블록에 CGA 파워 온 명령어를 삽입한다. CGA 파워 온 명령어는 CGA 모듈(111)로 전원 공급을 개시하는 명령어가 될 수 있다.
예를 들어, CGA 엔트리 베이직 블록 #1(501)이 검출된 경우, 그 이전 베이직 블록(502)의 내부에 CGA 파워 온 명령어(510-2)를 삽입할 수 있다. 따라서 CGA 모드에 따라 CGA 모드 블록(506)이 실행되기 전에 CGA 모듈(111)에 전원 공급을 미리 개시함으로써 지연없이 CGA 모듈(111)이 바로 연산을 처리할 수가 있다.
또한, 제 2 컴파일부(302)는 검출된 CGA 엔트리 베이지 블록의 이전 블록에 경로 분기가 존재하는지 여부를 판단하고, 특정 경로에 CGA 파워 오프 명령어를 삽입할 수도 있다.
예를 들어, CGA 엔트리 베이지 블록 #2(503)가 검출된 경우, 제 2 컴파일부(302)는 그 이전 베이지 블록(504)이 경로 분기 블록인지 여부를 판단한다. 베이직 블록 #4(504)에서 두 개의 실행 경로가 가능하므로, 제 2 컴파일부(302)는 CGA 엔트리 베이직 블록 #2(503)가 없는 쪽의 경로에서 임의의 베이직 블록, 예컨대, 베이직 블록 #5(505)를 선택하고 선택된 베이직 블록에 CGA 파워 오프 명령어(510-3)를 삽입할 수 있다.
CGA 파워 오프 명령어(510-3)는 베이직 블록 #4(504)에서 베이직 블록 #5(505) 쪽으로 경로가 진행되서 CGA 모드로 전환되지 아니할 때를 대비한 것이다. 다시 말해, CGA 파워 오프 명령어(510-3)는, 베이직 블록 #4(504)에 삽입된 CGA 파워 온 명령어(510-2)에 따라 CGA 모듈(111)이 켜지지만 실제로는 CGA mode #1(508) 쪽으로 진행되지 아니할 때를 대비하여 불필요하게 CGA 모듈(111)이 켜지는 것을 방지한다.
도 6은 본 발명의 일 실시예에 따른 컴파일 방법을 도시한다.
도 1, 도 3 및 도 6을 참조하면, 컴파일러(300)는 재구성가능 프로세서(100)에서 실행될 프로그램의 데이터 의존 그래프(data dependency graph)에서 루프의 반복 실행의 종료여부를 결정하는 노드로 정의되는 루프 엑시트 결정 노드를 검출하고(601), 검출된 루프 엑시트 결정 노드의 다음 노드에 VLIW 모듈(112)로 전원을 공급하기 위한 VLIW 파워 온 명령어(VLIW power-on instruction)를 삽입한다(602). 예컨대, 제 1 컴파일부(301)가, 도 4a 및 도 4b와 같이, CGA 모드에서 VLIW 모드로 전환되는 부분을 검출하고, 검출된 부분이 실행되기 직전에 VLIW 모듈(112)의 전원을 미리 키는 명령어를 삽입할 수가 있다.
또한 컴파일러(300)는 재구성가능 프로세서(100)에서 실행될 프로그램의 제어 흐름 그래프(control flow graph)에서 VLIW 모드에서 CGA 모드로의 전환을 위해 컨텍스트를 저장하는 노드인 CGA 엔트리 노드를 검출하고(603), 검출된 CGA 엔트리 노드의 이전 노드에 CGA 모듈(111)로 전원을 공급하기 위한 CGA 파워 온 명령어(CGA power-on instruction)를 삽입한다(604).
예컨대, 제 2 컴파일부(302)가, 도 5a 및 도 5b와 같이, VLIW 모드에서 CGA 모드로 전환되는 부분을 검출하고, 검출된 부분이 실행되기 직전에 CGA 모듈(111)의 전원을 미리 키는 명령어를 삽입할 수가 있다.
한편, 본 발명의 실시 예들은 컴퓨터로 읽을 수 있는 기록 매체에 컴퓨터가 읽을 수 있는 코드로 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록 매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록 장치를 포함한다.
컴퓨터가 읽을 수 있는 기록 매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피디스크, 광 데이터 저장장치 등이 있다. 또한, 컴퓨터가 읽을 수 있는 기록 매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산 방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다. 그리고 본 발명을 구현하기 위한 기능적인(functional) 프로그램, 코드 및 코드 세그먼트들은 본 발명이 속하는 기술 분야의 프로그래머들에 의하여 용이하게 추론될 수 있다.
나아가 전술한 실시 예들은 본 발명을 예시적으로 설명하기 위한 것으로 본 발명의 권리범위가 특정 실시 예에 한정되지 아니할 것이다.

Claims (10)

  1. 다수의 펑션 유니트(function unit, FU)를 포함하고, 제 1 모드에서 적어도 하나의 펑션 유니트를 포함하는 제 1 그룹에 기초하여 제 1 유형의 연산을 처리하고, 제 2 모드에서 적어도 하나의 펑션 유니트를 포함하는 제 2 그룹에 기초하여 제 2 유형의 연산을 처리하는 처리부; 및
    제 1 모드와 제 2 모드간의 모드 전환을 유도하는 모드 전환 신호 또는 모드 전환 명령어에 따라 제 1 그룹 또는 제 2 그룹 중 어느 하나에 선택적으로 전원을 공급하는 전원관리부; 를 포함하고,
    상기 전원관리부는,
    재구성가능 프로세서에서 실행될 프로그램의 데이터 의존 그래프(data dependency graph)에서 루프의 반복 실행의 종료여부를 결정하는 노드로 정의되는 루프 엑시트 결정 노드를 검출하고, 검출된 루프 엑시트 결정 노드와 종료 노드 사이에 새로운 노드를 생성하고, 생성된 노드에 상기 제 2 그룹에 전원을 공급하기 위한 명령어를 삽입하는 파워 게이팅 기반의 재구성가능 프로세서.
  2. 제 1 항에 있어서, 상기 처리부는
    CGA(coarse-grained array) 모드에서 상기 제 1 그룹으로 정의되는 CGA 모듈을 이용하여 루프 연산을 처리하고,
    VLIW(very long instruction word) 모드에서 상기 제 2 그룹으로 정의되는 VLIW 모듈을 이용하여 루프 연산을 제외한 나머지 연산을 처리하는 파워 게이팅 기반의 재구성가능 프로세서.
  3. 제 2 항에 있어서, 상기 전원관리부는
    CGA 모드에서 VLIW 모드로의 전환을 유도하는 모드 전환 신호 또는 모드 전환 명령어에 따라 상기 CGA 모듈로 공급되는 전원을 차단하고,
    VLIW 모드에서 CGA 모드로의 전환을 유도하는 모드 전환 신호 또는 모드 전환 명령어에 따라 상기 VLIW 모듈로 공급되는 전원을 차단하는 파워 게이팅 기반의 재구성가능 프로세서.
  4. 제 2 항에 있어서, 상기 전원관리부는
    CGA 모드에서 VLIW 모드로 전환되기 직전에 미리 상기 VLIW 모듈로 전원을 공급하고,
    VLIW 모드에서 CGA 모드로 전환되기 직전에 미리 상기 CGA 모듈로 전원을 공급하는 파워 게이팅 기반의 재구성가능 프로세서.
  5. CGA(coarse-grained array) 모드 및 VLIW(very long instruction word) 모드를 갖는 재구성가능 프로세서를 위한 컴파일러를 포함하고,
    상기 컴파일러는,
    CGA 모드에서 VLIW 모드로 전환되는 시점 이전에 VLIW 모드를 위한 VLIW 모듈의 전원을 키는 명령어를 상기 재구성가능 프로세서에서 실행될 프로그램에 삽입하되,
    상기 재구성가능 프로세서에서 실행될 프로그램의 데이터 의존 그래프(data dependency graph)에서 루프의 반복 실행의 종료여부를 결정하는 노드로 정의되는 루프 엑시트 결정 노드를 검출하고, 검출된 루프 엑시트 결정 노드와 종료 노드 사이에 새로운 노드를 생성하고, 생성된 노드에 상기 VLIW 모드를 위한 VLIW 모듈의 전원을 키는 명령어를 상기 재구성가능 프로세서에서 실행될 프로그램에 삽입하는 컴퓨터 판독 가능 기록 매체.
  6. CGA(coarse-grained array) 모드 및 VLIW(very long instruction word) 모드를 갖는 재구성가능 프로세서를 위한 컴파일러를 포함하고,
    상기 컴파일러는,
    VLIW 모드에서 CGA 모드로 전환되는 시점 이전에 CGA 모드를 위한 CGA 모듈의 전원을 키는 명령어를 상기 재구성가능 프로세서에서 실행될 프로그램에 삽입하는 컴파일러를 포함하되,
    상기 재구성가능 프로세서에서 실행될 프로그램의 제어 흐름 그래프(control flow graph)에서 VLIW 모드에서 CGA 모드로의 전환을 위해 컨텍스트를 저장하는 노드인 CGA 엔트리 노드를 검출하고, 상기 검출된 CGA 엔트리 노드의 이전 노드가 분기 노드이고, 상기 검출된 CGA 엔트리 노드쪽의 분기 경로 이외의 다른 분기 경로에 CGA 엔트리 노드가 없는 경우, 그 다른 분기 경로에 존재하는 노드에 상기 CGA 모드를 위한 CGA 모듈의 전원을 키는 명령어를 상기 재구성가능 프로세서에서 실행될 프로그램에 삽입하는 컴퓨터 판독 가능 기록 매체.
  7. 다수의 펑션 유니트(function unit, FU)를 포함하고, CGA(coarse-grained array) 모드에서 적어도 하나의 펑션 유니트를 포함하는 CGA 모듈에 기초하여 루프 연산을 처리하고 VLIW(very long instruction word) 모드에서 적어도 하나의 펑션 유니트를 포함하는 VLIW 모듈에 기초하여 루프 연산 이외의 연산을 처리하는 재구성가능 프로세서를 위한 컴파일러를 포함하고,
    상기 컴파일러는,
    상기 재구성가능 프로세서에서 실행될 프로그램의 데이터 의존 그래프(data dependency graph)에서 루프의 반복 실행의 종료여부를 결정하는 노드로 정의되는 루프 엑시트 결정 노드를 검출하고, 검출된 루프 엑시트 결정 노드와 종료 노드 사이에 새로운 노드를 생성하고, 생성된 노드에 상기 VLIW 모듈로 전원을 공급하기 위한 VLIW 파워 온 명령어(VLIW power-on instruction)를 삽입하는 제 1 컴파일부; 및
    상기 재구성가능 프로세서에서 실행될 프로그램의 제어 흐름 그래프(control flow graph)에서 VLIW 모드에서 CGA 모드로의 전환을 위해 컨텍스트를 저장하는 노드인 CGA 엔트리 노드를 검출하고, 검출된 CGA 엔트리 노드의 이전 노드에 상기 CGA 모듈로 전원을 공급하기 위한 CGA 파워 온 명령어(CGA power-on instruction)를 삽입하는 제 2 컴파일부; 를 포함하는 컴파일러를 포함하는 컴퓨터 판독 가능 기록 매체.
  8. 제 7 항에 있어서, 상기 제 2 컴파일부는
    상기 검출된 CGA 엔트리 노드의 이전 노드가 분기 노드이고, 상기 검출된 CGA 엔트리 노드쪽의 분기 경로 이외의 다른 분기 경로에 CGA 엔트리 노드가 없는 경우, 그 다른 분기 경로에 존재하는 노드에 상기 CGA 모듈로 전원을 차단하기 위한 CGA 파워 오프 명령어(CGA power-off instruction)를 삽입하는 컴퓨터 판독 가능 기록 매체.
  9. 다수의 펑션 유니트(function unit, FU)를 포함하고, CGA(coarse-grained array) 모드에서 적어도 하나의 펑션 유니트를 포함하는 CGA 모듈에 기초하여 루프 연산을 처리하고 VLIW(very long instruction word) 모드에서 적어도 하나의 펑션 유니트를 포함하는 VLIW 모듈에 기초하여 루프 연산 이외의 연산을 처리하는 재구성가능 프로세서를 위한 컴파일 방법에 있어서,
    재구성가능 프로세서에서 실행될 프로그램의 데이터 의존 그래프(data dependency graph)에서 루프의 반복 실행의 종료여부를 결정하는 노드로 정의되는 루프 엑시트 결정 노드를 검출하고, 검출된 루프 엑시트 결정 노드와 종료 노드 사이에 새로운 노드를 생성하고, 생성된 노드에 상기 VLIW 모듈로 전원을 공급하기 위한 VLIW 파워 온 명령어(VLIW power-on instruction)를 삽입하는 단계; 및
    재구성가능 프로세서에서 실행될 프로그램의 제어 흐름 그래프(control flow graph)에서 VLIW 모드에서 CGA 모드로의 전환을 위해 컨텍스트를 저장하는 노드인 CGA 엔트리 노드를 검출하고, 검출된 CGA 엔트리 노드의 이전 노드에 상기 CGA 모듈로 전원을 공급하기 위한 CGA 파워 온 명령어(CGA power-on instruction)를 삽입하는 단계; 를 포함하는 컴파일 방법.
  10. 제 9 항에 있어서, 상기 CGA 파워 온 명령어를 삽입하는 단계는
    상기 검출된 CGA 엔트리 노드의 이전 노드가 분기 노드이고, 상기 검출된 CGA 엔트리 노드쪽의 분기 경로 이외의 다른 분기 경로에 CGA 엔트리 노드가 없는 경우, 그 다른 분기 경로에 존재하는 노드에 상기 CGA 모듈로 전원을 차단하기 위한 CGA 파워 오프 명령어(CGA power-off instruction)를 삽입하는 과정을 포함하는 컴파일 방법.
KR1020110005585A 2011-01-19 2011-01-19 파워 게이팅 기반의 재구성가능 프로세서, 이를 위한 컴파일 장치 및 방법 KR101754203B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020110005585A KR101754203B1 (ko) 2011-01-19 2011-01-19 파워 게이팅 기반의 재구성가능 프로세서, 이를 위한 컴파일 장치 및 방법
US13/213,333 US9304967B2 (en) 2011-01-19 2011-08-19 Reconfigurable processor using power gating, compiler and compiling method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020110005585A KR101754203B1 (ko) 2011-01-19 2011-01-19 파워 게이팅 기반의 재구성가능 프로세서, 이를 위한 컴파일 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20120084186A KR20120084186A (ko) 2012-07-27
KR101754203B1 true KR101754203B1 (ko) 2017-07-07

Family

ID=46491648

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020110005585A KR101754203B1 (ko) 2011-01-19 2011-01-19 파워 게이팅 기반의 재구성가능 프로세서, 이를 위한 컴파일 장치 및 방법

Country Status (2)

Country Link
US (1) US9304967B2 (ko)
KR (1) KR101754203B1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9858083B2 (en) * 2013-03-14 2018-01-02 Microchip Technology Incorporated Dual boot panel SWAP mechanism
US9524011B2 (en) 2014-04-11 2016-12-20 Apple Inc. Instruction loop buffer with tiered power savings

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040002823A1 (en) * 2002-06-27 2004-01-01 Tomm Aldridge Method and apparatus for compiler assisted power management
US20040237056A1 (en) * 2003-04-24 2004-11-25 Kazuhisa Okada Behavioral synthesis system, behavioral synthesis method, control program, readable recording medium, logic circuit production method, and logic circuit
JP2006502488A (ja) 2002-10-11 2006-01-19 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 省電力vliwプロセッサ
JP2009530924A (ja) * 2006-03-17 2009-08-27 アンテルユニヴェルシテール・ミクロ−エレクトロニカ・サントリュム・ヴェー・ゼッド・ドゥブルヴェ 再構成可能なマルチ処理粗粒アレイ

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5452401A (en) * 1992-03-31 1995-09-19 Seiko Epson Corporation Selective power-down for high performance CPU/system
US5996083A (en) * 1995-08-11 1999-11-30 Hewlett-Packard Company Microprocessor having software controllable power consumption
US6219796B1 (en) * 1997-12-23 2001-04-17 Texas Instruments Incorporated Power reduction for processors by software control of functional units
US6427234B1 (en) * 1998-06-11 2002-07-30 University Of Washington System and method for performing selective dynamic compilation using run-time information
GB0028079D0 (en) 2000-11-17 2001-01-03 Imperial College System and method
US7025437B2 (en) * 2001-10-31 2006-04-11 Agfa-Gevaert Printing methods and apparatus for mutually interstitial printing and optional interlacing
EP1868094B1 (en) * 2006-06-12 2016-07-13 Samsung Electronics Co., Ltd. Multitasking method and apparatus for reconfigurable array
KR101335001B1 (ko) 2007-11-07 2013-12-02 삼성전자주식회사 프로세서 및 인스트럭션 스케줄링 방법
KR101511273B1 (ko) * 2008-12-29 2015-04-10 삼성전자주식회사 멀티 코어 프로세서를 이용한 3차원 그래픽 렌더링 방법 및시스템
KR101579589B1 (ko) 2009-02-12 2015-12-22 삼성전자 주식회사 파이프라인 프로세서를 위한 정적 분기 예측 방법과 이를 위한 컴파일 방법
KR101581882B1 (ko) * 2009-04-20 2015-12-31 삼성전자주식회사 재구성 가능한 프로세서 및 그 재구성 방법
KR101622266B1 (ko) * 2009-04-22 2016-05-18 삼성전자주식회사 재구성 가능 프로세서 및 이를 이용한 인터럽트 핸들링 방법
KR101636377B1 (ko) * 2009-10-23 2016-07-06 삼성전자주식회사 재구성 프로세서, 재구성 제어 장치 및 방법, 그리고, 스레드 모델링 방법
KR101699910B1 (ko) * 2010-03-04 2017-01-26 삼성전자주식회사 재구성 가능 프로세서 및 그 제어 방법
KR101738941B1 (ko) * 2010-03-23 2017-05-24 삼성전자주식회사 재구성 가능 어레이 및 재구성 가능 어레이의 제어 방법

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040002823A1 (en) * 2002-06-27 2004-01-01 Tomm Aldridge Method and apparatus for compiler assisted power management
JP2006502488A (ja) 2002-10-11 2006-01-19 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 省電力vliwプロセッサ
US20040237056A1 (en) * 2003-04-24 2004-11-25 Kazuhisa Okada Behavioral synthesis system, behavioral synthesis method, control program, readable recording medium, logic circuit production method, and logic circuit
JP2009530924A (ja) * 2006-03-17 2009-08-27 アンテルユニヴェルシテール・ミクロ−エレクトロニカ・サントリュム・ヴェー・ゼッド・ドゥブルヴェ 再構成可能なマルチ処理粗粒アレイ

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
BINGFENG MEI 외 4명. 'ADRES: An Architecture with Tightly Coupled VLIW Processor and Coarse-Grained Reconfigurable Matrix'. CONFERENCE PAPER in LECTURE NOTES IN COMPUTER SCIENCE, 2003.09., pp.1-10.

Also Published As

Publication number Publication date
US20120185673A1 (en) 2012-07-19
KR20120084186A (ko) 2012-07-27
US9304967B2 (en) 2016-04-05

Similar Documents

Publication Publication Date Title
KR101978409B1 (ko) 재구성가능 프로세서, 이를 위한 코드 변환 장치 및 방법
KR101738941B1 (ko) 재구성 가능 어레이 및 재구성 가능 어레이의 제어 방법
US7457970B2 (en) VLIW processor with power saving
JP5074389B2 (ja) Simd並列処理の自動選択を備えたマイクロプロセッサ
JP4496255B2 (ja) マシン・コード・ビルダによって得られる電力消費低減
US5887179A (en) System power saving means and method
US20060288195A1 (en) Apparatus and method for switchable conditional execution in a VLIW processor
US20070168685A1 (en) Organic electroluminescence device
JP2007026452A (ja) 強化マイクロプロセッサのための方法及びシステム
KR101754203B1 (ko) 파워 게이팅 기반의 재구성가능 프로세서, 이를 위한 컴파일 장치 및 방법
KR102279352B1 (ko) 실행 메카니즘간의 전환 제어
US7472257B2 (en) Rerouting VLIW instructions to accommodate execution units deactivated upon detection by dispatch units of dedicated instruction alerting multiple successive removed NOPs
JP2000322403A (ja) 電力削減のための複数の等価機能ユニットの制御
KR101581414B1 (ko) 전력 소모 감소를 위한 재구성 가능 프로세서 및 그 동작 방법
JP2004318502A (ja) 電力制御機能を備えたマイクロプロセッサ及び命令変換装置
KR101912427B1 (ko) 재구성가능 프로세서 및 재구성가능 프로세서의 미니 코어
JPH1185513A (ja) プロセッサ
US20020188828A1 (en) Low power consumption super scalar processor
KR101959252B1 (ko) 데이터를 기반으로 전력을 관리하는 장치 및 방법
JP2005527037A (ja) 構成可能なプロセッサ
KR20130091113A (ko) 재구성 기반 컴퓨팅 장치의 제1메모리 제어기 및 제2메모리 제어기와, 디버깅용 트레이스 데이터 처리가 가능한 재구성 기반 컴퓨팅 장치
US20100274995A1 (en) Processor and method of controlling instruction issue in processor
US20200019402A1 (en) Varying micro-operation composition based on estimated value of predicate value for predicated vector instruction
KR101901332B1 (ko) 부분적 전원 관리에 기반한 재구성가능 프로세서, 이 재구성가능 프로세서를 위한 코드 변환 장치 및 방법
KR20090014692A (ko) 인터럽트 기반의 프로세서를 위한 인터럽트 대기 명령어를실행하는 인터럽트 처리 방법

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E90F Notification of reason for final refusal
E701 Decision to grant or registration of patent right