KR20130012299A - 시스템 온 칩 버스 장치 및 그에 따른 루트 클럭 게이팅 방법 - Google Patents

시스템 온 칩 버스 장치 및 그에 따른 루트 클럭 게이팅 방법 Download PDF

Info

Publication number
KR20130012299A
KR20130012299A KR1020110073401A KR20110073401A KR20130012299A KR 20130012299 A KR20130012299 A KR 20130012299A KR 1020110073401 A KR1020110073401 A KR 1020110073401A KR 20110073401 A KR20110073401 A KR 20110073401A KR 20130012299 A KR20130012299 A KR 20130012299A
Authority
KR
South Korea
Prior art keywords
bus
clock
clock gating
gating
gate
Prior art date
Application number
KR1020110073401A
Other languages
English (en)
Other versions
KR101842245B1 (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 KR1020110073401A priority Critical patent/KR101842245B1/ko
Priority to US13/556,545 priority patent/US9152213B2/en
Publication of KR20130012299A publication Critical patent/KR20130012299A/ko
Priority to US14/873,485 priority patent/US9886414B2/en
Priority to US15/887,629 priority patent/US10671562B2/en
Application granted granted Critical
Publication of KR101842245B1 publication Critical patent/KR101842245B1/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
    • 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/40Bus structure
    • 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/10Distribution of clock signals, e.g. skew
    • 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
    • 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/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • 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
    • 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/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4027Coupling between buses using bus bridges
    • G06F13/405Coupling between buses using bus bridges where the bridge performs a synchronising function
    • 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/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4027Coupling between buses using bus bridges
    • G06F13/405Coupling between buses using bus bridges where the bridge performs a synchronising function
    • G06F13/4054Coupling between buses using bus bridges where the bridge performs a synchronising function where the function is bus cycle extension, e.g. to meet the timing requirements of the target bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0038System on Chip
    • 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
    • Y02BCLIMATE CHANGE MITIGATION TECHNOLOGIES RELATED TO BUILDINGS, e.g. HOUSING, HOUSE APPLIANCES OR RELATED END-USER APPLICATIONS
    • Y02B70/00Technologies for an efficient end-user side electric power management and consumption
    • Y02B70/10Technologies improving the efficiency by using switched-mode power supplies [SMPS], i.e. efficient power electronics conversion e.g. power factor correction or reduction of losses in power supplies or efficient standby modes
    • 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

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)
  • Bus Control (AREA)

Abstract

시스템 온 칩 버스 장치 및 그에 따른 루트 클럭 게이팅 방법이 개시된다. 그러한 시스템 온 칩 버스 장치는, 버스와 클럭 게이팅부를 포함한다. 상기 버스는 시스템 온 칩의 IP들과 같은 기능 블록들 사이를 연결한다. 상기 클럭 게이팅부는 상기 버스의 인터페이스부에 연결되며, 상기 버스에 설치된 버스 브릿지 장치의 동작에 사용되는 클럭을 트랜잭션 검출 신호의 상태에 따라 근본적으로 게이팅한다. 따라서, 트랜잭션의 검출 신호의 상태에 따라 클럭이 버스장치에 공급되거나 차단되므로 전력 소모가 최소화 또는 감소된다.

Description

