KR20220157845A - Integrated circuit, dvfs governor and computing system including them - Google Patents

Integrated circuit, dvfs governor and computing system including them Download PDF

Info

Publication number
KR20220157845A
KR20220157845A KR1020210117198A KR20210117198A KR20220157845A KR 20220157845 A KR20220157845 A KR 20220157845A KR 1020210117198 A KR1020210117198 A KR 1020210117198A KR 20210117198 A KR20210117198 A KR 20210117198A KR 20220157845 A KR20220157845 A KR 20220157845A
Authority
KR
South Korea
Prior art keywords
processing device
signal
clock
integrated circuit
bus
Prior art date
Application number
KR1020210117198A
Other languages
Korean (ko)
Inventor
오정환
김선욱
김우일
조만휘
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to CN202210556012.7A priority Critical patent/CN115373506A/en
Priority to US17/749,681 priority patent/US11927981B2/en
Publication of KR20220157845A publication Critical patent/KR20220157845A/en

Links

Images

Classifications

    • 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/266Arrangements to supply power to external peripherals either directly from the computer or under computer control, e.g. supply of power through the communication port, computer controlled power-strips
    • 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/324Power saving characterised by the action undertaken by lowering clock frequency
    • 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

Disclosed is an integrated circuit, which counts parameters required for a dynamic voltage frequency scaling (DVFS) operation, a DVFS control device, and a computing system including the same. The integrated circuit according to an aspect of the technical concept of the present disclosure includes: an event block accessing a bus, which connects processing devices to each other, and outputting an event signal, based on data transmitted through the bus; a clock counter counting the number of clock signals received from a clock management unit; a plurality of performance counters respectively counting parameters used to calculate a workload, based on the event signal; an interface receiving an operation signal from the DVFS control device, which determines an operation frequency and an operation voltage of a processing device based on the workload, and transmitting the number of clock signals and the parameters to the DVFS control device; and a controller controlling operations of the event block, the clock counter, and the plurality of performance counters, based on the operation signal.

Description

집적 회로, DVFS 제어 장치 및 이들을 포함하는 컴퓨팅 시스템{INTEGRATED CIRCUIT, DVFS GOVERNOR AND COMPUTING SYSTEM INCLUDING THEM}Integrated circuit, DVFS control device and computing system including them

본 개시의 기술적 사상은 집적 회로에 관한 것으로서, 상세하게는 DVFS 동작에 필요한 파라미터를 카운트하는 집적 회로, DVFS 제어 장치 및 이들을 포함하는 컴퓨팅 시스템에 관한 것이다.The technical idea of the present disclosure relates to an integrated circuit, and more particularly, to an integrated circuit that counts parameters required for a DVFS operation, a DVFS control device, and a computing system including the same.

모바일 장치와 같은 컴퓨팅 시스템의 소형화가 진행됨에 따라, 전력 관리가 중요한 문제로 대두되고 있다. 특히 모바일 장치의 성능 향상을 위해 모바일 장치에 포함되는 프로세싱 장치의 개수가 증가함에 따라 전력 관리 기능의 복잡성이 증가하고 있다.As computing systems such as mobile devices are miniaturized, power management becomes an important issue. In particular, as the number of processing devices included in a mobile device increases to improve the performance of the mobile device, the complexity of the power management function increases.

한 예로서 모바일 장치의 어플리케이션 프로세서는 어플리케이션 프로세서에 내장된 프로세싱 장치의 워크로드에 따라 프로세싱 장치의 주파수와 전압을 조절하는 DVFS(Dynamic Voltage and Frequency Scaling) 동작을 통해 전압을 조절함으로써 전력을 관리할 수 있다.As an example, the application processor of the mobile device can manage power by adjusting the voltage through DVFS (Dynamic Voltage and Frequency Scaling) operation that adjusts the frequency and voltage of the processing unit according to the workload of the processing unit embedded in the application processor. have.

본 개시의 기술적 사상이 해결하려는 과제는, 보다 적은 공간을 차지하면서, 적은 전력을 소모하며 DVFS 동작을 수행할 수 있도록 하는 집적 회로, DVFS 제어 장치 및 이들을 포함하는 컴퓨팅 시스템을 제공하는 데 있다.An object to be solved by the technical idea of the present disclosure is to provide an integrated circuit, a DVFS control device, and a computing system including the same, which can perform a DVFS operation while taking up less space and consuming less power.

상기와 같은 목적을 달성하기 위하여, 본 개시의 기술적 사상의 일측면에 따른 집적 회로는 프로세싱 장치 간을 연결하는 버스에 액세스하여, 상기 버스를 통해 전송되는 데이터에 기초하여 이벤트 신호를 출력하는 이벤트 블록, 클럭 관리 회로로부터 수신하는 클럭 신호의 개수를 카운트하는 클럭 카운터, 상기 이벤트 신호에 기초하여 워크로드 연산에 이용되는 파라미터를 카운트하는 복수의 퍼포먼스 카운터들, 상기 워크로드에 기초하여 상기 프로세싱 장치의 동작 주파수 및 동작 전압을 결정하는 DVFS(Dynamic Voltage Frequency Scaling) 제어 장치로부터 동작 신호를 수신하며, 상기 클럭 신호의 개수와 상기 파라미터를 상기 DVFS 제어 장치로 송신하는 인터페이스 및 상기 동작 신호에 기초하여, 상기 이벤트 블록, 상기 클럭 카운터 및 상기 복수의 퍼포먼스 카운터들의 동작을 제어하는 제어기를 포함한다.In order to achieve the above object, an integrated circuit according to one aspect of the technical idea of the present disclosure accesses a bus connecting processing devices and outputs an event signal based on data transmitted through the bus. , a clock counter for counting the number of clock signals received from a clock management circuit, a plurality of performance counters for counting parameters used in workload calculation based on the event signal, and an operation of the processing device based on the workload An interface that receives an operating signal from a dynamic voltage frequency scaling (DVFS) control device that determines a frequency and an operating voltage and transmits the number of clock signals and the parameter to the DVFS control device, and based on the operating signal, the event block, a controller controlling operations of the clock counter and the plurality of performance counters.

상기와 같은 목적을 달성하기 위하여, 본 개시의 기술적 사상의 일측면에 따른 DVFS 제어 장치는 버스를 통해 전송되는 데이터에 기초하여 카운트 된 파라미터와 클럭 신호의 개수를 집적 회로로부터 수신하며, 상기 클럭 신호의 개수와 상기 파라미터에 기초하여 워크로드를 연산하는 프로세싱 장치 프로파일러, 상기 프로세싱 장치 프로파일러로부터 상기 워크로드를 수신하여 저장하는 메인 프로파일러, 상기 워크로드에 기초하여 프로세싱 장치의 동작 주파수 및 동작 전압을 결정하는 메인 컨트롤러 및 상기 동작 주파수 및 상기 동작 전압을 상기 프로세싱 장치로 송신하는 프로세싱 장치 드라이버를 포함한다. In order to achieve the above object, a DVFS control device according to an aspect of the technical idea of the present disclosure receives a counted parameter based on data transmitted through a bus and the number of clock signals from an integrated circuit, and the clock signal A processing device profiler that calculates a workload based on the number of and the parameters, a main profiler that receives and stores the workload from the processing device profiler, and an operating frequency and operating voltage of the processing device based on the workload. It includes a main controller that determines and a processing device driver that transmits the operating frequency and the operating voltage to the processing device.

상기와 같은 목적을 달성하기 위하여, 본 개시의 기술적 사상의 일측면에 따른 컴퓨팅 시스템은 제1 프로세싱 장치, 제2 프로세싱 장치, 상기 제1 프로세싱 장치와 상기 제2 프로세싱 장치 간을 연결하는 버스, 상기 버스에 연결되는 집적 회로, 상기 집적 회로와 연결되는 DVFS 제어 장치를 포함하고, 상기 집적 회로는 상기 버스에 액세스하여, 상기 버스를 통해 전송되는 데이터에 기초하여 이벤트 신호를 출력하는 이벤트 블록, 클럭 관리 회로로부터 수신하는 클럭 신호의 개수를 카운트 하는 클럭 카운터, 상기 이벤트 신호에 기초하여 워크로드 연산에 이용되는 파라미터를 카운트하는 복수의 퍼포먼스 카운터들, 상기 DVFS 제어 장치로부터 동작 신호를 수신하며, 상기 클럭 신호의 개수와 상기 파라미터를 상기 DVFS 제어 장치로 송신하는 인터페이스 및 상기 동작 신호에 기초하여, 상기 이벤트 블록, 상기 클럭 카운터 및 상기 복수의 퍼포먼스 카운터들의 동작을 제어하는 제어기를 포함하고, 상기 DVFS 제어 장치는 상기 클럭 신호의 개수와 상기 파라미터에 기초하여 상기 워크로드를 연산하는 프로세싱 장치 프로파일러, 상기 프로세싱 장치 프로파일러로부터 상기 워크로드를 수신하여 저장하는 메인 프로파일러, 상기 워크로드에 기초하여 프로세싱 장치의 동작 주파수 및 동작 전압을 결정하는 메인 컨트롤러 및 상기 동작 주파수 및 상기 동작 전압을 상기 제1 프로세싱 장치 및 상기 제2 프로세싱 장치로 송신하는 프로세싱 장치 드라이버를 포함한다.In order to achieve the above object, a computing system according to one aspect of the technical idea of the present disclosure includes a first processing device, a second processing device, a bus connecting the first processing device and the second processing device, the An integrated circuit connected to a bus, and a DVFS control device connected to the integrated circuit, wherein the integrated circuit accesses the bus and outputs an event signal based on data transmitted through the bus, and manages a clock. A clock counter counting the number of clock signals received from the circuit, a plurality of performance counters counting parameters used for workload operation based on the event signal, and receiving an operation signal from the DVFS control device, the clock signal and an interface for transmitting the number of and the parameter to the DVFS control device and a controller for controlling operations of the event block, the clock counter, and the plurality of performance counters based on the operation signal, wherein the DVFS control device comprises: A processing device profiler calculating the workload based on the number of clock signals and the parameter, a main profiler receiving and storing the workload from the processing device profiler, and operating the processing device based on the workload. and a main controller that determines a frequency and an operating voltage and a processing device driver that transmits the operating frequency and the operating voltage to the first processing device and the second processing device.

본 개시의 기술적 사상의 집적 회로, DVFS 제어 장치 및 이들을 포함하는 컴퓨팅 시스템에 따르면, 워크로드 연산에 이용되는 파라미터를 카운트하고, 파라미터에 기초하여 DVFS 동작을 수행함으로써, 보다 적은 공간을 차지하면서, 적은 전력을 소모하며 DVFS 동작을 수행할 수 있다.According to the integrated circuit, the DVFS control device, and the computing system including the technical features of the present disclosure, by counting parameters used for workload calculation and performing a DVFS operation based on the parameters, while taking up less space, DVFS operation can be performed while consuming power.

도 1은 본 개시의 예시적인 실시예에 따른 컴퓨팅 시스템을 나타내는 블록도이다.
도 2는 본 개시의 예시적인 실시예에 따른 집적 회로를 상세히 나타내는 블록도이다.
도 3은 본 개시의 예시적인 실시예에 따른 집적 회로의 동작을 나타내는 흐름도이다.
도 4는 본 개시의 예시적인 실시예에 따른 DVFS 제어 장치를 나타내는 블록도이다.
도 5 내지 도 7은 본 개시의 예시적인 실시예에 따른 DVFS 제어 장치에서 지연시간이 연산되는 방법을 설명하기 위한 그래프이다.
도 8은 본 개시의 예시적 실시예에 따른 DVFS 제어 장치의 동작을 나타내는 흐름도이다.
도 9는 본 개시의 예시적 실시예에 따른 컴퓨팅 시스템의 동작을 나타내는 흐름도이다.
도 10은 본 개시의 예시적인 실시예에 따른 집적 회로의 성능을 나타내는 표이다.
도 11은 본 개시의 예시적인 실시예에 따른 시스템을 나타내는 블록도이다.
도 12는 본 개시의 예시적인 실시예에 따른 어플리케이션 프로세서를 포함하는 통신 장치를 나타내는 블록도이다.
1 is a block diagram illustrating a computing system according to an exemplary embodiment of the present disclosure.
2 is a detailed block diagram of an integrated circuit according to an exemplary embodiment of the present disclosure.
3 is a flow diagram illustrating the operation of an integrated circuit according to an exemplary embodiment of the present disclosure.
Fig. 4 is a block diagram illustrating a DVFS control apparatus according to an exemplary embodiment of the present disclosure.
5 to 7 are graphs for explaining how a delay time is calculated in the DVFS control device according to an exemplary embodiment of the present disclosure.
8 is a flowchart illustrating an operation of a DVFS control device according to an exemplary embodiment of the present disclosure.
9 is a flowchart illustrating operation of a computing system according to an exemplary embodiment of the present disclosure.
10 is a table representing the performance of an integrated circuit according to an exemplary embodiment of the present disclosure.
11 is a block diagram illustrating a system according to an exemplary embodiment of the present disclosure.
12 is a block diagram illustrating a communication device including an application processor according to an exemplary embodiment of the present disclosure.

