KR102632111B1 - 슬립 신호 스티칭 기술 - Google Patents

슬립 신호 스티칭 기술 Download PDF

Info

Publication number
KR102632111B1
KR102632111B1 KR1020180009228A KR20180009228A KR102632111B1 KR 102632111 B1 KR102632111 B1 KR 102632111B1 KR 1020180009228 A KR1020180009228 A KR 1020180009228A KR 20180009228 A KR20180009228 A KR 20180009228A KR 102632111 B1 KR102632111 B1 KR 102632111B1
Authority
KR
South Korea
Prior art keywords
power
obstacle
segment
sleep
gates
Prior art date
Application number
KR1020180009228A
Other languages
English (en)
Other versions
KR20180088589A (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 KR20180088589A publication Critical patent/KR20180088589A/ko
Application granted granted Critical
Publication of KR102632111B1 publication Critical patent/KR102632111B1/ko

Links

Images

Classifications

    • 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
    • G06F30/394Routing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • G06F1/3228Monitoring task completion, e.g. by use of idle timers, stop commands or wait commands
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/22Means for limiting or controlling the pin/gate ratio
    • 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/392Floor-planning or layout, e.g. partitioning or placement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2119/00Details relating to the type or aim of the analysis or the optimisation
    • G06F2119/06Power analysis or power 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)
  • Geometry (AREA)
  • Evolutionary Computation (AREA)
  • Architecture (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)
  • Semiconductor Integrated Circuits (AREA)
  • Medicines Containing Antibodies Or Antigens For Use As Internal Diagnostic Agents (AREA)
  • Saccharide Compounds (AREA)

Abstract

본 명세서에 서술된 다양한 구현예는 파워 게이트, 장애물, 및 슬립 신호를 제공하는 제어 핀을 가진 집적회로의 플로어플랜을 수신하는 수신 모듈을 가진 장치에 관한 것이다. 이 장치는 장애물이 파워 게이트의 시퀀스를 가로막는 위치를 식별하고, 파워 게이트의 시퀀스를 하나의 칼럼으로 조직화하고, 그 칼럼을 장애물 아래에 놓인 제1 세그먼트, 장애물 위에 놓인 제2 세그먼트, 및 제1 및 제2 세그먼트로부터 어긋나 있는 제3 세그먼트 등의 세그먼트로 분할할 수 있다. 제3 세그먼트는 장애물을 우회하는 경로일 수 있다. 이 장치는 제어 핀으로부터 각각의 제1, 제2, 및 제3 세그먼트 내의 각각의 파워 게이트를 포함하는 복수의 파워 게이트로 슬립 신호를 분배함으로써 집적회로에 대한 슬립 신호 스티칭을 수행하는 스티칭 모듈을 포함할 수 있다.

Description

