KR20190013063A - Method for controlling accelerator of heterogeneous system, and heterogeneous system for performing the same - Google Patents

Method for controlling accelerator of heterogeneous system, and heterogeneous system for performing the same Download PDF

Info

Publication number
KR20190013063A
KR20190013063A KR1020170097032A KR20170097032A KR20190013063A KR 20190013063 A KR20190013063 A KR 20190013063A KR 1020170097032 A KR1020170097032 A KR 1020170097032A KR 20170097032 A KR20170097032 A KR 20170097032A KR 20190013063 A KR20190013063 A KR 20190013063A
Authority
KR
South Korea
Prior art keywords
heterogeneous system
power
computing devices
host processor
application
Prior art date
Application number
KR1020170097032A
Other languages
Korean (ko)
Other versions
KR102034660B1 (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 KR1020170097032A priority Critical patent/KR102034660B1/en
Priority to PCT/KR2018/000918 priority patent/WO2019027111A1/en
Publication of KR20190013063A publication Critical patent/KR20190013063A/en
Application granted granted Critical
Publication of KR102034660B1 publication Critical patent/KR102034660B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/329Power saving characterised by the action undertaken by task scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3293Power saving characterised by the action undertaken by switching to a less power-consuming processor, e.g. sub-CPU
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3296Power saving characterised by the action undertaken by lowering the supply or operating voltage
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5094Allocation of resources, e.g. of the central processing unit [CPU] where the allocation takes into account power or heat criteria
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management
    • Y02D10/172
    • Y02D10/24

Landscapes

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

Abstract

Provided is a heterogeneous system to increase power efficiency and communication performance. The heterogeneous system comprises: a plurality of calculation devices for executing an application; and a host processor connected to the calculation devices and controlling power supplied to the calculation devices. The host processor confirms one or more calculation devices used for execution of the application among the calculation devices and controls idle power of the remaining calculation devices except for the confirmed calculation device to be minimized during execution of the application.

Description

이종 시스템의 가속기 제어 방법 및 이를 수행하기 위한 이종 시스템 {METHOD FOR CONTROLLING ACCELERATOR OF HETEROGENEOUS SYSTEM, AND HETEROGENEOUS SYSTEM FOR PERFORMING THE SAME}TECHNICAL FIELD The present invention relates to an accelerator control method for a heterogeneous system and a heterogeneous system for performing the same,

본 명세서에서 개시되는 실시예들은 이종 시스템에 포함되는 복수의 가속기들을 제어하는 방법 및 이를 수행하기 위한 이종 시스템에 관한 것이다.The embodiments disclosed herein relate to a method for controlling a plurality of accelerators included in a heterogeneous system and a heterogeneous system for performing the same.

이종 시스템(heterogeneous system)이란 CPU와 복수의 가속기(accelerator)들을 포함하는 시스템을 의미한다.A heterogeneous system is a system that includes a CPU and a plurality of accelerators.

이종 시스템에서 애플리케이션을 실행할 때에는, 통상적으로 이종 시스템에 포함된 복수의 가속기들 중에서 가장 높은 성능을 얻을 수 있는 일부의 가속기들만이 사용된다. 하지만, 사용되지 않는 가속기들도 약 수 내지 수십 와트의 유휴 전력을 소비함으로써 전체 전력 소모의 상당 부분을 차지할 수 있다.When running an application in a heterogeneous system, only some of the accelerators, which typically achieve the highest performance among a plurality of accelerators included in a heterogeneous system, are used. However, unused accelerators can occupy a significant portion of the total power consumption by consuming about several to several tens of watts of idle power.

또한, 가속기들은 일반적으로 PCI-E 버스를 통해 CPU와 연결되는데, CPU가 지원하는 PCI-E 레인(lane)의 개수에 한계가 있어, 다수의 가속기들을 한 번에 연결하려면 중간에 PCI-E 스위치를 두고 대역폭을 나누어 써야 하며, 따라서 통신의 속도 및 품질이 저하되며 전력 소모가 많아지는 문제점이 발생할 수 있다. 특히, 이종 시스템에 포함된 가속기들 중에서 일부의 가속기들만이 애플리케이션의 실행에 사용되는 상황에서, 사용되지 않는 가속기들까지 PCI-E 스위치를 통해 CPU와의 연결을 유지하면 불필요한 시간 지연, 전력 소모 및 상호 간섭이 발생하는 문제가 있다.In addition, accelerators are usually connected to the CPU via a PCI-E bus. The number of PCI-E lanes supported by the CPU is limited. To connect multiple accelerators at one time, a PCI-E switch It is necessary to divide the bandwidth into two parts, thereby reducing the speed and quality of communication and increasing power consumption. Especially, in the situation where only some of the accelerators included in the heterogeneous system are used to execute the application, maintaining the connection with the CPU through the PCI-E switch to the unused accelerators causes unnecessary time delay, power consumption, There is a problem that interference occurs.

이러한 문제점은 모두 애플리케이션이 사용하지 않는 가속기가 시스템의 하드웨어 자원을 소모하기 때문에 발생하는 것이다.All of these problems arise because accelerators that are not used by the application consume system hardware resources.

관련하여 선행기술 문헌인 미국등록특허 제9,672,046호에서는 복수의 프로세서 기능들을 수행하기 위한 복수의 프로세서 컴포넌트들 중 하나와 연관된 전력 플레인을 포함하며, 작업량 특성 및 전력 제약 조건 등에 기초하여 전력 플레인 각각에 대한 전력을 동적으로 조정하는 내용을 개시하고 있다.Related Prior Art U.S. Patent No. 9,672,046, which is incorporated herein by reference in its entirety, includes a power plane associated with one of a plurality of processor components for performing a plurality of processor functions, wherein each of the power planes, based on workload characteristics and power constraints, And the power is dynamically adjusted.

한편, 전술한 배경기술은 발명자가 본 발명의 도출을 위해 보유하고 있었거나, 본 발명의 도출 과정에서 습득한 기술 정보로서, 반드시 본 발명의 출원 전에 일반 공중에게 공개된 공지기술이라 할 수는 없다.On the other hand, the background art described above is technical information acquired by the inventor for the derivation of the present invention or obtained in the derivation process of the present invention, and can not necessarily be a known technology disclosed to the general public before the application of the present invention .

본 명세서에서 개시되는 실시예들은, 전력 효율 및 통신 성능을 증가시킬 수 있도록 이종 시스템에 포함되는 복수의 가속기들을 제어하는 방법 및 이를 수행하기 위한 이종 시스템에 관한 것이다.The embodiments disclosed herein relate to a method of controlling a plurality of accelerators included in a heterogeneous system so as to increase power efficiency and communication performance and to a heterogeneous system for performing the same.

상술한 기술적 과제를 달성하기 위한 기술적 수단으로서, 일 실시예에 따르면, 이종 시스템은, 애플리케이션을 실행하기 위한 복수의 계산 디바이스들 및 상기 복수의 계산 디바이스들과 연결되며, 상기 복수의 계산 디바이스들에 공급되는 전력을 제어하는 호스트 프로세서를 포함하며, 상기 호스트 프로세서는, 상기 복수의 계산 디바이스들 중에서 상기 애플리케이션의 실행에 사용되는 적어도 하나의 계산 디바이스를 확인하고, 상기 애플리케이션의 실행 중에는 상기 확인된 적어도 하나의 계산 디바이스를 제외한 나머지 계산 디바이스의 유휴 전력이 최소가 되도록 제어할 수 있다.As a technical means for achieving the above-mentioned technical object, according to an embodiment, a heterogeneous system includes a plurality of calculation devices for executing an application and a plurality of calculation devices connected to the plurality of calculation devices, Wherein the host processor identifies at least one computing device to be used for execution of the application from among the plurality of computing devices, and during execution of the application, the identified at least one So that the idle power of the remaining calculation devices except for the calculation device of the first calculation device can be minimized.

다른 실시예에 따르면, 이종 시스템의 계산 디바이스 제어 방법은, 상기 이종 시스템에 포함된 복수의 계산 디바이스들 중에서 애플리케이션의 실행에 사용되는 적어도 하나의 계산 디바이스를 확인하는 단계 및 상기 애플리케이션의 실행 중에는, 상기 확인된 적어도 하나의 계산 디바이스를 제외한 나머지 계산 디바이스의 유휴 전력이 최소가 되도록 제어하는 단계를 포함할 수 있다.According to another embodiment, a method of controlling a computing device of a heterogeneous system comprises the steps of: identifying at least one computing device to be used for execution of an application among a plurality of computing devices included in the heterogeneous system; And controlling the idle power of the remaining calculation devices except the identified at least one calculation device to be minimum.

또 다른 실시예에 따르면, 이종 시스템의 계산 디바이스 제어 방법을 수행하기 위한 컴퓨터 프로그램으로서, 이종 시스템의 계산 디바이스 제어 방법은, 상기 이종 시스템에 포함된 복수의 계산 디바이스들 중에서 애플리케이션의 실행에 사용되는 적어도 하나의 계산 디바이스를 확인하는 단계 및 상기 애플리케이션의 실행 중에는, 상기 확인된 적어도 하나의 계산 디바이스를 제외한 나머지 계산 디바이스의 유휴 전력이 최소가 되도록 제어하는 단계를 포함할 수 있다.According to yet another embodiment, there is provided a computer program for performing a computing device control method of a heterogeneous system, the computing device control method of a heterogeneous system comprising at least one of a plurality of computing devices included in the heterogeneous system, Checking one computing device and controlling the idle power of the remaining computing devices except for the at least one computing device to be minimized during execution of the application.

또 다른 실시예에 따르면, 이종 시스템의 계산 디바이스 제어 방법을 수행하는 프로그램이 기록된 컴퓨터 판독 가능한 기록매체로서, 이종 시스템의 계산 디바이스 제어 방법은, 상기 이종 시스템에 포함된 복수의 계산 디바이스들 중에서 애플리케이션의 실행에 사용되는 적어도 하나의 계산 디바이스를 확인하는 단계 및 상기 애플리케이션의 실행 중에는, 상기 확인된 적어도 하나의 계산 디바이스를 제외한 나머지 계산 디바이스의 유휴 전력이 최소가 되도록 제어하는 단계를 포함할 수 있다.According to another embodiment, a computer-readable recording medium on which a program for performing a computing device control method of a heterogeneous system is recorded, the computing device control method of a heterogeneous system comprising: Determining at least one computing device to be used in execution of the application and controlling the idle power of the remaining computing devices except for the at least one computing device to be minimized during execution of the application.

전술한 과제 해결 수단 중 어느 하나에 의하면, 이종 시스템에 포함된 복수의 가속기들 중에서, 애플리케이션의 실행에 사용되지 않는 가속기들의 유휴 전력이 최소가 되도록 제어함으로써 이종 시스템의 평균 전력 소모를 줄일 수 있는 효과를 기대할 수 있다.According to any one of the above-mentioned means for solving the problems, it is possible to reduce the average power consumption of the heterogeneous system by controlling the idle power of the accelerators not used for execution of the application to be the smallest among the plurality of accelerators included in the heterogeneous system Can be expected.

또한, 이종 시스템에 포함된 복수의 가속기들 중에서, 애플리케이션의 실행에 사용되는 가속기들만이 CPU와의 연결을 유지하도록 함으로써, CPU와 가속기들간의 연결을 스위칭하는 과정에서 발생할 수 있는 상호 간섭, 시간 지연 및 전력 소모를 감소시키는 효과를 기대할 수 있다.In addition, among the plurality of accelerators included in the heterogeneous system, only the accelerators used in the execution of the application maintain the connection with the CPU, so that the mutual interference, the time delay, and the like which may occur in switching the connection between the CPU and the accelerators An effect of reducing power consumption can be expected.

또한, 전체 시스템의 전력 예산 및 CPU(또는 PCI-E 컨트롤러)가 제공하는 PCI-E 레인의 개수에 제한되지 않고, 여러 개의 가속기를 모두 시스템에 장착한 뒤, 애플리케이션이 실제로 사용하는 가속기들만이 대부분의 전력을 소모하고 PCI-E 레인을 할당받도록 함으로써, 서로 다른 가속기를 필요로 하는 다양한 애플리케이션을 하나의 이종 시스템에서 실행하도록 할 수 있는 장점이 있다.Also, not all of the power budget of the entire system and the number of PCI-E lanes provided by the CPU (or PCI-E controller), after installing multiple accelerators into the system, only the accelerators actually used by the application And the PCI-E lanes are assigned to each of the different types of accelerators, so that various applications requiring different accelerators can be executed in one heterogeneous system.

개시되는 실시예들에서 얻을 수 있는 효과는 이상에서 언급한 효과들로 제한되지 않으며, 언급하지 않은 또 다른 효과들은 아래의 기재로부터 개시되는 실시예들이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.The effects obtained in the disclosed embodiments are not limited to the effects mentioned above, and other effects not mentioned are obvious to those skilled in the art to which the embodiments disclosed from the following description belong It can be understood.

도 1은 일 실시예에 따른 이종 시스템의 구성을 도시한 도면이다.
도 2는 일 실시예에 따른 이종 시스템의 가속기 제어 방법을 설명하기 위한 순서도이다.
도 3은 일 실시예에 따라 이종 시스템에 포함된 일부 가속기들의 유휴 전력을 최소로 제어한 상태를 도시한 도면이다.
도 4는 일 실시예에 따라 이종 시스템에서 CPU와 가속기들간의 연결을 제어하는 방법을 설명하기 위한 순서도이다.
도 5는 일 실시예에 따라 이종 시스템에서 애플리케이션의 실행에 사용되는 가속기들만이 CPU와의 연결을 유지하도록 제어한 상태를 도시한 도면이다.
FIG. 1 is a diagram illustrating a configuration of a heterogeneous system according to an embodiment.
2 is a flow chart for explaining an accelerator control method of a heterogeneous system according to an embodiment.
3 is a diagram illustrating a state in which idle power of some accelerators included in a heterogeneous system is minimally controlled according to an exemplary embodiment.
4 is a flowchart illustrating a method of controlling a connection between a CPU and accelerators in a heterogeneous system according to an exemplary embodiment of the present invention.
5 is a view showing a state in which only accelerators used in execution of an application in a heterogeneous system according to an embodiment are controlled to maintain a connection with a CPU.

아래에서는 첨부한 도면을 참조하여 다양한 실시예들을 상세히 설명한다. 아래에서 설명되는 실시예들은 여러 가지 상이한 형태로 변형되어 실시될 수도 있다. 실시예들의 특징을 보다 명확히 설명하기 위하여, 이하의 실시예들이 속하는 기술분야에서 통상의 지식을 가진 자에게 널리 알려져 있는 사항들에 관해서 자세한 설명은 생략하였다. 그리고, 도면에서 실시예들의 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.Various embodiments are described in detail below with reference to the accompanying drawings. The embodiments described below may be modified and implemented in various different forms. In order to more clearly describe the features of the embodiments, detailed descriptions of known matters to those skilled in the art are omitted. In the drawings, parts not relating to the description of the embodiments are omitted, and like parts are denoted by similar reference numerals throughout the specification.

명세서 전체에서, 어떤 구성이 다른 구성과 "연결"되어 있다고 할 때, 이는 ‘직접적으로 연결’되어 있는 경우뿐 아니라, ‘그 중간에 다른 구성을 사이에 두고 연결’되어 있는 경우도 포함한다. 또한, 어떤 구성이 어떤 구성을 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한, 그 외 다른 구성을 제외하는 것이 아니라 다른 구성들을 더 포함할 수도 있음을 의미한다.Throughout the specification, when a configuration is referred to as being "connected" to another configuration, it includes not only a case of being directly connected, but also a case of being connected with another configuration in between. In addition, when a configuration is referred to as "including ", it means that other configurations may be included, as well as other configurations, as long as there is no specially contradicted description.

이하 첨부된 도면을 참고하여 실시예들을 상세히 설명하기로 한다.Hereinafter, embodiments will be described in detail with reference to the accompanying drawings.

도 1은 일 실시예에 따른 이종 시스템의 구성을 도시한 도면이다. 도 1을 참조하면, 일 실시예에 따른 이종 시스템(100)은 CPU(110), PCI-E 컨트롤러(120), PCI-E 스위치(130) 및 복수의 가속기들(141, 142, 143, 144)을 포함할 수 있다. 도 1에서는 이종 시스템(100)이 4개의 가속기들(141, 142, 143, 144)을 포함하는 것으로 도시하였으나, 이에 한정되지 않고 다양한 개수의 계산 디바이스들을 포함할 수 있음은 자명하다.FIG. 1 is a diagram illustrating a configuration of a heterogeneous system according to an embodiment. 1, a disparate system 100 according to one embodiment includes a CPU 110, a PCI-E controller 120, a PCI-E switch 130, and a plurality of accelerators 141, 142, 143, 144 ). Although FIG. 1 illustrates the heterogeneous system 100 as including four accelerators 141, 142, 143, and 144, it is apparent that the present invention is not limited thereto and may include various numbers of calculation devices.