시스템 온 칩 버스 장치 및 그에 따른 루트 클럭 게이팅 방법{Bus system in SoC and method of gating root clocks therefor}
본 발명은 시스템 온 칩에 관한 것으로, 보다 구체적으로 시스템 온 칩 버스 장치 및 그에 따른 루트 클럭 게이팅 방법에 관한 것이다.
컴퓨터, 통신, 방송 등이 점차 통합되는 컨버전스(Convergence)화에 따라, 기존 ASIC(Application Specific IC:주문형 반도체)와 ASSP(Application Specific Standard Product:특정용도 표준제품)의 수요는 SoC(System on Chip)의 수요로 변환되고 있는 추세이다. 또한 IT(Information Technology)기기의 경박 단소화 및 고기능화 추세도 SoC 를 촉진시키는 요인들 중의 하나이다.
그러한 SoC는, 반도체 공정 기술의 발전에 힘입어 기존의 여러 가지 기능을 가진 기능 블록들, 예컨대 IP(Intellectural Property)들이 하나의 칩 상에 집약적으로 구현된 형태이다.
칩의 고집적 및 IP간의 정보량 증가에 따라, SoC의 버스 기반 구조에서 나타나는 확장성 문제를 해결하기 위해, 일반적인 네트워크 기술을 칩내에 응용하여 IP들을 연결하는 방식인 NoC(Networks on Chip) 기술도 제시되었다.
SoC의 집적도 및 사이즈가 커지고 동작 속도도 높아짐에 따라, 저전력 소비 이슈도 매우 중요한 팩터들 중의 하나가 된다. 왜냐하면 전력 소비가 심할 경우에 칩의 온도가 높아져 동작 불능은 물론 패키지(package)가 파손되는 경우도 초래될 수 있다.
SoC에서의 버스 장치에 대한 저전력 설계 방법들 중의 하나는 클럭 게이팅(clock gating)이다.
종래기술들 중의 하나로서, EDA tool(Power compiler)에 의한 클럭 게이팅은 레지스터(register)가 아이들(idle)한 상태일 때 logic/clock 스위칭이 차단되도록 함에 의해 전력 소비를 줄인다. 그러나 장치가 동작 중에 잠시 아이들한 상태가 된 경우에 클럭 트리 버퍼(clock tree buffer)에서의 스위칭 파워(switching power)는 여전히 소비된다.
또 다른 클럭 게이팅의 방법은 SOC동작 시나리오에 의하여 파워 모드(power mode)를 설정해 두고, 동작하고 있지 않는 서브 시스템(sub-system)의 클럭/파워를 게이팅하는 방법이다. 이 방법은 로직 파워(logic power)뿐만 아니라 클럭 트리 파워도 세이빙할 수 있는 장점을 가지나, PMIC 제한(limitation)에 기인하여 파워 도메인(power domain)을 세분화하기 힘들다. 그러므로, 파워 모드도 구체적으로 바꾸는 것이 어렵게 된다.
본 발명이 해결하고자 하는 기술적 과제는, 버스 장치에서 소모되는 전력을 최소화 또는 줄일 수 있는 시스템 온 칩 버스 장치를 제공함에 있다.
본 발명이 해결하고자 하는 다른 기술적 과제는, 버스 장치의 클럭 트리 버퍼에 인가되는 클럭을 트랜잭션의 유무에 따라 블로킹할 수 있는 시스템 온 칩 버스 장치 및 그에 따른 루트 클럭 게이팅 방법을 제공함에 있다.
상기 기술적 과제를 달성하기 위하여, 본 발명의 실시 예의 일 양상에 따른 시스템 온 칩 버스 장치는:
시스템 온 칩의 기능 블록들 사이를 연결하기 위해 구성된 버스; 및
상기 버스의 인터페이스부에 연결되며, 상기 버스에 설치된 버스 브릿지 장치의 동작에 사용되는 클럭을 트랜잭션 검출 신호의 상태에 따라 근본적으로 게이팅하기 위해 구성된 클럭 게이팅부를 포함한다.
본 발명의 실시 예에서, 상기 버스가 제1 버스인 경우에 상기 제1 버스보다 저속 버스인 제2 버스를 더 구비할 수 있다.
본 발명의 실시 예에서, 상기 제1버스는 시스템 버스이고 상기 제2버스는 주변 버스일 수 있다.
본 발명의 실시 예에서, 상기 시스템 버스는 AXI 버스이고 상기 주변 버스는 APB 일 수 있다.
본 발명의 실시 예에서, 상기 시스템 버스는 AHB나 ASB이고 상기 주변 버스는 APB 일 수 있다.
본 발명의 실시 예에서, 상기 인터페이스부는 상기 기능 블록들중 마스터 장치의 마스터 인터페이스 또는 상기 버스 브릿지 장치의 버스 스위치의 마스터 인터페이스일 수 있다.
본 발명의 실시 예에서, 상기 트랜잭션 검출 신호는 상기 마스터 인터페이스의 아웃 스탠딩 카운트 값을 체크함에 의해 발생될 수 있다.
본 발명의 실시 예에서, 상기 클럭 게이팅부는,
상기 마스터 인터페이스의 출력단에 연결되며, 상기 버스의 신호들과 상기 클럭을 이용하여 상기 아웃 스탠딩 카운트 값을 얻은 후 이를 기준 값과 비교하여 클럭 게이팅 인에이블 신호를 출력하는 다이나믹 클럭 게이트; 및
상기 클럭 게이팅 인에이블 신호에 응답하여 상기 클럭을 상기 버스 브릿지 장치에 공급 또는 차단하는 클럭 게이팅 셀을 포함할 수 있다.
본 발명의 실시 예에서, 상기 다이나믹 클럭 게이트는 라이트 동작에서의 트랜잭션을 카운팅하는 제1 카운터와 리드 동작에서의 트랜잭션을 카운팅하는 제2 카운터를 포함할 수 있다.
본 발명의 실시 예에서, 상기 클럭 게이팅 셀은,
상기 클럭 게이팅 인에이블 신호를 상기 클럭에 따라 래치하여 출력하는 래치; 및
상기 클럭과 상기 래치의 출력을 수신하여 앤드 응답을 생성하는 앤드 게이트를 포함할 수 있다.
본 발명의 실시 예에서, 상기 버스 브릿지 장치가, 비동기 브릿지인 경우에 상기 클럭 게이팅 셀은 상기 클럭 게이팅 인에이블 신호를 상기 다이나믹 클럭 게이트의 출력단에 추가로 설치된 싱크로나이저를 통해 수신할 수 있다.
본 발명의 실시 예에서, 상기 버스 브릿지 장치가, 업다운 브릿지인 경우에 상기 클럭 게이팅 셀은 상기 클럭 게이팅 인에이블 신호를 상기 다이나믹 클럭 게이트의 출력단에 추가로 설치된 싱크 업다운 회로를 통해 수신할 수 있다.
본 발명의 실시 예에서, 상기 버스 브릿지 장치가 APB 버스 브릿지인 경우에 상기 클럭 게이팅부는 상기 APB 버스 브릿지의 슬레이브 인터페이스의 입력단에 연결될 수 있다.
본 발명의 실시 예에서, 상기 클럭 게이팅부는 상기 APB로 인가되는 제어 선택신호를 상기 클럭에 따라 래치하여 출력하는 래치; 및
상기 클럭과 상기 래치의 출력을 수신하여 앤드 응답을 생성하는 앤드 게이트를 포함할 수 있다.
상기 기술적 과제를 달성하기 위하여, 본 발명의 실시 예의 다른 양상에 따라 시스템 버스의 루트 클럭 게이팅 방법은,
마스터 인터페이스의 신호들을 사용하여 트랜잭션 검출 신호를 얻고,
상기 트랜잭션 검출 신호의 상태에 따라 시스템 버스에 설치된 버스 브릿지 장치가 동작하는데 사용되는 클럭을 근본적으로 게이팅한다.
본 발명의 실시예적인 구성에 따르면, 트랜잭션의 검출 신호의 상태에 따라 클럭이 게이팅되므로 버스 장치에서 소모되는 전력이 최소화 또는 감소된다. 따라서, 시스템 온 칩의 전력 제어 퍼포먼스가 높아진다.
도 1은 본 발명의 실시 예가 적용 가능한 SoC의 시스템 블록도,
도 2는 본 발명의 실시 예가 적용 가능한 또 다른 SoC의 시스템 블록도,
도 3은 도 1 또는 도 2에 적용되는 버스 채널과 인터페이스를 나타낸 도면,
도 4는 도 3에 따른 버스 인터페이싱의 신호 와이어링을 나타낸 도면,
도 5는 본 발명에 따른 루트 클럭 게이팅의 개략적 개념도,
도 6은 도 5의 제1 실시예에 따른 SoC 버스 장치의 블록도,
도 7은 도 6중 클럭 게이팅부의 일 예를 나타낸 구체 블록도,
도 8은 도 7의 예시적 상세 구현 회로도,
도 9는 도 8에 관련된 동작 타이밍도,
도 10은 도 6중 클럭 게이팅부의 다른 예를 나타낸 구체 블록도,
도 11은 도 6중 클럭 게이팅부의 또 다른 예를 나타낸 구체 블록도,
도 12는 도 6에 따른 전력 소모량 감소 현황을 보여주는 그래프,
도 13은 도 6의 변형 실시 예에 따른 SoC 버스 장치의 블록도,
도 14는 도 1 또는 도 2의 APB와 연결되는 APB 브릿지의 블록도,
도 15는 도 14에 따른 버스 리드 동작 타이밍도,
도 16은 도 14에 따른 버스 라이트 동작 타이밍도,
도 17은 도 5의 제2 실시예에 따른 SoC 버스 장치의 블록도,
도 18은 멀티미디어 장치에 적용된 본 발명의 제1 응용 예를 도시한 블록도,
도 19는 전자 시스템에 채용된 본 발명의 제2 응용 예를 도시한 블록도, 및
도 20은 휴대용 단말기에 채용된 본 발명의 제3 응용 예를 도시한 블록도.
위와 같은 본 발명의 목적들, 다른 목적들, 특징들 및 이점들은 첨부된 도면과 관련된 이하의 바람직한 실시 예들을 통해서 쉽게 이해될 것이다. 그러나 본 발명은 여기서 설명되는 실시 예에 한정되지 않고 다른 형태로 구체화될 수도 있다. 오히려, 여기서 소개되는 실시 예들은, 이해의 편의를 제공할 의도 이외에는 다른 의도 없이, 개시된 내용이 보다 철저하고 완전해질 수 있도록 그리고 당업자에게 본 발명의 사상이 충분히 전달될 수 있도록 하기 위해 제공되는 것이다.
본 명세서에서, 어떤 소자 또는 라인들이 대상 소자 블록에 연결된다 라고 언급된 경우에 그것은 직접적인 연결뿐만 아니라 어떤 다른 소자를 통해 대상 소자 블록에 간접적으로 연결된 의미까지도 포함한다.
또한, 각 도면에서 제시된 동일 또는 유사한 참조 부호는 동일 또는 유사한 구성 요소를 가급적 나타내고 있다. 일부 도면들에 있어서, 소자 및 라인들의 연결관계는 기술적 내용의 효과적인 설명을 위해 나타나 있을 뿐, 타의 소자나 기능 회로 블록들이 더 구비될 수 있다.
여기에 설명되고 예시되는 각 실시 예는 그것의 상보적인 실시 예도 포함될 수 있으며, AMBA(Advanced Microcontroller Bus Architecture)의 버스 인터페이스 구조 등과 같은 인터페이스 구조 및 그러한 구조의 기본적 동작에 관한 세부는 본 발명의 요지를 모호하지 않도록 하기 위해 상세히 설명되지 않음을 유의(note)하라.
도 1은 본 발명의 실시 예가 적용 가능한 SoC의 시스템 블록도이다.
도 1은 AMBA(Advanced Microcontroller Bus Achitecture)의 예를 보여준다. 상기 AMBA는 SoC내의 IP들의 연결 및 관리를 위한 표준 버스 규격으로서 ARM사에 의해 제안되었다. AMBA는 임베디드 마이크로 프로세서의 설계를 위한 원칩 커뮤니케이션(one-chip communication)으로서 자리잡고 있다.
도면을 참조하면, 백본(backbone)버스로서의 AXI 버스 상에 AXI 버스 장치(25)가 설치된다. 상기 AXI 버스 장치(25)는 QE(Quality of service Enhencement), MMU(Memory Management Unit), UP/DOWN-SIZER, Async 브릿지, 마스터/슬레이브 인터페이스, 및 크로스 바 스위치 등과 같은 다양한 버스 브릿지 장치를 포함할 수 있다.
마이크로 프로세서(10), DMA(11), DSP(12), 및 USB(13)은 AXI 버스가 될 수 있는 제1 버스(BUS1)상에서 마스터 IP로서 기능할 수 있다. 또한, RAM(20), SDRAM(21), 및 브릿지(22)는 제1 버스(BUS1)상에서 슬레이브 IP로서 기능할 수 있다. 한편, APB버스가 될 수 있는 제2 버스(BUS2)에는 슬레이브 IP로서 기능할 수 있는 UART(40)가 연결될 수 있다.
AMBA의 버스 타입으로서는 AHB(Advanced High-Performance Bus), APB(Advanced Peripheral Bus), 및 AXI(Advanced eXtensible Interface)가 제안되어 있다. 이 중에서 AXI는 IP의 인터페이스 프로토콜로서, 멀티플 아웃스탠팅 어드레스(multiple outstanding address)기능, 멀티플 아웃스탠딩 트랜잭션 기능, 및 데이터 인터리빙(Data interleaving)기능 등의 진보된 기능을 포함하고 있다.
여기서, 멀티플 아웃스탠딩 어드레스 기능은, 버스의 어드레스 라인과 데이터 라인을 통해 정보가 제공될 때, 각 데이터의 전송과 동시에 어드레스 라인을 통해 각 데이터에 대한 어드레스를 한번만 전송함으로써, 어드레스와 어드레스 사이에 발생하는 빈 전송시간을 활용할 수 있도록 하는 기능이다. 또한, 멀티플 아웃스탠딩 트랜잭션 기능은 다수의 트랜잭션(transaction)을 슬레이브(slave)IP로 전송하는 것이 가능토록 한 병렬 트랜잭션 처리 기능이다. 이에 따라 다수의 트랜잭션들 중 하나가 슬레이브 IP에 의해 선택되어 우선적으로 처리될 수 있고, 동시에 리드와 라이트 동작이 AXI를 통해 실행될 수 있다.
한편, 데이터 인터리빙 기능은 여러 마스터가 하나의 슬레이브로 데이터를 전송할 때, 슬레이브 단에서 데이터를 뒤섞을 수 있도록 하는 기능이다. 이에 따라, 대역폭의 사용이 보다 효율적이고, 레이턴시(Latency)면에서도 유리해진다.
도 1에서는 AHB가 나타나 있지 않으나, 상기 AXI 버스는 AHB로 대치될 수 있다. 3 종류의 버스는 도 2에서 보여진다.
도 2는 본 발명의 실시 예가 적용 가능한 또 다른 SoC의 시스템 블록도이다.
도 2의 AMBA 구조는 AMBA 3.0에 의한 것이다.
도면을 참조하면, AXI 버스(B1), AHB(B2), 및 APB(B3)를 포함하는 3 종류의 버스를 갖는 버스 아키텍쳐가 보여진다. 초기의 AMBA에서는 APB 및 ASB로 된 2 종류의 버스가 제안되었으나, 나중에 ASB는 ASB보다 Burst 모드를 가지는 고기능버스인 AHB로 대치되었다. 또한, 동시 리드 및 라이트가 가능하도록 리드 채널이 추가된 AXI 버스가 가장 나중에 출현되었다.
도면에서, 상기 AXI 버스(B1)에는 AXI 마스터(10), AXI 슬레이브(20), 제1 브릿지(23)가 연결된다.
상기 AHB(B2)에는 AHB 마스터(30), 내부 메모리(31), DMA 콘트롤러(32), AHB 슬레이브(34), 익스텐디드 메모리 콘트롤러(35), 메모리 콘트롤러(36), 및 제2 브릿지(22)가 연결된다.
상기 APB(B3)에는 APB 마스터(50), APB 슬레이브(41), UART(40), WDT(42), 및 인터럽트 콘트롤러(43)이 연결된다.
상기 APB(B3)는 주변(Peripheral)버스로서 다른 버스들에 비해 상대적으로 저속으로 동작되는 버스이다. 따라서, 성능과 속도 차이를 커버하기 위해 제2 브릿지(22)가 상기 APB(B3)와 AHB(B2) 간에 연결된다. 또한, 마찬가지로 상기 AHB(B2) 와 상기 AXI 버스(B1)간에는 제1 브릿지(23)가 연결된다.
비록 도면에서는 도시되어 있지 않으나, 상기 AXI 마스터(10)와 AXI 슬레이브(20)간에 연결된 상기 AXI 버스(B1)상에도 QE(Quality of service Enhencement), MMU(Memory Management Unit), UP/DOWN-SIZER, Async 브릿지, 마스터/슬레이브 인터페이스, 및 크로스 바 스위치 등과 같은 다양한 버스 브릿지 장치가 설치될 수 있다.
그러한 버스 브릿지 장치의 동작을 위해서는 클럭이 클럭 트리 버퍼를 통해 제공된다. 클럭이 제공됨에 의해 클럭 트리 버퍼에서의 전력 소모는 버스 브릿지 장치의 로직부나 슬레이브 IP가 일시적으로 아이들 한 상태로 있을 경우에도 여전히 발생된다. 결국, 버스 브릿지 장치를 대상으로 클럭 게이팅(clock gating)의 보다 디테일한 테크닉이 시스템 온 칩의 전력 소모를 최적으로 줄일 수 있다.
특히, 버스 브릿지 장치의 클럭 트리 버퍼에서 소모되는 전력이 전체 스위칭 전력의 수십 %이상을 차지하는 경우에 클럭 트리 버퍼의 전력을 보다 효율적으로 차단하는 클럭 게이팅 스킴은 매우 유용할 것이다.
도 3은 도 1 또는 도 2에 적용되는 버스 채널과 인터페이스를 나타낸 도면이다. AXI 버스의 채널은 총 5개로서, 리드 어드레스 채널을 가리키는 AR(C10), 라이트 어드레스 채널을 나타내는 WA(C12), 리드 데이터 채널을 의미하는 R(C14), 라이트 데이터 채널을 가리키는 W(C16), 및 라이트 응답 채널을 나타내는 B(C18)로 구성되어 있다.
마스터 장치(10)와 슬레이브 장치(20)간에는 상기 채널들이 인터페이스들을 통해 연결되어 있다. 여기서, 마스터 장치(10)에는 마스터 인터페이스(MI:100)가 존재하고, 슬레이브 장치(20)에는 슬레이브 인터페이스(SI:200)가 존재한다. 상기 슬레이브 장치(20)가 마스터로서 동작하는 경우에 상기 슬레이브 인터페이스(200)는 또한 마스터 인터페이스가 된다. 즉, 마스터는 슬레이브로 슬레이브는 마스터로 동작 상황에 따라 바뀔 수 있는 것이다.
상기 마스터 인터페이스(100)는 아비터(101), 라우터(102), 및 디코더(103)를 포함할 수 있다. 상기 슬레이브 인터페이스(200)는 아비터(201), 라우터(202), 및 디코더(203)를 포함할 수 있다. 그러나 도 4의 경우에는 상기 라우터들(102,202)은 마스터 장치(10) 및 슬레이브 장치(20)내에 각기 포함되는 것으로 나타나 있다.
도 4는 도 3에 따른 버스 인터페이싱의 신호 와이어링을 나타낸 도면이다. 하나의 AMBA 버스에는 최대 16개의 Master 장치(10) 및 Slave 장치(20)가 각기 연결될 수 있다.
먼저, 마스터 장치(10)가 아비터(Arbiter:101)로 버스 사용을 요청하는 신호인 HBUSREQx를 보낸다. 여기서 첨자 x는 마스터 장치의 네이밍(naming)ID이다. 상기 아비터(101)는 버스의 점유 상태를 체크하여 버스 사용 허가를 나타내는 신호인 HGRANTx를 상기 마스터 장치(10)로 보낸다. 버스 사용 허가를 받은 상기 마스터 장치(10)는 지금부터 내가 버스를 사용하니깐 다른 마스터 장치에게 사용 허가하지 말것을 의미하는 신호인 HLOCKx를 상기 아비터(101)로 보낸다.
이제, 버스의 사용권을 획득한 마스터 장치(10)는 원하는 슬레이브 장치(20)의 어드레스를 의미하는 신호인 HADDR를 디코더(103)로 보낸다. 디코더(103)는 해당 슬레이브 장치(20)로 "슬레이브 장치야 너 나에게 선택 되었어" 라고 하는 의미를 담은 HSELx를 보낸다. 이에 따라, 해당 슬레이브 장치(20)의 활성화 상태로 된다.
상기 마스터 장치(10)는 데이터를 라이트 하고자 할 경우에 HWRITE를 하이레벨로서 보낸다. 만약 상기 마스터 장치(10)가 HWRITE를 로우레벨로서 보내면 상기 선택된 슬레이브 장치(20)는 리드를 원하는 것으로 인식한다. 선택된 슬레이브 장치(20)는 이에 응답하여 "저 라이트/리드할 준비가 다됐어요 마스터님! 어서 동작 수행을 합시다요" 라고 하는 HREADY를 마스터 장치(10)로 보낸다. 이에 따라, HREADY를 확인한 마스터 장치(10)는 준비된 슬레이브 장치(20)로 라이트 동작에서는 HWDATA를 보내고, 리드 동작에서는 상기 슬레이브 장치(20)로 부터 HRDATA를 받는다. 리드 동작에서 어드레스를 한번 주고 데이터를 연속적으로 리드하는 버스트(Burst) 모드 동작이 실행될 수 있다. 예를 들어, 버스트 모드에서 HSIZE(32bit = 4 byte, address 4씩 증가, 시작 address는 최하위비트 00)만큼 계속적으로 증가시키는 인크리먼트(INCREMENT)방식이 채용될 수 있다.
버스 브릿지 장치의 클럭 트리 버퍼에서 소모되는 전력이 증가됨에 따라, 이를 보다 효율적으로 차단하기 위한 클럭 게이팅 스킴의 개념이 도 5에 도시된다.
도 5는 본 발명에 따른 루트 클럭 게이팅의 개략적 개념도이다.
도면을 참조하면, AXI 버스에 있는 버스 브릿지 장치 로직부(500)에 클럭을 공급하는 클럭 트리 버퍼(400)의 개략적 구성이 보여진다. 상기 클럭 트리 버퍼(400)는 복수의 클럭 버퍼(CB))가 트리 구조를 이루고 있다. 각각의 클럭 버퍼(CB)는 각기 다른 딜레이 타임을 가질 수 있다.
상기 버스 브릿지 장치 로직부(500)가 비동작 상태이거나 아이들(idle) 상태인 경우에 상기 클럭 트리 버퍼(400)에서 소모되는 전력이 없도록 하면 전체 시스템의 파워 세이빙에 도움이 된다. 이를 위해 클럭 게이팅부(300)는 클럭(CLK)을 수신하여 게이팅 클럭(GCLK)을 상기 클럭 트리 버퍼(400)로 제공한다.
상기 게이팅 클럭(GCLK)은 다이나믹 클럭 게이팅(Dynamic Clock Gating)의 결과로서 생성된 클럭으로서, 버스 브릿지 장치가 동작하지 않을 때에는 클럭 형태의 신호가 아닌 로우레벨로 지속되는 신호이다.
최근의 버스에서는 버스 쓰루풋(throughput)을 높이기 위해 파이프라인(pipeline)구조가 많이 사용되고, GALS(globally asynchronous locally synchronous)를 위한 어싱크 디자인이 흔하다. 따라서, 게이트 카운트(gate count)가 증가됨에 따라 플립플롭(flip-flop)도 그에 따라 많이 채용된다. 이와 같은 이유로, 클럭 트리 버퍼에서 소모되는 전력의 비율이 점점 커져 전체 스위칭 전력의 40%이상을 차지하는 경우도 있다. 따라서, 효과적인 클럭 게이팅은 시스템의 파워 세이빙에 많은 도움을 줄 것임에 틀림없다.
도 6은 도 5의 제1 실시예에 따른 SoC 버스 장치의 블록도이다.
도면을 참조하면, 슬레이브 장치(20)는 마스터 장치(10)에 버스 브릿지 장치(150)를 통해 연결된다.
AXI 버스(B1)의 경우에 클럭 게이팅부(300)는 상기 AXI 버스(B1)의 마스터 장치(10)의 마스터 인터페이스(MI)에 연결되며, 상기 AXI 버스(B1)에 설치된 버스 브릿지 장치(150)의 동작에 사용되는 클럭을 트랜잭션 검출 신호의 상태에 따라 근본적으로 게이팅한다. 여기서, 상기 클럭 게이팅부(300)에 인가되는 클럭(HCLK)은 상기 트랜잭션 검출신호와 게이팅되어 게이팅 클럭(GCLK)으로서 출력된다. 이에 따라, 상기 버스 브릿지 장치(150)의 내부 로직부가 동작되지 않거나 스탠바이 상태일 때 상기 클럭(HCLK)이 클럭 트리 버퍼에 인가되지 않으므로 클럭 트리 버퍼에서 소모되는 전력이 존재하지 않게 된다.
한편, 크로스 바(bar)스위치로서도 불려지는 도 6에서의 버스 스위치(160)는 도면에서는 분리적으로 나타나 있으나 상기 버스 브릿지 장치(150)에 포함될 수 있다. 상기 버스 스위치(160)의 경우에도 슬레이브 인터페이스(162)와 마스터 인터페이스(110)가 구비될 수 있다.
상기 클럭 게이팅부(300)의 일 예는 도 7에 도시된다.
도 7은 도 6중 클럭 게이팅부의 일 예를 나타낸 구체 블록도로서, 다이나믹 클럭 게이트(310)와, 클럭 게이팅 셀(320)을 포함한다.
상기 다이나믹 클럭 게이트(310)는 상기 마스터 인터페이스(MI)의 출력단에 연결되며, 상기 버스의 신호들(signals)과 상기 클럭(HCLK)을 이용하여 아웃 스탠딩 카운트 값을 얻은 후 이를 기준 값과 비교하여 클럭 게이팅 인에이블 신호(ENO)를 출력한다. 여기서, AXI 버스의 경우에 상기 마스터 인터페이스(MI)의 아웃 스탠딩 카운트 값을 체크함에 의해 상기 트랜잭션 검출 신호가 발생될 수 있다.
상기 클럭 게이팅 셀(320)은 상기 클럭 게이팅 인에이블 신호(ENO)에 응답하여 상기 클럭(HCLK)을 상기 버스 브릿지 장치에 공급 또는 차단한다.
통상적으로, 트랜잭션(transaction)이 있는 동안에 request/data가 버스를 통해 전달되지만, 트랜잭션이 없는 경우에는 버스 장치의 대부분의 기능이 정지되는 특성이 있다. 따라서, 클럭 게이팅부(300)내에 트랜잭션의 유무를 판단하는 회로를 삽입하여 클럭 공급에 관한 루트 클럭 게이팅(root clock gating)행하면 버스 브릿지 장치 내(150)의 클럭 트리 버퍼에서 소모되는 전력이 차단되거나 최소화된다.
AXI 버스의 경우에 트랜잭션의 존재 유무는 아웃스탠딩 카운트(outstanding count)를 체크함에 의해 판단될 수 있다.
도 8은 도 7의 예시적 상세 구현 회로도이다.
도면을 참조하면, 상기 다이나믹 클럭 게이트(310)는, 라이트 동작에서의 트랜잭션을 카운팅하는 제1 카운터(C1)와 리드 동작에서의 트랜잭션을 카운팅하는 제2 카운터(C2)를 포함한다. 또한, 다이나믹 클럭 게이트(310)를 구성하는 제1,2 비교기들(EOR1, EOR2)은 각기 상기 제1,2 카운터들(C1,C2)의 출력 값이 "0"으로 되었는 지를 판단한다. 제1 오아 게이트(OR1)는 상기 제1,2 카운터들(C1,C2)의 출력 값을 수신하여 오아 응답을 생성한다. 플립플롭(F1)은 상기 클럭(HCLK)에 응답하여 상기 제1 오아 게이트(OR1)의 출력을 래치하여 출력한다. 제2 오아 게이트(OR2)는 유효 리드 어드레스인 ARVALID, 유효 라이트 어드레스인 AWVALID, 유효 라이트 데이터인 WVALID, 상기 제1 오아 게이트(OR1)의 출력, 및 상기 플립플롭(F1)의 출력을 수신하여 오아 응답을 생성한다.
상기 제1,2 카운터들(C1,C2)의 앞단에는 4개의 앤드 게이트들(AN1-AN4)이 연결될 수 있다. 상기 제1 앤드 게이트(AN1)는 유효 라이트 어드레스인 AWVALID와 라이트 어드레스 준비신호인 AWREADY 를 수신하여 앤드 응답을 생성하고 이를 상기 제1 카운터(C1)의 증가 입력단(INC)에 인가한다. 제2 앤드 게이트(AN2)는 유효 라이트 응답신호인 BVALID와 라이트 응답 준비신호인 BREADY를 수신하여 앤드 응답을 생성하고 이를 상기 제1 카운터(C1)의 감소 입력단(DEC)에 인가한다. 제3 앤드 게이트(AN3)는 유효 리드 어드레스 신호인 ARVALID와 리드 어드레스 준비신호인 ARREADY를 수신하여 앤드 응답을 생성하고 이를 상기 제2 카운터(C2)의 증가 입력단(INC)에 인가한다. 제4 앤드 게이트(AN4)는 유효 리드 데이터인 RVALID, 리드 준비 신호인 RREADY, 및 리드 라스트 신호인 LAST를 수신하여 앤드 응답을 생성하고 이를 상기 제2 카운터(C2)의 감소 입력단(DEC)에 인가한다.
도 8에서, 상기 클럭 게이팅 셀(320)은, 상기 클럭 게이팅 인에이블 신호(EN0)를 상기 클럭(HCLK)에 따라 래치하여 출력하는 래치(F2)와, 상기 클럭(HCLK)과 상기 래치의 출력을 수신하여 앤드 응답을 생성하는 앤드 게이트(AN5)를 포함한다.
도 9는 도 8에 관련된 동작 타이밍도이다.
도면에서 파형 HCLK은 도 8에 인가되는 입력 클럭(HCLK)이다.
제3 앤드 게이트(AN3)는 파형 ARVALID와 파형 ARREADY의 입력신호들을 앤드 게이팅하고 그 결과를 상기 제2 카운터(C2)의 증가 입력단(INC)에 인가한다.
제4 앤드 게이트(AN4)는 파형 RVALID, 파형 RREADY, 및 파형 RLAST의 입력신호들을 앤드 게이팅하고 그 결과를 상기 제2 카운터(C2)의 감소 입력단(DEC)에 인가한다.
상기 제2 카운터(C2)의 출력 카운트 값(count)이 0이면 트랜잭션이 없고 0이 아니면 트랜잭션이 존재하는 것이므로, 트랜잭션이 있을 때 상기 제2 카운터(C2)의 출력은 구간 T2에서 파형 COUNT와 같이 나타날 수 있다. 이에 따라, 제1 오아 게이트(OR1)의 출력은 논리 하이가 된다. 따라서, 제2 오아 게이트(OR2)의 출력단에 나타나는 상기 클럭 게이팅 인에이블 신호(EN0)는 구간 T1 및 구간 T2에서 하이 레벨을 가지는 파형 EN0과 같이 생성될 수 있다. 여기서, 상기 구간 T1에서 생성되는 하이레벨은 상기 파형 RVALID의 하이구간에 의해 발생된 것이며, 상기 구간 T2에서 생성되는 하이레벨은 상기 제2 카운터(C2)의 출력 카운트 값(count)에 의해 생성된 것이다. 결국, 상기 구간들(T1,T2)의 합성 구간에서 클럭(HCLK)이 클럭 버퍼 트리로 인가되고 그 이외의 구간에서는 클럭(HCLK)이 클럭 버퍼 트리로 인가되지 않는다. 이를 위해 결국 파형 GCLK과 같은 게이팅 클럭(GCLK)이 도 8의 앤드 게이트(AN5)에서 출력된다. 도면에서 보여지는 상기 게이팅 클럭(GCLK)은 동작 안정을 위해 1클럭이 추가적으로 부여된 것으로서, 화살부호 AR1에서 클러킹이 스타트되고, 화살부호 AR2에서 클럭킹이 종료된다.
도 9에서의 동작 타이밍은 리드 동작 모드에서 생성될 수 있는 게이팅 클럭(GCLK)의 예이다. 그러므로 라이트 동작 모드에서도 게이팅 클럭(GCLK)이 유사한 동작 원리로 생성될 수 있다. 또한, 아웃 스탠팅 카운트(outstanding count)가 0일 때 클럭 게이팅이 수행되어 클럭의 제공이 차단되는 것으로 설명되었으나, 또 다른 구현 동작으로도 클럭 게이팅이 수행될 수 있음은 물론이다.
도 10은 도 6중 클럭 게이팅부의 다른 예를 나타낸 구체 블록도이다.
도 10은 상기 버스 브릿지 장치(151)가, 비동기 브릿지(168)인 경우에 적용될 수 있다.
클럭 게이팅부(301)는 다이나믹 클럭 게이트(310), 제1,2 클럭 게이팅 셀(321,322), 및 싱크로나이저(330)를 포함한다. 이 경우에 상기 제2 클럭 게이팅 셀(322)은 상기 클럭 게이팅 인에이블 신호(EN0)를 상기 다이나믹 클럭 게이트(310)의 출력단에 추가로 설치된 상기 싱크로나이저(330)를 통해 수신한다. 싱크로나이저(330)는 클럭 동기를 맞추는 기능을 한다.
여기서, 비동기 브릿지의 특성상 상기 제1 클럭 게이팅 셀(321)에서 출력되는 게이팅 클럭(GCLK1)의 주파수와 상기 제2 클럭 게이팅 셀(322)에서 출력되는 게이팅 클럭(GCLK2)의 주파수는 서로 다를 수 있다.
도 11은 도 6중 클럭 게이팅부의 또 다른 예를 나타낸 구체 블록도이다. 도 11은 상기 버스 브릿지 장치(152)가, 싱크 업/다운 브릿지(155)인 경우에 적용될 수 있다.
클럭 게이팅부(302)는 다이나믹 클럭 게이트(310), 제1,2 클럭 게이팅 셀(321,322), 및 싱크 업/다운 회로(340)를 포함한다. 이 경우에 상기 제2 클럭 게이팅 셀(322)은 상기 클럭 게이팅 인에이블 신호(EN0)를 상기 다이나믹 클럭 게이트(310)의 출력단에 추가로 설치된 싱크 업다운 회로(340)를 통해 수신한다. 상기 싱크 업다운 회로(340)는 싱크 업 또는 싱크 다운을 위한 기능을 수행한다.
여기서, 싱크 업/다운 회로의 특성상 상기 제1 클럭 게이팅 셀(321)에서 출력되는 게이팅 클럭(GCLK1)의 주파수와 상기 제2 클럭 게이팅 셀(322)에서 출력되는 게이팅 클럭(GCLK2)의 주파수는 서로 다를 수 있다.
도 10 및 도 11에서와 같은 스킴은, async / sync-up / sync-down 브릿지(bridge)들이 존재할 경우에 다이나믹 클럭 게이트의 각기 별도의 설치에 따른 오버헤드(overhead)를 줄여준다.
도 12는 도 6에 따른 전력 소모량 감소 현황을 보여주는 그래프이다. 도면에서 가로축은 버스 트래픽(B/T)를 가리키고 세로축은 마이크와트(μW)단위로 된 전력을 나타낸다. 가로축의 경우에 초당 200MB의 버스 트래픽에서 초당 1111MB의 버스 트래픽 까지 나타나 있고, 세로축의 경우에 500μW에서 4000μW 까지의 전력량이 나타나 있다. 일반적인 경우를 가리키는 그래프 PG에 비해 본 발명의 실시 예에 따른 효과를 보여주는 그래프 PI를 보면, 절반 이하의 전력 절감이 달성됨을 알 수 있다. 여기서, 도 12의 그래프들의 제작에서, AXI 버스의 제1 게이팅 클럭(GCLK1)의 주파수는 333MHz이고, 제2 게이팅 클럭(GCLK2)의 주파수는 200MHz로서 주어졌다.
따라서, 본 발명의 실시 예에 따른 루트 클럭 게이팅에 의하면, 클럭 버퍼 트리에서 소모되는 전력이 현저히 줄어들거나 최소화된다.
도 13은 도 6의 변형 실시 예에 따른 SoC 버스 장치의 블록도이다.
도면을 참조하면, 복수의 마스터 장치들(10-1,10-2,10-3,10-n)에 n개의 버스 브릿지 장치들(150-1,150-2,150-3,150-n)이 연결된 버스 장치의 구조가 보여진다. 이는 수직적 수평적으로 확장된 도 6의 구조를 보여 준다. 여기서 n은 2이상의 자연수이다.
결국, 도 6에 비해 2개의 버스 스위치(160,165)가 존재하고, 제1 버스 스위치(160)는 n개의 슬레이브 인터페이스를 가진다. 제2 버스 스위치(165)는 도시의 편의상 2개의 슬레이브 인터페이스를 가지는 것으로 나타나 있다.
이와 같이 병렬 및 캐스캐이드 접속인 경우에 도 6에서 설명된 클럭 게이팅부(300)는 마스터 인터페이스(MI)마다 하나씩 대응적으로 설치될 수 있다. 도 13에서 마스터 인터페이스(MI)는 마스터 장치들(10-1,10-2,10-3,10-n)에 각기 대응적으로 존재하고, 제1 버스 스위치(160)에 또한 대응적으로 존재한다. 한편, 제2 버스 스위치(165)에 존재하는 마스터 인터페이스(111)에는 슬레이브(20)가 연결되어 있으므로, 상기 클럭 게이팅부(300)는 설치되지 않는다.
도 13에서 복수의 클럭 게이팅부(300-1,300-2,300-3, 300-n, 303)는 상기 클럭 게이팅부(300)의 기능과 동일하다.
상기 클럭 게이팅부(300-1)의 클럭 게이팅 작용에 의해 상기 AXI 버스(B1)상에서 QE(153), MMU(154), UPSIZER(155), 및 슬레이브 인터페이스(162-1)를 포함하는 버스 브릿지 장치(150-1)의 동작이 중단된다. 그러므로 상기 클럭 게이팅부(300-1)의 클럭 게이팅 작용의 범위는 상기 QE(153)에서 상기 SI(162-1)까지로 된다.
한편, 클럭 게이팅부(303)의 클럭 게이팅 작용은 어싱크 브릿지(168)와 SI(167-1)를 포함하는 버스 브릿지 장치(166)를 커버한다.
도 14는 도 1 또는 도 2의 APB와 연결되는 APB 브릿지의 블록도이다.
AHB(B2)와 APB(B3)간에 연결된 APB브릿지(22)는 상태 머시인(22a), 어드레스 디코더(22b), 및 복수의 디-플립플롭들(F10-F14)을 포함한다. 상기 AHB(B2)는 AXI 버스로 대치될 수 있다.
본 발명의 또 다른 실시 예에서는 APB(B3)에서의 클럭 게이팅을 위해 상기 디 플립플롭(F14)으로 부터 얻어지는 제어 선택신호(PSELx)를 트랜잭션 검출 신호로서 활용한다.
도 14에서 보여지는 각종 신호들은 AHB to APB 브릿지에서의 리드 및 라이트 동작을 설명하는 도 15 및 도 16과 함께 AMBA(Advanced Microcontroller Bus Achitecture)에 소개되어 있으므로, 자세한 설명은 생략한다.
도 15는 도 14에 따른 버스 리드 동작 타이밍도이고, 도 16은 도 14에 따른 버스 라이트 동작 타이밍도이다.
도 15 및 도 16에서 보여지는 파형 PSEL은 상기 제어 선택신호(PSELx)로서 도 17을 통해 활용된다.
도 17은 도 5의 제2 실시예에 따른 SoC 버스 장치의 블록도이다.
도면을 참조하면, APB 버스 브릿지 장치(48)의 동작에 사용되는 클럭(PCLK)을 트랜잭션 검출 신호의 상태에 따라 근본적으로 게이팅하기 위한 클럭 게이팅부(320)는 APB 슬레이브 인터페이스(47)의 전단에 연결된다.
상기 클럭 게이팅부(320)는 상기 APB로 인가되는 제어 선택신호(PSEL)를 상기 클럭에 따라 래치하여 출력하는 래치(F1)와, 상기 클럭과 상기 래치의 출력을 수신하여 앤드 응답을 생성하는 앤드 게이트(AN1)를 포함한다.
결국, APB의 경우에 제어 선택신호(PSEL)이 하이레벨로 되어 있는 구간 동안에 클럭(PCLK)이 버스 브릿지 장치(48)의 클럭 버퍼 트리 또는 클럭 버퍼에 공급되고, 로우레벨로 되어 있는 구간 동안에 클럭(PCLK)이 버스 브릿지 장치(48)의 클럭 버퍼 트리 또는 클럭 버퍼에 공급되지 않는다. 이에 따라, 버스 브릿지 장치(48)의 아이들 동작에서 클럭이 인가되지 않으므로 전력 절감이 달성된다.
도 17에서 APB 브릿지(22)의 마스터 인터페이스(MI)는 필요 시 생략될 수 있다. 따라서, 상기 클럭 게이팅부(320)의 제어 선택신호(PSEL)는 APB 슬레이브 인터페이스(47)의 앞단으로부터 제공된다.
상기 APB 버스 브릿지 장치(48)는 APB 마스터 인터페이스(49)를 통해 APB 슬레이브 장치(40)와 연결된다.
슬레이브 인터페이스(slave interface)에서부터 모든 리퀘스트(request)가 시작되므로, 1:n APB 버스의 슬레이브 인터페이스(slave interface)에 클럭 게이팅부를 설치하면 APB 클럭(PCLK)을 수신하는 모든 버스 브릿지 장치를 대상으로 파워 세이빙이 일어난다.
도 18은 멀티미디어 장치에 적용된 본 발명의 제1 응용 예를 도시한 블록도이다. 도면을 참조하면, ARM 코어(180)는 이미지 편집, MP3 디코딩, 트래픽 스케쥴링 등과 같은 일반 용도의 처리를 위해, 디코더(182), 프레임 버퍼(183), LCD 콘트롤러(184), 인스트럭션 메모리(185), 데이터 메모리(186), DMA 콘트롤러(187), APB 서브 시스템(189), 및 스트림 버퍼(188)와 연결되어 있다. 한편 플래시 메모리(190)는 상기 DMA 콘트롤러(187)와 연결된다.
상기 ARM 코어(180)에 도 7과 같은 클럭 게이팅부(300)를 설치하거나, 상기 APB 서브 시스템(189)에 도 17에서 보여지는 클럭 게이팅부(320)를 설치하는 경우에 버스 브릿지 장치의 클럭 버퍼 트리에서 소모되는 전력이 감소 또는 최소화된다.
도 19는 전자 시스템에 채용된 본 발명의 제2 응용 예를 도시한 블록도이다. 도면을 참조하면, 전자 시스템(1200)은 입력 장치(1100), 출력 장치(1120), 프로세서 장치(1130), 캐시 시스템(1133), 그리고 메모리 장치(1140)를 포함한다.
도 19에서 상기 프로세서 장치(1130)는 본 발명의 실시 예에 따라 클럭 게이팅부를 구비할 수 있다. 상기 프로세서 장치(1130)는 각각 해당하는 인터페이스를 통해 입력 장치(1100), 출력 장치(1120), 그리고 메모리 장치(1140)를 제어한다. 도 19의 경우에, 상기 프로세서 디바이스(1130)가 클럭 게이팅부를 활용하면 아이들 상태에서 전원 절약이 구현된다. 따라서 그러한 프로세서 장치(1130)를 채용한 전자 시스템의 동작 성능이 개선된다.
도 20은 휴대용 단말기에 채용된 본 발명의 제3 응용 예를 도시한 블록도이다. 도면을 참조하면, PMP, 셀룰라 폰, 또는 스마트 폰 등과 같은 휴대용 단말기는 시스템 버스(3)를 통해 서로 연결되는 CPU(1), SRAM(2), DRAM(4), 및 호스트 인터페이스 콘트롤러(5)를 구비할 수 있다.
스마트 폰 등과 같은 휴대용 단말기의 경우에 단말기의 콤팩트화 및 전력 소모는 제품 경쟁력에 큰 영향을 미치므로 아이들 상태에서의 전력 소모가 최소화될 필요성이 있다.
도 20에서, 클럭 게이팅부를 CPU(1)에 채용하면, 휴대용 단말기에서 전력 소모가 최소화되어 휴대용 단말기의 파워 소모 성능이 개선될 수 있다.
상기한 설명에서는 본 발명의 실시 예들을 위주로 도면을 따라 예를 들어 설명하였지만, 본 발명의 기술적 사상의 범위 내에서 본 발명을 다양하게 변형 또는 변경할 수 있음은 본 발명이 속하는 분야의 당업자에게는 명백한 것이다. 예를 들어, 사안이 다른 경우에 본 발명의 기술적 사상을 벗어남이 없이, 트랜잭션 검출 신호를 타의 회로나 채널을 통해 얻을 수도 있을 것이다.
*도면의 주요 부분에 대한 부호의 설명*
100: 마스터 인터페이스
162: 슬레이브 인터페이스
150: 버스 브릿지 장치
300: 클럭 게이팅부
310: 다이나믹 클럭 게이트
320: 클럭 게이팅 셀

