KR102661491B1 - 동적 전압 주파수 스케일링을 사용하는 시스템 온 칩 및 그것의 동작 방법 - Google Patents
동적 전압 주파수 스케일링을 사용하는 시스템 온 칩 및 그것의 동작 방법 Download PDFInfo
- Publication number
- KR102661491B1 KR102661491B1 KR1020160179332A KR20160179332A KR102661491B1 KR 102661491 B1 KR102661491 B1 KR 102661491B1 KR 1020160179332 A KR1020160179332 A KR 1020160179332A KR 20160179332 A KR20160179332 A KR 20160179332A KR 102661491 B1 KR102661491 B1 KR 102661491B1
- Authority
- KR
- South Korea
- Prior art keywords
- performance
- central processing
- chip
- processing unit
- data packets
- Prior art date
Links
- 238000011017 operating method Methods 0.000 title claims 3
- 238000012545 processing Methods 0.000 claims abstract description 143
- 238000012546 transfer Methods 0.000 claims abstract description 38
- 238000000034 method Methods 0.000 claims abstract description 22
- 230000005540 biological transmission Effects 0.000 claims abstract description 12
- 238000012544 monitoring process Methods 0.000 claims description 71
- 230000002159 abnormal effect Effects 0.000 claims description 53
- 238000012806 monitoring device Methods 0.000 claims 4
- 230000007423 decrease Effects 0.000 claims 2
- 230000015654 memory Effects 0.000 description 20
- 238000010219 correlation analysis Methods 0.000 description 18
- 238000004891 communication Methods 0.000 description 13
- 238000010586 diagram Methods 0.000 description 12
- 238000005516 engineering process Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 239000004065 semiconductor Substances 0.000 description 3
- 230000003936 working memory Effects 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 230000003247 decreasing effect Effects 0.000 description 2
- 230000009977 dual effect Effects 0.000 description 2
- 101100028951 Homo sapiens PDIA2 gene Proteins 0.000 description 1
- 102100036351 Protein disulfide-isomerase A2 Human genes 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 239000000919 ceramic Substances 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 229920001690 polydopamine Polymers 0.000 description 1
- 238000011160 research Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/0001—Systems modifying transmission characteristics according to link quality, e.g. power backoff
- H04L1/0002—Systems modifying transmission characteristics according to link quality, e.g. power backoff by adapting the transmission rate
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/324—Power saving characterised by the action undertaken by lowering clock frequency
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/3296—Power saving characterised by the action undertaken by lowering the supply or operating voltage
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L25/00—Baseband systems
- H04L25/02—Details ; arrangements for supplying electrical power along data transmission lines
- H04L25/0262—Arrangements for detecting the data rate of an incoming signal
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/0038—System on Chip
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Power Engineering (AREA)
- Evolutionary Computation (AREA)
- Medical Informatics (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Data Mining & Analysis (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Artificial Intelligence (AREA)
- Quality & Reliability (AREA)
- Power Sources (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
본 발명은 동적 전압 주파수 스케일링을 사용하는 시스템 온 칩 및 그것의 동작 방법에 관한 것이다. 본 발명의 실시 예에 따른 시스템 온 칩의 동작 방법은 네트워크 입출력 장치를 통해 수신되는 데이터 패킷들에 기초하여 중앙 처리 장치의 처리 성능 및 상기 네트워크 입출력 장치의 네트워크 처리량 사이의 상관 관계를 학습하는 단계, 상기 상관 관계의 학습 결과에 기초하여 상기 데이터 패킷들의 데이터 전송률을 예측하는 단계, 상기 예측된 데이터 전송률에 기초하여 동적 전압 주파수 스케줄링 알고리즘의 설정 정보를 동적으로 변경하는 단계, 그리고 상기 설정 정보의 변경에 기초하여 상기 동적 전압 주파수 스케줄링 알고리즘에 따라 상기 중앙 처리 장치의 동작 주파수를 제어하는 단계를 포함할 수 있다. 본 발명의 실시 예에 따르면, 수신되는 데이터 패킷들의 데이터 전송률을 고려하여 동적 전압 주파수 스케일링 알고리즘을 동적으로 적용할 수 있다.
Description
본 발명은 시스템 온 칩에 관한 것으로, 좀 더 상세하게는 동적 전압 주파수 스케일링을 사용하는 시스템 온 칩 및 그것의 동작 방법에 관한 것이다.
최근, 스마트폰, 테이블릿 PC, 디지털 카메라, MP3 플레이어, PDA 등과 같은 모바일 장치의 이용이 폭발적으로 증가하고 있다. 이러한 모바일 장치에서도 멀티미디어의 구동 및 각종 데이터의 처리량이 증가하면서, 고속 프로세서 및 대용량 저장 매체의 채용이 확대되고 있다. 모바일 장치에는 다양한 응용 프로그램(Application program)들이 구동된다. 다양한 응용 프로그램들을 구동하기 위하여, 모바일 장치에는 워킹 메모리(예를 들면, DRAM), 불휘발성 메모리, 그리고 응용 프로세서(Application Processor: 이하, AP)와 같은 반도체 장치들이 사용된다. 그리고 모바일 환경에서의 고성능화에 대한 요구에 따라 상술한 반도체 장치들의 집적도 및 구동 주파수는 날로 높아지고 있다.
모바일 장치에서 프로세싱 유닛의 성능이나 메모리의 성능은 매년 비약적으로 발전하고 있다. 그러나 모바일 환경에서 높은 성능 요구는 상대적으로 효율적인 전력 관리를 어렵게 하는 요소이다. 최근에는 모바일 장치들의 처리 속도나 성능은 평준화되는 추세이다. 따라서, 모바일 환경에서 사용자에게 지속적인 서비스 시간을 제공하기 위한 배터리 기술이나 효율적인 전력 관리 기술에 대한 연구가 활발히 수행되고 있다.
이러한 효율적인 전력 관리의 일환으로, 동적 전압 주파수 스케일링(Dynamic Voltage Frequency Scaling; 이하, DVFS) 방법이 사용된다. 다만, 동적 전압 주파수 스케일링 방법은 각 기능 블록의 동작 형태에 국한되어 있어 특정한 처리가 요구되는 데이터 패킷의 데이터 전송률은 고려되지 않고 있다.
본 발명은 위에서 설명한 기술적 과제를 해결하기 위한 것으로, 본 발명은 데이터 패킷에 대한 네트워크 입출력 장치의 네트워크 처리량 및 중앙 처리 장치의 처리 성능을 모니터링하여 동적 전압 주파수 스케일링 방법을 동적으로 사용하는 시스템 온 칩 및 그것의 동작 방법을 제공할 수 있다.
본 발명의 실시 예에 따른 시스템 온 칩의 동작 방법은 네트워크 입출력 장치를 통해 수신되는 데이터 패킷들에 기초하여 중앙 처리 장치의 처리 성능 및 상기 네트워크 입출력 장치의 네트워크 처리량 사이의 상관 관계를 학습하는 단계, 상기 상관 관계의 학습 결과에 기초하여 상기 데이터 패킷들의 데이터 전송률을 예측하는 단계, 상기 예측된 데이터 전송률에 기초하여 동적 전압 주파수 스케줄링 알고리즘의 설정 정보를 동적으로 변경하는 단계, 그리고 상기 설정 정보의 변경에 기초하여 상기 동적 전압 주파수 스케줄링 알고리즘에 따라 상기 중앙 처리 장치의 동작 주파수를 제어하는 단계를 포함할 수 있다.
본 발명의 실시 예에 따른 시스템 온 칩은 네트워크 입출력 장치, 중앙 처리 장치, 성능 모니터링 유닛 및 동적 전압 주파수 스케일링 유닛을 포함할 수 있다. 네트워크 입출력 장치는 사용자 데이터를 포함하는 데이터 패킷들을 수신하고, 중앙 처리 장치는 상기 사용자 데이터를 사용하기 위해 상기 데이터 패킷들에 대하여 특정한 처리를 수행하고, 성능 모니터링 유닛은 상기 중앙 처리 장치의 처리 성능 및 상기 네트워크 입출력 장치의 네트워크 처리량의 상관 관계를 학습하고, 상기 학습 결과에 기초하여 상기 데이터 패킷들의 데이터 전송률을 예측하고, 그리고 상기 예측된 데이터 전송률에 기초하여 동적 전압 주파수 스케일링 알고리즘의 설정 정보를 동적으로 변경하고, 그리고 동적 전압 주파수 스케일링 유닛은 상기 설정 정보를 수신하여 상기 동적 전압 주파수 스케일링 알고리즘을 수행할 수 있다.
본 발명의 실시 예에 따르면, 수신되는 데이터 패킷들의 데이터 전송률을 고려하여 동적 전압 주파수 스케일링 알고리즘을 동적으로 적용할 수 있다.
도 1은 본 발명의 실시 예에 따른 컴퓨팅 시스템을 보여주는 블록도이다.
도 2는 본 발명의 실시 예에 따른 시스템 온 칩의 전력 및 성능 관리 방법을 보여주는 블록도이다.
도 3은 본 발명의 실시 예에 따른 시스템 온 칩의 전력 및 성능 관리 방법을 보여주는 순서도이다.
도 4는 본 발명의 실시 예에 따른 제 1 및 제 2 상관도 분석을 보여주는 도면이다.
도 5는 본 발명의 실시 예에 따른 데이터 전송률의 예측 방법을 보여주는 순서도이다.
도 6 및 도 7은 본 발명의 실시 예에 따른 DVFS 제어 방법을 보여주는 도면이다.
도 8은 본 발명의 실시 예에 따른 DVFS 동작 모드 결정 방법을 보여주는 순서도이다.
도 9는 본 발명의 실시 예에 따른 시스템 온 칩을 포함하는 모바일 장치를 보여주는 블록도이다.
도 10은 본 발명의 실시 예에 따른 시스템 온 칩을 포함하는 컴퓨팅 장치를 개략적으로 보여주는 블록도이다.
도 2는 본 발명의 실시 예에 따른 시스템 온 칩의 전력 및 성능 관리 방법을 보여주는 블록도이다.
도 3은 본 발명의 실시 예에 따른 시스템 온 칩의 전력 및 성능 관리 방법을 보여주는 순서도이다.
도 4는 본 발명의 실시 예에 따른 제 1 및 제 2 상관도 분석을 보여주는 도면이다.
도 5는 본 발명의 실시 예에 따른 데이터 전송률의 예측 방법을 보여주는 순서도이다.
도 6 및 도 7은 본 발명의 실시 예에 따른 DVFS 제어 방법을 보여주는 도면이다.
도 8은 본 발명의 실시 예에 따른 DVFS 동작 모드 결정 방법을 보여주는 순서도이다.
도 9는 본 발명의 실시 예에 따른 시스템 온 칩을 포함하는 모바일 장치를 보여주는 블록도이다.
도 10은 본 발명의 실시 예에 따른 시스템 온 칩을 포함하는 컴퓨팅 장치를 개략적으로 보여주는 블록도이다.
아래에서는, 본 발명의 기술 분야에서 통상의 지식을 가진 자가 본 발명을 용이하게 실시할 수 있을 정도로, 본 발명의 실시 예들이 명확하고 상세하게 기재될 것이다.
도 1은 본 발명의 실시 예에 따른 컴퓨팅 시스템을 보여주는 블록도이다. 도 1을 참조하면, 컴퓨팅 시스템(100)은 시스템 온 칩(110), 메모리 장치(120) 및 통신 장치(130)를 포함할 수 있다. 다만, 컴퓨팅 시스템(100)의 구성이 이것에 한정되지 않는다. 컴퓨팅 시스템(100)은 필요에 따라 다른 구성들을 더 포함할 수 있다.
시스템 온 칩(110)은 중앙 처리 장치(111), 메모리 컨트롤러(112), 네트워크 입출력 장치(113), 성능 모니터링 유닛(114), 동적 전압 주파수 스케줄링(Dynamic Voltage Frequency Scaling; 이하, DVFS) 제어 유닛(115) 및 클록 제어 유닛(116)을 포함할 수 있다. 다만, 시스템 온 칩(110)의 구성은 이것에 한정되지 않는다. 시스템 온 칩(110)은 필요에 따라 다른 구성들을 더 포함할 수 있다. 예를 들면, 시스템 온 칩(110)은 다른 기능 블록(Intellectual Property; IP)들을 더 포함할 수 있다.
중앙 처리 장치(111)는 컴퓨팅 시스템(100)에서 수행될 소프트웨어(응용 프로그램, 운영 체제, 장치 드라이버들)를 실행할 수 있다. 예를 들면, 중앙 처리 장치(111)는 워킹 메모리(미도시)에 로드되는 운영 체제(OS)를 실행할 것이다. 중앙 처리 장치(111)는 운영 체제(OS) 기반에서 구동될 다양한 응용 프로그램들(Application Program)을 실행할 것이다. 중앙 처리 장치(111)는 동종 멀티-코어 프로세서(Homogeneous Multi-Core Processor) 또는 이종 멀티-코어 프로세서(Heterogeneous Multi-Core Processor)로 제공될 수 있다. 멀티-코어 프로세서는 적어도 2개의 독립적으로 구동 가능한 프로세서들(이하, 코어)을 갖는 컴퓨팅 컴포넌트(Computing component)이다. 코어들 각각은 프로그램 명령들(Program Instructions)을 독립적으로 읽고 실행할 수 있다.
중앙 처리 장치(111)는 네트워크 입출력 장치(113)를 통하여 수신된 데이터 패킷(Data Packet)들을 처리할 수 있다. 예를 들면, 데이터 패킷은 사용자 데이터(User Data)에 헤더(Header)를 결합한 형태를 가질 수 있다. 중앙 처리 장치(111)는 이러한 데이터 패킷을 수신하는 경우 사용자 데이터를 추출하기 위해 추가적인 연산을 수행할 수 있다. 또한, 중앙 처리 장치(111)는 이러한 데이터 패킷을 전송하는 경우 사용자 데이터에 헤더를 결합하기 위해 추가적인 연산을 수행할 수 있다.
메모리 컨트롤러(112)는 시스템 온 칩(110)과 메모리 장치(120) 사이의 데이터 교환을 제어할 수 있다. 예를 들면, 메모리 컨트롤러(112)는 호스트의 요청에 따라 메모리 장치(120)에 데이터를 저장하거나 메모리 장치(120)로부터 데이터를 읽어올 수 있다. 여기서 호스트는, 중앙 처리 장치(111)와 같은, 시스템 온 칩(110)에 포함된 기능 블록들을 말한다. 메모리 컨트롤러(112)는 메모리 장치(120)의 동작을 전반적으로 제어할 수 있다.
메모리 장치(120)는 다양한 데이터를 저장할 수 있다. 예를 들면, 메모리 장치(120)는 OS(Operating System), 각종 프로그램들, 및 각종 데이터를 저장할 수 있다. 또한, 메모리 장치(120)는 네트워크 통신을 통해 입출력되는 데이터 패킷들을 저장할 수 있다. 메모리 장치(120)는 메모리 카드(MMC, eMMC, SD, MicroSD 등)로 제공될 수도 있다. 메모리 장치(120)는 대용량의 저장 능력을 가지는 낸드 플래시 메모리(NAND-type Flash memory)를 포함할 수 있다. 또는, 메모리 장치(120)는 PRAM, MRAM, ReRAM, FRAM 등의 차세대 불휘발성 메모리나 NOR 플래시 메모리를 포함할 수도 있다. 본 발명의 다른 실시 예에서는 메모리 장치(120)는 시스템 온 칩(110)의 내부에 구비되는 내장 메모리일 수 있다.
네트워크 입출력 장치(113)는 컴퓨팅 시스템(100)과 외부 장치들 사이의 데이터 교환을 제어할 수 있다. 예를 들면, 네트워크 입출력 장치(113)는 통신 장치(130)를 통해 데이터 패킷을 수신하거나 전송할 수 있다. 네트워크 입출력 장치(113)는 수신된 데이터 패킷을 메모리 장치(130)에 저장할 수 있다. 또는 네트워크 입출력 장치(113)는 메모리 장치(130)에 저장된 데이터 패킷을 통신 장치(130)로 전송할 수 있다.
통신 장치(130)는 외부 장치들과 데이터 통신을 수행할 수 있다. 예를 들면, 통신 장치(130)는 와이파이 모듈, 블루투스 모듈, 통신 모뎀 등을 포함할 수 있다. 통신 장치(130)는 네트워크에 연결되어 데이터 패킷을 수신하거나 전송할 수 있다.
성능 모니터링 유닛(114)은 시스템 온 칩(110)의 성능 및 데이터 흐름을 모니터할 수 있다. 예를 들면, 성능 모니터링 유닛(114)은 데이터 패킷에 대한 중앙 처리 장치(111)의 처리 성능(Processing Performance)을 측정할 수 있다. 또한, 성능 모니터링 유닛(114)은 네트워크 입출력 장치(113)의 네트워크 처리량(Network Throughput)을 측정할 수 있다. 성능 모니터링 유닛(114)은 소프트웨어적으로 또는 하드웨어적으로 구현될 수 있다.
성능 모니터링 유닛(114)은 측정된 중앙 처리 장치(111)의 처리 성능 및 네트워크 입출력 장치(113)의 네트워크 처리량 각각의 상관도(제 1 상관도)를 분석할 수 있다. 예를 들면, 성능 모니터링 유닛(114)은 중앙 처리 장치(111)의 처리 성능을 분석하여 정상 상태(Normal State) 및 비정상 상태(Abnormal State)을 판별할 수 있다. 성능 모니터링 유닛(114)은 네트워크 입출력 장치(113)의 네트워크 처리량을 분석하여 정상 상태 및 비정상 상태을 판별할 수 있다. 정상 상태은 DVFS 제어 유닛(115)의 DVFS 정책에 부합되는 처리 성능 또는 네트워크 처리량을 말한다. 비정상 상태은 DVFS 제어 유닛(115)의 DVFS 정책에 부합되지 않는 처리 성능 또는 네트워크 처리량을 말한다.
성능 모니터링 유닛(114)은 제 1 상관도에 기초하여 처리 성능의 비정상 상태 및 네트워크 처리량의 비정상 상태 사이의 상관도(제 2 상관도)를 분석할 수 있다. 예를 들면, 성능 모니터링 유닛(114)은 처리 성능의 제 1 상관도 및 네트워크 처리량의 제 1 상관도를 클러스터링(Clustering)할 수 있다. 클러스터링 결과에 따라, 성능 모니터링 유닛(114)은 DVFS 동작의 비정상 영역을 추출할 수 있다. DVFS 동작의 비정상 영역은 처리 성능 및 네트워크 처리량 모두 비정상 상태인 영역이다. 성능 모니터링 유닛(114)은 DVFS 동작의 비정상 영역에 기초하여 데이터 패킷들의 데이터 전송률을 예측할 수 있다. 데이터 전송률은 단위 시간당 네트워크 입출력 장치(113)를 통해 수신되는 데이터의 크기를 의미한다. 성능 모니터링 유닛(114)은 예측된 데이터 전송률을 네트워크 입출력 장치(113)의 현재 대역폭과 비교할 수 있다. 비교 결과에 따라, 성능 모니터링 유닛(114)은 DVFS 알고리즘의 설정 정보를 변경할 수 있다. 성능 모니터링 유닛(114)은 DVFS 알고리즘의 변경된 설정 정보를 DVFS 제어 유닛(115)에 제공할 수 있다.
DVFS 제어 유닛(115)은 DVFS 알고리즘에 기초하여 중앙 처리 장치(111), 메모리 컨트롤러(112) 및 네트워크 입출력 장치(113)의 DVFS 동작을 수행할 수 있다. 예를 들면, DVFS 제어 유닛(115)은 Kalman 비선형 예측 방법을 통하여 중앙 처리 장치(111)의 동작 전압 및 동작 주파수를 제어할 수 있다. DVFS 제어 유닛(115)은 최소 클록 고정 방법으로 메모리 컨트롤러(112)의 동작 전압 및 동작 주파수를 제어할 수 있다. DVFS 제어 유닛(115)은 중앙 처리 장치(111) 및 메모리 컨트롤러(112)의 클록 제어 정보를 클록 제어 유닛(116)으로 제공할 수 있다. 클록 제어 유닛(116)은 클록 제어 정보에 기초하여 중앙 처리 장치(111) 및 메모리 컨트롤러(112)의 동작 전압 및 동작 주파수를 변경할 수 있다.
또한, DVFS 제어 유닛(115)은 수신된 DVFS 설정 정보에 기초하여 DVFS 알고리즘의 설정 값을 변경할 수 있다. 즉, DVFS 제어 유닛(115)은 성능 모니터링 유닛(114)의 학습 결과에 기초하여 새로운 기준 값에 따라 DVFS 알고리즘을 수행할 수 있다.
시스템 인터커넥터(117)는 시스템 온 칩(110)의 내부에서 온칩 네트워크를 제공하기 위한 시스템 버스(System Bus)이다. 예를 들면, 시스템 인터커넥터(117)는 데이터 버스(Data bus), 어드레스 버스(Address bus) 및 컨트롤 버스(Control bus)를 포함할 수 있다. 데이터 버스(Data bus)는 데이터가 이동하는 경로이다. 주로, 워킹 메모리나 메모리 컨트롤러(112)로의 메모리 접근 경로를 제공될 것이다. 어드레스 버스(Address bus)는 기능 블록들 간의 어드레스 교환 경로를 제공할 수 있다. 컨트롤 버스(Control bus)는 기능 블록들 간의 제어 신호를 전달하는 경로를 제공할 수 있다. 하지만, 시스템 인터커넥터(117)의 구성은 상술한 설명에만 국한되지 않으며, 효율적인 관리를 위한 중재 수단들을 더 포함할 수 있다.
본 발명의 실시 예에 따른 시스템 온 칩(110)은 중앙 처리 장치(111)의 처리 성능 및 네트워크 입출력 장치(113)의 네트워크 처리량을 모니터링할 수 있다. 또한, 시스템 온 칩(110)은 모니터링 결과에 기초하여 DVFS 알고리즘이 비효율적으로 적용되고 있는 설정 값들을 학습할 수 있다. 이러한 학습 결과에 기초하여, 시스템 온 칩(110)은 DVFS 알고리즘의 설정 정보를 변경할 수 있다. 즉, 시스템 온 칩(110)은 데이터 패킷들에 기초하여 DVFS 알고리즘을 동적으로 수행할 수 있고, 전력 및 성능이 최적의 상태로 유지되도록 관리할 수 있다.
도 2는 본 발명의 실시 예에 따른 시스템 온 칩의 전력 및 성능 관리 방법을 보여주는 블록도이다. 도 2를 참조하면, DVFS 제어 유닛(115)은 DVFS 알고리즘에 따라 중앙 처리 장치(111) 및 메모리 장치(120)의 동작 전압 및 동작 주파수를 제어할 수 있다. DVFS 제어 유닛(115)은 DVFS 알고리즘에 따라 클록 제어 신호를 생성하고, 클록 제어 신호를 클록 제어 유닛(116)으로 전송할 수 있다. 클록 제어 유닛(116)은 클록 제어 신호에 기초하여 중앙 처리 장치(111) 및 메모리 장치(120)의 동작 전압 및 동작 주파수를 변경할 수 있다.
시스템 온 칩(110)의 동작 초기에, DVFS 제어 유닛(115)은 초기 설정 값들을 가지는 DVFS 알고리즘에 따라 전력 및 성능 관리 동작을 수행할 수 있다. 그후에, 성능 모니터링 유닛(114)은 네트워크 입출력 장치(113)를 통해 수신되는 데이터 패킷에 기초하여 네트워크 입출력 장치(113)의 네트워크 처리량 및 중앙 처리 장치(111)의 처리 성능을 모니터할 수 있다. 예를 들면, 메모리 장치(120)에는 논리적인 버퍼가 설정될 수 있다. 네트워크 입출력 장치(113)는 수신된 데이터 패킷들을 메모리 장치(120)의 버퍼에 저장할 수 있다. 예시적으로, 네트워크 처리량은 단위 시간당 버퍼에 저장되는 데이터 패킷들의 수를 의미할 수 있다. 중앙 처리 장치(111)는 정해진 순서에 따라 버퍼에 저장된 데이터 패킷들을 처리할 수 있다. 예시적으로, 처리 성능은 중앙 처리 장치(111)에서 단위 시간당 처리되는 데이터 패킷들의 수를 의미할 수 있다.
성능 모니터링 유닛(114)은 네트워크 처리량 및 처리 성능의 모니터링 결과에 기초하여 제 1 상관도 분석을 수행할 수 있다. 예를 들면, 성능 모니터링 유닛(114)은 네트워크 처리량의 정상 상태 및 비정상 상태를 분류할 수 있다. 성능 모니터링 유닛(114)은 처리 성능의 정상 상태 및 비정상 상태를 분류할 수 있다. 정상 상태는 중앙 처리 장치(111)의 동작 주파수가 증가될 때 네트워크 처리량도 함께 증가되는 경우를 말한다. 비정상 상태는 정상 상태 이외의 나머지 경우를 말한다.
성능 모니터링 유닛(114)은 제 1 상관도 분석에 기초하여 제 2 상관도 분석을 수행할 수 있다. 예를 들면, 성능 모니터링 유닛(114)은 네트워크 처리량의 비정상 상태 및 처리 성능의 비정상 상태를 클러스터링하여 네트워크 처리량 및 처리 성능의 상관도를 결정할 수 있다. 네트워크 처리량 및 처리 성능의 상관도는 네트워크 처리량 및 처리 성능 모두 비정상 상태인 비정상 영역을 포함할 수 있다. 성능 모니터링 유닛(114)은 비정상 상태를 감소시키도록 DVFS 알고리즘의 설정 값들을 변경할 수 있다. 성능 모니터링 유닛(114)은 제 2 상관도 분석의 결과에 기초하여 DVFS 알고리즘의 설정 값들을 변경한 DVFS 설정 정보를 생성할 수 있다. 성능 모니터링 유닛(114)은 생성된 DVFS 설정 정보를 DVFS 제어 유닛(115)으로 전송할 수 있다.
DVFS 제어 유닛(115)은 수신된 DVFS 설정 정보에 기초하여 DVFS 알고리즘을 수행할 수 있다. 즉, DVFS 제어 유닛(115)은 성능 모니터링 유닛(114)의 모니터링 결과에 따라 DVFS 알고리즘의 기준 값을 변경할 수 있다. 따라서, 본 발명의 실시 예에 따른 시스템 온 칩(110)은 수신되는 데이터 패킷에 기초하여 DVFS 알고리즘을 동적으로 수행할 수 있다.
도 3은 본 발명의 실시 예에 따른 시스템 온 칩의 전력 및 성능 관리 방법을 보여주는 순서도이다. 도 3을 참조하면, 시스템 온 칩(110)은 데이터 패킷에 기초하여 전력 및 성능 관리를 동적으로 수행할 수 있다.
S110 단계에서, 시스템 온 칩(110)은 네트워크 입출력 장치(113)를 통해 수신되는 데이터 패킷들에 기초하여 중앙 처리 장치(111)의 처리 성능 및 네트워크 입출력 장치(113)의 네트워크 처리량의 상관도를 학습할 수 있다. 예를 들면, 성능 모니터링 유닛(114)은 네트워크 입출력 장치(113)를 통해 수신되는 데이터 패킷들을 모니터링할 수 있다. 성능 모니터링 유닛(114)은 처리 성능 및 네트워크 처리량 각각의 정상 상태 및 비정상 상태를 분류할 수 있다. 비정상 상태는 중앙 처리 장치(111)의 동작 주파수를 증가시킬 때 네트워크 처리량이 증가하지 않는 경우를 의미한다. 또한, 성능 모니터링 유닛(114)은 처리 성능의 비정상 상태 및 네트워크 처리량의 비정상 상태를 클러스터링하여 처리 성능 및 네트워크 처리량의 비정상 영역을 계산할 수 있다.
S120 단계에서, 시스템 온 칩(110)은 학습된 처리 성능 및 네트워크 처리량의 상관도에 기초하여 패킷 스트림(packet stream)의 데이터 전송률을 예측할 수 있다. 예를 들면, 성능 모니터링 유닛(114)은 처리 성능 및 네트워크 처리량의 비정상 영역에 기초하여 네트워크 입출력 장치(113)로 수신되는 데이터 패킷들의 데이터 전송률을 예측할 수 있다. 데이터 전송률은 단위 시간당 네트워크 입출력 장치(113)로 수신되는 데이터의 크기를 의미한다. 데이터 패킷들은 수신되는 시간 간격 및 패킷의 크기가 다양하기 때문에 데이터 전송률은 수시로 변할 수 있다. 이렇게 변하는 데이터 전송률에 따라 중앙 처리 장치(111)의 동작 주파수는 변경될 필요가 있다.
S130 단계에서, 시스템 온 칩(110)은 예측된 데이터 전송률에 기초하여 DVFS 동작의 기준 값을 동적으로 결정할 수 있다. 예를 들면, 성능 모니터링 유닛(114)은 예측된 데이터 전송률을 네트워크 입출력 장치(113)의 현재 대역폭과 비교할 수 있다. 비교 결과에 따라 예측된 데이터 전송률이 현재 대역폭보다 큰 경우, 성능 모니터링 유닛(114)은 중앙 처리 장치(111)의 처리 성능을 증가시키도록 DVFS 알고리즘의 설정 정보를 변경할 수 있다. 또는 비교 결과에 따라 예측된 데이터 전송률이 현재 대역폭보다 작거나 같은 경우, 성능 모니터링 유닛(114)은 중앙 처리 장치(111)의 처리 성능을 감소시키도록 DVFS 알고리즘의 설정 정보를 변경할 수 있다.
S140 단계에서, 시스템 온 칩(110)은 S130 단계에서 결정된 기준 값에 따라 DVFS 동작을 수행할 수 있다. 예를 들면, DVFS 제어 유닛(115)은 DVFS 알고리즘의 변경된 설정 정보를 수신할 수 있다. DVFS 제어 유닛(115)은 변경된 설정 정보에 따라 DVFS 알고리즘을 수행할 수 있다.
본 발명의 실시 예에 따른 시스템 온 칩(110)은 중앙 처리 장치(111)의 처리 성능 및 네트워크 입출력 장치(113)의 네트워크 처리량을 모니터링할 수 있다. 또한, 시스템 온 칩(110)은 모니터링 결과에 기초하여 DVFS 알고리즘이 비효율적으로 적용되고 있는 설정 값들을 학습할 수 있다. 이러한 학습 결과에 기초하여, 시스템 온 칩(110)은 DVFS 알고리즘의 설정 정보를 변경할 수 있다. 즉, 시스템 온 칩(110)은 데이터 패킷들에 기초하여 DVFS 알고리즘을 동적으로 수행할 수 있다.
도 4는 본 발명의 실시 예에 따른 제 1 및 제 2 상관도 분석을 보여주는 도면이다. 도 4를 참조하면, 성능 모니터링 유닛(114)은 시간에 따른 중앙 처리 장치(111)의 처리 성능을 모니터할 수 있다. 예를 들면, 처리 성능의 그래프에서, 정상 상태는 실선 아래의 부분에 분포할 수 있다. 비정상 상태는 점으로 표시된 부분이다. 성능 모니티링 유닛(114)은 제 1 상관도 분석을 통해 처리 성능의 그래프와 같은 처리 성능 모니터링 결과에서 정상 상태 및 비정상 상태를 분류할 수 있다.
또한, 성능 모니터링 유닛(114)은 시간에 따른 네트워크 입출력 장치(113)의 네트워크 처리량을 모니터할 수 있다. 예를 들면, 네트워크 처리량의 그래프에서, 정상 상태는 실선 아래의 부분에 분포할 수 있다. 비정상 상태는 점으로 표시된 부분이다. 성능 모니티링 유닛(114)은 제 1 상관도 분석을 통해 네트워크 처리량의 그래프와 같은 네트워크 처리량 모니터링 결과에서 정상 상태 및 비정상 상태를 분류할 수 있다.
한편, 성능 모니터링 유닛(114)은 제 1 상관도 분석 결과에 기초하여 제 2 상관도 분석을 수행할 수 있다. 예를 들면, 성능 모니터링 유닛(114)은 처리 성능의 제 1 상관도 분석 결과 및 네트워크 처리량의 제 1 상관도 분석 결과를 클러스터링하여 처리 성능 및 네트워크 처리량의 상관 관계를 구할 수 있다. 제 2 상관도 분석 그래프를 살펴보면, 비정상 영역이 존재한다. 비정상 영역은 DVFS 알고리즘이 비효율적으로 수행되고 있는 설정 값들을 알려준다. 즉, 비정상 영역은 중앙 처리 장치(111)의 동작 주파수를 변경할 필요가 있는 상태를 의미한다. 따라서, 성능 모니터링 유닛(114)은 제 2 상관도 분석 결과에 기초하여 비정상 영역이 감소하도록 DVFS 알고리즘의 설정 값들을 변경할 수 있다.
도 5는 본 발명의 실시 예에 따른 데이터 전송률의 예측 방법을 보여주는 순서도이다. 도 5를 참조하면, 시스템 온 칩(110)은 제 1 및 제 2 상관도 분석을 통해 패킷 스트림의 데이터 전송률을 예측할 수 있다.
S210 단계에서, 시스템 온 칩(110)은 통신 장치(130)로부터 데이터 패킷들을 수신할 수 있다. 예를 들면, 통신 장치(130)는 무선 또는 유선으로 네트워크에 연결되어 데이터 패킷들을 수신할 수 있다. 네트워크 입출력 장치(113)는 통신 장치(130)로부터 데이터 패킷들을 수신하여 논리적인 버퍼에 저장할 수 있다. 논리적인 버퍼는 메모리 장치(120)에 형성되고, 그 크기는 데이터 패킷들의 수신 상태에 따라 조절될 수 있다.
S220 단계에서, 시스템 온 칩(110)은 수신된 데이터 패킷들에 기초하여 중앙 처리 장치(111)의 처리 성능 및 네트워크 입출력 장치(113)의 네트워크 처리량을 모니터링할 수 있다. 예를 들면, 네트워크 처리량은 단위 시간당 네트워크 입출력 장치(113)가 버퍼에 저장하는 데이터 패킷들의 수로 정의될 수 있다. 중앙 처리 장치(111)는 정해진 순서에 따라 버퍼에 저장된 데이터 패킷들을 처리할 수 있다. 처리 성능은 단위 시간당 중앙 처리 장치(111)에 의해 처리되는 데이터 패킷들의 수로 정의될 수 있다.
S230 단계에서, 시스템 온 칩(110)은 제 1 상관도 분석으로서 처리 성능의 정상 상태 및 비정상 상태를 판별할 수 있다. S240 단계에서, 시스템 온 칩(110)은 제 1 상관도 분석으로서 네트워크 처리량의 정상 상태 및 비정상 상태를 판별할 수 있다. 예를 들면, 정상 상태는 중앙 처리 장치(111)의 동작 주파수가 증가될 때 데이터 전송률도 함께 증가되는 경우를 말한다. 비정상 상태는 정상 상태 이외의 나머지 경우를 말한다.
S250 단계에서, 시스템 온 칩(110)은 제 2 상관도 분석으로서 처리 성능 및 네트워크 처리량의 상관 관계를 계산할 수 있다. 예를 들면, 성능 모니터링 유닛(114)은 처리 성능의 비정상 상태 및 네트워크 처리량의 비정상 상태를 클러스터링하여 처리 성능 및 네트워크 처리량의 비정상 영역을 계산할 수 있다. 비정상 영역은 DVFS 알고리즘이 비효율적으로 수행되고 있는 설정 값들을 알려준다. 즉, 비정상 영역은 중앙 처리 장치(111)의 동작 주파수를 변경할 필요가 있는 상태를 의미한다.
S260 단계에서, 시스템 온 칩(110)은 계산된 처리 성능 및 네트워크 처리량의 상관 관계의 계산 결과에 기초하여 패킷 스트림의 데이터 전송률을 예측할 수 있다. 예를 들면, 성능 모니터링 유닛(114)은 처리 성능 및 네트워크 처리량의 비정상 영역에 기초하여 네트워크 입출력 장치(113)로 수신되는 데이터 패킷들의 데이터 전송률을 예측할 수 있다. 데이터 전송률은 단위 시간당 네트워크 입출력 장치(113)로 수신되는 데이터의 크기를 의미한다. 데이터 패킷들은 수신되는 시간 간격 및 패킷의 크기가 다양하기 때문에 데이터 전송률은 수시로 변할 수 있다. 이렇게 변하는 데이터 전송률에 따라 중앙 처리 장치(111)의 동작 주파수는 변경될 필요가 있다.
본 발명의 실시 예에 따른 시스템 온 칩(110)은 중앙 처리 장치(111)의 처리 성능 및 네트워크 입출력 장치(113)의 네트워크 처리량을 모니터링할 수 있다. 또한, 시스템 온 칩(110)은 모니터링 결과에 기초하여 DVFS 알고리즘이 비효율적으로 적용되고 있는 설정 값들을 학습할 수 있다. 이러한 학습 결과에 기초하여, 시스템 온 칩(110)은 DVFS 알고리즘의 설정 정보를 변경할 수 있다. 즉, 시스템 온 칩(110)은 데이터 패킷들에 기초하여 DVFS 알고리즘을 동적으로 수행할 수 있다.
도 6 및 도 7은 본 발명의 실시 예에 따른 DVFS 제어 방법을 보여주는 도면이다. 도 6 및 도 7을 참조하면, 네트워크 입출력 장치(113)는 데이터 패킷들(P1~P5)을 수신할 수 있다. 예를 들면, 데이터 패킷들(P1~P5)은 다양한 크기를 가질 수 있다. 데이터 패킷들(P1~P5)은 다양한 시간 간격으로 수신될 수 있다. 수신된 데이터 패킷들(P1~P5)은 메모리 장치(120)에 버퍼링(Buffering)될 수 있다. 예를 들면, 논리적인 버퍼(Buffer)는 메모리 장치(120)에 설정될 수 있다. 버퍼의 크기는 데이터 패킷들의 수에 따라 증가 또는 감소될 수 있다. 버퍼의 크기는 기준 크기(Reference Size) 단위로 증가 또는 감소될 수 있다. 버퍼에 저장된 데이터 패킷들(P1~P5)은 정해진 순서에 따라 중앙 처리 장치(111)에 의해 처리될 수 있다.
도 6에서, 데이터 패킷들(P1~P5)은 긴 시간 간격으로 수신된다. 데이터 패킷들(P1~P5)이 긴 시간 간격으로 수신되는 경우, 데이터 전송률은 낮아진다. 데이터 전송률이 낮아지면, 성능 모니터링 유닛(114)은 중앙 처리 장치(111)의 처리 성능을 감소시키도록 DVFS 설정 정보를 생성할 수 있다. 따라서, DVFS 제어 유닛(114)은 이러한 DVFS 설정 정보에 따라 클록 제어 신호를 생성할 수 있다. 클록 제어 유닛(116)은 이러한 클록 제어 신호에 따라 중앙 처리 장치(111)의 동작 주파수를 감소시킬 수 있다.
도 7에서, 데이터 패킷들(P1~P5)은 짧은 시간 간격으로 수신된다. 데이터 패킷들(P1~P5)이 짧은 시간 간격으로 수신되는 경우, 데이터 전송률은 높아진다. 데이터 전송률이 높아지면, 성능 모니터링 유닛(114)은 중앙 처리 장치(111)의 처리 성능을 증가시키도록 DVFS 설정 정보를 생성할 수 있다. 따라서, DVFS 제어 유닛(114)은 이러한 DVFS 설정 정보에 따라 클록 제어 신호를 생성할 수 있다. 클록 제어 유닛(116)은 이러한 클록 제어 신호에 따라 중앙 처리 장치(111)의 동작 주파수를 증가시킬 수 있다.
도 8은 본 발명의 실시 예에 따른 DVFS 동작 모드 결정 방법을 보여주는 순서도이다. 도 8을 참조하면, 성능 모니터링 유닛(114)은 예측된 데이터 전송률과 현재의 대역폭을 비교하여 DVFS 동작 모드를 결정할 수 있다.
S310 단계에서, 성능 모니터링 유닛(114)은 중앙 처리 장치(111)의 처리 성능 및 네트워크 입출력 장치(113)의 네트워크 처리량의 상관 관계에 기초하여 패킷 스트림의 데이터 전송률을 예측할 수 있다. 예를 들면, 성능 모니터링 유닛(114)은 도 5의 S210 단계 내지 S260 단계를 통해 데이터 전송률을 예측할 수 있다.
S320 단계에서, 성능 모니터링 유닛(114)은 예측된 데이터 전송률과 네트워크 입출력 장치(113)의 현재 대역폭을 비교할 수 있다. 비교 결과에 따라 예측된 데이터 전송률이 현재 대역폭보다 큰 경우, 순서는 S330 단계로 이동한다. 비교 결과에 따라 예측된 데이터 전송률이 현재의 대역폭보다 작은 경우, 순서는 S350 단계로 이동한다.
S330 단계에서, 예측된 데이터 전송률이 현재 대역폭보다 큰 경우, 성능 모니터링 유닛(114)은 제 1 DVFS 동작 모드를 설정할 수 있다. 예를 들면, 예측된 데이터 전송률이 현재 대역폭보다 큰 경우는 도 7에서 설명된 경우이다. 데이터 패킷들의 입력 시간 간격이 짧아지거나 데이터 패킷들의 크기가 커질 것이 예상되기 때문에, 중앙 처리 장치(111)의 처리 성능은 증가될 필요가 있다. S340 단계에서, 성능 모니터링 유닛(114)은 중앙 처리 장치(111)의 처리 속도를 증가시키도록 DVFS 설정 정보를 생성할 수 있다.
S350 단계에서, 예측된 데이터 전송률이 현재의 대역폭보다 작은 경우, 성능 모니터링 유닛(114)은 제 2 DVFS 동작 모드를 설정할 수 있다. 예를 들면, 예측된 데이터 전송률이 현재 대역폭보다 큰 경우는 도 6에서 설명된 경우이다. 데이터 패킷들의 입력 시간 간격이 길어지거나 데이터 패킷들의 크기가 작아질 것이 예상되기 때문에, 중앙 처리 장치(111)의 처리 성능은 감소될 필요가 있다. S360 단계에서, 성능 모니터링 유닛(114)은 중앙 처리 장치(111)의 처리 속도를 감소시키도록 DVFS 설정 정보를 생성할 수 있다.
S370 단계에서, 성능 모니터링 유닛(114)은 DVFS 제어 유닛(115)으로 DVFS 설정 정보를 전송할 수 있다. 예를 들면, DVFS 제어 유닛(115)은 DVFS 알고리즘의 변경된 설정 정보를 수신할 수 있다. DVFS 제어 유닛(115)은 변경된 설정 정보에 따라 DVFS 알고리즘을 수행할 수 있다. 따라서, DVFS 알고리즘은 데이터 패킷들의 예측된 데이터 전송률에 기초하여 동적으로 수행될 수 있다.
도 8에서, 성능 모니터링 유닛(114)은 예측된 데이터 전송률에 기초하여 제 1 및 제 2 DVFS 동작 모드들을 선택하였다. 하지만, DVFS 동작 모드는 이것에 한정되지 않는다. 성능 모니터링 유닛(114)은 예측된 데이터 전송률에 기초하여 더욱 다양한 DVFS 동작 모드들을 설정할 수 있다. 또한, 성능 모니터링 유닛(114)은 다양한 동작 모드들에 기초하여 DVFS 알고리즘의 설정 정보를 다양하게 변경할 수 있다.
도 9는 본 발명의 실시 예에 따른 시스템 온 칩을 포함하는 모바일 장치를 보여주는 블록도이다. 도 9를 참조하면, 본 발명의 실시 예에 따른 모바일 장치(1000)는 이미지 처리부(1100), 무선 송수신부(1200), 오디오 처리부(1300), 이미지 파일 생성부(1400), SRAM(1500), 유저 인터페이스(1600), 그리고 컨트롤러(1700)를 포함할 수 있다.
이미지 처리부(1100)는 렌즈(1110), 이미지 센서(1120), 이미지 프로세서(1130), 그리고 디스플레이부(1140)를 포함할 수 있다. 무선 송수신부(1200)는 안테나(1210), 트랜시버(1220), 모뎀(1230)을 포함할 수 있다. 오디오 처리부(1300)는 오디오 프로세서(1310), 마이크(1320), 그리고 스피커(1330)를 포함할 수 있다.
모바일 장치(1000)에는 다양한 종류의 반도체 장치들이 포함될 수 있다. 특히, 컨트롤러(1700)의 기능을 수행하는 시스템 온 칩의 경우 저전력, 고성능이 요구된다. 컨트롤러(1700)는 도 1 내지 도 8에서 설명된 시스템 온 칩과 동일 또는 유사한 기능을 수행할 수 있다. 컨트롤러(1700)는 무선 송수신부(1200)를 통해 수신되는 패킷 데이터의 네트워크 처리량 및 처리 성능을 모니터할 수 있다. 컨트롤러(1700)는 모니터링 결과에 기초하여 DVFS 알고리즘의 설정 값들을 동적으로 변경할 수 있다. 따라서, 컨트롤러(1700)는 모바일 장치(1000)의 전력 및 성능을 최적의 상태로 유지할 수 있다.
도 10은 본 발명의 실시 예에 따른 시스템 온 칩을 포함하는 컴퓨팅 장치를 개략적으로 보여주는 블록도이다. 도 10을 참조하면, 컴퓨팅 장치(2000)는 시스템 버스(2060)에 전기적으로 연결되는 불휘발성 메모리 장치(2010), 애플리케이션 프로세서(Application Processor; AP, 2020), 및 램(2030)을 포함할 수 있다. 그리고 컴퓨팅 장치(2000)는 시스템 버스(2060)에 전기적으로 연결된 사용자 인터페이스(2040), 베이스밴드 칩셋(Baseband chipset)과 같은 모뎀(2050)을 포함할 수 있다.
본 발명에 따른 컴퓨팅 장치(2000)가 모바일 장치인 경우, 컴퓨팅 장치(2000)의 동작 전압을 공급하기 위한 배터리(미도시됨)가 추가적으로 제공될 것이다. 비록 도면에는 도시되지 않았지만, 본 발명에 따른 컴퓨팅 장치(2000)에는 응용 칩셋(Application chipset), 카메라 이미지 프로세서(Camera Image Processor: CIS), 모바일 디램, 등이 더 제공될 수 있음은 이 분야의 통상적인 지식을 습득한 자들에게 자명하다.
여기서, 애플리케이션 프로세서(2020)는 도 1 내지 도 8에서 설명된 시스템 온 칩과 동일 또는 유사한 기능을 수행할 수 있다. 애플리케이션 프로세서(2020)는 모뎀(2050)을 통해 수신되는 패킷 데이터의 네트워크 처리량 및 처리 성능을 모니터할 수 있다. 애플리케이션 프로세서(2020)는 모니터링 결과에 기초하여 DVFS 알고리즘의 설정 값들을 동적으로 변경할 수 있다. 따라서, 애플리케이션 프로세서(2020)는 컴퓨팅 장치(2000)의 전력 및 성능을 최적의 상태로 유지할 수 있다.
본 발명의 실시 예에 따른 메모리 시스템 혹은 저장 장치는 다양한 형태들의 패키지를 이용하여 실장 될 수 있다. 실시 예에 있어서, 본 발명의 실시 예에 따른 메모리 시스템 혹은 저장 장치는 PoP(Package on Package), Ball grid arrays(BGAs), Chip scale packages(CSPs), Plastic Leaded Chip Carrier(PLCC), Plastic Dual In-Line Package(PDIP), Die in Waffle Pack, Die in Wafer Form, Chip On Board(COB), Ceramic Dual In-Line Package(CERDIP), Plastic Metric Quad Flat Pack(MQFP), Thin Quad Flatpack(TQFP), Small Outline(SOIC), Shrink Small Outline Package(SSOP), Thin Small Outline(TSOP), Thin Quad Flatpack(TQFP), System In Package(SIP), Multi Chip Package(MCP), Wafer-level Fabricated Package(WFP), Wafer-Level Processed Stack Package(WSP), 등과 같은 패키지들을 이용하여 실장 될 수 있다.
위에서 설명한 내용은 본 발명을 실시하기 위한 구체적인 예들이다. 본 발명에는 위에서 설명한 실시 예들뿐만 아니라, 단순하게 설계 변경하거나 용이하게 변경할 수 있는 실시 예들도 포함될 것이다. 또한, 본 발명에는 위에서 설명한 실시 예들을 이용하여 앞으로 용이하게 변형하여 실시할 수 있는 기술들도 포함될 것이다.
100: 컴퓨팅 시스템
110: 시스템 온 칩
111: 중앙 처리 장치
112: 메모리 컨트롤러
113: 네트워크 입출력 장치
114: 성능 모니터링 유닛
115: 동적 전압 주파수 스케줄링 제어 유닛
116: 클록 제어 유닛
117: 시스템 인터커넥터
120: 메모리 장치
130: 통신 장치
1000: 모바일 장치
1100: 이미지 처리부
1200: 무선 송수신부
1300: 오디오 처리부
1400: 이미지 파일 생성부
1500: SRAM
1600: 유저 인터페이스
1700: 컨트롤러
2000: 컴퓨팅 장치
2010: 불휘발성 메모리 장치
2020: 애플리케이션 프로세서
2030: 램
2040: 사용자 인터페이스
2050: 모뎀
2060: 시스템 버스
110: 시스템 온 칩
111: 중앙 처리 장치
112: 메모리 컨트롤러
113: 네트워크 입출력 장치
114: 성능 모니터링 유닛
115: 동적 전압 주파수 스케줄링 제어 유닛
116: 클록 제어 유닛
117: 시스템 인터커넥터
120: 메모리 장치
130: 통신 장치
1000: 모바일 장치
1100: 이미지 처리부
1200: 무선 송수신부
1300: 오디오 처리부
1400: 이미지 파일 생성부
1500: SRAM
1600: 유저 인터페이스
1700: 컨트롤러
2000: 컴퓨팅 장치
2010: 불휘발성 메모리 장치
2020: 애플리케이션 프로세서
2030: 램
2040: 사용자 인터페이스
2050: 모뎀
2060: 시스템 버스
Claims (10)
- 데이터 패킷들을 수신하는 네트워크 입출력 장치의 네트워크 처리량 및 상기 데이터 패킷들을 처리하는 중앙 처리 장치의 처리 성능 사이의 상관 관계를 학습하는 단계;
상기 상관 관계의 학습 결과에 기초하여 상기 데이터 패킷들의 데이터 전송률을 예측하는 단계;
상기 예측된 데이터 전송률에 기초하여 동적 전압 주파수 스케줄링 알고리즘의 설정 정보를 동적으로 변경하는 단계; 그리고
상기 동적 전압 주파수 스케줄링 알고리즘에 따라 상기 중앙 처리 장치의 동작 주파수를 제어하는 단계를 포함하되,
상기 학습하는 단계는,
상기 처리 성능 및 상기 네트워크 처리량을 모니터링하는 단계,
상기 처리 성능의 제 1 비정상 상태를 판별하는 단계,
상기 네트워크 처리량의 제 2 비정상 상태를 판별하는 단계, 및
상기 제 1 비정상 상태 및 상기 제 2 비정상 상태를 클러스터링하여 상기 처리 성능 및 상기 네트워크 처리량의 상관도를 계산하는 단계를 포함하되,
상기 상관도는 상기 처리 성능 및 상기 네트워크 처리량의 적어도 하나의 비정상 영역을 포함하고, 그리고
상기 제 1 및 제 2 비정상 상태에서, 상기 중앙 처리 장치의 상기 동작 주파수가 증가할 때 상기 네트워크 처리량은 감소하는 시스템 온 칩의 동작 방법. - 제 1 항에 있어서,
상기 데이터 전송률을 예측하는 단계는, 상기 적어도 하나의 비정상 영역에 기초하여 상기 데이터 전송률을 예측하는 단계를 포함하는 시스템 온 칩의 동작 방법. - 제 1 항에 있어서,
상기 동적 전압 주파수 스케줄링 알고리즘의 설정 정보를 동적으로 변경하는 단계는,
상기 예측된 데이터 전송률과 상기 네트워크 입출력 장치의 현재 대역폭을 비교하는 단계; 그리고
상기 비교 결과에 따라 상기 동적 전압 주파수 스케줄링 알고리즘의 동작 모드를 결정하는 단계를 포함하는 시스템 온 칩의 동작 방법. - 제 3 항에 있어서,
상기 예측된 데이터 전송률이 상기 현재 대역폭보다 작거나 같은 경우, 상기 중앙 처리 장치의 상기 처리 성능이 감소되도록 상기 동적 전압 주파수 스케줄링 알고리즘의 설정 정보를 변경하는 시스템 온 칩의 동작 방법. - 제 1 항에 있어서,
상기 중앙 처리 장치의 처리 성능은 단위 시간당 처리되는 상기 데이터 패킷들의 수로 정의되는 시스템 온 칩의 동작 방법. - 제 1 항에 있어서,
상기 네트워크 입출력 장치의 상기 네트워크 처리량은 단위 시간당 버퍼에 저장되는 상기 데이터 패킷들의 수로 정의되는 시스템 온 칩의 동작 방법. - 제 1 항에 있어서,
상기 데이터 전송률은 단위 시간당 상기 네트워크 입출력 장치로 수신되는 데이터의 크기로 정의되는 시스템 온 칩의 동작 방법. - 사용자 데이터를 포함하는 데이터 패킷들을 수신하는 네트워크 입출력 장치;
상기 사용자 데이터를 사용하기 위해 상기 데이터 패킷들에 대하여 특정한 처리를 수행하는 중앙 처리 장치;
상기 중앙 처리 장치의 처리 성능 및 상기 네트워크 입출력 장치의 네트워크 처리량의 상관 관계를 학습하고, 상기 학습 결과에 기초하여 상기 데이터 패킷들의 데이터 전송률을 예측하고, 그리고 상기 예측된 데이터 전송률에 기초하여 동적 전압 주파수 스케일링 알고리즘의 설정 정보를 동적으로 변경하는 성능 모니터링 장치; 그리고
상기 설정 정보를 수신하여 상기 동적 전압 주파수 스케일링 알고리즘을 수행하는 동적 전압 주파수 스케일링 유닛을 포함하되,
상기 성능 모니터링 장치는 상기 처리 성능 및 상기 네트워크 처리량을 모니터링하고,
상기 모니터링 결과에 기초하여 상기 처리 성능의 제 1 비정상 상태, 그리고 상기 네트워크 처리량의 제 2 비정상 상태를 판별하고, 그리고
상기 제 1 및 제 2 비정상 상태를 클러스터링하여 상기 처리 성능 및 상기 네트워크 처리량의 상관도를 계산하도록 구성되고,
상기 제 1 및 제 2 비정상 상태에서, 상기 중앙 처리 장치의 동작 주파수가 증가할 때 상기 네트워크 처리량은 감소하고,
상기 상관도는 상기 처리 성능 및 상기 네트워크 처리량의 적어도 하나의 비정상 영역을 포함하는 시스템 온 칩. - 제 8 항에 있어서,
상기 성능 모니터링 장치는, 상기 적어도 하나의 비정상 영역에 기초하여 상기 데이터 전송률을 예측하도록 구성되는 시스템 온 칩. - 제 9 항에 있어서,
상기 성능 모니터링 장치는 상기 예측된 데이터 전송률이 상기 네트워크 입출력 장치의 현재 대역폭보다 큰 경우 상기 중앙 처리 장치의 상기 동작 주파수가 증가하도록 상기 동적 전압 주파수 스케일링 알고리즘의 상기 설정 정보를 변경하고, 그리고
상기 예측된 데이터 전송률이 상기 네트워크 입출력 장치의 현재 대역폭보다 작거나 같은 경우 상기 중앙 처리 장치의 상기 동작 주파수가 감소하도록 상기 동적 전압 주파수 스케일링 알고리즘의 상기 설정 정보를 변경하도록 구성되는 시스템 온 칩.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020160179332A KR102661491B1 (ko) | 2016-12-26 | 2016-12-26 | 동적 전압 주파수 스케일링을 사용하는 시스템 온 칩 및 그것의 동작 방법 |
US15/797,495 US10211947B2 (en) | 2016-12-26 | 2017-10-30 | System-on-chip using dynamic voltage frequency scaling and method of operating the same |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020160179332A KR102661491B1 (ko) | 2016-12-26 | 2016-12-26 | 동적 전압 주파수 스케일링을 사용하는 시스템 온 칩 및 그것의 동작 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20180075760A KR20180075760A (ko) | 2018-07-05 |
KR102661491B1 true KR102661491B1 (ko) | 2024-04-29 |
Family
ID=62630289
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020160179332A KR102661491B1 (ko) | 2016-12-26 | 2016-12-26 | 동적 전압 주파수 스케일링을 사용하는 시스템 온 칩 및 그것의 동작 방법 |
Country Status (2)
Country | Link |
---|---|
US (1) | US10211947B2 (ko) |
KR (1) | KR102661491B1 (ko) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11036275B2 (en) * | 2019-03-29 | 2021-06-15 | Intel Corporation | Detection of known workload patterns |
CN110417516B (zh) * | 2019-08-16 | 2022-03-01 | 北京小米移动软件有限公司 | 无线调制解调器的调整方法及装置 |
US20210004265A1 (en) * | 2020-09-18 | 2021-01-07 | Francesc Guim Bernat | Elastic power scaling |
KR20230023159A (ko) * | 2021-08-10 | 2023-02-17 | 삼성전자주식회사 | 패킷 전송 제어 방법 및 장치 |
Family Cites Families (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000349854A (ja) | 1999-06-02 | 2000-12-15 | Canon Inc | ネットワーク・インタフェース装置、動作制御方法、及び記憶媒体 |
JP3793123B2 (ja) | 2002-07-15 | 2006-07-05 | キヤノン株式会社 | ネットワークインタフェース装置および電力制御方法およびコンピュータが読み取り可能な記憶媒体およびプログラム |
US8588118B2 (en) | 2007-08-24 | 2013-11-19 | Kabushiki Kaisha Toshiba | Wireless communication device and wireless communication system |
KR101432814B1 (ko) * | 2007-11-30 | 2014-08-28 | 삼성전자주식회사 | 무선 망에서 비트 레이트 가변 제어 방법 |
US8996330B2 (en) | 2011-01-06 | 2015-03-31 | Qualcomm Incorporated | Method and system for managing thermal policies of a portable computing device |
US8917733B2 (en) * | 2011-12-06 | 2014-12-23 | Qualcomm Incorporated | Using wireless wide area network protocol information for managing a performance level of a processor |
US8972759B2 (en) | 2012-06-29 | 2015-03-03 | Qualcomm Incorporated | Adaptive thermal management in a portable computing device including monitoring a temperature signal and holding a performance level during a penalty period |
KR20140021283A (ko) | 2012-08-09 | 2014-02-20 | 삼성전자주식회사 | 다중 dvfs 정책을 이용한 soc 및 이의 동작 방법 |
KR101991682B1 (ko) | 2012-08-29 | 2019-06-21 | 삼성전자 주식회사 | Dvfs 제어 방법 및 이를 이용한 시스템-온 칩 |
JP6048030B2 (ja) | 2012-09-21 | 2016-12-21 | 富士通株式会社 | 携帯端末装置の制御方法、制御プログラム、携帯端末装置 |
US9820229B2 (en) | 2013-04-05 | 2017-11-14 | Qualcomm Incorporated | Dynamic voltage and frequency scaling in wireless modems |
US9152214B2 (en) | 2013-05-16 | 2015-10-06 | Qualcomm Innovation Center, Inc. | Dynamic load and priority based clock scaling for non-volatile storage devices |
WO2015005909A1 (en) | 2013-07-09 | 2015-01-15 | Empire Technology Development Llc | Differential voltage and frequency scaling (dvfs) switch reduction |
KR101543074B1 (ko) | 2013-07-17 | 2015-08-10 | 서울대학교산학협력단 | 동적 전압 및 주파수 스케일링(dvfs)에 따른 컴퓨터 프로세서의 성능 변화 예측 방법 및 이를 이용한 프로세서 동작속도 조절 방법 |
EP2835923B1 (en) * | 2013-08-07 | 2017-06-21 | Alcatel Lucent | User equipment and method to report CQI when interference cancellation is supported at the receiver |
JP6381899B2 (ja) | 2013-12-05 | 2018-08-29 | ルネサスエレクトロニクス株式会社 | 半導体装置の設計方法、設計支援プログラム、設計装置、及び、半導体装置 |
KR20150106224A (ko) | 2014-03-11 | 2015-09-21 | 삼성전자주식회사 | 시스템-온-칩 및 그의 부하 불균형 검출 방법 |
KR102222752B1 (ko) | 2014-08-01 | 2021-03-04 | 삼성전자주식회사 | 프로세서의 동적 전압 주파수 스케일링 방법 |
US9665161B2 (en) | 2014-08-27 | 2017-05-30 | Mediatek Inc. | Method and computer-readable medium for dynamically managing power of multi-core processor |
KR20160032529A (ko) | 2014-09-16 | 2016-03-24 | 삼성전자주식회사 | 시스템 온 칩과 이의 dvfs 검증 방법 |
KR102244992B1 (ko) | 2014-10-17 | 2021-04-28 | 삼성전자주식회사 | 부하 전류 정보를 제공하는 전력관리 집적회로 및 그것을 포함하는 전자 장치 |
KR102271469B1 (ko) | 2014-10-24 | 2021-06-30 | 삼성전자주식회사 | 반도체 장치 및 이를 포함하는 반도체 시스템 |
US20160055615A1 (en) | 2014-11-11 | 2016-02-25 | Mediatek Inc. | Smart Frequency Boost For Graphics-Processing Hardware |
US20160154449A1 (en) | 2014-11-27 | 2016-06-02 | Eui Choel LIM | System on chips for controlling power using workloads, methods of operating the same, and computing devices including the same |
US20160187958A1 (en) | 2014-12-24 | 2016-06-30 | Intel Corporation | Techniques for managing power and performance for a networking device |
US10114432B2 (en) | 2014-12-29 | 2018-10-30 | Mediatek Inc. | Thermal control system and thermal control method for electronic device |
KR101552953B1 (ko) | 2015-02-27 | 2015-09-14 | 성균관대학교산학협력단 | Dvfs를 지원하는 멀티코어 플랫폼에서의 전력할당 방법 및 장치 |
KR102247742B1 (ko) | 2015-04-21 | 2021-05-04 | 삼성전자주식회사 | 애플리케이션 프로세서와 시스템 온 칩 |
-
2016
- 2016-12-26 KR KR1020160179332A patent/KR102661491B1/ko active IP Right Grant
-
2017
- 2017-10-30 US US15/797,495 patent/US10211947B2/en active Active
Non-Patent Citations (3)
Title |
---|
미국공개특허 제2016-0191200호(2016.06.30.) 1부.* |
한국공개특허 제10-2014-0104992호(2014.08.29.) 1부.* |
한국등록특허 제10-1432814호(2014.08.28.) 1부.* |
Also Published As
Publication number | Publication date |
---|---|
US20180183543A1 (en) | 2018-06-28 |
US10211947B2 (en) | 2019-02-19 |
KR20180075760A (ko) | 2018-07-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102661491B1 (ko) | 동적 전압 주파수 스케일링을 사용하는 시스템 온 칩 및 그것의 동작 방법 | |
EP3451635B1 (en) | Technologies for processing network packets in agent-mesh architectures | |
US9229525B2 (en) | Adaptive latency tolerance for power management of memory bus interfaces | |
JP6224244B2 (ja) | 作業密度を増加させ、エネルギー効率を向上させるための電力バランシング | |
US20180152383A1 (en) | Technologies for processing network packets in agent-mesh architectures | |
KR102114453B1 (ko) | 모바일 장치 및 그것의 제어 방법 | |
US20220329522A1 (en) | Adaptive resilient network communication | |
US9746902B2 (en) | System-on-chip including multi-core processor and dynamic power management method thereof | |
US20220222274A1 (en) | Technologies for providing dynamic persistence of data in edge computing | |
US10671141B2 (en) | Storage device and method of controlling link state thereof | |
US10514848B2 (en) | Data storage method for selectively storing data in a buffer preset in a memory of an electronic device or an inherent buffer in an SSD | |
KR20170069730A (ko) | 온도 및 공간적인 위치에 따라 코어들의 동작들을 관리하는 연산 처리 장치, 및 연산 처리 장치를 포함하는 전자 장치 | |
EP4202670A1 (en) | Infrastructure managed workload distribution | |
US20210318965A1 (en) | Platform data aging for adaptive memory scaling | |
WO2022133875A1 (en) | Protocol state aware power management | |
US20170038974A1 (en) | Storage device changing condition parameter value based on aging level and method for managing the same | |
US10437313B2 (en) | Processor unit efficiency control | |
WO2022155970A1 (zh) | 一种内存控制方法及内存控制装置 | |
US20220224762A1 (en) | Queuing control for distributed compute network orchestration | |
JP6331944B2 (ja) | 情報処理装置、メモリ制御装置及び情報処理装置の制御方法 | |
KR102222445B1 (ko) | 선택적으로 동작하는 복수의 디램 장치를 포함하는 메모리 시스템 | |
US9286237B2 (en) | Memory imbalance prediction based cache management | |
CN115705303A (zh) | 数据访问技术 | |
US20140281592A1 (en) | Global Efficient Application Power Management | |
US20150032963A1 (en) | Dynamic selection of cache levels |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |