KR101191530B1 - Multi-core processor system having plurality of heterogeneous core and Method for controlling the same - Google Patents

Multi-core processor system having plurality of heterogeneous core and Method for controlling the same Download PDF

Info

Publication number
KR101191530B1
KR101191530B1 KR1020100052259A KR20100052259A KR101191530B1 KR 101191530 B1 KR101191530 B1 KR 101191530B1 KR 1020100052259 A KR1020100052259 A KR 1020100052259A KR 20100052259 A KR20100052259 A KR 20100052259A KR 101191530 B1 KR101191530 B1 KR 101191530B1
Authority
KR
South Korea
Prior art keywords
meta
instruction
core
heterogeneous cores
processor system
Prior art date
Application number
KR1020100052259A
Other languages
Korean (ko)
Other versions
KR20110132749A (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 KR1020100052259A priority Critical patent/KR101191530B1/en
Publication of KR20110132749A publication Critical patent/KR20110132749A/en
Application granted granted Critical
Publication of KR101191530B1 publication Critical patent/KR101191530B1/en

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/22Microcontrol or microprogram arrangements
    • G06F9/28Enhancement of operational speed, e.g. by using several microcontrol devices operating in parallel
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead

Landscapes

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

Abstract

복수의 이종(heterogeneous) 코어를 포함하는 멀티코어 프로세서 시스템 및 그 제어 방법이 개시된다. 개시된 멀티코어 프로세서 시스템은 상기 멀티코어 프로세서 시스템에서 정의되는 상위 명령어인 메타 명령어를 실행할 코어를 상기 복수의 이종 코어 중에서 선택하는 선택부; 상기 메타 명령어를 상기 선택된 코어에서 실행 가능한 하위 명령어로 변환하여 상기 선택된 코어로 전달하는 변환부를 포함한다. 본 발명에 따르면, 복수의 이종 코어를 이용하여 2 이상의 명령어를 동시에 처리할 수 있게 된다.Disclosed are a multicore processor system including a plurality of heterogeneous cores, and a control method thereof. The disclosed multicore processor system includes a selector for selecting a core to execute a meta instruction, which is a higher instruction defined in the multicore processor system, from the plurality of heterogeneous cores; And a converting unit converting the meta instruction into a lower instruction executable in the selected core and transferring the meta instruction to the selected core. According to the present invention, two or more instructions can be simultaneously processed using a plurality of heterogeneous cores.

Description

복수의 이종 코어를 포함하는 멀티코어 프로세서 시스템 및 그 제어 방법{Multi-core processor system having plurality of heterogeneous core and Method for controlling the same}Multi-core processor system having multiple of heterogeneous core and method for controlling the same}

본 발명의 실시예들은 멀티코어 프로세서 시스템 및 그 제어 방법에 관한 것으로서 관한 것으로서, 더욱 상세하게는 복수의 이종(heterogeneous) 코어를 이용하여 2 이상의 명령어를 동시에 처리할 수 있는 멀티코어 프로세서 시스템 및 그 제어 방법에 관한 것이다. Embodiments of the present invention relate to a multicore processor system and a control method thereof, and more particularly, to a multicore processor system and a control capable of simultaneously processing two or more instructions using a plurality of heterogeneous cores. It is about a method.

일반적으로 프로세서 코어(이하 "코어"라고 함)의 종류에 따라서 사용되는 명령어 체계는 서로 상이하다. 따라서 서로 상이한 명령어 체계에 종속되지 않고 모든 프로세서 시스템에서 동일하게 사용할 수 있는 가상 머신(Virtual Machine)들에 대한 연구개발이 진행되어 왔다. 그 중에서도 선 마이크로시스템스사(Sun Microsystems)에서 개발한 자바 시스템(Java System)이 가장 널리 사용되고 있다. In general, the instruction systems used are different depending on the type of processor core (hereinafter referred to as "core"). Therefore, research and development on virtual machines that can be used in all processor systems without being dependent on different instruction systems have been in progress. Among them, the Java System developed by Sun Microsystems is the most widely used.

자바 시스템은 자바 프로그래밍 모델(Java Programming Model)과 자바 버추얼 머신(JVM: Java Virtual Machine)을 도입하여 ISA(Instruction Set Architecture)의 종류와 상관없이 모든 프로세서 시스템에서 동일한 자바 프로그램이 실행될 수 있는 환경을 제공한다. 이 때, 자바 버추얼 머신은 도 1에 도시된 바와 같이 프로세서 시스템 내에서 소프트웨어(도 1의 (a)) 또는 하드웨어 형태(도 1의 (b))로 구현되어 자바 프로그램 코드(자바 명령어)를 각각의 코어에서 실행 가능한 명령어로 변환하여 코어로 제공하는 기능을 수행한다. The Java system introduces the Java Programming Model and Java Virtual Machine (JVM) to provide an environment where the same Java program can run on all processor systems regardless of the type of Instruction Set Architecture (ISA). do. At this time, the Java virtual machine is implemented in software (Fig. 1 (a)) or hardware form (Fig. 1 (b)) in the processor system as shown in Fig. 1 to generate Java program code (Java instructions) respectively. Performs a function provided to the core by converting it into executable instructions in the core.

