KR20120069364A - 멀티코어 환경에서 코어별 처리 능력 및 전력량을 고려한 프레임 처리장치 및 방법 - Google Patents

멀티코어 환경에서 코어별 처리 능력 및 전력량을 고려한 프레임 처리장치 및 방법 Download PDF

Info

Publication number
KR20120069364A
KR20120069364A KR1020100130880A KR20100130880A KR20120069364A KR 20120069364 A KR20120069364 A KR 20120069364A KR 1020100130880 A KR1020100130880 A KR 1020100130880A KR 20100130880 A KR20100130880 A KR 20100130880A KR 20120069364 A KR20120069364 A KR 20120069364A
Authority
KR
South Korea
Prior art keywords
core
processing
frame
power
load
Prior art date
Application number
KR1020100130880A
Other languages
English (en)
Inventor
백현기
정희진
정경진
김재원
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR1020100130880A priority Critical patent/KR20120069364A/ko
Priority to US13/310,897 priority patent/US20120154410A1/en
Publication of KR20120069364A publication Critical patent/KR20120069364A/ko

Links

Images

Classifications

    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/36Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
    • G09G5/363Graphics controllers
    • 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
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/36Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
    • G09G5/39Control of the bit-mapped memory
    • G09G5/393Arrangements for updating the contents of the bit-mapped memory
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2330/00Aspects of power supply; Aspects of display protection and defect management
    • G09G2330/02Details of power systems and of start or stop of display operation
    • G09G2330/021Power management, e.g. power saving
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2354/00Aspects of interface with display user
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2360/00Aspects of the architecture of display systems
    • G09G2360/06Use of more than one graphics processor to process data before displaying to one or more screens
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2360/00Aspects of the architecture of display systems
    • G09G2360/08Power processing, i.e. workload management for processors involved in display operations, such as CPUs or GPUs
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2360/00Aspects of the architecture of display systems
    • G09G2360/16Calculation or use of calculated indices related to luminance levels in display data
    • 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)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computer Graphics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Power Sources (AREA)
  • Controls And Circuits For Display Device (AREA)

Abstract

멀티코어(Multicore) 환경에서 효과적인 사용자 인터페이스 드로잉을 수행하기 위한 방안으로써 사용자 요구사항을 맞추면서 가장 저전력으로 동작할 수 있는 하드웨어(Hardware) 조합을 도출하고 이 조합을 이용하여 병렬 사용자 인터페이스 드로잉을 수행하게 한다.

Description

