KR102384347B1 - 클록 관리 유닛을 포함하는 시스템 온 칩 및 그 동작방법 - Google Patents

클록 관리 유닛을 포함하는 시스템 온 칩 및 그 동작방법 Download PDF

Info

Publication number
KR102384347B1
KR102384347B1 KR1020150073091A KR20150073091A KR102384347B1 KR 102384347 B1 KR102384347 B1 KR 102384347B1 KR 1020150073091 A KR1020150073091 A KR 1020150073091A KR 20150073091 A KR20150073091 A KR 20150073091A KR 102384347 B1 KR102384347 B1 KR 102384347B1
Authority
KR
South Korea
Prior art keywords
clock
slave
controller
master
controllers
Prior art date
Application number
KR1020150073091A
Other languages
English (en)
Other versions
KR20160138786A (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 KR1020150073091A priority Critical patent/KR102384347B1/ko
Priority to US15/156,825 priority patent/US10430372B2/en
Priority to DE102016109387.4A priority patent/DE102016109387A1/de
Priority to TW105116190A priority patent/TWI750118B/zh
Priority to CN201610362235.4A priority patent/CN106200760B/zh
Publication of KR20160138786A publication Critical patent/KR20160138786A/ko
Priority to US16/533,209 priority patent/US10853304B2/en
Priority to US16/952,681 priority patent/US11275708B2/en
Application granted granted Critical
Publication of KR102384347B1 publication Critical patent/KR102384347B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • G06F13/4291Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus using a clocked protocol
    • 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/04Generating or distributing clock signals or signals derived directly therefrom
    • G06F1/06Clock generators producing several clock signals
    • 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
    • G06F1/08Clock generators with changeable or programmable clock frequency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/36Handling requests for interconnection or transfer for access to common bus or bus system
    • G06F13/362Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control
    • G06F13/364Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control using independent requests or grants, e.g. using separated request and grant lines

Abstract

클록 관리 유닛을 포함하는 시스템 온 칩 및 그 동작방법이 개시된다. 본 발명의 일 실시예에 따른 시스템 온 칩은, 하나 이상의 기능 블록들을 포함하는 인터커넥트 시스템 및 다수 개의 클록 콘트롤러들을 포함하고, 상기 다수 개의 클록 콘트롤러는 마스터 클록 콘트롤러 및 하나 이상의 슬레이브 클록 콘트롤러들을 포함하는 클록 관리 유닛을 구비하고, 상기 마스터 클록 콘트롤러는, 상기 하나 이상의 슬레이브 클록 콘트롤러들과 각각 채널을 통해 연결되며, 클록 요청에 응답하여 상기 슬레이브 클록 콘트롤러들 각각으로 클록 온/오프 명령을 제공하고, 상기 슬레이브 클록 콘트롤러들 각각으로부터 클록 응답을 수신하는 것을 특징으로 한다.

Description

클록 관리 유닛을 포함하는 시스템 온 칩 및 그 동작방법{SYSTEM ON CHIP INCLUDIING CLOCK MANAGEMENT UNIT AND OPERATING METHOD THEREOF}
본 발명은 시스템 온 칩에 관한 것으로서, 상세하게는 클록 관리 유닛을 포함하는 시스템 온 칩 및 그 동작방법에 관한 것이다.
시스템 온 칩(SoC)은 기존의 여러 가지 기능을 가진 복잡한 시스템을 하나의 칩으로 구현한 반도체 기술이다. 시스템 온 칩(SoC) 내에 구비되는 여러 지능 소자(Intellectual Property: 이하, IP)들은 시스템 버스를 통해 효과적으로 연결되도록 설계될 수 있다.
시스템 온 칩(SoC) 내에서, IP들을 포함하는 각종 기능 블록들로 클록 신호가 제공될 수 있으며, 동작 상태에 따라 게이팅 동작에 기반하여 클록 신호의 출력이 제어될 수 있다. 일 예로서, 하나의 인터커넥트 시스템이 정의될 수 있으며, 상기 인터커넥트 시스템은 다양한 기능 블록들(예컨대, IP, 비동기 브릿지, 멀티플렉서 등)을 포함할 수 있다. 상기 인터커넥트 시스템으로 제공되는 클록 신호를 관리하는 클록 관리 유닛(clock management unit)이 시스템 온 칩(SoC)에 구비될 수 있다. 클록 신호의 관리는 시스템 온 칩(SoC)의 속도 및 파워를 포함하여 시스템 전반적인 성능에 관련되므로, 효율적인 클록 게이팅이 요구로 된다.
본 발명의 일 목적은, 시스템 내의 클록 신호를 효율적으로 관리할 수 있는 시스템 온 칩을 제공하는 데 있다.
상기와 같은 목적을 달성하기 위하여, 본 발명의 일 실시예에 따른 시스템 온 칩은, 하나 이상의 기능 블록들을 포함하는 인터커넥트 시스템 및 다수 개의 클록 콘트롤러들을 포함하고, 상기 다수 개의 클록 콘트롤러는 마스터 클록 콘트롤러 및 하나 이상의 슬레이브 클록 콘트롤러들을 포함하는 클록 관리 유닛을 구비하고, 상기 마스터 클록 콘트롤러는, 상기 하나 이상의 슬레이브 클록 콘트롤러들과 각각 채널을 통해 연결되며, 클록 요청에 응답하여 상기 슬레이브 클록 콘트롤러들 각각으로 클록 온/오프 명령을 제공하고, 상기 슬레이브 클록 콘트롤러들 각각으로부터 클록 응답을 수신하는 것을 특징으로 한다.
한편, 본 발명의 일 실시예에 따른 클록 관리 장치는, 제1 기능 블록으로 제1 클록 신호를 출력하는 마스터 클록 콘트롤러와, 제2 기능 블록으로 제2 클록 신호를 출력하고, 제1 채널을 통해 상기 마스터 클록 콘트롤러와 핸드쉐이크 방식에 따라 통신하는 제1 클록 콘트롤러 및 제3 기능 블록으로 제3 클록 신호를 출력하고, 제2 채널을 통해 상기 마스터 클록 콘트롤러와 핸드쉐이크 방식에 따라 통신하는 제2 클록 콘트롤러를 구비하고, 상기 제1 및 제2 채널들 각각은, 상기 마스터 클록 콘트롤러로부터의 클록 온/오프 명령을 전달하기 위한 명령 채널과, 상기 제1 또는 제2 클록 콘트롤러로부터의 클록 응답을 전달하기 위한 응답 채널을 포함하는 것을 특징으로 한다.
한편, 본 발명의 일 실시예에 따른 시스템 온 칩의 동작방법에 있어서, 상기 시스템 온 칩은 마스터 클록 콘트롤러 및 다수 개의 슬레이브 클록 콘트롤러들을 포함하는 클록 관리 유닛을 구비하고, 상기 마스터 클록 콘트롤러가 클록 요청을 수신하는 단계와, 상기 마스터 클록 콘트롤러가 제1 슬레이브 클록 콘트롤러와 클록 온/오프 명령 및 클록 응답을 통신하는 단계와, 상기 제1 슬레이브 클록 콘트롤러가 제1 클록 신호의 출력을 제어하는 단계와, 상기 마스터 클록 콘트롤러가 제2 슬레이브 클록 콘트롤러와 클록 온/오프 명령 및 클록 응답을 통신하는 단계 및 상기 제2 슬레이브 클록 콘트롤러가 제2 클록 신호의 출력을 제어하는 단계를 구비하는 것을 특징으로 한다.
상기와 같은 본 발명의 실시예들에 따르면, 인터커넥트 시스템에 대응하는 클록 관리 유닛을 설계함에 있어서, 인터커넥트 시스템의 마스터/슬레이브 구조에 기반하여 클록 관리 유닛의 마스터/슬레이브 클록 콘트롤러가 설계되므로, 인터커넥트 시스템에 대한 효율적인 클록 관리가 가능한 효과가 있다.
또한, 상기와 같은 본 발명의 실시예들에 따르면, 하드웨어적 방식에 따라 클록 신호의 출력이 제어되므로, 소프트웨어적으로 클록 신호의 관리를 수행함에 비해 버그 발생 가능성을 낮출 수 있을 뿐 아니라 클록 활성화의 레이턴시를 감소할 수 있는 효과가 있다.
또한, 상기와 같은 본 발명의 실시예들에 따르면, 운영 체제 및 펌웨어의 루틴을 감소할 수 있으므로 소프트웨어 코드를 감소할 수 있으며, 클록 신호를 제어하기 위한 게이팅 구조를 단순화함으로써 파워 소모를 감소할 수 있는 효과가 있다.
도 1은 본 발명의 일 실시예에 따른 시스템 온 칩을 나타내는 블록도이다.
도 2는 도 1의 클록 관리 유닛의 일 구현 예를 나타내는 블록도이다.
도 3a,b는 본 발명의 일 실시예에 따른 시스템 온 칩을 나타내는 블록도이다.
도 4는 도 3의 마스터 클록 콘트롤러 및 슬레이브 클록 콘트롤러의 일 구현 예를 나타내는 블록도이다.
도 5는 도 4의 클록 관리 유닛의 일 동작 예를 나타내는 파형도이다.
도 6은 도 3의 클록 관리 유닛이 출력하는 클록 신호의 일 예를 나타내는 파형도이다.
도 7은 클록 관리 유닛이 통신하는 신호의 일 예를 나타내는 블록도이다.
도 8은 본 발명의 다른 실시예에 따른 시스템 온 칩을 나타내는 블록도이다.
도 9는 본 발명의 또 다른 실시예에 따른 시스템 온 칩을 나타내는 블록도이다.
도 10은 본 발명의 또 다른 실시예에 따른 시스템 온 칩을 나타내는 블록도이다.
도 11은 본 발명의 일 실시예에 따른 시스템 온 칩의 동작방법을 나타내는 플로우차트이다.
도 12는 본 발명의 다른 실시예에 따른 시스템 온 칩의 동작방법을 나타내는 플로우차트이다.
도 13은 본 발명의 또 다른 실시예에 따른 시스템 온 칩을 나타내는 블록도이다.
도 14는 본 발명의 또 다른 실시예에 따른 시스템 온 칩을 나타내는 블록도이다.
도 15는 본 발명의 또 다른 실시예에 따른 시스템 온 칩을 나타내는 블록도이다.
도 16은 본 발명의 또 다른 실시예에 따른 시스템 온 칩을 나타내는 블록도이다.
도 17은 본 발명의 실시예에 따른 시스템 온 칩을 포함하는 반도체 시스템의 일 예를 나타내는 블록도이다.
도 18은 본 발명의 실시예에 따른 시스템 온 칩을 포함하는 반도체 시스템의 다른 예를 나타내는 블록도이다.
이하에서는 본 발명의 바람직한 실시예가, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 본 발명의 철저한 이해를 제공할 의도 외에는 다른 의도 없이, 첨부한 도면들을 참조로 하여 상세히 설명될 것이다.
도 1은 본 발명의 일 실시예에 따른 시스템 온 칩을 나타내는 블록도이다.
도 1에 도시된 바와 같이, 본 발명의 일 실시예에 따른 시스템 온 칩(100)은 하나 이상의 인터커넥트 시스템(110)과, 상기 인터커넥트 시스템(110)으로 제공되는 클록 신호(CLK)를 관리하는 클록 관리 장치(120)를 포함할 수 있다. 상기 클록 관리 장치(120)는 유닛으로 정의될 수 있으며, 이에 따라 이하에서는 상기 클록 관리 장치(120)는 클록 관리 유닛(clock management unit, CMU, 120)으로 지칭된다. 시스템 온 칩(100)은 반도체 시스템에서 다양한 기능을 수행하도록 설계될 수 있으며, 예컨대 시스템 온 칩(100)은 어플리케이션 프로세서(Application Processor)일 수 있다.
인터커넥트 시스템(110) 각각은 다양한 기능 블록들을 포함하는 것으로 정의될 수 있다. 일 예로서, 인터커넥트 시스템(110)은 시스템 온 칩(100) 내에서 수행되는 데이터 통신에 연관된 각종 기능 블록들을 포함할 수 있다. 예컨대, 인터커넥트 시스템(110)은 마스터 지능 소자(Intellectual Property, IP) 및/또는 슬레이브 IP를 포함할 수 있으며, 또한 상기 인터커넥트 시스템(110)은 IP들 사이의 데이터 통신에 관련될 수 있는 멀티플렉서 및 비동기 브릿지 등의 다양한 기능 블록들을 포함할 수 있다. 시스템 온 칩(100)은 단일의 칩으로 제조되어 하나의 패키지(package)로 구현될 수 있다.
또한, 본 발명의 실시예에 따른 인터커넥트 시스템(110)은 다양한 다른 기능 블록을 포함하여도 무방하다. 예컨대, 인터커넥트 시스템(110)은 시스템 버스(System Bus)의 적어도 일부를 포함하는 것으로 정의될 수도 있다. 또한, 시스템 온 칩(100)이 계층적 버스 구조를 가질 때, 인터커넥트 시스템(110)은 데이터를 로컬하게 전달하기 위한 버스의 적어도 일부를 포함할 수도 있다. 본 발명의 실시예에 따라, 시스템 버스 및 버스 각각은 긴으 블록으로 정의될 수 있다.
시스템 온 칩(100)은 다양한 종류의 IP들을 포함할 수 있다. 예컨대, IP들은 프로세싱 유닛(processing unit), 상기 프로세싱 유닛에 포함된 복수의 코어들(cores) 각각, MFC(multi-Format Codec), 비디오 모듈(예컨대, 카메라 인터페이스(camera interface), JPEG(Joint Photographic Experts Group) 프로세서, 비디오 프로세서(video processor), 또는 믹서(mixer), 등), 3D 그래픽 코어(graphic core), 오디오 시스템(audio system), 드라이버(driver), 디스플레이 드라이버 (display driver), 휘발성 메모리(volatile memory device), 비휘발성 메모리(non-volatile memory), 메모리 컨트롤러(memory controller), 입출력 인터페이스 블록(input and output interface block), 또는 캐시 메모리(cache memory) 등을 포함할 수 있다.
IP들은 마스터 IP와 슬레이브 IP로 분류될 수 있다. 마스터 IP는 스스로 다른 슬레이브 IP에 데이터 통신을 요구할 수 있는 반면에, 슬레이브 IP는 프로세싱 유닛의 제어에 기반하여 데이터 통신을 수행한다. 일 예로서, 어느 하나의 IP는 마스터와 슬레이브 기능을 겸할 수도 있다. 일 실시예에 따라, 인터커넥트 시스템(110)은 하나 이상의 마스터 IP들을 포함하거나, 하나 이상의 슬레이브 IP들을 포함할 수 있다. 또는, 인터커넥트 시스템(110)은 마스터 IP와 슬레이브 IP를 모두 포함할 수도 있다.
도 1의 실시예에서는, 인터커넥트 시스템(110)이 시스템 버스를 포함하지 않는 경우, 시스템 버스의 일부를 포함하는 경우, 시스템 버스를 기준으로 하여 데이터를 제공하는 기능 블록과 데이터를 수신하는 기능 블록을 함께 포함하는 경우가 예시되었다. 그러나, 전술한 바와 같이, 본 발명의 실시예에 따른 인터커넥트 시스템(110)은 다양하게 정의될 수 있다.
한편, 클록 관리 유닛(120)은 인터커넥트 시스템(110)으로 클록 신호(CLK)를 제공할 수 있다. 도 1에서는 하나의 인터커넥트 시스템(110)에 대응하여 하나의 클록 관리 유닛(120)이 배치되는 예가 도시되었으나, 본 발명의 실시예는 이에 국한될 필요는 없으며, 예컨대 클록 관리 유닛(120)은 인터커넥트 시스템(110)의 일부 기능 블록에 클록 신호(CLK)를 제공할 수 있으며, 또는 클록 관리 유닛(120)은 두 개 이상의 인터커넥트 시스템(110)에 클록 신호(CLK)를 제공할 수 있다. 또한, 각각의 인터커넥트 시스템(110)으로 제공되는 클록 신호가 동일한 기호로서 표시되었으나, 클록 관리 유닛(120) 각각은 서로 다른 신호 특성을 갖는 클록 신호(CLK)를 제공하여도 무방하다.
IP들을 연결하기 위한 기술로는 시스템 버스(System Bus)를 기반으로 한 연결 방식이 주를 이루고 있다. 예컨대, 표준 버스 규격으로서, 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) 등이 포함될 수 있다. 전술한 버스 타입들 중 AXI는 IP들 사이의 인터페이스 프로토콜로서, 다중 아웃스탠딩 어드레스(multiple outstanding address) 기능과 데이터 인터리빙(data interleaving) 기능 등을 제공한다. 이외에도, 소닉사(SONICs Inc.)의 uNetwork 이나 IBM의 CoreConnect, OCP-IP의 오픈 코어 프로토콜(Open Core Protocol) 등 다른 타입의 프로토콜이 시스템 버스(System Bus)에 적용되어도 무방하다.
클록 관리 유닛(120) 각각은 하나 이상의 클록 신호(CLK)를 생성할 수 있다. 일 실시예로서, 인터커넥트 시스템(110)에 구비되는 n 개의 기능 블록들 각각으로 클록 신호(CLK)가 제공될 때, 클록 관리 유닛(120)은 n 개의 클록 신호(CLK)들을 생성하여 인터커넥트 시스템(110)으로 제공할 수 있다. 상기 n 개의 클록 신호(CLK)들은 서로 다른 신호 특성을 가져도 무방하다.
또한, 클록 관리 유닛(120)은 인터커넥트 시스템(110)의 구조를 고려하여 하드웨어적으로 구현될 수 있다. 예컨대, 인터커넥트 시스템(110)의 마스터(master)/슬레이브(slave) 구조를 고려하여 클록 관리 유닛(120)의 내부 구성이 설계될 수 있다. 클록 관리 유닛(120)은 그 내부에 마스터 클록 콘트롤러 및 슬레이브 클록 콘트롤러(이상, 미도시)를 포함할 수 있으며, 시퀀셜한 제어 동작을 통해 인터커넥트 시스템(110)으로 제공되는 클록 신호(CLK)를 생성할 수 있다.
일 실시예로서, 마스터 클록 콘트롤러는 IP로부터 하드웨어적으로 클록 요청을 수신하거나, 또는 시스템 온 칩에 구비되는 프로세싱 유닛(미도시)에 의해 소프트웨어적으로 클록 요청을 수신할 수 있다. 마스터 클록 콘트롤러는 상기 클록 요청에 응답하여 하나 이상의 슬레이브 클록 콘트롤러를 제어할 수 있으며, 마스터 클록 콘트롤러 및/또는 슬레이브 클록 콘트롤러로부터 생성되는 클록 신호(CLK)가 인터커넥트 시스템(110)으로 제공될 수 있다.
상기와 같은 본 발명의 실시예에 따르면, 인터커넥트 시스템의 구조에 따라 클록 관리 유닛이 구현되고, 클록 신호의 관리가 하드웨어적으로 수행됨에 따라 소프트웨어 방식에 따른 관리에 비하여 버그 발생 가능성을 낮출 수 있다. 또한, 소프트웨어 코딩 방식에 의해 클록 신호를 온/오프 하는 경우에 비해, 원하는 시점에 적절히 클록 신호를 온/오프할 수 있으므로 레이턴시를 감소할 수 있는 효과가 있다. 또한, 클록 신호를 생성하기 위한 게이트 유닛의 구조를 단순화함으로써 파워 소모를 감소할 수 있다.
또한, 시스템 온 칩(100)을 구동하기 위한 운영 체제(OS) 및 펌웨어(Firmware)는 다수의 기능 블록들에 대해 클록 신호를 온/오프 하기 위한 복잡한 루틴(routine)을 필요로 하지 않기 때문에, 소프트웨어의 코드를 감소할 수 있으며, 이로써 중앙 처리 장치의 로드도 감소할 수 있다.
도 2는 도 1의 클록 관리 유닛(120)의 일 구현 예를 나타내는 블록도이다.
도 2에 도시된 바와 같이, 클록 관리 유닛(120)은 하나의 마스터 클록 콘트롤러(121) 및 n 개의 슬레이브 클록 콘트롤러들(122_1 ~ 122_n)을 포함할 수 있다. 마스터 클록 콘트롤러(121)와 n 개의 슬레이브 클록 콘트롤러들(122_1 ~ 122_n) 각각은 하나 이상의 채널을 통해 연결되어 서로 통신할 수 있다. 예컨대, 마스터 클록 콘트롤러(121)은 제1 채널(CH1)을 통해 제1 슬레이브 클록 콘트롤러(122_1)에 연결되고, 제2 채널(CH2)을 통해 제2 슬레이브 클록 콘트롤러(122_2)에 연결되며, 제n 채널(CHn)을 통해 제n 슬레이브 클록 콘트롤러(122_n)에 연결될 수 있다. 마스터 클록 콘트롤러(121)과 슬레이브 클록 콘트롤러들(122_1 ~ 122_n) 각각은 풀 핸드쉐이크 방식(full handshake method)에 따라 통신할 수 있다.
풀 핸드쉐이크 방식에 따라 클록 콘트롤러들 사이의 통신이 수행됨에 따라, 각각의 채널은 다양한 종류의 신호들을 전송하기 위한 내부 채널들을 포함할 수 있다. 예컨대, 제1 채널(CH1)은 명령을 전달하는 채널과 응답을 전달하는 채널을 포함할 수 있다. 일 실시예로서, 제1 채널(CH1)은 조합 셀(combinational cell)로 구현함으로써 레이턴시(latency)를 최소화할 수 있다. 한편, 제2 채널(CH2) 내지 제n 채널(CHn) 또한 상기 제1 채널(CH1)과 동일 또는 유사하게 구현될 수 있다.
일 실시예에 있어서, 풀 핸드쉐이크 방식(full handshake method)은 ARM 회사의 Q-channel interface 또는 P-channel interface 스펙(specification)를 포함할 수 있다. 이외에도, 풀 핸드쉐이크 방식은 다양한 인터페이스 방식으로 수행될 수 있으며, 예컨대 LPI 등의 비동기 통신 채널(Asynchronous communication channel)이 이용될 수 있다.
마스터 클록 콘트롤러(121)는 클록 요청(Req)에 응답하여 슬레이브 클록 콘트롤러들(122_1 ~ 122_n)을 제어할 수 있다. 일 예로서, 마스터 클록 콘트롤러(121)는 클록 요청(Req)에 응답하여 클록 온/오프 명령(CLK On/Off)을 슬레이브 클록 콘트롤러들(122_1 ~ 122_n)로 제공할 수 있다. 또한, 슬레이브 클록 콘트롤러들(122_1 ~ 122_n) 각각은 상기 클록 온/오프 명령(CLK On/Off)에 응답하여 클록 게이팅 수행하고, 클록 응답(Act On/Off)을 마스터 클록 콘트롤러(121)로 제공할 수 있다. 일 예로서, 마스터 클록 콘트롤러(121)로 제공된 클록 요청(Req)이, 대응하는 기능 블록으로 클록 신호(CLK1)를 제공할 것을 요청하는 경우, 마스터 클록 콘트롤러(121)는 클록 온 명령을 슬레이브 클록 콘트롤러들(122_1 ~ 122_n)로 제공하며, 슬레이브 클록 콘트롤러들(122_1 ~ 122_n) 각각은 클록 신호(CLK2_1 ~ CLK2_n)의 출력이 수행되었음을 나타내는 클록 응답(Act On)을 마스터 클록 콘트롤러(121)로 제공할 수 있다.
일 동작예로서, 마스터 클록 콘트롤러(121)는 클록 요청(Req)에 응답하여 클록 온/오프 명령(CLK On/Off)을 제1 슬레이브 클록 콘트롤러(122_1)로 제공한다. 제1 슬레이브 클록 콘트롤러(122_1)는 클록 온/오프 명령(CLK On/Off)에 응답하여 게이팅 동작을 수행하며, 클록 게이팅이 완료되었음을 나타내는 클록 응답(Act On/Off)을 마스터 클록 콘트롤러(121)로 제공할 수 있다.
마스터 클록 콘트롤러(121)는 제1 슬레이브 클록 콘트롤러(122_1)로부터 클록 응답(Act On/Off)이 수신됨에 따라, 클록 온/오프 명령(CLK On/Off)을 제2 슬레이브 클록 콘트롤러(122_2)로 제공한다. 제2 슬레이브 클록 콘트롤러(122_2)는 클록 온/오프 명령(CLK On/Off)에 응답하여 게이팅 동작을 수행하고, 클록 응답(Act On/Off)을 마스터 클록 콘트롤러(121)로 제공할 수 있다.
이와 동일한 방식에 따라, 마스터 클록 콘트롤러(121)는 나머지 슬레이브 클록 콘트롤러들로 클록 온/오프 명령(CLK On/Off)을 순차적으로 제공할 수 있다. 또한, 마스터 클록 콘트롤러(121)는 나머지 슬레이브 클록 콘트롤러들로부터 클록 응답(Act On/Off)을 순차적으로 수신할 수 있다.
일 실시예로서, 슬레이브 클록 콘트롤러들(122_1 ~ 122_n)이 클록 신호(CLK2_1 ~ CLK2_n)를 출력하는 순서는 다양하게 설정될 수 있다. 예컨대, 제n 슬레이브 클록 콘트롤러(122_n)가 먼저 클록 신호(CLK2_n)를 출력한 후, 제1 슬레이브 클록 콘트롤러(122_1)가 클록 신호(CLK2_1)를 출력할 수 있다. 또는, 슬레이브 클록 콘트롤러들(122_1 ~ 122_n) 중 일부가 클록 신호를 출력한 후 마스터 클록 콘트롤러(121)가 클록 신호(CLK1)를 출력하도록 설정되어도 무방하다. 바람직하게는, 슬레이브 클록 콘트롤러들(122_1 ~ 122_n)이 모두 클록 신호(CLK2_1 ~ CLK2_n)를 출력한 후 마스터 클록 콘트롤러(121)가 클록 신호(CLK1)를 출력할 수 있다.
마스터 클록 콘트롤러(121)는 다양한 시점에서 클록 신호(CLK1)를 활성화하거나 비활성화할 수 있다. 일 실시예로서, 클록 요청(Req)이 기능 블록으로 클록 신호(CLK1)를 제공할 것을 요청하는 경우, 마스터 클록 콘트롤러(121)는 슬레이브 클록 콘트롤러들(122_1 ~ 122_n)로부터 클록 응답(Act On/Off)이 수신된 이후에 클록 신호(CLK1)를 출력할 수 있다. 이로써, 데이터 통신을 수행할 기능 블록(예컨대, 마스터 IP)은 인터커텍스 시스템이 모든 기능 블록들에 대한 클록 셋팅이 완료된 후 클록 신호(CLK1)를 수신한다.
또한, 일 실시예로서, 클록 요청(Req)이 상기 기능 블록으로 클록 신호(CLK1)가 제공되는 것을 차단할 것을 요청하는 경우, 마스터 클록 콘트롤러(121)는 클록 신호(CLK1)의 출력을 차단한 후에 클록 온/오프 명령(CLK On/Off)을 제공할 수 있다. 이로써, 데이터 통신의 수행이 완료된 기능 블록(예컨대, 마스터 IP)에 대한 클록 신호(CLK1)가 먼저 비활성화되고, 이후 나머지 기능 블록들에 대한 클록 신호들(CLK2_1 ~ CLK2_n)이 비활성화된다. 전술한 바와 유사하게, 나머지 기능 블록들에 대한 클록 신호들(CLK2_1 ~ CLK2_n)이 비활성화되는 순서는 다양하게 설정되어도 무방하다.
한편, 클록 관리 유닛(120)에 구비되는 각각의 클록 콘트롤러는 클록 처리에 관련된 다양한 기능을 포함할 수 있다. 예컨대, 각각의 클록 콘트롤러는 소스 클록을 수신하고 이를 처리함으로써, 기능 블록에서 이용되는 동작 클록을 생성하는 다양한 종류의 회롤르 포함할 수 있다. 일 실시예로서, 각각의 클록 콘트롤러는 오실레이터, 위상 동기 루프, 멀티플렉서, 디바이더 및 게이트 중에서 선택된 하나 이상의 수단을 포함할 수 있다. 또는, 각각의 클록 콘트롤러는 이와 다른 종류의 신호 처리를 수행하는 수단을 포함하여도 무방하다.
이하, 본 발명의 실시예들에서는 설명의 편의상 마스터 클록 콘트롤러 및 슬레이브 클록 콘트롤러로부터 출력되는 클록 신호는 동일한 기호(CLK)로써 언급될 것이나, 전술한 바와 같이 각각의 클록 신호의 특성은 다양하게 변동되어도 무방하다.
도 3a,b 본 발명의 일 실시예에 따른 시스템 온 칩을 나타내는 블록도이다. 도 3a에 도시된 바와 같이, 시스템 온 칩(200)은 클록 관리 유닛(210)과 다양한 기능 블록들을 포함할 수 있다. 도 3a에서는, 클록 관리 유닛(210)으로부터 클록 신호(CLK)를 수신하는 기능 블록들로서, 제1 및 제2 IP(221, 222), 비동기 브릿지(230), 멀티플렉서(240) 및 버스(250)가 예시된다.
비동기 브릿지(230)는 서로 다른 동작 주파수를 사용하는 기능 블록들 사이의 데이터를 교환하기 위해 배치될 수 있다. 또한, 멀티플렉서(240)는 다양한 프로토콜의 버스 타입들 중 선택된 버스를 지원할 수 있으며, 도 3a에서는 일 예로서 AXI 멀티플렉서(240)가 예시된다. 버스(250)는 시스템 버스, 또는 다른 버스(예컨대, 로컬 버스)에 해당할 수 있다. 버스(250)가 로컬 버스에 해당하는 경우, 제1 및 제2 IP(221, 222)로부터의 신호는 버스(250)를 통해 시스템 버스(미도시)로 제공될 수 있다.
한편, 상기 제1 및 제2 IP(221, 222), 비동기 브릿지(230), 멀티플렉서(240) 및 버스(250) 중 적어도 일부는 앞서 설명된 인터커넥트 시스템을 구성할 수 있다. 또한, 클록 관리 유닛(210)은 상기 인터커넥트 시스템에 대응하여 마스터 클록 콘트롤러(211) 및 제1 내지 제3 슬레이브 클록 콘트롤러들(212 ~ 214)을 포함할 수 있다. 또한, 설명의 편의상, 클록 게이팅을 수행하는 게이트 유닛(G)은 별도로 도시되나, 상기 게이트 유닛(G)은 각각 대응하는 클록 콘트롤러 내에 구비될 수 있다. 한편, 상기 게이트 유닛(G)은 다양하게 구현될 수 있으며, 예컨대 하나 이상의 논리 소자(미도시)를 포함할 수 있다. 일 실시예로서, 플립플롭, AND 게이트 등의 논리 소자들을 이용한 신호 처리에 기반하여 클록 신호(CLK)의 활성화/비활성화가 제어될 수 있다.
한편, 도 3a에서는 클록 관리 유닛(210)이 하나의 마스터 클록 콘트롤러(211)를 포함하는 예가 도시된다. 이 경우, 마스터 클록 콘트롤러(211)은 제1 및 제2 IP(221, 222)에 함께 연결될 수 있으며, 도 3a의 실시예에서는 제2 IP(222)로 클록 신호(CLK)가 제공되는 예가 도시된다. 다른 실시예로서, 도 3b에 도시된 바와 같이, 클록 관리 유닛(210)은 상기 제1 및 제2 IP(221, 222)에 대응하여 두 개의 마스터 클록 콘트롤러들(121_1, 121_2)이 배치될 수 있다. 설명의 편의상, 도 3b에는 다수의 슬레이브 클록 콘트롤러들을 포함하는 슬레이브 클록 콘트롤러 블록(SCC BLK)이 정의되며, 마스터 클록 콘트롤러들(121_1, 121_2) 각각은 상기 슬레이브 클록 콘트롤러 블록(SCC BLK)과 별도의 채널을 통해 통신할 수 있다.
다시 도 3a를 참조하면, 인터커넥트 시스템에 구비되는 기능 블록들은 마스터 기능 블록들과 슬레이브 기능 블록들로 분류될 수 있다. 일 예로서, 인터커넥트 시스템에 구비되는 기능 블록들 중 데이터 트래픽(traffic)을 발생하는 기능 블록(예컨대, 마스터 IP 및/또는 슬레이브 IP)은 마스터 기능 블록에 해당할 수 있다. 이외의 경우에는 슬레이브 기능 블록에 해당할 수 있다.
다른 분류 예로서, 데이터 트래픽(traffic)이 실질적으로 시작되는 기능 블록이 마스터 기능 블록에 해당할 수 있다. 일 예로서, 도 3에서는 비동기 브릿지(230)가 슬레이브 기능 블록으로 정의되었으나, 제2 IP(222)로부터의 데이터를 멀티플렉서(240)로 제공하는 과정에서 데이터 트래픽(traffic)이 시작될 수 있으며, 이 때 상기 비동기 브릿지(230)는 마스터 기능 블록으로 정의될 수 있다. 이외에도, 인터커넥트 시스템에 구비되는 기능 블록들은 다양한 정의 방식에 따라 마스터 기능 블록과 슬레이브 기능 블록으로 분류될 수 있다.
한편, 클록 관리 유닛(210)에 구비되는 다수의 클록 콘트롤러는, 상기 인터커넥트 시스템의 구조에 대응하여 하드웨어적으로 설계될 수 있다. 예컨대, 인터커넥트 시스템의 기능 블록들에 대응하여, 클록 관리 유닛(210)의 마스터 클록 콘트롤러 및 슬레이브 클록 콘트롤러가 정의될 수 있다. 일 예로서, 도 3에 도시된 바와 같이, 제1 및 제2 IP(221, 222)로 클록 신호(CLK)를 제공하는 클록 콘트롤러가 마스터 클록 콘트롤러(211)에 해당하고, 나머지 클록 콘트롤러들이 슬레이브 슬레이브 클록 콘트롤러들(212, 213, 214)에 해당할 수 있다.
제2 IP(222)로 동작 클록이 제공되는 경우를 예로 들면, 클록 요청이 클록 관리 유닛(210)으로 제공됨에 따라, 마스터 클록 콘트롤러(211)는 제3 슬레이브 클록 콘트롤러(214)로 클록 온/오프 명령(CLK On/Off)을 제공한다. 상기 클록 온/오프 명령(CLK On/Off)은 기능 블록으로 클록 신호(CLK)를 출력할 것을 나타내는 클록 온 정보를 포함할 수 있다. 제3 슬레이브 클록 콘트롤러(214)는 클록 온/오프 명령(CLK On/Off)에 응답하여 클록 게이팅을 수행함으로써, 클록 신호(CLK)를 버스(250)로 제공하고, 클록 게이팅이 완료되었음을 나타내는 클록 응답(Act On/Off)을 마스터 클록 콘트롤러(211)로 제공한다.
이와 유사하게, 마스터 클록 콘트롤러(211)는 순차적으로 클록 온/오프 명령(CLK On/Off)을 제2 슬레이브 클록 콘트롤러(213)로 제공하고, 제2 슬레이브 클록 콘트롤러(213)는 클록 신호(CLK)를 멀티플렉서(240)로 제공한다. 또한, 제2 슬레이브 클록 콘트롤러(213)는 클록 응답(Act On/Off)을 마스터 클록 콘트롤러(211)로 제공한다.
또한, 마스터 클록 콘트롤러(211)는 순차적으로 클록 온/오프 명령(CLK On/Off)을 제1 슬레이브 클록 콘트롤러(212)로 제공하고, 제1 슬레이브 클록 콘트롤러(212)는 클록 신호(CLK)를 비동기 브릿지(230)로 제공한다. 또한, 제1 슬레이브 클록 콘트롤러(212)는 클록 응답(Act On/Off)을 마스터 클록 콘트롤러(211)로 제공한다.
마스터 클록 콘트롤러(211)는 모든 슬레이브 클록 콘트롤러들(212 ~ 214)로부터 클록 응답(Act On/Off)을 수신하면, 마스터 클록 콘트롤러(211) 내의 게이트 유닛(G)을 제어함으로써 클록 게이팅을 수행한다. 이에 따라, 클록 신호(CLK)가 제2 IP(222)로 제공될 수 있다.
상기와 같은 본 발명의 실시예에 따르면, 마스터 클록 콘트롤러(211)는 슬레이브 클록 콘트롤러들(212 ~ 214)과 채널을 통해 핸드쉐이크 방식에 따라 통신할 수 있으며, 이에 따라 마스터 클록 콘트롤러(211)는 슬레이브 클록 콘트롤러들(212 ~ 214) 각각이 정상적으로 클록 신호(CLK)를 출력하였는지 확인할 수 있다. 그리고, 인터커넥트 시스템의 클록 셋팅이 완료된 후 제2 IP(222)로 클록 신호(CLK)가 제공될 수 있으므로 동작 안정성이 향상될 수 있다.
도 4는 도 3의 마스터 클록 콘트롤러(211) 및 슬레이브 클록 콘트롤러(212)의 일 구현 예를 나타내는 블록도이다. 클록 관리 유닛(210)의 동작 예를 설명하기 위하여 마스터 기능 블록 및 슬레이브 기능 블록이 도 4에 함께 도시된다. 한편, 도 4에는 하나의 마스터 기능 블록 및 슬레이브 기능 블록이 도시되었으나, 도 4의 블록들은 실질적으로 다수 개의 마스터 기능 블록들 및 슬레이브 기능 블록들에 상응할 수 있다.
도 3 및 도 4를 참조하면, 클록 관리 유닛(210)은 하나 이상의 마스터 클록 콘트롤러(211) 및 슬레이브 클록 콘트롤러(212~ 214)를 포함하므로, 마스터 클록 콘트롤러 블록(MCC_BLK)과 슬레이브 클록 콘트롤러 블록(SCC_BLK)이 정의될 수 있다. 도 4에 도시된 슬레이브 클록 콘트롤러 블록(SCC_BLK)은 도 3의 제1 내지 제3 슬레이브 클록 콘트롤러들(212 ~ 214)을 포함할 수 있다. 일 예로서, 슬레이브 클록 콘트롤러의 전반적인 동작을 제어하기 위한 매니저(212_1)는 어느 하나의 슬레이브 클록 콘트롤러에만 포함될 수 있다. 변형 가능한 실시예로서, 상기 매니저(212_1)는 슬레이브 클록 콘트롤러들(212 ~ 214) 각각에 구비되어도 무방하다.
마스터 클록 콘트롤러(211)는 클록 관리의 전반적인 동작을 제어하기 위한 매니저(211_1)를 구비하며, 또한 하나 이상의 게이트 유닛(CLK Gate) 및 게이팅 제어를 위한 클럭 제어 유닛(CLK Ctrl)을 포함하는 클록 소스(A)를 구비할 수 있다. 이와 유사하게, 슬레이브 클록 콘트롤러들(212 ~ 214) 각각은 게이트 유닛(CLK Gate) 과 클럭 제어 유닛(CLK Ctrl)을 포함하는 클록 소스(B, C)를 구비할 수 있다.
한편, 전술한 바와 유사하게, 클록 신호 처리에 관련된 다양한 기능이 클록 소스(A, B, C) 각각에 포함될 수 있다. 일 실시예로서, 클록 소스(A, B, C) 각각은 오실레이터, 위상 동기 루프, 멀티플렉서, 디바이더 및 게이트 중에서 선택된 하나 이상의 수단을 포함할 수 있다.
한편, 마스터 기능 블록 및 슬레이브 기능 블록 각각은 클록 관리 유닛(210)과 통신하기 위한 인터페이스(I/F)를 포함할 수 있다. 다른 예로서, 슬레이브 기능 블록은 클록 관리 유닛(210)과의 인터페이스(I/F)를 구비하지 않아도 무방하다. 클록 신호(CLK)를 수신하기 위해, 마스터 기능 블록은 인터페이스(I/F)를 통해 마스터 클록 콘트롤러(211)로 클록 요청을 전송할 수 있다. 마스터 클록 콘트롤러(211)의 매니저(211_1)는 상기 클록 요청에 응답하여 클록 온/오프 명령(CLK On/Off)을 슬레이브 클록 콘트롤러들(212 ~ 214)로 제공할 수 있다. 슬레이브 클록 콘트롤러들(212 ~ 214)의 클록 소스들(B, C) 각각은 클록 신호(CLK)를 활성화하고 이를 출력할 수 있으며, 이를 나타내는 정보(예컨대, 클록 응답)을 마스터 클록 콘트롤러(211)의 매니저(211_1)로 제공할 수 있다.
일 실시예로서, 슬레이브 클록 콘트롤러들(212 ~ 214)의 클록 소스들(B, C) 각각은 클록 신호(CLK)를 활성화하였음을 나타내는 정보를 슬레이브 클록 콘트롤러 블록(SCC_BLK)의 매니저(212_1)로 제공할 수 있다. 또한, 일 실시예로서, 슬레이브 기능 블록의 인터페이스(I/F)는 마스터 클록 콘트롤러(211)의 매니저(211_1)와 통신할 수 있는 기능이 부가되어도 무방하다.
도 5는 도 4의 클록 관리 유닛의 일 동작 예를 나타내는 파형도이다. 도 5에서는 IP2(222)와 클록 관리 유닛(210) 사이의 인터페이스, 마스터 클록 콘트롤러(MCC)와 슬레이브 클록 콘트롤러(SCC) 사이의 인터페이스의 일 예를 나타낸다.
도 5에 도시된 바와 같이, 활성화된 클록 요청(Req)이 마스터 클록 콘트롤러(MCC)로 제공됨에 따라, 마스터 클록 콘트롤러(MCC)는 클록 온 명령(CLK On)을 활성화하여 슬레이브 클록 콘트롤러(SCC)로 제공한다. 슬레이브 클록 콘트롤러(SCC)는 클록 신호(CLK)를 출력하고, 이를 나타내는 클록 응답(Ack On)을 활성화하여 마스터 클록 콘트롤러(MCC)로 제공한다.
마스터 클록 콘트롤러(MCC)는 클록 응답(Ack On)에 응답하여 내부의 게이트 유닛을 제어하기 위한 클록 활성화 신호(Act_clk)를 활성화하며, 이에 따라 마스터 클록 콘트롤러(MCC)는 IP2(222)로 클록 신호(CLK)를 출력한다. 또한, 클록 요청(Req)에 응답하여 클록 신호(CLK)의 제공이 완료되었음을 나타내는 요청 응답(Res)을 외부로 제공할 수 있다.
도 6은 도 3의 클록 관리 유닛이 출력하는 클록 신호의 일 예를 나타내는 파형도이다. 도 6은 제2 IP(222)로 클록 신호(CLK)를 제공하는 경우의 파형도를 나타낸다.
도 3 및 도 6을 참조하면, 마스터 클록 콘트롤러(211)는 슬레이브 클록 콘트롤러들(212 ~ 214)에 대해 순차적으로 클록 온/오프 명령(CLK On/Off)을 제공한다. 일 예로서, 제3 슬레이브 클록 콘트롤러(214)가 먼저 클록 게이팅을 수행함에 따라, 버스(250)로 클록 신호(CLK)가 먼저 제공된다. 이후, 제2 슬레이브 클록 콘트롤러(213)가 클록 신호(CLK)를 멀티플렉서(240)로 제공하고, 제1 슬레이브 클록 콘트롤러(212)가 클록 신호(CLK)를 비동기 브릿지(230)로 제공한다. 그리고, 마지막으로 마스터 클록 콘트롤러(211)가 클록 신호(CLK)를 제2 IP(222)로 제공한다.
클록 관리 유닛(210)의 클록 콘트롤러들이 하드웨어적으로 제어됨에 따라, 클록 신호(CLK)의 온/오프 처리에 소요되는 딜레이가 감소되며, 이에 따라 제2 IP(222)로 클록 신호(CLK)가 제공되는 레이턴시(Latency)가 감소될 수 있다.
한편, 도 6에서는 제3 슬레이브 클록 콘트롤러(214)에서 제1 슬레이브 클록 콘트롤러(212) 순서로 순차적으로 클록 신호(CLK)를 출력하는 예가 도시되었으나, 본 발명의 실시예는 이에 국한될 필요가 없다. 슬레이브 클록 콘트롤러들(212, 213, 214)이 클록 신호(CLK)를 출력하는 순서는 다양하게 변동될 수 있으며, 바람직하게는 슬레이브 클록 콘트롤러들(212, 213, 214)이 모두 클록 신호(CLK)를 출력한 후 마스터 클록 콘트롤러(211)가 클록 신호(CLK)를 출력할 수 있다.
다른 예로서, IP(222)로 클록 신호(CLK)의 제공을 차단하는 경우, 클록 요청에 응답하여 마스터 클록 콘트롤러(211)가 먼저 클록 신호(CLK)를 비활성화할 수 있다. 이후, 슬레이브 클록 콘트롤러들(212, 213, 214)은 임의적인 순서에 따라 클록 신호(CLK)를 비활성화할 수 있다.
도 7은 클록 관리 유닛이 통신하는 신호의 일 예를 나타내는 블록도이다.
도 7에 도시된 바와 같이, 시스템 온 칩(200)은 클록 관리 유닛(210), 중앙 처리 장치(CPU, 201) 및 인터커넥트 시스템(202)을 포함할 수 있다. 또한, 인터커넥트 시스템(202)은 도 3에 도시된 기능 블록들 중 적어도 일부를 포함할 수 있다. 전술한 실시예에 따라, 클록 관리 유닛(210)은 중앙 처리 장치(201)에 의해 소프트웨어적으로 클록 요청(Req)을 수신하거나, 인터커넥트 시스템(202)으로부터 하드웨어적으로 클록 요청(Req)을 수신할 수 있으며, 또한 내부에 구비되는 다수의 클록 콘트롤러들 사이의 핸드쉐이크 통신 방식에 따라 클록 신호(CLK)의 제어 동작을 수행할 수 있다. 그리고, 클록 관리 유닛(210)은 생성된 하나 이상의 클록 신호(CLK)를 인터커넥트 시스템(202)으로 제공할 수 있다.
중앙 처리 장치(201)는 각종 코드들을 실행함에 의해 시스템 온 칩(200)의 전반적인 동작을 소프트웨어적으로 제어할 수 있으며, 예컨대, IP들로 클록 신호(CLK)가 제공되도록 제어할 수 있다. 클록 관리 유닛(210)은 인터커넥트 시스템(202)의 각각의 기능 블록으로 클록 신호(CLK)가 제공되었음을 나타내는 요청 응답(Res)을 중앙 처리 장치(201)로 제공할 수 있다. 중앙 처리 장치(201)는 상기 요청 응답(Res)을 수신함에 따라 인터커넥트 시스템(202)에 대한 클록 셋팅이 완료되었음을 판단할 수 있으며, 이에 기반하여 IP들을 제어할 수 있다.
도 8은 본 발명의 다른 실시예에 따른 시스템 온 칩을 나타내는 블록도이다.
도 8에 도시된 바와 같이, 시스템 온 칩(300)은 클록 관리 유닛(310)과 다양한 기능 블록들을 포함할 수 있다. 도 8에서는, 클록 관리 유닛(310)으로부터 클록 신호(CLK)를 수신하는 기능 블록들로서, 제1 및 제2 IP(321, 322), 비동기 브릿지(330), 멀티플렉서(340) 및 버스(350)가 예시된다. 한편, 도 8에서 인터커넥트 시스템을 구성하는 다수의 기능 블록들의 동작은 전술한 실시예에서와 동일 또는 유사하므로, 이에 대한 자세한 설명은 생략된다.
클록 관리 유닛(310)은 하나 이상의 마스터 클록 콘트롤러 및 슬레이브 클록 콘트롤러를 포함할 수 있으며, 일 실시예로서 클록 관리 유닛(310)은 마스터 클록 콘트롤러(311) 및 제1 내지 제3 슬레이브 클록 콘트롤러들(312 ~ 314)을 포함할 수 있다. 마스터 클록 콘트롤러(311)와 슬레이브 클록 콘트롤러들(312 ~ 314) 각각은 채널을 통해 연결됨에 따라 핸드쉐이크 방식으로 통신할 수 있다. 또한, 인터커넥트 시스템을 구성하는 기능 블록들 중 적어도 하나는 마스터 클록 콘트롤러(311) 또는 슬레이브 클록 콘트롤러들(312 ~ 314)에 연결될 수 있다. 도 8에서는 일 예로서, 제2 IP(322)와 마스터 클록 콘트롤러(311)는 별도의 채널을 통해 서로 연결됨에 따라 통신할 수 있다.
도 8에 도시된 실시예에 따르면, 마스터 클록 콘트롤러(311)로 제공되는 클록 요청(Req)은 제2 IP(322)가 생성할 수 있으며, 제2 IP(322)는 상기 클록 요청(Req)을 하드웨어적으로 마스터 클록 콘트롤러(311)로 제공할 수 있다. 즉, IP와 클록 관리 유닛(310)이 개별적인 프로토콜을 통해 통신하며, 이에 따라 클록 관리 유닛(310)은 풀 하드웨어적(Fully Hardware) 방식에 따라 제어될 수 있다. 이 경우, 소프트웨어의 개입없이도 하드웨어 방식에 의한 클록 게이팅 제어가 가능하다.
전술한 실시예에서와 유사하게, 클록 요청(Req)을 수신받은 마스터 클록 콘트롤러(311)는 다수의 슬레이브 클록 콘트롤러들(312 ~ 314)에 대해 순차적으로 통신을 수행한다. 예컨대, 마스터 클록 콘트롤러(311)는 슬레이브 클록 콘트롤러들(312 ~ 314) 각각으로 클록 온/오프 명령(CLK On/Off)을 제공하고, 슬레이브 클록 콘트롤러들(312 ~ 314) 각각으로부터 클록 응답(Act On/Off)을 수신할 수 있다.
도 9는 본 발명의 또 다른 실시예에 따른 시스템 온 칩을 나타내는 블록도이다.
도 9에 도시된 바와 같이, 시스템 온 칩(400)은 클록 관리 유닛(410)과, 클록 관리 유닛(410)으로부터 클록 신호(CLK)를 수신하는 기능 블록들로서, 제1 및 제2 IP(421, 422), 비동기 브릿지(430), 멀티플렉서(440) 및 버스(450)가 예시된다. 한편, 도 9에서 인터커넥트 시스템을 구성하는 다수의 기능 블록들 및 클록 관리 유닛(410)의 동작은 전술한 실시예에서와 동일 또는 유사하므로, 이에 대한 자세한 설명은 생략된다.
도 9의 실시예에 따르면, 인터커넥트 시스템을 구성하는 다수의 기능 블록들 각각이 별도의 채널을 통해 클록 관리 유닛(410)에 연결될 수 있다. 또한, 다수의 기능 블록들 각각은 클록 요청(Req)을 발생하기 위한 수단을 포함할 수 있으며, 예컨대 스테이트 머신 등과 같은 제어수단이 기능 블록들 각각에 구비될 수 있다.
제2 IP(422)는 마스터 클록 콘트롤러(411)와 연결되어 클록 요청(Req)을 마스터 클록 콘트롤러(411)로 제공할 수 있다. 이와 유사하게, 비동기 브릿지(330)는 제1 슬레이브 클록 콘트롤러(412)와 연결되어 클록 요청(Req)을 제1 슬레이브 클록 콘트롤러(412)로 제공할 수 있다. 또한, 멀티플렉서(440)는 제2 슬레이브 클록 콘트롤러(413)와 연결되어 클록 요청(Req)을 제2 슬레이브 클록 콘트롤러(413)로 제공할 수 있다. 또한, 버스(450)는 제3 슬레이브 클록 콘트롤러(414)와 연결되어 클록 요청(Req)을 제3 슬레이브 클록 콘트롤러(414)로 제공할 수 있다.
마스터 클록 콘트롤러(411) 및 제1 내지 제3 슬레이브 클록 콘트롤러들(412 ~ 414) 각각은 클록 요청(Req)에 응답하여 클록 신호(CLK)를 생성할 수 있다. 일 실시예로서, 제1 내지 제3 슬레이브 클록 콘트롤러들(412 ~ 414) 각각은 클록 신호(CLK)를 생성하고, 이와 함께 클록 응답(Act On/Off)을 마스터 클록 콘트롤러(411)로 제공할 수 있다. 제2 IP(422)는 인터커넥트 시스템을 구성하는 다른 기능 블록들로 클록 신호(CLK)가 모두 제공된 후 상기 클록 신호(CLK)를 수신할 수 있다. 일 예로서, 마스터 클록 콘트롤러(411)는 제1 내지 제3 슬레이브 클록 콘트롤러들(412 ~ 414)로부터 클록 응답(Act On/Off)을 수신한 후에 클록 게이팅을 수행함으로써 클록 신호(CLK)를 제2 IP(422)로 제공할 수 있다.
한편, 도 9의 실시예에서 도시된 구조에 따라, 클록 관리 유닛(410)은 다양한 방식에 따라 동작할 수 있다. 예컨대, 마스터 클록 콘트롤러(411)는, 클록 요청(Req)에 응답하여 제1 내지 제3 슬레이브 클록 콘트롤러들(412 ~ 414)로 클록 온/오프 명령을 제공할 수 있다. 반면에, 제1 내지 제3 슬레이브 클록 콘트롤러들(412 ~ 414) 각각은 대응하는 기능 블록으로부터 클록 요청(Req)을 수신하기 때문에, 마스터 클록 콘트롤러(411)로부터 제공되는 클록 온/오프 명령은 무시할 수 있다.
또는, 클록 오프 요청에 따라 제2 IP(422)로의 클록 신호(CLK)의 제공이 차단되더라도, 나머지 기능 블록들 중 적어도 일부는 클록 신호(CLK)의 수신이 유지될 수 있다. 일 예로서, 버스(450)는 그 내부에 데이터를 임시 저장하는 공간(예컨대, FIFO)을 포함할 수 있으며, 제2 IP(422)의 동작이 종료되더라도 버스(450)는 그 동작 상태가 유지될 필요가 있다. 이 때, 제3 슬레이브 클록 콘트롤러(414)는 마스터 클록 콘트롤러(411)로부터의 클록 오프 명령을 무시하고 클록 신호(CLK)를 버스(450)로 제공할 수 있다. 일 실시예로서, 제3 슬레이브 클록 콘트롤러(414)는 버스(450)로부터의 클록 요청(예컨대, 클록 오프 요청)에 응답하여 클록 신호(CLK)의 출력을 차단할 수 있다.
한편, 전술한 도 8 및 도 9에 도시된 기능 블록과 클록 콘트롤러 사이의 채널을 통한 통신 방식은 다양하게 구현될 수 있으며, 예컨대 풀 핸드쉐이크 방식(full handshake method)으로서, ARM 회사의 Q-channel interface 또는 P-channel interface 스펙(specification)이 이용될 수 있다.
도 10은 본 발명의 또 다른 실시예에 따른 시스템 온 칩을 나타내는 블록도이다. 도 10에서는, 마스터 클록 콘트롤러와 기능 블록 사이에서 통신하는 신호가 슬레이브 클록 콘트롤러로 함께 제공되는 예가 도시된다.
도 10에 도시된 바와 같이, 시스템 온 칩(500)은 클록 관리 유닛(510)과, 클록 관리 유닛(510)으로부터 클록 신호(CLK)를 수신하는 기능 블록들로서, 제1 및 제2 IP(521, 522), 비동기 브릿지(530), 멀티플렉서(540) 및 버스(550)가 예시된다. 한편, 도 10에서 인터커넥트 시스템을 구성하는 다수의 기능 블록들 및 클록 관리 유닛(510)의 동작은 전술한 실시예에서와 동일 또는 유사하므로, 이에 대한 자세한 설명은 생략된다.
전술한 실시예에 따라, 마스터 클록 콘트롤러(511)는 제1 내지 제3 슬레이브 클록 콘트롤러들(512 ~ 514)과 채널을 통해 서로 통신할 수 있다. 또한, 도 10에 도시된 바와 같이, 인터커넥트 시스템을 구성하는 각각의 기능 블록은 이에 대응하는 클록 콘트롤러와 별도의 채널을 통해 통신할 수 있다. 다른 실시예로서, 도 10에 도시된 실시예에서 각각의 기능 블록과 슬레이브 클록 콘트롤러들(512 ~ 514) 사이에 배치되는 채널은 제거되어도 무방하다.
인터커넥트 시스템을 구성하는 어느 하나의 기능 블록, 예컨대 제2 IP(522)는 마스터 클록 콘트롤러(411)와 별도의 채널을 통해 연결됨과 함께, 이와 동일한 채널 또는 다른 채널을 통하여 슬레이브 클록 콘트롤러와 연결될 수 있다. 일 실시예로서, 제2 IP(522)는 제1 내지 제3 슬레이브 클록 콘트롤러들(512 ~ 514)과 연결될 수 있다. 제2 IP(522)로부터의 클록 요청(Req)은 채널을 통하여 마스터 클록 콘트롤러(511)로 제공될 수 있으며, 또한 제1 내지 제3 슬레이브 클록 콘트롤러들(512 ~ 514)로 함께 제공될 수 있다.
제1 내지 제3 슬레이브 클록 콘트롤러들(512 ~ 514) 각각은 상기 제2 IP(522)로부터의 클록 요청(Req)을 수신함에 의해, 제2 IP(522)가 클록 신호(CLK)의 수신이 필요함을 판단할 수 있다. 제1 내지 제3 슬레이브 클록 콘트롤러들(512 ~ 514) 각각은 클록 요청(Req)에 응답하여 게이팅 동작을 수행할 수 있으며, 이에 따라 클록 신호(CLK)를 생성하여 대응하는 기능 블록에 제공할 수 있다. 전술한 실시예에서와 동일 또는 유사하게, 클록 신호 생성 동작(또는, 클록 신호(CLK)가 기능 블록들로 제공되는 타이밍)은 시퀀셜하게 수행되도록 제어될 수 있다. 일 예로서, 제3 슬레이브 클록 콘트롤러(514)가 먼저 클록 게이팅을 수행하고, 이후 제2 슬레이브 클록 콘트롤러(513)가 클록 게이팅을 수행하며, 이후 제1 슬레이브 클록 콘트롤러(512)가 클록 게이팅을 수행할 수 있다.
제1 내지 제3 슬레이브 클록 콘트롤러들(512 ~ 514) 각각은 클록 응답(Act On/Off)을 마스터 클록 콘트롤러(511)로 제공할 수 있다. 마스터 클록 콘트롤러(511)는 클록 응답(Act On/Off)을 수신함에 따라 클록 게이팅 동작을 수행하고, 클록 신호(CLK)를 제2 IP(522)로 제공할 수 있다.
도 11은 본 발명의 일 실시예에 따른 시스템 온 칩의 동작방법을 나타내는 플로우차트이다.
전술한 실시예에서와 동일 또는 유사하게, 하나 이상의 기능 블록들을 포함하는 인터커넥트 시스템에 대한 클록 공급을 제어하기 위해 클록 관리 유닛이 시스템 온 칩에 제공될 수 있다. 상기 인터커넥트 시스템의 구조에 따라, 클록 관리 유닛에 구비되는 다수의 클록 콘트롤러에 대해 마스터 클록 콘트롤러 및 슬레이브 클록 콘트롤러가 정의될 수 있다. 또한, 마스터 클록 콘트롤러는 하나 이상의 슬레이브 클록 콘트롤러와 별도의 채널을 통해 각각 통신할 수 있으며, 상기 채널을 통하여 마스터 클록 콘트롤러는 하나 이상의 슬레이브 클록 콘트롤러의 클록 게이팅을 명령할 수 있다.
도 11에 도시된 바와 같이, 마스터 클록 콘트롤러(MCC)는 소프트웨어 또는 하드웨어적 방식에 따라 클록 요청을 수신할 수 있다(S11). 마스터 클록 콘트롤러(MCC)는 상기 클록 요청에 응답하여 하나 이상의 슬레이브 클록 콘트롤러(SCC)의 클록 게이팅을 명령하는 클록 온/오프 명령을 제공할 수 있다. 예컨대, 상기 수신된 클록 요청이 인터커넥트 시스템에 구비되는 IP에 대한 클록 제공 요청에 해당하는 경우, 마스터 클록 콘트롤러(MCC)는 클록 온 명령을 상기 하나 이상의 슬레이브 클록 콘트롤러(SCC)로 제공할 수 있다(S12).
다수의 슬레이브 클록 콘트롤러들(SCC)이 클록 관리 유닛에 구비되는 경우, 마스터 클록 콘트롤러(MCC)는 상기 다수의 슬레이브 클록 콘트롤러들(SCC)에 대한 클록 온/오프 명령을 제공을 순차적으로 수행할 수 있다. 이에 따라, 마스터 클록 콘트롤러(MCC)가 어느 하나의 슬레이브 클록 콘트롤러(예컨대, 제1 슬레이브 클록 콘트롤러)로 클록 온 명령을 제공하면, 제1 슬레이브 클록 콘트롤러(SCC)는 상기 클록 온 명령에 응답하여 클록 게이팅을 수행함으로써 클록 신호를 활성화하여 출력한다(S13). 이와 함께, 제1 슬레이브 클록 콘트롤러(SCC)는 클록 응답을 출력하며, 마스터 클록 콘트롤러(MCC)는 상기 클록 응답을 수신한다(S14).
마스터 클록 콘트롤러(MCC)는, 클록 관리 유닛에 구비되는 다수의 슬레이브 클록 콘트롤러들(SCC)이 모두 클록 신호를 활성화함에 따라 클록 셋팅이 완료되었는지를 판단한다(S16). 판단 결과, 클록 셋팅이 완료되지 않은 경우, 마스터 클록 콘트롤러(MCC)는 아직 클록 신호를 활성화하지 않은 다른 슬레이브 클록 콘트롤러(예컨대, 제2 슬레이브 클록 콘트롤러)로 클록 온 명령을 제공한다. 제2 슬레이브 클록 콘트롤러(SCC)는 클록 온 명령에 응답하여 클록 신호를 활성화하고 클록 응답을 출력한다. 마스터 클록 콘트롤러(MCC)는, 상기 클록 응답을 수신하고, 클록 셋팅이 완료되었는지를 판단하며, 판단 결과에 따라 클록 온 명령 제공 및 클록 응답 수신 동작을 반복한다.
상기 판단 결과, 클록 셋팅이 완료된 것으로 판단된 경우에는, 마스터 클록 콘트롤러(MCC)는 클록 신호 생성을 위한 게이팅 동작을 수행한다(S16). 이로서, 마스터 클록 콘트롤러(MCC) 및 슬레이브 클록 콘트롤러(SCC) 각각에서 생성된 클록 신호가 인터커넥트 시스템의 대응하는 기능 블록으로 제공될 수 있다.
도 12는 본 발명의 다른 실시예에 따른 시스템 온 칩의 동작방법을 나타내는 플로우차트이다.
인터커넥트 시스템의 구조를 반영하여, 클록 관리 유닛에 구비되는 다수의 클록 콘트롤러에 대해 마스터 클록 콘트롤러 및 슬레이브 클록 콘트롤러가 정의될 수 있다. 그리고, 인터커넥트 시스템을 구성하는 다수의 기능 블록들과 클록 관리 유닛에 구비되는 다수의 클록 콘트롤러들 사이에서 별도로 배치되는 채널을 통해 통신이 수행될 수 있으며, 전술한 실시예와 동일 또는 유사하게 핸드쉐이크 방식에 따라 통신이 수행될 수 있다. 설명의 편의상, 이하에서는 클록 관리 유닛에 구비되는 슬레이브 클록 콘트롤러 중 하나의 슬레이브 클록 콘트롤러(SCC)에 관련된 동작이 설명된다.
도 12에 도시된 바와 같이, 마스터 클록 콘트롤러(MCC)는 클록 요청을 소프트웨어 또는 하드웨어적으로 수신할 수 있으며, 일 예로서 마스터 클록 콘트롤러(MCC)는 제1 채널을 통해 연결되는 인터커넥트 시스템의 제1 기능 블록(예컨대, IP)으로부터 클록 요청을 하드웨어적으로 수신할 수 있다(S21). 이와 함께, 슬레이브 클록 콘트롤러(SCC)는 제2 채널을 통해 연결되는 인터커넥트 시스템의 제2 기능 블록(예컨대, 비동기 브릿지, 멀티플렉서, 버스 등)으로부터 클록 요청을 수신할 수 있다(S22).
마스터 클록 콘트롤러(MCC)는 슬레이브 클록 콘트롤러(SCC)와 별도의 채널을 통해 연결될 수 있으며, 예컨대 마스터 클록 콘트롤러(MCC)는 제3 채널을 통하여 슬레이브 클록 콘트롤러(SCC)와 연결될 수 있다. 마스터 클록 콘트롤러(MCC)는 클록 요청의 수신에 응답하여 상기 슬레이브 클록 콘트롤러(SCC)를 제어하기 위한 하나 이상의 제어 신호를 발생할 수 있으며, 예컨대 클록 온 명령을 상기 슬레이브 클록 콘트롤러(SCC)로 제공할 수 있다(S23).
상기와 같은 동작에 따라, 슬레이브 클록 콘트롤러(SCC)는 클록 게이팅을 요청하는 두 개 이상의 신호들을 함께 수신할 수 있다. 슬레이브 클록 콘트롤러(SCC)는 수신된 다수 개의 신호들에 기반하여 클록 게이팅을 수행할 수 있다(S24). 일 예로서, 슬레이브 클록 콘트롤러(SCC)는 상기 클록 요청 및 클록 온 명령 중 먼저 수신된 신호에 기반하여 클록 게이팅을 수행할 수 있다. 다른 실시예로서, 슬레이브 클록 콘트롤러(SCC)는 상기 클록 요청 및 클록 온 명령 중 선택된 어느 하나의 신호에 기반하여 클록 게이팅을 수행하도록 제어될 수 있다. 또는, 다른 실시예로서, 상기 클록 요청 및 클록 온 명령 각각은 클록 게이팅에 관련된 추가의 정보(예컨대, 우선 순위 정보 등)를 더 포함하고, 슬레이브 클록 콘트롤러(SCC)는 상기 정보를 판단함에 기반하여 클록 게이팅을 수행하도록 제어될 수 있다.
또한, 전술한 실시예에서와 동일 또는 유사하게, 슬레이브 클록 콘트롤러(SCC)는 클록 게이팅에 기반하여 생성된 클록 신호를 인터커넥트 시스템 내의 기능 블록으로 제공하고, 슬레이브 클록 콘트롤러(SCC)는 마스터 클록 콘트롤러(MCC)로 클록 응답을 제공할 수 있다(S25). 상기와 같은 동작에 따라, 슬레이브 클록 콘트롤러(SCC)는 마스터 클록 콘트롤러(MCC)의 제어와 무관하게 별도로 제어될 수 있다.
도 13은 본 발명의 또 다른 실시예에 따른 시스템 온 칩을 나타내는 블록도이다.
도 13에 도시된 바와 같이, 시스템 온 칩(600)은 클록 관리 유닛(610)과 다양한 기능 블록들을 포함할 수 있다. 도 13에서는, 클록 관리 유닛(610)으로부터 클록 신호(CLK)를 수신하는 기능 블록들로서, 하나 이상의 비동기 브릿지들(예컨대, 제1 내지 제3 비동기 브릿지들, 621 ~ 623), 버스(630) 및 메모리 콘트롤러(640) 등이 예시된다. 메모리(650)는 상기 인터커넥트 시스템에 포함되는 기능 블록일 수 있으며, 또는 메모리(650)는 시스템 온 칩의 내부에서 상기 인터커넥트 시스템의 외부에 배치되는 기능 블록일 수 있다. 또는, 다른 실시예로서, 상기 메모리(650)는 시스템 온 칩의 외부에 배치되는 메모리 장치일 수 있다. 한편, 도 13에 도시된 인터커넥트 시스템과 클록 관리 유닛(610) 사이에 배치되는 채널과, 클록 관리 유닛(610) 내의 클록 콘트롤러들 사이에 배치되는 채널에 관련된 구체적인 동작은 전술한 실시예에서와 동일 또는 유사하므로, 이에 대한 자세한 설명은 생략된다.
클록 관리 유닛(610)에 대응되는 인터커넥트 시스템에 구비되는 기능 블록들은 마스터 블록과 슬레이브 블록으로 분류될 수 있다. 전술한 실시예에서는 기능 블록들 중 IP가 마스터 블록으로 설정되는 예가 도시되었으나, 본 실시예에서와 같이 마스터 기능 블록 및 슬레이브 기능 블록은 다양하게 설정이 가능하다.
일 실시예로서, 시스템 버스를 통해 데이터가 송수신될 때 트래픽(traffic)이 발생되며, 상기 트래픽(traffic)을 발생시키거나 또는 트래픽(traffic)이 시작되는 기능 블록이 마스터 블록으로 설정될 수 있다. 일 예로서, IP로부터의 데이터는 클록 도메인을 변환하기 위한 비동기 브릿지로 제공되고, 실질적으로 비동기 브릿지가 상기 트래픽(traffic)이 시작되는 기능 블록에 해당할 수 있다. 도 13에 도시된 바와 같이, 인터커넥트 시스템을 구성하는 제1 내지 제3 비동기 브릿지들(621, 622, 623), 버스(630), 메모리 콘트롤러(640) 및 메모리(650) 중 제1 내지 제3 비동기 브릿지들(621, 622, 623)이 마스터 기능 블록에 해당할 수 있다.
한편, 클록 관리 유닛(610)의 내부 구성은 상기 인터커넥트 시스템의 구조에 기반하여 설계될 수 있다. 예컨대, 클록 관리 유닛(610)은 제1 내지 제3 비동기 브릿지들(621, 622, 623)에 대응하여 제1 내지 제3 마스터 클록 콘트롤러들(611, 612, 613)을 포함할 수 있다. 또한, 클록 관리 유닛(610)은, 인터커넥트 시스템의 슬레이브 기능 블록들에 해당하는 버스(630) 및 메모리 콘트롤러(640)에 대응하여 제1 및 제2 슬레이브 클록 콘트롤러들(614, 615)을 포함할 수 있다.
일 실시예에 따라, 제1 내지 제3 비동기 브릿지들(621, 622, 623) 각각은 IP(미도시)에 연결될 수 있다. 어느 하나의 IP가 활성화됨에 따라, 상기 활성화된 IP에 대응하는 비동기 브릿지로 클록 신호(CLK)가 제공되고, 나머지 비동기 브릿지로는 클록 신호(CLK)의 제공이 차단될 수 있다. 이하에서는, 제1 비동기 브릿지(621)로 클록 신호(CLK)가 제공되는 예가 설명된다.
제1 비동기 브릿지(621)와 제1 마스터 클록 콘트롤러(611)가 채널을 통해 서로 연결됨에 따라, 제1 비동기 브릿지(621)는 하드웨어적으로 제1 마스터 클록 콘트롤러(611)로 클록 요청(Req)을 제공할 수 있다. 반면에, 제2 및 제3 비동기 브릿지들(622, 623)에 대해서는 클록 오프 상태가 유지될 수 있다.
클록 요청(Req)을 수신한 제1 마스터 클록 콘트롤러(611)는 버스(630)에 대응하는 슬레이브 클록 콘트롤러들(614, 615)로 순차적으로 클록 온/오프 명령(CLK On/Off)을 제공할 수 있다. 또한, 제1 슬레이브 클록 콘트롤러(614)는 클록 신호(CLK)를 버스(630)로 제공함과 함께, 클록 응답(Act On/Off)을 마스터 클록 콘트롤러(611)로 제공할 수 있다. 또한, 제2 슬레이브 클록 콘트롤러(615)는 클록 신호(CLK)를 메모리 콘트롤러(640)로 제공함과 함께, 클록 응답(Act On/Off)을 마스터 클록 콘트롤러(611)로 제공할 수 있다. 마스터 클록 콘트롤러(611)는 제1 및 제2 슬레이브 클록 콘트롤러들(614, 615)로부터 클록 응답(Act On/Off)을 수신함에 따라, 클록 게이팅 동작을 수행하고 이에 따라 생성된 클록 신호(CLK)를 제1 비동기 브릿지(621)로 제공할 수 있다.
한편, 도 13에는 도시되지 않았으나, 전술한 실시예에서와 동일 또는 유사하게, 클록 관리 유닛(610)과 인터커넥트 시스템의 기능 블록들(예컨대, 버스(630) 및 메모리 콘트롤러(640)) 사이에 별도의 채널이 더 배치될 수 있다. 일 실시예로서, 제1 슬레이브 클록 콘트롤러(614)는 버스(630)와 별도의 채널을 통해 연결될 수 있다. 또한 일 실시예로서, 제1 비동기 브릿지(621)로부터의 클록 요청(Req)는 제1 및 제2 슬레이브 클록 콘트롤러들(614, 615)로 직접 제공될 수도 있다.
도 14는 본 발명의 또 다른 실시예에 따른 시스템 온 칩을 나타내는 블록도이다.
도 14에 도시된 바와 같이, 시스템 온 칩(700A)은 중앙 처리 장치(CPU, 711), 온도 센서(712), m 개의 인터커넥트 시스템(713, 715) 및 이에 대응하는 전력 관리 유닛(714, 716)을 포함할 수 있다. 중앙 처리 장치(711)는 시스템 온 칩(700A)의 전반적인 기능을 제어할 수 있다. 또한, 온도 센서(712)는 시스템 온 칩(700A) 내부의 온도를 검출하고, 그 검출 결과를 발생할 수 있다. 도 14에서는, 인터커넥트 시스템과 전력 관리 유닛이 1대1로 배치되는 예가 도시되었으나, 상기 인터커넥트 시스템과 전력 관리 유닛의 배치는 다양하게 변형이 가능하다.
시스템 온 칩(700A)에 구비되는 각각의 기능 블록에 제공되는 클록 신호(CLK)는 시스템 온 칩(700A) 내부의 온도에 따라 조절될 수 있다. 일 예로서, 시스템 온 칩(700A) 내부의 온도는 시스템 온 칩(700A)의 기능 블록들의 동작 주파수에 따라 상승하거나 하강할 수 있으며, 시스템 온 칩(700A) 내부 소자의 보호를 위하여 온도 검출 결과에 따라 클록 신호(CLK)의 주파수가 조절될 수 있다.
중앙 처리 장치(711)는 상기 온도 검출 결과에 기반하여 시스템 온 칩(700A) 내의 기능 블록들의 동작 주파수를 제어할 수 있다. 일 예로서, 중앙 처리 장치(711)는 상기 온도 검출 결과에 기반하여 클록 제어신호(Ctrl[1:m])를 출력한다. 상기 클록 제어신호(Ctrl[1:m])는 시스템 온 칩(700A)에 구비되는 전력 관리 유닛들(714, 716)로 제공될 수 있다. 일 예로서, 제1 전력 관리 유닛(714)은 제1 제어신호(Ctrl 1)를 수신하고, 이에 기반하여 제1 인터커넥트 시스템(713)으로 제공되는 클록 신호(CLK)의 주파수를 조절할 수 있다. 예컨대, 시스템 온 칩(700A) 내부의 온도가 상승하는 경우 주파수가 낮아진 클록 신호(CLK)가 제1 인터커넥트 시스템(713)으로 제공될 수 있으며, 시스템 온 칩(700A) 내부의 온도가 하강하는 경우 주파수가 높아진 클록 신호(CLK)가 제1 인터커넥트 시스템(713)으로 제공될 수 있다. 이와 유사하게, 제m 전력 관리 유닛(716)은 제m 제어신호(Ctrl m)를 수신하고, 이에 기반하여 제m 인터커넥트 시스템(715)으로 제공되는 클록 신호(CLK)의 주파수를 조절할 수 있다.
도 14에 도시된 인터커넥트 시스템(713, 715) 및 이에 대응하는 전력 관리 유닛(714, 716)은 전술한 실시예에서 설명된 바와 동일 또는 유사한 내부 구성요소들을 포함할 수 있다. 예컨대, 인터커넥트 시스템(713, 715)의 구조에 따라 전력 관리 유닛(714, 716) 내에서 마스터 클록 콘트롤러와 슬레이브 클록 콘트롤러가 정의될 수 있다. 또한, 마스터 클록 콘트롤러와 슬레이브 클록 콘트롤러는 채널을 통하여 하드웨어적으로 통신함에 따라 클록 게이팅이 제어될 수 있다. 또한, 인터커넥트 시스템(713, 715)의 기능 블록과 전력 관리 유닛(714, 716)은 채널을 통하여 하드웨어적으로 통신함에 따라 클록 게이팅이 제어될 수 있다.
도 15는 본 발명의 또 다른 실시예에 따른 시스템 온 칩을 나타내는 블록도이다.
도 15에 도시된 바와 같이, 시스템 온 칩(700B)은 중앙 처리 장치(721), 클록 생성기(722), 클록 관리 유닛(723), RAM(724), ROM(725) 및 메모리 콘트롤 유닛(726) 등을 포함할 수 있다. 한편, 오실레이터(OSC)는 시스템 온 칩(700B)의 외부에 배치되어 상기 시스템 온 칩(700B)으로 발진 신호를 제공할 수 있다. 그러나, 이는 일 실시예에 불과한 것으로서, 본 발명의 실시예에 따른 시스템 온 칩(700B)은 다른 다양한 기능 블록들을 포함할 수 있으며, 또한 오실레이터(OSC)가 시스템 온 칩(700B) 내부에 구비되어도 무방하다. 도 15의 시스템 온 칩(700B)은 어플리케이션 프로세서로서 반도체 시스템에 구비될 수 있다.
한편, 중앙 처리 장치(721), 클록 생성기(722), RAM(724), ROM(725) 및 메모리 콘트롤 유닛(726) 각각은 전술한 실시예에서의 기능 블록에 해당할 수 있다. 또한, 전술한 실시예에서의 인터커넥트 시스템은 시스템 온 칩(700B)에 구비되는 하나 이상의 기능 블록들을 포함할 수 있다. 또한, 도 15에서는 하나의 클록 관리 유닛(723)이 도시되었으나, 시스템 온 칩(700B)에 구비되는 기능 블록들(또는, 인터커넥트 시스템들)에 대응하여 다수 개의 클록 관리 유닛들이 시스템 온 칩(700B)에 구비될 수 있다.
클록 생성기(722)는 오실레이터(OSC)로부터의 신호를 이용하여 기준 주파수를 갖는 기준 클록 신호(CLK_IN)를 생성한다. 클록 관리 유닛(723)은 기준 클록 신호(CLK_IN)를 수신하고, 소정의 주파수를 갖는 동작 클록 신호(CLK_OUT)를 생성하여 각각의 기능 블록으로 제공할 수 있다. 전술한 실시예에 따라, 클록 관리 유닛(723)은 하나 이상의 마스터 클록 콘트롤러들 및 슬레이브 클록 콘트롤러들을 포함할 수 있으며, 각각의 클록 콘트롤러는 기준 클록 신호(CLK_IN)를 이용하여 동작 클록 신호(CLK_OUT)를 생성할 수 있다. 또한, 전술한 실시예에 따라, 클록 관리 유닛(723) 내의 클록 콘트롤러들은 채널을 통해 연결됨에 따라 클록 신호의 관리를 하드웨어적으로 수행할 수 있다. 또한, 클록 관리 유닛(723) 내의 클록 콘트롤러는 기능 블록과 채널을 통해 연결됨에 따라, 클록 요청 및 요청 응답이 하드웨어적으로 수행될 수 있다.
중앙 처리 장치(721)는 RAM(724)에 저장된 코드들 및/또는 데이터를 처리 또는 실행할 수 있다. 예컨대, 중앙 처리 장치(721)는 클록 관리 유닛(723)으로부터 출력된 동작 클록에 응답하여 상기 코드들 및/또는 상기 데이터를 처리 또는 실행할 수 있다. 중앙 처리 장치(721)는 멀티-코어 프로세서(multi-core processor)로 구현될 수 있다. 상기 멀티-코어 프로세서는 두 개 또는 그 이상의 독립적인 실질적인 프로세서들을 갖는 하나의 컴퓨팅 컴포넌트(computing component)이고, 상기 프로세서들 각각은 프로그램 명령들(program instructions)을 읽고 실행할 수 있다. 상기 멀티-코어 프로세서는 다수의 가속기를 동시에 구동할 수 있으므로, 상기 멀티-코어 프로세서를 포함하는 데이터 처리 시스템은 멀티-가속(multi-acceleration)을 수행할 수 있다.
RAM(724)은, 프로그램 코드들, 데이터 또는 명령들(instructions)을 일시적으로 저장할 수 있다. 예컨대, 내부 또는 외부 메모리(미도시)에 저장된 프로그램 코드들 및/또는 데이터는 중앙 처리 장치(721)의 제어 또는 ROM(725)에 저장된 부팅 코드(booting code)에 따라 RAM(724)에 일시적으로 저장될 수 있다. 메모리 컨트롤 모듈(726)은 내부 또는 외부 메모리와 인터페이스하기 위한 블록으로서, 메모리 컨트롤 모듈(726)은 메모리의 동작을 전반적으로 제어하며, 또한 호스트와 메모리 사이의 제반 데이터 교환을 제어한다.
도 16은 본 발명의 또 다른 실시예에 따른 시스템 온 칩을 나타내는 블록도이다.
도 16의 실시예에서는, 시스템 온 칩(800)이 기능 블록들에 대한 파워 제공을 관리하는 파워 관리 유닛(Power Management Unit, 810)을 포함하는 예가 도시된다. 전술한 실시예에서의 클록 관리 유닛과 동일 또는 유사하게, 시스템 온 칩(800) 내부에서 이용되는 파워를 관리하는 파워 관리 유닛(810)이 설계될 수 있다.
시스템 온 칩(800)은 파워 관리 유닛(810) 및 다수 개의 기능 블록들(821, 822)을 포함하고, 상기 기능 블록들(821, 822)은 전술한 실시예에서와 유사하게 마스터 기능 블록(821) 및 슬레이브 기능 블록(822)으로 분류될 수 있다. 만약, 마스터 기능 블록(821)이 동작하기 위해서는 상기 마스터 기능 블록(821)으로 파워 제공이 수행되어야 하며, 이와 함께 상기 마스터 기능 블록(821)의 동작에 관련된 하나 이상의 슬레이브 기능 블록(822)으로 파워 제공이 수행되어야 한다. 전술한 실시예에서와 유사하게, 상기 마스터 기능 블록(821) 및 슬레이브 기능 블록(822)은 하나의 인터커넥트 시스템을 구성할 수 있다.
상기 인터커넥트 시스템에 대응하여 파워 관리 유닛(810)이 배치되며, 인터커넥트 시스템의 마스터/슬레이브 구조에 기반하여 파워 관리 유닛(810)은 마스터 파워 콘트롤러(MPC, 811) 및 하나 이상의 슬레이브 파워 콘트롤러(SPC, 812, 813)을 포함할 수 있다. 파워 관리 유닛(810)은 하나 이상의 채널을 통해 인터커넥트 시스템의 기능 블록과 통신할 수 있다. 도 16에서는, 마스터 기능 블록(821)과 마스터 파워 콘트롤러(811)가 채널을 통해 핸드쉐이크 방식에 따라 통신하는 예가 도시된다.
마스터 파워 콘트롤러(811)는 슬레이브 파워 콘트롤러들(SPC, 812, 813) 각각과 채널을 통해 통신할 수 있다. 파워 관리 유닛(810)은 입력 파워(power_in)를 수신하고, 상기 파워를 조절하여 각각의 기능 블록에 적합하도록 파워를 변환하여 출력 파워(power_out)를 생성할 수 있다. 또한, 파워 관리 유닛(810)은 파워 요청(Req)에 따라 마스터 기능 블록(821) 및 슬레이브 기능 블록(822)으로 파워를 제공하거나 차단할 수 있다. 전술한 실시예에서와 동일 또는 유사하게, 마스터 파워 콘트롤러(811)는 중앙 처리 장치(미도시)의 코드 처리에 기반하여 파워 요청(Req)을 소프트웨어적으로 수신하거나, 마스터 기능 블록(821)으로부터 하드웨어적으로 파워 요청(Req)을 수신할 수 있다. 그리고, 마스터 기능 블록(821)은 슬레이브 파워 콘트롤러들(SPC, 812, 813)로 파워 온/오프 명령(pwr on/off)을 제공할 수 있으며, 슬레이브 파워 콘트롤러들(SPC, 812, 813)로부터 파워 응답(Ack on/off)을 수신할 수 있다.
도 17은 본 발명의 실시예에 따른 시스템 온 칩을 포함하는 반도체 시스템의 일 예를 나타내는 블록도이다.
도 17을 참조하면, 반도체 시스템(900)은 전술한 실시예들에 따른 시스템 온 칩(901), 안테나(910), 무선 송수신기(920), 입력 장치(930) 및 디스플레이(940)를 포함할 수 있다. 무선 송수신기(920)는 안테나(910)를 통하여 무선 신호를 주거나 받을 수 있다. 예컨대, 무선 송수신기(920)는 안테나(910)를 통하여 수신된 무선 신호를 시스템 온 칩(901)에서 처리될 수 있는 신호로 변경할 수 있다. 따라서, 시스템 온 칩(901)은 무선 송수신기(920)로부터 출력된 신호를 처리하고 처리된 신호를 디스플레이(940)로 전송할 수 있다. 또한, 무선 송수신기(920)는 시스템 온 칩(901)으로부터 출력된 신호를 무선 신호로 변경하고 변경된 무선 신호를 안테나(910)를 통하여 외부 장치로 출력할 수 있다. 입력 장치(930)는 시스템 온 칩(901)의 동작을 제어하기 위한 제어 신호 또는 시스템 온 칩(901)에 의하여 처리될 데이터를 입력할 수 있는 장치로서, 터치 패드(touch pad)와 컴퓨터 마우스(computer mouse)와 같은 포인팅 장치(pointing device), 키패드(keypad), 또는 키보드로 구현될 수 있다.
도 18은 본 발명의 실시예에 따른 시스템 온 칩을 포함하는 반도체 시스템의 다른 예를 나타내는 블록도이다.
도 18을 참조하면, 메모리 시스템(1000)은 SSD(solid state drive)와 같은 데이터 처리 장치로 구현될 수 있다. 메모리 시스템(1000)은 다수의 메모리 장치들(1500), 다수의 메모리 장치들(1500) 각각의 데이터 처리 동작을 제어할 수 있는 메모리 컨트롤러(1200), DRAM과 같은 휘발성 메모리 장치(1300), 메모리 컨트롤러(1200)와 호스트(1400) 사이에서 주고받은 데이터를 휘발성 메모리 장치(1300)에 저장하는 것을 제어하는 시스템 온 칩(1100)을 포함할 수 있다. 상기 시스템 온 칩(1100)은 전술한 실시예에 따라 구현될 수 있으며, 이에 따라 시스템 온 칩(1100)은 그 내부의 인터커넥트 시스템의 구조를 반영한 클록 관리 유닛(및/또는 전력 관리 유닛)을 포함할 수 있다. 클록 관리 유닛은 인터커넥트 시스템의 구조를 반영함으로써 마스터 클록 콘트롤러 및 슬레이브 클록 콘트롤러를 포함할 수 있다.
상기한 실시예의 설명은 본 발명의 더욱 철저한 이해를 위하여 도면을 참조로 예를 든 것에 불과하므로, 본 발명을 한정하는 의미로 해석되어서는 안될 것이다. 또한, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 있어 본 발명의 기본적 원리를 벗어나지 않는 범위 내에서 다양한 변화와 변경이 가능함은 명백하다 할 것이다.

