KR101621776B1 - 멀티코어 프로세서에서의 서비스 품질 타깃 - Google Patents

멀티코어 프로세서에서의 서비스 품질 타깃 Download PDF

Info

Publication number
KR101621776B1
KR101621776B1 KR1020147024579A KR20147024579A KR101621776B1 KR 101621776 B1 KR101621776 B1 KR 101621776B1 KR 1020147024579 A KR1020147024579 A KR 1020147024579A KR 20147024579 A KR20147024579 A KR 20147024579A KR 101621776 B1 KR101621776 B1 KR 101621776B1
Authority
KR
South Korea
Prior art keywords
frequency
processor core
operate
resource
point
Prior art date
Application number
KR1020147024579A
Other languages
English (en)
Other versions
KR20140119806A (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 KR20140119806A publication Critical patent/KR20140119806A/ko
Application granted granted Critical
Publication of KR101621776B1 publication Critical patent/KR101621776B1/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
    • G06F1/3215Monitoring of peripheral devices
    • G06F1/3225Monitoring of peripheral devices of memory devices
    • 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/324Power saving characterised by the action undertaken by lowering clock frequency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/501Performance criteria
    • 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
    • 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

서비스 품질 타깃을 달성하기 위하여 멀티코어 프로세서 상의 프로세서 코어를 적응시키기 위한 기술이 여기에서 설명된다. 일부 예시적인 기술은 컴퓨터 상의 리소스의 타깃 레벨을 식별할 수 있다. 기술은 프로세서 코어가 제1 주파수 및 제2 주파수에서 동작하는 경우 리소스의 제1 이용 값 및 제2 이용 값을 식별할 수 있다. 기술은 제1 지점과 제2 지점 사이의 선형 보간을 생성할 수 있다. 제1 지점의 좌표는 제1 주파수 및 제1 이용 값을 포함할 수 있다. 제2 지점의 좌표는 제2 주파수 및 제2 이용 값을 포함할 수 있다. 기술은, 선형 보간과 타깃 레벨 사이의 교차 지점 내의 좌표 중 하나로 구체화될 수 있는, 제3 주파수에서 동작하도록 프로세서 코어를 설정할 수 있다.

Description

멀티코어 프로세서에서의 서비스 품질 타깃{QUALITY OF SERVICE TARGETS IN MULTICORE PROCESSORS}
여기에서 달리 지적되지 않는다면, 본 섹션에서 설명되는 내용은 본 출원에서 청구범위에 대한 선행 기술이 아니며, 본 섹션에 포함함으로써 선행 기술로 인정되지 않는다.
일부 유비쿼터스 컴퓨팅["유비컴(ubicomp)"] 장치는 배터리를 에너지원으로 이용한다. 유비컴 장치는 더 널리 보급되고 있고, 유비컴 장치에서의 계산에 관한 전력에 대한 수요가 증가할 수 있으며, 이에 의해 또한 에너지 소비가 증가 한다. 계산에 관한 전력에 대해 증가된 수요로부터 발생하는 대응하는 에너지 소비는 배터리에서의 에너지 용량의 성장을 능가할 것으로 예상된다. 그 결과로, 효율적인 에너지 이용은, 증가하는 에너지 수요를 가지나 에너지 제약 하에서 동작하는 유비컴 장치 및 다른 장치를 위해 더 중요하질 수 있다.
본 개시는 서비스 품질 타깃(quality of service target)을 달성하도록 컴퓨터의 멀티코어 프로세서 상에서 프로세서 코어를 적응시키기 위한 기법을 일반적으로 기술한다. 일부 예시적인 방법은 컴퓨터 상에서 리소스의 타깃 레벨을 식별하는 단계를 포함할 수 있다. 예시적인 방법은 프로세서 코어가 제1 주파수에서 동작하도록 구성되는 경우 리소스의 제1 이용 값(utilization value)을 식별하는 단계를 포함할 수 있다. 예시적인 방법은 프로세서 코어가 제2 주파수에서 동작하도록 구성되는 경우 리소스의 제2 이용 값을 식별하는 단계를 포함할 수 있다. 예시적인 방법은 제1 지점 및 제2 지점 사이의 선형 보간(linear interpolation)을 생성하는 단계를 포함할 수 있다. 제1 지점은 제1 이용 값 및 제1 주파수를 포함하는 제1 좌표를 가질 수 있다. 제2 지점은 제2 이용 값 및 제2 주파수를 포함하는 제2 좌표를 가질 수 있다. 예시적인 방법은 타깃 레벨 및 선형 보간 사이의 어딘가에 교차 지점(intersection point)을 식별하는 단계를 또한 포함할 수 있다. 교차 지점은 타깃 레벨 및 제3 주파수를 포함하는 교차 좌표를 가질 수 있다. 예시적인 방법은 교차 지점에서 식별된 제3 주파수에서 동작하도록 프로세서 코어를 설정하는 단계를 더 포함할 수 있다.
일부 다른 예시적인 방법에서 컴퓨터 상에서 제1 리소스의 제1 타깃 레벨을 식별하는 단계를 포함할 수 있다. 예시적인 방법은 컴퓨터 상에서 제2 리소스의 제2 타깃 레벨을 식별하는 단계를 포함할 수 있다. 예시적인 방법은 프로세서 코어가 제1 주파수에서 동작하도록 구성되는 경우 제1 리소스의 제1 이용 값을 식별하는 단계를 포함할 수 있다. 예시적인 방법은 프로세서 코어가 제2 주파수에서 동작하도록 구성되는 경우 제1 리소스의 제2 이용 값을 식별하는 단계를 포함할 수 있다. 예시적인 방법은 프로세서 코어가 제1 주파수에서 동작하도록 구성되는 경우 제2 리소스의 제3 이용 값을 식별하는 단계를 포함할 수 있다. 예시적인 방법은 프로세서 코어가 제2 주파수에서 동작하도록 구성되는 경우 제2 리소스의 제4 이용 값을 식별하는 단계를 포함할 수 있다.
예시적인 방법은 제1 지점과 제2 지점 사이의 제1 선형 보간을 생성하는 단계를 포함할 수 있다. 제1 지점은 제1 이용 값 및 제1 주파수를 포함하는 제1 좌표를 가질 수 있다. 제2 지점은 제2 이용 값 및 제2 주파수를 포함하는 제2 좌표를 가질 수 있다. 예시적인 방법은 제1 타깃 레벨 및 제1 선형 보간 사이의 제1 교차 지점을 식별하는 단계를 포함할 수 있다. 제1 교차 지점은 제1 타깃 레벨 및 제1 후보 주파수를 포함하는 제1 교차 좌표를 가질 수 있다. 예시적인 방법은 제3 지점과 제4 지점 사이의 제2 선형 보간을 생성하는 단계를 포함할 수 있다. 제3 지점은 제3 이용 값 및 제1 주파수를 포함하는 제3 좌표를 가질 수 있다. 제4 지점은 제4 이용 값 및 제2 주파수를 포함하는 제4 좌표를 포함할 수 있다.
예시적인 방법은 제2 타깃 레벨 및 제2 선형 보간 사이의 제2 교차 지점을 식별하는 단계를 포함할 수 있다. 제2 교차 지점은 제2 타깃 레벨 및 제2 후보 주파수를 포함하는 제2 교차 지점을 가질 수 있다. 예시적인 방법은 제1 후보 주파수 및 제2 후보 주파수 사이의 최소값을 선택함으로써 제3 주파수를 결정하는 단계를 또한 포함할 수 있다. 예시적인 방법은 제3 주파수 결정시 제3 주파수에서 동작하도록 프로세서 코어를 설정하는 단계를 더 포함할 수 있다.
본 개시는 일반적으로 일부 멀티코어 프로세서를 기술한다. 멀티코어 프로세서는 프로세서 코어 및 다른 프로세서 코어를 포함하는 복수의 프로세서 코어, 복수의 프로세서 코어에 의해 공유되는 캐시 메모리, 복수의 프로세서 코어에 결합된 오프칩 메모리(off-chip memory), 및 복수의 프로세서 코어에 결합된 주파수 설정 모듈을 각각 포함할 수 있다. 일부 예시적인 주파수 설정 모듈은 제1 타깃 레벨을 식별할 수 있다. 제1 타깃 레벨은 오프칩 메모리와 멀티코어 프로세서를 연결하는 오프칩 메모리 대역폭과 연관될 수 있다. 예시적인 주파수 설정 모듈은 제2 타깃 레벨을 식별할 수 있다. 제2 타깃 레벨은 캐시 메모리의 이용과 연관될 수 있다.
예시적인 주파수 설정 모듈은 오프칩 메모리 대역폭의 제1 이용 값을 식별할 수 있다. 제1 이용 값은 프로세서 코어가 제1 주파수에서 동작하도록 구성되는 경우 이용되는 오프칩 메모리 대역폭의 제1 양과 연관될 수 있다. 예시적인 주파수 설정 모듈은 오프칩 메모리 대역폭의 제2 이용 값을 식별할 수 있다. 제2 이용 값은 프로세서 코어가 제2 주파수에서 동작하도록 구성되는 경우 이용되는 오프칩 메모리 대역폭의 제2 양과 연관될 수 있다. 예시적인 주파수 설정 모듈은 캐시 메모리의 제3 이용 값을 식별할 수 있다. 제3 이용 값은 프로세서 코어가 제1 주파수에서 동작하도록 구성되는 경우 이용되는 캐시 메모리의 제1 양과 연관될 수 있다. 예시적인 주파수 설정 모듈은 캐시 메모리의 제4 이용 값을 식별할 수 있다. 제4 이용 값은 프로세서 코어가 제2 주파수에서 동작하도록 구성되는 경우 이용되는 캐시 메모리의 제2 양과 연관될 수 있다.
예시적인 주파수 설정 모듈은 제1 지점과 제2 지점 사이의 제1 선형 보간을 생성할 수 있다. 제1 지점은 제1 이용 값 및 제1 주파수를 포함하는 제1 좌표를 가질 수 있다. 제2 지점은 제2 이용 값 및 제2 주파수를 포함하는 제2 좌표를 가질 수 있다. 예시적인 주파수 설정 모듈은 제1 타깃 레벨 및 제1 선형 보간 사이의 제1 교차 지점을 식별할 수 있다. 제1 교차 지점은 제1 타깃 레벨 및 제1 후보 주파수를 포함하는 제1 교차 좌표를 가질 수 있다. 예시적인 주파수 설정 모듈은 제3 지점과 제4 지점 사이의 제2 선형 보간을 생성할 수 있다. 제3 지점은 제3 이용 값 및 제1 주파수를 포함하는 제3 좌표를 가질 수 있다. 제4 지점은 제4 이용 값 및 제2 주파수를 포함하는 제4 좌표를 가질 수 있다. 예시적인 주파수 설정 모듈은 제2 타깃 레벨 및 제2 선형 보간 사이의 제2 교차 지점을 식별할 수 있다. 제2 교차 지점은 제2 타깃 레벨 및 제2 후보 주파수를 포함하는 제2 교차 좌표를 가질 수 있다. 예시적인 주파수 설정 모듈은 제1 후보 주파수 및 제2 후보 주파수 사이의 최소값을 선택함으로써 제3 주파수를 또한 결정할 수 있다. 예시적인 주파수 설정 모듈은 제3 주파수가 결정되는 경우 제3 주파수에서 동작하도록 프로세서 코어를 더 설정할 수 있다.
이상의 요약은 단순히 예시적인 것으로서 어떠한 방식으로든 제한적으로 의도된 것이 아니다. 이하의 상세한 설명과 도면을 참조함으로써, 상기 설명된 예시적인 양태, 실시예, 그리고 특징에 더하여, 추가적인 양태, 실시예, 그리고 특징 또한 명확해질 것이다.
본 개시의 전술한 특징 및 다른 특징은 첨부 도면과 함께, 다음의 설명과 첨부된 청구범위로부터 더욱 충분히 명백해질 것이다. 이들 도면은 본 개시에 따른 몇몇 실시예를 묘사할 뿐이고, 따라서, 범위를 제한하는 것으로 고려되어서는 안될 것임을 이해하면서, 본 개시는 첨부 도면의 사용을 통해 더 구체적이고 상세하게 설명될 것이다.
도 1은 단계적 검색(step-wise search) 또는 빠른 검색(quick search) 기법을 구현하도록 적응되는 컴퓨팅 시스템을 도시하는 기능적인 블록도이고,
도 2는 단계적 검색의 예시적인 구현예을 도시하는 선 도표이고,
도 3-5는 빠른 검색 기법의 예시적인 구현예를 도시하는 선 도표이고,
도 6은 빠른 검색 기법의 구현예를 수행하도록 적응되는 예시적인 프로세스를 도시한 흐름도이고,
도 7은 빠른 검색 기법의 구현예를 수행하도록 적응되는 예시적인 프로세스를 도시한 흐름도이고,
도 8-9는 빠른 검색 기법의 구현예를 수행하도록 적응되는 예시적인 프로세스를 도시하는 흐름도이고,
도 10은 예시적인 컴퓨팅 시스템을 위한 컴퓨터 하드웨어 구조를 도시하는 블록도이다.
이하의 상세한 설명에서 본 개시의 일부를 이루는 첨부된 도면이 참조된다. 문맥에서 달리 지시하고 있지 않은 한, 통상적으로, 도면에서 유사한 부호는 유사한 컴포넌트를 나타낸다. 상세한 설명, 도면, 그리고 청구범위에 설명되는 예시적인 실시예는 제한적으로 여겨지지 않는다. 본 개시에서 제시되는 대상의 범위 또는 사상에서 벗어나지 않으면서도 다른 실시예가 이용되거나, 다른 변경이 이루어질 수 있다. 여기에서 일반적으로 설명되고, 도면에 도시되는 본 개시의 양태는 다양한 다른 구성으로 배열, 대체, 조합, 분리 및 설계될 수 있음과 이 모두가 여기에서 명시적으로 고려됨이 기꺼이 이해될 것이다.
멀티코어 칩의 소유주 또는 운영자는 상이한 사용자 또는 가상 머신에 대해 상이한 프로세서 코어를 전용할 수 있다. 이러한 방식에서, 각각의 사용자는 자신의 전용 프로세서 코어 상에서 자신의 애플리케이션을 실행할 수 있다. 소유주는 각각의 사용자가 이용할 그러한 프로세서 코어만을 전용할 수 있다. 이러한 방식에서 프로세싱 전력을 복수의 사용자에게 나눔으로써, 소유주는 멀티코어 칩의 이용을 증가시킬 수 있다. 각각의 사용자가 자신의 전용 프로세서 코어를 가질 수 있음에도, 사용자는 멀티코어 칩의 특정 컴퓨팅 리소스(여기에서 공유된 컴퓨팅 리소스로 지칭됨)를 공유할 수 있다. 공유된 컴퓨팅 리소스의 일부 예시는 전력(예컨대, 멀티코어 칩 내의 코어는 외부 전력 공급에 의해 제공되는 전력의 제한된 양을 공유할 수 있음), 캐시 메모리 용량, 메인 메모리 용량, 및/또는 칩오프 메모리 대역폭을 포함할 수 있다.
일부 구현예에서, 클라우드 컴퓨팅 서비스 제공자는 서버 컴퓨터의 공유된 컴퓨팅 리소스를 복수의 고객에게 전달할 수 있다. 상이한 고객은 각각의 고객과 연관된 서비스 레벨 협정(service level agreement)("SLA")에 따라 공유된 컴퓨팅 리소스의 상이한 할당을 각각 가질 수 있다. 예컨대, 한 명의 고객은 프리미엄을 구입하지 않은 다른 고객보다 더 높은 서비스 품질을 가지도록 서비스 제공자에게 프리미엄을 구입할 수 있다. 각각의 고객은 서버 컴퓨터 상에서 다양한 애플리케이션을 실행하도록 공유된 컴퓨팅 리소스의 자신의 각각의 할당을 이용할 수 있다. 일부 다른 구현예에서, 기업은 서버 컴퓨터의 공유된 컴퓨팅 리소스를 기업 또는 다른 사용자의 복수의 피고용자에게 전달할 수 있다. 서버 컴퓨터는 하나 이상의 멀티코어 칩을 포함할 수 있다.
서버 컴퓨터가 할당을 시행하지 않으면, 낮은 할당을 가지는 제1 고객에 의해 작동되는 애플리케이션이 더 높은 할당을 가지는 제2 고객에 의해 작동되는 다른 애플리케이션보다 공유된 컴퓨팅 리소스에 대하여 우위를 차지할 수 있다. 그러한 우위는 제2 고객의 SLA를 위반할 수 있다. 할당을 시행하기 위하여, 소유주는 캐시 메모리의 일부 양 및 각각의 고객으로의 오프칩 메모리 대역폭의 일부 양을 포함하여, 공유된 컴퓨팅 리소스를 분할할 수 있다. 그러나, 캐시 메모리 및 오프칩 메모리 대역폭 사이의 이상적인 할당은 불확실할 수 있다.
예컨대, 프로세서 코어는, 일부 경우에서, 프로세서의 최대 전압 및 주파수 레벨인, 디폴트 전압 및 주파수 레벨에서 동작하도록 구성될 수 있다. 최대 전압 및 주파수 레벨에서 동작하는 프로세서 코어는 높은 속도(high rate)에서 메모리 요청을 생성할 수 있다. 분할된 캐시 메모리 및/또는 분할된 오프칩 메모리 대역폭이 메모리 요청의 주어진 높은 속도에서 불충분한 경우 병목이 발생할 수 있다. 분할된 캐시 메모리가 불충분하면, 분할된 캐시 메모리는 과도한 수의 캐시 미스(miss) 및/또는 높은 오프칩 대역폭 이용률을 발생시킬 수 있다. 분할된 오프칩 메모리 대역폭이 불충분하면, 프로세서 코어는 큐잉 지연(queuing delay)으로 인해 메인 메모리로부터 요청된 데이터를 가져오는 동안 상당한 지연을 발생시킬 수 있다. 프로세서 코어가 요청된 데이터를 기다리느라 중지된 동안, 프로세서 코어는 최대 전압 및 주파수 레벨에서 동작하는 동안 상당한 에너지를 낭비할 수 있다.
그러므로, 분할된 캐시 메모리 및 분할된 오프칩 메모리 대역폭은 프로세서 코어가 명령어를 실행할 수 있는 속도를 임의대로 제한하는 쿼터(quota)를 효과적으로 부과할 수 있다. 즉, 프로세서 코어가 더 높은 속도에서 동작하도록 구성될 수 있더라도, 프로세서는 분할된 캐시 메모리 및 분할된 오프칩 메모리 대역폭만큼만 빠르게 동작할 수 있다.
본 개시는, 그 중에서도, 일반적으로 공유된 컴퓨팅 리소스의 분할에 의해 부과되는 쿼터에 매칭되는 전압 및 주파수 레벨에서 프로세서 코어가 동작하도록 프로세서 코어의 주파수 레벨 및 전압을 수정하도록 적응되는 멀티코어 칩에 관한 것이다. 멀티코어 칩은 설정 모듈에 결합될 수 있다. 설정 모듈은 프로세서 코어의 전압 및 주파수 레벨을 적응시키도록 구성될 수 있다. 예컨대, 최대 전압 및 주파수 레벨에서 동작하는 프로세서 코어는 분할된 캐시 메모리에서의 과도한 수의 캐시 미스 및 분할된 오프칩 대역폭의 과도한 이용을 일으킬 수 있다. 더 최적화된 설정으로 전압 및 주파수 레벨을 낮춤으로써, 프로세서 코어는 더 적은 캐시 미스 및 분할된 오프칩 대역폭의 더 낮은 이용을 자연스럽게 일으킬 수 있다. 더 낮은 전압 및 주파수 레벨이 이용을 쿼터 아래로 낮추면, 분할 또한 제거될 수 있다. 프로세서 코어는 더 낮은 전압 및 주파수 레벨에서 작동함으로써 상당한 에너지를 또한 절감할 수 있다.
도 1은 여기에서 나타난 적어도 일부 실시예에 따라 배열된 단계적 검색 및/또는 빠른 검색 기법을 구현하도록 적응되는 컴퓨터 시스템(100)를 도시하는 기능적인 블로도이다. 컴퓨팅 시스템(100)은 오프칩 메모리(104) 및 서비스 품질("QOS") 모듈(106)에 결합된 멀티코어 프로세서(102)를 포함할 수 있다. 멀티코어 프로세서(102)는 제1 프로세서 코어(108A) 및 제2 프로세서 코어(108B)를 포함할 수 있다. 프로세서 코어(108A-108B)는 프로세서 코어(108)로 총괄적으로 지칭될 수 있다. 프로세서 코어(108)는 캐시 메모리(110)를 공유할 수 있다. 캐시 컨트롤러(112)는 프로세서 코어(108)에 의한 캐시 메모리(110)로의 액세스를 관리하도록 구성될 수 있다. 프로세서 코어(108)는 컴퓨팅 시스템(100)의 메인 메모리로 또한 지칭될 수 있는 오프칩 메모리(104)를 또한 공유할 수 있다. 메모리 컨트롤러(114)는 프로세서 코어(108)에 의한 오프칩 메모리(104)로의 액세스를 관리하도록 구성될 수 있다. 메모리 컨트롤러(114)는 멀티코어 프로세서(102) 내부에 또는 외부에 위치될 수 있다.
QOS 모듈(106)은 오프칩 메모리(104)로 액세스하기 위한 대역폭 또는 캐시 메모리(110)에서의 용량과 같은, 공유된 컴퓨팅 리소스의 할당을 관리하도록 구성될 수 있다. 예컨대, 제1 사용자는 제1 프로세서 코어(108A)가 할당될 수 있고, 제2 사용자는 제2 프로세서 코어(108B)가 할당될 수 있다. 제1 사용자와 연관된 제1 SLA는, 제1 사용자에게 캐시 메모리(110)의 제1 타깃 용량 및 오프칩 메모리(104)로 액세스하기 위한 제1 타깃 대역폭을 할당하는 것으로 명기할 수 있다. 제2 사용자와 연관된 제2 SLA는, 제2 사용자에게 캐시 메모리(110)의 제2 타깃 용량 및 오프칩 메모리(104)로 액세스하기 위한 제2 타깃 대역폭을 할당하는 것으로 명기할 수 있다.
여기에서, QOS 모듈(106)은, 제1 프로세서 코어(108A)가 캐시 메모리(110)에 액세스하는 경우 제1 SLA에 따라 제1 타깃 용량보다 더 많은 용량을 이용하지 않는다는 것을 보장하도록 캐시 컨트롤러(112)와 통신하도록 구성될 수 있다. QOS 모듈(106)은, 제1 프로세서 코어(108A)가 오프칩 메모리(104)에 액세스하는 경우 제1 SLA에 따라 제1 타깃 대역폭보다 더 많은 대역폭을 이용하지 않는다는 것을 보장하도록 메모리 컨트롤러(114)와 통신하도록 또한 구성될 수 있다. 유사하게, QOS 모듈(106)은, 제2 프로세서 코어(108B)가 캐시 메모리(110)에 액세스하는 경우 제2 SLA에 따라 제2 타깃 용량보다 더 많은 용량을 이용하지 않는다는 것을 보장하도록 캐시 컨트롤러(112)와 통신하도록 구성될 수 있다. QOS 모듈(106)은, 제2 프로세서 코어(108B)가 오프칩 메모리(104)에 액세스하는 경우 제2 SLA에 따라 제2 타깃 대역폭보다 더 많은 대역폭을 이용하지 않는다는 것을 보장하도록 메모리 컨트롤러(114)와 통신하도록 또한 구성될 수 있다.
프로세서 코어(108) 각각은 별개의 디폴트 전압 및 주파수 레벨에서 동작하도록 구성될 수 있다. 일부 경우에서, 디폴트 전압 및 주파수 레벨은 프로세서 코어(108) 각각이 동작할 수 있는 최대 전압 및 주파수 레벨일 수 있다. 일부 실시예에 따라, 프로세서 코어(108) 중 임의의 하나는 복수의 전압 상태(예컨대, 상태 1(one)부터 상태 20(twenty)) 중 하나에서 동작하도록 설계될 수 있다. 각각의 전압 상태는 프로세서 코어(108) 각각이 동작하도록 구성될 수 있는 단일 주파수 또는 주파수 범위를 포함할 수 있다. 주파수는 전압 상태 사이에서 중첩할 수 있거나 그러지 않을 수 있다. 예컨대, 제1 프로세서 코어(108A)는 제1 프로세서 코어(108A)이 동작할 수 있는 최대 전압 상태인, 전압 상태 20에서, 자동적으로(by default) 동작하도록 구성될 수 있다. 특히, 제1 프로세서 코어(108A)는 전압 상태 20 내부의 주파수 범위 내부의 최대 주파수에서 동작하도록 구성될 수 있다. 제1 프로세서 코어(108A)는 전압 상태 20에서 동작하는 동안 이러한 주파수 범위 내부의 더 낮은 주파수에서 동작하도록 구성될 수 있다. 그러나, 이러한 주파수의 범위 아래의 더 낮은 주파수에서도 동작하기 위하여, 제1 프로세서 코어(108A)는 더 낮은 주파수도 지원하는 다른 전압 상태로 설정될 수 있다. 간편성의 목적을 위하여, 여기에서 기술된 일부 예시는 각각의 전압 상태와 연관되는 단일 주파수를 지칭할 수 있으나, 각각의 전압 상태는 다른 구현예에서 주파수 범위와 연관될 수 있다.
멀티코어 프로세서(102)는 설정 모듈(116)을 더 포함할 수 있다. 설정 모듈(116)은 멀티코어 프로세서(102)의 일부일 수 있거나 멀티코어 프로세서(102)의 외부일 수 있다. 설정 모듈(116)은 요구된 주파수에 대응하는 특정 전압 상태에서 동작하도록 프로세서 코어(108) 내의 각각의 프로세서 코어를 설정하도록 구성될 수 있다. 프로세서 코어가 요구된 주파수에서 동작하는 경우, 프로세서 코어는 공유된 컴퓨팅 리소스의 타깃 레벨을 만족하는 공유된 컴퓨팅 리소스(예컨대, 캐시 용량, 오프칩 메모리 대역폭 등)의 양을 이용할 수 있다. 프로세서 코어는 디폴트 전압 상태에 대응하는 디폴트 주파수에서 동작하도록 처음에 구성될 수 있다. 예컨대, 디폴트 전압 상태가 프로세서 코어가 동작할 수 있는 최대 전압 상태인 경우, 디폴트 주파수는 최대 주파수일 수 있다. 최대 주파수는 요구된 주파수보다 더 높을 수 있다. 이러한 경우에, 설정 모듈(116)은 예컨대, 더 낮은 전압 상태 중 하나로 프로세서 코어를 설정함으로써, 최대 주파수에서 요구된 주파수로 프로세서 코어를 전이(transition)하도록 구성될 수 있다. 전압을 낮추는 것은 주파수를 낮추기 위한 유일한 방법이 아님이 이해되어야 한다. 주파수 및 전압을 낮추는 것은 더 낮은 동적 전력 소비(dynamic power consumption)를 야기할 수 있으나, 전압은 낮추지 않고 주파수만 낮추는 것은 동적 전력 소비를 그만큼 낮추지 않을 수 있다. 그러나, 전압을 낮추는 것은 전이 지연(transition latency)을 증가시킬 수 있다.
주파수에서 동작하는 동안 프로세서 코어가 이용하는 공유된 컴퓨팅 리소스의 양 및 프로세서 코어의 주파수 사이의 관계는 예상 가능하지 않을 수 있다. 즉, 다양한 주파수에서 동작하는 동안 프로세서 코어가 사용하는 공유된 컴퓨팅 리소스의 양은 선형 함수와 같은 미리 정의된 함수를 따르지 않을 수 있다. 관계는 프로세서 코어에 의해 실행되는 애플리케이션에 따라 또한 다를 수 있다. 나아가, 관계는 주어진 애플리케이션의 특정 실행 단계에 따라서도 다를 수 있다. 프로세서 코어가 그 주파수에서 동작하는 동안 이용하는 공유된 컴퓨팅 리소스의 양 및 프로세서 코어의 주파수 사이의 관계가 예상 가능하지 않을 수 있기 때문에, 설정 모듈(116)은 프로세서 코어가 타깃 레벨에서 공유된 컴퓨팅 리소스를 이용하는 요구된 주파수의 값을 쉽게 결정하는 것이 가능하지 않을 수 있다.
일부 실시예에서, 타깃 레벨은 프로세서 코어로 할당된 사용자에 대응하는 SLA에서 명기될 수 있다. 일부 다른 실시예에서, 타깃 레벨은 SLA에서 명기된 일부 조건에 기초하여 또한 계산될 수 있다. 예컨대, SLA는 사용자는 적어도 최소 응답 시간이 보장된다고 명기할 수 있다. 여기에서, 프로세서 코어는 최소 응답 시간을 보장하기 위하여 공유된 컴퓨팅 리소스의 일부 양을 이용할 수 있다. 공유된 컴퓨팅 리소스의 이러한 양은 공유된 컴퓨팅 리소스의 타깃 레벨일 수 있다.
일부 실시예에 따라, 설정 모듈(116)은 요구된 주파수의 값을 결정하기 위하여 단계적 검색을 구현하도록 구성될 수 있다. 단계적 검색에서, 설정 모듈(116)은, 프로세서 코어가 요구된 주파수에서 동작하는 동안 이용하는 공유된 컴퓨팅 리소스의 양이 타깃 레벨을 만족하는 요구된 주파수에서 프로세서 코어가 동작할 때까지 다음의 더 낮은 전압 상태(및 그에 대응하여 다음의 더 낮은 주파수)로 프로세서 코어를 전이하도록 구성될 수 있다. 프로세서 코어는 제1 주파수에 대응할 수 있는 디폴트 전압 상태에서 처음에 동작하도록 구성될 수 있다. 설정 모듈(116)은 프로세서 코어가 제1 주파수에서 동작하는 경우 프로세서 코어에 의해 이용되는 공유된 컴퓨팅 리소스의 제1 양을 식별하도록 구성될 수 있다.
설정 모듈(116)은 공유된 컴퓨팅 리소스와 연관된 하드웨어, 소프트웨어 또는 펌웨어로부터 양을 수신함으로써 프로세서 코어에 의해 이용되는 공유된 컴퓨팅 리소스의 양을 식별하도록 구성될 수 있다. 일 예시에서, 설정 모듈(116)은 프로세서 코어(108)에 의해 이용되는 캐시 메모리(110)의 양을 식별하기 위하여 캐시 컨트롤러(112)로 질의하도록 구성될 수 있다. 다른 예시에서, 설정 모듈(116)은 오프칩 메모리(104)로 액세스하기 위하여 프로세서 코어(108)에 의해 이용되는 대역폭의 양을 식별하기 위하여 메모리 컨트롤러(114)로 질의하도록 구성될 수 있다.
프로세서 코어가 디폴트 전압/주파수 상태에서 동작하는 경우 설정 모듈(116)이 프로세서 코어에 의해 이용되는 공유된 컴퓨팅 리소스의 제1 양을 식별하는 경우, 설정 모듈(116)은 제1 양이 공유된 컴퓨팅 리소스의 타깃 레벨을 만족하는지 결정하도록 구성될 수 있다. 제1 양이 공유된 컴퓨팅 리소스의 타깃 레벨을 만족하는 경우, 제1 주파수는 요구된 주파수이다. 제1 양이 공유된 컴퓨팅 리소스의 타깃 레벨을 만족하지 않는 경우, 설정 모듈(116)은 디폴트 전압 상태에서, 제2 주파수에 대응할 수 있는, 다음의 더 낮은 전압/주파수 상태로 프로세서 코어를 설정하도록 구성될 수 있다.
프로세서 코어가 다음의 더 낮은 전압 상태에서 동작하는 경우 설정 모듈(116)이 프로세서 코어에 의해 이용되는 공유된 컴퓨팅 리소스의 제2 양을 식별하는 경우, 설정 모듈(116)은 프로세서 코어가 제2 주파수에서 동작하는 경우 프로세서 코어에 의해 이용되는 공유된 컴퓨팅 리소스의 제2 양을 식별하도록 구성될 수 있다. 설정 모듈(116)은 제2 양이 공유된 컴퓨팅 리소스의 타깃 레벨을 만족하는지 결정하도록 구성될 수 있다. 제2 양이 공유된 컴퓨팅 리소스의 타깃 레벨을 만족하는 경우, 제2 주파수는 요구된 주파수이다.
제2 양이 공유된 컴퓨팅 리소스의 타깃 레벨을 만족하지 않는 경우, 설정 모듈(116)은 (a) 현재 전압 상태에서 새로운 주파수에 대응하는 다음의 더 낮은 전압 상태로 프로세서 코어를 설정하는 것 및 (b) 프로세서 코어가 새로운 주파수에서 동작하는 경우 프로세서 코어에 의해 이용되는 공유된 컴퓨팅 리소스의 새로운 양을 식별하는 것의 위의 단계적 검색을 반복하도록 구성될 수 있다. 이러한 단계적 검색은 요구된 주파수가 발견될 때까지(즉, 공유된 컴퓨팅 리소스의 새로운 양이 공유된 컴퓨팅 리소스의 타깃 레벨을 만족하는 경우) 반복될 수 있다. 단계적 검색이 마침내 요구된 주파수로 수렴하는 동안, 단계적 검색 하에서 설정 모듈(116)은 요구된 주파수에 대응하는 적합한 전압 상태가 발견될 때까지 복수의 전압 상태로 프로세서 코어를 설정할 수 있다.
일부 다른 실시예에 따라, 설정 모듈(116)은 요구된 주파수의 값을 결정하기 위하여 빠른 검색 기법을 구현하도록 구성될 수 있다. 단계적 검색과 반대로, 빠른 검색 기법은 각각의 계속적인 더 낮은 전압 상태로 프로세서 코어를 설정하지 않고 요구된 주파수로 더 빠르게 수렴할 수 있다. 프로세서 코어는 제1 주파수에 대응할 수 있는, 디폴트 전압 상태에서 동작하도록 처음에 구성될 수 있다. 설정 모듈(116)은 프로세서 코어가 제1 주파수에서 동작하는 경우 프로세서 코어에 의해 이용되는 공유된 컴퓨팅 리소스의 제1 양을 식별하도록 구성될 수 있다. 설정 모듈(116)은 디폴트 전압 상태에서, 제2 주파수에 대응할 수 있는, 다음의 더 낮은 전압 상태 또는 일부 다른 더 낮은 전압 상태로 프로세서 코어를 설정하도록 구성될 수 있다. 설정 모듈(116)은 프로세서 코어가 제2 주파수에서 동작하는 경우 프로세서 코어에 의해 이용되는 공유된 컴퓨팅 리소스의 제2 양을 식별하도록 구성될 수 있다.
제1 주파수 및 공유된 컴퓨팅 리소스의 제1 양은 제1 지점의 좌표를 형성할 수 있다. 제2 주파수 및 공유된 컴퓨팅 리소스의 제2 양은 제2 지점의 좌표를 형성할 수 있다. 설정 모듈(116)은 제2 지점 및 제1 지점을 통해(또는 그 사이에서) 제1 선형 보간을 생성하도록 구성될 수 있다. 설정 모듈(116)은 제1 선형 보간이 공유된 컴퓨팅 리소스의 타깃 레벨을 만족하는 경우 제1 후보 지점을 식별하도록 구성될 수 있다. 제1 후보 지점의 좌표는 제1 후보 주파수 및 공유된 컴퓨팅 리소스의 타깃 레벨을 포함할 수 있다.
설정 모듈(116)은 제1 후보 주파수에 대응하는 제1 후보 전압 상태에서 동작하도록 프로세서 코어를 설정하도록 구성될 수 있다. 설정 모듈(116)은 프로세서 코어가 제1 후보 주파수에서 동작하는 경우 프로세서 코어에 의해 이용되는 공유된 컴퓨팅 리소스의 제3 양을 식별하도록 구성될 수 있다. 제1 후보 주파수 및 공유된 컴퓨팅 리소스의 제3 양은 제3 지점의 좌표를 형성할 수 있다. 설정 모듈(116)은 제3 양이 공유된 컴퓨팅 리소스의 제2 양에 매칭되는지 결정하도록 구성될 수 있다. 제3 양이 제2 양에 매칭되는 경우, 제1 후보 주파수는 빠른 검색이 요구된 주파수로 수렴하므로 요구된 주파수이다.
프로세서 코어가 그 주파수에서 동작하는 동안 이용하는 공유된 컴퓨팅 리소스의 양 및 프로세서 코어의 주파수 사이의 관계가 선형적이지 않을 수 있으므로, 제1 후보 주파수는 요구된 주파수가 아닐 수 있다. 제3 양이 제2 양에 매칭되지 않으면, 설정 모듈(116)은 제3 지점 및 제2 지점을 통해 제2 선형 보간을 생성하도록 구성될 수 있다. 설정 모듈(116)은 제2 선형 보간이 공유된 컴퓨팅 리소스의 타깃 레벨을 만족하는 제2 후보 지점을 식별하도록 구성될 수 있다. 제2 후보 지점의 좌표는 제2 후보 주파수 및 공유된 컴퓨팅 리소스의 타깃 레벨을 포함할 수 있다.
설정 모듈(116)은 프로세서 코어를 제2 후보 주파수에 대응하는 제2 후보 전압 상태에서 동작하도록 설정하도록 구성될 수 있다. 설정 모듈(116)은 프로세서 코어가 제2 후보 주파수에서 동작하는 경우 프로세서 코어에 의해 이용되는 공유된 컴퓨팅 리소스의 제4 양을 식별하도록 구성될 수 있다. 제2 후보 주파수 및 공유된 컴퓨팅 리소스의 제4 양은 제4 지점의 좌표를 형성할 수 있다. 설정 모듈(116)은 제4 양이 공유된 컴퓨팅 리소스의 제3 양에 매칭되는지 결정하도록 구성될 수 있다. 제4 양이 제3 양에 매칭되면, 빠른 검색이 요구된 주파수로 수렴하므로 제2 후보 주파수는 요구된 주파수이다.
제4 양이 제3 양에 매칭되지 않으면, 설정 모듈(116)은 (a) 새로운 지점(예컨대, 제4 지점) 및 이전 지점(예컨대, 제3 지점)을 통하는 선형 보간을 생성하는 것, (b) 선형 보간이 공유된 컴퓨팅 리소스의 타깃 레벨을 만족하는 후보 지점을 식별하는 것, 여기에서 후보 지점의 좌표는 후보 주파수 및 공유된 컴퓨팅 리소스의 타깃 레벨을 포함하고, (c) 프로세서 코어가 후보 주파수에 대응하는 후보 전압 상태에서 동작하도록 설정하는 것, 및 (d) 프로세서 코어가 후보 주파수에서 동작하는 경우 프로세서 코어에 의해 이용되는 공유된 컴퓨팅 리소스의 양을 식별하는 것의 위의 빠른 검색 기법을 반복하도록 구성될 수 있으며, 여기에서 후보 주파수 및 공유된 컴퓨팅 리소스의 양은 새로운 지점의 좌표를 형성할 수 있다. 빠른 검색 기법은 후보 주파수가 반복하는 것을 시작할 때까지 반복될 수 있다. 후보 주파수의 반복(repetition)은 빠른 검색이 요구된 주파수에 수렴하고 있다는 것을 나타낼 수 있다.
도 2는 여기에서 나타난 적어도 일부 실시예에 따라 배열되는 단계적 검색의 예시적인 구현예을 도시하는 선 도표(200)이다. 선 도표(200)는 x 축(202) 및 y 축(204)을 포함할 수 있다. x 축(202)은 프로세서 코어의 주파수에 대응할 수 있고 y 축(204)은 그 주파수에서 동작하는 경우 프로세서 코어에 의해 이용되는 공유된 컴퓨팅 리소스의 양에 대응할 수 있다. 타깃 선(206)은 공유된 컴퓨팅 리소스의 타깃 레벨을 나타낼 수 있다. 선 도표(200)는 프로세서 코어의 주파수와 그 주파수에서 동작하는 경우 프로세서 코어에 의해 이용되는 공유된 컴퓨팅 리소스의 양 사이의 관계를 나타내는 관계 선(208)을 또한 포함할 수 있다. 관계 선(208)은 알려진 함수에 대응하지 않을 수 있고 알려지지 않을 수 있다.
단계적 검색 하에서, 설정 모듈(116)은 제1 주파수(f0)에 대응할 수 있는, 디폴트 전압 상태에서 처음에 동작하도록 구성될 수 있다. 설정 모듈(116)은 프로세서 코어가 제1 주파수(f0)에서 동작하는 경우 프로세서 코어에 의해 이용되는 공유된 컴퓨팅 리소스의 제1 양(A0)을 식별하도록 구성될 수 있다. 제1 주파수(f0) 및 제1 양(A0)은 관계 선(208)을 따라 제1 지점(210A)의 좌표를 형성할 수 있다.
설정 모듈(116)은 제1 양(A0)이 공유된 컴퓨팅 리소스의 타깃 레벨을 만족하는지 결정하도록 구성될 수 있다. 선 도표(200)에서 도시되는 바와 같이, 제1 지점(210A)은 타깃 선(206)을 만족하지 않는다. 그러므로 제1 양(A0)은 공유된 컴퓨팅 리소스의 타깃 레벨을 만족하지 않는다. 설정 모듈(116)은 프로세서 코어가 요구된 주파수에서 동작하는 동안 이용하는 공유된 컴퓨팅 리소스의 양이 타깃 레벨을 만족하는 요구된 주파수에서 프로세서 코어가 동작할 때까지 프로세서 코어를 다음의 더 낮은 전압 상태(및 그에 대응하여, 다음의 더 낮은 주파수)로 전이하도록 구성될 수 있다. 도 2에 도시된 예시에서, 프로세서 코어는 적어도 하나의 제1 주파수(f0), 제2 주파수(f1), 제3 주파수(f2), 제4 주파수(f3), 제5 주파수(f4), 제6 주파수(f5), 제7 주파수(f6) 및 제8 주파수(f7)에 대응하는 복수의 전압 상태에서 동작하도록 구성될 수 있다.
설정 모듈(116)은 제2 지점(210B)에서 도시된 제2 주파수(f1), 제3 지점(210C)에서 도시된 제3 주파수(f2), 제4 지점(210D)에서 도시된 제4 주파수(f3), 제5 지점(210E)에서 도시된 제5 주파수(f4), 제6 지점(210F)에서 도시된 제6 주파수(f5), 제7 지점(210G)에서 도시된 제7 주파수(f6), 및 제8 지점(210H)에서 도시된 제8 주파수(f7)를 통해 단계적 검색을 반복하도록 구성될 수 있다. 제2 주파수(f1)는 제2 양(A1)에 대응할 수 있다. 제3 주파수(f2)는 제3 양(A2)에 대응할 수 있다. 제4 주파수(f3)는 제4 양(A3)에 대응할 수 있다. 제5 주파수(f4)는 제5 양(A4)에 대응할 수 있다. 제6 주파수(f5)는 제6 양(A5)에 대응할 수 있다. 제7 주파수(f6)는 제7 양(A6)에 대응할 수 있다. 제2 양(A1), 제3 양(A2), 제4 양(A3), 제5 양(A4), 제6 양(A5), 제7 양(A6)은 공유된 컴퓨팅 리소스의 타깃 레벨을 각각 만족하지 않을 수 있다.
제8 주파수(f7)는 제8 양(A7)에 대응할 수 있고, 이는 공유된 컴퓨팅 리소스의 타깃 레벨에 만족한다. 그러므로, 제8 주파수(f7)는 요구된 주파수이다. 단계적 검색이 마침내 요구된 주파수에 수렴하는 동안, 단계적 검색 하에서 설정 모듈(116)은 요구된 주파수에 대응하는 적합한 전압 상태가 발견될 때까지 복수의 전압 상태로 프로세서 코어를 설정할 수 있다. 도 2에서 도시된 예시에서, 설정 모듈(116)은 일곱 번에 걸쳐(즉, 제2 주파수(f1)에서 제8 주파수(f7)) 프로세서 코어를 설정할 수 있다. 전술된 바와 같이, 각각의 다른 전압 상태로의 전이는 상당한 오버헤드(overhead)를 발생시킬 수 있다.
도 3-5는 여기에서 나타난 적어도 일부 실시예에 따라 배열되는, 빠른 검색 기법의 예시적인 구현예를 도시하는 선 도표(300A-300C)이다. 선 도표(300A-300C)는 선 도표(200)에 도시된 바와 같이 또한 x 축(202), y 축(204), 타깃 선(206) 및 관계 선(208)을 각각 포함할 수 있다.
빠른 검색 기법 하에서, 프로세서 코어는 디폴트 전압 상태에서 동작하도록 처음에 구성될 수 있고, 이는 제1 주파수(f0)에 대응할 수 있다. 설정 모듈(116)은 프로세서 코어가 제1 주파수(f0)에서 동작하는 경우 프로세서에 의해 이용되는 공유된 컴퓨팅 리소스의 제1 양(A0)를 식별하도록 구성될 수 있다. 설정 모듈(116)은 디폴트 전압 상태에서, 제2 주파수(f1)에 대응할 수 있는, 다음의 더 낮은 전압 상태 또는 일부 다른 더 낮은 전압 상태로 프로세서 코어를 설정하도록 구성될 수 있다. 설정 모듈(116)은 프로세서 코어가 제2 주파수(f1)에서 동작하는 경우 프로세서에 의해 이용되는 공유된 컴퓨팅 리소스의 제2 양(A1)을 식별하도록 구성될 수 있다.
제1 주파수(f0) 및 제1 양(A0)은 관계 선(208)을 따라 제1 지점(310A)의 좌표를 형성할 수 있다. 제2 주파수(f1) 및 제2 양(A1)은 관계 선(208)을 따라 제2 지점(310B)의 좌표를 형성할 수 있다. 설정 모듈(116)은 도 3에 도시된 바와 같이, 제2 지점(310B) 및 제1 지점(310A)을 통하여 제1 선형 보간(312A)을 생성하도록 구성될 수 있다. 설정 모듈(116)은 제1 선형 보간(312A)이 타깃 선(206)으로 나타난, 공유된 컴퓨팅 리소스의 타깃 레벨을 만족하는 제1 후보 지점(314A)을 식별하도록 구성될 수 있다. 제1 후보 지점(314A)의 좌표는 제1 후보 주파수(f2) 및 공유된 컴퓨팅 리소스의 타깃 레벨을 포함할 수 있다.
설정 모듈(116)은 제1 후보 주파수(f2)에 대응하는 제1 후보 전압 상태에서 동작하도록 프로세서 코어를 설정하도록 구성될 수 있다. 설정 모듈(116)은 프로세서 코어가 제1 후보 주파수(f2)에서 동작하는 경우 프로세서 코어에 의해 이용되는 공유된 컴퓨팅 리소스의 제3 양(A2)을 식별하도록 구성될 수 있다. 제1 후보 주파수(f2) 및 제3 양(A2)은 제3 지점(310C)의 좌표를 형성할 수 있다. 설정 모듈(116)은 제3 양(A2)이 제2 양(A1)에 매칭되는지 결정하도록 구성될 수 있다.
이러한 경우에, 설정 모듈(116)은 제3 양(A2)이 제2 양(A1)에 매칭되지 않는다고 결정할 수 있다. 그 결과 설정 모듈(116)은 도 4에 도시된 제3 지점(310C) 및 제2 지점(310B)을 통해 제2 선형 보간(312B)를 생성하도록 구성될 수 있다. 설정 모듈(116)은 제2 선형 보간(312B)이 타깃 선(206)으로 나타난 공유된 컴퓨팅 리소스의 타깃 레벨을 만족하는 제2 후보 지점(314B)를 식별하도록 구성될 수 있다. 제2 후보 지점(314B)의 좌표는 공유된 컴퓨팅 리소스의 타깃 레벨 및 제2 후보 주파수(f3)를 포함할 수 있다.
설정 모듈(116)은 제2 후보 주파수(f3)에 대응하는 제2 후보 전압 상태에서 동작하도록 프로세서 코어를 설정하도록 구성될 수 있다. 설정 모듈(116)은 프로세서 코어가 제2 후보 주파수(f3)에서 동작하는 경우 프로세서 코어에 의해 이용되는 공유된 컴퓨팅 리소스의 제4 양(A3)을 식별하도록 구성될 수 있다. 제2 후보 주파수(f3) 및 제4 양(A3)은 제4 지점(310D)의 좌표를 형성할 수 있다. 설정 모듈(116)은 제4 양(A3)이 제3 양(A2)에 매칭되는지 결정하도록 구성될 수 있다.
이러한 경우에, 설정 모듈(116)은 제4 양(A3)이 제3 양(A2)에 매칭되지 않는다고 결정할 수 있다. 그 결과, 설정 모듈(116)은 도 5에 도시된 제4 지점(310D) 및 제3 지점(310C)을 통해 제3 선형 보간(312C)을 생성하도록 구성될 수 있다. 설정 모듈(116)은 제3 선형 보간(312C)이 타깃 선(206)으로 나타난 공유된 컴퓨팅 리소스의 타깃 레벨을 만족하는 제3 후보 지점(314C)를 식별하도록 구성될 수 있다. 제3 후보 지점(314C)의 좌표는 공유된 컴퓨팅 리소스의 타깃 레벨 및 제3 후보 주파수(f4)를 포함할 수 있다.
설정 모듈(116)은 제3 후보 주파수(f4)에 대응하는 제3 후보 전압 상태에서 동작하도록 프로세서 코어를 설정하도록 구성될 수 있다. 설정 모듈(116)은 프로세서 코어가 제3 후보 주파수(f4)에서 동작하는 경우 프로세서 코어에 의해 이용되는 공유된 컴퓨팅 리소스의 제5 양(A4)을 식별하도록 구성될 수 있다. 제3 후보 주파수(f4) 및 5 양(A4)은 제5 지점(310E)의 좌표를 형성할 수 있다. 설정 모듈(116)은 제5 양(A4)이 제4 양(A3)에 매칭되는지 결정하도록 구성될 수 있다.
이러한 경우에, 제5 양(A4)는 제4 양(A3)에 매칭되지 않는다. 그러나, 빠른 검색의 추가적인 반복에서, 새로운 후보 지점에 대응하는 새로운 양이 제5 양(A4)에 매칭된다. 그러므로, 제3 후보 주파수(f4)는 요구된 주파수이다. 단계적 검색에서는 설정 모듈(116)이 요구된 주파수로 수렴하기 전에 일곱 번 프로세서 코어를 설정해야 하지만 빠른 검색 기법 하에서는, 설정 모듈(116)은 프로세서 코어를 요구된 주파로 수렴하기 전에 단지 네 번 설정한다. 그러므로, 빠른 검색 기법은 단계적 검색에 비교해 볼 때 상당한 오버헤드를 절감할 수 있다.
선형 보간을 생성하기 위하여 마지막 두 지점을 사용하는 이전 예시가 기술되었으나, 지점의 다른 조합이 사용될 수 있음이 이해되어야 한다. 예컨대, 설정 모듈(116)은 마지막 N 지점을 취하여, 최소 제곱법(least square method)을 가지고 선형 보간을 생성하고, 타깃 레벨을 가지고 교차 지점을 찾기 위하여 선형 보간을 사용하도록 구성될 수 있다. 선형 보간은 모든 N 지점에 동일한 비중을 할당할 수 있거나 또는 더 최근 지점에 더 큰 비중을, 그리고 비교적 최근이 아닌 지점에 더 작은 비중을 할당할 수 있다.
도 6은 여기에서 나타난 적어도 일부 실시예에 따라 배열되는 빠른 검색 기법의 구현예를 수행하도록 적응되는 예시적인 프로세스(400)를 도시한 흐름도이다. 프로세스(400)는 현재 이용 양이 타깃 최대 이용 양을 초과하는 경우 활성화될 수 있다. 이러한 빠른 검색 기법의 구현예는 프로세서 코어에 의해 이용되는 단일 공유된 컴퓨팅 리소스가 고려되는 요구된 주파수로 수렴하도록 이용될 수 있다. 프로세스(400)는 하나 이상의 블록(402-416)에 의해 도시되는 다양한 동작, 기능 또는 작동을 포함할 수 있다.
프로세스(400)는 블록(402)(리소스의 타깃 레벨 식별)에서 시작할 수 있고, 설정 모듈(116)은 멀티코어 프로세서 내 프로세서 코어에 의해 이용되는 공유된 컴퓨팅 리소스의 타깃 레벨을 식별하도록 구성될 수 있다. 예컨대, 타깃 레벨은 프로세서 코어로 할당된 사용자와 연관된 SLA에서 식별될 수 있다. 상이한 프로세서 코어는 각각의 프로세서 코어가 이용하도록 허용될 수 있는 공유된 컴퓨팅 리소스의 양을 명기하는 상이한 SLA로 각각 할당될 수 있다. 블록(402)에 블록(404)이 뒤따를 수 있다.
블록(404)(제1 주파수에서 동작하는 경우 프로세서 코어에 의해 이용되는 리소스의 제1 양 식별)에서, 설정 모듈(116)은 프로세서 코어가 제1 주파수에서 동작하는 경우 프로세서 코어에 의해 이용되는 공유된 컴퓨팅 리소스의 제1 양을 식별하도록 구성될 수 있다. 예컨대, 제1 주파수는 프로세서 코어의 디폴트 주파수일 수 있다. 일부 예시에서, 디폴트 주파수는 프로세서 코어가 동작하도록 설계될 수 있는 최대 주파수일 수 있다.
프로세서 코어가 동작할 수 있는 각각의 주파수는 프로세서 코어의 전압 상태와 연관될 수 있다. 각각의 전압 상태에서, 프로세서 코어는 단일 주파수 또는 주파수 범위에서 동작하도록 구성될 수 있다. 따라서, 주파수 사이의 적어도 일부 전이는 전압 상태 사이의 전이를 또한 포함할 수 있다. 간편성을 위해, 전압 상태는 주파수 사이의 전이를 기술하는 여기에서 명확하게 언급되지 않을 수 있다. 블록(404)에 블록(406)이 뒤따를 수 있다.
블록(406)(제2 주파수에서 동작하는 경우 프로세서 코어에 의해 이용되는 리소스의 제2 양 식별)에서, 설정 모듈(116)은 제2 주파수에서 동작하는 경우 프로세서 코어에 의해 이용되는 공유된 컴퓨팅 리소스의 제2 양을 식별하도록 구성될 수 있다. 일부 실시예에서, 설정 모듈(116)은 다음의 계산을 수행함으로써 제2 주파수를 결정(또는 "추측")할 수 있다: f1=Rt/R0*f0, 여기에서 f1은 제2 주파수를 나타내고, f0는 제1 주파수를 나타내고, Rt는 공유된 컴퓨팅 주파수의 타깃 레벨을 나타내고, R0는 공유된 컴퓨팅 리소스의 제1 양을 나타낸다.
더 일반적으로, 설정 모듈(116)은 이전 주파수에서 동작하는 경우 프로세서 코어에 의해 이용되는 공유된 컴퓨팅 리소스의 양에 의해 공유된 컴퓨팅 리소스의 타깃 레벨을 나눔으로써 리소스 비(resource ratio)를 결정하도록 구성될 수 있다. 설정 모듈(116)은 리소스 비와 이전 주파수를 곱함으로써 현재 주파수를 결정하도록 구성될 수 있다. 프로세스(400)의 제1 반복에서, 현재 주파수는 제2 주파수일 수 있고, 이전 주파수는 제1 주파수일 수 있다. 블록(406)에 블록(408)이 뒤따를 수 있다.
블록(408)(현재 지점과 이전 지점 사이의 선형 보간 생성)에서, 설정 모듈(116)은 현재 지점과 이전 지점 사이의 선형 보간을 생성하도록 구성될 수 있다. 현재 지점의 좌표는 현재 주파수 및 현재 주파수에서 동작하는 경우 프로세서 코어에 의해 이용되는 (여기에서 현재 양으로 지칭되는)공유된 컴퓨팅 리소스의 양을 포함할 수 있다. 이전 지점의 좌표는 이전 주파수 및 이전 주파수에서 동작하는 경우 프로세서 코어에 의해 이용되는 (여기에서 이전 양으로 지칭되는)공유된 컴퓨팅 리소스의 양을 포함할 수 있다. 프로세스(400)의 제1 반복에서, 현재 지점의 좌표는 제2 주파수 및 공유된 컴퓨팅 리소스의 제2 양을 포함할 수 있고, 이전 지점의 좌표는 제1 주파수 및 공유된 컴퓨팅 리소스의 제1 양을 포함할 수 있다. 블록(480)에 블록(410)이 뒤따를 수 있다.
블록(410)(선형 보간과 타깃 레벨 사이의 교차 지점 식별)에서, 설정 모듈(116)은 선형 보간이 공유된 컴퓨팅 리소스의 타깃 레벨을 만족하는 교차 지점을 식별하도록 구성될 수 있다. 교차 지점의 좌표는 후보 주파수 및 공유된 컴퓨팅 리소스의 타깃 레벨을 포함할 수 있다. 후보 주파수는 다음과 같이 수학적으로 표현될 수 있다:
fi+1 = fi-1 + (Rt-Ri-1)/(Ri-Ri-1)*(fi-fi-1)
여기에서 fi-1은 이전 주파수를 나타내고, fi는 현재 주파수를 나타내며, Rt는 공유된 컴퓨팅 리소스의 타깃 레벨을 나타내고, Ri는 공유된 컴퓨팅 리소스의 현재 양을 나타내고, Ri-1는 프로세서 코어에 의해 이용되는 공유된 컴퓨팅 리소스의 이전 양을 나타낸다. 블록(410)에 블록(412)이 뒤따를 수 있다.
블록(412)(후보 주파수 = 현재 주파수?)에서, 설정 모듈(116)은 후보 주파수가 현재 주파수에 동일하거나 대략 동일한지 결정하도록 구성될 수 있다. 후보 주파수가 현재 주파수에 동일하거나 대략 동일한 경우, 프로세스(400)는 요구된 주파수에 수렴할 수 있다. 즉, 후보 주파수 및 현재 주파수는 요구된 주파수를 나타낼 수 있다. 그러므로, 새로운 후보 주파수가 현재 주파수에 동일하거나 대략 동일한 경우, 프로세스(400)는 (예컨대, 주기적으로, 계속적으로 또는 요구되는 경우)반복되거나 또는 종료된다. 새로운 후보 주파수가 현재 주파수에 동일하지 않거나 대략 동일하지 않은 경우, 프로세스(400)는 요구된 주파수에 아직 수렴하지 않았다. 그러므로, 새로운 후보 주파수가 현재 주파수에 동일하지 않거나 대략 동일하지 않은 경우, 블록(412)에 블록(414)이 뒤따를 수 있다.
블록(414)(후보 주파수에서 동작하도록 프로세서 코어 설정)에서, 설정 모듈(116)은 후보 주파수에서 동작하도록 프로세서 코어를 설정하도록 구성될 수 있다. 블록(414)에 블록(416)이 뒤따를 수 있다.
블록(416)(후보 주파수에서 동작하는 경우 프로세서 코어에 의해 이용되는 리소스의 새로운 양 식별)에서, 설정 모듈(116)은 후보 주파수에서 동작하는 경우 프로세서 코어에 의해 이용되는 공유된 컴퓨팅 리소스의 새로운 양을 식별하도록 구성될 수 있다. 현재 주파수는 새로운 이전 주파수로 할당될 수 있고, 후보 주파수는 새로운 현재 주파수로 할당될 수 있다. 블록(416)에 블록(408)이 뒤따를 수 있다.
도 7은 여기에서 나타난 적어도 일부 실시예에 따라 배열되는, 빠른 검색 기법의 구현예를 수행하도록 적응되는 예시적인 프로세스(500)를 도시한 흐름도이다. 빠른 검색 기법의 이러한 구현예는 프로세서 코어에 의해 이용되는 단일 공유된 컴퓨팅 리소스가 고려되는 요구된 주파수로 수렴하도록 이용될 수 있다. 프로세스(500)는 하나 이상의 블록(502-526)에 의해 나타나는 다양한 동작, 기능 또는 작동을 포함할 수 있다.
프로세스(500)는 블록(502)(리소스의 타깃 레벨 식별)에서 시작할 수 있고, 설정 모듈(116)은 멀티코어 프로세서에서 프로세서 코어에 의해 이용되는 공유된 컴퓨팅 리소스의 타깃 레벨을 식별하도록 구성될 수 있다. 예컨대, 타깃 레벨은 프로세서 코어로 할당된 사용자와 연관된 SLA에서 식별될 수 있다. 상이한 프로세서 코어는 각각의 프로세서 코어가 사용하도록 허용될 수 있는 공유된 컴퓨팅 리소스의 최대 양을 명기하는 상이한 SLA로 각각 할당될 수 있다. 블록(502)에 블록(504)이 뒤따를 수 있다.
블록(504)(제1 주파수에서 동작하는 경우 프로세서 코어에 의해 이용되는 리소스의 제1 양 식별)에서, 설정 모듈(116)은 프로세서 코어가 제1 주파수에서 동작하는 경우 프로세서 코어에 의해 이용되는 공유된 컴퓨팅 리소스의 제1 양을 식별하도록 구성될 수 있다. 예컨대, 제1 주파수는 프로세서 코어의 디폴트 주파수일 수 있다. 일부 예시에서, 디폴트 주파수는 프로세서 코어가 동작하도록 설계될 수 있는 최대 주파수 일 수 있다. 블록(504)에 블록(506)이 뒤따를 수 있다.
블록(506)(제2 주파수에서 동작하는 경우 프로세서 코어에 의해 이용되는 리소스의 제2 양 식별)에서, 설정 모듈(116)은 제2 주파수에서 동작하는 경우 프로세서 코어에 의해 이용되는 공유된 컴퓨팅 리소스의 제2 양을 식별하도록 구성될 수 있다. 일부 실시예에서, 설정 모듈(116)은 이전 주파수에서 동작하는 경우 프로세서 코어에 의해 이용되는 공유된 컴퓨팅 리소스의 양에 의해 공유된 컴퓨팅 리소스의 타깃 레벨을 나눔으로써 리소스 비를 결정하도록 구성될 수 있다. 설정 모듈(116)은 이전 주파수와 리소스 비를 곱함으로써 현재 주파수를 결정하도록 구성될 수 있다. 프로세스(500)의 제1 반복에서, 현재 주파수는 제2 주파수일 수 있고, 이전 주파수는 제1 주파수일 수 있다. 블록(506)에 블록(508)이 뒤따를 수 있다.
블록(508)(단조 함수?)에서, 설정 모듈(116)은 현재 주파수와, 동작하는 경우 프로세서 코어에 의해 이용되는 공유된 컴퓨팅 리소스의 현재 양 사이의 관계가 단조(monotonic)인지 결정할 수 있다. 현재 주파수와 공유된 컴퓨팅 리소스의 현재 양의 관계는, 주파수가 감소함에 따라 공유된 컴퓨팅 리소스의 현재 양이 감소하는 경우, 단조인 것으로 간주될 수 있다. 그러므로, 설정 모듈(116)은 공유된 컴퓨팅 리소스의 현재 양이 이전 주파수에서 동작하는 경우 프로세서 코어에 의해 이용되는 공유된 컴퓨팅 리소스의 이전 양보다 크거나 같은지 결정하도록 구성될 수 있다. 설정 모듈(116)은 현재 주파수가 이전 주파수보다 더 작거나 같은지 결정하도록 또한 구성될 수 있다.
공유된 컴퓨팅 리소스의 현재 양이 공유된 컴퓨팅 리소스의 이전 양보다 크거나 같고 현재 주파수가 이전 주파수보다 작거나 같은 경우, 설정 모듈(116)은 현재 주파수 및 공유된 컴퓨팅 리소스의 현재 양 사이의 관계가 단조가 아니라고 결정하도록 구성될 수 있다. 그렇지 않은 경우, 설정 모듈(116)은 현재 주파수와 공유된 컴퓨팅 리소스의 현재 양 사이의 관계가 단조라고 결정하도록 구성될 수 있다. 현재 주파수와 공유된 컴퓨팅 리소스의 현재 양 사이의 관계가 단조가 아니면, 블록(508)에 블록(510)이 뒤따를 수 있다. 현재 주파수와 공유된 컴퓨팅 리소스의 현재 양 사이의 관계가 단조이면, 블록(508)에 블록(512)이 뒤따를 수 있다.
블록(510)(선형 함수에 의해 후보 주파수 결정)에서, 설정 모듈(116)은 선형 함수에 의해 후보 주파수를 결정하도록 구성될 수 있다. 선형 함수는 수학적으로 다음과 같이 표현될 수 있다: fi+1 = Rt/Ri*fi, 여기에서 fi는 현재 주파수를 나타내고, Rt는 공유된 컴퓨팅 리소스의 타깃 레벨을 나타내고, Ri는 공유된 컴퓨팅 리소스의 현재 양을 나타낸다. 더 일반적으로, 설정 모듈(116)은 공유된 컴퓨팅 리소스의 현재 양에 의해 공유된 컴퓨팅 리소스의 타깃 레벨을 나눔으로써 리소스 비를 결정하도록 구성될 수 있다. 설정 모듈(116)은 현재 리소스 비와 현재 주파수를 곱함으로써 후보 주파수를 결정하도록 구성될 수 있다. 블록(510)에 블록(514)이 뒤따를 수 있다.
블록(512)(빠른 검색에 의해 후보 주파수 결정)에서, 설정 모듈(116)은 빠른 검색에 의해 후보 주파수를 결정하도록 구성될 수 있다. 빠른 검색 하에서, 설정 모듈(116)은 현재 지점과 이전 지점 사이의 선형 보간을 생성하도록 구성될 수 있다. 현재 지점의 좌표는 현재 주파수와 공유된 컴퓨팅 리소스의 현재 양을 포함할 수 있다. 이전 지점의 좌표는 이전 주파수와 공유된 컴퓨팅 리소스의 이전 양을 포함할 수 있다. 설정 모듈(116)은 선형 보간과 타깃 레벨 사이의 교차 지점을 식별하도록 구성될 수 있다. 교차 지점의 좌표는 후보 주파수와 공유된 컴퓨팅 리소스의 타깃 레벨을 포함할 수 있다. 블록(512)에 블록(514)이 뒤따를 수 있다.
블록(514)(후보 주파수<최소 주파수?)에서, 설정 모듈(116)은 후보 주파수가 프로세서가 동작할 수 있는 최소 주파수보다 더 작은지 결정하도록 구성될 수 있다. 후보 주파수가 프로세서 코어가 동작할 수 있는 최소 주파수보다 작은 경우, 블록(514)에 블록(516)이 뒤따를 수 있다. 후보 주파수가 프로세서가 동작할 수 있는 최소 주파수보다 더 작지 않은 경우, 블록(514)에 블록(520)이 뒤따를 수 있다.
블록(516)(최소 주파수로 주파수 설정)에서, 설정 모듈은 프로세서 코어가 동작할 수 있는 최소 주파수에서 동작하도록 프로세서 코어를 설정하도록 구성될 수 있다. 블록(516)에 블록(518)이 뒤따를 수 있다.
블록(518)(하드웨어 분할 활성화 또는 유지)에서, 설정 모듈(116)은 공유된 컴퓨팅 리소스의 이용을 제한하도록 적응된 하드웨어 분할을 활성화하거나 유지하도록 구성될 수 있다. 예컨대, QOS 모듈(106)은 하드웨어 분할을 형성하도록 구성될 수 있다. 설정 모듈(116)은 하드웨어 분할을 활성화 및/또는 불활성화하도록 QOS 모듈(106)과 통신하도록 구성될 수 있다. 일부 실시예에서, 설정 모듈(116)은 프로세스(500)가 요구된 주파수에 수렴하는 경우 하드웨어 분할을 불활성화하도록 QOS 모듈(106)에게 명령하도록 구성될 수 있다. 블록(518) 이후, 프로세스(500)는 (예컨대, 주기적으로, 계속적으로 또는 요구되는 경우)반복되거나 또는 종료된다.
블록(520)(후보 주파수>최대 주파수?)에서, 설정 모듈(116)은 후보 주파수가 프로세서가 동작할 수 있는 최대 주파수보다 더 큰지 결정하도록 구성될 수 있다. 후보 주파수가 프로세서 코어가 동작할 수 있는 최대 주파수보다 큰 경우, 블록(520)에 블록(522)이 뒤따를 수 있다. 후보 주파수가 프로세서 코어가 동작할 수 있는 최대 주파수보다 크지 않은 경우 블록(520)에 블록(524)이 뒤따를 수 있다.
블록(522)(최대 주파수로 주파수 설정)에서, 설정 모듈은 프로세서 코어가 동작할 수 있는 최대 주파수에서 동작하도록 프로세서 코어를 설정하도록 구성될 수 있다. 블록(522) 이후, 프로세스(500)는 (예컨대, 주기적으로, 계속적으로 또는 요구되는 경우)반복되거나 또는 종료된다.
블록(524)(후보 주파수로 주파수 설정)에서, 설정 모듈은 프로세서 코어가 후보 주파수에서 동작하도록 구성될 수 있다. 블록(524)에 블록(526)이 뒤따를 수 있다.
블록(526)(후보 주파수에서 동작하는 경우 프로세서 코어에 의해 이용되는 리소스의 새로운 양 식별)에서, 설정 모듈(116)은 후보 주파수에서 동작하는 경우 프로세서 코어에 의해 이용되는 공유된 컴퓨팅 리소스의 새로운 양을 식별하도록 구성될 수 있다. 현재 주파수는 새로운 이전 주파수로 할당될 수 있고, 후보 주파수는 새로운 현재 주파수로 할당될 수 있다. 블록(526)에 블록(508)이 뒤따를 수 있다.
도 8-9는 여기에서 나타난 적어도 일부 실시예에 따라 배열되는, 빠른 검색 기법의 구현예를 수행하도록 적응되는 예시적인 프로세스(600)를 도시하는 흐름도이다. 빠른 검색 기법의 이러한 구현예는 프로세서 코어에 의해 이용되는 둘 이상의 공유된 컴퓨팅 리소스가 고려되는 요구된 주파수로 수렴하도록 이용될 수 있다. 프로세스(600)는 하나 이상의 블록(602-628) 중 하나 이상에 의해 도시되는 다양한 동작, 기능 또는 작동을 포함할 수 있다.
프로세스(600)는 도 8에서 블록(602)(각각의 리소스의 타깃 레벨 식별)에서 시작할 수 있고, 설정 모듈(116)은 멀티코어 프로세서 내 프로세서 코어에 의해 이용되는 각각의 공유된 컴퓨팅 리소스에 대한 타깃 레벨을 식별하도록 구성될 수 있다. 예컨대, 타깃 레벨은 프로세서 코어로 할당된 사용자와 연관된 SLA 내에서 식별될 수 있다. 상이한 프로세서 코어는 각각의 프로세서 코어가 이용하도록 허용될 수 있는 각각의 공유된 컴퓨팅 리소스의 양을 명기하는 상이한 SLA로 각각 할당되었을 수 있다. 블록(602)에 블록(604)이 뒤따를 수 있다.
블록(604)(제1 주파수에서 동작하는 경우 프로세서 코어에 의해 이용되는 각각의 리소스의 제1 양 식별)에서, 설정 모듈(116)은 프로세서 코어가 제1 주파수에서 동작하는 경우 프로세서 코어에 의해 이용되는 각각의 공유된 컴퓨팅 리소스의 제1 양을 식별하도록 구성될 수 있다. 예컨대, 제1 주파수는 프로세서 코어의 디폴트 주파수일 수 있다. 일부 예시에서, 디폴트 주파수는 프로세서 코어가 동작하도록 설계될 수 있는 최대 주파수일 수 있다. 블록(604)에 블록(606)이 뒤따를 수 있다.
블록(606)(제2 주파수에서 동작하는 경우 프로세서 코어에 의해 이용되는 각각의 리소스의 제2 양 식별)에서, 설정 모듈(116)은 제2 주파수에서 동작하는 경우 프로세서 코어에 의해 이용되는 각각의 공유된 컴퓨팅 리소스의 제2 양을 식별하도록 구성될 수 있다. 일부 실시예에서, 설정 모듈(116)은 이전 주파수에서 동작하는 경우 프로세서 코어에 의해 이용되는 각각의 공유된 컴퓨팅 리소스의 양에 의해 각각의 공유된 컴퓨팅 리소스의 타깃 레벨을 나눔으로써 리소스 비를 결정하도록 구성될 수 있다. 설정 모듈(116)은 이전 주파수와 리소스 비를 곱함으로써 현재 주파수를 결정하도록 구성될 수 있다. 프로세스(500)의 제1 반복에서, 현재 주파수는 제2 주파수일 수 있고, 이전 주파수는 제1 주파수일 수 있다. 블록(606)에 블록(608)이 뒤따를 수 있다.
블록(608)(각각의 함수는 단조?)에서, 설정 모듈(116)은 현재 주파수와 현재 주파수에서 동작하는 경우 프로세서 코어에 의해 이용되는 각각의 공유된 컴퓨팅 리소스의 현재 양 사이의 관계가 단조인지 결정할 수 있다. 주파수가 감소함에 따라 공유된 컴퓨팅 리소스의 현재 양이 감소하면 현재 주파수와 각각의 공유된 컴퓨팅 리소스의 현재 양 사이의 관계는 단조일 수 있다. 그러므로, 설정 모듈(116)은 각각의 공유된 컴퓨팅 리소스의 현재 양이 최대 이전 주파수에서 동작하는 경우 프로세서 코어에 의해 이용되는 공유된 컴퓨팅 리소스의 이전 양보다 크거나 같은지 결정하도록 구성될 수 있다. 설정 모듈(116)은 더 낮은 이전 주파수에서 동작하는 경우 프로세서 코어에 의해 이용되는 공유된 컴퓨팅 리소스의 이전 양보다 작거나 같은지 결정하도록 또한 구성될 수 있다.
공유된 컴퓨팅의 현재 양이 공유된 컴퓨팅 리소스의 이전 양보다 크거나 같고 현재 주파수가 이전 주파수보다 작거나 같으면, 설정 모듈(116)은 현재 주파수와 공유된 컴퓨팅 리소스의 현재 양 사이의 관계가 단조가 아니라고 결정하도록 구성될 수 있다. 그렇지 않은 경우, 설정 모듈(116)은 현재 주파수와 공유된 컴퓨팅 리소스의 현재 양 사이의 관계가 단조라고 결정하도록 구성될 수 있다. 현재 주파수와 공유된 컴퓨팅 리소스의 현재 양 사이의 관계가 단조가 아니면, 블록(608)에 블록(610)이 뒤따를 수 있다. 현재 주파수와 공유된 컴퓨팅 리소스의 현재 양 사이의 관계가 단조이면, 블록(608)에 블록(612)이 뒤따를 수 있다.
블록(610)(선형 함수에 의해 후보 주파수 결정)에서, 설정 모듈(116)은 선형 함수에 의해 각각의 공유된 컴퓨팅 리소스에 대응하는 후보 주파수를 결정하도록 구성될 수 있다. 선형 함수는 수학적으로 다음과 같이 표현될 수 있다: fi +1 = Rt/Ri*fi, 여기에서 fi는 현재 주파수를 나타내고, Rt는 공유된 컴퓨팅 리소스의 타깃 레벨을 나타내고 Ri는 공유된 컴퓨팅 리소스의 현재 양을 나타낸다. 더 일반적으로, 설정 모듈(116)은 공유된 컴퓨팅 리소스의 현재 양에 의해 공유된 컴퓨팅 리소스의 타깃 레벨을 나눔으로써 리소스 비를 결정하도록 구성될 수 있다. 설정 모듈(116)은 리소스 비와 현재 주파수를 곱함으로써 후보 주파수를 결정하도록 구성될 수 있다. 블록(610)에 블록(614)이 뒤따를 수 있다.
블록(612)(빠른 검색에 의해 후보 주파수 결정)에서, 설정 모듈(116)은 빠른 검색에 의해 각각의 공유된 컴퓨팅 리소스에 대응하는 후보 주파수를 결정하도록 구성될 수 있다. 빠른 검색에 의해, 설정 모듈(116)은 현재 지점과 이전 지점 사이의 선형 보간을 생성하도록 구성될 수 있다. 현재 지점의 좌표는 현재 주파수와 공유된 컴퓨팅 리소스의 현재 양을 포함할 수 있다. 이전 지점의 좌표는 이전 주파수와 공유된 컴퓨팅 리소스의 이전 양을 포함할 수 있다. 설정 모듈(116)은 선형 보간과 타깃 레벨 사이의 교차 지점을 식별하도록 구성될 수 있다. 교차 지점의 좌표는 공유된 컴퓨팅 리소스의 타깃 레벨 및 후보 주파수를 포함할 수 있다. 블록(612)에 블록(614)이 뒤따를 수 있다.
블록(614)(복수의 후보 주파수로부터 최소 후보 주파수 선택)에서, 설정 모듈(116)은 복수의 후보 주파수로부터 최소 후보 주파수를 선택하도록 구성될 수 있다. 고려되는 각각의 공유된 컴퓨팅 리소스는 후보 주파수와 연관될 수 있다. 블록(614)에 블록(616)이 도 9에서 뒤따를 수 있다.
블록(616)(후보 주파수<최소 주파수?)에서, 설정 모듈(116)은 최소 후보 주파수가 프로세서 코어가 동작할 수 있는 최소 주파수보다 더 작은지 결정하도록 구성될 수 있다. 최소 후보 주파수가 프로세서 코어가 동작할 수 있는 최소 주파수보다 작은 경우, 블록(616)에 블록(618)이 뒤따를 수 있다. 최소 후보 주파수가 프로세서가 동작할 수 있는 최소 주파수보다 작지 않은 경우, 블록(616)에 블록(622)이 뒤따를 수 있다.
블록(618)(최소 주파수로 주파수 설정)에서, 설정 모듈(116)은 프로세서 코어가 동작할 수 있는 최소 주파수에서 동작하도록 프로세서 코어를 설정하도록 구성될 수 있다. 블록(618)에 블록(620)이 뒤따를 수 있다.
블록(620)(하드웨어 분할 활성화 또는 유지)에서, 설정 모듈(116)은 각각의 공유된 컴퓨팅 리소스의 최대 이용을 제한하도록 적응된 하드웨어 분할을 활성화하거나 유지하도록 구성될 수 있다. 예컨대, QOS 모듈(106)은 하드웨어 분할을 형성하도록 구성될 수 있다. 설정 모듈(116)은 하드웨어 분할을 활성화 및/또는 불활성화하도록 QOS 모듈(106)과 통신하도록 구성될 수 있다. 일부 실시예에서, 설정 모듈(116)은 프로세스(600)가 요구된 주파수로 수렴하는 경우 하드웨어 분할을 불활성화하도록 QOS 모듈(106)에게 명령하도록 구성될 수 있다. 블록(620) 이후, 프로세스(600)는 (예컨대, 주기적으로, 계속적으로 또는 요구되는 경우)반복되거나 종료된다.
블록(622)(후보 주파수>최대 주파수?)에서, 설정 모듈(116)은 프로세서가 동작할 수 있는 최대 주파수보다 최소 후보 주파수가 더 큰지 결정하도록 구성될 수 있다. 최소 후보 주파수가 프로세서 코어가 동작할 수 있는 최대 주파수보다 더 크면, 블록(622)에 블록(624)이 뒤따를 수 있다. 최소 후보 주파수가 프로세서 코어가 동작할 수 있는 최대 주파수보다 더 크지 않으면, 블록(622)에 블록(626)이 뒤따를 수 있다.
블록(624)(최대 주파수로 주파수 설정)에서, 설정 모듈(116)은 프로세서 코어가 동작할 수 있는 최대 주파수에서 동작하도록 프로세서 코어를 설정하도록 구성될 수 있다. 블록(624)에서, 프로세스(600)는 (예컨대, 주기적으로, 계속적으로 또는 요구되는 경우)반복되거나 종료된다.
블록(626)(후보 주파수로 주파수 설정)에서, 설정 모듈(116)은 최소 후보 주파수에서 동작하도록 프로세서 코어를 설정하도록 구성될 수 있다. 블록(626)에 블록(628)이 뒤따를 수 있다.
블록(628)(후보 주파수에서 동작하는 경우 프로세서 코어에 의해 이용되는 리소스의 새로운 양 식별)에서, 설정 모듈(116)은 최소 후보 주파수에서 동작하는 경우 프로세서 코어에 의해 이용되는 각각의 공유된 컴퓨팅 리소스의 새로운 양을 식별하도록 구성될 수 있다. 현재 주파수는 새로운 이전 주파수로 할당될 수 있고, 최소 후보 주파수는 새로운 현재 주파수로 할당될 수 있다. 블록(628)에 블록(608)이 도 8에서 뒤따를 수 있다.
도 10은, 여기에서 나타난 적어도 일부 실시예에 따라 배열되는, 예시적인 컴퓨팅 시스템을 위한 컴퓨터 하드웨어 구조를 도시하는 블록도이다. 도 10은 멀티코어 프로세서(102), 메모리(720) 및 하나 이상의 드라이브(730)를 포함하는, 컴퓨터(700)를 포함한다. 컴퓨터(700)는 종래 컴퓨터 시스템, 임베디드된 제어 컴퓨터, 랩톱 또는 서버 컴퓨터, 모바일 장치, 셉톱 박스, 키오스크, 차량 정보 시스템, 모바일 텔레폰, 커스텀화된 머신 또는 다른 하드웨어 플래폼으로 구현될 수 있다. 멀티코어 프로세서(102)는 설정 모듈(116)을 포함하는 도 1에 기술된 로직을 구현하도록 구성될 수 있다. 설정 모듈(116)은 도 6-9에서 기술된 하나 이상의 프로세스를 구현하도록 구성될 수 있다.
드라이브(730) 및 그들의 연관된 컴퓨터 저장 매체는 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 및 컴퓨터(700)를 위한 다른 데이터의 스토리지를 저장한다. 드라이브(730)는 운영체제(740), 애플리케이션 프로그램(750), 프로그램 모듈(760) 및 데이터베이스(780)를 포함할 수 있다. 컴퓨터(700)는 사용자가 커맨드와 데이터를 입력할 수 있는 사용자 입력 장치(790)를 더 포함한다. 입력 장치는 전자 디지타이저, 마이크로폰, 키보드 및 마우스, 트랙볼 또는 터치 패드로 일반적으로 지칭되는 포인팅 장치를 포함할 수 있다. 다른 입력 장치는 조이스틱, 게임 패드, 위성접시, 스캐너등을 포함할 수 있다.
이러한 그리고 다른 입력 장치는 시스템 버스에 결합되는 사용자 입력 인터페이스를 통해 멀티코어 프로세서(102)에 결합될 수 있으나 병렬 포트, 게임 포트 또는 USB(universal serial bus)와 같은 다른 인터페이스 및 버스 구조에 의해 결합될 수 있다. 컴퓨터(700)와 같은 컴퓨터는, 출력 주변 인터페이스(794) 등을 통해 결합될 수 있는 스피커와 같은 다른 주변 출력 장치를 또한 포함할 수 있다.
컴퓨터(700)는 네트워크 인터페이스(796)에 결합된 리모트 컴퓨터와 같은, 하나 이상의 컴퓨터에 로직 연결을 사용하여 네트워킹된 환경에서 동작할 수 있다. 리모트 컴퓨터는 개인용 컴퓨터, 서버, 라우터, 네트워크 PC, 피어 장치 또는 다른 공통 네트워크 노드일 수 있고, 컴퓨터(700)에 대하여 전술된 요소 중 다수 또는 전부를 포함할 수 있다. 네트워킹 환경은 사무실, 기업 광역 통신망(WAN), 근거리 통신망(LAN), 인트라넷 및 인터넷에서 흔하다.
LAN 또는 WLAN 네트워킹 환경에서 사용되는 경우, 컴퓨터(700)는 네트워크 인터페이스(796) 또는 어댑터를 통해 LAN에 결합될 수 있다. WAN 네트워킹 환경에서 사용되는 경우, 컴퓨터(700)는 보통 인터넷 또는 네트워크(708)와 같은, WAN을 통한 통신을 설립을 설립하기 위한 모뎀 또는 기타 수단을 포함한다. WAN은 인터넷, 예시된 네트워크(708), 다양한 다른 네트워크 또는 그들의 임의의 조합을 포함할 수 있다. 컴퓨터 사이의 네트워크, 통신 링크, 링, 메시, 버스, 클라우드 또는 네트워크를 수립하는 다른 메커니즘이 이용될 수 있음이 인정될 것이다.
일부 실시예에서, 컴퓨터(700)는 네트워킹 환경에 결합될 수 있다. 컴퓨터(700)는 드라이브(730) 또는 다른 저장 장치와 연관되는 물리적 컴퓨터 판독가능 저장 매체의 하나 이상의 예시를 포함할 수 있다. 시스템 버스는 프로세서(102)가 컴퓨터 판독가능 저장 매체로/로부터 데이터 및/또는 코드를 판독할 수 있도록 할 수 있다. 매체는 반도체, 자기 물질, 광학 매체, 전기 스토리지, 전기 화학 스토리지 또는 임의의 다른 그러한 저장 기술을 포함하는, 임의의 적절한 기술을 사용하여 구현되는 저장 요소의 형태에서 기기를 나타낼 수 있다. 매체는 RAM, ROM, 플래시 또는 기타 유형의 휘발성 또는 비휘발성 메모리 기술로서 특징지어지든 아니든 메모리(720)와 연관된 구성을 나타낼 수 있다. 매체는 또한 저장 드라이브(730)로 구현되든지 아니든지 2차적인 저장장치를 나타낼 수 있다. 하드 드라이브 구현예는 고체 상태에 특징이 있을 수 있거나 자기적으로 인코딩된 정보를 저장하는 회전 매체를 포함할 수 있다.
저장 매체는 하나 이상의 프로그램 모듈(760)을 포함할 수 있다. 프로그램 모듈(760)은 멀티코어 프로세서(102)에 로딩되어 실행되는 경우, 전용 컴퓨팅 시스템으로 전용 컴퓨팅 시스템을 변환하는 소프트웨어 명령어를 포함할 수 있다. 이 명세서 전체에서 상세하게 설명되는 바와 같이, 프로그램 모듈(760)은 컴퓨터(700)가 컴포넌트, 로직 흐름, 및/또는 여기에서 기술된 데이터 구조를 사용하여 전체 시스템 또는 운영 환경 내부에서 참여할 수 있다.
멀티코어 프로세서(102)는 개별적으로 또는 집합적으로 임의의 수의 상태를 가정할 수 있는, 임의의 수의 트랜지스터 또는 기타 회로 요소로부터 구성될 수 있다. 더 구체적으로, 멀티코어 프로세서(102)는 상태 머신 또는 유한 상태 머신으로 동작할 수 있다. 그러한 머신은 프로그램 모듈(760) 내에 포함된 실행 가능 명령어를 로딩함으로써 특정 머신 또는 제2 머신으로 변환될 수 있다. 이러한 컴퓨터 판독 가능 명령어는 멀티코어 프로세서(102)가 상태들 간에 어떻게 전환하는지를 지정함으로써 프로세서를 변환할 수 있으며, 이에 따라 멀티코어 프로세서(102)를 구성하는 트랜지스터 또는 기타 회로 요소를 제1 머신으로부터 제2 머신으로 변환할 수 있다. 각 머신의 상태는 또한 하나 이상의 사용자 입력 장치(790), 네트워크 인터페이스(796), 기타의 주변 장치, 기타의 인터페이스 또는 하나 이상의 사용자 또는 기타 행위자로부터 입력을 수신함으로써 변환될 수 있다. 각 머신은 또한 프린터, 스피커, 비디오 디스플레이 등과 같은 다양한 출력 장치의 다양한 물리적 특징 또는 상태를 변환할 수 있다.
프로그램 모듈(760)을 인코딩하는 것은 저장 매체의 물리적인 구조를 또한 변환할 수 있다. 물리적인 구조의 특정 변환은 이러한 기술의 상이한 구현예에서, 다양한 인자에 따를 수 있다. 그러한 인자의 예시는, 이에 제한되지는 않으나, 저장 매체가 주요한 것으로 또는 이차적인 저장 장치로 특징되는지, 저장 매체를 구현하도록 이용되는 기술을 포함할 수 있다. 예컨대, 저장 매체가 반도체 기반 메모리로 구현되는 경우, 프로그램 모듈(760)은 소프트웨어가 거기에서 인코딩되는 경우 반도체 메모리(720)의 물리적인 상태를 변환할 수 있다. 예컨대, 소프트웨어가 트랜지스터, 축전기 또는 반도체 메모리(720)를 구성하는 다른 분리된 회로 소자의 상태를 전환할 수 있다.
다른 예시로, 저장 매체는 드라이브(730)와 같은 자기 또는 광학 기술을 이용하여 구현될 수 있다. 그러한 구현예에서, 프로그램 모듈(760)은 소프트웨어가 거기에서 인코딩되는 경우 자기 또는 광학 매체의 물리적인 상태를 변환할 수 있다. 이러한 변환은 주어진 자기 매체 내부의 특정 위치의 자기 특성을 바꾸는 것을 포함할 수 있다. 이러한 변환은 주어진 광학 매체 내부의 특정 위치의 특성 또는 물리적인 특징을 변경하는 것을 또한 포함할 수 있고, 그로 인해 그러한 위치의 광학 특징이 바뀐다. 물리적인 매체의 다른 다양한 변환이 본 기술의 사상 및 범위로부터 벗어나지 않으면서 가능함이 이해되어야 한다.
여기에서 기술된 대상이 컴퓨터 시스템 상의 애플리케이션 프로그램 및 운영 체제의 실행과 함께 실행되는 프로그램 모듈의 일반적인 맥락에서 제시되지만, 당업자는 다른 구현예가 다른 유형의 프로그램 모듈과의 조합에서 수행될 수 있음을 이해할 것이다. 일반적으로, 프로그램 모듈은 루틴, 프로그램, 컴포턴느 데이터 구조 및 특정 추상 데이터 유형을 구현하거나 특정 태스크를 수행하는 다른 유형의 주고를 포함한다. 나아가, 당업자는 여기에서 기술되는 대상이 소형 장치, 멀티코어 프로세서 시스템, 멀티코어 기반 또는 프로그램 가능 소비자 전자기기, 미니컴퓨터, 메인프레임 컴퓨터 등을 포함하는 다른 컴퓨터 시스템 구성과 함께 실행될 수 있음을 이해할 것이다.
본 개시는 다양한 태양의 예시로서 의도된 본 출원에 기술된 특정 예시들에 제한되지 않을 것이다. 당업자에게 명백할 바와 같이, 많은 수정과 변형이 그 사상과 범위를 벗어나지 않으면서 이루어질 수 있다. 여기에 열거된 것들에 더하여, 본 개시의 범위 안에서 기능적으로 균등한 방법과 장치가 위의 설명으로부터 당업자에게 명백할 것이다. 그러한 수정과 변형은 첨부된 청구항의 범위에 들어가도록 의도된 것이다. 본 개시는 첨부된 청구항의 용어에 의해서만, 그러한 청구항에 부여된 균등물의 전 범위와 함께, 제한될 것이다. 본 개시가 물론 다양할 수 있는 특정 방법, 시약, 합성 구성 또는 생물학적 시스템에 제한되지 않는 것으로 이해될 것이다. 또한, 여기에서 사용된 용어는 단지 특정 예시들을 기술하기 위한 목적이고, 제한하는 것으로 의도되지 않음이 이해될 것이다.
여기에서 실질적으로 임의의 복수 및/또는 단수의 용어의 사용에 대하여, 당업자는 맥락 및/또는 응용에 적절하도록, 복수를 단수로 및/또는 단수를 복수로 해석할 수 있다. 다양한 단수/복수의 치환은 명확성을 위해 여기에서 명시적으로 기재될 수 있다.
당업자라면, 일반적으로 본 개시에 사용되며 특히 첨부된 청구범위(예를 들어, 첨부된 청구범위)에 사용된 용어들이 일반적으로 "개방적(open)" 용어(예를 들어, 용어 "포함하는"은 "포함하지만 이에 제한되지 않는"으로, 용어 "갖는"는 "적어도 갖는"으로, 용어 "포함하다"는 "포함하지만 이에 한정되지 않는" 등으로 해석되어야 함)로 의도되었음을 이해할 것이다. 또한, 당업자라면, 도입된 청구항의 기재사항의 특정 수가 의도된 경우, 그러한 의도가 청구항에 명시적으로 기재될 것이며, 그러한 기재사항이 없는 경우, 그러한 의도가 없음을 또한 이해할 것이다. 예를 들어, 이해를 돕기 위해, 이하의 첨부 청구범위는 "적어도 하나" 및 "하나 이상" 등의 도입 구절의 사용을 포함하여 청구항 기재사항을 도입할 수 있다. 그러나, 그러한 구절의 사용이, 부정관사 "하나"("a" 또는 "an")에 의한 청구항 기재사항의 도입이, 그러한 하나의 기재사항을 포함하는 예시들로, 그러한 도입된 청구항 기재사항을 포함하는 특정 청구항을 제한함을 암시하는 것으로 해석되어서는 안되며, 동일한 청구항이 도입 구절인 "하나 이상" 또는 "적어도 하나" 및 "하나"("a" 또는 "an")과 같은 부정관사(예를 들어, "하나"는 "적어도 하나" 또는 "하나 이상"을 의미하는 것으로 전형적으로 해석되어야 함)를 포함하는 경우에도 마찬가지로 해석되어야 한다. 이는 청구항 기재사항을 도입하기 위해 사용된 정관사의 경우에도 적용된다. 또한, 도입된 청구항 기재사항의 특정 수가 명시적으로 기재되는 경우에도, 당업자라면 그러한 기재가 전형적으로 적어도 기재된 수(예를 들어, 다른 수식어가 없는 "두개의 기재사항"을 단순히 기재한 것은, 전형적으로 적어도 두 개의 기재사항 또는 두 개 이상의 기재사항을 의미함)를 의미하도록 해석되어야 함을 이해할 것이다. 또한, "A, B 및 C 등 중의 적어도 하나"와 유사한 규칙이 사용된 경우에는, 일반적으로 그러한 해석은 당업자가 그 규칙을 이해할 것이라는 전제가 의도된 것이다(예를 들어, "A, B 및 C 중의 적어도 하나를 갖는 시스템"은, A만을 갖거나, B만을 갖거나, C만을 갖거나, A 및 B를 함께 갖거나, A 및 C를 함께 갖거나, B 및 C를 함께 갖거나, A, B, 및 C를 함께 갖는 시스템 등을 포함하지만 이에 제한되지 않음). "A, B 또는 C 등 중의 적어도 하나"와 유사한 규칙이 사용된 경우에는, 일반적으로 그러한 해석은 당업자가 그 규칙을 이해할 것이라는 전제가 의도된 것이다(예를 들어, "A, B 또는 C 중의 적어도 하나를 갖는 시스템"은, A만을 갖거나, B만을 갖거나, C만을 갖거나, A 및 B를 함께 갖거나, A 및 C를 함께 갖거나, B 및 C를 함께 갖거나, A, B, 및 C를 함께 갖는 시스템 등을 포함하지만 이에 제한되지 않음). 또한 당업자라면, 실질적으로 임의의 이접 접속어(disjunctive word) 및/또는 두 개 이상의 대안적인 용어들을 나타내는 구절은, 그것이 상세한 설명, 청구범위 또는 도면에 있는지와 상관없이, 그 용어들 중의 하나, 그 용어들 중의 어느 하나, 또는 그 용어들 두 개 모두를 포함하는 가능성을 고려했음을 이해할 것이다. 예를 들어, "A 또는 B"라는 구절은 "A" 또는 "B" 또는 "A 및 B"의 가능성을 포함하는 것으로 이해될 것이다.
추가적으로, 개시의 특징 또는 양태가 마쿠시(Markush) 그룹으로 기술되는 경우, 개시는 마쿠시 그룹의 임의의 개별 요소 또는 요소들의 하위 그룹 역시 포함하고 있다는 것을 당업자는 인식할 것이다.
당업자에게 이해될 것과 같이, 임의의 그리고 모든 목적에서든, 기술 내용을 제공하는 것 등에 있어서, 여기에 개시되어 있는 모든 범위는 임의의 그리고 모든 가능한 하위범위와 그러한 하위범위의 조합을 또한 포함한다. 임의의 열거된 범위는 적어도 1/2, 1/3, 1/4, 1/5, 1/10 등으로 나누어지는 동일한 범위를 충분히 설명하고 실시가능하게 하는 것으로서 쉽게 인식될 수 있다. 제한하지 않는 예시로서, 여기서 논의되는 각각의 범위는 하위 1/3, 중앙 1/3, 상위 1/3 등으로 나누어질 수 있다. 또한, "까지", "적어도", "보다 많은", "보다 적은" 등과 같은 언어는 기재된 수를 포함하며, 전술한 하위범위로 후속적으로 나누어질 수 있는 범위를 지칭함이 당업자에게 이해되어야 한다. 마지막으로, 범위는 각각의 개별 요소를 포함함이 이해되어야 한다. 따라서, 예를 들어, 1-3개의 셀을 갖는 그룹은 1, 2 또는 3개의 셀을 갖는 그룹들을 의미한다. 유사하게, 1-5개의 셀을 갖는 그룹은 1, 2, 3, 4 또는 5개의 셀을 갖는 그룹을 의미한다.
다양한 양상 및 예시들이 여기에서 개시되었지만, 다른 양상 및 예시들이 당업자에게 명확할 것이다. 본 개시에 기재된 다양한 양상 및 예시는 예시의 목적으로 제시된 것이고, 제한하려고 의도된 것이 아니며, 진정한 범위와 사상은 이하 청구범위에 의해 나타낸다.

Claims (24)

  1. 서비스 품질 타깃을 달성하도록 컴퓨터의 멀티코어 프로세서 상의 프로세서 코어를 적응시키도록 상기 멀티코어 프로세서의 제어 하에서 수행되는 방법으로서,
    상기 컴퓨터 상의 리소스의 타깃 레벨(target level)을 식별하는 단계;
    상기 프로세서 코어가 제1 주파수에서 동작하도록 구성되는 경우 상기 리소스의 제1 이용 값을 식별하는 단계;
    상기 프로세서 코어가 제2 주파수에서 동작하도록 구성되는 경우 상기 리소스의 제2 이용 값을 식별하는 단계;
    제1 지점과 제2 지점 사이의 선형 보간(linear interpolation)을 생성하는 단계 - 상기 제1 지점은 상기 제1 주파수와 상기 제1 이용 값에 기초하는 제1 좌표를 가지고, 상기 제2 지점은 상기 제2 주파수와 상기 제2 이용 값에 기초하는 제2 좌표를 가짐 -;
    상기 선형 보간과 상기 타깃 레벨 사이의 교차 지점을 식별하는 단계 - 상기 교차 지점은 제3 주파수와 상기 타깃 레벨에 기초하는 교차 좌표를 가짐 -; 및
    상기 식별된 제3 주파수에서 동작하도록 상기 프로세서 코어를 설정하는 단계
    를 포함하는 방법.
  2. 제1항에 있어서,
    상기 타깃 레벨은 상기 프로세서 코어의 사용자와 상기 멀티코어 프로세서의 제공자 사이의 SLA에서 명기되는 것인, 방법.
  3. 제1항에 있어서,
    상기 리소스는 오프칩 메모리 대역폭(off-chip memory bandwidth)를 포함하고, 그리고
    상기 리소스의 상기 제1 이용 값은 상기 프로세서 코어가 상기 제1 주파수에서 동작하는 경우 이용되는 상기 오프칩 메모리 대역폭의 양을 포함하는 것인, 방법.
  4. 제1항에 있어서,
    상기 리소스는 상기 멀티코어 프로세서 상의 복수의 프로세서 코어에 의해 공유되는 캐시 메모리를 포함하고, 그리고
    상기 리소스의 상기 제1 이용 값은 상기 프로세서 코어가 상기 제1 주파수에서 동작하는 경우 이용되는 상기 캐시 메모리의 양을 포함하는 것인, 방법.
  5. 제1항에 있어서,
    상기 리소스는 전력(power)를 포함하고, 그리고
    상기 리소스의 상기 제1 이용 값은 상기 프로세서 코어가 상기 제1 주파수에서 동작하는 경우 상기 프로세서 코어에 의해 이용되는 상기 전력의 양을 포함하는 것인, 방법.
  6. 제1항에 있어서,
    상기 리소스의 상기 제1 이용 값을 식별하는 단계는,
    상기 제1 주파수에서 동작하도록 상기 프로세서 코어를 설정하는 단계; 및
    상기 제1 주파수에서 동작하도록 상기 프로세서 코어 설정 시, 상기 프로세서 코어가 상기 제1 주파수에서 동작하도록 구성되는 경우 상기 리소스의 상기 제1 이용 값을 결정하는 단계를 포함하는 것인, 방법.
  7. 제1항에 있어서,
    상기 제1 이용 값을 식별하는 단계 후에, 상기 제1 이용 값에 의한 상기 타깃 레벨의 나눗셈에 기초하여 리소스 비(resource ratio)를 생성하는 단계; 및
    상기 제1 주파수와 상기 리소스 비의 곱셈에 기초하여 상기 제2 주파수를 결정하는 단계
    를 더 포함하는 방법.
  8. 제1항에 있어서,
    상기 리소스의 상기 제2 이용 값을 식별하는 단계는,
    상기 제2 주파수에서 동작하도록 상기 프로세서 코어를 설정하는 단계; 및
    상기 제2 주파수에서 동작하도록 상기 프로세서 코어 설정 시, 상기 프로세서 코어가 상기 제2 주파수에서 동작하도록 구성되는 경우 상기 리소스의 상기 제2 이용 값을 결정하는 단계를 포함하는 것인, 방법.
  9. 제1항에 있어서,
    상기 교차 지점을 식별하는 단계 후에, 상기 제3 주파수가 상기 프로세서 코어의 최소 주파수보다 더 작은지 결정하는 단계; 및
    상기 제3 주파수가 상기 프로세서 코어의 상기 최소 주파수보다 더 작다는 결정에 응답하여, 상기 최소 주파수에서 동작하도록 상기 프로세서 코어를 설정하고 상기 리소스의 분할(partition)을 활성화하는 단계
    를 더 포함하고, 상기 분할은 상기 타깃 레벨로 상기 리소스의 이용을 제한하도록 적응되는 것인, 방법.
  10. 제1항에 있어서,
    상기 교차 지점을 식별하는 단계 후에, 상기 제3 주파수가 상기 프로세서 코어의 최대 주파수보다 큰지 결정하는 단계; 및
    상기 제3 주파수가 상기 프로세서 코어의 상기 최대 주파수보다 더 크다는 결정에 응답하여, 상기 최대 주파수에서 동작하도록 상기 프로세서 코어를 설정하는 단계
    를 더 포함하는 방법.
  11. 제10항에 있어서,
    상기 프로세서 코어가 상기 제3 주파수에서 동작하도록 구성되는 경우 상기 리소스의 제3 이용 값을 식별하는 단계; 및
    상기 제3 주파수가 상기 프로세서 코어의 상기 최대 주파수보다 더 크지 않다는 결정에 응답하여,
    제3 지점과 상기 제2 지점 사이의 제2 선형 보간을 생성하고 - 상기 제3 지점은 상기 제3 주파수 및 상기 제3 이용 값에 기초하는 제3 좌표를 가짐 -,
    상기 제2 선형 보간과 상기 타깃 레벨 사이의 제2 교차 지점을 식별하고 - 상기 제2 교차 지점은 제4 주파수 및 상기 타깃 레벨에 기초하는 제2 교차 좌표를 가짐 -, 그리고
    상기 제2 교차 지점에서 식별된 상기 제4 주파수에서 동작하도록 상기 프로세서 코어를 설정하는 단계
    를 더 포함하는 방법.
  12. 제1항에 있어서,
    상기 제3 주파수에서 동작하도록 상기 프로세서 코어를 설정하는 단계는,
    상기 제2 이용 값이 상기 제1 이용 값보다 크거나 같은지 또는 상기 제1 이용 값보다 작거나 같은지 결정하는 단계;
    상기 제2 주파수가 상기 제1 주파수보다 작거나 같은지 또는 상기 제1 주파수보다 크거나 같은지 결정하는 단계;
    상기 제2 이용 값이 상기 제1 이용 값보다 크거나 같고 상기 제2 주파수가 상기 제1 주파수보다 작거나 같다는 결정에 응답하여,
    상기 타깃 레벨로부터 상기 제2 이용 값을 나눔으로써 리소스 비를 생성하고,
    상기 제2 주파수와 리소스 비를 곱함으로써 단조가 아닌 주파수(non-monotonic frequency)를 생성하고, 그리고
    상기 단조가 아닌 주파수에서 동작하도록 상기 프로세서 코어를 설정하는 단계; 및
    상기 제2 이용 값이 상기 제1 이용 값보다 작다는 것 또는 상기 제2 주파수가 상기 제1 주파수보다 크다는 것 중 어느 하나의 결정에 응답하여, 상기 제3 주파수에서 동작하도록 상기 프로세서 코어를 설정하는 단계를 포함하는 것인, 방법.
  13. 제1항에 있어서,
    상기 제1 주파수, 상기 제2 주파수 및 상기 제3 주파수 각각은 상기 프로세서 코어의 분리된 미리 정의된 전압 설정에 대응하는 것인, 방법.
  14. 서비스 품질 타깃을 달성하기 위하여 컴퓨터의 멀티코어 프로세서 상에서 프로세서 코어를 적응시키도록 상기 멀티코어 프로세서의 제어 하에서 수행되는 방법으로서,
    상기 컴퓨터 상의 제1 리소스의 제1 타깃 레벨을 식별하는 단계;
    상기 컴퓨터 상의 제2 리소스의 제2 타깃 레벨을 식별하는 단계;
    상기 프로세서 코어가 제1 주파수에서 동작하도록 구성되는 경우 상기 제1 리소스의 제1 이용 값을 식별하는 단계;
    상기 프로세서 코어가 제2 주파수에서 동작하도록 구성되는 경우 상기 제1 리소스의 제2 이용 값을 식별하는 단계;
    상기 프로세서 코어가 상기 제1 주파수에서 동작하도록 구성되는 경우 상기 제2 리소스의 제3 이용 값을 식별하는 단계;
    상기 프로세서 코어가 상기 제2 주파수에서 동작하도록 구성되는 경우 상기 제2 리소스의 제4 이용 값을 식별하는 단계;
    제1 지점과 제2 지점 사이의 제1 선형 보간을 생성하는 단계 - 상기 제1 지점은 상기 제1 주파수 및 상기 제1 이용 값에 기초하는 제1 좌표를 가지고 상기 제2 지점은 상기 제2 주파수와 상기 제2 이용 값에 기초하는 제2 좌표를 가짐 -;
    상기 제1 선형 보간과 상기 제1 타깃 레벨 사이의 제1 교차 지점을 식별하는 단계 - 상기 제1 교차 지점은 제1 후보 주파수 및 상기 제1 타깃 레벨에 기초하는 제1 교차 좌표를 가짐 -;
    제3 지점 제4 지점 사이의 제2 선형 보간을 생성하는 단계 - 상기 제3 지점은 상기 제1 주파수 및 상기 제3 이용 값에 기초하는 제3 좌표를 가지고, 상기 제4 지점은 상기 제2 주파수 및 상기 제4 이용 값에 기초하는 제4 좌표를 가짐 -;
    상기 제2 선형 보간과 상기 제2 타깃 레벨 사이의 제2 교차 지점을 식별하는 단계 - 상기 제2 교차 지점은 제2 후보 주파수 및 상기 제2 타깃 레벨에 기초하는 제2 교차 좌표를 가짐 -;
    상기 제1 후보 주파수와 상기 제2 후보 주파수 사이에서 최소값을 선택함으로써 제3 주파수를 결정하는 단계; 및
    상기 제3 주파수 결정 시, 상기 제3 주파수에서 동작하도록 상기 프로세서 코어를 설정하는 단계
    를 포함하는 방법.
  15. 제14항에 있어서,
    상기 제1 타깃 레벨 및 상기 제2 타깃 레벨은 상기 멀티코어 프로세서의 제공자와 상기 프로세서 코어의 사용자 간의 SLA에서 명기되는 것인, 방법.
  16. 제14항에 있어서,
    상기 제1 리소스는 오프칩 메모리 대역폭을 포함하고 상기 제2 리소스는 상기 멀티코어 프로세서 상의 복수의 프로세서 코어에 의해 공유되는 캐시 메모리를 포함하고,
    상기 제1 리소스의 상기 제1 이용 값은 상기 프로세서 코어가 상기 제1 주파수에서 동작하는 경우 이용되는 상기 오프칩 메모리 대역폭의 양을 포함하고, 그리고
    상기 제2 리소스의 상기 제3 이용 값은 상기 프로세서 코어가 상기 제1 주파수에서 동작하는 경우 이용되는 상기 캐시 메모리의 양을 포함하는 것인, 방법.
  17. 제14항에 있어서,
    상기 제3 이용 값을 식별하는 단계 후에, 상기 제1 이용 값에 의한 상기 제1 타깃 레벨의 제1 나눗셈에 기초하여 제1 리소스 비를 생성하는 단계;
    상기 제1 주파수와 제1 리소스 비의 제1 곱셈에 기초하여 제1 추측 주파수를 생성하는 단계;
    상기 제3 이용 값에 의한 상기 제2 타깃 레벨의 제2 나눗셈에 기초하여 제2 리소스 비를 생성하는 단계;
    상기 제1 주파수와 제2 리소스 비의 제2 곱셈에 기초하여 제2 추측 주파수를 생성하는 단계; 및
    상기 제1 추측 주파수와 상기 제2 추측 주파수 사이에서 최소값을 선택함으로써 상기 제2 주파수를 결정하는 단계
    를 더 포함하는 방법.
  18. 제14항에 있어서,
    상기 제3 주파수를 결정하는 단계 후에, 상기 제3 주파수가 상기 프로세서 코어의 최소 주파수보다 작은지 결정하는 단계; 및
    상기 제3 주파수가 상기 프로세서 코어의 상기 최소 주파수보다 작다는 결정에 응답하여, 상기 최소 주파수에서 동작하도록 상기 프로세서 코어를 설정하고 상기 리소스의 분할을 활성화하는 단계
    를 더 포함하고, 상기 분할은 상기 타깃 레벨로 상기 리소스의 이용을 제한하도록 적응되는 것인, 방법.
  19. 제14항에 있어서,
    상기 제3 주파수를 결정하는 단계 후에, 상기 제3 주파수가 상기 프로세서 코어의 최대 주파수보다 큰지 결정하는 단계; 및
    상기 제3 주파수가 상기 프로세서 코어의 상기 최대 주파수보다 크다는 결정에 응답하여, 상기 최대 주파수에서 동작하도록 상기 프로세서 코어를 설정하는 단계
    를 더 포함하는 방법.
  20. 제19항에 있어서,
    상기 프로세서 코어가 상기 제3 주파수에서 동작하도록 구성되는 경우 상기 제1 리소스의 제5 이용 값을 식별하는 단계;
    상기 프로세서 코어가 상기 제3 주파수에서 동작하도록 구성되는 경우 상기 제2 리소스의 제6 이용 값을 식별하는 단계; 및
    상기 제3 주파수가 상기 프로세서 코어의 상기 최대 주파수보다 크다는 결정에 응답하여,
    제5 지점과 상기 제2 지점 사이의 제3 선형 보간을 생성하고 - 상기 제5 지점은 상기 제3 주파수 및 상기 제5 이용 값에 기초하는 제5 좌표를 가짐 -,
    상기 제3 선형 보간과 상기 제1 타깃 레벨 사이의 제3 교차 지점을 식별하고 - 상기 제3 교차 지점은 제3 후보 주파수 및 상기 제1 타깃 레벨에 기초하는 제3 교차 좌표를 가짐 -;
    제6 지점과 상기 제4 지점 사이의 제4 선형 보간을 생성하고 - 상기 제6 지점은 상기 제3 주파수 및 상기 제6 이용 값에 기초하는 제6 좌표를 가짐 -;
    상기 제4 선형 보간과 상기 제2 타깃 레벨 사이의 제4 교차 지점을 식별하고 - 상기 제4 교차 지점은 제4 후보 주파수 및 상기 제2 타깃 레벨에 기초하는 제4 교차 좌표를 가짐 -;
    상기 제3 후보 주파수와 상기 제4 후보 주파수 사이에서 최소값을 선택함으로써 제4 주파수를 결정하고, 그리고
    상기 제4 주파수 결정 시, 상기 제4 주파수에서 동작하도록 상기 프로세서 코어를 설정하는 단계
    를 더 포함하는 방법.
  21. 제14항에 있어서,
    상기 제3 주파수에서 동작하도록 상기 프로세서 코어를 설정하는 단계는,
    상기 제2 이용 값이 상기 제1 이용 값보다 크거나 같은지 또는 상기 제1 이용 값보다 작거나 같은지 결정하는 단계;
    상기 제2 주파수가 상기 제1 주파수보다 작거나 같은지 또는 상기 제1 주파수보다 크거나 같은지 결정하는 단계;
    상기 제2 이용 값이 상기 제1 이용 값보다 크거나 같고 상기 제2 주파수가 상기 제1 주파수보다 작거나 같다는 결정에 응답하여,
    상기 제1 타깃 레벨로부터 상기 제2 이용 값을 나눔으로써 리소스 비를 생성하고,
    상기 제2 주파수와 리소스 비를 곱함으로써 단조가 아닌 주파수를 생성하고, 그리고
    상기 단조가 아닌 주파수가 상기 제2 후보 주파수보다 작은 경우 상기 단조가 아닌 주파수에서 동작하도록 상기 프로세서 코어를 설정하는 단계; 및
    상기 제2 이용 값이 상기 제1 이용 값보다 작거나 상기 제2 주파수가 상기 제1 주파수보다 크다는 결정에 응답하여, 상기 제3 주파수에서 동작하도록 상기 프로세서 코어를 설정하는 단계를 포함하는 것인, 방법.
  22. 제14항에 있어서,
    상기 제3 주파수는 상기 제2 주파수보다 작고, 그리고
    상기 제2 주파수는 상기 제1 주파수보다 작은 것인, 방법.
  23. 컴퓨팅 장치로서,
    프로세서 코어 및 다른 프로세서 코어를 포함하는 복수의 프로세서 코어;
    상기 복수의 프로세서 코어에 의해 공유되는 캐시 메모리;
    상기 복수의 프로세서 코어에 결합되는 오프칩 메모리; 및
    상기 복수의 프로세서 코어에 결합되는 주파수 설정 모듈을 포함하고,
    상기 주파수 설정 모듈은,
    제1 타깃 레벨을 식별하고 - 상기 제1 타깃 레벨은 상기 컴퓨팅 장치를 상기 오프칩 메모리와 연결 짓는 오프칩 메모리 대역폭과 연관됨 -.
    제2 타깃 레벨을 식별하고 - 상기 제2 타깃 레벨은 상기 캐시 메모리의 이용과 연관됨 -,
    상기 오프칩 메모리 대역폭의 제1 이용 값을 식별하고 - 상기 제1 이용 값은 상기 프로세서 코어가 제1 주파수에서 동작하도록 구성되는 경우 이용되는 상기 오프칩 메모리 대역폭의 제1 양과 연관됨 -,
    상기 오프칩 메모리 대역폭의 제2 이용 값을 식별하고 - 상기 제2 이용 값은 상기 프로세서 코어가 제2 주파수에서 동작하도록 구성되는 경우 이용되는 상기 오프칩 메모리 대역폭의 제2 양과 연관됨 -,
    상기 캐시 메모리의 제3 이용 값을 식별하고 - 상기 제3 이용 값은 상기 프로세서 코어가 상기 제1 주파수에서 동작하도록 구성되는 경우 이용되는 상기 캐시 메모리의 제1 양과 연관됨 -,
    상기 캐시 메모리의 제4 이용 값을 식별하고 - 상기 제4 이용 값은 상기 프로세서 코어가 상기 제2 주파수에서 동작하도록 구성되는 경우 이용되는 상기 캐시 메모리의 제2 양과 연관됨 -,
    제1 지점과 제2 지점 사이의 제1 선형 보간을 생성하고 - 상기 제1 지점은 상기 제1 주파수 및 상기 제1 이용 값에 기초하는 제1 좌표를 가지고 상기 제2 지점은 상기 제2 주파수 및 상기 제2 이용 값에 기초하는 제2 좌표를 가짐 -,
    상기 제1 선형 보간과 상기 제1 타깃 레벨 사이의 제1 교차 지점을 식별하고 - 상기 제1 교차 지점은 제1 후보 주파수 및 상기 제1 타깃 레벨에 기초하는 제1 교차 좌표를 가짐 -,
    제3 지점과 제4 지점 사이의 제2 선형 보간을 생성하고 - 상기 제3 지점은 상기 제1 주파수 및 상기 제3 이용 값에 기초하는 제3 좌표를 가지고 상기 제4 지점은 상기 제2 주파수 및 상기 제4 이용 값에 기초하는 제4 좌표를 가짐 -,
    상기 제2 선형 보간과 상기 제2 타깃 레벨 사이의 제2 교차 지점을 식별하고 - 상기 제2 교차 지점은 제2 후보 주파수 및 상기 제2 타깃 레벨에 기초하는 제2 교차 좌표를 가짐 -,
    상기 제1 후보 주파수와 상기 제2 후보 주파수 사이에서 최소값을 선택함으로써 제3 주파수를 결정하고, 그리고
    상기 제3 주파수가 결정되면, 상기 제3 주파수에서 동작하도록 상기 프로세서 코어를 설정하도록 구성되는, 컴퓨팅 장치.
  24. 제23항에 있어서,
    상기 제3 주파수에서 동작하도록 상기 프로세서 코어를 설정하기 위하여, 상기 주파수 설정 모듈은 상기 프로세서 코어의 전압 설정을 적응시키도록 더 구성되는 것인, 컴퓨팅 장치.
KR1020147024579A 2012-02-02 2012-02-02 멀티코어 프로세서에서의 서비스 품질 타깃 KR101621776B1 (ko)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2012/023636 WO2013115821A1 (en) 2012-02-02 2012-02-02 Quality of service targets in multicore processors

Publications (2)

Publication Number Publication Date
KR20140119806A KR20140119806A (ko) 2014-10-10
KR101621776B1 true KR101621776B1 (ko) 2016-05-17

Family

ID=48903972

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020147024579A KR101621776B1 (ko) 2012-02-02 2012-02-02 멀티코어 프로세서에서의 서비스 품질 타깃

Country Status (3)

Country Link
US (1) US8924754B2 (ko)
KR (1) KR101621776B1 (ko)
WO (1) WO2013115821A1 (ko)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014031110A1 (en) 2012-08-22 2014-02-27 Empire Technology Development Llc Resource allocation in multi-core architectures
US9086925B2 (en) * 2013-01-18 2015-07-21 Nec Laboratories America, Inc. Methods of processing core selection for applications on manycore processors
US9367357B2 (en) * 2013-01-18 2016-06-14 Nec Corporation Simultaneous scheduling of processes and offloading computation on many-core coprocessors
US20140373024A1 (en) * 2013-06-14 2014-12-18 Nvidia Corporation Real time processor
SG11201608172XA (en) * 2014-03-31 2016-10-28 Cfph Llc Resource allocation
US9652022B2 (en) * 2014-08-28 2017-05-16 Qualcomm Incorporated System and method for providing dynamic quality of service levels based on coprocessor operation
US9881654B2 (en) 2015-01-14 2018-01-30 Macronix International Co., Ltd. Power source for memory circuitry
US9536575B2 (en) * 2015-01-14 2017-01-03 Macronix International Co., Ltd. Power source for memory circuitry
US20190057045A1 (en) * 2017-08-16 2019-02-21 Alibaba Group Holding Limited Methods and systems for caching based on service level agreement
US11573900B2 (en) 2019-09-11 2023-02-07 Intel Corporation Proactive data prefetch with applied quality of service

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090249094A1 (en) 2008-03-28 2009-10-01 Microsoft Corporation Power-aware thread scheduling and dynamic use of processors
US20110047401A1 (en) 2009-08-24 2011-02-24 Werner James B Providing Adaptive Frequency Control For A Processor
US20110173363A1 (en) 2007-05-10 2011-07-14 Texas Instruments Incoporated Processor system with an application and a maintenance function
US20110239015A1 (en) 2010-03-25 2011-09-29 International Business Machines Corporation Allocating Computing System Power Levels Responsive to Service Level Agreements

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7861068B2 (en) 2006-03-07 2010-12-28 Intel Corporation Method and apparatus for using dynamic workload characteristics to control CPU frequency and voltage scaling
US8117478B2 (en) * 2006-12-29 2012-02-14 Intel Corporation Optimizing power usage by processor cores based on architectural events
WO2011161782A1 (ja) * 2010-06-23 2011-12-29 富士通株式会社 マルチコアシステムおよび外部入出力バス制御方法
US8769316B2 (en) * 2011-09-06 2014-07-01 Intel Corporation Dynamically allocating a power budget over multiple domains of a processor

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110173363A1 (en) 2007-05-10 2011-07-14 Texas Instruments Incoporated Processor system with an application and a maintenance function
US20090249094A1 (en) 2008-03-28 2009-10-01 Microsoft Corporation Power-aware thread scheduling and dynamic use of processors
US20110047401A1 (en) 2009-08-24 2011-02-24 Werner James B Providing Adaptive Frequency Control For A Processor
US20110239015A1 (en) 2010-03-25 2011-09-29 International Business Machines Corporation Allocating Computing System Power Levels Responsive to Service Level Agreements

Also Published As

Publication number Publication date
US8924754B2 (en) 2014-12-30
US20130205141A1 (en) 2013-08-08
WO2013115821A1 (en) 2013-08-08
KR20140119806A (ko) 2014-10-10

Similar Documents

Publication Publication Date Title
KR101621776B1 (ko) 멀티코어 프로세서에서의 서비스 품질 타깃
US8959228B2 (en) Optimization of resource utilization in a collection of devices
US20190121671A1 (en) Flexible allocation of compute resources
US10027596B1 (en) Hierarchical mapping of applications, services and resources for enhanced orchestration in converged infrastructure
CN105791254B (zh) 网络请求处理方法、装置及终端
CN110166507B (zh) 多资源调度方法和装置
US11287999B2 (en) Multi-instance 2LM architecture for SCM applications
KR20200135717A (ko) 액세스 요청 처리 방법, 장치, 기기 및 저장 매체
Song et al. Scheduling a video transcoding server to save energy
Meng et al. Delay-sensitive task scheduling with deep reinforcement learning in mobile-edge computing systems
WO2022062981A1 (zh) 资源调度方法和系统、电子设备及计算机可读存储介质
Shu-Jun et al. Optimization and research of hadoop platform based on fifo scheduler
Pandya et al. Dynamic resource allocation techniques in cloud computing
Sheng et al. Fairness in serving large language models
Meng et al. Deep reinforcement learning based delay-sensitive task scheduling and resource management algorithm for multi-user mobile-edge computing systems
CN112527509A (zh) 一种资源分配方法、装置、电子设备及存储介质
CN110308965B (zh) 云数据中心的基于规则的启发式虚拟机分配方法及系统
Anusooya et al. Reducing the carbon emission by early prediction of peak time load in a data center
JP6158751B2 (ja) 計算機資源割当装置及び計算機資源割当プログラム
Elkholy et al. Self adaptive Hadoop scheduler for heterogeneous resources
CN108885565B (zh) 对游戏模式的操作系统支持
Tesfatsion et al. Power and performance optimization in FPGA‐accelerated clouds
US10264061B2 (en) User service access allocation method and system
KR101468357B1 (ko) 트랜스 코딩 서버의 cpu 전력 관리 방법
Zohrati et al. Flexible approach to schedule tasks in cloud‐computing environments

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
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: 20190507

Year of fee payment: 4