KR20200122364A - 자원 스케줄링 방법 및 단말 장치 - Google Patents

자원 스케줄링 방법 및 단말 장치 Download PDF

Info

Publication number
KR20200122364A
KR20200122364A KR1020207026994A KR20207026994A KR20200122364A KR 20200122364 A KR20200122364 A KR 20200122364A KR 1020207026994 A KR1020207026994 A KR 1020207026994A KR 20207026994 A KR20207026994 A KR 20207026994A KR 20200122364 A KR20200122364 A KR 20200122364A
Authority
KR
South Korea
Prior art keywords
frame drawing
drawing thread
load
thread
frame
Prior art date
Application number
KR1020207026994A
Other languages
English (en)
Other versions
KR102490908B1 (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 후아웨이 테크놀러지 컴퍼니 리미티드
Publication of KR20200122364A publication Critical patent/KR20200122364A/ko
Application granted granted Critical
Publication of KR102490908B1 publication Critical patent/KR102490908B1/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
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W72/00Local resource management
    • H04W72/50Allocation or scheduling criteria for wireless resources
    • H04W72/52Allocation or scheduling criteria for wireless resources based on load
    • 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/505Allocation 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 the load
    • 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/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • 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
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W72/00Local resource management
    • H04W72/04Wireless resource allocation
    • H04W72/044Wireless resource allocation based on the type of the allocated resource
    • H04W72/0446Resources in time domain, e.g. slots or frames
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W72/00Local resource management
    • H04W72/04Wireless resource allocation
    • H04W72/044Wireless resource allocation based on the type of the allocated resource
    • H04W72/0466Wireless resource allocation based on the type of the allocated resource the resource being a scrambling code
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W72/00Local resource management
    • H04W72/12Wireless traffic scheduling
    • H04W72/1263Mapping of traffic onto schedule, e.g. scheduled allocation or multiplexing of flows
    • 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 Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Image Generation (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

본 출원은 단말 장치 운영체제에 적용되는 자원 스케줄링 방법, 및 자원 스케줄링 방법을 적용하는 단말 장치를 제공한다. 자원 스케줄링 방법은, 프레임 드로잉 스레드의 단위로 자원 스케줄링을 세분화하고, 자원 스케줄링 모드를 결정할 때 프레임 드로잉 스레드의 부하 특징, 예를 들어 자원 요구 정보 또는 실행 정보와 같은 부하 특징을 고려하는 단계를 포함한다. 프레임 드로잉 스레드의 실행 속도가 사용자 경험과 직접 관련되어 있다. 그러므로, 자원 스케줄링이 더 타켓팅될 수 있고 또한 자원 스케줄링 효과가 더 좋을 수 있도록, 목표 자원 스케줄링 모드가 프레임 드로잉 스레드의 부하 특성을 이용하여 결정되고, 따라서 더 세밀한 자원 스케줄링이 구현될 수 있다.

Description

자원 스케줄링 방법 및 단말 장치
본 출원은 2018년 10월 11일에 중국 특허청에 출원된 중국 특허출원 제201811184979.7호("RESOURCE SCHEDULING METHOD AND TERMINAL DEVICE")에 대해 우선권을 주장하는 바이며, 그 전체 내용이 원용에 의해 본 명세서에 포함된다.
본 출원은 단말 장치 분야에 관한 것으로, 더 상세하게는 자원 스케줄링 방법 및 단말 장치에 관한 것이다.
단말 장치의 성능이 향상됨에 따라, 단말 장치의 전력 소비도 증가한다. 하지만, 배터리 용량이 매우 느리게 늘어나고, 단말 장치의 성능 향상을 따라갈 수 없다. 따라서, 단말 장치의 성능을 보장하고 또한 사용자 경험을 더 만족하기 위하여, 단말 장치에 의해 현재 실행되는 태스크의 경우, 현재 태스크의 부하 상태에 기초하여 자원이 스케줄링될 필요가 있다.
종래의 해결책에서, 일반적으로, 과거의 시구간 동안 단말 장치에 의해 현재 수행되는 태스크의 부하 상태가 수집되고, 수집된 부하 상태에 기초하여 현재 실행되는 태스크에 대해 자원이 스케줄링된다. 예를 들어, 현재 실행되는 태스크의 부하가 상대적으로 크면 중앙처리장치(Central Processing Unit, CPU)의 작업 빈도가 증가될 수 있거나, 또는 현재 실행되는 태스크의 부하가 상대적으로 작으면 CPU의 작업 빈도가 감소될 수 있다. 하지만, 종래의 해결책에서, 이전 시구간의 부하 상태에 기초하여 자원이 스케줄링된다. 따라서, 자원 스케줄링은 정확도가 낮고 적시에 수행되지 않는다.
본 출원은 자원 스케줄링 방법과 단말 장치를 제공함으로써 더 정확하게 자원을 스케줄링한다.
제1 양태에 따르면, 자원 스케줄링 방법이 제공된다. 상기 자원 스케줄링 방법은 단말 장치에 적용되고, 상기 자원 스케줄링 방법은 프레임 드로잉 스레드(frame drawing thread)의 부하 특징을 결정하는 단계 - 상기 프레임 드로잉 스레드는 이미지 프레임을 드로잉하는 데 사용됨 -; 상기 프레임 드로잉 스레드의 부하 특징에 기초하여 목표 자원 스케줄링 방식을 결정하는 단계; 및 상기 목표 자원 스케줄링 방식으로 상기 프레임 드로잉 스레드에 대한 자원을 스케줄링하는 단계를 포함한다.
상기 단말 장치는 모바일 단말기(예를 들어, 스마트폰), 또는 컴퓨터, 또는 개인용 정보 단말기(personal digital assistant), 또는 웨어러블 장치, 또는 차량 탑재 장치(vehicle-mounted device), 또는 사물 인터넷 장치 등일 수 있다. 대안적으로, 상기 단말 장치는 이미지를 표시할 수 있는 다른 장치일 수 있다.
상기 단말 장치는 다양한 운영체제를 실행하는 장치일 수 있다. 예를 들어, 상기 단말 장치는 Android 시스템을 실행하는 장치, 또는 iOS 시스템을 실행하는 장치, 또는 Windows 시스템을 실행하는 장치일 수 있다.
상기 목표 자원 스케줄링 방식으로 상기 프레임 드로잉 스레드에 대해 자원이 스케줄링될 때, 상기 프레임 드로잉 스레드(예를 들어, CPU 내의 코어가 상기 프레임 드로잉 스레드를 실행하도록 스케줄링됨)에 대해 컴퓨팅 자원이 스케줄링될 수 있거나, 또는 상기 프레임 드로잉 스레드에 대해 저장 자원이 스케줄링될 수 있거나(예를 들어, 일부 저장 유닛이 상기 프레임 드로잉 스레드의 실행 과정에서 데이터를 저장하도록 스케줄링됨), 또는 상기 프레임 드로잉 스레드에 대해 컴퓨팅 자원과 저장 자원이 모두 스케줄링될 수 있다.
상기 프레임 드로잉 스레드는 상기 이미지 프레임를 드로잉하기 위한 전체 스레드 또는 일부 스레드일 수 있다.
상기 프레임 드로잉 스레드가 상기 프레임 드로잉 스레드의 부하 특징이 결정되기 전에 결정될 수 있다는 것을 이해해야 한다
선택적으로, 상기 프레임 드로잉 스레드를 결정하느 단계는, 상기 이미지 프레임을 드로잉하는 과정에서 키 프레임 드로잉 기능을 호출하기 위한 스레드를 상기 프레임 드로잉 스레드로 결정하는 단계를 포함한다.
상기 키 프레임 드로잉 기능은 상기 이미지 프레임을 드로잉하는 과정에서 일부 키 기능일 수 있고, 상기 키 프레임 드로잉 기능이 사전 설정될 수 있다. 구체적으로, 상기 키 프레임 드로잉 기능은 상기 단말 장치에 의해 사용되는 운영체제의 유형에 기초하여 결정될 수 있고, 서로 다른 유형의 운영체제에 대응하는 키 프레임 드로잉 기능들이 서로 다를 수 있다. 예를 들어, iOS 시스템에 대응하는 키 프레임 드로잉 기능이 Android 시스템에 대응하는 키 프레임 드로잉 기능과 다르다.
상기 드로잉 스레드의 실행 속도가 사용자 경험과 직접 관련되어 있기 때문에, 자원 스케줄링이 더 구체적이고 또한 자원 스케줄링 효과가 더 좋을 수 있도록, 상기 프레임 드로잉 스레드의 부하 특징을 이용하여 상기 목표 자원 스케줄링 방식을 결정하고, 상기 목표 자원 스케줄링 방식으로 상기 프레임 드로잉 스레드에 대한 자원을 추가로 직접 스케줄링하는 것은 더 세밀한 자원 스케줄링을 구현할 수 있다.
제1 양태를 참조하여, 제1 양태의 일부 구현에서, 상기 프레임 드로잉 스레드의 부하 특징은 상기 프레임 드로잉 스레드의 자원 요구 특성을 나타내는 데 사용된다.
구체적으로, 상기 대응하는 목표 자원 스케줄링 방식이 추후에 결정될 수 있도록, 상기 프레임 드로잉 스레드의 자원 요구 특성은 상기 프레임 드로잉 스레드의 부하가 컴퓨팅 집약적(computing-intensive)인지 또는 자원 집약적(resource-intensive)인지 여부를 나타낼 수 있다.
예를 들어, 상기 프레임 드로잉 스레드의 부하가 컴퓨팅 집약적 부하이면, 상기 프레임 드로잉 스레드에 대해 자원이 스케줄링될 때 컴퓨팅 자원이 주로 스케줄링될 수 있거나, 또는 상기 프레임 드로잉 스레드의 부하가 자원 집약적 부하이면, 상기 프레임 드로잉 스레드에 대해 자원이 스케줄링될 때 저장 자원이 주로 스케줄링될 수 있다.
상기 프레임 드로잉 스레드의 자원 요구 특성이 상기 프레임 드로잉 스레드의 부하가 컴퓨팅 집약적이고 또한 자원 집약적이라는 것을 나타내면, 상기 프레임 드로잉 스레드에 대해 자원이 스케줄링될 때 컴퓨팅 자원과 저장 자원이 모두 스케줄링될 수 있다.
제1 양태를 참조하여, 제1 양태의 일부 구현에서, 상기 프레임 드로잉 스레드의 부하 특징은 상기 프레임 드로잉 스레드의 명령어당 평균 사이클 수, 분기 명령어의 수, 및 캐시 실패율(cache miss rate) 중 적어도 하나를 포함한다.
본 출원에서, 상기 프레임 드로잉 스레드의 명령어당 평균 사이클 수, 분기 명령어의 수, 및 캐시 실패율과 같은 파라미터 중 하나 이상이 수집될 때, 상기 프레임 드로잉 스레드의 부하 특징을 획득하는 복잡도가 낮아질 수 있도록, 상기 프레임 드로잉 스레드의 부하 특징이 직접 획득될 수 있다.
상기 명령어당 평균 사이클 수, 상기 분기 명령어의 수, 및 상기 프레임 드로잉 스레드의 캐시 실패율과 같은 파라미터 중 하나 이상이 상기 프레임 드로잉 스레드의 부하 특징을 나타내는 데 직접 사용될 수 있거나, 또는 상기 명령어당 평균 사이클 수, 상기 분기 명령어의 수, 및 상기 프레임 드로잉 스레드의 캐시 실패율과 같은 파라미터 중 하나 이상을 처리한 후에 획득된 파라미터가 상기 프레임 드로잉 스레드의 부하 특징을 나타내는 데 사용될 수 있다는 것을 이해해야 한다.
제1 양태를 참조하여, 제1 양태의 일부 구현에서, 상기 프레임 드로잉 스레드의 부하 특징은 제1 시간 간격(또는 제1 시구간이라고 함)에서 상기 프레임 드로잉 스레드의 명령어당 평균 사이클 수, 분기 명령어의 수, 및 캐시 실패율 중 적어도 하나에 기초하여 결정되고, 상기 제1 시간 간격은 상기 프레임 드로잉 스레드의 실행의 시작과 상기 드로잉 스레드의 실행의 끝 사이의 시구간이다.
상기 제1 시간 간격에서의 상기 명령어당 평균 사이클 수, 상기 분기 명령어의 수, 및 상기 프레임 드로잉 스레드의 캐시 실패율은 상기 제1 시간 간격에서의 상기 프레임 드로잉 스레드의 성능 지표 데이터(performance indicator data)라고도 할 수 있다. 상기 프레임 드로잉 스레드의 부하 특징이 결정될 때, 상기 제1 시간 간격에서의 상기 프레임 드로잉 스레드의 성능 지표 데이터 중 일부 파라미터가 상기 프레임 드로잉 스레드의 부하 특징으로 직접 결정될 수 있거나, 또는 상기 제1 시간 간격에서 상기 프레임 드로잉 스레드의 성능 지표 데이터에 대해 처리 또는 연산이 수행될 수 있고(예를 들어, 상기 성능 지표 데이터 중 2개의 파라미터에 대해 나눗셈 연산이 수행되거나, 또는 상기 성능 지표 데이터 내의 일부 파라미터에 대해 해시 연산이 수행됨), 상기 처리 또는 상기 연산 후에 획득된 데이터가 상기 프레임 드로잉 스레드의 부하 특징으로 결정된다.
선택적으로, 상기 프레임 드로잉 스레드의 부하 특징을 결정하는 단계는, 상기 제1 시간 간격에서의 상기 프레임 드로잉 스레드의 성능 지표 데이터를 기록하는 단계 - 상기 제1 시간 간격은 상기 프레임 드로잉 스레드의 실행의 시작과 상기 드로잉 스레드의 실행의 끝 사이의 시구간이고, 상기 제1 시간 간격에서의 상기 프레임 드로잉 스레드의 성능 지표 데이터는 상기 제1 시간 간격에서의 상기 프레임 드로잉 스레드의 명령어당 평균 사이클 수, 분기 명령어의 수, 캐시 실패율, 및 프로그램 카운터 중 적어도 하나를 포함하고 있음 -; 및 상기 제1 시간 간격에서의 상기 프레임 드로잉 스레드의 성능 지표 데이터에 기초하여 상기 프레임 드로잉 스레드의 부하 특징을 결정하는 단계플 포함한다.
선택적으로, 상기 제1 시간 간격의 길이가 수집될 수 있는 성능 지표 데이터에 기초하여 결정된다.
구체적으로, 상기 제1 시간 간격은 충분한 성능 지표 데이터를 수집하는 데 필요한 시간으로 설정될 수 있다. 또한, 상기 제1 시간 간격이 설정될 때, 비율 임계값이 처음으로 설정될 수 있고, 이미지 프레임의 프레임 드로잉 시간에 대한 상기 제1 시간 간격의 비율이 상기 비율 임계값을 초과할 수 없다.
제1 양태를 참조하여, 제1 양태의 일부 구현에서, 상기 프레임 드로잉 스레드의 부하 특징에 기초하여 목표 자원 스케줄링 방식을 결정하는 단계는, 상기 프레임 드로잉 스레드의 부하 특징에 기초하여 상기 프레임 드로잉 스레드의 예측 부하 값을 결정하는 단계; 및 상기 프레임 드로잉 스레드의 부하 특징, 상기 프레임 드로잉 스레드의 예측 부하 값, 및 사전 설정된 목표 프레임 레이트에 기초하여 상기 목표 자원 스케줄링 방식을 결정하는 단계를 포함한다.
제1 양태를 참조하여, 제1 양태의 일부 구현에서, 상기 프레임 드로잉 스레드의 부하 특징, 상기 프레임 드로잉 스레드의 예측 부하 값, 및 사전 설정된 목표 프레임 레이트에 기초하여 상기 목표 자원 스케줄링 방식을 결정하는 단계는, 상기 프레임 드로잉 스레드의 부하 특징, 상기 프레임 드로잉 스레드의 예측 부하 값, 및 상기 사전 설정된 목표 프레임 레이트에 기초하여, 상기 프레임 드로잉 스레드에 대한 자원을 스케줄링하는 적어도 하나의 자원 스케줄링 방식을 결정하는 단계; 및 상기 적어도 하나의 자원 스케줄링 방식 중에서 가장 낮은 전력 소비에 대응하는 자원 스케줄링 방식을 상기 목표 자원 스케줄링 방식으로 결정하는 단계를 포함한다.
본 출원에서, 상기 프레임 드로잉 스레드의 자원 스케줄링 요구사항이 만족되고 또한 가능한 한 전력 소비가 줄어들 수 있도록, 복수의 사용 가능한 자원 스케줄링 방식 중에서 가장 낮은 전력 소비에 대응하는 자원 스케줄링 방식이 상기 목표 자원 스케줄링 방식으로 결정됨으로써, 성능과 전력 소비 간의 균형을 구현한다.
제1 양태를 참조하여, 제1 양태의 일부 구현에서, 상기 프레임 드로잉 스레드의 부하 특징에 기초하여 목표 자원 스케줄링 방식을 결정하는 단계는, 상기 프레임 드로잉 스레드의 부하 특징에 기초하여 상기 프레임 드로잉 스레드의 예측 부하 값을 결정하는 단계; 및 상기 프레임 드로잉 스레드의 부하 특징, 상기 프레임 드로잉 스레드의 예측 부하 값, 및 제1 매핑 관계 정보에 기초하여 상기 목표 자원 스케줄링 방식을 결정하는 단계 - 상기 제1 매핑 관계 정보는 복수의 부하 정보와 상기 복수의 부하 정보 각각에 대응하는 자원 스케줄링 방식을 포함하고, 상기 복수의 부하 정보 각각은 하나의 부하 특징과 하나의 부하 값을 포함하고 있음 -를 포함한다.
선택적으로, 상기 제1 매핑 관계 정보는 상기 단말 장치에 의해 기록된 이력 정보에 기초하여 결정되고, 상기 이력 정보는 상기 프레임 드로잉 스레드를 이용하여 드로잉된 상기 이미지 프레임에 선행하는 이미지 프레임의 부하 특징, 부하 값, 및 대응하는 자원 스케줄링 방식을 포함한다.
상기 제1 매핑 관계 정보는 표 형태일 수 있거나, 또는 부하 특성, 부하 값, 및 대응하는 자원 스케줄링 방식을 기록하기 위한 다른 형태의 정보일 수 있다.
본 출원에서, 상기 부하 특징과 상기 프레임 드로잉 스레드의 예측 부하 값과 상기 제1 매핑 관계 정보에 기초하여 상기 목표 자원 스케줄링 방식을 결정하는 것은, 직접 계산을 통해 상기 목표 자원 스케줄링 방식을 결정하는 것에 비해 상기 목표 자원 스케줄링 방식을 결정하는 복잡도를 낮출 수 있다.
선택적으로, 상기 자원 스케줄링 방법은, 상기 제1 매핑 관계 정보를 갱신하기 위해 상기 프레임 드로잉 스레드의 부하 특징, 상기 프레임 드로잉 스레드의 예측 부하 값, 및 상기 목표 자원 스케줄링 방식을 기록하는 단계를 더 포함한다.
상기 자원 스케줄링 방식이 상기 제1 매핑 관계 정보에 기초하여 추후에 결정될 수 있도록, 상기 제1 매핑 관계 정보는 상기 제1 매핑 관계 정보를 갱신하여 더 많은 유형의 부하 정보를 포함할 수 있다.
제1 양태를 참조하여, 제1 양태의 일부 구현에서, 상기 프레임 드로잉 스레드의 부하 특징에 기초하여 상기 프레임 드로잉 스레드의 예측 부하 값을 결정하는 단계는, 상기 프레임 드로잉 스레드의 부하 특징과 제2 매핑 관계 정보에 기초하여 상기 프레임 드로잉 스레드의 예측 부하 값을 결정하는 단계 - 상기 제2 매핑 관계 정보는 복수의 부하 특징과 상기 복수의 부하 특징 각각에 대응하는 부하 값을 포함하고 있음 -를 포함한다.
제1 양태를 참조하여, 제1 양태의 일부 구현에서, 상기 프레임 드로잉 스레드의 부하 특징과 제2 매핑 관계 정보에 기초하여 상기 프레임 드로잉 스레드의 예측 부하 값을 결정하는 단계는, 상기 제2 매핑 관계 정보 내의 상기 복수의 부하 특징이 참조 부하 특징을 포함하면, 상기 참조 부하 특징에 대응하는 부하 값을 상기 프레임 드로잉 스레드의 예측 부하 값으로 결정하는 단계 - 상기 참조 부하 특징과 상기 프레임 드로잉 스레드의 부하 특징 사이의 유사도가 유사도 임계값보다 크거나 같음 -를 포함한다.
제1 양태를 참조하여, 제1 양태의 일부 구현에서, 상기 프레임 드로잉 스레드의 부하 특징과 제2 매핑 관계 정보에 기초하여 상기 프레임 드로잉 스레드의 예측 부하 값을 결정하는 단계는, 상기 제2 매핑 관계 정보 내의 상기 복수의 부하 특징이 상기 참조 부하 특징을 포함하지 않으면, 상기 프레임 드로잉 스레드를 이용하여 드로잉된 상기 이미지 프레임에 선행하는 프레임의 부하 값을 상기 프레임 드로잉 스레드의 예측 부하 값으로 결정하는 단계 - 상기 참조 부하 특징과 상기 프레임 드로잉 스레드의 부하 특징 사이의 유사도가 유사도 임계값보다 크거나 같음 -를 포함한다.
선택적으로, 상기 제2 매핑 관계 정보는 상기 단말 장치에 의해 기록된 이력 정보에 기초하여 결정되고, 상기 이력 정보는 상기 프레임 드로잉 스레드를 이용하여 드로잉된 상기 이미지 프레임의 대응하는 부하 값과 부하 특징을 포함할 수 있다.
상기 제2 매핑 관계 정보는 표의 형태일 수 있거나, 또는 부하 특징 및 대응하는 부하 값을 기록하기 위한 다른 형태의 정보일 수 있다.
본 출원에서, 상기 프레임 드로잉 스레드의 예측 부하 값이 상기 프레임 드로잉 스레드의 부하 특징과 상기 제2 매핑 관계를 이용하여 상대적으로 편리하게 결정될 수 있고, 이렇게 하는 것이 상기 프레임 드로잉 스레드의 부하 특징에 기초하여 상기 프레임 드로잉 스레드의 부하 값을 분석하거나 또는 계산하여 상기 프레임 드로잉 스레드의 예측 부하 값을 직접 결정하는 것보다 단순하다.
선택적으로, 상기 자원 스케줄링 방법은, 상기 제2 매핑 관계 정보를 갱신하기 위해 상기 프레임 드로잉 스레드의 부하 특징과 상기 프레임 드로잉 스레드의 예측 부하 값을 기록하는 단계를 더 포함한다.
상기 프레임 드로잉 스레드의 예측 부하 값이 상기 제2 매핑 관계 정보에 기초하여 추후에 결정될 수 있도록, 상기 제2 매핑 관계 정보는 상기 제2 매핑 관계 정보를 갱신하여 더 많은 유형의 부하 특징을 포함할 수 있다.
제1 양태를 참조하여, 제1 양태의 일부 구현에서, 상기 프레임 드로잉 스레드의 부하 특징에 기초하여 목표 자원 스케줄링 방식을 결정하는 단계는, 상기 프레임 드로잉 스레드의 부하 특징과 제3 매핑 관계 정보에 기초하여 상기 목표 자원 스케줄링 방식을 결정하는 단계 - 상기 제3 매핑 관계 정보는 복수의 부하 특징과 상기 복수의 부하 특징 각각에 대응하는 자원 스케줄링 방식을 포함하고 있음 -를 포함한다.
제1 양태를 참조하여, 제1 양태의 일부 구현에서, 상기 프레임 드로잉 스레드의 부하 특징과 제3 매핑 관계 정보에 기초하여 상기 목표 자원 스케줄링 방식을 결정하는 단계는, 상기 제3 매핑 관계 정보 내의 상기 복수의 부하 특징이 참조 부하 특징을 포함하면, 상기 참조 부하 특징에 대응하는 자원 스케줄링 방식을 상기 목표 자원 스케줄링 방식으로 결정하는 단계 - 상기 참조 부하 특징과 상기 프레임 드로잉 스레드의 부하 특징 사이의 유사도가 유사도 임계값보다 크거나 같음 -를 포함한다.
제1 양태를 참조하여, 제1 양태의 일부 구현에서, 상기 프레임 드로잉 스레드의 부하 특징과 제3 매핑 관계 정보에 기초하여 상기 목표 자원 스케줄링 방식을 결정하는 단계는, 상기 제3 매핑 관계 정보 내의 상기 복수의 부하 특징이 상기 참조 부하 특징을 포함하지 않으면, 상기 프레임 드로잉 스레드를 이용하여 드로잉된 상기 이미지 프레임에 선행하는 프레임의 프레임 드로잉 스레드의 목표 자원 스케줄링 방식을 상기 목표 자원 스케줄링 방식으로 결정하는 단계 - 상기 참조 부하 특징과 상기 프레임 드로잉 스레드의 부하 특징 사이의 유사도가 유사도 임계값보다 크거나 같음 -를 포함한다.
선택적으로, 상기 제3 매핑 관계 정보는 상기 단말 장치에 의해 기록된 이력 정보에 기초하여 결정되고, 상기 이력 정보는 상기 프레임 드로잉 스레드를 이용하여 드로잉된 상기 이미지 프레임에 선행하는 이미지 프레임의 대응하는 자원 스케줄링 방식과 부하 특징을 포함한다.
상기 제3 매핑 관계 정보는 표의 형태일 수 있거나, 또는 대응하는 자원 스케줄링 방식과 부하 특징을 기록하기 위한 다른 형태의 정보일 수 있다.
본 출원에서, 상기 프레임 드로잉 스레드의 예측 부하 값을 결정하는 과정이 생략될 수 있고, 상기 목표 자원 스케줄링 방식을 결정하는 복잡도가 더 낮아질 수 있도록, 상기 목표 자원 스케줄링 방식은 상기 프레임 드로잉 스레드의 부하 특징 및 부하 특징과 자원 스케줄링 방식 사이의 매핑 관계에 관한 정보를 이용하여 직접 결정된다.
선택적으로, 상기 자원 스케줄링 방법은, 상기 제3 매핑 관계 정보를 갱신하기 위해, 상기 프레임 드로잉 스레드의 부하 특징과 상기 목표 자원 스케줄링 방식을 기록하는 단계를 더 포함한다.
상기 프레임 드로잉 스레드에 대응하는 상기 자원 스케줄링 방식이 상기 제3 매핑 관계 정보에 기초하여 추후에 결정될 수 있도록, 상기 제3 매핑 관계 정보는 상기 제3 매핑 관계 정보를 갱신하여 더 많은 유형의 부하 특징을 포함할 수 있다.
제1 양태를 참조하여, 제1 양태의 일부 구현에서, 상기 자원 스케줄링 방법은, 상기 프레임 드로잉 스레드의 연관 스레드를 결정하는 단계 - 상기 연관 스레드는 상기 프레임 드로잉 스레드로 하여금 휴면 상태에 들어가게 할 수 있는 스레드임 -; 및 상기 연관 스레드의 실행을 가속화하기 위해 상기 연관 스레드에 대한 자원을 스케줄링하는 단계를 더 포함한다.
상기 프레임 드로잉 스레드로 하여금 휴면 상태에 들어가게 하는 것은, 상기 프레임 드로잉 스레드로 하여금 간헐적으로 휴면 상태에 들어가게 하거나 또는 작동을 중지하게 하는 것일 수 있다.
본 출원에서, 상기 프레임 드로잉 스레드의 실행 속도가 간접적으로 높아질 수 있도록 상기 연관 스레드에 대해 자원이 스케줄링되고, 사용자 경험이 개선된다.
제1 양태를 참조하여, 제1 양태의 일부 구현에서, 상기 프레임 드로잉 스레드의 실행이 미리 결정된 시간 내에 완료되지 않고, 상기 자원 스케줄링 방법이, 상기 프레임 드로잉 스레드의 실행을 가속화하기 위해 상기 프레임 드로잉 스레드에 대한 추가 자원을 스케줄링하는 단계 - 상기 사전 설정된 시간은, 상기 프레임 드로잉 스레드에 대한 자원이 상기 목표 자원 스케줄링 방식으로 스케줄링될 때 상기 프레임 드로잉 스레드의 실행을 완료하는 데 필요한 시간임 -를 더 포함한다.
상기 프레임 드로잉 스레드의 실행이 완료되면 상기 프레임 드로잉 스레드에 대응하는 상기 이미지 프레임의 드로잉이 완료된다는 것을 이해해야 한다. 상기 프레임 드로잉 스레드의 실행이 상기 미리 결정된 시간 내에 완료되지 않으면, 상기 프레임 드로잉 스레드에 대해 더 적은 자원이 상기 목표 자원 스케줄링 방식으로 스케줄링될 수 있다는 것을 나타낸다. 이 경우, 상기 프레임 드로잉 스레드의 실행을 가속화하기 위해 상기 프레임 드로잉 스레드에 대해 추가 자원이 스케줄링됨으로써 사용자 경험을 개선할 필요가 있다.
제1 양태를 참조하여, 제1 양태의 일부 구현에서, 상기 추가 자원의 크기와 제1 차이값 사이에는 양의 상관 관계가 있고, 상기 제1 차이값은 상기 추가 자원을 스케줄링하는 시점과 상기 사전 설정된 시간의 종료 시점 간의 차이값이다.
상기 제1 차이값이 더 크면, 상기 미리 결정된 시간이 더 일찍 만료된다. 상기 프레임 드로잉 스레드의 실행이 가능한 한 빨리 완료될 수 있도록, 상기 프레임 드로잉 스레드에 대해 더 많은 자원이 스케줄링된다.
상기 프레임 드로잉 스레드의 실행이 완료될 때 상기 프레임 드로잉 스레드에 대한 추가 자원을 스케줄링하는 것이 중지된다는 것을 이해해야 한다.
제2 양태에 따르면, 자원 스케줄링 방법이 제공된다. 상기 자원 스케줄링 방법은 단말 장치에 적용되고, 상기 자원 스케줄링 방법은, 프레임 드로잉 스레드의 부하 특징을 결정하는 단계 - 상기 프레임 드로잉 스레드는 이미지 프레임을 드로잉하는 데 사용됨 -; 상기 프레임 드로잉 스레드의 부하 특징 및 상기 프레임 드로잉 스레드에 대응하는 적용 시나리오에 기초하여 상기 프레임 드로잉 스레드의 목표 예측 부하 값을 결정하는 단계; 상기 프레임 드로잉 스레드의 부하 특징, 상기 프레임 드로잉 스레드의 목표 예측 부하 값, 및 사전 설정된 목표 프레임 레이트에 기초하여 목표 자원 스케줄링 방식을 결정하는 단계; 및 상기 목표 자원 스케줄링 방식으로 상기 프레임 드로잉 스레드에 대한 자원을 스케줄링하는 단계를 포함한다.
상기 단말 장치는 모바일 단말기(예를 들어, 스마트폰), 또는 컴퓨터, 또는 개인용 정보 단말기, 또는 웨어러블 장치, 또는 차량 탑재 장치, 또는 사물 인터넷 장치 등일 수 있다. 대안적으로, 상기 단말 장치는 이미지를 표시할 수 있는 다른 장치일 수 있다.
상기 단말 장치는 다양한 운영체제를 실행하는 장치일 수 있다. 예를 들어, 상기 단말 장치는 Android 시스템을 실행하는 장치, 또는 iOS 시스템을 실행하는 장치, 또는 Windows 시스템을 실행하는 장치일 수 있다.
상기 프레임 드로잉 스레드에 대응하는 상기 적용 시나리오는 상기 프레임 드로잉 스레드가 위치하는 응용 프로그램의 유형일 수 있다. 예를 들어, 상기 프레임 드로잉 스레드에 대응하는 상기 적용 시나리오는 비디오 응용 프로그램, 또는 게임 응용 프로그램, 또는 사용자와의 상호작용이 필요한 다른 응용 프로그램(예를 들어, WeChat, 또는 Taobao, 또는 Weibo)일 수 있다.
또한, 상기 프레임 드로잉 스레드에 대응하는 상기 적용 시나리오는 상기 프레임 드로잉 스레드가 위치하는 응용 프로그램의 단계일 수 있다. 예를 들어, 상기 프레임 드로잉 스레드에 대응하는 상기 적용 시나리오는 상기 프레임 드로잉 스레드가 위치하는 상기 응용 프로그램의 시작 단계 또는 종료 단계 등일 수 있다.
대안적으로, 상기 프레임 드로잉 스레드에 대응하는 상기 적용 시나리오는 상기 프레임 드로잉 스레드가 위치하는 응용 프로그램이 실행될 때의 단계일 수 있다. 예를 들어, 상기 프레임 드로잉 스레드에 해당하는 상기 적용 시나리오는 WeChat의 인터페이스(채팅 인터페이스 또는 작은 비디오가 열린 인터페이스)일 수 있다.
상기 프레임 드로잉 스레드가 상기 프레임 드로잉 스레드의 부하 특성이 결정되기 전에 결정될 수 있다는 것을 이해해야 한다.
선택적으로, 상기 프레임 드로잉 스레드를 결정하는 단계는, 이미지 프레임을 드로잉하는 과정에서 키 프레임 드로잉 기능을 호출하기 위한 스레드를 상기 프레임 드로잉 스레드로 결정하는 단계를 포함한다.
상기 키 프레임 드로잉 기능은 상기 이미지 프레임을 드로잉하는 과정에서 일부 키 기능일 수 있고, 상기 키 프레임 드로잉 기능은 사전 설정될 수 있다. 구체적으로, 상기 키 프레임 드로잉 기능은 상기 단말 장치에 의해 사용되는 운영체제의 유형에 기초하여 결정될 수 있고, 서로 다른 유형의 운영체제는 서로 다른 키 프레임 드로잉 기능에 대응할 수 있다. 예를 들어, iOS 시스템에 대응하는 키 프레임 드로잉 기능이 Android 시스템에 대응하는 키 프레임 드로잉 기능과 다르다.
본 출원에서, 상기 프레임 드로잉 스레드의 예측 부하 값이 상기 프레임 드로잉 스레드의 부하 특징 및 상기 프레임 드로잉 스레드에 대응하는 상기 적용 시나리오에 기초하여 더 적절하게 결정될 수 있고, 자원 스케줄링이 더 구체적이고 또한 자원 스케줄링 효과가 더 좋을 수 있도록, 상기 목표 자원 스케줄링 방식이 더 적절하게 결정됨으로써 더 미세한 단위의 스케줄링을 구현할 수 있다.
제2 양태를 참조하여, 제2 양태의 일부 구현에서, 상기 프레임 드로잉 스레드의 부하 특징 및 상기 프레임 드로잉 스레드에 대응하는 적용 시나리오에 기초하여 상기 프레임 드로잉 스레드의 목표 예측 부하 값을 결정하는 단계는, 상기 프레임 드로잉 스레드의 부하 특징에 기초하여 상기 프레임 드로잉 스레드의 제1 예측 부하 값을 결정하는 단계; 상기 프레임 드로잉 스레드에 대응하는 상기 적용 시나리오와 제4 매핑 관계 정보에 기초하여 상기 프레임 드로잉 스레드의 제2 예측 부하 값을 결정하는 단계 - 상기 제4 매핑 관계 정보는 복수의 적용 시나리오와 상기 복수의 적용 시나리오 각각에 대응하는 부하 값을 포함하고 있음 -; 및 상기 제1 예측 부하 값과 상기 제2 예측 부하 값에 기초하여 상기 목표 예측 부하 값을 결정하는 단계를 포함한다.
본 출원에서, 상기 목표 부하 값이 더 잘 결정될 수 있고 또한 상기 목표 자원 스케줄링 방식이 더 잘 결정될 수 있도록, 상기 프레임 드로잉 스레드의 상기 부하 특징과 적용 시나리오에 기초하여 예측 부하 값이 각각 결정되고, 그런 다음 상기 획득된 2개의 예측 부하 값에 기초하여 상기 최종 목표 예측 부하 값이 결정된다.
선택적으로, 상기 제1 예측 부하 값과 상기 제2 예측 부하 값에 기초하여 상기 목표 예측 부하 값을 결정하는 단계는, 상기 제1 예측 부하 값과 상기 제2 예측 부하 값 중 최대 부하 값을 상기 목표 예측 부하 값으로 결정하는 단계를 포함한다.
선택적으로, 상기 제1 예측 부하 값과 상기 제2 예측 부하 값에 기초하여 상기 목표 예측 부하 값을 결정하는 단계는, 상기 제1 예측 부하 값과 상기 제2 예측 부하 값 중 최소 부하 값을 상기 목표 예측 부하 값으로 결정하는 단계를 포함한다.
선택적으로, 상기 제1 예측 부하 값과 상기 제2 예측 부하 값에 기초하여 상기 목표 예측 부하 값을 결정하는 단계는, 공식 C = A × C1 + B × C2에 기초하여 상기 목표 예측 부하 값을 결정하는 단계를 포함한다.
C1이 상기 제1 예측 부하 값이고, C2가 상기 제2 예측 부하 값이며, C가 목표 예측 부하 값이고, A가 제1 가중치 계수이고, B가 제2 가중치 계수이다.
상기 적용 시나리오가 상기 부하 값에 상대적으로 큰 영향을 미치는 경우, A가 상대적으로 큰 값으로 설정될 수 있거나; 또는 상기 적용 시나리오가 부하 값에 상대적으로 작은 영향을 미치는 경우, A가 상대적으로 작은 값으로 설정될 수 있다.
선택적으로, 상기 제1 예측 부하 값과 상기 제2 예측 부하 값에 기초하여 상기 목표 예측 부하 값을 결정하는 단계는, 상기 제1 예측 부하 값과 상기 제2 예측 부하 값의 평균값을 상기 목표 예측 부하 값으로 결정하는 단계를 포함한다.
선택적으로, 상기 프레임 드로잉 스레드의 부하 특징 및 상기 프레임 드로잉 스레드에 대응하는 적용 시나리오에 기초하여 상기 프레임 드로잉 스레드의 목표 예측 부하 값을 결정하는 단계는, 상기 프레임 드로잉 스레드에 대응하는 상기 적용 시나리오가 시작 시나리오인 경우, 상기 프레임 드로잉 스레드에 대응하는 상기 적용 시나리오와 제4 매핑 관계 정보에 기초하여 상기 프레임 드로잉 스레드의 목표 예측 부하 값을 결정하는 단계 - 상기 제4 매핑 관계 정보는 복수의 적용 시나리오와 상기 복수의 적용 시나리오 각각에 대응하는 부하 값을 포함하고 있음 -를 포함한다.
상기 프레임 드로잉 스레드에 대응하는 상기 시나리오가 상기 시작 시나리오인 경우, 상기 시작 시나리오에 대응하는 부하 값이 상대적으로 크기 때문에, 상기 프레임 드로잉 스레드의 목표 예측 부하 값이 상기 프레임 드로잉 스레드의 적용 시나리오에 기초하여 직접 결정될 수 있다.
선택적으로, 상기 프레임 드로잉 스레드의 부하 특징 및 상기 프레임 드로잉 스레드에 대응하는 적용 시나리오에 기초하여 상기 프레임 드로잉 스레드의 목표 예측 부하 값을 결정하는 단계는, 상기 프레임 드로잉 스레드에 대응하는 상기 적용 시나리오가 시작 시나리오 이외의 시나리오인 경우, 상기 프레임 드로잉 스레드의 부하 특징에 기초하여 상기 목표 예측 부하 값을 결정하는 단계를 포함한다.
제2 양태를 참조하여, 제2 양태의 일부 구현에서, 상기 프레임 드로잉 스레드의 부하 특징은 상기 프레임 드로잉 스레드의 자원 요구 특성을 나타내는 데 사용된다.
구체적으로, 상기 대응하는 목표 자원 스케줄링 방식이 추후에 결정될 수 있도록, 상기 프레임 드로잉 스레드의 자원 요구 특성은 상기 프레임 드로잉 스레드의 부하가 컴퓨팅 집약적인지 또는 자원 집약적인지 여부를 나타낼 수 있다.
예를 들어, 상기 프레임 드로잉 스레드의 부하가 컴퓨팅 집약적 부하이면, 상기 프레임 드로잉 스레드에 대해 자원이 스케줄링될 때 컴퓨팅 자원이 주로 스케줄링될 수 있거나, 또는 상기 프레임 드로잉 스레드의 부하가 자원 집약적 부하이면, 상기 프레임 드로잉 스레드에 대해 자원이 스케줄링될 때 저장 자원이 주로 스케줄링될 수 있다.
상기 프레임 드로잉 스레드의 자원 요구 특성이 상기 프레임 드로잉 스레드의 부하가 컴퓨팅 집약적이고 또한 자원 집약적이라는 것을 나타내면, 상기 프레임 드로잉 스레드에 대해 자원이 스케줄링될 때 컴퓨팅 자원과 저장 자원이 모두 스케줄링될 수 있다.
제2 양태를 참조하여, 제2 양태의 일부 구현에서, 상기 프레임 드로잉 스레드의 부하 특징은 상기 프레임 드로잉 스레드의 명령어당 평균 사이클 수, 분기 명령어의 수, 및 캐시 실패율 중 적어도 하나를 포함한다.
본 출원에서, 상기 프레임 드로잉 스레드의 명령어당 평균 사이클 수, 분기 명령어의 수, 및 캐시 실패율과 같은 파라미터 중 하나 이상이 수집될 때, 상기 프레임 드로잉 스레드의 부하 특징을 획득하는 복잡도가 줄어들 수 있도록, 상기 프레임 드로잉 스레드의 부하 특징이 직접 획득될 수 있다.
상기 프레임 드로잉 스레드의 명령어당 평균 사이클 수, 분기 명령어의 수, 및 캐시 실패율과 같은 파라미터 중 하나 이상이 상기 프레임 드로잉 스레드의 부하 특징을 나타내는 데 직접 사용될 수 있다는 것을 이해해야 한다. 일단 상기 프레임 드로잉 스레드의 이러한 파라미터가 획득될 때, 상기 프레임 드로잉 스레드의 부하 특징이 획득된다.
제2 양태를 참조하여, 제2 양태의 일부 구현에서, 상기 프레임 드로잉 스레드의 부하 특징은 제1 시간 간격에서 상기 프레임 드로잉 스레드의 명령어당 평균 사이클 수, 분기 명령어의 수, 및 캐시 실패율 중 적어도 하나에 기초하여 결정되고, 상기 제1 시간 간격은 상기 프레임 드로잉 스레드의 실행의 시작과 상기 드로잉 스레드의 실행의 끝 사이의 시구간이다.
상기 제1 시간 간격에서의 상기 프레임 드로잉 스레드의 명령어당 평균 사이클 수, 분기 명령어의 수, 및 캐시 실패율은 상기 제1 시간 간격에서의 상기 프레임 드로잉 스레드의 성능 지표 데이터라고도 할 수 있다. 상기 프레임 드로잉 스레드의 부하 특징이 결정될 때, 상기 제1 시간 간격에서의 상기 프레임 드로잉 스레드의 성능 지표 데이터 중 일부 파라미터가 상기 프레임 드로잉 스레드의 부하 특징으로 직접 결정될 수 있거나, 또는 상기 제1 시간 간격에서의 상기 프레임 드로잉 스레드의 성능 지표 데이터에 대해 처리 또는 연산이 수행될 수 있고(예를 들어, 상기 성능 지표 데이터 중 2개의 파라미터에 대해 나눗셈 연산이 수행되거나, 또는 상기 성능 지표 데이터 중 일부 파라미터에 대해 해시 연산이 수행됨), 및 상기 처리 또는 상기 연산 후에 획득된 데이터가 상기 프레임 드로잉 스레드의 부하 특징으로 결정된다.
제2 양태를 참조하여, 제2 양태의 일부 구현에서, 상기 프레임 드로잉 스레드의 실행이 미리 결정된 시간 내에 완료되지 않고, 상기 자원 스케줄링 방법은, 상기 프레임 드로잉 스레드의 실행을 가속화하기 위해 상기 프레임 드로잉 스레드에 대한 추가 자원을 스케줄링하는 단계 - 상기 사전 설정된 시간은, 상기 프레임 드로잉 스레드에 대한 자원이 상기 목표 자원 스케줄링 방식으로 스케줄링될 때 상기 프레임 드로잉 스레드의 실행을 완료하는 데 필요한 시간임 -를 더 포함한다.
상기 프레임 드로잉 스레드의 드로잉이 상기 미리 결정된 시간 내에 완료되지 않으면, 상기 프레임 드로잉 스레드에 대해 더 적은 자원이 상기 목표 자원 스케줄링 방식으로 스케줄링될 수 있다는 것을 나타낸다는 것을 이해해야 한다. 이 경우, 상기 프레임 드로잉 스레드의 실행을 가속화하기 위해 상기 프레임 드로잉 스레드에 대해 추가 자원이 스케줄링됨으로써, 사용자 경험을 개선할 필요가 있다.
제2 양태를 참조하여, 제2 양태의 일부 구현에서, 상기 추가 자원의 크기와 제1 차이값 사이에는 양의 상관 관계가 있고, 상기 제1 차이값은 상기 추가 자원을 스케줄링하는 시점과 상기 사전 설정된 시간의 종료 시점 간의 차이이다.
상기 제1 차이값이 더 크면, 상기 미리 결정된 시간이 더 일찍 만료된다. 상기 프레임 드로잉 스레드의 실행이 가능한 한 빨리 완료될 수 있도록, 상기 프레임 드로잉 스레드에 대해 더 많은 자원이 스케줄링된다.
제3 양태에 따르면, 단말 장치가 제공된다. 상기 단말 장치는 제1 양태와 제1 양태의 구현 중 어느 하나의 자원 스케줄링 방법을 수행하도록 구성된 모듈을 포함한다.
제4 양태에 따르면, 단말 장치가 제공된다. 상기 단말 장치는 제2 양태와 제2 양태의 구현 중 어느 하나의 자원 스케줄링 방법을 수행하도록 구성된 모듈을 포함한다.
제5 양태에 따르면, 단말 장치가 제공된다. 상기 단말 장치는 메모리와 프로세서를 포함하고, 상기 메모리는 프로그램을 저장하도록 구성되며, 상기 프로세서는 상기 프로그램을 실행하도록 구성되고, 상기 프로그램을 실행할 때, 상기 프로세서는 제1 양태와 제1 양태의 구현 중 어느 하나의 자원 스케줄링 방법을 수행하도록 구성된다.
제6 양태에 따르면, 단말 장치가 제공된다. 상기 단말 장치는 메모리와 프로세서를 포함하고, 상기 메모리는 프로그램을 저장하도록 구성되며, 상기 프로세서는 상기 프로그램을 실행하도록 구성되고, 상기 프로그램을 실행할 때, 상기 프로세서는 제2 양태와 제2 양태의 구현 중 어느 하나의 자원 스케줄링 방법을 수행하도록 구성된다.
제7 양태에 따르면, 컴퓨터 판독가능 저장 매체가 제공된다. 상기 컴퓨터 판독가능 저장 매체는 프로그램 코드를 저장하도록 구성되고, 상기 프로그램 코드가 컴퓨터에 의해 실행될 때, 상기 컴퓨터는 제1 양태와 제1 양태의 구현 중 어느 하나의 자원 스케줄링 방법을 수행하도록 구성된다.
제8 양태에 따르면, 컴퓨터 판독가능 저장 매체가 제공된다. 상기 컴퓨터 판독가능 저장 매체는 프로그램 코드를 저장하도록 구성되고, 상기 프로그램 코드가 컴퓨터에 의해 실행될 때, 상기 컴퓨터는 제2 양태와 제2 양태의 구현 중 어느 하나의 자원 스케줄링 방법을 수행하도록 구성된다.
선택적으로, 제7 양태와 제8 양태에서, 상기 컴퓨터 판독가능 저장 매체는 단말 장치 내부에 위치할 수 있고, 상기 컴퓨터 판독가능 매체에 저장된 상기 프로그램 코드는 상기 단말 장치에 의해 실행될 수 있다. 상기 프로그램 코드가 상기 단말 장치에 의해 실행될 때, 상기 단말 장치는 제1 양태와 제1 양태의 구현 중 어느 하나의 자원 스케줄링 방법 또는 제2 양태와 제2 양태의 구현 중 어느 하나의 자원 스케줄링 방법을 수행할 수 있다.
제9 양태에 따르면, 칩이 제공된다. 상기 칩은 프로세서를 포함하고, 상기 프로세서는 제1 양태와 제1 양태의 구현 중 어느 하나의 자원 스케줄링 방법을 수행하도록 구성된다.
제10 양태에 따르면, 칩이 제공된다. 상기 칩은 프로세서를 포함하고, 상기 프로세서는 제2 양태와 제2 양태의 구현 중 어느 하나의 자원 스케줄링 방법을 수행하도록 구성된다.
제11 양태에 따르면, 컴퓨터 프로그램(또는 컴퓨터 프로그램 제품이라고 함)이 제공된다. 상기 컴퓨터 프로그램은, 컴퓨터 또는 단말 장치로 하여금 제1 양태와 제1 양태의 구현 중 어느 하나의 자원 스케줄링 방법을 수행할 수 있게 하는 데 사용된다.
제12 양태에 따르면, 컴퓨터 프로그램(또는 컴퓨터 프로그램 제품이라고 함)이 제공된다. 상기 컴퓨터 프로그램은 컴퓨터 또는 단말 장치로 하여금 제2 양태와 제2 양태의 구현 중 어느 하나의 자원 스케줄링 방법을 수행할 수 있게 하는 데 사용된다.
도 1은 본 출원의 일 실시예에 따른 자원 스케줄링 방법을 개략적으로 나타낸 흐름도이다.
도 2는 프레임 드로잉 스레드를 결정하는 과정을 개략적으로 나타낸 도면이다.
도 3은 프레임 드로잉 스레드의 성능 지표 데이터에 기초하여 프레임 드로잉 스레드의 부하 특징을 획득하는 것을 개략적으로 나타낸 흐름도이다.
도 4는 본 출원의 일 실시예에 따른 자원 스케줄링 방법을 개략적으로 나타낸 흐름도이다.
도 5는 프레임 드로잉 스레드의 부하 특징에 기초하여 프레임 드로잉 스레드의 예측 부하 값을 결정하는 것을 개략적으로 나타낸 흐름도이다.
도 6은 프레임 드로잉 스레드의 부하 특징에 기초하여 프레임 드로잉 스레드에 대한 자원을 스케줄링하는 것을 개략적으로 나타낸 흐름도이다.
도 7은 연관 스레드를 결정하고 연관 스레드에 대한 자원을 스케줄링하는 것을 개략적으로 나타낸 흐름도이다.
도 8은 본 출원의 일 실시예에 따른 자원 스케줄링 방법을 개략적으로 나타낸 흐름도이다.
도 9는 본 출원의 일 실시예에 따른 단말 장치를 개략적으로 나타낸 블록도이다.
도 10은 본 출원의 일 실시예에 따른 단말 장치를 개략적으로 나타낸 블록도이다.
도 11은 본 출원의 일 실시예에 따른 단말 장치를 개략적으로 나타낸 구조도이다.
이하, 첨부 도면을 참조하여 본 출원의 기술적 해결책에 대해 설명한다.
종래의 해결책에서, 단말 장치가 주로 현재 태스크의 부하 상태에 기초하여 대응하는 자원 스케줄링 방식을 결정하고, 그런 다음 자원 스케줄링 방식으로 자원을 스케줄링한다. 이와 같이, 스케줄링을 수행하는 방법이 주로 현재 태스크의 부하에 기초하여 결정된다. 이 스케줄링 방식에서 어떠한 사용자 경험도 인식되지 않는다. 대응하는 태스크의 실행이 스케줄링 과정에서 완료될 수 있지만, 사용자 경험이 반드시 상대적으로 좋은 것은 아니다.
단말 장치의 경우, 사용자 경험이 양호한지 또는 열악한지 여부가 명백하게 이미지 프레임의 표시 속도와 관련되어 있다. 이미지 프레임의 표시 속도가 상대적으로 느리면 사용자는 프레임 멈춤(frame freezing)을 느끼고 사용자 경험이 좋지 않은 반면, 이미지 프레임의 표시 속도가 상대적으로 빠르면 사용자는 이미지가 상대적으로 매끄럽다고 느끼고 사용자 경험이 상대적으로 양호하다. 예를 들어, 사용자가 게임하고 있다. 이미지 프레임의 표시 속도가 상대적으로 빠르면, 사용자는 게임이 매우 매끄럽다고 느낀다. 반대로, 사용자는 게임에서 프레임 멈춤이 일어난다고 느낀다.
분석을 통해, 이미지 프레임의 표시 속도와 프레임 드로잉 스레드의 실행 사이에는 명백한 대응관계가 있다는 것을 알 수 있다. 프레임 드로잉 스레드가 상대적으로 빠르게 실행되면 이미지 프레임이 상대적으로 빠르게 표시되거나, 또는 프레임 드로잉 스레드가 상대적으로 느리게 실행되면 이미지 프레임이 상대적으로 느리게 표시된다. 따라서, 정밀한 자원 스케줄링의 경우, 자원이 더 적절하게 스케줄링될 수 있도록, 프레임 드로잉 스레드에 대해 자원이 직접 스케줄링될 수 있다
이하, 도 1을 참조하여 본 출원의 실시예의 자원 스케줄링 방법에 대해 상세하게 설명한다. 본 출원에서 스케줄링되는 자원이 컴퓨팅 자원(예를 들어, CPU) 또는 저장 자원(예를 들어, 저장 공간)일 수 있다는 것을 이해해야 한다.
도 1은 본 출원의 일 실시예에 따른 자원 스케줄링 방법의 개략적인 흐름도이다. 도 1에 도시된 자원 스케줄링 방법은 단말 장치에 의해 수행될 수 있다. 여기서, 단말 장치는 모바일 단말기(예를 들어, 스마트폰), 또는 컴퓨터, 또는 개인용 정보 단말기(personal digital assistant), 또는 웨어러블 장치, 또는 차량 탑재 장치, 또는 사물 인터넷 장치 등일 수 있다.
도 1에 도시된 자원 스케줄링 방법은 단계 101 내지 단계 103을 포함한다. 이하에서는 이러한 단계에 대해 상세하게 설명한다.
101. 이미지 프레임을 드로잉하는 데 사용되는 프레임 드로잉 스레(frame drawing thread)드의 부하 특징을 결정한다.
이미지 프레임은 이미지의 프레임이라고도 할 수 있다. 간략화를 위해, 본 명세서에서는 이미지 프레임과 이미지의 프레임을 총칭하여 이미지 프레임이라고 한다.
프레임 드로잉 스레드의 실행 속도가 사용자 경험에 영향을 미칠 수 있다. 예를 들어, 프레임 드로잉 스레드의 실행 속도가 상대적으로 느리면, 이미지 프레임을 드로잉하는 데 상대적으로 긴 시간이 걸리고, 사용자는 이미지에서 프레임 멈춤이 일어난다고 느낄 수 있거나; 또는 프레임 드로잉 스레드의 실행 속도가 상대적으로 빠르면, 이미지 프레임의 드로잉이 상대적으로 짧은 시간 내에 완료될 수 있고, 사용자는 이미지가 상대적으로 매끄럽다고 느낀다.
프레임 드로잉 스레드의 부하 특징은 프레임 드로잉 스레드의 일부 부하 특징을 반영할 수 있다. 예를 들어, 프레임 드로잉 스레드의 부하 특징은 프레임 드로잉 스레드가 컴퓨팅 집약적(computing-intensive)인지(더 많은 컴퓨팅 자원이 필요함) 또는 액세스 집약적(access-intensive)인지(더 많은 저장 자원이 필요함)를 반영할 수 있다. 프레임 드로잉 스레드의 부하 특징은 프레임 드로잉 스레드의 지연 특징(저지연 또는 고지연)을 더 반영할 수 있다.
선택적으로, 프레임 드로잉 스레드가 단계 101 이전에 결정될 수 있다.
구체적으로, 이미지 프레임을 드로잉하는 과정에서 키 프레임 드로잉 기능을 호출하기 위한 스레드가 프레임 드로잉 스레드로서 결정될 수 있다. 예를 들어, 키 프레임 드로잉 기능이 호출되면, 키 프레임 드로잉 기능을 호출하기 위한 스레드가 키 프레임 드로잉 기능에서 결정되고, 키 프레임 드로잉 기능을 호출하기 위한 스레드가 프레임 드로잉 스레드이다.
키 프레임 드로잉 기능은 이미지 프레임을 드로잉하는 과정에서 일부 키 기능일 수 있고, 키 프레임 드로잉 기능이 미리 설정될 수 있다. 구체적으로, 키 프레임 드로잉 기능은 단말 장치에 의해 사용되는 운영체제의 종류에 기초하여 결정될 수 있고, 서로 다른 유형의 운영체제에 대응하는 키 프레임 드로잉 기능이 서로 다를 수 있다. 예를 들어, iOS 시스템에 해당하는 키 프레임 드로잉 기능이 Android 시스템에 대응하는 키 프레임 드로잉 기능과 다르다.
이하, 안드로이드 시스템에서 프레임 드로잉 스레드를 결정하는 과정에 대해 도 2를 참조하여 상세하게 설명한다.
도 2는 이미지의 프레임을 드로잉하는 과정을 나타낸다. 이 과정은 캔버스 생성, 측정 및 레이아웃, 뷰 생성, 렌더링, 합성, 스왑 버퍼, 및 표시를 포함한다.
표시할 캔버스를 생성하는 과정은 키 프레임 드로잉 기능이 호출된 후 이미지 프레임을 드로잉하기 위한 일련의 단계로 간주될 수 있다. 각각의 과정에서, 키 프레임 드로잉 기능이 대응하는 스레드를 이용하여 호출된다(서로 다른 단계들 또는 과정들이 동일한 스레드 또는 서로 다른 스레드에 의해 수행될 수 있다). 따라서, 이 과정에서 실행되는 스레드가 프레임 드로잉 스레드로 결정될 수 있다.
표시 과정이 주로 하드웨어 성능과 관련되어 있고 자원 스케줄링과는 거의 관련되어 있지 않기 때문에, 도 2에서 버퍼를 교환하기 위해 캔버스 생성의 과정에서 키 프레임 드로잉 기능을 호출하기 위한 스레드가 프레임 드로잉 스레드로 결정될 수 있다는 것을 이해해야 한다.
단계 101에서, 프레임 드로잉 스레드의 성능 지표 데이터(performance indicator data)를 기록하여 프레임 드로잉 스레드의 부하 특징이 결정될 수 있다.
선택적으로, 프레임 드로잉 스레드의 부하 특징은 프레임 드로잉 스레드의 자원 요구 특성을 나타내는 데 사용된다.
구체적으로, 대응하는 목표 자원 스케줄링 방식이 추후에 결정될 수 있도록, 프레임 드로잉 스레드의 자원 요구 특성은 프레임 드로잉 스레드의 부하가 컴퓨팅 집약적인지 또는 자원 집약적인지 여부를 나타낼 수 있다.
선택적으로, 프레임 드로잉 스레드의 부하 특징은 프레임 드로잉 스레드의 자원 요구 특성, 프레임 드로잉 스레드의 지연 특성, 및 프레임 드로잉 스레드의 실행 특성 중 적어도 하나를 나타내는 데 사용될 수 있다.
프레임 드로잉 스레드의 부하 특징에 기초하여 자원이 추후에 예약될 수 있도록, 프레임 드로잉 스레드의 부하 특징은 프레임 드로잉 스레드의 전체 부하 특징을 반영할 수 있다.
선택적으로, 일 실시예에서, 프레임 드로잉 스레드의 부하 특징은 제1 시간 간격에서 프레임 드로잉 스레드의 명령어당 평균 사이클 수(cycles per instruction, CPI), 분기 명령어의 수, 및 캐시 실패율(cache miss rate) 중 적어도 하나에 기초하여 결정되고, 제1 시간 간격은 프레임 드로잉 스레드의 실행의 시작과 드로잉 스레드의 실행의 끝 사이의 시구간이다.
명령어당 평균 사이클 수는 각각의 컴퓨터 명령어를 실행하는 데 필요한 클록 사이클(명령어의 평균 사이클 수라고도 함)을 나타낸다. CPI의 평균 개수는 공식 X = Y/Z에 기초하여 계산될 수 있다. 여기서, Y는 시구간 내의 클럭 사이클의 수를 나타내고, Z는 시구간 내의 명령어의 수를 나타내며, X는 CPI의 평균 개수이다. 분기 명령어의 수는 분기의 수를 나타내는 데 사용된다(분기가 프로그램이다). 여기서, 분기의 수는 점프 명령어의 수로 간주될 수 있고, 하나의 점프 명령어가 하나의 분기를 나나낸다.
프레임 드로잉 스레드의 부하 특징이 결정될 때, 시구간 내의 프레임 드로잉 스레드의 성능 지표 데이터가 먼저 수집될 수 있고, 그런 다음 프레임 드로잉 스레드의 부하 특징이 시구간 내의 프레임 드로잉 스레드의 성능 지표 데이터에 기초하여 결정된다.
선택적으로, 일 실시예에서, 프레임 드로잉 스레드의 부하 특징을 결정하는 단계는, 제1 시간 간격에서 프레임 드로잉 스레드의 명령어당 평균 사이클 수, 분기 명령어의 수, 및 캐시 실패율 중 적어도 하나를 기록하는 단계 - 제1 시간 간격은 프레임 드로잉 스레드의 실행의 시작과 드로잉 스레드의 실행의 끝 사이의 시구간임 -; 및 제1 시간 간격에서 프레임 드로잉 스레드의 명령어당 평균 사이클 수, 분기 명령어의 수, 및 캐시 실패율 중 적어도 하나에 기초하여 프레임 드로잉 스레드의 부하 특징을 결정하는 단계를 포함한다.
제1 시간 간격의 설정은 수집 가능한 성능 지표 데이터에 기초하여 결정될 수 있고, 제1 시간 간격은 충분한 성능 지표 데이터를 수집하는 데 필요한 시간으로 설정될 수 있다. 또한, 제1 시간 간격이 설정될 때 제1 시간 간격에 대해 비율 임계값이 설정될 수 있고, 이미지 프레임의 드로잉 시간에 대한 제1 시간 간격의 비율이 비율 임계값을 초과할 수 없다(이 비율이 비율 임계값을 초과한 후에, 프레임 드로잉 스레드의 실행이 곧 완료되어야 하고, 이 경우 이미지 프레임에 대한 자원을 스케줄링하는 것은 의미가 없다).
프로그램 카운터는 이미지 프레임에 대해 실행 중인 명령의 주소를 기록할 수 있고, 제1 시간 간격에서의 프레임 드로잉 스레드의 프로그램 카운터가 제1 시간 간격에서 이미지 프레임에 대해 실행되는 명령어의 주소일 수 있다.
선택적으로, 프레임 드로잉 스레드의 부하 특징이 결정될 때, 제1 시간 간격에서의 프레임 드로잉 스레드의 성능 지표 데이터가 프레임 드로잉 스레드의 부하 특징으로 직접 결정될 수 있거나; 또는 제1 시간 간격에서의 프레임 드로잉 스레드의 성능 지표 데이터에 대해 분석 또는 처리가 먼저 수행될 수 있고, 분석 또는 처리를 통해 얻어진 데이터 또는 파라미터(처리를 통해 얻어진 데이터 또는 파라미터가 이미지 프레임의 전체 부하 특징을 반영하는 파라미터일 수 있음)가 프레임 드로잉 스레드의 부하 특성으로 사용된다.
예를 들어, 2가지 유형의 프레임 드로잉 스레드의 성능 지표 데이터가 제1 시간 간격에서 수집될 때, 2가지 유형의 성능 지표 데이터에 대해 분할이 수행될 수 있고(구체적으로, 제1 시간 간격에서의 프레임 드로잉 스레드의 명령어당 평균 사이클 수와 제1 시간 간격에서의 프레임 드로잉 스레드의 분기 명령어의 수에 대해 분할 처리가 수행될 수 있음), 얻어진 값이 프레임 드로잉 스레드의 부하 특징을 나타내는 데 사용된다.
또한, 제1 시간 간격에서의 일부 성능 지표 데이터가 수집될 때, 성능 지표 데이터에 대해 해시 연산이 수행될 수 있고(예를 들어, 이미지 프레임에 대해 실행되는 명령의 주소로서 프로그램 카운터에 의해 수집되는 주소에 대해 해시 연산이 수행될 수 있음), 그런 다음 연산을 통해 획득된 정보 또는 파라미터가 프레임 드로잉 스레드의 부하 특징을 나타내는 데 사용된다.
프레임 드로잉 스레드의 부하 특징이 더 정확하게 결정될 수 있도록, 프레임 드로잉 스레드의 성능 지표 데이터가 제1 시간 간격에서 여러 번 수집될 수 있고, 그런 다음 프레임 드로잉 스레드의 부하 특징이 여러 번 수집된 다양한 성능 지표 데이터에 기초하여 포괄적으로 결정된다는 것을 이해해야 한다. 일반적으로, 프레임 드로잉 스레드의 성능 지표 데이터를 수집하는 횟수가 많고 또한 성능 지표 데이터를 수집하는 빈도가 높다는 것은, 프레임 드로잉 스레드의 결정된 부하 특성의 정확도가 높고 또한 오버헤드가 상대적으로 크다는 것을 의미한다. 따라서, 실제 적용에서, 제1 시간 간격의 길이와 성능 지표 데이터를 수집하는 빈도가 경험이나 시뮬레이션 결과에 기초하여 결정될 수 있다.
이하에서는 프레임 드로잉 스레드의 성능 지표 데이터의 구체적인 표현 형식에 대해 표 1을 참조하여 자세하게 설명한다. 표 1은 명령어당 수집된 평균 사이클 수, 수집된 분기 명령어의 수, 수집된 캐시 실패율, 프레임 드로잉 스레드 0과 프레임 드로잉 스레드 1의 수집된 프로그램 카운터의 구체적인 값을 나타낸다. 프레임 드로잉 스레드 0이 예로서 사용된다. 시구간 동안 수집된 프레임 드로잉 스레드 0의 명령어당 평균 사이클 수의 구체적인 값이 0.7, 0.72, 0.6, 및 0.8 등이고, 프레임 드로잉 스레드 0의 시구간 동안 수집된 분기 명령어의 수가 98k, 87k, 및 102k 등이며, 이 시구간 동안 수집된 프레임 드로잉 스레드 0의 캐시 실패율이 0.008, 0.002, 및 0.01 등이고, 이 시구간 동안 수집된 프레임 드로잉 스레드 0의 프로그램 카운터가 0xe8dab47(a)와 0xe8dac79b 등이다. 표 1이 프레임 드로잉 스레드의 부하 특징의 구체적인 표현 형태만을 나타낸다(표 1의 다양한 파라미터의 값도 구체적인 예이다)는 것을 이해해야 한다. 실제로, 프레임 드로잉 스레드의 부하 특징은 표 1의 파라미터 중 적어도 하나를 포함하거나, 또는 프레임 드로잉 스레드의 성능을 반영할 수 있는 다른 파라미터를 포함할 수 있다.
(표 1)
Figure pct00001
102. 프레임 드로잉 스레드의 부하 특징에 기초하여 목표 자원 스케줄링 방식을 결정한다.
103. 목표 자원 스케줄링 방식으로 프레임 드로잉 스레드에 대한 자원을 스케줄링한다.
컴퓨팅 집약적 프레임 드로잉 스레드의 경우, 목표 자원 스케줄링 방식이 결정될 때 더 많은 컴퓨팅 자원을 스케줄링하는 것이 고려될 수 있다. 메모리 집약적 프레임 드로잉 스레드의 경우, 목표 자원 스케줄링 방식이 결정될 때 더 많은 저장 자원을 스케줄링하는 것이 고려될 수 있다. 저지연 요구사항을 가진 프레임 드로잉 스레드의 경우, 목표 자원 스케줄링 방식이 결정될 때 더 많은 자원이 스케줄링되어 프레임 드로잉 스레드의 실행을 가속화할 수 있다. 고지연 요구사항을 가진 프레임 드로잉 스레드의 경우, 목표 자원 스케줄링 방식이 결정될 때 적절한 자원이 스케줄링될 수 있다(프레임 드로잉 스레드는 고지연 서비스에 속하기 때문에, 스레드를 실행하기 위해 과도한 자원을 예약할 필요가 없다)
본 출원에서, 프레임 드로잉 스레드가 이미지 프레임을 드로잉하기 위한 스레드이고, 프레임 드로잉 스레드의 실행 속도가 사용자 경험과 직접 관련되어 있으므로, 자원 스케줄링이 더 구체적이고 또한 자원 스케줄링 효과가 더 좋을 수 있도록, 프레임 드로잉 스레드의 부하 특징을 이용하여 결정된 목표 자원 스케줄링 방식으로 프레임 드로잉 스레드에 대한 스케줄링을 수행하는 것이 더 미세한 단위의 자원 스케줄링을 구현할 수 있다.
선택적으로, 프레임 드로잉 스레드의 부하 특징이 프레임 드로잉 스레드의 성능 지표 데이터에 기초하여 획득된 후에, 이력 레코드 정보가 부하 특징을 포함하는지 여부가 먼저 결정될 수 있다. 이력 레코드 정보가 부하 특징을 포함하지 않으면, 프레임 드로잉 스레드의 부하 값이 계속 획득되고, 프레임 드로잉 스레드의 부하 특징과 부하 값이 기록된다. 이력 레코드 정보가 부하 특징을 포함하면, 프레임 드로잉 스레드의 부하 값이 기록될 수 있고, 이 경우 프레임 드로잉 스레드의 부하 특성만이 기록될 필요가 있다(목표 자원 스케줄링 방식을 추후에 결정하기 위해 프레임 드로잉 스레드의 부하 특징이 기록될 수 있다)는 것을 나타낸다.
도 3은 프레임 드로잉 스레드의 성능 지표 데이터에 기초하여 프레임 드로잉 스레드의 부하 특징을 획득하는 것을 개략적으로 나타낸 흐름도이다. 도 3에 도시된 과정이 단계 201 내지 단계 207을 포함한다. 이하에서는 단계 201 내지 단계 207에 대해 상세하게 설명한다.
201. 시작
단계 201은 프레임 드로잉 스레드의 성능 지표 데이터를 수집하기 시작하는 것을 나타내고, 단계 201의 시작 시간이 프레임 드로잉 스레드가 실행되기 시작하는 시간일 수 있다.
202. 프레임 드로잉 스레드의 성능 지표 데이터를 수집한다.
성능 지표 데이터는 시구간(구체적으로 전술한 제1 시간 간격일 수 있음)에서 프레임 드로잉 스레드의 명령어당 평균 사이클 수, 분기 명령어의 수, 캐시 실패율, 및 프로그램 카운터 중 적어도 하나일 수 있다.
203. 이미지 프레임의 프레임 특징 경계에 도달했는지 여부를 판정한다.
프레임 특징 경계는 시구간일 수 있다. 프레임 드로잉 스레드의 성능 지표 데이터가 시구간 동안 수집된다. 시구간이 만료되면, 프레임 드로잉 스레드의 성능 지표 데이터의 수집이 중지된다. 구체적으로, 프레임 특징 경계가 전술한 설명에서 제1 시간 간격일 수 있다.
204. 수집된 성능 지표 데이터에 기초하여 프레임 드로잉 스레드의 부하 특징을 결정한다.
단계 204에서 프레임 드로잉 스레드의 부하 특징을 결정하는 구체적인 방식과 과정에 대해서는, 전술한 설명의 단계 101 내지 단계 103의 관련 단락에서 프레임 드로잉 스레드의 부하 특징을 결정하는 구체적인 방식과 과정을 참조할 수 있다는 것을 이해해야 한다.
205. 프레임 드로잉 스레드의 부하 특징이 기록된 부하 특징인지 여부를 판정한다.
기록된 부하 특징이 이미지 프레임에 선행하는 프레임의 부하 특징으로서 단말 장치에 의해 기록된 부하 특징일 수 있고, 기록된 부하 특징이 상이한 부하 특징만을 포함할 수 있다는 것을 이해해야 한다.
206. 프레임 드로잉 스레드의 부하 특징을 기록한다.
프레임 드로잉 스레드의 부하 특징이 주로 단계 206에서 기록되어 추후에 목표 자원 스케줄링 방식을 결정한다.
207. 프레임 드로잉 스레드의 부하 특징과 부하 값을 기록한다.
단계 207에서, 프레임 드로잉 스레드의 예측 부하 값이 프레임 드로잉 스레드의 부하 특징에 기초하여 결정될 수 있다(세부사항에 대해서는, 본 명세서에서 프레임 드로잉 스레드의 부하 특징에 기초하여 프레임 드로잉 스레드의 예측 부하 값을 결정하는 관련 내용을 참조하라), 프레임 드로잉 스레드의 예측 부하 값이 프레임 드로잉 스레드의 부하 값으로 사용되고, 부하 값이 부하 특징과 부하 값 사이의 기록된 대응관계에 기초하여 추후에 직접 결정될 수 있도록 프레임 드로잉 스레드의 부하 특징과 부하 값이 기록된다.
본 출원에서, 목표 자원 스케줄링 방식이 프레임 드로잉 스레드의 부하 특징에 기초하여 결정될 때, 자원 스케줄링 방식은 프레임 드로잉 스레드의 부하의 구체적인 특징에 기초하여 결정될 수 있다. 예를 들어, 프레임 드로잉 스레드에 대해 더 많은 자원이 스케줄링되어 프레임 드로잉 스레드의 실행 속도를 높이고 또한 사용자 경험을 개선할 수 있다.
단계 103에서, 목표 자원 스케줄링 방식이 복수의 구체적인 방식으로 프레임 드로잉 스레드의 부하 특징에 기초하여 결정된다. 구체적으로, 프레임 드로잉 스레드의 예측 부하 값이 프레임 드로잉 스레드의 부하 특징에 기초하여 먼저 결정될 수 있고, 그런 다음 목표 자원 스케줄링 방식이 프레임 드로잉 스레드의 부하 특징, 프레임 드로잉 스레드의 예측 부하 값, 및 사전 설정된 목표 프레임 레이트에 기초하여 계산을 통해 결정되거나; 또는 목표 자원 스케줄링 방식이 프레임 드로잉 스레드의 부하 특징, 프레임 드로잉 스레드의 예측 부하 값, 및 사전 설정된 대응관계에 기초하여 결정될 수 있다(여기서, 대응관계는 부하 특징, 부하 값, 및 자원 스케줄링 방식 사이의 대응관계를 포함하고 있음); 또는 목표 자원 스케줄링 방식이 프레임 드로잉 스레드의 부하 특징 및 사전 설정된 대응관계에 기초하여 직접 결정될 수 있다(여기서, 대응관계는 부하 특징과 자원 스케줄링 방식 사이의 대응관계를 포함하고 있음).
선택적으로, 일 실시예에서, 프레임 드로잉 스레드의 부하 특징에 기초하여 목표 자원 스케줄링 방식을 결정하는 단계는, 프레임 드로잉 스레드의 부하 특징에 기초하여 프레임 드로잉 스레드의 예측 부하 값을 결정하는 단계; 및 프레임 드로잉 스레드의 부하 특징, 프레임 드로잉 스레드의 예측 부하 값, 및 사전 설정된 목표 프레임 레이트에 기초하여 목표 자원 스케줄링 방식을 결정하는 단계를 포함한다.
또한, 목표 자원 스케줄링 방식이 프레임 드로잉 스레드의 부하 특징, 프레임 드로잉 스레드의 예측 부하 값, 및 사전 설정된 목표 프레임 레이트에 기초하여 결정될 때, 복수의 사용 가능한 자원 스케줄링 방식이 프레임 드로잉 스레드의 부하 특징, 프레임 드로잉 스레드의 예측 부하 값, 및 사전 설정된 목표 프레임 레이트에 기초하여 먼저 결정될 수 있고, 그런 다음 복수의 사용 가능한 자원 스케줄링 방식 중에서 가장 낮은 전력 소비에 대응하는 자원 스케줄링 방식이 목표 자원 스케줄링 방식으로 결정된다.
본 출원에서, 이미지 프레임의 프레임 드로잉 스레드의 자원 스케줄링 요구사항이 만족되고 또한 전력 소비가 가능한 한 줄어들 수 있도록, 복수의 사용 가능한 자원 스케줄링 방식 중에서 가장 낮은 전력 소비에 대응하는 자원 스케줄링 방식이 목표 자원 스케줄링 방식으로 결정됨으로써, 성능과 전력 소비 사이의 균형을 구현한다.
도 4는 본 출원의 일 실시예에 따른 자원 스케줄링 방법을 개략적으로 나타낸 흐름도이다. 도 4에 도시된 자원 스케줄링 방법이 주로 프레임 드로잉 스레드의 부하 특성에 기초하여 목표 자원 스케줄링 방식을 결정하는 과정을 보여준다는 것을 이해해야 한다. 도 4에 도시된 자원 스케줄링 방법이 단계 301 내지 단계 304를 포함한다. 이하에서는 단계 301 내지 단계 304에 대해 상세하게 설명한다.
301. 프레임 드로잉 스레드의 부하 특징에 기초하여 프레임 드로잉 스레드의 예측 부하 값을 결정한다.
302. 프레임 드로잉 스레드의 부하 특징에 기초하여 프레임 드로잉 스레드의 자원 스케줄링 방식의 목표 유형을 결정한다.
단계 301과 단계 302 사이에는 순서가 존재하지 않는다는 것을 이해해야 한다. 단계 301과 단계 302는 동시에 수행되거나 또는 순차적으로 수행될 수 있다(단계 301이 단계 302 이전에 수행되거나 또는 단계 302가 단계 301 이전에 수행된다).
다른 유형의 부하의 경우, 필요한 자원 스케줄링 방식도 다르다. 단계 202에서, 프레임 드로잉 스레드의 부하 특성과 매칭되는 자원 스케줄링 방식의 유형이 프레임 드로잉 스레드의 부하 특성에 기초하여 결정된다.
예를 들어, 프레임 드로잉 스레드의 부하가 컴퓨팅 집약적이면, 프레임 드로잉 스레드와 매칭되는 자원 스케줄링 방식의 유형이 주로 컴퓨팅 자원을 스케줄링하는 것이거나; 또는 프레임 드로잉 스레드의 부하가 메모리 집약적이면, 프레임 드로잉 스레드와 매칭되는 자원 스케줄링 방식의 유형이 주로 저장 자원을 스케줄링하는 것이다.
303. 프레임 드로잉 스레드의 예측 부하 값과 목표 프레임 레이트에 기초하여 목표 유형의 자원 스케줄링 방식으로부터 적어도 하나의 자원 스케줄링 방식을 결정한다.
예를 들어, 목표 유형이 컴퓨팅 자원을 스케줄링하는 것이면, 적어도 하나의 자원 스케줄링 방식은 단계 303에서 컴퓨팅 자원을 스케줄링하는 유형으로부터 결정될 필요가 있다.
304. 적어도 하나의 자원 스케줄링 방식 중에서 가장 낮은 전력 소비에 대응하는 자원 스케줄링 방식을 목표 자원 스케줄링 방식으로 결정한다.
단계 304에서, 적어도 하나의 자원 스케줄링 방식 중에서 가장 낮은 전력 소비에 대응하는 자원 스케줄링 방식이 에너지 효율 표 또는 에너지 효율 곡선에 기초하여 결정될 수 있고, 그런 다음 전력 소비가 가장 낮은 자원 스케줄링 방식이 목표 자원 스케줄링 방식으로 결정된다.
에너지 효율 표의 구체적인 표현 형식이 표 2에 표시되어 있다. 표 2에서, 성능 값이 프로세서의 처리 능력을 나타내는 데 사용될 수 있고, 성능 값이 크다는 것은, 프로세서의 성능이 더 우수하고 처리 속도가 더 빠르다는 것을 나타낸다.
CPU 내의 가장 큰 코어가 100% 부하로 가장 높은 주파수에서 프로그램을 실행할 때 100M의 프로그램 명령이 고정된 시구간에서 실행된다고 가정하면, 가장 높은 주파수에서의 가장 큰 코어의 성능 값이 1024로 정의될 수 있다. 하지만, CPU 내의 가장 작은 코어가 사용되어 동일한 시간 내에 100% 부하로 가장 낮은 주파수에서 동일한 프로그램을 실행하고 또한 가장 작은 코어가 시구간 동안 10M의 명령어만을 실행하는 경우, CPU 내의 가장 작은 코어가 가장 낮은 주파수에서 실행될 때 대응하는 성능 값이 102.4라는 것이 고려될 수 있다. 다시 말해, CPU 내의 가장 작은 코어가 가장 낮은 주파수에서 실행되는 경우, CPU 내의 가장 작은 코어의 성능 값은 가장 큰 코어가 가장 높은 주파수에서 실행될 때 CPU 내의 가장 큰 코어의 성능 값의 1/10이다.
표 2에 나타낸 바와 같이, 제1 자원 스케줄링 방식의 성능이 107이고, 주파수가 533이며, 자원 스케줄링 방식에 대응하는 전력 소비가 32이다. 3개의 자원 스케줄링 방식, 즉 단계 203에서 자원 스케줄링 방식 1, 자원 스케줄링 방식 2, 및 자원 스케줄링 방식 3이 결정되고, 3개의 자원 스케줄링 방식의 구체적인 정보가 다음과 같다고 가정한다.
자원 스케줄링 방식 1이 스몰 코어(small core), 306의 성능, 1042의 주파수, 119의 전력 소비에 대응한다.
자원 스케줄링 방식 2가 스몰 코어, 388의 성능, 1804의 주파수, 242의 전력 소비에 대응한다.
자원 스케줄링 방식 3은 라지 코어, 373의 성능, 903의 주파수, 191의 전력 소비에 대응한다.
3개의 자원 스케줄링 방식 중에서, 자원 스케줄링 방식 1에 대응하는 전력 소비가 가장 낮고, 자원 스케줄링 방식 1이 목표 자원 스케줄링 방식으로 결정될 수 있다.
(표 2)
Figure pct00002
목표 자원 스케줄링 방식이 결정될 때, 목표 자원 스케줄링 방식을 결정하는 과정을 단순화하고 또한 목표 자원 스케줄링 방식을 결정하는 복잡도를 낮추기 위해, 목표 자원 스케줄링 방식이 이미지 프레임의 프레임 드로잉 스레드의 부하 정보(부하 정보는 부하 특징과 부하 값을 포함하고 있음), 및 부하 정보와 자원 스케줄링 방식 사이의 매핑 관계에 기초하여 직접 결정될 수 있다는 것을 이해해야 한다.
선택적으로, 일 실시예에서, 프레임 드로잉 스레드의 부하 특징에 기초하여 목표 자원 스케줄링 방식을 결정하는 단계는, 프레임 드로잉 스레드의 부하 특징에 기초하여 프레임 드로잉 스레드의 예측 부하 값을 결정하는 단계; 및 프레임 드로잉 스레드의 부하 특징, 프레임 드로잉 스레드의 예측 부하 값, 및 제1 매핑 관계 정보에 기초하여 목표 자원 스케줄링 방식을 결정하는 단계 - 제1 매핑 관계 정보는 복수의 부하 정보와 복수의 부하 정보 각각에 대응하는 자원 스케줄링 방식을 포함하고, 복수의 부하 정보 각각은 하나의 부하 특징과 하나의 부하 값을 포함하고 있음 -를 포함한다.
구체적으로, 프레임 드로잉 스레드의 부하 특징, 프레임 드로잉 스레드의 예측 부하 값, 및 제1 매핑 관계 정보에 기초하여 목표 자원 스케줄링 방식을 결정하는 단계는, 프레임 드로잉 스레드의 부하 특징에 대응하는 자원 스케줄링 방식과 제1 매핑 관계 정보 내의 프레임 드로잉 스레드의 예측 부하 값을 목표 자원 스케줄링 방식으로 결정하는 단계를 포함한다.
목표 자원 스케줄링 방식을 결정하는 과정에서, 프레임 드로잉 스레드의 부하 특징과 매칭되는 제1 부하 특징, 및 프레임 드로잉 스레드의 예측 부하 값과 매칭되는 제1 부하 값이 제1 매핑 관계 정보로부터 결정될 수 있고, 그런 다음 제1 부하 특징과 제1 부하 값에 대응하는 자원 스케줄링 방식이 제1 매핑 관계 정보에 기초하여 목표 자원 스케줄링 방식으로 결정된다.
제1 부하 특징이 제1 매핑 관계 정보로부터 결정될 때, 제1 매핑 관계에 포함된 복수의 부하 특징 중에 있는 부하 특징으로서 프레임 드로잉 스레드의 부하 특징과의 유사도가 유사도 임계값보다 크거나 같은 부하 특징이 제1 부하 특징으로 결정될 수 있다. 유사하게, 제1 부하 값이 제1 매핑 관계 정보로부터 결정될 때, 제1 매핑 관계에 포함된 복수의 부하 값 중에 있는 부하 값으로서 프레임 드로잉 스레드의 예측 부하 값과의 유사도가 유사도 임계값보다 크거나 같은 부하 값이 제1 부하 값으로 결정될 수 있다.
선택적으로, 제1 매핑 관계는 단말 장치에 의해 기록된 이력 정보에 기초하여 결정될 수 있고, 이력 정보는 이미지 프레임에 선행하는 이미지 프레임의 부하 특징, 부하 값, 및 대응하는 자원 스케줄링 방식을 포함한다.
제1 매핑 관계 정보는 표의 형태일 수 있거나, 또는 부하 특징, 부하 값, 및 대응하는 자원 스케줄링 방식을 기록하기 위한 다른 형태의 정보일 수 있다.
예를 들어, 제1 매핑 관계 정보의 구체적인 표현 형태가 표 3에 표시되어 있다.
(표 3)
Figure pct00003
표 3에서, 부하 특징에 포함되는 구체적인 파라미터가 표 1의 명령어당 평균 사이클 수, 분기 명령어의 수, 캐시 실패율, 및 프로그램 카운터 중 적어도 하나일 수 있고, 자원 스케줄링 방식에 포함되는 구체적인 파라미터가 프로세서 유형, 성능, 및 주파수와 같은 파라미터 중 어느 하나일 수 있으며, 부하 값은 스레드 실행 빈도 및 시간에 기초하여 결정될 수 있다. 부하 값은 프레임 드로잉 스레드에 의해 실행될 필요가 있는 태스크의 수를 나타낼 수 있다. 부하 값이 크다는 것은, 프레임 드로잉 스레드에 의해 실행될 필요가 있는 프로그램 명령어의 수가 많다는 것을 나타낸다.
표 3에 나타낸 바와 같이, 프레임 드로잉 스레드의 부하 특징이 표 3의 부하 특징 1과 일치하고 또한 프레임 드로잉 스레드의 부하 값이 표 3의 부하 값 1과 일치하면, 부하 특징 1과 부하 값 1에 대응하는 자원 스케줄링 방식 1이 표 3에 따라 목표 자원 스케줄링 방식으로 결정될 수 있다.
본 출원에서, 부하 특징과 프레임 드로잉 스레드의 예측 부하 값과 제1 매핑 관계 정보에 기초하여 목표 자원 스케줄링 방식을 결정하는 것은, 직접 계산을 통해 목표 자원 스케줄링 방식을 결정하는 것에 비해 목표 자원 스케줄링 방식을 결정하는 복잡도를 낮출 수 있다.
본 출원에서, 프레임 드로잉 스레드의 예측 부하 값이 결정될 때, 프레임 드로잉 스레드의 예측 부하 값은 프레임 드로잉 스레드의 부하 특징, 및 부하 특징과 부하 값 사이의 매핑 관계에 기초하여 결정될 수 있다.
선택적으로, 일 실시예에서, 프레임 드로잉 스레드의 부하 특징에 기초하여 프레임 드로잉 스레드의 예측 부하 값을 결정하는 단계는, 프레임 드로잉 스레드의 부하 특징과 제2 매핑 관계 정보에 기초하여 프레임 드로잉 스레드의 부하 특징에 대응하는 부하 값을 프레임 드로잉 스레드의 예측 부하 값으로 결정하는 단계 - 제2 매핑 관계 정보는 복수의 부하 특징과 복수의 부하 특징 각각에 대응하는 부하 값을 포함하고 있음 -을 포함한다.
제2 매핑 관계 정보는 단말 장치에 의해 기록된 이력 정보에 기초하여 결정될 수 있고, 이력 정보는 이미지 프레임 선행하는 이미지 프레임의 부하 특징 및 대응하는 부하 값을 포함한다.
제2 매핑 관계 정보는 표의 형태일 수 있거나, 또는 부하 특징 및 대응하는 부하 값을 기록하기 위한 다른 형태의 정보일 수 있다.
프레임 드로잉 스레드의 예측 부하 값이 프레임 드로잉 스레드의 부하 특징과 제2 매핑 관계를 이용하여 상대적으로 편리하게 결정될 수 있고, 이는 프레임 드로잉 스레드의 부하 특징에 기초하여 프레임 드로잉 스레드의 부하 값을 분석하거나 또는 계산함으로써 프레임 드로잉 스레드의 예측 부하 값을 직접 결정하는 것보다 단순하다.
제2 매핑 관계의 구체적인 형태가 표 4에 표시될 수 있다. 여기서, ID는 프레임 번호를 나타내고, 각각의 프레임은 하나의 프레임 특징에 대응하며, 각각의 프레임 특징은 하나의 부하 값에 대응한다. 이미지 프레임에 선행하는 프레임의 프레임 특징과 부하가 표 4에 기록될 수 있다. 따라서, 표 4는 단말 장치에 의해 기록된 적어도 일부 이력 정보(프레임 및 프레임 특성 및 프레임에 대응하는 부하를 포함하는 이력 정보)로부터 생성될 수 있다.
(표 4)
Figure pct00004
표 4의 프레임 특징이 분기 명령어의 수와 캐시 실패율을 예로 들어 설명된 것일 뿐임을 이해해야 한다. 실제로, 프레임 특징이 프레임 특징을 반영할 수 있는 다른 파라미터를 이용하여 지시될 수 있다.
프레임 드로잉 스레드의 예측 부하 값은 구체적으로, 다음의 2가지 경우에 프레임 드로잉 스레드의 부하 특징과 제2 매핑 관계 정보에 기초하여 결정될 수 있다.
(1) 제2 매핑 관계 정보 내의 복수의 부하 특징이 프레임 드로잉 스레드의 부하 특징과의 유사도가 사전 설정된 유사도에 도달하는 참조 부하 특징을 포함하면, 참조 부하 특징에 대응하는 부하 값이 프레임 드로잉 스레드의 예측 부하 값으로 결정된다.
(2) 복수의 부하 특징이 참조 부하 특징을 포함하지 않으면, 이미지 프레임에 선행하는 프레임의 부하 값이 프레임 드로잉 스레드의 예측 부하 값으로 결정된다.
프레임 드로잉 스레드의 부하 특징과의 유사도가 사전 설정된 유사도에 도달한다는 것은, 프레임 드로잉 스레드의 부하 특징과의 유사도가 유사도 임계값보다 크거나 같다는 것을 의미할 수 있다.
참조 부하 특징이 하나의 부하 특징일 수 있거나(제2 매핑 관계 정보가 프레임 드로잉 스레드의 부하 특징과의 유사도가 유사도 임계값보다 크거나 같은 단 하나의 부하 특징을 포함하고 있음), 또는 복수의 부하 특징(제2 매핑 관계 정보가 프레임 드로잉 스레드의 부하 특징과의 유사도가 유사도 임계값보다 크거나 같은 복수의 부하 특징을 포함하고 있음)일 수 있다는 것을 이해해야 한다. 참조 부하 특징이 하나의 부하 특징이면, 참조 부하 특징에 대응하는 부하 값이 프레임 드로잉 스레드의 예측 부하 값으로 직접 결정될 수 있다. 참조 부하 특징이 복수의 부하 특징이면, 부하 특징 중 어느 하나에 대응하는 부하 값이 프레임 드로잉 스레드의 예측 부하 값으로 결정될 수 있거나, 또는 프레임 드로잉 스레드의 부하 특징과의 유사도가 가장 높은 부하 특징에 대응하는 부하 값이 목표 자원 스케줄링 방식으로 결정될 수 있다.
이미지 프레임에 선행하는 프레임이 이미지 프레임 이전에 표시되는 이미지 프레임일 수 있고, 또한 이미지 프레임에 선행하는 프레임이 이미지 프레임 이전에 표시되고 또한 이미지에 인접한 이미지 프레임일 수 있다는 것을 이해해야 한다.
인접한 프레임의 프레임 드로잉 스레드의 부하 값이 일반적으로 크게 다르지 않다. 따라서, 복수의 부하 특징이 현재 프레임 드로잉 스레드의 부하 특징과의 유사도가 요구사항을 만족하는 참조 부하 특징을 포함하지 않으면, 이미지 프레임에 선행하는 프레임의 부하 값이 프레임 드로잉 스레드의 예측 부하 값으로 직접 결정될 수 있다. 목표 자원 스케줄링 방식을 결정하는 복잡도 또는 계산량을 더 낮추기 위하여, 목표 스케줄링 방식이 이미지 프레임의 프레임 드로잉 스레드의 부하 특성, 및 부하 특성과 자원 스케줄링 방식 사이의 매핑 관계에 기초하여 직접 결정될 수 있다.
도 5는 프레임 드로잉 스레드의 부하 특성에 기초하여 프레임 드로잉 스레드의 예측 부하 값을 결정하는 것을 개략적으로 나타낸 흐름도이다. 도 5에 도시된 과정이 단계 401 내지 단계 406을 포함한다. 이하에서는 이러한 단계를 자세하게 설명한다.
401. 프레임 드로잉 스레드의 부하 특징을 기록한다.
402. 프레임 드로잉 스레드를 이용하여 드로잉된 이미지 프레임에 선행하는 프레임의 부하 특징을 획득한다.
구체적으로, 단계 402에서, 이미지 프레임에 선행하는 프레임의 부하 특징은 기록된 부하 특징으로부터 획득될 수 있다.
403. 이미지 프레임에 선행하는 프레임의 부하 특징에 대한 프레임 드로잉 스레드의 부하 특징의 변화가 사전 설정된 한도를 초과하는지 여부를 판정한다.
단계 403에서, 이미지 프레임에 선행하는 프레임의 부하 특징에 대한 프레임 드로잉 스레드의 부하 특징의 변화가 사전 설정된 한도를 초과하면, 이미지 프레임에 선행하는 프레임의 부하 특징과 프레임 드로잉 스레드의 부하 특징 간의 차이값이 상대적으로 크고, 이 경우 프레임 드로잉 스레드의 부하 특징과 매칭되는 참조 부하 특징이 미리 기록된 이력 데이터에서 검색될 필요가 있다는 것, 즉 단계 404가 수행될 필요가 있다는 것을 나타낸다고 이해해야 한다. 이미지 프레임에 선행하는 프레임의 부하 특징에 대한 프레임 드로잉 스레드의 부하 특징의 변화가 사전 설정된 한도를 초과하지 않으면, 이미지 프레임에 선행하는 프레임의 부하 특징과 프레임 드로잉 스레드의 부하 특징 사이의 유사도가 상대적으로 크고, 이 경우 이미지 프레임에 선행하는 프레임의 부하 특징이 프레임 드로잉 스레드의 부하 특징과 매칭되는 참조 부하 특징으로 직접 결정될 수 있다는 것, 즉 단계 406가 수행된다는 것을 나타낸다.
404. 기록된 이력 데이터가 프레임 드로잉 스레드의 부하 특징과 매칭되는 참조 부하 특징을 포함하는지 여부를 판정한다.
단계 404에서, 참조 부하 특징이 프레임 드로잉 스레드의 부하 특징과의 유사도가 유사도 임계값보다 크거나 같은 부하 특징일 수 있다.
405. 이미지 프레임에 선행하는 프레임의 부하 특징에 대응하는 부하 값을 프레임 드로잉 스레드의 예측 부하 값으로 결정한다.
406. 참조 부하 특징에 대응하는 부하 값을 프레임 드로잉 스레드의 예측 부하 값으로 결정한다.
선택적으로, 일 실시예에서, 프레임 드로잉 스레드의 부하 특징에 기초하여 목표 자원 스케줄링 방식을 결정하는 단계는, 프레임 드로잉 스레드의 부하 특징과 제3 매핑 관계 정보에 기초하여 프레임 드로잉 스레드의 부하 특징에 대응하는 자원 스케줄링 방식을 목표 자원 스케줄링 방식으로 결정하는 단계 - 제3 매핑 관계 정보는 복수의 부하 특징과 복수의 부하 특징 각각에 대응하는 자원 스케줄링 방식을 포함하고 있음 -을 포함한다
제3 매핑 관계 정보는 단말 장치에 의해 기록된 이력 정보에 기초하여 결정될 수 있다(이력 정보는 이미지 프레임 이전에 표시된 프레임의 부하 특징 및 대응하는 자원 스케줄링 방식을 포함한다).
제3 매핑 관계 정보는 표의 형태일 수 있거나, 또는 대응하는 자원 스케줄링 방식 및 부하 특징을 기록하기 위한 다른 형태의 정보일 수 있다.
본 출원에서, 이미지 프레임의 프레임 드로잉 스레드에 기초하여 이미지 프레임의 예측 부하 값을 결정하는 과정이 생략될 수 있고 또한 목표 자원 스케줄링 방식을 결정하는 복잡도가 더 낮아질 수 있도록, 목표 자원 스케줄링 방식이 프레임 드로잉 스레드의 부하 특징 및 부하 특징과 자원 스케줄링 방식 사이의 매핑 관계에 관한 정보를 이용하여 직접 결정된다.
목표 자원 스케줄링 방식이 프레임 드로잉 스레드의 부하 특징과 제3 매핑 관계 정보에 기초하여 결정될 때, 프레임 드로잉 스레드의 부하 특징과 상대적으로 유사한 부하 특징이 제3 매핑 관계 정보로부터 선택될 수 있고, 그런 다음 유사한 부하 특징에 대응하는 자원 스케줄링 방식이 목표 자원 스케줄링 방식으로 결정된다.
구체적으로, 프레임 드로잉 스레드의 부하 특징과 제3 매핑 관계 정보에 기초하여 목표 자원 스케줄링 방식을 결정하는 단계는, 제3 매핑 관계 정보 내의 복수의 부하 특징이 참조 부하 특징을 포함하면, 참조 부하 특징에 대응하는 자원 스케줄링 방식을 목표 자원 스케줄링 방식으로 결정하는 단계 - 참조 부하 특징과 프레임 드로잉 스레드의 부하 특징 사이의 유사도가 유사도 임계값보다 크거나 같음 -; 또는 제3 매핑 관계 정보 내의 복수의 부하 특징이 참조 부하 특징을 포함하지 않으면, 이미지 프레임에 선행하는 프레임의 프레임 드로잉 스레드의 목표 자원 스케줄링 방식을 목표 자원 스케줄링 방식으로 결정하는 단계를 포함한다.
참조 부하 특징이 하나의 부하 특징일 수 있거나(제3 매핑 관계 정보는 프레임 드로잉 스레드의 부하 특징과의 유사도가 유사도 임계값보다 크거나 같은 단 하나의 부하 특징을 포함하고 있음), 또는 복수의 부하 특징일 수 있다(제3 매핑 관계 정보는 프레임 드로잉 스레드의 부하 특징과의 유사도가 유사도 임계값보다 크거나 같은 복수의 부하 특징을 포함하고 있음)고 이해해야 한다. 참조 부하 특징이 하나의 부하 특징이면, 참조 부하 특징에 대응하는 자원 스케줄링 방식이 목표 자원 스케줄링 방식으로 직접 결정될 수 있다. 참조 부하 특징이 복수의 부하 특징이면, 부하 특징 중 어느 하나에 대응하는 자원 스케줄링 방식이 목표 자원 스케줄링 방식으로 결정될 수 있거나, 또는 부하 특징 중에 있는 부하 특징으로서 프레임 드로잉 스레드의 부하 특징과의 유사도가 가장 높은 부하 특징에 대응하는 자원 스케줄링 방식이 목표 자원 스케줄링 방식으로 결정될 수 있다.
예를 들어, 제3 매핑 관계는 표 5에 표시될 수 있다. 표 5는 이러한 서로 다른 부하 특성에 기록된 서로 다른 부하 특성과 자원 스케줄링 방식을 기록한다. 프레임 드로잉 스레드의 부하 특징과 표 5의 부하 특징 1이 유사도 임계값보다 크거나 같으면, 부하 특징 1에 대응하는 자원 스케줄링 방식 1이 목표 자원 스케줄링 방식으로 결정될 수 있다.
(표 5)
Figure pct00005
도 6은 프레임 드로잉 스레드의 부하 특징에 기초하여 프레임 드로잉 스레드에 대한 자원을 스케줄링하는 것을 개략적으로 나타낸 흐름도이다. 도 6에 도시된 과정이 단계 501 내지 단계 508을 포함한다. 이하에서는 단계 501 내지 단계 508을 상세하게 설명한다.
501. 프레임 드로잉 스레드의 부하 특징을 결정한다.
502. 프레임 드로잉 스레드의 부하 특징에 기초하여, 프레임 드로잉 스레드의 부하가 액세스 집약적 부하 또는 컴퓨팅 집약적 부하인지 여부를 판정한다.
프레임 드로잉 스레드의 부하가 컴퓨팅 집약적 부하이면 단계 503이 수행되고, 프레임 드로잉 스레드의 부하가 액세스 집약적 부하이면 단계 504가 수행된다.
503. 프레임 드로잉 스레드의 실행 속도가 느리면, CPU 내의 스몰 코어(small core)를 스케줄링하여 프레임 드로잉 스레드를 실행하거나; 또는 프레임 드로잉 스레드의 실행 속도가 빠르면, CPU 내의 라지 코어(large)를 이용하여 프레임 드로잉 스레드를 실행한다.
504. 프레임 드로잉 스레드의 실행 속도가 빠르면, CPU 내의 라지 코어를 이용하여 프레임 드로잉 스레드를 실행하고 DDR 주파수를 높이거나; 또는 프레임 드로잉 스레드의 실행 속도가 느리면, CPU의 스몰 코어를 이용하여 프레임 드로잉 스레드를 실행하고 DDR 주파수를 높인다.
505. 프레임 드로잉 스레드가 고지연 태스크(high-latency task) 또는 저지연 태스크에 속하는지 여부를 판정한다.
506. 패킹(packing) 정책을 실행하고 인터-코어 밸런싱(balance)을 수행한다.
패킹 정책은 현재 태스크가 실행을 위해 서로 다른 복수의 CPU에 할당되는 것이고, 인터-코어 밸런싱을 수행하는 것은 현재 태스크가 실행을 위해 CPU의 복수의 코어에 할당되는 것일 수 있다.
507. 스프레딩(spreading) 정책을 실행하고, 인터-코어 밸런싱을 생략한다.
스프레딩 정책은 현재 태스크가 실행을 위해 하나의 CPU에 할당되는 것이고, 인터-코어 밸런싱을 수행하는 것은 현재 태스크가 실행을 위해 CPU의 코어에 할당되는 것일 수 있다.
508. 에너지 효율 표에 기초하여 CPU의 적절한 코어를 선택하여 프레임 드로잉 스레드를 실행한다.
도 6이 프레임 드로잉 스레드의 부하 특징에 기초하여 대응하는 자원 스케줄링 방식을 선택하여, 프레임 드로잉 스레드를 스케줄링하는 과정을 주로 나타낸다는 것을 이해해야 한다. 단계 501 내지 단계 507은 프레임 드로잉 스레드에 기초하여 목표 자원 스케줄링 방식을 결정하는 것과 동일하고, 단계 508은 전술한 설명에서 목표 자원 스케줄링 방식으로 프레임 드로잉 스레드에 대한 자원을 스케줄링하는 것과 동일하다.
프레임 드로잉 스레드에 대한 자원을 스케줄링하기 위해 프레임 드로잉 스레드와 매칭되는 목표 자원 스케줄링 방식을 사용하는 것 외에도, 프레임 드로잉 스레드의 실행에 영향을 미칠 수 있는 연관 스레드가 발견될 수 있고, 프레임 드로잉 스레드의 실행 속도가 높아지도록, 자원이 연관 스레드에 대해 스케줄링되어 연관 스레드의 실행 속도를 높인다.
선택적으로, 일 실시예에서, 도 1에 도시된 자원 스케줄링 방법은 프레임 드로잉 스레드의 연관 스레드를 결정하는 단계 - 연관 스레드는 프레임 드로잉 스레드로 하여금 휴면 상태에 들어가게 할 수 있는 스레드임 -; 및 연관 스레드의 실행을 가속화하기 위해 연관 스레드에 대한 자원을 스케줄링하는 단계를 더 포함한다.
프레임 드로잉 스레드로 하여금 휴면 상태에 들어가게 하는 것은 구체적으로, 프레임 드로잉 스레드로 하여금 간헐적으로 휴면 상태에 들어가게 하는 것일 수 있고, 여기서 휴면은 작업을 중지하는 것일 수 있다. 연관 스레드가 프레임 드로잉 스레드로 하여금 휴면 상태에 들어가게 하고 또한 추가적으로 프레임 드로잉 스레드의 실행 속도를 낮추게 하는 스레드라는 것을 이해해야 한다. 프레임 드로잉 스레드의 실행을 가속화함으로써, 프레임 드로잉 스레드의 실행 속도가 간접적으로 높아질 수 있다.
본 출원에서, 프레임 드로잉 스레드의 실행 속도가 간접적으로 높아질 수 있고 또한 사용자 경험이 개선될 수 있도록, 연관 스레드에 대해 자원이 스케줄링된다.
구체적으로, 연관 스레드가 가능한 한 빨리 실행될 수 있고, 연관 스레드의 차단 시간이 줄어들며, 프레임 드로잉 스레드의 실행 속도가 증가될 수 있도록, 연관 스레드에 대해 자원이 스케줄링된다.
선택적으로, 일 실시예에서, 프레임 드로잉 스레드와 관련된 스레드가 후보 스레드와 프레임 드로잉 스레드 사이의 논리적 관계 및/또는 자원 상관 관계에 기초하여 후보 스레드로부터 결정된다.
도 7은 연관 스레드를 결정하고 연관 스레드에 대한 자원을 스케줄링하는 것을 개략적으로 나타낸 흐름도이다. 도 7에 도시된 과정이 단계 601 내지 단계 607을 포함한다. 이하에서는 이러한 단계를 자세하게 설명한다.
601. 부하 상태에 기초하여 후보 스레드를 인식한다.
구체적으로, 단계 601에서, 현재 단말 장치 상에서 실행되는 스레드 중 프레임 드로잉 스레드 이외의 스레드로부터, 부하 값이 상대적으로 큰 스레드가 부하 값에 기초하여 후보 스레드로서 선택될 수 있다. 예를 들어, 단계 601에서, 부하 값이 가장 큰 10개의 스레드가 다른 스레드로부터 후보 스레드로서 선택될 수 있다.
602. 후보 스레드의 실행 시간과 슬립 시간(또는 슬립 시간이라고 함)에 기초하여 후보 스레드와 프레임 드로잉 스레드 사이의 논리 상관 계수를 결정한다.
구체적으로, 프레임 드로잉 스레드와 프레임 드로잉 스레드 사이의 논리적 상관 관계가 후보 스레드와 프레임 드로잉 스레드의 실행 시간과 슬립 시간을 비교하여 추론될 수 있고, 논리 상관 계수가 얻어진다. 논리적 상관 계수가 크다는 것은, 후보 스레드와 프레임 드로잉 스레드 간의 상관 관계가 높다는 것으로 간주될 수 있다.
이하, 연관 스레드를 결정하는 것에 대해 자세하게 설명한다.
예를 들어, 후보 스레드와 프레임 드로잉 스레드 사이의 논리 상관 계수가 공식 (1)에 기초하여 결정될 수 있다.
Figure pct00006
공식 (1)에서, X는 프레임 드로잉 스레드의 실행 시간이고, Y는 후보 스레드의 실행 시간이며, Cov(X, Y)는 X와 Y의 공분산이고, Var[X]는 X의 분산을 나타내며, Var[Y]는 Y의 분산을 나타내고, r(X, Y)는 후보 스레드와 프레임 드로잉 스레드 사이의 논리 상관 계수이다.
603. 전역 자원 요구사항에 기초하여 후보 스레드와 프레임 드로잉 스레드 사이의 자원 상관 계수를 결정한다.
구체적으로, 프레임 드로잉 스레드가 슬립 상태에 들어가면, 프레임 드로잉 스레드가 전역 자원의 부족으로 인해 슬립 상태에 들어가는지 여부가 판정될 수 있다. 프레임 드로잉 스레드가 전역 자원의 부족으로 인해 슬립 상태에 들어가면, 후보 스레드 중에 있는 스레드로서 전역 자원이 현재 속한 스레드(전역 자원이 할당된 스레드)가 더 결정된다. 전역 자원이 제1 스레드에 속한다고 가정하면, 제1 스레드와 프레임 드로잉 스레드 사이의 자원 상관 관계 계수가 1이고, 다른 스레드와 프레임 드로잉 스레드 사이의 자원 상관 관계 계수가 0이다.
여기서, 1과 0이 자원 상관 계수의 예로 사용된다는 것을 이해해야 한다. 실제로, 자원 상관 계수는 다른 스레드와 프레임 드로잉 스레드 사이의 의존도에 기초하여 0과 1 사이의 어느 값일 수 있다.
604. 후보 스레드와 프레임 드로잉 스레드 사이의 논리적 상관 계수가 사전 설정된 임계값을 초과하는지 여부를 판정한다.
후보 스레드와 프레임 드로잉 스레드 사이의 논리적 상관 계수가 사전 설정된 임계값을 초과할 때(예를 들어, 사전 설정된 임계값이 0.8 또는 0.9일 수 있음), 후보 스레드와 프레임 드로잉 스레드 사이에는 상대적으로 높은 상관 관계가 있는 것으로 간주될 수 있고, 후보 스레드가 프레임 드로잉 스레드의 연관 스레드로 간주될 수 있다. 다음, 단계 606과 단계 607이 수행될 필요가 있다.
605. 후보 스레드와 프레임 드로잉 스레드 사이의 자원 상관 계수가 사전 설정된 임계값을 초과하는지 여부를 판정한다.
후보 스레드와 프레임 드로잉 스레드 사이의 자원 상관 관계 계수가 사전 설정된 임계값을 초과하면, 후보 스레드가 프레임 드로잉 스레드의 연관 스레드로 간주될 수 있다. 다음, 단계 606과 단계 607이 수행될 필요가 있다.
단계 605와 단계 603의 사전 설정된 임계값은 서로 다른 임계값일 수 있고, 구체적으로 경험이나 시뮬레이션 실험 등에 기초하여 설정될 수 있다.
본 출원에서, 논리적 상관 계수가 사전 설정된 임계값을 초과하고 또한 자원 상관 계수가 사전 설정된 임계값을 초과할 때 단계 606과 단계 607이 수행될 수 있다는 것을 이해해야 한다.
606. 후보 스레드를 프레임 드로잉 스레드의 연관 스레드 그룹에 추가한다.
607. 연관 스레드 그룹 내의 스레드 실행을 가속화하기 위해 연관 스레드 그룹에 대한 자원을 스케줄링한다.
또한, 단계 603의 논리적 상관 계수가 사전 설정된 임계값을 초과하지 않으면, 연관 스레드가 추후에 결정될 때 후보 스레드가 제외될 수 있도록, 후보 스레드에 관한 정보가 기록됨으로써 연관 스레드를 결정하는 속도를 가속화할 수 있다.
유사하게, 단계 605의 자원 상관 계수가 사전 설정된 임계값을 초과하지 않으면, 연관 스레드가 추후에 결정될 때 후보 스레드가 제외될 수 있도록, 후보 스레드에 관한 정보도 기록될 수 있다.
목표 자원 스케줄링 방식이 이미지 프레임의 프레임 드로잉 스레드의 부하 특징과 예측 부하 값 등에 기초하여 예측되는 스케줄링 방식이다. 실제 스케줄링에서, 자원 스케줄링 속도가 예측 부하 값의 부정확한 예측으로 인해 상대적으로 낮을 수 있고, 이미지 프레임의 드로잉이 미리 결정된 시간 내에 완료될 수 없다.
따라서, 단말 장치가 미리 결정된 시간 내에 이미지 프레임의 드로잉을 완료하지 못하면, 프레임 드로잉 스레드에 대한 추가 자원이 스케줄링되어 프레임 드로잉 스레드의 실행 속도를 높일 수 있다.
선택적으로, 일 실시예에서, 도 1에 도시된 자원 스케줄링 방법은, 프레임 드로잉 스레드의 실행이 미리 결정된 시간 내에 완료되지 않는다는 것을 더 포함하고, 자원 스케줄링 방법은, 이미지 프레임의 드로잉이 완료될 때까지 프레임 드로잉 스레드에 대한 추가 자원을 스케줄링하는 단계 - 사전 설정된 시간은, 프레임 드로잉 스레드에 대한 자원이 목표 자원 스케줄링 방식으로 스케줄링될 때 프레임 드로잉 스레드의 실행을 완료하는 데 필요한 시간임 -를 더 포함한다.
일단 프레임 드로잉 스레드의 실행이 완료되면 이미지 프레임의 드로잉이 완료된다는 것을 이해해야 한다. 이미지 프레임의 드로잉이 사전 설정된 시간 내에 완료되지 않으면, 프레임 드로잉 스레드에 대해 더 적은 자원이 목표 자원 스케줄링 방식으로 스케줄링될 수 있다는 것을 나타낸다. 이 경우, 프레임 드로잉 스레드의 실행을 가속화하기 위해 프레임 드로잉 스레드에 대해 추가 자원이 스케줄링됨으로써, 사용자 경험을 개선할 필요가 있다.
선택적으로, 추가 자원의 크기와 제1 차이값 사이에는 양의 상관 관계 관계가 있고, 제1 차이값은 추가 자원을 스케줄링하는 시점과 사전 설정된 시간의 종료 시점 간의 차이값이다.
제1 차이값이 더 크면, 미리 결정된 시간이 더 일찍 만료된다. 프레임 드로잉 스레드의 실행이 가능한 한 빨리 완료될 수 있도록, 프레임 드로잉 스레드에 대해 더 많은 자원이 스케줄링된다.
프레임 드로잉 스레드의 실행이 완료될 때 프레임 드로잉 스레드에 대한 추가 자원을 스케줄링하는 것이 중지된다는 것을 이해해야 한다.
선택적으로, 일 실시예에서, 도 1에 도시된 자원 스케줄링 방법은, 프레임 드로잉 스레드의 부하 특징이 전형적 부하 특징인지 여부를 판정하는 단계; 및 프레임 드로잉 스레드의 부하 특징이 전형적 부하 특징이면, 프레임 드로잉 스레드의 부하 특징과 프레임 드로잉 스레드의 예측 부하 값을 저장하는 단계를 더 포함한다.
프레임 드로잉 스레드의 부하 특징이 전형적 부하 특징이면, 프레임 드로잉 스레드의 예측 부하 값이 전형적 부하 특징에 대응하는 부하 값이라는 것을 이해해야 한다.
본 출원에서, 추후에, 예측 부하 값이 부하 특징에 기초하여 직접 결정될 수 있고 또한 예측 부하 값의 복잡도가 결정될 수 있도록, 전형적 부하 특징과 전형적 부하 특징에 대응하는 부하 값이 저장된다.
선택적으로, 일 실시예에서, 프레임 드로잉 스레드의 부하 특징이 전형적 부하 특징인지 여부를 판정하는 단계는, 기록된 부하 특징이 프레임 드로잉 스레드의 부하 특징과의 유사도가 유사도 임계값보다 크거나 같은 부하 특징을 포함하는지 여부를 판정하는 단계; 및 기록된 부하 특징이 프레임 드로잉 스레드의 부하 특징과의 유사도가 유사도 임계값보다 크거나 같은 부하 특징을 포함하지 않으면, 프레임 드로잉 스레드의 부하 특징이 전형적 부하 특징이라고 결정하는 단계를 포함한다.
기록된 부하 특징이 프레임 드로잉 스레드의 부하 특징과의 유사도가 유사도 임계값보다 크거나 같은 부하 특징을 포함하면, 기록된 부하 특징이 프레임 드로잉 스레드의 부하 특징와 유사한 부하 특징을 포함하며 프레임 드로잉 스레드의 부하 특징이 더 기록될 필요가 없다는 것을 나타낸다고 이해해야 한다.
도 8은 본 출원의 일 실시예에 따른 자원 스케줄링 방법을 개략적으로 나타낸 흐름도이다. 도 8에 도시된 자원 스케줄링 방법이 단말 장치에 의해 수행될 수 있다. 여기서, 단말 장치는 모바일 단말기(예를 들어, 스마트폰), 또는 컴퓨터, 또는 개인용 정보 단말기, 또는 웨어러블 장치, 또는 차량 탑재 장치, 또는 사물 인터넷 장치 등일 수 있다.
도 8에 도시된 자원 스케줄링 방법은 단계 701 내지 단계 704를 포함한다. 이하에서는 이러한 단계를 상세하게 설명한다.
701. 이미지 프레임을 드로잉하는 데 사용되는 프레임 드로잉 스레드의 부하 특징을 결정한다.
이미지 프레임의 프레임 드로잉 스레드가 단계 701 이전에 결정될 수 있다. 이미지 프레임은 단말 장치에 의해 현재 표시될 프레임일 수 있고, 이미지 프레임은 구체적으로 이미지 프레임 등일 수 있다. 프레임 드로잉 스레드는 이미지 프레임을 드로잉하기 위한 스레드이다. 프레임 드로잉 스레드의 실행 속도가 이미지 프레임의 표시 속도에 직접적인 영향을 미치고, 또한 사용자 경험에도 영향을 미친다. 구체적으로, 프레임 드로잉 스레드의 실행 속도가 상대적으로 느리면, 이미지 프레임을 표시하는 데 상대적으로 긴 시간이 걸리고 사용자가 이미지에서 프레임 멈춤이 일어나는 것을 느낄 수 있거나; 또는 프레임 드로잉 스레드의 실행 속도가 상대적으로 빠르면, 이미지 프레임을 표시하는 데 시간이 많이 걸리지 않으며 사용자는 이미지가 비교적 부드럽게 표시된다고 느낀다.
702. 프레임 드로잉 스레드의 부하 특징 및 프레임 드로잉 스레드에 대응하는 적용 시나리오에 기초하여 프레임 드로잉 스레드의 목표 예측 부하 값을 결정한다.
프레임 드로잉 스레드에 대응하는 적용 시나리오는 프레임 드로잉 스레드가 위치하는 응용 프로그램의 유형일 수 있다. 예를 들어, 프레임 드로잉 스레드에 대응하는 적용 시나리오는 비디오 응용 프로그램, 또는 게임 응용 프로그램, 또는 사용자와의 상호작용이 필요한 다른 응용 프로그램(예를 들어, WeChat, 또는 Taobao, 또는 Weibo)일 수 있다.
또한, 프레임 드로잉 스레드에 대응하는 적용 시나리오는 프레임 드로잉 스레드가 위치하는 응용 프로그램의 단계일 수 있다. 예를 들어, 프레임 드로잉 스레드에 대응하는 적용 시나리오는 프레임 드로잉 스레드가 위치하는 응용 프로그램의 시작 단계 또는 종료 단계 등일 수 있다.
대안적으로, 프레임 드로잉 스레드에 대응하는 적용 시나리오는 프레임 드로잉 스레드가 위치하는 응용 프로그램이 실행될 때의 단계일 수 있다. 예를 들어, 프레임 드로잉 스레드에 대응하는 적용 시나리오는 WeChat의 인터페이스(채팅 인터페이스 또는 작은 비디오가 열려 있는 인터페이스)일 수 있다.
703. 프레임 드로잉 스레드의 부하 특징, 프레임 드로잉 스레드의 목표 예측 부하 값, 및 사전 설정된 목표 프레임 레이트에 기초하여 목표 자원 스케줄링 방식을 결정한다.
704. 목표 자원 스케줄링 방식으로 프레임 드로잉 스레드에 대한 자원을 스케줄링한다.
본 출원에서, 프레임 드로잉 스레드의 예측 부하 값은 프레임 드로잉 스레드의 부하 특징 및 프레임 드로잉 스레드에 대응하는 적용 시나리오에 기초하여 더 적절하게 결정될 수 있고, 추가적으로, 자원 스케줄링이 더 구체적이고 또한 자원 스케줄링 효과가 더 좋을 수 있도록, 목표 자원 스케줄링 방식이 더 적절하게 결정되어 더 미세한 단위의 스케줄링을 구현할 수 있다.
선택적으로, 일 실시예에서, 프레임 드로잉 스레드의 부하 특징 및 프레임 드로잉 스레드에 대응하는 적용 시나리오에 기초하여 프레임 드로잉 스레드의 목표 예측 부하 값을 결정하는 단계는, 프레임 드로잉 스레드의 부하 특징에 기초하여 프레임 드로잉 스레드의 제1 예측 부하 값을 결정하는 단계; 프레임 드로잉 스레드에 대응하는 적용 시나리오와 제4 매핑 관계 정보에 기초하여 제2 예측 부하 값을 결정하는 단계 - 제4 매핑 관계 정보는 복수의 적용 시나리오와 복수의 적용 시나리오 각각에 대응하는 부하 값을 포함하고 있음 -; 및 제1 예측 부하 값과 제2 예측 부하 값에 기초하여 목표 예측 부하 값을 결정하는 단계를 포함한다.
예를 들어, 단말 장치가 애플리케이션을 시작할 때, 이 애플리케이션이 애플리케이션 시작 시나리오에 있고, 그런 다음 애플리케이션 시작 시나리오에 대응하는 부하 값이 미리 할당된 가이드 라인(guideline, GL) 표(미리 할당된 GL 표는 제4 매핑 관계 정보를 포함할 수 있음)에 기초하여 결정되어 제2 예측 부하 값을 얻는다. GL 표는 구성 파일과 유사하고, GL 표는 서로 다른 시나리오에 대응하는 부하 값과 자원 스케줄링 방식(라지 코어 또는 스몰 코어가 선택되는지 여부와 주파수의 값 등)을 포함한다. 서로 다른 적용 시나리오에 대응하는 부하 값 또는 자원 스케줄링 방식이 GL 표에 기초하여 결정될 수 있다.
제1 예측 부하 값과 제2 예측 부하 값이 획득된 후에, 목표 예측 부하 값이 복수의 방식으로 결정될 수 있다는 것을 이해해야 한다. 이하에서는 몇 가지 가능한 방법을 설명한다.
방식 1: 제1 예측 부하 값과 제2 예측 부하 값 중 최대 부하 값이 목표 예측 부하 값으로 결정된다.
방식 2: 제1 예측 부하 값과 제2 예측 부하 값 중 최소 부하 값이 목표 예측 부하 값으로 결정된다.
방식 3: 제1 예측 부하 값과 제2 예측 부하 값의 평균값이 목표 예측 부하 값으로 결정된다.
또한, 제1 예측 부하 값과 제2 예측 부하 값에 대해 가중 합이 수행될 수 있고, 제1 예측 부하 값과 제1 가중 계수의 곱과 제2 예측 부하 값과 제2 가중 계수의 곱의 합이 목표 예측 부하 값으로 결정될 수 있다. 여기서, 제1 가중 계수와 제2 가중 계수는 사전 설정된 값일 수 있다.
적용 시나리오가 부하 값에 상대적으로 큰 영향을 미칠 때, 상대적으로 큰 제1 가중 계수가 설정될 수 있거나; 또는 적용 시나리오가 부하 값에 비교적 작은 영향을 미칠 때, 상대적으로 작은 제1 가중 계수가 설정될 수 있다.
선택적으로, 프레임 드로잉 스레드의 부하 특징 및 프레임 드로잉 스레드에 대응하는 적용 시나리오에 기초하여 프레임 드로잉 스레드의 목표 예측 부하 값을 결정하는 단계는, 프레임 드로잉 스레드에 대응하는 적용 시나리오가 시작 시나리오이면, 프레임 드로잉 스레드에 대응하는 적용 시나리오와 제4 매핑 관계 정보에 기초하여 프레임 드로잉 스레드의 목표 예측 부하 값을 결정하는 단계 - 제4 매핑 관계 정보는 복수의 적용 시나리오와 복수의 적용 시나리오 각각에 대응하는 부하 값을 포함하고 있음 -를 포함한다.
프레임 드로잉 스레드에 대응하는 시나리오가 시작 시나리오이면, 시작 시나리오에 대응하는 부하 값이 상대적으로 크므로, 프레임 드로잉 스레드의 목표 예측 부하 값이 프레임 드로잉 스레드의 적용 시나리오에 기초하여 직접 결정될 수 있다.
선택적으로, 프레임 드로잉 스레드의 부하 특징 및 프레임 드로잉 스레드에 대응하는 적용 시나리오에 기초하여 프레임 드로잉 스레드의 목표 예측 부하 값을 결정하는 단계는, 프레임 드로잉 스레드에 대응하는 적용 시나리오가 시작 시나리오 이외의 시나리오이면, 프레임 드로잉 스레드의 부하 특징에 기초하여 목표 예측 부하 값을 결정하는 단계를 포함한다.
선택적으로, 일 실시예에서, 프레임 드로잉 스레드의 부하 특징은 프레임 드로잉 스레드의 자원 요구 특성을 나타내는 데 사용된다.
구체적으로, 대응하는 목표 자원 스케줄링 방식이 추후에 결정될 수 있도록, 프레임 드로잉 스레드의 부하 특징은 프레임 드로잉 스레드의 부하가 컴퓨팅 집약적인지 또는 자원 집약적인지 여부를 나타낼 수 있다.
예를 들어, 프레임 드로잉 스레드의 부하가 컴퓨팅 집약적 부하이면, 프레임 드로잉 스레드에 대해 컴퓨팅 자원이 주로 스케줄링되거나, 또는 프레임 드로잉 스레드의 부하가 자원 집약적 부하인 경우, 프레임 드로잉 스레드에 대해 저장 자원이 주로 스케줄링된다.
프레임 드로잉 스레드의 부하 특징이 프레임 드로잉 스레드의 부하가 컴퓨팅 집약적이고 또한 자원 집약적이라는 것을 추가로 나타낼 수 있고, 이 경우 프레임 드로잉 스레드에 대해 컴퓨팅 자원과 저장 자원이 모두 스케줄링될 필요가 있다는 것을 이해해야 한다.
선택적으로, 일 실시예에서, 프레임 드로잉 스레드의 부하 특징은 명령어당 평균 사이클 수, 분기 명령어의 수, 및 프레임 드로잉 스레드의 캐시 실패율 중 적어도 하나를 포함한다.
본 출원에서, 프레임 드로잉 스레드의 명령어당 평균 사이클 수, 분기 명령어의 수, 및 캐시 실패율과 같은 파라미터 중 하나 이상이 수집될 때, 프레임 드로잉 스레드의 부하 특징을 획득하는 복잡도가 낮아질 수 있도록, 프레임 드로잉 스레드의 부하 특징이 직접 획득될 수 있다.
프레임 드로잉 스레드의 명령어당 평균 사이클 수, 분기 명령어의 수, 및 캐시 실패율과 같은 파라미터 중 하나 이상이 프레임 드로잉 스레드의 부하 특징을 나타내는 데 직접 사용될 수 있다는 것을 이해해야 한다. 프레임 드로잉 스레드의 이러한 파라미터들이 획득되면, 프레임 드로잉 스레드의 부하 특징이 획득된다.
선택적으로, 프레임 드로잉 스레드의 부하 특징은 제1 시간 간격에서 프레임 드로잉 스레드의 명령어당 평균 사이클 수, 분기 명령어의 수, 및 캐시 실패율 중 적어도 하나에 기초하여 결정되고, 제1 시간 간격은 프레임 드로잉 스레드의 실행의 시작과 드로잉 스레드의 실행의 끝 사이의 시구간이다.
제1 시간 간격에서의 프레임 드로잉 스레드의 명령어당 평균 사이클 수, 분기 명령어의 수, 및 캐시 실패율은 제1 시간 간격에서의 프레임 드로잉 스레드의 성능 지표 데이터라고도 할 수 있다. 프레임 드로잉 스레드의 부하 특징이 결정될 때, 제1 시간 간격에서의 프레임 드로잉 스레드의 성능 지표 데이터 중 일부 파라미터가 프레임 드로잉 스레드의 부하 특징으로 직접 결정될 수 있거나, 또는 제1 시간 간격에서의 프레임 드로잉 스레드의 성능 지표 데이터에 대해 처리 또는 연산이 수행될 수 있고(예를 들어, 성능 지표 데이터 중 2개의 파라미터에 대해 분할이 수행되거나, 또는 성능 지표 데이터 중 일부 파라미터에 대해 해시 연산이 수행되고), 처리 또는 연산 후에 얻어진 데이터가 프레임 드로잉 스레드의 부하 특징으로 결정된다.
선택적으로, 프레임 드로잉 스레드의 실행이 미리 결정된 시간 내에 완료되지 않고, 도 7에 도시된 자원 스케줄링 방법이, 이미지 프레임의 드로잉이 완료될 때까지 프레임 드로잉 스레드에 대한 추가 자원을 스케줄링하는 단계 - 사전 설정된 시간은, 프레임 드로잉 스레드에 대한 자원이 목표 자원 스케줄링 방식으로 스케줄링될 때 프레임 드로잉 스레드의 실행을 완료하는 데 필요한 시간임 -를 더 포함한다.
일단 프레임 드로잉 스레드의 실행 완료되면 이미지 프레임의 드로잉이 완료된다는 것을 이해해야 한다. 이미지 프레임의 드로잉이 사전 설정된 시간 내에 완료되지 않으면, 프레임 드로잉 스레드에 대해 더 적은 자원이 목표 자원 스케줄링 방식으로 스케줄링될 수 있다는 것을 나타낸다. 이 경우, 프레임 드로잉 스레드의 실행을 가속화하기 위해 프레임 드로잉 스레드에 대해 추가 자원이 스케줄링됨으로써, 사용자 경험을 개선할 필요가 있다.
선택적으로, 추가 자원의 크기와 제1 차이값 사이에는 양의 상관 관계 관계가 있고, 제1 차이값은 추가 자원을 스케줄링하는 시점과 사전 설정된 시간의 종료 시점 간의 차이값이다.
제1 차이값이 더 크면, 미리 결정된 시간이 더 일찍 만료된다. 프레임 드로잉 스레드의 실행이 가능한 한 빨리 완료될 수 있도록, 프레임 드로잉 스레드에 대해 더 많은 자원이 스케줄링된다.
전술한 설명에서 제1 매핑 관계 정보, 제2 매핑 관계 정보, 제3 매핑 관계 정보, 및 제 4매핑 관계 정보가 발생한다. 매핑 관계 정보의 의미를 더 잘 이해하기 위해, 이하에서는 표 6을 참조하여 매핑 관계 정보의 의미에 대해 설명한다.
(표 6)
Figure pct00007
본 출원에서, 다양한 매핑 관계 정보는 미리 저장될 수 있고, 다양한 매핑 정보는 단말 장치에 의해 기록된 이력 정보에 기초하여 결정될 수 있다(이력 정보는 부하 정보, 부하 특징, 적용 시나리오, 부하 값, 및 자원 스케줄링 방식 중 일부 사이의 대응관계를 포함할 수 있다). 또한, 이미지 프레임의 실행이 완료된 후에, 프레임 드로잉 스레드에 대응하는 예측 부하 값 또는 목표 자원 스케줄링 방식 등이 추후에 다양한 매핑 관계 정보에 기초하여 결정될 수 있도록, 다양한 매핑 관계 정보가 이미지 프레임의 부하 정보, 부하 특징, 예측 부하 값, 및 대응하는 자원 스케줄링 방식과 같은 정보에 기초하여 더 갱신될 수 있다.
이상에서는 도 1 내지 도 8을 참조하여 본 출원의 실시예의 자원 스케줄링 방식에 대해 상세하게 설명하였다. 이하에서는 도 9 내지 도 11을 참조하여 본 출원의 실시예의 단말 장치에 대해 설명한다. 도 9 내지 도 11의 단말 장치가 본 출원의 실시예의 자원 스케줄링 방법의 단계를 수행할 수 있다는 것을 이해해야 한다. 중복을 피하기 위해, 이하에서 도 9 내지 도 11의 단말 장치가 설명될 때 중복 설명이 적절하게 생략된다.
도 9는 본 출원의 일 실시예에 따른 단말 장치를 개략적으로 나타낸 블록도이다. 도 9의 단말 장치(1000)는 처리 모듈(1001)과 스케줄링 모듈(1002)을 포함한다. 처리 모듈(1001)과 스케줄링 모듈(1002)은 도 1 내지 도 8의 자원 스케줄링 방법의 단계를 수행할 수 있다.
구체적으로, 단말 장치(1000)가 도 1에 도시된 자원 스케줄링 방법을 수행하도록 구성될 때, 처리 모듈(1001)과 스케줄링 모듈(1002)의 구체적인 기능이 다음과 같다.
처리 모듈(1001)은 프레임 드로잉 스레드의 부하 특징을 결정하고 - 여기서, 프레임 드로잉 스레드는 이미지 프레임을 드로잉하는 데 사용됨 -; 프레임 드로잉 스레드의 부하 특징에 기초하여 목표 자원 스케줄링 방식을 결정하도록 구성된다.
스케줄링 모듈(1002)은 목표 자원 스케줄링 방식으로 프레임 드로잉 스레드에 대한 자원을 스케줄링하도록 구성된다.
본 출원에서, 프레임 드로잉 스레드가 이미지 프레임을 드로잉하기 위한 스레드이고 또한 프레임 드로잉 스레드의 실행 속도가 사용자 경험과 직접 관련되어 있기 때문에, 자원 스케줄링이 더 구체적이고 또한 자원 스케줄링 효과가 더 좋을 수 있도록, 프레임 드로잉 스레드의 부하 특징을 이용하여 결정되는 목표 자원 스케줄링 방식으로 프레임 드로잉 스레드에 대한 스케줄링을 수행하면 더 미세한 단위의 자원 스케줄링을 구현할 수 있다.
단말 장치(1000)가 도 8에 도시된 자원 스케줄링 방법을 수행하도록 구성될 때, 처리 모듈(1001)과 스케줄링 모듈(1002)의 구체적인 기능이 다음과 같다.
처리 모듈(1001)은 프레임 드로잉 스레드의 부하 특징을 결정하고 - 여기서, 프레임 드로잉 스레드는 이미지 프레임을 드로잉하는 데 사용됨 -; 프레임 드로잉 스레드의 부하 특징 및 프레임 드로잉 스레드에 대응하는 적용 시나리오에 기초하여 프레임 드로잉 스레드의 목표 예측 부하 값을 결정하며; 프레임 드로잉 스레드의 부하 특징, 프레임 드로잉 스레드의 목표 예측 부하 값, 및 사전 설정된 목표 프레임 레이트에 기초하여 목표 자원 스케줄링 방식을 결정하도록 구성된다.
스케줄링 모듈(1002)은 목표 자원 스케줄링 방식으로 프레임 드로잉 스레드에 대한 자원을 스케줄링하도록 구성된다.
본 출원에서, 프레임 드로잉 스레드의 예측 부하 값은 프레임 드로잉 스레드의 부하 특징 및 프레임 드로잉 스레드에 대응하는 적용 시나리오에 기초하여 더 적절하게 결정될 수 있고, 추가적으로, 자원 스케줄링이 더 구체적이고 또한 자원 스케줄링 효과가 더 좋을 수 있도록, 목표 자원 스케줄링 방식이 더 적절하게 결정됨으로써 더 미세한 단위의 스케줄링을 구현할 수 있다.
도 10은 본 출원의 일 실시예에 따른 단말 장치의 개략적인 블록도이다. 도 10의 단말 장치(2000)는 하드웨어 계층(2100), 시스템 계층(2200), 및 응용 계층(2300)으로 구분될 수 있다.
도 10에 도시된 바와 같이, 하드웨어 계층(2100)은 주로 일부 물리적 모듈 또는 유닛을 포함하고, 하드웨어 계층(2100)은 CPU, 더블 데이터 레이트 동기식 동적 랜덤 액세스 메모리(double data rate synchronous dynamic random access memory, DDR)과 그래픽 처리 장치(graphics processing unit, GPU)를 포함할 수 있다. CPU는 성능 모니터 유닛(performance monitor unit, PMU)을 더 포함할 수 있다.
본 출원의 실시예의 자원 스케줄링 방법의 단계가 CPU에 의해 최종적으로 수행될 수 있다는 것을 이해해야 한다.
도 10에 도시된 바와 같이, 시스템 계층(2200)은 시나리오 인식 모듈, 사용자 경험 양자화 모듈, QoS 스케줄링 컨트롤러, 부하 예측 모듈, 스케줄링 모듈, 에너지 효율 수집 모듈, 성능 모니터 모듈, 균일 주파수 변조 모듈(uniform frequency modulation module), 프레임 렌더링 서브시스템, 미디어 서브시스템, 그리드 서브시스템, 및 메모리 관리 서브시스템을 포함할 수 있다.
시스템 계층(2200) 내의 모듈의 구체적인 기능이 다음과 같다.
시나리오 인식 모듈은 사용자에 의해 현재 사용되는 시나리오를 인식하도록 구성된다(예를 들어, 사용자가 비디오를 시청하는지 또는 열려 있는 웹 페이지를 보는지를 인식할 수 있다).
사용자 경험 양자화 모듈은 시스템 프레임 윈도 정보를 실시간으로 캡처하고 시스템 프레임 윈도 정보를 커널에 전달하도록 구성된다. 여기서, 프레임 윈도 정보는 프레임 드로잉 과정에서 CPU 및 GPU와 같은 컴퓨팅 구성 요소를 컴퓨팅함으로써 주로 프레임 드로잉 작업에 참여하는 시작 시점과 종료 시점을 지칭하고, 프레임 윈도 정보는 사용자 경험을 양자화하고, 사용자에 의해 인지될 수 있는 "프레임 멈춤"과 같은 경험을 커널에 의해 인지될 수 있는 구체적인 데이터로 변환하는 데 사용된다.
서비스 품질(quality of service, QoS) 컨트롤러는 현재 시나리오에 기초하여, 인식된 현재 시나리오의 성능 제약과 목표 프레임 레이트를 제공하도록 구성된다.
부하 예측 모듈은 프레임 드로잉 스레드의 부하를 예측하여 프레임 드로잉 스레드의 예측 부하 값을 획득하도록 구성된다. 여기서, 예측 부하 값은 프레임 드로잉 스레드의 실행을 완료하는 데 필요한 작업 부하일 수 있고, 작업 부하는 CPU, 또는 GPU, 또는 DDR과 같은 하드 구성 요소에 의해 구체적으로 완료될 필요가 있는 작업 부하를 포함하지만 이에 제한되지 않는다.
스케줄링 모듈은 부하 예측 모듈에 의해 예측된 부하 및 상위 계층 QoS 모듈에 의해 전달된 컷오프 시간(프레임 드로잉 스레드의 실행이 컷오프 시간 내에 완료되어야 함) 지시자에 기초하여, 자원 공급 및 프레임 드로잉 스레드(와 연관 스레드)를 위한 스레드 스케줄링을 결정하도록 구성된다.
에너지 효율 수집 모듈은 현재 시스템 전력 소비를 실시간으로 수집하여 최적의 에너지 소비 비율로 다양한 자원 스케줄링 방식을 결정하도록 구성된다.
성능 모니터 모듈은 컴퓨팅 구성 요소의 성능 작업 상태를 수집하여 이 상태에 따라 프레임 특징을 지시하도록 구성된다.
주파수 변조 모듈은 CPU의 작동 주파수를 조정하도록 구성된다.
프레임 렌더링 서브시스템은 표시될 프레임을 렌더링하도록 구성된다.
도 10에 도시된 바와 같이, 응용 계층(2300)은 응용 1, 응용 2, … , 및 응용 x 등을 포함할 수 있다. 응용 1, 응용 2, … , 및 응용 x는 서로 다른 응용 프로그램 엔티티를 나타낸다. 예를 들어, 응용 1은 WeChat일 수 있고, 응용 2는 Weibo일 수 있다.
본 출원에서의 이미지 프레임이 도 10에 도시된 응용 계층(2300)의 응용에서의 현재 표시될 이미지 프레임일 수 있다고 이해해야 한다.
도 9와 도 10에 도시된 단말 장치가 구체적으로, 모바일 단말기(예를 들어, 스마트폰), 또는 컴퓨터, 또는 개인용 정보 단말기, 또는 웨어러블 장치, 또는 차량 탑재 장치, 또는 사물 인터넷 장치, 또는 인공 지능 장치 등일 수 있다.
도 11은 본 출원의 일 실시예에 따른 단말 장치의 개략적인 구조도이다.
도 11의 단말 장치는 통신 모듈(3010), 센서(3020), 사용자 입력 모듈(3030), 출력 모듈(3040), 프로세서(3050), 오디오/비디오 입력 모듈(3060), 메모리(3070), 및 전원 장치(3080)를 포함한다. 이하에서는 이러한 모듈을 상세하게 설명한다.
통신 모듈(3010)은 단말 장치가 다른 단말 장치와 통신할 수 있게 하는 적어도 하나의 모듈을 포함할 수 있다. 예를 들어, 통신 모듈(3010)은 유선 네트워크 인터페이스, 브로드캐스트 수신 모듈, 이동 통신 모듈, 무선 인터넷 모듈, 근거리 통신 모듈, 위치(또는 측위) 정보 모듈 중 하나 이상을 포함할 수 있다.
센서(3020)는 사용자의 일부 동작을 감지할 수 있고, 센서(3020)는 거리 센서와 터치 센서 등을 포함할 수 있다. 센서(3020)는 사용자가 화면을 터치하거나 또는 화면에 접근하는 것과 같은 동작을 감지할 수 있다.
사용자 입력 모듈(3030)은 입력된 디지털 정보 또는 문자 정보 또는 접촉 터치 조작/비접촉 제스처를 수신하고, 시스템의 사용자 설정 및 기능 제어 등과 관련된 신호 입력을 수신하도록 구성된다. 사용자 입력 모듈(3030)은 터치 패널 및/또는 다른 입력 장치를 포함한다.
출력 모듈(3040)은 사용자에 의해 입력된 정보, 사용자에게 제공되는 정보, 및 시스템의 다양한 메뉴 인터페이스 등을 표시하도록 구성된 디스플레이 패널을 포함한다. 선택적으로, 디스플레이 패널은 액정 표시 장치(liquid crystal display, LCD) 또는 유기 발광 다이오드(organic light-emitting diode, OLED) 등의 형태로 구성될 수 있다. 일부 다른 실시예에서, 터치 패널은 터치 디스플레이 화면을 형성하기 위해 디스플레이 패널을 덮고 있을 수 있다. 또한, 출력 모듈(3040)은 오디오 출력 모듈, 알람, 및 촉각 모듈 등을 더 포함할 수 있다.
오디오/비디오 입력 모듈(3060)은 오디오 신호 또는 비디오 신호를 입력하도록 구성된다. 오디오/비디오 입력 모듈(3060)은 카메라와 마이크를 포함할 수 있다.
전원 장치(3080)는 프로세서(3050)의 제어에 따라 외부 전력과 내부 전력을 수신할 수 있고, 단말 장치 내의 모듈을 실행하는 데 필요한 전력을 제공할 수 있다.
프로세서(3050)는 하나 이상의 프로세서를 나타낼 수 있다. 예를 들어, 프로세서(3050)는 하나 이상의 중앙처리장치, 하나의 중앙처리장치와 하나의 그래픽 처리 장치, 또는 하나의 애플리케이션 프로세서와 하나의 보조 프로세서(예를 들어, 마이크로 제어 유닛 또는 신경망 프로세서)를 포함할 수 있다. 프로세서(3050)가 복수의 프로세서를 포함하는 경우, 복수의 프로세서는 동일한 칩에 통합될 수 있거나, 또는 독립적인 칩일 수 있다. 하나의 프로세서는 하나 이상의 물리적 코어를 포함할 수 있고, 물리적 코어는 최소 처리 모듈이다.
메모리(3070)는 컴퓨터 프로그램을 저장하고, 컴퓨터 프로그램은 운영체제 프로그램(3051)과 응용 프로그램(3072) 등을 포함한다. 전형적인 운영체제가 데스크톱 컴퓨터 또는 노트북 컴퓨터에 사용되는 시스템, 예를 들어 Microsoft의 Windows 또는 Apple의 Mac OS를 포함하고, 또한 모바일 단말기에 사용되는 시스템, 예를 들어 Google에 의해 개발된 Linux® 기반의 Android(Android®) 시스템을 포함한다. 본 출원의 실시예의 자원 스케줄링 방법이 소프트웨어를 통해 구현될 때, 자원 스케줄링 방법은 구체적으로 응용 프로그램(3051)을 이용하여 구현되는 것으로 간주될 수 있다.
메모리(3070)는 플래시(flash) 메모리, 하드 디스크 유형의 메모리, 마이크로 멀티미디어 카드 유형의 메모리, 카드 유형 메모리(예를 들어, SD 또는 XD 메모리), 랜덤 액세스 메모리(random access memory, RAM), 정적 랜덤 액세스 메모리(static RAM, SRAM), 읽기 전용 메모리(read-only memory, ROM), 이이피롬(electrically erasable programmable read-only memory, EEPROM), 피롬(programmable ROM, PROM), 자기 메모리, 자기 디스크, 또는 광 디스크 중 하나 이상일 수 있다. 다른 일부 실시예에서, 메모리(3070)는 인터넷 상의 네트워크 저장 장치일 수 있다. 이 시스템은 인터넷 상의 메모리(3070)에 대한 업데이트 또는 읽기와 같은 동작을 수행할 수 있다.
프로세서(3050)는 메모리(3070)로부터 컴퓨터 프로그램을 판독하고, 그런 다음 컴퓨터 프로그램에 의해 정의된 방법을 수행하도록 구성된다. 예를 들어, 프로세서(3050)는 시스템에서 운영체제를 실행하고 운영 체제 프로그램(3072)을 판독하여 운영체제의 다양한 기능을 구현하거나, 또는 하나 이상의 응용 프로그램(3051)을 판독하여 시스템 내의 애플리케이션을 실행한다.
예를 들어, 메모리(3070)는 컴퓨터 프로그램(컴퓨터 프로그램은 본 출원의 실시예의 자원 스케줄링 방법에 대응하는 프로그램임)을 저장할 수 있다. 프로세서(3050)가 컴퓨터 프로그램을 실행할 때, 프로세서(3050)는 본 출원의 실시예의 자원 스케줄링 방법을 수행할 수 있다.
메모리(3070)는 컴퓨터 프로그램 이외의 데이터(3073)를 추가로 저장한다. 예를 들어, 본 출원의 자원 스케줄링 방법에서 메모리(3070)는 프레임 드로잉 스레드의 부하 특성과 프레임 드로잉 스레드의 예측 부하 값 등을 저장할 수 있다.
도 1의 모듈들 간의 연결 관계는 단지 예일 뿐이다. 본 출원의 실시예에서 제공되는 자원 스케줄링 방법은, 다른 연결 방식을 사용하는 단말 장치에도 적용될 수 있다. 예를 들어, 모든 모듈이 버스를 이용하여 연결된다.
본 명세서에 개시된 실시예에서 설명된 예와 결합하여, 당업자라면 유닛과 알고리즘 단계가 전자 하드웨어 또는 컴퓨터 소프트웨어와 전자 하드웨어의 조합에 의해 구현될 수 있음을 알 수 있을 것이다. 이러한 기능이 하드웨어 또는 소프트웨어에 의해 수행되는지 여부가 기술적 해결책의 특정 적용과 설계 제약조건에 따라 달라진다. 당업자는 각각의 특정 적용에 대한 설명된 기능을 구현하기 위해 다른 방법을 사용할 수 있지만, 이 구현이 본 출원의 범위를 벗어나는 것으로 간주해서는 안 된다.
편리하고 간략한 설명을 위해, 전술한 시스템, 장치, 및 유닛의 상세한 작동 과정에 대해서는 전술한 방법 실시예의 대응하는 과정을 참조할 수 있고, 본 명세서에서는 세부사항에 대해 다시 설명하지 않는다는 것을 당업자라면 명확하게 이해할 수 있다.
본 출원에서 제공되는 몇몇 실시예에서, 공개된 시스템, 장치, 및 방법이 다른 방식으로 구현될 수 있다는 것을 이해해야 한다. 예를 들어, 설명된 장치 실시예는 단지 예일 뿐이다. 예를 들어, 유닛 분할이 단지 논리적 기능 분할일 뿐이고, 실제 구현에서는 다른 분할이 있을 수 있다. 예를 들어, 복수의 유닛 또는 구성 요소가 다른 시스템에 결합되거나 또는 통합될 수 있거나, 또는 일부 특징이 무시되거나 또는 수행되지 않을 수 있다. 또한, 표시되거나 또는 논의된 상호 결합 또는 직접 결합 또는 통신 연결이 일부 인터페이스를 이용하여 구현될 수 있다. 장치 또는 유닛 간의 간접 결합 또는 통신 연결이 전기적 형태, 또는 기계적인 형태, 또는 다른 형태로 구현될 수 있다.
별도의 부분으로 설명된 유닛이 물리적으로 분리되어 있거나 또는 분리되어 있지 않을 수 있고, 유닛으로 표시된 부분이 물리적 유닛일 수 있거나 또는 물리적 유닛이 아닐 수 있으며, 하나의 위치에 위치할 수 있거나, 또는 복수의 네트워크 유닛에 분산되어 있을 수 있다. 유닛들 중 일부 또는 전부가 실제 요구사항에 기초하여 선택되어 실시예의 해결책의 목적을 달성할 수 있다.
또한, 본 출원의 실시예에의 기능 유닛이 하나의 처리 유닛으로 통합될 수 있거나, 또는 각각의 유닛이 물리적으로 단독으로 존재할 수 있거나, 또는 2개 이상의 유닛이 하나의 유닛으로 통합될 수 있다.
이러한 기능이 소프트웨어 기능 유닛의 형태로 구현되고 독립적인 제품으로 판패되거나 사용될 때, 이러한 기능은 컴퓨터 판독가능 저장 매체에 저장될 수 있다. 이러한 이해를 바탕으로, 본 출원의 기술적 해결책은 본질적으로, 또는 종래 기술에 기여하는 부분, 또는 기술적 해결책의 일부가 소프트웨어 제품의 형태로 구현될 수 있다. 컴퓨터 소프트웨어 제품은 저장 매체에 저장되고, 본 출원의 실시예에서 설명된 자원 스케줄링 방법의 단계 중 전부 또는 일부를 수행하도록 컴퓨터 장치(개인용 컴퓨터, 또는 서버, 또는 네트워크 장치 등일 수 있음)에 지시하기 위한 여러 명령을 포함한다. 저장 매체는 프로그램 코드를 저장할 수 있는 임의의 매체, 예컨대 USB 플래시 드라이브, 착탈식 하드 디스크(removable hard disk), 또는 읽기 전용 메모리(read-only memory, ROM), 또는 랜덤 액세스 메모리(Random Access Memory, RAM), 또는 자기 디스크, 또는 광 디스크를 포함한다.
전술한 설명은 본 출원의 구체적인 실시 형태일 뿐이며, 본 출원의 보호 범위를 제한하려는 것은 아니다. 본 출원에 개시된 기술 범위 내에서 당업자에 의해 즉시 파악되는 어떠한 변형이나 대체도 본 출원의 보호 범위에 속할 것이다. 따라서, 본 출원의 보호 범위는 청구항의 보호 범위를 따라야 할 것이다.

Claims (48)

  1. 단말 장치에 적용되는 자원 스케줄링 방법으로서,
    프레임 드로잉 스레드(frame drawing thread)의 부하 특징을 결정하는 단계 - 상기 프레임 드로잉 스레드는 이미지 프레임을 드로잉하는 데 사용됨 -;
    상기 프레임 드로잉 스레드의 부하 특징에 기초하여 목표 자원 스케줄링 방식을 결정하는 단계; 및
    상기 목표 자원 스케줄링 방식으로 상기 프레임 드로잉 스레드에 대한 자원을 스케줄링하는 단계
    를 포함하는 자원 스케줄링 방법.
  2. 제1항에 있어서,
    상기 프레임 드로잉 스레드의 부하 특징은 상기 프레임 드로잉 스레드의 자원 요구 특성을 나타내는 데 사용되는, 자원 스케줄링 방법.
  3. 제1항 또는 제2항에 있어서,
    상기 프레임 드로잉 스레드의 부하 특징은 상기 프레임 드로잉 스레드의 명령어당 평균 사이클 수, 분기 명령어의 수, 및 캐시 실패율(cache miss rate) 중 적어도 하나를 포함하는, 자원 스케줄링 방법.
  4. 제1항 또는 제2항에 있어서,
    상기 프레임 드로잉 스레드의 부하 특징은 제1 시간 간격에서 상기 프레임 드로잉 스레드의 명령어당 평균 사이클 수, 분기 명령어의 수, 및 캐시 실패율 중 적어도 하나에 기초하여 결정되고, 상기 제1 시간 간격은 상기 프레임 드로잉 스레드의 실행의 시작과 상기 드로잉 스레드의 실행의 끝 사이의 시구간인, 자원 스케줄링 방법.
  5. 제1항 내지 제4항 중 어느 한 항에 있어서,
    상기 프레임 드로잉 스레드의 부하 특징에 기초하여 목표 자원 스케줄링 방식을 결정하는 단계는,
    상기 프레임 드로잉 스레드의 부하 특징에 기초하여 상기 프레임 드로잉 스레드의 예측 부하 값을 결정하는 단계; 및
    상기 프레임 드로잉 스레드의 부하 특징, 상기 프레임 드로잉 스레드의 예측 부하 값, 및 사전 설정된 목표 프레임 레이트에 기초하여 상기 목표 자원 스케줄링 방식을 결정하는 단계
    를 포함하는, 자원 스케줄링 방법.
  6. 제5항에 있어서,
    상기 프레임 드로잉 스레드의 부하 특징, 상기 프레임 드로잉 스레드의 예측 부하 값, 및 사전 설정된 목표 프레임 레이트에 기초하여 상기 목표 자원 스케줄링 방식을 결정하는 단계는,
    상기 프레임 드로잉 스레드의 부하 특징, 상기 프레임 드로잉 스레드의 예측 부하 값, 및 상기 사전 설정된 목표 프레임 레이트에 기초하여, 상기 프레임 드로잉 스레드에 대한 자원을 스케줄링하는 적어도 하나의 자원 스케줄링 방식을 결정하는 단계; 및
    상기 적어도 하나의 자원 스케줄링 방식 중에서 전력 소비가 가장 낮은 자원 스케줄링 방식을 상기 목표 자원 스케줄링 방식으로 결정하는 단계
    를 포함하는, 자원 스케줄링 방법.
  7. 제1항 내지 제4항 중 어느 한 항에 있어서,
    상기 프레임 드로잉 스레드의 부하 특징에 기초하여 목표 자원 스케줄링 방식을 결정하는 단계는,
    상기 프레임 드로잉 스레드의 부하 특징에 기초하여 상기 프레임 드로잉 스레드의 예측 부하 값을 결정하는 단계; 및
    상기 프레임 드로잉 스레드의 부하 특징, 상기 프레임 드로잉 스레드의 예측 부하 값, 및 제1 매핑 관계 정보에 기초하여 상기 목표 자원 스케줄링 방식을 결정하는 단계 - 상기 제1 매핑 관계 정보는 복수의 부하 정보와 상기 복수의 부하 정보 각각에 대응하는 자원 스케줄링 방식을 포함하고, 상기 복수의 부하 정보 각각은 하나의 부하 특징과 하나의 부하 값을 포함하고 있음 -
    를 포함하는, 자원 스케줄링 방법.
  8. 제5항 내지 제7항 중 어느 한 항에 있어서,
    상기 프레임 드로잉 스레드의 부하 특징에 기초하여 상기 프레임 드로잉 스레드의 예측 부하 값을 결정하는 단계는,
    상기 프레임 드로잉 스레드의 부하 특징과 제2 매핑 관계 정보에 기초하여 상기 프레임 드로잉 스레드의 예측 부하 값을 결정하는 단계 - 상기 제2 매핑 관계 정보는 복수의 부하 특징과 상기 복수의 부하 특징 각각에 대응하는 부하 값을 포함하고 있음 -
    를 포함하는, 자원 스케줄링 방법.
  9. 제8항에 있어서,
    상기 프레임 드로잉 스레드의 부하 특징과 제2 매핑 관계 정보에 기초하여 상기 프레임 드로잉 스레드의 예측 부하 값을 결정하는 단계는,
    상기 제2 매핑 관계 정보 내의 상기 복수의 부하 특징이 참조 부하 특징을 포함하면, 상기 참조 부하 특징에 대응하는 부하 값을 상기 프레임 드로잉 스레드의 예측 부하 값으로 결정하는 단계 - 상기 참조 부하 특징과 상기 프레임 드로잉 스레드의 부하 특징 사이의 유사도가 유사도 임계값보다 크거나 같음 -
    를 포함하는, 자원 스케줄링 방법.
  10. 제8항 또는 제9항에 있어서,
    상기 프레임 드로잉 스레드의 부하 특징과 제2 매핑 관계 정보에 기초하여 상기 프레임 드로잉 스레드의 예측 부하 값을 결정하는 단계는,
    상기 제2 매핑 관계 정보 내의 상기 복수의 부하 특징이 참조 부하 특징을 포함하지 않으면, 상기 프레임 드로잉 스레드를 이용하여 드로잉된 상기 이미지 프레임에 선행하는 프레임의 부하 값을 상기 프레임 드로잉 스레드의 예측 부하 값으로 결정하는 단계 - 상기 참조 부하 특징과 상기 프레임 드로잉 스레드의 부하 특징 사이의 유사도가 유사도 임계값보다 크거나 같음 -
    를 포함하는, 자원 스케줄링 방법.
  11. 제1항 내지 제4항 중 어느 한 항에 있어서,
    상기 프레임 드로잉 스레드의 부하 특징에 기초하여 목표 자원 스케줄링 방식을 결정하는 단계는,
    상기 프레임 드로잉 스레드의 부하 특징과 제3 매핑 관계 정보에 기초하여 상기 목표 자원 스케줄링 방식을 결정하는 단계 - 상기 제3 매핑 관계 정보는 복수의 부하 특징과 상기 복수의 부하 특징 각각에 대응하는 자원 스케줄링 방식을 포함하고 있음 -
    를 포함하는, 자원 스케줄링 방법.
  12. 제11항에 있어서,
    상기 프레임 드로잉 스레드의 부하 특징과 제3 매핑 관계 정보에 기초하여 상기 목표 자원 스케줄링 방식을 결정하는 단계는,
    상기 제3 매핑 관계 정보 내의 상기 복수의 부하 특징이 참조 부하 특징을 포함하면, 상기 참조 부하 특징에 대응하는 자원 스케줄링 방식을 상기 목표 자원 스케줄링 방식으로 결정하는 단계 - 상기 참조 부하 특징과 상기 프레임 드로잉 스레드의 부하 특징 사이의 유사도가 유사도 임계값보다 크거나 같음 -
    를 포함하는, 자원 스케줄링 방법.
  13. 제11항 또는 제12항에 있어서,
    상기 프레임 드로잉 스레드의 부하 특징과 제3 매핑 관계 정보에 기초하여 상기 목표 자원 스케줄링 방식을 결정하는 단계는,
    상기 제3 매핑 관계 정보 내의 상기 복수의 부하 특징이 참조 부하 특징을 포함하지 않으면, 상기 프레임 드로잉 스레드를 이용하여 드로잉된 상기 이미지 프레임에 선행하는 프레임의 프레임 드로잉 스레드의 목표 자원 스케줄링 방식을 상기 목표 자원 스케줄링 방식으로 결정하는 단계 - 상기 참조 부하 특징과 상기 프레임 드로잉 스레드의 부하 특징 사이의 유사도가 유사도 임계값보다 크거나 같음 -
    를 포함하는, 자원 스케줄링 방법.
  14. 제1항 내지 제13항 중 어느 한 항에 있어서,
    상기 자원 스케줄링 방법이,
    상기 프레임 드로잉 스레드의 연관 스레드를 결정하는 단계 - 상기 연관 스레드는 상기 프레임 드로잉 스레드로 하여금 휴면 상태에 들어가게 할 수 있는 스레드임 -; 및
    상기 연관 스레드의 실행을 가속화하기 위해 상기 연관 스레드에 대한 자원을 스케줄링하는 단계
    를 더 포함하는 자원 스케줄링 방법.
  15. 제1항 내지 제14항 중 어느 한 항에 있어서,
    상기 프레임 드로잉 스레드의 실행이 미리 결정된 시간 내에 완료되지 않고, 상기 자원 스케줄링 방법이,
    상기 프레임 드로잉 스레드의 실행을 가속화하기 위해 상기 프레임 드로잉 스레드에 대한 추가 자원을 스케줄링하는 단계 - 상기 미리 결정된 시간은, 상기 목표 자원 스케줄링 방식으로 상기 프레임 드로잉 스레드에 대해 자원이 스케줄링될 때 상기 프레임 드로잉 스레드의 실행을 완료하는 데 필요한 시간임 -
    를 더 포함하는 자원 스케줄링 방법.
  16. 제15항에 있어서,
    상기 추가 자원의 크기와 제1 차이값 사이에는 양의 상관 관계가 있고, 상기 제1 차이값은 상기 추가 자원을 스케줄링하는 시점과 상기 사전 설정된 시간의 종료 시점 간의 차이값인, 자원 스케줄링 방법.
  17. 단말 장치에 적용되는 자원 스케줄링 방법으로서,
    프레임 드로잉 스레드(frame drawing thread)의 부하 특징을 결정하는 단계 - 상기 프레임 드로잉 스레드는 이미지 프레임을 드로잉하는 데 사용됨 -;
    상기 프레임 드로잉 스레드의 부하 특징 및 상기 프레임 드로잉 스레드에 대응하는 적용 시나리오에 기초하여 상기 프레임 드로잉 스레드의 목표 예측 부하 값을 결정하는 단계;
    상기 프레임 드로잉 스레드의 부하 특징, 상기 프레임 드로잉 스레드의 목표 예측 부하 값, 및 사전 설정된 목표 프레임 레이트에 기초하여 목표 자원 스케줄링 방식을 결정하는 단계; 및
    상기 목표 자원 스케줄링 방식으로 상기 프레임 드로잉 스레드에 대한 자원을 스케줄링하는 단계
    를 포함하는 자원 스케줄링 방법.
  18. 제17항에 있어서,
    상기 프레임 드로잉 스레드의 부하 특징 및 상기 프레임 드로잉 스레드에 대응하는 적용 시나리오에 기초하여 상기 프레임 드로잉 스레드의 목표 예측 부하 값을 결정하는 단계는,
    상기 프레임 드로잉 스레드의 부하 특징에 기초하여 상기 프레임 드로잉 스레드의 제1 예측 부하 값을 결정하는 단계;
    상기 프레임 드로잉 스레드에 대응하는 상기 적용 시나리오와 제4 매핑 관계 정보에 기초하여 제2 예측 부하 값을 결정하는 단계 - 상기 제4 매핑 관계 정보는 복수의 적용 시나리오와 상기 복수의 적용 시나리오 각각에 대응하는 부하 값을 포함하고 있음 -; 및
    상기 제1 예측 부하 값과 상기 제2 예측 부하 값에 기초하여 상기 목표 예측 부하 값을 결정하는 단계
    를 포함하는, 자원 스케줄링 방법.
  19. 제17항 또는 제18항에 있어서,
    상기 프레임 드로잉 스레드의 부하 특징은 상기 프레임 드로잉 스레드의 자원 요구 특성을 나타내는 데 사용되는, 자원 스케줄링 방법.
  20. 제17항 내지 제19항 중 어느 한 항에 있어서,
    상기 프레임 드로잉 스레드의 부하 특징은 상기 프레임 드로잉 스레드의 명령어당 평균 사이클 수, 분기 명령어의 수, 및 캐시 실패율(cache miss rate) 중 적어도 하나를 포함하는, 자원 스케줄링 방법.
  21. 제17항 내지 제19항 중 어느 한 항에 있어서,
    상기 프레임 드로잉 스레드의 부하 특징은 제1 시간 간격에서 상기 프레임 드로잉 스레드의 명령어당 평균 사이클 수, 분기 명령어의 수, 및 캐시 실패율 중 적어도 하나에 기초하여 결정되는, 자원 스케줄링 방법.
  22. 제17항 내지 제21항 중 어느 한 항에 있어서,
    상기 자원 스케줄링 방법이,
    상기 프레임 드로잉 스레드의 연관 스레드를 결정하는 단계 - 상기 연관 스레드는 상기 프레임 드로잉 스레드로 하여금 휴면 상태에 들어가게 할 수 있는 스레드임 -; 및
    상기 연관 스레드의 실행을 가속화하기 위해 상기 연관 스레드에 대한 자원을 스케줄링하는 단계
    를 더 포함하는 자원 스케줄링 방법.
  23. 제17항 내지 제22항 중 어느 한 항에 있어서,
    상기 프레임 드로잉 스레드의 실행이 미리 결정된 시간 내에 완료되지 않고, 상기 자원 스케줄링 방법이,
    상기 프레임 드로잉 스레드의 실행을 가속화하기 위해 상기 프레임 드로잉 스레드에 대한 추가 자원을 스케줄링하는 단계 - 상기 미리 결정된 시간은, 자원이 상기 목표 자원 스케줄링 방식으로 상기 프레임 드로잉 스레드에 대해 스케줄링될 때 상기 프레임 드로잉 스레드의 실행을 완료하는 데 필요한 시간임 -
    를 더 포함하는 자원 스케줄링 방법.
  24. 제23항에 있어서,
    상기 추가 자원의 크기와 제1 차이값 사이에는 양의 상관 관계가 있고, 상기 제1 차이값은 상기 추가 자원을 스케줄링하는 시점과 상기 사전 설정된 시간의 종료 시점 간의 차이값인, 자원 스케줄링 방법.
  25. 단말 장치로서,
    프레임 드로잉 스레드(frame drawing thread)의 부하 특징을 결정하도록 구성된 처리 모듈 - 상기 프레임 드로잉 스레드는 이미지 프레임을 드로잉하는 데 사용됨 -; 및
    목표 자원 스케줄링 방식으로 상기 프레임 드로잉 스레드에 대한 자원을 스케줄링하도록 구성된 스케줄링 모듈
    을 포함하고,
    상기 처리 모듈은 추가적으로, 상기 프레임 드로잉 스레드의 부하 특징에 기초하여 상기 목표 자원 스케줄링 방식을 결정하도록 구성된, 단말 장치.
  26. 제25항에 있어서,
    상기 프레임 드로잉 스레드의 부하 특징은 상기 프레임 드로잉 스레드의 자원 요구 특성을 나타내는 데 사용되는, 단말 장치.
  27. 제25항 또는 제26항에 있어서,
    상기 프레임 드로잉 스레드의 부하 특징은 상기 프레임 드로잉 스레드의 명령어당 평균 사이클 수, 분기 명령어의 수, 및 캐시 실패율(cache miss rate) 중 적어도 하나를 포함하는, 단말 장치.
  28. 제25항 또는 제26항에 있어서,
    상기 프레임 드로잉 스레드의 부하 특징은 제1 시간 간격에서 상기 프레임 드로잉 스레드의 명령어당 평균 사이클 수, 분기 명령어의 수, 및 캐시 실패율 중 적어도 하나에 기초하여 결정되고, 상기 제1 시간 간격은 상기 프레임 드로잉 스레드의 실행의 시작과 상기 드로잉 스레드의 실행의 끝 사이의 시구간인, 단말 장치.
  29. 제25항 내지 제28항 중 어느 한 항에 있어서,
    상기 처리 모듈은,
    상기 프레임 드로잉 스레드의 부하 특징에 기초하여 상기 프레임 드로잉 스레드의 예측 부하 값을 결정하고;
    상기 프레임 드로잉 스레드의 부하 특징, 상기 프레임 드로잉 스레드의 예측 부하 값, 및 사전 설정된 목표 프레임 레이트에 기초하여 상기 목표 자원 스케줄링 방식을 결정하도록 구성된, 단말 장치.
  30. 제29항에 있어서,
    상기 처리 모듈은,
    상기 프레임 드로잉 스레드의 부하 특징, 상기 프레임 드로잉 스레드의 예측 부하 값, 및 상기 사전 설정된 목표 프레임 레이트에 기초하여, 상기 프레임 드로잉 스레드에 대한 자원을 스케줄링하는 적어도 하나의 자원 스케줄링 방식을 결정하고;
    상기 적어도 하나의 자원 스케줄링 방식 중에서 전력 소비가 가장 낮은 자원 스케줄링 방식을 상기 목표 자원 스케줄링 방식으로 결정하도록 구성된, 단말 장치.
  31. 제25항 내지 제28항 중 어느 한 항에 있어서,
    상기 처리 모듈은,
    상기 프레임 드로잉 스레드의 부하 특징에 기초하여 상기 프레임 드로잉 스레드의 예측 부하 값을 결정하고;
    상기 프레임 드로잉 스레드의 부하 특징, 상기 프레임 드로잉 스레드의 예측 부하 값, 및 제1 매핑 관계 정보에 기초하여 상기 목표 자원 스케줄링 방식을 결정하도록 구성되고, 상기 제1 매핑 관계 정보는 복수의 부하 정보와 상기 복수의 부하 정보 각각에 대응하는 자원 스케줄링 방식을 포함하며, 상기 복수의 부하 정보 각각은 하나의 부하 특징과 하나의 부하 값을 포함하는, 단말 장치.
  32. 제29항 내지 제31항 중 어느 한 항에 있어서,
    상기 처리 모듈은,
    상기 프레임 드로잉 스레드의 부하 특징과 제2 매핑 관계 정보에 기초하여 상기 프레임 드로잉 스레드의 예측 부하 값을 결정하도록 구성되고, 상기 제2 매핑 관계 정보는 복수의 부하 특징과 상기 복수의 부하 특징 각각에 대응하는 부하 값을 포함하는, 단말 장치.
  33. 제32항에 있어서,
    상기 처리 모듈은,
    상기 제2 매핑 관계 정보 내의 상기 복수의 부하 특징이 참조 부하 특징을 포함하면, 상기 참조 부하 특징에 대응하는 부하 값을 상기 프레임 드로잉 스레드의 예측 부하 값으로 결정하도록 구성되고, 상기 참조 부하 특징과 상기 프레임 드로잉 스레드의 부하 특징 사이의 유사도가 유사도 임계값보다 크거나 같은, 단말 장치.
  34. 제32항 또는 제33항에 있어서,
    상기 처리 모듈은,
    상기 제2 매핑 관계 정보 내의 상기 복수의 부하 특징이 참조 부하 특징을 포함하지 않으면, 상기 프레임 드로잉 스레드를 이용하여 드로잉된 상기 이미지 프레임에 선행하는 프레임의 부하 값을 상기 프레임 드로잉 스레드의 예측 부하 값으로 결정하도록 구성되고, 상기 참조 부하 특징과 상기 프레임 드로잉 스레드의 부하 특징 사이의 유사도가 유사도 임계값보다 크거나 같은, 단말 장치.
  35. 제25항 내지 제28항 중 어느 한 항에 있어서,
    상기 처리 모듈은,
    상기 프레임 드로잉 스레드의 부하 특징과 제3 매핑 관계 정보에 기초하여 상기 목표 자원 스케줄링 방식을 결정하도록 구성되고, 상기 제3 매핑 관계 정보는 복수의 부하 특징과 상기 복수의 부하 특징 각각에 대응하는 자원 스케줄링 방식을 포함하는, 단말 장치.
  36. 제35항에 있어서,
    상기 처리 모듈은,
    상기 제3 매핑 관계 정보 내의 상기 복수의 부하 특징이 참조 부하 특징을 포함하면, 상기 참조 부하 특징에 대응하는 자원 스케줄링 방식을 상기 목표 자원 스케줄링 방식으로 결정하도록 구성되고, 상기 참조 부하 특징과 상기 프레임 드로잉 스레드의 부하 특징 사이의 유사도가 유사도 임계값보다 크거나 같은, 단말 장치.
  37. 제35항 또는 제36항에 있어서,
    상기 처리 모듈은,
    상기 제3 매핑 관계 정보 내의 상기 복수의 부하 특징이 참조 부하 특징을 포함하지 않으면, 상기 프레임 드로잉 스레드를 이용하여 드로잉된 상기 이미지 프레임에 선행하는 프레임의 프레임 드로잉 스레드의 목표 자원 스케줄링 방식을 상기 목표 자원 스케줄링 방식으로 결정하도록 구성되고, 상기 참조 부하 특징과 상기 프레임 드로잉 스레드의 부하 특징 사이의 유사도가 유사도 임계값보다 크거나 같은, 단말 장치.
  38. 제25항 내지 제37항 중 어느 한 항에 있어서,
    상기 처리 모듈은 추가적으로,
    상기 프레임 드로잉 스레드의 연관 스레드를 결정하고 - 여기서, 상기 연관 스레드는 상기 프레임 드로잉 스레드로 하여금 휴면 상태에 들어가게 할 수 있는 스레드임 -;
    상기 스케줄링 모듈은 추가적으로, 상기 연관 스레드의 실행을 가속화하기 위해 상기 연관 스레드에 대한 자원을 스케줄링하도록 구성된, 단말 장치.
  39. 제25항 내지 제38항 중 어느 한 항에 있어서,
    상기 프레임 드로잉 스레드의 실행이 미리 결정된 시간 내에 완료되지 않고, 상기 스케줄링 모듈은 추가적으로,
    상기 프레임 드로잉 스레드의 실행을 가속화하기 위해 상기 프레임 드로잉 스레드에 대한 추가 자원을 스케줄링하도록 구성되고, 상기 미리 결정된 시간은, 자원이 상기 목표 자원 스케줄링 방식으로 상기 프레임 드로잉 스레드에 대해 스케줄링될 때 상기 프레임 드로잉 스레드의 실행을 완료하는 데 필요한 시간인, 단말 장치.
  40. 제39항에 있어서,
    상기 추가 자원의 크기와 제1 차이값 사이에는 양의 상관 관계가 있고, 상기 제1 차이값은 상기 추가 자원을 스케줄링하는 시점과 상기 사전 설정된 시간의 종료 시점 간의 차이값인, 단말 장치.
  41. 단말 장치로서,
    프레임 드로잉 스레드(frame drawing thread)의 부하 특징을 결정하도록 구성된 처리 모듈 - 상기 프레임 드로잉 스레드는 이미지 프레임을 드로잉하는 데 사용됨 -; 및
    목표 자원 스케줄링 방식으로 상기 프레임 드로잉 스레드에 대한 자원을 스케줄링하도록 구성된 스케줄링 모듈
    을 포함하고,
    상기 처리 모듈은 추가적으로, 상기 프레임 드로잉 스레드의 부하 특징 및 상기 프레임 드로잉 스레드에 대응하는 적용 시나리오에 기초하여 상기 프레임 드로잉 스레드의 목표 예측 부하 값을 결정하도록 구성되고;
    상기 처리 모듈은 추가적으로, 상기 프레임 드로잉 스레드의 부하 특징, 상기 프레임 드로잉 스레드의 목표 예측 부하 값, 및 사전 설정된 목표 프레임 레이트에 기초하여 상기 목표 자원 스케줄링 방식을 결정하도록 구성된, 단말 장치.
  42. 제41항에 있어서,
    상기 처리 모듈은,
    상기 프레임 드로잉 스레드의 부하 특징에 기초하여 상기 프레임 드로잉 스레드의 제1 예측 부하 값을 결정하고;
    상기 프레임 드로잉 스레드에 대응하는 상기 적용 시나리오와 제4 매핑 관계 정보에 기초하여 제2 예측 부하 값을 결정하며 - 여기서, 상기 제4 매핑 관계 정보는 복수의 적용 시나리오와 상기 복수의 적용 시나리오 각각에 대응하는 부하 값을 포함하고 있음 -;
    상기 제1 예측 부하 값과 상기 제2 예측 부하 값에 기초하여 상기 목표 예측 부하 값을 결정하도록 구성된, 단말 장치.
  43. 제41항 또는 제42항에 있어서,
    상기 프레임 드로잉 스레드의 부하 특징은 상기 프레임 드로잉 스레드의 자원 요구 특성을 나타내는 데 사용되는, 단말 장치.
  44. 제41항 내지 제43항 중 어느 한 항에 있어서,
    상기 프레임 드로잉 스레드의 부하 특징은 상기 프레임 드로잉 스레드의 명령어당 평균 사이클 수, 분기 명령어의 수, 및 캐시 실패율(cache miss rate) 중 적어도 하나를 포함하는, 단말 장치.
  45. 제41항 내지 제43항 중 어느 한 항에 있어서,
    상기 프레임 드로잉 스레드의 부하 특징은 제1 시간 간격에서 상기 프레임 드로잉 스레드의 명령어당 평균 사이클 수, 분기 명령어의 수, 및 캐시 실패율 중 적어도 하나에 기초하여 결정되는, 단말 장치.
  46. 제41항 내지 제45항 중 어느 한 항에 있어서,
    상기 처리 모듈은 추가적으로,
    상기 프레임 드로잉 스레드의 연관 스레드를 결정하도록 구성되고 - 여기서, 상기 연관 스레드는 상기 프레임 드로잉 스레드로 하여금 휴면 상태에 들어가게 할 수 있는 스레드임 -;
    상기 스케줄링 모듈은 추가적으로, 상기 연관 스레드의 실행을 가속화하기 위해 상기 연관 스레드에 대한 자원을 스케줄링하도록 구성된, 단말 장치.
  47. 제41항 내지 제46항 중 어느 한 항에 있어서,
    상기 프레임 드로잉 스레드의 실행이 미리 결정된 시간 내에 완료되지 않고, 상기 스케줄링 모듈은 추가적으로,
    상기 프레임 드로잉 스레드의 실행을 가속화하기 위해 상기 프레임 드로잉 스레드에 대한 추가 자원을 스케줄링하도록 구성되고, 상기 미리 결정된 시간은, 자원이 상기 목표 자원 스케줄링 방식으로 상기 프레임 드로잉 스레드에 대해 스케줄링될 때 상기 프레임 드로잉 스레드의 실행을 완료하는 데 필요한 시간인, 단말 장치.
  48. 제47항에 있어서,
    상기 추가 자원의 크기와 제1 차이값 사이에는 양의 상관 관계가 있고, 상기 제1 차이값은 상기 추가 자원을 스케줄링하는 시점과 상기 사전 설정된 시간의 종료 시점 간의 차이값인, 단말 장치.
KR1020207026994A 2018-10-11 2019-06-10 자원 스케줄링 방법 및 단말 장치 KR102490908B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201811184979.7 2018-10-11
CN201811184979.7A CN111045814B (zh) 2018-10-11 2018-10-11 资源调度方法和终端设备
PCT/CN2019/090573 WO2020073672A1 (zh) 2018-10-11 2019-06-10 资源调度方法和终端设备

Publications (2)

Publication Number Publication Date
KR20200122364A true KR20200122364A (ko) 2020-10-27
KR102490908B1 KR102490908B1 (ko) 2023-01-19

Family

ID=70163893

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020207026994A KR102490908B1 (ko) 2018-10-11 2019-06-10 자원 스케줄링 방법 및 단말 장치

Country Status (6)

Country Link
US (2) US11765754B2 (ko)
EP (1) EP3748470A4 (ko)
JP (1) JP7195334B2 (ko)
KR (1) KR102490908B1 (ko)
CN (1) CN111045814B (ko)
WO (1) WO2020073672A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023167438A1 (ko) * 2022-03-03 2023-09-07 삼성전자주식회사 시스템의 성능 병목 현상을 처리하는 전자 장치 및 그 동작 방법

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111736558A (zh) * 2020-07-01 2020-10-02 佛山科学技术学院 一种生产联线设备控制方法以及控制系统
CN112114975B (zh) * 2020-10-28 2023-06-27 Oppo广东移动通信有限公司 处理器频率的调整方法、装置、存储介质及电子设备
CN112416561B (zh) * 2020-12-07 2022-11-25 西北大学 一种面向目标计数任务场景的资源动态调度与管理方法
CN112764915B (zh) * 2020-12-10 2023-11-14 国家卫星气象中心(国家空间天气监测预警中心) 一种时间相关度的资源消耗分析方法
CN115237583A (zh) * 2021-04-22 2022-10-25 华为技术有限公司 计算资源调度方法及装置
CN113535357A (zh) * 2021-07-07 2021-10-22 厦门墨逦标识科技有限公司 Eagle视觉应用中保障主线程性能的方法、存储介质
CN113590621B (zh) * 2021-07-26 2024-01-23 上海英方软件股份有限公司 一种数据库表比对方法及装置
CN115017003B (zh) * 2021-12-22 2023-05-30 荣耀终端有限公司 负载预测方法和负载预测装置
CN116723265A (zh) * 2022-09-14 2023-09-08 荣耀终端有限公司 图像处理方法、可读存储介质、程序产品和电子设备
CN116703691B (zh) * 2022-11-17 2024-05-14 荣耀终端有限公司 图像处理方法、电子设备及计算机存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104460934A (zh) * 2013-09-13 2015-03-25 华为终端有限公司 多cpu调度方法及装置
KR20170120022A (ko) * 2016-04-20 2017-10-30 삼성전자주식회사 태스크 스케줄링 방법 및 장치
KR20180018302A (ko) * 2016-08-11 2018-02-21 삼성전자주식회사 데이터 프로세싱 엔진 및 그것의 리소스 관리 방법
KR20180048886A (ko) * 2015-08-31 2018-05-10 퀄컴 인코포레이티드 커맨드 스트림 힌팅을 사용한 gpu 작업부하 특성화 및 전력 관리

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6909836B2 (en) * 2001-02-07 2005-06-21 Autodesk Canada Inc. Multi-rate real-time players
US8255912B2 (en) * 2005-04-13 2012-08-28 Qualcomm Incorporated Techniques for setting events in a multi-threaded system
US20070136725A1 (en) * 2005-12-12 2007-06-14 International Business Machines Corporation System and method for optimized preemption and reservation of software locks
US8291431B2 (en) * 2006-08-29 2012-10-16 Qualcomm Incorporated Dependent instruction thread scheduling
US20090165007A1 (en) * 2007-12-19 2009-06-25 Microsoft Corporation Task-level thread scheduling and resource allocation
US7526682B1 (en) * 2008-06-20 2009-04-28 International Business Machines Corporation Effective diagnosis of software hangs
US8200594B1 (en) * 2008-09-10 2012-06-12 Nvidia Corporation System, method, and computer program product for accelerating a game artificial intelligence process
US8429665B2 (en) * 2010-03-19 2013-04-23 Vmware, Inc. Cache performance prediction, partitioning and scheduling based on cache pressure of threads
US8732714B2 (en) 2008-12-08 2014-05-20 Kpit Technologies Limited Method for reorganizing tasks for optimization of resources
JP5448032B2 (ja) 2008-12-25 2014-03-19 インターナショナル・ビジネス・マシーンズ・コーポレーション リソース管理装置、リソース管理プログラム、およびリソース管理方法
US8533719B2 (en) * 2010-04-05 2013-09-10 Oracle International Corporation Cache-aware thread scheduling in multi-threaded systems
US10386900B2 (en) * 2013-09-24 2019-08-20 Intel Corporation Thread aware power management
US9639363B2 (en) * 2013-10-30 2017-05-02 The Regents Of The University Of Michigan Heterogeneity within a processor core
US9569062B2 (en) * 2014-05-21 2017-02-14 Facebook, Inc. Asynchronous execution of animation tasks for a GUI
US10509677B2 (en) * 2015-09-30 2019-12-17 Lenova (Singapore) Pte. Ltd. Granular quality of service for computing resources
CN105376236B (zh) * 2015-11-24 2019-01-25 山东金佳园科技股份有限公司 移动设备信息传递方法
CN106936883B (zh) 2015-12-31 2020-03-20 伊姆西Ip控股有限责任公司 用于云系统的方法和装置
US20170206111A1 (en) * 2016-01-15 2017-07-20 Qualcomm Innovation Center, Inc. Managing processing capacity provided to threads based upon load prediction
US10599481B2 (en) * 2017-06-04 2020-03-24 Apple Inc. Scheduler for amp architecture using a closed loop performance controller and deferred inter-processor interrupts
US11023245B2 (en) * 2018-09-04 2021-06-01 Apple Inc. Serialization floors and deadline driven control for performance optimization of asymmetric multiprocessor systems

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104460934A (zh) * 2013-09-13 2015-03-25 华为终端有限公司 多cpu调度方法及装置
KR20180048886A (ko) * 2015-08-31 2018-05-10 퀄컴 인코포레이티드 커맨드 스트림 힌팅을 사용한 gpu 작업부하 특성화 및 전력 관리
KR20170120022A (ko) * 2016-04-20 2017-10-30 삼성전자주식회사 태스크 스케줄링 방법 및 장치
KR20180018302A (ko) * 2016-08-11 2018-02-21 삼성전자주식회사 데이터 프로세싱 엔진 및 그것의 리소스 관리 방법

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023167438A1 (ko) * 2022-03-03 2023-09-07 삼성전자주식회사 시스템의 성능 병목 현상을 처리하는 전자 장치 및 그 동작 방법

Also Published As

Publication number Publication date
CN111045814A (zh) 2020-04-21
EP3748470A4 (en) 2021-07-07
CN111045814B (zh) 2023-12-08
KR102490908B1 (ko) 2023-01-19
JP2021517697A (ja) 2021-07-26
WO2020073672A1 (zh) 2020-04-16
US20200413423A1 (en) 2020-12-31
JP7195334B2 (ja) 2022-12-23
US20230413304A1 (en) 2023-12-21
EP3748470A1 (en) 2020-12-09
US11765754B2 (en) 2023-09-19

Similar Documents

Publication Publication Date Title
KR102490908B1 (ko) 자원 스케줄링 방법 및 단말 장치
US11106579B2 (en) System and method to manage and share managed runtime memory for java virtual machine
KR102380670B1 (ko) 메모리 제어기에서의 세분화된 대역폭 프로비저닝
US7185155B2 (en) Methods and mechanisms for proactive memory management
US20170177415A1 (en) Thread and/or virtual machine scheduling for cores with diverse capabilities
US20210256427A1 (en) Automated Computer Operating System Optimization
CN107562645B (zh) 一种内存页管理方法及计算设备
CN112711387B (zh) 缓冲区容量的调整方法、装置、电子设备及可读存储介质
US11184263B1 (en) Intelligent serverless function scaling
KR102502569B1 (ko) 시스템 리소스 관리를 위한 방법 및 장치
CN110795238A (zh) 负载计算方法、装置、存储介质及电子设备
US20170269668A1 (en) Wireless component state based power management
CN110795323A (zh) 负载统计方法、装置、存储介质及电子设备
CN116303132A (zh) 一种数据缓存方法、装置、设备以及存储介质
CN115220564A (zh) 功耗调节方法、装置、存储介质、处理器及电子设备
US11934678B2 (en) Data reduction for storage volumes
Phan Energy-efficient straggler mitigation for big data applications on the clouds
CN116136819A (zh) 设备分析方法及装置、电子设备、存储介质
CN113138909A (zh) 负载统计方法、装置、存储介质及电子设备
CN118152106A (zh) 资源调度方法和终端设备
CN117931111A (zh) 应用跨屏移动方法、装置、存储介质及电子设备
CN118151855A (zh) 一种ssd工作场景切换方法、装置、设备及存储介质
CN117827988A (zh) 一种数据仓库优化方法、装置、设备及其存储介质
CN117762720A (zh) 数据处理方法、装置、存储介质及程序产品
CN116934570A (zh) 一种应用程序页面的图像处理方法、装置及电子设备

Legal Events

Date Code Title Description
A201 Request for examination
AMND Amendment
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment
X701 Decision to grant (after re-examination)
GRNT Written decision to grant