멀티코어 환경에서 코어별 처리 능력 및 전력량을 고려한 프레임 처리장치 및 방법{Apparatus and method of processing the frame for considering processing capability and power consumption in multicore environment}
Multicore 환경에서 사용자 인터페이스(User Interface) 처리를 효율적으로 하기 위한 기술에 관한 것으로, 보다 상세하게는 UI처리가 가능한 다수의 코어(Hardware) 중 사용자 처리 요구 수준에 맞으면서 최소한의 전력으로 동작할 수 있는 기술에 관한 것이다.
사용자 인터페이스를 표시하기 위하여 프레임(Frame) 처리를 위한 오퍼레이션(operation) 의 병렬화를 수행할 때, 드로잉(Drawing)을 수행하는 하드웨어를 초기에 할당하여, 프레임을 할당된 하드웨어에 대하여 영역별로 나누어 동시에 처리한다.
이러한 경우 프레임 처리(Draw process)의 처리 요구량을 파악하지 않기 때문에, 병렬화 수행시 다수개의 하드웨어를 사용하더라도, 매 프레임에 대해서 초기에 할당된 동일한 하드웨어들이 드로잉에 참여하게 된다.
이렇게 되면, 만약 입력 프레임의 드로잉 연산량이 높을 경우, 할당된 모든 하드웨어를 사용해도 요구 응답속도를 맞추지 못하는 경우가 생긴다. 반대로, 입력 프레임의 드로잉 연산량이 낮을 경우, 요구 응답시간은 맞출 수 있더라도 추가의 하드웨어 자원이 사용되어 전력 소모량이 커지게 된다.
따라서, 입력 프레임의 드로잉 연산 요구량을 동적으로 파악하여 사용자 요구 응답속도에 부응하는 동시에 최적의 자원을 소비하는 드로잉 처리 방안이 필요하다.
멀티코어(Multicore) 환경에서 효과적인 사용자 인터페이스 드로잉을 수행하기 위한 방안으로써 사용자 요구사항을 맞추면서 가장 저전력으로 동작할 수 있는 하드웨어(Hardware) 조합을 도출하고 이 조합을 이용하여 병렬 사용자 인터페이스 드로잉을 수행하게 한다.
이를 위해 입력 프레임(Frame)에 대해서 드로잉 오퍼레이션 특성(Drawing operation type) 및 표시영역을 파악하여 처리해야 할 부하(Load)를 계산하고, 이에 대하여 각 하드웨어(Hardware)별 처리능력 및 전력 소비량을 파악한다.
또한, 이러한 정보를 바탕으로 주어진 부하(Load) 처리 수준을 만족하면서 최소한의 전력량으로 동작하는 하드웨어 조합을 결정하고 이를 드로잉(Drawing)에 적용한다.
본 발명의 일 양상에 따른 멀티코어 환경에서 코어별 처리 능력 및 전력량을 고려한 프레임 처리장치는 사용자 인터페이스(User Interface)에 표시될 프레임을 구성하는 오퍼레이션의 특성과 표시영역을 참조하여 상기 오퍼레이션의 특성 별로 오퍼레이션을 처리하기 위한 시스템의 부하(load)를 산출하는 부하 산출부 및 산출된 부하와, 멀티코어 시스템에 존재하는 코어에 대한 처리 능력 및 전력 사용량을 고려하여 프레임을 표시하기 위해 소비되는 전력량이 적은 코어를 선택하는 코어 선택부를 포함할 수 있다.
또한, 프레임을 구성하는 오퍼레이션을 순차적으로 저장하는 저장부를 더 포함할 수 있다.
또한, 오퍼레이션을 상기 선택된 코어에서 처리하여 사용자 인터페이스에 표시될 프레임을 생성하는 프레임 생성부를 더 포함할 수 있다.
본 발명의 일 양상에 따른 멀티코어 환경에서 코어별 처리 능력 및 전력량을 고려한 프레임 처리방법은 사용자 인터페이스(User Interface)에 표시될 프레임을 구성하는 오퍼레이션을 입력받아 순차적으로 저장하는 단계, 저장된 오퍼레이션의 특성과 표시영역을 참조하여 오퍼레이션의 특성 별로 오퍼레이션을 처리하기 위한 시스템의 부하(load)를 산출하는 단계, 산출된 부하와, 멀티코어 시스템에 존재하는 코어에 대한 처리 능력 및 전력 사용량을 고려하여 프레임을 표시하기 위해 소비되는 전력량이 적은 코어를 선택하는 단계 및 오퍼레이션을 선택된 코어에서 처리하여 사용자 인터페이스에 표시될 프레임을 생성하는 단계를 포함할 수 있다.
또한, 부하를 산출하는 단계는 오퍼레이션의 특성과 표시되는 영역의 픽셀수로부터 오퍼레이션을 처리하는데 소비되는 시스템의 부하를 수치화하여 산출하고, 산출된 부하를 오퍼레이션의 특성 별로 구분하여 프레임을 구성하는 오퍼레이션들의 특성의 개수만큼 시스템의 부하를 산출한다.
또한, 코어를 선택하는 단계는 프레임을 구성하는 오퍼레이션 중에서 멀티코어 시스템에 존재하는 코어 중 하나의 코어에서만 처리가능한 오퍼레이션이 존재하는 경우, 하나의 코어를 선택하는 단계, 선택된 코어가 저장된 순서에 따라 오퍼레이션을 처리할 경우 프레임을 구성하는 모든 오퍼레이션에 대한 부하를 수용할 수 있는지 판단하는 단계, 선택된 코어가 모든 오퍼레이션에 대한 부하를 수용할 수 없는 것으로 판단된 경우, 멀티코어 시스템에 존재하는 코어에 대한 처리 능력 및 전력 사용량으로부터 오퍼레이션을 처리하기 위해 소비되는 전력량이 최소가 되는 코어를 추가로 선택하는 단계, 선택된 코어들이 프레임을 구성하는 모든 오퍼레이션에 대한 부하를 수용할 수 있는지 판단하고, 수용할 수 있는 경우 선택된 코어들을 통하여 상기 오퍼레이션을 처리하도록 할당하는 단계를 포함할 수 있다.
또한, 코어를 추가로 선택하는 단계는 멀티코어 시스템에 존재하는 코어 별로 처리가능한 오퍼레이션에 대한 사용자 요구시간 당 수행할 수 있는 픽셀(pixel)수와 일정 픽셀을 수행하는 경우에 소비되는 전력량으로부터 해당 코어의 능력치를 산출하는 단계 및 멀티코어 시스템에 존재하는 코어 중 능력치가 극값을 갖는 코어를 선택하는 단계를 포함할 수 있다.
입력 프레임(Frame)에 드로잉 부하(Drawing Load)를 측정하여, 사용자 요구 응답속도는 맞추면서 최소의 전력으로 동작할 수 있다.
입력 프레임(Frame)에 대해서 드로잉 오퍼레이션 특성(Drawing operation type) 및 표시영역을 파악하여 처리해야 할 부하(Load)를 계산하고, 이에 대하여 각 하드웨어(Hardware)별 처리능력 및 전력 소비량을 할 수 있다.
주어진 부하(Load) 처리 수준을 만족하면서 최소한의 전력량으로 동작하는 하드웨어 조합을 결정하고 이를 드로잉(Drawing)에 적용할 수 있다.
도 1은 본 발명의 바람직한 일 실시예에 따른 프레임을 구성하는 뷰 계층 트리(View Hierarchy Tree)의 개념을 나타낸 도면이다.
도 2는 본 발명의 바람직한 일 실시예에 따른 단말기에 표시되는 프레임을 구성하는 뷰 계층을 나타낸 도면이다.
도 3은 본 발명의 바람직한 일 실시예에 따른 프레임 처리장치를 나타낸 블록도이다.
도 4는 본 발명의 바람직한 일 실시예에 따른 프레임(Frame N)을 표시하기 위한 시스템 부하를 산출하는 과정을 나타낸 도면이다.
도 5a는 본 발명의 바람직한 일 실시예에 따른 시스템 상에 존재하는 코어별 처리능력 및 전력 사용량을 매핑한 테이블이다.
도 5b는 본 발명의 바람직한 일 실시예에 따른 시스템 상에 존재하는 코어의 능력치에 따라 오퍼레이션의 처리 가능한 코어의 우선순위를 나타낸 테이블이다.
도 6은 본 발명의 바람직한 일 실시예에 따른 프레임 처리과정을 나타낸 흐름도이다.
도 7은 본 발명의 바람직한 일 실시예에 따른 오퍼레이션 처리 하드웨어를 할당하는 과정을 나타낸 흐름도이다.
이하, 첨부된 도면을 참조하여 본 발명의 일 양상을 상세하게 설명한다.
도 1은 본 발명의 바람직한 일 실시예에 따른 프레임을 구성하는 뷰 계층 트리(View Hierarchy Tree)의 개념을 나타낸 도면이다.
도 2는 본 발명의 바람직한 일 실시예에 따른 단말기에 표시되는 프레임을 구성하는 뷰 계층을 나타낸 도면이다.
어플리케이션(Application)의 사용자 인터페이스(User Interface)는 뷰(View)와 여러가지 뷰(View)들을 포함하는 뷰그룹(ViewGroup)들로 이루어지며, 이들은 트리(Tree) 형태로 나타낼 수 있다.
도 1 및 도 2의 각 뷰(View)를 그리기 위해 정해진 드로잉 하드웨어(CPU, GPU 혹은 2D 가속기 등)를 이용한다.
이러한 사용자 인터페이스(User Interface)를 처리하기 위해 다음과 같이 레이아웃(Layout)과 드로우(Draw)의 2가지 프로세스(Process)를 수행하며, 일반적으로 가장 많은 처리를 요구하는 부분은 드로우 프로세스(Draw Process)이다.
레이아웃 프로세스(Layout Process)는 뷰 계층 트리(View Hierarchy Tree)에 해당하는 각 뷰(View)의 크기를 결정짓는 Mesure Pass를 수행하고, Layout Pass에서 각 뷰(View)의 위치와 최종 크기를 결정짓는다.
드로우 프로세스(Draw Process)는 뷰 계층 트리(View Hierachy Tree)를 따라 각 뷰(View)의 해당되는 영역에 드로우(draw)를 수행한다.
도 2에서 보면, 200과 같이 단말기에서의 사용자 인터페이스가 표시되는 경우는 210에서 나타나는 뷰 계층으로 이루어진다. 210에 나타낸 바와 같이, 다수의 뷰로 구성되며 각각의 뷰를 드로우하여 전체 프레임을 표시하게 된다.
도 3은 본 발명의 바람직한 일 실시예에 따른 프레임 처리장치를 나타낸 블록도이다. 도 3을 참조하면, 프레임 처리장치는 저장부(300), 부하 산출부(310), 코어 선택부(320), 프레임 생성부(330)를 포함할 수 있다.
저장부(300)는 사용자 인터페이스(User Interface)에 표시될 프레임을 구성하는 오퍼레이션을 Operation Queue(301)에 순차적으로 저장한다.
부하 산출부(310)는 사용자 인터페이스(User Interface)에 표시될 프레임을 구성하는 오퍼레이션의 특성과 표시영역을 참조하여 오퍼레이션의 특성 별로 오퍼레이션을 처리하기 위한 시스템의 부하(Frame Drawing load, 311)를 산출한다.
코어 선택부(320)는 산출된 부하(311)와 멀티코어 시스템에 존재하는 코어에 대한 처리 능력 및 전력 사용량(312)을 고려하여 프레임을 표시하기 위해 소비되는 전력량을 최소로 소모하는 코어를 선택하고, 다수의 코어를 선택하게 된다면 코어 조합을 결정하는 형태가 된다.
프레임 생성부(330)는 최적의 코어 조합(321)을 사용하여 오퍼레이션을 선택된 코어에서 처리하여 사용자 인터페이스에 표시될 프레임을 생성한다.
도 4는 본 발명의 바람직한 일 실시예에 따른 프레임(Frame N)을 표시하기 위한 시스템 부하를 산출하는 과정을 나타낸 도면이다.
도 4에 표시된 바와 같이, 4 개의 오퍼레이션(1, 2, 3, 4)으로 구성된 프레임 N(Frame N)에 대하여 각각의 오퍼레이션 별로 시스템 부하(load)를 계산한다.
각각의 오퍼레이션은 오퍼레이션 특성(Op Type, 401) 및 표시영역(AREA, 402)에 따라 다음과 같은 특징을 갖는다.
오퍼레이션 1은 Op1의 오퍼레이션 특성(Op Type)과 20 픽셀(Pixels), 오퍼레이션 2는 Op2의 오퍼레이션 특성(Op Type)과 60 픽셀(Pixels), 오퍼레이션 3은 Op2의 오퍼레이션 특성(Op Type)과 60 픽셀(Pixels), 오퍼레이션 4는 Op3의 오퍼레이션 특성(Op Type)과 40 픽셀(Pixels)을 갖는다.
각각의 오퍼레이션에 대하여 오퍼레이션 특성과 표시영역으로부터 도 4에 나타낸 일 양상에 따른 수식을 통하여 오퍼레이션 별로 부하를 산출하게 된다. 이 경우, 오퍼레이션 별이라 함은 프레임을 구성하는 모든 오퍼레이션에 대하여 부하를 산출하는 것이 아니라, 오퍼레이션 특성 별로 부하를 산출하는 것이다.
도 4의 경우, 프레임을 구성하는 오퍼레이션은 4 개이지만, 오퍼레이션 2, 3은 Op2로 동일한 특성을 갖는 오퍼레이션이므로 부하는 Op1의 경우(410), Op2의 경우(420), Op3의 경우(430)과 같이 3 가지 값이 산출된다.
도 4에 기재된 일 양상의 경우 오퍼레이션 2, 3의 단순한 합으로써 Op2의 부하를 산출하였으나, 오퍼레이션의 개수에 대한 정보 등이 추가됨에 따라 부하를 산출하는 수식은 다양하게 구현될 수 있다.
도 5a는 본 발명의 바람직한 일 실시예에 따른 시스템 상에 존재하는 코어별 처리능력 및 전력 사용량을 매핑한 테이블이다.
도 5a는 멀티코어 시스템 상에 CPU0, CPU1, GPU의 3가지 코어가 존재하고 있는 경우 각각의 코어가 Op1, Op2, Op3의 3가지 오퍼레이션을 처리하는 때의 처리 능력(능력) 및 소모되는 전력량(전력)을 나타낸 것이다.
여기에서, 능력은 사용자 요구 업데이트 시간당(16ms) 수행할 수 있는 픽셀수를 나타낸 것이며, 전력은 특정 픽셀(100MPixles)에 대해 수행시 추가 소요되는 소모 전력량을 나타낸 것이다.
또한, 도 5a에 표시된 능력치는 각각의 코어의 능력/전력을 계산한 값으로, 이 경우 능력치가 높을수록 동일한 픽셀을 처리하는데 적은 전력을 소모한다는 의미가 되므로, 능력치가 높은 코어가 오퍼레이션 처리에 있어 우선적으로 선택될 수 있다.
도 5a의 능력, 전력 및 능력치는 상술된 정의에 의해 표시된 수치를 나타낸 것이며, 상술된 정의 및 표시된 수치는 시스템 운용정책에 의해 다양하게 변경되어 표시되거나 구현 가능할 것이다.
도 5b는 본 발명의 바람직한 일 실시예에 따른 시스템 상에 존재하는 코어의 능력치에 따라 오퍼레이션의 처리 가능한 코어의 우선순위를 나타낸 테이블이다.
도 5a의 능력치의 수치를 참조하면, 오퍼레이션 특성1(Op1)의 경우 GPU에서는 능력치가 “0”로 표시되어 있어 GPU에 의한 처리는 불가능한 것을 알 수 있다. 따라서, CPU0, 1에서 우선적으로 처리되어야 함을 도 5b는 나타나고 있으며 CPU0, CPU1의 경우에는 능력치가 동일하여 우선순위의 차이는 없을 것이다.
오퍼레이션 특성2(Op2)의 경우 CPU 및 GPU 모두 “0”이 아니므로, 시스템 상의 모든 코어에서 처리가능하나, GPU의 능력치가 ”2.0”으로 CPU의 능력치 “0.7”보다 높으므로 GPU, CPU의 순서로 처리함이 전력량 측면에서 유리할 것이다.
마찬가지로, 오퍼레이션 특성3(Op3)의 경우 CPU 및 GPU 모두 “0”이 아니므로, 시스템 상의 모든 코어에서 처리가능하나, GPU의 능력치가 ”1.0”으로 CPU의 능력치 “0.6”보다 높으므로 GPU, CPU의 순서로 처리함이 전력량 측면에서 유리할 것이다.
따라서, 도 5b는 이렇게 각각의 오퍼레이션 특성 별로 시스템 상에 존재하는 코어들의 처리가능한 우선 순위를 나타낸 것이다.
도 6은 본 발명의 바람직한 일 실시예에 따른 프레임 처리과정을 나타낸 흐름도이다.
사용자 인터페이스(User Interface)에 표시될 프레임을 구성하는 오퍼레이션을 입력받아 순차적으로 저장한다(600). 프레임을 구성하는 모든 오퍼레이션이 모두 저장되었는지 확인하여 모든 오퍼레이션이 저장될 때까지 600단계는 계속적으로 수행하게 된다(610).
오퍼레이션 저장이 모두 완료되면(610), 저장된 오퍼레이션의 특성과 표시영역을 참조하여 오퍼레이션의 특성 별로 오퍼레이션을 처리하기 위한 시스템의 부하(Framw Operation Load)를 산출한다(620).
좀 더 상세하게 살펴보면, 오퍼레이션의 특성과 표시되는 영역의 픽셀수로부터 오퍼레이션을 처리하는데 소비되는 시스템의 부하를 수치화하여 산출하고, 산출된 부하를 오퍼레이션의 특성 별로 구분하여 프레임을 구성하는 오퍼레이션들의 특성의 개수만큼 상기 시스템의 부하를 산출하게 된다.
산출된 부하(Frame Load)와, 멀티코어 시스템에 존재하는 코어에 대한 처리 능력 및 전력 사용량을 고려하여 프레임을 표시하기 위해 소비되는 전력량이 최소가 되는 코어를 선택한다(630). 이 경우 선택된 코어가 복수 개인 경우에는 선택된 코어 조합에 부하를 나누어 할당하여 처리된다.
오퍼레이션을 선택된 코어(또는 코어 조합)에서 처리하여 사용자 인터페이스에 표시될 프레임을 생성한다(640).
도 7은 본 발명의 바람직한 일 실시예에 따른 오퍼레이션 처리 하드웨어를 할당하는 과정을 나타낸 흐름도이다.
도 7은 도 6의 코어를 선택하는 단계(630)를 상세하게 나타낸 것이다.
프레임을 구성하는 오퍼레이션 중에서 멀티코어 시스템에 존재하는 코어 중 하나의 코어에서만 처리가능한 오퍼레이션이 존재하는 경우(700), 하나의 코어를 선택한다(710).
즉, 프레임을 구성하는 모든 오퍼레이션의 특성을 검색하여 멀티코어 시스템에 존재하는 코어 중에서 하나의 코어에서만 처리가능한 특성을 갖는 오퍼레이션이 존재하는 경우, 오퍼레이션을 처리하는 코어로서 하나의 코어를 선택한다.
선택된 코어가 저장된 순서에 따라 오퍼레이션을 처리할 경우 프레임을 구성하는 모든 오퍼레이션에 대한 부하를 수용할 수 있는지 판단한다(720).
좀 더 상세히 보면, 오퍼레이션의 특성 별로 산출된 부하를 저장된 순서에 따라 합산한 전체 부하를, 선택된 코어의 처리 능력과 비교하여 처리 능력이 더 작은 경우에 부하를 수용할 수 없는 것으로 판단한다.
선택된 코어가 모든 오퍼레이션에 대한 부하를 수용할 수 없는 것으로 판단된 경우, 멀티코어 시스템에 존재하는 코어에 대한 처리 능력 및 전력 사용량으로부터 오퍼레이션을 처리하기 위해 소비되는 전력량이 최소가 되는 코어를 추가로 선택한다(730).
좀 더 상세히 살펴보면, 멀티코어 시스템에 존재하는 코어 별로 처리가능한 오퍼레이션에 대한 사용자 요구시간 당 수행할 수 있는 픽셀(pixel)수와 일정 픽셀을 수행하는 경우에 소비되는 전력량으로부터 해당 코어의 능력치를 산출하고, 멀티코어 시스템에 존재하는 코어 중 능력치가 가장 크거나 작은 극값을 갖는 코어를 선택한다. 능력치는 어떠한 수식을 사용하는가에 따라 소비 전력량이 적은 방향으로 처리되도록 선정하면 된다.
선택된 코어들이 프레임을 구성하는 모든 오퍼레이션에 대한 부하를 수용할 수 있는지 판단하고, 수용할 수 있는 경우 선택된 코어들을 통하여 오퍼레이션을 처리하도록 할당한다(740).
만약, 선택된 코어들이 상기 프레임을 구성하는 모든 오퍼레이션에 대한 부하를 수용할 수 있는지 판단하여 수용할 수 없는 경우(730), 멀티코어 시스템에 존재하는 코어에 대한 처리 능력 및 전력 사용량으로부터 오퍼레이션을 처리하기 위해 소비되는 전력량이 최소가 되는 코어를 추가로 선택하게 되는 과정을 반복적으로 수행한다.
이러한 과정을 통하여 선택된 코어들을 프레임의 드로잉 코어로 사용하도록 할당한다(750).
한편, 본 발명의 실시 예들은 컴퓨터로 읽을 수 있는 기록 매체에 컴퓨터가 읽을 수 있는 코드로 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록 매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록 장치를 포함한다.
컴퓨터가 읽을 수 있는 기록 매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피디스크, 광 데이터 저장장치 등이 있으며, 또한 캐리어 웨이브(예를 들어 인터넷을 통한 전송)의 형태로 구현하는 것을 포함한다. 또한, 컴퓨터가 읽을 수 있는 기록 매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산 방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다. 그리고 본 발명을 구현하기 위한 기능적인(functional) 프로그램, 코드 및 코드 세그먼트들은 본 발명이 속하는 기술 분야의 프로그래머들에 의하여 용이하게 추론될 수 있다.
이상에서 본 발명의 실시를 위한 구체적인 예를 살펴보았다. 전술한 실시 예들은 본 발명을 예시적으로 설명하기 위한 것으로 본 발명의 권리범위가 특정 실시 예에 한정되지 아니할 것이다.
300 저장부
310 부하 산출부
320 코어 선택부
330 프레임 생성부

