KR100893527B1 - 재구성 가능 멀티 프로세서 시스템에서의 매핑 및 스케줄링방법 - Google Patents

재구성 가능 멀티 프로세서 시스템에서의 매핑 및 스케줄링방법 Download PDF

Info

Publication number
KR100893527B1
KR100893527B1 KR1020070011262A KR20070011262A KR100893527B1 KR 100893527 B1 KR100893527 B1 KR 100893527B1 KR 1020070011262 A KR1020070011262 A KR 1020070011262A KR 20070011262 A KR20070011262 A KR 20070011262A KR 100893527 B1 KR100893527 B1 KR 100893527B1
Authority
KR
South Korea
Prior art keywords
functional block
mapping
processor
reconfigurable
reconfigurable processor
Prior art date
Application number
KR1020070011262A
Other languages
English (en)
Other versions
KR20080072457A (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 KR1020070011262A priority Critical patent/KR100893527B1/ko
Priority to US11/980,647 priority patent/US8677362B2/en
Publication of KR20080072457A publication Critical patent/KR20080072457A/ko
Application granted granted Critical
Publication of KR100893527B1 publication Critical patent/KR100893527B1/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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/48Indexing scheme relating to G06F9/48
    • G06F2209/483Multiproc

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Microcomputers (AREA)
  • Advance Control (AREA)

Abstract

 본 발명은 재구성 가능 멀티 프로세서 시스템에서의 매핑 및 스케줄링 방법에 관한 것으로, 재구성 가능 프로세서에 동시에 하나의 기능 블록을 매핑하고, 시스템에서 태스크가 생성한 경우, 태스크의 기능 블록을 호스트 프로세서 또는 재구성 가능 프로세서에 각각 동적으로 매핑함으로써, 재구성 가능 프로세서상에서 기능 블록 간의 시간적 분할을 없애, 재구성 횟수를 줄이고, 재구성 가능 프로세서의 오버헤드를 최소화하여 동적 다중 응용 환경에서 최적화시킬 수 있는 효과가 있다.
재구성 가능 프로세서, 매핑, 스케줄링, 기능 블록

Description

재구성 가능 멀티 프로세서 시스템에서의 매핑 및 스케줄링 방법{Method of mapping and scheduling of reconfigurable multi-processor system}
도 1A 및 1B는 종래기술에 따른 기능 블록 매핑과 재구성 프로세스를 설명하기 위한 도면이다.
도 2A 및 2B는 본 발명의 일 실시 예에 따른 기능 블록 매핑과 재구성 프로세스를 설명하기 위한 도면이다.
도 3A 및 3B는 본 발명의 다른 실시 예에 따른 기능 블록 매핑과 재구성 프로세스를 설명하기 위한 도면이다.
도 4는 본 발명의 또 다른 실시 예에 따른 재구성 프로세스를 설명하기 위한 도면이다.
도 5는 본 발명의 또 다른 실시 예에 따른 전체 시스템의 구성을 개략적으로 도시한 도면이다.
도 6은 본 발명의 또 다른 실시 예에 따른 재구성 가능 멀티 프로세서 시스템에서의 스케줄링 방법을 설명하기 위한 흐름도이다.
도 7은 본 발명의 또 다른 실시 예에 따른 태스크 생성/소멸 시의 스케줄링 방법을 설명하기 위한 흐름도이다.
도 8은 본 발명의 또 다른 실시 예에 따른 구성 완료 시의 스케줄링 방법을 설명하기 위한 흐름도이다.
도 9는 본 발명의 또 다른 실시 예에 따른 기능 블록 수행 시의 스케줄링 방법을 설명하기 위한 흐름도이다.
도 10은 본 발명의 또 다른 실시 예에 따른 기능 블록 수행 완료 시의 스케줄링 방법을 설명하기 위한 흐름도이다.
<도면의 주요 부분에 대한 부호의 설명>
100,200,300,500: 호스트 프로세서
110,210,310,510: 재구성 가능 프로세서 520: 구성 메모리
120,130,220,230,320,330: 태스크
530: 메모리 531: 태스크 큐
532: 태스크 코드 533: 호스트 프로세서용 코드
534: 재구성 가능 프로세서용 구성 비트스트림 이미지
535: RP 대기 기능 블록(wi) 536: 기능 블록 매핑 플래그(mx)
537: RP 상태 플래그(si)
본 발명의 매핑 및 스케줄링 방법에 관한 것으로, 더 상세하게는 재구성 가능 멀티 프로세서 시스템에서의 매핑 방법과 스케줄링 방법에 관한 것이다.
재구성 가능 프로세서(reconfigurable processor, 이하 'RP'라 칭함)는 소프트웨어처럼 하드웨어를 동적으로 재구성할 수 있는 프로세서이다. 즉 하나의 재구성 가능 프로세서로 구성을 바꾸면서 여러 하드웨어의 기능을 처리할 수 있다. 이는 하드웨어의 장점인 성능과 소프트웨어의 장점인 유연성(flexibility)을 모두 갖고 있어서 응용의 요구 사항을 잘 만족하므로 앞으로 그 사용이 더욱 확대될 것으로 기대한다.
일반적으로, 재구성 가능 프로세서(RP)는 호스트 프로세서(host processor)의 보조 프로세서(co-processor)로서 계산 집약적인 기능 블록(function block)의 수행을 가속화하는 데 사용한다.
그런데 태스크의 생성 및 소멸이 동적인 멀티 태스크(multi-task) 환경에서는 어떤 기능 블록을 재구성 가능 프로세서(RP)에서 수행할지를 정하는 매핑(mapping) 문제와 이렇게 매핑한 기능 블록을 재구성 가능 프로세서(RP)에서 최소한의 오버헤드(overhead)로 수행하는 스케줄링 문제가 성능과 이용률을 높이는 데 매우 중요한 기술적 이슈가 된다.
한편, 종래의 매핑 기술은 하드웨어-소프트웨어 분할 기술로서, 응용의 각 기능 블록(fa,fb)과 그것을 구현할 프로세서의 매핑이 응용의 생성시(build time)에 정적으로 결정된다. 그런데 이렇게 매핑된 여러 응용을 동적으로 수행하다 보면, 도 1A에 도시된 것처럼 하나의 재구성 가능 프로세서(110)에 동시에 여러 기능 블록들(fa,fb)을 매핑하는 경우가 발생한다.
이러한 하나의 재구성 가능 프로세서에 여러 기능 블록을 할당함으로써 발생하는 문제점을 해결하기 위한 종래기술로서, D. Mesquita 등의 "Remote and Partial Reconfiguration of FPGAs: tools and trends. Proceedings of the International Parallel and Distributed Processing Symposium (IPDPS'03), 2003."에 개시된 부분적 재구성(partial reconfiguration) 기법, 또는 다중 문맥(multi-context)을 사용한 공간적 분할 기법 등이 있지만, 자원 제약이 있어 근본적인 해결방안을 제시하지는 못하고 있다.
또한, 전술한 부분적 재구성 또는 공간적 분할 기법의 대안으로서 시간적 분할(temporal sharing) 방식이 제안되고 있다.
도 1B는 종래의 시간 분할을 이용한 재구성 프로세스를 설명하기 위한 도면이다.
도 1B에 도시된 것처럼, 태스크 A(tA, 120)의 기능 블록 a(fa)와 태스크 B(tB, 130)의 기능 블록 b(fb)가 재구성 가능 프로세서(110)상에서 시간적 분할 방식으로 수행하는 예가 있다. 여기서, 점선은 호스트 프로세서(100)가 재구성 가능 프로세서(110)에 특정 기능 블록을 수행하도록 재구성을 요청하는 것을 나타내고, 실선은 호스트 프로세서(100)가 재구성 가능 프로세서(110)에 특정 기능 블록의 수행을 요청하는 것을 나타낸다.
먼저, t0에서 호스트 프로세서(100)상에서 태스크 A(tA)가 수행을 시작한다. t1에서, 태스크 A(tA)가 기능 블록 a(fa)를 호출하지만, 아직 재구성 가능 프로세 서(110)가 기능 블록 b(fb)를 수행 중에 있으므로 대기한다. t2에서, 재구성 가능 프로세서(110)가 기능 블록 a(fa)로 재구성한다(cfa). t3에서, 재구성 가능 프로세서(110)가 기능 블록 a(fa)를 수행한다. t4에서 재구성 가능 프로세서(110)가 기능 블록 a(fa)의 수행 결과를 호스트 프로세서(100)에 제공한다. 태스크 B(tB)도 같은 식으로 수행한다. 이후 같은 과정을 T 주기로 반복한다.
이 방식의 문제점은 재구성 가능 프로세서의 잦은 재구성으로 인한 수행 시간 및 에너지 소모의 증가이다. 이것은 재구성 가능 프로세서를 재구성하기 위해, 새로운 구성 비트스트림을 읽어서 구성 메모리(configuration memory)로 덮어쓸 때, 메모리 접근에 따른 수행 시간 및 에너지 소모가 발생하기 때문이다. 도 1B에서, 호스트 프로세서(100)에서 재구성 가능 프로세서(110)로 기능 블록 a(fa)와 기능 블록 b(fb)에 대한 수행 요청이 재구성 가능 프로세서(110)를 재구성하는 것 때문에 t3-t2, 또는 t5-t4의 시간만큼 지연되는 문제점이 있다.
이러한 지연 시간을 줄이기 위해 구성 비트스트림을 프리패치(prefetch)하는 방법이 있으나, 프리패치 메모리가 추가로 필요하고, 또한 에너지 소모는 줄일 수 없는 한계가 있다.
또 다른 문제점은 재구성 가능 프로세서의 기능 블록 전환 시, 기존 기능 블록이 아직 수행 중인 경우에 나타난다. 도 1B의 t1에서 기능 블록 a(fa)에 대한 재 구성 요청이 아직 수행 중인 기능 블록 b(fb)때문에 t2-t1만큼 지연된다는 것이다. 이 지연 시간을 줄이기 위해 선점형(preemptive) 스케줄링을 할 수 있으나, 재구성 가능 프로세서의 사용 중인 레지스터 값을 모두 저장하고 복구하는 일이 필요하며, 재구성 가능 프로세서의 특성상 레지스터의 개수가 많기 때문에 많은 시간이 소모된다는 문제점이 있다.
본 발명은 전술한 종래기술의 문제점을 해결하기 위해 안출된 것으로, 재구성 프로세서상에서 기능 블록 간에 시간적 분할을 없애 재구성 횟수를 최소화하고, 기능 블록의 매핑을 정적으로 고정하지 않고 수행 중에 동적으로 수정할 수 있는 재구성 가능 멀티 프로세서 시스템에서의 매핑 방법 및 스케줄링 방법을 제공하는 데 목적이 있다.
본 발명의 기술적 과제를 달성하기 위한 적어도 하나 이상의 기능 블록을 수행하는 호스트 프로세서, 상기 기능 블록의 일부를 재구성하여 수행하는 재구성 가능 프로세서 및 메모리를 포함하는 재구성 가능 멀티 프로세서 시스템에 있어서, 상기 기능 블록을 매핑하는 방법은 상기 재구성 가능 프로세서에 동시에 하나의 기능 블록을 매핑하는 단계; 및 상기 시스템에서 태스크가 생성 또는 소멸한 경우, 상기 매핑된 기능블록 및 상기 생성 또는 소멸한 태스크의 기능 블록을 상기 호스트 프로세서 또는 상기 재구성 가능 프로세서에 각각 동적으로 매핑하는 단계를 포 함한다.
본 발명의 다른 기술적 과제를 달성하기 위한 적어도 하나 이상의 기능 블록을 수행하는 호스트 프로세서, 상기 기능 블록의 일부를 재구성하여 수행하는 재구성 가능 프로세서 및 메모리를 포함하는 재구성 가능 멀티 프로세서 시스템에 있어서, 상기 시스템을 스케줄링하는 방법은 상기 시스템을 초기화할 때, 상기 메모리에 저장된 RP 상태 플래그(si)를 준비(READY) 상태로 초기화하는 단계; 및 상기 시스템에 발생한 이벤트가 있는지 판단하고, 상기 이벤트에 따라 스케줄링을 수행하는 단계를 포함하고, 상기 이벤트는 태스크 생성 또는 소멸, 상기 재구성 가능 프로세서의 구성 완료, 상기 기능 블록 수행 및 상기 재구성 가능 프로세서의 수행 완료 중 적어도 하나 이상을 포함하는 것을 특징으로 한다.
본 발명의 또 다른 기술적 과제를 달성하기 위한 상기 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 기록매체를 포함한다.
본 발명의 세부 및 개선 사항은 종속항에 개시된다.
이하, 첨부한 도면들을 참조하여 본 발명의 바람직한 실시 예들을 상세히 설명한다.
도 2A 및 2B는 본 발명의 일 실시 예에 따른 기능 블록 매핑과 재구성 프로세스를 설명하기 위한 도면이다.
도 2A에 도시된 것처럼, 태스크 A(tA, 220)의 기능 블록 a(fa) 만을 재구성 가능 프로세서(210)에 매핑하고, 태스크 B(tB, 230)의 기능 블록 b(fb)는 호스트 프 로세서(200)에 매핑한다. 즉, 하나의 재구성 가능 프로세서에 동시에 하나의 기능 블록만 매핑하여 재구성 가능 프로세서를 시간적으로 분할해서 사용할 필요가 없다. 따라서 잦은 재구성으로 인한 수행 시간 및 에너지 소모를 줄일 수 있다.
도 1A와 비교하면, 기능블록 a(fa)만을 재구성 가능 프로세서에 매핑하고 기능 블록 b(fb)는 호스트 프로세서에서 수행함으로써, 기능 블록의 수행 중에 재구성 가능 프로세서의 재구성이 발생하지 않고 그에 따른 오버헤드가 없다.
도 2B를 참조하면, t1에서, 태스크 A(tA, 220)가 기능 블록 a(fa)를 호출하면 곧바로 재구성 가능 프로세서(210)에서 기능 블록 a(fa)를 수행한다. t2에서, 태스크 B(tB , 230)가 기능 블록 b(fb)를 호출하면 이는 호스트 프로세서(200)에서 바로 수행한다. 이는 기능 블록 b(fb)를 계산집약적으로 특화된 재구성 가능 프로세서(210)에서 수행하는 것보다는 시간이 더 걸리지만, 재구성 가능 프로세서의 오버헤드가 감소하는 것을 고려하면, 전반적으로 수행 시간과 에너지 소모 면에서 이득이다. 도 1B와 비교하면, 기능 블록의 수행 주기가 t3-t1만큼 감소한다.
도 3A 및 3B는 본 발명의 다른 실시 예에 따른 기능 블록 매핑과 재구성 프로세스를 설명하기 위한 도면이다.
도 3A를 참조하면, 재구성 가능 프로세서(310)에 새롭게 생성된 태스크 C(tC, 330)의 기능 블록 c(fc)가 매핑되고, 기존의 태스크 A(tA, 320)는 호스트 프로세서(300)에 매핑된다. 이는 동적 다중 태스크 환경, 즉 특정 태스크가 생성되 고 소멸되는 경우에 현재 태스크 조합에 최적으로 재구성 가능 프로세서의 구성을 적응시키기 위함이다. 즉, 호스트 프로세서와 재구성 가능 프로세서 간에 매핑을 동적으로 전환함으로써 이루어진다.
이러한 동적 매핑은 태스크의 생성 및 소멸 시에만 발생하므로, 재구성 가능 프로세서의 재구성 횟수를 최소한으로 제한할 수 있다.
도 3B를 참조하면, 도면 부호 340으로 도시된 t1에서 태스크 B(tB)가 소멸하고 태스크 C(tC)가 생성된다. 이때 기능 블록 a(fa)보다 기능 블록 c(fc)를 재구성 가능 프로세서(310)에서 수행하는 것이 효율적이라면, 호스트 프로세서(300)는 재구성 가능 프로세서(310)에 기능 블록 c(fc)에 대한 재구성을 요청하고, 기능 블록a(fa)의 매핑은 호스트 프로세서(300)로 수정한다. 이후 재구성이 완료하면 기능 블록 c(fc)의 매핑을 재구성 가능 프로세서(310)로 수정한다.
이때, t2에서 기능 블록 c(fc)에 대한 호출은 매핑이 재구성 가능 프로세서(310)로 되어있다면 재구성 가능 프로세서(310)에서 수행하지만, 재구성이 아직 완료하지 않아서 매핑이 호스트 프로세서(300)로 되어 있다면, 기능 블록 c(fc)의 재구성이 완료되기를 기다리지 않고, 기능 블록 c(fc)를 호스트 프로세서(300)에서 수행할 수 있다.
도 4는 본 발명의 또 다른 실시 예에 따른 재구성 프로세스를 설명하기 위한 도면이다.
도 4를 참조하면, 도면 부호 400으로 도시된 t2에서 태스크 B(tB)가 소멸하고 태스크 C(tC)가 생성된다. 이때 재구성 가능 프로세서로의 기능 블록 c(fc)에 대한 재구성을 요청하지만, 아직 재구성 가능 프로세서가 기능 블록 a(fa)를 수행 중에 있으므로 t4까지 재구성을 대기한다. t3에서 기능 블록 c(fc)에 대한 호출은 아직 기능 블록 c(fc)에 대한 재구성 가능 프로세서의 재구성이 완료되지 않았으므로 호스트 프로세서에서 수행한다. 따라서 기능 블록 c(fc)의 수행은 t5까지 지연하지 않는다. 반면 이후 t6에서 기능 블록 c(fc)에 대한 호출은 재구성 가능 프로세서의 기능 블록 c(fc)에 대한 재구성이 완료되었으므로 재구성 가능 프로세서에서 수행한다. 이렇게 함으로써, 재구성 가능 프로세서로의 재구성 요청이 기존 기능 블록의 수행으로 인해 지연되는 경우, 이에 따른 시간 지연을 보상할 수 있다.
도 5는 본 발명의 또 다른 실시 예에 따른 전체 시스템의 구성을 개략적으로 도시한 도면이다.
도 5를 참조하면, 시스템은 주 프로세서인 호스트 프로세서(500), 보조 프로세서인 재구성 가능 프로세서(510)와 구성 메모리(520) 및 메모리(530)를 포함한다.
호스트 프로세서(500)는 응용의 전반적인 기능 및 멀티 태스킹을 수행하고, 성능 향상을 위해서 일부 기능 블록을 재구성 가능 프로세서(510)로 보내서 수행시킬 수 있다. 호스트 프로세서(500)는 본 발명의 바람직한 실시 예에 따른 기능 블 록 매핑과 스케줄링을 수행한다. 또한, 도면에는 하나의 호스트 프로세서(500)가 도시되어 있지만, 복수의 호스트 프로세서들로 구성할 수 있다.
재구성 가능 프로세서(510)는 동적으로 다시 배선할 수 있는(rewire) 소거 가능(erasable) 하드웨어를 가진 마이크로 프로세서이다. 즉, 종래의 CPU가 아니라 재구성 가능한 로직(reconfigurable logic)에 기초한 프로세서이다. 이러한 프로세서는 특정 소프트웨어에 의해 요구되는 프로그래밍 태스크를 일정한 시간 내에 효과적으로 인터페이싱 하도록 한다.
이러한 재구성 가능 프로세서(510)는 구성 정보를 저장하기 위한 구성 메모리(configuration memory, 520)를 포함한다. 이 메모리는 기존의 데이터나 명령(instruction)을 위한 메모리가 아니라 시스템 구성을 위한 정보만을 저장하는 메모리이다.
도면에는 하나 이상의 재구성 가능 프로세서(510)와 각각의 재구성 가능 프로세서에 속한 하나 이상의 구성 메모리(520)가 도시되어 있다.
재구성 가능 프로세서(510)는 호스트 프로세서(500)에서 할당해준 기능 블록을 수행하고 처리한 결과를 호스트 프로세서(500)로 넘겨준다. 호스트 프로세서(500)는 특정 재구성 가능 프로세서에 특정 기능 블록을 구성하기 위해, 해당 기능 블록의 구성용 비트스트림(RP configuration bit-stream)을 해당 재구성 가능 프로세서(510)의 구성 메모리(520)로 복사한다. 구성이 완료되면, 호스트 프로세서(500)에서 해당 기능 블록을 호출할 때마다, 해당 재구성 가능 프로세서(510)로 수행을 요청하여 결과를 얻는다. 호스트 프로세서(500)의 구성 및 수행 요청에 대 해 재구성 가능 프로세서(510)는 각각 구성 완료 및 수행 완료로 응답한다.
메모리(530)는 호스트 프로세서의 태스크 큐(task queue, 531) 및 태스크 코드(532), 각 기능 블록의 호스트 프로세서용 코드(533) 및 재구성 가능 프로세서용 구성 비트스트림 이미지(534), RP 대기 기능 블록(RP-waiting function, wi, 535), 기능 블록 매핑 플래그(function mapping flag, mx, 536) 및 RP 상태 플래그(RP status flag, si, 537)를 포함한다.
본 발명의 바람직한 실시 예는 여러 응용이 동적으로 수행되는 환경을 가정하며, 각 응용은 멀티 태스크로 구성할 수 있는데, 호스트 프로세서에서 이들의 멀티 태스킹을 수행한다. 또한, 각 태스크는 여러 기능 블록을 호출할 수 있는데, 특정 기능 블록이 상황에 따라 호스트 프로세서(500) 또는 재구성 가능 프로세서(510)에 동적으로 매핑될 수 있다. 이를 위해서 해당 기능 블록은 호스트 프로세서용 코드(533)와 재구성 가능 프로세서용 구성 비트스트림 이미지(534)를 모두 가지고 있으면서 수행 시 선택적으로 사용한다.
RP 대기 기능 블록(wi, 535)은 재구성 가능 프로세서가 수행 중일 때, 재구성 요청이 들어온 기능 블록을 수행이 끝날 때까지 대기시킨다.
기능 블록 매핑 플래그(mx, 536)는 호스트 프로세서(500)로부터의 기능 블록의 매핑 정보를 저장하며 매핑에 따라 HOST 또는 RPi의 값을 가진다.
RP 상태 플래그(si, 537)는 해당 재구성 가능 프로세서가 수행 중(RUNNING) 인지 아닌지(READY)를 나타낸다.
도 6은 본 발명의 또 다른 실시 예에 따른 재구성 가능 멀티 프로세서 시스템에서의 스케줄링 방법을 설명하기 위한 흐름도이다.
본 발명의 바람직한 실시 예에 따라 동적 다중 태스크 환경에서 특정 태스크가 생성되거나 또는 소멸되는 경우, 재구성 가능 프로세서의 구성이 완료(configuration done)된 경우, 기능 블록을 수행(execute function)하는 경우, 그리고 재구성 가능 프로세서에서 기능 블록 수행을 완료(execution done)한 경우에 현재 태스크 조합에 최적으로 재구성 가능 프로세서의 구성을 적응시키기 위한 스케줄링 방법을 설명한다.
도 6을 참조하면, 단계 600 및 602에서, 호스트 프로세서는 시스템이 초기화할 때 재구성 가능 프로세서의 상태 플래그(si)를 READY 상태로 초기화한다. 이어, 단계 604에서, 시스템에 발생한 이벤트가 있는지 판단하고, 이벤트에 따라 스케줄링을 수행한다. 여기서, 이벤트는 태스크 생성 또는 소멸, 재구성 가능 프로세서의 구성 완료, 기능 블록 수행 및 재구성 가능 프로세서의 수행 완료를 포함한다.
시스템에서 특정 시간에 태스크가 생성되는 이벤트가 발생한 경우, 단계 606에서 태스크 생성에 따른 스케줄링을 수행하고, 다시 단계 604로 되돌아가 다음 이벤트 발생을 대기한다.
마찬가지로, 재구성 가능 프로세서의 구성 완료 이벤트가 발생한 경우는 단계 608, 기능 블록 수행 이벤트가 발생한 경우는 단계 610, 그리고, 재구성 가능 프로세서의 수행 완료 이벤트가 발생한 경우는 단계 612에 따른 스케줄링을 수행하고, 각각 단계 604로 되돌아가 다음 이벤트 발생을 대기한다.
각각의 이벤트에 따른 스케줄링 방법을 도 7 내지 10을 참조하여 후술한다.
도 7은 본 발명의 또 다른 실시 예에 따른 태스크 생성/소멸 시의 스케줄링 방법을 설명하기 위한 흐름도이다.
단계 700에서, 태스크가 생성된 경우, 생성된 태스크를 메모리의 태스크 큐에 삽입하고, 태스크가 소멸한 경우는 소멸한 태스크를 태스크 큐에서 삭제한다.
이어, 단계 702에서, 삽입한 태스크의 기능 블록에 대해서 기능 블록 매핑 플래그(mx)를 HOST로 초기화한다. 즉 모든 기능 블록은 처음에 호스트 프로세서로 매핑한다. 단계 704에서, 다음 수행할 모든 기능 블록에 대해서 이를 수행할 프로세서로의 매핑을 새롭게 한다. 이는 현재 사용 중인 여러 기능 블록 중에서 재구성 가능 프로세서에서의 수행이 가장 적합하다고 판단하는 최대 N개, 즉 재구성 가능 프로세서의 개수를 선정하여 각각의 재구성 가능 프로세서로 할당해준다. 따라서 동일한 재구성 가능 프로세서에 동시에 하나의 기능 블록을 매핑한다. 여기서, 기능 블록이 포함된 태스크의 우선 순위, 기능 블록의 수행 빈도, 기능 블록이 호스트 프로세서에 재구성 가능 프로세서로 매핑되었을 때 향상되는 수행 시간, 및 에너지 소모 등을 고려해서 선택한다. 이러한 매핑은 동적으로 변화 가능하기 때문에 시스템 상황에 맞게 최적화할 수 있다.
각 기능 블록에 대한 매핑 결과는 다음 세 가지 중 하나이다. 첫째는 매핑 결과가 변하지 않은 경우이다. 이는 HOST → HOST의 경우와 RPi → RPi의 경우를 포함한다. 둘째는 매핑 결과가 RPi → HOST로 변한 경우, 셋째는 매핑 결과가 HOST → RPi로 변한 경우이다.
단계 706에서, 각각의 기능 블록에 대한 매핑이 재구성 가능 프로세서로 변경되었는지 판단한다. 재구성 가능 프로세서(RPi)로 변경된 경우, 단계 708에서, 재구성 가능 프로세서 상태 플래그(si)를 검사한다. 재구성 가능 프로세서의 상태 플래그(si)가 READY이면, 단계 710으로 진행하여 재구성 가능 프로세서(RPi)를 해당 기능 블록으로 재구성할 것을 요청한다. 재구성 가능 프로세서의 상태 플래그(si)가 RUNNING이면, 단계 712로 진행하여 해당 기능 블록을 RP 대기 기능 블록(wi)에 저장한다.
단계 706에서, 재구성 가능 프로세서(RPi)로 변경되지 않은 경우, 단계 714에서, 매핑이 호스트 프로세서로 변경되었는지 판단한다. 호스트 프로세서로 변경된 경우, 단계 716으로 진행하여 재구성 프로세서 매핑 플래그(mx)를 HOST로 수정한다.
도 8은 본 발명의 또 다른 실시 예에 따른 구성 완료 시의 스케줄링 방법을 설명하기 위한 흐름도이다.
구성 완료시의 스케줄링은 재구성 가능 프로세서에 특정 기능 블록의 구성이 완료되어서 수행 가능한 상태가 되었음을 알리기 위한 것이다. 구성이 완료된 경우, 단계 800에서, 메모리에 저장된 기능 블록 매핑 플래그(mx)를 RPi로 수정한다.
따라서, 재구성 가능 프로세서의 구성이 완료된 후에야 재구성 가능 프로세서로의 매핑을 수정하므로, 재구성 가능 프로세서의 수행 및 구성에 따른 지연 시간을 숨기고 응용의 실시간성도 해치지 않는다.
도 9는 본 발명의 또 다른 실시 예에 따른 기능 블록 수행 시의 스케줄링 방법을 설명하기 위한 흐름도이다.
해당 기능 블록 수행 이벤트가 발생한 경우, 단계 900에서, 해당 기능 블록 매핑 플래그(mx)를 검사한다. 이는 해당 기능 블록의 매핑에 따라서 이를 호스트 프로세서에서 수행할지, 재구성 가능 프로세서에서 수행할지를 결정하기 위함이다. 해당 기능 블록이 HOST로 매핑되어 있다면, 단계 902로 진행하여 호스트 프로세서에서 호스트 프로세서용 코드를 수행한다. 해당 기능 블록이 RPi로 매핑되어 있다면, 단계 904로 진행하여 해당 재구성 가능 프로세서로 기능 블록 수행을 요청하고, 해당 기능 블록을 재구성 가능 프로세서에서 수행한다. 그리고 단계 906에서 재구성 가능 프로세서 상태 플래그(si)를 RUNNING으로 수정하고, 단계 908에서, 해당 기능 블록의 수행이 완료할 때까지 해당 태스크를 잠재운다.
도 10은 본 발명의 또 다른 실시 예에 따른 기능 블록 수행 완료 시의 스케줄링 방법을 설명하기 위한 흐름도이다.
기능 블록 수행이 완료된 경우, 단계 1000 및 1002로 진행하여, 잠자고 있는 태스크를 깨워서, 재구성 가능 프로세서의 수행 결과를 저장한다. 그리고 단계 1004에서, 재구성 가능 프로세서 상태 플래그(si)를 READY로 수정한다. 이어, 단계 1006에서, RP 대기 기능 블록(wi)에 대기 중인 기능 블록이 있는지 판단하여, 있다면 단계 1008에서, 해당 기능 블록에 대한 재구성을 재구성 가능 프로세서(RPi)에 요청한다. 
본 발명은 또한 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터가 읽을 수 있는 기록매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광 데이터 저장장치 등이 있으며, 또한 캐리어 웨이브(예를 들어 인터넷을 통한 전송)의 형태로 구현되는 것도 포함한다.
이상 본 발명의 바람직한 실시 예들을 기초로 설명되었지만, 당업자들은 본 발명이 속하는 기술분야의 기술적 사상이나 필수적 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시 예들은 모든 면에서 예시적인 것이며 한정적인 것이 아닌 것으로서 이해되어야 한다. 본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 한정되며, 특허청구범위의 의미 및 범위 그리고 그 등가 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.
본 발명에 따라 재구성 가능 프로세서에 동시에 최대 1개의 기능 블록만을 매핑하여, 재구성 가능 프로세서상에서 기능 블록 간의 시간적 분할을 없애, 재구성 횟수를 최소화함으로써 재구성 가능 프로세서의 오버헤드를 최소화하고, 기능 블록의 매핑을 정적으로 고정하지 않고 수행 중에 동적으로 수정할 수 있으므로 호스트 프로세서와 재구성 가능 프로세서를 포함하는 시스템의 성능 및 이용률을 동적 다중 응용 환경에서 최적화시킬 수 있는 효과가 있다.
또한, 재구성 가능 프로세서를 재구성할 때, 아직 재구성이 완료하지 않았으면, 해당 기능 블록을 바로 호스트 프로세서에서 수행하도록 스케줄링함으로써, 재구성 가능 프로세서의 기존 기능 블록에 의한 지연 시간과 재구성에 따른 지연 시간을 감출 수 있는 효과가 있다.

Claims (20)

  1. 적어도 하나 이상의 기능 블록을 수행하는 호스트 프로세서, 상기 기능 블록의 일부를 재구성하여 수행하는 재구성 가능 프로세서 및 메모리를 포함하는 재구성 가능 멀티 프로세서 시스템에 있어서, 상기 기능 블록을 매핑하는 방법으로서,
    (a) 상기 재구성 가능 프로세서에 동시에 하나의 기능 블록만을 매핑하는 단계; 및
    (b) 상기 시스템에서 태스크가 생성된 경우, 상기 매핑된 기능 블록 및 상기 생성된 태스크의 기능 블록을 상기 호스트 프로세서 또는 상기 재구성 가능 프로세서에 각각 동적으로 매핑하는 단계를 포함하고,
    상기 적어도 하나 이상의 기능 블록은,
    상기 호스트 프로세서용 코드와 상기 재구성 가능 프로세서용 구성 비트스트림 이미지를 상기 메모리에 저장하고 있는 것을 특징으로 하는 재구성 가능 멀티 프로세서 시스템에서의 매핑 방법.
  2. 삭제
  3. 제 1 항에 있어서,
    상기 (b) 단계는,
    기능 블록이 포함된 태스크의 우선 순위, 기능 블록의 수행 빈도, 매핑 전환 시 기능 블록의 수행 시간과 에너지 소모 중 적어도 하나 이상을 기초로 매핑하는 것을 특징으로 하는 재구성 가능 멀티 프로세서 시스템에서의 매핑 방법.
  4. 제 1 항에 있어서,
    상기 시스템에서 태스크가 소멸한 경우,
    상기 (b) 단계를 수행하는 것을 특징으로 하는 재구성 가능 멀티 프로세서 시스템에서의 매핑 방법.
  5. 제 1 항에 있어서,
    상기 (b) 단계는,
    상기 시스템에 존재하는 기존 태스크의 기능 블록을 동적으로 매핑하는 것을 특징으로 하는 재구성 가능 멀티 프로세서 시스템에서의 매핑 방법.
  6. 적어도 하나 이상의 기능 블록을 수행하는 호스트 프로세서, 상기 기능 블록의 일부를 재구성하여 수행하는 재구성 가능 프로세서 및 메모리를 포함하는 재구성 가능 멀티 프로세서 시스템에 있어서, 상기 시스템을 스케줄링하는 방법으로서,
    (a) 상기 시스템을 초기화할 때, 상기 메모리에 저장된 RP 상태 플래그(si)를 준비(READY) 상태로 초기화하는 단계; 및
    (b) 상기 시스템에 발생한 이벤트가 있는지 판단하고, 상기 이벤트에 따라 스케줄링을 수행하는 단계를 포함하고,
    상기 이벤트는 태스크 생성 또는 태스크 소멸, 상기 재구성 가능 프로세서의 구성 완료, 상기 기능 블록 수행 및 상기 재구성 가능 프로세서의 수행 완료 중 적어도 하나 이상을 포함하는 것을 특징으로 하는 재구성 가능 멀티 프로세서 시스템에서의 스케줄링 방법.
  7. 제 6 항에 있어서,
    상기 이벤트가 태스크 생성 또는 태스크 소멸인 경우,
    상기 (b) 단계는,
    상기 태스크의 기능 블록에 대해 상기 메모리에 저장된 기능 블록 매핑 플래그(mx)를 상기 호스트 프로세서로 초기화하는 단계; 및
    다음 기능 블록에 대한 매핑을 설정하는 단계를 포함하고,
    상기 재구성 가능 프로세서에 동시에 하나의 기능 블록만을 매핑하는 것을 특징으로 하는 재구성 가능 멀티 프로세서 시스템에서의 스케줄링 방법.
  8. 제 7 항에 있어서,
    상기 재구성 가능 프로세서로의 매핑은,
    상기 기능 블록이 포함된 태스크의 우선 순위, 상기 기능 블록의 수행 빈도, 매핑 전환시 상기 기능 블록의 수행 시간과 에너지 소모 중 적어도 하나 이상을 기 초로 결정하는 것을 특징으로 하는 재구성 가능 멀티 프로세서 시스템에서의 스케줄링 방법.
  9. 제 7 항에 있어서,
    상기 (b) 단계는,
    상기 기능 블록에 대한 매핑이 상기 호스트 프로세서로 변경되었는지 판단하는 단계를 더 포함하고,
    상기 매핑이 상기 호스트 프로세서로 변경된 경우, 상기 기능 블록 매핑 플래그(mx)를 상기 호스트 프로세서로 수정하는 것을 특징으로 하는 재구성 가능 멀티 프로세서 시스템에서의 스케줄링 방법.
  10. 제 9 항에 있어서,
    상기 (b) 단계는,
    상기 기능 블록에 대한 매핑이 상기 재구성 가능 프로세서로 변경되었는지 판단하는 단계; 및
    상기 매핑이 상기 재구성 가능 프로세서로 변경된 경우, 상기 RP 상태 플래그(si)를 검사하는 단계를 더 포함하고,
    상기 RP 상태 플래그(si)가 준비(READY) 상태인 경우, 상기 재구성 가능 프로세서에 상기 기능 블록에 대한 재구성을 요청하고,
    상기 RP 상태 플래그(si)가 수행(RUNNING) 상태인 경우, 상기 메모리에 저장된 RP 대기 기능 블록(wi)에 상기 기능 블록을 저장하는 것을 특징으로 하는 재구성 가능 멀티 프로세서 시스템에서의 스케줄링 방법.
  11. 제 6 항에 있어서,
    상기 이벤트가 상기 재구성 가능 프로세서의 구성 완료(configuration done)인 경우,
    상기 (b) 단계는,
    상기 태스크의 기능 블록에 대해 상기 메모리에 저장된 기능 블록 매핑 플래그(mx)를 상기 재구성 가능 프로세서로 수정하는 단계를 포함하는 것을 특징으로 하는 재구성 가능 멀티 프로세서 시스템에서의 스케줄링 방법.
  12. 제 6 항에 있어서,
    상기 이벤트가 상기 기능 블록 수행(execute function)인 경우,
    상기 (b) 단계는,
    상기 태스크의 기능 블록에 대해 상기 메모리에 저장된 기능 블록 매핑 플래그(mx)를 검사하는 단계를 포함하는 것을 특징으로 하는 재구성 가능 멀티 프로세서 시스템에서의 스케줄링 방법.
  13. 제 12 항에 있어서,
    상기 검사 결과, 상기 기능 블록 매핑 플래그(mx)가 상기 호스트 프로세서로 설정되어 있는 경우,
    상기 메모리에 저장된 상기 기능 블록의 호스트 프로세서용 코드를 수행하는 것을 특징으로 하는 재구성 가능 멀티 프로세서 시스템에서의 스케줄링 방법.
  14. 제 12 항에 있어서,
    상기 검사 결과, 상기 기능 블록 매핑 플래그(mx)가 상기 재구성 가능 프로세서로 설정되어 있는 경우,
    상기 메모리에 저장된 상기 기능 블록의 재구성 가능 프로세서용 구성 비트스트림 이미지를 추출하여, 상기 추출된 구성 비트스트림 이미지를 기초로 상기 재구성 가능 프로세서에서 상기 기능 블록을 수행하는 것을 특징으로 하는 재구성 가능 멀티 프로세서 시스템에서의 스케줄링 방법.
  15. 제 14 항에 있어서,
    상기 (b) 단계는,
    상기 RP 상태 플래그(si)를 수행(RUNNING) 상태로 수정하는 단계를 더 포함하고,
    상기 수행이 완료할 때까지 상기 기능 블록을 포함하는 태스크를 잠재우는 것을 특징으로 하는 재구성 가능 멀티 프로세서 시스템에서의 스케줄링 방법.
  16. 제 6 항에 있어서,
    상기 이벤트가 상기 재구성 가능 프로세서의 수행 완료인 경우,
    상기 (b) 단계는,
    태스크를 깨워서 상기 재구성 가능 프로세서의 수행 결과를 저장하고, 상기 RP 상태 플래그(si)를 준비(READY) 상태로 수정하는 단계를 포함하는 것을 특징으로 하는 재구성 가능 멀티 프로세서 시스템에서의 스케줄링 방법.
  17. 제 16 항에 있어서,
    RP 대기 기능 블록(wi)에 저장된 기능 블록이 있는지 검사하는 단계를 더 포함하고,
    저장된 기능 블록이 있는 경우,
    상기 재구성 가능 프로세서에 상기 저장된 기능 블록의 재구성을 요청하는 것을 특징으로 하는 재구성 가능 멀티 프로세서 시스템에서의 스케줄링 방법.
  18. 제 6 항에 있어서,
    상기 호스트 프로세서는 적어도 하나 이상인 것을 특징으로 하는 재구성 가능 멀티 프로세서 시스템에서의 스케줄링 방법.
  19. 제 6 항에 있어서,
    상기 재구성 가능 프로세서는 적어도 하나 이상인 것을 특징으로 하는 재구성 가능 멀티 프로세서 시스템에서의 스케줄링 방법.
  20. 제 1 항, 제 3 항 내지 제 19 항 중 어느 한 항에 따른 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 기록매체.
KR1020070011262A 2007-02-02 2007-02-02 재구성 가능 멀티 프로세서 시스템에서의 매핑 및 스케줄링방법 KR100893527B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020070011262A KR100893527B1 (ko) 2007-02-02 2007-02-02 재구성 가능 멀티 프로세서 시스템에서의 매핑 및 스케줄링방법
US11/980,647 US8677362B2 (en) 2007-02-02 2007-10-31 Apparatus for reconfiguring, mapping method and scheduling method in reconfigurable multi-processor system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020070011262A KR100893527B1 (ko) 2007-02-02 2007-02-02 재구성 가능 멀티 프로세서 시스템에서의 매핑 및 스케줄링방법

Publications (2)

Publication Number Publication Date
KR20080072457A KR20080072457A (ko) 2008-08-06
KR100893527B1 true KR100893527B1 (ko) 2009-04-17

Family

ID=39882779

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020070011262A KR100893527B1 (ko) 2007-02-02 2007-02-02 재구성 가능 멀티 프로세서 시스템에서의 매핑 및 스케줄링방법

Country Status (2)

Country Link
US (1) US8677362B2 (ko)
KR (1) KR100893527B1 (ko)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101636377B1 (ko) 2009-10-23 2016-07-06 삼성전자주식회사 재구성 프로세서, 재구성 제어 장치 및 방법, 그리고, 스레드 모델링 방법
US8789065B2 (en) 2012-06-08 2014-07-22 Throughputer, Inc. System and method for input data load adaptive parallel processing
US20130117168A1 (en) 2011-11-04 2013-05-09 Mark Henrik Sandstrom Maximizing Throughput of Multi-user Parallel Data Processing Systems
US9158592B2 (en) * 2011-05-02 2015-10-13 Green Hills Software, Inc. System and method for time variant scheduling of affinity groups comprising processor core and address spaces on a synchronized multicore processor
US10089277B2 (en) 2011-06-24 2018-10-02 Robert Keith Mykland Configurable circuit array
US9158544B2 (en) * 2011-06-24 2015-10-13 Robert Keith Mykland System and method for performing a branch object conversion to program configurable logic circuitry
US8745626B1 (en) * 2012-12-17 2014-06-03 Throughputer, Inc. Scheduling application instances to configurable processing cores based on application requirements and resource specification
US9448847B2 (en) 2011-07-15 2016-09-20 Throughputer, Inc. Concurrent program execution optimization
US9633160B2 (en) 2012-06-11 2017-04-25 Robert Keith Mykland Method of placement and routing in a reconfiguration of a dynamically reconfigurable processor
US9304770B2 (en) * 2011-11-21 2016-04-05 Robert Keith Mykland Method and system adapted for converting software constructs into resources for implementation by a dynamically reconfigurable processor
KR101893982B1 (ko) * 2012-04-09 2018-10-05 삼성전자 주식회사 분산 처리 시스템, 분산 처리 시스템의 스케줄러 노드 및 스케줄 방법, 및 이를 위한 프로그램 생성 장치
WO2016130114A1 (en) 2015-02-10 2016-08-18 Hewlett Packard Enterprise Development Lp Chipset reconfiguration based on device detection
CN108363615B (zh) * 2017-09-18 2019-05-14 清华大学 用于可重构处理系统的任务分配方法和系统

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR960038592A (ko) * 1995-04-17 1996-11-21 켄지 히루마 스캐러블, 패러렐, 동적 재구성가능 계산시스템 및 방법
KR970076254A (ko) * 1996-05-28 1997-12-12 클라크 3세 존 엠 신호 프로세싱 응용에 사용하는 재구성가능한 컴퓨터 구조
KR20040024384A (ko) * 2002-09-14 2004-03-20 엘지전자 주식회사 에프피지에이 재구성 장치
KR20040069257A (ko) * 2001-09-14 2004-08-05 인텔 코포레이션 다수의 하드웨어 구성들을 가지는 재구성가능한 하드웨어아키텍처의 스케줄링 방법
US6836842B1 (en) * 2001-04-24 2004-12-28 Xilinx, Inc. Method of partial reconfiguration of a PLD in which only updated portions of configuration data are selected for reconfiguring the PLD
US6871341B1 (en) * 2000-03-24 2005-03-22 Intel Corporation Adaptive scheduling of function cells in dynamic reconfigurable logic
US6907595B2 (en) * 2002-12-13 2005-06-14 Xilinx, Inc. Partial reconfiguration of a programmable logic device using an on-chip processor
KR20060005292A (ko) * 2004-07-12 2006-01-17 후지쯔 가부시끼가이샤 재구성 가능한 연산 장치

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4638427A (en) * 1984-04-16 1987-01-20 International Business Machines Corporation Performance evaluation for an asymmetric multiprocessor system
US5418953A (en) 1993-04-12 1995-05-23 Loral/Rohm Mil-Spec Corp. Method for automated deployment of a software program onto a multi-processor architecture
US5966534A (en) 1997-06-27 1999-10-12 Cooke; Laurence H. Method for compiling high level programming languages into an integrated processor with reconfigurable logic
US20030097508A1 (en) * 2001-11-16 2003-05-22 Aneshansley Nicholas E. Dynamically configuring processor resources
US7577822B2 (en) * 2001-12-14 2009-08-18 Pact Xpp Technologies Ag Parallel task operation in processor and reconfigurable coprocessor configured based on information in link list including termination information for synchronization
GB0304628D0 (en) * 2003-02-28 2003-04-02 Imec Inter Uni Micro Electr Method for hardware-software multitasking on a reconfigurable computing platform
US7996839B2 (en) * 2003-07-16 2011-08-09 Hewlett-Packard Development Company, L.P. Heterogeneous processor core systems for improved throughput
WO2005073866A2 (en) * 2004-01-21 2005-08-11 Charles Stark Draper Laboratory, Inc. Systems and methods for reconfigurable computing
US7167971B2 (en) * 2004-06-30 2007-01-23 International Business Machines Corporation System and method for adaptive run-time reconfiguration for a reconfigurable instruction set co-processor architecture
US7409570B2 (en) * 2005-05-10 2008-08-05 Sony Computer Entertainment Inc. Multiprocessor system for decrypting and resuming execution of an executing program after transferring the program code between two processors via a shared main memory upon occurrence of predetermined condition
US7539852B2 (en) * 2005-08-29 2009-05-26 Searete, Llc Processor resource management
US7412353B2 (en) * 2005-09-28 2008-08-12 Intel Corporation Reliable computing with a many-core processor
JP2007133723A (ja) * 2005-11-11 2007-05-31 Hitachi Ltd マルチプロセッサ、タスクスケジューリング方法、及びコンパイラ
JP2007141132A (ja) * 2005-11-22 2007-06-07 Renesas Technology Corp 動的再構成可能プロセッサおよびそれを制御するプロセッサ制御プログラム
JP4936517B2 (ja) * 2006-06-06 2012-05-23 学校法人早稲田大学 ヘテロジニアス・マルチプロセッサシステムの制御方法及びマルチグレイン並列化コンパイラ
US20080102903A1 (en) * 2006-10-30 2008-05-01 Motorola, Inc. Emergency plan battery energy reservation
US20080172398A1 (en) * 2007-01-12 2008-07-17 Borkenhagen John M Selection of Processors for Job Scheduling Using Measured Power Consumption Ratings

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR960038592A (ko) * 1995-04-17 1996-11-21 켄지 히루마 스캐러블, 패러렐, 동적 재구성가능 계산시스템 및 방법
KR970076254A (ko) * 1996-05-28 1997-12-12 클라크 3세 존 엠 신호 프로세싱 응용에 사용하는 재구성가능한 컴퓨터 구조
US6871341B1 (en) * 2000-03-24 2005-03-22 Intel Corporation Adaptive scheduling of function cells in dynamic reconfigurable logic
US6836842B1 (en) * 2001-04-24 2004-12-28 Xilinx, Inc. Method of partial reconfiguration of a PLD in which only updated portions of configuration data are selected for reconfiguring the PLD
KR20040069257A (ko) * 2001-09-14 2004-08-05 인텔 코포레이션 다수의 하드웨어 구성들을 가지는 재구성가능한 하드웨어아키텍처의 스케줄링 방법
KR20040024384A (ko) * 2002-09-14 2004-03-20 엘지전자 주식회사 에프피지에이 재구성 장치
US6907595B2 (en) * 2002-12-13 2005-06-14 Xilinx, Inc. Partial reconfiguration of a programmable logic device using an on-chip processor
KR20060005292A (ko) * 2004-07-12 2006-01-17 후지쯔 가부시끼가이샤 재구성 가능한 연산 장치

Also Published As

Publication number Publication date
US8677362B2 (en) 2014-03-18
KR20080072457A (ko) 2008-08-06
US20080189703A1 (en) 2008-08-07

Similar Documents

Publication Publication Date Title
KR100893527B1 (ko) 재구성 가능 멀티 프로세서 시스템에서의 매핑 및 스케줄링방법
US10664942B2 (en) Reconfigurable virtual graphics and compute processor pipeline
US20230185607A1 (en) Hardware accelerated dynamic work creation on a graphics processing unit
Jang et al. Energy reduction in consolidated servers through memory-aware virtual machine scheduling
Noguera et al. Multitasking on reconfigurable architectures: microarchitecture support and dynamic scheduling
JP5366552B2 (ja) 集中特化したマルチタスク及びマルチフロー処理をリアルタイム実行する手法及びシステム
US9142005B2 (en) Efficient placement of texture barrier instructions
US20070150895A1 (en) Methods and apparatus for multi-core processing with dedicated thread management
WO2000031652A9 (en) Reconfigurable programmable logic device computer system
Iturbe et al. Runtime Scheduling, Allocation, and Execution of Real‐Time Hardware Tasks onto Xilinx FPGAs Subject to Fault Occurrence
EP4050481A1 (en) Allocation of resources to tasks
Quan et al. A hierarchical run-time adaptive resource allocation framework for large-scale MPSoC systems
Resano et al. Specific scheduling support to minimize the reconfiguration overhead of dynamically reconfigurable hardware
US20050066305A1 (en) Method and machine for efficient simulation of digital hardware within a software development environment
US20080134187A1 (en) Hardware scheduled smp architectures
Soliman et al. Segment streaming for the three-phase execution model: Design and implementation
Zhou et al. An operating system framework for reconfigurable systems
Dauphin et al. Odyn: Deadlock prevention and hybrid scheduling algorithm for real-time dataflow applications
Zaykov et al. Reconfigurable multithreading architectures: A survey
Zhou et al. Shum-ucos: A rtos using multi-task model to reduce migration cost between sw/hw tasks
Chevobbe et al. Reducing reconfiguration overheads in heterogeneous multicore RSoCs with predictive configuration management
Arandi et al. Data-driven thread execution on heterogeneous processors
Burgio et al. Real-time heterogeneous platforms
De Sensi et al. State-aware concurrency throttling
Popp et al. Automatic control flow generation for OpenVX graphs

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
J201 Request for trial against refusal decision
AMND Amendment
E902 Notification of reason for refusal
B701 Decision to grant
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20120315

Year of fee payment: 4

LAPS Lapse due to unpaid annual fee