한편, 서로 다른 종류의 코어(이종(heterogeneous) 코어)를 포함하는 멀티코어 프로세서 시스템은 하나의 시스템에 복수의 이종 코어가 사용되는 구조를 가지고 있기 때문에, 각각의 코어에 따른 ISA 명령어를 모두 실행(처리)할 수 있어야 한다. 그런데, 상기와 같은 명령어 처리(실행) 동작은 기존의 자바 시스템에 정의되지 않은 처리 동작이기 때문에 기존의 자바 시스템을 이용하여서는 자바 명령어를 복수의 이종 코어에서 실행 가능한 명령어로 변환하여 처리할 수 없는 문제점이 있었다. 다시 말해, 이종 멀티코어 프로세서 시스템의 경우, 프로세서 내부에 복수의 이종 코어가 존재하기 때문에 기존의 자바 버추얼 머신의 명령어 변환 기능만으로는 이종 코어 별 명령어 스케줄링 기능과 명령어의 특성을 고려한 명령어 할당 기능을 수행할 수 없다는 문제점이 있었다.On the other hand, since a multi-core processor system including different types of cores (heterogeneous cores) has a structure in which a plurality of heterogeneous cores are used in one system, all ISA instructions for each core are executed ( Should be able to However, since the above command processing (execution) operation is a processing operation not defined in the existing Java system, the existing Java system cannot convert a Java command into an executable command in a plurality of heterogeneous cores and cannot be processed. There was this. In other words, in the heterogeneous multicore processor system, since there are a plurality of heterogeneous cores inside the processor, only the instruction conversion function of the existing Java virtual machine can perform the instruction scheduling function for each heterogeneous core and the instruction allocation function considering the characteristics of the instructions. There was a problem that can not.

상기한 바와 같은 종래기술의 문제점을 해결하기 위해, 본 발명에서는 복수의 이종 코어를 이용하여 2 이상의 명령어를 동시에 처리할 수 있는 멀티코어 프로세서 시스템 및 그 제어 방법을 제안하고자 한다.In order to solve the problems of the prior art as described above, the present invention proposes a multi-core processor system and a control method capable of simultaneously processing two or more instructions using a plurality of heterogeneous cores.

또한, 본 발명의 다른 목적은 동일한 종류의 코어를 2 이상 포함하는 멀티코어 프로세서 시스템과 동일하게 동작 가능한 복수의 이종 코어를 포함하는 멀티코어 프로세서 시스템 및 그 제어 방법을 제공하는 것이다. Another object of the present invention is to provide a multicore processor system including a plurality of heterogeneous cores operable in the same manner as a multicore processor system including two or more cores of the same kind, and a control method thereof.

상기한 목적을 달성하기 위해 본 발명의 바람직한 일 실시예에 따르면, 복수의 이종(heterogeneous) 코어를 포함하는 멀티코어 프로세서 시스템에 있어서, 상기 멀티코어 프로세서 시스템에서 정의되는 상위 명령어인 메타 명령어를 실행할 코어를 상기 복수의 이종 코어 중에서 선택하는 선택부; 상기 메타 명령어를 상기 선택된 코어에서 실행 가능한 하위 명령어로 변환하여 상기 선택된 코어로 전달하는 변환부를 포함하는 멀티코어 프로세서 시스템이 제공된다. According to a preferred embodiment of the present invention to achieve the above object, in a multi-core processor system comprising a plurality of heterogeneous cores, the core to execute the meta-instructions that are higher instructions defined in the multi-core processor system A selection unit for selecting from the plurality of heterogeneous cores; Provided is a multi-core processor system including a converting unit for converting the meta-instruction into a lower instruction executable in the selected core and delivering the meta-instruction to the selected core.

상기 멀티코어 프로세서 시스템은 메모리로부터 상기 메타 명령어를 수신하여 저장하는 임시 저장부를 더 포함하되, 상기 선택부는 상기 임시 저장부로부터 하나 이상의 메타 명령어를 독출하고, 상기 독출된 하나 이상의 메타 명령어를 실행할 코어를 선택할 수 있다. The multicore processor system further includes a temporary storage unit for receiving and storing the meta-instruction from a memory, wherein the selection unit reads one or more meta-instructions from the temporary storage unit, and selects a core to execute the read one or more meta-instructions. You can choose.

상기 임시 저장부는 큐(Queue)를 포함할 수 있다. The temporary storage unit may include a queue.

상기 선택부는 상기 복수의 이종 코어 각각의 상태 정보, 상기 복수의 이종 코어 각각의 메타 명령어 실행 성능 평가 정보, 및 상기 복수의 이종 코어 각각에 포함되는 캐시의 상태 정보 중에서 적어도 하나에 기초하여 상기 메타 명령어를 실행할 코어를 선택할 수 있다. The selection unit is based on at least one of the state information of each of the plurality of heterogeneous cores, the meta instruction execution performance evaluation information of each of the plurality of heterogeneous cores, and the state information of a cache included in each of the plurality of heterogeneous cores. You can choose which core to run.

상기 복수의 이종 코어 각각의 상태 정보는 상기 코어가 아이들 상태에 있음을 나타내는 아이들 상태 정보 및 상기 코어가 비지 상태에 있음을 나타내는 비지 상태 정보 중에서 어느 하나를 포함할 수 있다. The state information of each of the heterogeneous cores may include any one of idle state information indicating that the core is in an idle state and busy state information indicating that the core is in a busy state.

상기 복수의 이종 코어 각각의 메타 명령어 실행 성능 평가 정보는 상기 복수의 이종 코어 각각에 의해 미리 실행된 메타 명령어의 실행 성능을 평가하여 생성되거나 또는 상기 복수의 이종 코어 각각에 의해 실행되는 메타 명령어에 대해 실시간으로 실행 성능을 평가하여 생성될 수 있다. The meta instruction execution performance evaluation information of each of the plurality of heterogeneous cores is generated by evaluating the execution performance of the meta instruction executed in advance by each of the plurality of heterogeneous cores, or with respect to the meta instruction executed by each of the plurality of heterogeneous cores. It can be generated by evaluating execution performance in real time.

상기 변환부는 상기 복수의 이종 코어와 각각 연결되고, 상기 메타 명령어를 자신과 연결된 코어에서 실행 가능한 하위 명령어로 변환하여 전달하는 복수의 변환 모듈을 포함할 수 있다. The conversion unit may be connected to each of the plurality of heterogeneous cores, and may include a plurality of conversion modules for converting and transmitting the meta-instructions into lower instructions executable in the cores connected thereto.

상기 선택부는 상기 복수의 변환 모듈 중에서 상기 메타 명령어를 실행할 코어와 연결된 변환 모듈을 선택하는 선택 모듈; 및 상기 선택된 변환 모듈로 상기 메타 명령어를 전달하는 전달 모듈을 포함할 수 있다. The selecting unit selects a transformation module connected to a core to execute the meta-instruction among the plurality of transformation modules; And a delivery module for transmitting the meta-command to the selected transformation module.

상기 변환부는 하나의 메타 명령어를 적어도 하나의 하위 명령어로 변환하거나 또는 적어도 하나의 메타 명령어를 하나의 하위 명령어로 변환할 수 있다. The conversion unit may convert one meta command into at least one sub command or at least one meta command into one sub command.

또한, 본 발명의 다른 실시예에 따르면, 복수의 이종 코어를 포함하는 멀티코어 프로세서 시스템의 제어 방법에 있어서, 상기 멀티코어 프로세서 시스템에서 정의되는 상위 명령어인 메타 명령어를 실행할 코어를 상기 복수의 이종 코어 중에서 선택하는 단계; 및 상기 메타 명령어를 상기 선택된 코어에서 실행 가능한 하위 명령어로 변환하여 상기 선택된 코어로 전달하는 단계를 포함하는 멀티코어 프로세서 시스템의 제어 방법이 제공된다. In addition, according to another embodiment of the present invention, in a method of controlling a multicore processor system including a plurality of heterogeneous cores, the plurality of heterogeneous cores may include a core for executing a meta instruction, which is a higher instruction defined in the multicore processor system. Selecting from; And converting the meta-instruction into a lower instruction executable in the selected core and delivering the meta-instruction to the selected core.

상기 멀티코어 프로세서 시스템의 제어 방법은 메모리로부터 상기 메타 명령어를 수신하여 큐에 저장하는 단계를 더 포함하되, 상기 선택하는 단계는 상기 큐로부터 하나 이상의 메타 명령어를 독출하고, 상기 독출된 하나 이상의 메타 명령어 각각을 실행할 코어를 선택할 수 있다. The control method of the multicore processor system may further include receiving the meta instruction from a memory and storing the meta instruction in a queue, wherein the selecting includes reading one or more meta instructions from the queue and reading the one or more meta instructions from the queue. You can choose which core to run each.

상기 선택하는 단계는 상기 복수의 이종 코어 각각의 상태 정보, 상기 복수의 이종 코어 각각의 메타 명령어 실행 성능 평가 정보, 및 상기 복수의 이종 코어 각각에 포함되는 캐시의 상태 정보 중에서 적어도 하나에 기초하여 상기 메타 명령어를 실행할 코어를 선택할 수 있다. The selecting may be performed based on at least one of state information of each of the plurality of heterogeneous cores, meta instruction execution performance evaluation information of each of the plurality of heterogeneous cores, and state information of a cache included in each of the plurality of heterogeneous cores. You can choose which core to run the meta instruction on.

상기 선택하는 단계는 상기 복수의 이종 코어와 각각 연결되고, 상기 메타 명령어를 자신과 연결된 코어에서 실행 가능한 하위 명령어로 변환하여 전달하는 복수의 변환 모듈 중에서 상기 메타 명령어를 실행할 코어와 연결된 변환 모듈을 선택하는 단계; 및 선택된 변환 모듈로 상기 메타 명령어를 전달하는 단계를 포함하고, 상기 변환하는 단계는 상기 선택된 변환 모듈을 통해 상기 메타 명령어를 상기 선택된 변환 모듈과 연결된 코어의 하위 명령어로 변환할 수 있다. . The selecting may include selecting a conversion module connected to a core to execute the meta instruction from among a plurality of conversion modules respectively connected to the plurality of heterogeneous cores, and converting the meta instruction into a lower instruction executable in a core connected to the meta instruction. Making; And transmitting the meta instruction to the selected transformation module, wherein the converting may convert the meta instruction into a lower instruction of a core connected to the selected transformation module through the selected transformation module. .

본 발명에 따르면, 복수의 이종 코어를 이용하여 2 이상의 명령어를 동시에 처리할 수 있게 된다.According to the present invention, two or more instructions can be simultaneously processed using a plurality of heterogeneous cores.

또한 본 발명에 따르면, 복수의 이종 코어를 포함하는 멀티코어 프로세서 시스템을 동일한 종류의 코어를 2 이상 포함하는 멀티코어 프로세서 시스템과 동일하게 동작시킬 수 있게 된다. In addition, according to the present invention, it is possible to operate a multicore processor system including a plurality of heterogeneous cores in the same manner as a multicore processor system including two or more cores of the same type.

도 1은 자바 버추얼 머신을 포함하는 종래의 프로세서 시스템의 일례를 도시한 도면이다.
도 2는 본 발명의 일 실시예에 따른 멀티코어 프로세서 시스템의 상세한 구성을 도시한 블록도이다.
도 3은 "SMAC" 명령어의 개념을 설명하기 위한 도면이다.
도 4는 본 발명의 일 실시예에 따른 멀티코어 프로세서 시스템의 제어 방법의 전체적인 흐름을 도시한 순서도이다.
1 is a diagram illustrating an example of a conventional processor system including a Java virtual machine.
2 is a block diagram showing a detailed configuration of a multicore processor system according to an embodiment of the present invention.
3 is a view for explaining the concept of the "SMAC" command.
4 is a flowchart illustrating an overall flow of a control method of a multicore processor system according to an exemplary embodiment of the present invention.

이하에서, 본 발명에 따른 실시예들을 첨부된 도면을 참조하여 상세하게 설명한다. 그러나, 본 발명이 실시예들에 의해 제한되거나 한정되는 것은 아니다. 각 도면에 제시된 동일한 참조 부호는 동일한 부재를 나타낸다.
Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings. However, the present invention is not limited to or limited by the embodiments. Like reference symbols in the drawings denote like elements.

도 2는 본 발명의 일 실시예에 따른 멀티코어 프로세서 시스템의 상세한 구성을 도시한 블록도이다.2 is a block diagram showing a detailed configuration of a multicore processor system according to an embodiment of the present invention.

도 2를 참고하면, 본 발명의 일 실시예에 따른 멀티코어 프로세서 시스템(200)은 N개(N은 2 이상의 정수)의 이종(heterogeneous) 코어(210), 임시 저장부(220), 선택부(230), 및 변환부(240)를 포함할 수 있다. 이하, 도 2를 참고하여 각 구성 요소 별로 그 기능을 상술하기로 한다. Referring to FIG. 2, the multicore processor system 200 according to an embodiment of the present invention includes N heterogeneous cores 210 (N is an integer of 2 or more), a temporary storage unit 220, and a selection unit. 230, and a conversion unit 240. Hereinafter, the function of each component will be described in detail with reference to FIG. 2.

N개의 이종 코어(210)는 서로 다른 ISA(Instruction Set Architecture)를 갖는 프로세서 코어를 의미한다. 일례로, N개의 이종 코어(210)는 intel 사의 8086 프로세서 코어, IBM 사의 PowerPC 프로세서 코어, ARM 프로세서 코어 등을 포함할 수 있다. The N heterogeneous cores 210 refer to processor cores having different instruction set architectures (ISAs). For example, the N heterogeneous cores 210 may include an Intel 8086 processor core, an IBM PowerPC processor core, an ARM processor core, and the like.

임시 저장부(220)는 메인 메모리(250)로부터 메타 명령어를 수신(독출)하여 저장한다. The temporary storage unit 220 receives (reads) and stores a meta command from the main memory 250.

메타 명령어는 본 발명의 일 실시예에 따른 멀티코어 프로세서 시스템에서 새롭게 정의되는 명령어로서, N개의 이종 코어(210)에서 실행(처리)될 수 있는 명령어(즉, N개의 이종 코어(210) 각각의 ISA에 따른 명령어)의 상위 개념의 명령어(상위 명령어)이다. 메타 명령어는 아래에서 설명되는 바와 같이 변환부(240)에 의해 각 코어(210)에 적합한 명령어로 변환된다. The meta instruction is a newly defined instruction in a multicore processor system according to an embodiment of the present invention, and may be executed (processed) in N heterogeneous cores 210 (that is, each of the N heterogeneous cores 210). It is a high-level command (high command) of ISA). The meta instruction is converted into a command suitable for each core 210 by the conversion unit 240 as described below.