Claims (12)

  1. 멀티코어 시스템에서 프레임을 처리하는 장치에 있어서,
    사용자 인터페이스(User Interface)에 표시될 프레임을 구성하는 오퍼레이션의 특성과 표시영역을 참조하여 상기 오퍼레이션의 특성 별로 상기 오퍼레이션을 처리하기 위한 시스템의 부하(load)를 산출하는 부하 산출부; 및
    상기 산출된 부하와, 상기 멀티코어 시스템에 존재하는 코어에 대한 처리 능력 및 전력 사용량을 고려하여 상기 프레임을 표시하기 위해 소비되는 전력량이 적은 코어를 선택하는 코어 선택부;를 포함하는 멀티코어 환경에서 코어별 처리 능력 및 전력량을 고려한 프레임 처리장치.
  2. 제 1 항에 있어서,
    상기 프레임을 구성하는 오퍼레이션을 순차적으로 저장하는 저장부;를 더 포함하는 멀티코어 환경에서 코어별 처리 능력 및 전력량을 고려한 프레임 처리장치.
  3. 제 1 항에 있어서,
    상기 오퍼레이션을 상기 선택된 코어에서 처리하여 상기 사용자 인터페이스에 표시될 프레임을 생성하는 프레임 생성부;를 더 포함하는 멀티코어 환경에서 코어별 처리 능력 및 전력량을 고려한 프레임 처리장치.
  4. 제 1 항에 있어서, 상기 코어 선택부는
    상기 멀티코어 시스템에 존재하는 다수의 CPU(Central Processing Unit) 또는 GPU(Grapic Processing Unit) 중에 하나 이상의 유닛을 상기 오퍼레이션을 처리하는 코어로 선택하는 멀티코어 환경에서 코어별 처리 능력 및 전력량을 고려한 프레임 처리장치.
  5. 제 1 항에 있어서, 상기 코어 선택부는
    상기 멀티코어 시스템에 존재하는 코어 별로 처리가능한 오퍼레이션 및 상기 오퍼레이션에 대한 사용자 요구시간 당 수행할 수 있는 픽셀(pixel)수와 일정 픽셀을 수행하는 경우에 소비되는 전력량에 대한 정보를 보유하는 멀티코어 환경에서 코어별 처리 능력 및 전력량을 고려한 프레임 처리장치.
  6. 멀티코어 시스템에서 프레임을 처리하는 방법에 있어서,
    사용자 인터페이스(User Interface)에 표시될 프레임을 구성하는 오퍼레이션을 입력받아 순차적으로 저장하는 단계;
    상기 저장된 오퍼레이션의 특성과 표시영역을 참조하여 상기 오퍼레이션의 특성 별로 상기 오퍼레이션을 처리하기 위한 시스템의 부하(load)를 산출하는 단계;
    상기 산출된 부하와, 상기 멀티코어 시스템에 존재하는 코어에 대한 처리 능력 및 전력 사용량을 고려하여 상기 프레임을 표시하기 위해 소비되는 전력량이 적은 코어를 선택하는 단계; 및
    상기 오퍼레이션을 상기 선택된 코어에서 처리하여 상기 사용자 인터페이스에 표시될 프레임을 생성하는 단계;를 포함하는 멀티코어 환경에서 코어별 처리 능력 및 전력량을 고려한 프레임 처리방법.
  7. 제 6 항에 있어서, 상기 부하를 산출하는 단계는
    상기 오퍼레이션의 특성과 표시되는 영역의 픽셀수로부터 상기 오퍼레이션을 처리하는데 소비되는 시스템의 부하를 수치화하여 산출하고, 상기 산출된 부하를 상기 오퍼레이션의 특성 별로 구분하여 상기 프레임을 구성하는 오퍼레이션들의 특성의 개수만큼 상기 시스템의 부하를 산출하는 멀티코어 환경에서 코어별 처리 능력 및 전력량을 고려한 프레임 처리방법.
  8. 제 6 항에 있어서, 상기 코어를 선택하는 단계는
    상기 프레임을 구성하는 오퍼레이션 중에서 상기 멀티코어 시스템에 존재하는 코어 중 하나의 코어에서만 처리가능한 오퍼레이션이 존재하는 경우, 상기 하나의 코어를 선택하는 단계;
    상기 선택된 코어가 상기 저장된 순서에 따라 오퍼레이션을 처리할 경우 상기 프레임을 구성하는 모든 오퍼레이션에 대한 부하를 수용할 수 있는지 판단하는 단계;
    상기 선택된 코어가 상기 모든 오퍼레이션에 대한 부하를 수용할 수 없는 것으로 판단된 경우, 상기 멀티코어 시스템에 존재하는 코어에 대한 처리 능력 및 전력 사용량으로부터 상기 오퍼레이션을 처리하기 위해 소비되는 전력량이 최소가 되는 코어를 추가로 선택하는 단계;
    상기 선택된 코어들이 상기 프레임을 구성하는 모든 오퍼레이션에 대한 부하를 수용할 수 있는지 판단하고, 수용할 수 있는 경우 상기 선택된 코어들을 통하여 상기 오퍼레이션을 처리하도록 할당하는 단계;를 포함하는 멀티코어 환경에서 코어별 처리 능력 및 전력량을 고려한 프레임 처리방법.
  9. 제 8 항에 있어서, 상기 하나의 코어를 선택하는 단계는
    상기 프레임을 구성하는 모든 오퍼레이션의 특성을 검색하여 상기 멀티코어 시스템에 존재하는 코어 중에서 하나의 코어에서만 처리가능한 특성을 갖는 오퍼레이션이 존재하는 경우, 상기 오퍼레이션을 처리하는 코어로서 상기 하나의 코어를 선택하는 멀티코어 환경에서 코어별 처리 능력 및 전력량을 고려한 프레임 처리방법.
  10. 제 8 항에 있어서, 상기 부하를 수용할 수 있는지 판단하는 단계;
    상기 오퍼레이션의 특성 별로 산출된 부하를 상기 저장된 순서에 따라 합산한 전체 부하를, 상기 선택된 코어의 처리 능력과 비교하여 상기 처리 능력이 더 작은 경우에 상기 부하를 수용할 수 없는 것으로 판단하는 멀티코어 환경에서 코어별 처리 능력 및 전력량을 고려한 프레임 처리방법.
  11. 제 8 항에 있어서, 상기 코어를 추가로 선택하는 단계는
    상기 멀티코어 시스템에 존재하는 코어 별로 처리가능한 오퍼레이션에 대한 사용자 요구시간 당 수행할 수 있는 픽셀(pixel)수와 일정 픽셀을 수행하는 경우에 소비되는 전력량으로부터 해당 코어의 능력치를 산출하는 단계; 및
    상기 멀티코어 시스템에 존재하는 코어 중 상기 능력치가 극값을 갖는 코어를 선택하는 단계;를 포함하는 멀티코어 환경에서 코어별 처리 능력 및 전력량을 고려한 프레임 처리방법.
  12. 제 8 항에 있어서,
    상기 선택된 코어들이 상기 프레임을 구성하는 모든 오퍼레이션에 대한 부하를 수용할 수 있는지 판단하여 수용할 수 없는 경우,
    상기 멀티코어 시스템에 존재하는 코어에 대한 처리 능력 및 전력 사용량으로부터 상기 오퍼레이션을 처리하기 위해 소비되는 전력량이 최소가 되는 코어를 추가로 선택하는 단계;를 반복적으로 수행하는 멀티코어 환경에서 코어별 처리 능력 및 전력량을 고려한 프레임 처리방법.
