KR20230124248A - Dvfs 제어 방법, 이를 이용한 반도체 장치 및 반도체 시스템 - Google Patents

Dvfs 제어 방법, 이를 이용한 반도체 장치 및 반도체 시스템 Download PDF

Info

Publication number
KR20230124248A
KR20230124248A KR1020220021309A KR20220021309A KR20230124248A KR 20230124248 A KR20230124248 A KR 20230124248A KR 1020220021309 A KR1020220021309 A KR 1020220021309A KR 20220021309 A KR20220021309 A KR 20220021309A KR 20230124248 A KR20230124248 A KR 20230124248A
Authority
KR
South Korea
Prior art keywords
processor
neural network
data
work
network models
Prior art date
Application number
KR1020220021309A
Other languages
English (en)
Inventor
김정호
임성섭
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR1020220021309A priority Critical patent/KR20230124248A/ko
Priority to US18/096,798 priority patent/US20230266815A1/en
Publication of KR20230124248A publication Critical patent/KR20230124248A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • G06F11/3419Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment by assessing time
    • 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
    • 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
    • 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/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • 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
    • 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/3296Power saving characterised by the action undertaken by lowering the supply or operating voltage
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5019Workload prediction
    • 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

Abstract

반도체 시스템이 제공된다. 반도체 시스템은, DVFS 제어부를 실행하기 위한 프로그램을 저장하는 메모리 장치, 및 DVFS 제어부를 실행하기 위한 프로그램을 메모리 장치로부터 리드하여 실행하는 신경망 모델을 이용한 프로세서를 포함하고, DVFS 제어부는 신경망 모델 각각에 대한 데이터를 입력받는 정보 수집기, 신경망 모델 각각에 대한 프로세서의 처리 작업의 수행 시간과 작업량을 추정하는 제1 일의 양 추정기, 및 신경망 모델 각각에 대한 프로세서의 작업량으로부터 프로세서에 요구되는 총 작업량을 추정하는 제2 일의 양 추정기를 포함한다.

Description