이러한 메타 명령어는 특정 코어에 특화된 전용 명령어는 지원할 수 없다. 또한, 메타 명령어는 상위 개념의 명령어로서, 모든 종류의 코어에서 공통적으로 표현될 수 있는 명령어 체계를 사용해야 하기 때문에 일반적인 코어의 ISA 보다는 추상화된 구조를 가지게 된다. 이하에서는 각 코어(210)에서 실행될 수 있는 명령어를 메타 명령어와 구별하기 위해 "하위 명령어"로 칭하기로 한다.These meta-instructions cannot support dedicated instructions specific to a particular core. In addition, meta-instruction is a higher-level instruction, and since it has to use an instruction system that can be commonly expressed in all kinds of cores, it has an abstracted structure rather than the ISA of a general core. Hereinafter, an instruction that may be executed in each core 210 may be referred to as a "sub instruction" to distinguish it from a meta instruction.

본 발명의 일 실시예에 따른 멀티코어 프로세서 시스템(200)은 복수의 코어를 이용하여 명령어를 실행(처리)하므로, 한 사이클(cycle) 내에서는 1개의 명령어 처리 동작만이 수행될 수도 있고, N개의 명령어 처리 동작이 동시에 수행될 수도 있다. 그런데 만약 멀티코어 프로세서 시스템(200)이 한 사이클 내에 하나의 명령어만을 패치(patch)할 경우, 메인 메모리(250)에서 발생하는 병목 현상에 의해 시스템 전체의 성능이 저하될 수 있다. 따라서, 본 발명에서는 임시 저장부(220)를 통해 위와 같은 병목 현상의 발생을 완충시킨다. Since the multi-core processor system 200 according to an embodiment of the present invention executes (processes) an instruction using a plurality of cores, only one instruction processing operation may be performed in one cycle, and N Command processing operations may be performed simultaneously. However, if the multicore processor system 200 only patches one instruction in one cycle, the overall system performance may be degraded due to a bottleneck occurring in the main memory 250. Therefore, the present invention buffers the occurrence of the above bottleneck through the temporary storage unit 220.