이하, 첨부한 도면을 참조하여 본 개시의 실시예에 대해 상세히 설명한다.Hereinafter, embodiments of the present disclosure will be described in detail with reference to the accompanying drawings.

도 1은 본 개시의 예시적인 실시예에 따른 컴퓨팅 시스템을 나타내는 블록도이다.1 is a block diagram illustrating a computing system according to an exemplary embodiment of the present disclosure.

도 1을 참조하면, 컴퓨팅 시스템(10)은 하나 이상의 집적 회로(100_1, 100_2, 100_3; 이하, 100), DVFS(Dynamic Voltage and Frequency Scaling) 제어 장치(200), 복수의 프로세싱 장치들(300_1, 300_2, 300_3, 300_4; 이하, 300) 및 하나 이상의 버스(400_1, 400_2, 400_3; 이하, 400)를 포함할 수 있다.Referring to FIG. 1 , a computing system 10 includes one or more integrated circuits 100_1, 100_2, and 100_3 (hereinafter referred to as 100), a dynamic voltage and frequency scaling (DVFS) control device 200, a plurality of processing devices 300_1, 300_2, 300_3, 300_4 (hereinafter referred to as 300) and one or more buses 400_1, 400_2, and 400_3 (hereinafter referred to as 400).

컴퓨팅 시스템(10)은 다양한 종류의 데이터 처리 장치에 해당될 수 있으며, 일 예로서 모바일 장치에 해당할 수 있다. 또한, 컴퓨팅 시스템(10)은 랩탑 컴퓨터, 이동 전화기, 스마트폰, 태블릿 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)에 해당될 수 있다. 일부 실시 예들에서, 컴퓨팅 시스템(10)은 시스템 온 칩(System on Chip, SoC)으로 구현될 수 있다.The computing system 10 may correspond to various types of data processing devices, and may correspond to a mobile device as an example. In addition, the computing system 10 may include a laptop computer, a mobile phone, a smart phone, a tablet PC, a personal digital assistant (PDA), an enterprise digital assistant (EDA), a digital still camera, and a digital video camera. ), PMP (portable multimedia player), PND (personal navigation device or portable navigation device), handheld game console, mobile internet device (MID), wearable computer, internet of things, It may correspond to an IoT device, an internet of everything (IoE) device, or an e-book In some embodiments, the computing system 10 may include a System on Chip, SoC) can be implemented.

우선, 복수의 프로세싱 장치들(300)은 컴퓨팅 시스템(10)에서 미리 설정된 기능을 수행할 수 있다. 예를 들어, 프로세싱 장치는 CPU(Central Processing Unit), GPU(Graphic Processing Unit), MIF(Memory Interface), NPU(Neural Processing Unit) 또는 ISP(Image Signal Processor)일 수 있다. 한편, 도 1은 복수의 프로세싱 장치들(300)로 총 네 개를 도시하고 있으나, 컴퓨팅 시스템(10)에 포함되는 복수의 프로세싱 장치들(300)의 개수는 이에 제한되지 않는다.First, the plurality of processing devices 300 may perform preset functions in the computing system 10 . For example, the processing unit may be a Central Processing Unit (CPU), Graphic Processing Unit (GPU), Memory Interface (MIF), Neural Processing Unit (NPU), or Image Signal Processor (ISP). Meanwhile, although FIG. 1 shows a total of four processing devices 300, the number of processing devices 300 included in the computing system 10 is not limited thereto.

하나 이상의 버스(400)는 복수의 프로세싱 장치들(300) 간을 연결할 수 있다. 이에 따라 복수의 프로세싱 장치들(300)은 하나 이상의 버스(400)를 통해 데이터를 송수신할 수 있다. 하나 이상의 버스(400)의 표준 규격으로, 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), CHI(Coherent Hub Interface) 등이 포함될 수 있다. 이외에도, 소닉사(SONICs Inc.)의 uNetwork나 IBM의 CoreConnect, OCP-IP의 오픈 코어 프로토콜(Open Core Protocol) 등 다른 타입의 프로토콜이 적용되어도 무방하다.One or more buses 400 may connect the plurality of processing devices 300 to each other. Accordingly, the plurality of processing devices 300 may transmit and receive data through one or more buses 400 . As a standard specification of one or more buses 400, an Advanced Microcontroller Bus Architecture (AMBA) protocol from Advanced RISC Machine (ARM) may be applied. Bus types of the AMBA protocol include Advanced High-Performance Bus (AHB), Advanced Peripheral Bus (APB), Advanced eXtensible Interface (AXI), AXI4, AXI Coherency Extensions (ACE), and Coherent Hub Interface (CHI). In addition, other types of protocols such as SONICs Inc.'s uNetwork, IBM's CoreConnect, and OCP-IP's Open Core Protocol may be applied.

하나 이상의 집적 회로(100)는 각각 하나 이상의 버스(400)와 연결될 수 있다. 하나 이상의 집적 회로(100)는 하나 이상의 버스(400)에 액세스하여, 하나 이상의 버스(400)를 통해 전송되는 데이터를 읽을 수 있다. 그리고 하나 이상의 집적 회로(100)는 읽은 데이터에 기초하여 연산을 수행할 수 있다.One or more integrated circuits 100 may be connected to one or more buses 400 respectively. One or more integrated circuits 100 may access one or more buses 400 and read data transmitted through one or more buses 400 . And one or more integrated circuits 100 may perform an operation based on the read data.

DVFS 제어 장치(200)는 하나 이상의 집적 회로(100)로부터 수신한 데이터에 기초하여, 복수의 프로세싱 장치들(300)의 동작 전압 및 동작 주파수를 조절할 수 있다. The DVFS control device 200 may adjust operating voltages and operating frequencies of the plurality of processing devices 300 based on data received from one or more integrated circuits 100 .

DVFS 제어 장치(200)는 DVFS 기능과 동작을 수행할 수 있는 하드웨어를 의미하거나 DVFS 기능과 동작을 수행할 수 있는 컴퓨터 프로그램 코드를 의미할 수 있다. 다만, 이에 한정되지 않으며 DVFS 기능과 동작을 수행시킬 수 있는 컴퓨터 프로그램 코드가 탑재된 전자적 기록 매체, 예컨대 프로세서를 의미할 수 있다. 즉, DVFS 제어 장치(200)는 본 발명의 기술적 사상을 수행하기 위한 하드웨어 및/또는 하드웨어를 구동하기 위한 소프트웨어의 기능적 및/또는 구조적 결합을 의미할 수 있다.The DVFS control device 200 may refer to hardware capable of performing DVFS functions and operations or may refer to computer program codes capable of performing DVFS functions and operations. However, it is not limited thereto and may refer to an electronic recording medium, for example, a processor, on which a computer program code capable of performing DVFS functions and operations is loaded. That is, the DVFS control device 200 may mean a functional and/or structural combination of hardware and/or software for driving the hardware to implement the technical concept of the present invention.

도 2는 본 개시의 예시적인 실시예에 따른 집적 회로를 상세히 나타내는 블록도이다.2 is a detailed block diagram of an integrated circuit according to an exemplary embodiment of the present disclosure.

도 2를 참조하면, 본 개시의 일 실시예에 따른 컴퓨팅 시스템(20)은 집적 회로(100), DVFS 제어 장치(200), 제1 프로세싱 장치(300_1), 제2 프로세싱 장치(300_2), 버스(400) 및 클럭 관리 회로(Clock Management Unit; CMU)(500)을 포함할 수 있다.Referring to FIG. 2 , a computing system 20 according to an embodiment of the present disclosure includes an integrated circuit 100, a DVFS control device 200, a first processing device 300_1, a second processing device 300_2, a bus 400 and a clock management unit (CMU) 500.

집적 회로(100)는 이벤트 블록(110), 클럭 카운터(120), 복수의 퍼포먼스 카운터들(130), 인터페이스(140) 및 제어기(150)를 포함할 수 있다. 그리고 집적 회로(100)는 플립 플롭(160), 클럭 게이팅 블록(170) 및 레지스터(180)를 더 포함할 수 있다.The integrated circuit 100 may include an event block 110 , a clock counter 120 , a plurality of performance counters 130 , an interface 140 and a controller 150 . Also, the integrated circuit 100 may further include a flip flop 160, a clock gating block 170, and a register 180.

이벤트 블록(110)은 제1 프로세싱 장치(300_1)와 제2 프로세싱 장치(300_2) 간을 연결하는 버스(400)에 액세스할 수 있다. 이벤트 블록(110)은 버스(400)를 통해 전송되는 데이터를 읽을 수 있다. 이벤트 블록(110)은 버스(400)를 통해 전송되는 데이터에 기초하여 이벤트 신호를 출력할 수 있다.The event block 110 may access the bus 400 connecting the first processing device 300_1 and the second processing device 300_2. The event block 110 may read data transmitted through the bus 400 . The event block 110 may output an event signal based on data transmitted through the bus 400 .

이벤트 신호는 버스(400)를 통해 전송되는 데이터에 기초하여 설정되는 신호로, 버스(400)를 통해 전송되는 데이터의 내용에 따라 다르게 설정될 수 있다.The event signal is a signal set based on data transmitted through the bus 400, and may be set differently according to the contents of the data transmitted through the bus 400.

이벤트 신호는 후술되는 파라미터를 카운트하기 위해 필수적인 신호만을 포함할 수 있다. 본 개시의 일 실시예에서 이벤트 신호는 전송 활성화 신호, 다중 아웃스탠딩(Multiple Outstanding) 신호, 데이터 읽기 신호, 데이터 쓰기 신호 및 요청 신호를 포함할 수 있다.The event signal may include only signals necessary for counting parameters to be described later. In an embodiment of the present disclosure, the event signal may include a transmission activation signal, a multiple outstanding signal, a data read signal, a data write signal, and a request signal.

전송 활성화 신호는 버스(400)를 통해 데이터가 전송 중인 것을 나타내는 신호일 수 있다. 예를 들어, 이벤트 블록(110)은 버스(400)를 통해 데이터가 전송 중이면, 전송 활성화 신호를 1로 설정할 수 있다. 반대로, 이벤트 블록(110)은 버스(400)를 통해 데이터가 전송 중이지 않으면, 전송 활성화 신호를 0으로 설정할 수 있다.The transmission activation signal may be a signal indicating that data is being transmitted through the bus 400 . For example, the event block 110 may set a transmission enable signal to 1 when data is being transmitted through the bus 400 . Conversely, the event block 110 may set the transmission activation signal to 0 when data is not being transmitted through the bus 400 .

다중 아웃스탠딩 신호는 요청 데이터의 전송 여부 및 요청 데이터에 대한 응답 데이터의 전송 여부를 나타내는 신호일 수 있다. 다중 아웃스탠딩 신호는 버스(400)를 통해 요청 데이터 및 응답 데이터가 전송됨에 따라 변할 수 있다. 예를 들어, 이벤트 블록(110)은 버스(400)를 통해 요청 데이터가 전송되면, 다중 아웃스탠딩 신호를 1만큼 증가시킬 수 있다. 반대로, 이벤트 블록(110)은 버스(400)를 통해 응답 데이터가 모두 전송되면, 다중 아웃스탠딩 신호를 1만큼 감소시킬 수 있다.The multi-outstanding signal may be a signal indicating whether request data is transmitted and whether response data to the request data is transmitted. Multiple outstanding signals may change as request data and response data are transmitted over the bus 400 . For example, the event block 110 may increase the multi-outstanding signal by 1 when request data is transmitted through the bus 400 . Conversely, the event block 110 may decrease the multi-outstanding signal by 1 when all response data is transmitted through the bus 400 .

데이터 읽기 신호는 버스(400)를 통해 읽기 요청 데이터에 대응되는 읽기 응답 데이터가 전송된 것을 나타내는 신호일 수 있다. 예를 들어, 이벤트 블록(110)은 읽기 응답 데이터가 전송되면, 데이터 읽기 신호를 발생시킬 수 있다. 반대로, 이벤트 블록(110)은 읽기 응답 데이터가 전송되지 않으면, 데이터 읽기 신호를 발생시키지 않을 수 있다.The data read signal may be a signal indicating that read response data corresponding to the read request data is transmitted through the bus 400 . For example, the event block 110 may generate a data read signal when read response data is transmitted. Conversely, the event block 110 may not generate a data read signal if read response data is not transmitted.

