[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

KR102034660B1 - 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
KR102034660B1
KR102034660B1 KR1020170097032A KR20170097032A KR102034660B1 KR 102034660 B1 KR102034660 B1 KR 102034660B1 KR 1020170097032 A KR1020170097032 A KR 1020170097032A KR 20170097032 A KR20170097032 A KR 20170097032A KR 102034660 B1 KR102034660 B1 KR 102034660B1
Authority
KR
South Korea
Prior art keywords
computing devices
host processor
heterogeneous system
power
controlling
Prior art date
Application number
KR1020170097032A
Other languages
Korean (ko)
Other versions
KR20190013063A (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

애플리케이션을 실행하기 위한 복수의 계산 디바이스들 및 상기 복수의 계산 디바이스들과 연결되며, 상기 복수의 계산 디바이스들에 공급되는 전력을 제어하는 호스트 프로세서를 포함하며, 상기 호스트 프로세서는, 상기 복수의 계산 디바이스들 중에서 상기 애플리케이션의 실행에 사용되는 적어도 하나의 계산 디바이스를 확인하고, 상기 애플리케이션의 실행 중에는 상기 확인된 적어도 하나의 계산 디바이스를 제외한 나머지 계산 디바이스의 유휴 전력이 최소가 되도록 제어하는 이종 시스템을 제공한다.A host processor coupled to the plurality of computing devices and the plurality of computing devices for executing an application, the host processor controlling power supplied to the plurality of computing devices, the host processor comprising: the plurality of computing devices Among these, it provides a heterogeneous system for identifying at least one calculation device used for the execution of the application, and controlling the idle power of the remaining calculation device other than the at least one calculated device is minimized during execution of the application. .

Description

이종 시스템의 가속기 제어 방법 및 이를 수행하기 위한 이종 시스템 {METHOD FOR CONTROLLING ACCELERATOR OF HETEROGENEOUS SYSTEM, AND HETEROGENEOUS SYSTEM FOR PERFORMING THE SAME}Accelerator control method for heterogeneous systems and heterogeneous systems for performing the same {METHOD FOR CONTROLLING ACCELERATOR OF HETEROGENEOUS SYSTEM, AND HETEROGENEOUS SYSTEM FOR PERFORMING THE SAME}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

또한, 전체 시스템의 전력 예산 및 CPU(또는 PCI-E 컨트롤러)가 제공하는 PCI-E 레인의 개수에 제한되지 않고, 여러 개의 가속기를 모두 시스템에 장착한 뒤, 애플리케이션이 실제로 사용하는 가속기들만이 대부분의 전력을 소모하고 PCI-E 레인을 할당받도록 함으로써, 서로 다른 가속기를 필요로 하는 다양한 애플리케이션을 하나의 이종 시스템에서 실행하도록 할 수 있는 장점이 있다.In addition, you are not limited to the overall system power budget and the number of PCI-E lanes provided by the CPU (or PCI-E controller), and only the accelerators that your application actually uses after you have installed all the accelerators in your system By consuming power and getting PCI-E lanes allocated, it is possible to run various applications that require different accelerators in one heterogeneous system.

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

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

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

명세서 전체에서, 어떤 구성이 다른 구성과 "연결"되어 있다고 할 때, 이는 ‘직접적으로 연결’되어 있는 경우뿐 아니라, ‘그 중간에 다른 구성을 사이에 두고 연결’되어 있는 경우도 포함한다. 또한, 어떤 구성이 어떤 구성을 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한, 그 외 다른 구성을 제외하는 것이 아니라 다른 구성들을 더 포함할 수도 있음을 의미한다.Throughout the specification, when a configuration is "connected" to another configuration, this includes not only 'directly connected' but also 'connected' between different configurations. In addition, when a configuration "includes" a certain configuration, this means that, unless specifically stated otherwise, it may further include other configurations other than the other configuration.

이하 첨부된 도면을 참고하여 실시예들을 상세히 설명하기로 한다.Hereinafter, exemplary 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)을 포함하는 것으로 도시하였으나, 이에 한정되지 않고 다양한 개수의 계산 디바이스들을 포함할 수 있음은 자명하다.1 is a diagram illustrating a configuration of a heterogeneous system according to an embodiment. Referring to FIG. 1, a heterogeneous system 100 according to an embodiment includes a CPU 110, a PCI-E controller 120, a PCI-E switch 130, and a plurality of accelerators 141, 142, 143, and 144. ) May be included. In FIG. 1, the heterogeneous system 100 is illustrated as including four accelerators 141, 142, 143, and 144, but it is obvious that the heterogeneous system 100 may include various numbers of computing devices.

