KR101581414B1 - 전력 소모 감소를 위한 재구성 가능 프로세서 및 그 동작 방법 - Google Patents

전력 소모 감소를 위한 재구성 가능 프로세서 및 그 동작 방법 Download PDF

Info

Publication number
KR101581414B1
KR101581414B1 KR1020090009409A KR20090009409A KR101581414B1 KR 101581414 B1 KR101581414 B1 KR 101581414B1 KR 1020090009409 A KR1020090009409 A KR 1020090009409A KR 20090009409 A KR20090009409 A KR 20090009409A KR 101581414 B1 KR101581414 B1 KR 101581414B1
Authority
KR
South Korea
Prior art keywords
nop
pointer
configuration memory
distributed configuration
register
Prior art date
Application number
KR1020090009409A
Other languages
English (en)
Other versions
KR20100090110A (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 KR1020090009409A priority Critical patent/KR101581414B1/ko
Priority to US12/609,920 priority patent/US8555097B2/en
Publication of KR20100090110A publication Critical patent/KR20100090110A/ko
Application granted granted Critical
Publication of KR101581414B1 publication Critical patent/KR101581414B1/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/30003Arrangements for executing specific machine instructions
    • G06F9/30076Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
    • 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
    • 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/324Power saving characterised by the action undertaken by lowering clock frequency
    • 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/325Power saving in peripheral device
    • G06F1/3275Power saving in memory, e.g. RAM, cache
    • 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
    • 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/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
    • G06F9/3893Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled in tandem, e.g. multiplier-accumulator
    • G06F9/3895Concurrent 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/3897Concurrent 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
    • 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

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 for reducing power consumption and method thereof}
본 발명의 하나 이상의 양상은 재구성가능 프로세서(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)

  1. 복수 개의 프로세싱 유닛을 포함하는 재구성가능 프로세서로서,
    상기 프로세싱 유닛은,
    연산 유닛;
    상기 연산 유닛에 대한 구성 정보를 포함하는 분산 구성 메모리;
    각 클럭 싸이클마다 NOP 오퍼레이션을 수행하는지 여부를 나타내는 정보를 포함하는 NOP 레지스터; 및
    상기 NOP 레지스터에 포함된 정보를 기반으로 상기 NOP 오퍼레이션이 수행되는 클럭 싸이클에는 상기 분산 구성 메모리가 비활성화되도록 제어하는 제어부를 포함하는 재구성가능 프로세서.
  2. 제1항에 있어서,
    상기 분산 구성 메모리는 NOP 오퍼레이션을 지시하는 구성 정보는 포함되지 않는 재구성가능 프로세서.
  3. 제1항에 있어서,
    상기 제어부는 II(Iteration Interval), 상기 NOP 레지스터의 엔트리를 지시하는 제1 포인터 및 상기 분산 구성 메모리의 엔트리를 지시하는 제2 포인터를 관리하고, 상기 제1 포인터가 상기 NOP 레지스터에서 NOP 오퍼레이션을 수행하지 않음을 나타내는 값을 지시하는 경우, 상기 분산 구성 메모리를 활성화하도록 제어하 는 재구성가능 프로세서.
  4. 제3항에 있어서,
    상기 제어부는 상기 제1 포인터가 모든 클럭 싸이클에서 1씩 증가되고, 상기 제2 포인터가 상기 제1 포인터가 상기 NOP 레지스터에서 NOP 오퍼레이션을 수행하지 않음을 나타내는 값을 지시하는 경우에만 1씩 증가되도록 제어하는 재구성가능 프로세서.
  5. 제1항에 있어서,
    분산 구성 메모리의 구성 정보는 복수 개의 연산 유닛에 대한 구성 정보를 포함하는 메모리로부터 동적으로 로딩되는 재구성가능 프로세서.
  6. 연산 유닛; 상기 연산 유닛에 대한 구성 정보를 포함하는 분산 구성 메모리; 및 각 클럭 싸이클마다 NOP 오퍼레이션을 수행하는지 여부를 나타내는 정보를 포함하는 NOP 레지스터를 각각 포함하는 복수 개의 프로세싱 유닛을 포함하는 재구성가능 프로세서의 동작 방법으로서,
    상기 NOP 레지스터에 포함된 정보를 기반으로 상기 NOP 오퍼레이션이 수행되는 클럭 싸이클에는 상기 분산 구성 메모리가 비활성화되도록 제어하는 단계를 포함하는 방법.
  7. 제6항에 있어서,
    상기 분산 구성 메모리에는 NOP 오퍼레이션을 지시하는 구성 정보가 포함되지 않는 방법.
  8. 제6항에 있어서,
    II(Iteration Interval), 상기 NOP 레지스터의 엔트리를 지시하는 제1 포인터 및 상기 분산 구성 메모리의 엔트리를 지시하는 제2 포인터를 관리하는 단계를 더 포함하고,
    상기 제1 포인터가 상기 NOP 레지스터에서 NOP 오퍼레이션을 수행하지 않음을 나타내는 값을 지시하는 경우, 상기 분산 구성 메모리를 활성화하는 방법.
  9. 제8항에 있어서,
    II(Iteration Interval), 상기 제1 포인터 및 상기 제2 포인터를 관리하는 단계에서,
    모든 클럭 싸이클에서 상기 제1 포인터를 1씩 증가하도록 제어하고, 상기 제1 포인터가 상기 NOP 레지스터에서 NOP 오퍼레이션을 수행하지 않음을 나타내는 값을 지시하는 경우에만 상기 제2 포인터를 1씩 증가하도록 제어하는 방법.
  10. 제6항에 있어서,
    분산 구성 메모리의 구성 정보는 복수 개의 연산 유닛에 대한 구성 정보를 포함하는 메모리로부터 동적으로 로딩되는 방법.