KR1020100130880A 2010-12-20 2010-12-20 멀티코어 환경에서 코어별 처리 능력 및 전력량을 고려한 프레임 처리장치 및 방법 KR20120069364A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020100130880A KR20120069364A (ko) 2010-12-20 2010-12-20 멀티코어 환경에서 코어별 처리 능력 및 전력량을 고려한 프레임 처리장치 및 방법
US13/310,897 US20120154410A1 (en) 2010-12-20 2011-12-05 Apparatus and method for processing a frame in consideration of the processing capability and power consumption of each core in a multicore environment

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020100130880A KR20120069364A (ko) 2010-12-20 2010-12-20 멀티코어 환경에서 코어별 처리 능력 및 전력량을 고려한 프레임 처리장치 및 방법

Publications (1)

Publication Number Publication Date
KR20120069364A true KR20120069364A (ko) 2012-06-28

Family

ID=46233782

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020100130880A KR20120069364A (ko) 2010-12-20 2010-12-20 멀티코어 환경에서 코어별 처리 능력 및 전력량을 고려한 프레임 처리장치 및 방법

Country Status (2)

Country Link
US (1) US20120154410A1 (ko)
KR (1) KR20120069364A (ko)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8373710B1 (en) * 2011-12-30 2013-02-12 GIS Federal LLC Method and system for improving computational concurrency using a multi-threaded GPU calculation engine
US10489947B2 (en) 2016-03-09 2019-11-26 Htc Corporation Mobile device, application display method, and non-transitory computer readable storage medium
US10528118B2 (en) * 2017-04-21 2020-01-07 Intel Corporation Dynamically power on/off register files during execution
US20220100543A1 (en) * 2020-09-25 2022-03-31 Ati Technologies Ulc Feedback mechanism for improved bandwidth and performance in virtual environment usecases

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090027383A1 (en) * 2003-11-19 2009-01-29 Lucid Information Technology, Ltd. Computing system parallelizing the operation of multiple graphics processing pipelines (GPPLs) and supporting depth-less based image recomposition
US7466316B1 (en) * 2004-12-14 2008-12-16 Nvidia Corporation Apparatus, system, and method for distributing work to integrated heterogeneous processors
US7827491B2 (en) * 2006-05-12 2010-11-02 Tran Bao Q Systems and methods for video editing
US8284205B2 (en) * 2007-10-24 2012-10-09 Apple Inc. Methods and apparatuses for load balancing between multiple processing units
KR100969322B1 (ko) * 2008-01-10 2010-07-09 엘지전자 주식회사 멀티 그래픽 컨트롤러를 구비한 데이터 처리 장치 및 이를이용한 데이터 처리 방법
US8892916B2 (en) * 2008-08-06 2014-11-18 International Business Machines Corporation Dynamic core pool management
US20110063309A1 (en) * 2009-09-16 2011-03-17 Nvidia Corporation User interface for co-processing techniques on heterogeneous graphics processing units
US9524138B2 (en) * 2009-12-29 2016-12-20 Nvidia Corporation Load balancing in a system with multi-graphics processors and multi-display systems

