KR100830747B1 - 분산된 프로세싱 시스템을 위한 인텔리젼트 전력 관리 - Google Patents

분산된 프로세싱 시스템을 위한 인텔리젼트 전력 관리 Download PDF

Info

Publication number
KR100830747B1
KR100830747B1 KR1020000062989A KR20000062989A KR100830747B1 KR 100830747 B1 KR100830747 B1 KR 100830747B1 KR 1020000062989 A KR1020000062989 A KR 1020000062989A KR 20000062989 A KR20000062989 A KR 20000062989A KR 100830747 B1 KR100830747 B1 KR 100830747B1
Authority
KR
South Korea
Prior art keywords
task
power management
activity
tasks
scenarios
Prior art date
Application number
KR1020000062989A
Other languages
English (en)
Other versions
KR20010067341A (ko
Inventor
샤벨제라드
재쿼스베노이트도미니크
Original Assignee
텍사스 인스트루먼츠 인코포레이티드
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 텍사스 인스트루먼츠 인코포레이티드 filed Critical 텍사스 인스트루먼츠 인코포레이티드
Priority claimed from US09/696,052 external-priority patent/US7111177B1/en
Publication of KR20010067341A publication Critical patent/KR20010067341A/ko
Application granted granted Critical
Publication of KR100830747B1 publication Critical patent/KR100830747B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • 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
    • 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 Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Power Sources (AREA)

Abstract

MPU(12), DSP(14)와 같은 다수의 처리 모듈, 및 코프로세서/DMA 채널(16)을 포함하는 분산 처리 시스템(10)이 개시된다. 각종 처리 모듈 및 실행될 태스크에 대한 프로파일(36)과 함께 전력 관리 소프트웨어가, 패키지 열적 제약 내에서, 또는 최소 에너지를 이용하여 최대 동작을 제공하는 등의 소정의 전력 목표를 만족시키는 시나리오를 구성하는 데 사용된다. 태스크와 관련된 실제 액티비티를 동작 중에 모니터링하여 목표와의 호환성을 보장하도록 한다. 태스크의 할당은 동적으로 변경되어 환경 조건의 변화 및 태스크 리스트의 변화에 적응해 나간다.
프로세서, 분산 시스템, 전력 관리(Power management), 태스크(task), 액티비티(activity)

Description

분산된 프로세싱 시스템을 위한 인텔리젼트 전력 관리{INTELLIGENT POWER MANAGEMENT FOR DISTRIBUTED PROCESSING SYSTEMS}
도 1은 분산 처리 시스템의 블럭도.
도 2는 분산 처리 시스템의 소프트웨어 계층도.
도 3은 분산 처리 시스템의 전력 관리의 이점을 보여주는 예시도.
도 4a 및 4b는 도 2의 전력 관리 소프트웨어의 동작에 대한 양호한 실시예를 보여주는 흐름도.
도 5는 도 4의 빌딩 시스템 시나리오 블럭도.
도 6은 도 4의 동작 추정 블럭도.
도 7은 도 4의 전력 산출 블럭도.
도 8은 도 4의 동작 측정 및 모니터 블럭도.
도 9는 동작 카운터를 갖는 분산 처리 시스템을 보여주는 블럭도.
본 발명은 일반적으로 집적 회로에 관한 것으로, 특히 프로세서에서의 전력을 관리하는 것에 관한 것이다.
수년동안, 마이크로프로세서 유닛들(MPUs), 코-프로세서(co-processor)들, 및 디지털 신호 프로세서(DSPs)에 대한 설계를 포함하는 프로세서 설계 초점은 프로세서의 속도 및 기능을 증가시키는 데 있었다. 최근, 전력 소모가 심각한 관심 거리가 되어왔다. 중요하게는, 속도 및 기능적인 장점을 심각할 정도로 감하지 않으면서, 저 전력 소모를 유지하는 것이 중요하게 간주되었으며 설계의 중심이 되었다. 전력 소모는 많은 응용 분야에서 중요한 문제가 되었는데, 그 이유는 스마트 폰(smart phone), 셀룰러 폰, PDA(Personal Digital assistants), 및 포켓용 컴퓨터(handheld computer)와 같은 많은 시스템들은 비교적 작은 배터리로 동작되기 때문이다. 단기간에 배터리를 다시 충전해야하는 것은 불편한 일이기 때문에, 이들 시스템의 배터리 수명을 최대화하는 것이 희망된다.
최근, 전력 소모를 최소화하는 쪽으로의 접근 방식은 스태틱(static) 전력 관리, 즉 전력을 적게 사용하는 회로를 설계하는 것을 포함한다. 몇몇 경우, 아이들(idle) 기간 동안 클럭 속도를 줄인다든지, 또는 회로를 디스에이블시키는 등의 동적인 조치가 취해져 왔다.
이들 변화가 중요한 한편, 특히, 크기(이에 따른, 배터리 크기)가 해당 디바이스(device)를 편리하게 사용하는 데 중요한 시스템에서는 전력 관리를 지속적으로 개선시키는 것이 필요하다.
총 전력을 절감하는 것에 더하여, 복잡한 처리 환경에서는 집적 회로로부터 열을 방산할 수 있는 능력이 한 요인이 될 수 있다. 집적 회로는 특정 양의 열을 방산하도록 설계될 것이다. 태스크(task)들이 집적 회로상에서 여러 시스템들을 필요로 하여 높은 레벨의 전류를 필요로 하는 경우, 그 집적 회로는 과열(overheat)되어서 시스템에 고장을 불러올 수 있다.
장래에는, 집적 회로에 의해 실행되는 애플리케이션들은 보다 복잡해질 것이며, 하나의 집적 회로에 MPU, DSP, 코프로세서, 및 DMA 채널들을 포함하여 다중 프로세서들(이후로는 "분산된 처리 시스템"이라 함)에 의해 다중 처리를 할 가능성이 높을 것이다. DSP는 여러 개의 동시성 애플리케이션들을 지원하도록 전개될 것이며, 이들 애플리케이션들 중 몇몇은 특정 DSP 플랫폼(flatform)에 제공되지는 않으나, 인터넷과 같은 글로벌 네트워크로부터 로딩될 것이다. 따라서, 분산된 처리 시스템이 과열되지 않으면서 처리할 수 있는, 태스크는 불확실해질 것이다.
따라서, 그 성능에 심각하게 영향을 미치지 않은 채, 회로내의 전력을 관리하기 위한 방법 및 장치가 필요한 현안으로 떠오른다.
본 발명은 복수의 처리 모듈을 포함하는 프로세서에서의 태스크 실행을 제어하는 방법 및 장치를 제공한다. 태스크와 관련된 액티비티에 대한 확률값에 기초하여 소비 정보가 계산된다. 그 후, 소비 정보에 따라 처리 모듈에서 태스크가 실행된다.
본 발명은 종래 기술보다 많은 장점을 제공한다. 먼저, 완전한 동적 전력 관리를 제공한다. 처리 시스템에서 실행된 태스크가 변경되면 전력 관리 소프트웨어는 임계치를 초과하지 않도록 하기 위해 새로운 시나리오를 구축할 수 있다. 또한, 배터리 전압 강하와 같은 외부 조건이 변하면, 필요한 경우 전력 관리 소프트웨어가 그러한 조건을 재평가하고 시나리오를 변경시킬 수 있다. 두 번째로, 전력 관리 소프트웨어는, 그것이 제어하는 여러가지 태스크에 대해 투명하다. 따라서, 특정 태스크가 어떠한 전력 관리도 제공하지 않는 경우에도, 전력 관리 소프트웨어는 처리 시스템의 전력 능력과 일치하는 방식으로 태스크를 실행하는 책임을 지닌다. 세 번째로, 전력 관리 소프트웨어의 전체 동작은 상이한 하드웨어 플랫폼, 전력 계산시 사용되는 프로파일을 변화시킴으로써 조정되는 상이한 하드웨어 및 태스크에 사용될 수 있다.
본 발명은 첨부된 도면의 도 1 내지 9를 참조하여 가장 잘 이해되며, 이 도면들에서 유사 구성 요소에는 유사 참조 번호가 부여되어 있다.
도 1은 MPU(12), 하나 이상의 DSP(14) 및 하나 이상의 DMA 채널 또는 코프로세서(총괄하여 DMA/코프로세서(16)으로 표시됨)를 포함하는 일반적인 분산 처리 시스템(10)의 개괄적인 블록도이다. 본 실시예에서, MPU(12)는 코어(18) 및 캐시(20)를 포함한다. DSP(14)는 프로세싱 코어(22) 및 로컬 메모리(24)를 포함한다 (실제 실시예에서는, 분리형 명령/데이터 메모리 또는 일체형 명령/데이터 메모리를 이용할 수 있음). 메모리 인터페이스(26)는 공유 메모리(28)를 MPU(12), DSP(14), 또는 DMA/코프로세서(16) 중 하나 이상의 것에 결합시킨다. 각각의 프로세서(MPU(12), DSP(14))는 실제의 분산 처리 시스템 내에서 자신의 운영 시스템(OS) 또는 실시간 운영 시스템(RTOS) 하에서 전자동 상태로 동작할 수 있고, 혹은 MPU(12)는 공유된 자원 및 메모리 환경을 관리하는 글로벌 OS를 동작시킬 수 있다.
도 2는 분산 처리 시스템(10)을 위한 소프트웨어 계층도를 도시하고 있다. 도 1에 도시되어 있는 바와 같이, MPU(12)는 OS를 실행시키고, DSP(14)는 RTOS를 실행시킨다. OS 및 RTOS는 소프트웨어의 OS 계층(30)을 포함한다. 분산 애플리케이션 계층(32)은 JAVA, C++ 및 그 밖의 애플리케이션(34)과, 프로파일링 데이터(36) 및 전역(global) 태스크 스케쥴러(40)를 이용하는 전력 관리 태스크(38)를 포함한다. 미들웨어(middleware) 소프트웨어 계층(42)은 OS 계층(30)과 분산 애플리케이션 계층(32) 내의 애플리케이션 사이에서 통신한다.
도 1 및 2를 참조하여, 분산 처리 시스템(10)의 동작이 설명된다. 분산 처리 시스템(10)은 다양한 태스크를 실행할 수 있다. 분산 처리 시스템(10)에 대한 전형적인 애플리케이션으로는, 분산 처리 시스템(10)이 무선 통신, 비디오/오디오 압축 해제 및 사용자 인터페이스(즉, LCD 업데이트, 키보디 디코드)를 핸들링하는 스마트폰 애플리케이션이 있다. 이 애플리케이션에서, 분산 처리 시스템(10) 내에 포함된 상이한 시스템들은 상이한 우선 순위의 다양한 태스크를 실행할 것이다. 전형적으로, OS는 포함되어 있는 다양한 시스템들에 대하여 상이한 태스크의 태스크 스케쥴링을 수행한다.
본 발명은 에너지 소비를 스케쥴링 태스크 내의 표준으로서 통합한다. 본 실시예에서, 분산 애플리케이션 계층(32)으로부터의 전력 관리 애플리케이션(38) 및 프로파일(36)은, 확률 값에 기초하여 시스템 시나리오를 구성하는 데에 이용되어, 태스크 리스트를 실행한다. 시나리오가 미리 정해진 표준과 일치하지 않는 경우, 즉 예를 들어 전력 소비가 지나치게 큰 경우, 새로운 시나리오가 생성된다. 허용 가능한 시나리오가 구성된 후, OS 계층은 하드웨어 활동을 모니터링하여 시나리오 내에서 예측된 활동이 정확했는지를 검증한다.
허용 가능한 태스크 스케쥴링 시나리오에 대한 표준은 장치의 특질에 따라 달라질 수 있다. 이동 장치에서 중요한 표준 중 하나는 최소 에너지 소비이다. 상술한 바와 같이, 전자 통신 장치들이 초소형화되어 감에 따라, 에너지 소비 면에서 배터리의 소형화가 더 중요해지고 있다. 장치 동작 중의 많은 경우에 있어서, 특히 배터리가 저레벨로 되었을 때는, 전력을 감소시키기 위해 태스크의 동작 모드를 저하시키는 것이 가능하다. 예를 들어, LCD의 리프레시율을 감소시키면, 화상 품질은 저하되지만 전력 소비를 감소시킬 수 있다. 전력을 감소시키기 위해 분산 처리 시스템(10)의 MIP(millions of instructions per second)를 감소시키는 방법도 있지만, 성능이 저하된다는 문제점이 있다. 전력 관리 소프트웨어(38)는 저하된 성능의 다양한 조합을 이용한 다양한 시나리오들을 분석하여, 허용 가능한 장치 동작에 도달할 수 있다.
전력 관리의 다른 목적은 주어진 전력 제한 셋업에 대하여 최고의 MIP 또는 최저 에너지를 찾는 것일 수 있다.
도 3a 및 도 3b는, 전력 관리 애플리케이션(38)을 이용하여 분산 처리 시스템(10)이 평균 전력 소모 한계를 초과하는 것을 방지하는 일례를 도시하고 있다. 도 3a에서, DSP(14), DMA(16) 및 MPU(12)는 다수의 태스크를 동시에 실행시킨다. 시점 t1에서, 매립된 3개의 시스템의 평균 전력 소비는 분산 처리 시스템(10)에 부과된 평균 제한을 초과한다. 도 3b는 동일한 태스크가 실행되는 시나리오를 도시하지만, MPU 태스크는 DMA 및 DSP 태스크가 완료될 때까지 지연되어, 허용가능한 평균 전력 소비 프로파일을 유지하도록 한다.
도 4a는 전력 관리 태스크(38)의 제1 실시예의 동작을 기술하는 흐름도이다. 블럭(50)에서, 전력 관리 태스크는, MPU(12) 또는 DSP(14) 중 하나에 의해 실행될 수 있는 글로벌 스케쥴러(40)에 의해 호출되며, 스케쥴러는 해당되는 어플리케이션을 평가하여 연관된 우선도 및 배제 규칙에 따라 태스크로 분할한다. 태스크 리스트(52)는 예를 들어, 오디오/비디오 디코딩, 디스플레이 제어, 키보드 제어, 캐릭터 인식 등을 포함할 수 있다. 단계(54)에서, 태스크 리스트(52)는 태스크 모델 파일(56) 및 허용된 퇴화(degradation) 파일(58)에 대해 평가된다. 태스크 모델 파일(56)은 분산 애플리케이션 계층(32)의 프로파일(36)의 일부이다. 태스크 모델 파일(56)은, 태스크 리스트 중의 각 태스크에 상이한 모델을 할당하는 이미 생성되어 있는 파일이다. 각 모델은 데이타의 집합체로서, 경험적으로 또는 컴퓨터 보조 소프트웨어 설계 기술에 의해 도출될 수 있으며, 레이턴시 제한, 우선 순위, 데이타 흐름, 기준 프로세서 속도에서의 초기 에너지 추정치, 퇴화의 충격, 및 MIP 및 시간의 함수로서 주어진 프로세서의 실행 프로파일 등의 연관된 태스크의 특성을 규정한다. 퇴화 리스트(58)는 시나리오의 생성 시에 사용될 수 있는 각종 퇴화를 제시한다.
태스크 리스트가 수정(즉, 새로운 태스크가 생성되거나 태스크가 삭제됨)될 때마다 또는 실시간 이벤트가 발생될 때, 단계(54)에서 태스크 리스트(52) 및 태스크 모델 파일(56)에 기초하여, 시나리오가 구축된다. 이 시나리오는 모듈에 각종 태스크를 할당하고 태스크가 실행되는 우선 순위를 설정하는 우선 순위 정보를 제공한다. 기준 속도에서의 시나리오 에너지 추정치(59)는 태스크의 에너지 추정치로부터 계산될 수 있다. 태스크는 필요하거나 바람직하다면, 퇴화될 수 있는데, 즉, 태스크의 풀 버젼 대신에 보다 적은 자원을 사용하는 태스크의 모드로 대체될 수 있다. 이 시나리오로부터, 블럭(60)에서 액티비티 추정치가 생성된다. 액티비티 추정치는 (분산 애플리케이션 계층(32)의 프로파일링 데이타(36)로부터의) 태스크 액티비티 프로파일(62) 및 (분산 어플리케이션 계층(32)의 프로파일링 데이타(36)로부터의) 하드웨어 아키텍쳐 모델(64)을 사용하여 시나리오로부터 얻어질 하드웨어 액티비티에 대한 확률 값을 생성한다. 확률 값은 각 모듈의 대기/실행 시간 공유(실효 MHz), 캐시 및 메모리로의 액세스, I/O 토글링 레이트 및 DMA 플로우 요청 및 데이타량을 포함한다. 열적 시상수와 일치하는 주기 T를 사용하여, 기준 프로세서 속도에서의 에너지 추정치(59) 및 단계(60)에서 도출된 평균 액티비티(특히, 실효 프로세서 속도)로부터, 열적 패키지 모델에 비교될 수 있는 평균 전력 소비를 계산할 수 있다. 전력값이 패키지 열적 모델(72)에서 제시된 임의의 임계값을 초과하면, 시나리오는 판단 블럭(74)에서 거절된다. 이 경우, 불럭(54)에서 새로운 시나리오가 구축되고, 단계(60, 66 및 70)가 반복된다. 그렇지 않으면, 시나리오를 사용하여 태스크 리스트를 실행한다.
시나리오에 의해 한정된 태스크의 동작 동안, OS 및 RTOS는, 하드웨어에 포함된 카운터(78)를 사용하여 블럭(76)에서 그들의 각 모듈에 의해 액티비티를 트래킹한다. 분산 처리 시스템(10)의 모듈에서의 실제 액티비티는 블럭(60)에서 추정된 액티비티로부터 변화할 수 있다. 하드웨어 카운터로부터의 데이타를 주기 T에 기초하여 모니터링하여 측정된 액티비티 값을 생성한다. 블럭(66)에서 이들 측정된 액티비티 값들은 이 주기 동안 에너지 값과, 블럭(66)에서의 평균 전력 값을 상술된 바와 같이 계산하는 데에 이용되며, 블럭(72)의 패키지 열적 모델과 비교한다. 측정된 값들이 임계치를 초과하면, 블럭(54)에서 새로운 시나리오가 구축된다. 측정된 액티비티 값들을 연속적으로 모니터링함으로써, 시나리오는 규정된 제한 범위 내로 유지되거나 변화하는 환경 조건들에 따라 조정되도록 동적으로 수정될 수 있다.
주기 T 동안 칩의 총 에너지 소비는
Figure 112000022438687-pat00001
로써 계산되며, 여기서 f는 주파수, Vdd는 공급 전압, 그리고 α는 확률적(또는 측정된)(이 계산의 블록 76에 관련된 토의부 참조) 액티비티이다. 즉,
Figure 112005060458934-pat00002
은 등가의 소모 캐패시턴스 Cpd에 의해 특징지어지는 특정한 하드웨어 모듈에 대응하는 에너지이며, 카운터 값은
Figure 112005060458934-pat00003
을 주고, E는 T 내에서 소모된 분산 처리 시스템에서 모든 모듈을 위한 모든 에너지의 합이다. 평균 시스템 전력 소모 W=E/T 이다. 바람직한 실시예에서, 측정된 확률적인 에너지 소비가 계산되고 평균 전력 소모는 주기 T 동안의 에너지 소비로부터 도출된다. 대부분의 경우에, 에너지 소비 정보는 더욱 용이하게 이용가능할 것이다. 그러나, 측정된 확률적 전력 소비로부터 전력 소모를 계산하는 것 또한 가능할 것이다.
도 4b는 전력 관리 태스크(38)의 실시예 2의 동작을 서술하는 흐름도이다. 도 4b의 흐름은 도 4a의 것과 동일하지만, 하나의 새로운 시나리오를 선택하는 것 대신에 단계 50에서 시나리오 구성 알고리즘을 끌어낼 때(새로운 태스크, 태스크 삭제, 실시간 이벤트), 성능 제약 조건이 일치하는 n개의 상이한 시나리오들이, 단계 54와 55에서 미리 사전에 계산되고 저장되어서, 트래킹 루프에서 산출된 전력이 블록 74에서 현재의 시나리오 거절로 된다면, 동적 루프(loop) 내의 동작 수를 감소하고 더욱 빠르게 적응될 수 있다는 점이 다르다.
도 5-8은 도 3의 다양한 블록의 동작을 더욱 상세히 도시한다. 구축 시스템 블록(54)이 도 5에 도시된다. 이 블록에서, 태스크 리스트(52), 태스크 모델(56), 및 가능한 태스크 성능 저하의 리스트(58)가 시나리오를 생성하는 데에 이용된다. 태스크 리스트는 어느 태스크가 분산 처리 시스템(10)에서 실행되는가에 따라 달라진다. 도 5의 예시에서, 세 가지 태스크; MPEG4 디코드, 무선 모뎀 데이타 수신 및 키보드 이벤트 모니터가 도시된다. 실제 수행에서, 태스크들은 임의의 수의 소스로부터 생겨날 수 있다. 태스크 모델은 시나리오를 정의하는데 있어서 고려해야 할 레이턴시와 우선 제약 사항, 데이타 흐름, 초기 에너지 예측, 및 성능저하의 영향과 같은 조건들을 제시한다. 그 밖의 조건들도 또한 이 블럭에서 이용될 수 있다. 구축 시스템 시나리오 블록의 출력은 시나리오 80이며, 이것은 다양한 태스크들을 모듈과 연결지으며, 각각의 태스크에 우선도를 부여한다. 도 5에 도시된 예시에서, 예를 들어 MPEG4 디코드 태스크는 우선도 16을 가지며 무선 모뎀 태스크는 우선도 4를 갖는다.
블록 54에서 구축된 시나리오들은 다양한 고찰에 기초할 수 있다. 예를 들어, 시나리오들은 패키지 열적 제약 사항에 최대 성능을 제공하는데에 기초하여 구축될 수 있다. 대안으로, 시나리오들은 최저 가능 에너지를 이용하는데 기초할 수 있다. 최적 시나리오는 디바이스의 동작 중에 변화가능하다; 예를 들어 완전 충전된 배터리를 가지고 디바이스는 최대 수행 레벨에서 동작할 수 있다. 배터리에서 전력이 프리세트 레벨 이하로 감소되면, 디바이스는 동작을 유지하기 위하여 최저 가능 전력 레벨에서 동작할 것이다.
블록(54)로부터의 시나리오는 도 6에 도시된 액티비티 추정 블록(60)에 의해 이용된다. 이 블록은 분산 처리 시스템(10)에서 전력 사용에 영향을 미치는 다양한 파라미터들에 대한 확률 산출을 수행한다. 확률적 액티비티 추정은 태스크 액티비티 프로파일(62) 및 하드웨어 아키텍쳐 모델(64)과 공동으로 생성된다. 태스크 액티비티 프로파일은 데이타 액세스형(로드/저장) 및 서로 다른 메모리에 대한 발생에 대한 정보, 태스크에 사용되는 브랜치 및 루프와 같은 코드 프로파일, 및 태스크에서의 명령에 대한 명령 당 사이클을 포함한다. 하드웨어 아키텍처 모델(64)은, (프로세서 동작/대기 시간 공유 등의) 추정된 하드웨어 액티비티의 계산을 허용할 시스템 레이턴시에 대한 태스크 액티비티 프로파일(62)의 영향을 몇몇 방식으로 설명한다. 이 모델은 태스크가 구현될 하드웨어의 특성, 예를 들면, 캐쉬의 크기, 각종 버스의 폭, I/O 핀의 수, 캐쉬가 라이트 쓰루(write through)인지 라이트 백(write back)인지의 여부, 사용되는 메모리의 종류(다이나믹, 스테틱, 플래쉬 등), 및 모듈에서 사용되는 클럭 속도를 고려한다. 전형적으로, 모델은 데이터 캐쉬가능/캐쉬 불가능, 판독/기록 액세스 공유, 명령당 사이클 수 등의 서로 다른 파라미터를 가진 MPU 및 DSP 유효 주파수 변화를 표시하는 커브 집합체로 구성될 수 있다. 도 6에 예시된 실시예에서는, 각 모듈의 유효 주파수, 메모리 액세스의 수, I/O 토글링 레이트 및 DMA 플로우에 대한 값이 계산된다. 전력에 영향을 주는 그 밖의 요인 또한 계산될 수 있다.
전력 계산 블록(66)이 도 8에 도시된다. 이 블록에서는, 블록(60)으로부터의 확률적 액티비티 또는 블록(76)으로부터의 측정된 액티비티를 사용하여 각종 에너지값과, 이에 따른 주기 T 동안의 전력값을 계산한다. 전력값은 분산 처리 시스템(10)의 하드웨어 설계에 고유한 하드웨어 전력 프로파일과 관련하여 계산된다. 하드웨어 프로파일은 각 모듈에 대하여 Cpd, 논리 디자인 스타일 (D형 플립플롭, 래치, 게이트 클럭 등), 공급 전압 및 출력상의 용량 부하를 포함할 수 있다. 전력 계산은 집적 모듈, 그리고 외부 메모리나 그 밖의 외부 장치에 대해서 이루어질 수 있다.
액티비티 측정 및 모니터 블록(76)이 도 8에 도시되어 있다. 분산 처리 시스템(10)을 통해 카운터를 구현하여 캐쉬 미스(cache misses), TLB(translation lookaside buffer) 미스, 캐쉬 불가능 메모리 액세스, 대기 시간, 서로 다른 자원에 대한 판독/기록 요구, 메모리 오버헤드 및 온도 등의 각종 모듈에 대한 액티비티를 측정한다. 액티비티 측정 및 모니터 블록(76)은 각 모듈의 유효 주파수의 값, 메모리 액세스의 수, I/O 토글링 레이트 및 DMA 플로우를 출력한다. 특정 구현에서는, 다른 값도 측정될 수 있다. 이 블록의 출력은 전력 계산 블록(66)으로 보내진다.
도 9는 전력/에너지 관리 소프트웨어를 사용하는 분산 처리 시스템(10)의 예를 도시한다. 이 예에서는, 분산 처리 시스템(10)은 MPU(12), 실행 OS, 및 2개의 DSP(14)(각각 DSP1(14a) 및 DSP2(14b)로 부름)를 포함하며, 이들 각각은 RTOS를 실행한다. 각 모듈은 분산 처리 시스템(10)의 전체를 통해, 각종 액티비티 카운터(78)의 값을 모니터링하는 모니터 태스크(82)를 실행한다. 전력 계산 태스크는 DSP(14a) 상에서 실행된다. 각종 모니터 태스크는 관련 액티비티 카운터(78)로부터 데이터를 검색하고 정보를 DSP(14a)에 전달하여 측정된 액티비티에 기초하여 전력 값을 계산한다. 전력 계산 태스크(84) 및 모니터 태스크(82) 등의 전력 관리 태스크를 다른 애플리케이션 태스크와 함께 실행시킬 수 있다.
양호한 실시예에서는, 전력 관리 태스크(38) 및 프로파일(36)이 JAVA 리얼 타임 환경에서 JAVA 클래스 패키지로서 구현된다.
본 발명은 종래 기술에 비해 현저한 장점을 제공한다. 먼저, 완전한 동적 전력 관리를 제공한다. 분산 처리 시스템(10)에서 실행되는 태스크가 변화함에 따라, 전력 관리는 새로운 시나리오를 구축하여 임계값을 초과하지 않도록 보장한다. 또한, 배터리 전압 강하 등의 환경 조건이 변화하면, 전력 관리 소프트웨어는 조건을 재검토하고 필요하다면 시나리오를 변경시킬 수 있다. 예를 들면, 배터리 전압(전원 전압)이 공칭값에서 Vdd가 유지될 수 없는 점으로 강하되면, 분산 처리 시스템(10)을 더 낮은 Vdd에서 동작할 수 있도록 허용하는 저주파수가 설정될 수 있다. 저주파수를 고려하게 되는 새로운 시나리오를 구축할 수 있다. 어떤 경우에는, 저주파수를 보상하기 위해 더 많은 성능 저하가 유도될 수 있다. 그러나, 정상적으로는 불충분한 전원 전압에도 불구하고 연속적인 소자 동작을 위해 더 낮은 주파수를 제공할 수 있다. 또한, 더 낮은 주파수가 허용될 수 있는 상황에서 소자는 더 낮은 Vdd(스위치 모드 전원의 사용이 가능함)에서 동작하여 비교적 낮은 액티비티의 기간 동안에 전력을 보존할 수 있다.
전력 관리 소프트웨어는 제어하는 각종 태스크에 대해 투명하다. 따라서, 특정 태스크가 어떠한 전력 관리도 제공하지 않는 경우에도 전력 관리 소프트웨어는 분산 처리 시스템(10)의 전력 성능에 적합한 방식으로 태스크를 실행한다. 전력 관리 소프트웨어의 전반적인 동작은, 서로 다른 하드웨어 플랫폼, 프로파일(36)을 변경함으로써 적응되는 서로 다른 하드웨어 및 태스크에서 사용될 수 있다.
본 발명의 상세한 설명은 특정 실시예와 관련되어 이루어졌지만, 당업자에게는 대체 실시예는 물론 각종 변형 실시예가 가능할 것이다. 따라서, 본 발명은 청구범위의 범위에 포함된 모든 변형 및 대체 실시예를 포함한다.

Claims (22)

  1. 복수의 프로세싱 모듈을 구비하는 프로세서에서 태스크의 실행을 제어하기 위한 방법에 있어서,
    동시에 실행되도록 계획된 복수의 태스크를 실행하기 위한 복수의 시나리오를 생성하는 단계;
    상기 복수의 시나리오에 대한 소비 정보 - 상기 복수의 시나리오 각각에 대한 상기 소비 정보는 상기 태스크들과 연관된 액티비티(activities)에 대한 확률값에 기초함 - 를 계산하는 단계;
    상기 소비 정보에 응답하여 상기 복수의 시나리오 중 선택된 시나리오에 따라 상기 복수의 프로세싱 모듈상에서 상기 태스크를 실행하는 단계
    를 포함하는 것을 특징으로 하는 태스크 실행 제어 방법.
  2. 제1항에 있어서,
    프로세싱 모듈에서의 실제 액티비티 발생을 모니터링하는 단계; 및
    상기 모니터링 단계에 기초하여 상기 태스크의 실행을 수정하는 단계를 더 포함하는 것을 특징으로 하는 태스크 실행 제어 방법.
  3. 제1항 또는 제2항에 있어서,
    상기 실행 단계는
    상기 프로세서와 연관된 열적 제한(thermal constraints) 범위 내에서 최대 성능을 제공하는 상기 시나리오에 따라 상기 복수의 프로세싱 모듈 상에서 상기 태스크를 실행하는 단계
    를 포함하는 것을 특징으로 하는 태스크 실행 제어 방법.
  4. 제1항 또는 제2항에 있어서,
    상기 실행 단계는
    가능한 최소 에너지 소비를 제공하는 상기 시나리오에 따라 상기 복수의 프로세싱 모듈 상에서 상기 태스크를 실행하는 단계
    를 포함하는 것을 특징으로 하는 태스크 실행 제어 방법.
  5. 제1항 또는 제2항에 있어서,
    상기 계산 단계는,
    태스크 할당 시나리오에 대한 상기 액티비티를 예측하는 단계; 및
    상기 액티비티와 연관된 소비를 연산하는 단계를 포함하는 것을 특징으로 하는 태스크 실행 제어 방법.
  6. 제5항에 있어서,
    상기 복수의 시나리오를 생성하는 단계는 실행될 태스크를 설명하는 태스크 리스트 및 상기 태스크를 설명하는 태스크 모델을 수신하는 단계를 포함하는 것을 특징으로 하는 태스크 실행 제어 방법.
  7. 제6항에 있어서,
    상기 태스크 모델은 각각의 태스크에 대해 초기 예측을 포함하는 것을 특징 으로 하는 태스크 실행 제어 방법.
  8. 제7항에 있어서,
    상기 태스크 모델은 상기 태스크와 연관된 우선적인 제한(priority constraints)을 더 포함하는 것을 특징으로 하는 태스크 실행 제어 방법.
  9. 제8항에 있어서,
    상기 태스크 모델은 상기 태스크 리스트내의 하나 이상의 태스크와 연관된 가능한 퇴화(possible degradation)에 관한 정보를 포함하는 것을 특징으로 하는 태스크 실행 제어 방법.
  10. 제5항에 있어서,
    상기 연산 단계는 상기 액티비티와 연관된 에너지 소비를 연산하는 단계를 포함하는 것을 특징으로 하는 태스크 실행 제어 방법.
  11. 제5항에 있어서,
    상기 연산 단계는 상기 액티비티와 연관된 전력 소비를 연산하는 단계를 포함하는 것을 특징으로 하는 태스크 실행 제어 방법.
  12. 프로세싱 디바이스에 있어서,
    복수의 태스크를 실행하기 위한 하나 이상의 프로세싱 모듈을 포함하고,
    상기 프로세싱 모듈은 전력 관리 기능을 실행하여,
    동시에 실행되도록 계획된 복수의 태스크를 실행하기 위한 복수의 시나리오를 생성하고,
    상기 복수의 시나리오에 대한 소비 정보 - 상기 시나리오들 각각에 대한 소비 정보는 상기 태스크들과 연관된 액티비티들에 대한 확률값들에 기초함 - 를 계산하고,
    상기 소비 정보에 응답하여 상기 복수의 시나리오 중 선택된 시나리오에 따라 상기 프로세싱 모듈 상에서 상기 태스크의 실행을 제어하는 것을 특징으로 하는 프로세싱 디바이스.
  13. 제12항에 있어서,
    액티비티의 발생을 측정하기 위한 카운터를 더 포함하고,
    상기 전력 관리 기능은,
    상기 카운터를 모니터하고;
    상기 카운터내의 값에 기초하여 상기 태스크의 실행을 수정하는 것을 더 포함하는 것을 특징으로 하는 프로세싱 디바이스.
  14. 제12항 또는 제13항에 있어서,
    상기 전력 관리 기능은 상기 프로세싱 디바이스와 연관된 열적 제한 범위내에서 최대 성능을 제공하는 상기 시나리오에 따라 상기 프로세싱 모듈 상에서 태스크의 실행을 제어하는 것을 특징으로 하는 프로세싱 디바이스.
  15. 제12항 또는 제13항에 있어서,
    상기 전력 관리 기능은 가능한 최저 에너지 소모를 제공하는 상기 시나리오에 따라 상기 프로세싱 모듈 상에서 태스크의 실행을 제어하는 것을 특징으로 하는 프로세싱 디바이스.
  16. 제12항 또는 제13항에 있어서,
    상기 전력 관리 기능은,
    상기 시나리오들 각각에 대한 상기 액티비티를 예측하고;
    상기 액티비티와 연관된 소비를 연산함으로써 소비 정보를 계산하는 것을 특징으로 하는 프로세싱 디바이스.
  17. 제12항에 있어서,
    상기 전력 관리 기능은 실행될 태스크를 설명하는 태스크 리스트 및 상기 태스크를 설명하는 태스크 모델을 수신함으로써 태스크 할당 시나리오를 생성하는 것을 특징으로 하는 프로세싱 디바이스.
  18. 제17항에 있어서,
    상기 태스크 모델은 각각의 태스크에 대해 초기 예측을 포함하는 것을 특징으로 하는 프로세싱 디바이스.
  19. 제18항에 있어서,
    상기 태스크 모델은 상기 태스크에 연관된 우선적인 제한을 더 포함하는 것을 특징으로 하는 프로세싱 디바이스.
  20. 제19항에 있어서,
    상기 태스크 모델은 상기 태스크 리스트내의 하나 이상의 태스크와 연관된 가능한 퇴화에 대한 정보를 포함하는 것을 특징으로 하는 프로세싱 디바이스.
  21. 제16항에 있어서,
    상기 전력 관리 기능은 상기 액티비티와 연관된 에너지 소비를 연산함으로써 에너지 소비를 산출하는 것을 특징으로 하는 프로세싱 디바이스.
  22. 제16항에 있어서,
    상기 전력 관리 기능은 상기 액티비티와 연관된 전력 소비를 연산함으로써 소비를 산출하는 것을 특징으로 하는 프로세싱 디바이스.
KR1020000062989A 2000-10-25 2000-10-25 분산된 프로세싱 시스템을 위한 인텔리젼트 전력 관리 KR100830747B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09696052 2000-10-25
US09/696,052 US7111177B1 (en) 1999-10-25 2000-10-25 System and method for executing tasks according to a selected scenario in response to probabilistic power consumption information of each scenario

Publications (2)

Publication Number Publication Date
KR20010067341A KR20010067341A (ko) 2001-07-12
KR100830747B1 true KR100830747B1 (ko) 2008-05-20

Family

ID=37529428

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020000062989A KR100830747B1 (ko) 2000-10-25 2000-10-25 분산된 프로세싱 시스템을 위한 인텔리젼트 전력 관리

Country Status (1)

Country Link
KR (1) KR100830747B1 (ko)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100401514B1 (ko) * 2001-06-29 2003-10-17 주식회사 하이닉스반도체 데이터 처리 시스템
US7996839B2 (en) * 2003-07-16 2011-08-09 Hewlett-Packard Development Company, L.P. Heterogeneous processor core systems for improved throughput
JP2005352694A (ja) * 2004-06-09 2005-12-22 Canon Inc 印刷装置およびその方法、並びに、情報処理装置およびその制御方法
JP3805344B2 (ja) * 2004-06-22 2006-08-02 株式会社ソニー・コンピュータエンタテインメント プロセッサ、情報処理装置およびプロセッサの制御方法
KR101254009B1 (ko) * 2006-02-03 2013-04-12 삼성전자주식회사 워크로드 추정치를 사용하는 cpu의 동적 전압 스케일링방법 및 그 방법을 실행시키기 위한 프로그램을 기록한기록매체
US8948822B2 (en) * 2008-04-23 2015-02-03 Qualcomm Incorporated Coordinating power management functions in a multi-media device
US8964828B2 (en) 2008-08-19 2015-02-24 Qualcomm Incorporated Power and computational load management techniques in video processing
US8948270B2 (en) 2008-08-19 2015-02-03 Qualcomm Incorporated Power and computational load management techniques in video processing
KR101532041B1 (ko) 2008-11-05 2015-06-29 삼성전자주식회사 모바일 단말기와 이를 이용한 오디오 재생 방법

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11167629A (ja) * 1997-09-03 1999-06-22 Matsushita Electric Ind Co Ltd プロセッサ

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11167629A (ja) * 1997-09-03 1999-06-22 Matsushita Electric Ind Co Ltd プロセッサ

Also Published As

Publication number Publication date
KR20010067341A (ko) 2001-07-12

Similar Documents

Publication Publication Date Title
US7111177B1 (en) System and method for executing tasks according to a selected scenario in response to probabilistic power consumption information of each scenario
US7062304B2 (en) Task based adaptative profiling and debugging
US7174194B2 (en) Temperature field controlled scheduling for processing systems
US6901521B2 (en) Dynamic hardware control for energy management systems using task attributes
EP1182538B1 (en) Temperature field controlled scheduling for processing systems
US6889330B2 (en) Dynamic hardware configuration for energy management systems using task attributes
CN106170742B (zh) 多处理器片上系统中的能效感知热管理的方法和系统
Mittal A survey of techniques for improving energy efficiency in embedded computing systems
Sheikh et al. An overview and classification of thermal-aware scheduling techniques for multi-core processing systems
Jejurikar et al. Procrastination scheduling in fixed priority real-time systems
US20140344599A1 (en) Method and System for Power Management
US20170024316A1 (en) Systems and methods for scheduling tasks in a heterogeneous processor cluster architecture using cache demand monitoring
US20160378168A1 (en) Dynamic power management optimization
US9377841B2 (en) Adaptively limiting a maximum operating frequency in a multicore processor
Kim et al. A survey on recent OS-level energy management techniques for mobile processing units
Raghunathan et al. Adaptive power-fidelity in energy-aware wireless embedded systems
KR100830747B1 (ko) 분산된 프로세싱 시스템을 위한 인텔리젼트 전력 관리
CN112230757B (zh) 用于通过腾空cpu和存储器的子集来降低功率的方法和系统
Niu et al. Leakage-aware scheduling for embedded real-time systems with (m, k)-constraints
Jejurikar et al. Integrating preemption threshold scheduling and dynamic voltage scaling for energy efficient real-time systems
Yang et al. Energy efficient intra-task dynamic voltage scaling for realistic CPUs of mobile devices
Siddesha et al. A review on techniques for power management in embedded systems
Pelogeiko et al. On stochastic optimization for smartphone CPU energy consumption decrease
Kahn et al. Reducing leakage power with BTB access prediction
Marcu Energy-Efficiency Study of Power-Aware Software Applications

Legal Events

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

Payment date: 20130429

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20140430

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20160330

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20170330

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20180329

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20190327

Year of fee payment: 12