데이터 쓰기 신호는 버스(400)를 통해 쓰기 요청 데이터에 대응되는 쓰기 응답 데이터가 전송된 것을 나타내는 신호일 수 있다. 예를 들어, 이벤트 블록(110)은 쓰기 응답 데이터가 전송되면, 데이터 쓰기 신호를 발생시킬 수 있다. 반대로, 이벤트 블록(110)은 쓰기 응답 데이터가 전송되지 않으면, 데이터 쓰기 신호를 발생시키지 않을 수 있다.The write data signal may be a signal indicating that write response data corresponding to the write request data is transmitted through the bus 400 . For example, the event block 110 may generate a data write signal when write response data is transmitted. Conversely, the event block 110 may not generate a data write signal if write response data is not transmitted.

요청 신호는 읽기 요청 데이터 또는 쓰기 요청 데이터가 전송된 것을 나타내는 신호일 수 있다. 예를 들어, 이벤트 블록(110)은 읽기 요청 데이터 또는 쓰기 요청 데이터가 전송되면, 요청 신호를 발생시킬 수 있다. 반대로, 이벤트 블록(110)은 읽기 요청 데이터 및 쓰기 요청 데이터가 전송되지 않으면, 요청 신호를 발생시키지 않을 수 있다.The request signal may be a signal indicating that read request data or write request data is transmitted. For example, the event block 110 may generate a request signal when read request data or write request data is transmitted. Conversely, the event block 110 may not generate a request signal if read request data and write request data are not transmitted.

이벤트 블록(110)은 제1 프로세싱 장치(300_1)와 제2 프로세싱 장치(300_2) 간의 통신에 이용되는 프로토콜에 기초하여 이벤트 신호를 출력할 수 있다. 즉, 이벤트 블록(110)은 제1 프로세싱 장치(300_1)와 제2 프로세싱 장치(300_2) 간을 연결하는 버스(400)에 적용된 프로토콜에 기초하여 이벤트 신호를 출력할 수 있다.The event block 110 may output an event signal based on a protocol used for communication between the first processing device 300_1 and the second processing device 300_2. That is, the event block 110 may output an event signal based on a protocol applied to the bus 400 connecting the first processing device 300_1 and the second processing device 300_2.

본 개시의 일 실시예에서 이벤트 블록(110)은 제1 프로세싱 장치(300_1)와 제2 프로세싱 장치(300_2) 간의 통신에 이용되는 프로토콜이 연산 부호 프로토콜이면, 버스를 통해 전송되는 데이터에 포함된 연산 부호에 기초하여 다중 아웃스탠딩 신호를 설정하여 출력할 수 있다.In an embodiment of the present disclosure, the event block 110 may perform operations included in data transmitted through a bus when a protocol used for communication between the first processing device 300_1 and the second processing device 300_2 is an operation code protocol. Based on the code, multiple outstanding signals may be set and output.

연산 부호 프로토콜은 AMBA 프로토콜의 버스 타입 중 CHI 프로토콜 버스 타입과 같이 연산 부호(opcode)를 이용하여 데이터의 송수신이 이루어지는 프로토콜을 의미할 수 있다. 이때 연산 부호는 버스(400)를 통해 전송되는 데이터의 전단에 결합하여 데이터와 함께 전송될 수 있으며, 데이터의 종류를 나타낼 수 있다.The operation code protocol may refer to a protocol in which data is transmitted and received using an operation code (opcode), such as a CHI protocol bus type among bus types of the AMBA protocol. At this time, the operation code may be coupled to the front end of the data transmitted through the bus 400 and transmitted together with the data, and may indicate the type of data.

연산 부호가 데이터 읽기 요청 또는 데이터 쓰기 요청을 의미하는 연산 부호이면, 이벤트 블록(110)은 버스(400)를 통해 읽기 요청 데이터 또는 쓰기 요청 데이터가 전송되면 다중 아웃스탠딩 신호를 1만큼 증가시키고, 이벤트 블록(110)은 버스(400)를 통해 읽기 요청 데이터 또는 쓰기 요청 데이터에 대한 응답 데이터의 첫번째 데이터가 전송되면 다중 아웃스탠딩 신호를 1만큼 감소시킬 수 있다.If the operation code is an operation code indicating a data read request or data write request, the event block 110 increases the multi-outstanding signal by 1 when the read request data or write request data is transmitted through the bus 400, and Block 110 may decrease the multi-outstanding signal by 1 when first data of response data for read request data or write request data is transmitted through the bus 400 .

또한, 연산 부호가 원자적 트랜잭션(Atomic Transaction)을 의미하는 연산 부호이면, 이벤트 블록(110)은 버스(400)를 통해 요청 데이터가 전송되면 다중 아웃스탠딩 신호를 1만큼 증가시키고, 이벤트 블록(110)은 버스(400)를 통해 요청 데이터에 대응되는 읽기 응답 데이터 및 쓰기 응답 데이터 중 어느 하나가 전송되면 다중 아웃스탠딩 신호를 1만큼 감소시킬 수 있다.In addition, if the operation code is an operation code meaning atomic transaction, the event block 110 increases the multi-outstanding signal by 1 when the request data is transmitted through the bus 400, and the event block 110 ) may decrease the multi-outstanding signal by 1 when any one of read response data and write response data corresponding to the request data is transmitted through the bus 400 .

또한, 연산 부호가 캐시 유지 연산(Cache Maintenance Operation; CMO)을 의미하는 연산 부호이면, 이벤트 블록(110)은 버스(400)를 통해 읽기 요청 데이터 또는 쓰기 요청 데이터가 전송되면 다중 아웃스탠딩 신호를 1만큼 증가시키고, 이벤트 블록(110)은 버스(400)를 통해 읽기 응답 데이터, 쓰기 응답 데이터 또는 데이터를 포함하지 않는 응답이 전송되면 다중 아웃스탠딩 신호를 1만큼 감소시킬 수 있다.In addition, if the operation code indicates a cache maintenance operation (CMO), the event block 110 generates multiple outstanding signals by 1 when read request data or write request data is transmitted through the bus 400. and the event block 110 may decrease the multi-outstanding signal by 1 when read response data, write response data, or a response not including data is transmitted through the bus 400 .

본 개시의 일 실시예에서 이벤트 블록(110)은 제1 프로세싱 장치(300_1)와 제2 프로세싱 장치(300_2) 간의 통신에 이용되는 프로토콜이 연산 부호 프로토콜이 아니면, 버스를 통해 전송되는 데이터에 포함된 연산 부호에 관계없이 다중 아웃스탠딩 신호를 설정하여 출력할 수 있다.In an embodiment of the present disclosure, the event block 110 may be included in data transmitted through a bus if the protocol used for communication between the first processing device 300_1 and the second processing device 300_2 is not an operation code protocol. Regardless of operation codes, multiple outstanding signals can be set and output.

이때 이벤트 블록(110)은 버스(400)를 통해 요청 데이터가 전송되면, 다중 아웃스탠딩 신호를 1만큼 증가시킬 수 있다. 반대로, 이벤트 블록(110)은 버스(400)를 통해 응답 데이터가 모두 전송되면, 다중 아웃스탠딩 신호를 1만큼 감소시킬 수 있다.At this time, the event block 110 may increase the multi-outstanding signal by 1 when request data is transmitted through the bus 400 . Conversely, the event block 110 may decrease the multi-outstanding signal by 1 when all response data is transmitted through the bus 400 .

클럭 카운터(120)는 클럭 관리 회로(500)로부터 수신하는 클럭 신호의 개수를 카운트할 수 있다. 본 개시의 일 실시예에서, 클럭 카운터(120)는 클럭 신호가 0에서 1로 전환될 때마다, 클럭 신호의 개수를 카운트하여 증가시킬 수 있다. 본 개시의 다른 실시예에서, 클럭 카운터(120)는 클럭 신호가 1에서 0으로 전환될 때마다, 클럭 신호의 개수를 카운트하여 증가시킬 수 있다.The clock counter 120 may count the number of clock signals received from the clock management circuit 500 . In one embodiment of the present disclosure, the clock counter 120 may count and increment the number of clock signals whenever the clock signal transitions from 0 to 1. In another embodiment of the present disclosure, the clock counter 120 may count and increment the number of clock signals whenever the clock signal transitions from 1 to 0.

복수의 퍼포먼스 카운터들(130_1, 130_2, 130_3, 130_4; 이하, 130)은 이벤트 신호에 기초하여 워크로드 연산에 이용되는 파라미터를 카운트할 수 있다.The plurality of performance counters 130_1, 130_2, 130_3, and 130_4 (hereinafter referred to as 130) may count parameters used for workload operation based on the event signal.

파라미터는 후술되는 워크로드의 연산에 필수적인 파라미터만을 포함할 수 있다. 본 개시의 일 실시예에서 파라미터는 액티브 시간, 데이터 전송 횟수, 전송 요청 횟수 및 다중 아웃스탠딩 누적 값을 포함할 수 있다. 액티브 시간은 버스(400)를 통해 데이터의 전송이 일어나는 시간을 의미할 수 있다. 데이터 전송 횟수는 버스(400)를 통해 데이터의 전송이 이루어진 횟수를 의미할 수 있다. 전송 요청 횟수는 버스(400)를 통해 데이터 요청이 이루어진 횟수를 의미할 수 있다. 다중 아웃스탠딩 누적 값은 이벤트 블록(110)에 의해 생성된 다중 아웃스탠딩 신호가 1인 총 시간을 의미할 수 있다.Parameters may include only parameters essential to the operation of a workload described below. In an embodiment of the present disclosure, parameters may include an active time, a data transmission number, a transmission request number, and a multi-outstanding accumulated value. The active time may mean a time during which data is transmitted through the bus 400 . The number of times of data transmission may mean the number of times data is transmitted through the bus 400 . The number of transmission requests may mean the number of times data requests are made through the bus 400 . The multi-outstanding cumulative value may mean the total time that the multi-outstanding signal generated by the event block 110 is 1.

복수의 퍼포먼스 카운터들(130)은 제1 퍼포먼스 카운터(130_1), 제2 퍼포먼스 카운터(130_2), 제3 퍼포먼스 카운터(130_3) 및 제4 퍼포먼스 카운터(130_4)를 포함할 수 있다.The plurality of performance counters 130 may include a first performance counter 130_1, a second performance counter 130_2, a third performance counter 130_3, and a fourth performance counter 130_4.

제1 퍼포먼스 카운터(130_1)는 액티브 시간을 카운트할 수 있다. 제1 퍼포먼스 카운터(130_1)는 이벤트 신호에 포함된 전송 활성화 신호 또는 다중 아웃스탠딩 신호에 기초하여 액티브 시간을 카운트할 수 있다.The first performance counter 130_1 may count the active time. The first performance counter 130_1 may count the active time based on a transmission activation signal or multiple outstanding signals included in the event signal.

이때 제1 퍼포먼스 카운터(130_1)는 제1 프로세싱 장치(300_1)와 제2 프로세싱 장치(300_2) 간의 통신에 이용되는 프로토콜에 기초하여, 액티브 시간을 카운트할 수 있다.In this case, the first performance counter 130_1 may count the active time based on a protocol used for communication between the first processing device 300_1 and the second processing device 300_2.

본 개시의 일 실시예에서, 제1 퍼포먼스 카운터(130_1)는 제1 프로세싱 장치(300_1)와 제2 프로세싱 장치(300_2) 간의 통신에 이용되는 프로토콜이 연산 부호 프로토콜이 아니면, 전송 활성화 신호가 1일 때, 액티브 시간을 카운트하여 증가시킬 수 있다. 그리고 제1 퍼포먼스 카운터(130_1)는 제1 프로세싱 장치(300_1)와 제2 프로세싱 장치(300_2) 간의 통신에 이용되는 프로토콜이 연산 부호 프로토콜이면, 다중 아웃스탠딩 신호가 1일 때, 액티브 시간을 카운트하여 증가시킬 수 있다.In one embodiment of the present disclosure, the first performance counter 130_1 determines that if the protocol used for communication between the first processing device 300_1 and the second processing device 300_2 is not an operation code protocol, the transmission enable signal is 1 day. At this time, the active time can be counted and increased. And, if the protocol used for communication between the first processing device 300_1 and the second processing device 300_2 is an operation code protocol, the first performance counter 130_1 counts the active time when the multi-outstanding signal is 1, can increase

제2 퍼포먼스 카운터(130_2)는 데이터 전송 횟수를 카운트할 수 있다. 제2 퍼포먼스 카운터(130_2)는 이벤트 신호에 포함된 데이터 읽기 신호 및 데이터 쓰기 신호의 개수를 데이터 전송 횟수로 카운트할 수 있다.The second performance counter 130_2 may count the number of data transmissions. The second performance counter 130_2 may count the number of data read signals and data write signals included in the event signal as the number of data transmissions.

