KR102440129B1 - 저전력 모드 지원 컴퓨터 시스템 및 그것의 방법 - Google Patents

저전력 모드 지원 컴퓨터 시스템 및 그것의 방법 Download PDF

Info

Publication number
KR102440129B1
KR102440129B1 KR1020150148945A KR20150148945A KR102440129B1 KR 102440129 B1 KR102440129 B1 KR 102440129B1 KR 1020150148945 A KR1020150148945 A KR 1020150148945A KR 20150148945 A KR20150148945 A KR 20150148945A KR 102440129 B1 KR102440129 B1 KR 102440129B1
Authority
KR
South Korea
Prior art keywords
cluster
clock
skew
endpoint
digital circuit
Prior art date
Application number
KR1020150148945A
Other languages
English (en)
Other versions
KR20160049496A (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 KR20160049496A publication Critical patent/KR20160049496A/ko
Application granted granted Critical
Publication of KR102440129B1 publication Critical patent/KR102440129B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/39Circuit design at the physical level
    • G06F30/398Design verification or optimisation, e.g. using design rule check [DRC], layout versus schematics [LVS] or finite element methods [FEM]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/39Circuit design at the physical level
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/327Logic synthesis; Behaviour synthesis, e.g. mapping logic, HDL to netlist, high-level language to RTL or netlist
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/39Circuit design at the physical level
    • G06F30/396Clock trees
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2117/00Details relating to the type or aim of the circuit design
    • G06F2117/04Clock gating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2119/00Details relating to the type or aim of the analysis or the optimisation
    • G06F2119/12Timing analysis or timing optimisation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)

Abstract

본 발명의 실시 예에 따른 컴퓨터 시스템은, 디지털 회로 모델을 입력받고, 상기 디지털 회로 모델은, 복수의 논리 회로들, 및 상기 복수의 논리 회로들에 클록 신호를 제공하는 클록 메쉬의 모델들을 포함하고, 클록 게이터 셀을 상기 디지털 회로 모델로 조절하고, 상기 클록 게이터 셀은 상기 클러스터를 위한 공통 레이턴시를 설정하고 그리고 상기 클러스터에 연관된 공통 푸쉬/풀 스케쥴 양에 근거로 한 상기 클록 게이터 셀의 변종을 포함하는 클록 게이터 조절기, 및 상기 클러스터의 적어도 하나의 엔드 포인트를 위하여 스큐 버퍼를 상기 디지털 회로 모델에 삽입하고, 각 엔드 포인트를 위한 상기 스큐 버퍼의 변종은 상기 각 엔드 포인트에 연관된 상기 스큐 스케쥴과 상기 클러스터에 연관된 상기 공통 푸쉬/풀 스케쥴 사이의 차이에 근거로 하여 존재하는 스큐 버퍼 조절기를 포함한다.

Description