CPU(110)는 범용 프로세서로서 이종 시스템(100)의 전체적인 동작을 제어하며, ‘호스트 프로세서’라고도 한다. 이종 시스템(100)의 운영체제가 CPU(110)에서 실행될 수 있다. CPU(110)는 가속기들(141, 142, 143, 144)의 동작을 제어할 수 있다. 또한, CPU(110)에는 메인 메모리(미도시)가 연결될 수 있다.The CPU 110 is a general purpose processor that controls the overall operation of the heterogeneous system 100 and is also referred to as a "host processor." An operating system of the heterogeneous system 100 may be executed in the CPU 110. The CPU 110 may control the operations of the accelerators 141, 142, 143, and 144. In addition, 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 exist separately from the CPU 110 or may be integrated in the CPU 110. That is, in FIG. 1, the PCI-E controller 120 is illustrated as a separate configuration from the CPU 110, but 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 component that relays communication between the CPU 100 and the accelerators 141, 142, 143, and 144. That is, as shown in FIG. 1, the PCI-E controller 120 and the PCI-E switch 130 are connected through the first lane, and the PCI-E switch 130 and the accelerators 141, 142, 143, 144 is 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 required by the accelerators 141, 142, 143, and 144 (the number of PCI-E lanes included in the second lane) is PCI. This is because the number of PCI-E lanes provided by the -E controller 120 is greater than the number of PCI-E lanes included in the first lane. That is, when all the accelerators 141, 142, 143, and 144 cannot be connected using only the PCI-E lanes provided by the PCI-E controller 120, the PCI-E controller 120 is connected to the PCI-E switch 130. PCI-E lanes coming from the ()), PCI-E switch 130 is connected to the accelerators (141, 142, 143, 144) again.

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

가속기들(141, 142, 143, 144)은 CPU(110)의 제어에 따라서 각각에 특화된 연산을 수행한다. 다시 말해, 이종 시스템(100)에서 애플리케이션이 실행되면, 각각의 가속기들(141, 142, 143, 144)은 자신에게 특화된 특정 패턴의 연산을 수행하고, 나머지 연산 및 I/O 작업이 CPU(110)에 의해서 수행될 수 있다. 또한, 가속기들(141, 142, 143, 144) 각각에는 디바이스 메모리(미도시)가 연결될 수 있다.The accelerators 141, 142, 143, and 144 perform operations specific to each under the control of the CPU 110. In other words, when an application is executed in the heterogeneous system 100, each of the accelerators 141, 142, 143, and 144 performs a specific pattern of operations specific to itself, and the remaining operations and I / O tasks are executed by the CPU 110. It can be performed by). 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 have different operating methods, the same operating methods, but different detailed architectures, and different operating methods and detailed architectures. It may be. Thus, by choosing and implementing the best accelerator for your application, you can maximize the efficiency of your entire system.

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

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