이 때, 임시 저장부(220)는 하나의 메타 명령어만을 메인 메모리(250)로부터 수신하여 저장할 수도 있고, 이종 코어(210)의 개수와 대응되는 N개의 메타 명령어를 메인 메모리(250)로부터 수신하여 저장할 수도 있으며, N개 이상의 메타 명령어를 메인 메모리(250)로부터 수신하여 저장할 수도 있다. In this case, the temporary storage unit 220 may receive and store only one meta command from the main memory 250, or receive N meta commands corresponding to the number of heterogeneous cores 210 from the main memory 250. In addition, N or more meta commands may be received from the main memory 250 and stored.

본 발명의 일 실시예에 따르면, 임시 저장부(220)는 큐(Queue)를 포함할 수 있다. 다시 말해, 임시 저장부(220)는 FIFO(First In First Out)로 동작하는 큐로 구성될 수 있다. According to an embodiment of the present invention, the temporary storage unit 220 may include a queue. In other words, the temporary storage unit 220 may be configured as a queue that operates as a first in first out (FIFO).

선택부(230)는 임시 저장부(220)로부터 하나 이상의 메타 명령어를 독출하고, 독출된 하나 이상의 메타 명령어를 실행할 코어를 N개의 이종 코어(210) 중에서 선택한다. 즉, 선택부(230)는 N개의 이종 코어(210) 중에서 해당 메타 명령어를 가장 잘 실행(처리)할 수 있는 코어를 선택하는 기능을 수행한다. 이 때, 코어의 선택 정보 및 해당 메타 명령어는 변환부(240)로 전달된다.The selector 230 reads one or more meta-instructions from the temporary storage unit 220, and selects a core from among N heterogeneous cores 210 to execute the read one or more meta-instructions. That is, the selector 230 selects a core capable of executing (processing) the corresponding meta instruction best among the N heterogeneous cores 210. At this time, the selection information of the core and the corresponding meta command are transmitted to the conversion unit 240.

본 발명의 일 실시예에 따르면, 선택부(230)는 N개의 이종 코어(210) 각각의 상태 정보, N개의 이종 코어(210) 각각의 메타 명령어 실행 성능 평가 정보, 및 N개의 이종 코어(210) 각각에 포함되는 캐시의 상태 정보 중에서 적어도 하나에 기초하여 메타 명령어를 실행할 코어를 선택할 수 있다. According to an embodiment of the present invention, the selector 230 may include status information of each of the N heterogeneous cores 210, meta-instruction execution performance evaluation information of each of the N heterogeneous cores 210, and N heterogeneous cores 210. The core to execute the meta-instruction may be selected based on at least one of state information of the cache included in each cache).

여기서, 코어의 상태 정보는 코어가 아이들(idle) 상태에 있음을 나타내는 아이들 상태 정보와 코어가 비지(busy) 상태에 있음을 나타내는 비지 상태 정보 중에서 어느 하나를 포함할 수 있다. 일례로, 코어 1이 비지 상태에 있고, 코어 2 내지 코어 N이 아이들 상태에 있는 경우, 코어 1에 대한 상태 정보는 비지 상태 정보를 포함하고, 코어 2 내지 코어 N의 상태 정보는 아이들 상태 정보를 포함한다. Here, the state information of the core may include any one of idle state information indicating that the core is in an idle state and busy state information indicating that the core is in a busy state. For example, when core 1 is in a busy state and cores 2 to N are in an idle state, the state information for core 1 includes busy state information, and the state information of cores 2 to core N includes idle state information. Include.

코어의 상태 정보에 기초하여 메타 명령어를 실행할 코어를 선택되는 경우, 선택부(230)는 아이들 상태인 코어를 우선적으로 선택할 수 있다. When a core for executing a meta instruction is selected based on the state information of the core, the selector 230 may preferentially select a core in an idle state.

또한, 코어의 메타 명령어 실행 성능 평가 정보는 특정 메타 명령어가 N개의 이종 코어(210) 중에서 어느 코어를 통해 가장 잘 실행(처리)될 수 있는지를 나타내는 정보를 의미한다. In addition, the meta-instruction execution performance evaluation information of the core refers to information indicating which core among the N heterogeneous cores 210 can be executed (processed) best.

