KR100807442B1 - 데이터 버스 전력 제어 장치 및 방법 - Google Patents

데이터 버스 전력 제어 장치 및 방법 Download PDF

Info

Publication number
KR100807442B1
KR100807442B1 KR1020057010618A KR20057010618A KR100807442B1 KR 100807442 B1 KR100807442 B1 KR 100807442B1 KR 1020057010618 A KR1020057010618 A KR 1020057010618A KR 20057010618 A KR20057010618 A KR 20057010618A KR 100807442 B1 KR100807442 B1 KR 100807442B1
Authority
KR
South Korea
Prior art keywords
data
bus
power control
control signal
agent
Prior art date
Application number
KR1020057010618A
Other languages
English (en)
Other versions
KR20050085553A (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 KR20050085553A publication Critical patent/KR20050085553A/ko
Application granted granted Critical
Publication of KR100807442B1 publication Critical patent/KR100807442B1/ko

Links

Images

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/40Bus structure
    • G06F13/4063Device-to-bus coupling
    • G06F13/4068Electrical coupling
    • G06F13/4072Drivers or receivers
    • 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
    • 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

Abstract

데이터 버스 전력 제어에 대한 접근법이 개시되었다. 요구 에이전트의 데이터 입력 감지 증폭기들은 데이터 버스 전력 제어 신호에 따라서 트랜잭션의 데이터 페이즈 전에 인에이블된다. 일단 인에이블되면, 데이터 입력 감지 증폭기들은 판독 트랜잭션 동안에 제공된 데이터를 획득할 수 있다. 그에 따라, 요구 에이전트의 데이터 입력 감지 증폭기들은 일단 판독 트랜잭션의 데이터 페이즈가 완료되었다면 전력 제어 신호에 따라서 디스에이블된다.
데이터 버스 전력 제어, 감지 증폭기, 트랜잭션, 요구 에이전트, 어써트

Description

데이터 버스 전력 제어 장치 및 방법{AN APPARATUS AND METHOD FOR DATA BUS POWER CONTROL}
[관련 출원]
본 출원은 제목이 '어드레스 버스 전력 제어 장치 및 방법'이고 2002년 12월11일 출원되고, 출원번호 제 호가 부여되고, 대리인 문서 번호 제42.P15268호인 공동 계류 출원과 관계된다.
본 발명의 하나 또는 그 이상의 실시예는 집적 회로 및 컴퓨터 시스템 설계 분야와 일반적으로 관련된다. 더 특정하게는, 본 발명의 하나 또는 그 이상의 실시예는 데이터 버스 전력 제어 방법 및 장치와 관련된다.
컴퓨터 시스템 내의 장치들 간의 연락들은 전형적으로는 이런 장치들을 직접 접속하는 하나 또는 그 이상의 버스를 사용하여 실행된다. 이런 버스들은 두개의 장치를 결합시키는 전용 버스 또는 다수의 유닛 및 장치(예로 버스 에이전트들)에 의해 멀티플렉싱되는 비 전용 버스일 수 있다. 더 나아가, 컴퓨터 시스템 내의 버스들은 특정 유형의 정보를 전달하는 데에 전용으로 쓰일 수 있다. 예를 들어, 캘리포니아, 산타 클라라에 소재한 인텔 코포레이션에 의해 개발된 x86 마이크로프로세서 아키텍쳐는 어드레스 버스, 데이터 버스 및 제어 버스가 각각 어드레스 신호, 데이터 신호 및 제어 신호를 전달하는 3 버스 시스템을 포함한다.
Pentium®Pro, Pentium®II, Pentium®III, 또는 Pentium®4 프로세서와 같은, 고등 아키텍쳐 및 프로세서를 채택한 컴퓨터 시스템에서, 버스 트랜잭션은 전형적으로는 파이프라이닝 방식으로 일어난다. 특정하게는, 다음 차례의 메모리 액세스는 이전의 트랜잭션 요구가 발행된 후에 시작할 수 있고, 버스 트랜잭션의 모든 성분 또는 페이즈가 또다른 버스 트랜잭션이 개시될 수 있기 전에 완료되기를 요구받지 않는다. 그에 따라, 많은 버스 에이전트로부터의 요구가 임의의 한 시각에 계류 중일 수 있다. 버스 트랜잭션의 파이프라이닝은 별개의 데이터 및 어드레스 버스들에 의해 촉진될 수 있다. 요구의 어드레스가 어드레스 버스 상에서 보내지고 있을 때, 이 어드레스 상에서 이전에 발행된 어드레스에 상응하는 데이터(또는 신호)가 데이터 버스 상에서 리턴될 수 있다.
컴퓨터 시스템 내의 데이터 처리량을 증가시키는 데에 대단히 많은 양의 연구와 시스템 아키텍쳐 설계 노력을 기울여 왔다. 데이터 파이프라이닝, 아웃 오브 오더 실행 등과 같은 기술들로 인해 상당한 정도로 높은 클록 레이트와 상위 수준의 성능을 갖는 고등 아키텍쳐 및 프로세싱이 가능케 되었다.
또한, 이 연구는, 아키텍쳐 재설계와 함께, 랩톱 컴퓨터, 핸드 헬드 장치, PDA 등을 취급하는 모바일 시장을 가능케 하였다. 그렇지만, 이런 모바일 플랫폼은 또다른 전원을 쓸 수 없을 때 개별 모바일 플랫폼에 의해 사용되는 배터리 수명에 의해 정해지는 가동 시간에 의해 제한받을 수 있다. 모바일 플랫폼의 복잡도에 좌우되어, 부착된 배터리로부터의 전원 자원은 비교적 짧은 시간에 소모될 수 있 다. 부분적으로는, 이는 플랫폼의 많은 전자 소자들이 이들이 사용되지 않고 있을 때에도 전력 소비를 계속한다는 데에 기인한다.
본 발명의 여러 실시예는, 첨부 도면들의 도면들에서 예를 들기 위한 목적으로 제시된 것이고 제한적인 목적으로 제시된 것은 아니다.
도1은 종래의 프로세서와 메모리 제어 허브를 예시한 블록도.
도2는 일 실시예에 따라 입력 버퍼를 갖는 프로세서를 예시한 블록도.
도3은 일 실시예에 따라 시스템 플랫폼을 예시한 블록도.
도4는 일 실시예에 따른 타이밍도를 예시한 도면.
도5a 내지 도5f는 다른 실시예들에 따른 타이밍도를 예시한 도면.
도6은 일 실시예에 따른 방법을 예시한 흐름도.
도7은 일 실시예에 따른 방법을 예시한 흐름도.
도8은 일 실시예에 따른 방법을 예시한 흐름도.
도9는 개시된 기술을 사용하여 설계의 시뮬레이션, 에뮬레이션, 및 제조용의 여러 설계 표현 또는 포맷을 예시한 블록도.
이하의 설명에서, 로직 구현예들, 신호 및 버스의 크기 및 이름, 시스템 소자들의 유형 및 상호 관계, 및 로직 구획/집적 선택 사항들과 같은 많은 특정의 상세 사항들이 더 철저한 이해를 도모하기 위해 제시되었다. 그러나, 당업자는 본 발명이 이런 특정의 상세 사항이 없이도 실시될 수 있다는 것을 알 것이다. 그밖의 경우에, 제어 구조 및 게이트 레벨 회로는 본 발명의 요점을 흐리지 않기 위해서 상세하게 보여지지는 않았다. 본 분야의 기술자는 여기 포함된 설명을 이용하여 과도한 시행착오 없이 적합한 로직 회로를 구현할 수 있을 것이다.
데이터 버스 전력 제어 방법 및 장치가 설명된다. 일 실시예에서, 본 방법은 전력 제어 신호에 따라서 트랜잭션의 데이터 페이즈(data phase) 전에 프로세서의 데이터 버스 입력 감지 증폭기들을 인에이블하는 것을 포함한다. 일단 인에이블되면, 데이터 버스 입력 감지 증폭기들은 데이터 페이즈 동안에 제공된 데이터를 획득할 수 있다. 프로세서의 데이터 버스 입력 감지 증폭기들은 소정 범위 내에 더 이상의 데이터 페이즈들이 없다면 데이터 페이즈가 완료된 후에 전력 제어 신호에 따라서 이후 디스에이블된다. 그 결과, 데이터 버스 입력 감지 증폭기들에 기인한 전력 소모는 데이터 버스 비활성 기간에 감소되거나 회피될 수 있다.
도 1은 예시적 컴퓨터 시스템에 대한 종래 프로세서(CPU)(110) 및 메모리 제어기(MCH) 배치를 예시한 도면이다. 예시된 대로, CPU(110)는 프로세서 시스템 버스 또는 전면 버스(FSB)(102)의 데이터 선을 통해서 수신된 데이터를 획득하기 위해 동작하는 입력 버퍼들(112)을 포함할 수 있다. CPU(110)의 입력 버퍼들(112)은 FSB(102)의 데이터 버스부를 통해서 CPU(110)에 전송된 데이터를 감지하기 위해 결합된 복수의 데이터 버스 입력 감지 증폭기들(114)(114-1, ..., 114-N)을 포함한다.
CPU(110)에 대해서, 데이터 버스 입력 감지 증폭기들(114)은 시스템 초기화에 뒤이어 연속적으로 인에이블된다. 인에이블 동안에, 데이터 입력 감지 증폭기들(114)은 전력을 소모하는데, 이는 모바일 플랫폼의 경우에 배터리의 고갈을 가속시킨다. 또한, 감지 증폭기들은, 연속적으로 인에이블되었을 때, 주변 온도를 상승시킬 수 있다.
도2를 참조하면, 일 실시예의 프로세서(CPU)가 설명된다. 도2에 도시된 실시예에서, CPU(300)는 모바일 플랫폼 CPU 이다. 그밖의 실시예들에서는, CPU(300)는 예를 들어 디지털 신호 처리기(DSP), 그래픽 프로세서, 내장형 프로세서 등을 포함하는 다른 유형의 프로세서일 수 있다.
예시된 대로, CPU(300)는 입력 버퍼(310)로서 집합적으로 도시된 입력 버퍼들을 포함한다. 입력 버퍼(310)는 N개의 데이터 입력 감지 증폭기(320)(320-1,...,320-N)를 포함한다. 감지 증폭기들(320)은 내부 데이터 버스 신호 선들(pdata)(322)(322-1, ..., 322-N-1)에 결합된 출력들을 갖는다. 입력 버퍼(310)는 또한 추가의 내부 데이터 및/또는 제어 선들에 결합될 수 있다. 일 실시예에서, 가지증폭기들(320)은 전면 버스(FSB)(330)의 복수의 데이터 선들 FSB D[0...M]에 결합된 입력들을 갖는다.
일 실시예에서, FSB(330)는 Pentium®4 프로세서 전면 버스 프로토콜과 호환되는데, 이것의 특징은 동시 계류중이고 싱(Singh) 등에 의해 출원되고 미국특허출원번호 US 2001/0037421A1 이며 2001년 1월11일 공개된 문서에 설명되었다. FSB가 Pentium®4 프로세서 전면 버스와 호환되는 경우에, FSB(330)는 64 데이터 선들 FSB D[0...63]을 포함한다. 그밖의 실시예에서, FSB(330)는 다른 버스 프로토콜과 호환될 수 있고/또는 다른 수의 데이터 선들을 포함할 수 있다.
도2를 계속 참조하면, 일 실시예에서, 입력 버퍼(310)는, 버스 클록(BLCK) 신호와, FSB(330)와 관련된 데이터 버스 전력 제어(DPWR#) 신호(350)를 수신하도록 결합된 래치(352)를 더 포함한다. 일 실시예에서, DPWR# 신호는 예를 들어 FSB(330) 상에서 추가로 CPU(300)에 결합된 칩셋 장치(도시안됨)로부터 수신될 수 있다. 래치(352)의 출력은 데이터 입력 감지 증폭기들(320)의 각각의 입력들을 인에이블하도록 결합된다.
동작 중에, BLCK 신호 전이들로서, 래치(352)는 DPWR# 신호의 상태를 래치한다. DPWR# 신호가 어써트(assert)된 것에 응답하여 입력 버퍼(310)의 데이터 입력 감지 증폭기들(320)은 인에이블되어 데이터 선들 FSB D[0...N]을 통해서 FSB(330)로부터 요구된 데이터를 획득한다. 역으로, DPWR# 신호가 디어써트(deassertion)된 것에 응답하여 입력 데이터 감지 증폭기들은 디스에이블된다. 입력 감지 증폭기들이 디스에이블되었을 때, 이들의 전력 감쇠, 주로 입력 버퍼에 의해 제공되는 바이어스 전류에 기인한 열적 감쇠 전력(thermally dissipation power, TDP)이 감소된다.
도3은 도2의 CPU(300)가 유리하게 사용될 수 있는 일 실시예의 예시적 시스템(500)의 블록도이다. CPU(300)에 추가하여, 시스템(500)은 일 실시예에서 메모리 제어 허브(MCH)(510)로서 지칭되는 메모리 제어기, 및 일 실시예에서 I/O 제어 허브(ICH)(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 서브 시스템은 하드 디스크 드라이브(HDD)(210)와 같이 ICH(530)에 결합된 많은 다른 종류의 입력 및/또는 출력 장치들을 포함할 수 있고, 하나 또는 그 이상의 USB 포트들(190)은 범용 직렬 버스(USB)(192)를 통해서 ICH(530)에 결합되고/또는 하나 또는 그 이상의 PCI 장치(180)는 대응 버스(182)를 통해서 ICH에 결합될 수 있다. 추가적으로, 몇몇 실시예에서 하나 또는 그 이상의 오디오 채널(170) 및/또는 로컬 에어리어 네트워크(LAN) 인터페이스(220)는 또한 ICH(530)에 결합될 수 있다.
일 실시예에서, FSB(330)는 Pentium®4 프로세서 전면 버스와 호환되고, 어드레스, 데이터 및 제어 부분들을 포함하는 파이프라이닝된 데이터 버스인데, 이 부분들은 대안으로 여기서 어드레스, 데이터 및 제어 버스로 지칭될 수 있다.
FSB(330)에 결합된 장치들은 또한 여기서 FSB(330)에 관련하여 버스 에이전트라고 지칭된다. 일 실시예에서, 세가지 유형의 에이전트들이 FSB(330)에 소재할 수 있다: 요구 에이전트, 응답 에이전트, 및 스누핑 에이전트. 요구 에이전트는 예를 들어 메모리 또는 I/O 판독 또는 기입 요구와 같은 요구를 발행하는 트랜잭션을 개시하는 장치이다. 응답 에이전트는 에를 들어 I/O 타깃 또는 메모리 타깃과 같은 트랜잭션의 타깃이다. 스누핑 에이전트는 캐시 메모리와 전형적으로는 연관된 버스 상의 장치들이다. 그밖의 실시예에서, 버스 에이전트들은 다른 방식으로 분류될 수 있다.
FSB(330)가 파이프라이닝된 버스인 경우에, 버스 트랜잭션들은 페이즈(phase)들로 분리될 수 있고 다중 트랜잭션들이 오버랩될 수 있다. 특정하게는, 버스 트랜잭션의 모든 성분들 또는 페이지들은 또다른 버스 트랜잭션이 개시되기 전에 완료되도록 요구받지 않는다.
여기서 사용하는 바로는, '트랜잭션(transaction)'이라는 용어는 단일 버스 액세스 요구에 관계된 버스 활동을 가리킨다. 트랜잭션은 몇가지 페이즈를 포함할 수 있는데, 각각의 페이즈는 특정 유형의 정보를 통신하기 위해 특정 세트의 버스 신호와 연관된다. 일 실시예에서, 예시적 페이즈는 예를 들어 중재 페이즈, 요구 페이즈, 스누핑 페이즈, 응답 페이즈 및/또는 데이터 페이즈를 포함할 수 있다.
요구 페이즈에서, 요구하는 에이전트는 FSB(330) 상에서 요구 제어 및 어드레스 정보를 구동한다. 차순의 스누핑 페이즈 동안에, 수요가 있는 데이터가 국소적으로 저장되었는지와/또는 트랜잭션이 이전에 발행된 트랜잭션들에 대하여 순서에 따라 완료될 것인 지의 여부가 판정된다. 응답 페이즈에서 응답 에이전트는 요구하는 에이전트에게 요구된 트랜잭션이 성공했는지 실패했는지의 여부를 표시하는 정보를 보고한다. 만일 요구된 트랜잭션이 데이터 트랜스퍼를 포함한다면, 데이터 트랜스퍼 페이즈라고도 불리는 데이터 페이즈가 데이터 레디(DRDY#) 신호의 어써트에 응답하여 개시될 수 있다.
도3에 도시된 대로, 일 실시예에서, 앞서 논의한 DPWR# 신호는 MCH(510)에 의해 FSB(330)의 일부로서 어써트되고 디어써트될 것이다. 일 실시예에서, MCH는 DPWR# 신호의 어써트와 디어써트를 야기하는 제어기(512)(여기서 버스 인터페이스로도 불림)를 포함한다. 대안 실시예에서, 제어기(512)는 FSB(330) 상에 결합된 그밖의 장치들/에이전트들 상에 제공될 수 있다. 제어기(512)가 DPRW# 신호의 어써트와 디어써트를 야기하게 되는 방식은 이하에 더 자세히 설명된다.
일 실시예에서, CPU(300)의 입력 데이터 감지 증폭기들(320)이 FSB(330) 상에 어떤 데이터 활동도 없는 시간 동안에는 디스에이블되고 데이터 트랜스퍼 동작들 전에 인에이블되도록, 제어기(512)는 DPWR# 신호의 어써트와 디어써트를 야기한다. 일 실시예에서, 제어기는 트랜잭션 요구 유형에 기초하여 요구된 데이터를 획득하는 예상 데이터 액세스 시간을 결정한다. 예상 액세스 시간에 기초하여, CPU(300)의 감지 증폭기들(320)이 제공될 데이터를 감지하기 위해 제때에 인에이블되도록, 제어기(512)는 DPWR# 신호의 어써트를 야기한다. 일단 데이터 페이즈가 완료되었고, 소정 타임 프레임(예로, 주어진 수의 클록 기간) 내에 다가오는 데이터 페이즈들이 없다면, 제어기(512)는 감지 증폭기들의 전력 소모를 감소시키기 위해 DPWR# 신호의 디어써트를 야기한다.
도4는 일 실시예에서의 DPWR# 신호를 예시한 타이밍 도이다. 타이밍 도는, BCLK 신호를 제공하기 위해 사용될 수 있는 버스 클록(BLCK) 신호(410), 어드레스 스트로브 신호(ADS#)(420), DPWR# 신호(350), 데이터 비지(DBSY#) 신호(430), 데이터 레디(DRDY#) 신호(440) -이 각각의 신호는 FSB(330)의 일부임-, 및 FSB(330)의 데이터 버스부의 데이터 활동을 표시하는 신호(455)의 클록 기간들 T1-T14 를 보여준다. FSB(330)가 Pentium 4 프로세서 전면 버스 프로토콜과 호환되는 실시예에서, DPWR# 신호 외의 앞의 신호들은 대응하는 Pentium4 프로세서 전면 버스 신호들에 따라서 규정되고 동작한다.
앞의 신호에서, 신호명의 끝에 적힌 '#'는 관련 신호가 액티브 로우 신호(즉, 이것이 로우 논리 레벨에 있을 때 어써트된 것으로 여겨짐)라는 것을 표시한다. 액티브 하이 신호가 관련 회로에서의 대응하는 변화를 수반하며 대신 사용되어 유사한 기능성을 제공할 수 있다는 점을 알아야 한다. 또한, 일 실시예에서, FSB(330) 신호들 중의 하나 또는 그 이상의 신호는 풀 스윙보다 작은 전압 스윙을 갖는 저 전압 스윙 신호이다.
도4에 예시된 예시적 트랜잭션에서, CPU(300)와 같은 요구 에이전트는 T1에서 ADS# 신호를 어써트함으로써 판독 트랜잭션 요구를 개시한다. MCH(510)와 같은 응답 에이전트와, 일 실시예에서의 MCH의 제어기(512)는 관련된 어드레스 정보를 샘플링하고 요구된 판독 트랜잭션 유형을 검출한다. 요구된 판독 트랜잭션 유형에 기초해, 제어기(512)는 요구와 관련된 예상 데이터 액세스 시간을 결정하여 데이터 전달 클록 기간을 결정한다.
제어기(512)는 이후 식별된 데이터 전달 클록 기간보다 소정 회수의 클록 기간 전에 DPWR# 신호를 어써트하여 요구하는 에이전트(CPU 300)의 감지 증폭기들이 데이터가 데이터 버스 상에서 도착하기 전에 인에이블되는 데에 충분한 시간을 제공한다. 일반적으로, 식별된 데이터 클록 기간은 트랜잭션을 수행할 때 응답 에이전트 장치에 의해 소요되는 처리 시간의 함수이다. 예를 들어, 만일 응답 에이전트 장치(예로 MCH 510)가 '판독' 트랜잭션이 12 클록 사이클을 소비한 것을 인식하였다면, 이후 제어기(512)는 '판독' 트랜잭션에 대한 요구 후에 12 사이클의 만료 이전에 DPWR# 신호의 어써트를 야기한다(이로써 요구 에이전트의 감지 증폭기들은 요구된 데이터를 수신하도록 제때에 활성화된다).
응답 에이전트가 다른 트랜잭션에 대해서 다른 응답 시간을 나타낼 수 있다는 것을 주의하라(예를 들어, 각각, 도5a 및 도5b에서 이하에 더 자세히 예시된 대로 페이지 엠프티(page empty)의 경우에 '페이지 미스 트랜잭션'에 대한 14 클록 사이클 대 '부분 판독'에 대한 12 클록 사이클). 그 결과, 여러 트랜잭션에 대한 응답 에이전트의 응답 시간의 특성화를 통해서, 제어기(512)는 지원될 각각의 유형의 트랜잭션에 대해 그에 따라 DPWR# 신호의 어써트를 야기한다. 요구 에이전트가 여러 유형의 기초 기술(예로 다른 반도체 제조 공정들)로서 구현될 수 있고, 유사하게 트랜잭션에 대해 소비된 시간은 실시예마다 가변될 수 있음을 주의하라. 그런 식이므로, 도4 및 도5a 내지 도5f에서 뒤따라 오는 예들에서 DPWR# 신호가 어써트되는 특정 클록 사이클 시간이 많은 다른 가능한 실시예로부터 선택되고 있는 것으로 이해해야 한다.
도4에 도시한 예에서, 예시의 목적을 위해 제어기(512)가 데이터 전달 클록 기간이 T2인 것으로 결정하였다고 가정한다. 또한, 도시된 예시적 실시예에서, 소정 개수의 클록 기간은 두개이어서 제어기가 도시된 대로 T10에서 DPWR# 신호를 어써트하도록 한다. 그 밖의 실시예에서는, 다른 개수의 클록 기간 또는 또 다른 시간 단위가 사용되어 DPWR# 신호의 어써트를 요구된 데이터의 예상되는 유효성(availability)으로부터 분리할 수 있다.
또한, 몇몇 실시예에서, 응답 에이전트는, 데이터 감지 증폭기들이 데이터가 도착하였을 때 준비될 것을 더욱 보장하기 위해서, 데이터 트랜스퍼보다 소정 개수 초과의 클록 기간 전에 그리고 실제 데이터 트랜스퍼보다 소정 개수 이상의 클록 기간 전에 DPWR#신호를 어써트할 수 있다. 이런 실시예들에서, 응답 에이전트는 DPWR# 신호 어써트와 데이터 버스 상에서 리턴되고 준비되고 있는 데이터 간의 소정 분리가 유지되도록 보장하기 위해서 데이터 트랜스퍼를 지연할 수 있다.
CPU(300)는 T11에서 버스 클록 신호의 상승 에지에서 DPWR# 신호를 샘플링하고 DPWR# 신호를 감지 증폭기들(320)로 제공하여 이들이 클록 기간 T12에서 인에이블되도록 한다. DRDY# 신호는 T12에서 응답 에이전트에 의해 어써트되고 요구된 데이터는 CPU(300)에 의해 획득된다.
일단 데이터가 트랜스퍼되었다면, 응답 에이전트(본 예에서 MCH 510)는 DRDY# 신호가 디어써트되도록 야기한다. 제어기(512)는 또한 몇몇 실시예에서 병렬로 DPWR# 신호의 디어써트를 일으킨다. 그 밖의 실시예에서, DPWR# 신호는 ,만일 CPU(300)으로 지향된 추가의 데이터 페이즈들이 이하에서 설명하는 대로 주어진 타임프레임 내에 있다고 예상되면 어써트된 채로 남아 있을 수 있다.
CPU(330)는 클록 기간 T14에서 DPWR# 신호의 디어써트를 검출하는데, 이는 감지 증폭기들(320)이 약간 후에 인에이블되도록 야기한다. 이런 방식으로, 도4를 참조해 설명한 예시적 트랜잭션에서, 감지 증폭기들은 전체적 트랜잭션에 대해서 13개의 클록 기간 중에서 대략 2개의 클록 기간에 대해서 활성화되므로(즉, 인에이블되므로) 종래 기술과 비교하여 전력이 절감된다.
몇몇 실시예의 동작을 추가로 예시하기 위해서, 도5a는 일 실시예에 따라서, 페이지 미스 동안에 DPWR# 신호 및 데이터 입력 감지 증폭기들(320)의 동작을 예시한 타이밍 도이다. 앞서 예시한 대로, 응답 에이전트는 버스 클록 T1에서 ADS# 신호의 어써트에 뒤이어 트랜잭션 어드레스 정보를 샘플링함으로써 판독 트랜잭션을 검출한다. 서술된 실시예에서, 요구된 데이터의 페이지 미스는 응답 에이전트가 이후의 클록 기간(T14)에서 요구된 데이터(14)를 리턴시키도록 야기한다. 결과적으로, 데이터 입력 버퍼 감지 증폭기들(320)은 이들이 클록 기간 T14 동안에 인에이블될 때까지 디스에이블된 채로 남아 있는다.
앞의 예를 DPWR# 신호의 어써트와 요구된 데이터의 도착을 분리하는 클록 기간의 소정 개수가 두개인 것에 적용시키면, 제어기(512)는 버스 클록 기간 T12에서 DPWR# 신호(350)의 어써트를 야기한다. 이 요구 에이전트는 버스 클록 T13의 상승 에지에서 DPWR# 신호를 샘플링하고 버스 클록 기간 T14 에서 감지 증폭기들을 인에이블함으로써 반응한다. 버스 클록 T16에서, 응답 에이전트는 DRDY# 신호(440)를 디어써트하고 제어기(512)는 DPWR# 신호(350)의 디어써트를 야기하여 버스 클록 T16에서의 데이터 페이즈 완료를 표시한다. 그에 따라, 도5a에 예시한 대로, 데이터 입력 감지 증폭기들의 인에이블링 및/또는 디스에이블링에 따라서 제공되는 전력 절감은 이 특정 예에서 약 12 클록 기간 정도에 해당하는 것이다.
일 실시예에서, DPWR# 신호는 데이터 페이즈 완료 클록 기간 T16 동안에 감지 증폭기들(320)을 인에이블하기 위해 어써트된 채로 남아 있을 수 있어서, DRDY# 신호의 디어써트에 뒤이은 다음 클록에서 데이터의 획득을 허용해 주는 소스 동기화 스트로브 방법을 인에이블한다.
도5b는 일 실시예에 따라서 부분 판독 동작을 예시한 타이밍 도이다. 예시된 대로, ADS# 신호(420)는 버스 클록 T1에서 어써트되어 버스 클록 T12에서의 데이터 페이즈로 귀결된다. 상기 예들에서 논의한 동일한 두개의 클록 윈도우를 가정하면, 입력 버퍼(310)의 데이터 입력 감지 증폭기들(320)은, 도시된 대로 DPWR# 신호가 클록 기간 T10 에서 어써트되고 클록 기간 T13에서 디어써트되는 것에 응답하여 버스 클록 T12에서 인에이블되고 버스 클록 T14에서 디스에이블된다. 본 예에서, 데이터 감지 증폭기들(320)은 트랜잭션에 대해서 전체 13개 중의 대략 두개의 클록 기간에 대해 인에이블되어 종래 기술과 비교할 때 전력 절감이 입력 버퍼들에 대해서 실현되도록 한다.
도5c는 일 실시예에 따라서 캐시 라인 버스트 판독(cache line burst read)의 예시적 동작을 도시한 타이밍 도이다. 예시된 대로, 제어기(512)는, 버스 클록 기간 T11에서 CPU(300)에 의해 샘플링된, 버스 클록 기간 T10에서의 DPWR# 신호(350)의 어써트를 야기하여, 전파 지연으로 인해 데이터 입력 감지 증폭기들(320)이 버스 클록 기간 T12에서 인에이블되도록 한다. 본 예에 대해서, 응답 에이전트는 DBSY# 신호(430)을 어써트하여 데이터 버스(330)가 마찬가지로 다음 클록 기간(T13)에서 응답 에이전트에 의해 점유되었음을 표시한다. 그에 따라 데이터 입력감지 증폭기들은 DRDY# 가 동일한 시간 기간에 대해 어써트됨으로써 클록 기간들 T12 및 T13 동안에 데이터(472)를 획득한다. DPWR# 신호는 클록 기간 T14에서 디어써트되고(실질적으로 DRDY# 의 디어써트와 정렬됨) 감지 증폭기들(320)은 클록 기간 T15 (도시안됨) 동안에 디스에이블된다.
도5d는 일 실시예에 따라서, DRDY# 신호(440)가 비활성화된 동안의 버스트 판독 트랜잭션을 예시한 타이밍도이다. 일 실시예에서, 시스템(500)은 예를 들어 64 비트 데이터 버스 폭을 갖는 단일 채널 DDR 플랫폼(제어 및 소스 동기 신호들은 제외함)으로서 컨피규어링될 수 있다. 본 예에서, DDR 트랜스퍼 레이트는 예를 들어 버스 클록 기간 당 16 비트일 수 있는 한편, FSB 트랜스퍼 레이트는 FSB(330)가 Pentium4 프로세서 전면 버스와 호환되고 따라서 쿼드 펌핑(quad pumped)되는 경우에 일 버스 클록 당 32비트일 수 있다.
예시된 대로, 제어기(512)는, 버스 클록 기간 T11에서 CPU(300)에 의해 샘플링된, 버스 클록 기간 T10에서의 DPWR# 신호(350)의 어써트를 야기할 수 있어서, 전파 지연으로 인해 데이터 입력 감지 증폭기들(320)이 버스 클록 기간 T12에서 인에이블되도록 한다. 균형잡히지 않은 트랜스퍼 레이트로 인해, T13에서 데이터 트랜스퍼의 갭이 존재한다. 환언하면, 응답 에이전트는 버스 클록 T4까지는 트랜스퍼에 대해 준비된 다음의 32 바이트를 갖지 않는다. 따라서, DRDY# 신호(440)는 다음의 32 바이트가 트랜스퍼를 위해 준비되었을 때 클록 기간 T13 동안에 디어써트되고 클록 기간 T14 동안에 다시 어써트된다. 도시된 대로, DBSY# 신호 (430)은 T12 및 T13 에서 어써트되어 FSB(330) 데이터 버스가 T14에서 응답 에이전트에 의해 점유된 것을 나타낸다. 그에 따라, 제어기(512)는 T10 에서 DPWR# 신호(350)의 어써트를 야기하고 T15에서 이 신호의 디어써트를 야기하여 최후의 DRDY# 신호(440)와 정렬되도록 한다.
도5e는, 본 발명의 일 실시예에 따라서 그 간에 어떤 아이들 클록(idle clock)도 없이 판독 데이터 리턴들이 연달아 발행되는 예시적 파이프라이닝 버스를 도시한 타이밍 도이다. 예시된 예에서, 시스템(500)은 듀얼 채널 DDR 메모리 컨피규레이션을 제공하는데, 그밖의 실시예에서는 그밖의 메모리 접근법들도 사용될 수 있다. 예시된 대로, 제어기(512)는 데이터 페이즈가 스트림을 트랜스퍼할 때보다두개의 클록 기간 전인 버스 클록 기간 T10에서 DPWR# 신호(350)의 어써트를 야기한다. 예시된 실시예에서, 세개의 판독 트랜잭션(R1, R2 및 R3)이 요구된다.
트랜잭션 R1과 관련된 데이터 트랜스퍼는 버스 클록 기간 T12에서 시작하고 버스 클록 T13에서 종료한다. 트랜직션 R2에 대한 데이터 트랜스퍼는 버스 클록T14에서 시작하고 버스 클록 T15에서 종료한다. 설명된 실시예에서, 제어기(512)는, 감지 증폭기들이 전체 데이터 스트림에 대해 개방된 채로 남아 있도록 허용해 주기 위해 연달아 이루지는 데이터 트랜스퍼 간에서 DPWR# 신호 (350)의 디어써트를 야기하지 않는다. 제어기(512)는 버스 클록 T16에서 DPWR# 신호(350)의 디어써트를 야기하여 트랜잭션 R3의 최종 DRDY# 신호(440)와 정렬되도록 한다. 예시된 실시예에서, 대기 상태가 버스 클록 기간 T16에서 삽입되고, DPWR# 신호(350)는 소스 동기 수신 데이터의 획득을 인에이블하기 위해서 버스 클록 기간 T17 까지 CPU(300)에 의해 샘플링되지 않는다. 그밖의 실시예에서, 다른 수의 대기 상태가 데이터 준비 신호의 디어써트와 데이터 버스 전력 제어 신호의 디어써트 간에 삽입될 수 있다.
도5f는 일 실시예에 따라서 단일 채널 DDR 메모리로부터의 파이프라이닝된 판독을 예시한 타이밍 도이다. 도5f에 도시한 대로, 두개의 판독 트랜잭션 (R1, R2)이 세개의 클록 기간으로 분리되어 발행된다. 트랜잭션 R1은 버스 클록 기간 T1에서 발행되고, 트랜잭션 R2는 버스 클록 기간 T12에서 발행된다(도5f에 도시 안됨). 관련 데이터는 리턴되어 버스 클록 기간 T12에서 시작한다. 이 특정 예에서, 요구 에이전트가 하나의 채널 DDR 메모리로부터 판독 데이터를 요구하였다는 사실에 기인하여 응답 에이전트는 대기 상태를 어써트하도록 요구된다. 따라서, 제어기(512)는 버스 클록 T18에서 DPWR# 신호(350)의 디어써트를 야기하여 트랜잭션 R2의 최종 DRDY# 신호(440)와 정렬되도록 한다. 예시된 대로, 제어기(512)는 DPWR# 신호(350)과 제 1 DRDY# 신호(440)의 발행까지의 간에 소정 클록 갭(본 예에서는 두개의 클록 기간)을 제공하기 위해서 버스 클록 T15에서 DPRW# 신호의 디어써트를 야기하지 않는다.
추가의 대안 실시예들은 온 칩 라이트 백 버퍼를 갖는 칩셋의 경우를 포함하는데, 여기서 제어기(512)는 어드레스 스트로브(예로, ADS# 신호)의 어써트로부터 대략 세개의 클록에 있는 스누프 페이지와 함께 DPWR# 신호의 어써트를 야기한다. 일 실시예에서, 이는 버스 프로토콜에 의해 분배된 시간에 데이터 프랜스퍼를 허용한다. 일 실시예에서, 이런 버스 프로토콜에 의해 허용된 시간은 어드레스 스트로브 ADS# 신호의 어써트로부터 5클록에 있는데, 이는 스누프 결과에 대해 두개의 클록 기간을 제공한다.
더 나아가, 컴퓨터 시스템(500) 내에서, 도4에 도시된 대로, 일 실시예에서 각각의 버스 에이전트는 현재 처리 중인 모든 트랜잭션, 각각의 트랜잭션이 현재 어떤 페이즈에 있는지와, (만일 있다면) 각각의 에이전트가 각각의 페이즈 동안에 갖는 책임이 무엇인지에 대한 기록을 유지한다. 이러하므로, 적합한 트랜잭션의 각각의 단계에서, 버스(FSB 330)와 적합하게 인터액트하기 위해서는, 각각의 에이전트는 I/O 트랜잭션 큐 또는 인 오더 큐(IOQ)를 유지한다. 그에 따라, 일단 트랜잭션이 응답을 보장 받는다면, 트랜잭션이 이제 완료될 것이라는 점을 지시하고, 요구에이전트는 IOQ로부터 트랜잭션을 삭제한다. 이러하므로, 대안 실시예에서, DPWR# 신호는 요구하는 에이전트가 엠프티하기까지 어써트된 채로 남아 있는다.
데이터 버스 전력 제어의 상대적 타이밍의 몇가지 특정 예들이 특정 버스 프로토콜과 특정 신호들을 이용하여 이상 설명되었는데, 대안 실시예들의 데이터 버스 전력 제어 접근법들이 다른 버스 프로토콜 및 신호들로서 구현될 수 있다는 점을 알아야 한다. 또한, 데이터 버스 전력 제어 신호가 CPU 판독 트랜잭션을 참조하여 주로 설명되었으나, 여러 실시예들의 데이터 버스 전력 제어 접근법이 데이터가 요구하는 에이전트에게 전달되도록 야기하는 그밖의 트랜잭션들에 동등하게 적용가능하다는 것을 알아야 한다. 예를 들어, 몇몇 시스템에서, 고등 프로그램 가능 인터럽트 제어기(APIC-도시안됨) 트랜잭션이 기입 트랜잭션들로서 규정될 수 있으나, 데이터를 CPU로 리턴시키고, 따라서 일 실시예에서의 데이터 버스 전력 제어 접근법이 적용되어 전력 소모를 감소시킬 수 있다.
데이터 버스 전력 제어 방법은 도6에 도시한 흐름도 (600)에 설명되었다. 프로세스 블록(602)에서, 응답 에이전트는 데이터가 (판독 트랜잭션과 같은)요구하는 에이전트에게 리턴되는 경우에 트랜잭션을 검출한다. 프로세스 블록(604)에서, 응답 에이전트는 데이터가 전달되리라고 예상되는 때를 결정한다. 프로세스블록(600)에서, 응답 에이전트는 DPWR# 신호의 어써트를 야기하여서 요구하는 에이전트의 감지 증폭기들이 데이터를 수신하도록 인에이블한다.
프로세스 블록(608)에서, 응답 에이전트는 요구하는 에이전트에 대한 데이터 트랜스퍼의 완료에 기초하여 DPWR# 신호의 디어써트를 야기할 때를 결정한다. 프로세스 블록(610)에서, 응답 에이전트는 데이터 입력 감지 증폭기들이 디스에이블되도록 야기하는 DPWR# 신호의 디어써트를 일으킨다.
일 실시예에서, DPWR# 신호는 일단 판독 트랜잭션의 데이터 페이즈가 완료되었다면 디어써트되도록 야기된다. 일반적으로, 판독 트랜잭션의 데이터 페이즈의 완료는 일단 DRDY# 신호가 디어써트되면 발생한다. 그러나, 일 실시예에서, 데이터 입력 감지 증폭기들의 디스에이블링은 DRDY# 신호의 디어써트에 뒤이은 하나 또는 그 이상의 클록 기간 대기 기간만큼 지연되는데, 이는 버스 상에서의 소스 동기 수신 데이터의 전파를 인에이블하는 데에 사용될 수 있고, 이는 DRDY# 신호의 디어써트에 뒤이어 제공된다.
도 7은 일 실시예에 따라서 전력 제어 신호 DPWR# 의 디어써트를 야기하는 추가의 기술을 예시한 흐름도이다. 프로세스 블록(700)에서, 응답 에이전트는 추가의 미래 트랜잭션인지를 판정한다(이는 요구하는 에이전트로 리턴되고 있는 데이터로 귀결된다). 만일 이런 추가의 트랜잭션이 검출되지 않는다면, 프로세스 블록(716)에서, 응답 에이전트는 현재의 트랜잭션의 데이터 페이즈 완료에 대한 클록 기간이 검출되었는지를 판정한다. 일단 검출되었다면, 프로세스 블록(714)에서, 전력 제어 신호 DPWR# 는 디어써트되도록 야기된다.
역으로, 만일 추가의 트랜잭션(이는 요구하는 에이전트로 데이터를 리턴시킬 것임)이 검출되었다면, 프로세스 블록(704)에서, 데이터 페이즈 완료 클록 기간이 추가의 트랜잭션에 대해 결정된다. 일단 데이터 페이즈 완료 클록 기간이 검출되었다면, 프로세스 블록 (706)에서, 추가의 트랜잭션에 대한 데이터 완료 클록 기간과 현재 트랜잭션에 대한 데이터 페이즈 완료 클록 기간 간의 다수의 클록 기간이 결정된다. 프로세스 블록 (708)에서, 소정 개수의 클록 기간이 소정 개수의 클록 기간보다 작은지 또는 동등한지가 결정된다. 프로세스 블록(706)에서의 소정 클록 기간이 소정 개수의 클록 기간보다 작다면, 프로세스 블록(710)에서 DPWR# 신호의 디어써트가 지연되어 요구하는 에이전트들의 감지 증폭기들이 추가의 트랜잭션의 미래 데이터를 수신하도록 인에이블된 채로 남아 있도록 허용해 준다.
그에 따라, 프로세스 블록(712)에서, DPWR# 신호의 디어써트는 추가의 트랜잭션에 대한 데이터 페이즈 완료 클록 기간이 검출될 때까지 지연되기를 지속한다. 일단 검출되었다면, 프로세스 블록 (714)에서 DPWR# 신호는 디어써트되도록 야기된다.
데이터 버스 전력 제어 방법이 도8에 예시된 흐름도(800)에서 설명된다. 프로세스 블록(802)에서, 요구하는 에이전트(예로 CPU)는 데이터가 (판독 트랜잭션과 같은) 요구하는 에이전트에게 리턴되는 결과를 낳게 되는 요구 트랜잭션을 발행한다. 프로세스 블록(804)에서, 데이터를 수신하기 전에 요구하는 에이전트는 DPWR# 신호의 어써트를 검출하는데, 이는 요구하는 에이전트의 데이터 입력 감지 증폭기들이 요구된 데이터를 수신하는데에 인에이블되도록 야기한다. 프로세스 블록(806)에서, 요구하는 에이전트는 요구된 데이터를 수신한다. 프로세스 블록(808)에서, 요구하는 에이전트는 DPWR# 신호의 디어써트를 검출하는데, 이는 요구하는 에이전트의 데이터 입력 감지 증폭기들의 디스에이블링을 야기하여 전력 소모를 감소시킨다.
도9는 개시된 기술을 이용한 설계의 시뮬레이션, 에뮬레이션, 및 제조의 여러가지 설계 표현들 또는 포맷들을 예시한 블록도이다. 설계를 나타내는 데이터는 다수의 방식으로 설계를 나타낼 수 있다. 먼저, 시뮬레이션에서 유용한 것처럼, 하드웨어는 하드웨어 기술 언어, 또는 또다른 기능 기술 언어를 사용하여 나타내어질 수 있는데, 이는 근본적으로 설계된 하드웨어가 어떻게 동작할지에 대한 컴퓨터화된 모델을 제공한다. 하드웨어 모델(910)은 컴퓨터 메모리와 같은 저장 매체(900)에 저장될 수 있어서 모델이 특정 테스트 조(suite)(930)를 하드웨어 모델에 적용하는 시뮬레이션 소프트웨어(920)를 사용하여 시뮬레이트될 수 있어서 이것이 정말 의도한 대로 기능하는지를 판정한다. 몇몇 실시예에서, 시뮬레이션 소프트웨어는 매체에 기록되거나, 획득되거나 저장되지 않는다.
추가로, 로직 및/또는 트랜지스터 게이트들을 갖는 회로 레벨 모델이 설계 공정의 일부 단계에서 생성될 수 있다. 이 모델은 프로그램 가능한 로직을 사용하는 모델을 형성하는 전용 하드웨어 시뮬레이터에 의해 유사하게 어떤 때는 시뮬레이트될 수 있다. 더 심화된 이런 유형의 시뮬레이션은 에뮬레이션 기술이 될 수 있다. 어떻든지 간에, 재구성가능한 하드웨어는 개시된 기술을 채택한 모델을 저장하는 기계판독 가능 매체를 포함하는 또다른 실시예이다.
더 나아가, 대부분의 설계는 일부 단계에서, 하드웨어 모델의 몇가지 장치들의 물리적 배치를 나타내는 데이터 레벨에 도달한다. 종래의 반도체 제조 기술이 사용되는 경우에, 하드웨어 모델을 나타내는 데이터는 집적 회로를 생산하는데에 쓰이는 다른 마스크 층들 또는 마스크들 상의 여러 피쳐들의 존재 또는 부존재를 특정하는 데이터일 수 있다. 여기서, 집적 회로를 나타내는 데이터는 이런 기술을 실행하기 위해 회로 로직 및 데이터가 시뮬레이트되고 제조될 수 있다는 점에서 개시된 기술을 구현한다.
임의의 설계 표현에서, 데이터는 임의형태의 기계 판독 가능 매체에 저장될 수 있다. 이런 정보를 수송하기 위해 변조되거나 다른 식으로 발생된 광학 또는 전기적 파동(960), 메모리(950) 또는 디스크와 같은 자기 또는 광 스토리지(940)는 기계 판독 가능 매체일 수 있다. 이런 매체 중의 임의의 것이 설계정보를 운반할 수 있다. '운반(carry)'이라는 용어(예로 정보를 운반하는 기계 판독 가능 매체)는 따라서 저장 장치 상에 저장된 정보 또는 반송파 내로 또는 그 상으로 인코딩되거나 변조된 정보를 포괄한다. 설계 또는 설계의 특정부를 기술하는 비트의 세트는 (반송파 또는 저장 매체와 같은 기계 판독 가능 매체에 실시되었을 때) 그 자체 내에 또는 그 밖으로 봉합될 수 있는 또는 추가의 설계 또는 제조를 위해 그밖의 것에 의해 사용될 수 있는 아티클일 수 있다.
대안 실시예
그 밖의 실시예에 대해서, 다른 시스템 구성이 사용될 수 있음을 알아야 한다. 예를 들어, 시스템(500)이 단일 CPU(300)를 포함하고 있지만, (하나 또는 그 이상의 프로세서들이 앞서 설명한 CPU(300)과 그 구성과 동작이 비슷한 경우에) 멀티프로세서 시스템이 여러 실시예들의 데이터 버스 전력 제어 접근법으로부터 수혜를 얻을 수 있다. 서버, 워크스테이션, 데스크톱 컴퓨터 시스템, 게임 시스템, 내장형 컴퓨터 시스템, 블레이드 서버 등과 같은 추가의 다른 유형의 시스템 또는 다른 유형의 컴퓨터 시스템이 그 밖의 실시예에서 사용될 수 있다.
예시적인 실시예를 개시하였는데, 청구범위에 의해 규정된 본 발명의 범위를 벗어나지 않고서 변경 및 변형이 개시된 실시예에 대해서 이뤄질 수 있다.

Claims (59)

  1. 버스 에이전트로서,
    외부 버스에 연결된 제어기를 포함하고,
    상기 제어기는 상기 외부 버스에 연결된 별개의 버스 에이전트로부터 발행된 데이터에 대한 트랜잭션 요구를 판독하고,
    상기 제어기는, 상기 요구에 연관된 데이터 전달 기간보다 소정 개수의 클럭 기간 전에 데이터 버스 전력 제어 신호의 어써트(assertion)를 야기하고,
    상기 데이터 버스 전력 제어 신호는, 상기 별개의 버스 에이전트가 상기 데이터를 수신하기 전에, 상기 별개의 버스 에이전트의 입력 데이터 감지 증폭기들의 세트를 인에이블하는 버스 에이전트.
  2. 제1항에 있어서, 상기 제어기는 상기 입력 데이터 감지 증폭기들의 세트를 디스에이블하기 위해 상기 데이터 버스 전력 제어 신호의 디어써트(deassertion)를 야기하고, 상기 제어기는 데이터 트랜스퍼의 완료에 기초하여 상기 디어써트를 야기하는 버스 에이전트.
  3. 제1항에 있어서, 상기 제어기는 상기 입력 데이터 감지 증폭기들의 세트를 디스에이블하기 위해 상기 데이터 버스 전력 제어 신호의 디어써트를 야기하고, 상기 제어기는 데이터 트랜스퍼의 완료에 기초하여, 그리고 소정의 클럭 기간 내에 어떤 데이터도 상기 별개의 버스 에이전트로 보내지도록 스케쥴되어 있지 않다면, 상기 디어써트를 야기하는 버스 에이전트.
  4. 삭제
  5. 제1항에 있어서, 상기 버스 에이전트는 칩셋(chipset)인 버스 에이전트.
  6. 제1항에 있어서, 상기 버스 에이전트는 메모리 제어기인 버스 에이전트.
  7. 제1항에 있어서, 상기 별개의 버스 에이전트는 프로세서인 버스 에이전트.
  8. 제1항에 있어서, 상기 제어기는 상기 트랜잭션 요구와 연관된 데이터 전달 기간을 결정하고, 상기 제어기는 상기 데이터 전달 기간보다 적어도 두개 클록 기간 이전에 상기 데이터 버스 전력 제어 신호의 어써트를 야기하는 버스 에이전트.
  9. 버스 에이전트로서,
    버스에 대한 인터페이스를 포함하고,
    상기 인터페이스는 데이터를 요구하는 상기 버스 상의 별개의 버스 에이전트에 의해 발행된 트랜잭션 요구와 연관된 데이터 전달 기간보다 소정 개수의 클럭 기간 전에 데이터 버스 전력 제어 신호의 어써트(assertion)를 야기하고,
    상기 데이터 버스 전력 제어 신호는 상기 별개의 버스 에이전트의 입력 데이터 감지 증폭기들의 세트가 데이터를 수신하도록 해주는 버스 에이전트.
  10. 제9항에 있어서, 상기 인터페이스는 상기 입력 데이터 감지 증폭기들의 세트를 디스에이블하기 위해 상기 데이터 버스 전력 제어 신호의 디어써트를 야기하고, 상기 인터페이스는 데이터 트랜스퍼의 완료에 기초하여 상기 디어써트를 야기하는 버스 에이전트.
  11. 제9항에 있어서, 상기 인터페이스는 상기 입력 데이터 감지 증폭기들의 세트를 디스에이블하기 위해 상기 데이터 버스 전력 제어 신호의 디어써트를 야기하고, 상기 인터페이스는 데이터 트랜스퍼의 완료에 기초하여, 그리고 소정 클록 기간 내에 어떤 데이터도 상기 별개의 버스 에이전트로 보내지도록 스케쥴되어 있지 않다면, 상기 디어써트를 야기하는 버스 에이전트.
  12. 제9항에 있어서, 상기 버스 에이전트는 상기 요구와 연관된 상기 데이터 전달 기간을 결정하고, 상기 버스 에이전트는 상기 데이터 전달 기간보다 적어도 두개의 클록 기간 전에 상기 데이터 버스 전력 제어 신호의 어써트를 야기하는 버스 에이전트.
  13. 제12항에 있어서, 상기 소정 개수의 클록 기간은 2 클록 기간인 버스 에이전트.
  14. 제9항에 있어서, 상기 버스 에이전트는 칩셋인 버스 에이전트.
  15. 제9항에 있어서, 상기 버스 에이전트는 메모리 제어기인 버스 에이전트.
  16. 제9항에 있어서, 상기 별개의 버스 에이전트는 프로세서인 버스 에이전트.
  17. 버스 에이전트로서,
    입력 데이터 감지 증폭기들의 세트를 갖는 입력 버퍼를 포함하고,
    상기 감지 증폭기들은 데이터 버스 전력 제어 신호를 수신하도록 연결되고, 상기 버스 에이전트가 요구한 데이터를 수신하기 전에, 상기 감지 증폭기들은, 외부 버스에 연결된 별개의 버스 에이전트에 의한 상기 데이터 버스 전력 제어 신호의 어써트에 응답하여, 상기 외부 버스에 연결된 상기 별개의 버스 에이전트로부터 데이터를 수신하도록 인에이블되게 야기되는 버스 에이전트.
  18. 제17항에 있어서, 상기 버스 에이전트가 상기 데이터를 수신한 후에, 상기 입력 데이터 감지 증폭기들은, 상기 외부 버스에 연결된 상기 별개의 버스 에이전트에 의한 상기 데이터 버스 전력 제어 신호의 디어써트에 응답하여 디스에이블되도록 야기되는 버스 에이전트.
  19. 삭제
  20. 제17항에 있어서, 상기 버스 에이전트는 데이터에 대한 요구의 발행을 야기하는 버스 에이전트.
  21. 제17항에 있어서, 상기 버스 에이전트는 프로세서인 버스 에이전트.
  22. 제17항에 있어서, 상기 별개의 버스 에이전트는 칩셋인 버스 에이전트.
  23. 제17항에 있어서, 상기 별개의 버스 에이전트는 메모리 제어기인 버스 에이전트.
  24. 제17항에 있어서, 상기 버스 에이전트가 요구한 데이터를 수신하기보다 적어도 두개의 클록 기간 전에 상기 감지 증폭기들은 상기 데이터 버스 전력 제어 신호의 어써트에 응답하여 상기 외부 버스로부터 데이터를 수신하기 위해 인에이블되도록 야기되는 버스 에이전트.
  25. 제17항에 있어서, 상기 버스 에이전트가 상기 데이터를 수신한 후에, 그리고 소정 클록 기간 내에 어떤 데이터도 상기 버스 에이전트로 보내지도록 스케쥴링되어 있지 않다면, 상기 감지 증폭기들은 상기 데이터 버스 전력 제어 신호의 디어써트에 응답하여 디스에이블되도록 야기되는 버스 에이전트.
  26. 버스 상의 버스 에이전트에 의해, 상기 버스 상의 별개의 버스 에이전트로부터 발행된 데이터에 대한 트랜잭션 요구를 판독하는 단계와,
    상기 트랜잭션 요구와 연관된 데이터 전달 기간을 결정하는 단계, 및
    상기 별개의 버스 에이전트가 상기 데이터를 수신하기 전에, 상기 별개의 버스 에이전트의 입력 데이터 감지 증폭기들의 세트를 인에이블하기 위해 상기 데이터 전달 기간보다 소정 개수의 클럭 기간 전에 데이터 버스 전력 제어 신호를 어써트하는 단계
    를 포함하는 방법.
  27. 제26항에 있어서, 데이터 트랜스퍼의 완료 후에, 상기 입력 데이터 감지 증폭기들의 세트를 디스에이블하기 위해 상기 데이터 버스 전력 제어 신호를 디어써트하는 방법.
  28. 제26항에 있어서, 데이터 트랜스퍼의 완료 후에, 그리고 소정 개수의 클록 기간 내에 어떤 데이터도 상기 별개의 버스 에이전트로 보내지도록 스케쥴링되어 있지 않다면, 상기 입력 데이터 감지 증폭기들의 세트를 디스에이블하기 위해 상기 데이터 버스 전력 제어 신호를 디어써트하는 방법.
  29. 삭제
  30. 제26항에 있어서, 상기 데이터 버스 전력 제어 신호를 어써트하는 단계는 상기 데이터 전달 기간보다 소정 개수의 클록 기간 전에 상기 데이터 버스 전력 제어 신호를 어써트하는 단계를 포함하는 방법.
  31. 제26항에 있어서, 상기 데이터 전달 기간보다 적어도 두개의 클록 기간 전에 상기 데이터 버스 전력 제어 신호를 어써트하는 단계를 더 포함하는 방법.
  32. 제26항에 있어서, 상기 방법은 칩셋에 의해 실행되는 방법.
  33. 제26항에 있어서, 상기 방법은 메모리 제어기에 의해 실행되는 방법.
  34. 제26항에 있어서, 상기 별개의 버스 에이전트는 프로세서인 방법.
  35. 외부 버스 상의 버스 에이전트에 의해, 데이터에 대한 요구를 발행하는 단계, 및
    요구한 데이터를 수신하기 전에, 상기 외부 버스 상의 별개의 버스 에이전트로부터의 데이터 버스 전력 제어 신호의 어써트를 검출한 것에 응답하여, 상기 외부 버스를 통해 상기 별개의 버스 에이전트로부터 상기 데이터를 수신하도록 입력 감지 증폭기들의 세트를 인에이블하는 단계
    를 포함하는 방법.
  36. 제35항에 있어서, 상기 데이터 버스 전력 제어 신호의 디어써트를 검출한 것에 응답하여, 상기 입력 감지 증폭기들을 디스에이블하는 단계를 더 포함하는 방법.
  37. 제35항에 있어서, 상기 데이터가 수신된 후에, 그리고 소정 클록 기간 내에 어떤 데이터도 수신되도록 스케쥴링되어 있지 않다면, 상기 데이터 버스 전력 제어 신호의 디어써트를 검출한 것에 응답하여, 상기 입력 감지 증폭기들을 디스에이블하는 단계를 더 포함하는 방법.
  38. 제35항에 있어서, 요구한 데이터를 수신하기보다 소정 개수의 클록 기간 전에 상기 데이터 버스 전력 제어 신호의 어써트를 검출한 것에 응답하여 외부 버스로부터 데이터를 수신하도록 상기 감지 증폭기들을 인에이블하는 단계를 더 포함하는 방법.
  39. 제35항에 있어서, 요구한 데이터를 수신하기보다 적어도 2 클록 기간 전에 상기 데이터 버스 전력 제어 신호의 어써트를 검출한 것에 응답하여 상기 외부 버스로부터 데이터를 수신하기 위해 상기 감지 증폭기들을 인에이블하는 단계를 더 포함하는 방법.
  40. 제35항에 있어서, 상기 방법은 프로세서에 의해 실행되는 방법.
  41. 제35항에 있어서, 상기 데이터 버스 전력 제어 신호의 어써트를 검출하는 단계는, 칩셋에 의해 어써트되도록 야기되었던 상기 데이터 버스 전력 제어 신호의 어써트를 검출하는 단계를 포함하는 방법.
  42. 제35항에 있어서, 상기 데이터 버스 전력 제어 신호의 어써트를 검출하는 단계는, 메모리 제어기에 의해 어써트되도록 야기되었던 상기 데이터 버스 전력 제어 신호의 어써트를 검출하는 단계를 포함하는 방법.
  43. 삭제
  44. 삭제
  45. 삭제
  46. 삭제
  47. 삭제
  48. 삭제
  49. 삭제
  50. 삭제
  51. 삭제
  52. 삭제
  53. 시스템으로서,
    외부 버스, 및
    상기 외부 버스에 연결된 칩셋
    을 포함하고,
    상기 칩셋은 버스 인터페이스에 연결된 제어기를 포함하고,
    상기 제어기는 프로세서로부터 발행된 데이터에 대한 트랜잭션 요구를 판독하고, 상기 제어기는 상기 프로세서가 상기 데이터를 수신하기 전에, 상기 트랜잭션 요구와 연관된 데이터 전달 기간보다 소정 개수의 클럭 기간 전에 데이터 버스 전력 제어 신호의 어써트를 야기하고,
    상기 프로세서는 입력 데이터 감지 증폭기들의 세트를 갖는 입력 버퍼를 포함하고,
    상기 감지 증폭기들은 데이터 버스 전력 제어 신호를 수신하도록 연결되고, 상기 프로세서가 요구한 데이터를 수신하기 전에, 상기 감지 증폭기들은 상기 데이터 버스 전력 제어 신호의 어써트에 응답하여 상기 외부 버스로부터의 데이터를 수신하기 위해 인에이블되도록 야기되는 시스템.
  54. 제53항에 있어서, 상기 칩셋의 상기 제어기는 상기 입력 데이터 감지 증폭기들의 세트를 디스에이블하기 위해 상기 데이터 버스 전력 제어 신호의 디어써트를 야기하고, 상기 제어기는 데이터 트랜스퍼의 완료에 기초하여 상기 디어써트를 야기하는 시스템.
  55. 제53항에 있어서, 상기 칩셋의 상기 제어기는 상기 입력 데이터 감지 증폭기들의 세트를 디스에이블하기 위해 상기 데이터 버스 전력 제어 신호의 디어써트를 야기하고, 상기 제어기는 데이터 트랜스퍼의 완료에 기초하여, 그리고 소정 클록 기간 내에 어떤 데이터도 상기 프로세서로 보내지도록 스케쥴링되어 있지 않다면, 상기 디어써트를 야기하는 시스템.
  56. 제53항에 있어서, 상기 칩셋의 상기 제어기는 상기 요구와 연관된 상기 데이터 전달 기간을 결정하고, 상기 제어기는 상기 데이터 전달 기간보다 적어도 두개의 클록 기간 전에 상기 데이터 버스 전력 제어 신호의 어써트를 야기하는 시스템.
  57. 제53항에 있어서, 상기 프로세서의 상기 입력 데이터 감지 증폭기들은, 상기 데이터 버스 전력 제어 신호의 디어써트에 응답하여 디스에이블되도록 야기되는 시스템.
  58. 제53항에 있어서, 상기 프로세서가 상기 데이터를 수신한 후에, 그리고 소정 클록 기간 내에 어떤 데이터도 상기 프로세서로 보내지도록 스케쥴링되어 있지 않다면, 상기 프로세서의 상기 입력 데이터 감지 증폭기들은 상기 데이터 버스 전력 제어 신호의 디어써트에 응답하여 디스에이블되도록 야기되는 시스템.
  59. 제53항에 있어서, 상기 프로세서가 요구한 데이터를 수신하기보다 적어도 두개의 클록 기간 전에, 상기 프로세서의 상기 입력 데이터 감지 증폭기들은 상기 데이터 버스 전력 제어 신호의 어써트에 응답하여 상기 외부 버스로부터 데이터를 수신하기 위해 인에이블되도록 야기되는 시스템.
KR1020057010618A 2002-12-11 2003-11-10 데이터 버스 전력 제어 장치 및 방법 KR100807442B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/317,776 US7152167B2 (en) 2002-12-11 2002-12-11 Apparatus and method for data bus power control
US10/317,776 2002-12-11

Publications (2)

Publication Number Publication Date
KR20050085553A KR20050085553A (ko) 2005-08-29
KR100807442B1 true KR100807442B1 (ko) 2008-02-25

Family

ID=32506215

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020057010618A KR100807442B1 (ko) 2002-12-11 2003-11-10 데이터 버스 전력 제어 장치 및 방법

Country Status (9)

Country Link
US (1) US7152167B2 (ko)
EP (1) EP1573491B1 (ko)
JP (1) JP4817660B2 (ko)
KR (1) KR100807442B1 (ko)
CN (1) CN100409146C (ko)
AT (1) ATE554438T1 (ko)
AU (1) AU2003287612A1 (ko)
TW (1) TWI249105B (ko)
WO (1) WO2004053705A2 (ko)

Families Citing this family (14)

* 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
US7152167B2 (en) 2002-12-11 2006-12-19 Intel Corporation Apparatus and method for data bus power control
US20040128416A1 (en) * 2002-12-11 2004-07-01 Tsvika Kurts Apparatus and method for address bus power control
US7216240B2 (en) * 2002-12-11 2007-05-08 Intel Corporation Apparatus and method for address bus power control
US7258625B2 (en) * 2004-09-08 2007-08-21 Nike, Inc. Golf clubs and golf club heads
US7797728B2 (en) * 2004-10-27 2010-09-14 Intel Corporation Mechanism to generate restricted and unrestricted execution environments
US7529955B2 (en) * 2005-06-30 2009-05-05 Intel Corporation Dynamic bus parking
TWI308696B (en) * 2005-10-07 2009-04-11 Via Tech Inc Initializing method bus device
KR101266805B1 (ko) * 2006-06-29 2013-05-24 에이알엠 리미티드 데이터 처리장치에서의 전력 소모 제어
JP4837780B2 (ja) * 2006-07-28 2011-12-14 アーム・リミテッド マスタおよびスレーブを有するデータ処理デバイスにおける電力管理
US7730337B2 (en) * 2007-01-24 2010-06-01 Via Technologies, Inc. Method and apparatus for asserting a hardware pin to disable a data bus connecting a processor and a chipset during power saving state
US7567465B2 (en) * 2007-08-30 2009-07-28 Micron Technology, Inc. Power saving sensing scheme for solid state memory
US20100296685A1 (en) * 2009-05-20 2010-11-25 Lake Shore Studios, Inc. Adapter and electronic devices for recessed light socket
WO2014176775A1 (zh) 2013-05-02 2014-11-06 华为技术有限公司 一种计算机系统、高速外围组件互联端点设备的访问方法、和装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5432944A (en) 1991-08-05 1995-07-11 Motorola, Inc. Data processing system having a dynamically enabled input synchronizer for selectively minimizing power consumption
US6330679B1 (en) 1997-12-31 2001-12-11 Intel Corporation Input buffer circuit with dual power down functions

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3778920D1 (de) * 1986-01-20 1992-06-17 Nec Corp Mikrorechner mit betriebsarten fuer hohe und fuer geringe taktrate.
JPH0812756B2 (ja) * 1987-06-22 1996-02-07 松下電子工業株式会社 スタチックram回路
JP2744447B2 (ja) * 1988-11-25 1998-04-28 株式会社日立製作所 信号伝達システム
JPH04195241A (ja) * 1990-11-22 1992-07-15 Koufu Nippon Denki Kk 情報処理装置
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
US5819027A (en) * 1996-02-28 1998-10-06 Intel Corporation Bus patcher
DE19617172C2 (de) * 1996-04-29 1999-06-24 Siemens Ag Integrierte Schaltungsanordnung zur Reduzierung der Stromaufnahme
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
JPH11134318A (ja) * 1997-10-30 1999-05-21 Nec Corp メモリシステム及びこれを内蔵したシングルチップマイクロコンピュータ
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 株式会社ルネサステクノロジ 半導体装置
US6609171B1 (en) * 1999-12-29 2003-08-19 Intel Corporation Quad pumped bus architecture and protocol
JP3906015B2 (ja) * 2000-07-12 2007-04-18 株式会社東芝 クロック周波数切り替え機能を有するlsi、計算機システム及びクロック周波数切り替え方法
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

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5432944A (en) 1991-08-05 1995-07-11 Motorola, Inc. Data processing system having a dynamically enabled input synchronizer for selectively minimizing power consumption
US6330679B1 (en) 1997-12-31 2001-12-11 Intel Corporation Input buffer circuit with dual power down functions

Also Published As

Publication number Publication date
WO2004053705A2 (en) 2004-06-24
EP1573491A2 (en) 2005-09-14
US20040117670A1 (en) 2004-06-17
JP4817660B2 (ja) 2011-11-16
TWI249105B (en) 2006-02-11
CN100409146C (zh) 2008-08-06
US7152167B2 (en) 2006-12-19
EP1573491B1 (en) 2012-04-18
ATE554438T1 (de) 2012-05-15
CN1723429A (zh) 2006-01-18
TW200416549A (en) 2004-09-01
AU2003287612A8 (en) 2004-06-30
JP2006510096A (ja) 2006-03-23
KR20050085553A (ko) 2005-08-29
WO2004053705A3 (en) 2005-06-09
AU2003287612A1 (en) 2004-06-30

Similar Documents

Publication Publication Date Title
US20070162648A1 (en) DMA Controller With Self-Detection For Global Clock-Gating Control
US6820169B2 (en) Memory control with lookahead power management
KR100807442B1 (ko) 데이터 버스 전력 제어 장치 및 방법
KR20130028013A (ko) 동적 데이터 스트로브 검출
JP2009163758A (ja) クロックの異なるバス間におけるデータ転送
US5559968A (en) Non-conforming PCI bus master timing compensation circuit
US5964856A (en) Mechanism for data strobe pre-driving during master changeover on a parallel bus
US7779188B2 (en) System and method to reduce memory latency in microprocessor systems connected with a bus
EP2109029B1 (en) Apparatus and method for address bus power control
US6624659B1 (en) Dynamically updating impedance compensation code for input and output drivers
US20040064660A1 (en) Multiplexed bus with multiple timing signals
US6078980A (en) Regulating a data transfer time
US7216240B2 (en) Apparatus and method for address bus power control
US6952216B2 (en) High performance graphics controller
US20030052888A1 (en) Graphics controller for high speed transmission of memory read commands
JPS6043763A (ja) バツフア制御方式

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
G170 Re-publication after modification of scope of protection [patent]
FPAY Annual fee payment

Payment date: 20130219

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20140203

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20150130

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20160127

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20170201

Year of fee payment: 10

LAPS Lapse due to unpaid annual fee