KR20020085883A - 전력 관리 방법, 전력 관리 시스템 및 램프 회로 방법 - Google Patents

전력 관리 방법, 전력 관리 시스템 및 램프 회로 방법 Download PDF

Info

Publication number
KR20020085883A
KR20020085883A KR1020027005141A KR20027005141A KR20020085883A KR 20020085883 A KR20020085883 A KR 20020085883A KR 1020027005141 A KR1020027005141 A KR 1020027005141A KR 20027005141 A KR20027005141 A KR 20027005141A KR 20020085883 A KR20020085883 A KR 20020085883A
Authority
KR
South Korea
Prior art keywords
java
voltage
frequency
value
processor
Prior art date
Application number
KR1020027005141A
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 코닌클리즈케 필립스 일렉트로닉스 엔.브이.
Publication of KR20020085883A publication Critical patent/KR20020085883A/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3877Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor
    • G06F9/3879Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor for non-native instruction execution, e.g. executing a command; for Java instruction set
    • 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
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

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

Abstract

본 발명은 하드웨어 기반 자바 가속기에 전력 관리를 제공하는 개시된 전력 관리 방법에 관한 것이다. 초기에, 자바 모드 신호는 자바 애플리케이션의 개시에 응답하여 호스트 프로세서로부터 제공된다. 그 후에, 자바 모드 신호에 응답하여 호스트 프로세서에 대한 전력은 줄어들고, 자바 프로세서에 대한 전력은 증가한다. 그런 다음, 자바 애플리케이션의 실행이 정지했을 때, 자바 완료 신호가 자바 프로세서로부터 생성되어, 호스트 프로세서로 제어를 반환하도록 시스템에 신호를 보낸다.

Description

