KR20100090110A - 전력 소모 감소를 위한 재구성 가능 프로세서 및 그 동작 방법 - Google Patents
전력 소모 감소를 위한 재구성 가능 프로세서 및 그 동작 방법 Download PDFInfo
- Publication number
- KR20100090110A KR20100090110A KR1020090009409A KR20090009409A KR20100090110A KR 20100090110 A KR20100090110 A KR 20100090110A KR 1020090009409 A KR1020090009409 A KR 1020090009409A KR 20090009409 A KR20090009409 A KR 20090009409A KR 20100090110 A KR20100090110 A KR 20100090110A
- Authority
- KR
- South Korea
- Prior art keywords
- nop
- pointer
- configuration memory
- distributed configuration
- distributed
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 14
- 238000010586 diagram Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 3
- 238000003491 array Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Images
Classifications
-
- 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
-
- 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
- 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/324—Power saving characterised by the action undertaken by lowering clock frequency
-
- 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/325—Power saving in peripheral device
- G06F1/3275—Power saving in memory, e.g. RAM, cache
-
- 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
- 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
-
- 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/3893—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled in tandem, e.g. multiplier-accumulator
- G06F9/3895—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled in tandem, e.g. multiplier-accumulator for complex operations, e.g. multidimensional or interleaved address generators, macros
- G06F9/3897—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled in tandem, e.g. multiplier-accumulator for complex operations, e.g. multidimensional or interleaved address generators, macros with adaptable data path
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Logic Circuits (AREA)
Abstract
분산 구성 메모리 구조를 이용하는 재구성 가능 프로세서에서 전력 소모를 효율적으로 감소시킬 수 있는 프로세서 및 그 동작 방법이 개시된다. 일 실시예에 따른 재구성 가능 프로세스를 구성하는 프로세싱 유닛은 연산 유닛 및 분산 구성 메모리 외에 NOP 레지스터 및 제어부를 포함한다. NOP 레지스터는 각 클럭 싸이클마다 NOP 오퍼레이션을 수행하는지 여부를 나타내는 정보를 포함한다. 제어부는 NOP 오퍼레이션이 수행되는 클럭 싸이클에는 분산 구성 메모리가 활성화되지 않도록 제어한다.
재구성가능 프로세서, 분산 구성 메모리, 연산 유닛, CGA
Description
본 발명의 하나 이상의 양상은 재구성가능 프로세서(Reconfigurable Processor)에 관한 것으로, 더욱 상세하게는 코어스 그레인 어레이(Coarse Grain Array)의 구조에 관한 것이다.
재구성 아키텍처(reconfigurable architecture)란 제품으로서 출시될 당시의 기능이 추후 사용자의 의도에 따라 변경될 수 있는 회로를 의미한다. 하나의 모드 예를 들어, 통신 표준 모드, 멀티미디어 모드 등을 동작시키기 위한 시스템이나 단말기에서 사용하기 위한 재구성가능한 프로세서는 VLIW(Very Long Instruction Word) 프로세서와 같은 호스트 프로세서와 CGA(Coarse Grained Array)의 결합된 형태로 구성할 수 있다.
분산 구성 메모리 구조를 이용하는 재구성 가능 프로세서에서 전력 소모를 효율적으로 감소시킬 수 있는 프로세서 및 프로세서의 동작 제어 방법을 제공한다.
일 양상에 따른 복수 개의 프로세싱 유닛을 포함하는 재구성가능 프로세서로서, 프로세싱 유닛은, 연산 유닛; 연산 유닛에 대한 구성 정보를 포함하는 분산 구성 메모리; 각 클럭 싸이클(clock cycle)마다 NOP 오퍼레이션을 수행하는지 여부를 나타내는 정보를 포함하는 NOP 레지스터; 및 NOP 오퍼레이션이 수행되는 클럭 싸이클에는 분산 구성 메모리가 비활성화되도록 제어하는 제어부를 포함한다.
분산 구성 메모리에는 NOP 오퍼레이션을 지시하는 구성 정보는 포함되지 않는다. 제어부는 II(Iteration Interval), NOP 레지스터의 엔트리를 지시하는 제1 포인터 및 분산 구성 메모리의 엔트리를 지시하는 제2 포인터를 관리하고, 제1 포인터가 NOP 레지스터에서 NOP 오퍼레이션을 수행하지 않음을 나타내는 값을 지시하는 경우, 분산 구성 메모리를 활성화하도록 제어한다.
제어부는 제1 포인터가 모든 클럭 싸이클에서 1씩 증가되고, 제2 포인터가 제1 포인터가 NOP 레지스터에서 NOP 오퍼레이션을 수행하지 않음을 나타내는 값을 지시하는 경우에만 1씩 증가되도록 제어한다.
재구성가능 프로세서는, 분산 구성 메모리의 구성 정보는 복수 개의 연산 유닛에 대한 구성 정보를 포함하는 메모리로부터 동적으로 로딩된다.
다른 양상에 따른 연산 유닛; 연산 유닛에 대한 구성 정보를 포함하는 분산 구성 메모리; 및 각 클럭 싸이클마다 NOP 오퍼레이션을 수행하는지 여부를 나타내는 정보를 포함하는 NOP 레지스터를 각각 포함하는 복수 개의 프로세싱 유닛을 포 함하는 재구성가능 프로세서의 동작 방법은, NOP 오퍼레이션이 수행되는 클럭 싸이클에는 분산 구성 메모리가 비활성화되도록 제어하는 단계를 포함한다.
일 실시예에 따르면, 분산 구성 메모리 구조를 이용하는 재구성 가능 프로세서에서 전력 소모를 효율적으로 감소시킬 수 있다.
이하, 첨부된 도면을 참조하여 본 발명의 일 실시예를 상세하게 설명한다. 본 발명을 설명함에 있어 관련된 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이다. 또한, 후술되는 용어들은 본 발명에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.
도 1은 일 실시예에 따른 재구성가능 프로세서의 구성을 나타내는 블록도이다.
일 실시예에 따른 재구성가능 프로세서(100)는 코어스 그레인 어레이로 구성된다. 코어스 그레인 어레이(100)는 VLIW와 같은 코어(도시되지 않음)의 제어에 따라서 통상적으로 반복 수행을 요구하는 작업 예를 들어, 반복적으로 수행되는 루프(loop) 작업과 같이 작업 수행시 발생되는 데이터 처리량이 많은 작업을 처리한다. 코어스 그레인 어레이(100)는 복수 개의 프로세싱 유닛(110, Processing Unit)을 포함한다.
도 1에는 도시를 간략화하게 하기 위하여 도시되어 있지 않지만, 복수 개의 프로세싱 유닛(110) 사이에는 상호 연결(interconnection)이 존재한다. 각 프로세싱 유닛(110)은 각기 다른 소스(source)로부터 데이터를 받을 수 있으며, 다른 목적지(destination)으로 처리 결과를 전달할 수 있다.
통상적인 프로세싱 유닛은 연산 유닛(Functional Unit) 및 레지스터(Register)를 포함한다. 또한, 통상적으로 코어스 그레인 어레이에 포함된 복수 개의 연산 유닛은 하나의 구성 메모리(Unified Configuration Memory)로부터 라인 단위로 읽어들여진 구성 정보를 이용하여 동작한다.
구성 정보는 코어스 그레이 어레이들에 포함된 연산 유닛들이 어떤 연산을 수행하는지, 연산 유닛들이 어느 프로세싱 유닛의 레지스터 파일에 저장된 데이터를 이용하여 연산을 수행하는지, 또는 연산 결과 생성된 값을 레지스터 파일에 저장하는지 외부 메모리에 저장하는지 등에 대한 정보를 저장한다. 구성 메모리에 저장된 구성 정보는 연산 유닛에서 직접 사용하는 정보, 연산 유닛에서 연산의 계수로 사용하는 정보, 라우팅에 필요한 정보 및 기타 정보로 분류될 수 있다. 따라서, 연산 유닛에서 구성 정보를 이용하지 않는 경우에도 구성 메모리는 계속 활성화되어 전력이 계속 소모된다.
일 실시예에 따른 프로세싱 유닛(110)는 하나의 구성 메모리로부터 판독되는 구성 정보를 이용하지 않고, 각 연산 유닛 마다 분리된 분산 구성 메모리(distributed configuration memory)를 포함한다. 즉, 일 실시예에서 코어스 그레인 어레이(100)에 포함된 각 연산 유닛은 각 연산 유닛마다 분리된 분산 구성 메 모리에 포함된 구성 정보에 기초하여 동작한다.
분산 구성 메모리의 구성 정보는 복수 개의 연산 유닛에 관한 구성 정보를 포함하는 메모리로부터 정적으로(statically) 또는 동적으로(dynamically) 로딩될 수 있다. 복수 개의 연산 유닛에 관한 구성 정보를 포함하는 메모리는 SDRAM(synchronous dynamic random access memory) 또는 다른 형태의 메모리일 수 있다.
이 때, 분산 구성 메모리는 구성 정보를 동적으로 로딩하기 위해 분산 구성 메모리의 일부는 연산 유닛에 구성 정보를 제공하고, 분산 구성 메모리의 다른 일부는 구성 정보를 로딩하도록 구성될 수 있다. 분산 구성 메모리는 듀얼 포트 메모리(dual port memory) 또는 더블 버퍼(double buffer)의 형태로 구성될 수 있다.
도 2는 도 1의 재구성 가능한 프로세서에 포함되는 프로세싱 유닛을 나타내는 블록도이다.
도 2를 참조하면, 일 실시예에 따른 프로세싱 유닛(110)은 제어부(210), NOP 레지스터(220), 분산 구성 메모리(230) 및 연산 유닛(240)을 포함한다. 프로세싱 유닛(110)에는 연산 유닛(240)의 연산 수행 결과를 저장하는 레지스터(도시되지 않음) 및 연산 수행 결과를 라우팅하는데 이용되는 멀티플렉서(도시되지 않음) 등이 더 포함될 수 있다.
연산 유닛(240)은 분산 구성 메모리(230)로부터 구성 정보를 전달받는다. 연산 유닛(240)은 전달된 구성 정보에 기초하여 연산 기능을 수행한다.
제어부(210)는 NOP 오퍼레이션이 수행되는 클럭 싸이클에는 분산 구성 메모리(240)가 비활성화되도록 제어한다.
NOP 레지스터(220)는 각 클럭 싸이클마다 NOP 오퍼레이션을 수행하는지 여부를 나타내는 정보를 포함한다. NOP 오퍼레이션을 수행 여부를 나타내는 정보는 예를 들어 1비트의 정보로 나타낼 수 있다. 이 경우, NOP 레지스터(220)는 하나의 클럭 싸이클마다 1비트의 정보가 판독되도록 구성될 수 있다.
예를 들어, NOP 레지스터(220)의 비트가 1인 경우에는 연산 유닛(240)이 분산 구성 메모리(230)로부터 전달되는 구성 정보에 따라 동작하는 것을 지시할 수 있다. 한편, NOP 레지스터(220)의 비트가 0인 경우에는 연산 유닛(240)이 NOP 오퍼레이션을 수행하며, 분산 구성 메모리(230)는 비활성화되어 구성 정보가 연산 유닛(240)으로 전달되지 않는 것을 지시할 수 있다.
루프 내의 반복들은 일정한 시간 간격으로 수행을 시작하게 되는데, 이 시간 간격을 II(Iteration Interval)이라고 한다. 분산 구성 메모리가 하나의 루프를 실행하는데 필요한 구성 정보를 저장하고 있으며, 분산 구성 메모리의 구성 정보가 라인 단위로 판독되는 경우, II는 분산 구성 메모리의 라인의 개수일 수 있다.
일 실시예에 따르면, 제어부(210)는 II, NOP 레지스터의 엔트리를 지시하는 제1 포인터 및 분산 구성 메모리(230)의 엔트리를 지시하는 제2 포인터를 관리하고, 제1 포인터가 NOP 레지스터에서 NOP 오퍼레이션을 수행하지 않음을 나타내는 비트를 지시하는 경우, 분산 구성 메모리(230)를 활성화한다. 제어부(210)가 II를 관리한다는 것은 II내의 클럭 싸이클을 카운트하는 것을 의미한다.
제어부(210)는 제1 포인터를 모든 클럭 싸이클에서 1씩 증가하도록 제어하고, 제2 포인터를 제1 포인터가 NOP 레지스터에서 NOP 오퍼레이션을 수행하지 않음을 나타내는 값을 지시하는 경우에만 1씩 증가하도록 제어할 수 있다.
코어스 그레인 어레이 모드에서는 구성 메모리로부터 구성 정보를 읽는 동작으로 인한 전력 소모가 상당하다. 일 실시예에 따른 분산 구성 메모리 구조를 이용하는 재구성 가능 프로세서에서 구성 메모리로부터 연산 유닛으로 구성 정보를 읽어들일 필요가 없는 경우인 아무 것도 하지 않는 명령인 NOP(no operation) 명령을 수행하는 경우에는 분산 구성 메모리가 활성화되지 않으므로, 전력 소모를 효율적으로 감소시킬 수 있다.
전력 소모의 감소는 IPC(Instruction Per Cycle)가 낮은 루프가 코어스 그레인 어레이에서 수행되는 경우와 같이 NOP 오퍼레이션의 비중이 높은 동작을 수행할 때 증대될 것이다. 또한, 분산 구성 메모리에 구성 정보를 런 타임에 동적으로 로딩하는 구조를 이용하면, 초기에 모든 구성 정보를 로딩하는 정적 로딩보다 분산 구성 메모리의 크기 또는 깊이(depth)를 줄일 수 있으므로 분산 구성 메모리에서 소요되는 전력을 더욱 감소시킬 수 있다.
도 3은 일 실시예에 따른 프로세싱 유닛의 동작을 나타내는 도면이다.
도 3을 참조하면, NOP 레지스터(220)의 엔트리를 지시하는 제1 포인터 및 분산 구성 메모리(230)의 엔트리를 지시하는 제2 포인터는 1씩 증가할 때마다 상위 엔트리를 지시한다고 가정한다. NOP 레지스터(220)의 엔트리의 값이 1인 경우에는 연산 유닛(240)이 NOP 오퍼레이션을 수행하지 않음을 나타내고, NOP 레지스터(220) 의 엔트리 값이 0인 경우에는 연산 유닛(240)이 NOP 오퍼레이션을 수행함을 나타낸다.
제어부(210)는 제1 포인터를 모든 클럭 싸이클에서 1씩 증가하도록 제어하고, 제어부(210)는 제2 포인터를 제1 포인터가 NOP 레지스터에서 NOP 오퍼레이션을 수행하지 않음을 나타내는 값을 지시하는 경우에만 1씩 증가하도록 제어한다. 클럭 싸이클이 1인 경우 제1 포인터 및 제2 포인터가 각각 NOP 레지스터(220) 및 분산 구성 메모리(230)의 최하단의 엔트리를 지시하고 있다고 가정한다.
클럭 싸이클이 1인 경우, 제1 포인터가 지시하는 엔트리의 값은 1이고, 제2 포인터가 지시하는 분산 구성 메모리(230)의 엔트리는 add이므로, 연산 유닛(240)은 add 오퍼레이션을 수행한다. 제1 포인터 및 제2 포인터는 1씩 증가되고, 클럭 싸이클이 2일 때, 제1 포인터가 지시하는 엔트리의 값은 1이고, 제2 포인터가 지시하는 분산 구성 메모리(230)의 엔트리는 sub이므로, 연산 유닛(240)은 sub 오퍼레이션을 수행한다.
제1 포인터 및 제2 포인터가 1씩 증가되고, 클럭 싸이클이 3일 때에는 제1 포인터가 지시하는 엔트리의 값이 0이므로, 분산 구성 메모리(230)는 비활성화되며, 연산 유닛(240)은 분산 구성 메모리(230)로부터 구성 정보를 판독하지 않고 아무 동작도 수행하지 않는 NOP 오퍼레이션을 수행한다. 클럭 싸이클이 4일 때에도 클럭 싸이클이 3일 때와 같이 연산 유닛(240)은 NOP 오퍼레이션을 수행한다.
클럭 싸이클이 5일 때에는 제1 포인터가 지시하는 엔트리의 값이 1이므로, 분산 구성 메모리(230)는 활성화되고, 연산 유닛(240)은 분산 구성 메모리(230)로 부터 판독된 구성 정보에 따라 cmp 오퍼레이션을 수행한다.
도 3에서와 같이 II이 9 클럭 싸이클인 경우, 제어부(210)는 다음 클럭 싸이클에서 제1 포인터는 다시 NOP 레지스터(220)의 최하단의 엔트리를 지시하도록 한다. 이 경우, 제2 포인터도 분산 구성 메모리(230)의 최하단의 add를 지시하게 된다.
도 4는 일 실시예에 따른 재구성가능 프로세서의 동작 방법을 나타내는 순서도이다.
도 3에 도시된 바와 같이, 연산 유닛; 연산 유닛의 연산 및 라우팅에 관한 구성 정보를 포함하는 분산 구성 메모리; 및 각 클럭 싸이클마다 NOP 오퍼레이션을 수행하는지 여부를 나타내는 정보를 포함하는 NOP 레지스터를 각각 포함하는 복수 개의 프로세싱 유닛을 포함하는 재구성가능 프로세서에서의 동작 방법을 설명한다. 여기에서, 분산 구성 메모리에는 NOP 오퍼레이션을 지시하는 구성 정보는 포함하지 않는다.
NOP 레지스터 값이 NOP 오퍼레이션이 수행되지 않음을 나타내면, 즉 도 4에서 제1 포인터가 가리키는 NOP 레지스터의 엔트리 값이 1인 경우(S 410), 제어부(210)는 분산 구성 메모리(230)를 활성화시켜서, 연산 유닛(240)이 분산 구성 메모리(230)로부터 전달받은 구성 정보에 따라 동작하도록 제어한다(S 420).
NOP 레지스터 값이 0을 나타내면(S 410), 제어부(210)는 분산 구성 메모리(240)를 비활성화시키고, 연산 유닛(240)이 NOP 오퍼레이션을 수행하도록 한다(S 440).
이를 위해서, 제어부(210)는 II, NOP 레지스터의 엔트리를 지시하는 제1 포인터 및 분산 구성 메모리의 엔트리를 지시하는 제2 포인터를 관리하고, 제1 포인터가 NOP 레지스터에서 NOP 오퍼레이션을 수행하지 않음을 나타내는 값을 지시하는 경우, 분산 구성 메모리를 활성화할 수 있다. 제1 포인터를 모든 클럭 싸이클에서 1씩 증가하도록 제어하고, 제2 포인터를 제1 포인터가 NOP 레지스터에서 NOP 오퍼레이션을 수행하지 않음을 나타내는 비트를 지시하는 경우에만 1씩 증가하도록 제어할 수 있다.
전술한 바와 같이, 일 실시예에 따른 분산 구성 메모리 구조를 이용하는 재구성 가능 프로세서에서 연산 유닛이 NOP 오퍼레이션을 수행할 때에는 분산 구성 메모리를 비활성화하여 구성 정보를 판독하지 않음으로써 전력 소모를 효율적으로 감소시킬 수 있다. 전력 소모의 감소는 IPC가 낮은 루프가 코어스 그레인 어레이에서 수행되는 경우와 같이 NOP 오퍼레이션의 비중이 높은 동작을 수행할 때 증대될 것이다.
본 발명의 일 양상은 컴퓨터로 읽을 수 있는 기록 매체에 컴퓨터가 읽을 수 있는 코드로서 구현될 수 있다. 상기의 프로그램을 구현하는 코드들 및 코드 세그먼트들은 당해 분야의 컴퓨터 프로그래머에 의하여 용이하게 추론될 수 있다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록 장치를 포함한다. 컴퓨터가 읽을 수 있는 기록 매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광 디스크 등을 포함한다. 또한, 컴퓨터가 읽을 수 있는 기록 매체는 네트워크로 연결된 컴퓨터 시스템에 분 산되어, 분산 방식으로 컴퓨터가 읽을 수 있는 코드로 저장되고 실행될 수 있다.
이상의 설명은 본 발명의 일 실시예에 불과할 뿐, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명의 본질적 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현할 수 있을 것이다. 따라서, 본 발명의 범위는 전술한 실시예에 한정되지 않고 특허 청구범위에 기재된 내용과 동등한 범위 내에 있는 다양한 실시 형태가 포함되도록 해석되어야 할 것이다.
도 1은 일 실시예에 따른 재구성가능 프로세서의 구성을 나타내는 블록도이다.
도 2는 도 1의 재구성가능 프로세서에 포함되는 프로세싱 유닛을 나타내는 블록도이다.
도 3은 일 실시예에 따른 프로세싱 유닛의 동작을 나타내는 도면이다.
도 4는 일 실시예에 따른 재구성가능 프로세서의 동작 방법을 나타내는 순서도이다.
Claims (10)
- 복수 개의 프로세싱 유닛을 포함하는 재구성가능 프로세서로서,상기 프로세싱 유닛은,연산 유닛;상기 연산 유닛에 대한 구성 정보를 포함하는 분산 구성 메모리;각 클럭 싸이클마다 NOP 오퍼레이션을 수행하는지 여부를 나타내는 정보를 포함하는 NOP 레지스터; 및상기 NOP 오퍼레이션이 수행되는 클럭 싸이클에는 상기 분산 구성 메모리가 비활성화되도록 제어하는 제어부를 포함하는 재구성가능 프로세서.
- 제1항에 있어서,상기 분산 구성 메모리는 NOP 오퍼레이션을 지시하는 구성 정보는 포함되지 않는 재구성가능 프로세서.
- 제1항에 있어서,상기 제어부는 II(Iteration Interval), 상기 NOP 레지스터의 엔트리를 지시하는 제1 포인터 및 상기 분산 구성 메모리의 엔트리를 지시하는 제2 포인터를 관리하고, 상기 제1 포인터가 상기 NOP 레지스터에서 NOP 오퍼레이션을 수행하지 않음을 나타내는 값을 지시하는 경우, 상기 분산 구성 메모리를 활성화하도록 제어하 는 재구성가능 프로세서.
- 제3항에 있어서,상기 제어부는 상기 제1 포인터가 모든 클럭 싸이클에서 1씩 증가되고, 상기 제2 포인터가 상기 제1 포인터가 상기 NOP 레지스터에서 NOP 오퍼레이션을 수행하지 않음을 나타내는 값을 지시하는 경우에만 1씩 증가되도록 제어하는 재구성가능 프로세서.
- 제1항에 있어서,분산 구성 메모리의 구성 정보는 복수 개의 연산 유닛에 대한 구성 정보를 포함하는 메모리로부터 동적으로 로딩되는 재구성가능 프로세서.
- 연산 유닛; 상기 연산 유닛에 대한 구성 정보를 포함하는 분산 구성 메모리; 및 각 클럭 싸이클마다 NOP 오퍼레이션을 수행하는지 여부를 나타내는 정보를 포함하는 NOP 레지스터를 각각 포함하는 복수 개의 프로세싱 유닛을 포함하는 재구성가능 프로세서의 동작 방법으로서,상기 NOP 오퍼레이션이 수행되는 클럭 싸이클에는 상기 분산 구성 메모리가 비활성화되도록 제어하는 단계를 포함하는 방법.
- 제6항에 있어서,상기 분산 구성 메모리에는 NOP 오퍼레이션을 지시하는 구성 정보가 포함되지 않는 방법.
- 제6항에 있어서,II(Iteration Interval), 상기 NOP 레지스터의 엔트리를 지시하는 제1 포인터 및 상기 분산 구성 메모리의 엔트리를 지시하는 제2 포인터를 관리하는 단계를 더 포함하고,상기 제1 포인터가 상기 NOP 레지스터에서 NOP 오퍼레이션을 수행하지 않음을 나타내는 값을 지시하는 경우, 상기 분산 구성 메모리를 활성화하는 방법.
- 제8항에 있어서,II(Iteration Interval), 상기 제1 포인터 및 상기 제2 포인터를 관리하는 단계에서,모든 클럭 싸이클에서 상기 제1 포인터를 1씩 증가하도록 제어하고, 상기 제1 포인터가 상기 NOP 레지스터에서 NOP 오퍼레이션을 수행하지 않음을 나타내는 값을 지시하는 경우에만 상기 제2 포인터를 1씩 증가하도록 제어하는 방법.
- 제6항에 있어서,분산 구성 메모리의 구성 정보는 복수 개의 연산 유닛에 대한 구성 정보를 포함하는 메모리로부터 동적으로 로딩되는 방법.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020090009409A KR101581414B1 (ko) | 2009-02-05 | 2009-02-05 | 전력 소모 감소를 위한 재구성 가능 프로세서 및 그 동작 방법 |
US12/609,920 US8555097B2 (en) | 2009-02-05 | 2009-10-30 | Reconfigurable processor with pointers to configuration information and entry in NOP register at respective cycle to deactivate configuration memory for reduced power consumption |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020090009409A KR101581414B1 (ko) | 2009-02-05 | 2009-02-05 | 전력 소모 감소를 위한 재구성 가능 프로세서 및 그 동작 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20100090110A true KR20100090110A (ko) | 2010-08-13 |
KR101581414B1 KR101581414B1 (ko) | 2015-12-30 |
Family
ID=42398657
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020090009409A KR101581414B1 (ko) | 2009-02-05 | 2009-02-05 | 전력 소모 감소를 위한 재구성 가능 프로세서 및 그 동작 방법 |
Country Status (2)
Country | Link |
---|---|
US (1) | US8555097B2 (ko) |
KR (1) | KR101581414B1 (ko) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20180027248A (ko) * | 2016-09-06 | 2018-03-14 | 삼성전자주식회사 | 전자 장치, 재구성 가능 프로세서 및 그 제어 방법들 |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7167025B1 (en) * | 2004-02-14 | 2007-01-23 | Herman Schmit | Non-sequentially configurable IC |
US8912820B2 (en) | 2010-04-02 | 2014-12-16 | Tabula, Inc. | System and method for reducing reconfiguration power |
TWI432953B (zh) | 2010-12-09 | 2014-04-01 | Ind Tech Res Inst | 具電源管理之超長指令處理器以及其電源管理裝置與方法 |
CN102236632B (zh) * | 2011-05-27 | 2013-05-22 | 清华大学 | 一种层次化描述动态可重构处理器配置信息的方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20040064713A (ko) * | 2001-11-26 | 2004-07-19 | 코닌클리즈케 필립스 일렉트로닉스 엔.브이. | 프로세서, 인스트럭션 세트, 인스트럭션 분배 방법 및컴파일링 방법 |
KR20070059238A (ko) * | 2005-12-06 | 2007-06-12 | 삼성전자주식회사 | 재구성 프로세서에서 루프 버퍼를 최적화하기 위한 장치 및방법 |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH04143819A (ja) | 1989-12-15 | 1992-05-18 | Hitachi Ltd | 消費電力制御方法、半導体集積回路装置およびマイクロプロセツサ |
US5524249A (en) | 1994-01-27 | 1996-06-04 | Compaq Computer Corporation | Video subsystem power management apparatus and method |
JPH0855471A (ja) | 1994-08-12 | 1996-02-27 | Nec Corp | 同期型半導体記憶装置 |
KR100308182B1 (ko) | 1997-08-21 | 2001-11-30 | 윤종용 | 데이터처리시스템및이시스템의동작방법 |
US6202143B1 (en) | 1997-08-21 | 2001-03-13 | Samsung Electronics Co., Ltd. | System for fetching unit instructions and multi instructions from memories of different bit widths and converting unit instructions to multi instructions by adding NOP instructions |
MY122426A (en) | 1998-10-29 | 2006-04-29 | Matsushita Electric Ind Co Ltd | Memory controller for controlling an integrated memory undergoing logical state transitions |
US7290122B2 (en) | 2003-08-29 | 2007-10-30 | Motorola, Inc. | Dataflow graph compression for power reduction in a vector processor |
US7653820B1 (en) * | 2003-10-31 | 2010-01-26 | Xilinx, Inc. | System and method for securing using decryption keys during FPGA configuration using a microcontroller |
JP2008009473A (ja) | 2006-06-27 | 2008-01-17 | Renesas Technology Corp | データ処理装置及びプログラム実行方式 |
EP2597777A3 (en) * | 2007-03-20 | 2014-08-20 | Tabula, Inc. | Configurable IC having a routing fabric with storage elements |
US20090228612A1 (en) * | 2008-03-06 | 2009-09-10 | Barinder Singh Rai | Flexible Bus Interface and Method for Operating the Same |
JP5262578B2 (ja) * | 2008-10-27 | 2013-08-14 | 富士ゼロックス株式会社 | 電子機器 |
KR101482210B1 (ko) * | 2009-01-08 | 2015-01-15 | 삼성전자 주식회사 | 전력 소모 감소를 위한 재구성 가능한 프로세서 및 그 동작방법 |
-
2009
- 2009-02-05 KR KR1020090009409A patent/KR101581414B1/ko active IP Right Grant
- 2009-10-30 US US12/609,920 patent/US8555097B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20040064713A (ko) * | 2001-11-26 | 2004-07-19 | 코닌클리즈케 필립스 일렉트로닉스 엔.브이. | 프로세서, 인스트럭션 세트, 인스트럭션 분배 방법 및컴파일링 방법 |
KR20070059238A (ko) * | 2005-12-06 | 2007-06-12 | 삼성전자주식회사 | 재구성 프로세서에서 루프 버퍼를 최적화하기 위한 장치 및방법 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20180027248A (ko) * | 2016-09-06 | 2018-03-14 | 삼성전자주식회사 | 전자 장치, 재구성 가능 프로세서 및 그 제어 방법들 |
Also Published As
Publication number | Publication date |
---|---|
US8555097B2 (en) | 2013-10-08 |
KR101581414B1 (ko) | 2015-12-30 |
US20100199068A1 (en) | 2010-08-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101699910B1 (ko) | 재구성 가능 프로세서 및 그 제어 방법 | |
KR100464406B1 (ko) | 가변길이 vliw 명령어를 위한 디스패치 장치 및 방법 | |
US8645955B2 (en) | Multitasking method and apparatus for reconfigurable array | |
US8417918B2 (en) | Reconfigurable processor with designated processing elements and reserved portion of register file for interrupt processing | |
KR980010763A (ko) | 연산처리장치 | |
US8458443B2 (en) | VLIW processor with execution units executing instructions from instruction queues and accessing data queues to read and write operands | |
KR20110106717A (ko) | 재구성 가능 어레이 및 재구성 가능 어레이의 제어 방법 | |
KR101581414B1 (ko) | 전력 소모 감소를 위한 재구성 가능 프로세서 및 그 동작 방법 | |
US10915323B2 (en) | Method and device for processing an instruction having multi-instruction data including configurably concatenating portions of an immediate operand from two of the instructions | |
KR20100048928A (ko) | 범위 검출을 수행하기 위한 명령어 및 로직 | |
KR20140126189A (ko) | 프로세서의 멀티 실행 모드 지원 장치 및 방법 | |
US10659396B2 (en) | Joining data within a reconfigurable fabric | |
CN114968373A (zh) | 指令分派方法、装置、电子设备及计算机可读存储介质 | |
KR101912427B1 (ko) | 재구성가능 프로세서 및 재구성가능 프로세서의 미니 코어 | |
US11451241B2 (en) | Setting values of portions of registers based on bit values | |
KR20150041539A (ko) | 재구성 가능 프로세서 및 재구성 가능 프로세서를 동작하는 방법 | |
KR20080083417A (ko) | 저전력형 컨피규레이션 캐시와 이를 포함하는 재구성형프로세싱 시스템 | |
KR101482210B1 (ko) | 전력 소모 감소를 위한 재구성 가능한 프로세서 및 그 동작방법 | |
KR20150051083A (ko) | 재구성 가능 프로세서, 재구성 가능 프로세서의 구성 메모리의 사용을 최적화하는 방법 및 장치 | |
KR20130131789A (ko) | 미니코어 기반의 재구성 가능 프로세서 및 그 재구성 가능 프로세서를 이용한 유연한 다중 데이터 처리 방법 | |
KR20220051358A (ko) | 전력에 기반한 sram의 적응 가능한 할당 | |
KR20150051114A (ko) | 재구성 가능 프로세서, 재구성 가능 프로세서의 구성 메모리의 사용을 최적화하는 방법 및 장치 | |
KR102185280B1 (ko) | 재구성 가능 프로세서, 재구성 가능 프로세서의 구성 메모리의 사용을 최적화하는 방법 및 장치 | |
JP3838360B2 (ja) | マイクロプロセッサ | |
US20140089645A1 (en) | Processor with execution unit interoperation |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20181119 Year of fee payment: 4 |