이하에서는 일 실시예에 따라 이종 시스템(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 will be described in detail with reference to FIGS. 2 to 5. In the embodiments described below, it is assumed that only the first accelerator 141 and the third accelerator 143 are used when executing an application 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 flowchart illustrating an accelerator control method of a heterogeneous system according to an exemplary embodiment. 2, in operation 201, the CPU 110 determines at least one accelerator used by an application from 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, and 144 when the application is executed in the heterogeneous system 100.

이때, CPU(110)는 이종 시스템(100)에서 애플리케이션이 실행되기 이전에, 또는 실행되는 중에 각 가속기에 대한 사용 여부를 확인할 수 있다. 어떤 가속기를 사용할 것인지는 애플리케이션에서 지정할 수도 있고, 애플리케이션을 실행시키는 런타임 시스템에서 지정할 수도 있고, 또는 이종 시스템(100)의 사용자가 지정할 수도 있다.In this case, the CPU 110 may check whether each accelerator is used before or while the application is executed in the heterogeneous system 100. Which accelerator to use may be specified in the application, in the runtime system running the application, or by the 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 operation 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 minimum. For example, the CPU 110 may control the power supplied to the accelerators 141, 142, 143, and 144 in accordance with the Advanced Configuration and Power Interface (ACPI) standard.

이때, ACPI는 소프트웨어적으로 컴퓨터를 구성하는 하드웨어 부품의 전원 관리를 가능하게 하는 표준 규격으로서, 가속기와 같이 컴퓨터에 장착된 각 개별 장치에 대한 전원 관리 규격을 포함한다. ACPI에서는 장치의 전원 상태를 4가지(D0, D1, D2, D3)로 정의한다. D0는 장치가 켜져 있고 작동하는 상태를, D3는 장치가 꺼져 있고 작동하지 않는 상태를 의미한다. 그리고, D1 및 D2는 D0와 D3의 중간 상태를 의미한다. 즉, 장치가 소비하는 전력은 D0에서 D3로 갈수록 줄어든다.At this time, ACPI is a standard specification that enables power management of hardware components constituting a computer by software, and includes a power management specification for each individual device mounted in a computer such as an accelerator. ACPI defines four power states for the device: D0, D1, D2, and D3. D0 means the device is turned on and working, and D3 means the device is turned off and not working. D1 and D2 mean an intermediate state between D0 and D3. In other words, 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 may 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 driver 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)이 유휴 전력으로서 소비하도록 제어할 수 있다.Therefore, 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, and the D3 state to the second accelerator 142 and the fourth accelerator 144. Command to switch to. Alternatively, if the second accelerator 142 and the fourth accelerator 144 that are not used require a power state higher than D3, the CPU 110 may issue a command to switch to the D1 or D2 state to the second accelerator 142 and the second accelerator 142 and the fourth accelerator 144. Transmit to the fourth accelerator 144. That is, the CPU 110 may control the accelerators 142 and 144 that are not used to consume as minimum power only the minimum power required by the accelerators 142 and 144 that are not used.

도 3에는 일 실시예에 따라 CPU(110)가 일부 가속기들(142, 144)의 유휴 전력을 최소로 제어한 상태를 도시하였다. 도 3을 참조하면, 제1 가속기(141) 및 제3 가속기(143)는 D0 상태로 제어되고, 제2 가속기(142) 및 제4 가속기(144)는 D3 상태로 제어됨을 알 수 있다.3 illustrates a state in which the CPU 110 controls idle power of some accelerators 142 and 144 to a minimum, according to an exemplary embodiment. Referring to FIG. 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 not use the accelerators 142 in various ways. , 144 can be controlled to minimize the idle power.

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

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

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

도 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 addition, in FIG. 5, since the number of PCI-E lanes provided by the PCI-E controller 120 is 32, N is 32. Therefore, according to the embodiment shown in FIG. 5, the PCI-E switch 130 determines that M is less than or equal to N.

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

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

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

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

이와 같이, PCI-E 스위치(130)는 애플리케이션의 실행에 사용되는 가속기들(141, 143)만이 CPU(110)와의 연결을 유지하도록 함으로써 PCI-E 스위치(130)의 오버헤드를 최소화할 수 있고, 또한 CPU(110)의 제한된 PCI-E 레인을 효율적으로 활용할 수 있다. 결과적으로, PCI-E 스위치(130)의 라우팅 동작으로 인한 전력 소모, 시간 지연 및 상호 간섭을 감소시키는 효과를 기대할 수 있다.As such, the PCI-E switch 130 may minimize the overhead of the PCI-E switch 130 by allowing only the accelerators 141 and 143 used to execute the application to maintain the connection with the CPU 110. In addition, the limited PCI-E lane of the CPU 110 can be utilized 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 may be expected.

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

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

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

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