DVFS 제어 방법, 이를 이용한 반도체 장치 및 반도체 시스템{DVFS controlling method, semiconductor device and semiconductor system using the DVFS controlling method}
본 발명은 동적 전압 주파수 스케일링을 이용하는 반도체 장치 및 반도체 시스템에 관한 것이다.
정보통신의 발달에 따라, 많은 양의 데이터를 빠르게 처리하기 위해 모바일 장치와 같은 전자 장치들은 고성능의 프로세서들을 포함할 수 있다. 이러한 전자 장치는 CPU(Central Processing Unit), GPU(Graphic Processing Unit), 및 NPU(Neural Network Processing Unit)와 같은 프로세서들을 포함할 수 있다.
동적 전압 주파수 스케일링(DVFS: Dynamic Voltage Frequency Scaling)은 알고리즘(algorithm)을 활용하여 동작 주파수(operating frequency)와 동작 전압(operating voltage)을 동적으로 조절하는 기술이다.
예컨대 신경망 모델을 이용한 프로세서를 이용하는 전자 장치 및 전자 시스템에 있어서, 신경망 모델 별로 요구되는 수행 시간을 충족하면서 프로세서의 동작 주파수 레벨을 낮추어 전력 소모를 저감할 필요성이 증가하고 있다.
본 발명이 해결하고자 하는 기술적 과제는 신경망 모델 별로 요구되는 수행 시간을 충족하면서 전력 소모를 저감할 수 있는 DVFS 제어 방법을 제공하는 것이다.
본 발명이 해결하고자 하는 다른 기술적 과제는 신경망 모델 별로 요구되는 수행 시간을 충족하면서 전력 소모를 저감할 수 있는 반도체 장치 및 반도체 시스템을 제공하는 것이다.
본 발명의 기술적 과제들은 이상에서 언급한 기술적 과제로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.
상기 기술적 과제를 달성하기 위한 몇몇 실시예에 따른 반도체 시스템은, DVFS 제어부를 실행하기 위한 프로그램을 저장하는 메모리 장치, 및 DVFS 제어부를 실행하기 위한 프로그램을 메모리 장치로부터 리드(read)하여 실행하는 신경망 모델을 이용한 프로세서(Neural  Network Processing Unit)를 포함하고, DVFS 제어부는 신경망 모델 각각에 대한 데이터를 입력받는 정보 수집기, 신경망 모델 각각에 대한 프로세서의 처리 작업의 수행 시간과 작업량을 추정하는 제1 일의 양 추정기, 및 신경망 모델 각각에 대한 프로세서의 작업량으로부터 프로세서에 요구되는 총 작업량을 추정하는 제2 일의 양 추정기를 포함한다.
상기 기술적 과제를 달성하기 위한 몇몇 실시예에 따른 반도체 장치의 동작 방법은, DVFS 제어부를 실행하기 위한 프로그램을 저장하는 메모리 장치, 및 DVFS 제어부를 실행하기 위한 프로그램을 메모리 장치로부터 리드하여 실행하는 신경망 모델을 이용한 프로세서를 포함하는 반도체 장치에 있어서, DVFS 제어부는 신경망 모델 각각에 대한 데이터를 입력받고, 신경망 모델 각각에 대한 프로세서의 처리 작업의 수행 시간과 작업량을 추정하고, 신경망 모델 각각에 대한 프로세서의 작업량으로부터 프로세서의 총 작업량을 추정하여 프로세서의 동작 주파수가 결정되도록 제어한다.
상기 기술적 과제를 달성하기 위한 몇몇 실시예에 따른 DVFS 제어 방법은, 신경망 모델을 이용한 프로세서의 동작 주파수를 결정하는 DVFS 제어 방법으로, 외부로부터 신경망 모델 각각에 대한 데이터를 입력받고, 신경망 모델 각각에 대한 프로세서의 처리 작업의 수행 시간과 작업량을 추정하고, 신경망 모델 각각에 대한 프로세서의 작업량으로부터 프로세서의 총 작업량을 추정하여 프로세서의 동작 주파수가 결정되도록 제어한다.
기타 실시예들의 구체적인 사항들은 상세한 설명 및 도면들에 포함되어 있다.
도 1은 몇몇 실시예에 따른 반도체 시스템의 블록도이다.
도 2는 몇몇 실시예에 따른 반도체 시스템에 포함된 DVFS 제어부와 프로세서를 설명하기 위한 도면이다.
도 3은 몇몇 실시예에 따른 반도체 시스템에 포함된 NPU용 동작 주파수 결정 모듈과 NPU용 처리 단위 스케줄링 모듈을 설명하기 위한 도면이다.
도 4는 몇몇 실시예에 따른 반도체 시스템에 포함된 NPU용 동작 주파수 결정 모듈과 NPU용 처리 단위 스케줄링 모듈의 동작을 설명하기 위한 도면이다.
도 5는 몇몇 실시예에 따른 반도체 시스템을 나타내는 도면이다.
도 6은 몇몇 실시예에 따른 반도체 시스템의 DVFS 제어 방법을 설명하기 위한 순서도이다.
이하, 첨부된 도면을 참조하여 본 발명의 기술적 사상에 따른 실시예들에 대해 설명한다.
도 1은 몇몇 실시예에 따른 반도체 시스템의 블록도이다. 도 2는 몇몇 실시예에 따른 반도체 시스템에 포함된 DVFS 제어부와 프로세서를 설명하기 위한 도면이다. 도 3은 몇몇 실시예에 따른 반도체 시스템에 포함된 NPU용 동작 주파수 결정 모듈과 NPU용 처리 단위 스케줄링 모듈을 설명하기 위한 도면이다. 도 4는 몇몇 실시예에 따른 반도체 시스템에 포함된 NPU용 동작 주파수 결정 모듈과 NPU용 처리 단위 스케줄링 모듈의 동작을 설명하기 위한 도면이다.
도 1을 참조하면, 반도체 시스템(10)은 이동 전화기, 스마트폰, 태블릿 컴퓨터(tablet computer), PDA(personal digital assistant), EDA(enterprise digital assistant), 디지털 스틸 카메라(digital still camera), 디지털 비디오 카메라(digital video camera), PMP(portable multimedia player), PDN(personal navigation device 또는 portable navigation device), 손으로 들고 다닐 수 있는 게임 콘솔(handheld game console), 또는 e-북(e-book)과 같이 손으로 들고 다닐 수 있는 장치(handheld device)로 구현될 수 있다.
반도체 시스템(10)은 반도체 장치(SoC: System on Chip, 100), 메모리 장치(190) 및 디스플레이 장치(195)를 포함할 수 있다. 반도체 장치(100)는 프로세서(processor, 110), ROM(read only memory, 120), RAM(random access memory, 130), 타이머(135), 가속기(140), 클럭 관리부(CMU: clock management unit, 145), 디스플레이 컨트롤러(150), 메모리 컨트롤러(170), 및 버스(180)를 포함할 수 있다. 반도체 시스템(10)은 또한 전원 관리부(PMIC: power management IC, 160)를 더 포함할 수 있다.
도 1의 실시예에서는, PMIC(160)는 반도체 장치(100) 외부에 구현되나, 다른 실시예에서는 PMIC(160)가 반도체 장치(100) 내부에 구현될 수 있다. PMIC(160)는 전압 제어부(161) 및 전압 발생부(165)를 포함할 수 있다.
프로세서(110)는 메모리 장치(190)에 저장된 프로그램들 및/또는 데이터를 처리 또는 실행할 수 있다. 예컨대, 프로세서(110)는 클럭 신호 발생기(미 도시)로부터 출력된 클럭 신호에 응답하여 상기 프로그램들 및/또는 상기 데이터를 처리 또는 실행할 수 있다.
프로세서(110)는 멀티-코어 프로세서(multi-core processor)로 구현될 수 있다. 상기 멀티-코어 프로세서는 두 개 또는 그 이상의 독립적인 실질적인 프로세서들('코어들(cores)'이라고 불림)을 갖는 하나의 컴퓨팅 컴포넌트(computing component)이고, 상기 프로세서들 각각은 프로그램 명령들(program instructions)을 읽고 실행할 수 있다.
프로세서(110) 내부 또는 프로세서(110)의 전단에 성능 측정부(PMU: Performance Monitoring Unit, 112)가 구비될 수 있다.
ROM(120), RAM(130), 및 메모리 장치(190)에 저장된 프로그램들 및/또는 데이터는 필요에 따라 프로세서(110)의 메모리 장치에 로드(load)될 수 있다.
ROM(120)은 영구적인 프로그램들 및/또는 데이터를 저장할 수 있다. ROM(120)은 EPROM(erasable programmable read-only memory) 또는 EEPROM(electrically erasable programmable read-only memory)으로 구현될 수 있다.
RAM(130)은 프로그램들, 데이터, 또는 명령들(instructions)을 일시적으로 저장할 수 있다. 예컨대, 메모리(120 또는 190)에 저장된 프로그램들 및/또는 데이터는 프로세서(110)의 제어 또는 ROM(120)에 저장된 부팅 코드(booting code)에 따라 RAM(130)에 일시적으로 저장될 수 있다. RAM(130)은 DRAM(dynamic RAM) 또는 SRAM(static RAM)으로 구현될 수 있다.
가속기(140)는 멀티미디어 또는 멀티미디어 데이터, 예컨대 텍스트(text), 오디오(audio), 정지 영상들(still images), 애니메이션(animation), 비디오(video), 2차원 데이터, 또는 3차원 데이터의 처리 성능을 향상시키기 위한 하드웨어 장치 또는 코-프로세서(co-processor)를 의미할 수 있다.
도 1에서는 설명의 편의를 위하여 하나의 가속기(140)만을 도시하나, 실시 예에 따라 반도체 장치(100)는 하나 또는 그 이상의 가속기들을 포함할 수 있다. 예를 들어, 애플리케이션 프로그램은 적어도 하나의 가속기를 실행시킬 수 있다.
가속기(140) 내부 또는 가속기(140)의 전단에 성능 측정부(PMU, 141)가 구비될 수 있다. 성능 측정부(141)는 가속기(141)의 성능을 측정하기 위한 모듈이다. 예컨대, 가속기(141)로 입력되는 데이터의 양 및/또는 가속기(141)로부터 출력되는 데이터의 양을 측정할 수 있고, 가속기(141)의 메모리 사용량을 측정할 수도 있다.
CMU(145)는 동작 클럭 신호를 생성한다. CMU(145)는 위상 동기 루프 회로(PLL: Phase Locked Loop), 지연 동기 루프(DLL: Delayed Locked Loop), 수정자(crystal)등의 클럭 생성 장치로 이루어질 수 있다.
동작 클럭 신호는 프로세서(110)로 공급될 수 있다. 물론 동작 클럭 신호는 다른 구성요소(예컨대, 메모리 컨트롤러 등)로 공급될 수도 있다.
 CMU(145)는 DVFS 제어부(도 2의 200a)의 제어에 따라 동작 클럭 신호의 주파수를 변경할 수 있다. 예컨대, DVFS 제어부(200a)는 소프트웨어적으로 또는 하드웨어적으로 수집된 반도체 장치에 관한 정보에 따라 후술하는 폐쇄 루프 시스템 및 오픈 루프 시스템으로 동작하는 DVFS 정책을 수행할 수 있다.
