Abstract:
다중 쓰레드 실행 프로세서 및 그의 동작 방법이 개시된다. 일 실시예에 따른 다중 쓰레드 실행 프로세서는 동일한 프로그램 코드를 실행하기 위한 복수의 쓰레드들을 실행하기 위한 프로세싱 유닛을 구비한 다중 쓰레드 실행 프로세서이다. 프로세싱 유닛은 복수의 쓰레드들 중에서 어느 하나의 쓰레드에 대한 실행 중에 이슈된 명령어가 통과 명령어인 경우에 쓰레드 교환을 하여 다른 쓰레드를 실행하는 방식으로 복수의 쓰레드들을 순차적으로 실행한다. 이 때, 프로세싱 유닛은 프로그램 코드에 명시적으로 표시된 쓰레드 교환 정보에 기초하여 이슈된 명령어가 통과 명령어인지를 판단할 수 있다.
Abstract:
제1 타입 명령어를 처리하는 제1 기능 유닛 및 제1 기능 유닛과 입출력 포트가 연결된 제1 레지스터를 포함하는 제1 클러스터와, 제2 타입 명령어를 처리하는 제2 기능 유닛 및 제2 기능 유닛과 입출력 포트가 연결된 제2 레지스터를 포함하는 제2 클러스터를 포함한 프로세서를 제공함으로써, 프로세서를 다양한 분야에서 효율적으로 사용할 수 있도록 한다.
Abstract:
PURPOSE: Device and method executing a command outside of a loop in a prologue and an epilogue of a loop in which a software pipeline is applied are provided to maximize performance of a code by parallelly executing commands in a forward and backward basic block of a software pipelined loop in the prologue or epilogue. CONSTITUTION: A dependence graph generation unit(111) generates a dependence graph between a command of a loop and external commands. A command guarding unit(112) guards the substitute command using a different predicate operand in every repetition. A pipelining unit(113) calculates a software pipelining of the substitute command within a given start range based on the dependence graph and configures a prologue or an epilogue substitute. A withdrawal control unit(130) withdraws a command configuration from a loop location and a substitute location in a configuration memory, compares and determines a command to be finally executed. [Reference numerals] (111) Dependence graph generation unit; (112) Command guarding unit; (113) Pipelining unit; (120) Configuration memory; (131) Execution state determining unit; (132) Configuration withdrawing unit; (133) Execution command determining unit; (134) Configuration generation unit