KR101835494B1 - 프로세서의 버퍼의 자율 제어 - Google Patents

프로세서의 버퍼의 자율 제어 Download PDF

Info

Publication number
KR101835494B1
KR101835494B1 KR1020167010673A KR20167010673A KR101835494B1 KR 101835494 B1 KR101835494 B1 KR 101835494B1 KR 1020167010673 A KR1020167010673 A KR 1020167010673A KR 20167010673 A KR20167010673 A KR 20167010673A KR 101835494 B1 KR101835494 B1 KR 101835494B1
Authority
KR
South Korea
Prior art keywords
buffer
pad
coupled
value
state
Prior art date
Application number
KR1020167010673A
Other languages
English (en)
Other versions
KR20160060726A (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 KR20160060726A publication Critical patent/KR20160060726A/ko
Application granted granted Critical
Publication of KR101835494B1 publication Critical patent/KR101835494B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • 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/3212Monitoring battery levels, e.g. power saving mode being initiated when battery voltage goes below a certain 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
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/0175Coupling arrangements; Interface arrangements
    • H03K19/0185Coupling arrangements; Interface arrangements using field effect transistors only
    • H03K19/018585Coupling arrangements; Interface arrangements using field effect transistors only programmable
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/0175Coupling arrangements; Interface arrangements
    • H03K19/0185Coupling arrangements; Interface arrangements using field effect transistors only
    • H03K19/018592Coupling arrangements; Interface arrangements using field effect transistors only with a bidirectional operation
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2207/00Indexing scheme relating to arrangements for writing information into, or reading information out from, a digital store
    • G11C2207/10Aspects relating to interfaces of memory device to external buses
    • G11C2207/105Aspects related to pads, pins or terminals
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1051Data output circuits, e.g. read-out amplifiers, data output buffers, data output registers, data output level conversion circuits
    • G11C7/1057Data output buffers, e.g. comprising level conversion circuits, circuits for adapting load
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1078Data input circuits, e.g. write amplifiers, data input buffers, data input registers, data input level conversion circuits
    • G11C7/1084Data input buffers, e.g. comprising level conversion circuits, circuits for adapting load

Abstract

일 실시예에서, 장치는 패드를 통해 결합되는 다른 디바이스에 로직 유닛을 결합하기 위한 입력/출력(I/O) 버퍼, 및 구조적 상태로의 진입에 응답하여, 패드 상의 값을 검출하고, 값을 패드에 제공하도록 I/O 버퍼를 제어하기 위해 I/O 버퍼에 결합되는 로직을 포함한다. 다른 실시예들이 설명되고 청구된다.

Description

프로세서의 버퍼의 자율 제어{AUTONOMOUSLY CONTROLLING A BUFFER OF A PROCESSOR}
현대의 집적 회로(IC)는 하나 이상의 회로 보드 상에서 라우팅되는 상호접속부에 대한 접속을 통해 IC와 인터페이스하는 핀 또는 패드를 통해 플랫폼 상의 다른 디바이스에 결합된다. 전기 입력/출력(I/O) 패드 충돌은 패드에 결합된 2개 이상의 디바이스가 동시에 패드 상에 반대 값을 배치하려고 시도하는 바람직하지 않은 I/O 패드 상태이다. I/O 패드 충돌은 잘못된 동작, 하드웨어에 대한 손상, 공급 전압으로부터 접지로의 직류(DC) 단락 경로를 유발하여, 대기 누설 전류를 크게 증가시키며, 이는 배터리 전력으로 동작하는 휴대용 디바이스에서 특히 바람직하지 않다.
도 1은 본 발명의 일 실시예에 따른 입력/출력(I/O) 버퍼의 블록도이다.
도 2는 본 발명의 일 실시예에 따른 제어 로직 구현의 블록도이다.
도 3은 본 발명의 일 실시예에 따른 버퍼를 제어하기 위한 방법의 흐름도이다.
도 4는 본 발명의 일 실시예에 따른, 버퍼의 하나 이상의 제어 가능 요소의 샘플링, 생성 및 프로그래밍에서 수행되는 동작들을 상술하는 블록도이다.
도 6은 본 발명의 일 실시예에 따른 프로세서의 블록도이다.
도 7은 본 발명의 일 실시예에 따른 시스템의 블록도이다.
도 8은 본 발명의 일 실시예에 따른 프로세서의 블록도이다.
많은 경우에, 프로세서 또는 시스템 온 칩(SoC)과 같은 IC의 범용 입력/출력(GPIO) 양방향 패드들은 플랫폼의 많은 주변 디바이스 중에서 특히 카메라, 모뎀, 저장소 및 오디오 디바이스에 대한 인터페이스로서 사용되도록 구성(직접 입력 또는 출력, 패드 상태 - 하이 또는 로우)될 수 있다. 일반적으로, GPIO 패드 구성(상태, 방향 및 강도)은 하나 이상의 제어 레지스터에 저장된 값들을 이용하여 프로그래밍된다. 이러한 레지스터들은 소프트웨어/펌웨어 흐름들을 이용하여 소정의 구조적 상태들(예로서, reset_deassertion, 대기 표명 및 powergood_assertion) 동안에 개서될 수 있는 하드웨어 디폴트 값들을 갖는다.
통상적으로, SoC 펌웨어 코드 또는 소프트웨어 기반 I/O 디바이스 드라이버는 그의 특정 사용 예에 따라 I/O 패드 방향, 버퍼 강도 및 대기 상태를 구성할 것이다. 그러나, 기존의 GPIO 프로그래밍 흐름은 완전히 수동으로 행해지므로 시간 소모적이고 에러에 취약하다. 그러한 프로그래밍은 보드/플랫폼 팀이 제품 구성들을 결정하고 I/O 패드들에 접속될 상이한 판매자들의 디바이스들을 선택함으로써 시작된다. 이어서, SoC 소프트웨어 팀은 플랫폼 팀들과 협력하여, 구성을 디코딩하고, 코드 제어 레지스터 값들을 SoC 내에 프로그래밍된 펌웨어 이미지 내로 전달할 것이다. SoC 대기 동안 부정확하게 프로그래밍된 I/O 패드는 전기 패드 충돌을 유발하여, 누설 전류를 증가시키고 배터리 수명을 소모시킨다. 그러한 부정확한 프로그래밍은 단순한 I/O 구성 변경에도 SoC 파워-온 동안 디버깅하기 어려운 기능 장애 원인을 유발할 수도 있다.
실시예들은 현재의 구조적 상태에 기초하여 I/O 패드 상태를 검출하고 올바르게 구성한다. 결과적으로, 최종 하드웨어 설계 시의 지루한 수동 디버그, 전력 및 기능 상관이 회피될 수 있다. 더 구체적으로, 대기 상태와 같은 적어도 소정의 구조적 상태들 동안 GPIO 패드 값 및 방향이 자율적으로 제어되고 생성될 수 있다. 이러한 기술은 플랫폼 상에서의 I/O 패드 사용 예에 적합하며, 구조적으로 그리고 전기적으로 정확한 I/O 패드 상태들만을 구동한다. 일 실시예에 따른 기술이 유한 상태 머신(FSM)을 이용하여 하드웨어에서 구현되고, I/O 제어기 내에 통합될 수 있다. 자동화 및 하드웨어 제어는 샘플 및 구동 스킴이 적합하고, 정확하며, 빠른 전환 시간을 달성하는 것을 가능하게 한다. 전기 패드 충돌을 방지함으로써, 불필요한 누설 전류가 제거된다. 본 발명의 일 실시예를 이용하여, 제어기는 I/O 패드들의 구성들을 지능적으로 적응시키거나 조정할 수 있다.
양방향 GPIO 패드는 다수의 드라이버를 가질 수 있다. SoC와 관련하여, 패드는 SoC 측 또는 온-보드 엔드포인트 디바이스들에 의해 구동될 수 있다. I/O 패드가 하이로 구동되는 경우, SoC는 예로서 풀다운 디바이스의 사용을 통해 패드 상에 로우를 배치하려고 시도하지 않아야 하며, 그 반대도 마찬가지이다. 실시예들은 패드 전기 충돌이 존재하지 않는 것을 보증하는 방식으로 하나 이상의 위크풀(weakpull) 임피던스 디바이스를 이용하여 패드 상으로 상태를 구동하기 전에 I/O 패드 전압을 샘플링하도록 동작한다.
이러한 방식으로, GPIO 패드들을 프로그래밍하기 위한 집중적인 수동 개입에 대한 필요성이 회피된다. 위에서 간단히 설명된 바와 같이, 일반적으로 이러한 수동 프로그래밍은 보드/플랫폼 엔지니어링 팀들과 소프트웨어 엔지니어링 팀들 간의 협력을 포함한다. 데이터 시트 및 인터페이스 전기 사양들을 수동으로 검사함으로써 원하는 패드 값이 획득되면, 이것은 SoC 내로 프로그래밍된다. 여러 팀은 전력이 최적화되고 기능적으로 안정된 설정이 달성될 때까지 협력하고 여러 번 단계들을 통해 반복한다. 이러한 프로세스는 매우 시간 소모적이며, 상이한 디바이스 판매자가 선택되거나 보드 구성이 약간 변경될 때도 반복된다. 대신, 실시예들은 보드 구성 또는 디바이스 선택에 관계없이 안정된 I/O 패드 상태에 적응한다. I/O 전압은 SoC가 임의의 구조적 상태, 예로서 시스템 대기 상태, 재설정 역표명 등에 들어가기 전에 샘플링되며, 적절한 값이 패드로 구동된다.
이제, 도 1을 참조하면, 본 발명의 일 실시예에 따른 입력/출력(I/O) 버퍼의 블록도가 도시된다. 도 1에 도시된 바와 같이, 버퍼(10)는 범용 I/O 버퍼(GPIO)이다. GPIO 버퍼(10)는 디지털 신호들에 의해 제어될 수 있는 아날로그 프론트-엔드(AFE) 커스텀 회로 블록을 갖는다. 여기서 설명되는 실시예들은 범용 I/O 버퍼들과 관련되지만, 본 발명의 범위는 이와 관련하여 한정되지 않으며, 여기서 설명되는 제어 메커니즘들은 다른 타입의 버퍼들에 동일하게 적용된다는 것을 이해한다. 일반적으로, 버퍼(10)는 버퍼가 일부를 구성하는 IC의 하나 이상의 로직 유닛과 소정 타입의 상호접속부를 통해 IC에 결합되는 하나 이상의 다른 디바이스 사이에서 신호 정보를 결합한다. 설명의 목적을 위해, I/O 버퍼(10)는 멀티코어 프로세서, SoC 또는 다른 타입의 프로세서 디바이스와 같은 프로세서의 일부인 것으로 가정한다. 또한, 프로세서는 예로서 시스템의 회로 보드 상에서 라우팅되는 상호접속부를 통해 시스템의 다른 IC 또는 다른 디바이스에 결합되는 것으로 가정한다.
송신 방향에서, I/O 버퍼(10)를 통해 통신될 정보는 송신기(20)에서 송신 데이터(tx_data)로서 수신되고, 송신기는 신호를 조절하여 I/O 패드(50)를 통해 출력하며, 이 패드는 상호접속부에 결합될 프로세서의 임의 타입의 I/O 핀, 표면 실장 패드 또는 임의의 다른 타입의 도전성 요소일 수 있다. 송신 통신을 가능하게 하기 위해, 송신 인에이블 신호(tx_enable)가 송신기(20)에 결합되어, 송신기가 패드(50) 상에서 강한 로직 하이 또는 로우 값을 구동하는 것을 가능하게 한다. 더 파악되듯이, 송신기(20)를 패드(50)에 결합하는 I/O 라인(25) 상에 소정 상태들이 존재하는 것을 가능하게 하기 위해, 풀업 임피던스(30) 및 풀다운 임피던스(40)가 송신기(20)에 결합되는 출력에 결합되는 노드(45)에서 라인(25)에 더 결합된다. 일 실시예에서 예를 들어 약 2 킬로옴과 50 킬로옴 사이의 값을 갖는 위크풀 저항기들을 이용하여 구현될 수 있는 이러한 임피던스 디바이스들은 패드(50)를 로직 하이 또는 로우 값으로 각각 풀링하도록 제어 신호들(각각 weakpullup_enable 및 weakpulldown_enable)을 통해 제어된다. 이를 위해, 풀업 임피던스(30)는 인에이블될 때 공급 전압 노드(도시되지 않음)와 출력 노드 사이에 (예로서, 금속 산화물 반도체 전계 효과 트랜지스터(MOSFET) 또는 다른 타입의 스위치를 통해) 스위칭 가능하게 결합될 수 있다. 그리고, 풀다운 임피던스(40)는 인에이블될 때 기준 전압 노드(통상적으로 접지)와 출력 노드 사이에 (예로서, MOSFET 또는 다른 타입의 스위치를 통해) 스위칭 가능하게 결합될 수 있다.
도 1에 더 도시된 바와 같이, I/O 버퍼(10)는 패드(50)를 통한 시스템의 다른 컴포넌트로부터의 착신 신호 정보의 수신을 가능하게 한다. 더 구체적으로, 착신 정보는 수신 데이터(rx_data) 형태의 착신 신호 정보를 프로세서의 주어진 하나 이상의 로직 유닛에 제공하는 수신기(60)를 통해 결합된다. 수신기(60)는 다른 제어 신호(rx_enable)에 의해 인에이블되어, 수신기는 패드(50)로부터의 입력 경로를 제공하는 것이 가능해진다. 도 1의 실시예에서는 이러한 하이 레벨로 도시되지만, 본 발명의 범위는 이와 관련하여 한정되지 않으며, 버퍼의 변형들이 가능하다는 것을 이해한다.
이제, 도 2를 참조하면, 본 발명의 일 실시예에 따른 제어 로직 구현의 블록도가 도시된다. 도 2에 도시된 바와 같이, 회로(100)는 프로세서를 시스템 내의 하나 이상의 다른 디바이스에 결합하는 I/O 제어기의 일부와 같은 프로세서의 일부이다. 일반적으로, 기능 동작 모드를 위해, (코어, 고정 기능 유닛 또는 I/O 신호들의 다른 생성자 또는 소비자와 같은) 프로세서의 임의 타입의 로직 유닛일 수 있는 로직 회로(110)가 존재한다. 많은 예에서, 회로(110)는 정상 기능 동작 모드 동안 정보를 출력 또는 수신하려고 시도한다. 따라서, 신호들은 도 2의 실시예에서 GPIO 버퍼인 I/O 버퍼(140)와 회로(110) 사이에 결합된 버퍼 제어 로직(130)과 로직 회로(110) 사이에서 통신된다. 일반적으로, 로직(130) 및 버퍼(140)는 프로세서의 언코어 부분의 일부일 수 있는, 프로세서의 I/O 제어기의 일부일 수 있다.
본 명세서에서 더 설명되는 바와 같이, 버퍼 제어 로직(130)은 다양한 동작 모드에서 동작하여, 로직 회로(110)와, I/O 패드(150)를 통해 프로세서에 결합된 다른 디바이스 사이에 신호 통신 경로를 제공할 수 있다. 다른 동작 모드들, 예로서 파워 온, 재설정 및 대기/중지 상태들과 같은 주어진 구조 또는 마이크로 구조적 상태에서, 버퍼 제어 로직(130)은 동작 모드에 따라 다양한 정보 소스들 중 하나에 기초하여 I/O 라인(145) 상에서 소정의 값을 갖도록 버퍼(140)를 제어할 수 있다. 따라서, 실시예들은 SoC가 주어진 구조 또는 마이크로 구조적 상태에 들어갈 때 I/O 패드 구성을 결정하는 프로세스를 자동화하고 전기 패드 충돌을 방지하여 최저의 가능한 I/O 누설 전류를 달성한다.
일부 예들에서, 대기 또는 중지 모드에서, 소프트웨어 또는 펌웨어 제어 값이 대체 제어 경로(120)를 통해 제공될 수 있다. 다른 예들에서, 소정의 구조적 상태들에 대해, 샘플링 기반 접근법이 사용될 수 있고, 따라서 버퍼 제어 로직(130)은 I/O 패드(150)에서의 값을 결정하고 I/O 버퍼(140)를 제어하여 그 값을 복제하기 위한 신호를 생성하며, 따라서 전기 충돌이 발생하지 않게 된다.
도 2에 더 도시된 바와 같이, 하드웨어, 펌웨어 및/또는 소프트웨어 또는 이들의 조합들일 수 있는 버퍼 제어 로직(130)은 다양한 구성 로직들로 형성된다. 이러한 로직들은 패드(150)의 상태(및/또는 신호 라인(145) 상의 상태)를 샘플링하도록 구성되는 샘플 로직(132)을 포함한다. 버퍼 제어 로직(130)은 프로세서가 동작하고 있는 주어진 모드를 결정하고 그러한 정보를 제어 값 생성 로직(138)에 제공하는 모드 제어 로직(134)을 더 포함하며, 이 제어 값 생성 로직은 버퍼(140)에 대한 하나 이상의 제어 입력에 대한 적절한 제어 값들을 결정하여 적절한 값이 패드(150)에서 제공되는 것을 가능하게 한다. 더 도시된 바와 같이, 구성 저장소(136)도 버퍼 제어 로직(130) 내에 포함될 수 있다. 본 명세서에서 설명되는 바와 같이, 그러한 구성 저장소는 버퍼(140)에 대한 하나 이상의 제어 가능 값에 대한 제어 정보를 각자 저장하기 위한 다수의 필드를 포함할 수 있다.
버퍼(140)와 관련하여, 이는 도 1의 버퍼(10)와 유사하게 구성된다. 따라서, I/O 패드(150)에 또한 결합되는 신호 라인(145) 상의 출력 노드(143)에 결합되는 풀업 임피던스(146) 및 풀다운 임피던스(148)를 갖는 송신기(142)가 도시된다.
도 2에 더 도시된 바와 같이, 버퍼 제어 로직(130)은 다양한 구조 및 마이크로 구조적 상태 정보 신호들을 더 수신할 수 있다. 실시예에서, 전력 양호 표면 상태, 재설정 역표명 상태 및 전력 버튼 사이클 상태를 포함하는 구조적 상태들이 도시된다. 일 실시예에서, 버퍼 제어 로직(130)은 이러한 상태들에서 특정 값들이 패드(150)에 제공되게 할 수 있다. 물론, 추가적인 구조적 상태들도 존재할 수 있으며, 소정의 다른 값들이 패드(150)에 제공되게 할 수 있다. 더구나, 소정의 마이크로 구조 전력 상태들이 동작 동안 발생할 수 있고, 이러한 상태들에 관한 정보도 버퍼 제어 로직(130)에 제공될 수 있다. 게다가, 이러한 정보는 버퍼 제어 로직(130)이 패드(150)에서 적절한 값들을 제공하게 할 수도 있다. 도 2의 실시예에서 이러한 특정 구현과 관련하여 도시되지만, 본 발명의 범위는 이와 관련하여 한정되지 않는다는 것을 이해한다. 예를 들어, 도 1의 회로는 단일 I/O 버퍼와 관련된다. 유사한 회로가 각각의 그러한 버퍼에 대해 제공될 수 있거나, 대응하는 제어 레지스터들을 갖는 중앙 제어 로직이 모든 버퍼들을 수용하도록 제공될 수 있다.
샘플 및 구동 스킴은 대기 모드 동안 I/O 패드(150)를 구성하는 데 사용될 수 있다. 기능 모드 및 다른 구조적 상태들에서, 로직(130)은 예를 들어 무효화 또는 우회 제어 비트를 이용하는 소프트웨어/펌웨어 구동 접근법 또는 레거시 접근법을 이용하기 위한 유연성을 제공한다. 일 실시예에서, 로직(130)은 활성 모드 동안 패드로부터 위크풀 (업/다운) 임피던스들을 디스에이블하여, 활성 전류를 줄이는 것은 물론, 신호 무결성을 개선하는 것을 도울 수 있다. 그러한 제어가 실현될 수 있는 이유는 로직(130)이 디바이스들이 사용되어야 하는 구조적 상태의 변경시에 매우 낮은 지연으로 디바이스들을 다시 인에이블할 수 있기 때문이다.
이제, 도 3을 참조하면, 본 발명의 일 실시예에 따른 버퍼를 제어하기 위한 방법의 흐름도가 도시된다. 도 3에 도시된 바와 같이, 방법(200)은 버퍼와 관련된 버퍼 제어 로직을 이용하여 적어도 부분적으로 구현될 수 있다. 방법(200)의 설명의 목적을 위해, (프로세서 또는 SoC와 같은) 디바이스가 정상 기능 모드에서 동작하여 버퍼가 단지 송신 방향에서, 단지 수신 방향에서 또는 결합된 송신/수신 방향에서 다른 디바이스와 활발하게 통신하는 것으로 가정한다(블록 210). 송신 동작 모드에 대해, I/O 버퍼를 통해 결합하기 위해 디바이스의 주어진 로직 유닛으로부터 발신 신호 정보가 수신된다. 유사하게, 수신 동작 모드에 대해, 착신 신호 정보가 I/O 버퍼를 통해 디바이스의 주어진 로직 유닛에 제공된다. 따라서, 이러한 정상 동작 모드에서, 버퍼 제어 로직은 일반적으로 로직 유닛으로부터 수신되는 바와 같은 신호 정보가 I/O 버퍼를 통해 전달되는 것을 가능하게 하도록 동작하며, 그 반대도 가능하다. 위크풀 디바이스들은 최저의 가능한 지연으로 활성 모드에 들어가는 기능 모드 동안 디스에이블되어 충돌 및 신호 무결성 문제들을 방지할 수 있다는 점에 유의한다.
이어서, 상태 변화의 지시가 수신되었는지가 결정된다(다이아몬드 220). 그러한 상태 변화는 구조 또는 마이크로 구조적 상태 변화 중 하나 이상에 대응할 수 있다. 일반적으로, 구조적 상태 변화는 시스템에 전반적으로 보이는 전체 디바이스의 상태 변화에 대응하는 반면, 마이크로 구조적 상태 변화는 디바이스의 주어진 코어 또는 다른 부분에 대한 전력 상태 변화와 같이 디바이스의 일부에만 관련된 변화일 수 있다. 따라서, 마이크로 구조적 상태에서, 각각의 패드 또는 패드 상태들의 클러스터들은 제어기의 상태에 따라 다를 수 있다. 전체 시스템에 보이는 전역 구조적 상태는 본 명세서에서 설명되는 로직을 이용하여 마이크로 구조 패드 상태 값을 무효화할 수 있다는 점에 유의한다.
그러한 지시가 수신되지 않는 경우, 블록 210에서 정상 동작이 계속된다. 이와 달리, 상태 변화가 발생한 것으로 결정되는 경우, 제어는 블록 230으로 전달되며, 여기서 대응하는 I/O 패드 상에 존재하는 값이 샘플링된다. 일 실시예에서, 값은 I/O 버퍼의 수신기를 통해 샘플링될 수 있다. 본 명세서에서 설명되는 제어 로직을 이용하여, 패드 상태들이 특정 구조적 상태들에서 유연하게 샘플링되거나 주기적으로 샘플링될 수 있다.
이어서, 자율 제어 모드가 무효화되어야 하는지가 결정된다(다이아몬드 240). 그러한 자율 제어 모드는 버퍼 제어 로직이 I/O 패드로 구동될 적절한 값을 자동으로 결정하는 상황들에서 수행될 수 있다. 이 모드가 무효화되어야 하는 경우, 제어는 블록 260으로 전달되며, 여기서 구성 저장소의 필드들에 대한 하나 이상의 제어 값이 지시된 상태에 대한 소정의 디폴트 제어 값들에 기초하여 설정될 수 있다. 즉, 자율 모드가 무효화될 때, 소프트웨어 및/또는 펌웨어 제어 값들이 구성 저장소에 제공될 수 있다. 이러한 구성 저장소는 I/O 버퍼를 제어하는 데 사용되는 제어 값들을 저장하기 위한 하나 이상의 필드를 포함한다는 점에 유의한다. 이와 달리, 자율 제어 모드가 무효화되지 않는 것으로 결정되는 경우, 제어는 블록 250으로 전달되며, 여기서 구성 저장소 필드들에 대한 하나 이상의 제어 값이 샘플링된 값에 기초하여 설정될 수 있다.
이어서, 어느 경우에나, 제어는 블록 270으로 전달되며, 여기서 구성 저장소로부터 획득된 제어 값들이 I/O 버퍼로 구동될 수 있다. I/O 버퍼로의 이러한 제어 신호들의 구동에 의해, I/O 패드에서의 원하는 값이 획득될 수 있다. 더 구체적으로, 실시예들에서, 이러한 원하는 값은 이 패드에서의 샘플링된 값에 대응할 수 있다. 이러한 방식으로, 전기 충돌 및/또는 바람직하지 않은 누설 경로가 방지되어, 예를 들어 대기 또는 다른 저전력 모드에서의 전력 소비의 감소를 가능하게 한다. 도 3의 실시예에서 이러한 하이 레벨로 도시되지만, 본 발명의 범위는 이와 관련하여 한정되지 않는다는 것을 이해한다. 방법(200)은 본 명세서에서 설명되는 바와 같이 제어될 각각의 버퍼에 대해 독립적으로 수행될 수 있다는 점에 유의한다.
이제, 도 4를 참조하면, 본 발명의 일 실시예에 따른, 버퍼의 하나 이상의 제어 가능 요소를 샘플링, 생성 및 프로그래밍할 때 수행되는 동작들을 상술하는 블록도가 도시된다. 도 4에 도시된 바와 같이, 방법(300)은 프로세서 또는 SoC의 I/O 제어기의 로직 유닛과 같은 I/O 버퍼와 관련된 로직에 의해 수행될 수 있다.
도 4에 도시된 바와 같이, 방법(300)은 샘플링을 행하고 샘플링에 기초하여 하나 이상의 제어 값을 결정함으로써 시작된다(블록 310). 더 구체적으로, 다양한 단계들을 수행하여, 패드 상에 존재하는 값을 준비 및 샘플링한 후에 이러한 샘플링된 값에 기초하여 제어 값을 결정할 수 있다. 일 실시예에서, 먼저 패드는 프로세서가 어떠한 상태도 패드 상으로 구동하지 않는 것을 보증하도록 3상화될 수 있다(블록 312). 일 실시예에서, 이러한 3상은 I/O 버퍼의 TX 인에이블 제어 핀이 역표명되는 것을 보증하도록 검사함으로써 실현될 수 있다. 이어서, 블록 314에서, 패드의 상태가 샘플링될 수 있다. 일 실시예에서, I/O 버퍼의 수신기 경로를 이용하여 샘플링을 수행하여 값을 획득할 수 있다. 이 값은 패드 상태를 결정하기 위한 RX 입력 값으로서 레지스터 내에 저장될 수 있다. 이어서, 이 값은 나중에 참조를 위해 등록될 수 있다.
다양한 제어 값들이 패드의 상태에 기초하여 결정될 수 있다. 도시된 예에서, 샘플링이 로우 값을 지시할 때, 풀다운 제어 가능 요소가 인에이블될 수 있다(블록 316). 대신, 하이 값이 지시되는 경우, 풀업 제어 가능 요소가 인에이블될 수 있다(블록 318). 그리고, 주어진 시스템 구성에서 패드가 사용되지 않는 경우(이는 주어진 플랫폼에서 패드에 대한 활성 접속이 존재하지 않는다는 것을 의미함), 디폴트 대기 상태가 인에이블된다(블록 319). 일 실시예에서, 대기 상태는 풀다운 제어 가능 요소를 인에이블하고 웨이크(wake) 지원을 위해 I/O 버퍼의 수신기를 인에이블함으로써 구현될 수 있다. 이러한 방식으로, 패드에 대한 최저의 가능하나 누설 구성이 실현된다.
이어서, 결정된 제어 값들에 기초하여, 가능한 패드 값 상태들이 생성될 수 있다(블록 320). 결정된 제어 값들에 기초하여, 블록 322에서 패드 값 정책이 설정될 수 있다. 일 실시예에서, 방향 및 값 양자를 지시하기 위해 지시하기 위해 패드당 2 비트 필드가 제공될 수 있다. 그러한 실시예에서, 최상위 비트는 패드가 입력 또는 출력 패드가 되도록 제어되는지를 지시하고, 최하위 비트는 패드 상의 값이 하이 또는 로우 값을 갖는지를 지시한다. 아래의 표 1은 일 실시예에 따른 I/O 패드 값 정책에 대한 예시적인 값들을 나타낸다.
00 출력, 하이
01 출력, 로우
10 입력, 하이
11 입력, 로우
이어서, 블록 324에서, 무효화 또는 백업 선택이 인에이블되는지가 결정된다. 그러한 무효화 또는 백업 선택은 무효화가 필요한지를 지시하도록 실행되는 소프트웨어 또는 펌웨어에 의해 제어 가능할 수 있다. 활성 무효화 지시자를 제공하는 것에 더하여, 예로서 적절한 저장소로부터 디폴트 제어 값들이 획득될 수 있다. 이어서, 블록 326에서, 최종 패드 구성 값들이 하나 이상의 버퍼 제어 레지스터에 대해 맵핑될 수 있다. 상이한 실시예들에서, 다양한 양의 제어 레지스터들이 존재할 수 있다. 일부 예들에서는 버퍼의 각각의 제어 가능 요소에 대한 필드들을 포함하는 단일 제어 레지스터가 존재하는 반면, 다른 구현들에서는 주어진 제어 가능 요소와 관련된 적어도 하나의 필드를 각자 포함하는 다수의 구성 레지스터가 제공될 수 있다.
도 4를 계속 참조하면, 이어서, 블록 330에서, 최종 패드 구성 값들을 이용하여 패드 제어 레지스터가 프로그래밍될 수 있다. 도 4의 예에서, 복수의 필드, 즉 송신 인에이블 필드(332), 수신 인에이블 필드(334), 풀다운 인에이블 필드(336) 및 풀업 인에이블 필드(338)를 포함하는 단일 패드 제어 레지스터가 존재하는 것으로 가정한다. 일 실시예에서, 이러한 필드들은 도 1의 I/O 버퍼에 제공되는 신호들을 제어하기 위한 제어 값들을 저장한다. 따라서, 최종 맵핑된 구성 값들에 기초하여, 패드 제어 레지스터의 이러한 필드들이 프로그래밍된다.
결과적으로, 이러한 값들은 버퍼의 대응하는 제어 가능 요소들을 제어하여 버퍼가 원하는 상태에 있는 것을 가능하게 하도록 전송될 수 있다. 예를 들어, 대기 모드 또는 다른 저전력 모드의 경우에, I/O 버퍼는 무효화 또는 백업 모드가 선택되지 않는 경우에 샘플링된 것과 동일한 값을 패드 상에서 제공하도록 구성될 수 있다. 도 4의 실시예에서 이러한 하이 레벨로 도시되지만, 본 발명의 범위는 이와 관련하여 한정되지 않는다는 것을 이해한다.
실시예들은 I/O 구성 레지스터들의 프로그래밍에 있어서 사람에 의해 유발되는 에러들을 제거하여, SoC에 대해 마케팅하기 위한 시간을 줄이는 것을 돕는다. 게다가, I/O 버퍼 패드 프로그래밍은 GPIO 회로 버퍼 설계와 매칭되고 유효한 가능한 상태 값들을 제한하도록 튜닝된다. 본 명세서에서 설명되는 바와 같은 I/O 제어기 내의 전력 관리 로직을 제공함으로써, I/O 패드 충돌로 인한 전력 소모가 방지될 수 있다.
이제, 도 5를 참조하면, 본 발명의 일 실시예에 따른 컴퓨터 시스템 내에 존재하는 컴포넌트들의 블록도가 도시된다. 도 5에 도시된 바와 같이, 시스템(400)은 컴포넌트들의 임의 조합을 포함할 수 있다. 이러한 컴포넌트들은 IC들, 그들의 부분들, 개별 전자 디바이스들, 또는 컴퓨터 시스템에 적합한 다른 모듈들, 로직, 하드웨어, 소프트웨어, 펌웨어 또는 이들의 조합으로서, 또는 컴퓨터 시스템의 섀시 내에 달리 포함되는 컴포넌트들로서 구현될 수 있다. 도 5의 블록도는 컴퓨터 시스템의 많은 컴포넌트의 하이 레벨 뷰를 도시하는 것을 의도한다는 점에도 유의한다. 그러나, 다른 구현들에서는 도시된 컴포넌트들 중 일부가 생략될 수 있고, 추가 컴포넌트들이 존재할 수 있고, 도시된 컴포넌트들의 다른 배열이 발생할 수 있다는 것을 이해해야 한다.
도 5에 도시된 바와 같이, 프로세서(410)는 일 실시예에서 마이크로프로세서, 멀티코어 프로세서, 멀티스레드 프로세서, 초저전압 프로세서, 내장 프로세서 또는 다른 공지된 처리 요소를 포함한다. 도시된 구현에서, 프로세서(410)는 시스템(400)의 다양한 컴포넌트들 중 다수와 통신하기 위한 주 처리 유닛 및 중앙 허브로서 작용한다. 일례로서, 프로세서(410)는 시스템 온 칩(SoC)으로서 구현된다. 특정 설명 예로서, 프로세서(410)는 CA 산타클라라의 Intel Corporation으로부터 입수 가능한 i3, i5, i7 또는 다른 그러한 프로세서와 같은 Intel® Architecture CoreTM 기반 프로세서일 수 있다. 그러나, CA 서니베일의 Advanced Micro Devices, Inc.(AMD)로부터 입수 가능한 바와 같은 다른 저전력 프로세서들, ARM Holdings. Ltd 또는 그의 고객으로부터의 ARM 기반 설계 또는 CA 서니베일의 MIPS Technologies, Inc. 또는 그들의 피면허자들 또는 사용자들로부터의 MIPS 기반 설계, 예로서 Apple A5 프로세서, Qualcomm Snapdragon 프로세서 또는 TI OMAP 프로세서가 다른 실시예들에서 대신 존재할 수 있다. 일 구현에서의 프로세서(410)의 구조 및 동작에 관한 소정 상세들이 아래에서 더 설명될 것이다.
프로세서(410)는 일 실시예에서 시스템 메모리(415)와 통신한다. 설명 예로서, 시스템 메모리(415)는 주어진 양의 시스템 메모리를 제공하기 위해 다수의 메모리 디바이스 또는 모듈을 통해 구현된다. 일 실시예에서, 메모리는 JEDEC(Joint Electron Devices Engineering Council) LPDDR(low power double data rate) 기반 설계, 예로서 (2009년 4월에 발표된) JEDEC JESD 209-2E에 따른 현행 LPDDR2 표준, 또는 대역폭을 증가시키기 위해 LPDDR2에 대한 확장을 제공하는 LPDDR3 또는 LPDDR4로서 지칭되는 차세대 LPDDR 표준에 따라 동작할 수 있다. 예로서, 2/4/8/12/16 기가바이트(GB)의 시스템 메모리가 존재할 수 있으며, 하나 이상의 메모리 상호접속부를 통해 프로세서(410)에 결합될 수 있다. 다양한 구현들에서, 개별 메모리 디바이스들은 단일 다이 패키지(SDP), 이중 다이 패키지(DDP) 또는 사중 다이 패키지(QDP)와 같은 상이한 패키지 타입들을 가질 수 있다. 이러한 디바이스들은 일부 실시예들에서 더 낮은 프로필 솔루션을 제공하기 위해 마더보드 상에 직접 솔더링되는 반면, 다른 실시예들에서 디바이스들은 주어진 커넥터에 의해 마더보드에 결합되는 하나 이상의 메모리 모듈로서 구성된다.
데이터, 애플리케이션, 하나 이상의 운영 체제 등과 같은 정보의 영구 저장을 제공하기 위해, 대용량 저장소(420)도 프로세서(410)에 결합될 수 있다. 다양한 실시예들에서, 더 얇고 더 가벼운 시스템 설계를 가능하게 하는 것은 물론, 시스템 응답성을 개선하기 위해, 이러한 대용량 저장소는 SSD를 통해 구현될 수 있다. 그러나, 다른 실시예들에서, 대용량 저장소는 파워다운 이벤트들 동안 상황 상태 및 다른 그러한 정보의 비휘발성 저장을 가능하게 하기 위한 SSD 캐시로서 작용하기 위해 더 적은 양의 SSD 저장소를 갖는 하드 디스크 드라이브(HDD)를 이용하여 주로 구현될 수 있으며, 따라서 시스템 활동들의 재개시에 빠른 파워업이 발생할 수 있다. 또한, 도 5에 도시된 바와 같이, 플래시 디바이스(422)가 예를 들어 직렬 주변장치 인터페이스(SPI)를 통해 프로세서(410)에 결합될 수 있다. 이러한 플래시 디바이스는 기본 입력/출력 소프트웨어(BIOS)는 물론, 시스템의 다른 펌웨어를 포함하는 시스템 소프트웨어의 비휘발성 저장을 제공할 수 있다.
다양한 입력/출력(I/O) 디바이스들이 시스템(400) 내에 존재할 수 있다. 다양한 실시예들에서, 디바이스들 중 적어도 일부는 본 명세서에서 설명되는 바와 같이 제어되는 I/O 버퍼들을 통해 프로세서(410)에 결합될 수 있다. 구체적으로, 도 5의 실시예에는 섀시의 뚜껑 부분 내에 구성되는 고화질 LCD 또는 LED 패널일 수 있는 디스플레이(424)가 도시된다. 이러한 디스플레이 패널은 예를 들어 디스플레이 패널 위에 외부적으로 적응되는 터치스크린(425)을 제공할 수도 있으며, 따라서 이러한 터치스크린과의 사용자 상호작용을 통해 사용자 입력들이 시스템에 제공되어, 예를 들어 정보의 표시, 정보 액세스 등과 관련된 원하는 동작들을 가능하게 할 수 있다. 일 실시예에서, 디스플레이(424)는 고성능 그래픽 상호접속부로서 구현될 수 있는 디스플레이 상호접속부를 통해 프로세서(410)에 결합될 수 있다. 터치스크린(425)은 일 실시예에서 I2C 상호접속부일 수 있는 다른 상호접속부를 통해 프로세서(410)에 결합될 수 있다. 도 5에 더 도시된 바와 같이, 터치스크린(425)에 더하여, 터치를 통한 사용자 입력은 터치 패드(430)를 통해서도 발생할 수 있으며, 이 터치 패드는 섀시 내에 구성될 수 있고, 터치스크린(425)과 동일한 I2C 상호접속부에 결합될 수도 있다.
지각 컴퓨팅 및 다른 목적들을 위해, 다양한 센서들이 시스템 내에 존재할 수 있으며, 상이한 방식으로 프로세서(410)에 결합될 수 있다. 소정의 관성 및 환경 센서들이 센서 허브(440)를 통해, 예로서 I2C 상호접속부를 통해 프로세서(410)에 결합될 수 있다. 도 5에 도시된 실시예에서, 이러한 센서들은 가속도계(441), 주변광 센서(ALS)(442), 나침반(443) 및 자이로스코프(444)를 포함할 수 있다. 다른 환경 센서들은 일부 실시예들에서 시스템 관리 버스(SMBus) 버스를 통해 프로세서(410)에 결합되는 하나 이상의 열 센서(446)를 포함할 수 있다.
플랫폼 내에 존재하는 다양한 관성 및 환경 센서들을 이용하여, 많은 상이한 사용 예가 실현될 수 있다. 이러한 사용 예들은 지각 컴퓨팅을 포함하는 진보된 컴퓨팅 동작들을 가능하게 하며, 또한 전력 관리/배터리 수명, 보안 및 시스템 응답성과 관련된 향상을 가능하게 한다.
예를 들어, 전력 관리/배터리 수명 문제들과 관련하여, 주변광 센서로부터의 정보에 적어도 부분적으로 기초하여, 플랫폼의 위치 내의 주변광 조건들이 결정되고, 그에 따라 디스플레이의 강도가 제어된다. 따라서, 디스플레이의 동작에서 소비되는 전력이 소정의 광 조건들에서 감소된다.
또한, 도 5에 도시된 바와 같이, 다양한 주변 디바이스들이 로우 핀 카운트(LPC) 상호접속부를 통해 프로세서(410)에 결합될 수 있다. 도시된 실시예에서, 다양한 컴포넌트들은 내장 제어기(435)를 통해 결합될 수 있다. 그러한 컴포넌트들은 (예로서, PS2 인터페이스를 통해 결합되는) 키보드(436), 팬(437) 및 열 센서(439)를 포함할 수 있다. 일부 실시예들에서, 터치 패드(430)도 PS2 인터페이스를 통해 EC(435)에 결합될 수 있다. 게다가, 2003년 10월 2일자의 TCG(Trusted Computing Group) TPM(trusted platform module) 사양 버전 1.2에 따른 TPM(438)과 같은 보안 프로세서도 이러한 LPC 상호접속부를 통해 프로세서(410)에 결합될 수 있다. 그러나, 본 발명의 범위는 이와 관련하여 한정되지 않으며, 보안 정보의 보안 처리 및 저장은 보안 코프로세서 내의 정적 랜덤 액세스 메모리(SRAM)와 같은 다른 보호되는 위치에서 또는 보안 구역(SE) 프로세서 모드에 의해 보호될 때만 해독되는 암호화된 데이터 블롭들로서 이루어질 수 있다.
시스템(400)은 무선 방식을 포함하는 다양한 방식으로 외부 디바이스들과 통신할 수 있다. 도 5에 도시된 실시예에서, 다양한 무선 모듈들이 존재하며, 이들 각각은 특정 무선 통신 프로토콜에 대해 구성되는 라디오에 대응할 수 있다. 근거리장과 같은 단거리 내의 무선 통신을 위한 하나의 방식은 일 실시예에서 SMBus를 통해 프로세서(410)와 통신할 수 있는 근거리장 통신(NFC) 유닛(445)을 통하는 것일 수 있다. 서로 근접한 디바이스들은 이러한 NFC 유닛(445)을 통해 통신할 수 있다는 점에 유의한다. 예를 들어, 사용자는 시스템(400)이 2개의 디바이스를 함께 밀접한 관계로 조정하고, 식별 정보, 지불 정보, 데이터, 예로서 이미지 데이터 등과 같은 정보의 전송을 가능하게 함으로써 사용자의 스마트폰과 같은 다른 (예로서) 휴대용 디바이스와 통신하는 것을 가능하게 할 수 있다. 무선 전력 전송은 NFC 시스템을 이용하여 수행될 수도 있다.
본 명세서에서 설명되는 NFC 유닛을 이용하여, 사용자들은 디바이스들을 좌우로 범핑(bumping)하고, 디바이스들 중 하나 이상의 디바이스의 코일들 간의 결합을 이용하여 (근거리장 통신 및 무선 전력 전송(WPT)과 같은) 근거리장 결합 기능들을 위해 그러한 디바이스들을 나란히 배치할 수 있다. 더 구체적으로, 실시예들은 코일들의 더 양호한 결합을 제공하기 위해 전략적으로 성형 및 배치된 페라이트 재료들을 갖는 디바이스들을 제공한다. 각각의 코일은 그와 관련된 인덕턴스를 가지며, 이는 시스템에 대한 공통 공진 주파수를 가능하게 하기 위해 시스템의 저항, 용량 및 다른 특징들과 관련하여 선택될 수 있다.
도 5에 더 도시된 바와 같이, 추가 무선 유닛들은 WLAN 유닛(450) 및 블루투스 유닛(452)을 포함하는 다른 단거리 무선 엔진들을 포함할 수 있다. WLAN 유닛(450)을 이용하여, 주어진 IEEE(Institute of Electrical and Electronics Engineers) 802.11 표준에 따른 와이파이(상표) 통신이 실현될 수 있는 반면, 블루투스 유닛(452)을 통해, 블루투스 프로토콜을 통한 단거리 통신이 발생할 수 있다. 이러한 유닛들은 예로서 USB 링크 또는 유니버설 비동기 수신기 송신기(UART) 링크를 통해 프로세서(410)와 통신할 수 있다. 또는, 이러한 유닛들은 주변 컴포넌트 상호접속부 익스프레스(상표)(PCIe(상표)) 프로토콜에 따른, 예로서 (2007년 1월 17일자로 발표된) PCI 익스프레스(상표) 사양 기지 사양 버전 3.0 또는 직렬 데이터 입력/출력(SDIO) 표준과 같은 다른 그러한 프로토콜에 따른 상호접속부를 통해 프로세서(410)에 결합될 수 있다. 물론, 하나 이상의 애드-인 카드 상에 구성될 수 있는 이러한 주변 디바이스들 간의 실제 물리 접속은 마더보드에 적응된 NGFF 커넥터들을 통해 이루어질 수 있다.
게다가, 예로서 셀룰러 또는 다른 무선 광역 프로토콜에 따른 무선 광역 통신들은 가입자 식별 모듈(SIM)(457)에 결합될 수 있는 WWAN 유닛(456)을 통해 이루어질 수 있다. 게다가, 위치 정보의 수신 및 이용을 가능하게 하기 위해, GPS 모듈(455)도 존재할 수 있다. 도 5에 도시된 실시예에서, WWAN 유닛(456) 및 카메라 모듈(454)과 같은 통합 캡처 디바이스는 USB 2.0 또는 3.0 링크와 같은 주어진 USB 프로토콜 또는 UART 또는 I2C 프로토콜을 통해 통신할 수 있다는 점에 유의한다. 다시, 이러한 유닛들의 실제 물리 접속은 마더보드 상에 구성된 NGFF 커넥터에 대한 NGFF 애드-인 카드의 적응을 통해 이루어질 수 있다.
통합 카메라 모듈(454)이 뚜껑 내에 통합될 수 있다. 일례로서, 이 카메라는 예로서 적어도 2.0 메가픽셀(MP)의 해상도를 갖고 6.0 MP 이상으로 확장되는 고해상도 카메라일 수 있다.
오디오 입력들 및 출력들을 제공하기 위해, 고화질 오디오(HDA) 링크를 통해 프로세서(410)에 결합될 수 있는 디지털 신호 프로세서(DSP)(460)를 통해 오디오 프로세서가 구현될 수 있다. 유사하게, DSP(460)는 섀시 내에 구현될 수 있는 출력 스피커들(463)에 결합될 수 있는 통합 코더/디코더(코덱: CODEC) 및 증폭기(462)와 통신할 수 있다. 유사하게, 증폭기 및 코덱(462)은 일 실시예에서 시스템 내의 다양한 동작들의 음성 활성화 제어를 가능하게 하기 위한 고품질 오디오 입력들을 제공하기 위해 (디지털 마이크 어레이와 같은) 이중 어레이 마이크들을 통해 구현될 수 있는 마이크(465)로부터 오디오 입력들을 수신하도록 결합될 수 있다. 오디오 출력들은 증폭기/코덱(462)으로부터 헤드폰 잭(464)으로 제공될 수 있다는 점에도 유의한다. 도 5의 실시예에서 이러한 특정 컴포넌트들과 관련하여 도시되지만, 본 발명의 범위는 이와 관련하여 한정되지 않는다는 것을 이해한다.
일부 실시예들에서, 프로세서(410)는 외부 전압 조절기(VR) 및 완전 통합 전압 조절기들(FIVR들)로 지칭되는, 프로세서 다이 내에 통합되는 다수의 내부 전압 조절기에 의해 급전될 수 있다. 프로세서 내의 다수의 FIVR의 사용은 개별 전력 평면들로의 컴포넌트들의 그룹핑을 가능하게 하며, 따라서 FIVR에 의해 전력이 조절되고 그룹 내의 그러한 컴포넌트들에만 공급된다. 전력 관리 동안, 하나의 FIVR의 주어진 전력 평면은 프로세서가 소정의 로우 전력 상태로 배치될 때 파워 다운 또는 오프될 수 있는 반면, 다른 FIVR의 다른 전력 평면은 활성으로 유지되거나 충분히 급전된다.
실시예들은 서버 프로세서, 데스크탑 프로세서, 이동 프로세서 등을 포함하는 다양한 시장들을 위한 프로세서들에서 구현될 수 있다. 이제, 도 6을 참조하면, 본 발명의 일 실시예에 따른 프로세서의 블록도가 도시된다. 도 6에 도시된 바와 같이, 프로세서(500)는 복수의 코어(510a-510n)를 포함하는 멀티코어 프로세서일 수 있다. 일 실시예에서, 각각의 그러한 코어는 독립적인 전력 도메인을 가질 수 있으며, 작업 부하에 기초하여 활성 상태 및/또는 최대 성능 상태와 같은 다양한 구조적 상태들에 들어가고 나가도록 구성될 수 있다. 다양한 코어들은 다양한 컴포넌트들을 포함하는 시스템 에이전트 또는 언코어(520)에 상호접속부(515)를 통해 결합될 수 있다. 도시된 바와 같이, 언코어(520)는 최종 레벨 캐시일 수 있는 공유 캐시(530)를 포함할 수 있다. 게다가, 언코어는 통합 메모리 제어기(540), 다양한 인터페이스들(550) 및 전력 제어 유닛(555)을 포함할 수 있다. 다양한 실시예들에서, 전력 제어 유닛(555)은 본 발명의 일 실시예에 따른 버퍼 제어 로직(559)을 포함할 수 있다. 이러한 로직을 이용하여, 상이한 인터페이스들에 결합된 바와 같은 프로세서의 다양한 패드들이 전기 충돌을 방지하기 위한 상태에 있도록 제어될 수 있다. 다른 실시예들에서 이러한 제어 로직은 인터페이스들의 I/O 제어기 내에 구현될 수 있다는 것을 이해한다.
도 6을 참조하면, 프로세서(500)는 예로서 메모리 버스를 통해 시스템 메모리(560)와 통신할 수 있다. 게다가, 인터페이스들(550)에 의해, 주변 디바이스, 대용량 저장소 등과 같은 다양한 오프-칩 컴포넌트들에 대한 접속이 이루어질 수 있다. 그러한 인터페이스들은 본 명세서에서 설명되는 바와 같이 제어되는 GPIO 버퍼들을 포함할 수 있다. 도 6의 실시예에서 이러한 특정 구현과 관련하여 도시되지만, 본 발명의 범위는 이와 관련하여 한정되지 않는다.
실시예들은 많은 상이한 시스템 타입으로 구현될 수 있다. 이제, 도 7을 참조하면, 본 발명의 일 실시예에 따른 시스템의 블록도가 도시된다. 도 7에 도시된 바와 같이, 멀티프로세서 시스템(600)은 점대점 상호접속 시스템이며, 점대점 상호접속부(650)를 통해 결합되는 제1 프로세서(670) 및 제2 프로세서(680)를 포함한다. 도 7에 도시된 바와 같이, 프로세서들(670, 680) 각각은 제1 및 제2 프로세서 코어들(즉, 프로세서 코어들(674a, 674b) 및 프로세서 코어들(684a, 684b))을 포함하는 멀티코어 프로세서들일 수 있지만, 잠재적으로는 더 많은 코어가 프로세서들 내에 존재할 수 있다. 프로세서들 각각은 본 명세서에서 설명되는 바와 같이 대기 또는 다른 구조적 상태들 동안 전기 충돌을 방지하기 위해 핀 상태들을 자율적으로 제어하기 위한 PCU 또는 다른 로직을 포함할 수 있다.
도 7을 계속 참조하면, 제1 프로세서(670)는 메모리 제어기 허브(MCH)(672) 및 점대점(P-P) 인터페이스들(676, 678)을 더 포함한다. 유사하게, 제2 프로세서(680)는 MCH(682) 및 P-P 인터페이스들(686, 688)을 포함한다. 도 7에 도시된 바와 같이, MCH들(672, 682)은 각각의 프로세서에 국지적으로 부착되는 시스템 메모리(예로서, DRAM)의 부분들일 수 있는 각각의 메모리, 즉 메모리(632) 및 메모리(634)에 프로세서들을 결합한다. 제1 프로세서(670) 및 제2 프로세서(680)는 각각 P-P 상호접속부들(662, 664)을 통해 칩셋(690)에 결합될 수 있다. 도 7에 도시된 바와 같이, 칩셋(690)은 P-P 인터페이스들(694, 698)을 포함한다.
더구나, 칩셋(690)은 P-P 상호접속부(639)를 통해 칩셋(690)을 고성능 그래픽 엔진(638)에 결합하기 위한 인터페이스(692)를 포함한다. 또한, 칩셋(690)은 인터페이스(696)를 통해 제1 버스(616)에 결합될 수 있다. 도 7에 도시된 바와 같이, 다양한 입력/출력(I/O) 디바이스들(614)이 제1 버스(616)를 제2 버스(620)에 결합하는 버스 브리지(618)와 함께 제1 버스(616)에 결합될 수 있다. 일 실시예에서, 예를 들어 키보드/마우스(622), 통신 디바이스들(626) 및 데이터 저장 유닛(628), 예로서 코드(630)를 포함할 수 있는 디스크 드라이브 또는 다른 대용량 저장 디바이스를 포함하는 다양한 디바이스들이 제2 버스(620)에 결합될 수 있다. 또한, 오디오 I/O(624)가 제2 버스(620)에 결합될 수 있다. 실시예들은 스마트 셀룰러 전화, 태블릿 컴퓨터, 넷북, 울트라북(상표) 등과 같은 이동 디바이스들을 포함하는 다른 타입의 시스템들 내에 통합될 수 있다.
이제, 도 8을 참조하면, 본 발명의 다른 실시예에 따른 프로세서의 블록도가 도시된다. 도 8의 실시예에서, 프로세서(1000)는 독립적인 동작 전압 및 동작 주파수에서 동작하도록 각자 제어될 수 있는 다수의 도메인을 포함하는 시스템 온 칩(SoC)일 수 있다. 특정 설명 예로서, 프로세서(1000)는 CA 산타클라라의 Intel Corporation으로부터 입수 가능한 i3, i5, i7 또는 다른 그러한 프로세서와 같은 Intel® Architecture CoreTM 기반 프로세서일 수 있다. 그러나, CA 서니베일의 Advanced Micro Devices, Inc.(AMD)로부터 입수 가능한 바와 같은 다른 저전력 프로세서들, ARM Holdings. Ltd 또는 그의 고객으로부터의 ARM 기반 설계 또는 CA 서니베일의 MIPS Technologies, Inc. 또는 그들의 피면허자들 또는 사용자들로부터의 MIPS 기반 설계, 예로서 Apple A5 프로세서, Qualcomm Snapdragon 프로세서 또는 Texas Instruments OMAP 프로세서가 다른 실시예들에서 대신 존재할 수 있다. 그러한 SoC는 스마트폰, 태블릿 컴퓨터, 울트라북(상표) 컴퓨터 또는 다른 휴대용 컴퓨팅 디바이스와 같은 저전력 시스템에서 사용될 수 있다.
도 8에 도시된 하이 레벨 뷰에서, 프로세서(1000)는 복수의 코어 유닛(10100-1010n)을 포함한다. 각각의 코어 유닛은 하나 이상의 프로세서 코어, 하나 이상의 캐시 메모리 및 다른 회로를 포함할 수 있다. 각각의 코어 유닛(1010)은 하나 이상의 명령어 세트(예로서, (더 새로운 버전들과 함께 추가된 일부 확장들을 갖는) x86 명령어 세트; CA 서니베일의 MIPS Technologies의 MIPS 명령어 세트; CA 서니베일의 ARM Holdings의 (NEON과 같은 선택적인 추가 확장들을 갖는) ARM 명령어 세트) 또는 다른 명령어 세트 또는 이들의 조합들을 지원할 수 있다. 코어 유닛들 중 일부는 (예로서, 상이한 설계의) 이종 자원들일 수 있다는 점에 유의한다. 게다가, 각각의 그러한 코어는 일 실시예에서 공유 레벨(L2) 캐시 메모리일 수 있는 캐시 메모리에 결합될 수 있다. 비휘발성 저장소(1030)를 이용하여 다양한 프로그램들 및 다른 데이터를 저장할 수 있다. 예를 들어, 이러한 저장소를 이용하여, 마이크로코드, BIOS와 같은 부트 정보, 다른 시스템 소프트웨어 등의 적어도 부분들을 저장할 수 있다.
각각의 코어 유닛(1010)은 프로세서의 추가 회로에 대한 상호접속을 가능하게 하기 위한 버스 인터페이스 유닛과 같은 인터페이스도 포함할 수 있다. 일 실시예에서, 각각의 코어 유닛(1010)은 메모리 제어기(1035)에 결합되는 주요 캐시 코히런트 온-다이 상호접속부로서 작용할 수 있는 코히런트 패브릭에 결합된다. 또한, 메모리 제어기(1035)는 (도 8의 도시의 편의를 위해 도시되지 않은) 동적 랜덤 액세스 메모리(DRAM)와 같은 메모리와의 통신을 제어한다.
코어 유닛들에 더하여, 그래픽 처리를 수행하는 것은 물론, 아마도 그래픽 프로세서 상에서 범용 동작들(소위, GPGPU 동작)을 실행하기 위한 하나 이상의 그래픽 처리 유닛(GPU)을 포함할 수 있는 적어도 하나의 그래픽 유닛(1020)을 포함하는 추가 처리 엔진들이 프로세서 내에 존재한다. 게다가, 적어도 하나의 이미지 신호 프로세서(1025)가 존재할 수 있다. 신호 프로세서(1025)는 SoC의 내부에 있거나 칩과 떨어진 하나 이상의 캡처 디바이스로부터 수신되는 착신 이미지 데이터를 처리하도록 구성될 수 있다. 다른 가속도계들도 존재할 수 있다. 도 8의 예에서, 비디오 코더(1050)는 비디오 정보에 대한 인코딩 및 디코딩을 포함하는 코딩 동작들을 수행하여, 예로서 고화질 비디오 콘텐츠에 대한 하드웨어 가속 지원을 제공할 수 있다. 시스템의 내부 및 외부 디스플레이들에 대한 지원의 제공을 포함하는 디스플레이 동작들을 가속화하기 위해 디스플레이 제어기(1055)가 더 제공될 수 있다. 게다가, 보안 부트 동작, 다양한 암호화 동작 등과 같은 보안 동작들을 수행하기 위한 보안 프로세서(1045)가 존재할 수 있다. 유닛들 각각은 그의 전력 소비가 전력 관리기(1040)를 통해 제어되게 할 수 있다. 일부 실시예들에서, SoC(1000)는 다양한 주변 디바이스들에 결합될 수 있는 코히런트 패브릭에 결합되는 논-코히런트 패브릭을 더 포함할 수 있다. 하나 이상의 인터페이스(1060a-1060d)는 하나 이상의 오프-칩 디바이스와의 통신을 가능하게 한다. 인터페이스들 중 하나 이상은 주어진 구조적 상태에 있을 때 I/O 버퍼에 결합된 패드 상에 원하는 값을 자율적으로 유지하기 위한 본 명세서에서 설명되는 바와 같은 제어 로직을 포함할 수 있다. 그러한 통신은 많은 타입의 통신 프로토콜 가운데서 특히 PCIe(상표), GPIO, USB, I2C, UART, MIPI, SDIO, DDR, SPI, HDMI와 같은 다양한 통신 프로토콜에 따를 수 있다. 도 8의 실시예에서 이러한 하이 레벨로 도시되지만, 본 발명의 범위는 이와 관련하여 한정되지 않는다는 것을 이해한다.
아래의 예들은 추가 실시예들과 관련된다.
일례에서, 장치는 패드를 통해 상기 장치에 결합되는 디바이스에 상기 장치의 로직 유닛을 결합하기 위한 입력/출력(I/O) 버퍼; 및 상기 장치의 구조적 상태(architectural state)로의 진입에 응답하여, 상기 패드 상의 값을 검출하고, 상기 값을 상기 패드에 제공하도록 상기 I/O 버퍼를 제어하기 위해 상기 I/O 버퍼에 결합되는 로직을 포함한다.
일례에서, 구성 저장소(configuration storage)가 상기 I/O 버퍼에 결합되고, 상기 로직은 상기 검출된 값에 적어도 부분적으로 기초하여 상기 구성 저장소의 적어도 하나의 필드를 프로그래밍한다. 상기 적어도 하나의 필드는 공급 전압 노드와 상기 I/O 버퍼의 출력 노드 사이에 결합되는 제1 스위치에 대한 제어 값을 저장하기 위한 제1 필드를 포함할 수 있고, 상기 제1 스위치는 닫힐 때 풀업 임피던스가 상기 출력 노드에 결합되는 것을 가능하게 한다. 상기 적어도 하나의 필드는 기준 전압 노드와 상기 I/O 버퍼의 출력 노드 사이에 결합되는 제2 스위치에 대한 제2 제어 값을 저장하기 위한 제2 필드를 더 포함할 수 있고, 상기 제2 스위치는 닫힐 때 풀다운 임피던스가 상기 출력 노드에 결합되는 것을 가능하게 한다. 상기 적어도 하나의 필드는 상기 I/O 버퍼의 송신기를 인에이블하기 위한 인에이블 신호를 저장하기 위한 제3 필드도 포함할 수 있다.
일례에서, 상기 로직은 무효화 지시자(override indicator)가 활성일 때 상기 패드에 무효화 값을 제공하도록 상기 I/O 버퍼를 제어하며, 소프트웨어 드라이버가 상기 무효화 값을 제공한다.
일례에서, 상기 구조적 상태는 저전력 상태로의 진입을 포함한다.
일례에서, 상기 I/O 버퍼는 신호를 수신하고, 상기 신호를 상기 패드에 출력하기 위한 송신기; 공급 전압 노드와 상기 송신기의 출력 노드 사이에 제어 가능하게 결합되도록 구성되는 풀업 저항; 및 기준 전압 노드와 상기 송신기의 출력 노드 사이에 제어 가능하게 결합되도록 구성되는 풀다운 저항을 포함한다. 상기 I/O 버퍼는 상기 패드로부터 제2 신호를 수신하고, 상기 신호를 상기 로직 유닛에 출력하기 위한 수신기를 더 포함할 수 있다.
위의 장치는 다양한 수단을 이용하여 구현되는 프로세서를 포함할 수 있다는 점에 유의한다.
일례에서, 상기 프로세서는 사용자 장비 터치-인에이블드 디바이스 내에 통합되는 시스템 온 칩(SoC)을 포함한다.
일례에서, 시스템은 디스플레이 및 메모리를 포함하고, 위의 예들 중 하나 이상의 예의 프로세서를 포함한다.
다른 예에서, 시스템은 IC 내에 형성된 프로세서를 포함하고, 상기 프로세서는 적어도 하나의 코어; 전력 관리 로직을 갖는 입력/출력(I/O) 제어기; 및 상기 프로세서에 결합되는 하나 이상의 디바이스와 신호 정보를 통신하기 위해 상기 I/O 제어기에 결합되는 적어도 하나의 I/O 버퍼를 포함하고, 상기 전력 관리 로직은 상기 프로세서의 적어도 일부의 저전력 상태로의 진입의 지시를 수신하고, 상기 IC의 패드 상의 값을 샘플링하고 - 상기 패드는 상기 적어도 하나의 I/O 버퍼와 상호접속부 사이에 결합됨 -, 상기 값의 상태를 결정하고, 상기 값의 상태에 응답하여 상기 적어도 하나의 I/O 버퍼를 동적으로 제어한다. 상기 시스템은 상기 프로세서에 결합되는 DRAM을 더 포함할 수 있다.
일례에서, 상기 전력 관리 로직은 상기 샘플링된 값에 응답하여 제어 저장소의 필드를 설정하여, 제1 임피던스 및 제2 임피던스 중 적어도 하나의 임피던스를 상기 적어도 하나의 I/O 버퍼의 출력 노드에 결합시킨다. 상기 전력 관리 로직은 또한 상기 값을 샘플링하고, 상기 상태를 결정하고, 제1 모드에서 상기 결합을 유발하고, 제2 모드에서 펌웨어 또는 소프트웨어 드라이버에 의해 제공되는 무효화 값에 기초하여 상기 결합을 유발할 수 있다. 상기 전력 관리 로직은 상기 제1 임피던스 또는 상기 제2 임피던스의 결합을 유발하여, 상기 I/O 버퍼가 상기 샘플링된 값에 대응하는 신호를 출력하는 것을 가능하게 할 수 있다.
다른 예에서, 방법은 상호접속부에 결합된 IC의 패드 상의 상태를 샘플링하는 단계 - 상기 패드는 상기 IC의 버퍼에 결합되고, 상기 버퍼는 송신기 및 수신기를 포함함 -; 상기 샘플링된 상태에 기초하여 상기 버퍼의 적어도 하나의 제어 가능 요소에 대한 제어 값을 선택하는 단계; 및 무효화 지시자가 활성인지를 결정하고, 활성인 경우에 무효화 값을 상기 버퍼와 관련된 저장소 내에 저장하고, 활성이 아닌 경우에는 상기 제어 값을 상기 저장소 내에 저장하는 단계를 포함한다.
일례에서, 상기 방법은 상기 저장된 제어 값을 이용하여 상기 샘플링된 상태를 유지하도록 상기 버퍼를 제어하는 단계를 더 포함한다.
일례에서, 상기 방법은 상기 시스템의 펌웨어로부터 상기 무효화 지시자를 수신하는 단계를 더 포함한다.
일례에서, 상기 방법은 상기 상태를 샘플링하는 단계 전에 상기 패드를 삼상(tri-state)으로 배치하도록 상기 버퍼를 제어하는 단계를 더 포함한다.
일례에서, 상기 방법은 상기 샘플링된 상태를 제2 저장소 내에 저장한 후에 상기 샘플링된 상태를 참조하는 단계를 더 포함한다.
일례에서, 상기 방법은 상기 패드가 상기 IC를 포함하는 플랫폼에서 사용되지 않을 때 풀다운 임피던스를 상기 패드에 결합하도록 상기 버퍼를 제어하는 단계를 더 포함한다.
다른 예에서, 명령어들을 포함하는 컴퓨터 판독 가능 매체는 위의 예들 중 임의의 예의 방법을 수행한다.
다른 예에서, 장치는 위의 예들 중 임의의 예의 방법을 수행하기 위한 수단을 포함한다.
위의 예들의 다양한 조합들이 가능하다는 것을 이해한다.
실시예들은 많은 상이한 타입의 시스템에서 사용될 수 있다. 예를 들어, 일 실시예에서, 통신 디바이스가 본 명세서에서 설명되는 다양한 방법들 및 기술들을 수행하도록 배열될 수 있다. 물론, 본 발명의 범위는 통신 디바이스로 한정되지 않는 대신, 다른 실시예들은 명령어들을 처리하기 위한 다른 타입의 장치, 또는 컴퓨팅 디바이스 상에서 실행되는 것에 응답하여 디바이스가 본 명세서에서 설명되는 방법들 및 기술들 중 하나 이상을 실행하게 하는 명령어들을 포함하는 하나 이상의 머신 판독 가능 매체와 관련될 수 있다.
실시예들은 코드 내에 구현될 수 있으며, 명령어들을 수행하도록 시스템을 프로그래밍하는 데 사용될 수 있는 명령어들을 저장한 비일시적 저장 매체 상에 저장될 수 있다. 저장 매체는 플로피 디스크, 광 디스크, 반도체 드라이브(SSD), 컴팩트 디스크 판독 전용 메모리(CD-ROM), 컴팩트 디스크 재기입 가능(CD-RW) 및 광자기 디스크를 포함하는 임의 타입의 디스크, 판독 전용 메모리(ROM), 랜덤 액세스 메모리(RAM), 예로서 동적 랜덤 액세스 메모리(DRAM), 정적 랜덤 액세스 메모리(SRAM), 소거 및 프로그래밍 가능 판독 전용 메모리(EPROM), 플래시 메모리, 전기적으로 소거 및 프로그래밍 가능한 판독 전용 메모리(EEPROM), 자기 또는 광학 카드, 또는 전자 명령어들을 저장하는 데 적합한 임의의 다른 타입의 매체를 포함할 수 있지만, 이에 한정되지 않는다.
본 발명은 제한된 수의 실시예와 관련하여 설명되었지만, 이 분야의 기술자들은 그들로부터의 다양한 수정들 및 변경들을 인식할 것이다. 첨부된 청구항들은 본 발명의 진정한 사상 및 범위 내에 속하는 모든 그러한 수정들 및 변경들을 포함하는 것을 의도한다.

Claims (22)

  1. 장치로서,
    패드를 통해 상기 장치에 결합되는 디바이스에 상기 장치의 로직 유닛을 결합하기 위한 입력/출력(I/O) 버퍼;
    상기 장치의 구조적 상태(architectural state)로의 진입에 응답하여, 상기 패드 상의 값을 검출하고, 상기 값을 상기 패드에 제공하도록 상기 I/O 버퍼를 제어하기 위해 상기 I/O 버퍼에 결합되는 로직; 및
    상기 I/O 버퍼에 결합되는 구성 저장소(configuration storage)를 포함하고,
    상기 로직은 상기 검출된 값에 적어도 부분적으로 기초하여 상기 구성 저장소의 적어도 하나의 필드를 프로그래밍하고, 상기 적어도 하나의 필드는 공급 전압 노드와 상기 I/O 버퍼의 출력 노드 사이에 결합되는 제1 스위치에 대한 제어 값을 저장하기 위한 제1 필드를 포함하고, 상기 제1 스위치는 닫힐 때 풀업 임피던스가 상기 출력 노드에 결합되는 것을 가능하게 하는 장치.
  2. 삭제
  3. 삭제
  4. 제1항에 있어서,
    상기 적어도 하나의 필드는 기준 전압 노드와 상기 I/O 버퍼의 출력 노드 사이에 결합되는 제2 스위치에 대한 제2 제어 값을 저장하기 위한 제2 필드를 포함하고, 상기 제2 스위치는 닫힐 때 풀다운 임피던스가 상기 출력 노드에 결합되는 것을 가능하게 하는 장치.
  5. 제4항에 있어서,
    상기 적어도 하나의 필드는 상기 I/O 버퍼의 송신기를 인에이블하기 위한 인에이블 신호를 저장하기 위한 제3 필드를 포함하는 장치.
  6. 제1항에 있어서,
    상기 로직은 무효화 지시자(override indicator)가 활성일 때 상기 패드에 무효화 값을 제공하도록 상기 I/O 버퍼를 제어하며, 소프트웨어 드라이버가 상기 무효화 값을 제공하는 장치.
  7. 제1항에 있어서,
    상기 구조적 상태는 저전력 상태로의 진입을 포함하는 장치.
  8. 제1항에 있어서,
    상기 I/O 버퍼는
    신호를 수신하고, 상기 신호를 상기 패드에 출력하기 위한 송신기;
    상기 공급 전압 노드와 상기 송신기의 출력 노드 사이에 제어 가능하게 결합되도록 구성되는 풀업 저항; 및
    기준 전압 노드와 상기 송신기의 출력 노드 사이에 제어 가능하게 결합되도록 구성되는 풀다운 저항
    을 포함하는 장치.
  9. 제8항에 있어서,
    상기 I/O 버퍼는 상기 패드로부터 제2 신호를 수신하고, 상기 신호를 상기 로직 유닛에 출력하기 위한 수신기를 더 포함하는 장치.
  10. 집적 회로(IC) 내에 형성된 프로세서 - 상기 프로세서는
    적어도 하나의 코어;
    전력 관리 로직을 갖는 입력/출력(I/O) 제어기; 및
    상기 프로세서에 결합되는 하나 이상의 디바이스와 신호 정보를 통신하기 위해 상기 I/O 제어기에 결합되는 적어도 하나의 입력/출력(I/O) 버퍼를 포함하고, 상기 전력 관리 로직은 상기 프로세서의 적어도 일부의 저전력 상태로의 진입의 지시를 수신하고, 상기 IC의 패드 상의 값을 샘플링하고 - 상기 패드는 상기 적어도 하나의 I/O 버퍼와 상호접속부 사이에 결합됨 -, 상기 값의 상태를 결정하고, 상기 값의 상태에 응답하여 상기 적어도 하나의 I/O 버퍼를 동적으로 제어함 -; 및
    상기 프로세서에 결합되는 동적 랜덤 액세스 메모리(DRAM)를
    포함하는 시스템.
  11. 제10항에 있어서,
    상기 전력 관리 로직은 상기 샘플링된 값에 응답하여 제어 저장소의 필드를 설정하여, 제1 임피던스 및 제2 임피던스 중 적어도 하나의 임피던스를 상기 적어도 하나의 I/O 버퍼의 출력 노드에 결합시키는 시스템.
  12. 제11항에 있어서,
    상기 전력 관리 로직은 상기 값을 샘플링하고, 상기 상태를 결정하고, 제1 모드에서 상기 결합을 유발하고, 제2 모드에서 펌웨어 또는 소프트웨어 드라이버에 의해 제공되는 무효화 값에 기초하여 상기 결합을 유발하는 시스템.
  13. 제12항에 있어서,
    상기 전력 관리 로직은 상기 제1 임피던스 또는 상기 제2 임피던스의 결합을 유발하여, 상기 I/O 버퍼가 상기 샘플링된 값에 대응하는 신호를 출력하는 것을 가능하게 하는 시스템.
  14. 명령어들을 저장한 컴퓨터 판독 가능 기록매체로서, 상기 명령어들은 컴퓨터에 의해 수행되는 경우 상기 컴퓨터로 하여금,
    상호접속부에 결합된 집적 회로(IC)의 패드 상의 상태를 샘플링하는 단계 - 상기 패드는 상기 IC의 버퍼에 결합되고, 상기 버퍼는 송신기 및 수신기를 포함함 -;
    상기 샘플링된 상태에 기초하여 상기 버퍼의 적어도 하나의 제어 가능 요소에 대한 제어 값을 선택하는 단계; 및
    무효화 지시자가 활성인지를 결정하고, 활성인 경우에 무효화 값을 상기 버퍼와 관련된 저장소 내에 저장하고, 활성이 아닌 경우에는 상기 제어 값을 상기 저장소 내에 저장하는 단계
    를 포함하는 방법을 수행하게 하는, 컴퓨터 판독 가능 기록매체.
  15. 제14항에 있어서,
    상기 방법은 상기 저장된 제어 값을 이용하여 상기 샘플링된 상태를 유지하도록 상기 버퍼를 제어하는 단계를 더 포함하는, 컴퓨터 판독 가능 기록매체.
  16. 제14항에 있어서,
    상기 방법은 시스템의 펌웨어로부터 상기 무효화 지시자를 수신하는 단계를 더 포함하는, 컴퓨터 판독 가능 기록매체.
  17. 제14항에 있어서,
    상기 방법은 상기 상태를 샘플링하는 단계 전에 상기 패드를 삼상(tri-state)으로 배치하도록 상기 버퍼를 제어하는 단계를 더 포함하는, 컴퓨터 판독 가능 기록매체.
  18. 제14항에 있어서,
    상기 저장소는 복수의 필드를 포함하고,
    상기 복수의 필드는,
    공급 전압 노드와 상기 버퍼의 출력 노드 사이에 결합되는 제1 스위치에 대한 제어 값을 저장하기 위한 제1 필드;
    기준 전압 노드와 상기 버퍼의 출력 노드 사이에 결합되는 제2 스위치에 대한 제2 제어 값을 저장하기 위한 제2 필드;
    상기 버퍼의 송신기에 대한 제3 제어 값을 저장하기 위한 제3 필드; 및
    상기 버퍼의 수신기에 대한 제4 제어 값을 저장하기 위한 제4 필드
    를 포함하는, 컴퓨터 판독 가능 기록매체.
  19. 제14항에 있어서,
    상기 방법은 상기 샘플링된 상태를 제2 저장소 내에 저장한 후에 상기 샘플링된 상태를 참조하는 단계를 더 포함하는, 컴퓨터 판독 가능 기록매체.
  20. 제14항에 있어서,
    상기 방법은 상기 패드가 상기 IC를 포함하는 플랫폼에서 사용되지 않을 때 풀다운 임피던스를 상기 패드에 결합하도록 상기 버퍼를 제어하는 단계를 더 포함하는, 컴퓨터 판독 가능 기록매체.
  21. 삭제
  22. 삭제
KR1020167010673A 2013-11-27 2013-11-27 프로세서의 버퍼의 자율 제어 KR101835494B1 (ko)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2013/087934 WO2015077936A1 (en) 2013-11-27 2013-11-27 Autonomously controlling a buffer of a processor

Publications (2)

Publication Number Publication Date
KR20160060726A KR20160060726A (ko) 2016-05-30
KR101835494B1 true KR101835494B1 (ko) 2018-03-08

Family

ID=53198185

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020167010673A KR101835494B1 (ko) 2013-11-27 2013-11-27 프로세서의 버퍼의 자율 제어

Country Status (7)

Country Link
US (2) US10241556B2 (ko)
EP (1) EP3075118B1 (ko)
JP (1) JP6403764B2 (ko)
KR (1) KR101835494B1 (ko)
CN (1) CN105659546B (ko)
DE (1) DE112013007650B4 (ko)
WO (1) WO2015077936A1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10820274B2 (en) * 2017-06-19 2020-10-27 T-Mobile Usa, Inc. Systems and methods for testing power consumption of electronic devices
US11790977B2 (en) * 2020-07-20 2023-10-17 Mediatek Inc. Transmitter with voltage level adjustment mechanism in memory controller

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5931945A (en) 1994-04-29 1999-08-03 Sun Microsystems, Inc. Graphic system for masking multiple non-contiguous bytes having decode logic to selectively activate each of the control lines based on the mask register bits
US5500611A (en) * 1994-09-30 1996-03-19 Cirrus Logic, Inc. Integrated circuit with input/output pad having pullup or pulldown
US5828233A (en) 1996-09-12 1998-10-27 Quality Semiconductor, Inc. Mixed mode CMOS input buffer with bus hold
US5752261A (en) 1996-11-07 1998-05-12 Ncr Corporation Method and apparatus for detecting thrashing in a cache memory
JPH11136119A (ja) 1997-10-29 1999-05-21 Nec Corp 入力回路
US6020757A (en) 1998-03-24 2000-02-01 Xilinx, Inc. Slew rate selection circuit for a programmable device
JP3512678B2 (ja) 1999-05-27 2004-03-31 富士通株式会社 キャッシュメモリ制御装置および計算機システム
US6624656B1 (en) 1999-10-15 2003-09-23 Triscend Corporation Input/output circuit with user programmable functions
US6678795B1 (en) 2000-08-15 2004-01-13 International Business Machines Corporation Method and apparatus for memory prefetching based on intra-page usage history
US6640285B1 (en) 2000-10-26 2003-10-28 Emc Corporation Method and apparatus for improving the efficiency of cache memories using stored activity measures
US7058827B2 (en) 2001-07-18 2006-06-06 Intel Corporation Power saving circuit has an input line coupled to an external host and a keeper to hold the line in a weakly held state
KR20030009117A (ko) 2001-07-19 2003-01-29 김승우 전자화폐 기능을 갖는 이동통신 기기를 사용한 전자화폐운용 방법 및 시스템
US6496058B1 (en) 2001-07-24 2002-12-17 Virtual Ip Group Method for designing an integrated circuit containing multiple integrated circuit designs and an integrated circuit so designed
TWI247402B (en) * 2002-02-05 2006-01-11 Via Tech Inc Pad circuit and method for automatically adjusting gain for same
US7292067B2 (en) * 2005-05-13 2007-11-06 Itt Manufacturing Enterprises, Inc. Method and apparatus for buffering bi-directional open drain signal lines
US7342838B1 (en) * 2005-06-24 2008-03-11 Lattice Semiconductor Corporation Programmable logic device with a double data rate SDRAM interface
KR100666176B1 (ko) 2005-08-04 2007-01-09 삼성전자주식회사 반도체 장치의 탐침정렬 확인회로 및 탐침정렬 확인방법
US7526614B2 (en) 2005-11-30 2009-04-28 Red Hat, Inc. Method for tuning a cache
US7583102B1 (en) 2006-05-05 2009-09-01 Xilinx, Inc. Testing of input/output devices of an integrated circuit
US9223751B2 (en) * 2006-09-22 2015-12-29 Intel Corporation Performing rounding operations responsive to an instruction
US8341300B1 (en) * 2007-08-30 2012-12-25 Virident Systems, Inc. Systems for sustained read and write performance with non-volatile memory
TWI337000B (en) 2007-12-11 2011-02-01 Rdc Semiconductor Co Ltd Tri-state i/o port
US7969181B1 (en) * 2008-02-03 2011-06-28 Freescale Semiconductor, Inc. Device and method for adjusting an impedance of an output driver of an integrated circuit
US8423715B2 (en) 2008-05-01 2013-04-16 International Business Machines Corporation Memory management among levels of cache in a memory hierarchy
US8200954B2 (en) * 2008-07-08 2012-06-12 Texas Instruments Incorporated Multi-stage boot pin sampling
US8564335B1 (en) * 2010-10-15 2013-10-22 Marvell International Ltd. Low power pad
US9104420B2 (en) * 2011-08-09 2015-08-11 Samsung Electronics Co., Ltd. Image forming apparatus, microcontroller, and methods for controlling image forming apparatus and microcontroller

Also Published As

Publication number Publication date
DE112013007650B4 (de) 2020-04-23
US10884476B2 (en) 2021-01-05
DE112013007650T5 (de) 2016-08-11
EP3075118A4 (en) 2017-09-20
EP3075118A1 (en) 2016-10-05
CN105659546B (zh) 2020-01-21
WO2015077936A1 (en) 2015-06-04
JP2017504980A (ja) 2017-02-09
US20160246352A1 (en) 2016-08-25
CN105659546A (zh) 2016-06-08
JP6403764B2 (ja) 2018-10-10
US20190196568A1 (en) 2019-06-27
EP3075118B1 (en) 2019-11-20
KR20160060726A (ko) 2016-05-30
US10241556B2 (en) 2019-03-26

Similar Documents

Publication Publication Date Title
US11782492B2 (en) Techniques to enable communication between a processor and voltage regulator
US9405345B2 (en) Constraining processor operation based on power envelope information
KR101565357B1 (ko) 타임아웃을 처리하기 위한 시스템, 방법 및 장치
KR101908246B1 (ko) 시스템 메모리의 온도 제어
US9405718B2 (en) Leveraging an enumeration and/or configuration mechanism of one interconnect protocol for a different interconnect protocol
US9977477B2 (en) Adapting operating parameters of an input/output (IO) interface circuit of a processor
US10346300B2 (en) Providing multiple memory modes for a processor including internal memory
US11231937B2 (en) Autonomous host detection for communication port management
EP4141680A1 (en) Debug data communication system for multiple chips
US9454329B2 (en) Mirroring memory commands to memory devices
US9939874B2 (en) Selectively disabling sensors and associated functions
US10884476B2 (en) Autonomously controlling a buffer of a processor
US9836113B2 (en) Method and apparatus to manage power usage in a processor
US20220113967A1 (en) Accelerator fabric for discrete graphics
US20220121594A1 (en) Soc architecture to reduce memory bandwidth bottlenecks and facilitate power management
US20220199573A1 (en) Modular low latency electrical sequence for die-to-die interface

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right