KR20180075162A - 전자 시스템 및 그 동작 방법 - Google Patents

전자 시스템 및 그 동작 방법 Download PDF

Info

Publication number
KR20180075162A
KR20180075162A KR1020160179164A KR20160179164A KR20180075162A KR 20180075162 A KR20180075162 A KR 20180075162A KR 1020160179164 A KR1020160179164 A KR 1020160179164A KR 20160179164 A KR20160179164 A KR 20160179164A KR 20180075162 A KR20180075162 A KR 20180075162A
Authority
KR
South Korea
Prior art keywords
processor
clock
cache
request
state
Prior art date
Application number
KR1020160179164A
Other languages
English (en)
Other versions
KR102576707B1 (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 KR1020160179164A priority Critical patent/KR102576707B1/ko
Priority to US15/618,636 priority patent/US10503471B2/en
Priority to EP17184172.9A priority patent/EP3340011A1/en
Priority to JP2017159266A priority patent/JP7156781B2/ja
Priority to CN201710984989.8A priority patent/CN108241428A/zh
Publication of KR20180075162A publication Critical patent/KR20180075162A/ko
Application granted granted Critical
Publication of KR102576707B1 publication Critical patent/KR102576707B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F5/06Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor
    • G06F5/10Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor having a sequence of storage locations each being individually accessible for both enqueue and dequeue operations, e.g. using random access memory
    • G06F5/12Means for monitoring the fill level; Means for resolving contention, i.e. conflicts between simultaneous enqueue and dequeue operations
    • G06F5/14Means for monitoring the fill level; Means for resolving contention, i.e. conflicts between simultaneous enqueue and dequeue operations for overflow or underflow handling, e.g. full or empty flags
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • 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/3237Power saving characterised by the action undertaken by disabling clock generation or distribution
    • 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
    • G06F1/3215Monitoring of peripheral devices
    • 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
    • G06F1/3228Monitoring task completion, e.g. by use of idle timers, stop commands or wait commands
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/324Power saving characterised by the action undertaken by lowering clock frequency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3243Power saving in microcontroller unit
    • 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/3287Power saving characterised by the action undertaken by switching off individual functional units in the computer system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • G06F12/0831Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0875Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with dedicated cache, e.g. instruction or stack
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2205/00Indexing scheme relating to group G06F5/00; Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F2205/12Indexing scheme relating to groups G06F5/12 - G06F5/14
    • G06F2205/126Monitoring of intermediate fill level, i.e. with additional means for monitoring the fill level, e.g. half full flag, almost empty flag
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/62Details of cache specific to multiprocessor cache arrangements
    • G06F2212/621Coherency control relating to peripheral accessing, e.g. from DMA or I/O device
    • 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
    • Y02D10/128

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Microcomputers (AREA)
  • Power Sources (AREA)
  • Executing Machine-Instructions (AREA)

Abstract

일 실시예에 따른 전자 시스템은, 클럭(clock) 신호를 제어하는 클럭 관리부(clock management unit) 및 클럭 관리부와 직접(directly) 연결되어, 동작 상태에 따라 클럭 관리부에 클럭 신호의 제어 요청을 전송하는 프로세서를 포함 것을 특징으로 한다.

Description

전자 시스템 및 그 동작 방법{ELECTRIC SYSTEM AND OPERATION METHOD THEREOF}
본 개시는 전자 시스템 및 그 동작 방법에 관한 것이다.
시스템 온 칩(System on Chip, 이하 SoC)에서는 하나의 칩(chip)에 전자 시스템의 여러 가지 디바이스가 하나로 집적되어 전력 관리가 용이하다는 장점이 있다. SoC에 집적되는 디바이스에 대하여 클럭(clock)을 디스에이블(disable)하는 클럭 게이팅(clock gating)을 수행하게 되면, 해당 디바이스의 동적 전력(dynamic power)를 줄일 수 있다. 종래 기술에 따르면, 특정 디바이스에 대한 클럭 게이팅 수행 시 중앙 처리 장치(Central Processing unit, 이하 CPU)가 해당 디바이스의 드라이버에 접속(access)하여 작업 큐(job queue)를 확인하고, 작업 큐가 비어 있는 경우 해당 디바이스가 유휴 상태에 있다고 판단한다. 그 후, 중앙 처리 장치는 SoC에 집적되는 디바이스 중 하나인 클럭 관리부(Clock Mangement Unit, CMU)를 클럭 관리부 드라이버를 통해 제어하여 해당 디바이스의 클럭을 게이팅 한다.
일 실시예는 동적 전력(dynamic power)를 줄일 수 있는 전자 시스템 및 그 전자 시스템의 동작 방법을 제공한다.
일 실시예에 따른 전자 시스템은, 클럭(clock) 신호를 제어하는 클럭 관리부(clock management unit) 및 클럭 관리부와 직접(directly) 연결되어, 동작 상태에 따라 클럭 관리부에 클럭 신호의 제어 요청을 전송하는 프로세서를 포함 것을 특징으로 한다.
다른 실시예에 따른 전사 시스템의 동작 방법은, 프로세서의 동작 상태를 판단하는 단계 및 프로세서의 동작 상태에 따라, 프로세서가 직접 클럭 관리부에 클럭 신호의 제어 신호 요청을 전송하는 단계를 포함하는 것을 특징으로 한다.
또다른 실시예에 따른 전사 시스템은, 하드웨어 캐시 일관성을 지원하는 제1 프로세서 및 제2 프로세서 및 상기 제1 프로세서 및 상기 제2 프로세서의 클럭을 제어하는 클럭 관리부를 포함하고, 상기 제2 프로세서는 상기 제1 프로세서로부터 수신한 캐시 일관성 신호를 수신하면 상기 클럭 관리부로 클럭 인에이블 요청 신호를 출력하고, 상기 클럭 관리부는 상기 클럭 인에이블 요청 신호에 응답하여 상기 제2 프로세서를 인에이블 하는 것을 특징으로 한다.
도 1은 일 실시예에 따른 전자 시스템을 나타내는 도면이다.
도 2는 일 실시예에 따른 전자 시스템의 내부 구성을 나타내는 도면이다.
도 3은 일 실시예에 따른 전자 시스템의 클럭 제어 동작을 나타내는 도면이다.
도 4는 일 실시예에 따라 클럭 관리 요청 인터페이스와 클럭 관리부 사이의 동작을 나타내는 도면이다.
도 5는 일 실시예에 따른 클럭 관리 요청 판단부의 판단 결과에 따라 클럭 관리부에 클럭 인에이블 또는 클럭 디스에이블 요청을 전송하는 과정을 나타내는 도면이다.
도 6는 일 실시예에 따른 클럭 관리 요청 인터페이스와 캐시 일관성 인터페이스를 나타내는 도면이다.
도 7은 일 실시예에 따른 전자 시스템의 동작 방법을 나타내는 순서도이다.
도 8은 일 실시예에 따른 프로세서의 동작 상태를 판단하는 방법을 나타내는 순서도이다.
이하에서는 도면을 참조하여 다양한 실시예들을 상세히 설명한다. 이하에서 설명되는 실시예들은 여러 가지 상이한 형태로 변형되어 실시될 수도 있다. 실시예들의 특징을 보다 명확히 설명하기 위하여 이하의 실시예들이 속하는 기술분야에서 통상의 지식을 가진 자에게 널리 알려져 있는 사항들에 관해서 자세한 설명은 생략한다.
한편, 본 명세서에서 어떤 구성이 다른 구성과 "연결"되어 있다고 할 때, 이는 ‘직접적으로 연결’되어 있는 경우뿐 아니라, ‘그 중간에 다른 구성을 사이에 두고 연결’되어 있는 경우도 포함한다. 또한, 어떤 구성이 다른 구성을 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한, 그 외 다른 구성을 제외하는 것이 아니라 다른 구성들 더 포함할 수도 있다는 것을 의미한다.
도 1은 일 실시예에 따른 전자 시스템을 나타내는 도면이다.
도 1을 참조하면, 일 실시예에 따른 전자 시스템(100)은 중앙 처리 장치(CPU)(110), 디지털 신호 처리 장치(Digital Signal Processor, 이하 DSP)(120), 메모리(130), 그래픽 처리 장치(Graphic Processing unit, 이하 GPU)(140) 및 클럭 관리부(150) 등을 포함할 수 있다. 다만, 이러한 구조는 하나의 예시에 불과하며, 전자 시스템(100)은 추가적으로 다양한 디바이스를 더 포함할 수도 있다. 예를 들어, 전자 시스템(100)은 입출력 인터페이스(Input/Output interface) 등을 더 포함할 수 있다.
중앙 처리 장치(110), 디지털 신호 처리 장치(120), 그래픽 처리 장치(140)와 같은 처리 장치들은 각각의 기능에 따라 데이터를 입력 받아 기억하고, 연산하며, 연산된 데이터를 출력함으로써 데이터를 처리하는 역할을 수행한다. 이러한 처리 장치들은 데이터 처리를 위하여 각각 캐시(111, 121, 141)를 포함할 수 있다. 전자 시스템(100)은 이러한 캐시(111, 121, 141)들 간에는 저장된 데이터를 공유하기 위한 캐시 일관성(cache coherence)을 지원할 수 있다. 또한, 캐시 일관성은 소프트웨어적인 처리가 아닌 하드웨어 간 직접 연결을 통해 지원될 수 있다. 이에 대해서는 아래에서 다시 자세히 설명하도록 한다.
메모리(130)는 전자 시스템(100)의 구동에 관련된 OS(Operating System), 각종 프로그램들 및 데이터를 저장할 수 있다. 또한, 메모리에 저장된 데이터는 각 처리 장치로 제공될 수 있다.
클럭 관리부(150)는 전자 시스템(100)의 클럭 신호를 관리하는 역할을 수행한다. 클럭 관리부(150)는 중앙 처리 장치(110), 디지털 신호 처리 장치(120), 메모리(130), 그래픽 처리 장치(140) 등 각 디바이스에 입력되는 클럭 신호를 제어할 수 있다. 보다 구체적으로, 클럭 관리부(150)는 각 디바이스에 입력되는 클럭 신호를 인에이블(enable) 또는 디스에이블(disable) 할 수 있다.
이러한 개별 디바이스들은 버스(BUS)(160)로 연결된다. 버스(160)는 시스템 버스를 포함하며, 소정의 표준 버스 규격을 갖는 프로토콜이 적용된 버스로 구현될 수 있다. 예컨대, 표준 버스 규격으로서, ARM(Advanced RISC Machine) 사의 AMBA(Advanced Microcontroller Bus Architecture) 프로토콜이 적용될 수 있다. 이외에도, 소닉사(SONICs Inc.)의 uNetwork 이나 IBM의 CoreConnect, OCP-IP의 오픈 코어 프로토콜(Open Core Protocol) 등 다른 타입의 프로토콜이 시스템 버스에 적용되어도 무방하다.
전자 시스템(100)은 시스템 온 칩(System on Chip, SoC)으로 구현될 수 있다. 다시 말해, 중앙 처리 장치(110), 디지털 신호 처리 장치 (120), 메모리(130), 그래픽 처리 장치(140) 및 클럭 관리부(150) 등은 집적되어 하나의 칩으로 구현될 수 있다.
도 2는 일 실시예에 따른 전자 시스템의 내부 구성을 나타내는 도면이다.
도 2를 참조하면, 전자 시스템(200)은, 클럭 관리부(210) 및 프로세서(220)를 포함한다.
클럭 관리부(210)는 클럭(clock) 신호를 제어한다. 클럭 관리부(210)는 직접 연결된 프로세서(220)로부터 클럭 신호 제어 요청을 수신할 수 있다. 다시 말해, 클럭 관리부(210)는 다른 디바이스를 거치지 않고, 프로세서(220)로부터 직접 클럭 신호의 제어 요청을 수신할 수 있다.
클럭 관리부(210)는 프로세서(220)의 요청에 따라 프로세서(220)로 입력되는 클럭 신호를 인에이블 하거나 또는 디스에이블 할 수 있다. 이때, 클럭 관리부(210)는 프로세서(220)로부터 클럭 디스에이블 요청을 수신하더라도 클럭 디스에이블 요청을 수신한 시점과 직전 클럭 인에이블 시점과의 시간 간격이 기 설정된 시간 이하인 경우, 프로세서(220)로 입력되는 클럭 신호를 디스에이블 하지 않고 인에이블로 유지할 수 있다. 이와 같이, 클럭 관리부(210)는 클럭 상태 변경 간격을 일정 시간 이상으로 유지함으로써 프로세서(220)의 처리 효율을 높일 수 있다.
도 3 및 도 4를 참조하여 클럭 관리부의 클럭 제어 동작을 구체적으로 살펴보도록 한다.
도 3은 일 실시예에 따른 전자 시스템의 클럭 제어 동작을 나타내는 도면이다.
도 3에서 프로세서(340), 예를 들어, 그래픽 처리 장치(GPU), 디지털 신호 처리 장치(DSP) 등과 같은 처리 장치는 클럭 관리부(310)의 제어에 따라 클럭을 입력 받는다.
클럭 관리부(310)는 프로세서(340)로부터 클럭 신호의 제어 요청을 수신하여 AND 게이트(330)로 0 또는 1을 출력한다.
클럭 생성부(320)는 클럭 신호를 생성하여 AND 게이트(330)로 생성한 클럭 신호를 출력한다.
클럭 관리부(310)가 0을 출력하는 경우, AND 게이트(330)에 의해 프로세서(340)로 입력되는 신호는 0 이 되고, 프로세서(340)의 클럭 신호는 디스에이블 된다. 클럭 관리부(310)가 1을 출력하는 경우, AND 게이트(330)에 의해 클럭 생성부(320)에서 생성된 클럭 신호가 프로세서(340)로 입력되어 프로세서(340)의 클럭 신호는 인에이블 된다.
일 실시예에 따르면, 프로세서(340)가 다른 디바이스를 거치지 않고, 클럭 관리부(310)와 직접 연결되어, 프로세서(340)로 입력되는 클럭 신호의 인에이블 또는 디스에이블 요청을 전달할 수 있다. 따라서, 신호 처리 과정에 지연이 발생하지 않아, 클럭이 즉각적으로 인에이블 또는 디스에이블 될 수 있다.
도 4는 일 실시예에 따라 클럭 관리 요청 인터페이스와 클럭 관리부 사이의 동작을 나타내는 도면이다.
도 4를 참조하면, 프로세서(220)가 클럭 관리부(210)에 클럭 관리 요청 신호(CLK REQ)를 전송한다. 이때, 클럭 관리 요청 신호(CLK REQ)는 클럭 인에이블 요청일 수도 있고, 클럭 디스에이블 요청일 수도 있다.
클럭 관리 요청 신호(CLK REQ)를 수신한 클럭 관리부(210)는 신호를 수신하였다는 ACCEPT 신호를 프로세서(220)로 전송하여 프로세서(220)와 클럭 관리부(210) 사이에 핸드셰이크(handshake)가 구현될 수 있다.
프로세서(220)는 ACCEPT 신호 수신 후, 클럭 관리부(210)에 이를 확인하기 위한 ACK 신호를 전송할 수도 있다.
다시 도 2의 설명으로 돌아가면,
프로세서(220)는 캐시(221), 프로세서(220)의 동작 상태를 저장하는 상태 레지스터(status register)(222), 상태 레지스터(222)에 저장된 프로세서(220)의 동작 상태를 판단하는 클럭 관리 요청 판단부(clock management request determination unit)(223) 및 클럭 관리부(210)와 직접(directly) 연결되는 클럭 관리 요청 인터페이스(clock management request interface)(224)를 포함할 수 있다.
캐시(221)는 라스트 레벨 캐시(Last Level Cache, LLC)일 수 있다. 나아가, 캐시(221)는 캐시 일관성(cache coherence)을 지원하기 위한 캐시 일관성 인터페이스(cache coherence interface)(미도시)를 포함할 수 있고, 이를 이용하여 다른 디바이스에 포함된 캐시와의 관계에서 하드웨어 캐시 일관성을 지원할 수 있다.
프로세서(220)는 클럭 관리 요청 판단부(223)의 판단 결과에 따라 클럭 관리 요청 인터페이스(224)를 통해 직접 클럭 관리부(210)에 클럭 인에이블 또는 클럭 디스에이블 요청을 전송할 수 있다.
상태 레지스터(222)는 프로세서(220)의 파이프라인의 상태를 저장하는 프로세서 상태 레지스터(미도시)와 캐시(221)의 상태를 저장하는 캐시 상태 레지스터(미도시)를 포함할 수 있다. 프로세서 상태 레지스터는 프로세서(220)의 파이프라인이 활성 상태인지 또는 유휴 상태인지 여부를 저장할 수 있다. 보다 구체적인 동작을 살펴보면, 프로세서 상태 레지스터는 프로세서(220)가 작업 큐(job queue)의 마지막 작업을 끝내는 경우, 유휴 상태로 업데이트 된다. 캐시 상태 레지스터는 캐시(221)가 활성 상태인지 또는 유휴 상태인지 여부를 저장할 수 있다. 보다 구체적인 동작을 살펴보면, 캐시 상태 레지스터는 캐시(221)가 요청된 작업을 마치고, FIFO empty 상태(FIFO empty condition)인 경우, 유휴 상태로 업데이트 된다. 다시 말해, 캐시 상태 레지스터는 프로세서(220)의 메모리 시스템이 유휴 상태인지 여부를 나타낼 수 있다.
클럭 관리 요청 판단부(223)는 상태 레지스터(222)를 이용하여 프로세서(220)가 유휴 상태인지 또는 활성 상태인지 여부를 판단할 수 있다. 보다 구체적으로, 클럭 관리 요청 판단부(223)는 상태 레지스터(222)에 저장된 프로세서(220)의 파이프라인과 캐시(221)의 상태를 바탕으로 프로세서(220)가 유휴 상태인지 또는 활성 상태인지 여부를 판단할 수 있다.
또한, 클럭 관리 요청 판단부(223)는 캐시 일관성 인터페이스를 통해 캐시 일관성과 관련된 캐시 일관성 신호가 전송 또는 수신되는지 여부를 판단할 수 있다. 보다 구체적으로, 클럭 관리 요청 판단부(223)는 캐시 일관성 트래픽(cache coherent traffic)이 전송 또는 수신되고 있는지 여부를 판단할 수 있다. 보다 구체적으로, 클럭 관리 요청 판단부(210)는 캐시 일관성을 위한 스눕 트래픽(snoop traffic)이 다른 프로세서로 전송 또는 다른 프로세서로부터 수신되는지 여부를 판단할 수 있다. 나아가, 클럭 관리 요청 판단부(223)는, 다른 디바이스가 프로세서(220)에 접속하고 있는지 여부를 판단할 수도 있다. 보다 구체적으로, 다른 디바이스가 프로세서 디바이스 드라이버를 통해 프로세서(220)의 제어 레지스터 또는 상태 레지스터에 읽기 또는 쓰기 동작을 수행하는지 여부를 판단할 수 있다.
클럭 관리 요청 판단부(223)가 프로세서(220)의 파이프라인과 캐시(221)가 유휴 상태이고, 캐시 일관성 트래픽이 전송 또는 수신되고 있지 않으며, 다른 디바이스가 프로세서(220)에 접속하고 있지 않다고 판단하는 경우, 프로세서(220)가 유휴 상태라고 판단할 수 있다. 반대로, 프로세서(220)의 파이프라인 또는 캐시(221)가 활성 상태이거나, 캐시 일관성 트래픽이 전송 또는 수신되고 있거나, 다른 디바이스가 프로세서(220)에 접속하고 있다고 판단하는 경우, 클럭 관리 요청 판단부(223)는 프로세서(220)가 활성 상태라고 판단할 수 있다.
도 5를 참조하여 보다 상세히 살펴보도록 한다.
도 5는 일 실시예에 따른 클럭 관리 요청 판단부의 판단 결과에 따라 클럭 관리부에 인에이블 또는 디스에이블 요청을 전송하는 과정을 나타내는 도면이다.
도 5를 참조하면, 클럭 관리 요청 판단부(223)는 다음 4가지 조건에 따라 클럭 관리부(210)에 인에이블 또는 디스에이블 요청을 판단한다.
1. 프로세서(220)의 파이프라인의 상태
2. 캐시(221)의 상태
3. 캐시 일관성 트래픽이 다른 프로세서로 전송 또는 다른 프로세서로부터 수신되는지 여부
4. 다른 디바이스가 프로세서(220)에 접속하는지 여부
일 실시예에서, 클럭 관리 요청 인터페이스(224)에서 출력 되는 클럭 관리 요청 신호(CLK REQ)가 0이면, 클럭 관리부(210)에 클럭 디스에이블 요청이 이루어질 수 있다. 보다 구체적으로 살펴보면, 프로세서(220)의 파이프라인이 유휴 상태로 OR 게이트(510)의 제1 입력(521)이 0이 되고, 캐시(221)가 유휴 상태로 OR 게이트(510)의 제2 입력(522)이 0이 되며, 캐시 일관성 트래픽이 전송 또는 수신되지 않아 OR 게이트(510)의 제3 입력(523)이 0이 되고, 다른 디바이스가 프로세서(220)에 접속하지 않아 OR 게이트(510)의 제4 입력(524)이 0이 되는 경우, 다시 말해 OR 게이트(510)의 입력이 모두 0이 되는 경우, OR 게이트(510)의 출력은 0이 된다. 이때, 클럭 관리 요청 판단부(223)는 프로세서(220)가 유휴 상태라고 판단할 수 있고 클럭 관리 요청 인터페이스(224)를 통해 클럭 관리 요청 신호(CLK REQ)가 0인 클럭 디스에이블 요청을 클럭 관리부(210)에 전송할 수 있다.
반대로, 클럭 관리 요청 인터페이스(224)에서 출력 되는 클럭 관리 요청 신호(CLK REQ)가 1이면 클럭 관리부(210)에 클럭 인에이블 요청이 이루어질 수 있다. 보다 구체적으로 살펴보면, 프로세서(220)의 파이프라인이 활성 상태로 OR 게이트(510)의 제1 입력(521)이 1이 되거나, 캐시(221)가 활성 상태로 OR 게이트(510)의 제2 입력(522)이 1이 되거나, 캐시 일관성 트래픽이 전송 또는 수신되어 OR 게이트(510)의 제3 입력(523)이 1이 되거나, 또는 다른 디바이스가 프로세서(220)에 접속하여 OR 게이트(510)의 제4 입력(524)이 1이 되는 경우, 다시 말해 4 개의 OR 게이트(510)의 입력(521~524) 중 어느 하나라도 1을 만족하는 경우, OR 게이트(510)의 출력은 1이 된다. 클럭 인에이블 요청은 프로세서(220)의 클럭이 디스에이블인 상태에서 발생되므로, 대체적으로 캐시 일관성 트래픽이 전송 또는 수신되거나 다른 디바이스가 프로세서(220)에 접속하는 경우, 인에이블 요청이 전송된다. 따라서, 프로세서(220)는 클럭 관리 요청 인터페이스(224)를 통해 클럭 관리 요청 신호(CLK REQ)가 1인 인에이블 요청을 클럭 관리부(210)에 전송할 수 있다.
일 실시예에 따르면, 다른 디비아스가 프로세서(220)에 접속하여 프로세서(220)의 동작 상태를 판단하는 것이 아니라, 프로세서(220)에 포함된 클럭 관리 요청 판단부(223)가 프로세서(220)의 유휴 시점을 판단하게 된다. 또한, 프로세서(220)가 클럭 관리부(210)에 직접 연결되어 클럭 신호의 제어 요청을 전송함으로써, 다른 디바이스가 클럭 관리부(210)의 제어 레지스터에 프로세서(220)의 클럭을 제어하기 위한 명령(command)를 저장할 필요가 없다. 따라서, 신호 처리 과정에서 지연이 발생하지 않아 클럭을 즉각적으로 인에이블 또는 디스에이블 할 수 있다.
다시 도 2의 설명으로 돌아가면, 전자 시스템(200)은 버스(bus)를 포함할 수 있고, 클럭 관리 요청 인터페이스(224)는 버스를 통해 클럭 관리부(210)와 직접 연결될 수 있다. 또한, 전자 시스템(200)은 버스를 통해 프로세서(220)의 캐시(221)와 다른 디바이스에 포함된 캐시 간에 캐시 일관성을 지원할 수 있다. 도 6을 참조하여 보다 구체적으로 설명하기로 한다.
도 6은 일 실시예에 따른 클럭 관리 요청 인터페이스와 캐시 일관성 인터페이스를 나타내는 도면이다.
도 6을 참조하면, 전자 시스템은 클럭 관리부(210), 프로세서(220) 및 디바이스(230)를 포함한다.
프로세서(220)는 캐시(221)와 클럭 관리 요청 인터페이스(224)를 포함하고, 캐시(221)는 캐시 일관성 인터페이스(610)를 포함할 수 있다. 디바이스(230) 또한 캐시(232)을 포함하고, 디바이스(230)에 포함된 캐시(232) 역시 캐시 일관성 인터페이스(620)를 포함할 수 있다. 다른 디바이스(230)는 예를 들어, 중앙 처리 장치(CPU)일 수 있고, 프로세서(220)는 그래픽 처리 장치(GPU) 또는 디지털 신호 처리 장치(DSP)와 같은 처리 장치일 수 있다.
프로세서(220)의 캐시 일관성 인터페이스(610)와 디바이스(230)의 캐시 일관성 인터페이스(620)는 버스(240)을 통해 직접 연결된다. 따라서, 전자 시스템(200)은 메모리를 사용하지 않고 캐시 간 직접 연결을 통해 하드웨어적으로 캐시 일관성을 지원할 수 있다.
하드웨어적으로 캐시 일관성을 지원하는 경우, 종래에는 프로세서(220)가 스눕 트래픽을 서비스하기 위해 항상 클럭을 인에이블 하고 있었어야 하였다. 하지만, 개시된 전자 시스템은, 프로세서(220)가 클럭 관리 요청 인터페이스(224)를 통해 클럭 관리부(210)와 직접 연결되어 클럭 관리부(210)에 클럭 신호의 제어 요청을 전송함으로써 하드웨어 캐시 일관성을 지원하는 환경에서도 클럭 게이팅을 수행할 수 있어 동적 전력 소모를 줄일 수 있다.
다시 도 2의 설명으로 돌아가면,
클럭 관리부(210)는 별도의 디바이스에 의해 제어될 수 있다. 클럭 관리부(210)를 제어하는 별도의 디바이스(미도시)는 클럭 관리부(210) 디바이스 드라이버를 통해 클럭 관리부(210)를 제어할 수 있다. 보다 구체적으로, 클럭 관리부(210)를 제어하는 별도의 디바이스는 클럭 관리부(210)의 제어 레지스터(control register)에 접속(access)하여 전자 시스템(200)에 포함된 각 디바이스들의 클럭을 제어하라는 명령(command)를 저장할 수 있다. 클럭 관리부(210)를 제어하는 별도의 디바이스는 도 1에 도시된 중앙 처리 장치(CPU)일 수 있다.
지금까지는 전자 시스템(200)의 구성에 대해서 설명하였다. 아래에서는 전자 시스템(200)의 동작 방법을 설명하도록 한다.
도 7은 일 실시예에 따른 전자 시스템의 동작 방법을 나타내는 순서도이다.
도 7을 참조하면, 먼저, 710 단계에서, 전자 시스템(200)은 프로세서(220)가 유휴 상태인지 또는 활성 상태인지 동작 상태를 판단할 수 있다.
그 후, 720 단계에서, 프로세서(220)의 동작 상태에 따라, 프로세서(220)가 직접 클럭 관리부(210)에 클럭 신호의 제어 신호 요청을 전송한다. 710 단계에서 프로세서(220)의 동작 상태가 유휴 상태라고 판단하는 경우, 프로세서(220)는 클럭 관리부(210)에 클럭 디스에이블 요청을 전송할 수 있다. 반대로, 프로세서(220)의 동작 상태가 활성 상태라고 판단하는 경우 프로세서(220)는 클럭 관리부(210)에 클럭 인에이블 요청을 전송할 수 있다.
클럭 관리부(210)는 프로세서(220)로부터 클럭 인에이블 요청을 수신하는 경우, 프로세서(220)로 입력되는 클럭을 인에이블 하고, 클럭 디스에이블 요청을 수신하는 경우, 프로세서(220)로 입력되는 클럭을 디스에이블 할 수 있다. 하지만, 클럭 디스에이블 요청을 수신한 시점과 직전 클럭 인에이블 시점과의 시간 간격이 기 설정된 시간 이하인 경우, 클럭 관리부(210)는 프로세서(220)로 입력되는 클럭을 디스에이블 하지 않고, 인에이블로 유지할 수 있다.
도 8은 일 실시예에 따른 프로세서의 동작 상태를 판단하는 방법을 나타내는 순서도이다.
도 8을 참조하면, 먼저, 810 단계에서, 프로세서(220)는 자신의 파이프라인 상태를 판단한다. 810 단계에서 자신의 파이프 라인이 활성화 상태라고 판단하는 경우, 프로세서(220)는 860 단계로 진행하여 클럭 관리부(210)에 클럭 인에이블 요청을 전송한다. 810 단계에서 자신의 파이프라인이 유휴 상태라고 판단하는 경우, 프로세서(220)는 820 단계로 진행한다.
820 단계에서, 프로세서(220)는 자신의 캐시(221) 상태를 판단한다. 820 단계에서 자신의 캐시(221)가 활성화 상태라고 판단하는 경우, 프로세서(220)는 860 단계로 진행하여 클럭 관리부(210)에 인에이블 요청을 전송한다. 810 단계에서 자신의 캐시(221)가 유휴 상태라고 판단하는 경우, 프로세서(220)는 830 단계로 진행한다.
830 단계에서, 프로세서(220)는 캐시 일관성 트래픽이 전송 또는 수신되는지 여부를 판단한다. 830 단계에서 캐시 일관성 트래픽이 전송 또는 수신된다고 판단하는 경우, 프로세서(220)는 860 단계로 진행하여 클럭 관리부(210)에 클럭 인에이블 요청을 전송한다. 830 단계에서 캐시 일관성 트래픽이 전송 또는 수신되지 않는다고 판단하는 경우, 프로세서(220)는 840 단계로 진행한다.
840 단계에서, 프로세서(220)는 다른 디바이스가 자신에게 접속하고 있는지 여부를 판단한다. 840 단계에서 다른 디바이스가 자신에게 접속하고 있다고 판단하는 경우, 프로세서(220)는 860 단계로 진행하여 클럭 관리부(210)에 클럭 인에이블 요청을 전송한다. 840 단계에서 다른 디바이스가 자신에게 접속하고 있지 않다고 판단하는 경우, 프로세서(220)는 850 단계로 진행하여 클럭 관리부(210)에 디스에이블 요청을 전송한다.
도 8에서 도시하는 프로세서의 동작 상태를 판단하는 방법은 하나의 실시예이며, 다른 방법으로 구현하는 것도 가능하다. 예를 들어, 830 단계, 다시 말해 캐시 일관성 트래픽이 전송 또는 수신되는지 여부를 판단하는 단계가 제일 먼저 수행될 수도 있다. 또는, 840 단계, 다시 말해 다른 디바이스가 프로세서(220)에 접속하고 있는지 여부를 판단하는 단계가 캐시(221)의 동작 상태를 판단하는 820 단계 보다 먼저 수행될 수도 있다.
본 실시예들에 따른 장치는 프로세서, 프로그램 데이터를 저장하고 실행하는 메모리, 디스크 드라이브와 같은 영구 저장부(permanent storage), 외부 장치와 통신하는 통신 포트, 터치 패널, 키(key), 버튼 등과 같은 사용자 인터페이스 장치 등을 포함할 수 있다. 소프트웨어 모듈 또는 알고리즘으로 구현되는 방법들은 상기 프로세서상에서 실행 가능한 컴퓨터가 읽을 수 있는 코드들 또는 프로그램 명령들로서 컴퓨터가 읽을 수 있는 기록 매체 상에 저장될 수 있다. 여기서 컴퓨터가 읽을 수 있는 기록 매체로 마그네틱 저장 매체(예컨대, ROM(read-only memory), RAM(random-access memory), 플로피 디스크, 하드 디스크 등) 및 광학적 판독 매체(예컨대, 시디롬(CD-ROM), 디브이디(DVD: Digital Versatile Disc)) 등이 있다. 컴퓨터가 읽을 수 있는 기록 매체는 네트워크로 연결된 컴퓨터 시스템들에 분산되어, 분산 방식으로 컴퓨터가 판독 가능한 코드가 저장되고 실행될 수 있다. 매체는 컴퓨터에 의해 판독가능하며, 메모리에 저장되고, 프로세서에서 실행될 수 있다.
본 실시예는 기능적인 블록 구성들 및 다양한 처리 단계들로 나타내어질 수 있다. 이러한 기능 블록들은 특정 기능들을 실행하는 다양한 개수의 하드웨어 또는/및 소프트웨어 구성들로 구현될 수 있다. 예를 들어, 실시예는 하나 이상의 마이크로프로세서들의 제어 또는 다른 제어 장치들에 의해서 다양한 기능들을 실행할 수 있는, 메모리, 프로세싱, 로직(logic), 룩 업 테이블(look-up table) 등과 같은 직접 회로 구성들을 채용할 수 있다. 구성 요소들이 소프트웨어 프로그래밍 또는 소프트웨어 요소들로 실행될 수 있는 것과 유사하게, 본 실시예는 데이터 구조, 프로세스들, 루틴들 또는 다른 프로그래밍 구성들의 조합으로 구현되는 다양한 알고리즘을 포함하여, C, C++, 자바(Java), 어셈블러(assembler) 등과 같은 프로그래밍 또는 스크립팅 언어로 구현될 수 있다. 기능적인 측면들은 하나 이상의 프로세서들에서 실행되는 알고리즘으로 구현될 수 있다. 또한, 본 실시예는 전자적인 환경 설정, 신호 처리, 및/또는 데이터 처리 등을 위하여 종래 기술을 채용할 수 있다. “매커니즘”, “요소”, “수단”, “구성”과 같은 용어는 넓게 사용될 수 있으며, 기계적이고 물리적인 구성들로서 한정되는 것은 아니다. 상기 용어는 프로세서 등과 연계하여 소프트웨어의 일련의 처리들(routines)의 의미를 포함할 수 있다.
본 실시예에서 설명하는 특정 실행들은 예시들로서, 어떠한 방법으로도 기술적 범위를 한정하는 것은 아니다. 명세서의 간결함을 위하여, 종래 전자적인 구성들, 제어 시스템들, 소프트웨어, 상기 시스템들의 다른 기능적인 측면들의 기재는 생략될 수 있다. 또한, 도면에 도시된 구성 요소들 간의 선들의 연결 또는 연결 부재들은 기능적인 연결 및/또는 물리적 또는 회로적 연결들을 예시적으로 나타낸 것으로서, 실제 장치에서는 대체 가능하거나 추가의 다양한 기능적인 연결, 물리적인 연결, 또는 회로 연결들로서 나타내어질 수 있다.
본 명세서(특히 특허청구범위에서)에서 “상기”의 용어 및 이와 유사한 지시 용어의 사용은 단수 및 복수 모두에 해당하는 것일 수 있다. 또한, 범위(range)를 기재한 경우 상기 범위에 속하는 개별적인 값을 포함하는 것으로서(이에 반하는 기재가 없다면), 상세한 설명에 상기 범위를 구성하는 각 개별적인 값을 기재한 것과 같다. 마지막으로, 방법을 구성하는 단계들에 대하여 명백하게 순서를 기재하거나 반하는 기재가 없다면, 상기 단계들은 적당한 순서로 행해질 수 있다. 반드시 상기 단계들의 기재 순서에 한정되는 것은 아니다. 모든 예들 또는 예시적인 용어(예들 들어, 등등)의 사용은 단순히 기술적 사상을 상세히 설명하기 위한 것으로서 특허청구범위에 의해 한정되지 않는 이상 상기 예들 또는 예시적인 용어로 인해 범위가 한정되는 것은 아니다. 또한, 당업자는 다양한 수정, 조합 및 변경이 부가된 특허청구범위 또는 그 균등물의 범주 내에서 설계 조건 및 팩터에 따라 구성될 수 있음을 알 수 있다.
100: 전자 시스템
110: 중앙 처리 장치
120: 디지털 신호 처리 장치
130: 메모리
140: 그래픽 처리 장치
150: 클럭 관리부

Claims (27)

  1. 클럭(clock) 신호를 제어하는 클럭 관리부(clock management unit); 및
    상기 클럭 관리부와 직접(directly) 연결되어, 동작 상태에 따라 상기 클럭 관리부에 상기 클럭 신호의 제어 요청을 전송하는 프로세서를 포함하는 것을 특징으로 하는 전자 시스템.
  2. 제1항에 있어서,
    상기 프로세서는,
    상기 프로세서의 동작 상태를 저장하는 상태 레지스터(status register), 상기 상태 레지스터에 저장된 상기 프로세서의 동작 상태를 판단하는 클럭 관리 요청 판단부(clock management request determination unit) 및 상기 클럭 관리부와 직접 연결되는 클럭 관리 요청 인터페이스(clock management request interface)를 포함하는 것을 특징으로 하는 전자 시스템.
  3. 제2항에 있어서,
    상기 클럭 관리 요청 판단부는,
    상기 프로세서가 유휴 상태인지 또는 활성 상태인지 여부를 판단하는 것을 특징으로 하는 전자 시스템.
  4. 제3항에 있어서,
    상기 클럭 관리 요청 판단부는,
    상기 프로세서가 유휴(idle) 상태라고 판단하는 경우, 상기 클럭 관리부에 클럭 디스에이블 요청을 전송하고,
    상기 프로세서가 활성(active) 상태라고 판단하는 경우, 상기 클럭 관리부에 클럭 인에이블 요청을 전송하는 것을 특징으로 하는 전자 시스템.
  5. 제3항에 있어서,
    상기 클럭 관리부는,
    상기 프로세서로부터 상기 클럭 인에이블 요청을 수신하는 경우, 상기 프로세서로 입력되는 클럭을 인에이블 하고, 상기 클럭 디스에이블 요청을 수신하는 경우, 상기 프로세서로 입력되는 클럭을 디스에이블 하는 것을 특징으로 하는 전자 시스템.
  6. 제5항에 있어서,
    상기 클럭 관리부는,
    상기 프로세서로부터 상기 클럭 디스에이블 요청을 수신하는 경우, 상기 클럭 디스에이블 요청을 수신한 시점과 직전 클럭 인에이블 시점과의 시간 간격이 기 설정된 시간 이하인 경우, 상기 프로세서로 입력되는 클럭을 디스에이블 하지 않고, 인에이블로 유지하는 것을 특징으로 하는 전자 시스템.
  7. 제2항에 있어서,
    상기 상태 레지스터는
    상기 프로세서의 파이프라인의 상태를 저장하는 프로세서 상태 레지스터; 및
    상기 프로세서에 포함된 캐시의 상태를 저장하는 캐시 상태 레지스터를 포함하고,
    상기 프로세서 상태 레지스터는,
    상기 프로세서가 작업 큐(job queue)의 마지막 작업을 끝내는 경우, 유휴 상태로 업데이트 되고,
    상기 캐시 상태 레지스터는,
    상기 캐시가 요청된 작업을 마치고, FIFO empty 상태(FIFO empty condition)인 경우, 유휴 상태로 업데이트 되는 것을 특징으로 하는 전자 시스템.
  8. 제7항에 있어서,
    상기 캐시는,
    캐시 일관성(cache coherence)을 지원하기 위한 캐시 일관성 인터페이스(cache coherence interface)를 포함하는 것을 특징으로 하는 전자 시스템.
  9. 제8항에 있어서,
    상기 클럭 관리 요청 판단부는,
    다른 디바이스가 상기 프로세서에 접속하고 있는지 여부 및 상기 캐시 일관성 인터페이스를 통해 캐시 일관성 트래픽(cache coherent traffic)이 전송 또는 수신되는지 여부를 더 판단하고,
    상기 프로세서의 파이프라인과 상기 캐시가 유휴 상태이고, 상기 캐시 일관성 트래픽이 전송 또는 수신되지 않으며, 상기 다른 디바이스가 상기 프로세서에 접속하고 있지 않다고 판단하는 경우, 상기 프로세서가 유휴 상태라고 판단하고,
    상기 프로세서의 파이프라인 또는 상기 캐시가 활성 상태이거나, 상기 캐시 일관성 트래픽이 전송 또는 수신되거나 또는 상기 다른 디바이스가 상기 프로세서에 접속하고 있다고 판단하는 경우, 상기 프로세서가 활성 상태라고 판단하는 것을 특징으로 하는 전자 시스템.
  10. 제8항에 있어서,
    상기 프로세서와 캐시 일관성을 지원하는 디바이스를 더 포함하고,
    상기 디바이스에 포함된 캐시는 상기 캐시 일관성을 지원하기 위한 캐시 일관성 인터페이스를 포함하며,
    상기 프로세서의 캐시와 상기 디바이스의 캐시는, 각각의 캐시 일관성 인터페이스를 통해 직접 연결되어 하드웨어 캐시 일관성을 지원하는 것을 특징으로 하는 전자 시스템.
  11. 제10항에 있어서,
    상기 프로세서의 캐시와 상기 디바이스의 캐시는 라스트 레벨 캐시(Last Level Cache, LLC)인 것을 특징으로 하는 전자 시스템.
  12. 제10항에 있어서,
    버스(bus)를 더 포함하고,
    상기 프로세서의 캐시 일관성 인터페이스와 상기 디바이스의 캐시 일관성 인터페이스는 상기 버스를 통해 연결되는 것을 특징으로 하는 전자 시스템.
  13. 제2항에 있어서,
    버스(bus)를 더 포함하고,
    상기 클럭 관리 요청 인터페이스는 상기 버스를 통해 상기 클럭 관리부와 직접 연결되는 것을 특징으로 하는 전자 시스템.
  14. 프로세서의 동작 상태를 판단하는 단계; 및
    상기 프로세서의 동작 상태에 따라 상기 프로세서가 직접 클럭 관리부에 클럭 신호의 제어 신호 요청을 전송하는 단계를 포함하는 것을 특징으로 하는 전자 시스템의 동작 방법.
  15. 제14항에 있어서,
    상기 프로세서의 동작 상태를 판단하는 단계는,
    상기 프로세서가 유휴 상태인지 또는 활성 상태인지 여부를 판단하는 단계를 포함하는 것을 특징으로 하는 전자 시스템의 동작 방법.
  16. 제15항에 있어서,
    상기 프로세서의 동작 상태에 따라 클럭 인에이블 또는 클럭 디스에이블 요청을 전송하는 단계는,
    상기 프로세서의 동작 상태를 판단하는 단계에서, 상기 프로세서가 유휴(idle) 상태라고 판단하는 경우 상기 클럭 관리부에 클럭 디스에이블 요청을 전송하고, 상기 프로세서가 활성(active) 상태라고 판단하는 경우 상기 클럭 관리부에 클럭 인에이블 요청을 전송하는 단계를 포함하는 것을 특징으로 하는 전자 시스템의 동작 방법.
  17. 제14항에 있어서,
    상기 클럭 관리부가 상기 프로세서로부터 상기 클럭 인에이블 요청을 수신하는 경우, 상기 프로세서로 입력되는 클럭을 인에이블 하고, 상기 클럭 디스에이블 요청을 수신하는 경우, 상기 프로세서로 입력되는 클럭을 디스에이블 하는 단계를 더 포함하는 것을 특징으로 하는 전자 시스템의 동작 방법.
  18. 제17항에 있어서,
    상기 클럭 관리부가 상기 프로세서로부터 상기 클럭 디스에이블 요청을 수신하는 경우, 상기 클럭 디스에이블 요청을 수신한 시점과 직전 클럭 인에이블 시점 과의 시간 간격이 기 설정된 시간 이하인 경우, 상기 프로세서로 입력되는 클럭을 인에이블로 유지하는 것을 특징으로 하는 전자 시스템의 동작 방법.
  19. 제14항에 있어서,
    상기 프로세서의 동작 상태를 판단하는 단계는,
    상기 프로세서의 파이프라인 및 캐시가 유휴 상태인지 여부를 판단하는 단계; 및
    캐시 일관성 트래픽(cache coherent traffic)이 전송 또는 수신되고 있는지 여부를 판단하는 단계; 및
    다른 디바이스가 상기 프로세서에 접속하고 있는지 여부를 판단하는 단계를 포함하는 것을 특징으로 하는 전자 시스템의 동작 방법.
  20. 제19항에 있어서,
    상기 프로세서의 동작 상태를 판단하는 단계에서,
    상기 프로세서의 파이프라인 및 캐시가 유휴 상태이고, 상기 캐시 일관성 트래픽이 전송 또는 수신되고 있지 않으며, 다른 디바이스가 상기 프로세서에 접속하고 있지 않다고 판단하는 경우, 클럭 디스에이블 요청을 전송하고,
    상기 프로세서의 파이프라인 및 캐시가 활성 상태이거나, 상기 캐시 일관성 트래픽이 전송 또는 수신되고 있거나 또는 다른 디바이스가 상기 프로세서에 접속하고 있다고 판단하는 경우, 클럭 인에이블 요청을 전송하는 단계를 더 포함하는 것을 특징으로 하는 전자 시스템의 동작 방법.
  21. 제20항에 있어서,
    상기 프로세서가 작업 큐(job queue)의 마지막 작업을 끝내는 경우, 상기 프로세서의 파이프라인의 상태를 유휴 상태로 업데이트하는 단계; 및
    상기 캐시가 요청된 작업을 마치고, FIFO empty 상태(FIFO empty condition)인 경우, 상기 캐시의 동작 상태를 유휴 상태로 업데이트하는 단계를 더 포함하는 것을 특징으로 하는 전자 시스템의 동작 방법.
  22. 하드웨어 캐시 일관성을 지원하는 제1 프로세서 및 제2 프로세서; 및
    상기 제1 프로세서 및 상기 제2 프로세서의 클럭을 제어하는 클럭 관리부를 포함하고,
    상기 제2 프로세서는 상기 제1 프로세서로부터 수신한 캐시 일관성 신호를 수신하면 상기 클럭 관리부로 클럭 인에이블 요청 신호를 출력하고,
    상기 클럭 관리부는 상기 클럭 인에이블 요청 신호에 응답하여 상기 제2 프로세서를 인에이블 하는 것을 특징으로 하는 전자 시스템.
  23. 제22항에 있어서,
    상기 제1 프로세서는,
    상기 제2 프로세서로부터 캐시 일관성 신호를 수신하면 상기 클럭 관리부로 클럭 인에이블 요청 신호를 출력하는 것을 특징으로 하는 전자 시스템.
  24. 제22항에 있어서,
    상기 제2 프로세서는,
    상기 제1 프로세서로 캐시 일관성 신호를 전송하면 상기 클럭 관리부로 클럭 인에이블 요청 신호를 출력하는 것을 특징으로 하는 전자 시스템.
  25. 제24항에 있어서,
    상기 제1 프로세서는,
    상기 제2 프로세서로 캐시 일관성 신호를 전송하면 상기 클럭 관리부로 클럭 인에이블 요청 신호를 출력하는 것을 특징으로 하는 전자 시스템.
  26. 제22항에 있어서,
    상기 제1 프로세서와 상기 제2 프로세서는 서로 다른 종류인 것을 특징으로 하는 전자 시스템.
  27. 제26항에 있어서,
    상기 제1 프로세서 또는 상기 제2 프로세서는 GPU인 것을 특징으로 하는 전자 시스템.
KR1020160179164A 2016-12-26 2016-12-26 전자 시스템 및 그 동작 방법 KR102576707B1 (ko)

Priority Applications (5)

Application Number Priority Date Filing Date Title
KR1020160179164A KR102576707B1 (ko) 2016-12-26 2016-12-26 전자 시스템 및 그 동작 방법
US15/618,636 US10503471B2 (en) 2016-12-26 2017-06-09 Electronic devices and operation methods of the same
EP17184172.9A EP3340011A1 (en) 2016-12-26 2017-08-01 Electronic devices and operation methods of the same
JP2017159266A JP7156781B2 (ja) 2016-12-26 2017-08-22 電子機器及びその動作方法
CN201710984989.8A CN108241428A (zh) 2016-12-26 2017-10-20 电子器件及其操作方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160179164A KR102576707B1 (ko) 2016-12-26 2016-12-26 전자 시스템 및 그 동작 방법

Publications (2)

Publication Number Publication Date
KR20180075162A true KR20180075162A (ko) 2018-07-04
KR102576707B1 KR102576707B1 (ko) 2023-09-08

Family

ID=59506144

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160179164A KR102576707B1 (ko) 2016-12-26 2016-12-26 전자 시스템 및 그 동작 방법

Country Status (5)

Country Link
US (1) US10503471B2 (ko)
EP (1) EP3340011A1 (ko)
JP (1) JP7156781B2 (ko)
KR (1) KR102576707B1 (ko)
CN (1) CN108241428A (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200055193A (ko) * 2018-11-12 2020-05-21 삼성전자주식회사 전자 장치 및 그것의 동작 방법

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117882029A (zh) * 2021-07-19 2024-04-12 飞比特有限公司 用于基于硬件表决的时钟控制的系统和方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07302133A (ja) * 1994-02-02 1995-11-14 Advanced Micro Devicds Inc コンピュータシステムのための電力管理ユニットおよびコンピュータシステム内の電力を管理するための方法
KR20070048077A (ko) * 2005-11-03 2007-05-08 삼성전자주식회사 디지털 로직 프로세싱 회로, 그것을 포함하는 데이터 처리 장치, 그것을 포함한 시스템-온 칩, 그것을 포함한 시스템, 그리고 클록 신호 게이팅 방법
US7802118B1 (en) * 2006-12-21 2010-09-21 Nvidia Corporation Functional block level clock-gating within a graphics processor
US20120102344A1 (en) * 2010-10-21 2012-04-26 Andrej Kocev Function based dynamic power control
KR20140078394A (ko) * 2012-12-17 2014-06-25 삼성전자주식회사 시스템-온 칩과, 이의 동작 방법

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3607209B2 (ja) * 2001-03-08 2005-01-05 松下電器産業株式会社 クロック制御方法及び当該クロック制御方法を用いた情報処理装置
US6877088B2 (en) * 2001-08-08 2005-04-05 Sun Microsystems, Inc. Methods and apparatus for controlling speculative execution of instructions based on a multiaccess memory condition
US7076609B2 (en) * 2002-09-20 2006-07-11 Intel Corporation Cache sharing for a chip multiprocessor or multiprocessing system
US7721118B1 (en) 2004-09-27 2010-05-18 Nvidia Corporation Optimizing power and performance for multi-processor graphics processing
US7330994B2 (en) * 2005-04-26 2008-02-12 Arm Limited Clock control of a multiple clock domain data processor
KR20070080493A (ko) * 2006-02-07 2007-08-10 삼성전자주식회사 하드웨어 폴링 처리기를 포함한 데이터 처리 시스템
US8132037B2 (en) * 2008-06-06 2012-03-06 Roche Diagnostics International Ag Apparatus and method for processing wirelessly communicated data and clock information within an electronic device
TW201001122A (en) * 2008-06-20 2010-01-01 Asustek Comp Inc Clock controlling apparatus for computer system
JP2010072897A (ja) * 2008-09-18 2010-04-02 Nec Electronics Corp クロック供給装置
US8589629B2 (en) 2009-03-27 2013-11-19 Advanced Micro Devices, Inc. Method for way allocation and way locking in a cache
US9354944B2 (en) 2009-07-27 2016-05-31 Advanced Micro Devices, Inc. Mapping processing logic having data-parallel threads across processors
US8400458B2 (en) 2009-09-09 2013-03-19 Hewlett-Packard Development Company, L.P. Method and system for blocking data on a GPU
JP2011150653A (ja) * 2010-01-25 2011-08-04 Renesas Electronics Corp マルチプロセッサシステム
US8937622B2 (en) 2010-09-20 2015-01-20 Qualcomm Incorporated Inter-processor communication techniques in a multiple-processor computing platform
TWI441009B (zh) * 2010-12-28 2014-06-11 Ralink Technology Corp 用於電腦系統之處理單元的時脈頻率調整方法及相關裝置
US8892924B2 (en) * 2011-05-31 2014-11-18 Intel Corporation Reducing power consumption of uncore circuitry of a processor
US8775838B2 (en) * 2012-02-01 2014-07-08 Texas Instruments Incorporated Limiting the number of unexpected wakeups in a computer system implementing a power-saving preemptive wakeup method from historical data
US9323315B2 (en) 2012-08-15 2016-04-26 Nvidia Corporation Method and system for automatic clock-gating of a clock grid at a clock source
US9386521B2 (en) * 2012-12-20 2016-07-05 Qualcomm Incorporated Clock structure for reducing power consumption on wireless mobile devices
WO2014209400A1 (en) * 2013-06-28 2014-12-31 Intel Corporation Techniques and system for managing activity in multicomponent platform
US10060955B2 (en) * 2014-06-25 2018-08-28 Advanced Micro Devices, Inc. Calibrating power supply voltages using reference measurements from code loop executions
US20160077565A1 (en) * 2014-09-17 2016-03-17 Advanced Micro Devices, Inc. Frequency configuration of asynchronous timing domains under power constraints
KR102384347B1 (ko) 2015-05-26 2022-04-07 삼성전자주식회사 클록 관리 유닛을 포함하는 시스템 온 칩 및 그 동작방법

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07302133A (ja) * 1994-02-02 1995-11-14 Advanced Micro Devicds Inc コンピュータシステムのための電力管理ユニットおよびコンピュータシステム内の電力を管理するための方法
KR20070048077A (ko) * 2005-11-03 2007-05-08 삼성전자주식회사 디지털 로직 프로세싱 회로, 그것을 포함하는 데이터 처리 장치, 그것을 포함한 시스템-온 칩, 그것을 포함한 시스템, 그리고 클록 신호 게이팅 방법
US7802118B1 (en) * 2006-12-21 2010-09-21 Nvidia Corporation Functional block level clock-gating within a graphics processor
US20120102344A1 (en) * 2010-10-21 2012-04-26 Andrej Kocev Function based dynamic power control
KR20140078394A (ko) * 2012-12-17 2014-06-25 삼성전자주식회사 시스템-온 칩과, 이의 동작 방법

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200055193A (ko) * 2018-11-12 2020-05-21 삼성전자주식회사 전자 장치 및 그것의 동작 방법

Also Published As

Publication number Publication date
CN108241428A (zh) 2018-07-03
EP3340011A1 (en) 2018-06-27
JP2018106672A (ja) 2018-07-05
US10503471B2 (en) 2019-12-10
JP7156781B2 (ja) 2022-10-19
US20180181372A1 (en) 2018-06-28
KR102576707B1 (ko) 2023-09-08

Similar Documents

Publication Publication Date Title
US11036650B2 (en) System, apparatus and method for processing remote direct memory access operations with a device-attached memory
KR101310044B1 (ko) 복수의 코어 프로세서들에서의 하나 이상의 코어들의 워크로드 성능을 증가시키는 방법
US9026815B2 (en) Controlling operating frequency of a core domain via a non-core domain of a multi-domain processor
KR101569610B1 (ko) 플랫폼 애그노스틱 전력 관리
US10540306B2 (en) Data copying method, direct memory access controller, and computer system
KR20140025556A (ko) 플랫폼에서 유휴 링크 전력을 감소시키는 방법 및 장치
US20110296222A1 (en) Dynamic and idle power reduction sequence using recombinant clock and power gating
US8806232B2 (en) Systems and method for hardware dynamic cache power management via bridge and power manager
US20090327609A1 (en) Performance based cache management
US9552308B2 (en) Early wake-warn for clock gating control
JP6333971B2 (ja) ジェネリックホストベースのコントローラレイテンシ方法及び装置
CN111512266A (zh) 用于低功率状态转换的握手协议的系统、装置和方法
US9244521B2 (en) Supporting runtime D3 and buffer flush and fill for a peripheral component interconnect device
JP2017016660A (ja) マスタサイドフィルタを含むキャッシュコヒーレントシステムとそれを含むデータ処理システム
KR101826088B1 (ko) 프로세서 코어들의 전력 모드들을 제어하기 위한 레이턴시-기반 전력 모드 유닛들, 및 관련 방법들 및 시스템들
KR102576707B1 (ko) 전자 시스템 및 그 동작 방법
US9003217B2 (en) Semiconductor integrated circuit apparatus
US10248565B2 (en) Hybrid input/output coherent write
US20040250035A1 (en) Method and apparatus for affecting computer system
US11775043B2 (en) Power saving through delayed message processing
KR20240073903A (ko) 지연된 메시지 프로세싱을 통한 전력 절약
US20180348850A1 (en) Control of power state transitions
CN115297169A (zh) 数据处理方法、装置、电子设备及介质
JP2005284871A (ja) マイクロコンピュータ及びコンピュータシステム

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant