KR20130089524A - 재구성 가능 프로세서 및 그 프로세서에서의 멀티 쓰레딩 지원 방법 - Google Patents

재구성 가능 프로세서 및 그 프로세서에서의 멀티 쓰레딩 지원 방법 Download PDF

Info

Publication number
KR20130089524A
KR20130089524A KR1020120010954A KR20120010954A KR20130089524A KR 20130089524 A KR20130089524 A KR 20130089524A KR 1020120010954 A KR1020120010954 A KR 1020120010954A KR 20120010954 A KR20120010954 A KR 20120010954A KR 20130089524 A KR20130089524 A KR 20130089524A
Authority
KR
South Korea
Prior art keywords
processor
processors
reconfigurable
cga
vliw
Prior art date
Application number
KR1020120010954A
Other languages
English (en)
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 KR1020120010954A priority Critical patent/KR20130089524A/ko
Publication of KR20130089524A publication Critical patent/KR20130089524A/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/177Initialisation or configuration control
    • 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/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
    • 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5066Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs
    • 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/54Interprogram communication
    • G06F9/542Event management; Broadcasting; Multicasting; Notifications

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Multimedia (AREA)
  • Advance Control (AREA)

Abstract

멀티 쓰레딩이 구현된 재구성 가능 프로세서 및 재구성 가능 프로세서에서 멀티 쓰레딩 지원 방법이 개시된다. 일 양상에 따른 재구성 가능 프로세서는, 재구성 가능 프로세서를 구성하는 기능 유닛(FU)의 일부를 사용하여 제어 명령 처리를 수행하는 제1프로세서, 재구성 가능 프로세서를 구성하는 기능 유닛(FU)의 일부를 사용하여 데이터의 가공 또는 처리를 수행하며, 제1프로세서들 다수가 서로 공유하는 제2프로세서, 및 제1프로세서들이 제2프로세서를 지연(latency) 및 충돌없이 상호 점유하도록 관리하는 제어부를 포함할 수 있다. 이에 따라 재구성 가능 프로세서에서 지연(latency)이 없는 동시 멀티 쓰레딩을 지원할 수 있다.

Description