Also Published As

Publication number Publication date
US20120154410A1 (en) 2012-06-21

Similar Documents

Publication Publication Date Title
JP6898496B2 (ja) 計算グラフの処理
US10664308B2 (en) Job distribution within a grid environment using mega-host groupings of execution hosts
US9501318B2 (en) Scheduling and execution of tasks based on resource availability
KR101812583B1 (ko) 태스크 할당 장치, 태스크 할당 방법 및 컴퓨터로 읽을 수 있는 저장 매체
US10162683B2 (en) Weighted stealing of resources
CN106959894B (zh) 资源分配方法和装置
CN110389816B (zh) 用于资源调度的方法、装置以及计算机可读介质
CN114020470B (zh) 资源分配方法、装置、可读介质及电子设备
US9304814B2 (en) Determine variable wait time in an asynchronous call-back system based on calculated average sub-queue wait time
US8869148B2 (en) Concurrency identification for processing of multistage workflows
CN113448743A (zh) 用于任务处理的方法、电子设备以及计算机程序产品
KR20100074920A (ko) 멀티코어 시스템에서의 로드 밸런싱 장치 및 방법
KR102464678B1 (ko) 매니코어 시스템에서 쓰레드를 스케줄링 하는 방법 및 그 장치
CN115698958A (zh) 基于功率-性能的系统管理
CN114896068A (zh) 资源分配方法、资源分配装置、电子设备及存储介质
KR20120069364A (ko) 멀티코어 환경에서 코어별 처리 능력 및 전력량을 고려한 프레임 처리장치 및 방법
JP2015106298A (ja) タスク割り付けプログラム及びタスク割り付け方法
JP2022539291A (ja) 計算資源の動的割り当て
Fard et al. Budget-constrained resource provisioning for scientific applications in clouds
US10558500B2 (en) Scheduling heterogenous processors
Singh et al. Scheduling algorithm with load balancing in cloud computing
Laili et al. The optimal allocation model of computing resources in cloud manufacturing system
CN111984392A (zh) 任务调度方法、装置、电子设备及存储介质
CN113791890A (zh) 容器分配方法及装置、电子设备、存储介质
US20140033215A1 (en) Scheduling method and scheduling system

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
NORF Unpaid initial registration fee