전력 관리 방법, 전력 관리 시스템 및 램프 회로 방법{SYSTEM AND METHOD FOR POWER MANAGEMENT IN A JAVA ACCELERATOR ENVIRONMENT}
관련 출원에 대한 상호 참조
본 출원은 2000년 5월 4일에 출원되고 그 전체 내용이 참조로 인용되는 "ARCHITECTURE FOR AN INTEGRATED SUBSYSTEM HAVING A JAVA STACK, ARITHMETIC LOGIC UNIT AND MULTIPLE STACKPOINTERS AND METHOD FOR USING THE SAME"라는 제목의 미국 특허 출원 제 09/565,679 호(대리인 사건 번호 제 VTI1P333 호)에 관한 것이다.
또한, 본 출원은 그 전체 내용이 참조로 인용되는 "SYSTEM AND METHOD FOR LOW OVERHEAD BOUNDARY CHECKING OF JAVA ARRAYS"라는 제목의 미국 특허 출원 제 09/670,496 호(대리인 사건 번호 제 PHILP337 호)에 관한 것이다.
오늘날의 컴퓨터 프로그램밍 세계는 많은 고급 프로그래밍 언어를 제공한다. 예컨대, 자바는 비교적 짧은 시간 내에 폭넓게 사용되었고, 인터넷 상에서 널리 사용되게 하는 데에도 큰 공헌을 하였다. 자바의 대중성은 적어도 부분적으로는 그 플랫폼 독립성(platform independence), 객체 지향(object orientation) 및 동적 특성(dynamic nature)에 기인한다. 그 외에도, 자바는 메모리 관리 및 크로스 플랫폼 포팅(cross-platform porting)과 같이, 애플리케이션 프로그래머에 의해 수행되어야 하는 지루하고 에러가 나기 쉬운 많은 작업을 제거한다. 이러한 방식으로, 자바 프로그래머는 설계 및 기능 문제에 더 잘 집중할 수 있다.
자바 애플리케이션을 실행하기 위해, 전형적으로 자바 가상 머신(a Java Virtual Machine : JVM)의 형태인 소프트웨어에 의해서만 실현되는 자바 프로세서(a Java processor)가 사용된다. 그러나, 소프트웨어로 프로세스를 실행하는 것과 연관된 문제 때문에, JVM은 느린 성능 문제가 큰 골칫거리이다.
통상적으로, 두 가지 기술이 자바 해석(Java interpretation)의 성능을 개선하는 데 사용되어왔는데, 즉 네이티브 자바 실행(native Java execution) 및 자바 인스트럭션의 부분적 하드웨어 해석(partial hardware interpretation)이 그것이다. 네이티브 자바 실행 방법(native Java execution approach)은 실제 자바 프로세서(real Java processor)를 구축하기 위해 하드웨어를 사용한다. 그러나, 이 기술은 '외부 머신(outside machine)'으로부터 자바 컨셉(Java concept)을 제거하고, 따라서 그러한 자바 프로세서 상에서 실행할 수 없는 소프트웨어의 상당 부분을 제거한다는 점에서 심각한 결함을 보완한다.
자바인 인스트럭션의 부분적 하드웨어 해석 방법은 해석 프로세스를 개선하는 하드웨어 지원부(hardware assist)를 사용하는 것이다. 이 구성은 종종 자바 가속기(Java accelerator)라 지칭된다. 본래, 자바 가속기는 제로 대기 상태 메모리(zero wait state memory)로부터 실행되는 어셈블리 언어 해석기(an assembly language interpreter)의 성능과 비슷하다.
자바 가속기의 하나의 방법은 마스터(호스트) 프로세서가 자바 인스트럭션 이외의 모든 인스트럭션을 실행하고, 슬레이브 프로세서가 자바 인스트럭션만 배타적으로 실행하는 마스터/슬레이브 구성(a master/slave configuration)을 사용하는 것이다. 그러나, 이러한 방법을 사용하는 통상의 시스템은 호스트와 슬레이브 프로세서 사이의 전력 관리(power management)에 관한 문제를 내포하여 왔다. 이러한 문제는 전력 보존이 중요한 소형의 배터리형 이동 장치 상에서 이들 양 프로세서가 실행될 때 문제가 된다.
역사적으로, 컴퓨터 장치의 전력 관리와 관련된 문제는 언제 시스템 또는 시스템 내의 여러 구성부가 의미 있는 작업을 수행할 지를 검출하려는 시도로부터 기인하였다. 종종 통상의 전력 관리 시스템은 장치에 대한 전력 공급이 언제 차단될 수 있는 가를 검출하는 유휴 타이머(idle timer)와 함께 입력 및 출력(I/O) 신호를 모니터링한다.
다른 통상의 전력 관리 시스템에서는 프로세서 인터페이스의 주파수가 변경되어, 컴퓨터 시스템의 전력 소비를 낮춘다. 다른 통상의 전력 관리 시스템은 마이크로프로세서의 전력 소비 및 그에 따른 컴퓨터 시스템의 전력 소비를 낮추기 위해 클럭 제한(clock throttling)이라 불리는 방법도 사용한다. 이러한 방법 하에서는 마이크로프로세서가 의미 있는 작업을 하고 있지 않다고 생각될 경우, 내부적으로 클럭을 사용하여 마이크로프로세서가 정지하도록 효율적으로 지시하는 마이크로프로세서로의 입력이 변경된다. 마이크로프로세서로의 입력을 변경함으로써, 마이크로프로세서는 상당한 양의 에너지로 가열되지 않게 하여 컴퓨터 시스템의 전력 소비를 줄이도록 천천히 제한된다. 최근의 종래 기술의 전력 관리 결정 프로세스들은 그 프로세스들을 운영 체제(OS) 중심으로 만듦으로써 개선되었지만, 대부분의 통상의 전력 관리 결정은 어림짐작일 뿐이다.
전술한 방법은 전력 소비의 감소를 초래하지만, 그 방법 중 어느 것도, 시스템의 전력 소비를 더 줄일 수 있는 시스템 내의 각 프로세서의 동작 전압의 감소와 결부되어 있지 않다. 컴퓨터 시스템 내에서 호스트 및 자바 프로세서 모두의 동작 전압 및 동작 주파수 모두를 제어하는 것은 컴퓨터 시스템 내의 최적의 전력과 성능 거래를 허용한다. 전술한 관점에서 보면, 자바 가속기 내에 개선된 전력 관리를 제공하는 시스템 및 방법에 대한 필요성이 존재한다. 전력 관리 시스템은 호스트 및 자바의 프로세서의 동작 전압과 동작 주파수 모두를 제어해야한다. 더욱이, 전력 관리 시스템은 동작 조건 변화 동안 전원 및 디지털 회로 모두가 스트레스받지 않도록 보장해야 하고, 동작 조건 변화 사이에 프로세서간 메모리 업데이트를 허용하기 위해 적절한 시간이 이용가능하도록 보장해야 한다.
발명의 개요
대충 말하자면, 본 발명은 자바 가속기에 개선된 전력 관리 시스템을 제공하여 이러한 필요성을 충족시키는 것이다. 본 발명의 전력 관리 시스템은 호스트 및 자바 프로세서의 동작 전압과 동작 주파수 모두를 제어하여, 컴퓨터 시스템 내에 최적의 전력 및 성능을 허용한다. 일 실시예에서, 하드웨어 기반 자바 가속기를 위해 전력 관리를 제공하는 전력 관리 방법이 개시된다. 먼저, 자바 애플리케이션을 개시하는 것에 응답하여, 자바 모드 신호가 호스트 프로세서로부터 제공된다. 그런 후에, 호스트 프로세서로의 전력은 줄어들고 자바 프로세서로의 전력은 자바 모드 신호에 응답하여 증가하게 된다. 그런 다음, 자바 애플리케이션의 실행이 멈출 때, 자바 완료 신호가 자바 프로세서로부터 생성되어, 호스트 프로세서로 제어를 복귀하라는 신호를 시스템으로 보낸다.
다른 실시예에서, 하드웨어 기반 자바 가속기를 위해 전력 관리를 제공하는 전력 관리 시스템이 개시된다. 전력 관리 시스템은 전력 생성 회로에 결합된 호스트 프로세서를 포함한다. 호스트 프로세서는 자바 모드 신호를 제공할 수 있는 자바 모드 신호 포트를 포함한다. 자바 프로세서도 전력 시스템 내에 더 포함되는데, 마찬가지로 전력 생성 회로에 결합된다. 자바 프로세서는 자바 완료 신호를 제공할 수 있는 자바 완료 신호 포트를 포함한다. 사용 중, 전력 생성 회로는 호스트 프로세서에 대한 전력을 줄이고, 자바 모드 신호를 수신하는 것에 응답하여 자바 프로세서에 대한 전력을 증가시킨다. 또한, 자바 완료 신호를 수신하는 것에 응답하여, 전력 생성 회로는 호스트 프로세서로 대한 전력을 증가시키고, 자바 프로세서로 대한 전력을 감소시킨다.
프로세서에 제공된 변화를 제동하는(damping) 램프 회로 방법(a ramp circuit method)은 본 발명의 또 다른 실시예에서 개시된다. 램프 회로 방법은 프로세서가 설정될 소정의 주파수 또는 전압을 나타내는 목표값(target value)을 얻음으로써 시작한다. 그런 다음, 목표값은 차이값을 얻기 위해 현재 값과 비교된다. 목표값과 유사하게, 전류값은 프로세서가 현재 동작하고 있는 현재 주파수 또는 전압이다. 그런 다음, 전류값은 차이값이 사전규정된 임계값 밖에 존재할 경우에 조정되는데, 이 경우 임계값은 범위값일 수도 있고 또는 제로와 같은 단일 값일 수도 있다. 그리고 나서, 전술한 동작은 차이값이 사전규정된 임계값 내에 존재할 때까지 반복된다.
유리하게도, 본 발명은 호스트 및 자바 프로세서의 동작 주파수 및 동작 전압 모두를 제어함으로써 컴퓨터 시스템의 최적의 전력과 성능을 허용한다. 더욱이, 주파수 및 전압 모두가 제어될 때, 주파수를 증가시키기에 앞서 전압이 증가되고, 전압을 감소시키기에 앞서 주파수가 감소된다. 이는 시스템이 현재 전압에 대해 너무 빠른 주파수에서 구동하지 않도록 하여 추가의 전력 절감이 가능하도록 보장한다.
마지막으로, 본 발명의 전력 관리 시스템이 프로세서간 메모리 업데이트를 허용하기 위해 동작 조건 변화 사이에 적절한 시간이 이용가능하도록 보장한다는 것은 당업자에게는 분명하게 될 것이다. 본 발명의 다른 특징 및 이점은 실시 예에 의해 본 발명의 원리를 나타내는 첨부 도면과 함께 후속하는 상세한 설명으로부터 분명해질 것이다.
본 발명은 일반적으로 하드웨어 가속형 자바 실행(hardware accelerated Java execution)에 관한 것으로서, 보다 구체적으로는 마스터/슬레이브 자바 가속기 환경(master/slave Java accelerator environment) 내의 전력 관리(power management)에 관한 것이다.
본 발명은 첨부 도면 함께 후속하는 기술을 참조하면 본 발명의 또 다른 이점과 함께 잘 이해할 수 있을 것이다.
도 1은 본 발명의 실시예에 따른 자바 하드웨어 가속기 시스템을 도시하는 블록도,
도 2는 본 발명의 실시예에 따른 전력 관리 시스템을 나타내는 블록도,
도 3은 본 발명의 실시예에 따른 예시적 램프 회로를 도시하는 블록도,
도 4는 본 발명의 실시예에 따른 하드웨어 기반 자바 가속기를 위한 전력 관리를 제공하는 프로세스를 나타내는 흐름도,
도 5는 본 발명의 실시예에 따른, 프로세서에 제공되는 변화를 제동하는 램프 회로 프로세스를 도시하는 흐름도.
본 발명은 자바 가속기용 전력 관리 시스템에 대해 개시하고 있다. 대충 말하자면, 본 발명의 전력 관리 시스템은 자바 애플리케이션이 개시될 때, 호스트 프로세서로에 대한 전력은 줄이고 자바 프로세서로에 대한 전력은 증가시키며, 자바 애플리케이션의 실행이 정지했을 때, 그 프로세스를 반대로 함으로써 자바 가속기의 전력 사용을 관리한다.
이하의 설명에서, 본 발명의 전체적 이해를 제공하기 위해 많은 특정 세부 사항이 기술된다. 그러나, 본 발명은 이들 특정 세부의 일부 또는 전부 없이도 실시될 수 있다는 것이 당업자에게는 명백할 것이다. 다른 예에서, 잘 알려진 프로세스 단계는 본 발명을 불필요하게 애매하게 하지 않기 위해 상세히 기술되지는 않았다.
도 1은 본 발명의 실시예에 따른 자바 하드웨어 가속기 시스템(a Java hardware accelerator system)(10)을 나타내는 블록도이다. 자바 하드웨어 가속기 시스템(10)은 마스터(호스트) 프로세서(a master(host) processor)(14), 슬레이브(자바) 프로세서(a slave(Java) processor)(16) 및 시스템 메모리(a system memory)(18)를 결합시키는 시스템 버스(a system bus)(12)를 포함한다. 게다가, 자바 하드웨어 가속기 시스템(10)은 호스트 프로세서(14) 및 자바 프로세서(16) 사이에 결합된 버스 중재기(a bus arbitrator)(20)를 포함한다.
자바 하드웨어 가속기 시스템(10)은 자바 프로세서(16)가 대부분의 자바 인스트럭션을 실행하고, 호스트 프로세서(14)가 콤플렉스 자바 인스트럭션(complex Java instruction)을 포함한 나머지 모든 인스트럭션을 실행하는 이중 프로세서 시스템이다. "머신 내 머신(machine within machine)"의 자바 패러다임에 고유한 것처럼, 자바 프로세서(16)는 슬레이브 프로세서이다. "내부 머신"처럼 작동하는 자바 프로세서(16)는 호스트 프로세서(14)인 "외부 머신"에 의해 개시되고 제어된다.
호스트 프로세서(14)는 x86, ARM 및 MIPS 장치와 같이 현재 산업 표준 장치를 포함하는 어떤 프로세서에서도 구현될 수 있다. 자바 프로세서(16)는 바람직하게 인스트럭션 캐시 및 데이터 캐시와 내부 SRAM을 포함하는 스택 기반 프로세서(a sack-based processor)이다. 게다가, 자바 프로세서(16)는 바람직하게 내용 전부가 본 명세서에 참조로 인용되는 "ARCHITECTURE FOR AN INTEGRATED SUBSYSTEM HAVING A JAVA STACK, ARITHMETIC LOGIC UNIT AND MULTIPLES STACKPOINTERS AND METHODS FOR USING THE SAME"이라는 제목의 연관 미국 특허 출원 제 09/565,679 호에 기술된 레지스터 기반 스택을 포함한다.
일반적으로, 호스트 프로세서(14)는 운영 체제, 비자바(non-Java) 애플리케이션 및 콤플렉스 자바 인스트럭션을 지원한다. 일 실시예에서, 부가적인 전용 ARM 프로세서 또는 등가의 프로세서(도시하지 않음)는 콤플렉스 자바 인스트럭션을 처리하는 데 사용된다.
일반적으로, 자바 프로세서는 적어도 로드(Loads), 저장(Store), 계산(Computation), 분기(Branch), 푸쉬(Push) 및 필드(Field)와 같은 자바 인스트럭션을 실행할 수 있다. 바람직하게, 정수 및 부동점 소수의 모든 컴퓨터 인스트럭션에 대한 지원부가 자바 프로세서(16) 내에 내장되어 있다. 전술한 바와 같이, 호스트 프로세서(14)는 메쏘드 호출(method calls)과 같은 콤플렉스 인스트럭션을 처리한다. 자바 프로세서(16)는 콤플렉스 인스트럭션이 디코딩될 때, 예외(an exception)를 생성하고, 데이터 캐시 내의 모든 더티 라인(dirty lines)은 시스템 메모리(18)에 기록된다. 그 후에, 자바 프로세서(16)는 실행을 멈춘다.
바람직하게, 자바 프로세서(16)는 현재 실행되는 메쏘드에 대한 빠른 액세스를 위해 인스트럭션 캐시를 포함한다. 메쏘드를 지원하는 데 사용되고 있는 로컬데이터는, 전형적으로 단일 포트형이고(single ported) 호스트 프로세서(14) 및 자바 프로세서(16) 모두에 의해 액세스가능한 내부 SRAM 내에 존재한다. 자바 프로세서(16)가 실행되고 있을 때, 호스트 프로세서(14)는 로컬 데이터 영역 및 스택 모두로부터 로킹된다(locked). 게다가, 어레이와 같은 비로컬 변수(non-local variables)로의 빠른 액세스를 위한 데이터 캐시가 포함된다.
도 2는 본 발명의 실시예에 따른 전력 관리 시스템(50)을 나타내는 블록도이다. 전력 관리 시스템(50)은 호스트 프로세서부(52)와 자바 프로세서부(54)를 포함한다. 호스트 프로세서부(52)는 호스트 정규 동작 전압 및 주파수 레지스터의 세트(58)와, 호스트 저 전력 전압 및 주파수 레지스터의 세트(60)에 결합된 호스트 스위치 레지스터(56)를 포함한다. 게다가, 전력 관리 시스템(50)은 호스트 램프 회로(64)에 결합된 프로그램 가능 전압 및 주파수 생성기의 세트(62) 및 호스트 프로세서(14)를 포함한다. 호스트 프로세서(14)는 자바 애플리케이션의 개시 시, 자바 모드 신호(68)를 제공하는 자바 모드 단일 포트를 포함한다.
자바 프로세서부(54)는 자바 정규 동작 전압 및 주파수 레지스터의 세트(72), 자바 저 전력 전압 및 주파수 레지스터의 세트(74) 및 유휴 타이머(76)에 결합된 자바 스위치 레지스터(70)를 포함한다. 게다가, 전력 관리 시스템(50)은 자바 램프 회로(80)에 결합된 프로그램 가능 전압 및 주파수 생성기의 세트(78) 및 자바 프로세서(16)를 포함한다. 자바 프로세서(16)는 자바 애플리케이션의 실행이 정지될 때, 자바 완료 신호(84)를 제공하는 자바 완료 신호 포트를 포함한다.
프로그램 가능 전압 및 주파수 생성기(62, 78) 각각은 호스트 램프 회로(64)및 자바 램프 회로(80)에 의해 제공된 주파수 변화의 실제 실시를 제공한다. 동작 중, 프로그램 가능 전압 및 주파수 생성기(62, 78) 각각은 슬루 클럭 신호(a slew clock signal)와 함께 클러킹되는데, 이는 적절한 램프 회로가 매 클럭 마다 새로운 전력을 제공할 수 있게 해준다.
각각의 프로세서(14, 16)는 본래 두 개의 동작 모드, 즉 정규 동작 모드 및 저 전력 동작 모드를 갖는다. 정규 동작 모드에서, 호스트 프로세서(14) 및 자바 프로세서(16)는 일반적으로 호스트 프로세서(14) 또는 자바 프로세서(16)가 구현되는 프로세서의 유형에 대해 정규적인 것으로 고려된 전압 및 주파수에서 동작한다. 저 전력 동작 모드에서, 호스트 프로세서(14) 및 자바 프로세서(16)는 저 전력 전압 및 주파수에서 동작하는데, 이는 호스트 프로세서(14) 또는 자바 프로세서(16)가 구현되는 프로세서의 유형에 대한 정규 동작 전압 및 주파수보다 아래이다.
프로세서(14/16)가 의미 있는 작업을 수행할 경우에는 정규 동작 모드를 사용하고, 프로세서(14/16)가 의미 있는 작업을 수행하지 않을 때에는 저 전력 동작 모드로 스위칭함으로써, 본 발명은 증진된 전력 절감을 제공한다. 이러한 전력 절감은 사용 중이 아닐 때, 각각의 프로세서(14/16)의 동작 전압 및 동작 주파수 모두를 떨어뜨리는 능력에 의해 상당히 증진된다.
초기에, 호스트 프로세서 정규 동작 전압 및 정규 동작 주파수 값은 호스트 정규 동작 전압 및 주파수 레지스터의 세트(58) 내에 저장된다. 게다가, 호스트 프로세서 저 전력 동작 전압 값 및 호스트 프로세서 저 전력 주파수 값은 호스트 저 전력 전압 및 주파수 레지스터의 세트(60) 내에 저장된다. 유사하게, 자바 프로세서 정규 전압 값 및 자바 프로세서 정규 동작 주파수 값은 자바 정규 동작 전압 및 주파수 레지스터의 세트(72) 내에 저장된다. 그런 다음, 자바 프로세서 저 전력 동작 전압 값 및 자바 프로세서 저 전력 동작 주파수 값은 자바 저 전력 전압 및 주파수 레지스터의 세트(74) 내에 저장된다.
이러한 방식으로, 호스트 및 자바 정규 동작 전압 및 주파수 레지스터의 세트(58, 72)는 호스트 프로세서(14) 및 자바 프로세서(16) 각각에 대해 정규 동작 전압 및 주파수를 규정한다. 유사하게, 호스트 및 자바 저 전력 전압 및 주파수 레지스터의 세트(60, 74)는 호스트 프로세서(14) 및 자바 프로세서(16) 각각에 대한 저 전력 동작 전압 및 주파수를 규정한다.
정규 동작 동안, 호스트 프로세서(14)는 호스트 정규 동작 전압 및 주파수 레지스터(58)에 의해 규정된 정규 동작 모드에 따라 동작하지만, 자바 프로세서(16)는 자바 저 전력 전압 및 주파수 레지스터(74)에 의해 규정된 저 전력 동작 모드에 따라 동작한다. 전술한 바와 같이, 호스트 프로세서(14)는 일반적으로 메쏘드 호출과 같은 콤플렉스 자바 인스트럭션을 제외한, 자바 프로세서가 처리할 수 없는 모든 비자바 인스트럭션을 실행한다. 자바 애플리케이션을 개시하는 순간, 호스트 프로세서는 자바 모드 신호(68)를 생성하는데, 이 신호(68)는 자바 애플리케이션이 자바 프로세서(16)에 의해 실행될 것이라는 것을 전력 관리 시스템(50)에게 알린다. 그런 다음, 호스트 레지스터 스위치(56) 및 자바 레지스터 스위치(70)는 호스트 및 자바 프로세서(14, 16)를 위한 동작 모드를 스위칭하도록 지시하는 자바 모드 신호(68)를 수신한다.
자바 모드 신호(68)를 수신하자마자, 호스트 레지스터 스위치(56)는 호스트 프로세서(14)에 대한 호스트 목표 전압 및 주파수 값을 호스트 저 전력 전압 및 주파수 레지스터(60) 내에 저장된 값으로 설정한다. 유사하게, 자바 레지스터 스위치(70)는 자바 프로세서(16)에 대한 자바 목표 전압 및 주파수 값을 자바 정규 동작 전압 및 주파수 레지스터(72) 내에 저장된 값으로 설정한다.
이 시점에서, 호스트 램프 회로(64)는 점차적으로 호스트 프로세서(14)의 현재 전압 및 주파수를 호스트 목표 전압 및 주파수 값까지 줄이기 위해 호스트 목표 전압 및 주파수 값을 사용한다. 유사한 방법으로, 자바 램프 회로(80)는 자바 프로세서(14)의 현재 전압 및 주파수를 자바 목표 전압 및 주파수 값까지 증가시키기 위해 자바 목표 전압 및 주파수 값을 사용한다.
호스트 및 자바 램프 회로(64, 80) 각각은 호스트 프로세서 및 자바 프로세서의 현재 전압 및 주파수가 각각의 목표 전압 및 주파수 값에 도달할 때까지 시간에 걸쳐 소량의 전압 증분 및 주파수 증분 또는 감소를 제공한다. 매 전압 및 주파수 감소 후, 호스트 램프 회로(64)는 새로운 감소된 전압 및 주파수 값을 호스트 프로세서(14)에 결합된 프로그램가능 전압 및 주파수 생성기의 세트(62)에 제공한다. 프로그램가능 전압 및 주파수 생성기의 세트(62)는 호스트 프로세서(14)의 전압 및 주파수를 신규늬 감소된 전압 및 주파수 값으로 설정한다.
유사하게, 매 증분 후, 자바 램프 회로(80)는 신규의 증분된 전압 및 주파수 값을 자바 프로세서(16)에 결합된 프로그램가능 전압 및 주파수 생성기의 세트(78)에 제공한다. 그런 다음, 프로그램가능 전압 및 주파수 생성기의 세트(78)는 자바프로세서(16)의 전압 및 주파수를 신규의 증분된 전압 및 주파수 값으로 설정한다. 이런 방식으로, 자바 애플리케이션이 개시될 때, 전력은 호스트 프로세서(14)에서 줄어들고 자바 프로세서(16)에서 증가되어, 시스템(50)에 대한 실질적인 전력 절감을 초래한다.
그런 다음, 자바 프로세서(16)는 자바 애플리케이션을 실행하기 시작한다. 자바 프로세서(16)는 일반적으로 자바 애플리케이션이 완료될 때까지 또는 콤플렉스 자바 인스트럭션이 자바 프로세서(16)가 처리할 수 없음에 직면할 때까지 자바 애플리케이션을 계속 실행한다. 이 시점에서, 자바 프로세서(16)는 자바 완료 신호(84) 또는 인터럽트를 생성하는데, 이는 호스트 레지스터 스위치(56) 및 자바 레지스터 스위치(70)에 의해 수신되고, 자바 애플리케이션의 실행이 정지되었다는 것을 전력 관리 시스템(50)에 통지한다.
자바 완료 신호(84)를 수신하면, 호스트 레지스터 스위치(56)는 호스트 목표 전압 및 주파수 값을 호스트 정규 동작 전압 및 주파수 레지스터(58) 내에 저장된 값으로 설정한다. 유사하게 자바 레지스터 스위치(70)는 자바 목표 전압 및 주파수 값을 자바 저전압 및 주파수 레지스터(74)에 저장된 값으로 설정한다.
이 시점에서, 호스트 램프 회로(64)는 호스트 프로세서(14)의 현재 전압 및 주파수를 호스트 목표 전압 및 주파수 값까지 점진적으로 증가시키기 위해 호스트 목표 전압 및 주파수 값을 사용한다. 유사한 방식으로, 자바 램프 회로(80)는 자바 프로세서(14)의 현재 전압 및 주파수를 자바 목표 전압 및 주파수 값까지 점진적으로 줄이기 위해 자바 목표 전압 및 주파수 값을 사용한다.
전술한 바와 같이, 호스트 및 자바 램프 회로(64, 80)는 호스트 프로세서 및 자바 프로세서의 현재 전압 및 주파수가 각각의 목표 전압 및 주파수 값에 도달할 때까지 시간에 걸쳐 제각기 작은 전압 증분 및 주파수 증분 또는 감소를 제공한다. 매 증분 후, 호스트 램프 회로(64)는 신규의 증분된 전압 및 주파수 값을 호스트 프로세서(14)에 결합된 프로그램가능 전압 및 주파수 생성기의 세트(62)에 제공한다. 프로그램가능 전압 및 주파수 생성기의 세트(62)는 호스트 프로세서(14)의 전압 및 주파수를 신규의 증분된 전압 및 주파수 값으로 설정한다.
유사하게, 매 감소 후, 자바 램프 회로(80)는 신규의 감소된 전압 및 주파수 값을 자바 프로세서(16)에 결합된 프로그램 가능 전압 및 주파수 생성기의 세트(78)에 제공한다. 프로그램 가능 전압 및 주파수 생성기의 세트(78)는 자바 프로세서(16)의 전압 및 주파수를 신규의 감소된 전압 및 주파수 값으로 설정한다. 이러한 방식으로, 전력은 호스트 프로세서(14)에서 증가되고, 자바 애플리케이션의 실행이 정지 할 경우, 자바 프로세서(16)에서 감소된다. 이 시점에서, 호스트 프로세서(14)는 시스템의 제어를 다시 재개하고 컴퓨터 인스트럭션의 실행을 계속한다.
자바 실행 동안, 자바 프로세서(16)는 여러 자바 인스트럭션을 실행할 때 사용하기 위한 정보를 로컬 캐시 내에 저장한다. 자바 실행이 정지할 때, 이 정보는 시스템 버스를 통해 호스트 프로세서(14)에 이용가능하게 된다. 자바 프로세서(16)가 저 전력 동작 모드로 셧다운되기 전에, 이 정보를 제공하기 위해, 본 발명은 자바 레지스터 스위치(70) 및 자바 램프 회로(80) 사이에 결합된 유휴지연 타이머(an idle delay timer)(76)를 사용한다.
유휴 지연 타이머(76)는 자바 전압 램프 회로(80)가 자바 전압 및 주파수 값을 자바 저 전력 전압 및 주파수 레지스터(74)의 세트 내에 저장된 낮은 값으로 설정하는 것을 지연시킨다. 그 지연의 길이는 자바 프로세서(16)의 캐시 메모리 크기의 함수이고, 자바 프로세서로(16)에 대한 전력이 감소하기 전에 캐시 내의 정보가 시스템 메모리로 전송될 수 있도록 설정된다. 바람직하게, 유휴 지연 타이머(76)는 자바 프로세서(16)가 자바 완료 신호(84)를 생성할 때만 동작한다는 것에 유의해야 한다.
도 3은 본 발명의 예에 따른 램프 회로(100)의 일례를 나타내는 블록도이다. 회로(100)는 주파수 램프 회로로서 사용하기 위해 도시되지만, 램프 회로(100)도 레지스터에 주파수 값 대신에 전압 값을 공급함으로써 전압 램프 회로로서 사용될 수 있다.
램프 회로(100)는 목표 주파수 레지스터(104), 전류 주파수 레지스터(106) 및 오프셋 테이블(108)에 결합된 비교기(102)를 포함한다. 게다가, 램프 회로(100)는 오프셋 테이블(108) 및 현재 주파수 레지스터(106)에 결합된 오프셋 주파수 레지스터(110)를 포함한다. 마지막으로, 램프 회로(100)는 램프 회로(100)에 제어를 제공하는 주파수 상태 머신(112)을 포함한다. 현재 주파수 레지스터(106)는 프로그램가능 주파수 생성기(114)에도 결합된다는 것에 유의해야 한다.
전력 모드가 정규 동작 모드 및 저 전력 동작 모드 사이에서 스위칭될 때,호스트 및 자바 프로세서의 양 프로세서에 대한 전압 및 주파수 변화는 전원 및 디지털 로직에 스트레스를 주는 것을 막기 위해 바람직하게 제동된다.
후속하여 더 상세히 설명되는 바와 같이, 램프 회로(100)는 프로세서의 전압 및 주파수에 대해 작은 증분 벼화를 제공하고, 이들 변화의 적절한 우선 순위를 보장한다. 특히, 프로세서에 대한 전력이 저 전력으로부터 정규 전력으로 스위칭될 때, 전압은 주파수가 증가하기 전에 증가된다. 반대로, 프로세서에 대한 전력이 정규 전력으로부터 저 전력으로 스위칭 될 때, 주파수는 전압이 줄어들기 전에 줄어든다.
동작 중, 램프 회로(100)는 주파수 상태 머신(112)에 의해 상대적으로 낮은 클럭 신호로 클러킹된다. 전술한 바와 같이, 현재 전력 동작 모드에 따라, 램프 회로(100)는 정규 동작의 세트 또는 저 전력 주파수 레지스터 중 하나로부터 목표 주파수를 얻고, 목표 주파수를 목표 주파수 레지스터(106) 내에 저장한다.
각각의 클럭 신호에서, 비교기(102)는 차이값을 얻기 위해 목표 주파수 레지스터(104) 내에 저장된 값을 현재 주파수 레지스터(106) 내에 저장된 값과 비교한다.
차이값이 사전결정된 임계값 밖에 존재하면, 테이블 검색은 차이값과 오프셋 테이블(108)을 사용하여 수행된다. 그런 다음, 테이블 검색의 결과는 오프셋 주파수 레지스터(110) 내에 저장된다. 사전결정된 임계값은 수용가능한 주파수 값, 단일 값 또는 제로일 수 있다. 임계값을 제로로 설정하는 것은 차이값이 제로가 아닐 때마다 그 차이값이 임계값 밖에 존재하는 것으로 된다. 임계값을 단일 값에설정하는 것은 제로와 그 단일 값 사이의 범위를 나타낸다. 차이값은 차이값이 임계값의 범위 밖에 존재할 때마다 기초한 범위의 임계값 밖에 존재한다.
그런 다음, 오프셋 주파수 레지스터(110) 내에 저장된 값은 현재 주파수 레지스터(106) 내에 저장된 값에 더해지거나 빼지고, 그 결과는 현재 주파수 레지스터 내에 저장된다. 바람직하게, 오프셋 테이블은 주파수의 부드러운 선형 램프인 주파수 변화를 초래하는 주파수 오프셋을 제공하도록 구성된다. 선택적으로, 오프셋 주파수 레지스터(110)는 제거될 수 있고, 오프셋 값은 오프셋 테이블(108)로부터 등록된 현재 주파수(114)에 직접 더해지거나 직접 빼진다. 현재 주파수 레지스터(106) 내에 저장된 신규 주파수 값은 프로그램가능 주파수 생성기(114)를 프로그래밍하기 위해 사용되는데, 이는 프로세서와 관련된 주파수를 신규의 현재 주파수 값으로 설정한다.
램프 회로(100)는 차이값이 사전결정된 임계값 내에 존재할 때까지 위의 동작을 계속한다. 이 시점에서, 관련 프로세서는 동작할 것이다. 다른 실시예에서, 위의 동작은 사전결정된 임계값에 도달할 때에도 여전히 계속될 것이다. 이 실시예에서, 제로 값은 오프셋 레지스터(110) 내에 저장되어, 현재 주파수 값에 대한 더 이상의 변화를 초래하지 않는다. 그런 다음, 신규 목표 주파수는 목표 주파수 레지스터 내에 저장되고, 램프 회로(100)는 자동적으로 신규 목표값으로 현재 주파수를 램핑하는 동작을 계속한다.
도 4는 본 발명의 실시예에 따른 하드웨어 기반 자바 가속기를 위한 전력 관리를 제공하는 프로세스(200)를 나타내는 흐름도이다. 초기 동작(202)에서, 전처리 연산이 수행된다. 전처리 연산은 자바 프로그램 카운터 및 스택 포인터를 초기화하는 것을 포함하고, 다른 전처리 연산은 당업자에게 명백해질 것이다.
자바 모드 동작(204)에서, 자바 애플리케이션을 개시하는 것에 응답하여, 자바 모드 신호가 호스트 프로세서로부터 제공된다. 정규 동작 동안, 호스트 프로세서는 호스트 정규 동작 전압에 의해 규정된 그의 정규 동작 모드에 따라 동작하지만, 자바 프로세서는 자바 저 전력 전압 및 주파수 레지스터에 의해 규정된 그의 저 전력 동작 모드에 따라 동작한다. 일반적으로 호스트 프로세서는 메쏘드 호출과 같은 콤플렉스 자바 인스트럭션을 제외하고는 모든 비자바 인스트럭션을 수행한다. 자바 애플리케이션을 개시하는 순간, 호스트 프로세서는 자바 모드 신호를 생성하는데, 이 신호는 자바 애플리케이션이 자바 프로세서에 의해 실행되어야 한다는 것을 전력 관리 시스템에 알린다. 그런 다음, 호스트 레지스터 스위치 및 자바 레지스터 스위치는 자바 모드 신호를 수신하는데, 이 신호는 이들 스위치에 호스트 및 자바 프로세서의 동작 모드를 스위칭하라고 지시한다.
그런 다음, 호스트 전력 감소 동작(차이값)에서, 호스트 프로세서로의 전력은 자바 모드 신호에 응답하여 줄어든다. 자바 모드 신호를 수신할 때, 호스트 레지스터 스위치는 호스트 목표 전압 및 주파수 값을 호스트 프로세서를 위해 호스트 저 전력 전압 및 주파수 레지스터 내에 저장된 값으로 설정한다. 그리고 나서, 호스트 램프 회로는 점차 호스트 프로세서의 현재 전압 및 주파수를 호스트 목표 전압 및 주파수까지 줄이기 위해 호스트 목표 전압 및 주파수 값을 사용한다.
전술한 바와 같이, 호스트 램프 회로는 호스트 프로세서의 현재 전압 및 주파수가 목표 전압 및 주파수 값에 도달할 때까지 시간에 걸쳐 소량의 전압 증분 및 주파수 증분 또는 감소를 제공한다. 매 전압 및 주파수 감소 후, 호스트 램프 회로는 신규의 감소된 전압 및 주파수 값을 호스트 프로세서에 결합된 프로그램가능 전압 및 주파수 생성기의 세트에 제공한다. 그런 다음, 프로그램가능 전압 및 주파스 생성기의 세트는 호스트 프로세서의 전압 및 주파수 값을 신규의 감소된 전압 및 주파수 값으로 설정한다.
자바 전력 증가 동작(208) 내에서, 자바 프로세서로의 전력은 자바 모드 신호에 응답하여 증가된다. 자바 모드 신호를 수신한 때, 자바 레지스터 스위치는 자바 프로세서를 위해 자바 목표 전압 및 주파수 값을 자바 정규 동작 전압 및 주파수 레지스터 내에 저장된 값으로 설정한다. 자바 램프 회로는 점차 자바 프로세서의 전류 전압 및 주파수를 자바 목표 전압 및 주파수 값까지 증가시키기 위해 자바 목표 전압 및 주파수 값을 사용한다.
각각의 전압 및 주파수 증가 후, 자바 램프 회로는 신규의 증분된 전압 및 주파수 값을 자바 프로세서에 결합된 프로그램가능 전압 및 주파수 생성기의 세트에 제공한다. 그리고 나서, 프로그램가능 전압 및 주파수 생성기의 세트는 자바 프로세서의 전압 및 주파수를 신규의 증분된 전압 및 주파수 값으로 설정한다. 그 정규 동작 전압 및 주파수에 이른 후, 자바 프로세서는 자바 애플리케이션을 실행하기 시작하고, 일반적으로 애플리케이션이 완료될 때까지 또는 콤플렉스 인스트럭션이 자바 프로세서가 처리할 수 없게 될 때까지 자바 애플리케이션 실행을 계속한다.
자바 완료 신호 동작(210)에서, 자바 완료 신호는 자바 애플리케이션의 실행이 정지될 때, 자바 프로세서로부터 생성된다. 이 시점에서, 자바 프로세서는 자바 완료 신호 또는 인터럽트를 생성하는데, 이는 호스트 레지스터 스위치 및 자바 레지스터 스위치에 의해 수신된다. 이 자바 완료 신호는 전력 관리 시스템에게 자바 애플리케이션의 실행이 정지되었음을 알린다.
그런 다음, 자바 완료 동작(212) 시, 자바 완료 신호에 응답하여, 호스트 프로세서로의 전력은 증가되고 자바 프로세서로의 전력은 감소된다. 자바 완료 신호를 수신한 때, 호스트 레지스터 스위치는 호스트 목표 전압 및 주파수 값을 호스트 정규 동작 전압 및 주파수 레지스터로부터 제공된 값으로 설정한다. 유사하게, 자바 레지스터 스위치는 자바 목표 전압 및 주파수 값을 자바 저 전력 전압 및 주파수 레지스터로부터 제공된 값으로 설정한다.
이 시점에서, 호스트 램프 회로는 점차 호스트 프로세서의 현재 전압 및 주파수를 호스트 목표 전압 및 주파수 값까지 증가시키기 위해 호스트 목표값 및 주파수 값을 사용한다. 유사한 방식으로, 자바 램프 회로는 자바 프로세서의 현재 전압 및 주파수를 자바 목표 전압 및 주파수 값으로 점차 줄이기 위해 자바 목표 전압 및 주파수 값을 사용한다.
전술한 바와 같이, 호스트 및 자바 램프 회로는 호스트 프로세서 및 자바 프로세서의 현재 전압 및 주파수가 그들 각각의 목표 전압 및 주파수 값에 도달할 때까지 시간에 걸쳐 작은 전압 증분 및 주파수 증분 또는 감소를 제공한다. 매 증분 후, 호스트 램프 회로는 신규의 증분된 전압 및 주파수 값을 호스트 프로세서에 결합된 프로그램 가능 전압 및 주파수 생성기에 제공한다. 그런 다음, 프로그램가능 전압 및 주파수 생성기의 세트는 호스트 프로세서의 전압 및 주파수를 신규의 증분된 전압 및 주파수 값으로 설정한다.
유사하게, 매 감소 후, 자바 램프 회로는 신규의 감소된 전압 및 주파수 값을 자바 프로세서에 결합된 프로그램가능 전압 및 주파수 생성기의 세트에 제공한다. 그런 다음, 프로그램 가능 전압 및 주파수 생성기의 세트는 자바 프로세서의 전압 및 주파수를 신규의 감소된 전압 및 주파수 값으로 설정한다. 이러한 방식으로, 자바 애플리케이션의 실행이 정지할 때, 전력은 호스트 프로세서 내에서는 증가되고 자바 프로세서 내에서는 감소된다. 이 시점에서, 호스트 프로세서는 시스템의 제어를 재개하고, 컴퓨터 인스트럭션을 실행하기 시작한다.
자바 실행이 정지할 때, 로컬 메모리 캐시 내에 저장된 정보는 시스템 버스를 통해 호스트 프로세서에 이용가능하게 된다. 자바 프로세서가 저 전력 동작 모드로 셧다운되기 전에 이러한 정보를 제공하기 위해서, 본 발명은 자바 스위치와 자바 램프 회로 사이에 결합된 유휴 지연 타이머를 사용한다.
유휴 지연 타이머는 자바 전압 램프 회로가 자바 목표 전압 및 주파수 값을 자바 저 전력 전압 및 주파수 레지스터의 세트로부터 제공되는 보다 낮은 값으로 설정하는 것을 지연시킨다. 그 지연의 길이는 자바 프로세서의 캐시 메모리의 크기의 함수이고, 자바 프로세서로의 전력이 줄어들기 전에 캐시 내의 정보가 시스템 메모리 내에 전송될 수 있도록 설정된다. 바람직하게, 유휴 지연 타이머는 자바 프로세서가 자바 완료 신호를 생성할 때만 동작한다는 것을 유의해야 한다.
그런 다음, 후처리(post-process) 동작이 연산(214)에서 수행된다. 후처리 동작은 자바 메쏘드 호출의 실행과 당업자에게 명백할 다른 후처리 동작을 포함한다. 유리하게, 호스트 및 자바 프로세서의 동작 주파수 및 동작 전압은 컴퓨터 시스템의 최적의 전력 및 성능을 허용한다.
도 5는 본 발명의 실시예에 따라 프로세서에 제공된 변화를 제동하는 램프 회로 프로세스(300)의 흐름도이다. 램프 회로 프로세스(300)가 전압 램프 회로 프로세스로서 기술되지만, 램프 회로 프로세스(300)는 프로세서의 주파수 또는 전압 중 어느 하나를 램핑하는 데 사용될 수 있다. 후속하는 전압 값을 주파수 값으로 대체함으로써, 램프 회로 프로세스(300)는 주파수 램프 회로 처리로서 사용될 수 있다. 초기 동작(302)에서, 프로세스 동작은 수행된다. 프로세서 동작은 정규 동작, 저 전력 전압 및 주파수 레지스터과 당업자에게 명백한 다른 전처리 동작을 포함한다.
목표값 동작(304)에서, 목표값은 전압 및 주파수 레지스터로부터 획득된다. 목표 전압값은 현재 전력 동작 모드에 따라 정규 동작의 세트 또는 저 전력 전압 레지스터 중 하나로부터 획득될 수 있고, 목표 전압 레지스터 내에 저장된다. 관련 프로세서의 현재 동작 전압은 현재 전압 레지스터 내에 저장된다.
다음에, 비교 동작(306)에서, 차이값을 얻기 위해 목표값이 현재 값과 비교된다. 각각의 클럭 신호에서, 비교기는 차이값을 얻기 위해 목표 전압 레지스터 내에 저장된 값을 현재 전압 레지스터 내에 저장된 값과 비교한다. 차이값은 목표 전압 레지스터 내에 저장된 값과 현재 전압 레지스터 내에 저장된 값 사이의 차이다.
그런 다음, 동작(308)에서 차이값이 사전규정된 임계값 밖인지 여부에 관하여 결정된다. 사전결정된 임계값은 수용가능한 주파수 범위 값, 단일 값 또는 제로일 수 있다. 임계값을 제로로 설정하는 것은 차이값이 제로가 아닐 때마다 그 차이값이 임계값 밖에 존재함을 의미한다. 임계값을 단일 값에 설정하는 것은 제로와 그 단일 값 사이의 범위를 나타낸다. 차이값은 차이값이 임계값의 범위 밖에 존재할 때마다에 근거한 범위의 임계값 밖에 존재한다. 차이값이 사전규정된 임계값 밖에 존재한다면, 램프 회로 프로세스(300)는 테이블 검색 동작(310)을 계속한다. 그렇지 않다면, 램프 회로 프로세스(300)는 동작(312)에서 완료된다.
차이값은 테이블 검색 동작(310)에서, 오프셋 테이블 내의 테이블 검색을 수행하기 위해 사용된다. 복수개의 전압 엔트리를 포함하는 오프셋 테이블이 제공된다. 오프셋 테이블 내의 차이값을 검색함으로써, 오프셋 전압 값은 획득될 수 있다. 그런 다음, 오프셋 테이블로부터 초래된 오프셋 값은 오프셋 전압 레지스터 내에 저장된다. 바람직하게, 오프셋 테이블은 전압의 매끄러운 선형 램프인 프로세서 전압 변화를 초래하는 전압 오프셋을 제공하도록 구성된다.
조정 동작(314)에서, 전류값은 동작(310)에서 획득된 오프셋 전압에 기초하여 조정된다. 오프셋 전압 레지스터 내에 저장된 값은 전류 전압 레지스터 내에 저장된 값에 가산되거나 감산되고, 그 결과는 현재 전압 레지스터 내에 저장된다. 선택에 따라, 오프셋 전압 레지스터는 생략될 수 있고, 오프셋 값은 오프셋 테이블로부터 등록된 현재 전압에 직접적으로 가산되거나 감산될 수 있다.
전압 프로그래밍 동작(316)에서, 신규의 현재 전압 값은 프로그램가능 전압 생성기에 제공된다. 현재 전압 레지스터 내에 저장된 신규 전압값은 프로그램 가능 전압 생성기를 프로그래밍하는 데 사용되는데, 이는 관련 프로세서의 전압을 신규 현재 전압값으로 설정하는 데 사용된다. 그런 다음, 램프 회로 프로세스(300)는 다른 비교 동작(304)으로 계속되는데, 현재 전압 레지스터는 신규의 조정된 현재 전압 값을 포함한다.
현재 전압 값이 사전결정된 임계값 내에 존재할 때, 램프 회로 프로세스(300)는 동작(312)에서 완료된다. 이 시점에서, 관련 프로세서는 목표 전압에서 동작할 것이고, 적절한 인스트럭션을 처리하기 시작할 수 있다.
또 다른 실시예에서, 램프 회로 프로세스(300)는 사전결정된 임계값에 도달할 때, 다른 비교 동작(304)으로 계속된다. 이 실시예에서, 제로 값은 오프셋 레지스터 내에 저장되어, 현재 전압 값에 대해 더 이상 변화를 초래하지 않는다. 신규 목표 전압이 목표 전압 레지스터 내에 저장될 때, 램프 회로는 현재 전류를 신규 목표값으로 램핑하기 위한 동작을 자동적으로 계속한다.
램프 회로 프로세스(300)는 전압 및 주파수 변화의 적절한 우선 순위를 보장한다. 특히, 프로세서로의 전력이 저 전력으로부터 정규 전력으로 스위칭될 때, 전압은 주파수가 증가되기 전에 증가된다. 반대로, 프로세서에 대한 전력이 정규 전력으로부터 저 전력으로 스위칭될 때, 주파수는 전압이 줄어들기 전에 줄어든다.
유리하게도, 램프 회로 프로세스(300)는 동작 조건 변화 동안 전력 공급 및 디지털 회로 중 어느 것도 스트레스를 받지 않도록 보장하고, 프로세스서간 메모리업데이트를 허용하기 위해 적절한 시간이 동작 조건 변화 사이에 이용가능하도록 보장한다.
전술한 발명은 이해를 분명히 하기 위해 좀 더 상세히 기술되었지만, 임의의 변화 및 변경은 첨부된 청구항의 범주 내에서 실시될 수 있다는 것이 명백할 것이다. 따라서, 본 실시예는 제한적인 것이 아니라 예시적인 것으로 고려되며, 본 발명은 본 명세서에 주어진 세부 사항에 한정되지 않지만, 첨부된 청구항의 범주 및 등가물 내에서 변경될 수 있다.