재구성 가능 프로세서 및 그 프로세서에서의 멀티 쓰레딩 지원 방법 {Reconfigurable processsor and method of supporting multithreading therein}
멀티 쓰레딩이 구현된 재구성 가능 프로세서의 구조 및 멀티 쓰레딩 지원을 위한 신호 처리 기술과 관련된다.
재구성 가능 프로세서(Reconfigurable Processor, RP)는 사용자에 의해 프로그램이 가능한 프로세서의 한 종류이다. 즉 사용자가 원하는 응용 분야에 맞추어, 그 응용 프로그램의 실행에 필요한 동작 파라미터와 처리할 데이터의 크기 및 계산의 필요 여부를 파악하여, 계산 자원(computing resource)을 분배하여 적용할 수 있는 프로세서이다.
일반적인 재구성 가능 프로세서(RP)는 1개 또는 그 이상의 VLIW(Very Long Instruction Word) 프로세서와, NxM의 연산 유닛(Functional Unit, FU)을 갖는 CGA(Coarse Grained Array) 프로세서가 결합된 구조를 갖는다. 이러한 구조하에서 집중적인 데이터 처리 및 가공과 관련된 연산은 주로 CGA 프로세서에서 담당하고, 명령어의 처리와 제어와 관련된 연산은 주로 VLIW 프로세서에서 담당하도록 한다. 이때 VLIW 프로세서에서의 동작과 CGA 프로세서에서의 동작은 동시에 수행되지 않고, VLIW 프로세서에서 처리한 결과는 CGA 프로세서에 전달되고, CGA 프로세서에서는 그 결과를 전달받아 데이터 집중 처리를 수행한 후 그 결과값을 다시 VLIW에 전달한다.
한편, 멀티 쓰레딩(Multithreading)이란 하나의 프로세서가 여러가지 일(쓰레드)을 처리하는 것을 말하며, 그중 동시 멀티 쓰레딩(Simultaneous MultiThreading, SMT)은 하나 이상의 쓰레드로부터의 명령어들을 특정 시간대에 제공된 파이프라인 단계에서 실행할 수 있다.
하지만 이를 위해서는 다수의 쓰레드를 지원하기 위한 전용의 하드웨어를 갖추고 있어야 하다. 예를 들어 동시 지원하고자 하는 쓰레드의 수에 맞추어 다수의 코어와 독립적인 연산유닛 및 레지스터 셋을 구비하여야 하므로 프로세서의 구조가 복잡하고 비용이 높아질 수 있다.
멀티 쓰레딩을 지원하는 재구성 가능 프로세서 및 이 재구성 가능 프로세서에서의 멀티 쓰레딩 지원 방법이 제공된다.
본 발명의 일 양상에 따른 재구성 가능 프로세서는, 재구성 가능 프로세서를 구성하는 기능 유닛(FU)의 일부를 사용하여 제어 명령 처리를 수행하는 제1프로세서, 재구성 가능 프로세서를 구성하는 기능 유닛(FU)의 일부를 사용하여 데이터의 가공 또는 처리를 수행하며, 제1프로세서들 다수가 서로 공유하는 제2프로세서, 및 제1프로세서들이 제2프로세서를 지연(latency) 및 충돌없이 상호 점유하도록 관리하는 제어부를 포함할 수 있다.
여기서, 제어부는 제1프로세서들 중 어느 제1프로세서로부터 제2프로세서의 점유 요청을 수신하면, 제2프로세서가 상기 점유 요청한 제1프로세서가 아닌 타 제1프로세서에 의해 현재 점유되고 있는지 검사한 후, 타 제1프로세서가 점유하고 있는 경우 대기하고 있다가, 점유 해제, 캐쉬 미스 또는 모드 전환 신호가 발생하면, 지연(latency)없이 점유 요청한 제1프로세서에게 점유를 허용하도록 제어할 수 있다.
또한 제2프로세서의 수는 제1프로세서의 수보다 적을 수 있다.
그리고, 제1프로세서는 VLIW(Very Long Instruction Word) 프로세서이며, 제2프로세서는 CGA(Coarse Grained Array) 프로세서가 될 수 있다.
그리고 본 발명의 다른 양상에 따른 재구성 가능 프로세서에서 멀티 쓰레딩 지원 방법은, 재구성 가능 프로세서를 구성하는 기능 유닛(FU)의 일부를 사용하여 제어 명령 처리를 수행하는 어느 제1프로세서로부터, 재구성 가능 프로세서를 구성하는 기능 유닛(FU)의 일부를 사용하여 데이터의 가공 또는 처리를 수행하며, 제1프로세서들 다수가 서로 공유하는 제2프로세서의 점유 요청을 수신하는 단계, 제2프로세서가 상기 점유 요청한 제1프로세서가 아닌 타 제1프로세서에 의해 현재 점유되고 있는지 검사하는 단계, 및 타 제1프로세서가 점유하고 있는 경우 대기하고 있다가, 점유 해제, 캐쉬 미스 또는 모드 전환 신호가 발생하면, 지연(latency)없이 상기 점유 요청한 제1프로세서에게 점유를 허용하는 단계를 포함할 수 있다.
지연(latency)이 없는 동시 멀티 쓰레딩을 지원할 수 있도록 재구성 가능 프로세서를 구성할 수 있으며, 프로세서 내부의 상당 영역을 차지하는 연산 유닛(FU)을 공유함으로써 전체 면적을 줄이면서 효율적인 멀티 쓰레딩을 지원하는 재구성 가능 프로세서를 구현할 수 있다.
또한 멀티 쓰레딩을 지원하기 위한 별도의 저장장치를 사용함으로써, 쓰레드 스위치에 따른 오버헤드를 방지할 수 있다.
그리고 이와 같은 구조의 재구성 가능 프로세서를 오디오 처리 장치, 비디오 처리 장치 및 통신 처리 장치 등에 다양하게 사용할 수 있으며, 예를 들어 3D 디스플레이에 응용하면, 텍스쳐 캐쉬(texture cache)의 미스(miss)에 의한 페널티를 줄이거나 성능을 향상시킬 수 있다.
도 1은 본 발명의 일실시예에 따른 멀티 쓰레딩 지원을 위한 재구성 가능 프로세서의 구조도이다.
도 2는 본 발명의 일실시예에 따라, 2개의 VLIW 프로세서가 1개의 CGA 프로세서를 공유하는 경우의 재구성 가능 프로세서의 구조도이다.
도 3은 도 2의 예에서 제어부가 CGA 프로세서의 점유를 제어하기 위한 신호 처리를 설명하기 위한 도면이다.
도 4는 본 발명의 일실시예에 따라, N개의 동시 멀티 쓰레딩을 지원하기 위한 재구성 가능 프로세서의 구조도이다.
도 5는 CGA 프로세서의 공유 제어를 위한 제어부의 입출력 신호를 도시한 도면이다.
도 6은 CGA 프로세서의 점유를 제어하여 멀티 쓰레딩을 지원하는 방법의 플로우차트이다.
이하, 첨부된 도면을 참조하여 본 발명의 실시를 위한 구체적인 예를 상세히 설명한다.
도 1은 본 발명의 일실시예에 따른 멀티 쓰레딩 지원을 위한 재구성 가능 프로세서의 구조도이다.
재구성 가능 프로세서는 N개의 동시 멀티 쓰레딩을 지원하기 위해 N개의 VLIW 프로세서(110), M개의 CGA 프로세서(120) 및 제어부(130)를 포함한다. 여기서 N은 M보다 크다. VLIW 프로세서(110)는 명령어의 처리와 제어와 관련된 연산을 수행하며, CGA 프로세서(120)는 집중적인 데이터 처리 및 가공과 관련된 연산을 수행한다.
예를 들어 프로그램내에서 판단 명령, 점프 명령, 이동 명령과 같은 제어와 관련된 연산은 VLIW 프로세서(110)에서 수행하며, 'for loop' 의 실행 등과 같은 데이터 처리 및 가공에 관련된 연산은 CGA 프로세서에서 수행한다. 도 1의 예에서는 제어와 관련된 프로세서를 VLIW 프로세서로, 데이터의 처리와 관련된 프로세서를 CGA 프로세서를 예를 들어 설명하였으나, VLIW 프로세서나 CGA 프로세서에 한정되는 것은 아니다.
한편, N이 M 보다 크기 때문에 하나의 CGA 프로세서를 다수의 VLIW 프로세서가 공유할 수 있다는 것을 의미한다. 즉, N개의 동시 멀티 쓰레딩을 지원하기 위해 N개의 CGA 프로세서를 사용하지 않고, 그 보다 작은 수인 M개의 CGA 프로세서를 사용할 수 있다. 다시 말하면, M개의 CGA 프로세서를 N개의 VLIW 프로세서가 공유하는 구조를 갖는다.
그러나 CGA 프로세서가 동작하면서 만들어내는 임시적인 데이터들을 저장하는 로컬 레지스터 파일들은 N개가 필요하다. 또한 연산 유닛(Function Unit, FU)들간의 연결을 위해 임시 레지스터들이 존재하고, 연산 유닛(FU) 내의 멀티 레이턴시(latency)를 위한 레지스터들이 존재할 수 있는데, 이를 위해 VLIW 프로세서의 갯수만큼, 즉 지원하고자 하는 쓰레드의 갯수인 N 개의 임시 레지스터 셋들이 필요하다.
제어부(130)는 VLIW 프로세서(110)들의 CGA 프로세서(120)의 점유를 관리한다. 즉, 어느 하나의 CGA 프로세서는 특정 시점에 어느 하나의 VLIW 프로세서가 점유할 수 밖에 없으므로, 다수의 VLIW 프로세서(110) 들 중에서 어느 VLIW 프로세서가 특정 시점에 어느 CGA 프로세서를 점유하도록 하는가를 제어한다.
도 2는 본 발명의 일실시예에 따라, 2개의 VLIW 프로세서가 1개의 CGA 프로세서를 공유하는 경우의 재구성 가능 프로세서의 구조도이다.
제1VLIW 프로세서(210)와 CGA 프로세서(230)에서 제1쓰레드가 실행되며, 제2VLIW 프로세서(220)와 CGA 프로세서(230)에서 제2쓰레드가 실행될 수 있다. 제1VLIW 프로세서(210)는 글로벌 레지스터 파일(212)과 다수의 기능 유닛(FU0, FU1, FU2, FU3)(214)을 포함한다. 제2VLIW 프로세서(220)도 마찬가지로 글로벌 레지스터 파일(222)와 다수의 기능 유닛(FU16, FU17, FU18, FU19)(224)을 포함한다.
한편, CGA 프로세서(230)는 제1VLIW 프로세서(210)와 제2VLIW 프로세서(220)가 서로 공유하며, 다수의 기능 유닛(FU4 내지 FU15)을 포함한다. 그리고 CGA 프로세서(230)의 각각의 기능 유닛은, 지원 쓰레드의 갯수만큼인 2개의 로컬 레지스터 파일(LR-T1, LR-T2)을 포함한다.
제어부(240)는 제1쓰레드 또는 제2쓰레드의 실행을 위한 제1VLIW 프로세서(210) 및 제2VLIW 프로세서(220)가 어느 시점에 CGA 프로세서(230)를 점유하도록 할 것인가를 제어한다. 즉, CGA 프로세서(230)에 대한 점유권을 제1VLIW 프로세서(210) 또는 제2VLIW 프로세서(220)가 서로 공유하면서 중복되지 않도록 가져갈 수 있도록 제어한다.
도 3은 도 2의 예에서 제어부가 CGA 프로세서의 점유를 제어하기 위한 신호 처리를 설명하기 위한 도면이다.
제어부(240)는 CGA 프로세서(230)에 대한 점유권을 어느 VLIW 프로세서에게 줄 것인지를 결정하기 위해 여러가지 제어신호를 입력받는다. 제1쓰레드에 대한 제어신호로 제1쓰레드 제어부(310)로부터 VLIW/CGA 모드 신호를 수신하며, 제1쓰레드를 위한 캐쉬(320)로부터 캐스 스톨 신호(cache stall signal)를 수신하고, 인터럽스 소스(330)로부터 모드 스위치 인터럽트 신호(mode switch interrupt signal)를 수신한다.
마찬가지로, 제2쓰레드에 대한 제어신호로 제2쓰레드 제어부(340)로부터 VLIW/CGA 모드 신호를 수신하며, 제2쓰레드를 위한 캐쉬(350)로부터 캐스 스톨 신호(cache stall signal)를 수신하고, 인터럽스 소스(360)로부터 모드 스위치 인터럽트 신호(mode switch interrupt signal)를 수신한다.
그리고 나서 제어부(240)는 제1쓰레드에 대한 CGA 그랜트 신호(CGA grant signal)와 제2쓰레드에 대한 CGA 그랜트 신호를 생성하여 출력한다. 이러한 제1쓰레드에 대한 CGA 그랜트 신호(CGA grant signal)와 제2쓰레드에 대한 CGA 그랜트 신호는 쓰레드의 실행 조건 등에 따라 적응적으로 제어된다.
도 4는 본 발명의 일실시예에 따라, N개의 동시 멀티 쓰레딩을 지원하기 위한 재구성 가능 프로세서의 구조도이다.
전술한 실시예에서 2개의 동시 멀티 쓰레딩을 지원하는 예를 확장하여, N개의 동시 멀티 쓰레딩을 지원하기 위해서는 N개의 VLIW 프로세서와 M개의 CGA 프로세서가 필요하다. 또한 이들 N개의 VLIW 프로세서가 M개의 CGA 프로세서를 공유하는 것을 제어하기 위한 제어부가 포함된다. 전술한 바와 같이 VLIW 프로세서는 글로벌 레지스터 파일 및 다수의 기능 유닛(FU)을 포함할 수 있다.
또한, M 개의 CGA 프로세서는 각각 다수의 기능 유닛(FU)을 포함하며, 각각의 기능 유닛(FU)은 동시 지원 멀티 쓰레드의 수인 N개의 로컬 레지스터 파일을 포함한다.
제어부는 N개의 쓰레드 제어신호를 생성하고 관리한다. 다수의 CGA 프로세서를 다수의 VLIW 프로세서가 점유하는 것을 제어하는 상세한 예에 대해서는 도 5 및 도 6을 참조하여 후술한다.
도 5는 CGA 프로세서의 공유 제어를 위한 제어부의 입출력 신호를 도시한 도면이다.
2개의 멀티 쓰레딩을 지원하는 것을 설명하기 위한 도 3의 예에서와 같이, 각 쓰레드별로 VLIW/CGA 모드 신호, 캐쉬 스톨 신호(cache stall signal) 및 모드 스위치 인터럽트 신호(mode switch interrupt signal)를 수신한다. 그리고 각 쓰레드별로 CGA 그랜트 신호(CGA grant signal)를 생성하여 출력한다.
도 6은 CGA 프로세서의 점유를 제어하여 멀티 쓰레딩을 지원하는 방법의 플로우차트이다.
멀티 쓰레딩 지원을 위해 먼저 VLIW 프로세서로부터 CGA 프로세서의 리소스 사용 요청을 수신한다(610). 그리고 CGA 프로세서의 리소스 사용 요청을 한 VLIW 프로세서와 다른 타 VLIW 프로세서가 이미 CGA 프로세서의 리소스를 점유하고 있는지의 여부를 확인한다(620).
만일 타 VLIW 프로세서가 CGA 프로세서의 리소스를 점유하고 있지 않으면 CGA 프로세서 리소스 사용을 요청한 VLIW 프로세서에게 CGA grant 신호를 생성하여 전송한다(660).
그러나 만일 타 VLIW 프로세서가 CGA 프로세서의 리소스를 점유하고 있으면, CGA 사용 요청 큐에서 대기하고(630), 캐쉬 미스 또는 모드 전환 신호가 발생하는지의 여부를 체크한다(640). 여기서 캐쉬 미스 또는 모드 전환 신호는 현재 CGA 프로세서의 리소스를 점유하고 있는 VLIW 프로세서가 잠시 CGA 프로세서를 사용하지 않는 경우를 말한다.
캐쉬 미스 또는 모드 전환 신호가 발생하지 않으면 계속해서 CGA 사용 요청 큐에서 대기하고 있다가(630), 이러한 신호가 발생하면 CGA 프로세서 리소스의 점유 우선 순위를 결정한다(650). 즉, 다수의 VLIW 프로세서가 CGA 프로세서의 리소스 사용을 요청하면 그중에서 어느 하나의 VLIW 프로세서에게 CGA 프로세서의 리소스 사용을 허용해야 하므로 그 우선 순위를 결정하는 것이다.
이렇게 점유 우선 순위를 결정하면, 그 순위에 따라 CGA 프로세서 리소스 사용을 요청한 VLIW 프로세서에게 CGA grant 신호를 생성하여 전송한다(660).
한편, 본 발명의 실시 예들은 컴퓨터로 읽을 수 있는 기록 매체에 컴퓨터가 읽을 수 있는 코드로 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록 매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록 장치를 포함한다.
컴퓨터가 읽을 수 있는 기록 매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피디스크, 광 데이터 저장장치 등이 있으며, 또한 캐리어 웨이브(예를 들어 인터넷을 통한 전송)의 형태로 구현하는 것을 포함한다. 또한, 컴퓨터가 읽을 수 있는 기록 매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산 방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다. 그리고 본 발명을 구현하기 위한 기능적인(functional) 프로그램, 코드 및 코드 세그먼트들은 본 발명이 속하는 기술 분야의 프로그래머들에 의하여 용이하게 추론될 수 있다.
나아가 전술한 실시 예들은 본 발명을 예시적으로 설명하기 위한 것으로 본 발명의 권리범위가 특정 실시 예에 한정되지 아니할 것이다.