이 때, 코어의 메타 명령어 실행 성능 평가 정보는 평가값의 형태(일례로, 소정의 메타 명령어에 대한 각 코어의 실행 성능 평가값이 [코어 1: 50%, 코어 2: 70%, 코어 3: 15%,…, 코어 N: 40%]와 같은 형태로 표현됨)를 가질 수도 있고, 우선 순위 형태(일례로, 소정의 메타 명령어에 대한 각각의 코어의 실행 성능의 우선 순위가 [코어 1: 제3 순위, 코어 2: 제1 순위, 코어 3: 제4 순위,…, 코어 N: 제2 순위]와 같은 형태로 표현됨)를 가질 수도 있다. At this time, the meta-instruction execution performance evaluation information of the core is in the form of an evaluation value (for example, the execution performance evaluation value of each core for a predetermined meta instruction is [Core 1: 50%, Core 2: 70%, Core 3: 15%,..., Core N: 40%], and the priority of each core's execution performance for a given meta-instruction, for example in the form of [core 1: first]. 3 rank, core 2: first rank, core 3: fourth rank, ..., core N: second rank].

본 발명의 일 실시예에 따르면, N개의 이종 코어(210) 각각의 메타 명령어 실행 성능 평가 정보는 N개의 이종 코어(210) 각각에 의해 미리 실행된 메타 명령어의 실행 성능을 평가하여 생성되거나 또는 N개의 이종 코어(210) 각각에 의해 실행되는 메타 명령어에 대해 실시간으로 실행 성능을 평가하여 생성될 수 있다. 다시 말해, 코어의 메타 명령어 실행 성능 평가는 사전에 특정 기능을 수행하는 메타 명령어 그룹을 대상으로 평가하여 이에 대한 결과를 반영하는 방법 또는 실시간으로 메타 명령어 그룹의 실행 결과 내역을 계측하여 반영하는 방법 중에서 적어도 하나의 방법을 통해 수행될 수 있다. According to an embodiment of the present invention, the meta-instruction execution performance evaluation information of each of the N heterogeneous cores 210 is generated by evaluating the execution performance of the meta-instructions previously executed by each of the N heterogeneous cores 210 or N. The meta-instructions executed by each of the heterogeneous cores 210 may be generated by evaluating execution performance in real time. In other words, the core instruction execution performance evaluation of the core may be performed by evaluating a group of meta instructions that perform a specific function in advance and reflecting the result thereof, or by measuring and reflecting the execution result history of the meta instruction group in real time. It may be performed through at least one method.

코어의 메타 명령어 실행 성능 평가 정보에 기초하여 메타 명령어를 실행할 코어가 선택되는 경우, 선택부(230)는 해당 메타 명령어에 대해 실행 성능이 높은 코어를 우선적으로 선택할 수 있다.When a core to execute a meta instruction is selected based on the meta instruction execution performance evaluation information of the core, the selector 230 may preferentially select a core having a high execution performance with respect to the corresponding meta instruction.

그리고, 코어에 포함된 캐시의 상태 정보는 코어 내부의 캐시에 어느 정보의 여유 저장 공간이 있는지 여부를 나타내는 정보를 의미한다. The state information of the cache included in the core refers to information indicating whether there is free storage space of information in the cache inside the core.

이 때, 여유 저장 공간은 바이트 수로 표현(일례로, [코어 1: 200 Kbyte, 코어 2: 100Kbyte, 코어 3: 350Kbyte,…, 코어 N: 400Kbyte]와 같은 형태로 표현)될 수도 있고 퍼센테이지 형태로 표현(일례로, [코어 1: 20%, 코어 2: 40%, 코어 3: 35%,…, 코어 N: 70%]와 같은 형태로 표현)될 수도 있다. In this case, the free storage space may be represented by the number of bytes (for example, in the form of [Core 1: 200 Kbyte, Core 2: 100 Kbyte, Core 3: 350 Kbyte, ..., Core N: 400 Kbyte]) or in percentage form. Expression (eg, [Core 1: 20%, Core 2: 40%, Core 3: 35%, ..., Core N: 70%]).

코어의 내부 캐시의 상태 정보에 기초하여 메타 명령어를 실행할 코어가 선택되는 경우, 선택부(230)는 여유 저장 공간이 많은 캐시를 포함하는 코어를 우선적으로 선택할 수 있다.When a core for executing a meta instruction is selected based on state information of an internal cache of the core, the selector 230 may preferentially select a core including a cache having a large amount of free storage space.

또한, 상기의 코어 선택 요소들은 2 이상이 조합되어 사용될 수도 있다. 이 경우, 선택부(230)는 각각의 선택 요소들에 대해 우선 순위를 부여하는 방법을 통해 2 이상의 선택 요소들을 조합하여 명령어를 처리할 코어를 선택할 수 있다. In addition, the above core selection elements may be used in combination of two or more. In this case, the selector 230 may select a core to process the instruction by combining two or more selection elements through a method of assigning priority to each of the selection elements.

변환부(240)는 선택부(230)로부터 전달받은 코어의 선택 정보에 기초하여 해당 메타 명령어를 선택된 코어의 ISA에 적합한 명령어로 변환하고, 변환된 명령어를 선택된 코어로 전달한다. 즉, 변환부(240)는 해당 메타 명령어를 선택된 코어에서 실행 가능한 하위 명령어로 변환하여 코어로 전달한다. 일례로, 선택된 코어가 ARM 프로세서 코어인 경우, 해당 메타 명령어는 ARM 프로세서 코어의 ISA로 변환된다. The conversion unit 240 converts the corresponding meta-instruction into an instruction suitable for the ISA of the selected core based on the selection information of the core received from the selection unit 230, and transfers the converted instruction to the selected core. That is, the conversion unit 240 converts the meta instruction into a lower instruction executable in the selected core and delivers the meta instruction to the core. In one example, if the selected core is an ARM processor core, the corresponding meta-instructions are converted to the ISA of the ARM processor core.

이 때, 변환부(240)는 기본적으로 하나의 메타 명령어를 하나의 하위 명령어로 변환하지만(1:1 명령어 변환), 변환부(240)는 하나의 메타 명령어를 2 이상의 하위 명령어로 변환할 수도 있으며(1:K 명령어 변환), 2 이상의 메타 명령어를 하나의 하위 명령어로 변환할 수도 있다(K:1 명령어 변환). In this case, the conversion unit 240 basically converts one meta command into one subcommand (1: 1 command conversion), but the conversion unit 240 may convert one meta command into two or more subcommands. You can also convert two or more meta-commands into one subcommand (K: 1 command conversion).

변환부(240)가 하나의 메타 명령어를 하나의 하위 명령어로 변환하는 1:1 명령어 변환의 경우는 "ADD" 명령어, "SUB" 명령어, "MUL" 명령어 등과 같이 모든 이종 코어에서 사용되는 기본적인 명령어들에 대해 적용될 수 있다. In case of 1: 1 instruction conversion in which the conversion unit 240 converts one meta instruction into one sub-command, basic instructions used in all heterogeneous cores such as "ADD" instruction, "SUB" instruction, "MUL" instruction, etc. Can be applied for

변환부(240)가 하나의 메타 명령어를 2 이상의 하위 명령어로 변환하는 경우는 해당 메타 명령어가 선택된 코어의 명령어 하나와 대응되지 않는 경우(즉, 해당 메타 명령어를 하나의 하위 명령어로 표현하지 못하는 경우)에 발생할 수 있다. 이는 앞서 설명한 바와 같이 메타 명령어가 상위 개념의 추상화된 명령어 구조를 갖기 때문이다. When the conversion unit 240 converts a meta instruction into two or more sub-instructions, the meta-instruction does not correspond to one instruction of the selected core (that is, when the meta-instruction cannot be expressed as one sub-instruction). May occur). This is because, as described above, meta-commands have an abstracted command structure of a higher concept.

일례로서, 도 3의 (a)에 도시된 바와 같이 DSP에서 주로 사용되는 곱셈과 덧셈의 반복 연산 명령인 "SMAC" 명령어가 메타 명령어로서 정의되고, 코어에서 "SMAC" 명령어를 지원하지 않는다면, 변환부(240)는 하나의 메타 명령어("SMAC" 명령어)를 2개의 하위 명령어("MUL" 명령어 및 "ADD" 명령어)로 변환할 수 있다(도 3의 (b) 참고). As an example, as shown in (a) of FIG. 3, if the "SMAC" instruction, which is a multiplication and addition repetition instruction instruction mainly used in the DSP, is defined as a meta instruction and the core does not support the "SMAC" instruction, the conversion The unit 240 may convert one meta command (“SMAC” command) into two sub-commands (“MUL” command and “ADD” command) (see FIG. 3B).

또한, 변환부(240)가 2 이상의 메타 명령어를 하나의 하위 명령어로 변환하는 경우는 메타 명령어로 표현된 코드의 집합의 효과에 대한 기능 평가 결과가 해당 코어의 특수 명령어(일례로, DSP(Digital Signal Processing) 명령어)와 일치하는 경우에 발생할 수 있다. 이에 따라 2 이상의 메타 명령어가 해당 코어의 하나의 특수 명령어로 치환된다. In addition, when the conversion unit 240 converts two or more meta-instructions into one sub-instruction, the function evaluation result for the effect of the set of codes represented by the meta-instruction is a special instruction of the corresponding core (for example, DSP (Digital) Signal Processing command). Accordingly, two or more meta instructions are replaced with one special instruction of the corresponding core.

일례로, 앞서 설명한 "SMAC" 명령어가 메타 명령어로서 정의되지 않았고, 이종 코어에서 "SMAC" 명령어를 지원한다면, 변환부(240)는 2개의 메타 명령어("MUL" 명령어 및 "ADD" 명령어)를 하나의 하위 명령어("SMAC" 명령어)로 변환할 수 있다(도 3의 (c) 참고). For example, if the aforementioned "SMAC" instruction is not defined as a meta instruction, and the heterogeneous core supports the "SMAC" instruction, the conversion unit 240 may execute two meta instructions ("MUL" instruction and "ADD" instruction). It can be converted into one subcommand (“SMAC” command) (see (c) of FIG. 3).

정리하면, 변환부(240)는 하나의 메타 명령어를 적어도 하나의 하위 명령어로 변환하거나 또는 적어도 하나의 메타 명령어를 하나의 하위 명령어로 변환할 수 있다. In summary, the conversion unit 240 may convert one meta command into at least one sub command or at least one meta command into one sub command.