Claims (20)

  1. 하나 이상의 기능 블록들을 포함하는 인터커넥트 시스템; 및
    다수 개의 클록 콘트롤러들을 포함하고, 상기 다수 개의 클록 콘트롤러는 마스터 클록 콘트롤러 및 하나 이상의 슬레이브 클록 콘트롤러들을 포함하는 클록 관리 유닛을 구비하고,
    상기 하나 이상의 슬레이브 클록 콘트롤러들은 제1 슬레이브 클록 콘트롤러 및 제2 슬레이브 클록 콘트롤러를 포함하고, 상기 마스터 클록 콘트롤러는 제1 채널을 통해 상기 제1 슬레이브 클록 콘트롤러와 통신하고, 제2 채널을 통해 상기 제2 슬레이브 클록 콘트롤러와 통신하며,
    상기 마스터 클록 콘트롤러는, 클록 요청에 응답하여 상기 제1 슬레이브 클록 콘트롤러로 제1 클록 온/오프 명령을 제공하고, 상기 제1 슬레이브 클록 콘트롤러로부터 제1 클록 응답을 수신하고,
    상기 마스터 클록 콘트롤러는, 상기 제1 클록 응답이 수신된 이후에 상기 제2 슬레이브 클록 콘트롤러로 제2 클록 온/오프 명령을 제공하고, 상기 제2 슬레이브 클록 콘트롤러로부터 제2 클록 응답을 수신하며,
    상기 마스터 클록 콘트롤러는, 상기 제1 클록 응답 및 상기 제2 클록 응답을 수신한 이후에 클록 게이팅 동작을 수행하는 것을 특징으로 하는 시스템 온 칩.
  2. 제1항에 있어서,
    상기 마스터 클록 콘트롤러와 상기 제1 및 제2 슬레이브 클록 콘트롤러들 각각은 풀 핸드쉐이크 방식에 따라 통신하는 것을 특징으로 하는 시스템 온 칩.
  3. 제1항에 있어서,
    상기 인터커넥트 시스템의 마스터 및 슬레이브 구조에 따라, 상기 다수 개의 클록 콘트롤러들 중 상기 마스터 클록 콘트롤러가 선택되는 것을 특징으로 하는 시스템 온 칩.
  4. 제1항에 있어서,
    소프트웨어를 실행하는 중앙 처리 장치를 더 구비하고,
    상기 마스터 클록 콘트롤러는 상기 소프트웨어의 실행 결과에 기반하여 상기 클록 요청을 수신하는 것을 특징으로 하는 시스템 온 칩.
  5. 제1항에 있어서,
    상기 마스터 클록 콘트롤러는, 상기 인터커넥트 시스템의 기능 블록과 제3 채널을 통해 연결되고, 상기 기능 블록으로부터 하드웨어적으로 상기 클록 요청을 수신하는 것을 특징으로 하는 시스템 온 칩.
  6. 제1항에 있어서,
    상기 인터커넥트 시스템은 마스터 기능 블록과 하나 이상의 슬레이브 기능 블록들을 포함하고,
    상기 마스터 클록 콘트롤러는 상기 마스터 기능 블록에 연결되고, 상기 하나 이상의 슬레이브 클록 콘트롤러들은 상기 하나 이상의 슬레이브 기능 블록들에 연결되는 것을 특징으로 하는 시스템 온 칩.
  7. 제6항에 있어서,
    상기 마스터 기능 블록은 지능 소자(IP)를 포함하고,
    상기 하나 이상의 슬레이브 기능 블록들은 비동기 브릿지, 멀티플렉서 및 버스 중 적어도 하나를 포함하는 것을 특징으로 하는 시스템 온 칩.
  8. 제1항에 있어서,
    상기 하나 이상의 슬레이브 클록 콘트롤러들은, 제3 내지 제n 슬레이브 클록 콘트롤러들을 더 포함하고(단, n 은 3 이상의 정수),
    상기 마스터 클록 콘트롤러는 상기 제1 내지 제n 슬레이브 클록 콘트롤러들 각각에 대해 별도의 채널을 통해 연결되는 것을 특징으로 하는 시스템 온 칩.
  9. 제8항에 있어서,
    상기 제1 내지 제n 슬레이브 클록 콘트롤러들 각각에 대해, 상기 마스터 클록 콘트롤러는 클록 온/오프 명령 제공 및 클록 응답 수신을 순차적으로 수행하는 것을 특징으로 하는 시스템 온 칩.
  10. 제9항에 있어서,
    상기 마스터 클록 콘트롤러는, 상기 제1 내지 제n 슬레이브 클록 콘트롤러들로부터 상기 클록 응답을 모두 수신한 후에 상기 클록 게이팅 동작을 통해 클록 신호를 출력하는 것을 특징으로 하는 시스템 온 칩.
  11. 제1항에 있어서,
    상기 하나 이상의 기능 블록들은 마스터 기능 블록과 하나 이상의 슬레이브 기능 블록들을 포함하고,
    상기 마스터 클록 콘트롤러는 제3 채널을 통해 상기 마스터 기능 블록과 연결되고,
    적어도 하나의 슬레이브 클록 콘트롤러는 제4 채널을 통해 상기 슬레이브 기능 블록과 연결되는 것을 특징으로 하는 시스템 온 칩.
  12. 제11항에 있어서, 상기 슬레이브 클록 콘트롤러는,
    상기 제4 채널을 통해 상기 슬레이브 기능 블록으로부터 클록 요청을 더 수신하고,
    상기 마스터 클록 콘트롤러로부터의 클록 온/오프 명령 및 상기 슬레이브 기능 블록으로부터의 클록 요청 중 어느 하나를 선택적으로 이용하여 클록 신호를 출력하는 것을 특징으로 하는 시스템 온 칩.
  13. 제1항에 있어서,
    상기 하나 이상의 기능 블록들은 마스터 기능 블록과 하나 이상의 슬레이브 기능 블록들을 포함하고,
    상기 마스터 클록 콘트롤러 및 적어도 하나의 슬레이브 클록 콘트롤러는 제3 채널을 통해 상기 마스터 기능 블록과 연결되는 것을 특징으로 하는 시스템 온 칩.
  14. 제1항에 있어서,
    상기 마스터 클록 콘트롤러는, 상기 슬레이브 클록 콘트롤러들 각각으로부터 클록 응답을 수신하고, 상기 인터커넥트 시스템으로 클록 신호를 출력한 후 상기 클록 요청에 대응하는 요청 응답을 발생하는 것을 특징으로 하는 시스템 온 칩.
  15. 제1항에 있어서,
    상기 인터커넥트 시스템은 데이터 트래픽(traffic)이 시작되는 다수 개의 제1 기능 블록들을 포함하고,
    상기 클록 관리 유닛은, 상기 제1 기능 블록들에 대응하여 다수 개의 마스터 클록 콘트롤러들을 포함하는 것을 특징으로 하는 시스템 온 칩.
  16. 제1 기능 블록으로 제1 클록 신호를 출력하는 마스터 클록 콘트롤러;
    제2 기능 블록으로 제2 클록 신호를 출력하고, 제1 채널을 통해 상기 마스터 클록 콘트롤러와 핸드쉐이크 방식에 따라 통신하는 제1 클록 콘트롤러; 및
    제3 기능 블록으로 제3 클록 신호를 출력하고, 제2 채널을 통해 상기 마스터 클록 콘트롤러와 핸드쉐이크 방식에 따라 통신하는 제2 클록 콘트롤러를 구비하고,
    상기 제1 및 제2 채널들 각각은, 상기 마스터 클록 콘트롤러로부터의 클록 온/오프 명령을 전달하기 위한 명령 채널과, 상기 제1 또는 제2 클록 콘트롤러로부터의 클록 응답을 전달하기 위한 응답 채널을 포함하는 것을 특징으로 하는 클록 관리 장치.
  17. 시스템 온 칩의 동작방법에 있어서, 상기 시스템 온 칩은 마스터 클록 콘트롤러 및 다수 개의 슬레이브 클록 콘트롤러들을 포함하는 클록 관리 유닛을 구비하고,
    상기 마스터 클록 콘트롤러가 클록 요청을 수신하는 단계;
    상기 마스터 클록 콘트롤러가 제1 슬레이브 클록 콘트롤러와 클록 온/오프 명령 및 클록 응답을 통신하는 단계;
    상기 제1 슬레이브 클록 콘트롤러가 제1 클록 신호의 출력을 제어하는 단계;
    상기 마스터 클록 콘트롤러가 제2 슬레이브 클록 콘트롤러와 클록 온/오프 명령 및 클록 응답을 통신하는 단계; 및
    상기 제2 슬레이브 클록 콘트롤러가 제2 클록 신호의 출력을 제어하는 단계를 구비하는 것을 특징으로 하는 시스템 온 칩의 동작방법.
  18. 제17항에 있어서,
    상기 클록 요청이 클록 온 요청일 때, 상기 마스터 클록 콘트롤러는 상기 다수 개의 슬레이브 클록 콘트롤러들로부터 클록 응답을 모두 수신한 후에 클록 신호를 출력하는 것을 특징으로 하는 시스템 온 칩의 동작방법.
  19. 제17항에 있어서,
    상기 클록 요청이 클록 오프 요청일 때, 상기 마스터 클록 콘트롤러는 클록 신호의 출력을 차단한 이후 상기 다수 개의 슬레이브 클록 콘트롤러들과 통신하는 것을 특징으로 하는 시스템 온 칩의 동작방법.
  20. 제17항에 있어서,
    상기 클록 관리 유닛은 하나 이상의 기능 블록들을 포함하는 인터커넥트 시스템으로 클록 신호를 제공하고,
    상기 인터커넥트 시스템의 기능 블록들의 마스터 및 슬레이브 구조에 따라, 상기 클록 관리 유닛의 마스터 클록 콘트롤러 및 슬레이브 클록 콘트롤러들이 정의되는 것을 특징으로 하는 시스템 온 칩의 동작방법.