또한 도 2 내지 도 5를 통해 설명된 실시예에 따른 이종 시스템의 가속기 제어 방법은 컴퓨터에 의해 실행 가능한 명령어를 포함하는 컴퓨터 프로그램(또는 컴퓨터 프로그램 제품)으로 구현될 수도 있다. 컴퓨터 프로그램은 프로세서에 의해 처리되는 프로그래밍 가능한 기계 명령어를 포함하고, 고레벨 프로그래밍 언어(High-level Programming Language), 객체 지향 프로그래밍 언어(Object-oriented Programming Language), 어셈블리 언어 또는 기계 언어 등으로 구현될 수 있다. 또한 컴퓨터 프로그램은 유형의 컴퓨터 판독가능 기록매체(예를 들어, 메모리, 하드디스크, 자기/광학 매체 또는 SSD(Solid-State Drive) 등)에 기록될 수 있다. Also, the accelerator control method of the heterogeneous system according to the embodiments described with reference to FIGS. 2 to 5 may be implemented as a computer program (or computer program product) including instructions executable by a computer. The computer program includes programmable machine instructions processed by the processor and may 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 tangible computer readable media (eg, memory, hard disks, magnetic / optical media or solid-state drives, etc.).

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

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

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

그리고 저장장치는 컴퓨팅 장치에게 대용량의 저장공간을 제공할 수 있다. 저장 장치는 컴퓨터 판독 가능한 매체이거나 이런 매체를 포함하는 구성일 수 있으며, 예를 들어 SAN(Storage Area Network) 내의 장치들이나 다른 구성도 포함할 수 있고, 플로피 디스크 장치, 하드 디스크 장치, 광 디스크 장치, 혹은 테이프 장치, 플래시 메모리, 그와 유사한 다른 반도체 메모리 장치 혹은 장치 어레이일 수 있다.In addition, 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 or other configurations within a storage area network (SAN), and may include a floppy disk device, a hard disk device, an optical disk device, Or a tape device, flash memory, or similar other semiconductor memory device or device array.

상술된 실시예들은 예시를 위한 것이며, 상술된 실시예들이 속하는 기술분야의 통상의 지식을 가진 자는 상술된 실시예들이 갖는 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 쉽게 변형이 가능하다는 것을 이해할 수 있을 것이다. 그러므로 상술된 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 예를 들어, 단일형으로 설명되어 있는 각 구성 요소는 분산되어 실시될 수도 있으며, 마찬가지로 분산된 것으로 설명되어 있는 구성 요소들도 결합된 형태로 실시될 수 있다.The above-described embodiments are for illustrative purposes, and those of ordinary skill in the art to which the above-described embodiments belong may easily change to other specific forms without changing the technical spirit or essential features of the above-described embodiments. I can understand. Therefore, it is to be understood that the above-described embodiments are illustrative in all respects and not restrictive. For example, each component described as a single type may be implemented in a distributed manner, and similarly, components described as distributed may be implemented in a combined form.

본 명세서를 통해 보호 받고자 하는 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태를 포함하는 것으로 해석되어야 한다.The scope to be protected by the present specification is represented by the following claims rather than the above description, and should be construed to include all changes or modifications derived from the meaning and scope of the claims and their equivalents. .

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: accelerator

Claims (15)