본 발명의 일 실시예에 따르면, 변환부(240)는 N개의 이종 코어(210)와 각각 연결되고, 메타 명령어를 자신과 연결된 코어에서 실행 가능한 하위 명령어로 변환하여 전달하는 N개의 변환 모듈(241)을 포함할 수 있으며, 선택부(230)는 N개의 변환 모듈(241) 중에서 메타 명령어를 실행할 코어와 연결된 변환 모듈을 선택하는 선택 모듈(231), 및 선택된 변환 모듈로 메타 명령어를 전달하는 전달 모듈(232)을 포함할 수 있다. According to an embodiment of the present invention, the conversion unit 240 is connected to each of the N heterogeneous cores 210, N conversion module 241 for converting the meta-instructions to the lower instruction executable in the core connected to it and transfers it. The selection unit 230 may include a selection module 231 for selecting a transformation module connected to a core to execute a meta instruction among the N transformation modules 241, and a transfer for transmitting the meta instruction to the selected transformation module. Module 232 may be included.

즉, 변환부(240)는 코어 별 전용 변환 모듈로 구성되고, 선택 모듈(231)은 이러한 변환 모듈(즉, 해당 코어)로 메타 명령을 전달하는 경우 명령어 전달 스케줄링 기능을 수행하며, 전달 모듈(232)는 각 변환 모듈로 메타 명령어를 분산시키는 기능을 수행한다. That is, the conversion unit 240 is composed of a dedicated conversion module for each core, the selection module 231 performs an instruction delivery scheduling function when delivering a meta-command to such a conversion module (ie, the corresponding core), 232 performs a function of distributing meta-commands to each conversion module.

이와 같이, 본 발명의 일 실시예에 따른 복수의 이종 코어를 포함하는 멀티코어 프로세서 시스템(200)은 동일한 종류의 코어를 2 이상 포함하는 멀티코어 프로세서 시스템과 동일하게 동작시킬 수 있게 되고, 이에 따라 2 이상의 명령어를 동시에 처리할 수 있게 된다.
As such, the multicore processor system 200 including a plurality of heterogeneous cores according to an embodiment of the present invention may operate in the same manner as a multicore processor system including two or more cores of the same type. More than one instruction can be processed at the same time.

도 4는 본 발명의 일 실시예에 따른 멀티코어 프로세서 시스템의 제어 방법의 전체적인 흐름을 도시한 순서도이다.4 is a flowchart illustrating an overall flow of a control method of a multicore processor system according to an exemplary embodiment of the present invention.

본 발명의 일 실시예에 따른 멀티코어 프로세서 시스템의 제어 방법은 앞서 도 2에서 설명한 바와 같은 복수의 이종 코어를 포함하는 멀티코어 프로세서 시스템에 적용 가능하다. 이하, 도 4를 참고하여 각 단계 별로 수행되는 과정을 설명하기로 한다. The control method of a multicore processor system according to an exemplary embodiment of the present invention is applicable to a multicore processor system including a plurality of heterogeneous cores as described above with reference to FIG. 2. Hereinafter, a process performed for each step will be described with reference to FIG. 4.

먼저, 단계(S410)에서는 메인 메모리로부터 메타 명령어를 수신하여 큐에 저장한다. 이 때, 저장되는 메타 명령어의 개수는 하나 이상일 수 있다. 또한, 하나 이상의 메타 명령어는 복수의 이종 코어 중에서 하나의 이종 코어에서 실행될 메타 명령어 일 수도 있고, 2 이상의 이종 코어에서 실행될 메타 명령어일 수도 있다. First, in step S410, a meta command is received from the main memory and stored in a queue. In this case, the number of stored meta-commands may be one or more. Also, the one or more meta instructions may be meta instructions to be executed on one heterogeneous core among a plurality of heterogeneous cores, or may be meta instructions to be executed on two or more heterogeneous cores.

단계(S420)에서는 큐로부터 하나 이상의 메타 명령어를 독출하고, 독출된 하나 이상의 메타 명령어 각각을 실행할 코어를 선택한다. 이 때, 단계(S420)에서는 해당 메타 명령어가 실행되기에 적합한 코어를 선택할 수 있다. In operation S420, one or more meta instructions are read from the queue, and a core to execute each of the read one or more meta instructions is selected. In this case, in operation S420, a core suitable for executing the corresponding meta instruction may be selected.

본 발명의 일 실시예에 따르면, 단계(S420)에서는 복수의 이종 코어 각각의 상태 정보, 복수의 이종 코어 각각의 메타 명령어 실행 성능 평가 정보, 및 복수의 이종 코어 각각에 포함되는 캐시의 상태 정보 중에서 적어도 하나에 기초하여 메타 명령어를 실행할 코어를 선택할 수 있다. 각각의 선택 요소의 의미는 앞서 도 2에서 설명한 선택 요소와 동일하다. According to an embodiment of the present invention, in step S420, among the state information of each of the plurality of heterogeneous cores, the meta instruction execution performance evaluation information of each of the plurality of heterogeneous cores, and the state information of the cache included in each of the plurality of heterogeneous cores. It is possible to select a core on which to execute the meta instruction based on at least one. The meaning of each selection element is the same as the selection element described above with reference to FIG. 2.

단계(S430)에서는 해당 메타 명령어를 선택된 코어에서 실행 가능한 하위 명령어로 변환하여 선택된 코어로 전달한다. In step S430, the meta instruction is converted into a lower instruction executable in the selected core and transferred to the selected core.

본 발명의 일 실시예에 따르면, 단계(S430)에서는 하나의 메타 명령어를 하나의 하위 명령으로 변환할 수도 있고, 하나의 메타 명령어를 2 이상의 하위 명령어로 변환할 수도 있으며, 2 이상의 메타 명령어를 하나의 하위 명령어로 변환할 수도 있다. According to an embodiment of the present invention, in step S430, one meta command may be converted into one subcommand, one meta command may be converted into two or more subcommands, and two or more metacommands may be converted into one subcommand. You can also convert to a subcommand of.

한편, 단계(S420)에서는 복수의 이종 코어와 각각 연결되고, 메타 명령어를 자신과 연결된 코어에서 실행 가능한 하위 명령어로 변환하여 전달하는 복수의 변환 모듈 중에서 메타 명령어를 실행할 코어와 연결된 변환 모듈을 선택하고, 선택된 변환 모듈로 메타 명령어를 전달할 수 있는데, 이 경우, 단계(S430)에서는 선택된 변환 모듈을 통해 메타 명령어를 선택된 변환 모듈과 연결된 코어의 하위 명령어로 변환할 수 있다. On the other hand, in step (S420) is selected from the plurality of conversion modules connected to the core to execute the meta-instructions from among a plurality of conversion modules connected to each of the plurality of heterogeneous cores, converting the meta-instruction into a lower instruction executable in the core connected to it The meta instruction may be transmitted to the selected transformation module. In this case, in operation S430, the meta instruction may be converted into a lower instruction of a core connected to the selected transformation module through the selected transformation module.

마지막으로, 단계(S440)에서는 해당 코어가 해당 하위 명령어를 실행(처리)한다. Finally, in step S440, the core executes (processes) the corresponding sub-instruction.

지금까지 본 발명에 따른 멀티코어 프로세서 시스템의 제어 방법의 실시예들에 대하여 설명하였고, 앞서 도 2에서 설명한 멀티코어 프로세서 시스템(200)에 관한 구성이 본 실시예에도 그대로 적용 가능하다. 이에, 보다 상세한 설명은 생략하기로 한다.So far, embodiments of the control method of the multicore processor system according to the present invention have been described, and the configuration of the multicore processor system 200 described above with reference to FIG. 2 is also applicable to the present embodiment. Hereinafter, a detailed description will be omitted.