슬립 신호 스티칭 기술{SLEEP SIGNAL STITCHING TECHNIQUE}
이 섹션은 본 명세서에 서술된 다양한 기술의 이해와 관련된 몇몇 정보를 제공하기 위한 것이다. 섹션 제목이 암시하는 바와 같이, 이것은 관련 기술의 설명일 뿐, 결코 그것이 종래기술임을 암시하는 것은 아니다. 일반적으로, 관련 기술은 종래기술로 간주될 수도 있고 아닐 수도 있다. 그러므로, 이 섹션의 모든 내용은 이러한 관점에서 해석되어야 하며, 종래기술임을 인정하는 것으로 해석되어서는 안 된다는 것을 이해해야 한다.
집적회로는 전력 소모를 줄이기 위한 파워 게이팅(power gating)을 포함할 수 있다. 파워 게이팅은 집적회로의 블록이 사용되지 않을 때 그 블록으로 들어가는 전류를 차단하기 위해 사용될 수 있다. 세밀한(fine-grained) 파워 게이팅에서, 특수한 표준 셀은 파워 게이트 블록의 표준 셀 구역 전체에 설정된 패턴으로 분산될 수 있다. 이러한 특수 셀은 파워 스위치 또는 파워 게이트로 지칭될 수 있으며, 파워 표준 셀 레일로부터 외부 파워 서플라이를 연결해제하기 위해, 또는 접지 표준 셀 레일로부터 외부 접지 서플라이를 연결해제하기 위해 다양한 유형의 트랜지스터를 이용할 수 있다. 블록 내의 몇몇 표준 셀은 표준 셀 레일을 통해 파워/접지 서플라이를 수신할 수 있다. 몇몇 상황에서, 슬립 신호가 파워 스위치 셀로 라우팅될 수 있다. 슬립 신호가 활성화된 때, 각각의 표준 셀 레일로 흐르는 상시 전원(always-on power supply)으로부터의 전류는 차단될 수 있다. 몇몇 경우에, 집적회로 설계의 플로어플랜(floorplan)에 미리 설치된 장애물들은 파워 스위치가 설정된 패턴을 벗어나게 만들 수 있다. 이러한 장애물은 슬립 신호의 경로를 차단할 수 있다. 이처럼, 슬립 신호에 영향을 주는 신호 라우팅을 줄이기 위해 플로어플랜 장애물을 고려하여 파워 스위치에 슬립 신호를 연결하는 효율적인 방법에 대한 필요성이 존재한다.
이제, 다양한 기술의 구현예가 첨부된 도면을 참조하여 서술된다. 그러나, 첨부된 도면은 본 명세서에 서술된 다양한 구현예를 설명하기 위한 것일 뿐, 본 명세서에서 서술된 다양한 기술의 실시예들을 제한하도록 의도된 것이 아님을 이해해야 한다.
도 1은 본 명세서에 서술된 다양한 구현예에 따른 슬립 신호 스티칭 기술을 구현하는 시스템의 블록도를 도시한다.
도 2a 내지 도 2e는 본 명세서에 서술된 다양한 구현예에 따른 플로어플랜 레이아웃 아키텍처의 도면들을 도시한다.
도 3a 및 도 3b는 본 명세서에 서술된 다양한 구현예에 따른 다양한 슈타이너 라우팅 기술(Steiner routing techniques)(예컨대, 시작 지점과 목적 지점 사이의 거리를 계싼하기 위한 경로를 이용하는 것)을 도시한다.
도 4a 내지 4c는 본 명세서에 서술된 다양한 구현예에 따른 슬립 신호 스티칭을 구현하는 방법의 다른 프로세스 흐름도를 도시한다.
도 5는 본 명세서에 서술된 다양한 구현예에 따른 슬립 신호 스티칭을 구현하는 방법의 다른 프로세스 흐름도를 도시한다.
도 6는 본 명세서에 서술된 다양한 구현예에 따른 컴퓨팅 장치의 블록도를 도시한다.
본 명세서에 서술된 다양한 구현예는 본 명세서에 서술된 다양한 구현예에 따른 슬립 신호 스티칭 스킴(scheme) 및 기술을 제공하기 위한 것이다. 슬립 신호 스티칭(SSS: Sleep Signal Stitching)은 플로어플랜 내의 파워 게이트에 슬립 신호를 분배하는 프로세스에 관한 것이고, 본 명세서에 서술된 슬립 신호 스티칭 스킴 및 기술은 하드 매크로(hard macro)로 인해 가로막힐 수 있는 플로어플랜 내 파워 게이트에 슬립 신호를 효과적으로 분배할 수 있게 한다. 몇몇 경우에 슬립 신호는 설치공간 및 라우팅 자원을 부적절하게 소모할 수 있는 상시 전원, 레일을 사용하지 않을 수 있는 상시 버퍼(always-on buffer)의 삽입을 억제하도록 분배될 수 있다. 이처럼, 본 명세서에 서술된 슬립 신호 스티칭 스킴 및 기술은 하나 이상의 장애물(예컨대, 하드 매크로) 및 파워 게이트 칼럼(column)을 가지는 플로어플랜에 슬립 신호를 분배시킬 수 있게 한다. 본 명세서에 서술된 슬립 신호 스티칭 스킴 및 기술은 전원이 켜진 동안 전류 유입(current draw)을 줄이는 것을 포함하여 에너지 관리를 향상시킬 수 있다.
이제, 다양한 전력망 삽입 스킴 및 기술을 제공하는 다양한 구현예가 도 1 내지 도 6을 참조하여 상세하게 설명될 것이다.
도 1은 관련된 다양한 방법을 통해 슬립 신호 스티칭 스킴 및 기술을 구현하는 컴퓨팅 장치(102)를 이용하는 장치(100)의 한 실시예를 보여주는 블록도이다.
도 1을 참조하면, 장치(100)는 슬립 신호 스티칭 목적의 컴퓨팅 장치(102)를 갖춘 시스템으로서 구현될 수 있고, 그로 인해 컴퓨팅 장치(102)는 여기 서술된 바와 같은 슬립 신호 스티칭 스킴 및 기술을 구현하기 위한 전용의 특수목적 머신으로 변환된다. 그러므로, 컴퓨팅 장치(102)는 도 1에 구체적으로 도시되지는 않았으나, 적어도 하나의 프로세서(들)(104), 메모리(106)(예컨대, 비일시적 컴퓨터 판독 가능한 저장 매체), 주변기기, 파워, 및 다양한 다른 컴퓨팅 엘리먼트 및/또는 컴포넌트를 포함하여, 표준 엘리먼트(들) 및/또는 컴포넌트(들)을 포함할 수 있다. 또한, 도 1에 도시된 바와 같이, 장치(100)는 그래픽 사용자 인터페이스(GUI)(132)를 제공하기 위해 사용될 수 있는 디스플레이 장치(130)(예컨대, 모니터 또는 다른 디스플레이)에 연결될 수 있다. 몇몇 경우에, GUI(132)는 슬립 신호 스티칭 스킴 및 기술과 연관된 사용자로부터의 입력(예컨대, 사용자 입력)을 수신하기 위해 사용될 수 있다. 다른 경우에, 하나 이상의 다른 사용자 인터페이스(UI)(120)(예컨대, GUI 또는 유사한 것을 가진 하나 이상의 다른 컴퓨팅 장치)는 슬립 신호 스티칭 스킴 및 기술과 연관된 한 명 이상의 다른 사용자로부터의 입력(예컨대, 다른 사용자 입력)을 수신하기 위해 사용될 수 있다. 또한, 장치(100)는 사용자 및 슬립 신호 스티칭 스킴 및 기술과 관련된 데이터 및 정보를 저장 및/또는 기록하도록 구성될 수 있는 하나 이상의 데이터베이스(150)에 연결될 수도 있다.
따라서, 장치(100)는 컴퓨팅 장치(102) 및 컴퓨터 판독 가능한 매체(106)(또는 하나 이상의 데이터베이스(150)) 상에 저장 또는 기록되어 있고 적어도 하나의 프로세서(104)에 의해 실행 가능한 명령어를 포함할 수 있다. 장치(100)는 슬립 신호 스티칭 스킴 및 기술을 구현하기 위해 사용될 수 있다. 또한, 장치(100)는 사용자에게 출력을 제공하기 위한 디스플레이 장치(130)를 포함할 수 있고, 디스플레이 장치(130)는 사용자로부터의 입력을 수신하기 위한 GUI(132)를 포함할 수 있다. 몇몇 경우에, 하나 이상의 UI(120)는 한 명 이상의 다른 사용자에게 출력을 제공하고 한 명 이상의 다른 사용자로부터의 입력을 수신하기 위해 사용될 수 있다.
컴퓨팅 장치(102)는, 예컨대, 수신 모듈(110)과 같은 하나 이상의 모듈을 포함할 수 있다. 몇몇 시나리오에서, 수신 모듈(110)은 복수의 파워 게이트, 하나 이상의 장애물, 및 슬립 신호를 제공하기 위한 하나 이상의 제어 핀을 가진 집적회로의 플로어플랜을 수신할 수 있다. 이 플로어플랜은 체인의 집합을 포함할 수 있고, 체인 집합 내의 각각의 체인은 하나 이상의 제어 핀에 연결된 파워 게이트의 집합을 포함할 수 있다. 몇몇 경우에, 주어진 체인 내의 파워 게이트는 고유한 제어 핀에 연결도리 수 있고, 복수의 체인이 존재한다면, 별개의 체인 내의 파워 게이터는 별개의, 고유한 제어 핀에 연결될 수 있다.
도 2e에 도시된 바와 같이, 각각의 파워 게이트는, 예컨대, 슬립 입력 핀(SLEEP_IN) 및/또는 슬립 출력 핀(SLEEP_OUT)을 포함하여 적어도 2개의 핀을 가지는 셀로서 구현될 수 있다. 각각의 파워 게이트의 슬립 입력 핀은 제어 핀 및 다른 파워 게이트의 슬립 출력 핀으로부터 슬립 신호를 수신할 수 있다. 몇몇 경우에, 슬립 신호가 도착하면 각각의 파워 게이트들은 레일(예컨대, VDD, VSS 등)에 파워를 공급할 수 있는 액티브 상태로 전환되며, 이 레일로부터 집적회로의 다양한 표준 셀(SC)이 그들의 파워를 얻게 된다.
플로어플랜은 하나 이상의 포개지지 않은 장애물들의 집합의 일부분인 하나 이상의 장애물을 포함할 수 있다. 하나 이상의 장애물들은 매크로 또는 하드 매크로를 의미할 수 있고, 다각형 형상일 수 있다. 몇몇 경우에, 하나 이상의 장애물 각각은 직사각형 또는 L자형 형태의 직선으로된 영역의 윤곽을 가질 수 있다. 도 2b 내지 도 2d에 도시된 바와 같이, 파워 게이트의 시퀀스는 하나 이상의 수직 칼럼으로 배열된 선형 시퀀스의 파워 게이트를 포함할 수 있고, 하나 이상의 장애물들은 선형 시퀀스의 파워 게이트를 가로막을 수 있다. 도 2a에 도시된 바와 같이, 각각의 장애물들은, 예컨대, 코어, 메모리, DDR(double data rate) 유닛, 파워 관리 유닛 등과 같은 집적회로의 적어도 하나의 구성요소를 나타낼 수 있는 매크로(즉, 하드 매크로)에 의해 형성될 수 있다.
컴퓨팅 장치(102)는 식별 모듈(112)을 포함할 수 있다. 몇몇 시나리오에서, 식별 모듈(112)은 각각의 장애물들이 하나의 시퀀스의 파워 게이트를 가로막는 위치를 식별하고, 그 시퀀스의 파워 게이터를 하나 이상의 칼럼으로 조직화하고, 그 하나 이상의 칼럼을 복수의 세그먼트로 분할할 수 있다. 예컨대, 도 2d에 도시된 바와 같이, 식별 모듈(112)은 적어도 하나의 칼럼을 장애물 아래에 놓인 제1 세그먼트, 장애물 위에 놓인 제2 세그먼트, 및 제1 및 제2 세그먼트로부터 어긋나 있는 제3 세그먼트로 분할할 수 있다. 본 예에서, 장애물 둘레로 라우팅되는 제3 세그먼트에 대한 정보는 장애물을 회피하기 위해 수신될 수 있다. 몇몇 경우에 ,이 정보는 파워 게이트의 위치를 장애물 둘레의 제3 세그먼트로 재위치조절하는 것과 관련된 정보를 포함할 수 있다.
도 3a 및 도 3b에 도시된 바와 같이, 플로어플랜 내 두 지점간의 거리는 슈타이너 메트릭(Steiner metric)을 이용하여 측정될 수 있다. 몇몇 경우에, 두 지점 사이에 장애물(예컨대, 하드 매크로)이 존재하지 않는다면 두 지점 사이의 경로는 가로막히지 않으므로, 슈타이너 메트릭은 두 지점 간의 거리를 계산하기 위해 사용될 수 있다. 다른 경우에, 두 지점 사이에 적어도 하나의 장애물(예컨대, 적어도 하나의 하드 매크로)가 존재한다면, 그 거리는 장애물의 가장자리를 따라감으로써 계산될 수 있다. 몇몇 경우에, 본 명세서에 서술된 슬립 신호 스티칭 스킴 및 기술은 두 지점 사이의 직선이 장애물에 의해 가로막히는지 판정할 수 있고, 이러한 경우 슈타이너 거리는 장애물의 팔로우잉 에지에 의해 계산될 수 있다. 이처럼, 본 명세서에 서술된 슬립 신호 스티칭 스킴 및 기술은 플로어플랜이 임의의 개수의 장애물(예컨대, 하드 매크로)를 가질 때 플로어플랜 내의 두 지점 간의 슈타이터 거리를 자주 계산할 수 있다.
또한, 컴퓨팅 장치(102)은 스티치 모듈(114)을 포함할 수 있다. 몇몇 시나리오에서, 스티치 모듈(114)은 슬립 신호를 제어 핀으로부터 각각의 제1, 제2, 및 제3 세그먼트 내의 각각의 파워 게이트를 포함하는 복수의 파워 게이트로 분배함으로써 집적회로에 대한 슬립 신호 스티칭을 수생할 수 있다. 몇몇 시나리오에서, 스티치 모듈(114)은 각각의 파워 게이트에 제어 핀을 연결하여 각각의 파워 게이트에 슬립 신호를 제공함으로써 슬립 신호를 제어 핀으로부터 복수의 파워 게이트로 분배할 수 있다. 슬립 신호 스티칭과 관련된 이러한 및 다양한 다른 특징들은 아래에 더 상세하게 설명된다.
도 1을 참조하면, 장치(100)는 개별 기능을 나타내는 다양한 기능 블록 또는 모듈을 이용하여 도시되어 있다. 그러나, 이러한 도면은 명료함 및 편리함을 위해 제공된 것임을 이해해야 하고, 그러므로 다양한 기능들이 겹쳐지거나 서술된 블록(들) 또는 모듈(들) 내에 결합될 수도 있고, 및/또는 도 1에 구체적으로 도시되지 않은 하나 이상의 추가 블록(들) 또는 모듈(들)에 의해 구현될 수도 있음을 이해해야 한다. 또한, 도 1의 장치(100)에 사용될 수 있는 다양한 표준 및/또는 종래의 기능들도 포함될 수 있으나, 그러한 표준 및/또는 종래의 엘리먼트들은 명료함 및 편리함을 위해 확실하게 서술되지는 않음을 이해해야 한다.
본 명세서에서 사용된, '메트릭(metric)'은 몇몇 입력을 받아 출력을 만들어내는 절차를 정의할 수 있다. 입력은 2차원(2D) 평면 내의 두 지점을 의미할 수 있고, 출력은 '거리'를 의미할 수 있다. '경로'는 2D 평면 내의 한 세트의 정렬된 지점(시퀀스)을 의미할 수 있고, 한 세트는 2 이상의 지점을 포함할 수 있다. SSS의 경우에, 짝수개의 지점이 존재할 수 있다. 하나의 시퀀스 내의 첫 지점에서 그 시퀀스 내의 마지막 지점까지의 거리를 계산하기 위한 규칙이 존재할 수 있다. 이러한 규칙은 SSS의 일부일 수 있다. '거리'는 음이 아닌 실수(예컨대, 0 이상)이다. '슈타이너 메트릭'은 입력으로서 두 지점을 수신하고 출력으로서 거리를 산출하는 특수한 절차를 의미할수 있고, 이러한 거리는 '슈타이너 거리'라 지칭될 수 있다. 슈타이너 메트릭은 'abs(x2 - x1) + abs(y2 -y1)'로서 거리를 정의할 수 있으며, 여기서 (x1, y1) 및 (x2, y2)는 2D 평면에서의 두 지점의 좌표이다. 용어 '장애물', '매크로', '하드 매크로' 및 '다각형'은, 예컨대, 파워 게이트를 포함하지 않는 플로어플랜의 직선으로된 영역과 관련하여 상호 치환가능하게 사용될 수 있다. 몇몇 경우에, 직선으로된 영역의 형상이 슬립 신호 스티칭(SSS)에 관심 있을 수 있고, 이러한 형상은 각각의 면이 수평이거나 수직일 수 있는 직선으로된일 수 있다. 아래에 더 설명한 바와 같이, (x1, y1)와 (x2, y2) 사이에 하드 매크로가 없다면, SSS는 두 지점 사이의 거리를 계산하기 위해 슈타이너 메트릭을 이용할 수 있다.
도 2a 내지 도 2e는 본 명세서에 서술된 다양한 구현예에 따른 플로어플랜 레이아웃 아키텍처(200)의 다양한 도면들을 도시한다.
구체적으로, 도 2a는 플로어플랜 레이아웃 아키텍처(200)의 블록도(200A)를 도시한다. 도시된 바와 같이, 플로어플랜 레이아웃 아키텍처(200)는 예컨대, 매크로 또는 하드 매크로와 같은 하나 이상의 장애물(204A, 204B, 204C, 204D)을 가지는 집적회로의 플로어플랜(202)을 포함할 수 있다. 그러므로, 하나 이상의 장애물(204A, 204B, 204C, 204D) 각각은, 예컨대, 코어, 메모리, DDR 유닛, 또는 파워 관리 유닛을 가진 집적회로의 구성요소를 나타내는 매크로 또는 하드 매크로에 의해 형성될 수 있다. 장애물(204A, 204B, 204C, 204D)은 포개지지 않은 장애물들의 집합의 일부일 수 있다. 또한, 도시된 바와 같이 각각의 장애물(204A, 204B, 204C, 204D)은, 예컨대, 직사각형 또는 L-자형 영역의 형태로 직선으로된 영역과 유사한 형상의 윤곽으로 형성될 수 있다. 추가적인 설명을 위해, 플로어플랜(202)의 부분(220D)이 도 2d를 참조하여 설명된다.
또한, 플로어플랜(202)은 반도체 웨이퍼에 집적회로 설계를 적용하기 위한 제조 파라미터와 관련된 데이터 및 정보와 연관될 수 있다. 이처럼, 플로어플랜(202)은 집적회로가 반도체 웨이퍼 상에서 에칭될 때 집적회로가 적절하게 기능하게 하는, 집적회로 내의 파라미터 변화를 식별할 수 있다. 플로어플랜(202)은 반도체 기판 또는 웨이퍼 상에서 집적회로를 제조하는 것과 연관된 다양한 데이터 및 정보를 가지는 하나 이상의 데이터 구조를 통해 표현될 수 있고, 또한 집적회로는 복수의 로직 레이어, 복수의 금속 레이어, 및/또는 임의의 개수의 레이어 커플링 비아(layer coupling via)를 포함한 복수의 구조적 레이어로 형성될 수 있다.
도 2b는 플로어플랜 레이아웃 아키텍처(200)의 블록도(200B)를 도시한다. 도시된 바와 같이, 플로어플랜 레이아웃 아키텍처(200)는 칼럼으로 배열된 복수의 파워 게이트(210) 및 복수의 파워 게이트(210)에 슬립 신호를 제공하기 위한 제어 핀(214)을 가지는 집적회로의 플로어플랜(202)을 포함할 수 있다. 도시된 바와 같이, 플로어플랜(202)은 체인의 집합을 포함할 수 있고, 체인 집합 내의 각각의 체인은 파워 게이트(210)의 집합을 포함할 수 있다. 또한, 도 2b에서, 플로어플랜(202)은 매크로 또는 하드 매크로와 같은 장애물을 가지지 않는 것으로 도시되어 있다.
도 2c는 플로어플랜 레이아웃 아키텍처(200)의 블록도(200C)를 도시한다. 도시된 바와 같이, 플로어플랜 레이아웃 아키텍처(200)는 칼럼으로 배열된 복수의 파워 게이트(210) 및 파워 게이트(210)에 슬립 신호를 제공하기 위한 복수의 제어 핀(214A, 214B)을 가지는 플로어플랜(202)을 포함할 수 있다. 이 예에서, 플로어플랜(202)은 복수의 체인(212A, 212B)을 포함하고, 각각의 체인(212A, 212B)은 파워 게이트(210)의 집합을 포함할 수 있다. 또한, 도 2c에서, 플로어플랜(202)은 장애물(예컨대, 매크로 또는 하드 매크로)이 없고 및 복수의 체인(212A, 212B)을 가지는 것으로 도시되어 있다.
몇몇 시나리오에서, 도 2c에 도시된 바와 같이, 복수의 체인(212A, 212B)은 파워 게이트(210)의 제1 체인(212A) 및 파워 게이트(210)의 제2 체인(212B)을 포함할 수 있고, 복수의 제어 핀(214A, 214B)은 제1 제어 핀(214A) 및 제2 제어핀(214B)을 포함할 수 있다. 또한 도시된 바와 같이, 파워 게이트(210)의 제1 체인(212A)은 제1 제어 핀(214A)에 연결도리 수 있고, 파워 게이트(210)의 제2 체인(212B)은 제2 제어 핀(214B)에 연결될 수 있다.
도 2d는 플로어플랜 레이아웃 아키텍처(200)의 블록도(200D)를 도시한다. 도시된 바와 같이, 플로어플랜 레이아웃 아키텍처(200)는 칼럼으로 배열 또는 조직화된 복수의 파워 게이트(210) 및 파워 게이트(210)에 슬립 신호를 제공하기 위한 적어도 하나의 제어 핀(214)을 가지는 집적회로의 플로어플랜(202)을 포함할 수 있다. 또한, 도 2d에서, 플로어플랜(202)은, 예컨대, 매크로 또는 하드 매크로와 같은 적어도 하나 또는 단일의 장애물(204A)을 가진 것으로 도시되어 있다. 추가적인 설명을 위해, 플로어플랜(202)의 부분(200E)이 도 2E를 참조하여 설명된다.
도 2d에 도시된 바와 같이, 장애물(204A)은, 예컨대, 파워 게이트(210)의 제1 시퀀스(220A) 및 파워 게이트(210)의 제2 시퀀스(220B)와 같은 하나 이상의 시퀀스의 파워 게이트를 가로막을 수 있다. 몇몇 경우에, 파워 게이트(210)의 각각의 시퀀스(220A, 220B)는 하나 이상의 수직 칼럼으로 배열될 수 있는 파워 게이트(210)의 선형 시퀀스를 포함할 수 있고, 도 2d에 도시된 바와 같이, 적어도 하나의 장애물(204A)이 파워 게이트(210)의 선형 시퀀스를 가로막을 수 있다.
몇몇 시나리오에서, 파워 게이트(210)의 제1 및 제2 시퀀스(220A, 220B)는 복수의 칼럼으로 조직화될 수 있고, 복수의 칼럼 각각은 복수의 세그먼트(S1, S2, S3)로 나누어질 수 있다. 예컨대, 제1 세그먼트(S1)는 장애물(204A) 아래에 놓일 수 있고, 제3 세그먼트(S3)는 장애물(204A) 위에 놓일 수 있고, 제2 세그먼트(S2)는 제1 및 제3 세그먼트(S1, S3)로부터 어긋나 있을 수 있다. 이러한 경우에, 제2 세그먼트(S2)는 장애물(204A)을 피하도록 제2 세그먼트(S2) 내의 파워 게이트(210)의 위치를 수정함으로써 장애물(204A)을 돌아가도록 라우팅될 수 있다. 리-라우팅(re-routing)이 발생한 후, 제어 핀(214)으로부터의 슬립 신호를 각각의 제1, 제2, 제3 세그먼트(S1, S2, S3) 내의 각각의 파워 게이트(210)를 포함한 파워 게이트(210)로 분배함으로써 집적회로에 대한 슬립 신호 스티칭(SSS)이 수행될 수 있다. 슬립 신호는 제어 핀(214)을 파워 게이트(210)의 시퀀스 내의 제1 파워 게이트에 연결하여 슬립 신호를 각각의 파워 게이트(210)로 각각의 다른 파워 게이트를 통해 제공할 수 있게 함으로써, 제어 핀(214)으로부터 복수의 파워 게이트(210)로 분배될 수 있다. 또한, 몇몇 경우에, 제2 세그먼트(S2) 내의 파워 게이트(210)의 위치는 장애물(204A)을 위회하도록 재위치조절될 수 있다.
도 2e는 도 2d의 플로어플랜(202)을 참조하여 도시된 파워 게이트 체인(230)의 일부분의 블록도(200E)를 도시한다. 도시된 바와 같이, 각각의 파워 게이트(210)는 슬립 입력 핀(SLEEP_IN) 및 슬립 출력 핀(SLEEP_OUT)을 포함하는 적어도 2개의 핀을 가진 셀을 포함할 수 있다. 다양한 시나리오에서, 각각의 파워 게이트(210)의 슬립 입력 핀(SLEEP_IN)은 제어 핀(214)으로부터 또는 다른 파워 게이트(210)의 슬립 출력 핀(SLEEP_OUT)으로부터 슬립 신호를 수신할 수 있다. 동작 시, 슬립 신호가 도착하면, 각각의 파워 게이트(210)는 레일(예컨대, VDD, VSS 등과 같은 파워 서플라이 레일)에 파워를 공급할 수 있는 활성 상태(예컨대, 온(ON) 상태)로 전환될 수 있으며, 이러한 레일로부터 집적회로의 표준 셀(SC)들은 그들의 파워를 얻게 된다.
또한 도 2e에 도시된 바와 같이, 각각의 파워 게이트(210)는 적어도 하나의 트랜지스터(T1)(예컨대, PMOS 트랜지스터) 및 적어도 하나의 버퍼(B1)(예컨대, 연산 증폭기)를 가진 셀로서 구현될 수 있다. 몇몇 시나리오에서, 이러한 컴포넌트(T1, B1)는 슬립 입력 핀(SLEEP_IN)을 통해 슬립 신호를 수신하고 그 슬립 신호를 슬립 출력 핀(SLEEP_OUT)을 통해 제공하기 위해 각각의 셀 내에 배치될 수 있다. 또한, 적어도 하나의 트랜지스터(T1)는 글로벌 VDD 레일 및 전환식(switched) VDD 레일 사이에 연결될 수 있다.
도 3a 및 도 3b는 본 명세서에 서술된 다양한 구현예에 따른 다양한 슈타이너 경로(300)를 도시한다. 예컨대, 도 3a는 장애물을 둘러가는 두 지점 사이의 슈타이너 경로(300A)를 도시하고, 도 3b는 비단순(non-trivial) 조합의 복수의 장애물들을 둘러가는 두 지점 사이의 다른 슈타이너 경로(300B)를 도시한다.
구체적으로, 도 3a는 플로어플랜 내의 두 지점(304A, 306A) 사이의 유클리드 거리(302A)가 유클리드 메트릭(Euclidean metric)을 이용하여 측정될 수 있음을 보여주며, 여기서, 장애물(204E)이 두 지점(304A, 306A) 사이에 존재한다면, 슈타이너 경로(301A)의 거리가 장애물(204E)의 가장자리를 따라감으로써 계산될 수 있다. 본 명세서에 서술된 슬립 신호 스티칭 스킴 및 기술은 두 지점 사이의 슈타이너 경로(301A)의 거리의 더 효율적인 계산을 제공할 수 있고, 그 거리가 장애물(204E)(예컨대, 하드 매크로)의 가장자리를 따라 팔로우잉 함으로써, 슈타이너 메트릭을 이용하여 각각 계산될 수 있는 더 짧은 거리들의 합을 도출할 수 있음이 증명될 수 있다.
또한, 도 3b는 플로어플랜 내의 두 지점(304B, 306B) 사이의 다른 유클리드 거리(302B)가 유클리드 메트릭을 이용하여 측정될 수 있음을 보여주며, 두 지점(304B, 306B) 사이에 복수의 장애물(204E, 204F)이 존재한다면, 슈타이너 경로(301B)의 거리는 장애물(204E, 204F)의 가장자리를 따라감으로써 계산될 수 있다. 본 명세서에 서술된 슬립 신호 스티칭 스킴 및 기술을 이용하면, 두 지점 사이의 슈타이너 경로(301B)의 거리의 더 효율적인 계산이 가능하며, 이 거리가 장애물(204E)(예컨대, 하드 매크로)의 가장자리를 따라감으로써 슈타이너 매트릭을 이용하여 각각 계산될 수 있는 더 작은 거리의 합을 도출할 수 있음이 증명된다. 예컨대, 슈타이너 매트릭을 이용하여, 슈타이너 경로(301B)는 두 지점(304B, 306B) 사이의 슬립 신호 스티칭 경로를 판정하기 위한 효율적인 계산으로서 인정될 수 있다.
도 4a 내지 도 4c는 본 명세서에 서술된 구현예에 따른 슬립 신호 스티칭을 구현하는 방법(400)의 프로세스 도면을 도시한다. 구체적으로, 도 4a는 방법(400)에 대한 전체 프로세스 흐름도를 도시하고, 도 4b는 스티칭을 위한 체인을 준비하는 방법(400)의 프로세스 흐름도를 도시하고, 도 4c는 체인을 스티칭하기 위한 방법(400)의 프로세스 흐름도를 도시한다.
방법(400)이 특정한 동작 실행 순서를 나타낼 수 있으나, 몇몇 경우에 동작들의 다양한 어느 부분들은 상이한 순서로 그리고 상이한 시스템상에서 실행될 수 있음을 이해해야 한다. 몇몇 다른 경우에, 추가 동작 및/또는 단계들이 방법(400)에 추가될 수도 있고, 일부는 방법(400)에서 생략될 수도 있다. 방법(400)은 하드웨어 및/또는 소프트웨어로 구현될 수 있다. 하드웨어로 구현된다면, 방법(400)은 도 1 내지 도 3b를 참조하여 앞서 서술된 바와 같은 다양한 컴포넌트들을 통해 구현될 수 있다. 소프트웨어로 구현된다면, 방법(400)은 본 명세서에 서술된 다양한 슬립 신호 스티칭 스킴 및 기술을 구현하도록 구성될 수 있는 프로그램 또는 소프트웨어 명령어 프로세스로서 구현될 수 있다. 또한, 소프트웨어로 구현된다면, 방법(400)을 구현하는 것과 관련된 다양한 명령어들이 메모리에 저장될 수 있고, 여기서, 프로세서 및 메모리를 갖춘 컴퓨터, 서버, 또는 다양한 다른 컴퓨팅 장치가 방법(400)을 수행하도록 구성될 수 있다.
도 4a 내지 도 4c를 참조하면, 방법(400)은 본 명세서에 서술된 다양한 슬립 신호 스티칭 스킴 및 기술을 구현하기 위해 사용될 수 있다.
예를 들어, 방법(400)은 하나의 체인을 가지는 플로어플랜을 위해 사용될 수 있으나, 복수의 체인을 가지는 플로어플랜도 각각의 체인에 반복적으로 방법(400)을 적용함으로써 스티칭될 수 있다.
방법(400)에 대하여, 입력은 파워 게이트의 집합, 제어 핀, 및 장애물을 의미할 수 있으며, 여기서 파워 게이트는 슬립 신호를 수신하지 않을 수 있다. 출력은 파워 게이트의 집합, 제어 핀, 및 장애물을 의미할 수 있으며, 여기서 파워 게이트는 슬립 신호를 수신한다. 그러므로, 방법(400)은 두 단계를 제공할 수 있는데, 제1 단계에서 플로어플랜은 스티칭을 위해 준비되고, 제2 단계에서, 플로어플랜이 스티칭된다.
도 4a는 방법(400)에 대한 전체적인 프로세스 흐름도를 도시하며, 이는 슬림 신호 스티칭(SSS) 흐름도를 의미할 수 있다. 블록(410)에서, 방법(400)이 시작될 수 있고, 블록(412)에서, 방법(400)은 (다음) 체인을 선택할 수 있다. 판정 블록(414)에서, 방법(400)은 (다음) 체인이 존재하는지 판정할 수 있다. 없다면, 블록(416)에서 방법(400)은 종료한다. 존재한다면, 블록(418)에서, 방법(400)은 도 4b에 도시된 바와 같이 스티칭할 (다음) 체인을 준비할 수 있다. 블록(420)에서, 방법(400)은 도 4c에 도시된 바와 같이 (다음) 체인을 스티칭할 수 있다.
도 4b는 스티칭할 체인을 준비(418)하기 위한 방법(400)의 프로세스 흐름도를 도시한다. 블록(430)에서, 방법(400)은 파워 게이트의 집합과 함께 시작할 수 있다. 블록(432)에서, 방법(400)은 파워 게이트의 집합을 하나 이상의 칼럼으로 분리할 수 있다. 몇몇 경우에, 주어진 칼럼 내의 파워 게이트(또는 셀)는 동일한 x-좌표를 가질 수 있고, 다른 칼럼 내의 파워 게이트(또는 셀)는 다른 x-좌표를 가질 수 있다. 블록(434)에서, 방법(400)은 제1 파워 게이트의 y-좌표를 기초로 칼럼들을 하나의 칼럼으로 그룹화할 수 있다. 몇몇 경우에, 칼럼들이 식별된 후, 칼럼들은 그룹으로 놓여질 수 있고, 주어진 그룹 내의 칼럼들은 동일한 y-좌표를 가지는 제1 파워 게이트(또는 셀)을 가질 수 있다. 블록(436)에서, 방법(400)은 칼럼 내의 제1 파워 게이터로부터 y-좌표가 증가하는 순서로 선별(sort)할 수 있다. 블록(438)에서, 방법(400)은 가장 작은 y-좌표로 선별된 그룹들을 반환할 수 있다. 몇몇 경우에, 그룹들은 그들의 y-좌표를 기초로 분류될 수 있으며, 여기서 하나의 그룹 내의 칼럼들은 그들의 제1 파워 게이트(또는 셀)과 동일한 y-좌표를 가질 수 있다. 그러므로, 제1 그룹은 최소 y-좌표를 가질 수 있고, 제2 그룹은 그 다음 최소 y-좌표를 가지는 것과 같은 방식이다.
몇몇 시나리오에서, 도 4b의 프로세스 흐름도는 제1 단계 1: 준비를 의미할 수 있다. 블록(430)에서, 방법(400)은 하나의 체인을 선택하고, 그 체인 내의 하나의 세트의 파워 게이트를 판독한다. 블록(432)에서, 방법(400)은 파워 게이트를 하나 세트의 칼럼으로 구분할 수 있으며, 여기서 시퀀스 내의 파워 게이트는 동일한 x-좌표를 가지고, 각각의 칼럼은 시퀀스 내의 파워 게이트들이 동일한 x-좌표를 가지고 있는 정렬된 시퀀스의 파워 게이트를 포함할 수 있고, 칼럼(시퀀스) 내의 파워 게이트는 y-좌표가 증가하는 순서로 정렬될 수 있다. 칼럼이 장애물에 의해 가로막혀 있다면, 방법(400)은 하나의 세그먼트가 장애물의 완전히 아래에 놓이고, 다른 세그먼트는 장애물의 완전히 위에 놓이도록, 칼럼으로부터 복수의 세그먼트를 만들 수 있다. 방법(400)은 이러한 칼럼을 가로막는 복수의 장애물에 대하여, 그리고 각각의 다른 칼럼에 대하여 이러한 과정을 수행할 수 있다. 칼럼이 장애물에 의해 가로막히지 않는다면, 이는 원래의 칼럼을 유지하여 하나의 세그먼트를 야기한다. 이러한 프로세스의 결과는 수직 세그먼트의 집합이다.
블록(434)에서, 방법(400)은 그들의 최하위의(lower-most) 파워 게이트의 y-좌표와 동일한 값을 가지는 세그먼트에 대한 그룹을 생성할 수 있고, 이는 수 개의 파워 게이트 그룹을 생성할 수 있다. 각각의 그룹은 최하위 셀의 y-좌표와 동일하다. 블록(436)에서, 방법(400)은 최하위 파워 게이트의 y-좌표가 증가하는 순서로 각각의 그룹을 선별할 수 있다. 선별 후, 제1 그룹은 y-좌표의 최소의 가능한 값을 가지는 (예컨대, 플로어플랜의 바닥에 있는) 최하위 셀을 가지는 칼럼으로부터의 세그먼트들을 포함할 수 있다. 제2 그룹은 y-좌표의 두번째 최소 값을 가지는 최하위 셀을 가지는 세그먼트들을 포함할 수 있는 것과 같은 방식이다. 예를 들어, N개의 그룹은 제1 그룹, 제2 그룹, ... 등으로 라벨링될 것으로 생각된다. 방법(400)은 슬립 신호의 하나 이상의 가능한 소스를 가지는 그룹(S)을 생성할 수 있고, 이러한 그룹의 단독 멥버로서 제어 핀을 추가한다. 이제 플로어플랜이 마련되었고, 스티칭할 준비도 되었다. 그러므로, 몇몇 경우에, 이러한 준비 단계 후(예컨대, 임의의 스티칭이 시작되기 전), 슬립 신호의 소스는 제어 핀일 수 있다.
도 4c는 체인을 스티칭(420)하는 방법(400)의 프로세스 흐름도를 도시한다. 블록(450)에서, 방법(400)은 (다음) 그룹을 시작할 수 있다. 판단 블록(452)에서, 방법(400)은 다음 그룹이 존재하는지 판정할 수 있다. 없다면, 블록(454)에서, 방법(400)은 각각의 체인이 스티칭되어 있는 스티칭된 플로어플랜을 반환할 수 있다. 그렇지 않고 존재한다면, 블록(456)에서, 방법(400)은 하나의 그룹의 칼럼들을 추출할 수 있다. 판단 블록(458)에서, 방법(400)은 다음 칼럼이 존재하는지 판정할 수 있다. 없다면, 방법(400)은 다음 그룹을 철리하기 위해 블록(450)으로 되돌아간다. 그렇지 않고 존재한다면, 블록(460)에서, 방법(400)은 하나의 칼럼 내의 제1 파워 게이트와 가장 가까운 슬립 신호의 소스를 찾을 수 있다. 블록(462)에서, 방법(400)은 슬립 신호 소스를 제1 파워 게이트에 접속 또는 연결할 수 있고, 그 칼럼 내의 나머지 파워 게이트들을 스티칭한다.
몇몇 시나리오에서, 도 4c의 프로세스 흐름도는 제2 단계 2:스티칭이라 지칭할 수 있다. 방법(400)은 아래와 같이 제1 그룹을 처리할 수 있다(블록(450)). 각각의 세그먼트에 대하여, 방법(400)은 제어 핀의 SLEEP_OUT을 제1 그룹 내의 각각의 세그먼트 내의 제1 파워 게이트의 SLEEP_IN에 접속시킬 수 있다. 그 다음, 방법(400)은 제1 파워 게이트의 SLEEP_OUT 핀을 제2(또는 다음) 파워 게이트의 SLEEP_IN 핀에 접속 또는 연결할 수 있고, 세그먼트 내의 각각의 파워 게이트들이 슬립 신호에 접속 또는 연결될 때까지 이러한 식으로 반복한다. 방법(400)은 제1 그룹 내의 세그먼트들을 S에 추가할 수 있고, 그로 인해 제1 그룹의 후보 내의 파워 게이트들이 슬립 신호를 제공하게 된다. 예컨대, 제1 그룹 내의 파워 게이트들이 스티칭된 후, 제1 그룹으로부터의 적어도 하나의 파워 게이트(및/또는 제어 핀)는 다음 그룹, 예컨대, 제2 그룹으로 슬립 신호를 공급할 수 있다.
방법(400)은 아래와 같이 다음 그룹인 제2 그룹을 처리할 수 있다(블록(452)). 제2 그룹 내의 각각의 세그먼트에 대하여, 방법(400)은 세그먼트 내의 제1 파워 게이트와 가장 가까운 슬립 신호 소스를 찾을 수 있다(블록(458)). 방법(400)은 세그먼트 내의 마지막 파워 게이트와 가장 가까운 슬립 신호 소스를 찾을 수 있다. 방법(400)은 최소 간격을 가질 수 있고 소스의 SLEEP_OUT을 파워 게이트의 SLEEP_IN 핀에 접속 또는 연결할 수 있는 (소스 및 파워 게이트) 쌍을 선택할 수 있다. 둘 모두 동일하다면, 방법(400)은 그것의 SLEEP_OUT 핀의 최소 팬아웃(fan-out)을 가지는 소스를 가지는 쌍을 선택할 수 있다. 그 다음, 방법(400)은 파워 게이트들이 나타나는 순서대로 세그먼트 내의 파워 게이트들을 스티칭(예컨대, 접속 또는 연결)할 수 있다(블록(462)). 방법(400)은 제2 그룹 내의 세그먼트들을 그룹(S)에 추가하여, 제1 그룹 및 제2 그룹의 후보 내의 제어 핀 및 세그먼트들이 슬립 신호를 제공하게 된다.
방법(400)은 그 다음 단계인 제3 그룹에도 계속하고, 각각의 그룹들이 스티칭될 때까지 반복한다(블록(458, 460, 463). 일반적으로, 이것은 파워 게이트가 수직 칼럼으로 설치된 때 가능할 수 있다. 그러므로, 각각의 파워 게이트는 하나의 칼럼에 속할 수 있다.
몇몇 구현방법에서, 방법(400)은 두(2) 지점 사이의 거리를 계산하기 위해 슈타이너 메트릭을 이용할 수 있다. 예컨대, p1 및 p2를 각각 좌표 (x1, y1) 및 (x2, y2)를 가지는 2차원 평면 내의 2개의 별개의 점이라 하자. p1과 p2의 슈타이너 거리는 |x2 - x1| + |y2 - y1|로서 정의될 수 있다. 그러나, 두 지점 사이의 지선이 장애물에 의해 가려진다면, 슈타이너 거리는 그 장애물의 가장자리를 따라감으로써 계산될 수 있다. 본 명세서에 서술된 슬립 신호 스티칭(SSS) 스킴 및 기술은 플로어플랜이 임의의 개수의 장애물(매크로 또는 하드 매크로)를 포함할 때 플로어플랜 내의 두 지점 사이의 슈타이너 거리를 자주 계산할 수 있다.
(x1, y1)와 (x2, y2) 사이에 단일 하드 매크로가 존재할 때, 거리 계산 프로세스는 (x1, y1)에서 (x2, y2)으로 직선을 그림으로써 시작하여, 하드 매크로의 경계와 교차하는 선의 모든 지점을 찾는다. (x1, y1)와 (x2, y2) 간의 거리는 아래와 같이 계산될 수 있다. 제1 단계에서, (x1, y1)에서 시작하여, (x1, y1)부터 제1 교차점(이를 i1이라 함)까지의 거리를 계산하기 위해 슈타이너 메트릭을 사용한다. 제2 단계에서, 교차점(i1)이 하드 매크로의 경계 상에 있으므로, 이 경로의 다음 지점(이를 i2라 함)은 또한 동일한 하드 매크로의 경계 상에 있다. 제3 단계에서, 하드 매크로의 가장자리를 따라가며 이들 가장자리의 길이를 합산함으로써 i1에서 i2까지의 거리를 계산한다. 2가지 가능한 방향이 존재하므로(시계방향 및 시계반대방향), 가장 작은 것을 선택하고, 그 거리를 제1 단계에서의 거리에 추가한다. 제4 단계에서, 경로의 다음 지점은 하드 매크로의 경계 상의 다른 지점일 수도 있고, 또는 (x2, y2)일 수도 있다. 제5 단계에서, 경로의 다음 지점이 하드 매크로의 경계 상에 있다면, 제3 단계에서의 절차를 이용하여 거리를 계산하고, 그것을 총 거리에 추가하며, 이를 반복한다. 경로의 다음 지점이 (x2, y2)이면, 슈타이너 메트릭을 이용하여 거리를 계산하고, 총 거리에 추가한다. 더 이상의 지점은 존재하지 않는다. 총 거리가 계산되었다. 몇몇 경우에, (x1, y1)와 (x2, y2)사이에 복수의 하드 매크로가 존재한다면, 경로 내의 두 지점이 별개의 하드 매크로의 가장자리 상에 있을 때 슈타이너 거리를 계산하기 위해 슈타이너 메트릭을 이용함으로써, 제1 내지 제5 단계의 절차들은 복수의 하드 매크로에도 적용될 수 있다.
몇몇 시나리오에서, 방법(400)은 이러한 방법을 이용하여 거리를 계산할 수 있다. 예를 들어, p1 및 p2를 각각 좌표 (x1, y1) 및 (x2, y2)를 가지는 2차원 평면 내의 2개의 별개의 점이라 하자. p1과 p2를 잇는 직선이 한 세트의 직선으로된 다각형과 교차한다고 가정할 수 있다. 입력은 두 점, 및 그 두 점을 잇는 직선과 교차하는 하나의 세트의 직선으로된 다각형을 의미한다. 출력은 슈테이너 경로가 다각형의 가장자리를 따라가는 지점들 간의 최단 슈타이너 거리를 의미할 수 있다. p1과 p2를 잇는 직선과 교차하는 각각의 다각형에 대하여, 방법(400)은 다각형의 가장자리와 직선의 교차점을 찾을 수 있다. 방법(400)은 p1으로부터의 유클리드 거리에 따라 점들을 선별할 수 있다. 몇몇 경우에, 짝수개의 교차점이 존재할 수 있고 제1 및 제2 교차점이 동일한 다각형의 별개의 가장자리에 속한다는 관측이 이루어질 수 있다. 유사하게, 이러한 관측은 제3 및 제4 교차점, 제5 및 제6 교차점 등등에 대해서도 이루어질 수 있다.
p1에서 시작하여, 방법(400)은 p1에서 제1 교차점까지의 슈타이너 거리를 계산할 수 있다. 방법(400)은 두 교차점을 포함하는 다각형의 가장자리를 따라 진행함으로써 제1 교차점에서 제2 교차점까지의 최단 거리를 찾을 수 있다. 방법(400)은 이 값은 현재 총 거리에 추가할 수 있다. 방법(400)은 제2 교차점부터 별개의 다각형의 가장자리 상에 있을 수 있는 제3 교차점까지의 슈타이너 거리를 찾을 수 있다. 방법(400)은 그 거리를 현재의 총 거리에 추가할 수 있다. 방법(400)은 제3 및 제4 교차점에 대해서도, 그리고 마지막 교차점에 도달할 때까지 이러한 절차를 적용할 수 있다. 방법(400)은 마지막 교차점에서 p2까지의 슈타이너 거리를 찾을 수 있고, 방법(400)은 그 슈타이너 거리를 현재의 총 거리에 추가할 수 있다. 몇몇 경우에, 이것은 임의의 개수의 중간 다각형을 내비게이팅(navigating)함으로써, p1에서 p2까지의 최단 슈타이너 거리를 산출한다.
본 명세서에 서술된 다양한 기술에 따라, 방법(400)은 단일 단계에서 하나의 체인 내의 파워 게이트를 자동 접속 또는 연결할 수 있다. 방법(400)은 복구된(healed) 파워 게이트 칼럼이 있든 없든 임의의 플로어플랜을 다룰 수 있다. 방법(400)은 몇몇 파워 게이트가 SLEEP_OUT 신호를 가지지 않을 때 접속을 생성할 수 있다.
본 명세서에 서술된 바와 같이, 제어 핀은 슬립 신호의 원시적인 소스를 포함할 수 있고, 제어핀은, 예컨대, 파워 게이트와 같은 컴포넌트가 그것으로부터 슬립 신호를 수신하는 소스를 포함할 수 있다. 파워 게이트는 SLEEP_IN 핀 및 SLEEP_OUT 핀과 같은 적어도 두(2) 개의 핀을 가진 셀을 포함할 수 있다. 파워 게이트의 SLEEP_IN 핀은 제어 핀 또는 다른 파워 게이트의 SLEEP_OUT 핀로부터 슬립 신호를 수신할 수 있다. 몇몇 경우에, 몇몇 SLEEP_OUT 핀는 연결되지 않을 수 있다. 체인은 파워 게이트, 제어핀, 및 스테이트(state)의 집합을 포함할 수 있고, 이는 슬립 신호 스티칭(SSS) 후 SLEEP_IN 핀 및 SLEEP_OUT 핀의 연결을 설명할 수 있다. 몇몇 경우에, 집합들은 스티칭이 수행되기 전에도 체인이라 지칭될 수도 있다. 장애물은 직사각형 또는 L자형과 같은, 2차원적(2D) 경계를 가진 직선으로된 영역을 포함할 수 있다. 몇몇 장애물들은 파워 게이트의 선형의 수직 시퀀스를 가로막을 수 있다. 플로어플랜은 체인들의 집합 및 포개지지 않은 장애물들의 집합을 포함할 수 있고, 각각의 장애물은 플로어플랜 내에 한정될 수 있다. 또한, 플로어플랜 내의 두 지점 사이의 거리가 식별된다면, 이 거리는 슈타이너 메트릭을 이용하여 측정될 수 있다. 두 지점 사이에 장애물이 존재한다면, 그 거리는 장애물의 가장자리를 따라감으로써 계산될 수 있다.
또한, 슬립 신호 스티칭(SSS)은 파워 게이트의 삽입 후 시작될 수 있다. SSS는 파워 게이트의 개수 또는 물리적 위치를 변경하지 않고, SSS는 단지 각각의 파워 게이트에 슬립 신호를 공급할 수 있다. 몇몇 경우에, 플로어플랜은 제어 핀을 포함할 수 있고, SSS의 관점에서는 각각의 파워 게이트는 유사한 것으로 간주될 수 있다. 플로어플랜이 차지하는 2차원 구역의 좌표 축은 좌에서 우로 증가하는 x-좌표 및 아래에서 위로 증가하는 y-좌표를 가지는 오른손 좌표 시스템을 의미할 수 있으며, 이러한 가정으로 인해 일반성이 상실되어서는 안 된다.
도 5는 본 명세서에 서술된 다양한 구현예에 따른 슬립 신호 스티칭을 구현하기 위한 방법(500)의 프로세스 흐름도를 도시한다.
방법(500)이 특정 순서의 작업 실행을 나타낼 수 있으나, 몇몇 경우에, 작업들의 다양한 어느 부분들은 상이한 순서로 그리고 상이한 시스템 상에서 실행될 수도 있음을 이해해야 한다. 몇몇 다른 경우에, 방법(500)에 추가적인 작업 및/또는 단계들이 추가될 수도 있고, 생략될 수도 있다. 방법(500)은 하드웨어 및/또는 소프트웨어 구현될 수 있다. 하드웨어로 구현된다면, 방법(500)은 도 1 내지 도 4c를 참조하여 본 명세서에 서술된 바와 같은 다양한 컴포넌트로 구현될 수 있다. 소프트웨어로 구현된다면, 방법(500)은 본 명세서에 서술된 다양한 슬립 신호 스티칭 스킴 및 기술을 구현하도록 구성될 수 있는 프로그램 또는 소프트웨어 명령어 프로세스로서 구현될 수 있다. 또한, 소프트웨어로 구현된다면, 방법(500)을 구현하는 것과 관련된 다양한 정보는 메모리에 저장될 수 있으며, 컴퓨터, 서버, 또는 프로세서와 메모리를 구비한 다양한 다른 컴퓨팅 장치가 방법(500)을 수행하도록 구성될 수 있다.
도 5를 참조하면, 방법(500)은 다양한 슬립 신호 스티칭 스킴 및 기술을 구현하기 위해 사용될 수 있다. 블록(510)에서, 방법(500)은 복수의 파워 게이트, 장애물, 슬립 신호를 제공하기 위한 제어 핀을 가진 집적회로의 플로어플랜을 수신할 수 있다. 각각의 파워 게이트는 슬립 입력 핀 및 슬립 출력 핀을 포함하여 적어도 2개의 핀을 가진 셀을 포함할 수 있고, 각각의 파워 게이트의 슬립 입력 핀은 제어 핀 또는 다른 파워 게이트의 슬립 출력 핀으로부터 슬립 신호를 수신할 수 있다. 장애물은 직사각형 또는 L자형 형태인 직선으로된 영역을 포함할 수 있다. 장애물은 코어, 메모리, DDR 유닛, 또는 파워 관리 유닛을 갖춘 집적회로의 구성요소들을 나타내는 매크로에 의해 정의될 수 있다.
블록(520)에서, 방법(500)은 장애물이 파워 게이트의 시퀀스를 가로막는 위치를 식별할 수 있다. 파워 게이트의 시퀀스는 하나 이상의 수직 칼럼으로 배열된 파워 게이트들의 선형 시퀀스를 포함할 수 있고, 장애물은 파워 게이트의 선형 시퀀스를 가로막을 수 있다.
블록(530)에서, 방법(500)은 파워 게이트의 시퀀스를 하나의 칼럼으로 조직화할 수 있고, 방법(500)은 칼럼을 세그먼트로 분할할 수 있는데, 제1 세그먼트는 장애물 아래에 놓이고, 제2 세그먼트는 장애물 위에 놓이고, 제3 세그먼트는 제1 및 제2 세그먼트로부터 어긋나 있다. 장애물을 회피하도록 제3 세그먼트 내의 파워 게이트의 위치를 수정함으로써, 장애물을 우회하는 경로의 제3 세그먼트에 대한 정보가 수신될 수 있다. 이러한 정보는 장애물을 우회하도록 제3 세그먼트 내위 파워 게이트의 위치를 재조정하기 위해 제3 세그먼트 내의 파워 게이트의 위치를 수정하는 것과 관련된 정보를 포함할 수 있다. 방법(500)은 슈타이너 메트릭을 이용하여 플로어플랜 내의 두 지점 간의 거리를 측정할 수 있고, 두 지점 사이에 장애물이 존재한다면, 이 거리는 장애물의 가장자리를 따라감으로써 계산될 수 있다.
블록(550)에서, 방법(500)은 제어 핀으로부터 각각의 제1, 제2 및 제3 세그먼트 내의 각각의 파워 게이트를 포함하는 복수의 파워 게이트로 슬립 신호를 분배함으로써 집적회로에 대한 슬립 신호 스티칭을 수행할 수 있다. 방법(500)은 제어 핀을 각각의 파워 게이트에 연결하여 각각의 파워 게이트에 슬립 신호를 제공함으로써 제어 신호로부터 복수의 파워 게이트에 슬립 신호를 분배할 수 있다. 몇몇 경우에, 슬립 신호가 도달하면 레일에 전력을 공급하는 활성화 상태(즉, 온(ON) 상태)로 각각의 파워 스위치를 전환할 수 있고, 그 레일로부터 집적회로의 표준 셀(SC)들이 그들의 전력을 얻게 된다.
도 6은, 예컨대, 도 1의 컴퓨팅 장치(102) 및 그것과 연관된 컴포넌트를 포함하여, 본 명세서에 서술된 다양한 구현예를 구현하는데 적합한 컴퓨팅 장치(600)의 블록도이다. 그러므로, 컴퓨팅 장치(600)는 컴퓨팅 장치(102)로 구현될 수 있고, 유무선 네트워크를 통해 다양한 다른 컴퓨팅 장치들과 네트워크 통신하도록 구성될 수도 있다.
컴퓨팅 장치(600)는, 예컨대, 서버, 퍼스널 컴퓨터(PC), 랩탑, 노트북, 모바일 통신 장치 또는 이들과 유사한 것과 같은, 다양한 컴퓨팅 장치로 구현될 수 있다. 컴퓨팅 장치(600)는, 예컨대, 프로세싱 컴포넌트(604)(예컨대, 프로세서, 디지털 신호 프로세서(DSP) 등), 시스템 메모리 컴포넌트(606)(예컨대, RAM), 정적 저장 컴포넌트(608)(예컨대, ROM), 디스크 드라이브 컴포넌트(610)(예컨대, 자기 또는 광), 네트워크 인터페이스 컴포넌트(612)(예컨대, 모뎀 또는 이더넷 카드), 디스플레이 컴포넌트(614)(예컨대, CRT 또는 LCD), 입력 컴포넌트(616)(예컨대, 키보드), 커서 컨트롤 컴포넌트(618)(예컨대, 마우스 또는 트랙볼) 및 이미지 캡처 컴포넌트(620)(예컨대, 아날로그 또는 디지털 카메라)와 같은 다양한 서브시스템 및/또는 컴포넌트들을 상호연결하는 버스(602)(또는 정보를 교환하기 위한 다른 통신 메커니즘)을 포함할 수 있다. 몇몇 구현예에서, 디스크 드라이브 컴포넌트(610)는 하나 이상의 디스크 드라이브 컴포넌트를 가진 데이터베이스를 포함할 수 있다.
컴퓨팅 장치(600)는 시스템 메모리 컴포넌트(606)에 담긴 하나 이상의 명령어들의 하나 이상의 시퀀스를 실행하는 프로세서(604)에 의해 다양한 특정 작업들을 수행할 수 있다. 이러한 명령어는 정적 저장 컴포넌트(508) 또는 디스크 드라이브 컴포넌트(510)와 같은, 다른 컴퓨터 판독 가능한 매체로부터 시스템 메모리 컴포넌트(506)로 읽어올 수 있다. 몇몇 경우에, 하드와이어(hard-wired) 회로는 본 명세서에 서술된 다양한 스킴 및/또는 기술을 시행하기 위해 소프트웨어 명령어를 대신하여, 또는 그것과 조합하여 사용될 수 있다.
로직은 컴퓨터 판독 가능한 매체 내에 인코딩될 수 있는데, 이는 실행을 위해 프로세서(604)에 명령어를 제공하는데 참여하는 임의의 매체를 의미할 수 있다. 이러한 매체는 비휘발성 메체 및 휘발성 매체를 포함한 다수의 형태를 취할 수 있는데, 이에 제한되는 것은 아니다. 다양한 구현예에서, 비휘발성 매체는 디스크 드라이브 컴포넌트(610)와 같은 광 또는 자기 디스크를 포함하고, 휘발성 매체는 시스템 메모리 컴포넌트(606)와 같은 동적 메모리를 포함한다.
컴퓨터 판독 가능한 매체의 몇몇 일반적인 형태는, 예컨대, 플로피 디스크, 플렉시블 디스크, 하드 디스크, 자기 테이프, 임의의 다른 광 매체, 천공 카드, 종이 테이프, 홀의 패턴을 가지는 임의의 다른 물리적 매체, RAM, PROM, EPROM, FLASH-EPROM을 포함한다.
다양한 구현예에서, 본 명세서에 서술된 슬립 신호 스티칭 스킴 및 기술을 실시하기 위한 명령어 시퀀스의 실행은 컴퓨팅 장치(600)에 의해 수행될 수 있다. 본 명세서에 서술된 다른 구현예에서, 통신 링크(630)(예컨대, 무선 통신, 모바일, 및/또는 셀룰러 폰 네트워크를 포함하여 LAN, WLAN, PTSN 및/또는 다른 다양한 유무선 네트워크)에 의해 연결된 복수의 컴퓨팅 장치(600)가 서로 협력하여 본 명세서의 구현예들을 실시하기 위한 명령어 시퀀스를 수행할 수 있다.
다양한 구현예에서, 컴퓨팅 장치(600)는 통신 링크(630) 및 통신 인터페이스(612)를 통해 프로그램(즉, 애플리케이션 코드)을 포함하는, 메시지, 데이터, 정보 및 명령어를 전송 및 수신할 수 있다. 또한, 실행을 위해 디스크 드라이브 컴포넌트(610) 또는 몇몇 다른 비휘발성 저장 컴포넌트 내에 수신 및/또는 저장된, 수신된 프로그램 코드는 프로세서(604)에 의해 실행될 수 있다.
본 명세서에 서술된 다양한 기술의 구현예는 다수의 범용 또는 특수 목적용 컴퓨팅 시스템 환경 또는 구성과 함께 운영될 수 있다. 본 명세서에 서술된 다양한 기술과 함께 사용하기 적합한 컴퓨팅 시스템, 환경, 및/또는 구성의 예는 퍼스널 컴퓨터, 서버 컴퓨터, 휴대용 또는 랩탑 장치, 멀티프로세서 시스템, 마이크로프로세서 기반 시스템, 셋탑박스, 프로그래밍 가능한 고객 전자장치, 네트워크 PC, 미니 컴퓨터, 메인프레임 컴퓨터, 스마트폰, 태블릿, 웨어러블 컴퓨터, 클라우드 컴퓨팅 시스템, 가상 컴퓨터 및 해양 전자 장치 등을 포함하지만, 이에 제한되는 것은 아니다.
본 명세서에 서술된 다양한 기술들은 컴퓨터에 의해 실행되는 프로그램 모듈과 같은, 컴퓨터 실행 가능한 명령어의 일반적인 환경에서 구현될 수 있다. 프로그램 모듈은 특정한 작업을 수행하거나 특정한 추상적 데이터 유형을 구현하는 루틴, 프로그램, 오브젝트, 컴포넌트, 데이터 구조 등을 포함한다. 또한, 각각의 프로그램 모듈은 그 자신의 방식으로 구현될 수 있으며, 모든 프로그램 모듈이 동일한 방식으로 구현될 필요는 없다. 프로그램 모듈이 단일 컴퓨팅 시스템상에서 실행할 수 있지만, 몇몇 구현예에서, 프로그램 모듈은 서로 통신하도록 조절된 별개의 컴퓨팅 시스템들 또는 장치들 상에서 구현될 수도 있음을 이해해야 한다. 또한, 프로그램 모듈은 하드웨어 및 소프트웨어의 몇몇 조합일 수 있으며, 이때 프로그램 모듈에 의해 수행되는 특정 작업들은 하드웨어 또는 소프트웨어에 의해 또는 이 둘의 몇몇 조합에 의해 수행될 수 있다.
본 명세서에 서술된 다양한 기술들은 분산 컴퓨팅 환경에서 구현될 수 있다.
또한, 본 명세서에 제공된 설명들은 어느 특수한 구현예에 관한 것으로 간주될 수 있다. 본 명세서에 제공된 설명들은 당업자들이 청구항의 내용에 의해 본 명세서에 정의된 임의의 내용을 만들고 이용하는 것을 가능하게 할 목적으로 제공된 것임을 이해해야 한다.
이제, 장치의 구현예가 서술된다. 이 장치는 복수의 파워 게이트, 장애물, 및 슬립 신호를 제공하는 제어 핀을 가진 집적회로의 플로어플랜을 수신하는 수신 모듈을 포함할 수 있다. 이 장치는 장애물이 파워 게이트의 시퀀스를 가로막는 위치를 식별하고, 파워 게이트의 시퀀스를 하나의 칼럼으로 조직화하고, 그 칼럼을 장애물 아래에 놓인 제1 세그먼트, 장애물 위에 놓인 제2 세그먼트, 및 제1 및 제2 세그먼트로부터 어긋나 있는 제3 세그먼트 등의 세그먼트로 분할할 수 있다. 제3 세그먼트는 장애물을 우회하는 경로일 수 있다. 이 장치는 제어 핀으로부터 각각의 제1, 제2, 및 제3 세그먼트 내의 각각의 파워 게이트를 포함하는 복수의 파워 게이트로 슬립 신호를 분배함으로써 집적회로에 대한 슬립 신호 스티칭을 수행하는 스티칭 모듈을 포함할 수 있다.
이제, 방법의 구현예가 서술된다. 이 방법은 복수의 파워 게이트, 장애물, 및 슬립 신호를 제공하는 제어 핀을 가진 집적회로의 플로어플랜을 수신하는 단계를 포함할 수 있다. 이 방법은 장애물이 파워 게이트의 시퀀스를 가로막는 위치를 식별하는 단계를 포함할 수 있다. 이 방법은 파워 게이트의 시퀀스를 하나의 칼럼으로 조직화하는 단계를 포함할 수 있다. 이 방법은 그 칼럼을 장애물 아래에 놓인 제1 세그먼트, 장애물 위에 놓인 제2 세그먼트, 및 제1 및 제2 세그먼트로부터 어긋나 있는 제3 세그먼트 등의 세그먼트로 분할하는 단계를 포함할 수 있다. 3 세그먼트는 장애물을 회피하도록 제3 세그먼트 내의 파워 게이트의 위치를 수정함으로써 장애물을 우회하는 경로일 수 있다. 이 방법은 제어 핀으로부터 각각의 제1, 제2, 및 제3 세그먼트 내의 각각의 파워 게이트를 포함하는 복수의 파워 게이트로 슬립 신호를 분배함으로써 집적회로에 대한 슬립 신호 스티칭을 수행하는 단계를 포함할 수 있다.
이제, 컴퓨터에 의해 실행될 때 컴퓨터가 복수의 파워 게이트, 장애물, 및 슬립 신호를 제공하는 제어 핀을 가진 집적회로의 플로어플랜을 수신하게 만드는 복수의 컴퓨터-실행 가능한 명령어를 저장하고 있는 비일시적 컴퓨터 판독 가능한 매체의 구현예가 서술된다. 이 명령어는 컴퓨터가 장애물이 파워 게이트의 시퀀스를 가로막는 위치를 식별하게 만들 수 있다. 이 명령어는 컴퓨터가 파워 게이트의 시퀀스를 하나의 칼럼으로 조직화하게 만들 수 있다. 이 명령어는 컴퓨터가 그 칼럼을 장애물 아래에 놓인 제1 세그먼트, 장애물 위에 놓인 제2 세그먼트, 및 제1 및 제2 세그먼트로부터 어긋나 있는 제3 세그먼트 등의 세그먼트로 분할하게 만들 수 있다. 3 세그먼트는 장애물을 회피하도록 제3 세그먼트 내의 파워 게이트의 위치를 수정함으로써 장애물을 우회하는 경로일 수 있다. 이 명령어는 제어 핀으로부터 각각의 제1, 제2, 및 제3 세그먼트 내의 각각의 파워 게이트를 포함하는 복수의 파워 게이트로 슬립 신호를 분배함으로써 컴퓨터가 집적회로에 대한 슬립 신호 스티칭을 수행하도록 만들 수 있다.
청구항의 내용은 본 명세서에 제공된 구현예 및 설명으로 제한되지 않으며, 청구항에 따른 구현예들의 일부를 포함하는 그 구현예 및 다른 구현예의 엘리먼트들의 조합의 수정된 형태를 포함하도록 의도된 것임을 이해해야 한다. 임의의 이러한 구현예를 개발할 때, 임의의 엔지니어링 또는 설계 프로젝트에서, 구현예마다 다를 수 있는 시스템 관련 및 비지니스 관련 제한사항을 준수하는 것과 같은 개발자의 특수한 목적을 달성하기 위해, 구현예에 특정된 다양한 판단이 이루어져야 함을 이해해야 한다. 또한, 이러한 개발 노력이 복잡하고 시간 소모적일 수 있지만, 본 명세서의 교시를 받은 당업자들에게는 설계, 제조 및 생산의 일상적인 업무임을 이해해야 한다.
첨부된 도면에 그 예가 도시되어 있는 다양한 구현예들이 상세하게 참조되었다. 아래의 상세한 설명에서, 다수의 구체적인 세부사항들은 본 명세서에 제공된 내용의 완전한 이해를 돕기 위해 제시된 것이다. 그러나, 여기 제시된 내용은 이러한 구체적인 세부사항 없이도 실시될 수 있다. 몇몇 다른 예에서, 공지된 방법, 절차, 컴포넌트, 회로, 및 네트워크는 실시예들의 세부사항을 불필요하게 모호하게 하지 않기 위해 상세하게 설명되지 않았다.
또한, 용어 '제1', '제2' 등이 다양한 엘리먼트를 설명하기 위해 본 명세서에서 사용될 수 있지만, 이러한 엘리먼트들이 이러한 용어에 의해 제한되어서는 안 된다는 것을 이해해야 한다. 이러한 용어들은 단지 한 엘리먼트를 다른 엘리먼트와 구별하기 위해 사용된 것이다. 예를 들어, 제1 엘리먼트가 제2 엘리먼트로 불릴 수도 있고, 제2 엘리먼트가 제1 엘리먼트로 불릴 수도 있다. 제1 및 제2 엘리먼트는 각각의 두 엘리먼트 모두일 수도 있으나, 이들이 동일한 엘리먼트로 간주되어서는 안 된다.
본 명세서에 제공된 내용의 설명에 사용된 용어들은 특정 구현예를 설명하기 위한 목적일 뿐이며, 본 명세서에 제공된 내용을 제한하려는 의도는 아니다. 본 명세서 및 첨부된 청구항에 제공된 내용의 설명에 사용된 단수 형태 "하나", "하나의", "그"는 그 문맥에서 분명히 다르게 언급하지 않았다면 복수의 형태도 포함하도록 의도되었다. 본 명세서에서 사용된 용어 "및/또는"은 하나 이상의 연관된 목록의 항목들의 임의의 모든 가능한 조합을 포함하는 의미이다. 용어 "포함하다", "포함하는", "구비하다" 및/또는 "구비한"은 본 명세서에서 사용된 때 언급된 특징, 정수, 단계, 동작, 엘리먼트, 및/또는 컴포넌트의 존재를 명시한 것이지만, 하나 이상의 다른 특징, 정수, 단계, 동작, 엘리먼트, 컴포넌트 및/또는 이들의 그룹의 존재 또는 추가를 배제하는 것은 아니다.
여기서 사용된 때, 용어 "만약"은 문맥에 따라 "~한 때", 또는 "~하면", 또는 "판정에 응답하여", 또는 "탐지에 응답하여"의 의미로 해석될 수 있다. 이와 유사하게, 문구 "~로 판정되면" 또는 "[언급된 조건 또는 이벤트]가 탐지된다면"은 문맥에 따라 "판정 시", 또는 "판정에 응답하여" 또는 "[언급된 조건 또는 이벤트]의 탐지 시" 또는 "[언급된 조건 또는 이벤트]의 탐지에 응답하여"의 의미로 해석될 수 있다. 용어 "위" 및 "아래"; "상부" 및 "하부"; "위로" 및 "아래로"; "밑에" 및 "위에" 및 주어진 지점 또는 엘리먼트 위 또는 아래의 상대적 위치를 나타내는 다른 유사한 용어들이 본 명세서에 서술된 다양한 기술의 몇몇 구현예와 관련하여 사용될 수 있다.
앞선 내용은 본 명세서에 서술된 다양한 기술의 구현예에 관한 것이지만, 아래의 청구항에 의해 판단될 수 있는 본 명세서의 내용에 따른 다른 및 추가적인 구현예가 고안될 수도 있다.
본 발명의내용이 구조적 특징 및/또는 방법론적 행위에 특정된 언어로 서술되었으나, 첨부된 청구항에 의해 정의되는 본 발명의내용은 상술된 특정한 특징 또는 행위로 반드시 제한되는 것은 아님을 이해해야 한다. 그보다는, 상술된 특정한 특징 및 행위는 청구항을 구현하기 위한 예시적인 형태로서 개시된 것이다.

Claims (20)

  1. 복수의 파워 게이트, 장애물, 및 슬립 신호를 제공하는 제어 핀을 가진 집적회로의 플로어플랜을 수신하는 수신 모듈;
    장애물이 파워 게이트의 시퀀스를 가로막는 위치를 식별하고, 파워 게이트의 시퀀스를 하나의 칼럼으로 조직화하고, 상기 칼럼을 제1 세그먼트는 장애물 아래에 놓여 있고, 제2 세그먼트는 장애물 위에 놓여 있고, 제3 세그먼트는 제1 및 제2 세그먼트로부터 어긋나 있는 세그먼트들로 분할하는 식별 모듈로서, 상기 제3 세그먼트는 장애물을 우회하는 경로인, 상기 식별 모듈; 및
    상기 제어 핀으로부터 각각의 제1, 제2, 및 제3 세그먼트 내의 각각의 파워 게이트를 포함하는 복수의 파워 게이트로 슬립 신호를 분배함으로써 집적회로에 대한 슬립 신호 스티칭을 수행하는 스티칭 모듈을 포함하는 것을 특징으로 하는 장치.
  2. 제 1 항에 있어서, 상기 플로어플랜은 체인의 집합을 포함하고, 상기 체인의 집합 내의 각각의 체인은 상기 제어 핀에 연결된 파워 게이트들의 집합을 포함하는 것을 특징으로 하는 장치.
  3. 제 1 항에 있어서, 상기 플로어플랜은 하나 이상의 포개지지 않은 장애물들의 집합의 일부인 장애물을 포함하는 것을 특징으로 하는 장치.
  4. 제 1 항에 있어서, 장애물은 직선으로된 장애물을 포함하는 것을 특징으로 하는 장치.
  5. 제 1 항에 있어서, 파워 게이트의 시퀀스는 하나 이상의 수직 칼럼으로 배열된 파워 게이트의 선형 시퀀스를 포함하고, 장애물은 파워 게이트의 선형 시퀀스를 가로막는 것을 특징으로 하는 장치.
  6. 제 1 항에 있어서, 제3 세그먼트는 장애물을 우회하도록 재조정된 위치 내에 있는 파워 게이트를 포함하는 것을 특징으로 하는 장치.
  7. 제 1 항에 있어서, 상기 플로어플랜 내의 두 지점 간의 거리는 슈타이너 메트릭(Steiner metric)을 이용하여 측정되고, 상기 두 지점 사이에 장애물이 존재한다면, 상기 거리는 장애물의 가장자리를 따라감으로써 계산되는 것을 특징으로 하는 장치.
  8. 제 1 항에 있어서, 상기 스티칭 모듈은 상기 제어 핀을 각각의 파워 게이트에 연결하여 각각의 파워 게이트에 슬립 신호를 제공함으로써, 상기 제어 핀으로부터 복수의 파워 게이트로 슬립 신호를 분배하는 것을 특징으로 하는 장치.
  9. 제 1 항에 있어서, 각각의 파워 게이트는 슬립 입력 핀 및 슬립 출력 핀을 포함하여 적어도 2개의 핀을 가진 셀이고, 각각의 파워 게이트의 슬립 입력 핀은 상기 제어 핀 또는 다른 파워 게이트의 슬립 출력 핀으로부터 슬립 신호를 수신하는 것을 특징으로 하는 장치.
  10. 제 1 항에 있어서, 장애물은 코어, 메모리, DDR(double data rate) 유닛, 또는 파워 관리 유닛을 가진 집적회로의 구성요소를 나타내는 하드 매크로에 의해 형성되는 것을 특징으로 하는 장치.
  11. 제 1 항에 있어서, 각각의 파워 게이트에 슬립 신호가 도달하면, 각각의 파워 게이트는 레일에 전력을 공급하는 활성 상태로 전환되며, 상기 레일로부터 집적회로의 표준 셀(SC)들이 그들의 전력을 얻는 것을 특징으로 하는 장치.
  12. 복수의 파워 게이트, 장애물, 및 슬립 신호를 제공하는 제어 핀을 가진 집적회로의 플로어플랜을 수신하는 단계;
    장애물이 파워 게이트의 시퀀스를 가로막는 위치를 식별하는 단계;
    파워 게이트의 시퀀스를 하나의 칼럼으로 조직화하는 단계;
    상기 칼럼을 제1 세그먼트는 장애물 아래에 놓여 있고, 제2 세그먼트는 장애물 위에 놓여 있고, 제3 세그먼트는 제1 및 제2 세그먼트로부터 어긋나 있는 세그먼트들로 분할하는 단계로서, 상기 제3 세그먼트는 장애물을 회피하도록 제3 세그먼트 내의 파워 게이트의 위치를 수정함으로써 장애물을 우회하는 경로인, 상기 분할하는 단계; 및
    상기 제어 핀으로부터 각각의 제1, 제2, 및 제3 세그먼트 내의 각각의 파워 게이트를 포함하는 복수의 파워 게이트로 슬립 신호를 분배함으로써 집적회로에 대한 슬립 신호 스티칭을 수행하는 단계를 포함하는 것을 특징으로 하는 방법.
  13. 제 12 항에 있어서, 장애물은 직사각형 또는 L자형 형태의 직선으로된 영역을 포함하는 것을 특징으로 하는 방법.
  14. 제 12 항에 있어서, 파워 게이트의 시퀀스는 하나 이상의 수직 칼럼으로 배열된 파워 게이트의 선형 시퀀스를 포함하고, 장애물은 파워 게이트의 선형 시퀀스를 가로막는 것을 특징으로 하는 방법.
  15. 제 12 항에 있어서, 제3 세그먼트 내의 파워 게이트의 위치를 수정하는 것은 제3 세그먼트 내의 파워 게이트의 위치를 장애물을 우회하도록 재조정하는 것을 포함하는 것을 특징으로 하는 방법.
  16. 제 12 항에 있어서, 상기 플로어플랜 내의 두 지점 사이의 거리는 슈타이너 메트릭을 이용하여 측정될 수 있고, 상기 두 지점 사이에 장애물이 존재한다면, 거리는 장애물의 가장자리를 따라 감으로써 계산되는 것을 특징으로 하는 방법.
  17. 제 12 항에 있어서, 상기 제어 핀으로부터 복수의 파워 게이트로 슬립 신호를 분배하는 것은 상기 제어 핀을 각각의 파워 게이트에 연결하여 각각의 파워 게이트에 슬립 신호를 제공하는 것을 포함하는 것을 특징으로 하는 방법.
  18. 제 12 항에 있어서, 각각의 파워 게이트는 슬립 입력 핀 및 슬립 출력 핀을 포함하여 적어도 2개의 핀을 가진 셀이고, 각각의 파워 게이트의 슬립 입력 핀은 상기 제어 핀 또는 다른 파워 게이트의 슬립 출력 핀으로부터 슬립 신호를 수신하는 것을 특징으로 하는 방법.
  19. 제 12 항에 있어서, 장애물은 코어, 메모리, DDR(double data rate) 유닛, 또는 파워 관리 유닛을 가진 집적회로의 구성요소를 나타내는 하드 매크로에 의해 형성되는 것을 특징으로 하는 방법.
  20. 복수의 컴퓨터 실행 가능한 명령어를 저장하고 있는 비일시적 컴퓨터 판독 가능한 매체로서,
    상기 복수의 컴퓨터 판독 가능한 명령어는 컴퓨터에 의해 실행된 때 상기 컴퓨터가:
    복수의 파워 게이트, 장애물, 및 슬립 신호를 제공하는 제어 핀을 가진 집적회로의 플로어플랜을 수신하고;
    장애물이 파워 게이트의 시퀀스를 가로막는 위치를 식별하고;
    파워 게이트의 시퀀스를 하나의 칼럼으로 조직화하고;
    상기 칼럼을 제1 세그먼트는 장애물 아래에 놓여 있고, 제2 세그먼트는 장애물 위에 놓여 있고, 제3 세그먼트는 제1 및 제2 세그먼트로부터 어긋나 있는 세그먼트들로 분할하고; 그리고
    상기 제어 핀으로부터 각각의 제1, 제2, 및 제3 세그먼트 내의 각각의 파워 게이트를 포함하는 복수의 파워 게이트로 슬립 신호를 분배함으로써 집적회로에 대한 슬립 신호 스티칭을 수행하게 만들고,
    상기 제3 세그먼트는 장애물을 회피하도록 제3 세그먼트 내의 파워 게이트의 위치를 수정함으로써 장애물을 우회하는 경로인 것을 특징으로 하는 복수의 컴퓨터 실행 가능한 명령어를 저장하고 있는 비일시적 컴퓨터 판독 가능한 매체.
KR1020180009228A 2017-01-27 2018-01-25 슬립 신호 스티칭 기술 KR102632111B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/418,613 US10210303B2 (en) 2017-01-27 2017-01-27 Sleep signal stitching technique
US15/418,613 2017-01-27

Publications (2)

Publication Number Publication Date
KR20180088589A KR20180088589A (ko) 2018-08-06
KR102632111B1 true KR102632111B1 (ko) 2024-02-01

Family

ID=62979950

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180009228A KR102632111B1 (ko) 2017-01-27 2018-01-25 슬립 신호 스티칭 기술

Country Status (3)

Country Link
US (1) US10210303B2 (ko)
KR (1) KR102632111B1 (ko)
TW (1) TWI810171B (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10833664B2 (en) * 2017-08-14 2020-11-10 Apple Inc. Supply tracking delay element in multiple power domain designs

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100857826B1 (ko) * 2007-04-18 2008-09-10 한국과학기술원 지그재그 파워 게이팅을 적용한 파워 네트워크 회로 및 이를 포함하는 반도체 장치
JP2014170595A (ja) * 2014-06-25 2014-09-18 Fujitsu Ltd レイアウト設計方法及びレイアウト設計支援プログラム
JP2015069333A (ja) * 2013-09-27 2015-04-13 富士通セミコンダクター株式会社 設計方法及び設計プログラム
JP2015536562A (ja) * 2012-10-11 2015-12-21 イーエイシック コーポレーション 複数のトランジスタチェーンを含むビア構成可能高性能ロジックブロック

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5561458A (en) * 1994-01-28 1996-10-01 Polaroid Corporation Electronic imaging module for reversibly converting a photographic camera into an electronic imaging camera
US7590962B2 (en) * 2003-12-17 2009-09-15 Sequence Design, Inc. Design method and architecture for power gate switch placement
WO2011094448A1 (en) * 2010-01-29 2011-08-04 Dreamwell, Ltd. Systems and methods for bedding with sleep diagnostics
US9666266B1 (en) * 2016-05-09 2017-05-30 Xilinx, Inc. Power control over memory cell arrays

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100857826B1 (ko) * 2007-04-18 2008-09-10 한국과학기술원 지그재그 파워 게이팅을 적용한 파워 네트워크 회로 및 이를 포함하는 반도체 장치
JP2015536562A (ja) * 2012-10-11 2015-12-21 イーエイシック コーポレーション 複数のトランジスタチェーンを含むビア構成可能高性能ロジックブロック
JP2015069333A (ja) * 2013-09-27 2015-04-13 富士通セミコンダクター株式会社 設計方法及び設計プログラム
JP2014170595A (ja) * 2014-06-25 2014-09-18 Fujitsu Ltd レイアウト設計方法及びレイアウト設計支援プログラム

Also Published As

Publication number Publication date
US20180218108A1 (en) 2018-08-02
US10210303B2 (en) 2019-02-19
TW201832533A (zh) 2018-09-01
TWI810171B (zh) 2023-08-01
KR20180088589A (ko) 2018-08-06

Similar Documents

Publication Publication Date Title
US11675954B2 (en) Method of designing a device
US10248751B2 (en) Alternative hierarchical views of a circuit design
US8495552B1 (en) Structured latch and local-clock-buffer planning
US9213795B2 (en) Multiple via connections using connectivity rings
US10515177B1 (en) Method, system, and computer program product for implementing routing aware placement or floor planning for an electronic design
CN103914865A (zh) 形成几何图案的面的组
US10977407B2 (en) Superpower gating cell and integrated circuit including the same
TWI762561B (zh) 用於插入電網之設備及方法以及非暫時性電腦可讀媒體
CN108363845B (zh) 电网愈合技术
WO2023160556A1 (zh) 量子芯片版图的构建方法和装置及存储介质
CN114970439A (zh) 自动布线方法、装置、计算机设备、存储介质
KR102632111B1 (ko) 슬립 신호 스티칭 기술
US20210192115A1 (en) Mechanism to place repeaters on existing structured routing based on geometric consideration and to place lattice multi-layer metal structures over cells
US10515180B1 (en) Method, system, and computer program product to implement snapping for an electronic design
US10923425B2 (en) Power distribution
US8560997B1 (en) Conditional cell placement
US8181143B2 (en) Method and apparatus for generating a memory-efficient representation of routing data
US8132141B2 (en) Method and apparatus for generating a centerline connectivity representation
US10719654B2 (en) Placement and timing aware wire tagging
US8677307B1 (en) Method and system for implementing die size adjustment and visualization
US20140289691A1 (en) Circuit design support apparatus, circuit design support method, and computer product
US10970452B2 (en) System for designing semiconductor circuit and operating method of the same
KR20100066332A (ko) 커스텀 매크로의 고속 라우팅
JP2008090456A (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