CPU(110)는 범용 프로세서로서 이종 시스템(100)의 전체적인 동작을 제어하며, ‘호스트 프로세서’라고도 한다. 이종 시스템(100)의 운영체제가 CPU(110)에서 실행될 수 있다. CPU(110)는 가속기들(141, 142, 143, 144)의 동작을 제어할 수 있다. 또한, CPU(110)에는 메인 메모리(미도시)가 연결될 수 있다.The CPU 110 controls the overall operation of the heterogeneous system 100 as a general purpose processor, and is also referred to as a " host processor ". The operating system of the heterogeneous system 100 can be executed in the CPU 110. [ The CPU 110 may control the operation of the accelerators 141, 142, 143 and 144. A main memory (not shown) may be connected to the CPU 110.

PCI-E 컨트롤러(120)는 CPU(110)와 가속기들(141, 142, 143, 144)간의 연결을 제공하기 위한 인터페이스이다. PCI-E 컨트롤러(120)는 CPU(110)의 외부에 별도로 존재할 수도 있고, 또는 CPU(110)에 통합되어 있을 수도 있다. 즉, 도 1에서는 CPU(110)와 별도의 구성으로 PCI-E 컨트롤러(120)가 존재하는 것으로 도시하였으나, CPU(110)가 직접 PCI-E 컨트롤러(120)의 역할까지 수행할 수도 있다. PCI-E 컨트롤러(120)는 미리 정해진 개수만큼의 PCI-E 레인(lane)을 제공한다.The PCI-E controller 120 is an interface for providing a connection between the CPU 110 and the accelerators 141, 142, 143 and 144. The PCI-E controller 120 may be separately provided outside the CPU 110, or may be integrated into the CPU 110. That is, although the PCI-E controller 120 is illustrated as being separate from the CPU 110 in FIG. 1, the CPU 110 may directly perform the role of the PCI-E controller 120. The PCI-E controller 120 provides a predetermined number of PCI-E lanes.

PCI-E 스위치(130)는 CPU(100)와 가속기들(141, 142, 143, 144)간의 통신을 중계하는 역할을 하는 구성이다. 즉, 도 1에 도시된 바와 같이 PCI-E 컨트롤러(120)와 PCI-E 스위치(130)는 제1 레인을 통해 연결되고, PCI-E 스위치(130)와 가속기들(141, 142, 143, 144)은 제2 레인을 통해 연결되며, PCI-E 스위치(130)는 제1 레인과 제2 레인 사이를 중계한다.The PCI-E switch 130 is a configuration for relaying communication between the CPU 100 and the accelerators 141, 142, 143, and 144. 1, the PCI-E controller 120 and the PCI-E switch 130 are connected through a first lane, and the PCI-E switch 130 and the accelerators 141, 142, 143, 144 are connected through a second lane, and the PCI-E switch 130 relays between the first lane and the second lane.

PCI-E 스위치(130)를 사용하는 이유는, 가속기들(141, 142, 143, 144)이 필요로 하는 PCI-E 레인들의 개수(제2 레인에 포함된 PCI-E 레인들의 개수)가 PCI-E 컨트롤러(120)가 제공하는 PCI-E 레인들의 개수(제1 레인에 포함된 PCI-E 레인들의 개수)보다 많기 때문이다. 즉, PCI-E 컨트롤러(120)가 제공하는 PCI-E 레인들만으로는 모든 가속기들(141, 142, 143, 144)을 연결할 수 없을 때, PCI-E 스위치(130)에 PCI-E 컨트롤러(120)에서 나오는 PCI-E 레인들을 연결하고, PCI-E 스위치(130)는 다시 가속기들(141, 142, 143, 144)과 연결된다.The reason for using the PCI-E switch 130 is that the number of PCI-E lanes (the number of PCI-E lanes included in the second lane) required by the accelerators 141, 142, 143, -E is greater than the number of PCI-E lanes provided by the controller 120 (the number of PCI-E lanes included in the first lane). That is, when all of the accelerators 141, 142, 143, and 144 can not be connected by only the PCI-E lanes provided by the PCI-E controller 120, the PCI- And the PCI-E switch 130 is again connected to the accelerators 141, 142, 143, and 144. The PCI-

가속기들(141, 142, 143, 144)은 ‘계산 디바이스’라고도 하며, 범용의 CPU와는 달리 특정 패턴의 연산에 특화된 프로세서로 구성될 수 있다. 예를 들어, GPU, Intel Xeon Phi 코프로세서 또는 FPGA 등이 가속기가 될 수 있다.The accelerators 141, 142, 143, and 144 are also referred to as 'computing devices' and, unlike general-purpose CPUs, For example, a GPU, an Intel Xeon Phi coprocessor, or an FPGA can be an accelerator.

가속기들(141, 142, 143, 144)은 CPU(110)의 제어에 따라서 각각에 특화된 연산을 수행한다. 다시 말해, 이종 시스템(100)에서 애플리케이션이 실행되면, 각각의 가속기들(141, 142, 143, 144)은 자신에게 특화된 특정 패턴의 연산을 수행하고, 나머지 연산 및 I/O 작업이 CPU(110)에 의해서 수행될 수 있다. 또한, 가속기들(141, 142, 143, 144) 각각에는 디바이스 메모리(미도시)가 연결될 수 있다.Accelerators 141, 142, 143, and 144 perform operations specific to each of them under the control of CPU 110. In other words, when the application is executed in the heterogeneous system 100, each of the accelerators 141, 142, 143, and 144 performs an operation of a specific pattern specific thereto, and the remaining operations and I / ). ≪ / RTI > In addition, a device memory (not shown) may be connected to each of the accelerators 141, 142, 143, and 144.