KR1020150073091A 2015-05-26 2015-05-26 클록 관리 유닛을 포함하는 시스템 온 칩 및 그 동작방법 KR102384347B1 (ko)

Priority Applications (7)

Application Number Priority Date Filing Date Title
KR1020150073091A KR102384347B1 (ko) 2015-05-26 2015-05-26 클록 관리 유닛을 포함하는 시스템 온 칩 및 그 동작방법
US15/156,825 US10430372B2 (en) 2015-05-26 2016-05-17 System on chip including clock management unit and method of operating the system on chip
DE102016109387.4A DE102016109387A1 (de) 2015-05-26 2016-05-23 Ein-Chip-System mit Taktverwaltungseinheit und Verfahren zum Betreiben des Ein-Chip-Systems
TW105116190A TWI750118B (zh) 2015-05-26 2016-05-25 時脈管理電路系統、系統單晶片以及時脈管理方法
CN201610362235.4A CN106200760B (zh) 2015-05-26 2016-05-26 时钟管理电路、芯片上系统、时钟管理的方法
US16/533,209 US10853304B2 (en) 2015-05-26 2019-08-06 System on chip including clock management unit and method of operating the system on chip
US16/952,681 US11275708B2 (en) 2015-05-26 2020-11-19 System on chip including clock management unit and method of operating the system on chip

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020150073091A KR102384347B1 (ko) 2015-05-26 2015-05-26 클록 관리 유닛을 포함하는 시스템 온 칩 및 그 동작방법