저전력 모드 지원 컴퓨터 시스템 및 그것의 방법{COMPUTER SYSTEM SUPPORTING LOW POWER MODE AND METHOD OF THEREOF}
본 발명은 저전력 모드를 지원하는 컴퓨터 시스템 및 그것의 방법에 관한 것이다.
컴퓨터 시스템과 같은 대부분의 디지털 회로 시스템의 동작은, 회로 소자의 시퀀스 및 페이징을 지시 "클록"으로 알려진 주기 신호에 의해 동기화 된다. 종종,이 클록은 레지스터들, 래치들, 플립플롭들, 혹은 메모리들로 불리는 회로의 모든 메모리 소자들에 싱글 소스로부터 분배된다. 에지 크리거드(edge-triggered) 플립플롭을 사용하는 회로에서, 클록 에지 혹은 틱(tick)이 플립플롭에 도착했을 때, 플립플롭은 플립플롭 입력을 플립플롭 출력으로 전송하고, 이 새로운 출력 값들은 새로운 클록 틱를 위하여 다름 플립플롭의 입력들에서 값들로 제공하도록 조합 논리를 통하여 흐른다.
이상적으로, 각각의 메모리 소자에 대한 입력은 다음 클록 틱을 위한 시간에서 계산 될 최종 값으로 도달해서, 전체 회로의 행동이 정확하게 예측될 수 있다. 일반적으로, 시스템은 실행할 수 있는 최대 속도 혹은 클록 주파수로 인해 물리 조성, 온도 및 경로 길이 차이에 따라 회로의 다양한 구성 요소 사이에서 발생하는 변화를 야기한다.
회로 설계에서, 클록 스큐(혹은, 타이밍 스큐)는 클록 신호(클록 회로로부터 전송됨)가 서로 다른 시간에서 서로 다른 구성 요소들에 도착하는 동기 회로들에서 일어나는 현상이다. 때때로, 이는 와이어 인터커넥션 길이, 온도 변화들, 중간 장치의 변화, 용량 결합, 재료 결함, 클록을 사용하는 장치들의 클록 입력들에서 입력 커패시턴스 차이, 랜덤 및 시스템적 변화, 및 클록 지터와 같은 수많은 차이에 의해 야기 될 수 있다. 회로의 클록 비율이 증가함에 따라, 타이밍은 더욱 중요하고, 회로가 정상적으로 동작할 경우 적은 변화가 허용될 수 있다.
일반적으로, 두 개의 클록 스큐의 종류가 존재한다. 음의 레이턴시(풀) 및 양의 레이턴시(푸쉬)이다. 양의 스큐는, 수신 플립플롭이 송신 플립플롭보다 나중에 클록 틱을 입력 받을 때 발생한다. 수신 레지스터는 송신 레지스터 보다 일찍 클록 틱을 입력 받는다. 제로 클록 스큐는 송신 및 수신 레지스터에서 실질적으로 동시에 클록 틱의 도착을 의미한다.
본 발명은 신규한 저전력 모드 지원 컴퓨터 시스템 및 그것의 방법을 제공하는 데 있다.
본 발명의 실시 예에 따른 컴퓨터 시스템의 방법은, 디지털 회로 모델을 입력받는 단계, 상기 디지털 회로 모델은, 복수의 논리 회로들, 및 상기 복수의 논리 회로들에 클록 신호를 제공하는 클록 메쉬의 모델들을 포함하고, 각 논리 회로는 상기 논리 회로의 하나 이상의 엔드 포인트들에 상기 클록 신호의 인가에 의해 적어도 부분적으로 제어되고; 상기 엔드 포인트들의 클러스터를 식별하는 단계, 상기 클러스터는 상기 클록 신호 및 공통 활성화 신호의 공통 버전에 의해 적어도 부분적으로 제어되고; 각 엔드 포인트를 위하여 연관된 스큐 스케쥴을 식별하는 단계; 상기 클러스터 내에 각 엔드 포인트를 위하여 타이밍 슬랙 및 스큐 스케쥴을 판별하는 단계; 상기 디지털 회로 모델에 클록 게이터 셀을 조절하는 단계, 상기 클록 게이터 셀은 상기 클러스터를 위하여 공통 레이턴시를 설정하고 그리고 상기 클러스터에 연관된 공통 푸쉬/풀 스케쥴에 근거로 하여 상기 클록 게이터 셀의 변종을 판별하는 단계를 포함하고; 및 상기 클러스터의 적어도 하나의 엔드 포인트를 위하여 스큐 버퍼를 상기 디지털 회로 모델에 삽입하는 단계, 각 엔드 포인트를 위한 상기 스큐 버퍼의 변종은 상기 각 엔드 포인트에 연관된 상기 스큐 스케쥴과 상기 클러스터에 연관된 상기 공통 푸쉬/풀 스케쥴 사이의 차이에 근거로 하여 존재한다.
본 발명의 실시 예에 따른 컴퓨터 시스템의 장치는, 디지털 회로 모델을 입력받고, 상기 디지털 회로 모델은, 복수의 논리 회로들, 및 상기 복수의 논리 회로들에 클록 신호를 제공하는 클록 메쉬의 모델들을 포함하고, 각 논리 회로는 상기 논리 회로의 하나 이상의 엔드 포인트들에 상기 클록 신호의 인가에 의해 적어도 부분적으로 제어되고, 상기 엔드 포인트들의 클러스터를 식별하고, 상기 클러스터는 상기 클록 신호 및 공통 활성화 신호의 공통 버전에 의해 적어도 부분적으로 제어되고, 각 엔드 포인트를 위하여 연관된 스큐 스케쥴을 식별하고, 상기 클러스터 내의 각 엔드 포인트를 위한 타이밍 슬랙 및 스큐 스케쥴을 판별하는 디지털 회로 수신기; 클록 게이터 셀을 상기 디지털 회로 모델로 조절하고, 상기 클록 게이터 셀은 상기 클러스터를 위한 공통 레이턴시를 설정하고 그리고 상기 클러스터에 연관된 공통 푸쉬/풀 스케쥴 양에 근거로 한 상기 클록 게이터 셀의 변종을 판별하는 것을 포함하는 클록 게이터 조절기; 및 상기 클러스터의 적어도 하나의 엔드 포인트를 위하여 스큐 버퍼를 상기 디지털 회로 모델에 삽입하고, 각 엔드 포인트를 위한 상기 스큐 버퍼의 변종은 상기 각 엔드 포인트에 연관된 상기 스큐 스케쥴과 상기 클러스터에 연관된 상기 공통 푸쉬/풀 스케쥴 사이의 차이에 근거로 하여 존재하는 스큐 버퍼 조절기를 포함한다.
본 발명의 실시 예에 따른 디지털 회로 모델의 클록 스큐 스케쥴을 교환하기 위한 컴퓨터 프로그램 제품은, 컴퓨터 판독 매체에 구현되고 및 실행되는 실행 코드를 구성하고, 상기 실행 코드는, 데이터 처리 장치가, 디지털 회로 모델을 입력받고, 상기 디지털 회로 모델은, 복수의 논리 회로들, 및 상기 복수의 논리 회로들에 클록 신호를 제공하는 클록 메쉬의 모델들을 포함하고, 각 논리 회로는 상기 논리 회로의 하나 이상의 엔드 포인트들에 상기 클록 신호의 인가에 의해 적어도 부분적으로 제어되고; 상기 엔드 포인트들의 클러스터를 식별하고, 상기 클러스터는 상기 클록 신호 및 공통 활성화 신호의 공통 버전에 의해 적어도 부분적으로 제어되고; 각 엔드 포인트를 위하여 연관된 스큐 스케쥴을 식별하고; 상기 클러스터 내에 각 엔드 포인트를 위하여 타이밍 슬랙 및 스큐 스케쥴을 판별하고; 상기 디지털 회로 모델에 클록 게이터 셀을 조절하고, 상기 클록 게이터 셀은 상기 클러스터를 위하여 공통 레이턴시를 설정하고 그리고 상기 클러스터에 연관된 공통 푸쉬/풀 스케쥴에 근거로 하여 상기 클록 게이터 셀의 변종을 판별하는 단계를 포함하고; 및 상기 클러스터의 적어도 하나의 엔드 포인트를 위하여 스큐 버퍼를 상기 디지털 회로 모델에 삽입하고, 각 엔드 포인트를 위한 상기 스큐 버퍼의 변종은 상기 각 엔드 포인트에 연관된 상기 스큐 스케쥴과 상기 클러스터에 연관된 상기 공통 푸쉬/풀 스케쥴 사이의 차이에 근거로 하여 존재하도록, 야기하도록 구현된다.
본 발명의 실시 예에 따른 컴퓨터 시스템 및 그것의 방법은 공통 푸쉬/풀 스케쥴을 이용하여 클록 스큐를 조절함으로써, 간단하면서 효율적으로 저전력 모드를 지원할 수 있다.
도 1은 본 발명의 실시 예에 따른 컴퓨터 시스템의 예시적인 실시 예를 보여주는 블록도이다.
도 2는 본 발명의 실시 예에 따른 컴퓨터 시스템의 예시적인 실시 예를 보여주는 블록도이다.
도 3a는 본 발명의 실시 에에 따른 회로들에 대한 실시 예를 보여주는 블록도이다.
도 3b는 본 발명의 실시 에에 따른 회로들에 대한 실시 예를 보여주는 블록도이다.
도 3c는 본 발명의 실시 에에 따른 회로들에 대한 실시 예를 보여주는 블록도이다.
도 4는 본 발명의 실시 예에 따른 컴퓨터 시스템의 예시적인 실시 예를 보여주는 블록도이다.
도 5는 본 발명의 실시 예에 따른 기술에 대한 예시적인 실시 예를 보여주는 흐름도이다.
도 6은 본 발명의 실시 예에 다른 장치들을 포함하는 정보 처리 시스템에 대한 개략적인 블록도이다.
아래에서는 도면들을 이용하여 본 발명의 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있을 정도로 본 발명의 내용을 명확하고 상세하게 기재할 것이다.
본 발명의 개념에 따른 실시 예들은 다양한 변경들을 가할 수 있고 여러 가지 형태들을 가질 수 있으므로 실시 예들을 도면에 예시하고 본 명세서에서 상세하게 설명하고자 한다. 그러나, 이는 본 발명의 개념에 따른 실시 예들을 특정한 개시 형태들에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물, 혹은 대체물을 포함한다.
제 1 혹은 제 2 등의 용어는 다양한 구성 요소들을 설명하는데 사용될 수 있지만, 상기 구성 요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성 요소를 다른 구성 요소로부터 구별하는 목적으로만, 예컨대 본 발명의 개념에 따른 권리 범위로부터 벗어나지 않은 채, 제 1 구성 요소는 제 2 구성 요소로 명명될 수 있고 유사하게 제 2 구성 요소는 제 1 구성 요소로도 명명될 수 있다.
어떤 구성 요소가 다른 구성 요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성 요소에 직접적으로 연결되어 있거나 혹은 접속되어 있을 수도 있지만, 중간에 다른 구성 요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성 요소가 다른 구성 요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는 중간에 다른 구성 요소가 존재하지 않는 것으로 이해되어야 할 것이다. 구성 요소들 간의 관계를 설명하는 다른 표현들, 즉 "~사이에"와 "바로 ~사이에" 혹은 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.
본 명세서에서 사용한 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로서, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 혹은 "가지다" 등의 용어는 본 명세서에 기재된 특징, 숫자, 단계, 동작, 구성 요소, 부분품 혹은 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 혹은 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성 요소, 부분품 혹은 이들을 조합한 것들의 존재 혹은 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 나타낸다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 갖는 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
도 1은 본 발명의 실시 예에 따른 컴퓨터 시스템(100)의 실시 예를 보여주는 블록도이다. 도시된 실시 예들은 유효하지 않거나 유해한 클록 스큐 및 그것의 개선에 대한 간단한 실시 예이다. 다양한 실시 예들에 있어서, 클록 스큐의 개선은 본 발명에 의해 도달될 수 있다.
도시된 실시 예에서, 컴퓨터 시스템(100)은 3개의 플립플롭들(혹은, "엔드 포인트들"(end points), 102, 104, 및 106)을 포함할 수 있다. 또한, 컴퓨터 시스템(100)은 4개의 조합 논리 부분들(112, 114, 116, 및 118)을 포함할 수 있다. 다양한 실시 예들에서, 조합 논리 부분들은, 예를 들어, 낸드 게이트들, 노아 게이트들, 캐퍼시터들, 저항들, 등과 같은 다양한 전기 회로들을 포함할 수 있다. 처리되고 논리 회로 부분에 출력을 야기할 조합 논리에 입력을 위한 임의의 양의 시간이 걸릴 수 있다.
상술 된 바와 같이, 만일 이 프로세싱 시간이 클록 신호(131)의 주기보다 짧으면, 회로는 "양의 슬랙"(positive slack)이라고 부른다. 반대로, 이 프로세싱 시간이 클록 신호(131)의 주기보다 길면, 회로는 "음의 슬랙" (negative slack)이리고 부른다. 출력들은, 출력들에 연관된 플립플롭들이 출력 신호들을 저장할 때 준비되지 않을 것이다. 다양한 실시 예들에서, 이는 클록 주기를 증가하거나 클록 주파수를 감소시키는 것에 의해 개선될 수 있다.
도시된 실시 예에서, 클록 주기는 714 ps 혹은 대략 1.4 GHz 의 주파수이다. 도시된 실시 예에 있어서, 조합 논리(112)는 814 ps로 처리할 수 있다. 따라서, 플립플롭(102)이 논리적으로 조합 논리(112)의 앞에 혹은 앞쪽에 존재함으로써, 플립플롭(102)은 -100 ps (예, 714 ps - 814 ps)의 프론트 슬랙(front slack) 혹은 프론트워드(frontwards slack)를 가질 수 있다. 클록 신호는 조합 논리(112)의 출력들이 준비되거나 충분하게 계산되기 전에 100ps로 플립플롭(102)에 도착하도록 생각될 수 있다.
도시된 실시 예에서, 조합 논리(114)는 414 ps로 처리할 수 있다. 그러므로, 플립플롭(102)은, 조합 논리(114)의 뒤에 혹은 뒤쪽에 존재함으로써, +300 ps (예, 714 ps - 414 ps)의 백 슬랙(back slack) 혹은 백워드 슬랙(backwards slack)을 가질 수 있다.
설명된 실시 예들은 단지 본 발명이 제한되지 않은 예시적인 실시 예들이다고 이해되어야 할 것이다. 예를 들어, 이러한 실시 예들은 설명을 위해 간략하게 도시되고, 클록 지터, 셋업 시간 등과 같은 것을 포함하지 않는다.
도시된 실시 예에서, 조합 논리(116)는 764 ps로 처리할 수 있다. 그러므로, 플립플롭(104)은, 플립플롭(104)은 -50 ps(예, 714 ps - 764 ps)의 백 슬랙을 가질 수 있고, 그리고 플립플롭(105)은 - 50 ps(예, 714 ps - 764 ps)의 프론트 슬랙을 가질 수 있다. 도시된 실시 예에서, 조합 논리(118)는 714 ps로 처리할 수 있다. 따라서, 플립플롭(106)은 0 ps(예, 714 ps - 714 ps)의 백 슬랙을 가질 수 있다. 상술 된 것은 단지 본 발명이 제한되지 않은 예시적인 실시 예이다고 이해되어야 할 것이다.
도시된 실시 예와 같이, 클록 네트워크 혹은 클록 메쉬는 클록 신호(131) 및 버퍼들 혹은 드라이버들(132, 134, 136)을 포함할 수 있다. 도시된 실시 예에서, 각 버퍼는 50 ps 까지 클록 신호(131)를 지연시킬 수 있다. 상술 된 것은 단지 본 발명이 제한되지 않은 예시적인 실시 예이다고 이해 되어야 할 것이다.
상술 된 바와 같이, 오리지널 상태(상태 101)에서, 컴퓨터 시스템(100)은, 음의(양의) 슬랙을 갖도록 고려되는 2개의 플립플롭들(102, 106) 혹은 엔드 포인트들을 포함할 수 있다. 814 ps( 목표 714 ps 대신)의 클록 주기는 가장 느린 논리(112)를 충분하게 처리하는데 필요한 것처럼, 2개의 플립플롭들(102 및 106)의 안에 논리 (112, 116)의 실패는 컴퓨터 시스템(100)이 1.4 GHz에서 동작하는 설계 목표에 부합하지 않도록 야기할 수 있다.
또한, 도 1은 본 발명의 실시 예에 따라 클록 네트워크가 변경되거나 조절된 후에 컴퓨터 시스템(100)을 보여준다. 실시 예에 있어서, 버퍼들은 각 플립플롭에서 경험하는 클록 레이턴시를 증가(푸쉬) 혹은 감소(풀)하도록 클록 네트워크로부터 추가되거나 제거될 수 있다. 클록 레이턴시의 이러한 조절은, 다르게 말해서, 조합 논리들의 모두가 엄격한 714 ps 실행 시간에 종속되어 있다는 것을 의미한다. 대신에, 주어진 논리 부는 더 많은 시간(예, 814 ps 등) 혹은 더 적은 시간(예, 414 ps 등)을 가질 수 있다. 다른 도면들을 참조하면, 다양한 실시 예들에서 클록 레이턴시를 조절하도록 적용된 기술은 좀 더 상세하고 자세하게 설명될 것이다. 도시된 실시 예에서, 개념만이 소개된다.
도시된 실시 예에서, 플립플롭(102)에 인가되는 클록 신호는 2개의 버퍼들(142, 152)을 추가함으로써 100 ps 지연될 수 있다. 이는 논리(112)를 위한 실행 시간의 끝을 100 ps 바깥에서, 완료하기 위한 814 ps를 주면서 푸쉬할 수 있다. 이는 0 ps의 프론트 슬랙을 가진 플립플롭(102)이 되게 할 수 있다.
하지만, 플립플롭(102)에 대한 클록을 푸싱하는 것은 분리되지 않는다. 또한, 이는 다음 파이프라인 단계 혹은 조합 논리(114)의 시작은 100 ps 를 푸쉬된다는 의미이다. 다행스럽게도, 논리(114)는 완료시키는데 단지 414 ps를 필요로 하고, 그리고 지연은 문제되지 않는다. 버퍼들(142, 152)의 추가는 +200 ps의 프론트 슬랙을 플립플롭(104)에 줄 수 있다.
하지만, 논리(112)는, 도시된 실시 예에서 유일한 문제가 아닐 수 있다. 또한, 조합 논리(115)는 764 ps의 계산 시간을 가진 목표 714 ps 주기를 초과할 수 있다. 다양한 실시 예들에서, 이는 논리(116)의 약간의 변형을 제거하도록 플립플롭(104)에 대한 사용 가능한 초과 슬랙의 사용을 만드는데 바람직할 수 있다.
이러한 실시 예에서, 플립플롭(104)에 대한 클록 레이턴시는 감소되거나 풀될 수 있다. 일 실시 예에서, 버퍼(134)는 클록 네트워크로부터 제거될 수 있다. 이는, 논리(116)가 50 ps 혹은 전체 시간이 764 ps까지 감소하도록 계산을 수행하는 시간의 양을 야기할 수 있다. 이러한 실시 예에서, 플립플롭(104)는 +150 ps의 프론트 슬랙 및 0 ps의 백 슬랙을 가질 수 있다. 유사하게, 플립플롭(106)(클록 레이턴시가 푸쉬되거나 풀되지 않는)은 0 ps의 프론트 슬랙과 0 ps의 백 슬랙을 가질 수 있다.
다른 실시 예에서, 논리(118)가 714 ps 보다 적은 처리 시간을 가졌다면, 플립플롭(106)의 클록 레이턴시는 논리(116)를 수용하도록 푸쉬될 수 있다. 이러한 실시 예에서, 플립플롭(104)에 대한 클록 레이턴시는 풀되지 않을 수 있다. 상술 된 것은 본 발명이 제한되지 않는 한 가지 실시 예라고 이해되어야 할 것이다.
도시된 실시 예에서, 클록 신호(131) 및 버퍼들(132, 134, 136, 1142, 및 152)는 클록 메쉬 네트워크의 일부일 수 있다. 일반적으로, 클록 메쉬 네트워크는 메쉬와 플립플롭들 혹은 엔드 포인트들 사이에 매우 얕은 논리 깊이들에 의해 특성화된다. 대게 싱글 버퍼(예, 버퍼(132) 등) 혹은 클록 게이트는 전기적 싱크들 혹은 엔드 포인트들을 직접 구동한다. 이는, 클록 루트로부터 유기적인 트리 구조에 의해 특성화되는 일반적인 클록 트리와 비교한다. 여기서 일반적인 클록 트리는 설계에서 싱크들 각각으로 확장한다. 클록 트리 스킴에서, 버퍼 및 클록 게이팅 레벨들을 위하여 상대적으로 큰 깊이가 존재한다. 클록 메쉬 네트워크에서 엔드 포인트와 클록 신호(131)의 루트 소스 사이에 버퍼들의 개수에서 깊이의 이러한 부족은, 클록 스큐을 위한 기회들을, 특히 클록 레이턴시를 풀하기 위한 기회를 줄인다.
도시된 실시 예에서, 각 버퍼(예, 142, 134) 는 50 ps의 클록 신호로 지연을 야기할 수 있다. 다양한 실시 예들에서, 본 발명은 클록 스큐를 푸쉬하거나 풀하도록 양자화된 용량(quantized amounts)을 이용하여 동작하도록 구현될 수 있다. 이러한 실시 예에서, 단지 양자화된 용량(예, 814 ps, 764 ps)이 지시하는 목표 값에 가까운 값으로 조절될 뿐, 특수한 목표 값(예, 800 ps)으로 클록 레이턴시를 조절하는 것이 가능하지 않을 수 있다. 상술한 것은 본 발명이 제한되지 않는 실시 예들에 불과하다고 이해되어야 할 것이다.
도 2는 본 발명의 실시 예에 따른 컴퓨터 시스템(200)의 예시적인 실시 예를 보여주는 블록도이다. 도시된 실시 예에서, 집적 회로 설계 프로세스 동안에, 디지털 회로 모델(202)은 창조될 수 있다. 디지털 회로 모델(202)의 클록 스큐를 조절하는게 바람직하다. 컴퓨터 시스템(200)의 구성 요소들은 아래에 설명될 디지털 회로 모델(200)의 클록 스큐를 조절하도록 구현될 수 있다.
도시된 실시 예에서, 컴퓨터 시스템(200)은 좀 더 엄격한 타이밍 평가 기술들에 대한 물리 회로 합성 혹은 디지털 회로 모델(202)의 실시하기 전에, 디지털 회로 모델(202)을 조절하도록 구현될 수 있다. 다른 실시 예에서, 컴퓨터 시스템(200)은 설계 프로세스에서 늦게 (예, 마지막 타이밍과 같아 늦게) 디지털 회로 모델(202) (혹은 변형된 디지털 회로 모델(208))의 클록 스큐를 조절하도록 구현될 수 있다. 다양한 실시 예들에서, 설계 프로세스에서 컴퓨터 시스템(200)을 통하여 디지털 회로 모델(202)을 동작시킴으로써, 전력 대 성능을 트레이드 오프 하면서 가장 중요한 경로를 고정하도록 가장 적절한 타이밍이 사용될 수 있다. 상술한 것은 본 발명이 제한되지 않는 실시 예에 불과하다고 이해되어야 할 것이다.
실시 예에서, 컴퓨터 시스템(200)은 디지털 회로 모델(202)을 수신할 수 있다. 다양한 실시 예에서, 디지털 회로 모델(202)은 물리 합성 혹은 레이아웃 모델을 포함할 수 있다. 다른 실시 예에서, 디지털 회로 모델(202)은 설계 프로세스에 2 개의 끝단에 중간 회로의 대표를 포함할 수 있다. 상술한 것은 본 발명이 제한되지 않는 실시 예들에 불과하다고 이해되어야 할 것이다.
다양한 실시 예에서, 디지털 회로 모델(202)은 블록 메쉬(204)(혹은 그것의 대표)를 포함할 수 있다. 이러한 실시 예에서, 클록 메쉬(204)는 논리 회로들(206)에 대한 클록 신호를 제공하도록 구현될 수 있다. 이러한 실시 예에서, 클록 신호는 상술된 바와 같이 클록 레이턴시의 각 용량을 갖는 각 논리 회로(206)에 도착할 수 있다.
다양한 실시 예에서, 디지털 회로 모델(206)은 상술된 바와 같이 복수의 논리 회로들(206)을 포함할 수 있다. 실시 예들에서, 각 논리 회로(206)는 각 논리 회로(206)의 하나 이상의 엔드 포인트들에 대한 클록 신호에 의해 적어도 부분적으로 제어될 수 있다. 이런 맥락에서, 엔드 포인트는 플립플롭, 래치, 혹은 다른 레지스터 혹은 상태 장치(state device) (예, 도 1의 플립플롭들, 메모리들, 등)을 포함할 수 있다. 다양한 실시 예들에서, 엔드 포인트는 파이프라인 단계의 시작과 끝을 마크할 수 있다.
실시 예에서, 컴퓨터 시스템(200)은 디지털 회로 수신기(210)를 포함할 수 있다. 디지털 회로 수신기(210)는 디지털 회로 모델(202)을 수신하도록 구현될 수 있다. 또한, 다양한 실시 예들에서, 디지털 회로 수신기(210)는 하나 이상의 파라미터들 혹은 클록 레이턴시 스케쥴러들(211)을 수신하도록 구현될 수 있다. 실시 예들에서, 이러한 파라미터들(211)은 푸쉬 스텝 크기, 풀 스텝 크기, 최대 푸쉬 한계 값 혹은 문턱 값, 최대 풀 한계 값 혹은 문턱 값, 및 슬랙 문턱 값 중 하나 이상을 포함할 수 있다. 다양한 실시 예들에서, 이러한 파라미터들(211)은 다른 구성 요소(미도시)로 입력될 수 있다. 다른 구성 요소는, 클록 레이턴시 스케쥴러들이 디지털 회로 수신기(210)로 입력하도록 발현시킬 수 있다. 이러한 실시 예에서, 컴퓨터 시스템(200)의 다른 구성요소들의 기능을 수행하는 것은 변조되거나 제한될 수 있다. 예를 들어, 푸쉬 스텝 크기는 풀 스텝 크기 파리미터처럼 주어진 엔드 포인트를 위하여 클록 레이턴시를 푸쉬하도록 시도할 때 구현되는 양자화의 레벨 혹은 용량을 지시할 수 있다. 상술한 것은 본 발명이 제한되지 않는 실시 예들에 불과하다고 이해되어야 할 것이다.
실시 예들에서, 컴퓨터 시스템(200)은 스큐 분석기(212)를 포함할 수 있다. 다양한 실시 예들에서, 스큐 분석기(212)는 집적화된 클록 게이터 및 공통 활성 신호에 의해 구동되는 클록 신호의 공통 버전에 의해 제어될 수 있는 엔드 포인트들의 클러스터를 식별하도록 구현될 수 있다. 이러한 실시 예에서, 클러스터의 클록 레이턴시는 전체적으로 조절 될 수 있다. 아래서 설명된 바와 같이, 클러스터의 클록 레이턴시가 조절되면, 추가로 클록 레이턴시 튜닝은 클러스터의 개별 엔드 포인트들에 발생될 수 있다. 실시 예들에서, 스큐 분석기(212)는 각 클러스터들로 엔드 포인트들을 그룹화시키도록 구현될 수 있다. 다른 실시 예에서, 클러스터들은 디지털 회로 모델(202)에 사전에 정의되거나 결정될 수 있다. 그리고 스큐 분석기(212)는 디지털 회로 모델(202)로부터 정보를 간단하게 꺼낼 수 있다. 다른 실시 예에서, 스큐 분석기(212)는 임의의 사전에 정의된 클러스터들을 시작 포인트로 사용할 수 있고, 추가 분석 후에 이러한 클러스터들을 재 정의할 수 있다.
다른 실시 예에서, 스큐 분석기(212)는 다양한 클러스터들의 각 엔드 포인트에 연관된 슬랙의 양을 판별하도록 구현될 수 있다. 실시 예에서, 이는 각 엔드 포인트의 프론트 슬랙과 백 슬랙 모두를 판별하는 것을 포함할 수 있다.
실시 예들에서, 스큐 분석기(212)는 컴퓨터 시스템(200)을 통하여 클록 패스 동안에 임의의 이전 푸쉬 및/혹 풀 소자들을 디지털 회로 모델(202)로 소개하는 것을 제거하도록 구현될 수 있다. 실시 예에서, 이는 디폴트 혹은 베이스 버전에 임의 집적화된 클록 게이터(ICGs) 및/혹 스큐 버퍼들(SBs)을 재설정하는 것을 포함할 수 있다. 특수한 실시 예에서, IGCs는 디폴트 값(예, 도 3a의 ICG 314)으로 재설정될 수 있다. 상술한 것은 본 발명이 제한되지 않는 실시 예에 불과하다고 이해되어야 할 것이다.
도시된 실시 예에서, 컴퓨터 시스템(200)은 클록 게이터 조절기(214)를 포함할 수 있다. 다양한 실시 예들에서, 클록 게이터 조절기(214)는 공통 게이터 셀을 디지털 회로 모델(202)로 조절하도록 구현될 수 있다. 실시 예들에서, 공통 게이터 셀은 클러스터를 위하여 공통 레이턴시를 설정할 수 있다. 다양한 실시 예들에서, 클록 게이터 셀의 변종은 클러스터에 연관된 최소화된 공통 스큐 스케쥴에 근거로 하여 선택될 수 있다. 이러한 실시 예에서, 클록 게이터 조절기(214)는 아래에 설명된 각 클러스터에 연관된 최소화된 공통 스큐를 조절하도록 구현될 수 있다.
다양한 실시 예들에서, 클록 게이터 조절기(214)는 ICGs의 라이브러리(282)를 채용할 수 있다. 이러한 실시 예들에서, ICGs 라이브러리(282)는 ICG 셀들을 포함할 수 있다. 도시된 실시 예에서, ICG 변종들의 각각은 동일한 물리 풋프린트(footprint)(예, 길이, 폭, 핀 위치들, 메탈 블록케이지들, 등) 하지만 서로 다른 콘텐츠들과 서로 다른 타이밍을 가진다. 이러한 실시 예에서, 하나의 변종은 디지털 회로 모델(202)의 물리 레이아웃의 방해 없이 다른 변종으로 교환되거나 교체될 수 있다. 이러한 실시 예에서, 컴퓨터 시스템(200)에 의해 출력하는 디지털 회로 모델(208)은 ICG 변종들에서 변화 때문에, 설계 프로세스의 물리 합성 혹은 레이아웃 부분을 통하여 패스하지 않도록 해야 한다. 이러한 실시 예에서, 컴퓨터 시스템(200)은, 최소의 방해를 갖도록 구현된 설계의 모든 단계에서 디지털 회로 모델(202)(심지어 클록 스큐 스케쥴 조절들의 큰 용량)의 타이밍 조절들을 수용할 수 있다.
다양한 실시 예들에서, 클록 게이터 회로는 추가로 클록 신호를 위한 전원 및 지연을 제공하기 위하여 클록 신호를 턴오프하거나 게이트하는 회로이다. 수많은 집적 회로들은, 칩의 다양한 부분들이 필요하지 않거나 사용하지 않을 때, 이 부분들에 클록을 턴오프시킴으로써 다양한 저전력 모드들에 도달한다. 예를 들어, 만일 집적 회로가 플로팅 포인트 계산들을 수행하지 않는다면, 집적 회로의 플로팅 포인트 유닛(FPU)은 임시적으로 턴오프될 수 있다. 플로팅 포인트 인스트럭션이 집적회로에 의해 검출될 때, FPU의 클록은 켜지고, FPU는 정상 동작할 것이다. 상술한 것은 본 발명이 제한되지 않는 실시 예에 불과하다고 이해되어야 할 것이다.
아래에서 상술된 바와 같이, 활성화 신호는 클러스터의 클록 신호를 턴오프(혹은 반대로 턴온) 시키기 위하여 ICG로 전송될 수 있다. 도시된 실시 예에서, 저전력 튜너(218)는 각 활성화 신호의 타이밍에 근거로 하여 ICG 변종의 선택을 조절하도록 구현될 수 있다. 다른 실시 예에서, ICG 셀의 활성 지연된 변종의 선택은 클록 게이터 조절기(214)에 의해 이루어질 수 있다. 상술한 것은 본 발명이 제한되지 않는 실시 예들에 불과하다고 이해되어야 할 것이다.
상술된 바와 같이, 라이브러리(282)는 ICG 변종들을 포함할 수 있다. 도 3a 및 도 3b은 ICGs 변종들의 두 가지 실시 예들을 보여준다. 도 3a 및 도 3b은 본 발명이 제한되지 않는 실시 예들에 불과하다고 이해되어야 할 것이다. 추가로, 도 3a 및 도 3b에 도시된 회로들은 단지 개념적인 것이고, 당업자는 이러한 개념적 설계들을 어떻게 구현할지에 대하여 이해하고 있다고 이해되어야 할 것이다. 추가로 ICG 변종들의 설명 혹은 적어도 ICG 변종들의 기본적인 간단한 버전은 도 3a에 근거로 하여 아래에서 설명될 것이다.
도 3a는 본 발명의 실시 예에 따른 회로들(300)의 실시 예를 보여주는 블록도이다. 도시된 실시 예에서, ICG의 9개의 변종들이 있다. 상술한 것은 본 발명이 제한되지 않는 실시 예들에 불과하다고 이해되어야 할 것이다.
도시된 실시 예에서, ICG 변종들(예, ICG 310, 311, 등) 각각은 집적화된 클록 게이터 부분(CGP, 350)을 포함할 수 있다. 이러한 실시 예에서, CGP(350)는 클록 신호를 게이트 하거나 턴오프하도록 구현된 회로(예, AND 게이트 등)을 포함할 수 있고, 이는 CGP(350)를 넘어 전파되는 것을 막을 수 있다.
다양한 실시 예들에서, 클록이 게이트 되지 않는 디지털 회로의 부분들에 대하여, CGP(350)는 정상 활성화 신호를 수신할 수 있다. 다른 실시 예에서, CGP(350)는 이러한 변종들에 포함되지 않을 수 있거나, 스큐 버퍼들(예, 도 3c의 스큐 버퍼 변종들)에 의해 교체될 수 있다. 상술한 것은 본 발명이 제한되지 않는 실시 예들에 불과하다고 이해되어야 할 것이다.
도시된 실시 예에서, ICG 변종들 각각은 드라이버 부분(354)을 포함할 수 있다. 이러한 실시 예에서, 드라이버 부분(354)은 연관된 엔드 포인트들을 구동하기 위하여 적합한 전력 양를 갖는 클록 신호를 제공하도록 구현될 수 있다.
도시된 실시 예에서, 다양한 ICG 변종들은 0부터 8개의 지연 버퍼들(352) 사이에 포함될 수 있다. 이러한 실시 예에서, 각 지연 버퍼(352)는 사전에 정의된 양에 의해 클록 신호를 지연시키도록 구현될 수 있다. 다양한 실시 예들에서, 사전에 정의된 양은 푸쉬 스텝 값 혹은 풀 스텝 값(예, 50 ps, 15 ps 등)일 수 있다. 상술된 바와 같이, 도 2의 클록 게이터 조절기(214)는 ICG 변종에 의해 제공된 지연의 목표량에 근거로 하여 도시된 변종들(혹은 주어진 실시 예를 위한 유사한 변종) 중 어느 하나를 선택하도록 구현될 수 있다. 예를 들어, 큰 지연 양이 목표가 되면, 지연 버퍼들(352)의 더 많은 개수를 갖는 ICG 변종이 선택될 수 있다. 유사하게 작은 지연 양이 목표가 되면, 지연 버퍼들(352)의 더 적은 개수를 갖는 ICG 변종이 선택될 수 있다.
도시된 실시 예에서, 변종(310)은 지연 버퍼(352)가 없거나 제로일 수 있다(그리고 지연 혹은 클록 레이턴시의 적어도 일부를 제공한다). 변종(311)은 1 개의 지연 버퍼(352)를 포함할 수 있다. 변종(313)은 3 개의 지연 버퍼들(352)을 포함할 수 있다. 변종(314)은 3개의 지연 버퍼들(352)을 포함할 수 있다. 변종(315)은 5개의 지연 버퍼들(352)을 포함할 수 있다. 변종(316()은 8개의 지연 버퍼들(352)을 포함할 수 있다. 상술한 것은 본 발명이 제한되지 않는 실시 예들에 불과하다고 이해되어야 할 것이다.
도시된 실시 예에서, 변종(314)은 디폴트이거나 기본 변종일 수 있다. 이러한 실시 예에서, 도 2의 스큐 분석기(212)는 ICGs을 디폴트 변종으로 재설정할 때, 4개의 지연 변종(314)이 선택될 수 있다.
이러한 실시 예에서, 도 2의 클록 게이터 조절기(214)가 주어진 클러스터의 클록 레이턴시를 증가 혹은 푸쉬하길 원할 때, 4 개의 지연 변종(314) 보다 더 큰 지연을 가진 변종들(예, 변종들(315, 316, 317, 혹은 318)) 중 하나를 선택할 수 있다. 반대로, 도 2의 클록 게이터 조절기(214)가 주어진 클러스터의 클록 레이턴시를 감소 혹은 풀하길 원할 때, 4개의 지연 변종(314) 보다 더 작은 지연을 가진 변종들(예, 변종들(313, 312, 311, 혹은 310)) 중 하나를 선택할 수 있다. 상술한 것은 본 발명이 제한되지 않는 실시 예에 불과하다고 이해되어야 할 것이다.
도시된 실시 예에서, 상술된 바와 같이, ICG의 모든 변종들(예, 310, 311, 312 등)은 동일한 물리 풋프린트를 가질 수 있다. 이러한 실시 예에서, 변종들은 레이아웃 관점으로부터 내부적으로 교환될 수 있다. 이러한 실시 예들에서, 8개의 지연 버퍼들(352)에서 사용된 것보다 적은 변종들은(예, 변종 3) 미사용 공간(빈 블록에 의해 도시된)을 포함할 수 있다. 다양한 실시 예에서, 본 발명은 일치된 물리 풋프린트에 의해 제공된 모듈화를 위하여 물리 공간을 거래하는 것으로 간주될 수 있다. 상술된 바와 같이, 이는, 최소의 방해로 구현될 모든 설계 단계에서 디지털 회로 모델의 클록 레이턴시들을 변화시키는 것을 편리하게 할 수 있다.
도 2를 다시 참조하면, 클록 게이터 조절기(214)는 공통 스큐 계산기(215)를 포함할 수 있다. 다양한 실시 예들에서, 공통 스큐 계산기(215)는 주어진 클러스터를 위한 공통 클록 스큐의 양을 계산하거나 판별하도록 구현될 수 있다. 실시 예들에서, 이는 클러스터를 위해 바람직한 총 클록 스큐의 최대 용량을 판별하는 것을 포함할 수 있다. 공통 클록 스큐의 개념은 도 4에서 설명될 것이다.
도 4는 본 발명의 실시 예에 따른 컴퓨터 시스템(400)의 예시적인 실시 예들을 보여주는 블록도이다. 다양한 실시 예들에서, 컴퓨터 시스템(400)은 ICG(예, ICG (414) 등) 및 3개의 엔드 포인트들 혹은 플립플롭들(422, 424, 426)을 포함할 수 있다. 아래에 설명한 것은 본 발명이 제한되지 않는 실시 예들에 불과하다고 이해되어야 할 것이다.
실시 예(402)는 클러스터를 위한 클록 레이턴시를 푸쉬하거나 증가시키는데 사용되는 공통 클록 스큐의 실시 예를 도시한다. 오리지널 상태에서, 컴퓨터 시스템(400)은 스큐 버퍼들을 포함하지 않고, 4개의 지연 버퍼들(예, 도 3a의 ICG (314))을 가진 기본 혹은 디폴트 ICG #4 (414)를 포함할 수 있다. 다양한 실시 예들에서, 컴퓨터 시스템(400)은 더미 혹은 미지연 스큐 버퍼(미도시)를 포함할 수 있다. 더미 혹은 미지연 스큐 버퍼는 하나의 스큐 버퍼를 위하여 회로 레이아웃에서 공간을 차지한다. 도시된 실시 예에서, 엔드 포인트(422)는 +3 양자 스텝들(예, 각 양자 스텝은 15 ps 이라면 45 ps)의 스큐 스케쥴을 포함할 수 있다. 엔드 포인트(424)는 +5 양자 스텝들의 스큐 스케쥴을 포함할 수 있다. 엔드 포인트(426)는 +9 양자 스텝들의 스큐 스케쥴을 포함할 수 있다. 다양한 실시 예들에서, 각 양자 스텝은 하나의 지연 버퍼에 의해 발생되는 지연 양(예, 15 ps, 20 ps 등)에 연관될 수 있다.
실시 예(402)의 도시된 실시 예에서, 클록 게이터 조절기(412)는, 각 엔드 포인트가 적어도 3 스텝들의 스큐 스케쥴과 연관되었는 지를 판별할 수 있다. 이러한 실시 예에서, 이는, 음의 슬랙을 발생하는 모든 엔드 포인트를 야기하지 않는 클러스터를 위하여 공통 푸쉬의 최대 용량이 3 스텝들이다는 것을 의미한다. 다른 실시 예에서, 공통 클록 푸쉬 스텝 양은 음의 슬랙에 연관되도록 하나 이상의 엔드 포인트들을 야기하는데 충분히 클 수 있지만, 그 예는 간단하다.
이러한 실시 예에서, 클록 게이터 조절기는 4-지연 ICG(414)을 7-지연 ICG(417)로 교체할 수 있다. 이는 클러스터가 3 스텝들을 푸쉬되도록 야기할 수 있다. 이는 엔드 포인트(422)가 0의 나머지 스큐 스케쥴을 갖고, 엔드 포인트(424)가 +2의 나머지 스큐 스케쥴을 갖고, 그리고 엔드 포인트(426)이 +6의 나머지 스큐 스케쥴을 갖도록 야기할 수 있다.
유사하게, 아래에서 설명된 바와 같이, 스큐 버퍼 조절기(예, 도 2의 스큐 버퍼 조절기(216))는 클러스터에 스큐 버퍼를 추가할 수 있다. 2-지연 스큐 버퍼(432)는 ICG(417)과 엔드 포인트(424) 사이에 위치할 수 있다. 클러스터-와이드 ICG(417)에 의해 제공된 추가적인 3 스텝들과 2-지연 SB(스큐 버퍼, 432) 사이에, 엔드 포인트(424)는 목표된 5 스텝들을 푸쉬될 수 있다. 6-지연 스큐 버퍼(436)는 ICG(417)과 엔드 포인트(426) 사이에 위치할 수 있다. 클러스터-와이드 ICG(417)에 의해 제공된 추가적인 3 스텝들과 6-지연 SB(스큐 버퍼, 436) 사이에, 엔드 포인트(426)는 목표된 9 스텝들을 푸쉬될 수 있다. 실시 예들에서, 라이브러리는 충분히 높은 지연을 가진 스큐 버퍼를 포함하지 않을 수 있다. 이러한 실시 예에서, 스큐 버퍼들은 채용될 수 있다(예, 2-지연 SB 및 4-지연 SB, 등). 상술한 것은 본 발명이 제한되지 않는 실시 예에 불과하다고 이해되어야 할 것이다.
실시 예(404)는 클러스터를 위하여 클록 레이턴시를 풀 혹은 감소하도록 사용되는 공동 클록 스큐에 대한 실시 예를 도시한다. 오리지널 상태에서, 컴퓨터 시스템(400)은 스큐 버퍼들을 포함하지 않고, 4-지연 버퍼들(예, 도 3a의 ICG (314))를 가진 기본 혹은 디폴트 ICG #4 (414)를 포함할 수 있다. 도시된 실시 예에서, 엔드 포인트(422)는 -2 양자 스텝들의 스큐 스케쥴을 포함할 수 있다. 엔드 포인트(424)는 -3 양자 스텝들의 스큐 스케쥴을 포함할 수 있다. 엔드 포인트(426)는 +4 양자 스텝들의 스큐 스케쥴을 포함할 수 있다.
실시 예 부분(404)의 도시된 실시 예에서, 클록 게이터 조절기는, 각 엔드 포인트가 적어도 -3 스텝들의 공통 스큐 스케쥴에 연관되었는 지를 판별할 수 있다. 이러한 실시 예에서, 이는, 모든 엔드 포인트가 음의 슬랙을 발생하지 않도록 푸쉬될 수 있는 최대량이 3 스텝들이다는 것을 의미한다. 다른 실시 예에서, 클록 게이터 조절기는 4-지연 ICG(414)를 1-지연 ICG(411)로 교체할 수 있다. 이는, 클러스터가 3 스텝들에 의해 풀 되도록 야기할 수 있다. 이는 엔드 포인트가 +1의 나머지 스큐 스케쥴을 갖고, 엔드 포인트(424)가 0의 나머지 스큐 스케쥴을 갖고, 그리고 엔드 포인트(426)이 +7의 나머지 스큐 스케쥴을 갖는다는 것을 의미한다.
유사하게, 아래에서 설명된 바와 같이, 스큐 버퍼 조절기(예, 도 2의 스큐 버퍼 조절기(216))는 클러스터에 스큐 버퍼들을 추가할 수 있다. 1-지연 스큐 버퍼(431)는 ICG(411)와 엔드 포인트(422) 사이에 위치할 수 있다. 클러스터-와이드 ICG(411)에 의해 제거되고나 풀 되는 3 스텝들과 1-지연 SB(432) 사이에, 엔드 포인트(422)는 목표된 2 스텝들을 풀될 수 있다. 7-지연 스큐 버퍼(437)는 ICG(411)과 엔드 포인트(426) 사이에 위치할 수 있다. 클러스터-와이드 ICG(411)에 의해 제거되거나 풀 되는 3 스텝들과 추가된 7-지연 SB(437) 사이에, 엔드 포인트(426)는 목표된 4 스텝들을 푸쉬될 수 있다. 상술한 것은 본 발명이 제한되지 않는 실시 예에 불과하다고 이해되어야 할 것이다.
실시 예에서, 클러스터를 위한 공통 푸쉬/풀 스케쥴 용량을 판별하는 기술은 도 4에 설명된 기술보다 좀 더 복잡할 수 있다. 아래에 설명한 것은 본 발명이 제한되지 않는 도시된 실시 예에 불과하다고 이해되어야 할 것이다.
좀 더 복잡한 실시 예에서, 최대 공통 푸쉬/풀 스케쥴은 누적, 집계 이득 혹은 양의 슬랙의 용량이 최소화되기 위하여 푸쉬/풀 스케쥴 스텝들의 최대 용량을 판별하는 것을 포함할 수 있다. 이러한 실시 예에서, 이는, 클러스터의 각 가능한 푸쉬/풀 스케쥴 스텝(예, 1 스텝, 2 스텝들, 3 스텝들 등)을 위하여, 이러한 공통 푸쉬/풀 스케쥴의 채용 때문에 클러스터의 엔드 포인트에 인가되는 모든 효율적으로 이용 가능한 스큐 스케쥴 지연을 추가하는 것과, 클러스터의 엔드 포인트들에 의해 발생되는 모든 음의 슬랙을 빼는 것을 포함할 수 있다. 각 스텝 용량의 누적 이득의 용량이 계산될 때, 누적 이득이 가장 크거나 최대일 때 스텝 용량이 판별될 수 있다. 이 스텝 용량(혹은 좀 더 일반적으로, 푸쉬/풀 스케쥴 용량)은 최대 공통 푸쉬/풀 스케쥴을 간주될 수 있다.
공식으로 진술된 바와 같이, 누적 이득은 실시 예에서 다음과 같다.
Figure 112015103892430-pat00001
여기서 "k"는, "n" 엔드 포인트들 결과를 가진 클러스터의 각 엔드 포인트이다.
실시 예에 있어서, 풀-전용 엔드 포인트들을 가진 클러스터 혹은 푸쉬/풀 엔드 포인트들의 혼합의 경우에서 있어서, 스큐 버퍼들은 목표된 ANS(allowed negative slack)을 만족하도록 추가될 수 있다. 다른 실시 예에서, 스큐 버퍼들의 개수 혹은 지연은 ANS 제약의 사용자 특수 릴렉세이션(relaxation) 때문에 줄어들거나 트레이드 오프 될 수 있다. 상술한 것은 본 발명이 제한되지 않는 실시 예들에 불과하다고 이해되어야 할 것이다.
도 2를 다시 참조하면, 도시된 실시 예에서, 컴퓨터 시스템(200)은 스큐 버퍼 조절기(216)를 포함할 수 있다. 다양한 실시 예에서, 클록 버퍼 조절기(214)가 클러스터를 위하여 공통 푸쉬/풀 스케쥴 용량을 설정하거나, 모든 ICGs에 삽입되거나 교체될 때, 디지털 회로 모델(202)은 스큐 버퍼 조절기(216)에 의해 처리될 수 있다. 실시 예들에서, 스큐 버퍼 조절기(216)는, 클러스터의 각 엔드 포인트를 위하여, 하나 이상의 스큐 버퍼들을 디지털 회로 모델(202)로 삽입하도록 구현될 수 있다.
이러한 실시 예에서, 스큐 버퍼의 변종은, 상술된 바와 같이, 각 엔드 포인트에 연관된 스큐 스케쥴과 클러스터를 위하여 계산된 공통 푸쉬/풀 용량 사이의 차이에 근거로 하여 각 엔드 포인트를 위해 선택될 수 있다. 다양한 실시 예에서, 변종들은 스큐 버퍼(SB) 라이브러리(284)로부터 선택될 수 있다.
상술된 바와 같이, 라이브러리(284)는 복수의 SB 변종들을 포함할 수 있다. 도 3c는 이러한 SB 변종들의 가능한 실시 예들을 보여준다. 도 3c는 본 발명이 제한되지 않는 실시 예에 불과하다고 이해되어야 할 것이다. 추가로, 도 3c에 도시된 회로들은 개념적인 것으로, 당업자는 이러한 개념 설계들을 구현하도록 이해될 것이다. 추가로 SB 변종들, 혹은 SB 변종들의 가장 기본적인 버전은 도 3c을 근거로 하여 설명될 것이다.
도 3c는 본 발명의 실시 예에 따른 회로들(304)의 실시 예를 보여주는 블록도이다. 도시된 실시 예에서, SB의 8개의 변종들이 존재한다. 상술한 것은, 본 발명이 제한되지 않는 실시 예들에 불과하다고 이해되어야 할 것이다.
도시된 실시 예들에서, SB 변종들 각각은 드라이버 부분(394)을 포함할 수 있다. 이러한 실시 예에서, 드라이버 부분(394)은 연관된 엔드 포인트들을 구동하는 적절한 전력량을 갖는 클록 신호를 제공하도록 구현될 수 있다. 실시 예들에서, 드라이버 부분(394)은 도 3a 및 도 3b의 드라이버 부분(354)과 동일할 수 있다.
도시된 실시 예들에서, 다양한 SB 변종들은 하나부터 8개의 지연 버퍼들(392) 사이에 포함할 수 있다. 다른 실시 예들에서, 제로-지연 변종은 포함될 수 있다. 이러한 실시 예에서, 각 지연 버퍼(392)는 사전에 정의된 용량에 의해 클록 신호를 지연하도록 구현될 수 있다. 다양한 실시 예들에서, 사전에 정의된 용량은 푸쉬 스텝 값 혹은 풀 스텝 값(예, 50 ps, 15 ps 등)일 수 있다. 상술된 바와 같이, 도 2의 스큐 버퍼 조절기(216)는 선택된 ICG 변종에 의해 제공된 지연의 목표량과 각 엔드 포인트에 연관된 스큐에 근거로 하여 도시된 변종들 중 어느 하나(혹, 주어진 실시 예들을 위한 유사한 변종)를 선택하도록 구현될 수 있다.
도시된 실시 예에서, 변종(381)은 1-지연 버퍼(392)를 포함할 수 있다(그리고, 지연 혹은 클록 스큐의 적은 용량을 제공하는). 변종(382)은 2-지연 버퍼들(392)을 포함할 수 있다. 변종(383)은 3-지연 버퍼들(392)을 포함할 수 있다. 변종(384)은 4-지연 버퍼들(392)을 포함할 수 있다. 변종(385)은 5-지연 버퍼들(392)을 포함할 수 있다. 변종(386)은 6-지연 버퍼들(392)을 포함할 수 있다. 변종(387)은 7-지연 버퍼들(392)을 포함할 수 있다. 변종(388)은 8-지연 버퍼들(392)을 포함할 수 있다. 상술한 것은 본 발명이 제한되지 않는 실시 예들에 불과하다고 이해되어야 할 것이다.
도시된 실시 예에서, 제로-지연 버퍼들(392)을 갖는 스큐 버퍼는 도시되지 않는다. 실시 예들에서, 스큐 버퍼들의 라이브러리는 이러한 스큐 버퍼 변종을 포함할 수 있다. 이 제로-지연 변종은 CGP(350)이 없는 ICG(예, 도 3a의 ICG(310))의 제로-이젼 변종과 유사하다. 이러한 실시 예들에서, 제로-지연 스큐 버퍼는 디폴트 혹은 기본 스큐 버퍼일 수 있다. 이로써 모든 엔드 포인트들은 스큐 버퍼 및 좀 더 확실하게는, 스큐 버퍼의 다른 변종(예, SB 변종들(381, 385, 388 등)과 같은 동일한 물리 풋프린트를 가진 셀에 연관될 수 있다. 이러한 실시 예에서, 설계 프로세스의 레이아웃 부분은 스큐 버퍼를 위해 차지할 수 있다. 그러므로, 스큐 버퍼의 변종들은 회로 레이아웃의 영향 없이 교체될 수 있다. 하지만, 대부분의 실시 예에서, "더미" 혹은 플레이스-홀더 SB의 추가는 회로 레이아웃의 영향 없이 스큐 버퍼들을 교체하는데 유익하게 하기 위한 면적의 초과 낭비를 보일 수도 있다.
상술된 바와 같이, 다양한 실시 예에서, 스큐 버퍼의 각 변종은 동일한 풋프린트 혹은 크기(예, 길이, 폭, 핀 위치들, 블록케이지들, 등)을 포함할 수 있다. 이러한 실시 예에서, 쉽게 교체 가능한 ICGs 및 SBs의 조합은, 가능한 클록 스큐들의 큰 용량이 최소의 방해를 갖는 설계 프로세스의 모든 단계에서 창조되거나 구현되도록 활성화 할 수 있다.
도 2를 다시 참조하면, 도시된 실시 예에서, 컴퓨터 시스템(200)은 저전력 튜너(218)를 포함할 수 있다. 다양한 실시 예들에서, 저전력 튜너(218)는 저전력 모드를 위한 클러스터를 조절하도록 구현될 수 있다.
상술된 바와 같이, 클록 신호는 활성화 신호를 통하여 클러스터를(혹은 좀 더 일반적으로 디지털 회로의 부분) 위하여 게이트되거나 턴오프될 수 있다. 실시 에들에서, 활성화 신호는 클록 신호와 비교하여 스큐될 수 있다. 이러한 실시 예에서, 타이밍은 활성화 신호가 존재할 수 있는 지를 이슈화한다. 예를 들어, 활성화 신호는 클록 신호를 게이트 하거나 턴 오프하도록 시간상 ICG에 도달하지 않을 수 있다.
이러한 실시 예에서, 저전력 튜너(218)는 ICG의 활성화 신호의 타이밍이 이슈를 가지는 클러스터들을 식별하도록 구현될 수 있다. 이러한 실시 예에서, 저전력 튜너(218)는 클록 게이터 조절기(214)에 의해 선택된 ICG 변종을 클록 스큐 등가 변종으로 교체하고, 또한 활성화 신호의 타이밍 이슈들을 계산하도록 구현될 수 있다. 다양한 실시 예들에서, 이는 이전에 토의된 클록 레이턴시를 영향주지 않을 수 있다(지연 버퍼들의 개수가 변화되지 않는다). 또한, 다양한 실시 예들에서, 저전력 튜너(218)는 ICG 라이브러리(282)를 사용할 수 있다.
다양한 실시 예들에서, ICG의 활성화 지연 변종은 클록 게이터 조절기(214)에 의해 선택된 변종과 같이 동일한 물리 풋프린트를 가질 수 있다. 이러한 실시 예에서, 이는 컴퓨터 시스템(200)이 상술 된 바와 같이, 설계 프로세스에서 클록 네트워크의 타이밍을 조절하도록 허용할 수 있다.
도 3b는 본 발명의 실시 예에 따른 회로들(302)의 실시 예를 보여주는 블록도이다. 도시된 실시 예에서, ICG 의 8개의 변종들이 존재한다. 도시된 실시 예에서, 이러한 ICGs 변종들은 ICG의 CGP에 도달하도록 활성화 신호를 위한 특별한 시간을 제공한다. 이러한 ICG의 활성화 지연 변종들은 클록 신호가 항상 적어도 하나의 지연 버퍼(352)를 패스하도록 야기한다(CGP350)에 게이팅되기 전에). 이러한 활성화 지연 변종들에 의한 전력은 그것들의 비활성 지연 변종들(예, 도 3a의 그것들) 보다 더 큰다. 상술한 것은 본 발명이 제한되지 않는 실시 예들에 불과하다고 이해되어야 할 것이다.
도시된 실시 예에서, ICG 변종들(ICG(331, 332) 등) 각각은 집적화된 클록 게이터 부분(CGP, 350)을 포함할 수 있다. 이러한 실시 예에서, CGP(350)는 클록 신호를 게이트하거나 턴오프하고, 그리고 CGP(350)을 넘어서도록 전파하는 것을 막도록 구현된 회로(예, AND 게이트 등)를 포함할 수 있다.
도 3a의 회로(300)의 변종들에서, CGP(350)는 클록 신호에 의해 도달된 제 1 소자로서 위치될 수 있다. 그러므로 활성화 신호는 클록 신호와 같이 동일한 시간에 ICG에 도달해야 한다. 반대로, 도 3b의 회로(302)에서, CGP(350)는 적어도 하나의 지연 버퍼(352) 이후에 위치한다. 그러므로 클록 신호는, 전력 비용에서 CGP(305)에 도달하도록 활성화 신호 엑스트라 설정 시간을 주면서, 지연될 것이다.
도시된 실시 예에서, CGP는 ICG(302)의 중간에 존재하는 것처럼 보인다. 상술한 것은 본 발명이 제한되지 않는 실시 예에 불과하다고 이해되어야 할 것이다. 다양한 실시 예들에서, 활성화 지연 ICGs의 시리즈들 혹은 집합들의 개수는 각 시리즈들 혹은 집합을 위해 존재할 수 있고, CGP(350)는 지연 버퍼들(352)의 서로 다른 사전에 결정된 개수 후에 위치할 수 있다. 예를 들어, 제 1 시리즈는, CGP(350)이 하나의 지연 버퍼(352) 후에 위치하도록 존재할 수 있고, 제 2 시리즈는, CGP(350)이 2 개의 지연 버퍼들(352) 후에 위치하도록 존재할 수 있다. 상술한 것은 본 발명이 제한되지 않는 실시 예들에 불과하다고 이해되어야 할 것이다.
도시된 실시 예에서, ICG 변종들 각각은, 드라이버 부분(354)을 포함할 수 있다. 이러한 실시 예에서, 드라이버 부분(354)은 연관된 엔드 포인트들을 구동하는 적절한 전력량을 갖는 클록 신호를 제공하도록 구현될 수 있다.
도시된 실시 예에서, 다양한 ICG 변종들은 하나부터 8개의 지연 버퍼들(352) 사이에 포함할 수 있다. 이러한 실시 예에서, 각 지연 버퍼(352)는 사전에 정의된 용량에 의해 클록 신호를 지연하도록 구현될 수 있다. 다양한 실시 예들에서, 사전에 정의된 용량은 풀쉬 스텝 값 혹은 풀 스텝 값(예, 50 ps, 15 ps 등)일 수 있다. 상술된 바와 같이, 도 2의 저전력 튜너(218)는 ICG 변종에 의해 제공된 지연의 목표량과 활성화 신호에 관련된 타이밍 문제에 근거로 하여 도시된 변종들 중 하나(혹은 유사하게 주어진 실시 예를 위한 유사한 변종)를 선택하도록 구현될 수 있다. 다른 실시 예에서, 도 2의 클록 게이터 조절기(214)는 활성화 지연 변종들(예, 도 3b의 그것들) 혹은 비활성화 지연 변종들(예, 도 3a의 그것들) 중 어느 하나를 선택하도록 구현될 수 있다. 분리된 저전력 튜너(218)는 시스템으로부터 제거될 수 있다. 상술한 것은 본 발명이 제한되지 않는 실시 예들에 불과하다고 이해되어야 할 것이다.
도시된 실시 예에서, 변종(331)은 1개의 지연 버퍼(352)를 포함할 수 있다. 변종(332)은 2개의 지연 버퍼들(352)을 포함할 수 있다. 변종(333)은 3개의 지연 버퍼들(352)을 포함할 수 있다. 변종(334)은, CGP(350) 이전에 모두 4개의 지연 버퍼들(352)을 포함할 수 있다. 변종(335)은, CGP(350) 이전에 4개만이고, 모두 5개의 지연 버퍼들(352)을 포함할 수 있다. 변종(336)은, CGP(350) 이전에 4개만이고, 모두 6개의 지연 버퍼들(352)을 포함할 수 있다. 변종(337)은, CGP(350) 이전에 4개만이고, 모두 7개의 지연 버퍼들(352)을 포함할 수 있다. 변종(338)은, CGP(350) 이전에 4개만이고, 모두 8개의 지연 버퍼들(352)을 포함할 수 있다. 상술한 것은 본 발명이 제한되지 않는 실시 예들에 불과하다고 이해되어야 할 것이다.
도 3a, 도 3b, 및 도 3c의 회로들(300, 302, 304)이 8개의 지연 버퍼들을 갖고 있을 때, ICGs 및 SBs 의 다른 실시 예들은 서로 다른 가능하거나 최대 지연 버퍼들의 개수를 포함할 수 있다. ICGs 및 SBs에 의해 제공된 지연 버퍼들의 최대 개수가 동일할 필요는 없다(예, 하나는 6 개의 지연 버퍼들로 구성된 ICGs와 10개의 지연 버퍼들로 구성된 SBs 일 수 있다). 추가로, 다른 변종들은 드라이버들(354 혹은 394)의 서로 다른 능력들을 포함할 수 있다. 상술한 것은 본 발명이 제한되지 않는 실시 예들에 불과하다고 이해되어야 할 것이다.
도 2를 다시 참조하면, 다양한 실시 예에서, 저전력 튜너(218)는 또한 회로에 의해 소비되는 전력량을 줄이도록 구현될 수 있다. 이러한 실시 예에서, 저전력 튜너(218)는 클러스터들 혹은 엔드 포인트들에 연관된 모든 ICGs 혹은 SBs을 찾도록 디지털 회로 모델(202)을 시험할 수 있다. 여기서 클러스터들과 엔드 포인트들은 음의 슬랙 이슈로 고정되도록 결합되지 않는 양의 슬랙을 가진다(예, 미사용 혹은 사용불가 스큐 혹은 슬랙). 실시 예에서, 저전력 튜너(218)는 ICG 혹은 SB를 변종으로 교체할 수 있으며, 이러한 변종은 동작 동안에 전력을 줄인다(예, 지연 버퍼들, 유사한 드라이버를 가진다). 이러한 실시 예에서, 이는, 클록 레이턴시에서 감소가 설계의 타이밍에 영향을 주지 않을 수 있을 때만 이루어진다. 실시 예에서, 이러한 교체는 만일 비사용 슬랙이 사전에 정의된 문턱 용량 아래일 때만 발생할 수 있다. 상술한 것은 본 발명이 제한되지 않는 실시 예들에 불과하다고 이해되어야 할 것이다.
다양한 실시 예들에서, 저전력 튜너(218)(혹, 만일 저전력 튜너(218)이 포함되지 않는 스큐 버퍼 조절기(216)의 출력은 새롭거나 혹은 조절된 디지털 회로 모델(208)일 수 있다. 이렇나 실시 예에서, 새롭거나 조절된 디지털 회로 모델(208)은 컴퓨터 시스템(208)의 출력을 고려될 수 있다.
다양한 실시 예에서, 이 새롭거나 혹은 조절된 디지털 회로 모델(208)은 다른 툴들에 의해 리뷰되거나 처리될 수 있다. 예를 들어, 정적 및/혹 동적 타이밍 평가기(230)는 모델에서 타이밍 분석을 좀 더 상세하게 그리고 정확하게 수행할 수 있다. 다른 실시 예에서, 물리 합성기(230)는 디지털 회로 모델(208)을 회로 물리 모델(292)로 변환시키도록 채용될 수 있다. 회로 물리 모델(292)은 디지털 회로를 물리 제조하거나 혹은 적어도 물리 레이아웃에 필요한 정보를 포함할 수 있다.
다양한 실시 예들에서, 이러한 다른 툴들(230)의 결과들은, 추가적인 패스를 위하여 혹은 변형된 디지털 회로 모델(202)을 재 평가하기 위하여 디지털 시스팀(200)을 통하여 피드백 될 수 있다. 예를 들어, 설계 프로세스 동안에, 디지털 회로 모델(202)의 부분은 변화될 수 있다(예, 결함 기능을 치유하기 위하여, 레이아웃 이슈를 고정하기 위하여, 타이밍 이슈를 고정하도록 조합 논리를 이동하기 위하여, 등). 이러한 새로운 디지털 회로 모델(202)은 컴퓨터 시스템(200)에 의해 재 평가될 수 있다. 상술된 바와 같이, ICGs 및 SBs가 동일한 물리 디맨젼들 혹은 풋프린트(적어도 그들 자신의 변종에 비교하여)를 포함하는 만큼, 컴퓨터 시스템(2000는 다른 툴들(230)에 의해 재평가하는 비용 없이 클록 스큐를 조절하도록 구현될 수 있다(예, 디지털 회로 모델(208)을 재 동기화함). 상술한 것은 본 발명이 제한되지 않은 실시 예들에 불과하다고 이해되어야 할 것이다.
도 5는 본 발명의 실시 예에 따른 기술에 대한 실시 예를 보여주는 흐름도이다. 다양한 실시 예들에서, 기술(500)은 도 1, 도 2, 도 4 혹은 도 6의 그것들과 같은 컴퓨터 시스템들에 의해 사용되거나 생산될 수 있다. 추가로, 기술(500)의 부분들은 도 3a, 도 3b, 혹은 도 3c의 그것과 같은 회로들에 의해 사용되거나 생산될 수 있다. 하지만, 상술한 것은 본 발명이 제한되지 않는 실시 예들에 불과하다고 이해되어야 할 것이다. 본 발명은 기술(500)에 도시된 순서 혹은 동작의 개수들에 의해 제한되지 않아야 한다고 이해되어여 할 것이다.
블록(502)은, 실시 예에서, 디지털 회로 모델이 상술 된 바와 같이, 입력된다는 것을 도시한다. 다양한 실시 예에서, 디지털 회로 모델은 상술된 바와 같이 복수의 논리 회로들에 클록 신호를 제공하도록 구현된 클록 메쉬를 포함할 수 있다. 또한, 이러한 실시 예에서, 디지털 회로 모델은 복수의 논리 회로들을 포함할 수 있다. 각 논리 회로는, 상술된 바와 같이, 논리 회로의 하나 이상의 엔드 포인트들에 클록 신호를 인가하는 것에 의해 적어도 부분적으로 제어가능하다.
블록(504)은, 실시 예에서, 엔드 포인트들의 클러스터가, 상술된 바와 같이 식별될 수 있다는 것을 도시한다. 다양한 실시 예들에서, 클러스터는 상술된 바와 같이, 클록 신호의 공통 버전에 의해 적어도 부분적으로 제어될 수 있다.
블록(506)은, 실시 예에서, 각 엔드 포인트를 위한 연관된 스큐 스케쥴이 상술된 바와 같이, 식별될 수 있다는 것을 도시한다. 블록(508)은, 실시 예에서, 각 엔드 포인트를 위한 타이밍 슬랙이 상술된 바와 같이 판별될 수 있다는 것을 도시한다.
블록(510)은, 실시 예에서, 클러스터에 연관된 공통 스큐가 상술된 바와 같이 판별될 수 있다고 도시된다. 실시 예들에서, 클러스터에 연관된 공통 푸쉬/풀 스케쥴을 판별하는 것은 푸쉬/풀 스텝들의 개수의 가장 큰 용량을 판별하는 것을 포함할 수 있다. 푸쉬/풀 스텝들의 개수는 상술된 바와 같이, 푸쉬/풀 스텝들에서 추가적인 증가가 역효과를 발생하기 전에 클러스터로부터 추가되거나/제거될 수 있다. 다른 실시 예에서, 클러스터에 연관된 공통 푸쉬/풀 스케쥴을 판별하는 것은, 클록 게이터 셀의 변종이 클러스터의 엔드 포인트들에 연관된 누적 이용 가능 스큐 스케쥴의 총합의 최댓값에서 상술된 바와 같이, 클러스터의 엔드 포인트들에 소개된 새로운 누적 음의 슬랙을 뺀 값을 야기하는지를 판별하는 것을 포함할 수 있다.
블록(512)은, 디지털 회로 모델에서 클록 게이터 셀이 상술된 바와 같이, 조절될 수 있다는 것을 도시한다. 다양한 실시 예들에서, 조절하는 것은 상술된 바와 같이, 클록 게이터 셀을 삽입하는 것 및/혹 제거하는 것을 포함할 수 있다. 실시 예들에서, 클록 게이터 셀은 상술된 바와 같이, 클러스터를 위한 공통 레이턴시를 설정할 수 있다. 실시 예에서, 클록 게이터 셀은 상술된 바와 같이, 클러스터에 연관된 공통 푸쉬/풀 스케쥴에 근거로 한 클록 게이터 셀의 변종을 포함할 수 있다. 실시 예들에서, 클록 게이터 셀의 모든 변종들은, 주어진 구동 능력을 위하여, 상술된 바와 같이, 제 1 물리 풋프린트를 포함할 수 있다.
실시 예들에서, 디지털 회로 모델에서 클록 게이터 셀을 조절하는 것은, 마일 클러스터가 충분한 양의 타이밍 슬랙에 연관된다면, 상술된 바와 같이 클록 게이터 셀의 변종을 디지털 회로 모델에 삽입하는 것을 포함할 수 있다. 이러한 실시 예에서, 변종은 클러스터에 연관된 공통 레이턴시보다 적은 클록 레이턴시를 제공할 수 있고, 또한, 동작 동안에, 상술된 바와 같이 클러스터에 연관된 공통 푸쉬/풀 스케쥴을 제공하는 변종보다 덜 전력을 소비할 수 있다.
블록(514)은, 실시 예에 있어서, 클러스터의 적어도 하나의 엔드 포인트를 위하여, 바람직하거나 필요하다면, 스큐 버퍼가 상술된 바와 같이, 디지털 회로 모델로 삽입될 수 있다는 것을 도시한다. 이러한 실시 예에서, 각 엔드 포인트를 위한 스큐 버퍼의 변종은 상술된 바와 같이, 각 엔드 포인트에 연관된 스큐 스케쥴과 클러스터에 연관된 공통 푸쉬/풀 스케쥴 사이의 차이에 근거하여 존재할 수 있다. 실시 예들에서, 모든 스큐 버퍼의 변종들은 상술된 바와 같이, 주어진 구동 능력을 위하여 동일한 물리 풋프린트를 포함할 수 있다.
다양한 실시 예들에서, 클러스터의 각 엔드 포인트를 위하여 개별 스큐 버퍼를 삽입하는 것은, 만일 디지털 회로 모델이 이미 각 엔드 포인트에 연관된 이전 스큐 버퍼를 포함하고 있다면, 상술된 바와 같이, 이전 스큐 버퍼를 개별 스큐 버퍼로 교체하는 것을 포함할 수 있다. 다른 실시 예에서, 각 클러스터의 엔드 포인트를 위하여, 개별 스큐 버퍼를 삽입하는 것은, 만일 디지털 회로 모델이 이미 각 엔드 포인트에 연관된 이전 스큐 버퍼를 포함하고 개별 스큐 버퍼에 연관된 스큐 스케쥴의 용량이 제로일 때, 이전 스큐 버퍼를 제거하는 것과, 상술 된 바와 같이 이전 스큐 버퍼를 개별 스큐 버퍼로 교체하는 것을 포함할 수 있다.
블록(516)은, 실시 예에서, 클러스터가 상술된 바와 같이, 클록 게이터 셀의 비활성화 지연 변종을 클록 게이터 셀의 활성화 지연 변종으로 교환함으로써 조절될 수 있다. 실시 예들에서, 클록 게이터 셀의 비활성화 지연 변종 및 클록 게이터 셀의 활성화 지연 변종은, 상술된 바와 같이, 실질적으로 동일한 클록 레이턴시 및 동일한 물리 풋프린트를 포함할 수 있다.
도 6은 본 발명의 실시 예에 따라 형성된 반도체 장치들을 포함하는 정보 처리 시스템(600)에 대한 블록도이다. 도 6을 참조하면, 정보 처리 시스템(600)은 본 발명의 실시 예에 따른 하나 이상의 기술들을 채용하거나 실행할 수 있다.
다양한 실시 예들에서, 정보 처리 시스템(600)은 컴퓨팅 장치, 예를 들어, 랩톱, 데스크톱, 워크스테이션, 서버, 블레이드 서버, 퍼스널 디지털 어시스턴트, 스마트폰, 태블릿, 및 다른 적합한 컴퓨터들 등, 혹은 그것들의 가상 머신 혹은 가상 컴퓨터 장치를 포함할 수 있다. 다양한 실시 예들에서, 정보 처리 시스템(600)은 사용자(미도시)에 의해 사용될 수 있다.
정보 처리 시스템(600)은 C PU(central processing unit), 로직, 혹은 프로세서(610)를 더 포함할 수 있다. 실시 예들에서, 프로세서(610)는 하나 이상의 FUBs(functional unit blocks) 혹은 CLBs(combinational logic blocks)을 포함할 수 있다. 이러한 실시 예들에서, 조합 논리 블록은 다양한 불론 논리 동작들(예, NAND, NOR, NOT, XOR, 등), 안정화 논리 장치들(예, 플립플롭들, 래치들, 등), 다른 논리 장치들, 혹은 그것의 조합들을 포함할 수 있다. 이러한 조합 논리 동작들은 목표된 결과에 도달하기 위하여 입력 신호들을 처리하도록 간단하거나 복잡한 방법으로 구현될 수 있다. 동기식 조합 논리 동작들의 실시 예들이 설명되었지만, 본 발명이 여기에 제한되지 않는다고 이해되어야 할 것이다. 본 발명은 동기식 조합 논리 동작 혹은 동기식과 비동기식 논리들의 조합을 포함할 수 있다. 실시 예에 있어서, 조합 논리 동작들은 복수의 CMOS(complementary metal oxide semiconductor) 트랜지스터들을 포함할 수 있다. 다양한 실시 예들에서, 이러한 CMOS 트랜지스터들은 논리 동작들을 수행하는 게이트들로 배열될 수 있다. 그럼에도 불구하고, 본 발명의 기술 사상은 다른 기술에 사용되거나 포함될 수 있다고 이해되어야 할 것이다.
정보 처리 시스템(600)은 본 발명의 실시 예에 따른 휘발성 메모리(620, RAM)를 포함 할 수 있다. 본 발명의 실시 예에 따른 정보 처리 시스템(600)은 비 휘발성 메모리(630, 하드 드라이브, 광학 메모리, 또는 NAND 플래시 메모리 등)를 포함 할 수 있다. 일부 구체적인 실시 예에서, 휘발성 메모리(620), 비휘발성 메모리(630), 혹은 그것들의 조합 혹은 그것들 중 하나는 "저장 장치"로 지칭 될 수 있다. 다양한 실시 예에서, 휘발성 메모리(620) 및/혹은 비휘발성 메모리(630)는 반영구적 또는 영구적인 형태로 실질적으로 데이터를 저장하도록 구현 될 수 있다.
다양한 실시 예에서, 정보 처리 시스템 (600)의 일부 및 통신 네트워크를 통해 통신하는 정보 처리 시스템(600)을 허용하도록 구성되는 하나 이상의 네트워크 인터페이스(640)를 포함할 수 있다. Wi-Fi 프로토콜의 예는, 여기에 제한되지 않으나, IEEE(institute of electrical and electronics engineers) 802.11g, IEEE 802.11n 등을 포함할 수 있다. 셀룰라 프로토콜의 예들로는, 여기에 제한되지 않으나, IEEE 802.16m(일명 wireless-MAN(metropolitan area network) Advanced, LTE(long term evolution) Advanced), EDGD(enhanced data rates for GSM(global system for mobile communication) Evolution), HSPA+(evolived high speed packet access) 등을 포함할 수 있다. 와이어 프로토콜의 예들로는, 여기에 제한되지 않으나, IEEE 802.3(예, ethernet), 파이버 채널, 전력선 통신(예, HomePlug, IEEE 1901, 등) 등을 포함할 수 있다. 상술 한 것은 본 발명을 제한하지 않는 몇 가지 실시 예들이라고 이해되어야 할 것이다.
정보 처리 시스템(600)은 본 발명의 실시 예에 따른 사용자 인터페이스 유닛(650)을 포함할 수 있다(예를 들어, 디스플레이 어댑터 등 햅틱 인터페이스, 휴먼 인터페이스 장치). 다양한 실시 예에서, 이 사용자 인터페이스 유닛(650)은 사용자로부터 입력을 수신 및/혹은 사용자에게 출력을 제공하기 위해 구현될 수 있다. 다른 종류의 장치들은, 사용자와의 상호 작용을 제공하기 위해 사용될 수 있다. 예를 들어, 사용자에게 제공되는 피드백은, 감각 피드백, 예를 들면, 시각 피드백, 청각 피드백, 또는 촉각 피드백의 임의의 형태 일 수 있다. 그리고 사용자로부터의 입력은 음향, 음성, 또는 촉각 입력을 포함하는 임의의 형태로 수신될 수 있다.
다양한 실시 예들에서, 정보 처리 시스템(600)은 하나 이상의 다른 장치들 혹은 하드웨어 구성 요소를 포함 할 수 있다(660)(예를 들면, 디스플레이 또는 모니터, 키보드, 마우스, 카메라, 지문 인식기, 비디오 프로세서 등). 상술 한 것은 본 발명을 제한하지 않는 실시 예이라고 이해되어야 할 것이다.
본 발명의 실시 예에 따른 정보 처리 시스템(600)은, 추가적으로 적어도 하나의 시스템 버스(605)을 포함할 수 있다. 이러한 실시 예에서, 시스템 버스(605)는 프로세서(610), 휘발성 메모리(620), 비휘발성 메모리(630), 네트워크 인터페이스(640), 사용자 인터페이스 유닛(650), 및 적어도 하나의 하드웨어 구성 요소(660)에 연결하도록 구현될 수 있다.
다양한 실시 예에서, 정보 처리 시스템(600)은, 적어도 하나의 소프트웨어 구성 요소(670)를 포함하거나 실행할 수 있다. 소프트웨어 구성 요소(670)는 운영 체제(OS) 및/혹은 어플리케이션을 포함 할 수 있다. 일부 실시 예에서, OS는 어플리케이션에 하나 이상의 서비스를 제공 및 관리하고 혹은 어플리케이션과 다양한 하드웨어 구성 요소들 사이의 중개자로서 동작하도록 구현 될 수 있다(예를 들어, 프로세서 (610), 네트워크 인터페이스 (640) 등)의 이러한 실시 예에서 시스템 (600)을 처리하는 정보, 정보 처리 시스템 (600)에 의해 국부적으로 설치(예를 들어, 등의 비휘발성 메모리 (630) 내)에 직접 실행하도록 구현될 수 있는 하나 이상의 네이티브 어플리케이션을 포함 할 수 있다. 프로세서(610)는 직접적으로 OS와 상호 작용한다. 이러한 실시 예에서, 네이티브 어플리케이션은 미리 컴파일된 머신 실행 가능 코드를 포함 할 수 있다. 일부 실시 예들에서, 네이티브 어플리케이션은 스크립트 인터프리터를 포함 할 수 있다(예를 들어, C shell(CSH), AppleScript, AutoHotkey, 등) 혹은 가상 실행 머신(VM)(예, 자바 가상 머신, 마이크로 소프트 공통 언어 런타임 등) 이것들은 소스 혹은 오브젝트 코드를 프로세서(710)에 의해 실행되는 실행 코드로 변환하도록 구현될 수 있다.
상술된 반도체 장치들은 다양한 패키징 기술을 사용하여 캡슐화 될 수 있다. 예를 들어, 본 발명의 실시 예에 다른 반도체 장치들은, POP(package on package) 기술, BGA(ball grid arrays) 기술, CSP(chip scale package) 기술, PLCC(plastic leaded chip carrier) 기술, PDIP(plastic dual in-line package) 기술, 다이 인 와플 팩(die in waffle pack) 기술, 다이 인 웨이퍼 폼(die in wafer form) 기술, COB(chip on board) 기술, CERDIP(ceramic dual ln-line package) 기술, PQFP(plastic quad flat package) 기술, SOIC(small outline package) 기술, SSOP(shrink small outline package) 기술, TSOP(thin small outline package) 기술, TQFO(thin quad flat package) 기술, SIP(system in package) 기술, MCP(multichip package) 기술, WFP(wafer-level fabricated package) 기술, WSP(wafer-level processed stack package) 기술, 혹은 당업자에게 알려진 다른 패키지 기술들 중 적어도 어느 하나에 의해 패키징될 수 있다.
방법 단계들은, 데이터를 입력 받고 출력을 발생하도록 동작하는 기능들을 수행하는 컴퓨터 프로그램을 실행하는 적어도 하나의 프로그래머블 프로세서에 의해 수행될 수 있다. 또한, 방법 단계들은, 특수 목적 논리 회로들, 예를 들어, FPGA(field programmable gate array) 혹은 ASIC(application specific integrated circuit)으로 구현될 수 있다.
다양한 실시 예들에서, 컴퓨터 판독 가능 장치는, 실행되는 경우, 장치가 방법의 단계들 중 적어도 일부를 수행하도록 하는 인스트럭션들을 포함 할 수 있다. 일부 실시 예들에서, 컴퓨터 판독 가능 장치가, 자기 매체, 광 매체, 다른 매체들, 또는 이들의 조합에 포함될 수 있다(예를 들면, CD-ROM, 하드 드라이브, 판독 전용 메모리, 플래시 드라이브, 등)를 포함할 수 있다. 이러한 실시 예에서, 컴퓨터 판독 가능 장치는, 명백하고 비순간적으로 구현된 제조 단품일 수 있다.
한편, 상술 된 본 발명의 내용은 발명을 실시하기 위한 구체적인 실시 예들에 불과하다. 본 발명은 구체적이고 실제로 이용할 수 있는 수단 자체뿐 아니라, 장차 기술로 활용할 수 있는 추상적이고 개념적인 아이디어인 기술적 사상을 포함할 것이다.
100, 200: 컴퓨터 시스템
131: 클록 신호
132: 버퍼
102, 104, 106: 플립플롭
202: 디지털 회로 모델
206: 논리 회로
212: 스큐 분석기
214: 클록 게이터 조절기
216: 스큐 버퍼 조절기
218: 저전력 튜너

Claims (20)

  1. 컴퓨터 시스템의 방법에 있어서:
    디지털 회로 모델을 입력받는 단계, 상기 디지털 회로 모델은, 복수의 논리 회로들, 및 상기 복수의 논리 회로들에 클록 신호를 제공하는 클록 메쉬의 모델들을 포함하고, 각 논리 회로는 상기 논리 회로의 하나 이상의 엔드 포인트들에 상기 클록 신호의 인가에 의해 적어도 부분적으로 제어되고;
    상기 엔드 포인트들의 클러스터를 식별하는 단계, 상기 클러스터는 상기 클록 신호 및 공통 활성화 신호의 공통 버전에 의해 적어도 부분적으로 제어되고;
    각 엔드 포인트를 위하여 연관된 스큐 스케쥴을 식별하는 단계;
    상기 클러스터 내에 각 엔드 포인트를 위하여 타이밍 슬랙 및 스큐 스케쥴을 판별하는 단계;
    상기 디지털 회로 모델에 클록 게이터 셀을 조절하는 단계, 상기 클록 게이터 셀은 상기 클러스터를 위하여 공통 레이턴시를 설정하고 그리고 상기 클러스터에 연관된 공통 푸쉬/풀 스케쥴에 근거로 하여 상기 클록 게이터 셀의 변종을 판별하는 단계를 포함하고; 및
    상기 클러스터의 적어도 하나의 엔드 포인트를 위하여 스큐 버퍼를 상기 디지털 회로 모델에 삽입하는 단계를 포함하고, 각 엔드 포인트를 위한 상기 스큐 버퍼의 변종은 상기 각 엔드 포인트에 연관된 상기 스큐 스케쥴과 상기 클러스터에 연관된 상기 공통 푸쉬/풀 스케쥴 사이의 차이에 근거로 하여 존재하는 방법.
  2. 제 1 항에 있어서,
    상기 클러스터에 연관된 상기 공통 푸쉬/풀 스케쥴을 판별하는 단계를 더 포함하는 방법.
  3. 제 2 항에 있어서,
    상기 클러스터에 연결된 상기 공통 푸쉬/풀 스케쥴을 판별하는 단계는:
    푸쉬/풀 단계들의 개수의 추가적인 증가가 역효과를 낳기 전에 상기 클러스터로부터 추가/제거될 수 있는 상기 푸쉬/풀 단계들의 개수의 가장 큰 용량을 판별하는 단계를 포함하는 방법.
  4. 제 2 항에 있어서,
    상기 클러스터에 연관된 상기 공통 푸쉬/풀 스케쥴을 판별하는 단계는:
    상기 클러스터의 상기 엔드 포인트들에 연관된 이용 가능한 스큐 스케쥴의 누적의 가장 큰 총합에서 상기 클러스터의 상기 엔드 포인트들에 소개된 새로운 음의 슬랙의 누적을 뺀 것으로 야기로 인하여 상기 클록 게이터 셀의 변종을 판별하는 단계를 포함하는 방법.
  5. 제 1 항에 있어서,
    상기 클록 게이터 셀의 모든 변종들은, 주어진 구동 능력을 위하여 제 1 물리 풋프린트(footprint)를 포함하고; 및
    상기 스큐 버퍼의 모든 변종들은, 주어진 구동 능력을 위하여 제 2 물리 풋프린트를 포함하는 방법.
  6. 제 1 항에 있어서,
    상기 클록 게이터 셀의 비활성 지연 변종을 상기 클록 게이터 셀의 활성 지연 변종으로 교환함으로써 저 전력 모드를 위하여 상기 클러스터를 튜닝하는 단계를 더 포함하고,
    상기 클록 게이터 셀의 상기 비활성 지연 변종 및 상기 클록 게이터 셀의 상기 활성 지연 변종은 동일 클록 레이턴시 및 동일 물리 풋프린트를 포함하는 방법.
  7. 제 1 항에 있어서,
    상기 클러스터의 각 엔드 포인트를 위하여 개별 스큐 버퍼를 삽입하는 단계는, 만일 상기 디지털 회로 모델이 이미 각 엔드 포인트에 연관된 이전 스큐 버퍼를 포함한다면, 상기 이전 스큐 버퍼를 상기 개별 스큐 버퍼로 교체하는 단계를 포함하는 방법.
  8. 제 1 항에 있어서,
    상기 클러스터의 각 엔드 포인트를 위하여 개별 스큐 버퍼를 삽입하는 단계는, 만일 상기 디지털 회로 모델이 이미 각 엔드 포인트에 연관된 이전 스큐 버퍼를 포함하고 및 상기 개별 스큐 버퍼에 연관된 스큐 스케쥴의 양이 없다면, 상기 이전 스큐 버퍼를 상기 개별 스큐 버퍼로 교체하지 않는 단계를 포함하는 방법.
  9. 제 1 항에 있어서,
    상기 디지털 회로 모델에서 상기 클록 게이터 셀을 조절하는 단계는;
    클러스터가 충분한 양의 타이밍 슬랙에 연관된다면, 상기 클록 게이터 셀의 변종을 상기 디지털 회로 모델에 삽입하는 단계를 포함하고,
    상기 클록 게이터 셀의 상기 변종은 상기 클러스터에 연관된 공통 레이턴시보다 낮은 클록 레이턴시를 제공하고, 그리고 또한, 동작 동안에, 상기 클러스터에 연관된 상기 공통 푸쉬/풀 스케쥴을 제공하는 변종보다 적은 전력을 소비하는 방법.
  10. 컴퓨터 시스템에 있어서:
    디지털 회로 모델을 입력받고, 상기 디지털 회로 모델은, 복수의 논리 회로들, 및 상기 복수의 논리 회로들에 클록 신호를 제공하는 클록 메쉬의 모델들을 포함하고, 각 논리 회로는 상기 논리 회로의 하나 이상의 엔드 포인트들에 상기 클록 신호의 인가에 의해 적어도 부분적으로 제어되고, 상기 엔드 포인트들의 클러스터를 식별하고, 상기 클러스터는 상기 클록 신호 및 공통 활성화 신호의 공통 버전에 의해 적어도 부분적으로 제어되고, 각 엔드 포인트를 위하여 연관된 스큐 스케쥴을 식별하고, 상기 클러스터 내의 각 엔드 포인트를 위한 타이밍 슬랙 및 스큐 스케쥴을 판별하는 디지털 회로 수신기;
    클록 게이터 셀을 상기 디지털 회로 모델로 조절하고, 상기 클록 게이터 셀은 상기 클러스터를 위한 공통 레이턴시를 설정하고 그리고 상기 클러스터에 연관된 공통 푸쉬/풀 스케쥴 양에 근거로 한 상기 클록 게이터 셀의 변종을 판별하는 것을 포함하는 클록 게이터 조절기; 및
    상기 클러스터의 적어도 하나의 엔드 포인트를 위하여 스큐 버퍼를 상기 디지털 회로 모델에 삽입하고, 각 엔드 포인트를 위한 상기 스큐 버퍼의 변종은 상기 각 엔드 포인트에 연관된 상기 스큐 스케쥴과 상기 클러스터에 연관된 상기 공통 푸쉬/풀 스케쥴 사이의 차이에 근거로 하여 존재하는 스큐 버퍼 조절기를 포함하는 컴퓨터 시스템.
  11. 제 10 항에 있어서,
    상기 클록 게이터 조절기는 상기 클러스터에 연관된 상기 공통 푸쉬/풀 스케쥴 양을 설정하도록 구현되는 컴퓨터 시스템.
  12. 제 11 항에 있어서,
    상기 클록 게이터 조절기는, 푸쉬/풀 단계들의 개수의 추가적인 증가가 역효과를 낳기 전에 상기 클러스터로부터 추가/제거될 수 있는 상기 푸쉬/풀 단계들의 개수의 가장 큰 용량을 판별하도록 구현된 컴퓨터 시스템.
  13. 제 11 항에 있어서,
    상기 클록 게이터 조절기는, 상기 클러스터의 상기 엔드 포인트들에 연관된 이용 가능한 스큐 스케쥴의 누적의 가장 큰 총합에서 상기 클러스터의 상기 엔드 포인트들에 소개된 새로운 음의 슬랙의 누적을 뺀 것으로 야기로 인하여 상기 클록 게이터 셀의 변종을 판별하도록 구현된 컴퓨터 시스템.
  14. 제 10 항에 있어서,
    상기 클록 게이터 셀의 모든 변종들은, 주어진 구동 능력을 위하여 제 1 물리 풋프린트(footprint)를 포함하고; 및
    상기 스큐 버퍼의 모든 변종들은, 주어진 구동 능력을 위하여 제 2 물리 풋프린트를 포함하는 컴퓨터 시스템.
  15. 제 10 항에 있어서,
    상기 클록 게이터 셀의 비활성 지연 변종을 상기 클록 게이터 셀의 활성 지연 변종으로 교환함으로써 저 전력 모드를 위하여 상기 클러스터를 튜닝하는 저전력 튜너를 더 포함하고,
    상기 클록 게이터 셀의 상기 비활성 지연 변종 및 상기 클록 게이터 셀의 상기 활성 지연 변종은 동일 클록 레이턴시 및 동일 물리 풋프린트를 포함하는 컴퓨터 시스템.
  16. 제 10 항에 있어서,
    상기 클록 게이터 조절기는, 만일 상기 디지털 회로 모델이 이미 각 엔드 포인트에 연관된 이전 스큐 버퍼를 포함한다면, 상기 이전 스큐 버퍼를 개별 스큐 버퍼로 교체하도록 구현되는 컴퓨터 시스템.
  17. 제 10 항에 있어서,
    상기 클록 게이터 조절기는,
    만일 상기 디지털 회로 모델이 이미 각 엔드 포인트에 연관된 이전 스큐 버퍼를 포함하고 및 개별 스큐 버퍼에 연관된 스큐 스케쥴의 양이 없다면, 상기 이전 스큐 버퍼를 제거하고, 그리고 상기 이전 스큐 버퍼를 새로운 스큐 버퍼로 교체하지 않는 컴퓨터 시스템.
  18. 제 10 항에 있어서,
    상기 디지털 회로 모델은 물리 레이아웃 정보를 포함하고; 및
    상기 컴퓨터 시스템은 무효화 되도록 상기 디지털 회로 모델의 상기 물리 레이아웃 정보를 야기하지 않고 상기 클록 게이터 셀들과 스큐 버퍼들을 조절하도록 구현되는 컴퓨터 시스템.
  19. 디지털 회로 모델의 클록 스큐 스케쥴을 교환하기 위한 컴퓨터 프로그램을 기록한 컴퓨터 판독 가능 매체에 있어서:
    상기 컴퓨터 프로그램은,
    데이터 처리 장치가, 디지털 회로 모델을 입력 받고, 상기 디지털 회로 모델은, 복수의 논리 회로들, 및 상기 복수의 논리 회로들에 클록 신호를 제공하는 클록 메쉬의 모델들을 포함하고, 각 논리 회로는 상기 논리 회로의 하나 이상의 엔드 포인트들에 상기 클록 신호의 인가에 의해 적어도 부분적으로 제어되고;
    상기 엔드 포인트들의 클러스터를 식별하고, 상기 클러스터는 상기 클록 신호 및 공통 활성화 신호의 공통 버전에 의해 적어도 부분적으로 제어되고;
    각 엔드 포인트를 위하여 연관된 스큐 스케쥴을 식별하고;
    상기 클러스터 내에 각 엔드 포인트를 위하여 타이밍 슬랙 및 스큐 스케쥴을 판별하고;
    상기 디지털 회로 모델에 클록 게이터 셀을 조절하고, 상기 클록 게이터 셀은 상기 클러스터를 위하여 공통 레이턴시를 설정하고 그리고 상기 클러스터에 연관된 공통 푸쉬/풀 스케쥴에 근거로 하여 상기 클록 게이터 셀의 변종을 판별하고; 및
    상기 클러스터의 적어도 하나의 엔드 포인트를 위하여 스큐 버퍼를 상기 디지털 회로 모델에 삽입하고, 각 엔드 포인트를 위한 상기 스큐 버퍼의 변종은 상기 각 엔드 포인트에 연관된 상기 스큐 스케쥴과 상기 클러스터에 연관된 상기 공통 푸쉬/풀 스케쥴 사이의 차이에 근거로 하여 존재하도록, 야기하도록 컴퓨팅 장치에서 실행하도록 구현된 컴퓨터 판독 가능 매체.
  20. 제 19 항에 있어서,
    상기 컴퓨터 프로그램은,
    상기 데이터 처리 장치가 상기 클러스터의 상기 엔드 포인트들에 연관된 이용 가능한 스큐 스케쥴의 누적의 가장 큰 총합에서 상기 클러스터의 상기 엔드 포인트들에 소개된 새로운 음의 슬랙의 누적을 뺀 것으로 야기로 인하여 상기 클록 게이터 셀의 변종을 판별하도록 야기하도록 구현되는 컴퓨터 판독 가능 매체.
KR1020150148945A 2014-10-27 2015-10-26 저전력 모드 지원 컴퓨터 시스템 및 그것의 방법 KR102440129B1 (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201462069276P 2014-10-27 2014-10-27
US62/069,276 2014-10-27
US14/686,749 2015-04-14
US14/686,749 US9779201B2 (en) 2014-10-27 2015-04-14 Low power minimal disruptive method to implement large quantity push and pull useful-skew schedules with enabling circuits in a clock-mesh based design

Publications (2)

Publication Number Publication Date
KR20160049496A KR20160049496A (ko) 2016-05-09
KR102440129B1 true KR102440129B1 (ko) 2022-09-05

Family

ID=55792191

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150148945A KR102440129B1 (ko) 2014-10-27 2015-10-26 저전력 모드 지원 컴퓨터 시스템 및 그것의 방법

Country Status (2)

Country Link
US (1) US9779201B2 (ko)
KR (1) KR102440129B1 (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10423743B2 (en) * 2016-11-15 2019-09-24 Synopsys, Inc. Context-dependent useful skew estimation for optimization, placement, and clock tree synthesis
KR20210057875A (ko) 2019-11-12 2021-05-24 삼성전자주식회사 집적 클럭 게이팅 회로
CN112906338B (zh) * 2021-03-30 2022-11-29 飞腾信息技术有限公司 对物理分区结构进行时钟设计的方法、系统和介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090244999A1 (en) 2008-03-25 2009-10-01 Arm Limited Clock control during self-test of multi port memory
US20120299627A1 (en) 2011-05-27 2012-11-29 Drexel University Clock mesh synthesis with gated local trees and activity driven register clustering
US20140176215A1 (en) 2012-12-21 2014-06-26 Samsung Electronics Co., Ltd. Method of implementing clock skew and integrated circuit adopting the same

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7301385B2 (en) 2005-09-22 2007-11-27 Sony Computer Entertainment Inc. Methods and apparatus for managing clock skew
US7941776B2 (en) 2006-05-26 2011-05-10 Open-Silicon Inc. Method of IC design optimization via creation of design-specific cells from post-layout patterns
US8205182B1 (en) 2007-08-22 2012-06-19 Cadence Design Systems, Inc. Automatic synthesis of clock distribution networks
US8629548B1 (en) 2012-10-11 2014-01-14 Easic Corporation Clock network fishbone architecture for a structured ASIC manufactured on a 28 NM CMOS process lithographic node

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090244999A1 (en) 2008-03-25 2009-10-01 Arm Limited Clock control during self-test of multi port memory
US20120299627A1 (en) 2011-05-27 2012-11-29 Drexel University Clock mesh synthesis with gated local trees and activity driven register clustering
US20140176215A1 (en) 2012-12-21 2014-06-26 Samsung Electronics Co., Ltd. Method of implementing clock skew and integrated circuit adopting the same

Also Published As

Publication number Publication date
US20160117434A1 (en) 2016-04-28
US9779201B2 (en) 2017-10-03
KR20160049496A (ko) 2016-05-09

Similar Documents

Publication Publication Date Title
CN105553448B (zh) 调节时钟偏斜的方法、系统和设备
US8205182B1 (en) Automatic synthesis of clock distribution networks
US9740454B2 (en) Crossing pipelined data between circuitry in different clock domains
KR101887319B1 (ko) 전용 회로 및 메모리를 제어하기 위한 동적 마진 튜닝
JP2009053989A (ja) 半導体回路設計方法
KR102440129B1 (ko) 저전력 모드 지원 컴퓨터 시스템 및 그것의 방법
US8994424B2 (en) Distributing multiplexing logic to remove multiplexor latency on the output path for variable clock cycle, delayed signals
US20190102197A1 (en) System and method for merging divide and multiply-subtract operations
JP6277279B2 (ja) エミュレーションにおけるパーティショニングおよびプラットフォームのプロトタイピングを用いたダイナミックインターコネクト
US7557606B1 (en) Synchronization of data signals and clock signals for programmable logic devices
KR102651866B1 (ko) 전력 소비를 줄이는 장치 및 그것의 방법
US10404255B1 (en) Device for automatic configuration of semiconductor integrated circuit
US9965581B1 (en) Fanout optimization to facilitate timing improvement in circuit designs
US10318699B1 (en) Fixing hold time violations using hold time budgets and slacks of setup times
US20180137217A1 (en) Context-dependent useful skew estimation for optimization, placement, and clock tree synthesis
CN111831053B (zh) 具有可调输出复位的集成时钟门控器锁存器结构
US9710583B2 (en) Information processing apparatus, state machine dividing method, and computer-readable recording medium
US9292295B2 (en) Voltage droop reduction by delayed back-propagation of pipeline ready signal
US9465614B2 (en) Parallel execution of instructions in processing units and adjusting power mode based on monitored data dependency over a period of time
US10572621B1 (en) Physical synthesis within placement
US8305124B2 (en) Reset signal distribution
Kumar et al. Pulse based Acyclic Asynchronous Pipelines for Combinational Logic Circuits
US20230060111A1 (en) System and method for electronic circuit simulation
la Cour Bentzon Mesochronous TDM-based Network-on-Chip
GB2519414A (en) Crossing pipelined data between circuitry in different clock domains

Legal Events

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