KR101916985B1 - 두 개의 집적 회로 간의 트랜잭션 교환을 제어하는 방법 - Google Patents
두 개의 집적 회로 간의 트랜잭션 교환을 제어하는 방법 Download PDFInfo
- Publication number
- KR101916985B1 KR101916985B1 KR1020147003088A KR20147003088A KR101916985B1 KR 101916985 B1 KR101916985 B1 KR 101916985B1 KR 1020147003088 A KR1020147003088 A KR 1020147003088A KR 20147003088 A KR20147003088 A KR 20147003088A KR 101916985 B1 KR101916985 B1 KR 101916985B1
- Authority
- KR
- South Korea
- Prior art keywords
- integrated circuits
- transaction
- link
- controller
- response
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/325—Power saving in peripheral device
- G06F1/3253—Power saving in bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/36—Handling requests for interconnection or transfer for access to common bus or bus system
- G06F13/362—Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Power Sources (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
- Microcomputers (AREA)
Abstract
두 개의 집적 회로(12, 14)와, 상기 두 개의 집적 회로 사이의 링크에 전력을 공급하여, 두 개의 집적 회로(12, 14) 사이에서 트랜잭션 교환을 가능하게 해주는 전원 장치와, 상기 집적 회로(12, 14) 및 상기 전원 장치를 제어하는 컨트롤러(40)를 포함하는 시스템(10)에서 상기 두 개의 집적 회로(12, 14) 사이에서 트랜잭션 교환을 제어하는 방법은, a) 상기 컨트롤러(40)에서 상기 전원 장치에 의해 상기 링크에 공급되는 전력 량을 낮추라는 지시를 수신하는 단계와, b) 상기 컨트롤러(40)로부터 상기 두 개의 집적 회로(12, 14)에게 상기 집적 회로(12, 14)가 새로운 트랜잭션들을 시작하지 못하게 하는 명령을 송신하는 단계와, c) 일단 모든 미처리 트랜잭션들이 실행되었으면 상기 링크로 공급되는 전력을 낮추는 단계를 포함한다. 이 방법은 링크를 신뢰있게 닫게 줄 수 있다.
Description
본 발명은 두 개의 집적 회로 간의 트랜잭션 교환을 제어하는 방법에 관한 것이다. 본 발명은 또한 이 방법을 수행하는데 적합한 시스템에 관한 것이다.
시스템-온-칩 또는 시스템 온 칩(이하 머리글자 SoC 또는 SOC로 지칭함)은 컴퓨터 또는 다른 전자 시스템의 모든 컴포넌트들을 하나의 집적 회로(칩)에 집적하는 것을 말한다. 집적한 회로 또는 모노리식 집적 회로(IC, 칩 및 마이크로칩이라고도 지칭함)는 얇은 반도체 재질의 기판의 표면 상으로 트레이스 요소들의 패턴화된 확산에 의해 제조된 전자 회로이다. 이 회로는 디지털, 아날로그, 혼합 신호 및 종종 무선 주파수 기능들 모두를 단일 칩 기판 상에 담을 수 있다. 전형적인 응용은 임베디드 시스템의 영역에 있다.
현재의 시스템 온 칩에서,온칩 상호접속부에 의해다양한 컴포넌트들이 상호접속된다. 상호접속부는 기본적으로 회로용 버스라고 해석될 수 있다. 그러한 상호접속부의 예는 오픈 코어 프로토콜(Open Core Protocol) (이하 머리글자 OCP로 지칭함) 또는 어드밴스드 RISC 머신즈 ®(이하 머리글자 ARM이라 지칭함)의 어드밴스드 익스텐서블 인터페이스(Advanced extensible Interface) (이하 머리글자 AXI라고 지칭함)을 들 수 있다. 컴포넌트들은 제어 프로세서 유닛(Control Processor Units) (이하 머리글자 CPU로 지칭함)일 수 있다. ARM A9 프로세서 코어는 CPU의 일예이다. 직접 메모리 액세스 (이하 머리글자 DMA로 지칭함) 엔진 또는유니버셜 비동기 수신기 송신기(Universal Asynchronous Receivers Transmitters (머리글자 UARTs라 지칭함)와 같은 주변 장치 또한 컴포넌트로 간주될 수 있다.
각각의 컴포넌트들은 통상 메모리 맵핑된다. 더욱이, 컴포넌트들은 서로 트랜잭션을 교환한다.
그러한 트랜잭션은 다른 컴포넌트에게 송신한 요청을 포함하며, 이러한 요청은 다른 컴포넌트에서 실행된다. 예시로서, 이러한 요청은 메모리로부터의 판독, 기록 또는 페치하는 명령일 수 있다. 요청을 송신하는 컴포넌트는 트랜잭션잭션 개시자 컴포넌트 또는 개시자 컴포넌트인 반면 그 요청을 실행하는 컴포넌트는 트랜잭션 타겟 컴포넌트 또는 타겟 컴포넌트이다. 몇몇 컴포넌트들은 트랜잭션 개시자 및 트랜잭션 타겟의 둘 다를 실행할 수 있지만, 다른 컴포넌트들은 오직 트랜잭션 개시자 또는 트랜잭션 타겟일 뿐일 수 있다.
시작된 각각의 트랜잭션은 요청된 정보 또는 원래 요청의 상태를 내포하는 응답을 가질 것이다. 예로서, 요청된 정보는 데이터를 판독하는 것일 수 있지만 상태는 성공 또는 실패된 기록의 표시일 수 있다. 응답은 타겟 컴포넌트에 의해 그 트랜잭션을 시작한 컴포넌트에게 송신된다.
온-칩 버스를 통해 송신된 트랜잭션 이외에, 컴포넌트들은 또한 인터럽트와 같은 상태 정보를 교환하기도 한다. 인터럽트는 통상 사이드-밴드(side-band) 신호이므로, 그래서 온-칩 상호접속부는 사이드-밴드 신호를 포함하기도 한다.
때때로, SoC에서 필요한 모든 기능들은 단일의 다이에서 효과적으로 실시될 수 없다. 그러한 경우에, SoC는 다수개로, 통상 두개로 쪼개진다. 예를 들어, 몇몇 컴포넌트들은 상이한 기술 처리 노드 내에 설계된 아날로그 모듈들을 포함하는 반면 다른 컴포넌트들은 순전히 디지털이며 보다 작은 프로세스 노드 내에 설계될 수 있다.
저지연 인터페이스(Low Latency Interface)(이하 머리글자 LLI로 지칭함)는 SoC 또는 시스템을 이렇게 융통성 있게 다수의 물리적인 다이들로 나뉘어지게 하는데 사용될 수 있는 반면 그 시스템에서 구현된 소프트웨어는 이 다이들을 단일의 논리적 다이로서 간주한다. LLI는 모바일 산업 프로세서 인터페이스(Mobile Industry Processor Interface)(이하 머리글자 MIPI라고 지칭함)에서 표준화되어 있다. LLI는 두 다이들로 하여금 마치 다른 다이가 해당 다이 위에 배치되어 있는 것처럼 통신하게 하는 점대점 인터페이스(point to point interface)이다. LLI는 듀얼 심플렉스 서브-링크(dual-simplex sub-links)로 구성된 양방향성 인터페이스이다. LLI는 두 다이들이 트랜잭션을 시작하게 하고 동시에 트랜잭션을 수신하게 해준다. 다시 말해서, LLI "버스 확장(buss-extensions)" 또는 "상호접속 터널 (interconnect tunnel)"이라고 간주될 수 있다. 비록 소위 "서비스 트랜잭션"이라는 특수한 트랜잭션이 있지만, LLI는 인터럽트와 같은 사이드-밴드 신호를 수행할 수 있다.
LLI 물리적 링크의 전원을 효과적으로 관리하기 위하여, 링크의 전원을 끄거나(power down) 링크를 아주 낮은 전원공급 상태로 하는 것이 가능하다. 물리적 링크가 낮은 전력 공급 상태에서 시작할 때는 기동되기 위해서 시간이 필요하다. 그러한 시간은 통상 밀리초의 범위 내이다. LLI와 같은 "상호접속 터널"이 트랜잭션을 전달하면서 낮은 지연을 보장할 수 있어야 하므로, 링크가 그렇게 낮은 전력 소비 상태에 또는 극한 사례에서는 전력 공급 중단 상태((power downed)에 놓여지기 전에 중요한 모든 트랜잭션을 완료하는 것이 바람직하다.
본 발명의 목적은 적어도 부분적으로 전술한 단점을 줄이는 것이다.
상세히 말해서, 본 발명은 확실한 방식으로 두 개의 IC 사이의 링크로의 전력 공급 중단(power down) 또는 링크를 아주 낮은 전력 공급 상태로 만드는 것을 목적으로 한다.
이러한 목적은 두 개의 집적 회로와 두 개의 집적 회로 사이의 링크에 전원을 공급하는 전원 장치를 구비하는 시스템에서 두 개의 집적 회로 사이의 트랜잭션 교환을 제어함으로써, 두 개의 집적 회로 사이의 트랜잭션 교환을 가능하게 해주는 방법으로 성취된다. 시스템은 또한 집적 회로와 전원 장치를 제어하는 컨트롤러를 포함한다. 이것은 일반적으로 링크 관리 시스템이라고 말할 수 있다. LLI 용어에서, 하나의 칩은 (두 칩들 상에서) LLP IP들을 제어하는 것이며 또한 링크를 관리하는 것이므로 "시스템 마스터(System Master)"라고 불리운다. 시스템 마스터는 컨트롤러(40)와 대등하다. 도 1에서, "컨트롤러" 항목(40)은 일반적인 경우 두 IC를 가리킨다. 전형적으로, 그래도 마스터만이 컨트롤러를 가지고 있다. 그 경우에, 슬레이브 "컨트롤러"는, 예를 들어, 슬레이브에서 클럭, 전원 및 리셋을 관리한다. 마스터 컨트롤러(40)는 또한 슬레이브 PMU에게 지시를 내림으로써 슬레이브를 제어할 수 있다. 일단 그렇게 되면, 슬레이브 PMU는 다시 마스터 PMU에게 보고한다.
본 방법은 a) 컨트롤러에서 전원 장치에 의해 상기 링크에 공급되는 전력 량을 낮추라는 지시를 수신하는 단계와, c) 일단 모든 미처리(pending) 트랜잭션들이 실행되었으면 상기 링크로 공급되는 전력을 낮추는 단계를 포함한다. 상기 단계들 사이에, 두 개의 집적 회로가 새로운 트랜잭션을 시작하지 못하도록 하는 명령을 상기 컨트롤러에서 상기 두 개의 집적 회로에게 송신하는 단계 b)가 있을 수 있다.
실시예는 다음과 같은 하나 이상의 특징을 포함한다.
- 상기 지시는 링크로의 전력 공급을 중단하라는 지시이다.
- 상기 링크는 회로간 직렬 인터페이스 프로토콜이다(그래서 이들이 직렬 접속부를 포함하는 것처럼, 병렬 인터페이스에도 적용가능함)
- 상기 링크는 MIPI 저지연 인터페이스이다.
- 집적 회로 중 적어도 하나는 두 개의 집적 회로 사이에서 트랜잭션 교환에만 사용되는, 상호접속 전원 장치에 의해 공급된 상호접속을 가지며, 단계 c)는 일단 모든 미처리 트랜잭션이 실행되었으면 상기 상호접속 전원 장치에 의해 공급된 전력을 낮추는 단계를 더 포함한다.
- 하나의 집적 회로는 마스터 집적 회로이고 다른 집적 회로는 슬레이브 집적 회로이다.
- 상기 시스템은 다수의 미처리 트랜잭션들을 나타내는 신호를 제공할 수 있는 적어도 하나의 모니터를 포함하며, 상기 방법은 단계 b)와 단계 c) 사이에서, 상기 다수의 미처리 트랜잭션들이 제로에 도달할 때 상기 모니터로부터 상기 컨트롤러에 신호를 송신하는 단계를 더 포함한다.
또한 두 개의 집적 회로와, 상기 두 개의 집적 회로 사이의 링크에 전력을 공급하여, 두 개의 집적 회로 사이에서 트랜잭션 교환을 가능하게 해주는 전원 장치를 포함하는 시스템이 제안된다. 또한, 상기 집적 회로 및 상기 전원 장치를 제어하는 컨트롤러가 제안된다. 상기 컨트롤러는 상기 전원 장치에 의해 상기 링크에 공급되는 전력 량을 낮추라는 지시를 수신할 때 상기 집적 회로가 새로운 트랜잭션을 시작하지 못하게 하고 일단 모든 미처리 트랜잭션들이 실행되었으면 상기 링크로 공급되는 전력을 낮추라는 명령을 두 개의 집적 회로에게 송신하도록 구성된다.
바람직한 실시예는 다음과 같은 하나 이상의 특징을 포함한다.
- 상기 컨트롤러는 상기 링크로의 전력 공급을 중단하라는 지시를 수신할 때 상기 집적 회로가 새로운 트랜잭션을 시작하지 못하게 하고, 일단 모든 미처리 트랜잭션들이 실행되었으면 상기 링크의 전원 공급을 중지하도록 하는 명령을 두 집적 회로에 송신하도록 구성된다.
- 상기 컨트롤러는 상기 링크로 전력 공급을 중단하라는 지시를 수신할 때 상기 집적 회로가 새로운 트랜잭션을 시작하지 못하게 하는 명령을 상기 두 개의 집적 회로에 송신하도록 구성된다.
- 상기 컨트롤로는 앞에서 기술된 바와 같은 방법들 중의 적어도 하나에 있는 컨트롤러로서 동작하도록 구성된다.
본 발명의 다른 특징 및 장점은 아래에 열거된 첨부 도면을 참조하여 비제한적인 일예들로서 제시된 다음과 같은 본 발명의 실시예의 설명으로부터 자명해질 것이다.
도 1은 두 개별 IC들로 분리된 시스템의 일예의 블록도를 도시한다.
도 2는 두 IC 사이에서 그리고 시스템에서 트랜잭션 교환을 제어하는 방법의 플로우 차트를 도시한다.
도 3 및 도 4는 IC 또는 다른 IC로부터 시작된 미처리 트랜잭션이 없다는 것을 신뢰성 있게 알게 하는데 사용된 방법의 일예의 개략적인 플로우차트이다.
도 2는 두 IC 사이에서 그리고 시스템에서 트랜잭션 교환을 제어하는 방법의 플로우 차트를 도시한다.
도 3 및 도 4는 IC 또는 다른 IC로부터 시작된 미처리 트랜잭션이 없다는 것을 신뢰성 있게 알게 하는데 사용된 방법의 일예의 개략적인 플로우차트이다.
본 발명은 두 IC들 사이의 데이터 전달 시스템에 관련한 것으로, 특히, 그러한 시스템에서 데이터 교환의 신뢰있는 중단을 다루는 방법 및 회로에 관련된다. 비록 본 발명이 MIPI LLI와 같은 저지연 데이터 전달 인터페이스에 대해 더욱 상세히 기술될 지라도, 본 발명은 그러한 본 발명은 다른 응용에 사용될 수 있음을 이해하여야 한다.
특히, 시스템에서 두 IC들 사이에서 트랜잭션 교환을 제어하는 방법이 제안된다. 도 1은 별개의 두 IC들로 분할된 시스템의 일예의 블록도이다. 시스템(10)은 칩#1인 제1 IC(12) 및 칩#2인 제2 IC(14)를 포함한다. 각각의 IC(12 및 14)는 상이한 컴포넌트들을 포함한다. 컴포넌트들의 예는 CPU 또는 DMA와 같은 모든 하드웨어("물리적 구현" 또는 그 머리글자 IP를 이용하여 지칭되기도 하는 "지적 재산(intellectual property))"이다. 도 1의 예에서, 제1 IC(12)는 제1 컴포넌트(16)(도 1에서 컴포넌트 #1), 제2 컴포넌트(18)(도 1에서 컴포넌트 #2), 도 1에서 PMU #1이라 표식된 전력 관리 유닛(20) (이하 머리글자 PMU로 지칭함), 상호접속부(22), 사이드밴드 신호를 서비스 트랜잭션(이하 그의 머리글자 SVC로 지칭함)으로 변환하는 논리 블록(24) 및 모니터(26)를 포함한다. 제2 IC(14)는 제3 컴포넌트(28)(도 1에서 컴포넌트 #3), 제4 컴포넌트(30) (도 1에서 컴포넌트 #4), (도 1에서 PMU #2이라 표식된) 전력 관리 유닛(32), 상호접속부(34), SVC(36) 및 모니터(38)를 포함한다. PMU(20 및 32)는 통상 이들 각각의 상호접속부(22 및 34)의 일부인 컴포넌트들이다. 그러나, 예시적인 목적 상, 이들은 도 1에서 명시적으로 도시되어 있다. 다양한 컴포넌트들은 다음에 더욱 상세히 기술될 것이다.
각각의 컴포넌트(네개의 컴포넌트(16, 18, 28 및 30) 및 PMU(20 및 32)는 트랜잭션의 개시자 및/또는 타겟일 수 있다. 예시 목적상, 도 1의 사례에서, 두 컴포넌트(16 및 30) 및 PMU(20 및 32)는 둘다 트랜잭션의 개시자 및 타겟인 반면 두 컴포넌트(18 및 28)는 단지 트랜잭션의 개시자일 뿐이다.
앞에서 설명한 바와 같이, 트랜잭션은, 예를 들어, 타겟 컴포넌트에 대해 개시자에 의해 시작된 판독(Read) 또는 기록(Write) 데이터 요청(Data Request)을 포함할 수 있다. 타겟 컴포넌트는 그 요청을 실행하고 판독 응답(Read Response)(판독 데이터 또는 에러) 또는 기록 응답(Write Response)(성공 또는 에러)을 반환한다. 앞에서 기술되고 아래에서 다시 설명되는 바와 같이, 트랜잭션은 또한 응답을 포함한다.
도 1의 예에 따르면, 표식 "REQ"로 된 화살표는 요청 경로를 묘사하며 표식 "RES"로 된 화살표는 응답 경로를 묘사한다. 트랜잭션은 해당 제1 IC(12) 또는 제2 IC(14)에 따라서 개시자에 의해 상호접속부(22 또는 34)로의 "REQ" 경로를 통해 시작된다. 상호접속부는 트랜잭션을 정확한 타겟에 전달한다. 이러한 전달은 "REQ" 경로 입력에 힘입어 그리고 제1 IC(12) 또는 제2 IC(14)의 각 컴포넌트가 각각의 상호접속부(22 및 34)에서 메모리 맵핑된다는 사실의 사용에 의거하여 이루어진다. 타겟은 판독 또는 기록을 실행하며 결과의 응답은 "RES" 경로를 통해 상호접속부를 거쳐 송신된다. 상호접속부(22 또는 34)는 이러한 응답을 그 트랜잭션을 발원한 개시자에게 다시 운반한다. 기본적인 예시로서, 만일 제2 컴포넌트(18)가 요청을 제1 컴포넌트(16)에게 개시되게 하면, 이 요청은 상호접속부(22)를 통과하게 될 것이다. 게다가, 제1 컴포넌트(16)가 그의 응답을 제2 컴포넌트(18)에게 송신하면, 그 응답 또한 상호접속부(22)를 통과할 것이다.
시스템(10)은 또한 두 IC(12 및 14) 사이의 링크에 전원 공급하는 전원 장치를 포함하며, 링크에 전력을 공급하면 두 IC(12 및 14) 사이의 트랜잭션 교환이 가능해진다. (이러한 전원 장치 또는 개별적인 전원 장치는 물론 IC들 상의 컴포넌트들에 전력을 공급하기 위해 필요하다.) 보다 구체적으로, 이것은, 링크에 전력을 공급하면, 제1 IC(12)의 한 컴포넌트와 제2 IC(14)의 다른 컴포넌트와의 사이에서 트랜잭션이 이루어질 수 있다는 것을 의미한다. 예를 들어, 제2 컴포넌트(18)는 요청을 제4 컴포넌트(30)에 전송할 수 있으며, 이 제4 컴포넌트(30)는 제2 컴포넌트(18)에게 응답할 수 있다.
도 1의 예에 따르면, 두 IC(12 및 14)는 MIPI LLI와 같은 칩간 직렬 인터페이스 프로토콜에 의해 상호 접속된다. 그러나, 이 방법은 시스템의 두 부품들을 상호접속하기 위해 "버스 확장" 개념이 사용되는 어느 시스템에도 적용할 수 있음을 알아야 할 것이다. 다시 말해서, 이 방법은 상호접속된 두 다이들이 존재하는 시스템에서 구현될 수 있다. 다이들은 MIPI LLI와 같은 어느 방법에 의해서도 상호접속될 수 있다. 병렬 인터페이스는 적어도 부분적으로는 직렬 인터페이스로 이루어지며 물론 본 발명은 마찬가지로 똑같이 병렬 인터페이스에 적용한다.
시스템(10)에서, 각각의 IC(12 및 14) 상의 상호접속부(22 및 34)는 각기 MIPI LLI와 같은 "버스확장" 또는 "상호접속 터널" 프로토콜에 의해 다른 IC들(14 및 12)의 상호접속부(34 및 22)에 연결된다. 컴포넌트들 간의 데이터 교환은 어느 소프트웨어도 개입되지 않고 메모리 맵핑된 트랜잭션을 이용하는 OCP, AMBA®, 네트워크 온 칩(twork on Chip) (이하 그의 머리글자 NoC로 지칭함) 프로토콜들과 같은 제각각의 상호접속 프로토콜에서 발생한다. 그래서 LLI는 에러 처리를 위해 링크를 부트 업하고, 링크에 전원 공급을 중단하는 등에만 필요하고 트랜잭션을 교환하는 양측 컴포넌트에 의해서는 어느 소프트웨어라도 개입이 필요없는 양방향성 링크이다. 도 1의 예에 따르면, 각각의 IC(12 또는 14)의 경우, 상호접속부(22 및 34)는 OCP, AMBA®와 같은 온-칩 상호접속부를 대표하며 또한 온-칩 상호접속 프로토콜 트랜잭션을 LLI 트랜잭션에 적합하게 하는데 그리고 그 반대로도 하는데 필요할 수도 있는 상호접속 적응 로직(Interconnection Adaptation logic)과 같은 온-칩 상호접속부를 대표한다. LLI 프로토콜은 낮은 지연(Low Latency) (이하 그의 머리글자 LL로 지칭함) 및 최선의 노력(Best Effort) (이하 그의 머리글자 BE로서 지칭함) 트래픽 클래스를 제공한다. 상호접속부는 LL 또는 BE 트래픽 클래스 상에서 각각의 트랜잭션을 맵핑하는 역할을 담당한다. BE 트래픽 클래스는 옵션이지만, 만일 이것이 LLI 스택에 의해 지원된다면, LL 트래픽 클래스 또한 지원되어야 한다는 것을 주목하여야 한다. LLI는 또한 인터럽트, 즉 하나의 IC에서 다른 IC로 DMA 요청과 같은 사이드밴드 신호를 터널하는데 사용된 "서비스 트랜잭션"이라 불리우는 트랜잭션들의 특수 셋을 제공한다. 사이드밴드 신호를 서비스 트랜잭션으로 변환 및 그 반대로의 변환을 보장하는 로직은 도 1에서 요소 SVC(26 및 36)이다. 서비스 트랜잭션은 또한 LLI 어드레스 공간에서 레지스터에 기록 및/또는 레지스터로부터 판독하는데 사용될 수 있다.
도 1의 시스템처럼, 별개의 두 IC로 분할된, 특히 별개의 패키지로 분할된 시스템에서, 하나의 IC는 마스터 IC로서 행동할 수 있는 반면 다른 하나는 슬레이브 IC이다. 예를 들어, 제1 IC(12)는 마스터 IC이고 제2 IC(14)는 슬레이브 IC일 수 있다. 마스터 IC(12)는 슬레이브 IC(14)를 제어하는 역할을 담당한다. 마스터 IC(12)는 또한 스레이브 IC(14) 상의 컴포넌트들이 마치 이들이 마스터 IC(12)의 상호접속부(22) 상에 배치되어 있는 것처럼 간주하도록 전체 시스템 메모리 맵을 관리한다. 마스터 IC(12)의 역할은 또한 LLI 링크를 구성하는 것이다. LLI IP는 마스터 IC(12)의 상호접속부(22)와 인터렉트하고 또한 슬레이브 IC(14)의 상호접속부(34)와도 인터렉트한다. 이러한 인터렉션은 각각의 상호접속부(22 및 34)로부터 "요청"및 "응답"을 전송 및 수신할 수 있게 한다.
시스템(10)은 또한 IC(12 및 14) 및 전원 장치를 제어하는 컨트롤러(40)를 포함한다. 전원 장치는 도 1에 도시되어 있지 않다. 컨트롤러(40)는 두 PMU(20 및 32)를 포함한다. 정말로, 두 PMU(20 및 32)는 통상 마스터 IC CPU 에서 구동하는 시스템 마스터 소프트웨어로부터의 감시하에 LLI 링크 전력 관리를 담당하는 소프트웨어를 구동한다. 링크 전력 관리는 다른 방식으로 성취될 수 있다.
도 1에서 IC(12 및 14)의 모니터(26 및 38)는 송신된 각각의 트랜잭션을 파악하고 그의 응답이 수신되었는지를 파악하는 역할을 갖는다. 그래서 모니터(26)(또는 IC(14)의 38)는 미처리 트랜잭션의 개수를 나타내는 신호를 제공할 수 있다. 이 신호는 예를 들어 미처리 트랜잭션의 개수가 제로에 도달할 때 컨트롤러(40)에게 송신될 것이다. 앞에서 기술한 바와 같이, 그러면 컨트롤러(40)는 각각의 PMU(20 및 32)로 공급된 전력을 낮추게 한다. "도달하는"이라는 용어는 특히 "~과 같게 하는"이라는 의미를 포함한다는 것으로 이해하여야 한다.
모니터(26)가 미처리 트랜잭션의 개수를 나타내는 신호를 획득하는 방식은 다양하다. 예를 들면, IC(12)의 모니터(26)는 상호접속부(22)에서 시작된 트랜잭션을 계속 파악하고 이들 트랜잭션의 각각이 IC(14)에 위치한 상호접속부(34)로부터 회신을 받았는지를 파악할 것이다. 각각의 모니터는 단순한 업/다운 카운터로서 구현될 수 있다. 그러한 실시예에서, 카운터는 트랜잭션 요청이 송신될 때 업 카운트하고 트랜잭션 응답이 수신될 때 다운 카운트한다.
도 1의 구현예와 다른 구현예가 가능하다. 예를 들어, 비록 모니터들(26)이 LLI IP의 일부로서 묘사되어 있을 지라도, 이들은 또한 LLI의 외부에서 구현될 수 있다. 마찬가지로, 컨트롤러(40)는 IC들(12 및 14)의 외부에 있을 수 있다.
시스템(10) 내 두 IC들(12 및 14) 사이의 트랜잭션 교환을 제어하기 위한 방법의 플로우차트를 예시하는 도 2에 도시된 바와 같이, 이 방법은 컨트롤러(40)에서 전원 장치에 의해 링크에 공급된 전력량을 낮추라는 지시를 수신하는 단계(S50)를 포함한다.
이 방법은 컨트롤러(40)에서 IC(12 및 14)가 새로운 트랜잭션을 시작하지 못하게 하는 명령을 두 IC(12 및 14)에게 송신하는 단계(S52)를 더 포함한다. 이러한 송신은 간접적으로 이루어 질 수 있음을 이해하여야 한다. 정말로, 두 IC들이 마스터와 슬레이브의 관계에 있을 때, 컨트롤러(40)는 명령을 직접 마스터 IC(12)에게 송신하고 슬레이브 IC(14)에게는 마스터 IC(12)를 경유하여 간접적으로 송신할 수 있다.
이 방법은 링크에 공급되는 전력을 낮추는 단계(S54)를 더 포함한다. 이렇게 낮추는 것은 일단 계속중인 트랜잭션들이 실행되면 컨트롤러(40)에 의해 성취된다. 다른 곳에 기술한 바와 같이, 이것은 필요한 단계는 아니지만, 본 명세서에서 예시적인 실시예로서 도시된다. 그러므로 이러한 방법은 IC(12 및 14)의 컴포넌트들에게는 더욱 신뢰할만 하다. 그래서, 이러한 방법은 데이터 교환 링크가 닫힌 후 링크의 사용자들을 안전한 상태 또는 공지의 상태에 놓이게 할 수 있다. 그러므로 컴포넌트의 보안이 개선된다. 다시 말해서, 이 방법은 링크의 신뢰있는 폐쇄(closing)를 보장한다.
그러한 방법에 따르면, 컨트롤러(40)에 의해 전력 공급을 낮추라는 요청이 수신된 후에라도 데이터가 교환될 수 있다. 이 방법은 패키지에서 이 방법을 실행하는데 부가적인 외부의 입력 및/또는 출력 핀들을 필요로 하지 않는 한 구현하기 용이하다. 이것은 비용 절감을 초래한다.
게다가, 그러한 방법은 IC가 피어-투-피어인 시스템, IC들이 마스터와 슬레이브 관계에 있는 시스템과 같은 많은 시스템에 적용된다.
단계(S50)에서 지시가 링크에 전력을 중단하라는 지시일 때, 전술한 효과는 더욱 민감하다. 실제로, 그러한 사례에서, 단계(S54)에서, 전원 장치는 보통 전력 공급을 중단한다.
그러한 방법은 또한 만일 그 IC 상의 모든 컴포넌트들이 교환하려는 어느 데이터도 가지고 있지 않은 경우 로컬 IC 상호접속부에 전력 공급을 중단하는데 사용될 수 있다. 그 경우에, 로컬 상호접속부는 두 개의 집적 회로 사이에서 트랜잭션 교환 시에만 사용될 뿐이다. 그러한 로컬 IC 상호접속부는 상호접속 전원 장치에 의해 전력을 공급받는다. 이러한 상호접속 전원 장치는 링크에 전력을 공급하는 전원 장치와 분리된다. 그래서, 단계(S54)에서, 상호접속 전원장치에 의해 상호접속부에 공급된 전력도 또한 낮추어질 수 있다. 상호접속 전원 장치도 마찬가지로 정지될 수 있다.
그러한 방법은 시스템(10)에서 공급된 전력의 소모를 줄이는 것이 가능해진다.
전술한 바와 같이 시스템(10)에서 두 IC(12 및 14) 사이에서 트랜잭션 교환을 제어하기 위한 방법은 이제 하나의 IC가 마스터 IC(12)이고 다른 하나가 슬레이브 IC(14)인 도 3 및 도 4의 특정 사례에서 기술될 것이다. 도 3 및 도 4는 한 IC 또는 다른 IC로부터 시작된 계속중인 트랜잭션이 하나도 없다는 것을 신뢰있게 알게하는데 사용되는 방법의 일예의 개략적인 플로우차트이다. 앞에서 알 수 있는 바와 같이, 계속중인 트랜잭션의 존재에 관한 정보는 링크로의 전력 공급을 중단하는데 또는 LLI 링크를 저전력 상태로 만드는 데 또는 링크가 유휴함을 알리기 위해 필요한 다른 어느 기능에 의해 사용될 수 있다.
보다 상세히 말해서, 도 3은 마스터 IC(12)에 관한 방법의 관련 단계들을 예시하며 도 4는 슬레이브 IC(14)에 관한 방법의 관련 단계들을 예시한다. 명료성을 기하기 위해, 앞선 단계와 후속 단계들은 도시되지 않는다. 이 단계들은 머신 상태에 상응한다. 그러한 단계들은 두 IC(12 및 14)의 컨트롤러에서 구동하는 소프트웨어에서 실시된다고 가정한다. 특히, 이 단계들은 컨트롤러의 전력 관리 유닛(이하 그 머리글자 PMU로 지칭함)에서 실시될 수 있다. 그러나, 다른 실시예들이 사용될 수 있음을 이해하여야 한다. 예를 들어, 그러한 단계들은 어느 다른 컴포넌트에서 구동될 수 있거나 또는 하드웨어에서 실시되기도 한다.
도 3에서, 이 방법은 트랜잭션 교환이라 식별된 단계(S100)에서 시작한다. 사실상, 이러한 트랜잭션 상태의 단계(S100)는 마스터 IC(12)에 의해 실행된 여러 단계들을 포함하는데, 이 단계들은 도면을 읽을 수 있도록 하기 위해 간략하게 표시되었다. 이러한 트랜잭션 교환의 단계(S100)에서, LLI 링크가 설치(또는 부트 업)되고, 시스템 메모리 맵이 설정되며 두 마스터 IC(12) 및 슬레이브 IC(14) 상의 컴포넌트들이 트랜잭션을 교환하고 있다. 트랜잭션은 LL이나 BE에 맵핑되거나 LLI의 두 트래픽 클래스들에 맵핑된다. 게다가, 사이드밴드 신호는 서비스 트랜잭션으로 변환되고 슬레이브 IC(14)에 전송되며, 마스터 IC 경우에는 그 반대로, 즉 마스터 IC 사이드밴드 신호를 SVC 트랜잭션으로 변환하고 이를 다른 IC, 여기서는 슬레이브 IC에 전송한다.
이 방법은 조건(C102)이 충족되는 한 트랜잭션 교환의 단계(S100)를 유지한다. 조건(C102)은 Req_Close_All_Transactions 신호가 '0'이라는 사실에 상응한다. Req_Close_All_Transactions 신호는 마스터 IC(12)가 PMU의 레지스터에 기록하는 경우 하드웨어 신호 또는 인터럽트일 수 있다. 이 방법은 트리거 신호가 어떻게 실시되는지에 무관하게 동작하며 그래서 이하에서 트리거 조건들만이 강조되어 (이들의 정확한 실시는 아님) 한 상태에서 다른 상태로 전이하게 된다.
조건(C102)이 충족되지 않으면, 이것은 조건(C104)이 충족된다는 것을 의미한다. 사실, 조건(C104)은 Req_Close_All_Transactions 신호가 '1'이라는 사실에 상응한다. 충족된 조건(C102)에서 충족된 조건(C104)으로의 경과는 Req_Close_All_Transactions 신호를 '1'로 단언하는(assert) 컨트롤러(40)에 의해 보장된다. 설명의 나머지 부분에서, 동사 '단언하는'이라는 동사는 신호 값을 1로 바꾼다는 것으로 이해하여야 한다. 조건(C104)이 충족될 때, 도 3의 플로우차트의 방법에 따르면, 마스터 IC(12)는 마스터 IC(12)로부터 슬레이브 IC(14)로의 모든 사이드밴드 신호들을 디스에이블하는 단계(S102)를 수행한다.
이 방법은 마스터 IC(12)가 슬레이브 IC(14) 상에서 Req_Close_All_Transactions 신호를 단언하기 위해 슬레이브 IC의 PMU 어드레스 공간에 기록하는 단계(S106)를 또한 포함한다. 이것은 슬레이브 IC의 PMU가 메모리 맵핑되므로써 가능하며 그래서 마스터 IC의 PMU는 LL 또는 BE 트랜잭션을 이용하여 직접 슬레이브 IC의 어드레스 공간에 기록할 수 있다. (LLI 내 제3 트래픽 클래스에 속하는 것으로 볼 수도 있는) 서비스 트랜잭션은 슬레이브 IC LLI IP의 시그널링 어드레스 공간에 기록하는데 사용될 수 있다. 이러한 공간은 사실 인터럽트(Req_Close_All_Transactions signal)를 슬레이브 PMU에 발행함으로써 기록될 수 있다. 서비스 트랜잭션에 대한 답변(Response to Service Transaction)은 LLI IP에 의해 발행되며 이것은 LLI의 흐름 제어 및 재전송 메커니즘으로 인하여 신뢰성이 있다.
이 방법은 또한 마스터 IC(12)가 슬레이브의 표시인 "No_Transaction_Exchange"을 대기하는 단계(S112)를 포함하며 이 표시가 수신되지 않는 한 이 단계(112)를 유지한다. 이것은 "No_Transaction_Exchange" 신호가 '0'이라는 사실에 상응한다.
도 4에서, 이 방법은 마스터 IC(12)에 관하여 전술한 바와 같이 단계(S100 및 S106)와 비교되는 슬레이브 IC(14)에 관한 유사한 단계(S132 및 S140)를 시작한다. 유일한 차이는 단계(S140)가 슬레이브 IC(14)에서 마스터 IC(12)로의 사이드밴드 신호를 디스에이블하는 것과 연관된다는 점이다. 그 밖에, 조건(C134 및 C138) 또한 각기 조건(C102 및 C104)과 유사하다. 충족된 조건(C134)에서 충족된 조건(C138)으로의 경과는 마스터 IC(12)가 단계(S108)에 있을 때 성취된다.
도 4의 플로우차트의 방법은 슬레이브 IC(14) 상의 LLI 링크를 사용하여 Req_Stop_Transactions 신호를 각각의 컴포넌트에서 단언하는 컴포넌트들의 어드레스 공간들에 기록하는 단계(S142)를 더 포함한다. 아무 소프트웨어도 갖고 있지 않은 컴포넌트들의 경우, 이 신호는 하드웨어 신호일 수 있다. 도 1의 사례에서, 단계(S142)에 관련된 컴포넌트들은 제3 컴포넌트(28), 제4 컴포넌트(30) 및 PMU(32)이다.
그러면 슬레이브 IC(14)는 단계(S144)로 진행한다. 단계(S144)는 대기 단계이다. 슬레이브 IC(14)는 모든 슬레이브 컴포넌트들에서 트랜잭션이 정지되기를 기다린다. 모든 트랜잭션들을 정지하라는 지시를 수신하면, 각 슬레이브 컴포넌트는 새로운 트랜잭션들이 어느 것도 시작되지 못하게 하여 컴포넌트들을 안전 상태에 놓여지게 하는 것이 필요한지를 체크하기 위한 필요한 단계들을 취하며, 그러한 경우라고 판단할 때는 Stopped_Transactions 신호를 단언함으로써 (PMU 내 전용 레지스터 비트에 기록하든지 하드웨어 신호를 이용하든지 함으로써) 이것을 승인할 것이다. 이것이 더 많은 트랜잭션을 필요로 하는지를 체크하는 기능을 갖지 못하는 슬레이브 컴포넌트들은 즉시 LLI 링크를 닫음으로써 그 컴포넌트들이 비안정 상태에 놓이지 않으리라고 추정될 수 있을 때 이 신호를 즉시 단언할 수 있다.
슬레이브 IC(14)는 조건(C146)이 충족되고 있는 한 단계(S144)를 유지한다. 그러한 조건(C146)은 stopped-Transaction 신호가 '0'이라는 사실에 상응한다. 일단 슬레이브 IC(14)가 트랜잭션들을 시작할 수 있는 모든 컴포넌트들로부터 "Stopped-Transaction 신호 단언을 수신하면, stopped-transaction 신호는 '1'이 된다. 그러므로 조건(C148)은 충족되는데 왜냐하면 조건(C148)은 stopped-Transaction 신호가 '1'이 되는 사실에 상응하기 때문이다.
그 다음 슬레이브 IC(14)는 슬레이브 IC(14) 상의 모니터(38)로부터 더 이상의 계속중인 트랜잭션들이 없다는 것을 대기하는 단계(S150)를 수행한다. 슬레이브 IC(14)는 조건(C152)이 충족되는 한 단계(S150)를 유지한다. 도 3의 예에 따르면, 조건(C152)은 No_Pending_Transaction 신호가 '0'라는 사실에 상응한다. 모니터(38)가 LLI IP 내부에서 실시될 때, 이 모니터는 슬레이브 LLI 속성/레지스터 공간 내에 제어 및 상태 속성(Control and Status Attribute) 공간에다 No_pending_transaction 속성을 설정할 수 있다. 슬레이브 LLI IP는 이러한 특정 속성이 모니터(38)에 의해 설정될 때 슬레이브 PMU에게 인터럽트를 발생할 수 있다. 이러한 인터럽트는 슬레이브 PMU가 단계(S150)를 유지하는 동안 모니터(38)의 최신 상태를 요청한 이후에 발행된다. 이것은 No_pending_transaction 신호를 획득하는 한가지 가능한 방법이다. 그러나, 다른 구현예도 고려될 수 있다.
일단 조건(C152)이 더 이상 충족되지 않거나 또는 다른 방법으로 행해지지 않으면, 조건(C154)은 충족되는 것이다. 사실, 조건(C154)은 No_pending_transaction 신호가 '1'이라는 사실에 상응한다. 그러면 슬레이브 IC(14)는 도 3의 플로우차트에 따른 방법의 단계(S156)를 수행한다. 이러한 단계(S156)는 마스터 PMU 어드레스 공간 상의 slave_No_Transaction_Exchange 레지스터 비트가 '1'이라고 기록하는 단계를 포함한다.
그러면, 슬레이브 IC(14)는 트랜잭션 교환 없음이라 표식된 단계(S158)로 진행한다. 단계(S156)에서 실행된 트랜잭션이 응답을 수신할지라도, 그러한 단계의 목적이 다른 모든 컴포넌트들이 반드시 안정 상태(steady state)에 있도록 하는 것이기 때문에 슬레이브 IC(14)는 즉시 단계(S158)로 진행할 수 있다. 슬레이브 어드레스 공간이 기록되는 단계(S108)의 사례와 유사하게, 슬레이브 IC의 PMU는 LL 또는 BE 트랜잭션들을 이용하여 마스터 IC의 어드레스 공간에 기록할 수 있다. 그래서 인터럽트("Slave_No_Transaction_Exchange" 신호 트리거)가 발행될 수 있다.
일단 마스터 IC(12)가 단계(S156)에서 슬레이브 IC(14)에 의해 트리거된 slave_no_Transaction_Exchange 신호 단언을 수신하면, "slave_no_Transaction_Exchange" 신호는 '0'에서 '1'로 바뀐다. 그래서, 조건(C110) 대신, (1이 되는 "slave_no_transaction_exchange" 신호에 상응하는) 조건(C114)이 충족되게 된다.
그러면, 마스터 PMU는 'Req_Stop_Transactions' 신호가 '1'이라고 마스터 IC(12) 상의 LLI 링크를 사용하는 모든 컴포넌트들의 어드레스 공간에 기록하는 단계(S116)를 수행한다.
그 다음, 마스터 IC(12)는 'stopped_transaction'의 값이 마스터 IC(12) 상의 LLI 링크를 사용하는 모든 컴포넌트들에게 '1'이라는 것을 대기하는 단계(S120)로 진행한다. 이것은 마스터 IC(12)가 조건(C118)('stopped_transactions'의 값이 하나의 컴포넌트마다 적어도 '0'이다)이 충족되고 있는 한 단계(S120)를 유지한다. 이러한 발상을 표현하는 다른 방법은 조건(C122)('stopped_transactions'의 값이 모든 컴포넌트에게 '1'이다)이 충족되고 있지 않는 한 마스터 IC(12)가 단계(S120)를 유지한다는 것이다.
IC(12)의 각각의 컴포넌트는 모든 트랜잭션들을 정지하라는 지시를 수신하면 새로운 트랜잭션들이 컴포넌트를 안전 상태로 만들기 위해 시작될 필요가 있는지 체크하는 필요한 단계를 취한다. IC(12)의 컴포넌트는 이것이 그런 경우라고 판단하면, Stopped_Transactions_signal을 단언함으로써 이를 승인한다. 이러한 특정한 상황에서, 단언은 PMU 내 전용 레지스터에 기록하든지 아니면 하드웨어 신호를 이용함으로써 성취될 수 있다. 더 많은 트랜잭션을 필요로 하는지 체크하는 기능을 갖지 못한 IC(12)의 컴포넌트들은 'stopped-Transactions' 신호가 '1'이라고 즉시 단언할 수 있다. 사실, 이것은 그러한 컴포넌트들이 LLI 링크를 닫음으로써 비안정 조건에 놓이지 않았다고 추정할 수 있다.
일단 조건(C122)이 충족되면, 마스터 IC(12)는 마스터 IC(12) 상의 모니터(26)로부터 더 이상의 계속중인 트랜잭션들이 없다는 것을 대기하는 단계(S126)로 진행한다. 마스터 IC(12)는 조건(C124)이 충족되고 있는 한 단계(S126)를 유지한다. 도 2의 예에 따르면, 조건(C124)은 No_Pending_Transaction 신호가 0이라는 사실에 상응한다. 모니터(26)가 LLP IP 내부에서 구현될 때는 마스터 LLI 속성/레지스터 공간 내 제어 및 상태 속성 공간에다 No_pending_transaction 속성을 설정할 수 있다. 마스터 LLI IP는 이와 같은 특정 속성이 모니터(26)에 의해 설정될 때 마스터 PMU에 인터럽트를 발생할 수 있다. 이러한 인터럽트는 마스터 PMU가 모니터(26)의 최신 상태를 요청한 이후 단계(S126)를 유지하는 동안 발행된다. 이것은 No_Pending_Transactions 신호를 획득하는 한가지 가능한 방법이다. 그러나, 다른 구현예가 고려될 수 있다.
일단 조건(C124)이 더 이상 충족되지 않거나 다른 방법이 행하여 지지 않으면, 조건(C128)이 충족되는 것이다. 사실, 조건(C128)은 No_Pending_Transaction 신호가 1이라는 사실에 상응한다. 그러면 마스터 IC(12)는 아무 트랜잭션 교환 없음이라고 표식된 단계(S130)을 수행한다. 이 단계에서, 마스터 PMU 또는 그의 등가 로직은 마스터 IC(12) 및 슬레이브 IC(14) 상의 모든 컴포넌트들이 안전 상태 및/또는 안정 상태에 있다고 확신한다.
그러므로, 이 단계에서, LLI 링크는 전력 공급이 중단될 수 있거나 또는 시스템(10)에서 어떠한 불안정을 야기시키지 않고 저전력 상태에 놓일 수 있다.
도 3 및 도 4의 플로우차트의 방법는 단지 예시적인 방법일 뿐이다. 특히, 본 기술에서 통상의 지식을 가진 자라면 동일한 목적을 성취하도록 방법의 일부 단계들을 조정하거나 그 단계들 중 일부를 재정렬할 수 있다. 예를 들면, 마스터 IC(12) 로부터 슬레이브 IC(14)로의 사이드밴드 신호를 디스에이블하는 단계(S106)는 마스터 IC(12)가 트리거하여 slave_no_transaction_exchange 신호의 값을 변경하는 단계(S112) 이후에 행하여질 수 있다. 다른 가능성은 마스터 IC(12)가 먼저 그의 모든 컴포넌트들dprp 그의 트랜잭션들을 실행(=완료)하도록 요청한 다음 슬레이브 IC(14)가 그의 편에서 똑같이 하라고 요청할 수 있다. 더욱이, IC의 컴포넌트들이 교환할 트랜잭션들이 없다는 것을 안다는 것은 IC 상의 상호접속부에 전력 공급 중단을 아는 선구자로서 작용할 수 있다.
모든 실시예에서, 이 방법은 두 개의 집적 회로(12 및 14), 두 개의 집적 회로(12 및 14) 사이의 링크에 전력을 공급하고 그럼으로써 두 개의 집적 회로(12 및 14) 사이에서 트랜잭션 교환을 가능하게 해주는 전원 장치 및 집적 회로와 전원 장치를 제어하는 컨트롤러(40)를 포함하는 시스템(10)에서 실행될 수 있다. 컨트롤러(40)는 IC들(12 및 14)이 전원 장치에 의해 링크에 공급된 전력 량을 낮추라는 지시를 받았을 때는 IC들(12 및 14)이 새로운 트랜잭션을 시작하지 못하도록 하고 일단 모든 미처리 트랜잭션들이 실행되었으면 전원 장치에 의해 링크에 공급되는 전력을 낮추라는 명령을 두 집적 회로(12 및 14)에게 전송하도록 구성된다. 전술한 바와 같이, 컨트롤러(40)는 마스터 IC에만 존재할 수도 있다 (이 때문에 실질적으로 슬레이브 IC 내 가상 컨트롤러(40)가 되는 슬레이브 내 PMU을 제어할 수 있다. 도 1 참조).
그러한 컨트롤러(40)는 또한 두 개의 집적 회로(12 및 14)에게 링크로의 전력을 중단시키라는 지시를 받았을 때는 IC들(12 및 14)이 새로운 트랜잭션을 시작하지 못하게 하고 일단 모든 미처리 트랜잭션들이 실행되었다면 링크로의 전원 장치를 중지하라고 두 개의 집적 회로(12 및 14)에게 전송하도록 구성될 수 있다.
또한, 모든 실시예에서, 이 방법은 이 방법을 실행하기 위한 명령을 포함하는 컴퓨터 프로그램에 기반하여 실행될 수 있다. 이 프로그램은 프로그램가능 장치에서 실행가능하다. 응용 프로그램은 고 수준의 절차적 언어 또는 객체 지향 프로그래밍 언어에서 또는 필요하다면 어셈블리나 기계어에서 실시될 수 있다. 어느 경우라도, 언어는 컴파일된 언어 또는 해석된 언어일 수 있다. 프로그램은 전체 설치 프로그램 또는 갱신 프로그램일 수 있다. 후자의 경우, 프로그램은 프로그램가능 장치가 전체 방법을 실행하는데 적합한 상태로 이 장치를 업데이트하는, 이 방법의 부분들을 실행시키는 이전에 프로그램된, 업데이트 프로그램이다.
프로그램은 데이터 저장 매체에 기록될 수 있다. 데이터 저장 매체는 컴퓨터 명령을 기록하는데 적합한 모든 메모리일 수 있다. 그래서 데이터 저장 매체는 예를 들어 EPROM, EEPROM 및 플래시 메모리 소자와 같은 반도체 메모리 소자들과, 내부 하드 디스크 및 제거가능 디스크와 같은 자기 디스크와, 자기-광학 디스크, 및 CD-ROM 디스크를 포함하는 어떤 형태의 비휘발성 메모리일 수 있다.
본 발명은 바람직한 실시예를 참조하여 기술되었다. 그러나, 본 발명의 범주 내에서 많은 변경이 가능하다.
Claims (19)
- 시스템(10) 내의 두 개의 집적 회로(12, 14) 사이의 트랜잭션 교환을 제어하는 방법으로서,
상기 시스템은
두 개의 집적 회로(12, 14)와,
상기 두 개의 집적 회로 사이의 링크에 전력을 공급하여, 두 개의 집적 회로(12, 14) 사이에서 트랜잭션 교환을 가능하게 해주는 전원 장치와,
상기 집적 회로(12, 14) 및 상기 전원 장치를 제어하는 컨트롤러(40)를 포함하고,
상기 방법은
상기 컨트롤러(40)에서, 상기 링크를 폐쇄할 것을 요구하는 지시를 수신하는 단계와,
상기 컨트롤러로부터 상기 두 개의 집적 회로의 각각으로, 상기 두 개의 집적 회로의 각각으로 하여금 새로운 트랜잭션 요청의 개시를 중지하도록 하는 명령을 송신하는 단계와,
상기 두 개의 집적 회로의 각각에 대해, 상기 두 개의 집적 회로 중 하나의 집적 회로가 새로운 트랜잭션의 개시를 중지했다는 것을 검출하는 것에 응답하여, 상기 두 개의 집적 회로 중 상기 하나의 집적 회로에 의해 개시된 모든 계속중인 트랜잭션이 언제 실행완료되었는 지를 검출하는 단계와,
상기 두 개의 집적 회로의 양쪽의 모든 계속중인 트랜잭션이 실행완료된 것을 검출하는 것에 응답하여, 상기 링크를 폐쇄하는 단계를 포함하는
트랜잭션 교환 제어 방법.
- 제1항에 있어서,
상기 지시는 상기 링크에 공급되는 전력을 중단하라는 지시인
트랜잭션 교환 제어 방법.
- 제1항 또는 제2항에 있어서,
상기 링크는 회로간 직렬 인터페이스 프로토콜에 따라 동작하는
트랜잭션 교환 제어 방법.
- 제1항 또는 제2항에 있어서,
상기 링크는 MIPI(Mobile Industry Processor Interface) 저 지연 인터페이스에 따라 동작하는
트랜잭션 교환 제어 방법.
- 제1항 또는 제2항에 있어서,
상기 집적 회로 중 적어도 하나는 상호접속 전원 장치에 의해 전력이 공급되는, 상기 두 개의 집적 회로 사이에서 트랜잭션 교환에만 사용되는 상호접속부를 가지며,
상기 링크를 폐쇄하는 단계는 상기 두 개의 집적 회로의 양쪽의 모든 계속중인 트랜잭션이 실행완료된 것을 검출하는 것에 응답하여 상기 상호접속 전원 장치에 의해 공급되는 전력을 낮추는 단계를 포함하는
트랜잭션 교환 제어 방법.
- 제5항에 있어서,
상기 상호접속 전원 장치에 의해 공급되는 전력을 낮추는 단계는 상호접속 전원 장치에 공급되는 전력을 중단하는 단계를 포함하는
트랜잭션 교환 제어 방법.
- 제1항 또는 제2항에 있어서,
하나의 집적 회로(12)는 마스터 집적 회로이고 다른 집적 회로(14)는 슬레이브 집적 회로인
트랜잭션 교환 제어 방법.
- 제1항 또는 제2항에 있어서,
상기 시스템(10)은 계속중인 트랜잭션의 개수를 나타내는 신호를 제공할 수 있는 적어도 하나의 모니터(26)를 포함하며,
상기 두 개의 집적 회로 중 상기 하나의 집적 회로에 의해 개시된 모든 계속중인 트랜잭션이 언제 실행완료되었는 지를 검출하는 단계는, 상기 계속중인 트랜잭션의 개수가 제로에 도달할 때 상기 두 개의 집적 회로 중 상기 하나의 집적 회로의 모니터(26)로부터 상기 컨트롤러(40)에 상기 신호를 송신하는 단계를 포함하는
트랜잭션 교환 제어 방법.
- 제8항에 있어서,
상기 모니터(26)는 트랜잭션 요청의 개시에 응답하여 두 방향 중 한 방향으로 카운팅하고 트랜잭션 응답의 수신에 응답하여 상기 두 방향 중 다른 방향으로 카운팅하도록 구성된 업/다운 카운터를 포함하는
트랜잭션 교환 제어 방법.
- 제1항에 있어서,
상기 두 개의 집적 회로(12, 14) 중 적어도 하나 상에 존재하는 적어도 하나의 컴포넌트(component)가,
상기 두 개의 집적 회로의 각각으로 하여금 새로운 트랜잭션 요청의 개시를 중지하도록 하는 명령을 상기 컨트롤러로부터 수신하는 것과,
상기 수신된 명령에 응답하여, 상기 적어도 하나의 컴포넌트가 사전결정된 안전 상태로 천이할 때까지만 새로운 트랜잭션 요청의 개시를 계속하는 것과,
상기 적어도 하나의 컴포넌트가 상기 사전결정된 안전 상태로 천이한 것에 응답하여, 상기 적어도 하나의 컴포넌트가 새로운 트랜잭션의 개시를 중지했다는 것을 상기 컨트롤러에 통지하는 것을 수행하는 단계를 포함하는
트랜잭션 교환 제어 방법.
- 제1항에 있어서,
상기 지시는 상기 링크에 공급되는 전력을 낮추라는 지시인
트랜잭션 교환 제어 방법.
- 제1항에 있어서,
인터럽트 메커니즘을 사용하여 상기 두 개의 집적 회로 중 상기 하나의 집적 회로에 의해 개시된 모든 계속중인 트랜잭션이 실행완료된 것을 상기 컨트롤러에 통지하는 단계를 포함하는
트랜잭션 교환 제어 방법.
- 시스템 (10)으로서,
두 개의 집적 회로(12, 14)와,
상기 두 개의 집적 회로 사이의 링크에 전력을 공급하여, 상기 두 개의 집적 회로(12, 14) 사이에서 트랜잭션 교환을 가능하게 해주는 전원 장치와,
상기 두 개의 집적 회로 및 상기 전원 장치를 제어하도록 구성된 컨트롤러(40)를 포함하되,
상기 컨트롤러(40)는,
상기 두 개의 집적 회로(12, 14)의 각각으로, 상기 두 개의 집적 회로의 각각으로 하여금 새로운 트랜잭션 요청의 개시를 중지하도록 하는 명령을 송신하고,
상기 두 개의 집적 회로의 각각으로 하여금, 상기 두 개의 집적 회로(12, 14) 중 하나의 집적 회로가 새로운 트랜잭션의 개시를 중지했다는 것을 검출하는 것에 응답하여, 상기 두 개의 집적 회로 중 상기 하나의 집적 회로에 의해 개시된 모든 계속중인 트랜잭션이 언제 실행완료되었는 지를 검출하게 하고,
상기 두 개의 집적 회로의 양쪽의 모든 계속중인 트랜잭션이 실행완료된 것을 검출하는 것에 응답하여, 상기 링크를 폐쇄함으로써,
지시에 응답하도록 구성되고,
상기 지시는 상기 링크를 폐쇄할 것을 요구하는 지시인
시스템.
- 제13항에 있어서,
상기 링크를 폐쇄할 것을 요구하는 지시는 상기 링크에 공급되는 전력을 중단하라는 지시이고,
상기 컨트롤러(40)는 상기 두 개의 집적 회로(12, 14)의 양쪽의 모든 계속중인 트랜잭션이 실행완료된 것을 검출하는 것에 응답하여, 상기 링크의 전력 공급을 중지하도록 구성되는
시스템.
- 제13항에 있어서,
상기 두 개의 집적 회로 중 적어도 하나 상에 존재하는 적어도 하나의 컴포넌트를 포함하되, 상기 적어도 하나의 컴포넌트는,
상기 두 개의 집적 회로의 각각으로 하여금 새로운 트랜잭션 요청의 개시를 중지하도록 하는 명령을 상기 컨트롤러로부터 수신하고,
상기 수신된 명령에 응답하여, 상기 적어도 하나의 컴포넌트가 사전결정된 안전 상태로 천이할 때까지만 새로운 트랜잭션 요청의 개시를 계속하고,
상기 적어도 하나의 컴포넌트가 상기 사전결정된 안전 상태로 천이한 것에 응답하여, 상기 적어도 하나의 컴포넌트가 새로운 트랜잭션의 개시를 중지했다는 것을 상기 컨트롤러에 통지하도록 구성되는
시스템.
- 제13항에 있어서,
상기 지시는 상기 링크에 공급되는 전력을 낮추라는 지시인
시스템.
- 제13항에 있어서,
계속중인 트랜잭션의 개수의 표시를 생성하고 계속중인 트랜잭션의 개수가 제로에 도달할 때 상기 컨트롤러에 신호를 송신하도록 구성된 적어도 하나의 모니터를 포함하며,
상기 모니터는 트랜잭션 요청의 개시에 응답하여 두 방향 중 한 방향으로 카운팅하고 트랜잭션 응답의 수신에 응답하여 상기 두 방향 중 다른 방향으로 카운팅하도록 구성된 업/다운 카운터를 포함하는
시스템.
- 제13항에 있어서,
상기 두 개의 집적 회로 중 상기 하나의 집적 회로에 의해 개시된 모든 계속중인 트랜잭션이 실행완료된 것을 상기 컨트롤러에 통지하도록 구성된 인터럽트 메커니즘을 포함하는
시스템.
- 프로세서에 의해 실행될 때 상기 프로세서로 하여금 시스템 내의 두 개의 집적 회로 사이의 트랜잭션 교환을 제어하는 방법을 수행하도록 하는 명령어가 저장된 비일시적 프로세서 판독가능한 저장 매체로서,
상기 시스템은
두 개의 집적 회로와,
상기 두 개의 집적 회로 사이의 링크에 전력을 공급하여, 두 개의 집적 회로 사이에서 트랜잭션 교환을 가능하게 해주는 전원 장치와,
상기 집적 회로 및 상기 전원 장치를 제어하는 컨트롤러를 포함하고,
상기 방법은
상기 컨트롤러에서, 상기 링크를 폐쇄할 것을 요구하는 지시를 수신하는 단계와,
상기 컨트롤러로부터 상기 두 개의 집적 회로의 각각으로, 상기 두 개의 집적 회로의 각각으로 하여금 새로운 트랜잭션 요청의 개시를 중지하도록 하는 명령을 송신하는 단계와,
상기 두 개의 집적 회로의 각각에 대해, 상기 두 개의 집적 회로 중 하나의 집적 회로가 새로운 트랜잭션의 개시를 중지했다는 것을 검출하는 것에 응답하여, 상기 두 개의 집적 회로 중 상기 하나의 집적 회로에 의해 개시된 모든 계속중인 트랜잭션이 언제 실행완료되었는 지를 검출하는 단계와,
상기 두 개의 집적 회로의 양쪽의 모든 계속중인 트랜잭션이 실행완료된 것을 검출하는 것에 응답하여, 상기 링크를 폐쇄하는 단계를 포함하는
프로세서 판독가능한 저장 매체.
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP11290315.8 | 2011-07-06 | ||
EP11290315 | 2011-07-06 | ||
US201161515173P | 2011-08-04 | 2011-08-04 | |
US61/515,173 | 2011-08-04 | ||
PCT/EP2012/063295 WO2013004825A1 (en) | 2011-07-06 | 2012-07-06 | A method for controlling transaction exchanges between two integrated circuits |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20140061378A KR20140061378A (ko) | 2014-05-21 |
KR101916985B1 true KR101916985B1 (ko) | 2018-11-08 |
Family
ID=47436551
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020147003088A KR101916985B1 (ko) | 2011-07-06 | 2012-07-06 | 두 개의 집적 회로 간의 트랜잭션 교환을 제어하는 방법 |
Country Status (7)
Country | Link |
---|---|
US (1) | US9767056B2 (ko) |
EP (1) | EP2729863B1 (ko) |
KR (1) | KR101916985B1 (ko) |
CN (1) | CN103797435B (ko) |
BR (1) | BR112014000250B1 (ko) |
RU (1) | RU2617549C2 (ko) |
WO (1) | WO2013004825A1 (ko) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2014133527A1 (en) * | 2013-02-28 | 2014-09-04 | Intel Corporation | Leveraging an enumeration and/or configuration mechanism of one interconnect protocol for a different interconnect protocol |
JP6193910B2 (ja) * | 2015-04-03 | 2017-09-06 | ファナック株式会社 | インタロックバスとスプリットバスを接続するブリッジ回路を備えたバスシステム |
US9626229B1 (en) * | 2016-01-07 | 2017-04-18 | International Business Machines Corporation | Processor performance monitoring unit synchronization |
US9946674B2 (en) | 2016-04-28 | 2018-04-17 | Infineon Technologies Ag | Scalable multi-core system-on-chip architecture on multiple dice for high end microcontroller |
US10666578B2 (en) * | 2016-09-06 | 2020-05-26 | Taiwan Semiconductor Manufacturing Company Limited | Network-on-chip system and a method of generating the same |
NO343898B1 (en) | 2016-09-19 | 2019-07-01 | Dynatec Eng As | Method for producing silicon particles for use as anode material in lithium ion rechargeable batteries, use of a rotating reactor for the method and particles produced by the method and a reactor for operating the method |
GB201810663D0 (en) * | 2018-06-28 | 2018-08-15 | Nordic Semiconductor Asa | Peripheral Power Domains |
US11989144B2 (en) * | 2021-07-30 | 2024-05-21 | Advanced Micro Devices, Inc. | Centralized interrupt handling for chiplet processing units |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2006138687A2 (en) | 2005-06-16 | 2006-12-28 | Intel Corporation | Reducing computing system power through idle synchronization |
US20080288798A1 (en) | 2007-05-14 | 2008-11-20 | Barnes Cooper | Power management of low power link states |
US20090141654A1 (en) | 2007-12-04 | 2009-06-04 | Nokia Corporation | Multi-Processor architecture for a device |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
AR031076A1 (es) | 1999-09-21 | 2003-09-10 | Diebold Inc | Ma quina automa tica para transacciones |
US6701405B1 (en) * | 1999-10-01 | 2004-03-02 | Hitachi, Ltd. | DMA handshake protocol |
US6480965B1 (en) * | 1999-10-07 | 2002-11-12 | Intel Corporation | Power management method for a computer system having a hub interface architecture |
US7000060B2 (en) * | 2002-09-27 | 2006-02-14 | Hewlett-Packard Development Company, L.P. | Method and apparatus for ordering interconnect transactions in a computer system |
TWI311705B (en) | 2005-05-23 | 2009-07-01 | Via Tech Inc | Peripheral component interconnect express and changing method of link power states thereof |
GB2429607B (en) * | 2005-08-26 | 2010-02-10 | Samsung Electronics Co Ltd | Improvements in mobile telecommunication security |
US7529953B1 (en) * | 2006-06-05 | 2009-05-05 | Intel Corporation | Communication bus power state management |
US7827425B2 (en) | 2006-06-29 | 2010-11-02 | Intel Corporation | Method and apparatus to dynamically adjust resource power usage in a distributed system |
US8291244B2 (en) * | 2006-07-28 | 2012-10-16 | Arm Limited | Power management in a data processing device having masters and slaves |
US8504759B2 (en) | 2009-05-26 | 2013-08-06 | Micron Technology, Inc. | Method and devices for controlling power loss |
US9921967B2 (en) * | 2011-07-26 | 2018-03-20 | Intel Corporation | Multi-core shared page miss handler |
-
2012
- 2012-07-06 RU RU2014104029A patent/RU2617549C2/ru active
- 2012-07-06 CN CN201280033571.4A patent/CN103797435B/zh active Active
- 2012-07-06 US US14/130,646 patent/US9767056B2/en active Active
- 2012-07-06 KR KR1020147003088A patent/KR101916985B1/ko active IP Right Grant
- 2012-07-06 BR BR112014000250-9A patent/BR112014000250B1/pt active IP Right Grant
- 2012-07-06 WO PCT/EP2012/063295 patent/WO2013004825A1/en active Application Filing
- 2012-07-06 EP EP12732675.9A patent/EP2729863B1/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2006138687A2 (en) | 2005-06-16 | 2006-12-28 | Intel Corporation | Reducing computing system power through idle synchronization |
US20080288798A1 (en) | 2007-05-14 | 2008-11-20 | Barnes Cooper | Power management of low power link states |
US20090141654A1 (en) | 2007-12-04 | 2009-06-04 | Nokia Corporation | Multi-Processor architecture for a device |
Also Published As
Publication number | Publication date |
---|---|
US9767056B2 (en) | 2017-09-19 |
EP2729863A1 (en) | 2014-05-14 |
CN103797435B (zh) | 2017-05-31 |
CN103797435A (zh) | 2014-05-14 |
RU2014104029A (ru) | 2015-08-20 |
RU2617549C2 (ru) | 2017-04-25 |
EP2729863B1 (en) | 2017-09-06 |
BR112014000250B1 (pt) | 2021-02-02 |
US20140201406A1 (en) | 2014-07-17 |
BR112014000250A2 (pt) | 2017-03-01 |
WO2013004825A1 (en) | 2013-01-10 |
KR20140061378A (ko) | 2014-05-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101916985B1 (ko) | 두 개의 집적 회로 간의 트랜잭션 교환을 제어하는 방법 | |
US6738068B2 (en) | Entering and exiting power managed states without disrupting accelerated graphics port transactions | |
TWI447650B (zh) | 中斷分佈方案 | |
JP4855451B2 (ja) | 記憶装置のアクセス方法及び装置 | |
TW201032055A (en) | Technique for communicating interrupts in a computer system | |
US11599489B2 (en) | Inter-die memory-bus transaction in a seamlessly integrated microcontroller chip | |
KR20170078697A (ko) | 교착상태 방지를 위한 방법들 및 회로들 | |
US6799278B2 (en) | System and method for processing power management signals in a peer bus architecture | |
US20200242066A1 (en) | Semiconductor integrated circuit and operation method thereof | |
TW201003407A (en) | Controller core for controlling communication of peripheral component interconnect express interface and production method thereof | |
CN109240955B (zh) | 电子装置 | |
Marking | Chip Errata for the i. MX35 | |
TW201321953A (zh) | 電源開機控制方法及其系統 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E701 | Decision to grant or registration of patent right |