DVFS 제어부(200a)는 DVFS 정책에 따라 CMU(145)를 제어할 수 있고, 이에 따라, CMU(145)는 DVFS 제어부(200a)의 제어를 받아, DVFS 정책을 수행하기 위하여 동작 클럭 신호의 주파수를 결정할 수 있다.
전압 제어부(161)는 DVFS 제어부(200a)에 의해 수행되는 DVFS 정책에 기초하여 전압 발생부(165)를 제어할 수 있다. 전압 발생부(165)는 전압 제어부(161)의 제어에 따라, 상기 DVFS 정책에 기초하여 반도체 장치(100)의 동작 전압을 생성하여 출력할 수 있다.
메모리 컨트롤러(170)는 메모리 장치(190)와 인터페이스하기 위한 블록이다. 메모리 컨트롤러(170)는 메모리 장치(190)의 동작을 전반적으로 제어하며, 또한 호스트와 메모리 장치(190)간의 제반 데이터 교환을 제어한다. 예컨대, 메모리 컨트롤러(170)는 호스트의 요청에 따라 메모리 컨트롤러(170)를 제어하여 메모리 장치(190)에 데이터를 쓰거나 메모리 장치(190)로부터 데이터를 독출한다. 여기서, 호스트는 프로세서(110), 가속기(140), 디스플레이 컨트롤러(150)와 같은 장치일 수 있다. 다만 본 발명의 기술적 사상이 이에 제한되는 것은 아니다.
메모리 장치(190)는 데이터를 저장하기 위한 저장 장소로서, OS(Operating System), 각종 프로그램들, 및 각종 데이터를 저장할 수 있다. 메모리 장치(190)는 DRAM 일수 있으나, 이에 한정되는 것은 아니다. 예컨대, 메모리 장치(190)는 비휘발성 메모리 장치(플래시 메모리, PRAM, MRAM, ReRAM, 또는 FeRAM 장치)일 수도 있다. 몇몇 실시예에서 메모리 장치(190)는 반도체 장치(100) 내부에 구비되는 내장 메모리일 수 있다.
각 구성 요소(110, 120, 130, 140, 150, 및 170)는 시스템 버스(180)를 통하여 서로 통신할 수 있다.
디스플레이 장치(195)는 프로세서(110)에 로드된 소프트웨어 가속기 또는 하드웨어 가속기(140)에 의하여 가속된 또는 처리된 멀티미디어를 디스플레이할 수 있다. 디스플레이 장치(195)는 LED, OLED 디바이스, 혹은 다른 종류의 디바이스일 수 있다. 디스플레이 컨트롤러(150)는 디스플레이 장치(195)의 동작을 제어할 수 있다.
도 1 및 도 2를 참조하면, DVFS 제어부(200a)는 소프트웨어(SW) 또는 펌웨어(firmware)로 구현될 수 있다. DVFS 제어부(200a)는 프로그램으로 구현되어 메모리 장치(130, 120 또는 190)에 탑재되고, 반도체 장치(100)가 파워 온(power on)되면 프로세서(110)에 의하여 리드(read)되고 실행될 수 있다.
DVFS 제어부(200a)는 스케줄링 모듈(300) 및 동작 주파수 결정 모듈(200)을 포함할 수 있다. 스케줄링 모듈(300)은 각 프로세서(110)의 운용 단위, 즉 처리 단위인 프레임(frame)들이 요청되면 이를 스케줄링(scheduling)할 수 있다. 동작 주파수 결정 모듈(200)은 각각의 프로세서(110)의 요구 동작 주파수를 결정할 수 있다.
스케줄링 모듈(300)은 CPU용 처리 단위 스케줄링 모듈(310), GPU용 처리 단위 스케줄링 모듈(320) 및 NPU용 처리 단위 스케줄링 모듈(330)을 포함할 수 있다. 동작 주파수 결정 모듈(200)은 CPU용 동작 주파수 결정 모듈(210), GPU용 동작 주파수 결정 모듈(220) 및 NPU용 동작 주파수 결정 모듈(230)을 포함할 수 있다. 예를 들어, NPU용 처리 단위 스케줄링 모듈(330)은 NPU(113)의 프레임들이 리퀘스트(request)되면 이를 스케줄링하고, NPU용 동작 주파수 결정 모듈(230)은 NPU(113)의 요구 동작 주파수를 결정할 수 있다.
DVFS 제어부(200a)는 프로세서(110), 메모리 장치(130, 120, 190), 타이머(135), PMU(112, 141), CMU(145), 및 PMIC(160)를 제어할 수 있다. 프로세서(110), 메모리 장치(130, 120, 190), 타이머(135), PMU(112, 141), CMU(145), 및 PMIC(160)는 각각 하드웨어(HW)로 구현될 수 있다.
프로세서(110)는 CPU(111), GPU(112) 및 NPU(113)와 같은 연산 장치를 포함할 수 있다. 다만, 본 발명의 기술적 사상이 이에 제한되는 것은 아니다.
DVFS 제어부(200a)와 메모리 장치(130, 120, 190), 타이머(135), 복수의 PMU(112, 141), CMU(145), 및 PMIC(160) 사이에는 운영체제(OS: operating system)가 개입될 수 있다.
도 3 및 도 4를 참조하면, NPU용 처리 단위 스케줄링 모듈(330)은 신경망 모델의 프레임 리퀘스트 입력기(331), 신경망 모델의 프레임 리퀘스트 처리기(332), 및 신경망 모델의 프레임 리퀘스트 출력기(333)를 포함할 수 있다. NPU용 동작 주파수 결정 모듈(230)은 신경망 모델 별 정보 수집기(231), 신경망 모델 별 일의 양 추정기(232), NPU 일의 양 추정기(233), NPU 동작 주파수 계산기(234), 및 NPU 사용률 수집기(235)를 포함할 수 있다.
신경망 모델의 프레임 리퀘스트 입력기(331)는 신경망 모델 각각에 대한 NPU(113)의 처리 작업에 관한 요청, 즉 프레임 리퀘스트를 생성할 수 있다. 신경망 모델의 프레임 리퀘스트 입력기(331)는 신경망 모델에 관한 데이터, 프레임 리퀘스트의 수행 시작 시각에 관한 데이터를 후술하는 신경망 모델 별 정보 수집기(231)에 전달할 수 있다.
신경망 모델의 프레임 리퀘스트 처리기(332)는 신경망 모델의 프레임 리퀘스트 입력기(331)로부터 프레임 리퀘스트를 전달받고 신경망 모델 각각에 대한 NPU(113)의 처리 작업을 처리할 수 있다.
프레임 리퀘스트 출력기(333)는 신경망 모델 각각에 대한 NPU(113)의 처리 작업에 대한 결과를 출력하고 프레임 리퀘스트의 수행 완료 시각에 관한 데이터를 신경망 모델 별 정보 수집기(231)에 전달할 수 있다.
신경망 모델 별 정보 수집기(231)는 신경망 모델 각각에 대한 데이터를 입력받을 수 있다. 신경망 모델 각각에 대한 데이터는 신경망 모델 각각에 대한 NPU(113)의 처리 작업의 수행 시간에 관한 제1 데이터 및 신경망 모델 각각에 대한 NPU(113)의 처리 작업을 최적화하기 위한 제2 데이터를 포함할 수 있다. 몇몇 실시예에서, 신경망 모델 각각에 대한 NPU(113)의 처리 작업의 수행 시간이란 NPU(113)가 하나의 프레임을 입력받아 처리하기까지 소요되는 시간을 의미할 수 있다.
예를 들어, 제1 데이터는, 신경망 모델 각각에 대한 NPU(113)의 처리 작업의 수행 시작 시각 및 수행 완료 시각에 기초하여 계산된 수행 시간 내역에 관한 데이터 중 적어도 하나를 포함하는 동적 데이터일 수 있다.
예를 들어, 제2 데이터는, NPU(113)의 처리 작업의 명령어, 즉 인스트럭션(instruction)의 개수에 관한 데이터, 인스트럭션이 복수 개의 NPU(113)에서 순차적으로 또는 병렬적으로 수행되는지 여부에 관한 데이터, 컴파일러에서 출력되는 인스트럭션을 최적화하기 위한 데이터, NPU(113)의 목표 동작 주파수에 관한 데이터, 및 NPU(113)의 목표 메모리 접근 성능에 관한 데이터 중 적어도 하나를 포함하는 정적 데이터일 수 있다.
신경망 모델 별 일의 양 추정기(232)는 신경망 모델 각각에 대한 NPU(113)의 처리 작업의 수행 시간과 일의 양을 추정할 수 있다. 몇몇 실시예에서, NPU(113)의 일의 양은 NPU(113)의 작업량을 의미할 수 있다.
신경망 모델 별 일의 양 추정기(232)는 각 신경망 모델 별로 존재할 수 있다. 신경망 모델 별 일의 양 추정기(232)는 제1 데이터로부터 NPU(113)의 다음 처리 작업의 수행 시간을 추정할 수 있다.
구체적으로, 첫 번째인 제1 수행 단계에서, NPU(113)의 일의 양을 무한대로 추정하고, 이후 n번째의 제2 수행 단계에서, 제1 데이터에 기초하여 NPU(113)의 일의 양을 추정할 수 있다. 이러한 제1 및 제2 수행 단계는 폐쇄 루프 시스템(closed-loop system)으로 동작할 수 있다. 이 경우, NPU(113)의 과거의 처리 작업의 수행 시간과 NPU 동작 주파수를 기초로 NPU(113)의 일의 양이 추정될 수 있다.
예를 들어, 반도체 장치(100)를 포함하는 모바일 장치에 있어서, 머신 러닝 기술을 기반으로 한 신경망 모델이 적용될 수 있다. 예를 들어, 신경망 모델은 모바일 장치의 카메라 모듈이 객체를 감지하기 위한 제1 신경망 모델, 및 감지된 객체를 식별하기 위한 제2 신경망 모델을 포함할 수 있다. 이러한 신경망 모델 별로 프레임 리퀘스트의 요청 빈도 등이 다를 수 있으므로, 전술한 동적 데이터 및 정적 데이터에 대한 가중치 역시 신경망 모델 별로 상이할 수 있다.
NPU 일의 양 추정기(233)는 제1 데이터 및 제2 데이터에 기초하여 NPU(113)에 요구되는 총 일의 양을 추정할 수 있다. 이는 오픈 루프 시스템(open-loop system)으로 동작할 수 있다. 이 경우, NPU(113)의 과거의 처리 작업의 수행 시간과 NPU 동작 주파수를 기초로 NPU(113)의 일의 양이 추정될 수 있다. 또한, 이 경우, 신경망 모델 각각에 대한 NPU(113)의 처리 작업이 완료되기 전에 신경망 모델 각각에 대한 NPU(113)의 작업량이 추정될 수 있다.
NPU 동작 주파수 계산기(234)는 추정된 NPU(113)의 처리 작업의 수행 시간에 기초하여 NPU(113)의 동작 주파수를 출력할 수 있다. 이 경우, 신경망 모델 각각에 대한 NPU(113)의 처리 작업이 완료되기 전에 NPU(113)의 동작 주파수가 결정될 수 있다. 또한 이 경우, 출력된 상기 동작 주파수를 기초로 다음 주기의 동작 전압이 결정될 수 있다.
NPU 사용률 수집기(235)는 NPU(113)의 사용률에 관한 데이터를 수집할 수 있다. NPU 사용률 수집기(235)는 수집된 NPU(113)의 사용률에 관한 데이터를 NPU 일의 양 추정기(233)에 전달할 수 있다.
신경망 모델을 이용하는 NPU는 예컨대 이미지의 분류를 위해 수많은 연산을 필요로 하기 때문에 높은 복잡도를 가지며, 자원, 전력 등을 많이 소모할 수 있다.
몇몇 실시예에서는, 각각의 신경망 모델에 대한 일의 양이 추정된 이후에, 각각의 신경망 모델에 의한 NPU의 처리 작업이 완료될 수 있다. 또한, NPU의 동작 주파수가 결정된 이후에 신경망 모델 각각에 대한 NPU의 처리 작업이 완료될 수 있다. 이에 따라, 신경망 모델에 의한 NPU 처리 작업이 모두 수행된 이후에 NPU의 동작 주파수 레벨이 변경되는 경우에 비하여, 사용자 응답성이 저하되지 않는 범위 내에서 NPU의 동작 주파수 레벨을 낮출 수 있다. 결과, NPU와 같은 고성능의 프로세서를 이용하는 반도체 시스템에 있어서, 신경망 모델 별로 요구되는 NPU의 처리 작업의 수행 시간을 충족하면서도 NPU의 전력 소모량을 줄일 수 있는 DVFS 정책을 이용할 수 있다.
도 5는 몇몇 실시예에 따른 반도체 시스템을 나타내는 도면이다.
도 5를 참조하면, 전자 시스템(400, 500, 600)은 PC(personal computer) 또는 데이터 서버, 랩탑(laptop) 컴퓨터 또는 휴대용 장치로 구현될 수 있다. 휴대용 장치는 이동 전화기, 스마트 폰(smart phone), 태블릿(tablet) PC, PDA(personal digital assistant), EDA(enterprise digital assistant), 디지털 스틸 카메라(digital still camera), 디지털 비디오 카메라(digital video camera), PMP(portable multimedia player), PDN(personal navigation device 또는 portable navigation device), 휴대용 게임 콘솔(handheld game console), 또는 e-북(e-book)으로 구현될 수 있다.
 전자 시스템(400, 500, 600)은 SoC(100), 파워 소스(410), 저장 장치(420), 메모리(430), 입출력 포트들(440), 확장 카드(450), 네트워크 장치(460), 및 디스플레이(470)를 포함한다. 실시예에 따라. 전자 시스템(400, 500, 600)은 카메라 모듈(480)을 더 포함할 수 있다.