이종 시스템에 있어서,
애플리케이션을 실행하기 위한 복수의 계산 디바이스들;
상기 복수의 계산 디바이스들과 연결되며, 상기 복수의 계산 디바이스들에 공급되는 전력을 제어하는 호스트 프로세서; 및
상기 호스트 프로세서와 상기 복수의 계산 디바이스들간의 연결을 제어하는 연결 스위치를 포함하며,
상기 호스트 프로세서는, 상기 복수의 계산 디바이스들 중에서 상기 애플리케이션의 실행에 사용되는 적어도 하나의 계산 디바이스를 확인하고, 상기 애플리케이션의 실행 중에는 상기 확인된 적어도 하나의 계산 디바이스를 제외한 나머지 계산 디바이스의 유휴 전력이 최소가 되도록 제어하고,
상기 연결 스위치는, 상기 애플리케이션의 실행 중에는 상기 확인된 적어도 하나의 계산 디바이스만이 상기 호스트 프로세서와의 연결을 유지하도록 제어하는, 이종 시스템.
In heterogeneous systems,
A plurality of computing devices for executing the application;
A host processor coupled to the plurality of computing devices, the host processor controlling power supplied to the plurality of computing devices; And
A connection switch for controlling a connection between the host processor and the plurality of computing devices,
The host processor identifies at least one computing device used to execute the application among the plurality of computing devices, and during execution of the application, the idle power of the remaining computing devices other than the at least one checked computing device is determined. Control it to the minimum,
And the connection switch controls such that only the identified at least one computing device maintains a connection with the host processor during execution of the application.
삭제delete 제1항에 있어서,
상기 호스트 프로세서는,
상기 계산 디바이스들의 전원 상태를 세 가지 이상 정의하는 전원 관리 규격을 통해, 상기 계산 디바이스들에 공급되는 전력을 제어하는 것을 특징으로 하는 이종 시스템.
The method of claim 1,
The host processor,
And controlling power supplied to the computing devices through a power management standard defining at least three power states of the computing devices.
제3항에 있어서,
상기 호스트 프로세서는,
상기 확인된 적어도 하나의 계산 디바이스를 제외한 나머지 계산 디바이스들에게는, 상기 전원 관리 규격에서 정의하는 세 가지 이상의 전원 상태들 중에서 소비 전력이 가장 낮은 전원 상태로의 전환 명령을 전송하는 것을 특징으로 하는 이종 시스템.
The method of claim 3,
The host processor,
Heterogeneous system, characterized in that for transmitting the transition command to the power supply state with the lowest power consumption among the three or more power states defined in the power management standard, except for the at least one identified computing device. .
제1항에 있어서,
상기 연결 스위치는,
상기 확인된 적어도 하나의 계산 디바이스와 상기 연결 스위치간에 연결된 적어도 하나의 레인(lane)을, 상기 연결 스위치와 호스트 프로세서간에 연결된 적어도 하나의 레인과 일대일로 대응시키는 것을 특징으로 하는 이종 시스템.
The method of claim 1,
The connection switch,
And at least one lane connected between the identified at least one computing device and the connection switch in a one-to-one correspondence with at least one lane connected between the connection switch and a host processor.
제5항에 있어서,
상기 레인들간의 일대일 대응관계를 포함하는 라우팅 테이블이 상기 연결 스위치에 저장되고, 상기 연결 스위치는 상기 저장된 라우팅 테이블에 따라 상기 호스트 프로세서와 복수의 계산 디바이스들간의 데이터 통신을 중계하는 것을 특징으로 하는 이종 시스템.
The method of claim 5,
A routing table including 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 a plurality of computing devices according to the stored routing table. system.
제5항에 있어서,
상기 연결 스위치는 상기 레인들간의 일대일 대응관계를 설정하는 기능을 지원하는 것을 특징으로 하는 이종 시스템.
The method of claim 5,
The connection switch is a heterogeneous system, characterized in that for supporting the function of establishing a one-to-one correspondence between the lanes.
이종 시스템의 계산 디바이스 제어 방법에 있어서,
상기 이종 시스템에 포함된 호스트 프로세서가 상기 이종 시스템에 포함된 복수의 계산 디바이스들 중에서 애플리케이션의 실행에 사용되는 적어도 하나의 계산 디바이스를 확인하는 단계;
상기 애플리케이션의 실행 중에는, 상기 호스트 프로세서가 상기 확인된 적어도 하나의 계산 디바이스를 제외한 나머지 계산 디바이스의 유휴 전력이 최소가 되도록 제어하는 단계; 및
상기 애플리케이션의 실행 중에는, 상기 호스트 프로세서와 상기 복수의 계산 디바이스들간의 연결을 제어하는 연결 스위치가 상기 확인된 적어도 하나의 계산 디바이스만이 상기 이종 시스템에 포함된 호스트 프로세서와의 연결을 유지하도록 제어하는 단계를 포함하는, 방법.
In the computing device control method of heterogeneous system,
Identifying, by a host processor included in the heterogeneous system, at least one computing device used to execute an application among a plurality of computing devices included in the heterogeneous system;
During execution of the application, the host processor controlling the idle power of the remaining computing devices to be minimum except for the at least one identified computing device; And
During execution of the application, a connection switch for controlling a connection between the host processor and the plurality of computing devices controls only the identified at least one computing device to maintain a connection with a host processor included in the heterogeneous system. Comprising a step.
삭제delete 제8항에 있어서,
상기 제어하는 단계는,
상기 계산 디바이스들의 전원 상태를 세 가지 이상 정의하는 전원 관리 규격을 통해, 상기 계산 디바이스들에 공급되는 전력을 제어하는 것을 특징으로 하는 방법.
The method of claim 8,
The controlling step,
Controlling power supplied to the computing devices through a power management specification that defines at least three power states of the computing devices.
제10항에 있어서,
상기 제어하는 단계는,
상기 확인된 적어도 하나의 계산 디바이스를 제외한 나머지 계산 디바이스들에게는, 상기 전원 관리 규격에서 정의하는 세 가지 이상의 전원 상태들 중에서 소비 전력이 가장 낮은 전원 상태로의 전환 명령을 전송하는 것을 특징으로 하는 방법.
The method of claim 10,
The controlling step,
And transmitting a command for switching to a power state having the lowest power consumption among three or more power states defined in the power management standard, to the other computing devices except the at least one calculated device.
제8항에 있어서,
상기 연결을 유지하도록 제어하는 단계는,
상기 확인된 적어도 하나의 계산 디바이스와 상기 연결 스위치간에 연결된 적어도 하나의 레인(lane)을, 상기 연결 스위치와 호스트 프로세서간에 연결된 적어도 하나의 레인과 일대일로 대응시키는 것을 특징으로 하는 방법.
The method of claim 8,
Controlling to maintain the connection,
And at least one lane connected between the identified at least one computing device and the connection switch in a one-to-one correspondence with at least one lane connected between the connection switch and a host processor.
제12항에 있어서,
상기 연결을 유지하도록 제어하는 단계는,
상기 레인들간의 일대일 대응관계를 포함하는 라우팅 테이블을 저장하는 단계; 및
상기 저장된 라우팅 테이블에 따라서 상기 호스트 프로세서와 복수의 계산 디바이스들간의 데이터 통신을 중계하는 단계를 포함하는 것을 특징으로 하는 방법.
The method of claim 12,
Controlling to maintain the connection,
Storing a routing table including a one-to-one correspondence between the lanes; And
Relaying data communication between the host processor and a plurality of computing devices in accordance with the stored routing table.
제8항에 기재된 방법을 이종 시스템이 수행하도록 하기 위한 프로그램이 기록된 컴퓨터 판독 가능한 기록 매체.A computer-readable recording medium having recorded thereon a program for causing a heterogeneous system to perform the method of claim 8. 이종 시스템에 의해 수행되며, 제8항에 기재된 방법을 수행하기 위해 매체에 저장된 컴퓨터 프로그램.A computer program executed by a heterogeneous system and stored on a medium for carrying out the method of claim 8.
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 KR20190013063A (en) 2019-02-11
KR102034660B1 true 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)

