KR101754203B1 - 파워 게이팅 기반의 재구성가능 프로세서, 이를 위한 컴파일 장치 및 방법 - Google Patents
파워 게이팅 기반의 재구성가능 프로세서, 이를 위한 컴파일 장치 및 방법 Download PDFInfo
- 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
Links
- 238000000034 method Methods 0.000 title claims description 27
- 230000001939 inductive effect Effects 0.000 claims 1
- 238000007726 management method Methods 0.000 description 14
- 230000006870 function Effects 0.000 description 12
- 230000001419 dependent effect Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000006866 deterioration Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7867—Architectures of general purpose stored program computers comprising a single central processing unit with reconfigurable architecture
-
- 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
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/3287—Power saving characterised by the action undertaken by switching off individual functional units in the computer system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/44—Encoding
- G06F8/443—Optimisation
- G06F8/4432—Reducing the energy consumption
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/44—Encoding
- G06F8/447—Target code generation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/47—Retargetable compilers
-
- 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/30003—Arrangements for executing specific machine instructions
- G06F9/30076—Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
- G06F9/30083—Power or thermal control instructions
-
- 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/30181—Instruction operation extension or modification
- G06F9/30189—Instruction operation extension or modification according to execution mode, e.g. mode flag
-
- 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/3885—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
- G06F9/3889—Concurrent 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
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy efficient computing, e.g. low power processors, power management or thermal management
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Reducing energy consumption in communication networks
- Y02D30/50—Reducing 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 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은 본 발명의 일 실시예에 따른 컴파일 방법을 도시한다.
도 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)
- 다수의 펑션 유니트(function unit, FU)를 포함하고, 제 1 모드에서 적어도 하나의 펑션 유니트를 포함하는 제 1 그룹에 기초하여 제 1 유형의 연산을 처리하고, 제 2 모드에서 적어도 하나의 펑션 유니트를 포함하는 제 2 그룹에 기초하여 제 2 유형의 연산을 처리하는 처리부; 및
제 1 모드와 제 2 모드간의 모드 전환을 유도하는 모드 전환 신호 또는 모드 전환 명령어에 따라 제 1 그룹 또는 제 2 그룹 중 어느 하나에 선택적으로 전원을 공급하는 전원관리부; 를 포함하고,
상기 전원관리부는,
재구성가능 프로세서에서 실행될 프로그램의 데이터 의존 그래프(data dependency graph)에서 루프의 반복 실행의 종료여부를 결정하는 노드로 정의되는 루프 엑시트 결정 노드를 검출하고, 검출된 루프 엑시트 결정 노드와 종료 노드 사이에 새로운 노드를 생성하고, 생성된 노드에 상기 제 2 그룹에 전원을 공급하기 위한 명령어를 삽입하는 파워 게이팅 기반의 재구성가능 프로세서.
- 제 1 항에 있어서, 상기 처리부는
CGA(coarse-grained array) 모드에서 상기 제 1 그룹으로 정의되는 CGA 모듈을 이용하여 루프 연산을 처리하고,
VLIW(very long instruction word) 모드에서 상기 제 2 그룹으로 정의되는 VLIW 모듈을 이용하여 루프 연산을 제외한 나머지 연산을 처리하는 파워 게이팅 기반의 재구성가능 프로세서.
- 제 2 항에 있어서, 상기 전원관리부는
CGA 모드에서 VLIW 모드로의 전환을 유도하는 모드 전환 신호 또는 모드 전환 명령어에 따라 상기 CGA 모듈로 공급되는 전원을 차단하고,
VLIW 모드에서 CGA 모드로의 전환을 유도하는 모드 전환 신호 또는 모드 전환 명령어에 따라 상기 VLIW 모듈로 공급되는 전원을 차단하는 파워 게이팅 기반의 재구성가능 프로세서.
- 제 2 항에 있어서, 상기 전원관리부는
CGA 모드에서 VLIW 모드로 전환되기 직전에 미리 상기 VLIW 모듈로 전원을 공급하고,
VLIW 모드에서 CGA 모드로 전환되기 직전에 미리 상기 CGA 모듈로 전원을 공급하는 파워 게이팅 기반의 재구성가능 프로세서.
- CGA(coarse-grained array) 모드 및 VLIW(very long instruction word) 모드를 갖는 재구성가능 프로세서를 위한 컴파일러를 포함하고,
상기 컴파일러는,
CGA 모드에서 VLIW 모드로 전환되는 시점 이전에 VLIW 모드를 위한 VLIW 모듈의 전원을 키는 명령어를 상기 재구성가능 프로세서에서 실행될 프로그램에 삽입하되,
상기 재구성가능 프로세서에서 실행될 프로그램의 데이터 의존 그래프(data dependency graph)에서 루프의 반복 실행의 종료여부를 결정하는 노드로 정의되는 루프 엑시트 결정 노드를 검출하고, 검출된 루프 엑시트 결정 노드와 종료 노드 사이에 새로운 노드를 생성하고, 생성된 노드에 상기 VLIW 모드를 위한 VLIW 모듈의 전원을 키는 명령어를 상기 재구성가능 프로세서에서 실행될 프로그램에 삽입하는 컴퓨터 판독 가능 기록 매체.
- CGA(coarse-grained array) 모드 및 VLIW(very long instruction word) 모드를 갖는 재구성가능 프로세서를 위한 컴파일러를 포함하고,
상기 컴파일러는,
VLIW 모드에서 CGA 모드로 전환되는 시점 이전에 CGA 모드를 위한 CGA 모듈의 전원을 키는 명령어를 상기 재구성가능 프로세서에서 실행될 프로그램에 삽입하는 컴파일러를 포함하되,
상기 재구성가능 프로세서에서 실행될 프로그램의 제어 흐름 그래프(control flow graph)에서 VLIW 모드에서 CGA 모드로의 전환을 위해 컨텍스트를 저장하는 노드인 CGA 엔트리 노드를 검출하고, 상기 검출된 CGA 엔트리 노드의 이전 노드가 분기 노드이고, 상기 검출된 CGA 엔트리 노드쪽의 분기 경로 이외의 다른 분기 경로에 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 컴파일부; 를 포함하는 컴파일러를 포함하는 컴퓨터 판독 가능 기록 매체.
- 제 7 항에 있어서, 상기 제 2 컴파일부는
상기 검출된 CGA 엔트리 노드의 이전 노드가 분기 노드이고, 상기 검출된 CGA 엔트리 노드쪽의 분기 경로 이외의 다른 분기 경로에 CGA 엔트리 노드가 없는 경우, 그 다른 분기 경로에 존재하는 노드에 상기 CGA 모듈로 전원을 차단하기 위한 CGA 파워 오프 명령어(CGA power-off instruction)를 삽입하는 컴퓨터 판독 가능 기록 매체.
- 다수의 펑션 유니트(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)를 삽입하는 단계; 를 포함하는 컴파일 방법.
- 제 9 항에 있어서, 상기 CGA 파워 온 명령어를 삽입하는 단계는
상기 검출된 CGA 엔트리 노드의 이전 노드가 분기 노드이고, 상기 검출된 CGA 엔트리 노드쪽의 분기 경로 이외의 다른 분기 경로에 CGA 엔트리 노드가 없는 경우, 그 다른 분기 경로에 존재하는 노드에 상기 CGA 모듈로 전원을 차단하기 위한 CGA 파워 오프 명령어(CGA power-off instruction)를 삽입하는 과정을 포함하는 컴파일 방법.
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)
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)
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)
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 | 삼성전자주식회사 | 재구성 가능 어레이 및 재구성 가능 어레이의 제어 방법 |
-
2011
- 2011-01-19 KR KR1020110005585A patent/KR101754203B1/ko active IP Right Grant
- 2011-08-19 US US13/213,333 patent/US9304967B2/en active Active
Patent Citations (4)
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)
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 |