KR20110062926A - 우선순위 기반의 저전력 프로세서 스케줄링 방법 및 시스템 - Google Patents

우선순위 기반의 저전력 프로세서 스케줄링 방법 및 시스템 Download PDF

Info

Publication number
KR20110062926A
KR20110062926A KR1020090119799A KR20090119799A KR20110062926A KR 20110062926 A KR20110062926 A KR 20110062926A KR 1020090119799 A KR1020090119799 A KR 1020090119799A KR 20090119799 A KR20090119799 A KR 20090119799A KR 20110062926 A KR20110062926 A KR 20110062926A
Authority
KR
South Korea
Prior art keywords
processor
priority
mode
processors
flow
Prior art date
Application number
KR1020090119799A
Other languages
English (en)
Other versions
KR101628376B1 (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 KR1020090119799A priority Critical patent/KR101628376B1/ko
Publication of KR20110062926A publication Critical patent/KR20110062926A/ko
Application granted granted Critical
Publication of KR101628376B1 publication Critical patent/KR101628376B1/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/5094Allocation of resources, e.g. of the central processing unit [CPU] where the allocation takes into account power or heat criteria
    • 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/3243Power saving in microcontroller unit
    • 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/329Power saving characterised by the action undertaken by task scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/18Handling requests for interconnection or transfer for access to memory bus based on priority control

Landscapes

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

Abstract

우선순위 기반의 저전력 프로세서 스케줄링 방법 및 시스템을 제공한다. 저전력 프로세서 스케줄링 시스템은 입력된 패킷을 플로우별로 분류하는 프로세서 배차부, 및 상기 분류된 플로우를 각 프로세서로 할당하여 상기 각 프로세서에서 상기 플로우를 처리하도록 제어하는 프로세서 어레이를 포함한다. 특히, 본 발명의 일실시예는 플로우 기반의 네트워크 프로세서에서 처리를 하고 있지 않은 대기 프로세서가 발생하였을 때, 프로세서의 상태모드를 변환해주고, 이를 관리함으로써, 에너지 소비를 줄일 수 있다.
멀티 프로세서, 플로우 기반 네트워크 프로세서, 스케줄링, 저전력, 우선순위

Description

우선순위 기반의 저전력 프로세서 스케줄링 방법 및 시스템{SYSTEM AND METHOD FOR SCHEDULLING LOW-POWER PROCESSOR BASED ON PRIORITY}
본 발명의 일실시예들은 라우터, 게이트웨이, 셋탑박스 등에 내장되어 입력된 패킷을 처리하고 내보내는 멀티 코어로 이루어진 네트워크 프로세서에서 패킷을 플로우로 구분하여 처리할 때 코어의 개수보다 처리해야 할 플로우의 개수가 적을 경우 잉여 프로세서를 효과적으로 관리하여 전체 에너지 소모를 줄이는 프로세서 스케줄링 관리에 관한 기술이다.
인터넷이 발달하면서 네트워크의 역할도 증가하였다. 따라서, 네트워크는 지능적으로 패킷을 관리하고 전달할 수 있어야 한다. 이에 따라, 네트워크 시장은 최선형(best-effort)기반의 네트워크에서 플로우 기반의 네트워크로 빠르게 진화하고 있다. 플로우 분류는 주로 입력 패킷의 계층 2에서 계층 4의 패킷 헤더를 이용하여 분류하고 있으며 계층 7까지 확장하는 추세이다. 플로우 단위 패킷을 처리하기 위하여 네트워크 프로세서가 사용되고 있으며, 고성능 대용량 처리를 위하여 프로세서 어레이를 적용한다.
네트워크 프로세서를 기반으로 한 플로우 처리 종래의 기술로서 시스코사가 개발한 퀀텀 플로우 프로세서 처리 기술이 있다. 퀀텀 플로우 프로세서 처리 기술은 인터페이스 혹은 포트를 보고 패킷을 플로우로 분류한 후 패킷을 일정 크기의 퀀텀으로 나누고 이를 160개의 쓰레드 중에서 처리를 하고 있지 않은 쓰레드로 퀀텀을 할당하여 처리하는 방식이다. 따라서 패킷들의 속성이 소수의 플로우에 속하는 집중형이나, 다수의 플로우에 해당하는 분선형인지에 상관없이 전체 쓰레드를 지속적으로 사용하며, 다수개의 쓰레드가 병렬로 동시에 처리되므로 처리율이 높다.
하지만 높은 처리율이 필요 없는 경우, 예를 들어 하나의 쓰레드로 처리율을 맞출 수 있는 경우에도 다수개의 쓰레드를 사용함으로써 필요 이상으로 많은 프로세서를 구동시킴으로써 에너지 소모를 필요이상으로 한다는 단점을 들 수 있다. 또한, 다수개의 프로세서에서 처리된 퀀텀을 입력 순서대로 맞추어 출력하기 위해 순서를 맞추는 알고리즘이 따로 존재하게 되며 별도의 처리시간이 필요하게 된다.
네트워크 프로세서를 기반으로 한 플로우 처리 관련 종래의 기술 중 하나인 카스피안 네트워크사의 플로우 병렬 처리 기술이 있다. 플로우 병렬 처리 기술은 입력되는 패킷의 계층 2에서 계층 4 필드를 이용하여 플로우를 구분하고 플로우 별로 순서를 유지하면서 병렬 처리를 수행하는 프로세서들에게 나누어 할당함으로써 플로우의 순서와 각 프로세서들의 처리 성능을 보장하는 방법을 제안하였다.
그러나, 플로우의 개수가 프로세서의 개수보다 많을 경우 모든 프로세서가 처리를 하므로 최대의 효율을 낼 수 있으나, 플로우의 개수가 프로세서의 개수보다 적을 경우에는 플로우 개수에 해당하는 개수의 프로세서가 패킷을 처리하게 되며, 이에 따라 처리를 하고 있지 않은 대기 프로세서가 발생한다.
한편 중앙처리장치(CPU)와 같은 마이크로프로세서가 트랜지스터 수와 주파수의 증가로 고성능화 되어 가고, 또한 이러한 마이크로프로세서의 개수가 증가하고 있어 컴퓨터 설계자나 제조업자는 전력이나 에너지 소비 증가 문제에 자주 직면하게 된다. 특히 네트워크 전용 프로세서의 경우 처리율을 높이기 위해 일반적으로 많은 수의 프로세서가 내장되기 때문에 소비 전력 문제는 더욱 심각하다.
전력 소모가 증가하면 장치가 과열되어 성능에 악영향을 미칠 뿐만 아니라 디바이스의 수명도 현저히 단축된다. 전체 에너지 소모를 줄이기 위한 일례로 특정 컴포넌트의 경우 그 활동이나 요구가 감소하는 경우에 저전력 슬립 상태(sleep state)로 전환하는 방법 등을 사용하기도 한다.
하지만 플로우 기반의 네트워크 프로세서에서 프로세서의 상태 변환에 관한 기술이 공개된 바 없으며, 일반적인 상태 변환 기법을 사용하기에는 프로세서의 수가 많아 이를 관리하기 힘들다.
본 발명의 일실시예는 플로우 기반의 네트워크 프로세서에서 처리를 하고 있지 않은 대기 프로세서가 발생하였을 때 프로세서의 모드를 변환해 주고, 이를 관리해 줌으로써 에너지 소비를 줄이는 저전력 프로세서 스케줄링 방법 및 시스템을 제공한다.
본 발명의 일실시예에 따른 저전력 프로세서 스케줄링 시스템은 입력된 패킷을 플로우별로 분류하는 프로세서 배차부, 및 상기 분류된 플로우를 각 프로세서로 할당하여 상기 각 프로세서에서 상기 플로우를 처리하도록 제어하는 프로세서 어레이를 포함한다.
이때, 상기 프로세서 배차부는 복수의 프로세서들의 상태모드를 포함하는 플로우 테이블, 상기 입력된 패킷을 헤더와 페이로드로 구분하고, 상기 구분된 헤더를 분석하여 플로우로 나누어주는 파써, 및 상기 플로우 테이블을 참조하여 상기 나누어진 플로우가 상기 각 프로세서에 전달되도록 제어하는 제어부를 포함한다.
또한, 상기 제어부는 상기 각 프로세서의 우선순위를 제어하는 우선순위 제어부를 포함하고, 상기 우선순위 제어부는 상기 복수의 프로세서들의 개수와 상기 플로우의 개수에 따라 상기 각 프로세서의 우선순위를 결정할 수 있다.
또한, 상기 제어부는 상기 결정된 우선순위에 따라 상기 각 프로세서의 상태모드를, 비지 모드, 스탠바이 모드, 슬립 모드, 또는 턴오프 모드 중 어느 하나 로 제어하는 모드 제어부를 더 포함할 수 있다.
이때, 상기 우선순위 제어부는 상기 플로우의 개수가 상기 복수의 프로세서들의 개수보다 작은 경우, 일정주기에 따라 상기 각 프로세서의 우선순위를 변경할 수 있다.
또한, 상기 우선순위 제어부는 우선순위 카운터값을 리셋한 후, 상기 복수의 프로세서들의 상태모드 중 슬립 모드 또는 턴오프 모드인 프로세서가 있는지 검사하고, 상기 슬립 모드 또는 상기 턴오프 모드인 프로세서가 있는 경우, 상기 우선순위 카운터값을 증가시키고, 상기 우선순위 카운터값이 우선순위 대기시간보다 같거나 큰 경우, 상기 각 프로세서의 우선순위를 변경할 수 있다.
이때, 상기 프로세서 어레이는 복수의 프로세서들을 포함하고, 상기 플로우 테이블을 참조하여 상기 분류된 플로우를 상기 각 프로세서로 할당할 수 있다.
본 발명의 일실시예에 따른 저전력 프로세서 스케줄링 방법은 복수의 프로세서에 상응하는 상태모드를 포함하는 플로우 테이블을 유지하는 단계, 입력된 패킷을 플로우별로 분류하는 단계, 상기 플로우 테이블을 참고하여 상기 분류된 플로우를 각 프로세서로 할당하는 단계, 및 상기 각 프로세서에서 상기 플로우를 처리하는 단계를 포함한다.
본 발명의 일실시예에 따르면, 플로우 기반의 네트워크 프로세서에서 플로우의 개수가 프로세서 어레이를 구성하고 있는 프로세서의 개수보다 적을 경우에 대기 프로세서를 플로우의 개수에 따른 정책에 따라 해당 모드로 전환하여 전체 에 너지 소모를 낮출 수 있다.
이때, 프로세서의 모드 관리를 위하여 프로세서는 우선순위를 부여받게 되며 새로이 입력된 플로우는 우선순위가 높은 프로세서에 처리할 데이터를 인가하게 된다. 또한 우선순위가 높은 프로세서에 처리가 집중됨으로 인한 문제점을 개선하기 위하여 조건에 따라 특정 주기로 우선순위를 변경시켜준다.
이하, 첨부 도면들 및 첨부 도면들에 기재된 내용들을 참조하여 본 발명의 다양한 실시예를 상세하게 설명하지만, 본 발명이 실시예에 의해 제한되거나 한정되는 것은 아니다.
플로우 기반의 네트워크 프로세서에서 플로우 수가 프로세서의 수보다 적을 경우 발생하는 대기 프로세서를 관리하기 위해 본 발명에서는 크게 두 가지 기술을 사용한다.
첫 번째는 대기 프로세서를 효과적으로 관리하기 위해 프로세서 별로 우선순위를 부여하여 프로세서의 상태모드를 관리한다.
두 번째는 프로세서에 우선순위를 부여하여 프로세서의 상태모드를 관리하였을 때 우선순위가 높은 프로세서에 과부하가 걸리는 것을 방지하기 위해 주기적으로 프로세서의 우선순위를 변경해 주는 알고리즘을 사용한다.
도 1은 본 발명의 일실시예에 따른 저전력 프로세서 스케줄링 시스템을 도시한 블록도이다.
도 1을 참고하면, 저전력 프로세서 스케줄링 시스템(100)은 프로세서 배차 부(110), 프로세서 어레이(120), 프로세서 전송부(130), 및 데이터 메모리(140)를 포함할 수 있다.
프로세서 배차부(110, Pd: Processor dispatcher)는 입력된 패킷을 플로우 별로 분류하는 기능과 처리해야 할 헤더 부분과 페이로드 부분을 나누고 이를 더 작은 단위로 나누어서 프로세서 어레이(120)의 적절한 프로세서(P1~PN)로 전송해 주는 역할을 한다. 이때, 프로세서 배차부(110)는 상기 나누어진 페이로드 부분을 데이터 메모리(140)에 저장한다. 프로세서 배차부(110)는 프로세서 어레이(120)의 각 프로세서(P1~PN)와 컨트롤 신호를 통해 각 프로세서의 상태를 관리하고 적합한 프로세서로 처리해야 할 패킷을 전송하게 된다.
프로세서 어레이(120)는 상기 전송된 패킷을 처리하는 역할을 한다. 이러한, 프로세서 어레이(120)는 복수의 프로세서들로 이루어져 있으며, 하나의 프로세서는 하나의 플로우를 처리하게 된다. 각 프로세서는 하나의 플로우를 모두 처리하면 다른 플로우를 처리할 수 있다.
프로세서 전송부(130, Pt: Processor Transmitter)는 프로세서 어레이(120)로부터 처리된 패킷을 저장하였다가 데이터 메모리(140)에 저장되어 있는 페이로드부분과 처리된 패킷 해더를 조합하여 패킷을 전송하는 역할을 한다.
도 2는 본 발명의 일실시예에 따른 프로세서 배차부의 내부 구조와 프로세서 어레이와 프로세서 배차부간의 제어 신호를 도시한 도면이다.
도 2를 참고하면, 프로세서 배차부(110)는 파써(210), 제어부(220), 우선순위 제어부(221), 모드 제어부(222), 플로우 테이블(230)를 포함할 수 있다.
플로우 테이블(230)은 프로세서 어레이(120)에 포함된 복수의 프로세서들의 상태모드를 포함한다.
파써(210, parser)는 상기 입력된 패킷을 헤더와 페이로드로 구분하고, 상기 구분된 헤더를 분석하여 플로우로 나누어준다.
제어부(220)는 플로우 테이블(230)을 참조하여 상기 나누어진 플로우가 상기 각 프로세서에 전달되도록 제어한다.
제어부(220)는 상기 각 프로세서의 우선순위를 제어하는 우선순위 제어부(221)와 상기 우선순위에 따라 상기 각 프로세서의 상태모드를, 비지 모드, 스탠바이 모드, 슬립 모드, 또는 턴오프 모드 중 어느 하나로 제어하는 모드 제어부(222)를 포함할 수 있다.
이때, 우선순위 제어부(221)는 상기 복수의 프로세서들의 개수와 상기 플로우의 개수에 따라 상기 각 프로세서의 우선순위를 결정할 수 있다. 예컨대, 우선순위 제어부(221)는 상기 플로우의 개수가 상기 복수의 프로세서들의 개수보다 작은 경우, 일정주기에 따라 상기 각 프로세서의 우선순위를 변경할 수 있다.
Figure 112009075053036-PAT00001
표 1은 프로세서 배차부에서 프로세서 어레이의 각 프로세서에 전달되는 신호에 따른 PN의 상태모드를 나타낸다.
'off_req_N'이 1이면 PN은 전원을 끄게 되며, 'off_req_N'이 0인 상태에서 'sleep_req_N'이 1이면 슬립(sleep) 모드, 0이면 스텐드 바이(stand by)모드로 된다. 전원 측면에서 바라보면 정상전압인가모드, 저전압인가모드, 전원이 들어가지 않는 모드, 총 3가지 모드로 나눌 수 있다.
Figure 112009075053036-PAT00002
표 2는 PN의 상태를 프로세서 배차부에게 전달해 주는 제어신호에 따른 PN의 상태를 나타낸다.
여기서, 프로세서의 상태모드는 비지(busy) 모드, 스탠바이(stand by) 모드, 슬립 모드, 또는 턴오프(turn off) 모드 등, 총 4가지로 구분한다.
비지 모드와 스태바이 모드는 정상적인 전압이 인가되고 있는 상태, 슬립 모드는 데이터를 잃지 않을 만큼의 최저 전압을 인가한 상태, 턴오프 모드는 전원이 들어가지 않은 상태를 의미하게 된다.
또한, 비지 모드와 스탠바이 모드의 차이점은 비지 모드에서는 PN이 처리를 하고 있는 상태이며, 스탠바이 모드에서는 PN이 처리를 하고 있지 않고 처리해야 할 데이터를 기다리고 있는 상태이다.
Figure 112009075053036-PAT00003
표 3은 플로우 테이블의 일례를 보여주고 있다. 플로우 테이블(230)은 프로세서 어레이를 구성하고 있는 N개의 프로세서에 대한 정보 즉, 현재 부여된 우선순위, 현재 처리하고 있는 플로우 번호, 그리고 현재 프로세서의 모드를 저장할 수 있다.
도 3 내지 도 11은 본 발명의 일실시예에 따른 프로세서 개수와 플로우의 개수에 따른 각 프로세서의 상태모드를 도시한 도면이다.
도 3을 참고하면, 처리해야 할 플로우의 개수가 프로세서 어레이를 이루고 있는 프로세서의 개수보다 많거나 같을 때를 나타내고 있다. 이러한 경우, 모든 프로세서는 해당 플로우를 처리하게 된다. 모든 프로세서가 패킷을 처리하고 있기 때문에 '비지 모드'에 해당한다.
도 4부터 도 7까지는 처리해야 할 플로우의 개수가 프로세서 어레이를 이루고 있는 프로세서의 개수보다 적을 경우이다.
도 4를 참고하면, 플로우를 처리하고 있는 프로세서는 비지 모드이며, 플로우를 처리하지 않고 대기상태로 존재하는 프로세서는 스탠바이 모드일 수 있다.
이와 같이, 스탠바이 모드로 존재하는 프로세서는 데이터를 처리하고 있지 않지만 처리하고 있는 프로세서(비지 모드)와 동일한 전압이 인가되어 있는 상태이기 때문에 불필요한 에너지를 소모하고 있는 상태이다. 하지만, 플로우의 수가 늘어날 가능성이 있기 때문에 스탠바이 모드의 프로세서가 존재하게 된다.
도 5에서는, 플로우를 처리하고 있는 프로세서는 비지 모드이며, 플로우를 처리하지 않고 대기상태로 존재하는 프로세서는 슬립 모드로 결정할 수 있다.
이와 같이, 대기상태의 프로세서를 슬립 모드로 두게 되면, 비지 모드나 스탠바이 모드에 비하여 적은 양의 전압이 인가되어 전체 에너지 소모량은 줄게 되지만, 플로우의 수가 늘어나게 되면, 슬립 상태에서 스탠바이 상태로 전환하는데 'wake up time'이 필요하게 된다.
도 6은 대기상태의 프로세서의 전원을 꺼놓은 상태이다.
도 6을 참고하면, 도 5와 비교하여, 전체 에너지 소모 측면에서 적게 에너지를 소모하게 된다. 하지만, 플로우의 수가 늘어나 새로운 프로세서를 사용하기 위해선 다시 전원을 넣어야 하므로 부팅 시간이 많이 걸리게 되며 부팅 시 정상상태보다 많은 전력이 소모된다.
도 7은 대기 프로세서를 스탠바이 모드, 슬립 모드, 턴오프 모드로 다양하게 설정할 수 있다.
본 발명에서는 플로우가 늘어날 경우를 대비하여, 일정량의 프로세서를 스탠바이 모드로 설정하고, 그 이외의 프로세서 중에서 플로우가 폭주할 것을 대비한 슬립 모드, 그리고 때에 따라서 대기 프로세서가 많은 경우 턴오프 모드로 프로세서의 상태모드를 변환하여 전체 소비 전력을 줄일 수 있다.
Figure 112009075053036-PAT00004
표 4는 플로우의 개수와 전체 프로세서 개수에 따라 비지 모드, 스탠바이 모드, 슬립 모드, 턴오프 모드가 발생하는 조건을 보여주고 있다.
플로우의 개수가 전체 프로세서의 개수보다 많은 경우에는 모든 프로세서가 플로우를 처리함으로써, 스탠바이 모드, 슬립 모드, 턴오프 모드의 프로세서는 존재하지 않는다. 하지만, 플로우의 개수가 전체 프로세서의 개수보다 적을 경우에는 플로우 개수만큼 프로세서가 비지 모드로 결정되며, 정책에 따라 스탠바이 모드, 슬립 모드, 턴오프 모드의 프로세서의 개수가 정해지게 된다.
Figure 112009075053036-PAT00005
표 5는 프로세서 어레이를 이루고 있는 프로세서의 개수가 16개 일 경우에 정책의 예이다.
플로우의 개수가 다소 변하더라도(0~2, 3~5, 6~8, 9~11, 12~14, 15~) 각 모드의 개수는 동일하여 빈번한 모드 전환으로 인한 전력 소모를 줄일 수 있으며, 해당 플로우의 개수에 따라 슬립 모드와 턴오프 모드가 지원되므로 전체 에너지 소모를 줄일 수 있다.
도 8은 네 가지 상태모드로 존재하는 프로세서의 일례를 보여주고 있다.
하지만, 도 8과 같이 네 가지 상태가 산발적으로 존재하게 되면 프로세서의 상태를 관리하는데 어려움이 있다. 따라서, 본 발명에서는 프로세서의 상태 관리를 쉽게 하기 위해 프로세서에 우선순위를 부여한다.
도 9와 같이 프로세서 어레이 내의 프로세서(P1~PN)에 우선순위를 부여하여 대기 프로세서에 대해 관리를 쉽게 한다.
도 10은 프로세서의 개수가 16개일 때 표 5의 정책을 따른 예이다. 이때 처리해야 할 플로우가 4개라면 정책에 따라 6개의 프로세서가 정상상태로 전압이 인가되며 슬립 모드가 5개, 턴오프 모드가 5개가 된다. 처리해야 할 플로우가 4개이므로 4개의 프로세서에서만 처리가 진행되며 이때 4개의 프로세서의 상태는 비지 모드가 되며, 2개의 프로세서는 스탠바이 모드가 된다.
다음으로 플로우의 개수가 하나 더 늘어났다고 가정해 보자. 표 5의 정책에 따라 플로우의 개수가 3개부터 5개까지는 각 프로세서의 모드 개수가 동일하기 때문에 각 모드의 개수에는 변화가 없으며, 플로우가 5개가 되었으므로 P5, P6 중에서 하나의 프로세서에 처리해야 할 데이터가 인가된다.
P5, P6 중에서 P5가 우선순위 높기 때문에 P5로 처리해야 할 데이터가 인가되고 비지 모드로 변하게 된다. 다음으로 P2의 작업이 끝나게 되면 P2는 새로운 플로우를 처리할 수 있는 상태가 되며 스탠바이 모드가 된다.
다음으로 새로운 플로우가 인가되면 P2, P6 중에서 P2가 우선순위가 높기 때문에 P2로 처리해야 할 데이터가 입력된다.
현재 처리하고 있는 플로우가 5개인 상태에서 새로운 플로우 2개가 추가되면 처리해야 할 총 플로우의 개수가 7개가 되어 표 5의 정책에 따라 정상전압상태 9개, 슬립 모드 3개, 턴오프 모드 4개로 각 모드의 개수가 변화하게 되며, 우선순위에 따라 P6, P7에 처리해야 할 데이터가 입력된다.
하지만, 상기와 같은 구조에서의 단점은 프로세서의 순서와 우선순위를 동일하게 두었기 때문에 플로우의 개수가 프로세서의 개수보다 적을 경우엔 우선순위가 높은 쪽의 프로세서에 처리가 집중되게 된다. 특정 프로세서에 처리가 지속되게 되면 발열이 발생하게 되며, 발열에 의해 문턱 전압(threshold voltage)이 높아지고 이로 인해 트랜지스터의 스위칭 속도가 현저히 떨어지게 되며 프로세서의 작업 수행 속도는 떨어지게 된다.
Figure 112009075053036-PAT00006
Figure 112009075053036-PAT00007
수학식 1은 MOSFET에서의 문턱전압을 결정하는 공식이며
Figure 112009075053036-PAT00008
가 반도체 온도에 영향을 받는 요소가 된다.
Figure 112009075053036-PAT00009
또한, 온도가 올라가면 수학식 2에 의해 전류량이 줄게 되어 성능이 떨어지게 된다. 성능 저하로 인해 하나의 작업을 처리하는 시간이 길어지게 되며 이로 인해 특정 작업을 수행하는데 필요한 에너지 소모가 늘어나게 된다. 성능 저하 및 에너지 소모의 증가뿐만 아니라 특정 프로세서에 처리가 집중되게 되면 처리가 집 중된 프로세서의 수명 또한 다른 프로세서에 비해 떨어지게 된다.
따라서, 본 발명의 우선순위 제어부(221)는 도 11과 같이 플로우의 개수가 프로세서의 개수보다 적은 경우의 시간이 지속되면 일정주기로 프로세서의 우선순위를 변경시켜 준다. 이와 같은 구조에서는 일정주기로 우선순위를 변경해 주기 때문에 특정 프로세서에 처리가 몰리지 않아 성능, 에너지 소모, 프로세서의 수명 차원에서 우위를 차지하게 된다.
만약, 일정주기가 지나 우선순위가 1이었던 프로세서가 가장 낮은 우선순위를 갖게 된다면, 현시점을 기준으로 처리하고 있던 플로우를 모두 처리한 후 정책에 따라 상태모드가 결정된다.
도 12는 본 발명의 일실시예에 따른 각 프로세서에 할당되는 우선순위를 변경하는 일례를 도시한 흐름도이다.
저전력 프로세서 스케줄링 방법은 우선순위 카운터값을 '0'으로 리셋시킨다(1210).
이후, 저전력 프로세서 스케줄링 방법은 프로세서의 상태모드가 슬립 모드 또는 턴오프 모드가 있는지를 검사한다(1220).
슬립 모드 또는 턴오프 모드가 존재하게 되면(1230), 저전력 프로세서 스케줄링 방법은 우선순위 카운터 값이 계속적으로 증가시킨다(1240).
그러나, 슬립 모드 또는 턴오프 모드가 존재하지 않게 되면, 저전력 프로세서 스케줄링 방법은 단계 1210으로 돌아가, 우선순위 카운터 값은 다시 0으로 리셋한다.
저전력 프로세서 스케줄링 방법은 정책에 따라, 상기 증가된 우선순위 카운터 값을 정해진 우선순위 대기시간(Idle time)과 비교한다(1250).
우선순위 대기시간보다 우선순위 카운터 값이 작은 경우, 저전력 프로세서 스케줄링 방법은 다시 슬립 모드 또는 턴오프 모드의 존재 여부를 확인하고, 여전히 존재하면 우선순위 카운터 값은 계속적으로 증가하게 된다.
만약, 우선순위 카운터 값이 우선순위 대기시간보다 같거나 크게 되면, 저전력 프로세서 스케줄링 방법은 각 프로세서의 우선순위를 변경시켜, 우선순위 카운터 값을 '0'으로 리셋한다(1260).
또한, 본 발명의 실시예들은 다양한 컴퓨터로 구현되는 동작을 수행하기 위한 프로그램 명령을 포함하는 컴퓨터 판독 가능 매체를 포함한다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다.
지금까지 본 발명에 따른 구체적인 실시예에 관하여 설명하였으나, 본 발명의 범위에서 벗어나지 않는 한도 내에서는 여러 가지 변형이 가능함은 물론이다. 그러므로, 본 발명의 범위는 설명된 실시예에 국한되어 정해져서는 안되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.
도 1은 본 발명의 일실시예에 따른 저전력 프로세서 스케줄링 시스템을 도시한 블록도이다.
도 2는 본 발명의 일실시예에 따른 프로세서 배차부의 내부 구조와 프로세서 어레이와 프로세서 배차부간의 제어 신호를 도시한 도면이다.
도 3 내지 도 11은 본 발명의 일실시예에 따른 프로세서 개수와 플로우의 개수에 따른 각 프로세서의 상태모드를 도시한 도면이다.
도 12는 본 발명의 일실시예에 따른 각 프로세서에 할당되는 우선순위를 변경하는 일례를 도시한 흐름도이다.
<도면의 주요 부분에 대한 부호의 설명>
100: 저전력 프로세서 스케줄링 시스템
110: 프로세서 배차부
120: 프로세서 어레이
130: 프로세서 전송부
140: 데이터 메모리

Claims (11)

  1. 입력된 패킷을 플로우별로 분류하는 프로세서 배차부; 및
    상기 분류된 플로우를 각 프로세서로 할당하여 상기 각 프로세서에서 상기 플로우를 처리하도록 제어하는 프로세서 어레이
    를 포함하는 저전력 프로세서 스케줄링 시스템.
  2. 제1항에 있어서,
    상기 프로세서 배차부는,
    복수의 프로세서들의 상태모드를 포함하는 플로우 테이블;
    상기 입력된 패킷을 헤더와 페이로드로 구분하고, 상기 구분된 헤더를 분석하여 플로우로 나누어주는 파써; 및
    상기 플로우 테이블을 참조하여 상기 나누어진 플로우가 상기 각 프로세서에 전달되도록 제어하는 제어부
    을 포함하는 저전력 프로세서 스케줄링 시스템.
  3. 제2항에 있어서,
    상기 제어부는,
    상기 각 프로세서의 우선순위를 제어하는 우선순위 제어부
    를 포함하고,
    상기 우선순위 제어부는,
    상기 복수의 프로세서들의 개수와 상기 플로우의 개수에 따라 상기 각 프로세서의 우선순위를 결정하는, 저전력 프로세서 스케줄링 시스템.
  4. 제3항에 있어서,
    상기 제어부는,
    상기 결정된 우선순위에 따라 상기 각 프로세서의 상태모드를, 비지 모드, 스탠바이 모드, 슬립 모드, 또는 턴오프 모드 중 어느 하나로 제어하는 모드 제어부
    를 더 포함하는, 저전력 프로세서 스케줄링 시스템.
  5. 제3항에 있어서,
    상기 우선순위 제어부는,
    상기 플로우의 개수가 상기 복수의 프로세서들의 개수보다 작은 경우, 일정주기에 따라 상기 각 프로세서의 우선순위를 변경하는, 저전력 프로세서 스케줄링 시스템.
  6. 제3항에 있어서,
    상기 우선순위 제어부는,
    우선순위 카운터값을 리셋한 후, 상기 복수의 프로세서들의 상태모드 중 슬 립 모드 또는 턴오프 모드인 프로세서가 있는지 검사하고, 상기 슬립 모드 또는 상기 턴오프 모드인 프로세서가 있는 경우, 상기 우선순위 카운터값을 증가시키고, 상기 우선순위 카운터값이 우선순위 대기시간보다 같거나 큰 경우, 상기 각 프로세서의 우선순위를 변경하는, 저전력 프로세서 스케줄링 시스템.
  7. 제2항에 있어서,
    상기 프로세서 어레이는,
    복수의 프로세서들을 포함하고, 상기 플로우 테이블을 참조하여 상기 분류된 플로우를 상기 각 프로세서로 할당하는, 저전력 프로세서 스케줄링 시스템.
  8. 복수의 프로세서에 상응하는 상태모드를 포함하는 플로우 테이블을 유지하는 단계;
    입력된 패킷을 플로우별로 분류하는 단계;
    상기 플로우 테이블을 참고하여 상기 분류된 플로우를 각 프로세서로 할당하는 단계; 및
    상기 각 프로세서에서 상기 플로우를 처리하는 단계
    를 포함하는 저전력 프로세서 스케줄링 방법.
  9. 제8항에 있어서,
    상기 복수의 프로세서들의 개수와 상기 플로우의 개수에 따라 상기 각 프로 세서의 우선순위를 결정하는 단계; 및
    상기 플로우의 개수가 상기 복수의 프로세서들의 개수보다 작은 경우, 일정주기에 따라 상기 각 프로세서의 우선순위를 변경하는 단계
    를 포함하는 저전력 프로세서 스케줄링 방법.
  10. 제9항에 있어서,
    상기 각 프로세서의 우선순위를 변경하는 단계는,
    우선순위 카운터값을 리셋한 후, 상기 복수의 프로세서들의 상태모드 중 슬립 모드 또는 턴오프 모드인 프로세서가 있는지 검사하는 단계;
    상기 슬립 모드 또는 상기 턴오프 모드인 프로세서가 있는 경우, 상기 우선순위 카운터값을 증가시키는 단계; 및
    상기 우선순위 카운터값이 우선순위 대기시간보다 같거나 큰 경우, 상기 각 프로세서의 우선순위를 변경하는 단계
    를 포함하는 저전력 프로세서 스케줄링 방법.
  11. 제9항에 있어서,
    상기 결정된 우선순위에 따라 상기 각 프로세서의 상태모드를, 비지 모드, 스탠바이 모드, 슬립 모드, 또는 턴오프 모드 중 어느 하나로 제어하는 단계
    를 포함하는 저전력 프로세서 스케줄링 방법.
KR1020090119799A 2009-12-04 2009-12-04 우선순위 기반의 저전력 프로세서 스케줄링 방법 및 시스템 KR101628376B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020090119799A KR101628376B1 (ko) 2009-12-04 2009-12-04 우선순위 기반의 저전력 프로세서 스케줄링 방법 및 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020090119799A KR101628376B1 (ko) 2009-12-04 2009-12-04 우선순위 기반의 저전력 프로세서 스케줄링 방법 및 시스템

Publications (2)

Publication Number Publication Date
KR20110062926A true KR20110062926A (ko) 2011-06-10
KR101628376B1 KR101628376B1 (ko) 2016-06-08

Family

ID=44397021

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020090119799A KR101628376B1 (ko) 2009-12-04 2009-12-04 우선순위 기반의 저전력 프로세서 스케줄링 방법 및 시스템

Country Status (1)

Country Link
KR (1) KR101628376B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160062189A (ko) * 2012-02-03 2016-06-01 애플 인크. 클라이언트 디바이스 상에서의 패킷 송신을 스케줄링하기 위한 시스템 및 방법

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20040000336A (ko) * 2002-06-24 2004-01-03 마츠시타 덴끼 산교 가부시키가이샤 패킷 전송 장치와 그 방법, 트래픽 컨디셔너, 우선 제어기구 및 패킷 셰이퍼
JP2004524754A (ja) * 2001-03-19 2004-08-12 インターナショナル・ビジネス・マシーンズ・コーポレーション キャッシュ入力の選択方法および装置
KR100726332B1 (ko) * 2004-04-21 2007-06-11 인하대학교 산학협력단 무선 통신망에서 무선 차별화 서비스를 제공하기 위한패킷 스케줄링 방법 및 장치
KR20070084760A (ko) * 2006-02-21 2007-08-27 임혜숙 우선순위 기반의 영역분할을 이용한 패킷 분류 방법 및이를 적용한 패킷 중계 장치

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004524754A (ja) * 2001-03-19 2004-08-12 インターナショナル・ビジネス・マシーンズ・コーポレーション キャッシュ入力の選択方法および装置
KR20040000336A (ko) * 2002-06-24 2004-01-03 마츠시타 덴끼 산교 가부시키가이샤 패킷 전송 장치와 그 방법, 트래픽 컨디셔너, 우선 제어기구 및 패킷 셰이퍼
KR100726332B1 (ko) * 2004-04-21 2007-06-11 인하대학교 산학협력단 무선 통신망에서 무선 차별화 서비스를 제공하기 위한패킷 스케줄링 방법 및 장치
KR20070084760A (ko) * 2006-02-21 2007-08-27 임혜숙 우선순위 기반의 영역분할을 이용한 패킷 분류 방법 및이를 적용한 패킷 중계 장치

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160062189A (ko) * 2012-02-03 2016-06-01 애플 인크. 클라이언트 디바이스 상에서의 패킷 송신을 스케줄링하기 위한 시스템 및 방법

Also Published As

Publication number Publication date
KR101628376B1 (ko) 2016-06-08

Similar Documents

Publication Publication Date Title
US8763002B2 (en) Method, system, and apparatus for task allocation of multi-core processor
RU2566330C2 (ru) Гетерогенная сеть межсоединений с учетом производительности и трафика
US7971074B2 (en) Method, system, and apparatus for a core activity detector to facilitate dynamic power management in a distributed system
US9715397B2 (en) Methods and apparatuses for controlling thread contention
US9323316B2 (en) Dynamically controlling interconnect frequency in a processor
CN107430425B (zh) 用于基于网络负荷来调整处理器功率使用率的设备和方法
US8806244B1 (en) Systems and methods for energy proportional multiprocessor networks
US11289131B2 (en) Dynamic control of multi-region fabric
CN107111349B (zh) 用于片上多核系统的驱动基于访问的资源的低功耗控制和管理
US20120166731A1 (en) Computing platform power management with adaptive cache flush
TW200426688A (en) Performance scheduling using multiple constraints
US20120297216A1 (en) Dynamically selecting active polling or timed waits
KR102110812B1 (ko) 멀티 코어 시스템 및 멀티 코어 시스템의 작업 스케줄링 방법
US9106662B2 (en) Method and apparatus for controlling load allocation in cluster system
US9075609B2 (en) Power controller, processor and method of power management
JP2007172322A (ja) 分散処理型マルチプロセッサシステム、制御方法、マルチプロセッサ割り込み制御装置及びプログラム
CN110308991B (zh) 一种基于随机任务的数据中心节能优化方法及系统
KR101628376B1 (ko) 우선순위 기반의 저전력 프로세서 스케줄링 방법 및 시스템
KR102333391B1 (ko) 전자 장치 및 이의 전력 제어 방법
US8675444B2 (en) Synchronized command throttling for multi-channel duty-cycle based memory power management
Peoples et al. Energy aware scheduling across ‘green’cloud data centres
US20190391846A1 (en) Semiconductor integrated circuit, cpu allocation method, and program
US20140281592A1 (en) Global Efficient Application Power Management
US20240004444A1 (en) Rest-of-chip power optimization through data fabric performance state management
US20230153121A1 (en) Accelerator usage prediction for improved accelerator readiness

Legal Events

Date Code Title Description
N231 Notification of change of applicant
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: 20190620

Year of fee payment: 4