KR102552954B1 - 컴퓨팅 시스템 및 컴퓨팅 시스템의 동작 방법 - Google Patents
컴퓨팅 시스템 및 컴퓨팅 시스템의 동작 방법 Download PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5094—Allocation of resources, e.g. of the central processing unit [CPU] where the allocation takes into account power or heat criteria
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations 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/163—Interprocessor communication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/485—Task life-cycle, e.g. stopping, restarting, resuming execution
- G06F9/4856—Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
- G06F9/4893—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues taking into account power or heat criteria
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation 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/5044—Allocation 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5012—Processor sets
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy 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
본 발명은 컴퓨팅 시스템 및 컴퓨팅 시스템의 동작 방법에 관한 것이다.
멀티 코어 시스템은 이종의(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는 본 발명의 일 실시예에 따른 컴퓨팅 시스템의 동작 방법을 설명하기 위한 순서도이다.
도 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 타입 코어
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)
- 태스크(task)의 ISA(Instruction Set Architecture)를 식별하는 ISA 식별 모듈;
상기 식별된 ISA에 기초하여, 복수의 코어 중 성능 대비 파워 효율이 가장 높은 코어를 선택하는 코어 선택 모듈; 및
상기 선택한 코어에 상기 태스크를 할당하는 태스크 할당 모듈을 포함하되,
상기 코어 선택 모듈은 상기 복수의 코어에 대한 파워 성능 테이블(power-performance table)을 참조하여, 상기 성능 대비 파워 효율이 가장 높은 코어를 선택하고,
상기 파워 성능 테이블은, 상기 ISA 별로, 상기 복수의 코어의 동작 주파수에 따른 성능 대비 파워 값을 포함하는 컴퓨팅 시스템. - 삭제
- 삭제
- 제1항에 있어서,
상기 복수의 코어는, 제1 최대 동작 주파수를 갖는 제1 타입 코어와, 상기 제1 최대 동작 주파수보다 낮은 제2 최대 동작 주파수를 갖는 제2 타입 코어를 포함하고,
상기 코어 선택 모듈은 상기 제1 타입 코어 및 상기 제2 타입 코어 중 상기 성능 대비 파워 효울이 가장 높은 코어를 선택하는 컴퓨팅 시스템. - 제4항에 있어서,
상기 코어 선택 모듈은, 상기 컴퓨팅 시스템의 동작 중 상기 제1 타입 코어 및 상기 제2 타입 코어 중 상기 성능 대비 파워 효울이 가장 높은 코어를 재선택하고,
상기 태스크 할당 모듈은, 상기 선택한 코어에 할당된 태스크를 상기 재선택한 코어로 이동시키는 컴퓨팅 시스템. - 제4항에 있어서,
상기 복수의 코어는, 상기 제1 최대 동작 주파수보다 낮고 상기 제2 최대 동작 주파수보다 높은 제3 최대 동작 주파수를 갖는 제3 타입 코어를 더 포함하고,
상기 코어 선택 모듈은 상기 제1 타입 코어 내지 상기 제3 타입 코어 중 상기 성능 대비 파워 효율이 가장 높은 코어를 선택하는 컴퓨팅 시스템. - 제6항에 있어서,
상기 코어 선택 모듈은, 상기 컴퓨팅 시스템의 동작 중 상기 제1 타입 코어 내지 상기 제3 타입 코어 중 상기 성능 대비 파워 효울이 가장 높은 코어를 재선택하고,
상기 태스크 할당 모듈은, 상기 선택한 코어에 할당된 태스크를 상기 재선택한 코어로 이동시키는 컴퓨팅 시스템. - 제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 타입 코어의 동작 주파수에 따른 성능 대비 파워 값을 포함하는 컴퓨팅 시스템. - 삭제
- 삭제
- 제8항에 있어서,
상기 코어 선택 모듈은, 상기 컴퓨팅 시스템의 동작 중 상기 제1 타입 코어 및 상기 제2 타입 코어 중 상기 성능 대비 파워 효울이 더 높은 코어를 재선택하고,
상기 태스크 할당 모듈은, 상기 선택한 코어에 할당된 태스크를 상기 재선택한 코어로 이동시키는 컴퓨팅 시스템. - 제8항에 있어서,
상기 제1 최대 동작 주파수보다 낮고 상기 제2 최대 동작 주파수보다 높은 제3 최대 동작 주파수를 갖는 제3 타입 코어를 더 포함하고,
상기 코어 선택 모듈은 상기 제1 타입 코어 내지 상기 제3 타입 코어 중 상기 성능 대비 파워 효율이 가장 높은 코어를 선택하는 컴퓨팅 시스템. - 제12항에 있어서,
상기 코어 선택 모듈은, 상기 컴퓨팅 시스템의 동작 중 상기 제1 타입 코어 내지 상기 제3 타입 코어 중 상기 성능 대비 파워 효울이 가장 높은 코어를 재선택하고,
상기 태스크 할당 모듈은, 상기 선택한 코어에 할당된 태스크를 상기 재선택한 코어로 이동시키는 컴퓨팅 시스템. - 태스크(task)의 ISA(Instruction Set Architecture)를 식별하고,
상기 식별된 ISA에 기초하여, 복수의 코어 중 성능 대비 파워 효율이 가장 높은 코어를 선택하되, 상기 복수의 코어에 대한 파워 성능 테이블(power-performance table)을 참조하여, 상기 성능 대비 파워 효율이 가장 높은 코어를 선택하고,
상기 선택한 코어에 상기 태스크를 할당하는 것을 포함하되,
상기 파워 성능 테이블은, 상기 ISA 별로, 상기 복수의 코어의 동작 주파수에 따른 성능 대비 파워 값을 포함하는 컴퓨팅 시스템의 동작 방법. - 삭제
- 삭제
- 제14항에 있어서,
상기 복수의 코어는, 제1 최대 동작 주파수를 갖는 제1 타입 코어와, 상기 제1 최대 동작 주파수보다 낮은 제2 최대 동작 주파수를 갖는 제2 타입 코어를 포함하고,
상기 성능 대비 파워 효율이 가장 높은 코어를 선택하는 것은, 상기 제1 타입 코어 및 상기 제2 타입 코어 중 상기 성능 대비 파워 효울이 가장 높은 코어를 선택하는 컴퓨팅 시스템의 동작 방법. - 제17항에 있어서,
상기 컴퓨팅 시스템의 동작 중 상기 제1 타입 코어 및 상기 제2 타입 코어 중 상기 성능 대비 파워 효울이 가장 높은 코어를 재선택하고,
상기 선택한 코어에 할당된 태스크를 상기 재선택한 코어로 이동시키는 것을 더 포함하는 컴퓨팅 시스템의 동작 방법. - 제17항에 있어서,
상기 복수의 코어는, 상기 제1 최대 동작 주파수보다 낮고 상기 제2 최대 동작 주파수보다 높은 제3 최대 동작 주파수를 갖는 제3 타입 코어를 더 포함하고,
상기 성능 대비 파워 효율이 가장 높은 코어를 선택하는 것은 상기 제1 타입 코어 내지 상기 제3 타입 코어 중 상기 성능 대비 파워 효율이 가장 높은 코어를 선택하는 것을 포함하는 컴퓨팅 시스템의 동작 방법. - 제19항에 있어서,
상기 컴퓨팅 시스템의 동작 중 상기 제1 타입 코어 내지 상기 제3 타입 코어 중 상기 성능 대비 파워 효울이 가장 높은 코어를 재선택하고,
상기 선택한 코어에 할당된 태스크를 상기 재선택한 코어로 이동시키는 것을 더 포함하는 컴퓨팅 시스템의 동작 방법.
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)
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)
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)
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 |
-
2018
- 2018-11-07 KR KR1020180135615A patent/KR102552954B1/ko active IP Right Grant
-
2019
- 2019-06-24 US US16/450,299 patent/US11347563B2/en active Active
- 2019-07-02 DE DE102019117800.2A patent/DE102019117800A1/de active Pending
- 2019-10-30 CN CN201911044375.7A patent/CN111158868A/zh active Pending
Patent Citations (3)
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 |