KR100953968B1 - 멀티 프로세서 및 이를 이용한 전원 절감 방법 - Google Patents

멀티 프로세서 및 이를 이용한 전원 절감 방법 Download PDF

Info

Publication number
KR100953968B1
KR100953968B1 KR1020080089936A KR20080089936A KR100953968B1 KR 100953968 B1 KR100953968 B1 KR 100953968B1 KR 1020080089936 A KR1020080089936 A KR 1020080089936A KR 20080089936 A KR20080089936 A KR 20080089936A KR 100953968 B1 KR100953968 B1 KR 100953968B1
Authority
KR
South Korea
Prior art keywords
processor
processors
resources
multiprocessor
usage
Prior art date
Application number
KR1020080089936A
Other languages
English (en)
Other versions
KR20100030951A (ko
Inventor
김양기
Original Assignee
엘지전자 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 엘지전자 주식회사 filed Critical 엘지전자 주식회사
Priority to KR1020080089936A priority Critical patent/KR100953968B1/ko
Publication of KR20100030951A publication Critical patent/KR20100030951A/ko
Application granted granted Critical
Publication of KR100953968B1 publication Critical patent/KR100953968B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • 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
    • 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/468Specific access rights for resources, e.g. using capability register
    • 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

본 발명은 메인 프로세서와 복수의 서브 프로세서가 구비된 멀티 프로세서에서 시스템 상황에 따라 동작하는 서브 프로세서의 수를 능동적으로 변경함으로써 전원절감 효과를 얻을 수 있는 멀티 프로세서 및 이를 이용한 전원 절감 방법에 관한 것이다. 본 발명은 연결 버스(300)를 통하여 서로 영향을 미치게 연결된 복수의 프로세서들(100, 200a 내지 200h)과; 상기 프로세서들을 시스템 자원들로 액세스하도록 하는 인터페이스(300, 400)와; 상기 프로세서 각각으로부터 시스템 자원 할당을 요청받아 상기 시스템 자원들을 할당하는 자원 관리자를 포함하여 구성되고: 상기 자원 관리자는, 프로세서 사용모드에 따라 가변되는 수의 프로세서로 상기 시스템 자원들을 할당한다. 이와 같은 본 발명에 의하면, 시스템 상태에 따라 구동되는 서브 프로세서의 수를 능동적으로 조절하여 전원 소모를 줄임으로써 배터리 전원 사용시간을 연장할 수 있다는 장점이 있다.
Figure R1020080089936
멀티 프로세서, 자원, 처리요소

Description

멀티 프로세서 및 이를 이용한 전원 절감 방법{MULTI PROCESSOR AND METHOD FOR REDUCING POWER CONSUMPTION USING THE SAME}
본 발명은 멀티 프로세서에 관한 것으로서, 하나의 메인 프로세서와 복수의 서브 프로세서가 구비된 멀티 프로세서에서 시스템 상황에 따라 동작하는 서브 프로세서의 수를 능동적으로 변경함으로써 전원절감 효과를 얻을 수 있는 멀티 프로세서 및 이를 이용한 전원 절감 방법에 관한 것이다.
최근에 컴퓨터 어플리케이션(application)들은 실시간 멀티미디어 기능을 포함하기 때문에 이와 같은 어플리케이션들을 실시간으로 실행하기 위해서는 보다 신속한 데이터의 처리가 요구되어 왔다. 특히 그래픽 어플리케이션들은 원활한 그래픽 디스플레이를 위하여 짧은 시간 내에 방대한 수의 데이터 액세스 및 데이터 연산을 요구하기 때문에 이와 같은 어플리케이션을 실행하기 위해서는 프로세서의 성능이 매우 중요하다. 따라서 빠른 처리 속도를 갖는 프로세서의 개발 요구에 따라 멀티프로세서 아키텍쳐가 등장하였고 이와 같은 멀티프로세서는 복수의 서브 프로세서(sub-processor)에서 데이터의 병렬 처리를 수행할 수 있도록 설계된다.
하지만 이와 같이 복수의 서브 프로세서를 구비하는 멀티 프로세서에서는 시 스템의 전원 상태나 현재 시스템에서 요구하는 데이터 처리량과 관계없이 모든 서브 프로세서가 지속적으로 구동됨으로써 전원 소모가 크다는 문제점이 있었다.
따라서 본 발명은 상기와 같은 종래의 문제점을 해결하기 위하여 안출된 것으로, 본 발명의 목적은 시스템 상태에 따라 구동되는 서브 프로세서의 수를 능동적으로 조절할 수 있는 멀티프로세서 및 이를 이용한 전원 절감 방법을 제공하는 것이다.
상기한 바와 같은 목적을 달성하기 위한 본 발명의 특징에 따르면, 본 발명은 연결 버스를 통하여 서로 영향을 미치게 연결된 복수의 프로세서들과; 상기 프로세서들을 시스템 자원들로 액세스하도록 하는 인터페이스와; 상기 프로세서 각각으로부터 시스템 자원 할당을 요청받아 상기 시스템 자원들을 할당하는 자원 관리자를 포함하여 구성되고: 상기 자원 관리자는, 프로세서 사용모드에 따라 가변되는 수의 프로세서로 상기 시스템 자원들을 할당한다.
여기서 상기 프로세서 사용모드는, 상기 복수의 프로세서들 모두에 자원이 할당되는 전부사용모드; 그리고 상기 복수의 프로세서 중 일부에만 자원이 할당되는 일부사용모드로 구분될 수 있다.
또한 상기 프로세서 사용모드는, 상기 시스템에 공급되는 전원의 종류에 따라 달리 설정될 수 있다.
그리고 상기 프로세서 사용모드는, 상기 시스템에 공급되는 배터리 전원의 잔량에 따라 달리 설정되거나, 상기 시스템에서 실행되고 있는 어플리케이션의 종 류에 따라 달리 설정될 수도 있다.
여기서 상기 복수의 프로세서들은, 시스템의 전반적인 제어를 담당하는 메인 프로세서; 그리고 상기 메인 프로세서를 보조하여 명령과 데이터를 처리하는 복수의 서브 프로세서를 포함하여 구성될 수 있다.
이때 상기 프로세서 사용모드는, 상기 메인 프로세서의 사용량에 따라 달리 설정될 수 있다.
그리고 상기 자원 관리자는, 상기 메인 프로세서로부터 자원 할당이 요청되면, 상기 프로세서 사용모드와 무관하게 상기 메인 프로세서로 상기 시스템 자원을 할당할 수 있다.
또한 상기 자원 관리자는, 상기 시스템 자원에 액세스할 수 있는 일정단위의 시간을 우선순위에 따라 상기 시스템 자원 할당을 요청한 프로세서에 할당함으로써 상기 시스템 자원을 관리할 수 있다.
한편 본 발명은 연결 버스를 통하여 서로 영향을 미치게 연결된 복수의 프로세서를 포함하여 구성되는 멀티 프로세서에 있어서, (A) 프로세서 사용모드를 결정하는 단계와; (B) 결정된 프로세서 사용모드에 따라 상기 멀티 프로세서가 구비되는 시스템의 자원을 할당할 프로세서를 선택하는 단계와; (C) 선택된 프로세서로부터의 요청에 대해서만 상기 시스템 자원을 할당하는 단계를 포함하여 수행될 수 있다.
여기서 상기 프로세서 사용모드는, 상기 복수의 프로세서들 모두에 자원이 할당되는 전부사용모드; 그리고 상기 복수의 프로세서 중 일부에만 자원이 할당되 는 일부사용모드로 구분될 수 있다.
이때 상기 (A)단계는, (A10) 상기 시스템에 공급되는 전원의 종류를 판별하는 단계와; (A11) 상기 전원이 AC 전원이면 상기 프로세서 사용모드를 전부사용모드로 결정하는 단계; 그리고 (A12) 상기 전원이 배터리 전원이면 상기 프로세서 사용모드를 일부사용모드로 결정하는 단계를 포함하여 수행될 수 있다.
또한 상기 (A)단계는, (A20) 상기 시스템에 공급되는 배터리 전원의 잔량을 측정하는 단계와; (A21) 상기 배터리 전원의 잔량을 하나 이상의 설정값과 비교하는 단계; 그리고 (A22) 상기 (A21)단계에서의 비교결과에 따라 상기 설정값을 기준으로 복수의 단계로 구분되는 프로세서 사용모드 중 상기 배터리 전원의 잔량이 포함되는 범위의 프로세서 사용모드가 선택되는 단계를 포함하여 수행될 수도 있다.
그리고 상기 (A)단계는, (A30) 현재 실행되고 있는 어플리케이션의 종류를 판별하는 단계; 그리고 (A31) 판별된 어플리케이션의 종류에 따라 기설정된 프로세서 사용모드가 선택되는 단계를 포함하여 수행될 수도 있다.
이때 상기 복수의 프로세서는, 시스템의 전반적인 제어를 담당하는 메인 프로세서; 그리고 상기 메인 프로세서를 보조하여 명령과 데이터를 처리하는 복수의 서브 프로세서를 포함하여 구성될 수 있다.
그에 따라 상기 (A)단계는, (A40) 상기 메인 프로세서의 사용량을 측정하는 단계와; (A41) 상기 메인 프로세서의 사용량을 하나 이상의 기준값과 비교하는 단계; 그리고 (A42) 상기 상기 (A41)단계에서의 비교결과에 따라 상기 기준값을 기준으로 복수의 단계로 구분되는 프로세서 사용모드 중 측정된 메인 프로세서의 사용 량이 포함되는 범위의 프로세서 사용모드가 선택되는 단계를 포함하여 수행될 수도 있다.
이상에서 상세히 설명한 바와 같이 본 발명에 의한 멀티프로세서 및 전원 절감 방법에 의하면 다음과 같은 효과를 기대할 수 있다.
즉, 시스템 상태에 따라 구동되는 서브 프로세서의 수를 능동적으로 조절하여 전원 소모를 줄임으로써 배터리 전원 사용시간을 연장할 수 있다는 장점이 있다.
이하에서는 본 발명의 구체적인 실시예에 의한 멀티프로세서의 구성을 도면을 참조하여 상세하게 설명한다.
도 1은 본 발명의 구체적인 실시예에 의한 멀티프로세서의 개략적인 구성을 도시한 블럭도이고, 도 2는 본 발명의 구체적인 실시예에 의한 멀티프로세서에 구비되는 주처리요소의 개략적인 구성을 도시한 블럭도이며, 도 3은 본 발명의 구체적인 실시예에 의한 멀티프로세서에 구비되는 부처리요소의 개략적인 구성을 도시한 블럭도이다.
도 1에 도시된 바와 같이 본 발명의 구체적인 실시예에 의한 멀티프로세서는 주처리요소(100)를 포함한다. 상기 주처리요소(100)는 일반적인 멀티-쓰레드 프로세서로서, 상기 멀티프로세서의 전반적인 제어를 담당하는 데이터 및 어플리케이션의 독립 처리가 가능한 메인 프로세서(main processor)일 수 있다.
그리고 상기 주처리요소(100)는 각종 어플리케이션의 실행을 위하여 운영체제를 운용한다. 또한 상기 주처리요소(100)는 후술할 부처리요소들(200a 내지 200h; 이하 200)에 의한 데이터 및 어플리케이션들의 처리를 예정하고 조정한다. 그에 따라 후술할 부처리요소(200)들은 상기 주처리요소(100)의 제어하에서, 병렬 및 독립 형식으로 데이터 및 어플리케이션들의 처리를 수행한다.
이와 같은 상기 주처리요소(100)는 도 2에 도시된 바와 같이 주처리유닛(110)과, 기억 보조 시스템(120)을 포함한다. 상기 주처리유닛(110)은 상기 멀티프로세서에 대한 명령어 세트를 비롯한 각종 명령의 실행을 담당한다. 상기 주처리유닛(110)은 L1(Level-1) 명령어 캐시(111)와 L1 데이터 캐시(112)를 포함하고, 6개의 실행유닛들을 포함한다.
한편 상기 기억 보조 시스템(120)은 상기 주처리유닛(110) 또는 후술할 연결버스로부터의 메모리 일관성(Memory coherent) 동작(예를 들어, snooping 동작)에 의한 모든 메모리 액세스를 처리한다. 상기 기억 보조 시스템(120)은 명령어와 데이터 통합된 L2(Level-2) 통합 캐시(121)를 포함하여 구성된다.
한편 상기 멀티프로세서에는 복수의 부처리요소(200)들이 구비된다. 상기 복수의 부처리요소(200)는 SIMD(Single Instruction Multiple data) 방식으로 명령을 실행하는 제어수단으로서 상기 주처리요소(100)에 대한 서브 프로세서(sub-processor)이다. 그리고 상기 부처리요소(200)들은 데이터 용량이 크고 연산 집약적인 SIMD 방식과 스칼라 어플리케이션에 특화된 RISC(reduced instruction set computer) 처리수단일 수 있다.
상기 부처리요소(200)는 도 3에 도시된 바와 같이, 부처리유닛(210)과 MFC(Memory Flow Controller)(220)를 포함하여 구성된다. 상기 부처리유닛(210)은 통합된(명령과 데이터) 로컬스토어(Local Store; 이하 'LS'라고 한다)로부터 명령어들을 불러온다. 그리고 LS와 모든 데이터 타입에 대한 단일 레지스터 파일 사이에 데이터를 로드하고 저장한다. 상기 부처리유닛(210)은 4 개의 실행 유닛과, DMA(Direct Memory Access) 인터페이스, 그리고 MFC(220)와 상기 주처리요소(100) 그리고 다른 디바이스들(다른 부처리요소(200) 포함)과의 통신을 위한 채널 인터페이스를 포함한다.
각각의 부처리유닛(210)은 자체의 프로그램 카운터를 갖는 독립된 프로세서 이다. 상기 부처리유닛(210)은 후술할 DMA 컨트롤러(221)를 이용하여 DMA 전환을 실행하는 MFC(220)에 의하여 DMA 전환을 요청함으로써 상기 LS(221)에 데이터를 채운다. 그리고 상기 부처리유닛(210)은 상기 LS(211)로부터 명령을 불러오고 실행하며, 상기 LS(221)로 또는 상기 LS(221)로부터 데이터를 로드하여 저장한다. 상기 LS(221)에는 상기 부처리유닛(210)의 기능 수행과 관련된 모든 명령어 및 데이터가 저장된다.
한편 상기 부처리요소(200)들 각각은 또한 상기 MFC(220)를 포함하여 구성되는데, 상기 MFC(220)는 연결버스에 의하여 주기억장치(도면 미도시)와 다른 처리요소들 그리고 각종 시스템 디바이스로 상기 부처리유닛(210)을 인터페이스하는 역할을 한다. 상기 MFC(220)의 주된 기능은 상기 LS(211)의 기억영역과 상기 주기억장치의 기억영역을 인터페이스 하는 것으로서, 상기 MFC(220)는 LS(211)와 상기 주기 억장치 사이의 명령어 및 데이터 이동을 담당하는 DMA 컨트롤러(221)에 의해 이를 수행한다.
이때 상기 DMA 컨트롤러(221)는 상기 LS(211)와 상기 주기억장치 사이의 명령어와 데이터의 직접 메모리 액세스(DMA) 이송(transfer)을 실행한다. 동일한 부처리요소(200) 내의 부처리유닛(210), 주처리요소(100) 또는 다른 부처리요소(200)나 장치 등에서 실행 중인 프로그램들은 DMA 명령을 발할 수 있다. 이때 상기 주처리요소(100)는 또한 로드 및 저장 명령을 이용하여 상기 주기억장치를 통해 상기 LS(211)로 액세스할 수도 있다.
한편 상기 멀티프로세서는 연결버스(300)를 포함하여 구성된다. 상기 연결버스(300)는 상기 멀티프로세서의 모든 처리요소들과 같은 칩 내에 구성되는(on-chip) 메모리와 Input-Output(I/O) 컨트롤러들 사이의 명령과 데이터의 이동 경로이다. 상기 연결버스는 완전한 메모리 일관성 및 대칭형 다중 처리(Symmetric multiprocessing)를 지원한다.
그리고 상기 멀티프로세서에는 메모리 인터페이스 컨트롤러(Memory Interface Controller, 이하 'MIC'라고 한다)(400)가 구비될 수 있다. 상기 MIC(400)는 상기 연결버스(300)와 물리적 메모리 사이의 연결을 제공하는 컨트롤러이다. 상기 MIC(400)에는 상기 멀티프로세서가 구비되는 시스템의 주기억장치(Main Memory)가 연결될 수 있다. 그리고 상기 주처리요소(100)와 상기 부처리요소(200)들은 상기 연결버스(300)와 상기 MIC(400)를 통해 상기 주기억장치를 공유메모리로 사용할 수 있다.
한편 상기 멀티프로세서에는 인터페이스 컨트롤러(500)가 구비된다. 상기 인터페이스 컨트롤러(500)는 연결버스(300)와 I/O 디바이스 사이의 데이터 이송을 관리하고, I/O 어드레스의 번역과 명령의 처리를 수행한다.
상기 인터페이스 컨트롤러(500)에는 하나 이상의 I/O 인터페이스(501, 502)가 연결된다. 도면에 도시된 바와 같이 둘 이상이 구비되는 경우, 상기 I/O 인터페이스(501, 502) 중 어느 하나는 오직 I/O 디바이스에 적당한 비일관성(non-coherent) I/O 인터페이스 프로토콜만 지원할 수 있다. 다른 I/O 인터페이스(501, 502)는 비일관성 I/O 인터페이스 프로토콜과 메모리-일관성 인터페이스 프로토콜을 지원할 수 있도록 소프트웨어적으로 선택가능하게 구비될 수 있다.
이하에서는 상술한 바와 같은 구성을 갖는 본 발명의 구체적인 실시예에 의한 멀티프로세서에서 각 처리유닛(주처리유닛과 부처리유닛들)에 시스템 자원을 할당하는 방법을 도 4를 참조하여 상세하게 설명한다.
도 4는 본 발명의 구체적인 실시예에 의한 멀티프로세서의 자원 할당 관리 (Resource Allocation Management)개념도이다.
우선, 상기 멀티프로세서가 구비되는 시스템 상에서 할당되는 자원은 상기 MIC(400)에 연결된 주기억장치의 각각의 메모리 뱅크와, I/O 인터페이스(501, 502)에 연결되는 디바이스 등이 될 수 있다.
여기서 I/O 자원들은 도 1에 도시된 두 개의 I/O 인터페이스(501, 502)를 지원하는 상기 인터페이스 컨트롤러(500)의 명령어 대기열(command queue)로 나타내었고, 메모리 자원은 상기 MIC(400)의 명령어 대기열로 나타내었다.
상기 연결버스(300) 상에서 관리된 자원들로 액세스하는 읽기 또는 쓰기 동작을 수행하기에 앞서, 각각의 자원 요청자들은 토큰(token) 관리자(600)에 특정 자원에 대한 토큰을 요청한다. 여기서 상기 자원 요청자는 도 1을 기준으로 설명하면, 상기 주처리요소(100)와 복수의 부처리요소(200) 각각, 그리고 상기 I/O 인터페이스(501, 502) 각각의 가상 채널들이 될 수 있다. 상기 I/O 인터페이스(501, 502)의 각각의 채널에 I/O 디바이스가 연결될 수 있기 때문이다.
상기 토큰 관리자는 토큰을 생성하고, 일정 시간 동안 한정된 수의 사용 가능한 토큰을 보유한다.
만약 해당 토큰이 사용 가능할 때 상기 토큰 관리자로 토큰 요청이 도달하면, 상기 인터페이스 컨트롤러(500) 또는 상기 MIC(400)의 명령어 대기열로부터 토큰 할당을 차단한다는 피드백이 수신되지 않는 한 토큰을 요청한 자원 요청자로 토큰이 할당된다. 다만, 상기 인터페이스 컨트롤러(500) 또는 상기 MIC(400)의 명령어 대기열로부터 토큰 할당을 차단한다는 피드백은 상기 부처리요소(200)와 상기 I/O 인터페이스(501, 502)에 연결된 I/O 디바이스에 대해서만 수신될 수 있고 상기 주처리요소(100)에 대해서는 토큰 할당을 차단한다는 피드백이 없도록 할 수 있다.
위와 같은 과정에 의해 토큰이 할당된 후에는 자원 요청자는 상기 연결버스(300)를 통해 자원에 액세스할 수 있게 된다.
여기서 상기 자원 요청자들로부터 복수의 자원 요청이 상기 토큰 관리자로 수신되면 상기 토큰 관리자는 우선순위에 따라 토큰을 할당하여 준다. 상기 주처리요소(100)는 모든 자원에 대한 토큰 요청에서 높은 우선순위를 갖도록 설정될 수 있다. 그리고 상기 부처리요소(200)는 주기억장치와 같은 메모리 액세스의 경우 높은 우선순위를 갖고, 그 외의 경우에는 해당 토큰 요청에 대하여 높은 우선순위로 토큰을 할당하도록 하는 특정 신호가 상기 토큰 관리자로 토큰 요청과 함께 수신되는 경우에만 높은 우선순위로 토큰을 할당받도록 할 수 있다. 그리고 복수의 자원 요청자로부터 동일한 우선순위의 토큰 요청이 있는 경우에는 라운드-로빈(Round-Robin) 방식에 의하여 토큰을 할당할 수 있다.
이하에서는 상술한 바와 같은 본 발명의 구체적인 실시예에 의한 멀티프로세서를 이용한 전원절감방법을 도면을 참조하여 상세하게 설명한다.
본 발명이 구체적인 실시예에 의한 멀티프로세서는 상술한 바와 같이 하나의 주처리요소(100)와 복수의 부처리요소(200) 등의 복수의 처리수단을 포함하고, 그에 따라 상기 주처리요소(100)는 시스템 전원 상태나 데이터 처리 요구량 등에 따라 적응적으로 동작하는 처리수단의 수를 조절할 수 있다.
따라서 상기 주처리요소(100)는 시스템 상황에 따라 동작하는 상기 부처리요소(200)의 수를 결정하고, 그에 따라 동작 중단할 부처리요소(200)를 선택한다. 그러므로 이하에서는 상기 부처리요소(200)가 모두 동작하는 시스템 상태를 전부사용모드로, 상기 부처리요소(200) 중 일부만 동작하는 시스템 상태를 일부사용모드로 하여 설명하도록 한다.
도 5는 본 발명의 구체적인 실시예에 의한 멀티프로세서의 전원 절감 방법을 단계적으로 도시한 흐름도이다.
도 5에 도시된 바와 같이, 본 발명의 구체적인 실시예에 의한 멀티프로세서 에서는 시스템 상황에 따라 상기 멀티프로세서를 전부사용모드로 구동할지, 일부사용모드로 구동할지 여부를 결정한다(S100).
이때 상기 제100단계(S100)에서 전부사용모드 또는 일부사용모드를 결정하는 기준은 다양하게 설정될 수 있다.
그 첫 번째 실시예로서, 상기 주처리요소(100)는 운영체제를 실행하므로, 상기 멀티프로세서가 구비된 시스템의 전원 공급 상태를 판단할 수 있다. 시스템에 AC전원이 공급되는 경우, 상기 주처리요소(100)는 상기 멀티프로세서가 전부사용모드로 구동되도록 결정할 수 있다. 그러나 시스템에 AC전원이 공급되지 않고, 배터리 전원만을 사용하여 구동되고 있는 경우, 상기 주처리요소(100)는 상기 멀티프로세서가 일부사용모드로 구동되도록 결정할 수 있다.
두 번째 실시예는, 상기 멀티프로세서에 의해 제어되는 시스템이 배터리 전원만으로 구동되는 상태에서, 상기 주처리요소(100)는 시스템 운영체제에 의하여 배터리 잔량을 판단하여 미리 설정된 설정값과 비교할 수 있다. 상기 주처리요소(100)는 배터리 잔량을 설정값과 비교한 결과에 따라 상기 멀티프로세서를 전부사용모드로 구동할지, 일부사용모드로 구동할지 여부를 결정할 수 있고, 상기 멀티프로세서가 일부사용모드로 구동되는 경우에도 배터리 잔량에 따라 구동되는 상기 부처리요소(200)의 수를 적응적으로 변경할 수 있다. 즉, 예를 들어 상기 멀티프로세서에 상기 부처리요소(200)가 도 1에 예시된 바와 같이 8개 구비되는 경우, 배터리 잔량이 배터리 전체용량의 75% 이상이면, 상기 부처리요소(200)가 모두 구동되도록 하고, 배터리 잔량이 배터리 전체용량의 50% 이상 75% 미만이면 상기 부처리 요소(200)가 6개만 구동되도록 할 수 있다. 또한 배터리 잔량이 배터리 전체용량의 50% 미만이면 상기 부처리요소(200)가 4개만 구동되도록 함으로써 전원소모를 방지하고 배터리 사용시간을 연장할 수 있다.
또한 상기 주처리요소(100)는 세 번째 실시예로서, 상기 멀티프로세서가 구비된 시스템에 현재 실행되고 있는 어플리케이션의 종류나 수에 따라 적응적으로 구동되는 부처리요소(200)의 수를 조절할 수 있다. 예를 들어, 시스템 상에 실행중인 어플리케이션이 3D 동영상을 제공하는 게임 프로그램 등 처리해야할 데이터량이 많은 어플리케이션인 경우, 상기 주처리요소(100)는 상기 멀티프로세서를 전부사용모드로 구동시킨다. 그러나 실행중인 어플리케이션이 음원 재생 등 처리해야할 데이터량이 적은 어플리케이션인 경우, 상기 주처리요소(100)는 상기 멀티프로세서를 일부사용모드로 구동시킨다. 이를 위하여 각각의 어플리케이션에 대하여 구동시킬 상기 부처리요소(200)의 수를 미리 설정할 수 있다.
그리고 또 하나의 실시예로, 상기 멀티프로세서의 상기 주처리요소(100)의 사용량을 측정하여 그에 따라 구동되는 상기 부처리요소(200)의 수를 결정하도록 할 수 있다.
여기서 상기 주처리요소(100)의 사용량은 여러 가지 방법에 의하여 간접적으로 측정할 수 있다. 예를 들어, 상기 토큰 관리자가 토큰 요청자들 전체에 할당된 토큰에 대한 상기 주처리요소(100)로 할당된 토큰의 비율을 측정함으로써 상기 주처리요소(100)의 사용량을 판단할 수 있다. 또는 각각의 시스템 자원에 대하여 일정시간 동안 상기 주처리요소(100)가 각각의 시스템 자원에 액세스한 시간 비율을 측정함으로써 상기 주처리요소(100)의 사용량을 판단할 수 있다.
또한 상기 멀티프로세서는 성능 감시 기능(Performance monitoring facility)을 갖는데, 상기 성능 감시 기능은 시스템 성능 분석을 돕고, 어플리케이션과 시스템 최적화 특징을 제공한다. 이때 상기 최적화 특징은, 프로세서 구조의 특징에 따른 디버깅(Debugging), 분석, 최적화와, 메모리 계층과 멀티 어드레스 공간의 상호작용, 태스크와 데이터의 스케줄링, 파티셔닝(Partitioning); 구조화를 최적화시키기 위한 시스템과 어플리케이션 알고리즘의 조율; 대역폭 사용과, 다른 자원 관리 상태를 모니터링함에 따른 실시간 어플리케이션 조율 등을 포함한다. 이때 상기 성능 감시 기능을 위하여 상기 멀티프로세서에는 복수의 카운터가 구비된다. 상기 카운터들은 상기 주처리유닛(100)의 각 쓰레드(thread)와, 상기 주처리유닛(100) 내에 구비되는 기억보조시스템(120)의 내부 논리 블럭들과, 상기 부처리유닛(200)들과, 상기 MFC(220)들과 그들의 내부 논리 블럭과, 상기 연결버스(300)와 상기 MIC(400)와 상기 인터페이스 컨트롤러(500) 들에서 발생되는 이벤트를 카운팅하도록 설정된다. 상기 카운터들은 한번에 한가지 타입의 이벤트를 모니터링하는데, 이때 이벤트의 종류는 i) 하나의 이벤트가 활성화되거나 비활성화되는 주기와, ii) 두 이벤트가 전환되는 경계(원하는 이벤트의 카운팅을 시작하기 전에 카운터는 특정 트리거(trigger)가 발생할 때까지 카운팅하지 않고 대기할 수 있다)와, iii) 특정 트리거 이벤트가 발생하기 전까지의 주기 등이 될 수 있다. 이와 같은 상기 카운터의 카운팅 결과는 사용자 프로그램에 의해 독출될 수 있는데, 예를 들어 LPAR(Logical PARtition; 논리적 분할)에 의해 구동되는 사용자 프로그램은 그 관 리 소프트웨어로 시스템 콜(System call)을 만들 수 있다.
따라서 상기 주처리요소(100)의 사용량을 판단하기 위하여, 상기 카운터에서 카운팅되는 단위시간당 상기 주처리요소(100)에 대해 발생한 이벤트 수 등을 참조할 수도 있다.
또한 상기 주처리요소(100)의 상기 연결버스(300)를 통한 다른 구성요소로의 액세스 빈도 등을 통해 상기 주처리요소(100)의 사용량을 측정할 수도 있다.
이와 같이 상기 주처리요소(100)의 사용량을 설정된 바에 따라 판단함으로써 상기 멀티프로세서를 전부사용모드로 구동시킬 것인지, 일부사용모드로 구동시킬 것인지, 일부사용모드로 구동한다면 몇 개의 부처리요소(200)를 구동시킬 것인지 등을 결정한다.
상기 제100단계에서 상술한 바와 같은 다양한 실시예에 따른 방법에 의하여, 상기 멀티프로세서의 사용모드를 전부사용모드로 결정한 경우, 상기 토큰 관리자로 특정 자원에 대하여 토큰 요청이 수신되면(S110), 상기 토큰 관리자는 토큰을 요청한 토큰 요청자가 상기 부처리요소(200) 중 어느 것이라도 우선순위에 따라 토큰을 할당한다(S120). 그에 따라 상기 부처리요소(200)는 해당 자원으로 액세스하여 명령에 따른 동작을 수행하게 된다.
그러나 상기 제100단계에서 상술한 바와 같은 실시예에 의하여 상기 멀티프로세서의 사용모드를 일부사용모드로 결정한 경우, 상기 멀티프로세서의 상기 주처리요소(100)는 상기 제100단계에서 결정된 구동할 부처리요소(200)의 수에 따라, 구동시킬 부처리요소(200)와 동작을 중단시킬 부처리요소(200)를 선택한다(S130). 예를 들어, 도 1에서와 같이 8개의 부처리요소(200)가 구비되고 이 중 4개의 부처리요소(200)만 구동되도록 결정된 경우, 상기 부처리요소(200)들 중 부처리요소 #1(200a), 부처리요소 #3(200c), 부처리요소 #5(200e), 부처리요소 #7(200g)는 동작하도록 결정하고 부처리요소 #2(200b), 부처리요소 #4(200d), 부처리요소 #6(200f), 부처리요소 #8(200h)는 동작 중단되도록 결정할 수 있다.
그리고 상기 토큰 관리자로 특정 자원에 대한 토큰 요청이 수신되면(S140) 상기 토큰 관리자는 토큰 할당을 요청한 자원 요청자가 상기 제130단계(S130)에서 동작 중단되도록 선택된 부처리요소(200)인지 여부를 판단한다(S150).
상기 제150단계(S150)에서의 판단결과, 토큰 할당을 요청한 자원 요청자가 상기 제130단계에서 선택된 부처리요소(200) 중 하나인 것으로 판단되면, 상기 토큰 관리자는 해당 부처리요소(200)로의 토큰 할당을 거절한다(S160).
그에 따라 상기 제130단계에서 선택된 부처리요소(200)에 대해서는 명령 실행에 필요한 자원이 할당되지 않고, 따라서 필요한 자원에 대한 토큰을 할당받지 못한 부처리요소(200)는 동작을 중단하게 된다. 그리고 동작이 중단된 부처리요소(200)로 공급되는 전원 소모량이 줄어들어 전원 절감 효과가 나타난다. 이때 해당 부처리요소(200)에서 처리될 명령은 다른 동작하는 부처리요소(200)에서 처리된다.
한편 상기 제150단계에서의 판단 결과, 토큰 할당을 요청한 자원 요청자가 상기 제130단계에서 선택된 부처리요소(200)가 아닌 경우, 상기 토큰 관리자는 해당 부처리요소(200)로의 토큰을 우선순위에 따라 할당한다(S120).
본 발명의 권리는 위에서 설명된 실시예에 한정되지 않고 청구범위에 기재된 바에 의해 정의되며, 본 발명의 분야에서 통상의 지식을 가진 자가 청구범위에 기재된 권리범위 내에서 다양한 변형과 개작을 할 수 있다는 것은 자명하다.
도 1은 본 발명의 구체적인 실시예에 의한 멀티프로세서의 개략적인 구성을 도시한 블럭도.
도 2는 본 발명의 구체적인 실시예에 의한 멀티프로세서에 구비되는 주처리요소의 개략적인 구성을 도시한 블럭도.
도 3은 본 발명의 구체적인 실시예에 의한 멀티프로세서에 구비되는 부처리요소의 개략적인 구성을 도시한 블럭도.
도 4는 본 발명의 구체적인 실시예에 의한 멀티프로세서의 자원 할당 관리 개요도.
도 5는 본 발명의 구체적인 실시예에 의한 멀티프로세서의 전원 절감 방법을 단계적으로 도시한 흐름도.
**도면의 주요 부분에 대한 부호의 설명**
100: 주처리요소 110: 주처리유닛
111: L1 명령어 캐시 112: L1 데이터 캐시
120: 기억 보조 시스템 121: L2 통합 캐시
200a 내지 200h: 부처리요소 210: 부처리유닛
211: LS 220: MFC
221: DMA 컨트롤러