Claims (20)

  1. 하드웨어 기반 자바 가속기에 대한 전력 관리를 제공하는 전력 관리 방법에 있어서,
    자바 애플리케이션의 개시에 응답하여, 호스트 프로세서(14)로부터 자바 모드 신호(68)를 제공하는 단계와,
    상기 자바 모드 신호(68)에 응답하여 상기 호스트 프로세서(14)에 대한 전력을 줄이는 단계와,
    상기 자바 모드 신호(68)에 응답하여 자바 프로세서(16)에 대한 전력을 증가시키는 단계와,
    상기 자바 애플리케이션의 실행이 정지할 때, 상기 자바 프로세서(16)로부터의 자바 완료 신호(84)를 생성하는 단계
    를 포함하는 전력 관리 방법.
  2. 제 1 항에 있어서,
    상기 자바 완료 신호(84)에 응답하여 상기 호스트 프로세서(68)에 대한 전력을 증가시키는 단계와,
    상기 자바 완료 신호(84)에 응답하여 자바 프로세서(16)에 대한 전력을 줄이는 단계
    를 더 포함하는 전력 관리 방법.
  3. 제 2 항에 있어서,
    전력이 전압 및 주파수를 포함하는 전력 관리 방법.
  4. 제 2 항에 있어서,
    (a) 목표 전력 값(104)을 얻는 단계와,
    (b) 상기 목표 전압 값(104)을 현재 전력 값(106)과 비교하는 단계와,
    (c) 상기 현재 전력 값(106)이 상기 목표 전력 값보다 적을 때, 상기 전류 전력 값(106)을 증가시키는 단계와,
    (d) 상기 전력 값이 상기 목표 전력 값과 본질적으로 같아질 때까지 상기 동작(a)-(c)를 반복하는 단계
    를 포함하는 램프 회로 프로세스를 사용하여 상기 프로세서에 대한 전력을 증가시키는 전력 관리 방법.
  5. 제 4 항에 있어서,
    상기 현재 전력 값(106)은 오프셋 테이블(108)로부터 얻어진 양만큼 증가되는 전력 관리 방법.
  6. 제 2 항에 있어서,
    (a) 목표 전력 값(104)를 얻는 단계와,
    (b) 상기 목표 전력 값(104)을 현재 전력 값(106)과 비교하는(102) 단계와,
    (c) 상기 현재 전력 값(106)이 상가 목표 전력 값(104)보다 더 클 때, 상기 현재 전력 값을 줄이는 단계와,
    (d) 상기 현재 전력 값이 상기 전력 값과 본질적으로 같아질 때까지 상기 동작 (a)-(c)를 반복하는 단계
    를 포함하는 램프 회로 프로세스를 사용하여 상기 프로세서에 대한 전력을 줄이는 전력 관리 방법.
  7. 제 6 항에 있어서,
    상기 현재 전력 값(104)은 오프셋 테이블(108)로부터 얻어진 양만큼 줄어드는 전력 관리 방법.
  8. 하드웨어 기반 자바 가속기에 대한 전력 관리를 제공하는 전력 관리 시스템에 있어서,
    전력 생성 회로에 결합되고, 자바 모드 신호(68)를 제공할 수 있는 자바 모드 신호 포트를 구비한 호스트 프로세서(14)와,
    상기 전력 생성 회로에 결합되고, 자바 완료 신호(84)를 제공할 수 있는 자바 완료 신호 포트를 구비한 자바 프로세서(16)를 포함하고,
    상기 전력 생성 회로는 상기 자바 모드 신호(68)를 수신하는 것에 응답하여 상기 호스트 프로세서(14)에 대한 전력은 줄이고 상기 자바 프로세서로(16)의 전력은 증가시키고, 상기 자바 완료 신호(84)를 수신하는 것에 응답하여 상기 자바 프로세서(16)에 대한 전력은 감소시키는
    전력 관리 시스템.
  9. 제 8 항에 있어서,
    상기 호스트 프로세서(14)는 자바 애플리케이션의 개시에 응답하여 상기 자바 모드 신호(68)를 제공하는 전력 관리 시스템.
  10. 제 9 항에 있어서,
    상기 자바 프로세서(16)는 자바 애플리케이션의 실행이 정지할 때, 상기 자바 완료 신호(84)를 제공하는 전력 관리 시스템.
  11. 제 8 항에 있어서,
    상기 전력 생성 회로는,
    상기 호스트 프로세서(14)에 결합된 프로그램가능 전압 및 주파수 생성기의 제 1 세트(62)와,
    상기 자바 프로세서(16)에 결합된 프로그램가능 전압 및 주파수 생성기의 제 2 세트(78)를 포함하고,
    상기 프로그램가능 전압 및 주파수 생성기의 제 1 세트(62)는 상기 호스트 프로세서(14)에 대한 전압 및 주파수를 조정할 수 있고, 상기 프로그램가능 전압 및 주파수 생성기의 제 2 세트(78)는 상기 자바 프로세서(16)에 대해 전압 및 주파수를 조정할 수 있는
    전력 관리 시스템.
  12. 제 11 항에 있어서,
    상기 프로그램가능 전압 및 주파수 생성기의 제 1 세트(62)에 결합되고 전압 및 주파수 증분 변화를 상기 전압 및 주파수 생성기의 제 1 세트(62)에 제공할 수 있는 호스트 램프 회로(64)와,
    상기 프로그램가능 전압 및 주파수 생성기의 제 2 세트(78)에 결합되고 전압 및 주파수 증분 변화를 상기 전압 및 주파수 생성기의 제 2 세트(78)에 제공할 수있는 자바 램프 회로(80)를 더 포함하고,
    상기 호스트 램프 회로(64) 및 상기 자바 램프 회로(80)는 상기 호스트 프로세서(14) 및 상기 자바 프로세서(16)에 제공된 전압 및 주파수 변화를 제동하는 전력 관리 시스템.
  13. 제 12 항에 있어서,
    상기 호스트 램프 회로(64) 및 상기 자바 램프 회로(80)는 오프셋 테이블을 사용함으로써 현재 전압 및 주파수에 대한 변화의 양을 결정하는
    전력 관리 시스템.
  14. 제 13 항에 있어서,
    정규 동작 전압 및 주파수 값(58)과 저 전력 전압 및 주파수 값(60)이 상기 호스트 프로세서(14)를 위해 저장되고, 정규 동작 전압 및 주파수 값(72)과 저 전력 전압 및 주파수 값(74)이 상기 자바 프로세서를 위해 저장되는
    전력 관리 시스템.
  15. 제 14 항에 있어서,
    상기 호스트 램프 회로(64)는 상기 호스트 프로세서(14)에 대해 상기 정규 동작 전압 및 주파수 값(58)과 상기 저 전력 전압 및 주파수 값(60)에 의해 규정된 값의 범위 내의 전압 증분 및 주파수 증분 변화를 제공하고,
    상기 자바 램프 회로(80)는 상기 자바 프로세서(16)에 대해 상기 정규 동작 전압 및 주파수 값(72)과 상기 저 전력 전압 및 주파수 값(74)에 의해 규정된 값의 범위 내의 증가 전압 및 주파수 증분 변화를 제공하는
    전력 관리 시스템.
  16. 프로세서에 제공된 변화를 제동하는 램프 회로 방법에 있어서,
    (a) 목표 전압 값(104)을 얻는 단계와,
    (b) 차이값을 얻기 위해 상기 목표 전압 값과 현재 전압 값(106)을 비교하는 단계와,
    (c) 상기 차이값이 사전결정된 임계값 밖에 존재할 때, 상기 현재 값을 조정하는 단계와,
    상기 차이값이 상기 사전결정된 임계값 내에 존재할 때까지 상기 동작 (a)-(c)를 반복하는 단계의 동작을 포함하는
    램프 회로 방법.
  17. 제 16 항에 있어서,
    상기 차이값을 사용하여 오프셋 테이블(108)로부터 오프셋 값(110)을 결정하는 단계와,
    상기 오프셋 값(110)에 의해 규정된 양만큼 현재 전류 값(106)을 조정하는 단계의 동작을 더 포함하는
    램프 회로 방법.
  18. 제 17 항에 있어서,
    프로세서에 대한 현재 동작 조건을 결정하는 프로그램가능 전력 생성 회로에 상기 현재 값(106)을 제공하는 단계의 동작을 더 포함하는 램프 회로 방법.
  19. 제 16 항에 있어서,
    상기 목표 값(104) 및 상기 현재 값(106)은 전압 값인
    램프 회로 방법.
  20. 제 16 항에 있어서,
    상기 목표 값(104) 및 상기 현재 값(106)은 주파수 값인
    램프 회로 방법.