또한, 본 발명의 실시예들은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 본 발명의 일 실시예들의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.In addition, embodiments of the present invention may be implemented in the form of program instructions that can be executed through various computer means and recorded on a computer readable medium. The computer readable medium may include program instructions, data files, data structures, etc. alone or in combination. The program instructions recorded on the medium may be those specially designed and constructed for the present invention or may be available to those skilled in the art of computer software. Examples of computer-readable media include magnetic media such as hard disks, floppy disks, and magnetic tape; optical media such as CD-ROMs and DVDs; magnetic media such as floppy disks; Examples of program instructions, such as magneto-optical and ROM, RAM, flash memory and the like, can be executed by a computer using an interpreter or the like, as well as machine code, Includes a high-level language code. The hardware device described above may be configured to operate as one or more software modules to perform the operations of one embodiment of the present invention, and vice versa.

이상과 같이 본 발명에서는 구체적인 구성 요소 등과 같은 특정 사항들과 한정된 실시예 및 도면에 의해 설명되었으나 이는 본 발명의 전반적인 이해를 돕기 위해서 제공된 것일 뿐, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상적인 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다. 따라서, 본 발명의 사상은 설명된 실시예에 국한되어 정해져서는 아니되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등하거나 등가적 변형이 있는 모든 것들은 본 발명 사상의 범주에 속한다고 할 것이다.As described above, the present invention has been described with reference to particular embodiments, such as specific elements, and limited embodiments and drawings. However, it should be understood that the present invention is not limited to the above- Various modifications and variations may be made thereto by those skilled in the art to which the present invention pertains. Accordingly, the spirit of the present invention should not be construed as being limited to the embodiments described, and all of the equivalents or equivalents of the claims, as well as the following claims, belong to the scope of the present invention .

Claims (13)

복수의 이종(heterogeneous) 코어를 포함하는 멀티코어 프로세서 시스템에 있어서,
상기 멀티코어 프로세서 시스템에서 정의되는 상위 명령어인 메타 명령어를 실행할 코어를 상기 복수의 이종 코어 중에서 선택하는 선택부;
상기 메타 명령어를 상기 선택된 코어에서 실행 가능한 하위 명령어로 변환하여 상기 선택된 코어로 전달하는 변환부를 포함하되,
상기 선택부는 상기 복수의 이종 코어 각각의 상태 정보, 상기 복수의 이종 코어 각각의 메타 명령어 실행 성능 평가 정보, 및 상기 복수의 이종 코어 각각에 포함되는 캐시의 상태 정보 중에서 적어도 하나에 기초하여 상기 메타 명령어를 실행할 코어를 선택하는 것을 특징으로 하는 멀티코어 프로세서 시스템.
In a multicore processor system comprising a plurality of heterogeneous cores,
A selection unit for selecting a core to execute a meta instruction, which is an upper instruction defined in the multicore processor system, from the plurality of heterogeneous cores;
A converting unit converting the meta instruction into a lower instruction executable in the selected core and transferring the meta instruction to the selected core,
The selection unit is based on at least one of the state information of each of the plurality of heterogeneous cores, the meta instruction execution performance evaluation information of each of the plurality of heterogeneous cores, and the state information of a cache included in each of the plurality of heterogeneous cores. The multi-core processor system, characterized in that for selecting the core to run.
제1항에 있어서,
메모리로부터 상기 메타 명령어를 수신하여 저장하는 임시 저장부
를 더 포함하되,
상기 선택부는 상기 임시 저장부로부터 하나 이상의 메타 명령어를 독출하고, 상기 독출된 하나 이상의 메타 명령어를 실행할 코어를 선택하는 것을 특징으로 하는 멀티코어 프로세서 시스템.
The method of claim 1,
Temporary storage unit for receiving and storing the meta command from the memory
Further comprising:
The selection unit reads one or more meta-instructions from the temporary storage unit, and selects a core to execute the read one or more meta-instructions.
제2항에 있어서,
상기 임시 저장부는 큐(Queue)를 포함하는 것을 특징으로 하는 멀티코어 프로세서 시스템.
The method of claim 2,
The temporary storage unit comprises a queue (Queue).
삭제delete 제1항에 있어서,
상기 복수의 이종 코어 각각의 상태 정보는
상기 코어가 아이들 상태에 있음을 나타내는 아이들 상태 정보 및 상기 코어가 비지 상태에 있음을 나타내는 비지 상태 정보 중에서 어느 하나를 포함하는 것을 특징으로 하는 멀티코어 프로세서 시스템.
The method of claim 1,
Status information of each of the plurality of heterogeneous cores is
And at least one of idle state information indicating that the core is in an idle state and busy state information indicating that the core is in a busy state.
제1항에 있어서,
상기 복수의 이종 코어 각각의 메타 명령어 실행 성능 평가 정보는
상기 복수의 이종 코어 각각에 의해 미리 실행된 메타 명령어의 실행 성능을 평가하여 생성되거나 또는 상기 복수의 이종 코어 각각에 의해 실행되는 메타 명령어에 대해 실시간으로 실행 성능을 평가하여 생성되는 것을 특징으로 하는 멀티코어 프로세서 시스템.
The method of claim 1,
The meta instruction execution performance evaluation information of each of the plurality of heterogeneous cores is
It is generated by evaluating the execution performance of the meta-instructions previously executed by each of the plurality of heterogeneous cores, or generated by evaluating the execution performance in real time with respect to the meta-instructions executed by each of the plurality of heterogeneous cores. Core processor system.
제1항에 있어서,
상기 변환부는
상기 복수의 이종 코어와 각각 연결되고, 상기 메타 명령어를 자신과 연결된 코어에서 실행 가능한 하위 명령어로 변환하여 전달하는 복수의 변환 모듈
을 포함하는 것을 특징으로 하는 멀티코어 프로세서 시스템.
The method of claim 1,
The conversion unit
A plurality of conversion modules each connected to the plurality of heterogeneous cores and converting the meta instructions into sub-commands executable in the cores connected thereto;
Multi-core processor system comprising a.
제7항에 있어서,
상기 선택부는
상기 복수의 변환 모듈 중에서 상기 메타 명령어를 실행할 코어와 연결된 변환 모듈을 선택하는 선택 모듈; 및
상기 선택된 변환 모듈로 상기 메타 명령어를 전달하는 전달 모듈
을 포함하는 것을 특징으로 하는 멀티코어 프로세서 시스템.
The method of claim 7, wherein
The selection unit
A selection module for selecting a conversion module connected to a core to execute the meta instruction among the plurality of conversion modules; And
A transfer module for delivering the meta-command to the selected transform module
Multi-core processor system comprising a.
제1항에 있어서,
상기 변환부는 하나의 메타 명령어를 적어도 하나의 하위 명령어로 변환하거나 또는 적어도 하나의 메타 명령어를 하나의 하위 명령어로 변환하는 것을 특징으로 하는 멀티코어 프로세서 시스템.
The method of claim 1,
And the converting unit converts one meta instruction into at least one sub instruction or at least one meta instruction into one sub instruction.
복수의 이종 코어를 포함하는 멀티코어 프로세서 시스템의 제어 방법에 있어서,
상기 멀티코어 프로세서 시스템에서 정의되는 상위 명령어인 메타 명령어를 실행할 코어를 상기 복수의 이종 코어 중에서 선택하는 단계; 및
상기 메타 명령어를 상기 선택된 코어에서 실행 가능한 하위 명령어로 변환하여 상기 선택된 코어로 전달하는 단계를 포함하되,
상기 선택하는 단계는 상기 복수의 이종 코어 각각의 상태 정보, 상기 복수의 이종 코어 각각의 메타 명령어 실행 성능 평가 정보, 및 상기 복수의 이종 코어 각각에 포함되는 캐시의 상태 정보 중에서 적어도 하나에 기초하여 상기 메타 명령어를 실행할 코어를 선택하는 것을 특징으로 하는 멀티코어 프로세서 시스템의 제어 방법.
In the control method of a multicore processor system comprising a plurality of heterogeneous cores,
Selecting from among the plurality of heterogeneous cores a core to execute a meta instruction, which is a higher instruction defined in the multicore processor system; And
Converting the meta-instruction into a lower instruction executable in the selected core and delivering the meta-instruction to the selected core,
The selecting may be performed based on at least one of state information of each of the plurality of heterogeneous cores, meta instruction execution performance evaluation information of each of the plurality of heterogeneous cores, and state information of a cache included in each of the plurality of heterogeneous cores. A method for controlling a multicore processor system, comprising selecting a core to execute a meta instruction.
제10항에 있어서,
메모리로부터 상기 메타 명령어를 수신하여 큐에 저장하는 단계
를 더 포함하되,
상기 선택하는 단계는 상기 큐로부터 하나 이상의 메타 명령어를 독출하고, 상기 독출된 하나 이상의 메타 명령어 각각을 실행할 코어를 선택하는 것을 특징으로 하는 멀티코어 프로세서 시스템의 제어 방법.
The method of claim 10,
Receiving the meta-command from a memory and storing it in a queue
Further comprising:
The selecting may include reading one or more meta instructions from the queue, and selecting a core to execute each of the read one or more meta instructions.
삭제delete 제10항에 있어서,
상기 선택하는 단계는 상기 복수의 이종 코어와 각각 연결되고, 상기 메타 명령어를 자신과 연결된 코어에서 실행 가능한 하위 명령어로 변환하여 전달하는 복수의 변환 모듈 중에서 상기 메타 명령어를 실행할 코어와 연결된 변환 모듈을 선택하는 단계; 및 선택된 변환 모듈로 상기 메타 명령어를 전달하는 단계를 포함하고,
상기 변환하는 단계는 상기 선택된 변환 모듈을 통해 상기 메타 명령어를 상기 선택된 변환 모듈과 연결된 코어의 하위 명령어로 변환하는 것을 특징으로 하는 멀티코어 프로세서 시스템의 제어 방법.
The method of claim 10,
The selecting may include selecting a conversion module connected to a core to execute the meta instruction from among a plurality of conversion modules respectively connected to the plurality of heterogeneous cores, and converting the meta instruction into a lower instruction executable in a core connected to the meta instruction. Making; And forwarding the meta instruction to a selected transform module,
The converting may include converting the meta-instruction into a lower instruction of a core connected to the selected transformation module through the selected transformation module.
KR1020100052259A 2010-06-03 2010-06-03 Multi-core processor system having plurality of heterogeneous core and Method for controlling the same KR101191530B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020100052259A KR101191530B1 (en) 2010-06-03 2010-06-03 Multi-core processor system having plurality of heterogeneous core and Method for controlling the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020100052259A KR101191530B1 (en) 2010-06-03 2010-06-03 Multi-core processor system having plurality of heterogeneous core and Method for controlling the same