Claims (16)

  1. 연결 버스를 통하여 서로 영향을 미치게 연결된 복수의 프로세서들과;
    상기 프로세서들을 시스템 자원들로 액세스하도록 하는 인터페이스와;
    상기 프로세서 각각으로부터 시스템 자원 할당을 요청받아 상기 시스템 자원들을 할당하는 자원 관리자를 포함하여 구성되는 멀티프로세서에 있어서,
    상기 복수의 프로세서들은, 시스템의 전반적인 제어를 담당하는 메인 프로세서; 그리고 상기 메인 프로세서를 보조하여 명령과 데이터를 처리하는 복수의 서브 프로세서를 포함하여 구성되고,
    상기 자원 관리자는, 상기 메인 프로세서의 사용량에 따라 달리 설정되는 프로세서 사용모드에 따라 가변되는 수의 프로세서로 상기 시스템 자원들을 할당함을 특징으로 하는 멀티프로세서.
  2. 제1항에 있어서,
    상기 프로세서 사용모드는,
    상기 복수의 프로세서들 모두에 자원이 할당되는 전부사용모드; 그리고
    상기 복수의 프로세서 중 일부에만 자원이 할당되는 일부사용모드로 구분됨을 특징으로 하는 멀티프로세서.
  3. 삭제
  4. 삭제
  5. 삭제
  6. 삭제
  7. 삭제
  8. 제1항에 있어서,
    상기 자원 관리자는,
    상기 메인 프로세서로부터 자원 할당이 요청되면, 상기 프로세서 사용모드와 무관하게 상기 메인 프로세서로 상기 시스템 자원을 할당함을 특징으로 하는 멀티프로세서.
  9. 제1항에 있어서,
    상기 자원 관리자는,
    상기 시스템 자원에 액세스할 수 있는 일정단위의 시간을 우선순위에 따라 상기 시스템 자원 할당을 요청한 프로세서에 할당함으로써 상기 시스템 자원을 관리함을 특징으로 하는 멀티 프로세서.
  10. 시스템의 전반적인 제어를 담당하는 메인 프로세서, 그리고 상기 메인 프로세서를 보조하여 명령과 데이터를 처리하는 복수의 서브 프로세서를 포함하며, 연결 버스를 통하여 서로 영향을 미치게 연결된 복수의 프로세서를 포함하여 구성되는 멀티 프로세서에 있어서,
    (A) 프로세서 사용모드를 결정하는 단계와;
    (B) 결정된 프로세서 사용모드에 따라 상기 멀티 프로세서가 구비되는 시스템의 자원을 할당할 프로세서를 선택하는 단계와;
    (C) 선택된 프로세서로부터의 요청에 대해서만 상기 시스템 자원을 할당하는 단계를 포함하여 수행되고,
    상기 (A)단계는,
    (A10) 상기 메인 프로세서의 사용량을 측정하는 단계와;
    (A11) 상기 메인 프로세서의 사용량을 하나 이상의 기준값과 비교하는 단계; 그리고
    (A12) 상기 (A11)단계에서의 비교결과에 따라 상기 기준값을 기준으로 복수의 단계로 구분되는 프로세서 사용모드 중 측정된 메인 프로세서의 사용량이 포함되는 범위의 프로세서 사용모드가 선택되는 단계를 포함하여 수행됨을 특징으로 하는 멀티 프로세서의 전원 절감 방법.
  11. 제10항에 있어서,
    상기 프로세서 사용모드는,
    상기 복수의 프로세서들 모두에 자원이 할당되는 전부사용모드; 그리고
    상기 복수의 프로세서 중 일부에만 자원이 할당되는 일부사용모드로 구분됨을 특징으로 하는 멀티 프로세서의 전원 절감 방법.
  12. 제11항에 있어서,
    상기 (A)단계는,
    (A20) 상기 시스템에 공급되는 전원의 종류를 판별하는 단계와;
    (A21) 상기 전원이 AC 전원이면 상기 프로세서 사용모드를 전부사용모드로 결정하는 단계를 더 포함하여 수행됨을 특징으로 하는 멀티 프로세서의 전원 절감 방법.
  13. 삭제
  14. 삭제
  15. 삭제
  16. 삭제