본 개시의 일 실시예에서, 제2 퍼포먼스 카운터(130_2)는 데이터 읽기 신호 또는 데이터 쓰기 신호가 발생하면, 데이터 전송 횟수를 카운트하여 증가시킬 수 있다.In an embodiment of the present disclosure, the second performance counter 130_2 may count and increase the number of data transmissions when a data read signal or data write signal is generated.

제3 퍼포먼스 카운터(130_3)는 전송 요청 횟수를 카운트할 수 있다. 제3 퍼포먼스 카운터(130_3)는 이벤트 신호에 포함된 요청 신호의 개수를 전송 요청 횟수로 카운트할 수 있다.The third performance counter 130_3 may count the number of transmission requests. The third performance counter 130_3 may count the number of request signals included in the event signal as the number of transmission requests.

본 개시의 일 실시예에서, 제3 퍼포먼스 카운터(130_3)는 요청 신호가 발생하면, 전송 요청 횟수를 카운트하여 증가시킬 수 있다.In an embodiment of the present disclosure, the third performance counter 130_3 may count and increase the number of transmission requests when a request signal is generated.

제4 퍼포먼스 카운터(130_4)는 다중 아웃스탠딩 누적 값을 카운트할 수 있다. 제4 퍼포먼스 카운터(130_4)는 이벤트 신호에 포함된 다중 아웃스탠딩 신호에 기초하여 다중 아웃스탠딩 누적 값을 카운트할 수 있다.The fourth performance counter 130_4 may count multiple outstanding accumulated values. The fourth performance counter 130_4 may count a multi-outstanding accumulated value based on the multi-outstanding signal included in the event signal.

본 개시의 일 실시예에서, 제4 퍼포먼스 카운터(130_4)는 다중 아웃스탠딩 신호가 1일 때, 다중 아웃스탠딩 누적 값을 카운트하여 증가시킬 수 있다.In an embodiment of the present disclosure, the fourth performance counter 130_4 may count and increase the multi-outstanding accumulated value when the multi-outstanding signal is 1.

인터페이스(140)는 워크로드에 기초하여 제1 프로세싱 장치(300_1)와 제2 프로세싱 장치(300_2)의 동작 주파수 및 동작 전압을 결정하는 DVFS 제어 장치(200)로부터 동작 신호를 수신할 수 있다. 동작 신호는 집적 회로(100)의 동작을 제어하는 신호로, 집적 회로(100)를 활성화 시키는 활성화 신호, 집적 회로(100)를 비활성화 시키는 비활성화 신호 등을 포함할 수 있다. 또한, 동작 신호는 클럭 카운터(120) 및 복수의 퍼포먼스 카운터들(130)에 인터럽트(interrupt)가 발생하였는지 판단하는 기준이 되는 값인 인터럽트 기준 값을 포함할 수 있다.The interface 140 may receive an operating signal from the DVFS control device 200 that determines operating frequencies and operating voltages of the first processing device 300_1 and the second processing device 300_2 based on the workload. The operation signal is a signal that controls the operation of the integrated circuit 100 and may include an activation signal for activating the integrated circuit 100 and a deactivation signal for inactivating the integrated circuit 100 . Also, the operation signal may include an interrupt reference value, which is a reference value for determining whether an interrupt occurs in the clock counter 120 and the plurality of performance counters 130 .

그리고 인터페이스(140)는 클럭 신호의 개수와 파라미터를 DVFS 제어 장치(200)로 송신할 수 있다. 즉, 인터페이스(140)는 클럭 카운터(120) 및 복수의 퍼포먼스 카운터들(130)에 의해 카운트 된 값들을 DVFS 제어 장치(200)로 송신할 수 있다.Also, the interface 140 may transmit the number of clock signals and parameters to the DVFS control device 200 . That is, the interface 140 may transmit values counted by the clock counter 120 and the plurality of performance counters 130 to the DVFS control device 200 .

제어기(150)는 동작 신호에 기초하여 이벤트 블록(110), 클럭 카운터(120) 및 복수의 퍼포먼스 카운터들(130)의 동작을 제어할 수 있다.The controller 150 may control the operation of the event block 110 , the clock counter 120 , and the plurality of performance counters 130 based on the operation signal.

제어기(150)는 동작 신호에 기초하여 이벤트 블록(110), 클럭 카운터(120) 및 복수의 퍼포먼스 카운터들(130)을 활성화 또는 비활성화할 수 있다.The controller 150 may activate or deactivate the event block 110, the clock counter 120, and the plurality of performance counters 130 based on the operation signal.

본 개시의 일 실시예에서, 동작 신호가 활성화 신호이면, 제어기(150)는 클럭 카운터(120)가 클럭 신호의 개수를 카운트하고, 복수의 퍼포먼스 카운터들(130)들이 파라미터를 카운트하도록 제어할 수 있다. 반대로, 동작 신호가 비활성화 신호이면, 제어기(150)는 클럭 카운터(120) 및 복수의 퍼포먼스 카운터들(130)들이 동작을 중단하도록 제어할 수 있다. In one embodiment of the present disclosure, if the operation signal is an activation signal, the controller 150 may control the clock counter 120 to count the number of clock signals and the plurality of performance counters 130 to count parameters. have. Conversely, if the operation signal is an inactivation signal, the controller 150 may control the clock counter 120 and the plurality of performance counters 130 to stop their operation.

또한, 제어기(150)는 동작 신호에 기초하여 클럭 카운터(120) 및 복수의 퍼포먼스 카운터들(130)에 인터럽트(interrupt)가 발생하였는지 판단할 수 있다.Also, the controller 150 may determine whether an interrupt occurs in the clock counter 120 and the plurality of performance counters 130 based on the operation signal.

본 개시의 일 실시예에서, 제어기(150)는 클럭 카운터(120) 및 복수의 퍼포먼스 카운터들(130)에 의해 카운트 된 값들 중 어느 하나와 인터럽트 기준 값을 비교하여, 인터럽트 발생 여부를 판단할 수 있다. 예를 들어, 제어기(150)는 클럭 카운터(120)에 의해 카운트 된 클럭 신호의 개수가 인터럽트 기준 값을 초과하면, 클럭 카운터(120)에 인터럽트가 발생한 것으로 판단할 수 있다.In one embodiment of the present disclosure, the controller 150 may compare any one of the values counted by the clock counter 120 and the plurality of performance counters 130 with an interrupt reference value to determine whether an interrupt has occurred. have. For example, the controller 150 may determine that an interrupt occurs in the clock counter 120 when the number of clock signals counted by the clock counter 120 exceeds an interrupt reference value.

플립 플롭(160)은 이벤트 블록(110)과 복수의 퍼포먼스 카운터들(130) 사이에 연결될 수 있다. 플립 플롭(160)은 이벤트 신호를 복수의 퍼포먼스 카운터들(130)로 샘플링하여 전달할 수 있다. The flip flop 160 may be connected between the event block 110 and the plurality of performance counters 130 . The flip flop 160 may sample and transfer the event signal to the plurality of performance counters 130 .

클럭 게이팅 블록(170)은 클럭 신호의 수신 여부를 결정할 수 있다. 본 개시의 일 실시예에서 클럭 게이팅 블록(170)은 인터페이스(140)를 통해 활성화 신호가 수신된 경우, 클럭 신호를 수신할 수 있다. 반대로, 클럭 게이팅 블록(170)은 인터페이스(140)를 통해 비활성화 신호가 수신된 경우, 클럭 신호를 수신하지 않을 수 있다.The clock gating block 170 may determine whether a clock signal is received. In one embodiment of the present disclosure, the clock gating block 170 may receive a clock signal when an activation signal is received through the interface 140 . Conversely, the clock gating block 170 may not receive a clock signal when an inactivation signal is received through the interface 140 .

클럭 게이팅 블록(170)은 클럭 신호를 클럭 카운터(120) 및 복수의 퍼포먼스 카운터들(130)로 전송할 수 있다. 이때 도면 상에는 클럭 게이팅 블록(170)이 클럭 카운터(120)에만 클럭 신호를 전송하는 것으로 도시되어 있으나, 이에 한정되는 것은 아니다. 즉, 클럭 게이팅 블록(170)은 집적 회로(100)에 포함된 다른 블록들로 클럭 신호를 전송할 수 있다.The clock gating block 170 may transmit clock signals to the clock counter 120 and the plurality of performance counters 130 . In this case, the clock gating block 170 is illustrated as transmitting a clock signal only to the clock counter 120, but is not limited thereto. That is, the clock gating block 170 may transmit a clock signal to other blocks included in the integrated circuit 100 .

레지스터(180)는 동작 신호, 클럭 신호의 개수 및 파라미터를 저장할 수 있다. 즉, 레지스터(180)는 클럭 카운터(120)에 의해 카운트 된 클럭 신호의 개수, 복수의 카운터들(130)들에 의해 카운트 된 파라미터를 저장할 수 있다. 이에 따라 인터페이스(140)는 레지스터(180)로부터 클럭 신호의 개수와 파라미터를 독출하여 DVFS 제어 장치(200)로 송신할 수 있다.The register 180 may store operation signals, the number of clock signals, and parameters. That is, the register 180 may store the number of clock signals counted by the clock counter 120 and parameters counted by the plurality of counters 130 . Accordingly, the interface 140 may read the number of clock signals and parameters from the register 180 and transmit them to the DVFS control device 200 .

도 3은 본 개시의 예시적인 실시예에 따른 집적 회로의 동작을 나타내는 흐름도이다.3 is a flow diagram illustrating the operation of an integrated circuit according to an exemplary embodiment of the present disclosure.

도 3을 참조하면, S310 단계에서, 이벤트 블록(110)은 이벤트 신호를 출력할 수 있다. 즉, 이벤트 블록(110)은 제1 프로세싱 장치(300_1)와 제2 프로세싱 장치(300_2) 간을 연결하는 버스(400)를 통해 전송되는 데이터에 기초하여 이벤트 신호를 출력할 수 있다.Referring to FIG. 3 , in step S310, the event block 110 may output an event signal. That is, the event block 110 may output an event signal based on data transmitted through the bus 400 connecting the first processing device 300_1 and the second processing device 300_2.

S320 단계에서, 클럭 카운터(120)는 클럭 신호의 개수를 카운트할 수 있다. 즉, 클럭 카운터(120)는 클럭 관리 회로(500)로부터 수신하는 클럭 신호의 개수를 카운트할 수 있다.In step S320, the clock counter 120 may count the number of clock signals. That is, the clock counter 120 may count the number of clock signals received from the clock management circuit 500 .

S330 단계에서, 복수의 퍼포먼스 카운터들(130)들은 이벤트 신호에 기초하여 파라미터를 카운트할 수 있다. 즉, 복수의 퍼포먼스 카운터들(130)은 이벤트 블록(110)으로부터 수신하는 이벤트 신호에 기초하여 워크로드 연산에 이용되는 파라미터를 카운트할 수 있다.In step S330, the plurality of performance counters 130 may count parameters based on the event signal. That is, the plurality of performance counters 130 may count parameters used for workload operation based on an event signal received from the event block 110 .

이때 도 3에는 S320 단계와 S330 단계가 순서대로 수행되는 것으로 도시되어 있으나, 이에 한정되는 것은 아니고, S320 단계와 S330 단계가 동시에 수행되더라도 무방하다.At this time, although it is shown in FIG. 3 that steps S320 and S330 are performed in sequence, it is not limited thereto, and steps S320 and S330 may be performed simultaneously.

마지막으로 S340 단계에서, 인터페이스(140)는 클럭 신호의 개수와 파라미터를 송신할 수 있다. 즉, 인터페이스(140)는 클럭 카운터(120) 및 복수의 퍼포먼스 카운터들(130)로부터 클럭 신호의 개수 및 파라미터를 수신하고, 이를 DVFS 제어 장치(200)로 송신할 수 있다.Finally, in step S340, the interface 140 may transmit the number of clock signals and parameters. That is, the interface 140 may receive the number and parameters of clock signals from the clock counter 120 and the plurality of performance counters 130 and transmit them to the DVFS control device 200 .

도 4는 본 개시의 예시적인 실시예에 따른 DVFS 제어 장치를 나타내는 블록도이다.Fig. 4 is a block diagram illustrating a DVFS control apparatus according to an exemplary embodiment of the present disclosure.

도 4를 참조하면, DVFS 제어 장치(200)는 하나 이상의 프로세싱 장치 프로파일러(210_1, 210_2, 210_3; 이하, 210), 메인 프로파일러(220), 하나 이상의 프로세싱 장치 드라이버(230_1, 230_2, 230_3; 이하, 230) 및 메인 컨트롤러(240)를 포함할 수 있다.Referring to FIG. 4 , the DVFS control device 200 includes one or more processing device profilers 210_1, 210_2, and 210_3 (hereinafter referred to as 210), a main profiler 220, and one or more processing device drivers 230_1, 230_2, and 230_3; Hereinafter, 230) and a main controller 240 may be included.