Publications (2)

Publication Number Publication Date
KR20110132749A KR20110132749A (en) 2011-12-09
KR101191530B1 true KR101191530B1 (en) 2012-10-15

Family

ID=45500621

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020100052259A KR101191530B1 (en) 2010-06-03 2010-06-03 Multi-core processor system having plurality of heterogeneous core and Method for controlling the same

Country Status (1)

Country Link
KR (1) KR101191530B1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101513162B1 (en) * 2014-02-19 2015-04-17 주식회사 큐레이소프트 System for operating secure application

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070150895A1 (en) 2005-12-06 2007-06-28 Kurland Aaron S Methods and apparatus for multi-core processing with dedicated thread management
US20080282064A1 (en) * 2007-05-07 2008-11-13 Michael Norman Day System and Method for Speculative Thread Assist in a Heterogeneous Processing Environment
US20090037911A1 (en) 2007-07-30 2009-02-05 International Business Machines Corporation Assigning tasks to processors in heterogeneous multiprocessors
US20100077185A1 (en) 2008-09-19 2010-03-25 Microsoft Corporation Managing thread affinity on multi-core processors

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070150895A1 (en) 2005-12-06 2007-06-28 Kurland Aaron S Methods and apparatus for multi-core processing with dedicated thread management
US20080282064A1 (en) * 2007-05-07 2008-11-13 Michael Norman Day System and Method for Speculative Thread Assist in a Heterogeneous Processing Environment
US20090037911A1 (en) 2007-07-30 2009-02-05 International Business Machines Corporation Assigning tasks to processors in heterogeneous multiprocessors
US20100077185A1 (en) 2008-09-19 2010-03-25 Microsoft Corporation Managing thread affinity on multi-core processors

Also Published As

Publication number Publication date
KR20110132749A (en) 2011-12-09

Similar Documents

Publication Publication Date Title
CN108537543B (en) Parallel processing method, device, equipment and storage medium for blockchain data
US10877766B2 (en) Embedded scheduling of hardware resources for hardware acceleration
JP5516744B2 (en) Scheduler, multi-core processor system, and scheduling method
WO2016112701A9 (en) Method and device for task scheduling on heterogeneous multi-core reconfigurable computing platform
US8413158B2 (en) Processor thread load balancing manager
US9164769B2 (en) Analyzing data flow graph to detect data for copying from central register file to local register file used in different execution modes in reconfigurable processing array
CN105528330A (en) Load balancing method and device, cluster and many-core processor
US20110307903A1 (en) Soft partitions and load balancing
US9747132B2 (en) Multi-core processor using former-stage pipeline portions and latter-stage pipeline portions assigned based on decode results in former-stage pipeline portions
JP5309703B2 (en) Shared memory control circuit, control method, and control program
JP6214469B2 (en) Vehicle control device
CN105045632A (en) Method and device for implementing lock free queue in multi-core environment
KR100883655B1 (en) System and method for switching context in reconfigurable processor
KR101603752B1 (en) Multi mode supporting processor and method using the processor
JP4334598B1 (en) Information processing apparatus and error correction method
CN103970714A (en) Apparatus and method for sharing function logic and reconfigurable processor thereof
US20120210074A1 (en) Dual mode reader writer lock
US9588817B2 (en) Scheduling method and scheduling system for assigning application to processor
KR101191530B1 (en) Multi-core processor system having plurality of heterogeneous core and Method for controlling the same
JP5776813B2 (en) Multi-core processor system, control method and control program for multi-core processor system
US20120017070A1 (en) Compile system, compile method, and storage medium storing compile program
US20150243259A1 (en) Method and apparatus for transferring data in a computer
US9619277B2 (en) Computer with plurality of processors sharing process queue, and process dispatch processing method
CN112445587A (en) Task processing method and task processing device
CN112416539B (en) Multi-task parallel scheduling method for heterogeneous many-core processor

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20151001

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20161004

Year of fee payment: 5

LAPS Lapse due to unpaid annual fee