Families Citing this family (2)

* 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
US20240404167A1 (en) * 2023-06-02 2024-12-05 Advanced Micro Devices, Inc. Scalable graphics processing using dynamic shader engine allocation

Citations (2)

* 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
JP2017041007A (en) * 2015-08-18 2017-02-23 株式会社リコー Information processing device, power control method, program, and information processing system

Family Cites Families (5)

* 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
KR101861742B1 (en) * 2011-08-30 2018-05-30 삼성전자주식회사 Data processing system and method for switching between heterogeneous accelerators
US9672046B2 (en) * 2012-12-28 2017-06-06 Intel Corporation Apparatus and method for intelligently powering heterogeneous processor components
US10025367B2 (en) * 2014-08-19 2018-07-17 Intel Corporation Dynamic scaling of graphics processor execution resources
KR101793971B1 (en) * 2016-01-14 2017-11-06 (주)캐스트윈 4k UHD ENCODING APPRATUS USING PLURALITY OF FPGA

Patent Citations (2)

* 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
JP2017041007A (en) * 2015-08-18 2017-02-23 株式会社リコー Information processing device, power control method, program, and information processing system

Also Published As

Publication number Publication date
WO2019027111A1 (en) 2019-02-07
KR20190013063A (en) 2019-02-11

Similar Documents