Publications (2)

Publication Number Publication Date
KR20160138786A KR20160138786A (ko) 2016-12-06
KR102384347B1 true KR102384347B1 (ko) 2022-04-07

Family

ID=57397535

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150073091A KR102384347B1 (ko) 2015-05-26 2015-05-26 클록 관리 유닛을 포함하는 시스템 온 칩 및 그 동작방법

Country Status (3)

Country Link
US (2) US10430372B2 (ko)
KR (1) KR102384347B1 (ko)
CN (1) CN106200760B (ko)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10209734B2 (en) * 2016-01-25 2019-02-19 Samsung Electronics Co., Ltd. Semiconductor device, semiconductor system, and method of operating the semiconductor device
US10303203B2 (en) 2016-01-25 2019-05-28 Samsung Electronics Co., Ltd. Semiconductor device, semiconductor system and method for operating semiconductor device
KR102467172B1 (ko) 2016-01-25 2022-11-14 삼성전자주식회사 반도체 장치
US10248155B2 (en) 2016-01-25 2019-04-02 Samsung Electronics Co., Ltd. Semiconductor device including clock generating circuit and channel management circuit
DE102017110821A1 (de) 2016-01-25 2018-07-26 Samsung Electronics Co., Ltd. Halbleitervorrichtung
US10296066B2 (en) 2016-01-25 2019-05-21 Samsung Electronics Co., Ltd. Semiconductor device, semiconductor system, and method of operating the semiconductor device
US10313041B2 (en) * 2016-06-10 2019-06-04 Apple Inc. Determination of accuracy of a chain of clocks
KR102576707B1 (ko) * 2016-12-26 2023-09-08 삼성전자주식회사 전자 시스템 및 그 동작 방법
CN108268085B (zh) * 2017-01-03 2023-05-26 三星电子株式会社 半导体装置
CN108268086B (zh) * 2017-01-03 2023-05-26 三星电子株式会社 半导体装置、半导体系统以及操作半导体装置的方法
CN108268087B (zh) * 2017-01-03 2023-05-23 三星电子株式会社 半导体装置、半导体系统和操作半导体装置的方法
CN108268117B (zh) * 2017-01-03 2023-05-26 三星电子株式会社 半导体装置以及半导体系统
KR102530347B1 (ko) * 2018-01-08 2023-05-08 삼성전자주식회사 반도체 장치 및 반도체 시스템
CN109445516A (zh) * 2018-09-27 2019-03-08 北京中电华大电子设计有限责任公司 一种应用于双核SoC中外设时钟控制方法及电路
US10761560B2 (en) * 2018-10-15 2020-09-01 Huawei Technologies Co., Ltd. Method and apparatus for transaction based propagated clock-gating for low power design
KR102578201B1 (ko) * 2018-11-14 2023-09-14 에스케이하이닉스 주식회사 파워 게이팅 시스템
KR20210045009A (ko) * 2019-10-16 2021-04-26 삼성전자주식회사 인터페이싱 장치, 인터페이싱 장치를 포함하는 반도체 장치 및 반도체 장치의 통신 방법
CN114579491A (zh) * 2022-01-28 2022-06-03 新华三技术有限公司合肥分公司 一种集成电路总线复用装置以及网络设备
US11764834B2 (en) 2022-02-15 2023-09-19 Raytheon Company Device for and method of synchronizing multiple beamforming devices
CN115422120B (zh) * 2022-11-04 2023-03-10 摩尔线程智能科技(北京)有限责任公司 Soc芯片以及soc芯片上的多级时钟的释放方法