이종 시스템(100)에 포함된 가속기들(141, 142, 143, 144)은, 서로 동작 방식이 상이할 수도 있고, 동작 방식은 동일하지만 세부 아키텍처가 다를 수도 있고, 동작 방식 및 세부 아키텍처가 모두 다를 수도 있다. 따라서, 애플리케이션에 따라서 최선의 가속기를 선택하여 실행시킴으로써 전체 시스템의 효율을 극대화할 수 있다.The accelerators 141, 142, 143, and 144 included in the heterogeneous system 100 may operate in different ways, have the same operation method, but may have different detailed architectures, It is possible. Therefore, by selecting and executing the best accelerator according to the application, the efficiency of the entire system can be maximized.

이와 같이, 이종 시스템(100)에 포함된 가속기들(141, 142, 143, 144) 중에서 가장 높은 성능을 얻을 수 있는 일부 가속기만을 선택하여 사용할 경우, 나머지 가속기들은 유휴 상태에 있으면서 계속 유휴 전력을 소모하게 된다. 따라서, 이하에서 설명되는 일 실시예에서는 애플리케이션의 실행에 사용되지 않는 가속기의 유휴 전력을 최소화함으로써 이종 시스템(100)의 평균 소비 전력을 감소시키는 방법을 제시한다.When only some of the accelerators 141, 142, 143, and 144 included in the heterogeneous system 100 are selected and used, the remaining accelerators are idle and consume idle power continuously . Thus, in one embodiment described below, a method for reducing the average power consumption of the heterogeneous system 100 by minimizing the idle power of the accelerator not used in the execution of the application is presented.