Publication Publication Date Title
US9977699B2 (en) Energy efficient multi-cluster system and its operations
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
US20060085794A1 (en) Information processing system, information processing method, and program
US10990562B2 (en) System and method of asymmetric system description for optimized scheduling
US8365169B1 (en) Migrating a virtual machine across processing cells connected to an interconnect that provides data communication without cache coherency support
US11514955B2 (en) Power management integrated circuit with dual power feed
US10432479B2 (en) System and method for reducing management ports of a multiple node chassis system
JP2014139819A (en) Automatic dynamic control of processor operating voltage
US10444813B2 (en) Multi-criteria power management scheme for pooled accelerator architectures
KR102034660B1 (en) Method for controlling accelerator of heterogeneous system, and heterogeneous system for performing the same
US11222687B2 (en) System and method for power plane noise reduction in a memory subsystem of an information handling system
US11243592B2 (en) System and method for controlling a power-on sequence and power throttling using power brake
CN104991874A (en) SCST (SCSI target subsystem for Linux) based multi-controller storage device ALUA (asymmetrical logical unit access) configuration method
US10223260B2 (en) Compiler-generated memory mapping hints
US10503523B2 (en) Technologies to improve system boot performance and reliability
US10649943B2 (en) System and method for I/O aware processor configuration
US20120185713A1 (en) Server, storage medium, and method for controlling sleep and wakeup function of the server
TW201610701A (en) Server control method and chassis controller
WO2016078556A1 (en) Energy efficient multi-cluster system and its operations
KR101586712B1 (en) Method and apparatus for scheduling using task dependency graphs in multiprocessor system
US10503513B2 (en) Dispatching a stored instruction in response to determining that a received instruction is of a same instruction type
US12001386B2 (en) Disabling processor cores for best latency in a multiple core processor
US12001332B2 (en) Runtime de-interleave and re-interleave of system memory
US20240028201A1 (en) Optimal memory tiering of large memory systems using a minimal number of processors

Legal Events

Date Code Title Description
A201 Request for examination
PA0109 Patent application

Patent event code: PA01091R01D

Comment text: Patent Application

Patent event date: 20170731

PA0201 Request for examination
E902 Notification of reason for refusal
PE0902 Notice of grounds for rejection

Comment text: Notification of reason for refusal

Patent event date: 20180426

Patent event code: PE09021S01D

E902 Notification of reason for refusal
PE0902 Notice of grounds for rejection

Comment text: Notification of reason for refusal

Patent event date: 20181031

Patent event code: PE09021S01D

PG1501 Laying open of application
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: 20190827

GRNT Written decision to grant
PR0701 Registration of establishment

Comment text: Registration of Establishment

Patent event date: 20191015

Patent event code: PR07011E01D

PR1002 Payment of registration fee

Payment date: 20191015

End annual number: 3

Start annual number: 1

PG1601 Publication of registration
PR1001 Payment of annual fee

Payment date: 20220921

Start annual number: 4

End annual number: 4

PR1001 Payment of annual fee

Payment date: 20230921

Start annual number: 5

End annual number: 5

PR1001 Payment of annual fee