Claims (10)

  1. 시스템 온 칩의 기능 블록들 사이를 연결하기 위해 구성된 버스; 및
    상기 버스의 인터페이스부에 연결되며, 상기 버스에 설치된 버스 브릿지 장치의 동작에 사용되는 클럭을 트랜잭션 검출 신호의 상태에 따라 근본적으로 게이팅하기 위해 구성된 클럭 게이팅부를 포함함을 특징으로 하는 시스템 온 칩 버스 장치.
  2. 제1항에 있어서, 상기 버스가 제1 버스인 경우에 상기 제1 버스보다 저속 버스인 제2 버스를 더 구비함을 특징으로 하는 시스템 온 칩 버스 장치.
  3. 제2항에 있어서, 상기 제1버스는 시스템 버스이고 상기 제2버스는 주변 버스임을 특징으로 하는 시스템 온 칩 버스 장치.
  4. 제3항에 있어서, 상기 시스템 버스는 AHB나 ASB이고 상기 주변 버스는 APB 임을 특징으로 하는 시스템 온 칩 버스 장치.
  5. 제4항에 있어서, 상기 트랜잭션 검출 신호는 상기 마스터 인터페이스의 아웃 스탠딩 카운트 값을 체크함에 의해 발생됨을 특징으로 하는 시스템 온 칩 버스 장치.
  6. 제5항에 있어서, 상기 클럭 게이팅부는,
    상기 마스터 인터페이스의 출력단에 연결되며, 상기 버스의 신호들과 상기 클럭을 이용하여 상기 아웃 스탠딩 카운트 값을 얻은 후 이를 기준 값과 비교하여 클럭 게이팅 인에이블 신호를 출력하는 다이나믹 클럭 게이트; 및
    상기 클럭 게이팅 인에이블 신호에 응답하여 상기 클럭을 상기 버스 브릿지 장치에 공급 또는 차단하는 클럭 게이팅 셀을 포함함을 특징으로 하는 시스템 온 칩 버스 장치.
  7. 제6항에 있어서, 상기 클럭 게이팅 셀은,
    상기 클럭 게이팅 인에이블 신호를 상기 클럭에 따라 래치하여 출력하는 래치; 및
    상기 클럭과 상기 래치의 출력을 수신하여 앤드 응답을 생성하는 논리 게이트를 포함함을 특징으로 하는 시스템 온 칩 버스 장치.
  8. 제7항에 있어서, 상기 버스 브릿지 장치가, 비동기 브릿지인 경우에 상기 클럭 게이팅 셀은 상기 클럭 게이팅 인에이블 신호를 상기 다이나믹 클럭 게이트의 출력단에 추가로 설치된 싱크로나이저를 통해 수신함을 특징으로 하는 시스템 온 칩 버스 장치.
  9. 제7항에 있어서, 상기 버스 브릿지 장치가, 업다운 브릿지인 경우에 상기 클럭 게이팅 셀은 상기 클럭 게이팅 인에이블 신호를 상기 다이나믹 클럭 게이트의 출력단에 추가로 설치된 싱크 업다운 회로를 통해 수신함을 특징으로 하는 시스템 온 칩 버스 장치.
  10. 마스터 인터페이스의 신호들을 사용하여 트랜잭션 검출 신호를 얻고,
    상기 트랜잭션 검출 신호의 상태에 따라 시스템 버스에 설치된 버스 브릿지 장치가 동작하는데 사용되는 클럭을 근본적으로 게이팅하는 것을 특징으로 하는 클럭 게이팅 방법.