Claims (11)

  1. 재구성 가능 프로세서에 있어서,
    상기 재구성 가능 프로세서를 구성하는 기능 유닛(FU)의 일부를 사용하여 제어 명령 처리를 수행하는 제1프로세서;
    상기 재구성 가능 프로세서를 구성하는 기능 유닛(FU)의 일부를 사용하여 데이터의 가공 또는 처리를 수행하며, 상기 제1프로세서들 다수가 서로 공유하는 제2프로세서; 및
    상기 제1프로세서들이 상기 제2프로세서를 지연(latency) 및 충돌없이 상호 점유하도록 관리하는 제어부를 포함하는 재구성 가능 프로세서.
  2. 제1항에 있어서, 상기 제어부는
    상기 제1프로세서들 중 어느 제1프로세서로부터 상기 제2프로세서의 점유 요청을 수신하면, 상기 제2프로세서가 상기 점유 요청한 제1프로세서가 아닌 타 제1프로세서에 의해 현재 점유되고 있는지 검사한 후, 상기 타 제1프로세서가 점유하고 있는 경우 대기하고 있다가, 점유 해제, 캐쉬 미스 또는 모드 전환 신호가 발생하면, 지연(latency)없이 상기 점유 요청한 제1프로세서에게 점유를 허용하도록 제어하는 재구성 가능 프로세서.
  3. 제1항에 있어서,
    상기 제2프로세서의 수는 상기 제1프로세서의 수보다 적은 재구성 가능 프로세서.
  4. 제1항에 있어서,
    상기 제1프로세서는 VLIW(Very Long Instruction Word) 프로세서이며, 상기 제2프로세서는 CGA(Coarse Grained Array) 프로세서인 재구성 가능 프로세서.
  5. 제1항에 있어서,
    상기 제1프로세서는 글로벌 레지스터 파일을 더 포함하는 재구성 가능 프로세서.
  6. 제1항에 있어서,
    상기 제2프로세서는 각각의 연산 유닛마다 상기 제1프로세서의 수만큼의 로컬 레지스터 파일을 포함하는 재구성 가능 프로세서.
  7. 재구성 가능 프로세서에서 멀티 쓰레딩 지원 방법에 있어서,
    상기 재구성 가능 프로세서를 구성하는 기능 유닛(FU)의 일부를 사용하여 제어 명령 처리를 수행하는 어느 제1프로세서로부터, 상기 재구성 가능 프로세서를 구성하는 기능 유닛(FU)의 일부를 사용하여 데이터의 가공 또는 처리를 수행하며, 상기 제1프로세서들 다수가 서로 공유하는 제2프로세서의 점유 요청을 수신하는 단계;
    상기 제2프로세서가 상기 점유 요청한 제1프로세서가 아닌 타 제1프로세서에 의해 현재 점유되고 있는지 검사하는 단계; 및
    상기 타 제1프로세서가 점유하고 있는 경우 대기하고 있다가, 점유 해제, 캐쉬 미스 또는 모드 전환 신호가 발생하면, 지연(latency)없이 상기 점유 요청한 제1프로세서에게 점유를 허용하는 단계를 포함하는 재구성 가능 프로세서에서 멀티 쓰레딩 지원 방법.
  8. 제7항에 있어서,
    상기 제2프로세서의 수는 상기 제1프로세서의 수보다 적은 재구성 가능 프로세서에서 멀티 쓰레딩 지원 방법.
  9. 제7항에 있어서,
    상기 제1프로세서는 VLIW(Very Long Instruction Word) 프로세서이며, 상기 제2프로세서는 CGA(Coarse Grained Array) 프로세서인 재구성 가능 프로세서에서 멀티 쓰레딩 지원 방법.
  10. 제7항에 있어서,
    상기 제1프로세서는 글로벌 레지스터 파일을 더 포함하는 재구성 가능 프로세서에서 멀티 쓰레딩 지원 방법.
  11. 제7항에 있어서,
    상기 제2프로세서는 각각의 연산 유닛마다 상기 제1프로세서의 수만큼의 로컬 레지스터 파일을 포함하는 재구성 가능 프로세서에서 멀티 쓰레딩 지원 방법.