KR1020090009409A 2009-02-05 2009-02-05 전력 소모 감소를 위한 재구성 가능 프로세서 및 그 동작 방법 KR101581414B1 (ko)

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 KR20100090110A (ko) 2010-08-13
KR101581414B1 true 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)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7167025B1 (en) * 2004-02-14 2007-01-23 Herman Schmit Non-sequentially configurable IC
EP2553815A1 (en) 2010-04-02 2013-02-06 Tabula, Inc. System and method for reducing reconfiguration power usage
TWI432953B (zh) 2010-12-09 2014-04-01 Ind Tech Res Inst 具電源管理之超長指令處理器以及其電源管理裝置與方法
CN102236632B (zh) * 2011-05-27 2013-05-22 清华大学 一种层次化描述动态可重构处理器配置信息的方法
KR102247529B1 (ko) * 2016-09-06 2021-05-03 삼성전자주식회사 전자 장치, 재구성 가능 프로세서 및 그 제어 방법들

Family Cites Families (15)

* Cited by examiner, † Cited by third party
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
WO2003046712A2 (en) * 2001-11-26 2003-06-05 Koninklijke Philips Electronics N.V. Wlim architecture with power down instruction
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
KR100730280B1 (ko) * 2005-12-06 2007-06-19 삼성전자주식회사 재구성 프로세서에서 루프 버퍼를 최적화하기 위한 장치 및방법
JP2008009473A (ja) 2006-06-27 2008-01-17 Renesas Technology Corp データ処理装置及びプログラム実行方式
EP2140548A4 (en) * 2007-03-20 2010-06-09 Tabula Inc CONFIGURABLE IC WITH A COUPLING AREA WITH MEMORY 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 삼성전자 주식회사 전력 소모 감소를 위한 재구성 가능한 프로세서 및 그 동작방법

Also Published As

Publication number Publication date
KR20100090110A (ko) 2010-08-13
US20100199068A1 (en) 2010-08-05
US8555097B2 (en) 2013-10-08

Similar Documents

Publication Publication Date Title
KR100464406B1 (ko) 가변길이 vliw 명령어를 위한 디스패치 장치 및 방법
US20050114850A1 (en) Energy-focused re-compilation of executables and hardware mechanisms based on compiler-architecture interaction and compiler-inserted control
US8417918B2 (en) Reconfigurable processor with designated processing elements and reserved portion of register file for interrupt processing
JP2006509290A (ja) マイクロプロセッサ電力消費低減のためのレジスタファイルゲーティング
JP2006509291A (ja) マイクロプロセッサ電力消費のソフトウェアベースの制御
EP2015174B1 (en) Microprogrammed processor having multiple processor cores using time-shared access to a microprogram control store
KR101581414B1 (ko) 전력 소모 감소를 위한 재구성 가능 프로세서 및 그 동작 방법
KR102271992B1 (ko) 데이터 처리장치 및 추론 벡터 연산의 수행 제어방법
KR20140131472A (ko) 상수 저장 레지스터를 구비하는 재구성 가능 프로세서
KR20110106717A (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
KR100730280B1 (ko) 재구성 프로세서에서 루프 버퍼를 최적화하기 위한 장치 및방법
US20060200648A1 (en) High-level language processor apparatus and method
KR20080083417A (ko) 저전력형 컨피규레이션 캐시와 이를 포함하는 재구성형프로세싱 시스템
KR102174335B1 (ko) 재구성 가능 프로세서, 재구성 가능 프로세서의 구성 메모리의 사용을 최적화하는 방법 및 장치
US8631173B2 (en) Semiconductor device
GB2540944A (en) Vector operand bitsize control
KR101482210B1 (ko) 전력 소모 감소를 위한 재구성 가능한 프로세서 및 그 동작방법
US9201657B2 (en) Lower power assembler
KR20220051358A (ko) 전력에 기반한 sram의 적응 가능한 할당
KR100631495B1 (ko) 마이크로 프로세서
KR20150051114A (ko) 재구성 가능 프로세서, 재구성 가능 프로세서의 구성 메모리의 사용을 최적화하는 방법 및 장치
US20140089645A1 (en) Processor with execution unit interoperation
US20210042111A1 (en) Efficient encoding of high fanout communications
JP3838360B2 (ja) マイクロプロセッサ

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