KR1020110073401A 2011-07-25 2011-07-25 시스템 온 칩 버스 장치 및 그에 따른 루트 클럭 게이팅 방법 KR101842245B1 (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
KR1020110073401A KR101842245B1 (ko) 2011-07-25 2011-07-25 시스템 온 칩 버스 장치 및 그에 따른 루트 클럭 게이팅 방법
US13/556,545 US9152213B2 (en) 2011-07-25 2012-07-24 Bus system in SoC and method of gating root clocks therefor
US14/873,485 US9886414B2 (en) 2011-07-25 2015-10-02 Bus system in SoC
US15/887,629 US10671562B2 (en) 2011-07-25 2018-02-02 Clock gating circuit

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020110073401A KR101842245B1 (ko) 2011-07-25 2011-07-25 시스템 온 칩 버스 장치 및 그에 따른 루트 클럭 게이팅 방법

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020180031899A Division KR101883784B1 (ko) 2018-03-20 2018-03-20 시스템 온 칩 버스 장치 및 그에 따른 루트 클럭 게이팅 방법

Publications (2)

Publication Number Publication Date
KR20130012299A true KR20130012299A (ko) 2013-02-04
KR101842245B1 KR101842245B1 (ko) 2018-03-26

Family

ID=47598225

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020110073401A KR101842245B1 (ko) 2011-07-25 2011-07-25 시스템 온 칩 버스 장치 및 그에 따른 루트 클럭 게이팅 방법

Country Status (2)

Country Link
US (3) US9152213B2 (ko)
KR (1) KR101842245B1 (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170094579A (ko) * 2016-02-11 2017-08-21 삼성전자주식회사 반도체 장치 및 반도체 장치의 동작 방법
US10713137B2 (en) 2017-09-20 2020-07-14 SK Hynix Inc. Memory module
CN112486245A (zh) * 2020-12-17 2021-03-12 清华大学 可重构阵列时钟门控控制方法、装置、设备及介质

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9489307B2 (en) * 2012-10-24 2016-11-08 Texas Instruments Incorporated Multi domain bridge with auto snoop response
JP6774160B2 (ja) * 2013-12-06 2020-10-21 キヤノン株式会社 情報処理装置、並びに、データ転送装置の制御方法
US9426096B2 (en) * 2014-05-21 2016-08-23 Intel Corporation Single-lane, twenty-five gigabit ethernet
US9928193B2 (en) * 2014-11-14 2018-03-27 Cavium, Inc. Distributed timer subsystem
KR102280734B1 (ko) * 2014-12-09 2021-07-21 삼성전자주식회사 시스템 온 칩과 이를 포함하는 모바일 전자 기기
KR102384347B1 (ko) 2015-05-26 2022-04-07 삼성전자주식회사 클록 관리 유닛을 포함하는 시스템 온 칩 및 그 동작방법
DE102016109387A1 (de) * 2015-05-26 2016-12-01 Samsung Electronics Co., Ltd. Ein-Chip-System mit Taktverwaltungseinheit und Verfahren zum Betreiben des Ein-Chip-Systems
KR102387466B1 (ko) 2015-09-18 2022-04-15 삼성전자주식회사 반도체 장치
US10503674B2 (en) 2016-02-03 2019-12-10 Samsung Electronics Co., Ltd. Semiconductor device including a clock source for generating a clock signal and a clock control circuit for controlling the clock source in hardware, a semiconductor system including the semiconductor device, and a method of operating the semiconductor device
CN108667628B (zh) * 2017-03-31 2020-11-17 深圳市中兴微电子技术有限公司 一种接口转换装置和接口转换方法
US10649929B2 (en) * 2017-07-10 2020-05-12 Dialog Semiconductar Korea Inc. Memory time-sharing method and apparatus capable of distributing bus traffic of system-on-chip
US10861504B2 (en) 2017-10-05 2020-12-08 Advanced Micro Devices, Inc. Dynamic control of multi-region fabric
US10558591B2 (en) 2017-10-09 2020-02-11 Advanced Micro Devices, Inc. Method and apparatus for in-band priority adjustment forwarding in a communication fabric
JP2019103013A (ja) * 2017-12-05 2019-06-24 ルネサスエレクトロニクス株式会社 半導体装置及びその再構成制御方法
US11196657B2 (en) * 2017-12-21 2021-12-07 Advanced Micro Devices, Inc. Self identifying interconnect topology
US11025678B2 (en) * 2018-01-25 2021-06-01 Seagate Technology Llc AXI interconnect module communication network platform
KR20210012439A (ko) 2019-07-25 2021-02-03 삼성전자주식회사 마스터 지능 소자 및 이의 제어 방법
EP3819778A1 (en) * 2019-11-07 2021-05-12 Ams Ag Bus system and method for operating a bus system
US11507522B2 (en) 2019-12-06 2022-11-22 Advanced Micro Devices, Inc. Memory request priority assignment techniques for parallel processors
CN111061663B (zh) * 2019-12-15 2021-03-26 苏州浪潮智能科技有限公司 一种数据传输方法、装置及相关组件
US11223575B2 (en) 2019-12-23 2022-01-11 Advanced Micro Devices, Inc. Re-purposing byte enables as clock enables for power savings
CN114499508A (zh) * 2020-11-13 2022-05-13 瑞昱半导体股份有限公司 操作时钟产生装置与参考时钟栅控电路
CN112559261B (zh) * 2020-11-27 2022-05-24 中国船舶重工集团公司第七0九研究所 一种基于层次状态机的axi总线性能分析方法及装置
US11645155B2 (en) 2021-02-22 2023-05-09 Nxp B.V. Safe-stating a system interconnect within a data processing system
CN114978819A (zh) * 2022-04-15 2022-08-30 山东大学 一种基于axi总线的基带信号通信方法及系统
CN116932333B (zh) * 2023-09-14 2023-12-26 武汉凌久微电子有限公司 一种硅后验证的axi总线实时性能监控方法

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6694441B1 (en) 2000-11-15 2004-02-17 Koninklijke Philips Electronics N.V. Power management method and arrangement for bus-coupled circuit blocks
US20030135676A1 (en) 2002-01-17 2003-07-17 Koninklijke Philips Electronics N.V. Low-power bus interface
US6971038B2 (en) 2002-02-01 2005-11-29 Broadcom Corporation Clock gating of sub-circuits within a processor execution unit responsive to instruction latency counter within processor issue circuit
US7117143B2 (en) * 2003-12-11 2006-10-03 Fortelink, Inc. Clock distribution in a circuit emulator
KR20050122973A (ko) 2004-06-26 2005-12-29 삼성전자주식회사 개선형 마이크로컨트롤러 버스 구조의 전력 소비 감소 장치
JP2006107326A (ja) * 2004-10-08 2006-04-20 Oki Electric Ind Co Ltd 半導体集積回路
KR100596980B1 (ko) 2004-12-23 2006-07-05 삼성전자주식회사 주변 장치의 내부 스트로브 신호 생성을 위한 장치,시스템 및 방법
US20070162643A1 (en) 2005-12-19 2007-07-12 Ivo Tousek Fixed offset scatter/gather dma controller and method thereof
US8244515B2 (en) * 2007-08-21 2012-08-14 International Business Machines Corporation Structure for detecting clock gating opportunities in a pipelined electronic circuit design
US8448002B2 (en) * 2008-04-10 2013-05-21 Nvidia Corporation Clock-gated series-coupled data processing modules
US8058900B1 (en) * 2008-04-14 2011-11-15 Marvell Israel (M.I.S.L) Ltd. Method and apparatus for clocking
JP2010021793A (ja) 2008-07-10 2010-01-28 Toshiba Corp 半導体集積回路装置および消費電力制御方法
JP2010045483A (ja) * 2008-08-11 2010-02-25 Nec Electronics Corp クロックゲーティング回路
US9128703B1 (en) * 2008-10-30 2015-09-08 Amazon Technologies, Inc. Processor that transitions to an idle mode when no task is scheduled to execute and further enters a quiescent doze mode or a wait mode depending on the value of a reference counter
JP5123150B2 (ja) * 2008-12-10 2013-01-16 株式会社東芝 トリガー信号検出装置
GB2466300B (en) * 2008-12-19 2013-05-15 Advanced Risc Mach Ltd Control of clock gating
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
US8612786B1 (en) * 2010-09-24 2013-12-17 Amazon Technologies, Inc. Deep idle mode
US8438416B2 (en) * 2010-10-21 2013-05-07 Advanced Micro Devices, Inc. Function based dynamic power control
KR101855399B1 (ko) * 2011-03-24 2018-05-09 삼성전자주식회사 데이터 트래픽을 개선한 SoC 및 이의 동작 방법
JP2013106166A (ja) * 2011-11-14 2013-05-30 Sony Corp クロックゲーティング回路およびバスシステム
US8904255B2 (en) * 2012-02-21 2014-12-02 Lsi Corporation Integrated circuit having clock gating circuitry responsive to scan shift control signal
US9270270B2 (en) * 2012-09-19 2016-02-23 Qualcomm Incorporated Clock gating circuit for reducing dynamic power
US9639641B1 (en) * 2015-08-20 2017-05-02 Microsemi Storage Solutions (U.S.), Inc. Method and system for functional verification and power analysis of clock-gated integrated circuits

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170094579A (ko) * 2016-02-11 2017-08-21 삼성전자주식회사 반도체 장치 및 반도체 장치의 동작 방법
US11652718B2 (en) 2016-02-11 2023-05-16 Samsung Electronics Co., Ltd. Semiconductor device and operating method thereof
US10713137B2 (en) 2017-09-20 2020-07-14 SK Hynix Inc. Memory module
CN112486245A (zh) * 2020-12-17 2021-03-12 清华大学 可重构阵列时钟门控控制方法、装置、设备及介质
CN112486245B (zh) * 2020-12-17 2023-03-10 清华大学 可重构阵列时钟门控控制方法、装置、设备及介质

Also Published As

Publication number Publication date
US9886414B2 (en) 2018-02-06
US9152213B2 (en) 2015-10-06
US10671562B2 (en) 2020-06-02
US20160026603A1 (en) 2016-01-28
US20180157616A1 (en) 2018-06-07
US20130031284A1 (en) 2013-01-31
KR101842245B1 (ko) 2018-03-26

Similar Documents

Publication Publication Date Title
KR101842245B1 (ko) 시스템 온 칩 버스 장치 및 그에 따른 루트 클럭 게이팅 방법
US6115823A (en) System and method for task performance based dynamic distributed power management in a computer system and design method therefor
Salminen et al. Overview of bus-based system-on-chip interconnections
US6601126B1 (en) Chip-core framework for systems-on-a-chip
Lu et al. SAMBA-Bus: A high performance bus architecture for system-on-chips
US6442642B1 (en) System and method for providing an improved synchronous operation of an advanced peripheral bus with backward compatibility
KR101883784B1 (ko) 시스템 온 칩 버스 장치 및 그에 따른 루트 클럭 게이팅 방법
US9680459B2 (en) Edge-aware synchronization of a data signal
JP4895183B2 (ja) メモリコントローラ
US7165133B2 (en) Multiprocessor system having shared buses, prioritized arbitration, and clock synchronization circuitry
US8200878B2 (en) Multi-processor device with groups of processors consisting of respective separate external bus interfaces
US8041867B2 (en) Method and apparatus for enhancing data rate of advanced micro-controller bus architecture
KR20110061189A (ko) 데이터 프로세싱 시스템에서의 비동기 통합 업사이징 회로
JP2009163758A (ja) クロックの異なるバス間におけるデータ転送
US20210004347A1 (en) Approximate data bus inversion technique for latency sensitive applications
US8151126B2 (en) Controlling power consumption in a data processing apparatus
US7689758B2 (en) Dual bus matrix architecture for micro-controllers
KR20110058575A (ko) 데이터 프로세싱 시스템에서의 대역폭 동기화 회로 및 그에 따른 대역폭 동기화 방법
JP2014206971A (ja) ハイブリッドレーン低速化又は非固定バスアーキテクチャのための方法、装置、システム
Aljumah et al. Amba based advanced dma controller for soc
CN107562673B (zh) 一种应用于嵌入处理器总线协议转换桥接装置
Poornima et al. Mailbox based inter-processor communication in SoC
KR20070099834A (ko) Amba ahb의 버스 트래픽 감소 장치 및 감소 방법
Lahtinen et al. Bus structures in Network-on-Chips
KR20080037953A (ko) Amba 버스 시스템

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
A107 Divisional application of patent
GRNT Written decision to grant