KR1020120010954A 2012-02-02 2012-02-02 재구성 가능 프로세서 및 그 프로세서에서의 멀티 쓰레딩 지원 방법 KR20130089524A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020120010954A KR20130089524A (ko) 2012-02-02 2012-02-02 재구성 가능 프로세서 및 그 프로세서에서의 멀티 쓰레딩 지원 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020120010954A KR20130089524A (ko) 2012-02-02 2012-02-02 재구성 가능 프로세서 및 그 프로세서에서의 멀티 쓰레딩 지원 방법

Publications (1)

Publication Number Publication Date
KR20130089524A true KR20130089524A (ko) 2013-08-12

Family

ID=49215406

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020120010954A KR20130089524A (ko) 2012-02-02 2012-02-02 재구성 가능 프로세서 및 그 프로세서에서의 멀티 쓰레딩 지원 방법

Country Status (1)

Country Link
KR (1) KR20130089524A (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016064158A1 (ko) * 2014-10-21 2016-04-28 삼성전자 주식회사 재구성 가능 프로세서 및 그 동작 방법

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016064158A1 (ko) * 2014-10-21 2016-04-28 삼성전자 주식회사 재구성 가능 프로세서 및 그 동작 방법
US10396797B2 (en) 2014-10-21 2019-08-27 Samsung Electronics Co., Ltd. Reconfigurable processor and operation method therefor

Similar Documents

Publication Publication Date Title
Wu et al. Flep: Enabling flexible and efficient preemption on gpus
US20120246451A1 (en) Processing long-latency instructions in a pipelined processor
US7941643B2 (en) Multi-thread processor with multiple program counters
US20070150895A1 (en) Methods and apparatus for multi-core processing with dedicated thread management
US9400685B1 (en) Dividing, scheduling, and parallel processing compiled sub-tasks on an asynchronous multi-core processor
US9310875B2 (en) Instruction that specifies an application thread performance state
JP5666473B2 (ja) マルチスレッド式データ処理システム
Elliott et al. Robust real-time multiprocessor interrupt handling motivated by GPUs
JP2014516192A5 (ko)
KR20120070303A (ko) 실시간 멀티코어 시스템의 동기화 스케쥴링 장치 및 방법
JP5861354B2 (ja) 演算処理装置及び演算処理装置の制御方法
US20130152096A1 (en) Apparatus and method for dynamically controlling preemption section in operating system
US8640109B2 (en) Method for managing hardware resources within a simultaneous multi-threaded processing system
KR20140030260A (ko) 복수의 엔진에 의해 명령어 시퀀스들의 실행을 지원하기 위한 자원들 및 상호접속 구조들의 비집중 할당
KR101869939B1 (ko) 멀티-쓰레딩을 사용하는 그래픽 처리를 위한 방법 및 장치
KR101603752B1 (ko) 멀티 모드 지원 프로세서 및 그 프로세서에서 멀티 모드를 지원하는 방법
US9760969B2 (en) Graphic processing system and method thereof
US20060212840A1 (en) Method and system for efficient use of secondary threads in a multiple execution path processor
KR20140004654A (ko) 처리 디바이스의 동기 동작을 위한 방법 및 시스템
CN112789593A (zh) 一种基于多线程的指令处理方法及装置
JP2011170619A (ja) マルチスレッド処理装置
KR20130089524A (ko) 재구성 가능 프로세서 및 그 프로세서에서의 멀티 쓰레딩 지원 방법
KR20140030261A (ko) 복수의 엔진에 의해 명령어 시퀀스들의 실행을 지원하기 위한 상호접속 구조
KR101420592B1 (ko) 컴퓨터 시스템
JP2020091751A (ja) 演算処理装置および演算処理装置の制御方法

Legal Events

Date Code Title Description
WITN Withdrawal due to no request for examination