KR20050085590A - 주소 버스 전력 제어에 관한 장치 및 방법 - Google Patents

주소 버스 전력 제어에 관한 장치 및 방법 Download PDF

Info

Publication number
KR20050085590A
KR20050085590A KR1020057010706A KR20057010706A KR20050085590A KR 20050085590 A KR20050085590 A KR 20050085590A KR 1020057010706 A KR1020057010706 A KR 1020057010706A KR 20057010706 A KR20057010706 A KR 20057010706A KR 20050085590 A KR20050085590 A KR 20050085590A
Authority
KR
South Korea
Prior art keywords
address
bus
agent
sense amplifier
data
Prior art date
Application number
KR1020057010706A
Other languages
English (en)
Other versions
KR100737549B1 (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
Priority claimed from US10/317,798 external-priority patent/US7216240B2/en
Application filed by 인텔 코오퍼레이션 filed Critical 인텔 코오퍼레이션
Publication of KR20050085590A publication Critical patent/KR20050085590A/ko
Application granted granted Critical
Publication of KR100737549B1 publication Critical patent/KR100737549B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4208Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a system bus, e.g. VME bus, Futurebus, Multibus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • G06F1/3215Monitoring of peripheral devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/325Power saving in peripheral device
    • G06F1/3253Power saving in bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4063Device-to-bus coupling
    • G06F13/4068Electrical coupling
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Power Sources (AREA)
  • Small-Scale Networks (AREA)
  • Selective Calling Equipment (AREA)
  • Amplifiers (AREA)
  • Dram (AREA)
  • Machine Translation (AREA)
  • Bus Control (AREA)
  • Electrically Operated Instructional Devices (AREA)
  • Information Transfer Systems (AREA)
  • Microcomputers (AREA)

Abstract

다양한 장치 및 방법이 개시된다. 프런트 사이드 버스(front side bus; FSB)의 데이터 버스부로부터 데이터를 수신하는 데이터 감지 증폭기를 가지는 프로세서에 의해 수행되는 제1 방법: 주소 스트로보의 어서팅에 응답해서, 상기 데이터 감지 증폭기가 인에이블된다. 그 후, 적어도 대기열(queue)이 비는 것에 응답해서 상기 데이터 감지 증폭기가 디스에이블된다. 대기열은 FSB를 통해 아직 수행되지 않은 트랜잭션을 기록한다. FSB의 데이터 버스부로부터 데이터를 수신하는 데이터 감지 증폭기 및 상기 FSB의 주소 버스부로부터 주소를 수신하는 주소 감지 증폭기를 가지는 프로세서에 의해 수행되는 제2 방법: 어서팅된 요구 지시(request indication)에 응답해서, 상기 주소 감지 증폭기를 인에이블한다. 그 후, 어서팅된 주소 스트로보가 어서팅되는 것에 응답해서, 상기 데이터 감지 증폭기가 인에이블된다. 요구 지시의 디어서팅에 응답해서, 상기 주소 감지 증폭기가 디스에이블된다. 적어도 대기열이 비는 것에 응답해서, 상기 데이터 감지 증폭기가 디스에이블된다. 상기 대기열은 상기 데이터 버스를 통해 아직 수행되지 않은 트랜잭션을 기록한다.

Description

주소 버스 전력 제어에 관한 장치 및 방법{AN APPARATUS AND METHOD FOR ADDRESS BUS POWER CONTROL}
본 출원은 2002년 12월 11일 출원된 미국 특허 출원번호 10/317,798의 일부 계속 출원에 관한 것이다.
본 발명의 하나 이상의 실시예는 일반적으로 집적 회로 및 컴퓨터 시스템 설계 분야에 관한 것이다. 더 구체적으로, 본 발명의 하나 이상의 실시예는 주소 버스 전력 제어에 관한 방법 및 장치에 관한 것이다.
컴퓨터 시스템 내의 장치들간의 통신은 그 장치들을 상호결합(interconnect)하는 하나 이상의 버스들을 사용해 전형적으로 수행된다. 이 버스들은 두 장치들을 결합해주는 전용 버스이거나 다수의 유닛 및 장치에 의해 다중송신하는(multiplexed) 비전용 버스일 수 있다. 게다가, 컴퓨터 시스템 내의 버스들은 특정 유형의 정보를 전송하는데만 사용될 수 있다. 예컨대, 캘리포니아 산타클라라의 Intel사에 의해 개발된 x86 마이크로프로세서 아키텍처는 각각 주소, 데이터 및 제어 신호 전송을 위한 주소, 데이터 및 제어 버스의 세 개의 버스를 포함한다.
Pentium®Pro, Pentium®II, Pentium®III 또는 Pentium®4와 같은 향상된 아키텍처 및 프로세서를 채용한 컴퓨터 시스템에서, 버스 트랜잭션(transaction)은 전형적으로 파이프라인기법으로 생긴다. 구체적으로, 다음 메모리 액세스는 이전 트랜잭션 요구(request)가 발행된 후에 시작되고, 다른 버스 트랜잭션이 개시될 수 있기 전에 버스 트랜잭션의 모든 구성요소(component) 또는 단계(phase)는 완료가 요구되지 않는다. 따라서, 다수 버스 에이전트(bus agent)로부터의 요구는 임의의 시간에 계류중일 수 있다. 버스 트랜잭션의 파이프라인기법은 별개의 데이터 및 주소 버스에 의해 촉진된다. 요구 주소가 주소 버스 상에 보내어지면, 상기 주소 버스 상에 이전에 발행된 주소에 해당하는 데이터(또는 신호)가 데이터 버스로 복귀될 수 있다.
막대한 연구 및 시스템 아키텍처 설계 노력이 컴퓨터 내의 데이터 처리량을 증가시킬 목적으로 있어왔다. 데이터 파이프라인기법, 비순차적 실행(out-of-order execution) 등과 같은 기술은 꽤 높은 클록 레이트 및 월드클래스 성능으로 향상된 아키텍처 및 프로세싱을 가능하게 하였다.
게다가, 아키텍처 설계뿐만 아니라 본 연구는 랩톱 컴퓨터, 핸드헬드 장치, PDA(personal digital assistants)에 대한 모바일 시장을 가능하게 한다. 불행하게도, 그런 모바일 플랫폼은 다른 전력원을 이용할 수 없다면, 각 모일 플랫폼에 사용되는 배터리의 수명에 의해 정해지는 수행 시간으로 한정될 수 있다. 모바일 플랫폼의 복잡함 때문에, 부착된 배터리로부터의 전력원은 상대적으로 짧은 시간 내에 고갈될 수이다. 이것은 부분적으로 플랫폼의 많은 전자 소자가 사용되지 않을 때도 전력 소비를 계속하기 때문이다.
본 발명의 다양한 실시예가 첨부한 도면에 의해 예로서 도시되었지, 한정의 의도는 아니다.
도 1은 선행 프로세서 및 메모리 제어 허브를 도시하는 블록도.
도 2는 일 실시예에 의한 입력 버퍼를 구비한 프로세서를 도시하는 블록도.
도 3은 일 실시예에 의한 단일 프로세서 시스템 플랫폼을 도시하는 블록도.
도 4는 일 실시예에 의한 타이밍도.
도 5는 일 실시예에 의한 흐름도.
도 6은 일 실시예에 의한 흐름도.
도 7은 일 실시예에 의한 흐름도.
도 8은 개시된 기술을 이용해 설계의 제조(fabrication), 에뮬레이션(emulation) 및 시뮬레이션(simulation)에 관한 다양한 설계 표현(representation) 또는 포맷(format)을 도시하는 블록도.
도 9는 일 실시예에 의한 단일 프로세서 시스템 플랫폼을 도시하는 블록도.
도 10은 일 실시예에 의한 주소 입력 감지 증폭기(address input sense amplifier)를 구비한 프로세서를 도시하는 블록도.
도 11은 주소 감지 증폭기를 인에이블 하는 기술을 도시하는 타이밍도.
도 12는 일 실시예에 의한 데이터 감지 증폭기를 구비한 프로세서.
도 13은 주소 감지 증폭기를 가능하게 하는 기술을 도시하는 타이밍도.
도 14는 일 실시예에 의한 다중 프로세서 시스템 플랫폼을 도시하는 블록도.
도 15는 다중 프로세서 환경에서 주소 값을 래치하는데(latch) 사용될 수 있는 회로.
도 16은 다중 프로세서 환경에서 주소 감지 증폭기를 가능하게 하는 기술을 도시하는 타이밍도.
도 17은 데이터 및 주소 값들 모두를 래치하는데 사용될 수 있는 회로.
다음의 설명에서, 로직 구현, 신호 및 버스의 크기 및 명칭, 시스템 구성요소의 유형 및 상호관계 및 로직 분리/통합 선택과 같은 많은 특정 상세사항이 더 깊은 이해를 제공하기 위해 설명된다. 그러나 당업자는 그런 특정 상세사항 없이도 본 발명이 실시될 수 있음을 인식할 수 있다. 다른 예에서, 제어 구조 및 게이트 레벨 회로는 본 발명을 모호하지 않게 하기 위해 도시되지 않았다. 당업자는 첨부된 상세한 설명으로 과잉 실험 없이 적절한 로직 회로를 구현할 수 있을 것이다.
도 1은 예시적인 컴퓨터 시스템에 관한 선행 프로세서(CPU)(110) 및 메모리 제어기(memory controller; MCH) 구성을 도시한다. 도시된 바대로, CPU(110)는 프로세서 시스템 버스 또는 프런트 사이드 버스(front-side bus; FSB)(102)의 데이터 라인을 통해 수신한 데이터를 갭처 하도록 동작하는 입력 버퍼(112)를 포함할 수 있다. CPU(110)의 입력 버퍼(112)는 FSB(102)의 데이터 버스부(data bus portion)를 통해 CPU(110)로 전송되는 데이터를 감지하기 위해 결합될 수 있는 복수의 주소 버스 입력 감지 증폭기(address bus input sense amplifier)(114)(114-1, ..., 114-N)를 포함한다.
CPU(110)에 관해서, 데이터 버스 입력 감지 증폭기(114)는 시스템 초기화 뒤에도 인에이블(enable) 되어 있다. 인에이블 되어 있는 동안, 데이터 입력 감지 증폭기(114)는 전력을 소모한다.
도 2에서, 일 실시예의 프로세서(CPU)가 기술되어있다. 도 2에 도시된 실시예에서, CPU(300)는 모바일 플랫폼 CPU이다. 다른 실시예에서는, CPU(300)은 디지털 신호 프로세서, 그래픽 프로세서, 혼재 프로세스를 포함하는 다른 유형의 프로세서일 수 있음이 인식될 것이다.
도시된 바와 같이, CPU(300)는 총괄적으로 입력 버퍼(310)로 도시된 입력 버퍼를 포함한다. 입력 버퍼(310)는 N 개의 주소 입력 감지 증폭기(320)(320-1, ...,320-N)를 포함한다. 감지 증폭기(320)는 내부 주소 버스 신호 라인(internal address bus signal line)(paddr)(322)(322-1, ..., 322-N)에 결합된 출력을 가진다. 입력 버퍼(310)는 부가적인 내부 데이터 및/또는 제어 라인에 결합되어 있을 수도 있다. 일 실시예에서, 이 감지 증폭기(320)는 프런트 사이드 버스(330)의 복수의 주소 라인 FSB A[0.. N-1]#에 결합된 입력을 가진다.
일 실시예에서, FSB(330)은 Pentium®4 프로세서 FSB 프로토콜과 호환하는데, 이에 대한 부분은 2001년 11월 1일 공개된 Singh 등의 미국 특허 출원 번호 US 2001/0037421 A1에 기술되어 있다. FSB가 Pentium®4 프로세서 FSB와 호환되면, FSB(330)는 64 데이터 라인 FSB[0… 63]을 포함한다. 다른 실시예에서, FSB(330)은 다른 버스 프로토콜과 호환될 수 있고/있거나 다른 수의 데이터 라인을 포함할 수 있다.
도 2에서, 일 실시예에 관해서, 입력 버퍼(310)는 버스 클록(BCLK) 신호 및 FSB(330)과 연관된 주소 버스 전력 제어(BPRI#) 신호(350)를 수신하도록 결합된 래치(352)를 더 포함한다. 일 실시예에서, 예컨대, BPRI# 신호는 FSB(330)를 통해 CPU(330)에 추가로 결합되는 (도시 안 된) 칩셋 장치로부터 수신될 수 있다. 래치(352)의 출력은 각 주소 입력 감지 증폭기(320)의 입력을 인에이블 하기 위해 결합되어 있다.
동작 중에, BCLK 신호가 변환됨에 따라, 래치(352)는 BPRI# 신호를 래치한다. 어서팅된(asserted) BPRI# 신호에 응답해, 입력 버퍼(310)의 주소 입력 감지 증폭기(320)는 주소 라인 FSB A[0..N-1]#를 통해 FSB(330)로부터 주소를 캡처할 수 있게 된다. 역으로, 디어서팅된 BPRI# 신호에 응답해, 입력 주소 감지 증폭기가 디스에이블된다. 입력 감지 증폭기가 디스에이블되면, 전력 손실 주로, 입력 버퍼에 제공하는 바이어스 전류에 의한 TDP(thermal dissipation power)가 감소한다.
도 3은 도 2의 CPU(300)이 유리하게 사용될 수 있는 일 실시예의 컴퓨팅 시스템(500)의 블록도이다. CPU(300)에 부가해, 시스템(500)은 일 실시예에서 MCH(memory control hub)(510)로서의 메모리 제어기 및 일 실시예를 참조해 ICH(I/O control hub)(530)로서의 입력/출력(I/O) 제어기를 포함한다. MCH(510) 및 ICH(530)는 함께 칩셋(502)이라 부를 수 있다. MCH(510)는 FSB(330)을 통해 CPU(300)에, 버스(150)를 통해 ICH(530)에 결합된다. 또한, 주메모리(520) 및 하나 이상의 그래픽 장치(550)가 MCH(510)에 결합된다. MCH는 (예컨대, 모바일 애플리케이션에서의 사용을 위해) 통합 그래픽 지원도 가질 수 있다.
시스템(500)의 I/O 서브시스템은 ICH(530)에 결합된 하드 디스크 드라이브(HDD)(210)와 같은 다양한 다른 유형의 입력 및/또는 출력 장치를 포함할 수 있고, 하나 이상의 USB 포트(190)는 ICH(530)에 USB(universal serial bus)(192)를 통해서 결합될 수 있고/있거나 하나 이상의 PCI(peripheral component interconnect) 장치(180)는 해당 버스(182)를 통해서 ICH에 결합될 수 있다. 부가해, 일부 실시예에서는 하나 이상의 오디오 채널(170) 및/또는 LAN(local area network) 인터페이스(220)도 ICH(530)에 결합될 수 있다.
다양한 프로세서 및 FSB 기술의 구현이 가능하다. FSB(330)가 P4 프로세서 FSB와 호환되는 실시예에서, FSB(330)는 주소, 데이터 및 제어부(다른 식으로, 본 명세서에서는 주소, 데이터 및 제어 버스로 언급됨)을 포함하는 파이프라인기법의 데이터 버스이다.
FSB(330)에 결합된 장치들도 본 명세서에서는 FSB(330)에 관한 버스 에이전트로 언급될 수 있다. 일 실시예에서, 3가지 유형의 에이전트가 FSB(330) 상에 있을 수 있는데, 요구 에이전트(request agent), 반응 에이전트(response agent) 및 스누프 에이전트(snoop agent)이다. 요구 에이전트는 예컨대, 메모리 또는 I/O 판독/기입 요구과 같은 요구을 발행하여 트랜잭션을 개시하는 장치이다. 반응 에이전트는 예컨대, I/O 타깃 또는 메모리 타깃과 같은 트랜잭션의 타깃이다. 스누프 에이전트는 전형적으로 캐시 메모리와 연관된 버스 상의 장치이다. 다른 실시예에서, 버스 에이전트는 다른 방식으로 분류될 수 있다.
FSB(330)가 파이프라인기법 버스이면, 버스 트랜잭션은 단계들로 분리될 수 있고, 다중 트랜잭션들이 중첩될 수 있다. 구체적으로, 버스 트랜잭션의 모든 구성요소 또는 단계들이 다른 버스 트랜잭션이 개시될 수 있기 전에 완료되도록 요구되는 것은 아니다.
여기에서 사용된 것과 같이, "트랜잭션(transaction)"은 단일 버스 액세스 요구에 관한 버스 활동을 지칭한다. 트랜잭션은 여러 단계를 포함할 수 있는데, 각 단계는 특정 버스 신호의 세트와 연관되어 특정 유형의 정보를 통신한다. 일 실시예에서, 예시적인 단계들은 예컨대, 중재 단계, 요구 단계, 스누프 단계, 반응 단계 및/또는 데이터 단계를 포함한다.
요구 단계에서, 요구 에이전트는 FSB(330) 상의 요구 제어 및 주소 정보를 드라이브한다. 후속 스누프 단계 동안에, 데이터 탐지가 국소적으로 저장할 것인지 및/또는 트랜잭션이 이전에 발행된 트랜잭션에 대해 순차적으로 완료될 것 같은 지를 판단한다. 반응 단계에서, 반응 에이전트는 요구 에이전트에 요구된 트랜잭션이 성공인지 실패인지를 나타내는 정보를 보고한다. 요구된 트랜잭션이 데이터 전송을 포함하면, (데이터 전송 단계로도 언급되는) 데이터 단계가 데이터 준비(DRDY#) 신호의 어서팅에 응답해 개시될 수 있다.
도 3의 일 실시예에서, 상술한 BPRI# 신호는 FSB(330)의 부분으로서 MCH(510)에 의해 어서팅되고 디어서팅된다. 일 실시예에서, MCH는 BPRI# 신호의 어서팅 및 디어서팅을 발생하는 제어기(512)를 포함한다. 다른 실시예에서, 제어기(512)는 FSB(330)에 결합된 다른 장치/에이전트 상에서 제공될 수 있다. 제어기(512)가 BPRI# 신호의 어서팅 및 디어서팅을 발생하는 방식은 후술한다.
일 실시예에서, 제어기(512)는 BPRI# 신호의 어서팅 및 디어서팅을 발생시켜서 FSB(330) 상에 주소 활동이 없는 동안에는 CPU(300)의 입력 주소 감지 증폭기(320)를 디스에이블되게 하고 주소 전송 동작 전에 인에이블되게 한다. 일 실시예에서, 제어기는 BPRI# 신호를 정시에 인가해서 프로세서가 주소 정보를 취득하도록 한다. 상기 다른 방법으로, 제어기(512)는 BPRI# 신호의 어서팅을 만들어서 CPU(300)의 감지 증폭기(320)가 정시에 인에이블되어 FSB(330) 상에 제공되는 주소 값들을 감지하도록 한다. 일단 주소 값이 FSB(330)을 통해서 프로세서에 전송된 때에, 미리 정해진 타임 프레임(predetermined timeframe) (예컨대, 소정의 클록 주기 수들(given number of clock periods)) 내에 후속 주소 값의 전송이 없으면, 제어기(512)는 BPRI# 신호의 디어서팅을 만들어서 감지 증폭기의 전력 소비를 줄인다.
도 4는 (예컨대, 도 3에서 보인) 컴퓨팅 시스템 내에서 사용될 수 있는 실시예에 관한 BPRI# 신호 타이밍도이다. 도 4의 타이밍도는 클록 주기 T1-T10 동안의 (1) 도 2의 논의에서 참조로 언급된 버스 클록(BCLK) 신호(410), 2) 컴퓨팅 시스템 프로세서로 제어되는 버스 요구 신호 BREQ[0]# 신호(420), 3) BPRI# 신호(350), 4) 버스를 잠그기(locking) 위한 LOCK# 신호(430), 5) 주소 스트로보 신호(ADS#)(440), 6) 주소 버스 상에 나타난 주소 값의 표현을 도시한다
상기 신호들에 관해, 신호 이름의 말단의 '#'는 연관된 신호가 활성 로우 신호(active low signal)(즉, 낮은 로직 레벨에 있을 때, 어서팅된 것으로 간주함) 임을 나타내는 것이다. 연관된 회로 내에 해당 변화로 유사한 기능을 제공하도록 활성 하이 신호(active high signal)가 대신 사용될 수 있다. 나아가, 일 실시예에 있어서, 하나 이상의 FSB(330) 신호가 (풀 스윙보다 작은 전압 스윙을 가지는) 저전압 스윙 신호이다.
도 4에 도시된 예시적인 트랜잭션에서, 주소 값의 전송에 관해 클록 사이클 T1에서 FSB는 "조용(quiet)"하고 그 결과로 프로세서의 감지 증폭기가 디스에이블된 저전력 소비 상태에 있다. 그 후, 송신 버스 에이전트(sending bus agent)의 제어기는 T2에서 BPRI# 신호(350)의 어서팅을 발생시켜서 주소 값들을 FSB를 통해 수신(receiving) 버스 에이전트로 전송하기 위한 프로세스를 시작한다. 예컨대, 송신 버스 에이전트가 수신 버스 에이전트로 요구를 보낼 필요를 상기 프로세스가 인식한다면 개시될 수 있다. 여기서, 요구는 (예컨대, 버스 프로토콜의 요구 단계 동안에) 주소 값을 주소 버스에 제시해서 만들 수 있다. 일 실시예에서, 송신 버스 에이전트는 MCH(예컨대, 도 3의 MCH(512))이고 수신 버스 에이전트는 프로세서(예컨대, 도 3의 CPU(300))이다. 이 경우에, MCH가 FSB를 사용할 필요가 있으면, MCH는 우선 에이전트 상태(priority agent status)를 수여받아 MCH가 FSB의 제어를 할 수 있다.
일 실시예에서, 송신 에이전트(예컨대, 도 3의 MCH)는 (예컨대, 요구가 버스를 통해 송신되었는 지를 인식하는 것으로) 주소 값의 전송이 수행되었는 지를 인식하는 제어기(512)를 포함하고 그 결과로 주소 값이 수신 에이전트에 의해 수신되기 충분히 전에 BPRI# 신호(350)의 어서팅을 발생시킨다(그래서, 수신 에이전트의 감지 증폭기가 주소 값을 수신하도록 적절히 인에이블됨). 여기서, 수신 버스 에이전트는 BPRI# 신호(350)의 어서팅을 탐지하고 이에 반응해, 감지 증폭기가 인에이블된다. 더 일반적으로, 제어기가 전력 신호(예컨대, 도 4의 BPRI# 신호)의 어서팅을 발생시키는데, 다음에는 수신 에이전트의 감지 증폭기가 인에이블된다.
도 4의 실시예에서, 수신 버스 에이전트는 자신의 감지 증폭기를 BPRI# 신호(350)가 어서팅된 클록 사이클을 따르는 다음 클록 사이클에서 인에이블을 시작한다. 감지 증폭기가 FSB로부터 주소 값을 적절히 수신하는 것을 확보하기 위해 풀 클록 사이클이 소진된다(클록 사이클 T3). 즉, 도 4의 실시예를 따라서, BPRI# 신호(350)는 클록 사이클 T2 및 T3 사이의 클록 에지에서 수신 버스 에이전트에 의해 래치된다. 수신 에이전트에 의한 BPRI# 신호 탐지에 응답해, 수신 에이전트는 감지 증폭기를 인에이블 시킨다. 그 후, 감지 증폭기는 풀로, 후속 클록 사이클(클록 사이클 T3)이 주어져서 감지 버스 에이전트로부터 주소 값을 수신하도록 충분히 인에이블된다. 클록 사이클 T3에서 발생하는 디스에이블로부터 인에이블로의 변환 의해, 감지 증폭기는 클록 사이클 T3에서 "디스에이블된" 것으로 간주한다. 도 4의 실시예의 클록 사이클 T4에서 송신 버스 에이전트는 주소 스트로보 신호(ADS#)(440)의 어서팅으로 (도 4의 "Req A" 및 "Req B"로 표시된) FSB의 주소 값들을 제시한다
결과적으로, 도 4의 실시예에서, Req A 및 Req B 주소 값이 적절히 배치된(positioned) 클록 에지(예컨대, Req A 값을 래치하기 위한 클록 사이클 T4 동안에 버스 클록(410)의 하강 에지; 및 Req B 값을 래치하기 위한 클록 사이클 T4 및 T5 사이의 버스 클록(410)의 상승 에지)를 통해서, 수신 버스 에이전트로 래치된다. 송신 버스 에이전트는 클록 사이클 T5 동안에 주소 스트로보(440)를 디어서팅해서 바로 다음에, 주소 값들(사이클 T6 동안에 "Req A" 및 "Req B")의 전송이 클록 사이클 T4 동안에 일어난 주소 값들의 전송으로부터 명확히 기술될 수 있다. 주소 스트로보(440)은 다음에 클록 사이클 T6 동안에 리어서팅(re-asserted) 되어서 제2 주소 값 전송에 영향을 준다.
도 4의 실시예에서, 송신 에이전트의 제어기(512)는 클록 사이클 T6 동안에 주소 스토브 신호(440)의 리어서팅으로 BPRI# 신호(350)의 디어서팅을 발생시킴을 주목하라. 일 실시예에서, 송신 버스 에이전트의 제어기(예컨대, 상술한 도 3의 제어기)는 1) 주소 값의 "다음(next)" 전송이 최소한 일부 시간 주기(예컨대, 주소 값의 "현재(current)" 전송(클록 사이클 T6에서는 "현재" 전송은 Req A 및 Req B 값의 제2 전송임)을 지난 다수의 클록 사이클) 동안에 발생하지 않을 것을 인식하고 및 2) 그 결과로, 현재 주소 값 전송이 수신 버스 에이전트에 의해 수신된 바로 후에, 감지 증폭기를 디스에이블하기 위해 BPRI# 신호(350)의 디어서팅을 발생하도록 설계된다. 여기서, 다시, 실시예에서, 제어기는 FSB 상에 요구가 만들어질 필요가 있는지 없는지를 모니터링해서 "다음" 전송 주소가 발생할지 않을지를 인식한다. 즉, FSB의 주소 버스부 상에 주소 값을 두어서 요구가 버스 상에 존재한다.
도 4의 예에서, 다른 주소 값의 전송이 클록 사이클 "T6" 전송을 최소한 4 사이클 동안 따르지 않고(왜냐하면, 도 4에 도시된 바와 같이, 클록 사이클 T6 및 클록 사이클 T10 사이에서는 주소 값의 전송되지 않음), 결과적으로 제어기(512)는 BPRI# 신호의 디어서팅을 발생시켜서 클록 사이클 T6에서 디어서팅된다. 다른 실시예에서, 다른 수의 클록 주기들 또는 후속 주소 전송 간의 시간이 BPRI# 신호(440)의 디어서팅을 발생시키는데 사용될 수 있다.
주소 버스 전력 제어를 위한 방법이 도 5에 도시된 흐름도(500)에 기술되어 있다. 프로세스 블록(502)에서, 발신 에이전트(예컨대, MCH)는 주소가 수신 에이전트(예컨대, 프로세서)로 전송되는 것을 탐지한다. 프로세스 블록(504)에서 발신 에이전트는 언제 BPRI# 신호를 어서팅할 지를 결정한다. 프로세스 블록(506)에서 발신 에이전트는 BPRI# 신호의 어서팅을 발생시켜서 수신 에이전트의 감지 증폭기를 인에이블한다.
프로세스 블록(508)에서 발신 에이전트는 수신 에이전트로의 주소 전송의 완료에 기반해, 언제 BPRI# 신호의 디어서팅을 발생할지를 결정한다. 프로세스 블록(510)에서 발신 에이전트는 수신 에이전트의 주소 입력 감지 증폭기가 디스에이블되게 하는 BPRI# 신호의 디어서팅을 발생시킨다.
도 6은 일 실시예를 따른, 주소 전력 제어 신호 BPRI#의 디어서팅을 발생시키기 위한 부가적인 기술을 도시하는 흐름도(600)를 도시한다. 프로세스 블록(602)에서, 발신 에이전트는 부가적인 주소(수신 에이전트에 전송된 현재 주소에 대한 부가적인 주소)가 수신 에이전트로 발신될 것인지를 판정한다. 그런 부가적인 주소가 탐지되지 않으면, 프로세스 블록(608)에서 주소 버스 전력 제어 신호 BPRI#은 디어서팅되고 현재 주소 전송의 완료를 따르면서, 수신 에이전트의 주소 입력 감지 증폭기를 디스에이블 시킨다.
역으로, 발신 에이전트가 부가적인 주소가 수신 에이전트로 전송되는 것을 탐지한다면, 프로세스 블록(604)에서, 발신 에이전트는 부가적인 주소가 미리 정해진 클록 주기 내에 수신 에이전트로 송신될지를 판정한다. 부가적인 주소가 미리 정해진 주기를 넘어서 전송되면, 프로세스 블록(608)에서 주소 버스 전력 제어 신호 BPRI#은 디어서팅되고 현재 주소 전송의 완료를 따르면서, 수신 에이전트의 주소 입력 감지 증폭기를 디스에이블 시킨다.
부가적인 주소가 미리 정해진 클록 주기 내에 전송된다면, 프로세스 블록(606)에서, 송신 에이전트는 주소 버스 전력 제어 신호 BPRI#의 디어서팅을 지연해서 주소 입력 감지 증폭기가 계속 인에이블 되도록 한다. 프로세스 블록(608)에서, 송신 에이전트는 수신 에이전트의 주소 감지 증폭기를 디스에이블 시키기 위해 BPRI# 신호를 디어서팅해서, 부가적인 주소 전성의 완료 후에, 수신 에이전트의 주소 입력 감지 증폭기를 디스에이블 시킨다.
데이터 버스 전력 제어 방법이 도 7에 도시된 흐름도(700)에 기술되어 있다. 프로세스 블록(702)에서, 수신 에이전트(예컨대, CPU)는 별개 에이전트로부터 주소를 수신한다. 프로세스 블록(704)에서 주소를 수신하기 전에, 수신 에이전트는 수신 에이전트의 주소 입력 감지 증폭기가 주소를 수신하도록 인에이블 시키는 BPRI# 신호의 어서팅을 탐지한다. 프로세스 블록(706)에서 수신 에이전트는 주소를 수신한다. 프로세스 블록(708)에서 수신 에이전트는 수신 에이전트의 주소 입력 감지 증폭기를 디스에이블 시키는 BPRI# 신호의 디어서팅을 탐지해서 전력 소비를 줄인다.
도 8은 개시된 기술을 이용해서 설계의 제작, 에뮬레이션, 시뮬레이션을 위한 다양한 설계 표현 또는 포맷을 도시하는 다이어그램이다. 설계를 표현하는 데이터는 많은 방식으로 설계를 표현할 수 있다. 먼저, 시뮬레이션에서 유용한 것으로, 하드웨어는 하드웨어 기술 언어 또는 다른 기능적 기술 언어를 사용해 표현될 수 있는데, 이것은 본질적으로 설계된 하드웨어가 어떻게 수행되기를 기대하는 것의 컴퓨터화된 모델을 제공한다. 하드웨어 모델(810)은 컴퓨터 메모리와 같은, 저장 매체(800)에 저장될 수 있고 상기 모델이 특정 테스트 슈트(830)를 하드웨어 모델에 적용해서 의도한 대로 작동하는 지를 판단하는 시뮬레이션 소프트웨어(820)를 사용해서 시뮬레이션 될 수 있다. 일부 실시예에서, 시뮬레이션 소프트웨어는 매체 내에 저장, 캡처 또는 보관되지 않는다.
부가적으로, 로직 및/또는 트랜지스터를 가진 회로 수준 모델은 설계 프로세스의 일부 단계에서 만들어질 수 있다. 모델은 유사하게 프로그램 가능 로직을 이용해 모델을 형성하는 전용 하드웨어 시뮬레이터로 시뮬레이션 된다. 이런 유형의 더 나아간 시뮬레이션은 에뮬레이션 기술일 수 있다. 임의의 경우에, 재설정가능(reconfigurable) 하드웨어는 개시된 기술을 채용한 모델을 저장하는 판독 가능 매체를 포함할 수 있는 다른 실시예이다.
나아가, 일부 단계에서 대부분 설계은 하드웨어 모델에서 다양한 장치의 물리적 배치를 표현하는 수준에 이른다. 기존 반도체 제조 기술이 사용되는 경우에서는, 하드웨어 모델을 나타내는 데이터는 집적 회로를 생산하는데 사용되는 다른 마스크 계층 또는 마스크 상의 다양한 특징(feature)의 존재 또는 부존재를 특정하는 데이터일 수 있다. 다시, 집적회로를 나타내는 이 데이터는 회로 로직에 개시된 기술을 구체화하고 이 데이터는 시뮬레이션 또는 제조되어 이 기술을 수행한다.
설계의 임의 표현에서, 데이터는 기계 판독 가능 매체의 임의의 형태로 저장될 수 있다. 그런 정보를 전송하기 위해 변조된 또는 다르게 생성된 광파 또는 전자파(850), 메모리(850) 또는 디스크와 같은 자기 또는 광학 저장소(840)는 기계 판독 가능 매체일 수 있다. 이런 매체의 임의는 설계 정보를 전달할 수 있다. "전달(carry)" (예컨대, 정보를 전달하는 기계 판독 가능 매체)이라는 용어는 저장 장치상에 저장된 정보 또는 전달 파로 인코딩 또는 변조된 정보를 포함한다. 설계 또는 설계의 상세부를 기술하는 일련의 비트는 (전달 또는 저장 매체와 같은 기계 판독 가능 매체로 실세화될 때) 그 자체로부터 및 그 자체로 봉인되거나 또는 추가 설계 또는 제조를 위해 다른 이에 의해 사용될 수 있다.
다른 실시예
다른 실시예에서, 다른 시스템 구성이 사용될 수 있음이 인식될 수 있다. 예컨대, 시스템(500)은 단일 CPU(300)를 포함하지만, 다른 실시에에 관해서, (하나 이상의 프로세서가 상술한 CPU(300)의 구성 및 동작과 유사한) 다중 프로세서 시스템이 다양한 실시예의 주소 버스 전력 제어 접근방식으로부터 이득을 얻을 수 있다. 나아가, 다른 유형의 시스템 또는 다른 유형의 컴퓨터 시스템 (예컨대, 서버, 워크스테이션, 데스크톱 컴퓨터 시스템, 내장형 컴퓨터 시스템, 블레이드 서버 등이 다른 실시예를 관해 사용될 수 있다.
예시적인 실시예가 개시되었음에도, 다음 청구항에 의해 정의된 발명의 실시예의 범위 내에서 개시된 실시예에 변형과 변화가 만들어질 수 있다.
하향 호환 전력 절약 버스 설계
도 9는 CPU(901)가 사용될 수 있는 예시적인 단일 컴퓨팅 시스템(900)의 블록도이다. CPU(901)에 부가해서, 시스템(900)은 일 실시예를 참조해, 언급한 메모리 제어 허브(MCH)(910)로서의 메모리 제어기, 일 실시예를 참조해 언급한 I/O 제어 허브(ICH)(930)로서의 입/출력(I/O) 제어기를 포함한다. 복수의 반도체 칩으로 함께 구현시에, MCH(910) 및 ICH(930)은 칩셋(902)으로 언급될 수 있다. MCH(910)는 CPU(901)에 FSB(931)를 통해서 결합하고 ICH(930)에 버스(950)를 통해 결합한다. 또한, 주메모리(920) 및 하나 이상의 그래픽 장치(940)는 MCH(910)에 결합된다.
컴퓨팅 시스템(900)의 I/O 서브 시스템은 ICH(930)에 결합된 하드 디스크 드라이브(HDD)(911)와 같은 다양한 다른 유형의 입력 및/또는 출력 장치를 포함할 수 있고, 하나 이상의 USB 포트 장치(912)는 ICH(930)에 하나 이상의 USB(913)를 통해서 결합될 수 있고/있거나 하나 이상의 PCI 장치(914)는 해당 PCI 버스(915)를 통해서 ICH에 결합될 수 있다. 부가해, 일부 실시예에서는 하나 이상의 오디오 채널(916) 및/또는 LAN(local area network) 인터페이스(917)도 ICH(930)에 결합될 수 있다. 최소한 하나의 실시예에서, FSB(931)는 인텔 코퍼레이션의 P4 프로세서와 호환된다.
FSB(931)에 결합된 장치는 본 명세서에서 FSB(931)에 관하여 버스 에이전트로 언급될 수도 있다. 일 실시예에서, 3 가지 유형의 에이전트(요구 에이전트, 반응 에이전트 및 스누프 에이전트)가 FSB(931) 상에 있을 수 있다. 요구 에이전트는 예컨대, 메모리 또는 I/O 판독/기입 요구과 같은 요구을 발행하여 트랜잭션을 개시하는 장치이다. 반응 에이전트는 예컨대, I/O 타깃 또는 메모리 타깃과 같은 트랜잭션의 타깃이다. 스누프 에이전트는 전형적으로 캐시 메모리와 연관된 버스 상의 장치이다. 다른 실시예에서, 버스 에이전트는 다른 방식으로 분류될 수 있다.
FSB(931)가 파이프라인기법 버스이면, 버스 트랜잭션은 단계들로 분리될 수 있고, 다중 트랜잭션들이 중첩될 수 있다. 구체적으로, 버스 트랜잭션의 모든 구성요소 또는 단계들이 다른 버스 트랜잭션이 개시될 수 있기 전에 완료되도록 요구되는 것은 아니다.
여기에서 사용된 것과 같이, "트랜잭션"은 단일 버스 액세스 요구에 관한 버스 활동을 지칭한다. 트랜잭션은 여러 단계를 포함할 수 있는데, 각 단계는 특정 버스 신호의 세트와 연관되어 특정 유형의 정보를 통신한다. 일 실시예에서, 예시적인 단계들은 예컨대, 중재 단계, 요구 단계, 스누프 단계, 반응 단계 및/또는 데이터 단계를 포함한다.
요구 단계에서, 요구 에이전트는 FSB(931) 상의 요구 제어 및 주소 정보를 드라이브한다. 후속 스누프 단계 동안에, 데이터 탐지이 국소적으로 저장할 것인지 및/또는 트랜잭션이 이전에 발행된 트랜잭션에 대해 순차적으로 완료될 것 같은 지를 판단한다. 반응 단계에서, 반응 에이전트는 요구 에이전트에 요구된 트랜잭션이 성공인지 실패인지를 나타내는 정보를 보고한다. 요구된 트랜잭션이 데이터 전송을 포함하면, (데이터 전송 단계로도 언급되는) 데이터 단계가 데이터 준비(DRDY#) 신호의 어서팅에 응답해 개시될 수 있다.
후술할 바와 같이, 요구 신호는 MCH(910)에 의해 어서팅 되어 FSB(931)를 사용할 수 있다. 자주, 메모리(920)가 전체 컴퓨팅 시스템의 전체 효율에 대해 가지는 중요성으로, MCH(910)은 FSB(931) 상에서 "우선(priority)" 에이전트라 언급된다. 그래서, 다양한 실시예에서, 이전에 언급한 MCH(910)가 FSB(931) 상에 어서팅한 요구 신호는 "BPRI"이라 언급된다. MCH(910)가 FSB(931)의 사용을 원할 때, MCH는 BPRI# 신호를 어서팅하고, MCH(910)이 FSB(931)의 사용을 더 이상 원하지 않을 때, MCH는 BPRI# 신호를 디어서팅한다(기호 '#'는 활성 저신호를 나타냄을 주시). MCH는 BRPI# 신호의 어서팅 및 디어서팅을 제어하는 제어기(918)(또는 제어 로직(918))를 포함한다.
일 실시예에서, 제어기(918)는 BPRI# 신호의 어서팅을 발생시켜 CPU(901) 내의 감지 증폭기가 정시에 MCH(910)에 의해 FSB(931) 상에 제공된 주소 값을 감지하도록 한다. 주소 값이 FSB(931)를 통해 프로세서(901)로 전송된 때, 후속 주소 값이 미리 정해진 타임프레임(예컨대, 소정의 클록 주기의 수들) 내에 전송되지 않으면, 제어기(918)는 BPRI# 신호의 디어서팅을 발생시켜 감지 증폭기의 전력 소비를 감소시킨다.
도 10을 참조해, CPU(1001)가 보인다. 도 10의 CPU(1001)는 도 9에 관해 앞에서 참조된 CPU(901)의 실시예에 해당하는 것으로 보일 수 있다. 도시된 바와 같이, CPU(1001)는 함께 입력 버퍼(1010)로 도시된 입력 버퍼를 포함한다. 도 10의 입력 버퍼(1010)는 (N-1)-3개의 주소 입력 감지 증폭기(1020)(1020-3, ...,1020-(N-1))를 포함한다. 감지 증폭기(1020)는 내부 주소 버스 신호 라인(paddr)(1022)(1022-3, ..., 1022-(N-1))에 결합된 출력을 가진다. 입력 버퍼(1010)는 부가적인 내부 데이터 및/또는 제어 라인에 결합되어 있을 수도 있다. 일 실시예에서, 이 감지 증폭기(1020)는 FSB(330)의 복수의 주소 라인 FSB A[3.. N-1]# 상에 있는 입력을 가진다. 도 10의 FSB 주소 버스(1031)(본 명세서에서는 FSB(1031)로 언급함)는 예컨대, 도 9의 FSB(931)의 주소부에 해당하는 것으로 보일 수 있다.
최소한 일 실시예에서, FSB(1031)은 인텔 Pentium®4 프로세서(P4) FSB와 호환된다. 다른 실시예에 대해, FSB(1031)는 다른 버스 프로토콜과 호환될 수 있음이 인식될 것이다. 도 10의 실시예에서 입력 버퍼(1010)는 버스 클록(BCLK) 신호 및 FSB(1031)과 연관된 상술한 BPRI# 신호(1050)를 수신하도록 구성된 래치(1052)를 포함한다. 래치(1052)의 출력은 각 주소 입력 감지 증폭기(1020)의 입력을 인에이블하도록 결합되어 있다.
동작 중에, BCLK 신호 변환할 때, 래치(1052)는 BPRI# 신호의 상태를 래치한다. BPRI# 신호의 어서팅에 응답해, 입력 버퍼(1010)의 주소 입력 감지 증폭기(1020)는 FSB(1021)로부터 주소 라인 FSB A[3..N-1]#을 통해 주소를 캡처하도록 인에이블 된다. 역으로, BPRI# 신호의 디어서팅에 응답해, 주소 입력 감지 증폭기(1020)는 디스에이블된다. 입력 감지 증폭기가 디스에이블되면, 그들의 전력 손실 주로, 입력 버퍼에 제공하는 바이어스 전류에 의한 TDP(thermal dissipation power)가 감소한다.
도 11은 (예컨대, 도 9에서 보인) 단일 프로세서 컴퓨팅 시스템 내에서 사용될 수 있는 실시예에 관한 BPRI# 신호를 도시하는 타이밍도이다. 도 11의 타이밍도는 (1) 상술한 버스 클록(BCLK) 신호(1110), 2) BREQ0# 신호(1120), 3) 상술한 BPRI# 신호(1150), 4) LOCK# 신호(1130) 5) 주소 스트로보 신호(ADS#)(1140), 6) 주소 버스 상에 나타난 주소 값의 표현(1102, 1104), 7) 입력 버퍼 감지 증폭기의 상태의 클록 주기 T1-T10를 도시한다. 상기 신호들에 관해, 신호 이름의 말단의 '#'는 연관된 신호가 활성 로우 신호(active low signal)(즉, 로직이 로우 레벨에 있을 때, 어서팅된 것으로 간주함)임을 나타내는 것이다. 연관된 회로 내에 해당 변화로 유사한 기능을 제공하도록 활성 하이 신호가 대신 사용될 수 있다.
도 11에 도시된 예시적인 트랜잭션에서, 주소 값의 전송에 관해 클록 사이클 T1에서 FSB는 "조용(quiet)"하고 그 결과로 프로세서의 감지 증폭기가 디스에이블된 저전력 소비 상태에 있다. (예컨대, MCH와 같은 우선 버스 에이전트와 같은) 송신 버스 에이전트의 제어기는 그 후, 주소 값들을 FSB를 통해 T2에서 BPRI# 신호(1150)의 어서팅을 발생시켜서 수신 버스 에이전트(예컨대, 프로세서/CPU)로 전송하기 위한 프로세스를 시작한다. 도 11의 실시예에서, 수신 버스 에이전트(예컨대, CPU)는 BPRI# 신호(1150)가 어서팅된 클록 사이클을 다음의 상기 클록 사이클 후에 주소 값을 수신하기 위해 감지 증폭기를 인에이블되게 한다. 이것은 "디스에이블"(클록 T3에서)로부터 "인에이블"(클록 T4)로 변환하는 도 11에서 도시되어 있다.
클록 사이클 T4 동안에 감지 증폭기가 FSB로부터 주소 값을 적절히 수신하는 것을 확보하기 위해 풀 클록 사이클(클록 사이클 T3)이 소진된다. 도 11에 표현된 최소한 일 실시예를 따라서, BPRI# 신호(1150)가 클록 사이클 T2 및 T3 사이에 클록 에지에서 수신 버스 에이전트 수신에 의해 래치된다(이 후에, 감지 증폭기가 인에이블되기 시작함). 감지 증폭기는 그 후, 풀로, 후속 클록 사이클(클록 사이클 T3)이 주어져서 송신 버스 에이전트로부터 주소 값을 수신하도록 충분히 인에이블된다. 클록 사이클 T4에서 송신 버스 에이전트는 (도 11의 "Req A" 및 "Req B"로 표시된) FSB의 주소 값들을 제시하고 주소 스트로보 신호(ADS#)(1140)를 어서팅한다.
결과적으로, Req A 및 Req B 주소 값이 적절히 배치된 클록 에지(예컨대, Req A 값을 래치하기 위한 버스 클록(1110)의 상승 에지; 및 Req B 값을 래치하기 위한 버스 클록(1110)의 하강 에지) 상에서 감지 증폭기를 통해서, 수신 버스 에이전트로 래치된다. 송신 버스 에이전트는 클록 사이클 T5 동안에 주소 스트로보(1140)를 또한 디어서팅해서 바로 다음에, 주소 값들(사이클 T6 동안에 "Req A" 및 "Req B")의 전송이 클록 사이클 T4 동안에 일어난 주소 값들의 전송으로부터 명확히 기술될 수 있다. 주소 스트로보(1140)는 다음에 클록 사이클 T6 동안에 리어서팅 되어서 제2 주소 값 전송에 영향을 준다.
도 11의 실시예에서, 송신 에이전트는 클록 사이클 T6 동안에 주소 스토브 신호(1140)의 리어서팅과 함께 BPRI# 신호(1150)를 또한 비활성화시킴을 주목하라. 일 실시예에서, 송신 버스 에이전트(예컨대, 상술한 도 9의 제어기(918))는 1) 주소 값의 "다음" 전송이 주소 값의 "현재" 전송(클록 사이클 T6에서는 "현재" 전송은 Req A 및 Req B 값의 제2 전송임), 뒤의 최소한 일부 클록 사이클 수 동안에 발생하지 않을 것을 인식하고 2)그 결과로, 현재 주소 값 전송이 수신 버스 에이전트에 의해 수신된 바로 후에, 감지 증폭기를 자동으로 디스에이블하기 위해 BPRI# 신호(1150)의 디어서팅을 발생하도록 설계된다.
도 11의 예에서, BPRI#이 다시 어서팅하지 않는 한, MCH에 의해 더 이상의 트랜잭션이 FSB로 발행될 수 없다. 그래서 입력 버퍼 감지 증폭기는 프로세서의 전력 소비를 줄이기 위해 디스에이블이 유지될 있다. 도 11의 예에서, BPRI#는 T7에서 디어서팅된 것으로 샘플링되고 ADS#이 T7 및 T10 사이에서 버스로 발행되지 않는다. 적절한 다른 실시예에서, 다른 수의 클록 주기들 또는 후속 주소 전송 간의 시간이 BPRI# 신호(1150)의 디어서팅을 발생시키는데 사용될 수 있다.
도 10 및 도 11은 프런트 사이드 버스 상에서 버스 요구 신호의 상태에 기반해 주소 감지 증폭기의 인에이블을 트리거하는 저전력 버스 트랜잭션 접근방식에 관한 것이다. 이에 반해, 도 12 및 도 13은 다른 프런트 사이드 버스 신호 상에서 데이터 감지 증폭기의 인에이블을 트리거하는 저전력 버스 트랜잭션에 관한 것이다(더 자세히 후술함). 도 10과 유사하게, 도 12는 제어 로직 회로(1252)에 의해 인에이블되는 복수의 데이터 감지 증폭기(1220-1 내지 1220-N)를 가지는 CPU를 도시한다. 데이터 감지 증폭기(1220-1 내지 1220-N)는 FSB 트랜잭션의 데이터 단계 동안에 FSB의 데이터 버스 상에 제시된 데이터를 캡처한다. 데이터 감지 증폭기(1220-1 내지 1220-N)는 FSB로부터 데이터를 수신할 수 없는 주기 시간 동안 디스에이블되어 있고 그 결과로 전력 소모가 적다. 도 10 내지 도 13의 교시내용에서 독자는 단일 프로세서로도 설계가능함을 인식할 것이다.
여기서, 제어 로직 회로(1252)는 데이터 감지 증폭기(1220-1 내지 1220-N)를 적절하게 인에이블/디스에이블 하기 위해 FSB 와 연관된 특정 신호에 반응해, 데이터 감지 증폭기(1220-1 내지 1220-N)를 인에이블 및 디스에이블 시킨다. 특히, 실시예에서, 제어 로직 회로(1252)는 1) FSB 상에 어서팅된 주소 신호(예컨대, ADS#)에 응답해, 데이터 감지 증폭기(1220-1 내지 1220-N)를 인에이블하고, 2) (i) "최종" 데이터 준비 신호(예컨대, Last_DRDY)의 디어서팅 (ii) IOQ(In-order-Que)가 비는 것(예컨대, RCNT 매개변수가 0으로 되는 것으로 표시됨) 및 (iii) DBSY#(data busy signal)의 디어서팅에 응답해 데이터 감지 증폭기(1220-1 내지 1220-N)를 디스에이블한다. 여기서, 프로세서(1201)는 버스의 상태를 탐지하도록 설계되어 상술한 조건이 용이하게 판별될 수 있다. 예컨대, "Last_DRDY" 신호는 프로세서 내부 제어 신호(FSB 제어 신호와 반대임)로 쉽게 설계될 수 있다.
ADS# 신호의 활성화는 (예컨대, ADS# 어서팅이 역할을 하는 트랜잭션의 데이터 단계 및/또는 후속 트랜잭션의 데이터 단계에서) 데이터 버스 상에 유효 데이터가 곧 제시될 것을 나타낸다. 그래서, 감지 증폭기(1220-1 내지 1220-N)는 나타나야할 그런 유효 데이터를 수신할 수 있도록 인에이블되어야만 한다. Last_DRDY 및 DBSY# 신호의 디어서팅은 IOQ가 비는 것과 같이 상당한 후속 시간 주기 동안 데이터 버스 상에 유효한 데이터가 기대되지 않음을 지시한다. 결과적으로, 감지 증폭기(1220-1 내지 1220-N)는 전력을 보존하기 위해 디스에이블된다.
여기서, IOQ는 트랜잭션이 프런트 사이드 버스 상에 나타난 순서대로 트랜잭션에 관한 유효 데이터를 대기열(queue)에 넣는 것으로 인식될 수 있는 것을 주목하라. 그래서, IOQ가 비지않는 동안은 유효 데이터가 가까운 장래에 FSB 상에 나타날 것을 기대할 수 있다. 그래서, 도 12 및 13의 접근방식을 따라서, 데이터 감지 증폭기는 IOQ가 비지않는 동안은 인에이블로 유지된다. P4 호환가능 애플리케이션에서, "RCNT" 매개변수는 아직 수행되지 않은 데이터 단계를 기록하는데 사용될 수 있다. 그래서, RCNT 매개변수가 0으로 설정되어 있지 않으면 IOQ는 비어있지 않은 것으로 인식되고, RCNT 매개변수가 0으로 설정되어 있으면, IOQ는 비어있는 것으로 인식된다.
도 13은 상술한 데이터 감지 증폭기에 관한 인에이블/디스에이블 방식의 예시적인 묘사를 보인다. 도 6의 기술에 따라서, 한 쌍의 버스 트랜잭션이 관찰된다. 제1 버스 트랜잭션은 1) (제1 버스 트랜잭션의 요구 단계에 해당하는) T4 사이클에서 어서팅된 ADS# 신호, 2) (제1 버스 트랜잭션의 데이터 단계에 해당하는) 사이클 T8 및 T9 상에 어서팅된 DRDY# 신호 및 해당 데이터 전송(1301)을 포함한다. 제2 버스 트랜잭션은 1) (제2 버스 트랜잭션의 요구 단계에 해당하는) T6 사이클에서 어서팅된 ADS# 신호, 2) (제2 버스 트랜잭션의 데이터 단계에 해당하는) 사이클 T13 및 T14 상에 어서팅된 DRDY# 신호 및 해당 데이터 전송(1302)을 포함한다.
데이터 감지 증폭기는 사이클 T1부터 T3까지 디스에이블되어 있다(RCNT 매개변수는 T1부터 T3까지 "0"임). ADS# 신호는 사이클 T3 및 T4 사이에서 제1 버스 트랜잭션에 대해 어서팅되는데 이것은 풀로, 후속 클록 사이클(T4)을 제공해서 데이터 감지 증폭기가 풀 인에이블되도록 해서, 데이터 감지 증폭기가 클록 사이클(T5)의 시작에서 인에이블된 것으로 고려되는 것에 대응한다. 사이클 T3 및 T4 사이에서 ADS# 신호의 어서팅은 RCNT 매개변수가 "0"에서 "1"로 증가하도록 한다(즉, IOQ는 사이클 T3 및 T4 사이에서 공백에서 비공백으로 변환하는 것으로 인식됨). 데이터 감지 증폭기가 인에이블되면, IOQ가 빌 때까지(즉, RCNT=0) 이들은 디스에이블되고, DRDY# 및 DBSY# 신호는 데이터 버스가 비활성임을 나타낸다.
제1 버스 트랜잭션에 대한 데이터 단계의 완결(사이클 T9) 전에, 제2 버스 트랜잭션에 대한 ADS# 어서팅이 (사이클 T6에서) 발생하기 때문에, RCNT 값은 사이클 T6부터 사이클 T8까지 값 "2"로 증가하여 있고, 그 후에 트랜잭션의 이 버스 상에 있는 것에 응답해(예컨대, RS[2:0]#이 사이클 T8에서 활성화된 것으로 나타내어 지는 것과 같음), RCNT 값은 1로 다시 줄어든다. 그래서, 사이클 T9로부터 시작되는 RCNT=1은 제1 버스 트랜잭션에 대한 데이터 단계가 완료되고 있으나 제2 버스 트랜잭션이 아직 완료되지 않음을 나타낸다. 도 13의 예시적인 기술에 따라, 제2 버스 트랜잭션에 대한 데이터 단계가 사이클 T14까지 완료되지 않고, RCNT 증가시키기 위해 더 이상의 버스 트랜잭션이 (사이클 T6부터 도 13의 나머지까지 비활성으로 남아있는 ADS#으로 표현되는 것과 같이) 제2 버스 트랜잭션을 이어서 올라오지 않으므로, RCNT 매개변수는 제2 버스 트랜잭션이 완료된 데이터 단계의 결과로 "1"에서 "0"으로 줄어든다.
그래서, 제2 트랜잭션에 대한 데이터 단계가 완료된 것(DBSY# 신호가 사이클 T14 동안에 비활성화되고, DRDY# 신호가 사이클 T15에서 비활성화되는 것에 의해 지시되는 것과 같음)과 RCNT 매개변수의의 "0"으로의 해당 감소(사이클 T14에서 시작함)의 관점에서, 데이터 감지 증폭기를 디스에이블하기 위한 조건이 생긴다. 데이터 감지 증폭기에 DRDY#이 비활성이 된 시간부터 디스에이블로 간주되기 위한 풀 클록 사이클을 주어서, 데이터 감지 증폭기가 사이클 T16부터 디스에이블로 간주 된다. 실제, (프로세서 내에 내부 제어 신호로 다시 구현될 수 있는) 중간 신호 Last_DRDY는 일련의 근접 데이터 전송에서 "최종" 데이터 전송을 나타내기 위해 사용될 수 있다. 예컨대, 일련의 근접 데이터 전송(a string of proximate data transfer) 내의 "최종" 데이터 전송이 버스에 있을 때, Last_DRDY는 신호는 활성화될 수 있다. 그래서 Last_DRDY 신호의 비활성화는 데이터 감지 증폭기가 꺼질 수 있는 지를 나타낸다.
도 10 내지 도 13에 관한 논의는 (예컨대, 도 9에 기술된 것과 같이) 단일 프로세서 컴퓨팅 환경에서 사용될 수 있는데, 도 10 및 도 11은 주소 감지 증폭기에 관한 저전력 소비 방식에 관한 것이고 도 12 및 도 13은 데이터 감지 증폭기에 관한 저전력 버스 트랜잭션에 관한 것이다. 게다가, 최소한 현존하는 P4 호환가능 구현에 관해서, 이 저전력 방식은 FSB에 부가적인 신호의 첨가 없이 구현될 수 있다. 즉, 본 명세서의 저전력 방식은 임의의 "새" 신호가 프런트 사이드 버스에 첨가되는 것이 없이 사용될 수 있고, 따라서 현존하는 프런트 사이드 버스 구현과 핀 호환성(pin-for-pin compatible)이 있다.
도 10 내지 도 13을 통해 상술한 단일 프로세서에 비해, 도 14는 "다중 프로세서(multi-processor)" 컴퓨팅 시스템의 부분의 실시예를 도시한다. 여기서, MCH(1452) 및 복수의 프로세서(14000부터 14003)를 FSB(1431)을 공유한다. 다중 프로세서 환경에서, MCH(1452) 및 복수의 프로세서(14000부터 14003) 각각은 (예컨대, 다른 버스 에이전트에 기능적 의존성을 갖는 것에 의해) 버스 트랜잭션을 요구할 수 있다. 그럼에도, 도 12 및 13에 관해 상술한 동일한 데이터 감지 증폭기 방식 (및 이에 해당하는 다른 구현)이 멀티 프로세서 환경에서 사용될 수 있다. 즉, 멀티 프로세서 환경에서도, 데이터 감지 증폭기가 디스에이블된 상태에 있는 동안 인식되는 제1 어서팅된 ADS# 신호에서 데이터 감지 증폭기가 디스에이블에서 인에이블로 변환될 수 있고 및 게다가, 데이터 감지 증폭기는 IOQ가 비어있고 데이터 버스가 아이들(idled)일 때까지 인에이블로 남아있도록 구성될 수 있다.
그러나, 단일 프로세서 구현의 어드레싱 구성요소에 관해서 (예컨대, 도 10 및 11에서 나타난 것과 같이), 변형이 저전력 멀티 프로세서 방식을 구현하기 위해 만들어져야 한다. 도 15는 도 10의 래치 회로(1052)에 대해 만들어질 수 있는 적절한 변형을 도시한다. 구체적으로, 도 10의 래치 회로(1052)는 단일 신호(BPRI#)를 프로세서(1001)가 단일 프로세서 환경(예컨대, 도 9의 MCH(910))에 연결하는 유일한 버스 우선 에이전트로부터 수신하지만, 이에 비해, 도 15의 래치 회로(1552)는 (감지 증폭기를 인에이블 시키기 위해) 멀티 프로세서 환경 내의 임의의 버스 에이전트로부터 버스 트랜잭션의 개시에 응답해, 감지 증폭기에 대한 인에이블/디스에이블 라인을 래치하도록 트리거 될 수 있다. 여기서, 예로서,도 15의 래치 회로는 제1 프로세서 내로 통합된 것으로 보일 수 있고(예컨대, 4개의 프로세서 시스템에서 프로세서 "0"), 결과적으로, 래치 회로(1552)는 제1 프로세서가 프런트 사이드 버스를 공유하고 있는 "다른" 버스 에이전트에 의해 개시된 버스 트랜잭션 시작에 반응할 수 있다. (예컨대, 도 14를 참조해, BPRI#로 표현되는 MCH(1452) 및 각각 BR[1]# 내지 BR[3]#로 표현되는 "다른" 세 프로세서(14001 내지 14003)로부터).
도 15의 회로를 따라서, 임의의 "다른" 버스 에이전트가 버스 트랜잭션을 요구하면, "프로세서_0" 내의 래치 회로(1552)는 감지 증폭기를 인에이블된 상태로 두어서 "프로세서_0"은 버스 에이전트가 버스 트랜잭션을 개시한 곳으로부터 주소를 수신할 수 있다. 더구나, 래치 회로(1552)는 버스 트랜잭션을 개시하는 버스 에이전트가 없으면, 감지 증폭기를 디스에이블된 상태로 둔다. 도 16은 예를 도시한다. 도 16은 예시적인 "4개의 프로세서" 다중 프로세서 환경에 관한 것이다. 도 16은 이들 프로세서 중 제1 프로세서(예컨대. 프로세서 0 내지 프로세서 3 중에서 "프로세서_0")의 동작을 예시한다. 도 16을 따라서, 프로세서(0, 1 및 2)는 버스 트랜잭션을 개시하지 않아서, 해당 요구 신호(BR[0]#, BR[1]# 및 BR[2]#)는 도 16에서 전부 로직 하이 상태(1620)에 남아서 비활성 된다.
이에 비해, 제4 프로세서 및 MCH는 도 16이 도시하는 타임 프레임 내에서 버스 트랜잭션을 개시한다. 구체적으로, 제4 프로세서가 제1 버스 트랜잭션을 사이클 T2에서 BR[3]# 출력(1630)을 어서팅하는 것으로 개시한다. MCH는 제4 프로세서("프로세서_3")가 다음 요구 단계 동안 버스를 (사이클 T4에서 ADS# 라인(1640)을 어서팅해서) 소유할 것을 알고 있어서, 후속 요구 단계를 기다린다(그리고, 사이클 T6에서 ADS# 라인(1640)을 어서팅함). 다양한 실시예에서, 다중 프로세서 환경에서 프로세서는 "논버스 파킹(non-bus parking)" 모드로 구성되어야 한다. 논버스 파킹 모드는 프로세서가 FSB를 "호깅(hogging)"하는 것을 방지하는 다중 프로세서 환경 내에서 협력 또는 공손(cooperation or politeness)의 형태이다. 더 구체적으로, 프로세서/MCH는 "BR[x]"/"BPRI" 신호의 각 어서팅 후에 "BR[x]"/"BPRI"를 비활성화시켜서 (프로세서가 FSB의 사용을 요구하는 다른 이벤트를 가짐에도) 다른 버스 에이전트가 프로세서의 트랜잭션 후에 트랜잭션을 위한 버스를 사용할 수 있게 한다. "프로세서_3"이 BR[3]# 라인(1630)을 (사이클 T4에서 ADS# 신호(1640)의 어서팅을 통해서) 해당 요구 단계에서 비활성화하고 MCH는 BPRI# 라인(1650)을 (사이클 T6에서 ADS# 신호(1640)의 어서팅을 통해서) 해당 요구 단계에서 비활성화하므로, 그런 방식의 실시예가 도 16에 도시되어 있다.
도 16의 논버스 파킹 모드 실시예 아래서, 버스 트랜잭션의 제1 단계(즉, 중재 단계(arbitration phase))는 BPRI# 또는 BR[x]# 라인의 어서팅에서 시작하고, 버스 트랜잭션의 제2 단계(즉, 요구 단계)는 BPRI# 또는 BR[x]# 라인의 어서팅에서 시작함을 주목하라. 해당 트랜잭션이 요구 단계로 들어갈 때까지, BPRI# 또는 BR[x]# 신호가 어서팅으로 남아있고, 유효 주소 값이 BPRI# 또는 BR[x]# 신호가 디어서팅되어 있는 클록 사이클 동안에 나타나며, 적절한 주소 감지 증폭기의 인에이블이 (1) 임의의 BPRI# 또는 BR[x]# 라인의 어서팅에 응답해 주소 감지 증폭기를 인에이블링하고, 2) BPRI# 및 BR[x]# 라인의 디어서팅이 BPRI# 및 BR[x]# 라인 모두 어서팅 되지않는 상태를 만들 때마다, 주소 감지 증폭기를 디스에이블링하여, 수행될 수 있다. 주소 감지 증폭기가 BR[3]#(1630) 라인이 (사이클 T1 및 T2 사이의) 더 전의 어서팅에 반응해 인에이블되고, (사이클 T6 내의) 더 나중 BPRI# 라인(1650)의 디어서팅에 반응해 디스에이블되므로 도 16은 이런 방식을 도시함을 주목하라.
래치 회로(1552)가 BCLK의 상승 에지상에서 래치할 때, 감지 증폭기에 인에이블/디스에이블 상태를 변경할 충분한 시간을 주는 것은 감지 증폭기가 오직 클록 사이클 T4 내지 T7에서만 인에이블되게 한다. 이 시간 주기는 사이클 T4 내지 T6 동안에 나타난 유효 주소 값을 캡처하기에 충분히 길지만, 사이클 T1 내지 T2 및 사이클 T8 이후에 주소 감지 증폭기를 디스에이블해서 전력 소비를 줄인다(사이클 T3 및 T7은 주소 감지 증폭기의 상태가 각각 디스에이블에서 인에이블로 인에이블에서 디스에이블로 바뀌는 변환 사이클로 간주 됨). 실시예에서, 감지 증폭기가 상태를 변경할 만큼 적절한 시간을 주도록, BR[x]# 또는 BPRI# 신호 및 해당 ADS# 신호의 어서팅 사이에 최소한 2 클록 사이클이 소비된다. 도 16에서 보듯이, 예컨대, 사이클 T2의 시작에서 BR[3]# 신호(1630)의 어서팅은 사이클 T4의 시작에서 해당 ADS#(1640)의 어서팅을 야기하고, 사이클 T3의 시작에서 BPRI# 신호(1650)의 어서팅은 사이클 T6의 시작에서 해당 ADS#(1640)의 어서팅을 야기한다. 다른 실시예에서, "디폴트(default)" P4 버스는 상술한 "최소한 2 클록 사이클" 방식을 확보하는데 사용될 수 있다.
도 17은 도 10 및 도 12에서 보인 회로의 결합으로 보일 수 있는 회로의 다는 실시 예이다. 도 17의 회로는 주소 감지 증폭기(1721)를 데이터 감지 증폭기(1722)의 인에이블 및 디스에이블과 함께 인에이블 및 디스에이블한다. 그래서, 단일 제어 로직 회로(1752)는 주소 감지 증폭기(1721) 및 데이터 감지 증폭기(1722) 모두를 제어하는 데 사용된다. 적절한 동작을 확인하기 위해, 주소 및 데이터 감지 증폭기(1721, 1722) 모두는 (도 10의 회로에 관해 도 11에서 관찰되는 바와 같이 주소 감지 증폭기(1721)가 인에이블되기 충분히 전이라는 것을 확보하는) BPRI# 신호의 활성화로 인에이블되고, 주소 및 데이터 감지 증폭기(1721, 1722)는 (도 12의 회로에 관해 도 13에서 관찰되는 바와 같이 데이터 감지 증폭기가 디스에이블되기 충분히 후라는 것을 확보하는) RCNT=0, Last_DRDY의 비활성화, DBSY#의 비활성화로 디스에이블된다. 도 17의 회로가 단일 프로세서 환경에서 사용될 수 있음에도, 도 17의 회로는 도 15에서 도시된 감지 증폭기의 인에이블을 트리거하는 제어 로직(1752)으로의 입력을 재설정해서 다중 프로세서 환경 내로 호환되게 확장될 수 있다.
독자는 도 8에 관해 논의된 바와 같이, 설계의 시뮬레이션, 에뮬레이션 및 제조의 다양한 설계 표현 또는 포맷이 도 9 내지 도 17의 교시내용에 대해 구현될 수 있다.
예시적인 실시예가 개시되었지만, 다음 청구항에 의해 정의되는 본 발명의 실시예의 범주 내에서 개시된 실시예에 대해 변형 및 변화가 만들어질 수 있다.

Claims (38)

  1. 프런트 사이드 버스(front side bus; FSB)의 데이터 버스부로부터 데이터를 수신하는 데이터 감지 증폭기를 가지는 소정의 프로세서 내에서,
    주소 스트로보(address strobe)가 어서팅(asserting)되는 것에 응답해서, 상기 데이터 감지 증폭기를 인에이블링되는 단계; 및
    적어도 대기열(queue)이 비는 것에 응답해서 상기 데이터 감지 증폭기를 디스에이블링하는 단계 ― 상기 대기열은 상기 프런트 사이드 버스를 통해 아직 수행되지 않은 트랜잭션을 기록하기 위한 것임 ―
    를 포함하는 방법.
  2. 프런트 사이드 버스의 데이터 버스부로부터 데이터를 수신하는 데이터 감지 증폭기 및 상기 프런트 사이드 버스의 주소 버스부로부터 주소를 수신하는 주소 감지 증폭기를 가지는 소정의 프로세서 내에서,
    요구 지시(request indication)가 어서팅(asserting)되는 것에 응답해서, 상기 주소 감지 증폭기를 인에이블링하는 단계;
    주소 스트로보가 어서팅되는 것에 응답해서, 상기 데이터 감지 증폭기를 인에이블링되는 단계;
    상기 요구 지시가 디어서팅(de-asserting)되는 것에 응답해서, 상기 주소 감지 증폭기를 디스에이블링되는 단계; 및
    적어도 대기열이 비는 것에 응답해서, 상기 데이터 감지 증폭기를 디스에이블링하는 단계 ― 상기 대기열은 상기 데이터 버스를 통해 아직 수행되지 않은 트랜잭션을 기록하기 위한 것임 ―
    를 포함하는 방법.
  3. 복수의 프로세서 및 메모리 제어기를 가지는 다중 프로세서 컴퓨팅 시스템의 부분인 소정의 프로세서 내에서, 상기 복수의 프로세서 및 상기 메모리 제어기는 프런트 사이드 버스를 통해 서로 결합되어 있고, 상기 프로세서는 상기 프런트 사이드 버스의 주소 버스부로부터 주소를 수신하는 주소 감지 증폭기를 포함하며,
    상기 프로세서들 중 다른 것으로부터 제1 요구 지시가 어서팅되는 것에 응답해서, 상기 주소 감지 증폭기를 인에이블링하는 단계; 및
    상기 제1 요구 지시가 디어서팅되기 전에, 제2 요구 지시가 상기 메모리 제어기로부터 어서팅되었기 때문에, 상기 제1 요구 지시가 디어서팅된 후에, 상기 주소 감지 증폭기를 인에이블로 유지하는 단계
    를 포함하는 방법.
  4. 주소가 수신 버스 에이전트(receiving bus agent)로 전송될 것이면, 전력 신호(power signal)의 어서팅을 발생시키는 제어기 ― 상기 전력 신호는 상기 수신 버스 에이전트가 상기 주소를 수신하기 전에, 상기 수신 에이전트의 일련의 입력 주소 감지 증폭기를 인에이블함 ―
    를 포함하는 버스 에이전트.
  5. 제4항에 있어서,
    상기 제어기는 상기 주소를 수신한 후에 상기 전력 신호의 디어서팅을 발생시켜서 상기 감지 증폭기를 또한 디스에이블하는 버스 에이전트.
  6. 제4항에 있어서,
    부가적인 주소 값이 미리 정해진 클록 주기 내에 송신되도록 예정되어 있지 않다면, 상기 제어기는 상기 주소를 수신한 후에 상기 전력 신호의 디어서팅을 발생시켜서 상기 감지 증폭기를 디스에이블하는 버스 에이전트.
  7. 제4항에 있어서,
    상기 버스 에이전트는 칩셋인 버스 에이전트.
  8. 제4항에 있어서,
    상기 버스 에이전트는 메모리 제어기인 버스 에이전트.
  9. 제4항에 있어서,
    상기 수신 버스 에이전트는 프로세서인 버스 에이전트.
  10. 버스 에이전트에 있어서,
    버스로의 인터페이스 ― 상기 버스 에이전트가 주소를 상기 버스에 위치시킨다면, 전력 신호의 어서팅을 발생시키는 인터페이스이고, 상기 전력 신호는 수신 에이전트의 일련의 입력 주소 감지 증폭기가 상기 주소를 수신하도록 함 ―
    를 포함하는 버스 에이전트.
  11. 제10항에 있어서,
    상기 인터페이스는 상기 주소를 수신한 후에 상기 전력 신호의 디어서팅을 발생시켜서 상기 감지 증폭기를 또한 디스에이블하는 버스 에이전트.
  12. 제10항에 있어서,
    부가적인 주소 값이 미리 정해진 클록 주기 내에 송신되도록 예정되어 있지 않다면, 상기 인터페이스는 상기 주소를 수신한 후에 상기 전력 신호의 디어서팅을 발생시켜서 상기 감지 증폭기를 또한 디스에이블하는 버스 에이전트.
  13. 제10항에 있어서,
    상기 미리 정해진 클록 주기의 수는 최소한 2 클록 주기인 버스 에이전트.
  14. 제10항에 있어서,
    상기 버스 에이전트는 칩셋인 버스 에이전트.
  15. 제10항에 있어서,
    상기 버스 에이전트는 메모리 제어기인 버스 에이전트.
  16. 제10항에 있어서,
    상기 수신 에이전트는 프로세서인 버스 에이전트.
  17. 버스 에이전트에 있어서,
    일련의 입력 주소 감지 증폭기를 가지는 입력 버퍼; 및
    주소 버스 전력 제어 신호에 결합된 상기 감지 증폭기― 상기 감지 증폭기는 상기 에이전트가 주소를 수신하기 이전에, 상기 전력 제어 신호의 어서팅에 응답해, 외부 버스 에이전트로부터 주소를 수신하도록 인에이블됨 ―
    를 포함하는 버스 에이전트.
  18. 제17항에 있어서,
    상기 입력 주소 감지 증폭기는 상기 전력 제어 신호의 디어서팅에 응답해 상기 버스 에이전트가 상기 주소를 수신한 후에, 디스에이블되는 버스 에이전트.
  19. 제17항에 있어서,
    상기 버스 에이전트는 프로세서인 버스 에이전트.
  20. 제17항에 있어서,
    상기 외부 버스 에이전트는 칩셋인 버스 에이전트.
  21. 제4항에 있어서,
    상기 외부 버스 에이전트는 메모리 제어기인 버스 에이전트.
  22. 제17항에 있어서,
    상기 감지 증폭기는 상기 버스 에이전트가 주소를 수신하기 최소한 2 클록 주기 이전에, 상기 전력 제어 신호의 어서팅에 응답해, 상기 외부 버스 에이전트로부터 상기 주소를 수신하도록 인에이블되는 버스 에이전트.
  23. 버스를 통해 주소가 전송될 것인지를 인식하는 단계; 및
    수신 에이전트가 상기 주소를 수신하기 이전에, 상기 수신 에이전트의 일련의 입력 주소 감지 증폭기를 인에이블하기 위해 전력 신호를 어서팅하는 단계
    를 포함하는 방법.
  24. 제23항에 있어서,
    상기 주소 전송의 완료 후에, 상기 일련의 입력 주소 감지 증폭기를 디스에이블하기 위해 상기 전력 신호를 디어서팅하는 단계를 더 포함하는 방법.
  25. 제23항에 있어서,
    미리 정해진 클록 주기 내에 상기 수신 에이전트로 송신되도록 예정되어 있는 주소가 없다면, 주소 전송 완료 후에, 상기 일련의 입력 주소 감지 증폭기를 디스에이블하기 위해 상기 전력 신호를 디어서팅하는 단계를 더 포함하는 방법.
  26. 제23항에 있어서,
    상기 전력 신호를 어서팅하는 단계는, 상기 주소 배달 주기의 최소한 2 클록 주기 이전에, 상기 전력 신호를 어서팅하는 단계를 포함하는 방법.
  27. 제23항에 있어서,
    상기 방법은 칩셋에 의해 수행되는 방법.
  28. 제23항에 있어서,
    상기 방법은 메모리 제어기에 의해 수행되는 방법.
  29. 제23항에 있어서,
    상기 수신 에이전트는 프로세서인 방법.
  30. 시뮬레이션 루틴과 함께 컴퓨터 시스템에 로드(load)되었을 때,
    주소가 수신 버스 에이전트에 전송될 것이면, 전력 신호의 어서팅을 발생시키는 제어기 ― 상기 전력 신호는 상기 수신 버스 에이전트가 상기 주소를 수신하기 전에, 상기 수신 에이전트의 일련의 입력 주소 감지 증폭기를 인에이블함. ―
    를 포함하는 모델의 기능을 제공하는 데이터를 전달하는 기계 판독 가능 전달 매체를 포함하는 장치.
  31. 제30항에 있어서,
    상기 제어기는 상기 주소를 수신한 후에 상기 전력 신호의 디어서팅을 발생시켜서 상기 감지 증폭기를 또한 디스에이블하는 장치.
  32. 제30항에 있어서,
    부가적인 주소 값이 미리 정해진 클록 주기 내에 송신되도록 예정되어 있지 않다면, 상기 제어기는 또한 상기 주소를 수신한 후에 상기 전력 신호의 디어서팅을 발생시켜서 상기 감지 증폭기를 디스에이블하는 장치.
  33. 제30항에 있어서,
    상기 버스 에이전트는 칩셋인 장치.
  34. 제30항에 있어서,
    상기 버스 에이전트는 메모리 제어기인 장치.
  35. 제30항에 있어서,
    상기 수신 버스 에이전트는 프로세서인 장치.
  36. 주소가 수신 버스 에이전트에 전송될 것이면, 전력 신호의 어서팅을 발생시키는 제어기를 포함하는 칩셋; 및
    일련의 입력 주소 감지 증폭기를 가지는 입력 버퍼―상기 감지 증폭기는 주소 버스 전력 신호에 결합되고, 상기 감지 증폭기는 상기 프로세서가 상기 주소를 수신하기 전에, 상기 전력 제어 신호의 어서팅에 응답해, 상기 칩셋으로부터 주소를 수신하도록 인에이블됨―를 포함하는 프로세서
    를 포함하는 시스템.
  37. 제36항에 있어서, 상기 칩셋의 제어기는
    주소 전송의 완료 후에, 상기 전력 신호의 디어서팅을 발생시켜서 상기 일련의 입력 주소 감지 증폭기를 디스에이블하는 시스템.
  38. 제36항에 있어서,
    상기 주소 전송 완료 후에, 미리 정해진 클록 주기 내에 주소 값이 요구 에이전트로 송신되도록 예정되어 있지 않다면, 상기 전력 신호의 디어서팅을 발생시켜서 상기 일련의 입력 주소 감지 증폭기를 디스에이블시키는 시스템.
KR1020057010706A 2002-12-11 2003-11-24 주소 버스 전력 제어에 관한 장치 및 방법 KR100737549B1 (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US10/317,798 2002-12-11
US10/317,798 US7216240B2 (en) 2002-12-11 2002-12-11 Apparatus and method for address bus power control
US10/436,903 2003-05-12
US10/436,903 US20040128416A1 (en) 2002-12-11 2003-05-12 Apparatus and method for address bus power control

Publications (2)

Publication Number Publication Date
KR20050085590A true KR20050085590A (ko) 2005-08-29
KR100737549B1 KR100737549B1 (ko) 2007-07-10

Family

ID=32511034

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020057010706A KR100737549B1 (ko) 2002-12-11 2003-11-24 주소 버스 전력 제어에 관한 장치 및 방법

Country Status (11)

Country Link
US (1) US20040128416A1 (ko)
EP (2) EP2109029B1 (ko)
JP (1) JP4813180B2 (ko)
KR (1) KR100737549B1 (ko)
CN (1) CN100422905C (ko)
AT (1) ATE437394T1 (ko)
AU (1) AU2003293030A1 (ko)
DE (1) DE60328520D1 (ko)
HK (1) HK1075949A1 (ko)
TW (1) TWI310910B (ko)
WO (1) WO2004053706A2 (ko)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7000065B2 (en) 2002-01-02 2006-02-14 Intel Corporation Method and apparatus for reducing power consumption in a memory bus interface by selectively disabling and enabling sense amplifiers
US7484016B2 (en) * 2004-06-30 2009-01-27 Intel Corporation Apparatus and method for high performance volatile disk drive memory access using an integrated DMA engine
US7822978B2 (en) * 2005-07-22 2010-10-26 Intel Corporation Quiescing a manageability engine
US7870407B2 (en) * 2007-05-18 2011-01-11 Advanced Micro Devices, Inc. Dynamic processor power management device and method thereof
US7477178B1 (en) * 2007-06-30 2009-01-13 Cirrus Logic, Inc. Power-optimized analog-to-digital converter (ADC) input circuit
US8581756B1 (en) 2012-09-27 2013-11-12 Cirrus Logic, Inc. Signal-characteristic determined digital-to-analog converter (DAC) filter stage configuration
US11138348B2 (en) * 2018-10-09 2021-10-05 Intel Corporation Heterogeneous compute architecture hardware/software co-design for autonomous driving

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4202045A (en) * 1979-03-05 1980-05-06 Motorola, Inc. Write circuit for a read/write memory
JPH0715674B2 (ja) * 1986-01-20 1995-02-22 日本電気株式会社 マイクロコンピユ−タ
JPH0812756B2 (ja) * 1987-06-22 1996-02-07 松下電子工業株式会社 スタチックram回路
US5432944A (en) * 1991-08-05 1995-07-11 Motorola, Inc. Data processing system having a dynamically enabled input synchronizer for selectively minimizing power consumption
US5327394A (en) * 1992-02-04 1994-07-05 Micron Technology, Inc. Timing and control circuit for a static RAM responsive to an address transition pulse
US5430683A (en) * 1994-03-15 1995-07-04 Intel Corporation Method and apparatus for reducing power in on-chip tag SRAM
US5692202A (en) * 1995-12-29 1997-11-25 Intel Corporation System, apparatus, and method for managing power in a computer system
US5911153A (en) * 1996-10-03 1999-06-08 International Business Machines Corporation Memory design which facilitates incremental fetch and store requests off applied base address requests
US5848428A (en) * 1996-12-19 1998-12-08 Compaq Computer Corporation Sense amplifier decoding in a memory device to reduce power consumption
US6141765A (en) * 1997-05-19 2000-10-31 Gigabus, Inc. Low power, high speed communications bus
US6243817B1 (en) * 1997-12-22 2001-06-05 Compaq Computer Corporation Device and method for dynamically reducing power consumption within input buffers of a bus interface unit
US6330679B1 (en) 1997-12-31 2001-12-11 Intel Corporation Input buffer circuit with dual power down functions
JPH11212687A (ja) * 1998-01-26 1999-08-06 Fujitsu Ltd バス制御装置
US6058059A (en) * 1999-08-30 2000-05-02 United Microelectronics Corp. Sense/output circuit for a semiconductor memory device
JP4216415B2 (ja) * 1999-08-31 2009-01-28 株式会社ルネサステクノロジ 半導体装置
JP2001167580A (ja) * 1999-12-07 2001-06-22 Toshiba Corp 半導体記憶装置
US6609171B1 (en) * 1999-12-29 2003-08-19 Intel Corporation Quad pumped bus architecture and protocol
KR100546184B1 (ko) * 2000-10-20 2006-01-24 주식회사 하이닉스반도체 센스 앰프 회로
US7000065B2 (en) * 2002-01-02 2006-02-14 Intel Corporation Method and apparatus for reducing power consumption in a memory bus interface by selectively disabling and enabling sense amplifiers
US6961787B2 (en) * 2002-01-07 2005-11-01 Intel Corporation Method and apparatus for updating task files
US7152167B2 (en) * 2002-12-11 2006-12-19 Intel Corporation Apparatus and method for data bus power control

Also Published As

Publication number Publication date
KR100737549B1 (ko) 2007-07-10
WO2004053706A2 (en) 2004-06-24
EP1570335B1 (en) 2009-07-22
CN100422905C (zh) 2008-10-01
HK1075949A1 (en) 2005-12-30
ATE437394T1 (de) 2009-08-15
EP2109029A1 (en) 2009-10-14
TW200428279A (en) 2004-12-16
AU2003293030A1 (en) 2004-06-30
WO2004053706A3 (en) 2004-11-18
EP2109029B1 (en) 2012-12-26
US20040128416A1 (en) 2004-07-01
TWI310910B (en) 2009-06-11
AU2003293030A8 (en) 2004-06-30
JP2006511897A (ja) 2006-04-06
EP1570335A2 (en) 2005-09-07
JP4813180B2 (ja) 2011-11-09
DE60328520D1 (de) 2009-09-03
CN1726451A (zh) 2006-01-25

Similar Documents

Publication Publication Date Title
US10185385B2 (en) Method and apparatus to reduce idle link power in a platform
JP3526920B2 (ja) コンピュータシステム、ならびに周辺バスクロック信号を制御するためのシステムおよび方法
US20070162648A1 (en) DMA Controller With Self-Detection For Global Clock-Gating Control
US7529955B2 (en) Dynamic bus parking
US20060265612A1 (en) PCI express system and method of transiting link state thereof
JP2009516309A (ja) ゼロ電圧プロセッサスリープ状態のための方法および装置
KR101844809B1 (ko) 클록 게이팅 제어를 위한 조기의 웨이크-경고
US7315953B2 (en) Apparatus and related method of coordinating north bridge and south bridge for processing bus master requests of peripheral devices for controlling a central processing unit to operate in a power-saving state
JP4817660B2 (ja) データバス出力制御用の装置及び方法
KR100737549B1 (ko) 주소 버스 전력 제어에 관한 장치 및 방법
KR100591524B1 (ko) 버스 구조하에서 다이나믹 클록 게이팅이 가능한 슬레이브장치 및 그 동작방법
CN117616362A (zh) 带内通信接口功率管理隔离
US7216240B2 (en) Apparatus and method for address bus power control
US20200065274A1 (en) Always-on ibi handling
WO2023048819A1 (en) Device and method for two-stage transitioning between reduced power states

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
G170 Publication of correction
FPAY Annual fee payment

Payment date: 20130701

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20140701

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20150630

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20160630

Year of fee payment: 10

LAPS Lapse due to unpaid annual fee