SoC(100)는 도 1에 도시된 반도체 장치(100)를 의미할 수 있다. SoC(100)는 구성 요소들(410 내지 480) 중 적어도 하나의 동작을 제어할 수 있다.
파워 소스(410)는 구성 요소들(100 및 420 내지 480) 중 적어도 하나로 동작 전압을 공급할 수 있다.
저장 장치(420)는 하드디스크 드라이브(hard disk drive) 또는 SSD(solid state drive)로 구현될 수 있다.
메모리(430)는 휘발성 메모리 또는 비휘발성 메모리로 구현될 수 있으며, 도 1의 메모리 장치(190)에 해당할 수 있다. 실시예에 따라, 메모리(430)에 대한 데이터 액세스 동작, 예컨대, 리드 동작, 라이트 동작(또는 프로그램 동작), 또는 이레이즈 동작을 제어할 수 있는 메모리 컨트롤러는 프로세서(110)에 집적 또는 내장될 수 있다. 다른 실시예에 따라, 상기 메모리 컨트롤러는 프로세서(110)와 메모리(430) 사이에 구현될 수 있다.
입출력 포트들(440)은 전자 시스템(400, 500, 600)으로 데이터를 전송하거나 또는 전자 시스템(400, 500, 600)으로부터 출력된 데이터를 외부 장치로 전송할 수 있는 포트들을 의미할 수 있다. 예컨대, 입출력 포트들(440)은 컴퓨터 마우스와 같은 포인팅 장치(pointing device)를 접속하기 위한 포트, 프린터를 접속하기 위한 포트, 또는 USB 드라이브를 접속하기 위한 포트일 수 있다.
확장 카드(450)는 SD(secure digital) 카드 또는 MMC(multimedia card)로 구현될 수 있다. 실시예에 따라, 확장 카드(450)는 SIM(Subscriber Identification Module) 카드 또는 USIM(Universal Subscriber Identity Module) 카드일 수 있다.
네트워크 장치(460)는 전자 시스템(400, 500, 600)을 유선 네트워크 또는 무선 네트워크에 접속시킬 수 있는 장치를 의미할 수 있다.
디스플레이(470)는 저장 장치(420), 메모리(430), 입출력 포트들(440), 확장 카드(450), 또는 네트워크 장치(460)로부터 출력된 데이터를 디스플레이할 수 있다.
카메라 모듈(480)은 광학 이미지를 전기적인 이미지로 변환할 수 있는 모듈을 의미한다. 따라서, 카메라 모듈(480)로부터 출력된 전기적인 이미지는 저장 장치(420), 메모리(430), 또는 확장 카드(450)에 저장될 수 있다. 또한, 카메라 모듈(480)로부터 출력된 전기적인 이미지는 디스플레이(420)를 통하여 디스플레이될 수 있다.
도 6은 몇몇 실시예에 따른 반도체 시스템의 DVFS 제어 방법을 설명하기 위한 순서도이다.
몇몇 실시예에 따른 DVFS 제어 방법은 신경망 모델을 이용한 프로세서(Neural Processing Unit)의 동작 주파수를 결정할 수 있다.
먼저, 몇몇 실시예에 따른 DVFS 제어부(200a)는 외부로부터 신경망 모델 각각에 대한 데이터를 입력받을 수 있다(S100). 예를 들어, 애플리케이션을 실행하기 위한 소프트웨어 및 애플리케이션 개발자로부터, 신경망 모델 별 정보 수집기(231)가 신경망 모델 각각에 대한 데이터를 입력받을 수 있다. 다만, 본 발명의 기술적 사상이 이에 제한되는 것은 아니다.
이후, 신경망 모델 각각에 대한 NPU(113)의 처리 작업의 수행 시간과 작업량이 추정될 수 있다(S200). 신경망 모델 각각에 대한 데이터는, 신경망 모델 각각에 대한 NPU(113)의 처리 작업의 수행 시간에 관한 제1 데이터를 포함할 수 있다. 이 경우, 몇몇 실시예에 따른 DVFS 제어 방법은 NPU(113)의 작업량이 제1 일의 양, 예를 들어 무한대로 추정되고, 제1 데이터로부터 NPU(113)의 작업량이 제2 일의 양으로 추정되는 제1 경로를 포함할 수 있다. 제1 경로는 폐쇄 루프 시스템(closed-loop system)으로 동작할 수 있다.
또한 신경망 모델 각각에 대한 데이터는, 신경망 모델 각각에 대한 NPU(113)의 처리 작업을 최적화하기 위한 제2 데이터를 더 포함할 수 있다. 이 경우, 몇몇 실시예에 따른 DVFS 제어 방법은 제2 일의 양과 제2 데이터로부터 추정된 NPU(113)의 작업량으로부터 NPU(113)의 총 작업량이 추정되는 제2 경로를 더 포함할 수 있다. 제2 경로는 오픈 루프 시스템(open-loop system)으로 동작할 수 있다.
이후, 신경망 모델 각각에 대한 NPU(113)의 작업량으로부터 NPU(113)의 총 작업량이 추정되어 NPU(113)의 동작 주파수가 출력될 수 있다(S300).
이상 첨부된 도면을 참조하여 본 발명의 실시예들을 설명하였으나, 본 발명은 상기 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 제조될 수 있으며, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다.
100: 반도체 장치
110: 프로세서
200a: DVFS 제어부
200: 동작 주파수 결정 모듈
300: 스케줄링 모듈