또한, 이종 시스템(100)에 포함된 가속기들(141, 142, 143, 144) 중에서 가장 높은 성능을 얻을 수 있는 일부 가속기만을 선택하여 사용할 경우, 사용되지 않는 나머지 가속기들까지 CPU(110)와의 연결을 유지한다면 PCI-E 스위치(130)는 CPU(110)와 가속기들(141, 142, 143, 144) 사이에서 계속해서 라우팅 동작을 수행해야 하므로, PCI-E 스위치(130)의 오버헤드가 늘어나고, 통신 상호간의 간섭이 발생하며, 라우팅 동작으로 인해 시간이 지연되고 추가적인 전력 소모가 발생할 수 있다. 따라서, 이하에서 설명되는 일 실시예에서는 애플리케이션의 실행에 사용되는 가속기만이 CPU(110)와의 연결을 유지하도록 함으로써 통신 성능 및 전력 효율을 높일 수 있는 방법을 제시한다.When only some of the accelerators 141, 142, 143, and 144 included in the heterogeneous system 100 are selected and used, the remaining unaccelerated accelerators are connected to the CPU 110 , The overhead of the PCI-E switch 130 is increased because the PCI-E switch 130 must perform the routing operation between the CPU 110 and the accelerators 141, 142, 143, and 144, , Inter-communication interference occurs, time delay due to routing operation, and additional power consumption may occur. Therefore, in the embodiment described below, only the accelerator used for executing the application maintains the connection with the CPU 110, thereby suggesting a method of improving communication performance and power efficiency.

