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 PDFInfo
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 29
- 238000006243 chemical reaction Methods 0.000 claims description 36
- 238000011156 evaluation Methods 0.000 claims description 16
- 230000009466 transformation Effects 0.000 claims description 14
- 238000012546 transfer Methods 0.000 claims description 4
- 230000006870 function Effects 0.000 description 9
- 238000012545 processing Methods 0.000 description 8
- 101150082208 DIABLO gene Proteins 0.000 description 7
- 102100033189 Diablo IAP-binding mitochondrial protein Human genes 0.000 description 7
- 238000010586 diagram Methods 0.000 description 3
- 239000000872 buffer Substances 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012827 research and development Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/22—Microcontrol or microprogram arrangements
- G06F9/28—Enhancement of operational speed, e.g. by using several microcontrol devices operating in parallel
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent 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
본 발명의 실시예들은 멀티코어 프로세서 시스템 및 그 제어 방법에 관한 것으로서 관한 것으로서, 더욱 상세하게는 복수의 이종(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
N개의 이종 코어(210)는 서로 다른 ISA(Instruction Set Architecture)를 갖는 프로세서 코어를 의미한다. 일례로, N개의 이종 코어(210)는 intel 사의 8086 프로세서 코어, IBM 사의 PowerPC 프로세서 코어, ARM 프로세서 코어 등을 포함할 수 있다. The N
임시 저장부(220)는 메인 메모리(250)로부터 메타 명령어를 수신(독출)하여 저장한다. The
메타 명령어는 본 발명의 일 실시예에 따른 멀티코어 프로세서 시스템에서 새롭게 정의되는 명령어로서, 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
이러한 메타 명령어는 특정 코어에 특화된 전용 명령어는 지원할 수 없다. 또한, 메타 명령어는 상위 개념의 명령어로서, 모든 종류의 코어에서 공통적으로 표현될 수 있는 명령어 체계를 사용해야 하기 때문에 일반적인 코어의 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
본 발명의 일 실시예에 따른 멀티코어 프로세서 시스템(200)은 복수의 코어를 이용하여 명령어를 실행(처리)하므로, 한 사이클(cycle) 내에서는 1개의 명령어 처리 동작만이 수행될 수도 있고, N개의 명령어 처리 동작이 동시에 수행될 수도 있다. 그런데 만약 멀티코어 프로세서 시스템(200)이 한 사이클 내에 하나의 명령어만을 패치(patch)할 경우, 메인 메모리(250)에서 발생하는 병목 현상에 의해 시스템 전체의 성능이 저하될 수 있다. 따라서, 본 발명에서는 임시 저장부(220)를 통해 위와 같은 병목 현상의 발생을 완충시킨다. Since the
이 때, 임시 저장부(220)는 하나의 메타 명령어만을 메인 메모리(250)로부터 수신하여 저장할 수도 있고, 이종 코어(210)의 개수와 대응되는 N개의 메타 명령어를 메인 메모리(250)로부터 수신하여 저장할 수도 있으며, N개 이상의 메타 명령어를 메인 메모리(250)로부터 수신하여 저장할 수도 있다. In this case, the
본 발명의 일 실시예에 따르면, 임시 저장부(220)는 큐(Queue)를 포함할 수 있다. 다시 말해, 임시 저장부(220)는 FIFO(First In First Out)로 동작하는 큐로 구성될 수 있다. According to an embodiment of the present invention, the
선택부(230)는 임시 저장부(220)로부터 하나 이상의 메타 명령어를 독출하고, 독출된 하나 이상의 메타 명령어를 실행할 코어를 N개의 이종 코어(210) 중에서 선택한다. 즉, 선택부(230)는 N개의 이종 코어(210) 중에서 해당 메타 명령어를 가장 잘 실행(처리)할 수 있는 코어를 선택하는 기능을 수행한다. 이 때, 코어의 선택 정보 및 해당 메타 명령어는 변환부(240)로 전달된다.The
본 발명의 일 실시예에 따르면, 선택부(230)는 N개의 이종 코어(210) 각각의 상태 정보, N개의 이종 코어(210) 각각의 메타 명령어 실행 성능 평가 정보, 및 N개의 이종 코어(210) 각각에 포함되는 캐시의 상태 정보 중에서 적어도 하나에 기초하여 메타 명령어를 실행할 코어를 선택할 수 있다. According to an embodiment of the present invention, the
여기서, 코어의 상태 정보는 코어가 아이들(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
또한, 코어의 메타 명령어 실행 성능 평가 정보는 특정 메타 명령어가 N개의 이종 코어(210) 중에서 어느 코어를 통해 가장 잘 실행(처리)될 수 있는지를 나타내는 정보를 의미한다. In addition, the meta-instruction execution performance evaluation information of the core refers to information indicating which core among the N
이 때, 코어의 메타 명령어 실행 성능 평가 정보는 평가값의 형태(일례로, 소정의 메타 명령어에 대한 각 코어의 실행 성능 평가값이 [코어 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
코어의 메타 명령어 실행 성능 평가 정보에 기초하여 메타 명령어를 실행할 코어가 선택되는 경우, 선택부(230)는 해당 메타 명령어에 대해 실행 성능이 높은 코어를 우선적으로 선택할 수 있다.When a core to execute a meta instruction is selected based on the meta instruction execution performance evaluation information of the core, the
그리고, 코어에 포함된 캐시의 상태 정보는 코어 내부의 캐시에 어느 정보의 여유 저장 공간이 있는지 여부를 나타내는 정보를 의미한다. 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
또한, 상기의 코어 선택 요소들은 2 이상이 조합되어 사용될 수도 있다. 이 경우, 선택부(230)는 각각의 선택 요소들에 대해 우선 순위를 부여하는 방법을 통해 2 이상의 선택 요소들을 조합하여 명령어를 처리할 코어를 선택할 수 있다. In addition, the above core selection elements may be used in combination of two or more. In this case, the
변환부(240)는 선택부(230)로부터 전달받은 코어의 선택 정보에 기초하여 해당 메타 명령어를 선택된 코어의 ISA에 적합한 명령어로 변환하고, 변환된 명령어를 선택된 코어로 전달한다. 즉, 변환부(240)는 해당 메타 명령어를 선택된 코어에서 실행 가능한 하위 명령어로 변환하여 코어로 전달한다. 일례로, 선택된 코어가 ARM 프로세서 코어인 경우, 해당 메타 명령어는 ARM 프로세서 코어의 ISA로 변환된다. The
이 때, 변환부(240)는 기본적으로 하나의 메타 명령어를 하나의 하위 명령어로 변환하지만(1:1 명령어 변환), 변환부(240)는 하나의 메타 명령어를 2 이상의 하위 명령어로 변환할 수도 있으며(1:K 명령어 변환), 2 이상의 메타 명령어를 하나의 하위 명령어로 변환할 수도 있다(K:1 명령어 변환). In this case, the
변환부(240)가 하나의 메타 명령어를 하나의 하위 명령어로 변환하는 1:1 명령어 변환의 경우는 "ADD" 명령어, "SUB" 명령어, "MUL" 명령어 등과 같이 모든 이종 코어에서 사용되는 기본적인 명령어들에 대해 적용될 수 있다. In case of 1: 1 instruction conversion in which the
변환부(240)가 하나의 메타 명령어를 2 이상의 하위 명령어로 변환하는 경우는 해당 메타 명령어가 선택된 코어의 명령어 하나와 대응되지 않는 경우(즉, 해당 메타 명령어를 하나의 하위 명령어로 표현하지 못하는 경우)에 발생할 수 있다. 이는 앞서 설명한 바와 같이 메타 명령어가 상위 개념의 추상화된 명령어 구조를 갖기 때문이다. When the
일례로서, 도 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
또한, 변환부(240)가 2 이상의 메타 명령어를 하나의 하위 명령어로 변환하는 경우는 메타 명령어로 표현된 코드의 집합의 효과에 대한 기능 평가 결과가 해당 코어의 특수 명령어(일례로, DSP(Digital Signal Processing) 명령어)와 일치하는 경우에 발생할 수 있다. 이에 따라 2 이상의 메타 명령어가 해당 코어의 하나의 특수 명령어로 치환된다. In addition, when the
일례로, 앞서 설명한 "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
정리하면, 변환부(240)는 하나의 메타 명령어를 적어도 하나의 하위 명령어로 변환하거나 또는 적어도 하나의 메타 명령어를 하나의 하위 명령어로 변환할 수 있다. In summary, the
본 발명의 일 실시예에 따르면, 변환부(240)는 N개의 이종 코어(210)와 각각 연결되고, 메타 명령어를 자신과 연결된 코어에서 실행 가능한 하위 명령어로 변환하여 전달하는 N개의 변환 모듈(241)을 포함할 수 있으며, 선택부(230)는 N개의 변환 모듈(241) 중에서 메타 명령어를 실행할 코어와 연결된 변환 모듈을 선택하는 선택 모듈(231), 및 선택된 변환 모듈로 메타 명령어를 전달하는 전달 모듈(232)을 포함할 수 있다. According to an embodiment of the present invention, the
즉, 변환부(240)는 코어 별 전용 변환 모듈로 구성되고, 선택 모듈(231)은 이러한 변환 모듈(즉, 해당 코어)로 메타 명령을 전달하는 경우 명령어 전달 스케줄링 기능을 수행하며, 전달 모듈(232)는 각 변환 모듈로 메타 명령어를 분산시키는 기능을 수행한다. That is, the
이와 같이, 본 발명의 일 실시예에 따른 복수의 이종 코어를 포함하는 멀티코어 프로세서 시스템(200)은 동일한 종류의 코어를 2 이상 포함하는 멀티코어 프로세서 시스템과 동일하게 동작시킬 수 있게 되고, 이에 따라 2 이상의 명령어를 동시에 처리할 수 있게 된다.
As such, the
도 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
또한, 본 발명의 실시예들은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(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)
상기 멀티코어 프로세서 시스템에서 정의되는 상위 명령어인 메타 명령어를 실행할 코어를 상기 복수의 이종 코어 중에서 선택하는 선택부;
상기 메타 명령어를 상기 선택된 코어에서 실행 가능한 하위 명령어로 변환하여 상기 선택된 코어로 전달하는 변환부를 포함하되,
상기 선택부는 상기 복수의 이종 코어 각각의 상태 정보, 상기 복수의 이종 코어 각각의 메타 명령어 실행 성능 평가 정보, 및 상기 복수의 이종 코어 각각에 포함되는 캐시의 상태 정보 중에서 적어도 하나에 기초하여 상기 메타 명령어를 실행할 코어를 선택하는 것을 특징으로 하는 멀티코어 프로세서 시스템. 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.
메모리로부터 상기 메타 명령어를 수신하여 저장하는 임시 저장부
를 더 포함하되,
상기 선택부는 상기 임시 저장부로부터 하나 이상의 메타 명령어를 독출하고, 상기 독출된 하나 이상의 메타 명령어를 실행할 코어를 선택하는 것을 특징으로 하는 멀티코어 프로세서 시스템. 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.
상기 임시 저장부는 큐(Queue)를 포함하는 것을 특징으로 하는 멀티코어 프로세서 시스템. The method of claim 2,
The temporary storage unit comprises a queue (Queue).
상기 복수의 이종 코어 각각의 상태 정보는
상기 코어가 아이들 상태에 있음을 나타내는 아이들 상태 정보 및 상기 코어가 비지 상태에 있음을 나타내는 비지 상태 정보 중에서 어느 하나를 포함하는 것을 특징으로 하는 멀티코어 프로세서 시스템. 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.
상기 복수의 이종 코어 각각의 메타 명령어 실행 성능 평가 정보는
상기 복수의 이종 코어 각각에 의해 미리 실행된 메타 명령어의 실행 성능을 평가하여 생성되거나 또는 상기 복수의 이종 코어 각각에 의해 실행되는 메타 명령어에 대해 실시간으로 실행 성능을 평가하여 생성되는 것을 특징으로 하는 멀티코어 프로세서 시스템. 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.
상기 변환부는
상기 복수의 이종 코어와 각각 연결되고, 상기 메타 명령어를 자신과 연결된 코어에서 실행 가능한 하위 명령어로 변환하여 전달하는 복수의 변환 모듈
을 포함하는 것을 특징으로 하는 멀티코어 프로세서 시스템. 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.
상기 선택부는
상기 복수의 변환 모듈 중에서 상기 메타 명령어를 실행할 코어와 연결된 변환 모듈을 선택하는 선택 모듈; 및
상기 선택된 변환 모듈로 상기 메타 명령어를 전달하는 전달 모듈
을 포함하는 것을 특징으로 하는 멀티코어 프로세서 시스템. 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.
상기 변환부는 하나의 메타 명령어를 적어도 하나의 하위 명령어로 변환하거나 또는 적어도 하나의 메타 명령어를 하나의 하위 명령어로 변환하는 것을 특징으로 하는 멀티코어 프로세서 시스템. 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.
메모리로부터 상기 메타 명령어를 수신하여 큐에 저장하는 단계
를 더 포함하되,
상기 선택하는 단계는 상기 큐로부터 하나 이상의 메타 명령어를 독출하고, 상기 독출된 하나 이상의 메타 명령어 각각을 실행할 코어를 선택하는 것을 특징으로 하는 멀티코어 프로세서 시스템의 제어 방법. 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.
상기 선택하는 단계는 상기 복수의 이종 코어와 각각 연결되고, 상기 메타 명령어를 자신과 연결된 코어에서 실행 가능한 하위 명령어로 변환하여 전달하는 복수의 변환 모듈 중에서 상기 메타 명령어를 실행할 코어와 연결된 변환 모듈을 선택하는 단계; 및 선택된 변환 모듈로 상기 메타 명령어를 전달하는 단계를 포함하고,
상기 변환하는 단계는 상기 선택된 변환 모듈을 통해 상기 메타 명령어를 상기 선택된 변환 모듈과 연결된 코어의 하위 명령어로 변환하는 것을 특징으로 하는 멀티코어 프로세서 시스템의 제어 방법. 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.
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101513162B1 (en) * | 2014-02-19 | 2015-04-17 | 주식회사 큐레이소프트 | System for operating secure application |
Citations (4)
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 |
-
2010
- 2010-06-03 KR KR1020100052259A patent/KR101191530B1/en not_active IP Right Cessation
Patent Citations (4)
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 | |
CN104615488B (en) | The method and apparatus of task scheduling in heterogeneous multi-core reconfigurable calculating platform | |
JP5516744B2 (en) | Scheduler, multi-core processor system, and scheduling method | |
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 | |
US9513835B2 (en) | Impact-based migration scheduling from a first tier at a source to a second tier at a destination | |
US20110307903A1 (en) | Soft partitions and load balancing | |
CN105528330A (en) | Load balancing method and device, cluster and many-core processor | |
JP6214469B2 (en) | Vehicle control device | |
CN105045632A (en) | Method and device for implementing lock free queue in multi-core environment | |
JP2009238197A (en) | Control circuit, control method and control program for shared memory | |
KR100883655B1 (en) | Context exchange system and method with reconfigurable processor | |
JP4334598B1 (en) | Information processing apparatus and error correction method | |
KR101603752B1 (en) | Multi mode supporting processor and method using the processor | |
CN103970714A (en) | Apparatus and method for sharing function logic and reconfigurable processor thereof | |
US20120210074A1 (en) | Dual mode reader writer lock | |
JP5776813B2 (en) | Multi-core processor system, control method and control program for multi-core processor system | |
KR101191530B1 (en) | Multi-core processor system having plurality of heterogeneous core and Method for controlling the same | |
US9588817B2 (en) | Scheduling method and scheduling system for assigning application to processor | |
US20120017070A1 (en) | Compile system, compile method, and storage medium storing compile program | |
US20150243259A1 (en) | Method and apparatus for transferring data in a computer | |
CN112416539B (en) | Multi-task parallel scheduling method for heterogeneous many-core processor | |
JP2019164510A (en) | Storage system and IO processing control method | |
US9619277B2 (en) | Computer with plurality of processors sharing process queue, and process dispatch processing method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
PA0109 | Patent application |
Patent event code: PA01091R01D Comment text: Patent Application Patent event date: 20100603 |
|
PA0201 | Request for examination | ||
PG1501 | Laying open of application | ||
PE0902 | Notice of grounds for rejection |
Comment text: Notification of reason for refusal Patent event date: 20111223 Patent event code: PE09021S01D |
|
E701 | Decision to grant or registration of patent right | ||
PE0701 | Decision of registration |
Patent event code: PE07011S01D Comment text: Decision to Grant Registration Patent event date: 20120830 |
|
GRNT | Written decision to grant | ||
PR0701 | Registration of establishment |
Comment text: Registration of Establishment Patent event date: 20121009 Patent event code: PR07011E01D |
|
PR1002 | Payment of registration fee |
Payment date: 20121009 End annual number: 3 Start annual number: 1 |
|
PG1601 | Publication of registration | ||
FPAY | Annual fee payment |
Payment date: 20151001 Year of fee payment: 4 |
|
PR1001 | Payment of annual fee |
Payment date: 20151001 Start annual number: 4 End annual number: 4 |
|
FPAY | Annual fee payment |
Payment date: 20161004 Year of fee payment: 5 |
|
PR1001 | Payment of annual fee |
Payment date: 20161004 Start annual number: 5 End annual number: 5 |
|
LAPS | Lapse due to unpaid annual fee |