KR20240022968A - Integrated circuit performing dynamic voltage and frequency scaling operation based on workload and operating method thereof - Google Patents
Integrated circuit performing dynamic voltage and frequency scaling operation based on workload and operating method thereof Download PDFInfo
- Publication number
- KR20240022968A KR20240022968A KR1020220170043A KR20220170043A KR20240022968A KR 20240022968 A KR20240022968 A KR 20240022968A KR 1020220170043 A KR1020220170043 A KR 1020220170043A KR 20220170043 A KR20220170043 A KR 20220170043A KR 20240022968 A KR20240022968 A KR 20240022968A
- Authority
- KR
- South Korea
- Prior art keywords
- workload
- core
- response
- buffer
- dvfs
- Prior art date
Links
- 238000011017 operating method Methods 0.000 title 1
- 230000004044 response Effects 0.000 claims abstract description 108
- 230000015654 memory Effects 0.000 claims abstract description 100
- 238000000034 method Methods 0.000 claims abstract description 29
- 230000008569 process Effects 0.000 claims abstract description 11
- 238000013528 artificial neural network Methods 0.000 claims description 22
- 238000012549 training Methods 0.000 claims description 10
- 238000012544 monitoring process Methods 0.000 claims description 6
- 238000012545 processing Methods 0.000 description 15
- 238000010586 diagram Methods 0.000 description 14
- 238000013473 artificial intelligence Methods 0.000 description 10
- 238000004891 communication Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 230000000694 effects Effects 0.000 description 3
- 238000010801 machine learning Methods 0.000 description 3
- 230000001537 neural effect Effects 0.000 description 3
- 230000007704 transition Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 230000020169 heat generation Effects 0.000 description 2
- 230000007257 malfunction Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 239000013078 crystal Substances 0.000 description 1
- 238000003066 decision tree Methods 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 230000002068 genetic effect Effects 0.000 description 1
- 230000001151 other effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000000306 recurrent effect Effects 0.000 description 1
- 238000000611 regression analysis Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000006403 short-term memory Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012706 support-vector machine Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Images
Classifications
-
- 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
- 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/3243—Power saving in microcontroller unit
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3058—Monitoring arrangements for monitoring environmental properties or parameters of the computing system or of the computing system component, e.g. monitoring of power, currents, temperature, humidity, position, vibrations
-
- 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/5094—Allocation of resources, e.g. of the central processing unit [CPU] where the allocation takes into account power or heat criteria
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- 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)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Artificial Intelligence (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Quality & Reliability (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Mathematical Physics (AREA)
- Power Sources (AREA)
Abstract
모니터링한 데이터를 기초로 코어의 워크로드를 구분하고, 구분된 워크로드를 기초로 DVFS 동작을 수행하는 집적 회로 및 집적 회로의 동작 방법이 개시된다. 본 개시의 기술적 사상의 일 측면으로서, 전압-주파수 레벨에 따라 명령어를 처리하도록 구성된 적어도 하나의 코어, 적어도 하나의 코어로부터 요청을 수신하고, 요청에 따라 외부 메모리에 엑세스하고, 외부 메모리로부터 응답을 수신하는 공유 버퍼(shared buffer), 공유 버퍼를 모니터링 하여 공유 버퍼의 버퍼 용량 및 상기 외부 메모리로부터 수신되는 응답에 대한 응답 대기 시간을 획득하는 모니터 및 모니터로부터 버퍼 용량 및 응답 대기 시간을 수신하고, 버퍼 용량 및 응답 대기 시간을 기초로 적어도 하나의 코어의 워크로드를 구분하고, 구분된 워크로드를 기초로 전압-주파수 레벨에 대한 스케일링 인자(scaling factor)를 결정하는 DVFS(Dynamic Voltage and Frequency Scaling) 컨트롤러를 포함한다.An integrated circuit and a method of operating the integrated circuit are disclosed that classify the workload of a core based on monitored data and perform a DVFS operation based on the divided workload. As an aspect of the technical idea of the present disclosure, at least one core configured to process instructions according to voltage-frequency levels, receiving a request from the at least one core, accessing an external memory according to the request, and receiving a response from the external memory Receiving a shared buffer, a monitor that monitors the shared buffer to obtain the buffer capacity of the shared buffer and the response waiting time for the response received from the external memory, and receiving the buffer capacity and response waiting time from the monitor, buffer A Dynamic Voltage and Frequency Scaling (DVFS) controller that classifies the workload of at least one core based on capacity and response latency and determines a scaling factor for voltage-frequency levels based on the divided workload. Includes.
Description
본 개시의 기술적 사상은 집적 회로에 관한 것으로서, 자세하게는 모니터링한 데이터를 기초로 코어의 워크로드를 구분하고, 구분된 워크로드를 기초로 DVFS 동작을 수행하는 집적 회로 및 집적 회로의 동작 방법에 관한 것이다.The technical idea of the present disclosure relates to an integrated circuit, and more specifically, to an integrated circuit that classifies the workload of a core based on monitored data and performs a DVFS operation based on the divided workload, and a method of operating the integrated circuit. will be.
모바일 장치와 같은 컴퓨팅 시스템의 소형화가 진행됨에 따라, 전력 관리가 중요한 문제로 대두되고 있다. 특히 에너지가 제한된 베터리를 사용하는 모바일 장치와 같은 휴대용 기기에서 소비 전력을 줄이기 위해 전력을 낮추지만 성능을 높이기 위해 전압을 높여야 하므로, 버스나 DRAM(dynamic random access memory)의 메모리 특성 등 워크로드의 특성에 따라 전력 관리를 효율적으로 할 필요성이 증가하고 있다.As computing systems such as mobile devices become miniaturized, power management has emerged as an important issue. In particular, in portable devices such as mobile devices that use energy-limited batteries, power is lowered to reduce power consumption, but voltage must be increased to increase performance, so workload characteristics such as memory characteristics of the bus or dynamic random access memory (DRAM) must be adjusted. Accordingly, the need for efficient power management is increasing.
한 예로서 모바일 장치의 어플리케이션 프로세서는 어플리케이션 프로세서에 내장된 프로세싱 장치의 워크로드에 따라 프로세싱 장치의 주파수와 전압을 조절하는 DVFS(Dynamic Voltage and Frequency Scaling) 동작을 통해 전압을 조절함으로써 전력을 관리할 수 있다.As an example, the application processor of a mobile device can manage power by adjusting the voltage through DVFS (Dynamic Voltage and Frequency Scaling) operation, which adjusts the frequency and voltage of the processing device according to the workload of the processing device built into the application processor. there is.
본 개시의 기술적 사상이 해결하려는 과제는, CPU(central processing unit)등의 상태뿐만 아니라, 버스나 DRAM의 메모리 등의 특성을 고려하여 워크로드를 구분하고, 구분된 워크로드를 기초로 스케일링 인자(scaling factor)를 달리 결정하여 DVFS 동작을 효과적으로 수행할 수 있도록 하는 집적 회로, 집적 회로의 동작 방법 및 컴퓨팅 시스템을 제공한다.The problem that the technical idea of the present disclosure seeks to solve is to classify the workload by considering not only the status of the CPU (central processing unit), but also the characteristics of the bus or DRAM memory, and based on the divided workload, a scaling factor ( Provides an integrated circuit, an operation method of the integrated circuit, and a computing system that can effectively perform DVFS operations by determining different scaling factors.
상기와 같은 목적을 달성하기 위하여, 본 개시의 예시적 실시예에 따른 집적 회로는, 전압-주파수 레벨에 따라 명령어를 처리하도록 구성된 적어도 하나의 코어, 적어도 하나의 코어로부터 요청을 수신하고, 요청에 따라 외부 메모리에 엑세스하고, 외부 메모리로부터 응답을 수신하는 공유 버퍼(shared buffer), 공유 버퍼를 모니터링 하여 공유 버퍼의 버퍼 용량 및 상기 외부 메모리로부터 수신되는 응답에 대한 응답 대기 시간을 획득하는 모니터 및 모니터로부터 버퍼 용량 및 응답 대기 시간을 수신하고, 버퍼 용량 및 응답 대기 시간을 기초로 적어도 하나의 코어의 워크로드를 구분하고, 구분된 워크로드를 기초로 전압-주파수 레벨에 대한 스케일링 인자(scaling factor)를 결정하는 DVFS(Dynamic Voltage and Frequency Scaling) 컨트롤러를 포함한다.To achieve the above object, an integrated circuit according to an exemplary embodiment of the present disclosure receives a request from at least one core, at least one core configured to process an instruction according to a voltage-frequency level, and responds to the request. A shared buffer that accesses external memory and receives a response from the external memory, and a monitor that monitors the shared buffer to obtain the buffer capacity of the shared buffer and the response waiting time for the response received from the external memory. Receive buffer capacity and response latency from the server, distinguish the workload of at least one core based on the buffer capacity and response latency, and set a scaling factor for the voltage-frequency level based on the divided workload. It includes a DVFS (Dynamic Voltage and Frequency Scaling) controller that determines.
본 개시의 예시적 실시예에 따른 집적 회로의 동작 방법은, 공유 버퍼를 모니터링하고, 공유 버퍼의 버퍼 용량 및 공유 버퍼가 외부 메모리로부터 수신하는 응답에 대한 응답 대기 시간을 획득하는 단계, 버퍼 용량 및 응답 대기 시간을 기초로 코어의 워크로드를 구분하는 단계 및 구분된 코어의 워크로드를 기초로 코어의 전압-주파수 레벨에 대한 스케일링 인자를 결정하는 단계를 포함한다.A method of operating an integrated circuit according to an exemplary embodiment of the present disclosure includes monitoring a shared buffer, obtaining a buffer capacity of the shared buffer and a response waiting time for a response that the shared buffer receives from an external memory, buffer capacity, and It includes dividing the workload of the core based on the response latency and determining a scaling factor for the voltage-frequency level of the core based on the workload of the divided core.
본 개시의 예시적 실시예에 따른 컴퓨팅 시스템은, 프로세서, 적어도 하나의 메모리, 프로세서와 적어도 하나의 메모리를 연결하는 버스, 공유 버퍼의 버퍼 용량 및 버스로부터 수신되는 응답에 대한 응답 대기 시간을 기초로 적어도 하나의 코어의 워크로드를 구분하고, 구분된 워크로드를 기초로 스케일링 인자를 결정하고, 결정된 스케일링 인자를 기초로 전압 제어 신호 및 주파수 제어 신호를 생성하는 DVFS 컨트롤러, 전압 제어 신호에 응답하여 상기 적어도 하나의 코어에 제공되는 전원 전압의 크기를 조정하는 파워 관리부 및 주파수 제어 신호에 응답하여 상기 적어도 하나의 코어에 제공되는 클럭 신호의 주파수를 조정하는 클럭 관리부를 포함하고, 프로세서는, 전원 전압의 크기 및 클럭 신호의 주파수에 따라 명령어를 처리하도록 구성된 적어도 하나의 코어, 적어도 하나의 코어로부터 요청을 수신하고, 요청에 따라 버스에 엑세스하고, 버스로부터 응답을 수신하는 공유 버퍼 및 공유 버퍼를 모니터링 하여 버퍼 용량 및 응답 대기 시간을 획득하는 모니터를 포함한다.A computing system according to an exemplary embodiment of the present disclosure includes a processor, at least one memory, a bus connecting the processor and the at least one memory, a buffer capacity of a shared buffer, and a response latency for a response received from the bus. A DVFS controller that separates the workload of at least one core, determines a scaling factor based on the divided workload, and generates a voltage control signal and a frequency control signal based on the determined scaling factor, in response to the voltage control signal. A power management unit that adjusts the size of a power supply voltage provided to at least one core, and a clock management unit that adjusts the frequency of a clock signal provided to the at least one core in response to a frequency control signal, wherein the processor, At least one core configured to process instructions according to the size and frequency of the clock signal, receiving a request from the at least one core, accessing a bus according to the request, and receiving a response from the bus, a shared buffer, and monitoring the shared buffer. Includes monitors to obtain buffer capacity and response latency.
본 개시의 예시적 실시예에 따라, CPU등의 상태뿐만 아니라, 버스나 DRAM의 메모리 등의 특성을 고려하여 워크로드를 구분하고, 구분된 워크로드를 기초로 스케일링 인자를 달리 결정하여 효율적으로 DVFS 동작을 수행할 수 있고, 소모 전력을 줄일 수 있다.According to an exemplary embodiment of the present disclosure, the workload is divided considering characteristics of the bus or DRAM memory as well as the state of the CPU, and different scaling factors are determined based on the divided workload to efficiently perform DVFS. Operation can be performed and power consumption can be reduced.
또한, 공유 버퍼에서 데이터를 기다리는 시간을 모니터링하고, 이를 기초로 워크로드를 구분할 수 있으므로, 소프트웨어를 통해 워크로드를 구분하는 것보다 오버헤드(overhead)를 감소시킬 수 있다.Additionally, since the time waiting for data in the shared buffer can be monitored and workloads can be divided based on this, overhead can be reduced compared to classifying workloads through software.
본 개시의 기술적 사상에서 얻을 수 있는 효과는 이상에서 언급한 효과들로 제한되지 아니하며, 언급되지 아니한 다른 효과들은 이하의 기재로부터 본 개시의 기술적사상이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 도출되고 이해될 수 있다. 즉, 본 개시의 기술적 사상을 실시함에 따른 의도하지 아니한 효과들 역시 본 개시의 기술적 사상으로부터 당해 기술분야의 통상의 지식을 가진 자에 의해 도출될 수 있다.The effects that can be obtained from the technical idea of the present disclosure are not limited to the effects mentioned above, and other effects not mentioned are clear to those skilled in the art from the following description. It can be derived and understood. In other words, unintended effects resulting from implementing the technical idea of the present disclosure may also be derived from the technical idea of the present disclosure by a person skilled in the art.
도 1은 본 개시의 예시적 실시예에 따른 집적 회로를 설명하는 블록도이다.
도 2는 본 개시의 예시적 실시예에 따른 공유 버퍼 및 모니터가 모니터링하는 데이터를 설명하는 블록도이다.
도 3a 및 도 3b는 본 개시의 예시적 실시예에 따른 버퍼 용량 및 응답 대기 시간을 설명하기 위한 그래프이다.
도 4는 본 개시의 예시적 실시예에 따른 집적 회로의 일 구현예를 나타내는 블록도이다.
도 5는 본 개시의 예시적 실시예에 따른 집적 회로의 일 구현예를 나타내는 블록도이다.
도 6a 및 도 6b는 본 개시의 예시적 실시예에 따른 DVFS 컨트롤러가 스케일링 인자를 결정하는 것을 설명하기 위한 그래프 및 표이다.
도 7은 본 개시의 예시적 실시예에 따른 집적 회로의 일 구현예를 나타내는 블록도이다.
도 8은 본 개시의 예시적 실시예에 따른 집적 회로의 동작 방법을 나타내는 순서도이다.
도 9는 본 개시의 예시적 실시예에 따른 집적 회로의 동작 방법의 일 구현예를 나타내는 순서도이다.
도 10은 본 개시의 예시적 실시예에 따른 집적 회로의 동작 방법의 일 구현예를 나타내는 순서도이다.
도 11은 본 개시의 예시적 실시예에 따른 시스템을 나타내는 블록도이다.
도 12는 본 개시의 예시적 실시예에 따른 어플리케이션 프로세서를 포함하는 통신 장치를 나타내는 블록도이다.1 is a block diagram illustrating an integrated circuit according to an exemplary embodiment of the present disclosure.
Figure 2 is a block diagram illustrating data monitored by a shared buffer and a monitor according to an exemplary embodiment of the present disclosure.
3A and 3B are graphs for explaining buffer capacity and response waiting time according to an exemplary embodiment of the present disclosure.
Figure 4 is a block diagram showing an implementation of an integrated circuit according to an exemplary embodiment of the present disclosure.
Figure 5 is a block diagram illustrating an example implementation of an integrated circuit according to an exemplary embodiment of the present disclosure.
6A and 6B are graphs and tables for explaining how a DVFS controller determines a scaling factor according to an exemplary embodiment of the present disclosure.
Figure 7 is a block diagram showing an implementation of an integrated circuit according to an exemplary embodiment of the present disclosure.
Figure 8 is a flowchart showing a method of operating an integrated circuit according to an exemplary embodiment of the present disclosure.
Figure 9 is a flowchart illustrating an example implementation of a method of operating an integrated circuit according to an exemplary embodiment of the present disclosure.
Figure 10 is a flowchart illustrating an example implementation of a method of operating an integrated circuit according to an exemplary embodiment of the present disclosure.
Figure 11 is a block diagram showing a system according to an exemplary embodiment of the present disclosure.
Figure 12 is a block diagram showing a communication device including an application processor according to an example embodiment of the present disclosure.
도 1은 본 개시의 예시적 실시예에 따른 집적 회로를 설명하는 블록도이다.1 is a block diagram illustrating an integrated circuit according to an exemplary embodiment of the present disclosure.
도 1을 참조하면, 집적 회로(10)는 프로세서(100), DVFS 컨트롤러(200), 클럭 관리부(Clock Management Unit; CMU)(300), 파워 관리부(Power Management Unit; PMU)(400), 버스(500) 및 메모리(600)를 포함할 수 있다. 일부 실시예들에서, 프로세서(100), DVFS 컨트롤러(200), 클럭 관리부(300), 파워 관리부(400), 버스(500) 및 메모리(600)는 하나의 칩, 즉 시스템-온-칩(system-on-chip, SoC)에 포함될 수 있고, 집적 회로(10)는 어플리케이션 프로세서(application processor, AP)로 지칭될 수 있다.Referring to FIG. 1, the
집적 회로(10)는 데스크탑 PC, 서버 등과 같은 고정형 컴퓨팅 시스템에 포함될 수도 있고, 랩탑 컴퓨터, 이동 전화기, 스마트폰, 태블릿 PC, PDA(personal digital assistant), EDA(enterprise digital assistant), 디지털 스틸 카메라(digital still camera), 디지털 비디오 카메라(digital video camera), PMP(portable multimedia player), PND(personal navigation device 또는 portable navigation device), 휴대용 게임 콘솔(handheld game console), 모바일 인터넷 장치(mobile internet device(MID), 웨어러블 컴퓨터, 사물 인터넷 (internet of things(IoT)) 장치, 만물 인터넷(internet of everything(IoE)) 장치, 또는 e-북(e-book)에 포함될 수 있다.The integrated
프로세서(100)는 적어도 하나의 코어(110), 공유 버퍼(120) 및 모니터(130)를 포함할 수 있다. 일부 실시예들에서, 프로세서(100)는 명령어들(instructions)로 구성된 프로그램을 실행할 수 있다. 프로그램은 복수의 서브프로그램들(subprograms)을 포함할 수 있고, 서브프로그램은, 서브루틴(subroutine), 루틴(routine), 프로시저(procedure), 함수(function) 등으로 지칭될 수 있다.The
코어(110)는 독립적으로 명령어를 처리할 수 있다. 이하에서, 코어(110)는 CPU 코어를 주로 참조하여 설명될 것이나, 본 개시의 예시적 실시예들이 이에 제한되지 아니하는 점이 유의 된다. 예를 들어, 코어(110)는 CPU 코어, GPU(graphics processing unit) 코어, NPU(neural processing unit) 코어 또는 ISP(image signal processor) 코어일 수 있다. 프로세서(100)에 복수의 코어(110)들이 포함될 수 있으므로, 프로세서(100)는 멀티-코어 프로세서로 지칭될 수 있다. 일부 실시예들에서, 코어(110)는 클럭 신호(clk) 및 전원 전압(vdd)에 따라 명령어를 처리할 수 있고, 코어(110)의 성능은 클럭 신호(clk) 및 전원 전압(vdd)에 의존할 수 있다. 이에 대한 일부 실시예들은 도 6a 및 도 6b를 참조하여 후술 될 것이다. Core 110 can independently process instructions. Hereinafter,
공유 버퍼(120)는 멀티-코어 프로세서에서 복수의 코어(110)들이 공유하는 버퍼일 수 있다. 예를 들면, 프로세서(100)가 CPU일 수 있고, 복수의 코어(110)에 L2 캐시가 포함될 수 있고, 공유 버퍼(120)는 L3 캐시일 수 있다. 공유 버퍼(120)는 코어(110)에 포함되지 않은 데이터를 저장할 수 있고, 코어(110)와 데이터를 송수신할 수 있다. 일부 실시예들에서 코어(110)가 명령어를 처리하기 위한 데이터는 코어(110) 내부에 없을 수 있고, 데이터를 공유 버퍼(120)에 요청(Req)할 수 있다. 공유 버퍼(120)는 코어(110)로부터 요청(Req)을 수신하고, 요청(Req)에 대응한 데이터가 공유 버퍼(120) 내부에 존재할 경우, 해당 데이터를 코어(110)에 송신할 수 있다. 요청(Req)에 대응한 데이터가 공유 버퍼(120) 내부에 존재하지 않은 경우(예를 들면, 캐시 미스(cache miss) 발생), 외부 메모리에 접근(Acc)할 수 있고, 외부 메모리로부터 응답(Res)을 수신하여 요청(Req)에 대응한 데이터를 획득할 수 있다. 예를 들면, 공유 버퍼(120)는 버스(500)를 통해 메모리(600)에 접근(Acc)할 수 있고, 메모리(600)로부터 버스(500)를 통해 응답(Res)을 수신할 수 있다. 공유 버퍼(120)는 복수의 블록(121)들을 포함할 수 있고, 이에 대한 일부 실시예들은 도 2를 참조하여 후술 될 것이다.The shared
모니터(130)는 공유 버퍼(120)를 모니터링 하고, 공유 버퍼(120)의 버퍼 용량 및 외부 메모리로부터 수신되는 응답에 대한 응답 대기 시간을 획득할 수 있다. 일부 실시예들에서, 공유 버퍼(120)의 버퍼 용량은 복수의 블록(121)들의 용량이 채워진 상태를 나타낼 수 있고, 외부 메모리로부터 수신되는 응답에 대한 응답 대기 시간은 공유 버퍼(120)가 버스(500)를 통해 메모리(600)에 접근(Acc)한 후에 메모리(600)로부터 응답(Res)을 수신할 때까지 걸린 시간일 수 있다. 이에 대한 일부 실시예들은 도 3a 및 도 3b를 참조하여 후술 될 것이다. The
일부 실시예들에서, 모니터(130)는 코어(110)를 모니터링 할 수 있고, 코어(110)가 공유 버퍼(120)로부터 요청(Req)에 대응한 데이터를 수신할 때까지 걸린 시간을 획득할 수 있다. 예를 들면, 코어(110)는 CPU 코어일 수 있고, L2 캐시를 포함할 수 있다. 공유 버퍼(120)는 L3 캐시일 수 있다. CPU 코어가 명령어를 처리하기 위한 데이터는 L2 캐시에 없을 수 있고, 이를 L3 캐시에 요청(Req)할 수 있다. L3 캐시는 L2 캐시로부터 요청(Req)을 수신하고, 요청(Req)에 대응한 데이터가 L3 캐시 내부에 존재할 경우, 해당 데이터를 L2 캐시에 송신할 수 있다. 요청(Req)에 대응한 데이터가 L3 캐시 내부에 존재하지 않은 경우, L3 캐시는 외부 메모리에 접근(Acc)할 수 있고, 외부 메모리로부터 응답(Res)을 수신하여 요청(Req)에 대응한 데이터를 획득할 수 있다. L3 캐시는 외부 메모리로부터 획득한 데이터를 L2 캐시에 송신할 수 있다. 모니터(130)는 L2 캐시를 모니터링 할 수 있고, L3 캐시에 데이터를 요청(Req)하여 요청(Req)에 대응한 데이터를 L3 캐시로부터 수신할 때까지 걸린 시간을 획득할 수 있다.In some embodiments, the
DVFS 컨트롤러(200)는 모니터(130)로부터 공유 버퍼(120)의 버퍼 용량 및 외부 메모리로부터 수신되는 응답에 대한 응답 대기 시간을 수신할 수 있고, 버퍼 용량 및 응답 대기 시간을 기초로 코어(110)의 워크로드를 구분할 수 있다. 일부 실시예들에서, DVFS 컨트롤러(200)는 코어(110)의 워크로드를 제1 워크로드 또는 제2 워크로드로 구분할 수 있고, 제1 워크로드는 제2 워크로드보다 외부 메모리에 접근하는 요청을 더 많이 포함할 수 있다. 예를 들면, 제1 워크로드는 메모리 집중 워크로드(memory intensive workload)일 수 있고, 메모리 집중 워크로드는 프로세서(100)의 동작 중 캐시 미스가 발생할 경우, 버스(500)나 메모리(600)에서 충돌(congestion)이 발생하는 상황을 의미할 수 있다. 제2 워크로드는 컴퓨팅 워크로드(computing workload)일 수 있고, 컴퓨팅 워크로드는 코어(110)의 명령어 처리와 관련된 것으로, 프로세서(100)의 동작 중 캐시 미스가 발생하지 않는 상황을 의미할 수 있다. The
일부 실시예들에서, 버퍼 용량 및 응답 대기 시간이 임계값 이상이면 DVFS 컨트롤러(200)는 코어(110)의 워크로드를 제1 워크로드로 구분할 수 있다. 버퍼 용량 또는 응답 대기 시간이 임계값 미만이면 DVFS 컨트롤러(200)는 코어(110)의 워크로드를 제2 워크로드로 구분할 수 있다. 이에 대한 일부 실시예들은 도 2 내지 도 4를 참조하여 후술 될 것이다.In some embodiments, if the buffer capacity and response latency are greater than or equal to a threshold, the
일부 실시예들에서, DVFS 컨트롤러(200)는 모니터(130)로부터 코어(110)가 공유 버퍼(120)로부터 요청(Req)에 대응한 데이터를 수신할 때까지 걸린 시간을 수신할 수 있고, 수신한 시간을 기초로 코어(110)의 워크로드를 제1 워크로드 또는 제2 워크로드로 구분할 수 있다. 제1 워크로드는 제2 워크로드보다 외부 메모리에 접근하는 요청을 더 많이 포함할 수 있다. 예를 들면, 코어(110)는 CPU 코어일 수 있고, L2 캐시를 포함할 수 있다. 공유 버퍼(120)는 L3 캐시일 수 있다. L3 캐시 용량의 여유 공간이 있는 경우, L3 캐시는 L2 캐시로부터 요청(Req)을 수신할 수 있고, 외부 메모리에 접근(Acc) 및 외부 메모리로부터 응답(Res)을 수신하여 요청(Req)에 대응한 데이터를 획득할 수 있다. 이때, L2 캐시가 L3 캐시로부터 요청(Req)에 대응한 데이터를 수신할 때까지 걸린 시간은 임계 시간보다 짧을 수 있고, DVFS 컨트롤러(200)는 코어(110)의 워크로드를 제2 워크로드로 구분할 수 있다. L3 캐시 용량의 여유 공간이 없는 경우(예를 들면, L3 캐시의 용량이 요청(Req)에 대응한 데이터 외 다른 데이터로 가득 채워진 경우), L3 캐시는 L2 캐시로부터 요청(Req)을 수신할 수 없고, 채워진 데이터에 대한 작업을 수행한 이후에 요청(Req)을 수신할 수 있다. 이후 외부 메모리에 접근(Acc) 및 외부 메모리로부터 응답(Res)을 수신하여 요청(Req)에 대응한 데이터를 획득할 수 있다. 이때, L2 캐시가 L3 캐시로부터 요청(Req)에 대응한 데이터를 수신할 때까지 걸린 시간은 임계 시간보다 길 수 있고, DVFS 컨트롤러(200)는 코어(110)의 워크로드를 제1 워크로드로 구분할 수 있다.In some embodiments, the
DVFS 컨트롤러(200)는 구분된 코어(110)의 워크로드를 기초로 전압-주파수 레벨에 대한 스케일링 인자를 결정할 수 있다. 일부 실시예들에서, 구분된 코어(110)의 워크로드에 따라 전압-주파수 레벨이 감소되도록 스케일링 인자를 결정할 수 있다. 예를 들면, DVFS 컨트롤러(200)는 코어(110)의 워크로드를 제1 워크로드 또는 제2 워크로드로 구분할 수 있고, 제1 워크로드는 제2 워크로드보다 외부 메모리에 접근하는 요청을 더 많이 포함할 수 있다. 제1 워크로드를 갖는 코어(110)는 제2 워크로드를 갖는 코어(110)보다 요구되는 성능이 낮을 수 있다. 코어(110)의 성능은 전압-주파수 레벨에 의존적일 수 있고, DVFS 컨트롤러(200)는 코어(110)의 워크로드를 제1 워크로드로 구분한 경우 전압-주파수 레벨이 감소되도록 스케일링 인자를 결정할 수 있다. 이에 대한 일부 실시예들은, 도 6a 및 도 6b를 참조하여 후술 될 것이다.The
DVFS 컨트롤러(200)는 결정된 스케일링 인자를 기초로 제어 신호를 생성할 수 있다. 일부 실시예들에서, DVFS 컨트롤러(200)는 코어(110)의 주파수를 조절하기 위한 클럭 제어 신호(C_clk)를 생성할 수 있고, 클럭 제어 신호(C_clk)를 클럭 관리부(300)에 송신할 수 있다. 일부 실시예들에서, DVFS 컨트롤러(200)는 코어(110)의 전원 전압(vdd)을 조절하기 위한 전압 제어 신호(C_vdd)를 생성할 수 있고, 전압 제어 신호(C_vdd)를 파워 관리부(400)에 송신할 수 있다.The
DVFS 컨트롤러(200)는 모니터(130)가 공유 버퍼(120)를 모니터링하여 획득한 버퍼 용량 및 응답 대기 시간을 기초로 코어(110)의 워크로드를 구분하기 때문에 버스(500)나 메모리(600)의 특성에 따라 전압-주파수 레벨에 대한 스케일링 인자를 다르게 결정할 수 있다. 이에 따라, 워크로드를 구분하지 않는 경우보다 전력 소비를 효율적으로 감소시킬 수 있고, 소프트웨어를 이용하여 워크로드를 구분하는 경우보다 추가 계산이 필요로 하지 않으므로 오버헤드(overhead)를 감소시킬 수 있다. DVFS 컨트롤러(200)는 프로세서(100) 외부에 위치한 것으로 설명하고 있으나, 프로세서(100) 내부에 위치할 수 있다.Since the
클럭 관리부(300)는 클럭 신호(clk)를 생성할 수 있고, 클럭 제어 신호(C_clk)에 기초하여 클럭 신호(clk)의 주파수를 조절할 수 있다. 예를 들면, 클럭 관리부(300)는 클럭 제어 신호(C_clk)에 기초하여 클럭 신호(clk)를 생성하는 오실레이터를 포함할 수 있다. 클럭 관리부(300)는 클럭 생성기 또는 클럭 생성 회로로 지칭될 수도 있다.The
파워 관리부(400)는 전원 전압(vdd)을 생성할 수 있고, 전압 제어 신호(C_vdd)에 기초하여 전원 전압(vdd)의 크기를 조정할 수 있다. 예를 들면, 파워 관리부(400)는 전압 제어 신호(C_vdd)에 기초하여 외부 전원으로부터 제공되는 전압으로부터 전원 전압(vdd)을 생성하는 스위칭 레귤레이터를 포함할 수 있다. 파워 관리부(400)는 전력 관리 집적 회로(Power Management Integrated Circuit, PMIC)로 지칭될 수도 있다.The
버스(500)는 소정의 표준 버스 규격을 갖는 프로토콜이 적용된 시스템 버스일 수 있으며, 상기 시스템 버스에 연결되는 각종 IP(Intellectual Property)들을 포함할 수 있다. 시스템 버스의 표준 규격으로서, ARM(Advanced RISC Machine) 사의 AMBA(Advanced Microcontroller Bus Architecture) 프로토콜이 적용될 수 있다. AMBA 프로토콜의 버스 타입에는 AHB(Advanced High-Performance Bus), APB(Advanced Peripheral Bus), AXI(Advanced eXtensible Interface), AXI4, ACE(AXI Coherency Extensions) 등이 포함될 수 있다. 이외에도, 소닉사(SONICs Inc.)의 uNetwork 이나 IBM의 CoreConnect, OCP-IP의 오픈 코어 프로토콜(Open Core Protocol) 등 다른 타입의 프로토콜이 적용되어도 무방하다. 버스(500)는 집적 회로(10)에 포함된 것으로 설명하고 있으나, 집적 회로(10) 외부에 위치할 수 있다.The
메모리(600)는 다양한 종류의 반도체 메모리 장치에 해당할 수 있으며, 일 실시예에 따라 DDR SDRAM(Double Data Rate Synchronous Dynamic Ramdom Access Memory), LPDDR(Low Power Double Data Rate) SDRAM, GDDR(Graphics Double Data Rate) SDRAM, RDRAM(Rambus Dynamic Ramdom Access Memory) 등과 같은 동적 랜덤 억세스 메모리(Dynamic Ramdom Access Memory, DRAM)일 수 있다. 또한, 메모리(600)는 더 나아가 플래시 메모리(Flash Memory), PRAM(Phase-change RAM), MRAM(Magnetoresistive RAM), ReRAM(Resistive RAM) 및 FeRAM(Ferroelectric RAM) 중 어느 하나일 수 있다. 메모리(600)는 집적 회로(10)에 포함된 것으로 설명하고 있으나, 집적 회로(10) 외부에 위치할 수 있고, 이를 외부 메모리로 지칭할 수 있다.The
집적 회로(10)는 도 1에 도시된 구성요소들 이외의 구성요소들을 포함할 수 있다. 예를 들어, 집적 회로(10)는 IO 인터페이스 블록(input/output interface block), USB 호스트 블록(universal serial bus host block), USB 슬레이브 블록(universal serial bus slave block) 등 다양한 종류의 기능 블록들을 더 포함할 수 있다.Integrated
도 2는 본 개시의 예시적 실시예에 따른 공유 버퍼 및 모니터가 모니터링하는 데이터를 설명하는 블록도이다. Figure 2 is a block diagram illustrating data monitored by a shared buffer and a monitor according to an exemplary embodiment of the present disclosure.
도 1 및 도 2를 참조하면, 도 2의 공유 버퍼(120)는 도 1의 공유 버퍼(120)와 동일할 수 있고, 복수의 블록(121)들을 포함할 수 있다. 도 1의 내용과 중복되는 설명은 생략한다. 일부 실시예들에서, 적어도 하나의 블록(121)은 하나의 세트를 구성하고, 공유 버퍼(120)는 복수의 세트를 포함할 수 있다. 복수의 세트를 기준으로 공유 버퍼(120)의 전체 용량이 결정될 수 있다. 예를 들면, 블록(121)의 크기는 B(B는 0이상의 정수) bytes 일 수 있고, 하나의 세트는 N(N은 1이상의 정수)개 이상의 블록(121)을 포함할 수 있고, 공유 버퍼(120)는 M(M은 1이상의 정수)개의 세트를 포함할 수 있다. 이때, 공유 버퍼(120)의 전체 용량은 B*N*M bytes 로 결정될 수 있다.Referring to FIGS. 1 and 2 , the shared
일부 실시예들에서, 공유 버퍼(120)의 전체 용량 중 채워진 정도가 임계값 이상인 경우 DVFS 컨트롤러(200)는 코어(110)의 워크로드를 제1 워크로드로 구분할 수 있다. 예를 들면, 공유 버퍼(120)의 전체 용량인 B*N*M bytes 중 70%이상 채워져 있는 경우 DVFS 컨트롤러(200)는 코어(110)의 워크로드를 제1 워크로드로 구분할 수 있다.In some embodiments, when the full capacity of the shared
일부 실시예들에서, 각각의 코어(110)들은 복수의 블록(121)들 중 특정 블록에만 요청(Req)을 송신할 수 있다. 예를 들면, 요청(Req)에는 복수의 블록(121)들 중 특정 블록의 위치를 지정하는 데이터를 포함할 수 있다.In some embodiments, each core 110 may transmit a request (Req) only to a specific block among the plurality of
일부 실시예들에서, 메모리(600)는 복수의 구역들(미도시)로 구분될 수 있고, 각각의 블록(121)들은 메모리(600)의 복수의 구역들 중 특정 구역에만 접근(Acc)할 수 있다. 예를 들면, 공유 버퍼(120)가 코어(110)로부터 수신한 요청(Req)은 어드레스(address)를 포함할 수 있고, 어드레스(address)는 메모리(600)의 특정 구역의 위치를 지정하는 데이터를 포함할 수 있다.In some embodiments, the
도 3a 및 도 3b는 본 개시의 예시적 실시예에 따른 버퍼 용량 및 응답 대기 시간을 설명하기 위한 그래프이다.3A and 3B are graphs for explaining buffer capacity and response waiting time according to an exemplary embodiment of the present disclosure.
도 1 및 도 3a를 참조하면, 도 3a의 그래프는 블록(121)의 용량이 채워진 정도(capacity)를 시간(time)에 따라 나타낸 것일 수 있다. 일부 실시예들에서, 블록(121)의 용량이 채워진 정도가 임계 용량 이상인 블록(121)들의 개수가 임계 개수 이상인 경우 공유 버퍼(120)의 버퍼 용량은 풀(full)인 상태로 지칭할 수 있다. 예를 들면, 복수의 블록(121)들 중 용량이 채워진 정도가 70%(Th1)이상인 블록(121)들의 개수가 전체 블록(121)들의 개수 중 50%(임계 개수)이상인 경우 공유 버퍼(120)의 버퍼 용량은 풀(full)인 상태일 수 있다. 버퍼 용량이 풀인 구간은 구간 C1 및 구간 C2 일 수 있다.Referring to FIGS. 1 and 3A , the graph in FIG. 3A may represent the capacity of the
도 3b를 더 참조하면, 도 3b의 그래프는 공유 버퍼(120)가 외부 메모리로부터 수신되는 응답에 대한 응답 대기 시간을 나타낸 것일 수 있다. 일부 실시예들에서, 외부 메모리로부터 수신되는 응답에 대한 응답 대기 시간은 공유 버퍼(120)가 버스(500)를 통해 메모리(600)에 접근(Acc)한 후에 메모리(600)로부터 응답(Res)을 수신할 때까지 걸린 시간(이하, 응답 대기 시간이라 함.)일 수 있다. 공유 버퍼(120)가 버스(500)를 통해 메모리(600)에 접근(Acc)할 경우, 신호(signal)가 제1 레벨(예컨대 로직 로우)에서 제2 레벨(예컨대 로직 하이)로 천이 될 수 있다. 공유 버퍼(120)가 버스(500)를 통해 메모리(600)로부터 응답(Res)을 수신할 경우, 신호(signal)가 제2 레벨에서 제1 레벨로 천이 될 수 있다. 신호(signal)가 제1 레벨에서 제2 레벨로 천이 된 이후 제2 레벨에서 제1 레벨로 천이 될 때까지 걸린 시간(예를 들면, 시간 a1, 시간 a2, 시간 a3 또는 시간 b1)은 응답 대기 시간일 수 있다.Referring further to FIG. 3B, the graph of FIG. 3B may represent the response waiting time of the shared
일부 실시예들에서, DVFS 컨트롤러(200)는 공유 버퍼(120)의 버퍼 용량이 풀인 상태를 나타내고, 응답 대기 시간이 임계 시간(Th2) 보다 긴 경우, 코어(110)의 워크로드를 제1 워크로드 또는 제2 워크로드 중 제1 워크로드로 구분할 수 있다. 제1 워크로드는 제2 워크로드보다 외부 메모리에 접근하는 요청을 더 많이 포함할 수 있다. 예를 들면, 공유 버퍼(120)의 버퍼 용량이 풀인 상태는 구간 C1 및 구간 C2 일 수 있다. 응답 대기 시간이 임계 시간(Th2)보다 긴 경우는, 시간 a1, 시간 a2 및 시간 a3 일 수 있다. 시점 T1에서, 공유 버퍼(120)의 버퍼 용량은 풀인 상태를 나타내고, 응답 대기 시간은 임계 시간(Th2)보다 긴 경우일 수 있다. 시점 T2에서, 응답 대기 시간은 임계 시간(Th2)보다 긴 경우이지만, 공유 버퍼(120)의 버퍼 용량은 풀인 상태가 아닐 수 있다. 따라서, 시점 T1부터 시점 T2까지의 구간에서 버스(500)나 메모리(600)에서 충돌이 발생하는 상황일 수 있고, DVFS 컨트롤러(200)는 코어(110)의 워크로드를 제1 워크로드로 구분할 수 있다.In some embodiments, the
일부 실시예들에서, 모니터(130)는 공유 버퍼(120)를 모니터링 하고, 식별자(source ID)를 획득할 수 있다. 식별자(source ID)는 공유 버퍼(120)에 요청(Req)을 송신하는 코어(110)의 주소를 지칭할 수 있고, DVFS 컨트롤러(200)는 모니터(130)로부터 식별자(source ID)를 수신할 수 있다. 시점 T1부터 시점 T2까지의 구간에서 DVFS 컨트롤러(200)는 식별자(source ID)에 따라 복수의 코어(110)들 중 특정 코어를 식별하고, 식별된 코어의 워크로드를 제1 워크로드로 구분할 수 있다.In some embodiments, monitor 130 may monitor the shared
도 4는 본 개시의 예시적 실시예에 따른 집적 회로의 일 구현예를 나타내는 블록도이다.Figure 4 is a block diagram showing an implementation of an integrated circuit according to an exemplary embodiment of the present disclosure.
도 1 및 도 4를 참조하면, 집적 회로(10a)는 프로세서(100), DVFS 컨트롤러(200) 및 온도 센서(800)를 포함할 수 있다. 일부 실시예들에서, 도 4의 프로세서(100) 및 DVFS 컨트롤러(200)는 도 1의 프로세서(100) 및 DVFS 컨트롤러(200)와 동일할 수 있다. 도 1의 내용과 중복되는 설명은 생략한다.Referring to FIGS. 1 and 4 , the integrated circuit 10a may include a
온도 센서(800)는 프로세서(100)의 온도를 감지하고 감지 결과에 따른 온도 정보를 DVFS 컨트롤러(200)에 제공할 수 있다. 온도 센서(800)는 서미터(thermistor) 및 온도 정보를 저장할 수 있는 메모리(미도시)를 포함할 수 있다. 일부 실시예들에서, 온도 센서(800)는 코어(110)들의 온도를 감지할 수 있다. 감지 결과에 따른 온도 정보를 DVFS 컨트롤러(200)에 제공하고, 메모리에 저장할 수 있다.The
도 3a 및 도 3b를 더 참조하면, 일부 실시예들에서, DVFS 컨트롤러(200)는 공유 버퍼(120)의 버퍼 용량이 풀인 상태가 아니거나, 응답 대기 시간이 임계 시간(Th2)이하인 경우, 온도 정보에 기초하여 코어(110)의 워크로드를 제1 워크로드 또는 제2 워크로드 중 제2 워크로드로 구분할 수 있다. 제1 워크로드는 제2 워크로드보다 외부 메모리에 접근하는 요청을 더 많이 포함할 수 있다. 예를 들면, 구간 C1 및 구간 C2를 제외한 구간은 버퍼 용량이 풀인 상태가 아닐 수 있다. 구간 C1에서 버퍼 용량은 풀인 상태이나, 응답 대기 시간(예를 들면, 시간 b1)은 임계 시간(Th2)을 초과하지 않을 수 있다. 구간 C3에서 버퍼 용량은 풀인 상태이나, 응답 대기 시간은 임계 시간(Th2)을 초과하지 않을 수 있다. 따라서, 시점 T1이전 또는 시점 T2 이후의 구간은 공유 버퍼(120)의 버퍼 용량이 풀인 상태가 아니거나, 응답 대기 시간이 임계 시간(Th2)이하인 경우일 수 있다. 시점 T1이전 또는 시점 T2 이후의 구간에서, 온도 센서(800)가 감지한 온도 정보가 임계 온도 이상인 경우, 코어(110)는 명령어 처리를 위해 과도하게 동작하는 경우일 수 있고, 프로세서(100)의 동작 중 캐시 미스가 발생하지 않는 상황일 수 있다. 따라서, DVFS 컨트롤러(200)는 코어(110)의 워크로드를 제2 워크로드로 구분할 수 있다.Referring further to FIGS. 3A and 3B, in some embodiments, the
일부 실시예들에서, 모니터(130)는 공유 버퍼(120)를 모니터링 하고, 식별자(source ID)를 획득할 수 있다. 식별자(source ID)는 공유 버퍼(120)에 요청(Req)을 송신하는 코어(110)의 주소를 지칭할 수 있고, DVFS 컨트롤러(200)는 모니터(130)로부터 식별자(source ID)를 수신할 수 있다. 시점 T1이전 또는 시점 T2이후의 구간에서 DVFS 컨트롤러(200)는 식별자(source ID)에 따라 복수의 코어(110)들 중 특정 코어를 식별하고, 식별된 코어의 워크로드를 제2 워크로드로 구분할 수 있다.In some embodiments, monitor 130 may monitor the shared
도 5는 본 개시의 예시적 실시예에 따른 집적 회로의 일 구현예를 나타내는 블록도이다.Figure 5 is a block diagram illustrating an example implementation of an integrated circuit according to an exemplary embodiment of the present disclosure.
도 1 및 도 5를 참조하면, 집적 회로(10b)는 DVFS 컨트롤러(200a), 클럭 관리부(300), 파워 관리부(400) 및 메모리(700)를 포함할 수 있다. 일부 실시예들에서, 도 5의 클럭 관리부(300) 및 파워 관리부(400)는 도 1의 클럭 관리부(300) 및 파워 관리부(400)와 동일할 수 있다. 도 1의 내용과 중복되는 설명은 생략한다.Referring to FIGS. 1 and 5 , the
DVFS 컨트롤러(200a)는 워크로드 분류 로직(workload classification logic)(210), DVFS 관리자 모듈(DVFS governor module)(220), 클럭 관리부 드라이버(230) 및 파워 관리부 드라이버(240)를 포함할 수 있다. 워크로드 분류 로직(210)은 모니터(130)로부터 공유 버퍼(120)에 요청(Req)을 송신하는 코어(110)의 주소(이하, 식별자로 지칭함.), 공유 버퍼(120)의 버퍼 용량 및 외부 메모리로부터 수신되는 응답에 대한 응답 대기 시간을 수신할 수 있다. 워크로드 분류 로직(210)은 식별자에 따라 복수의 코어(110)들 중 특정 코어를 식별하고, 버퍼 용량 및 응답 대기 시간을 기초로 특정 코어의 워크로드를 구분할 수 있다. 특정 코어의 구분된 워크로드 데이터를 DVFS 관리자 모듈(220)에 송신할 수 있다. 예를 들면, 워크로드 분류 로직(210)은 버퍼 용량 및 응답 대기 시간을 기초로 코어(110)의 워크로드를 제1 워크로드 또는 제2 워크로드로 구분할 수 있고, 제1 워크로드는 제2 워크로드보다 외부 메모리에 접근하는 요청을 더 많이 포함할 수 있다. 워크로드 분류 로직(210)은 버퍼 용량이 풀인 상태이고, 응답 대기 시간이 임계 시간보다 긴 경우, 특정 코어의 워크로드를 제1 워크로드로 구분할 수 있고, 특정 코어가 제1 워크로드로 구분되었다는 데이터를 DVFS 관리자 모듈(220)에 송신할 수 있다.The
DVFS 관리자 모듈(220)은 특정 코어의 구분된 워크로드 데이터를 기초로 전압-주파수 레벨에 대한 스케일링 인자를 결정할 수 있다. 일부 실시예들에서, DVFS 관리자 모듈(220)은 특정 코어가 제1 워크로드로 구분되었다는 데이터를 수신한 경우, 메모리(700)로부터 제1 워크로드에 대응되는 전원 전압(vdd) 및 클럭 신호(clk)의 주파수를 포함하는 DVFS 테이블(710)을 획득할 수 있다. DVFS 관리자 모듈(220)은 제1 워크로드에 대응되는 전원 전압(vdd) 및 클럭 신호(clk)를 기초로 전압-주파수 레벨에 대한 스케일링 인자를 결정할 수 있다. 이하에서 모듈(module)이라 함은 각각의 명칭에 따른 기능과 동작을 수행할 수 있는 하드웨어를 의미하거나 특정한 기능과 동작을 수행할 수 있는 컴퓨터 프로그램 코드를 의미할 수 있다. 다만, 이에 한정되지 않으며 특정한 기능과 동작을 수행시킬 수 있는 컴퓨터 프로그램 코드가 탑재된 전자적 기록 매체, 예컨대 프로세서를 의미할 수 있다. 즉, 모듈이란 본 발명의 기술적 사상을 수행하기 위한 소프트웨어의 기능적 및/또는 구조적 결합을 의미할 수 있다.The
클럭 관리부 드라이버(230)는 DVFS 관리자 모듈(220)이 결정한 스케일링 인자에 기초하여 클럭 제어 신호(C_clk)를 생성하고, 클럭 제어 신호(C_clk)를 클럭 관리부(300)에 제공할 수 있다.The
파워 관리부 드라이버(240)는 DVFS 관리자 모듈(220)이 결정한 스케일링 인자에 기초하여 전원 전압 제어 신호(C_vdd)를 생성하고, 전원 전압 제어 신호(C_vdd)를 파워 관리부(400)에 제공할 수 있다.The power
메모리(700)는 DVFS 테이블(710)을 포함할 수 있다. 일부 실시예들에서, DVFS 테이블(710)은 각 워크로드에 대응되는 전원 전압(vdd) 및 클럭 신호(clk)의 주파수를 포함할 수 있다. DVFS 테이블(710)은 메모리(700)에 하드 코딩(hard coding)된 값들을 포함할 수 있고, 소프트 코딩(soft coding)되어 수정 가능한 값들을 포함할 수 있다. DVFS 테이블(710)의 수정은 DVFS 관리자 모듈(220)에 의해 수행될 수 있다. 도 5에서는 하나의 DVFS 테이블(710)이 도시되어 있으나, DVFS 테이블(710)은 복수개일 수 있다. 예를 들면, 버퍼 용량, 응답 대기 시간 및 워크로드에 따라 복수개의 DVFS 테이블(710)이 생성될 수 있다.
도 6a 및 도 6b는 본 개시의 예시적 실시예에 따른 DVFS 컨트롤러가 스케일링 인자를 결정하는 것을 설명하기 위한 그래프 및 표이다.6A and 6B are graphs and tables for explaining how a DVFS controller determines a scaling factor according to an exemplary embodiment of the present disclosure.
도 1 및 도 6a를 참조하면, 도 6a의 그래프는 코어(110)의 성능 및 소모 전력의 관계를 나타낸 것일 수 있다. 소모 전력(P)은 다음의 [수학식 1]을 만족할 수 있다.Referring to FIGS. 1 and 6A , the graph in FIG. 6A may show the relationship between performance and power consumption of the
V는 전원 전압을 의미할 수 있고, f는 코어(110)의 주파수를 의미할 수 있다. 소모 전력(P)은 전원 전압(V)의 제곱에 비례하고, 코어(110)의 주파수(f)에 비례할 수 있어 전원 전압(V) 또는 코어(110)의 주파수(f)가 높을수록 소모 전력(P)은 증가할 수 있다. 코어(110)의 성능은 전압-주파수 레벨에 의존적일 수 있다. 예를 들면, 전원 전압(V)의 크기가 증가할 수록, 코어(110)의 주파수(f)가 높을수록 코어(110)는 빠르게 동작할 수 있어 코어(110)의 성능이 향상될 수 있다. 따라서, 소모 전력(P)과 코어(110)의 성능은 비례한 관계를 가질 수 있다.V may mean the power supply voltage, and f may mean the frequency of the
도 5 및 도 6b를 더 참조하면, 워크로드 분류 로직(210)은 코어(110)의 워크로드를 제1 워크로드 또는 제2 워크로드로 구분할 수 있고, DVFS 관리자 모듈(220)은 구분된 코어(110)의 워크로드를 기초로 전압-주파수 레벨에 대한 스케일링 인자를 결정할 수 있다. 도 6b의 표는 도 5의 DVFS 테이블(710)일 수 있다. 일부 실시예들에서, DVFS 관리자 모듈(220)은 코어(110)의 워크로드가 제1 워크로드로 구분되었다는 데이터(W1)를 수신할 경우, 메모리(700)로부터 전원 전압(v1) 및 클럭 신호의 주파수(f1)를 포함하는 DVFS 테이블(710)을 획득할 수 있다. DVFS 관리자 모듈(220)은 전원 전압(v1) 및 클럭 신호의 주파수(f1)를 기초로 전압-주파수 레벨에 대한 스케일링 인자를 결정할 수 있다. 예를 들면, 제1 워크로드는 메모리 집중 워크로드일 수 있고, 메모리 집중 워크로드는 프로세서(100)의 동작 중 캐시 미스가 발생할 경우, 버스(500)나 메모리(600)에서 충돌이 발생하는 상황을 의미할 수 있다. 버스(500)나 메모리(600)에서 충돌이 발생하는 경우, 코어(110)의 성능을 낮춤으로써 요청(Req)수를 조절하여 충돌을 해결할 수 있고, 코어(110)의 성능은 소모 전력과 비례한 관계이므로, 소모 전력을 감소시킬 수 있다. 따라서, DVFS 관리자 모듈(220)은 전원 전압(v1) 및 클럭 신호의 주파수(f1)를 기초로 전압-주파수 레벨이 감소되도록 스케일링 인자를 결정할 수 있다. Referring further to FIGS. 5 and 6B, the
일부 실시예들에서, 도 4를 더 참조하면, 온도 센서(800)가 감지한 온도 정보가 임계 온도 이상인 경우, DVFS 관리자 모듈(220)은 코어(110)의 워크로드가 제2 워크로드로 구분되었다는 데이터(W2)를 수신할 수 있고, 메모리(700)로부터 전원 전압(v2) 및 클럭 신호의 주파수(f2)를 포함하는 DVFS 테이블(710)을 획득할 수 있다. 예를 들면, 제2 워크로드는 컴퓨팅 워크로드일 수 있고, 컴퓨팅 워크로드는 코어(110)의 명령어 처리와 관련된 것으로, 프로세서(100)의 동작 중 캐시 미스가 발생하지 않는 상황을 의미할 수 있다. 캐시 미스가 발생하지 않는 상황일 경우, 제1 워크로드로 구분된 경우와 달리 코어(110)의 성능을 낮춤으로써 요청(Req)수를 조절하지 아니할 수 있다. 다만, 코어(110)의 온도가 임계 온도 이상인 경우, 코어(110)의 성능을 높이면 코어(110) 발열로 인한 오작동을 유발할 수 있으므로, 코어(110)의 성능을 낮춰 코어(110)의 온도를 낮출 수 있다. 따라서, DVFS 관리자 모듈(220)은 전원 전압(v2) 및 클럭 신호의 주파수(f2)를 기초로 전압-주파수 레벨이 감소되도록 스케일링 인자를 결정할 수 있다.In some embodiments, further referring to FIG. 4, when the temperature information detected by the
DVFS 테이블(710)은 도시된 데이터(W1 또는 W2)외 다른 데이터에 따른 전원 전압 및 클럭 신호의 주파수를 포함할 수 있다. 예를 들면, 온도 센서(800)가 감지한 온도 정보가 임계 온도 미만인 경우, DVFS 관리자 모듈(220)은 코어(110)의 워크로드가 제2 워크로드로 구분되었다는 데이터(미도시)를 수신할 수 있고, 메모리(700)로부터 전원 전압(미도시) 및 클럭 신호의 주파수(미도시)를 포함하는 DVFS 테이블(710)을 획득할 수 있다. 제2 워크로드는 컴퓨팅 워크로드일 수 있고, 코어(110)는 명령어 처리를 위해 높은 성능이 필요할 수 있다. 코어(110)의 온도는 임계 온도 미만이기 때문에, 코어(110)의 성능을 높여도 발열로 인한 오작동이 유발되지 않을 수 있다. 따라서, DVFS 관리자 모듈(220)은 전원 전압(미도시) 및 클럭 신호의 주파수(미도시)를 기초로 전압-주파수 레벨이 증가되도록 스케일링 인자를 결정할 수 있다.The DVFS table 710 may include power voltage and clock signal frequency according to data other than the illustrated data (W1 or W2). For example, if the temperature information detected by the
소모 전력(P)과 코어(110)의 성능은 비례한 관계를 가질 수 있기 때문에, DVFS 관리자 모듈(220)은 코어(110)의 워크로드에 따라 스케일링 인자를 달리 결정할 수 있고, 효율적으로 소모 전력 관리 및 코어(110)의 성능 관리를 할 수 있다.Since the power consumption (P) and the performance of the
도 7은 본 개시의 예시적 실시예에 따른 집적 회로의 구현예를 나타내는 블록도이다.Figure 7 is a block diagram showing an implementation example of an integrated circuit according to an exemplary embodiment of the present disclosure.
도 1 및 도 7을 참조하면, 집적 회로(10c)는 적어도 하나의 프로세서(100) 및 DVFS 컨트롤러(200b)를 포함할 수 있다. 일부 실시예들에서, 도 7의 프로세서(100)는 도 1의 프로세서(100)와 동일할 수 있다. 도 1의 내용과 중복되는 설명은 생략한다.Referring to FIGS. 1 and 7 , the
DVFS 컨트롤러(200b)는 적어도 하나의 프로세서(280), 메모리(250), AI(Artificial Intelligence) 가속기(260) 및 하드웨어 가속기(270)를 포함할 수 있다. 적어도 하나의 프로세서(280)는 명령어들을 실행할 수 있다. 예를 들면, 적어도 하나의 프로세서(280)는 메모리(250)에 저장된 명령어들을 실행함으로써 운영 체제(operating system)를 실행할 수도 있고, 운영 체제 상에서 실행되는 어플리케이션들을 실행할 수도 있다. 일부 실시예들에서, 적어도 하나의 프로세서(280)는 명령어들을 실행함으로써, AI 가속기(260) 및/또는 하드웨어 가속기(270)에 작업을 지시할 수 있고, AI 가속기(260) 및/또는 하드웨어 가속기(270)로부터 작업의 수행 결과를 획득할 수도 있다. 일부 실시예들에서, 적어도 하나의 프로세서(280)는 특정한 용도를 위하여 커스텀화된 ASIP(Application Specific Instruction set Processor)일 수 있고, 전용의 명령어 세트(instruction set)를 지원할 수도 있다.The
메모리(250)는 데이터를 저장하는 임의의 구조를 가질 수 있다. 예를 들면, 메모리(250)는, DRAM(Dynamic Random Access Memory), SRAM(Static Random Access Memory) 등과 같은 휘발성 메모리 장치를 포함할 수도 있고, 플래시 메모리, RRAM(Resistive Random Access Memory) 등과 같은 비휘발성 메모리 장치를 포함할 수도 있다.
AI 가속기(260)는 AI 어플리케이션들을 위해 설계된 하드웨어를 지칭할 수 있다. 일부 실시예들에서, AI 가속기(260)는 뉴로모픽(neuromorphic) 구조를 구현하기 위한 NPU(Neural Processing Unit)를 포함할 수 있고, 적어도 하나의 프로세서(280) 및/또는 하드웨어 가속기(270)로부터 제공된 입력 데이터를 처리함으로써 출력 데이터를 생성할 수 있고, 적어도 하나의 프로세서(280) 및/또는 하드웨어 가속기(270)에 출력 데이터를 제공할 수 있다. 일부 실시예들에서, AI 가속기(260)는 프로그램 가능할 수 있고, 적어도 하나의 프로세서(280) 및/또는 하드웨어 가속기(270)에 의해서 프로그램될 수 있다.
하드웨어 가속기(270)는 특정 작업을 고속으로 수행하기 위하여 설계된 하드웨어를 지칭할 수 있다. 예를 들면, 하드웨어 가속기(270)는 복조, 변조, 부호화, 복호화 등과 같은 데이터 변환을 고속으로 수행하도록 설계될 수 있다. 하드웨어 가속기(270)는 프로그램 가능할 수 있고, 적어도 하나의 프로세서(280) 및/또는 하드웨어 가속기(270)에 의해서 프로그램될 수 있다.
일부 실시예들에서, AI 가속기(260)는 인공신경망 모델을 실행할 수 있다. 예를 들면, 도 1을 더 참조할 때, 메모리(250)는 학습 데이터를 저장할 수 있다. 학습 데이터는 모니터(130)가 공유 버퍼(120)를 모니터링하여 획득한 버퍼 용량 및 응답 대기 시간을 포함할 수 있고, DVFS 컨트롤러(200)가 버퍼 용량 및 응답 대기 시간을 기초로 결정한 스케일링 인자를 포함할 수 있다. AI 가속기(260)는 인공신경망 모델을 실행할 수 있고, 프로세서(280)는 학습 데이터를 사용하여 인공신경망 모델을 학습시킬 수 있다. 인공신경망 모델이 학습 완료된 이후, 프로세서(280)는 모니터(130)로부터 버퍼 용량 및 응답 대기 시간을 수신할 수 있다. 수신한 버퍼 용량 및 응답 대기 시간이 메모리(250)에 저장된 버퍼 용량 및 응답 대기 시간과 대응되는 경우, 학습된 인공신경망 모델을 사용하여 버퍼 용량 및 응답 대기 시간에 대응하는 스케일링 인자를 결정할 수 있다. 인공신경망 모델이 학습된 이후 DVFS 컨트롤러(200)는 코어(110)의 워크로드를 구분하지 않고 스케일링 인자를 결정할 수 있어 빠르게 클럭 제어 신호 및 전압 제어 신호를 생성할 수 있다.In some embodiments,
일부 실시예들에서, 학습 데이터는 어드레스(address)를 포함할 수 있고, 프로세서(280)는 어드레스(address)를 포함한 학습 데이터를 사용하여 인공신경망 모델을 학습시킬 수 있다. 예를 들면, 공유 버퍼(120)가 코어(110)로부터 수신한 요청(Req)은 어드레스(address)를 포함할 수 있고, 어드레스(address)는 메모리(600)의 특정 구역의 위치를 지정하는 데이터를 포함할 수 있다. 인공신경망 모델이 학습 완료된 이후, 프로세서(280)는 모니터(130)로부터 어드레스(address)를 수신하고, 어드레스(address)에 대응하는 스케일링 인자를 결정할 수 있다. 학습 데이터는 전술한 데이터 외 다른 데이터를 더 포함할 수 있다.In some embodiments, the training data may include an address, and the
도 8은 본 개시의 예시적 실시예에 따른 집적 회로의 동작 방법을 나타내는 순서도이다. 도 8에 도시된 바와 같이, 집적 회로의 동작 방법(900)은 복수의 단계들(S110 내지 S150)을 포함할 수 있다. Figure 8 is a flowchart showing a method of operating an integrated circuit according to an exemplary embodiment of the present disclosure. As shown in FIG. 8, the
도 1 및 도 8을 참조하면, 단계 S110에서 공유 버퍼(120)를 모니터링하고, 공유 버퍼(120)의 버퍼 용량 및 공유 버퍼(120)가 외부 메모리로부터 수신하는 응답에 대한 응답 대기 시간을 획득할 수 있다. 예시적 실시예로, 공유 버퍼(120)의 버퍼 용량은 복수의 블록(121)들의 용량이 채워진 상태를 나타낼 수 있고, 외부 메모리로부터 수신되는 응답에 대한 응답 대기 시간은 공유 버퍼(120)가 버스(500)를 통해 메모리(600)에 접근(Acc)한 후에 메모리(600)로부터 응답(Res)을 수신할 때까지 걸린 시간일 수 있다.Referring to Figures 1 and 8, in step S110, the shared
단계 S130에서 버퍼 용량 및 응답 대기 시간을 기초로 코어(110)의 워크로드를 구분할 수 있다. 예시적 실시예로, 버퍼 용량 및 응답 대기 시간이 임계값 이상이면 DVFS 컨트롤러(200)는 코어(110)의 워크로드를 제1 워크로드로 구분할 수 있다. 버퍼 용량 또는 응답 대기 시간이 임계값 미만이면 DVFS 컨트롤러(200)는 코어(110)의 워크로드를 제2 워크로드로 구분할 수 있다In step S130, the workload of the core 110 can be distinguished based on buffer capacity and response waiting time. In an exemplary embodiment, if the buffer capacity and response latency are greater than or equal to a threshold, the
단계 S150에서 구분된 코어(110)의 워크로드를 기초로 코어(110)의 전압-주파수 레벨에 대한 스케일링 인자를 결정할 수 있다. 예시적 실시예로, 코어(110)의 워크로드가 제1 워크로드로 구분된 경우, 전압-주파수 레벨이 감소되도록 스케일링 인자를 결정할 수 있다. 코어(110)의 워크로드가 제2 워크로드로 구분된 경우, 전압-주파수 레벨이 증가되도록 스케일링 인자를 결정할 수 있다.A scaling factor for the voltage-frequency level of the
도 9는 본 개시의 예시적 실시예에 따른 집적 회로의 동작 방법의 일 구현예를 나타내는 순서도이다. 도 8의 단계 S130는 도 9의 집적 회로의 동작 방법의 일 구현예를 포함할 수 있다. 집적 회로의 동작 방법의 일 구현예(S130)는 복수의 단계들(S131 내지 S135)을 포함할 수 있다. Figure 9 is a flowchart illustrating an example implementation of a method of operating an integrated circuit according to an exemplary embodiment of the present disclosure. Step S130 of FIG. 8 may include an implementation example of the method of operating the integrated circuit of FIG. 9. An implementation example (S130) of a method of operating an integrated circuit may include a plurality of steps (S131 to S135).
도 1 및 도 9를 참조하면, 집적 회로의 동작 방법의 일 구현예(S130)는 DVFS 컨트롤러(200)가 세가지 모드로 동작하는 것을 나타낼 수 있다. 단계 S131에서 버퍼 용량이 풀인 상태인지 여부 및 응답 대기 시간이 임계 시간(th2)보다 긴 경우 인지 여부를 판단할 수 있다. 버퍼 용량이 풀인 상태이고, 응답 대기 시간이 임계 시간(th2)보다 긴 경우, 단계 S132에서 DVFS 컨트롤러(200)는 메모리 인텐시브 워크로드 모드로 동작할 수 있다. 예를 들면, 메모리 인텐시브 워크로드 모드에서 DVFS 컨트롤러(200)는 코어(110)의 워크로드를 메모리 인텐시브 워크로드로 구분할 수 있고, 전압-주파수 레벨이 감소되도록 스케일링 인자를 결정할 수 있다.Referring to FIGS. 1 and 9 , an implementation example (S130) of a method of operating an integrated circuit may indicate that the
버퍼 용량이 풀인 상태가 아니거나, 응답 대기 시간이 임계 시간(Th2)보다 짧은 경우, 단계 S133에서 DVFS 컨트롤러(200)는 도 4의 온도 센서로부터 코어(110)의 온도 정보(T)를 수신할 수 있다. 코어(110)의 온도 정보(T)가 임계 온도(th3)보다 높은 경우, 단계 S134에서 DVFS 컨트롤러(200)는 컴퓨팅 워크로드 모드로 동작할 수 있다. 예를 들면, 컴퓨팅 워크로드 모드에서 DVFS 컨트롤러(200)는 코어(110)의 워크로드를 컴퓨팅 워크로드로 구분할 수 있고, 전압-주파수 레벨이 감소되도록 스케일링 인자를 결정할 수 있다. 코어(110)의 온도 정보(T)가 임계 온도(th3)보다 높지 않은 경우, 단계 S135에서 DVFS 컨트롤러(200)는 노멀 워크로드 모드로 동작할 수 있다. 예를 들면, 노멀 워크로드 모드에서 DVFS 컨트롤러(200)는 코어(110)의 워크로드를 노멀 워크로드로 구분할 수 있고, 전압-주파수 레벨이 증가되도록 스케일링 인자를 결정할 수 있다.If the buffer capacity is not full or the response waiting time is shorter than the threshold time (Th2), the
버퍼 용량 및 응답 대기 시간에 따라 DVFS 컨트롤러(200)의 동작 모드가 달라지고, 동작 모드에 따라 스케일링 인자를 달리 결정하므로 상황에 맞게 소모 전력을 조절할 수 있다. 예를 들면, 메모리 인텐시브 워크로드 모드로 동작할 경우의 DVFS 컨트롤러(200)가 결정한 스케일링 인자는 컴퓨팅워크로드 모드로 동작할 경우의 DVFS 컨트롤러(200)가 결정한 스케일링 인자보다 전압-주파수 레벨을 더 낮게 감소시키는 스케일링 인자일 수 있다.The operation mode of the
도 10은 본 개시의 예시적 실시예에 따른 집적 회로의 동작 방법의 일 구현예를 나타내는 순서도이다. 도 10에 도시된 바와 같이, 집적 회로의 동작 방법의 일 구현예(1000)는 복수의 단계들(S210 내지 S250)을 포함할 수 있다. Figure 10 is a flowchart illustrating an example implementation of a method of operating an integrated circuit according to an exemplary embodiment of the present disclosure. As shown in FIG. 10 , an implementation example 1000 of a method of operating an integrated circuit may include a plurality of steps S210 to S250.
도 7 및 도 10을 참조하면, 단계 S210에서 메모리(250)는 학습 데이터를 저장할 수 있다. 예시적 실시예로, 메모리(250)는 모니터(130)로부터 학습 데이터를 수신하여 저장할 수 있다. 학습 데이터는 모니터(130)가 공유 버퍼(120)를 모니터링하여 획득한 버퍼 용량 및 응답 대기 시간을 포함할 수 있고, DVFS 컨트롤러(200)가 버퍼 용량 및 응답 대기 시간을 기초로 결정한 스케일링 인자를 포함할 수 있다. Referring to FIGS. 7 and 10 , the
단계 S230에서 학습 데이터를 사용하여 인공싱경망 모델을 학습할 수 있다. 예시적 실시예로, AI 가속기(260)는 인공신경망 모델을 실행할 수 있고, 프로세서(280)는 학습 데이터를 사용하여 인공신경망 모델을 학습시킬 수 있다.In step S230, an artificial neural network model can be learned using the training data. In an example embodiment, the
단계 S250에서 학습이 완료된 이후, 프로세서(280)는 모니터로부터 수신되는 버퍼 용량 및 응답 대기 시간에 대응하는 스케일링 인자를 결정할 수 있다. 예시적 실시예로, 프로세서(280)는 모니터(130)로부터 버퍼 용량 및 응답 대기 시간을 수신할 수 있다. 수신한 버퍼 용량 및 응답 대기 시간이 메모리(250)에 저장된 버퍼 용량 및 응답 대기 시간과 대응되는 경우, 학습된 인공신경망 모델을 사용하여 버퍼 용량 및 응답 대기 시간에 대응하는 스케일링 인자를 결정할 수 있다. 인공신경망 모델이 학습된 이후 DVFS 컨트롤러(200)는 코어(110)의 워크로드를 구분하지 않고 스케일링 인자를 결정할 수 있어 빠르게 클럭 제어 신호 및 전압 제어 신호를 생성할 수 있다.After learning is completed in step S250, the
도 11은 본 개시의 예시적 실시예에 따른 시스템을 나타내는 블록도이다.Figure 11 is a block diagram showing a system according to an exemplary embodiment of the present disclosure.
도 11을 참조하면, 시스템(30)은 이동 전화기, 스마트폰, 태블릿 컴퓨터(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)로 구현될 수 있다.Referring to FIG. 11,
시스템(30)은 SoC(3100) 및 메모리 장치(3200)를 포함할 수 있다. SoC(3100)는 CPU(central processing unit)(3110), GPU(graphic processing unit)(3120), NPU(neural processing unit)(3130), ISP(Image Signal Processor)(3140), MIF(memory interface)(3150), CMU(clock management unit)(3160), PMU(power management unit)(3170)를 포함할 수 있다. CPU(3110), GPU(3120), NPU(3130), ISP(3140) 및 MIF(3150)는 도 1 내지 도 10을 통해 전술된 집적 회로(10)의 일 구현 예일 수 있다. 따라서, CPU(3110), GPU(3120), NPU(3130), ISP(3140) 및 MIF(3150) 각각에 모니터(130) 및 DVFS 컨트롤러(200)를 포함할 수 있고, DVFS 컨트롤러(200)는 모니터(130)가 모니터링한 버퍼 용량 및 응답 대기 시간을 기초로 DVFS 동작을 수행할 수 있다.
CPU(3110)는 CMU(3160)에 의해 생성된 클럭 신호에 응답하여 메모리 장치(3200)에 저장된 명령들 및/또는 데이터를 처리 또는 실행할 수 있다.The
GPU(3120)는 CMU(3160)에 의해 생성된 클럭 신호에 응답하여 메모리 장치(3200)에 저장된 이미지 데이터를 획득할 수 있다. GPU(3120)는 MIF(3150)로부터 제공되는 이미지 데이터로부터 디스플레이 장치(미도시)를 통해서 출력되는 영상을 위한 데이터를 생성할 수도 있고, 이미지 데이터를 인코딩할 수도 있다.The
NPU(3130)는 기계 학습 모델을 실행하는 임의의 장치를 지칭할 수 있다. NPU(3130)는 기계 학습 모델을 실행하기 위하여 설계된 하드웨어 블록일 수 있다. 기계 학습 모델은 인공 신경망(artificial neural network), 결정 트리, 서포트 벡터 머신, 회귀 분석(regression analysis), 베이즈 네트워크(Bayesian network), 유전 계획법(genetic algorithm) 등에 기초한 모델일 수 있다. 인공신경망은, 비제한적인 예시로서 CNN(convolution neural network), R-CNN(region with convolution neural network), RPN(region proposal network), RNN(recurrent neural network), S-DNN(stacking-based deep neural network), S-SDNN(state-space dynamic neural network), Deconvolution Network, DBN(deep belief network), RBM(restricted Boltzmann machine), Fully Convolutional Network, LSTM(long short-term memory) Network, Classification Network를 포함할 수 있다.
ISP(3140)는 SoC(3100) 외부에 위치하는 이미지 센서(미도시)로부터 수신된 로우(RAW) 데이터에 대해 신호 처리 동작을 수행하고, 향상된 이미지 품질을 갖는 디지털 데이터를 생성할 수 있다.The
MIF(3150)는 SoC(3100)의 외부에 위치하는 메모리 장치(3200)에 대한 인터페이스를 제공할 수 있다. 메모리 장치(3200)는 DRAM(Dynamic Random Access Memory), PRAM(Phase-change Random Access Memory), ReRAM(Resistive Random Access Memory) 또는 플래시 메모리일 수 있다.The
CMU(3160)는 클럭 신호를 생성하고, 클록 신호를 SoC(3100)의 구성요소들에 제공할 수 있다. CMU(3160)는 위상 동기 루프 회로(Phase Locked Loop; PLL), 지연 동기 루프(Delayed Locked Loop; DLL), 수정자(crystal)등의 클럭 생성 장치를 포함할 수 있다. PMU(3170)는 외부 전원을 내부 전원으로 변환하고, 내부 전원을 SoC(3100)의 구성요소들에 전력을 공급할 수 있다.The
도 12는 본 개시의 예시적 실시예에 따른 어플리케이션 프로세서를 포함하는 통신 장치를 나타내는 블록도이다.Figure 12 is a block diagram showing a communication device including an application processor according to an example embodiment of the present disclosure.
도 12를 참조하면, 통신 장치(40)는 어플리케이션 프로세서(4010), 메모리 장치(4020), 디스플레이(4030), 입력 장치(4040) 및 무선 송수신기(4050)를 포함할 수 있다. 어플리케이션 프로세서(4010)는 도 1 내지 11을 참조하여 전술된 집적 회로(10)의 일 구현 예일 수 있다.Referring to FIG. 12, the
무선 송수신기(4050)는 안테나(4060)를 통하여 무선 신호를 주거나 받을 수 있다. 예컨대, 무선 송수신기(4050)는 안테나(4060)를 통하여 수신된 무선 신호를 어플리케이션 프로세서(4010)에서 처리될 수 있는 신호로 변경할 수 있다.The
따라서, 어플리케이션 프로세서(4010)는 무선 송수신기(4050)로부터 출력된 신호를 처리하고 처리된 신호를 디스플레이(4030)로 전송할 수 있다. 또한, 무선 송수신기(3250)는 어플리케이션 프로세서(4010)로부터 출력된 신호를 무선 신호로 변경하고 변경된 무선 신호를 안테나(4060)를 통하여 외부 장치로 출력할 수 있다.Accordingly, the
입력 장치(4040)는 어플리케이션 프로세서(4010)의 동작을 제어하기 위한 제어 신호 또는 어플리케이션 프로세서(4010)에 의하여 처리될 데이터를 입력할 수 있는 장치로서, 터치 패드 (touch pad)와 컴퓨터 마우스(computer mouse)와 같은 포인팅 장치(pointing device), 키패드(keypad), 또는 키보드로 구현될 수 있다.The
이때 어플리케이션 프로세서(4010)는 본 개시의 실시예에 따른 모니터(130) 및 DVFS 컨트롤러(200)를 더 포함할 수 있고, DVFS 컨트롤러(200)는 모니터(130)가 모니터링한 버퍼 용량 및 응답 대기 시간을 기초로 DVFS 동작을 수행할 수 있다.At this time, the
도 12에는 도시되지 않았으나, 통신 장치(40)에 구비되는 각종 구성들에 클럭 신호를 제공하는 클럭 관리부 및 전원 전압을 제공하는 파워 관리부를 더 포함할 수 있다.Although not shown in FIG. 12, the
상술한 바와 같은 본 개시에 따른 집적 회로(10)를 이용하면, 코어의 워크로드를 구분하고 구분된 워크로드를 기초로 전압-주파수 레벨에 대한 스케일링 인자를 결정할 수 있어 상황에 맞게 효율적으로 소모 전력을 조절할 수 있다.Using the
이상에서와 같이 도면과 명세서에서 예시적인 실시예들이 개시되었다. 본 명세서에서 특정한 용어를 사용하여 실시예들을 설명되었으나, 이는 단지 본 개시의 기술적 사상을 설명하기 위한 목적에서 사용된 것이지 의미 한정이나 특허청구범위에 기재된 본 개시의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 기술분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다.As above, exemplary embodiments have been disclosed in the drawings and specification. Although embodiments have been described in this specification using specific terms, this is only used for the purpose of explaining the technical idea of the present disclosure and is not used to limit the meaning or scope of the present disclosure as set forth in the claims. . Therefore, those skilled in the art will understand that various modifications and other equivalent embodiments are possible therefrom.
Claims (10)
상기 적어도 하나의 코어로부터 요청을 수신하고, 상기 요청에 따라 외부 메모리에 엑세스하고, 상기 외부 메모리로부터 응답을 수신하는 공유 버퍼(shared buffer);
상기 공유 버퍼를 모니터링 하여 상기 공유 버퍼의 버퍼 용량 및 상기 외부 메모리로부터 수신되는 상기 응답에 대한 응답 대기 시간을 획득하는 모니터; 및
상기 모니터로부터 상기 버퍼 용량 및 상기 응답 대기 시간을 수신하고, 상기 버퍼 용량 및 상기 응답 대기 시간을 기초로 상기 적어도 하나의 코어의 워크로드를 구분하고, 구분된 워크로드를 기초로 상기 전압-주파수 레벨에 대한 스케일링 인자(scaling factor)를 결정하는 DVFS(Dynamic Voltage and Frequency Scaling) 컨트롤러를 포함하는 집적 회로.at least one core configured to process instructions according to voltage-frequency levels;
a shared buffer that receives a request from the at least one core, accesses an external memory according to the request, and receives a response from the external memory;
a monitor that monitors the shared buffer to obtain a buffer capacity of the shared buffer and a response waiting time for the response received from the external memory; and
Receive the buffer capacity and the response waiting time from the monitor, classify the workload of the at least one core based on the buffer capacity and the response waiting time, and set the voltage-frequency level based on the divided workload. An integrated circuit including a Dynamic Voltage and Frequency Scaling (DVFS) controller that determines a scaling factor for .
상기 DVFS 컨트롤러는, 상기 버퍼 용량 및 상기 응답 대기 시간을 기초로 상기 적어도 하나의 코어의 워크로드를 제1 워크로드 또는 제2 워크로드로 구분하고,
상기 제1 워크로드는,
상기 제2 워크로드보다 상기 외부 메모리에 접근하는 요청을 더 많이 포함하는 것을 특징으로하는 집적회로.According to claim 1,
The DVFS controller divides the workload of the at least one core into a first workload or a second workload based on the buffer capacity and the response waiting time,
The first workload is,
An integrated circuit comprising more requests to access the external memory than the second workload.
상기 DVFS 컨트롤러는,
상기 버퍼 용량이 풀(full)인 상태를 나타내고, 상기 응답 대기 시간이 임계 시간보다 긴 경우, 상기 적어도 하나의 코어의 워크로드를 제1 워크로드로 구분하는 집적회로.According to clause 2,
The DVFS controller is,
An integrated circuit that classifies the workload of the at least one core as a first workload when the buffer capacity indicates a full state and the response waiting time is longer than a threshold time.
상기 공유 버퍼는 복수개의 블록들을 포함하고,
상기 버퍼 용량이 풀인 상태는,
상기 복수개의 블록들 중 임계 용량 이상을 사용중인 블록들의 개수가 임계 개수 이상인 상태를 나타내는 집적 회로.According to clause 3,
The shared buffer includes a plurality of blocks,
In the state where the buffer capacity is full,
An integrated circuit indicating a state in which the number of blocks using more than a critical capacity among the plurality of blocks is greater than a critical number.
상기 적어도 하나의 코어의 온도를 측정하고, 상기 측정된 온도를 상기 DVFS 컨트롤러에 전송하는 온도 센서를 더 포함하고,
상기 DVFS 컨트롤러는,
상기 버퍼 용량이 풀이 아닌 상태이거나, 상기 응답 대기 시간이 임계 시간보다 짧은 경우, 상기 측정된 온도가 임계 온도 이상인 코어의 워크로드를 제2 워크로드로 구분하는 집적 회로.According to clause 2,
Further comprising a temperature sensor that measures the temperature of the at least one core and transmits the measured temperature to the DVFS controller,
The DVFS controller is,
When the buffer capacity is not full or the response waiting time is shorter than a threshold time, an integrated circuit that divides the workload of the core whose measured temperature is higher than the threshold temperature into a second workload.
상기 DVFS 컨트롤러는,
상기 버퍼 용량, 상기 응답 대기 시간 및 상기 스케일링 인자를 포함하는 학습 데이터를 저장하는 메모리;
상기 학습 데이터를 사용하여 인공신경망 모델을 학습시키는 프로세서를 더 포함하고,
상기 프로세서는,
상기 학습이 완료된 후 상기 학습된 인공신경망 모델을 사용하여 상기 모니터로부터 수신되는 상기 버퍼 용량 및 상기 응답 대기 시간에 대응하는 스케일링 인자를 결정하는 집적 회로.According to claim 1,
The DVFS controller is,
a memory that stores training data including the buffer capacity, the response latency, and the scaling factor;
Further comprising a processor that trains an artificial neural network model using the training data,
The processor,
An integrated circuit that determines a scaling factor corresponding to the buffer capacity and the response latency received from the monitor using the learned artificial neural network model after the learning is completed.
공유 버퍼를 모니터링하고, 상기 공유 버퍼의 버퍼 용량 및 상기 공유 버퍼가 외부 메모리로부터 수신하는 응답에 대한 응답 대기 시간을 획득하는 단계;
상기 버퍼 용량 및 상기 응답 대기 시간을 기초로 코어의 워크로드를 구분하는 단계; 및
상기 구분된 코어의 워크로드를 기초로 상기 코어의 전압-주파수 레벨에 대한 스케일링 인자를 결정하는 단계를 포함하는 방법.A method of operating an integrated circuit, comprising:
Monitoring a shared buffer and obtaining a buffer capacity of the shared buffer and a response waiting time for a response that the shared buffer receives from an external memory;
Classifying workloads of cores based on the buffer capacity and the response waiting time; and
A method comprising determining a scaling factor for the voltage-frequency level of the core based on the workload of the divided core.
적어도 하나의 메모리;
상기 프로세서와 상기 적어도 하나의 메모리를 연결하는 버스;
공유 버퍼의 버퍼 용량 및 상기 버스로부터 수신되는 응답에 대한 응답 대기 시간을 기초로 적어도 하나의 코어의 워크로드를 구분하고, 구분된 워크로드를 기초로 스케일링 인자를 결정하고, 결정된 스케일링 인자를 기초로 전압 제어 신호 및 클럭 제어 신호를 생성하는 DVFS 컨트롤러;
상기 전압 제어 신호에 응답하여 상기 적어도 하나의 코어에 제공되는 전원 전압의 크기를 조정하는 파워 관리부; 및
상기 클럭 제어 신호에 응답하여 상기 적어도 하나의 코어에 제공되는 클럭 신호의 주파수를 조정하는 클럭 관리부를 포함하고,
상기 프로세서는,
상기 전원 전압의 크기 및 상기 클럭 신호의 주파수에 따라 명령어를 처리하도록 구성된 상기 적어도 하나의 코어;
상기 적어도 하나의 코어로부터 요청을 수신하고, 상기 요청에 따라 상기 버스에 엑세스하고, 상기 버스로부터 상기 응답을 수신하는 상기 공유 버퍼; 및
상기 공유 버퍼를 모니터링 하여 상기 버퍼 용량 및 상기 응답 대기 시간을 획득하는 모니터를 포함하는 컴퓨팅 시스템.processor;
at least one memory;
a bus connecting the processor and the at least one memory;
The workload of at least one core is divided based on the buffer capacity of the shared buffer and the response waiting time for the response received from the bus, a scaling factor is determined based on the divided workload, and based on the determined scaling factor DVFS controller that generates voltage control signals and clock control signals;
a power management unit that adjusts the size of the power supply voltage provided to the at least one core in response to the voltage control signal; and
A clock manager configured to adjust the frequency of a clock signal provided to the at least one core in response to the clock control signal,
The processor,
the at least one core configured to process instructions according to the magnitude of the power voltage and the frequency of the clock signal;
the shared buffer receiving a request from the at least one core, accessing the bus according to the request, and receiving the response from the bus; and
A computing system comprising a monitor that monitors the shared buffer to obtain the buffer capacity and the response waiting time.
상기 DVFS 컨트롤러는,
상기 적어도 하나의 코어의 워크로드를 구분하는 워크로드 구분 로직(workload classification logic);
상기 스케일링 인자를 결정하는 DVFS 관리자 모듈(DVFS governor module);
상기 결정된 스케일링 인자를 기초로 전원 전압 제어 신호를 생성하는 파워 관리부 드라이버; 및
상기 결정된 스케일링 인자를 기초로 주파수 제어 신호를 생성하는 클럭 관리부 드라이버를 더 포함하는 컴퓨팅 시스템.According to clause 8,
The DVFS controller is,
Workload classification logic that classifies the workload of the at least one core;
a DVFS governor module that determines the scaling factor;
a power management unit driver that generates a power supply voltage control signal based on the determined scaling factor; and
A computing system further comprising a clock management unit driver that generates a frequency control signal based on the determined scaling factor.
상기 모니터는,
상기 적어도 하나의 코어에 대한 식별자를 더 모니터링하고,
상기 DVFS 컨트롤러는,
상기 식별자에 따라 코어를 식별하고, 상기 버퍼 용량 및 상기 응답 대기 시간을 기초로, 상기 식별된 코어의 워크로드를 제1 워크로드 또는 제2 워크로드로 구분하고,
상기 제1 워크로드는,
상기 제2 워크로드보다 상기 적어도 하나의 메모리에 접근하는 요청을 더 많이 포함하는 것을 특징으로 하는 컴퓨팅 시스템.
In clause 8
The monitor is,
further monitor the identifier for the at least one core,
The DVFS controller is,
Identifying a core according to the identifier, and dividing the workload of the identified core into a first workload or a second workload based on the buffer capacity and the response waiting time,
The first workload is,
A computing system comprising more requests to access the at least one memory than the second workload.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311006729.5A CN117590925A (en) | 2022-08-12 | 2023-08-10 | Integrated circuit and method of operation thereof |
US18/447,576 US20240053809A1 (en) | 2022-08-12 | 2023-08-10 | Integrated circuit capable of performing dynamic voltage and frequency scaling operation based on workload and operating method thereof |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020220101594 | 2022-08-12 | ||
KR20220101594 | 2022-08-12 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20240022968A true KR20240022968A (en) | 2024-02-20 |
Family
ID=90056930
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020220170043A KR20240022968A (en) | 2022-08-12 | 2022-12-07 | Integrated circuit performing dynamic voltage and frequency scaling operation based on workload and operating method thereof |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR20240022968A (en) |
-
2022
- 2022-12-07 KR KR1020220170043A patent/KR20240022968A/en unknown
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11467991B2 (en) | Artificial intelligence-enabled management of storage media access | |
US11656675B2 (en) | Application processor performing a dynamic voltage and frequency scaling operation, computing system including the same, and operation method thereof | |
US11181971B2 (en) | System power management using communication bus protocols | |
US8656198B2 (en) | Method and apparatus for memory power management | |
KR101748747B1 (en) | Controlling configurable peak performance limits of a processor | |
US20160154449A1 (en) | System on chips for controlling power using workloads, methods of operating the same, and computing devices including the same | |
US10990153B2 (en) | Application processor and system on chip | |
CN111512266A (en) | System, apparatus, and method for handshake protocol for low power state transitions | |
US20190114109A1 (en) | Power efficient retraining of memory accesses | |
CN118202319A (en) | Performance management during power supply voltage drop | |
JP2022135937A (en) | Balancing power between discrete components in compute node | |
US12021523B2 (en) | Integrated circuit and computing system performing dynamic voltage and frequency scaling and method of operating integrated circuit | |
KR20240022968A (en) | Integrated circuit performing dynamic voltage and frequency scaling operation based on workload and operating method thereof | |
US20240053809A1 (en) | Integrated circuit capable of performing dynamic voltage and frequency scaling operation based on workload and operating method thereof | |
CN117590925A (en) | Integrated circuit and method of operation thereof | |
US10832132B2 (en) | Data transmission method and calculation apparatus for neural network, electronic apparatus, computer-readable storage medium and computer program product | |
US11927981B2 (en) | Integrated circuit, dynamic voltage and frequency scaling (DVFS) governor, and computing system including the same | |
KR20230000209A (en) | Integrated circuit performing dynamic voltage and frequency scaling operation and operating method thereof | |
US11709524B2 (en) | System-on-chip including dynamic power monitor and frequency controller and operating method thereof | |
US20240061492A1 (en) | Processor performing dynamic voltage and frequency scaling, electronic device including the same, and method of operating the same | |
KR20220157845A (en) | Integrated circuit, dvfs governor and computing system including them | |
KR20240088453A (en) | A system on chip and method of operation thereof |