이하에서는 일 실시예에 따라 이종 시스템(100)에 포함된 가속기들(141, 142, 143, 144)을 제어하는 방법을 도 2 내지 도 5를 참조하여 자세히 설명한다. 이하에서 설명되는 실시예에서는 이종 시스템(100)에서 애플리케이션을 실행할 때 제1 가속기(141) 및 제3 가속기(143)만을 사용한다고 가정한다.Hereinafter, a method of controlling the accelerators 141, 142, 143, and 144 included in the heterogeneous system 100 according to an exemplary embodiment will be described in detail with reference to FIGS. 2 to 5. FIG. In the embodiment described below, it is assumed that only the first accelerator 141 and the third accelerator 143 are used when the application is executed in the heterogeneous system 100. [

도 2는 일 실시예에 따른 이종 시스템의 가속기 제어 방법을 설명하기 위한 순서도이다. 도 2를 참조하면, 201 단계에서 CPU(110)는 이종 시스템(100)에 포함된 복수의 가속기들(141, 142, 143, 144) 중에서 애플리케이션이 사용하는 적어도 하나의 가속기를 결정한다. 즉, CPU(110)는 이종 시스템(100)에서 애플리케이션을 실행할 때 복수의 가속기들(141, 142, 143, 144) 중에서 제1 가속기(141) 및 제3 가속기(143)만이 사용됨을 확인한다. 2 is a flow chart for explaining an accelerator control method of a heterogeneous system according to an embodiment. Referring to FIG. 2, in step 201, the CPU 110 determines at least one accelerator used by an application among a plurality of accelerators 141, 142, 143, and 144 included in the heterogeneous system 100. That is, the CPU 110 confirms that only the first accelerator 141 and the third accelerator 143 are used among the plurality of accelerators 141, 142, 143, 144 when the application is executed in the heterogeneous system 100.

이때, CPU(110)는 이종 시스템(100)에서 애플리케이션이 실행되기 이전에, 또는 실행되는 중에 각 가속기에 대한 사용 여부를 확인할 수 있다. 어떤 가속기를 사용할 것인지는 애플리케이션에서 지정할 수도 있고, 애플리케이션을 실행시키는 런타임 시스템에서 지정할 수도 있고, 또는 이종 시스템(100)의 사용자가 지정할 수도 있다.At this time, the CPU 110 can confirm whether or not the accelerator is used before or during execution of the application in the heterogeneous system 100. Which accelerator to use may be specified by the application, by a runtime system that executes the application, or by a user of the heterogeneous system 100.

202 단계에서 CPU(100)는 결정된 가속기들(141, 143) 이외의 나머지 가속기들(142, 144)의 유휴 전력이 최소가 되도록 제어한다. 예를 들어, CPU(110)는 ACPI(Advanced Configuration and Power Interface) 규격에 따라서 가속기들(141, 142, 143, 144)에 공급되는 전력을 제어할 수 있다. In step 202, the CPU 100 controls the idle power of the remaining accelerators 142 and 144 other than the determined accelerators 141 and 143 to be the minimum. For example, the CPU 110 can control the power supplied to the accelerators 141, 142, 143, and 144 according to the ACPI (Advanced Configuration and Power Interface) standard.

이때, ACPI는 소프트웨어적으로 컴퓨터를 구성하는 하드웨어 부품의 전원 관리를 가능하게 하는 표준 규격으로서, 가속기와 같이 컴퓨터에 장착된 각 개별 장치에 대한 전원 관리 규격을 포함한다. ACPI에서는 장치의 전원 상태를 4가지(D0, D1, D2, D3)로 정의한다. D0는 장치가 켜져 있고 작동하는 상태를, D3는 장치가 꺼져 있고 작동하지 않는 상태를 의미한다. 그리고, D1 및 D2는 D0와 D3의 중간 상태를 의미한다. 즉, 장치가 소비하는 전력은 D0에서 D3로 갈수록 줄어든다.At this time, ACPI is a standard that allows software to manage power of hardware components constituting a computer, and includes a power management standard for each individual device installed in a computer, such as an accelerator. ACPI defines four power states of the device (D0, D1, D2, D3). D0 means that the device is on and in operation, and D3 means that the device is off and inoperative. D1 and D2 mean the intermediate state between D0 and D3. That is, the power consumed by the device decreases from D0 to D3.

CPU(110)는 가속기들(141, 142, 143, 144)의 장치 드라이버에 명령을 전송함으로써 가속기들(141, 142, 143, 144)의 전원 상태를 D0 내지 D3 중에서 어느 하나로 제어할 수 있다.The CPU 110 can control the power state of the accelerators 141, 142, 143 and 144 to any one of D0 to D3 by transmitting a command to the device drivers of the accelerators 141, 142, 143 and 144.

따라서, 202 단계에서 CPU(110)는 제1 가속기(141) 및 제3 가속기(143)에는 D0 상태로 전환하라는 명령을 전송하고, 제2 가속기(142) 및 제4 가속기(144)에는 D3 상태로 전환하라는 명령을 전송할 수 있다. 또는, CPU(110)는 사용되지 않는 제2 가속기(142) 및 제4 가속기(144)에서 D3보다 높은 전원 상태를 필요로 한다면, D1 또는 D2 상태로 전환하라는 명령을 제2 가속기(142) 및 제4 가속기(144)에 전송할 수 있다. 즉, CPU(110)는 사용되지 않는 가속기들(142, 144)이 필요로 하는 최소한의 전력만을 사용되지 않는 가속기들(142, 144)이 유휴 전력으로서 소비하도록 제어할 수 있다.Accordingly, in step 202, the CPU 110 transmits a command to the first accelerator 141 and the third accelerator 143 to switch to the D0 state, while the second accelerator 142 and the fourth accelerator 144 send the D3 state To < / RTI > Alternatively, if the CPU 110 requires a higher power state than D3 at the unused second accelerator 142 and the fourth accelerator 144, the second accelerator 142 and / To the fourth accelerator 144. That is, the CPU 110 can control the accelerators 142 and 144, which are not used, to consume only the minimum power required by the unused accelerators 142 and 144 as idle power.

도 3에는 일 실시예에 따라 CPU(110)가 일부 가속기들(142, 144)의 유휴 전력을 최소로 제어한 상태를 도시하였다. 도 3을 참조하면, 제1 가속기(141) 및 제3 가속기(143)는 D0 상태로 제어되고, 제2 가속기(142) 및 제4 가속기(144)는 D3 상태로 제어됨을 알 수 있다.FIG. 3 illustrates a state in which the CPU 110 controls the idle power of some of the accelerators 142 and 144 to the minimum according to an embodiment. 3, it can be seen that the first accelerator 141 and the third accelerator 143 are controlled to the D0 state and the second accelerator 142 and the fourth accelerator 144 are controlled to the D3 state.

상기 실시예에서는 ACPI 규격에 따라서 가속기들(141, 142, 143, 144)의 전력 공급을 제어하는 것으로 설명하였지만, 이는 하나의 예시일 뿐 CPU(110)는 다양한 방식으로 사용되지 않는 가속기들(142, 144)의 유휴 전력이 최소가 되도록 제어할 수 있다.In the above embodiment, the power supply of the accelerators 141, 142, 143 and 144 is controlled according to the ACPI standard. However, this is merely an example, and the CPU 110 may use the accelerators 142 , 144 can be controlled to be the minimum.

203 단계에서 PCI-E 스위치(130)는 애플리케이션의 실행시 사용되는 것으로 결정된 가속기들(141, 143)만이 CPU(110)와의 연결을 유지하도록 제어할 수 있다. PCI-E 스위치(130)가 CPU(110)와 가속기들(141, 142, 143, 144)간의 연결을 제어하는 구체적인 방법을 도 4 및 도 5를 참조하여 설명한다.In step 203, the PCI-E switch 130 can control only the accelerators 141 and 143, which are determined to be used when the application is executed, to maintain a connection with the CPU 110. [ A specific method by which the PCI-E switch 130 controls the connection between the CPU 110 and the accelerators 141, 142, 143, and 144 will be described with reference to FIGS.

도 4는 일 실시예에 따라 이종 시스템에서 CPU와 가속기들간의 연결을 제어하는 방법을 설명하기 위한 순서도로서, 도 2의 203 단계의 세부 단계들을 포함한다. 도 5는 일 실시예에 따라 이종 시스템에서 애플리케이션의 실행에 사용되는 가속기들만이 CPU와의 연결을 유지하도록 제어한 상태를 도시한 도면이다.FIG. 4 is a flowchart for explaining a method of controlling connection between a CPU and accelerators in a heterogeneous system according to an embodiment, and includes the detailed steps of step 203 of FIG. 5 is a view showing a state in which only accelerators used in execution of an application in a heterogeneous system according to an embodiment are controlled to maintain a connection with a CPU.

도 4를 참조하면, 401 단계에서 PCI-E 스위치(130)는 애플리케이션이 사용하는 가속기들(141, 143)이 필요로 하는 PCI-E 레인들의 개수(M)를, PCI-E 컨트롤러(120)가 제공하는 PCI-E 레인들의 개수(N)와 비교한다.4, in step 401, the PCI-E switch 130 transmits the number (M) of PCI-E lanes required by the accelerators 141 and 143 used by the application to the PCI-E controller 120, To the number of PCI-E lanes (N) provided by the PCI-E lanes.

도 5를 참조하면, 제1 가속기(141) 및 제3 가속기(143)는 각각 16개의 PCI-E 레인을 필요로 하므로, M은 32가 된다. 또한, 도 5에서 PCI-E 컨트롤러(120)가 제공하는 PCI-E 레인들의 개수는 32개이므로, N은 32가 된다. 따라서, 도 5에 도시된 실시예에 따르면 PCI-E 스위치(130)는 M은 N 이하라고 판단한다.Referring to FIG. 5, since the first accelerator 141 and the third accelerator 143 each require 16 PCI-E lanes, M becomes 32. In FIG. 5, the number of PCI-E lanes provided by the PCI-E controller 120 is 32, so that N becomes 32. Thus, according to the embodiment shown in FIG. 5, the PCI-E switch 130 determines that M is less than or equal to N. FIG.

402 단계에서 PCI-E 스위치(130)는 M이 N 이하인지 여부를 판단하고, M이 N 이하라고 판단되면 403 단계로 진행한다.In step 402, the PCI-E switch 130 determines whether M is equal to or less than N, and proceeds to step 403 if M is less than N. [

403 단계에서 PCI-E 스위치(130)는 제2 레인에 포함된 PCI-E 레인들 중에서 애플리케이션이 사용하는 가속기들(141, 143)에 연결된 PCI-E 레인들을, 제1 레인에 포함된 PCI-E 레인들과 일대일로 대응시킨다.In step 403, the PCI-E switch 130 transmits the PCI-E lanes connected to the accelerators 141 and 143 used by the application among the PCI-E lanes included in the second lane to the PCI- One-to-one correspondence with E lanes.

404 단계에서 PCI-E 스위치(130)는 제1 레인과 제2 레인간의 일대일 대응관계에 따라서 CPU와 가속기들간의 데이터 전송을 중계할 수 있다. 예를 들어, PCI-E 스위치(130)는 제1 레인과 제2 레인들간의 일대일 대응관계를 포함하는 라우팅 테이블을 저장하고, 저장된 라우팅 테이블에 따라 데이터 전송을 중계할 수 있다. 또는, PCI-E 스위치(130)가 PCI-E 레인들간의 일대일 대응관계를 설정하는 기능을 지원한다면, 이를 이용하여 데이터 전송을 중계할 수도 있다.In step 404, the PCI-E switch 130 can relay the data transfer between the CPU and the accelerators according to the one-to-one correspondence between the first lane and the second lane. For example, the PCI-E switch 130 may store a routing table that includes a one-to-one correspondence between the first and second lanes, and may relay the data transmission according to the stored routing table. Alternatively, if the PCI-E switch 130 supports a function of establishing a one-to-one correspondence relationship between PCI-E lanes, data transfer may be relayed using the function.

한편, 402 단계에서 판단을 수행한 결과 M이 N보다 크다면, 405 단계로 진행하여 PCI-E 스위치(130)는 기존 방식에 따라 제1 라인과 제2 라인 사이를 스위칭하여 데이터 전송을 중계할 수 있다.On the other hand, if it is determined in step 402 that M is greater than N, the PCI-E switch 130 switches between the first line and the second line in step 405 and relays data transmission .

이와 같이, PCI-E 스위치(130)는 애플리케이션의 실행에 사용되는 가속기들(141, 143)만이 CPU(110)와의 연결을 유지하도록 함으로써 PCI-E 스위치(130)의 오버헤드를 최소화할 수 있고, 또한 CPU(110)의 제한된 PCI-E 레인을 효율적으로 활용할 수 있다. 결과적으로, PCI-E 스위치(130)의 라우팅 동작으로 인한 전력 소모, 시간 지연 및 상호 간섭을 감소시키는 효과를 기대할 수 있다.In this manner, the PCI-E switch 130 can minimize the overhead of the PCI-E switch 130 by allowing only the accelerators 141 and 143 used in the execution of the application to maintain the connection with the CPU 110 , And can utilize the limited PCI-E lane of the CPU 110 efficiently. As a result, an effect of reducing power consumption, time delay, and mutual interference due to the routing operation of the PCI-E switch 130 can be expected.

이상의 실시예들에서 사용되는 '~부'라는 용어는 소프트웨어 또는 FPGA(field programmable gate array) 또는 ASIC 와 같은 하드웨어 구성요소를 의미하며, '~부'는 어떤 역할들을 수행한다. 그렇지만 '~부'는 소프트웨어 또는 하드웨어에 한정되는 의미는 아니다. '~부'는 어드레싱할 수 있는 저장 매체에 있도록 구성될 수도 있고 하나 또는 그 이상의 프로세서들을 재생시키도록 구성될 수도 있다. 따라서, 일 예로서 '~부'는 소프트웨어 구성요소들, 객체지향 소프트웨어 구성요소들, 클래스 구성요소들 및 태스크 구성요소들과 같은 구성요소들과, 프로세스들, 함수들, 속성들, 프로시저들, 서브루틴들, 프로그램특허 코드의 세그먼트들, 드라이버들, 펌웨어, 마이크로코드, 회로, 데이터, 데이터베이스, 데이터 구조들, 테이블들, 어레이들, 및 변수들을 포함한다.The term " part " used in the above embodiments means a hardware component such as a software or a field programmable gate array (FPGA) or an ASIC, and the 'part' performs certain roles. However, 'part' is not meant to be limited to software or hardware. &Quot; to " may be configured to reside on an addressable storage medium and may be configured to play one or more processors. Thus, by way of example, 'parts' may refer to components such as software components, object-oriented software components, class components and task components, and processes, functions, , Subroutines, segments of program patent code, drivers, firmware, microcode, circuitry, data, databases, data structures, tables, arrays, and variables.

구성요소들과 '~부'들 안에서 제공되는 기능은 더 작은 수의 구성요소들 및 '~부'들로 결합되거나 추가적인 구성요소들과 '~부'들로부터 분리될 수 있다.The functions provided within the components and components may be combined with a smaller number of components and components or separated from additional components and components.

뿐만 아니라, 구성요소들 및 '~부'들은 디바이스 또는 보안 멀티미디어카드 내의 하나 또는 그 이상의 CPU 들을 재생시키도록 구현될 수도 있다.In addition, the components and components may be implemented to play back one or more CPUs in a device or a secure multimedia card.

도 2 내지 도 5를 통해 설명된 실시예에 따른 이종 시스템의 가속기 제어 방법은 컴퓨터에 의해 실행 가능한 명령어 및 데이터를 저장하는, 컴퓨터로 판독 가능한 매체의 형태로도 구현될 수 있다. 이때, 명령어 및 데이터는 프로그램 코드의 형태로 저장될 수 있으며, 프로세서에 의해 실행되었을 때, 소정의 프로그램 모듈을 생성하여 소정의 동작을 수행할 수 있다. 또한, 컴퓨터로 판독 가능한 매체는 컴퓨터에 의해 액세스될 수 있는 임의의 가용 매체일 수 있고, 휘발성 및 비휘발성 매체, 분리형 및 비분리형 매체를 모두 포함한다. 또한, 컴퓨터로 판독 가능한 매체는 컴퓨터 기록 매체일 수 있는데, 컴퓨터 기록 매체는 컴퓨터 판독 가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터와 같은 정보의 저장을 위한 임의의 방법 또는 기술로 구현된 휘발성 및 비휘발성, 분리형 및 비분리형 매체를 모두 포함할 수 있다. 예를 들어, 컴퓨터 기록 매체는 HDD 및 SSD 등과 같은 마그네틱 저장 매체, CD, DVD 및 블루레이 디스크 등과 같은 광학적 기록 매체, 또는 네트워크를 통해 접근 가능한 서버에 포함되는 메모리일 수 있다.The accelerator control method of the heterogeneous system according to the embodiment described with reference to Figs. 2 to 5 may also be embodied in the form of a computer-readable medium for storing instructions and data executable by a computer. At this time, the command and data may be stored in the form of program code, and when executed by the processor, a predetermined program module may be generated to perform a predetermined operation. In addition, the computer-readable medium can be any available media that can be accessed by a computer and includes both volatile and nonvolatile media, removable and non-removable media. The computer-readable medium can also be a computer storage medium, which can be volatile and non-volatile, implemented in any method or technology for storage of information such as computer readable instructions, data structures, program modules or other data, Volatile, removable and non-removable media. For example, the computer recording medium may be a magnetic storage medium such as an HDD and an SSD, an optical recording medium such as a CD, a DVD and a Blu-ray Disc, or a memory included in a server accessible via a network.

또한 도 2 내지 도 5를 통해 설명된 실시예에 따른 이종 시스템의 가속기 제어 방법은 컴퓨터에 의해 실행 가능한 명령어를 포함하는 컴퓨터 프로그램(또는 컴퓨터 프로그램 제품)으로 구현될 수도 있다. 컴퓨터 프로그램은 프로세서에 의해 처리되는 프로그래밍 가능한 기계 명령어를 포함하고, 고레벨 프로그래밍 언어(High-level Programming Language), 객체 지향 프로그래밍 언어(Object-oriented Programming Language), 어셈블리 언어 또는 기계 언어 등으로 구현될 수 있다. 또한 컴퓨터 프로그램은 유형의 컴퓨터 판독가능 기록매체(예를 들어, 메모리, 하드디스크, 자기/광학 매체 또는 SSD(Solid-State Drive) 등)에 기록될 수 있다. The accelerator control method of the heterogeneous system according to the embodiment described with reference to FIGS. 2 to 5 may also be implemented as a computer program (or a computer program product) including instructions executable by the computer. A computer program includes programmable machine instructions that are processed by a processor and can be implemented in a high-level programming language, an object-oriented programming language, an assembly language, or a machine language . The computer program may also be recorded on a computer readable recording medium of a type (e.g., memory, hard disk, magnetic / optical medium or solid-state drive).

따라서 도 2 내지 도 5를 통해 설명된 실시예에 따른 이종 시스템의 가속기 제어 방법은 상술한 바와 같은 컴퓨터 프로그램이 컴퓨팅 장치에 의해 실행됨으로써 구현될 수 있다. 컴퓨팅 장치는 프로세서와, 메모리와, 저장 장치와, 메모리 및 고속 확장포트에 접속하고 있는 고속 인터페이스와, 저속 버스와 저장 장치에 접속하고 있는 저속 인터페이스 중 적어도 일부를 포함할 수 있다. 이러한 성분들 각각은 다양한 버스를 이용하여 서로 접속되어 있으며, 공통 머더보드에 탑재되거나 다른 적절한 방식으로 장착될 수 있다.Therefore, the accelerator control method of the heterogeneous system according to the embodiment described with reference to Figs. 2 to 5 can be implemented by the computer program as described above being executed by the computing device. The computing device may include a processor, a memory, a storage device, a high-speed interface connected to the memory and a high-speed expansion port, and a low-speed interface connected to the low-speed bus and the storage device. Each of these components is connected to each other using a variety of buses and can be mounted on a common motherboard or mounted in any other suitable manner.

여기서 프로세서는 컴퓨팅 장치 내에서 명령어를 처리할 수 있는데, 이런 명령어로는, 예컨대 고속 인터페이스에 접속된 디스플레이처럼 외부 입력, 출력 장치상에 GUI(Graphic User Interface)를 제공하기 위한 그래픽 정보를 표시하기 위해 메모리나 저장 장치에 저장된 명령어를 들 수 있다. 다른 실시예로서, 다수의 프로세서 및(또는) 다수의 버스가 적절히 다수의 메모리 및 메모리 형태와 함께 이용될 수 있다. 또한 프로세서는 독립적인 다수의 아날로그 및(또는) 디지털 프로세서를 포함하는 칩들이 이루는 칩셋으로 구현될 수 있다.Where the processor may process instructions within the computing device, such as to display graphical information to provide a graphical user interface (GUI) on an external input, output device, such as a display connected to a high speed interface And commands stored in memory or storage devices. As another example, multiple processors and / or multiple busses may be used with multiple memory and memory types as appropriate. The processor may also be implemented as a chipset comprised of chips comprising multiple independent analog and / or digital processors.

또한 메모리는 컴퓨팅 장치 내에서 정보를 저장한다. 일례로, 메모리는 휘발성 메모리 유닛 또는 그들의 집합으로 구성될 수 있다. 다른 예로, 메모리는 비휘발성 메모리 유닛 또는 그들의 집합으로 구성될 수 있다. 또한 메모리는 예컨대, 자기 혹은 광 디스크와 같이 다른 형태의 컴퓨터 판독 가능한 매체일 수도 있다.The memory also stores information within the computing device. In one example, the memory may comprise volatile memory units or a collection thereof. In another example, the memory may be comprised of non-volatile memory units or a collection thereof. The memory may also be another type of computer readable medium such as, for example, a magnetic or optical disk.

그리고 저장장치는 컴퓨팅 장치에게 대용량의 저장공간을 제공할 수 있다. 저장 장치는 컴퓨터 판독 가능한 매체이거나 이런 매체를 포함하는 구성일 수 있으며, 예를 들어 SAN(Storage Area Network) 내의 장치들이나 다른 구성도 포함할 수 있고, 플로피 디스크 장치, 하드 디스크 장치, 광 디스크 장치, 혹은 테이프 장치, 플래시 메모리, 그와 유사한 다른 반도체 메모리 장치 혹은 장치 어레이일 수 있다.And the storage device can provide a large amount of storage space to the computing device. The storage device may be a computer readable medium or a configuration including such a medium and may include, for example, devices in a SAN (Storage Area Network) or other configurations, and may be a floppy disk device, a hard disk device, Or a tape device, flash memory, or other similar semiconductor memory device or device array.

상술된 실시예들은 예시를 위한 것이며, 상술된 실시예들이 속하는 기술분야의 통상의 지식을 가진 자는 상술된 실시예들이 갖는 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 쉽게 변형이 가능하다는 것을 이해할 수 있을 것이다. 그러므로 상술된 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 예를 들어, 단일형으로 설명되어 있는 각 구성 요소는 분산되어 실시될 수도 있으며, 마찬가지로 분산된 것으로 설명되어 있는 구성 요소들도 결합된 형태로 실시될 수 있다.It will be apparent to those skilled in the art that the above-described embodiments are for illustrative purposes only and that those skilled in the art will readily understand that various changes and modifications can be made without departing from the spirit and scope of the present invention. You will understand. It is therefore to be understood that the above-described embodiments are to be considered in all respects only as illustrative and not restrictive. For example, each component described as a single entity may be distributed and implemented, and components described as being distributed may also be implemented in a combined form.

본 명세서를 통해 보호 받고자 하는 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태를 포함하는 것으로 해석되어야 한다.It is to be understood that the scope of the present invention is defined by the appended claims rather than the foregoing description and should be construed as including all changes and modifications that come within the meaning and range of equivalency of the claims, .

100: 이종 시스템 110: CPU
120: PCI-E 컨트롤러 130: PCI-E 스위치
141, 142, 143, 144: 가속기
100: heterogeneous system 110: CPU
120: PCI-E controller 130: PCI-E switch
141, 142, 143, 144: Accelerators

Claims (15)

이종 시스템에 있어서,
애플리케이션을 실행하기 위한 복수의 계산 디바이스들; 및
상기 복수의 계산 디바이스들과 연결되며, 상기 복수의 계산 디바이스들에 공급되는 전력을 제어하는 호스트 프로세서를 포함하며,
상기 호스트 프로세서는, 상기 복수의 계산 디바이스들 중에서 상기 애플리케이션의 실행에 사용되는 적어도 하나의 계산 디바이스를 확인하고, 상기 애플리케이션의 실행 중에는 상기 확인된 적어도 하나의 계산 디바이스를 제외한 나머지 계산 디바이스의 유휴 전력이 최소가 되도록 제어하는, 이종 시스템.
In a heterogeneous system,
A plurality of computing devices for executing an application; And
And a host processor coupled to the plurality of computing devices and controlling power supplied to the plurality of computing devices,
Wherein the host processor identifies at least one computing device to be used for execution of the application from among the plurality of computing devices and during execution of the application the idle power of the computing device excluding the at least one computing device identified A heterogeneous system that is controlled to be minimal.
제1항에 있어서,
상기 호스트 프로세서와 상기 복수의 계산 디바이스들간의 연결을 제어하는 연결 스위치를 더 포함하며,
상기 연결 스위치는, 상기 애플리케이션의 실행 중에는 상기 확인된 적어도 하나의 계산 디바이스만이 상기 호스트 프로세서와의 연결을 유지하도록 제어하는 것을 특징으로 하는 이종 시스템.
The method according to claim 1,
Further comprising a connection switch for controlling connection between the host processor and the plurality of computing devices,
Wherein the connection switch controls, during execution of the application, that only the identified at least one computing device maintains a connection with the host processor.
제1항에 있어서,
상기 호스트 프로세서는,
상기 계산 디바이스들의 전원 상태를 세 가지 이상 정의하는 전원 관리 규격을 통해, 상기 계산 디바이스들에 공급되는 전력을 제어하는 것을 특징으로 하는 이종 시스템.
The method according to claim 1,
The host processor,
Wherein the power supplied to the computing devices is controlled through a power management standard that defines three or more power states of the computing devices.
제3항에 있어서,
상기 호스트 프로세서는,
상기 확인된 적어도 하나의 계산 디바이스를 제외한 나머지 계산 디바이스들에게는, 상기 전원 관리 규격에서 정의하는 세 가지 이상의 전원 상태들 중에서 소비 전력이 가장 낮은 전원 상태로의 전환 명령을 전송하는 것을 특징으로 하는 이종 시스템.
The method of claim 3,
The host processor,
Wherein the control unit transmits a command to switch to a power supply state having the lowest power consumption among three or more power supply states defined by the power management standard for the remaining calculation devices except for the checked at least one calculation device. .
제2항에 있어서,
상기 연결 스위치는,
상기 확인된 적어도 하나의 계산 디바이스와 상기 연결 스위치간에 연결된 적어도 하나의 레인(lane)을, 상기 연결 스위치와 호스트 프로세서간에 연결된 적어도 하나의 레인과 일대일로 대응시키는 것을 특징으로 하는 이종 시스템.
3. The method of claim 2,
Wherein the connection switch comprises:
Wherein at least one lane connected between the at least one computing device and the connection switch is associated with at least one lane connected between the connection switch and the host processor.
제5항에 있어서,
상기 레인들간의 일대일 대응관계를 포함하는 라우팅 테이블이 상기 연결 스위치에 저장되고, 상기 연결 스위치는 상기 저장된 라우팅 테이블에 따라 상기 호스트 프로세서와 복수의 계산 디바이스들간의 데이터 통신을 중계하는 것을 특징으로 하는 이종 시스템.
6. The method of claim 5,
Wherein a routing table containing a one-to-one correspondence between the lanes is stored in the connection switch, and the connection switch relays data communication between the host processor and the plurality of computing devices in accordance with the stored routing table. system.
제5항에 있어서,
상기 연결 스위치는 상기 레인들간의 일대일 대응관계를 설정하는 기능을 지원하는 것을 특징으로 하는 이종 시스템.
6. The method of claim 5,
Wherein the connection switch supports a function of setting a one-to-one correspondence between the lanes.
이종 시스템의 계산 디바이스 제어 방법에 있어서,
상기 이종 시스템에 포함된 복수의 계산 디바이스들 중에서 애플리케이션의 실행에 사용되는 적어도 하나의 계산 디바이스를 확인하는 단계; 및
상기 애플리케이션의 실행 중에는, 상기 확인된 적어도 하나의 계산 디바이스를 제외한 나머지 계산 디바이스의 유휴 전력이 최소가 되도록 제어하는 단계를 포함하는, 방법.
A method for controlling a computing device of a heterogeneous system,
Identifying at least one computing device to be used for execution of an application among a plurality of computing devices included in the heterogeneous system; And
During execution of the application, controlling the idle power of the remaining computing devices except for the identified at least one computing device to be at a minimum.
제8항에 있어서,
상기 애플리케이션의 실행 중에는, 상기 확인된 적어도 하나의 계산 디바이스만이 상기 이종 시스템에 포함된 호스트 프로세서와의 연결을 유지하도록 제어하는 단계를 더 포함하는 것을 특징으로 하는 방법.
9. The method of claim 8,
Further comprising, during execution of the application, controlling only the identified at least one computing device to maintain a connection with a host processor included in the heterogeneous system.
제8항에 있어서,
상기 제어하는 단계는,
상기 계산 디바이스들의 전원 상태를 세 가지 이상 정의하는 전원 관리 규격을 통해, 상기 계산 디바이스들에 공급되는 전력을 제어하는 것을 특징으로 하는 방법.
9. The method of claim 8,
Wherein the controlling comprises:
Wherein the power supplied to the computing devices is controlled through a power management standard that defines three or more power states of the computing devices.
제10항에 있어서,
상기 제어하는 단계는,
상기 확인된 적어도 하나의 계산 디바이스를 제외한 나머지 계산 디바이스들에게는, 상기 전원 관리 규격에서 정의하는 세 가지 이상의 전원 상태들 중에서 소비 전력이 가장 낮은 전원 상태로의 전환 명령을 전송하는 것을 특징으로 하는 방법.
11. The method of claim 10,
Wherein the controlling comprises:
Wherein the command for switching to the power state having the lowest power consumption among the three or more power states defined by the power management standard is transmitted to the remaining calculation devices except the checked at least one calculation device.
제9항에 있어서,
상기 연결을 유지하도록 제어하는 단계는,
상기 확인된 적어도 하나의 계산 디바이스와 상기 연결 스위치간에 연결된 적어도 하나의 레인(lane)을, 상기 연결 스위치와 호스트 프로세서간에 연결된 적어도 하나의 레인과 일대일로 대응시키는 것을 특징으로 하는 방법.
10. The method of claim 9,
The step of controlling to maintain the connection comprises:
Wherein at least one lane connected between the at least one computing device and the connection switch is associated with at least one lane connected between the connection switch and the host processor.
제12항에 있어서,
상기 연결을 유지하도록 제어하는 단계는,
상기 레인들간의 일대일 대응관계를 포함하는 라우팅 테이블을 저장하는 단계; 및
상기 저장된 라우팅 테이블에 따라서 상기 호스트 프로세서와 복수의 계산 디바이스들간의 데이터 통신을 중계하는 단계를 포함하는 것을 특징으로 하는 방법.
13. The method of claim 12,
The step of controlling to maintain the connection comprises:
Storing a routing table including a one-to-one correspondence between the lanes; And
And relaying data communication between the host processor and the plurality of computing devices in accordance with the stored routing table.
제8항에 기재된 방법을 수행하는 프로그램이 기록된 컴퓨터 판독 가능한 기록 매체.A computer-readable recording medium on which a program for performing the method according to claim 8 is recorded. 이종 시스템에 의해 수행되며, 제8항에 기재된 방법을 수행하기 위해 매체에 저장된 컴퓨터 프로그램.A computer program stored in a medium for performing the method of claim 8, which is performed by a heterogeneous system.
KR1020170097032A 2017-07-31 2017-07-31 Method for controlling accelerator of heterogeneous system, and heterogeneous system for performing the same KR102034660B1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020170097032A KR102034660B1 (en) 2017-07-31 2017-07-31 Method for controlling accelerator of heterogeneous system, and heterogeneous system for performing the same
PCT/KR2018/000918 WO2019027111A1 (en) 2017-07-31 2018-01-19 Method for controlling accelerator in heterogeneous system, and heterogeneous system for performing same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170097032A KR102034660B1 (en) 2017-07-31 2017-07-31 Method for controlling accelerator of heterogeneous system, and heterogeneous system for performing the same

Publications (2)

Publication Number Publication Date
KR20190013063A true KR20190013063A (en) 2019-02-11
KR102034660B1 KR102034660B1 (en) 2019-10-21

Family

ID=65234009

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170097032A KR102034660B1 (en) 2017-07-31 2017-07-31 Method for controlling accelerator of heterogeneous system, and heterogeneous system for performing the same

Country Status (2)

Country Link
KR (1) KR102034660B1 (en)
WO (1) WO2019027111A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102320324B1 (en) 2020-11-11 2021-11-03 한국전자통신연구원 Method for using heterogeneous hardware accelerator in kubernetes environment and apparatus using the same

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011065551A (en) * 2009-09-18 2011-03-31 Hitachi Ltd Management method of computer system, computer system, and program
KR20130024155A (en) * 2011-08-30 2013-03-08 삼성전자주식회사 Data processing system and method for switching between heterogeneous accelerators
KR20150070365A (en) * 2012-12-28 2015-06-24 인텔 코포레이션 Apparatus and method for intelligently powering heterogeneous processor components
JP2017041007A (en) * 2015-08-18 2017-02-23 株式会社リコー Information processing device, power control method, program, and information processing system
KR20170021312A (en) * 2014-08-19 2017-02-27 인텔 코포레이션 Dynamic scaling of graphics processor execution resources
KR20170085229A (en) * 2016-01-14 2017-07-24 (주)캐스트윈 4k UHD ENCODING APPRATUS USING PLURALITY OF FPGA

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009122925A (en) * 2007-11-14 2009-06-04 Toshiba Corp Data processing program, data processing method and data processing system

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011065551A (en) * 2009-09-18 2011-03-31 Hitachi Ltd Management method of computer system, computer system, and program
KR20130024155A (en) * 2011-08-30 2013-03-08 삼성전자주식회사 Data processing system and method for switching between heterogeneous accelerators
KR20150070365A (en) * 2012-12-28 2015-06-24 인텔 코포레이션 Apparatus and method for intelligently powering heterogeneous processor components
KR20170021312A (en) * 2014-08-19 2017-02-27 인텔 코포레이션 Dynamic scaling of graphics processor execution resources
JP2017041007A (en) * 2015-08-18 2017-02-23 株式会社リコー Information processing device, power control method, program, and information processing system
KR20170085229A (en) * 2016-01-14 2017-07-24 (주)캐스트윈 4k UHD ENCODING APPRATUS USING PLURALITY OF FPGA

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102320324B1 (en) 2020-11-11 2021-11-03 한국전자통신연구원 Method for using heterogeneous hardware accelerator in kubernetes environment and apparatus using the same

Also Published As

Publication number Publication date
KR102034660B1 (en) 2019-10-21
WO2019027111A1 (en) 2019-02-07

Similar Documents

Publication Publication Date Title
US10042750B2 (en) Apparatuses and methods for adaptive control of memory using an adaptive memory controller with a memory management hypervisor
US9396009B2 (en) Optimized global capacity management in a virtualized computing environment
US20160139964A1 (en) Energy Efficient Multi-Cluster System and Its Operations
US20060085794A1 (en) Information processing system, information processing method, and program
US10990562B2 (en) System and method of asymmetric system description for optimized scheduling
JP2014139819A (en) Automatic dynamic control of processor operating voltage
US10635337B2 (en) Dynamic configuration of compressed virtual memory
US10444813B2 (en) Multi-criteria power management scheme for pooled accelerator architectures
US11853787B2 (en) Dynamic platform feature tuning based on virtual machine runtime requirements
US9514009B2 (en) Reducing server power consumption to compensate for a power supply failure in a multiple power supply configuration
US20160349812A1 (en) Managing Power in a High Performance Computing System for Resiliency and Cooling
KR20190127310A (en) Data Processing System And Method of Operating The Same
US9979799B2 (en) Impersonating a specific physical hardware configuration on a standard server
EP3295275B1 (en) Managing power in a high performance computing system for resiliency and cooling
US20220350510A1 (en) Method for changing configuration of storage system and storage system
KR102034660B1 (en) Method for controlling accelerator of heterogeneous system, and heterogeneous system for performing the same
US10223260B2 (en) Compiler-generated memory mapping hints
US10162530B2 (en) Computer and computer system for collision determination of a command identifier
US10649943B2 (en) System and method for I/O aware processor configuration
CN116185599A (en) Heterogeneous server system and method of use thereof
US20220164196A1 (en) System and method for providing granular processor performance control
JP6207342B2 (en) Information processing system and control method of information processing system
US10503513B2 (en) Dispatching a stored instruction in response to determining that a received instruction is of a same instruction type
US20180329853A1 (en) Multi-channel dimms
US9933826B2 (en) Method and apparatus for managing nodal power in a high performance computer system

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant