KR102552954B1 - 컴퓨팅 시스템 및 컴퓨팅 시스템의 동작 방법 - Google Patents

컴퓨팅 시스템 및 컴퓨팅 시스템의 동작 방법 Download PDF

Info

Publication number
KR102552954B1
KR102552954B1 KR1020180135615A KR20180135615A KR102552954B1 KR 102552954 B1 KR102552954 B1 KR 102552954B1 KR 1020180135615 A KR1020180135615 A KR 1020180135615A KR 20180135615 A KR20180135615 A KR 20180135615A KR 102552954 B1 KR102552954 B1 KR 102552954B1
Authority
KR
South Korea
Prior art keywords
core
performance
type
operating frequency
type core
Prior art date
Application number
KR1020180135615A
Other languages
English (en)
Other versions
KR20200052558A (ko
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 KR1020180135615A priority Critical patent/KR102552954B1/ko
Priority to US16/450,299 priority patent/US11347563B2/en
Priority to DE102019117800.2A priority patent/DE102019117800A1/de
Priority to CN201911044375.7A priority patent/CN111158868A/zh
Publication of KR20200052558A publication Critical patent/KR20200052558A/ko
Application granted granted Critical
Publication of KR102552954B1 publication Critical patent/KR102552954B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • 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/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • G06F9/4856Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration
    • 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/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • G06F9/4893Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues taking into account power or heat criteria
    • 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/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • 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/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5044Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering hardware capabilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5012Processor sets
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Power Sources (AREA)

Abstract

컴퓨팅 시스템 및 컴퓨팅 시스템의 동작 방법이 제공된다. 컴퓨팅 시스템은 태스크(task)의 ISA(Instruction Set Architecture)를 식별하는 ISA 식별 모듈; 상기 식별된 ISA에 기초하여, 복수의 코어 중 성능 대비 파워 효율이 가장 높은 코어를 선택하는 코어 선택 모듈; 및 상기 선택한 코어에 상기 태스크를 할당하는 태스크 할당 모듈을 포함한다.

Description

컴퓨팅 시스템 및 컴퓨팅 시스템의 동작 방법{COMPUTING SYSTEM AND METHOD FOR OPERATING COMPUTING SYSTEM}
본 발명은 컴퓨팅 시스템 및 컴퓨팅 시스템의 동작 방법에 관한 것이다.
멀티 코어 시스템은 이종의(heterogeneous) 코어를 포함할 수 있다. 예를 들어 멀티 코어 시스템은 서로 다른 ISA(Instruction Set Architecture)를 처리하도록 구성된 이종 코어를 포함할 수도 있고, 동일 ISA를 처리하지만 파워 효율보다는 성능에 주안점을 둔 코어와 성능보다는 파워 효율에 주안점을 두 코어를 포함할 수도 있다.
이와 같이 멀티 코어 시스템을 이루는 이종의 코어들은 성능에 따른 파워 효율이 서로 다를 수 있다. 특히 이종의 코어들은 태스크 처리 비트 폭(bit width)에 따른 성능 대비 파워 효율(power-performance efficiency)이 다를 수 있다. 즉, 이종의 코어들은 예컨대 32 비트 태스크를 처리하는 경우의 성능 대비 파워 효율과, 예컨대 64 비트 태스크를 처리하는 경우의 성능 대비 파워 효율이 다를 수 있다. 그런데 일반적으로 운영체제에서 제공되는 스케줄러는 이종 코어 간 태스크 처리 비트 폭에 따른 성능 대비 파워 효율(power-performance efficiency)을 고려하지 않고 태스크를 스케줄링하기 때문에, 이종의 코어들 사이에 존재하는 성능 편차를 충분히 반영하지 못하고 있다.
본 발명이 해결하고자 하는 기술적 과제는, 멀티 코어 시스템을 이루는 이종의 코어들의 태스크 처리 비트 폭에 따른 성능 대비 파워 효율을 고려하여 태스크를 스케줄링하는 컴퓨팅 시스템 및 컴퓨터 시스템의 동작 방법을 제공하는 것이다.
본 발명의 기술적 과제는 이상에서 언급한 기술적 과제로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제는 아래의 기재로부터 해당 기술 분야의 통상의 기술자에게 명확하게 이해될 수 있을 것이다.
상기 기술적 과제를 달성하기 위한 본 발명의 일 실시예에 따른 컴퓨팅 시스템은, 태스크(task)의 ISA(Instruction Set Architecture)를 식별하는 ISA 식별 모듈; 식별된 ISA에 기초하여, 복수의 코어 중 성능 대비 파워 효율이 가장 높은 코어를 선택하는 코어 선택 모듈; 및 선택한 코어에 태스크를 할당하는 태스크 할당 모듈을 포함한다.
상기 기술적 과제를 달성하기 위한 본 발명의 다른 실시예에 따른 컴퓨팅 시스템은, 제1 최대 동작 주파수를 갖는 제1 타입 코어; 제1 최대 동작 주파수보다 낮은 제2 최대 동작 주파수를 갖는 제2 타입 코어; 태스크의 ISA를 식별하는 ISA 식별 모듈; 식별된 ISA에 기초하여, 제2 최대 동작 주파수 이내의 범위에서, 제2 타입 코어의 성능 대비 파워가 제1 타입 코어보다 낮은 경우 제2 타입 코어를 선택하고, 제2 타입 코어의 성능 대비 파워가 제1 타입 코어보다 큰 경우 제1 타입 코어를 선택하는 코어 선택 모듈; 및 선택한 코어에 태스크를 할당하는 태스크 할당 모듈을 포함한다.
상기 기술적 과제를 달성하기 위한 본 발명의 또 다른 실시예에 따른 컴퓨팅 시스템의 동작 방법은, 태스크의 ISA를 식별하고, 식별된 ISA에 기초하여, 복수의 코어 중 성능 대비 파워 효율이 가장 높은 코어를 선택하고, 선택한 코어에 태스크를 할당하는 것을 포함한다.
기타 실시예들의 구체적인 사항들은 상세한 설명 및 도면들에 포함되어 있다.
도 1은 본 발명의 일 실시예에 따른 컴퓨팅 시스템을 설명하기 위한 블록도이다.
도 2는 본 발명의 일 실시예에 따른 컴퓨팅 시스템을 설명하기 위한 블록도이다.
도 3은 본 발명의 일 실시예에 따른 컴퓨팅 시스템을 설명하기 위한 블록도이다.
도 4는 본 발명의 일 실시예에 따른 파워 성능 테이블을 설명하기 위한 그래프도이다.
도 5는 도 4와 관련하여 본 발명의 일 실시예에 따른 컴퓨팅 시스템의 동작을 설명하기 위한 블록도이다.
도 6은 본 발명의 일 실시예에 따른 파워 성능 테이블을 설명하기 위한 그래프도이다.
도 7은 도 6과 관련하여 본 발명의 일 실시예에 따른 컴퓨팅 시스템의 동작을 설명하기 위한 블록도이다.
도 8은 본 발명의 일 실시예에 따른 컴퓨팅 시스템의 동작 방법을 설명하기 위한 순서도이다.
도 9는 본 발명의 일 실시예에 따른 컴퓨팅 시스템의 동작 방법을 설명하기 위한 순서도이다.
도 1은 본 발명의 일 실시예에 따른 컴퓨팅 시스템을 설명하기 위한 블록도이다.
도 1을 참조하면, 본 발명의 일 실시예에 따른 컴퓨팅 시스템(1)은 스케줄러(10) 및 멀티코어 프로세서(20)를 포함한다. 여기서 컴퓨팅 시스템(1)은 시스템 온 칩(System-on-Chip, SoC)으로 구현될 수 있으나, 본 발명의 범위가 이에 제한되는 것은 아니다.
먼저 멀티코어 프로세서(20)는 복수의 코어를 포함하며, 복수의 코어는 이종 코어를 포함할 수 있다. 본 실시예에서, 멀티코어 프로세서(20)는 제1 타입 코어 그룹(200)으로 분류되는 제1 타입 코어(B1, B2) 및 제2 타입 코어 그룹(210)으로 분류되는 제2 타입 코어(L1, L2, L3, L4)를 포함한다. 그러나 이것은 멀티코어 프로세서(20)의 일 구현례에 불과하며, 코어 그룹의 개수나, 하나의 코어 그룹에 속하는 코어의 개수는 이에 한정되지 않고 얼마든지 변경될 수 있다.
본 발명의 몇몇의 실시예에서, 제1 타입 코어(B1, B2)는 big.LITTLE 아키텍처의 big 코어에 해당하고, 제2 타입 코어(L1, L2, L3, L4)는 big.LITTLE 아키텍처의 LITTLE 코어에 해당할 수 있으나, 본 발명의 범위가 이에 제한되는 것은 아니다. big 코어는 파워 소모가 많은 고성능 코어를 말하고, LITTLE 코어는 상대적으로 파워 소모가 적은 저성능 코어를 말한다. 이들 big 코어와 LITTLE 코어는 동일한 메모리 영역을 사용하면서, 상황에 따라 동적으로 태스크를 할당받을 수 있다. 이들 이종의 코어에 태스크를 스케줄링하는 방법으로 예를 들어 클러스터 마이그레이션(cluster migration), 인 커널 스위처(In Kernel Switcher), 이기종 간 다중 처리(heterogeneous multi-processing) 등의 기법들이 적용될 수 있는데, 이들 기법들은 공지된 기술에 해당하므로 본 명세서에서는 그 설명을 생략하도록 한다.
이들 제1 타입 코어(B1, B2) 및 제2 타입 코어(L1, L2, L3, L4)는 버스(290)를 통해 서로 전기적으로 연결된다. 본 발명의 몇몇의 실시예에서, 버스(290)는 AMBA(Advanced Microcontroller Bus Architecture)를 따르는, 예컨대 AXI(Advanced eXtensible Interface)로 구현될 수 있으나, 본 발명의 범위가 이에 제한되는 것은 아니다.
이들 제1 타입 코어(B1, B2) 및 제2 타입 코어(L1, L2, L3, L4)는 성능 대비 파워 효율이 서로 다를 수 있다. 제1 타입 코어(B1, B2)가 파워 소모가 많은 고성능 코어이고 제2 타입 코어(L1, L2, L3, L4)가 파워 소모가 적은 저성능 코어라고 할지라도, 처리하는 태스크의 비트 폭과 컴퓨팅 시스템(1)이 동작하는 주파수에 따라서, 동일한 성능을 발휘하기 위해 때로는 제1 타입 코어(B1, B2)가 더 많은 파워를 소모할 수도 있고, 때로는 제2 타입 코어(L1, L2, L3, L4)가 더 많은 파워를 소모할 수도 있다. 그렇다면 태스크 처리 비트 폭과 동작 주파수에 따른 파워 소모량의 변화를 고려하여 태스크를 멀티코어 프로세서(20)에 할당한다면, 성능을 보장하면서도 더욱 전력 소모량을 줄일 수 있을 것이다. 성능 대비 파워 효율에 대한 구체적인 설명은 32 비트 태스크에 대한 파워 성능 테이블을 나타내는 도 4와, 64 비트 태스크에 대한 파워 성능 태이블을 나타내는 도 6을 참조하여 후술하도록 한다.
스케줄러(10)는 동작 주파수에 따른 파워 소모량의 변화를 고려하여 태스크를 멀티코어 프로세서(20)에 할당하기 위한 요소로, ISA 식별 모듈(100), 코어 선택 모듈(110) 및 태스크 할당 모듈(120)을 포함한다.
ISA 식별 모듈(100)은 태스크의 ISA를 식별한다. 구체적으로 ISA 식별 모듈(100)은 태스크가 32 비트 태스크인지 64 비트 태스크인지 여부를 결정하기 위해, 태스크로부터 ISA가 32 비트 ISA인지, 64 비트 ISA인지 여부를 식별할 수 있다. 32 비트 ISA의 예로는 AArch32를 들 수 있고, 64 비트 ISA의 예로는 AArch64를 들 수 있다. 그런데 본 발명의 범위는 이에 한정되지 않고, ISA 식별 모듈(100)은 태스크의 ISA가 N 비트 ISA인지, 2N 비트 ISA인지 여부를 식별할 수 있다(여기서 N은 자연수).
코어 선택 모듈(110)은 ISA 식별 모듈(100)에 의해 식별된 ISA에 기초하여, 멀티코어 프로세서(20)를 이루는 복수의 코어 중 성능 대비 파워 효율(power-performance efficiency)이 가장 높은 코어를 선택한다. 즉, 코어 선택 모듈(110)은 동작 주파수에 따른 파워 소모량의 변화를 고려하여, 태스크를 처리할 코어를 선택한다.
예를 들어, ISA가 32 비트 ISA인 경우, 제1 타입 코어(B1, B2)와 제2 타입 코어(L1, L2, L3, L4)는 서로 다른 성능 대비 파워 효율을 가질 수 있으며, 제1 타입 코어(B1, B2)와 제2 타입 코어(L1, L2, L3, L4) 중 성능 대비 파워 효율이 더 좋게 나타날 지는 멀티코어 프로세서(20)의 동작 주파수에 따라 달라질 수 있다. 한편 ISA가 64 비트 ISA인 경우, 32 비트 ISA의 경우와 다른 추세로 제1 타입 코어(B1, B2)와 제2 타입 코어(L1, L2, L3, L4)는 서로 다른 성능 대비 파워 효율을 가질 수 있다. 코어 선택 모듈(110)은 이와 같은 동작 환경을 고려하여 성능 대비 파워 효율이 가장 높은 코어를 선택한다.
태스크 할당 모듈(120)은 코어 선택 모듈(110)에 의해 선택한 코어에 태스크를 할당한다. 그러면 선택한 코어는 비교적 적은 파워를 소모하면서도 충분한 성능으로 해당 태스크를 처리할 수 있다.
이와 같은 방식으로 ISA에 따라 코어 별로 동작 주파수에 따른 파워 소모량의 변화를 고려하여 태스크를 할당함으로써, 성능을 보장하면서도 더욱 전력 소모량을 줄일 수 있는 태스크 스케줄링이 가능하게 된다.
도 2는 본 발명의 일 실시예에 따른 컴퓨팅 시스템을 설명하기 위한 블록도이다.
도 2를 참조하면, 본 발명의 일 실시예에 따른 컴퓨팅 시스템(2)이 도 1의 컴퓨팅 시스템(1)과 다른 점은, 멀티코어 프로세서(20)가 제1 타입 코어 그룹(200)으로 분류되는 제1 타입 코어(B1, B2) 및 제2 타입 코어 그룹(210)으로 분류되는 제2 타입 코어(L1, L2, L3, L4) 외에 제3 타입 코어 그룹(220)으로 분류되는 제3 타입 코어(M1, M2, M3, M4)를 포함하는 트라이 클러스터(tri-cluster)로 구현되었다는 점이다. 물론, 이것은 멀티코어 프로세서(20)의 일 구현례에 불과하며, 코어 그룹의 개수나, 하나의 코어 그룹에 속하는 코어의 개수는 이에 한정되지 않고 얼마든지 변경될 수 있다.
본 발명의 몇몇의 실시예에서, 제1 타입 코어(B1, B2)는 big.MIDdle.LITTLE 아키텍처의 big 코어에 해당하고, 제2 타입 코어(L1, L2, L3, L4)는 big.MIDdle.LITTLE 아키텍처의 LITTLE 코어에 해당하고, 제3 타입 코어(M1, M2, M3, M4)는 big.MIDdle.LITTLE 아키텍처의 MIDdle 코어에 해당할 수 있으나, 본 발명의 범위가 이에 제한되는 것은 아니다. big 코어는 파워 소모가 많은 고성능 코어를 말하고, LITTLE 코어는 상대적으로 파워 소모가 적은 저성능 코어를 말하며, MIDdle 코어는 그 파워 소모량과 성능 수준이 big 코어와 LITTLE 코어의 사이에 해당하는 코어를 말한다. 이들 big 코어, LITTLE 코어 및 MIDdle 코어는 동일한 메모리 영역을 사용하면서, 상황에 따라 동적으로 태스크를 할당받을 수 있다.
이들 제1 타입 코어(B1, B2), 제2 타입 코어(L1, L2, L3, L4) 및 제3 타입 코어(M1, M2, M3, M4)는 버스(290)를 통해 서로 전기적으로 연결된다. 본 발명의 몇몇의 실시예에서, 버스(290)는 AMBA를 따르는, 예컨대 AXI로 구현될 수 있으나, 본 발명의 범위가 이에 제한되는 것은 아니다.
이들 제1 타입 코어(B1, B2), 제2 타입 코어(L1, L2, L3, L4) 및 제3 타입 코어(M1, M2, M3, M4)는 성능 대비 파워 효율이 서로 다를 수 있다. 제1 타입 코어(B1, B2)가 파워 소모가 많은 고성능 코어이고 제2 타입 코어(L1, L2, L3, L4)가 파워 소모가 적은 저성능 코어이며 제3 타입 코어(M1, M2, M3, M4)가 그 중간에 해당하는 코어라고 할지라도, 처리하는 태스크의 비트 폭과 컴퓨팅 시스템(1)이 동작하는 주파수에 따라서, 동일한 성능을 발휘하기 위해 때로는 제1 타입 코어(B1, B2)가 더 많은 파워를 소모할 수도 있고, 때로는 제2 타입 코어(L1, L2, L3, L4)가 더 많은 파워를 소모할 수도 있고, 때로는 제3 타입 코어(M1, M2, M3, M4)가 더 많은 파워를 소모할 수도 있다. 그렇다면, 도 1에서 설명한 바와 같이, 태스크 처리 비트 폭과 동작 주파수에 따른 파워 소모량의 변화를 고려하여 태스크를 멀티코어 프로세서(20)에 할당한다면, 성능을 보장하면서도 더욱 전력 소모량을 줄일 수 있을 것이다.
코어 선택 모듈(110)은 ISA 식별 모듈(100)에 의해 식별된 ISA에 기초하여, 멀티코어 프로세서(20)를 이루는 제1 타입 코어(B1, B2), 제2 타입 코어(L1, L2, L3, L4) 및 제3 타입 코어(M1, M2, M3, M4) 중 성능 대비 파워 효율이 가장 높은 코어를 선택한다. 그리고 태스크 할당 모듈(120)은 코어 선택 모듈(110)에 의해 선택한 코어에 태스크를 할당한다.
이와 같은 방식으로 ISA에 따라 코어 별로 동작 주파수에 따른 파워 소모량의 변화를 고려하여 태스크를 할당함으로써, 성능을 보장하면서도 더욱 전력 소모량을 줄일 수 있는 태스크 스케줄링이 가능하게 된다.
이하에서는 설명의 편의를 위해, 멀티코어 프로세서(20)가 트라이 클러스터로 구현된 것만 예를 들어 설명하겠지만, 본 발명이 이에 제한되는 것은 아니고, 아래에서 설명되는 모든 내용은 도 1의 멀티코어 프로세서(20) 또는 이와 다른 임의의 구조를 갖는 멀티코어 프로세서에 적용될 수 있다.
도 3은 본 발명의 일 실시예에 따른 컴퓨팅 시스템을 설명하기 위한 블록도이다.
도 3을 참조하면, 본 발명의 일 실시예에 따른 컴퓨팅 시스템(3)이 도 2의 컴퓨팅 시스템(2)과 다른 점은, 스케줄러(10)가 파워 성능 테이블(power-performance table)(112)을 더 포함한다는 점이다.
파워 성능 테이블(112)은, ISA 별로, 복수의 코어의 동작 주파수에 따른 성능 대비 파워 값들을 포함할 수 있다. 예를 들어, 성능 대비 파워 값들은 ISA가 32 비트 ISA인 경우와 64 비트 ISA인 경우로 나누어 파워 성능 테이블(112)에 저장될 수 있다. 또한 성능 대비 파워 값들은 각각의 ISA에 대해 코어의 타입 별로 나누어 파워 성능 테이블(112)에 저장될 수 있다.
구체적인 구현 방식에 따라서, 파워 성능 테이블(112)은 비트 폭 별로 별개로 구현될 수도 있고 그렇지 않을 수도 있다. 예를 들어, 파워 성능 테이블(112)은 예컨대 32 비트 ISA에 대한 제1 파워 성능 테이블과, 64 비트 ISA에 대한 제2 파워 성능 테이블을 포함하도록 구현될 수 있다. 이와 달리, 파워 성능 테이블(112)은 단일 테이블로서 그 내부에 32 비트 ISA에 대한 파워 성능 데이터(또는 레코드)와 64 비트 ISA에 대한 파워 성능 데이터(또는 레코드)를 포함하고, 비트 폭을 식별하기 위한 칼럼(column)을 더 포함하도록 구현될 수도 있다.
코어 선택 모듈(110)은 복수의 코어에 대한 파워 성능 테이블(112)을 참조하여, 성능 대비 파워 효율이 가장 높은 코어를 선택한다. 구체적으로, 코어 선택 모듈(110)은, 예를 들어 태스크로부터 식별된 ISA가 32 비트 ISA인 경우, 그리고 멀티코어 프로세서(20)가 제1 동작 주파수로 동작하고 있는 경우, 제1 동작 주파수에서의 제1 타입 코어(B1, B2), 제2 타입 코어(L1, L2, L3, L4) 및 제3 타입 코어(M1, M2, M3, M4)의 성능 대비 파워 값들을 비교하여, 그 값이 가장 낮은(즉, 성능 대비 파워 효율이 가장 높은) 코어를 선택할 수 있다.
또한, 코어 선택 모듈(110)은, 예를 들어 태스크로부터 식별된 ISA가 64 비트 ISA인 경우, 그리고 멀티코어 프로세서(20)가 제2 동작 주파수로 동작하고 있는 경우, 제2 동작 주파수에서의 제1 타입 코어(B1, B2), 제2 타입 코어(L1, L2, L3, L4) 및 제3 타입 코어(M1, M2, M3, M4)의 성능 대비 파워 값들을 비교하여, 그 값이 가장 낮은(즉, 성능 대비 파워 효율이 가장 높은) 코어를 선택할 수 있다. 그리고 태스크 할당 모듈(120)은 코어 선택 모듈(110)에 의해 선택한 코어에 태스크를 할당한다.
이와 같은 방식으로 ISA에 따라 코어 별로 동작 주파수에 따른 파워 소모량의 변화를 고려하여 태스크를 할당함으로써, 성능을 보장하면서도 더욱 전력 소모량을 줄일 수 있는 태스크 스케줄링이 가능하게 된다.
도 4는 본 발명의 일 실시예에 따른 파워 성능 테이블을 설명하기 위한 그래프도이다. 그리고 도 5는 도 4와 관련하여 본 발명의 일 실시예에 따른 컴퓨팅 시스템의 동작을 설명하기 위한 블록도이다.
도 4는 ISA 식별 모듈(100)에 의해 태스크로부터 식별된 ISA가 32 비트 ISA인 경우, 도 3과 관련하여 앞서 설명한 파워 성능 테이블(112)에 저장되는 성능 대비 파워 값들을 그래프화한 것으로, 가로 축은 멀티코어 프로세서(20)의 동작 주파수를 의미하고 세로 축은 성능 대비 파워 값을 의미한다.
그래프(B2)는 제1 타입 코어(B1, B2)의 성능 대비 파워 값을 표시한 것으로, 제1 타입 코어(B1, B2)는 제1 최대 동작 주파수(fmax1)를 갖는다.
그래프(L2)는 제2 타입 코어(L1, L2, L3, L4)는 성능 대비 파워 값을 표시한 것으로, 제2 타입 코어(L1, L2, L3, L4)는 제2 최대 동작 주파수(fmax2)를 갖는다.
그래프(M2)는 제3 타입 코어(M1, M2, M3, M4)는 성능 대비 파워 값을 표시한 것으로, 제3 타입 코어(M1, M2, M3, M4)는 제3 최대 동작 주파수(fmax3)를 갖는다.
여기서 제2 최대 동작 주파수(fmax2)는 제3 최대 동작 주파수(fmax3)보다 낮고, 제3 최대 동작 주파수(fmax3)는 제1 최대 동작 주파수(fmax1)보다 낮다.
코어 선택 모듈(110)은, 예컨대 멀티코어 프로세서(20)가 제1 주파수(f1)의 동작 주파수로 동작하는 경우, 성능 대비 파워 효울이 가장 높은 코어로 제3 타입 코어(M1, M2, M3, M4)를 선택할 수 있다. 왜냐 하면, 제2 타입 코어(L1, L2, L3, L4)는 제1 주파수(f1)에서 동작이 불가능하고, 제1 타입 코어(B1, B2)는 제1 주파수(f1)에서 동작은 가능하나 제3 타입 코어(M1, M2, M3, M4)보다 전력을 더 많이 소모하기 때문이다(P2>P1). 이와 관련하여, 도 5는 코어 선택 모듈(110)이 제1 주파수(f1)에서 제3 타입 코어(M1, M2, M3, M4) 중 코어(220a)를 선택한 것을 나타낸다.
한편, 코어 선택 모듈(110)은, 예컨대 멀티코어 프로세서(20)가 제2 주파수(f2)의 동작 주파수로 동작하는 경우, 성능 대비 파워 효울이 가장 높은 코어로 제1 타입 코어(B1, B2)를 선택할 수 있다. 왜냐 하면, 제2 타입 코어(L1, L2, L3, L4)는 제2 주파수(f2)에서 동작이 불가능하고, 제3 타입 코어(M1, M2, M3, M4) 역시 제2 주파수(f2)에서 동작이 불가능하기 때문이다. 이와 관련하여, 도 5는 코어 선택 모듈(110)이 제2 주파수(f2)에서 제1 타입 코어(B1, B2) 중 코어(200a)를 선택한 것을 나타낸다.
이후 태스크 할당 모듈(120)은 코어 선택 모듈(110)에 의해 선택한 코어에 태스크를 할당한다. 이와 같은 방식으로 ISA에 따라 코어 별로 동작 주파수에 따른 파워 소모량의 변화를 고려하여 태스크를 할당함으로써, 성능을 보장하면서도 더욱 전력 소모량을 줄일 수 있는 태스크 스케줄링이 가능하게 된다.
도 6은 본 발명의 일 실시예에 따른 파워 성능 테이블을 설명하기 위한 그래프도이다. 그리고 도 7은 도 6과 관련하여 본 발명의 일 실시예에 따른 컴퓨팅 시스템의 동작을 설명하기 위한 블록도이다.
도 6은 ISA 식별 모듈(100)에 의해 태스크로부터 식별된 ISA가 64 비트 ISA인 경우, 도 3과 관련하여 앞서 설명한 파워 성능 테이블(112)에 저장되는 성능 대비 파워 값들을 그래프화한 것으로, 가로 축은 멀티코어 프로세서(20)의 동작 주파수를 의미하고 세로 축은 성능 대비 파워 값을 의미한다.
그래프(B1)는 제1 타입 코어(B1, B2)의 성능 대비 파워 값을 표시한 것으로, 제1 타입 코어(B1, B2)는 제1 최대 동작 주파수(fmax1)를 갖는다.
그래프(L1)는 제2 타입 코어(L1, L2, L3, L4)는 성능 대비 파워 값을 표시한 것으로, 제2 타입 코어(L1, L2, L3, L4)는 제2 최대 동작 주파수(fmax2)를 갖는다.
그래프(M1)는 제3 타입 코어(M1, M2, M3, M4)는 성능 대비 파워 값을 표시한 것으로, 제3 타입 코어(M1, M2, M3, M4)는 제3 최대 동작 주파수(fmax3)를 갖는다.
여기서 제2 최대 동작 주파수(fmax2)는 제3 최대 동작 주파수(fmax3)보다 낮고, 제3 최대 동작 주파수(fmax3)는 제1 최대 동작 주파수(fmax1)보다 낮다.
코어 선택 모듈(110)은, 예컨대 멀티코어 프로세서(20)가 제1 주파수(f1)의 동작 주파수로 동작하는 경우, 성능 대비 파워 효울이 가장 높은 코어로 제3 타입 코어(M1, M2, M3, M4)를 선택할 수 있다. 왜냐 하면, 제2 타입 코어(L1, L2, L3, L4)는 제1 주파수(f1)에서 동작이 불가능하고, 제1 타입 코어(B1, B2)는 제1 주파수(f1)에서 동작은 가능하나 제3 타입 코어(M1, M2, M3, M4)보다 전력을 더 많이 소모하기 때문이다(P2>P1). 이와 관련하여, 도 5는 코어 선택 모듈(110)이 제1 주파수(f1)에서 제3 타입 코어(M1, M2, M3, M4) 중 코어(222a)를 선택한 것을 나타낸다.
한편, 코어 선택 모듈(110)은, 예컨대 멀티코어 프로세서(20)가 제3 주파수(f3)의 동작 주파수로 동작하는 경우, 성능 대비 파워 효울이 가장 높은 코어로 제1 타입 코어(B1, B2)를 선택할 수 있다. 왜냐 하면, 제2 타입 코어(L1, L2, L3, L4)는 제3 주파수(f3)에서 동작이 불가능하고, 제3 타입 코어(M1, M2, M3, M4)는 제2 주파수(f2)에서 동작은 가능하나 제1 타입 코어(B1, B2)보다 전력을 더 많이 소모하기 때문이다(P4>P3). 이와 관련하여, 도 5는 코어 선택 모듈(110)이 제1 주파수(f1)에서 제3 타입 코어(M1, M2, M3, M4) 중 코어(202a)를 선택한 것을 나타낸다.
이후 태스크 할당 모듈(120)은 코어 선택 모듈(110)에 의해 선택한 코어에 태스크를 할당한다. 이와 같은 방식으로 ISA에 따라 코어 별로 동작 주파수에 따른 파워 소모량의 변화를 고려하여 태스크를 할당함으로써, 성능을 보장하면서도 더욱 전력 소모량을 줄일 수 있는 태스크 스케줄링이 가능하게 된다.
도 8은 본 발명의 일 실시예에 따른 컴퓨팅 시스템의 동작 방법을 설명하기 위한 순서도이다.
도 8을 참조하면, 본 발명의 일 실시예에 따른 컴퓨팅 시스템의 동작 방법은, 태스크의 ISA를 식별(S801)하는 것을 포함한다.
또한 상기 방법은, 식별된 ISA에 기초하여, 복수의 코어 중 성능 대비 파워 효율이 가장 높은 코어를 선택(S803)하는 것을 포함한다.
본 발명의 몇몇의 실시예에서, 성능 대비 파워 효율이 가장 높은 코어를 선택(S803)하는 것은, 복수의 코어에 대한 파워 성능 테이블(112)을 참조하여, 성능 대비 파워 효율이 가장 높은 코어를 선택하는 것을 포함할 수 있다. 여기서 파워 성능 테이블(112)은, ISA 별로, 복수의 코어의 동작 주파수에 따른 성능 대비 파워 값을 포함한다.
또한 상기 방법은, 선택한 코어에 태스크를 할당(S805)하는 것을 포함한다.
도 9는 본 발명의 일 실시예에 따른 컴퓨팅 시스템의 동작 방법을 설명하기 위한 순서도이다.
도 9를 참조하면, 본 발명의 일 실시예에 따른 컴퓨팅 시스템의 동작 방법은, 선택한 코어 상에서 태스크를 실행(S901)하는 것을 포함한다.
또한 상기 방법은, 컴퓨팅 시스템의 동작 중 복수의 코어 중 상기 성능 대비 파워 효울이 가장 높은 코어를 재선택(S903)하는 것을 포함한다.
또한 상기 방법은, 선택한 코어에 할당된 태스크를 재선택한 코어로 이동 또는 재할당(S905)하는 것을 포함한다.
이제까지 설명한 본 발명의 다양한 실시예들에 따르면, ISA에 따라 코어 별로 동작 주파수에 따른 파워 소모량의 변화를 고려하여 태스크를 할당함으로써, 성능을 보장하면서도 더욱 전력 소모량을 줄일 수 있는 태스크 스케줄링이 가능하게 된다.
이상 첨부된 도면을 참조하여 본 발명의 실시예들을 설명하였으나, 본 발명은 상기 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 제조될 수 있으며, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다.
1, 2, 3: 컴퓨팅 시스템 10: 스케줄러
100: ISA 식별 모듈 110: 코어 선택 모듈
112: 파워 성능 테이블 120: 태스크 할당 모듈
20: 멀티코어 프로세서 200: 제1 타입 코어 그룹
210: 제2 타입 코어 그룹 220: 제3 타입 코어 그룹
290: 버스 B1, B2: 제1 타입 코어
L1, L2, L3, L4: 제2 타입 코어 M1, M2, M3, M4: 제3 타입 코어

Claims (20)

  1. 태스크(task)의 ISA(Instruction Set Architecture)를 식별하는 ISA 식별 모듈;
    상기 식별된 ISA에 기초하여, 복수의 코어 중 성능 대비 파워 효율이 가장 높은 코어를 선택하는 코어 선택 모듈; 및
    상기 선택한 코어에 상기 태스크를 할당하는 태스크 할당 모듈을 포함하되,
    상기 코어 선택 모듈은 상기 복수의 코어에 대한 파워 성능 테이블(power-performance table)을 참조하여, 상기 성능 대비 파워 효율이 가장 높은 코어를 선택하고,
    상기 파워 성능 테이블은, 상기 ISA 별로, 상기 복수의 코어의 동작 주파수에 따른 성능 대비 파워 값을 포함하는 컴퓨팅 시스템.
  2. 삭제
  3. 삭제
  4. 제1항에 있어서,
    상기 복수의 코어는, 제1 최대 동작 주파수를 갖는 제1 타입 코어와, 상기 제1 최대 동작 주파수보다 낮은 제2 최대 동작 주파수를 갖는 제2 타입 코어를 포함하고,
    상기 코어 선택 모듈은 상기 제1 타입 코어 및 상기 제2 타입 코어 중 상기 성능 대비 파워 효울이 가장 높은 코어를 선택하는 컴퓨팅 시스템.
  5. 제4항에 있어서,
    상기 코어 선택 모듈은, 상기 컴퓨팅 시스템의 동작 중 상기 제1 타입 코어 및 상기 제2 타입 코어 중 상기 성능 대비 파워 효울이 가장 높은 코어를 재선택하고,
    상기 태스크 할당 모듈은, 상기 선택한 코어에 할당된 태스크를 상기 재선택한 코어로 이동시키는 컴퓨팅 시스템.
  6. 제4항에 있어서,
    상기 복수의 코어는, 상기 제1 최대 동작 주파수보다 낮고 상기 제2 최대 동작 주파수보다 높은 제3 최대 동작 주파수를 갖는 제3 타입 코어를 더 포함하고,
    상기 코어 선택 모듈은 상기 제1 타입 코어 내지 상기 제3 타입 코어 중 상기 성능 대비 파워 효율이 가장 높은 코어를 선택하는 컴퓨팅 시스템.
  7. 제6항에 있어서,
    상기 코어 선택 모듈은, 상기 컴퓨팅 시스템의 동작 중 상기 제1 타입 코어 내지 상기 제3 타입 코어 중 상기 성능 대비 파워 효울이 가장 높은 코어를 재선택하고,
    상기 태스크 할당 모듈은, 상기 선택한 코어에 할당된 태스크를 상기 재선택한 코어로 이동시키는 컴퓨팅 시스템.
  8. 제1 최대 동작 주파수를 갖는 제1 타입 코어;
    상기 제1 최대 동작 주파수보다 낮은 제2 최대 동작 주파수를 갖는 제2 타입 코어;
    태스크(task)의 ISA(Instruction Set Architecture)를 식별하는 ISA 식별 모듈;
    상기 식별된 ISA에 기초하여, 상기 제2 최대 동작 주파수 이내의 범위에서, 상기 제2 타입 코어의 성능 대비 파워가 상기 제1 타입 코어보다 낮은 경우 상기 제2 타입 코어를 선택하고, 상기 제2 타입 코어의 성능 대비 파워가 상기 제1 타입 코어보다 큰 경우 상기 제1 타입 코어를 선택하는 코어 선택 모듈; 및
    상기 선택한 코어에 상기 태스크를 할당하는 태스크 할당 모듈을 포함하고,
    상기 코어 선택 모듈은 상기 제1 타입 코어 및 상기 제2 타입 코어에 대한 파워 성능 테이블(power-performance table)을 참조하여, 상기 성능 대비 파워 효율이 더 높은 코어를 선택하고,
    상기 파워 성능 테이블은, 상기 ISA 별로, 상기 제1 타입 코어의 동작 주파수에 따른 성능 대비 파워 값과, 상기 제2 타입 코어의 동작 주파수에 따른 성능 대비 파워 값을 포함하는 컴퓨팅 시스템.
  9. 삭제
  10. 삭제
  11. 제8항에 있어서,
    상기 코어 선택 모듈은, 상기 컴퓨팅 시스템의 동작 중 상기 제1 타입 코어 및 상기 제2 타입 코어 중 상기 성능 대비 파워 효울이 더 높은 코어를 재선택하고,
    상기 태스크 할당 모듈은, 상기 선택한 코어에 할당된 태스크를 상기 재선택한 코어로 이동시키는 컴퓨팅 시스템.
  12. 제8항에 있어서,
    상기 제1 최대 동작 주파수보다 낮고 상기 제2 최대 동작 주파수보다 높은 제3 최대 동작 주파수를 갖는 제3 타입 코어를 더 포함하고,
    상기 코어 선택 모듈은 상기 제1 타입 코어 내지 상기 제3 타입 코어 중 상기 성능 대비 파워 효율이 가장 높은 코어를 선택하는 컴퓨팅 시스템.
  13. 제12항에 있어서,
    상기 코어 선택 모듈은, 상기 컴퓨팅 시스템의 동작 중 상기 제1 타입 코어 내지 상기 제3 타입 코어 중 상기 성능 대비 파워 효울이 가장 높은 코어를 재선택하고,
    상기 태스크 할당 모듈은, 상기 선택한 코어에 할당된 태스크를 상기 재선택한 코어로 이동시키는 컴퓨팅 시스템.
  14. 태스크(task)의 ISA(Instruction Set Architecture)를 식별하고,
    상기 식별된 ISA에 기초하여, 복수의 코어 중 성능 대비 파워 효율이 가장 높은 코어를 선택하되, 상기 복수의 코어에 대한 파워 성능 테이블(power-performance table)을 참조하여, 상기 성능 대비 파워 효율이 가장 높은 코어를 선택하고,
    상기 선택한 코어에 상기 태스크를 할당하는 것을 포함하되,
    상기 파워 성능 테이블은, 상기 ISA 별로, 상기 복수의 코어의 동작 주파수에 따른 성능 대비 파워 값을 포함하는 컴퓨팅 시스템의 동작 방법.
  15. 삭제
  16. 삭제
  17. 제14항에 있어서,
    상기 복수의 코어는, 제1 최대 동작 주파수를 갖는 제1 타입 코어와, 상기 제1 최대 동작 주파수보다 낮은 제2 최대 동작 주파수를 갖는 제2 타입 코어를 포함하고,
    상기 성능 대비 파워 효율이 가장 높은 코어를 선택하는 것은, 상기 제1 타입 코어 및 상기 제2 타입 코어 중 상기 성능 대비 파워 효울이 가장 높은 코어를 선택하는 컴퓨팅 시스템의 동작 방법.
  18. 제17항에 있어서,
    상기 컴퓨팅 시스템의 동작 중 상기 제1 타입 코어 및 상기 제2 타입 코어 중 상기 성능 대비 파워 효울이 가장 높은 코어를 재선택하고,
    상기 선택한 코어에 할당된 태스크를 상기 재선택한 코어로 이동시키는 것을 더 포함하는 컴퓨팅 시스템의 동작 방법.
  19. 제17항에 있어서,
    상기 복수의 코어는, 상기 제1 최대 동작 주파수보다 낮고 상기 제2 최대 동작 주파수보다 높은 제3 최대 동작 주파수를 갖는 제3 타입 코어를 더 포함하고,
    상기 성능 대비 파워 효율이 가장 높은 코어를 선택하는 것은 상기 제1 타입 코어 내지 상기 제3 타입 코어 중 상기 성능 대비 파워 효율이 가장 높은 코어를 선택하는 것을 포함하는 컴퓨팅 시스템의 동작 방법.
  20. 제19항에 있어서,
    상기 컴퓨팅 시스템의 동작 중 상기 제1 타입 코어 내지 상기 제3 타입 코어 중 상기 성능 대비 파워 효울이 가장 높은 코어를 재선택하고,
    상기 선택한 코어에 할당된 태스크를 상기 재선택한 코어로 이동시키는 것을 더 포함하는 컴퓨팅 시스템의 동작 방법.
KR1020180135615A 2018-11-07 2018-11-07 컴퓨팅 시스템 및 컴퓨팅 시스템의 동작 방법 KR102552954B1 (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
KR1020180135615A KR102552954B1 (ko) 2018-11-07 2018-11-07 컴퓨팅 시스템 및 컴퓨팅 시스템의 동작 방법
US16/450,299 US11347563B2 (en) 2018-11-07 2019-06-24 Computing system and method for operating computing system
DE102019117800.2A DE102019117800A1 (de) 2018-11-07 2019-07-02 Rechensystem und Verfahren zum Betreiben eines Rechensystems
CN201911044375.7A CN111158868A (zh) 2018-11-07 2019-10-30 计算系统及用于操作计算系统的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180135615A KR102552954B1 (ko) 2018-11-07 2018-11-07 컴퓨팅 시스템 및 컴퓨팅 시스템의 동작 방법

Publications (2)

Publication Number Publication Date
KR20200052558A KR20200052558A (ko) 2020-05-15
KR102552954B1 true KR102552954B1 (ko) 2023-07-06

Family

ID=70459871

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180135615A KR102552954B1 (ko) 2018-11-07 2018-11-07 컴퓨팅 시스템 및 컴퓨팅 시스템의 동작 방법

Country Status (4)

Country Link
US (1) US11347563B2 (ko)
KR (1) KR102552954B1 (ko)
CN (1) CN111158868A (ko)
DE (1) DE102019117800A1 (ko)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210016707A (ko) * 2019-08-05 2021-02-17 삼성전자주식회사 성능효율을 바탕으로 한 스케줄링 방법, 스케줄링 장치 및 컴퓨터 판독가능 저장 매체
US20210124615A1 (en) * 2019-10-29 2021-04-29 Thomas Klingenbrunn Thread scheduling based on performance metric information
US11586472B2 (en) * 2019-12-10 2023-02-21 Advanced Micro Devices, Inc. Method of task transition between heterogenous processors
CN115390921A (zh) * 2021-05-21 2022-11-25 华为技术有限公司 一种调度方法、装置、系统和计算设备
US11797074B2 (en) * 2021-05-25 2023-10-24 Google Llc Multi-mode integrated circuits with balanced energy consumption

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140082630A1 (en) * 2011-12-30 2014-03-20 Boris Ginzburg Providing an asymmetric multicore processor system transparently to an operating system
US20140115363A1 (en) * 2012-10-23 2014-04-24 Qualcomm Incorporated Modal workload scheduling in a heterogeneous multi-processor system on a chip
US20180314308A1 (en) * 2017-05-01 2018-11-01 Drexel University Work Load Scheduling For Multi Core Systems With Under-Provisioned Power Delivery

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004171234A (ja) 2002-11-19 2004-06-17 Toshiba Corp マルチプロセッサシステムにおけるタスク割り付け方法、タスク割り付けプログラム及びマルチプロセッサシステム
US8615647B2 (en) 2008-02-29 2013-12-24 Intel Corporation Migrating execution of thread between cores of different instruction set architecture in multi-core processor and transitioning each core to respective on / off power state
US9507640B2 (en) 2008-12-16 2016-11-29 International Business Machines Corporation Multicore processor and method of use that configures core functions based on executing instructions
CA2695564C (en) * 2010-02-26 2017-05-30 Lesley Lorraine Shannon Modular re-configurable profiling core for multiprocessor systems-on-chip
US9268611B2 (en) * 2010-09-25 2016-02-23 Intel Corporation Application scheduling in heterogeneous multiprocessor computing platform based on a ratio of predicted performance of processor cores
US8793686B2 (en) 2011-06-08 2014-07-29 Microsoft Corporation Operating system decoupled heterogeneous computing
US9448829B2 (en) * 2012-12-28 2016-09-20 Intel Corporation Hetergeneous processor apparatus and method
US9612879B2 (en) 2013-08-01 2017-04-04 Texas Instruments Incorporated System constraints-aware scheduler for heterogeneous computing architecture
KR20160004152A (ko) * 2014-07-02 2016-01-12 삼성전자주식회사 멀티 프로세서의 태스크(task) 우선순위 결정 방법 및 이를 구현하는 전자장치
US10031574B2 (en) * 2015-05-20 2018-07-24 Mediatek Inc. Apparatus and method for controlling multi-core processor of computing system
KR20160137030A (ko) * 2015-05-22 2016-11-30 한국전자통신연구원 씨피유 주파수 제어 장치 및 방법
US9626295B2 (en) 2015-07-23 2017-04-18 Qualcomm Incorporated Systems and methods for scheduling tasks in a heterogeneous processor cluster architecture using cache demand monitoring
US20170212575A1 (en) * 2016-01-21 2017-07-27 Mediatek Inc. Power budget allocation method and apparatus for generating power management output according to system setting of multi-core processor system and target power budget
CN106250235A (zh) * 2016-07-26 2016-12-21 张升泽 基于多内核芯片的多任务调度方法及系统
US20180095792A1 (en) 2016-10-05 2018-04-05 Mediatek Inc. Multi-core system including heterogeneous processor cores with different instruction set architectures
CN108334405A (zh) * 2017-01-20 2018-07-27 阿里巴巴集团控股有限公司 频率异构cpu,频率异构实现方法、装置及任务调度方法
KR20180135615A (ko) 2017-06-13 2018-12-21 변무원 엠보싱이 구비된 열반사판
US10921876B2 (en) * 2018-04-26 2021-02-16 Mediatek Inc. Runtime power table index adjustment for performance and power management

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140082630A1 (en) * 2011-12-30 2014-03-20 Boris Ginzburg Providing an asymmetric multicore processor system transparently to an operating system
US20140115363A1 (en) * 2012-10-23 2014-04-24 Qualcomm Incorporated Modal workload scheduling in a heterogeneous multi-processor system on a chip
US20180314308A1 (en) * 2017-05-01 2018-11-01 Drexel University Work Load Scheduling For Multi Core Systems With Under-Provisioned Power Delivery

Also Published As

Publication number Publication date
US20200142754A1 (en) 2020-05-07
US11347563B2 (en) 2022-05-31
DE102019117800A1 (de) 2020-05-07
KR20200052558A (ko) 2020-05-15
CN111158868A (zh) 2020-05-15

Similar Documents

Publication Publication Date Title
KR102552954B1 (ko) 컴퓨팅 시스템 및 컴퓨팅 시스템의 동작 방법
US20190324819A1 (en) Distributed-system task assignment method and apparatus
EP3073374B1 (en) Thread creation method, service request processing method and related device
EP2564321B1 (en) Memory usage scanning
US9298760B1 (en) Method for shard assignment in a large-scale data processing job
DE112013005287B4 (de) Prozessor mit heterogenen physischen Kernen und in einem Prozessor mit heterogenen physischen Kernen implementiertes Verfahren
US20140331235A1 (en) Resource allocation apparatus and method
US20130263117A1 (en) Allocating resources to virtual machines via a weighted cost ratio
US20130283286A1 (en) Apparatus and method for resource allocation in clustered computing environment
US20110161637A1 (en) Apparatus and method for parallel processing
US8286170B2 (en) System and method for processor thread allocation using delay-costs
KR950704737A (ko) 데이타 처리 시스템 및 운영시스템(Data processing system and operating system)
WO2012029149A1 (ja) 情報処理プログラム、情報処理装置及び情報処理方法
US8352702B2 (en) Data processing system memory allocation
US20170185451A1 (en) Data driven scheduler on multiple computing cores
US20140373025A1 (en) Method for allocating process in multi-core environment and apparatus therefor
JP6882398B2 (ja) メモリプロセッサを用いた多重処理システム及びその動作方法
JPWO2007074583A1 (ja) 再構成可能な演算器を持つプロセッサ
CN114282661A (zh) 神经网络模型的运行方法、可读介质和电子设备
US9262162B2 (en) Register file and computing device using the same
CN108776698B (zh) 一种基于Spark的抗偏斜的数据分片方法
US20210255793A1 (en) System and method for managing conversion of low-locality data into high-locality data
WO2020088078A1 (zh) 一种基于fpga的数据处理方法、装置、设备及介质
JP4409568B2 (ja) 帯域制御プログラム及びマルチプロセッサシステム
KR20190057558A (ko) 멀티 코어 제어 시스템

Legal Events

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