Family Cites Families (47)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100291385B1 (ko) 1999-06-16 2001-05-15 윤종용 반도체 메모리 장치의 클럭 제어신호 및 출력 인에이블 신호 발생회로
US6434704B1 (en) 1999-08-16 2002-08-13 International Business Machines Corporation Methods for improving the efficiency of clock gating within low power clock trees
US6532544B1 (en) 1999-11-08 2003-03-11 International Business Machines Corporation High gain local clock buffer for a mesh clock distribution utilizing a gain enhanced split driver clock buffer
US7013302B2 (en) * 2000-12-22 2006-03-14 Nortel Networks Limited Bit field manipulation
US6653859B2 (en) * 2001-06-11 2003-11-25 Lsi Logic Corporation Heterogeneous integrated circuit with reconfigurable logic cores
US7107476B2 (en) 2001-11-21 2006-09-12 Hynix Semiconductor Inc. Memory system using non-distributed command/address clock signals
US7007121B1 (en) * 2002-02-27 2006-02-28 Xilinx, Inc. Method and apparatus for synchronized buses
US6583648B1 (en) 2002-03-19 2003-06-24 Intel Corporation Method and apparatus for fine granularity clock gating
US7197680B2 (en) * 2003-04-17 2007-03-27 Arm Limited Communication interface for diagnostic circuits of an integrated circuit
KR100694095B1 (ko) * 2005-03-05 2007-03-12 삼성전자주식회사 버스 연결 방법 및 장치
US7478286B2 (en) * 2005-04-08 2009-01-13 Linear Technology Corporation Circuit and method of detecting and resolving stuck I2C buses
GB0524720D0 (en) * 2005-12-05 2006-01-11 Imec Inter Uni Micro Electr Ultra low power ASIP architecture II
US8516172B1 (en) * 2007-08-30 2013-08-20 Virident Systems, Inc. Methods for early write termination and power failure with non-volatile memory
US8001411B2 (en) 2007-09-24 2011-08-16 International Business Machines Corporation Generating a local clock domain using dynamic controls
US7743191B1 (en) * 2007-12-20 2010-06-22 Pmc-Sierra, Inc. On-chip shared memory based device architecture
JP2010021793A (ja) 2008-07-10 2010-01-28 Toshiba Corp 半導体集積回路装置および消費電力制御方法
US8448001B1 (en) * 2009-03-02 2013-05-21 Marvell International Ltd. System having a first device and second device in which the main power management module is configured to selectively supply a power and clock signal to change the power state of each device independently of the other device
JP5267218B2 (ja) * 2009-03-05 2013-08-21 富士通株式会社 クロック供給方法及び情報処理装置
KR20110028056A (ko) * 2009-09-11 2011-03-17 삼성전자주식회사 블루투스 통신 연결 방법 및 시스템
US8301822B2 (en) * 2009-09-23 2012-10-30 Sandisk Il Ltd. Multi-protocol storage device bridge
TWI443521B (zh) 2010-03-26 2014-07-01 Nuvoton Technology Corp 匯流排介面、時脈控制裝置,以及時脈頻率控制方法
US9285860B2 (en) 2010-05-03 2016-03-15 Qualcomm Incorporated Apparatus and methods employing variable clock gating hysteresis for a communications port
KR101603287B1 (ko) * 2010-05-17 2016-03-14 삼성전자주식회사 시스템 온 칩 및 그것의 동작 방법
US9286257B2 (en) 2011-01-28 2016-03-15 Qualcomm Incorporated Bus clock frequency scaling for a bus interconnect and related devices, systems, and methods
KR101842245B1 (ko) 2011-07-25 2018-03-26 삼성전자주식회사 시스템 온 칩 버스 장치 및 그에 따른 루트 클럭 게이팅 방법
US20130117593A1 (en) 2011-11-07 2013-05-09 Qualcomm Incorporated Low Latency Clock Gating Scheme for Power Reduction in Bus Interconnects
US10803970B2 (en) * 2011-11-14 2020-10-13 Seagate Technology Llc Solid-state disk manufacturing self test
JP2013106166A (ja) 2011-11-14 2013-05-30 Sony Corp クロックゲーティング回路およびバスシステム
US8839376B2 (en) * 2012-06-29 2014-09-16 Cable Television Laboratories, Inc. Application authorization for video services
US9160472B2 (en) * 2012-09-07 2015-10-13 National Instruments Corporation Clock synchronization over a switched fabric
KR101927096B1 (ko) * 2012-10-19 2018-12-10 삼성전자주식회사 어플리케이션 프로세서, 이를 구비하는 모바일 기기 및 어플리케이션 프로세서를 위한 클럭 신호 선택 방법
EP3200042B1 (en) 2012-12-13 2019-02-06 Coherent Logix Incorporated Clock generation circuitry
US8989328B2 (en) * 2013-03-14 2015-03-24 Qualcomm Incorporated Systems and methods for serial communication
US9471523B2 (en) * 2013-09-18 2016-10-18 Infineon Technologies Ag Serial interface systems and methods having multiple modes of serial communication
US9471529B2 (en) * 2013-11-26 2016-10-18 SK Hynix Inc. Embedded storage device including a plurality of storage units coupled via relay bus
US9489009B2 (en) * 2014-02-20 2016-11-08 Samsung Electronics Co., Ltd. System on chip, bus interface and method of operating the same
US9582441B2 (en) * 2014-02-27 2017-02-28 Infineon Technologies Ag Clockless serial slave device
US10013375B2 (en) * 2014-08-04 2018-07-03 Samsung Electronics Co., Ltd. System-on-chip including asynchronous interface and driving method thereof
US9582026B2 (en) 2014-09-30 2017-02-28 Samsung Electronics Co., Ltd. System-on-chip to support full handshake and mobile device having the same
US9571341B1 (en) * 2014-10-01 2017-02-14 Netspeed Systems Clock gating for system-on-chip elements
KR20160043579A (ko) * 2014-10-13 2016-04-22 삼성전자주식회사 반도체 장치의 사용시간 매니징 방법 및 그에 따른 사용시간 매니징 부를 구비한 반도체 장치
US10176012B2 (en) * 2014-12-12 2019-01-08 Nxp Usa, Inc. Method and apparatus for implementing deterministic response frame transmission
US9785211B2 (en) * 2015-02-13 2017-10-10 Qualcomm Incorporated Independent power collapse methodology
KR20160141585A (ko) * 2015-06-01 2016-12-09 삼성전자주식회사 메모리 카드 어댑터
US10241953B2 (en) * 2015-08-07 2019-03-26 Qualcomm Incorporated Dynamic data-link selection over common physical interface
US10623240B2 (en) * 2016-08-25 2020-04-14 Intel Corporation IoT solution sizing
US10396922B2 (en) * 2017-02-07 2019-08-27 Texas Instruments Incorporated Apparatus and mechanism to support multiple time domains in a single soc for time sensitive network