하나 이상의 프로세싱 장치 프로파일러(210)는 클럭 신호의 개수 및 파라미터를 집적 회로(100)로부터 수신할 수 있다. 그리고 하나 이상의 프로세싱 장치 프로파일러(210)는 클럭 신호의 개수 및 파라미터에 기초하여 워크로드를 연산할 수 있다. 이때 하나 이상의 프로세싱 장치 프로파일러(210)는 대응되는 프로세싱 장치(300)의 워크로드를 연산할 수 있다. One or more processing device profilers 210 may receive the number and parameters of clock signals from the integrated circuit 100 . In addition, one or more processing device profilers 210 may calculate a workload based on the number and parameters of clock signals. At this time, the one or more processing device profilers 210 may calculate the corresponding workload of the processing device 300 .

도 4에는 하나 이상의 프로세싱 장치 프로파일러(210)가 3개인 것으로 도시되어 있으나, 이에 한정되는 것은 아니다. 하나 이상의 프로세싱 장치 프로파일러(210)는 DVFS 제어 장치(200)에 의해 제어되는 프로세싱 장치(300)의 개수와 동일한 개수일 수 있다.Although FIG. 4 illustrates three one or more processing device profilers 210, it is not limited thereto. The number of one or more processing device profilers 210 may be equal to the number of processing devices 300 controlled by the DVFS control device 200 .

워크로드는 프로세싱 장치(300)가 처리해야하는 작업의 양을 나타내는 지표이다. 워크로드는 메인 프로파일러(220)가 프로세싱 장치(300)의 동작 주파수 및 동작 전압을 연산하는 데 이용된다. 워크로드는 액티브 비율, 대역폭 활성(Bandwidth Utilization) 값 및 평균 지연시간을 포함할 수 있다.The workload is an index representing the amount of work that the processing device 300 has to process. The workload is used by the main profiler 220 to calculate the operating frequency and operating voltage of the processing device 300 . The workload may include an active ratio, a bandwidth utilization value, and an average latency.

액티브 비율은 전체 시간 중에서 프로세싱 장치(300)가 연결된 버스(400)가 활성화된 시간의 비율을 의미할 수 있다. 이때 프로세싱 장치(300)가 활성화된 시간은 버스(400)를 통해 요청이 전송된 시점부터 응답이 수신된 시점까지로 측정할 수 있다.The active ratio may refer to a ratio of time in which the bus 400 to which the processing device 300 is connected is activated out of the total time. At this time, the activation time of the processing device 300 may be measured from the time when the request is transmitted through the bus 400 to the time when the response is received.

하나 이상의 프로세싱 장치 프로파일러(210)는 파라미터 중 액티브 시간을 클럭 신호의 개수로 나누어 액티브 비율을 연산할 수 있다.One or more processing device profilers 210 may calculate an active ratio by dividing an active time among parameters by the number of clock signals.

대역폭 활성 값은 프로세싱 장치(300)가 연결된 버스(400)의 대역폭이 어느 정도 활성화되어 있는지 나타내는 값 일 수 있다.The bandwidth activation value may be a value representing how much the bandwidth of the bus 400 to which the processing device 300 is connected is activated.

하나 이상의 프로세싱 장치 프로파일러(210)는 파라미터 중 데이터 전송 횟수에 클럭 신호의 개수 및 미리 저장된 데이터 폭을 곱한 결과를 동작 주파수로 나누어 대역폭 활성 값을 연산할 수 있다. 이때 데이터 폭은 하나 이상의 프로세싱 장치 프로파일러(210)가 버스(400)의 데이터 폭을 미리 측정하여 저장한 값일 수 있다. 그리고 동작 주파수는 현재 프로세싱 장치(300)가 동작 중인 주파수를 의미할 수 있다.One or more processing device profilers 210 may calculate a bandwidth activation value by dividing a result obtained by multiplying the number of data transmission among parameters by the number of clock signals and the previously stored data width by an operating frequency. In this case, the data width may be a value pre-measured and stored by one or more processing device profilers 210 of the data width of the bus 400 . Also, the operating frequency may refer to a frequency at which the processing device 300 is currently operating.

평균 지연시간은 버스(400)를 통해 요청 데이터가 전송된 시점으로부터 응답 데이터가 수신되는 시점까지의 평균 시간을 의미할 수 있다.The average delay time may mean an average time from the time when request data is transmitted through the bus 400 to the time when response data is received.

하나 이상의 프로세싱 장치 프로파일러(210)는 파라미터 중 다중 아웃스탠딩 누적 값을 파라미터 중 전송 요청 횟수로 나누어 평균 지연시간을 연산할 수 있다. The one or more processing device profilers 210 may calculate the average delay time by dividing the cumulative value of multiple outstandings among the parameters by the number of transmission requests among the parameters.

이때 평균 지연시간은 프로세싱 장치(300) 간의 통신에 이용되는 프로토콜의 종류 및 연산 부호의 종류에 따라 다르게 연산될 수 있다. 이는 도 5 내지 도 7을 참조하여 보다 상세히 설명될 수 있다.At this time, the average delay time may be calculated differently depending on the type of protocol and the type of operation code used for communication between the processing devices 300 . This can be explained in more detail with reference to FIGS. 5 to 7 .

도 5 내지 도 7은 본 개시의 예시적인 실시예에 따른 DVFS 제어 장치에서 지연시간이 연산되는 방법을 설명하기 위한 그래프이다.5 to 7 are graphs for explaining how a delay time is calculated in the DVFS control device according to an exemplary embodiment of the present disclosure.

우선 도 5를 참조하면, 프로세싱 장치(300) 간의 통신에 이용되는 프로토콜이 연산 부호 프로토콜이고, 연산 부호가 데이터 읽기 요청 또는 데이터 쓰기 요청을 의미하는 연산 부호일 때, 지연시간이 연산되는 방법을 나타낸 그래프를 확인할 수 있다.First, referring to FIG. 5, when a protocol used for communication between processing devices 300 is an operation code protocol, and the operation code is an operation code indicating a data read request or data write request, a delay time calculation method is shown. You can check the graph.

연산 부호가 데이터 읽기 요청 또는 데이터 쓰기 요청을 의미하는 연산 부호일 때, 지연시간은 아래쪽의 화살표와 같이 요청 데이터(Req)의 전송 시점부터 마지막 응답 데이터(DLast)의 수신 시점까지로 연산될 수 있다. 그러나 본 개시에서 지연시간은 위쪽의 화살표와 같이 요청 데이터(Req)의 전송 시점부터 첫번째 응답 데이터(DFirst)의 수신 시점까지로 연산될 수 있다. 본 개시에서는 이와 같이 지연시간을 연산함으로써, 응답 데이터가 마지막 응답 데이터(DLast)인지 여부를 판별하지 않더라도, 첫번째 응답 데이터(DFirst)가 수신되면 바로 지연시간을 연산함으로써 보다 적은 게이트를 이용하여 지연시간을 연산할 수 있다.When the operation code is an operation code indicating a data read request or data write request, the delay time can be calculated from the transmission time of the request data Req to the reception time of the last response data DLast as shown by the arrow below. . However, in the present disclosure, the delay time may be calculated from the transmission time of the request data (Req) to the reception time of the first response data (DFirst) as shown by the upper arrow. In the present disclosure, by calculating the delay time in this way, even if it is not determined whether the response data is the last response data (DLast), the delay time is calculated immediately when the first response data (DFirst) is received, so that the delay time is reduced using fewer gates. can be computed.

이때 도면 상에는 요청 데이터(Req)의 전송 시점부터 첫번째 응답 데이터(DFirst)의 수신 시점까지의 시간차가 첫번째 응답 데이터(DFirst)의 수신 시점부터 마지막 응답 데이터(DLast)의 수신 시점까지의 시간차와 큰 차이가 없게 도시되어 있다. 그러나 실제로는 요청 데이터(Req)의 전송 시점부터 첫번째 응답 데이터(DFirst)의 수신 시점까지의 시간차가 첫번째 응답 데이터(DFirst)의 수신 시점부터 마지막 응답 데이터(DLast)의 수신 시점까지의 시간차보다 훨씬 큰 값을 가진다. 따라서 본 개시와 같이 지연시간을 연산하더라도 큰 오차가 발생하지 않는다.At this time, the time difference between the transmission time of the request data Req and the reception time of the first response data DFirst is significantly different from the time difference between the reception time of the first response data DFirst and the reception time of the last response data DLast. It is shown without. However, in reality, the time difference between the transmission of the request data (Req) and the reception of the first response data (DFirst) is much larger than the time difference between the reception of the first response data (DFirst) and the reception of the last response data (DLast). has a value Therefore, even if the delay time is calculated as in the present disclosure, a large error does not occur.

그리고 도 6 및 도 7을 참조하면, 프로세싱 장치(300) 간의 통신에 이용되는 프로토콜이 연산 부호 프로토콜이고, 연산 부호가 캐시 유지 연산을 의미하는 연산 부호일 때, 지연시간이 연산되는 방법을 나타낸 그래프를 확인할 수 있다.6 and 7, when a protocol used for communication between processing devices 300 is an operation code protocol, and the operation code is an operation code meaning a cache maintenance operation, graphs illustrating how delay time is calculated can be checked.

캐시 유지 연산의 경우, 버스(400)를 통해 요청 데이터(Req)가 전송되더라도 반드시 응답 데이터(Data)가 수신되는 것이 아니라, 데이터를 포함하지 않는 응답(Rsp)이 전송될 수 있다.In the case of a cache maintaining operation, even if the request data Req is transmitted through the bus 400, the response data Data is not necessarily received, but the response Rsp including no data may be transmitted.

연산 부호가 캐시 유지 연산을 의미하는 연산 부호일 때, 응답으로 데이터를 포함하지 않는 응답이 전송되는 경우, 지연시간은 0으로 연산될 수 있다. 그러나 본 개시에서 연산 부호가 캐시 유지 연산을 의미하는 연산 부호일 때, 응답으로 데이터를 포함하지 않는 응답이 전송되는 경우, 도 6에 도시된 바와 같이, 지연시간은 요청 데이터(Req)의 전송 시점부터 데이터를 포함하지 않는 응답(Rsp)의 수신 시점까지로 연산될 수 있다.When the operation code is an operation code indicating a cache maintenance operation, when a response including no data is transmitted as a response, the delay time may be calculated as 0. However, in the present disclosure, when the operation code is an operation code meaning a cache maintenance operation, and a response that does not include data is transmitted as a response, as shown in FIG. 6, the delay time is the transmission time of the request data Req. It can be calculated as from to the time of reception of the response (Rsp) not including data.

그리고 연산 부호가 캐시 유지 연산을 의미하는 연산 부호일 때, 응답으로 응답 데이터(Data)가 수신되는 경우, 도 7에 도시된 바와 같이, 지연시간은 화살표와 같이 요청 데이터(Req)의 전송 시점부터 응답 데이터(Data)의 수신 시점까지로 연산될 수 있다.And, when the operation code is an operation code meaning cache maintenance operation, when response data (Data) is received as a response, as shown in FIG. 7, the delay time starts from the transmission time of the request data (Req) It may be calculated until the point of receiving the response data (Data).

그리고 도 5 내지 도 7에 도시되지 않은 다른 경우, 지연시간은 요청 데이터의 전송 시점부터 모든 응답 데이터가 수신된 시점까지로 연산될 수 있다.In other cases not shown in FIGS. 5 to 7 , the delay time may be calculated from the transmission time of the request data to the time when all response data are received.

다시 도 4로 돌아와서, 도 5에서 도 7을 참조하여 설명된 방법과 같이 지연시간은 프로세싱 장치(300) 간의 통신에 이용되는 프로토콜의 종류 및 연산 부호의 종류에 따라 다르게 연산될 수 있으며, 연산된 지연시간들의 평균값이 평균 지연시간으로 연산될 수 있다.Returning to FIG. 4 again, as in the method described with reference to FIGS. 5 to 7, the delay time may be calculated differently depending on the type of protocol and the type of operation code used for communication between the processing devices 300, and the calculated An average value of delay times may be calculated as an average delay time.

이때 이벤트 블록(110)은 상술한 바와 같이 다중 아웃스탠딩 신호를 프로세싱 장치(300) 간의 통신에 이용되는 프로토콜의 종류 및 연산 부호의 종류에 따라 다르게 연산할 수 있다. 그리고 이벤트 블록(110)은 지연시간으로 연산되는 시점과 동일한 시점에 다중 아웃스탠딩 신호를 1로 출력할 수 있다. 따라서 하나 이상의 프로세싱 장치 프로파일러(210)는 프로세싱 장치(300) 간의 통신에 이용되는 프로토콜의 종류 및 연산 부호의 종류를 고려하지 않고, 단순히 다중 아웃스탠딩 누적 값을 파라미터 중 전송 요청 횟수로 나누어 평균 지연시간을 연산할 수 있다.At this time, the event block 110 may calculate the multiple outstanding signals differently according to the type of protocol and the type of operation code used for communication between the processing devices 300, as described above. Also, the event block 110 may output multiple outstanding signals as 1 at the same time point as the delay time. Accordingly, the one or more processing device profilers 210 simply divide the multi-outstanding accumulated value by the number of transmission requests among the parameters without considering the type of protocol and the type of operation code used for communication between the processing devices 300 and average delay. time can be calculated.

메인 프로파일러(220)는 하나 이상의 프로세싱 장치 프로파일러(210)로부터 워크로드를 수신하여 저장할 수 있다. 그리고 메인 프로파일러(220)는 저장된 워크로드를 메인 컨트롤러(240)로 송신할 수 있다.The main profiler 220 may receive and store workloads from one or more processing unit profilers 210 . Also, the main profiler 220 may transmit the stored workload to the main controller 240 .

또한 메인 프로파일러(220)는 메인 컨트롤러(240)로부터 프로세싱 장치(300)의 동작 전압 및 동작 주파수를 수신한 후, 하나 이상의 프로세싱 장치 드라이버(230)로 전송할 수 있다.Also, the main profiler 220 may receive the operating voltage and operating frequency of the processing device 300 from the main controller 240 and transmit the received operating voltage and operating frequency to one or more processing device drivers 230 .

메인 컨트롤러(240)는 DVFS 제어 장치(200)의 전반적인 동작을 제어할 수 있다. 메인 컨트롤러(240)는 메인 프로파일러(220)로부터 수신한 워크로드에 기초하여 프로세싱 장치(300)의 동작 주파수 및 동작 전압을 결정할 수 있다.The main controller 240 may control overall operations of the DVFS control device 200 . The main controller 240 may determine the operating frequency and operating voltage of the processing device 300 based on the workload received from the main profiler 220 .

본 개시의 일 실시예에서, 메인 컨트롤러(240)는 액티브 비율, 대역폭 활성 값 및 평균 지연시간에 비례하여 동작 전압 및 동작 주파수를 결정할 수 있다. 즉, 메인 컨트롤러(240)는 워크로드가 높게 측정된 경우, 동작 전압 및 동작 주파수를 증가시킴으로써, 프로세싱 장치(300)의 원활한 동작이 가능하도록 할 수 있다. 반대로, 메인 컨트롤러(240)는 워크로드가 낮게 측정된 경우, 동작 전압 및 동작 주파수를 감소시킴으로써, 프로세싱 장치(300)에 의해 소모되는 전력을 감소시킬 수 있다.In an embodiment of the present disclosure, the main controller 240 may determine an operating voltage and an operating frequency in proportion to an active ratio, a bandwidth active value, and an average delay time. That is, the main controller 240 may enable smooth operation of the processing device 300 by increasing the operating voltage and operating frequency when the workload is measured to be high. Conversely, when the workload is measured to be low, the main controller 240 may reduce power consumed by the processing device 300 by reducing the operating voltage and operating frequency.

하나 이상의 프로세싱 장치 드라이버(230)는 동작 주파수 및 동작 전압을 프로세싱 장치들(300)로 송신할 수 있다. 즉, 하나 이상의 프로세싱 장치 드라이버(230)는 메인 컨트롤러(240)로부터 동작 주파수 및 동작 전압을 수신하면, 대응되는 프로세싱 장치(300)로 동작 주파수 및 동작 전압을 송신할 수 있다.One or more processing device drivers 230 may transmit operating frequencies and operating voltages to processing devices 300 . That is, when receiving the operating frequency and operating voltage from the main controller 240, the one or more processing device drivers 230 may transmit the operating frequency and operating voltage to the corresponding processing device 300.

도 4에는 하나 이상의 프로세싱 장치 드라이버(230)가 3개인 것으로 도시되어 있으나, 이에 한정되는 것은 아니다. 하나 이상의 프로세싱 장치 드라이버(230)는 DVFS 제어 장치(200)에 의해 제어되는 프로세싱 장치(300)의 개수와 동일한 개수일 수 있으며, 하나 이상의 프로세싱 장치 프로파일러(210)와 동일한 개수일 수 있다.Although FIG. 4 shows one or more processing device drivers 230 as three, it is not limited thereto. The one or more processing device drivers 230 may be the same as the number of processing devices 300 controlled by the DVFS control device 200, and may be the same as the number of one or more processing device profilers 210.

도 8은 본 개시의 예시적 실시예에 따른 DVFS 제어 장치의 동작을 나타내는 흐름도이다.8 is a flowchart illustrating an operation of a DVFS control device according to an exemplary embodiment of the present disclosure.

도 8을 참조하면, S810 단계에서, 하나 이상의 프로세싱 장치 프로파일러(210)는 클럭 신호의 개수와 파라미터에 기초하여 워크로드를 연산할 수 있다. 하나 이상의 프로세싱 장치 프로파일러(210)는 클럭 신호의 개수와 파라미터 중 액티브 시간을 이용하여 액티브 비율을 연산할 수 있다. 그리고 하나 이상의 프로세싱 장치 프로파일러(210)는 클럭 신호의 개수와 파라미터 중 데이터 전송 횟수에 기초하여 대역폭 활성 값을 연산할 수 있다. 그리고 하나 이상의 프로세싱 장치 프로파일러(210)는 파라미터 중 다중 아웃스탠딩 누적 값과 파라미터 중 전송 요청 횟수를 이용하여 평균 지연 시간을 연산할 수 있다. 보다 상세한 하나 이상의 프로세싱 장치 프로파일러(210)의 워크로드 연산 방법은 도 4를 참조하여 상술한 바와 같을 수 있다. 그리고 하나 이상의 프로세싱 장치 프로파일러(210)는 메인 프로파일러(220)로 연산된 워크로드를 전송할 수 있다.Referring to FIG. 8 , in step S810, one or more processing device profilers 210 may calculate a workload based on the number and parameters of clock signals. One or more processing device profilers 210 may calculate an active ratio using the number of clock signals and an active time among parameters. Also, one or more processing device profilers 210 may calculate a bandwidth activity value based on the number of clock signals and the number of data transfers among the parameters. In addition, one or more processing device profilers 210 may calculate an average delay time using a multi-outstanding accumulated value among parameters and the number of transmission requests among parameters. A more detailed method of computing a workload of one or more processing device profilers 210 may be as described above with reference to FIG. 4 . And one or more processing device profilers 210 may transmit the calculated workload to the main profiler 220 .

S820 단계에서, 메인 컨트롤러(240)는 워크로드에 기초하여 프로세싱 장치(300)의 동작 주파수 및 동작 전압을 결정할 수 있다. 이때 메인 컨트롤러(240)는 하나 이상의 프로세싱 장치 프로파일러(210)에 의해 연산된 액티브 비율, 대역폭 활성 값 및 평균 지연시간에 비례하여 프로세싱 장치(300)의 동작 주파수 및 동작 전압을 결정할 수 있다.In step S820, the main controller 240 may determine the operating frequency and operating voltage of the processing device 300 based on the workload. In this case, the main controller 240 may determine the operating frequency and operating voltage of the processing device 300 in proportion to the active ratio, the bandwidth active value, and the average delay time calculated by the one or more processing device profilers 210 .

S830 단계에서, 하나 이상의 프로세싱 장치 드라이버(230)는 동작 주파수 및 동작 전압을 프로세싱 장치(300)로 송신할 수 있다. 하나 이상의 프로세싱 장치 드라이버(230)가 대응되는 프로세싱 장치(300)로 동작 주파수 및 동작 전압을 송신함으로써, DVFS 동작을 통해 프로세싱 장치(300)의 전력을 관리할 수 있다.In step S830 , one or more processing device drivers 230 may transmit operating frequencies and operating voltages to the processing device 300 . One or more processing device drivers 230 may transmit operating frequencies and operating voltages to the corresponding processing device 300 to manage power of the processing device 300 through DVFS operation.

도 9는 본 개시의 예시적 실시예에 따른 컴퓨팅 시스템의 동작을 나타내는 흐름도이다.9 is a flowchart illustrating operation of a computing system according to an exemplary embodiment of the present disclosure.

도 9를 참조하면, S910 단계에서, DVFS 제어 장치(200)는 집적 회로(100)를 활성화시킬 수 있다. DVFS 제어 장치(200)는 집적 회로(100)로 활성화 신호를 전송함으로써, 집적 회로(100)를 활성화시킬 수 있다. 집적 회로(100)는 DVFS 제어 장치(200)로부터 활성화 신호를 수신함에 따라, 제어기(150)를 통해 이벤트 블록(110), 클럭 카운터(120) 및 복수의 퍼포먼스 카운터들(130)을 활성화할 수 있다. 이때 제어기(150)는 클럭 카운터(120) 및 복수의 퍼포먼스 카운터들(130)에 의해 현재까지 카운팅된 값들을 초기화 할 수 있다. 또한 집적 회로(100)는 제어기(150)를 통해 클럭 카운터(120) 및 복수의 퍼포먼스 카운터들(130)에 대한 인터럽트 기준 값을 설정할 수 있다.Referring to FIG. 9 , in step S910 , the DVFS control device 200 may activate the integrated circuit 100 . The DVFS control device 200 may activate the integrated circuit 100 by transmitting an activation signal to the integrated circuit 100 . Upon receiving the activation signal from the DVFS control device 200, the integrated circuit 100 may activate the event block 110, the clock counter 120, and the plurality of performance counters 130 through the controller 150. have. At this time, the controller 150 may initialize values counted up to now by the clock counter 120 and the plurality of performance counters 130 . Also, the integrated circuit 100 may set interrupt reference values for the clock counter 120 and the plurality of performance counters 130 through the controller 150 .

S920 단계에서, 집적 회로(100)는 클럭 카운터(120) 및 복수의 퍼포먼스 카운터들(130)을 통해 클럭 신호의 개수 및 파라미터를 카운트할 수 있다. 이때 클럭 카운터(120)는 클럭 관리 회로(500)로부터 수신하는 클럭 신호의 개수를 카운트할 수 있다. 그리고 복수의 퍼포먼스 카운터들(130)은 이벤트 신호에 기초하여 파라미터를 카운트할 수 있다. 클럭 신호의 개수 및 파라미터를 카운트하는 방법은 도 2를 참조하여 상술한 바와 같을 수 있다.In step S920, the integrated circuit 100 may count the number of clock signals and parameters through the clock counter 120 and the plurality of performance counters 130. At this time, the clock counter 120 may count the number of clock signals received from the clock management circuit 500 . Also, the plurality of performance counters 130 may count parameters based on the event signal. A method of counting the number of clock signals and parameters may be as described above with reference to FIG. 2 .

S930 단계에서, 집적 회로(100)는 제어기(150)를 통해 클럭 카운터(120) 및 복수의 퍼포먼스 카운터들(130) 중 어느 하나에 인터럽트가 발생하였는지 판단할 수 있다. 이때 제어기(150)는 클럭 카운터(120) 및 복수의 퍼포먼스 카운터들(130)에 의해 카운트 된 값들 중 어느 하나와 인터럽트 기준 값을 비교하여, 인터럽트 발생 여부를 판단할 수 있다.In step S930, the integrated circuit 100 may determine whether an interrupt has occurred in any one of the clock counter 120 and the plurality of performance counters 130 through the controller 150. At this time, the controller 150 may compare any one of the values counted by the clock counter 120 and the plurality of performance counters 130 with an interrupt reference value to determine whether an interrupt has occurred.

만일 제어기(150)가 클럭 카운터(120) 및 복수의 퍼포먼스 카운터들(130) 모두에 인터럽트가 발생하지 않았다고 판단하면, 미리 설정된 기준 시간이 경과한 후 다시 S930 단계를 반복할 수 있다.If the controller 150 determines that no interrupt has occurred in both the clock counter 120 and the plurality of performance counters 130, step S930 may be repeated after the preset reference time has elapsed.

반대로 제어기(150)가 클럭 카운터(120) 및 복수의 퍼포먼스 카운터들(130) 중 어느 하나에 인터럽트가 발생하였다고 판단하면, S940 단계로 넘어갈 수 있다. 이때 제어기(150)는 클럭 카운터(120) 및 복수의 퍼포먼스 카운터들(130) 중 어느 하나에 인터럽트가 발생하였음을 DVFS 제어 장치(200)로 전송할 수 있다.Conversely, when the controller 150 determines that an interrupt has occurred in one of the clock counter 120 and the plurality of performance counters 130, it can proceed to step S940. At this time, the controller 150 may transmit to the DVFS control device 200 that an interrupt has occurred in one of the clock counter 120 and the plurality of performance counters 130 .

S940 단계에서, 제어기(150)는 클럭 카운터(120) 및 복수의 퍼포먼스 카운터들(130)을 비활성화할 수 있다. 제어기(150)는 DVFS 제어 장치(200)로부터 비활성화 신호를 수신함에 따라, 클럭 카운터(120) 및 복수의 퍼포먼스 카운터들(130)을 비활성화할 수 있다.In step S940, the controller 150 may deactivate the clock counter 120 and the plurality of performance counters 130. The controller 150 may deactivate the clock counter 120 and the plurality of performance counters 130 upon receiving the deactivation signal from the DVFS control device 200 .

그리고 S950 단계에서, 제어기(150)는 클럭 신호의 개수와 파라미터를 DVFS 제어 장치(200)로 송신할 수 있다. 이때 제어기(150)는 인터페이스(140)를 통해 클럭 신호의 개수와 파라미터를 DVFS 제어 장치(200)로 송신할 수 있다.In step S950, the controller 150 may transmit the number of clock signals and parameters to the DVFS control device 200. At this time, the controller 150 may transmit the number of clock signals and parameters to the DVFS control device 200 through the interface 140 .

도 10은 본 개시의 예시적인 실시예에 따른 집적 회로의 성능을 나타내는 표이다.10 is a table representing the performance of an integrated circuit according to an exemplary embodiment of the present disclosure.

도 10을 참조하면, 본 개시의 예시적 실시예에 따른 집적 회로(100)는 4.4mW의 전력을 소모하며, 총 16,120 개의 게이트 수를 가진 것을 확인할 수 있다. 이와 비교하여, 종래의 집적 회로(100)는 15.7mW의 전력을 소모하며, 총 113,630개의 게이트 수를 가진 것을 확인할 수 있다. 즉, 본 개시의 예시적 실시예에 따른 집적 회로(100)를 통해 전력 소모를 약 72% 감소시킬 수 있으며, 집적 회로(100)가 차지하는 면적을 약 85% 감소시킬 수 있다.Referring to FIG. 10 , it can be seen that the integrated circuit 100 according to the exemplary embodiment of the present disclosure consumes 4.4 mW of power and has a total of 16,120 gates. In comparison, it can be seen that the conventional integrated circuit 100 consumes 15.7 mW of power and has a total of 113,630 gates. That is, power consumption can be reduced by about 72% and an area occupied by the integrated circuit 100 can be reduced by about 85% through the integrated circuit 100 according to the exemplary embodiment of the present disclosure.

도 11은 본 개시의 예시적인 실시예에 따른 시스템을 나타내는 블록도이다.11 is a block diagram illustrating 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 , a system 30 includes a mobile phone, a smart phone, a tablet computer, a personal digital assistant (PDA), an enterprise digital assistant (EDA), a digital still camera, and a digital video camera. (digital video camera), portable multimedia player (PMP), personal navigation device (PDN) or portable navigation device), handheld game console, or e-book. It can be implemented as a handheld device.

시스템(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을 통해 전술된 프로세싱 장치(300)의 일 구현 예일 수 있다. 따라서, CPU(3110), GPU(3120), NPU(3130), ISP(3140) 및 MIF(3150) 간을 연결하는 버스에 본 개시의 실시예에 따른 집적 회로(100)가 연결될 수 있고, DVFS 제어 장치(200)는 집적 회로(100)를 통해 수신한 클럭 신호의 개수와 파라미터에 기초하여 DVFS 동작을 수행할 수 있다.The system 30 may include an SoC 3100 and a memory device 3200 . The SoC 3100 includes a central processing unit (CPU) 3110, a graphic processing unit (GPU) 3120, a neural processing unit (NPU) 3130, an image signal processor (ISP) 3140, a memory interface (MIF) 3150, a clock management unit (CMU) 3160, and a power management unit (PMU) 3170. The CPU 3110, the GPU 3120, the NPU 3130, the ISP 3140, and the MIF 3150 may be an implementation example of the processing device 300 described above with reference to FIGS. 1 to 10. Accordingly, the integrated circuit 100 according to an embodiment of the present disclosure may be connected to a bus connecting the CPU 3110, the GPU 3120, the NPU 3130, the ISP 3140, and the MIF 3150, and the DVFS The control device 200 may perform a DVFS operation based on the number and parameters of clock signals received through the integrated circuit 100 .

CPU(3110)는 CMU(3160)에 의해 생성된 클럭 신호에 응답하여 메모리 장치(3200)에 저장된 명령들 및/또는 데이터를 처리 또는 실행할 수 있다.The CPU 3110 may process or execute commands and/or data stored in the memory device 3200 in response to a clock signal generated by the CMU 3160 .

GPU(3120)는 CMU(3160)에 의해 생성된 클럭 신호에 응답하여 메모리 장치(3200)에 저장된 이미지 데이터를 획득할 수 있다. GPU(3120)는 MIF(3150)로부터 제공되는 이미지 데이터로부터 디스플레이 장치(미도시)를 통해서 출력되는 영상을 위한 데이터를 생성할 수도 있고, 이미지 데이터를 인코딩할 수도 있다.The GPU 3120 may acquire image data stored in the memory device 3200 in response to a clock signal generated by the CMU 3160 . The GPU 3120 may generate data for an image output through a display device (not shown) from image data provided from the MIF 3150 or encode the image data.

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를 포함할 수 있다.NPU 3130 may refer to any device that runs a machine learning model. The NPU 3130 may be a hardware block designed to run a machine learning model. The machine learning model may be a model based on an artificial neural network, decision tree, support vector machine, regression analysis, Bayesian network, genetic algorithm, or the like. Artificial neural networks, as non-limiting examples, include a convolution neural network (CNN), a region with convolution neural network (R-CNN), a region proposal network (RPN), a recurrent neural network (RNN), and a stacking-based deep neural network (S-DNN). 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, and classification network can do.

ISP(3140)는 SoC(3100) 외부에 위치하는 이미지 센서(미도시)로부터 수신된 로우(RAW) 데이터에 대해 신호 처리 동작을 수행하고, 향상된 이미지 품질을 갖는 디지털 데이터를 생성할 수 있다.The ISP 3140 may perform a signal processing operation on raw data received from an image sensor (not shown) located outside the SoC 3100 and generate digital data having improved image quality.

MIF(3150)는 SoC(3100)의 외부에 위치하는 메모리 장치(3200)에 대한 인터페이스를 제공할 수 있다. 메모리 장치(3200)는 DRAM(Dynamic Random Access Memory), PRAM(Phase-change Random Access Memory), ReRAM(Resistive Random Access Memory) 또는 플래시 메모리일 수 있다.The MIF 3150 may provide an interface to the memory device 3200 located outside the SoC 3100. The memory device 3200 may be dynamic random access memory (DRAM), phase-change random access memory (PRAM), resistive random access memory (ReRAM), or flash memory.

CMU(3160)는 클럭 신호를 생성하고, 클록 신호를 SoC(3100)의 구성요소들에 제공할 수 있다. CMU(3160)는 위상 동기 루프 회로(Phase Locked Loop; PLL), 지연 동기 루프(Delayed Locked Loop; DLL), 수정자(crystal)등의 클럭 생성 장치를 포함할 수 있다. PMU(3170)는 외부 전원을 내부 전원으로 변환하고, 내부 전원을 SoC(3100)의 구성요소들에 전력을 공급할 수 있다.CMU 3160 may generate a clock signal and provide the clock signal to components of SoC 3100 . The CMU 3160 may include a clock generator such as a Phase Locked Loop (PLL), a Delayed Locked Loop (DLL), or a crystal. The PMU 3170 may convert external power to internal power and supply power to components of the SoC 3100 from the internal power.

도 12는 본 개시의 예시적인 실시예에 따른 어플리케이션 프로세서를 포함하는 통신 장치를 나타내는 블록도이다.12 is a block diagram illustrating a communication device including an application processor according to an exemplary embodiment of the present disclosure.

도 12를 참조하면, 통신 장치(40)는 어플리케이션 프로세서(4010), 메모리 장치(4020), 디스플레이(4030), 입력 장치(4040) 및 무선 송수신기(4050)를 포함할 수 있다. 어플리케이션 프로세서(4010)는 도 1 내지 11을 참조하여 전술된 프로세싱 장치(300)들 중 적어도 하나의 구현 예일 수 있다.Referring to FIG. 12 , the communication device 40 may include an application processor 4010, a memory device 4020, a display 4030, an input device 4040, and a wireless transceiver 4050. The application processor 4010 may be an implementation example of at least one of the processing devices 300 described above with reference to FIGS. 1 to 11 .

무선 송수신기(4050)는 안테나(4060)를 통하여 무선 신호를 주거나 받을 수 있다. 예컨대, 무선 송수신기(4050)는 안테나(4060)를 통하여 수신된 무선 신호를 어플리케이션 프로세서(4010)에서 처리될 수 있는 신호로 변경할 수 있다.The wireless transceiver 4050 may transmit or receive a wireless signal through the antenna 4060. For example, the wireless transceiver 4050 may change a wireless signal received through the antenna 4060 into a signal that can be processed by the application processor 4010 .

따라서, 어플리케이션 프로세서(4010)는 무선 송수신기(4050)로부터 출력된 신호를 처리하고 처리된 신호를 디스플레이(4030)로 전송할 수 있다. 또한, 무선 송수신기(3250)는 어플리케이션 프로세서(4010)로부터 출력된 신호를 무선 신호로 변경하고 변경된 무선 신호를 안테나(4060)를 통하여 외부 장치로 출력할 수 있다.Accordingly, the application processor 4010 may process a signal output from the wireless transceiver 4050 and transmit the processed signal to the display 4030 . In addition, the wireless transceiver 3250 may change the signal output from the application processor 4010 into a wireless signal and output the changed wireless signal to an external device through the antenna 4060.

입력 장치(4040)는 어플리케이션 프로세서(4010)의 동작을 제어하기 위한 제어 신호 또는 어플리케이션 프로세서(4010)에 의하여 처리될 데이터를 입력할 수 있는 장치로서, 터치 패드 (touch pad)와 컴퓨터 마우스(computer mouse)와 같은 포인팅 장치(pointing device), 키패드(keypad), 또는 키보드로 구현될 수 있다.The input device 4040 is a device capable of inputting a control signal for controlling the operation of the application processor 4010 or data to be processed by the application processor 4010, and includes a touch pad and a computer mouse. ), a keypad, or a keyboard.

이때 어플리케이션 프로세서(4010)와 연결되는 버스에 본 개시의 실시예에 따른 집적 회로(100)가 연결될 수 있고, DVFS 제어 장치(200)는 집적 회로(100)를 통해 수신한 클럭 신호의 개수와 파라미터에 기초하여 DVFS 동작을 수행할 수 있다.At this time, the integrated circuit 100 according to the embodiment of the present disclosure may be connected to a bus connected to the application processor 4010, and the DVFS control device 200 may receive the number and parameters of clock signals received through the integrated circuit 100. DVFS operation can be performed based on

도 12에는 도시되지 않았으나, 통신 장치(40)에 구비되는 각종 구성들에 클럭 신호를 제공하는 클럭 관리부 및 전원 전압을 제공하는 전력 관리부를 더 포함할 수 있다.Although not shown in FIG. 12 , the communication device 40 may further include a clock management unit providing clock signals to various components and a power management unit providing power voltage.

상술한 바와 같은 본 개시에 따른 집적 회로(100), DVFS 제어 장치(200) 및 컴퓨팅 시스템(10)을 이용하면, 워크로드 연산에 이용되는 파라미터를 카운트하고, 파라미터에 기초하여 DVFS 동작을 수행함으로써, 보다 적은 공간을 차지하면서, 적은 전력을 소모하며 DVFS 동작을 수행할 수 있다.Using the integrated circuit 100, the DVFS control device 200, and the computing system 10 according to the present disclosure as described above, by counting parameters used for workload calculation and performing a DVFS operation based on the parameters , the DVFS operation can be performed while taking up less space and consuming less power.

이상에서와 같이 도면과 명세서에서 예시적인 실시예들이 개시되었다. 본 명세서에서 특정한 용어를 사용하여 실시예들을 설명되었으나, 이는 단지 본 개시의 기술적 사상을 설명하기 위한 목적에서 사용된 것이지 의미 한정이나 청구범위에 기재된 본 개시의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 기술분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 개시의 진정한 기술적 보호범위는 첨부된 청구범위의 기술적 사상에 의해 정해져야 할 것이다.As above, exemplary embodiments have been disclosed in the drawings and specifications. Embodiments have been described using specific terms in this specification, but they are only used for the purpose of explaining the technical spirit of the present disclosure, and are not used to limit the scope of the present disclosure described in the meaning or claims. Therefore, those of ordinary skill in the art will understand that various modifications and equivalent other embodiments are possible therefrom. Therefore, the true technical scope of protection of the present disclosure should be determined by the technical spirit of the appended claims.

Claims (10)

프로세싱 장치 간을 연결하는 버스에 액세스하여, 상기 버스를 통해 전송되는 데이터에 기초하여 이벤트 신호를 출력하는 이벤트 블록;
클럭 관리 회로로부터 수신하는 클럭 신호의 개수를 카운트하는 클럭 카운터;
상기 이벤트 신호에 기초하여 워크로드 연산에 이용되는 파라미터를 카운트하는 복수의 퍼포먼스 카운터들;
상기 워크로드에 기초하여 상기 프로세싱 장치의 동작 주파수 및 동작 전압을 결정하는 DVFS(Dynamic Voltage Frequency Scaling) 제어 장치로부터 동작 신호를 수신하며, 상기 클럭 신호의 개수와 상기 파라미터를 상기 DVFS 제어 장치로 송신하는 인터페이스; 및
상기 동작 신호에 기초하여, 상기 이벤트 블록, 상기 클럭 카운터 및 상기 복수의 퍼포먼스 카운터들의 동작을 제어하는 제어기를 포함하는
집적 회로.
an event block that accesses a bus connecting processing devices and outputs an event signal based on data transmitted through the bus;
a clock counter counting the number of clock signals received from the clock management circuit;
a plurality of performance counters counting parameters used for workload calculation based on the event signal;
Receiving an operating signal from a Dynamic Voltage Frequency Scaling (DVFS) control device that determines an operating frequency and an operating voltage of the processing device based on the workload, and transmitting the number of clock signals and the parameter to the DVFS control device interface; and
And a controller for controlling operations of the event block, the clock counter, and the plurality of performance counters based on the operation signal.
integrated circuit.
제1항에 있어서,
상기 이벤트 블록은
상기 프로세싱 장치 간의 통신에 이용되는 프로토콜에 기초하여 상기 이벤트 신호를 출력하는
집적 회로.
According to claim 1,
The event block
Outputting the event signal based on a protocol used for communication between the processing devices.
integrated circuit.
제2항에 있어서,
상기 이벤트 신호는 다중 아웃스탠딩(Multiple Outstanding) 신호를 포함하고,
상기 이벤트 블록은
상기 프로세싱 장치 간의 통신에 이용되는 프로토콜이 연산 부호 프로토콜이면, 상기 버스를 통해 전송되는 데이터에 포함된 연산 부호에 기초하여 상기 다중 아웃스탠딩 신호를 설정하여 출력하는
집적 회로.
According to claim 2,
The event signal includes multiple outstanding signals,
The event block
If a protocol used for communication between the processing devices is an operation code protocol, setting and outputting the multiple outstanding signals based on operation codes included in data transmitted through the bus
integrated circuit.
제1항에 있어서,
상기 파라미터는 액티브 시간, 데이터 전송 횟수, 전송 요청 횟수 및 다중 아웃스탠딩 누적 값을 포함하고,
상기 복수의 퍼포먼스 카운터들은
상기 액티브 시간을 카운트하는 제1 퍼포먼스 카운터;
상기 데이터 전송 횟수를 카운트하는 제2 퍼포먼스 카운터;
상기 전송 요청 횟수를 카운트하는 제3 퍼포먼스 카운터; 및
상기 다중 아웃스탠딩 누적 값을 카운트하는 제4 퍼포먼스 카운터를 포함하는
집적 회로.
According to claim 1,
The parameter includes an active time, the number of data transmissions, the number of transmission requests, and a multi-outstanding cumulative value,
The plurality of performance counters
a first performance counter counting the active time;
a second performance counter counting the number of times the data is transmitted;
a third performance counter counting the number of transmission requests; and
And a fourth performance counter counting the multi-outstanding accumulated value.
integrated circuit.
제1항에 있어서,
상기 제어기는 상기 동작 신호에 기초하여 상기 이벤트 블록, 상기 클럭 카운터 및 상기 복수의 퍼포먼스 카운터들을 활성화 또는 비활성화하고, 상기 클럭 카운터 및 상기 복수의 퍼포먼스 카운터들에 인터럽트(interrupt)가 발생하였는지 판단하는
집적 회로.
According to claim 1,
The controller activates or deactivates the event block, the clock counter, and the plurality of performance counters based on the operation signal, and determines whether an interrupt occurs in the clock counter and the plurality of performance counters.
integrated circuit.
버스를 통해 전송되는 데이터에 기초하여 카운트 된 파라미터와 클럭 신호의 개수를 집적 회로로부터 수신하며, 상기 클럭 신호의 개수와 상기 파라미터에 기초하여 워크로드를 연산하는 프로세싱 장치 프로파일러;
상기 프로세싱 장치 프로파일러로부터 상기 워크로드를 수신하여 저장하는 메인 프로파일러;
상기 워크로드에 기초하여 프로세싱 장치의 동작 주파수 및 동작 전압을 결정하는 메인 컨트롤러; 및
상기 동작 주파수 및 상기 동작 전압을 상기 프로세싱 장치로 송신하는 프로세싱 장치 드라이버를 포함하는
DVFS 제어 장치.
a processing unit profiler that receives, from an integrated circuit, parameters counted based on data transmitted through a bus and the number of clock signals, and calculates a workload based on the number of clock signals and the parameters;
a main profiler receiving and storing the workload from the processing unit profiler;
a main controller that determines an operating frequency and an operating voltage of a processing device based on the workload; and
And a processing device driver for transmitting the operating frequency and the operating voltage to the processing device.
DVFS control unit.
제6항에 있어서,
상기 프로세싱 장치 프로파일러는
상기 파라미터 중 액티브 시간을 상기 클럭 신호의 개수로 나누어 액티브 비율을 연산하는
DVFS 제어 장치.
According to claim 6,
The processing unit profiler
Calculating an active ratio by dividing the active time among the parameters by the number of clock signals
DVFS control unit.
제6항에 있어서,
상기 프로세싱 장치 프로파일러는
상기 파라미터 중 데이터 전송 횟수에 상기 클럭 신호의 개수 및 미리 저장된 데이터 폭을 곱한 결과를 상기 동작 주파수로 나누어 대역폭 활성(Bandwidth Utilization) 값을 연산하는
DVFS 제어 장치.
According to claim 6,
The processing unit profiler
Calculating a bandwidth utilization value by dividing the result of multiplying the number of data transfers among the parameters by the number of clock signals and the previously stored data width by the operating frequency
DVFS control unit.
제6항에 있어서,
상기 프로세싱 장치 프로파일러는
상기 파라미터 중 다중 아웃스탠딩(Multiple Outstanding) 누적 값을 상기 파라미터 중 전송 요청 횟수로 나누어 평균 지연시간을 연산하는
DVFS 제어 장치.
According to claim 6,
The processing unit profiler
Calculating an average delay time by dividing a multiple outstanding accumulated value among the parameters by the number of transmission requests among the parameters
DVFS control unit.
제1 프로세싱 장치;
제2 프로세싱 장치;
상기 제1 프로세싱 장치와 상기 제2 프로세싱 장치 간을 연결하는 버스;
상기 버스에 연결되는 집적 회로;
상기 집적 회로와 연결되는 DVFS(Dynamic Voltage Frequency Scaling) 제어 장치를 포함하고,
상기 집적 회로는
상기 버스에 액세스하여, 상기 버스를 통해 전송되는 데이터에 기초하여 이벤트 신호를 출력하는 이벤트 블록;
클럭 관리 회로로부터 수신하는 클럭 신호의 개수를 카운트 하는 클럭 카운터;
상기 이벤트 신호에 기초하여 워크로드 연산에 이용되는 파라미터를 카운트하는 복수의 퍼포먼스 카운터들;
상기 DVFS 제어 장치로부터 동작 신호를 수신하며, 상기 클럭 신호의 개수와 상기 파라미터를 상기 DVFS 제어 장치로 송신하는 인터페이스; 및
상기 동작 신호에 기초하여, 상기 이벤트 블록, 상기 클럭 카운터 및 상기 복수의 퍼포먼스 카운터들의 동작을 제어하는 제어기를 포함하고,
상기 DVFS 제어 장치는
상기 클럭 신호의 개수와 상기 파라미터에 기초하여 상기 워크로드를 연산하는 프로세싱 장치 프로파일러;
상기 프로세싱 장치 프로파일러로부터 상기 워크로드를 수신하여 저장하는 메인 프로파일러;
상기 워크로드에 기초하여 프로세싱 장치의 동작 주파수 및 동작 전압을 결정하는 메인 컨트롤러; 및
상기 동작 주파수 및 상기 동작 전압을 상기 제1 프로세싱 장치 및 상기 제2 프로세싱 장치로 송신하는 프로세싱 장치 드라이버를 포함하는
컴퓨팅 시스템.
a first processing device;
a second processing device;
a bus connecting the first processing device and the second processing device;
an integrated circuit coupled to the bus;
Including a DVFS (Dynamic Voltage Frequency Scaling) control device connected to the integrated circuit,
The integrated circuit
an event block that accesses the bus and outputs an event signal based on data transmitted through the bus;
a clock counter counting the number of clock signals received from the clock management circuit;
a plurality of performance counters counting parameters used for workload calculation based on the event signal;
an interface that receives an operation signal from the DVFS control device and transmits the number of clock signals and the parameter to the DVFS control device; and
A controller controlling operations of the event block, the clock counter, and the plurality of performance counters based on the operation signal;
The DVFS control device
a processing unit profiler calculating the workload based on the number of clock signals and the parameters;
a main profiler receiving and storing the workload from the processing unit profiler;
a main controller that determines an operating frequency and an operating voltage of a processing device based on the workload; and
And a processing device driver for transmitting the operating frequency and the operating voltage to the first processing device and the second processing device.
computing system.
KR1020210117198A 2021-05-21 2021-09-02 Integrated circuit, dvfs governor and computing system including them KR20220157845A (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202210556012.7A CN115373506A (en) 2021-05-21 2022-05-20 Integrated circuit, dynamic voltage and frequency scaling regulator and system comprising same
US17/749,681 US11927981B2 (en) 2021-05-21 2022-05-20 Integrated circuit, dynamic voltage and frequency scaling (DVFS) governor, and computing system including the same

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20210065710 2021-05-21
KR1020210065710 2021-05-21

Publications (1)

Publication Number Publication Date
KR20220157845A true KR20220157845A (en) 2022-11-29

Family

ID=84234926

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210117198A KR20220157845A (en) 2021-05-21 2021-09-02 Integrated circuit, dvfs governor and computing system including them

Country Status (1)

Country Link
KR (1) KR20220157845A (en)

Similar Documents

Publication Publication Date Title
US11656675B2 (en) Application processor performing a dynamic voltage and frequency scaling operation, computing system including the same, and operation method thereof
US20180196488A1 (en) Method and apparatus to control a link power state
US20120182889A1 (en) Quality of Service (QoS)-Related Fabric Control
US9798375B1 (en) Credit-based processor energy consumption rate limiting system
KR101707096B1 (en) Generic host-based controller latency method and apparatus
US11275829B2 (en) Mechanism for throttling untrusted interconnect agents
KR20190050988A (en) Dynamic input / output coherence
US8493863B2 (en) Hierarchical fabric control circuits
US9971390B1 (en) Processor energy consumption rate limiting system
US20120185062A1 (en) Fabric Limiter Circuits
KR20220157845A (en) Integrated circuit, dvfs governor and computing system including them
US11927981B2 (en) Integrated circuit, dynamic voltage and frequency scaling (DVFS) governor, and computing system including the same
KR20220113087A (en) Integrated circuit and computing system performing dynamic voltage and frequency scaling and operation method of integrated circuit
US20170075589A1 (en) Memory and bus frequency scaling by detecting memory-latency-bound workloads
US10416692B2 (en) Method and apparatus for reducing capacitor-induced noise
US8861386B2 (en) Write traffic shaper circuits
US20220187866A1 (en) Electronic device controlling frequency of clock signal and method of operating the electronic device
US20190158374A1 (en) Dynamic fine grain link control
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
US11907036B2 (en) Integrated circuit performing dynamic voltage and frequency scaling operation and operating method thereof
US20220317855A1 (en) Methods and apparatus to process touch data
US20240061492A1 (en) Processor performing dynamic voltage and frequency scaling, electronic device including the same, and method of operating the same
KR20230000209A (en) Integrated circuit performing dynamic voltage and frequency scaling operation and operating method thereof