KR1020027005141A 2000-08-23 2001-08-17 전력 관리 방법, 전력 관리 시스템 및 램프 회로 방법 KR20020085883A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US09/645,468 US6766460B1 (en) 2000-08-23 2000-08-23 System and method for power management in a Java accelerator environment
US09/645,468 2000-08-23
PCT/EP2001/009509 WO2002017064A2 (en) 2000-08-23 2001-08-17 System and method for power management in a java accelerator environment

Publications (1)

Publication Number Publication Date
KR20020085883A true KR20020085883A (ko) 2002-11-16

Family

ID=24589147

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020027005141A KR20020085883A (ko) 2000-08-23 2001-08-17 전력 관리 방법, 전력 관리 시스템 및 램프 회로 방법

Country Status (7)

Country Link
US (1) US6766460B1 (ko)
EP (1) EP1368729B1 (ko)
JP (1) JP2004507814A (ko)
KR (1) KR20020085883A (ko)
CN (1) CN100437433C (ko)
AT (1) ATE528708T1 (ko)
WO (1) WO2002017064A2 (ko)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1387258A3 (en) * 2002-07-31 2008-01-02 Texas Instruments Incorporated Processor-processor synchronization
TW583530B (en) * 2002-08-20 2004-04-11 Via Tech Inc Method of using N division operation to switch CPU work voltage
US8086884B2 (en) * 2002-12-16 2011-12-27 Hewlett-Packard Development Company, L.P. System and method for implementing an integrated circuit having dynamically variable power limit
US7444524B2 (en) * 2002-12-30 2008-10-28 Intel Corporation Dynamic voltage transitions
US7203857B2 (en) * 2003-03-28 2007-04-10 Elliptic Semiconductor Inc. On-demand clock switching
US7281149B2 (en) * 2004-02-24 2007-10-09 Hewlett-Packard Development Company, L.P. Systems and methods for transitioning a CPU from idle to active
US7409670B1 (en) * 2004-04-01 2008-08-05 Altera Corporation Scheduling logic on a programmable device implemented using a high-level language
US7370311B1 (en) 2004-04-01 2008-05-06 Altera Corporation Generating components on a programmable device using a high-level language
US7536567B2 (en) * 2004-12-10 2009-05-19 Hewlett-Packard Development Company, L.P. BIOS-based systems and methods of processor power management
US7502948B2 (en) * 2004-12-30 2009-03-10 Intel Corporation Method, system, and apparatus for selecting a maximum operation point based on number of active cores and performance level of each of the active cores
US7346863B1 (en) 2005-09-28 2008-03-18 Altera Corporation Hardware acceleration of high-level language code sequences on programmable devices
US7752480B2 (en) * 2006-08-18 2010-07-06 International Business Machines Corporation System and method for switching digital circuit clock net driver without losing clock pulses
US8086977B2 (en) * 2006-08-18 2011-12-27 International Business Machines Corporation Design Structure for switching digital circuit clock net driver without losing clock pulses
US7962775B1 (en) * 2007-01-10 2011-06-14 Marvell International Ltd. Methods and apparatus for power mode control for PDA with separate communications and applications processors
JP5084372B2 (ja) 2007-07-03 2012-11-28 キヤノン株式会社 データ処理装置およびデータ処理装置の制御方法
GB2452778A (en) * 2007-09-17 2009-03-18 Toshiba Res Europ Ltd Linking dynamic voltage scaling in master and slave modules
US8949635B2 (en) * 2007-09-28 2015-02-03 Intel Corporation Integrated circuit performance improvement across a range of operating conditions and physical constraints
US7992015B2 (en) * 2008-02-05 2011-08-02 Dell Products L.P. Processor performance state optimization
KR101832821B1 (ko) * 2012-09-10 2018-02-27 삼성전자주식회사 동적 전압 주파수 스케일링 방법, 어플리케이션 프로세서 및 이를 구비하는 모바일 기기
US11073894B2 (en) * 2019-05-24 2021-07-27 Qualcomm Incorporated System power management for peripheral component interconnect express (PCIE)-based devices

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US565679A (en) 1896-08-11 William glanzer
US670496A (en) 1900-10-20 1901-03-26 Eureka Shoe Company Hand tacking tool.
US4171539A (en) * 1977-12-19 1979-10-16 The Bendix Corporation Power strobed digital computer system
US4203153A (en) * 1978-04-12 1980-05-13 Diebold, Incorporated Circuit for reducing power consumption in battery operated microprocessor based systems
US5497497A (en) * 1989-11-03 1996-03-05 Compaq Computer Corp. Method and apparatus for resetting multiple processors using a common ROM
US5251320A (en) * 1990-05-25 1993-10-05 International Business Machines Corporation Power controller for permitting multiple processors to power up shared input/output devices and inhibit power down until all processors have ceased service with the I/O devices
US5452401A (en) * 1992-03-31 1995-09-19 Seiko Epson Corporation Selective power-down for high performance CPU/system
US5392437A (en) * 1992-11-06 1995-02-21 Intel Corporation Method and apparatus for independently stopping and restarting functional units
US6026484A (en) 1993-11-30 2000-02-15 Texas Instruments Incorporated Data processing apparatus, system and method for if, then, else operation using write priority
US6116768A (en) 1993-11-30 2000-09-12 Texas Instruments Incorporated Three input arithmetic logic unit with barrel rotator
US5517649A (en) * 1994-04-19 1996-05-14 Maxtor Corporation Adaptive power management for hard disk drives
US5530932A (en) * 1994-12-23 1996-06-25 Intel Corporation Cache coherent multiprocessing computer system with reduced power operating features
US5996083A (en) * 1995-08-11 1999-11-30 Hewlett-Packard Company Microprocessor having software controllable power consumption
US5983340A (en) 1995-12-07 1999-11-09 Conexant Systems, Inc. Microprocessor system with flexible instruction controlled by prior instruction
US6026485A (en) 1996-01-24 2000-02-15 Sun Microsystems, Inc. Instruction folding for a stack-based machine
US5991863A (en) 1996-08-30 1999-11-23 Texas Instruments Incorporated Single carry/borrow propagate adder/decrementer for generating register stack addresses in a microprocessor
US5953741A (en) 1996-11-27 1999-09-14 Vlsi Technology, Inc. Stack cache for stack-based processor and method thereof
US6009505A (en) 1996-12-02 1999-12-28 Compaq Computer Corp. System and method for routing one operand to arithmetic logic units from fixed register slots and another operand from any register slot
US6330659B1 (en) * 1997-11-06 2001-12-11 Iready Corporation Hardware accelerator for an object-oriented programming language
DE19749068B4 (de) * 1997-11-06 2005-03-10 Bosch Gmbh Robert Verfahren und Vorrichtung zur Überwachung eines Rechnersystems bestehend aus wenigstens zwei Prozessoren
US6035408A (en) * 1998-01-06 2000-03-07 Magnex Corp. Portable computer with dual switchable processors for selectable power consumption
JP3857052B2 (ja) 1998-07-02 2006-12-13 株式会社ルネサステクノロジ マイクロプロセッサ
US6240521B1 (en) * 1998-09-10 2001-05-29 International Business Machines Corp. Sleep mode transition between processors sharing an instruction set and an address space
JP2000194668A (ja) * 1998-12-25 2000-07-14 Toshiba Corp 計算機システム及び同システムに適用される中間コ―ド実行装置並びに中間コ―ド実行方法
US6341354B1 (en) * 1999-04-16 2002-01-22 Smartpower Corporation Energy-conserving computer accessible remotely and instantaneously by providing keep-alive power to memory
US6425086B1 (en) * 1999-04-30 2002-07-23 Intel Corporation Method and apparatus for dynamic power control of a low power processor
US6507946B2 (en) * 1999-06-11 2003-01-14 International Business Machines Corporation Process and system for Java virtual method invocation

