KR100863080B1 - 저전력형 컨피규레이션 캐시와 이를 포함하는 재구성형프로세싱 시스템 - Google Patents

저전력형 컨피규레이션 캐시와 이를 포함하는 재구성형프로세싱 시스템 Download PDF

Info

Publication number
KR100863080B1
KR100863080B1 KR1020070023922A KR20070023922A KR100863080B1 KR 100863080 B1 KR100863080 B1 KR 100863080B1 KR 1020070023922 A KR1020070023922 A KR 1020070023922A KR 20070023922 A KR20070023922 A KR 20070023922A KR 100863080 B1 KR100863080 B1 KR 100863080B1
Authority
KR
South Korea
Prior art keywords
cache
configuration
register
context
signal
Prior art date
Application number
KR1020070023922A
Other languages
English (en)
Other versions
KR20080083417A (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 KR1020070023922A priority Critical patent/KR100863080B1/ko
Publication of KR20080083417A publication Critical patent/KR20080083417A/ko
Application granted granted Critical
Publication of KR100863080B1 publication Critical patent/KR100863080B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • G06F15/17356Indirect interconnection networks
    • G06F15/17368Indirect interconnection networks non hierarchical topologies
    • G06F15/17381Two dimensional, e.g. mesh, torus
    • 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/3296Power saving characterised by the action undertaken by lowering the supply or operating voltage

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Logic Circuits (AREA)

Abstract

본 발명은 재구성형 프로세싱 시스템에서 사용되는 저전력형 컨피규레이션 캐시에 관한 것으로서, 컨피규레이션 캐시를 구성하는 캐시요소와 프로세싱 요소 어레이를 구성하는 각 프로세싱 요소 간의 새로운 연결구조를 제시함으로써 전력소모를 감소시킬 수 있는 컨피규레이션 캐시에 관한 것이다. 본 발명의 일 실시예에 따른 컨피규레이션 캐시내의 공간캐시는, 프로세싱 요소로 컨텍스트 신호를 출력하는 레지스터의 출력신호를 피드백하여 캐시요소로부터 출력되는 신호와 함께 멀티플렉서에 입력하여, 어느 하나의 신호를 상기 레지스터로 출력하도록 구성된다. 공간 캐시에서는 이와 같이 레지스터로부터 출력되는 신호를 재사용(Reuse) 함으로써, 메모리쪽의 읽기 연산의 횟수를 줄임으로써 전력소비를 줄일 수 있다. 전력소비를 줄일 수 있는 또 다른 구성으로서, 시간 캐시에서는 컨텍스트 파이프라이닝 구성이 제안되고, 사용환경에 따라 시간캐시와 공간캐시 중 어느 하나를 선택적으로 구동시킬 수 있는 구성이 제안된다.
저전력, 재구성형 프로세싱 시스템, 파이프라이닝, 시간매핑(Temporal Mapping), 공간매핑(Spatial Mapping), 프로세싱 요소(Processing Element), 컨피규레이션 캐시(Configuration Cache)

Description

저전력형 컨피규레이션 캐시와 이를 포함하는 재구성형 프로세싱 시스템{Configuration Cache Capable Low Power Consumption and Reconfigurable processing system Including the Configuration Cache Therein}
도 1은 일반적인 재구성 가능한 어레이 구성을 갖는 재구성형 프로세싱 시스템의 블록도이다.
도 2는 도 1의 컨피규레이션 캐시와 프로세싱 요소 어레이 간의 결합 구성을 나타낸 것이다.
도 3은 공간매핑 방식에 따른 커널 수행의 일 실시예를 나타낸 것이다.
도 4는 시간매핑 방식에 따른 도 3과 동일한 커널 수행의 일 실시예를 나타낸 것이다.
도 5는 컨텍스트 재사용(Context reuse)을 위한 캐시요소와 프로세싱 요소 간의 연결관계를 나타낸 것이다.
도 6은 컨텍스트 파이프라이닝을 지원하는 컨피규레이션 캐시와 프로세싱 요소 간의 연결관계를 나타낸 것이다.
도 7은 도 6의 컨텍스트 파이프라이닝 구성을 이용한 시간매핑의 실시예를 나타낸 것이다.
도 8은 컨텍스트 재사용 및 컨텍스트 파이프라이닝을 모두 지원하는 경우의 각 캐시요소와 프로세싱요소 간의 연결구조를 나타낸 것이다.
도 9는 컨텍스트 재사용 및 컨텍스트 파이프라이닝을 모두 지원하는 컨피규레이션 캐시와 프로세싱요소 어레이 간의 연결구조를 나타낸 것이다.
본 발명은 전력소모를 감소시킬 수 있는 재구성형 프로세싱 시스템에 관한 것으로서, 보다 상세하게는, 컨피규레이션 캐시를 구성하는 캐시요소와 프로세싱 요소 어레이를 구성하는 각 프로세싱 요소 간의 새로운 연결구조를 제시함으로써 전력소모를 감소시킬 수 있는 재구성형 프로세싱 시스템에 관한 것이다.
높은 품질의 멀티미디어 서비스를 제공하는 휴대형 기기의 발달로 저비용, 고성능, 그리고 저전력의 시스템 개발의 필요성은 나날이 증대되고 있다. 이러한 멀티미디어 서비스를 제공하기 위해서는 높은 복잡도를 갖는 연산 집중형(computation intensive) 알고리즘이 필요하다.
이러한 연산 집중형(computation intensive) 알고리즘의 지원을 위해 일반적으로 두 가지 접근 방식이 존재한다. 하나는 일반 범용 프로세서를 이용하여 소프트웨어를 수행하는 것이고, 다른 하나는 주문형 반도체(ASIC; application- specific integrated circuit)형태의 하드웨어를 이용하는 것이다.
전자의 경우에는 다양한 애플리케이션을 지원할 수 있는 유연성을 갖지만 고성능 요구를 만족시키기 어렵고, 후자의 경우에는 성능과 전력 측면에서 최적화 될 수는 있으나 특정 애플리케이션에 한정적이라는 단점이 있다. 이에, 상기 두 접근 방식의 장점을 취한 구성으로서 콜스 그레인드 재구성 아키텍쳐(CGRA; coarse-grained reconfigurable architecture)가 제안되었다. CGRA 구성을 갖는 프로세서는 일반 범용 프로세서보다 고성능을 지원하고 주문형 반도체(ASIC; Application Specific Integrated Circuit) 보다 높은 유연성을 보장한다.
도 1은 일반적인 CGRA 구성을 갖는 재구성형 프로세싱 시스템(Reconfigurable processing system)의 블록도이다. 도시된 바와 같이, RISC (Reduced Instruction Set Computer) 프로세서(10), 메인 메모리(20), 메모리 컨트롤러(30), 직접 메모리 억세스 (DMA; Direct Memory Access) 컨트롤러(40) 컨피규레이션 캐시(Configuration Cache)(50), 실행 컨트롤러(Execution Controller)(60), PE 어레이(PE Array)(70), 프레임 버퍼(Frame Buffer)(80)를 포함하여 구성된다.
통신버스(90)로는, 예컨대, 마이크로 컨트롤러가 내장된 칩 내부에서 사용되는 버스 통신 규격인 AMBA (Advanced Microcontroller Bus Architecture)에 따른 AHB (Advanced High-performance Bus)를 사용할 수 있다. 이 경우 RISC 프로세서(10)와 DMA 컨트롤러(40)를 마스터(master)로 연결하고, RAA (Reconfigurable Array Architecture)를 구성하는 컨피규레이션 캐시(Configuration Cache)(50), 실 행 컨트롤러(Execution Controller)(60), 프레임 버퍼(Frame Buffer)(80)는 3 개의 슬레이브(slave)로 연결할 수 있다.
RISC 프로세서(10)는 제어 집중형(control-intensive)으로서 순차적인 코드를 수행하고, RAA(Reconfigurable Array Architecture; 50, 60, 70, 80)는 연산 집중형(computation-intensive)으로서 병렬적으로 실행 가능한 부분을 수행한다.
한편, 컨피규레이션 캐시(50)는, 캐시요소(CE; Cache Element) (도시하지 않음)를 갖는 컨피규레이션 메모리(Configuration memory) (54)와 캐시요소를 제어하는 캐시 컨트롤러(Cache controller) (52)를 포함한다. 캐시요소는 각 프로세싱 요소(72)와 일대일 연결되고, 각 프로세싱 요소(72)에 대한 컨피규레이션 데이터(Configuration data)가 저장된 메모리 요소이다. 컨피규레이션 캐시(50)는 어떤 연산을 어떻게 수행할지 등에 대한 정보를 포함하고 있으며, 어플리케이션 실행 시 컨피규레이션 캐시(50)에 저장된 실행정보에 따라 프로세싱 요소(72)에서 연산을 수행하게 된다.
도 2는 도 1의 컨피규레이션 캐시(50)와 프로세싱 요소 어레이(70)간의 결합 구성을 나타낸 것이다. 도시된 바와 같이, 하나의 프로세싱 요소(72)마다 하나의 캐시요소(55)가 결합되고, 각 캐시요소(55)는 캐시 컨트롤러(52)의 제어에 의해 작동한다. 프로세싱 요소(72)는 데이터 처리시 실제 연산이 수행되는 부분으로서, 산술논리장치(ALU; Arithmetic Logic Unit) 등을 포함하여 구성된다.
도 2와 같은 재구성 가능한 구조(Reconfigurable architecture)는 매핑 모델로서 단일명령 복수데이터(SIMD; Single Instruction Multiple Data) 방식과 루프 파이프라이닝(loop pipelining) 방식을 모두 지원할 수 있다. 루프 파이프라이닝 구성은 각 루프들이 파이프라인을 통해 데이터를 분산하여 처리하는 방식으로서, 데이터가 입력되는 대로 명령을 수행하기 때문에 시간적 간격없이 데이터 로드(data load)와 연산을 동시에 수행할 수 있다. 반면 SIMD 방식은 단일한 명령으로 복수 데이터를 처리하는 방식으로서, 복수 데이터가 전부 로드된 상태에서 단일한 명령으로 수행되기 때문에 시간적인 간격이 요구된다.
한편, 도 1과 같은 재구성가능 구조에서 루프 파이프라이닝을 이용하여 커널을 매핑하는 경우 크게 두가지 매핑 기법이 고려될 수 있다. 하나는 공간매핑(spatial mapping)이고 다른 하나는 시간매핑(temporal mapping)이다.
도 3과 도 4는 각각 동일한 커널을 수행하는 공간매핑과 시간매핑의 구현예를 나타낸 것이다.
도 3의 공간매핑에 따른 분산캐시(Distributed Cache)는 하나의 레이어를 가지며, 각 PE는 정적인 구성(configuration)을 이용해 고정된 연산을 수행한다. 이것은 연산 루프(loop)의 본체가 RAA (도 1의 50, 60, 70, 80에 해당)에 공간적으로 분산되어 매핑되는 것을 의미한다.
공간매핑의 경우에는 시간매핑보다 상대적으로 적은 전력을 소모한다. 이는, 공간매핑의 경우 하나의 연산루프를 처리하면서 각 PE들이 고정된 연산을 수행하기 때문에 매 사이클 새로운 컨텍스트(context)를 읽을 필요가 없는 것에 기인한다. 즉 공간매핑은, 하나의 연산 루프를 수행하는 동안 각 PE의 기능이 고정된 상태로 있기 때문에 재구성(reconfiguration)을 수행할 필요가 없는 것이 장점이다.
그러나, 공간매핑은 루프 본체의 모든 연산이 한정된 크기의 RAA 에 펼쳐져서 매핑이 되기 때문에 너무 많은 자원을 필요로 한다는 단점이 있다. 특히 많은 연산 수행을 필요로 하는 복잡한 연산루프의 경우에는 공간매핑 자체가 불가능한 한계가 있다. 반면, 루프 본체가 한정된 RAA 에 공간적으로 매핑될 정도로 연산루프가 간단한 경우에는, 공간매핑 방식을 통해 적은 컨피규레이션 데이터(configuration data)로 효율적인 연산루프를 매핑할 수 있다.
도 4의 시간매핑에 따른 분산캐시(Distributed Cache)는 4개의 레이어를 가지며, 각 PE들이 하나의 연산루프 내에서 동적으로 변하는 컨피규레이션(configuration)에 의해 다양한 연산을 수행하도록 구성된다. 따라서 많은 연산을 필요로 하는 복잡한 연산루프의 경우에는 시간매핑을 이용하는 것이 더 효율적이다. 물론 이때에 컨피규레이션 캐시(configuration cache)는 전체 연산루프의 본체를 수행할 수 있도록 많은 양의 컨텍스트를 포함해야 하므로 충분한 용량을 가져야 한다.
도 4의 시간매핑 구성에서는 루프 파이프라이닝(loop pipelining)을 통해 왼쪽에서 오른쪽으로 컬럼 바이 컬럼(column by column) 방식으로 연산이 수행된다. 예컨대, 첫번째 컬럼(column)은 첫번째 사이클에 'Load'를 수행하고 두번째 사이클에 'Execute'를 수행한다. 한편, 두번째 컬럼(column)은 두번째 사이클에 'Execute'를 수행한다.
이처럼, 시간매핑은 복잡한 연산루프를 RAA에 효과적으로 매핑할 수 있다. 그러나, 시간매핑은 각 PE마다 많은 컨피규레이션 캐시(configuration cache) 데이 터가 요구된다. 그리고 매 사이클마다 읽기(read) 연산을 수행하기 때문에 전력 소모가 많다.
특히, 컨피규레이션 캐시(Configuration cache)에서의 전력 소모 대부분은 캐시요소(cache element)에 대한 메모리 읽기 연산에 기인한다. 따라서 전력 소모를 줄이기 위한 방안으로서, 읽기 연산의 빈도를 줄이는 방안을 고려할 필요가 있다.
이와 같이, 일반적인 콜스 그레인드 재구성가능 구성(CGRA)은 컨피규레이션 캐시(configuration cache) (50)와 프로세싱 요소 어레이(PE Array) (70) 구조를 포함한다. 컨피규레이션 캐시(Configuration cache) (50)의 각 컨텍스트 워드(context word)는 PE(72)의 수행 동작과 각 PE(72)들 간의 데이터 흐름을 결정한다. 따라서, 컨피규레이션 캐시(50)를 이용하여 전체 PE 어레이(70) 구조의 동작을 매 사이클마다 재구성할 수 있다. 이때 컨피규레이션 캐시(50)가 한 애플리케이션에서 요구되는 컨텍스트(context)를 전부 갖고 있지 않으면, 메인 메모리(20)에서 DMA 컨트롤러(40)를 통해 필요한 컨텍스트를 가져온다. 따라서 컨피규레이션 캐시(50)의 크기와 구조는 전체 시스템의 성능과 유연성에 영향을 줄 수 있다.
한편, 빈번한 재구성(reconfiguration)은 많은 캐시 리드(cache-read) 연산을 야기하기 때문에 전력 소모에도 영향을 준다. 그러므로 컨피규레이션 캐시(50)의 설계에 있어서는 성능, 유연성 및 전력 간의 협정(trade-off) 측면을 고려해야 한다.
결국, 동일한 성능을 가지면서도 전력소모를 줄일 수 있는 새로운 구성을 갖 는 시스템이 요청된다.
상기한 요청에 따라, 본 발명은 성능의 저하 없이 전력소모를 줄일 수 있는 구성을 갖는 재구성형 프로세싱 시스템(Reconfigurable processing system)을 제공하는 것을 목적으로 한다. 이를 위해, 본 발명에서는 컨피규레이션 캐시와 프로세싱 요소 어레이 간에, 컨텍스트 재사용(Reuse) 방식과 컨텍스트 파이프라이닝 방식을 적용하고, 또한 시간매핑과 공간매핑을 혼용한 매핑방식을 적용한 재구성형 프로세싱 시스템(Reconfigurable processing system)을 제공한다. 본 발명의 또 다른 목적은, 이하 발명의 상세한 설명 및 첨부도면에 의해 보다 명확해질 것이다.
상기 목적을 달성할 수 있는 본 발명의 일 실시예에 따른 재구성형 프로세싱 시스템(Reconfigurable processing system)은, 프로세싱 요소로 컨텍스트 신호를 출력하는 레지스터; 상기 레지스터로부터 피드백되는 컨텍스트 신호 및 캐시요소로부터 출력되는 컨텍스트 신호 중 어느 하나의 컨텍스트 신호를 출력하는 멀티플렉서; 및 상기 멀티플렉서의 출력을 제어하기 위한 신호를 발생시키는 캐시 컨트롤러를 포함하여 구성될 수 있다.
본 발명의 다른 실시예에 따른 재구성형 프로세싱 시스템은, m행 × n열의 어레이를 갖는 프로세싱 요소(단, m, n은 각각 2이상의 자연수); 상기 프로세싱 요 소로 전달될 컨텍스트 신호를 저장하고 있는 캐시요소; 및 상기 컨텍스트 신호를 수신하여 상기 프로세싱 요소 및 이웃하는 어느 한 쪽 열의 레지스터로 각각 출력하는 레지스터를 포함하여 구성될 수 있다.
본 발명의 또 다른 실시예에 따른 재구성형 프로세싱 시스템은, 프로세싱 요소로 컨텍스트 신호를 출력하는 레지스터; 상기 레지스터로부터 피드백되는 컨텍스트 신호, 캐시요소로부터 출력되는 컨텍스트 신호 및 이웃하는 어느 한 쪽 열의 레지스터로부터 출력되는 컨텍스트 신호 중 어느 하나의 컨텍스트 신호를 상기 레지스터로 출력하는 멀티플렉서; 및 상기 멀티플렉서의 출력을 제어하기 위한 신호를 발생시키는 캐시 컨트롤러를 포함하여 구성될 수 있다.
본 발명의 또 다른 실시예에 따른 재구성형 프로세싱 시스템은, 공간캐시; 상기 공간캐시와 동일한 커널을 수행할 수 있는 시간캐시; 상기 공간캐시 및 상기 시간캐시로부터 각각 출력되는 컨텍스트 신호를 수신하는 제1 멀티플렉서; 및 상기 제1 멀티플렉서의 출력을 제어하기 위한 신호를 발생시키는 캐시 제어기를 포함하여 구성될 수 있다.
본 발명에서는 전력소모를 감소시킬 수 있는 컨피규레이션 캐시(configuration cache)와 프로세싱 요소 어레이(PE Array) 간의 새로운 결합 구조를 제공한다. 본 발명의 일 실시예에 따른 컨피규레이션 캐시는 공간캐시(spatial cache) 및 시간캐시(temporal cache)를 모두 포함하여 구성될 수 있다.
공간캐시(Spatial cache)는 공간매핑(spatial mapping)을 위한 분산된 적은 수의 레이어(layer) 구조를 갖는다. 시간캐시(Temporal cache)는 다수의 레이어를 갖지만 하나의 컬럼(column)으로 구성되며, 다른 컬럼에서는 컨텍스트 파이프라이닝(context pipelining)을 통하여 컨피규레이션 (configuration)이 이루어진다. 이처럼, 공간매핑과 시간매핑을 혼용하여, 기존의 성능은 유지하면서 소비 전력을 크게 줄일 수 있다.
이하 첨부도면을 참조하여 본 발명에 따른 저전력형 재구성형 프로세싱 시스템에 대하여 상세히 설명한다.
도 5는 컨텍스트 재사용(Context reuse)을 위한 캐시요소(155)와 프로세싱 요소(172) 간의 연결관계를 나타낸 것이다. 도 5의 구성에서는, 컨텍스트 워드 레지스터(174)의 출력 신호를 재사용함으로써, 루프 처리시 공간매핑을 수행함에는 한 번의 읽기 연산으로 충분하다.
즉, 하나의 구조 내에서 공간 매핑과 시간 매핑을 동시에 지원하는 종래 컨피규레이션 캐시 구성에서 동일 컨텍스트에 대해 매번 읽기 연산을 수행하는 것과는 달리, 본 발명에 따른 컨피규레이션 캐시 구성에서는 한번의 읽기 연산으로 컨텍스트를 가져오게 되면, 이를 레지스터(174)에 저장하고 재사용(Reuse)을 한다. 이와 같은 재사용 과정을 통해 동일 컨텍스트에 대해 한 번의 읽기연산만을 수행할 수 있으므로 매번 읽기연산을 수행하는 것에 비해 연산 횟수를 줄일 수 있어서 전력소모를 절감할 수 있다.
이와 같이, 도 5의 구성에서는 컨텍스트 재사용(Context reuse)을 통해 읽기 연산의 빈도를 줄임으로써 빈번한 읽기 연산으로 발생될 수 있는 전력소모를 방지한다.
도 6은 컨텍스트 파이프라이닝을 지원하는 컨피규레이션 캐시와 프로세싱 요소 간의 연결관계를 나타낸 것이다. 도시된 바와 같이, 모든 프로세싱 요소(172)들에 캐시요소(155)가 할당된 것이 아니라, 각 열마다 좌측에 하나의 캐시요소(155)가 할당되어 있다.
도 6의 실시예에서는 가장 좌측 열의 레지스터(274a)가 캐시요소로부터 직접 컨텍스트 워드를 수신하고, 나머지 열에 배치된 레지스터들(274b, 274c, 274d)은 각각 자신의 인접 좌측 열에 배치된 레지스터로부터 컨텍스트 워드를 수신하도록 구성된다. 이와 같이, 하나의 열에만 캐시요소(255)가 할당되므로, 기존의 분산된 컨피규레이션 캐시와 비교하면 읽기 연산의 빈도는 크게 줄어들고, 따라서 성능 저하 없이 전력소모를 대폭 줄일 수 있다.
예컨대, 4x4 어레이 구조의 경우, 종래와 같이 모든 프로세싱 요소에 캐시요소를 할당할 경우에는 한 주기에 캐시요소에 대한 16번의 읽기 연산을 수행하게 된다. 그러나, 도 6의 실시예와 같이, 하나의 열에만 캐시를 할당할 경우 한 주기에 캐시요소(255)에 대해 4번의 읽기 연산만을 수행할 수 있으므로 전력소모를 절감할 수 있다. 물론, 캐시요소(255)가 할당되지 않은 나머지 열에 대해서는 레지스터 읽기 연산을 수행하지만, 레지스터 읽기 연산에 필요한 전력은 캐시요소 읽기 연산에 필요한 전력에 비해 매우 적으므로 전력소모 감소에 큰 효과가 있다.
도 6의 컨텍스트 파이프라이닝 구성을 이용한 시간매핑의 실시예가 도 7에 도시되어 있다. 도 7에 도시된 실시예는 도 4와 동일한 커널을 수행하도록 구성된 것이다.
앞서 살펴본 바와 같이, 도 4는 어레이 구성의 모든 프로세싱 요소들에 캐시요소를 할당한 경우의 시간매핑의 실시예이다. 이에 비해, 도 7은 어레이 구성의 하나의 열의 프로세싱 요소들에만 캐시요소를 할당한 경우의 시간매핑의 실시예이다.
도 7의 실시예에서는 하나의 열의 프로세싱 요소들에만 캐시요소가 할당되어 있고, 나머지 열의 프로세싱 요소들에는 레지스터가 결합되어 있는 경우이다. 따라서, 캐시요소의 감소로 인해 전력소모를 절감하면서도, 레지스터를 이용하여 컨텍스트를 계속하여 파이프라이닝을 하고 있기 때문에 도 4의 실시예와 동일한 기능을 수행할 수 있다(예컨대, 동일 주기에 Store, Execute2, Execute1, Load를 수행하고 있음).
또한, 본 발명의 일 실시예에 따르면, 컨텍스트 재사용 및 컨텍스트 파이프라이닝을 모두 지원하는 컨피규레이션 캐시를 구성할 수 있다. 도 8은 컨텍스트 재사용 및 컨텍스트 파이프라이닝을 모두 지원하는 경우의 캐시요소(355)와 프로세싱요소(372) 간의 연결구조를 나타낸 것이다. 도시된 바와 같이, 멀티플렉서(375)는 재사용 컨텍스트 데이터 신호, 캐시요소의 출력신호, 및 파이프라이닝된 이웃 레지스터로부터의 출력신호를 수신하고, 캐시 컨트롤러(도시하지 않음)의 제어신호에 따라 어느 하나의 신호를 레지스터(374)로 출력하는 구성을 갖는다.
도 9는 컨텍스트 재사용 및 컨텍스트 파이프라이닝을 모두 지원하는 컨피규레이션 캐시와 프로세싱요소 간의 연결구조를 나타낸 것이다. 도 9에서 컨피규레이션 캐시는, 캐시 컨트롤러(cache controller) (452), 공간캐시(spatial cache) (410), 시간캐시(temporal cache) (420), 멀티플렉서(multiplexer) (456), 디-멀티플렉서(de-multiplexer) (454)를 포함하고 있다.
캐시 컨트롤러(452)는 각 PE(432)에 연결된 각 레지스터(434)에 입력되는 신호 중 어느 하나의 신호를 선택하기 위한 신호를 출력한다. 또한, 공간캐시(spatial cache) (410)와 시간캐시(temporal cache) (420) 중 어느 캐시를 구동시킬 것인가를 결정하기 위한 신호를 멀티플렉서(456)에 인가한다.
공간캐시(spatial cache) (410)와 시간캐시(temporal cache) (420) 중 어느 캐시를 구동시킬 것인가는 실행할 루프 연산의 복잡도를 고려하여 프로그래머가 결정할 수 있다. 예컨대, 복잡한 루프 연산의 경우에는 시간캐시를 사용하도록 설정할 수 있는데, 이는 공간캐시의 경우, 공간 매핑의 특성상 매핑 자체가 불가능한 경우가 있기 때문이다. 반면 단순한 루프 연산의 경우에는, 전력절감 측면에서 보다 효율적인 공간 캐시를 사용하도록 설정할 수 있다.
공간캐시(410)는 시간캐시(420)와 비교하여 매우 적은 레이어(layer)를 가진다. 이는 매 사이클마다 컨텍스트(context)를 바꿔줄 필요가 없는 특성에 기인한다.
한편, 시간캐시(420)는 많은 레이어를 갖고 있으나 컨텍스트 파이프라이닝(context pipelining)이 지원되므로 단지 하나의 컬럼만이 캐시 메모리를 갖는다.
도 9의 컨피규레이션 캐시(configuration cache) 구조를 기반으로 한 코드 매핑은 공간매핑과 시간매핑 모두의 전력 소모에 효과적이다.
공간매핑을 선택했을 때는 레이어가 기존보다 감소하기 때문에 전력 소모를 줄일 수 있다. 시간매핑을 사용할 때는 많은 메모리 읽기 연산이 레지스터 시프트 연산으로 대체되기 때문에 전력 소모를 줄일 수 있다.
또한 공간캐시(spatial cache) (410)의 경우에는 layer 가 크게 줄어들었고 시간캐시(temporal cache) (420)는 단지 한 컬럼만 포함하기 때문에 그 차지하는 영역(area)에서도 기존의 구조보다 이득이 있다. 그리고 구조 변경에 따른 성능 저하가 없기 때문에 도 9의 컨피규레이션 캐시(configuration cache)는 우수성을 갖는다.
한편, 상기한 본 발명의 컨피규레이션 캐시와 프로세싱 요소 간의 결합에 대한 구성은 재구성형 프로세싱 시스템의 일부를 구성하여 다양한 전자장치에 응용될 수 있음은 물론이다.
이상 본 발명의 특정 실시예를 도시하고 설명하였으나, 본 발명의 기술사상은 첨부된 도면과 상기한 설명내용에 한정하지 않으며 본 발명의 사상을 벗어나지 않는 범위 내에서 다양한 형태의 변형이 가능함은 이 분야의 통상의 지식을 가진 자에게는 자명한 사실이며, 이러한 형태의 변형은, 본 발명의 정신에 위배되지 않는 범위 내에서 본 발명의 특허청구범위에 속한다고 볼 것이다. 
이상 살펴 본 바와 같이, 본 발명에 따른 저전력형 재구성형 프로세싱 시스템은, 컨피규레이션 캐시와 프로세싱 요소 어레이 간에, 컨텍스트 재사용(Reuse) 방식을 적용하고, 또한 컨텍스트 파이프라이닝 구성 및 사용환경에 따라 시간캐시와 공간캐시 중 어느 하나를 선택적으로 구동시킬 수 있는 구성을 통해 성능의 저하 없이 전력소모를 줄이는 것이 가능하다.

Claims (9)

  1. 삭제
  2. 삭제
  3. m행 × n열의 어레이를 갖는 프로세싱 요소(단, m, n은 각각 2이상의 자연수);
    상기 프로세싱 요소로 전달될 컨텍스트 신호를 저장하고 있는 캐시요소; 및
    상기 어레이를 구성하는 각 프로세싱 요소와 일대일 방식으로 연결된 레지스터로서, 상기 컨텍스트 신호를 수신하여 자신과 일대일 대응된 프로세싱 요소 및 이웃하는 어느 한 쪽 열의 레지스터로 각각 상기 컨텍스트 신호를 출력하는 레지스터를 포함하되,
    상기 캐시요소는, 상기 프로세싱 요소와 일대일 방식으로 연결된 레지스터 중에서 어느 하나의 열에 배치된 레지스터에 상기 컨텍스트 신호를 전송하고, 상기 캐시요소로부터 전송된 컨텍스트 신호는 이웃하는 열의 레지스터로 파이프라이닝 방식을 통해 순차 전송되는 것을 특징으로 하는 재구성형 프로세싱 시스템.
  4. 삭제
  5. 프로세싱 요소로 컨텍스트 신호를 출력하는 레지스터;
    상기 레지스터로부터 피드백되는 컨텍스트 신호, 캐시요소로부터 출력되는 컨텍스트 신호 및 이웃하는 어느 한 쪽 열의 레지스터로부터 출력되는 컨텍스트 신호 중 어느 하나의 컨텍스트 신호를 상기 레지스터로 출력하는 멀티플렉서; 및
    상기 멀티플렉서의 출력을 제어하기 위한 신호를 발생시키는 캐시 컨트롤러를 포함하는 것을 특징으로 하는 컨피규레이션 캐시.
  6. 공간캐시;
    상기 공간캐시와 동일한 커널을 수행할 수 있는 시간캐시;
    상기 공간캐시 및 상기 시간캐시로부터 각각 출력되는 컨텍스트 신호를 수신하는 제1 멀티플렉서; 및
    상기 제1 멀티플렉서의 출력을 제어하기 위한 신호를 발생시키는 캐시 제어 기를 포함하는 것을 특징으로 하는 컨피규레이션 캐시.
  7. 제6항에 있어서,
    프로세싱 요소로 컨텍스트 신호를 출력하는 레지스터; 및
    상기 레지스터로부터 피드백되는 컨텍스트 신호, 상기 제1 멀티플렉서로부터 출력되는 컨텍스트 신호 및 이웃하는 어느 한 쪽 열의 레지스터로부터 출력되는 컨텍스트 신호 중 어느 하나의 컨텍스트 신호를 상기 레지스터로 출력하는 제2 멀티플렉서를 더 포함하는 것을 특징으로 하는 컨피규레이션 캐시.
  8. 제7항에 있어서,
    상기 제2 멀티플렉서의 출력을 제어하는 신호는 상기 캐시 컨트롤러로부터 발생되는 것을 특징으로 하는 컨피규레이션 캐시.
  9. 제5항 내지 제8항 중 어느 하나의 항에 따른 컨피규레이션 캐시를 포함하는 재구성형 프로세싱 시스템.
KR1020070023922A 2007-03-12 2007-03-12 저전력형 컨피규레이션 캐시와 이를 포함하는 재구성형프로세싱 시스템 KR100863080B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020070023922A KR100863080B1 (ko) 2007-03-12 2007-03-12 저전력형 컨피규레이션 캐시와 이를 포함하는 재구성형프로세싱 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020070023922A KR100863080B1 (ko) 2007-03-12 2007-03-12 저전력형 컨피규레이션 캐시와 이를 포함하는 재구성형프로세싱 시스템

Publications (2)

Publication Number Publication Date
KR20080083417A KR20080083417A (ko) 2008-09-18
KR100863080B1 true KR100863080B1 (ko) 2008-10-13

Family

ID=40024092

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020070023922A KR100863080B1 (ko) 2007-03-12 2007-03-12 저전력형 컨피규레이션 캐시와 이를 포함하는 재구성형프로세싱 시스템

Country Status (1)

Country Link
KR (1) KR100863080B1 (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150051116A (ko) * 2014-02-04 2015-05-11 삼성전자주식회사 재구성 가능 프로세서, 재구성 가능 프로세서의 구성 메모리의 사용을 최적화하는 방법 및 장치
KR20150051114A (ko) * 2014-02-04 2015-05-11 삼성전자주식회사 재구성 가능 프로세서, 재구성 가능 프로세서의 구성 메모리의 사용을 최적화하는 방법 및 장치
US9042392B2 (en) 2011-10-05 2015-05-26 Samsung Electronics Co., Ltd. Coarse-grained reconfigurable array based on a static router

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101540798B1 (ko) 2008-11-21 2015-07-31 삼성전자 주식회사 가상화 환경에서 보안 정보를 제공하기 위한 장치 및 방법
KR101482210B1 (ko) * 2009-01-08 2015-01-15 삼성전자 주식회사 전력 소모 감소를 위한 재구성 가능한 프로세서 및 그 동작방법

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20020095874A (ko) * 2001-06-16 2002-12-28 삼성전자 주식회사 캐쉬 메모리 및 이를 이용하는 마이크로 프로세서
JP2007000131A (ja) * 2005-06-23 2007-01-11 Kazuhiko Kudo 疑似餌

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20020095874A (ko) * 2001-06-16 2002-12-28 삼성전자 주식회사 캐쉬 메모리 및 이를 이용하는 마이크로 프로세서
JP2007000131A (ja) * 2005-06-23 2007-01-11 Kazuhiko Kudo 疑似餌

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
논문(2007.01.31)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9042392B2 (en) 2011-10-05 2015-05-26 Samsung Electronics Co., Ltd. Coarse-grained reconfigurable array based on a static router
US9507753B2 (en) 2011-10-05 2016-11-29 Samsung Electronics Co., Ltd. Coarse-grained reconfigurable array based on a static router
KR20150051116A (ko) * 2014-02-04 2015-05-11 삼성전자주식회사 재구성 가능 프로세서, 재구성 가능 프로세서의 구성 메모리의 사용을 최적화하는 방법 및 장치
KR20150051114A (ko) * 2014-02-04 2015-05-11 삼성전자주식회사 재구성 가능 프로세서, 재구성 가능 프로세서의 구성 메모리의 사용을 최적화하는 방법 및 장치
KR102168175B1 (ko) * 2014-02-04 2020-10-20 삼성전자주식회사 재구성 가능 프로세서, 재구성 가능 프로세서의 구성 메모리의 사용을 최적화하는 방법 및 장치
KR102185280B1 (ko) * 2014-02-04 2020-12-01 삼성전자 주식회사 재구성 가능 프로세서, 재구성 가능 프로세서의 구성 메모리의 사용을 최적화하는 방법 및 장치

Also Published As

Publication number Publication date
KR20080083417A (ko) 2008-09-18

Similar Documents

Publication Publication Date Title
Abts et al. Think fast: A tensor streaming processor (TSP) for accelerating deep learning workloads
US6052773A (en) DPGA-coupled microprocessors
JP4388895B2 (ja) リコンフィギュアラブルなシーケンサ構造
JP6059413B2 (ja) 再構成可能命令セル・アレイ
Wirthlin et al. DISC: The dynamic instruction set computer
EP2239667B1 (en) Multiprocessor with specific pathways creation
EP1184785A2 (en) System and method for preparing software for execution in a dynamically configurable hardware environment
CN102279818B (zh) 支持有限共享的向量数据访存控制方法及向量存储器
CN103197916A (zh) 用于源操作数收集器高速缓存的方法和装置
US20140137123A1 (en) Microcomputer for low power efficient baseband processing
US10656911B2 (en) Power control for a dataflow processor
KR100863080B1 (ko) 저전력형 컨피규레이션 캐시와 이를 포함하는 재구성형프로세싱 시스템
US7032103B2 (en) System and method for executing hybridized code on a dynamically configurable hardware environment
CN102402415B (zh) 一种动态可重构阵列内数据缓存的装置及方法
CN101366003A (zh) 微循环计算机指令
US10659396B2 (en) Joining data within a reconfigurable fabric
JP2020525907A (ja) 高スループットプロセッサ
JP2022541899A (ja) 畳み込みニューラルネットワークを実装するための構成可能なプロセッサ
EP2310953B1 (en) Improvements relating to single instruction multiple data (simd) architectures
US20180212894A1 (en) Fork transfer of data between multiple agents within a reconfigurable fabric
Kim et al. Memory-aware application mapping on coarse-grained reconfigurable arrays
Ebeling et al. RaPiD-a configurable computing architecture for compute-intensive applications
CN112486908A (zh) 层次化的多rpu多pea的可重构处理器
Abdelhamid et al. MITRACA: A next-gen heterogeneous architecture
US8732368B1 (en) Control system for resource selection between or among conjoined-cores

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: 20121005

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20130930

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20140929

Year of fee payment: 7

LAPS Lapse due to unpaid annual fee