KR101442791B1 - 통신 포트에 대한 가변 클록 게이팅 히스테리시스를 채용하는 장치 및 방법들 - Google Patents

통신 포트에 대한 가변 클록 게이팅 히스테리시스를 채용하는 장치 및 방법들 Download PDF

Info

Publication number
KR101442791B1
KR101442791B1 KR1020127031677A KR20127031677A KR101442791B1 KR 101442791 B1 KR101442791 B1 KR 101442791B1 KR 1020127031677 A KR1020127031677 A KR 1020127031677A KR 20127031677 A KR20127031677 A KR 20127031677A KR 101442791 B1 KR101442791 B1 KR 101442791B1
Authority
KR
South Korea
Prior art keywords
clock signal
port
gating
transaction
circuit
Prior art date
Application number
KR1020127031677A
Other languages
English (en)
Other versions
KR20130036011A (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 퀄컴 인코포레이티드
Publication of KR20130036011A publication Critical patent/KR20130036011A/ko
Application granted granted Critical
Publication of KR101442791B1 publication Critical patent/KR101442791B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • G06F1/3215Monitoring of peripheral devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3237Power saving characterised by the action undertaken by disabling clock generation or distribution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom

Abstract

장치는, 클록 신호에 응답하여 버스를 통해서 통신하도록 구성된 통신 포트, 및 클록 신호를 발생시키고 포트의 통신 트랜잭션들과 같은 제어 입력에 응답하여 클록 신호의 게이팅 히스테리시스를 변화시키도록 구성된 클록 신호 발생 회로를 포함한다. 클록 신호 발생 회로는 트랜잭션의 어드레스 및/또는 트랜잭션에서 통신된 페이로드와 같은 트랜잭션의 속성에 기초하여 클록 신호의 게이팅 히스테리시스를 변화시키도록 구성될 수 있다.

Description

통신 포트에 대한 가변 클록 게이팅 히스테리시스를 채용하는 장치 및 방법들{APPARATUS AND METHODS EMPLOYING VARIABLE CLOCK GATING HYSTERESIS FOR A COMMUNICATIONS PORT}
본 개시물은 전자 시스템들에서의 클록 제어에 관한 것이고, 더욱 구체적으로는 클록 게이팅(clock gating) 장치 및 방법들에 관한 것이다.
전력 소모는, 종종, 전자 시스템들에서, 특히, 랩톱 컴퓨터들, 넷북 컴퓨터들 및 스마트 폰들과 같이 배터리들에 의해 전력이 공급되는 휴대용 디바이스들에서 주요 관심사이다. 디스플레이 백라이팅(display backlighting)과 같은 기능들로 인한 전력 소모 이외에도, 이러한 디바이스는 동작 동안 비교적 큰 전력량을 소모하는 프로세서들과 같은 집적 회로들을 포함할 수 있다. 예를 들어, 이러한 집적 회로들은 데이터 프로세싱, 저장 및 트랜스퍼 동작들을 위한 타임 참조들로서 이용되는 다수의 클록 신호들을 발생시킬 수 있고, 이러한 클록 신호들을 발생시키는데 있어서 비교적 큰 전력량이 소비될 수 있다. 또한, 이러한 클록 신호들은 인접 디바이스들의 내부 동작들 및 동작들과 간섭할 수 있는 상당한 신호 잡음을 발생시킬 수 있다.
클록 제어는 집적 회로들에서의 전력 소모를 감소시키기 위해 흔히 이용되는 기술이다. Bose 등에 대한 미국 특허 제7,076,681호, Jacobson 등에 대한 미국 특허 제7,065,665호, Mantor 등에 대한 미국 특허 출원 일련 번호 제2009/0300388호, Chiang 등에 대한 미국 특허 제7,605호, 및 Chang 등에 의한 "Adaptive Clock Gating Technique for Low-Power IP Core in SoC Design" 란 타이틀의 논문은 다양한 클록 제어 기술들을 설명한다.
몇몇 실시예들에 따르면, 장치는, 클록 신호에 응답하여 버스를 통해서 통신하도록 구성된 통신 포트, 및 클록 신호를 발생시키고 그 포트의 통신 트랜잭션에 응답하여 클록 신호의 게이팅 히스테리시스(gating hysteresis)를 변화시키도록 구성된 클록 신호 발생 회로를 포함한다. 클록 신호 발생 회로는, 트랜잭션의 어드레스 및/또는 트랜잭션에서 통신된 페이로드와 같은 트랜잭션의 속성에 기초하여 클록 신호의 게이팅 히스테리시스를 변화시키도록 구성될 수 있다. 추가적인 실시예들에서, 포트는 데이터 라우팅 패브릭 회로의 복수의 포트들을 포함할 수 있고, 클록 신호 발생 회로는 복수의 포트들 중 각각의 포트들의 클록 신호들의 각각의 게이팅 히스테리시스들을 독립적으로 변화시키도록 구성될 수 있다.
추가적인 실시예들은, 연관 클록 신호들에 따라서 데이터 라우팅 패브릭 회로의 외부에 있는 노드들과 통신하도록 구성된 복수의 포트들을 포함하는 데이터 라우팅 패브릭 회로(data routing fabric circuit)를 포함하는 장치를 제공한다. 이 장치는, 타임 딜레이를 나타내는 값을 저장하고, 그 저장된 값에 기초하여 포트들 중 적어도 하나의 포트의 클록 신호의 게이팅을 딜레이하도록 구성된 제어 회로를 추가적으로 포함한다. 제어 회로는 각각의 타임 딜레이들을 나타내는 복수의 값들을 저장하고, 저장된 값들 중 하나를 선택하고, 그리고 선택된 값에 기초하여 포트들 중 적어도 하나의 포트의 클록 신호의 게이팅을 딜레이하도록 구성될 수 있다. 예를 들어, 제어 회로는 포트들 중 적어도 하나를 수반하는 통신 트랜잭션의 속성에 기초하여 저장된 값들 중 하나를 선택하도록 구성될 수 있다.
몇몇 실시예들은, 통신 포트의 통신 트랜잭션에 응답하여 통신 포트의 클록 신호에 대한 게이팅 히스테리시스를 변화시키는 것을 포함하는 통신 포트를 동작시키는 방법들을 제공한다. 게이팅 히스테리시스를 변화시키는 것은, 트랜잭션의 어드레스 및/또는 트랜잭션에서 통신된 페이로드와 같은 트랜잭션의 속성에 기초하여 게이팅 히스테리시스를 변화시키는 것을 포함할 수 있다. 이 포트는 데이터 라우팅 패브릭 회로의 복수의 포트들을 포함할 수 있고, 게이팅 히스테리시스를 변화시키는 것은 복수의 버스 포트들 중 각각의 버스 포트들의 클록 신호들의 각각의 클록 게이팅 히스테리시스들을 독립적으로 변화시키는 것을 포함할 수 있다.
추가적인 실시예들은, 데이터 라우팅 패브릭 회로의 외부에 있는 노드들과 통신하도록 구성된 복수의 포트들을 포함하는 데이터 라우팅 패브릭 회로를 동작시키는 방법들을 제공한다. 이 방법들은, 타임 딜레이를 나타내는 값을 저장하는 단계 및 그 저장된 값에 기초하여 포트들 중 적어도 하나의 포트의 클록 신호의 게이팅을 딜레이하는 단계를 포함한다. 타임 딜레이를 나타내는 값을 저장하는 단계는, 각각의 타임 딜레이들을 나타내는 복수의 값들을 저장하는 단계를 포함하고, 저장된 값에 기초하여 포트들 중 적어도 하나의 포트의 클록 신호의 게이팅을 딜레이하는 단계에 앞서 저장된 값들 중 하나를 선택하는 단계가 수행될 수 있다. 클록 신호의 게이팅은 선택된 값에 기초하여 딜레이될 수 있다.
도 1은 조정가능한 버스 클록 게이팅 딜레이를 갖는 통신 포트를 예시하는 블록도이다.
도 2는 조정가능한 버스 클록 게이팅 딜레이를 갖는 통신 포트를 예시하는 블록도이다.
도 3은 도 2의 장치의 동작들을 예시하는 타이밍 도면이다.
도 4는 가변 클록 게이팅 히스테리시스를 갖는 데이터 라우팅 패브릭 회로를 예시하는 블록도이다.
도 5는 도 4의 데이터 라우팅 패브릭 회로의 마스터 포트에 대한 클록 게이팅 회로를 예시하는 블록도이다.
도 6은 도 5의 장치의 동작들을 예시하는 타이밍 도면이다.
도 7은 도 4의 데이터 라우팅 패브릭 회로의 마스터 포트에 대한 클록 게이팅 회로를 예시하는 블록도이다.
도 8은 도 4의 데이터 라우팅 패브릭 회로의 마스터 포트에 대한 클록 게이팅 회로를 예시하는 블록도이다.
도 9는 도 4의 데이터 라우팅 패브릭 회로의 슬레이브 포트에 대한 클록 게이팅 회로를 예시하는 블록도이다.
도 10은 도 4의 데이터 라우팅 패브릭 회로의 슬레이브 포트에 대한 클록 게이팅 회로를 예시하는 블록도이다.
도 11은 도 4의 데이터 라우팅 패브릭 회로의 슬레이브 포트에 대한 클록 게이팅 회로를 예시하는 블록도이다.
도 12는 도 4의 데이터 라우팅 패브릭 회로의 슬레이브 포트에 대한 클록 게이팅 회로를 예시하는 블록도이다.
본 발명의 청구 대상은 다양한 변형들 및 대안적인 형태들에 대해 영향을 받지만, 그 구체적인 실시예들이 도면들에서 예로써 도시되며 본 명세서에 상세하게 설명될 것이다. 그러나, 개시된 특정 형태들로 본 발명을 제한하도록 의도하지 않지만, 반대로, 본 발명은 청구항들에 의해 정의된 바와 같이 본 발명의 사상 및 범위 내에 포함되는 모든 변형들, 등가물들, 및 대안들을 커버하기 위한 것임을 이해해야 한다. 동일한 참조 부호들은 도면들의 설명 전체에 걸쳐서 동일한 엘리먼트들을 나타낸다.
본 명세서에 이용된 바와 같이, 단수 형태들("a," "an," 및 "the")은 그와 달리 명백하게 언급되지 않는 한 복수 형태들을 또한 포함하도록 의도된다. 추가로, 용어들 "포함하다(comprises)" 및/또는 "포함하는(comprising)"은 본 명세서에서 이용될 때 언급된 특징들, 정수들, 단계들, 동작들, 엘리먼트들, 및/또는 컴포넌트들의 존재를 명시하도록 이용되지만, 하나 또는 둘 이상의 다른 특징들, 정수들, 단계들, 동작들, 엘리먼트들, 컴포넌트들, 및/또는 이들의 그룹들의 존재 또는 부가를 배제하지 않는다는 것을 이해해야 한다. 엘리먼트가 다른 엘리먼트에 "접속된" 또는 "커플링된" 것으로 지칭될 때, 다른 엘리먼트에 직접적으로 접속 또는 커플링될 수 있고 또는 중개 엘리먼트들이 존재할 수 있다는 것을 이해할 것이다. 게다가, 본 명세서에 이용된 것과 같은 "접속된" 또는 "커플링된"은 무선으로 접속된 또는 커플링된 것을 포함할 수 있다. 본 명세서에 이용된 바와 같이, 용어 "및/또는"은 연관된 열거 아이템들의 하나 또는 둘 이상의 임의의 또는 모든 조합들을 포함한다.
이와 다르게 정의되지 않는 한, 본 명세서에 이용된 (기술적 및 과학적 용어들을 포함하는)모든 용어들은 본 발명이 속하는 당업계의 당업자에 의해 통상적으로 이해되는 것과 동일한 의미를 갖는다. 추가로, 통상적으로 이용되는 사전에서 정의된 것과 같은 용어들이 관련 기술의 내용에서의 그 의미와 일치하는 의미를 갖는 것으로 해석되어야 하며, 본 명세서에서 그렇게 명백하게 정의되지 않는 한 이상적인 또는 과도하게 형식적인 의미로 해석되지 않을 것이 이해될 것이다.
본 발명의 몇몇 실시예들은 방법들, 장치, 및/또는 컴퓨터 판독가능 매체를 포함한다. 컴퓨터-판독가능 매체는, 명령 실행 시스템, 장치, 또는 디바이스에 의해 이용하기 위한 또는 이들과 관련하여 이용하기 위한 프로그램 코드를 포함 또는 저장할 수 있는 임의의 매체를 포함할 수 있다. 컴퓨터-사용가능 또는 컴퓨터-판독가능 매체는, 예를 들어, 전자, 자기, 광학, 전자기, 적외선, 또는 반도체 시스템, 장치 또는 디바이스일 수 있지만 이에 한정되지 않을 것이다. 컴퓨터-판독가능 매체의 더욱 구체적인 예시들(비포괄적 리스트)은 하기의 것을 포함할 것이다: 하나 또는 둘 이상의 배선들을 갖는 전기 접속장치, 휴대용 컴퓨터 디스켓, 랜덤 액세스 메모리(RAM), 판독-전용 메모리(ROM), 삭제가능 프로그램가능한 판독-전용 메모리(EPROM 또는 플래시 메모리), 및 컴팩트 디스크 판독-전용 메모리(CD-ROM).
몇몇 실시예들은, 집적 회로 또는 그 일부로서 물리적으로 예시될 수 있는 본 명세서에 설명된 것과 같은 회로에 대한 제작 명령들(fabrication instructions)을 생성하기 위해 데이터 프로세싱 디바이스에 의해 실행가능한 컴퓨터 명령들이 그 내부에 수록된 컴퓨터-판독가능 매체의 형태를 취할 수 있다. 컴퓨터-판독가능 매체는, 거동, 레지스터 트랜스퍼, 로직 컴포넌트, 트랜지스터 및 레이아웃 기하학형상-레벨 명령들을 포함하지만 이에 한정하지 않는 다양한 형태들을 취할 수 있는 명령들을 그 내부에 수록할 수 있다. 이러한 명령들에 대한 데이터 포맷들은, C와 같은 거동 언어들을 지원하는 포맷들, 베릴로그(Verilog) 및 VHDL과 같은 레지스터 트랜스퍼 레벨 RTL 언어들을 지원하는 포맷들, 지오메트리 디스크립션언어들(예를 들어, GDSII, GDSIII, GDSIV, CIF, 및 MEBES)을 지원하는 포맷들, 및 다른 적절한 포맷들 및 언어들을 포함할 수 있지만 이에 한정하지 않는다. 이러한 명령들은 소프트 및/또는 하드 IP 코어들로서 제공될 수 있다.
실시예들은, 본 발명의 몇몇 실시예들에 따라서, 방법들, 장치 및/또는 컴퓨터 판독가능 매체의 플로우차트들, 블록도들 및 다른 표현들을 참조하여 본원에 설명된다. 플로우차트 또는 블록도 도면의 각 블록, 및 이러한 블록들의 조합들이 프로그램 명령들 및/또는 하드웨어 동작들에 의해 구현될 수 있다는 것을 이해할 것이다. 이러한 프로그램 명령들은, 프로세싱 장치를 통해서 실행하는 명령들이 플로우차트 및/또는 블록도의 블록 또는 블록들에서 구체화된 기능들을 구현하게 하기 위한 수단을 생성하도록, 머신을 구성하기 위해 프로세싱 장치에 제공될 수 있다.
도 1은 본 발명의 몇몇 실시예들의 일반적인 애플리케이션을 예시한다. 통신 포트(110)는 버스(115)를 통해서 통신 트랜잭션들을 수행하도록 구성된다. 예를 들어, 버스(115)는 이러한 트랜잭션 동안 버스 클록 신호(125)와 동시에 정보를 트랜스퍼하도록 구성된 직렬 또는 병렬 버스일 수 있다. 버스(115)는 통신 포트(110)와 하나의 다른 디바이스(예를 들어, 다른 포트) 사이의 전용 접속부일 수 있고, 또는 3개 또는 4개 이상의 디바이스들에 의해 액세스될 수 있는 공유 버스일 수 있다. 예를 들어, 통신 포트(110)는 버스 클록 신호(125) 또는 버스 클록 신호(125)로부터 도출된 신호와 동시에 데이터를 트랜스퍼하도록 구성된 버퍼 또는 다른 유형의 데이터 트랜스퍼 회로를 포함할 수 있다. 버스 클록 신호(125)는 클록 발생 회로(120)에 의해 발생되며, 이 클록 발생 회로(120)는, 예를 들어, 가변 게이팅 히스테리시스(딜레이)를 제공함으로써 하나 또는 둘 이상의 통신 트랜잭션들 이후 클록 신호(125)가 활성을 유지하는 시간을 변화시키도록 제어될 수 있다. 이하 상세하게 설명된 몇몇 실시예들에서, 가변 클록 게이팅 히스테리시스는 트랜잭션의 시작시에 클록 인에이블먼트(clock enablement)에 대한 딜레이로부터 발생할 수 있는 레이턴시를 감소시키는데 이용될 수 있다. 추가적인 실시예들에 따르면, 게이팅 히스테리시스의 양은 버스(115)상에서 발생하는 하나 또는 둘 이상의 트랜잭션들의 하나 또는 둘 이상의 속성들에 응답하여 적응될 수 있다. 예를 들어, 히스테리시스의 양은, 트랜잭션에 수반된 어드레스들과 같은 통신 트랜잭션의 트랜스퍼 속성들, 및/또는 히스테리시스 정보를 표현하거나 또는 함축하는 것과 같이 트랜잭션에 응답하여 포트에 전달되는 정보에 의존할 수 있다.
도 2는 추가적인 실시예들에 따른 예시적인 구현을 예시한다. 통신 포트(210)는 게이터블(gateable) 클록 신호(225)에 응답하여 버스(215)를 통해서 데이터를 전송 및 수신하도록 구성된다. 클록 게이팅 회로(220)는 클록 게이팅 제어 신호(235)에 응답하여 베이스 클록 신호(223)로부터 게이터블 클록 신호(225)를 발생시킨다. 클록 게이팅 제어 회로(230)는 딜레이 제어 입력(231)에 응답하여 클록 게이팅 제어 신호(235)를 발생시킨다. 예를 들어, 딜레이 제어 입력(231)은, 통신 트랜잭션(상기 통신 트랜잭션으로부터 딜레이가 시간 조정될 수 있음)의, 예컨대, 완료 또는 완료 임박을 나타내기 위해 이용될 수 있는, 버스(215)의 트랜잭션 상태를 나타내는 신호를 포함할 수 있다. 또한, 딜레이 제어 입력(231)은 딜레이 선택 입력을 포함할 수 있다. 예를 들어, 딜레이 제어 입력(231)은, 클록 게이팅 제어 회로(230)에 의해 적용될 특정 딜레이의 사용자 프로그래밍을 용이하게 하는 신호 또는 몇몇 다른 회로 컴포넌트에 의해 발생되는 딜레이 선택 입력을 포함할 수 있다. 또한, 딜레이 제어 입력(231)은 버스(215)상에서 발생하는 하나 또는 둘 이상의 트랜잭션들의 하나 또는 둘 이상의 속성들을 나타내는 신호를 포함할 수 있으며, 이 신호는 클록 게이팅 제어 회로(230)에 의해 적용될 특정 딜레이를 결정하는데 이용될 수 있다. 도시된 바와 같이, 클록 게이팅 제어 회로(230)는 단일 딜레이를 적용할 수 있고, 그리고/또는 딜레이 제어 입력(231)에 기초하여 복수의 트랜잭션-후 딜레이들 중 하나를 선택적으로 적용하도록 구성될 수 있다.
앞서 언급된 바와 같이, 딜레이 값은 버스(215)상에서의 하나 또는 둘 이상의 통신 트랜잭션들의 속성에 기초하여 선택될 수 있다. 예를 들어, 클록 게이팅 제어 회로(230)는 클록 게이팅 제어 회로(230)는 특정 딜레이들을 갖는 특정 속성들을 상호-참조하는 테이블을 저장할 수 있다. 몇몇 애플리케이션들에서, 예를 들어, 특정 어드레스들이 버스(215)상에서 발생할 수 있는 통신 트랜잭션들의 상대 도수(relative frequency)와 상관될 수 있다는 것을 결정할 수 있다. 예를 들어, 게이터블 클록 신호(225)의 인에이블먼트는, 그것이 버스(215)를 통해서 트랜잭션이 발생하는 것으로 결정되면, 특정량의 레이턴시를 도입할 수 있다. 특정 소스 어드레스 및/또는 목적지 어드레스는 버스트들로(in bursts) 발생하는 트랜잭션들과 연관될 수 있어서, 연속적인 트랜잭션에 대해 재-인에이블되는 것이 필요하지 않도록, 소정의 트랜잭션 이후에 충분한 시간 동안 게이터블 클록 신호(225)의 게이팅을 방지하는 것이 바람직할 수 있다. 이는, 다음 트랜잭션이 발생하기 전에, 게이터블 클록 신호(225)의 게이팅을 방지하기 위해 충분히 긴 딜레이 값을 이용함으로써 달성될 수 있다. 대조적으로, 특정 소스 어드레스 및/또는 목적지 어드레스가 시간적으로 상대적으로 이격된 트랜잭션들과 연관될 수 있어서, 게이터블 클록 신호(225)로부터의 전력 소비의 감소가 클록 인에이블먼트와 연관된 레이턴시를 감소시키는 이점들보다 더 클 수 있기 때문에, 소정의 트랜잭션 이후에 매우 짧은 딜레이를 이용하거나 또는 어떠한 딜레이도 이용하지 않는 것이 바람직할 수 있다. 또한, 하나 또는 둘 이상의 버스 트랜잭션에 의해 운반된 컨텐츠와 같은 어드레스들 이외의 트랜잭션 속성들은 클록 게이팅 딜레이들을 선택하기 위한 베이스들로서 이용될 수 있다. 딜레이 선택 입력들은, 또한, 포트에게 특정 딜레이를 이용하도록 명령하는 명시적인 메시지 및/또는 암시적인 메시지를 포함할 수 있다. 일반적으로, 이러한 입력들의 임의의 하나 또는 조합은 적절한 클록 게이팅 딜레이를 결정하거나 또는 선택하도록 이용될 수 있다는 것을 이식할 것이다.
도 3은 도 2의 회로의 예시적인 동작들을 예시한다. 클록 게이팅 제어 신호(235)의 어써션(assertion)에 응답하여, 게이터블 클록 신호(225)가 인에이블되어(즉, 게이팅되지 않음), 버스 트랜잭션이 버스(215)상에서 진행하도록 허용한다. 타임 t1 에서의 트랜잭션의 완료 이후에, 클록 게이팅 제어 신호(235)는 트랜잭션 이후에 타임 기간 동안 어써팅된 채로 유지되어, 타임 t2까지 게이터블 클록 신호(225)의 게이팅 시에 히스테리시스를 제공한다. 도 3에 도시된 바와 같이, 클록 게이팅 제어 신호(235)의 어써션 및/또는 디어써션(deassertion) 이후에, 게이터블 클록 신호(225)의 인에이블먼트 및/또는 게이팅 시에 레이턴시가 존재할 수 있다. 도 3에 도시된 신호 관계들은 예시의 목적으로 제공되며, 여기에 도시된 신호들은, 예컨대, 도 3에 나타난 것들에 대해 반전된 신호 상태들 및/또는 도 3에 나타난 것들과는 상이한 신호 레이턴시들 및 상승하는 및/또는 하강하는 에지 로직의 다른 조합들을 이용함으로써, 다른 방식들로 구현될 수 있다는 것이 인식될 것이다.
몇몇 실시예들에 따르면, 앞서 설명된 라인들에 따른 클록 게이팅 제어는 회로 내의 다양한 기능 유닛들을 상호접속하도록 이용된 데이터 라우팅 패브릭 회로의 포트들에 대해 이용될 수 있다. 도 4는, 특히, 복수의 마스터 포트들(420) 및 슬레이브 포트들(430)을 갖는 데이터 라우팅 패브릭 회로(410)에 의해 상호접속된 복수의 기능적 마스터 유닛들(M0, M1,...,Mm) 및 슬레이브(S0, S1,...,Sn)을 포함하는 회로(400)의 구현의 예시이다. 마스터 유닛들(M0, M1,...,Mm) 및/또는 슬레이브 유닛들(S0, S1,...,Sn)은 다양한 프로세싱, 메모리, 인터페이스 및 다른 회로들을 포함할 수 있다. 마스터 유닛들(M0, M1,...,Mm) 및 슬레이브 유닛들(S0, S1,...,Sn)은, 예를 들어, 다양한 IP 코어들에 대응할 수 있다. 데이터 라우팅 패브릭 회로(410)는 마스터 포트(420)와 슬레이브 포트(430)사이에서 메시지들을 선택적으로 라우팅하는 크로스바 스위치로서 작용할 수 있다. 마스터들(M0, M1,...,Mm) 중 하나의 마스터와 마스터 포트들(420) 중 대응하는 포트를 접속하는 각각의 버스는 독립적으로 제어될 수 있고 독립적인 클록 도메인들을 이용할 수 있다. 이는 슬레이브 포트들(420)과 슬레이브들(S0, S1,...,Sn)을 접속하는 버스들에 대해서도 동일하게 사실일 수 있다.
도 5는 몇몇 실시예들에 따른 마스터 포트(500)의 구현의 예시를 예시한다. 마스터 포트(500)는 마스터(520)를 클록하는데 이용된 동일한 게이터블 버스 클록 신호(535)로 클록된 버스 인터페이스 회로(512)를 포함할 수 있다. 도시된 바와 같이, 게이터블 버스 클록 신호(535)는 클록 게이팅 회로(530)에 의해 발생될 수 있으며, 이 클록 게이팅 회로(530)는 베이스 클록 신호(531)를 수신하고 클록 게이팅 제어 신호(515)에 응답하여 클록 게이팅 회로(530)로부터 게이터블 클록 신호(535)를 발생시킨다. 몇몇 실시예들에서, 클록 게이팅 회로(530)는 마스터 포트(500)와 동일한 데이터 라우팅 패브릭 회로(410) 내에 포함될 수 있다. 또한, 이러한 기능성은, 예를 들어, 마스터(520) 내의 데이터 라우팅 패브릭 회로(410)의 외부에서 구현될 수 있다. 마스터 포트(500)는 또한 제어 입력(501)에 응답하여 딜레이 제어 신호(505)를 발생시키도록 구성된 딜레이 제어 회로(514)를 포함한다. 딜레이 제어 신호(505)는 클록 게이팅 제어 신호(515)를 발생시키기 위해 마스터(520)에 의해 발생된 클록 커맨드 신호(525)(예를 들어, 버스 클록을 턴 온하기 위한 커맨드)와 논리적으로 조합된다. 따라서, 도시된 바와 같이, 클록 커맨드 신호(525) 또는 딜레이 제어 신호(505) 둘 중 하나가 어써팅되는 경우, 클록 게이팅 제어 신호(515)는 게이터블 버스 클록 신호(535)의 게이팅을 방지하기 위해 어써팅된다.
도 6은 몇몇 실시예들에 따른 도 5의 회로의 동작들을 예시한다. 클록 커맨드 신호(525)의 어써션에 응답하여, 클록 게이팅 제어 신호(515)가 어써트되어, 게이터블 클록 신호(535)를 인에이블된다. 뒤이은 버스 트랜잭션이 타임 t1에서 완료된 후, 딜레이 제어 회로(514)에 의해 도입된 딜레이가 타임 t2에서 만료하기 전에 만약 다른 버스 트랜잭션이 발생하면, 딜레이 제어 신호(505)는 추가적인 클록 턴-온 레이턴시를 회피하기 위해 상당 기간(an amount of time) 동안 게이터블 클록 신호(535)의 게이팅을 방지한다. 도 6에 도시된 바와 같이, 클록 게이팅 제어 신호(515)의 어써션 및/또는 디어써션 이후에 게이터블 클록 신호(535)의 인에이블먼트 및/또는 게이팅시에 레이턴시가 존재할 수 있다. 도 6에 예시된 신호 관계들은 예시의 목적으로 제공되며 다른 실시예들에서 변형될 수 있다는 것을 인식할 것이다.
추가적인 실시예들에 따르면, 포트 버스 클록 신호들에 대한 트랜잭션-후 클록 게이팅 히스테리시스는 다양한 서로 다른 입력들에 응답하여 제어될 수 있고, 이 다양한 서로 다른 입력들은 버스 상에서 발생하는 하나 또는 둘 이상의 통신 트랜잭션들의 명시적인 또는 암시적인 딜레이 선택 입력들 및/또는 속성들을 포함하지만 이에 한정되지 않는다. 예를 들어, 도 7에 도시된 바와 같이, 마스터 포트(700)는, 버스(540)를 통해서 하나 또는 둘 이상의 버스 트랜잭션들에서 마스터 포트(700)에 통신된 속성들(예를 들어, 어드레스, 유형들, 및 다른 트랜스퍼 제어 정보) 및/또는 페이로드 데이터(513)를 트랜스퍼하는데 응답하여 동작하는 딜레이 제어 회로(714)와 함께, 도 5에 예시된(동일 참조 부호들로 나타냄) 것과 같은 컴포넌트들을 포함한다. 예를 들어, 딜레이 제어 회로(714)는 하나 또는 둘 이상의 버스 트랜잭션들 동안 통신된 목적지 어드레스 정보(예를 들어, 메시지가 어드레싱되는 슬레이브 포트와 연관된 어드레스)에 기초하여 적용되는 클록 게이팅 히스테리시스를 선택할 수 있다. 예를 들어, 목적지 어드레스 또는 어드레스들은 원하는 트랜잭션-후 딜레이와 상관할 수 있다. 딜레이 제어 회로(714)는, 예를 들어, 특정 클록 게이팅 딜레이들 갖는 특정 슬레이브 어드레스들을 상호-참조하고, 딜레이 제어 회로(714)에 의해 적용될 특정 클록 게이팅 딜레이를 선택하도록 액세스될 수 있는, 룩업 테이블을 저장할 수 있다.
추가적인 실시예들에서, 유형 표시(type indicia)와 같은 다른 트랜스퍼 속성들은 클록 게이팅 딜레이들을 제어하기 위해 이용될 수 있다. 다른 추가적인 실시예들에서, 페이로드 데이터는 클록 게이팅 딜레이를 조정하기 위한 기준으로서 작용할 수 있다. 예를 들어, 몇몇 실시예에서, 마스터는 마스터 포트(700)에 의해 구현될 원하는 클록 게이팅 딜레이를 명시적으로 또는 암시적으로 나타내는 값을 마스터 포트(700)에 전달(pass)할 수 있다. 추가적인 실시예들에 따르면, 딜레이 제어 입력은 적용될 클록 게이팅 히스테리시스들을 결정하기 위해 어그리게이트 방식으로 프로세싱될 수 있는 복수의 통신 트랜잭션들의 속성들을 포함할 수 있다. 예를 들어, 버스 트랜잭션의 일련의 특정 유형은 동작 모드를 나타낼 수 있고, 최적의 게이팅 딜레이는 이러한 일련의 트랜잭션들에 기초하여 선택될 수 있다. 추가적으로, 이러한 딜레이 제어 입력들의 조합들이 몇몇 실시예들에 이용될 수 있다는 것이 인식될 것이다.
도 8은, 히스테리시스 타이머 회로(810), 다양한 딜레이 값들을 홀딩하도록 구성된 복수의 레지스터들(820) 및 타이머(810) 및 레지스터들(820)을 제어하는 제어 회로(830)를 포함하는 딜레이 제어 회로(814)와 함께, 도 5를 참조하여 설명된(동일한 참조 부호들로 표시된) 것과 같은 컴포넌트들을 포함하는 마스터 포트(800)를 예시한다. 예를 들어, 버스 트랜잭션의 완료 또는 완료 임박과 같은 버스 트랜잭션 스테이터스(831)에 응답하여, 제어 회로(830)는 타이머(810)로 하여금 게이터블 버스 클록 신호(535)의 게이팅을 방지하기 위해 딜레이 제어 신호(505)를 어써트하도록 유도할 수 있다. 도 7을 참조하여 설명된 바와 같이, 제어 회로(830)는, 트랜스퍼 속성들 및/또는 페이로드 데이터와 같은, 딜레이 선택 입력(833)에 따라서 레지스터들(820)로부터 타이머(810)로 선택된 딜레이 값을 동시에 로딩할 수 있다. 트랜잭션 스테이터스(831)가 트랜잭션의 완료를 나타내는 경우, 타이머(810)는 로딩된 값으로부터 카운팅할 수 있고, 카운트가 특정 상태에 도달할 때 딜레이 제어 신호(505)를 디어써트한다. 이는 현재 계류중인 버스 트랜잭션이 없을 때 게이터블 버스 클록 신호(535)를 게이팅할 수 있다. 그러나, 타이머(810)가 특정 상태에 도달하기 전에 새로운 버스 트랜잭션이 시작되는 경우, 타이머(810)는 중지(halt)될 수 있다. 클록 게이팅 딜레이 프로세스는 이 계류중인 트랜잭션이 종료하면 재시작될 수 있고, 예를 들어, 히스테리시스 타이머(810)는 재초기화(reinitialize)되어 그 트랜잭션 이후에 추가적인 클록 게이팅 딜레이를 다시 제공할 수 있다. 추가적인 딜레이는 선행의 딜레이와 동일하거나 또는 상이할 수 있다. 몇몇 실시예들에서, 히스테리시스 타이머(810)에 의해 제공된 연속적인 딜레이들의 수는 또한 제한될 수 있다.
추가적인 실시예들에 따르면, 클록 게이팅 히스테리시스는 도 4의 데이터 라우팅 패브릭 회로(410)의 슬레이브 포트들(430)과 같은 슬레이브 포트에 또한 적용될 수 있다. 도 9에 예시된 몇몇 실시예들에서, 슬레이브 포트(900)는 버스 인터페이스 회로(912)를 포함할 수 있다. 버스 인터페이스 회로(912)는 게이터블 버스 클록 신호(935)와 동시에 버스(940)를 통해서 슬레이브 유닛(920)과 통신하도록 구성된다. 게이터블 버스 클록 신호(935)는 클록 게이팅 회로(930)에 의해 베이스 클록 신호(931)로부터 생성된다. 슬레이브 포트(900)는 게이터블 버스 클록 신호(935)의 트랜잭션-후 게이팅시에 원하는 딜레이를 야기하는 딜레이 제어 신호(905)를 발생시키도록 구성된 딜레이 제어 회로(914)를 추가로 포함할 수 있다. 예시적인 실시예들에서, 예를 들어, 딜레이 제어 신호(905) 또는 커맨드 신호(925) 둘 중 하나가 어써트되는 경우, 클록 게이팅 회로(930)에 의한 게이터블 클록 신호(935)의 게이팅이 방지되도록, 딜레이 제어 신호(905)는 슬레이브 유닛(920)에 의해 발생된 커맨드 신호(925)와 논리적으로 조합되어 클록 게이팅 제어 신호(915)를 발생시킨다. 딜레이 제어 회로(914)는, 예를 들어, 버스(940)상에서 발생하는 통신 트랜잭션의 상태를 나타내는 신호를 포함할 수 있는 딜레이 제어 입력(901)에 응답하여 딜레이 제어 신호(905)를 발생시킨다. 추가적인 실시예들에서, 딜레이 제어 입력(901)은 원하는 딜레이의 표시를 추가로 포함할 수 있고, 딜레이 제어 회로(914)는 딜레이 제어 신호(905)를 발생시키는데 있어서 복수의 딜레이들 중 하나를 선택적으로 적용할 수 있다.
도 10을 참조하여, 예를 들어, 도 9를 참조하여 설명된(동일 부호로 나타냄) 것과 같은 컴포넌트들을 포함하는 슬레이브 포트(1000)에서, 딜레이 제어 회로(1014)는 패브릭 인터페이스 회로(916)에서 마스터 포트로부터 슬레이브 포트(1000)로 운반되는 트랜스퍼 속성들 및/또는 페이로드 데이터(917)를 수신할 수 있고, 딜레이 제어 회로(1014)는 이러한 정보에 기초하여 딜레이를 선택할 수 있다. 예를 들어, 이 정보에 포함된 소스 어드레스는 버스(940)에서 즉시 연속적인 트랜잭션의 가능성(likelihood)과 상관할 수 있고, 이는 게이터블 클록 신호(935)를 재-인에이블하는 것과 관련된 레이턴시를 회피하기 위해 주어진 기간 동안 클록 게이팅을 딜레이하는 것을 바람직하게 할 수 있다. 또한, 페이로드 데이터는 선택에 대한 기준으로서 이용될 수 있다. 예를 들어, 원하는 슬레이브 포트 히스테리시스를 명시적으로 또는 암시적으로 나타내는 정보는 마스터 포트로부터 슬레이브 포트(1000)로 통신될 수 있고, 이러한 정보는 클록 게이팅 딜레이를 선택하는데 이용될 수 있다.
유사하게, 버스 인터페이스 회로(912)에서 수신된 트랜스퍼 속성들 및/또는 페이로드 데이터(919)는 딜레이 제어 회로(1014)로의 제어 입력으로서 이용될 수 있다. 예를 들어, 도 5 내지 도 8을 참조하여 앞서 설명된 마스터 포트 실시예들과 많이 유사하게, 슬레이브 포트(1000)와 슬레이브 유닛 사이에서 전달된 어드레스 정보는 게이터블 클록 신호(935)의 게이팅을 제어하기 위해 이용될 수 있다. 몇몇 실시예들에서, 슬레이브 유닛은 명시적인 및/또는 암시적인 딜레이 제어 정보를 슬레이브 포트(1000)로 전달하도록 구성될 수 있으며, 이 슬레이브 포트(1000)는 게이터블 클록 신호(935)의 게이팅을 제어하기 위해 이러한 정보를 이용할 수 있다.
도 11은, 히스테리시스 타이머 회로(1110), 다양한 딜레이 값들을 홀딩하도록 구성된 복수의 레지스터들(1120), 및 타이머(1110)와 레지스터들(1120)을 제어하는 제어 회로(1130)를 갖는 딜레이 제어 회로(1114)와 함께, 도 9를 참조하여 (동일한 부호들로 나타냄)설명된 것과 같은 컴포넌트들을 포함하는 슬레이브 포트(1100)를 예시한다. 버스 트랜잭션의 완료 또는 완료 임박과 같은 버스 트랜잭션 스테이터스(1131)에 응답하여, 제어 회로(1130)는 타이머(1110)로 하여금 딜레이 제어 신호(905)를 어써트하여 게이터블 버스 클록 신호(935)를 인에이블된 상태에서 유지하도록 유도할 수 있다. 제어 회로(1130)는, 도 10을 참조하여 설명된 것과 같이, 트랜스퍼 속성들 및/또는 페이로드 데이터와 같은 딜레이 선택 입력(1133)에 따라서 레지스터들(1120)로부터 타이머(1110)로 선택된 딜레이 값을 동시에 로딩할 수 있다. 트랜잭션이 완료될 때, 타이머(1110)는 로딩된 값으로부터 카운팅할 수 있으며, 카운트가 특정 상태에 도달할 때 딜레이 제어 신호(905)를 디어써팅한다. 이는 현재 계류중인 버스 트랜잭션이 없을 때 게이터블 버스 클록 신호(935)를 게이팅할 수 있다. 그러나, 타이머(1110)가 특정 상태에 도달하기 전에 새로운 트랜잭션이 시작한다면, 타이머(1110)는 중지된다. 계류중인 트랜잭션이 완료되면, 클록 게이팅 딜레이 프로세스는 반복할 수 있고, 예를 들어, 히스테리시스 타이머(1110)가 재초기화되어 추가적인 클록 게이팅 딜레이를 다시 제공할 수 있다. 추가적인 딜레이는 선행하는 딜레이와 동일하거나 또는 상이할 수 있다. 또한, 게이터블 클록 신호(935)의 게이팅된 기간들 사이에서 히스테리시스 타이머(1110)에 의해 제공된 연속적인 딜레이들의 수는 제한될 수 있다.
도 12는, 슬레이브 포트(1200)에 의해 사용될 클록 게이팅 딜레이들을 명시적으로 및/또는 암시적으로 나타내는 슬레이브 포트 히스테리시스 정보(1217)를 수신하도록 구성된 딜레이 제어 회로(1214)와 함께, 도 9를 참조하여 설명된(동일한 부호들로 나타냄) 것과 같은 컴포넌트들을 포함하는 슬레이브 포트(1200)를 예시한다. 예를 들어, 슬레이브 포트 히스테리시스 정보(1217)는, 하나 또는 둘 이상의 마스터 포트들과의 통신들과 연관된 트랜스퍼 속성들 및/또는 하나 또는 둘 이상의 마스터 포트들에 의해 슬레이브 포트(1200)에 송신된 명시적인 히스테리시스 요청들 또는 커맨드들과 같이, 슬레이브 포트(1200)를 통해서 하나 또는 둘 이상의 마스터 포트들을 통해서 동일한 슬레이브로 정보를 통신하는 프로세스에서 하나 또는 둘 이상의 포트들에 의해 슬레이브 포트(1200)에 송신된 정보를 포함할 수 있다. 예시된 바와 같이, 딜레이 제어 회로(1214)는, 가장 최근의 i번째 트랜잭션들에 대한 그리고 슬레이브 포트(1200)를 통해서 수행된 선행하는 j 트랜잭션들에 대한 슬레이브 포트 히스테리시스 정보(1216)를 저장하도록 구성된다. 예를 들어, 슬레이브 포트 히스테리시스 정보(1216)는 선입선출(FIFO) 버퍼에 저장된 딜레이 값들(예를 들어, 클록 기간들의 수)일 수 있다.
저장된 슬레이브 포트 히스테리시스 정보(1216)는 주어진 슬레이브와 통신하기 위해 슬레이브 포트(1200)를 이용하는 복수의 상이한 마스터 포트들과 관련될 수 있다. 이러한 상이한 마스터 포트들은 슬레이브 포트(1200)에 분기하는 슬레이브 포트 히스테리시스 정보를 통신할 수 있고, 예를 들어, 하나의 마스터 포트는 상대적으로 긴 원하는 클록 게이팅 딜레이가 이용되는 것을 슬레이브 포트(1200)에게 요청할 수 있거나 또는 다르게는 이를 슬레이브 포트(1200)에 표시할 수 있지만, 다른 포트는 비교적 짧은 원하는 클록 게이팅 딜레이를 요청하거나 또는 표시할 수 있다. 딜레이 제어 회로(1214)는 게이터블 클록 신호(935)에 어떤 클록 게이팅 딜레이를 적용할지를 결정하기 위해 이렇게 변화된 히스테리시스 정보를 집합적으로 프로세싱할 수 있다. 예를 들어, 딜레이 제어 회로(1214)는 불필요한 클록 게이팅의 가능성을 감소시키기 위해 복수의 저장된 클록 게이팅 딜레이 값들 중 가장 큰 값에 대응하는 게이터블 클록 신호(935)에 클록 게이팅 딜레이를 적용할 수 있다. 다른 선택 기준들이 적용될 수 있고, 및/또는 클록 게이팅 딜레이가 저장된 슬레이브 포트 히스테리시스 정보(1216)의 통계적인 또는 다른 프로세싱에 기초하여 발생될 수 있다는 것을 인식할 것이다.
본 발명은 본 발명의 예시적인 실시예들을 참조하여 특별히 도시되고 설명되지만, 형태 및 세부사항들의 다양한 변화들이 후술하는 청구항들의 사상 및 범위를 벗어나지 않고 본원에서 이루어질 수 있다는 것을 이해할 것이다.

Claims (23)

  1. 통신 트랜잭션들을 처리하기 위한 장치로서,
    클록 신호에 응답하여 버스를 통해서 통신하도록 구성되는 통신 포트; 및
    상기 클록 신호를 발생시키고, 상기 포트의 통신 트랜잭션에 응답하여 상기 클록 신호의 게이팅 히스테리시스(gating hysteresis)를 변화시키도록 구성되는 클록 신호 발생 회로를 포함하는,
    통신 트랜잭션들을 처리하기 위한 장치.
  2. 제 1 항에 있어서,
    상기 클록 신호 발생 회로는 상기 트랜잭션의 속성에 기초하여 상기 클록 신호의 상기 게이팅 히스테리시스를 변화시키도록 구성되는,
    통신 트랜잭션들을 처리하기 위한 장치.
  3. 제 2 항에 있어서,
    상기 속성은 상기 트랜잭션의 어드레스 및 상기 트랜잭션에서 통신되는 페이로드 중 적어도 하나를 포함하는,
    통신 트랜잭션들을 처리하기 위한 장치.
  4. 제 2 항에 있어서,
    상기 클록 신호 발생 회로는 상기 클록 신호를 게이팅하는데 있어서 트랜잭션-후 딜레이를 변화시키도록 구성되는,
    통신 트랜잭션들을 처리하기 위한 장치.
  5. 제 1 항에 있어서,
    상기 포트는 데이터 라우팅 패브릭 회로의 복수의 포트들을 포함하고,
    상기 클록 신호 발생 회로는 상기 복수의 포트들의 각각의 포트들의 클록 신호들의 각각의 게이팅 히스테리시스들을 독립적으로 변화시키도록 구성되는,
    통신 트랜잭션들을 처리하기 위한 장치.
  6. 제 1 항의 통신 트랜잭션들을 처리하기 위한 장치를 포함하는,
    집적 회로.
  7. 제 6 항의 집적 회로에 대한 제작 명령들(fabrication instructions)을 생성하기 위해 데이터 프로세싱 시스템에 의해 실행가능한 컴퓨터 명령들이 내부에 수록되는,
    컴퓨터-판독가능 매체.
  8. 통신 트랜잭션들을 처리하기 위한 장치로서,
    데이터 라우팅 패브릭 회로 ― 상기 데이터 라우팅 패브릭 회로는 클록 신호들에 따라서 상기 데이터 라우팅 패브릭 회로의 외부에 있는 노드들과 통신하도록 구성되는 복수의 포트들을 포함함 ― ; 및
    시간 딜레이를 나타내는 값을 저장하고, 상기 저장된 값에 기초하여 상기 포트들 중 적어도 하나의 포트의 클록 신호의 게이팅을 딜레이하도록 구성되는 제어 회로를 포함하는,
    통신 트랜잭션들을 처리하기 위한 장치.
  9. 제 8 항에 있어서,
    상기 값은 프로그램 가능한 값을 포함하는,
    통신 트랜잭션들을 처리하기 위한 장치.
  10. 제 8 항에 있어서,
    상기 제어 회로는 각각의 타임 딜레이들을 나타내는 복수의 값들을 저장하고, 상기 저장된 값들 중 하나를 선택하고, 그리고 상기 선택되는 값에 기초하여 상기 포트들 중 적어도 하나의 포트의 상기 클록 신호의 게이팅을 딜레이하도록 구성되는,
    통신 트랜잭션들을 처리하기 위한 장치.
  11. 제 10 항에 있어서,
    상기 제어 회로는 상기 포트들 중 적어도 하나의 포트를 수반하는 통신 트랜잭션의 속성에 기초하여 상기 저장된 값들 중 하나를 선택하도록 구성되는,
    통신 트랜잭션들을 처리하기 위한 장치.
  12. 제 8 항의 통신 트랜잭션들을 처리하기 위한 장치를 포함하는,
    집적 회로.
  13. 제 12 항의 집적 회로에 대한 제작 명령들을 생성하기 위해 데이터 프로세싱 시스템에 의해 실행가능한 컴퓨터 명령들이 내부에 수록되는,
    컴퓨터-판독가능 매체.
  14. 통신 트랜잭션들을 처리하기 위한 장치로서,
    클록 신호에 응답하여 버스를 통해서 통신하도록 구성되는 통신 포트; 및
    상기 클록 신호를 발생시키고, 상기 포트의 통신 트랜잭션에 응답하여 상기 클록 신호의 게이팅 히스테리시스를 변화시키기 위한 수단을 포함하는,
    통신 트랜잭션들을 처리하기 위한 장치.
  15. 통신 포트를 동작시키는 방법으로서,
    상기 포트의 통신 트랜잭션에 응답하여 상기 포트의 클록 신호에 대한 게이팅 히스테리시스를 변화시키는 단계를 포함하는,
    통신 포트를 동작시키는 방법.
  16. 제 15 항에 있어서,
    상기 포트의 통신 트랜잭션에 응답하여 상기 포트의 클록 신호에 대한 게이팅 히스테리시스를 변화시키는 단계는, 상기 트랜잭션의 속성에 기초하여 상기 클록 신호에 대한 상기 게이팅 히스테리시스를 변화시키는 단계를 포함하는,
    통신 포트를 동작시키는 방법.
  17. 제 16 항에 있어서,
    상기 속성은 상기 트랜잭션의 어드레스 및 상기 트랜잭션에서 통신되는 페이로드 중 적어도 하나를 포함하는,
    통신 포트를 동작시키는 방법.
  18. 제 15 항에 있어서,
    상기 포트의 통신 트랜잭션에 응답하여 상기 포트의 클록 신호에 대한 게이팅 히스테리시스를 변화시키는 단계는, 상기 클록 신호를 게이팅하는데 있어서 트랜잭션-후 딜레이를 변화시키는 단계를 포함하는,
    통신 포트를 동작시키는 방법.
  19. 제 15 항에 있어서,
    상기 포트는 데이터 라우팅 패브릭 회로의 복수의 포트들을 포함하고,
    상기 포트의 통신 트랜잭션에 응답하여 상기 포트의 클록 신호에 대한 게이팅 히스테리시스를 변화시키는 단계는, 상기 복수의 포트들의 각각의 포트들의 클록 신호들의 각각의 클록 게이팅 히스테리시스들을 독립적으로 변화시키는 단계를 포함하는,
    통신 포트를 동작시키는 방법.
  20. 데이터 라우팅 패브릭 회로를 동작시키는 방법으로서,
    상기 데이터 라우팅 패브릭 회로는 상기 데이터 라우팅 패브릭 회로의 외부에 있는 노드들과 통신하도록 구성되는 복수의 포트들을 포함하며,
    상기 방법은,
    타임 딜레이를 나타내는 값을 저장하는 단계;
    상기 저장된 값에 기초하여 포트들 중 적어도 하나의 포트의 클록 신호의 게이팅을 딜레이하는 단계를 포함하는,
    데이터 라우팅 패브릭 회로를 동작시키는 방법.
  21. 제 20 항에 있어서,
    상기 타임 딜레이를 나타내는 값을 저장하는 단계는, 프로그래밍된 값을 저장하는 단계를 포함하는,
    데이터 라우팅 패브릭 회로를 동작시키는 방법.
  22. 제 20 항에 있어서,
    상기 타임 딜레이를 나타내는 값을 저장하는 단계는, 각각의 타임 딜레이들을 나타내는 복수의 값들을 저장하는 단계를 포함하고;
    상기 저장된 값에 기초하여 포트들 중 적어도 하나의 포트의 클록 신호의 게이팅을 딜레이하는 단계 이전에 상기 저장된 값들 중 하나를 선택하는 단계가 수행되며; 그리고
    상기 저장된 값에 기초하여 포트들 중 적어도 하나의 포트의 클록 신호의 게이팅을 딜레이하는 단계는, 상기 선택된 값에 기초하여 상기 클록 신호의 게이팅을 딜레이하는 단계를 포함하는,
    데이터 라우팅 패브릭 회로를 동작시키는 방법.
  23. 제 22 항에 있어서,
    상기 저장된 값에 기초하여 포트들 중 적어도 하나의 포트의 클록 신호의 게이팅을 딜레이하는 단계 이전에 상기 적어도 하나의 포트를 수반하는 통신 트랜잭션을 수행하는 단계가 수행되며; 그리고
    상기 저장된 값들 중 하나를 선택하는 단계는, 상기 통신 트랜잭션의 속성에 기초하여 상기 저장된 값들 중 하나를 선택하는 단계를 포함하는,
    데이터 라우팅 패브릭 회로를 동작시키는 방법.
KR1020127031677A 2010-05-03 2011-04-27 통신 포트에 대한 가변 클록 게이팅 히스테리시스를 채용하는 장치 및 방법들 KR101442791B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/772,484 2010-05-03
US12/772,484 US9285860B2 (en) 2010-05-03 2010-05-03 Apparatus and methods employing variable clock gating hysteresis for a communications port
PCT/US2011/034080 WO2011139744A1 (en) 2010-05-03 2011-04-27 Apparatus and methods employing variable clock gating hysteresis for a communications port

Publications (2)

Publication Number Publication Date
KR20130036011A KR20130036011A (ko) 2013-04-09
KR101442791B1 true KR101442791B1 (ko) 2014-09-24

Family

ID=44121063

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020127031677A KR101442791B1 (ko) 2010-05-03 2011-04-27 통신 포트에 대한 가변 클록 게이팅 히스테리시스를 채용하는 장치 및 방법들

Country Status (6)

Country Link
US (1) US9285860B2 (ko)
EP (1) EP2567302B1 (ko)
JP (1) JP5629819B2 (ko)
KR (1) KR101442791B1 (ko)
CN (1) CN102884489B (ko)
WO (1) WO2011139744A1 (ko)

Families Citing this family (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8504866B2 (en) * 2010-07-30 2013-08-06 Advanced Micro Devices, Inc. Supplying hysteresis effect mitigated clock signals based on silicon-test characterized parameter
US9158328B2 (en) * 2011-12-20 2015-10-13 Oracle International Corporation Memory array clock gating scheme
WO2013100783A1 (en) 2011-12-29 2013-07-04 Intel Corporation Method and system for control signalling in a data path module
US8873576B2 (en) * 2012-09-14 2014-10-28 Broadcom Corporation Dynamic clock gating in a network device
US10331583B2 (en) 2013-09-26 2019-06-25 Intel Corporation Executing distributed memory operations using processing elements connected by distributed channels
US8963597B1 (en) * 2013-10-02 2015-02-24 Nanya Technology Corporation Cross-domain enablement method and electronic apparatus
US9488692B2 (en) * 2014-08-26 2016-11-08 Apple Inc. Mode based skew to reduce scan instantaneous voltage drop and peak currents
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 삼성전자주식회사 반도체 장치
US10558575B2 (en) 2016-12-30 2020-02-11 Intel Corporation Processors, methods, and systems with a configurable spatial accelerator
US10572376B2 (en) 2016-12-30 2020-02-25 Intel Corporation Memory ordering in acceleration hardware
US11086816B2 (en) 2017-09-28 2021-08-10 Intel Corporation Processors, methods, and systems for debugging a configurable spatial accelerator
US20190101952A1 (en) * 2017-09-30 2019-04-04 Intel Corporation Processors and methods for configurable clock gating in a spatial array
US10565134B2 (en) 2017-12-30 2020-02-18 Intel Corporation Apparatus, methods, and systems for multicast in a configurable spatial accelerator
US10564980B2 (en) 2018-04-03 2020-02-18 Intel Corporation Apparatus, methods, and systems for conditional queues in a configurable spatial accelerator
US11307873B2 (en) 2018-04-03 2022-04-19 Intel Corporation Apparatus, methods, and systems for unstructured data flow in a configurable spatial accelerator with predicate propagation and merging
US11200186B2 (en) 2018-06-30 2021-12-14 Intel Corporation Apparatuses, methods, and systems for operations in a configurable spatial accelerator
US10891240B2 (en) 2018-06-30 2021-01-12 Intel Corporation Apparatus, methods, and systems for low latency communication in a configurable spatial accelerator
US11360539B2 (en) * 2018-09-18 2022-06-14 Maxlinear, Inc. Adaptive clock signal frequency scaling
US10678724B1 (en) 2018-12-29 2020-06-09 Intel Corporation Apparatuses, methods, and systems for in-network storage in a configurable spatial accelerator
US10915471B2 (en) 2019-03-30 2021-02-09 Intel Corporation Apparatuses, methods, and systems for memory interface circuit allocation in a configurable spatial accelerator
US10965536B2 (en) 2019-03-30 2021-03-30 Intel Corporation Methods and apparatus to insert buffers in a dataflow graph
US10817291B2 (en) 2019-03-30 2020-10-27 Intel Corporation Apparatuses, methods, and systems for swizzle operations in a configurable spatial accelerator
US11029927B2 (en) 2019-03-30 2021-06-08 Intel Corporation Methods and apparatus to detect and annotate backedges in a dataflow graph
US11037050B2 (en) 2019-06-29 2021-06-15 Intel Corporation Apparatuses, methods, and systems for memory interface circuit arbitration in a configurable spatial accelerator
US11907713B2 (en) 2019-12-28 2024-02-20 Intel Corporation Apparatuses, methods, and systems for fused operations using sign modification in a processing element of a configurable spatial accelerator
US11635739B1 (en) 2020-04-30 2023-04-25 Marvell Asia Pte Ltd System and method to manage power to a desired power profile
US11340673B1 (en) * 2020-04-30 2022-05-24 Marvell Asia Pte Ltd System and method to manage power throttling
US20230034633A1 (en) * 2021-07-30 2023-02-02 Advanced Micro Devices, Inc. Data fabric c-state management

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6021506A (en) 1998-07-31 2000-02-01 Intel Corporation Method and apparatus for stopping a bus clock while there are no activities on a bus
US20030135676A1 (en) 2002-01-17 2003-07-17 Koninklijke Philips Electronics N.V. Low-power bus interface
US20090265573A1 (en) 2008-04-22 2009-10-22 Oki Semiconductor Co., Ltd. Data transmission/reception circuit

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7605A (en) 1850-08-27 Method
JP3475510B2 (ja) 1994-08-09 2003-12-08 ヤマハ株式会社 省電力機能付き集積回路
JPH1153049A (ja) 1997-08-05 1999-02-26 Toshiba Corp コンピュータシステム
US6079024A (en) * 1997-10-20 2000-06-20 Sun Microsystems, Inc. Bus interface unit having selectively enabled buffers
JPH11212888A (ja) 1998-01-27 1999-08-06 Toshiba Corp 通信機能一体型携帯情報処理装置及びデータ受信方法
US20030226050A1 (en) * 2000-12-18 2003-12-04 Yik James Ching-Shau Power saving for mac ethernet control logic
JP2003067691A (ja) 2001-08-24 2003-03-07 Matsushita Electric Ind Co Ltd メモリ装置
JP2003256066A (ja) 2002-02-28 2003-09-10 Matsushita Electric Ind Co Ltd クロック供給制御装置
US7076681B2 (en) 2002-07-02 2006-07-11 International Business Machines Corporation Processor with demand-driven clock throttling power reduction
US7162588B2 (en) 2002-08-23 2007-01-09 Koninklijke Philips Electronics N.V. Processor prefetch to match memory bus protocol characteristics
US7065665B2 (en) 2002-10-02 2006-06-20 International Business Machines Corporation Interlocked synchronous pipeline clock gating
US7647515B2 (en) * 2005-08-29 2010-01-12 Dell Products L.P. System and method for information handling system adaptive variable bus idle timer
US7472299B2 (en) * 2005-09-30 2008-12-30 Intel Corporation Low power arbiters in interconnection routers
US20090228733A1 (en) * 2008-03-06 2009-09-10 Integrated Device Technology, Inc. Power Management On sRIO Endpoint
US7605612B1 (en) 2008-05-16 2009-10-20 International Business Machines Corporation Techniques for reducing power requirements of an integrated circuit
US8316252B2 (en) 2008-05-30 2012-11-20 Advanced Micro Devices, Inc. Distributed clock gating with centralized state machine control

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6021506A (en) 1998-07-31 2000-02-01 Intel Corporation Method and apparatus for stopping a bus clock while there are no activities on a bus
US20030135676A1 (en) 2002-01-17 2003-07-17 Koninklijke Philips Electronics N.V. Low-power bus interface
US20090265573A1 (en) 2008-04-22 2009-10-22 Oki Semiconductor Co., Ltd. Data transmission/reception circuit

Also Published As

Publication number Publication date
US20110271134A1 (en) 2011-11-03
EP2567302B1 (en) 2018-01-24
US9285860B2 (en) 2016-03-15
EP2567302A1 (en) 2013-03-13
WO2011139744A1 (en) 2011-11-10
KR20130036011A (ko) 2013-04-09
JP2013527963A (ja) 2013-07-04
JP5629819B2 (ja) 2014-11-26
CN102884489B (zh) 2016-09-21
CN102884489A (zh) 2013-01-16

Similar Documents

Publication Publication Date Title
KR101442791B1 (ko) 통신 포트에 대한 가변 클록 게이팅 히스테리시스를 채용하는 장치 및 방법들
EP2668579B1 (en) Bus clock frequency scaling for a bus interconnect and related devices, systems, and methods
JP4733877B2 (ja) 半導体装置
JP3526920B2 (ja) コンピュータシステム、ならびに周辺バスクロック信号を制御するためのシステムおよび方法
KR101324885B1 (ko) 복수의 회로들에서의 성능 파라미터들 조정
TWI453593B (zh) 網路架構控制電路及用於實現服務品質(QoS)的系統及方法
US20050256986A1 (en) Slave devices and methods for operating the same
US8433835B2 (en) Information processing system and control method thereof
US20160363986A1 (en) Fast link wake-up in serial-based io fabrics
JP3954011B2 (ja) サブシステム間で通信するための方法およびコンピュータ・システム
EP2038728A1 (en) Controlling power consumption in a data processing apparatus
EP1478994A1 (en) Transferring data between differently clocked busses
JP7156781B2 (ja) 電子機器及びその動作方法
US10248155B2 (en) Semiconductor device including clock generating circuit and channel management circuit
JP2023536056A (ja) メモリキャリブレーションシステム及び方法
US10621115B2 (en) System and method for communication link management in a credit-based system
US20080270668A1 (en) Method to Hide or Reduce Access Latency of a Slow Peripheral in a Pipelined Direct Memory Access System
US8786332B1 (en) Reset extender for divided clock domains
US9170768B2 (en) Managing fast to slow links in a bus fabric
JP4124579B2 (ja) バス制御システム
US20230090567A1 (en) Device and method for two-stage transitioning between reduced power states
JP2008287557A (ja) バスシステム及びマイクロコンピュータ
JP2013011953A (ja) 情報処理システムおよび情報処理システムにおける電源およびクロックの制御方法
KR20080097756A (ko) 반도체 메모리 데이터 전송 제어장치
JP2004234269A (ja) データ転送装置

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
FPAY Annual fee payment

Payment date: 20170629

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20180628

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20190624

Year of fee payment: 6