KR20100116413A - 재구성 가능 프로세서 및 이를 이용한 인터럽트 핸들링 방법 - Google Patents

재구성 가능 프로세서 및 이를 이용한 인터럽트 핸들링 방법 Download PDF

Info

Publication number
KR20100116413A
KR20100116413A KR1020090035100A KR20090035100A KR20100116413A KR 20100116413 A KR20100116413 A KR 20100116413A KR 1020090035100 A KR1020090035100 A KR 1020090035100A KR 20090035100 A KR20090035100 A KR 20090035100A KR 20100116413 A KR20100116413 A KR 20100116413A
Authority
KR
South Korea
Prior art keywords
interrupt request
processing
processing elements
loop operation
processing element
Prior art date
Application number
KR1020090035100A
Other languages
English (en)
Other versions
KR101622266B1 (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 KR1020090035100A priority Critical patent/KR101622266B1/ko
Priority to US12/709,862 priority patent/US8417918B2/en
Publication of KR20100116413A publication Critical patent/KR20100116413A/ko
Application granted granted Critical
Publication of KR101622266B1 publication Critical patent/KR101622266B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/24Handling requests for interconnection or transfer for access to input/output bus using interrupt

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Devices For Executing Special Programs (AREA)
  • Advance Control (AREA)

Abstract

재구성 가능 프로세서(reconfigurable processor)의 인터럽트 핸들링 기술이 개시된다. 본 발명의 일 양상에 따르면, 재구성 가능 프로세서는 다수의 프로세싱 엘리먼트를 포함할 수 있고, 그 중 일부의 프로세싱 엘리먼트가 인터럽트 핸들링을 위해 별도로 지정되는 것이 가능하다. 그리고 재구성 가능 프로세서가 루프 연산을 실행하는 도중에 인터럽트 요청이 발생하면 별도로 지정된 프로세싱 엘리먼트가 인터럽트 요청을 처리하는 것이 가능하다. 따라서 인터럽트 요청에 대한 처리가 기존의 실행되던 루프 연산과 병렬적으로 수행될 수 있다.
Reconfigurable processor, Coarse-grained array, Very long instruction word architecture, Interrupt handling

Description

재구성 가능 프로세서 및 이를 이용한 인터럽트 핸들링 방법{Reconfigurable processor and Method for handling interrupt thereof}
재구성 가능 프로세서의 인터럽트 핸들링 기술과 관련된다.
통상적으로, 재구성 가능 아키텍처(reconfigurable architecture)란 어떠한 작업을 수행하기 위한 컴퓨팅 장치의 하드웨어적 구성을 각각의 작업에 최적화되도록 변경할 수 있는 아키텍처를 의미한다.
어떠한 작업을 하드웨어적으로만 처리하면 고정된 하드웨어의 기능으로 인해 작업 내용에 약간의 변경이 가해지면 이를 효율적으로 처리하기가 어렵다. 또한, 어떠한 작업을 소프트웨어적으로만 처리하면 그 작업 내용에 맞도록 소프트웨어를 변경하여 처리하는 것이 가능하지만 하드웨어적 처리에 비해 속도가 늦다.
재구성 가능 아키텍처는 이러한 하드웨어/소프트웨어의 장점을 모두 만족시킬 수가 있다. 특히, 동일한 작업이 반복적으로 수행되는 디지털 신호 처리 분야에서는 이러한 재구성 가능 아키텍처가 많은 주목을 받고 있다.
재구성 가능 아키텍처의 종류는 여러 가지가 있는데 그 중 코어스 그레인 어레이(Coarse-Grained Array)가 대표적이다. 코어스 그레인 어레이는 여러 개의 프 로세싱 유닛으로 이루어진다. 그리고 프로세싱 유닛들 간의 연결 상태가 조절됨에 따라 어떤 작업에 최적화되는 것이 가능하다.
그런데, 코어스 그레인 어레이에서 루프 연산이 수행되던 중에 인터럽트가 발생하는 경우 이를 어떻게 처리할 것인지 문제된다. 인터럽트는 하드웨어 인터럽트(hardware interrupt)(예, 외부 I/O 장치, 타이머 등), 예외(exception)(예, undefined instruction), 소프트웨어 인터럽트(software interrupt)(예, 시스템 콜) 등을 포함한다. 통상적으로, 인터럽트가 발생하면 인터럽트를 처리하는 동안 레지스터에 저장되어 있는 현재의 문맥(context)을 메모리에 저장시켰다가 복구하여야 하는 이른바 문맥 저장(context saving)이 필요하다.
그러나, 코어스 그레인 어레이는 다수의 레지스터 파일들을 포함하기 때문에 인터럽트 발생시 이를 처리하기 위해 많은 오버헤드가 발생하는 문제점이 있다.
본 명세서에서는, 재구성 가능 프로세서에서 루프 연산이 실행되는 도중에 인터럽트 요청이 발생하였을 경우, 원래의 루프 연산과 인터럽트 요청의 처리를 병렬적으로 수행할 수 있는 장치 및 방법이 개시된다.
본 발명의 일 양상에 따르면, 재구성 가능 프로세서는 다수의 프로세싱 엘리먼트를 포함할 수 있고, 그 중 일부의 프로세싱 엘리먼트가 인터럽트 핸들링을 위해 별도로 지정되는 것이 가능하다. 그리고 재구성 가능 프로세서가 루프 연산을 실행하는 도중에 인터럽트 요청이 발생하면 별도로 지정된 프로세싱 엘리먼트가 인터럽트 요청을 처리하는 것이 가능하다.
보다 구체적으로, 본 발명의 일 양상에 따른 재구성 가능 프로세서는 코어스 그레인 어레이, 호스트 프로세서, 및 제어부를 포함할 수 있다.
코어스 그레인 어레이와 호스트 프로세서는 다수의 프로세싱 엘리먼트를 포함할 수 있으며, 몇 개의 프로세싱 엘리먼트를 서로 공유할 수도 있고 공유하지 아니할 수도 있다.
제어부는 다수의 프로세싱 엘리먼트 중 일부를 인터럽트 핸들링을 위해 별도로 지정하는 것이 가능하다. 제어부가 일부의 프로세싱 엘리먼트를 별도로 지정하는 방법은 컴파일 과정에서 특정한 프로세싱 엘리먼트를 제외하고 나머지 프로세싱 엘리먼트만 이용하여 컴파일을 하는 방법이 사용될 수 있다.
또한, 제어부는 코어스 그레인 어레이에서 루프 연산이 실행되는 도중에, 인터럽트 요청이 발생하면 별도로 지정된 프로세싱 엘리먼트가 인터럽트 요청을 처리하도록 제어하는 것이 가능하다.
본 발명의 일 양상에 따라 별도로 지정된 프로세싱 엘리먼트는 인터럽트 핸들링을 위해 미리 확보된(reserved) 프로세싱 엘리먼트로 볼 수 있으며, 확보된 프로세싱 엘리먼트는 루프 연산에 참여하지 아니할 수 있다.
개시된 내용에 의하면, 일부의 프로세싱 엘리먼트가 인터럽트 핸들링을 위해 확보되기 때문에 인터럽트 요청이 발생하였을 때 인터럽트 요청을 즉시 처리하는 것이 가능하다.
또한, 확보된 프로세싱 엘리먼트는 루프 연산에 참여하지 않기 때문에 인터럽트 요청에 대한 처리와 루프 연산의 실행이 병렬적으로 이루어지는 것이 가능하다.
이하, 첨부된 도면을 참조하여 본 발명의 실시를 위한 구체적인 예를 상세히 설명한다.
도 1은 본 발명의 일 실시 예에 따른 재구성 가능 프로세서의 구성을 도시한다.
도 1을 참조하면, 재구성 가능 프로세서(reconfigurable processor)(100)는 코어스 그레인 어레이(coarse-grained array, CGA)(101), 호스트 프로세서(host processor)(102), 제어부(103)를 포함할 수 있다.
CGA(101)는 다수의 프로세싱 엘리먼트(processing element)(104-1)를 포함한다. 각각의 프로세싱 엘리먼트(104-1)는 인스트럭션(instruction)을 병렬적으로 처리하는 것이 가능하다.
CGA(101)를 구성하는 다수의 프로세싱 엘리먼트(104-1)들의 연결 상태는 처리하고자 하는 작업에 따라 변경될 수 있다.
루프 연산은 동일한 계산이 반복되기 때문에 CGA(101)에서 실행되기에 알맞다. 즉, CGA(101)에 구비된 프로세싱 엘리먼트(104-1)들 간의 연결 상태를 반복 실행되는 계산에 최적화시켜서 CGA(101)를 사용하는 것이 가능하다. 예컨대, Loop-level parallelism을 활용하여 동시에 복수 개의 프로세싱 엘리먼트(104-1)를 동작시켜서 수행 성능을 극대화시킬 수 있다.
호스트 프로세서(102)는 다수의 프로세싱 엘리먼트(104-2)를 포함한다. 또한, 각각의 프로세싱 엘리먼트(104-2)는 인스트럭션을 병렬적으로 처리하는 것이 가능하다.
예컨대, 호스트 프로세서(102)는 VLIW 프로세서(very long instruction word processor)가 될 수 있으며, 루프 연산 외에 일반적인 연산을 처리하는 것이 가능하다.
제어부(103)는 다수의 프로세싱 엘리먼트(104) 중 일부를 별도로 지정하는 것이 가능하다. 별도로 지정되는 프로세싱 엘리먼트는 루프 연산 실행 도중 발생하는 인터럽트 요청을 처리하는 데에 사용될 수 있다.
예컨대, 제어부(103)는 일부의 프로세싱 엘리먼트를 인터럽트 핸들링을 위해 별도로 확보(reserve)하고, 나머지 프로세싱 엘리먼트에 인스트럭션을 매핑하는 컴파일러 또는 인터프리터를 포함할 수 있다.
또한, 제어부(103)는 인터럽트 요청 발생 여부를 모니터링하고, 인터럽트 요청이 발생되면, 확보된 프로세싱 엘리먼트가 인터럽트 요청을 처리하도록 제어하는 인터럽트 관리자를 포함할 수도 있다.
본 발명의 일 실시 예에 따른 재구성 가능 프로세서(100)는 CGA 모드와 VLIW 모드를 가질 수 있다. 예컨대, CGA 모드에서 루프 연산을 처리하고 VLIW 모드에서 일반적인 연산을 처리하는 것이 가능하다. 이러한 모드 전환은 제어부(103)에 의해 수행될 수 있다.
그리고 본 발명의 일 실시 예에 따라, CGA(101)와 호스트 프로세서(102)는 프로세싱 엘리먼트(104)를 일부 공유할 수도 있고 공유하지 아니할 수도 있다.
도 2를 참조하여, 프로세싱 엘리먼트를 공유하는 경우를 살펴본다.
도 2는 본 발명의 다른 실시 예에 따른 재구성 가능 프로세서의 구성을 도시한다.
도 2에서, 재구성 가능 프로세서(200)는 CGA(101), 호스트 프로세서(102), 제어부(103)를 포함할 수 있다.
CGA(101)는 16개의 프로세싱 엘리먼트(PE1~PE16), 구성메모리(201), 중앙 레지스터 파일(202)로 구성될 수 있다.
각각의 프로세싱 엘리먼트(PE1~PE16)는 계산 유닛(function unit), 또는 계 산 유닛 및 레지스터 파일(register file)로 구성될 수 있다. 그리고 각 프로세싱 엘리먼트(PE1~PE16)은 어떤 작업을 병렬적으로 처리하는 것이 가능하다.
각각의 프로세싱 엘리먼트(PE1~PE16)는 서로 연결되는 것이 가능하다. 예를 들어, 어떤 프로세싱 엘리먼트(PE7)의 출력이 다른 프로세싱 엘리먼트(PE12)의 입력에 연결될 수 있다.
프로세싱 엘리먼트(PE1~PE16)의 연결 상태는 수 많은 조합이 가능하다. 각각의 연결 상태를 CGA(101)의 구성이라고 볼 수 있으며, 이러한 CGA(101)의 구성에 대한 정보는 구성메모리(201)에 저장될 수 있다.
예컨대, 구성메모리(201)에 저장된 특정한 정보를 선택함에 따라 CGA(101)의 구성, 즉 프로세싱 엘리먼트(PE1~PE16)들 간의 연결 상태가 변경되는 것이 가능하며, CGA(101)의 구성은 동일한 계산이 반복되는 루프 연산에 최적화될 수 있다.
중앙 레지스터 파일(202)은 모드 전환이 이루어질 때 처리 결과를 임시로 저장하는 기능을 수행한다.
호스트 프로세서(102)는 4개의 프로세싱 엘리먼트(PE1~PE4), 중앙 레지스터 파일(202), 인스트럭션 메모리(301)로 구성될 수 있다. 예컨대, 호스트 프로세서(102)는 4개의 프로세싱 엘리먼트(PE1~PE4)를 이용하여 VLIW 아키텍처를 구성하는 것이 가능하다.
VILW 아키텍처에 있어서, 하나의 인스트럭션 워드에는 병렬적으로 처리 가능한 다수의 인스트럭션이 포함되어 있으므로 각각의 프로세싱 엘리먼트(PE1~PE4)는 이러한 인스트럭션을 병렬 처리하는 것이 가능하다.
인스트럭션 메모리(301)는 데이터 메모리(302)로부터 인스트럭션을 패치(fetch)하고 디코딩(decoding)하는 것이 가능하다.
도 2에서, PE1 내지 PE4에 해당하는 프로세싱 엘리먼트는 CGA(101)와 호스트 프로세서(102)가 공유하는 것을 알 수 있다. 예컨대, PE1 내지 PE4 프로세싱 엘리먼트는 CGA 모드에서 루프 연산을 처리하고 VILW 모드에서 일반적인 연산을 처리하는 것이 가능하다.
제어부(103)는 호스트 프로세서(102)의 프로세싱 엘리먼트인 PE1 내지 PE4 중 일부를 인터럽트 핸들링을 위해 별도로 지정한다. 예컨대, 제어부(103)는 컴파일 과정에서 PE1 및 PE2를 제외한 나머지 프로세싱 엘리먼트인 PE3 내지 PE16에만 인스트럭션을 매핑하는 것이 가능하다.
그리고 제어부(103)는 중앙 레지스터 파일(202)의 일부도 인터럽트 핸들링을 위해 확보해 놓는 것이 가능하다.
또한 제어부(103)는 CGA(101)에서 루프 연산이 실행되는 도중 인터럽트 요청이 발생하면 지정된 PE1 및 PE2가 인터럽트 요청을 처리하도록 제어하는 것이 가능하다. 이때 루프 연산은 나머지 프로세싱 엘리먼트(PE3~PE16)에서 그대로 실행 유지가 될 수 있다.
이와 같이, 별도로 지정된 PE1 및 PE2로 인해 인터럽트 요청의 처리와 루프 연산의 처리가 병렬적으로 수행되기 때문에 인터럽트 핸들링을 위한 레이턴시를 없애는 것이 가능하다.
다음으로, 도 3을 참조하여, 프로세싱 엘리먼트를 공유하지 않는 경우를 살 펴본다.
도 3은 본 발명의 또 다른 실시 예에 따른 재구성 가능 프로세서의 구성을 도시한다.
도 3에서, 재구성 가능 프로세서(300)는 CGA(101), 호스트 프로세서(102), 제어부(103)를 포함할 수 있다.
CGA(101)는 16개의 프로세싱 엘리먼트(PE1~PE16), 구성메모리(201), 중앙 레지스터 파일(202)로 구성될 수 있으며, 프로세싱 엘리먼트(PE1~PE16), 구성메모리(201), 중앙 레지스터 파일(202)은 도 2에서 설명한 것과 동일하다.
호스트 프로세서(102)는 4개의 프로세싱 엘리먼트(PE17~PE20), 중앙 레지스터 파일(202), 인스트럭션 메모리(301)로 구성될 수 있으며, 중앙 레지스터 파일(202) 및 인스트럭션 메모리(301)는 도 2에서 설명한 것과 동일하다.
그러나 도 3에서, CGA(101)와 호스트 프로세서(102)가 프로세싱 엘리먼트를 공유하지 않음을 알 수 있다. 예컨대, 호스트 프로세서(102)는 독자적인 프로세싱 엘리먼트인 PE17 내지 PE20을 갖는 것이 가능하다. 따라서 PE1 내지 PE16은 CGA 모드에서 루프 연산을 처리하고, PE17 내지 PE20은 VLIW 모드에서 일반적인 연산을 처리하는 것이 가능하다.
제어부(103)는 호스트 프로세서(102)의 프로세싱 엘리먼트인 PE17 내지 PE20 중 일부를 인터럽트 핸들링을 위해 별도로 지정한다.
예컨대, 제어부(103)는 컴파일 과정에서 PE17 및 PE18을 제외한 나머지 프로세싱 엘리먼트(예컨대, PE1~PE16 또는 PE19~PE20)에만 인스트럭션을 매핑하는 것이 가능하다.
그리고 제어부(103)는 중앙 레지스터 파일(202)의 일부도 인터럽트 핸들링을 위해 확보해 놓는 것이 가능하다.
또한 제어부(103)는 CGA(101)에서 루프 연산이 실행되는 도중 인터럽트 요청이 발생하면 지정된 PE17 및 PE18이 인터럽트 요청을 처리하도록 제어하는 것이 가능하다. 이때 루프 연산은 CGA(101)에서 그대로 실행 유지가 될 수 있다.
이와 같이, 별도로 지정된 PE17 및 PE18로 인해 인터럽트 요청의 처리와 루프 연산의 처리가 병렬적으로 수행되기 때문에 인터럽트 핸들링을 위한 레이턴시를 없애는 것이 가능하다.
다음으로, 도 4를 참조하여 병렬적으로 처리되는 루프 연산과 인터럽트 요청을 더욱 구체적으로 살펴본다.
도 4는 본 발명의 일 실시 예에 따라 CGA 모드에서 발생된 인터럽트 요청을 처리하는 과정을 도시한다.
도 4에서, 401은 지정된 프로세싱 엘리먼트(예컨대, PE1~PE2 또는 PE17~PE18)의 동작을, 402는 나머지 프로세싱 엘리먼트(예컨대, PE3~PE16 또는 PE1~PE16)의 동작을 나타낸다. 그리고 404는 인터럽트 요청이 발생된 시점을 나타낸다.
인터럽트 요청이 발생되기 전(403~404), 지정된 프로세싱 엘리먼트는 대기 상태이고 나머지 프로세싱 엘리먼트는 루프 연산을 실행한다.
인터럽트 요청이 발생하면(404), 지정된 프로세싱 엘리먼트가 인터럽트 요청 을 처리한다. 전술하였듯이, 지정된 프로세싱 엘리먼트는 인터럽트 핸들링을 위해 컴파일 단계에서 미리 확보된(reserved) 프로세싱 엘리먼트이기 때문에 즉시 인터럽트 처리에 참여하는 것이 가능하다. 그리고 이때 나머지 프로세싱 엘리먼트는 계속적으로 루프 연산을 실행하고 있는 것이 가능하다.
인터럽트 요청에 대한 처리가 완료되면(405), 지정된 프로세싱 엘리먼트는 다시 대기 상태로 돌아가고 나머지 프로세싱 엘리먼트는 계속적으로 루프 연산을 실행한다.
결국 나머지 프로세싱 엘리먼트의 동작(402)을 살펴보면, 인터럽트 요청이 발생하더라도 루프 연산이 계속적으로 실행될 수 있음을 알 수 있다.
도 5는 본 발명의 일 실시 예에 따른 인터럽트 핸들링 방법을 도시한다. 이것은 전술한 도 1 내지 도 3에 따른 재구성 가능 프로세서에서의 인터럽트 핸들링 방법에 대한 일 예가 될 수 있다.
도 5를 참조하면, 본 실시 예에 따른 방법은, 먼저, 재구성 가능 프로세서를 구성하는 다수의 프로세싱 엘리먼트 중 일부를 별도로 지정한다(501).
예컨대, 제어부(103)가 인스트럭션을 각 프로세싱 엘리먼트로 매핑할 때 특정한 프로세싱 엘리먼트를 제외한 나머지 프로세싱 엘리먼트에만 인스트럭션이 매핑되도록 컴파일링하거나 스케줄링하는 것이 가능하다.
이어서, 루프 연산을 실행한다(502).
예컨대, 지정된 프로세싱 엘리먼트를 제외한 나머지 프로세싱 엘리먼트가 CGA 모드에서 루프 연산을 실행하는 것이 가능하다.
이어서, 인터럽트 요청이 발생하는지 여부를 판단한다(503).
예컨대, 제어부(103)가 루프 연산 실행 도중 인터럽트 요청이 발생하는지 여부를 모니터링하는 것이 가능하다.
인터럽트 요청이 있는 경우, 지정된 프로세싱 엘리먼트가 인터럽트 요청을 처리한다.
예컨대, 제어부(103)가 인터럽트 요청을 처리하도록 지정된 프로세싱 엘리먼트를 제어하는 것이 가능하다.
이상에서 본 발명의 실시를 위한 구체적인 예를 설명하였다. 전술한 실시 예들은 본 발명을 예시적으로 설명하기 위한 것으로, 본 발명의 권리범위가 특정 실시 예에 한정되지 아니할 것이다.
도 1은 본 발명의 일 실시 예에 따른 재구성 가능 프로세서의 구성을 도시한다.
도 2는 본 발명의 다른 실시 예에 따른 재구성 가능 프로세서의 구성을 도시한다.
도 3은 본 발명의 또 다른 실시 예에 따른 재구성 가능 프로세서의 구성을 도시한다.
도 4는 본 발명의 일 실시 예에 따라 CGA 모드에서 루프 연산과 인터럽트 요청을 처리하는 과정을 도시한다.
도 5는 본 발명의 일 실시 예에 따른 인터럽트 핸들링 방법을 도시한다.

Claims (14)

  1. 다수의 프로세싱 엘리먼트를 포함하고, 상기 다수의 프로세싱 엘리먼트 중 적어도 1 이상의 프로세싱 엘리먼트가 별도로 지정되고, 상기 지정된 프로세싱 엘리먼트가 인터럽트 요청을 처리하는 재구성 가능 프로세서.
  2. 제 1 항에 있어서,
    상기 지정된 프로세싱 엘리먼트를 제외한 나머지 프로세싱 엘리먼트에서는 루프 연산이 실행되고, 상기 루프 연산의 실행 도중 상기 인터럽트 요청이 발생하면 상기 지정된 프로세싱 엘리먼트가 상기 인터럽트 요청을 처리하는 재구성 가능 프로세서.
  3. 제 2 항에 있어서,
    상기 인터럽트 요청은 상기 루프 연산의 실행과 병렬적으로 처리되는 재구성 가능 프로세서.
  4. 다수의 프로세싱 엘리먼트를 포함하는 코어스 그레인 어레이;
    상기 다수의 프로세싱 엘리먼트 중 적어도 1 이상의 프로세싱 엘리먼트를 상기 코어스 그레인 어레이와 공유하는 호스트 프로세서; 및
    상기 호스트 프로세서의 프로세싱 엘리먼트 중 적어도 1 이상의 프로세싱 엘 리먼트를 별도로 지정하고, 상기 코어스 그레인 어레이에서 루프 연산이 실행되는 도중 인터럽트 요청이 발생하면 상기 지정된 프로세싱 엘리먼트가 상기 인터럽트 요청을 처리하도록 제어하는 제어부; 를 포함하는 재구성 가능 프로세서.
  5. 제 4 항에 있어서,
    상기 코어스 그레인 어레이 및 상기 호스트 프로세서의 처리 결과를 저장하는 중앙 레지스터 파일; 을 더 포함하며,
    상기 제어부는, 상기 중앙 레지스터 파일의 일부를 별도로 지정하는 재구성 가능 프로세서.
  6. 제 4 항에 있어서,
    상기 제어부는, 상기 루프 연산과 관련된 인스트럭션을 상기 지정된 프로세싱 엘리먼트를 제외한 나머지 프로세싱 엘리먼트에 매핑하는 재구성 가능 프로세서.
  7. 제 4 항에 있어서,
    상기 인터럽트 요청은 상기 루프 연산의 실행과 병렬적으로 처리되는 재구성 가능 프로세서.
  8. 다수의 제 1 프로세싱 엘리먼트를 포함하는 코어스 그레인 어레이;
    상기 코어스 그레인 어레이의 외부에 형성되며, 다수의 제 2 프로세싱 엘리먼트를 포함하는 호스트 프로세서; 및
    상기 제 2 프로세싱 엘리먼트 중 적어도 1 이상의 프로세싱 엘리먼트를 별도로 지정하고, 상기 코어스 그레인 어레이에서 루프 연산이 실행되는 도중 인터럽트 요청이 발생하면 상기 지정된 프로세싱 엘리먼트가 상기 인터럽트 요청을 처리하도록 제어하는 제어부; 를 포함하는 재구성 가능 프로세서.
  9. 제 8 항에 있어서,
    상기 코어스 그레인 어레이 및 상기 호스트 프로세서의 처리 결과를 저장하는 중앙 레지스터 파일; 을 더 포함하며,
    상기 제어부는, 상기 중앙 레지스터 파일의 일부를 별도로 지정하는 재구성 가능 프로세서.
  10. 제 8 항에 있어서,
    상기 제어부는, 상기 루프 연산과 관련된 인스트럭션을 상기 제 1 프로세싱 엘리먼트에 매핑하는 재구성 가능 프로세서.
  11. 제 8 항에 있어서,
    상기 인터럽트 요청은 상기 루프 연산의 실행과 병렬적으로 처리되는 재구성 가능 프로세서.
  12. 다수의 프로세싱 엘리먼트를 포함하는 재구성 가능 프로세서의 인터럽트 핸들링 방법에 있어서,
    상기 다수의 프로세싱 엘리먼트 중 적어도 1 이상의 프로세싱 엘리먼트를 별도로 지정하는 단계;
    상기 별도로 지정된 프로세싱 엘리먼트를 제외한 나머지 프로세싱 엘리먼트에서 루프 연산이 실행되는 도중 인터럽트 요청이 발생하였는지 여부를 판단하는 단계; 및
    상기 인터럽트 요청이 발생된 경우, 상기 지정된 프로세싱 엘리먼트가 상기 인터럽트 요청을 처리하도록 제어하는 단계; 를 포함하는 인터럽트 핸들링 방법.
  13. 제 12 항에 있어서,
    상기 프로세싱 엘리먼트를 별도로 지정하는 단계는, 상기 다수의 프로세싱 엘리먼트 중 상기 지정된 프로세싱 엘리먼트를 제외한 나머지 프로세싱 엘리먼트에만 상기 루프 연산과 관련된 인스트럭션을 매핑하는 과정을 포함하는 인터럽트 핸들링 방법.
  14. 제 12 항에 있어서,
    상기 인터럽트 요청은 상기 루프 연산의 실행과 병렬적으로 처리되는 인터럽트 핸들링 방법.
KR1020090035100A 2009-04-22 2009-04-22 재구성 가능 프로세서 및 이를 이용한 인터럽트 핸들링 방법 KR101622266B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020090035100A KR101622266B1 (ko) 2009-04-22 2009-04-22 재구성 가능 프로세서 및 이를 이용한 인터럽트 핸들링 방법
US12/709,862 US8417918B2 (en) 2009-04-22 2010-02-22 Reconfigurable processor with designated processing elements and reserved portion of register file for interrupt processing

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020090035100A KR101622266B1 (ko) 2009-04-22 2009-04-22 재구성 가능 프로세서 및 이를 이용한 인터럽트 핸들링 방법

Publications (2)

Publication Number Publication Date
KR20100116413A true KR20100116413A (ko) 2010-11-01
KR101622266B1 KR101622266B1 (ko) 2016-05-18

Family

ID=42993114

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020090035100A KR101622266B1 (ko) 2009-04-22 2009-04-22 재구성 가능 프로세서 및 이를 이용한 인터럽트 핸들링 방법

Country Status (2)

Country Link
US (1) US8417918B2 (ko)
KR (1) KR101622266B1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170092779A (ko) * 2016-02-04 2017-08-14 한국전자통신연구원 가속 시스템 및 그 구동 방법
KR101936942B1 (ko) * 2017-08-28 2019-04-09 에스케이텔레콤 주식회사 분산형 컴퓨팅 가속화 플랫폼 장치 및 분산형 컴퓨팅 가속화 플랫폼 운영 방법

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4911022B2 (ja) * 2007-12-27 2012-04-04 富士通セミコンダクター株式会社 カウンタ制御回路、動的再構成回路およびループ処理制御方法
US8484648B2 (en) * 2009-10-19 2013-07-09 International Business Machines Corporation Hardware multi-threading co-scheduling for parallel processing systems
KR101754203B1 (ko) * 2011-01-19 2017-07-07 삼성전자주식회사 파워 게이팅 기반의 재구성가능 프로세서, 이를 위한 컴파일 장치 및 방법
US9354934B2 (en) * 2012-01-05 2016-05-31 International Business Machines Corporation Partitioned shared processor interrupt-intensive task segregator
KR101978409B1 (ko) * 2012-02-28 2019-05-14 삼성전자 주식회사 재구성가능 프로세서, 이를 위한 코드 변환 장치 및 방법
WO2013162523A1 (en) * 2012-04-24 2013-10-31 Intel Corporation Dynamic interrupt reconfiguration for effective power management
KR20140131472A (ko) * 2013-05-03 2014-11-13 삼성전자주식회사 상수 저장 레지스터를 구비하는 재구성 가능 프로세서
KR20150062650A (ko) * 2013-11-29 2015-06-08 삼성전자주식회사 재구성 가능 프로세서 제어 방법 및 제어 장치
CN105335331B (zh) * 2015-12-04 2018-08-21 东南大学 一种基于大规模粗粒度可重构处理器的sha256实现方法及系统
CN105975251B (zh) * 2016-05-19 2018-10-02 东南大学—无锡集成电路技术研究所 一种基于粗粒度可重构架构的des算法轮迭代系统及迭代方法

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3433471B2 (ja) * 1993-05-27 2003-08-04 ソニー株式会社 光ディスク装置における信号処理方法
US6842811B2 (en) * 2000-02-24 2005-01-11 Pts Corporation Methods and apparatus for scalable array processor interrupt detection and response
CN1244050C (zh) 2000-03-10 2006-03-01 皇家菲利浦电子有限公司 数据处理设备、操作数据处理设备的方法及将程序编译成指令序列的方法
TW200504592A (en) 2003-07-24 2005-02-01 Ind Tech Res Inst Reconfigurable apparatus with high hardware efficiency
JP2005050208A (ja) 2003-07-30 2005-02-24 Matsushita Electric Ind Co Ltd マルチタスクシステムにおけるメモリ管理方式およびタスク制御装置
US7702835B2 (en) 2005-02-03 2010-04-20 Oracle America, Inc. Tagged interrupt forwarding
JP2006216042A (ja) 2005-02-04 2006-08-17 Sony Computer Entertainment Inc 割り込み処理のためのシステムおよび方法
US7447820B2 (en) * 2005-09-30 2008-11-04 Intel Corporation Retargeting of platform interrupts
KR100681199B1 (ko) 2006-01-11 2007-02-09 삼성전자주식회사 코어스 그레인 어레이에서의 인터럽트 처리 방법 및 장치
JP4033215B2 (ja) 2006-01-31 2008-01-16 セイコーエプソン株式会社 マルチプロセッサシステム及びマルチプロセッサシステムの制御方法をコンピュータに実行させるためのプログラム
KR100812346B1 (ko) * 2006-02-06 2008-03-11 삼성전자주식회사 재구성 어레이에서의 인터럽트 처리 방법 및 장치
US7934121B2 (en) * 2006-11-21 2011-04-26 Microsoft Corporation Transparent replacement of a system processor

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170092779A (ko) * 2016-02-04 2017-08-14 한국전자통신연구원 가속 시스템 및 그 구동 방법
KR101936942B1 (ko) * 2017-08-28 2019-04-09 에스케이텔레콤 주식회사 분산형 컴퓨팅 가속화 플랫폼 장치 및 분산형 컴퓨팅 가속화 플랫폼 운영 방법

Also Published As

Publication number Publication date
US20100274939A1 (en) 2010-10-28
US8417918B2 (en) 2013-04-09
KR101622266B1 (ko) 2016-05-18

Similar Documents

Publication Publication Date Title
KR101622266B1 (ko) 재구성 가능 프로세서 및 이를 이용한 인터럽트 핸들링 방법
RU2427895C2 (ru) Оптимизированная для потоков многопроцессорная архитектура
US10318307B2 (en) Scalarization of vector processing
KR101738941B1 (ko) 재구성 가능 어레이 및 재구성 가능 어레이의 제어 방법
KR101978409B1 (ko) 재구성가능 프로세서, 이를 위한 코드 변환 장치 및 방법
KR100681199B1 (ko) 코어스 그레인 어레이에서의 인터럽트 처리 방법 및 장치
US20080046689A1 (en) Method and apparatus for cooperative multithreading
US20070150671A1 (en) Supporting macro memory instructions
US20150150019A1 (en) Scheduling computing tasks for multi-processor systems
KR20200138439A (ko) 인터럽트들의 세트들을 구성하는 장치 및 방법
US6675289B1 (en) System and method for executing hybridized code on a dynamically configurable hardware environment
KR100694212B1 (ko) 다중-프로세서 구조에서 데이터 처리 수행성능을증가시키기 위한 분산 운영 시스템 및 그 방법
EP2310953B1 (en) Improvements relating to single instruction multiple data (simd) architectures
KR101571882B1 (ko) 재구성 가능 어레이의 인터럽트 핸들링을 위한 컴퓨팅 장치및 방법
JP3981238B2 (ja) 情報処理装置
US20060200648A1 (en) High-level language processor apparatus and method
US20100115234A1 (en) Configurable vector length computer processor
JP2005508029A (ja) リコンフィギュアラブルアーキテクチャのためのプログラム変換方法
US20220197696A1 (en) Condensed command packet for high throughput and low overhead kernel launch
KR20130131789A (ko) 미니코어 기반의 재구성 가능 프로세서 및 그 재구성 가능 프로세서를 이용한 유연한 다중 데이터 처리 방법
US7107478B2 (en) Data processing system having a Cartesian Controller
KR20130091113A (ko) 재구성 기반 컴퓨팅 장치의 제1메모리 제어기 및 제2메모리 제어기와, 디버깅용 트레이스 데이터 처리가 가능한 재구성 기반 컴퓨팅 장치
JPH08235149A (ja) 単一命令・多データ型並列計算機の命令生成・分配装置
JP2016004383A (ja) 半導体装置および半導体装置の動作方法
JP2001092663A (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: 20190422

Year of fee payment: 4