Claims (10)

  1. DVFS 제어부를 실행하기 위한 프로그램을 저장하는 메모리 장치; 및
    상기 DVFS 제어부를 실행하기 위한 프로그램을 상기 메모리 장치로부터 리드(read)하여 실행하는 신경망 모델을 이용한 프로세서(Neural Network Processing Unit)를 포함하고,
    상기 DVFS 제어부는
    상기 신경망 모델 각각에 대한 데이터를 입력받는 정보 수집기,
    상기 신경망 모델 각각에 대한 상기 프로세서의 처리 작업의 수행 시간과 작업량을 추정하는 제1 일의 양 추정기, 및
    상기 신경망 모델 각각에 대한 상기 프로세서의 작업량으로부터 상기 프로세서에 요구되는 총 작업량을 추정하는 제2 일의 양 추정기를 포함하는 반도체 시스템.
  2. 제1항에 있어서,
    상기 신경망 모델 각각에 대한 데이터는 상기 신경망 모델 각각에 대한 상기 프로세서의 처리 작업의 수행 시간에 관한 제1 데이터를 포함하고,
    상기 제1 일의 양 추정기는 상기 제1 데이터로부터 상기 프로세서의 다음 처리 작업의 수행 시간을 추정하는 반도체 시스템.
  3. 제2항에 있어서,
    상기 제1 일의 양 추정기는
    제1 수행 단계에서, 상기 프로세서의 작업량을 제1 작업량으로 추정하고,
    제2 수행 단계에서, 상기 제1 데이터에 기초하여 상기 프로세서의 작업량을 제2 작업량으로 추정하는 반도체 시스템.
  4. 제2항에 있어서,
    상기 제1 데이터는, 상기 신경망 모델 각각에 대한 상기 프로세서의 처리 작업의 수행 시작 시각 및 수행 완료 시각에 기초하여 계산된 수행 시간 내역에 관한 데이터를 포함하는 반도체 시스템.
  5. 제3항에 있어서,
    상기 신경망 모델 각각에 대한 데이터는, 상기 신경망 모델 각각에 대한 상기 프로세서의 처리 작업을 최적화하기 위한 제2 데이터를 더 포함하고,
    상기 제2 작업량과 상기 제2 데이터로부터 추정된 상기 프로세서의 작업량으로부터 상기 프로세서에 요구되는 총 작업량을 추정하는 반도체 시스템.
  6. 제1항에 있어서,
    상기 DVFS 제어부는
    상기 프로세서의 처리 작업의 수행 시간에 관한 데이터를 상기 정보 수집기에 전달하는 스케줄링 모듈을 더 포함하는 반도체 시스템.
  7. 제1항에 있어서,
    상기 DVFS 제어부는
    상기 프로세서의 사용률에 관한 데이터를 수집하는 사용률 수집기를 더 포함하고,
    상기 제2 일의 양 추정기는
    상기 사용률 수집기로부터 프로세서의 사용률에 관한 데이터를 전달받고, 상기 신경망 모델 각각에 대한 상기 프로세서의 작업량으로부터 상기 프로세서에 요구되는 총 작업량을 추정하는 반도체 시스템.
  8. 신경망 모델을 이용한 프로세서의 동작 주파수를 결정하는 DVFS 제어 방법으로,
    외부로부터 상기 신경망 모델 각각에 대한 데이터를 입력받고,
    상기 신경망 모델 각각에 대한 상기 프로세서의 처리 작업의 수행 시간과 작업량을 추정하고,
    상기 신경망 모델 각각에 대한 상기 프로세서의 작업량으로부터 상기 프로세서의 총 작업량을 추정하여 상기 프로세서의 동작 주파수가 출력되도록 제어하는 DVFS 제어 방법.
  9. 제8항에 있어서,
    상기 신경망 모델 각각에 대한 데이터는, 상기 신경망 모델 각각에 대한 상기 프로세서의 처리 작업의 수행 시간에 관한 제1 데이터를 포함하고,
    상기 프로세서의 작업량이 제1 일의 양으로 추정되고,
    상기 제1 데이터로부터 상기 프로세서의 작업량이 제2 일의 양으로 추정되는 제1 경로를 포함하는 DVFS 제어 방법.
  10. 제9항에 있어서,
    상기 신경망 모델 각각에 대한 데이터는, 상기 신경망 모델 각각에 대한 상기 프로세서의 처리 작업을 최적화하기 위한 제2 데이터를 더 포함하고,
    상기 제2 일의 양과 상기 제2 데이터로부터 추정된 상기 프로세서의 작업량으로부터 상기 프로세서의 총 작업량이 추정되는 제2 경로를 더 포함하는 DVFS 제어 방법.