Also Published As

Publication number Publication date
EP1368729B1 (en) 2011-10-12
US6766460B1 (en) 2004-07-20
WO2002017064A3 (en) 2003-10-09
CN100437433C (zh) 2008-11-26
CN1478224A (zh) 2004-02-25
WO2002017064A2 (en) 2002-02-28
EP1368729A2 (en) 2003-12-10
ATE528708T1 (de) 2011-10-15
JP2004507814A (ja) 2004-03-11

Similar Documents

Publication Publication Date Title
KR20020085883A (ko) 전력 관리 방법, 전력 관리 시스템 및 램프 회로 방법
US7237128B2 (en) Method and apparatus to dynamically change an operating frequency and operating voltage of an electronic device
JP3520611B2 (ja) プロセッサの制御方法
US6501999B1 (en) Multi-processor mobile computer system having one processor integrated with a chipset
US6795781B2 (en) Method and apparatus for compiler assisted power management
US20020095609A1 (en) Multiprocessor apparatus
US20060026312A1 (en) Emulating a direct memory access controller
US7930443B1 (en) Router having routing engine software instance and interface controller software instance on a single processor
US8341436B2 (en) Method and system for power-state transition controllers
JP2000507015A (ja) リアルタイムプログラム言語アクセラレータ
WO2006036375A1 (en) Operating system transfer and launch without performing post
TW201314433A (zh) 伺服器系統及其電源管理方法
JPH07311740A (ja) コンピュータ
US7856550B2 (en) System and method for hardware manipulation in a computing device
EP0562885B1 (en) Reduction of power consumption in microprocessor devices
US8127161B2 (en) Data processing apparatus
JP2002366351A (ja) スーパースカラ・プロセッサ
EP1372065B1 (en) System large scale integrated circuit (LSI), method of designing the same, and program therefor
JPS60218152A (ja) マイクロ・プロセツサ
US7444495B1 (en) Processor and programmable logic computing arrangement
CN110121688B (zh) 判断加载程序的方法以及电子系统
JP2004199630A (ja) データ処理装置
JP2002207530A (ja) クロック供給回路
Nacul et al. Adaptive Online Cache Reconfiguration for Low Power Systems
JPH0546273A (ja) プロセツサ

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid