KR20220157845A - Integrated circuit, dvfs governor and computing system including them - Google Patents
Integrated circuit, dvfs governor and computing system including them Download PDFInfo
- 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
Links
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/266—Arrangements 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
-
- 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/3206—Monitoring of events, devices or parameters that trigger a change in power modality
-
- 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
-
- 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
Abstract
Description
본 개시의 기술적 사상은 집적 회로에 관한 것으로서, 상세하게는 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
컴퓨팅 시스템(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
우선, 복수의 프로세싱 장치들(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
하나 이상의 버스(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
하나 이상의 집적 회로(100)는 각각 하나 이상의 버스(400)와 연결될 수 있다. 하나 이상의 집적 회로(100)는 하나 이상의 버스(400)에 액세스하여, 하나 이상의 버스(400)를 통해 전송되는 데이터를 읽을 수 있다. 그리고 하나 이상의 집적 회로(100)는 읽은 데이터에 기초하여 연산을 수행할 수 있다.One or more integrated
DVFS 제어 장치(200)는 하나 이상의 집적 회로(100)로부터 수신한 데이터에 기초하여, 복수의 프로세싱 장치들(300)의 동작 전압 및 동작 주파수를 조절할 수 있다. The
DVFS 제어 장치(200)는 DVFS 기능과 동작을 수행할 수 있는 하드웨어를 의미하거나 DVFS 기능과 동작을 수행할 수 있는 컴퓨터 프로그램 코드를 의미할 수 있다. 다만, 이에 한정되지 않으며 DVFS 기능과 동작을 수행시킬 수 있는 컴퓨터 프로그램 코드가 탑재된 전자적 기록 매체, 예컨대 프로세서를 의미할 수 있다. 즉, DVFS 제어 장치(200)는 본 발명의 기술적 사상을 수행하기 위한 하드웨어 및/또는 하드웨어를 구동하기 위한 소프트웨어의 기능적 및/또는 구조적 결합을 의미할 수 있다.The
도 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
집적 회로(100)는 이벤트 블록(110), 클럭 카운터(120), 복수의 퍼포먼스 카운터들(130), 인터페이스(140) 및 제어기(150)를 포함할 수 있다. 그리고 집적 회로(100)는 플립 플롭(160), 클럭 게이팅 블록(170) 및 레지스터(180)를 더 포함할 수 있다.The
이벤트 블록(110)은 제1 프로세싱 장치(300_1)와 제2 프로세싱 장치(300_2) 간을 연결하는 버스(400)에 액세스할 수 있다. 이벤트 블록(110)은 버스(400)를 통해 전송되는 데이터를 읽을 수 있다. 이벤트 블록(110)은 버스(400)를 통해 전송되는 데이터에 기초하여 이벤트 신호를 출력할 수 있다.The
이벤트 신호는 버스(400)를 통해 전송되는 데이터에 기초하여 설정되는 신호로, 버스(400)를 통해 전송되는 데이터의 내용에 따라 다르게 설정될 수 있다.The event signal is a signal set based on data transmitted through the
이벤트 신호는 후술되는 파라미터를 카운트하기 위해 필수적인 신호만을 포함할 수 있다. 본 개시의 일 실시예에서 이벤트 신호는 전송 활성화 신호, 다중 아웃스탠딩(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
다중 아웃스탠딩 신호는 요청 데이터의 전송 여부 및 요청 데이터에 대한 응답 데이터의 전송 여부를 나타내는 신호일 수 있다. 다중 아웃스탠딩 신호는 버스(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
데이터 읽기 신호는 버스(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
데이터 쓰기 신호는 버스(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
요청 신호는 읽기 요청 데이터 또는 쓰기 요청 데이터가 전송된 것을 나타내는 신호일 수 있다. 예를 들어, 이벤트 블록(110)은 읽기 요청 데이터 또는 쓰기 요청 데이터가 전송되면, 요청 신호를 발생시킬 수 있다. 반대로, 이벤트 블록(110)은 읽기 요청 데이터 및 쓰기 요청 데이터가 전송되지 않으면, 요청 신호를 발생시키지 않을 수 있다.The request signal may be a signal indicating that read request data or write request data is transmitted. For example, the
이벤트 블록(110)은 제1 프로세싱 장치(300_1)와 제2 프로세싱 장치(300_2) 간의 통신에 이용되는 프로토콜에 기초하여 이벤트 신호를 출력할 수 있다. 즉, 이벤트 블록(110)은 제1 프로세싱 장치(300_1)와 제2 프로세싱 장치(300_2) 간을 연결하는 버스(400)에 적용된 프로토콜에 기초하여 이벤트 신호를 출력할 수 있다.The
본 개시의 일 실시예에서 이벤트 블록(110)은 제1 프로세싱 장치(300_1)와 제2 프로세싱 장치(300_2) 간의 통신에 이용되는 프로토콜이 연산 부호 프로토콜이면, 버스를 통해 전송되는 데이터에 포함된 연산 부호에 기초하여 다중 아웃스탠딩 신호를 설정하여 출력할 수 있다.In an embodiment of the present disclosure, the
연산 부호 프로토콜은 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
연산 부호가 데이터 읽기 요청 또는 데이터 쓰기 요청을 의미하는 연산 부호이면, 이벤트 블록(110)은 버스(400)를 통해 읽기 요청 데이터 또는 쓰기 요청 데이터가 전송되면 다중 아웃스탠딩 신호를 1만큼 증가시키고, 이벤트 블록(110)은 버스(400)를 통해 읽기 요청 데이터 또는 쓰기 요청 데이터에 대한 응답 데이터의 첫번째 데이터가 전송되면 다중 아웃스탠딩 신호를 1만큼 감소시킬 수 있다.If the operation code is an operation code indicating a data read request or data write request, the
또한, 연산 부호가 원자적 트랜잭션(Atomic Transaction)을 의미하는 연산 부호이면, 이벤트 블록(110)은 버스(400)를 통해 요청 데이터가 전송되면 다중 아웃스탠딩 신호를 1만큼 증가시키고, 이벤트 블록(110)은 버스(400)를 통해 요청 데이터에 대응되는 읽기 응답 데이터 및 쓰기 응답 데이터 중 어느 하나가 전송되면 다중 아웃스탠딩 신호를 1만큼 감소시킬 수 있다.In addition, if the operation code is an operation code meaning atomic transaction, the
또한, 연산 부호가 캐시 유지 연산(Cache Maintenance Operation; CMO)을 의미하는 연산 부호이면, 이벤트 블록(110)은 버스(400)를 통해 읽기 요청 데이터 또는 쓰기 요청 데이터가 전송되면 다중 아웃스탠딩 신호를 1만큼 증가시키고, 이벤트 블록(110)은 버스(400)를 통해 읽기 응답 데이터, 쓰기 응답 데이터 또는 데이터를 포함하지 않는 응답이 전송되면 다중 아웃스탠딩 신호를 1만큼 감소시킬 수 있다.In addition, if the operation code indicates a cache maintenance operation (CMO), the
본 개시의 일 실시예에서 이벤트 블록(110)은 제1 프로세싱 장치(300_1)와 제2 프로세싱 장치(300_2) 간의 통신에 이용되는 프로토콜이 연산 부호 프로토콜이 아니면, 버스를 통해 전송되는 데이터에 포함된 연산 부호에 관계없이 다중 아웃스탠딩 신호를 설정하여 출력할 수 있다.In an embodiment of the present disclosure, the
이때 이벤트 블록(110)은 버스(400)를 통해 요청 데이터가 전송되면, 다중 아웃스탠딩 신호를 1만큼 증가시킬 수 있다. 반대로, 이벤트 블록(110)은 버스(400)를 통해 응답 데이터가 모두 전송되면, 다중 아웃스탠딩 신호를 1만큼 감소시킬 수 있다.At this time, the
클럭 카운터(120)는 클럭 관리 회로(500)로부터 수신하는 클럭 신호의 개수를 카운트할 수 있다. 본 개시의 일 실시예에서, 클럭 카운터(120)는 클럭 신호가 0에서 1로 전환될 때마다, 클럭 신호의 개수를 카운트하여 증가시킬 수 있다. 본 개시의 다른 실시예에서, 클럭 카운터(120)는 클럭 신호가 1에서 0으로 전환될 때마다, 클럭 신호의 개수를 카운트하여 증가시킬 수 있다.The
복수의 퍼포먼스 카운터들(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
복수의 퍼포먼스 카운터들(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
그리고 인터페이스(140)는 클럭 신호의 개수와 파라미터를 DVFS 제어 장치(200)로 송신할 수 있다. 즉, 인터페이스(140)는 클럭 카운터(120) 및 복수의 퍼포먼스 카운터들(130)에 의해 카운트 된 값들을 DVFS 제어 장치(200)로 송신할 수 있다.Also, the
제어기(150)는 동작 신호에 기초하여 이벤트 블록(110), 클럭 카운터(120) 및 복수의 퍼포먼스 카운터들(130)의 동작을 제어할 수 있다.The
제어기(150)는 동작 신호에 기초하여 이벤트 블록(110), 클럭 카운터(120) 및 복수의 퍼포먼스 카운터들(130)을 활성화 또는 비활성화할 수 있다.The
본 개시의 일 실시예에서, 동작 신호가 활성화 신호이면, 제어기(150)는 클럭 카운터(120)가 클럭 신호의 개수를 카운트하고, 복수의 퍼포먼스 카운터들(130)들이 파라미터를 카운트하도록 제어할 수 있다. 반대로, 동작 신호가 비활성화 신호이면, 제어기(150)는 클럭 카운터(120) 및 복수의 퍼포먼스 카운터들(130)들이 동작을 중단하도록 제어할 수 있다. In one embodiment of the present disclosure, if the operation signal is an activation signal, the
또한, 제어기(150)는 동작 신호에 기초하여 클럭 카운터(120) 및 복수의 퍼포먼스 카운터들(130)에 인터럽트(interrupt)가 발생하였는지 판단할 수 있다.Also, the
본 개시의 일 실시예에서, 제어기(150)는 클럭 카운터(120) 및 복수의 퍼포먼스 카운터들(130)에 의해 카운트 된 값들 중 어느 하나와 인터럽트 기준 값을 비교하여, 인터럽트 발생 여부를 판단할 수 있다. 예를 들어, 제어기(150)는 클럭 카운터(120)에 의해 카운트 된 클럭 신호의 개수가 인터럽트 기준 값을 초과하면, 클럭 카운터(120)에 인터럽트가 발생한 것으로 판단할 수 있다.In one embodiment of the present disclosure, the
플립 플롭(160)은 이벤트 블록(110)과 복수의 퍼포먼스 카운터들(130) 사이에 연결될 수 있다. 플립 플롭(160)은 이벤트 신호를 복수의 퍼포먼스 카운터들(130)로 샘플링하여 전달할 수 있다. The
클럭 게이팅 블록(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
클럭 게이팅 블록(170)은 클럭 신호를 클럭 카운터(120) 및 복수의 퍼포먼스 카운터들(130)로 전송할 수 있다. 이때 도면 상에는 클럭 게이팅 블록(170)이 클럭 카운터(120)에만 클럭 신호를 전송하는 것으로 도시되어 있으나, 이에 한정되는 것은 아니다. 즉, 클럭 게이팅 블록(170)은 집적 회로(100)에 포함된 다른 블록들로 클럭 신호를 전송할 수 있다.The clock gating block 170 may transmit clock signals to the
레지스터(180)는 동작 신호, 클럭 신호의 개수 및 파라미터를 저장할 수 있다. 즉, 레지스터(180)는 클럭 카운터(120)에 의해 카운트 된 클럭 신호의 개수, 복수의 카운터들(130)들에 의해 카운트 된 파라미터를 저장할 수 있다. 이에 따라 인터페이스(140)는 레지스터(180)로부터 클럭 신호의 개수와 파라미터를 독출하여 DVFS 제어 장치(200)로 송신할 수 있다.The
도 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
S320 단계에서, 클럭 카운터(120)는 클럭 신호의 개수를 카운트할 수 있다. 즉, 클럭 카운터(120)는 클럭 관리 회로(500)로부터 수신하는 클럭 신호의 개수를 카운트할 수 있다.In step S320, the
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
이때 도 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
도 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
하나 이상의 프로세싱 장치 프로파일러(210)는 클럭 신호의 개수 및 파라미터를 집적 회로(100)로부터 수신할 수 있다. 그리고 하나 이상의 프로세싱 장치 프로파일러(210)는 클럭 신호의 개수 및 파라미터에 기초하여 워크로드를 연산할 수 있다. 이때 하나 이상의 프로세싱 장치 프로파일러(210)는 대응되는 프로세싱 장치(300)의 워크로드를 연산할 수 있다. One or more processing device profilers 210 may receive the number and parameters of clock signals from the
도 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
워크로드는 프로세싱 장치(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
액티브 비율은 전체 시간 중에서 프로세싱 장치(300)가 연결된 버스(400)가 활성화된 시간의 비율을 의미할 수 있다. 이때 프로세싱 장치(300)가 활성화된 시간은 버스(400)를 통해 요청이 전송된 시점부터 응답이 수신된 시점까지로 측정할 수 있다.The active ratio may refer to a ratio of time in which the
하나 이상의 프로세싱 장치 프로파일러(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
하나 이상의 프로세싱 장치 프로파일러(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
평균 지연시간은 버스(400)를 통해 요청 데이터가 전송된 시점으로부터 응답 데이터가 수신되는 시점까지의 평균 시간을 의미할 수 있다.The average delay time may mean an average time from the time when request data is transmitted through the
하나 이상의 프로세싱 장치 프로파일러(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
연산 부호가 캐시 유지 연산을 의미하는 연산 부호일 때, 응답으로 데이터를 포함하지 않는 응답이 전송되는 경우, 지연시간은 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
메인 프로파일러(220)는 하나 이상의 프로세싱 장치 프로파일러(210)로부터 워크로드를 수신하여 저장할 수 있다. 그리고 메인 프로파일러(220)는 저장된 워크로드를 메인 컨트롤러(240)로 송신할 수 있다.The
또한 메인 프로파일러(220)는 메인 컨트롤러(240)로부터 프로세싱 장치(300)의 동작 전압 및 동작 주파수를 수신한 후, 하나 이상의 프로세싱 장치 드라이버(230)로 전송할 수 있다.Also, the
메인 컨트롤러(240)는 DVFS 제어 장치(200)의 전반적인 동작을 제어할 수 있다. 메인 컨트롤러(240)는 메인 프로파일러(220)로부터 수신한 워크로드에 기초하여 프로세싱 장치(300)의 동작 주파수 및 동작 전압을 결정할 수 있다.The
본 개시의 일 실시예에서, 메인 컨트롤러(240)는 액티브 비율, 대역폭 활성 값 및 평균 지연시간에 비례하여 동작 전압 및 동작 주파수를 결정할 수 있다. 즉, 메인 컨트롤러(240)는 워크로드가 높게 측정된 경우, 동작 전압 및 동작 주파수를 증가시킴으로써, 프로세싱 장치(300)의 원활한 동작이 가능하도록 할 수 있다. 반대로, 메인 컨트롤러(240)는 워크로드가 낮게 측정된 경우, 동작 전압 및 동작 주파수를 감소시킴으로써, 프로세싱 장치(300)에 의해 소모되는 전력을 감소시킬 수 있다.In an embodiment of the present disclosure, the
하나 이상의 프로세싱 장치 드라이버(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
도 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
도 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
S820 단계에서, 메인 컨트롤러(240)는 워크로드에 기초하여 프로세싱 장치(300)의 동작 주파수 및 동작 전압을 결정할 수 있다. 이때 메인 컨트롤러(240)는 하나 이상의 프로세싱 장치 프로파일러(210)에 의해 연산된 액티브 비율, 대역폭 활성 값 및 평균 지연시간에 비례하여 프로세싱 장치(300)의 동작 주파수 및 동작 전압을 결정할 수 있다.In step S820, the
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
S920 단계에서, 집적 회로(100)는 클럭 카운터(120) 및 복수의 퍼포먼스 카운터들(130)을 통해 클럭 신호의 개수 및 파라미터를 카운트할 수 있다. 이때 클럭 카운터(120)는 클럭 관리 회로(500)로부터 수신하는 클럭 신호의 개수를 카운트할 수 있다. 그리고 복수의 퍼포먼스 카운터들(130)은 이벤트 신호에 기초하여 파라미터를 카운트할 수 있다. 클럭 신호의 개수 및 파라미터를 카운트하는 방법은 도 2를 참조하여 상술한 바와 같을 수 있다.In step S920, the
S930 단계에서, 집적 회로(100)는 제어기(150)를 통해 클럭 카운터(120) 및 복수의 퍼포먼스 카운터들(130) 중 어느 하나에 인터럽트가 발생하였는지 판단할 수 있다. 이때 제어기(150)는 클럭 카운터(120) 및 복수의 퍼포먼스 카운터들(130)에 의해 카운트 된 값들 중 어느 하나와 인터럽트 기준 값을 비교하여, 인터럽트 발생 여부를 판단할 수 있다.In step S930, the
만일 제어기(150)가 클럭 카운터(120) 및 복수의 퍼포먼스 카운터들(130) 모두에 인터럽트가 발생하지 않았다고 판단하면, 미리 설정된 기준 시간이 경과한 후 다시 S930 단계를 반복할 수 있다.If the
반대로 제어기(150)가 클럭 카운터(120) 및 복수의 퍼포먼스 카운터들(130) 중 어느 하나에 인터럽트가 발생하였다고 판단하면, S940 단계로 넘어갈 수 있다. 이때 제어기(150)는 클럭 카운터(120) 및 복수의 퍼포먼스 카운터들(130) 중 어느 하나에 인터럽트가 발생하였음을 DVFS 제어 장치(200)로 전송할 수 있다.Conversely, when the
S940 단계에서, 제어기(150)는 클럭 카운터(120) 및 복수의 퍼포먼스 카운터들(130)을 비활성화할 수 있다. 제어기(150)는 DVFS 제어 장치(200)로부터 비활성화 신호를 수신함에 따라, 클럭 카운터(120) 및 복수의 퍼포먼스 카운터들(130)을 비활성화할 수 있다.In step S940, the
그리고 S950 단계에서, 제어기(150)는 클럭 신호의 개수와 파라미터를 DVFS 제어 장치(200)로 송신할 수 있다. 이때 제어기(150)는 인터페이스(140)를 통해 클럭 신호의 개수와 파라미터를 DVFS 제어 장치(200)로 송신할 수 있다.In step S950, the
도 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
도 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
시스템(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
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)의 구성요소들에 전력을 공급할 수 있다.
도 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
무선 송수신기(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)와 연결되는 버스에 본 개시의 실시예에 따른 집적 회로(100)가 연결될 수 있고, DVFS 제어 장치(200)는 집적 회로(100)를 통해 수신한 클럭 신호의 개수와 파라미터에 기초하여 DVFS 동작을 수행할 수 있다.At this time, the
도 12에는 도시되지 않았으나, 통신 장치(40)에 구비되는 각종 구성들에 클럭 신호를 제공하는 클럭 관리부 및 전원 전압을 제공하는 전력 관리부를 더 포함할 수 있다.Although not shown in FIG. 12 , the
상술한 바와 같은 본 개시에 따른 집적 회로(100), DVFS 제어 장치(200) 및 컴퓨팅 시스템(10)을 이용하면, 워크로드 연산에 이용되는 파라미터를 카운트하고, 파라미터에 기초하여 DVFS 동작을 수행함으로써, 보다 적은 공간을 차지하면서, 적은 전력을 소모하며 DVFS 동작을 수행할 수 있다.Using the
이상에서와 같이 도면과 명세서에서 예시적인 실시예들이 개시되었다. 본 명세서에서 특정한 용어를 사용하여 실시예들을 설명되었으나, 이는 단지 본 개시의 기술적 사상을 설명하기 위한 목적에서 사용된 것이지 의미 한정이나 청구범위에 기재된 본 개시의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 기술분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 개시의 진정한 기술적 보호범위는 첨부된 청구범위의 기술적 사상에 의해 정해져야 할 것이다.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.
상기 이벤트 블록은
상기 프로세싱 장치 간의 통신에 이용되는 프로토콜에 기초하여 상기 이벤트 신호를 출력하는
집적 회로.According to claim 1,
The event block
Outputting the event signal based on a protocol used for communication between the processing devices.
integrated circuit.
상기 이벤트 신호는 다중 아웃스탠딩(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 퍼포먼스 카운터;
상기 데이터 전송 횟수를 카운트하는 제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.
상기 제어기는 상기 동작 신호에 기초하여 상기 이벤트 블록, 상기 클럭 카운터 및 상기 복수의 퍼포먼스 카운터들을 활성화 또는 비활성화하고, 상기 클럭 카운터 및 상기 복수의 퍼포먼스 카운터들에 인터럽트(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.
상기 프로세싱 장치 프로파일러는
상기 파라미터 중 액티브 시간을 상기 클럭 신호의 개수로 나누어 액티브 비율을 연산하는
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.
상기 프로세싱 장치 프로파일러는
상기 파라미터 중 데이터 전송 횟수에 상기 클럭 신호의 개수 및 미리 저장된 데이터 폭을 곱한 결과를 상기 동작 주파수로 나누어 대역폭 활성(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.
상기 프로세싱 장치 프로파일러는
상기 파라미터 중 다중 아웃스탠딩(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.
제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.
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) |
-
2021
- 2021-09-02 KR KR1020210117198A patent/KR20220157845A/en unknown
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 |