KR1020080089936A 2008-09-11 2008-09-11 멀티 프로세서 및 이를 이용한 전원 절감 방법 KR100953968B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020080089936A KR100953968B1 (ko) 2008-09-11 2008-09-11 멀티 프로세서 및 이를 이용한 전원 절감 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020080089936A KR100953968B1 (ko) 2008-09-11 2008-09-11 멀티 프로세서 및 이를 이용한 전원 절감 방법

Publications (2)

Publication Number Publication Date
KR20100030951A KR20100030951A (ko) 2010-03-19
KR100953968B1 true KR100953968B1 (ko) 2010-04-21

Family

ID=42180761

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020080089936A KR100953968B1 (ko) 2008-09-11 2008-09-11 멀티 프로세서 및 이를 이용한 전원 절감 방법

Country Status (1)

Country Link
KR (1) KR100953968B1 (ko)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20060131543A (ko) * 2005-06-16 2006-12-20 엘지전자 주식회사 멀티-코어 프로세서의 프로세서 모드 제어장치 및 방법
KR20070013631A (ko) * 2005-07-26 2007-01-31 엘지전자 주식회사 멀티-코어 프로세서의 전원 제어 장치 및 방법
KR20070022034A (ko) * 2004-03-31 2007-02-23 코웨어, 인코포레이티드 멀티코어 아키텍처내의 리소스 관리

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20070022034A (ko) * 2004-03-31 2007-02-23 코웨어, 인코포레이티드 멀티코어 아키텍처내의 리소스 관리
KR20060131543A (ko) * 2005-06-16 2006-12-20 엘지전자 주식회사 멀티-코어 프로세서의 프로세서 모드 제어장치 및 방법
KR20070013631A (ko) * 2005-07-26 2007-01-31 엘지전자 주식회사 멀티-코어 프로세서의 전원 제어 장치 및 방법