KR1020220021309A 2022-02-18 2022-02-18 Dvfs 제어 방법, 이를 이용한 반도체 장치 및 반도체 시스템 KR20230124248A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020220021309A KR20230124248A (ko) 2022-02-18 2022-02-18 Dvfs 제어 방법, 이를 이용한 반도체 장치 및 반도체 시스템
US18/096,798 US20230266815A1 (en) 2022-02-18 2023-01-13 Dvfs controlling method, semiconductor device and semiconductor system using the dvfs controlling method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020220021309A KR20230124248A (ko) 2022-02-18 2022-02-18 Dvfs 제어 방법, 이를 이용한 반도체 장치 및 반도체 시스템

Publications (1)

Publication Number Publication Date
KR20230124248A true KR20230124248A (ko) 2023-08-25

Family

ID=87573988

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020220021309A KR20230124248A (ko) 2022-02-18 2022-02-18 Dvfs 제어 방법, 이를 이용한 반도체 장치 및 반도체 시스템

Country Status (2)

Country Link
US (1) US20230266815A1 (ko)
KR (1) KR20230124248A (ko)

Also Published As

Publication number Publication date
US20230266815A1 (en) 2023-08-24

Similar Documents

Publication Publication Date Title
TWI599960B (zh) 在多核心處理器中執行電源管理
US9588915B2 (en) System on chip, method of operating the same, and apparatus including the same
TWI628539B (zh) 在多核心處理器中執行電源管理
US9696771B2 (en) Methods and systems for operating multi-core processors
KR20140030823A (ko) 3차원 작업 부하를 이용하여 dvfs 정책을 수행하는 시스템-온 칩 및 이의 동작 방법
CN108874457B (zh) 用于代码区的连续自动调整的方法、装置、系统
US20130262894A1 (en) System-on-chip, electronic system including same, and method controlling same
CN107533354B (zh) 控制处理器的处理引擎的性能状态
US20140184619A1 (en) System-on-chip performing dynamic voltage and frequency scaling
US20130060555A1 (en) System and Apparatus Modeling Processor Workloads Using Virtual Pulse Chains
US11693466B2 (en) Application processor and system on chip
KR20160111581A (ko) 이기종 멀티-코어 시스템의 gpu 전력 측정 방법
NL2011348A (en) Dynamic voltage frequency scaling method and apparatus.
US9081577B2 (en) Independent control of processor core retention states
US20150046692A1 (en) System on chip for reducing wake-up time, method of operating same, and computer system including same
US11734067B2 (en) Multi-core system and controlling operation of the same
US20180188789A1 (en) Method of operating system-on-chip, system-on-chip performing the same and electronic system including the same
KR20140021283A (ko) 다중 dvfs 정책을 이용한 soc 및 이의 동작 방법
CN109478086B (zh) 至少部分地基于平台电容来控制处理器的电流消耗
KR20230124248A (ko) Dvfs 제어 방법, 이를 이용한 반도체 장치 및 반도체 시스템
US11500444B2 (en) Intelligent prediction of processor idle time apparatus and method
US20240103601A1 (en) Power management chip, electronic device having the same, and operating method thereof
US20240061492A1 (en) Processor performing dynamic voltage and frequency scaling, electronic device including the same, and method of operating the same
US20230161941A1 (en) Application negotiable platform thermal aware scheduler
US20240111560A1 (en) Workload linked performance scaling for servers