Also Published As

Publication number Publication date
US10430372B2 (en) 2019-10-01
US20160350259A1 (en) 2016-12-01
US20190361837A1 (en) 2019-11-28
CN106200760A (zh) 2016-12-07
US10853304B2 (en) 2020-12-01
KR20160138786A (ko) 2016-12-06
CN106200760B (zh) 2020-07-24

Similar Documents

Publication Publication Date Title
KR102384347B1 (ko) 클록 관리 유닛을 포함하는 시스템 온 칩 및 그 동작방법
US9785211B2 (en) Independent power collapse methodology
US11275708B2 (en) System on chip including clock management unit and method of operating the system on chip
US9904644B2 (en) Systems and methods of using an SPI controller
US8018784B2 (en) Semiconductor device and data processor
KR20120096858A (ko) 모바일 디바이스의 어플리케이션 프로세서의 원격 시동
TWI740988B (zh) 半導體裝置
US8754681B2 (en) Multi-part clock management
KR101861743B1 (ko) 이종의 전력 제어와 동종의 전력 제어를 선택적으로 수행할 수 있는 시스템-온 칩과 이의 동작 방법
JP2004199664A (ja) 同期バスを介してサブシステムを選択的に相互接続するための動的に変化可能なクロック・ドメインを有する方法および装置
KR100591524B1 (ko) 버스 구조하에서 다이나믹 클록 게이팅이 가능한 슬레이브장치 및 그 동작방법
US10248155B2 (en) Semiconductor device including clock generating circuit and channel management circuit
US8786332B1 (en) Reset extender for divided clock domains
TWI752067B (zh) 半導體裝置及半導體系統
US9442788B2 (en) Bus protocol checker, system on chip including the same, bus protocol checking method
US20230104271A1 (en) System on chip and application processor
KR102550422B1 (ko) 반도체 장치
US20150106635A1 (en) Semiconductor integrated circuit and method of controlling the same

Legal Events

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