Also Published As

Publication number Publication date
KR20100030951A (ko) 2010-03-19

Similar Documents

Publication Publication Date Title
US9280393B2 (en) Processor provisioning by a middleware processing system for a plurality of logical processor partitions
Yun et al. Memory bandwidth management for efficient performance isolation in multi-core platforms
US9086925B2 (en) Methods of processing core selection for applications on manycore processors
US6871264B2 (en) System and method for dynamic processor core and cache partitioning on large-scale multithreaded, multiprocessor integrated circuits
US8302098B2 (en) Hardware utilization-aware thread management in multithreaded computer systems
JP2002202959A (ja) 動的な資源分配をする仮想計算機システム
GB2421325A (en) Setting a thread to a wait state using a wait instruction
JPH0640324B2 (ja) マルチプロセッサ・システムおよびそのプロセス同期方法
US10908955B2 (en) Systems and methods for variable rate limiting of shared resource access
Yun et al. Bwlock: A dynamic memory access control framework for soft real-time applications on multicore platforms
WO2016057335A1 (en) Operation parameter control based upon queued instruction characteristics
Gifford et al. Dna: Dynamic resource allocation for soft real-time multicore systems
Yu et al. Colab: a collaborative multi-factor scheduler for asymmetric multicore processors
Zhao et al. A survey of GPU multitasking methods supported by hardware architecture
Caheny et al. Reducing cache coherence traffic with hierarchical directory cache and numa-aware runtime scheduling
Chiang et al. Kernel mechanisms with dynamic task-aware scheduling to reduce resource contention in NUMA multi-core systems
Herrero et al. Thread row buffers: Improving memory performance isolation and throughput in multiprogrammed environments
Gupta et al. Timecube: A manycore embedded processor with interference-agnostic progress tracking
CN114564300A (zh) 用于动态分派内存带宽的方法
KR101557995B1 (ko) 다중 운영체제를 지원하는 단말기 및 그 단말기에 대한시스템 자원 할당 방법
JP6201591B2 (ja) 情報処理装置および情報処理装置の制御方法
Zhao et al. Insight and reduction of MapReduce stragglers in heterogeneous environment
KR100953968B1 (ko) 멀티 프로세서 및 이를 이용한 전원 절감 방법
KR101449046B1 (ko) 멀티 프로세서 및 이를 이용한 전원 절감 방법
Cho et al. Adaptive space-shared scheduling for shared-memory parallel programs

Legal Events

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

Payment date: 20130326

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20140414

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20160324

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20170324

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20180323

Year of fee payment: 9